Сповіщення
Очистити все

SoC. Respawn


Ранг:
Майстер
Роль:
Гість
Записи:
752
Приєднався:
2 роки тому
 

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 , sk = 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 .

 


   
Цитата