1 #using scripts\shared\callbacks_shared;
2 #using scripts\shared\clientfield_shared;
3 #using scripts\shared\flag_shared;
4 #using scripts\shared\system_shared;
5 #using scripts\shared\util_shared;
6 #using scripts\shared\weapons\_tacticalinsertion;
8 #insert scripts\shared\clientfields.gsh;
9 #insert scripts\shared\shared.gsh;
10 #insert scripts\shared\version.gsh;
12 #using scripts\mp\gametypes\_spawnlogic;
15 #using scripts\mp\_util;
16 #using scripts\mp\killstreaks\_airsupport;
43 self endon(
"death" );
44 self endon(
"disconnect" );
47 while( IsDefined(
self) )
49 flying = !(
self isOnGround() );
50 if (
self.flying != flying )
62 self endon(
"death" );
63 self endon(
"disconnect" );
68 if ( require_perk &&
self HasPerk(
"specialty_gpsjammer" ) ==
false )
72 gracePeriods = GetDvarInt(
"perk_gpsjammer_graceperiods", 4 );
73 minspeed = GetDvarInt(
"perk_gpsjammer_min_speed", 100 );
74 mindistance = GetDvarInt(
"perk_gpsjammer_min_distance", 10 );
75 timePeriod = GetDvarInt(
"perk_gpsjammer_time_period", 200 );
76 timePeriodSec = timePeriod/1000;
77 minspeedSq = minspeed * minspeed;
78 mindistanceSq = mindistance * mindistance;
80 if ( minspeedSq == 0 )
83 assert ( timePeriodSec >= 0.05 );
84 if ( timePeriodSec < 0.05 )
89 failedDistanceCheck =
false;
92 timeSinceDistanceCheck = 0;
93 previousOrigin =
self.origin;
94 GPSJammerProtection =
false;
98 GPSJammerProtection =
false;
101 GPSJammerProtection =
true;
105 if ( timeSinceDistanceCheck > 1 )
107 timeSinceDistanceCheck = 0;
108 if ( DistanceSquared( previousOrigin,
self.origin ) < mindistanceSq )
110 failedDistanceCheck =
true;
114 failedDistanceCheck =
false;
116 previousOrigin =
self.origin;
118 velocity =
self GetVelocity();
120 speedsq = lengthsquared( velocity );
122 if ( speedSq > minspeedSq && failedDistanceCheck ==
false )
124 GPSJammerProtection =
true;
128 if ( GPSJammerProtection ==
true &&
self HasPerk(
"specialty_gpsjammer" ) )
130 currentFailCount = 0;
131 if ( hasPerk ==
false )
142 if ( hasPerk ==
true && currentFailCount >= gracePeriods )
151 level notify(
"radar_status_change");
153 timeSinceDistanceCheck += timePeriodSec;
154 wait( timePeriodSec );
160 self endon(
"death" );
161 self endon(
"disconnect" );
165 if ( require_perk &&
self HasPerk(
"specialty_sengrenjammer" ) ==
false )
169 gracePeriods = GetDvarInt(
"perk_sgjammer_graceperiods", 4 );
170 minspeed = GetDvarInt(
"perk_sgjammer_min_speed", 100 );
171 mindistance = GetDvarInt(
"perk_sgjammer_min_distance", 10 );
172 timePeriod = GetDvarInt(
"perk_sgjammer_time_period", 200 );
173 timePeriodSec = timePeriod/1000;
174 minspeedSq = minspeed * minspeed;
175 mindistanceSq = mindistance * mindistance;
177 if ( minspeedSq == 0 )
180 assert ( timePeriodSec >= 0.05 );
181 if ( timePeriodSec < 0.05 )
186 failedDistanceCheck =
false;
187 currentFailCount = 0;
189 timeSinceDistanceCheck = 0;
190 previousOrigin =
self.origin;
191 SGJammerProtection =
false;
195 SGJammerProtection =
false;
198 SGJammerProtection =
true;
202 if ( timeSinceDistanceCheck > 1 )
204 timeSinceDistanceCheck = 0;
205 if ( DistanceSquared( previousOrigin,
self.origin ) < mindistanceSq )
207 failedDistanceCheck =
true;
211 failedDistanceCheck =
false;
213 previousOrigin =
self.origin;
215 velocity =
self GetVelocity();
217 speedsq = lengthsquared( velocity );
219 if ( speedSq > minspeedSq && failedDistanceCheck ==
false )
221 SGJammerProtection =
true;
225 if ( SGJammerProtection ==
true &&
self HasPerk(
"specialty_sengrenjammer" ) )
227 currentFailCount = 0;
228 if ( hasPerk ==
false )
239 if ( hasPerk ==
true && currentFailCount >= gracePeriods )
248 level notify(
"radar_status_change");
250 timeSinceDistanceCheck += timePeriodSec;
251 wait( timePeriodSec );