add game&rawdata

This commit is contained in:
Vasily Petrov 2026-06-17 23:06:51 +03:00
parent 0133cd976c
commit 49b34b5546
45731 changed files with 709831 additions and 0 deletions

View file

@ -0,0 +1,6 @@
[logic]
active = ph_idle@open
[ph_idle@open]
nonscript_usable = true
tips = actor_inventory_box_use

View file

@ -0,0 +1,13 @@
[logic@stalker_meet]
active = animpoint@zat_b28_heli_search
[animpoint@zat_b28_heli_search]
avail_animations = zat_b28_heli3_serch
cover_name = zat_b28_heli_3_serch_aminpoint
on_info = {+zat_b28_heli_3_searched} %=destroy_object%
;reach_distance = 10
meet = no_meet
use_camp = false
combat_ignore_cond = true
combat_ignore_keep_when_attacked = true
invulnerable = true

View file

@ -0,0 +1,28 @@
[logic]
active = ph_door@close
[ph_door@locked]
locked = true
closed = true
snd_open_start = wood_small_open
snd_close_start = wood_small_close_start
snd_close_stop = wood_small_close_stop
;hit_on_bone = 2|ph_door@close
[ph_door@close]
locked = false
closed = true
snd_open_start = wood_small_open
snd_close_start = wood_small_close_start
snd_close_stop = wood_small_close_stop
on_use = ph_door@open
;hit_on_bone = 1|ph_door@free ;--|2|ph_door@free
[ph_door@open]
locked = false
closed = false
snd_open_start = wood_small_open
snd_close_start = wood_small_close_start
snd_close_stop = wood_small_close_stop
on_use = ph_door@close
;hit_on_bone = 1|ph_door@free ;--|2|ph_door@free

View file

@ -0,0 +1,4 @@
[camp]
stories = test_story
guitar_themes = test_guitar
harmonica_themes = test_harmonica

View file

@ -0,0 +1,9 @@
[smart_terrain]
spawn_point = self
[exclusive]
stalker_1= conrack_stalkers.ltx
stalker_2= conrack_stalkers.ltx
stalker_3= conrack_stalkers.ltx
stalker_4= conrack_stalkers.ltx

View file

@ -0,0 +1,78 @@
[logic@stalker_1]
suitable = {=check_npc_name(conrack_selo_stalker)} true
prior = 200
active = walker@1
post_combat_time = 0, 0
[walker@1] ;Æäåì èãðîêà
path_walk = st_1_stay
path_look = st_1_look
combat_igrore_cond = true
meet = no_meet
wounded = wounded
gather_items_enabled = false
help_wounded_enabled = false
corpse_detection_enabled = false
on_game_timer = 200 | walker@2
;----------------------------------------------------------------------------------------------
[logic@stalker_2]
suitable = {=check_npc_name(conrack_selo_stalker)} true
prior = 200
active = walker@2
post_combat_time = 0, 0
[walker@2] ;Æäåì èãðîêà
path_walk = st_2_stay
path_look = st_2_look
combat_igrore_cond = true
meet = no_meet
wounded = wounded
gather_items_enabled = false
help_wounded_enabled = false
corpse_detection_enabled = false
on_game_timer = 200 | walker@1
;----------------------------------------------------------------------------------------------
[logic@stalker_3]
suitable = {=check_npc_name(conrack_selo_stalker)} true
prior = 200
active = walker@3
post_combat_time = 0, 0
[walker@3] ;Æäåì èãðîêà
path_walk = st_3_stay
path_look = st_3_look
combat_igrore_cond = true
meet = no_meet
wounded = wounded
gather_items_enabled = false
help_wounded_enabled = false
corpse_detection_enabled = false
on_game_timer = 200 | walker@4
;----------------------------------------------------------------------------------------------
[logic@stalker_4]
suitable = {=check_npc_name(conrack_selo_stalker)} true
prior = 200
active = walker@4
post_combat_time = 0, 0
[walker@4] ;Æäåì èãðîêà
path_walk = st_4_stay
path_look = st_4_look
combat_igrore_cond = true
meet = no_meet
wounded = wounded
gather_items_enabled = false
help_wounded_enabled = false
corpse_detection_enabled = false
on_game_timer = 200 | walker@3

View file

@ -0,0 +1,4 @@
[smart_terrain]
[exclusive]
tushkano = corr_selo_tushkano_logic.ltx

View file

@ -0,0 +1,11 @@
[logic@tushkano]
suitable = {=check_npc_name(tushkano)} true
active = mob_home@1
monster_job = true
[mob_home@1]
path_home = tushkano_home
home_min_radius = 2
home_max_radius = 3
aggressive = true

View file

@ -0,0 +1,11 @@
[logic]
active = ph_door@unlocked
[ph_door@unlocked]
locked = false
closed = true
;snd_init = trader_door_unlock
;snd_open_start = trader_door_open_start
;snd_close_start = trader_door_close_start
;snd_close_stop = trader_door_close_stop

View file

@ -0,0 +1,6 @@
[logic]
active = ph_door@locked
[ph_door@locked]
locked = true
snd_open_start = trader_door_locked

View file

@ -0,0 +1,34 @@
[logic]
active = ph_door@locked
[ph_door@locked]
locked = true
closed = true
snd_open_start = trader_door_open_start
snd_close_start = trader_door_close_start
snd_close_stop = trader_door_close_stop
hit_on_bone = 2|ph_door@close
[ph_door@close]
locked = false
closed = true
snd_open_start = trader_door_open_start
snd_close_start = trader_door_close_start
snd_close_stop = trader_door_close_stop
on_use = ph_door@open
hit_on_bone = 1|ph_door@free|2|ph_door@free
[ph_door@open]
locked = false
closed = false
snd_open_start = trader_door_open_start
snd_close_start = trader_door_close_start
snd_close_stop = trader_door_close_stop
on_use = ph_door@close
hit_on_bone = 1|ph_door@free|2|ph_door@free
[ph_door@free]
locked = false
closed = true
no_force = true
on_use = ph_door@open

View file

@ -0,0 +1,26 @@
[logic]
active = ph_door@free
[ph_door@close]
locked = false
closed = true
snd_open_start = trader_door_open_start
snd_close_start = trader_door_close_start
snd_close_stop = trader_door_close_stop
on_use = ph_door@open
;hit_on_bone = 1|ph_door@free|2|ph_door@free
[ph_door@open]
locked = false
closed = false
snd_open_start = trader_door_open_start
snd_close_start = trader_door_close_start
snd_close_stop = trader_door_close_stop
on_use = ph_door@close
;hit_on_bone = 1|ph_door@free|2|ph_door@free
[ph_door@free]
locked = false
closed = true
no_force = true
on_use = ph_door@open

View file

@ -0,0 +1,26 @@
[logic]
active = ph_door@open
[ph_door@close]
locked = false
closed = true
snd_open_start = trader_door_open_start
snd_close_start = trader_door_close_start
snd_close_stop = trader_door_close_stop
on_use = ph_door@open
;hit_on_bone = 1|ph_door@free|2|ph_door@free
[ph_door@open]
locked = false
closed = false
snd_open_start = trader_door_open_start
snd_close_start = trader_door_close_start
snd_close_stop = trader_door_close_stop
on_use = ph_door@close
;hit_on_bone = 1|ph_door@free|2|ph_door@free
[ph_door@free]
locked = false
closed = true
no_force = true
on_use = ph_door@open

View file

@ -0,0 +1,26 @@
[logic]
active = ph_door@close
[ph_door@close]
locked = false
closed = true
snd_open_start = trader_door_open_start
snd_close_start = trader_door_close_start
snd_close_stop = trader_door_close_stop
on_use = ph_door@open
hit_on_bone = 1|ph_door@free|2|ph_door@free
[ph_door@open]
locked = false
closed = false
snd_open_start = trader_door_open_start
snd_close_start = trader_door_close_start
snd_close_stop = trader_door_close_stop
on_use = ph_door@close
hit_on_bone = 1|ph_door@free|2|ph_door@free
[ph_door@free]
locked = false
closed = true
no_force = true
on_use = ph_door@open

View file

@ -0,0 +1,34 @@
[logic]
active = ph_door@locked
[ph_door@locked]
locked = true
closed = true
snd_open_start = metal_small_open
snd_close_start = metal_small_close_start
snd_close_stop = metal_small_close_stop
hit_on_bone = 2|ph_door@close
[ph_door@close]
locked = false
closed = true
snd_open_start = metal_small_open
snd_close_start = metal_small_close_start
snd_close_stop = metal_small_close_stop
on_use = ph_door@open
hit_on_bone = 1|ph_door@free|2|ph_door@free
[ph_door@open]
locked = false
closed = false
snd_open_start = metal_small_open
snd_close_start = metal_small_close_start
snd_close_stop = metal_small_close_stop
on_use = ph_door@close
hit_on_bone = 1|ph_door@free|2|ph_door@free
[ph_door@free]
locked = false
closed = true
no_force = true
on_use = ph_door@open

View file

@ -0,0 +1,26 @@
[logic]
active = ph_door@close
[ph_door@close]
locked = false
closed = true
snd_open_start = metal_small_open
snd_close_start = metal_small_close_start
snd_close_stop = metal_small_close_stop
on_use = ph_door@open
hit_on_bone = 1|ph_door@free|2|ph_door@free
[ph_door@open]
locked = false
closed = false
snd_open_start = metal_small_open
snd_close_start = metal_small_close_start
snd_close_stop = metal_small_close_stop
on_use = ph_door@close
hit_on_bone = 1|ph_door@free|2|ph_door@free
[ph_door@free]
locked = false
closed = true
no_force = true
on_use = ph_door@open

View file

@ -0,0 +1,34 @@
[logic]
active = ph_door@locked
[ph_door@locked]
locked = true
closed = true
snd_open_start = wood_large_open
snd_close_start = wood_large_close_start
snd_close_stop = wood_large_close_stop
hit_on_bone = 2|ph_door@close
[ph_door@close]
locked = false
closed = true
snd_open_start = wood_large_open
snd_close_start = wood_large_close_start
snd_close_stop = wood_large_close_stop
on_use = ph_door@open
hit_on_bone = 1|ph_door@free|2|ph_door@free
[ph_door@open]
locked = false
closed = false
snd_open_start = wood_large_open
snd_close_start = wood_large_close_start
snd_close_stop = wood_large_close_stop
on_use = ph_door@close
hit_on_bone = 1|ph_door@free|2|ph_door@free
[ph_door@free]
locked = false
closed = true
no_force = true
on_use = ph_door@open

View file

@ -0,0 +1,26 @@
[logic]
active = ph_door@close
[ph_door@close]
locked = false
closed = true
snd_open_start = wood_large_open
snd_close_start = wood_large_close_start
snd_close_stop = wood_large_close_stop
on_use = ph_door@open
hit_on_bone = 1|ph_door@free|2|ph_door@free
[ph_door@open]
locked = false
closed = false
snd_open_start = wood_large_open
snd_close_start = wood_large_close_start
snd_close_stop = wood_large_close_stop
on_use = ph_door@close
hit_on_bone = 1|ph_door@free|2|ph_door@free
[ph_door@free]
locked = false
closed = true
no_force = true
on_use = ph_door@open

View file

@ -0,0 +1,34 @@
[logic]
active = ph_door@locked
[ph_door@locked]
locked = true
closed = true
snd_open_start = wood_small_open
snd_close_start = wood_small_close_start
snd_close_stop = wood_small_close_stop
hit_on_bone = 2|ph_door@close
[ph_door@close]
locked = false
closed = true
snd_open_start = wood_small_open
snd_close_start = wood_small_close_start
snd_close_stop = wood_small_close_stop
on_use = ph_door@open
hit_on_bone = 1|ph_door@free|2|ph_door@free
[ph_door@open]
locked = false
closed = false
snd_open_start = wood_small_open
snd_close_start = wood_small_close_start
snd_close_stop = wood_small_close_stop
on_use = ph_door@close
hit_on_bone = 1|ph_door@free|2|ph_door@free
[ph_door@free]
locked = false
closed = true
no_force = true
on_use = ph_door@open

View file

@ -0,0 +1,26 @@
[logic]
active = ph_door@close
[ph_door@close]
locked = false
closed = true
snd_open_start = wood_small_open
snd_close_start = wood_small_close_start
snd_close_stop = wood_small_close_stop
on_use = ph_door@open
hit_on_bone = 1|ph_door@free|2|ph_door@free
[ph_door@open]
locked = false
closed = false
snd_open_start = wood_small_open
snd_close_start = wood_small_close_start
snd_close_stop = wood_small_close_stop
on_use = ph_door@close
hit_on_bone = 1|ph_door@free|2|ph_door@free
[ph_door@free]
locked = false
closed = true
no_force = true
on_use = ph_door@open

View file

@ -0,0 +1,2 @@
[logic]
active = nil

View file

@ -0,0 +1,252 @@
#include "pri_a28_general.ltx"
[logic@pri_a28_kovalski_arch]
active = camper@kovalski_arch_1
suitable = {-pri_a28_arch_done =check_npc_name(kovalski)} true
prior = 200
on_hit = hit@def
on_death = death@def
post_combat_time = 0,0
[camper@kovalski_arch_1]:walker@kovalski_ignore
path_walk = kovalski_1_walk
path_look = kovalski_1_look
def_state_standing = hide_na
out_restr = pri_a28_sr_arch_1
on_info = {=npc_in_zone(pri_a28_sr_arch_1) +pri_a28_strelok_go_over_anomaly} camper@kovalski_arch_1_wait
[camper@kovalski_arch_1_wait]:walker@kovalski_ignore
path_walk = kovalski_1_walk
path_look = kovalski_1_look
def_state_standing = hide_na
out_restr = pri_a28_sr_arch_1
on_game_timer = 40 | %=play_sound(pri_a28_colonel_ok_go_here)%
on_signal = sound_end | camper@kovalski_arch_2 %+pri_a28_colonel_ok_go_here%
on_info = {+pri_a28_colonel_ok_go_here} camper@kovalski_arch_2
[camper@kovalski_arch_2]:walker@kovalski_ignore
path_walk = kovalski_2_walk
path_look = kovalski_2_look
out_restr = pri_a28_sr_arch_2
on_signal = path_end | camper@kovalski_arch_2_wait
[camper@kovalski_arch_2_wait]:walker@kovalski_ignore
path_walk = kovalski_2_walk
path_look = kovalski_2_look
out_restr = pri_a28_sr_arch_2
on_info = {+pri_a28_evac_com_where_you} remark@kovalski_arch_2
[remark@kovalski_arch_2]:walker@kovalski_ignore
target = story | actor
anim = wait_rac
out_restr = pri_a28_sr_arch_2
on_signal = anim_end | remark@kovalski_arch_2_answer
[remark@kovalski_arch_2_answer]:walker@kovalski_ignore
target = story | actor
anim = wait_rac
out_restr = pri_a28_sr_arch_2
on_signal = sound_end | remark@kovalski_arch_2_1 %+pri_a28_colonel_we_close%
on_info = %=play_sound(pri_a28_colonel_we_close)%
[remark@kovalski_arch_2_1]:walker@kovalski_ignore
target = story | actor
anim = wait_rac
out_restr = pri_a28_sr_arch_2
on_signal = sound_end | {=dist_to_actor_le(15)} remark@kovalski_arch_2_talk, remark@kovalski_arch_2_wait
on_info2 = {+pri_a28_evac_com_cant_wait} %=play_sound(pri_a28_colonel_will_time)%
[remark@kovalski_arch_2_wait]:walker@kovalski_ignore
target = story | actor
anim = hide_na
out_restr = pri_a28_sr_arch_2
on_game_timer = 300 | {=dist_to_actor_ge(15) -pri_a28_strelok_dead} %=play_sound(pri_a28_colonel_wait_actor) +pri_a28_colonel_wait_actor%
on_game_timer2 = 450 | {=dist_to_actor_ge(15)} %=play_sound(pri_a28_colonel_wait_actor_long) +pri_a28_colonel_wait_actor%
on_game_timer3 = 600 | {=dist_to_actor_ge(15)} remark@kovalski_arch_2_talk %=play_sound(pri_a28_colonel_wait_actor_go)%
on_info = {-pri_a28_actor_enemy_to_squad =dist_to_actor_le(15) +pri_a28_colonel_wait_actor} remark@kovalski_arch_2_talk %=play_sound(pri_a28_colonel_wait_actor_return)%
on_info2 = {-pri_a28_actor_enemy_to_squad =dist_to_actor_le(15) -pri_a28_colonel_wait_actor} remark@kovalski_arch_2_talk
on_info3 = {+pri_a28_actor_enemy_to_squad} remark@kovalski_arch_2_talk
[remark@kovalski_arch_2_talk]:walker@kovalski_ignore
target = story | actor
anim = hide_na
out_restr = pri_a28_sr_arch_2
on_signal = sound_end | %+pri_a28_arch_done%
on_game_timer = 10 | %=play_sound(pri_a28_colonel_ready_to_go)%
[logic@pri_a28_strelok_arch]
active = camper@strelok_arch_1
suitable = {-pri_a28_arch_done =check_npc_name(strelok)} true
prior = 200
on_hit = hit@def
on_death = death@def
post_combat_time = 0,0
[camper@strelok_arch_1]:walker@ignore
path_walk = strelok_1_walk
path_look = strelok_1_look
def_state_standing = hide_na
out_restr = pri_a28_sr_arch_1
on_signal = path_end | {+pri_a28_strelok_go_over_anomaly} walker@strelok_arch_1_fight
on_info = {-pri_a28_strelok_go_over_anomaly !npc_in_zone(pri_a28_sr_shop_3_small)} %+pri_a28_strelok_go_over_anomaly =play_sound(pri_a28_strelok_go_over_anomaly)%
[walker@strelok_arch_1_fight]:walker@fight
path_walk = strelok_1_walk
path_look = strelok_1_look
out_restr = pri_a28_sr_arch_1
on_info = {+pri_a28_colonel_ok_go_here} camper@strelok_arch_2 %=disable_memory_object%
[camper@strelok_arch_2]:walker@ignore
path_walk = strelok_2_walk
path_look = strelok_2_look
out_restr = pri_a28_sr_arch_2
[logic@pri_a28_military_1_arch]
active = camper@military_1_arch_1
suitable = {-pri_a28_arch_done =target_squad_name(pri_a16_military_squad) !check_npc_name(strelok) !check_npc_name(kovalski)} true
prior = 100
on_hit = hit@def
on_death = death@def
post_combat_time = 0,0
[camper@military_1_arch_1]:walker@ignore
path_walk = military_1_1_walk
path_look = military_1_1_look
def_state_standing = hide_na
out_restr = pri_a28_sr_arch_1
on_signal = path_end | walker@military_1_arch_1_fight
[walker@military_1_arch_1_fight]:walker@fight
path_walk = military_1_1_walk
path_look = military_1_1_look
out_restr = pri_a28_sr_arch_1
on_info = {+pri_a28_colonel_ok_go_here} camper@military_1_arch_2 %=disable_memory_object%
[camper@military_1_arch_2]:walker@ignore
path_walk = military_1_2_walk
path_look = military_1_2_look
out_restr = pri_a28_sr_arch_2
[logic@pri_a28_military_2_arch]
active = camper@military_2_arch_1
suitable = {-pri_a28_arch_done =target_squad_name(pri_a16_military_squad) !check_npc_name(strelok) !check_npc_name(kovalski)} true
prior = 90
on_hit = hit@def
on_death = death@def
post_combat_time = 0,0
[camper@military_2_arch_1]:walker@ignore
path_walk = military_2_1_walk
path_look = military_2_1_look
def_state_standing = hide_na
out_restr = pri_a28_sr_arch_1
on_signal = path_end | walker@military_2_arch_1_fight
[walker@military_2_arch_1_fight]:walker@fight
path_walk = military_2_1_walk
path_look = military_2_1_look
out_restr = pri_a28_sr_arch_1
on_info = {+pri_a28_colonel_ok_go_here} camper@military_2_arch_2 %=disable_memory_object%
[camper@military_2_arch_2]:walker@ignore
path_walk = military_2_2_walk
path_look = military_2_2_look
out_restr = pri_a28_sr_arch_2
[logic@pri_a28_military_3_arch]
active = camper@military_3_arch_1_fight
suitable = {-pri_a28_arch_done =target_squad_name(pri_a16_military_squad) !check_npc_name(strelok) !check_npc_name(kovalski)} true
prior = 110
on_hit = hit@def
on_death = death@def
post_combat_time = 0,0
[camper@military_3_arch_1_fight]:walker@fight
path_walk = military_3_1_walk
path_look = military_3_1_look
no_retreat = false
out_restr = pri_a28_sr_arch_1
on_info = {+pri_a28_arch_leave} camper@military_3_arch_2
[camper@military_3_arch_2]:walker@fight
path_walk = military_3_2_walk
path_look = military_3_2_look
no_retreat = false
out_restr = pri_a28_sr_arch_2
[logic@pri_a28_military_4_arch]
active = camper@military_4_arch_1_fight
suitable = {-pri_a28_arch_done =target_squad_name(pri_a16_military_squad) !check_npc_name(strelok) !check_npc_name(kovalski)} true
prior = 100
on_hit = hit@def
on_death = death@def
post_combat_time = 0,0
[camper@military_4_arch_1_fight]:walker@fight
path_walk = military_4_1_walk
path_look = military_4_1_look
out_restr = pri_a28_sr_arch_1
no_retreat = false
on_info = {+pri_a28_arch_leave} camper@military_4_arch_2
[camper@military_4_arch_2]:walker@fight
path_walk = military_4_2_walk
path_look = military_4_2_look
no_retreat = false
out_restr = pri_a28_sr_arch_2
[logic@pri_a28_military_5_arch]
active = camper@military_5_arch_1_fight
suitable = {-pri_a28_arch_done =target_squad_name(pri_a16_military_squad) !check_npc_name(strelok) !check_npc_name(kovalski)} true
prior = 110
on_hit = hit@def
on_death = death@def
post_combat_time = 0,0
[camper@military_5_arch_1_fight]:walker@fight
path_walk = military_5_1_walk
path_look = military_5_1_look
out_restr = pri_a28_sr_arch_1
no_retreat = false
on_info = {+pri_a28_arch_leave} camper@military_5_arch_2
[camper@military_5_arch_2]:walker@fight
path_walk = military_5_2_walk
path_look = military_5_2_look
no_retreat = false
out_restr = pri_a28_sr_arch_2
[logic@pri_a28_military_6_arch]
active = camper@military_6_arch_1_fight
suitable = {-pri_a28_arch_done =target_squad_name(pri_a16_military_squad) !check_npc_name(strelok) !check_npc_name(kovalski)} true
prior = 90
on_hit = hit@def
on_death = death@def
post_combat_time = 0,0
[camper@military_6_arch_1_fight]:walker@fight
path_walk = military_6_1_walk
path_look = military_6_1_look
out_restr = pri_a28_sr_arch_1
no_retreat = false
on_info = {+pri_a28_arch_leave} camper@military_6_arch_2
[camper@military_6_arch_2]:walker@fight
path_walk = military_6_2_walk
path_look = military_6_2_look
no_retreat = false
out_restr = pri_a28_sr_arch_2

View file

@ -0,0 +1,107 @@
[logic@pri_a28_zombied_1_arch]
suitable = {=target_squad_name(pri_a28_arch_zombied) +pri_b305_fifth_cam_end} true
prior = 200
active = walker@pri_a28_zombied_1_arch_walk
[logic@pri_a28_zombied_2_arch]
suitable = {=target_squad_name(pri_a28_arch_zombied) +pri_b305_fifth_cam_end} true
prior = 200
active = walker@pri_a28_zombied_2_arch_walk
[logic@pri_a28_zombied_3_arch]
suitable = {=target_squad_name(pri_a28_arch_zombied) +pri_b305_fifth_cam_end} true
prior = 200
active = walker@pri_a28_zombied_3_arch_walk
[logic@pri_a28_zombied_4_arch]
suitable = {=target_squad_name(pri_a28_arch_zombied) +pri_b305_fifth_cam_end} true
prior = 200
active = walker@pri_a28_zombied_4_arch_walk
[logic@pri_a28_zombied_5_arch]
suitable = {=target_squad_name(pri_a28_arch_zombied) +pri_b305_fifth_cam_end} true
prior = 200
active = walker@pri_a28_zombied_5_arch_walk
[logic@pri_a28_zombied_6_arch]
suitable = {=target_squad_name(pri_a28_arch_zombied) +pri_b305_fifth_cam_end} true
prior = 200
active = walker@pri_a28_zombied_6_arch_walk
[walker@pri_a28_zombied_1_arch_walk]
path_walk = zombied_1_walk
on_info = walker@pri_a28_zombied_1_arch_wait %=teleport_npc(pri_a28_arch_zombied_1_walk)%
[walker@pri_a28_zombied_2_arch_walk]
path_walk = zombied_2_walk
on_info = walker@pri_a28_zombied_2_arch_wait %=teleport_npc(pri_a28_arch_zombied_2_walk)%
[walker@pri_a28_zombied_3_arch_walk]
path_walk = zombied_3_walk
on_info = walker@pri_a28_zombied_3_arch_wait %=teleport_npc(pri_a28_arch_zombied_3_walk)%
[walker@pri_a28_zombied_4_arch_walk]
path_walk = zombied_4_walk
on_info = walker@pri_a28_zombied_4_arch_wait %=teleport_npc(pri_a28_arch_zombied_4_walk)%
[walker@pri_a28_zombied_5_arch_walk]
path_walk = zombied_5_walk
on_info = walker@pri_a28_zombied_5_arch_wait %=teleport_npc(pri_a28_arch_zombied_5_walk)%
[walker@pri_a28_zombied_6_arch_walk]
path_walk = zombied_6_walk
on_info = walker@pri_a28_zombied_6_arch_wait %=teleport_npc(pri_a28_arch_zombied_6_walk)%
[walker@pri_a28_zombied_1_arch_wait]
path_walk = zombied_1_walk
combat_ignore_cond = true
on_info = {+pri_a28_strelok_go_over_anomaly} walker@pri_a28_zombied_1_arch_attack
on_info2 = {=dist_to_actor_le(13)} walker@pri_a28_zombied_1_arch_attack
[walker@pri_a28_zombied_2_arch_wait]
path_walk = zombied_2_walk
combat_ignore_cond = true
on_info = {+pri_a28_strelok_go_over_anomaly} walker@pri_a28_zombied_1_arch_attack
on_info2 = {=dist_to_actor_le(13)} walker@pri_a28_zombied_1_arch_attack
[walker@pri_a28_zombied_3_arch_wait]
path_walk = zombied_3_walk
combat_ignore_cond = true
on_info = {+pri_a28_strelok_go_over_anomaly} walker@pri_a28_zombied_2_arch_attack
on_info2 = {=dist_to_actor_le(13)} walker@pri_a28_zombied_2_arch_attack
[walker@pri_a28_zombied_4_arch_wait]
path_walk = zombied_4_walk
combat_ignore_cond = true
on_info = {+pri_a28_strelok_go_over_anomaly} walker@pri_a28_zombied_2_arch_attack
on_info2 = {=dist_to_actor_le(13)} walker@pri_a28_zombied_2_arch_attack
[walker@pri_a28_zombied_5_arch_wait]
path_walk = zombied_5_walk
combat_ignore_cond = true
on_info = {+pri_a28_strelok_go_over_anomaly} walker@pri_a28_zombied_3_arch_attack
on_info2 = {=dist_to_actor_le(13)} walker@pri_a28_zombied_3_arch_attack
[walker@pri_a28_zombied_6_arch_wait]
path_walk = zombied_6_walk
combat_ignore_cond = true
on_info = {+pri_a28_strelok_go_over_anomaly} walker@pri_a28_zombied_3_arch_attack
on_info2 = {=dist_to_actor_le(13)} walker@pri_a28_zombied_3_arch_attack
[walker@pri_a28_zombied_1_arch_attack]
path_walk = zombied_1_attack
on_signal = path_end | %+pri_a28_arch_zombied_done%
[walker@pri_a28_zombied_2_arch_attack]
path_walk = zombied_2_attack
on_signal = path_end | %+pri_a28_arch_zombied_done%
[walker@pri_a28_zombied_3_arch_attack]
path_walk = zombied_3_attack
on_signal = path_end | %+pri_a28_arch_zombied_done%

View file

@ -0,0 +1,311 @@
#include "pri_a28_general.ltx"
[logic@pri_a28_kovalski_base]
active = walker@kovalski_base_1
suitable = {-pri_a28_base_done =check_npc_name(kovalski)} true
prior = 200
on_hit = hit@def
on_death = death@def
post_combat_time = 0,0
[walker@kovalski_base_1]:walker@kovalski_ignore
path_walk = kovalski_1_walk
path_look = kovalski_1_look
out_restr = pri_a16_sr_noweap
on_info = {=npc_in_zone(pri_a28_sr_base_1) !npc_in_zone(pri_surge_hide_a16) +pri_a28_heli_near_base} remark@kovalski_base_1
[remark@kovalski_base_1]:walker@kovalski_ignore
target = story | pri_a28_heli
anim = threat_na
out_restr = pri_a16_sr_noweap
on_signal = sound_end | walker@kovalski_base_1_stand %+pri_a28_colonel_about_heli%
on_info = %=play_sound(pri_a28_colonel_about_heli)%
on_info2 = {+pri_a28_colonel_about_heli} walker@kovalski_base_1_stand
[walker@kovalski_base_1_stand]:walker@kovalski_ignore
path_walk = kovalski_1_walk
path_look = kovalski_1_look
out_restr = pri_a16_sr_noweap
on_info = {+pri_a28_army_zombied_first} walker@kovalski_base_1_wait
[walker@kovalski_base_1_wait]:walker@kovalski_fight
path_walk = kovalski_1_walk
path_look = kovalski_1_look
out_restr = pri_a16_sr_noweap
on_game_timer = 30 | %=play_sound(pri_a28_colonel_zombied_first)%
on_signal = sound_end | %+pri_a28_colonel_zombied_first%
on_info = {+pri_a28_colonel_zombied_first} smartcover@kovalski_base_1_fight
[smartcover@kovalski_base_1_fight]:walker@fight
cover_name = pri_a28_base_cover_2
use_in_combat = true
out_restr = pri_a16_sr_noweap
on_game_timer = 80 | camper@kovalski_base_2 %+pri_a28_base_leave%
on_info = {+pri_a28_base_leave} camper@kovalski_base_2
on_info2 = {=in_dest_smart_cover !has_enemy_in_current_loopholes_fov} walker@kovalski_base_1_fight
[walker@kovalski_base_1_fight]:walker@kovalski_fight
path_walk = kovalski_1_walk
path_look = kovalski_1_look
out_restr = pri_a16_sr_noweap
on_game_timer = 60 | %+pri_a28_base_leave%
on_info = {+pri_a28_base_leave} camper@kovalski_base_2 %=disable_memory_object%
[camper@kovalski_base_2]:walker@kovalski_ignore
path_walk = kovalski_2_walk
path_look = kovalski_2_look
out_restr = pri_a28_sr_shop_1
[logic@pri_a28_kirillov_base]
active = walker@kirillov_base_1
suitable = {-pri_a28_base_done =check_npc_name(army_signaller)} true
prior = 200
on_hit = hit@def
on_death = death@def
post_combat_time = 0,0
[walker@kirillov_base_1]:walker@ignore
path_walk = kirillov_1_walk
path_look = kirillov_1_look
def_state_standing = hide_na
out_restr = pri_a16_sr_noweap
on_info = {=npc_in_zone(pri_a28_sr_base_1) !npc_in_zone(pri_surge_hide_a16) +pri_a28_colonel_about_heli} walker@kirillov_base_1_wait
[walker@kirillov_base_1_wait]:walker@ignore
path_walk = kirillov_1_walk
path_look = kirillov_1_look
def_state_standing = hide_na
out_restr = pri_a16_sr_noweap
on_game_timer = 10 | %=play_sound(pri_a28_army_zombied_first)%
on_signal = sound_end | walker@kirillov_base_1_fight %+pri_a28_army_zombied_first%
on_info = {+pri_a28_army_zombied_first} walker@kirillov_base_1_fight
[walker@kirillov_base_1_fight]:walker@fight
path_walk = kirillov_1_walk
path_look = kirillov_1_look
out_restr = pri_a16_sr_noweap
on_info = {+pri_a28_colonel_zombied_first} camper@kirillov_base_2 %=disable_memory_object%
[camper@kirillov_base_2]:walker@ignore
path_walk = kirillov_2_walk
path_look = kirillov_2_look
out_restr = pri_a28_sr_base_2
on_signal = path_end | smartcover@kirillov_base_2_fight
[smartcover@kirillov_base_2_fight]:walker@fight
cover_name = pri_a28_base_cover_7
use_in_combat = true
out_restr = pri_a28_sr_base_2
on_info = {=in_dest_smart_cover !has_enemy_in_current_loopholes_fov} walker@kirillov_base_2_fight
[walker@kirillov_base_2_fight]:walker@fight
path_walk = kirillov_2_walk
path_look = kirillov_2_look
out_restr = pri_a28_sr_base_2
[logic@pri_a28_strelok_base]
active = walker@strelok_base_1
suitable = {-pri_a28_base_done =check_npc_name(strelok)} true
prior = 200
on_hit = hit@def
on_death = death@def
post_combat_time = 0,0
[walker@strelok_base_1]:walker@ignore
path_walk = strelok_1_walk
path_look = strelok_1_look
def_state_standing = hide_na
out_restr = pri_a16_sr_noweap
on_info = {+pri_a28_army_zombied_first} walker@strelok_base_1_fight
[walker@strelok_base_1_fight]:walker@fight
path_walk = strelok_1_walk
path_look = strelok_1_look
out_restr = pri_a16_sr_noweap
on_info = {+pri_a28_colonel_zombied_first} camper@strelok_base_2 %=disable_memory_object%
[camper@strelok_base_2]:walker@ignore
path_walk = strelok_2_walk
path_look = strelok_2_look
out_restr = pri_a28_sr_base_2
on_signal = path_end | walker@strelok_base_2_fight
[walker@strelok_base_2_fight]:walker@fight
path_walk = strelok_2_walk
path_look = strelok_2_look
def_state_standing = hide_na
out_restr = pri_a28_sr_base_2
[logic@pri_a28_military_1_base]
active = walker@military_1_base_1
suitable = {-pri_a28_base_done =target_squad_name(pri_a16_military_squad) !check_npc_name(strelok) !check_npc_name(army_signaller) !check_npc_name(kovalski)} true
prior = 110
on_hit = hit@def
on_death = death@def
post_combat_time = 0,0
[walker@military_1_base_1]:walker@ignore
path_walk = military_1_1_walk
path_look = military_1_1_look
def_state_standing = hide_na
out_restr = pri_a16_sr_noweap
on_info = {+pri_a28_army_zombied_first} walker@military_1_base_1_fight
[walker@military_1_base_1_fight]:walker@fight
path_walk = military_1_1_walk
path_look = military_1_1_look
out_restr = pri_a16_sr_noweap
on_info = {+pri_a28_base_leave} camper@military_1_base_2 %=disable_memory_object%
[camper@military_1_base_2]:walker@ignore
path_walk = military_1_2_walk
path_look = military_1_2_look
out_restr = pri_a28_sr_base_2
on_signal = path_end | walker@military_1_base_2_fight
[walker@military_1_base_2_fight]:walker@fight
path_walk = military_1_2_walk
path_look = military_1_2_look
out_restr = pri_a28_sr_base_2
[logic@pri_a28_military_2_base]
active = walker@military_2_base_1
suitable = {-pri_a28_base_done =target_squad_name(pri_a16_military_squad) !check_npc_name(strelok) !check_npc_name(army_signaller) !check_npc_name(kovalski)} true
prior = 100
on_hit = hit@def
on_death = death@def
post_combat_time = 0,0
[walker@military_2_base_1]:walker@ignore
path_walk = military_2_1_walk
path_look = military_2_1_look
def_state_standing = hide_na
out_restr = pri_a28_sr_base_1
on_info = {+pri_a28_army_zombied_first} walker@military_2_base_1_fight
[walker@military_2_base_1_fight]:walker@fight
path_walk = military_2_1_walk
path_look = military_2_1_look
out_restr = pri_a28_sr_base_1
on_info = {+pri_a28_colonel_zombied_first} camper@military_2_base_2 %=disable_memory_object%
[camper@military_2_base_2]:walker@ignore
path_walk = military_2_2_walk
path_look = military_2_2_look
out_restr = pri_a28_sr_base_2
on_signal = path_end | walker@military_2_base_2_fight
[walker@military_2_base_2_fight]:walker@fight
path_walk = military_2_2_walk
path_look = military_2_2_look
out_restr = pri_a28_sr_base_2
[logic@pri_a28_military_3_base]
active = walker@military_3_base_1
suitable = {-pri_a28_base_done =target_squad_name(pri_a16_military_squad) !check_npc_name(strelok) !check_npc_name(army_signaller) !check_npc_name(kovalski)} true
prior = 90
on_hit = hit@def
on_death = death@def
post_combat_time = 0,0
[walker@military_3_base_1]:walker@ignore
path_walk = military_3_1_walk
path_look = military_3_1_look
def_state_standing = hide_na
out_restr = pri_a28_sr_base_1
on_info = {+pri_a28_army_zombied_first} walker@military_3_base_1_fight
[walker@military_3_base_1_fight]:walker@fight
path_walk = military_3_1_walk
path_look = military_3_1_look
out_restr = pri_a28_sr_base_1
on_info = {+pri_a28_colonel_zombied_first} camper@military_3_base_2 %=disable_memory_object%
[camper@military_3_base_2]:walker@ignore
path_walk = military_3_2_walk
path_look = military_3_2_look
out_restr = pri_a28_sr_base_2
on_signal = path_end | walker@military_3_base_2_fight
[walker@military_3_base_2_fight]:walker@fight
path_walk = military_3_2_walk
path_look = military_3_2_look
out_restr = pri_a28_sr_base_2
[logic@pri_a28_military_4_base]
active = walker@military_4_base_1
suitable = {-pri_a28_base_done =target_squad_name(pri_a16_military_squad) !check_npc_name(strelok) !check_npc_name(army_signaller) !check_npc_name(kovalski)} true
prior = 100
on_hit = hit@def
on_death = death@def
post_combat_time = 0,0
[walker@military_4_base_1]:walker@ignore
path_walk = military_4_1_walk
path_look = military_4_1_look
def_state_standing = hide_na
out_restr = pri_a28_sr_base_1
on_info = {+pri_a28_army_zombied_first} walker@military_4_base_1_fight
[walker@military_4_base_1_fight]:walker@fight
path_walk = military_4_1_walk
path_look = military_4_1_look
out_restr = pri_a28_sr_base_1
on_info = {+pri_a28_base_leave} camper@military_4_base_2 %=disable_memory_object%
[camper@military_4_base_2]:walker@ignore
path_walk = military_4_2_walk
path_look = military_4_2_look
out_restr = pri_a28_sr_base_2
on_signal = path_end | walker@military_4_base_2_fight
[walker@military_4_base_2_fight]:walker@fight
path_walk = military_4_2_walk
path_look = military_4_2_look
out_restr = pri_a28_sr_base_2
[logic@pri_a28_military_5_base]
active = walker@military_5_base_1
suitable = {-pri_a28_base_done =target_squad_name(pri_a16_military_squad) !check_npc_name(strelok) !check_npc_name(army_signaller) !check_npc_name(kovalski)} true
prior = 90
on_hit = hit@def
on_death = death@def
post_combat_time = 0,0
[walker@military_5_base_1]:walker@ignore
path_walk = military_5_1_walk
path_look = military_5_1_look
out_restr = pri_a16_sr_noweap
on_info = {+pri_a28_army_zombied_first} walker@military_5_base_1_fight
[walker@military_5_base_1_fight]:walker@fight
path_walk = military_5_1_walk
path_look = military_5_1_look
out_restr = pri_a16_sr_noweap
on_info = {+pri_a28_base_leave} camper@military_5_base_2 %=disable_memory_object%
[camper@military_5_base_2]:walker@ignore
path_walk = military_5_2_walk
path_look = military_5_2_look
out_restr = pri_a28_sr_base_2
on_signal = path_end | walker@military_5_base_2_fight
[walker@military_5_base_2_fight]:walker@fight
path_walk = military_5_2_walk
path_look = military_5_2_look
out_restr = pri_a28_sr_base_2

View file

@ -0,0 +1,216 @@
[logic@pri_a28_zombied_1_base]
suitable = {=target_squad_name(pri_a28_base_zombied) +pri_b305_fifth_cam_end} true
prior = 200
active = walker@pri_a28_zombied_1_base_walk
[logic@pri_a28_zombied_2_base]
suitable = {=target_squad_name(pri_a28_base_zombied) +pri_b305_fifth_cam_end} true
prior = 200
active = walker@pri_a28_zombied_2_base_walk
[logic@pri_a28_zombied_3_base]
suitable = {=target_squad_name(pri_a28_base_zombied) +pri_b305_fifth_cam_end} true
prior = 200
active = walker@pri_a28_zombied_3_base_walk
[logic@pri_a28_zombied_4_base]
suitable = {=target_squad_name(pri_a28_base_zombied) +pri_b305_fifth_cam_end} true
prior = 200
active = walker@pri_a28_zombied_4_base_walk
[logic@pri_a28_zombied_5_base]
suitable = {=target_squad_name(pri_a28_base_zombied) +pri_b305_fifth_cam_end} true
prior = 200
active = walker@pri_a28_zombied_5_base_walk
[logic@pri_a28_zombied_6_base]
suitable = {=target_squad_name(pri_a28_base_zombied) +pri_b305_fifth_cam_end} true
prior = 200
active = walker@pri_a28_zombied_6_base_walk
[walker@pri_a28_zombied_1_base_walk]
path_walk = zombied_1_walk
on_info = walker@pri_a28_zombied_1_base_wait %=teleport_npc(pri_a28_base_zombied_1_walk)%
[walker@pri_a28_zombied_2_base_walk]
path_walk = zombied_2_walk
on_info = walker@pri_a28_zombied_2_base_wait %=teleport_npc(pri_a28_base_zombied_2_walk)%
[walker@pri_a28_zombied_3_base_walk]
path_walk = zombied_3_walk
on_info = walker@pri_a28_zombied_3_base_wait %=teleport_npc(pri_a28_base_zombied_3_walk)%
[walker@pri_a28_zombied_4_base_walk]
path_walk = zombied_4_walk
on_info = walker@pri_a28_zombied_4_base_wait %=teleport_npc(pri_a28_base_zombied_4_walk)%
[walker@pri_a28_zombied_5_base_walk]
path_walk = zombied_5_walk
on_info = walker@pri_a28_zombied_5_base_wait %=teleport_npc(pri_a28_base_zombied_5_walk)%
[walker@pri_a28_zombied_6_base_walk]
path_walk = zombied_6_walk
on_info = walker@pri_a28_zombied_6_base_wait %=teleport_npc(pri_a28_base_zombied_6_walk)%
[walker@pri_a28_zombied_1_base_wait]
path_walk = zombied_1_walk
combat_ignore_cond = true
on_info = {+pri_a28_army_zombied_first} walker@pri_a28_zombied_1_base_attack
on_info2 = {=dist_to_actor_le(13)} walker@pri_a28_zombied_1_base_attack
[walker@pri_a28_zombied_2_base_wait]
path_walk = zombied_2_walk
combat_ignore_cond = true
on_info = {+pri_a28_army_zombied_first} walker@pri_a28_zombied_1_base_attack
on_info2 = {=dist_to_actor_le(13)} walker@pri_a28_zombied_1_base_attack
[walker@pri_a28_zombied_3_base_wait]
path_walk = zombied_3_walk
combat_ignore_cond = true
on_info = {+pri_a28_army_zombied_first} walker@pri_a28_zombied_2_base_attack
on_info2 = {=dist_to_actor_le(13)} walker@pri_a28_zombied_2_base_attack
[walker@pri_a28_zombied_4_base_wait]
path_walk = zombied_4_walk
combat_ignore_cond = true
on_info = {+pri_a28_army_zombied_first} walker@pri_a28_zombied_2_base_attack
on_info2 = {=dist_to_actor_le(13)} walker@pri_a28_zombied_2_base_attack
[walker@pri_a28_zombied_5_base_wait]
path_walk = zombied_5_walk
combat_ignore_cond = true
on_info = {+pri_a28_army_zombied_first} walker@pri_a28_zombied_3_base_attack
on_info2 = {=dist_to_actor_le(13)} walker@pri_a28_zombied_3_base_attack
[walker@pri_a28_zombied_6_base_wait]
path_walk = zombied_6_walk
combat_ignore_cond = true
on_info = {+pri_a28_army_zombied_first} walker@pri_a28_zombied_3_base_attack
on_info2 = {=dist_to_actor_le(13)} walker@pri_a28_zombied_3_base_attack
[walker@pri_a28_zombied_1_base_attack]
path_walk = zombied_1_attack
on_signal = path_end | %+pri_a28_base_zombied_done%
[walker@pri_a28_zombied_2_base_attack]
path_walk = zombied_2_attack
on_signal = path_end | %+pri_a28_base_zombied_done%
[walker@pri_a28_zombied_3_base_attack]
path_walk = zombied_3_attack
on_signal = path_end | %+pri_a28_base_zombied_done%
[logic@pri_a28_zombied_7_base]
suitable = {=target_squad_name(pri_a28_base_zombied_2) +pri_b305_fifth_cam_end} true
prior = 200
active = walker@pri_a28_zombied_7_base_walk
[logic@pri_a28_zombied_8_base]
suitable = {=target_squad_name(pri_a28_base_zombied_2) +pri_b305_fifth_cam_end} true
prior = 200
active = walker@pri_a28_zombied_8_base_walk
[logic@pri_a28_zombied_9_base]
suitable = {=target_squad_name(pri_a28_base_zombied_2) +pri_b305_fifth_cam_end} true
prior = 200
active = walker@pri_a28_zombied_9_base_walk
[logic@pri_a28_zombied_10_base]
suitable = {=target_squad_name(pri_a28_base_zombied_2) +pri_b305_fifth_cam_end} true
prior = 200
active = walker@pri_a28_zombied_10_base_walk
[logic@pri_a28_zombied_11_base]
suitable = {=target_squad_name(pri_a28_base_zombied_2) +pri_b305_fifth_cam_end} true
prior = 200
active = walker@pri_a28_zombied_11_base_walk
[logic@pri_a28_zombied_12_base]
suitable = {=target_squad_name(pri_a28_base_zombied_2) +pri_b305_fifth_cam_end} true
prior = 200
active = walker@pri_a28_zombied_12_base_walk
[walker@pri_a28_zombied_7_base_walk]
path_walk = zombied_7_walk
on_info = walker@pri_a28_zombied_7_base_wait %=teleport_npc(pri_a28_base_zombied_7_walk)%
[walker@pri_a28_zombied_8_base_walk]
path_walk = zombied_8_walk
on_info = walker@pri_a28_zombied_8_base_wait %=teleport_npc(pri_a28_base_zombied_8_walk)%
[walker@pri_a28_zombied_9_base_walk]
path_walk = zombied_9_walk
on_info = walker@pri_a28_zombied_9_base_wait %=teleport_npc(pri_a28_base_zombied_9_walk)%
[walker@pri_a28_zombied_10_base_walk]
path_walk = zombied_10_walk
on_info = walker@pri_a28_zombied_10_base_wait %=teleport_npc(pri_a28_base_zombied_10_walk)%
[walker@pri_a28_zombied_11_base_walk]
path_walk = zombied_11_walk
on_info = walker@pri_a28_zombied_11_base_wait %=teleport_npc(pri_a28_base_zombied_11_walk)%
[walker@pri_a28_zombied_12_base_walk]
path_walk = zombied_12_walk
on_info = walker@pri_a28_zombied_12_base_wait %=teleport_npc(pri_a28_base_zombied_12_walk)%
[walker@pri_a28_zombied_7_base_wait]
path_walk = zombied_7_walk
combat_ignore_cond = true
on_info = {+pri_a28_army_zombied_first} walker@pri_a28_zombied_1_base_attack
on_info2 = {=dist_to_actor_le(13)} walker@pri_a28_zombied_1_base_attack
[walker@pri_a28_zombied_8_base_wait]
path_walk = zombied_8_walk
combat_ignore_cond = true
on_info = {+pri_a28_army_zombied_first} walker@pri_a28_zombied_2_base_attack
on_info2 = {=dist_to_actor_le(13)} walker@pri_a28_zombied_2_base_attack
[walker@pri_a28_zombied_9_base_wait]
path_walk = zombied_9_walk
combat_ignore_cond = true
on_info = {+pri_a28_army_zombied_first} walker@pri_a28_zombied_2_base_attack
on_info2 = {=dist_to_actor_le(13)} walker@pri_a28_zombied_2_base_attack
[walker@pri_a28_zombied_10_base_wait]
path_walk = zombied_10_walk
combat_ignore_cond = true
on_info = {+pri_a28_army_zombied_first} walker@pri_a28_zombied_4_base_attack
on_info2 = {=dist_to_actor_le(13)} walker@pri_a28_zombied_4_base_attack
[walker@pri_a28_zombied_11_base_wait]
path_walk = zombied_11_walk
combat_ignore_cond = true
on_info = {+pri_a28_army_zombied_first} walker@pri_a28_zombied_4_base_attack
on_info2 = {=dist_to_actor_le(13)} walker@pri_a28_zombied_4_base_attack
[walker@pri_a28_zombied_12_base_wait]
path_walk = zombied_12_walk
combat_ignore_cond = true
on_info = {+pri_a28_army_zombied_first} walker@pri_a28_zombied_5_base_attack
on_info2 = {=dist_to_actor_le(13)} walker@pri_a28_zombied_5_base_attack
[walker@pri_a28_zombied_4_base_attack]
path_walk = zombied_4_attack
on_signal = path_end | %+pri_a28_base_zombied_done%
[walker@pri_a28_zombied_5_base_attack]
path_walk = zombied_5_attack
on_signal = path_end | %+pri_a28_base_zombied_done%

View file

@ -0,0 +1,49 @@
[walker@ignore]
wounded = wounded@no_wound
def_state_standing = threat_na
def_state_moving = assault
meet = no_meet
use_camp = false
combat_ignore_cond = true
combat_ignore_keep_when_attacked = true
invulnerable = true
gather_items_enabled = false
help_wounded_enabled = false
corpse_detection_enabled = false
;Wounded - no wounds
[wounded@no_wound]
hp_state = 0 | wounded_heavy@help_heavy
hp_state_see = 0 | wounded_heavy@help_heavy
hp_victim = 0 | nil
hp_cover = 0 | false
hp_fight = 0 | false
[logic]
active = walker@start
[walker@start]:walker@ignore
path_walk = pri_a28_cutscene_actor_walk
path_look = pri_a28_cutscene_actor_look
meet = no_meet
combat_ignore_cond = true
combat_ignore_keep_when_attacked = true
on_info = {+pri_a28_commander_on_position} smartcover@cutscene %=teleport_npc(pri_a28_cutscene_actor_walk)%
[smartcover@cutscene]:walker@ignore
cover_name = pri_a28_cutscene_actor_cover
combat_ignore_cond = true
on_info = {+pri_a28_evac_com_ready -pri_a28_strelok_dead} %=play_sound(pri_a28_actor_to_strelok)%
on_info2 = {+pri_a28_evac_com_ready +pri_a28_strelok_dead +pri_a28_somebody_alive} %=play_sound(pri_a28_actor_scene_end_when_strelok_dead)%
on_info3 = {+pri_a28_evac_com_ready +pri_a28_strelok_dead -pri_a28_somebody_alive} %=play_sound(pri_a28_actor_scene_end)%
on_signal = sound_end | %+pri_a28_final_actor_speech_done%
on_info4 = {+pri_a28_team_heli_run +pri_a28_strelok_dead} walker@heli_run
on_info5 = {+pri_a28_actor_heli_run -pri_a28_strelok_dead} walker@heli_run
[walker@heli_run]:walker@ignore
path_walk = pri_a28_cutscene_actor_away
def_state_moving = sneak_run
on_game_timer = 20 | %+pri_a28_cut_1_end%
on_info = {+pri_a28_show_freeplay_dialog} %=destroy_object%

View file

@ -0,0 +1,45 @@
[walker@ignore]
wounded = wounded@no_wound
def_state_standing = threat_na
def_state_moving = assault
meet = no_meet
use_camp = false
combat_ignore_cond = true
combat_ignore_keep_when_attacked = true
invulnerable = true
gather_items_enabled = false
help_wounded_enabled = false
corpse_detection_enabled = false
;Wounded - no wounds
[wounded@no_wound]
hp_state = 0 | wounded_heavy@help_heavy
hp_state_see = 0 | wounded_heavy@help_heavy
hp_victim = 0 | nil
hp_cover = 0 | false
hp_fight = 0 | false
[logic]
active = smartcover@evac_comm
[smartcover@evac_comm]:walker@ignore
cover_name = pri_a28_heli_cover_33
combat_ignore_cond = true
meet = no_meet
on_game_timer = 60 | {+pri_a28_scene_end -pri_a28_commander_on_position} smartcover@evac_comm_snd %+pri_a28_commander_on_position%
[smartcover@evac_comm_snd]:smartcover@evac_comm
on_game_timer = 70 | %=play_sound(pri_a28_evac_com_ready)%
on_signal = sound_end | %+pri_a28_evac_com_ready%
on_info = {+pri_a28_final_actor_speech_done +pri_a28_strelok_dead} walker@evac_comm_run %=play_sound(pri_a28_evac_com_scene_end_when_strelok_dead)%
on_info2 = {+pri_a28_final_actor_speech_done -pri_a28_strelok_dead} walker@evac_comm_run
[walker@evac_comm_run]:walker@ignore
path_walk = pri_a28_cutscene_commander_away
def_state_moving = sneak_run
combat_ignore_cond = true
meet = no_meet
on_game_timer = 20 | {-pri_a28_team_heli_run} %+pri_a28_team_heli_run%
on_info = {+pri_a28_show_freeplay_dialog} %=destroy_object%

View file

@ -0,0 +1,39 @@
[walker@ignore]
wounded = wounded@no_wound
def_state_standing = threat_na
def_state_moving = assault
meet = no_meet
use_camp = false
combat_ignore_cond = true
combat_ignore_keep_when_attacked = true
invulnerable = true
gather_items_enabled = false
help_wounded_enabled = false
corpse_detection_enabled = false
;Wounded - no wounds
[wounded@no_wound]
hp_state = 0 | wounded_heavy@help_heavy
hp_state_see = 0 | wounded_heavy@help_heavy
hp_victim = 0 | nil
hp_cover = 0 | false
hp_fight = 0 | false
[logic]
active = smartcover@strelok
[smartcover@strelok]:walker@ignore
cover_name = pri_a28_heli_cover_32
combat_ignore_cond = true
meet = no_meet
on_info = {+pri_a28_team_heli_run} walker@strelok_run
on_info2 = {+pri_a28_strelok_dead} %=destroy_object%
[walker@strelok_run]:walker@ignore
path_walk = pri_a28_cutscene_strelok_away
def_state_moving = sneak_run
meet = no_meet
on_game_timer = 20 | {-pri_a28_actor_heli_run} %+pri_a28_actor_heli_run%
on_info = {+pri_a28_show_freeplay_dialog} %=destroy_object%

View file

@ -0,0 +1,443 @@
#include "pri_a28_general.ltx"
[logic@pri_a28_kovalski_evac]
active = camper@kovalski_evac_1
suitable = {-pri_a28_evac_done =check_npc_name(kovalski)} true
prior = 200
on_hit = hit@def
on_death = death@def
post_combat_time = 0,0
[camper@kovalski_evac_1]:walker@kovalski_fight
path_walk = kovalski_1_walk
path_look = kovalski_1_look
def_state_standing = hide_na
out_restr = pri_a28_sr_evac_1
on_info = {+pri_a28_horror_start =npc_in_zone(pri_a28_sr_horror)} remark@kovalski_horror_1
on_info2 = {-pri_a28_horror_start =npc_in_zone(pri_a28_sr_evac_1)} remark@kovalski_horror_1 %+pri_a28_horror_start%
on_info3 = {+pri_a28_strelok_run} camper@kovalski_evac_2
[remark@kovalski_horror_1]:walker@kovalski_ignore
anim = hide_na
target = path | pri_a28_horror_look, 3
on_game_timer = 36 | remark@kovalski_horror_2
[remark@kovalski_horror_2]:walker@kovalski_ignore
anim = hide_na
target = path | pri_a28_horror_look, 1
on_game_timer = 28 | remark@kovalski_horror_3
[remark@kovalski_horror_3]:walker@kovalski_ignore
anim = hide_na
target = path | pri_a28_horror_look, 4
on_info = {+pri_a28_strelok_run} camper@kovalski_evac_2
[camper@kovalski_evac_2]:walker@kovalski_ignore
path_walk = kovalski_1_walk
path_look = kovalski_1_look
def_state_standing = hide_na
out_restr = pri_a28_sr_evac_1
on_signal = path_end | remark@kovalski_evac_2_wait
[remark@kovalski_evac_2_wait]:walker@kovalski_ignore
target = story | actor
anim = hide_na
out_restr = pri_a28_sr_evac_1
on_game_timer = 300 | {=dist_to_actor_ge(15) -pri_a28_strelok_dead} %=play_sound(pri_a28_colonel_wait_actor) +pri_a28_colonel_wait_actor%
on_game_timer2 = 450 | {=dist_to_actor_ge(15)} %=play_sound(pri_a28_colonel_wait_actor_long) +pri_a28_colonel_wait_actor%
on_game_timer3 = 600 | {=dist_to_actor_ge(15)} remark@kovalski_evac_2_talk %=play_sound(pri_a28_colonel_wait_actor_go)%
on_info = {-pri_a28_actor_enemy_to_squad =dist_to_actor_le(30) +pri_a28_colonel_wait_actor} remark@kovalski_evac_2_talk %=play_sound(pri_a28_colonel_wait_actor_return)%
on_info2 = {-pri_a28_actor_enemy_to_squad =dist_to_actor_le(30) -pri_a28_colonel_wait_actor} remark@kovalski_evac_2_talk
on_info3 = {-pri_a28_actor_enemy_to_squad +pri_a28_evac_leave} camper@kovalski_evac_3 %=play_sound(pri_a28_colonel_wait_actor_go)%
on_info4 = {+pri_a28_actor_enemy_to_squad} remark@kovalski_evac_2_talk
[remark@kovalski_evac_2_talk]:walker@kovalski_ignore
target = story | actor
anim = hide_na
out_restr = pri_a28_sr_evac_2
on_signal = sound_end | camper@kovalski_evac_3 %+pri_a28_evac_leave%
on_game_timer = 10 | %=play_sound(pri_a28_colonel_clear_the_deck)%
[camper@kovalski_evac_3]:walker@kovalski_ignore
path_walk = kovalski_3_walk
path_look = kovalski_3_look
def_state_standing = hide_na
out_restr = pri_a28_sr_evac_2
on_info = {+pri_a28_evac_come_close_done =npc_in_zone(pri_a28_sr_evac_2)} %=play_sound(pri_a28_colonel_see_helicopter)%
on_signal = sound_end | %+pri_a28_evac_done%
[logic@pri_a28_medic_evac]
active = camper@medic_evac_1
suitable = {-pri_a28_evac_done =check_npc_name(base_medic)} true
prior = 200
on_hit = hit@def
on_death = death@def
post_combat_time = 0,0
[camper@medic_evac_1]:walker@fight
path_walk = medic_2_walk
path_look = medic_2_look
def_state_standing = hide_na
out_restr = pri_a28_sr_horror
on_info = {=npc_in_zone(pri_a28_sr_horror)} camper@medic_evac_1_wait
[camper@medic_evac_1_wait]:walker@ignore
path_walk = medic_2_walk
path_look = medic_2_look
def_state_standing = hide_na
out_restr = pri_a28_sr_horror
on_game_timer = 15 | remark@medic_horror_1
[remark@medic_horror_1]:walker@ignore
anim = threat_heli
target = path | pri_a28_horror_look, 0
on_signal = sound_end | remark@medic_horror_2 %+pri_a28_army_what_is_that +pri_a28_horror_start%
on_info = %=play_sound(pri_a28_army_what_is_that)%
[remark@medic_horror_2]:walker@ignore
anim = threat_heli
target = path | pri_a28_horror_look, 1
on_game_timer = 45 | remark@medic_horror_3
[remark@medic_horror_3]:walker@ignore
anim = threat_heli
target = path | pri_a28_horror_look, 2
on_info2 = {+pri_a28_strelok_dont_stop} remark@medic_horror_4
[remark@medic_horror_4]:walker@ignore
anim = pri_a25_psy_medic_idle
target = path | pri_a28_horror_look, 1
on_signal = sound_end | remark@medic_horror_5 %+pri_a28_army_its_here =give_task(pri_a28_recover_medic)%
on_game_timer = 10 | %=play_sound(pri_a28_army_its_here)%
[remark@medic_horror_5]:walker@ignore
anim = pri_a25_psy_medic_idle
target = path | pri_a28_horror_look, 2
meet = meet@medic_horror_wait
on_game_timer = 30 | remark@medic_horror_wait
[remark@medic_horror_wait]:walker@ignore
anim = pri_a25_psy_medic_idle
target = path | pri_a28_horror_look, 3
meet = meet@medic_horror_wait
on_signal = sound_end | remark@medic_horror_recovered %+pri_a28_medic_recovered%
on_info = {+pri_a28_medic_recovered} remark@medic_horror_recovered
[meet@medic_horror_wait]
abuse = false
use = false
snd_on_use = pri_a28_army_confusion
use_text = pri_a28_talk_with_stupid_medic
close_distance = 0
far_distance = 0
[remark@medic_horror_recovered]:walker@ignore
anim = pri_a25_psy_medic_out
target = story | actor
on_signal = anim_end | camper@medic_evac_2
[camper@medic_evac_2]:walker@ignore
path_walk = medic_1_walk
path_look = medic_1_look
def_state_standing = hide_na
out_restr = pri_a28_sr_evac_1
on_info = {+pri_a28_evac_leave} camper@medic_evac_3
[camper@medic_evac_3]:walker@ignore
path_walk = medic_3_walk
path_look = medic_3_look
def_state_standing = hide_na
out_restr = pri_a28_sr_evac_2
[logic@pri_a28_strelok_evac]
active = camper@strelok_evac_1
suitable = {-pri_a28_evac_done =check_npc_name(strelok)} true
prior = 200
on_hit = hit@def
on_death = death@def
post_combat_time = 0,0
[camper@strelok_evac_1]:walker@fight
path_walk = strelok_1_walk
path_look = strelok_1_look
def_state_standing = hide_na
out_restr = pri_a28_sr_evac_1
on_info = {+pri_a28_horror_start =npc_in_zone(pri_a28_sr_horror)} remark@strelok_horror_1
on_info2 = {-pri_a28_horror_start =npc_in_zone(pri_a28_sr_evac_1)} remark@strelok_horror_1 %+pri_a28_horror_start%
on_info3 = {+pri_a28_army_what_is_that} remark@strelok_horror_1
[remark@strelok_horror_1]:walker@ignore
anim = hide_na
target = path | pri_a28_horror_look, 2
on_game_timer = 23 | remark@strelok_horror_2
[remark@strelok_horror_2]:walker@ignore
anim = hide_na
target = path | pri_a28_horror_look, 1
on_game_timer = 31 | remark@strelok_horror_3
[remark@strelok_horror_3]:walker@ignore
anim = hide_na
target = path | pri_a28_horror_look, 3
on_game_timer = 15 | %=play_sound(pri_a28_strelok_dont_stop)%
on_signal = sound_end | %+pri_a28_strelok_dont_stop%
on_info = {+pri_a28_army_its_here} remark@strelok_horror_4
[remark@strelok_horror_4]:walker@ignore
anim = hide_na
target = path | pri_a28_horror_look, 1
on_game_timer = 10 | %=play_sound(pri_a28_strelok_run)%
on_signal = sound_end | camper@strelok_evac_2 %+pri_a28_strelok_run%
[camper@strelok_evac_2]:walker@ignore
path_walk = strelok_1_walk
path_look = strelok_1_look
def_state_standing = hide_na
out_restr = pri_a28_sr_evac_1
on_info = {+pri_a28_evac_leave} camper@strelok_evac_3
[camper@strelok_evac_3]:walker@ignore
path_walk = strelok_3_walk
path_look = strelok_3_look
def_state_standing = hide_na
out_restr = pri_a28_sr_evac_2
[logic@pri_a28_military_1_evac]
active = camper@military_1_evac_1
suitable = {-pri_a28_evac_done =target_squad_name(pri_a16_military_squad) !check_npc_name(strelok) !check_npc_name(base_medic) !check_npc_name(kovalski)} true
prior = 100
on_hit = hit@def
on_death = death@def
post_combat_time = 0,0
[camper@military_1_evac_1]:walker@fight
path_walk = military_1_1_walk
path_look = military_1_1_look
def_state_standing = hide_na
out_restr = pri_a28_sr_evac_1
on_info = {+pri_a28_horror_start =npc_in_zone(pri_a28_sr_horror)} remark@military_1_horror_1
on_info2 = {-pri_a28_horror_start =npc_in_zone(pri_a28_sr_evac_1)} remark@military_1_horror_1 %+pri_a28_horror_start%
on_info3 = {+pri_a28_strelok_run} camper@military_1_evac_2
[remark@military_1_horror_1]:walker@ignore
anim = hide_na
target = path | pri_a28_horror_look, 4
on_game_timer = 44 | remark@military_1_horror_2
[remark@military_1_horror_2]:walker@ignore
anim = hide_na
target = path | pri_a28_horror_look, 1
on_game_timer = 12 | remark@military_1_horror_3
[remark@military_1_horror_3]:walker@ignore
anim = hide_na
target = path | pri_a28_horror_look, 2
on_info = {+pri_a28_strelok_run} camper@military_1_evac_2
[camper@military_1_evac_2]:walker@ignore
path_walk = military_1_1_walk
path_look = military_1_1_look
def_state_standing = hide_na
out_restr = pri_a28_sr_evac_1
on_info = {+pri_a28_evac_leave} camper@military_1_evac_3
[camper@military_1_evac_3]:walker@fight
path_walk = military_1_3_walk
path_look = military_1_3_look
def_state_standing = hide_na
out_restr = pri_a28_sr_evac_2
[logic@pri_a28_military_2_evac]
active = camper@military_2_evac_1
suitable = {-pri_a28_evac_done =target_squad_name(pri_a16_military_squad) !check_npc_name(strelok) !check_npc_name(base_medic) !check_npc_name(kovalski)} true
prior = 100
on_hit = hit@def
on_death = death@def
post_combat_time = 0,0
[camper@military_2_evac_1]:walker@fight
path_walk = military_2_1_walk
path_look = military_2_1_look
def_state_standing = hide_na
out_restr = pri_a28_sr_evac_1
on_info = {+pri_a28_horror_start =npc_in_zone(pri_a28_sr_horror)} remark@military_2_horror_1
on_info2 = {-pri_a28_horror_start =npc_in_zone(pri_a28_sr_evac_1)} remark@military_2_horror_1 %+pri_a28_horror_start%
on_info3 = {+pri_a28_strelok_run} camper@military_2_evac_2
[remark@military_2_horror_1]:walker@ignore
anim = hide_na
target = path | pri_a28_horror_look, 3
on_game_timer = 28 | remark@military_2_horror_2
[remark@military_2_horror_2]:walker@ignore
anim = hide_na
target = path | pri_a28_horror_look, 4
on_game_timer = 36 | remark@military_2_horror_3
[remark@military_2_horror_3]:walker@ignore
anim = hide_na
target = path | pri_a28_horror_look, 3
on_info = {+pri_a28_strelok_run} camper@military_2_evac_2
[camper@military_2_evac_2]:walker@ignore
path_walk = military_2_1_walk
path_look = military_2_1_look
def_state_standing = hide_na
out_restr = pri_a28_sr_evac_1
on_info = {+pri_a28_evac_leave} camper@military_2_evac_3
[camper@military_2_evac_3]:walker@fight
path_walk = military_2_3_walk
path_look = military_2_3_look
def_state_standing = hide_na
out_restr = pri_a28_sr_evac_2
[logic@pri_a28_military_3_evac]
active = camper@military_3_evac_1
suitable = {-pri_a28_evac_done =target_squad_name(pri_a16_military_squad) !check_npc_name(strelok) !check_npc_name(base_medic) !check_npc_name(kovalski)} true
prior = 100
on_hit = hit@def
on_death = death@def
post_combat_time = 0,0
[camper@military_3_evac_1]:walker@fight
path_walk = military_3_1_walk
path_look = military_3_1_look
def_state_standing = hide_na
out_restr = pri_a28_sr_evac_1
on_info = {+pri_a28_horror_start =npc_in_zone(pri_a28_sr_horror)} remark@military_3_horror_1
on_info2 = {-pri_a28_horror_start =npc_in_zone(pri_a28_sr_evac_1)} remark@military_3_horror_1 %+pri_a28_horror_start%
on_info3 = {+pri_a28_strelok_run} camper@military_3_evac_2
[remark@military_3_horror_1]:walker@ignore
anim = hide_na
target = path | pri_a28_horror_look, 3
on_game_timer = 33 | remark@military_3_horror_2
[remark@military_3_horror_2]:walker@ignore
anim = hide_na
target = path | pri_a28_horror_look, 4
on_game_timer = 44 | remark@military_3_horror_3
[remark@military_3_horror_3]:walker@ignore
anim = hide_na
target = path | pri_a28_horror_look, 1
on_info = {+pri_a28_strelok_run} camper@military_3_evac_2
[camper@military_3_evac_2]:walker@ignore
path_walk = military_3_1_walk
path_look = military_3_1_look
def_state_standing = hide_na
out_restr = pri_a28_sr_evac_1
on_info = {+pri_a28_evac_leave} camper@military_3_evac_3
[camper@military_3_evac_3]:walker@fight
path_walk = military_3_3_walk
path_look = military_3_3_look
def_state_standing = hide_na
out_restr = pri_a28_sr_evac_2
[logic@pri_a28_military_4_evac]
active = camper@military_4_evac_1
suitable = {-pri_a28_evac_done =target_squad_name(pri_a16_military_squad) !check_npc_name(strelok) !check_npc_name(base_medic) !check_npc_name(kovalski)} true
prior = 100
on_hit = hit@def
on_death = death@def
post_combat_time = 0,0
[camper@military_4_evac_1]:walker@fight
path_walk = military_4_1_walk
path_look = military_4_1_look
def_state_standing = hide_na
out_restr = pri_a28_sr_evac_1
on_info = {+pri_a28_horror_start =npc_in_zone(pri_a28_sr_horror)} remark@military_4_horror_1
on_info2 = {-pri_a28_horror_start =npc_in_zone(pri_a28_sr_evac_1)} remark@military_4_horror_1 %+pri_a28_horror_start%
on_info3 = {+pri_a28_strelok_run} camper@military_4_evac_2
[remark@military_4_horror_1]:walker@ignore
anim = hide_na
target = path | pri_a28_horror_look, 2
on_game_timer = 22 | remark@military_4_horror_2
[remark@military_4_horror_2]:walker@ignore
anim = hide_na
target = path | pri_a28_horror_look, 0
on_game_timer = 56 | remark@military_4_horror_3
[remark@military_4_horror_3]:walker@ignore
anim = hide_na
target = path | pri_a28_horror_look, 1
on_info = {+pri_a28_strelok_run} camper@military_4_evac_2
[camper@military_4_evac_2]:walker@ignore
path_walk = military_4_1_walk
path_look = military_4_1_look
def_state_standing = hide_na
out_restr = pri_a28_sr_evac_1
on_info = {+pri_a28_evac_leave} camper@military_4_evac_3
[camper@military_4_evac_3]:walker@fight
path_walk = military_4_3_walk
path_look = military_4_3_look
def_state_standing = hide_na
out_restr = pri_a28_sr_evac_2
[logic@pri_a28_military_5_evac]
active = camper@military_5_evac_1
suitable = {-pri_a28_evac_done =target_squad_name(pri_a16_military_squad) !check_npc_name(strelok) !check_npc_name(base_medic) !check_npc_name(kovalski)} true
prior = 100
on_hit = hit@def
on_death = death@def
post_combat_time = 0,0
[camper@military_5_evac_1]:walker@fight
path_walk = military_5_1_walk
path_look = military_5_1_look
def_state_standing = hide_na
out_restr = pri_a28_sr_evac_1
on_info = {+pri_a28_horror_start =npc_in_zone(pri_a28_sr_horror)} remark@military_5_horror_1
on_info2 = {-pri_a28_horror_start =npc_in_zone(pri_a28_sr_evac_1)} remark@military_5_horror_1 %+pri_a28_horror_start%
on_info3 = {+pri_a28_strelok_run} camper@military_5_evac_2
[remark@military_5_horror_1]:walker@ignore
anim = hide_na
target = path | pri_a28_horror_look, 0
on_game_timer = 25 | remark@military_5_horror_2
[remark@military_5_horror_2]:walker@ignore
anim = hide_na
target = path | pri_a28_horror_look, 4
on_game_timer = 40 | remark@military_5_horror_3
[remark@military_5_horror_3]:walker@ignore
anim = hide_na
target = path | pri_a28_horror_look, 1
on_info = {+pri_a28_strelok_run} camper@military_5_evac_2
[camper@military_5_evac_2]:walker@ignore
path_walk = military_5_1_walk
path_look = military_5_1_look
def_state_standing = hide_na
out_restr = pri_a28_sr_evac_1
on_info = {+pri_a28_evac_leave} camper@military_5_evac_3
[camper@military_5_evac_3]:walker@fight
path_walk = military_5_3_walk
path_look = military_5_3_look
def_state_standing = hide_na
out_restr = pri_a28_sr_evac_2

View file

@ -0,0 +1,89 @@
#include "pri_a28_general.ltx"
[logic@pri_a28_evac_military_1]
active = camper@pri_a28_evac_military_1_wait
suitable = {+pri_b305_fifth_cam_end =check_npc_name(pri_a28_evac_com)} true, {+pri_b305_fifth_cam_end !is_alive(pri_a28_evac_com) =target_squad_name(pri_a28_evac_squad) =is_squad_commander} true
prior = 200
post_combat_time = 0,0
[camper@pri_a28_evac_military_1_wait]:walker@ignore
path_walk = evac_military_1_walk
path_look = evac_military_1_look
def_state_standing = hide_na
out_restr = pri_a28_scene_end_zone
invulnerable = true
on_info = {+pri_a28_squad_dead} camper@pri_a28_evac_military_1 %=clear_smart_terrain(pri_sim_2) +pri_a28_evac_squad_active%
on_info2 = {=dist_to_actor_le(150)} camper@pri_a28_evac_military_1 %=clear_smart_terrain(pri_sim_2) +pri_a28_evac_squad_active%
on_info3 = {+pri_a28_evac_done} camper@pri_a28_evac_military_1 %=clear_smart_terrain(pri_sim_2) +pri_a28_evac_squad_active%
[camper@pri_a28_evac_military_1]:walker@fight
path_walk = evac_military_1_walk
path_look = evac_military_1_look
def_state_standing = hide_na
out_restr = pri_a28_scene_end_zone
on_info = {+pri_a28_evac_come_close} %=play_sound(pri_a28_evac_come_close)%
on_info2 = {+pri_a28_evac_com_to_helicopter} %=play_sound(pri_a28_evac_com_to_helicopter)%
on_signal = sound_end | {-pri_a28_evac_come_close_done} %+pri_a28_evac_come_close_done%
[logic@pri_a28_evac_military_2]
active = camper@pri_a28_evac_military_2_wait
suitable = {+pri_b305_fifth_cam_end =target_squad_name(pri_a28_evac_squad) !check_npc_name(pri_a28_evac_com)} true, {+pri_b305_fifth_cam_end !is_alive(pri_a28_evac_com) =target_squad_name(pri_a28_evac_squad) !is_squad_commander} true
prior = 200
post_combat_time = 0,0
[camper@pri_a28_evac_military_2_wait]:walker@ignore
path_walk = evac_military_2_walk
path_look = evac_military_2_look
def_state_standing = hide_na
out_restr = pri_a28_scene_end_zone
on_info = {+pri_a28_evac_squad_active} camper@pri_a28_evac_military_2
[camper@pri_a28_evac_military_2]:walker@fight
path_walk = evac_military_2_walk
path_look = evac_military_2_look
def_state_standing = hide_na
out_restr = pri_a28_scene_end_zone
[logic@pri_a28_evac_military_3]
active = camper@pri_a28_evac_military_3_wait
suitable = {+pri_b305_fifth_cam_end =target_squad_name(pri_a28_evac_squad) !check_npc_name(pri_a28_evac_com)} true, {+pri_b305_fifth_cam_end !is_alive(pri_a28_evac_com) =target_squad_name(pri_a28_evac_squad) !is_squad_commander} true
prior = 200
post_combat_time = 0,0
[camper@pri_a28_evac_military_3_wait]:walker@ignore
path_walk = evac_military_3_walk
path_look = evac_military_3_look
def_state_standing = hide_na
out_restr = pri_a28_scene_end_zone
on_info = {+pri_a28_evac_squad_active} camper@pri_a28_evac_military_3
[camper@pri_a28_evac_military_3]:walker@fight
path_walk = evac_military_3_walk
path_look = evac_military_3_look
def_state_standing = hide_na
out_restr = pri_a28_scene_end_zone
[logic@pri_a28_evac_military_4]
active = camper@pri_a28_evac_military_4_wait
suitable = {+pri_b305_fifth_cam_end =target_squad_name(pri_a28_evac_squad) !check_npc_name(pri_a28_evac_com)} true, {+pri_b305_fifth_cam_end !is_alive(pri_a28_evac_com) =target_squad_name(pri_a28_evac_squad) !is_squad_commander} true
prior = 200
post_combat_time = 0,0
[camper@pri_a28_evac_military_4_wait]:walker@ignore
path_walk = evac_military_4_walk
path_look = evac_military_4_look
def_state_standing = hide_na
out_restr = pri_a28_scene_end_zone
on_info = {+pri_a28_evac_squad_active} camper@pri_a28_evac_military_4
[camper@pri_a28_evac_military_4]:walker@fight
path_walk = evac_military_4_walk
path_look = evac_military_4_look
def_state_standing = hide_na
out_restr = pri_a28_scene_end_zone

View file

@ -0,0 +1,60 @@
;Meets default
[meet@def]
close_snd_hello = nil
close_snd_bye = nil
snd_on_use = nil
close_distance = 0
far_distance = 0
close_victim = nil
use = false
abuse = false
;Hits
[hit@def]
on_info = {!has_enemy =hit_by_actor =counter_greater(pri_a28_friendly_hit:7) =squad_exist(pri_a16_military_squad)} %=set_squad_enemy_to_actor(pri_a16_military_squad) +pri_a28_actor_enemy%
on_info2 = {!has_enemy =hit_by_actor !counter_greater(pri_a28_friendly_hit:7) =squad_exist(pri_a16_military_squad)} %=inc_counter(pri_a28_friendly_hit)%
;Death
[death@def]
on_info = %=stop_sound%
on_info2 = {=has_enemy =killed_by_actor !counter_greater(pri_a28_friendly_hit:7)} %=inc_counter(pri_a28_friendly_hit)%, {=killed_by_actor =squad_exist(pri_a16_military_squad)} %=set_squad_enemy_to_actor(pri_a16_military_squad) +pri_a28_actor_enemy%
;Sounds
[walker@fight]
meet = meet@def
wounded = wounded@no_wound
def_state_standing = threat_na
def_state_moving = assault
def_state_campering = hide_na
gather_items_enabled = false
help_wounded_enabled = false
corpse_detection_enabled = false
radius = 70
no_retreat = true
use_camp = false
[walker@ignore]:walker@fight
combat_ignore_cond = {+pri_a28_actor_enemy} false, true
combat_ignore_keep_when_attacked = true
radius = 15
[walker@kovalski_fight]:walker@fight
on_info99 = {-pri_a28_actor_enemy -pri_a28_colonel_strelok_out +pri_a28_strelok_dead} %+pri_a28_colonel_strelok_out =play_sound(pri_a28_colonel_strelok_out)%
[walker@kovalski_ignore]:walker@ignore
on_info99 = {-pri_a28_actor_enemy -pri_a28_colonel_strelok_out +pri_a28_strelok_dead} %+pri_a28_colonel_strelok_out =play_sound(pri_a28_colonel_strelok_out)%
;Wounded - no wounds
[wounded@no_wound]
hp_state = 0 | wounded_heavy@help_heavy
hp_state_see = 0 | wounded_heavy@help_heavy
hp_victim = 0 | nil
hp_cover = 0 | false
hp_fight = 0 | false

View file

@ -0,0 +1,254 @@
#include "pri_a28_general.ltx"
[logic@pri_a28_kovalski_heli]
active = camper@kovalski_heli_1
suitable = {=check_npc_name(kovalski)} true
prior = 200
on_hit = hit@def
on_death = death@def
post_combat_time = 0,0
[camper@kovalski_heli_1]:walker@kovalski_ignore
path_walk = kovalski_1_walk
path_look = kovalski_1_look
def_state_standing = hide_na
out_restr = pri_a28_scene_end_zone
on_game_timer = 30 | {+pri_a28_evac_come_close_done} %=play_sound(pri_a28_colonel_close_by)%
on_signal = sound_end | camper@kovalski_heli_1_fight
[camper@kovalski_heli_1_fight]:walker@kovalski_fight
path_walk = kovalski_1_walk
path_look = kovalski_1_look
def_state_standing = hide_na
out_restr = pri_a28_scene_end_zone
on_info = {=npc_in_zone(pri_a28_sr_small)} camper@kovalski_heli_2 %=disable_memory_object%
[camper@kovalski_heli_2]:walker@kovalski_ignore
path_walk = kovalski_2_walk
path_look = kovalski_1_look
out_restr = pri_a28_scene_end_zone
on_signal = path_end | camper@kovalski_heli_2_fight
[camper@kovalski_heli_2_fight]:walker@kovalski_fight
path_walk = kovalski_2_walk
path_look = kovalski_1_look
out_restr = pri_a28_scene_end_zone
[logic@pri_a28_strelok_heli]
active = camper@strelok_heli_1
suitable = {=check_npc_name(strelok)} true
prior = 200
on_hit = hit@def
on_death = death@def
post_combat_time = 0,0
[camper@strelok_heli_1]:walker@ignore
path_walk = strelok_1_walk
path_look = strelok_1_look
def_state_standing = hide_na
out_restr = pri_a28_scene_end_zone
on_info = {=npc_in_zone(pri_a28_sr_small)} camper@strelok_heli_2
[camper@strelok_heli_2]:walker@ignore
path_walk = strelok_2_walk
path_look = strelok_1_look
out_restr = pri_a28_scene_end_zone
on_signal = path_end | camper@strelok_heli_2_fight
on_info = {-pri_a28_strelok_can_leave =npc_in_zone(pri_a28_scene_end_zone)} %+pri_a28_strelok_can_leave%
[camper@strelok_heli_2_fight]:walker@fight
path_walk = strelok_2_walk
path_look = strelok_1_look
out_restr = pri_a28_scene_end_zone
on_info = {-pri_a28_strelok_can_leave =npc_in_zone(pri_a28_scene_end_zone)} %+pri_a28_strelok_can_leave%
[logic@pri_a28_military_1_heli]
active = camper@military_1_heli_1
suitable = {=target_squad_name(pri_a16_military_squad) !check_npc_name(strelok) !check_npc_name(kovalski)} true
prior = 110
on_hit = hit@def
on_death = death@def
post_combat_time = 0,0
[camper@military_1_heli_1]:walker@fight
path_walk = military_1_1_walk
path_look = military_1_1_look
def_state_standing = hide_na
out_restr = pri_a28_sr_heli_1
on_info = {+pri_a28_evac_com_to_helicopter} camper@military_1_heli_2 %=disable_memory_object%
[camper@military_1_heli_2]:walker@ignore
path_walk = military_1_2_walk
path_look = military_1_2_look
out_restr = pri_a28_scene_end_zone
on_signal = path_end | camper@military_1_heli_2_fight
[camper@military_1_heli_2_fight]:walker@fight
path_walk = military_1_2_walk
path_look = military_1_2_look
out_restr = pri_a28_scene_end_zone
[logic@pri_a28_military_2_heli]
active = camper@military_2_heli_1
suitable = {=target_squad_name(pri_a16_military_squad) !check_npc_name(strelok) !check_npc_name(kovalski)} true
prior = 100
on_hit = hit@def
on_death = death@def
post_combat_time = 0,0
[camper@military_2_heli_1]:walker@fight
path_walk = military_2_1_walk
path_look = military_2_1_look
def_state_standing = hide_na
out_restr = pri_a28_sr_heli_1
on_info = {+pri_a28_evac_com_to_helicopter} camper@military_2_heli_2 %=disable_memory_object%
[camper@military_2_heli_2]:walker@ignore
path_walk = military_2_2_walk
path_look = military_2_2_look
out_restr = pri_a28_scene_end_zone
on_signal = path_end | camper@military_2_heli_2_fight
[camper@military_2_heli_2_fight]:walker@fight
path_walk = military_2_2_walk
path_look = military_2_2_look
out_restr = pri_a28_scene_end_zone
[logic@pri_a28_military_3_heli]
active = camper@military_3_heli_1
suitable = {=target_squad_name(pri_a16_military_squad) !check_npc_name(strelok) !check_npc_name(kovalski)} true
prior = 90
on_hit = hit@def
on_death = death@def
post_combat_time = 0,0
[camper@military_3_heli_1]:walker@fight
path_walk = military_3_1_walk
path_look = military_3_1_look
def_state_standing = hide_na
out_restr = pri_a28_sr_heli_1
on_info = {+pri_a28_evac_com_to_helicopter} camper@military_3_heli_2 %=disable_memory_object%
[camper@military_3_heli_2]:walker@ignore
path_walk = military_3_2_walk
path_look = military_3_2_look
out_restr = pri_a28_scene_end_zone
on_signal = path_end | camper@military_3_heli_2_fight
[camper@military_3_heli_2_fight]:walker@fight
path_walk = military_3_2_walk
path_look = military_3_2_look
out_restr = pri_a28_scene_end_zone
[logic@pri_a28_military_4_heli]
active = camper@military_4_heli_1
suitable = {=target_squad_name(pri_a16_military_squad) !check_npc_name(strelok) !check_npc_name(kovalski)} true
prior = 110
on_hit = hit@def
on_death = death@def
post_combat_time = 0,0
[camper@military_4_heli_1]:walker@fight
path_walk = military_4_1_walk
path_look = military_4_1_look
def_state_standing = hide_na
out_restr = pri_a28_sr_heli_2
on_info = {+pri_a28_evac_com_to_helicopter} camper@military_4_heli_1_wait
[camper@military_4_heli_1_wait]:walker@fight
path_walk = military_4_1_walk
path_look = military_4_1_look
def_state_standing = hide_na
out_restr = pri_a28_sr_heli_2
on_game_timer = 180 | camper@military_4_heli_2 %=disable_memory_object%
[camper@military_4_heli_2]:walker@ignore
path_walk = military_4_2_walk
path_look = military_4_2_look
out_restr = pri_a28_scene_end_zone
on_signal = path_end | camper@military_4_heli_2_fight
[camper@military_4_heli_2_fight]:walker@fight
path_walk = military_4_2_walk
path_look = military_4_2_look
out_restr = pri_a28_scene_end_zone
[logic@pri_a28_military_5_heli]
active = camper@military_5_heli_1
suitable = {=target_squad_name(pri_a16_military_squad) !check_npc_name(strelok) !check_npc_name(kovalski)} true
prior = 100
on_hit = hit@def
on_death = death@def
post_combat_time = 0,0
[camper@military_5_heli_1]:walker@fight
path_walk = military_5_1_walk
path_look = military_5_1_look
def_state_standing = hide_na
out_restr = pri_a28_sr_heli_2
on_info = {+pri_a28_evac_com_to_helicopter} camper@military_5_heli_1_wait
[camper@military_5_heli_1_wait]:walker@fight
path_walk = military_5_1_walk
path_look = military_5_1_look
def_state_standing = hide_na
out_restr = pri_a28_sr_heli_2
on_game_timer = 180 | camper@military_5_heli_2 %=disable_memory_object%
[camper@military_5_heli_2]:walker@ignore
path_walk = military_5_2_walk
path_look = military_5_2_look
out_restr = pri_a28_scene_end_zone
on_signal = path_end | camper@military_5_heli_2_fight
[camper@military_5_heli_2_fight]:walker@fight
path_walk = military_5_2_walk
path_look = military_5_2_look
out_restr = pri_a28_scene_end_zone
[logic@pri_a28_military_6_heli]
active = camper@military_6_heli_1
suitable = {=target_squad_name(pri_a16_military_squad) !check_npc_name(strelok) !check_npc_name(kovalski)} true
prior = 90
on_hit = hit@def
on_death = death@def
post_combat_time = 0,0
[camper@military_6_heli_1]:walker@fight
path_walk = military_6_1_walk
path_look = military_6_1_look
def_state_standing = hide_na
out_restr = pri_a28_sr_heli_2
on_info = {+pri_a28_evac_com_to_helicopter} camper@military_6_heli_1_wait
[camper@military_6_heli_1_wait]:walker@fight
path_walk = military_6_1_walk
path_look = military_6_1_look
def_state_standing = hide_na
out_restr = pri_a28_sr_heli_2
on_game_timer = 180 | camper@military_6_heli_2 %=disable_memory_object%
[camper@military_6_heli_2]:walker@ignore
path_walk = military_6_2_walk
path_look = military_6_2_look
out_restr = pri_a28_scene_end_zone
on_signal = path_end | camper@military_6_heli_2_fight
[camper@military_6_heli_2_fight]:walker@fight
path_walk = military_6_2_walk
path_look = military_6_2_look
out_restr = pri_a28_scene_end_zone

View file

@ -0,0 +1,64 @@
[logic]
active = heli_move@under_level
[heli_move@under_level]
path_move = pri_a28_heli_under_level_1
path_look = pri_a28_heli_way_1
max_velocity = 100
combat_ignore_cond = true
combat_ignore_keep_when_attacked = true
engine_sound = false
on_info = {+pri_b305_fifth_cam_end} heli_move@start
;Çàòû÷êà
on_info2 = {+pri_a28_cutscene_start} heli_move@land %+pri_a28_helis_added =spawn_object(pri_a28_earth_helli_1:pri_a28_heli_landing_way_1:0:215) =spawn_object(pri_a28_earth_helli_2:pri_a28_heli_landing_way_2:0:210)%
[heli_move@start]
path_move = pri_a28_heli_start_1
path_look = pri_a28_heli_way_1
max_velocity = 100
combat_ignore_cond = true
combat_ignore_keep_when_attacked = true
engine_sound = false
on_info = {+pri_a28_update_task_cover_strelok} heli_move@flyby
[heli_move@flyby]
path_move = pri_a28_heli_way_1
path_look = pri_a28_heli_cutscene_move_1
max_velocity = 100
combat_ignore_cond = true
combat_ignore_keep_when_attacked = true
on_info = {-pri_a28_heli_near_base =npc_in_zone(pri_a28_heli_near_base)} %+pri_a28_heli_near_base%
on_info2 = {=npc_in_zone(pri_a28_heli_landing_zone)} heli_move@land %+pri_a28_helis_added =spawn_object(pri_a28_earth_helli_1:pri_a28_heli_landing_way_1:0:215) =spawn_object(pri_a28_earth_helli_2:pri_a28_heli_landing_way_2:0:210)%
[heli_move@land]
path_move = pri_a28_heli_land_move_1
path_look = pri_a28_heli_land_look_1
max_velocity = 100
combat_ignore_cond = true
combat_ignore_keep_when_attacked = true
engine_sound = false
on_info = {+pri_a28_helis_leave} heli_move@cutscene
[heli_move@cutscene]
path_move = pri_a28_heli_cutscene_move_1
path_look = pri_a28_heli_cutscene_move_1_2
max_velocity = 100
combat_ignore_cond = true
combat_ignore_keep_when_attacked = true
on_info = {=npc_in_zone(pri_a28_helli_start_away_zone)} heli_move@fly_over %+pri_a28_heli_fly_over%
;on_info2 = {+pri_a28_heli_fly_over} heli_move@fly_over
[heli_move@fly_over]
path_move = pri_a28_heli_cutscene_move_1_2
path_look = pri_a28_heli_cutscene_move_away_1
max_velocity = 100
combat_ignore_cond = true
combat_ignore_keep_when_attacked = true
on_game_timer = 50 | heli_move@cutscene_away
[heli_move@cutscene_away]
path_move = pri_a28_heli_cutscene_move_away_1
max_velocity = 100
combat_ignore_cond = true
combat_ignore_keep_when_attacked = true
on_info = {=npc_in_zone(pri_a28_scene_end_hellis_destroy_zone)} %=destroy_object%

View file

@ -0,0 +1,71 @@
[logic]
active = heli_move@under_level
[heli_move@under_level]
path_move = pri_a28_heli_under_level_2
path_look = pri_a28_heli_way_2
max_velocity = 100
combat_ignore_cond = true
combat_ignore_keep_when_attacked = true
engine_sound = false
on_info = {+pri_b305_fifth_cam_end} heli_move@start
on_info2 = {+pri_a28_cutscene_start} heli_move@land
[heli_move@start]
path_move = pri_a28_heli_start_2
path_look = pri_a28_heli_way_2
max_velocity = 100
combat_ignore_cond = true
combat_ignore_keep_when_attacked = true
engine_sound = false
on_info = {+pri_a28_update_task_cover_strelok} heli_move@wait
[heli_move@wait]
path_move = pri_a28_heli_start_2
path_look = pri_a28_heli_way_2
max_velocity = 100
combat_ignore_cond = true
combat_ignore_keep_when_attacked = true
on_game_timer = 100 | heli_move@flyby
[heli_move@flyby]
path_move = pri_a28_heli_way_2
path_look = pri_a28_heli_cutscene_move_2
max_velocity = 100
combat_ignore_cond = true
combat_ignore_keep_when_attacked = true
on_info = {-pri_a28_heli_near_base =npc_in_zone(pri_a28_heli_near_base)} %+pri_a28_heli_near_base%
on_info2 = {=npc_in_zone(pri_a28_heli_landing_zone)} heli_move@land
[heli_move@land]
path_move = pri_a28_heli_land_move_2
path_look = pri_a28_heli_land_look_2
max_velocity = 100
combat_ignore_cond = true
combat_ignore_keep_when_attacked = true
engine_sound = false
on_info = {+pri_a28_helis_leave} heli_move@cutscene
[heli_move@cutscene]
path_move = pri_a28_heli_cutscene_move_2
path_look = pri_a28_heli_cutscene_move_2_2
max_velocity = 100
combat_ignore_cond = true
combat_ignore_keep_when_attacked = true
on_info = {=npc_in_zone(pri_a28_helli_start_away_zone)} heli_move@fly_over %+pri_a28_heli_fly_over%
;on_info2 = {+pri_a28_heli_fly_over} heli_move@fly_over
[heli_move@fly_over]
path_move = pri_a28_heli_cutscene_move_2_2
path_look = pri_a28_heli_cutscene_move_away_2
max_velocity = 100
combat_ignore_cond = true
combat_ignore_keep_when_attacked = true
on_game_timer = 45 | heli_move@cutscene_away
[heli_move@cutscene_away]
path_move = pri_a28_heli_cutscene_move_away_2
max_velocity = 100
combat_ignore_cond = true
combat_ignore_keep_when_attacked = true
on_info = {=npc_in_zone(pri_a28_scene_end_hellis_destroy_zone)} %=destroy_object%

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,310 @@
#include "pri_a28_general.ltx"
[logic@pri_a28_kovalski_school]
active = camper@kovalski_school_1
suitable = {-pri_a28_school_done =check_npc_name(kovalski)} true
prior = 200
on_hit = hit@def
on_death = death@def
post_combat_time = 0,0
[camper@kovalski_school_1]:walker@kovalski_ignore
path_walk = kovalski_1_walk
path_look = kovalski_1_look
out_restr = pri_a28_sr_school_1
on_info = {=npc_in_zone(pri_a28_sr_school_1) +pri_a28_medic_about_snork} camper@kovalski_school_1_wait
[camper@kovalski_school_1_wait]:walker@kovalski_ignore
path_walk = kovalski_1_walk
path_look = kovalski_1_look
out_restr = pri_a28_sr_school_1
on_game_timer = 10 | %=play_sound(pri_a28_colonel_about_snork)%
on_signal = sound_end | camper@kovalski_school_2 %+pri_a28_colonel_about_snork%
on_info = {+pri_a28_colonel_about_snork} camper@kovalski_school_2
[camper@kovalski_school_2]:walker@kovalski_fight
path_walk = kovalski_2_walk
path_look = kovalski_2_look
;def_state_moving = assault_fire
out_restr = pri_a28_sr_school_2
on_signal = path_end | %+pri_a28_school_2_leave%
on_info = {+pri_a28_school_2_leave} camper@kovalski_school_2_wait %=disable_memory_object%
[camper@kovalski_school_2_wait]:walker@kovalski_ignore
path_walk = kovalski_2_walk
path_look = kovalski_2_look
out_restr = pri_a28_sr_school_2
on_game_timer = 10 | {-pri_a28_colonel_fire_will} camper@kovalski_school_3 %+pri_a28_colonel_fire_will =play_sound(pri_a28_colonel_fire_will)%
on_info = {+pri_a28_colonel_fire_will} camper@kovalski_school_3
[camper@kovalski_school_3]:walker@kovalski_fight
path_walk = kovalski_3_walk
path_look = kovalski_3_look
;def_state_moving = assault_fire
out_restr = pri_a28_sr_school_3
on_signal = path_end | {-pri_a28_school_done} %+pri_a28_school_done%
[logic@pri_a28_medic_school]
active = camper@medic_school_1
suitable = {-pri_a28_school_done =check_npc_name(base_medic)} true
prior = 200
on_hit = hit@def
on_death = death@def
post_combat_time = 0,0
[camper@medic_school_1]:walker@ignore
path_walk = medic_1_walk
path_look = medic_1_look
def_state_standing = hide_na
out_restr = pri_a28_sr_school_1
on_signal = sound_end | %+pri_a28_medic_about_snork%
on_info = {+pri_a28_school_1_leave} %=play_sound(pri_a28_medic_about_snork)%
on_info2 = {+pri_a28_colonel_about_snork} camper@medic_school_2
[camper@medic_school_2]:walker@fight
path_walk = medic_2_walk
path_look = medic_2_look
;def_state_moving = assault_fire
out_restr = pri_a28_sr_school_2
on_signal = path_end | camper@medic_school_2_wait %+pri_a28_school_2_leave%
on_info = {+pri_a28_school_2_leave} camper@medic_school_2_wait
[camper@medic_school_2_wait]:walker@fight
path_walk = medic_2_walk
path_look = medic_2_look
out_restr = pri_a28_sr_school_2
on_info = {+pri_a28_colonel_fire_will} camper@medic_school_3
[camper@medic_school_3]:walker@fight
path_walk = medic_3_walk
path_look = medic_3_look
;def_state_moving = assault_fire
out_restr = pri_a28_sr_school_3
on_signal = path_end | {-pri_a28_school_done} %+pri_a28_school_done%
[logic@pri_a28_strelok_school]
active = camper@strelok_school_1
suitable = {-pri_a28_school_done =check_npc_name(strelok)} true
prior = 200
on_hit = hit@def
on_death = death@def
post_combat_time = 0,0
[camper@strelok_school_1]:walker@ignore
path_walk = strelok_1_walk
path_look = strelok_1_look
out_restr = pri_a28_sr_school_1
on_info = {+pri_a28_colonel_about_snork} camper@strelok_school_2
[camper@strelok_school_2]:walker@fight
path_walk = strelok_2_walk
path_look = strelok_2_look
;def_state_moving = assault_fire
out_restr = pri_a28_sr_school_2
on_signal = path_end | camper@strelok_school_2_wait %+pri_a28_school_2_leave%
on_info = {+pri_a28_school_2_leave} camper@strelok_school_2_wait
[camper@strelok_school_2_wait]:walker@fight
path_walk = strelok_2_walk
path_look = strelok_2_look
out_restr = pri_a28_sr_school_2
on_info = {+pri_a28_colonel_fire_will} camper@strelok_school_3
[camper@strelok_school_3]:walker@fight
path_walk = strelok_3_walk
path_look = strelok_3_look
;def_state_moving = assault_fire
out_restr = pri_a28_sr_school_3
on_signal = path_end | {-pri_a28_school_done} %+pri_a28_school_done%
[logic@pri_a28_military_1_school]
active = camper@military_1_school_1
suitable = {-pri_a28_school_done =target_squad_name(pri_a16_military_squad) !check_npc_name(strelok) !check_npc_name(kovalski) !check_npc_name(base_medic)} true
prior = 100
on_hit = hit@def
on_death = death@def
post_combat_time = 0,0
[camper@military_1_school_1]:walker@ignore
path_walk = military_1_1_walk
path_look = military_1_1_look
def_state_standing = hide_na
out_restr = pri_a28_sr_school_1
on_info = {+pri_a28_colonel_about_snork} camper@military_1_school_2
[camper@military_1_school_2]:walker@fight
path_walk = military_1_2_walk
path_look = military_1_2_look
;def_state_moving = assault_fire
out_restr = pri_a28_sr_school_2
on_signal = path_end | camper@military_1_school_2_wait %+pri_a28_school_2_leave%
on_info = {+pri_a28_school_2_leave} camper@military_1_school_2_wait
[camper@military_1_school_2_wait]:walker@fight
path_walk = military_1_2_walk
path_look = military_1_2_look
out_restr = pri_a28_sr_school_2
on_info = {+pri_a28_colonel_fire_will} camper@military_1_school_3
[camper@military_1_school_3]:walker@fight
path_walk = military_1_3_walk
path_look = military_1_3_look
;def_state_moving = assault_fire
out_restr = pri_a28_sr_school_3
on_signal = path_end | {-pri_a28_school_done} %+pri_a28_school_done%
[logic@pri_a28_military_2_school]
active = camper@military_2_school_1
suitable = {-pri_a28_school_done =target_squad_name(pri_a16_military_squad) !check_npc_name(strelok) !check_npc_name(kovalski) !check_npc_name(base_medic)} true
prior = 100
on_hit = hit@def
on_death = death@def
post_combat_time = 0,0
[camper@military_2_school_1]:walker@ignore
path_walk = military_2_1_walk
path_look = military_2_1_look
def_state_standing = hide_na
out_restr = pri_a28_sr_school_1
on_info = {+pri_a28_colonel_about_snork} camper@military_2_school_2
[camper@military_2_school_2]:walker@fight
path_walk = military_2_2_walk
path_look = military_2_2_look
;def_state_moving = assault_fire
out_restr = pri_a28_sr_school_2
on_signal = path_end | camper@military_2_school_2_wait %+pri_a28_school_2_leave%
on_info = {+pri_a28_school_2_leave} camper@military_2_school_2_wait
[camper@military_2_school_2_wait]:walker@fight
path_walk = military_2_2_walk
path_look = military_2_2_look
out_restr = pri_a28_sr_school_2
on_info = {+pri_a28_colonel_fire_will} camper@military_2_school_3
[camper@military_2_school_3]:walker@fight
path_walk = military_2_3_walk
path_look = military_2_3_look
;def_state_moving = assault_fire
out_restr = pri_a28_sr_school_3
on_signal = path_end | {-pri_a28_school_done} %+pri_a28_school_done%
[logic@pri_a28_military_3_school]
active = camper@military_3_school_1
suitable = {-pri_a28_school_done =target_squad_name(pri_a16_military_squad) !check_npc_name(strelok) !check_npc_name(kovalski) !check_npc_name(base_medic)} true
prior = 100
on_hit = hit@def
on_death = death@def
post_combat_time = 0,0
[camper@military_3_school_1]:walker@ignore
path_walk = military_3_1_walk
path_look = military_3_1_look
def_state_standing = hide_na
out_restr = pri_a28_sr_school_1
on_info = {+pri_a28_colonel_about_snork} camper@military_3_school_2
[camper@military_3_school_2]:walker@fight
path_walk = military_3_2_walk
path_look = military_3_2_look
;def_state_moving = assault_fire
out_restr = pri_a28_sr_school_2
on_signal = path_end | camper@military_3_school_2_wait %+pri_a28_school_2_leave%
on_info = {+pri_a28_school_2_leave} camper@military_3_school_2_wait
[camper@military_3_school_2_wait]:walker@fight
path_walk = military_3_2_walk
path_look = military_3_2_look
out_restr = pri_a28_sr_school_2
on_info = {+pri_a28_colonel_fire_will} camper@military_3_school_3
[camper@military_3_school_3]:walker@fight
path_walk = military_3_3_walk
path_look = military_3_3_look
;def_state_moving = assault_fire
out_restr = pri_a28_sr_school_3
on_signal = path_end | {-pri_a28_school_done} %+pri_a28_school_done%
[logic@pri_a28_military_4_school]
active = camper@military_4_school_1
suitable = {-pri_a28_school_done =target_squad_name(pri_a16_military_squad) !check_npc_name(strelok) !check_npc_name(kovalski) !check_npc_name(base_medic)} true
prior = 100
on_hit = hit@def
on_death = death@def
post_combat_time = 0,0
[camper@military_4_school_1]:walker@ignore
path_walk = military_4_1_walk
path_look = military_4_1_look
out_restr = pri_a28_sr_school_1
on_info = {+pri_a28_colonel_about_snork} camper@military_4_school_2
[camper@military_4_school_2]:walker@fight
path_walk = military_4_2_walk
path_look = military_4_2_look
;def_state_moving = assault_fire
out_restr = pri_a28_sr_school_2
on_signal = path_end | camper@military_4_school_2_wait %+pri_a28_school_2_leave%
on_info = {+pri_a28_school_2_leave} camper@military_4_school_2_wait
[camper@military_4_school_2_wait]:walker@fight
path_walk = military_4_2_walk
path_look = military_4_2_look
out_restr = pri_a28_sr_school_2
on_info = {+pri_a28_colonel_fire_will} camper@military_4_school_3
[camper@military_4_school_3]:walker@fight
path_walk = military_4_3_walk
path_look = military_4_3_look
;def_state_moving = assault_fire
out_restr = pri_a28_sr_school_3
on_signal = path_end | {-pri_a28_school_done} %+pri_a28_school_done%
[logic@pri_a28_military_5_school]
active = camper@military_5_school_1
suitable = {-pri_a28_school_done =target_squad_name(pri_a16_military_squad) !check_npc_name(strelok) !check_npc_name(kovalski) !check_npc_name(base_medic)} true
prior = 100
on_hit = hit@def
on_death = death@def
post_combat_time = 0,0
[camper@military_5_school_1]:walker@ignore
path_walk = military_5_1_walk
path_look = military_5_1_look
out_restr = pri_a28_sr_school_1
on_info = {+pri_a28_colonel_about_snork} camper@military_5_school_2
[camper@military_5_school_2]:walker@fight
path_walk = military_5_2_walk
path_look = military_5_2_look
;def_state_moving = assault_fire
out_restr = pri_a28_sr_school_2
on_signal = path_end | camper@military_5_school_2_wait %+pri_a28_school_2_leave%
on_info = {+pri_a28_school_2_leave} camper@military_5_school_2_wait
[camper@military_5_school_2_wait]:walker@fight
path_walk = military_5_2_walk
path_look = military_5_2_look
out_restr = pri_a28_sr_school_2
on_info = {+pri_a28_colonel_fire_will} camper@military_5_school_3
[camper@military_5_school_3]:walker@fight
path_walk = military_5_3_walk
path_look = military_5_3_look
;def_state_moving = assault_fire
out_restr = pri_a28_sr_school_3
on_signal = path_end | {-pri_a28_school_done} %+pri_a28_school_done%

View file

@ -0,0 +1,269 @@
[logic@pri_a28_snork_1_school]
suitable = {+pri_b305_fifth_cam_end =target_squad_name(pri_a28_school_snorks_1)} true
prior = 100
active = mob_home@pri_a28_snork_1_school_wait
monster_job = true
on_hit = hit@pri_a28_snork_hit
[mob_home@pri_a28_snork_1_school_wait]
path_home = snork_1_home
out_restr = pri_a28_sr_school_3
home_min_radius = 5
home_max_radius = 20
aggressive = false
combat_ignore_cond = true
on_info = {+pri_a28_arch_done} mob_walker@pri_a28_snork_1_school_walk
[mob_walker@pri_a28_snork_1_school_walk]
path_walk = snork_1_walk
path_look = snork_1_jump
on_signal = path_end | mob_jump@pri_a28_snork_1_school_jump
on_game_timer = 30 | mob_jump@pri_a28_snork_1_school_jump
[mob_jump@pri_a28_snork_1_school_jump]
path_jump = snork_1_jump
offset = 0,0,0
ph_jump_factor = 1.1
on_signal = jumped | mob_home@pri_a28_snork_1_school_home
[mob_home@pri_a28_snork_1_school_home]
path_home = snork_1_attack
aggressive = true
[hit@pri_a28_snork_hit]
on_info = {~33 +pri_a28_colonel_about_snork} %=kill_npc%
[logic@pri_a28_snork_2_school]
suitable = {+pri_b305_fifth_cam_end =target_squad_name(pri_a28_school_snorks_1)} true
prior = 100
active = mob_home@pri_a28_snork_2_school_wait
monster_job = true
on_hit = hit@pri_a28_snork_hit
[mob_home@pri_a28_snork_2_school_wait]:mob_home@pri_a28_snork_1_school_wait
on_info = {+pri_a28_arch_done} mob_walker@pri_a28_snork_2_school_walk
[mob_walker@pri_a28_snork_2_school_walk]
path_walk = snork_2_walk
path_look = snork_2_jump
on_signal = path_end | mob_jump@pri_a28_snork_2_school_jump
on_game_timer = 40 | mob_jump@pri_a28_snork_2_school_jump
[mob_jump@pri_a28_snork_2_school_jump]
path_jump = snork_2_jump
offset = 0,0,0
ph_jump_factor = 1
on_signal = jumped | mob_home@pri_a28_snork_2_school_home
[mob_home@pri_a28_snork_2_school_home]:mob_home@pri_a28_snork_1_school_home
[logic@pri_a28_snork_3_school]
suitable = {+pri_b305_fifth_cam_end =target_squad_name(pri_a28_school_snorks_1)} true
prior = 100
active = mob_home@pri_a28_snork_3_school_wait
monster_job = true
on_hit = hit@pri_a28_snork_hit
[mob_home@pri_a28_snork_3_school_wait]:mob_home@pri_a28_snork_1_school_wait
on_info = {+pri_a28_arch_done} mob_walker@pri_a28_snork_3_school_walk
[mob_walker@pri_a28_snork_3_school_walk]
path_walk = snork_3_walk
path_look = snork_3_jump
on_signal = path_end | mob_jump@pri_a28_snork_3_school_jump
on_game_timer = 50 | mob_jump@pri_a28_snork_3_school_jump
[mob_jump@pri_a28_snork_3_school_jump]
path_jump = snork_3_jump
offset = 0,0,0
ph_jump_factor = 1.2
on_signal = jumped | mob_home@pri_a28_snork_3_school_home
[mob_home@pri_a28_snork_3_school_home]:mob_home@pri_a28_snork_1_school_home
[logic@pri_a28_snork_4_school]
suitable = {+pri_b305_fifth_cam_end =target_squad_name(pri_a28_school_snorks_1)} true
prior = 100
active = mob_home@pri_a28_snork_4_school_wait
monster_job = true
on_hit = hit@pri_a28_snork_hit
[mob_home@pri_a28_snork_4_school_wait]:mob_home@pri_a28_snork_1_school_wait
on_info = {+pri_a28_arch_done} mob_walker@pri_a28_snork_4_school_walk
[mob_walker@pri_a28_snork_4_school_walk]
path_walk = snork_4_walk
path_look = snork_4_jump
on_signal = path_end | mob_jump@pri_a28_snork_4_school_jump
on_game_timer = 35 | mob_jump@pri_a28_snork_4_school_jump
[mob_jump@pri_a28_snork_4_school_jump]
path_jump = snork_4_jump
offset = 0,0,0
ph_jump_factor = 0.95
on_signal = jumped | mob_home@pri_a28_snork_4_school_home
[mob_home@pri_a28_snork_4_school_home]:mob_home@pri_a28_snork_1_school_home
[logic@pri_a28_snork_5_school]
suitable = {+pri_b305_fifth_cam_end =target_squad_name(pri_a28_school_snorks_2)} true
prior = 100
active = mob_home@pri_a28_snork_5_school_wait
monster_job = true
on_hit = hit@pri_a28_snork_hit
[mob_home@pri_a28_snork_5_school_wait]
path_home = snork_2_home
out_restr = pri_a28_school_in_restrictor
home_min_radius = 2
home_max_radius = 6
aggressive = false
combat_ignore_cond = true
on_info = {+pri_a28_school_2_leave} mob_walker@pri_a28_snork_5_school_walk
on_info2 = {!npc_in_zone(pri_a28_school_in_restrictor)} %=teleport_npc(pri_a28_school_snork_2_home)%
[mob_walker@pri_a28_snork_5_school_walk]
path_walk = snork_5_walk
path_look = snork_5_jump
out_restr = pri_a28_school_in_restrictor
on_signal = path_end | mob_jump@pri_a28_snork_5_school_jump
on_game_timer = 30 | mob_jump@pri_a28_snork_5_school_jump
[mob_jump@pri_a28_snork_5_school_jump]
path_jump = snork_5_jump
out_restr = pri_a28_school_in_restrictor
offset = 0,0,0
ph_jump_factor = 1
on_signal = jumped | mob_home@pri_a28_snork_5_school_home
[mob_home@pri_a28_snork_5_school_home]
path_home = snork_2_attack
aggressive = true
on_game_timer = 25 | {=npc_in_zone(pri_a28_school_in_restrictor)} mob_jump@pri_a28_snork_5_school_jump
[logic@pri_a28_snork_6_school]
suitable = {+pri_b305_fifth_cam_end =target_squad_name(pri_a28_school_snorks_2)} true
prior = 100
active = mob_home@pri_a28_snork_6_school_wait
monster_job = true
on_hit = hit@pri_a28_snork_hit
[mob_home@pri_a28_snork_6_school_wait]:mob_home@pri_a28_snork_5_school_wait
on_info = {+pri_a28_school_2_leave} mob_walker@pri_a28_snork_6_school_walk
[mob_walker@pri_a28_snork_6_school_walk]
path_walk = snork_6_walk
path_look = snork_6_jump
out_restr = pri_a28_school_in_restrictor
on_signal = path_end | mob_jump@pri_a28_snork_6_school_jump
on_game_timer = 40 | mob_jump@pri_a28_snork_6_school_jump
[mob_jump@pri_a28_snork_6_school_jump]
path_jump = snork_6_jump
out_restr = pri_a28_school_in_restrictor
offset = 0,0,0
ph_jump_factor = 1.1
on_signal = jumped | mob_home@pri_a28_snork_6_school_home
[mob_home@pri_a28_snork_6_school_home]:mob_home@pri_a28_snork_5_school_home
on_game_timer = 25 | {=npc_in_zone(pri_a28_school_in_restrictor)} mob_jump@pri_a28_snork_6_school_jump
[logic@pri_a28_snork_7_school]
suitable = {+pri_b305_fifth_cam_end =target_squad_name(pri_a28_school_snorks_2)} true
prior = 100
active = mob_home@pri_a28_snork_7_school_wait
monster_job = true
on_hit = hit@pri_a28_snork_hit
[mob_home@pri_a28_snork_7_school_wait]:mob_home@pri_a28_snork_5_school_wait
on_info = {+pri_a28_school_2_leave} mob_walker@pri_a28_snork_7_school_walk
[mob_walker@pri_a28_snork_7_school_walk]
path_walk = snork_7_walk
path_look = snork_7_jump
out_restr = pri_a28_school_in_restrictor
on_signal = path_end | mob_jump@pri_a28_snork_7_school_jump
on_game_timer = 50 | mob_jump@pri_a28_snork_7_school_jump
[mob_jump@pri_a28_snork_7_school_jump]
path_jump = snork_7_jump
out_restr = pri_a28_school_in_restrictor
offset = 0,0,0
ph_jump_factor = 1.1
on_signal = jumped | mob_home@pri_a28_snork_7_school_home
[mob_home@pri_a28_snork_7_school_home]:mob_home@pri_a28_snork_5_school_home
on_game_timer = 25 | {=npc_in_zone(pri_a28_school_in_restrictor)} mob_jump@pri_a28_snork_7_school_jump
[logic@pri_a28_snork_8_school]
suitable = {+pri_b305_fifth_cam_end =target_squad_name(pri_a28_school_snorks_2)} true
prior = 100
active = mob_home@pri_a28_snork_8_school_wait
monster_job = true
on_hit = hit@pri_a28_snork_hit
[mob_home@pri_a28_snork_8_school_wait]:mob_home@pri_a28_snork_5_school_wait
on_info = {+pri_a28_school_2_leave} mob_walker@pri_a28_snork_8_school_walk
[mob_walker@pri_a28_snork_8_school_walk]
path_walk = snork_8_walk
path_look = snork_8_jump
out_restr = pri_a28_school_in_restrictor
on_signal = path_end | mob_jump@pri_a28_snork_8_school_jump
on_game_timer = 55 | mob_jump@pri_a28_snork_8_school_jump
[mob_jump@pri_a28_snork_8_school_jump]
path_jump = snork_8_jump
out_restr = pri_a28_school_in_restrictor
offset = 0,0,0
ph_jump_factor = 1
on_signal = jumped | mob_home@pri_a28_snork_8_school_home
[mob_home@pri_a28_snork_8_school_home]:mob_home@pri_a28_snork_5_school_home
on_game_timer = 25 | {=npc_in_zone(pri_a28_school_in_restrictor)} mob_jump@pri_a28_snork_8_school_jump
[logic@pri_a28_snork_9_school]
suitable = {+pri_b305_fifth_cam_end =target_squad_name(pri_a28_school_snorks_2)} true
prior = 100
active = mob_home@pri_a28_snork_9_school_wait
monster_job = true
on_hit = hit@pri_a28_snork_hit
[mob_home@pri_a28_snork_9_school_wait]:mob_home@pri_a28_snork_5_school_wait
on_info = {+pri_a28_school_2_leave} mob_walker@pri_a28_snork_9_school_walk
[mob_walker@pri_a28_snork_9_school_walk]
path_walk = snork_9_walk
path_look = snork_9_jump
out_restr = pri_a28_school_in_restrictor
on_signal = path_end | mob_jump@pri_a28_snork_9_school_jump
on_game_timer = 45 | mob_jump@pri_a28_snork_9_school_jump
[mob_jump@pri_a28_snork_9_school_jump]
path_jump = snork_9_jump
out_restr = pri_a28_school_in_restrictor
offset = 0,0,0
ph_jump_factor = 0.85
on_signal = jumped | mob_home@pri_a28_snork_9_school_home
[mob_home@pri_a28_snork_9_school_home]:mob_home@pri_a28_snork_5_school_home
on_game_timer = 25 | {=npc_in_zone(pri_a28_school_in_restrictor)} mob_jump@pri_a28_snork_9_school_jump

View file

@ -0,0 +1,428 @@
#include "pri_a28_general.ltx"
[logic@pri_a28_kovalski_shop]
active = camper@kovalski_shop_1
suitable = {-pri_a28_shop_done =check_npc_name(kovalski)} true
prior = 200
on_hit = hit@def
on_death = death@def
post_combat_time = 0,0
[camper@kovalski_shop_1]:walker@kovalski_ignore
path_walk = kovalski_1_walk
path_look = kovalski_1_look
def_state_standing = hide_na
out_restr = pri_a28_sr_shop_1_small
on_info = {=npc_in_zone(pri_a28_sr_shop_1)} smartcover@kovalski_shop_1
[smartcover@kovalski_shop_1]:walker@kovalski_ignore
cover_name = pri_a28_shop_cover_4
use_in_combat = true
out_restr = pri_a28_sr_shop_1_small
on_info = {=in_dest_smart_cover +pri_a28_army_zombied_in_building} smartcover@kovalski_shop_1_wait
[smartcover@kovalski_shop_1_wait]:walker@kovalski_fight
cover_name = pri_a28_shop_cover_4
use_in_combat = true
out_restr = pri_a28_sr_shop_1_small
on_game_timer = 40 | %=play_sound(pri_a28_colonel_go_left)%
on_signal = sound_end | %+pri_a28_colonel_go_left%
on_info = {+pri_a28_colonel_go_left} smartcover@kovalski_shop_1_fight
;obsolete
[walker@kovalski_shop_1_wait]:walker@kovalski_fight
path_walk = kovalski_1_walk
path_look = kovalski_1_look
def_state_standing = hide_na
out_restr = pri_a28_sr_shop_1_small
on_game_timer = 40 | %=play_sound(pri_a28_colonel_go_left)%
on_signal = sound_end | %+pri_a28_colonel_go_left%
on_info = {+pri_a28_colonel_go_left} smartcover@kovalski_shop_1_fight
[smartcover@kovalski_shop_1_fight]:walker@kovalski_fight
cover_name = pri_a28_shop_cover_4
use_in_combat = true
out_restr = pri_a28_sr_shop_1_small
on_game_timer = 210 | {-pri_a28_shop_1_leave} camper@kovalski_shop_2_go %+pri_a28_shop_1_leave%
on_info = {+pri_a28_shop_1_leave} camper@kovalski_shop_2_go
on_info2 = {=in_dest_smart_cover !has_enemy_in_current_loopholes_fov} walker@kovalski_shop_1_fight
[walker@kovalski_shop_1_fight]:walker@kovalski_fight
path_walk = kovalski_1_walk
path_look = kovalski_1_look
out_restr = pri_a28_sr_shop_1_small
on_game_timer = 210 | {-pri_a28_shop_1_leave} %+pri_a28_shop_1_leave%
on_info = {+pri_a28_shop_1_leave} camper@kovalski_shop_2_go %=disable_memory_object%
[camper@kovalski_shop_2_go]:walker@kovalski_ignore
path_walk = kovalski_1_1_walk
path_look = kovalski_2_look
out_restr = pri_a28_sr_shop_2_small
in_restr = pri_a28_sr_shop_in
on_signal = path_end | camper@kovalski_shop_2
[camper@kovalski_shop_2]:walker@kovalski_ignore
path_walk = kovalski_2_walk
path_look = kovalski_2_look
out_restr = pri_a28_sr_shop_2
in_restr = pri_a28_sr_shop_in
on_info = {=npc_in_zone(pri_a28_sr_shop_2)} walker@kovalski_shop_2_fight
[walker@kovalski_shop_2_fight]:walker@kovalski_fight
path_walk = kovalski_2_walk
path_look = kovalski_2_look
def_state_standing = hide_na
out_restr = pri_a28_sr_shop_3_small
in_restr = pri_a28_sr_shop_in
on_signal = sound_end | %+pri_a28_shop_done%
on_game_timer = 200 | {-pri_a28_shop_3_leave} %+pri_a28_shop_3_leave%
on_info = {+pri_a28_shop_3_leave} %=play_sound(pri_a28_colonel_zombied_attack)%
[logic@pri_a28_medic_shop]
active = smartcover@medic_shop_1
suitable = {-pri_a28_shop_done =check_npc_name(base_medic)} true
prior = 200
on_hit = hit@def
on_death = death@def
post_combat_time = 0,0
[smartcover@medic_shop_1]:walker@ignore
cover_name = pri_a28_shop_cover_1
use_in_combat = true
out_restr = pri_a28_sr_shop_1_small
derf_state_moving = rush
on_signal = sound_end | %+pri_a28_army_zombied_in_building%
on_info = {=in_dest_smart_cover} %=play_sound(pri_a28_army_zombied_in_building)%
on_info2 = {+pri_a28_army_zombied_in_building} smartcover@medic_shop_1_fight
;obsolete
[camper@medic_shop_1]:walker@ignore
path_walk = medic_1_walk
path_look = medic_1_look
def_state_standing = hide_na
out_restr = pri_a28_sr_shop_1_small
on_signal = sound_end | %+pri_a28_army_zombied_in_building%
on_info = {=npc_in_zone(pri_a28_sr_shop_1_small)} %=play_sound(pri_a28_army_zombied_in_building)%
on_info2 = {+pri_a28_army_zombied_in_building} walker@medic_shop_1_fight
[smartcover@medic_shop_1_fight]:walker@fight
cover_name = pri_a28_shop_cover_1
use_in_combat = true
out_restr = pri_a28_sr_shop_1_small
on_game_timer = 250 | {-pri_a28_shop_1_leave} camper@medic_shop_2_go %+pri_a28_shop_1_leave%
on_info = {+pri_a28_shop_1_leave} camper@medic_shop_2_go
on_info2 = {=in_dest_smart_cover !has_enemy_in_current_loopholes_fov} walker@medic_shop_1_fight
[walker@medic_shop_1_fight]:walker@fight
path_walk = medic_1_walk
path_look = medic_1_look
out_restr = pri_a28_sr_shop_1_small
on_game_timer = 250 | {-pri_a28_shop_1_leave} %+pri_a28_shop_1_leave%
on_info = {+pri_a28_shop_1_leave} camper@medic_shop_2_go %=disable_memory_object%
[camper@medic_shop_2_go]:walker@ignore
path_walk = medic_1_1_walk
path_look = medic_2_look
out_restr = pri_a28_sr_shop_2_small
in_restr = pri_a28_sr_shop_in
on_signal = path_end | camper@medic_shop_2
[camper@medic_shop_2]:walker@ignore
path_walk = medic_2_walk
path_look = medic_2_look
out_restr = pri_a28_sr_shop_2
in_restr = pri_a28_sr_shop_in
on_info = {=npc_in_zone(pri_a28_sr_shop_2)} walker@medic_shop_2_fight
[walker@medic_shop_2_fight]:walker@fight
path_walk = medic_2_walk
path_look = medic_2_look
def_state_standing = hide_na
out_restr = pri_a28_sr_shop_3_small
in_restr = pri_a28_sr_shop_in
on_game_timer = 200 | {-pri_a28_shop_3_leave} %+pri_a28_shop_3_leave%
[logic@pri_a28_strelok_shop]
active = smartcover@strelok_shop_1
suitable = {-pri_a28_shop_done =check_npc_name(strelok)} true
prior = 200
on_hit = hit@def
on_death = death@def
post_combat_time = 0,0
[smartcover@strelok_shop_1]:walker@ignore
cover_name = pri_a28_shop_cover_3
use_in_combat = true
out_restr = pri_a28_sr_shop_1_small
on_info = {+pri_a28_army_zombied_in_building} smartcover@strelok_shop_1_fight
;obsolete
[camper@strelok_shop_1]:walker@ignore
path_walk = strelok_1_walk
path_look = strelok_1_look
def_state_standing = hide_na
out_restr = pri_a28_sr_shop_1_small
on_info = {+pri_a28_army_zombied_in_building} walker@strelok_shop_1_fight
[smartcover@strelok_shop_1_fight]:walker@fight
cover_name = pri_a28_shop_cover_3
use_in_combat = true
out_restr = pri_a28_sr_shop_1_small
on_game_timer = 250 | {-pri_a28_shop_1_leave} camper@strelok_shop_2_go %+pri_a28_shop_1_leave%
on_info = {+pri_a28_shop_1_leave} camper@strelok_shop_2_go
on_info2 = {=in_dest_smart_cover !has_enemy_in_current_loopholes_fov} walker@strelok_shop_1_fight
[walker@strelok_shop_1_fight]:walker@fight
path_walk = strelok_1_walk
path_look = strelok_1_look
out_restr = pri_a28_sr_shop_1_small
on_game_timer = 250 | {-pri_a28_shop_1_leave} %+pri_a28_shop_1_leave%
on_info = {+pri_a28_shop_1_leave} camper@strelok_shop_2_go %=disable_memory_object%
[camper@strelok_shop_2_go]:walker@ignore
path_walk = strelok_1_1_walk
path_look = strelok_2_look
out_restr = pri_a28_sr_shop_2_small
in_restr = pri_a28_sr_shop_in
on_signal = path_end | camper@strelok_shop_2
[camper@strelok_shop_2]:walker@ignore
path_walk = strelok_2_walk
path_look = strelok_2_look
out_restr = pri_a28_sr_shop_2
in_restr = pri_a28_sr_shop_in
on_info = {=npc_in_zone(pri_a28_sr_shop_2)} walker@strelok_shop_2_fight
[walker@strelok_shop_2_fight]:walker@fight
path_walk = strelok_2_walk
path_look = strelok_2_look
def_state_standing = hide_na
out_restr = pri_a28_sr_shop_3_small
in_restr = pri_a28_sr_shop_in
on_game_timer = 200 | {-pri_a28_shop_3_leave} %+pri_a28_shop_3_leave%
[logic@pri_a28_military_1_shop]
active = walker@military_1_shop_1
suitable = {-pri_a28_shop_done =target_squad_name(pri_a16_military_squad) !check_npc_name(strelok) !check_npc_name(base_medic) !check_npc_name(kovalski)} true
prior = 110
on_hit = hit@def
on_death = death@def
post_combat_time = 0,0
[walker@military_1_shop_1]:walker@fight
path_walk = military_1_1_walk
path_look = military_1_1_look
out_restr = pri_a28_sr_shop_1
combat_ignore_cond = {=actor_enemy} false, {=check_enemy_smart(pri_a28_shop)} true, false
on_info = {+pri_a28_colonel_go_left} camper@military_1_shop_1_go %=disable_memory_object%
[camper@military_1_shop_1_go]:walker@ignore
path_walk = military_1_1_walk
path_look = military_1_1_look
out_restr = pri_a28_sr_shop_2_small
on_info = {=npc_in_zone(pri_a28_sr_shop_2_small)} walker@military_1_shop_1_fight
on_info2 = {+pri_a28_shop_2_leave} camper@military_1_shop_2
[walker@military_1_shop_1_fight]:walker@fight
path_walk = military_1_1_walk
path_look = military_1_1_look
out_restr = pri_a28_sr_shop_2_small
on_game_timer = 200 | {-pri_a28_shop_2_leave} %+pri_a28_shop_2_leave%
on_info = {+pri_a28_shop_2_leave} camper@military_1_shop_2 %=disable_memory_object%
[camper@military_1_shop_2]:walker@ignore
path_walk = military_1_2_walk
path_look = military_1_2_look
out_restr = pri_a28_sr_shop_3_small
in_restr = pri_a28_sr_shop_in
on_signal = path_end | camper@military_1_shop_3
[camper@military_1_shop_3]:walker@fight
path_walk = military_1_3_walk
path_look = military_1_3_look
out_restr = pri_a28_sr_arch_1
in_restr = pri_a28_sr_shop_in
[logic@pri_a28_military_2_shop]
active = walker@military_2_shop_1
suitable = {-pri_a28_shop_done =target_squad_name(pri_a16_military_squad) !check_npc_name(strelok) !check_npc_name(base_medic) !check_npc_name(kovalski)} true
prior = 100
on_hit = hit@def
on_death = death@def
post_combat_time = 0,0
[walker@military_2_shop_1]:walker@fight
path_walk = military_2_1_walk
path_look = military_2_1_look
out_restr = pri_a28_sr_shop_1
combat_ignore_cond = {=actor_enemy} false, {=check_enemy_smart(pri_a28_shop)} true, false
on_info2 = {+pri_a28_colonel_go_left} camper@military_2_shop_1_go %=disable_memory_object%
[camper@military_2_shop_1_go]:walker@ignore
path_walk = military_2_1_walk
path_look = military_2_1_look
out_restr = pri_a28_sr_shop_2_small
on_info = {=npc_in_zone(pri_a28_sr_shop_2_small)} walker@military_2_shop_1_fight
on_info2 = {+pri_a28_shop_2_leave} camper@military_2_shop_2
[walker@military_2_shop_1_fight]:walker@fight
path_walk = military_2_1_walk
path_look = military_2_1_look
out_restr = pri_a28_sr_shop_2_small
on_game_timer = 200 | {-pri_a28_shop_2_leave} %+pri_a28_shop_2_leave%
on_info = {+pri_a28_shop_2_leave} camper@military_2_shop_2 %=disable_memory_object%
[camper@military_2_shop_2]:walker@ignore
path_walk = military_2_2_walk
path_look = military_2_2_look
out_restr = pri_a28_sr_shop_3_small
in_restr = pri_a28_sr_shop_in
on_signal = path_end | camper@military_2_shop_3
[camper@military_2_shop_3]:walker@fight
path_walk = military_2_3_walk
path_look = military_2_3_look
out_restr = pri_a28_sr_arch_1
in_restr = pri_a28_sr_shop_in
[logic@pri_a28_military_3_shop]
active = walker@military_3_shop_1
suitable = {-pri_a28_shop_done =target_squad_name(pri_a16_military_squad) !check_npc_name(strelok) !check_npc_name(base_medic) !check_npc_name(kovalski)} true
prior = 100
on_hit = hit@def
on_death = death@def
post_combat_time = 0,0
[walker@military_3_shop_1]:walker@fight
path_walk = military_3_1_walk
path_look = military_3_1_look
out_restr = pri_a28_sr_shop_1
combat_ignore_cond = {=actor_enemy} false, {=check_enemy_smart(pri_a28_shop)} true, false
on_info2 = {+pri_a28_colonel_go_left} camper@military_3_shop_1_go %=disable_memory_object%
[camper@military_3_shop_1_go]:walker@ignore
path_walk = military_3_1_walk
path_look = military_3_1_look
out_restr = pri_a28_sr_shop_2_small
on_info = {=npc_in_zone(pri_a28_sr_shop_2_small)} walker@military_3_shop_1_fight
on_info2 = {+pri_a28_shop_2_leave} camper@military_3_shop_2
[walker@military_3_shop_1_fight]:walker@fight
path_walk = military_3_1_walk
path_look = military_3_1_look
out_restr = pri_a28_sr_shop_2_small
on_game_timer = 200 | {-pri_a28_shop_2_leave} %+pri_a28_shop_2_leave%
on_info = {+pri_a28_shop_2_leave} camper@military_3_shop_2 %=disable_memory_object%
[camper@military_3_shop_2]:walker@ignore
path_walk = military_3_2_walk
path_look = military_3_2_look
out_restr = pri_a28_sr_shop_3_small
in_restr = pri_a28_sr_shop_in
on_signal = path_end | camper@military_3_shop_3
[camper@military_3_shop_3]:walker@fight
path_walk = military_3_3_walk
path_look = military_3_3_look
out_restr = pri_a28_sr_arch_1
in_restr = pri_a28_sr_shop_in
[logic@pri_a28_military_4_shop]
active = walker@military_4_shop_1
suitable = {-pri_a28_shop_done =target_squad_name(pri_a16_military_squad) !check_npc_name(strelok) !check_npc_name(base_medic) !check_npc_name(kovalski)} true
prior = 90
on_hit = hit@def
on_death = death@def
post_combat_time = 0,0
[walker@military_4_shop_1]:walker@fight
path_walk = military_4_1_walk
path_look = military_4_1_look
out_restr = pri_a28_sr_shop_1
combat_ignore_cond = {=actor_enemy} false, {=check_enemy_smart(pri_a28_shop)} true, false
on_info2 = {+pri_a28_colonel_go_left} camper@military_4_shop_1_go %=disable_memory_object%
[camper@military_4_shop_1_go]:walker@ignore
path_walk = military_4_1_walk
path_look = military_4_1_look
out_restr = pri_a28_sr_shop_2_small
on_info = {=npc_in_zone(pri_a28_sr_shop_2_small)} walker@military_4_shop_1_fight
on_info2 = {+pri_a28_shop_2_leave} camper@military_4_shop_2
[walker@military_4_shop_1_fight]:walker@fight
path_walk = military_4_1_walk
path_look = military_4_1_look
out_restr = pri_a28_sr_shop_2_small
on_game_timer = 200 | {-pri_a28_shop_2_leave} %+pri_a28_shop_2_leave%
on_info = {+pri_a28_shop_2_leave} camper@military_4_shop_2 %=disable_memory_object%
[camper@military_4_shop_2]:walker@ignore
path_walk = military_4_2_walk
path_look = military_4_2_look
out_restr = pri_a28_sr_shop_3_small
in_restr = pri_a28_sr_shop_in
on_signal = path_end | camper@military_4_shop_3
[camper@military_4_shop_3]:walker@fight
path_walk = military_4_3_walk
path_look = military_4_3_look
out_restr = pri_a28_sr_arch_1
in_restr = pri_a28_sr_shop_in
[logic@pri_a28_military_5_shop]
active = camper@military_5_shop_1
suitable = {-pri_a28_shop_done =target_squad_name(pri_a16_military_squad) !check_npc_name(strelok) !check_npc_name(base_medic) !check_npc_name(kovalski)} true
prior = 90
on_hit = hit@def
on_death = death@def
post_combat_time = 0,0
[camper@military_5_shop_1]:walker@ignore
path_walk = military_5_1_walk
path_look = military_5_1_look
def_state_standing = hide_na
out_restr = pri_a28_sr_shop_1_small
on_info = {+pri_a28_army_zombied_in_building} walker@military_5_shop_1_fight
[walker@military_5_shop_1_fight]:walker@fight
path_walk = military_5_1_walk
path_look = military_5_1_look
out_restr = pri_a28_sr_shop_1_small
on_game_timer = 250 | {-pri_a28_shop_1_leave} %+pri_a28_shop_1_leave%
on_info = {+pri_a28_shop_1_leave} camper@military_5_shop_2_go %=disable_memory_object%
[camper@military_5_shop_2_go]:walker@ignore
path_walk = military_5_1_1_walk
path_look = military_5_2_look
out_restr = pri_a28_sr_shop_2_small
in_restr = pri_a28_sr_shop_in
on_signal = path_end | camper@military_5_shop_2
[camper@military_5_shop_2]:walker@ignore
path_walk = military_5_2_walk
path_look = military_5_2_look
out_restr = pri_a28_sr_shop_2
in_restr = pri_a28_sr_shop_in
on_info = {=npc_in_zone(pri_a28_sr_shop_2)} walker@military_5_shop_2_fight
[walker@military_5_shop_2_fight]:walker@fight
path_walk = military_5_2_walk
path_look = military_5_2_look
def_state_standing = hide_na
out_restr = pri_a28_sr_shop_3_small
in_restr = pri_a28_sr_shop_in
on_game_timer = 200 | {-pri_a28_shop_3_leave} %+pri_a28_shop_3_leave%

View file

@ -0,0 +1,224 @@
[logic@pri_a28_zombied_1_shop]
suitable = {=target_squad_name(pri_a28_shop_zombied) +pri_b305_fifth_cam_end} true
prior = 200
active = walker@pri_a28_zombied_1_shop_walk
[logic@pri_a28_zombied_2_shop]
suitable = {=target_squad_name(pri_a28_shop_zombied) +pri_b305_fifth_cam_end} true
prior = 200
active = walker@pri_a28_zombied_2_shop_walk
[logic@pri_a28_zombied_3_shop]
suitable = {=target_squad_name(pri_a28_shop_zombied) +pri_b305_fifth_cam_end} true
prior = 200
active = walker@pri_a28_zombied_3_shop_walk
[logic@pri_a28_zombied_4_shop]
suitable = {=target_squad_name(pri_a28_shop_zombied) +pri_b305_fifth_cam_end} true
prior = 200
active = walker@pri_a28_zombied_4_shop_walk
[logic@pri_a28_zombied_5_shop]
suitable = {=target_squad_name(pri_a28_shop_zombied) +pri_b305_fifth_cam_end} true
prior = 200
active = walker@pri_a28_zombied_5_shop_walk
[walker@pri_a28_zombied_1_shop_walk]
path_walk = zombied_1_walk
on_info = walker@pri_a28_zombied_1_shop_wait %=teleport_npc(pri_a28_shop_zombied_1_walk)%
[walker@pri_a28_zombied_2_shop_walk]
path_walk = zombied_2_walk
on_info = walker@pri_a28_zombied_2_shop_wait %=teleport_npc(pri_a28_shop_zombied_2_walk)%
[walker@pri_a28_zombied_3_shop_walk]
path_walk = zombied_3_walk
on_info = walker@pri_a28_zombied_3_shop_wait %=teleport_npc(pri_a28_shop_zombied_3_walk)%
[walker@pri_a28_zombied_4_shop_walk]
path_walk = zombied_4_walk
on_info = walker@pri_a28_zombied_4_shop_wait %=teleport_npc(pri_a28_shop_zombied_4_walk)%
[walker@pri_a28_zombied_5_shop_walk]
path_walk = zombied_5_walk
on_info = walker@pri_a28_zombied_5_shop_wait %=teleport_npc(pri_a28_shop_zombied_5_walk)%
[walker@pri_a28_zombied_1_shop_wait]
path_walk = zombied_1_walk
combat_ignore_cond = true
on_info = {+pri_a28_army_zombied_in_building} walker@pri_a28_zombied_1_shop_attack
on_info2 = {=dist_to_actor_le(13)} walker@pri_a28_zombied_1_shop_attack
[walker@pri_a28_zombied_2_shop_wait]
path_walk = zombied_2_walk
combat_ignore_cond = true
on_info = {+pri_a28_army_zombied_in_building} walker@pri_a28_zombied_1_shop_attack
on_info2 = {=dist_to_actor_le(13)} walker@pri_a28_zombied_1_shop_attack
[walker@pri_a28_zombied_3_shop_wait]
path_walk = zombied_3_walk
combat_ignore_cond = true
on_info = {+pri_a28_army_zombied_in_building} walker@pri_a28_zombied_2_shop_attack
on_info2 = {=dist_to_actor_le(13)} walker@pri_a28_zombied_2_shop_attack
[walker@pri_a28_zombied_4_shop_wait]
path_walk = zombied_4_walk
combat_ignore_cond = true
on_info = {+pri_a28_army_zombied_in_building} walker@pri_a28_zombied_2_shop_attack
on_info2 = {=dist_to_actor_le(13)} walker@pri_a28_zombied_2_shop_attack
[walker@pri_a28_zombied_5_shop_wait]
path_walk = zombied_5_walk
combat_ignore_cond = true
on_info = {+pri_a28_army_zombied_in_building} walker@pri_a28_zombied_3_shop_attack
on_info2 = {=dist_to_actor_le(13)} walker@pri_a28_zombied_3_shop_attack
[walker@pri_a28_zombied_1_shop_attack]
path_walk = zombied_1_attack
on_signal = path_end | %+pri_a28_shop_zombied_done%
[walker@pri_a28_zombied_2_shop_attack]
path_walk = zombied_2_attack
on_signal = path_end | %+pri_a28_shop_zombied_done%
[walker@pri_a28_zombied_3_shop_attack]
path_walk = zombied_3_attack
on_signal = path_end | %+pri_a28_shop_zombied_done%
[logic@pri_a28_zombied_6_shop]
suitable = {=target_squad_name(pri_a28_shop_zombied_2) +pri_b305_fifth_cam_end} true
prior = 200
active = walker@pri_a28_zombied_6_shop_walk
[logic@pri_a28_zombied_7_shop]
suitable = {=target_squad_name(pri_a28_shop_zombied_2) +pri_b305_fifth_cam_end} true
prior = 200
active = walker@pri_a28_zombied_7_shop_walk
[logic@pri_a28_zombied_8_shop]
suitable = {=target_squad_name(pri_a28_shop_zombied_2) +pri_b305_fifth_cam_end} true
prior = 200
active = walker@pri_a28_zombied_8_shop_walk
[logic@pri_a28_zombied_9_shop]
suitable = {=target_squad_name(pri_a28_shop_zombied_2) +pri_b305_fifth_cam_end} true
prior = 200
active = walker@pri_a28_zombied_9_shop_walk
[walker@pri_a28_zombied_6_shop_walk]
path_walk = zombied_6_walk
on_info = walker@pri_a28_zombied_6_shop_wait %=teleport_npc(pri_a28_shop_zombied_6_walk)%
[walker@pri_a28_zombied_7_shop_walk]
path_walk = zombied_7_walk
on_info = walker@pri_a28_zombied_7_shop_wait %=teleport_npc(pri_a28_shop_zombied_7_walk)%
[walker@pri_a28_zombied_8_shop_walk]
path_walk = zombied_8_walk
on_info = walker@pri_a28_zombied_8_shop_wait %=teleport_npc(pri_a28_shop_zombied_8_walk)%
[walker@pri_a28_zombied_9_shop_walk]
path_walk = zombied_9_walk
on_info = walker@pri_a28_zombied_9_shop_wait %=teleport_npc(pri_a28_shop_zombied_9_walk)%
[walker@pri_a28_zombied_6_shop_wait]
path_walk = zombied_6_walk
combat_ignore_cond = true
on_info = {+pri_a28_shop_1_leave} walker@pri_a28_zombied_4_shop_attack
on_info2 = {=dist_to_actor_le(13)} walker@pri_a28_zombied_4_shop_attack
[walker@pri_a28_zombied_7_shop_wait]
path_walk = zombied_7_walk
combat_ignore_cond = true
on_info = {+pri_a28_shop_1_leave} walker@pri_a28_zombied_5_shop_attack
on_info2 = {=dist_to_actor_le(13)} walker@pri_a28_zombied_5_shop_attack
[walker@pri_a28_zombied_8_shop_wait]
path_walk = zombied_8_walk
combat_ignore_cond = true
on_info = {+pri_a28_shop_1_leave} walker@pri_a28_zombied_4_shop_attack
on_info2 = {=dist_to_actor_le(13)} walker@pri_a28_zombied_4_shop_attack
[walker@pri_a28_zombied_9_shop_wait]
path_walk = zombied_9_walk
combat_ignore_cond = true
on_info = {+pri_a28_shop_1_leave} walker@pri_a28_zombied_5_shop_attack
on_info2 = {=dist_to_actor_le(13)} walker@pri_a28_zombied_5_shop_attack
[walker@pri_a28_zombied_4_shop_attack]
path_walk = zombied_4_attack
on_signal = path_end | %+pri_a28_shop_zombied_done%
[walker@pri_a28_zombied_5_shop_attack]
path_walk = zombied_5_attack
on_signal = path_end | %+pri_a28_shop_zombied_done%
[logic@pri_a28_zombied_10_shop]
suitable = {=target_squad_name(pri_a28_shop_zombied_3) +pri_b305_fifth_cam_end} true
prior = 200
active = walker@pri_a28_zombied_10_shop_walk
[logic@pri_a28_zombied_11_shop]
suitable = {=target_squad_name(pri_a28_shop_zombied_3) +pri_b305_fifth_cam_end} true
prior = 200
active = walker@pri_a28_zombied_11_shop_walk
[logic@pri_a28_zombied_12_shop]
suitable = {=target_squad_name(pri_a28_shop_zombied_3) +pri_b305_fifth_cam_end} true
prior = 200
active = walker@pri_a28_zombied_12_shop_walk
[walker@pri_a28_zombied_10_shop_walk]
path_walk = zombied_10_walk
on_info = walker@pri_a28_zombied_10_shop_wait %=teleport_npc(pri_a28_shop_zombied_10_walk)%
[walker@pri_a28_zombied_11_shop_walk]
path_walk = zombied_11_walk
on_info = walker@pri_a28_zombied_11_shop_wait %=teleport_npc(pri_a28_shop_zombied_11_walk)%
[walker@pri_a28_zombied_12_shop_walk]
path_walk = zombied_12_walk
on_info = walker@pri_a28_zombied_12_shop_wait %=teleport_npc(pri_a28_shop_zombied_12_walk)%
[walker@pri_a28_zombied_10_shop_wait]
path_walk = zombied_10_walk
combat_ignore_cond = true
on_info = {+pri_a28_shop_1_leave} walker@pri_a28_zombied_1_shop_attack
on_info2 = {=dist_to_actor_le(13)} walker@pri_a28_zombied_1_shop_attack
[walker@pri_a28_zombied_11_shop_wait]
path_walk = zombied_11_walk
combat_ignore_cond = true
on_info = {+pri_a28_shop_1_leave} walker@pri_a28_zombied_2_shop_attack
on_info2 = {=dist_to_actor_le(13)} walker@pri_a28_zombied_2_shop_attack
[walker@pri_a28_zombied_12_shop_wait]
path_walk = zombied_12_walk
combat_ignore_cond = true
on_info = {+pri_a28_shop_1_leave} walker@pri_a28_zombied_3_shop_attack
on_info2 = {=dist_to_actor_le(13)} walker@pri_a28_zombied_3_shop_attack

View file

@ -0,0 +1,149 @@
[logic]
active = sr_idle@give_task
[sr_idle@give_task]
on_info = {+pri_b305_fifth_cam_end} sr_idle@start_surge %=give_task(pri_a28_evacuation) =set_counter(pri_a28_friendly_hit:0) =set_counter(pri_a28_heli_mono_cnt:12)%
on_info2 = {+pri_a28_evacuation_start -pri_b305_fifth_cam_end} sr_idle@clear_smart %+pri_b305_fifth_cam_end +pri_a25_rfi_source_eliminated +pri_a16_wait_for_stalkers =set_counter(pri_a28_friendly_hit:0) =set_counter(pri_a28_heli_mono_cnt:12)%
[sr_idle@start_surge]
on_info = {!surge_started} sr_idle@stop_surge %=set_surge_mess_and_task(empty:empty) =start_surge%, sr_idle@stop_surge %=set_surge_mess_and_task(empty:empty)%
[sr_idle@stop_surge]
on_info = {=surge_complete} sr_idle@base_zombied_add %+pri_a28_surge_end =clear_smart_terrain(pri_a15)%
on_info2 = {+pri_a28_update_task_cover_strelok} %=stop_surge%
;skip of previous scenes
[sr_idle@clear_smart]
on_info = sr_idle@add_squad %=clear_smart_terrain(pri_a16)%
[sr_idle@add_squad]
on_info = sr_idle@add_strong_parts %=create_squad(pri_a16_military_squad_strong:pri_a16) +pri_a28_strelok_alive +pri_a28_tarasov_alive +pri_a28_valentyr_alive +pri_a28_podorojniy_alive +pri_a28_sokolov_alive%
[sr_idle@add_strong_parts]
on_info = {+pri_a28_tarasov_alive} %-pri_a28_tarasov_alive =create_squad_member(pri_a17_military_captain_tarasov_strong:pri_a16_military_squad)%
on_info2 = {+pri_a28_valentyr_alive} %-pri_a28_valentyr_alive =create_squad_member(pri_a17_military_prapor_valentyr_strong:pri_a16_military_squad)%
on_info3 = {+pri_a28_podorojniy_alive} %-pri_a28_podorojniy_alive =create_squad_member(pri_a17_military_lieutenant_podorojniy_strong:pri_a16_military_squad)%
on_info4 = {+pri_a28_sokolov_alive} %-pri_a28_sokolov_alive =create_squad_member(pri_a15_sokolov_sci_head_strong:pri_a16_military_squad)%
on_info5 = {+pri_a28_strelok_alive} %-pri_a28_strelok_alive =create_squad_member(pri_b305_strelok_strong:pri_a16_military_squad)%
on_info6 = {=is_alive(pri_b305_strelok)} sr_idle@give_task
;main theme again
[sr_idle@base_zombied_add]
on_info = sr_idle@school_snork_spawn_start %=create_squad(pri_a28_base_zombied:pri_a28_base) =create_squad(pri_a28_base_zombied_2:pri_a28_base:pri_a16) =create_squad(pri_a28_shop_zombied:pri_a28_shop) =create_squad(pri_a28_shop_zombied_2:pri_a28_shop) =create_squad(pri_a28_shop_zombied_3:pri_a28_shop) =create_squad(pri_a28_arch_zombied:pri_a28_arch)%
[sr_idle@school_snork_spawn_start]
on_info = sr_idle@add_snorks %=clear_smart_terrain(pri_b301)%
[sr_idle@add_snorks]
on_info = {!squad_npc_count_ge(pri_a16_military_squad:4)} sr_idle@wait_for_base_exit %=create_squad(pri_a28_school_snorks_1:pri_a28_school) =create_squad(pri_a28_school_snorks_2:pri_a28_school)%
on_info2 = {=squad_npc_count_ge(pri_a16_military_squad:4)} sr_idle@wait_for_base_exit %=create_squad(pri_a28_school_snorks_1_strong:pri_a28_school) =create_squad(pri_a28_school_snorks_2_strong:pri_a28_school)%
[sr_idle@wait_for_base_exit]
on_info = {+pri_a28_update_task_cover_strelok -pri_a28_evacutaion_start} %+pri_a28_evacutaion_start =scenario_autosave(st_save_pri_a28_evacutaion_start)%
on_info2 = {+pri_a28_update_task_cover_strelok +pri_a28_evacutaion_start} sr_idle@add_mono %=clear_smart_terrain(pri_sim_2) =create_squad(pri_a28_evac_squad:pri_a28_heli)%
[sr_idle@add_mono]
on_info = sr_idle@check_base_out %=create_squad(pri_a28_heli_mono_default:pri_a28_heli) =create_squad(pri_a28_heli_mono_snipers:pri_a28_heli)%
[sr_idle@check_base_out]
on_info = {=squad_in_zone(pri_a16_military_squad:pri_a28_sr_shop_1)} %+pri_a28_base_done%
on_info2 = {-pri_a28_colonel_about_heli !is_alive(pri_a17_military_colonel_kovalski)} %+pri_a28_colonel_about_heli%
on_info3 = {+pri_a28_army_zombied_first -pri_a28_colonel_zombied_first !is_alive(pri_a17_military_colonel_kovalski)} sr_idle@check_base_out_koval_dead
on_info4 = {+pri_a28_colonel_zombied_first !is_alive(pri_a17_military_colonel_kovalski)} sr_idle@check_base_out_koval_dead_go
on_info5 = {+pri_a28_colonel_about_heli -pri_a28_army_zombied_first !is_alive(pri_a22_army_signaller)} %+pri_a28_army_zombied_first%
on_info6 = {+pri_a28_base_done} sr_idle@check_shop_start
[sr_idle@check_base_out_koval_dead]
on_game_timer = 30 | {-pri_a28_colonel_zombied_first} sr_idle@check_base_out_koval_dead_go %+pri_a28_colonel_zombied_first%
on_info = {=squad_in_zone(pri_a16_military_squad:pri_a28_sr_shop_1)} sr_idle@check_shop_start %+pri_a28_base_done%
[sr_idle@check_base_out_koval_dead_go]
on_game_timer = 80 | {-pri_a28_base_leave} %+pri_a28_base_leave%
on_game_timer2 = 150 | {-pri_a28_base_done} %+pri_a28_base_done%
on_info = {=squad_in_zone(pri_a16_military_squad:pri_a28_sr_shop_1)} %+pri_a28_base_done%
on_info2 = {+pri_a28_base_done} sr_idle@check_shop_start
[sr_idle@check_shop_start]
on_info = {+pri_a28_colonel_go_left} sr_idle@check_shop_out
on_info2 = {-pri_a28_army_zombied_in_building !is_alive(pri_a25_base_medic)} %+pri_a28_army_zombied_in_building%
on_info3 = {+pri_a28_army_zombied_in_building -pri_a28_colonel_go_left !is_alive(pri_a17_military_colonel_kovalski)} sr_idle@check_shop_out
on_info4 = {+pri_a28_shop_done} sr_idle@check_arch_out
on_info5 = {-pri_a28_shop_1_leave !squad_exist(pri_a28_shop_zombied)} %+pri_a28_shop_1_leave%
on_info6 = {+pri_a28_shop_1_leave -pri_a28_shop_3_leave !squad_exist(pri_a28_shop_zombied_2) !squad_exist(pri_a28_shop_zombied_3)} %+pri_a28_shop_2_leave +pri_a28_shop_3_leave%
[sr_idle@check_shop_out]
on_game_timer = 40 | {-pri_a28_colonel_go_left} %+pri_a28_colonel_go_left%
on_info = {-pri_a28_shop_1_leave =squad_in_zone(pri_a16_military_squad:pri_a28_sr_shop_2_small)} %+pri_a28_shop_1_leave%
on_info2 = {-pri_a28_shop_2_leave =squad_in_zone(pri_a16_military_squad:pri_a28_sr_shop_3_small)} %+pri_a28_shop_2_leave%
on_info3 = {-pri_a28_shop_3_leave =squad_in_zone(pri_a16_military_squad:pri_a28_sr_arch_1)} %+pri_a28_shop_3_leave%
on_info4 = {+pri_a28_shop_3_leave -pri_a28_shop_done !is_alive(pri_a17_military_colonel_kovalski)} %+pri_a28_shop_done%
on_info5 = {+pri_a28_shop_done} sr_idle@check_arch_out
on_info6 = {-pri_a28_shop_1_leave !squad_exist(pri_a28_shop_zombied)} %+pri_a28_shop_1_leave%
on_info7 = {+pri_a28_shop_1_leave -pri_a28_shop_3_leave !squad_exist(pri_a28_shop_zombied_2) !squad_exist(pri_a28_shop_zombied_3)} %+pri_a28_shop_2_leave +pri_a28_shop_3_leave%
[sr_idle@check_arch_out]
on_info = {+pri_a28_arch_done} sr_idle@check_school_out
on_info2 = {-pri_a28_strelok_go_over_anomaly !is_alive(pri_b305_strelok)} %+pri_a28_strelok_go_over_anomaly%
on_info3 = {-pri_a28_colonel_ok_go_here !is_alive(pri_a17_military_colonel_kovalski)} %+pri_a28_colonel_ok_go_here%
on_info4 = {+pri_a28_evac_com_where_you -pri_a28_colonel_we_close !is_alive(pri_a17_military_colonel_kovalski)} %+pri_a28_colonel_we_close%
on_info5 = {+pri_a28_evac_com_cant_wait -pri_a28_arch_done !is_alive(pri_a17_military_colonel_kovalski)} %+pri_a28_arch_done%
on_info6 = {-pri_a28_arch_leave !squad_exist(pri_a28_arch_zombied)} %+pri_a28_arch_leave%
[sr_idle@check_school_out]
on_info = {+pri_a28_school_done} sr_idle@check_horror_out
on_info2 = {-pri_a28_school_1_leave =squad_in_zone(pri_a28_school_snorks_1:pri_a28_sr_school_2)} %+pri_a28_school_1_leave%
on_info3 = {-pri_a28_school_1_leave =squad_in_zone_all(pri_a16_military_squad:pri_a28_sr_school_1)} %+pri_a28_school_1_leave%
on_info4 = {-pri_a28_school_2_leave !squad_exist(pri_a28_school_snorks_1)} %+pri_a28_school_2_leave%
on_info5 = {-pri_a28_school_done !squad_exist(pri_a28_school_snorks_1) !squad_exist(pri_a28_school_snorks_2)} %+pri_a28_school_done%
on_info6 = {+pri_a28_school_1_leave -pri_a28_medic_about_snork !is_alive(pri_a25_base_medic)} %+pri_a28_medic_about_snork%
on_info7 = {+pri_a28_medic_about_snork -pri_a28_colonel_about_snork !is_alive(pri_a17_military_colonel_kovalski)} %+pri_a28_colonel_about_snork%
on_info8 = {+pri_a28_school_2_leave -pri_a28_colonel_fire_will !is_alive(pri_a17_military_colonel_kovalski)} %+pri_a28_colonel_fire_will%
[sr_idle@check_horror_out]
on_info = {+pri_a28_strelok_run} sr_idle@check_evac_out %-pri_a28_colonel_wait_actor +pri_a28_evac_come_close%
on_info2 = {-pri_a28_horror_start =squad_in_zone(pri_a16_military_squad:pri_a28_sr_horror) !is_alive(pri_a25_base_medic)} %+pri_a28_horror_start +pri_a28_medic_recovered%
on_info3 = {+pri_a28_horror_start -pri_a28_strelok_dont_stop !is_alive(pri_b305_strelok)} %+pri_a28_strelok_dont_stop%
on_info4 = {+pri_a28_strelok_dont_stop -pri_a28_army_its_here !is_alive(pri_a25_base_medic)} %+pri_a28_army_its_here +pri_a28_medic_recovered%
on_info5 = {+pri_a28_army_its_here -pri_a28_strelok_run !is_alive(pri_b305_strelok)} %+pri_a28_strelok_run%
[sr_idle@check_evac_out]
on_info = {+pri_a28_evac_done} sr_idle@evac_point
on_info2 = {-pri_a28_evac_leave =actor_in_zone(pri_a28_sr_big)} sr_idle@check_evac_out_go %+pri_a28_evac_leave%
on_info3 = {=squad_in_zone(pri_a16_military_squad:pri_a28_sr_big)} sr_idle@check_evac_out_go %+pri_a28_evac_leave%
on_info4 = {+pri_a28_evac_leave =actor_in_zone(pri_a28_sr_big)} sr_idle@check_evac_out_go
on_info5 = {-pri_a28_evac_leave !is_alive(pri_a17_military_colonel_kovalski) =squad_in_zone_all(pri_a16_military_squad:pri_a28_sr_evac_1)} sr_idle@check_evac_out_go %+pri_a28_evac_leave%
on_info6 = {-pri_a28_evac_come_close_done !is_alive(pri_a28_evac_com)} %+pri_a28_evac_come_close_done%
[sr_idle@check_evac_out_go]
on_info = {+pri_a28_evac_done} sr_idle@evac_point
on_info2 = {-pri_a28_evac_com_to_helicopter =actor_in_zone(pri_a28_sr_small)} %+pri_a28_evac_com_to_helicopter%
on_info3 = {-pri_a28_evac_com_to_helicopter =squad_in_zone(pri_a16_military_squad:pri_a28_sr_small)} %+pri_a28_evac_com_to_helicopter%
on_info4 = {-pri_a28_evac_come_close_done !is_alive(pri_a28_evac_com)} %+pri_a28_evac_come_close_done%
[sr_idle@evac_point]
on_info = {+pri_a28_evac_com_to_helicopter} sr_idle@nil
on_info2 = {-pri_a28_evac_com_to_helicopter =actor_in_zone(pri_a28_sr_small)} %+pri_a28_evac_com_to_helicopter%
on_info3 = {-pri_a28_evac_com_to_helicopter =squad_in_zone(pri_a16_military_squad:pri_a28_sr_small)} %+pri_a28_evac_com_to_helicopter%
[sr_idle@nil]

View file

@ -0,0 +1,114 @@
[logic]
active = sr_idle@start
[sr_idle@start]
on_info = {+pri_b305_fifth_cam_end =actor_in_zone(pri_a28_scene_end_zone) +pri_a28_strelok_can_leave} sr_idle@helis_reached_save
on_info2 = {+pri_b305_fifth_cam_end =actor_in_zone(pri_a28_scene_end_zone) +pri_a28_strelok_dead} sr_idle@helis_reached_save
on_info3 = {+pri_b305_fifth_cam_end +pri_a28_squad_dead} sr_idle@helis_want_to_leave
on_info4 = {+pri_a28_helis_leave !actor_in_zone(pri_a28_scene_end_zone)} sr_idle@cut_2_save
;çàòû÷êà
on_info5 = {+pri_a28_cutscene_start} sr_idle@cut_1_save %=clear_smart_terrain(pri_sim_2)%
[sr_idle@helis_want_to_leave]
on_game_timer = 30 | %=play_sound(pri_a28_evac_com_helicopter_run_time)%
on_signal = sound_end | sr_timer@got_one_minute
[sr_timer@got_one_minute]
type = dec
start_value = 60000
on_value = 0 | {+pri_a28_evacuation_end =actor_in_zone(pri_a28_scene_end_zone)} sr_idle@cut_1_save, %+pri_a28_helis_leave%
on_info = {-pri_a28_evacuation_end =actor_in_zone(pri_a28_scene_end_zone)} %+pri_a28_evacuation_end =scenario_autosave(st_save_pri_a28_evacuation_end)%
on_info2 = {+pri_a28_helis_leave !actor_in_zone(pri_a28_scene_end_zone)} sr_idle@cut_2_save
[sr_idle@helis_reached_save]
on_info = {-pri_a28_evacuation_end =actor_alive} %+pri_a28_evacuation_end =scenario_autosave(st_save_pri_a28_evacuation_end)%
on_info2 = {+pri_a28_evacuation_end +pri_a28_waves_end =actor_in_zone(pri_a28_scene_end_zone)} sr_idle@cut_1_save
on_info3 = {+pri_a28_helis_leave !actor_in_zone(pri_a28_scene_end_zone)} sr_idle@cut_2_save
[sr_idle@cut_1_save]
on_info = {-pri_a28_evacuation_heli =actor_alive} %+pri_a28_evacuation_heli =scenario_autosave(st_save_pri_a28_evacuation_heli)%
on_info2 = {+pri_a28_evacuation_heli} sr_idle@cut_1_start %=disable_ui =run_postprocess(black:3009:true) +pri_a28_scene_end =save_actor_position%
[sr_idle@cut_1_start]
on_game_timer = 18 | sr_idle@check_squad %=create_cutscene_actor_with_weapon(pri_a28_cutscene_actor:pri_a28_cutscene_actor_walk:0:0:3)%
[sr_idle@check_squad]
on_info = {=squad_exist(pri_a16_military_squad)} sr_idle@check_commander %+pri_a28_somebody_alive%, sr_idle@check_commander
[sr_idle@check_commander]
on_info = {=is_alive(pri_a28_evac_com)} sr_idle@add_commander %=remove_npc(pri_a28_evac_com)%, sr_idle@add_commander
[sr_idle@add_commander]
on_info = sr_idle@check_strelok %=spawn_object(pri_a28_cutscene_commander:pri_a28_cutscene_commander_walk)%
[sr_idle@check_strelok]
on_info = {=is_alive(pri_b305_strelok)} sr_idle@add_strelok %=remove_npc(pri_b305_strelok)%, sr_cutscene@cut_1 %+pri_a28_strelok_dead%
[sr_idle@add_strelok]
on_info = sr_cutscene@cut_1 %=spawn_object(pri_a28_cutscene_strelok:pri_a28_cutscene_strelok_walk)%
[sr_cutscene@cut_1]
point = pri_a28_actor_hide_walk
look = pri_a28_actor_hide_look
global_cameffect = true
enable_ui_on_end = false
outdoor = true
cam_effector = scenario_cam\pripyat\pri_a28_evac_cam_1
on_signal = cam_effector_stop | sr_idle@freeplay_dialog %=run_postprocess(black:3009:true) -pri_a28_cam_started%
on_signal2 = cameff_end | sr_idle@freeplay_dialog %+pri_a28_cut_1_end =run_postprocess(black:3009:true) -pri_a28_cam_started%
on_info = {-pri_a28_cam_started} %+pri_a28_cam_started =stop_postprocess(3009)%
on_info2 = {+pri_a28_cut_1_end} %=stop_sr_cutscene%
[sr_idle@freeplay_dialog]
on_game_timer = 10 | {-pri_a28_show_freeplay_dialog} %+pri_a28_show_freeplay_dialog =enable_ui =show_freeplay_dialog(st_freeplay_text_yes_no:true)%
on_info = {+pri_a28_actor_in_zone_stay} sr_idle@check_sokolov %+pri_a28_helis_leave =disable_ui%
on_info2 = {+pri_a28_actor_in_zone_leave} sr_idle@check_sokolov %+pri_a28_helis_leave =disable_ui%
[sr_idle@cut_2_save]
on_info = {-pri_a28_evacuation_heli =actor_alive} %+pri_a28_evacuation_heli =scenario_autosave(st_save_pri_a28_evacuation_heli)%
on_info2 = {+pri_a28_evacuation_heli} sr_idle@check_sokolov %=disable_ui =run_postprocess(black:3009:true) =save_actor_position%
[sr_idle@check_sokolov]
on_info = {-pri_a28_sokolov_left_alive =is_alive(pri_a15_sokolov_sci_head)} %+pri_a28_sokolov_left_alive%
on_info2 = {-pri_a28_army_leaved_alive -pri_a28_strelok_dead =squad_npc_count_ge(pri_a16_military_squad:5)} %+pri_a28_army_leaved_alive%
on_info3 = {-pri_a28_army_leaved_alive +pri_a28_strelok_dead =squad_npc_count_ge(pri_a16_military_squad:4)} %+pri_a28_army_leaved_alive%
on_info4 = sr_idle@cut_2_start
[sr_idle@cut_2_start]
on_info = {=squad_exist(pri_a16_military_squad)} %=remove_squad(pri_a16_military_squad)%
on_info2 = {=squad_exist(pri_a28_evac_squad)} %=remove_squad(pri_a28_evac_squad)%
on_game_timer = 18 | {+pri_a28_helis_added} sr_cutscene@cut_2 %=destroy_object(story:pri_a28_earth_helli_1) =destroy_object(story:pri_a28_earth_helli_2)%, sr_cutscene@cut_2
[sr_cutscene@cut_2]
point = pri_a28_actor_hide_walk
look = pri_a28_actor_hide_look
global_cameffect = true
enable_ui_on_end = false
outdoor = true
cam_effector = scenario_cam\pripyat\pri_a28_evac_cam_heli
on_signal = cam_effector_stop | sr_idle@hellis_fly_cutscene_end %=run_postprocess(black:3009:true)%
on_signal = cameff_end | sr_idle@hellis_fly_cutscene_end %=run_postprocess(black:3009:true)%
on_info = {-pri_a28_cam_started} %+pri_a28_cam_started =stop_postprocess(3009)%
on_game_timer = 200 | %=stop_sr_cutscene%
[sr_idle@hellis_fly_cutscene_end]
on_game_timer = 10 | {-pri_a28_actor_in_zone_stay -pri_a28_actor_in_zone_leave} sr_idle@wait_for_ok %=enable_ui =show_freeplay_dialog(st_freeplay_text_ok)%
on_info = {+pri_a28_actor_in_zone_stay} sr_idle@announce_continue %=restore_actor_position =stop_postprocess(3009) =enable_ui%
on_info2 = {+pri_a28_actor_in_zone_leave} sr_idle@nil %=restore_actor_position =enable_ui =run_tutorial(outro_game)%
[sr_idle@wait_for_ok]
on_info = {+pri_a28_actor_in_zone_stay} sr_idle@announce_continue %=restore_actor_position =stop_postprocess(3009)%
[sr_idle@announce_continue]
on_info = {!dist_to_story_obj_ge(pri_surge_hide_a16:100)} sr_idle@nil %=play_sound(pri_a28_continuation)%
on_game_timer = 50 | {-pri_a28_cutscenes_end} %+pri_a28_cutscenes_end%
[sr_idle@nil]

View file

@ -0,0 +1,30 @@
[logic]
active = sr_idle@wait_for_start
[sr_idle@wait_for_start]
on_info = {+pri_b305_fifth_cam_end} sr_idle@wait
[sr_idle@wait]
on_info = {=squad_in_zone(pri_a16_military_squad:pri_a28_sr_evac_radio_talk)} sr_idle@first_sound_play
on_info2 = {=actor_in_zone(pri_a28_sr_evac_radio_talk)} sr_idle@first_sound_play
[sr_idle@first_sound_play]
on_info = {=dist_to_actor_le(15)} %=play_sound(pri_a28_evac_com_where_you)%
on_signal = sound_end | sr_idle@wait_for_answer
on_game_timer = 300 | %=play_sound(pri_a28_evac_com_where_you)%
[sr_idle@wait_for_answer]
on_game_timer = 10 | {-pri_a28_evac_com_where_you} %+pri_a28_evac_com_where_you%
on_info = {+pri_a28_colonel_we_close} sr_idle@timer
[sr_idle@timer]
on_game_timer = 10 | sr_idle@say_cant_wait
[sr_idle@say_cant_wait]
on_info = %=play_sound(pri_a28_evac_com_cant_wait)%
on_signal = sound_end | sr_idle@timer_after
[sr_idle@timer_after]
on_game_timer = 10 | sr_idle@nil %+pri_a28_evac_com_cant_wait%
[sr_idle@nil]

View file

@ -0,0 +1,33 @@
[logic]
active = sr_idle@start
;active = sr_deimos
[sr_idle@start]
on_info = {+pri_b305_fifth_cam_end =actor_in_zone(pri_a28_sr_horror)} sr_deimos, {+pri_a28_scene_end} sr_idle@wait_2
[sr_deimos]
movement_speed = 42
growing_koef = 0.45; 0.25
lowering_koef = 0.22; 0.06
pp_effector = psi
pp_effector2 = deimos1
cam_effector = pripyat_horror
cam_effector_repeating_time = 5
noise_sound = pri_a28_deimos_noise_sound
heartbeet_sound = pri_a28_deimos_heartbeat
health_lost = 0.1
disable_bound = 0.2
switch_lower_bound = 0.4 ;0.3
switch_upper_bound = 0.75 ;0.6
on_info = {=actor_in_surge_cover} sr_idle@wait_2
on_info2 = {-pri_a28_actor_in_zone_stay +pri_a28_evac_com_to_helicopter} sr_idle@wait_2
on_info3 = {!actor_in_zone(pri_a28_sr_horror)} sr_idle@wait_2
on_game_timer = 100 | {=check_deimos_phase(disable_bound:decreasing) !actor_in_zone(pri_a28_sr_horror)} sr_idle@wait_1
[sr_idle@wait_1]
on_game_timer = 18000 | {~20} sr_deimos, sr_idle@wait_2
on_info = {-pri_a28_evac_com_to_helicopter =actor_in_zone(pri_a28_sr_horror)} sr_deimos
[sr_idle@wait_2]
on_game_timer = 9000 | {~25} sr_deimos, sr_idle@wait_1
on_info = {-pri_a28_evac_com_to_helicopter =actor_in_zone(pri_a28_sr_horror)} sr_deimos

View file

@ -0,0 +1,62 @@
[logic]
active = sr_idle@wait_for_start
[sr_idle@wait_for_start]
on_info = {+pri_b305_fifth_cam_end +pri_a28_strelok_can_leave} sr_idle@wait_for_mono_die %+pri_a28_defend_start%
on_info2 = {+pri_b305_fifth_cam_end =actor_in_zone(pri_a28_scene_end_zone)} sr_idle@wait_for_mono_die %+pri_a28_defend_start%
on_info3 = {+pri_b305_fifth_cam_end +pri_a28_strelok_dead =actor_in_zone(pri_a28_scene_end_zone)} sr_idle@wait_for_mono_die %+pri_a28_defend_start%
on_info4 = {+pri_a28_helis_leave =actor_in_zone(pri_a28_scene_end_zone)} sr_idle@add_final_wave
on_info5 = {+pri_a28_cutscenes_end} sr_idle@nil
;on_info6 = {+pri_a28_squad_dead} sr_idle@waves_done
[sr_idle@wait_for_mono_die]
on_info = {!counter_greater(pri_a28_heli_mono_cnt:4)} sr_idle@wait_for_spawn
on_info2 = {+pri_a28_helis_leave =actor_in_zone(pri_a28_scene_end_zone)} sr_idle@add_final_wave %-pri_a28_defender_needed%
on_info3 = {+pri_a28_cutscenes_end} sr_idle@nil
on_info4 = {+pri_a28_squad_dead} sr_idle@waves_done
[sr_idle@wait_for_spawn]
on_info = {+pri_a28_cutscenes_end} sr_idle@nil
on_info2 = {=actor_in_zone(pri_a28_scene_end_zone)} sr_idle@add_wave %-pri_a28_defender_needed%
on_info3 = {+pri_a28_squad_dead} sr_idle@waves_done
on_info4 = {+pri_a28_wave_1_spawned +pri_a28_wave_2_spawned +pri_a28_wave_3_spawned} sr_idle@waves_done
on_info5 = {-pri_a28_wave_3_spawned =actor_in_zone(pri_a28_sr_mono_add_1)} sr_idle@spawn_wave_3 %+pri_a28_defender_needed%
on_info6 = {-pri_a28_wave_3_spawned ~50 =actor_in_zone(pri_a28_sr_mono_add_2)} sr_idle@spawn_wave_3 %+pri_a28_defender_needed%
on_info7 = {-pri_a28_wave_1_spawned ~50 =actor_in_zone(pri_a28_sr_mono_add_2)} sr_idle@spawn_wave_1 %+pri_a28_defender_needed%
on_info8 = {-pri_a28_wave_1_spawned =actor_in_zone(pri_a28_sr_mono_add_3)} sr_idle@spawn_wave_1 %+pri_a28_defender_needed%
on_info9 = {!actor_in_zone(pri_a28_scene_end_zone)} sr_idle@get_zone_to_spawn %+pri_a28_defender_needed%
[sr_idle@get_zone_to_spawn]
on_info = {+pri_a28_wave_1_spawned +pri_a28_wave_2_spawned +pri_a28_wave_3_spawned} sr_idle@waves_done
on_info2 = sr_idle@wait_for_mono_die %=pri_a28_check_zones%
[sr_idle@spawn_wave_1]
on_info = sr_idle@wait_for_mono_die %+pri_a28_wave_1_spawned =create_squad(pri_a28_heli_mono_add_1:pri_a28_heli) =inc_counter(pri_a28_heli_mono_cnt:4)%
[sr_idle@spawn_wave_2]
on_info = sr_idle@wait_for_mono_die %+pri_a28_wave_2_spawned =create_squad(pri_a28_heli_mono_add_2:pri_a28_heli) =inc_counter(pri_a28_heli_mono_cnt:4)%
[sr_idle@spawn_wave_3]
on_info = sr_idle@wait_for_mono_die %+pri_a28_wave_3_spawned =create_squad(pri_a28_heli_mono_add_3:pri_a28_heli) =inc_counter(pri_a28_heli_mono_cnt:4)%
[sr_idle@add_wave]
on_info = {~33 -pri_a28_wave_1_spawned} sr_idle@spawn_wave_1, {~66 -pri_a28_wave_2_spawned} sr_idle@spawn_wave_2, {~100 -pri_a28_wave_3_spawned} sr_idle@spawn_wave_3
on_info2 = {+pri_a28_wave_1_spawned +pri_a28_wave_2_spawned +pri_a28_wave_3_spawned} sr_idle@waves_done
on_info3 = {+pri_a28_helis_leave} sr_idle@add_final_wave
on_info4 = {+pri_a28_squad_dead} sr_idle@waves_done
[sr_idle@waves_done]
on_info = {=actor_in_zone(pri_a28_scene_end_zone)} sr_idle@wait_a_little
on_info2 = {-pri_a28_helis_defended} %+pri_a28_helis_defended%
on_game_timer = 300 | sr_idle@add_final_wave %+pri_a28_helis_leave%
[sr_idle@wait_a_little]
on_game_timer = 30 | sr_idle@add_final_wave
on_info = {-pri_a28_final_wave_added} %+pri_a28_final_wave_added =create_squad(pri_a28_heli_mono_add_2_final:pri_a28_heli)%
[sr_idle@add_final_wave]
on_info = {-pri_a28_final_wave_added !actor_in_zone(pri_a28_sr_mono_add_2)} sr_idle@nil %+pri_a28_waves_end =create_squad(pri_a28_heli_mono_add_2_final:pri_a28_heli)%
on_info2 = {-pri_a28_final_wave_added =actor_in_zone(pri_a28_sr_mono_add_2)} sr_idle@nil %+pri_a28_waves_end%
on_info3 = {+pri_a28_final_wave_added} sr_idle@nil %+pri_a28_waves_end%
[sr_idle@nil]

View file

@ -0,0 +1,26 @@
[logic]
active = sr_idle@wait
[sr_idle@wait]
on_info = {+pri_a28_update_task_cover_strelok} sr_idle@squad_neutral
[sr_idle@squad_neutral]
on_info = {!squad_exist(pri_a16_military_squad)} sr_idle@timeout %+pri_a28_squad_dead +pri_a28_strelok_dead +pri_a28_koval_dead%
on_info2 = {+pri_a28_actor_enemy} sr_idle@timeout %=set_squad_enemy_to_actor(pri_a16_military_squad) +pri_a28_strelok_dead +pri_a28_koval_dead%
on_info3 = {=squad_exist(pri_a16_military_squad) =is_squad_enemy_to_actor(pri_a16_military_squad) !counter_greater(pri_a28_friendly_hit:7)} %=set_squad_friend_to_actor(pri_a16_military_squad)%
on_info4 = {=squad_exist(pri_a28_evac_squad) =is_squad_enemy_to_actor(pri_a28_evac_squad)} %=set_squad_friend_to_actor(pri_a28_evac_squad)%
on_info5 = {-pri_a28_strelok_dead !is_alive(pri_b305_strelok)} %+pri_a28_strelok_dead%
on_info6 = {-pri_a28_koval_dead !is_alive(pri_a17_military_colonel_kovalski)} %+pri_a28_koval_dead%
on_info7 = {=squad_exist(pri_a16_military_squad) =pri_a28_actor_is_far} %=kill_squad(pri_a16_military_squad)%
on_info8 = {+pri_a28_actor_in_zone_stay} sr_idle@nil, {+pri_a28_actor_in_zone_leave} sr_idle@nil, {+pri_a28_evacuation_heli} sr_idle@nil
on_game_timer = 300 | {=squad_exist(pri_a16_military_squad)} sr_idle@heal_a_little_bit
[sr_idle@heal_a_little_bit]
on_info = {=squad_exist(pri_a16_military_squad)} %=set_squad_friend_to_actor(pri_a16_military_squad)%
on_info2 = {=squad_exist(pri_a28_evac_squad)} %=set_squad_friend_to_actor(pri_a28_evac_squad)%
on_info3 = sr_idle@squad_neutral %=heal_squad(pri_a16_military_squad)%
[sr_idle@timeout]
on_game_timer = 150 | sr_idle@nil %+pri_a28_actor_enemy_to_squad +pri_a28_squad_dead%
[sr_idle@nil]

View file

@ -0,0 +1,20 @@
[smart_terrain]
sim_avail = false
arrive_dist = 100000
[exclusive]
pri_a28_kovalski_arch = evac\pri_a28_arch.ltx
pri_a28_strelok_arch = evac\pri_a28_arch.ltx
pri_a28_military_1_arch = evac\pri_a28_arch.ltx
pri_a28_military_2_arch = evac\pri_a28_arch.ltx
pri_a28_military_3_arch = evac\pri_a28_arch.ltx
pri_a28_military_4_arch = evac\pri_a28_arch.ltx
pri_a28_military_5_arch = evac\pri_a28_arch.ltx
pri_a28_military_6_arch = evac\pri_a28_arch.ltx
pri_a28_zombied_1_arch = evac\pri_a28_arch_zombied.ltx
pri_a28_zombied_2_arch = evac\pri_a28_arch_zombied.ltx
pri_a28_zombied_3_arch = evac\pri_a28_arch_zombied.ltx
pri_a28_zombied_4_arch = evac\pri_a28_arch_zombied.ltx
pri_a28_zombied_5_arch = evac\pri_a28_arch_zombied.ltx
pri_a28_zombied_6_arch = evac\pri_a28_arch_zombied.ltx

View file

@ -0,0 +1,27 @@
[smart_terrain]
sim_avail = false
arrive_dist = 100000
[exclusive]
pri_a28_kovalski_base = evac\pri_a28_base.ltx
pri_a28_kirillov_base = evac\pri_a28_base.ltx
pri_a28_strelok_base = evac\pri_a28_base.ltx
pri_a28_military_1_base = evac\pri_a28_base.ltx
pri_a28_military_2_base = evac\pri_a28_base.ltx
pri_a28_military_3_base = evac\pri_a28_base.ltx
pri_a28_military_4_base = evac\pri_a28_base.ltx
pri_a28_military_5_base = evac\pri_a28_base.ltx
pri_a28_zombied_1_base = evac\pri_a28_base_zombied.ltx
pri_a28_zombied_2_base = evac\pri_a28_base_zombied.ltx
pri_a28_zombied_3_base = evac\pri_a28_base_zombied.ltx
pri_a28_zombied_4_base = evac\pri_a28_base_zombied.ltx
pri_a28_zombied_5_base = evac\pri_a28_base_zombied.ltx
pri_a28_zombied_6_base = evac\pri_a28_base_zombied.ltx
pri_a28_zombied_7_base = evac\pri_a28_base_zombied.ltx
pri_a28_zombied_8_base = evac\pri_a28_base_zombied.ltx
pri_a28_zombied_9_base = evac\pri_a28_base_zombied.ltx
pri_a28_zombied_10_base = evac\pri_a28_base_zombied.ltx
pri_a28_zombied_11_base = evac\pri_a28_base_zombied.ltx
pri_a28_zombied_12_base = evac\pri_a28_base_zombied.ltx

View file

@ -0,0 +1,13 @@
[smart_terrain]
sim_avail = false
arrive_dist = 100000
[exclusive]
pri_a28_kovalski_evac = evac\pri_a28_evac.ltx
pri_a28_medic_evac = evac\pri_a28_evac.ltx
pri_a28_strelok_evac = evac\pri_a28_evac.ltx
pri_a28_military_1_evac = evac\pri_a28_evac.ltx
pri_a28_military_2_evac = evac\pri_a28_evac.ltx
pri_a28_military_3_evac = evac\pri_a28_evac.ltx
pri_a28_military_4_evac = evac\pri_a28_evac.ltx
pri_a28_military_5_evac = evac\pri_a28_evac.ltx

View file

@ -0,0 +1,63 @@
[smart_terrain]
sim_avail = false
arrive_dist = 100000
def_restr = pri_a28_scene_end_zone
[exclusive]
pri_a28_kovalski_heli = evac\pri_a28_heli.ltx
pri_a28_strelok_heli = evac\pri_a28_heli.ltx
pri_a28_military_1_heli = evac\pri_a28_heli.ltx
pri_a28_military_2_heli = evac\pri_a28_heli.ltx
pri_a28_military_3_heli = evac\pri_a28_heli.ltx
pri_a28_military_4_heli = evac\pri_a28_heli.ltx
pri_a28_military_5_heli = evac\pri_a28_heli.ltx
pri_a28_military_6_heli = evac\pri_a28_heli.ltx
pri_a28_evac_military_1 = evac\pri_a28_evac_squad.ltx
pri_a28_evac_military_2 = evac\pri_a28_evac_squad.ltx
pri_a28_evac_military_3 = evac\pri_a28_evac_squad.ltx
pri_a28_evac_military_4 = evac\pri_a28_evac_squad.ltx
pri_a28_mono_1_heli = evac\pri_a28_heli_mono.ltx
pri_a28_mono_2_heli = evac\pri_a28_heli_mono.ltx
pri_a28_mono_3_heli = evac\pri_a28_heli_mono.ltx
pri_a28_mono_4_heli = evac\pri_a28_heli_mono.ltx
pri_a28_mono_5_heli = evac\pri_a28_heli_mono.ltx
pri_a28_mono_6_heli = evac\pri_a28_heli_mono.ltx
pri_a28_mono_7_heli = evac\pri_a28_heli_mono.ltx
pri_a28_mono_8_heli = evac\pri_a28_heli_mono.ltx
pri_a28_mono_9_heli = evac\pri_a28_heli_mono.ltx
pri_a28_mono_10_heli = evac\pri_a28_heli_mono.ltx
pri_a28_mono_11_heli = evac\pri_a28_heli_mono.ltx
pri_a28_mono_12_heli = evac\pri_a28_heli_mono.ltx
pri_a28_mono_sniper_1_heli = evac\pri_a28_heli_mono.ltx
pri_a28_mono_sniper_2_heli = evac\pri_a28_heli_mono.ltx
pri_a28_mono_sniper_3_heli = evac\pri_a28_heli_mono.ltx
pri_a28_mono_sniper_4_heli = evac\pri_a28_heli_mono.ltx
pri_a28_mono_add_1_1_heli = evac\pri_a28_heli_mono.ltx
pri_a28_mono_add_1_2_heli = evac\pri_a28_heli_mono.ltx
pri_a28_mono_add_1_3_heli = evac\pri_a28_heli_mono.ltx
pri_a28_mono_add_1_4_heli = evac\pri_a28_heli_mono.ltx
pri_a28_mono_add_1_5_heli = evac\pri_a28_heli_mono.ltx
pri_a28_mono_add_1_6_heli = evac\pri_a28_heli_mono.ltx
pri_a28_mono_add_2_1_heli = evac\pri_a28_heli_mono.ltx
pri_a28_mono_add_2_2_heli = evac\pri_a28_heli_mono.ltx
pri_a28_mono_add_2_3_heli = evac\pri_a28_heli_mono.ltx
pri_a28_mono_add_2_4_heli = evac\pri_a28_heli_mono.ltx
pri_a28_mono_add_2_5_heli = evac\pri_a28_heli_mono.ltx
pri_a28_mono_add_2_6_heli = evac\pri_a28_heli_mono.ltx
pri_a28_mono_add_3_1_heli = evac\pri_a28_heli_mono.ltx
pri_a28_mono_add_3_2_heli = evac\pri_a28_heli_mono.ltx
pri_a28_mono_add_3_3_heli = evac\pri_a28_heli_mono.ltx
pri_a28_mono_add_3_4_heli = evac\pri_a28_heli_mono.ltx
pri_a28_mono_add_3_5_heli = evac\pri_a28_heli_mono.ltx
pri_a28_mono_add_3_6_heli = evac\pri_a28_heli_mono.ltx

View file

@ -0,0 +1,24 @@
[smart_terrain]
sim_avail = false
arrive_dist = 100000
[exclusive]
pri_a28_kovalski_school = evac\pri_a28_school.ltx
pri_a28_medic_school = evac\pri_a28_school.ltx
pri_a28_strelok_school = evac\pri_a28_school.ltx
pri_a28_military_1_school = evac\pri_a28_school.ltx
pri_a28_military_2_school = evac\pri_a28_school.ltx
pri_a28_military_3_school = evac\pri_a28_school.ltx
pri_a28_military_4_school = evac\pri_a28_school.ltx
pri_a28_military_5_school = evac\pri_a28_school.ltx
pri_a28_snork_1_school = evac\pri_a28_school_snork.ltx
pri_a28_snork_2_school = evac\pri_a28_school_snork.ltx
pri_a28_snork_3_school = evac\pri_a28_school_snork.ltx
pri_a28_snork_4_school = evac\pri_a28_school_snork.ltx
pri_a28_snork_5_school = evac\pri_a28_school_snork.ltx
pri_a28_snork_6_school = evac\pri_a28_school_snork.ltx
pri_a28_snork_7_school = evac\pri_a28_school_snork.ltx
pri_a28_snork_8_school = evac\pri_a28_school_snork.ltx
pri_a28_snork_9_school = evac\pri_a28_school_snork.ltx

View file

@ -0,0 +1,28 @@
[smart_terrain]
sim_avail = false
arrive_dist = 100000
[exclusive]
pri_a28_kovalski_shop = evac\pri_a28_shop.ltx
pri_a28_medic_shop = evac\pri_a28_shop.ltx
pri_a28_strelok_shop = evac\pri_a28_shop.ltx
pri_a28_military_1_shop = evac\pri_a28_shop.ltx
pri_a28_military_2_shop = evac\pri_a28_shop.ltx
pri_a28_military_3_shop = evac\pri_a28_shop.ltx
pri_a28_military_4_shop = evac\pri_a28_shop.ltx
pri_a28_military_5_shop = evac\pri_a28_shop.ltx
pri_a28_zombied_1_shop = evac\pri_a28_shop_zombied.ltx
pri_a28_zombied_2_shop = evac\pri_a28_shop_zombied.ltx
pri_a28_zombied_3_shop = evac\pri_a28_shop_zombied.ltx
pri_a28_zombied_4_shop = evac\pri_a28_shop_zombied.ltx
pri_a28_zombied_5_shop = evac\pri_a28_shop_zombied.ltx
pri_a28_zombied_6_shop = evac\pri_a28_shop_zombied.ltx
pri_a28_zombied_7_shop = evac\pri_a28_shop_zombied.ltx
pri_a28_zombied_8_shop = evac\pri_a28_shop_zombied.ltx
pri_a28_zombied_9_shop = evac\pri_a28_shop_zombied.ltx
pri_a28_zombied_10_shop = evac\pri_a28_shop_zombied.ltx
pri_a28_zombied_11_shop = evac\pri_a28_shop_zombied.ltx
pri_a28_zombied_12_shop = evac\pri_a28_shop_zombied.ltx

View file

@ -0,0 +1,24 @@
[logic@dog_walker]
suitable = {=is_monster_dog} true
prior = 200
monster_job = true
active = mob_walker
[mob_walker]
path_walk = way_dog
[logic@cover_work]
suitable = true
active = animpoint@cover_work
[animpoint@cover_work]
cover_name = redstain_selo_smart_cover
on_actor_dist_le = 5 | %=teleport_npc(redstain_selo_smart_terrain_0000_walk) =teleport_actor(redstain_selo_smart_terrain_0000_look:redstain_selo_smart_terrain_0000_walk) +teleported%
[logic@walker_work]
suitable = true
active = walker@walker_work
[walker@walker_work]
path_walk = walk
path_look = look

View file

@ -0,0 +1,6 @@
[logic]
active = ph_idle@open
[ph_idle@open]
nonscript_usable = true
tips = inventory_box_use

View file

@ -0,0 +1,68 @@
[anomal_zone]
layers_count = 2
respawn_tries = 2
max_artefacts = 3
;applying_force_xz = 200
;applying_force_y = 400
artefacts = af_cristall, af_fireball, af_dummy_glassbeads, af_eye, af_fire
start_artefact = af_eye
coeff = 3, 3, 2, 2, 1
;field_name = jup_b10_zone_field_thermal_average
artefact_ways = jup_b10_af_way_1, jup_b10_af_way_2, jup_b10_af_way_3
[mines_core]
jup_b10_zone_mine_thermal_average
jup_b10_zone_mine_thermal_average_0000
jup_b10_zone_mine_thermal_average_0001
jup_b10_zone_mine_thermal_average_0002
jup_b10_zone_mine_thermal_average_0003
jup_b10_zone_mine_thermal_average_0004
jup_b10_zone_mine_thermal_average_0005
jup_b10_zone_mine_thermal_average_0006
jup_b10_zone_mine_thermal_average_0007
jup_b10_zone_mine_thermal_average_0008
[layer_1]
mines_section = mines_layer_1
[mines_layer_1]:mines_core
jup_b10_zone_mine_thermal_average_0009
jup_b10_zone_mine_thermal_average_0010
jup_b10_zone_mine_thermal_average_0011
jup_b10_zone_mine_thermal_average_0012
jup_b10_zone_mine_thermal_average_0013
jup_b10_zone_mine_thermal_average_0014
jup_b10_zone_mine_thermal_average_0015
jup_b10_zone_mine_thermal_average_0016
jup_b10_zone_mine_thermal_average_0017
jup_b10_zone_mine_thermal_average_0018
jup_b10_zone_mine_thermal_average_0019
jup_b10_zone_mine_thermal_average_0020
jup_b10_zone_mine_thermal_average_0021
jup_b10_zone_mine_thermal_average_0022
jup_b10_zone_mine_thermal_average_0023
jup_b10_zone_mine_thermal_average_0024
[layer_2]
mines_section = mines_layer_2
[mines_layer_2]:mines_core
jup_b10_zone_mine_thermal_average_0025
jup_b10_zone_mine_thermal_average_0026
jup_b10_zone_mine_thermal_average_0027
jup_b10_zone_mine_thermal_average_0028
jup_b10_zone_mine_thermal_average_0029
jup_b10_zone_mine_thermal_average_0030
jup_b10_zone_mine_thermal_average_0031
jup_b10_zone_mine_thermal_average_0032
jup_b10_zone_mine_thermal_average_0033
jup_b10_zone_mine_thermal_average_0034
jup_b10_zone_mine_thermal_average_0035
jup_b10_zone_mine_thermal_average_0036
jup_b10_zone_mine_thermal_average_0037
jup_b10_zone_mine_thermal_average_0038
jup_b10_zone_mine_thermal_average_0039
jup_b10_zone_mine_thermal_average_0040
jup_b10_zone_mine_thermal_average_0041
jup_b10_zone_mine_thermal_average_0042

View file

@ -0,0 +1,18 @@
[anomal_zone]
layers_count = 2
respawn_tries = 0
max_artefacts = 0
artefacts = af_cristall
coeff = 1
field_name = jup_b1_zone_field_psychic_average
artefact_ways = jup_b211_af_way_1
[layer_1]
mines_section = mines_layer_1
[mines_layer_1]
[layer_2]
mines_section = mines_layer_2
[mines_layer_2]

View file

@ -0,0 +1,10 @@
[anomal_zone]
layers_count = 1
artefacts = af_cristall, af_fireball, af_dummy_glassbeads, af_eye, af_fire
start_artefact = af_dummy_glassbeads
coeff = 3, 3, 2, 2, 1
artefact_ways = jup_b200_art_way
applying_force_y = 10
respawn_tries = 1
max_artefacts = 1

View file

@ -0,0 +1,71 @@
[anomal_zone]
layers_count = 3
artefacts = af_blood, af_mincer_meat, af_soul, af_fuzz_kolobok, af_baloon, af_glass
start_artefact = af_soul
coeff = 3, 3, 2, 2, 1, 1
artefact_ways = jup_b201_art_walk
;field_name = jup_b201_zone_field_acidic_average
respawn_tries = 1
max_artefacts = 1
[layer_1]
mines_section = mines_layer_1
[mines_layer_1]
jup_b201_zone_mine_acidic_average
jup_b201_zone_mine_acidic_average_0000
jup_b201_zone_mine_acidic_average_0001
jup_b201_zone_mine_acidic_average_0002
jup_b201_zone_mine_acidic_average_0003
jup_b201_zone_mine_acidic_average_0004
jup_b201_zone_mine_acidic_average_0005
jup_b201_zone_mine_acidic_average_0006
jup_b201_zone_mine_acidic_average_0007
jup_b201_zone_mine_acidic_average_0008
jup_b201_zone_mine_acidic_average_0009
jup_b201_zone_mine_acidic_average_0010
jup_b201_zone_mine_acidic_average_0011
jup_b201_zone_mine_acidic_average_0012
jup_b201_zone_mine_acidic_average_0013
jup_b201_zone_mine_acidic_average_0014
jup_b201_zone_mine_acidic_average_0015
[layer_2]
mines_section = mines_layer_2
[mines_layer_2]
jup_b201_zone_mine_acidic_average_0016
jup_b201_zone_mine_acidic_average_0017
jup_b201_zone_mine_acidic_average_0018
jup_b201_zone_mine_acidic_average_0019
jup_b201_zone_mine_acidic_average_0020
jup_b201_zone_mine_acidic_average_0021
jup_b201_zone_mine_acidic_average_0022
jup_b201_zone_mine_acidic_average_0023
jup_b201_zone_mine_acidic_average_0024
jup_b201_zone_mine_acidic_average_0025
jup_b201_zone_mine_acidic_average_0026
jup_b201_zone_mine_acidic_average_0027
jup_b201_zone_mine_acidic_average_0028
jup_b201_zone_mine_acidic_average_0029
jup_b201_zone_mine_acidic_average_0030
[layer_3]
mines_section = mines_layer_3
[mines_layer_3]
jup_b201_zone_mine_acidic_average_0031
jup_b201_zone_mine_acidic_average_0032
jup_b201_zone_mine_acidic_average_0033
jup_b201_zone_mine_acidic_average_0034
jup_b201_zone_mine_acidic_average_0035
jup_b201_zone_mine_acidic_average_0036
jup_b201_zone_mine_acidic_average_0037
jup_b201_zone_mine_acidic_average_0038
jup_b201_zone_mine_acidic_average_0039
jup_b201_zone_mine_acidic_average_0040
jup_b201_zone_mine_acidic_average_0041
jup_b201_zone_mine_acidic_average_0042
jup_b201_zone_mine_acidic_average_0043
jup_b201_zone_mine_acidic_average_0044
jup_b201_zone_mine_acidic_average_0045

View file

@ -0,0 +1,106 @@
[anomal_zone]
layers_count = 2
respawn_tries = 2
max_artefacts = 3
;applying_force_xz = 200
;applying_force_y = 400
artefacts = af_blood, af_soul, af_baloon, af_glass
start_artefact = af_baloon
coeff = 3, 2, 1, 1
artefact_ways = jup_b206_af_way, jup_b206_af_way_2, jup_b206_af_way_3
[mines_core]
[layer_1]
mines_section = mines_layer_1
[mines_layer_1]:mines_core
;jup_b206_zone_mine_acidic_average_0005
jup_b206_zone_mine_acidic_average_0006
jup_b206_zone_mine_acidic_average_0007
jup_b206_zone_mine_acidic_average_0008
jup_b206_zone_mine_acidic_average_0009
jup_b206_zone_mine_acidic_average_0010
jup_b206_zone_mine_acidic_average_0011
jup_b206_zone_mine_acidic_average_0012
jup_b206_zone_mine_acidic_average_0013
jup_b206_zone_mine_acidic_average_0014
jup_b206_zone_mine_acidic_average_0015
jup_b206_zone_mine_acidic_average_0016
jup_b206_zone_mine_acidic_average_0017
jup_b206_zone_mine_acidic_average_0018
jup_b206_zone_mine_acidic_average_0019
jup_b206_zone_mine_acidic_average_0020
jup_b206_zone_mine_acidic_average_0021
jup_b206_zone_mine_acidic_average_0022
jup_b206_zone_mine_acidic_average_0023
jup_b206_zone_mine_acidic_average_0024
jup_b206_zone_mine_acidic_average_0025
jup_b206_zone_mine_acidic_average_0026
jup_b206_zone_mine_acidic_average_0027
jup_b206_zone_mine_acidic_average_0028
jup_b206_zone_mine_acidic_average_0029
jup_b206_zone_mine_acidic_average_0030
jup_b206_zone_mine_acidic_average_0031
jup_b206_zone_mine_acidic_average_0032
jup_b206_zone_mine_acidic_average_0033
jup_b206_zone_mine_acidic_average_0034
jup_b206_zone_mine_acidic_average_0035
jup_b206_zone_mine_acidic_average_0036
jup_b206_zone_mine_acidic_average_0037
jup_b206_zone_mine_acidic_average_0038
jup_b206_zone_mine_acidic_average_0039
jup_b206_zone_mine_acidic_average_0040
jup_b206_zone_mine_acidic_average_0041
jup_b206_zone_mine_acidic_average_0042
jup_b206_zone_mine_acidic_average_0043
jup_b206_zone_mine_acidic_average_0044
;jup_b206_zone_mine_acidic_average_0045
;jup_b206_zone_mine_acidic_average_0046
[layer_2]
mines_section = mines_layer_2
[mines_layer_2]:mines_core
;jup_b206_zone_mine_acidic_average_0005
jup_b206_zone_mine_acidic_average_0006
jup_b206_zone_mine_acidic_average_0007
jup_b206_zone_mine_acidic_average_0008
jup_b206_zone_mine_acidic_average_0009
jup_b206_zone_mine_acidic_average_0010
jup_b206_zone_mine_acidic_average_0011
jup_b206_zone_mine_acidic_average_0012
jup_b206_zone_mine_acidic_average_0013
jup_b206_zone_mine_acidic_average_0014
jup_b206_zone_mine_acidic_average_0015
jup_b206_zone_mine_acidic_average_0016
jup_b206_zone_mine_acidic_average_0017
jup_b206_zone_mine_acidic_average_0018
jup_b206_zone_mine_acidic_average_0019
jup_b206_zone_mine_acidic_average_0020
jup_b206_zone_mine_acidic_average_0021
jup_b206_zone_mine_acidic_average_0022
jup_b206_zone_mine_acidic_average_0023
jup_b206_zone_mine_acidic_average_0024
jup_b206_zone_mine_acidic_average_0025
jup_b206_zone_mine_acidic_average_0026
jup_b206_zone_mine_acidic_average_0027
jup_b206_zone_mine_acidic_average_0028
jup_b206_zone_mine_acidic_average_0029
jup_b206_zone_mine_acidic_average_0030
jup_b206_zone_mine_acidic_average_0031
jup_b206_zone_mine_acidic_average_0032
jup_b206_zone_mine_acidic_average_0033
jup_b206_zone_mine_acidic_average_0034
jup_b206_zone_mine_acidic_average_0035
jup_b206_zone_mine_acidic_average_0036
jup_b206_zone_mine_acidic_average_0037
jup_b206_zone_mine_acidic_average_0038
jup_b206_zone_mine_acidic_average_0039
jup_b206_zone_mine_acidic_average_0040
jup_b206_zone_mine_acidic_average_0041
jup_b206_zone_mine_acidic_average_0042
jup_b206_zone_mine_acidic_average_0043
jup_b206_zone_mine_acidic_average_0044
;jup_b206_zone_mine_acidic_average_0045
;jup_b206_zone_mine_acidic_average_0046

View file

@ -0,0 +1,32 @@
[anomal_zone]
layers_count = 2
artefacts = af_cristall, af_fireball, af_dummy_glassbeads, af_eye, af_fire, af_medusa, af_cristall_flower, af_night_star, af_vyvert, af_gravi, af_gold_fish
start_artefact = af_gravi
coeff = 3, 3, 2, 2, 1, 3, 3, 2, 2, 1, 1
artefact_ways = jup_b209_art_way, jup_b209_af_way_2, jup_b209_af_way_3
;field_name = jup_b209_zone_field_thermal_average
respawn_tries = 2
max_artefacts = 3
[layer_1]
mines_section = mines_layer_1
[mines_layer_1]
jup_b209_zone_mine_thermal_average_0000
jup_b209_zone_mine_thermal_average_0003
jup_b209_zone_mine_thermal_average_0004
jup_b209_zone_mine_thermal_average_0005
jup_b209_zone_mine_thermal_average_0007
jup_b209_zone_mine_thermal_average_0011
[layer_2]
mines_section = mines_layer_2
[mines_layer_2]
jup_b209_zone_mine_thermal_average_0001
jup_b209_zone_mine_thermal_average_0002
jup_b209_zone_mine_thermal_average_0006
jup_b209_zone_mine_thermal_average_0008
jup_b209_zone_mine_thermal_average_0009
jup_b209_zone_mine_thermal_average_0010

View file

@ -0,0 +1,53 @@
[anomal_zone]
layers_count = 2
respawn_tries = 2
max_artefacts = 3
;applying_force_xz = 200
;applying_force_y = 400
artefacts = af_blood, af_soul, af_baloon, af_glass
start_artefact = af_blood
coeff = 3, 2, 1, 1
;field_name = jup_b211_zone_field_acidic_average
artefact_ways = jup_b211_af_way_1, jup_b211_af_way_2, jup_b211_af_way_3
[mines_core]
jup_b211_zone_mine_acidic_average
jup_b211_zone_mine_acidic_average_0000
jup_b211_zone_mine_acidic_average_0001
jup_b211_zone_mine_acidic_average_0002
jup_b211_zone_mine_acidic_average_0003
jup_b211_zone_mine_acidic_average_0004
jup_b211_zone_mine_acidic_average_0005
jup_b211_zone_mine_acidic_average_0006
jup_b211_zone_mine_acidic_average_0007
[layer_1]
mines_section = mines_layer_1
[mines_layer_1]:mines_core
jup_b211_zone_mine_acidic_average_0008
jup_b211_zone_mine_acidic_average_0009
jup_b211_zone_mine_acidic_average_0010
jup_b211_zone_mine_acidic_average_0011
jup_b211_zone_mine_acidic_average_0012
jup_b211_zone_mine_acidic_average_0013
jup_b211_zone_mine_acidic_average_0014
jup_b211_zone_mine_acidic_average_0015
jup_b211_zone_mine_acidic_average_0016
jup_b211_zone_mine_acidic_average_0017
[layer_2]
mines_section = mines_layer_2
[mines_layer_2]:mines_core
jup_b211_zone_mine_acidic_average_0018
jup_b211_zone_mine_acidic_average_0019
jup_b211_zone_mine_acidic_average_0020
jup_b211_zone_mine_acidic_average_0021
jup_b211_zone_mine_acidic_average_0022
jup_b211_zone_mine_acidic_average_0023
jup_b211_zone_mine_acidic_average_0024
jup_b211_zone_mine_acidic_average_0025
jup_b211_zone_mine_acidic_average_0026
jup_b211_zone_mine_acidic_average_0027
jup_b211_zone_mine_acidic_average_0028

View file

@ -0,0 +1,10 @@
[anomal_zone]
layers_count = 1
respawn_tries = 1
max_artefacts = 1
;applying_force_xz = 200
;applying_force_y = 400
artefacts = af_electra_sparkler, af_electra_flash, af_electra_moonlight, af_dummy_battery, af_dummy_dummy, af_ice
start_artefact = af_dummy_battery
coeff = 3, 3, 2, 2, 1, 1
artefact_ways = jup_b214_af_way

View file

@ -0,0 +1,76 @@
[anomal_zone]
layers_count = 3
respawn_tries = 2
max_artefacts = 3
artefacts = af_blood, af_soul, af_baloon, af_glass
start_artefact = af_soul
coeff = 3, 2, 1, 1
artefact_ways = jup_b25_af_way_1, jup_b25_af_way_2, jup_b25_af_way_3
[mines_core]
jup_b25_zone_mine_acidic_average
jup_b25_zone_mine_acidic_average_0000
jup_b25_zone_mine_acidic_average_0001
jup_b25_zone_mine_acidic_average_0002
jup_b25_zone_mine_acidic_average_0003
jup_b25_zone_mine_acidic_average_0004
jup_b25_zone_mine_acidic_average_0005
jup_b25_zone_mine_acidic_average_0006
jup_b25_zone_mine_acidic_average_0007
jup_b25_zone_mine_acidic_average_0008
jup_b25_zone_mine_acidic_average_0009
jup_b25_zone_mine_acidic_average_0010
jup_b25_zone_mine_acidic_average_0011
jup_b25_zone_mine_acidic_average_0012
jup_b25_zone_mine_acidic_average_0013
jup_b25_zone_mine_acidic_average_0014
jup_b25_zone_mine_acidic_average_0015
jup_b25_zone_mine_acidic_average_0016
jup_b25_zone_mine_acidic_average_0017
jup_b25_zone_mine_acidic_average_0018
jup_b25_zone_mine_acidic_average_0019
jup_b25_zone_mine_acidic_average_0020
jup_b25_zone_mine_acidic_average_0021
[layer_1]
mines_section = mines_layer_1
[mines_layer_1]:mines_core
jup_b25_zone_mine_acidic_average_0022
jup_b25_zone_mine_acidic_average_0023
jup_b25_zone_mine_acidic_average_0024
jup_b25_zone_mine_acidic_average_0025
jup_b25_zone_mine_acidic_average_0026
[layer_2]
mines_section = mines_layer_2
[mines_layer_2]:mines_core
jup_b25_zone_mine_acidic_average_0027
jup_b25_zone_mine_acidic_average_0028
jup_b25_zone_mine_acidic_average_0029
jup_b25_zone_mine_acidic_average_0030
jup_b25_zone_mine_acidic_average_0031
jup_b25_zone_mine_acidic_average_0032
jup_b25_zone_mine_acidic_average_0033
jup_b25_zone_mine_acidic_average_0034
jup_b25_zone_mine_acidic_average_0035
jup_b25_zone_mine_acidic_average_0036
jup_b25_zone_mine_acidic_average_0037
[layer_3]
mines_section = mines_layer_3
[mines_layer_3]:mines_core
jup_b25_zone_mine_acidic_average_0038
jup_b25_zone_mine_acidic_average_0039
jup_b25_zone_mine_acidic_average_0040
jup_b25_zone_mine_acidic_average_0041
jup_b25_zone_mine_acidic_average_0042
jup_b25_zone_mine_acidic_average_0043
jup_b25_zone_mine_acidic_average_0044
jup_b25_zone_mine_acidic_average_0045
jup_b25_zone_mine_acidic_average_0046
jup_b25_zone_mine_acidic_average_0047
jup_b25_zone_mine_acidic_average_0048
jup_b25_zone_mine_acidic_average_0049

View file

@ -0,0 +1,23 @@
[anomal_zone]
layers_count = 1
respawn_tries = 1
max_artefacts = 2
;applying_force_xz = 200
;applying_force_y = 400
artefacts = af_electra_sparkler, af_electra_flash, af_electra_moonlight, af_dummy_battery, af_dummy_dummy, af_ice
start_artefact = af_electra_moonlight
coeff = 3, 3, 2, 2, 1, 1
artefact_ways = jup_b32_af_way, jup_b32_af_way_2
[mines_core]
jup_b32_zone_mine_electric_average
jup_b32_zone_mine_electric_average_0000
jup_b32_zone_mine_electric_average_0001
jup_b32_zone_mine_electric_average_0002
jup_b32_zone_mine_electric_average_0003
jup_b32_zone_mine_electric_average_0004
jup_b32_zone_mine_electric_average_0005
jup_b32_zone_mine_electric_average_0006
jup_b32_zone_mine_electric_average_0007
jup_b32_zone_mine_electric_average_0008
jup_b32_zone_mine_electric_average_0009

View file

@ -0,0 +1,9 @@
[anomal_zone]
layers_count = 1
respawn_tries = 2
max_artefacts = 3
;applying_force_xz = 200
;applying_force_y = 400
artefacts = af_cristall, af_fireball, af_dummy_glassbeads, af_eye, af_fire, af_electra_sparkler, af_electra_flash, af_electra_moonlight, af_dummy_battery, af_dummy_dummy, af_ice, af_medusa, af_cristall_flower, af_night_star, af_vyvert, af_gravi, af_gold_fish, af_blood, af_mincer_meat, af_soul, af_fuzz_kolobok, af_baloon, af_glass
coeff = 3, 3, 2, 2, 1, 3, 3, 2, 2, 1, 1, 3, 3, 2, 2, 1, 1, 3, 3, 2, 2, 1, 1
artefact_ways = jup_wa_way_1, jup_wa_way_2, jup_wa_way_3, jup_wa_way_4, jup_wa_way_6, jup_wa_way_7, jup_wa_way_8, jup_wa_way_9

View file

@ -0,0 +1,16 @@
[logic@jup_a10_bandit_guard_1]
suitable = {=target_squad_name(jup_a10_bandit_squad_3) !check_npc_name(jup_a10_bandit_leader)} true
prior = 100
active = walker@jup_a10_bandit_guard_1
[walker@jup_a10_bandit_guard_1]
path_walk = jup_a10_bandit_guard_1_walk
path_look = jup_a10_bandit_guard_1_look
on_info = {=surge_started} walker@surge
[walker@surge]
path_walk = bodyguard_1_walk
path_look = bodyguard_1_look
on_info = {=surge_complete} walker@jup_a10_bandit_guard_1

View file

@ -0,0 +1,16 @@
[logic@jup_a10_bandit_guard_2]
suitable = {=target_squad_name(jup_a10_bandit_squad_3) !check_npc_name(jup_a10_bandit_leader)} true
prior = 100
active = walker@jup_a10_bandit_guard_2
[walker@jup_a10_bandit_guard_2]
path_walk = jup_a10_bandit_guard_2_walk
path_look = jup_a10_bandit_guard_2_look
on_actor_dist_le = 20 | {=actor_has_weapon} remark
[remark]
anim = backoff2
target = story | actor
snd = jup_a10_bandits_warn
on_timer = 5000 | {-jup_a10_hit_bandit_guard_1} %=hit_npc_from_actor +jup_a10_hit_bandit_guard_1%
on_info = {!actor_has_weapon} walker@jup_a10_bandit_guard_2

View file

@ -0,0 +1,43 @@
[logic@jup_a10_bandit_guard_3]
suitable = {=target_squad_name(jup_a10_bandit_squad_3) !check_npc_name(jup_a10_bandit_leader)} true
prior = 100
active = walker@jup_a10_bandit_guard_3
[walker@jup_a10_bandit_guard_3]
path_walk = jup_a10_bandit_guard_3_walk
path_look = jup_a10_bandit_guard_3_look
on_actor_dist_le = 3 | {=actor_has_weapon} remark
on_info = {+jup_a10_guard_back} walker@1 %-jup_a10_guard_back%
on_info2 = {=surge_started} walker@surge
on_actor_in_zone = jup_surge_hide_a10 | walker@1
meet = meet
[walker@1]
path_walk = jup_a10_bandit_guard_3_back_walk
path_look = jup_a10_bandit_guard_3_back_look
on_actor_dist_le = 3 | {=actor_has_weapon} remark@2
on_actor_not_in_zone = jup_a10_guard_spase_restrictor | walker@jup_a10_bandit_guard_3
[remark]
anim = backoff2
target = story | actor
snd = jup_a10_bandits_warn
on_timer = 5000 | {-jup_a10_hit_bandit_guard_3} %=hit_npc_from_actor +jup_a10_hit_bandit_guard_3%
on_info = {!actor_has_weapon} walker@jup_a10_bandit_guard_3
[remark@2]
anim = backoff2
target = story | actor
snd = jup_a10_bandits_warn
on_timer = 5000 | {-jup_a10_hit_bandit_guard_3} %=hit_npc_from_actor +jup_a10_hit_bandit_guard_3%
on_info = {!actor_has_weapon} walker@1
[meet]
use = {=actor_enemy} false, {=actor_has_weapon} false ,true
meet_dialog = jup_a10_guard_dialog
[walker@surge]
path_walk = bodyguard_2_walk
path_look = bodyguard_2_look
on_info = {=surge_complete} walker@jup_a10_bandit_guard_3
on_info2 = {=surge_complete +jup_a10_guard_back} walker@1

View file

@ -0,0 +1,32 @@
[logic@jup_a10_bandit_leader]
suitable = {=check_npc_name(jup_a10_bandit_leader)}
prior = 100
active = animpoint@valet
on_death = death
[animpoint@valet]
cover_name = jup_a10_bandit_leader_sit_animpoint
avail_animations = animpoint_sit_normal
use_camp = false
on_info = {+jup_a10_krutoy_stvol_attack -jup_a10_hit_bandit_leader} %=hit_npc_from_actor +jup_a10_hit_bandit_leader%
;on_actor_dist_le = 10 | {=actor_has_weapon} remark
on_info2 = {=is_squad_enemy_to_actor(jup_a10_bandit_squad_3) +jup_a10_vano_give_task} %+jup_a10_kill_all_bandit%
meet = meet
[death]
on_info = %+jup_a10_death_0%
[meet]
snd_on_use = {-jup_a10_vano_give_task} meet_use_no_default, {+jup_a10_back_vano} meet_use_no_default
close_snd_hello = jup_a10_bandit_leader_hello
close_distance = 10
close_victim = actor
close_anim = nil
use = {=actor_enemy} false, {=actor_has_weapon} false, true
trade_enable = false
[animpoint@remark]
target = story | actor
snd = meet_hide_weapon
on_signal = sound_end | animpoint@valet
meet = no_meet

View file

@ -0,0 +1,20 @@
[logic]
active = ph_door@open
[ph_door@open]
locked = false
closed = false
snd_open_start = wood_small_open
snd_close_start = wood_small_close_start
snd_close_stop = wood_small_close_stop
on_use = ph_door@close
tip_close = tip_door_close
[ph_door@close]
locked = false
closed = true
snd_open_start = wood_small_open
snd_close_start = wood_small_close_start
snd_close_stop = wood_small_close_stop
on_use = ph_door@open
tip_open = tip_door_open

View file

@ -0,0 +1,16 @@
[logic]
active = sr_idle
[sr_idle]
on_info = {+jup_a10_vano_give_task} sr_idle@2
on_info2 = {+jup_a10_run_quest} %+jup_b218_gather_squad +jup_a9_tech_conservation_info%
on_info3 = {!squad_exist(jup_a10_bandit_squad_3)} %+jup_a10_bandit_out%
[sr_idle@2]
;on_info = {+jup_a10_vano_give_task -jup_a10_bandit_take_money -jup_a10_bandit_take_all_money +jup_a10_death_0 +jup_a10_death_1 +jup_a10_death_2 +jup_a10_death_3} %+jup_a10_bandit_out +jup_a10_back_vano%
on_info = {+jup_a10_vano_give_task -jup_a10_bandit_take_money -jup_a10_bandit_take_all_money !squad_exist(jup_a10_bandit_squad_3)} %+jup_a10_bandit_out +jup_a10_back_vano%
on_info2 = {+jup_a10_back_vano} sr_idle@3
;on_info@3 = {=squad_exist(jup_a10_bandit_squad_3)} %+jup_a10_bandit_squad_death%
;on_game_timer = 259200 | sr_idle@3 %+jup_a10_fals -jup_a10_vano_give_task%
[sr_idle@3]

View file

@ -0,0 +1,9 @@
[logic]
active = sr_idle
[sr_idle]
on_info = {=is_squad_enemy_to_actor(jup_a10_bandit_squad)} sr_idle@2 %=set_squad_enemy_to_actor(jup_a10_bandit_squad_2) =set_squad_enemy_to_actor(jup_a10_bandit_squad_3)%
on_info2 = {=is_squad_enemy_to_actor(jup_a10_bandit_squad_2)} sr_idle@2 %=set_squad_enemy_to_actor(jup_a10_bandit_squad) =set_squad_enemy_to_actor(jup_a10_bandit_squad_3)%
on_info3 = {=is_squad_enemy_to_actor(jup_a10_bandit_squad_3)} sr_idle@2 %=set_squad_enemy_to_actor(jup_a10_bandit_squad) =set_squad_enemy_to_actor(jup_a10_bandit_squad_2)%
[sr_idle@2]

View file

@ -0,0 +1,36 @@
[logic@jup_a10_stalker_vano]
suitable = {=check_npc_name(jup_a10_stalker_vano)}
active = animpoint@vano
prior = 200
[animpoint@vano]
cover_name = jup_a6_animpoint_vano
use_camp = false
on_info = {+jup_a10_vano_give_task -give_jup_a10_task} %=give_task(jup_a10_actor_agree_back_vano_duties) +give_jup_a10_task%
on_info2 = {=dist_to_actor_ge(150) +jup_a10_fals} %=destroy_object(story:jup_a10_stalker_vano)%
on_info3 = {+jup_a10_vano_give_task_end -jup_a10_vano_max_simpathy} %=actor_friend +jup_a10_vano_max_simpathy%
on_actor_dist_le = 2 | {-jup_a10_vano_give_task -jup_a10_vano_need_help_infoporshin +jup_b217_welcome_tech_talked} %=play_sound(jup_a10_vano_need_help) +jup_a10_vano_need_help_infoporshin%
on_actor_dist_ge_nvis = 100 | {+jup_a10_vano_need_help_infoporshin} %-jup_a10_vano_need_help_infoporshin%
meet = meet
combat_ignore_cond = true
combat_ignore_keep_when_attacked = true
corpse_detection_enabled = false
invulnerable = true
out_restr = jup_a6_sr_noweap
gather_items_enabled = false
help_wounded_enabled = false
corpse_detection_enabled = false
[meet]
close_anim = nil
close_victim = nil
far_anim = nil
far_victim = nil
close_distance = 0
far_distance = 0
snd_on_use = nil
use = {+jup_a10_fals} false, {=actor_enemy} false, true
allow_break = false
trade_enable = false
meet_dialog = jup_a10_vano_help_dialog
meet_on_talking = false

View file

@ -0,0 +1,36 @@
[logic@jup_a12_bandit_bodyguard_1]
active = walker@guard
prior = 150
suitable = {=check_npc_name(sim_default_bandit_1)} true
[walker@guard]
path_walk = bandit_bodyguard_1_walk
path_look = bandit_bodyguard_1_look
combat_ignore_cond = {=check_enemy_name(jup_a12_stalker_prisoner) -jup_a12_actor_enemy_to_bandits} true
meet = meet@guard
on_actor_in_zone = jup_a12_sr_bandit_bodyguard | {=actor_has_weapon} walker@threat
out_restr = jup_a12_sr_bandit_bodyguard
[meet@guard]
close_distance = 20
close_victim = actor
close_anim = guard
use = false
[walker@threat]
path_walk = bandit_bodyguard_1_walk
path_look = bandit_bodyguard_1_look
combat_ignore_cond = {=check_enemy_name(jup_a12_stalker_prisoner) -jup_a12_actor_enemy_to_bandits} true
meet = meet@threat
on_actor_in_zone = jup_a12_sr_bandit_bodyguard | {!actor_has_weapon} walker@guard
on_actor_not_in_zone = jup_a12_sr_bandit_bodyguard | walker@guard
on_game_timer = 50 | %+jup_a12_actor_enemy_to_bandits%
out_restr = jup_a12_sr_bandit_bodyguard
on_info = {-jup_a12_actor_enemy_to_bandits} %=play_sound(jup_a12_bandits_bodyguard_warning_actor)%
[meet@threat]
close_distance = 20
close_victim = actor
close_anim = {!actor_has_weapon} guard, {+jup_a12_actor_enemy_to_bandits} threat_fire, threat
far_snd = {!actor_has_weapon} nil, {+jup_a12_actor_enemy_to_bandits} nil, nil
use = false

View file

@ -0,0 +1,35 @@
[logic@jup_a12_bandit_bodyguard_2]
active = walker@guard
prior = 150
suitable = {=check_npc_name(sim_default_bandit_1)} true
[walker@guard]
path_walk = bandit_bodyguard_2_walk
path_look = bandit_bodyguard_2_look
combat_ignore_cond = {=check_enemy_name(jup_a12_stalker_prisoner) -jup_a12_actor_enemy_to_bandits} true
meet = meet@guard
on_actor_in_zone = jup_a12_sr_bandit_bodyguard | {=actor_has_weapon} walker@threat
out_restr = jup_a12_sr_bandit_bodyguard
[meet@guard]
close_distance = 20
close_victim = actor
close_anim = guard
use = false
[walker@threat]
path_walk = bandit_bodyguard_2_walk
path_look = bandit_bodyguard_2_look
combat_ignore_cond = {=check_enemy_name(jup_a12_stalker_prisoner) -jup_a12_actor_enemy_to_bandits} true
meet = meet@threat
on_actor_in_zone = jup_a12_sr_bandit_bodyguard | {!actor_has_weapon} walker@guard
on_actor_not_in_zone = jup_a12_sr_bandit_bodyguard | walker@guard
on_game_timer = 50 | %+jup_a12_actor_enemy_to_bandits%
out_restr = jup_a12_sr_bandit_bodyguard
[meet@threat]
close_distance = 20
close_victim = actor
close_anim = {!actor_has_weapon} guard, {+jup_a12_actor_enemy_to_bandits} threat_fire, threat
far_snd = {!actor_has_weapon} nil, {+jup_a12_actor_enemy_to_bandits} nil, nil
use = false

View file

@ -0,0 +1,46 @@
[logic@jup_a12_bandit_cashier]
active = walker@wait
prior = 200
on_death = death
suitable = {=check_npc_name(jup_a12_bandit_cashier) !surge_started} true
[walker@wait]
path_walk = bandit_cashier_wait_walk
path_look = bandit_cashier_wait_look
combat_ignore_cond = {=check_enemy_name(jup_a12_stalker_prisoner) -jup_a12_actor_enemy_to_bandits} true
on_info = {+jup_a12_stalker_prisoner_free -jup_a12_stalker_prisoner_dead} walker@get_payment_wait
on_info2 = {+jup_a12_stalker_prisoner_dead} walker@wait_after
meet = no_meet
[walker@get_payment_wait]
path_walk = bandit_cashier_get_payment_walk
path_look = bandit_cashier_get_payment_look
combat_ignore_cond = {=check_enemy_name(jup_a12_stalker_prisoner) -jup_a12_actor_enemy_to_bandits} true
on_actor_dist_le_nvis = 3 | %+jup_a12_bandit_payment_started%
on_info = {+jup_a12_bandit_payment_started -jup_a12_stalker_prisoner_dead} walker@get_payment
on_info2 = {+jup_a12_stalker_prisoner_dead} walker@wait_after
def_state_moving = rush
meet = no_meet
[walker@get_payment]
path_walk = bandit_cashier_get_payment_walk
path_look = bandit_cashier_get_payment_look
combat_ignore_cond = {=check_enemy_name(jup_a12_stalker_prisoner) -jup_a12_actor_enemy_to_bandits} true
meet = meet@get_payment
on_info = {+jup_a12_actor_did_not_pay_to_cashier} walker@wait_after %=actor_enemy%, {+jup_a12_actor_paid_to_cashier} walker@wait_after
on_info2 = {+jup_a12_stalker_prisoner_dead} walker@wait_after
[meet@get_payment]
use = {!actor_enemy -jup_a12_actor_paid_to_cashier -jup_a12_actor_did_not_pay_to_cashier} self, false
meet_dialog = jup_a12_bandit_payment_dialog
trade_enable = false
allow_break = false
[walker@wait_after]
path_walk = bandit_cashier_wait_walk
path_look = bandit_cashier_wait_look
combat_ignore_cond = {=check_enemy_name(jup_a12_stalker_prisoner)} true
meet = no_meet
[death]
on_info = {-jup_a12_actor_enemy_to_bandits +jup_a12_bandit_payment_started} %+jup_a12_bandit_cashier_dead =set_squad_neutral_to_actor(jup_a12_bandit_chief_squad) =set_squad_neutral_to_actor(jup_a12_bandit_cashier_squad) =set_squad_neutral_to_actor(jup_a12_bandit_guard_squad) =set_squad_neutral_to_actor(jup_a12_bandit_sim_squad)%, %+jup_a12_bandit_cashier_dead%

View file

@ -0,0 +1,66 @@
[logic@jup_a12_bandit_chief]
active = walker@bandit_chief_stand
suitable = {=check_npc_name(jup_a12_bandit_chief)} true
prior = 200
on_death = death
[walker@bandit_chief_stand]
path_walk = bandit_chief_stand_walk
path_look = bandit_chief_stand_look
def_state_standing = wait_na
combat_ignore_cond = true
meet = meet@bandit_chief_stand
on_info = {+jup_a12_chief_bandit_wait_threat_prisoner -jup_a12_stalker_prisoner_free} walker@wait_threat_prisoner, {+jup_a12_stalker_prisoner_dead} walker@stand, {+jup_a12_stalker_prisoner_free +jup_a12_stalker_prisoner_thanked_actor} walker@stand, {+jup_a12_actor_enemy_to_bandits -jup_a12_chief_bandit_wait_threat_prisoner} %+jup_a12_chief_bandit_wait_threat_prisoner%
[meet@bandit_chief_stand]
close_anim = wait_na
close_snd_hello = nil
close_snd_bye = nil
close_victim = actor
snd_on_use = nil
use = {!actor_enemy !actor_has_weapon} true, false
use_wpn = false
meet_dialog = jup_a12_bandit_chief_dialog
trade_enable = false
[walker@wait_threat_prisoner]
path_walk = bandit_chief_threat_prisoner_walk
path_look = bandit_chief_threat_prisoner_look
def_state_standing = threat_na
combat_ignore_cond = true
on_actor_in_zone = jup_a12_sr_threat_prisoner_zone | %+jup_a12_chief_bandit_threat_prisoner%
on_info = {+jup_a12_chief_bandit_threat_prisoner} walker@threat_prisoner
def_state_moving = rush
meet = no_meet
out_restr = jup_a12_sr_threat_prisoner_zone
[walker@threat_prisoner]
path_walk = bandit_chief_threat_prisoner_walk
path_look = bandit_chief_threat_prisoner_look
combat_ignore_cond = true
def_state_standing = threat_na
on_info = {+jup_a12_chief_bandit_kill_prisoner} walker@kill_prisoner, {+jup_a12_stalker_prisoner_dead} walker@stand, %=play_sound(jup_a12_bandit_threat_to_prisoner)%
on_game_timer = 25 | %+jup_a12_chief_bandit_kill_prisoner%
def_state_moving = rush
meet = no_meet
out_restr = jup_a12_sr_threat_prisoner_zone
[walker@kill_prisoner]
path_walk = bandit_chief_kill_prisoner_walk
path_look = bandit_chief_kill_prisoner_look
def_state_standing = threat_na
on_info = {+jup_a12_stalker_prisoner_dead} walker@stand
combat_ignore_cond = {!check_enemy_name(jup_a12_stalker_prisoner)} true
meet = no_meet
out_restr = jup_a12_sr_threat_prisoner_zone
[walker@stand]
path_walk = bandit_chief_stand_walk
path_look = bandit_chief_stand_look
def_state_standing = wait_na
meet = meet@bandit_chief_stand
combat_ignore_cond = {=check_enemy_name(jup_a12_stalker_prisoner) -jup_a12_actor_enemy_to_bandits} true
out_restr = jup_a12_sr_bandit_bodyguard
[death]
on_info = %+jup_a12_bandit_out%

View file

@ -0,0 +1,37 @@
[logic@jup_a12_bandit_guard]
active = walker@bandit_guard_stand
suitable = {=check_npc_name(jup_a12_bandit_guard) !surge_started} true
prior = 200
on_hit = hit
on_death = death
[walker@bandit_guard_stand]
path_walk = bandit_guard_stand_walk
path_look = bandit_guard_stand_look
combat_ignore_cond = {=check_enemy_name(jup_a12_stalker_prisoner) -jup_a12_actor_enemy_to_bandits} true, {+jup_a12_bandit_guard_can_be_easily_killed -jup_a12_merc_attack_started} true, {-jup_a12_merc_attack_started =check_enemy_smart(jup_a12_merc)} true, false
meet = meet@guard_base
on_info = {=dist_to_actor_le(15) +jup_a12_actor_paid_to_cashier -jup_a12_bandit_taunt} %+jup_a12_bandit_taunt =play_sound(jup_a12_bandit_say_jump)%
on_info2 = {+jup_a12_bandit_guard_killed =is_alive(jup_a12_bandit_guard)} %=kill_npc%
on_info3 = {-jup_a12_actor_has_pass_to_containers -jup_a12_actor_enemy_to_bandits =actor_in_zone(jup_a12_sr_containers_kampzone)} %+jup_a12_actor_enemy_to_bandits%
on_info4 = {-jup_a12_actor_has_pass_to_containers -jup_a12_bandits_warning_actor =dist_to_actor_le(22)} %+jup_a12_bandits_warning_actor =play_sound(jup_a12_bandits_warning_actor)%
[meet@guard_base]
close_distance = 15
close_anim = {+jup_a12_actor_has_pass_to_containers} guard_na, threat_na
close_victim = actor
close_snd_hello = nil
close_snd_bye = nil
far_distance = 45
far_anim = {+jup_a12_actor_has_pass_to_containers} guard, threat
far_victim = actor
far_snd = nil
snd_on_use = nil
use = {!actor_enemy !actor_has_weapon} true
meet_dialog = {+jup_a12_actor_has_pass_to_containers} jup_a12_bandit_guard_visited, jup_a12_bandit_guard_start
trade_enable = false
[hit]
on_info = {+jup_a12_bandit_guard_can_be_easily_killed =is_alive -jup_a12_merc_attack_started -jup_a12_bandit_guard_killed} %+jup_a12_bandit_guard_killed%
[death]
on_info = %+jup_a12_bandit_guard_killed%

View file

@ -0,0 +1,283 @@
[wounded@no_wound]
hp_state = 0 | wounded_heavy@help_heavy
hp_state_see = 0 | wounded_heavy@help_heavy
hp_victim = 0 | nil
hp_cover = 0 | false
hp_fight = 0 | false
[logic@jup_a12_merc_cover]
active = walker@merc_cover_start
post_combat_time = 0, 0
suitable = {=check_npc_name(jup_a12_merc_cover) -jup_a12_merc_attack_started} true
prior = 200
[walker@merc_cover_start]
path_walk = kamp_walker_walk
path_look = kamp_walker_look
def_state_moving = assault
on_info = {+jup_a12_mercs_go_to_positions} walker@cover_walk_to_position %=play_sound(jup_a12_merc_lets_go)%, {!is_jup_a12_mercs_time} %+jup_a12_mercs_go_to_positions%
on_info2 = {-jup_a12_merc_cover_in_merc_camp} %+jup_a12_merc_cover_in_merc_camp%
meet = meet@cover_merc_kamp_meet
combat_ignore_condition = {=check_enemy_smart(jup_a12)} true, {!actor_enemy =dist_to_actor_ge(50)} true, false
gather_items_enabled = false
corpse_detection_enabled = false
wounded = wounded@no_wound
[meet@cover_merc_kamp_meet]
meet_dialog = jup_a12_stalker_give_art_dialog
trade_enable = false
snd_on_use = {=is_wounded} nil, {=actor_enemy} nil, {=has_enemy} meet_use_no_fight, {=actor_has_weapon} meet_use_no_weapon
use = {=is_wounded} false, {=actor_enemy} false, {=has_enemy} false, {=actor_has_weapon} false, true
[walker@cover_walk_to_position]
path_walk = cover_to_position_walk
path_look = cover_to_position_look
def_state_moving = assault
on_signal = path_end | walker@cover_walk_on_position %+jup_a12_merc_cover_to_position =play_sound(jup_a12_merc_cover_us) +jup_a12_bandit_guard_can_be_easily_killed%
on_info = {+jup_a12_merc_cover_to_position} walker@cover_walk_on_position
team = jup_a12_mercs
meet = no_meet
combat_ignore_condition = {=check_enemy_smart(jup_a12)} true, false
gather_items_enabled = false
corpse_detection_enabled = false
wounded = wounded@no_wound
[walker@cover_walk_on_position]
path_walk = cover_on_position_walk
path_look = cover_on_position_look
def_state_moving = sneak_run
on_signal = path_end | %+jup_a12_merc_cover_on_position =play_sound(jup_a12_merc_ready)%
on_info = {+jup_a12_merc_cover_on_position} remark@cover_attack_guard
team = jup_a12_mercs2
meet = no_meet
combat_ignore_condition = {=check_enemy_smart(jup_a12)} true, false
gather_items_enabled = false
corpse_detection_enabled = false
wounded = wounded@no_wound
[remark@cover_attack_guard]
anim = threat_fire
on_game_timer = 100 | %+jup_a12_bandit_guard_killed%
target = story | jup_a12_bandit_guard
on_info = {+jup_a12_merc_attack_started} %=play_sound(jup_a12_merc_attack_started)%
combat_ignore_cond = true
meet = no_meet
gather_items_enabled = false
corpse_detection_enabled = false
wounded = wounded@no_wound
[logic@jup_a12_merc_cover_attack]
active = camper@cover_attack_containers
post_combat_time = 0, 0
suitable = {=check_npc_name(jup_a12_merc_cover) +jup_a12_merc_attack_started} true
prior = 200
[camper@cover_attack_containers]
path_walk = merc_cover_attack_containers_walk
path_look = merc_cover_attack_containers_look
def_state_moving = assault_fire
def_state_moving_fire = assault_fire
no_retreat = true
on_signal = path_end | walker@cover_walk_to_hangar %+jup_a12_merc_cover_attacked_containers%
on_info = {+jup_a12_merc_cover_attacked_containers} walker@cover_walk_to_hangar
on_info2 = {+jup_a12_merc_attack_started -jup_a12_merc_attack_started_sound} %+jup_a12_merc_attack_started_sound =play_sound(jup_a12_merc_attack_started)%
meet = no_meet
gather_items_enabled = false
corpse_detection_enabled = false
wounded = wounded@no_wound
[walker@cover_walk_to_hangar]
path_walk = merc_cover_walk_to_hangar_walk
path_look = merc_cover_walk_to_hangar_look
on_actor_dist_ge_nvis = 150 | %+jup_a12_mercs_done%
on_info = {+jup_a12_mercs_done} walker@cover_merc_kamp_after
meet = meet@merc_hangar_meet
gather_items_enabled = false
corpse_detection_enabled = false
wounded = wounded@no_wound
def_state_moving = assault
[meet@merc_hangar_meet]
meet_dialog = jup_a12_merc_done_dialog
trade_enable = false
snd_on_use = {=is_wounded} nil, {=actor_enemy} nil, {=has_enemy} meet_use_no_fight, {=actor_has_weapon} meet_use_no_weapon
use = {=is_wounded} false, {=actor_enemy} false, {=has_enemy} false, {=actor_has_weapon} false, true
[walker@cover_merc_kamp_after]
path_walk = merc_kamp_walker_walk
path_look = merc_kamp_walker_look
def_state_moving = assault
meet = no_meet
wounded = wounded@no_wound
[logic@jup_a12_merc_left]
active = walker@merc_left_start
post_combat_time = 0, 0
suitable = {=target_squad_name(jup_a12_merc_stalker_squad) !check_npc_name(jup_a12_merc_cover) -jup_a12_merc_attack_started} true
prior = 200
[walker@merc_left_start]
path_walk = kamp_walker_1_walk
path_look = kamp_walker_look
def_state_moving = assault
on_info = {+jup_a12_mercs_go_to_positions} walker@left_walk_to_position
meet = no_meet
combat_ignore_condition = {=check_enemy_smart(jup_a12)} true, {!actor_enemy =dist_to_actor_ge(50)} true, false
gather_items_enabled = false
corpse_detection_enabled = false
wounded = wounded@no_wound
[walker@left_walk_to_position]
path_walk = left_to_position_walk
path_look = left_to_position_look
def_state_moving = assault
on_signal = path_end | walker@left_walk_on_position %+jup_a12_merc_left_to_position +jup_a12_bandit_guard_can_be_easily_killed%
on_info = {+jup_a12_merc_left_to_position} walker@left_walk_on_position
team = jup_a12_mercs
meet = no_meet
combat_ignore_condition = {=check_enemy_smart(jup_a12)} true, false
gather_items_enabled = false
corpse_detection_enabled = false
wounded = wounded@no_wound
[walker@left_walk_on_position]
path_walk = left_on_position_walk
path_look = left_on_position_look
def_state_moving = sneak_run
on_signal = on_pos | %=play_sound(jup_a12_merc_ready)%
on_info = {+jup_a12_merc_attack_started} %=play_sound(jup_a12_merc_attack_started)%
team = jup_a12_mercs2
meet = no_meet
combat_ignore_condition = {=check_enemy_smart(jup_a12)} true, false
gather_items_enabled = false
corpse_detection_enabled = false
wounded = wounded@no_wound
[logic@jup_a12_merc_left_attack]
active = camper@left_attack_containers
post_combat_time = 0, 0
suitable = {=target_squad_name(jup_a12_merc_stalker_squad) !check_npc_name(jup_a12_merc_cover) +jup_a12_merc_attack_started} true
prior = 200
[camper@left_attack_containers]
path_walk = merc_left_attack_containers_walk
path_look = merc_left_attack_containers_look
def_state_moving = assault_fire
def_state_moving_fire = assault_fire
no_retreat = true
on_signal = path_end | walker@left_walk_to_hangar %+jup_a12_merc_left_attacked_containers%
on_info = {+jup_a12_merc_left_attacked_containers} walker@left_walk_to_hangar
meet = no_meet
gather_items_enabled = false
corpse_detection_enabled = false
wounded = wounded@no_wound
[walker@left_walk_to_hangar]
path_walk = merc_left_walk_to_hangar_walk
path_look = merc_left_walk_to_hangar_look
on_actor_dist_ge_nvis = 150 | %+jup_a12_mercs_done%
on_info = {+jup_a12_mercs_done} walker@left_merc_kamp_after
meet = meet@merc_hangar_meet
gather_items_enabled = false
corpse_detection_enabled = false
wounded = wounded@no_wound
def_state_moving = assault
[walker@left_merc_kamp_after]
path_walk = merc_kamp_walker_1_walk
path_look = merc_kamp_walker_look
def_state_moving = assault
meet = no_meet
wounded = wounded@no_wound
[logic@jup_a12_merc_right]
active = walker@merc_right_start
post_combat_time = 0, 0
suitable = {=target_squad_name(jup_a12_merc_stalker_squad) !check_npc_name(jup_a12_merc_cover) -jup_a12_merc_attack_started} true
prior = 200
[walker@merc_right_start]
path_walk = kamp_walker_2_walk
path_look = kamp_walker_look
def_state_moving = assault
on_info = {+jup_a12_mercs_go_to_positions} walker@right_walk_to_position
meet = no_meet
combat_ignore_condition = {=check_enemy_smart(jup_a12)} true, {!actor_enemy =dist_to_actor_ge(50)} true, false
gather_items_enabled = false
corpse_detection_enabled = false
wounded = wounded@no_wound
[walker@right_walk_to_position]
path_walk = right_to_position_walk
path_look = right_to_position_look
def_state_moving = assault
on_signal = path_end | walker@right_walk_on_position %+jup_a12_merc_right_to_position +jup_a12_bandit_guard_can_be_easily_killed%
on_info = {+jup_a12_merc_right_to_position} walker@right_walk_on_position
team = jup_a12_mercs
meet = no_meet
combat_ignore_condition = {=check_enemy_smart(jup_a12)} true, false
gather_items_enabled = false
corpse_detection_enabled = false
wounded = wounded@no_wound
[walker@right_walk_on_position]
path_walk = right_on_position_walk
path_look = right_on_position_look
def_state_moving = sneak_run
on_signal = on_pos | %=play_sound(jup_a12_merc_ready)%
on_info = {+jup_a12_merc_attack_started} %=play_sound(jup_a12_merc_attack_started)%
team = jup_a12_mercs2
meet = no_meet
combat_ignore_condition = {=check_enemy_smart(jup_a12)} true, false
gather_items_enabled = false
corpse_detection_enabled = false
wounded = wounded@no_wound
[logic@jup_a12_merc_right_attack]
active = camper@right_attack_containers
post_combat_time = 0, 0
suitable = {=target_squad_name(jup_a12_merc_stalker_squad) !check_npc_name(jup_a12_merc_cover) +jup_a12_merc_attack_started} true
prior = 200
[camper@right_attack_containers]
path_walk = merc_right_attack_containers_walk
path_look = merc_right_attack_containers_look
def_state_moving = assault_fire
def_state_moving_fire = assault_fire
no_retreat = true
on_signal = path_end | %+jup_a12_merc_right_attacked_containers%
on_info = {+jup_a12_merc_right_attacked_containers} walker@right_walk_to_hangar
meet = no_meet
gather_items_enabled = false
corpse_detection_enabled = false
wounded = wounded@no_wound
[walker@right_walk_to_hangar]
path_walk = merc_right_walk_to_hangar_walk
path_look = merc_right_walk_to_hangar_look
on_actor_dist_ge_nvis = 150 | %+jup_a12_mercs_done%
on_info = {+jup_a12_mercs_done} walker@right_merc_kamp_after
meet = meet@merc_hangar_meet
gather_items_enabled = false
corpse_detection_enabled = false
wounded = wounded@no_wound
def_state_moving = assault
[walker@right_merc_kamp_after]
path_walk = merc_kamp_walker_2_walk
path_look = merc_kamp_walker_look
def_state_moving = assault
meet = no_meet
wounded = wounded@no_wound

View file

@ -0,0 +1,301 @@
[logic@walker_1]
active = walker@walker_1
suitable = {-jup_a12_actor_enemy_to_bandits} true
prior = 65
[logic@walker_2]
active = walker@walker_2
suitable = {-jup_a12_actor_enemy_to_bandits} true
prior = 65
[logic@walker_3]
active = walker@walker_3
suitable = {-jup_a12_actor_enemy_to_bandits} true
prior = 65
[logic@walker_4]
active = walker@walker_4
suitable = {-jup_a12_actor_enemy_to_bandits} true
prior = 65
[logic@walker_5]
active = walker@walker_5
suitable = {-jup_a12_actor_enemy_to_bandits} true
prior = 65
[logic@walker_6]
active = walker@walker_6
suitable = {-jup_a12_actor_enemy_to_bandits} true
prior = 65
[logic@guard_1]
active = camper@guard_1
suitable = {-jup_a12_actor_enemy_to_bandits} true
prior = 75
[logic@guard_2]
active = camper@guard_2
suitable = {-jup_a12_actor_enemy_to_bandits} true
prior = 75
[logic@guard_3]
active = camper@guard_3
suitable = {-jup_a12_actor_enemy_to_bandits} true
prior = 75
[logic@guard_4]
active = camper@guard_4
suitable = {-jup_a12_actor_enemy_to_bandits} true
prior = 75
[logic@guard_5]
active = camper@guard_5
suitable = {-jup_a12_actor_enemy_to_bandits} true
prior = 90
[logic@guard_6]
active = camper@guard_6
suitable = {-jup_a12_actor_enemy_to_bandits} true
prior = 90
[walker@walker_1]
path_walk = walker_1_walk
combat_ignore_cond = {=check_enemy_name(jup_a12_stalker_prisoner) -jup_a12_actor_enemy_to_bandits} true, {-jup_a12_merc_attack_started =check_enemy_smart(jup_a12_merc)} true, false
on_info = {=actor_enemy} camper@walker_1_wait, {+jup_a12_actor_enemy_to_bandits} camper@walker_1_wait
[camper@walker_1_wait]
path_walk = walker_1_camper
path_look = stalker_prisoner_battle_look
def_state_standing = hide_na
radius = 0
on_info = {!actor_enemy} walker@walker_1
[walker@walker_2]
path_walk = walker_2_walk
combat_ignore_cond = {=check_enemy_name(jup_a12_stalker_prisoner) -jup_a12_actor_enemy_to_bandits} true, {-jup_a12_merc_attack_started =check_enemy_smart(jup_a12_merc)} true, false
on_info = {=actor_enemy} camper@walker_2_wait, {+jup_a12_actor_enemy_to_bandits} camper@walker_2_wait
[camper@walker_2_wait]
path_walk = walker_2_camper
path_look = stalker_prisoner_battle_look
def_state_standing = hide_na
radius = 0
on_info = {!actor_enemy} walker@walker_2
[walker@walker_3]
path_walk = walker_3_walk
combat_ignore_cond = {=check_enemy_name(jup_a12_stalker_prisoner) -jup_a12_actor_enemy_to_bandits} true, {-jup_a12_merc_attack_started =check_enemy_smart(jup_a12_merc)} true, false
[walker@walker_4]
path_walk = walker_4_walk
combat_ignore_cond = {=check_enemy_name(jup_a12_stalker_prisoner) -jup_a12_actor_enemy_to_bandits} true, {-jup_a12_merc_attack_started =check_enemy_smart(jup_a12_merc)} true, false
[walker@walker_5]
path_walk = walker_5_walk
combat_ignore_cond = {=check_enemy_name(jup_a12_stalker_prisoner) -jup_a12_actor_enemy_to_bandits} true, {-jup_a12_merc_attack_started =check_enemy_smart(jup_a12_merc)} true, false
[walker@walker_6]
path_walk = walker_6_walk
combat_ignore_cond = {=check_enemy_name(jup_a12_stalker_prisoner) -jup_a12_actor_enemy_to_bandits} true, {-jup_a12_merc_attack_started =check_enemy_smart(jup_a12_merc)} true, false
[camper@guard_1]
path_walk = guard_1_walk
path_look = guard_1_look
combat_ignore_cond = {=check_enemy_name(jup_a12_stalker_prisoner) -jup_a12_actor_enemy_to_bandits} true, {-jup_a12_merc_attack_started =check_enemy_smart(jup_a12_merc)} true, false
meet = meet@guard_base
on_info = {=dist_to_actor_le(15) +jup_a12_actor_paid_to_cashier -jup_a12_bandit_taunt} %+jup_a12_bandit_taunt =play_sound(jup_a12_bandit_say_jump)%
on_actor_in_zone = jup_a12_sr_containers_kampzone | {-jup_a12_actor_has_pass_to_containers} %+jup_a12_actor_enemy_to_bandits%
on_info2 = {-jup_a12_actor_has_pass_to_containers -jup_a12_bandits_warning_actor =dist_to_actor_le(22)} %+jup_a12_bandits_warning_actor =play_sound(jup_a12_bandits_warning_actor)%
[meet@guard_base]
close_distance = 15
close_anim = {+jup_a12_actor_has_pass_to_containers} guard_na, threat_na
close_victim = actor
close_snd_hello = nil
close_snd_bye = nil
far_distance = 45
far_anim = {+jup_a12_actor_has_pass_to_containers} guard, threat
far_victim = actor
far_snd = nil
snd_on_use = nil
use = {!actor_enemy !actor_has_weapon} true
meet_dialog = {+jup_a12_actor_has_pass_to_containers} jup_a12_bandit_guard_visited, jup_a12_bandit_guard_start
trade_enable = false
[camper@guard_2]
path_walk = guard_2_walk
path_look = guard_2_look
combat_ignore_cond = {=check_enemy_name(jup_a12_stalker_prisoner) -jup_a12_actor_enemy_to_bandits} true, {-jup_a12_merc_attack_started =check_enemy_smart(jup_a12_merc)} true, false
meet = meet@guard_base
on_info = {=dist_to_actor_le(15) +jup_a12_actor_paid_to_cashier -jup_a12_bandit_taunt} %+jup_a12_bandit_taunt =play_sound(jup_a12_bandit_say_jump)%
on_actor_in_zone = jup_a12_sr_containers_kampzone | {-jup_a12_actor_has_pass_to_containers} %+jup_a12_actor_enemy_to_bandits%
on_info2 = {-jup_a12_actor_has_pass_to_containers -jup_a12_bandits_warning_actor =dist_to_actor_le(22)} %+jup_a12_bandits_warning_actor =play_sound(jup_a12_bandits_warning_actor)%
[camper@guard_3]
path_walk = guard_3_walk
path_look = guard_3_look
combat_ignore_cond = {=check_enemy_name(jup_a12_stalker_prisoner) -jup_a12_actor_enemy_to_bandits} true, {-jup_a12_merc_attack_started =check_enemy_smart(jup_a12_merc)} true, false
meet = meet@guard_base
on_info = {=dist_to_actor_le(15) +jup_a12_actor_paid_to_cashier -jup_a12_bandit_taunt} %+jup_a12_bandit_taunt =play_sound(jup_a12_bandit_say_jump)%
on_actor_in_zone = jup_a12_sr_containers_kampzone | {-jup_a12_actor_has_pass_to_containers} %+jup_a12_actor_enemy_to_bandits%
on_info2 = {-jup_a12_actor_has_pass_to_containers -jup_a12_bandits_warning_actor =dist_to_actor_le(22)} %+jup_a12_bandits_warning_actor =play_sound(jup_a12_bandits_warning_actor)%
[camper@guard_4]
path_walk = guard_4_walk
path_look = guard_4_look
combat_ignore_cond = {=check_enemy_name(jup_a12_stalker_prisoner) -jup_a12_actor_enemy_to_bandits} true, {-jup_a12_merc_attack_started =check_enemy_smart(jup_a12_merc)} true, false
meet = meet@guard_base
on_info = {=dist_to_actor_le(15) +jup_a12_actor_paid_to_cashier -jup_a12_bandit_taunt} %+jup_a12_bandit_taunt =play_sound(jup_a12_bandit_say_jump)%
on_actor_in_zone = jup_a12_sr_containers_kampzone | {-jup_a12_actor_has_pass_to_containers} %+jup_a12_actor_enemy_to_bandits%
on_info2 = {-jup_a12_actor_has_pass_to_containers -jup_a12_bandits_warning_actor =dist_to_actor_le(22)} %+jup_a12_bandits_warning_actor =play_sound(jup_a12_bandits_warning_actor)%
[camper@guard_5]
path_walk = guard_5_walk
path_look = guard_5_look
combat_ignore_cond = {=check_enemy_name(jup_a12_stalker_prisoner)} true, {!actor_in_zone(jup_a12_sr_prisoner_guards)} true, {-jup_a12_merc_attack_started =check_enemy_smart(jup_a12_merc)} true, false
meet = meet@guard_base
on_info = {=dist_to_actor_le(15) +jup_a12_actor_paid_to_cashier -jup_a12_bandit_taunt} %+jup_a12_bandit_taunt =play_sound(jup_a12_bandit_say_jump)%
on_actor_in_zone = jup_a12_sr_containers_kampzone | {-jup_a12_actor_has_pass_to_containers} %+jup_a12_actor_enemy_to_bandits%
on_info2 = {-jup_a12_actor_has_pass_to_containers -jup_a12_bandits_warning_actor =dist_to_actor_le(22)} %+jup_a12_bandits_warning_actor =play_sound(jup_a12_bandits_warning_actor)%
[camper@guard_6]
path_walk = guard_6_walk
path_look = guard_6_look
combat_ignore_cond = {=check_enemy_name(jup_a12_stalker_prisoner)} true, {!actor_in_zone(jup_a12_sr_prisoner_guards)} true, {-jup_a12_merc_attack_started =check_enemy_smart(jup_a12_merc)} true, false
meet = meet@guard_base
on_info = {=dist_to_actor_le(15) +jup_a12_actor_paid_to_cashier -jup_a12_bandit_taunt} %+jup_a12_bandit_taunt =play_sound(jup_a12_bandit_say_jump)%
on_actor_in_zone = jup_a12_sr_containers_kampzone | {-jup_a12_actor_has_pass_to_containers} %+jup_a12_actor_enemy_to_bandits%
on_info2 = {-jup_a12_actor_has_pass_to_containers -jup_a12_bandits_warning_actor =dist_to_actor_le(22)} %+jup_a12_bandits_warning_actor =play_sound(jup_a12_bandits_warning_actor)%
[walker@jup_a12_surge_def]
;path_walk = surge_hide_1_walk
;path_look = surge_hide_1_look
combat_ignore_cond = {=check_enemy_name(jup_a12_stalker_prisoner)} true, {-jup_a12_actor_enemy_to_bandits} true, false
on_info = {-jup_a12_actor_enemy_to_bandits -jup_a12_actor_has_pass_to_containers =actor_in_zone(jup_a12_sr_bandit_bodyguard)} %+jup_a12_actor_enemy_to_bandits%
def_state_standing = sit
def_state_moving = assault
[logic@jup_a12_surge_def]
;active = walker@jup_a12_surge_work_1
suitable = {=check_npc_name(bandit) =surge_started} true
prior = 100
[logic@jup_a12_surge_work_1]:logic@jup_a12_surge_def
active = walker@jup_a12_surge_work_1
[logic@jup_a12_surge_work_2]:logic@jup_a12_surge_def
active = walker@jup_a12_surge_work_2
[logic@jup_a12_surge_work_3]:logic@jup_a12_surge_def
active = walker@jup_a12_surge_work_3
[logic@jup_a12_surge_work_4]:logic@jup_a12_surge_def
active = walker@jup_a12_surge_work_4
[logic@jup_a12_surge_work_5]:logic@jup_a12_surge_def
active = walker@jup_a12_surge_work_5
[logic@jup_a12_surge_work_6]:logic@jup_a12_surge_def
active = walker@jup_a12_surge_work_6
[logic@jup_a12_surge_work_7]:logic@jup_a12_surge_def
active = walker@jup_a12_surge_work_7
[logic@jup_a12_surge_work_8]:logic@jup_a12_surge_def
active = walker@jup_a12_surge_work_8
[logic@jup_a12_surge_work_9]:logic@jup_a12_surge_def
active = walker@jup_a12_surge_work_9
[logic@jup_a12_surge_work_10]:logic@jup_a12_surge_def
active = walker@jup_a12_surge_work_10
[logic@jup_a12_surge_work_11]:logic@jup_a12_surge_def
active = walker@jup_a12_surge_work_11
[logic@jup_a12_surge_work_12]:logic@jup_a12_surge_def
active = walker@jup_a12_surge_work_12
[logic@jup_a12_surge_work_13]:logic@jup_a12_surge_def
active = walker@jup_a12_surge_work_13
[logic@jup_a12_surge_work_14]:logic@jup_a12_surge_def
active = walker@jup_a12_surge_work_14
[walker@jup_a12_surge_work_1]:walker@jup_a12_surge_def
path_walk = surge_hide_1_walk
path_look = surge_hide_1_look
out_restr = jup_a12_sr_threat_prisoner_zone
[walker@jup_a12_surge_work_2]:walker@jup_a12_surge_def
path_walk = surge_hide_2_walk
path_look = surge_hide_1_look
out_restr = jup_a12_sr_threat_prisoner_zone
[walker@jup_a12_surge_work_3]:walker@jup_a12_surge_def
path_walk = surge_hide_3_walk
path_look = surge_hide_1_look
out_restr = jup_a12_sr_threat_prisoner_zone
[walker@jup_a12_surge_work_4]:walker@jup_a12_surge_def
path_walk = surge_hide_4_walk
path_look = surge_hide_1_look
out_restr = jup_a12_sr_threat_prisoner_zone
[walker@jup_a12_surge_work_5]:walker@jup_a12_surge_def
path_walk = surge_hide_5_walk
path_look = surge_hide_5_look
out_restr = jup_a12_sr_threat_prisoner_zone
[walker@jup_a12_surge_work_6]:walker@jup_a12_surge_def
path_walk = surge_hide_6_walk
path_look = surge_hide_5_look
out_restr = jup_a12_sr_threat_prisoner_zone
[walker@jup_a12_surge_work_7]:walker@jup_a12_surge_def
path_walk = surge_hide_7_walk
path_look = surge_hide_5_look
out_restr = jup_a12_sr_threat_prisoner_zone
[walker@jup_a12_surge_work_8]:walker@jup_a12_surge_def
path_walk = surge_hide_8_walk
path_look = surge_hide_5_look
out_restr = jup_a12_sr_threat_prisoner_zone
[walker@jup_a12_surge_work_9]:walker@jup_a12_surge_def
path_walk = surge_hide_9_walk
path_look = surge_hide_9_look
[walker@jup_a12_surge_work_10]:walker@jup_a12_surge_def
path_walk = surge_hide_10_walk
path_look = surge_hide_9_look
[walker@jup_a12_surge_work_11]:walker@jup_a12_surge_def
path_walk = surge_hide_11_walk
path_look = surge_hide_9_look
out_restr = jup_a12_sr_threat_prisoner_zone
[walker@jup_a12_surge_work_12]:walker@jup_a12_surge_def
path_walk = surge_hide_12_walk
path_look = surge_hide_12_look
out_restr = jup_a12_sr_threat_prisoner_zone
[walker@jup_a12_surge_work_13]:walker@jup_a12_surge_def
path_walk = surge_hide_13_walk
path_look = surge_hide_13_look
[walker@jup_a12_surge_work_14]:walker@jup_a12_surge_def
path_walk = surge_hide_14_walk
path_look = surge_hide_13_look

View file

@ -0,0 +1,32 @@
[logic]
active = sr_idle@warning
[sr_idle@warning]
on_info = {+jup_a12_bandits_warning_actor} sr_idle@timer
on_info2 = {+jup_a12_actor_has_pass_to_containers} sr_idle@wait
on_info3 = {+jup_a12_actor_enemy_to_bandits} sr_idle@wait
[sr_idle@timer]
on_game_timer = 100 | sr_idle@warning %-jup_a12_bandits_warning_actor%
on_info = {+jup_a12_actor_has_pass_to_containers} sr_idle@wait
on_info2 = {+jup_a12_actor_enemy_to_bandits} sr_idle@wait
[sr_idle@wait]
on_info = {+jup_a12_actor_did_not_pay_to_cashier} %+jup_a12_actor_enemy_to_bandits%
on_info2 = {+jup_a12_actor_paid_to_cashier} sr_idle@end
on_info3 = {=is_squad_enemy_to_actor(jup_a12_bandit_cashier_squad)} %+jup_a12_actor_enemy_to_bandits%
on_info4 = {+jup_a12_actor_enemy_to_bandits} sr_idle@after %=set_squad_enemy_to_actor(jup_a12_bandit_guard_squad) =set_squad_enemy_to_actor(jup_a12_bandit_chief_squad) =set_squad_enemy_to_actor(jup_a12_bandit_cashier_squad) =set_squad_enemy_to_actor(jup_a12_bandit_sim_squad)%
on_info5 = {+jup_a12_stalkers_on_base} sr_idle@nil, {+jup_a12_stalker_prisoner_dead} sr_idle@nil
on_info6 = {-jup_a12_gave_artefact_for_hostage -jup_a12_stalker_prisoner_dead +jup_a12_stalker_prisoner_free !talking} %+jup_a12_gave_artefact_for_hostage =scenario_autosave(st_save_jup_a12_gave_artefact_for_hostage)%
[sr_idle@end]
on_info = {+jup_a12_actor_enemy_to_bandits} sr_idle@after %=set_squad_enemy_to_actor(jup_a12_bandit_guard_squad) =set_squad_enemy_to_actor(jup_a12_bandit_chief_squad) =set_squad_enemy_to_actor(jup_a12_bandit_cashier_squad) =set_squad_enemy_to_actor(jup_a12_bandit_sim_squad)%
on_info2 = {-jup_a12_actor_enemy_to_bandits =is_squad_enemy_to_actor(jup_a12_bandit_cashier_squad)} %+jup_a12_actor_enemy_to_bandits%
on_info3 = {+jup_a12_stalkers_on_base} sr_idle@nil, {+jup_a12_stalker_prisoner_dead} sr_idle@nil
[sr_idle@after]
on_info = {+jup_a12_actor_enemy_to_bandits +jup_a12_actor_choose_ransom -jup_a12_bandit_payment_started} %+jup_a12_actor_switched_from_ransom_to_power -jup_a12_actor_choose_self_or_ransom -jup_a12_actor_choose_ransom +jup_a12_actor_choose_power +jup_a12_actor_is_ready%
on_info2 = {-jup_a12_actor_is_ready +jup_a12_stalker_prisoner_free_dialog_done} %+jup_a12_actor_is_ready%
on_info3 = {+jup_a12_stalkers_on_base} sr_idle@nil, {+jup_a12_stalker_prisoner_dead} sr_idle@nil
[sr_idle@nil]

View file

@ -0,0 +1,11 @@
[logic]
active = sr_idle@wait
[sr_idle@wait]
on_info = {+jup_a12_mercs_go_to_positions} sr_light@off
[sr_light@off]
light_on = false
on_info = {+pri_a12_stalker_prisoner_free} sr_idle@nil
[sr_idle@nil]

View file

@ -0,0 +1,19 @@
[logic]
active = sr_idle@wait_for_task
[sr_idle@wait_for_task]
on_info = {+jup_a12_mercs_go_to_positions +jup_a12_actor_choose_power -jup_a12_met_with_liberators} %+jup_a12_met_with_liberators =scenario_autosave(st_save_jup_a12_met_with_liberators)%
on_info2 = {+jup_a12_mercs_go_to_positions +jup_a12_actor_choose_power +jup_a12_met_with_liberators} sr_idle@wait_for_attack_start
on_info3 = {+jup_a12_stalkers_on_base} sr_idle@nil, {+jup_a12_stalker_prisoner_dead} sr_idle@nil
on_info4 = {-jup_a12_mercs_go_to_positions =is_squad_enemy_to_actor(jup_a12_merc_stalker_squad)} %+jup_a12_mercs_go_to_positions%
on_info5 = {-jup_a12_mercs_go_to_positions +jup_a12_mercs_spawned !squad_exist(jup_a12_merc_stalker_squad)} %+jup_a12_mercs_go_to_positions%
[sr_idle@wait_for_attack_start]
on_info = {+jup_a12_bandit_guard_killed} sr_idle@wait_for_attack_end %+jup_a12_merc_attack_started =set_squad_enemy_to_actor(jup_a12_bandit_guard_squad)%
on_info2 = {+jup_a12_actor_enemy_to_bandits} sr_idle@wait_for_attack_end %+jup_a12_merc_attack_started%
[sr_idle@wait_for_attack_end]
on_info = {+jup_a12_mercs_done} sr_idle@nil, {+pri_a12_stalker_prisoner_free} sr_idle@nil
on_info2 = {+jup_a12_merc_attack_started =dist_to_story_obj_ge(jup_a12_stalker_prisoner:225)} sr_idle@nil %+jup_a12_stalker_prisoner_dead%, {+jup_a12_merc_attack_started =dist_to_story_obj_ge(jup_a12_stalker_prisoner:175)} %=play_sound(jup_a12_stalkers_to_actor_came_back)%
[sr_idle@nil]

View file

@ -0,0 +1,17 @@
[logic]
active = sr_idle@wait_for_spawn
[sr_idle@wait_for_spawn]
on_info = {=is_jup_a12_mercs_time +jup_a12_actor_choose_power -pri_a12_stalker_prisoner_free -jup_a12_actor_switched_from_ransom_to_power} sr_idle@spawn, {+pri_a12_stalker_prisoner_free} sr_idle@nil
on_info2 = {-jup_a12_spawn_merc_squad !actor_in_zone(jup_a12_sr_merc_kamp)} %+jup_a12_spawn_merc_squad%
on_info3 = {+jup_a12_spawn_merc_squad =actor_in_zone(jup_a12_sr_merc_kamp)} %-jup_a12_spawn_merc_squad%
[sr_idle@spawn]
on_info = {-jup_a12_spawn_merc_squad !actor_in_zone(jup_a12_sr_merc_kamp)} %+jup_a12_spawn_merc_squad%
on_info2 = {+jup_a12_spawn_merc_squad =actor_in_zone(jup_a12_sr_merc_kamp)} %-jup_a12_spawn_merc_squad =clear_smart_terrain(jup_sim_2) =clear_smart_terrain(jup_sim_11) =clear_smart_terrain(jup_sim_12)%
on_info3 = sr_idle@transfer %=create_squad(jup_a12_merc_stalker_squad:jup_a12_merc) +jup_a12_mercs_spawned%
[sr_idle@transfer]
on_info = {+jup_a12_actor_choose_power +jup_a12_actor_is_ready +jup_a12_merc_cover_in_merc_camp} sr_idle@nil %=relocate_item(af_soul:jup_a12_stalker_assaulter:jup_a12_merc_cover)%
[sr_idle@nil]

View file

@ -0,0 +1,43 @@
[logic]
active = sr_idle@task
[sr_idle@task]
on_info = {-jup_a12_task_given +jup_a12_actor_choose_self -jup_a12_stalker_prisoner_dead} sr_idle@wait %+jup_a12_actor_choose_self_or_ransom +jup_a12_task_given =give_task(jup_a12_free_prisoner)%
on_info2 = {-jup_a12_task_given +jup_a12_actor_choose_power -jup_a12_stalker_prisoner_dead} sr_idle@wait %+jup_a12_task_given =give_task(jup_a12_free_prisoner)%
on_info3 = {-jup_a12_task_given +jup_a12_actor_choose_ransom -jup_a12_stalker_prisoner_dead} sr_idle@wait %+jup_a12_actor_choose_self_or_ransom +jup_a12_task_given =give_task(jup_a12_free_prisoner)%
on_info4 = {-jup_a12_task_given +pri_a12_stalker_prisoner_free -jup_a12_stalker_prisoner_dead} sr_idle@wait %+jup_a12_task_given =give_task(jup_a12_free_prisoner)%
on_info5 = {+jup_a12_stalker_prisoner_dead} sr_idle@remove_prisoner %+jup_a12_stalker_prisoner_dead +pri_a12_stalker_prisoner_free +jup_a12_stalker_prisoner_free%
;on_game_timer = 172800 | {-pri_a12_stalker_prisoner_free} sr_idle@remove_prisoner %+jup_a12_stalker_prisoner_dead +pri_a12_stalker_prisoner_free +jup_a12_stalker_prisoner_free%
[sr_idle@wait]
on_info = {+jup_a12_actor_guided_base} sr_idle@start %-jup_a12_ui%
on_info2 = {+jup_a12_stalker_prisoner_cheats_to_base -jup_a12_stalkers_on_base} sr_idle@start
on_info3 = {+jup_a12_stalkers_on_base} sr_idle@clean_up
;on_game_timer = 172800 | {-pri_a12_stalker_prisoner_free} sr_idle@remove_prisoner %+jup_a12_stalker_prisoner_dead%
[sr_idle@start]
on_info = {+jup_a12_actor_guided_base} sr_idle@teleport %=run_postprocess(fade_in) =disable_ui%
on_info2 = {-jup_a12_actor_guided_base} sr_idle@teleport
[sr_idle@teleport]
on_game_timer = 20 | {+jup_a12_actor_guided_base} sr_idle@switch %=run_postprocess(black:8510:true) =teleport_squad(jup_a12_prisoner:jup_a6_spawn_point)%, {-jup_a12_actor_guided_base} sr_idle@switch %=teleport_squad(jup_a12_prisoner:jup_a6_spawn_point)%
[sr_idle@switch]
on_info = {+jup_a12_actor_guided_base} sr_idle@out %=teleport_actor(jup_actor_arrive_walk:jup_actor_arrive_look) =forward_game_time(2)%
on_info2 = {-jup_a12_actor_guided_base} sr_idle@out
[sr_idle@out]
on_game_timer = 30 | %+jup_a12_ui%
on_info = {+jup_a12_ui +jup_a12_actor_guided_base} sr_idle@clean_up %=stop_postprocess(8510) =enable_ui%
on_info2 = {+jup_a12_stalker_prisoner_cheats_to_base -jup_a12_actor_guided_base} sr_idle@clean_up
[sr_idle@clean_up]
on_info = {+jup_b6_prisoner_employed =dist_to_story_obj_ge(jup_a12_stalker_squad:35)} sr_idle@nil %=remove_squad(jup_b6_stalker_exprisoner_squad) =remove_squad(jup_a12_prisoner) +jup_b6_exprisoner_work_on_sci%
[sr_idle@remove_prisoner]
on_info = {=squad_exist(jup_a12_prisoner)} sr_idle@nil %=remove_squad(jup_a12_prisoner) +jup_a12_task_done%, sr_idle@nil %+jup_a12_task_done%
[sr_idle@nil]
on_info = {+jup_a12_actor_enemy_to_bandits} sr_idle@zero %=set_squad_enemy_to_actor(jup_a12_bandit_guard_squad) =set_squad_enemy_to_actor(jup_a12_bandit_chief_squad) =set_squad_enemy_to_actor(jup_a12_bandit_cashier_squad) =set_squad_enemy_to_actor(jup_a12_bandit_sim_squad)%
[sr_idle@zero]

View file

@ -0,0 +1,80 @@
[logic@jup_a12_stalker_assaulter]
active = animpoint@stand_start
suitable = {=check_npc_name(jup_a12_stalker_assaulter)} true
prior = 200
[animpoint@argue]
cover_name = jup_a6_animp_assaulter
avail_animations = animpoint_stay_table
use_camp = false
on_signal = sound_end | {-jup_a12_stalker_diplomat_argued -jup_a12_stalker_assaulter_argued} %+jup_a12_stalker_assaulter_argued%
on_info = {+jup_a12_stalker_assaulter_1_argue -jup_a12_stalker_assaulter_argued} %=play_sound(jup_a12_stalker_assaulter_1_argue)%
on_info2 = {+jup_a12_stalker_assaulter_2_argue -jup_a12_stalker_assaulter_argued} %=play_sound(jup_a12_stalker_assaulter_2_argue)%
on_info3 = {+jup_a12_stalker_assaulter_3_argue -jup_a12_stalker_assaulter_argued} %=play_sound(jup_a12_stalker_assaulter_3_argue)%
on_info4 = {!actor_in_zone(jup_a12_sr_stalkers_argue)} animpoint@stand_start %-jup_a12_stalker_assaulter_argued -jup_a12_stalker_assaulter_1_argue -jup_a12_stalker_assaulter_2_argue -jup_a12_stalker_assaulter_3_argue%
on_info5 = {+jup_a12_stalker_assaulter_told_story} animpoint@stand_start
on_info6 = {+jup_a12_stalker_diplomat_argued} animpoint@stand_start %-jup_a12_stalker_assaulter_argued -jup_a12_stalker_assaulter_1_argue -jup_a12_stalker_assaulter_2_argue -jup_a12_stalker_assaulter_3_argue%
meet = meet@stand_start_meet
combat_ignore_cond = true
combat_ignore_keep_when_attacked = true
invulnerable = true
out_restr = jup_a6_sr_noweap
gather_items_enabled = false
help_wounded_enabled = false
corpse_detection_enabled = false
[animpoint@stand_start]
cover_name = jup_a6_animp_assaulter
avail_animations = animpoint_stay_table
use_camp = false
meet = meet@stand_start_meet
on_info = {-jup_a12_stalker_assaulter_1_argue -jup_a12_stalker_assaulter_2_argue -jup_a12_stalker_assaulter_3_argue ~33} %+jup_a12_stalker_assaulter_1_argue%
on_info2 = {-jup_a12_stalker_assaulter_1_argue -jup_a12_stalker_assaulter_2_argue -jup_a12_stalker_assaulter_3_argue ~66} %+jup_a12_stalker_assaulter_2_argue%
on_info3 = {-jup_a12_stalker_assaulter_1_argue -jup_a12_stalker_assaulter_2_argue -jup_a12_stalker_assaulter_3_argue} %+jup_a12_stalker_assaulter_3_argue%
on_info4 = {-jup_a12_stalker_assaulter_has_af} %+jup_a12_stalker_assaulter_has_af =give_items(af_gold_fish)%
on_info5 = {+jup_a12_stalker_prisoner_free} animpoint@stand_after
on_game_timer = 130 | {-jup_a12_stalker_assaulter_told_story +jup_b217_welcome_tech_talked =actor_in_zone(jup_a12_sr_stalkers_argue)} animpoint@argue %-jup_a12_stalker_diplomat_argued%
combat_ignore_cond = true
combat_ignore_keep_when_attacked = true
invulnerable = true
out_restr = jup_a6_sr_noweap
gather_items_enabled = false
help_wounded_enabled = false
corpse_detection_enabled = false
[meet@stand_start_meet]
close_snd_hello = nil
close_snd_bye = nil
close_anim = nil
close_victim = nil
far_anim = nil
far_victim = nil
use = {=actor_enemy} false, true
allow_break = false
trade_enable = false
meet_dialog = {-jup_a12_actor_is_ready} jup_a12_stalkers_choose_dialog, {+jup_a12_actor_is_ready} jup_a12_stalker_assaulter_after_scene_dialog
meet_on_talking = false
[animpoint@stand_after]
cover_name = jup_a6_animp_assaulter
use_camp = false
meet = meet@after_meet
combat_ignore_cond = true
combat_ignore_keep_when_attacked = true
out_restr = jup_a6_sr_noweap
gather_items_enabled = false
help_wounded_enabled = false
corpse_detection_enabled = false
[meet@after_meet]
close_snd_hello = nil
close_snd_bye = nil
close_anim = nil
close_victim = nil
far_anim = nil
far_victim = nil
use = {=actor_enemy} false, true
allow_break = false
trade_enable = false
meet_dialog = jup_a12_stalker_assaulter_after_scene_dialog
meet_on_talking = false

View file

@ -0,0 +1,66 @@
[logic@jup_a12_stalker_diplomat]
active = animpoint@stand_start
suitable = {=check_npc_name(jup_a12_stalker_diplomat)} true
prior = 200
[animpoint@argue]
cover_name = jup_a6_animp_diplomat
avail_animations = animpoint_stay_table
use_camp = false
on_signal = sound_end | animpoint@stand_start %-jup_a12_stalker_assaulter_argued +jup_a12_stalker_diplomat_argued%
on_info = {+jup_a12_stalker_assaulter_1_argue} %=play_sound(jup_a12_stalker_diplomat_1_argue)%
on_info2 = {+jup_a12_stalker_assaulter_2_argue} %=play_sound(jup_a12_stalker_diplomat_2_argue)%
on_info3 = {+jup_a12_stalker_assaulter_3_argue} %=play_sound(jup_a12_stalker_diplomat_3_argue)%
on_info4 = {!actor_in_zone(jup_a12_sr_stalkers_argue)} animpoint@stand_start %-jup_a12_stalker_assaulter_argued +jup_a12_stalker_diplomat_argued%
on_info5 = {+jup_a12_stalker_assaulter_told_story} animpoint@stand_start
meet = meet@stand_start_meet
combat_ignore_cond = true
combat_ignore_keep_when_attacked = true
invulnerable = true
out_restr = jup_a6_sr_noweap
gather_items_enabled = false
help_wounded_enabled = false
corpse_detection_enabled = false
[animpoint@stand_start]
cover_name = jup_a6_animp_diplomat
avail_animations = animpoint_stay_table
use_camp = false
on_info = {-jup_a12_stalker_assaulter_told_story +jup_b217_welcome_tech_talked =actor_in_zone(jup_a12_sr_stalkers_argue) +jup_a12_stalker_assaulter_argued} animpoint@argue
on_info2 = {+jup_a12_stalker_prisoner_free} animpoint@stand_after
meet = meet@stand_start_meet
combat_ignore_cond = true
combat_ignore_keep_when_attacked = true
invulnerable = true
out_restr = jup_a6_sr_noweap
gather_items_enabled = false
help_wounded_enabled = false
corpse_detection_enabled = false
[animpoint@stand_after]
cover_name = jup_a6_animp_diplomat
use_camp = false
meet = meet@stand_start_meet
combat_ignore_cond = true
combat_ignore_keep_when_attacked = true
out_restr = jup_a6_sr_noweap
gather_items_enabled = false
help_wounded_enabled = false
corpse_detection_enabled = false
[meet@stand_start_meet]
close_snd_hello = nil
close_snd_bye = nil
close_anim = nil
close_victim = nil
far_anim = nil
far_victim = nil
close_distance = 0
far_distance = 0
allow_break = false
trade_enable = false
snd_on_use = {-jup_a12_stalkers_on_base} jup_a12_stalker_diplomat_no_talk
use = {=actor_enemy} false, {+pri_a12_stalker_prisoner_free} true, {+jup_a12_stalkers_on_base} true, false
meet_dialog = jup_a12_stalker_diplomat_after_scene_dialog
meet_on_talking = false

View file

@ -0,0 +1,370 @@
[wounded@no_wound]
hp_state = 0 | wounded_heavy@help_heavy
hp_state_see = 0 | wounded_heavy@help_heavy
hp_victim = 0 | nil
hp_cover = 0 | false
hp_fight = 0 | false
[logic@jup_a12_stalker_prisoner]
active = walker@stand_prisoner
on_hit = hit
on_death = death
suitable = {=check_npc_name(jup_a12_stalker_prisoner) -jup_a12_stalker_prisoner_free_dialog_done} true
prior = 200
post_combat_time = 0, 0
[walker@stand_prisoner]
path_walk = stalker_prisoner_stand_prisoner_walk
path_look = stalker_prisoner_stand_prisoner_look
combat_ignore_cond = true
combat_ignore_keep_when_attacked = true
meet = no_meet
on_info = {+jup_a12_stalker_prisoner_free} walker@stand_up %-jup_a12_prisoner_invul%, {+jup_a12_bandit_out +jup_a12_actor_choose_power} walker@stand_up %+jup_a12_prisoner_free_with_stalkers -jup_a12_prisoner_invul%, {+jup_a12_bandit_out} walker@stand_up %+jup_a12_stalker_prisoner_free -jup_a12_prisoner_invul%, {+jup_a12_chief_bandit_kill_prisoner} remark@get_killed %-jup_a12_prisoner_invul%, {+jup_a12_stalker_prisoner_dead} %=kill_npc%
on_info2 = {=actor_in_zone(jup_a12_sr_threat_prisoner_zone)} walker@stand_prisoner_true
on_info3 = {!npc_in_zone(jup_a12_sr_threat_prisoner_zone)} %=teleport_npc(jup_a12_stalker_prisoner_stand_prisoner_walk)%
on_info4 = {-jup_a12_prisoner_invul} %+jup_a12_prisoner_invul%
invulnerable = true
gather_items_enabled = false
help_wounded_enabled = false
corpse_detection_enabled = false
out_restr = jup_a12_sr_threat_prisoner_zone
[walker@stand_prisoner_true]
path_walk = stalker_prisoner_stand_prisoner_walk
path_look = stalker_prisoner_stand_prisoner_look
combat_ignore_cond = true
combat_ignore_keep_when_attacked = true
meet = no_meet
on_info = {=quest_npc_enemy_actor(jup_a12_stalker_prisoner)} walker@quick_get_out_of_base %+jup_a12_actor_enemy_to_bandits +jup_a12_stalker_prisoner_says_we_can_run_from_here%
on_info2 = {+jup_a12_stalker_prisoner_free} walker@stand_up, {+jup_a12_bandit_out +jup_a12_actor_choose_power} walker@stand_up %+jup_a12_prisoner_free_with_stalkers%, {+jup_a12_bandit_out} walker@stand_up %+jup_a12_stalker_prisoner_free%, {+jup_a12_chief_bandit_kill_prisoner} remark@get_killed, {+jup_a12_stalker_prisoner_dead} %=kill_npc%
on_info3 = {!actor_in_zone(jup_a12_sr_threat_prisoner_zone)} walker@stand_prisoner
on_info4 = {+jup_a12_prisoner_invul} %-jup_a12_prisoner_invul%
gather_items_enabled = false
help_wounded_enabled = false
corpse_detection_enabled = false
out_restr = jup_a12_sr_threat_prisoner_zone
wounded = wounded@no_wound
[remark@get_killed]
combat_ignore_cond = true
combat_ignore_keep_when_attacked = true
meet = no_meet
on_info = {+jup_a12_bandit_out +jup_a12_actor_choose_power} walker@stand_up %+jup_a12_prisoner_free_with_stalkers%, {+jup_a12_bandit_out} walker@stand_up %+jup_a12_stalker_prisoner_free%
anim = prisoner
target = story | jup_a12_bandit_chief
gather_items_enabled = false
help_wounded_enabled = false
corpse_detection_enabled = false
out_restr = jup_a12_sr_threat_prisoner_zone
wounded = wounded@no_wound
[walker@stand_up]
path_walk = stalker_prisoner_stand_up_walk
path_look = stalker_prisoner_stand_up_look
combat_ignore_cond = {!actor_enemy} true, false
combat_ignore_keep_when_attacked = true
meet = no_meet
on_game_timer = 50 | %+jup_a12_stalker_prisoner_stood_up +pri_a12_stalker_prisoner_free +jup_a12_actor_is_ready%
on_info = {+jup_a12_stalker_prisoner_stood_up +jup_a12_actor_enemy_to_bandits} walker@hide_until_walk_out, {+jup_a12_stalker_prisoner_stood_up -jup_a12_actor_enemy_to_bandits} walker@out_of_prison
gather_items_enabled = false
help_wounded_enabled = false
corpse_detection_enabled = false
out_restr = jup_a12_sr_threat_prisoner_zone
wounded = wounded@no_wound
[walker@hide_until_walk_out]
path_walk = stalker_prisoner_hide_until_walk_out_walk
path_look = stalker_prisoner_hide_until_walk_out_look
on_info = {+jup_a12_stalker_prisoner_hide_end} walker@out_of_containers %+jup_a12_stalker_prisoner_wait_for_dialog =set_squad_goodwill(jup_a12_prisoner:friend)%
on_info2 = {=actor_enemy} walker@quick_get_out_of_base
on_info3 = {=dist_to_actor_ge(120)} %+jup_a12_stalker_prisoner_hide_end%
on_info4 = %=play_sound(jup_a12_stalker_prisoner_thanks_actor)%
combat_ignore_cond = {!actor_enemy} true, false
combat_ignore_keep_when_attacked = true
meet = meet@hide_until_walk_out_meet
def_state_standing = hide_na
help_wounded_enabled = false
out_restr = jup_a12_sr_threat_prisoner_zone
wounded = wounded@no_wound
[meet@hide_until_walk_out_meet]
close_victim = actor
close_anim = nil
meet_dialog = jup_a12_stalker_prisoner_hide_until_walk_out_dialog
trade_enable = false
snd_on_use = nil
close_snd_hello = nil
close_snd_bye = nil
use = {=is_wounded} false, {=actor_enemy} false, true
[walker@out_of_prison]
path_walk = stalker_prisoner_thank_to_actor_walk
path_look = stalker_prisoner_thank_to_actor_look
combat_ignore_cond = {!actor_enemy} true, {-jup_a12_actor_enemy_to_bandits} true, false
combat_ignore_keep_when_attacked = true
meet = no_meet
def_state_moving = run
on_signal = path_end | %+jup_a12_stalker_prisoner_out_of_prison%
on_info = {+jup_a12_stalker_prisoner_out_of_prison} remark@thank_to_actor, {+jup_a12_stalker_prisoner_hit_by_actor} walker@quick_get_out_of_base
gather_items_enabled = false
help_wounded_enabled = false
corpse_detection_enabled = false
wounded = wounded@no_wound
[remark@thank_to_actor]
target = story | actor
on_signal = sound_end | %+jup_a12_stalker_prisoner_wait_for_dialog%
on_info = %=play_sound(jup_a12_stalker_prisoner_thanks_actor)%
on_info2 = {+jup_a12_stalker_prisoner_wait_for_dialog} walker@thank_to_actor
combat_ignore_cond = {!actor_enemy} true, {-jup_a12_actor_enemy_to_bandits} true, false
combat_ignore_keep_when_attacked = true
meet = no_meet
gather_items_enabled = false
help_wounded_enabled = false
corpse_detection_enabled = false
wounded = wounded@no_wound
[walker@thank_to_actor]
path_walk = stalker_prisoner_thank_to_actor_walk
path_look = stalker_prisoner_thank_to_actor_look
combat_ignore_cond = {!actor_enemy} true, {-jup_a12_actor_enemy_to_bandits} true, false
combat_ignore_keep_when_attacked = true
def_state_moving = run
on_game_timer = 300 | %+jup_a12_stalker_prisoner_thanked_actor%
on_info = {+jup_a12_stalker_prisoner_thanked_actor} walker@out_of_hangar %=set_squad_goodwill(jup_a12_prisoner:1000)%, {+jup_a12_stalker_prisoner_hit_by_actor} walker@quick_get_out_of_base, {+jup_a12_actor_did_not_pay_to_cashier} %+jup_a12_stalker_prisoner_thanked_actor +jup_a12_stalker_prisoner_out_of_hangar%
meet = meet@thank_to_actor
gather_items_enabled = false
help_wounded_enabled = false
corpse_detection_enabled = false
wounded = wounded@no_wound
[meet@thank_to_actor]
close_snd_hello = nil
close_snd_bye = nil
close_victim = actor
close_anim = wait_na
meet_dialog = jup_a12_stalker_prisoner_thank_bandits_base_dialog
trade_enable = false
snd_on_use = nil
use = {=is_wounded} false, {=actor_enemy} false, {=has_enemy} false, {=actor_has_weapon} false, true
[walker@out_of_hangar]
path_walk = stalker_prisoner_out_of_hangar_walk
path_look = stalker_prisoner_out_of_hangar_look
combat_ignore_cond = {!actor_enemy} true, {-jup_a12_actor_enemy_to_bandits} true, false
combat_ignore_keep_when_attacked = true
def_state_moving = assault
on_signal = path_end | %+jup_a12_stalker_prisoner_out_of_hangar%
on_info = {+jup_a12_bandit_out} walker@out_of_containers %+jup_a12_stalker_prisoner_out_of_hangar%
on_info2 = {+jup_a12_bandit_cashier_dead} walker@quick_get_out_of_base
on_info3 = {+jup_a12_stalker_prisoner_out_of_hangar +jup_a12_actor_paid_to_cashier} walker@out_of_containers
on_info4 = {+jup_a12_actor_did_not_pay_to_cashier} walker@hide %+jup_a12_stalker_prisoner_out_of_hangar =disable_memory_object%
on_info5 = {+jup_a12_stalker_prisoner_hit_by_actor} walker@quick_get_out_of_base
on_info6 = {+jup_a12_stalker_prisoner_out_of_hangar !is_alive(jup_a12_bandit_cashier)} walker@out_of_containers
meet = no_meet
gather_items_enabled = false
help_wounded_enabled = false
corpse_detection_enabled = false
wounded = wounded@no_wound
[walker@hide]
path_walk = stalker_prisoner_battle_walk
path_look = stalker_prisoner_battle_look
combat_ignore_cond = {!actor_enemy} true, false
combat_ignore_keep_when_attacked = true
def_state_moving = sprint
def_state_standing = hide_na
meet = meet@hide_until_walk_out_meet
out_restr = jup_a12_sr_prisoner_hide
gather_items_enabled = false
help_wounded_enabled = false
corpse_detection_enabled = false
on_info = {+jup_a12_stalker_prisoner_hide_end} walker@out_of_containers %=set_squad_goodwill(jup_a12_prisoner:friend)%
on_info2 = {=actor_enemy} walker@quick_get_out_of_base
on_info3 = {=dist_to_actor_ge(120)} %+jup_a12_stalker_prisoner_hide_end%
on_info4 = {=has_enemy} %=disable_memory_object%
wounded = wounded@no_wound
[walker@quick_get_out_of_base]
path_walk = merc_stalker_prisoner_out_of_containers_walk
path_look = merc_stalker_prisoner_out_of_containers_look
combat_ignore_cond = true
combat_ignore_keep_when_attacked = true
def_state_moving = sprint
on_signal = path_end | %+jup_a12_stalker_prisoner_out_of_containers%
on_info = {+jup_a12_stalker_prisoner_out_of_containers} walker@out_of_containers
;on_info2 = {-jup_a12_stalker_prisoner_says_we_can_run_from_here} %+jup_a12_stalker_prisoner_says_we_can_run_from_here =play_sound(jup_a12_stalker_prisoner_says_we_can_run_from_here)%
on_info3 = {-jup_a12_stalker_prisoner_out_of_containers =npc_in_zone(jup_a12_sr_containers_warnzone)} %+jup_a12_stalker_prisoner_out_of_containers%
meet = no_meet
gather_items_enabled = false
help_wounded_enabled = false
corpse_detection_enabled = false
wounded = wounded@no_wound
[walker@out_of_containers]
path_walk = merc_stalker_prisoner_out_of_containers_walk
path_look = merc_stalker_prisoner_out_of_containers_look
combat_ignore_cond = {!actor_enemy} true, {-jup_a12_actor_enemy_to_bandits} true, false
combat_ignore_keep_when_attacked = true
def_state_moving = assault
on_signal = path_end | %+jup_a12_stalker_prisoner_out_of_containers%
on_info = {-jup_a12_stalker_prisoner_free_dialog_done +jup_a12_stalker_prisoner_hit_by_actor} %+jup_a12_stalker_prisoner_free_dialog_done%
on_info2 = {-jup_a12_stalker_prisoner_free_dialog_done =actor_enemy} %+jup_a12_stalker_prisoner_free_dialog_done%
on_info3 = {-jup_a12_stalker_prisoner_out_of_containers =npc_in_zone(jup_a12_sr_containers_warnzone)} %+jup_a12_stalker_prisoner_out_of_containers%
meet = meet@going_out_of_containers_meet
gather_items_enabled = false
help_wounded_enabled = false
corpse_detection_enabled = false
wounded = wounded@no_wound
[meet@going_out_of_containers_meet]
close_snd_hello = nil
close_snd_bye = nil
close_victim = nil
close_distance = 0
far_distance = 0
meet_dialog = {+jup_a12_stalker_prisoner_out_of_containers} jup_a12_stalker_prisoner_free_dialog, jup_a12_stalker_prisoner_thank_bandits_base_dialog
trade_enable = false
allow_break = false
snd_on_use = nil
use = {=is_wounded} false, {=actor_enemy} false, {=has_enemy} false, {=actor_has_weapon} false, true
[hit]
on_info = {+jup_a12_prisoner_invul}, {-jup_a12_stalker_prisoner_free -jup_a12_prisoner_free_with_stalkers -jup_a12_stalker_prisoner_dead} %+jup_a12_stalker_prisoner_dead =kill_npc%
[death]
on_info = %+jup_a12_stalker_prisoner_dead +pri_a12_stalker_prisoner_free +jup_a12_stalker_prisoner_free%
[logic@jup_a12_prisoner_free]
active = walker@already_out_of_containers
on_hit = hit
on_death = death
suitable = {=check_npc_name(jup_a12_stalker_prisoner)} true
prior = 200
post_combat_time = 0, 0
[walker@already_out_of_containers]
path_walk = stalker_prisoner_out_of_containers_walk
path_look = stalker_prisoner_out_of_containers_look
combat_ignore_cond = {!actor_enemy} true, {-jup_a12_actor_enemy_to_bandits} true, false
combat_ignore_keep_when_attacked = true
def_state_moving = assault
on_signal = path_end | %+jup_a12_stalker_prisoner_out_of_containers%
;on_game_timer = 1200 | %+jup_a12_stalker_prisoner_free_dialog_done%
on_info = {-jup_a12_stalker_prisoner_free_dialog_done +jup_a12_stalker_prisoner_hit_by_actor} %+jup_a12_stalker_prisoner_free_dialog_done%
on_info2 = {-jup_a12_stalker_prisoner_free_dialog_done =actor_enemy} %+jup_a12_stalker_prisoner_free_dialog_done%
on_info3 = {+jup_a12_stalker_prisoner_out_of_containers =dist_to_actor_le(10)} remark@out_of_containers
on_info4 = {+jup_a12_stalker_prisoner_free_dialog_done} walker@get_out_far_away
on_info5 = {-jup_a12_stalker_prisoner_out_of_containers =npc_in_zone(jup_a12_sr_containers_warnzone)} %+jup_a12_stalker_prisoner_out_of_containers%
on_info6 = {-jup_a12_stalker_prisoner_free_dialog_done =dist_to_actor_ge(75)} %+jup_a12_stalker_prisoner_free_dialog_done%
meet = meet@going_out_of_containers_meet
gather_items_enabled = false
help_wounded_enabled = false
corpse_detection_enabled = false
wounded = wounded@no_wound
[remark@out_of_containers]
target = story | actor
on_info = %=play_sound(jup_a12_stalkers_to_actor_meet_on_base)%
on_info2 = {+jup_a12_stalker_prisoner_free_dialog_done} walker@get_out_far_away
on_info3 = {-jup_a12_stalker_prisoner_free_dialog_done =dist_to_actor_ge(75)} %+jup_a12_stalker_prisoner_free_dialog_done%
combat_ignore_cond = {!actor_enemy} true, {-jup_a12_actor_enemy_to_bandits} true, false
combat_ignore_keep_when_attacked = true
meet = meet@out_of_containers_meet
;on_game_timer = 300 | %+jup_a12_stalker_prisoner_free_dialog_done%
gather_items_enabled = false
help_wounded_enabled = false
corpse_detection_enabled = false
wounded = wounded@no_wound
[meet@out_of_containers_meet]
close_snd_hello = nil
close_snd_bye = nil
close_victim = actor
close_anim = wait_na
meet_dialog = {+jup_a12_stalker_prisoner_out_of_containers} jup_a12_stalker_prisoner_free_dialog, jup_a12_stalker_prisoner_thank_bandits_base_dialog
trade_enable = false
allow_break = false
snd_on_use = nil
use = {=is_wounded} false, {=actor_enemy} false, {=has_enemy} false, {=dist_to_actor_le(3) +jup_a12_stalker_prisoner_out_of_containers -jup_a12_stalker_prisoner_free_dialog_done !actor_has_weapon} self, {!actor_enemy =actor_has_weapon} true, true
[walker@get_out_far_away]
path_walk = stalker_prisoner_base_walk
combat_ignore_cond = {!actor_enemy} true, {=check_enemy_smart(jup_a12)} true, false
combat_ignore_keep_when_attacked = true
def_state_moving = assault
on_info = {-jup_a12_stalkers_on_base =npc_in_zone(jup_a6_sr_light)} %+jup_a12_stalkers_on_base +jup_a12_stalker_prisoner_cheats_to_base%
on_info2 = {-jup_a12_stalker_prisoner_cheats_to_base -jup_a12_actor_guided_base =dist_to_actor_ge(100)} %+jup_a12_stalker_prisoner_cheats_to_base%
on_info3 = {!has_enemy =dist_to_actor_le(5)} remark@wait_while_walking
meet = meet@out_of_containers_meet
gather_items_enabled = false
help_wounded_enabled = false
corpse_detection_enabled = false
out_restr = jup_a6_sr_noweap
wounded = wounded@no_wound
[remark@wait_while_walking]
target = story | actor
combat_ignore_cond = {!actor_enemy} true, {-jup_a12_actor_enemy_to_bandits} true, false
combat_ignore_keep_when_attacked = true
meet = meet@out_of_containers_meet
gather_items_enabled = false
help_wounded_enabled = false
corpse_detection_enabled = false
on_info = {=has_enemy} walker@get_out_far_away, {=dist_to_actor_ge(5)} walker@get_out_far_away
wounded = wounded@no_wound
[logic@jup_a12_stalker_prisoner_base]
active = animpoint@go_to_base_done
on_hit = hit
on_death = death
suitable = {=check_npc_name(jup_a12_stalker_prisoner) +jup_a12_stalkers_on_base} true, {=check_npc_name(jup_a12_stalker_prisoner) +jup_a12_stalker_prisoner_cheats_to_base} true
prior = 200
post_combat_time = 0, 0
[animpoint@go_to_base_done]
reach_movement = assault
cover_name = jup_a6_animp_prisoner
use_camp = false
meet = meet@base_meet
on_info = {-jup_a12_stalkers_on_base =npc_in_zone(jup_a6_sr_light)} %+jup_a12_stalkers_on_base +jup_a12_stalker_prisoner_cheats_to_base%
on_info2 = {-jup_a12_stalker_prisoner_cheats_to_base -jup_a12_actor_guided_base =dist_to_actor_ge(100)} %+jup_a12_stalker_prisoner_cheats_to_base%
combat_ignore_cond = true
combat_ignore_keep_when_attacked = true
invulnerable = true
out_restr = jup_a6_sr_noweap
gather_items_enabled = false
help_wounded_enabled = false
corpse_detection_enabled = false
wounded = wounded@no_wound
[meet@base_meet]
close_snd_hello = nil
close_snd_bye = nil
close_anim = nil
close_victim = nil
far_anim = nil
far_victim = nil
close_distance = 0
far_distance = 0
use = {=actor_enemy} false, true
allow_break = false
trade_enable = false
meet_dialog = jup_a12_stalker_prisoner_free_dialog
meet_on_talking = false

View file

@ -0,0 +1,90 @@
[logic@jup_a6_duty_leader]
suitable = {=check_npc_name(jup_a6_duty_leader)} true
prior = 200
active = walker@duty_leader
[animpoint@duty_leader]
cover_name = jup_a6_animpint_duty_leader
avail_animations = animpoint_sit_normal_no_rnd
use_camp = false
meet = meet@stand_base
on_info = {+jup_b207_duty_knows_about_depot -jup_b207_ui} remark@jup_b207_radio_talk
on_game_timer = 900 | walker@duty_leader
combat_ignore_cond = true
combat_ignore_keep_when_attacked = true
invulnerable = true
out_restr = jup_a6_sr_noweap
corpse_detection_enabled = false
gather_items_enabled = false
help_wounded_enabled = false
[walker@duty_leader]
path_walk = duty_leader_walk
path_look = duty_leader_look
def_state_standing = wait_na
def_state_moving = walk_noweap
meet = meet@walker
on_info = {+jup_b207_duty_knows_about_depot -jup_b207_ui} remark@jup_b207_radio_talk
on_game_timer = 900 | animpoint@duty_leader
combat_ignore_cond = true
combat_ignore_keep_when_attacked = true
invulnerable = true
out_restr = jup_a6_sr_noweap
corpse_detection_enabled = false
gather_items_enabled = false
help_wounded_enabled = false
use_camp = false
[meet@stand_base]
close_snd_hello = jup_a6_duty_leader_greeting
close_snd_bye = jup_a6_duty_leader_farewell
close_anim = nil
close_victim = nil
far_anim = nil
far_victim = nil
close_distance = 0
far_distance = 0
close_snd_distance = 3
use = {=actor_enemy} false, true
allow_break = false
trade_enable = false
meet_on_talking = false
[meet@walker]:meet@stand_base
close_anim = wait_na
close_victim = actor
close_distance = 3
[remark@jup_b207_radio_talk]
target = story | actor
anim = wait_rac
on_signal = anim_end | %=play_sound(jup_b207_duty_leader_about_depot)%
on_signal2 = sound_end | remark@jup_b207_radio_talk_done
meet = no_meet
;combat_ignore_cond = {=check_enemy_smart(jup_a6)} true
combat_ignore_cond = true
combat_ignore_keep_when_attacked = true
invulnerable = true
out_restr = jup_a6_sr_noweap
gather_items_enabled = false
help_wounded_enabled = false
corpse_detection_enabled = false
[remark@jup_b207_radio_talk_done]
target = story | actor
anim = wait_na
on_signal = anim_end | %=play_sound(jup_b207_duty_leader_about_depot_after)%
on_signal2 = sound_end | %+jup_b207_ui -jup_b207_lock_door%
on_info = {+jup_b207_ui} animpoint@duty_leader
meet = no_meet
;combat_ignore_cond = {=check_enemy_smart(jup_a6)} true
combat_ignore_cond = true
combat_ignore_keep_when_attacked = true
invulnerable = true
out_restr = jup_a6_sr_noweap
gather_items_enabled = false
help_wounded_enabled = false
corpse_detection_enabled = false

View file

@ -0,0 +1,89 @@
[logic@jup_a6_freedom_leader]
suitable = {=check_npc_name(jup_a6_freedom_leader)}
prior = 200
active = walker@freedom_leader
[animpoint@freedom_leader]
cover_name = jup_a6_animpint_freedom_leader
avail_animations = animpoint_sit_normal_no_rnd
use_camp = false
meet = meet@stand_base
on_info = {+jup_b207_freedom_knows_about_depot -jup_b207_ui} remark@jup_b207_radio_talk
on_game_timer = 900 | walker@freedom_leader
combat_ignore_cond = true
combat_ignore_keep_when_attacked = true
invulnerable = true
out_restr = jup_a6_sr_noweap
corpse_detection_enabled = false
gather_items_enabled = false
help_wounded_enabled = false
[walker@freedom_leader]
path_walk = freedom_leader_walk
path_look = freedom_leader_look
def_state_standing = wait_na
def_state_moving = walk_noweap
meet = meet@walker
on_info = {+jup_b207_freedom_knows_about_depot -jup_b207_ui} remark@jup_b207_radio_talk
on_game_timer = 900 | animpoint@freedom_leader
combat_ignore_cond = true
combat_ignore_keep_when_attacked = true
invulnerable = true
out_restr = jup_a6_sr_noweap
corpse_detection_enabled = false
gather_items_enabled = false
help_wounded_enabled = false
use_camp = false
[meet@stand_base]
close_snd_hello = jup_a6_freedom_leader_greeting
close_snd_bye = jup_a6_freedom_leader_farewell
close_anim = nil
close_victim = nil
far_anim = nil
far_victim = nil
close_distance = 0
far_distance = 0
close_snd_distance = 3
use = {=actor_enemy} false, true
allow_break = false
trade_enable = false
meet_on_talking = false
[meet@walker]:meet@stand_base
close_anim = wait_na
close_victim = actor
close_distance = 3
[remark@jup_b207_radio_talk]
target = story | actor
anim = wait_rac
on_signal = anim_end | %=play_sound(jup_b207_freedom_leader_about_depot)%
on_signal2 = sound_end | remark@jup_b207_radio_talk_done
meet = no_meet
;combat_ignore_cond = {=check_enemy_smart(jup_a6)} true
combat_ignore_cond = true
combat_ignore_keep_when_attacked = true
invulnerable = true
out_restr = jup_a6_sr_noweap
gather_items_enabled = false
help_wounded_enabled = false
corpse_detection_enabled = false
[remark@jup_b207_radio_talk_done]
target = story | actor
anim = wait_na
on_signal = anim_end | %=play_sound(jup_b207_freedom_leader_about_depot_after)%
on_signal2 = sound_end | %+jup_b207_ui -jup_b207_lock_door%
on_info = {+jup_b207_ui} animpoint@freedom_leader
meet = no_meet
;combat_ignore_cond = {=check_enemy_smart(jup_a6)} true
combat_ignore_cond = true
combat_ignore_keep_when_attacked = true
invulnerable = true
out_restr = jup_a6_sr_noweap
gather_items_enabled = false
help_wounded_enabled = false
corpse_detection_enabled = false

View file

@ -0,0 +1,33 @@
[logic]
active = sr_idle@set_counters
[sr_idle@set_counters]
on_info = {-jup_b4_b46_b207_b106_counters_start -jup_b4_b46_b207_b106_counters_end} sr_idle@b4_b46_b207_b106_counters %=set_counter(jup_a6_actor_help_stalkers:0) =set_counter(jup_a6_actor_help_duty:0) =set_counter(jup_a6_actor_help_freedom:0) +jup_b4_b46_b207_b106_counters_start%
on_info2 = {+jup_b4_b46_b207_b106_counters_start -jup_b4_b46_b207_b106_counters_end} sr_idle@b4_b46_b207_b106_counters
on_info3 = {+jup_b4_b46_b207_b106_counters_start +jup_b4_b46_b207_b106_counters_end} sr_idle@end
[sr_idle@b4_b46_b207_b106_counters]
;------------- b46 ---------------;
on_info1 = {+jup_b46_duty_founder_pda_to_stalkers -jup_b46_counted} %=inc_counter(jup_a6_actor_help_stalkers:1) +jup_b46_counted%
on_info2 = {+jup_b46_duty_founder_pda_to_duty -jup_b46_counted} %=inc_counter(jup_a6_actor_help_duty:1) =inc_faction_goodwill_to_actor(dolg:500) =dec_faction_goodwill_to_actor(freedom:250) +jup_b46_counted%
on_info3 = {+jup_b46_duty_founder_pda_to_freedom -jup_b46_counted} %=inc_counter(jup_a6_actor_help_freedom:1) =inc_faction_goodwill_to_actor(freedom:500) =dec_faction_goodwill_to_actor(dolg:250) +jup_b46_counted%
;------------- b106 --------------;
on_info4 = {+zat_b106_found_soroka_done -zat_b106_counted} %=inc_counter(jup_a6_actor_help_stalkers:1) +zat_b106_counted%
on_info5 = {+jup_b25_flint_blame_done_to_duty -zat_b106_counted} %=inc_counter(jup_a6_actor_help_duty:1) =inc_faction_goodwill_to_actor(dolg:500) =dec_faction_goodwill_to_actor(freedom:250) +zat_b106_counted%
on_info6 = {+jup_b25_flint_blame_done_to_freedom -zat_b106_counted} %=inc_counter(jup_a6_actor_help_freedom:1) =inc_faction_goodwill_to_actor(freedom:500) =dec_faction_goodwill_to_actor(dolg:250) +zat_b106_counted%
;-------------- b4 ---------------;
on_info7 = {+jup_b4_monolith_squad_in_duty -jup_b4_counted} %=inc_counter(jup_a6_actor_help_duty:1) =inc_faction_goodwill_to_actor(dolg:500) =dec_faction_goodwill_to_actor(freedom:250) +jup_b4_counted%
on_info8 = {+jup_b4_recruit_2_cool_freedom_sound -jup_b4_counted} %=inc_counter(jup_a6_actor_help_freedom:1) =inc_faction_goodwill_to_actor(freedom:500) =dec_faction_goodwill_to_actor(dolg:250) +jup_b4_counted%
;------------- b207 --------------;
on_info9 = {+jup_b207_dealers_pda_sold_owl -jup_b207_counted} %=inc_counter(jup_a6_actor_help_stalkers:1) +jup_b207_counted%
on_info10 = {+jup_b207_sell_dealers_pda_duty -jup_b207_counted} %=inc_counter(jup_a6_actor_help_duty:1) =inc_faction_goodwill_to_actor(dolg:500) =dec_faction_goodwill_to_actor(freedom:250) +jup_b207_counted%
on_info11 = {+jup_b207_sell_dealers_pda_freedom -jup_b207_counted} %=inc_counter(jup_a6_actor_help_freedom:1) =inc_faction_goodwill_to_actor(freedom:500) =dec_faction_goodwill_to_actor(dolg:250) +jup_b207_counted%
;------------- reward ------------;
on_info12 = {=jup_b202_actor_treasure_not_in_steal =distance_to_obj_ge(jup_b202_actor_treasure:100) =counter_greater(jup_a6_actor_help_duty:1) -jup_a6_duty_leader_give_first_reward} %=spawn_object_in(dolg_outfit:jup_b202_actor_treasure) =send_tip(st_duty_first_reward_news:got_duty_light_armor) +jup_a6_duty_leader_give_first_reward%
on_info13 = {=jup_b202_actor_treasure_not_in_steal =distance_to_obj_ge(jup_b202_actor_treasure:100) =counter_greater(jup_a6_actor_help_freedom:1) -jup_a6_freedom_leader_give_first_reward} %=spawn_object_in(svoboda_light_outfit:jup_b202_actor_treasure) =send_tip(st_freedom_first_reward_news:got_freedom_light_armor) +jup_a6_freedom_leader_give_first_reward%
on_info14 = {=jup_b202_actor_treasure_not_in_steal =distance_to_obj_ge(jup_b202_actor_treasure:100) =counter_greater(jup_a6_actor_help_duty:3) -jup_a6_duty_leader_give_second_reward} %=spawn_object_in(dolg_heavy_outfit:jup_b202_actor_treasure) =send_tip(st_duty_second_reward_news:got_duty_heavy_armor) +jup_a6_duty_leader_give_second_reward%
on_info15 = {=jup_b202_actor_treasure_not_in_steal =distance_to_obj_ge(jup_b202_actor_treasure:100) =counter_greater(jup_a6_actor_help_freedom:3) -jup_a6_freedom_leader_give_second_reward} %=spawn_object_in(svoboda_heavy_outfit:jup_b202_actor_treasure) =send_tip(st_freedom_second_reward_news:got_freedom_heavy_armor) +jup_a6_freedom_leader_give_second_reward%
;-------------- end --------------;
on_info16 = {+jup_b46_counted +zat_b106_counted +jup_b4_counted +jup_b207_counted =distance_to_obj_ge(jup_b202_actor_treasure:200) =jup_b202_actor_treasure_not_in_steal} sr_idle@end %+jup_b4_b46_b207_b106_counters_end%
[sr_idle@end]

View file

@ -0,0 +1,443 @@
[animpoint@jup_a6_animp_gen]
reach_movement = walk_noweap
use_camp = false
meet = meet@jup_a6_animpoint_meet
combat_ignore_cond = true
combat_ignore_keep_when_attacked = true
invulnerable = true
out_restr = jup_a6_sr_noweap
gather_items_enabled = false
help_wounded_enabled = false
corpse_detection_enabled = false
[animpoint@jup_a6_animp_gen_reach]:animpoint@jup_a6_animp_gen
combat_ignore_keep_when_attacked = false
invulnerable = false
[meet@jup_a6_animpoint_meet]
close_snd_hello = {=check_npc_name(monolith)} nil, {=is_wounded} nil, {!is_squad_commander} nil, {=actor_enemy} nil, {=actor_has_weapon} meet_hide_weapon, meet_hello
close_snd_bye = {=check_npc_name(monolith)} nil, {=is_wounded} nil, {!is_squad_commander} nil, {=actor_enemy} nil, {=actor_has_weapon} nil, meet_hello
close_anim = nil
close_victim = nil
far_anim = nil
far_victim = nil
close_distance = 0
far_distance = 0
use = {=actor_enemy} false, {=dist_to_actor_le(3)} true, false
snd_on_use = {!dist_to_actor_le(3)} nil
meet_on_talking = false
[logic@jup_a6_animp_01]
active = animpoint@jup_a6_animp_01
suitable = {=npc_community(stalker) =npc_in_zone(jup_a6_sr_noweap)} true, {=npc_community(dolg) =npc_in_zone(jup_a6_sr_noweap)} true
prior = 100
[logic@jup_a6_animp_02]
active = animpoint@jup_a6_animp_02
suitable = {=npc_community(stalker) =npc_in_zone(jup_a6_sr_noweap)} true, {=npc_community(dolg) =npc_in_zone(jup_a6_sr_noweap)} true
prior = 100
[logic@jup_a6_animp_03]
active = animpoint@jup_a6_animp_03
suitable = {=npc_community(stalker) =npc_in_zone(jup_a6_sr_noweap)} true, {=npc_community(dolg) =npc_in_zone(jup_a6_sr_noweap)} true
prior = 100
[logic@jup_a6_animp_04]
active = animpoint@jup_a6_animp_04
suitable = {=npc_community(stalker) =npc_in_zone(jup_a6_sr_noweap)} true, {=npc_community(dolg) =npc_in_zone(jup_a6_sr_noweap)} true
prior = 100
[logic@jup_a6_animp_09]
active = animpoint@jup_a6_animp_09
suitable = {+jup_b217_welcome_tech_talked =npc_community(stalker) =npc_in_zone(jup_a6_sr_noweap)} true, {+jup_b217_welcome_tech_talked =npc_community(dolg) =npc_in_zone(jup_a6_sr_noweap)} true
prior = 100
[logic@jup_a6_animp_10]
active = animpoint@jup_a6_animp_10
suitable = {=npc_community(stalker) =npc_in_zone(jup_a6_sr_noweap)} true, {=npc_community(dolg) =npc_in_zone(jup_a6_sr_noweap)} true
prior = 100
[logic@jup_a6_animp_11]
active = animpoint@jup_a6_animp_11
suitable = {+jup_b217_welcome_tech_talked =npc_community(stalker) =npc_in_zone(jup_a6_sr_noweap)} true, {+jup_b217_welcome_tech_talked =npc_community(dolg) =npc_in_zone(jup_a6_sr_noweap)} true
prior = 100
[logic@jup_a6_animp_15]
active = animpoint@jup_a6_animp_15
suitable = {=npc_community(stalker) =npc_in_zone(jup_a6_sr_noweap)} true, {=npc_community(dolg) =npc_in_zone(jup_a6_sr_noweap)} true
prior = 100
[logic@jup_a6_animp_16]
active = animpoint@jup_a6_animp_16
suitable = {=npc_community(stalker) =npc_in_zone(jup_a6_sr_noweap)} true, {=npc_community(dolg) =npc_in_zone(jup_a6_sr_noweap)} true
prior = 100
[logic@jup_a6_animp_17]
active = animpoint@jup_a6_animp_17
suitable = {=npc_community(stalker) =npc_in_zone(jup_a6_sr_noweap)} true, {=npc_community(dolg) =npc_in_zone(jup_a6_sr_noweap)} true
prior = 100
[logic@jup_a6_animp_18]
active = animpoint@jup_a6_animp_18
suitable = {=npc_community(stalker) =npc_in_zone(jup_a6_sr_noweap)} true, {=npc_community(dolg) =npc_in_zone(jup_a6_sr_noweap)} true
prior = 100
[logic@jup_a6_animp_91]
active = animpoint@jup_a6_animp_91
suitable = {-jup_b25_freedom_flint_gone =npc_community(dolg) =npc_in_zone(jup_a6_sr_noweap)} true
prior = 100
[logic@jup_a6_animp_92]
active = animpoint@jup_a6_animp_92
suitable = {-jup_b25_freedom_flint_gone =npc_community(dolg) =npc_in_zone(jup_a6_sr_noweap)} true
prior = 100
[logic@jup_a6_animp_93]
active = animpoint@jup_a6_animp_93
suitable = {-jup_b25_freedom_flint_gone =npc_community(dolg) =npc_in_zone(jup_a6_sr_noweap)} true
prior = 100
[logic@jup_a6_animp_05]
active = animpoint@jup_a6_animp_05
suitable = {=npc_community(stalker) =npc_in_zone(jup_a6_sr_noweap)} true, {=npc_community(freedom) =npc_in_zone(jup_a6_sr_noweap)} true
prior = 95
[logic@jup_a6_animp_06]
active = animpoint@jup_a6_animp_06
suitable = {=npc_community(stalker) =npc_in_zone(jup_a6_sr_noweap)} true, {=npc_community(freedom) =npc_in_zone(jup_a6_sr_noweap)} true
prior = 95
[logic@jup_a6_animp_07]
active = animpoint@jup_a6_animp_07
suitable = {=npc_community(stalker) =npc_in_zone(jup_a6_sr_noweap)} true, {=npc_community(freedom) =npc_in_zone(jup_a6_sr_noweap)} true
prior = 100
[logic@jup_a6_animp_08]
active = animpoint@jup_a6_animp_08
suitable = {=npc_community(stalker) =npc_in_zone(jup_a6_sr_noweap)} true, {=npc_community(freedom) =npc_in_zone(jup_a6_sr_noweap)} true
prior = 95
[logic@jup_a6_animp_12]
active = animpoint@jup_a6_animp_12
suitable = {=npc_community(stalker) =npc_in_zone(jup_a6_sr_noweap)} true, {=npc_community(freedom) =npc_in_zone(jup_a6_sr_noweap)} true
prior = 100
[logic@jup_a6_animp_13]
active = animpoint@jup_a6_animp_13
suitable = {=npc_community(stalker) =npc_in_zone(jup_a6_sr_noweap)} true, {=npc_community(freedom) =npc_in_zone(jup_a6_sr_noweap)} true
prior = 100
[logic@jup_a6_animp_14]
active = animpoint@jup_a6_animp_14
suitable = {=npc_community(stalker) =npc_in_zone(jup_a6_sr_noweap)} true, {=npc_community(freedom) =npc_in_zone(jup_a6_sr_noweap)} true
prior = 100
[logic@jup_a6_animp_19]
active = animpoint@jup_a6_animp_19
suitable = {=npc_community(stalker) =npc_in_zone(jup_a6_sr_noweap)} true, {=npc_community(freedom) =npc_in_zone(jup_a6_sr_noweap)} true
prior = 100
[logic@jup_a6_animp_20]
active = animpoint@jup_a6_animp_20
suitable = {=npc_community(stalker) =npc_in_zone(jup_a6_sr_noweap)} true, {=npc_community(freedom) =npc_in_zone(jup_a6_sr_noweap)} true
prior = 85
[logic@jup_a6_animp_21]
active = animpoint@jup_a6_animp_21
suitable = {=npc_community(stalker) =npc_in_zone(jup_a6_sr_noweap)} true, {=npc_community(freedom) =npc_in_zone(jup_a6_sr_noweap)} true
prior = 80
[animpoint@jup_a6_animp_01]:animpoint@jup_a6_animp_gen_reach
cover_name = jup_a6_animp_01
use_camp = true
on_info = {=npc_in_zone(jup_a6_sr_light)} animpoint@jup_a6_animp_01_reached
[animpoint@jup_a6_animp_02]:animpoint@jup_a6_animp_gen_reach
cover_name = jup_a6_animp_02
on_info = {=npc_in_zone(jup_a6_sr_light)} animpoint@jup_a6_animp_02_reached
[animpoint@jup_a6_animp_03]:animpoint@jup_a6_animp_gen_reach
cover_name = jup_a6_animp_03
on_info = {=npc_in_zone(jup_a6_sr_light)} animpoint@jup_a6_animp_03_reached
[animpoint@jup_a6_animp_04]:animpoint@jup_a6_animp_gen_reach
cover_name = jup_a6_animp_04
on_info = {=npc_in_zone(jup_a6_sr_light)} animpoint@jup_a6_animp_04_reached
[animpoint@jup_a6_animp_05]:animpoint@jup_a6_animp_gen_reach
cover_name = jup_a6_animp_05
on_info = {=npc_in_zone(jup_a6_sr_light)} animpoint@jup_a6_animp_05_reached
[animpoint@jup_a6_animp_06]:animpoint@jup_a6_animp_gen_reach
cover_name = jup_a6_animp_06
on_info = {=npc_in_zone(jup_a6_sr_light)} animpoint@jup_a6_animp_06_reached
[animpoint@jup_a6_animp_07]:animpoint@jup_a6_animp_gen_reach
cover_name = jup_a6_animp_07
on_info = {=npc_in_zone(jup_a6_sr_light)} animpoint@jup_a6_animp_07_reached
[animpoint@jup_a6_animp_08]:animpoint@jup_a6_animp_gen_reach
cover_name = jup_a6_animp_08
on_info = {=npc_in_zone(jup_a6_sr_light)} animpoint@jup_a6_animp_08_reached
[animpoint@jup_a6_animp_09]:animpoint@jup_a6_animp_gen_reach
cover_name = jup_a6_animp_09
on_info = {=npc_in_zone(jup_a6_sr_light)} animpoint@jup_a6_animp_09_reached
[animpoint@jup_a6_animp_10]:animpoint@jup_a6_animp_gen_reach
cover_name = jup_a6_animp_10
on_info = {=npc_in_zone(jup_a6_sr_light)} animpoint@jup_a6_animp_10_reached
[animpoint@jup_a6_animp_11]:animpoint@jup_a6_animp_gen_reach
cover_name = jup_a6_animp_11
on_info = {=npc_in_zone(jup_a6_sr_light)} animpoint@jup_a6_animp_11_reached
[animpoint@jup_a6_animp_12]:animpoint@jup_a6_animp_gen_reach
cover_name = jup_a6_animp_12
use_camp = true
on_info = {=npc_in_zone(jup_a6_sr_light)} animpoint@jup_a6_animp_12_reached
[animpoint@jup_a6_animp_13]:animpoint@jup_a6_animp_gen_reach
cover_name = jup_a6_animp_13
use_camp = true
on_info = {=npc_in_zone(jup_a6_sr_light)} animpoint@jup_a6_animp_13_reached
[animpoint@jup_a6_animp_14]:animpoint@jup_a6_animp_gen_reach
cover_name = jup_a6_animp_14
use_camp = true
on_info = {=npc_in_zone(jup_a6_sr_light)} animpoint@jup_a6_animp_14_reached
[animpoint@jup_a6_animp_15]:animpoint@jup_a6_animp_gen_reach
cover_name = jup_a6_animp_15
use_camp = true
on_info = {=npc_in_zone(jup_a6_sr_light)} animpoint@jup_a6_animp_15_reached
[animpoint@jup_a6_animp_16]:animpoint@jup_a6_animp_gen_reach
cover_name = jup_a6_animp_16
use_camp = true
on_info = {=npc_in_zone(jup_a6_sr_light)} animpoint@jup_a6_animp_16_reached
[animpoint@jup_a6_animp_17]:animpoint@jup_a6_animp_gen_reach
cover_name = jup_a6_animp_17
use_camp = true
on_info = {=npc_in_zone(jup_a6_sr_light)} animpoint@jup_a6_animp_17_reached
[animpoint@jup_a6_animp_18]:animpoint@jup_a6_animp_gen_reach
cover_name = jup_a6_animp_18
use_camp = true
on_info = {=npc_in_zone(jup_a6_sr_light)} animpoint@jup_a6_animp_18_reached
[animpoint@jup_a6_animp_19]:animpoint@jup_a6_animp_gen_reach
cover_name = jup_a6_animp_19
use_camp = true
on_info = {=npc_in_zone(jup_a6_sr_light)} animpoint@jup_a6_animp_19_reached
[animpoint@jup_a6_animp_20]:animpoint@jup_a6_animp_gen_reach
cover_name = jup_a6_animp_20
on_info = {=npc_in_zone(jup_a6_sr_light)} animpoint@jup_a6_animp_20_reached
[animpoint@jup_a6_animp_21]:animpoint@jup_a6_animp_gen_reach
cover_name = jup_a6_animp_21
use_camp = true
on_info = {=npc_in_zone(jup_a6_sr_light)} animpoint@jup_a6_animp_21_reached
[animpoint@jup_a6_animp_91]:animpoint@jup_a6_animp_gen_reach
cover_name = jup_b221_duty_01
on_info = {=npc_in_zone(jup_a6_sr_light)} animpoint@jup_a6_animp_91_reached
[animpoint@jup_a6_animp_92]:animpoint@jup_a6_animp_gen_reach
cover_name = jup_b221_duty_02
on_info = {=npc_in_zone(jup_a6_sr_light)} animpoint@jup_a6_animp_92_reached
[animpoint@jup_a6_animp_93]:animpoint@jup_a6_animp_gen_reach
cover_name = jup_b221_duty_03
on_info = {=npc_in_zone(jup_a6_sr_light)} animpoint@jup_a6_animp_93_reached
[animpoint@jup_a6_animp_01_reached]:animpoint@jup_a6_animp_gen
cover_name = jup_a6_animp_01
use_camp = true
[animpoint@jup_a6_animp_02_reached]:animpoint@jup_a6_animp_gen
cover_name = jup_a6_animp_02
[animpoint@jup_a6_animp_03_reached]:animpoint@jup_a6_animp_gen
cover_name = jup_a6_animp_03
[animpoint@jup_a6_animp_04_reached]:animpoint@jup_a6_animp_gen
cover_name = jup_a6_animp_04
[animpoint@jup_a6_animp_05_reached]:animpoint@jup_a6_animp_gen
cover_name = jup_a6_animp_05
[animpoint@jup_a6_animp_06_reached]:animpoint@jup_a6_animp_gen
cover_name = jup_a6_animp_06
[animpoint@jup_a6_animp_07_reached]:animpoint@jup_a6_animp_gen
cover_name = jup_a6_animp_07
[animpoint@jup_a6_animp_08_reached]:animpoint@jup_a6_animp_gen
cover_name = jup_a6_animp_08
[animpoint@jup_a6_animp_09_reached]:animpoint@jup_a6_animp_gen
cover_name = jup_a6_animp_09
[animpoint@jup_a6_animp_10_reached]:animpoint@jup_a6_animp_gen
cover_name = jup_a6_animp_10
[animpoint@jup_a6_animp_11_reached]:animpoint@jup_a6_animp_gen
cover_name = jup_a6_animp_11
[animpoint@jup_a6_animp_12_reached]:animpoint@jup_a6_animp_gen
cover_name = jup_a6_animp_12
use_camp = true
[animpoint@jup_a6_animp_13_reached]:animpoint@jup_a6_animp_gen
cover_name = jup_a6_animp_13
use_camp = true
[animpoint@jup_a6_animp_14_reached]:animpoint@jup_a6_animp_gen
cover_name = jup_a6_animp_14
use_camp = true
[animpoint@jup_a6_animp_15_reached]:animpoint@jup_a6_animp_gen
cover_name = jup_a6_animp_15
use_camp = true
[animpoint@jup_a6_animp_16_reached]:animpoint@jup_a6_animp_gen
cover_name = jup_a6_animp_16
use_camp = true
[animpoint@jup_a6_animp_17_reached]:animpoint@jup_a6_animp_gen
cover_name = jup_a6_animp_17
use_camp = true
[animpoint@jup_a6_animp_18_reached]:animpoint@jup_a6_animp_gen
cover_name = jup_a6_animp_18
use_camp = true
[animpoint@jup_a6_animp_19_reached]:animpoint@jup_a6_animp_gen
cover_name = jup_a6_animp_19
use_camp = true
[animpoint@jup_a6_animp_20_reached]:animpoint@jup_a6_animp_gen
cover_name = jup_a6_animp_20
[animpoint@jup_a6_animp_21_reached]:animpoint@jup_a6_animp_gen
cover_name = jup_a6_animp_21
use_camp = true
[animpoint@jup_a6_animp_91_reached]:animpoint@jup_a6_animp_gen
cover_name = jup_b221_duty_01
[animpoint@jup_a6_animp_92_reached]:animpoint@jup_a6_animp_gen
cover_name = jup_b221_duty_02
[animpoint@jup_a6_animp_93_reached]:animpoint@jup_a6_animp_gen
cover_name = jup_b221_duty_03
[logic@jup_a6_duty_guard]
active = walker@jup_a6_duty_guard_reach
suitable = {=npc_community(dolg) =npc_in_zone(jup_a6_sr_noweap)} true
prior = 100
[walker@jup_a6_duty_guard_reach]
path_walk = duty_guard_walk
path_look = duty_guard_look
def_state_standing = wait_na
meet = meet@jup_a6_animpoint_meet
combat_ignore_cond = true
out_restr = jup_a6_sr_noweap
gather_items_enabled = false
help_wounded_enabled = false
corpse_detection_enabled = false
use_camp = false
on_info = {=npc_in_zone(jup_a6_sr_light)} walker@jup_a6_duty_guard
[walker@jup_a6_duty_guard]
path_walk = duty_guard_walk
path_look = duty_guard_look
def_state_standing = wait_na
meet = meet@jup_a6_animpoint_meet
combat_ignore_cond = true
combat_ignore_keep_when_attacked = true
invulnerable = true
out_restr = jup_a6_sr_noweap
gather_items_enabled = false
help_wounded_enabled = false
corpse_detection_enabled = false
use_camp = false
[logic@jup_a6_duty_guarder]
active = walker@jup_a6_duty_guarder
suitable = {=target_squad_name(b207)} false, {=check_npc_name(monolith)} false, {=is_factions_enemies(dolg)} false, {=npc_community(dolg) =npc_in_zone(jup_a6_sr_noweap) !surge_started} true
prior = 120
[walker@jup_a6_duty_guarder]
path_walk = duty_guarder_walk
path_look = duty_guarder_look
on_info = {!actor_enemy =see_actor !npc_in_zone(jup_a6_sr_light) =actor_has_weapon =actor_in_zone(jup_a6_sr_noweap) =dist_to_actor_le(35)} remark@jup_a6_duty_guarder
combat_ignore_cond = {=check_enemy_name(freedom)} true, {=npc_in_zone(jup_a6_sr_light)} true, false
out_restr = jup_a6_sr_noweap
in_restr = jup_a6_sr_light
meet = no_meet
[remark@jup_a6_duty_guarder]
anim = threat
target = story | actor
on_info = %=play_sound(jup_a6_base_guard)%
on_game_timer = 75 | walker@jup_a6_duty_guarder
combat_ignore_cond = {=check_enemy_name(freedom)} true, {=npc_in_zone(jup_a6_sr_light)} true, false
out_restr = jup_a6_sr_noweap
in_restr = jup_a6_sr_light
meet = no_meet
[logic@jup_a6_freedom_guarder]
active = walker@jup_a6_freedom_guarder
suitable = {=target_squad_name(b207)} false, {=check_npc_name(monolith)} false, {=is_factions_enemies(freedom)} false, {=npc_community(freedom) =npc_in_zone(jup_a6_sr_noweap) !surge_started} true
prior = 120
[walker@jup_a6_freedom_guarder]
path_walk = freedom_guarder_walk
path_look = freedom_guarder_look
on_info = {!actor_enemy =see_actor !npc_in_zone(jup_a6_sr_light) =actor_has_weapon =actor_in_zone(jup_a6_sr_noweap) =dist_to_actor_le(35)} remark@jup_a6_freedom_guarder
combat_ignore_cond = {=check_enemy_name(duty)} true, {=npc_in_zone(jup_a6_sr_light)} true, false
out_restr = jup_a6_sr_noweap
in_restr = jup_a6_sr_light
meet = no_meet
[remark@jup_a6_freedom_guarder]
anim = threat
target = story | actor
on_info = %=play_sound(jup_a6_base_guard)%
on_game_timer = 75 | walker@jup_a6_freedom_guarder
combat_ignore_cond = {=check_enemy_name(duty)} true, {=npc_in_zone(jup_a6_sr_light)} true, false
out_restr = jup_a6_sr_noweap
in_restr = jup_a6_sr_light
meet = no_meet
[logic@jup_a6_animp_freedom_guard]
active = animpoint@jup_a6_animp_freedom_guard
suitable = {=npc_community(freedom) =npc_in_zone(jup_a6_sr_noweap)} true
prior = 100
[animpoint@jup_a6_animp_freedom_guard]:animpoint@jup_a6_animp_gen_reach
cover_name = jup_a6_animp_freedom_guard
on_info = {=npc_in_zone(jup_a6_sr_light)} animpoint@jup_a6_animp_freedom_guard_reached
[animpoint@jup_a6_animp_freedom_guard_reached]:animpoint@jup_a6_animp_gen
cover_name = jup_a6_animp_freedom_guard

View file

@ -0,0 +1,39 @@
[logic]
active = ph_door@closed
[ph_door@closed]
closed = true
locked = false
on_use = ph_door@open %+jup_a6_main_door_open%
on_info = {!check_smart_alarm_status(jup_a6:normal)} ph_door@locked
on_info2 = {+jup_a6_main_door_open !is_door_blocked_by_npc} ph_door@open
snd_open_start = trader_door_open_start
snd_close_start = trader_door_close_start
snd_close_stop = trader_door_close_stop
[ph_door@open]
closed = false
locked = false
on_use = ph_door@closed %-jup_a6_main_door_open%
on_info = {!check_smart_alarm_status(jup_a6:normal)} ph_door@locked %-jup_a6_main_door_open%
on_info2 = {-jup_a6_main_door_open !is_door_blocked_by_npc} ph_door@closed
on_game_timer = 35 | {!is_door_blocked_by_npc} ph_door@closed %-jup_a6_main_door_open%
snd_open_start = trader_door_open_start
snd_close_start = trader_door_close_start
snd_close_stop = trader_door_close_stop
[ph_door@locked]
closed = true
locked = true
on_info = {=check_smart_alarm_status(jup_a6:normal)} ph_door@closed
on_info2 = {=check_smart_alarm_status(jup_a6:alarm)} ph_door@locked_alarm
snd_open_start = trader_door_locked
tip_open = tip_door_closed_hide_weapon
[ph_door@locked_alarm]
closed = true
locked = true
on_info = {=check_smart_alarm_status(jup_a6:normal)} ph_door@closed
on_info2 = {=check_smart_alarm_status(jup_a6:danger)} ph_door@locked
snd_open_start = trader_door_locked
tip_open = tip_door_closed_base_alarm

View file

@ -0,0 +1,39 @@
[logic]
active = ph_door@open
[ph_door@closed]
closed = true
locked = false
on_use = ph_door@open %+jup_a6_main_door_2_open%
on_info = {!check_smart_alarm_status(jup_a6:normal)} ph_door@locked
on_info2 = {+jup_a6_main_door_2_open !is_door_blocked_by_npc} ph_door@open
snd_open_start = trader_door_open_start
snd_close_start = trader_door_close_start
snd_close_stop = trader_door_close_stop
[ph_door@open]
closed = false
locked = false
on_use = ph_door@closed %-jup_a6_main_door_2_open%
on_info = {!check_smart_alarm_status(jup_a6:normal)} ph_door@locked %-jup_a6_main_door_2_open%
on_info2 = {-jup_a6_main_door_2_open !is_door_blocked_by_npc} ph_door@closed
on_game_timer = 35 | {!is_door_blocked_by_npc} ph_door@closed %-jup_a6_main_door_2_open%
snd_open_start = trader_door_open_start
snd_close_start = trader_door_close_start
snd_close_stop = trader_door_close_stop
[ph_door@locked]
closed = true
locked = true
on_info = {=check_smart_alarm_status(jup_a6:normal)} ph_door@closed
on_info2 = {=check_smart_alarm_status(jup_a6:alarm)} ph_door@locked_alarm
snd_open_start = trader_door_locked
tip_open = tip_door_closed_hide_weapon
[ph_door@locked_alarm]
closed = true
locked = true
on_info = {=check_smart_alarm_status(jup_a6:normal)} ph_door@closed
on_info2 = {=check_smart_alarm_status(jup_a6:danger)} ph_door@locked
snd_open_start = trader_door_locked
tip_open = tip_door_closed_base_alarm

View file

@ -0,0 +1,37 @@
[logic]
active = ph_door@closed
[ph_door@closed]
closed = true
locked = false
on_use = ph_door@open
on_info = {!check_smart_alarm_status(jup_a6:normal)} ph_door@locked
snd_open_start = wood_large_open
snd_close_start = wood_large_close_start
snd_close_stop = wood_large_close_stop
[ph_door@open]
closed = false
locked = false
on_use = ph_door@closed
on_info = {!check_smart_alarm_status(jup_a6:normal)} ph_door@locked
on_game_timer = 50 | ph_door@closed
snd_open_start = wood_large_open
snd_close_start = wood_large_close_start
snd_close_stop = wood_large_close_stop
[ph_door@locked]
closed = true
locked = true
on_info = {=check_smart_alarm_status(jup_a6:normal)} ph_door@closed
on_info2 = {=check_smart_alarm_status(jup_a6:alarm)} ph_door@locked_alarm
snd_open_start = trader_door_locked
tip_open = tip_door_closed_hide_weapon
[ph_door@locked_alarm]
closed = true
locked = true
on_info = {=check_smart_alarm_status(jup_a6:normal)} ph_door@closed
on_info2 = {=check_smart_alarm_status(jup_a6:danger)} ph_door@locked
snd_open_start = trader_door_locked
tip_open = tip_door_closed_base_alarm

View file

@ -0,0 +1,38 @@
[logic]
active = ph_door@closed
[ph_door@closed]
closed = true
locked = false
on_use = ph_door@open
on_info = {=actor_in_zone(jup_a6_sr_noweap_zulus) =actor_has_weapon} ph_door@locked
on_info2 = {=check_smart_alarm_status(jup_a6:alarm)} ph_door@locked_alarm
snd_open_start = wood_large_open
snd_close_start = wood_large_close_start
snd_close_stop = wood_large_close_stop
[ph_door@open]
closed = false
locked = false
on_use = ph_door@closed
on_info = {=actor_in_zone(jup_a6_sr_noweap_zulus) =actor_has_weapon} ph_door@locked
on_info2 = {=check_smart_alarm_status(jup_a6:alarm)} ph_door@locked_alarm
on_game_timer = 50 | ph_door@closed
snd_open_start = wood_large_open
snd_close_start = wood_large_close_start
snd_close_stop = wood_large_close_stop
[ph_door@locked]
closed = true
locked = true
on_info = {=actor_in_zone(jup_a6_sr_noweap_zulus) !actor_has_weapon} ph_door@closed
on_info2 = {=check_smart_alarm_status(jup_a6:alarm)} ph_door@locked_alarm
snd_open_start = trader_door_locked
tip_open = tip_door_closed_hide_weapon
[ph_door@locked_alarm]
closed = true
locked = true
on_info = {=check_smart_alarm_status(jup_a6:normal)} ph_door@locked
snd_open_start = trader_door_locked
tip_open = tip_door_closed_base_alarm

View file

@ -0,0 +1,20 @@
[logic]
active = ph_idle@wait
[ph_idle@wait]
on_info = {=actor_in_zone(jup_a6_sr_noweap) !actor_in_zone(jup_a6_sr_light) !check_smart_alarm_status(jup_a6:normal)} ph_idle@pleaseplease
[ph_idle@pleaseplease]
on_info = {=check_smart_alarm_status(jup_a6:danger)} %=play_sound(jup_a6_base_megaphone)%
on_info2 = {=check_smart_alarm_status(jup_a6:alarm)} ph_idle@swear
on_info3 = {=check_smart_alarm_status(jup_a6:normal)} ph_idle@wait
on_info4 = {!actor_in_zone(jup_a6_sr_noweap)} ph_idle@wait
on_info5 = {=actor_in_zone(jup_a6_sr_light)} ph_idle@wait
[ph_idle@swear]
on_info = {!check_smart_alarm_status(jup_a6:alarm)} ph_idle@spawn
on_info2 = {!actor_in_zone(jup_a6_sr_noweap)} ph_idle@spawn
on_info3 = {=actor_in_zone(jup_a6_sr_light)} ph_idle@wait
[ph_idle@spawn]
on_info = ph_idle@wait

View file

@ -0,0 +1,5 @@
[logic]
active = sr_light
[sr_light]
light_on = false

View file

@ -0,0 +1,12 @@
[logic]
active = sr_idle@start
[sr_idle@start]
on_actor_inside = {!black_screen} sr_no_weapon@wait
[sr_idle@wait]
on_actor_inside = {=check_smart_alarm_status(jup_a6:normal) !actor_has_weapon} sr_no_weapon@wait
on_info = {=actor_in_zone(jup_a6_sr_light)} sr_no_weapon@wait
[sr_no_weapon@wait]
on_actor_outside = sr_idle@wait

View file

@ -0,0 +1,9 @@
[logic]
active = sr_idle@wait
[sr_idle@wait]
on_actor_inside = {=check_smart_alarm_status(jup_a6:normal) !actor_has_weapon} sr_no_weapon@wait
on_info = {=actor_in_zone(jup_b15_sr_light)} sr_no_weapon@wait
[sr_no_weapon@wait]
on_actor_outside = sr_idle@wait

View file

@ -0,0 +1,52 @@
[animpoint@jup_a9_actor_gen]
meet = no_meet
use_camp = false
combat_ignore_cond = true
combat_ignore_keep_when_attacked = true
invulnerable = true
gather_items_enabled = false
help_wounded_enabled = false
corpse_detection_enabled = false
reach_movement = patrol
[walker@jup_a9_gen]
meet = no_meet
use_camp = false
combat_ignore_cond = true
combat_ignore_keep_when_attacked = true
invulnerable = true
gather_items_enabled = false
help_wounded_enabled = false
corpse_detection_enabled = false
[logic]
active = walker@jup_a9_teleport
[walker@jup_a9_teleport]:walker@jup_a9_gen
path_walk = jup_a9_temp_actor_walk
path_look = jup_a9_temp_actor_look
out_restr = jup_a9_in_rest_for_temp_actor
def_state_standing = wait_na
on_info = {=actor_in_zone(jup_a9_cam_1)} animpoint@jup_a9_cam_1 %=teleport_npc(jup_a9_cam_1_actor_walk)%, {=actor_in_zone(jup_a9_cam_2)} animpoint@jup_a9_cam_2 %=teleport_npc(jup_a9_cam_2_actor_walk)%, {=actor_in_zone(jup_a9_cam_3)} animpoint@jup_a9_cam_3 %=teleport_npc(jup_a9_cam_3_actor_walk)%
[animpoint@jup_a9_cam_1]:animpoint@jup_a9_actor_gen
avail_animations = jup_a9_cam1_actor
cover_name = jup_a9_cam_1_animpoint
on_info = {+jup_a9_cam1_actor_anim_end} walker@jup_a9_cam_1
[walker@jup_a9_cam_1]:walker@jup_a9_gen
path_walk = jup_a9_cam_1_actor_walk2
path_look = jup_a9_cam_1_actor_look2
def_state_moving = patrol
def_state_standing = guard
[animpoint@jup_a9_cam_2]:animpoint@jup_a9_actor_gen
avail_animations = jup_a9_cam2_actor
cover_name = jup_a9_cam_2_animpoint
out_restr = jup_factory_default_in_restrictor
[animpoint@jup_a9_cam_3]:animpoint@jup_a9_actor_gen
avail_animations = jup_a9_cam3_actor
cover_name = jup_a9_cam_3_animpoint
out_restr = jup_factory_default_in_restrictor

Some files were not shown because too many files have changed in this diff Show more