Респаун, один из самых часто задаваемый вопросов на форумах. Вот, решил написать статью, дабы не втирать одно и тоже каждому, кто не может с этим разобраться.
Для создания респавна, понадобится два файла, 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
Где: 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, создаём респавн-секции
4. Создаём профили, в файле character_desc_simulation.xml, с классами sim_urody_regular и sim_urody_novice и группировкой bandit.
В принципе, респавн мутантов идентичен респавну нпс. Но с одним лишь отличием, которое его значительно упрощает. Вся настройка респавна мутантов, ограничивается секцией в файле all.spawn. Вписываем секцию респавнера, как указано в респавне НПС. Все настройки идентичны, кроме строки respawn_section = *** В ней прописываем типы мутантов, из файла se_respawn.script. Такие как flesh_weak, flesh_normal, dog_weak, boar_strong, и т.д..
Обязательные условия респавна
1. На уровне обязательно должен быть хоть один гулаг для респавнящихся нпс и мутантов. Так как колличество неписей для респавна, ориентируется по доступным местам в гулагах.
2. Респавн производится, только если под гулагами есть доступные работы.
3. На каждом уровне, респавн ограничен определёнными типами неписей. Данные ограничения установлены в файле misc\smart_terrain_presets.ltx. Чтобы сделать возможным респавн неписей, не предусмотренных на данном уровне. Надо в секции нужного уровня, дописать требуемые типы неписей.
----------------------
Для проверки созданного респавнера, можно не ждать когда сработает системный респавн, а вызвать принудительно респавн в нужной секции. Для этого, прописываем в любой логике, вызов функции %=respawner_spawn(имя респавнера)%. Где, имя респавнера - имя секции, созданой в файле all.spawn. Скобки обязательны.
Например, можно создать рядом с зоной респавнера, временный рестриктор. И в кастом дате рестриктора, прописать вызов функции принудительного вызова респавна, в нужном респавнере, при входе ГГ в зону рестриктора
2. Затем, в файле game_story_id.ltx регистрируем id ящика. (выбираем любое свободное число).
----------------------
3. Создаём респавнер в файле all.spawn. Координаты и размеры зоны респавнера, должны быть такими, чтобы инвентарный ящик поместился внутри зоны респавнера
Код
[10001] ; cse_abstract properties section_name = respawn name = имя респавнера position = координаты x,y,z direction = 0,0,0
idle_spawn = тип спавна. Инвентарь не имеет типов спавна, поэтому ставится (-1).
parent = ай-ди инвентарного ящика, в котором производить респавн вещей.
item_spawn = (truefalse) возможность включения и отключения респавна. Можно задавать условия.
max_count = количество респав-циклов за определённый период времени. (Пока ГГ находится на уровне. После перехода ГГ на другой уровень, счётчик сбрасывается).
----------------------
4. Создаём вызов респавна. Обычно вызов производится из smart_terrain. В custom_data любого подходящего smart_terrain, под секцией [smart_terrain], вписываем вызов респавна
Код
[smart_terrain] respawn = имя_респавнера
И респавн будет производиться, при каждом пополнении нпс, под данным смартом.