1 #using scripts\codescripts\struct;
2 #using scripts\shared\callbacks_shared;
3 #using scripts\shared\clientfield_shared;
4 #using scripts\shared\system_shared;
5 #using scripts\shared\util_shared;
6 #using scripts\shared\weapons\_decoy;
7 #using scripts\shared\weapons\_weaponobjects;
8 #using scripts\shared\duplicaterender_mgr;
9 #insert scripts\shared\clientfields.gsh;
10 #insert scripts\shared\shared.gsh;
11 #insert scripts\shared\version.gsh;
13 #namespace threat_detector;
19 level.sensorHandle = 1;
32 if( GetLocalPlayer( localClientNum ) !=
self.owner )
37 sensorIndex = level.sensors.size;
40 level.sensors[ sensorIndex ] = spawnstruct();
41 level.sensors[ sensorIndex ].handle = level.sensorHandle;
42 level.sensors[ sensorIndex ].cent =
self;
43 level.sensors[ sensorIndex ].team =
self.team;
44 level.sensors[ sensorIndex ].owner =
self GetOwner( localClientNum );
46 level.sensors[ sensorIndex ].owner AddSensorGrenadeArea(
self.origin, level.sensorHandle );
54 sensorEnt endon(
"entityshutdown" );
56 if( isdefined( sensorEnt.owner ) ==
false )
63 players = GetPlayers( localClientNum );
64 foreach( player
in players )
68 if( player hasPerk( localClientNum,
"specialty_nomotionsensor" ) || player hasPerk( localClientNum,
"specialty_sengrenjammer" ) )
74 threatDetectorRadius = GetDvarFloat(
"cg_threatDetectorRadius", 0 );
75 threatDetectorRadiusSqrd = threatDetectorRadius * threatDetectorRadius;
77 if( DistanceSquared( player.origin, sensorEnt.origin ) < threatDetectorRadiusSqrd )
94 sensorEnt waittill(
"entityshutdown" );
97 for( i = 0; i < level.sensors.size; i++ )
99 size = level.sensors.size;
100 if( sensorHandle == level.sensors[ i ].handle )
102 level.sensors[ i ].owner RemoveSensorGrenadeArea( sensorHandle );
108 players = GetPlayers( localClientNum );
109 foreach( player
in players )