1 #using scripts\codescripts\struct;
3 #using scripts\shared\util_shared;
5 #insert scripts\shared\shared.gsh;
7 #using scripts\mp\gametypes\_perplayer;
9 #using scripts\mp\_util;
13 level.tearradius = 170;
14 level.tearheight = 128;
15 level.teargasfillduration = 7;
16 level.teargasduration = 23;
17 level.tearsufferingduration = 3;
19 level.teargrenadetimer = 4;
31 self notify(
"stop_monitoring_tear_usage");
36 self endon(
"stop_monitoring_tear_usage");
40 weapon = GetWeapon(
"tear_grenade" );
41 if (!
self hasWeapon( weapon ))
46 prevammo =
self getammocount( weapon );
49 ammo =
self getammocount( weapon );
52 num = prevammo - ammo;
53 for (i = 0; i < num; i++)
55 grenades = getEntArray(
"grenade",
"classname");
58 for (g = 0; g < grenades.size; g++)
60 if (!isdefined(grenades[g].teargrenade))
62 dist = distance(grenades[g].origin,
self.origin + (0,0,48));
63 if (!isdefined(bestdist) || dist < bestdist)
70 if (isdefined(bestdist))
72 grenades[bestg].teargrenade =
true;
87 wait level.teargrenadetimer;
90 ent thread
tear(
self.origin);
95 trig =
spawn(
"trigger_radius", pos, 0, level.tearradius, level.tearheight);
97 starttime = gettime();
100 self endon(
"tear_timeout");
104 trig waittill(
"trigger", player);
106 if (player.sessionstate !=
"playing")
109 time = (gettime() - starttime) / 1000;
111 currad = level.tearradius;
112 curheight = level.tearheight;
113 if (time < level.teargasfillduration) {
114 currad = currad * (time / level.teargasfillduration);
115 curheight = curheight * (time / level.teargasfillduration);
118 offset = (player.origin + (0,0,32)) - pos;
119 offset2d = (offset[0], offset[1], 0);
120 if (lengthsquared(offset2d) > currad*currad)
122 if (player.origin[2] - pos[2] > curheight)
125 player.teargasstarttime = gettime();
126 if (!isdefined(player.teargassuffering))
132 wait level.teargasduration;
133 self notify(
"tear_timeout");
139 self endon(
"disconnect");
141 self.teargassuffering =
true;
144 self shellshock(
"teargas", 60);
148 if (gettime() -
self.teargasstarttime > level.tearsufferingduration * 1000)
154 self shellshock(
"teargas", 1);
157 self.teargassuffering = undefined;