Распаковываем all.spawn и открываем любой alife_...ltx
Добавляем секцию:
[131] ;номер по порядку.
; cse_abstract properties
section_name = smart_terrain
name = a10_sv_terrain ;уникальное имя.
position = 69.4, 6.4, 491.4 ;координаты.
direction = 0, 0, 0
id = 65535
version = 128
script_version = 12
spawn_id = 5783
; cse_alife_object properties
game_vertex_id = 151 ;координаты.
distance = 11.9
level_vertex_id = 794119 ;координаты.
object_flags = 0xffffff3e
custom_data = <<END
[smart_terrain]
cfg = scripts\smart\a10_sv_terrain.ltx ;путь к логике.
END
; cse_shape properties
shapes = 1
shape_0:type = sphere
shape_0:offset = 0,0,0
shape_0:radius = 7
; cse_alife_space_restrictor properties
restrictor_type = 3
arriving_npc =
npc_info = 0
dead_times = 0
Логика по адресу: gamedata\configs\scripts\smart
Создаем файл a10_sv_terrain.ltx
[smart_terrain]
squad_id = 100 ;значимости не заметил.
arrive_dist = 20 ;радиус от точки смарта, при входе в который сквад начинает свою работу.
max_population = 1 ;сколько мутантов могут быть в одном смарте.
respawn_params = respawn@dog
smart_control = smart_control
[respawn@dog] ;список сквадов для респавна.
spawn_dog
[spawn_dog] ;если наш сквад убьют, он возродится.
spawn_squads = b2_dog_hunter_squad
spawn_num = 1
[smart_control]
noweap_zone = pri_a16_sr_noweap ;зона принудительного убора оружия
ignore_zone = pri_surge_hide_a16; pri_a16_sr_light ;зоны, в которых у НПС устанавливаются флаги combat_ignore_cond и combat_ignore_keep_when_attacked.
alarm_start_sound = {-pri_b305_fifth_cam_end}pri_a16_base_alarm, nil ;озвучка на начало атаки на базу ГГ.
alarm_stop_sound = {-pri_b305_fifth_cam_end}pri_a16_base_relax, nil ;озвучка на конец атаки на базу ГГ.
[exclusive] ;пути к логикам.
;имя = путь к логике.
dikobraz = test_logic.ltx
dog = test_logic.ltx
Сама логика (test_logic.ltx) по адресу: gamedata\configs\scripts
Основные моменты для НПС:
[logic@dikobraz] ;наше имя.
suitable = {=check_npc_name(a10_dolg_dikobraz)} true ;принадлежность персонажа к этой логике.
prior = 200
active = walker ;одна и логик (их много).
post_combat_time = 0,0 ;после боевая задержка (необязательно).
level_spot = mechanic ;значок на карте механика.
[walker]
path_walk = dikobraz_walk ;здесь он стоит.
path_look = dikobraz_look ;в эту сторону смотрит.
Секции в way:
[a10_sv_terrain_dikobraz_walk] ;сначала имя смарта, потом название.
points = p0
p0:name = wp00
p0:flags = 0x1 ;флаги для синхронизации.
p0:position = 46.5, 6.5, 475.2
p0:game_vertex_id = 66
p0:level_vertex_id = 740117
[a10_sv_terrain_dikobraz_look] ;сначала имя смарта, потом название.
points = p0
p0:name = wp00
p0:flags = 0x1 ;флаги для синхронизации.
p0:position = 45.1, 6.2, 472.3
p0:game_vertex_id = 66
p0:level_vertex_id = 736705
Для мутантов:
[logic@dog] ;то же имя.
suitable = {=target_squad_name(b2_dog_hunter_squad)} true ;принадлежность одного члена этого сквада к этой логике (для других пишется отдельно аналогично).
prior = 100
active = mob_home@dog ;популярная логика для сквада.
monster_job = true
on_death = death@dog ;эту же схему можно прописать и НПС.
on_hit = hit@dog ;эту же схему можно прописать и НПС.
[hit@all]
on_info = %+b2_dog_hunter_hit% ;инфопоршень при хите.
[death@dog]
on_info = %+b2_dog_hunter_dead% ;инфопоршень при смерти мутанта.
[mob_home@dog] ;то есть ясно, что это значит "дом": мутанты торчат на одной местности смарта.
path_home = dog_home ;так же прописывается, как и у НПС.
Ссылки на похожие статьи:
Создание сквада сталкеров (НПС)
Спавн сквада мутантов
Автор: mmihaill