[27.05.2014] Вопросы ... ( Мастер)
[16.08.2011] N.M.K ( Digefal)
[15.08.2011] Набор мо... ( ☺[Super]Nub4ik☺)
[15.08.2011] Набор ад... ( ☺[Super]Nub4ik☺)
[15.08.2011] Вышел N.... ( ☺[Super]Nub4ik☺)
[14.08.2011] Hud для ... ( ☺[Super]Nub4ik☺)
[13.08.2011] Тип заяв... ( ☺[Super]Nub4ik☺)
[13.08.2011] Тип заяв... ( ☺[Super]Nub4ik☺)
[11.08.2011] Набор ср... ( ☺[Super]Nub4ik☺)
[10.08.2011] N.M.K MP... ( ☺[Super]Nub4ik☺)
[10.08.2011] Звуки ор... ( ☺[Super]Nub4ik☺)
[10.08.2011] Текстуры... ( ☺[Super]Nub4ik☺)
[10.08.2011] Оружие и... ( ☺[Super]Nub4ik☺)
[10.08.2011] Квесты ( ☺[Super]Nub4ik☺)
[10.08.2011] Нпс ( ☺[Super]Nub4ik☺)
    [17.08.2011] HARDWAR ... ( 0)
[17.08.2011] PostScri... ( 0)
[17.08.2011] Old Good... ( 0)
[17.08.2011] Depressi... ( 0)
[17.08.2011] Killers ... ( 0)
[17.08.2011] Graphic ... ( 0)
[17.08.2011] Новая бр... ( 1)
[17.08.2011] S.T.A.L.... ( 0)
[15.08.2011] Чит для ... ( 0)
[15.08.2011] Чит для ... ( 0)
[15.08.2011] Чит для ... ( 0)
[15.08.2011] Чит для ... ( 0)
[15.08.2011] Чит для ... ( 0)
[15.08.2011] Чит для ... ( 0)
[15.08.2011] Читы для... ( 0)
[15.08.2011] Вступлен... ( 0)
[15.08.2011] Изменяем... ( 0)
[15.08.2011] Создание... ( 0)
[15.08.2011] Добавлен... ( 0)
[15.08.2011] Создание... ( 0)
[15.08.2011] Возвраще... ( 0)
[15.08.2011] Обзор от... ( 0)
[13.08.2011] Создаём ... ( 0)
[13.08.2011] Как реда... ( 0)
[13.08.2011] Как сдел... ( 0)
[13.08.2011] Гармошка ( 0)
[13.08.2011] Изменени... ( 0)
[13.08.2011] Невидимы... ( 0)
[13.08.2011] увеличен... ( 0)
[13.08.2011] Как пове... ( 0)
Нравится ли вам сетевой мод N.M.K Team?
Всего ответов: 43
Чтото ваше
Главная » Статьи » Модостроение » Модостроение Тень Чернобыля

RESPAWN
Respawn NPC.

Для создания респавна 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.
[править]
Respawn монстров.

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

ОБЩИЕ НАСТРОЙКИ.

Обязательные условия респавна:

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

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

3. На каждой локации, респавн ограничен определёнными типами неписей. Данные ограничения установлены в файле misc\smart_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.
[править]
Respawn предметов.


Респавн предметов в инвентарных ящиках, несколько отличается от способа респавна 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 = equipments\item_box_01




2. Затем, в файле game_story_id.ltx регистрируем story_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
shape0:type = box
shape0:axis_x = 0.5,0,0 ;(ширина зоны респавнера, по X)
shape0:axis_y = 0,0.5,0 ;(высота зоны респавнера)
shape0:axis_z = 0,0,1 ;(ширина зоны респавнера, по Z)
shape0:offset = 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 = Story_id инвентарного ящика (из game_story_id.ltx), в котором производить респавн вещей .

item_spawn = (true\false) возможность включения и отключения респавна. Можно задавать условия, например инфопоршнем или функцией (разумеется прописанной в xr_conditions.script).

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

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

[smart_terrain]
respawn = имя респавнера


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

Категория: Модостроение Тень Чернобыля | Добавил: ☺[Super]Nub4ik☺ (02.08.2011)
Просмотров: 1436
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
   

СТАЛКЕР!
Я всегда рад видеть
еще одну живую душу!
Но я незнаю кто ты?
Регистрация
Вход!
Модостроение Тень Чернобыля [66]
Модостроение Чистое Небо [14]
Модостроение Зов Припяти [19]
Общее [13]
Чтото ваше

В зоне всего: 1
Врагов: 1
Друзей 0

______________________

   









  Хостинг от uCoz