1 #using scripts\codescripts\struct;
3 #using scripts\shared\system_shared;
4 #using scripts\shared\util_shared;
5 #using scripts\shared\clientfield_shared;
6 #using scripts\shared\postfx_shared;
7 #using scripts\shared\callbacks_shared;
9 #insert scripts\shared\shared.gsh;
10 #insert scripts\shared\version.gsh;
12 #namespace burnplayer;
17 #precache( "client_fx", "fire/fx_fire_ai_human_arm_left_loop" );
18 #precache( "client_fx", "fire/fx_fire_ai_human_arm_left_os" );
19 #precache( "client_fx", "fire/fx_fire_ai_human_arm_right_loop" );
20 #precache( "client_fx", "fire/fx_fire_ai_human_arm_right_os" );
21 #precache( "client_fx", "fire/fx_fire_ai_human_hip_left_loop" );
22 #precache( "client_fx", "fire/fx_fire_ai_human_hip_left_os" );
23 #precache( "client_fx", "fire/fx_fire_ai_human_hip_right_loop" );
24 #precache( "client_fx", "fire/fx_fire_ai_human_hip_right_os" );
25 #precache( "client_fx", "fire/fx_fire_ai_human_leg_left_loop" );
26 #precache( "client_fx", "fire/fx_fire_ai_human_leg_left_os" );
27 #precache( "client_fx", "fire/fx_fire_ai_human_leg_right_loop" );
28 #precache( "client_fx", "fire/fx_fire_ai_human_leg_right_os" );
29 #precache( "client_fx", "fire/fx_fire_ai_human_torso_loop" );
30 #precache( "client_fx", "fire/fx_fire_ai_human_torso_os" );
31 #precache( "client_fx", "fire/fx_fire_ai_human_head_loop" );
32 #precache( "client_fx", "fire/fx_fire_ai_human_head_os" );
47 level._effect[
"burn_j_elbow_le_loop"] =
"fire/fx_fire_ai_human_arm_left_loop";
48 level._effect[
"burn_j_elbow_ri_loop"] =
"fire/fx_fire_ai_human_arm_right_loop";
49 level._effect[
"burn_j_shoulder_le_loop"] =
"fire/fx_fire_ai_human_arm_left_loop";
50 level._effect[
"burn_j_shoulder_ri_loop"] =
"fire/fx_fire_ai_human_arm_right_loop";
51 level._effect[
"burn_j_spine4_loop"] =
"fire/fx_fire_ai_human_torso_loop";
52 level._effect[
"burn_j_hip_le_loop"] =
"fire/fx_fire_ai_human_hip_left_loop";
53 level._effect[
"burn_j_hip_ri_loop"] =
"fire/fx_fire_ai_human_hip_right_loop";
54 level._effect[
"burn_j_knee_le_loop"] =
"fire/fx_fire_ai_human_leg_left_loop";
55 level._effect[
"burn_j_knee_ri_loop"] =
"fire/fx_fire_ai_human_leg_right_loop";
56 level._effect[
"burn_j_head_loop"] =
"fire/fx_fire_ai_human_head_loop";
58 level._effect[
"burn_j_elbow_le_os"] =
"fire/fx_fire_ai_human_arm_left_os";
59 level._effect[
"burn_j_elbow_ri_os"] =
"fire/fx_fire_ai_human_arm_right_os";
60 level._effect[
"burn_j_shoulder_le_os"] =
"fire/fx_fire_ai_human_arm_left_os";
61 level._effect[
"burn_j_shoulder_ri_os"] =
"fire/fx_fire_ai_human_arm_right_os";
62 level._effect[
"burn_j_spine4_os"] =
"fire/fx_fire_ai_human_torso_os";
63 level._effect[
"burn_j_hip_le_os"] =
"fire/fx_fire_ai_human_hip_left_os";
64 level._effect[
"burn_j_hip_ri_os"] =
"fire/fx_fire_ai_human_hip_right_os";
65 level._effect[
"burn_j_knee_le_os"] =
"fire/fx_fire_ai_human_leg_left_os";
66 level._effect[
"burn_j_knee_ri_os"] =
"fire/fx_fire_ai_human_leg_right_os";
67 level._effect[
"burn_j_head_os"] =
"fire/fx_fire_ai_human_head_os";
69 level.burnTags =
array(
"j_elbow_le",
"j_elbow_ri",
"j_shoulder_le",
"j_shoulder_ri",
"j_spine4",
"j_spinelower",
"j_hip_le",
"j_hip_ri",
"j_head",
"j_knee_le",
"j_knee_ri" );
74 RegisterRewindFX( localClientNum, level._effect[
"burn_j_elbow_le_loop"]);
75 RegisterRewindFX( localClientNum, level._effect[
"burn_j_elbow_ri_loop"]);
76 RegisterRewindFX( localClientNum, level._effect[
"burn_j_shoulder_le_loop"]);
77 RegisterRewindFX( localClientNum, level._effect[
"burn_j_shoulder_ri_loop"]);
78 RegisterRewindFX( localClientNum, level._effect[
"burn_j_spine4_loop"]);
79 RegisterRewindFX( localClientNum, level._effect[
"burn_j_hip_le_loop"]);
80 RegisterRewindFX( localClientNum, level._effect[
"burn_j_hip_ri_loop"]);
81 RegisterRewindFX( localClientNum, level._effect[
"burn_j_knee_le_loop"]);
82 RegisterRewindFX( localClientNum, level._effect[
"burn_j_knee_ri_loop"]);
83 RegisterRewindFX( localClientNum, level._effect[
"burn_j_head_loop"]);
91 function burning_callback( localClientNum, oldVal, newVal, bNewEnt, bInitialSnap, fieldName, bWasTimeJump )
122 self notify(
"burn_off" );
124 if( GetLocalPlayer( localClientNum ) ==
self )
132 if( GetLocalPlayer( localClientNum ) !=
self || IsThirdPerson( localClientNum ) )
137 if( GetLocalPlayer( localClientNum ) ==
self && !IsThirdPerson( localClientNum ) )
145 self endon(
"entityshutdown" );
146 self endon(
"burn_off" );
147 self endon(
"death" );
148 self notify(
"burn_on_postfx" );
149 self endon(
"burn_on_postfx" );
151 self thread postfx::PlayPostfxBundle(
"pstfx_burn_loop" );
154 function private _burnTag( localClientNum, tag, postfix )
156 if( isDefined(
self ) &&
self hasdobj( localclientnum ) )
158 fxname =
"burn_" + tag + postfix;
159 if( isDefined( level._effect[fxname] ) )
161 return PlayFXOnTag( localClientNum, level._effect[fxname],
self, tag );
168 if( !isDefined(
self ) )
171 self endon(
"entityshutdown" );
172 self endon(
"burn_off" );
173 self notify(
"burn_tags_on" );
174 self endon(
"burn_tags_on" );
177 for( i = 0; i < tags.size; i++ )
179 activeFx[activeFx.size] =
self _burnTag( localClientNum, tags[i],
"_loop" );
182 burnSound =
self playloopsound(
"chr_burn_loop_overlay", .5);
190 self endon(
"entityshutdown");
192 self thread
_burnTagsOn( localClientNum, level.burnTags );
197 self endon (
"entityshutdown" );
199 self waittill(
"burn_off" );
201 if( isdefined( burnSound ) )
203 self stoploopsound( burnSound, 1 );
206 if( isDefined( fxArray ) )
208 foreach( fx
in fxArray )
210 StopFx( localClientNum, fx );
217 self endon(
"burn_off" );
218 self waittill(
"entityshutdown" );
220 if( isdefined( burnSound ) )
222 stopsound( burnSound );
225 if( isDefined( fxArray ) )
227 foreach( fx
in fxArray )
229 StopFx( localClientNum, fx );