1 /*-==============================
\r
3 ==============================-*/
\r
5 void () s_explode1 = [ 0, s_explode2 ]
\r
9 void () s_explode2 = [ 1, s_explode3 ]
\r
13 void () s_explode3 = [ 2, s_explode4 ]
\r
17 void () s_explode4 = [ 3, s_explode5 ]
\r
21 void () s_explode5 = [ 4, s_explode6 ]
\r
25 void () s_explode6 = [ 5, SUB_Remove ]
\r
29 void () s2_explode1 = [ 0, s2_explode2 ]
\r
33 void () s2_explode2 = [ 1, s2_explode3 ]
\r
37 void () s2_explode3 = [ 2, s2_explode4 ]
\r
41 void () s2_explode4 = [ 3, s2_explode5 ]
\r
45 void () s2_explode5 = [ 4, s2_explode6 ]
\r
49 void () s2_explode6 = [ 5, s2_explode7 ]
\r
53 void () s2_explode7 = [ 6, s2_explode8 ]
\r
57 void () s2_explode8 = [ 7, SUB_Remove ]
\r
61 void () MushroomFlame =
\r
66 t_ent.real_owner = self;
\r
69 t_ent.classname = "flamerflame";
\r
70 // t_ent.effects = 4;
\r
71 if ((self.classname == "airstrike"))
\r
73 t_ent.velocity_x = (random () * 1000);
\r
76 org2 = findbetterlocation (t_ent.origin);
\r
77 te_explosion (org2);
\r
78 effect (org2, "models/sprites/rocketexplosion.spr32", 0, 20, 40);
\r
80 t_ent.velocity_y = (random () * 1000);
\r
81 t_ent.velocity_z = 200;
\r
82 t_ent.think = s_explode1;
\r
83 t_ent.nextthink = (time + 0.300000);
\r
84 setmodel (t_ent, "progs/s_explod.spr");
\r
85 // setmodel (t_ent, "models/sprites/rocketexplosion.spr32");
\r
87 setsize (t_ent, '0 0 0', '0 0 0');
\r
88 setorigin (t_ent, (self.origin + '0 0 16'));
\r
93 void () Prox_Disarm =
\r
95 if ((other.classname != "player"))
\r
99 if (((other.playerclass == 1) && (other.team_no != self.team_no)))
\r
101 sprint (self.real_owner, "Your Proxi Mine Has Been Disarmed...\n");
\r
102 bprint (self.real_owner.netname);
\r
103 bprint ("'s proxi was defused by ");
\r
104 bprint (self.enemy.netname);
\r
106 //logfrag (self.real_owner, self.enemy.real_owner);
\r
107 self.enemy.real_frags = (self.enemy.real_frags + 1);
\r
108 if (!(toggleflags & 128))
\r
110 self.enemy.frags = self.enemy.real_frags;
\r
120 org2 = findbetterlocation (self.origin);
\r
121 te_explosion (org2);
\r
122 effect (org2, "models/sprites/rocketexplosion.spr32", 0, 20, 40);
\r
125 //make_explosion ();
\r
126 self.takedamage = 0;
\r
128 T_RadiusDamage (self, self.real_owner, 200, world);
\r
129 sprint (self.real_owner, "Your Proxi Mine is gone...\n");
\r
133 void () FoundBastard =
\r
137 self.touch = Prox_Disarm;
\r
138 sound (self, 3, "sound/proxi/beep.wav", 1, 1);
\r
139 self.skin = (self.real_owner.team_no + 3);
\r
140 dist = vlen ((self.enemy.origin - self.origin));
\r
141 if ((dist <= self.height))
\r
143 self.height = dist;
\r
144 self.nextthink = (time + ((dist / 1000) * 1.5));
\r
145 self.think = FoundBastard;
\r
150 //make_explosion ();
\r
154 WriteCoord (4, self.origin_x);
\r
155 WriteCoord (4, self.origin_y);
\r
156 WriteCoord (4, self.origin_z);
\r
157 //multicast (self.origin, 1);
\r
159 sprint (self.real_owner, "Proxi Mine is gone...\n");
\r
160 self.takedamage = 0;
\r
161 T_RadiusDamage (self, self.real_owner, 200, world);
\r
166 void () ProxArmed =
\r
172 self.velocity = '0 0 0';
\r
173 self.nextthink = (time + 1);
\r
174 self.think = ProxArmed;
\r
175 sound (self, 3, "sound/proxi/beep.wav", 0.3, 1);
\r
176 self.playerclass = (self.playerclass + 1);
\r
177 /* if ((self.skin == self.real_owner.team_no))
\r
183 self.skin = self.real_owner.team_no;
\r
185 //self.colormap = self.real_owner.colormap;
\r
186 te = find (world, classname, "player");
\r
189 if ((self.real_owner != te))
\r
191 if (((te.team_no != 0) && (te.team_no != self.team_no)))
\r
193 if ((te.health > 1))
\r
197 if ((te.undercover_team != self.team_no))
\r
199 dist = (te.origin - self.origin);
\r
200 if ((vlen (dist) < 200))
\r
202 self.height = vlen (dist);
\r
204 self.nextthink = 0.2;
\r
205 self.think = FoundBastard;
\r
212 te = find (te, classname, "player");
\r
214 if (((self.playerclass > 300) || (self.real_owner.playerclass != 3)))
\r
216 sprint (self.real_owner, "Your Proxi Mine Fizzled...\n");
\r
221 void () ProxAttach =
\r
223 self.touch = SUB_Null;
\r
224 self.think = ProxArmed;
\r
225 self.nextthink = (time + 0.5);
\r
226 sound (newmis, 0, "buttons/switch02.wav", 1, 1);
\r
232 local vector stopspot;
\r
234 local float proxicount;
\r
236 te = find (world, classname, "bot");
\r
239 if ((te.real_owner == self))
\r
241 proxicount = (proxicount + 1);
\r
243 if ((proxicount >= 2))
\r
245 sprint (self, "2 proximity grenades at a time!\n");
\r
248 te = find (te, classname, "bot");
\r
250 if ((self.no_grenades_2 < 2))
\r
252 sprint (self, "Not enough type 2 grenades... get more\n");
\r
253 if ((self.weaponmodel == "progs/proxgren.mdl"))
\r
255 self.weaponmodel = "progs/v_rock2.mdl";
\r
256 self.currentammo = self.ammo_rockets;
\r
257 //Attack_Finished (0.7);
\r
259 self.StatusRefreshTime = (time + 0.1);
\r
260 self.tfstate = (self.real_owner.tfstate - (self.real_owner.tfstate & 2));
\r
264 if ((self.weaponmodel != "progs/proxgren.mdl"))
\r
266 self.tfstate = (self.tfstate | 2);
\r
267 self.currentammo = 1;
\r
268 self.weaponmodel = "progs/proxgren.mdl";
\r
269 self.weaponframe = 0;
\r
272 makevectors (self.v_angle);
\r
273 org = (self.origin + (v_forward * 10));
\r
274 org_z = (self.absmin_z + (self.size_z * 0.7));
\r
275 traceline (org, (org + (v_forward * 70)), 0, self);
\r
276 stopspot = (trace_endpos - (v_forward * 8));
\r
277 if ((trace_fraction != 1))
\r
279 sound (self, 3, "buttons/switch02.wav", 1, 1);
\r
280 sprint (self, "Proximity mine set!\n");
\r
281 self.no_grenades_2 = (self.no_grenades_2 - 2);
\r
283 setsize(newmis, '-16 -16 0', '16 16 48');
\r
284 // newmis.owner = self;
\r
285 newmis.real_owner = self;
\r
286 newmis.weapon = 41;
\r
287 newmis.movetype = 0;//0;
\r
288 newmis.solid = SOLID_BBOX;
\r
289 newmis.classname = "bot";
\r
290 newmis.netname = "proxi";
\r
291 newmis.team_no = self.team_no;
\r
292 newmis.health = 30;
\r
293 newmis.takedamage = 2;
\r
294 newmis.th_die = ProxiDie;
\r
295 setsize (newmis, '-2 -2 -2', '2 2 2');
\r
296 newmis.angles = '0 0 0';
\r
297 newmis.nextthink = (time + 0.5);
\r
298 newmis.playerclass = 0;
\r
299 newmis.think = ProxAttach;
\r
302 newmis.colormap = self.colormap;
\r
303 setmodel (newmis, "models/proxi/proxymine2.md3");
\r
304 setorigin (newmis, stopspot - '0 0 4');
\r
305 self.tfstate = (self.tfstate - (self.tfstate & 2));
\r
306 self.weaponmodel = "progs/v_rock2.mdl";
\r
307 self.currentammo = self.ammo_rockets;
\r
308 //Attack_Finished (0.7);
\r
310 self.StatusRefreshTime = (time + 0.1);
\r