1 #using scripts\codescripts\struct;
3 #using scripts\shared\clientfield_shared;
4 #using scripts\shared\exploder_shared;
5 #using scripts\shared\laststand_shared;
6 #using scripts\shared\system_shared;
7 #using scripts\shared\visionset_mgr_shared;
8 #using scripts\shared\util_shared;
9 #using scripts\shared\_burnplayer;
11 #insert scripts\shared\shared.gsh;
12 #insert scripts\shared\version.gsh;
14 #using scripts\zm\_zm_audio;
15 #using scripts\zm\_zm_stats;
16 #using scripts\zm\_zm_traps;
17 #using scripts\zm\_zm_utility;
19 #using scripts\shared\ai\zombie_death;
21 #insert scripts\zm\_zm_perks.gsh;
22 #insert scripts\zm\_zm_traps.gsh;
24 #namespace zm_trap_fire;
34 foreach( trap
in a_traps )
42 self._trap_duration = 40;
43 self._trap_cooldown_time = 60;
45 if ( isdefined( level.sndTrapFunc ) )
47 level thread [[ level.sndTrapFunc ]](
self, 1 );
50 self notify(
"trap_activate");
51 level notify(
"trap_activate",
self );
57 for( i=0; i<fx_points.size; i++ )
68 self notify (
"trap_done");
75 sound_origin =
Spawn(
"script_origin",
self.origin );
76 sound_origin PlaySound(
"wpn_zmb_inlevel_fire_trap_start" );
77 sound_origin PlayLoopSound(
"wpn_zmb_inlevel_fire_trap_loop" );
82 if(isdefined(sound_origin))
84 PlaySoundAtPosition(
"wpn_zmb_inlevel_fire_trap_stop", sound_origin.origin );
86 sound_origin StopLoopSound();
88 playsoundatposition (
"zmb_fire_trap_cooldown", sound_origin.origin);
89 sound_origin Delete();
95 trap endon (
"trap_done");
98 wait( RandomFloatRange(0.1, 0.5) );
99 playsoundatposition(
"amb_flame",
self.origin );
106 self endon(
"disconnect");
111 if(
IS_TRUE( level.trap_fire_visionset_registered ) )
120 self notify(
"burned");
124 RadiusDamage(
self.origin,10,
self.health + 100,
self.health + 100);
125 self.is_burning = undefined;
129 self DoDamage(50,
self.origin);
131 self playsound(
"zmb_ignite");
132 self.is_burning = undefined;
141 n_param = RandomInt(100);
143 self.marked_for_death =
true;
147 if ( isdefined(
self.animname ) &&
self.animname !=
"zombie_dog" )
151 if( (n_param > 90) && (level.burning_zombies.size < 6) )
153 level.burning_zombies[level.burning_zombies.size] =
self;
155 self PlaySound(
"zmb_ignite");
158 PlayFxOnTag( level._effect[
"character_fire_death_torso"],
self,
"J_SpineLower" );
160 wait( RandomFloat(1.25) );
165 refs[1] =
"right_arm";
166 refs[2] =
"left_arm";
167 refs[3] =
"right_leg";
168 refs[4] =
"left_leg";
171 self.a.gib_ref = refs[RandomInt(refs.size)];
173 PlaySoundAtPosition(
"zmb_ignite",
self.origin);
175 wait( RandomFloat(1.25) );
176 self PlaySound(
"zmb_vocals_zombie_death_fire");
181 if ( isdefined(
self.fire_damage_func ) )
183 self [[
self.fire_damage_func ]]( trap );
187 level notify(
"trap_kill",
self, trap );
188 self DoDamage(
self.health + 666,
self.origin, trap);