e4s-sdk/gamedata/configs/scripts/jupiter/jup_b1_stalker_1.ltx
2026-06-17 23:06:51 +03:00

220 lines
No EOL
7.8 KiB
TeX

[walker@generic]
gather_items_enabled = false
help_wounded_enabled = true
corpse_detection_enabled = false
wounded = wounded
danger = danger
;----------------------------------------------------------------------------------------------------------
[logic@jup_b1_stalker_1] ;ïðîõîäèì â òóííåëü
suitable = {=check_npc_name(jup_b1_stalker_1) !actor_has_item(jup_b1_half_artifact) -jup_b1_task_done} true
prior = 70
active = walker@first
on_death = death
on_combat = combat
post_combat_time = 0, 0
[walker@first]:walker@generic
path_walk = st_1_first_stand
path_look = st_1_first_look
on_info = {=actor_has_item(jup_b1_half_artifact)} camper@zombie, {+jup_b1_start} walker@go_to_tunnel
on_info2 = {+jup_b1_st_go_home} patrol@go_to_base
meet = meet@start
[meet@start]
close_distance = 10
close_anim = guard
close_victim = actor
abuse = false
use = true
trade_enable = false
allow_break = false
[walker@go_to_tunnel]:walker@generic
def_state_moving1 = assault
path_walk = st_1_go_1
path_look = st_1_look_1
on_info = {+jup_b1_st_goin_in} smartcover@first, {+jup_b1_zomb_is_dead +jup_b1_zomb_3_is_dead +jup_b1_zomb_2_is_dead} walker@stay
meet = no_meet
[smartcover@first]:walker@generic
cover_name = jup_b1_st_1_hide_1
cover_state = default_behaviour
on_info = {+jup_b1_zomb_is_dead} walker@stay, {+jup_b1_kill_zombie} smartcover@first_kill_zomb, {=npc_in_zone(jup_b1_st_1_hide)} %+jup_b1_st_1_at_pos%, {+jup_b1_zomb_be_fucked} walker@stay
meet = no_meet
combat_ignore_cond = true
[smartcover@first_kill_zomb]:walker@generic
cover_name = jup_b1_st_1_hide_1
cover_state = fire_target
on_info = {+jup_b1_zomb_is_dead} walker@stay
use_in_combat = true
target_enemy = jup_b1_zombie_1
meet = no_meet
combat_ignore_cond = true
[walker@stay]:walker@generic
def_state_moving1 = assault
path_walk = st_1_stay
path_look = st_1_stay_look
meet = no_meet
on_info = {+jup_b1_zomb_is_dead +jup_b1_zomb_3_is_dead +jup_b1_zomb_2_is_dead} walker@stay_2
[walker@stay_2]:walker@generic
def_state_moving1 = assault
path_walk = st_1_stay
path_look = st_1_stay_look
meet = no_meet
on_signal = at_pos | walker@stay_talk
on_game_timer = 45 | {!is_playing_sound -jup_b1_sd_2} %=play_sound(jup_b1_stalkers_monsters_out) +jup_b1_sd_2%
[walker@stay_talk]:walker@generic
path_walk = st_1_stay
path_look = st_1_stay_look
meet = meet@for_art
on_info = {=dist_to_actor_le(3) -jup_b1_sd_3} %=play_sound(jup_b1_stalkers_second_stay) +jup_b1_sd_3%
on_info2 = {=counter_equal(jup_b1_tushkano_death:5) -jup_b1_sd_5} %=play_sound(jup_b1_stalkers_monsters_beat_off) +jup_b1_sd_5%
[meet@for_art]
close_distance = 10
close_anim = guard
close_victim = actor
abuse = false
use = false
;--------------------- ïîñëå ïðåâðàùåíèÿ â çîìáè
[remark@psy_back]:walker@generic
anim = psy_pain
target = path | jup_b1_st_1_zombie_look, 0
on_timer = 7500 | remark@thanks
meet = no_meet
combat_ignore_cond = true
combat_ignore_keep_when_attacked = true
[remark@thanks]:walker@generic
anim = guard
target = story | actor
meet = meet@get_on_air
on_info = {+jup_b1_go_on_air} walker@on_air
on_info2 = {=dist_to_actor_ge(75)} patrol@go_to_base %+jup_b1_go_from_task%, {+jup_b1_go_from_task} patrol@go_to_base
in_restr = jup_b1_anomal_place
on_timer = 17500 | {!talking} walker@on_air
on_timer2 = 17000 | {!is_playing_sound -jup_b1_sd_6} %=play_sound(jup_b1_stalkers_get_out) +jup_b1_sd_6%
[meet@get_on_air]
close_snd_hello = nil
close_snd_bye = nil
snd_on_use = nil
close_distance = 10
close_anim = guard
close_victim = actor
abuse = false
meet_dialog = jup_b1_st_go_to_exit
trade_enable = false
allow_break = false
[walker@on_air]:walker@generic
def_state_moving1 = assault
path_walk = st_1_final_stay
path_look =st_1_final_look
meet = no_meet
on_signal = at_pos | walker@on_air_talk
on_info = {=dist_to_actor_ge(75)} patrol@go_to_base %+jup_b1_go_from_task%, {+jup_b1_go_from_task} patrol@go_to_base
[walker@on_air_talk]:walker@generic
path_walk = st_1_final_stay
path_look = st_1_final_look
on_info = {=dist_to_actor_ge(75)} patrol@go_to_base %+jup_b1_go_from_task%, {+jup_b1_go_from_task} patrol@go_to_base
meet = meet@go_home
[meet@go_home]
close_distance = 10
close_anim = guard
close_victim = actor
use = true
abuse = false
trade_enable = false
allow_break = false
[patrol@go_to_base]:walker@generic
path_walk = patrol_to_the_home
commander = true
formation = back
on_signal = at_pos | %-jup_b1_st_mission%
meet = no_meet
on_info = {=health_le(0.5) !actor_enemy} %=restore_health%
;--------------------- ïðåâðàùåíèå â çîìáè
[logic@jup_b1_zomb_stalker_1]
suitable = {=check_npc_name(jup_b1_stalker_1) =actor_has_item(jup_b1_half_artifact)} true
prior = 70
active = camper@zombie
on_death = death
on_combat = combat
post_combat_time = 0, 0
[camper@zombie]:walker@generic
path_walk = st_1_zombie_stay
path_look = st_1_zombie_look
def_state_standing = guard
on_game_timer = 10 | remark@psy_wounded %+jup_b1_spawn_controller%
radius = 0
no_retreat = true
meet = no_meet
show_spot = false
combat_ignore_cond = true
combat_ignore_keep_when_attacked = true
on_info = {+jup_b1_go_from_task} patrol@go_to_base, {=dist_to_actor_ge(140)} %=kill_npc%
[remark@psy_wounded]:walker@generic
anim = psy_pain
target = path | jup_b1_st_1_zombie_look, 0
on_info = {-jup_b1_st_warn =actor_in_zone(jup_b1_zombie_start_zone) !is_playing_sound} remark@turnin_zombie %=play_sound(jup_b1_stalker_warning) +jup_b1_st_warn%
on_info2 = {=dist_to_actor_ge(140)} %=kill_npc%
combat_ignore_cond = true
combat_ignore_keep_when_attacked = true
meet = no_meet
show_spot = false
[remark@turnin_zombie]:walker@generic
anim = psy_pain
target = path | jup_b1_st_1_zombie_look, 0
on_info = {+jup_b1_controller_is_dead} remark@psy_back %=set_squad_goodwill(jup_b1_stalker_squad:friend)%
on_info2 = {=dist_to_actor_ge(140)} %=kill_npc%
on_timer = 24000 | walker@zombied %=set_squad_goodwill(jup_b1_stalker_squad:enemy)%
combat_ignore_cond = true
combat_ignore_keep_when_attacked = true
meet = no_meet
[walker@zombied]:walker@generic
path_walk = st_1_zombie_walk
on_info = {+jup_b1_controller_is_dead} remark@psy_back %=set_squad_goodwill(jup_b1_stalker_squad:friend)%
on_info2 = {=health_le(0.2)} %=restore_health%
on_info3 = {=dist_to_actor_ge(140)} %=kill_npc%
meet = no_meet
in_restr = jup_b1_anomal_place
combat_ignore_cond = {=check_enemy_name(jup_b1_controller)} true
;-------------------------------------------------------------
[danger]
ignore_distance = 0
ignore_distance_grenade = 0
ignore_distance_corpse = 0
ignore_distance_hit = 0
ignore_distance_sound = 0
[wounded]
hp_state = 0|wounded_heavy@help_heavy
hp_state_see = 0|wounded_heavy@help_heavy
hp_victim = 0|nil
hp_fight = 0|false
hp_cover = 0|false
[combat]
on_info = {=actor_enemy} %+jup_b1_actor_atk_squad%
[death]
on_info = {=killed_by_actor -jup_b1_give_task =squad_exist(jup_b1_stalker_squad)} %+jup_b1_actor_atk_squad +jup_1_stalker_squad_killed_before_mission +jup_b1_stalker_1_is_dead =set_squad_enemy_to_actor(jup_b1_stalker_squad) =stop_sound%, {-jup_b1_give_task =squad_exist(jup_b1_stalker_squad)} %+jup_1_stalker_squad_killed_before_mission +jup_b1_stalker_1_is_dead =stop_sound%, {-jup_b1_give_task +jup_b1_stalker_2_is_dead +jup_b1_stalker_3_is_dead +jup_b1_stalker_4_is_dead} %+jup_1_stalker_squad_killed_before_mission +jup_b1_squad_is_dead +jup_b1_stalker_1_is_dead =stop_sound%, {+jup_b1_give_task +jup_b1_stalker_2_is_dead +jup_b1_stalker_3_is_dead +jup_b1_stalker_4_is_dead} %+jup_b1_squad_is_dead +jup_b1_stalker_1_is_dead =stop_sound%, {=killed_by_actor =squad_exist(jup_b1_stalker_squad)} %+jup_b1_stalker_1_is_dead =set_squad_enemy_to_actor(jup_b1_stalker_squad) =stop_sound%, %+jup_b1_stalker_1_is_dead =stop_sound%