jwm614

Jwm614 Forge menu v3.0

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