jwm614

Jwm614 Forge menu v2.9.1

Jan 17th, 2015
527
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 140.60 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. #include maps/mp/gametypes/_rank;
  6. #include maps/mp/gametypes/_globallogic_player;
  7. #include maps/mp/gametypes/_hud_message;
  8. #include maps/mp/killstreaks/_turret_killstreak;
  9.  
  10.  
  11. init( )
  12. {
  13.     PrecacheAll();
  14.     level.Entities = [];
  15.     level.amountOfEntities = 0;
  16.     level.clientid = 0;
  17.     level.activesky1 = 0;
  18.     level.activeElevatorCrates = 0;
  19.     level.activeMovingCrates = 0;
  20.     level.activeZiplines = 0;
  21.     level.activeDoors = 0;
  22.     level.activeMysteryBoxes = 0;
  23.     level.activeSpawnweaponCrates = 0;
  24.     level.activePerkCrateCrates = 0;
  25.     level.activeFlags = 0;
  26.     level.activePackOPunchCrates = 0;
  27.     level.activeKillStreakCrateCrates = 0;
  28.     level.turretsSpawned = 0;
  29.     level.deletetext = false;
  30.     level.platspawned = false;
  31.     level.bunker = true;
  32.     level.supplyDropModel = "t6_wpn_supply_drop_ally";
  33.     level.supplyDropModelhq = "t6_wpn_supply_drop_hq";
  34.     level.supplyDropModelAxis = "t6_wpn_supply_drop_axis";
  35.     level.supplyDropModelTrap = "t6_wpn_supply_drop_trap";
  36.     level.teleportFlagStartModel = "mp_flag_green";
  37.     level.teleportFlagEndModel = "mp_flag_red";
  38.     level.teleportFlagBothModel = "mp_flag_neutral";   
  39.     level thread onplayerconnect();
  40.     level thread deathBarrier();
  41.     level thread entityMonitor();
  42. }
  43.  
  44. PrecacheAll()
  45. {  
  46.    /* Precache Models */
  47.    self.AllMyModels = strTok("t6_wpn_supply_drop_ally;prop_suitcase_bomb;veh_t6_drone_overwatch_light;mp_flag_green;mp_flag_red;mp_flag_neutral;t6_wpn_supply_drop_trap;t6_wpn_drop_box;collision_physics_256x256x256",";");
  48.    for(i=0;i<self.AllMyModels.size;i++)
  49.    {
  50.        PrecacheModel(self.AllMyModels[i]);
  51.    }  
  52.    /* Precache Items */
  53.    self.AllMyItems = strTok("minigun_wager_mp;m32_wager_mp",";");
  54.    for(F=0;F<self.AllMyItems.size;F++)
  55.    {
  56.         PrecacheItem(self.AllMyItems[F]);
  57.    }
  58. }
  59. onplayerconnect( )
  60. {
  61.     for(;;)
  62.     {
  63.         level waittill( "connecting", player );
  64.         player thread onplayerspawned( );
  65.         player.clientid = level.clientid;
  66.         level.clientid++;
  67.         player.Verified = false;
  68.         player.VIP = false;
  69.         player.Admin = false;
  70.         player.CoHost = false;
  71.         player.MyAccess = "";
  72.     }
  73. }
  74. onplayerspawned( )
  75. {
  76.     self endon( "disconnect" );
  77.     level endon( "game_ended" );
  78.     for(;;)
  79.     {
  80.         self waittill( "spawned_player" );
  81.          
  82.         self.God=false;
  83.         if(self isHost())
  84.         {
  85.             self freezecontrols(false);
  86.             self.Verified = true;
  87.             self.VIP = true;
  88.             self.Admin = true;
  89.             self.CoHost = true;
  90.             self.MyAccess = "^1Host";
  91.             self thread welcomeMessage();
  92.             self thread BuildMenu();
  93.         }
  94.         else if ( self.CoHost == true)
  95.         {
  96.             self.Verified = true;
  97.             self.VIP = true;
  98.             self.Admin = true;
  99.             self.CoHost = true;
  100.             self.MyAccess = "^5Co-Host";
  101.             self freezecontrols(false);
  102.             self thread welcomeMessage();
  103.             self thread BuildMenu();
  104.         }
  105.         else if ( self.Admin == true)
  106.         {
  107.             self.Verified = true;
  108.             self.VIP = true;
  109.             self.Admin = true;
  110.             self.MyAccess = "^1Admin";
  111.             self freezecontrols(false);
  112.             self thread welcomeMessage();
  113.             self thread BuildMenu();
  114.         }
  115.         else if ( self.VIP == true)
  116.         {
  117.             self.Verified = true;
  118.             self.VIP = true;
  119.             self.MyAccess = "^3VIP";
  120.             self freezecontrols(false);
  121.             self thread welcomeMessage();
  122.             self thread BuildMenu();
  123.         }
  124.         else if ( self.Verified == true)
  125.         {
  126.             self.Verified = true;
  127.             self.MyAccess = "^1Verified";
  128.             self freezecontrols(false);
  129.             self thread welcomeMessage();
  130.             self thread BuildMenu();
  131.         }
  132.         else if ( self.Verified == false)
  133.         {
  134.             self.MyAccess = "";
  135.         }
  136.     }
  137. }
  138.  
  139. BuildMenu()
  140. {
  141.     self endon("disconnect");
  142.     self endon("death");
  143.     self.MenuOpen = false;
  144.     self.Menu = spawnstruct();
  145.     self InitialisingMenu();
  146.     self MenuStructure();
  147.     self thread MenuDeath();
  148.     while (1)
  149.     {
  150.         if(self meleeButtonPressed() && self adsButtonPressed() && self.MenuOpen == false)
  151.         {
  152.             self MenuOpening();
  153.             self LoadMenu("Main Menu");
  154.         }      
  155.         else if(self UseButtonPressed()  && self.MenuOpen == true)
  156.         {
  157.             if(isDefined(self.Menu.System["MenuPrevious"][self.Menu.System["MenuRoot"]]))
  158.             {
  159.                 self.Menu.System["MenuCurser"] = 0;
  160.                 self SubMenu(self.Menu.System["MenuPrevious"][self.Menu.System["MenuRoot"]]);
  161.                 wait 0.05;
  162.             }
  163.             else
  164.                 self MenuClosing();
  165.             wait 0.01;
  166.  
  167.         }
  168.         else if (self actionSlotoneButtonPressed() && self.MenuOpen == true)
  169.         {
  170.             self.Menu.System["MenuCurser"] -= 1;
  171.             if (self.Menu.System["MenuCurser"] < 0)
  172.             {
  173.                 self.Menu.System["MenuCurser"] = self.Menu.System["MenuTexte"][self.Menu.System["MenuRoot"]].size - 1;
  174.             }
  175.             self.Menu.Material["Scrollbar"] elemMoveY(.2, 60 + (self.Menu.System["MenuCurser"] * 15.6));
  176.             wait.02;
  177.         }
  178.         else if (self actionSlottwoButtonPressed() && self.MenuOpen == true)
  179.         {
  180.             self.Menu.System["MenuCurser"] += 1;
  181.             if (self.Menu.System["MenuCurser"] >= self.Menu.System["MenuTexte"][self.Menu.System["MenuRoot"]].size)
  182.             {
  183.                 self.Menu.System["MenuCurser"] = 0;
  184.             }
  185.             self.Menu.Material["Scrollbar"] elemMoveY(.2, 60 + (self.Menu.System["MenuCurser"] * 15.6));
  186.             wait.02;
  187.         }
  188.         else if(self jumpButtonPressed() && self.MenuOpen == true)
  189.         {
  190.                 //wait 0.2;
  191.                 if(self.Menu.System["MenuRoot"]=="Clients Menu") self.Menu.System["ClientIndex"]=self.Menu.System["MenuCurser"];
  192.                 self thread [[self.Menu.System["MenuFunction"][self.Menu.System["MenuRoot"]][self.Menu.System["MenuCurser"]]]](self.Menu.System["MenuInput"][self.Menu.System["MenuRoot"]][self.Menu.System["MenuCurser"]]);
  193.                 wait 0.3;
  194.         }
  195.         else if(self actionslotthreebuttonpressed() && self.MenuOpen == false) // Open.
  196.         {
  197.             self.menu.title2 FadeOverTime(0.30);
  198.             self.menu.title2.alpha = 0;
  199.             self.menu.title2 destroy();
  200.            
  201.         }
  202.         wait 0.01;
  203.     }
  204. }  
  205.  
  206. MenuStructure()
  207. {
  208.     if (self.Verified == true || self.VIP == true || self.Admin == true)
  209.     {
  210.     self MainMenu("Main Menu", undefined);
  211.     self MenuOption("Main Menu", 0, "Forge Menu", ::SubMenu, "Forge Menu");
  212.     self MenuOption("Main Menu", 2, "Perks Menu", ::SubMenu, "Perks Menu");
  213.     self MenuOption("Main Menu", 3, "Weapons Menu", ::SubMenu, "Weapons Menu");
  214.     self MenuOption("Main Menu", 4, "KillStreaks", ::SubMenu, "KillStreaks");  
  215.     self MenuOption("Main Menu", 5, "Models menu", ::SubMenu, "Models menu");  
  216.     self MenuOption("Main Menu", 6, "Map menu", ::SubMenu, "Map menu");
  217.     }
  218.     if (self.CoHost == true)
  219.     {
  220.     self MenuOption("Main Menu", 1, "Forge Menu Host", ::SubMenu, "Forge Menu Host");
  221.     self MenuOption("Main Menu", 7, "Custom Maps", ::SubMenu, "Custom Maps");
  222.     self MenuOption("Main Menu", 8, "Clients Menu", ::SubMenu, "Clients Menu");
  223.     self MenuOption("Main Menu", 9, "All Clients", ::SubMenu, "All Clients");
  224.     }
  225.    
  226.     self MainMenu("Forge Menu", "Main Menu");
  227.     self MenuOption("Forge Menu", 0, "God Mode", ::Toggle_God);
  228.     self MenuOption("Forge Menu", 1, "Ufo Mode", ::UFOMode);
  229.     self MenuOption("Forge Menu", 2, "Forge Mode", ::ForgeON);
  230.     self MenuOption("Forge Menu", 3, "Forge Ramp", ::ForgeRamp);
  231.     self MenuOption("Forge Menu", 4, "Forge Wall", ::ForgeWall);
  232.     self MenuOption("Forge Menu", 5, "Forge Grid", ::ForgeGrids);
  233.     self MenuOption("Forge Menu", 6, "Ammo", ::Ammoinit);
  234.     self MenuOption("Forge Menu", 7, "Pack-O-Punch", ::PackOPunchinit);
  235.     self MenuOption("Forge Menu", 8, "MysterBox", ::mysteryinit);
  236.     self MenuOption("Forge Menu", 9, "Elevator", ::Elevatorinit);
  237.     self MenuOption("Forge Menu", 10, "Zipline", ::Ziplineinit);
  238.     self MenuOption("Forge Menu", 11, "Door", ::Doorinit);
  239.     self MenuOption("Forge Menu", 12, "Moving Crate", ::movingcrateinit);
  240.     self MenuOption("Forge Menu", 13, "Teleport Flags", ::Flagsinit);
  241.     self MenuOption("Forge Menu", 14, "Spawn Auto Turrent", ::giveturrent);
  242.     self MenuOption("Forge Menu", 15, "Teleport", ::doTeleport);
  243.    
  244.     self MainMenu("Forge Menu Host", "Main Menu");
  245.     self MenuOption("Forge Menu Host", 0, "Force Host", ::forceHost);
  246.     self MenuOption("Forge Menu Host", 1, "Platform", ::plat);
  247.     self MenuOption("Forge Menu Host", 2, "Jwm614 Bunker", ::bunker);
  248.     self MenuOption("Forge Menu Host", 3, "Jwm614 Skybase", ::skybasetoggle);
  249.     self MenuOption("Forge Menu Host", 4, "Delete Text On Spawn", ::deletetextonspawn);
  250.     self MenuOption("Forge Menu Host", 5, "Delete All Entities", ::destroyAllEntities);
  251.    
  252.     self MainMenu("Perks Menu", "Main Menu");  
  253.     self MenuOption("Perks Menu", 0, "^1Perks Menu 1", ::submenu, "^1Perks Menu 1");
  254.     self MenuOption("Perks Menu", 1, "^2Perks Menu 2", ::submenu, "^2Perks Menu 2");   
  255.     self MenuOption("Perks Menu", 2, "^3Perks Menu 3", ::submenu, "^3Perks Menu 3");
  256.     self MenuOption("Perks Menu", 3, "^4Perks Menu 4", ::submenu, "^4Perks Menu 4");   
  257.  
  258.     self MainMenu("^1Perks Menu 1", "Perks Menu");
  259.     self MenuOption("^1Perks Menu 1", 0, "additionalprimaryweapon", ::PerkCrateinit,"specialty_additionalprimaryweapon");
  260.     self MenuOption("^1Perks Menu 1", 1, "armorpiercing", ::PerkCrateinit,"specialty_armorpiercing");
  261.     self MenuOption("^1Perks Menu 1", 2, "armorvest", ::PerkCrateinit,"specialty_armorvest");
  262.     self MenuOption("^1Perks Menu 1", 3, "bulletaccuracy", ::PerkCrateinit,"specialty_bulletaccuracy");
  263.     self MenuOption("^1Perks Menu 1", 4, "bulletdamage", ::PerkCrateinit,"specialty_bulletdamage");
  264.     self MenuOption("^1Perks Menu 1", 5, "bulletflinch", ::PerkCrateinit,"specialty_bulletflinch");
  265.     self MenuOption("^1Perks Menu 1", 6, "bulletpenetration", ::PerkCrateinit,"specialty_bulletpenetration");
  266.     self MenuOption("^1Perks Menu 1", 7, "deadshot", ::PerkCrateinit,"specialty_deadshot");
  267.     self MenuOption("^1Perks Menu 1", 8, "delayexplosive", ::PerkCrateinit,"specialty_delayexplosive");
  268.     self MenuOption("^1Perks Menu 1", 9, "detectexplosive", ::PerkCrateinit,"specialty_detectexplosive");
  269.     self MenuOption("^1Perks Menu 1", 10, "disarmexplosive", ::PerkCrateinit,"specialty_disarmexplosive");
  270.     self MenuOption("^1Perks Menu 1", 11, "explosivedamage", ::PerkCrateinit,"specialty_explosivedamage");
  271.     self MenuOption("^1Perks Menu 1", 12, "extraammo", ::PerkCrateinit,"specialty_extraammo");
  272.     self MenuOption("^1Perks Menu 1", 13, "fallheight", ::PerkCrateinit,"specialty_fallheight");
  273.     self MenuOption("^1Perks Menu 1", 14, "fastads", ::PerkCrateinit,"specialty_fastads");
  274.     self MenuOption("^1Perks Menu 1", 15, "fastequipmentuse", ::PerkCrateinit,"specialty_fastequipmentuse");
  275.     self MenuOption("^1Perks Menu 1",16, "fastladderclimb", ::PerkCrateinit,"specialty_fastladderclimb");
  276.  
  277.     self MainMenu("^2Perks Menu 2", "Perks Menu");
  278.     self MenuOption("^2Perks Menu 2", 0, "fastreload", ::PerkCrateinit,"specialty_fastreload");
  279.     self MenuOption("^2Perks Menu 2", 1, "fasttoss", ::PerkCrateinit,"specialty_fasttoss");
  280.     self MenuOption("^2Perks Menu 2", 2, "fastweaponswitch", ::PerkCrateinit,"specialty_fastweaponswitch");
  281.     self MenuOption("^2Perks Menu 2", 3, "finalstand", ::PerkCrateinit,"specialty_finalstand");
  282.     self MenuOption("^2Perks Menu 2", 4, "fireproof", ::PerkCrateinit,"specialty_fireproof");
  283.     self MenuOption("^2Perks Menu 2", 5, "flakjacket", ::PerkCrateinit,"specialty_bulletflinch");
  284.     self MenuOption("^2Perks Menu 2", 6, "flashprotection", ::PerkCrateinit,"specialty_flashprotection");
  285.     self MenuOption("^2Perks Menu 2", 7, "gpsjammer", ::PerkCrateinit,"specialty_gpsjammer");
  286.     self MenuOption("^2Perks Menu 2", 8, "grenadepulldeath", ::PerkCrateinit,"specialty_grenadepulldeath");
  287.     self MenuOption("^2Perks Menu 2", 9, "healthregen", ::PerkCrateinit,"specialty_healthregen");
  288.     self MenuOption("^2Perks Menu 2", 10, "holdbreath", ::PerkCrateinit,"specialty_holdbreath");
  289.     self MenuOption("^2Perks Menu 2", 11, "immunecounteruav", ::PerkCrateinit,"specialty_immunecounteruav");
  290.     self MenuOption("^2Perks Menu 2", 12, "immuneemp", ::PerkCrateinit,"specialty_immuneemp");
  291.     self MenuOption("^2Perks Menu 2", 13, "immunemms", ::PerkCrateinit,"specialty_immunemms");
  292.     self MenuOption("^2Perks Menu 2", 14, "immunenvthermal", ::PerkCrateinit,"specialty_immunenvthermal");
  293.     self MenuOption("^2Perks Menu 2", 15, "immunerangefinder", ::PerkCrateinit,"specialty_immunerangefinder");
  294.     self MenuOption("^2Perks Menu 2", 16, "killstreak", ::PerkCrateinit,"specialty_killstreak");
  295.     self MenuOption("^2Perks Menu 2", 17, "longersprint", ::PerkCrateinit,"specialty_longersprint");
  296.  
  297.     self MainMenu("^3Perks Menu 3", "Perks Menu");
  298.     self MenuOption("^3Perks Menu 3", 0, "loudenemies", ::PerkCrateinit,"specialty_loudenemies");
  299.     self MenuOption("^3Perks Menu 3", 1, "marksman", ::PerkCrateinit,"specialty_marksman");
  300.     self MenuOption("^3Perks Menu 3", 2, "movefaster", ::PerkCrateinit,"specialty_movefaster");
  301.     self MenuOption("^3Perks Menu 3", 3, "nomotionsensor", ::PerkCrateinit,"specialty_nomotionsensor");
  302.     self MenuOption("^3Perks Menu 3", 4, "noname", ::PerkCrateinit,"specialty_noname");
  303.     self MenuOption("^3Perks Menu 3", 5, "nottargetedbyairsupport", ::PerkCrateinit,"specialty_nottargetedbyairsupport");
  304.     self MenuOption("^3Perks Menu 3", 6, "nokillstreakreticle", ::PerkCrateinit,"specialty_nokillstreakreticle");
  305.     self MenuOption("^3Perks Menu 3", 7, "nottargettedbysentry", ::PerkCrateinit,"specialty_nottargettedbysentry");
  306.     self MenuOption("^3Perks Menu 3", 8, "pin_back", ::PerkCrateinit,"specialty_pin_back");
  307.     self MenuOption("^3Perks Menu 3", 9, "pistoldeath", ::PerkCrateinit,"specialty_pistoldeath");
  308.     self MenuOption("^3Perks Menu 3", 10, "proximityprotection", ::PerkCrateinit,"specialty_proximityprotection");
  309.     self MenuOption("^3Perks Menu 3", 11, "quickrevive", ::PerkCrateinit,"specialty_quickrevive");
  310.     self MenuOption("^3Perks Menu 3", 12, "quieter", ::PerkCrateinit,"specialty_quieter");
  311.     self MenuOption("^3Perks Menu 3", 13, "reconnaissance", ::PerkCrateinit,"specialty_reconnaissance");
  312.     self MenuOption("^3Perks Menu 3", 14, "rof", ::PerkCrateinit,"specialty_rof");
  313.     self MenuOption("^3Perks Menu 3", 15, "scavenger", ::PerkCrateinit,"specialty_scavenger");
  314.     self MenuOption("^3Perks Menu 3", 16, "showenemyequipment", ::PerkCrateinit,"specialty_showenemyequipment");
  315.     self MenuOption("^3Perks Menu 3", 17, "stunprotection", ::PerkCrateinit,"specialty_stunprotection");
  316.  
  317.     self MainMenu("^4Perks Menu 4", "Perks Menu");
  318.     self MenuOption("^4Perks Menu 4", 0, "shellshock", ::PerkCrateinit,"specialty_shellshock");
  319.     self MenuOption("^4Perks Menu 4", 1, "sprintrecovery", ::PerkCrateinit,"specialty_sprintrecovery");
  320.     self MenuOption("^4Perks Menu 4", 2, "showonradar", ::PerkCrateinit,"specialty_showonradar");
  321.     self MenuOption("^4Perks Menu 4", 3, "showonradar", ::PerkCrateinit,"specialty_showonradar");
  322.     self MenuOption("^4Perks Menu 4", 4, "stalker", ::PerkCrateinit,"specialty_stalker");
  323.     self MenuOption("^4Perks Menu 4", 5, "twogrenades", ::PerkCrateinit,"specialty_twogrenades");
  324.     self MenuOption("^4Perks Menu 4", 6, "twoprimaries", ::PerkCrateinit,"specialty_twoprimaries");
  325.     self MenuOption("^4Perks Menu 4", 7, "unlimitedsprint", ::PerkCrateinit,"specialty_unlimitedsprint");
  326.    
  327.  
  328.     self MainMenu("Weapons Menu", "Main Menu");
  329.     self MenuOption("Weapons Menu", 0, "Submachine Guns", ::SubMenu, "Submachine Guns");
  330.     self MenuOption("Weapons Menu", 1, "Assault Rifles", ::SubMenu, "Assault Rifles");
  331.     self MenuOption("Weapons Menu", 2, "^7Lightmachine Guns", ::submenu, "Lightmachine Guns");
  332.     self MenuOption("Weapons Menu", 3, "^7Shotguns", ::submenu, "Shotguns");
  333.     self MenuOption("Weapons Menu", 4, "^7Sniper Rifles", ::submenu, "Sniper Rifles");
  334.     self MenuOption("Weapons Menu", 5, "^7Pistols ", ::submenu, "Pistols");
  335.     self MenuOption("Weapons Menu", 6, "^7Launchers", ::submenu, "Launchers");
  336.     self MenuOption("Weapons Menu", 7, "^7Specials", ::submenu, "Specials");
  337.     self MenuOption("Weapons Menu", 8, "^7Super Specials", ::submenu, "Super Specials");
  338.  
  339.         self MainMenu("Submachine Guns", "Weapons Menu");
  340.         self MenuOption("Submachine Guns", 0, "MP7", ::SpawnWeaponinit, "mp7_mp");
  341.         self MenuOption("Submachine Guns", 1, "PDW-57", ::SpawnWeaponinit, "pdw57_mp");
  342.         self MenuOption("Submachine Guns", 2, "Vector-K10", ::SpawnWeaponinit, "vector_mp");
  343.         self MenuOption("Submachine Guns", 3, "MSMC", ::SpawnWeaponinit, "insas_mp", "MSMC");
  344.         self MenuOption("Submachine Guns", 4, "Chicom CQB", ::SpawnWeaponinit, "qcw05_mp");
  345.         self MenuOption("Submachine Guns", 5, "Skorpion EVO", ::SpawnWeaponinit, "evoskorpion_mp");
  346.         self MenuOption("Submachine Guns", 6, "Peacekeeper", ::SpawnWeaponinit, "peacekeeper_mp");
  347.  
  348.         self MainMenu("Assault Rifles", "Weapons Menu");
  349.         self MenuOption("Assault Rifles", 0, "MTAR", ::SpawnWeaponinit, "tar21_mp");
  350.         self MenuOption("Assault Rifles", 1, "Type 25", ::SpawnWeaponinit, "type95_mp");
  351.         self MenuOption("Assault Rifles", 2, "SWAT-556", ::SpawnWeaponinit, "sig556_mp");
  352.         self MenuOption("Assault Rifles", 3, "FAL OSW", ::SpawnWeaponinit, "sa58_mp");
  353.         self MenuOption("Assault Rifles", 4, "M27", ::SpawnWeaponinit, "hk416_mp");
  354.         self MenuOption("Assault Rifles", 5, "SCAR-H", ::SpawnWeaponinit, "scar_mp");
  355.         self MenuOption("Assault Rifles", 6, "SMR", ::SpawnWeaponinit, "saritch_mp");
  356.         self MenuOption("Assault Rifles", 7, "M8A1", ::SpawnWeaponinit, "xm8_mp");
  357.         self MenuOption("Assault Rifles", 8, "AN-94", ::SpawnWeaponinit, "an94_mp");
  358.        
  359.         self MainMenu("Lightmachine Guns", "Weapons Menu");
  360.         self MenuOption("Lightmachine Guns", 0, "MK 48", ::SpawnWeaponinit, "mk48_mp");
  361.         self MenuOption("Lightmachine Guns", 1, "QBB LSW", ::SpawnWeaponinit, "qbb95_mp");
  362.         self MenuOption("Lightmachine Guns", 2, "LSAT", ::SpawnWeaponinit, "lsat_mp");
  363.         self MenuOption("Lightmachine Guns", 3, "HAMR", ::SpawnWeaponinit, "hamr_mp");
  364.  
  365.         self MainMenu("Shotguns", "Weapons Menu");
  366.         self MenuOption("Shotguns", 0, "R870 MCS", ::SpawnWeaponinit, "870mcs_mp");
  367.         self MenuOption("Shotguns", 1, "S12", ::SpawnWeaponinit, "saiga12_mp");
  368.         self MenuOption("Shotguns", 2, "KSG", ::SpawnWeaponinit, "ksg_mp");
  369.         self MenuOption("Shotguns", 3, "M1216", ::SpawnWeaponinit, "srm1216_mp");
  370.  
  371.         self MainMenu("Sniper Rifles", "Weapons Menu");
  372.         self MenuOption("Sniper Rifles", 0, "SVU-AS", ::SpawnWeaponinit, "svu_mp");
  373.         self MenuOption("Sniper Rifles", 1, "DSR 50", ::SpawnWeaponinit, "dsr50_mp");
  374.         self MenuOption("Sniper Rifles", 2, "Ballista", ::SpawnWeaponinit, "ballista_mp");
  375.         self MenuOption("Sniper Rifles", 3, "XPR-50", ::SpawnWeaponinit, "as50_mp");
  376.  
  377.         self MainMenu("Pistols", "Weapons Menu");
  378.         self MenuOption("Pistols", 0, "Five-seven", ::SpawnWeaponinit, "fiveseven_mp");
  379.         self MenuOption("Pistols", 1, "Tac-45", ::SpawnWeaponinit, "fnp45_mp");
  380.         self MenuOption("Pistols", 2, "B23R", ::SpawnWeaponinit, "beretta93r_mp");
  381.         self MenuOption("Pistols", 3, "Executioner", ::SpawnWeaponinit, "judge_mp");
  382.         self MenuOption("Pistols", 3, "KAP-40", ::SpawnWeaponinit, "kard_mp");
  383.  
  384.         self MainMenu("Launchers", "Weapons Menu");
  385.         self MenuOption("Launchers", 0, "SMAW", ::SpawnWeaponinit, "smaw_mp");
  386.         self MenuOption("Launchers", 1, "RPG", ::SpawnWeaponinit, "usrpg_mp");
  387.  
  388.         self MainMenu("Specials", "Weapons Menu");
  389.         self MenuOption("Specials", 0, "Riot Shield", ::SpawnWeaponinit, "riotshield_mp");
  390.         self MenuOption("Specials", 1, "Ballistic Knife", ::SpawnWeaponinit, "knife_ballistic_mp");
  391.         self MenuOption("Specials", 2, "Crossbow", ::SpawnWeaponinit, "crossbow_mp");
  392.  
  393.         self MainMenu("Super Specials", "Weapons Menu");
  394.         self MenuOption("Super Specials", 0, "Grenade Launcher", ::SpawnWeaponinit, "m32_wager_mp");
  395.         self MenuOption("Super Specials", 1, "Minigun", ::SpawnWeaponinit, "minigun_wager_mp");
  396.         self MenuOption("Super Specials", 2, "Rando", ::RandomWeapon);
  397.    
  398.     self MainMenu("KillStreaks", "Main Menu");
  399.     self MenuOption("KillStreaks", 0, "Uav", ::KillStreakinit, "killstreak_spyplane");
  400.     self MenuOption("KillStreaks", 1, "RC-XD", ::KillStreakinit, "killstreak_rcbomb");
  401.     self MenuOption("KillStreaks", 2, "Hunter Killer", ::KillStreakinit, "missile_drone_mp");
  402.     self MenuOption("KillStreaks", 3, "Care Package", ::KillStreakinit ,"supplydrop_mp");
  403.     self MenuOption("KillStreaks", 4, "Counter Uav", ::KillStreakinit ,"killstreak_counteruav");
  404.     self MenuOption("KillStreaks", 5, "Gaurdian", ::KillStreakinit ,"microwaveturret_mp");
  405.     self MenuOption("KillStreaks", 6, "Hellstorm Missle", ::KillStreakinit ,"killstreak_remote_missile");
  406.     self MenuOption("KillStreaks", 7, "Lightning Strike", ::KillStreakinit ,"killstreak_planemortar");
  407.     self MenuOption("KillStreaks", 8, "Sentry Gun", ::KillStreakinit ,"autoturret_mp");
  408.     self MenuOption("KillStreaks", 9, "A.G.R", ::KillStreakinit ,"ai_tank_drop_mp ");
  409.     self MenuOption("KillStreaks", 10, "Orbital VSAT", ::KillStreakinit ,"killstreak_helicopter_comlink");
  410.     self MenuOption("KillStreaks", 11, "Escort Drone", ::KillStreakinit ,"killstreak_helicopter_guard");
  411.     self MenuOption("KillStreaks", 12, "EMP", ::KillStreakinit ,"emp_mp");
  412.     self MenuOption("KillStreaks", 13, "Warthog", ::KillStreakinit ,"killstreak_straferun");
  413.     self MenuOption("KillStreaks", 14, "Loadestar", ::KillStreakinit ,"killstreak_remote_mortar");
  414.     self MenuOption("KillStreaks", 15, "VTOL Warship", ::KillStreakinit ,"helicopter_player_gunner_mp");
  415.     self MenuOption("KillStreaks", 16, "Dogs", ::KillStreakinit ,"dogs_mp");
  416.     self MenuOption("Killstreaks", 17, "Swarm", ::KillStreakinit ,"killstreak_missile_swarm");
  417.    
  418.     self MainMenu("Models menu", "Main Menu");
  419.     self MenuOption("Models menu", 0, "t6_wpn_supply_drop_ally", ::cratetext ,"t6_wpn_supply_drop_ally");
  420.     self MenuOption("Models menu", 1, "t6_wpn_supply_drop_axis", ::cratetext ,"t6_wpn_supply_drop_axis");
  421.     self MenuOption("Models menu", 2, "t6_wpn_supply_drop_detect", ::cratetext ,"t6_wpn_supply_drop_detect");
  422.     self MenuOption("Models menu", 3, "t6_wpn_drop_box", ::cratetext ,"t6_wpn_drop_box");
  423.     self MenuOption("Models menu", 4, "collision_physics_256x256x256", ::cratetext ,"collision_physics_256x256x256");
  424.     self MenuOption("Models menu", 5, "german_shepherd_vest_black", ::cratetext ,"german_shepherd_vest_black");
  425.  
  426.     self MainMenu("Map menu", "Main Menu");
  427.     self MenuOption("Map menu", 0, "Aftermath", ::changmap, "mp_la");
  428.     self MenuOption("Map menu", 1, "Carrier", ::changmap, "mp_carrier");
  429.     self MenuOption("Map menu", 2, "Cargo", ::changmap, "mp_dockside");
  430.     self MenuOption("Map menu", 3, "Drone", ::changmap, "mp_drone");
  431.     self MenuOption("Map menu", 4, "Express", ::changmap, "mp_express");
  432.     self MenuOption("Map menu", 5, "Hijacked", ::changmap, "mp_hijacked");
  433.     self MenuOption("Map menu", 6, "Meltdown", ::changmap, "mp_meltdown");
  434.     self MenuOption("Map menu", 7, "Nuketown", ::changmap, "mp_nuketown_2020");
  435.     self MenuOption("Map menu", 8, "Overflow", ::changmap, "mp_overflow");
  436.     self MenuOption("Map menu", 9, "Plaza", ::changmap, "mp_nightclub");
  437.     self MenuOption("Map menu", 10, "Raid", ::changmap, "mp_raid");
  438.     self MenuOption("Map menu", 11, "Slums", ::changmap, "mp_slums");
  439.     self MenuOption("Map menu", 12, "Standoff", ::changmap, "mp_village");
  440.     self MenuOption("Map menu", 13, "Turbine", ::changmap, "mp_turbine");
  441.     self MenuOption("Map menu", 14, "Yemen", ::changmap, "mp_socotra");
  442.  
  443.     self MainMenu("Custom Maps", "Main Menu");
  444.     self MenuOption("Custom Maps", 0, "Aftermath", ::Aftermath);
  445.     self MenuOption("Custom Maps", 1, "Carrier", ::Carrier);
  446.     self MenuOption("Custom Maps", 2, "Cargo", ::Cargo);
  447.     self MenuOption("Custom Maps", 3, "Drone", ::Drone);
  448.     self MenuOption("Custom Maps", 4, "Express", ::Express);
  449.     self MenuOption("Custom Maps", 5, "Hijacked", ::Hijacked);
  450.     self MenuOption("Custom Maps", 6, "Meltdown", ::Meltdown);
  451.     //self MenuOption("Custom Maps", 7, "Nuketown", ::Nuketown, 0);
  452.     self MenuOption("Custom Maps", 7, "Nuketown", ::submenu, "Nuketown");  
  453.     self MenuOption("Custom Maps", 8, "Overflow", ::Overflow);
  454.     self MenuOption("Custom Maps", 9, "Plaza", ::plaza);
  455.     self MenuOption("Custom Maps", 10, "Raid", ::Raid);
  456.     self MenuOption("Custom Maps", 11, "Slums", ::Slums);
  457.     self MenuOption("Custom Maps", 12, "Standoff", ::Standoff);
  458.     self MenuOption("Custom Maps", 13, "Turbine", ::Turbine);
  459.     self MenuOption("Custom Maps", 14, "Yemen", ::Yemen);
  460.  
  461.         self MainMenu("Nuketown", "Custom Maps");
  462.         self MenuOption("Nuketown", 0, "Nuketown Edit 1", ::Nuketown, 0);
  463.         self MenuOption("Nuketown", 1, "Nuketown Edit 2", ::Nuketown, 1);
  464.    
  465.     self MainMenu("Clients Menu", "Main Menu");
  466.     for (p = 0; p < level.players.size; p++) {
  467.         player = level.players[p];
  468.         self MenuOption("Clients Menu", p, "[" + player.MyAccess + "^7] " + player.name + "", ::SubMenu, "Client Function");
  469.     }
  470.     self thread MonitorPlayers();
  471.    
  472.     self MainMenu("Client Function", "Clients Menu");
  473.     self MenuOption("Client Function", 0, "Verify Player", ::Verify);
  474.     self MenuOption("Client Function", 1, "VIP Player", ::doVIP);
  475.     self MenuOption("Client Function", 2, "Admin Player", ::doAdmin);
  476.     self MenuOption("Client Function", 3, "Co-Host Player", ::doCoHost);
  477.     self MenuOption("Client Function", 4, "Unverified Player", ::doUnverif);
  478.    
  479.     self MainMenu("All Clients", "Main Menu");
  480.     self MenuOption("All Clients", 0, "Kill All Players", ::AllPlayersKilled);
  481.     self MenuOption("All Clients", 1, "Teleport All To Me", ::AllToMe);
  482.     self MenuOption("All Clients", 2, "Send All To Space", ::sendalltospace);
  483. }
  484. MonitorPlayers()
  485. {
  486.     self endon("disconnect");
  487.     for(;;)
  488.     {
  489.         for(p = 0;p < level.players.size;p++)
  490.         {
  491.             player = level.players[p];
  492.             self.Menu.System["MenuTexte"]["Clients Menu"][p] = "[" + player.MyAccess + "^7] " + player.name;
  493.             self.Menu.System["MenuFunction"]["Clients Menu"][p] = ::SubMenu;
  494.             self.Menu.System["MenuInput"]["Clients Menu"][p] = "Client Function";
  495.             wait .01;
  496.         }
  497.         wait .5;
  498.     }
  499. }
  500. MainMenu(Menu, Return)
  501. {
  502.     self.Menu.System["GetMenu"] = Menu;
  503.     self.Menu.System["MenuCount"] = 0;
  504.     self.Menu.System["MenuPrevious"][Menu] = Return;
  505. }
  506. MenuOption(Menu, Index, Texte, Function, Input)
  507. {
  508.     self.Menu.System["MenuTexte"][Menu][Index] = Texte;
  509.     self.Menu.System["MenuFunction"][Menu][Index] = Function;
  510.     self.Menu.System["MenuInput"][Menu][Index] = Input;
  511. }
  512. SubMenu(input)
  513. {
  514.     self.Menu.System["MenuCurser"] = 0;
  515.     self.Menu.System["Texte"] fadeovertime(0.05);
  516.     self.Menu.System["Texte"].alpha = 0;
  517.     self.Menu.System["Texte"] destroy();
  518.     self.Menu.System["Title"] destroy();
  519.     self thread LoadMenu(input);
  520.     if(self.Menu.System["MenuRoot"]=="Client Function")
  521.     {
  522.     self.Menu.System["Title"] destroy();
  523.     player = level.players[self.Menu.System["ClientIndex"]];
  524.     self.Menu.System["Title"] = self createFontString("default", 2.0);
  525.     self.Menu.System["Title"] setPoint("LEFT", "TOP", 125, 30);
  526.     self.Menu.System["Title"] setText("[" + player.MyAccess + "^7] " + player.name);
  527.     self.Menu.System["Title"].sort = 3;
  528.     self.Menu.System["Title"].alpha = 1;
  529.     }
  530. }
  531. LoadMenu(menu)
  532. {
  533.     self.Menu.System["MenuCurser"] = 0;
  534.     self.Menu.System["MenuRoot"] = menu;
  535.     self.Menu.System["Title"] = self createFontString("default", 2.0);
  536.     self.Menu.System["Title"] setPoint("LEFT", "TOP", 125, 30);
  537.     self.Menu.System["Title"] setText(menu);
  538.     self.Menu.System["Title"].sort = 3;
  539.     self.Menu.System["Title"].alpha = 1;
  540.     string = "";
  541.     for(i=0;i<self.Menu.System["MenuTexte"][Menu].size;i++) string += self.Menu.System["MenuTexte"][Menu][i] + "\n";
  542.     self.Menu.System["Texte"] = self createFontString("default", 1.3);
  543.     self.Menu.System["Texte"] setPoint("LEFT", "TOP", 125, 60);
  544.     self.Menu.System["Texte"] setText(string);
  545.     self.Menu.System["Texte"].sort = 3;
  546.     self.Menu.System["Texte"].alpha = 1;
  547.     self.Menu.Material["Scrollbar"] elemMoveY(.2, 60 + (self.Menu.System["MenuCurser"] * 15.6));
  548. }
  549. drawText(text, font, fontScale, x, y, color, alpha, glowColor, glowAlpha, sort)
  550. {
  551.  
  552.         hud = self createFontString(font, fontScale);
  553.     hud setText(text);
  554.     hud.x = x;
  555.     hud.y = y;
  556.     hud.color = color;
  557.     hud.alpha = alpha;
  558.     hud.glowColor = glowColor;
  559.     hud.glowAlpha = glowAlpha;
  560.     hud.sort = sort;
  561.     hud.alpha = alpha;
  562.     return hud;
  563. }
  564. SetMaterial(align, relative, x, y, width, height, colour, shader, sort, alpha)
  565. {
  566.     hud = newClientHudElem(self);
  567.     hud.elemtype = "icon";
  568.     hud.color = colour;
  569.     hud.alpha = alpha;
  570.     hud.sort = sort;
  571.     hud.children = [];
  572.     hud setParent(level.uiParent);
  573.     hud setShader(shader, width, height);
  574.     hud setPoint(align, relative, x, y);
  575.     return hud;
  576. }
  577. MenuDeath()
  578. {
  579.     self waittill("death");
  580.     self.Menu.Material["Background"] destroy();
  581.     self.Menu.Material["Scrollbar"] destroy();
  582.     self.Menu.Material["BorderMiddle"] destroy();
  583.     self.Menu.Material["BorderLeft"] destroy();
  584.     self.Menu.Material["BorderRight"] destroy();
  585.     self MenuClosing();
  586. }
  587. InitialisingMenu()
  588. {
  589.     self.Menu.Material["Background"] = self SetMaterial("LEFT", "TOP", 120, 0, 240, 1000, (1,1,1), "black", 0, 0);
  590.     self.Menu.Material["Scrollbar"] = self SetMaterial("LEFT", "TOP", 120, 60, 240, 15, (0,1,0), "white", 1, 0);
  591.     self.Menu.Material["BorderMiddle"] = self SetMaterial("LEFT", "TOP", 120, 50, 240, 1, (0,1,0), "white", 1, 0);
  592.     self.Menu.Material["BorderLeft"] = self SetMaterial("LEFT", "TOP", 119, 0, 1, 1000, (0,1,0), "white", 1, 0);
  593.     self.Menu.Material["BorderRight"] = self SetMaterial("LEFT", "TOP", 360, 0, 1, 1000, (0,1,0), "white", 1, 0);
  594. }
  595.  
  596. MenuOpening()
  597. {
  598.    
  599.     self setclientuivisibilityflag( "hud_visible", 0 );
  600.     self.MenuOpen = true;
  601.     self.Menu.Material["Background"] elemFade(.5, 0.76);
  602.     self.Menu.Material["Scrollbar"] elemFade(.5, 0.6);
  603.     self.Menu.Material["BorderMiddle"] elemFade(.5, 0.6);
  604.     self.Menu.Material["BorderLeft"] elemFade(.5, 0.6);
  605.     self.Menu.Material["BorderRight"] elemFade(.5, 0.6);
  606. }
  607.  
  608. MenuClosing()
  609. {    
  610.     self setclientuivisibilityflag( "hud_visible", 1 );
  611.     self.Menu.Material["Background"] elemFade(.5, 0);
  612.     self.Menu.Material["Scrollbar"] elemFade(.5, 0);
  613.     self.Menu.Material["BorderMiddle"] elemFade(.5, 0);
  614.     self.Menu.Material["BorderLeft"] elemFade(.5, 0);
  615.     self.Menu.Material["BorderRight"] elemFade(.5, 0);
  616.     self.Menu.System["Title"] destroy();
  617.     self.Menu.System["Texte"] destroy();
  618.     wait 0.05;
  619.     self.MenuOpen = false;
  620. }  
  621.  
  622. elemMoveY(time, input)
  623. {
  624.     self moveOverTime(time);
  625.     self.y = input;
  626. }
  627.  
  628. elemMoveX(time, input)
  629. {
  630.     self moveOverTime(time);
  631.     self.x = input;
  632. }
  633.  
  634. elemFade(time, alpha)
  635. {
  636.     self fadeOverTime(time);
  637.     self.alpha = alpha;
  638. }
  639.  
  640. doUnverif()
  641. {
  642.     player = level.players[self.Menu.System["ClientIndex"]];
  643.     if(player isHost())
  644.     {
  645.         self iPrintln("You can't Un-Verify the Host!");
  646.     }
  647.     else
  648.     {
  649.         player.Verified = false;
  650.         player.VIP = false;
  651.         player.Admin = false;
  652.         player.CoHost = false;
  653.         player suicide();
  654.         self iPrintln( player.name + " is ^1Unverfied" );
  655.     }
  656. }
  657.  
  658. UnverifMe()
  659. {
  660.     self.Verified = false;
  661.     self.VIP = false;
  662.     self.Admin = false;
  663.     self.CoHost = false;
  664.     self suicide();
  665. }
  666.  
  667. Verify()
  668. {
  669.     player = level.players[self.Menu.System["ClientIndex"]];
  670.     if(player isHost())
  671.     {
  672.         self iPrintln("You can't Verify the Host!");
  673.     }
  674.     else
  675.     {
  676.         player UnverifMe();
  677.         player.Verified = true;
  678.         player.VIP = false;
  679.         player.Admin = false;
  680.         player.CoHost = false;
  681.         self iPrintln( player.name + " is ^1Verified" );
  682.     }
  683. }
  684. doVIP()
  685. {
  686.     player = level.players[self.Menu.System["ClientIndex"]];
  687.     if(player isHost())
  688.     {
  689.         self iPrintln("You can't Verify the Host!");
  690.     }
  691.     else
  692.     {
  693.         player UnverifMe();
  694.         player.Verified = true;
  695.         player.VIP = true;
  696.         player.Admin = false;
  697.         player.CoHost = false;
  698.         self iPrintln( player.name + " is ^3VIP" );
  699.     }
  700. }
  701. doAdmin()
  702. {
  703.     player = level.players[self.Menu.System["ClientIndex"]];
  704.     if(player isHost())
  705.     {
  706.         self iPrintln("You can't Verify the Host!");
  707.     }
  708.     else
  709.     {
  710.         player UnverifMe();
  711.         player.Verified = true;
  712.         player.VIP = true;
  713.         player.Admin = true;
  714.         player.CoHost = false;
  715.         self iPrintln( player.name + " is ^1Admin" );
  716.     }
  717. }
  718. doCoHost()
  719. {
  720.     player = level.players[self.Menu.System["ClientIndex"]];
  721.     if(player isHost())
  722.     {
  723.         self iPrintln("You can't Verify the Host!");
  724.     }
  725.     else
  726.     {
  727.         if (player.CoHost == false)
  728.         {
  729.             player UnverifMe();
  730.             player.Verified = true;
  731.             player.VIP = true;
  732.             player.Admin = true;
  733.             player.CoHost = true;
  734.             self iPrintln( player.name + " is ^5Co-Host" );
  735.         }
  736.     }
  737. }
  738.  
  739. AllPlayersKilled()
  740. {
  741.     foreach(player in level.players)
  742.     {
  743.         if(!player isHost())
  744.         {
  745.  
  746.             player suicide();
  747.         }
  748.         else
  749.         {
  750.             self iPrintlnBold("You Can Kill The Host");
  751.         }
  752.     }
  753.     self iPrintln("All Players: ^2Killed !");
  754.    
  755. }
  756.  
  757. sendalltospace()
  758. {
  759.     self iPrintln("Everyone's been sent to Space");
  760.     foreach(player in level.players)
  761.     {
  762.         if(!player isHost())
  763.         {
  764.             player setOrigin(randomIntRange(-75,75), randomIntRange(-75,75), 500000);
  765.             player setPlayerAngles(0,176,0);
  766.             player iprintlnbold("^1You Have Been Sen To Space");
  767.         }
  768.     }
  769. }
  770.  
  771. AllToMe()
  772. {
  773.     self.me=self.origin;
  774.     foreach(player in level.players)
  775.     {
  776.         if(!(player isHost()))
  777.         {
  778.             player SetOrigin(self.me);
  779.         }
  780.         else
  781.             self iPrintlnBold("You Can Telelopt The Host");
  782.     }
  783.     self iPrintln("All Players Teleported");
  784. }
  785.  
  786. teleportAllPlayers(destination)
  787. {
  788.     self beginLocationSelection( "map_mortar_selector" );
  789.     self.selectingLocation = 1;
  790.     self waittill( "confirm_location", location );
  791.     newLocation = BulletTrace( location+( 0, 0, 100000 ), location, 0, self )[ "position" ];
  792.     self endLocationSelection();
  793.     self.selectingLocation = undefined;
  794.    
  795.     foreach(player in level.players)
  796.     {
  797.         if(!player isHost() || player!=self)
  798.         {
  799.             player setOrigin(newLocation);
  800.             player iPrintLn("Teleported!");
  801.             wait 0.05;
  802.         }
  803.     }
  804. }
  805.  
  806.  
  807.  
  808. doTeleport()
  809. {
  810.    
  811.     self beginLocationSelection( "map_mortar_selector" );
  812.     self.selectingLocation = 1;
  813.     self waittill( "confirm_location", location );
  814.     newLocation = BulletTrace( location+( 0, 0, 100000 ), location, 0, self )[ "position" ];
  815.     self setOrigin( newLocation );
  816.     self endLocationSelection();
  817.     self.selectingLocation = undefined;
  818.     self iPrintLn("Teleported!");
  819. }
  820. changmap(mapn)
  821. {
  822.     self MenuClosing();
  823.     self iPrintln("Map Set: ^1" + mapn + " - ^2Restarting now...");
  824.     wait 3;
  825.     map(mapn);
  826. }
  827. ForgeON()
  828. {
  829.         if(self.forgeOn==false)
  830.         {
  831.                 self thread ForgeMode();
  832.                 self iPrintln("^7Forge Mode ^2ON ^1- ^7Hold [{+actionslot 3}] to Move Objects");
  833.                 self.forgeOn=true;
  834.                 self MenuClosing();
  835.         }
  836.         else
  837.         {
  838.                
  839.                 self notify("end_Forge");
  840.                 self iPrintln("^7Forge Mode ^1OFF");
  841.                 self.forgeOn=false;
  842.         }
  843. }
  844. cratetext(model)
  845. {
  846.     self MenuClosing();
  847.     mes("^6 Go To The start Position Of The Model ^2Press [{+attack}] To Mark");
  848.     self waittill("weapon_fired");
  849.     pos1=self.origin;
  850.     ang = self.angles;
  851.     wait .1;       
  852.     self iPrintln("^6Position Marked!");
  853.     wait 1;
  854.  
  855.     wait .1;
  856.     mes("^1SpawnModel(" + pos1 + ", " + ang + ", " + model + ");");
  857.     if(level.deletetext)
  858.         self deletetextspawn();
  859.     self iPrintln("^7Position Marked!");
  860.     self iPrintlnBold("^5Creating Model...");
  861.     wait 2;    
  862.         SpawnModel(pos1,model,model);
  863.     wait 2;    
  864.     self iPrintln("^2" + model + " Done!");
  865.  
  866. }
  867. SpawnModel(pos, ang, model)
  868. {
  869.        
  870.     CurrentCrate = spawn("script_model", pos);
  871.     CurrentCrate setmodel(model);
  872.     CurrentCrate.angles = angs;
  873.     level.Entities[level.amountOfEntities] =  CurrentCrate;
  874.             level.amountOfEntities++;
  875. }
  876. ForgeMode()
  877. {
  878.         self endon("disconnect");
  879.         self endon("end_Forge");
  880.         if(!isDefined(self.Forge)) self.Forge = false;
  881.         self.Forge = !self.Forge;
  882.         self iPrintln("Forge Mode - " + boolText(self.Forge));
  883.         if(!self.Forge) self notify("end_Forge");
  884.         else self thread MoveCrate();
  885.         while(self.Forge)
  886.     {
  887.          if(self actionslotonebuttonpressed())
  888.         {   i = 0;
  889.             self NormalisedTrace("entity") RotateTo((0,0,90 + i), 0.2);
  890.             i+= 30;
  891.         }
  892.         if(self actionslotthreebuttonpressed())
  893.         {
  894.             self SpawnCrate();
  895.             self iprintln("Spawned Crate");
  896.         }
  897.         if(self actionslottwobuttonpressed())
  898.         {
  899.             if(isdefined(self.CurrentCrate))
  900.             {
  901.                 self.CurrentCrate = undefined;
  902.                 self iprintln("Drop Crate");
  903.                 vec = anglestoforward(self getPlayerAngles());
  904.                 end = (vec[0] * 200000, vec[1] * 200000, vec[2] * 200000);
  905.                 location = BulletTrace( self gettagorigin("tag_eye"), self gettagorigin("tag_eye")+end, 0, self )[ "position" ];
  906.                     mes("^1Location: " + location + "Angle: " + self.angles);
  907.                     if(level.deletetext)
  908.                         self deletetextspawn();
  909.             }
  910.             else
  911.             {
  912.                 self.CurrentCrate = self NormalisedTrace("entity");
  913.                 self iprintln("Pickup Crate");
  914.             }
  915.         }
  916.         if(self actionslotfourbuttonpressed())
  917.         {
  918.             if(isdefined(self.CurrentCrate))
  919.             {
  920.                 self.CurrentCrate delete();
  921.                 self.CurrentCrate = undefined;
  922.             }
  923.             else
  924.             {
  925.                 self NormalisedTrace("entity") delete();
  926.             }
  927.             self iprintln("Deleted Crate");
  928.         }
  929.         wait 0.05;
  930.         }
  931. }
  932.  
  933. boolText(var)
  934. {
  935.         if(var)
  936.                 return "^2ON";
  937.         else
  938.                 return "^1OFF";
  939. }
  940.  
  941. NormalisedTrace(type)
  942. {
  943.         struct = self getS(9999);
  944.         return bullettrace(struct.start, struct.end, false, undefined)[type];
  945. }
  946. getS(scale)
  947. {
  948.         forward = anglestoforward(self getplayerangles());
  949.                 struct = spawnstruct();
  950.         struct.start = self geteye();
  951.         struct.end = struct.start + vectorScale(forward, scale);
  952.         return struct;
  953. }
  954. MoveCrate()
  955. {
  956.     self endon("disconnect");
  957.         self endon("ForgeRekt");
  958.     for(;;)
  959.     {
  960.         if(isdefined(self.CurrentCrate))
  961.         {
  962.             self.CurrentCrate.origin = self getS(100).end;
  963.             self.CurrentCrate.angles = (0, self.angles[1], self.angles[2]);
  964.         }
  965.         wait 0.05;
  966.     }
  967. }
  968.  
  969. SpawnCrate()
  970. {
  971.     self.CurrentCrate = spawn("script_model", self NormalisedTrace("position"));
  972.     self.CurrentCrate setmodel("t6_wpn_supply_drop_ally");
  973.     level.Entities[level.amountOfEntities] = self.CurrentCrate;
  974.             level.amountOfEntities++;
  975. }
  976.  
  977.  
  978.  
  979.  
  980. ThirdPerson()
  981. {
  982. if (self.TPP == true)
  983.     {
  984.         self setclientthirdperson(1);
  985.         self iPrintln("^7Third Person: ^2ON");
  986.         self.TPP = false;
  987.     }
  988.     else
  989.     {
  990.         self setclientthirdperson(0);
  991.         self iPrintln("^7Third Person: ^1OFF");
  992.         self.TPP = true;
  993.     }
  994. }
  995.  
  996. forceHost()
  997. {
  998.     if (self isHost())
  999.     {      
  1000.         setDvar("party_connectToOthers", "0");
  1001.         setDvar("partyMigrate_disabled", "1");
  1002.         setDvar("party_mergingEnabled", "0");
  1003.         setDvar("allowAllNAT", "1");
  1004.         self iPrintln("Force Host On");
  1005.     }
  1006. }
  1007. deathBarrier()
  1008. {
  1009.         ents = getEntArray();
  1010.         for ( index = 0; index < ents.size; index++ )
  1011.         {
  1012.             if(isSubStr(ents[index].classname, "trigger_hurt"))
  1013.             ents[index].origin = (0, 0, 9999999);
  1014.         }
  1015. }
  1016.  
  1017.  
  1018. skybasetoggle()
  1019. {
  1020.     if(!level.base)
  1021.     {
  1022.        
  1023.         self MenuClosing();
  1024.         self iprintlnbold("Aim At Position And Shoot To Spawn SkyBase");
  1025.         level.base = true;        
  1026.         self waittill("weapon_fired");
  1027.         self toggle();        
  1028.        
  1029.     }
  1030.     else
  1031.     {
  1032.         self iprintlnbold("SkyBase Deleted");
  1033.         self toggledelete();
  1034.         level.base = false;
  1035.     }    
  1036. }
  1037. toggle()
  1038. {
  1039.         level endon("game_ended");
  1040.         level endon("delete");
  1041.         self endon("death");
  1042.           level thread deleteonleave();
  1043.         vec = anglestoforward(self getPlayerAngles());
  1044.         center = BulletTrace( self gettagorigin("tag_eye"), self gettagorigin("tag_eye")+(vec[0] * 2000, vec[1] * 2000, vec[2] * 2000), 0, self)[ "position" ];
  1045.         level.center = spawn("script_origin", center);
  1046.         level.lift = [];
  1047.         h=0;
  1048.         k=0;
  1049.         origin = level.center.origin;
  1050.         for(i=0;i<64;i++)
  1051.         {
  1052.             if(i<=15)
  1053.                 level.lift[k] = spawn("script_model", origin+(-52,52,h));
  1054.             else if(i<=31 && i>15)
  1055.                 level.lift[k] = spawn("script_model", origin+(52,52,h-1120));
  1056.             else if(i<=47 && i>31)
  1057.                 level.lift[k] = spawn("script_model", origin+(-52,-52,h-2240));
  1058.             else if(i<=63 && i>47)
  1059.                 level.lift[k] = spawn("script_model", origin+(52,-52,h-3370));
  1060.             level.lift[i].angles = (0,0,90);
  1061.             h+=70;
  1062.             k++;
  1063.         }
  1064.         level.center moveto(level.center.origin+(0,0,15), 0.05);
  1065.         wait 0.05;
  1066.         level.elevator = [];
  1067.         level.elevator[0] = spawn("script_model", origin+(0,52,-15));
  1068.         level.elevator[0].angles = (0,90,0);
  1069.         level.elevator[1] = spawn("script_model", origin+(0,-52,-15));
  1070.         level.elevator[1].angles = (0,90,0);
  1071.         level.elevator[2] = spawn("script_model", origin+(42,0,-15));          
  1072.         level.elevator[3] = spawn("script_model", origin+(-42,0,-15));
  1073.         level.elevator[3].angles = (0,0,0);
  1074.         level.elevator[4] = spawn("script_model", origin+(0,0,-15));
  1075.         base = level.center.origin+(-110,182,1050);
  1076.         level.elevatorcontrol = [];
  1077.         level.elevatorcontrol[0] = spawn("script_model", origin+(0,-52,13.75));
  1078.         level.elevatorcontrol[0] setModel( level.supplyDropModel );  
  1079.         level.elevatorcontrol[0].angles = (0,-90,0);
  1080.         level.elevatorcontrol[0] linkto(level.center);
  1081.  
  1082.         level.elevatorcontrol[1] = spawn("script_model", origin+(0,-52,28.75));
  1083.         level.elevatorcontrol[1] setModel( "prop_suitcase_bomb" );
  1084.         level.elevatorcontrol[1].angles = (0,180,0);
  1085.         level.elevatorcontrol[1] linkto(level.center);
  1086.         level.elevatorcontrol[1].type = "control";      
  1087.  
  1088.         level.elevatorcontrol[2] = spawn("script_model", base+(-40,20,28));
  1089.         level.elevatorcontrol[2] setModel( level.supplyDropModel );
  1090.         level.elevatorcontrol[2].angles = (0,180,0);
  1091.  
  1092.         level.elevatorcontrol[3] = spawn("script_model", base+(-40,20,42));
  1093.         level.elevatorcontrol[3] setModel( "prop_suitcase_bomb" );
  1094.         level.elevatorcontrol[3].angles = (0,90,0);
  1095.         level.elevatorcontrol[3].type = "control";
  1096.  
  1097.         level.elevatorcontrol[4] = spawn("script_model", origin+(85,84,30));
  1098.         level.elevatorcontrol[4] setModel( "prop_suitcase_bomb" );
  1099.         level.elevatorcontrol[4].angles = (0,135,0);
  1100.         level.elevatorcontrol[4].type = "control";
  1101.  
  1102.         level.elevatorcontrol[5] = spawn("script_model", base+(0,224,28));
  1103.         level.elevatorcontrol[5] setModel( level.supplyDropModel );
  1104.         level.elevatorcontrol[5].angles = (0,135,0);
  1105.  
  1106.         level.elevatorcontrol[6] = spawn("script_model", base+(205,224,28));
  1107.         level.elevatorcontrol[6] setModel( level.supplyDropModel );
  1108.         level.elevatorcontrol[6].angles = (0,405,0);
  1109.  
  1110.         level.elevatorcontrol[7] = spawn("script_model", base+(100,252,28));
  1111.         level.elevatorcontrol[7] setModel( level.supplyDropModel );
  1112.         level.elevatorcontrol[7].angles = (0,90,0);
  1113.  
  1114.         level.elevatorcontrol[8] = spawn("script_model", base+(0,224,42));
  1115.         level.elevatorcontrol[8] setModel( "prop_suitcase_bomb" );
  1116.         level.elevatorcontrol[8].angles = (0,405,0);
  1117.         level.elevatorcontrol[8].type = "right";
  1118.  
  1119.         level.elevatorcontrol[9] = spawn("script_model", base+(205,224,42));
  1120.         level.elevatorcontrol[9] setModel( "prop_suitcase_bomb" );
  1121.         level.elevatorcontrol[9].angles = (0,-405,0);
  1122.         level.elevatorcontrol[9].type = "left";
  1123.  
  1124.         level.elevatorcontrol[10] = spawn("script_model", base+(100,252,42));
  1125.         level.elevatorcontrol[10] setModel( "prop_suitcase_bomb" );
  1126.         level.elevatorcontrol[10].angles = (0,0,0);
  1127.         level.elevatorcontrol[10].type = "forward";
  1128.  
  1129.         level.elevatorcontrol[11] = spawn("script_model", base+(240,20,42));
  1130.         level.elevatorcontrol[11] setModel( "prop_suitcase_bomb" );
  1131.         level.elevatorcontrol[11].angles = (0,-90,0);
  1132.         level.elevatorcontrol[11].type = "dock";
  1133.  
  1134.         level.elevatorcontrol[12] = spawn("script_model", base+(240,20,28));
  1135.         level.elevatorcontrol[12] setModel( level.supplyDropModel );
  1136.  
  1137.         level.elevatorcontrol[13] = spawn("script_model", base+(240,110,28));
  1138.         level.elevatorcontrol[13] setModel( level.supplyDropModel );
  1139.         level.elevatorcontrol[13].angles = (0,0,0);
  1140.  
  1141.         level.elevatorcontrol[14] = spawn("script_model", base+(240,110,42));
  1142.         level.elevatorcontrol[14] setModel( "prop_suitcase_bomb" );
  1143.         level.elevatorcontrol[14].angles = (0,-90,0);
  1144.         level.elevatorcontrol[14].type = "up";
  1145.  
  1146.         level.elevatorcontrol[15] = spawn("script_model", base+(-40,110,28));
  1147.         level.elevatorcontrol[15] setModel( level.supplyDropModel );
  1148.         level.elevatorcontrol[15].angles = (0,180,0);
  1149.  
  1150.         level.elevatorcontrol[16] = spawn("script_model", base+(-40,110,42));
  1151.         level.elevatorcontrol[16] setModel( "prop_suitcase_bomb" );
  1152.         level.elevatorcontrol[16].type = "down";
  1153.         level.elevatorcontrol[16].angles = (0,90,0);
  1154.  
  1155.         level.elevatorcontrol[17] = spawn("script_model", origin+(-85,84,13.75));
  1156.         level.elevatorcontrol[17] setModel( level.supplyDropModel );
  1157.         level.elevatorcontrol[17].angles = (0,-45,0);
  1158.  
  1159.         level.elevatorcontrol[18] = spawn("script_model", origin+(-85,84,28.75));
  1160.         level.elevatorcontrol[18] setModel( "prop_suitcase_bomb" );
  1161.         level.elevatorcontrol[18].angles = (0,-135,0);
  1162.         level.elevatorcontrol[18].type = "forcedock";
  1163.  
  1164.         level.elevatorcontrol[19] = spawn("script_model", base+(175,-45,28));
  1165.         level.elevatorcontrol[19] setModel( level.supplyDropModel );
  1166.         level.elevatorcontrol[19].angles = (0,-90,0);
  1167.  
  1168.         level.elevatorcontrol[20] = spawn("script_model", base+(175,-45,42));
  1169.         level.elevatorcontrol[20] setModel( "prop_suitcase_bomb" );
  1170.         level.elevatorcontrol[20].angles = (0,180,0);
  1171.         level.elevatorcontrol[20].type = "destroy";
  1172.  
  1173.         level.elevatorcontrol[21] = spawn("script_model", base+(30,-45,28));
  1174.         level.elevatorcontrol[21] setModel( level.supplyDropModel );
  1175.         level.elevatorcontrol[21].angles = (0,-90,0);
  1176.         level.elevatorcontrol[21].type = "mystery";
  1177.  
  1178.         level.elevatorcontrol[22] = spawn("script_model", origin+(85,84,13.75));
  1179.         level.elevatorcontrol[22] setModel( level.supplyDropModel );
  1180.         level.elevatorcontrol[22].angles = (0,225,0);
  1181.  
  1182.         level.center2 = spawn("script_origin", level.center.origin);
  1183.         level.center2 linkto(level.center);
  1184.         level.elevatorPlatform = [];
  1185.         level.elevatorPlatform[0] = spawn("script_model", origin+(0,-40,-15));
  1186.         level.elevatorPlatform[0].angles = (0,90,0);
  1187.         level.elevatorPlatform[1] = spawn("script_model", origin+(0,0,-15));
  1188.         level.elevatorPlatform[1].angles = (0,90,0);
  1189.         level.elevatorPlatform[2] = spawn("script_model", origin+(0,40,-15));
  1190.         level.elevatorPlatform[2].angles = (0,90,0);
  1191.         level.elevatorBase = [];
  1192.         j = 0;
  1193.         w = 0;
  1194.         for(x=0;x<4;x++)
  1195.         {
  1196.             for(i=0;i<6;i++)
  1197.             {
  1198.                 level.elevatorBase[j] = spawn("script_model", base+(i*40,w,0));
  1199.                 j++;
  1200.             }
  1201.             w+= 70;
  1202.         }
  1203.         level.BaseCenter = spawn("script_origin", base+(110,126,0));
  1204.         level.BaseCenterOrigAng = level.BaseCenter.angles;
  1205.         level.BaseCenterOrigOrigin = level.BaseCenter.origin;
  1206.         for(i=5;i<=level.elevatorcontrol.size;i++)
  1207.                 level.elevatorcontrol[i] linkto(level.BaseCenter);
  1208.         level.elevatorcontrol[17] unlink();
  1209.         level.elevatorcontrol[18] unlink();
  1210.         level.elevatorcontrol[22] unlink();
  1211.         level.elevatorcontrol[2] linkto(level.BaseCenter);
  1212.         level.elevatorcontrol[3] linkto(level.BaseCenter);
  1213.         foreach(elevatorbase in level.elevatorBase)
  1214.         {
  1215.                 elevatorbase setModel( level.supplyDropModel );  
  1216.                 elevatorbase linkto(level.BaseCenter);
  1217.         }
  1218.         foreach(platform in level.elevatorPlatform)
  1219.         {
  1220.                 platform linkto(level.center2);
  1221.                 platform setModel( level.supplyDropModel );  
  1222.  
  1223.         }
  1224.         foreach(elevator in level.elevator)
  1225.         {
  1226.                 elevator setmodel(level.supplyDropModel);
  1227.                 elevator linkto(level.center);
  1228.         }
  1229.         foreach(lift in level.lift)
  1230.         {
  1231.                 lift setmodel(level.supplyDropModel);
  1232.         }  
  1233.         level.elevatorcontrol[1] thread Sky_Player_Think1(level.activesky1);
  1234.         level.elevatorcontrol[1] thread Sky_Think1();
  1235.         level.elevatorcontrol[3] thread Sky_Player_Think1(level.activesky1);
  1236.         level.elevatorcontrol[3] thread Sky_Think1();
  1237.         level.elevatorcontrol[4] thread Sky_Player_Think1(level.activesky1);
  1238.         level.elevatorcontrol[4] thread Sky_Think1();
  1239.         level.elevatorcontrol[8] thread Sky_Player_Think1(level.activesky1);
  1240.         level.elevatorcontrol[8] thread Sky_Think1();
  1241.         level.elevatorcontrol[9] thread Sky_Player_Think1(level.activesky1);
  1242.         level.elevatorcontrol[9] thread Sky_Think1();
  1243.         level.elevatorcontrol[10] thread Sky_Player_Think1(level.activesky1);
  1244.         level.elevatorcontrol[10] thread Sky_Think1();
  1245.         level.elevatorcontrol[11] thread Sky_Player_Think1(level.activesky1);
  1246.         level.elevatorcontrol[11] thread Sky_Think1();
  1247.         level.elevatorcontrol[14] thread Sky_Player_Think1(level.activesky1);
  1248.         level.elevatorcontrol[14] thread Sky_Think1();
  1249.         level.elevatorcontrol[16] thread Sky_Player_Think1(level.activesky1);
  1250.         level.elevatorcontrol[16] thread Sky_Think1();
  1251.         level.elevatorcontrol[18] thread Sky_Player_Think1(level.activesky1);
  1252.         level.elevatorcontrol[18] thread Sky_Think1();
  1253.         level.elevatorcontrol[20] thread Sky_Player_Think1(level.activesky1);
  1254.         level.elevatorcontrol[20] thread Sky_Think1();
  1255.         level.elevatorcontrol[21] thread Sky_Think1();
  1256.         level.elevatorcontrol[21] thread MysteryBox_Think();
  1257.         level.elevatorcontrol[21] thread Sky_Player_Think1(level.activesky1);
  1258. }
  1259.  
  1260.  
  1261.  Sky_Think1()
  1262. {
  1263.     level endon("game_ended");
  1264.      level endon("delete");
  1265.      
  1266.     localskybaseNumber1 = level.activesky1;
  1267.     level.SkybaseInUse = false;
  1268.     level.EleInUse = false;
  1269.     level.activesky1++;
  1270.  
  1271.     for(;;)
  1272.     {
  1273.        
  1274.         self waittill ("triggeruse" , player, localskybaseNumber1);  
  1275.        
  1276.             if(player isHost())
  1277.             {
  1278.                 //put functions u want only host to b able too use here from below then delete the function below
  1279.                
  1280.                 if(self.type == "destroy")
  1281.                 {
  1282.                     if(player Usebuttonpressed())  
  1283.                     {  
  1284.                         self endon("endNuke");
  1285.                        
  1286.                         level.elevatorcontrol[2] setmodel(level.supplyDropModelAxis);
  1287.                         level.elevatorcontrol[19] setmodel(level.supplyDropModelAxis);
  1288.                         plane = spawn("script_model", level.center.origin+(30000,0,5000));
  1289.                         plane setmodel("veh_t6_drone_overwatch_light");
  1290.                         plane.angles = (0,-180,0);
  1291.                         plane moveto((level.center.origin[0],level.center.origin[1],1000), 5);
  1292.                         wait 5;
  1293.                         level._effect["emp_flash"] = loadfx("weapon/emp/fx_emp_explosion");
  1294.                         playfx(level._effect["emp_flash"], plane.origin);
  1295.                         self playsound("wpn_rocket_explode");
  1296.                         plane hide();
  1297.                        
  1298.                         for(i=0;i<=level.lift.size;i++)
  1299.                         {
  1300.                             level.lift[i] unlink();
  1301.                             level.lift[i] PhysicsLaunch( plane.origin, (i* 10000,0,10000) );
  1302.                         }
  1303.                         foreach(elevator in level.elevator)
  1304.                         {
  1305.                             elevator unlink();
  1306.                             elevator PhysicsLaunch( plane.origin, (-10,0,1000) );
  1307.                         }
  1308.                         foreach(platform in level.elevatorPlatform)
  1309.                         {
  1310.                             platform unlink();
  1311.                             platform PhysicsLaunch( plane.origin, (1000,1000,1000) );
  1312.                         }
  1313.                         level.elevatorcontrol[0] unlink();
  1314.                         level.elevatorcontrol[1] unlink();
  1315.                         level.elevatorcontrol[4] unlink();
  1316.                         level.elevatorcontrol[17] unlink();
  1317.                         level.elevatorcontrol[18] unlink();
  1318.                         level.elevatorcontrol[0] PhysicsLaunch( plane.origin, (1000,1000,1000) );
  1319.                         level.elevatorcontrol[1] PhysicsLaunch( plane.origin, (1000,1000,1000) );
  1320.                         level.elevatorcontrol[4] PhysicsLaunch( plane.origin, (1000,1000,1000) );
  1321.                         level.elevatorcontrol[17] PhysicsLaunch( plane.origin, (1000,1000,1000) );
  1322.                         level.elevatorcontrol[18] PhysicsLaunch( plane.origin, (1000,1000,1000) );
  1323.                         level notify("exploded");
  1324.                         plane delete();
  1325.                         self notify("endNuke");
  1326.                     }
  1327.                 }
  1328.                 if(self.type == "forcedock")
  1329.                 {
  1330.                     if(player Usebuttonpressed())  
  1331.                     {
  1332.                         level.SkybaseInUse = true;
  1333.                         speed = distance(level.BaseCenter.origin, level.BaseCenterOrigOrigin)/1000;
  1334.                         level.BaseCenter moveto(level.BaseCenterOrigOrigin, speed, speed*0.8, speed*0.2);
  1335.                         level.BaseCenter rotateto(level.BaseCenterOrigAng, 3, 2, 1);                    
  1336.                         wait 0.05;
  1337.                         level.SkybaseInUse = false;
  1338.                     }
  1339.                 }
  1340.             }
  1341.             else if(!player ishost())
  1342.                 player iprintlnbold("^1You must be host");
  1343.                     //non-host functions below
  1344.             if(self.type == "left" || self.type == "right")
  1345.             {              
  1346.                 while(player Usebuttonpressed())  
  1347.                 {  
  1348.                     if(self.type == "left")
  1349.                     {    
  1350.                         level.SkybaseInUse = true;
  1351.                         self linkplayers();                            
  1352.                         level.BaseCenter rotateyaw(-2, 0.05);
  1353.                         wait 0.05;
  1354.                         unlinkplayers();
  1355.                         player.fakelink delete();
  1356.                         level.SkybaseInUse = false;
  1357.                     }
  1358.                     else
  1359.                     {
  1360.                         level.SkybaseInUse = true;
  1361.                         self linkplayers();
  1362.                         level.BaseCenter rotateyaw(2, 0.05);
  1363.                         wait 0.05;
  1364.                         unlinkplayers();
  1365.                         player.fakelink delete();
  1366.                         level.SkybaseInUse = false;
  1367.                     }
  1368.                 }
  1369.             }
  1370.             if(self.type == "forward")
  1371.             {
  1372.                 while(player Usebuttonpressed())  
  1373.                 {
  1374.                     level.SkybaseInUse = true;
  1375.                     self linkplayers();                        
  1376.                     vec = anglestoright(level.BaseCenter.angles);
  1377.                     center = BulletTrace( level.BaseCenter.origin, level.BaseCenter.origin+(vec[0] * -100, vec[1] * -100, vec[2] * -100), 0, self)[ "position" ];
  1378.                     level.BaseCenter moveto(center, 0.05);
  1379.                     wait 0.05;
  1380.                     unlinkplayers();
  1381.                     player.fakelink delete();
  1382.                     level.SkybaseInUse = false;
  1383.                 }
  1384.             }
  1385.             if(self.type == "dock" )
  1386.             {
  1387.                 while(player Usebuttonpressed())  
  1388.                 {  
  1389.                     if(self.type == "dock")
  1390.                     {
  1391.                         level.SkybaseInUse = true;
  1392.                         self linkplayers();
  1393.                          
  1394.                         speed = distance(level.BaseCenter.origin, level.BaseCenterOrigOrigin)/1000;
  1395.                         level.BaseCenter moveto(level.BaseCenterOrigOrigin, speed, speed*0.8, speed*0.2);
  1396.                         level.BaseCenter rotateto(level.BaseCenterOrigAng, 3, 2, 1);
  1397.                         while(level.BaseCenter.origin != level.BaseCenterOrigOrigin)
  1398.                         wait 0.05;
  1399.                         wait 0.05;
  1400.                         unlinkplayers();
  1401.                         player.fakelink delete();
  1402.                         level.SkybaseInUse = false;
  1403.                                            
  1404.                     }
  1405.                              
  1406.                     wait 0.05;
  1407.                 }
  1408.             }
  1409.             if(self.type == "up" || self.type == "down")
  1410.             {
  1411.                 while(player Usebuttonpressed())  
  1412.                 {  
  1413.                     if(self.type == "up")
  1414.                     {
  1415.                         level.SkybaseInUse = true;
  1416.                         self linkplayers();
  1417.                         level.BaseCenter moveto(level.BaseCenter.origin+(0,0,10), 0.05);
  1418.                         wait 0.05;
  1419.                         unlinkplayers();
  1420.                         player.fakelink delete();
  1421.                         level.SkybaseInUse = false;
  1422.                     }
  1423.                     else
  1424.                     {
  1425.                          level.SkybaseInUse = true;
  1426.                          self linkplayers();   
  1427.                          level.BaseCenter moveto(level.BaseCenter.origin-(0,0,10), 0.05);
  1428.                          wait 0.05;
  1429.                          unlinkplayers();
  1430.                          player.fakelink delete();
  1431.                          level.SkybaseInUse = false;
  1432.                     }
  1433.                 }
  1434.             }
  1435.                
  1436.             if(self.type == "mystery")
  1437.             {
  1438.                 if (player UseButtonPressed())
  1439.                 {
  1440.                      level.SkybaseInUse = false;
  1441.                      if(!level.SkybaseInUse && !self.mysteryBoxInUse )
  1442.                     {
  1443.                         level.SkybaseInUse = true;
  1444.                         wait 0.10;
  1445.                         player.currentskybaseHint1 = "";
  1446.                         player.isUsingMysteryBox = true;
  1447.                         self.mysteryBoxInUse = true;
  1448.                         self notify("triggerMysteryBox", player, localskybaseNumber1);
  1449.                     }
  1450.                     else if(player.mysteryBoxWeaponReady[localskybaseNumber1])
  1451.                     {
  1452.                         wait 0.10;
  1453.                         self notify("tookMysteryBoxWeapon");
  1454.                         level.SkybaseInUse = false;
  1455.                     }
  1456.                     wait 0.10;
  1457.                 }    
  1458.             }
  1459.        
  1460.         if(self.type == "control")
  1461.         {
  1462.             if (player UseButtonPressed() && !level.EleInUse)
  1463.             {
  1464.                 level.EleInUse = true;
  1465.                 if(distance(level.elevatorcontrol[1].origin, player.origin) <60)
  1466.                     place = "elevator";
  1467.                 else
  1468.                     place = "";
  1469.                        
  1470.                 if(place == "elevator")
  1471.                     self eleylinkplayers();
  1472.                    
  1473.                 if(level.elevatorDirection == "up")
  1474.                 {
  1475.                        
  1476.                     level.elevatorDirection = "down";
  1477.                     level.center moveto(level.center.origin+(0,0,1050), 2, 2, 2);
  1478.                 }
  1479.                 else
  1480.                 {
  1481.                     level.center2 unlink();
  1482.                     foreach(platform in level.elevatorPlatform)
  1483.                         platform linkto(level.center2);
  1484.                     level.center2 moveto(level.center2.origin-(0,112,0), 3);
  1485.                     wait 3.1;
  1486.                     level.center2 linkto(level.center);
  1487.                     level.center moveto(level.center.origin-(0,0,1050), 2, 2, 2);
  1488.                     level.elevatorDirection = "up";
  1489.                 }
  1490.                 wait 2.5;
  1491.                    
  1492.                 if(place == "elevator")
  1493.                     unlinkplayers();
  1494.                    
  1495.                 if(level.elevatorDirection == "down")
  1496.                 {
  1497.                     level.center2 unlink();
  1498.                     foreach(platform in level.elevatorPlatform)
  1499.                        platform linkto(level.center2);
  1500.                        level.center2 moveto(level.center2.origin+(0,112,0), 3);
  1501.                        wait 3.5;
  1502.                 }  
  1503.                 level.EleInUse = false;  
  1504.             }  
  1505.         }  
  1506.        
  1507.         level.SkybaseInUse = false;
  1508.  
  1509.     }
  1510.     wait 0.05;
  1511. }
  1512.                
  1513. Sky_Player_Think1(localskybaseNumber1)
  1514. {
  1515.     level endon("game_ended");
  1516.     self endon("disconnect");
  1517.     level endon("delete");
  1518.  
  1519.    
  1520.     level.elevatorDirection = "up";
  1521.  
  1522.     for(;;)
  1523.     {
  1524.         foreach(player in level.players)
  1525.         {
  1526.             if (!isDefined(player.skyStringCreated1[localskybaseNumber1]))
  1527.             {
  1528.                 player.skybaserHintString1[localskybaseNumber1] = player drawText(player.currentskybaseHint1, "objective", 1.5, 0, -50, (1, 1, 1), 0, (0, 0, 0), 0, 8);
  1529.                 player.skybaserHintString1[localskybaseNumber1].alpha = 0;
  1530.                 player.skybaserHintString1[localskybaseNumber1].alignX = "center";
  1531.                 player.skybaserHintString1[localskybaseNumber1].alignY = "bottom";
  1532.                 player.skybaserHintString1[localskybaseNumber1].horzAlign = "center";
  1533.                 player.skybaserHintString1[localskybaseNumber1].vertAlign = "bottom";
  1534.                 player.skyStringCreated1[localskybaseNumber1] = true;
  1535.                 player.nearsky[localskybaseNumber1] = false;
  1536.             }
  1537.             if (player.nearsky[localskybaseNumber1] && !level.SkybaseInUse )
  1538.             {
  1539.                 player.skybaserHintString1[localskybaseNumber1] setText(player.currentskybaseHint1);
  1540.                 player.skybaserHintString1[localskybaseNumber1].alpha = 1;
  1541.             }
  1542.             else
  1543.                 player.skybaserHintString1[localskybaseNumber1].alpha = 0;
  1544.  
  1545.             if(Distance(self.origin, player.origin) <= 50)
  1546.             {
  1547.                  player.nearsky[localskybaseNumber1] = true;
  1548.                 if(self.type == "right")
  1549.                     player.currentskybaseHint1 = "Hold ^3[{+activate}]^7 to go left";
  1550.                 if(self.type == "left")  
  1551.                     player.currentskybaseHint1 = "Hold ^3[{+activate}]^7 to go right";
  1552.                 if(self.type == "forward")
  1553.                     player.currentskybaseHint1 = "Hold ^3[{+activate}]^7 to go forward";
  1554.                 if(self.type == "up")
  1555.                     player.currentskybaseHint1 = "Hold ^3[{+activate}]^7 to go up";
  1556.                 if(self.type == "down")
  1557.                     player.currentskybaseHint1 = "Hold ^3[{+activate}]^7 to go down";
  1558.                 if(self.type == "dock")
  1559.                     player.currentskybaseHint1 = "Press ^3[{+activate}]^7 to redock";
  1560.                 if(self.type == "forcedock")  
  1561.                     player.currentskybaseHint1 = "Press ^3[{+activate}]^7 to force redock [Host Only]";
  1562.                 if(self.type == "destroy")                    
  1563.                     player.currentskybaseHint1 = "Press ^3[{+activate}]^7 to remove access [Host Only]";
  1564.                 if(self.type == "control")
  1565.                 {
  1566.                     if(level.elevatorDirection == "up")
  1567.                         player.currentskybaseHint1 = "Press ^3[{+activate}]^7 to go up";
  1568.                     if(level.elevatorDirection == "down")                
  1569.                         player.currentskybaseHint1 = "Press ^3[{+activate}]^7 to go down";
  1570.                     if(level.EleInUse)  
  1571.                         player.currentskybaseHint1 = "";
  1572.                 }
  1573.                 if(self.type == "mystery")
  1574.                 {
  1575.                     if ( !self.mysteryBoxInUse )
  1576.                     {
  1577.                         player.currentskybaseHint1 = "Press [{+usereload}] To Use Mystery Box";
  1578.                             player.mysteryBoxWeaponReady[localskybaseNumber1] = false;  
  1579.                     }
  1580.                     else if ( self.mysteryBoxInUse &&  player.mysteryBoxWeaponReady[localskybaseNumber1] )                    
  1581.                        player.currentskybaseHint1 = "Press [{+usereload}] To Take Weapon";                    
  1582.                 }
  1583.                 /*if(level.SkybaseInUse = false;
  1584.                     player.currentskybaseHint1 = "SkyBase In Use";*/  
  1585.                 if(player UseButtonPressed() && isAlive(player))
  1586.                 {
  1587.                    self notify("triggeruse" , player, localskybaseNumber1);
  1588.                     wait 0.05;
  1589.                 }
  1590.             }
  1591.             else
  1592.                 player.nearsky[localskybaseNumber1] = false;
  1593.             wait 0.0001;
  1594.         }
  1595.         wait 0.01;
  1596.     }
  1597. }
  1598.  
  1599. mysteryinit()
  1600. {
  1601.    
  1602.     self MenuClosing();
  1603.    
  1604.      mes("^6 Go To The PositionWhere You Want The MysterBox ^2Press [{+attack}] To Mark");
  1605.     self waittill("weapon_fired");
  1606.     pos1=self.origin + (0,0,20);
  1607.     ang = self.angles;
  1608.     wait .1;       
  1609.     self iPrintln("^6Position Marked!");
  1610.     wait .1;
  1611.     mes("^1CreateMysteryBox(" + pos1 + ", " + ang + ");");
  1612.     if(level.deletetext)
  1613.         self deletetextspawn();
  1614.     self iPrintlnBold("^5Creating MysterBox...");
  1615.     wait 2;    
  1616.         CreateMysteryBox(pos1,ang);
  1617.     wait 1;    
  1618.     self iPrintln("^2MysterBox Done!");
  1619. }
  1620. CreateMysteryBox(origin, angle)
  1621. {
  1622.     mysterybox = spawnEntity("script_model", level.supplyDropModelAxis, origin, angle);
  1623.  
  1624.     level.Entities[level.amountOfEntities] = mysterybox;
  1625.     level.amountOfEntities++;
  1626.    
  1627.     mysterybox thread MysteryBox_Think();
  1628.     mysterybox thread MysteryBox_Player_Think();
  1629. }
  1630. MysteryBox_Think()
  1631. {
  1632.     level endon("game_ended");
  1633.        level endon("doneforge");
  1634.     for (;;)
  1635.     {
  1636.         self waittill("triggerMysteryBox", player, localskybaseNumber1);              
  1637.         currentWeapon = spawn("script_model", self.origin + (0,0,20));
  1638.         currentWeapon.angles = self.angles + (0, 90, 0);
  1639.         self thread MysteryBox_WeaponMover_Think(currentWeapon);
  1640.                
  1641.         self waittill("mysteryBoxWeaponMoverFinished");
  1642.         level.SkybaseInUse = false;
  1643.         self thread MysteryBox_Timeout_Think();
  1644.         player.mysteryBoxWeaponReady[localskybaseNumber1] = true;              
  1645.              
  1646.         self waittill_any("tookMysteryBoxWeapon", "mysteryBoxWeaponTimedOut");
  1647.         wait 0.50;
  1648.         if (!self.timedOut)
  1649.             player replaceWeaponWorld(self.currentWeaponReturn, "All");
  1650.             currentWeapon delete();
  1651.             player.isUsingMysteryBox = false;
  1652.             player.mysteryBoxWeaponReady[localskybaseNumber1] = false;
  1653.             self.mysteryBoxInUse = false;
  1654.             self.timedOut = false;
  1655.             level.SkybaseInUse = false;
  1656.             wait 0.01;
  1657.     }
  1658. }
  1659.  
  1660. MysteryBox_Timeout_Think()
  1661. {
  1662.     level endon("game_ended");
  1663.     level endon("doneforge");
  1664.     self endon("tookMysteryBoxWeapon");
  1665.        
  1666.     wait 12;
  1667.     self.timedOut = true;
  1668.     self notify("mysteryBoxWeaponTimedOut");
  1669. }
  1670.  
  1671. MysteryBox_WeaponMover_Think(currentWeapon)
  1672. {
  1673.     level endon("game_ended");
  1674.     level endon("doneforge");
  1675.  
  1676.     self.weaponArray = ReturnWeaponArray("All");
  1677.     currentWeapon MoveTo(currentWeapon.origin + (0, 0, 20), 10, 2, 2);
  1678.     for (i = 0; i < 30; i++)
  1679.     {
  1680.         tempRandomWeapon = self.weaponArray[randomint(self.weaponArray.size)];
  1681.         currentWeapon SetModel(GetWeaponModel(tempRandomWeapon));
  1682.         self.currentWeaponReturn = tempRandomWeapon;
  1683.         wait 0.30;
  1684.     }
  1685.     self notify("mysteryBoxWeaponMoverFinished");
  1686.     wait 3;
  1687.     currentWeapon MoveTo(self.origin, 10, 2, 2);
  1688. }
  1689.  
  1690. MysteryBox_Player_Think()
  1691. {
  1692.     level endon("game_ended");
  1693.     level endon("doneforge");
  1694.  
  1695.     localskybaseNumber1 = level.activesky1;
  1696.     level.activesky1++;
  1697.    
  1698.     for (;;)
  1699.     {
  1700.         foreach(player in level.players)
  1701.         {
  1702.             if (!isDefined(player.mysteryBoxStringCreated[localskybaseNumber1]))
  1703.             {
  1704.                 player.currentMysteryBoxHint = "Press [{+usereload}] To Use Mystery Box";
  1705.                 player.skybaserHintString1[localskybaseNumber1] = player drawText(player.currentMysteryBoxHint, "objective", 1.5, 0, -50, (1, 1, 1), 0, (0, 0, 0), 0, 8);
  1706.                 player.skybaserHintString1[localskybaseNumber1].alpha = 0;
  1707.                 player.skybaserHintString1[localskybaseNumber1].alignX = "center";
  1708.                 player.skybaserHintString1[localskybaseNumber1].alignY = "bottom";
  1709.                 player.skybaserHintString1[localskybaseNumber1].horzAlign = "center";
  1710.                 player.skybaserHintString1[localskybaseNumber1].vertAlign = "bottom";
  1711.                 player.mysteryBoxStringCreated[localskybaseNumber1] = true;
  1712.                 player.nearMysteryBox[localskybaseNumber1] = false;
  1713.                 player.mysteryBoxWeaponReady[localskybaseNumber1] = false;
  1714.                 self.mysteryBoxInUse = false;
  1715.             }
  1716.            
  1717.             if (player.nearMysteryBox[localskybaseNumber1] && !self.mysteryBoxInUse)
  1718.             {
  1719.                 player.currentMysteryBoxHint = "Press [{+usereload}] To Use Mystery Box";
  1720.                 player.skybaserHintString1[localskybaseNumber1] setText(player.currentMysteryBoxHint);
  1721.                 player.skybaserHintString1[localskybaseNumber1].alpha = 1;
  1722.             }
  1723.             else if (player.isUsingMysteryBox && player.mysteryBoxWeaponReady[localskybaseNumber1] && player.nearMysteryBox[localskybaseNumber1])
  1724.             {
  1725.                 player.skybaserHintString1[localskybaseNumber1] setText(player.currentMysteryBoxHint);
  1726.                 player.skybaserHintString1[localskybaseNumber1].alpha = 1;
  1727.             }
  1728.             else
  1729.                 player.skybaserHintString1[localskybaseNumber1].alpha = 0;
  1730.                
  1731.             if(Distance(self.origin, player.origin) <= 60 && !self.mysteryBoxInUse)
  1732.             {
  1733.                 player.nearMysteryBox[localskybaseNumber1] = true;
  1734.                 if (player UseButtonPressed())
  1735.                 {
  1736.                    
  1737.                         wait 0.10;
  1738.                         player.currentMysteryBoxHint = "";
  1739.                         player.isUsingMysteryBox = true;
  1740.                         self.mysteryBoxInUse = true;
  1741.                         self notify("triggerMysteryBox", player, localskybaseNumber1);
  1742.                    
  1743.                 }
  1744.             }
  1745.             else if(Distance(self.origin, player.origin) <= 60 && player.isUsingMysteryBox && player.mysteryBoxWeaponReady[localskybaseNumber1])
  1746.             {
  1747.                 player.nearMysteryBox[localskybaseNumber1] = true;
  1748.                 player.currentMysteryBoxHint = "Press [{+usereload}] To Take Weapon";
  1749.                 if (player UseButtonPressed())
  1750.                 {
  1751.                     wait 0.10;
  1752.                     self notify("tookMysteryBoxWeapon");
  1753.                 }
  1754.             }
  1755.             else
  1756.                 player.nearMysteryBox[localskybaseNumber1] = false;
  1757.                  wait 0.0001;
  1758.         }
  1759.         wait 0.01;
  1760.     }
  1761. }
  1762. toggledelete()
  1763. {
  1764.     foreach(elevatorbase in level.elevatorBase)
  1765.     {    
  1766.         elevatorbase delete();
  1767.     }
  1768.     foreach(platform in level.elevatorPlatform)
  1769.     {
  1770.         platform delete();  
  1771.     }
  1772.     foreach(elevator in level.elevator)
  1773.     {
  1774.         elevator delete();
  1775.     }
  1776.     foreach(lift in level.lift)
  1777.     {
  1778.         lift delete();
  1779.     }
  1780.     foreach(elevatorcontrol in level.elevatorcontrol)
  1781.     {
  1782.         elevatorcontrol delete();
  1783.     }
  1784.     foreach(player in level.players)
  1785.     {
  1786.        for (j = 0; j < level.activesky1 + 10; j++)
  1787.        {
  1788.            player.skybaserHintString1[j].alpha = 0;
  1789.        }
  1790.     }
  1791.     level.activesky1 = 0;
  1792.     level.base = false;
  1793.     level notify("delete");
  1794. }
  1795.  
  1796. linkplayers1(fakelink)
  1797. {
  1798.     foreach(player in level.players)
  1799.     {
  1800.         if(Distance(level.elevatorcontrol[10].origin, player.origin) <= 300 && isAlive(player))
  1801.             player playerlinkto(fakelink);
  1802.        
  1803.     }
  1804.  
  1805. }
  1806.  
  1807. linkplayers()
  1808. {
  1809.     foreach(player in level.players)
  1810.     {
  1811.         if(Distance(level.elevatorcontrol[10].origin, player.origin) <= 300 && isAlive(player))
  1812.         {
  1813.              player.fakelink = spawn("script_origin", player.origin);
  1814.             player playerlinkto(player.fakelink);
  1815.             player.fakelink linkto(self);
  1816.         }
  1817.        
  1818.     }
  1819.  
  1820. }
  1821. unlinkplayers()
  1822. {
  1823.     foreach(player in level.players)
  1824.         player unlink();
  1825. }
  1826. eleylinkplayers()
  1827. {
  1828.     foreach(player in level.players)
  1829.     {
  1830.         if(Distance(level.elevatorcontrol[1].origin, player.origin) <= 100 && isAlive(player))
  1831.         {
  1832.             player.fakelink = spawn("script_origin", player.origin);
  1833.             player playerlinkto(player.fakelink);
  1834.             player.fakelink linkto(self);
  1835.         }
  1836.     }
  1837.  
  1838. }
  1839. deleteonleave()
  1840. {
  1841.     for(;;)
  1842.     {
  1843.         level waittill("game_ended");
  1844.         level toggledelete();
  1845.        
  1846.     }
  1847. }
  1848.  
  1849. ReturnWeaponArray(category)
  1850. {
  1851.                
  1852.     level.WeaponArray["All"][0] = "mp7_mp";
  1853.     level.WeaponArray["All"][1] = "pdw57_mp";
  1854.     level.WeaponArray["All"][2] = "vector_mp";
  1855.     level.WeaponArray["All"][3] = "insas_mp";
  1856.     level.WeaponArray["All"][4] = "qcw05_mp";
  1857.     level.WeaponArray["All"][5] = "evoskorpion_mp";
  1858.     level.WeaponArray["All"][6] = "peacekeeper_mp";
  1859.     level.WeaponArray["All"][7] = "tar21_mp";
  1860.     level.WeaponArray["All"][8] = "type95_mp";
  1861.     level.WeaponArray["All"][9] = "sig556_mp";
  1862.     level.WeaponArray["All"][10] = "sa58_mp";
  1863.     level.WeaponArray["All"][11] = "hk416_mp";
  1864.     level.WeaponArray["All"][12] = "scar_mp";
  1865.     level.WeaponArray["All"][13] = "saritch_mp";
  1866.     level.WeaponArray["All"][14] = "xm8_mp";
  1867.     level.WeaponArray["All"][15] = "an94_mp";
  1868.     level.WeaponArray["All"][16] = "870mcs_mp";
  1869.     level.WeaponArray["All"][17] = "saiga12_mp";
  1870.     level.WeaponArray["All"][18] = "ksg_mp";
  1871.     level.WeaponArray["All"][19] = "srm1216_mp";
  1872.     level.WeaponArray["All"][20] = "mk48_mp";
  1873.     level.WeaponArray["All"][21] = "qbb95_mp";
  1874.     level.WeaponArray["All"][22] = "lsat_mp";
  1875.     level.WeaponArray["All"][23] = "hamr_mp";
  1876.     level.WeaponArray["All"][24] = "svu_mp";
  1877.     level.WeaponArray["All"][25] = "dsr50_mp";
  1878.     level.WeaponArray["All"][26] = "ballista_mp";
  1879.     level.WeaponArray["All"][27] = "as50_mp";
  1880.     level.WeaponArray["All"][28] = "fiveseven_mp";
  1881.     level.WeaponArray["All"][29] = "fnp45_mp";
  1882.     level.WeaponArray["All"][30] = "beretta93r_mp";
  1883.     level.WeaponArray["All"][31] = "judge_mp";
  1884.     level.WeaponArray["All"][32] = "kard_mp";
  1885.     level.WeaponArray["All"][33] = "smaw_mp";
  1886.     level.WeaponArray["All"][34] = "usrpg_mp";
  1887.     level.WeaponArray["All"][35] = "fhj18_mp";
  1888.     level.WeaponArray["All"][36] = "minigun_wager_mp";
  1889.     level.WeaponArray["All"][37] = "m32_wager_mp";
  1890.     level.WeaponArray["All"][38] = "riotshield_mp";
  1891.     level.WeaponArray["All"][39] = "crossbow_mp";
  1892.     level.WeaponArray["All"][40] = "knife_ballistic_mp";
  1893.     level.WeaponArray["All"][41] = "knife_held_mp";
  1894.    
  1895.     if (category == "All")
  1896.         return level.WeaponArray["All"];
  1897. }
  1898.  
  1899. isValidWeapon(WeaponRef)
  1900. {
  1901.     if (StrTok(WeaponRef, "_")[1] != "dw")
  1902.         WeaponRef = StrTok(WeaponRef, "+")[0];
  1903.     else
  1904.         WeaponRef = StrTok(WeaponRef, "_")[0] + "_mp";
  1905.         self.validReturn = WeaponRef;
  1906.         self.TempWeaponArray = ReturnWeaponArray("All");
  1907.     for (i = 0; i < self.TempWeaponArray.size; i++)
  1908.     {
  1909.         if (self.TempWeaponArray[i] == WeaponRef)
  1910.         {      
  1911.             return true;
  1912.         }
  1913.     }
  1914.     return false;
  1915. }
  1916. replaceWeaponWorld(weapon, category)
  1917. {
  1918.     self.currentWeapon = self GetCurrentWeapon();
  1919.     if (isValidWeapon(self.currentWeapon))
  1920.     {
  1921.         self.currentWeaponNew = self.validReturn;
  1922.         if (weapon != self.currentWeapon )
  1923.         {            
  1924.             self TakeWeapon(self.currentWeapon);
  1925.             self GiveWeapon(weapon,0,false);
  1926.             self setWeaponAmmoClip(weapon, weaponClipSize(weapon));
  1927.             self GiveStartAmmo(weapon);
  1928.             self SwitchToWeapon(weapon);
  1929.         }
  1930.  
  1931.     }
  1932.                
  1933. }
  1934.  
  1935. UFOMode()
  1936. {
  1937.     if(self.UFOMode == false)
  1938.     {
  1939.         self thread doUFOMode();
  1940.         self.UFOMode = true;
  1941.         self iPrintln("UFO Mode : ^2ON");
  1942.         self iPrintln("Press [{+smoke}] To Fly");
  1943.     }
  1944.     else
  1945.     {
  1946.         self notify("EndUFOMode");
  1947.         self.UFOMode = false;
  1948.         self iPrintln("UFO Mode : ^1OFF^7");
  1949.     }
  1950. }
  1951. doUFOMode()
  1952. {
  1953.     self endon("EndUFOMode");
  1954.     self.Fly = 0;
  1955.     UFO = spawn("script_model",self.origin);
  1956.     for(;;)
  1957.     {
  1958.         if(self secondaryoffhandbuttonpressed())
  1959.         {
  1960.             self playerLinkTo(UFO);
  1961.             self.Fly = 1;
  1962.         }
  1963.         else
  1964.         {
  1965.             self.Fly = 0;
  1966.         }
  1967.          if(self actionSlotOneButtonPressed()&&self.fly == 0)
  1968.         {
  1969.             self unlink();
  1970.             self.Fly = 0;
  1971.             self.UFo delete();
  1972.         }
  1973.         if(self.Fly == 1)
  1974.         {
  1975.             Fly = self.origin+vector_scal(anglesToForward(self getPlayerAngles()),20);
  1976.             UFO moveTo(Fly,.01);
  1977.         }
  1978.         wait .001;
  1979.     }
  1980. }
  1981.  
  1982. Toggle_God()
  1983. {
  1984.     if(!self.God)
  1985.     {
  1986.         self iPrintln("GodMod : ^2ON");
  1987.         self enableInvulnerability();
  1988.         self.God=true;
  1989.     }
  1990.     else
  1991.     {
  1992.         self iPrintln("GodMod : ^1OFF");
  1993.         self disableInvulnerability();
  1994.         self.God=false;
  1995.     }
  1996. }
  1997. deletetextonspawn()
  1998. {
  1999.     if(!level.deletetext)
  2000.     {
  2001.         level.deletetext = true;
  2002.         self iPrintln("Text Delete On");       
  2003.     }
  2004.     else
  2005.     {
  2006.         level.deletetext = false;
  2007.         self iPrintln("Text Delete Off");
  2008.     }
  2009. }
  2010. deletetextspawn()
  2011. {
  2012.     self.menu.title2 FadeOverTime(0.30);
  2013.     self.menu.title2.alpha = 0;
  2014.     self.menu.title2 destroy();
  2015. }
  2016. destroyAllEntities()
  2017. {
  2018.     level notify("doneforge");
  2019.     level notify("delete");
  2020.     for(i = 0; i <= level.amountOfEntities; i++)
  2021.     {
  2022.         level.Entities[i] delete();
  2023.         level.Entities[i] = undefined;
  2024.        
  2025.     }
  2026.     toggledelete();
  2027.     foreach(players in level.players)
  2028.     {
  2029.         for (j = 0; j < level.activeZiplines; j++)
  2030.        {
  2031.            player.ziplineHintString[j].alpha = 0;
  2032.            player.ziplineHintString[j] destroy();
  2033.            wait 0.01;
  2034.          
  2035.        }
  2036.        for (j = 0; j < level.activeElevatorCrates; j++)
  2037.        {
  2038.            player.ElevatorcrateHintString[j].alpha = 0;
  2039.            player.ElevatorcrateHintString[j] destroy();
  2040.            wait 0.01;
  2041.          
  2042.        }
  2043.       for (j = 0; j < level.activeMovingCrates; j++)
  2044.        {
  2045.            player.MovingcrateHintString[j].alpha = 0;
  2046.            player.MovingcrateHintString[j] destroy();
  2047.            wait 0.01;
  2048.          
  2049.        }
  2050.        for (j = 0; j < level.activeDoors; j++)
  2051.        {
  2052.            player.doorHintString[j].alpha = 0;
  2053.            player.doorHintString[j] destroy();
  2054.            wait 0.01;
  2055.        }
  2056.         for (j = 0; j < level.activeSpawnweaponCrates; j++)
  2057.        {
  2058.            player.SpawnweaponcrateHintString[j].alpha = 0;
  2059.            player.SpawnweaponcrateHintString[j] destroy();
  2060.            wait 0.01;
  2061.        }
  2062.        for (j = 0; j < level.activePerkCrateCrates; j++)
  2063.        {
  2064.            player.PerkCratecrateHintString[j].alpha = 0;
  2065.            player.PerkCratecrateHintString[j] destroy();
  2066.            wait 0.01;
  2067.        }
  2068.        for (j = 0; j < level.activeKillStreakCrateCrates; j++)
  2069.        {
  2070.            player.KillStreakCratecrateHintString[j].alpha = 0;
  2071.            player.KillStreakCratecrateHintString[j] destroy();
  2072.            wait 0.01;
  2073.        }
  2074.         for (j = 0; j < level.activePackOPunchCrates; j++)
  2075.        {
  2076.            player.PackOPunchHintString[j].alpha = 0;
  2077.            player.PackOPunchHintString[j] destroy();
  2078.            wait 0.01;
  2079.        }
  2080.  
  2081.  
  2082.        player.AmmoHintString.alpha = 0;
  2083.        player.AmmoHintString destroy();
  2084.        wait 0.05;
  2085.     }
  2086.     level.amountOfEntities = 0;
  2087.     level.activeZiplines = 0;
  2088.     level.activeElevatorCrates = 0;
  2089.     level.activeMysteryBoxes = 0;
  2090.     level.activeMovingCrates = 0;
  2091.     level.activeSpawnweaponCrates = 0;
  2092.     level.activeDoors = 0; 
  2093.     level.activePerkCrateCrates = 0;
  2094.     level.activeKillStreakCrateCrates = 0;
  2095.     level.bunker = true;
  2096.     level.mapcreated = false;
  2097.     iPrintln("All Entities ^1Deleted!");
  2098. }
  2099. entityMonitor()
  2100. {
  2101.     level endon("entitiesDeleted");
  2102.    
  2103.     for (;;)
  2104.     {
  2105.         level waittill("game_ended");
  2106.         wait 1;    
  2107.         destroyAllEntities();
  2108.         wait 0.05;
  2109.     }
  2110. }
  2111.  
  2112. mes(string11)
  2113. {
  2114.     self.menu.title2 destroy();
  2115.     self.menu.title2 = drawText(string11, "objective", 2, 0, 120, (1, 1, 1), 0, (0.8509803921568627, 0.396078431372549, 0), 3, 6);
  2116.     self.menu.title2 FadeOverTime(0.3);
  2117.     self.menu.title2.alpha = 1;
  2118.  
  2119.  
  2120. }
  2121. spawnEntity(class, model, origin, angle)
  2122. {
  2123.     entity = spawn(class, origin);
  2124.     entity.angles = angle;
  2125.     entity setModel(model);
  2126.     return entity;
  2127. }
  2128.  
  2129.  
  2130. ForgeRamp()
  2131. {
  2132.    
  2133.     self MenuClosing();
  2134.      mes("^6 Go To The start Position Of The Ramp ^2Press [{+attack}] To Mark");
  2135.     self waittill("weapon_fired");
  2136.     pos1=self.origin;
  2137.     wait .1;       
  2138.     self iPrintln("^6Position Marked!");
  2139.     wait 1;
  2140.     mes("^5Go To The End Position Of The Ramp ^2Press [{+attack}] To Mark");
  2141.     self waittill("weapon_fired");
  2142.     pos2=self.origin;
  2143.     wait .1;
  2144.     mes("^1CreateRamp(" + pos1 + ", " + pos2 + ", false);");
  2145.     if(level.deletetext)
  2146.         self deletetextspawn();
  2147.     self iPrintln("^7Position Marked!");
  2148.     self iPrintlnBold("^5Creating Ramp...");
  2149.     wait 2;    
  2150.         CreateRamp(pos1,pos2,false);
  2151.     wait 2;    
  2152.     self iPrintln("^2Ramp Done!");
  2153. }
  2154.  
  2155. CreateRamp(top, bottom, invisible)
  2156. {
  2157.     D = Distance(top, bottom);
  2158.     blocks = roundUp(D / 30);
  2159.     CX = top[0] - bottom[0];
  2160.     CY = top[1] - bottom[1];
  2161.     CZ = top[2] - bottom[2];
  2162.     XA = CX / blocks;
  2163.     YA = CY / blocks;
  2164.     ZA = CZ / blocks;
  2165.     Temp = VectorToAngles(top - bottom);
  2166.     BA =(Temp[0], Temp[1], Temp[2]);
  2167.     for(b = 0; b < blocks; b++)
  2168.     {
  2169.         block = spawnEntity("script_model", level.supplyDropModel, (bottom + ((XA, YA, ZA) * B)), BA);
  2170.         if (isDefined(invisible) && invisible)
  2171.             block hide();
  2172.         level.Entities[level.amountOfEntities] = block;
  2173.         level.amountOfEntities++;
  2174.     }
  2175.     block = spawnEntity("script_model", level.supplyDropModel, (bottom + ((XA, YA, ZA) * blocks)-(0, 0, 5)), (BA[0], BA[1], 0));
  2176.     if (isDefined(invisible) && invisible)
  2177.         block hide();
  2178.     level.Entities[level.amountOfEntities] = block;
  2179.     level.amountOfEntities++;
  2180. }
  2181.  
  2182. ForgeWall()
  2183. {  
  2184.     self MenuClosing();
  2185.    
  2186.     mes("^2Go To The Start Position Of The Wall ^2Press [{+attack}] To Mark");
  2187.     self waittill("weapon_fired");
  2188.     self.menu.title2 FadeOverTime(0.30);
  2189.     self.menu.title2.alpha = 0;
  2190.     pos1=self.origin;
  2191.     wait .1;
  2192.     self iPrintln("^2Position Marked!");
  2193.     wait 1;
  2194.     mes("^2Go To The End Position Of The Wall ^2Press [{+attack}] To Mark");
  2195.     self waittill("weapon_fired");
  2196.     self.menu.title2 FadeOverTime(0.30);
  2197.     self.menu.title2.alpha = 0;
  2198.     pos2=self.origin;
  2199.     wait 0.05;
  2200.     mes("^1CreateWall(" + pos1 + "," + pos2 + ", false);");
  2201.     if(level.deletetext)
  2202.         self deletetextspawn();
  2203.     wait .1;
  2204.     self iPrintln("^2Position Marked!");
  2205.     self iPrintlnBold("^2Creating Wall...");
  2206.     wait 2;
  2207.     CreateWall(pos1,pos2,false);
  2208.     self iPrintln("^2Wall Done!");
  2209. }
  2210. CreateWall(end, start, invisible)
  2211. {
  2212.     blockb=[];
  2213.     blockc=[];
  2214.     dh = (start[0], start[1], 0);
  2215.     hd = (end[0], end[1], 0);
  2216.     zaa = (0, 0, start[2]);
  2217.     azz = (0, 0, end[2]);
  2218.     D = Distance(dh, hd);
  2219.     H = Distance(zaa, azz);
  2220.     blocks = roundUp(D / 70);
  2221.     height = roundUp(H / 36);
  2222.     CX = start[0] - end[0];
  2223.     CY = start[1] - end[1];
  2224.     CZ = start[2] - end[2];
  2225.     XA = CX / blocks;
  2226.     YA = CY / blocks;
  2227.     ZA = CZ / height;
  2228.     Temp = VectorToAngles(end - start);
  2229.     BA = (0, Temp[1] + 90, 0);
  2230.     for(h=0; h < height; h++)
  2231.     {    
  2232.         for(i=0; i < blocks; i++)
  2233.         {
  2234.             spawnPos = (end + ((XA, YA, 0) * i) + (0, 0, 10) + ((0, 0, ZA) * h));
  2235.             block = spawnEntity("script_model", level.supplyDropModel, spawnPos, BA);
  2236.             if (isDefined(invisible) && invisible)
  2237.                 block hide();
  2238.             level.Entities[level.amountOfEntities] = block;
  2239.             level.amountOfEntities++;
  2240.         }
  2241.     }
  2242. }
  2243.  
  2244.  
  2245. ForgeGrids()
  2246. {  
  2247.    
  2248.     self MenuClosing();
  2249.     mes("^2Go To The Start Position Of Grid ^2Press [{+attack}] To Mark");
  2250.     self waittill("weapon_fired");
  2251.     self.menu.title2 FadeOverTime(0.30);
  2252.     self.menu.title2.alpha = 0;
  2253.     pos1=self.origin;
  2254.     ang = self.angels;
  2255.     wait .1;
  2256.     self iPrintln("^2Position Marked!");
  2257.     wait 1;
  2258.     mes("^2Go To The End Position Of Grid ^2Press [{+attack}] To Mark");
  2259.     self waittill("weapon_fired");
  2260.     self.menu.title2 FadeOverTime(0.30);
  2261.     self.menu.title2.alpha = 0;
  2262.     pos2=self.origin;
  2263.     wait 0.05;
  2264.     mes("^1CreateGrids(" + pos1 + ", " + pos2 + ", " + ang + ", false);");
  2265.     if(level.deletetext)
  2266.         self deletetextspawn();
  2267.     wait .1;
  2268.     self iPrintln("^2Position Marked!");
  2269.     self iPrintlnBold("^2Creating Grid...");
  2270.     wait 2;
  2271.     CreateGrid(pos1,pos2,ang,false);
  2272.     self iPrintln("^2Grid Done!");
  2273. }
  2274.  
  2275.  
  2276. CreateGrid(corner1, corner2, angle, invisible)
  2277. {
  2278.     blockfloor = [];
  2279.     W = Distance((corner1[0], 0, 0), (corner2[0], 0, 0));
  2280.     L = Distance((0, corner1[1], 0), (0,corner2[1], 0));
  2281.     H = Distance((0, 0, corner1[2]), (0, 0, corner1[2]));
  2282.     CX = corner2[0] - corner1[0];
  2283.     CY = corner2[1] - corner1[1];
  2284.     CZ = corner2[2] - corner1[2];
  2285.     ROWS = roundUp(W / 40);
  2286.     COLUMNS = roundUp(L / 70);
  2287.     HEIGHT = roundUp(H / 40);
  2288.     XA = CX / ROWS;
  2289.     YA = CY / COLUMNS;
  2290.     ZA = CZ / HEIGHT;
  2291.     center = spawn("script_model", corner1);
  2292.     for(r = 0; r <= ROWS; r++)
  2293.     {
  2294.         for(c = 0; c <= COLUMNS; c++)
  2295.         {
  2296.             for(h = 0; h <= HEIGHT; h++)
  2297.             {
  2298.                 floor = (corner1 + (XA * r, YA * c, ZA * h));
  2299.                 block = spawnEntity("script_model", level.supplyDropModel, floor, (0, 0, 0));
  2300.                 if (isDefined(invisible) && invisible)
  2301.                     block hide();
  2302.                 block LinkTo(center);
  2303.                 level.Entities[level.amountOfEntities] = block;        
  2304.                 level.amountOfEntities++;
  2305.             }
  2306.         }
  2307.     }
  2308.     center.angles = angle;
  2309. }
  2310.  
  2311.  
  2312. roundUp(floatVal)
  2313. {
  2314.     if(int(floatVal)!= floatVal)return int(floatVal+1);
  2315.     else return int(floatVal);
  2316. }
  2317. Elevatorinit()
  2318. {  
  2319.     self MenuClosing();
  2320.    
  2321.     mes("^2Go To The Start Position Of The Elevator ^2Press [{+attack}] To Mark");
  2322.     self waittill("weapon_fired");
  2323.     self.menu.title2 FadeOverTime(0.30);
  2324.     self.menu.title2.alpha = 0;
  2325.     pos1=self.origin;
  2326.     wait .1;
  2327.     self iPrintln("^2Position Marked!");
  2328.     wait 1;
  2329.     mes("^2Go To The End Position Of The Elevator ^2Press [{+attack}] To Mark");
  2330.     self waittill("weapon_fired");
  2331.     self.menu.title2 FadeOverTime(0.30);
  2332.     self.menu.title2.alpha = 0;
  2333.     pos2=self.origin;
  2334.     mes("^1ElevatorCrate(" + pos1 + "," + pos2 + ",1);");  
  2335.     if(level.deletetext)
  2336.         self deletetextspawn();
  2337.     wait 0.05;
  2338.     self iPrintln("^2Position Marked!");
  2339.     self iPrintlnBold("^2Creating Elevator ...");
  2340.     wait 2;
  2341.     ElevatorCrate(pos1,pos2,1);
  2342.     self iPrintln("^2Elevator Done!");
  2343. }
  2344.  
  2345. ElevatorCrate(start, end, time)
  2346. {
  2347.     TempAngles = VectorToAngles(end - start);
  2348.     Angles = (0, TempAngles[1], 0);
  2349.     end1 = (start[0], start[1], end[2]);
  2350.  
  2351.     ElevatorcrateStart = spawnEntity("script_model", "t6_wpn_supply_drop_ally", start, Angles);
  2352.  
  2353.     level.Entities[level.amountOfEntities] = ElevatorcrateStart;
  2354.         level.amountOfEntities++;  
  2355.    
  2356.     level thread Elevatorcrate_Think(ElevatorcrateStart, start, end1, time);
  2357. }
  2358.  
  2359. Elevatorcrate_Think(ElevatorcrateStart, start, ElevatorcrateEnd, time)
  2360. {
  2361.     level endon("game_ended");
  2362.     level endon("doneforge");
  2363.  
  2364.     localElavetaorNumber = level.activeElevatorCrates;
  2365.     level.activeElevatorCrates++;
  2366.     level.Elevaorder = "Up";
  2367.    
  2368.     for(;;)
  2369.     {
  2370.         foreach(player in level.players)
  2371.         {
  2372.             if (player.nearElevator[localElavetaorNumber] && !player.usingElevator[localElavetaorNumber])
  2373.             {
  2374.                 if (!isDefined(player.ElevatorStringCreated[localElavetaorNumber]))
  2375.                 {
  2376.                     player.ElevatorcrateHintString[localElavetaorNumber] = player drawText(player.currenthint[localElavetaorNumber]  , "objective", 1.5, 0, -50, (1, 1, 1), 1, (0, 0, 0), 0, 8);
  2377.                     player.ElevatorcrateHintString[localElavetaorNumber].alignX = "center";
  2378.                     player.ElevatorcrateHintString[localElavetaorNumber].alignY = "bottom";
  2379.                     player.ElevatorcrateHintString[localElavetaorNumber].horzAlign = "center";
  2380.                     player.ElevatorcrateHintString[localElavetaorNumber].vertAlign = "bottom";
  2381.                     player.usingElevator[localElavetaorNumber] = false;
  2382.                     player.ElevatorStringCreated[localElavetaorNumber] = true;
  2383.                 }
  2384.                 else
  2385.                     player.ElevatorcrateHintString[localElavetaorNumber].alpha = 1;
  2386.                     player.ElevatorcrateHintString[localElavetaorNumber] setText(player.currenthint[localElavetaorNumber]);
  2387.             }
  2388.             else
  2389.                 player.ElevatorcrateHintString[localElavetaorNumber].alpha = 0;
  2390.                
  2391.             if(Distance(player.origin, start) < 60 && ElevatorcrateStart.origin == start && !player.usingElevator[localElavetaorNumber])
  2392.             {
  2393.                
  2394.                 player.currenthint[localElavetaorNumber] =  "Press [{+usereload}] To Go " + level.Elevaorder;
  2395.                 player.nearElevator[localElavetaorNumber] = true;
  2396.                 if(player usebuttonpressed())
  2397.                 {
  2398.                     player.usingElevator[localElavetaorNumber] = true;
  2399.                     player Elevator_Player_Think(player, ElevatorcrateStart, localElavetaorNumber, ElevatorcrateEnd, time);
  2400.                      level.Elevaorder = "Down";
  2401.                      wait 0.01;
  2402.                 }
  2403.             }          
  2404.             else if(Distance(player.origin, ElevatorcrateEnd) < 60 && ElevatorcrateStart.origin == ElevatorcrateEnd && !player.usingElevator[localElavetaorNumber])
  2405.             {
  2406.                
  2407.                 player.currenthint[localElavetaorNumber] =  "Press [{+usereload}] To Go " + level.Elevaorder;
  2408.                 player.nearElevator[localElavetaorNumber] = true;
  2409.                 if(player usebuttonpressed())
  2410.                 {
  2411.                     player.usingElevator[localElavetaorNumber] = true;
  2412.                     player Elevator_Player_Think(player, ElevatorcrateStart, localElavetaorNumber,  start, time);
  2413.                     level.Elevaorder = "Up";
  2414.                 }
  2415.             }
  2416.             else if(Distance(player.origin, ElevatorcrateEnd) < 100 && level.Elevaorder == "Up" && !player.usingElevator[localElavetaorNumber])
  2417.             {
  2418.                 player.currenthint[localElavetaorNumber] =  "Press [{+usereload}] To Call Elevator";
  2419.                 player.nearElevator[localElavetaorNumber] = true;
  2420.                 if(player usebuttonpressed())
  2421.                 {
  2422.                     level.Elevaorder = "Down";
  2423.                     player.usingElevator[localElavetaorNumber] = true;
  2424.                     ElevatorcrateStart moveTo(ElevatorcrateEnd,time);
  2425.                     wait time;  
  2426.                     player.usingElevator[localElavetaorNumber] = false;
  2427.                 }
  2428.             }
  2429.             else if(Distance(player.origin, start) < 100 && level.Elevaorder == "Down" && !player.usingElevator[localElavetaorNumber])
  2430.             {
  2431.                 player.currenthint[localElavetaorNumber] =  "Press [{+usereload}] To Call Elevator";
  2432.                 player.nearElevator[localElavetaorNumber] = true;
  2433.                 if(player usebuttonpressed())
  2434.                 {
  2435.                      level.Elevaorder = "Up";
  2436.                     player.usingElevator[localElavetaorNumber] = true;
  2437.                     ElevatorcrateStart moveTo(start,time);
  2438.                     wait time;
  2439.                     player.usingElevator[localElavetaorNumber] = false;
  2440.                 }
  2441.             }
  2442.             else               
  2443.             player.nearElevator[localElavetaorNumber] = false;
  2444.          
  2445.         }
  2446.         wait 0.0001;
  2447.     }
  2448.     wait 0.01;
  2449. }
  2450.    
  2451. Elevator_Player_Think(player, MovingStart, MovingNumber, start, time)
  2452. {
  2453.     player.usingElevator[MovingNumber] = true;
  2454.    
  2455.                    
  2456.         player playerLinkTo(MovingStart);  
  2457.         MovingStart moveTo(start,time);
  2458.         wait time + 0.03;            
  2459.         player unlink();
  2460.        
  2461.     player.usingElevator[MovingNumber] = false;
  2462. }
  2463.  
  2464.  
  2465. PackOPunchinit()
  2466. {
  2467.    
  2468.     self MenuClosing();
  2469.    
  2470.     mes("^2Go To The Start Position Of Pack-O-Punch ^2Press [{+attack}] To Mark");
  2471.     self waittill("weapon_fired");
  2472.     self.menu.title2 FadeOverTime(0.30);
  2473.     self.menu.title2.alpha = 0;
  2474.     pos1=self.origin + (0,0,20);
  2475.     angle = self.angles;           
  2476.     mes("^1PackOPunchCrate(" + pos1 + "," + angle + ");");
  2477.     if(level.deletetext)
  2478.         self deletetextspawn();
  2479.     wait .1;
  2480.     self iPrintln("^2Position Marked!");
  2481.     self iPrintlnBold("^2Creating Pack-O-Punch...");
  2482.     wait 2;
  2483.     PackOPunchCrate(pos1,angle);
  2484.     self iPrintln("^2Pack-O-Punch Done!");
  2485. }
  2486.  
  2487. PackOPunchCrate(origin,ang)
  2488. {
  2489.     PackOPunchorigin = spawnEntity("script_model", level.supplyDropModel, origin, ang);
  2490.  
  2491.     level.Entities[level.amountOfEntities] = PackOPunchorigin;
  2492.         level.amountOfEntities++;  
  2493.        
  2494.     level thread PackOPunch_Think(PackOPunchorigin);
  2495. }
  2496.  
  2497. PackOPunch_Think(PackOPunchorigin)
  2498. {
  2499.     level endon("game_ended");
  2500.     level endon("doneforge");
  2501.         locaclPackOPunchnumber = level.activePackOPunchCrates;
  2502.     level.activePackOPunchCrates++;
  2503.     for(;;)
  2504.     {
  2505.         foreach(player in level.players)
  2506.         {
  2507.             if (player.nearPackOPunch[locaclPackOPunchnumber] && !player.usingPackOPunch[locaclPackOPunchnumber])
  2508.             {
  2509.                 if (!isDefined(player.PackOPunchStringCreated[locaclPackOPunchnumber]))
  2510.                 {
  2511.                     player.PackOPunchHintString[locaclPackOPunchnumber] = player drawText("Press [{+usereload}] To PackOPunch Your Weapon", "objective", 1.5, 0, -50, (1, 1, 1), 1, (0, 0, 0), 0, 8);
  2512.                     player.PackOPunchHintString[locaclPackOPunchnumber].alignX = "center";
  2513.                     player.PackOPunchHintString[locaclPackOPunchnumber].alignY = "bottom";
  2514.                     player.PackOPunchHintString[locaclPackOPunchnumber].horzAlign = "center";
  2515.                     player.PackOPunchHintString[locaclPackOPunchnumber].vertAlign = "bottom";
  2516.                     player.usingPackOPunch[locaclPackOPunchnumber] = false;
  2517.                     player.PackOPunchStringCreated[locaclPackOPunchnumber] = true;
  2518.                 }
  2519.                 else
  2520.                     player.PackOPunchHintString[locaclPackOPunchnumber].alpha = 1;
  2521.             }
  2522.             else
  2523.                 player.PackOPunchHintString[locaclPackOPunchnumber].alpha = 0;             
  2524.            
  2525.                 if(Distance(player.origin, PackOPunchorigin.origin) < 60 && !player.usingPackOPunch[locaclPackOPunchnumber])
  2526.                 {
  2527.                     player.nearPackOPunch[locaclPackOPunchnumber] = true;
  2528.                    
  2529.                     if (player UseButtonPressed())
  2530.                         player PackOPunch_Player_Think(player, locaclPackOPunchnumber);
  2531.                 }
  2532.                 else
  2533.                     player.nearPackOPunch[locaclPackOPunchnumber] = false;
  2534.            
  2535.            
  2536.         }
  2537.          wait 0.0001;
  2538.     }
  2539.      wait 0.01;
  2540. }
  2541.  
  2542.  
  2543. PackOPunch_Player_Think(player, locaclPackOPunchnumber)
  2544. {
  2545.     player.usingPackOPunch[locaclPackOPunchnumber] = true;
  2546.     player.PackOPunchHintString[locaclPackOPunchnumber].alpha = 0;
  2547.      weap = player getCurrentWeapon();
  2548.     if( player.upw[weap] == 0 )
  2549.     {
  2550.        
  2551.         player takeWeapon(player getCurrentWeapon());
  2552.         player iPrintln("^5Packing That Shit Hold Up");
  2553.         wait 4;
  2554.         player iPrintln("^5Done! Now Fuck Shit Up");
  2555.         player.upw[weap] = 1;
  2556.         player giveWeapon( weap, 0, false );
  2557.         player SwitchToWeapon(weap);
  2558.         player thread ebbullets( weap );
  2559.     }
  2560.     else
  2561.     {
  2562.         player iPrintlnBold("^5You've Already Upgraded This Weapon!");
  2563.         wait 1;
  2564.     }
  2565.     wait 2;
  2566.                  
  2567.     player.usingPackOPunch[locaclPackOPunchnumber] = false;
  2568.     player thread reseetpack();
  2569. }
  2570.  
  2571. ebbullets(eb)
  2572. {
  2573.     level endon("game_ended"); 
  2574.     level endon("doneforge");
  2575.     self endon("death");
  2576.     for(;;)
  2577.     {
  2578.         self waittill ( "weapon_fired" );
  2579.         weap = self getCurrentWeapon();
  2580.         if( weap == eb )
  2581.         {
  2582.             forward = self getTagOrigin("j_head");
  2583.             end = self thread vector_Scal(anglestoforward(self getPlayerAngles()),1000000);
  2584.             SPLOSIONlocation = BulletTrace( forward, end, 0, self )[ "position" ];
  2585.             level._effect[ "rcbombexplosion" ] = loadfx( "maps/mp_maps/fx_mp_exp_rc_bomb" );
  2586.             playfx(level._effect[ "rcbombexplosion" ], SPLOSIONlocation);
  2587.             RadiusDamage( SPLOSIONlocation, 200, 200, 100, self );
  2588.         }
  2589.     }
  2590. }
  2591. vector_scal(vec, scale)
  2592. {
  2593.     vec = (vec[0] * scale, vec[1] * scale, vec[2] * scale);
  2594.     return vec;
  2595. }
  2596. reseetpack()
  2597. {
  2598.     level endon("game_ended");
  2599.     level endon("doneforge");
  2600.     self endon("donepack");
  2601.     for(;;)
  2602.     {
  2603.         self waittill("death");
  2604.         TempWeaponArray = ReturnWeaponArray("All");
  2605.         for (i = 0; i < TempWeaponArray.size; i++)
  2606.         {
  2607.             weaponarray = TempWeaponArray[i];
  2608.             self.upw[weaponarray] = 0;
  2609.         }
  2610.  
  2611.     }
  2612.     self notify("donepack");
  2613.     wait 0.05;
  2614. }
  2615. Ammoinit()
  2616. {
  2617.    
  2618.     self MenuClosing();
  2619.    
  2620.     mes("^2Go To The Start Position Of Ammo Crate ^2Press [{+attack}] To Mark");
  2621.     self waittill("weapon_fired");
  2622.     self.menu.title2 FadeOverTime(0.30);
  2623.     self.menu.title2.alpha = 0;
  2624.     pos1=self.origin + (0,0,20);
  2625.     angle = self.angles;
  2626.     mes("^1AmmoCrate(" + pos1 + "," + angle + ");");
  2627.     if(level.deletetext)
  2628.         self deletetextspawn();
  2629.     wait .1;
  2630.     self iPrintln("^2Position Marked!");
  2631.     self iPrintlnBold("^2Creating Ammo Crate...");
  2632.     wait 2;
  2633.     AmmoCrate(pos1,angle);
  2634.     self iPrintln("^2Ammo Crate Done!");
  2635. }
  2636. AmmoCrate(origin,ang)
  2637. {
  2638.         Ammoorigin = spawnEntity("script_model", level.supplyDropModel, origin, ang);
  2639.    
  2640.     level.Entities[level.amountOfEntities] = Ammoorigin;
  2641.     level.amountOfEntities++;  
  2642.    
  2643.    
  2644.     level thread Ammo_Think(Ammoorigin);
  2645. }
  2646.  
  2647. Ammo_Think(Ammoorigin)
  2648. {
  2649.     level endon("game_ended");
  2650.     level endon("doneforge");
  2651.        
  2652.     for(;;)
  2653.     {
  2654.         foreach(player in level.players)
  2655.         {
  2656.             if (player.nearAmmo && !player.usingAmmo)
  2657.             {
  2658.                 if (!isDefined(player.AmmoStringCreated))
  2659.                 {
  2660.                     player.AmmoHintString = player drawText("Press [{+usereload}] For Ammo", "objective", 1.5, 0, -50, (1, 1, 1), 1, (0, 0, 0), 0, 8);
  2661.                     player.AmmoHintString.alignX = "center";
  2662.                     player.AmmoHintString.alignY = "bottom";
  2663.                     player.AmmoHintString.horzAlign = "center";
  2664.                     player.AmmoHintString.vertAlign = "bottom";
  2665.                     player.usingAmmo = false;
  2666.                     player.AmmoStringCreated = true;
  2667.                 }
  2668.                 else
  2669.                     player.AmmoHintString.alpha = 1;
  2670.             }
  2671.             else
  2672.                 player.AmmoHintString.alpha = 0;
  2673.                
  2674.            
  2675.                 if(Distance(player.origin, Ammoorigin.origin) < 60 && !player.usingAmmo)
  2676.                 {
  2677.                     player.nearAmmo = true;
  2678.                    
  2679.                     if (player UseButtonPressed())
  2680.                         player Ammo_Player_Think(player);
  2681.                 }
  2682.                 else
  2683.                     player.nearAmmo = false;
  2684.            
  2685.         }
  2686.         wait 0.0001;
  2687.     }
  2688.      wait 0.01;
  2689. }
  2690.  
  2691. Ammo_Player_Think(player)
  2692. {
  2693.     player.usingAmmo = true;
  2694.     player.AmmoHintString.alpha = 0;
  2695.    
  2696.         currentWeapon = player getcurrentweapon();
  2697.         if ( currentWeapon != "none" )
  2698.         {
  2699.             player setweaponammoclip( currentWeapon, weaponclipsize(currentWeapon) );
  2700.             player givemaxammo( currentWeapon );
  2701.         }
  2702.             currentoffhand = player getcurrentoffhand();
  2703.        
  2704.         player setweaponammoclip( currentoffhand, weaponclipsize(currentoffhand) );
  2705.         player givemaxammo( currentoffhand );
  2706.        
  2707.        
  2708.    
  2709.         wait 0.2;
  2710.                  
  2711.     player.usingAmmo = false;
  2712. }
  2713. Ziplineinit()
  2714. {
  2715.    
  2716.     self MenuClosing();
  2717.  
  2718.     mes("^2Go To The Start Position Of The ZipLine ^2Press [{+attack}] To Mark");
  2719.     self waittill("weapon_fired");
  2720.     self.menu.title2 FadeOverTime(0.30);
  2721.     self.menu.title2.alpha = 0;
  2722.     pos1=self.origin;
  2723.     wait .1;
  2724.     self iPrintln("^2Position Marked!");
  2725.     wait 1;
  2726.     mes("^2Go To The End Position Of The ZipLine ^2Press [{+attack}] To Mark");
  2727.     self waittill("weapon_fired");
  2728.     self.menu.title2 FadeOverTime(0.30);
  2729.     self.menu.title2.alpha = 0;
  2730.     pos2=self.origin;
  2731.     wait 0.05;
  2732.     mes("^1CreateZipline(" + pos1 + ", " + pos2 + ", 1, true);");
  2733.     if(level.deletetext)
  2734.         self deletetextspawn();
  2735.     wait .1;
  2736.     self iPrintln("^2Position Marked!");
  2737.     self iPrintlnBold("^2Creating ZipLine...");
  2738.     wait 2;
  2739.     CreateZipline(pos1,pos2,1,true);
  2740.     self iPrintln("^2ZipLine Done!");
  2741. }
  2742.  
  2743. CreateZipline(start, end, time, bothWays)
  2744. {
  2745.     TempAngles = VectorToAngles(end - start);
  2746.     Angles = (0, TempAngles[1], 0);
  2747.    
  2748.     if (bothWays)
  2749.     {
  2750.         ziplineStart = spawnEntity("script_model", level.supplyDropModel, start, Angles);
  2751.         ziplineEnd = spawnEntity("script_model", level.supplyDropModelAxis, end, Angles);
  2752.     }
  2753.     else
  2754.     {
  2755.         ziplineStart = spawnEntity("script_model", level.supplyDropModel, start, Angles);
  2756.         ziplineEnd = spawnEntity("script_model", "", end, Angles);
  2757.     }
  2758.    
  2759.     level.Entities[level.amountOfEntities] = ziplineStart;
  2760.     level.amountOfEntities++;  
  2761.     level.Entities[level.amountOfEntities] = ziplineEnd;
  2762.     level.amountOfEntities++;
  2763.    
  2764.     level thread Zipline_Think(ziplineStart, ziplineEnd, time, bothWays);
  2765. }
  2766.  
  2767. Zipline_Think(ziplineStart, ziplineEnd, time, bothWays)
  2768. {
  2769.     level endon("game_ended");
  2770.     level endon("doneforge");
  2771.  
  2772.     localZiplineNumber = level.activeZiplines;
  2773.     level.activeZiplines++;
  2774.    
  2775.     for(;;)
  2776.     {
  2777.         foreach(player in level.players)
  2778.         {
  2779.             if (player.nearZipline[localZiplineNumber] && !player.usingZipline[localZiplineNumber])
  2780.             {
  2781.                 if (!isDefined(player.ziplineStringCreated[localZiplineNumber]))
  2782.                 {
  2783.                     player.ziplineHintString[localZiplineNumber] = player drawText("Press [{+usereload}] To Use Zipline", "objective", 1.5, 0, -50, (1, 1, 1), 1, (0, 0, 0), 0, 8);
  2784.                     player.ziplineHintString[localZiplineNumber].alignX = "center";
  2785.                     player.ziplineHintString[localZiplineNumber].alignY = "bottom";
  2786.                     player.ziplineHintString[localZiplineNumber].horzAlign = "center";
  2787.                     player.ziplineHintString[localZiplineNumber].vertAlign = "bottom";
  2788.                     player.usingZipline[localZiplineNumber] = false;
  2789.                     player.ziplineStringCreated[localZiplineNumber] = true;
  2790.                 }
  2791.                 else
  2792.                     player.ziplineHintString[localZiplineNumber].alpha = 1;
  2793.             }
  2794.             else
  2795.                 player.ziplineHintString[localZiplineNumber].alpha = 0;
  2796.                
  2797.             if (bothWays)
  2798.             {
  2799.                 if(Distance(player.origin, ziplineStart.origin) < 60 && !player.usingZipline[localZiplineNumber])
  2800.                 {
  2801.                     player.nearZipline[localZiplineNumber] = true;
  2802.                     if (player UseButtonPressed())
  2803.                         player Zipline_Player_Think(player, localZiplineNumber, ziplineStart.origin, ziplineEnd.origin, time);
  2804.                 }
  2805.                 else if(Distance(player.origin, ziplineEnd.origin) < 60 && !player.usingZipline[localZiplineNumber])
  2806.                 {
  2807.                     player.nearZipline[localZiplineNumber] = true;
  2808.                     if (player UseButtonPressed())
  2809.                         player Zipline_Player_Think(player, localZiplineNumber, ziplineEnd.origin, ziplineStart.origin, time);
  2810.                 }
  2811.                 else
  2812.                     player.nearZipline[localZiplineNumber] = false;
  2813.             }
  2814.             if (!bothWays)
  2815.             {
  2816.                 if(Distance(player.origin, ziplineStart.origin) < 60 && !player.usingZipline[localZiplineNumber])
  2817.                 {
  2818.                     player.nearZipline[localZiplineNumber] = true;
  2819.                     if (player UseButtonPressed())
  2820.                         player Zipline_Player_Think(player, localZiplineNumber, ziplineStart.origin, ziplineEnd.origin, time);
  2821.                 }
  2822.                 else
  2823.                     player.nearZipline[localZiplineNumber] = false;
  2824.             }
  2825.             wait 0.0001;
  2826.         }
  2827.         wait 0.01;
  2828.     }
  2829. }
  2830.  
  2831. Zipline_Player_Think(player, ziplineNumber, start, end, time)
  2832. {
  2833.     ZiplineMover = spawn("script_model", start);
  2834.     player PlayerLinkTo(ZiplineMover);
  2835.     player.usingZipline[ziplineNumber] = true;
  2836.     player.ziplineHintString[ziplineNumber].alpha = 0;
  2837.     ZiplineMover MoveTo(end, time, 0.5, 0.5);
  2838.     wait time + 0.03;
  2839.     player DetachAll();
  2840.     ZiplineMover delete();
  2841.     player.usingZipline[ziplineNumber] = false;
  2842. }
  2843.  
  2844. movingcrateinit()
  2845. {  
  2846.     self MenuClosing();
  2847.  
  2848.     mes("^2Go To The Start Position Of The Moving Platform ^2Press [{+attack}] To Mark");
  2849.     self waittill("weapon_fired");
  2850.     self.menu.title2 FadeOverTime(0.30);
  2851.     self.menu.title2.alpha = 0;
  2852.     pos1=self.origin;
  2853.     wait .1;
  2854.     self iPrintln("^2Position Marked!");
  2855.     wait 1;
  2856.     mes("^2Go To The End Position Of The Moving Platform  ^2Press [{+attack}] To Mark");
  2857.     self waittill("weapon_fired");
  2858.     self.menu.title2 FadeOverTime(0.30);
  2859.     self.menu.title2.alpha = 0;
  2860.     pos2=self.origin;
  2861.     mes("^1movingplatform(" + pos1 + "," + pos2 + ",1);");
  2862.     if(level.deletetext)
  2863.         self deletetextspawn();
  2864.     wait 0.05;
  2865.     self iPrintln("^2Position Marked!");
  2866.     self iPrintlnBold("^2Creating Moving Plateform...");
  2867.     wait 2;    
  2868.     Movingcrate(pos1,pos2,1);
  2869.     self iPrintln("^2Moving plateform Done!");
  2870. }
  2871. Movingcrate(depart,arivee,time1)
  2872. {
  2873.     localmcnumber = level.activeMovingCrates;
  2874.     level.activeMovingCrates++;
  2875.  
  2876.    level.mo = [];
  2877.     level.mo[localmcnumber] = spawn("script_model",depart);
  2878.     level.mo[localmcnumber] setModel("t6_wpn_supply_drop_ally");
  2879.     level.mo[localmcnumber].angles=self.angles;  
  2880.     level.Entities[level.amountOfEntities] =  level.mo[localmcnumber];
  2881.             level.amountOfEntities++;
  2882.     level.mo[localmcnumber] Escalator(depart,arivee,time1);
  2883.    
  2884.  
  2885. }
  2886. Escalator(depart,arivee,time1)
  2887. {
  2888.    
  2889.    
  2890.     self endon("disconnect");
  2891.    
  2892.     level endon("doneforge");
  2893.    for(;;)
  2894.     {    
  2895.         foreach(player in level.players)
  2896.         {
  2897.             if(distance(player.origin, depart) < 60 && self.origin == depart)
  2898.             {                  
  2899.                 player playerLinkTo(self);                
  2900.                
  2901.             }      
  2902.             if(distance(player.origin, arivee) < 60 && self.origin == arivee)
  2903.             {                  
  2904.                 player playerLinkTo(self);              
  2905.                        
  2906.             }    
  2907.              
  2908.            
  2909.             if(self.state=="open")
  2910.             {                    
  2911.                 self moveTo(arivee,time1);
  2912.                 wait(time1 + 0.20);
  2913.                 player unlink();
  2914.                 wait 2;
  2915.                 self.state  ="close";
  2916.                 continue;
  2917.            
  2918.             }
  2919.             if(self.state=="close")
  2920.             {        
  2921.                      
  2922.                 self moveTo(depart,time1);
  2923.                 wait(time1 + 0.20);
  2924.                 player unlink();
  2925.                 wait 2;
  2926.                 self.state ="open";
  2927.                 continue;
  2928.             }  
  2929.             wait 0.001;                    
  2930.         }          
  2931.            
  2932.        
  2933.         wait 0.01;
  2934.     }
  2935. }
  2936.  
  2937. Doorinit()
  2938. {
  2939.    
  2940.     self MenuClosing();
  2941.     mes("^2Go To The Start Position Of The Door ^2Press [{+attack}] To Mark");
  2942.     self waittill("weapon_fired");
  2943.     self.menu.title2 FadeOverTime(0.30);
  2944.     self.menu.title2.alpha = 0;
  2945.     pos1 = self.origin;
  2946.     pos11 = (pos1[0],pos1[1],self.origin[2]+20);
  2947.     ang =  (0, self.angles[1], self.angles[2]);
  2948.     wait .1;
  2949.     self iPrintln("^2Position Marked!");
  2950.     wait 1;
  2951.     mes("^2Go To The End Position Of The Door ^2Press [{+attack}] To Mark");
  2952.     self waittill("weapon_fired");
  2953.     self.menu.title2 FadeOverTime(0.30);
  2954.     self.menu.title2.alpha = 0;
  2955.     pos2=self.origin;
  2956.     pos22 = (pos2[0],pos2[1],self.origin[2]+20);
  2957.      ang2 =  (0, self.angles[1], self.angles[2]);
  2958.     team = self.pers["team"];
  2959.     wait 0.05;
  2960.     mes("^1CreateDoor(" + pos11 + ", " + pos22 + ", 1.5, " + ang + ", " +  ang2 + ", 3, 2, 50, 80, self.team);");
  2961.     if(level.deletetext)
  2962.         self deletetextspawn();
  2963.     wait .1;
  2964.     self iPrintln("^2Position Marked!");
  2965.     self iPrintlnBold("^2Creating Door...");
  2966.     wait 2;
  2967.     CreateDoor(pos11,pos22,1.5,ang,ang2,2,2,50,80,team);
  2968.     self iPrintln("^2Door Done!");
  2969. }
  2970. CreateDoor(open, close, time, angle,ang, width, height, hp, triggerRadius,team)
  2971. {
  2972.     offset = (((width / 2) - 0.5) * -1);
  2973.     center = spawn("script_model", open);
  2974.     for(j = 0; j < width; j++)
  2975.     {
  2976.         door = spawnEntity("script_model", "t6_wpn_supply_drop_ally", open + ((0, 70, 0) * offset), (0,0,0));
  2977.         door EnableLinkTo();
  2978.         door LinkTo(center);
  2979.         level.Entities[level.amountOfEntities] = door;
  2980.             level.amountOfEntities++;      
  2981.         for(h = 1; h < height; h++)
  2982.         {
  2983.             door = spawnEntity("script_model", "t6_wpn_supply_drop_ally", open + ((0, 70, 0) * offset) + ((0, 0, 70) * h), (0,0,0));
  2984.             door EnableLinkTo();
  2985.             door LinkTo(center);
  2986.             level.Entities[level.amountOfEntities] = door;
  2987.             level.amountOfEntities++;  
  2988.         }
  2989.         offset += 1;
  2990.     }
  2991.     center.angles = angle;
  2992.     center.state = "close";
  2993.     center.hp = hp;
  2994.     center.triggerRadius = triggerRadius;
  2995.    
  2996.     center thread Door_Player_Think(level.activeDoors, team);
  2997.     center thread Door_Think(open, close, time, angle, ang, team);
  2998.     wait 0.01;
  2999. }
  3000.  
  3001. Door_Think(open, close, time, angle, ang, team)
  3002. {
  3003.     level endon("game_ended");
  3004.     level endon("doneforge");
  3005.  
  3006.     self.state = "close";
  3007.     localDoorNumber = level.activeDoors;
  3008.     level.doorInUse[localDoorNumber] = false;
  3009.     level.activeDoors++;
  3010.  
  3011.     for(;;)
  3012.     {
  3013.         self waittill ("triggeruse" , player);
  3014.         if(self.hp > 0)
  3015.         {
  3016.                            
  3017.             if(player.team == team)
  3018.             {
  3019.                 if(self.state == "open")
  3020.                 {
  3021.                     self playSound("mpl_drone_door_open");
  3022.                     self MoveTo(open, time);
  3023.                     self RotateTo( angle, time );
  3024.                     level.doorInUse[localDoorNumber] = true;
  3025.                     wait time;
  3026.                     level.doorInUse[localDoorNumber] = false;
  3027.                     self.state = "close";
  3028.                     continue;
  3029.                 }
  3030.                 if(self.state == "close")
  3031.                 {
  3032.                     self playSound("mpl_drone_door_close");
  3033.                     self MoveTo(close, time);
  3034.                     self RotateTo( ang, time );
  3035.                     level.doorInUse[localDoorNumber] = true;
  3036.                     wait time;
  3037.                     level.doorInUse[localDoorNumber] = false;
  3038.                     self.state = "open";
  3039.                     continue;
  3040.                 }              
  3041.             }
  3042.             if(player.team != team)
  3043.             {
  3044.                 if(self.state == "close")
  3045.                 {
  3046.                     self.hp--;
  3047.                     player iPrintlnBold("Door Damaged!");
  3048.                     wait 1;
  3049.                     continue;
  3050.                 }
  3051.             }
  3052.         }
  3053.         else
  3054.         {
  3055.             if(self.state == "close")
  3056.             {
  3057.                 self MoveTo(open, time);
  3058.                 self.state = "broken";
  3059.             wait 0.5;
  3060.             continue;
  3061.             }
  3062.  
  3063.             if(self.state == "broken")
  3064.             {
  3065.                 self ResetDoor(localDoorNumber, open, angle, 50, time);
  3066.                 continue;
  3067.             }
  3068.         }
  3069.     }
  3070. }
  3071.                
  3072. Door_Player_Think(localDoorNumber, team)
  3073. {
  3074.     level endon("game_ended");
  3075.     self endon("disconnect");
  3076.     level endon("doneforge");
  3077.    
  3078.     for(;;)
  3079.     {
  3080.         foreach(player in level.players)
  3081.         {
  3082.             if (!isDefined(player.doorStringCreated[localDoorNumber]))
  3083.             {
  3084.                 player.doorHintString[localDoorNumber] = player drawText(player.currentDoorHint, "objective", 1.5, 0, -50, (1, 1, 1), 0, (0, 0, 0), 0, 8);
  3085.                 player.doorHintString[localDoorNumber].alpha = 0;
  3086.                 player.doorHintString[localDoorNumber].alignX = "center";
  3087.                 player.doorHintString[localDoorNumber].alignY = "bottom";
  3088.                 player.doorHintString[localDoorNumber].horzAlign = "center";
  3089.                 player.doorHintString[localDoorNumber].vertAlign = "bottom";
  3090.                 player.doorStringCreated[localDoorNumber] = true;
  3091.                 player.nearDoor[localDoorNumber] = false;
  3092.             }
  3093.             if (player.nearDoor[localDoorNumber] && !level.doorInUse[localDoorNumber])
  3094.             {
  3095.                 player.doorHintString[localDoorNumber] setText(player.currentDoorHint);
  3096.                 player.doorHintString[localDoorNumber].alpha = 1;
  3097.             }
  3098.             else
  3099.                 player.doorHintString[localDoorNumber].alpha = 0;
  3100.  
  3101.             if(Distance(self.origin, player.origin) <= self.triggerRadius)
  3102.             {
  3103.                
  3104.                 if(player.team == team)
  3105.                 {
  3106.                     if(self.state == "open")
  3107.                         player.currentDoorHint = "[{+melee}] ^1To Close ^7the door / [{+usereload}] Shows Current HP.";
  3108.                     if(self.state == "close")              
  3109.                         player.currentDoorHint = "[{+melee}] ^2To Open ^7the door / [{+usereload}] Shows Current HP.";
  3110.                     if(self.state == "broken")
  3111.                         player.currentDoorHint = "^1Door is Broken";
  3112.                 }
  3113.                 if(player.team != team)
  3114.                 {
  3115.                     if (self.state == "open")
  3116.                         player.currentDoorHint = "";
  3117.                     if(self.state == "close")
  3118.                         player.currentDoorHint = "[{+melee}] ^1To Damage ^7the door / [{+usereload}] Shows Current HP.";
  3119.                     if(self.state == "broken")
  3120.                         player.currentDoorHint = "^1Door is Broken";
  3121.                 }
  3122.                 if(player isHost())
  3123.                 {
  3124.                     if(self.state == "broken")
  3125.                         player.currentDoorHint = "^1Door is Broken/^7Press [{+actionslot 4}] To Reset Door";
  3126.                 }
  3127.                 if(player actionslotfourbuttonpressed() && player isHost() && self.state == "broken")
  3128.                 {
  3129.                    
  3130.                         self notify("triggeruse" , player);
  3131.                    
  3132.                         wait 0.20;
  3133.                 }
  3134.                 if(player MeleeButtonPressed() && isAlive(player))
  3135.                 {
  3136.                     if (player.team == team)
  3137.                         self notify("triggeruse" , player);
  3138.                     if (player.team != team)
  3139.                         self notify("triggeruse" , player);
  3140.                         wait 0.20;
  3141.                 }
  3142.                 if(player UseButtonPressed())
  3143.                 {
  3144.                     if (player.team == team)
  3145.                         player iPrintlnBold("Current HP: ^1" + self.hp);
  3146.                     if (player.team != team)
  3147.                         player iPrintlnBold("Current HP: ^1" + self.hp);
  3148.                     wait 0.20;
  3149.                 }
  3150.                 player.nearDoor[localDoorNumber] = true;
  3151.             }
  3152.             else
  3153.                 player.nearDoor[localDoorNumber] = false;
  3154.         }
  3155.         wait 0.1;
  3156.     }
  3157. }
  3158.  
  3159. ResetDoor(localDoorNumber, open, angle, hp, time)
  3160. {
  3161.     self.hp = hp;
  3162.     self MoveTo(open, time);
  3163.     self RotateTo( angle, time );
  3164.     self.state = "open";
  3165. }
  3166. Flagsinit()
  3167. {
  3168.    
  3169.     self MenuClosing();
  3170.  
  3171.     mes("^2Go To The Start Position Of The Flag ^2Press [{+attack}] To Mark");
  3172.     self waittill("weapon_fired");
  3173.     self.menu.title2 FadeOverTime(0.30);
  3174.     self.menu.title2.alpha = 0;
  3175.     pos1=self.origin;
  3176.     wait .1;
  3177.     self iPrintln("^2Position Marked!");
  3178.     wait 1;
  3179.     mes("^2Go To The End Position Of The Flag ^2Press [{+attack}] To Mark");
  3180.     self waittill("weapon_fired");
  3181.     self.menu.title2 FadeOverTime(0.30);
  3182.     self.menu.title2.alpha = 0;
  3183.     pos2=self.origin;
  3184.     wait 0.05;
  3185.     mes("^1level CreateFlag(" + pos1 + ", " + pos2 + ", true);");
  3186.     if(level.deletetext)
  3187.         self deletetextspawn();
  3188.     wait .1;
  3189.     self iPrintln("^2Position Marked!");
  3190.     self iPrintlnBold("^2Creating Flag...");
  3191.     wait 2;
  3192.     level CreateFlag(pos1,pos2,true);
  3193.     self iPrintln("^2Flag Done!");
  3194. }
  3195.  
  3196. CreateFlag(start, end, bothWays)
  3197. {
  3198.     TempAngles = VectorToAngles(end - start);
  3199.     Angles = (0, TempAngles[1], 0);
  3200.    
  3201.     if (bothWays)
  3202.     {
  3203.         FlagStart = spawnEntity("script_model", level.teleportFlagStartModel, start, Angles);
  3204.         FlagEnd = spawnEntity("script_model", level.teleportFlagEndModel, end, Angles);
  3205.     }
  3206.     else
  3207.     {
  3208.         FlagStart = spawnEntity("script_model", level.teleportFlagStartModel, start, Angles);
  3209.         FlagEnd = spawnEntity("script_model", "", end, Angles);
  3210.     }
  3211.    
  3212.     level.Entities[level.amountOfEntities] = FlagStart;
  3213.     level.amountOfEntities++;  
  3214.     level.Entities[level.amountOfEntities] = FlagEnd;
  3215.     level.amountOfEntities++;
  3216.    
  3217.     self thread Flag_Think(FlagStart, FlagEnd, true);
  3218. }
  3219.  
  3220. Flag_Think(FlagStart, FlagEnd, bothWays)
  3221. {
  3222.     level endon("game_ended");
  3223.     level endon("doneforge");
  3224.  
  3225.     localFlagNumber = level.activeFlags;
  3226.     level.activeFlags++;
  3227.    
  3228.     for(;;)
  3229.     {
  3230.         foreach(player in level.players)
  3231.         {
  3232.            
  3233.             if (bothWays)
  3234.             {
  3235.                 if(Distance(player.origin, FlagStart.origin) < 20 && !player.usingFlag[localFlagNumber])
  3236.                 {
  3237.                     player.usingFlag[localFlagNumber] = true;
  3238.                     player setorigin(FlagEnd.origin);
  3239.                         //wait time + 0.10;
  3240.                 }
  3241.                 else
  3242.                     player.usingFlag[localFlagNumber] = false;
  3243.                 if(Distance(player.origin, FlagEnd.origin) < 20 && !player.usingFlag[localFlagNumber])
  3244.                 {
  3245.                     player.usingFlag[localFlagNumber] = true;
  3246.                     player setorigin(FlagStart.origin);
  3247.                         //wait time + 0.10;
  3248.                 }
  3249.                 else
  3250.                     player.usingFlag[localFlagNumber] = false;
  3251.              
  3252.             }
  3253.             if (!bothWays)
  3254.             {
  3255.                 if(Distance(player.origin, FlagStart.origin) < 20 && !player.usingFlag[localFlagNumber])
  3256.                 {
  3257.                     player.usingFlag[localFlagNumber] = true;
  3258.                     player setorigin(FlagEnd.origin);
  3259.                         //wait time + 0.10;
  3260.                 }
  3261.                 else
  3262.                     player.usingFlag[localFlagNumber] = false;
  3263.             }
  3264.             wait 0.0001;
  3265.         }
  3266.         wait 0.01;
  3267.     }
  3268. }
  3269.  
  3270.  
  3271. SpawnWeaponinit(Weapon)
  3272. {
  3273.     self MenuClosing();
  3274.     mes("^5Press [{+attack}] To Spawn ^1" + Weapon);
  3275.     self waittill("weapon_fired"); 
  3276.     location = self NormalisedTrace("position");
  3277.     ang = self.angles;
  3278.     ang2 = ang + (0,270,0);
  3279.     wait 0.05;
  3280.     mes("^1SpawnWeapon(" + Weapon + ", "  + location + ", " + ang2 + ");");
  3281.     if(level.deletetext)
  3282.         self deletetextspawn();
  3283.     wait 2;
  3284.     SpawnWeapon(weapon,location,ang2);
  3285.  
  3286.  
  3287. }
  3288. Spawnweapon(weapon,start,Angles)
  3289. {
  3290.    
  3291.          weapon_model = getWeaponModel(Weapon);
  3292.         if(weapon_model=="")weapon_model=Weapon;
  3293.         if(weapon_model=="minigun_wager_mp")weapon_model="minigun_mp";
  3294.         if(weapon_model=="m32_wager_mp")weapon_model="m32_mp";
  3295.         SpawnweaponcrateStart = spawnEntity("script_model", weapon_model, start, Angles);
  3296.    
  3297.    
  3298.     level.Entities[level.amountOfEntities] = SpawnweaponcrateStart;
  3299.     level.amountOfEntities++;  
  3300.    
  3301.     level thread Spawnweaponcrate_Think(start,weapon );
  3302. }
  3303.  
  3304. Spawnweaponcrate_Think(start,weapon )
  3305. {
  3306.     level endon("game_ended");
  3307.     level endon("doneforge");
  3308.    
  3309.     localSpawnweaponNumber = level.activeSpawnweaponCrates;  
  3310.     level.activeSpawnweaponCrates++;
  3311.    
  3312.     for(;;)
  3313.     {
  3314.         foreach(player in level.players)
  3315.         {
  3316.             //player.usingSpawnweapon[localSpawnweaponNumber] = false;
  3317.             if (player.nearSpawnweapon[localSpawnweaponNumber])
  3318.             {
  3319.                 if (!isDefined(player.SpawnweaponStringCreated[localSpawnweaponNumber]))
  3320.                 {
  3321.                     player.SpawnweaponcrateHintString[localSpawnweaponNumber] = player drawText( ""  , "objective", 1.5, 0, -50, (1, 1, 1), 1, (0, 0, 0), 0, 8);
  3322.                     player.SpawnweaponcrateHintString[localSpawnweaponNumber].alignX = "center";
  3323.                     player.SpawnweaponcrateHintString[localSpawnweaponNumber].alignY = "bottom";
  3324.                     player.SpawnweaponcrateHintString[localSpawnweaponNumber].horzAlign = "center";
  3325.                     player.SpawnweaponcrateHintString[localSpawnweaponNumber].vertAlign = "bottom";
  3326.                     //player.usingSpawnweapon[localSpawnweaponNumber] = false;
  3327.                     player.SpawnweaponStringCreated[localSpawnweaponNumber] = true;
  3328.                 }
  3329.                 else
  3330.                     player.SpawnweaponcrateHintString[localSpawnweaponNumber].alpha = 1;
  3331.                     player.SpawnweaponcrateHintString[localSpawnweaponNumber] setText("Press [{+usereload}] For " + player.currentweaponhint[localSpawnweaponNumber]);
  3332.             }
  3333.             else
  3334.                 player.SpawnweaponcrateHintString[localSpawnweaponNumber].alpha = 0;
  3335.                
  3336.                    
  3337.                    if(Distance(player.origin, start) < 60)
  3338.  
  3339.                     {
  3340.                         player.currentweaponhint[localSpawnweaponNumber] = weapon;
  3341.                         player.nearSpawnweapon[localSpawnweaponNumber] = true;
  3342.                         if(player usebuttonpressed())
  3343.                         {
  3344.                             player SP_Player_Think(player, localSpawnweaponNumber, weapon);
  3345.                         }
  3346.                     }
  3347.                
  3348.                 else
  3349.                 player.nearSpawnweapon[localSpawnweaponNumber] = false;
  3350.            
  3351.         }
  3352.         wait 0.0001;
  3353.     }
  3354.     wait 0.01;
  3355. }
  3356.  
  3357. SP_Player_Think(player, localSpawnweaponNumber, weapon)
  3358. {
  3359.     player.SpawnweaponcrateHintString[localSpawnweaponNumber].alpha = 0;
  3360.     //player.usingSpawnweapon[localSpawnweaponNumber] = true;
  3361.     player TakeWeapon(player.currentWeapon);
  3362.     player GiveWeapon(weapon,0,false);                             
  3363.     player SwitchToWeapon(weapon);         
  3364.     player iPrintln("^1" + weapon + " ^2Given");
  3365.     //player.usingSpawnweapon[localSpawnweaponNumber] = false;
  3366.     wait 0.50;
  3367. }
  3368.  
  3369.  
  3370. plat()
  3371. {  
  3372.     if(level.platspawned)
  3373.     {
  3374.         while (isDefined(self.spawnedcrate[0][0]))
  3375.         {
  3376.             i = -3;
  3377.             while (i < 3)
  3378.             {
  3379.                 d = -3;
  3380.                 while (d < 3)
  3381.                 {
  3382.                     self.spawnedcrate[i][d] delete();
  3383.                     d++;
  3384.                 }
  3385.                 i++;
  3386.             }
  3387.         }
  3388.         level.platspawned = false;
  3389.  
  3390.     }
  3391.     else
  3392.     {
  3393.         startpos = self.origin;
  3394.         i = -3;
  3395.         while (i < 3)
  3396.         {
  3397.             d = -3;
  3398.             while (d < 3)
  3399.             {
  3400.                 self.spawnedcrate[i][d] = spawn("script_model", startpos + (d * 40, i * 70, 0));
  3401.                 self.spawnedcrate[i][d] setmodel("t6_wpn_supply_drop_ally");
  3402.                 level.Entities[level.amountOfEntities] = self.spawnedcrate[i][d];
  3403.                 level.amountOfEntities++;  
  3404.                 d++;
  3405.             }
  3406.             i++;
  3407.         }
  3408.         level.platspawned = true;
  3409.         self iprintln("^2Platform Spawned!");
  3410.         wait 1;  
  3411.     }
  3412. }
  3413.  
  3414.  
  3415. RandomWeapon()
  3416. {
  3417.     self MenuClosing();
  3418.     self iPrintlnBold("^5Press [{+attack}] To Spawn ^1Random Wepon");
  3419.     self waittill("weapon_fired");
  3420.     location = self NormalisedTrace("position");
  3421.     ang = self.angles;
  3422.     ang2 = ang + (0,270,0);
  3423.     id = random(level.tbl_weaponids);
  3424.     attachmentlist = id["attachment"];
  3425.     attachments = strtok( attachmentlist, " " );
  3426.     attachments[attachments.size] = "";
  3427.     attachment = random(attachments);
  3428.     weapon = ((id["reference"] + "_mp+") + attachment);
  3429.     mes("^1SpawnWeapon(" + weapon + ", " + location + ", " + ang + ");");
  3430.     if(level.deletetext)
  3431.         self deletetextspawn();
  3432.     wait 2;
  3433.     SpawnWeapon(weapon,location,ang2);
  3434. }
  3435.  
  3436.  
  3437. PerkCrateinit(Perkname)
  3438. {
  3439.    
  3440.     self MenuClosing();
  3441.     mes("^5Press [{+attack}] To Spawn ^1" + Perkname);
  3442.     self waittill("weapon_fired"); 
  3443.     location = self.origin + (0,0,20);
  3444.     ang = self.angles;
  3445.     mes("^1PerkCrate(" + Perkname +  "," + location + ang + ");");
  3446.     if(level.deletetext)
  3447.         self deletetextspawn();
  3448.     wait 2;
  3449.     PerkCrate(Perkname,location,ang);
  3450.  
  3451.  
  3452. }
  3453. PerkCrate(Perkname,start,Angles)
  3454. {
  3455.    
  3456.         PerkCratecrateStart = spawnEntity("script_model", level.supplyDropModel, start, Angles);
  3457.    
  3458.    
  3459.     level.Entities[level.amountOfEntities] = PerkCratecrateStart;
  3460.     level.amountOfEntities++;  
  3461.    
  3462.     level thread PerkCratecrate_Think(PerkCratecrateStart,Perkname );
  3463. }
  3464.  
  3465. PerkCratecrate_Think(PerkCratecrateStart,Perkname )
  3466. {
  3467.     level endon("game_ended");
  3468.     level endon("doneforge");
  3469.    
  3470.     localPerkCrateNumber = level.activePerkCrateCrates;
  3471.     player.usingPerkCrate[localPerkCrateNumber] = false;
  3472.     level.activePerkCrateCrates++;
  3473.    
  3474.     for(;;)
  3475.     {
  3476.         foreach(player in level.players)
  3477.         {
  3478.             if (player.nearPerkCrate[localPerkCrateNumber] && !player.usingPerkCrate[localPerkCrateNumber])
  3479.             {
  3480.                 if (!isDefined(player.PerkCrateStringCreated[localPerkCrateNumber]))
  3481.                 {
  3482.                     player.currentperkHint[localPerkCrateNumber] = Perkname;
  3483.                     player.PerkCratecrateHintString[localPerkCrateNumber] = player drawText( "Press [{+usereload}] For " + player.currentperkHint[localPerkCrateNumber], "objective", 1.5, 0, -50, (1, 1, 1), 1, (0, 0, 0), 0, 8);
  3484.                     player.PerkCratecrateHintString[localPerkCrateNumber].alignX = "center";
  3485.                     player.PerkCratecrateHintString[localPerkCrateNumber].alignY = "bottom";
  3486.                     player.PerkCratecrateHintString[localPerkCrateNumber].horzAlign = "center";
  3487.                     player.PerkCratecrateHintString[localPerkCrateNumber].vertAlign = "bottom";
  3488.                     player.usingPerkCrate[localPerkCrateNumber] = false;
  3489.                     player.PerkCrateStringCreated[localPerkCrateNumber] = true;
  3490.                 }
  3491.                 else
  3492.                     player.PerkCratecrateHintString[localPerkCrateNumber].alpha = 1;
  3493.             }
  3494.             else
  3495.                 player.PerkCratecrateHintString[localPerkCrateNumber].alpha = 0;
  3496.                
  3497.                    
  3498.                    
  3499.             if(Distance(player.origin, PerkCratecrateStart.origin) < 60 && !player.usingPerkCrate[localPerkCrateNumber])
  3500.             {
  3501.                 player.nearPerkCrate[localPerkCrateNumber] = true;
  3502.                 if(player usebuttonpressed())
  3503.                 {  
  3504.                     player Perk_Player_Think(localPerkCrateNumber, Perkname);
  3505.                     wait 1;
  3506.                 }
  3507.             }
  3508.        
  3509.             else
  3510.                 player.nearPerkCrate[localPerkCrateNumber] = false;
  3511.            
  3512.        
  3513.             wait 0.0001;
  3514.         }
  3515.         wait 0.01;
  3516.     }
  3517. }
  3518.  
  3519. Perk_Player_Think(localPerkCrateNumber, Perkname)
  3520. {
  3521.     self.PerkCratecrateHintString[localPerkCrateNumber].alpha = 0;
  3522.     self.usingPerkCrate[localPerkCrateNumber] = true;
  3523.     if( self.perk[perkname] == 0 )
  3524.     {
  3525.         self.perk[perkname] = 1;        
  3526.         self setperk(Perkname);
  3527.         self iPrintln("^2" + Perkname + "^1 Given");
  3528.         self thread reseetperks();
  3529.     }
  3530.     else
  3531.         self iprintln("You Already Have " + Perkname);
  3532.                
  3533.     self.usingPerkCrate[localPerkCrateNumber] = false;
  3534.     wait 1;
  3535. }
  3536.  
  3537. reseetperks()
  3538. {
  3539.     level endon("game_ended");
  3540.     level endon("doneforge");
  3541.     self endon("doneperk");
  3542.     for(;;)
  3543.     {
  3544.         self waittill("death");
  3545.         TempPerkArray = ReturnPerkArray("All");
  3546.         for (i = 0; i < TempPerkArray.size; i++)
  3547.         {
  3548.             perkarray = TempPerkArray[i];
  3549.             self.perk[perkarray] = 0;
  3550.         }
  3551.  
  3552.     }
  3553.     self notify("doneperk");
  3554.     wait 0.05;
  3555. }
  3556.  
  3557. ReturnPerkArray(category)
  3558. {
  3559.    
  3560.     level.PerkArray["All"][0] = "specialty_armorpiercing";
  3561.     level.PerkArray["All"][1] = "specialty_armorvest";
  3562.     level.PerkArray["All"][2] = "specialty_bulletaccuracy";
  3563.     level.PerkArray["All"][3] = "specialty_bulletdamage";
  3564.     level.PerkArray["All"][4] = "specialty_bulletflinch";
  3565.     level.PerkArray["All"][5] = "specialty_bulletpenetration";
  3566.     level.PerkArray["All"][6] = "specialty_deadshot";
  3567.     level.PerkArray["All"][7] = "specialty_delayexplosive";
  3568.     level.PerkArray["All"][8] = "specialty_detectexplosive";
  3569.     level.PerkArray["All"][9] = "specialty_disarmexplosive";
  3570.     level.PerkArray["All"][10] = "specialty_earnmoremomentum";
  3571.     level.PerkArray["All"][11] = "specialty_explosivedamage";
  3572.     level.PerkArray["All"][12] = "specialty_extraammo";
  3573.     level.PerkArray["All"][13] = "specialty_fallheight";
  3574.     level.PerkArray["All"][14] = "specialty_fastads";
  3575.     level.PerkArray["All"][15] = "specialty_fastequipmentuse";
  3576.     level.PerkArray["All"][16] = "specialty_fastladderclimb";
  3577.     level.PerkArray["All"][17] = "specialty_fastmantle";
  3578.     level.PerkArray["All"][18] = "specialty_fastmeleerecovery";
  3579.     level.PerkArray["All"][19] = "specialty_fastreload";
  3580.     level.PerkArray["All"][20] = "specialty_fasttoss";
  3581.     level.PerkArray["All"][21] = "specialty_fastweaponswitch";
  3582.     level.PerkArray["All"][22] = "specialty_finalstand";
  3583.     level.PerkArray["All"][23] = "specialty_fireproof";
  3584.     level.PerkArray["All"][24] = "specialty_flakjacket";
  3585.     level.PerkArray["All"][25] = "specialty_flashprotection";
  3586.     level.PerkArray["All"][26] = "specialty_gpsjammer";
  3587.     level.PerkArray["All"][27] = "specialty_grenadepulldeath";
  3588.     level.PerkArray["All"][28] = "specialty_healthregen";
  3589.     level.PerkArray["All"][29] = "specialty_holdbreath";
  3590.     level.PerkArray["All"][30] = "specialty_immunecounteruav";
  3591.     level.PerkArray["All"][31] = "specialty_immuneemp";
  3592.     level.PerkArray["All"][32] = "specialty_immunemms";
  3593.     level.PerkArray["All"][33] = "specialty_immunenvthermal";
  3594.     level.PerkArray["All"][34] = "specialty_immunerangefinder";
  3595.     level.PerkArray["All"][35] = "specialty_killstreak";
  3596.     level.PerkArray["All"][36] = "specialty_longersprint";
  3597.     level.PerkArray["All"][37] = "specialty_loudenemies";
  3598.     level.PerkArray["All"][38] = "specialty_marksman";
  3599.     level.PerkArray["All"][39] = "specialty_movefaster";
  3600.     level.PerkArray["All"][40] = "specialty_nomotionsensor";
  3601.     level.PerkArray["All"][41] = "specialty_noname";
  3602.     level.PerkArray["All"][42] = "specialty_nottargetedbyairsupport";
  3603.     level.PerkArray["All"][42] = "specialty_nokillstreakreticle";
  3604.     level.PerkArray["All"][43] = "specialty_nottargettedbysentry";
  3605.     level.PerkArray["All"][44] = "specialty_pin_back";
  3606.     level.PerkArray["All"][45] = "specialty_pistoldeath";
  3607.     level.PerkArray["All"][46] = "specialty_proximityprotection";
  3608.     level.PerkArray["All"][47] = "specialty_quickrevive";
  3609.     level.PerkArray["All"][48] = "specialty_quieter";
  3610.     level.PerkArray["All"][49] = "specialty_reconnaissance";
  3611.     level.PerkArray["All"][50] = "specialty_rof";
  3612.     level.PerkArray["All"][51] = "specialty_scavenger";
  3613.     level.PerkArray["All"][52] = "specialty_showenemyequipment";
  3614.     level.PerkArray["All"][53] = "specialty_stunprotection";
  3615.     level.PerkArray["All"][54] = "specialty_shellshock";
  3616.     level.PerkArray["All"][55] = "specialty_sprintrecovery";
  3617.     level.PerkArray["All"][56] = "specialty_showonradar";
  3618.     level.PerkArray["All"][57] = "specialty_stalker";
  3619.     level.PerkArray["All"][58] = "specialty_twogrenades";
  3620.     level.PerkArray["All"][59] = "specialty_twoprimaries";
  3621.     level.PerkArray["All"][60] = "specialty_unlimitedsprint";
  3622.     level.PerkArray["All"][61] = "specialty_additionalprimaryweapon";
  3623.    
  3624.     if (category == "All")
  3625.         return level.PerkArray["All"];
  3626. }
  3627.  
  3628. Nuketown(edit)
  3629. {
  3630.  
  3631.     if(getDvar("mapname") == "mp_nuketown_2020")
  3632.     {
  3633.         self MenuClosing();
  3634.         self iPrintln("Map Loading....");
  3635.         wait 1;
  3636.         if(!level.mapcreated)
  3637.         {
  3638.             if(edit == 0)
  3639.             {
  3640.                 self iPrintln("^5Edit 1");
  3641.                 CreateWall((-611.9672,-1197.882,-30.91674), (1236.619,-1202.963,-30.08543), false);//long death
  3642.                 CreateWall((1236.619,-1202.963,-30.08543), (1242.345,-913.1017,-30.08054), false);//spawn
  3643.                 CreateWall((1242.345,-913.1017,-30.08054), (342.2169,-908.8411,-30.20414), false);//side spawn
  3644.                 CreateWall((-393.5878,-800.1978,-30.43816), (-660.8975,-369.7951,-30.12709), false);
  3645.                 CreateWall((-660.8975,-369.7951,-30.12709), (-1670.36,-63.1468,-30.38548), false);//side base hedge
  3646.                 CreateWall((-1665.36,-491.791,-30.12709), (-1657.85,-41,-30.38548), false);//back wall
  3647.                 CreateWall((-1271.594,-869.7337,-30.69753), (-611.624,-1203.602,-30.90213), false);
  3648.                 CreateWall((-276.396,-851.596,-35), (-276.396,-608.882,-35), false);
  3649.                 CreateWall((-1285.24,-717.673,-60), (-1269.44,-566.84,30), false);
  3650.                 CreateWall((-368.227,1916.06,-30), (-609.834,1956.13,-30), false);
  3651.                 CreateWall((-609.834,1956.13,-30), (-594.881,1497.43,-30), false);
  3652.                 CreateMysteryBox((-1386,-689,-45), (0, 90, 0));//door
  3653.                 CreateDoor((-1269.44,-566.84,-60), (-1277.57, -340.334, -60), 3, (0, 90, 0),(0, 90, 0), 15, 2, 50, 80,self.team); //1st bunker door
  3654.                 level CreateFlag((-697.123,-188.705,-58.1288), (1119.9,-1052.2,-63.2372), 1, false);//orange
  3655.                 level CreateFlag((673.976,-175.06,-60.7388), (1119.9,-1052.2,-63.2372), 1, false);//blue
  3656.                 level CreateFlag((-1612,-156,-63), (-1133.26,491.506,77.125), 1, false);//corner base          
  3657.                 //optional
  3658.                 CreateRamp((-1418.32,-400.305,-62.8178), (-1975.92, -353.336, 130.6187), false);//door
  3659.                 CreateGrid((-1975.92,-280.336,130.6187), (-2280.5,-465.029,130.6187), (0,0,0),false);//door
  3660.                 CreateZipline((-2304.93,-274.583,130.6187), (-1133.26,491.506,77.125), 3, false);//2nd story house deck
  3661.                 CreateWall((-1690.36,-63.1468,-4.39707), (-1392,-171.155,80.322),false);//barrier          
  3662.                 level.mapcreated = true;
  3663.                 wait 1;
  3664.                 self iPrintln("Map Loaded....");
  3665.                 //CreateDoor((-890.387,880.204,-44.133), (-946.728,950.85,-42.9579), 3, (0,-21.2455,0),(0,66.6781,0), 3, 2, 50, 80,self.team);
  3666.                 //put functions here
  3667.             }          
  3668.             if(edit == 1)
  3669.             {
  3670.                 self iPrintln("^5Edit 2");
  3671.                 CreateWall((587.236,-57.3551,-63.227), (605.329,-186.426,-14.8346), false);
  3672.                 level.mapcreated = true;
  3673.                 wait 1;
  3674.                 self iPrintln("Map Loaded....");
  3675.                 //put functions here
  3676.             }
  3677.         }
  3678.         else
  3679.         {
  3680.             destroyAllEntities();
  3681.             level.mapcreated = false;
  3682.         }
  3683.        
  3684.     }
  3685.     else
  3686.         self iPrintln("Wrong Map....");
  3687. }
  3688.  
  3689. Hijacked()
  3690. {
  3691.     if(getDvar("mapname") == "mp_hijacked")
  3692.     {
  3693.         self MenuClosing();
  3694.         self iPrintln("Map Loading....");
  3695.  
  3696.         //put functions here
  3697.     }
  3698.     else
  3699.         self iPrintln("Wrong Map....");
  3700. }
  3701.  
  3702. Express()
  3703. {
  3704.     if(getDvar("mapname") == "mp_express")
  3705.     {
  3706.         self MenuClosing();
  3707.         self iPrintln("Map Loading....");
  3708.  
  3709.         //put functions here
  3710.     }
  3711.     else
  3712.         self iPrintln("Wrong Map....");
  3713. }
  3714.  
  3715. Meltdown()
  3716. {
  3717.     if(getDvar("mapname") == "mp_meltdown")
  3718.     {
  3719.         self MenuClosing();
  3720.         self iPrintln("Map Loading....");
  3721.  
  3722.         //put functions here
  3723.     }
  3724.     else
  3725.         self iPrintln("Wrong Map....");
  3726. }
  3727.  
  3728. Drone()
  3729. {
  3730.     if(getDvar("mapname") == "mp_drone")
  3731.     {
  3732.         self MenuClosing();
  3733.         self iPrintln("Map Loading....");
  3734.  
  3735.         //put functions here
  3736.     }
  3737.     else
  3738.         self iPrintln("Wrong Map....");
  3739. }
  3740.  
  3741. Carrier()
  3742. {
  3743.     if(getDvar("mapname") == "mp_carrier")
  3744.     {
  3745.         self MenuClosing();
  3746.         self iPrintln("Map Loading....");
  3747.  
  3748.         //put functions here
  3749.     }
  3750.     else
  3751.         self iPrintln("Wrong Map....");
  3752. }
  3753.  
  3754. Overflow()
  3755. {
  3756.     if(getDvar("mapname") == "mp_overflow")
  3757.     {
  3758.         self MenuClosing();
  3759.         self iPrintln("Map Loading....");
  3760.  
  3761.         //put functions here
  3762.     }
  3763.     else
  3764.         self iPrintln("Wrong Map....");
  3765. }
  3766.  
  3767. Slums()
  3768. {
  3769.     if(getDvar("mapname") == "mp_slums")
  3770.     {
  3771.         self MenuClosing();
  3772.         self iPrintln("Map Loading....");
  3773.  
  3774.         //put functions here
  3775.     }
  3776.     else
  3777.         self iPrintln("Wrong Map....");
  3778. }
  3779.  
  3780. Turbine()
  3781. {
  3782.     if(getDvar("mapname") == "mp_turbine")
  3783.     {
  3784.         self MenuClosing();
  3785.         self iPrintln("Map Loading....");
  3786.  
  3787.         //put functions here
  3788.     }
  3789.     else
  3790.         self iPrintln("Wrong Map....");
  3791. }
  3792.  
  3793. Raid()
  3794. {
  3795.     if(getDvar("mapname") == "mp_raid")
  3796.     {
  3797.         self MenuClosing();
  3798.         self iPrintln("Map Loading....");
  3799.  
  3800.         //put functions here
  3801.     }
  3802.     else
  3803.         self iPrintln("Wrong Map....");
  3804. }
  3805.  
  3806. Aftermath()
  3807. {
  3808.     if(getDvar("mapname") == "mp_la")
  3809.     {
  3810.         self MenuClosing();
  3811.         self iPrintln("Map Loading....");
  3812.  
  3813.         //put functions here
  3814.     }
  3815.     else
  3816.         self iPrintln("Wrong Map....");
  3817. }
  3818.  
  3819. Cargo()
  3820. {
  3821.     if(getDvar("mapname") == "mp_dockside")
  3822.     {
  3823.         self MenuClosing();
  3824.         self iPrintln("Map Loading....");
  3825.  
  3826.         //put functions here
  3827.     }
  3828.     else
  3829.         self iPrintln("Wrong Map....");
  3830. }
  3831.  
  3832. Standoff()
  3833. {
  3834.     if(getDvar("mapname") == "mp_village")
  3835.     {
  3836.         self MenuClosing();
  3837.         self iPrintln("Map Loading....");
  3838.  
  3839.         //put functions here
  3840.     }
  3841.     else
  3842.         self iPrintln("Wrong Map....");
  3843. }
  3844.  
  3845. Plaza()
  3846. {
  3847.     if(getDvar("mapname") == "mp_nightclub")
  3848.     {
  3849.         self MenuClosing();
  3850.         self iPrintln("Map Loading....");
  3851.  
  3852.         //put functions here
  3853.     }
  3854.     else
  3855.         self iPrintln("Wrong Map....");
  3856. }
  3857.  
  3858. Yemen()
  3859. {
  3860.     if(getDvar("mapname") == "mp_socotra")
  3861.     {
  3862.         self MenuClosing();
  3863.         self iPrintln("Map Loading....");
  3864.  
  3865.         //put functions here
  3866.     }
  3867.     else
  3868.         self iPrintln("Wrong Map....");
  3869. }
  3870.  
  3871. Dig()
  3872. {
  3873.     if(getDvar("mapname") == "mp_dig")
  3874.     {
  3875.         self MenuClosing();
  3876.         self iPrintln("Map Loading....");
  3877.  
  3878.         //put functions here
  3879.     }
  3880.     else
  3881.         self iPrintln("Wrong Map....");
  3882. }
  3883.  
  3884. Pod()
  3885. {
  3886.     if(getDvar("mapname") == "mp_pod")
  3887.     {
  3888.         self MenuClosing();
  3889.         self iPrintln("Map Loading....");
  3890.  
  3891.         //put functions here
  3892.     }
  3893.     else
  3894.         self iPrintln("Wrong Map....");
  3895. }
  3896.  
  3897. Takeoff()
  3898. {
  3899.     if(getDvar("mapname") == "mp_takeoff")
  3900.     {
  3901.         self MenuClosing();
  3902.         self iPrintln("Map Loading....");
  3903.  
  3904.         //put functions here
  3905.     }
  3906.     else
  3907.         self iPrintln("Wrong Map....");
  3908. }
  3909.  
  3910. Frost()
  3911. {
  3912.     if(getDvar("mapname") == "mp_frostbite")
  3913.     {
  3914.         self MenuClosing();
  3915.         self iPrintln("Map Loading....");
  3916.  
  3917.         //put functions here
  3918.     }
  3919.     else
  3920.         self iPrintln("Wrong Map....");
  3921. }
  3922.  
  3923. Mirage()
  3924. {
  3925.     if(getDvar("mapname") == "mp_mirage")
  3926.     {
  3927.         self MenuClosing();
  3928.         self iPrintln("Map Loading....");
  3929.  
  3930.         //put functions here
  3931.     }
  3932.     else
  3933.         self iPrintln("Wrong Map....");
  3934. }
  3935.  
  3936. Hydro()
  3937. {
  3938.     if(getDvar("mapname") == "mp_hydro")
  3939.     {
  3940.         self MenuClosing();
  3941.         self iPrintln("Map Loading....");
  3942.  
  3943.         //put functions here
  3944.     }
  3945.     else
  3946.         self iPrintln("Wrong Map....");
  3947. }
  3948.  
  3949. Grind()
  3950. {
  3951.     if(getDvar("mapname") == "mp_skate")
  3952.     {
  3953.         self MenuClosing();
  3954.         self iPrintln("Map Loading....");
  3955.  
  3956.         //put functions here
  3957.     }
  3958.     else
  3959.         self iPrintln("Wrong Map....");
  3960. }
  3961.  
  3962. Downhill()
  3963. {
  3964.     if(getDvar("mapname") == "mp_downhill")
  3965.     {
  3966.         self MenuClosing();
  3967.         self iPrintln("Map Loading....");
  3968.  
  3969.         //put functions here
  3970.     }
  3971.     else
  3972.         self iPrintln("Wrong Map....");
  3973. }
  3974.  
  3975. Encore()
  3976. {
  3977.     if(getDvar("mapname") == "mp_vertigo")
  3978.     {
  3979.         self MenuClosing();
  3980.         self iPrintln("Map Loading....");
  3981.  
  3982.         //put functions here
  3983.     }
  3984.     else
  3985.         self iPrintln("Wrong Map....");
  3986. }
  3987.  
  3988. Vertigo()
  3989. {
  3990.     if(getDvar("mapname") == "mp_vertigo")
  3991.     {
  3992.         self MenuClosing();
  3993.         self iPrintln("Map Loading....");
  3994.  
  3995.         //put functions here
  3996.     }
  3997.     else
  3998.         self iPrintln("Wrong Map....");
  3999. }
  4000.  
  4001.  
  4002. Studio()
  4003. {
  4004.     if(getDvar("mapname") == "mp_studio")
  4005.     {
  4006.         self MenuClosing();
  4007.         self iPrintln("Map Loading....");
  4008.  
  4009.         //put functions here
  4010.     }
  4011.     else
  4012.         self iPrintln("Wrong Map....");
  4013. }
  4014.  
  4015. Rush()
  4016. {
  4017.     if(getDvar("mapname") == "mp_paintball")
  4018.     {
  4019.         self MenuClosing();
  4020.         self iPrintln("Map Loading....");
  4021.  
  4022.         //put functions here
  4023.     }
  4024.     else
  4025.         self iPrintln("Wrong Map....");
  4026. }
  4027.  
  4028. Cove()
  4029. {
  4030.     if(getDvar("mapname") == "mp_castaway")
  4031.     {
  4032.         self MenuClosing();
  4033.         self iPrintln("Map Loading....");
  4034.  
  4035.         //put functions here
  4036.     }
  4037.     else
  4038.         self iPrintln("Wrong Map....");
  4039. }
  4040.  
  4041. Detour()
  4042. {
  4043.     if(getDvar("mapname") == "mp_bridge")
  4044.     {
  4045.         self MenuClosing();
  4046.         self iPrintln("Map Loading....");
  4047.  
  4048.         //put functions here
  4049.     }
  4050.     else
  4051.         self iPrintln("Wrong Map....");
  4052. }
  4053.  
  4054. Uplink()
  4055. {
  4056.     if(getDvar("mapname") == "mp_uplink")
  4057.     {
  4058.         self MenuClosing();
  4059.         self iPrintln("Map Loading....");
  4060.  
  4061.         //put functions here
  4062.     }
  4063.     else
  4064.         self iPrintln("Wrong Map....");
  4065. }
  4066.  
  4067.  
  4068.  
  4069. welcomeMessage()
  4070. {
  4071.     notifyData = spawnstruct();
  4072.     notifyData.titleText = "^1Welcome to Jwm614 Forge Menu v2.9";
  4073.     notifyData.notifyText = "^F^1Your Status Is " + self.MyAccess;
  4074.     self iPrintln("^0|^5Welcome To ^1jwm614 Forge Menu v2 ^3Coded By ^1jwm614");   
  4075.     self iPrintln("^0|^5Press [{+speed_throw}] and [{+melee}] To open ^1Forge  v2.9!^1");
  4076.     self iPrintln("^0|^5Press [{+gostand}] To select an option and[{+usereload}] ^1To Go Back");
  4077.     notifyData.glowColor = (255, 168, 54);
  4078.     notifyData.duration = 8;
  4079.     notifyData.font = "hudbig";
  4080.     notifyData.hideWhenInMenu = false;
  4081.     self thread maps\mp\gametypes\_hud_message::notifyMessage(notifyData);
  4082. }
  4083.  
  4084.  
  4085. SpawnCrate1(originn, angless)
  4086. {
  4087.    CurrentCrate = spawnEntity("script_model", level.supplyDropModelTrap, originn, angless);
  4088.     level.Entities[level.amountOfEntities] =  CurrentCrate;
  4089.             level.amountOfEntities++;
  4090. }
  4091.  
  4092. bunker()
  4093. {      
  4094.     if(level.bunker)
  4095.     {
  4096.         location = self.origin;
  4097.         x = location[0];
  4098.         y = location[1];
  4099.         z = location[2] + 600;
  4100.         ang = (0,0,0);
  4101.         ang1 = (0,90,0);
  4102.         ang2 = (-40,0,0);
  4103.         fortteleg = (x, y, z - 600);
  4104.         forttele = (x , y , z + 35);//
  4105.         fortteleg1 = (x + 110, y - 200, z - 600);
  4106.         forttele1 = (x - 110, y - 200, z);//
  4107.         am = (x, y - 410, z + 210);
  4108.  
  4109.         wait 1;
  4110.         loc = (x - 120, y - 410, z);
  4111.         loc1 = (x - 120, y - 410, z + 175);
  4112.         loc2 = (x - 105, y - 450, z + 35);
  4113.         loc3 = (x - 150, y - 410, z + 35);
  4114.         loc4 = (x - 100, y, z - 10);
  4115.         loc5 = (x + 100, y, z + 60);
  4116.         for ( i = 0; i < 7; i++ )
  4117.         {
  4118.             for ( y = 0; y < 7; y++ )
  4119.             {          
  4120.                 self SpawnCrate1(loc + (i *40, y * 70,0), ang);        
  4121.             }
  4122.         }    
  4123.         for ( i = 0; i < 7; i++ )
  4124.         {
  4125.             for ( y = 0; y < 6; y++ )
  4126.             {          
  4127.                 self SpawnCrate1(loc1 + (i * 40, y * 70,0), ang);          
  4128.             }
  4129.         }
  4130.  
  4131.         k = 0;
  4132.         for ( i = 0; i < 2; i++ )
  4133.         {
  4134.             for ( y = 0; y < 4; y++ )
  4135.             {          
  4136.                 self SpawnCrate1(loc2 + (y * 70, i + k,0), ang1);          
  4137.             }
  4138.             k = 510;
  4139.         }
  4140.         k1 = 0;
  4141.         for ( i = 0; i < 2; i++ )
  4142.         {
  4143.             for ( y = 0; y < 4; y++ )
  4144.             {          
  4145.                 self SpawnCrate1(loc2 + (y * 70, i + k1,105), ang1);           
  4146.             }
  4147.             k1 = 510;
  4148.         }
  4149.         k2 = 0;
  4150.         for ( i = 0; i < 2; i++ )
  4151.         {
  4152.             for ( y = 0; y < 4; y++ )
  4153.             {          
  4154.                 self SpawnCrate1(loc2 + (y * 70, i + k2,175), ang1);           
  4155.             }
  4156.             k2 = 510;
  4157.         }
  4158.         j = 0;
  4159.         for ( i = 0; i < 2; i++ )
  4160.         {
  4161.             for ( y = 0; y < 7; y++ )
  4162.             {          
  4163.                 self SpawnCrate1(loc3 + (i + j, y * 70,0), ang);           
  4164.             }
  4165.             j = 300;
  4166.         }    
  4167.         j1 = 0;
  4168.         for ( i = 0; i < 2; i++ )
  4169.         {
  4170.             for ( y = 0; y < 7; y++ )
  4171.             {          
  4172.                 self SpawnCrate1(loc3 + (i + j1, y * 70,105), ang);        
  4173.             }
  4174.             j1 = 300;
  4175.         }    
  4176.         j2 = 0;
  4177.         for ( i = 0; i < 2; i++ )
  4178.         {
  4179.             for ( y = 0; y < 7; y++ )
  4180.             {          
  4181.                 self SpawnCrate1(loc3 + (i + j2, y * 70,175), ang);        
  4182.             }
  4183.             j2 = 300;
  4184.         }    
  4185.         u = 0;
  4186.         for ( i = 0; i < 7; i++ )
  4187.         {  
  4188.             self SpawnCrate1(loc4 + (i *35, 0 , u), ang2); 
  4189.             u += 30;
  4190.         }    
  4191.  
  4192.         level CreateFlag(fortteleg,  forttele1, 1 ,true);
  4193.         wait 0.05;
  4194.         PackOPunchCrate(am, ang1);
  4195.         wait 0.05;
  4196.         Spawnweapon("as50_mp",loc5,ang);
  4197.         wait 0.05;
  4198.         level.bunker = false;
  4199.     }
  4200.     else
  4201.     {
  4202.         self iPrintlnBold("Bunker Alread Spawned!");
  4203.     }
  4204. }
  4205.    
  4206. GiveKillstreak(killstreak111)
  4207. {
  4208.     self maps/mp/killstreaks/_killstreaks::givekillstreak(self maps/mp/killstreaks/_killstreaks::getkillstreakbymenuname( killstreak111) , 5594, true, 5594);
  4209. }
  4210.  
  4211. KillStreakinit(KillStreakname)
  4212. {
  4213.    
  4214.     self MenuClosing();
  4215.     mes("^5Press [{+attack}] To Spawn ^1" + KillStreakname);
  4216.     self waittill("weapon_fired"); 
  4217.     location = self.origin + (0,0,20);
  4218.     ang = self.angles;
  4219.     mes("^1KillStreakCrate(" + KillStreakname +  "," + location + ang + ");");
  4220.     if(level.deletetext)
  4221.         self deletetextspawn();
  4222.     wait 2;
  4223.     KillStreakCrate(KillStreakname,location,ang);
  4224.  
  4225.  
  4226. }
  4227.  
  4228. KillStreakCrate(KillStreakname,start,Angles)
  4229. {
  4230.    
  4231.     KillStreakCratecrateStart = spawnEntity("script_model", level.supplyDropModel, start, Angles);
  4232.        
  4233.     level.Entities[level.amountOfEntities] = KillStreakCratecrateStart;
  4234.     level.amountOfEntities++;  
  4235.    
  4236.     level thread KillStreakCratecrate_Think(KillStreakCratecrateStart,KillStreakname );
  4237. }
  4238.  
  4239. KillStreakCratecrate_Think(KillStreakCratecrateStart,KillStreakname )
  4240. {
  4241.     level endon("game_ended");
  4242.      level endon("doneforge");
  4243.    
  4244.     localKillStreakCrateNumber = level.activeKillStreakCrateCrates;
  4245.     player.usingKillStreakCrate[localKillStreakCrateNumber] = false;
  4246.     level.activeKillStreakCrateCrates++;
  4247.    
  4248.     for(;;)
  4249.     {
  4250.         foreach(player in level.players)
  4251.         {
  4252.             if (player.nearKillStreakCrate[localKillStreakCrateNumber] && !player.usingKillStreakCrate[localKillStreakCrateNumber])
  4253.             {
  4254.                 if (!isDefined(player.KillStreakCrateStringCreated[localKillStreakCrateNumber]))
  4255.                 {
  4256.                     player.currentKillStreakHint[localKillStreakCrateNumber] = KillStreakname;
  4257.                     player.KillStreakCratecrateHintString[localKillStreakCrateNumber] = player drawText( "Press [{+usereload}] For " + player.currentKillStreakHint[localKillStreakCrateNumber], "objective", 1.5, 0, -50, (1, 1, 1), 1, (0, 0, 0), 0, 8);
  4258.                     player.KillStreakCratecrateHintString[localKillStreakCrateNumber].alignX = "center";
  4259.                     player.KillStreakCratecrateHintString[localKillStreakCrateNumber].alignY = "bottom";
  4260.                     player.KillStreakCratecrateHintString[localKillStreakCrateNumber].horzAlign = "center";
  4261.                     player.KillStreakCratecrateHintString[localKillStreakCrateNumber].vertAlign = "bottom";
  4262.                     player.usingKillStreakCrate[localKillStreakCrateNumber] = false;
  4263.                     player.KillStreakCrateStringCreated[localKillStreakCrateNumber] = true;
  4264.                 }
  4265.                 else
  4266.                     player.KillStreakCratecrateHintString[localKillStreakCrateNumber].alpha = 1;
  4267.             }
  4268.             else
  4269.                 player.KillStreakCratecrateHintString[localKillStreakCrateNumber].alpha = 0;
  4270.                    
  4271.             if(Distance(player.origin, KillStreakCratecrateStart.origin) < 60 && !player.usingKillStreakCrate[localKillStreakCrateNumber])
  4272.             {
  4273.                 player.nearKillStreakCrate[localKillStreakCrateNumber] = true;
  4274.                 if(player usebuttonpressed())
  4275.                 {  
  4276.                     player KillStreak_Player_Think(localKillStreakCrateNumber, KillStreakname);
  4277.                     wait 1;
  4278.                 }
  4279.             }
  4280.            
  4281.             else
  4282.             player.nearKillStreakCrate[localKillStreakCrateNumber] = false;
  4283.            
  4284.        
  4285.             wait 0.0001;
  4286.         }
  4287.         wait 0.01;
  4288.     }
  4289. }
  4290.  
  4291. KillStreak_Player_Think(localKillStreakCrateNumber, KillStreakname)
  4292. {
  4293.     self.KillStreakCratecrateHintString[localKillStreakCrateNumber].alpha = 0;
  4294.     self.usingKillStreakCrate[localKillStreakCrateNumber] = true;
  4295.     if(KillStreakname == "missile_drone_mp" || KillStreakname == "supplydrop_mp" || KillStreakname == "microwaveturret_mp" || KillStreakname == "autoturret_mp" || KillStreakname == "ai_tank_drop_mp" || KillStreakname == "emp_mp" || KillStreakname == "helicopter_player_gunner_mp")   
  4296.     {
  4297.         self giveWeapon( KillStreakname, 0, false);
  4298.         self switchToWeapon( KillStreakname );
  4299.     }
  4300.     else if(KillStreakname == "dogs_mp")
  4301.     {
  4302.         self maps/mp/killstreaks/_killstreaks::givekillstreak("dogs_mp", 5594, true, 5594);
  4303.     }
  4304.     else  
  4305.     {            
  4306.         self GiveKillstreak(KillStreakname);
  4307.         self iPrintln("^2" + KillStreakname + "^1 Given");
  4308.     }          
  4309.     self.usingKillStreakCrate[localKillStreakCrateNumber] = false;
  4310.     wait 1;
  4311. }
  4312.  
  4313. giveturrent()
  4314. {
  4315.     self MenuClosing();
  4316.     self giveWeapon( "autoturret_mp", 0, false);
  4317.     self switchToWeapon( "autoturret_mp" );
  4318. }
Advertisement
Add Comment
Please, Sign In to add comment