Последнее на форуме

Досчитай до 10000 [v.4.0] (3744)
Ответил ccerega 15:46:26

"Тайные Тропы 2". Обсуждение мода (150)
Ответил myjayl 11:22:11

Вопросы и ответы (Моды) (735)
Ответил sal777 17:57:03

Бар «100 рентген» v.28 (3107)
Ответил Фенрир 15:07:44

Чистое небо. Вопросы и ответы (1728)
Ответил myjayl 12:26:52

Люди говорят

kir_420 ответил в Подборка лучших фильмов про Постапокалипсис (20:26:00)
Дорога, письма мертвого человека.... гдье?

PUPS2 ответил в Вещи погибшего (13:00:55)
Блин, полгода ждал продолжения. Просто немного коротковато, для того что бы оценить по достоинству. Определённо интригует, есть "изюминка". Так что там дальше? Или уже "запал" прошёл? Зря. "Накидывая" расказы, мы можем натолкнуть режиссёров на очень интересный сюжет, который в свою очередь, может заставить ("свербить") талантливых людей сварганить С2.
Желаю удачи.

thestrelok220 ответил в Военный корреспондент 2: Зов Донбасса (15:52:58)
ЩА заценим)

geek580 ответил в Remake (15:02:35)
Ссылка нерабочая, пишет, что нет такой папки.

Oshiro ответил в Смерти Вопреки. В паутине лжи. (00:09:54)
Отличная игра. Создателям огромное спасибо!
Жаль нельзя было прокачать M4 и HK416 я так и не встретил.

Страница 1 из 11
Архив - только для чтения
Модератор форума: FAN, V@Dik008 
Форум настоящего сталкера » Техническая поддержка » Свалка » Спавн NPC через all.spawn
Спавн NPC через all.spawn
# 1
Суббота, 01.02.2014, 10:09:03

Ранг: Мастер
Сообщений: 706
Награды: 34 Регистрация: 08.11.2012  

Создание NPC через all.spawn


Нам понадобятся:
1. all.spawn
2. spawn_sections.ltx
3. character_desc_escape.xml
4. npc_profile.xml
5. game_story_ids.ltx

Начнем.

1. Распаковываем all.spawn с помощью ACDC. После декомпиляции открываем файл alife_l01_escape.ltx. Пролистываем его до конца. Если у вас чистый all.spawn, то последняя секция должна быть [869]. В самом конце вставляем эту секцию:

Код
[870]
; cse_abstract properties
section_name = stalker
name = esc_newbie
position = -214.590072631836,-23.1829700469971,-125.076843261719
direction = 0.0445535257458687,-0.000645029998850077,0.0144814234226942

; cse_alife_trader_abstract properties
money = 5000
character_profile = esc_newbie

; cse_alife_object properties
game_vertex_id = 59
distance = 0
level_vertex_id = 39266
object_flags = 0xffffffbf
custom_data = <<END
     
[logic]
active = walker@stay_at_position
combat_ignore = combat_ignore
danger = danger_condition
     
[walker@stay_at_position]
path_walk = esc_newbie_position_walk
path_look = esc_newbie_position_look
     
[combat_ignore]
combat_ignore_cond = always
     
[danger_condition]
ignore_distance = 0
ignore_distance_corpse = 0
     
; cse
[smart_terrains]
none = true
END
story_id = 10000

; cse_visual properties
visual_name = actors\neytral\ stalker_neytral_nauchniy.ogf

; cse_alife_creature_abstract properties
g_team = 0
g_squad = 1
g_group = 5
health = 1
dynamic_out_restrictions =   
dynamic_in_restrictions =   

upd:health = 1
upd:timestamp = 0x6d6d695f
upd:creature_flags = 0x75
upd:position = -214.590072631836,-23.1829700469971,-125.076843261719
upd:o_model = 0
upd:o_torso = -0.000645029998850077,0.0445535257458687,0
upd:g_team = 0
upd:g_squad = 1
upd:g_group = 5

; cse_alife_monster_abstract properties

upd:next_game_vertex_id = 65535
upd:prev_game_vertex_id = 65535
upd:distance_from_point = 0
upd:distance_to_point = 0

; cse_alife_human_abstract properties
predicate5 = 1,0,0,2,0
predicate4 = 2,2,1,2

; cse_ph_skeleton properties

upd:start_dialog =   

; se_stalker properties


Думаю, нужно объяснить что к чему.

Код
[870]
; cse_abstract properties
section_name = stalker - тип предмета, в нашем случае NPC
name = esc_newbie - это мы будем вписывать в game_story_ids.ltx
position = -214.590072631836,-23.1829700469971,-125.076843261719 - координаты спавна NPC
direction = 0.0445535257458687,-0.000645029998850077,0.0144814234226942 - координаты взгляда NPC

; cse_alife_trader_abstract properties
money = 5000 - его деньги
character_profile = esc_newbie - ссылка на character_desc_escape.xml, раз мы в alife_l01_escape.ltx работаем

