Добавление вертолета - охранника — различия между версиями
Материал из S.T.A.L.K.E.R. Inside Wiki
(Новая страница: «Итак, здесь я постараюсь описать создание вертолета, который будет защищать определенное ...») |
|||
Строка 6: | Строка 6: | ||
- первый охватывает непосредственно охраняемую територию и выдает инфопоршень при входе(и забирает на выходе). | - первый охватывает непосредственно охраняемую територию и выдает инфопоршень при входе(и забирает на выходе). | ||
+ | |||
- второй реагирует в той же зоне на смерть сталкеров от руки актера. | - второй реагирует в той же зоне на смерть сталкеров от руки актера. | ||
+ | |||
- третий увеличиваем примерно метров на 70 и как и в первом ставим выдачу инфопоршня | - третий увеличиваем примерно метров на 70 и как и в первом ставим выдачу инфопоршня | ||
Строка 20: | Строка 22: | ||
В конец добавляем - | В конец добавляем - | ||
− | [845] --- здесь я изначально ставил что-то вроде [999001] просто указывая уникальное число, ACDC при сборке исправляет | + | [845] '''--- здесь я изначально ставил что-то вроде [999001] просто указывая уникальное число, ACDC при сборке исправляет''' |
− | ; cse_abstract properties | + | ; cse_abstract properties |
− | section_name = helicopter -- указываем что спавним вертолет )))) | + | section_name = helicopter '''-- указываем что спавним вертолет ))))''' |
− | name = esc_heli -- имя любое | + | name = esc_heli '''-- имя любое''' |
− | position = -291.357299804688,-10.1593112945557,-607.471862792969 - координаты | + | position = -291.357299804688,-10.1593112945557,-607.471862792969 '''- координаты''' |
− | direction = 0,-1.47526597976685,0 | + | direction = 0,-1.47526597976685,0 |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | [sr_idle] | + | ; cse_alife_object properties |
− | on_actor_inside = %+actor_on_blockpost% sr_idle@inside -- на входе даем инфопоршень | + | game_vertex_id = 11 '''-- гейм вертекс''' |
− | + | distance = 0 | |
− | [sr_idle@inside] | + | level_vertex_id = 117174 '''-- левел вертекс''' |
− | on_actor_outside = %-actor_on_blockpost% sr_idle -- на выходе забираем инфопоршень | + | object_flags = 0xfffffffa |
− | END | + | custom_data = <<END |
− | + | [logic] | |
− | ; cse_shape properties | + | cfg = scripts\esc_heli.ltx '''-- файл логики''' |
− | shapes = shape0 | + | END |
− | shape0:type = sphere -- тип space_restrictor сфера | + | story_id = 9905 '''-- вписывайте уникальное число (story_id своеобразный идентификатор)''' |
− | shape0:offset = 0,0,0 | + | |
− | shape0:radius = 70 -- радиус сферы | + | ; cse_visual properties |
− | + | visual_name = physics\vehicles\mi24\veh_mi24_u_01 '''-- модель''' | |
− | ; cse_alife_space_restrictor properties | + | |
− | restrictor_type = 3 | + | ; cse_motion properties |
− | + | ||
− | + | ; cse_ph_skeleton properties | |
− | + | skeleton_name = idle | |
− | + | ||
− | [847] | + | ; cse_alife_helicopter properties |
− | ; cse_abstract properties | + | cse_alife_helicopter__unk1_sz = idle |
− | section_name = space_restrictor | + | engine_sound = alexmx\helicopter '''-- звук движка''' |
− | name = sr_actor_kill_someone | + | |
− | position = -154.810028076172,-29.5479907989502,-372.554779052734 | + | |
− | direction = 0,0,0 | + | |
− | + | [846] | |
− | ; cse_alife_object properties | + | ; cse_abstract properties |
− | game_vertex_id = 15 | + | section_name = space_restrictor '''-- спавним space_restrictor (реагирует на актера)''' |
− | distance = 0 | + | name = sr_actor_on_blockpost '''-- имя любое''' |
− | level_vertex_id = 94834 | + | position = -154.810028076172,-29.5479907989502,-372.554779052734 '''- координаты''' |
− | object_flags = 0xffffff3e | + | direction = 0,0,0 |
− | custom_data = <<END | + | |
− | [logic] | + | ; cse_alife_object properties |
− | active = sr_territory | + | 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 | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
ВНИМАНИЕ если вставляеете себе мой текст, удалите коментарии иначе почти наверняка получите вылет | ВНИМАНИЕ если вставляеете себе мой текст, удалите коментарии иначе почти наверняка получите вылет | ||
Строка 161: | Строка 163: | ||
Админы, просьба подождать, я закончу статью в ближайшее время | Админы, просьба подождать, я закончу статью в ближайшее время | ||
+ | RIOTER(c) |
Версия 22:01, 5 июля 2012
Итак, здесь я постараюсь описать создание вертолета, который будет защищать определенное место, точнее вылетать по сигналу тревоги.
Основа такова - создается вертолет в невидимой части локации (я создавал через 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
ВНИМАНИЕ если вставляеете себе мой текст, удалите коментарии иначе почти наверняка получите вылет
Админы, просьба подождать, я закончу статью в ближайшее время RIOTER(c)