1 #using scripts\codescripts\struct;
3 #using scripts\shared\array_shared;
4 #using scripts\shared\callbacks_shared;
5 #using scripts\shared\clientfield_shared;
6 #using scripts\shared\duplicaterender_mgr;
7 #using scripts\shared\filter_shared;
8 #using scripts\shared\util_shared;
11 #insert scripts\shared\duplicaterender.gsh;
12 #insert scripts\mp\_hacker_tool.gsh;
13 #insert scripts\shared\shared.gsh;
14 #insert scripts\shared\version.gsh;
15 #insert scripts\shared\weapons\_weaponobjects.gsh;
17 #using scripts\shared\system_shared;
19 #namespace killstreak_detect;
39 level.emp_killstreaks = [];
42 function vehicle_transition( local_client_num, oldVal, newVal, bNewEnt, bInitialSnap, fieldName, bWasTimeJump )
44 player = GetLocalPlayer( local_client_num );
49 showOutlines = !(
self IsLocalClientDriver( local_client_num ) );
56 local_player = GetLocalPlayer( local_client_num );
58 return ( isdefined( local_player ) && isdefined(
self.team ) && ( local_player.team ===
self.team || local_player HasPerk( local_client_num,
"specialty_showenemyvehicles" ) ) );
63 if ( isdefined( level.scriptMoverCompassIcons ) && isdefined(
self.model ) )
65 if ( isdefined( level.scriptMoverCompassIcons[
self.model] ) )
69 self setCompassIcon( level.scriptMoverCompassIcons[
self.model] );
74 enemyvehicle_changed( local_client_num, oldVal, newVal, bNewEnt, bInitialSnap, fieldName, bWasTimeJump );
79 if ( isdefined( level.missileCompassIcons ) && isdefined(
self.weapon ) )
81 if ( isdefined( level.missileCompassIcons[
self.weapon] ) )
85 self setCompassIcon( level.missileCompassIcons[
self.weapon] );
90 enemymissile_changed( local_client_num, oldVal, newVal, bNewEnt, bInitialSnap, fieldName, bWasTimeJump );
93 function enemymissile_changed( local_client_num, oldVal, newVal, bNewEnt, bInitialSnap, fieldName, bWasTimeJump )
96 self util::add_remove_list( level.enemymissiles, newVal );
103 self util::add_remove_list( level.enemyvehicles, newVal );
107 if ( isdefined(
self.model ) &&
self.model ==
"wpn_t7_turret_emp_core" &&
self.type ===
"vehicle" )
125 if ( !( isdefined(
self ) ) )
129 watcher = GetLocalPlayer( local_client_num );
136 self.isEnemyVehicle =
false;
137 if ( !
friend && IsDefined( watcher ) && watcher HasPerk( local_client_num,
"specialty_showenemyvehicles" ) )
139 if ( !isdefined(
self.isbreachingfirewall ) ||
self.isbreachingfirewall ==
false )
143 self.isEnemyVehicle =
true;
148 driver = (
self.type ===
"vehicle" ) &&
self IsLocalClientDriver( local_client_num );
149 showOutlines = ( driver === false ) && ( newVal ===
ENEMY_VEHICLE_ACTIVE || newVal === ENEMY_VEHICLE_HACKED );
157 if ( newVal == ENEMY_VEHICLE_HACKED )
159 self.killstreakIsHacked =
true;
167 if ( !( isdefined(
self ) ) )
171 watcher = GetLocalPlayer( local_client_num );
178 self.isEnemyVehicle =
false;
179 if ( !
friend && IsDefined( watcher ) && watcher HasPerk( local_client_num,
"specialty_showenemyvehicles" ) )
181 if ( !isdefined(
self.isbreachingfirewall ) ||
self.isbreachingfirewall ==
false )
185 self.isEnemyVehicle =
true;
198 if ( newVal == ENEMY_VEHICLE_HACKED )
200 self.killstreakIsHacked =
true;
208 if(
self != GetLocalPlayer( local_client_num ) )
211 self notify(
"watch_killstreak_detect_perks_changed" );
212 self endon(
"watch_killstreak_detect_perks_changed" );
213 self endon(
"death" );
214 self endon(
"disconnect" );
215 self endon(
"entityshutdown" );
217 while(IsDefined(
self))
220 util::clean_deleted(level.enemyvehicles);
221 util::clean_deleted(level.enemymissiles);
224 self waittill(
"perks_changed");
231 if ( !isdefined (
self.owner ) || !isdefined (
self.owner.team ) )
236 if ( !isdefined(
self.vehicleOldTeam ) )
238 self.vehicleOldTeam =
self.team;
241 if ( !isdefined(
self.vehicleOldOwnerTeam ) )
243 self.vehicleOldOwnerTeam =
self.owner.team;
246 watcher = GetLocalPlayer( localClientNum );
248 if ( !isdefined(
self.vehicleOldWatcherTeam ) )
250 self.vehicleOldWatcherTeam = watcher.team;
253 if (
self.vehicleOldTeam !=
self.team ||
self.vehicleOldOwnerTeam !=
self.owner.team ||
self.vehicleOldWatcherTeam != watcher.team)
255 self.vehicleOldTeam =
self.team;
256 self.vehicleOldOwnerTeam =
self.owner.team;
257 self.vehicleOldWatcherTeam = watcher.team;
259 self notify(
"team_changed" );
265 if ( !isdefined (
self.owner ) || !isdefined (
self.owner.team ) )
270 if ( !isdefined(
self.missileOldTeam ) )
272 self.missileOldTeam =
self.team;
275 if ( !isdefined(
self.missileOldOwnerTeam ) )
277 self.missileOldOwnerTeam =
self.owner.team;
280 watcher = GetLocalPlayer( localClientNum );
282 if ( !isdefined(
self.missileOldWatcherTeam ) )
284 self.missileOldWatcherTeam = watcher.team;
287 if (
self.missileOldTeam !=
self.team ||
self.missileOldOwnerTeam !=
self.owner.team ||
self.missileOldWatcherTeam != watcher.team)
289 self.missileOldTeam =
self.team;
290 self.missileOldOwnerTeam =
self.owner.team;
291 self.missileOldWatcherTeam = watcher.team;
293 self notify(
"team_changed" );