1 #using scripts\codescripts\struct;
3 #using scripts\shared\callbacks_shared;
4 #using scripts\shared\clientfield_shared;
5 #using scripts\shared\duplicaterender_mgr;
6 #using scripts\shared\system_shared;
7 #using scripts\shared\util_shared;
9 #using scripts\shared\abilities\_ability_player;
10 #using scripts\shared\abilities\_ability_power;
11 #using scripts\shared\abilities\_ability_util;
13 #insert scripts\shared\shared.gsh;
14 #insert scripts\shared\version.gsh;
15 #insert scripts\shared\duplicaterender.gsh;
19 #define TURRET_OUTLINE_MATERIAL "mc/hud_keyline_green"
20 #define TURRET_OUTLINE_MATERIAL_WARN "mc/hud_keyline_red"
50 if ( IsDefined(
self.owner) &&
self.owner == getlocalplayer( local_client_num ) )
70 player = getnonpredictedlocalplayer( localClientNum );
71 player2 = getlocalplayer( localClientNum );
73 if ( isdefined( player ) )
75 if ( player GetInKillcam( localClientNum ) )
83 else if ( player != player2 )
96 self notify(
"end_turret_keyline");
103 self endon(
"end_turret_keyline");
104 player = GetLocalPlayer( localClientNum );
105 if( isdefined(
self.owner) &&
self.owner == player )
107 self.original_team =
self.team;
108 self.last_team =
self.team;
109 while( IsDefined(
self) )
111 player = GetLocalPlayer( localClientNum );
112 if( isdefined(
self.owner) &&
self.owner == player )
116 if (IsDefined(player))
118 if( isdefined(
self.team) &&
self.team == player.team )
123 if (
self.last_team !=
self.team )
125 if(
self.team !=
self.original_team )
129 self.last_team =
self.team;
144 player = getnonpredictedlocalplayer( localClientNum );
145 player2 = getlocalplayer( localClientNum );
147 if ( isdefined( player ) )
149 if ( player GetInKillcam( localClientNum ) )
157 else if ( player != player2 )
164 if ( !
IS_EQUAL(
self.dt_damage_state, newVal ) )
166 if ( IsDefined(
self.dt_damage_state_fx ) )
168 StopFX( localClientNum,
self.dt_damage_state_fx );
169 self.dt_damage_state_fx=undefined;
171 if ( IsDefined(level.deploy_turret_damage_fx[newVal] ) )
173 self.dt_damage_state_fx = PlayFxOnTag( localClientNum, level.deploy_turret_damage_fx[newVal],
self,
"tag_fx" );
176 self.dt_damage_state = newVal;
181 #precache( "client_fx", "destruct/fx_dest_turret_1" );
182 #precache( "client_fx", "destruct/fx_dest_turret_2" );
184 #define TURRET_DAMAGE_STATES 2
185 #define TURRET_DAMAGE_AMT_1 0.5
186 #define TURRET_DAMAGE_FX_1 "destruct/fx_dest_turret_1"
187 #define TURRET_DAMAGE_AMT_2 0.25
188 #define TURRET_DAMAGE_FX_2 "destruct/fx_dest_turret_2"
193 level.deploy_turret_damage_amt = [];
194 level.deploy_turret_damage_fx = [];
195 level.deploy_turret_damage_amt[0] = 1.0;
196 level.deploy_turret_damage_fx[0] = undefined;
201 level.deploy_turret_damage_amt[3] = 0.0;
202 level.deploy_turret_damage_fx[3] = undefined;
217 player = getnonpredictedlocalplayer( localClientNum );
218 player2 = getlocalplayer( localClientNum );
225 player = GetLocalPlayer( localClientNum );
226 if( isdefined(
self.owner) &&
self.owner == player )
230 if(
self.team ==
self.original_team )
232 IPrintLnBold(
"TURRET HACK IN PROGRESS");
239 self notify(
"stop_beeping");
247 self endon(
"stop_beeping");
248 while( IsDefined(
self) && IsDefined(
self.owner))
250 self.owner PlaySound( localClientNum,
"wpn_semtex_alert" );
257 IPrintLnBold(
"TURRET HAS BEEN HACKED");