jwm614

Jwm614 Functions update

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