Статистика форума
Самые активные пользователи
Уважаемые пользователи
Недавно обновленные темы
Новые участники
  • Страница 1 из 1
  • 1
Работа с ACDC
Основатель сайта
Пользователь №: 1
Регистрация: 11.10.2012
Звание: Легенда
Сообщений: 677
Статус: Оффлайн
Сообщение # 1
Дата: 03.03.2014 в 21:53
Сегодня мы разберем основу работы с ACDC. Но... для начала небольшое отступление. Вы зададите вопрос, почему же лучше работать с ACDC, нежели чем с xrSpawner? Отвечаю: xrSpawner, при всех его преимуществах, имеет множество более значительных минусов. Во первых, xrSpawner не определяет не game_vertex, ни level_vertex. А также он измеряет только позицию. Я думаю, работающие с xrSpawner замечали, что порой объекты, которые они спаунят, не всегда появляются на месте. Или вообще не появляются. Потому что - повторяю - xrSpawner не определяет вертексы, т.е. точную позицию и распределение по АИ-сетке. Итак, начнём работу! 

У нас есть программа ACDC, руки и мозги в голове. Кладём all.spawn в папку с программой и жмём на батник "decompile". Итак, all.spawn распакован! Видим файлы alife_*** и way_***. В файлах alife_*** только обьекты, которые спаунятся. А в way_*** только пути. Я думаю с алайфом всё понятно. 
Разберем way. Пути. Путь это и есть путь. По которому может двигаться живой обьект. Сейчас мы это рассмотрим. 

Для начала устроим текстовый беспредел:) 

Найдём файл alife_l01_escape.ltx, а в нём примерно такие строки: 

[869] 
; cse_abstract properties 
section_name = actor 
name = level_prefix_actor_0001 
s_rp = 0 
position = -139.449829101563,-29.6908683776855,-351.492797851563 
direction = 0,0.00895109120756388,0 
s_flags = 0x29 

[dont_spawn_character_supplies] 

 
[spawn]wpn_binoc 
novice_outfit 
device_torch 
END 

; cse_visual properties 
visual_name = actors\hero\stalker_novice 

; cse_alife_creature_abstract properties 
g_team = 0 
g_squad = 0 
g_group = 0 
health = 1 
dynamic_out_restrictions = 
dynamic_in_restrictions = 

upd:health = 1 
upd:timestamp = 0x75732029 
upd:creature_flags = 0x70 
upd:position = -139.449829101563,-29.6908683776855,-351.492797851563 
upd:o_model = 0 
upd:o_torso = 0.00895109120756388,0,-0.999959945678711 
upd:g_team = 0 
upd:g_squad = 0 
upd:g_group = 0 

; cse_alife_trader_abstract properties 
money = 40 
trader_flags = 0 
character_profile = actor 

; cse_ph_skeleton properties 

; cse_alife_creature_actor properties 

upd:actor_state = 0xd20 
upd:actor_accel_header = 0 
upd:actor_accel_data = 0 
upd:actor_velocity_header = 0 
upd:actor_velocity_data = 0 
upd:actor_radiation = 0 
upd:actor_weapon = 110 
upd:num_items = 0


Для начала расщедримся:) 
Припишем актору в [dont_spawn_character_supplies] такие строки: 


[spawn]wpn_binoc 
wpn_vintorez 
ammo_9x39_pab9 = 20 
wpn_usp 
ammo_11.43x23_hydro = 22 
novice_outfit 
device_torch

Получится, что мы подарим Меченому при начале игры Винторез, 600 патронов к нему, пистолет USP и 
420 патронов к нему. Так. Теперь Меченый у нас будет крутым рэмбо:) Теперь ещё и подарим ему денежек:  

; cse_alife_trader_abstract properties 
money = 40 
trader_flags = 0 
character_profile = actor


В строке money напишем любое число. Только астрономические не надо. Ну, теперь Меченый не только рэмбо, но и миллионер:). 

Теперь займемся кординатами. У нас они такие: 

position = -139.449829101563,-29.6908683776855,-351.492797851563
direction = 0,0.00895109120756388,0


Это наши позиция и дирекция. 

; cse_alife_object properties 
game_vertex_id = 19 ;тот самый вертекс на игре 
distance = 0.699999988079071 
level_vertex_id = 111256 ;вертекс на уровне 
object_flags = 0xffffffbf 
custom_data = <<END


А теперь пропишем туда такие координаты: 

