SoC. Respawn
Материал из S.T.A.L.K.E.R. Inside Wiki
Респаун, один из самых часто задаваемый вопросов на форумах. Вот, решил написать статью, дабы не втирать одно и тоже каждому, кто не может с этим разобраться.
RESPAWN NPC-----------------------------------------------------------------------------
Для создания респавна, понадобится два файла, all.spawn и spawn_section.ltx. Это минимальный набор. Для полной настройки респавнера, нужны ещё character_desc_simulation.xml и npc_profile.xml.
1. В all.spawn создаём секцию респавнера:
[10000] ; cse_abstract properties section_name = respawn name = имя респавнера position = координаты (x,y,z) direction = 0,0,0 ; cse_alife_object properties game_vertex_id = гейм-вертекс distance = 10 level_vertex_id = левел-вертекс object_flags = 0xffffff3e custom_data = <<END [respawn] respawn_section = esc_urody_respawn_1,12, esc_urody_respawn_2,9 max_count = 8 min_count = 4 max_spawn = 2 idle_spawn = medium conditions = 100 END ; cse_shape properties shapes = shape0 shape0:type = sphere shape0:offset = 0,0,0 shape0:radius = 1 ; cse_alife_space_restrictor properties restrictor_type = 0 ; se_respawn properties
Если используется программа XrSpawner, то копируем любую секцию "respawn"; меняем имя объекта, координаты, и в окошке "скрипт" прописываем:
[respawn] respawn_section = esc_urody_respawn_1,12, esc_urody_respawn_2,9 max_count = 8 min_count = 4 max_spawn = 2 idle_spawn = medium conditions = 100
Где: respawn_section = id респавн-секций из файла spawn_section.ltx. Цифры после запятой, означают отношение одной секции к другой. Если планируется одинаковое колличество респавна из каждой секции, то цифры ставить не требуется. max_count = колличество респавн-запросов за период времени, пока ГГ находится на уровне. При переходе на другой уровень, счётчик max_count сбрасывается. (ставить не обязательно) min_count = минимальное колличество нпс, для экстренного респавна. (ставить не обязательно) max_spawn = колличество нпс за один цикл респавна. idle_spawn = тип спавна. Известно три типа medium, often, seldom. Обычно, используется тип medium. conditions =Условие респавна. Можно установить проверку условий (инфопоршень), где респавн будет происходить только при выполнении условия. Номер означает общий процент выполнения респавна. Например так: conditions = {+инфо} 100, 0 где, респавн будет происходить со сто-процентной вероятностью, только при наличии установленного инфопоршна.
2. В файле spawn_section.ltx, создаём респавн-секции:
[esc_urody_respawn_1]:stalker $spawn = "respawn\esc_urody_respawn_1" character_profile = sim_urody_novice spec_rank = novice community = bandit [esc_urody_respawn_2]:stalker $spawn = "respawn\esc_urody_respawn_2" character_profile = sim_urody_regular spec_rank = regular community = bandit
Где: esc_urody_respawn_1 id респавн-секции. sim_urody_novice и sim_urody_regular классы профайлов нпс. novice и regular ранги нпс. bandit группировка нпс.
3. В файле npc_profile.xml регистрируем классы sim_urody_regular и sim_urody_novice
<character id="sim_urody_regular"> <class>sim_urody_regular</class> </character> <character id="sim_urody_novice"> <class>sim_urody_novice</class> </character>
4. Создаём профили, в файле character_desc_simulation.xml, с классами sim_urody_regular и sim_urody_novice и группировкой bandit.