jwm614

Jwm614 Functions

Jan 21st, 2015
608
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 90.81 KB | None | 0 0
  1. #include maps/mp/_utility;
  2. #include common_scripts/utility;
  3. #include maps/mp/gametypes/_hud_util;
  4. #include maps/mp/_utility;
  5.  
  6. /* Black Ops 2 - Menu Base ( Multiplayers And Zombie )
  7.    Build: 1.0.0
  8.    Made By ZeiiKeN & Fanatik
  9.    Thanks for use my base menu
  10.    Please contact me if you encounter an error when you use my base menu
  11.    Skype: PS3Matrache
  12.    Visit: www.Xbox-Gen.fr
  13. */  
  14.  
  15. init( )
  16. {
  17.     precacheVehicle("heli_guard_mp");//pet chopper
  18.     precacheModel("veh_t6_drone_overwatch_light");//pet chopper/skybase
  19.     PrecacheModel( "veh_t6_drone_pegasus_mp" );//stunt palne
  20.    
  21.    
  22.     PrecacheAll();
  23.     precacheshader("mp_hud_cluster_status");//for nuke
  24.     level.Entities = [];
  25.     level.amountOfEntities = 0;
  26.     level.clientid = 0;
  27.     level.activesky1 = 0;//for skybase
  28.     level.result = 0;//for overflow
  29.     level.activeFlags = 0;//for bunker
  30.     level.activePackOPunchCrates = 0;//for bunker
  31.     level.activeSpawnweaponCrates = 0;//for bunker
  32.     level.bunker = true;//for bunker
  33.     level.supplyDropModel = "t6_wpn_supply_drop_ally";
  34.     level.supplyDropModelhq = "t6_wpn_supply_drop_hq";
  35.     level.supplyDropModelAxis = "t6_wpn_supply_drop_axis";
  36.     level.supplyDropModelTrap = "t6_wpn_supply_drop_trap";
  37.     level.teleportFlagStartModel = "mp_flag_green";
  38.     level.teleportFlagEndModel = "mp_flag_red";
  39.     level.teleportFlagBothModel = "mp_flag_neutral";
  40.     level.clientid = 0;
  41.     level thread onplayerconnect();
  42.     level deathBarrier();
  43.     level thread entityMonitor();
  44. }
  45.  
  46.  
  47. PrecacheAll()
  48. {  
  49.    /* Precache Models */                                                        //for Bunker   //for bunker  
  50.    self.AllMyModels = strTok("prop_suitcase_bomb;veh_t6_drone_overwatch_light;mp_flag_green;mp_flag_red;mp_flag_neutral",";");
  51.    for(i=0;i<self.AllMyModels.size;i++)
  52.    {
  53.        PrecacheModel(self.AllMyModels[i]);
  54.    }  
  55.    /* Precache Items */
  56.    self.AllMyItems = strTok("minigun_wager_mp;m32_wager_mp",";");
  57.    for(F=0;F<self.AllMyItems.size;F++)
  58.    {
  59.         PrecacheItem(self.AllMyItems[F]);
  60.    }
  61. }
  62.  
  63. onplayerconnect( )
  64. {
  65.     for(;;)
  66.     {
  67.         level waittill( "connecting", player );
  68.         player thread onplayerspawned( );
  69.         player.clientid = level.clientid;
  70.         level.clientid++;
  71.         player.Verified = false;
  72.         player.VIP = false;
  73.         player.Admin = false;
  74.         player.CoHost = false;
  75.         player.MyAccess = "";
  76.     }
  77. }
  78. onplayerspawned( )
  79. {
  80.     self endon( "disconnect" );
  81.     level endon( "game_ended" );
  82.  
  83.     self thread overflowfix();
  84.  
  85.     for(;;)
  86.     {
  87.         self waittill( "spawned_player" );
  88.         if(self isHost())
  89.         {
  90.             self freezecontrols(false);
  91.             self.Verified = true;
  92.             self.VIP = true;
  93.             self.Admin = true;
  94.             self.CoHost = true;
  95.             self.MyAccess = "^1Host";
  96.             self thread BuildMenu();
  97.         }
  98.         else if ( self.CoHost == true)
  99.         {
  100.             self.Verified = true;
  101.             self.VIP = true;
  102.             self.Admin = true;
  103.             self.CoHost = true;
  104.             self.MyAccess = "^5Co-Host";
  105.             self freezecontrols(false);
  106.             self thread BuildMenu();
  107.         }
  108.         else if ( self.Admin == true)
  109.         {
  110.             self.Verified = true;
  111.             self.VIP = true;
  112.             self.Admin = true;
  113.             self.MyAccess = "^1Admin";
  114.             self freezecontrols(false);
  115.             self thread BuildMenu();
  116.         }
  117.         else if ( self.VIP == true)
  118.         {
  119.             self.Verified = true;
  120.             self.VIP = true;
  121.             self.MyAccess = "^3VIP";
  122.             self freezecontrols(false);
  123.             self thread BuildMenu();
  124.         }
  125.         else if ( self.Verified == true)
  126.         {
  127.             self.Verified = true;
  128.             self.MyAccess = "^1Verified";
  129.             self freezecontrols(false);
  130.             self thread BuildMenu();
  131.         }
  132.         else if ( self.Verified == false)
  133.         {
  134.             self.MyAccess = "";
  135.         }
  136.     }
  137. }
  138.  
  139. BuildMenu()
  140. {
  141.     self endon("disconnect");
  142.     self endon("death");
  143.     self.MenuOpen = false;
  144.     self.Menu = spawnstruct();
  145.     self InitialisingMenu();
  146.     self MenuStructure();
  147.     self thread MenuDeath();
  148.     while (1)
  149.     {
  150.         if(self meleeButtonPressed() && self adsButtonPressed() && self.MenuOpen == false)
  151.         {
  152.             self MenuOpening();
  153.             self LoadMenu("Main Menu");
  154.         }      
  155.         else if(self UseButtonPressed()  && self.MenuOpen == true)
  156.         {
  157.             if(isDefined(self.Menu.System["MenuPrevious"][self.Menu.System["MenuRoot"]]))
  158.             {
  159.                 self.Menu.System["MenuCurser"] = 0;
  160.                 self SubMenu(self.Menu.System["MenuPrevious"][self.Menu.System["MenuRoot"]]);
  161.                 wait 0.05;
  162.             }
  163.             else
  164.                 self MenuClosing();
  165.             wait 0.01;
  166.  
  167.         }
  168.         else if (self actionSlotoneButtonPressed() && self.MenuOpen == true)
  169.         {
  170.             self.Menu.System["MenuCurser"] -= 1;
  171.             if (self.Menu.System["MenuCurser"] < 0)
  172.             {
  173.                 self.Menu.System["MenuCurser"] = self.Menu.System["MenuTexte"][self.Menu.System["MenuRoot"]].size - 1;
  174.             }
  175.             self.Menu.Material["Scrollbar"] elemMoveY(.2, 60 + (self.Menu.System["MenuCurser"] * 15.6));
  176.             wait.02;
  177.         }
  178.         else if (self actionSlottwoButtonPressed() && self.MenuOpen == true)
  179.         {
  180.             self.Menu.System["MenuCurser"] += 1;
  181.             if (self.Menu.System["MenuCurser"] >= self.Menu.System["MenuTexte"][self.Menu.System["MenuRoot"]].size)
  182.             {
  183.                 self.Menu.System["MenuCurser"] = 0;
  184.             }
  185.             self.Menu.Material["Scrollbar"] elemMoveY(.2, 60 + (self.Menu.System["MenuCurser"] * 15.6));
  186.             wait.02;
  187.         }
  188.         else if(self jumpButtonPressed() && self.MenuOpen == true)
  189.         {
  190.                 //wait 0.2;
  191.                 if(self.Menu.System["MenuRoot"]=="Clients Menu") self.Menu.System["ClientIndex"]=self.Menu.System["MenuCurser"];
  192.                 self thread [[self.Menu.System["MenuFunction"][self.Menu.System["MenuRoot"]][self.Menu.System["MenuCurser"]]]](self.Menu.System["MenuInput"][self.Menu.System["MenuRoot"]][self.Menu.System["MenuCurser"]]);
  193.                 wait 0.3;
  194.         }
  195.         else if(self actionslotthreebuttonpressed() && self.MenuOpen == false) // Open.
  196.         {
  197.            
  198.            
  199.         }
  200.         wait 0.05;
  201.     }
  202. }  
  203.  
  204. MenuStructure()
  205. {
  206.     if (self.Verified == true)
  207.     {
  208.     self MainMenu("Main Menu", undefined);
  209.     self MenuOption("Main Menu", 0, "Jwm614 Functions", ::SubMenu, "Jwm614 Functions");
  210.     self MenuOption("Main Menu", 1, "Sub Menu 2", ::SubMenu, "Sub Menu 2");
  211.     self MenuOption("Main Menu", 2, "Sub Menu 3", ::SubMenu, "Sub Menu 3");
  212.     self MenuOption("Main Menu", 3, "Sub Menu 4", ::SubMenu, "Sub Menu 4");
  213.     }
  214.     if (self.VIP == true)
  215.     {
  216.     self MenuOption("Main Menu", 4, "Sub Menu 5 (VIP)", ::SubMenu, "Sub Menu 5 (VIP)");
  217.     }
  218.     if (self.Admin == true)
  219.     {
  220.     self MenuOption("Main Menu", 5, "Sub Menu 6 (Admin)", ::SubMenu, "Sub Menu 6 (Admin)");
  221.     }
  222.     if (self.CoHost == true)
  223.     {
  224.     self MenuOption("Main Menu", 6, "Sub Menu 7 (Host)", ::SubMenu, "Sub Menu 7 (Host)");
  225.     self MenuOption("Main Menu", 7, "Clients Menu", ::SubMenu, "Clients Menu");
  226.     self MenuOption("Main Menu", 8, "All Clients", ::SubMenu, "All Clients");
  227.     }
  228.    
  229.     self MainMenu("Jwm614 Functions", "Main Menu");
  230.     self MenuOption("Jwm614 Functions", 0, "Skybase", ::skybasetoggle);
  231.     self MenuOption("Jwm614 Functions", 1, "Nuke", ::initMW2Nuke);
  232.     self MenuOption("Jwm614 Functions", 2, "FireBalls", ::fireballstoggle);
  233.     self MenuOption("Jwm614 Functions", 3, "Jwm614 Bunker", ::bunker);
  234.     self MenuOption("Jwm614 Functions", 4, "Stunt Plane", ::StuntRuninit);
  235.     self MenuOption("Jwm614 Functions", 5, "Pet Chopper", ::petchopperinit);
  236.     self MenuOption("Jwm614 Functions", 6, "Suicide Lonestar", ::suicidelonestarinit);
  237.     self MenuOption("Jwm614 Functions", 7, "No Clip Here", ::UFOMode);
  238.    
  239.     self MainMenu("Sub Menu 2", "Main Menu");
  240.     self MenuOption("Sub Menu 2", 0, "Fonctions Here", ::Test);
  241.     self MenuOption("Sub Menu 2", 1, "Fonctions Here", ::Test);
  242.     self MenuOption("Sub Menu 2", 2, "Fonctions Here", ::Test);
  243.     self MenuOption("Sub Menu 2", 3, "Fonctions Here", ::Test);
  244.     self MenuOption("Sub Menu 2", 4, "Fonctions Here", ::Test);
  245.     self MenuOption("Sub Menu 2", 5, "Fonctions Here", ::Test);
  246.    
  247.     self MainMenu("Sub Menu 3", "Main Menu");
  248.     self MenuOption("Sub Menu 3", 0, "Fonctions Here", ::Test);
  249.     self MenuOption("Sub Menu 3", 1, "Fonctions Here", ::Test);
  250.     self MenuOption("Sub Menu 3", 2, "Fonctions Here", ::Test);
  251.     self MenuOption("Sub Menu 3", 3, "Fonctions Here", ::Test);
  252.     self MenuOption("Sub Menu 3", 4, "Fonctions Here", ::Test);
  253.     self MenuOption("Sub Menu 3", 5, "Fonctions Here", ::Test);
  254.    
  255.     self MainMenu("Sub Menu 4", "Main Menu");
  256.     self MenuOption("Sub Menu 4", 0, "Fonctions Here", ::Test);
  257.     self MenuOption("Sub Menu 4", 1, "Fonctions Here", ::Test);
  258.     self MenuOption("Sub Menu 4", 2, "Fonctions Here", ::Test);
  259.     self MenuOption("Sub Menu 4", 3, "Fonctions Here", ::Test);
  260.     self MenuOption("Sub Menu 4", 4, "Fonctions Here", ::Test);
  261.     self MenuOption("Sub Menu 4", 5, "Fonctions Here", ::Test);
  262.    
  263.     self MainMenu("Sub Menu 5 (VIP)", "Main Menu");
  264.     self MenuOption("Sub Menu 5 (VIP)", 0, "Fonctions Here", ::Test);
  265.     self MenuOption("Sub Menu 5 (VIP)", 1, "Fonctions Here", ::Test);
  266.     self MenuOption("Sub Menu 5 (VIP)", 2, "Fonctions Here", ::Test);
  267.     self MenuOption("Sub Menu 5 (VIP)", 3, "Fonctions Here", ::Test);
  268.     self MenuOption("Sub Menu 5 (VIP)", 4, "Fonctions Here", ::Test);
  269.     self MenuOption("Sub Menu 5 (VIP)", 5, "Fonctions Here", ::Test);
  270.    
  271.     self MainMenu("Sub Menu 6 (Admin)", "Main Menu");
  272.     self MenuOption("Sub Menu 6 (Admin)", 0, "Fonctions Here", ::Test);
  273.     self MenuOption("Sub Menu 6 (Admin)", 1, "Fonctions Here", ::Test);
  274.     self MenuOption("Sub Menu 6 (Admin)", 2, "Fonctions Here", ::Test);
  275.     self MenuOption("Sub Menu 6 (Admin)", 3, "Fonctions Here", ::Test);
  276.     self MenuOption("Sub Menu 6 (Admin)", 4, "Fonctions Here", ::Test);
  277.     self MenuOption("Sub Menu 6 (Admin)", 5, "Fonctions Here", ::Test);
  278.    
  279.     self MainMenu("Sub Menu 7 (Host)", "Main Menu");
  280.     self MenuOption("Sub Menu 7 (Host)", 0, "Fonctions Here", ::Test);
  281.     self MenuOption("Sub Menu 7 (Host)", 1, "Fonctions Here", ::Test);
  282.     self MenuOption("Sub Menu 7 (Host)", 2, "Fonctions Here", ::Test);
  283.     self MenuOption("Sub Menu 7 (Host)", 3, "Fonctions Here", ::Test);
  284.     self MenuOption("Sub Menu 7 (Host)", 4, "Fonctions Here", ::Test);
  285.     self MenuOption("Sub Menu 7 (Host)", 5, "Fonctions Here", ::Test);
  286.    
  287.     self MainMenu("Clients Menu", "Main Menu");
  288.     for (p = 0; p < level.players.size; p++) {
  289.         player = level.players[p];
  290.         self MenuOption("Clients Menu", p, "[" + player.MyAccess + "^7] " + player.name + "", ::SubMenu, "Client Function");
  291.     }
  292.     self thread MonitorPlayers();
  293.    
  294.     self MainMenu("Client Function", "Clients Menu");
  295.     self MenuOption("Client Function", 0, "Verify Player", ::Verify);
  296.     self MenuOption("Client Function", 1, "VIP Player", ::doVIP);
  297.     self MenuOption("Client Function", 2, "Admin Player", ::doAdmin);
  298.     self MenuOption("Client Function", 3, "Co-Host Player", ::doCoHost);
  299.     self MenuOption("Client Function", 4, "Unverified Player", ::doUnverif);
  300.     self MenuOption("Client Function", 5, "Fonctions Here", ::Test);
  301.    
  302.     self MainMenu("All Clients", "Main Menu");
  303.     self MenuOption("All Clients", 0, "Kill All Players", ::AllPlayersKilled);
  304.     self MenuOption("All Clients", 1, "Function Here", ::Test);
  305.     self MenuOption("All Clients", 2, "Function Here", ::Test);
  306.     self MenuOption("All Clients", 3, "Function Here", ::Test);
  307.     self MenuOption("All Clients", 4, "Function Here", ::Test);
  308. }
  309. MonitorPlayers()
  310. {
  311.     self endon("disconnect");
  312.     for(;;)
  313.     {
  314.         for(p = 0;p < level.players.size;p++)
  315.         {
  316.             player = level.players[p];
  317.             self.Menu.System["MenuTexte"]["Clients Menu"][p] = "[" + player.MyAccess + "^7] " + player.name;
  318.             self.Menu.System["MenuFunction"]["Clients Menu"][p] = ::SubMenu;
  319.             self.Menu.System["MenuInput"]["Clients Menu"][p] = "Client Function";
  320.             wait .5;
  321.         }
  322.         wait 1;
  323.     }
  324. }
  325. MainMenu(Menu, Return)
  326. {
  327.     self.Menu.System["GetMenu"] = Menu;
  328.     self.Menu.System["MenuCount"] = 0;
  329.     self.Menu.System["MenuPrevious"][Menu] = Return;
  330. }
  331. MenuOption(Menu, Index, Texte, Function, Input)
  332. {
  333.     self.Menu.System["MenuTexte"][Menu][Index] = Texte;
  334.     self.Menu.System["MenuFunction"][Menu][Index] = Function;
  335.     self.Menu.System["MenuInput"][Menu][Index] = Input;
  336. }
  337. SubMenu(input)
  338. {
  339.     self.Menu.System["MenuCurser"] = 0;
  340.     self.Menu.System["Texte"] fadeovertime(0.05);
  341.     self.Menu.System["Texte"].alpha = 0;
  342.     self.Menu.System["Texte"] destroy();
  343.     self.Menu.System["Title"] destroy();
  344.     self thread LoadMenu(input);
  345.     if(self.Menu.System["MenuRoot"]=="Client Function")
  346.     {
  347.     self.Menu.System["Title"] destroy();
  348.     player = level.players[self.Menu.System["ClientIndex"]];
  349.     self.Menu.System["Title"] = self createFontString("default", 2.0);
  350.     self.Menu.System["Title"] setPoint("LEFT", "TOP", 125, 30);
  351.     self.Menu.System["Title"] setText("[" + player.MyAccess + "^7] " + player.name);
  352.     level.result += 1;//adds 1 string
  353.     self notify("textset");//tells overfllow to run check
  354.     self.Menu.System["Title"].sort = 3;
  355.     self.Menu.System["Title"].alpha = 1;
  356.     }
  357. }
  358. LoadMenu(menu)
  359. {
  360.     self.Menu.System["MenuCurser"] = 0;
  361.     self.Menu.System["MenuRoot"] = menu;
  362.     self.Menu.System["Title"] = self createFontString("default", 2.0);
  363.     self.Menu.System["Title"] setPoint("LEFT", "TOP", 125, 30);
  364.     self.Menu.System["Title"] setText(menu);
  365.     level.result += 1;//adds 1 string  
  366.     self.Menu.System["Title"].sort = 3;
  367.     self.Menu.System["Title"].alpha = 1;
  368.     string = "";
  369.     for(i=0;i<self.Menu.System["MenuTexte"][Menu].size;i++) string += self.Menu.System["MenuTexte"][Menu][i] + "\n";
  370.     self.Menu.System["Texte"] = self createFontString("default", 1.3);
  371.     self.Menu.System["Texte"] setPoint("LEFT", "TOP", 125, 60);
  372.     self.Menu.System["Texte"] setText(string);
  373.     level.result += 1;//adds 1 string
  374.     self notify("textset");//tells overfllow to run check
  375.     self.Menu.System["Texte"].sort = 3;
  376.     self.Menu.System["Texte"].alpha = 1;
  377.     self.Menu.Material["Scrollbar"] elemMoveY(.2, 60 + (self.Menu.System["MenuCurser"] * 15.6));
  378. }
  379. SetMaterial(align, relative, x, y, width, height, colour, shader, sort, alpha)
  380. {
  381.     hud = newClientHudElem(self);
  382.     hud.elemtype = "icon";
  383.     hud.color = colour;
  384.     hud.alpha = alpha;
  385.     hud.sort = sort;
  386.     hud.children = [];
  387.     hud setParent(level.uiParent);
  388.     hud setShader(shader, width, height);
  389.     hud setPoint(align, relative, x, y);
  390.     return hud;
  391. }
  392. MenuDeath()
  393. {
  394.     self waittill("death");
  395.     self.Menu.Material["Background"] destroy();
  396.     self.Menu.Material["Scrollbar"] destroy();
  397.     self.Menu.Material["BorderMiddle"] destroy();
  398.     self.Menu.Material["BorderLeft"] destroy();
  399.     self.Menu.Material["BorderRight"] destroy();
  400.     self MenuClosing();
  401. }
  402. InitialisingMenu()
  403. {
  404.     self.Menu.Material["Background"] = self SetMaterial("LEFT", "TOP", 120, 0, 240, 1000, (1,1,1), "black", 0, 0);
  405.     self.Menu.Material["Scrollbar"] = self SetMaterial("LEFT", "TOP", 120, 60, 240, 15, (0,1,0), "white", 1, 0);
  406.     self.Menu.Material["BorderMiddle"] = self SetMaterial("LEFT", "TOP", 120, 50, 240, 1, (0,1,0), "white", 1, 0);
  407.     self.Menu.Material["BorderLeft"] = self SetMaterial("LEFT", "TOP", 119, 0, 1, 1000, (0,1,0), "white", 1, 0);
  408.     self.Menu.Material["BorderRight"] = self SetMaterial("LEFT", "TOP", 360, 0, 1, 1000, (0,1,0), "white", 1, 0);
  409. }
  410.  
  411. MenuOpening()
  412. {
  413.     //self freezecontrols(true);
  414.     self setclientuivisibilityflag( "hud_visible", 0 );
  415.     //self enableInvulnerability();
  416.     self.MenuOpen = true;
  417.     self.Menu.Material["Background"] elemFade(.5, 0.76);
  418.     self.Menu.Material["Scrollbar"] elemFade(.5, 0.6);
  419.     self.Menu.Material["BorderMiddle"] elemFade(.5, 0.6);
  420.     self.Menu.Material["BorderLeft"] elemFade(.5, 0.6);
  421.     self.Menu.Material["BorderRight"] elemFade(.5, 0.6);
  422. }
  423.  
  424. MenuClosing()
  425. {    
  426.     self setclientuivisibilityflag( "hud_visible", 1 );
  427.     self.Menu.Material["Background"] elemFade(.5, 0);
  428.     self.Menu.Material["Scrollbar"] elemFade(.5, 0);
  429.     self.Menu.Material["BorderMiddle"] elemFade(.5, 0);
  430.     self.Menu.Material["BorderLeft"] elemFade(.5, 0);
  431.     self.Menu.Material["BorderRight"] elemFade(.5, 0);
  432.     //self freezecontrols(false);
  433.     //self disableInvulnerability();
  434.     self.Menu.System["Title"] destroy();
  435.     self.Menu.System["Texte"] destroy();
  436.     wait 0.05;
  437.     self iPrintln("^5Current String Count:^1" + level.result);
  438.     self.MenuOpen = false;
  439. }  
  440.  
  441. elemMoveY(time, input)
  442. {
  443.     self moveOverTime(time);
  444.     self.y = input;
  445. }
  446.  
  447. elemMoveX(time, input)
  448. {
  449.     self moveOverTime(time);
  450.     self.x = input;
  451. }
  452.  
  453. elemFade(time, alpha)
  454. {
  455.     self fadeOverTime(time);
  456.     self.alpha = alpha;
  457. }
  458.  
  459. doUnverif()
  460. {
  461.     player = level.players[self.Menu.System["ClientIndex"]];
  462.     if(player isHost())
  463.     {
  464.         self iPrintln("You can't Un-Verify the Host!");
  465.     }
  466.     else
  467.     {
  468.         player.Verified = false;
  469.         player.VIP = false;
  470.         player.Admin = false;
  471.         player.CoHost = false;
  472.         player suicide();
  473.         self iPrintln( player.name + " is ^1Unverfied" );
  474.     }
  475. }
  476.  
  477. UnverifMe()
  478. {
  479.     self.Verified = false;
  480.     self.VIP = false;
  481.     self.Admin = false;
  482.     self.CoHost = false;
  483.     self suicide();
  484. }
  485.  
  486. Verify()
  487. {
  488.     player = level.players[self.Menu.System["ClientIndex"]];
  489.     if(player isHost())
  490.     {
  491.         self iPrintln("You can't Verify the Host!");
  492.     }
  493.     else
  494.     {
  495.         player UnverifMe();
  496.         player.Verified = true;
  497.         player.VIP = false;
  498.         player.Admin = false;
  499.         player.CoHost = false;
  500.         self iPrintln( player.name + " is ^1Verified" );
  501.     }
  502. }
  503. doVIP()
  504. {
  505.     player = level.players[self.Menu.System["ClientIndex"]];
  506.     if(player isHost())
  507.     {
  508.         self iPrintln("You can't Verify the Host!");
  509.     }
  510.     else
  511.     {
  512.         player UnverifMe();
  513.         player.Verified = true;
  514.         player.VIP = true;
  515.         player.Admin = false;
  516.         player.CoHost = false;
  517.         self iPrintln( player.name + " is ^3VIP" );
  518.     }
  519. }
  520. doAdmin()
  521. {
  522.     player = level.players[self.Menu.System["ClientIndex"]];
  523.     if(player isHost())
  524.     {
  525.         self iPrintln("You can't Verify the Host!");
  526.     }
  527.     else
  528.     {
  529.         player UnverifMe();
  530.         player.Verified = true;
  531.         player.VIP = true;
  532.         player.Admin = true;
  533.         player.CoHost = false;
  534.         self iPrintln( player.name + " is ^1Admin" );
  535.     }
  536. }
  537. doCoHost()
  538. {
  539.     player = level.players[self.Menu.System["ClientIndex"]];
  540.     if(player isHost())
  541.     {
  542.         self iPrintln("You can't Verify the Host!");
  543.     }
  544.     else
  545.     {
  546.         if (player.CoHost == false)
  547.         {
  548.             player UnverifMe();
  549.             player.Verified = true;
  550.             player.VIP = true;
  551.             player.Admin = true;
  552.             player.CoHost = true;
  553.             self iPrintln( player.name + " is ^5Co-Host" );
  554.         }
  555.     }
  556. }
  557.  
  558. AllPlayersKilled()
  559. {
  560.     foreach(player in level.players)
  561.     {
  562.         if(!player isHost())
  563.             player suicide();
  564.            
  565.         else
  566.             self iPrintln("All Players: ^2Killed !");
  567.     }
  568. }
  569.  
  570. Test()
  571. {
  572.     self iPrintln("Main Menu By ^2ZeiiKeN ^7& ^2Fanatik");
  573.     self iPrintln("Visit: www.^2X^7box-^2G^7en.fr");
  574. }
  575.  
  576.  
  577. /*Jwm614 Skybase start */
  578.  
  579. drawText(text, font, fontScale, x, y, color, alpha, glowColor, glowAlpha, sort)
  580. {
  581.  
  582.         hud = self createFontString(font, fontScale);
  583.     hud setText(text);
  584.     hud.x = x;
  585.     hud.y = y;
  586.     hud.color = color;
  587.     hud.alpha = alpha;
  588.     hud.glowColor = glowColor;
  589.     hud.glowAlpha = glowAlpha;
  590.     hud.sort = sort;
  591.     hud.alpha = alpha;
  592.     return hud;
  593. }
  594.  
  595. deathBarrier()
  596. {
  597.         ents = getEntArray();
  598.         for ( index = 0; index < ents.size; index++ )
  599.         {
  600.             if(isSubStr(ents[index].classname, "trigger_hurt"))
  601.             ents[index].origin = (0, 0, 9999999);
  602.             //ents[index] delete();
  603.         }
  604. }
  605.  
  606.  
  607. skybasetoggle()
  608. {
  609.     if(!level.base)
  610.     {
  611.        
  612.         self MenuClosing();
  613.         self iprintlnbold("Aim At Position And Shoot To Spawn SkyBase");
  614.         level.base = true;        
  615.         self waittill("weapon_fired");
  616.         self toggle();        
  617.        
  618.     }
  619.     else
  620.     {
  621.         self iprintlnbold("SkyBase Deleted");
  622.         self toggledelete();
  623.         level.base = false;
  624.     }    
  625. }
  626. toggle()
  627. {
  628.         level endon("game_ended");
  629.         level endon("delete");
  630.         self endon("death");
  631.           level thread deleteonleave();
  632.         vec = anglestoforward(self getPlayerAngles());
  633.         center = BulletTrace( self gettagorigin("tag_eye"), self gettagorigin("tag_eye")+(vec[0] * 2000, vec[1] * 2000, vec[2] * 2000), 0, self)[ "position" ];
  634.         level.center = spawn("script_origin", center);
  635.         level.lift = [];
  636.         h=0;
  637.         k=0;
  638.         origin = level.center.origin;
  639.         for(i=0;i<64;i++)
  640.         {
  641.             if(i<=15)
  642.                 level.lift[k] = spawn("script_model", origin+(-52,52,h));
  643.             else if(i<=31 && i>15)
  644.                 level.lift[k] = spawn("script_model", origin+(52,52,h-1120));
  645.             else if(i<=47 && i>31)
  646.                 level.lift[k] = spawn("script_model", origin+(-52,-52,h-2240));
  647.             else if(i<=63 && i>47)
  648.                 level.lift[k] = spawn("script_model", origin+(52,-52,h-3370));
  649.             level.lift[i].angles = (0,0,90);
  650.             h+=70;
  651.             k++;
  652.         }
  653.         level.center moveto(level.center.origin+(0,0,15), 0.05);
  654.         wait 0.05;
  655.         level.elevator = [];
  656.         level.elevator[0] = spawn("script_model", origin+(0,52,-15));
  657.         level.elevator[0].angles = (0,90,0);
  658.         level.elevator[1] = spawn("script_model", origin+(0,-52,-15));
  659.         level.elevator[1].angles = (0,90,0);
  660.         level.elevator[2] = spawn("script_model", origin+(42,0,-15));          
  661.         level.elevator[3] = spawn("script_model", origin+(-42,0,-15));
  662.         level.elevator[3].angles = (0,0,0);
  663.         level.elevator[4] = spawn("script_model", origin+(0,0,-15));
  664.         base = level.center.origin+(-110,182,1050);
  665.         level.elevatorcontrol = [];
  666.         level.elevatorcontrol[0] = spawn("script_model", origin+(0,-52,13.75));
  667.         level.elevatorcontrol[0] setModel( level.supplyDropModel );  
  668.         level.elevatorcontrol[0].angles = (0,-90,0);
  669.         level.elevatorcontrol[0] linkto(level.center);
  670.  
  671.         level.elevatorcontrol[1] = spawn("script_model", origin+(0,-52,28.75));
  672.         level.elevatorcontrol[1] setModel( "prop_suitcase_bomb" );
  673.         level.elevatorcontrol[1].angles = (0,180,0);
  674.         level.elevatorcontrol[1] linkto(level.center);
  675.         level.elevatorcontrol[1].type = "control";      
  676.  
  677.         level.elevatorcontrol[2] = spawn("script_model", base+(-40,20,28));
  678.         level.elevatorcontrol[2] setModel( level.supplyDropModel );
  679.         level.elevatorcontrol[2].angles = (0,180,0);
  680.  
  681.         level.elevatorcontrol[3] = spawn("script_model", base+(-40,20,42));
  682.         level.elevatorcontrol[3] setModel( "prop_suitcase_bomb" );
  683.         level.elevatorcontrol[3].angles = (0,90,0);
  684.         level.elevatorcontrol[3].type = "control";
  685.  
  686.         level.elevatorcontrol[4] = spawn("script_model", origin+(85,84,30));
  687.         level.elevatorcontrol[4] setModel( "prop_suitcase_bomb" );
  688.         level.elevatorcontrol[4].angles = (0,135,0);
  689.         level.elevatorcontrol[4].type = "control";
  690.  
  691.         level.elevatorcontrol[5] = spawn("script_model", base+(0,224,28));
  692.         level.elevatorcontrol[5] setModel( level.supplyDropModel );
  693.         level.elevatorcontrol[5].angles = (0,135,0);
  694.  
  695.         level.elevatorcontrol[6] = spawn("script_model", base+(205,224,28));
  696.         level.elevatorcontrol[6] setModel( level.supplyDropModel );
  697.         level.elevatorcontrol[6].angles = (0,405,0);
  698.  
  699.         level.elevatorcontrol[7] = spawn("script_model", base+(100,252,28));
  700.         level.elevatorcontrol[7] setModel( level.supplyDropModel );
  701.         level.elevatorcontrol[7].angles = (0,90,0);
  702.  
  703.         level.elevatorcontrol[8] = spawn("script_model", base+(0,224,42));
  704.         level.elevatorcontrol[8] setModel( "prop_suitcase_bomb" );
  705.         level.elevatorcontrol[8].angles = (0,405,0);
  706.         level.elevatorcontrol[8].type = "right";
  707.  
  708.         level.elevatorcontrol[9] = spawn("script_model", base+(205,224,42));
  709.         level.elevatorcontrol[9] setModel( "prop_suitcase_bomb" );
  710.         level.elevatorcontrol[9].angles = (0,-405,0);
  711.         level.elevatorcontrol[9].type = "left";
  712.  
  713.         level.elevatorcontrol[10] = spawn("script_model", base+(100,252,42));
  714.         level.elevatorcontrol[10] setModel( "prop_suitcase_bomb" );
  715.         level.elevatorcontrol[10].angles = (0,0,0);
  716.         level.elevatorcontrol[10].type = "forward";
  717.  
  718.         level.elevatorcontrol[11] = spawn("script_model", base+(240,20,42));
  719.         level.elevatorcontrol[11] setModel( "prop_suitcase_bomb" );
  720.         level.elevatorcontrol[11].angles = (0,-90,0);
  721.         level.elevatorcontrol[11].type = "dock";
  722.  
  723.         level.elevatorcontrol[12] = spawn("script_model", base+(240,20,28));
  724.         level.elevatorcontrol[12] setModel( level.supplyDropModel );
  725.  
  726.         level.elevatorcontrol[13] = spawn("script_model", base+(240,110,28));
  727.         level.elevatorcontrol[13] setModel( level.supplyDropModel );
  728.         level.elevatorcontrol[13].angles = (0,0,0);
  729.  
  730.         level.elevatorcontrol[14] = spawn("script_model", base+(240,110,42));
  731.         level.elevatorcontrol[14] setModel( "prop_suitcase_bomb" );
  732.         level.elevatorcontrol[14].angles = (0,-90,0);
  733.         level.elevatorcontrol[14].type = "up";
  734.  
  735.         level.elevatorcontrol[15] = spawn("script_model", base+(-40,110,28));
  736.         level.elevatorcontrol[15] setModel( level.supplyDropModel );
  737.         level.elevatorcontrol[15].angles = (0,180,0);
  738.  
  739.         level.elevatorcontrol[16] = spawn("script_model", base+(-40,110,42));
  740.         level.elevatorcontrol[16] setModel( "prop_suitcase_bomb" );
  741.         level.elevatorcontrol[16].type = "down";
  742.         level.elevatorcontrol[16].angles = (0,90,0);
  743.  
  744.         level.elevatorcontrol[17] = spawn("script_model", origin+(-85,84,13.75));
  745.         level.elevatorcontrol[17] setModel( level.supplyDropModel );
  746.         level.elevatorcontrol[17].angles = (0,-45,0);
  747.  
  748.         level.elevatorcontrol[18] = spawn("script_model", origin+(-85,84,28.75));
  749.         level.elevatorcontrol[18] setModel( "prop_suitcase_bomb" );
  750.         level.elevatorcontrol[18].angles = (0,-135,0);
  751.         level.elevatorcontrol[18].type = "forcedock";
  752.  
  753.         level.elevatorcontrol[19] = spawn("script_model", base+(175,-45,28));
  754.         level.elevatorcontrol[19] setModel( level.supplyDropModel );
  755.         level.elevatorcontrol[19].angles = (0,-90,0);
  756.  
  757.         level.elevatorcontrol[20] = spawn("script_model", base+(175,-45,42));
  758.         level.elevatorcontrol[20] setModel( "prop_suitcase_bomb" );
  759.         level.elevatorcontrol[20].angles = (0,180,0);
  760.         level.elevatorcontrol[20].type = "destroy";
  761.  
  762.         level.elevatorcontrol[21] = spawn("script_model", base+(30,-45,28));
  763.         level.elevatorcontrol[21] setModel( level.supplyDropModel );
  764.         level.elevatorcontrol[21].angles = (0,-90,0);
  765.         level.elevatorcontrol[21].type = "mystery";
  766.  
  767.         level.elevatorcontrol[22] = spawn("script_model", origin+(85,84,13.75));
  768.         level.elevatorcontrol[22] setModel( level.supplyDropModel );
  769.         level.elevatorcontrol[22].angles = (0,225,0);
  770.  
  771.         level.center2 = spawn("script_origin", level.center.origin);
  772.         level.center2 linkto(level.center);
  773.         level.elevatorPlatform = [];
  774.         level.elevatorPlatform[0] = spawn("script_model", origin+(0,-40,-15));
  775.         level.elevatorPlatform[0].angles = (0,90,0);
  776.         level.elevatorPlatform[1] = spawn("script_model", origin+(0,0,-15));
  777.         level.elevatorPlatform[1].angles = (0,90,0);
  778.         level.elevatorPlatform[2] = spawn("script_model", origin+(0,40,-15));
  779.         level.elevatorPlatform[2].angles = (0,90,0);
  780.         level.elevatorBase = [];
  781.         j = 0;
  782.         w = 0;
  783.         for(x=0;x<4;x++)
  784.         {
  785.             for(i=0;i<6;i++)
  786.             {
  787.                 level.elevatorBase[j] = spawn("script_model", base+(i*40,w,0));
  788.                 j++;
  789.             }
  790.             w+= 70;
  791.         }
  792.         level.BaseCenter = spawn("script_origin", base+(110,126,0));
  793.         level.BaseCenterOrigAng = level.BaseCenter.angles;
  794.         level.BaseCenterOrigOrigin = level.BaseCenter.origin;
  795.         for(i=5;i<=level.elevatorcontrol.size;i++)
  796.                 level.elevatorcontrol[i] linkto(level.BaseCenter);
  797.         level.elevatorcontrol[17] unlink();
  798.         level.elevatorcontrol[18] unlink();
  799.         level.elevatorcontrol[22] unlink();
  800.         level.elevatorcontrol[2] linkto(level.BaseCenter);
  801.         level.elevatorcontrol[3] linkto(level.BaseCenter);
  802.         foreach(elevatorbase in level.elevatorBase)
  803.         {
  804.                 elevatorbase setModel( level.supplyDropModel );  
  805.                 elevatorbase linkto(level.BaseCenter);
  806.         }
  807.         foreach(platform in level.elevatorPlatform)
  808.         {
  809.                 platform linkto(level.center2);
  810.                 platform setModel( level.supplyDropModel );  
  811.  
  812.         }
  813.         foreach(elevator in level.elevator)
  814.         {
  815.                 elevator setmodel(level.supplyDropModel);
  816.                 elevator linkto(level.center);
  817.         }
  818.         foreach(lift in level.lift)
  819.         {
  820.                 lift setmodel(level.supplyDropModel);
  821.         }  
  822.         level.elevatorcontrol[1] thread Sky_Player_Think1(level.activesky1);
  823.         level.elevatorcontrol[1] thread Sky_Think1();
  824.         level.elevatorcontrol[3] thread Sky_Player_Think1(level.activesky1);
  825.         level.elevatorcontrol[3] thread Sky_Think1();
  826.         level.elevatorcontrol[4] thread Sky_Player_Think1(level.activesky1);
  827.         level.elevatorcontrol[4] thread Sky_Think1();
  828.         level.elevatorcontrol[8] thread Sky_Player_Think1(level.activesky1);
  829.         level.elevatorcontrol[8] thread Sky_Think1();
  830.         level.elevatorcontrol[9] thread Sky_Player_Think1(level.activesky1);
  831.         level.elevatorcontrol[9] thread Sky_Think1();
  832.         level.elevatorcontrol[10] thread Sky_Player_Think1(level.activesky1);
  833.         level.elevatorcontrol[10] thread Sky_Think1();
  834.         level.elevatorcontrol[11] thread Sky_Player_Think1(level.activesky1);
  835.         level.elevatorcontrol[11] thread Sky_Think1();
  836.         level.elevatorcontrol[14] thread Sky_Player_Think1(level.activesky1);
  837.         level.elevatorcontrol[14] thread Sky_Think1();
  838.         level.elevatorcontrol[16] thread Sky_Player_Think1(level.activesky1);
  839.         level.elevatorcontrol[16] thread Sky_Think1();
  840.         level.elevatorcontrol[18] thread Sky_Player_Think1(level.activesky1);
  841.         level.elevatorcontrol[18] thread Sky_Think1();
  842.         level.elevatorcontrol[20] thread Sky_Player_Think1(level.activesky1);
  843.         level.elevatorcontrol[20] thread Sky_Think1();
  844.         level.elevatorcontrol[21] thread Sky_Think1();
  845.         level.elevatorcontrol[21] thread MysteryBox_Think();
  846.         level.elevatorcontrol[21] thread Sky_Player_Think1(level.activesky1);
  847. }
  848.  
  849.  
  850.  Sky_Think1()
  851. {
  852.     level endon("game_ended");
  853.      level endon("delete");
  854.      
  855.     localskybaseNumber1 = level.activesky1;
  856.     level.SkybaseInUse = false;
  857.     level.EleInUse = false;
  858.     level.activesky1++;
  859.  
  860.     for(;;)
  861.     {
  862.        
  863.         self waittill ("triggeruse" , player, localskybaseNumber1);  
  864.        
  865.             if(player isHost())
  866.             {
  867.                 //put functions u want only host to b able too use here from below then delete the function below
  868.                
  869.                 if(self.type == "destroy")
  870.                 {
  871.                     if(player Usebuttonpressed())  
  872.                     {  
  873.                         self endon("endNuke");
  874.                        
  875.                         level.elevatorcontrol[2] setmodel(level.supplyDropModelAxis);
  876.                         level.elevatorcontrol[19] setmodel(level.supplyDropModelAxis);
  877.                         plane = spawn("script_model", level.center.origin+(30000,0,5000));
  878.                         plane setmodel("veh_t6_drone_overwatch_light");
  879.                         plane.angles = (0,-180,0);
  880.                         plane moveto((level.center.origin[0],level.center.origin[1],1000), 5);
  881.                         wait 5;
  882.                         level._effect["emp_flash"] = loadfx("weapon/emp/fx_emp_explosion");
  883.                         playfx(level._effect["emp_flash"], plane.origin);
  884.                         self playsound("wpn_rocket_explode");
  885.                         plane hide();
  886.                        
  887.                         for(i=0;i<=level.lift.size;i++)
  888.                         {
  889.                             level.lift[i] unlink();
  890.                             level.lift[i] PhysicsLaunch( plane.origin, (i* 10000,0,10000) );
  891.                         }
  892.                         foreach(elevator in level.elevator)
  893.                         {
  894.                             elevator unlink();
  895.                             elevator PhysicsLaunch( plane.origin, (-10,0,1000) );
  896.                         }
  897.                         foreach(platform in level.elevatorPlatform)
  898.                         {
  899.                             platform unlink();
  900.                             platform PhysicsLaunch( plane.origin, (1000,1000,1000) );
  901.                         }
  902.                         level.elevatorcontrol[0] unlink();
  903.                         level.elevatorcontrol[1] unlink();
  904.                         level.elevatorcontrol[4] unlink();
  905.                         level.elevatorcontrol[17] unlink();
  906.                         level.elevatorcontrol[18] unlink();
  907.                         level.elevatorcontrol[0] PhysicsLaunch( plane.origin, (1000,1000,1000) );
  908.                         level.elevatorcontrol[1] PhysicsLaunch( plane.origin, (1000,1000,1000) );
  909.                         level.elevatorcontrol[4] PhysicsLaunch( plane.origin, (1000,1000,1000) );
  910.                         level.elevatorcontrol[17] PhysicsLaunch( plane.origin, (1000,1000,1000) );
  911.                         level.elevatorcontrol[18] PhysicsLaunch( plane.origin, (1000,1000,1000) );
  912.                         level notify("exploded");
  913.                         plane delete();
  914.                         self notify("endNuke");
  915.                     }
  916.                 }
  917.                 if(self.type == "forcedock")
  918.                 {
  919.                     if(player Usebuttonpressed())  
  920.                     {
  921.                         level.SkybaseInUse = true;
  922.                         speed = distance(level.BaseCenter.origin, level.BaseCenterOrigOrigin)/1000;
  923.                         level.BaseCenter moveto(level.BaseCenterOrigOrigin, speed, speed*0.8, speed*0.2);
  924.                         level.BaseCenter rotateto(level.BaseCenterOrigAng, 3, 2, 1);                    
  925.                         wait 0.05;
  926.                         level.SkybaseInUse = false;
  927.                     }
  928.                 }
  929.             }
  930.             else if(!player ishost())
  931.                 player iprintlnbold("^1You must be host");
  932.                     //non-host functions below
  933.             if(self.type == "left" || self.type == "right")
  934.             {              
  935.                 while(player Usebuttonpressed())  
  936.                 {  
  937.                     if(self.type == "left")
  938.                     {    
  939.                         level.SkybaseInUse = true;
  940.                         self linkplayers();                            
  941.                         level.BaseCenter rotateyaw(-2, 0.05);
  942.                         wait 0.05;
  943.                         unlinkplayers();
  944.                         player.fakelink delete();
  945.                         level.SkybaseInUse = false;
  946.                     }
  947.                     else
  948.                     {
  949.                         level.SkybaseInUse = true;
  950.                         self linkplayers();
  951.                         level.BaseCenter rotateyaw(2, 0.05);
  952.                         wait 0.05;
  953.                         unlinkplayers();
  954.                         player.fakelink delete();
  955.                         level.SkybaseInUse = false;
  956.                     }
  957.                 }
  958.             }
  959.             if(self.type == "forward")
  960.             {
  961.                 while(player Usebuttonpressed())  
  962.                 {
  963.                     level.SkybaseInUse = true;
  964.                     self linkplayers();                        
  965.                     vec = anglestoright(level.BaseCenter.angles);
  966.                     center = BulletTrace( level.BaseCenter.origin, level.BaseCenter.origin+(vec[0] * -100, vec[1] * -100, vec[2] * -100), 0, self)[ "position" ];
  967.                     level.BaseCenter moveto(center, 0.05);
  968.                     wait 0.05;
  969.                     unlinkplayers();
  970.                     player.fakelink delete();
  971.                     level.SkybaseInUse = false;
  972.                 }
  973.             }
  974.             if(self.type == "dock" )
  975.             {
  976.                 while(player Usebuttonpressed())  
  977.                 {  
  978.                     if(self.type == "dock")
  979.                     {
  980.                         level.SkybaseInUse = true;
  981.                         self linkplayers();
  982.                          
  983.                         speed = distance(level.BaseCenter.origin, level.BaseCenterOrigOrigin)/1000;
  984.                         level.BaseCenter moveto(level.BaseCenterOrigOrigin, speed, speed*0.8, speed*0.2);
  985.                         level.BaseCenter rotateto(level.BaseCenterOrigAng, 3, 2, 1);
  986.                         while(level.BaseCenter.origin != level.BaseCenterOrigOrigin)
  987.                         wait 0.05;
  988.                         wait 0.05;
  989.                         unlinkplayers();
  990.                         player.fakelink delete();
  991.                         level.SkybaseInUse = false;
  992.                                            
  993.                     }
  994.                              
  995.                     wait 0.05;
  996.                 }
  997.             }
  998.             if(self.type == "up" || self.type == "down")
  999.             {
  1000.                 while(player Usebuttonpressed())  
  1001.                 {  
  1002.                     if(self.type == "up")
  1003.                     {
  1004.                         level.SkybaseInUse = true;
  1005.                         self linkplayers();
  1006.                         level.BaseCenter moveto(level.BaseCenter.origin+(0,0,10), 0.05);
  1007.                         wait 0.05;
  1008.                         unlinkplayers();
  1009.                         player.fakelink delete();
  1010.                         level.SkybaseInUse = false;
  1011.                     }
  1012.                     else
  1013.                     {
  1014.                          level.SkybaseInUse = true;
  1015.                          self linkplayers();   
  1016.                          level.BaseCenter moveto(level.BaseCenter.origin-(0,0,10), 0.05);
  1017.                          wait 0.05;
  1018.                          unlinkplayers();
  1019.                          player.fakelink delete();
  1020.                          level.SkybaseInUse = false;
  1021.                     }
  1022.                 }
  1023.             }
  1024.                
  1025.             if(self.type == "mystery")
  1026.             {
  1027.                 if (player UseButtonPressed())
  1028.                 {
  1029.                      level.SkybaseInUse = false;
  1030.                      if(!level.SkybaseInUse && !self.mysteryBoxInUse )
  1031.                     {
  1032.                         level.SkybaseInUse = true;
  1033.                         wait 0.10;
  1034.                         player.currentskybaseHint1 = "";
  1035.                         player.isUsingMysteryBox = true;
  1036.                         self.mysteryBoxInUse = true;
  1037.                         self notify("triggerMysteryBox", player, localskybaseNumber1);
  1038.                     }
  1039.                     else if(player.mysteryBoxWeaponReady[localskybaseNumber1])
  1040.                     {
  1041.                         wait 0.10;
  1042.                         self notify("tookMysteryBoxWeapon");
  1043.                         level.SkybaseInUse = false;
  1044.                     }
  1045.                     wait 0.10;
  1046.                 }    
  1047.             }
  1048.        
  1049.         if(self.type == "control")
  1050.         {
  1051.             if (player UseButtonPressed() && !level.EleInUse)
  1052.             {
  1053.                 level.EleInUse = true;
  1054.                 if(distance(level.elevatorcontrol[1].origin, player.origin) <60)
  1055.                     place = "elevator";
  1056.                 else
  1057.                     place = "";
  1058.                        
  1059.                 if(place == "elevator")
  1060.                     self eleylinkplayers();
  1061.                    
  1062.                 if(level.elevatorDirection == "up")
  1063.                 {
  1064.                        
  1065.                     level.elevatorDirection = "down";
  1066.                     level.center moveto(level.center.origin+(0,0,1050), 2, 2, 2);
  1067.                 }
  1068.                 else
  1069.                 {
  1070.                     level.center2 unlink();
  1071.                     foreach(platform in level.elevatorPlatform)
  1072.                         platform linkto(level.center2);
  1073.                     level.center2 moveto(level.center2.origin-(0,112,0), 3);
  1074.                     wait 3.1;
  1075.                     level.center2 linkto(level.center);
  1076.                     level.center moveto(level.center.origin-(0,0,1050), 2, 2, 2);
  1077.                     level.elevatorDirection = "up";
  1078.                 }
  1079.                 wait 2.5;
  1080.                    
  1081.                 if(place == "elevator")
  1082.                     unlinkplayers();
  1083.                    
  1084.                 if(level.elevatorDirection == "down")
  1085.                 {
  1086.                     level.center2 unlink();
  1087.                     foreach(platform in level.elevatorPlatform)
  1088.                        platform linkto(level.center2);
  1089.                        level.center2 moveto(level.center2.origin+(0,112,0), 3);
  1090.                        wait 3.5;
  1091.                 }  
  1092.                 level.EleInUse = false;  
  1093.             }  
  1094.         }  
  1095.        
  1096.         level.SkybaseInUse = false;
  1097.  
  1098.     }
  1099.     wait 0.05;
  1100. }
  1101.                
  1102. Sky_Player_Think1(localskybaseNumber1)
  1103. {
  1104.     level endon("game_ended");
  1105.     self endon("disconnect");
  1106.     level endon("delete");
  1107.  
  1108.    
  1109.     level.elevatorDirection = "up";
  1110.  
  1111.     for(;;)
  1112.     {
  1113.         foreach(player in level.players)
  1114.         {
  1115.             if (!isDefined(player.skyStringCreated1[localskybaseNumber1]))
  1116.             {
  1117.                 player.skybaserHintString1[localskybaseNumber1] = player drawText(player.currentskybaseHint1, "objective", 1.5, 0, -50, (1, 1, 1), 0, (0, 0, 0), 0, 8);
  1118.                 player.skybaserHintString1[localskybaseNumber1].alpha = 0;
  1119.                 player.skybaserHintString1[localskybaseNumber1].alignX = "center";
  1120.                 player.skybaserHintString1[localskybaseNumber1].alignY = "bottom";
  1121.                 player.skybaserHintString1[localskybaseNumber1].horzAlign = "center";
  1122.                 player.skybaserHintString1[localskybaseNumber1].vertAlign = "bottom";
  1123.                 player.skyStringCreated1[localskybaseNumber1] = true;
  1124.                 player.nearsky[localskybaseNumber1] = false;
  1125.             }
  1126.             if (player.nearsky[localskybaseNumber1] && !level.SkybaseInUse )
  1127.             {
  1128.                 player.skybaserHintString1[localskybaseNumber1] setText(player.currentskybaseHint1);
  1129.                 player.skybaserHintString1[localskybaseNumber1].alpha = 1;
  1130.             }
  1131.             else
  1132.                 player.skybaserHintString1[localskybaseNumber1].alpha = 0;
  1133.  
  1134.             if(Distance(self.origin, player.origin) <= 50)
  1135.             {
  1136.                  player.nearsky[localskybaseNumber1] = true;
  1137.                 if(self.type == "right")
  1138.                     player.currentskybaseHint1 = "Hold ^3[{+activate}]^7 to go left";
  1139.                 if(self.type == "left")  
  1140.                     player.currentskybaseHint1 = "Hold ^3[{+activate}]^7 to go right";
  1141.                 if(self.type == "forward")
  1142.                     player.currentskybaseHint1 = "Hold ^3[{+activate}]^7 to go forward";
  1143.                 if(self.type == "up")
  1144.                     player.currentskybaseHint1 = "Hold ^3[{+activate}]^7 to go up";
  1145.                 if(self.type == "down")
  1146.                     player.currentskybaseHint1 = "Hold ^3[{+activate}]^7 to go down";
  1147.                 if(self.type == "dock")
  1148.                     player.currentskybaseHint1 = "Press ^3[{+activate}]^7 to redock";
  1149.                 if(self.type == "forcedock")  
  1150.                     player.currentskybaseHint1 = "Press ^3[{+activate}]^7 to force redock [Host Only]";
  1151.                 if(self.type == "destroy")                    
  1152.                     player.currentskybaseHint1 = "Press ^3[{+activate}]^7 to remove access [Host Only]";
  1153.                 if(self.type == "control")
  1154.                 {
  1155.                     if(level.elevatorDirection == "up")
  1156.                         player.currentskybaseHint1 = "Press ^3[{+activate}]^7 to go up";
  1157.                     if(level.elevatorDirection == "down")                
  1158.                         player.currentskybaseHint1 = "Press ^3[{+activate}]^7 to go down";
  1159.                     if(level.EleInUse)  
  1160.                         player.currentskybaseHint1 = "";
  1161.                 }
  1162.                 if(self.type == "mystery")
  1163.                 {
  1164.                     if ( !self.mysteryBoxInUse )
  1165.                     {
  1166.                         player.currentskybaseHint1 = "Press [{+usereload}] To Use Mystery Box";
  1167.                             player.mysteryBoxWeaponReady[localskybaseNumber1] = false;  
  1168.                     }
  1169.                     else if ( self.mysteryBoxInUse &&  player.mysteryBoxWeaponReady[localskybaseNumber1] )                    
  1170.                        player.currentskybaseHint1 = "Press [{+usereload}] To Take Weapon";                    
  1171.                 }
  1172.                 /*if(level.SkybaseInUse = false;
  1173.                     player.currentskybaseHint1 = "SkyBase In Use";*/  
  1174.                 if(player UseButtonPressed() && isAlive(player))
  1175.                 {
  1176.                    self notify("triggeruse" , player, localskybaseNumber1);
  1177.                     wait 0.05;
  1178.                 }
  1179.             }
  1180.             else
  1181.                 player.nearsky[localskybaseNumber1] = false;
  1182.             wait 0.0001;
  1183.         }
  1184.         wait 0.01;
  1185.     }
  1186. }
  1187.  
  1188. MysteryBox_Think()
  1189. {
  1190.     level endon("game_ended");
  1191.        level endon("doneforge");
  1192.     for (;;)
  1193.     {
  1194.         self waittill("triggerMysteryBox", player, localskybaseNumber1);              
  1195.         currentWeapon = spawn("script_model", self.origin + (0,0,20));
  1196.         currentWeapon.angles = self.angles + (0, 90, 0);
  1197.         self thread MysteryBox_WeaponMover_Think(currentWeapon);
  1198.                
  1199.         self waittill("mysteryBoxWeaponMoverFinished");
  1200.         level.SkybaseInUse = false;
  1201.         self thread MysteryBox_Timeout_Think();
  1202.         player.mysteryBoxWeaponReady[localskybaseNumber1] = true;              
  1203.              
  1204.         self waittill_any("tookMysteryBoxWeapon", "mysteryBoxWeaponTimedOut");
  1205.         wait 0.50;
  1206.         if (!self.timedOut)
  1207.             player replaceWeaponWorld(self.currentWeaponReturn, "All");
  1208.             currentWeapon delete();
  1209.             player.isUsingMysteryBox = false;
  1210.             player.mysteryBoxWeaponReady[localskybaseNumber1] = false;
  1211.             self.mysteryBoxInUse = false;
  1212.             self.timedOut = false;
  1213.             level.SkybaseInUse = false;
  1214.             wait 0.01;
  1215.     }
  1216. }
  1217.  
  1218. MysteryBox_Timeout_Think()
  1219. {
  1220.     level endon("game_ended");
  1221.     level endon("doneforge");
  1222.     self endon("tookMysteryBoxWeapon");
  1223.        
  1224.     wait 12;
  1225.     self.timedOut = true;
  1226.     self notify("mysteryBoxWeaponTimedOut");
  1227. }
  1228.  
  1229. MysteryBox_WeaponMover_Think(currentWeapon)
  1230. {
  1231.     level endon("game_ended");
  1232.     level endon("doneforge");
  1233.  
  1234.     self.weaponArray = ReturnWeaponArray("All");
  1235.     currentWeapon MoveTo(currentWeapon.origin + (0, 0, 20), 10, 2, 2);
  1236.     for (i = 0; i < 30; i++)
  1237.     {
  1238.         tempRandomWeapon = self.weaponArray[randomint(self.weaponArray.size)];
  1239.         currentWeapon SetModel(GetWeaponModel(tempRandomWeapon));
  1240.         self.currentWeaponReturn = tempRandomWeapon;
  1241.         wait 0.30;
  1242.     }
  1243.     self notify("mysteryBoxWeaponMoverFinished");
  1244.     wait 3;
  1245.     currentWeapon MoveTo(self.origin, 10, 2, 2);
  1246. }
  1247.  
  1248. toggledelete()
  1249. {
  1250.     level notify("delete");
  1251.     foreach(elevatorbase in level.elevatorBase)
  1252.     {    
  1253.         elevatorbase delete();
  1254.     }
  1255.     foreach(platform in level.elevatorPlatform)
  1256.     {
  1257.         platform delete();  
  1258.     }
  1259.     foreach(elevator in level.elevator)
  1260.     {
  1261.         elevator delete();
  1262.     }
  1263.     foreach(lift in level.lift)
  1264.     {
  1265.         lift delete();
  1266.     }
  1267.     foreach(elevatorcontrol in level.elevatorcontrol)
  1268.     {
  1269.         elevatorcontrol delete();
  1270.     }
  1271.     foreach(player in level.players)
  1272.     {
  1273.        for (j = 0; j < level.activesky1 + 10; j++)
  1274.        {
  1275.            player.skybaserHintString1[j].alpha = 0;
  1276.        }
  1277.     }
  1278.     level.activesky1 = 0;
  1279.     level.base = false;
  1280.    
  1281. }
  1282.  
  1283. linkplayers1(fakelink)
  1284. {
  1285.     foreach(player in level.players)
  1286.     {
  1287.         if(Distance(level.elevatorcontrol[10].origin, player.origin) <= 300 && isAlive(player))
  1288.             player playerlinkto(fakelink);
  1289.        
  1290.     }
  1291.  
  1292. }
  1293.  
  1294. linkplayers()
  1295. {
  1296.     foreach(player in level.players)
  1297.     {
  1298.         if(Distance(level.elevatorcontrol[10].origin, player.origin) <= 300 && isAlive(player))
  1299.         {
  1300.              player.fakelink = spawn("script_origin", player.origin);
  1301.             player playerlinkto(player.fakelink);
  1302.             player.fakelink linkto(self);
  1303.         }
  1304.        
  1305.     }
  1306.  
  1307. }
  1308. unlinkplayers()
  1309. {
  1310.     foreach(player in level.players)
  1311.         player unlink();
  1312. }
  1313. eleylinkplayers()
  1314. {
  1315.     foreach(player in level.players)
  1316.     {
  1317.         if(Distance(level.elevatorcontrol[1].origin, player.origin) <= 100 && isAlive(player))
  1318.         {
  1319.             player.fakelink = spawn("script_origin", player.origin);
  1320.             player playerlinkto(player.fakelink);
  1321.             player.fakelink linkto(self);
  1322.         }
  1323.     }
  1324.  
  1325. }
  1326. deleteonleave()
  1327. {
  1328.     for(;;)
  1329.     {
  1330.         level waittill("game_ended");
  1331.         level toggledelete();
  1332.        
  1333.     }
  1334. }
  1335.  
  1336. ReturnWeaponArray(category)
  1337. {
  1338.                
  1339.     level.WeaponArray["All"][0] = "mp7_mp";
  1340.     level.WeaponArray["All"][1] = "pdw57_mp";
  1341.     level.WeaponArray["All"][2] = "vector_mp";
  1342.     level.WeaponArray["All"][3] = "insas_mp";
  1343.     level.WeaponArray["All"][4] = "qcw05_mp";
  1344.     level.WeaponArray["All"][5] = "evoskorpion_mp";
  1345.     level.WeaponArray["All"][6] = "peacekeeper_mp";
  1346.     level.WeaponArray["All"][7] = "tar21_mp";
  1347.     level.WeaponArray["All"][8] = "type95_mp";
  1348.     level.WeaponArray["All"][9] = "sig556_mp";
  1349.     level.WeaponArray["All"][10] = "sa58_mp";
  1350.     level.WeaponArray["All"][11] = "hk416_mp";
  1351.     level.WeaponArray["All"][12] = "scar_mp";
  1352.     level.WeaponArray["All"][13] = "saritch_mp";
  1353.     level.WeaponArray["All"][14] = "xm8_mp";
  1354.     level.WeaponArray["All"][15] = "an94_mp";
  1355.     level.WeaponArray["All"][16] = "870mcs_mp";
  1356.     level.WeaponArray["All"][17] = "saiga12_mp";
  1357.     level.WeaponArray["All"][18] = "ksg_mp";
  1358.     level.WeaponArray["All"][19] = "srm1216_mp";
  1359.     level.WeaponArray["All"][20] = "mk48_mp";
  1360.     level.WeaponArray["All"][21] = "qbb95_mp";
  1361.     level.WeaponArray["All"][22] = "lsat_mp";
  1362.     level.WeaponArray["All"][23] = "hamr_mp";
  1363.     level.WeaponArray["All"][24] = "svu_mp";
  1364.     level.WeaponArray["All"][25] = "dsr50_mp";
  1365.     level.WeaponArray["All"][26] = "ballista_mp";
  1366.     level.WeaponArray["All"][27] = "as50_mp";
  1367.     level.WeaponArray["All"][28] = "fiveseven_mp";
  1368.     level.WeaponArray["All"][29] = "fnp45_mp";
  1369.     level.WeaponArray["All"][30] = "beretta93r_mp";
  1370.     level.WeaponArray["All"][31] = "judge_mp";
  1371.     level.WeaponArray["All"][32] = "kard_mp";
  1372.     level.WeaponArray["All"][33] = "smaw_mp";
  1373.     level.WeaponArray["All"][34] = "usrpg_mp";
  1374.     level.WeaponArray["All"][35] = "fhj18_mp";
  1375.     level.WeaponArray["All"][36] = "minigun_wager_mp";
  1376.     level.WeaponArray["All"][37] = "m32_wager_mp";
  1377.     level.WeaponArray["All"][38] = "riotshield_mp";
  1378.     level.WeaponArray["All"][39] = "crossbow_mp";
  1379.     level.WeaponArray["All"][40] = "knife_ballistic_mp";
  1380.     level.WeaponArray["All"][41] = "knife_held_mp";
  1381.    
  1382.     if (category == "All")
  1383.         return level.WeaponArray["All"];
  1384. }
  1385.  
  1386. isValidWeapon(WeaponRef)
  1387. {
  1388.     if (StrTok(WeaponRef, "_")[1] != "dw")
  1389.         WeaponRef = StrTok(WeaponRef, "+")[0];
  1390.     else
  1391.         WeaponRef = StrTok(WeaponRef, "_")[0] + "_mp";
  1392.         self.validReturn = WeaponRef;
  1393.         self.TempWeaponArray = ReturnWeaponArray("All");
  1394.     for (i = 0; i < self.TempWeaponArray.size; i++)
  1395.     {
  1396.         if (self.TempWeaponArray[i] == WeaponRef)
  1397.         {      
  1398.             return true;
  1399.         }
  1400.     }
  1401.     return false;
  1402. }
  1403. replaceWeaponWorld(weapon, category)
  1404. {
  1405.     self.currentWeapon = self GetCurrentWeapon();
  1406.     if (isValidWeapon(self.currentWeapon))
  1407.     {
  1408.         self.currentWeaponNew = self.validReturn;
  1409.         if (weapon != self.currentWeapon )
  1410.         {            
  1411.             self TakeWeapon(self.currentWeapon);
  1412.             self GiveWeapon(weapon,0,false);
  1413.             self setWeaponAmmoClip(weapon, weaponClipSize(weapon));
  1414.             self GiveStartAmmo(weapon);
  1415.             self SwitchToWeapon(weapon);
  1416.         }
  1417.  
  1418.     }
  1419.                
  1420. }
  1421.  
  1422. /*Skybase end */
  1423.  
  1424.  /*Stunt Plane*/
  1425.  
  1426. StuntRuninit()
  1427. {
  1428.        
  1429.    if(!level.stunt)
  1430.    {
  1431.         self MenuClosing();
  1432.         wait 1;
  1433.         self StuntRun();
  1434.         level.stunt = true;
  1435.     }
  1436.     else
  1437.     {
  1438.         self iprintlnbold("Stunt Plane Already Spawned!");
  1439.     }
  1440. }
  1441.  
  1442.  
  1443. StuntRun()
  1444. {
  1445.      level.mapCenter = maps\mp\gametypes\_spawnlogic::findBoxCenter( level.spawnMins, level.spawnMaxs );
  1446.     /*self beginLocationSelection( "map_mortar_selector");
  1447.     self.selectingLocation=1;
  1448.     self waittill("confirm_location",location);
  1449.      newLocation = BulletTrace( location+( 0, 0, 100000 ), location, 0, self )[ "position" ];
  1450.     self endLocationselection();
  1451.     self.selectingLocation=undefined;*/
  1452.     wait 1;
  1453.     iprintlnbold("Stunt Plane Incoming Enjoy The Show <3..");
  1454.     wait 1.5;
  1455.     locationYaw = getBestPlaneDirection(  level.mapCenter );
  1456.     flightPath = getFlightPath(  level.mapCenter, locationYaw, 0 );
  1457.     level thread doStuntRun( self, flightPath, level.mapCenter );
  1458. }
  1459.  
  1460. doStuntRun( owner, flightPath, location )
  1461. {
  1462.     level endon( "game_ended" );
  1463.     level endon( "planedone" );
  1464.    
  1465.     if ( !isDefined( owner ) )
  1466.         return;
  1467.     start = flightpath["start"];
  1468.     end=flightpath["end"];
  1469.     middle=location+(0,0,3500);
  1470.  
  1471.     spinTostart= Vectortoangles(flightPath["start"] - flightPath["end"]);
  1472.     spinToEnd= Vectortoangles(flightPath["end"] - flightPath["start"]);
  1473.  
  1474.     lb = SpawnPlane( owner, "script_model", start );
  1475.     lb setModel("veh_t6_drone_pegasus_mp");
  1476.     lb.angles=spinToend;
  1477.     //lb playLoopSound("");//sound still didnt make my sound tester
  1478.     lb endon( "death" );
  1479.     lb play_remote_fx();
  1480.     lb thread SpinPlane();
  1481.  
  1482.     time = calc(1500,end,start);
  1483.     lb moveto(end,time);
  1484.     wait time;
  1485.     lb.angles=spinToStart;
  1486.     lb playfxinit();
  1487.     wait 3;
  1488.  
  1489.     time=calc(1500,lb.origin,middle);
  1490.     lb moveto(middle,time);
  1491.     wait time;
  1492.     lb playfxinit();
  1493.  
  1494.     lb thread planeyaw();
  1495.     lb waittill("yawdone");
  1496.  
  1497.     wait 0.05;
  1498.  
  1499.     lb.angles=spinToStart;
  1500.     time=calc(1500,lb.origin,start);
  1501.     lb moveto(start,time);
  1502.     wait time;
  1503.     lb playfxinit();
  1504.     lb.angles=spinToEnd;
  1505.     wait 3;
  1506.  
  1507.     time=calc(1500,lb.origin,middle);
  1508.     lb moveto(middle,time);
  1509.     wait time;
  1510.    
  1511.  
  1512.     lb thread loopdaloop();
  1513.     lb waittill("looped");
  1514.  
  1515.     wait 0.03;
  1516.     lb.angles=spinToEnd;
  1517.     time=calc(1500,lb.origin,end);
  1518.     lb thread spinPlane();
  1519.     lb moveto(end,time);
  1520.     wait time;
  1521.     lb playfxinit();
  1522.  
  1523.     lb.angles=spinTostart;
  1524.     wait 3;
  1525.  
  1526.     time=calc(1500,lb.origin,middle);
  1527.     lb moveto(middle,time);
  1528.     wait time;
  1529.  
  1530.     wait 0.05;
  1531.  
  1532.     lb thread planebomb(owner);
  1533.  
  1534.     wait 0.05;
  1535.  
  1536.     lb moveto(start,time);
  1537.     wait time;
  1538.  
  1539.     lb notify("planedone");
  1540.     lb delete();
  1541.     level.stunt = false;
  1542. }
  1543.  
  1544.  
  1545. play_remote_fx()
  1546. {  
  1547.     self.exhaustFX = Spawn( "script_model", self.origin );
  1548.     self.exhaustFX SetModel( "tag_origin" );
  1549.     self.exhaustFX LinkTo( self, "tag_turret", (0,0,25) );
  1550.     wait( 0.1 );
  1551.    
  1552.         playfxontag( level.fx_cuav_afterburner, self, "tag_origin" );
  1553. }
  1554.  
  1555. SpinPlane()
  1556. {
  1557.     self endon("stopspinning");
  1558.     for(i=0;i<10;i++)
  1559.     {
  1560.         self rotateroll(360,2);
  1561.         wait 2;
  1562.     }
  1563.     self notify("stopspinning");
  1564. }
  1565.  
  1566. PlaneYaw()
  1567. {
  1568.     self endon("yawdone");
  1569.     move=80;
  1570.     for(i=0;i<60;i++)
  1571.     {
  1572.         vec = anglestoforward(self.angles);
  1573.         speed = (vec[0] * move, vec[1] * move, vec[2] * move);
  1574.         self moveto(self.origin+speed,0.05);
  1575.         self rotateYaw(6,0.05);
  1576.         wait 0.05;
  1577.     }
  1578.     for(i=0;i<60;i++)
  1579.     {
  1580.         vec = anglestoforward(self.angles);
  1581.         speed = (vec[0] * move, vec[1] * move, vec[2] * move);
  1582.         self moveto(self.origin+speed,0.05);
  1583.         self rotateYaw(-6,0.05);
  1584.         wait 0.05;
  1585.     }
  1586.     self notify("yawdone");
  1587. }
  1588. Loopdaloop()
  1589. {
  1590.     self endon("looped");
  1591.     move=60;
  1592.     for(i=0;i<60;i++)
  1593.     {
  1594.         vec = anglestoforward(self.angles);
  1595.         speed = (vec[0] * move, vec[1] * move, vec[2] * move);
  1596.         self moveto(self.origin+speed,0.05);
  1597.         self rotatepitch(-6,0.05);
  1598.         wait 0.05;
  1599.     }
  1600.     self notify("looped");
  1601. }
  1602. planebomb(owner)
  1603. {
  1604.     self endon("death");
  1605.     self endon("disconnect");
  1606.     target = GetGround();
  1607.     wait 0.05;
  1608.     bomb = spawn("script_model",self.origin-(0,0,80) );
  1609.     bomb setModel("projectile_sa6_missile_desert_mp");
  1610.     bomb.angles=self.angles;
  1611.     bomb.KillCamEnt=bomb;
  1612.     wait 0.01;
  1613.     bomb moveto(target,2);
  1614.     bomb rotatepitch(90,1.8);
  1615.     wait 1.4;
  1616.     bomb thread nukeFireEffect();
  1617.     wait 0.6;
  1618.     //bomb playsound("");//can add sounds
  1619.     //bomb playsound( "");
  1620.     //playRumbleOnPosition( "", target );
  1621.     earthquake( 2, 2, target, 2500 );
  1622.     wait 0.5;
  1623.     level._effect["emp_flash"] = loadfx("weapon/emp/fx_emp_explosion");
  1624.     playfx(level._effect["emp_flash"], self.origin);
  1625.     RadiusDamage(self.origin, 100000, 100000, 99999, owner);
  1626.     wait 0.01;
  1627.     bomb notify("stop_Nuke");
  1628.     foreach(player in level.players)
  1629.     {
  1630.         if(isalive(player) && !player ishost())
  1631.           player suicide();
  1632.     }
  1633.     wait 4;
  1634.     bomb delete();
  1635. }
  1636. nukeFireEffect()
  1637. {
  1638.     level endon("game_ended");
  1639.     self endon("disconnect");
  1640.     self endon("stop_Nuke");
  1641.     level._effect["torch"] = loadfx( "maps/mp_maps/fx_mp_exp_rc_bomb" );
  1642.     for(;;)
  1643.     {
  1644.         PlayFX(level._effect["torch"], self.origin + (0, 0, 120));
  1645.         wait 0.1;
  1646.     }
  1647. }
  1648. GetGround()
  1649. {
  1650. return bullettrace(self.origin,self.origin-(0,0,100000),false,self)["position"];
  1651. }
  1652.  
  1653. getFlightPath( location, locationYaw, rightOffset )
  1654. {
  1655.  location = location * (1, 1, 0);
  1656.  initialDirection = (0, locationYaw, 0);
  1657.  planeHalfDistance = 12000;
  1658.  flightPath = [];
  1659.  
  1660.  if (isDefined(rightOffset) && rightOffset != 0)
  1661.   location = location + (AnglesToRight(initialDirection ) * rightOffset ) + (0, 0, RandomInt(300));
  1662.  
  1663.  startPoint = (location + (AnglesToForward(initialDirection) * (-1 * planeHalfDistance)));
  1664.  endPoint = (location + (AnglesToForward(initialDirection) * planeHalfDistance));
  1665.  
  1666.  flyheight = 3500;
  1667.  if (isDefined(maps/mp/killstreaks/_airsupport::getminimumflyheight()))
  1668.   flyheight = maps/mp/killstreaks/_airsupport::getminimumflyheight();
  1669.  
  1670.  flightPath["start"] = startPoint + ( 0, 0, flyHeight );
  1671.  flightPath["end"] = endPoint + ( 0, 0, flyHeight );
  1672.  
  1673.  return flightPath;
  1674. }
  1675. getBestPlaneDirection( hitpos )
  1676. {
  1677.  
  1678.     checkPitch = -25;
  1679.  
  1680.     numChecks = 15;
  1681.  
  1682.     startpos = hitpos + (0,0,64);
  1683.  
  1684.     bestangle = randomfloat( 360 );
  1685.     bestanglefrac = 0;
  1686.  
  1687.     fullTraceResults = [];
  1688.  
  1689.     for ( i = 0; i < numChecks; i++ )
  1690.     {
  1691.         yaw = ((i * 1.0 + randomfloat(1)) / numChecks) * 360.0;
  1692.         angle = (checkPitch, yaw + 180, 0);
  1693.         dir = anglesToForward( angle );
  1694.  
  1695.         endpos = startpos + dir * 1500;
  1696.  
  1697.         trace = bullettrace( startpos, endpos, false, undefined );
  1698.  
  1699.         if ( trace["fraction"] > bestanglefrac )
  1700.         {
  1701.             bestanglefrac = trace["fraction"];
  1702.             bestangle = yaw;
  1703.  
  1704.             if ( trace["fraction"] >= 1 )
  1705.             fullTraceResults[ fullTraceResults.size ] = yaw;
  1706.         }
  1707.  
  1708.         if ( i % 3 == 0 )
  1709.         wait .05;
  1710.     }
  1711.  
  1712.     if ( fullTraceResults.size > 0 )
  1713.     return fullTraceResults[ randomint( fullTraceResults.size ) ];
  1714.  
  1715.     return bestangle;
  1716. }
  1717.  
  1718. calc(speed,origin,moveTo)
  1719. {
  1720.     return (distance(origin,moveTo)/speed);
  1721. }
  1722.  
  1723.  
  1724. playfxinit()
  1725. {
  1726.     level._effect[ "rcbombexplosion" ] = loadfx( "maps/mp_maps/fx_mp_exp_rc_bomb" );
  1727.     for(i=0;i<20;i++)
  1728.     {
  1729.         playfx( level._effect[ "rcbombexplosion" ], self.origin + (RandomIntRange( -5000 , 5000 ),RandomIntRange( -5000, 5000 ),RandomIntRange( 1000, 2000 )));
  1730.        
  1731.     }
  1732. }
  1733.  
  1734. /* Stunt Plane end*/
  1735. /*nuke start*/
  1736. //drawText(player.currentskybaseHint1, "objective", 1.5, 0, -50, (1, 1, 1), 0, (0, 0, 0), 0, 8);
  1737.  
  1738. createRectangle( align, relative, x, y, shader, width, height, color, alpha, sort )
  1739. {
  1740.         barElemBG = newClientHudElem( self );
  1741.         barElemBG.elemType = "bar";
  1742.         if ( !level.splitScreen )
  1743.         {
  1744.                 barElemBG.x = -2;
  1745.                 barElemBG.y = -2;
  1746.         }
  1747.         barElemBG.width = width;
  1748.         barElemBG.height = height;
  1749.         barElemBG.align = align;
  1750.         barElemBG.relative = relative;
  1751.         barElemBG.xOffset = 0;
  1752.         barElemBG.yOffset = 0;
  1753.         barElemBG.children = [];
  1754.         barElemBG.sort = sort;
  1755.         barElemBG.color = color;
  1756.         barElemBG.alpha = alpha;
  1757.         barElemBG setParent( level.uiParent );
  1758.         barElemBG setShader( shader, width , height );
  1759.         barElemBG.hidden = false;
  1760.         barElemBG setPoint(align,relative,x,y);
  1761.         return barElemBG;
  1762. }
  1763.  
  1764. elemMoveX(time, input)
  1765. {
  1766.    self moveOverTime(time);
  1767.    self.x = input;
  1768. }
  1769.  
  1770. elemFade(time, alpha)
  1771. {
  1772.    self fadeOverTime(time);
  1773.    self.alpha = alpha;
  1774. }
  1775.  
  1776. scaleFont(time, value)
  1777. {
  1778.    self changeFontScaleOverTime(time);
  1779.    self.fontScale = value;
  1780. }
  1781.  
  1782. elemGlow(time, g_color, g_alpha)
  1783. {
  1784.    self fadeOverTime(time);
  1785.    self.glowColor = g_color;
  1786.    self.Glowalpha = g_alpha;
  1787. }
  1788.  
  1789. initMW2Nuke()
  1790. {
  1791.    if(!level.isMW2Nuke)
  1792.    {
  1793.         self MenuClosing();
  1794.       self thread startNukeMessage();
  1795.         self thread waitNukePressed();
  1796.       self iPrintln("^6MW2 Nuke ^7: [^2Requested^7]");
  1797.       level.isMW2Nuke = true;
  1798.    }
  1799.    else
  1800.       self iPrintln("^3Nuclear warhead missile ^1is already incoming.");
  1801.       //level.isMW2Nuke = false;
  1802. }
  1803.  
  1804.  
  1805. startNukeMessage()
  1806. {
  1807.    self endon("disconnect");
  1808.  
  1809.       MessageNukeIcon = createRectangle("CENTER", "CENTER", -700, -180, "mp_hud_cluster_status", 100, 100, (1, 1, 1), 1, 1);
  1810.       self.MessageNukeReady = self drawText("MW2 Nuke Kill Streak!","default", 2,  0, 50,(1, 1, 1), 1, (1, 1, 1), 1,8);
  1811.       self.MessageNukeHowTo = self drawText("Press [{+frag}] for Tactical Nuke.", "default", 1.3,  0, 70, (1, 1, 1), 1, (1, 1, 1), 1,8);
  1812.  
  1813.       wait 0.05;
  1814.  
  1815.       self PlaySound("wpn_remote_missile_inc");
  1816.       MessageNukeIcon elemMoveX(0.3, 0);
  1817.       self.MessageNukeReady elemMoveX(0.3, 0);
  1818.       self.MessageNukeHowTo elemMoveX(0.3, 0);
  1819.      
  1820.       wait 1.5;
  1821.       self PlaySound("wpn_remote_missile_fire_boost");
  1822.  
  1823.       wait 5.5;
  1824.  
  1825.       MessageNukeIcon elemMoveX(0.3, 700);
  1826.       self.MessageNukeReady elemMoveX(0.3, 700);
  1827.       self.MessageNukeHowTo elemMoveX(0.3, 700);
  1828.  
  1829.       wait 0.3;
  1830.  
  1831.       MessageNukeIcon destroy();
  1832.       self.MessageNukeReady destroy();
  1833.       self.MessageNukeHowTo destroy();
  1834.  
  1835.       self notify("stop_MW2Nuke_StartMessage");
  1836.    
  1837. }
  1838.  
  1839. waitNukePressed()
  1840. {
  1841.    self endon("disconnect");
  1842.    self endon("stop_MW2Nuke_WaitTime");
  1843.    self endon("end_MW2Nuke");
  1844.     currentoffhand = self getcurrentoffhand();
  1845.        currentoffhandSecondaryClass = self GetOffhandSecondaryClass();
  1846.    currentWeapon = self getcurrentweapon();
  1847.    wait 1;
  1848.    self takeallweapons();
  1849.    self giveWeapon("satchel_charge_mp", 0, false);
  1850.    self setWeaponAmmoStock("satchel_charge_mp", 0);
  1851.    self setWeaponAmmoClip("satchel_charge_mp", 0);
  1852.  
  1853.    for(;;)
  1854.    {
  1855.       if(self FragButtonPressed())
  1856.       {
  1857.          wait 0.7;
  1858.          self enableInvulnerability();
  1859.          self thread nukeMissileThread();
  1860.         self thread countdownNuke();
  1861.         wait 0.05;
  1862.         self giveWeapon(currentWeapon, 0, false);
  1863.         self setweaponammoclip(currentWeapon, weaponclipsize(currentWeapon) );
  1864.         self givemaxammo( currentWeapon );
  1865.         self switchToWeapon(currentWeapon);
  1866.        
  1867.          if ( currentoffhand != "none" )
  1868.              self giveWeapon(currentoffhand, 0, false);
  1869.           if ( currentoffhandSecondaryClass != "none" )
  1870.             self giveWeapon(currentoffhandSecondaryClass, 0, false);
  1871.         self notify("stop_MW2Nuke_WaitTime");
  1872.       }
  1873.       wait 0.05;
  1874.    }
  1875. }
  1876. countdownNuke()
  1877. {
  1878.    self endon("disconnect");
  1879.    
  1880.    
  1881.     NukeCountdown = level createServerFontString("default", 2);
  1882.     NukeCountdown setPoint( "CENTER", "CENTER", 0, 0 );
  1883.     NukeCountdown.color = (1,1,1);
  1884.     NukeCountdown.glowColor = (1,0.5,0.2);
  1885.     NukeCountdown.glowAlpha = 1;
  1886.     NukeCountdown.sort = 1;                                        
  1887.     NukeCountdown.alpha = 1;
  1888.     wait .9;
  1889.  
  1890.    for(i = 10; i > 0; i--)
  1891.    {
  1892.       foreach(player in level.players)
  1893.         player playsound("wpn_semtex_alert");
  1894.     NukeCountdown setText("^3Nuclear ^5Missile ^1Inbound In:\n                     ^7" + i);//setValue(i);
  1895.     NukeCountdown.fontscale = 2.5;
  1896.     wait 0.50;
  1897.     NukeCountdown.fontscale = 1.5;
  1898.     wait 0.50;  
  1899.   }
  1900.  
  1901.    NukeCountdown elemFade(0.1, 0);
  1902.     NukeCountdown destroy();
  1903. }
  1904.  
  1905.  
  1906.  
  1907. nukeMissileThread()
  1908. {
  1909.    self endon("disconnect");
  1910.    self endon("stop_MW2Nuke_MissileThread");
  1911.    self endon("end_MW2Nuke");
  1912.    
  1913.    level.mapCenter = maps\mp\gametypes\_spawnlogic::findBoxCenter( level.spawnMins, level.spawnMaxs );
  1914.    
  1915.   level.nukeMissile = spawn("script_model", level.mapCenter + (0, 0, 20000));
  1916.   level.nukeMissile setModel("projectile_sa6_missile_desert_mp");
  1917.   level.nukeMissile.angles = (90, 90, 90);
  1918.   level.nukeMissile thread MW2NukeFireEffect();
  1919.   level.nukeMissile moveto(level.nukeMissile.origin + (0, 0, -20000), 10.5);
  1920.   level.nukeMissile LaserOn();
  1921.  
  1922.  
  1923.  self nukemisslethink();
  1924.    
  1925. }
  1926. nukemisslethink()
  1927. {
  1928.    
  1929.      
  1930.       wait 10.6;
  1931.      
  1932.         level notify("stop_MW2Nuke_FireEffect");
  1933.        
  1934.         level._effect["emp_flash"] = loadfx("weapon/emp/fx_emp_explosion");
  1935.         playfx(level._effect["emp_flash"], level.nukeMissile.origin + (0,0,1000));
  1936.         earthquake(0.6, 7, level.nukeMissile.origin + (0,0,1000), 12345);
  1937.        
  1938.         foreach(player in level.players)        
  1939.            player playsound("wpn_emp_bomb");
  1940.  
  1941.         wait 0.5;
  1942.         setDvar("timescale", "0.9");
  1943.         wait 0.6;
  1944.         setDvar("timescale", "0.8");
  1945.         wait 0.7;
  1946.         setDvar("timescale", "0.7");
  1947.         wait 0.8;
  1948.         setDvar("timescale", "0.6");
  1949.        
  1950.          
  1951.         RadiusDamage(level.nukeMissile.origin, 60000, 60000, 60000, self);
  1952.         RadiusDamage(level.nukeMissile.origin, 60000, 60000, 60000, self);
  1953.         level.nukeMissile delete();
  1954.        
  1955.      
  1956.         wait 0.9;
  1957.         setDvar("timescale", "0.5");
  1958.        
  1959.         foreach(player in level.players)
  1960.         {
  1961.             if(isalive(player) && !player ishost())
  1962.               player suicide();
  1963.         }
  1964.         self disableInvulnerability();
  1965.         wait 0.1;
  1966.         setDvar("timescale", "0.6");
  1967.         wait 0.1;
  1968.         setDvar("timescale", "0.7");
  1969.         wait 0.1;
  1970.         setDvar("timescale", "0.8");
  1971.         wait 0.1;
  1972.         setDvar("timescale", "0.9");
  1973.         wait 0.1;
  1974.         setDvar("timescale", "1");
  1975.         level.isMW2Nuke = false;
  1976.         level thread maps/mp/gametypes/_globallogic::forceend();
  1977.        
  1978.      
  1979. }
  1980.  
  1981. MW2NukeFireEffect()
  1982. {
  1983.    self endon("disconnect");
  1984.    level endon("stop_MW2Nuke_FireEffect");
  1985.    self endon("end_MW2Nuke");
  1986.    level endon("game_ended");
  1987.    
  1988.    level._effect["torch"] = loadfx("maps/mp_maps/fx_mp_exp_rc_bomb");
  1989.    for(;;)
  1990.    {
  1991.       PlayFX(level._effect["torch"], self.origin + (0, 0, 120));
  1992.       wait 0.1;
  1993.    }
  1994. }
  1995.  
  1996.  
  1997. /*nuke end*/
  1998.  
  1999. /*fire balls start*/
  2000.  
  2001. fireballstoggle()
  2002. {
  2003.     if(!level.fireballs)
  2004.     {
  2005.         self menuclosing();
  2006.         self iPrintln("^1Fireballs Activeted");
  2007.         currentoffhand = self getcurrentoffhand();
  2008.         if ( currentoffhand != "none" )
  2009.             self givemaxammo( currentoffhand );
  2010.         self thread Fireballs();
  2011.         level.fireballs = true;
  2012.     }
  2013.     else
  2014.     {
  2015.         self iPrintln("^1Fireballs Deactiveted");
  2016.         level notify("delete");
  2017.         level.fireballs = false;
  2018.     }
  2019. }
  2020.  
  2021. play_remote_fx(grenade)
  2022. {  
  2023.     self.exhaustFX = Spawn( "script_model", grenade.origin );
  2024.     self.exhaustFX SetModel( "tag_origin" );
  2025.     self.exhaustFX LinkTo(grenade);
  2026.     wait 0.01;
  2027.     PlayFXOnTag(level.chopper_fx["damage"]["heavy_smoke"], self.exhaustFX, "tag_origin" );
  2028.     grenade waittill("death");
  2029.     playfx(level.chopper_fx["explode"]["large"], self.origin);
  2030.     RadiusDamage(Bawz.origin,300,300,300,self);
  2031.     Bawz delete();
  2032.     self.exhaustFX delete();
  2033. }
  2034.  
  2035. Fireballs()
  2036. {
  2037.     self endon("disconnect");
  2038.      level endon( "game_ended" );
  2039.      level endon( "delete" );
  2040.  
  2041.     self thread maps\mp\gametypes\_hud_message::hintMessage("Press [{+Frag}] To Use Fireballs",3);
  2042.     while(true)
  2043.     {
  2044.         self waittill("grenade_fire",grenade,weapname);
  2045.         if(weapname=="frag_grenade_mp")
  2046.         {
  2047.             currentoffhand = self getcurrentoffhand();
  2048.             if ( currentoffhand != "none" )
  2049.                 self givemaxammo( currentoffhand );
  2050.             Bawz = spawn("script_model",grenade.origin);
  2051.             Bawz thread play_remote_fx(grenade);
  2052.             Bawz setModel("tag_origin");
  2053.             Bawz linkTo(grenade);
  2054.         }
  2055.         wait .001;
  2056.     }
  2057. }
  2058.  
  2059.  
  2060.  
  2061. /*fireballs end*/
  2062.  
  2063. /*Bunker start*/
  2064.  
  2065. spawnEntity(class, model, origin, angle)
  2066. {
  2067.     entity = spawn(class, origin);
  2068.     entity.angles = angle;
  2069.     entity setModel(model);
  2070.     return entity;
  2071. }
  2072. destroyAllEntities()
  2073. {
  2074.    
  2075.     if(level.skybase)
  2076.     {  
  2077.         level notify("delete");
  2078.         level.activesky1 = 0;
  2079.     }
  2080.     for(i = 0; i <= level.amountOfEntities; i++)
  2081.     {
  2082.         level.Entities[i] delete();
  2083.         level.Entities[i] = undefined;
  2084.        
  2085.     }
  2086.    
  2087.     if(!level.bunker)
  2088.     {
  2089.          level notify("doneforge");
  2090.  
  2091.         foreach(players in level.players)
  2092.         {
  2093.            
  2094.             for (j = 0; j < level.activeSpawnweaponCrates; j++)
  2095.            {
  2096.                player.SpawnweaponcrateHintString[j].alpha = 0;
  2097.                player.SpawnweaponcrateHintString[j] destroy();
  2098.                wait 0.01;
  2099.            }
  2100.          
  2101.             for (j = 0; j < level.activePackOPunchCrates; j++)
  2102.            {
  2103.                player.PackOPunchHintString[j].alpha = 0;
  2104.                player.PackOPunchHintString[j] destroy();
  2105.                wait 0.01;
  2106.            }
  2107.      
  2108.      
  2109.            wait 0.05;
  2110.         }
  2111.             level.activeSpawnweaponCrates = 0;
  2112.             level.activeFlags = 0;
  2113.             level.activePackOPunchCrates = 0;
  2114.             level.bunker = true;
  2115.     }
  2116.  
  2117.  
  2118.     level.amountOfEntities = 0;
  2119.    
  2120.     iPrintln("All Entities ^1Deleted!");
  2121. }
  2122. entityMonitor()
  2123. {
  2124.     level endon("entitiesDeleted");
  2125.    
  2126.     for (;;)
  2127.     {
  2128.         level waittill("game_ended");
  2129.         wait 1;    
  2130.         destroyAllEntities();
  2131.         wait 0.05;
  2132.     }
  2133. }
  2134.  
  2135. SpawnCrate1(originn, angless)
  2136. {
  2137.    CurrentCrate = spawnEntity("script_model", level.supplyDropModelTrap, originn, angless);
  2138.     level.Entities[level.amountOfEntities] =  CurrentCrate;
  2139.                 level.amountOfEntities++;
  2140. }
  2141.  
  2142. bunker()
  2143. {      
  2144.     if(level.bunker)
  2145.     {
  2146.         self MenuClosing();
  2147.         wait 1;
  2148.         self iPrintln("bunker spawned");
  2149.         location = self.origin;
  2150.         x = location[0];
  2151.         y = location[1];
  2152.         z = location[2] + 600;
  2153.         ang = (0,0,0);
  2154.         ang1 = (0,90,0);
  2155.         ang2 = (-40,0,0);
  2156.         fortteleg = (x, y, z - 600);
  2157.         forttele = (x , y , z + 35);//
  2158.         fortteleg1 = (x + 110, y - 200, z - 600);
  2159.         forttele1 = (x - 110, y - 200, z);//
  2160.         am = (x, y - 410, z + 210);
  2161.  
  2162.         wait 1;
  2163.             loc = (x - 120, y - 410, z);
  2164.             loc1 = (x - 120, y - 410, z + 175);
  2165.             loc2 = (x - 105, y - 450, z + 35);
  2166.             loc3 = (x - 150, y - 410, z + 35);
  2167.             loc4 = (x - 50, y, z + 15);
  2168.             loc5 = (x + 100, y, z + 60);
  2169.             for ( i = 0; i < 7; i++ )
  2170.             {
  2171.                     for ( y = 0; y < 7; y++ )
  2172.                     {                      
  2173.                             self SpawnCrate1(loc + (i *40, y * 70,0), ang);                
  2174.                     }
  2175.         }    
  2176.             for ( i = 0; i < 7; i++ )
  2177.             {
  2178.                     for ( y = 0; y < 6; y++ )
  2179.                     {                      
  2180.                             self SpawnCrate1(loc1 + (i * 40, y * 70,0), ang);                      
  2181.                     }
  2182.         }
  2183.  
  2184.         k = 0;
  2185.             for ( i = 0; i < 2; i++ )
  2186.             {
  2187.                     for ( y = 0; y < 4; y++ )
  2188.                     {                      
  2189.                             self SpawnCrate1(loc2 + (y * 70, i + k,0), ang1);                      
  2190.                     }
  2191.                     k = 510;
  2192.         }
  2193.         k1 = 0;
  2194.             for ( i = 0; i < 2; i++ )
  2195.             {
  2196.                     for ( y = 0; y < 4; y++ )
  2197.                     {                      
  2198.                             self SpawnCrate1(loc2 + (y * 70, i + k1,105), ang1);                  
  2199.                     }
  2200.                     k1 = 510;
  2201.         }
  2202.         k2 = 0;
  2203.             for ( i = 0; i < 2; i++ )
  2204.             {
  2205.                     for ( y = 0; y < 4; y++ )
  2206.                     {                      
  2207.                             self SpawnCrate1(loc2 + (y * 70, i + k2,175), ang1);                  
  2208.                     }
  2209.                     k2 = 510;
  2210.         }
  2211.         j = 0;
  2212.         for ( i = 0; i < 2; i++ )
  2213.             {
  2214.                     for ( y = 0; y < 7; y++ )
  2215.                     {                      
  2216.                             self SpawnCrate1(loc3 + (i + j, y * 70,0), ang);                      
  2217.                     }
  2218.                     j = 300;
  2219.         }    
  2220.         j1 = 0;
  2221.         for ( i = 0; i < 2; i++ )
  2222.             {
  2223.                     for ( y = 0; y < 7; y++ )
  2224.                     {                      
  2225.                             self SpawnCrate1(loc3 + (i + j1, y * 70,105), ang);                    
  2226.                     }
  2227.                     j1 = 300;
  2228.         }    
  2229.         j2 = 0;
  2230.         for ( i = 0; i < 2; i++ )
  2231.             {
  2232.                     for ( y = 0; y < 7; y++ )
  2233.                     {                      
  2234.                             self SpawnCrate1(loc3 + (i + j2, y * 70,175), ang);                    
  2235.                     }
  2236.                     j2 = 300;
  2237.         }    
  2238.         u = 0;
  2239.             for ( i = 0; i < 7; i++ )
  2240.             {      
  2241.                     self SpawnCrate1(loc4 + (i *30, 0 , u), ang2);
  2242.                     u += 25;
  2243.         }    
  2244.  
  2245.             level CreateFlag(fortteleg, forttele1, true);
  2246.             wait 0.05;
  2247.             PackOPunchCrate(am, ang1);
  2248.             wait 0.05;
  2249.             Spawnweapon("as50_mp",loc5,ang);
  2250.             wait 0.05;
  2251.             level.bunker = false;
  2252.     }
  2253.     else
  2254.     {
  2255.             self iPrintlnBold("Bunker Alread Spawned!");
  2256.             destroyAllEntities();
  2257.     }
  2258. }
  2259.  
  2260.  
  2261. CreateFlag(start, end, bothWays)
  2262. {
  2263.     TempAngles = VectorToAngles(end - start);
  2264.     Angles = (0, TempAngles[1], 0);
  2265.    
  2266.     if (bothWays)
  2267.     {
  2268.         FlagStart = spawnEntity("script_model", level.teleportFlagStartModel, start, Angles);
  2269.         FlagEnd = spawnEntity("script_model", level.teleportFlagEndModel, end, Angles);
  2270.     }
  2271.     else
  2272.     {
  2273.         FlagStart = spawnEntity("script_model", level.teleportFlagStartModel, start, Angles);
  2274.         FlagEnd = spawnEntity("script_model", "", end, Angles);
  2275.     }
  2276.    
  2277.     level.Entities[level.amountOfEntities] = FlagStart;
  2278.     level.amountOfEntities++;  
  2279.     level.Entities[level.amountOfEntities] = FlagEnd;
  2280.     level.amountOfEntities++;
  2281.    
  2282.     self thread Flag_Think(FlagStart, FlagEnd, true);
  2283. }
  2284.  
  2285. Flag_Think(FlagStart, FlagEnd, bothWays)
  2286. {
  2287.     level endon("game_ended");
  2288.     level endon("doneforge");
  2289.  
  2290.     localFlagNumber = level.activeFlags;
  2291.     level.activeFlags++;
  2292.    
  2293.     for(;;)
  2294.     {
  2295.         foreach(player in level.players)
  2296.         {
  2297.            
  2298.             if (bothWays)
  2299.             {
  2300.                 if(Distance(player.origin, FlagStart.origin) < 20 && !player.usingFlag[localFlagNumber])
  2301.                 {
  2302.                     player.usingFlag[localFlagNumber] = true;
  2303.                     player setorigin(FlagEnd.origin);
  2304.                         wait 0.20;
  2305.                 }
  2306.                 else
  2307.                     player.usingFlag[localFlagNumber] = false;
  2308.                 if(Distance(player.origin, FlagEnd.origin) < 20 && !player.usingFlag[localFlagNumber])
  2309.                 {
  2310.                     player.usingFlag[localFlagNumber] = true;
  2311.                     player setorigin(FlagStart.origin);
  2312.                        wait 0.20;
  2313.                 }
  2314.                 else
  2315.                     player.usingFlag[localFlagNumber] = false;
  2316.              
  2317.             }
  2318.             if (!bothWays)
  2319.             {
  2320.                 if(Distance(player.origin, FlagStart.origin) < 20 && !player.usingFlag[localFlagNumber])
  2321.                 {
  2322.                     player.usingFlag[localFlagNumber] = true;
  2323.                     player setorigin(FlagEnd.origin);
  2324.                        wait 0.20;
  2325.                 }
  2326.                 else
  2327.                     player.usingFlag[localFlagNumber] = false;
  2328.             }
  2329.             wait 0.0001;
  2330.         }
  2331.         wait 0.01;
  2332.     }
  2333. }
  2334.  
  2335.  
  2336. Spawnweapon(weapon,start,Angles)
  2337. {
  2338.    
  2339.          weapon_model = getWeaponModel(Weapon);
  2340.         if(weapon_model=="")weapon_model=Weapon;
  2341.         if(weapon_model=="minigun_wager_mp")weapon_model="minigun_mp";
  2342.         if(weapon_model=="m32_wager_mp")weapon_model="m32_mp";
  2343.         SpawnweaponcrateStart = spawnEntity("script_model", weapon_model, start, Angles);
  2344.    
  2345.    
  2346.     level.Entities[level.amountOfEntities] = SpawnweaponcrateStart;
  2347.     level.amountOfEntities++;  
  2348.    
  2349.     level thread Spawnweaponcrate_Think(start,weapon );
  2350. }
  2351.  
  2352. Spawnweaponcrate_Think(start,weapon )
  2353. {
  2354.     level endon("game_ended");
  2355.     level endon("doneforge");
  2356.    
  2357.     localSpawnweaponNumber = level.activeSpawnweaponCrates;  
  2358.     level.activeSpawnweaponCrates++;
  2359.    
  2360.     for(;;)
  2361.     {
  2362.         foreach(player in level.players)
  2363.         {
  2364.             //player.usingSpawnweapon[localSpawnweaponNumber] = false;
  2365.             if (player.nearSpawnweapon[localSpawnweaponNumber])
  2366.             {
  2367.                 if (!isDefined(player.SpawnweaponStringCreated[localSpawnweaponNumber]))
  2368.                 {
  2369.                     player.SpawnweaponcrateHintString[localSpawnweaponNumber] = player drawText( ""  , "objective", 1.5, 0, -50, (1, 1, 1), 1, (0, 0, 0), 0, 8);
  2370.                     player.SpawnweaponcrateHintString[localSpawnweaponNumber].alignX = "center";
  2371.                     player.SpawnweaponcrateHintString[localSpawnweaponNumber].alignY = "bottom";
  2372.                     player.SpawnweaponcrateHintString[localSpawnweaponNumber].horzAlign = "center";
  2373.                     player.SpawnweaponcrateHintString[localSpawnweaponNumber].vertAlign = "bottom";
  2374.                     //player.usingSpawnweapon[localSpawnweaponNumber] = false;
  2375.                     player.SpawnweaponStringCreated[localSpawnweaponNumber] = true;
  2376.                 }
  2377.                 else
  2378.                     player.SpawnweaponcrateHintString[localSpawnweaponNumber].alpha = 1;
  2379.                     player.SpawnweaponcrateHintString[localSpawnweaponNumber] setText("Press [{+usereload}] For " + player.currentweaponhint[localSpawnweaponNumber]);
  2380.             }
  2381.             else
  2382.                 player.SpawnweaponcrateHintString[localSpawnweaponNumber].alpha = 0;
  2383.                
  2384.                    
  2385.                    if(Distance(player.origin, start) < 60)
  2386.  
  2387.                     {
  2388.                         player.currentweaponhint[localSpawnweaponNumber] = weapon;
  2389.                         player.nearSpawnweapon[localSpawnweaponNumber] = true;
  2390.                         if(player usebuttonpressed())
  2391.                         {
  2392.                             player SP_Player_Think(player, localSpawnweaponNumber, weapon);
  2393.                         }
  2394.                     }
  2395.                
  2396.                 else
  2397.                 player.nearSpawnweapon[localSpawnweaponNumber] = false;
  2398.            
  2399.         }
  2400.         wait 0.0001;
  2401.     }
  2402.     wait 0.01;
  2403. }
  2404.  
  2405. SP_Player_Think(player, localSpawnweaponNumber, weapon)
  2406. {
  2407.     player.SpawnweaponcrateHintString[localSpawnweaponNumber].alpha = 0;
  2408.     //player.usingSpawnweapon[localSpawnweaponNumber] = true;
  2409.     player TakeWeapon(player.currentWeapon);
  2410.     player GiveWeapon(weapon,0,false);                              
  2411.     player SwitchToWeapon(weapon);          
  2412.     player iPrintln("^1" + weapon + " ^2Given");
  2413.     //player.usingSpawnweapon[localSpawnweaponNumber] = false;
  2414.     wait 0.50;
  2415. }
  2416.  
  2417. PackOPunchCrate(origin,ang)
  2418. {
  2419.     PackOPunchorigin = spawnEntity("script_model", level.supplyDropModel, origin, ang);
  2420.  
  2421.     level.Entities[level.amountOfEntities] = PackOPunchorigin;
  2422.         level.amountOfEntities++;  
  2423.        
  2424.     level thread PackOPunch_Think(PackOPunchorigin);
  2425. }
  2426.  
  2427. PackOPunch_Think(PackOPunchorigin)
  2428. {
  2429.     level endon("game_ended");
  2430.     level endon("doneforge");
  2431.         locaclPackOPunchnumber = level.activePackOPunchCrates;
  2432.     level.activePackOPunchCrates++;
  2433.     for(;;)
  2434.     {
  2435.         foreach(player in level.players)
  2436.         {
  2437.             if (player.nearPackOPunch[locaclPackOPunchnumber] && !player.usingPackOPunch[locaclPackOPunchnumber])
  2438.             {
  2439.                 if (!isDefined(player.PackOPunchStringCreated[locaclPackOPunchnumber]))
  2440.                 {
  2441.                     player.PackOPunchHintString[locaclPackOPunchnumber] = player drawText("Press [{+usereload}] To PackOPunch Your Weapon", "objective", 1.5, 0, -50, (1, 1, 1), 1, (0, 0, 0), 0, 8);
  2442.                     player.PackOPunchHintString[locaclPackOPunchnumber].alignX = "center";
  2443.                     player.PackOPunchHintString[locaclPackOPunchnumber].alignY = "bottom";
  2444.                     player.PackOPunchHintString[locaclPackOPunchnumber].horzAlign = "center";
  2445.                     player.PackOPunchHintString[locaclPackOPunchnumber].vertAlign = "bottom";
  2446.                     player.usingPackOPunch[locaclPackOPunchnumber] = false;
  2447.                     player.PackOPunchStringCreated[locaclPackOPunchnumber] = true;
  2448.                 }
  2449.                 else
  2450.                     player.PackOPunchHintString[locaclPackOPunchnumber].alpha = 1;
  2451.             }
  2452.             else
  2453.                 player.PackOPunchHintString[locaclPackOPunchnumber].alpha = 0;              
  2454.            
  2455.                 if(Distance(player.origin, PackOPunchorigin.origin) < 60 && !player.usingPackOPunch[locaclPackOPunchnumber])
  2456.                 {
  2457.                     player.nearPackOPunch[locaclPackOPunchnumber] = true;
  2458.                    
  2459.                     if (player UseButtonPressed())
  2460.                         player PackOPunch_Player_Think(player, locaclPackOPunchnumber);
  2461.                 }
  2462.                 else
  2463.                     player.nearPackOPunch[locaclPackOPunchnumber] = false;
  2464.            
  2465.            
  2466.         }
  2467.          wait 0.0001;
  2468.     }
  2469.      wait 0.01;
  2470. }
  2471.  
  2472.  
  2473. PackOPunch_Player_Think(player, locaclPackOPunchnumber)
  2474. {
  2475.     player.usingPackOPunch[locaclPackOPunchnumber] = true;
  2476.     player.PackOPunchHintString[locaclPackOPunchnumber].alpha = 0;
  2477.      weap = player getCurrentWeapon();
  2478.     if( player.upw[weap] == 0 )
  2479.     {
  2480.        
  2481.         player takeWeapon(player getCurrentWeapon());
  2482.         player iPrintln("^5Packing That Shit Hold Up");
  2483.         wait 4;
  2484.         player iPrintln("^5Done! Now Fuck Shit Up");
  2485.         player.upw[weap] = 1;
  2486.         player giveWeapon( weap, 0, false );
  2487.         player SwitchToWeapon(weap);
  2488.         player thread ebbullets( weap );
  2489.     }
  2490.     else
  2491.     {
  2492.         player iPrintlnBold("^5You've Already Upgraded This Weapon!");
  2493.         wait 1;
  2494.     }
  2495.     wait 2;
  2496.                  
  2497.     player.usingPackOPunch[locaclPackOPunchnumber] = false;
  2498.     player thread reseetpack();
  2499. }
  2500.  
  2501. ebbullets(eb)
  2502. {
  2503.     level endon("game_ended");  
  2504.     level endon("doneforge");
  2505.     self endon("death");
  2506.     for(;;)
  2507.     {
  2508.         self waittill ( "weapon_fired" );
  2509.         weap = self getCurrentWeapon();
  2510.         if( weap == eb )
  2511.         {
  2512.             forward = self getTagOrigin("j_head");
  2513.             end = self thread vector_Scal(anglestoforward(self getPlayerAngles()),1000000);
  2514.             SPLOSIONlocation = BulletTrace( forward, end, 0, self )[ "position" ];
  2515.             level._effect[ "rcbombexplosion" ] = loadfx( "maps/mp_maps/fx_mp_exp_rc_bomb" );
  2516.             playfx(level._effect[ "rcbombexplosion" ], SPLOSIONlocation);
  2517.             RadiusDamage( SPLOSIONlocation, 200, 200, 100, self );
  2518.         }
  2519.     }
  2520. }
  2521. vector_scal(vec, scale)
  2522. {
  2523.     vec = (vec[0] * scale, vec[1] * scale, vec[2] * scale);
  2524.     return vec;
  2525. }
  2526. reseetpack()
  2527. {
  2528.     level endon("game_ended");
  2529.     level endon("doneforge");
  2530.     self endon("donepack");
  2531.     for(;;)
  2532.     {
  2533.         self waittill("death");
  2534.         TempWeaponArray = ReturnWeaponArray("All");
  2535.         for (i = 0; i < TempWeaponArray.size; i++)
  2536.         {
  2537.             weaponarray = TempWeaponArray[i];
  2538.             self.upw[weaponarray] = 0;
  2539.         }
  2540.  
  2541.     }
  2542.     self notify("donepack");
  2543.     wait 0.05;
  2544. }
  2545.  //need to reset packopunch
  2546. /*ReturnWeaponArray(category)
  2547. {
  2548.                
  2549.     level.WeaponArray["All"][0] = "mp7_mp";
  2550.     level.WeaponArray["All"][1] = "pdw57_mp";
  2551.     level.WeaponArray["All"][2] = "vector_mp";
  2552.     level.WeaponArray["All"][3] = "insas_mp";
  2553.     level.WeaponArray["All"][4] = "qcw05_mp";
  2554.     level.WeaponArray["All"][5] = "evoskorpion_mp";
  2555.     level.WeaponArray["All"][6] = "peacekeeper_mp";
  2556.     level.WeaponArray["All"][7] = "tar21_mp";
  2557.     level.WeaponArray["All"][8] = "type95_mp";
  2558.     level.WeaponArray["All"][9] = "sig556_mp";
  2559.     level.WeaponArray["All"][10] = "sa58_mp";
  2560.     level.WeaponArray["All"][11] = "hk416_mp";
  2561.     level.WeaponArray["All"][12] = "scar_mp";
  2562.     level.WeaponArray["All"][13] = "saritch_mp";
  2563.     level.WeaponArray["All"][14] = "xm8_mp";
  2564.     level.WeaponArray["All"][15] = "an94_mp";
  2565.     level.WeaponArray["All"][16] = "870mcs_mp";
  2566.     level.WeaponArray["All"][17] = "saiga12_mp";
  2567.     level.WeaponArray["All"][18] = "ksg_mp";
  2568.     level.WeaponArray["All"][19] = "srm1216_mp";
  2569.     level.WeaponArray["All"][20] = "mk48_mp";
  2570.     level.WeaponArray["All"][21] = "qbb95_mp";
  2571.     level.WeaponArray["All"][22] = "lsat_mp";
  2572.     level.WeaponArray["All"][23] = "hamr_mp";
  2573.     level.WeaponArray["All"][24] = "svu_mp";
  2574.     level.WeaponArray["All"][25] = "dsr50_mp";
  2575.     level.WeaponArray["All"][26] = "ballista_mp";
  2576.     level.WeaponArray["All"][27] = "as50_mp";
  2577.     level.WeaponArray["All"][28] = "fiveseven_mp";
  2578.     level.WeaponArray["All"][29] = "fnp45_mp";
  2579.     level.WeaponArray["All"][30] = "beretta93r_mp";
  2580.     level.WeaponArray["All"][31] = "judge_mp";
  2581.     level.WeaponArray["All"][32] = "kard_mp";
  2582.     level.WeaponArray["All"][33] = "smaw_mp";
  2583.     level.WeaponArray["All"][34] = "usrpg_mp";
  2584.     level.WeaponArray["All"][35] = "fhj18_mp";
  2585.     level.WeaponArray["All"][36] = "minigun_wager_mp";
  2586.     level.WeaponArray["All"][37] = "m32_wager_mp";
  2587.     level.WeaponArray["All"][38] = "riotshield_mp";
  2588.     level.WeaponArray["All"][39] = "crossbow_mp";
  2589.     level.WeaponArray["All"][40] = "knife_ballistic_mp";
  2590.     level.WeaponArray["All"][41] = "knife_held_mp";
  2591.    
  2592.     if (category == "All")
  2593.         return level.WeaponArray["All"];
  2594. }*/
  2595.  
  2596.  
  2597. /*Bunker end*/
  2598.  
  2599. /*Pet Chopper*/
  2600.  
  2601. petchopperinit()
  2602. {
  2603.        
  2604.    if(!level.chopp)
  2605.    {
  2606.         self MenuClosing();
  2607.         wait 1;
  2608.         self thread SSH();
  2609.         level.chopp = true;
  2610.     }
  2611.     else
  2612.     {
  2613.        
  2614.        
  2615.         level notify("deletechopper");
  2616.     }
  2617. }
  2618.  
  2619. SSH()
  2620. {
  2621.     level endon("game_ended");
  2622.     self endon("disconnect");
  2623.     level endon("endheli");
  2624.    
  2625.     owner = self;
  2626.     lb = spawnHelicopter(self, self.origin + (2000, 2000, 3000), self.angles, "heli_guard_mp", "veh_t6_drone_overwatch_light");    
  2627.     lb.owner = self;
  2628.     lb.team = self.team;
  2629.     wait 0.01;
  2630.     lb thread ASH(owner);
  2631.     lb thread CA(owner);//call this to end chopper after a certin time else will stop on gameend
  2632.     for (;;)
  2633.     {
  2634.         lb setYawSpeed(90, 80);
  2635.         lb SetSpeed(1000, 16);
  2636.         lb setVehGoalPos(self.origin + (51, 0, 1000), 2);
  2637.         wait 0.05;
  2638.     }
  2639. }
  2640. ASH(owner)
  2641. {
  2642.     self endon("disconnect");
  2643.     level endon("helicopter_done");
  2644.     level endon("game_ended");
  2645.  
  2646.     for (;;)
  2647.     {
  2648.         aimAt = owner maps\mp\gametypes\_battlechatter_mp::get_Closest_Player_Enemy();
  2649.         //owner iPrintln("^5 isDefined^1 " + aimAt.name);
  2650.         MagicBullet("minigun_mp",self getTagOrigin("tag_origin")-(0,0,180),aimAt getTagOrigin("j_spineupper"),owner);
  2651.         wait .15;
  2652.         MagicBullet("minigun_mp",self getTagOrigin("tag_origin")-(0,0,180),aimAt getTagOrigin("j_spineupper"),owner);
  2653.         wait .15;
  2654.         MagicBullet("minigun_mp",self getTagOrigin("tag_origin")-(0,0,180),aimAt getTagOrigin("j_spineupper"),owner);
  2655.         wait .15;
  2656.         MagicBullet("minigun_mp",self getTagOrigin("tag_origin")-(0,0,180),aimAt getTagOrigin("j_spineupper"),owner);
  2657.         wait .15;
  2658.         MagicBullet("minigun_mp",self getTagOrigin("tag_origin")-(0,0,180),aimAt getTagOrigin("j_spineupper"),owner);
  2659.         wait .15;
  2660.         MagicBullet("minigun_mp",self getTagOrigin("tag_origin")-(0,0,180),aimAt getTagOrigin("j_spineupper"),owner);
  2661.         wait .15;
  2662.         MagicBullet("minigun_mp",self getTagOrigin("tag_origin")-(0,0,180),aimAt getTagOrigin("j_spineupper"),owner);
  2663.        
  2664.         wait 0.09;
  2665.     }
  2666.     wait 0.02;
  2667. }
  2668.  
  2669. CA(owner)
  2670. {
  2671.     level endon("game_ended");
  2672.     level endon("helicopter_done");
  2673.  
  2674.    for(;;)
  2675.    {
  2676.         level waittill("deletechopper");
  2677.        
  2678.         level.chopp = false;
  2679.         owner iPrintln("^1Super Chopper Deleted!");    
  2680.         self delete();
  2681.         level notify("endheli");
  2682.         level notify("helicopter_done");
  2683.     }
  2684. }
  2685.  
  2686. /*Pet Chopper*/
  2687.  
  2688. /*suicide Lonestar*/
  2689.  
  2690. suicidelonestarinit()
  2691. {
  2692.        
  2693.    if(!level.lss)
  2694.    {
  2695.         self MenuClosing();
  2696.         wait 1;
  2697.         self thread suicidelonestar();
  2698.         level.lss = true;
  2699.     }
  2700.     else
  2701.     {
  2702.         self iprintlnbold("Stunt Plane Already Spawned!");
  2703.     }
  2704. }
  2705.  
  2706.  
  2707. suicidelonestar()
  2708. {
  2709.      level.mapCenter = maps\mp\gametypes\_spawnlogic::findBoxCenter( level.spawnMins, level.spawnMaxs );
  2710.  
  2711.     wait 1;
  2712.     iprintlnbold("Suicide Lonestar Incoming");
  2713.     wait 1.5;
  2714.    
  2715.     level thread dosuicidelonestar( self, level.mapCenter);
  2716. }
  2717.  
  2718. dosuicidelonestar(owner, start1 )
  2719. {
  2720.     level endon( "game_ended" );
  2721.     level endon( "lsdone" );
  2722.    
  2723.     start = start1  + (0,0,10000);
  2724.     end = start1;
  2725.  
  2726.     spinToEnd= Vectortoangles(end - start);
  2727.  
  2728.     ls = SpawnPlane(owner, "script_model", start );
  2729.     ls setModel("veh_t6_drone_pegasus_mp");
  2730.     ls.angles=spinToend;
  2731.     //ls playLoopSound("");//sound still didnt make my sound tester
  2732.     ls endon( "death" );
  2733.     ls thread nukeFireEffect();//need function from above
  2734.  
  2735.     ls thread SpinPlane();
  2736.  
  2737.     time = calc(4000,end,start);
  2738.     ls moveto(end,time);
  2739.     wait time - 0.05;
  2740.     ls.angles=spinToend;
  2741.    
  2742.     earthquake( 2, 2, end, 2500 );
  2743.     wait 0.5;
  2744.     level._effect["emp_flash"] = loadfx("weapon/emp/fx_emp_explosion");
  2745.     playfx(level._effect["emp_flash"], end +(0,0,1000));
  2746.     wait 0.5;
  2747.     RadiusDamage(end + (0,0,1000), 1000000, 1000000, 999999, owner);
  2748.      
  2749.     //wait 0.01;
  2750.     foreach(player in level.players)
  2751.     {
  2752.         player PlaySoundToPlayer("wpn_c4_activate_plr", player);
  2753.         player PlaySoundToPlayer("evt_helicopter_spin_start", player);
  2754.         player PlaySoundToPlayer("wpn_a10_drop_chaff", player);
  2755.         wait 0.50;
  2756.         if(isalive(player) && !player ishost())
  2757.           player suicide();
  2758.     }
  2759.       level.lss = false;
  2760.  
  2761.     ls delete();
  2762.     wait 0.5;
  2763.     ls notify("lsdone");
  2764. }
  2765.  
  2766.  
  2767. /*suicide Lonestar*/
  2768.  
  2769. overflowfix()//main function you need to fix overflow call on onplayerspawned like so above
  2770. {  
  2771.     level endon("game_ended");//stops the function when game ends
  2772.  
  2773.     self.test = self createFontString("default",1.5);
  2774.     self.test setText("^5Jwm614"); //dont remove text here or it wont work              
  2775.     self.test setPoint("CENTER","CENTER",200,190);//you can set the point to what ever u want
  2776.    
  2777.     for(;;)
  2778.     {  
  2779.         self waittill("textset");
  2780.         if(level.result >= 50)//67 actual strings just calling it early  
  2781.         {
  2782.             self.test ClearAllTextAfterHudElem();//prevents overflow
  2783.             self MenuClosing();//how ur menu closes here
  2784.             level.result = 0;//resets value to 0
  2785.         }      
  2786.         wait 0.01;    
  2787.     }
  2788. }
  2789.  
  2790. UFOMode()
  2791. {
  2792.     if(self.UFOMode == false)
  2793.     {
  2794.         self MenuClosing();
  2795.         self thread doUFOMode();
  2796.         self.UFOMode = true;
  2797.         self iPrintln("UFO Mode : ^2ON");
  2798.         self iPrintln("Press [{+smoke}] To Fly");
  2799.     }
  2800.     else
  2801.     {
  2802.         self notify("EndUFOMode");
  2803.         self.UFOMode = false;
  2804.         self iPrintln("UFO Mode : ^1OFF^7");
  2805.     }
  2806. }
  2807. doUFOMode()
  2808. {
  2809.     self endon("EndUFOMode");
  2810.     self.Fly = 0;
  2811.     UFO = spawn("script_model",self.origin);
  2812.     for(;;)
  2813.     {
  2814.         if(self secondaryoffhandbuttonpressed())
  2815.         {
  2816.             self playerLinkTo(UFO);
  2817.             self.Fly = 1;
  2818.         }
  2819.         else
  2820.         {
  2821.             self.Fly = 0;
  2822.         }
  2823.          if(self actionSlotOneButtonPressed()&&self.fly == 0)
  2824.         {
  2825.             self unlink();
  2826.             self.Fly = 0;
  2827.             self.UFo delete();
  2828.         }
  2829.         if(self.Fly == 1)
  2830.         {
  2831.             Fly = self.origin+vector_scal(anglesToForward(self getPlayerAngles()),20);
  2832.             UFO moveTo(Fly,.03);
  2833.         }
  2834.         wait .001;
  2835.     }
  2836. }
Advertisement
Add Comment
Please, Sign In to add comment