Меню






Опрос
В каком формате вы бы хотели видеть стримы?
Всего ответов: 30

Стрим

Подписывайтесь на наш канал на youtube! Каждый день стримы по сталкеру.
Сюда!

Категории раздела
Работа со скриптами [9]
Работа с текстурами [3]
Респавн [2]
Работа со звуками [2]

Свежие моды
Материалов за текущий период нет.


Новое на форуме
  • Пожелания (5)
  • Набор модераторов (3)
  • Создание моделей и их добавление в Stalker (0)
  • Бар "100 Рентген" (3)
  • Обсуждение проекта (2)

  • Опрос
    Как вы попали на наш сайт?
    Всего ответов: 46

    Главная » Статьи » Модостроение Зов Припяти » Респавн

    Респавн ч.1

    Респаун 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
    shape0type = sphere
    shape0offset = 0,0,0
    shape0radius = 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 = respawnesc_urody_respawn_1
    character_profile = sim_urody_novice
    spec_rank = novice
    community = bandit

    [esc_urody_respawn_2]stalker
    $spawn = respawnesc_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
    classsim_urody_regularclass
    character

    character id=sim_urody_novice
    classsim_urody_noviceclass
    character

     

    4. Создаём профили, в файле character_desc_simulation.xml, с классами sim_urody_regular и sim_urody_novice и группировкой bandit. 

     

    Респаун мутантов


    В принципе, респавн мутантов идентичен респавну нпс. Но с одним лишь отличием, которое его значительно упрощает. Вся настройка респавна мутантов, ограничивается секцией в файле all.spawn. Вписываем секцию респавнера, как указано в -RESPAWN NPC-. Все настройки идентичны, кроме строки respawn_section = . В ней прописываем типы мутантов, из файла se_respawn.script. Такие как flesh_weak, flesh_normal, dog_weak, boar_strong, и т.д.. 



    ОБЩИЕ НАСТРОЙКИ 
    Обязательные условия респавна:

    1. На уровне обязательно должен быть хоть один гулаг для респавнящихся нпс и мутантов. Так как колличество неписей для респавна, ориентируется по доступным местам в гулагах. 

    2. Респавн производится, только если под гулагами есть доступные работы. 

    3. На каждом уровне, респавн ограничен определёнными типами неписей. Данные ограничения установлены в файле miscsmart_terrain_presets.ltx. Чтобы сделать возможным респавн неписей, не предусмотренных на данном уровне. Надо в секции нужного уровня, дописать требуемые типы неписей. 


     

    Для проверки созданного респавнера, можно не ждать когда сработает системный респавн, а вызвать принудительно респавн в нужной секции. Для этого, прописываем в любой логике, вызов функции %=respawner_spawn(имя респавнера)%. Где, имя респавнера - имя секции, созданой в файле all.spawn. Скобки обязательны. 

    Например, можно создать рядом с зоной респавнера, временный рестриктор. И в кастом дате рестриктора, прописать вызов функции принудительного вызова респавна, в нужном респавнере, при входе ГГ в зону рестриктора 

    [logic]
    active = sr_idle@in

    [sr_idle@in]
    on_actor_inside = %=respawner_spawn(имя респавнера)% sr_idle@out

    [sr_idle@out]
    on_actor_outside = sr_idle@in

    Функция принудительного вызова респавна, находится в файле xr_effects.script. 


    Респаун предметов

     
    Респавн инвентаря в инвентарных ящиках, несколько отличается от способа респавна NPC. 

     

    1. Первое, что нам нужно сделать, это создать инвентарный ящик в файле all.spawn 

    [10000]
    ; cse_abstract properties
    section_name = inventory_box
    name =  имя ящика
    position = координаты x,y,z
    direction = 0,0,0

    ; cse_alife_object properties
    game_vertex_id = гейм-вертекс
    distance = 0
    level_vertex_id = левел-вертекс
    object_flags = 0xffffffba

    story_id = ай-ди ящика

    ; cse_visual properties
    visual_name = equipmentsitem_box_01

     

    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

    ; cse_alife_object properties
    game_vertex_id = гейм-вертекс
    distance = 2
    level_vertex_id = левел-вертекс
    object_flags = 0xffffff3e
    custom_data = END
    [respawn]
    respawn_section = список вещей респавна
    idle_spawn = -1
    parent = ай-ди ящика
    item_spawn = true
    max_count = 7
    END

    ; cse_shape properties
    shapes = shape0
    shape0type = box
    shape0axis_x = 0.5,0,0   (ширина зоны респавнера, по X)
    shape0axis_y = 0,0.5,0   (высота зоны респавнера)
    shape0axis_z = 0,0,1     (ширина зоны респавнера, по Z)
    shape0offset = 0,0,0

    ; cse_alife_space_restrictor properties
    restrictor_type = 3

    ; se_respawn properties

    Где respawn_section = список вещей респавна. Как и в респавнерах неписей, возможна прописка соотношений между вещами.

    Например:

    respawn_section = wpn_pm,2, vodka,2, medkit,1, energy_drink,2,ammo_9x18_fmj,3  
    idle_spawn = тип спавна.

    Инвентарь не имеет типов спавна, поэтому ставится (-1). 

    parent = ай-ди инвентарного ящика, в котором производить респавн вещей. 

    item_spawn = (truefalse) возможность включения и отключения респавна. Можно задавать условия. 

    max_count = количество респав-циклов за определённый период времени. (Пока ГГ находится на уровне. После перехода ГГ на другой уровень, счётчик сбрасывается). 

     

    4. Создаём вызов респавна. Обычно вызов производится из smart_terrain. В custom_data любого подходящего smart_terrain, под секцией [smart_terrain], вписываем вызов респавна 

    [smart_terrain]
    respawn = имя респавнера И респавн будет производиться, при каждом пополнении нпс, под данным смартом. 

    Категория: Респавн | Добавил: AlexThunder (06.11.2016)
    Просмотров: 143 | Рейтинг: 0.0/0
    Всего комментариев: 0
    avatar
    PDA


    Stalker STREAM


    PDA
    Логин:
    Пароль:

    Сталкер-сеть

    Статистика

    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0

    Друзья
    Моды Тени Чернобыля, Чистое Небо, Зов Припяти. Карты, Читы, Прохождение модификаций Stalker 2, сюжет, скачать моды stalker



    Авторское право на игру и использованные в ней материалы принадлежат GSC Game World.
    Любое использование материалов сайта возможно только с разрешения администрации

    uCoz© 2017