position = -167.232299804688,-25.4363708496094,-354.692901611328 
direction = 0,-0.365248799324036,0
 

; cse_alife_object properties 
game_vertex_id = 0 
distance = 0.699999988079071 
level_vertex_id = 82413 
object_flags = 0xffffffbf 
custom_data = <<END 
upd:health = 1 
upd:timestamp = 0x75732029 
upd:creature_flags = 0x70 
upd:position = -167.232299804688,-25.4363708496094,-354.692901611328 
upd:o_model = 0 
upd:o_torso = -0.365248799324036,0,0.930909931659698 
upd:g_team = 0 
upd:g_squad = 0 
upd:g_group = 0


Теперь игра начнётся в здании блокпоста на 2 этаже:). С этим мы закончим. 

Теперь создадим нового НПС: 

[871] 
; cse_abstract properties 
section_name = stalker 
name = esc_bridge_soldier1 
position = -133.27989196777,-30.146812438965,-372.0263671875 
direction = 0.028013030067086,0,0.9996075630188 

; cse_alife_trader_abstract properties 
money = 5000 
character_profile = esc_soldier_regular 

; cse_alife_object properties 
game_vertex_id = 20 
distance = 16.1000003814697 
level_vertex_id = 118083 
object_flags = 0xffffffbf 
custom_data = <<END 
 
[logic]active = walker 

 
[walker]path_walk = hodim_dvor 
END 

; cse_visual properties 
visual_name = actors\soldier\soldier_bandana_3 

; cse_alife_creature_abstract properties 
g_team = 0 
g_squad = 1 
g_group = 2 
health = 1 
dynamic_out_restrictions = 
dynamic_in_restrictions = 

upd:health = 1 
upd:timestamp = 0 
upd:creature_flags = 0 
upd:position = -133.27989196777,-30.146812438965,-372.0263671875 
upd:o_model = 0 
upd:o_torso = 0.028013030067086,0,0.9996075630188 
upd:g_team = 0 
upd:g_squad = 1 
upd:g_group = 2 

; cse_alife_monster_abstract properties 

upd:next_game_vertex_id = 65535 
upd:prev_game_vertex_id = 65535 
upd:distance_from_point = 0 
upd:distance_to_point = 0 

; cse_alife_human_abstract properties 
predicate5 = 1,2,2,1,2 
predicate4 = 0,1,1,1 

; cse_ph_skeleton properties 

upd:start_dialog = 

; se_stalker properties


Так вот он наш друг НПС - солдат на блокпосте:) Тут уже знакомы строки. Позиция, дирекция, вертексы... Но есть кое что новое:) 


[logic]active = walker 

 
[walker]path_walk = hodim_dvor


Элементарная логика НПС. hodim_dvor - это путь, по которому будет ходить НПС. 
НПС есть, всё готово. Но путя то у нас нет:) Создадим его в файле way_l01_escape. Припишем вот такие строчки: 

[hodim_dvor] 
points = p0,p1 
p0:name = name00 
p0:position = -120.44634246826,-30.15016746521,-363.68786621094
p0:game_vertex_id = 24 
p0:level_vertex_id = 132887 
p0:links = p1(1) 

p1:name = name01 ;номер точки 
p1:position = -132.61611938477,-30.142726898193,-363.87365722656 - только позиция 
p1:game_vertex_id = 19 ;вертекс на игре 
p1:level_vertex_id = 118862 ;вертекс на уровне 
p1:links = p0(1) ;на какую точку после этой перейдёт НПС (тут он будет ходить туда-сюда, если не написать линкс, то он остановится на месте.)


Всё! Вгоняем в way_*** эти строки (только коментарии писать не надо). Всё готово, можно 
тестить изменения. Теперь жмём на батник "compile" и всё! Пихаем all.spawn в игру. Только лучше ещё поправить отношения актора к военным и наоборот в лучшую сторону. Чтобы непись сразу пошёл по своему пути. Он будет ходить от казармы до дома (там поймёте).




  • Страница 1 из 1
  • 1
Поиск:
Пользователи, посетившие форум за текущий день
14:03
Обновить



Тени Чернобыля Чистое Небо Зов Припяти S.T.A.L.K.E.R. 2

Сайт управляется системой uCoz | Design by EXELENT
Авторское право на игру и использованные в ней материалы принадлежат GSC Game World
Администрация сайта не несёт ответственности за содержащиеся файлы на данном портале.
В случае полного, или частичного копирования ссылка на источник обязательна!
© 2012 Zona-chernobyl

  
Наверх