Ну вот, дорогие пользователи нашего сайта, мы идем к намеченной цели. Дизайн сайта потихоньку обновляется, ведутся работы над версткой, "освежается" форум. Мы стремим...
Сегодня мы разберем основу работы с ACDC. Но... для начала небольшое отступление. Вы зададите вопрос, почему же лучше работать с ACDC, нежели чем с xrSpawner? Отвечаю: xrSpawner, при всех его преимуществах, имеет множество более значительных минусов. Во первых, xrSpawner не определяет не game_vertex, ни level_vertex. А также он измеряет только позицию. Я думаю, работающие с xrSpawner замечали, что порой обьекты, которые они спаунят, не всегда появляются на месте. Или вообще не появляются. Потому что - повторяю - xrSpawner не определяет вертексы, т.е. точную позицию и распределение по АИ-сетке. Итак, начнём работу! У нас есть программа ACDC, руки и мозги в голове. Кладём all.spawn в папку utils и жмём на батник "распаковка". Итак, all.spawn распакован! Видим файлы alife_*** и way_***. В файлах alife_*** только обьекты, которые спаунятся. А в way_*** только пути. Я думаю с алайфом всё понятно. Разберем way. Пути. Путь это и есть путь. По которому может двигаться живой обьект. Сейчас мы это рассмотрим. Для начала устроим текстовый беспредел:) Найдём файл alife_l01_escape, а в нём примерно такие строки: [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
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] [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
; 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_*** эти строки (тока мои коментарии писать не надо). Всё готово, можно тестить изменения :_))))). Теперь жмём на батник "запаковка" и усё! Пихаем all.spawn в игру. Только лучше ещё поправить отношения актора к военным и наоборот в лучшую сторону. Чтобы непись сразу пошёл по своему пути. Он будет ходить от казармы до дома (там поймёте).
Если вы считаете необходимым судить меня за мое прошлое… не удивляйтесь, если я сочту необходимым оставить вас там. Если человек сильный, это ещё не значит, что ему не больно...
Одиночество-это то состояние души,когда понимаешь что чегото не хватает, кого то. И ищешь чтото чем можно скоротать время, потому что веришь что завтра все будет иначе. И так день за днем...