Добавление вертолета - охранника
Материал из S.T.A.L.K.E.R. Inside Wiki
Итак, здесь я постараюсь описать создание вертолета, который будет защищать определенное место, точнее вылетать по сигналу тревоги.
Основа такова - создается вертолет в невидимой части локации (я создавал через ACDC - распаковщик all.spawn), логику обязательно выносим в config/scripts.
Создаем 3 space restrictor'а -
- первый охватывает непосредственно охраняемую територию и выдает инфопоршень при входе(и забирает на выходе). - второй реагирует в той же зоне на смерть сталкеров от руки актера. - третий увеличиваем примерно метров на 70 и как и в первом ставим выдачу инфопоршня
Итого первый сообщает о входе на охраняемую територию, второй сообщает о убийстве на этой територии, а третий мы делаем для того чтобы узнать когда актер пытается убежать(далее опишу как)
Я делал охрану южного военного блокпоста и вот что у меня вышло -
файл alife_l01_escape
В конец добавляем -
[845] --- здесь я изначально ставил что-то вроде [999001] просто указывая уникальное число, ACDC при сборке исправляет
- cse_abstract properties
section_name = helicopter -- указываем что спавним вертолет )))) name = esc_heli -- имя любое position = -291.357299804688,-10.1593112945557,-607.471862792969 - координаты direction = 0,-1.47526597976685,0
- cse_alife_object properties
game_vertex_id = 11 -- гейм вертекс distance = 0 level_vertex_id = 117174 -- левел вертекс object_flags = 0xfffffffa custom_data = <<END [logic] cfg = scripts\esc_heli.ltx -- файл логики END story_id = 9905 -- вписывайте уникальное число (story_id своеобразный идентификатор)
- cse_visual properties
visual_name = physics\vehicles\mi24\veh_mi24_u_01 -- модель
- cse_motion properties
- cse_ph_skeleton properties
skeleton_name = idle
- cse_alife_helicopter properties
cse_alife_helicopter__unk1_sz = idle engine_sound = alexmx\helicopter -- звук движка
[846]
- cse_abstract properties
section_name = space_restrictor -- спавним space_restrictor (реагирует на актера) name = sr_actor_on_blockpost -- имя любое position = -154.810028076172,-29.5479907989502,-372.554779052734 - координаты direction = 0,0,0
- cse_alife_object properties
game_vertex_id = 15 -- гейм вертекс distance = 0 level_vertex_id = 94834 -- левел вертекс object_flags = 0xffffff3e custom_data = <<END [logic] active = sr_idle
[sr_idle] on_actor_inside = %+actor_on_blockpost% sr_idle@inside -- на входе даем инфопоршень
[sr_idle@inside] on_actor_outside = %-actor_on_blockpost% sr_idle -- на выходе забираем инфопоршень END
- cse_shape properties
shapes = shape0 shape0:type = sphere -- тип space_restrictor сфера shape0:offset = 0,0,0 shape0:radius = 70 -- радиус сферы
- cse_alife_space_restrictor properties
restrictor_type = 3
[847]
- cse_abstract properties
section_name = space_restrictor name = sr_actor_kill_someone position = -154.810028076172,-29.5479907989502,-372.554779052734 direction = 0,0,0
- cse_alife_object properties
game_vertex_id = 15 distance = 0 level_vertex_id = 94834 object_flags = 0xffffff3e custom_data = <<END [logic] active = sr_territory
[sr_territory] territory_death = nil %+actor_kill_someone_blockpost% -- на убийство даем инфу END
- cse_shape properties
shapes = shape0 shape0:type = sphere shape0:offset = 0,0,0 shape0:radius = 70
- cse_alife_space_restrictor properties
restrictor_type = 3
[848]
- cse_abstract properties
section_name = space_restrictor name = sr_actor_escaped_from_blockpost position = -154.810028076172,-29.5479907989502,-372.554779052734 direction = 0,0,0
- cse_alife_object properties
game_vertex_id = 15 distance = 0 level_vertex_id = 94834 object_flags = 0xffffff3e custom_data = <<END [logic] active = sr_idle
[sr_idle] on_actor_outside = %+actor_escaped_from_blockpost% sr_idle@inside
[sr_idle@inside] on_actor_inside = %-actor_escaped_from_blockpost% sr_idle END
- cse_shape properties
shapes = shape0 shape0:type = sphere shape0:offset = 0,0,0 shape0:radius = 150
- cse_alife_space_restrictor properties
restrictor_type = 3
ВНИМАНИЕ если вставляеете себе мой текст, удалите коментарии иначе почти наверняка получите вылет
Админы, просьба подождать, я закончу статью в ближайшее время