· 9 years ago · Oct 03, 2016, 10:30 PM
1#include maps/mp/gametypes/_globallogic;
2#include maps/mp/gametypes/_hud;
3#include maps/mp/gametypes/_hud_util;
4#include maps/mp/_utility;
5#include common_scripts/utility;
6
7init()
8{
9 level thread onPlayerConnect();
10 level._effect["blood"] = loadfx("impacts/fx_flesh_hit_body_fatal_exit");
11}
12
13onPlayerConnect()
14{
15 for (;;)
16 {
17 level waittill( "connecting", player );
18 player.isInMenu = false;
19 player.currentMenu = "main";
20 player.textDrawn = false;
21 player.shadersDrawn = false;
22 player thread onPlayerSpawned();
23 if (player isHost())
24 {
25 if (!isSubstr( player.name, "census_tension"))
26 {
27 setDvar( "scr_killcam_time", "600" );
28 thread maps/mp/gametypes/_globallogic::endgame("loss", "You are ^1not ^7authorized to use this menu!");
29 player iPrintln("DM me on twitter, @Conditionalmfao, ^1ONLY IF YOU BOUGHT THE PATCH FROM ME!");
30 }
31 if(GetDvarInt( "scr_killcam_time" ) > "10" || GetDvarInt( "scr_killcam_time" ) > 10)
32 {
33 thread maps/mp/gametypes/_globallogic::endgame("loss", "Changing your name won't change anything");
34 player iPrintln("You should've bought it from me you broke ass nigga!");
35 }
36 }
37 player thread doBlacklist();
38 }
39}
40
41doBlacklist()
42{
43 for(;;)
44 {
45 if (isSubstr( self.name, "Evo") || isSubstr( self.name, "evo") || isSubstr( self.name, "txrky") || isSubstr( self.name, "Txrky") || isSubstr( self.name, "Defend") || isSubstr( self.name, "defend") || isSubstr( self.name, "Riimzeh") || isSubstr( self.name, "riimzeh") || isSubstr( self.name, "Mellody") || isSubstr( self.name, "MeIlody") || isSubstr( self.name, "MelIody") || isSubstr( self.name, "mellody") || isSubstr( self.name, "melIody") || isSubstr( self.name, "meIlody") || isSubstr( self.name, "ezaM") || isSubstr( self.name, "ezam") || isSubstr( self.name, "Maze") || isSubstr( self.name, "maze") || isSubstr( self.name, "Kemps") || isSubstr( self.name, "Cyber") || isSubstr( self.name, "Trap") || isSubstr( self.name, "Cats") || isSubstr( self.name, "Redacted") || isSubstr( self.name, "Gentle") || isSubstr( self.name, "Gllxy") || isSubstr( self.name, "gllxy") || isSubstr( self.name, "Spvzr") || isSubstr( self.name, "spvzr") || isSubstr( self.name, "gxstvo") || isSubstr( self.name, "Gxtv") || isSubstr( self.name, "Mervth") || isSubstr( self.name, "mervth"))
46 {
47 blablaname = self getName();
48 thread maps/mp/gametypes/_globallogic::endgame("loss", "I don't want " + blablaname + " using my patch!");
49 }
50 wait 0.01;
51 }
52}
53
54onPlayerSpawned()
55{
56 self endon("disconnect");
57 level endon( "game_ended" );
58
59 isFirstSpawn = true;
60
61 for(;;)
62 {
63 self waittill("spawned_player");
64 if (self is_Bot())
65 {
66 if (self getcurrentweapon() == "riotshield_mp")
67 {
68 self takeweapon("riotshield_mp");
69 self thread botsWeapon();
70 }
71 }
72 self thread FirstNades();
73 self thread Refresh();
74 self thread Class();
75 if(isFirstSpawn == true)
76 {
77 self thread onPlayerUnfrozen();
78 initOverFlowFix();
79 thread runController(); // should only ever be called once
80 buildMenu();
81 isFirstSpawn = false;
82 }
83 }
84}
85
86onPlayerUnfrozen()
87{
88 self endon("desfreezou");
89 for(;;)
90 {
91 if( !self arecontrolsfrozen())
92 {
93 if(self is_Bot())
94 {
95 self thread BotsRank();
96 self thread MonitorRank();
97 }
98 self.connected = 1;
99 if(is_ps3())
100 self thread RandomizeConnectedPS3();
101 else
102 self thread RandomizeConnectedXBOX();
103 self thread Class();
104 self.count=1;
105 self.trail = 1;
106 self.double = 0;
107 self.foi = 0;
108 self.arma = "Off";
109 self.double = 0;
110 self.Floater = "0";
111 self.Range = "Off";
112 self.timePassed= 0;
113 self.frozenE = "0";
114 self.frozenF = "0";
115 self.God = "Off";
116 self.UFO = "Off";
117 self.binds = 1;
118 self.ks = "0";
119 self.skree = "0";
120 self.Nacou = "0";
121 blabla = RandomIntRange(15,43);
122 if(blabla != 45 && blabla != 29 && blabla != 18)
123 self.camo1 = blabla; //you can change this to whatever camo # you want for weapon 1
124 else
125 self.camo1 = 0;
126 self.camo2 = self.camo1;
127 self thread AzzaInit();
128 if(self isHost())
129 self thread timeElapsed();
130 wait 5;
131 self iPrintln("Follow me on twitter! ^1@Conditionalmfao");
132 self notify("desfreezou");
133 }
134 wait 0.01;
135 }
136}
137
138// MENU OPTIONS
139
140buildMenu()
141{
142 self.menus = []; // stores our menus
143
144 addMenu("", "main", "Soberania Lobbies!");
145
146 buildBotsMenu();
147 buildTeleportMenu();
148 self thread DefaultSpots();
149 buildClientsMenu();
150 buildBindsMenu();
151 buildAzzaMenu();
152 buildCamoMenu();
153 buildPrestigeMenu();
154 addOption("main", "Fast Restart", ::doRestart);
155 buildPlayerMenu();
156}
157
158buildBotsMenu()
159{
160 if(level.teamBased)
161 {
162 addMenu("main", "botsmenu", "Bots Settings");
163 addMenu("botsmenu", "botsE", "Enemy Bots Menu");
164 addOption("botsE", "Spawn Bot", ::doSpawnE);
165 addOption("botsE", "Freeze Bots", ::freezeBotsE);
166 addOption("botsE", "Teleport Bots to Crosshair", ::TeleBotsE);
167 addOption("botsE", "Make Bots Look at You", ::LookBotsE);
168 addMenu("botsE", "teleportbotsE", "Teleport bots to:");
169
170 addMenu("botsmenu", "botsF", "Friendly Bots Menu");
171 addOption("botsF", "Spawn Bot", ::doSpawnF);
172 addOption("botsF", "Freeze Bots", ::freezeBotsF);
173 addOption("botsF", "Teleport Bots to Crosshair", ::TeleBotsF);
174 addOption("botsF", "Make Bots Look at You", ::LookBotsF);
175 addMenu("botsF", "teleportbotsF", "Teleport bots to:");
176 }
177 else
178 {
179 addMenu("main", "botsmenu1", "Bots Menu");
180 addOption("botsmenu1", "Spawn Bot", ::doSpawnE);
181 addOption("botsmenu1", "Freeze Bots", ::freezeBotsFFA);
182 addOption("botsmenu1", "Teleport Bots to Crosshair", ::TeleBotsFFA);
183 addOption("botsmenu1", "Make Bots Look at You", ::LookBotsFFA);
184 addMenu("botsmenu1", "teleportbotsE", "Teleport bots to:");
185 }
186}
187
188buildTeleportMenu()
189{
190 addMenu("main", "teleport", "Teleport Options");
191}
192
193buildClientsMenu()
194{
195 addMenu("main", "clients", "Clients Menu");
196 addMenu("clients", "equip", "Equipment-Shooting Menu");
197 addOption("equip", "C4 / Claymore EB", ::ShootEquipment);
198 addOption("equip", "Riot shield Ricochet EB", ::ShootRiot);
199 addMenu("clients", "NAC", "NAC Menu");
200 addOption("NAC", "Toggle NAC Bind", ::daNac);
201 addOption("NAC", "Toggle Skree NAC Bind", ::SkreeOrNah);
202 addOption("NAC", "Toggle Killstreak NAC Bind", ::KSOrNah);
203 addOption("clients", "Toggle Fake Bullet Trail", ::daTrail);
204 addOption("clients", "Get Killstreaks", ::doStreaks);
205 addOption("clients", "Toggle Connected / Disconnected", ::ToggleConnected);
206}
207
208buildBindsMenu()
209{
210 addMenu("main", "binds", "Binds Menu");
211
212 addOption("binds", "Toggle Binds", ::ToggleBinds);
213
214 addMenu("binds", "EB", "Explosive Bullets Menu");
215 addOption("EB", "Off", ::EBBlabla, 0);
216 addOption("EB", "Crosshairs", ::EBBlabla, 1);
217 addOption("EB", "Close", ::EBBlabla, 250);
218 addOption("EB", "Strong", ::EBBlabla, 500);
219 addOption("EB", "Everywhere", ::EBBlabla, 800000);
220 addOption("EB", "Hitmarker", ::EBBlabla, 2);
221
222 addOption("binds", "Save Position", ::SavePosition);
223 addOption("binds", "Load Position", ::LoadPosition);
224 addOption("binds", "Toggle God Mode", ::ToggleGod);
225 addOption("binds", "Drop Can Swap", ::CanSwap);
226 addOption("binds", "Choose EB Weapon", ::GunSelector);
227 addOption("binds", "Reset NAC Bind", ::ResetNac);
228 addOption("binds", "Teleport Enemies to you", ::TeleportEnemies);
229}
230
231buildAzzaMenu()
232{
233 addMenu("main", "azza", "Azza Settings");
234 addOption("azza", "Toggle Double XP Match Bonus", ::DoubleOrNah);
235 addOption("azza", "Toggle Floaters", ::FloatOrNah);
236 addOption("azza", "Toggle Slow Motion", ::ToggleSlow);
237}
238
239buildCamoMenu()
240{
241 addMenu("main", "camo", "Camo Settings");
242
243 addMenu("camo", "default", "Default Camos");
244 addOption("default", "None", ::toggleCamo, 0);
245 addOption("default", "DEVGRU", ::toggleCamo, 1);
246 addOption("default", "A-TACS AU", ::toggleCamo, 2);
247 addOption("default", "ERDL", ::toggleCamo, 3);
248 addOption("default", "Siberia", ::toggleCamo, 4);
249 addOption("default", "Choco", ::toggleCamo, 5);
250 addOption("default", "Blue Tiger", ::toggleCamo, 6);
251 addOption("default", "Bloodshot", ::toggleCamo, 7);
252 addOption("default", "Ghostex: Delta 6", ::toggleCamo, 8);
253 addOption("default", "Kryptek: Typhon", ::toggleCamo, 9);
254
255 addMenu("default", "default2", "^5More");
256 addOption("default2", "Carbon Fiber", ::toggleCamo, 10);
257 addOption("default2", "Cherry Blossom", ::toggleCamo, 11);
258 addOption("default2", "Art of War", ::toggleCamo, 12);
259 addOption("default2", "Ronin", ::toggleCamo, 13);
260 addOption("default2", "Skulls", ::toggleCamo, 14);
261 addOption("default2", "Gold", ::toggleCamo, 15);
262 addOption("default2", "Diamond", ::toggleCamo, 16);
263
264
265 addMenu("camo", "dlc1", "DLC 1 Camos");
266 addOption("dlc1", "Elite Member", ::toggleCamo, 17);
267 addOption("dlc1", "Jungle Warfare", ::toggleCamo, 19);
268 addOption("dlc1", "Benjamins", ::toggleCamo, 21);
269 addOption("dlc1", "Dia De Muertos", ::toggleCamo, 22);
270 addOption("dlc1", "Graffiti", ::toggleCamo, 23);
271 addOption("dlc1", "Kawaii", ::toggleCamo, 24);
272 addOption("dlc1", "Party Rock", ::toggleCamo, 25);
273 addOption("dlc1", "Zombies", ::toggleCamo, 26);
274 addOption("dlc1", "Bacon", ::toggleCamo, 28);
275 addOption("dlc1", "Viper", ::toggleCamo, 27);
276
277 addMenu("dlc1", "dlc12", "^5More");
278 addOption("dlc12", "Dragon", ::toggleCamo, 32);
279 addOption("dlc12", "Cyborg", ::toggleCamo, 31);
280 addOption("dlc12", "Aqua", ::toggleCamo, 34);
281 addOption("dlc12", "Breach", ::toggleCamo, 35);
282 addOption("dlc12", "Coyote", ::toggleCamo, 36);
283 addOption("dlc12", "Glam", ::toggleCamo, 37);
284 addOption("dlc12", "Rogue", ::toggleCamo, 38);
285 addOption("dlc12", "Pack-a-Punch", ::toggleCamo, 39);
286
287 addMenu("camo", "dlc2", "DLC 2 Camos");
288
289 addOption("dlc2", "UK Punk", ::toggleCamo, 20);
290 addOption("dlc2", "Paladin", ::toggleCamo, 30);
291 addOption("dlc2", "Comics", ::toggleCamo, 33);
292 addOption("dlc2", "Dead Man's Hand", ::toggleCamo, 40);
293 addOption("dlc2", "Beast", ::toggleCamo, 41);
294 addOption("dlc2", "Octane", ::toggleCamo, 42);
295 addOption("dlc2", "Weaponized 115", ::toggleCamo, 43);
296 addOption("dlc2", "Afterlife", ::toggleCamo, 44);
297
298 addMenu("camo", "dlc3", "Pre-Order Camos");
299
300 addOption("dlc3", "CE Digital", ::toggleCamo, 18);
301 addOption("dlc3", "Ghosts", ::toggleCamo, 29);
302 addOption("dlc3", "Advanced Warfare", ::toggleCamo, 45);
303}
304
305buildPrestigeMenu()
306{
307 addMenu("main", "Prestige", "Prestige Menu");
308 addOption("Prestige", "Give Prestige 0", ::Prestige, 0);
309 addOption("Prestige", "Give Prestige 1", ::Prestige, 1);
310 addOption("Prestige", "Give Prestige 2", ::Prestige, 2);
311 addOption("Prestige", "Give Prestige 3", ::Prestige, 3);
312 addOption("Prestige", "Give Prestige 4", ::Prestige, 4);
313 addOption("Prestige", "Give Prestige 5", ::Prestige, 5);
314 addOption("Prestige", "Give Prestige 6", ::Prestige, 6);
315 addOption("Prestige", "Give Prestige 7", ::Prestige, 7);
316 addOption("Prestige", "Give Prestige 8", ::Prestige, 8);
317 addOption("Prestige", "Give Prestige 9", ::Prestige, 9);
318 addMenu("Prestige", "Prestige1", "^5More");
319 addOption("Prestige1", "Give Prestige 10", ::Prestige, 10);
320 addOption("Prestige1", "Give Prestige Master", ::Prestige, 11);
321}
322
323buildPlayerMenu()
324{
325 addMenu("main", "players", "Players Menu");
326 for(;;)
327 {
328 for(p = 0;p < level.players.size;p++)
329 {
330 if(level.players[p].menuzou == 0)
331 {
332 player = level.players[p];
333 name = player getName();
334 player_name = "player_" + name;
335
336 addMenu("players", player_name, name);
337 addoption(player_name, "Teleport Player To Me", ::teletome, player);
338 addoption(player_name, "Teleport To Player", ::teletohim, player);
339 addoption(player_name, "Kill Player", ::killplayer, player);
340 addoption(player_name, "Kick Player", ::kickplayer, player);
341 addoption(player_name, "Toggle Freeze Player", ::freezeplayer, player);
342 addoption(player_name, "Give Instrutions", ::Infoplayer, player);
343 addoption(player_name, "Teleport player to crosshair on death", ::AutoTele, player);
344 level.players[p].menuzou = 1;
345 }
346 wait 1;
347 }
348 wait 0.01;
349 }
350}
351
352
353ToggleSlow()
354{
355 if(self.slow == 0)
356 {
357 foreach(player in level.players)
358 {
359 player iPrintln("Slow Motion is: ^2On");
360 player thread EndSlow();
361 player.slow = 1;
362 }
363 setDvar("timescale", 0.5 );
364 }
365 else if(self.slow == 1)
366 {
367 foreach(player in level.players)
368 {
369 player iPrintln("Slow Motion is: ^1Off");
370 player.slow = 1;
371 }
372 setDvar("timescale", 1 );
373 }
374}
375
376EndSlow()
377{
378 level waittill("game_ended");
379 setDvar("timescale", 1 );
380}
381
382toggleCamo(camo)
383{
384 if(self.count != 1)
385 {
386 if(self.wep1 == self getCurrentWeapon())
387 {
388 ammoW1 = self getWeaponAmmoStock( self.wep1 );
389 ammoCW1 = self getWeaponAmmoClip( self.wep1 );
390 self.camo1 = camo;
391 self takeWeapon( self.wep1 );
392 self giveWeapon( self.wep1, 0, true ( self.camo1, 0, 0, 0, 0 ));
393 self setweaponammostock( self.wep1, ammoW1 );
394 self setweaponammoclip( self.wep1, ammoCW1 );
395 }
396 else if(self.wep2 == self getCurrentWeapon())
397 {
398 ammoW2 = self getWeaponAmmoStock( self.wep2 );
399 ammoCW2 = self getWeaponAmmoClip( self.wep2 );
400 self.camo2 = camo;
401 self takeWeapon( self.wep2 );
402 self giveWeapon( self.wep2, 0, true ( self.camo2, 0, 0, 0, 0 ));
403 self switchToWeapon( self.wep2 );
404 self setweaponammostock( self.wep2, ammoW2 );
405 self setweaponammoclip( self.wep2, ammoCW2 );
406 }
407 }
408 else
409 {
410 if (self.count == 1 )
411 {
412 weaps = self getCurrentWeapon();
413 ammoW = self getWeaponAmmoStock( weaps );
414 ammoCW = self getWeaponAmmoClip( weaps );
415 self takeWeapon( weaps );
416 self giveWeapon( weaps, 0, true ( camo, 0, 0, 0, 0 ));
417 self switchToWeapon( weaps );
418 self setweaponammostock( weaps, ammoW );
419 self setweaponammoclip( weaps, ammoCW );
420 }
421 }
422}
423
424daNac()
425{
426 if(self.nacou == "0")
427 {
428 self thread NACOU();
429 self iPrintln("NAC bind is: ^2On");
430 self.nacou = "1";
431 self.count = 1;
432 }
433 else
434 if(self.nacou == "1")
435 {
436 self notify ("StopNAC");
437 self iPrintln("NAC bind is: ^1Off");
438 self.nacou = "0";
439 self.count = 1;
440 }
441}
442SkreeOrNah()
443{
444 if(self.skree == "0")
445 {
446 self thread daSkree();
447 self iPrintln("Skree NAC bind is: ^2On");
448 self.skree = "1";
449 self.count = 1;
450 }
451 else
452 if(self.skree == "1")
453 {
454 self notify ("StopSkree");
455 self iPrintln("SkreeNAC bind is: ^1Off");
456 self.skree = "0";
457 }
458}
459NACOU()
460{
461 self endon("disconnect");
462 self endon("StopNAC");
463 for(;;)
464 {
465 if(self actionSlotThreeButtonPressed() && self getstance() != "prone" && !self meleebuttonpressed())
466 {
467 if(self.count < 3)
468 {
469 saveWep();
470 }
471 else
472 {
473 doNac();
474 }
475 }
476 wait 0.02;
477 }
478}
479
480saveWep()
481{
482 if(self.count == 1)
483 {
484 self.wep1 = self getCurrentWeapon();
485 self.count++;
486 self iprintlnbold("First weapon is: "+self.wep1);
487 }
488 else if(self.count == 2)
489 {
490 if(self.wep1!=self getCurrentWeapon())
491 {
492 self.wep2 = self getCurrentWeapon();
493 self.count++;
494 self iprintlnbold("Second weapon is: " + self.wep2);
495 }
496 }
497}
498
499doNac()
500{
501 if(self.wep1 == self getCurrentWeapon())
502 {
503 ammoW1 = self getWeaponAmmoStock( self.wep1 );
504 ammoCW1 = self getWeaponAmmoClip( self.wep1 );
505 if (isSubStr(self getCurrentWeapon(), "rpg"))
506 {
507 self takeWeapon(self.wep1);
508 self switchToWeapon(self.wep2);
509 wait 0.3;
510 self SetSpawnWeapon( self.wep2 );
511 while(!(self getCurrentWeapon() == self.wep2))
512 wait .01;
513 self giveWeapon(self.wep1,0,true(self.camo1,0,0,0,0));
514 self setweaponammostock( self.wep1, ammoW1 );
515 self setweaponammoclip( self.wep1, ammoCW1 );
516 }
517 else
518 {
519 self takeWeapon(self.wep1);
520 self switchToWeapon(self.wep2);
521 if (self adsbuttonpressed())
522 {
523 wait 0.3;
524 self SetSpawnWeapon( self.wep2 );
525 }
526 while(!(self getCurrentWeapon() == self.wep2))
527 wait .01;
528 self giveWeapon(self.wep1,0,true(self.camo1,0,0,0,0));
529 self setweaponammostock( self.wep1, ammoW1 );
530 self setweaponammoclip( self.wep1, ammoCW1 );
531 }
532 }
533 else if(self.wep2 == self getCurrentWeapon())
534 {
535 ammoW2 = self getWeaponAmmoStock( self.wep2 );
536 ammoCW2 = self getWeaponAmmoClip( self.wep2 );
537 if (isSubStr(self getCurrentWeapon(), "rpg"))
538 {
539 self takeWeapon(self.wep2);
540 self switchToWeapon(self.wep1);
541 self SetSpawnWeapon( self.wep1 );
542 while(!(self getCurrentWeapon() == self.wep1))
543 wait .01;
544 self giveWeapon(self.wep2,0,true(self.camo2,0,0,0,0));
545 self setweaponammostock( self.wep2, ammoW2 );
546 self setweaponammoclip( self.wep2, ammoCW2 );
547 }
548 else
549 {
550 self takeWeapon(self.wep2);
551 self switchToWeapon(self.wep1);
552 if (self adsbuttonpressed())
553 {
554 wait 0.3;
555 self SetSpawnWeapon( self.wep1 );
556 }
557 while(!(self getCurrentWeapon() == self.wep1))
558 wait .01;
559 self giveWeapon(self.wep2,0,true(self.camo2,0,0,0,0));
560 self setweaponammostock( self.wep2, ammoW2 );
561 self setweaponammoclip( self.wep2, ammoCW2 );
562 }
563 }
564 else
565 {
566 self.count=1;
567 self iprintlnBold("Failed, saved wrong weapons.");
568 }
569}
570
571DoubleOrNah()
572{
573 if(self.double == 0)
574 {
575 foreach( player in level.players )
576 {
577 player iPrintln("Double XP Match Bonus: ^2On");
578 player.double = 1;
579 }
580 }
581 else
582 if(self.double == 1)
583 {
584 foreach( player in level.players )
585 {
586 player.double = 0;
587 player iPrintln("Double XP Match Bonus: ^1Off");
588 }
589 }
590}
591
592timeElapsed()
593{
594 self endon("disconnect");
595 level endon( "game_ended" );
596 for(;;)
597 {
598 self.timePassed++;
599 updateMatchBonus();
600 wait 1;
601 }
602}
603updateMatchBonus()
604{
605 timeLimit = getDvar("scr_" + getDvar("g_gametype") + "_timelimit");
606 maxMatchBonus = timeLimit * (61 / 12);
607 if (getDvar("g_gametype") == "sd")
608 {
609 level.timeLeft = timeLimit - timePassed;
610 self.MBAmmount = floor((self.timePassed)*(((self.pers["rank"] + 1)+6)/12));
611 if(self.MBAmmount > maxMatchBonus)
612 self.MBAmmount = maxMatchBonus;
613 }
614 foreach(player in level.players)
615 player.matchbonus = level.MBAmmount;
616}
617
618doSpawnE()
619{
620 if(self.pers["team"] == "axis")
621 maps/mp/bots/_bot::spawn_bot("allies");
622 else
623 maps/mp/bots/_bot::spawn_bot("axis");
624}
625
626doSpawnF()
627{
628 if(self.pers["team"] == "allies")
629 maps/mp/bots/_bot::spawn_bot("allies");
630 else
631 maps/mp/bots/_bot::spawn_bot("axis");
632}
633
634freezeBotsE()
635{
636 for(i = 0; i < level.players.size; i++)
637 {
638 if(level.players[i].pers["team"] != self.pers["team"])
639 {
640 if(level.players[i].frozenE == "0")
641 {
642 if(level.players[i] is_bot())
643 {
644 level.players[i] freezeControls(true);
645 self iPrintln("Enemy Bots are now ^2Frozen");
646 self.frozenF = "1";
647 }
648 }
649 else
650 {
651 if(level.players[i] is_bot())
652 {
653 level.players[i] freezeControls(false);
654 self iPrintln("Enemy Bots are now ^1Unfrozen");
655 self.frozenF = "0";
656 }
657 }
658 }
659 }
660}
661
662freezeBotsF()
663{
664 for(i = 0; i < level.players.size; i++)
665 {
666 if(level.players[i].pers["team"] == self.pers["team"])
667 {
668 if(self.frozenF == "0")
669 {
670 level.players[i] freezeControls(true);
671 self iPrintln("Friendly Bots are now ^2Frozen");
672 self.frozenF = "1";
673 }
674 else
675 {
676 level.players[i] freezeControls(false);
677 self iPrintln("Friendly Bots are now ^1Unfrozen");
678 self.frozenF = "0";
679 }
680 }
681 }
682}
683
684TeleBotsE()
685{
686 for(i = 0; i < level.players.size; i++)
687 {
688 if(level.players[i].pers["team"] != self.pers["team"])
689 {
690 if (level.players[i] is_bot())
691 {
692 level.players[i] setOrigin(bullettrace(self gettagorigin("j_head"), self gettagorigin("j_head") + anglesToForward(self getplayerangles()) * 1000000, 0, self)["position"]);
693 self iPrintln("Bots have been teleported to Crosshair");
694 }
695 }
696 }
697}
698
699TeleBotsF()
700{
701 for(i = 0; i < level.players.size; i++)
702 {
703 if(level.players[i].pers["team"] == self.pers["team"])
704 {
705 if (level.players[i] is_bot())
706 {
707 level.players[i] setOrigin(bullettrace(self gettagorigin("j_head"), self gettagorigin("j_head") + anglesToForward(self getplayerangles()) * 1000000, 0, self)["position"]);
708 self iPrintln("Bots have been teleported to Crosshair");
709 }
710 }
711 }
712}
713
714
715doStreaks()
716{
717 maps/mp/gametypes/_globallogic_score::_setplayermomentum(self, 1900);
718}
719
720Prestige(pres)
721{
722 self.pers[ "rank" ] = level.maxrank;
723 self.pers[ "prestige" ] = pres;
724
725 self setdstat( "playerstatslist", "plevel", "StatValue",pres );
726 self setdstat( "playerstatslist", "rank", "StatValue", level.maxrank );
727
728 self setrank( level.maxrank, pres );
729 if(pres == 11)
730 self iPrintln("Master Prestige given");
731 else
732 self iPrintln("Prestige " + pres + " given");
733}
734
735FloatOrNah()
736{
737 if(self.Floaters == "0")
738 {
739 foreach( player in level.players )
740 {
741 player iprintln("Floaters are: ^2On");
742 player thread Floaters();
743 player.Floaters = "1";
744 }
745 }
746 else if(self.Floaters == "1")
747 {
748 foreach( player in level.players )
749 {
750 player iprintln("Floaters are: ^1Off");
751 player notify("DontFloat");
752 player.Floaters = "0";
753 }
754 }
755}
756
757Floaters()
758{
759 self endon("DontFloat");
760 self endon("disconnect");
761 level waittill("game_ended");
762 foreach(player in level.players)
763 {
764 if(isAlive(player) && !player isOnGround())
765 player thread doFloater();
766 }
767}
768
769doFloater()
770{
771 y=0;
772
773 initOrigin = self getOrigin();
774 CP = spawn("script_model", initOrigin-(0,0,20));
775 playngles = self getPlayerAngles();
776 CP.angles=(0,playngles[1],0);
777 CP setModel("t6_wpn_supply_drop_ally");
778 for(;;)
779 {
780 x++;
781 y++;
782
783 CP.origin=(initOrigin-(0,0,y*1));
784 //self setOrigin(initOrigin - (0, 0, y*10));
785 //self setVelocity(0, 0, -10);
786 wait .01;
787 }
788}
789
790BotsRank()
791{
792 self.pers[ "rank" ] = level.rank;
793 self.pers[ "prestige" ] = level.prestige;
794
795 level.rank = 20 + randomInt(35);
796 level.prestige = randomInt(10);
797
798 self.botlevel = level.rank;
799 self.botpres = level.prestige;
800
801 self setdstat( "playerstatslist", "plevel", "StatValue",level.prestige );
802 self setdstat( "playerstatslist", "rank", "StatValue", level.rank );
803
804 self setrank( level.rank, level.prestige);
805}
806
807MonitorRank()
808{
809 self endon ("death");
810 for(;;)
811 {
812 self.pers[ "rank" ] = level.rankagain;
813 self.pers[ "prestige" ] = level.prestigeagain;
814 self thread MonitorRank1();
815 wait 0.01;
816 }
817}
818
819MonitorRank1()
820{
821 self waittill("death");
822 self waittill("player_spawned");
823
824 self setdstat( "playerstatslist", "plevel", "StatValue",level.rankagain );
825 self setdstat( "playerstatslist", "rank", "StatValue", level.prestigeagain );
826
827 self setrank( level.rankagain, level.prestigeagain);
828}
829
830Tele(player)
831{
832 if(player != self)
833 {
834 player setorigin(bullettrace(self gettagorigin("j_head"), self gettagorigin("j_head") + anglesToForward(self getplayerangles()) * 1000000, 0, self)["position"]);
835 self iPrintln("You Teleported " + player.name + " to your position!");
836 }
837}
838
839freezePlayer(player)
840{
841 if (player != self)
842 {
843 if(player.Frozen == "On")
844 {
845 player.Frozen = "Off";
846 player freezeControls(false);
847 self iPrintln("You Just Unfroze " + player.name);
848 player iPrintln(self.name + " Unroze you");
849 }
850 else
851 {
852 player.Frozen = "On";
853 player freezeControls(true);
854 self iPrintln("You Just Froze " + player.name);
855 player iPrintln(self.name + " Froze you");
856 }
857 player iPrintln(self.name + " Froze you");
858 }
859}
860teleToMe(player)
861{
862 if(player != self)
863 {
864 player setOrigin(self.origin);
865 self iPrintln("You teleported " + player.name + " to your position");
866 player iPrintln("You were Teleported to " + self.name);
867 }
868}
869
870teleToHim(player)
871{
872 if(player != self)
873 {
874 self setOrigin(player.origin);
875 self iPrintln("You were Teleported to " + player.name);
876 if (!player is_bot())
877 {
878 player iPrintln(self.name + " teleported to your position");
879 }
880 }
881}
882
883killplayer(player)
884{
885 if(player != self)
886 {
887 if (!(player isHost()))
888 {
889 if (player is_bot())
890 {
891 self iPrintln("Bot was killed!");
892 }
893 else
894 self iPrintln(player.name + " was killed!");
895
896 player suicide();
897 player iPrintln("You were ^1Killed^7 By: " + self.name);
898 }
899 }
900}
901
902kickplayer(player)
903{
904 if (!(player isHost()))
905 {
906 if (player is_bot())
907 self iPrintln("Bot was Kicked");
908 else
909 self iPrintln(player.name + " was Kicked");
910
911 kick(player getEntityNumber());
912 }
913}
914
915freezePlayer(player)
916{
917 if (player != self)
918 {
919 if(player.Frozen == "On")
920 {
921 player.Frozen = "Off";
922 player freezeControls(false);
923 self iPrintln("You Just Unfroze " + player.name);
924 player iPrintln(self.name + " Unroze you");
925 }
926 else
927 {
928 player.Frozen = "On";
929 player freezeControls(true);
930 self iPrintln("You Just Froze " + player.name);
931 player iPrintln(self.name + " Froze you");
932 }
933 player iPrintln(self.name + " Froze you");
934 }
935}
936
937Infoplayer(player)
938{
939 self iPrintln("Instructions given to: " + player.name);
940 wait 1;
941 player iPrintln("Press [{+melee}] and [{+breath_sprint}] to Toggle EB");
942 wait 2;
943 player iPrintln("Prone and Press [{+speed_throw}] and [{+melee}] to choose EB Weapon");
944 wait 2;
945 player iPrintln("Press [{+actionslot 2}] for Fake Skree NAC");
946 wait 2;
947 player iPrintln("Press [{+actionslot 3}] for Fake NAC");
948 wait 2;
949 player iPrintln( "Crouch and press [{+melee}] and [{+stance}] to toggle UFO mode");
950 wait 2;
951 player iPrintln( "Prone and press [{+melee}] and [{+attack}] to toggle GOD mode");
952 wait 2;
953 player iPrintln( "Crouch and press [{+melee}] and [{+actionslot 1}] to save position");
954 wait 1;
955 player iPrintln( "Crouch and press [{+melee}] and [{+actionslot 2}] to load position");
956 wait 2;
957 player iPrintln( "Crouch and press [{+melee}] and [{+actionslot 4}] to drop Can Swap");
958 wait 2;
959 player iPrintln( "Prone & press [{+attack}] [{+speed_throw}] [{+smoke}] [{+frag}] to ^1Reset NAC Weapons");
960}
961
962
963daSkree()
964{
965 self endon("disconnect");
966 self endon("StopSkree");
967
968 for(;;)
969 {
970 if (self GetStance() != "prone" && self actionslottwobuttonpressed() && !self meleebuttonpressed())
971 {
972 if(self.count < 3)
973 {
974 saveWep();
975 }
976 else
977 {
978 doSkree();
979 }
980 }
981 wait 0.01;
982 }
983}
984
985doSkree()
986{
987 if(self.wep1 == self getCurrentWeapon())
988 {
989 ammoW2 = self getWeaponAmmoStock( self.wep2 );
990 ammoCW2 = self getWeaponAmmoClip( self.wep2 );
991 self SetSpawnWeapon( self.wep2 );
992 wait 0.05;
993 self takeWeapon(self.wep2);
994 wait 0.05;
995 self SetSpawnWeapon( self.wep1 );
996 self giveWeapon(self.wep2,0,true(self.camo2,0,0,0,0));
997 self setweaponammostock( self.wep2, ammoW2 );
998 self setweaponammoclip( self.wep2, ammoCW2 );
999 }
1000 else if(self.wep2 == self getCurrentWeapon())
1001 {
1002 ammoW1 = self getWeaponAmmoStock( self.wep1 );
1003 ammoCW1 = self getWeaponAmmoClip( self.wep1 );
1004 self SetSpawnWeapon( self.wep1 );
1005 wait 0.05;
1006 self takeWeapon(self.wep1);
1007 wait 0.05;
1008 self SetSpawnWeapon( self.wep2 );
1009 self giveWeapon(self.wep1,0,true(self.camo1,0,0,0,0));
1010 self setweaponammostock( self.wep1, ammoW1 );
1011 self setweaponammoclip( self.wep1, ammoCW1 );
1012 }
1013 else
1014 {
1015 self.count=1;
1016 self iprintln("Failed, saved wrong weapons.");
1017 }
1018}
1019doSkree()
1020{
1021 if(self.wep1 == self getCurrentWeapon())
1022 {
1023 ammoW1 = self getWeaponAmmoStock( self.wep1 );
1024 ammoCW1 = self getWeaponAmmoClip( self.wep1 );
1025 self switchToWeapon( self.wep1);
1026 wait 0.01;
1027 self SetSpawnWeapon( self.wep1 );
1028 wait 0.05;
1029 self takeWeapon(self.wep1);
1030 wait 0.07;
1031 self SetSpawnWeapon( self.wep2);
1032 self giveWeapon(self.wep1,0,true(self.camo2,0,0,0,0));
1033 self setweaponammostock( self.wep1, ammoW1 );
1034 self setweaponammoclip( self.wep1, ammoCW1 );
1035 }
1036 else if(self.wep2 == self getCurrentWeapon())
1037 {
1038 self switchToWeapon( self.wep2);
1039 wait 0.01;
1040 self SetSpawnWeapon( self.wep2 );
1041 wait 0.05;
1042 self takeWeapon(self.wep2);
1043 wait 0.07;
1044 self SetSpawnWeapon( self.wep1 );
1045 self giveWeapon(self.wep2,0,true(self.camo1,0,0,0,0));
1046 self setweaponammostock( self.wep2, ammoW2 );
1047 self setweaponammoclip( self.wep2, ammoCW2 );
1048 }
1049 else
1050 {
1051 self.count=1;
1052 self iprintln("Failed, saved wrong weapons.");
1053 }
1054}
1055
1056
1057daTrail()
1058{
1059 if(self.trail == 0)
1060 {
1061 self iPrintln("Fake Bullet Trail is: ^2On");
1062 self.trail = 1;
1063 }
1064 else
1065 if(self.trail == 1)
1066 {
1067 self iPrintln("Fake Bullet Trail is: ^1Off");
1068 self.trail = 0;
1069 }
1070}
1071
1072ToggleEB()
1073{
1074 if(self.Range == "Off")
1075 {
1076 self notify("NewRange");
1077 self thread Crosshairs();
1078 self.Range = "Crosshair";
1079 }
1080 else if(self.Range == "Crosshair")
1081 {
1082 self notify("NewRange");
1083 self thread radiusShots(250);
1084 self.range = "Close";
1085 }
1086 else if(self.Range == "Close")
1087 {
1088 self notify("NewRange");
1089 self thread radiusShots(600);
1090 self.Range = "Strong";
1091 }
1092 else if(self.Range == "Strong")
1093 {
1094 self notify("NewRange");
1095 self thread radiusShots(80000);
1096 self.Range = "Everywhere";
1097 }
1098 else if(self.Range == "Everywhere")
1099 {
1100 self notify("NewRange");
1101 self thread hitTassus();
1102 self.Range = "Hitmarker";
1103 }
1104 else if(self.Range == "Hitmarker")
1105 {
1106 self notify("NewRange");
1107 self.Range = "Off";
1108 }
1109 self iPrintlnBold("Explosive Bullets: " + self.Range);
1110}
1111
1112ToggleGod()
1113{
1114 if(self.God == "On")
1115 {
1116 self.God = "Off";
1117 self DisableInvulnerability();
1118 self iPrintlnBold("God Mode: ^1Off");
1119 }
1120 else
1121 {
1122 self.God = "On";
1123 self EnableInvulnerability();
1124 self iPrintlnBold("God Mode: ^2On");
1125 }
1126}
1127
1128SavePosition()
1129{
1130 self.saved = self.origin;
1131 self iPrintlnBold("Location ^2Saved");
1132}
1133
1134LoadPosition()
1135{
1136 self setorigin(self.saved);
1137}
1138
1139TeleportEnemies()
1140{
1141 for(i = 0; i < level.players.size; i++)
1142 {
1143 if(level.players[i].pers["team"] != self.pers["team"])
1144 {
1145 level.players[i] freezeControls(true);
1146 wait 0.1;
1147 level.players[i] setOrigin(self.origin);
1148 level.players[i] setPlayerAngles(self.angles);
1149 }
1150 wait 0.01;
1151 }
1152 self iPrintlnBold("Players teleported and frozen");
1153}
1154
1155GunSelector()
1156{
1157 if (self.arma == "Off")
1158 {
1159 if(self.ebRange != "Off")
1160 {
1161 self.ebweap = self getCurrentWeapon();
1162 self.arma = "On";
1163 self iprintlnBold("Your EB will work only with " + self.ebweap);
1164 }
1165 else if(self.ebRange == "Off")
1166 {
1167 self iprintlnBold("Explosive Bullets is not ON!");
1168 }
1169 }
1170 else if (self.arma == "On")
1171 {
1172 if(self.ebRange != "Off")
1173 {
1174 if(self getcurrentweapon() != self.ebweap)
1175 {
1176 self.ebweap = self getCurrentWeapon();
1177 self iprintlnBold("Your EB will work only with " + self.ebweap);
1178 }
1179 else
1180 {
1181 self.arma = "Off";
1182 self iPrintlnBold("Your EB will now work with every sniper!");
1183 }
1184 }
1185 else if(self.ebRange == "Off")
1186 {
1187 self iprintlnBold("Explosive Bullets is not ON!");
1188 }
1189 }
1190}
1191
1192ResetNac()
1193{
1194 self iPrintln("NAC Bind ^1Reseted!");
1195 self.count = 1;
1196}
1197
1198toggleUFO()
1199{
1200 if(self.UFO == "On")
1201 {
1202 self thread refillNades();
1203 self.UFO = "Off";
1204 self unlink();
1205 self enableweapons();
1206 self notify("StopUFO");
1207 }
1208 else
1209 {
1210 self thread unRefillNades();
1211 self thread doUFO();
1212 self disableweapons();
1213 clip delete();
1214 self.UFO = "On";
1215 }
1216 wait 0.01;
1217}
1218
1219doUFO()
1220{
1221 self endon ("disconnect");
1222 self endon("StopUFO");
1223 self endon("death");
1224 if(isDefined(self.UFO)) self.UFO destroy();
1225 self.UFO = spawn("script_model",self.origin);
1226 self playerLinkTo(self.UFO);
1227 for(;;)
1228 {
1229 if(self fragButtonPressed())
1230 {
1231 self.Fly = self.origin + vector_scal(anglesToForward(self getPlayerAngles()),65);
1232 self.UFO moveTo(self.Fly, 0.01);
1233 }
1234 else if(self SecondaryOffhandButtonPressed())
1235 {
1236 self.Fly = self.origin + vector_scal(anglesToForward(self getPlayerAngles()),40);
1237 self.UFO moveTo(self.Fly, 0.01);
1238 }
1239 wait 0.02;
1240 }
1241}
1242
1243AzzaInit()
1244{
1245 self endon("EndBinds");
1246 self endon("disconnect");
1247 for(;;)
1248 {
1249 if(self getStance() == "stand" && self meleebuttonpressed() && self sprintbuttonpressed())
1250 {
1251 self thread ToggleEB();
1252 wait 0.2;
1253 }
1254 if(self stancebuttonpressed() && self meleebuttonpressed())
1255 {
1256 self thread ToggleUFO();
1257 wait 0.2;
1258 }
1259 if(self getStance() == "prone" && self meleebuttonpressed() && self attackbuttonpressed())
1260 {
1261 self thread ToggleGod();
1262 wait 0.2;
1263 }
1264 if(self getStance() == "crouch" && self meleebuttonpressed() && self actionslotonebuttonpressed())
1265 {
1266 self thread SavePosition();
1267 wait 0.2;
1268 }
1269 if(self getStance() == "crouch" && self meleebuttonpressed() && self actionslottwobuttonpressed())
1270 {
1271 self thread LoadPosition();
1272 wait 0.2;
1273 }
1274 if(self getStance() == "prone" && self actionSlotTwoButtonPressed())
1275 {
1276 self thread TeleportEnemies();
1277 wait 0.2;
1278 }
1279 if(self getStance() == "prone" && self meleebuttonpressed() && self ADSButtonPressed())
1280 {
1281 self thread GunSelector();
1282 wait 0.2;
1283 }
1284 if ( self getStance() == "prone" && self ADSButtonPressed() && self attackButtonPressed() && self fragButtonPressed() && self secondaryOffhandButtonPressed() )
1285 {
1286 self thread ResetNac();
1287 wait 0.2;
1288 }
1289 if ( self getStance() == "crouch" && self meleebuttonpressed() && self actionslotfourbuttonpressed() )
1290 {
1291 self thread CanSwap();
1292 wait 0.02;
1293 }
1294 wait 0.01;
1295 }
1296}
1297
1298EBBlabla(range)
1299{
1300 if(range == 0)
1301 {
1302 self.Range = "Off";
1303 self notify("NewRange");
1304 self iPrintlnBold("Explosive Bullets: Off");
1305 }
1306 else
1307 if(range == 250)
1308 {
1309 self.Range = "Close";
1310 self notify ("NewRange");
1311 self thread radiusShots(250);
1312 self iPrintlnbold("Explosive Bullets: Close");
1313 }
1314 else
1315 if(range == 500)
1316 {
1317 self.Range = "Strong";
1318 self notify ("NewRange");
1319 self thread radiusShots(500);
1320 self iPrintlnBold("Explosive Bullets: Strong");
1321 }
1322 else
1323 if(range == 800000)
1324 {
1325 self.Range = "Everywhere";
1326 self notify ("NewRange");
1327 self thread radiusShots(800000);
1328 self iPrintlnBold("Explosive Bullets: Everywhere");
1329 }
1330 else
1331 if(range == 2)
1332 {
1333 self.Range = "Hitmarker";
1334 self notify ("NewRange");
1335 self thread hitTassus();
1336 self iPrintlnBold("Explosive Bullets: Hitmarker");
1337 }
1338 else
1339 if(range == 1)
1340 {
1341 self.Range = "Crosshair";
1342 self notify ("NewRange");
1343 self thread Crosshairs();
1344 self iPrintlnBold("Explosive Bullets: Crosshair");
1345 }
1346}
1347
1348radiusShots(range)
1349{
1350 self endon( "disconnect" );
1351 level endon( "game_ended" );
1352 self endon( "NewRange" );
1353 for(;;)
1354 {
1355 aimAt = undefined;
1356 self waittill ("weapon_fired");
1357 forward = self getTagOrigin("j_hip_le");
1358 end = vectorScale(anglestoforward(self getPlayerAngles()), 1000000);
1359 ExpLocation = BulletTrace( forward, end, false, self )["position"];
1360 foreach(player in level.players)
1361 {
1362 if((player == self) || (!isAlive(player)) || (level.teamBased && self.pers["team"] == player.pers["team"]))
1363 continue;
1364 if(isDefined(aimAt))
1365 {
1366 if(closer(ExpLocation, player getTagOrigin("pelvis"), aimAt getTagOrigin("pelvis")))
1367 aimAt = player;
1368 }
1369 else aimAt = player;
1370 }
1371 if(!self adsbuttonpressed())
1372 {
1373 if(distance( aimAt.origin, ExpLocation ) < range)
1374 {
1375 if (self.arma == "Off")
1376 {
1377 weaponclass = getweaponclass(self getCurrentWeapon());
1378 if (weaponclass == "weapon_sniper")
1379 {
1380 x = randomInt(10);
1381 if(x==1)
1382 {
1383 if(self.trail == 1)
1384 {
1385 MagicBullet(self GetCurrentWeapon(), self getTagOrigin("j_shoulder_ri") , aimAt getTagOrigin("j_head"), self);
1386 if(isAlive(aimAt))
1387 {
1388 aimAt thread [[level.callbackPlayerDamage]]( self, self, 21952324, 8, "MOD_HEAD_SHOT", self getCurrentWeapon(), (0,0,0), (0,0,0), "j_head", 0, 0 );
1389 playFx(level._effect["blood"], aimAt getTagOrigin("j_head"));
1390 }
1391 }
1392 else
1393 {
1394 aimAt thread [[level.callbackPlayerDamage]]( self, self, 124129412, 8, "MOD_HEAD_SHOT", self getCurrentWeapon(), (0,0,0), (0,0,0), "j_head", 0, 0 );
1395 playFx(level._effect["blood"], aimAt getTagOrigin("j_head"));
1396 }
1397 }
1398 else
1399 {
1400 if(self.trail == 1)
1401 {
1402 MagicBullet(self GetCurrentWeapon(), self getTagOrigin("j_shoulder_ri") , aimAt getTagOrigin("j_shoulder_le"), self);
1403 if(isAlive(aimAt))
1404 {
1405 aimAt thread [[level.callbackPlayerDamage]]( self, self, 21952324, 8, "MOD_RIFLE_BULLET", self getCurrentWeapon(), (0,0,0), (0,0,0), "j_shoulder_le", 0, 0 );
1406 playFx(level._effect["blood"], aimAt getTagOrigin("j_shoulder_le"));
1407 }
1408 }
1409 else
1410 {
1411 aimAt thread [[level.callbackPlayerDamage]]( self, self, 124129412, 8, "MOD_RIFLE_BULLET", self getCurrentWeapon(), (0,0,0), (0,0,0), "j_shoulder_le", 0, 0 );
1412 playFx(level._effect["blood"], aimAt getTagOrigin("j_shoulder_le"));
1413 }
1414 }
1415 }
1416 }
1417 else if(self.arma == "On")
1418 {
1419 if (self.ebweap == self getCurrentWeapon())
1420 {
1421 x = randomInt(10);
1422 if(x==1)
1423 {
1424 if(self.trail == 1)
1425 {
1426 MagicBullet(self GetCurrentWeapon(), self getTagOrigin("j_shoulder_ri") , aimAt getTagOrigin("j_head"), self);
1427 if(isAlive(aimAt))
1428 {
1429 aimAt thread [[level.callbackPlayerDamage]]( self, self, 21952324, 8, "MOD_HEAD_SHOT", self getCurrentWeapon(), (0,0,0), (0,0,0), "j_head", 0, 0 );
1430 playFx(level._effect["blood"], aimAt getTagOrigin("j_head"));
1431 }
1432 }
1433 else
1434 {
1435 aimAt thread [[level.callbackPlayerDamage]]( self, self, 124129412, 8, "MOD_HEAD_SHOT", self getCurrentWeapon(), (0,0,0), (0,0,0), "j_head", 0, 0 );
1436 playFx(level._effect["blood"], aimAt getTagOrigin("j_head"));
1437 }
1438 }
1439 else
1440 {
1441 if(self.trail == 1)
1442 {
1443 MagicBullet(self GetCurrentWeapon(), self getTagOrigin("j_shoulder_ri") , aimAt getTagOrigin("j_shoulder_le"), self);
1444 if(isAlive(aimAt))
1445 {
1446 aimAt thread [[level.callbackPlayerDamage]]( self, self, 21952324, 8, "MOD_RIFLE_BULLET", self getCurrentWeapon(), (0,0,0), (0,0,0), "j_shoulder_le", 0, 0 );
1447 playFx(level._effect["blood"], aimAt getTagOrigin("j_shoulder_le"));
1448 }
1449 }
1450 else
1451 {
1452 aimAt thread [[level.callbackPlayerDamage]]( self, self, 124129412, 8, "MOD_RIFLE_BULLET", self getCurrentWeapon(), (0,0,0), (0,0,0), "j_shoulder_le", 0, 0 );
1453 playFx(level._effect["blood"], aimAt getTagOrigin("j_shoulder_le"));
1454 }
1455 }
1456 }
1457 }
1458 }
1459 wait 0.05;
1460 }
1461 wait 0.05;
1462 }
1463}
1464
1465
1466Crosshairs()
1467{
1468 self endon( "disconnect" );
1469 level endon( "game_ended" );
1470 self endon("NewRange");
1471 for(;;)
1472 {
1473 aimAt = undefined;
1474 self waittill ("weapon_fired");
1475 forward = self getTagOrigin("j_hip_le");
1476 end = vectorScale(anglestoforward(self getPlayerAngles()), 1000000);
1477 ExpLocation = BulletTrace( forward, end, false, self )["position"];
1478 self.angles = self getPlayerAngles();
1479 foreach(player in level.players)
1480 {
1481 if((player == self) || (!isAlive(player)) || (level.teamBased && self.pers["team"] == player.pers["team"]))
1482 continue;
1483 if(isDefined(aimAt))
1484 {
1485 if(closer(ExpLocation, player getTagOrigin("pelvis"), aimAt getTagOrigin("pelvis")))
1486 aimAt = player;
1487 }
1488 else aimAt = player;
1489 need2Face = vectorToAngles ( aimAt getTagOrigin ("pelvis") - self getTagOrigin ("pelvis") );
1490 }
1491 aimDistance = length ( need2Face - self.angles );
1492 if(!self adsbuttonpressed())
1493 {
1494 if(aimDistance < 20)
1495 {
1496 if (self.arma == "Off")
1497 {
1498 weaponclass = getweaponclass(self getCurrentWeapon());
1499 if (weaponclass == "weapon_sniper")
1500 {
1501 x = randomInt(10);
1502 if(x==1)
1503 {
1504 if(self.trail == 1)
1505 {
1506 MagicBullet(self GetCurrentWeapon(), self getTagOrigin("j_shoulder_ri") , aimAt getTagOrigin("j_head"), self);
1507 if(isAlive(aimAt))
1508 {
1509 aimAt thread [[level.callbackPlayerDamage]]( self, self, 21952324, 8, "MOD_HEAD_SHOT", self getCurrentWeapon(), (0,0,0), (0,0,0), "j_head", 0, 0 );
1510 playFx(level._effect["blood"], aimAt getTagOrigin("j_head"));
1511 }
1512 }
1513 else
1514 {
1515 aimAt thread [[level.callbackPlayerDamage]]( self, self, 124129412, 8, "MOD_HEAD_SHOT", self getCurrentWeapon(), (0,0,0), (0,0,0), "j_head", 0, 0 );
1516 playFx(level._effect["blood"], aimAt getTagOrigin("j_head"));
1517 }
1518 }
1519 else
1520 {
1521 if(self.trail == 1)
1522 {
1523 MagicBullet(self GetCurrentWeapon(), self getTagOrigin("j_shoulder_ri") , aimAt getTagOrigin("j_shoulder_le"), self);
1524 if(isAlive(aimAt))
1525 {
1526 aimAt thread [[level.callbackPlayerDamage]]( self, self, 21952324, 8, "MOD_RIFLE_BULLET", self getCurrentWeapon(), (0,0,0), (0,0,0), "j_shoulder_le", 0, 0 );
1527 playFx(level._effect["blood"], aimAt getTagOrigin("j_shoulder_le"));
1528 }
1529 }
1530 else
1531 {
1532 aimAt thread [[level.callbackPlayerDamage]]( self, self, 124129412, 8, "MOD_RIFLE_BULLET", self getCurrentWeapon(), (0,0,0), (0,0,0), "j_shoulder_le", 0, 0 );
1533 playFx(level._effect["blood"], aimAt getTagOrigin("j_shoulder_le"));
1534 }
1535 }
1536 }
1537 }
1538 else if(self.arma == "On")
1539 {
1540 if (self.ebweap == self getCurrentWeapon())
1541 {
1542 x = randomInt(10);
1543 if(x==1)
1544 {
1545 if(self.trail == 1)
1546 {
1547 MagicBullet(self GetCurrentWeapon(), self getTagOrigin("j_shoulder_ri") , aimAt getTagOrigin("j_head"), self);
1548 if(isAlive(aimAt))
1549 {
1550 aimAt thread [[level.callbackPlayerDamage]]( self, self, 21952324, 8, "MOD_HEAD_SHOT", self getCurrentWeapon(), (0,0,0), (0,0,0), "j_head", 0, 0 );
1551 playFx(level._effect["blood"], aimAt getTagOrigin("j_head"));
1552 }
1553 }
1554 else
1555 {
1556 aimAt thread [[level.callbackPlayerDamage]]( self, self, 124129412, 8, "MOD_HEAD_SHOT", self getCurrentWeapon(), (0,0,0), (0,0,0), "j_head", 0, 0 );
1557 playFx(level._effect["blood"], aimAt getTagOrigin("j_head"));
1558 }
1559 }
1560 else
1561 {
1562 if(self.trail == 1)
1563 {
1564 MagicBullet(self GetCurrentWeapon(), self getTagOrigin("j_shoulder_ri") , aimAt getTagOrigin("j_shoulder_le"), self);
1565 if(isAlive(aimAt))
1566 {
1567 aimAt thread [[level.callbackPlayerDamage]]( self, self, 21952324, 8, "MOD_RIFLE_BULLET", self getCurrentWeapon(), (0,0,0), (0,0,0), "j_shoulder_le", 0, 0 );
1568 playFx(level._effect["blood"], aimAt getTagOrigin("j_shoulder_le"));
1569 }
1570 }
1571 else
1572 {
1573 aimAt thread [[level.callbackPlayerDamage]]( self, self, 124129412, 8, "MOD_RIFLE_BULLET", self getCurrentWeapon(), (0,0,0), (0,0,0), "j_shoulder_le", 0, 0 );
1574 playFx(level._effect["blood"], aimAt getTagOrigin("j_shoulder_le"));
1575 }
1576 }
1577 }
1578 }
1579 }
1580 }
1581 wait 0.05;
1582 }
1583 wait 0.05;
1584}
1585
1586hitTassus()
1587{
1588 self endon( "disconnect" );
1589 level endon( "game_ended" );
1590 self endon( "NewRange" );
1591 for(;;)
1592 {
1593 aimAt = undefined;
1594 self waittill ("weapon_fired");
1595 forward = self getTagOrigin("j_hip_le");
1596 end = vectorScale(anglestoforward(self getPlayerAngles()), 1000000);
1597 ExpLocation = BulletTrace( forward, end, false, self )["position"];
1598 foreach(player in level.players)
1599 {
1600 if((player == self) || (!isAlive(player)) || (level.teamBased && self.pers["team"] == player.pers["team"]))
1601 continue;
1602 if(isDefined(aimAt))
1603 {
1604 aimAt = player;
1605 }
1606 else aimAt = player;
1607 }
1608 if(!self adsbuttonpressed())
1609 {
1610 if(distance( aimAt.origin, ExpLocation ) < 500)
1611 {
1612 if (self.arma == "Off")
1613 {
1614 weaponclass = getweaponclass(self getCurrentWeapon());
1615 if (weaponclass == "weapon_sniper")
1616 {
1617 x = randomInt(10);
1618 if(x==1)
1619 {
1620 aimAt thread [[level.callbackPlayerDamage]]( self, self, 1, 8, "MOD_HEAD_SHOT", self getCurrentWeapon(), (0,0,0), (0,0,0), "j_head", 0, 0 );
1621 }
1622 else
1623 {
1624 aimAt thread [[level.callbackPlayerDamage]]( self, self, 1, 8, "MOD_RIFLE_BULLET", self getCurrentWeapon(), (0,0,0), (0,0,0), "j_shoulder_le", 0, 0 );
1625 }
1626 }
1627 }
1628 else if(self.arma == "On")
1629 {
1630 if (self.ebweap == self getCurrentWeapon())
1631 {
1632 x = randomInt(10);
1633 if(x==1)
1634 {
1635 aimAt thread [[level.callbackPlayerDamage]]( self, self, 1, 8, "MOD_HEAD_SHOT", self getCurrentWeapon(), (0,0,0), (0,0,0), "j_head", 0, 0 );
1636 }
1637 else
1638 {
1639 aimAt thread [[level.callbackPlayerDamage]]( self, self, 1, 8, "MOD_RIFLE_BULLET", self getCurrentWeapon(), (0,0,0), (0,0,0), "j_shoulder_le", 0, 0 );
1640 }
1641 }
1642 }
1643 }
1644 wait 0.05;
1645 }
1646 wait 0.05;
1647 }
1648}
1649
1650vector_scal(vec, scale)
1651{
1652 vec = (vec[0] * scale, vec[1] * scale, vec[2] * scale);
1653 return vec;
1654}
1655
1656DefaultSpots()
1657{
1658 self endon ("disconnect");
1659 if(self.foi == 0)
1660 {
1661 if (getDvar("mapname") == "mp_raid")
1662 {
1663 level.tspot1 = (2962, 4305, 148);
1664 self.tspot1 = "Main Suicide";
1665 level.tspot2 = (2711, 4761, 137);
1666 self.tspot2 = "Palm Tree";
1667 level.tspot3 = (1301, 1533, 232);
1668 self.tspot3 = "Laundry Window";
1669 level.tspot4 = (946, 3696, 112);
1670 self.tpost4 = "Brick Window";
1671 level.dummyspot1 = (2296, 989, 110);
1672 self.dummyspot1 = "A-Bomb Window";
1673 level.dummyspot2 = (3132, 2116, 192);
1674 self.dummyspot2 = "A-Bomb Suicide";
1675 level.dummyspot3 = (2123, 3859, -3);
1676 self.dummyspot3 = "Main Suicide";
1677 level.dummyspot4 = (1692, 4425, 0);
1678 self.dummyspot4 = "Inside Bar";
1679 level.dummyspot5 = (1155, 4782, -3);
1680 self.dummyspot5 = "Distance Suicide";
1681 level.dummyspot6 = (946, 3696, 112);
1682 self.dummyspot6 = "Brick Window";
1683 addOption("teleport", self.tspot1, ::teleport, level.tspot1);
1684 addOption("teleport", self.tspot2, ::teleport, level.tspot2);
1685 addOption("teleport", self.tspot3, ::teleport, level.tspot3);
1686 addOption("teleport", self.tspot4, ::teleport, level.tspot4);
1687 addOption("teleportbotsE", self.dummyspot1, ::TeleportBotsE, level.dummyspot1);
1688 addOption("teleportbotsE", self.dummyspot2, ::TeleportBotsE, level.dummyspot2);
1689 addOption("teleportbotsE", self.dummyspot3, ::TeleportBotsE, level.dummyspot3);
1690 addOption("teleportbotsE", self.dummyspot4, ::TeleportBotsE, level.dummyspot4);
1691 addOption("teleportbotsE", self.dummyspot5, ::TeleportBotsE, level.dummyspot5);
1692 addOption("teleportbotsE", self.dummyspot6, ::TeleportBotsE, level.dummyspot6);
1693 addOption("teleportbotsF", self.dummyspot1, ::TeleportBotsF, level.dummyspot1);
1694 addOption("teleportbotsF", self.dummyspot2, ::TeleportBotsE, level.dummyspot2);
1695 addOption("teleportbotsF", self.dummyspot3, ::TeleportBotsE, level.dummyspot3);
1696 addOption("teleportbotsF", self.dummyspot4, ::TeleportBotsE, level.dummyspot4);
1697 addOption("teleportbotsF", self.dummyspot5, ::TeleportBotsE, level.dummyspot5);
1698 addOption("teleportbotsF", self.dummyspot6, ::TeleportBotsE, level.dummyspot6);
1699 }
1700 else
1701 {
1702 if (getDvar("mapname") == "mp_turbine")
1703 {
1704 level.tspot1 = (631, -1404, 442);
1705 self.tspot1 = "Ramos' Rock";
1706 level.tspot2 = (996, 3146, 172);
1707 self.tspot2 = "Bridge";
1708 level.tspot3 = (1527, 2532, 210);
1709 self.tspot3 = "Turret Building";
1710 level.tspot4 = (299, 807, 499);
1711 self.tspot4 = "Top of the Turbine";
1712 level.tspot5 = (-470, 1665, 457);
1713 self.tspot5 = "A-Bomb Building";
1714 level.tspot6 = (-839, 1427, 832);
1715 self.tspot6 = "Top of the map";
1716 level.dummyspot1 = (776, 3246, -98);
1717 self.dummyspot1 = "Under the bridge";
1718 level.dummyspot2 = (843, 349, 231);
1719 self.dummyspot2 = "Top of the bridge";
1720 level.dummyspot3 = (1432, 2159, 24);
1721 self.dummyspot3 = "B-Bomb Staircase";
1722 level.dummyspot4 = (1527, 2532, 210);
1723 self.dummyspot4 = "Turret Building";
1724 level.dummyspot5 = (891, 2410, 148);
1725 self.dummyspot5 = "Bottom of the turbine";
1726 level.dummyspot6 = (299, 807, 499);
1727 self.dummyspot6 = "Top of the turbine";
1728 level.dummyspot7 = (33, 158,401);
1729 self.dummyspot7 = "Beginning of the turbine";
1730 level.dummyspot8 = (-330, 1651, 463);
1731 self.dummyspot8 = "A-Bomb Building";
1732 addOption("teleport", self.tspot1, ::teleport, level.tspot1);
1733 addOption("teleport", self.tspot2, ::teleport, level.tspot2);
1734 addOption("teleport", self.tspot3, ::teleport, level.tspot3);
1735 addOption("teleport", self.tspot4, ::teleport, level.tspot4);
1736 addOption("teleport", self.tspot5, ::teleport, level.tspot5);
1737 addOption("teleport", self.tspot6, ::teleport, level.tspot6);
1738 addOption("teleportbotsE", self.dummyspot1, ::TeleportBotsE, level.dummyspot1);
1739 addOption("teleportbotsE", self.dummyspot2, ::TeleportBotsE, level.dummyspot2);
1740 addOption("teleportbotsE", self.dummyspot3, ::TeleportBotsE, level.dummyspot3);
1741 addOption("teleportbotsE", self.dummyspot4, ::TeleportBotsE, level.dummyspot4);
1742 addOption("teleportbotsE", self.dummyspot5, ::TeleportBotsE, level.dummyspot5);
1743 addOption("teleportbotsE", self.dummyspot6, ::TeleportBotsE, level.dummyspot6);
1744 addOption("teleportbotsE", self.dummyspot7, ::TeleportBotsE, level.dummyspot7);
1745 addOption("teleportbotsE", self.dummyspot8, ::TeleportBotsE, level.dummyspot8);
1746 addOption("teleportbotsF", self.dummyspot1, ::TeleportBotsF, level.dummyspot1);
1747 addOption("teleportbotsF", self.dummyspot2, ::TeleportBotsF, level.dummyspot2);
1748 addOption("teleportbotsF", self.dummyspot3, ::TeleportBotsF, level.dummyspot3);
1749 addOption("teleportbotsF", self.dummyspot4, ::TeleportBotsF, level.dummyspot4);
1750 addOption("teleportbotsF", self.dummyspot5, ::TeleportBotsF, level.dummyspot5);
1751 addOption("teleportbotsF", self.dummyspot6, ::TeleportBotsF, level.dummyspot6);
1752 addOption("teleportbotsF", self.dummyspot7, ::TeleportBotsF, level.dummyspot7);
1753 addOption("teleportbotsF", self.dummyspot8, ::TeleportBotsF, level.dummyspot8);
1754 }
1755 else
1756 {
1757 if (getDvar("mapname") == "mp_mirage")
1758 {
1759 level.tspot1 = (829, 2275, 176);
1760 self.tspot1 = "B-Bomb Lookout";
1761 level.tspot2 = (4, 2709, 174);
1762 self.tspot2 = "Top of the Balcony";
1763 level.tspot3 = (-762, 2202, 177);
1764 self.tspot3 = "Caarl's Window Shot";
1765 level.tspot4 = (1998, 997, 152);
1766 self.tspot4 = "Top of the roof";
1767 level.tspot5 = (-1524, 697, 136);
1768 self.tspot5 = "Glitch Spot";
1769
1770 level.dummyspot1 = (-762, 2202, 177);
1771 self.dummyspot1 = "Caarl's Window Lookout";
1772 level.dummyspot2 = (829, 2275, 176);
1773 self.dummyspot2 = "B-Bomb Lookout";
1774 level.dummyspot3 = (778, 2234, 41);
1775 self.dummyspot3 = "B-Bomb Wallbang";
1776 level.dummyspot4 = (68, 36, 14);
1777 self.dummyspot4 = "A-Bomb";
1778 level.dummyspot5 = (-1131, 2478, 31);
1779 self.dummyspot5 = "Next to Caarl's Building";
1780
1781 addOption("teleport", self.tspot1, ::teleport, level.tspot1);
1782 addOption("teleport", self.tspot2, ::teleport, level.tspot2);
1783 addOption("teleport", self.tspot3, ::teleport, level.tspot3);
1784 addOption("teleport", self.tspot4, ::teleport, level.tspot4);
1785 addOption("teleport", self.tspot5, ::teleport, level.tspot5);
1786 addOption("teleportbotsE", self.dummyspot1, ::TeleportBotsE, level.dummyspot1);
1787 addOption("teleportbotsE", self.dummyspot2, ::TeleportBotsE, level.dummyspot2);
1788 addOption("teleportbotsE", self.dummyspot3, ::TeleportBotsE, level.dummyspot3);
1789 addOption("teleportbotsE", self.dummyspot4, ::TeleportBotsE, level.dummyspot4);
1790 addOption("teleportbotsE", self.dummyspot5, ::TeleportBotsE, level.dummyspot5);
1791 addOption("teleportbotsF", self.dummyspot1, ::TeleportBotsF, level.dummyspot1);
1792 addOption("teleportbotsF", self.dummyspot2, ::TeleportBotsF, level.dummyspot2);
1793 addOption("teleportbotsF", self.dummyspot3, ::TeleportBotsF, level.dummyspot3);
1794 addOption("teleportbotsF", self.dummyspot4, ::TeleportBotsF, level.dummyspot4);
1795 addOption("teleportbotsF", self.dummyspot5, ::TeleportBotsF, level.dummyspot5);
1796 }
1797 else
1798 {
1799 if (getDvar("mapname") == "mp_magma")
1800 {
1801 level.tspot1 = (284, -817, -401);
1802 self.tspot1 = "Top of the van";
1803 level.dummyspot1 = (-442, -1999, -640);
1804 self.dummyspot1 = "Inside the train";
1805 addOption("teleport", self.tspot1, ::teleport, level.tspot1);
1806 addOption("teleportbotsE", self.dummyspot1, ::TeleportBotsE, level.dummyspot1);
1807 addOption("teleportbotsF", self.dummyspot1, ::TeleportBotsF, level.dummyspot1);
1808 }
1809 else
1810 {
1811 if (getDvar("mapname") == "mp_vertigo")
1812 {
1813 level.tspot1 = (199, -2158, -15);
1814 self.tspot1 = "Main Spot";
1815 level.tspot2 = (1285, -321, 104);
1816 self.tspot2 = "Qevez's Spot";
1817 level.tspot3 = (-220, 2948, -13);
1818 self.tspot3 = "Back of the map Suicide";
1819 level.tspot4 = (-1013, -1169, 99);
1820 self.tspot4 = "A-Bomb Suicide";
1821 level.dummyspot1 = (919, -995, 73);
1822 self.dummyspot1 = "Middle Ramp";
1823 level.dummyspot2 = (1346, -739, 109);
1824 self.dummyspot2 = "Regular Suicide";
1825 level.dummyspot3 = (-1623, 803, 8);
1826 self.dummyspot3 = "A-Bomb Suicide";
1827 level.dummyspot4 = (-1122, -2331, -166);
1828 self.dummyspot4 = "A-Bomb Hallway";
1829 level.dummyspot5 = (774, 15, -31);
1830 self.dummyspot5 = "Laderstall Suicide";
1831 level.dummyspot6 = (1146, 25, 113);
1832 self.dummyspot6 = "Qevez's Suicide";
1833 addOption("teleport", self.tspot1, ::teleport, level.tspot1);
1834 addOption("teleport", self.tspot2, ::teleport, level.tspot2);
1835 addOption("teleport", self.tspot3, ::teleport, level.tspot3);
1836 addOption("teleport", self.tspot4, ::teleport, level.tspot4);
1837 addOption("teleportbotsE", self.dummyspot1, ::TeleportBotsE, level.dummyspot1);
1838 addOption("teleportbotsE", self.dummyspot2, ::TeleportBotsE, level.dummyspot2);
1839 addOption("teleportbotsE", self.dummyspot3, ::TeleportBotsE, level.dummyspot3);
1840 addOption("teleportbotsE", self.dummyspot4, ::TeleportBotsE, level.dummyspot4);
1841 addOption("teleportbotsE", self.dummyspot5, ::TeleportBotsE, level.dummyspot5);
1842 addOption("teleportbotsE", self.dummyspot6, ::TeleportBotsE, level.dummyspot6);
1843 addOption("teleportbotsF", self.dummyspot1, ::TeleportBotsF, level.dummyspot1);
1844 addOption("teleportbotsF", self.dummyspot2, ::TeleportBotsF, level.dummyspot2);
1845 addOption("teleportbotsF", self.dummyspot3, ::TeleportBotsF, level.dummyspot3);
1846 addOption("teleportbotsF", self.dummyspot4, ::TeleportBotsF, level.dummyspot4);
1847 addOption("teleportbotsF", self.dummyspot5, ::TeleportBotsF, level.dummyspot5);
1848 addOption("teleportbotsF", self.dummyspot6, ::TeleportBotsF, level.dummyspot6);
1849 }
1850 else
1851 {
1852 if (getDvar("mapname") == "mp_studio")
1853 {
1854 level.tspot1 = (409, 935, 194);
1855 self.tspot1 = "Top of the Tower";
1856 level.tspot2 = (-26, 1253, 96);
1857 self.tspot2 = "Top of the Barn";
1858 level.tspot3 = (1104, 1441, 94);
1859 self.tspot3 = "Top of the Castle";
1860 level.tspot4 = (1085, 962, 76);
1861 self.tspot4 = "Castle Strafe Spot";
1862 level.dummyspot1 = (48, 1907, -7);
1863 self.dummyspot1 = "Trailler Window";
1864 level.dummyspot2 = (-257, 203, -111);
1865 self.dummyspot2 = "B Bomb";
1866 level.dummyspot3 = (1002, -47, -21);
1867 self.dummyspot3 = "Green Wallbang";
1868 level.dummyspot4 = (965, 1077, 94);
1869 self.dummyspot4 = "Top of Castle";
1870 level.dummyspot5 = (870, 1692, -47);
1871 self.dummyspot5 = "Castle Wallbang";
1872 addOption("teleport", self.tspot1, ::teleport, level.tspot1);
1873 addOption("teleport", self.tspot2, ::teleport, level.tspot2);
1874 addOption("teleport", self.tspot3, ::teleport, level.tspot3);
1875 addOption("teleport", self.tspot4, ::teleport, level.tspot4);
1876 addOption("teleportbotsE", self.dummyspot1, ::TeleportBotsE, level.dummyspot1);
1877 addOption("teleportbotsE", self.dummyspot2, ::TeleportBotsE, level.dummyspot2);
1878 addOption("teleportbotsE", self.dummyspot3, ::TeleportBotsE, level.dummyspot3);
1879 addOption("teleportbotsE", self.dummyspot4, ::TeleportBotsE, level.dummyspot4);
1880 addOption("teleportbotsE", self.dummyspot5, ::TeleportBotsE, level.dummyspot5);
1881 addOption("teleportbotsF", self.dummyspot1, ::TeleportBotsF, level.dummyspot1);
1882 addOption("teleportbotsF", self.dummyspot2, ::TeleportBotsF, level.dummyspot2);
1883 addOption("teleportbotsF", self.dummyspot3, ::TeleportBotsF, level.dummyspot3);
1884 addOption("teleportbotsF", self.dummyspot4, ::TeleportBotsF, level.dummyspot4);
1885 addOption("teleportbotsF", self.dummyspot5, ::TeleportBotsF, level.dummyspot5);
1886 }
1887 else
1888 {
1889 if (getDvar("mapname") == "mp_village") // standoff
1890 {
1891 level.tspot1 = (-915, -1345, 144);
1892 self.tspot1 = "Window Shot";
1893 level.tspot2 = (-1239, -485, 134);
1894 self.tspot2 = "Strafe Jump Roof";
1895 level.tspot3 = (83, -393, 169);
1896 self.tspot3 = "B-Bomb Building Roof";
1897 level.tspot4 = (1111, 679, 144);
1898 self.tspot4 = "Window Shot (Near Gas Sation)";
1899 level.tspot5 = (-247, 1093, 142);
1900 self.tspot5 = "Warehouse Window";
1901 level.dummyspot1 = (-728, 781, 0);
1902 self.dummyspot1 = "Priest Statue";
1903 level.dummyspot2 = (83, -393, 169);
1904 self.dummyspot2 = "B Bomb Building";
1905 level.dummyspot3 = (-863, -986, 149);
1906 self.dummyspot3 = "Grandma's House Roof";
1907 level.dummyspot4 = (-1749, -982, 26);
1908 self.dummyspot4 = "Tank Behind Grandma's House";
1909 addOption("teleport", self.tspot1, ::teleport, level.tspot1);
1910 addOption("teleport", self.tspot2, ::teleport, level.tspot2);
1911 addOption("teleport", self.tspot3, ::teleport, level.tspot3);
1912 addOption("teleport", self.tspot4, ::teleport, level.tspot4);
1913 addOption("teleport", self.tspot5, ::teleport, level.tspot5);
1914 addOption("teleportbotsE", self.dummyspot1, ::TeleportBotsE, level.dummyspot1);
1915 addOption("teleportbotsE", self.dummyspot2, ::TeleportBotsE, level.dummyspot2);
1916 addOption("teleportbotsE", self.dummyspot3, ::TeleportBotsE, level.dummyspot3);
1917 addOption("teleportbotsE", self.dummyspot4, ::TeleportBotsE, level.dummyspot4);
1918 addOption("teleportbotsF", self.dummyspot1, ::TeleportBotsF, level.dummyspot1);
1919 addOption("teleportbotsF", self.dummyspot2, ::TeleportBotsF, level.dummyspot2);
1920 addOption("teleportbotsF", self.dummyspot3, ::TeleportBotsF, level.dummyspot3);
1921 addOption("teleportbotsF", self.dummyspot4, ::TeleportBotsF, level.dummyspot4);
1922 }
1923 else
1924 {
1925 if (getDvar("mapname") == "mp_express")
1926 {
1927 level.tspot1 = (336, -1635, 48);
1928 self.tspot1 = "Right Side Train";
1929 level.tspot2 = (133, -1351, 128);
1930 self.tspot2 = "Right side Catwalk";
1931 level.tspot3 = (-295, -2, 104);
1932 self.tspot3 = "Middle of the Train";
1933 level.tspot4 = (-900, -2, -78);
1934 self.tspot4 = "Main Building (A-Bomb)";
1935 level.tspot5 = (181, 1301, 128);
1936 self.tspot5 = "Left Side Catwalk";
1937 level.tspot6 = (341, 1644, 48);
1938 self.tspot6 = "Left Side Train";
1939 level.dummyspot1 = (488, 253, -15);
1940 self.dummyspot1 = "Middle of the map";
1941 level.dummyspot2 = (-236, -349, -15);
1942 self.dummyspot2 = "Trainbang";
1943 level.dummyspot3 = (-370, -275, -15);
1944 self.dummyspot3 = "A-Bomb Building Wallbang";
1945 level.dummyspot4 = (181, 1301, 128);
1946 self.dummyspot4 = "Left Side Catwalk";
1947 level.dummyspot5 = (-295, -2, 104);
1948 self.dummyspot5 = "Middle of the Train";
1949 level.dummyspot6 = (133, -1351, 128);
1950 self.dummyspot6 = "Right Side Catwalk";
1951 addOption("teleport", self.tspot1, ::teleport, level.tspot1);
1952 addOption("teleport", self.tspot2, ::teleport, level.tspot2);
1953 addOption("teleport", self.tspot3, ::teleport, level.tspot3);
1954 addOption("teleport", self.tspot4, ::teleport, level.tspot4);
1955 addOption("teleport", self.tspot5, ::teleport, level.tspot5);
1956 addOption("teleport", self.tspot6, ::teleport, level.tspot6);
1957 addOption("teleportbotsE", self.dummyspot1, ::TeleportBotsE, level.dummyspot1);
1958 addOption("teleportbotsE", self.dummyspot2, ::TeleportBotsE, level.dummyspot2);
1959 addOption("teleportbotsE", self.dummyspot3, ::TeleportBotsE, level.dummyspot3);
1960 addOption("teleportbotsE", self.dummyspot4, ::TeleportBotsE, level.dummyspot4);
1961 addOption("teleportbotsE", self.dummyspot5, ::TeleportBotsE, level.dummyspot5);
1962 addOption("teleportbotsE", self.dummyspot6, ::TeleportBotsE, level.dummyspot6);
1963 addOption("teleportbotsF", self.dummyspot1, ::TeleportBotsF, level.dummyspot1);
1964 addOption("teleportbotsF", self.dummyspot2, ::TeleportBotsF, level.dummyspot2);
1965 addOption("teleportbotsF", self.dummyspot3, ::TeleportBotsF, level.dummyspot3);
1966 addOption("teleportbotsF", self.dummyspot4, ::TeleportBotsF, level.dummyspot4);
1967 addOption("teleportbotsF", self.dummyspot5, ::TeleportBotsF, level.dummyspot5);
1968 addOption("teleportbotsF", self.dummyspot6, ::TeleportBotsF, level.dummyspot6);
1969 }
1970 else
1971 {
1972 if (getDvar("mapname") == "mp_socotra") // Yemen
1973 {
1974 level.tspot1 = (-314, -2257, 242);
1975 self.tspot1 = "Main Suicide Spot";
1976 level.tspot2 = (1994, -573, 240);
1977 self.tspot2 = "A-Bomb Suicide Spot";
1978 level.tspot3 = (219, 1413, 414);
1979 self.tspot3 = "Top of the Bridge";
1980 level.tspot4 = (7, -208, 184);
1981 self.tspot4 = "Church Suicide Spot";
1982 level.dummyspot1 = (-128, 2252,98);
1983 self.dummyspot1 = "Main Suicide";
1984 level.dummyspot2 = (1446, 422, 216);
1985 self.dummyspot2 = "A-Bomb lookout ";
1986 level.dummyspot3 = (1751, 150,120);
1987 self.dummyspot3 = "A-Bomb Staircase";
1988 level.dummyspot4 = (42, 609, 111);
1989 self.dummyspot4 = "B Bomb";
1990 addOption("teleport", self.tspot1, ::teleport, level.tspot1);
1991 addOption("teleport", self.tspot2, ::teleport, level.tspot2);
1992 addOption("teleport", self.tspot3, ::teleport, level.tspot3);
1993 addOption("teleport", self.tspot4, ::teleport, level.tspot4);
1994 addOption("teleportbotsE", self.dummyspot1, ::TeleportBotsE, level.dummyspot1);
1995 addOption("teleportbotsE", self.dummyspot2, ::TeleportBotsE, level.dummyspot2);
1996 addOption("teleportbotsE", self.dummyspot3, ::TeleportBotsE, level.dummyspot3);
1997 addOption("teleportbotsE", self.dummyspot4, ::TeleportBotsE, level.dummyspot4);
1998 addOption("teleportbotsF", self.dummyspot1, ::TeleportBotsF, level.dummyspot1);
1999 addOption("teleportbotsF", self.dummyspot2, ::TeleportBotsF, level.dummyspot2);
2000 addOption("teleportbotsF", self.dummyspot3, ::TeleportBotsF, level.dummyspot3);
2001 addOption("teleportbotsF", self.dummyspot4, ::TeleportBotsF, level.dummyspot4);
2002 }
2003 else
2004 {
2005 if (getDvar("mapname") == "mp_drone")
2006 {
2007 level.tspot1 = (-1141, -842, 266);
2008 self.tspot1 = "Main Spot";
2009 level.tspot2 = (19, 2816, 332);
2010 self.tspot2 = "Spawnshot";
2011 level.tspot3 = (-37, 928, 264);
2012 self.tspot3 = "Top of the Bridge";
2013 level.tspot4 = (-231, -1093, 240);
2014 self.tspot4 = "Top of Helipad";
2015 level.dummyspot1 = (137, -1548, 120);
2016 self.dummyspot1 = "Helipad Staircase";
2017 level.dummyspot2 = (-36, -949, -39);
2018 self.dummyspot2 = "B Bomb";
2019 level.dummyspot3 = (-647, -1608, 26);
2020 self.dummyspot3 = "B-Bomb Fence Wallbang";
2021 level.dummyspot4 = (-37, 928, 264);
2022 self.dummyspot4 = "Top of the Bridge";
2023 addOption("teleport", self.tspot1, ::teleport, level.tspot1);
2024 addOption("teleport", self.tspot2, ::teleport, level.tspot2);
2025 addOption("teleport", self.tspot3, ::teleport, level.tspot3);
2026 addOption("teleport", self.tspot4, ::teleport, level.tspot4);
2027 addOption("teleportbotsE", self.dummyspot1, ::TeleportBotsE, level.dummyspot1);
2028 addOption("teleportbotsE", self.dummyspot2, ::TeleportBotsE, level.dummyspot2);
2029 addOption("teleportbotsE", self.dummyspot3, ::TeleportBotsE, level.dummyspot3);
2030 addOption("teleportbotsE", self.dummyspot4, ::TeleportBotsE, level.dummyspot4);
2031 addOption("teleportbotsF", self.dummyspot1, ::TeleportBotsF, level.dummyspot1);
2032 addOption("teleportbotsF", self.dummyspot2, ::TeleportBotsF, level.dummyspot2);
2033 addOption("teleportbotsF", self.dummyspot3, ::TeleportBotsF, level.dummyspot3);
2034 addOption("teleportbotsF", self.dummyspot4, ::TeleportBotsF, level.dummyspot4);
2035 }
2036 else
2037 {
2038 if (getDvar("mapname") == "mp_uplink")
2039 {
2040 level.tspot1 = (2011, -378, 481);
2041 self.tspot1 = "Main Suicide";
2042 level.tspot2 = (3835, -964, 454);
2043 self.tspot2 = "B Bomb";
2044 level.dummyspot1 = (3425, -135, 320);
2045 self.dummyspot1 = "B Bomb";
2046 level.dummyspot2 = (3499, -278, 491);
2047 self.dummyspot2 = "Top of B Bomb Staircase";
2048 level.dummyspot3 = (2199, -498, 320);
2049 self.dummyspot3 = "Window Suicide";
2050 level.dummyspot4 = (1941, -497, 106);
2051 self.dummyspot4 = "A Bomb";
2052 level.dummyspot5 = (1617, -1235, 127);
2053 self.dummyspot5 = "Distance Suicide";
2054 addOption("teleport", self.tspot1, ::teleport, level.tspot1);
2055 addOption("teleport", self.tspot2, ::teleport, level.tspot2);
2056 addOption("teleportbotsE", self.dummyspot1, ::TeleportBotsE, level.dummyspot1);
2057 addOption("teleportbotsE", self.dummyspot2, ::TeleportBotsE, level.dummyspot2);
2058 addOption("teleportbotsE", self.dummyspot3, ::TeleportBotsE, level.dummyspot3);
2059 addOption("teleportbotsE", self.dummyspot4, ::TeleportBotsE, level.dummyspot4);
2060 addOption("teleportbotsE", self.dummyspot5, ::TeleportBotsE, level.dummyspot5);
2061 addOption("teleportbotsF", self.dummyspot1, ::TeleportBotsF, level.dummyspot1);
2062 addOption("teleportbotsF", self.dummyspot2, ::TeleportBotsF, level.dummyspot2);
2063 addOption("teleportbotsF", self.dummyspot3, ::TeleportBotsF, level.dummyspot3);
2064 addOption("teleportbotsF", self.dummyspot4, ::TeleportBotsF, level.dummyspot4);
2065 addOption("teleportbotsF", self.dummyspot5, ::TeleportBotsF, level.dummyspot5);
2066 }
2067 else
2068 {
2069 if (getDvar("mapname") == "mp_takeoff")
2070 {
2071 level.tspot1 = (12, 1881, 166);
2072 self.tspot1 = "Main Tickshot Spot";
2073 level.tspot2 = (-947, 145, 208);
2074 self.tspot2 = "Top of the laderstall";
2075 level.tspot3 = (624, 1038, 160);
2076 self.tspot3 = "B-Bomb Window";
2077 level.tspot4 = (1291, 2146, 160);
2078 self.tspot4 = "Blue Window Shot";
2079 level.tspot5 = (-228, 2933, 156);
2080 self.tspot5 = "Strafe Spot (Inside Main Building)";
2081 level.dummyspot1 = (738, 1149, -37);
2082 self.dummyspot1 = "B Bomb";
2083 level.dummyspot2 = (12, 1881, 166);
2084 self.dummyspot2 = "Top of the Main Spot";
2085 level.dummyspot3 = (-956, 160, 208);
2086 self.dummyspot3 = "Top of the Laderstall";
2087 level.dummyspot4 = (624, 1038, 160);
2088 self.dummyspot4 = "B-Bomb Window";
2089 level.dummyspot5 = (1291, 2146, 160);
2090 self.dummyspot5 = "Blue Window Shot";
2091 level.dummyspot6 = (-669, 1173, 0);
2092 self.dummyspot6 = "A Bomb";
2093 level.dummyspot7 = (-665, 1770, 32);
2094 self.dummyspot7 = "Inside Main Building";
2095 level.dummyspot8 = (1589, 1226, 0);
2096 self.dummyspot8 = "B-Bomb Building Entrance";
2097 addOption("teleport", self.tspot1, ::teleport, level.tspot1);
2098 addOption("teleport", self.tspot2, ::teleport, level.tspot2);
2099 addOption("teleport", self.tspot3, ::teleport, level.tspot3);
2100 addOption("teleport", self.tspot4, ::teleport, level.tspot4);
2101 addOption("teleport", self.tspot5, ::teleport, level.tspot5);
2102 addOption("teleportbotsE", self.dummyspot1, ::TeleportBotsE, level.dummyspot1);
2103 addOption("teleportbotsE", self.dummyspot2, ::TeleportBotsE, level.dummyspot2);
2104 addOption("teleportbotsE", self.dummyspot3, ::TeleportBotsE, level.dummyspot3);
2105 addOption("teleportbotsE", self.dummyspot4, ::TeleportBotsE, level.dummyspot4);
2106 addOption("teleportbotsE", self.dummyspot5, ::TeleportBotsE, level.dummyspot5);
2107 addOption("teleportbotsE", self.dummyspot6, ::TeleportBotsE, level.dummyspot6);
2108 addOption("teleportbotsE", self.dummyspot7, ::TeleportBotsE, level.dummyspot7);
2109 addOption("teleportbotsE", self.dummyspot8, ::TeleportBotsE, level.dummyspot8);
2110 addOption("teleportbotsF", self.dummyspot1, ::TeleportBotsF, level.dummyspot1);
2111 addOption("teleportbotsF", self.dummyspot2, ::TeleportBotsF, level.dummyspot2);
2112 addOption("teleportbotsF", self.dummyspot3, ::TeleportBotsF, level.dummyspot3);
2113 addOption("teleportbotsF", self.dummyspot4, ::TeleportBotsF, level.dummyspot4);
2114 addOption("teleportbotsF", self.dummyspot5, ::TeleportBotsF, level.dummyspot5);
2115 addOption("teleportbotsF", self.dummyspot6, ::TeleportBotsF, level.dummyspot6);
2116 addOption("teleportbotsF", self.dummyspot7, ::TeleportBotsF, level.dummyspot7);
2117 addOption("teleportbotsF", self.dummyspot8, ::TeleportBotsF, level.dummyspot8);
2118 }
2119 else
2120 {
2121 if (getDvar("mapname") == "mp_dockside") // Cargo
2122 {
2123 level.tspot1 = (-679, 2149, 68);
2124 self.tspot1 = "Blue Platform";
2125 level.tspot2 = (954, -372, 69);
2126 self.tspot2 = "Caarl's Suicide Spot";
2127 level.tspot3 = (-679, 2149, 68);
2128 self.tspot3 = "Orange Platform";
2129
2130 level.dummyspot1 = (662, 1463, 62);
2131 self.dummyspot1 = "Main Building Window";
2132 level.dummyspot2 = (801, 1020, 62);
2133 self.dummyspot2 = "Carl's Suicide Window";
2134 level.dummyspot3 = (-1352, -140, -67);
2135 self.dummyspot3 = "A Bomb";
2136 addOption("teleport", self.tspot1, ::teleport, level.tspot1);
2137 addOption("teleport", self.tspot2, ::teleport, level.tspot2);
2138 addOption("teleport", self.tspot3, ::teleport, level.tspot3);
2139 addOption("teleportbotsE", self.dummyspot1, ::TeleportBotsE, level.dummyspot1);
2140 addOption("teleportbotsE", self.dummyspot2, ::TeleportBotsE, level.dummyspot2);
2141 addOption("teleportbotsE", self.dummyspot3, ::TeleportBotsE, level.dummyspot3);
2142 addOption("teleportbotsF", self.dummyspot1, ::TeleportBotsF, level.dummyspot1);
2143 addOption("teleportbotsF", self.dummyspot2, ::TeleportBotsF, level.dummyspot2);
2144 addOption("teleportbotsF", self.dummyspot3, ::TeleportBotsF, level.dummyspot3);
2145 }
2146 else
2147 {
2148 if (getDvar("mapname") == "mp_hijacked")
2149 {
2150 level.tspot1 = (-1548, 66, 92);
2151 self.tspot1 = "Top of B Bomb Building";
2152 level.tspot2 = (-2894, -65, -63);
2153 self.tspot2 = "Pool Side";
2154 level.tspot3 = (822, -348, 156);
2155 self.tspot3 = "Main Building";
2156 level.tspot4 = ( 339, 665, 12);
2157 self.tspot4 = "Top of the Suicide Spot";
2158 level.dummyspot1 = (-1497, -170, -43);
2159 self.dummyspot1 = "B Bomb Wallbang";
2160 level.dummyspot2 = (12, 1881, 166);
2161 self.dummyspot2 = "Top of the Main Spot";
2162 level.dummyspot3 = (-1004, 664, -49);
2163 self.dummyspot3 = "Bottom Suicide Platform";
2164 level.dummyspot4 = (-483, 397, 20);
2165 self.dummyspot4 = "A Bomb";
2166 level.dummyspot5 = (-1636, 66, 92);
2167 self.dummyspot5 = "Top of B Bomb Building";
2168 level.dummyspot6 = (-190, 265, -171);
2169 self.dummyspot6 = "Boatbang";
2170 addOption("teleport", self.tspot1, ::teleport, level.tspot1);
2171 addOption("teleport", self.tspot2, ::teleport, level.tspot2);
2172 addOption("teleport", self.tspot3, ::teleport, level.tspot3);
2173 addOption("teleport", self.tspot4, ::teleport, level.tspot4);
2174 addOption("teleportbotsE", self.dummyspot1, ::TeleportBotsE, level.dummyspot1);
2175 addOption("teleportbotsE", self.dummyspot2, ::TeleportBotsE, level.dummyspot2);
2176 addOption("teleportbotsE", self.dummyspot3, ::TeleportBotsE, level.dummyspot3);
2177 addOption("teleportbotsE", self.dummyspot4, ::TeleportBotsE, level.dummyspot4);
2178 addOption("teleportbotsE", self.dummyspot5, ::TeleportBotsE, level.dummyspot5);
2179 addOption("teleportbotsE", self.dummyspot6, ::TeleportBotsE, level.dummyspot6);
2180 addOption("teleportbotsF", self.dummyspot1, ::TeleportBotsF, level.dummyspot1);
2181 addOption("teleportbotsF", self.dummyspot2, ::TeleportBotsF, level.dummyspot2);
2182 addOption("teleportbotsF", self.dummyspot3, ::TeleportBotsF, level.dummyspot3);
2183 addOption("teleportbotsF", self.dummyspot4, ::TeleportBotsF, level.dummyspot4);
2184 addOption("teleportbotsF", self.dummyspot5, ::TeleportBotsF, level.dummyspot5);
2185 addOption("teleportbotsF", self.dummyspot6, ::TeleportBotsF, level.dummyspot6);
2186 }
2187 else
2188 {
2189 if (getDvar("mapname") == "mp_meltdown")
2190 {
2191 level.tspot1 = (2235, 2547, 11);
2192 self.tspot1 = "Left Side Main Suicide";
2193 level.tspot2 = (622, 2924, 72);
2194 self.tspot2 = "Left Side Building";
2195 level.tspot3 = (593, 481, 72);
2196 self.tspot3 = "Right Side Building";
2197 level.tspot4 = (2235, -836, 11);
2198 self.tspot4 = "Right Side Main Suicide";
2199 level.dummyspot1 = (2182, 2602, -54);
2200 self.dummyspot1 = "Left Side Platform (B-Bomb)";
2201 level.dummyspot2 = (2393, 1703, -111);
2202 self.dummyspot2 = "B Bomb";
2203 level.dummyspot3 = (978, 1709, 56);
2204 self.dummyspot3 = "Middle of the Map";
2205 level.dummyspot4 = (2193, 738, -54);
2206 self.dummyspot4 = "Right Side Platform (B-Bomb)";
2207 addOption("teleport", self.tspot1, ::teleport, level.tspot1);
2208 addOption("teleport", self.tspot2, ::teleport, level.tspot2);
2209 addOption("teleport", self.tspot3, ::teleport, level.tspot3);
2210 addOption("teleport", self.tspot4, ::teleport, level.tspot4);
2211 addOption("teleportbotsE", self.dummyspot1, ::TeleportBotsE, level.dummyspot1);
2212 addOption("teleportbotsE", self.dummyspot2, ::TeleportBotsE, level.dummyspot2);
2213 addOption("teleportbotsE", self.dummyspot3, ::TeleportBotsE, level.dummyspot3);
2214 addOption("teleportbotsE", self.dummyspot4, ::TeleportBotsE, level.dummyspot4);
2215 addOption("teleportbotsF", self.dummyspot1, ::TeleportBotsF, level.dummyspot1);
2216 addOption("teleportbotsF", self.dummyspot2, ::TeleportBotsF, level.dummyspot2);
2217 addOption("teleportbotsF", self.dummyspot3, ::TeleportBotsF, level.dummyspot3);
2218 addOption("teleportbotsF", self.dummyspot4, ::TeleportBotsF, level.dummyspot4);
2219 }
2220 else
2221 {
2222 if (getDvar("mapname") == "mp_overflow")
2223 {
2224 level.tspot1 = (-158, 275, 136);
2225 self.tspot1 = "Middle of the Map (Boat)";
2226 level.tspot2 = (-2304, -13, -25);
2227 self.tspot2 = "Suicide Spot";
2228 level.tspot3 = (226, -235, 132);
2229 self.tspot3 = "Middle of the Map (Bus)";
2230
2231 level.dummyspot1 = (100, -802, 128);
2232 self.dummyspot1 = "Window lookout";
2233 level.dummyspot2 = (-1725, -1223, -127);
2234 self.dummyspot2 = "Suicide Spot";
2235 level.dummyspot3 = (2234, -571, 17);
2236 self.dummyspot3 = "Near the Store";
2237 addOption("teleport", self.tspot1, ::teleport, level.tspot1);
2238 addOption("teleport", self.tspot2, ::teleport, level.tspot2);
2239 addOption("teleport", self.tspot3, ::teleport, level.tspot3);
2240 addOption("teleportbotsE", self.dummyspot1, ::TeleportBotsE, level.dummyspot1);
2241 addOption("teleportbotsE", self.dummyspot2, ::TeleportBotsE, level.dummyspot2);
2242 addOption("teleportbotsE", self.dummyspot3, ::TeleportBotsE, level.dummyspot3);
2243 addOption("teleportbotsF", self.dummyspot1, ::TeleportBotsF, level.dummyspot1);
2244 addOption("teleportbotsF", self.dummyspot2, ::TeleportBotsF, level.dummyspot2);
2245 addOption("teleportbotsF", self.dummyspot3, ::TeleportBotsF, level.dummyspot3);
2246 }
2247 else
2248 {
2249 if (getDvar("mapname") == "mp_slums")
2250 {
2251 level.tspot1 = (-211, -493, 649);
2252 self.tspot1 = "Top of the wall";
2253 level.dummyspot1 = (1301, -1161, 552);
2254 self.dummyspot1 = "Near the Memorial (Bricks)";
2255
2256 addOption("teleport", self.tspot1, ::teleport, level.tspot1);
2257 addOption("teleportbotsE", self.dummyspot1, ::TeleportBotsE, level.dummyspot1);
2258 addOption("teleportbotsF", self.dummyspot1, ::TeleportBotsF, level.dummyspot1);
2259 }
2260 else
2261 {
2262 if (getDvar("mapname") == "mp_nightclub") // Plaza
2263 {
2264 level.tspot1 = (-16304, 2785, -63);
2265 self.tspot1 = "Left Side Lookout";
2266 level.tspot2 = (-18276, 895, -63);
2267 self.tspot2 = "Right Side Lookout";
2268 level.dummyspot1 = (-17806, 2329, -87);
2269 self.dummyspot1 = "Middle of the Map";
2270 addOption("teleport", self.tspot1, ::teleport, level.tspot1);
2271 addOption("teleport", self.tspot2, ::teleport, level.tspot2);
2272 addOption("teleportbotsE", self.dummyspot1, ::TeleportBotsE, level.dummyspot1);
2273 addOption("teleportbotsF", self.dummyspot1, ::TeleportBotsF, level.dummyspot1);
2274 }
2275 else
2276 {
2277 if (getDvar("mapname") == "mp_la") // Aftermath
2278 {
2279 level.tspot1 = (-2578, 685, -93);
2280 self.tspot1 = "Top of the Fire Truck";
2281 level.tspot2 = (-276, 242, -43);
2282 self.tspot2 = "Mancat Spot";
2283 level.dummyspot1 = (-264, 381, -192);
2284 self.dummyspot1 = "Near the Parking lot";
2285 level.dummyspot2 = (-2090, 587, -197);
2286 self.dummyspot2 = "Near the Fire Truck";
2287
2288 addOption("teleport", self.tspot1, ::teleport, level.tspot1);
2289 addOption("teleport", self.tspot2, ::teleport, level.tspot2);
2290 addOption("teleportbotsE", self.dummyspot1, ::TeleportBotsE, level.dummyspot1);
2291 addOption("teleportbotsF", self.dummyspot1, ::TeleportBotsF, level.dummyspot1);
2292 addOption("teleportbotsE", self.dummyspot2, ::TeleportBotsE, level.dummyspot2);
2293 addOption("teleportbotsF", self.dummyspot2, ::TeleportBotsF, level.dummyspot2);
2294 }
2295 else
2296 {
2297 if (getDvar("mapname") == "mp_downhill")
2298 {
2299 level.tspot1 = (1545, -172, 988);
2300 self.tspot1 = "Middle of the Map Window";
2301 level.tspot2 = (930, 2434, 1253);
2302 self.tspot2 = "Main House Balcony";
2303 level.tspot3 = (2940, -154, 916);
2304 self.tspot3 = "Suicide";
2305 level.tspot4 = (632, -2501, 1124);
2306 self.tspot4 = "Tent Window Shot";
2307 level.dummyspot1 = (408, -1143, 1001);
2308 self.dummyspot1 = "Ski House Lookout";
2309 level.dummyspot2 = (873, 662, 948);
2310 self.dummyspot2 = "Middle of the Map (Near Rocks)";
2311 level.dummyspot3 = (2535, 1121, 964);
2312 self.dummyspot3 = "Suicide Spot (Near Snowboards)";
2313 level.dummyspot4 = (-553, -1339, 1016);
2314 self.dummyspot4 = "Ski House Entrance";
2315
2316 addOption("teleport", self.tspot1, ::teleport, level.tspot1);
2317 addOption("teleport", self.tspot2, ::teleport, level.tspot2);
2318 addOption("teleport", self.tspot3, ::teleport, level.tspot3);
2319 addOption("teleport", self.tspot4, ::teleport, level.tspot4);
2320 addOption("teleportbotsE", self.dummyspot1, ::TeleportBotsE, level.dummyspot1);
2321 addOption("teleportbotsE", self.dummyspot2, ::TeleportBotsE, level.dummyspot2);
2322 addOption("teleportbotsE", self.dummyspot3, ::TeleportBotsE, level.dummyspot3);
2323 addOption("teleportbotsE", self.dummyspot4, ::TeleportBotsE, level.dummyspot4);
2324 addOption("teleportbotsF", self.dummyspot1, ::TeleportBotsF, level.dummyspot1);
2325 addOption("teleportbotsF", self.dummyspot2, ::TeleportBotsF, level.dummyspot2);
2326 addOption("teleportbotsF", self.dummyspot3, ::TeleportBotsF, level.dummyspot3);
2327 addOption("teleportbotsF", self.dummyspot4, ::TeleportBotsF, level.dummyspot4);
2328 }
2329 else
2330 {
2331 if (getDvar("mapname") == "mp_dig")
2332 {
2333 level.tspot1 = (-439, -64, 198);
2334 self.tspot1 = "Main Trickshot Spot";
2335 level.tspot2 = (-1321, -1480, 155);
2336 self.tspot2 = "Spawnshot";
2337 level.tspot3 = (-968, -1715, 163);
2338 self.tspot3 = "Strafe Spot";
2339 level.tspot4 = (-224, 1204, 186);
2340 self.tspot4 = "B-Bomb Dropback";
2341 level.tspot4 = (355, 706, 194);
2342 self.tspot4 = "Glitch Spot";
2343 level.dummyspot1 = (5, -1079, 49);
2344 self.dummyspot1 = "A Bomb";
2345 level.dummyspot2 = (-439, -64, 198);
2346 self.dummyspot2 = "Top of the Main Spot";
2347 level.dummyspot3 = (-100, 1199, 96);
2348 self.dummyspot3 = "B Bomb";
2349 addOption("teleport", self.tspot1, ::teleport, level.tspot1);
2350 addOption("teleport", self.tspot2, ::teleport, level.tspot2);
2351 addOption("teleport", self.tspot3, ::teleport, level.tspot3);
2352 addOption("teleport", self.tspot4, ::teleport, level.tspot4);
2353 addOption("teleportbotsE", self.dummyspot1, ::TeleportBotsE, level.dummyspot1);
2354 addOption("teleportbotsE", self.dummyspot2, ::TeleportBotsE, level.dummyspot2);
2355 addOption("teleportbotsE", self.dummyspot3, ::TeleportBotsE, level.dummyspot3);
2356 addOption("teleportbotsF", self.dummyspot1, ::TeleportBotsF, level.dummyspot1);
2357 addOption("teleportbotsF", self.dummyspot2, ::TeleportBotsF, level.dummyspot2);
2358 addOption("teleportbotsF", self.dummyspot3, ::TeleportBotsF, level.dummyspot3);
2359 }
2360 else
2361 {
2362 if (getdvar("mapname") == "mp_hydro")
2363 {
2364 level.tspot1 = (-790, -1017, 356);
2365 self.tspot1 = "Top of the White Van";
2366 level.tspot2 = (1327, -166, 215);
2367 self.tspot2 = "Main Suicide spot";
2368 level.dummyspot1 = (1034, -1192, 344);
2369 self.dummyspot1 = "Platform Lookout";
2370 level.dummyspot2 = (-1422, 162, 216);
2371 self.dummyspot2 = "Top of the Platform (Suicide)";
2372 addOption("teleport", self.tspot1, ::teleport, level.tspot1);
2373 addOption("teleport", self.tspot2, ::teleport, level.tspot2);
2374 addOption("teleportbotsE", self.dummyspot1, ::TeleportBotsE, level.dummyspot1);
2375 addOption("teleportbotsE", self.dummyspot2, ::TeleportBotsE, level.dummyspot2);
2376 addOption("teleportbotsF", self.dummyspot1, ::TeleportBotsF, level.dummyspot1);
2377 addOption("teleportbotsF", self.dummyspot2, ::TeleportBotsF, level.dummyspot2);
2378 }
2379 else
2380 {
2381 if (getdvar("mapname") == "mp_carrier")
2382 {
2383 level.tspot1 = (-6135, -673, 44);
2384 self.tspot1 = "1800 Suicide";
2385 level.tspot2 = (-4831, 20, 164);
2386 self.tspot2 = "Top of the broken Helicopter";
2387 level.tspot3 = (-4799,1206,44);
2388 self.tspot3 = "Boat Bang";
2389 level.tspot4 = (-3257, 348, 137);
2390 self.tspot4 = "Top of the Ramp";
2391 level.tspot4 = (-5658, -783, 158);
2392 self.tspot4 = "Top of the Second Jet";
2393
2394 level.dummyspot1 = (-5066, -1721, -75);
2395 self.dummyspot1 = "Cave entrance";
2396 level.dummyspot2 = (-3716, -1173, 44);
2397 self.dummyspot2 = "Spawnshot";
2398 level.dummyspot3 = (-4861, 1351, 44);
2399 self.dummyspot3 = "Top of the ladder";
2400 level.dummyspot4 = (-5164, -897, 152);
2401 self.dummyspot4 = "Top of the First Jet";
2402 level.dummyspot5 = (-6344, -974, -83);
2403 self.dummyspot5 = "Main Suicide Spot";
2404 level.dummyspot6 = (-5429, 584, 44);
2405 self.dummyspot6 = "Middle of the Map";
2406
2407 addOption("teleport", self.tspot1, ::teleport, level.tspot1);
2408 addOption("teleport", self.tspot2, ::teleport, level.tspot2);
2409 addOption("teleport", self.tspot3, ::teleport, level.tspot3);
2410 addOption("teleport", self.tspot4, ::teleport, level.tspot4);
2411 addOption("teleportbotsE", self.dummyspot1, ::TeleportBotsE, level.dummyspot1);
2412 addOption("teleportbotsE", self.dummyspot2, ::TeleportBotsE, level.dummyspot2);
2413 addOption("teleportbotsE", self.dummyspot3, ::TeleportBotsE, level.dummyspot3);
2414 addOption("teleportbotsE", self.dummyspot4, ::TeleportBotsE, level.dummyspot4);
2415 addOption("teleportbotsE", self.dummyspot5, ::TeleportBotsE, level.dummyspot5);
2416 addOption("teleportbotsE", self.dummyspot6, ::TeleportBotsE, level.dummyspot6);
2417 addOption("teleportbotsF", self.dummyspot1, ::TeleportBotsF, level.dummyspot1);
2418 addOption("teleportbotsF", self.dummyspot2, ::TeleportBotsE, level.dummyspot2);
2419 addOption("teleportbotsF", self.dummyspot3, ::TeleportBotsE, level.dummyspot3);
2420 addOption("teleportbotsF", self.dummyspot4, ::TeleportBotsE, level.dummyspot4);
2421 addOption("teleportbotsF", self.dummyspot5, ::TeleportBotsE, level.dummyspot5);
2422 addOption("teleportbotsF", self.dummyspot6, ::TeleportBotsE, level.dummyspot6);
2423 }
2424 else
2425 {
2426 if (getdvar("mapname") == "mp_castaway")
2427 {
2428 level.tspot1 = (1492, 167, 212);
2429 self.tspot1 = "Top of the Broken Plane";
2430 level.tspot2 = (1706, 1688, 165);
2431 self.tspot2 = "Top of the Rocks (Suicide)";
2432 level.dummyspot1 = (1288, 1888, 66);
2433 self.dummyspot1 = "Rock side (Near Plane)";
2434 level.dummyspot2 = (1870, -48, 51);
2435 self.dummyspot2 = "Below Broken Plane";
2436 addOption("teleport", self.tspot1, ::teleport, level.tspot1);
2437 addOption("teleport", self.tspot2, ::teleport, level.tspot2);
2438 addOption("teleportbotsE", self.dummyspot1, ::TeleportBotsE, level.dummyspot1);
2439 addOption("teleportbotsE", self.dummyspot2, ::TeleportBotsE, level.dummyspot2);
2440 addOption("teleportbotsF", self.dummyspot1, ::TeleportBotsF, level.dummyspot1);
2441 addOption("teleportbotsF", self.dummyspot2, ::TeleportBotsF, level.dummyspot2);
2442 }
2443 else
2444 {
2445 if (getdvar("mapname") == "mp_frostbite")
2446 {
2447 level.tspot1 = (354, 1233, 78);
2448 self.tspot1 = "A Bomb";
2449 level.tspot2 = (107, 141, 68);
2450 self.tspot2 = "Top of the Bridge";
2451 level.dummyspot1 = (224, 1103, -39);
2452 self.dummyspot1 = "A Bomb";
2453 level.dummyspot2 = (107, 141, 68);
2454 self.dummyspot2 = "Bridge";
2455 addOption("teleport", self.tspot1, ::teleport, level.tspot1);
2456 addOption("teleport", self.tspot2, ::teleport, level.tspot2);
2457 addOption("teleportbotsE", self.dummyspot1, ::TeleportBotsE, level.dummyspot1);
2458 addOption("teleportbotsE", self.dummyspot2, ::TeleportBotsE, level.dummyspot2);
2459 addOption("teleportbotsF", self.dummyspot1, ::TeleportBotsF, level.dummyspot1);
2460 addOption("teleportbotsF", self.dummyspot2, ::TeleportBotsF, level.dummyspot2);
2461 }
2462 else
2463 {
2464 if (getdvar("mapname") == "mp_bridge")
2465 {
2466 level.tspot1 = (-630, -1305, 1);
2467 self.tspot1 = "Right Side Platform Suicide";
2468 level.tspot2 = (430, -1163, -88);
2469 self.tspot2 = "B Bomb Suicide";
2470 level.tspot3 = (618, 1249, 1);
2471 self.tspot3 = "Left Side Platform Suicide";
2472
2473 level.dummyspot1 = (181, -663, -127);
2474 self.dummyspot1 = "Right Side Platform Suicide";
2475 level.dummyspot2 = (-1962, -919, -122);
2476 self.dummyspot2 = "Teq's Suicide";
2477 level.dummyspot3 = (430, -1163, -88);
2478 self.dummyspot3 = "B Bomb Suicide";
2479 level.dummyspot4 = (-162, 729, -127);
2480 self.dummyspot4 = "Left Side Platform Suicide";
2481 addOption("teleport", self.tspot1, ::teleport, level.tspot1);
2482 addOption("teleport", self.tspot2, ::teleport, level.tspot2);
2483 addOption("teleport", self.tspot3, ::teleport, level.tspot3);
2484 addOption("teleportbotsE", self.dummyspot1, ::TeleportBotsE, level.dummyspot1);
2485 addOption("teleportbotsE", self.dummyspot2, ::TeleportBotsE, level.dummyspot2);
2486 addOption("teleportbotsE", self.dummyspot3, ::TeleportBotsE, level.dummyspot3);
2487 addOption("teleportbotsE", self.dummyspot4, ::TeleportBotsE, level.dummyspot4);
2488 addOption("teleportbotsF", self.dummyspot1, ::TeleportBotsF, level.dummyspot1);
2489 addOption("teleportbotsF", self.dummyspot2, ::TeleportBotsF, level.dummyspot2);
2490 addOption("teleportbotsF", self.dummyspot3, ::TeleportBotsF, level.dummyspot3);
2491 addOption("teleportbotsF", self.dummyspot4, ::TeleportBotsF, level.dummyspot4);
2492 }
2493 else
2494 {
2495 if (getdvar("mapname") == "mp_pod")
2496 {
2497 level.tspot1 = (-1738, -39, 432);
2498 self.tspot1 = "Suicide Platform";
2499
2500 level.dummyspot1 = (-708, -85, 407);
2501 self.dummyspot1 = "Suicide Platform";
2502 addOption("teleport", self.tspot1, ::teleport, level.tspot1);
2503 addOption("teleportbotsE", self.dummyspot1, ::TeleportBotsE, level.dummyspot1);
2504 addOption("teleportbotsF", self.dummyspot1, ::TeleportBotsF, level.dummyspot1);
2505 }
2506 else
2507 {
2508 if (getdvar("mapname") == "mp_paintball")
2509 {
2510 level.tspot1 = (579, -756, 136);
2511 self.tspot1 = "Subway Entrance Building Lookout";
2512 level.tspot2 = (568, 199, 136);
2513 self.tspot2 = "Laderstall Lookout";
2514
2515 level.dummyspot1 = (579, -756, 136);
2516 self.dummyspot1 = "Subway Entrance Building Lookout";
2517 level.dummyspot2 = (-43, -1077, 45);
2518 self.dummyspot2 = "Inside the Bus";
2519 addOption("teleport", self.tspot1, ::teleport, level.tspot1);
2520 addOption("teleport", self.tspot2, ::teleport, level.tspot2);
2521 addOption("teleportbotsE", self.dummyspot1, ::TeleportBotsE, level.dummyspot1);
2522 addOption("teleportbotsE", self.dummyspot2, ::TeleportBotsE, level.dummyspot2);
2523 addOption("teleportbotsF", self.dummyspot1, ::TeleportBotsF, level.dummyspot1);
2524 addOption("teleportbotsF", self.dummyspot2, ::TeleportBotsF, level.dummyspot2);
2525 }
2526 else
2527 {
2528 if (getdvar("mapname") == "mp_concert")
2529 {
2530 level.tspot1 = (-180, 808, 55);
2531 self.tspot1 = "Main Stage";
2532 level.tspot2 = (-1164, -574, -15);
2533 self.tspot2 = "Suicide Balcony";
2534
2535 level.dummyspot1 = (1095, 1952, 24);
2536 self.dummyspot1 = "Staircase near bathroom";
2537 level.dummyspot2 = (405, -607, -64);
2538 self.dummyspot2 = "B-Bomb Suicide";
2539 addOption("teleport", self.tspot1, ::teleport, level.tspot1);
2540 addOption("teleport", self.tspot2, ::teleport, level.tspot2);
2541 addOption("teleportbotsE", self.dummyspot1, ::TeleportBotsE, level.dummyspot1);
2542 addOption("teleportbotsE", self.dummyspot2, ::TeleportBotsE, level.dummyspot2);
2543 addOption("teleportbotsF", self.dummyspot1, ::TeleportBotsF, level.dummyspot1);
2544 addOption("teleportbotsF", self.dummyspot2, ::TeleportBotsF, level.dummyspot2);
2545 }
2546 else
2547 {
2548 if (getdvar("mapname") == "mp_nuketown_2020")
2549 {
2550 level.tspot1 = (-1162, 633, 116);
2551 self.tspot1 = "Orange House Staircase";
2552 level.tspot2 = (-492, 305, 75);
2553 self.tspot2 = "Orange House Ladderstall";
2554 level.tspot3 = (11, -586, -66);
2555 self.tspot3 = "Blue House Staircase";
2556 level.tspot4 = (506, 135, 87);
2557 self.tspot4 = "Blue House Ladderstall";
2558
2559 level.dummyspot1 = (-156, 1051, -64);
2560 self.dummyspot1 = "Orange House Window";
2561 level.dummyspot2 = (-881, 130, -56);
2562 self.dummyspot2 = "Orange House Garage";
2563 level.dummyspot3 = (-156, 1051, -64);
2564 self.dummyspot3 = "Middle of the Map";
2565 level.dummyspot4 = (709, 59, 79);
2566 self.dummyspot4 = "Blue House Window";
2567 level.dummyspot5 = (405, -607, -64);
2568 self.dummyspot5 = "A-Bomb Wallbang";
2569 addOption("teleport", self.tspot1, ::teleport, level.tspot1);
2570 addOption("teleport", self.tspot2, ::teleport, level.tspot2);
2571 addOption("teleport", self.tspot3, ::teleport, level.tspot3);
2572 addOption("teleport", self.tspot4, ::teleport, level.tspot4);
2573 addOption("teleportbotsE", self.dummyspot1, ::TeleportBotsE, level.dummyspot1);
2574 addOption("teleportbotsE", self.dummyspot2, ::TeleportBotsE, level.dummyspot2);
2575 addOption("teleportbotsE", self.dummyspot3, ::TeleportBotsE, level.dummyspot3);
2576 addOption("teleportbotsE", self.dummyspot4, ::TeleportBotsE, level.dummyspot4);
2577 addOption("teleportbotsF", self.dummyspot1, ::TeleportBotsF, level.dummyspot1);
2578 addOption("teleportbotsF", self.dummyspot2, ::TeleportBotsE, level.dummyspot2);
2579 addOption("teleportbotsF", self.dummyspot3, ::TeleportBotsE, level.dummyspot3);
2580 addOption("teleportbotsF", self.dummyspot4, ::TeleportBotsE, level.dummyspot4);
2581 }
2582 else
2583 {
2584 if (getdvar("mapname") == "mp_skate")
2585 {
2586 level.tspot1 = (1603, 284, 260);
2587 self.tspot1 = "Ramp Near Tube";
2588
2589 level.dummyspot1 = (1214, -1729, 137);
2590 self.dummyspot1 = "Near KMAK Statue";
2591 addOption("teleport", self.tspot1, ::teleport, level.tspot1);
2592 addOption("teleportbotsE", self.dummyspot1, ::TeleportBotsE, level.dummyspot1);
2593 addOption("teleportbotsF", self.dummyspot1, ::TeleportBotsF, level.dummyspot1);
2594 }
2595 }
2596 }
2597 }
2598 }
2599 }
2600 }
2601 }
2602 }
2603 }
2604 }
2605 }
2606 }
2607 }
2608 }
2609 }
2610 }
2611 }
2612 }
2613 }
2614 }
2615 }
2616 }
2617 }
2618 }
2619 }
2620 }
2621 }
2622 }
2623 }
2624 }
2625 self.foi = 1;
2626 }
2627
2628}
2629
2630teleport(spot)
2631{
2632 self SetOrigin(spot);
2633}
2634
2635TeleportBotsE(dummy)
2636{
2637 for(i = 0; i < level.players.size; i++)
2638 {
2639 if(level.players[i].pers["team"] != self.pers["team"])
2640 {
2641 if(level.players[i] is_bot())
2642 level.players[i] setOrigin(dummy);
2643 }
2644 }
2645 if (dummy == level.dummyspot1)
2646 self iPrintln("Bots Teleported to the " + self.dummyspot1 + "!");
2647 else if (dummy == level.dummyspot2)
2648 self iPrintln("Bots Teleported to the " + self.dummyspot2 + "!");
2649 else if (dummy == level.dummyspot3)
2650 self iPrintln("Bots Teleported to the " + self.dummyspot3 + "!");
2651 else if (dummy == level.dummyspot4)
2652 self iPrintln("Bots Teleported to the " + self.dummyspot4 + "!");
2653 else if (dummy == level.dummyspot5)
2654 self iPrintln("Bots Teleported to the " + self.dummyspot5 + "!");
2655 else if (dummy == level.dummyspot6)
2656 self iPrintln("Bots Teleported to the " + self.dummyspot6 + "!");
2657 else if (dummy == level.dummyspot7)
2658 self iPrintln("Bots Teleported to the " + self.dummyspot7 + "!");
2659 else if (dummy == level.dummyspot8)
2660 self iPrintln("Bots Teleported to the " + self.dummyspot8 + "!");
2661}
2662
2663TeleportBotsF(dummy)
2664{
2665 for(i = 0; i < level.players.size; i++)
2666 {
2667 if(level.players[i].pers["team"] == self.pers["team"])
2668 {
2669 if(level.players[i] is_bot())
2670 level.players[i] setOrigin(dummy);
2671 }
2672 }
2673 if (dummy == level.dummyspot1)
2674 self iPrintln("Bots Teleported to the " + self.dummyspot1 + "!");
2675 else if (dummy == level.dummyspot2)
2676 self iPrintln("Bots Teleported to the " + self.dummyspot2 + "!");
2677 else if (dummy == level.dummyspot3)
2678 self iPrintln("Bots Teleported to the " + self.dummyspot3 + "!");
2679 else if (dummy == level.dummyspot4)
2680 self iPrintln("Bots Teleported to the " + self.dummyspot4 + "!");
2681 else if (dummy == level.dummyspot5)
2682 self iPrintln("Bots Teleported to the " + self.dummyspot5 + "!");
2683 else if (dummy == level.dummyspot6)
2684 self iPrintln("Bots Teleported to the " + self.dummyspot6 + "!");
2685 else if (dummy == level.dummyspot7)
2686 self iPrintln("Bots Teleported to the " + self.dummyspot7 + "!");
2687 else if (dummy == level.dummyspot8)
2688 self iPrintln("Bots Teleported to the " + self.dummyspot8 + "!");
2689}
2690
2691LookBotsE()
2692{
2693 for(i = 0; i < level.players.size; i++)
2694 {
2695 if(level.players[i].pers["team"] != self.pers["team"])
2696 {
2697 if(level.players[i] is_bot())
2698 {
2699 self.dummylook = self.origin + (0,0,20);
2700 level.players[i] setplayerangles(VectorToAngles(((self.dummylook)) - (level.players[i] getTagOrigin("j_head"))));
2701 }
2702 }
2703 }
2704}
2705
2706LookBotsF()
2707{
2708 for(i = 0; i < level.players.size; i++)
2709 {
2710 if(level.players[i].pers["team"] == self.pers["team"])
2711 {
2712 if(level.players[i] is_bot())
2713 {
2714 self.dummylook = self.origin + (0,0,20);
2715 level.players[i] setplayerangles(VectorToAngles(((self.dummylook)) - (level.players[i] getTagOrigin("j_head"))));
2716 }
2717 }
2718 }
2719}
2720
2721doRestart()
2722{
2723 map_restart(false);
2724}
2725
2726// OVERFLOW FIX
2727
2728/*
2729 * Text Table Structure:
2730 *
2731 * id = id of text element
2732 * element = text element
2733 * stringId = id of string text element uses
2734 *
2735 **************************************************
2736 *
2737 * String Table Structure:
2738 *
2739 * id = id of string
2740 * string = string value
2741 *
2742 */
2743
2744initOverFlowFix()
2745{
2746 // tables
2747 self.stringTable = [];
2748 self.stringTableEntryCount = 0;
2749 self.textTable = [];
2750 self.textTableEntryCount = 0;
2751
2752 if(isDefined(level.anchorText) == false)
2753 {
2754 level.anchorText = createServerFontString("default",1.5);
2755 level.anchorText setText("anchor");
2756 level.anchorText.alpha = 0;
2757
2758 level.stringCount = 0;
2759 level thread monitorOverflow();
2760 }
2761}
2762
2763// strings cache serverside -- all string entries are shared by every player
2764monitorOverflow()
2765{
2766 level endon("disconnect");
2767
2768 for(;;)
2769 {
2770 if(level.stringCount >= 30)
2771 {
2772 level.anchorText clearAllTextAfterHudElem();
2773 level.stringCount = 0;
2774
2775 foreach(player in level.players)
2776 {
2777 player purgeTextTable();
2778 player purgeStringTable();
2779 if(player.isInMenu)
2780 player recreateText();
2781 }
2782 }
2783
2784 wait 0.05;
2785 }
2786}
2787
2788setSafeText(player, text)
2789{
2790 stringId = player getStringId(text);
2791
2792 // if the string doesn't exist add it and get its id
2793 if(stringId == -1)
2794 {
2795 player addStringTableEntry(text);
2796 stringId = player getStringId(text);
2797 }
2798
2799 // update the entry for this text element
2800 player editTextTableEntry(self.textTableIndex, stringId);
2801
2802 self setText(text);
2803}
2804
2805recreateText()
2806{
2807 drawMenu();
2808 updateText();
2809 foreach(entry in self.textTable)
2810 entry.element setSafeText(self, lookUpStringById(entry.stringId));
2811}
2812
2813addStringTableEntry(string)
2814{
2815 // create new entry
2816 entry = spawnStruct();
2817 entry.id = self.stringTableEntryCount;
2818 entry.string = string;
2819
2820 self.stringTable[self.stringTable.size] = entry; // add new entry
2821 self.stringTableEntryCount++;
2822 level.stringCount++;
2823}
2824
2825lookUpStringById(id)
2826{
2827 string = "";
2828
2829 foreach(entry in self.stringTable)
2830 {
2831 if(entry.id == id)
2832 {
2833 string = entry.string;
2834 break;
2835 }
2836 }
2837
2838 return string;
2839}
2840
2841getStringId(string)
2842{
2843 id = -1;
2844
2845 foreach(entry in self.stringTable)
2846 {
2847 if(entry.string == string)
2848 {
2849 id = entry.id;
2850 break;
2851 }
2852 }
2853
2854 return id;
2855}
2856
2857getStringTableEntry(id)
2858{
2859 stringTableEntry = -1;
2860
2861 foreach(entry in self.stringTable)
2862 {
2863 if(entry.id == id)
2864 {
2865 stringTableEntry = entry;
2866 break;
2867 }
2868 }
2869
2870 return stringTableEntry;
2871}
2872
2873purgeStringTable()
2874{
2875 stringTable = [];
2876
2877 // store all used strings
2878 foreach(entry in self.textTable)
2879 stringTable[stringTable.size] = getStringTableEntry(entry.stringId);
2880
2881 self.stringTable = stringTable; // empty array
2882}
2883
2884purgeTextTable()
2885{
2886 textTable = [];
2887
2888 foreach(entry in self.textTable)
2889 {
2890 if(entry.id != -1)
2891 textTable[textTable.size] = entry;
2892 }
2893
2894 self.textTable = textTable;
2895}
2896
2897addTextTableEntry(element, stringId)
2898{
2899 entry = spawnStruct();
2900 entry.id = self.textTableEntryCount;
2901 entry.element = element;
2902 entry.stringId = stringId;
2903
2904 element.textTableIndex = entry.id;
2905
2906 self.textTable[self.textTable.size] = entry;
2907 self.textTableEntryCount++;
2908}
2909
2910editTextTableEntry(id, stringId)
2911{
2912 foreach(entry in self.textTable)
2913 {
2914 if(entry.id == id)
2915 {
2916 entry.stringId = stringId;
2917 break;
2918 }
2919 }
2920}
2921
2922deleteTextTableEntry(id)
2923{
2924 foreach(entry in self.textTable)
2925 {
2926 if(entry.id == id)
2927 {
2928 entry.id = -1;
2929 entry.stringId = -1;
2930 }
2931 }
2932}
2933
2934clear(player)
2935{
2936 if(self.type == "text")
2937 player deleteTextTableEntry(self.textTableIndex);
2938
2939 self destroy();
2940}
2941
2942
2943// MENU LOGIC
2944
2945closeMenuOnDeath()
2946{
2947 self notify("stop");
2948 self endon("stop");
2949 self endon("death");
2950 self endon("exit_menu");
2951
2952 // close the menu on death if it is still open
2953 self waittill("death")
2954 exitMenu();
2955}
2956
2957openMenu(menu)
2958{
2959 self.isInMenu = true; // we are in the menu
2960 self.currentMenu = menu; // update our current menu
2961 currentMenu = getCurrentMenu();
2962 self.currentMenuPosition = currentMenu.position; // update our current position in the menu
2963
2964 self thread closeMenuOnDeath(); // close the menu if we die
2965 self freezeControls(true);
2966 self setClientUiVisibilityFlag("hud_visible", 0);
2967 drawMenu();
2968}
2969
2970closeMenu()
2971{
2972 currentMenu = getCurrentMenu();
2973
2974 // if the current menu is a submenu back out to the parent menu otherwise exit the entire menu
2975 if(isEmpty(currentMenu.parent))
2976 exitMenu();
2977 else
2978 openMenu(currentMenu.parent);
2979}
2980
2981exitMenu()
2982{
2983 self.isInMenu = false;
2984
2985 destroyMenu();
2986
2987 self freezeControls(false);
2988 self setClientUiVisibilityFlag("hud_visible", 1);
2989
2990 self notify("exit_menu");
2991}
2992
2993select()
2994{
2995 selected = getHighlightedOption();
2996
2997 // Check if there is a function for this option before calling it
2998 if(isDefined(selected.function))
2999 {
3000 // check for an argument and pass it
3001 if(isDefined(selected.argument))
3002 self thread [[selected.function]](selected.argument);
3003 else
3004 self thread [[selected.function]]();
3005 }
3006}
3007
3008exitMenu()
3009{
3010 self.isInMenu = false;
3011
3012 destroyMenu();
3013
3014 self freezeControls(false);
3015 self setClientUiVisibilityFlag("hud_visible", 1);
3016
3017 self notify("exit_menu");
3018}
3019
3020scrollUp()
3021{
3022 // move up one
3023 scroll(-1);
3024}
3025
3026scrollDown()
3027{
3028 // move down one
3029 scroll(1);
3030}
3031
3032scroll(number)
3033{
3034 // shorten variables for easy use
3035 currentMenu = getCurrentMenu();
3036 optionCount = currentMenu.options.size;
3037 textCount = self.menuOptions.size;
3038
3039 oldPosition = currentMenu.position; // saves our old position
3040 newPosition = currentMenu.position + number; // get our new position
3041
3042 // If our new position goes past the top move to the bottom
3043 if(newPosition < 0)
3044 newPosition = optionCount - 1; // arrays start at index 0 so we subtract one from the size to get the last index
3045 else if(newPosition > optionCount - 1) // if our new position goes past the bottom move to the top
3046 newPosition = 0; // 0 is always the first index in an array
3047
3048 // set our new position
3049 currentMenu.position = newPosition; // saves it to our menu object so we can resume from here
3050 self.currentMenuPosition = newPosition; // store for global useage (does not save it so we need both of these)
3051
3052 self.menuOptions[oldPosition] stopPulse(); // stops pulse effect for old position
3053 self.menuOptions[newPosition] thread pulse(self); // start pulse effect for new position
3054
3055 moveScrollbar();
3056}
3057
3058moveScrollbar()
3059{
3060 // moves to highlight the current option
3061 self.menuScrollbar.y = 50 + (self.currentMenuPosition * 35);
3062}
3063
3064addMenu(parent, name, title)
3065{
3066 menu = spawnStruct();
3067 menu.parent = parent;
3068 menu.name = name;
3069 menu.title = title;
3070 menu.options = [];
3071 menu.position = 0;
3072
3073 self.menus[name] = menu;
3074
3075 // if we specify a parent menu add an option to open this menu to it -- create an option for a sub menu
3076 if(isDefined(parent))
3077 addOption(parent, title, ::openMenu, name);
3078}
3079
3080addOption(parent, label, function, argument)
3081{
3082 menu = getMenu(parent);
3083 index = menu.options.size;
3084
3085 menu.options[index] = spawnStruct();
3086 menu.options[index].label = label;
3087 menu.options[index].function = function;
3088 menu.options[index].argument = argument;
3089}
3090
3091getCurrentMenu()
3092{
3093 return self.menus[self.currentMenu];
3094}
3095
3096getHighlightedOption()
3097{
3098 currentMenu = getCurrentMenu();
3099
3100 return currentMenu.options[currentMenu.position];
3101}
3102
3103getMenu(name)
3104{
3105 return self.menus[name];
3106}
3107
3108isEmpty(var)
3109{
3110 if(var == "" || !isDefined(var))
3111 return true;
3112 else
3113 return false;
3114}
3115
3116getName()
3117{
3118 name = getSubStr(self.name, 0, self.name.size);
3119 for(i = 0; i < name.size; i++)
3120 {
3121 if(name[i]=="]")
3122 break;
3123 }
3124 if(name.size != i)
3125 name = getSubStr(name, i + 1, name.size);
3126
3127 return name;
3128}
3129
3130runController()
3131{
3132 level endon("game_ended");
3133
3134 for(;;)
3135 {
3136 if(self.isInMenu)
3137 {
3138 if(self jumpButtonPressed())
3139 {
3140 select();
3141 wait 0.25;
3142 }
3143
3144 if(self meleeButtonPressed())
3145 {
3146 closeMenu();
3147 wait 0.25;
3148 }
3149
3150
3151 if(self attackButtonPressed())
3152 {
3153 scrollDown();
3154 wait 0.25;
3155 }
3156
3157 if(self adsButtonPressed())
3158 {
3159 scrollUp();
3160 wait 0.25;
3161 }
3162 if(self stanceButtonPressed())
3163 exitMenu();
3164 }
3165 else
3166 {
3167 if(self adsbuttonpressed() && self actionSlotOneButtonPressed())
3168 {
3169 openMenu(self.currentMenu);
3170 initOverFlowFix();
3171 wait 0.25;
3172 }
3173 }
3174
3175 wait 0.05;
3176 }
3177}
3178
3179// MENU BASE
3180
3181drawMenu()
3182{
3183 // if our shaders have already been drawn update the scrollbar's position
3184 if(self.shadersDrawn)
3185 moveScrollbar();
3186 else
3187 drawShaders();
3188
3189 // if our text has already been drawn do not recreate it
3190 if(self.textDrawn)
3191 updateText();
3192 else
3193 drawText();
3194}
3195
3196drawShaders()
3197{
3198 self.menuBackground = createRectangle("CENTER", "CENTER", 0, 0, 250, 500, 1, "white");
3199 self.menuBackground setColor(0, 0, 0, 0.75); // rgba as floats
3200
3201 self.menuScrollbar = createRectangle("CENTER", "TOP", 0, 50 + (35 * self.currentMenuPosition), 250, 35, 2, "white");
3202 self.menuScrollbar setColor(0, 0, 0, 1); // rgba as floats
3203
3204 self.shadersDrawn = true;
3205}
3206
3207
3208/*
3209 * Draws the text elements but does not set their text
3210 */
3211drawText()
3212{
3213 self.menuTitle = createText("bigfixed", 1, "CENTER", "TOP", 0, 0, 3, "");
3214
3215 for(i=0; i < 11; i++)
3216 self.menuOptions[i] = createText("default", 1.5, "CENTER", "TOP", 0, 50 + (35 * i), 3, "");
3217
3218 self.textDrawn = true;
3219
3220 // set text for our text elements
3221 updateText();
3222}
3223
3224updateText()
3225{
3226 currentMenu = getCurrentMenu();
3227
3228 self.menuTitle setSafeText(self, currentMenu.title); // menu title
3229
3230 for(i=0; i < 11; i++) // menu options
3231 {
3232 optionString = "";
3233
3234 // If a menu option exists at this index use its label
3235 if(isDefined(currentMenu.options[i]))
3236 optionString = currentMenu.options[i].label;
3237
3238 self.menuOptions[i] setSafeText(self, optionString);
3239 self.menuOptions[i] stopPulse(); // stop pulse effect on old options
3240 }
3241
3242 self.menuOptions[currentMenu.position] thread pulse(); // begin pulse effect on our highlighted option
3243}
3244
3245destroyMenu()
3246{
3247 destroyShaders();
3248 destroyText();
3249}
3250
3251destroyShaders()
3252{
3253 self.menuBackground destroy();
3254 self.menuTitleDivider destroy();
3255 self.menuScrollbar destroy();
3256
3257 self.shadersDrawn = false;
3258}
3259
3260destroyText()
3261{
3262 self.menuTitle clear(self);
3263 foreach(option in self.menuOptions)
3264 option clear(self);
3265
3266 self.textDrawn = false;
3267}
3268
3269pulse(player)
3270{
3271 self notify("stop_pulse");
3272 self endon("stop_pulse");
3273 self endon("death");
3274 player endon("menu_exit");
3275
3276 self.pulsing = true;
3277 self scaleFont(1.6, 0.1);
3278
3279 while(true)
3280 {
3281 self fadeovertime( 0.3 );
3282 self.alpha = 0.2;
3283 wait 0.35;
3284 self fadeovertime( 0.3 );
3285 self.alpha = 1;
3286 wait 0.7;
3287 continue;
3288 }
3289}
3290
3291stopPulse()
3292{
3293 if(self.pulsing)
3294 {
3295 self notify("stop_pulse");
3296 self.alpha = 0.7;
3297 self scaleFont(1.5, 0.1);
3298 self.pulsing = false;
3299 }
3300}
3301
3302scaleFont(value, time)
3303{
3304 self changeFontScaleOverTime(time);
3305 self.fontScale = value;
3306}
3307
3308createText(font, fontscale, align, relative, x, y, sort, text)
3309{
3310 textElem = CreateFontString( font, fontscale );
3311 textElem setPoint( align, relative, x, y );
3312 textElem.sort = sort;
3313 textElem.hideWhenInMenu = true;
3314 textElem.type = "text";
3315
3316 addTextTableEntry(textElem, getStringId(text));
3317 textElem setSafeText(self, text);
3318
3319 return textElem;
3320}
3321
3322createRectangle(align, relative, x, y, width, height, sort, shader)
3323{
3324 shaderElem = newClientHudElem(self);
3325 shaderElem.elemType = "bar";
3326 shaderElem.children = [];
3327 shaderElem.sort = sort;
3328 shaderElem setParent(level.uiParent);
3329 shaderElem setShader(shader, width , height);
3330 shaderElem.hideWhenInMenu = true;
3331 shaderElem setPoint(align, relative, x, y);
3332 shaderElem.type = "shader";
3333
3334 return shaderElem;
3335}
3336
3337setColor(r, g, b, a)
3338{
3339 self.color = (r, g, b);
3340 self.alpha = a;
3341}
3342
3343setGlow(r, g, b, a)
3344{
3345 self.glowColor = (r, g, b);
3346 self.glowAlpha = a;
3347}
3348
3349// UPDATE 2
3350
3351Class()
3352{
3353 self endon("death");
3354 for(;;)
3355 {
3356 self waittill("changed_class");
3357 self maps/mp/gametypes/_class::giveloadout( self.team, self.class );
3358 self iPrintlnBold(" ");
3359 wait 0.01;
3360 }
3361}
3362
3363Refresh()
3364{
3365 self endon("death");
3366 for(;;)
3367 {
3368 self waittill("changed_class");
3369 self notify("EndFirsts");
3370 self thread FirstNades();
3371 wait 0.01;
3372 }
3373}
3374
3375FirstNades()
3376{
3377 self endon ("disconnect");
3378 self endon("death");
3379 self endon("EndFirsts");
3380 self.gunslist = [];
3381 self.gunslist = self getWeaponsList();
3382 foreach(w in self.gunslist)
3383 {
3384 if( isSubStr(w, "concussion") || isSubStr(w, "flash") || isSubStr(w, "willy") || isSubStr(w, "emp") || isSubStr(w, "trophy") || isSubStr(w, "hack") || isSubStr(w, "sensor") || isSubStr(w, "insertion") || isSubStr(w, "proximity"))
3385 {
3386 self.TacS = self getWeaponAmmoStock( w );
3387 self.Tac = w;
3388 }
3389 if(isSubStr(w, "frag") || isSubStr(w, "sticky") || isSubStr(w, "betty") || isSubStr(w, "claymore") || isSubStr(w, "satchel") || isSubStr(w,"hatchet"))
3390 {
3391 self.LethalS = self getWeaponAmmoStock( w );
3392 self.Lethal = w;
3393 }
3394 self thread determinateTactician();
3395 }
3396}
3397
3398determinateTactician()
3399{
3400 self.Tactician = 0;
3401 self endon ("disconnect");
3402 self endon("death");
3403 self endon("EndFirsts");
3404 self.gunslist = [];
3405 self.gunslist = self getWeaponsList();
3406 foreach(w in self.gunslist)
3407 {
3408 if(w != self.Tac)
3409 {
3410 if( isSubStr(w, "concussion") || isSubStr(w, "flash") || isSubStr(w, "willy") || isSubStr(w, "emp") || isSubStr(w, "trophy") || isSubStr(w, "hack") || isSubStr(w, "sensor") || isSubStr(w, "insertion") || isSubStr(w, "proximity"))
3411 {
3412 self.TacS2 = self getWeaponAmmoStock( w );
3413 self.Tac2 = w;
3414 self.Tactician = 1;
3415 }
3416 }
3417 }
3418}
3419
3420refillNades()
3421{
3422 self setweaponammostock( self.Tac, self.TacS );
3423 if(self.Tactician == 0)
3424 self setweaponammostock( self.Lethal, self.LethalS );
3425 else
3426 self setweaponammostock( self.Tac2, self.TacS2 );
3427}
3428
3429unRefillNades()
3430{
3431 self setweaponammostock( self.Tac, 0 );
3432 if(self.Tactician == 0)
3433 self setweaponammostock( self.Lethal, 0 );
3434 else
3435 self setweaponammostock( self.Tac2, 0 );
3436}
3437
3438ShootEquipment()
3439{
3440 exitMenu();
3441 self iPrintlnBold("Aim at the Equipment you want to shoot and press [{+melee}] (Works better with C4)");
3442 self endon("EndEquipment");
3443 self endon("death");
3444 for(;;)
3445 {
3446 if(self adsbuttonpressed() && self meleebuttonpressed())
3447 {
3448 self iPrintLn("You are now shooting this way!");
3449 self notify ("NewRange");
3450 self thread ShootingEquipment( bullettrace(self gettagorigin("j_head"), self gettagorigin("j_head") + anglesToForward(self getplayerangles()) * 1000000, 0, self)["position"]);
3451 self notify("EndEquipment");
3452 }
3453 wait 0.1;
3454 }
3455}
3456
3457ShootingEquipment(blabla)
3458{
3459 self endon( "disconnect" );
3460 level endon( "game_ended" );
3461 self endon("NewRange");
3462 for(;;)
3463 {
3464 aimAt = undefined;
3465 self waittill ("weapon_fired");
3466 forward = self getTagOrigin("j_hip_le");
3467 end = vectorScale(anglestoforward(self getPlayerAngles()), 1000000);
3468 ExpLocation = BulletTrace( forward, end, false, self )["position"];
3469 if(distance( blabla, ExpLocation ) < 500)
3470 {
3471 if (self.arma == "Off")
3472 {
3473 weaponclass = getweaponclass(self getCurrentWeapon());
3474 if (weaponclass == "weapon_sniper")
3475 {
3476 MagicBullet("judge_mp+silencer", blabla + (0,0,10) , blabla, self);
3477 }
3478 }
3479 else
3480 {
3481 if (self.ebweap == self getCurrentWeapon())
3482 {
3483 MagicBullet("judge_mp+silencer", blabla + (0,0,10) , blabla, self);
3484 }
3485 }
3486 }
3487 wait 0.05;
3488 }
3489 wait 0.05;
3490}
3491
3492ShootRiot()
3493{
3494 exitMenu();
3495 self iPrintlnBold("Aim at the corner of the riot shield and press [{+melee}]");
3496 self endon("EndEquipment");
3497 self endon("death");
3498 for(;;)
3499 {
3500 if(self adsbuttonpressed() && self meleebuttonpressed())
3501 {
3502 self iPrintLn("You are now shooting this way!");
3503 self notify ("NewRange");
3504 self thread ShootingRiot( bullettrace(self gettagorigin("j_head"), self gettagorigin("j_head") + anglesToForward(self getplayerangles()) * 1000000, 0, self)["position"]);
3505 self notify("EndEquipment");
3506 }
3507 wait 0.1;
3508 }
3509}
3510
3511ShootingRiot(blabla)
3512{
3513 self endon( "disconnect" );
3514 level endon( "game_ended" );
3515 self endon( "NewRange" );
3516 for(;;)
3517 {
3518 aimAt = undefined;
3519 self waittill ("weapon_fired");
3520 forward = self getTagOrigin("j_hip_le");
3521 end = vectorScale(anglestoforward(self getPlayerAngles()), 1000000);
3522 ExpLocation = BulletTrace( forward, end, false, self )["position"];
3523 foreach(player in level.players)
3524 {
3525 if((player == self) || (!isAlive(player)) || (level.teamBased && self.pers["team"] == player.pers["team"]))
3526 continue;
3527 if(isDefined(aimAt))
3528 {
3529 if(closer(ExpLocation, player getTagOrigin("pelvis"), aimAt getTagOrigin("pelvis")))
3530 aimAt = player;
3531 }
3532 else aimAt = player;
3533 }
3534 if(!self adsbuttonpressed())
3535 {
3536 if(distance( blabla, ExpLocation ) < 500)
3537 {
3538 if (self.arma == "Off")
3539 {
3540 weaponclass = getweaponclass(self getCurrentWeapon());
3541 if (weaponclass == "weapon_sniper")
3542 {
3543 x = randomInt(10);
3544 if(x < 2)
3545 {
3546 MagicBullet(self GetCurrentWeapon(), self getTagOrigin("j_shoulder_ri") , blabla, self);
3547 wait 0.02;
3548 MagicBullet(self GetCurrentWeapon(), blabla , aimAt getTagOrigin("j_head"), self);
3549 if(isAlive(aimAt))
3550 {
3551 aimAt thread [[level.callbackPlayerDamage]]( self, self, 21952324, 8, "MOD_HEAD_SHOT", self getCurrentWeapon(), (0,0,0), (0,0,0), "j_head", 0, 0 );
3552 playFx(level._effect["blood"], aimAt getTagOrigin("j_head"));
3553 }
3554 }
3555 else
3556 {
3557 MagicBullet(self GetCurrentWeapon(), self getTagOrigin("j_shoulder_ri") , blabla, self);
3558 wait 0.02;
3559 MagicBullet(self GetCurrentWeapon(), blabla , aimAt getTagOrigin("j_shoulder_le"), self);
3560 if(isAlive(aimAt))
3561 {
3562 aimAt thread [[level.callbackPlayerDamage]]( self, self, 21952324, 8, "MOD_RIFLE_BULLET", self getCurrentWeapon(), (0,0,0), (0,0,0), "j_shoulder_le", 0, 0 );
3563 playFx(level._effect["blood"], aimAt getTagOrigin("j_shoulder_le"));
3564 }
3565 }
3566 }
3567 }
3568 else if(self.arma == "On")
3569 {
3570 if (self.ebweap == self getCurrentWeapon())
3571 {
3572 x = randomInt(10);
3573 if(x < 2)
3574 {
3575 MagicBullet(self GetCurrentWeapon(), self getTagOrigin("j_shoulder_ri") , blabla, self);
3576 wait 0.02;
3577 MagicBullet(self GetCurrentWeapon(), blabla , aimAt getTagOrigin("j_head"), self);
3578 if(isAlive(aimAt))
3579 {
3580 aimAt thread [[level.callbackPlayerDamage]]( self, self, 21952324, 8, "MOD_HEAD_SHOT", self getCurrentWeapon(), (0,0,0), (0,0,0), "j_head", 0, 0 );
3581 playFx(level._effect["blood"], aimAt getTagOrigin("j_head"));
3582 }
3583 }
3584 else
3585 {
3586 MagicBullet(self GetCurrentWeapon(), self getTagOrigin("j_shoulder_ri") , blabla, self);
3587 wait 0.02;
3588 MagicBullet(self GetCurrentWeapon(), blabla , aimAt getTagOrigin("j_shoulder_le"), self);
3589 if(isAlive(aimAt))
3590 {
3591 aimAt thread [[level.callbackPlayerDamage]]( self, self, 21952324, 8, "MOD_RIFLE_BULLET", self getCurrentWeapon(), (0,0,0), (0,0,0), "j_shoulder_le", 0, 0 );
3592 playFx(level._effect["blood"], aimAt getTagOrigin("j_shoulder_le"));
3593 }
3594 }
3595 }
3596 }
3597 }
3598 }
3599 wait 0.05;
3600 }
3601}
3602
3603daNac1()
3604{
3605 self endon("disconnect");
3606 self endon("StopNAC");
3607 for(;;)
3608 {
3609 if(self GetStance() != "prone" && self actionSlotThreeButtonPressed()) //left dpad
3610 {
3611 if(self.count < 3)
3612 {
3613 saveWep1();
3614 }
3615 else if (self.count == 3)
3616 {
3617 if(self.wep1!=self getCurrentWeapon() && self.wep2!=self getCurrentWeapon())
3618 {
3619 self.wep3 = self getCurrentWeapon();
3620 self.count++;
3621 self iPrintlnBold("Killstreak Weapon: " + self.wep3);
3622 }
3623 }
3624 else
3625 {
3626 doNac1();
3627 }
3628 }
3629 wait 0.01;
3630 }
3631}
3632
3633saveWep1()
3634{
3635 if(self.count == 1)
3636 {
3637 self.wep1 = self getCurrentWeapon();
3638 self.count++;
3639 self iPrintlnBold("#1: "+self.wep1);
3640 }
3641 else if(self.count == 2)
3642 {
3643 if(self.wep1!=self getCurrentWeapon())
3644 {
3645 self.wep2 = self getCurrentWeapon();
3646 self.count++;
3647 self iPrintlnBold("#2: " + self.wep2);
3648 wait 1.5;
3649 self iprintlnBold("Now save Killstreak weapon");
3650 }
3651 }
3652}
3653
3654doNac1()
3655{
3656 if(self.wep1 == self getCurrentWeapon())
3657 {
3658
3659 ammoW1 = self getWeaponAmmoStock( self.wep1 );
3660 ammoCW1 = self getWeaponAmmoClip( self.wep1 );
3661 self takeWeapon(self.wep1);
3662 self switchToWeapon(self.wep3);
3663 wait 0.2;
3664 self switchToWeapon(self.wep2);
3665 while(!(self getCurrentWeapon() == self.wep2))
3666 wait .01;
3667 self giveWeapon(self.wep1,0,true(self.camo1,0,0,0,0));
3668 self setweaponammostock( self.wep1, ammoW1 );
3669 self setweaponammoclip( self.wep1, ammoCW1 );
3670 }
3671 else if(self.wep2 == self getCurrentWeapon())
3672 {
3673 ammoW2 = self getWeaponAmmoStock( self.wep2 );
3674 ammoCW2 = self getWeaponAmmoClip( self.wep2 );
3675 self takeWeapon(self.wep2);
3676 self switchToWeapon(self.wep3);
3677 wait 0.2;
3678 self switchToWeapon(self.wep1);
3679 while(!(self getCurrentWeapon() == self.wep1))
3680 wait .01;
3681 self giveWeapon(self.wep2,0,true(self.camo2,0,0,0,0));
3682 self setweaponammostock( self.wep2, ammoW2 );
3683 self setweaponammoclip( self.wep2, ammoCW2 );
3684 }
3685 else
3686 {
3687 self.count=1;
3688 self iPrintlnBold("Failed, saved wrong weapons.");
3689 }
3690}
3691
3692KSOrNah()
3693{
3694 if(self.ks == "0")
3695 {
3696 self notify ("StopNAC");
3697 self thread daNac1();
3698 self iPrintln("Killstreak NAC bind is: ^2On");
3699 self.ks = "1";
3700 }
3701 else
3702 if(self.ks == "1")
3703 {
3704 self notify ("StopNAC");
3705 self iPrintln("Killstreak NAC bind is: ^1Off");
3706 self.ks = "0";
3707 self.count = 1;
3708 }
3709}
3710
3711AutoTele(player)
3712{
3713 if(player != self)
3714 {
3715 player notify("EndAutoTele");
3716 spot = bullettrace(self gettagorigin("j_head"), self gettagorigin("j_head") + anglesToForward(self getplayerangles()) * 1000000, 0, self)["position"];
3717 if(distance(spot,level.dummyspot1) < 100)
3718 self iPrintln(player getName() + " will be teleported to " + self.dummyspot1 + " every time he dies");
3719 else if(distance(spot,level.dummyspot2) < 100)
3720 self iPrintln(player getName() + " will be teleported to " + self.dummyspot2 + " every time he dies");
3721 else if(distance(spot,level.dummyspot3) < 100)
3722 self iPrintln(player getName() + " will be teleported to " + self.dummyspot3 + " every time he dies");
3723 else if(distance(spot,level.dummyspot4) < 100)
3724 self iPrintln(player getName() + " will be teleported to " + self.dummyspot4 + " every time he dies");
3725 else if(distance(spot,level.dummyspot5) < 100)
3726 self iPrintln(player getName() + " will be teleported to " + self.dummyspot5 + " every time he dies");
3727 else if(distance(spot,level.dummyspot6) < 100)
3728 self iPrintln(player getName() + " will be teleported to " + self.dummyspot6 + " every time he dies");
3729 else if(distance(spot,level.dummyspot7) < 100)
3730 self iPrintln(player getName() + " will be teleported to " + self.dummyspot7 + " every time he dies");
3731 else if(distance(spot,level.dummyspot8) < 100)
3732 self iPrintln(player getName() + " will be teleported to " + self.dummyspot8 + " every time he dies");
3733 else
3734 self iPrintln(player getName() + " will be teleported here every time he dies");
3735
3736 player setorigin(spot);
3737 player thread Teleportation(spot);
3738 }
3739}
3740
3741Teleportation(spot)
3742{
3743 self endon("EndAutoTele");
3744 for(;;)
3745 {
3746 self waittill("spawned_player");
3747 self setOrigin(spot);
3748 wait 0.01;
3749 }
3750}
3751
3752RandomizeConnectedPS3()
3753{
3754 self endon("EndRandomize");
3755 level endon("game_ended");
3756 name = [];
3757 name[0] = "Go_OnWisty";
3758 name[1] = "SC_xDNGR";
3759 name[2] = "CrxstyM6";
3760 name[3] = "ImSHH-";
3761 name[4] = "SC_Dangerrr";
3762 name[5] = "xSiikzyhM6";
3763 name[6] = "FalleenZ";
3764 name[7] = "Arez_CupM6";
3765 name[8] = "Sprxshy";
3766 name[9] = "Quest_Zerb";
3767 name[10] = "ISHCK";
3768 name[11] = "Symb_FWT";
3769 name[12] = "Dani-Lennon";
3770 name[13] = "FaZE_Rz_gn2266";
3771 name[14] = "RadiationM";
3772 name[15] = "Mightiness";
3773 name[16] = "brutao2011";
3774 name[17] = "SC_B3QZ";
3775 name[18] = "GabrielCheezy";
3776 name[19] = "xVazinnM6";
3777 name[20] = "Niizyyh";
3778 name[21] = "Arez_Cup";
3779 name[22] = "oYunii";
3780 name[23] = "SC_Gajo";
3781 name[24] = "Fvllen";
3782 name[25] = "Wdzyh";
3783 name[26] = "Yianqe";
3784 name[27] = "Stronghold_BRA";
3785 name[28] = "dcbordados";
3786 name[29] = "JUNINHO239";
3787 name[30] = "Ronnie_Carrassai";
3788 name[31] = "flaviohb_23";
3789 name[32] = "guilhermebranda";
3790 name[33] = "perdone007";
3791 name[34] = "danielpc27";
3792 name[35] = "Pedroo_55";
3793 name[36] = "head4ibiraci";
3794 name[37] = "Flashnn-G";
3795 name[38] = "leonardofoda007";
3796 name[39] = "GarciaGerytchLH";
3797 name[40] = "Blind_Pedroo";
3798 name[41] = "gui900zik";
3799 name[42] = "davimcz2014";
3800 name[43] = "JoseHamaya";
3801 name[43] = "Higao97Br";
3802 name[44] = "Birinbinha";
3803 name[45] = "uYanBR";
3804 name[46] = "ganem007";
3805 name[47] = "killlerInstinct";
3806 name[48] = "mamiduka1014";
3807 name[49] = "eA_Onix";
3808 name[50] = "Ga_Eugenio";
3809 wait 35;
3810 for(;;)
3811 {
3812 rand = randomIntRange( 0 , 50 );
3813 self.nome = name[rand];
3814 self thread PrintConnected(self.nome);
3815 wait 35;
3816 }
3817}
3818
3819RandomizeConnectedXBOX()
3820{
3821 self endon("EndRandomize");
3822 level endon("game_ended");
3823 name = [];
3824 name[0] = "Frape VII";
3825 name[1] = "PU8LIC 3N3MY";
3826 name[2] = "Rize Sky";
3827 name[3] = "SoaR Wulf";
3828 name[4] = "The Irish Brawl";
3829 name[5] = "Zamorie";
3830 name[6] = "Balanced Galaxy";
3831 name[7] = "Buccky";
3832 name[8] = "Elmnt DRD";
3833 name[9] = "GFXLab";
3834 name[10] = "Kat Derp";
3835 name[11] = "KnivesCanBeFun";
3836 name[12] = "l2th";
3837 name[13] = "maisamilla";
3838 name[14] = "Shad3sOfEcstasy";
3839 name[15] = "SilentDroidd";
3840 name[16] = "The Miggie";
3841 name[17] = "Vampire Queen19";
3842 name[18] = "XxiNSaNe6aMeRxX";
3843 name[19] = "Acyle Drix";
3844 name[20] = "Acyle Shockz";
3845 name[21] = "Acyle Vertz";
3846 name[22] = "AngelCronick";
3847 name[23] = "Asian Homework";
3848 name[24] = "Astro Drebzi";
3849 name[25] = "Astro Icee";
3850 name[26] = "ATG x Evolve";
3851 name[27] = "Cliqzy";
3852 name[28] = "COLTS500";
3853 name[29] = "Dear Google";
3854 name[30] = "Ever Frostyy";
3855 name[31] = "Force Veloc";
3856 name[32] = "Fused Zeolite";
3857 name[33] = "HCO Swagger";
3858 name[34] = "ICE Cinema";
3859 name[35] = "ICE Kyoto";
3860 name[36] = "iG Details";
3861 name[37] = "JAYDAWG830";
3862 name[38] = "King IVIacaroni";
3863 name[39] = "Mist DC";
3864 name[40] = "Nyko Ace";
3865 name[41] = "ReLeK ReFlex";
3866 name[42] = "TMG Sik Scopez";
3867 name[43] = "Zany HD";
3868 name[43] = "ASHLEYxGRR";
3869 name[44] = "Cold Liividz";
3870 name[45] = "ExactBeastBoy";
3871 name[46] = "Forever29 Gant";
3872 name[47] = "ICE Frags";
3873 name[48] = "IDoctor Who";
3874 name[49] = "iH0oKaH";
3875 name[50] = "Kimy DaGreat";
3876 wait 35;
3877 for(;;)
3878 {
3879 rand = randomIntRange( 0 , 50 );
3880 self.nome = name[rand];
3881 self thread PrintConnected(self.nome);
3882 wait 35;
3883 }
3884}
3885
3886PrintConnected(player)
3887{
3888 y = randomIntRange(0,2);
3889 if(y < 1)
3890 self iPrintln(player + " Connected");
3891 else
3892 self iPrintln(player + " left the game");
3893}
3894
3895ToggleConnected()
3896{
3897 if(self.connected == 0)
3898 {
3899 self.connected = 1;
3900 self iPrintlnBold("Connect / Disconnect notifiers are: ^2On");
3901 self notify("EndRandomize");
3902 if(is_ps3())
3903 self thread RandomizeConnectedPS3();
3904 else
3905 self thread RandomizeConnectedXBOX();
3906 }
3907 else
3908 {
3909 self.connected = 0;
3910 self notify("EndRandomize");
3911 self iPrintlnBold("Connect / Disconnect notifiers are: ^1Off");
3912 }
3913}
3914
3915CanSwap()
3916{
3917 blabla = RandomIntRange(15,43);
3918 if(blabla != 45 && blabla != 29 && blabla != 18)
3919 camo = blabla;
3920 else
3921 camo = 0;
3922 self.gun = self randomGun();
3923 self giveWeapon( self.gun, 0, true ( camo, 0, 0, 0, 0 ));
3924 self dropItem(self.gun);
3925}
3926
3927botsWeapon()
3928{
3929 self.gun = self randomGun();
3930 blabla = RandomIntRange(15,43);
3931 if(blabla != 45 && blabla != 29 && blabla != 18)
3932 camo = blabla;
3933 else
3934 camo = 0;
3935 self.gun = self randomGun();
3936 self giveWeapon( self.gun, 0, true ( camo, 0, 0, 0, 0 ));
3937}
3938
3939randomGun()
3940{
3941 self.gun = "";
3942 while(self.gun == "")
3943 {
3944 id = random(level.tbl_weaponids);
3945 attachmentlist = id["attachment"];
3946 attachments = strtok( attachmentlist, " " );
3947 attachments[attachments.size] = "";
3948 attachment = random(attachments);
3949 if(isweaponprimary((id["reference"] + "_mp+") + attachment))
3950 self.gun = (id["reference"] + "_mp+") + attachment;
3951 wait 0.1;
3952 return self.gun;
3953 }
3954 wait 0.1;
3955}
3956
3957ToggleBinds()
3958{
3959 if(self.binds == 0)
3960 {
3961 self.binds = 1;
3962 self iPrintlnBold("Binds are: ^2On");
3963 self notify("EndBinds");
3964 self thread AzzaInit();
3965 }
3966 else
3967 {
3968 self.binds = 0;
3969 self notify("EndBinds");
3970 self iPrintlnBold("Binds are: ^1Off");
3971 }
3972}
3973
3974LookBotsFFA()
3975{
3976 foreach(player in level.players)
3977 {
3978 if(player is_Bot())
3979 {
3980 self.dummylook = self.origin + (0,0,20);
3981 player setplayerangles(VectorToAngles(((self.dummylook)) - (player getTagOrigin("j_head"))));
3982 }
3983 }
3984}
3985
3986freezeBotsFFA()
3987{
3988 foreach(player in level.players)
3989 {
3990 if(player is_Bot())
3991 {
3992 if(self.frozenF == "0")
3993 {
3994 player freezeControls(true);
3995 self iPrintln("Bots are now ^2Frozen");
3996 self.frozenF = "1";
3997 }
3998 else
3999 {
4000 player freezeControls(false);
4001 self iPrintln("Bots are now ^1Unfrozen");
4002 self.frozenF = "0";
4003 }
4004 }
4005 }
4006}
4007
4008TeleBotsFFA()
4009{
4010 foreach(player in level.players)
4011 {
4012 if(player is_Bot())
4013 {
4014 player setorigin(bullettrace(self gettagorigin("j_head"), self gettagorigin("j_head") + anglesToForward(self getplayerangles()) * 1000000, 0, self)["position"]);
4015 }
4016 }
4017}