1 #using scripts\codescripts\struct;
3 #using scripts\shared\callbacks_shared;
4 #using scripts\shared\challenges_shared;
5 #using scripts\shared\clientfield_shared;
6 #using scripts\shared\damagefeedback_shared;
7 #using scripts\shared\scoreevents_shared;
8 #using scripts\shared\system_shared;
9 #using scripts\shared\util_shared;
10 #using scripts\shared\weapons\_hacker_tool;
11 #using scripts\shared\weapons\_weaponobjects;
13 #insert scripts\shared\clientfields.gsh;
14 #insert scripts\shared\shared.gsh;
16 #insert scripts\shared\version.gsh;
18 #namespace threat_detector;
32 watcher.headicon =
false;
39 watcher.enemyDestroy =
true;
44 self endon(
"death" );
48 self SetOwner( player );
49 self SetTeam( player.team );
52 self PlayLoopSound(
"wpn_sensor_nade_lp" );
55 player AddWeaponStat(
self.weapon,
"used", 1 );
62 self endon(
"death" );
63 self endon(
"hacked" );
64 self endon(
"explode" );
65 owner endon(
"death" );
66 owner endon(
"disconnect" );
68 self waittill(
"stationary" );
74 if( !isdefined(
self.sensorGrenadeData ) )
76 self.sensorGrenadeData = [];
79 if ( !isdefined(
self.sensorGrenadeData[victim.clientid] ) )
81 self.sensorGrenadeData[victim.clientid] = getTime();
93 if ( !isdefined( weapon ) || !weapon.isEmp )
95 PlayFX( level._equipment_explode_fx,
self.origin );
98 if ( isdefined( attacker ) )
107 PlaySoundAtPosition (
"wpn_sensor_nade_explo",
self.origin );
117 self endon(
"death" );
118 self endon(
"hacked" );
120 self SetCanDamage(
true );
125 self.damageTaken = 0;
130 self.maxhealth = 100000;
131 self.health =
self.maxhealth;
133 self waittill(
"damage",
damage, attacker, direction, point, type, tagName, modelName, partname, weapon, iDFlags );
135 if( !isdefined( attacker ) || !isplayer( attacker ) )
138 if ( level.teambased && IsPlayer( attacker ) )
141 if( !level.hardcoreMode &&
self.owner.team == attacker.pers[
"team"] &&
self.owner != attacker )
151 if ( watcher.stunTime > 0 && weapon.doStun )
156 if ( weapon.doDamageFeedback )
159 if ( level.teambased &&
self.owner.team != attacker.team )
165 else if ( !level.teambased &&
self.owner != attacker )
172 if ( type ==
"MOD_MELEE" || weapon.isEmp )
174 self.damageTaken = damageMax;
181 if(
self.damageTaken >= damageMax )