; cse_alife_object properties
game_vertex_id = 59 - гейм вертекс спавна
distance = 0
level_vertex_id = 39266 - левел вертекс спавна
object_flags = 0xffffffbf
custom_data = <<END
     
[logic] - тут прописывается логика, в нашем случае "пассивный"  walker
active = walker@stay_at_position
combat_ignore = combat_ignore
danger = danger_condition
     
[walker@stay_at_position]
path_walk = esc_newbie_position_walk
path_look = esc_newbie_position_look
     
[combat_ignore]
combat_ignore_cond = always
     
[danger_condition]
ignore_distance = 0
ignore_distance_corpse = 0
     
; cse
[smart_terrains] - здесь прописывается смарт террейн, где будет бродить NPC. У нас ходит везде.
none = true
END
story_id = 10000 - его id, нужен для game_story_ids.ltx

; cse_visual properties
visual_name = actors\neytral\ stalker_neytral_nauchniy.ogf - модель NPC   

; cse_alife_creature_abstract properties
g_team = 0
g_squad = 1
g_group = 5
health = 1 - здоровье NPC
dynamic_out_restrictions =   
dynamic_in_restrictions =   

upd:health = 1
upd:timestamp = 0x6d6d695f
upd:creature_flags = 0x75
upd:position = -214.590072631836,-23.1829700469971,-125.076843261719
upd:o_model = 0
upd:o_torso = -0.000645029998850077,0.0445535257458687,0
upd:g_team = 0
upd:g_squad = 1
upd:g_group = 5

; cse_alife_monster_abstract properties

upd:next_game_vertex_id = 65535
upd:prev_game_vertex_id = 65535
upd:distance_from_point = 0
upd:distance_to_point = 0

; cse_alife_human_abstract properties
predicate5 = 1,0,0,2,0
predicate4 = 2,2,1,2

; cse_ph_skeleton properties

upd:start_dialog =   

; se_stalker properties

C этим файлом закончили. Сохраняем, выходим.
2. Открываем way_l01_escape.ltx. В самом конце вписываем эту секцию:

Код
[esc_newbie_position_walk]
points = p0
p0:name = name00
p0:flags = 0x1
p0:position =   
p0:game_vertex_id =   
p0:level_vertex_id =
     
[esc_newbie_position_look]
points = p0
p0:name = name00
p0:flags = 0x1
p0:position =   
p0:game_vertex_id =   

p0:level_vertex_id =


Объясняю:

Код
[esc_newbie_position_walk]
points = p0
p0:name = name00
p0:flags = 0x1
p0:position =  координаты, на которых стоит NPC
p0:game_vertex_id = гейм вертекс спавна NPC
p0:level_vertex_id = левел вертекс спавна NPC
     
[esc_newbie_position_look]
points = p0
p0:name = name00
p0:flags = 0x1
p0:position =  координаты, на которых стоит NPC
p0:game_vertex_id = гейм вертекс спавна NPC
p0:level_vertex_id = левел вертекс спавна NPC


Сохраняем. Запускаем компиляцию нового all.spawn.

3. В character_desc_escape.xml перед секцией Волка добавляем эту секцию:

Код
<!---------------------------------------esc_newbie----------------------------------------------------->
   <specific_character id="esc_newbie" team_default = "1">
    <name>Тестовый</name>
    <icon>ui_npc_u_stalker_neytral_rukzak_3</icon>
    <bio>Тестовый непись</bio>

    <class>esc_newbie</class>
    <community>stalker</community> <terrain_sect>stalker_terrain</terrain_sect>
      
    <rank>1000</rank>
    <reputation>400</reputation>
    <money min="1000" max="3000" infinitive="0"/>
      
    <snd_config>characters_voice\human_01\stalker\</snd_config>
    <crouch_type>-1</crouch_type>
     
    <visual>actors\neytral\ stalker_neytral_nauchniy.ogf</visual>
    <supplies>
     [spawn] \n
     wpn_pm \n
     ammo_9x18_fmj = 1 \n
     wpn_ak74 \n
     ammo_5.45x39_fmj \n
    </supplies>
      
#include "gameplay\character_criticals_4.xml"

    <start_dialog>hello_dialog</start_dialog>
   </specific_character>

Сохраняем, выходим.

4. В npc_profile.xml после секции "escape_trader" добавляем эту секцию:

Код
              <character id="esc_newbie">
    <class>esc_newbie</class>
   </character>

Сохряняем.

5. В spawn_sections.ltx после секции [dolg_regular] вставляем эту секцию:

Код
[esc_newbie]:stalker
$spawn     = "respawn\esc_newbie"
character_profile    = esc_newbie
spec_rank = master
community = stalker


Сохраняем, выходим.

6. Ну и в game_story_ids.ltx в самом конце вписываем эту строчку

Код
10000          = "esc_newbie"


Сохраняем и выходим. Все, наш NPC готов!
P.S. Нужно начинать новую игру.
Автор: [MarveL]



Форум настоящего сталкера » Техническая поддержка » Свалка » Спавн NPC через all.spawn
Страница 1 из 11
Поиск:
Вверх