Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include maps/mp/_utility;
- #include common_scripts/utility;
- #include maps/mp/gametypes/_hud_util;
- #include maps/mp/_utility;
- /* Black Ops 2 - Menu Base ( Multiplayers And Zombie )
- Build: 1.0.0
- Made By ZeiiKeN & Fanatik
- Thanks for use my base menu
- Please contact me if you encounter an error when you use my base menu
- Skype: PS3Matrache
- Visit: www.Xbox-Gen.fr
- */
- init( )
- {
- precacheVehicle("heli_guard_mp");//pet chopper
- precacheModel("veh_t6_drone_overwatch_light");//pet chopper/skybase
- PrecacheModel( "veh_t6_drone_pegasus_mp" );//stunt palne
- PrecacheAll();
- precacheshader("mp_hud_cluster_status");//for nuke
- level.Entities = [];
- level.amountOfEntities = 0;
- level.clientid = 0;
- level.activesky1 = 0;//for skybase
- level.result = 0;//for overflow
- level.activeFlags = 0;//for bunker
- level.activePackOPunchCrates = 0;//for bunker
- level.activeSpawnweaponCrates = 0;//for bunker
- level.bunker = true;//for bunker
- level.supplyDropModel = "t6_wpn_supply_drop_ally";
- level.supplyDropModelhq = "t6_wpn_supply_drop_hq";
- level.supplyDropModelAxis = "t6_wpn_supply_drop_axis";
- level.supplyDropModelTrap = "t6_wpn_supply_drop_trap";
- level.teleportFlagStartModel = "mp_flag_green";
- level.teleportFlagEndModel = "mp_flag_red";
- level.teleportFlagBothModel = "mp_flag_neutral";
- level.clientid = 0;
- level thread onplayerconnect();
- level deathBarrier();
- level thread entityMonitor();
- }
- PrecacheAll()
- {
- /* Precache Models */ //for Bunker //for bunker
- self.AllMyModels = strTok("prop_suitcase_bomb;veh_t6_drone_overwatch_light;mp_flag_green;mp_flag_red;mp_flag_neutral",";");
- for(i=0;i<self.AllMyModels.size;i++)
- {
- PrecacheModel(self.AllMyModels[i]);
- }
- /* Precache Items */
- self.AllMyItems = strTok("minigun_wager_mp;m32_wager_mp",";");
- for(F=0;F<self.AllMyItems.size;F++)
- {
- PrecacheItem(self.AllMyItems[F]);
- }
- }
- onplayerconnect( )
- {
- for(;;)
- {
- level waittill( "connecting", player );
- player thread onplayerspawned( );
- player.clientid = level.clientid;
- level.clientid++;
- player.Verified = false;
- player.VIP = false;
- player.Admin = false;
- player.CoHost = false;
- player.MyAccess = "";
- }
- }
- onplayerspawned( )
- {
- self endon( "disconnect" );
- level endon( "game_ended" );
- self thread overflowfix();
- for(;;)
- {
- self waittill( "spawned_player" );
- if(self isHost())
- {
- self freezecontrols(false);
- self.Verified = true;
- self.VIP = true;
- self.Admin = true;
- self.CoHost = true;
- self.MyAccess = "^1Host";
- self thread BuildMenu();
- }
- else if ( self.CoHost == true)
- {
- self.Verified = true;
- self.VIP = true;
- self.Admin = true;
- self.CoHost = true;
- self.MyAccess = "^5Co-Host";
- self freezecontrols(false);
- self thread BuildMenu();
- }
- else if ( self.Admin == true)
- {
- self.Verified = true;
- self.VIP = true;
- self.Admin = true;
- self.MyAccess = "^1Admin";
- self freezecontrols(false);
- self thread BuildMenu();
- }
- else if ( self.VIP == true)
- {
- self.Verified = true;
- self.VIP = true;
- self.MyAccess = "^3VIP";
- self freezecontrols(false);
- self thread BuildMenu();
- }
- else if ( self.Verified == true)
- {
- self.Verified = true;
- self.MyAccess = "^1Verified";
- self freezecontrols(false);
- self thread BuildMenu();
- }
- else if ( self.Verified == false)
- {
- self.MyAccess = "";
- }
- }
- }
- BuildMenu()
- {
- self endon("disconnect");
- self endon("death");
- self.MenuOpen = false;
- self.Menu = spawnstruct();
- self InitialisingMenu();
- self MenuStructure();
- self thread MenuDeath();
- while (1)
- {
- if(self meleeButtonPressed() && self adsButtonPressed() && self.MenuOpen == false)
- {
- self MenuOpening();
- self LoadMenu("Main Menu");
- }
- else if(self UseButtonPressed() && self.MenuOpen == true)
- {
- if(isDefined(self.Menu.System["MenuPrevious"][self.Menu.System["MenuRoot"]]))
- {
- self.Menu.System["MenuCurser"] = 0;
- self SubMenu(self.Menu.System["MenuPrevious"][self.Menu.System["MenuRoot"]]);
- wait 0.05;
- }
- else
- self MenuClosing();
- wait 0.01;
- }
- else if (self actionSlotoneButtonPressed() && self.MenuOpen == true)
- {
- self.Menu.System["MenuCurser"] -= 1;
- if (self.Menu.System["MenuCurser"] < 0)
- {
- self.Menu.System["MenuCurser"] = self.Menu.System["MenuTexte"][self.Menu.System["MenuRoot"]].size - 1;
- }
- self.Menu.Material["Scrollbar"] elemMoveY(.2, 60 + (self.Menu.System["MenuCurser"] * 15.6));
- wait.02;
- }
- else if (self actionSlottwoButtonPressed() && self.MenuOpen == true)
- {
- self.Menu.System["MenuCurser"] += 1;
- if (self.Menu.System["MenuCurser"] >= self.Menu.System["MenuTexte"][self.Menu.System["MenuRoot"]].size)
- {
- self.Menu.System["MenuCurser"] = 0;
- }
- self.Menu.Material["Scrollbar"] elemMoveY(.2, 60 + (self.Menu.System["MenuCurser"] * 15.6));
- wait.02;
- }
- else if(self jumpButtonPressed() && self.MenuOpen == true)
- {
- //wait 0.2;
- if(self.Menu.System["MenuRoot"]=="Clients Menu") self.Menu.System["ClientIndex"]=self.Menu.System["MenuCurser"];
- 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"]]);
- wait 0.3;
- }
- else if(self actionslotthreebuttonpressed() && self.MenuOpen == false) // Open.
- {
- }
- wait 0.05;
- }
- }
- MenuStructure()
- {
- if (self.Verified == true)
- {
- self MainMenu("Main Menu", undefined);
- self MenuOption("Main Menu", 0, "Jwm614 Functions", ::SubMenu, "Jwm614 Functions");
- self MenuOption("Main Menu", 1, "Sub Menu 2", ::SubMenu, "Sub Menu 2");
- self MenuOption("Main Menu", 2, "Sub Menu 3", ::SubMenu, "Sub Menu 3");
- self MenuOption("Main Menu", 3, "Sub Menu 4", ::SubMenu, "Sub Menu 4");
- }
- if (self.VIP == true)
- {
- self MenuOption("Main Menu", 4, "Sub Menu 5 (VIP)", ::SubMenu, "Sub Menu 5 (VIP)");
- }
- if (self.Admin == true)
- {
- self MenuOption("Main Menu", 5, "Sub Menu 6 (Admin)", ::SubMenu, "Sub Menu 6 (Admin)");
- }
- if (self.CoHost == true)
- {
- self MenuOption("Main Menu", 6, "Sub Menu 7 (Host)", ::SubMenu, "Sub Menu 7 (Host)");
- self MenuOption("Main Menu", 7, "Clients Menu", ::SubMenu, "Clients Menu");
- self MenuOption("Main Menu", 8, "All Clients", ::SubMenu, "All Clients");
- }
- self MainMenu("Jwm614 Functions", "Main Menu");
- self MenuOption("Jwm614 Functions", 0, "Skybase", ::skybasetoggle);
- self MenuOption("Jwm614 Functions", 1, "Nuke", ::initMW2Nuke);
- self MenuOption("Jwm614 Functions", 2, "FireBalls", ::fireballstoggle);
- self MenuOption("Jwm614 Functions", 3, "Jwm614 Bunker", ::bunker);
- self MenuOption("Jwm614 Functions", 4, "Stunt Plane", ::StuntRuninit);
- self MenuOption("Jwm614 Functions", 5, "Pet Chopper", ::petchopperinit);
- self MenuOption("Jwm614 Functions", 6, "Suicide Lonestar", ::suicidelonestarinit);
- self MenuOption("Jwm614 Functions", 7, "No Clip Here", ::UFOMode);
- self MainMenu("Sub Menu 2", "Main Menu");
- self MenuOption("Sub Menu 2", 0, "Fonctions Here", ::Test);
- self MenuOption("Sub Menu 2", 1, "Fonctions Here", ::Test);
- self MenuOption("Sub Menu 2", 2, "Fonctions Here", ::Test);
- self MenuOption("Sub Menu 2", 3, "Fonctions Here", ::Test);
- self MenuOption("Sub Menu 2", 4, "Fonctions Here", ::Test);
- self MenuOption("Sub Menu 2", 5, "Fonctions Here", ::Test);
- self MainMenu("Sub Menu 3", "Main Menu");
- self MenuOption("Sub Menu 3", 0, "Fonctions Here", ::Test);
- self MenuOption("Sub Menu 3", 1, "Fonctions Here", ::Test);
- self MenuOption("Sub Menu 3", 2, "Fonctions Here", ::Test);
- self MenuOption("Sub Menu 3", 3, "Fonctions Here", ::Test);
- self MenuOption("Sub Menu 3", 4, "Fonctions Here", ::Test);
- self MenuOption("Sub Menu 3", 5, "Fonctions Here", ::Test);
- self MainMenu("Sub Menu 4", "Main Menu");
- self MenuOption("Sub Menu 4", 0, "Fonctions Here", ::Test);
- self MenuOption("Sub Menu 4", 1, "Fonctions Here", ::Test);
- self MenuOption("Sub Menu 4", 2, "Fonctions Here", ::Test);
- self MenuOption("Sub Menu 4", 3, "Fonctions Here", ::Test);
- self MenuOption("Sub Menu 4", 4, "Fonctions Here", ::Test);
- self MenuOption("Sub Menu 4", 5, "Fonctions Here", ::Test);
- self MainMenu("Sub Menu 5 (VIP)", "Main Menu");
- self MenuOption("Sub Menu 5 (VIP)", 0, "Fonctions Here", ::Test);
- self MenuOption("Sub Menu 5 (VIP)", 1, "Fonctions Here", ::Test);
- self MenuOption("Sub Menu 5 (VIP)", 2, "Fonctions Here", ::Test);
- self MenuOption("Sub Menu 5 (VIP)", 3, "Fonctions Here", ::Test);
- self MenuOption("Sub Menu 5 (VIP)", 4, "Fonctions Here", ::Test);
- self MenuOption("Sub Menu 5 (VIP)", 5, "Fonctions Here", ::Test);
- self MainMenu("Sub Menu 6 (Admin)", "Main Menu");
- self MenuOption("Sub Menu 6 (Admin)", 0, "Fonctions Here", ::Test);
- self MenuOption("Sub Menu 6 (Admin)", 1, "Fonctions Here", ::Test);
- self MenuOption("Sub Menu 6 (Admin)", 2, "Fonctions Here", ::Test);
- self MenuOption("Sub Menu 6 (Admin)", 3, "Fonctions Here", ::Test);
- self MenuOption("Sub Menu 6 (Admin)", 4, "Fonctions Here", ::Test);
- self MenuOption("Sub Menu 6 (Admin)", 5, "Fonctions Here", ::Test);
- self MainMenu("Sub Menu 7 (Host)", "Main Menu");
- self MenuOption("Sub Menu 7 (Host)", 0, "Fonctions Here", ::Test);
- self MenuOption("Sub Menu 7 (Host)", 1, "Fonctions Here", ::Test);
- self MenuOption("Sub Menu 7 (Host)", 2, "Fonctions Here", ::Test);
- self MenuOption("Sub Menu 7 (Host)", 3, "Fonctions Here", ::Test);
- self MenuOption("Sub Menu 7 (Host)", 4, "Fonctions Here", ::Test);
- self MenuOption("Sub Menu 7 (Host)", 5, "Fonctions Here", ::Test);
- self MainMenu("Clients Menu", "Main Menu");
- for (p = 0; p < level.players.size; p++) {
- player = level.players[p];
- self MenuOption("Clients Menu", p, "[" + player.MyAccess + "^7] " + player.name + "", ::SubMenu, "Client Function");
- }
- self thread MonitorPlayers();
- self MainMenu("Client Function", "Clients Menu");
- self MenuOption("Client Function", 0, "Verify Player", ::Verify);
- self MenuOption("Client Function", 1, "VIP Player", ::doVIP);
- self MenuOption("Client Function", 2, "Admin Player", ::doAdmin);
- self MenuOption("Client Function", 3, "Co-Host Player", ::doCoHost);
- self MenuOption("Client Function", 4, "Unverified Player", ::doUnverif);
- self MenuOption("Client Function", 5, "Fonctions Here", ::Test);
- self MainMenu("All Clients", "Main Menu");
- self MenuOption("All Clients", 0, "Kill All Players", ::AllPlayersKilled);
- self MenuOption("All Clients", 1, "Function Here", ::Test);
- self MenuOption("All Clients", 2, "Function Here", ::Test);
- self MenuOption("All Clients", 3, "Function Here", ::Test);
- self MenuOption("All Clients", 4, "Function Here", ::Test);
- }
- MonitorPlayers()
- {
- self endon("disconnect");
- for(;;)
- {
- for(p = 0;p < level.players.size;p++)
- {
- player = level.players[p];
- self.Menu.System["MenuTexte"]["Clients Menu"][p] = "[" + player.MyAccess + "^7] " + player.name;
- self.Menu.System["MenuFunction"]["Clients Menu"][p] = ::SubMenu;
- self.Menu.System["MenuInput"]["Clients Menu"][p] = "Client Function";
- wait .5;
- }
- wait 1;
- }
- }
- MainMenu(Menu, Return)
- {
- self.Menu.System["GetMenu"] = Menu;
- self.Menu.System["MenuCount"] = 0;
- self.Menu.System["MenuPrevious"][Menu] = Return;
- }
- MenuOption(Menu, Index, Texte, Function, Input)
- {
- self.Menu.System["MenuTexte"][Menu][Index] = Texte;
- self.Menu.System["MenuFunction"][Menu][Index] = Function;
- self.Menu.System["MenuInput"][Menu][Index] = Input;
- }
- SubMenu(input)
- {
- self.Menu.System["MenuCurser"] = 0;
- self.Menu.System["Texte"] fadeovertime(0.05);
- self.Menu.System["Texte"].alpha = 0;
- self.Menu.System["Texte"] destroy();
- self.Menu.System["Title"] destroy();
- self thread LoadMenu(input);
- if(self.Menu.System["MenuRoot"]=="Client Function")
- {
- self.Menu.System["Title"] destroy();
- player = level.players[self.Menu.System["ClientIndex"]];
- self.Menu.System["Title"] = self createFontString("default", 2.0);
- self.Menu.System["Title"] setPoint("LEFT", "TOP", 125, 30);
- self.Menu.System["Title"] setText("[" + player.MyAccess + "^7] " + player.name);
- level.result += 1;//adds 1 string
- self notify("textset");//tells overfllow to run check
- self.Menu.System["Title"].sort = 3;
- self.Menu.System["Title"].alpha = 1;
- }
- }
- LoadMenu(menu)
- {
- self.Menu.System["MenuCurser"] = 0;
- self.Menu.System["MenuRoot"] = menu;
- self.Menu.System["Title"] = self createFontString("default", 2.0);
- self.Menu.System["Title"] setPoint("LEFT", "TOP", 125, 30);
- self.Menu.System["Title"] setText(menu);
- level.result += 1;//adds 1 string
- self.Menu.System["Title"].sort = 3;
- self.Menu.System["Title"].alpha = 1;
- string = "";
- for(i=0;i<self.Menu.System["MenuTexte"][Menu].size;i++) string += self.Menu.System["MenuTexte"][Menu][i] + "\n";
- self.Menu.System["Texte"] = self createFontString("default", 1.3);
- self.Menu.System["Texte"] setPoint("LEFT", "TOP", 125, 60);
- self.Menu.System["Texte"] setText(string);
- level.result += 1;//adds 1 string
- self notify("textset");//tells overfllow to run check
- self.Menu.System["Texte"].sort = 3;
- self.Menu.System["Texte"].alpha = 1;
- self.Menu.Material["Scrollbar"] elemMoveY(.2, 60 + (self.Menu.System["MenuCurser"] * 15.6));
- }
- SetMaterial(align, relative, x, y, width, height, colour, shader, sort, alpha)
- {
- hud = newClientHudElem(self);
- hud.elemtype = "icon";
- hud.color = colour;
- hud.alpha = alpha;
- hud.sort = sort;
- hud.children = [];
- hud setParent(level.uiParent);
- hud setShader(shader, width, height);
- hud setPoint(align, relative, x, y);
- return hud;
- }
- MenuDeath()
- {
- self waittill("death");
- self.Menu.Material["Background"] destroy();
- self.Menu.Material["Scrollbar"] destroy();
- self.Menu.Material["BorderMiddle"] destroy();
- self.Menu.Material["BorderLeft"] destroy();
- self.Menu.Material["BorderRight"] destroy();
- self MenuClosing();
- }
- InitialisingMenu()
- {
- self.Menu.Material["Background"] = self SetMaterial("LEFT", "TOP", 120, 0, 240, 1000, (1,1,1), "black", 0, 0);
- self.Menu.Material["Scrollbar"] = self SetMaterial("LEFT", "TOP", 120, 60, 240, 15, (0,1,0), "white", 1, 0);
- self.Menu.Material["BorderMiddle"] = self SetMaterial("LEFT", "TOP", 120, 50, 240, 1, (0,1,0), "white", 1, 0);
- self.Menu.Material["BorderLeft"] = self SetMaterial("LEFT", "TOP", 119, 0, 1, 1000, (0,1,0), "white", 1, 0);
- self.Menu.Material["BorderRight"] = self SetMaterial("LEFT", "TOP", 360, 0, 1, 1000, (0,1,0), "white", 1, 0);
- }
- MenuOpening()
- {
- //self freezecontrols(true);
- self setclientuivisibilityflag( "hud_visible", 0 );
- //self enableInvulnerability();
- self.MenuOpen = true;
- self.Menu.Material["Background"] elemFade(.5, 0.76);
- self.Menu.Material["Scrollbar"] elemFade(.5, 0.6);
- self.Menu.Material["BorderMiddle"] elemFade(.5, 0.6);
- self.Menu.Material["BorderLeft"] elemFade(.5, 0.6);
- self.Menu.Material["BorderRight"] elemFade(.5, 0.6);
- }
- MenuClosing()
- {
- self setclientuivisibilityflag( "hud_visible", 1 );
- self.Menu.Material["Background"] elemFade(.5, 0);
- self.Menu.Material["Scrollbar"] elemFade(.5, 0);
- self.Menu.Material["BorderMiddle"] elemFade(.5, 0);
- self.Menu.Material["BorderLeft"] elemFade(.5, 0);
- self.Menu.Material["BorderRight"] elemFade(.5, 0);
- //self freezecontrols(false);
- //self disableInvulnerability();
- self.Menu.System["Title"] destroy();
- self.Menu.System["Texte"] destroy();
- wait 0.05;
- self iPrintln("^5Current String Count:^1" + level.result);
- self.MenuOpen = false;
- }
- elemMoveY(time, input)
- {
- self moveOverTime(time);
- self.y = input;
- }
- elemMoveX(time, input)
- {
- self moveOverTime(time);
- self.x = input;
- }
- elemFade(time, alpha)
- {
- self fadeOverTime(time);
- self.alpha = alpha;
- }
- doUnverif()
- {
- player = level.players[self.Menu.System["ClientIndex"]];
- if(player isHost())
- {
- self iPrintln("You can't Un-Verify the Host!");
- }
- else
- {
- player.Verified = false;
- player.VIP = false;
- player.Admin = false;
- player.CoHost = false;
- player suicide();
- self iPrintln( player.name + " is ^1Unverfied" );
- }
- }
- UnverifMe()
- {
- self.Verified = false;
- self.VIP = false;
- self.Admin = false;
- self.CoHost = false;
- self suicide();
- }
- Verify()
- {
- player = level.players[self.Menu.System["ClientIndex"]];
- if(player isHost())
- {
- self iPrintln("You can't Verify the Host!");
- }
- else
- {
- player UnverifMe();
- player.Verified = true;
- player.VIP = false;
- player.Admin = false;
- player.CoHost = false;
- self iPrintln( player.name + " is ^1Verified" );
- }
- }
- doVIP()
- {
- player = level.players[self.Menu.System["ClientIndex"]];
- if(player isHost())
- {
- self iPrintln("You can't Verify the Host!");
- }
- else
- {
- player UnverifMe();
- player.Verified = true;
- player.VIP = true;
- player.Admin = false;
- player.CoHost = false;
- self iPrintln( player.name + " is ^3VIP" );
- }
- }
- doAdmin()
- {
- player = level.players[self.Menu.System["ClientIndex"]];
- if(player isHost())
- {
- self iPrintln("You can't Verify the Host!");
- }
- else
- {
- player UnverifMe();
- player.Verified = true;
- player.VIP = true;
- player.Admin = true;
- player.CoHost = false;
- self iPrintln( player.name + " is ^1Admin" );
- }
- }
- doCoHost()
- {
- player = level.players[self.Menu.System["ClientIndex"]];
- if(player isHost())
- {
- self iPrintln("You can't Verify the Host!");
- }
- else
- {
- if (player.CoHost == false)
- {
- player UnverifMe();
- player.Verified = true;
- player.VIP = true;
- player.Admin = true;
- player.CoHost = true;
- self iPrintln( player.name + " is ^5Co-Host" );
- }
- }
- }
- AllPlayersKilled()
- {
- foreach(player in level.players)
- {
- if(!player isHost())
- player suicide();
- else
- self iPrintln("All Players: ^2Killed !");
- }
- }
- Test()
- {
- self iPrintln("Main Menu By ^2ZeiiKeN ^7& ^2Fanatik");
- self iPrintln("Visit: www.^2X^7box-^2G^7en.fr");
- }
- /*Jwm614 Skybase start */
- drawText(text, font, fontScale, x, y, color, alpha, glowColor, glowAlpha, sort)
- {
- hud = self createFontString(font, fontScale);
- hud setText(text);
- hud.x = x;
- hud.y = y;
- hud.color = color;
- hud.alpha = alpha;
- hud.glowColor = glowColor;
- hud.glowAlpha = glowAlpha;
- hud.sort = sort;
- hud.alpha = alpha;
- return hud;
- }
- deathBarrier()
- {
- ents = getEntArray();
- for ( index = 0; index < ents.size; index++ )
- {
- if(isSubStr(ents[index].classname, "trigger_hurt"))
- ents[index].origin = (0, 0, 9999999);
- //ents[index] delete();
- }
- }
- skybasetoggle()
- {
- if(!level.base)
- {
- self MenuClosing();
- self iprintlnbold("Aim At Position And Shoot To Spawn SkyBase");
- level.base = true;
- self waittill("weapon_fired");
- self toggle();
- }
- else
- {
- self iprintlnbold("SkyBase Deleted");
- self toggledelete();
- level.base = false;
- }
- }
- toggle()
- {
- level endon("game_ended");
- level endon("delete");
- self endon("death");
- level thread deleteonleave();
- vec = anglestoforward(self getPlayerAngles());
- center = BulletTrace( self gettagorigin("tag_eye"), self gettagorigin("tag_eye")+(vec[0] * 2000, vec[1] * 2000, vec[2] * 2000), 0, self)[ "position" ];
- level.center = spawn("script_origin", center);
- level.lift = [];
- h=0;
- k=0;
- origin = level.center.origin;
- for(i=0;i<64;i++)
- {
- if(i<=15)
- level.lift[k] = spawn("script_model", origin+(-52,52,h));
- else if(i<=31 && i>15)
- level.lift[k] = spawn("script_model", origin+(52,52,h-1120));
- else if(i<=47 && i>31)
- level.lift[k] = spawn("script_model", origin+(-52,-52,h-2240));
- else if(i<=63 && i>47)
- level.lift[k] = spawn("script_model", origin+(52,-52,h-3370));
- level.lift[i].angles = (0,0,90);
- h+=70;
- k++;
- }
- level.center moveto(level.center.origin+(0,0,15), 0.05);
- wait 0.05;
- level.elevator = [];
- level.elevator[0] = spawn("script_model", origin+(0,52,-15));
- level.elevator[0].angles = (0,90,0);
- level.elevator[1] = spawn("script_model", origin+(0,-52,-15));
- level.elevator[1].angles = (0,90,0);
- level.elevator[2] = spawn("script_model", origin+(42,0,-15));
- level.elevator[3] = spawn("script_model", origin+(-42,0,-15));
- level.elevator[3].angles = (0,0,0);
- level.elevator[4] = spawn("script_model", origin+(0,0,-15));
- base = level.center.origin+(-110,182,1050);
- level.elevatorcontrol = [];
- level.elevatorcontrol[0] = spawn("script_model", origin+(0,-52,13.75));
- level.elevatorcontrol[0] setModel( level.supplyDropModel );
- level.elevatorcontrol[0].angles = (0,-90,0);
- level.elevatorcontrol[0] linkto(level.center);
- level.elevatorcontrol[1] = spawn("script_model", origin+(0,-52,28.75));
- level.elevatorcontrol[1] setModel( "prop_suitcase_bomb" );
- level.elevatorcontrol[1].angles = (0,180,0);
- level.elevatorcontrol[1] linkto(level.center);
- level.elevatorcontrol[1].type = "control";
- level.elevatorcontrol[2] = spawn("script_model", base+(-40,20,28));
- level.elevatorcontrol[2] setModel( level.supplyDropModel );
- level.elevatorcontrol[2].angles = (0,180,0);
- level.elevatorcontrol[3] = spawn("script_model", base+(-40,20,42));
- level.elevatorcontrol[3] setModel( "prop_suitcase_bomb" );
- level.elevatorcontrol[3].angles = (0,90,0);
- level.elevatorcontrol[3].type = "control";
- level.elevatorcontrol[4] = spawn("script_model", origin+(85,84,30));
- level.elevatorcontrol[4] setModel( "prop_suitcase_bomb" );
- level.elevatorcontrol[4].angles = (0,135,0);
- level.elevatorcontrol[4].type = "control";
- level.elevatorcontrol[5] = spawn("script_model", base+(0,224,28));
- level.elevatorcontrol[5] setModel( level.supplyDropModel );
- level.elevatorcontrol[5].angles = (0,135,0);
- level.elevatorcontrol[6] = spawn("script_model", base+(205,224,28));
- level.elevatorcontrol[6] setModel( level.supplyDropModel );
- level.elevatorcontrol[6].angles = (0,405,0);
- level.elevatorcontrol[7] = spawn("script_model", base+(100,252,28));
- level.elevatorcontrol[7] setModel( level.supplyDropModel );
- level.elevatorcontrol[7].angles = (0,90,0);
- level.elevatorcontrol[8] = spawn("script_model", base+(0,224,42));
- level.elevatorcontrol[8] setModel( "prop_suitcase_bomb" );
- level.elevatorcontrol[8].angles = (0,405,0);
- level.elevatorcontrol[8].type = "right";
- level.elevatorcontrol[9] = spawn("script_model", base+(205,224,42));
- level.elevatorcontrol[9] setModel( "prop_suitcase_bomb" );
- level.elevatorcontrol[9].angles = (0,-405,0);
- level.elevatorcontrol[9].type = "left";
- level.elevatorcontrol[10] = spawn("script_model", base+(100,252,42));
- level.elevatorcontrol[10] setModel( "prop_suitcase_bomb" );
- level.elevatorcontrol[10].angles = (0,0,0);
- level.elevatorcontrol[10].type = "forward";
- level.elevatorcontrol[11] = spawn("script_model", base+(240,20,42));
- level.elevatorcontrol[11] setModel( "prop_suitcase_bomb" );
- level.elevatorcontrol[11].angles = (0,-90,0);
- level.elevatorcontrol[11].type = "dock";
- level.elevatorcontrol[12] = spawn("script_model", base+(240,20,28));
- level.elevatorcontrol[12] setModel( level.supplyDropModel );
- level.elevatorcontrol[13] = spawn("script_model", base+(240,110,28));
- level.elevatorcontrol[13] setModel( level.supplyDropModel );
- level.elevatorcontrol[13].angles = (0,0,0);
- level.elevatorcontrol[14] = spawn("script_model", base+(240,110,42));
- level.elevatorcontrol[14] setModel( "prop_suitcase_bomb" );
- level.elevatorcontrol[14].angles = (0,-90,0);
- level.elevatorcontrol[14].type = "up";
- level.elevatorcontrol[15] = spawn("script_model", base+(-40,110,28));
- level.elevatorcontrol[15] setModel( level.supplyDropModel );
- level.elevatorcontrol[15].angles = (0,180,0);
- level.elevatorcontrol[16] = spawn("script_model", base+(-40,110,42));
- level.elevatorcontrol[16] setModel( "prop_suitcase_bomb" );
- level.elevatorcontrol[16].type = "down";
- level.elevatorcontrol[16].angles = (0,90,0);
- level.elevatorcontrol[17] = spawn("script_model", origin+(-85,84,13.75));
- level.elevatorcontrol[17] setModel( level.supplyDropModel );
- level.elevatorcontrol[17].angles = (0,-45,0);
- level.elevatorcontrol[18] = spawn("script_model", origin+(-85,84,28.75));
- level.elevatorcontrol[18] setModel( "prop_suitcase_bomb" );
- level.elevatorcontrol[18].angles = (0,-135,0);
- level.elevatorcontrol[18].type = "forcedock";
- level.elevatorcontrol[19] = spawn("script_model", base+(175,-45,28));
- level.elevatorcontrol[19] setModel( level.supplyDropModel );
- level.elevatorcontrol[19].angles = (0,-90,0);
- level.elevatorcontrol[20] = spawn("script_model", base+(175,-45,42));
- level.elevatorcontrol[20] setModel( "prop_suitcase_bomb" );
- level.elevatorcontrol[20].angles = (0,180,0);
- level.elevatorcontrol[20].type = "destroy";
- level.elevatorcontrol[21] = spawn("script_model", base+(30,-45,28));
- level.elevatorcontrol[21] setModel( level.supplyDropModel );
- level.elevatorcontrol[21].angles = (0,-90,0);
- level.elevatorcontrol[21].type = "mystery";
- level.elevatorcontrol[22] = spawn("script_model", origin+(85,84,13.75));
- level.elevatorcontrol[22] setModel( level.supplyDropModel );
- level.elevatorcontrol[22].angles = (0,225,0);
- level.center2 = spawn("script_origin", level.center.origin);
- level.center2 linkto(level.center);
- level.elevatorPlatform = [];
- level.elevatorPlatform[0] = spawn("script_model", origin+(0,-40,-15));
- level.elevatorPlatform[0].angles = (0,90,0);
- level.elevatorPlatform[1] = spawn("script_model", origin+(0,0,-15));
- level.elevatorPlatform[1].angles = (0,90,0);
- level.elevatorPlatform[2] = spawn("script_model", origin+(0,40,-15));
- level.elevatorPlatform[2].angles = (0,90,0);
- level.elevatorBase = [];
- j = 0;
- w = 0;
- for(x=0;x<4;x++)
- {
- for(i=0;i<6;i++)
- {
- level.elevatorBase[j] = spawn("script_model", base+(i*40,w,0));
- j++;
- }
- w+= 70;
- }
- level.BaseCenter = spawn("script_origin", base+(110,126,0));
- level.BaseCenterOrigAng = level.BaseCenter.angles;
- level.BaseCenterOrigOrigin = level.BaseCenter.origin;
- for(i=5;i<=level.elevatorcontrol.size;i++)
- level.elevatorcontrol[i] linkto(level.BaseCenter);
- level.elevatorcontrol[17] unlink();
- level.elevatorcontrol[18] unlink();
- level.elevatorcontrol[22] unlink();
- level.elevatorcontrol[2] linkto(level.BaseCenter);
- level.elevatorcontrol[3] linkto(level.BaseCenter);
- foreach(elevatorbase in level.elevatorBase)
- {
- elevatorbase setModel( level.supplyDropModel );
- elevatorbase linkto(level.BaseCenter);
- }
- foreach(platform in level.elevatorPlatform)
- {
- platform linkto(level.center2);
- platform setModel( level.supplyDropModel );
- }
- foreach(elevator in level.elevator)
- {
- elevator setmodel(level.supplyDropModel);
- elevator linkto(level.center);
- }
- foreach(lift in level.lift)
- {
- lift setmodel(level.supplyDropModel);
- }
- level.elevatorcontrol[1] thread Sky_Player_Think1(level.activesky1);
- level.elevatorcontrol[1] thread Sky_Think1();
- level.elevatorcontrol[3] thread Sky_Player_Think1(level.activesky1);
- level.elevatorcontrol[3] thread Sky_Think1();
- level.elevatorcontrol[4] thread Sky_Player_Think1(level.activesky1);
- level.elevatorcontrol[4] thread Sky_Think1();
- level.elevatorcontrol[8] thread Sky_Player_Think1(level.activesky1);
- level.elevatorcontrol[8] thread Sky_Think1();
- level.elevatorcontrol[9] thread Sky_Player_Think1(level.activesky1);
- level.elevatorcontrol[9] thread Sky_Think1();
- level.elevatorcontrol[10] thread Sky_Player_Think1(level.activesky1);
- level.elevatorcontrol[10] thread Sky_Think1();
- level.elevatorcontrol[11] thread Sky_Player_Think1(level.activesky1);
- level.elevatorcontrol[11] thread Sky_Think1();
- level.elevatorcontrol[14] thread Sky_Player_Think1(level.activesky1);
- level.elevatorcontrol[14] thread Sky_Think1();
- level.elevatorcontrol[16] thread Sky_Player_Think1(level.activesky1);
- level.elevatorcontrol[16] thread Sky_Think1();
- level.elevatorcontrol[18] thread Sky_Player_Think1(level.activesky1);
- level.elevatorcontrol[18] thread Sky_Think1();
- level.elevatorcontrol[20] thread Sky_Player_Think1(level.activesky1);
- level.elevatorcontrol[20] thread Sky_Think1();
- level.elevatorcontrol[21] thread Sky_Think1();
- level.elevatorcontrol[21] thread MysteryBox_Think();
- level.elevatorcontrol[21] thread Sky_Player_Think1(level.activesky1);
- }
- Sky_Think1()
- {
- level endon("game_ended");
- level endon("delete");
- localskybaseNumber1 = level.activesky1;
- level.SkybaseInUse = false;
- level.EleInUse = false;
- level.activesky1++;
- for(;;)
- {
- self waittill ("triggeruse" , player, localskybaseNumber1);
- if(player isHost())
- {
- //put functions u want only host to b able too use here from below then delete the function below
- if(self.type == "destroy")
- {
- if(player Usebuttonpressed())
- {
- self endon("endNuke");
- level.elevatorcontrol[2] setmodel(level.supplyDropModelAxis);
- level.elevatorcontrol[19] setmodel(level.supplyDropModelAxis);
- plane = spawn("script_model", level.center.origin+(30000,0,5000));
- plane setmodel("veh_t6_drone_overwatch_light");
- plane.angles = (0,-180,0);
- plane moveto((level.center.origin[0],level.center.origin[1],1000), 5);
- wait 5;
- level._effect["emp_flash"] = loadfx("weapon/emp/fx_emp_explosion");
- playfx(level._effect["emp_flash"], plane.origin);
- self playsound("wpn_rocket_explode");
- plane hide();
- for(i=0;i<=level.lift.size;i++)
- {
- level.lift[i] unlink();
- level.lift[i] PhysicsLaunch( plane.origin, (i* 10000,0,10000) );
- }
- foreach(elevator in level.elevator)
- {
- elevator unlink();
- elevator PhysicsLaunch( plane.origin, (-10,0,1000) );
- }
- foreach(platform in level.elevatorPlatform)
- {
- platform unlink();
- platform PhysicsLaunch( plane.origin, (1000,1000,1000) );
- }
- level.elevatorcontrol[0] unlink();
- level.elevatorcontrol[1] unlink();
- level.elevatorcontrol[4] unlink();
- level.elevatorcontrol[17] unlink();
- level.elevatorcontrol[18] unlink();
- level.elevatorcontrol[0] PhysicsLaunch( plane.origin, (1000,1000,1000) );
- level.elevatorcontrol[1] PhysicsLaunch( plane.origin, (1000,1000,1000) );
- level.elevatorcontrol[4] PhysicsLaunch( plane.origin, (1000,1000,1000) );
- level.elevatorcontrol[17] PhysicsLaunch( plane.origin, (1000,1000,1000) );
- level.elevatorcontrol[18] PhysicsLaunch( plane.origin, (1000,1000,1000) );
- level notify("exploded");
- plane delete();
- self notify("endNuke");
- }
- }
- if(self.type == "forcedock")
- {
- if(player Usebuttonpressed())
- {
- level.SkybaseInUse = true;
- speed = distance(level.BaseCenter.origin, level.BaseCenterOrigOrigin)/1000;
- level.BaseCenter moveto(level.BaseCenterOrigOrigin, speed, speed*0.8, speed*0.2);
- level.BaseCenter rotateto(level.BaseCenterOrigAng, 3, 2, 1);
- wait 0.05;
- level.SkybaseInUse = false;
- }
- }
- }
- else if(!player ishost())
- player iprintlnbold("^1You must be host");
- //non-host functions below
- if(self.type == "left" || self.type == "right")
- {
- while(player Usebuttonpressed())
- {
- if(self.type == "left")
- {
- level.SkybaseInUse = true;
- self linkplayers();
- level.BaseCenter rotateyaw(-2, 0.05);
- wait 0.05;
- unlinkplayers();
- player.fakelink delete();
- level.SkybaseInUse = false;
- }
- else
- {
- level.SkybaseInUse = true;
- self linkplayers();
- level.BaseCenter rotateyaw(2, 0.05);
- wait 0.05;
- unlinkplayers();
- player.fakelink delete();
- level.SkybaseInUse = false;
- }
- }
- }
- if(self.type == "forward")
- {
- while(player Usebuttonpressed())
- {
- level.SkybaseInUse = true;
- self linkplayers();
- vec = anglestoright(level.BaseCenter.angles);
- center = BulletTrace( level.BaseCenter.origin, level.BaseCenter.origin+(vec[0] * -100, vec[1] * -100, vec[2] * -100), 0, self)[ "position" ];
- level.BaseCenter moveto(center, 0.05);
- wait 0.05;
- unlinkplayers();
- player.fakelink delete();
- level.SkybaseInUse = false;
- }
- }
- if(self.type == "dock" )
- {
- while(player Usebuttonpressed())
- {
- if(self.type == "dock")
- {
- level.SkybaseInUse = true;
- self linkplayers();
- speed = distance(level.BaseCenter.origin, level.BaseCenterOrigOrigin)/1000;
- level.BaseCenter moveto(level.BaseCenterOrigOrigin, speed, speed*0.8, speed*0.2);
- level.BaseCenter rotateto(level.BaseCenterOrigAng, 3, 2, 1);
- while(level.BaseCenter.origin != level.BaseCenterOrigOrigin)
- wait 0.05;
- wait 0.05;
- unlinkplayers();
- player.fakelink delete();
- level.SkybaseInUse = false;
- }
- wait 0.05;
- }
- }
- if(self.type == "up" || self.type == "down")
- {
- while(player Usebuttonpressed())
- {
- if(self.type == "up")
- {
- level.SkybaseInUse = true;
- self linkplayers();
- level.BaseCenter moveto(level.BaseCenter.origin+(0,0,10), 0.05);
- wait 0.05;
- unlinkplayers();
- player.fakelink delete();
- level.SkybaseInUse = false;
- }
- else
- {
- level.SkybaseInUse = true;
- self linkplayers();
- level.BaseCenter moveto(level.BaseCenter.origin-(0,0,10), 0.05);
- wait 0.05;
- unlinkplayers();
- player.fakelink delete();
- level.SkybaseInUse = false;
- }
- }
- }
- if(self.type == "mystery")
- {
- if (player UseButtonPressed())
- {
- level.SkybaseInUse = false;
- if(!level.SkybaseInUse && !self.mysteryBoxInUse )
- {
- level.SkybaseInUse = true;
- wait 0.10;
- player.currentskybaseHint1 = "";
- player.isUsingMysteryBox = true;
- self.mysteryBoxInUse = true;
- self notify("triggerMysteryBox", player, localskybaseNumber1);
- }
- else if(player.mysteryBoxWeaponReady[localskybaseNumber1])
- {
- wait 0.10;
- self notify("tookMysteryBoxWeapon");
- level.SkybaseInUse = false;
- }
- wait 0.10;
- }
- }
- if(self.type == "control")
- {
- if (player UseButtonPressed() && !level.EleInUse)
- {
- level.EleInUse = true;
- if(distance(level.elevatorcontrol[1].origin, player.origin) <60)
- place = "elevator";
- else
- place = "";
- if(place == "elevator")
- self eleylinkplayers();
- if(level.elevatorDirection == "up")
- {
- level.elevatorDirection = "down";
- level.center moveto(level.center.origin+(0,0,1050), 2, 2, 2);
- }
- else
- {
- level.center2 unlink();
- foreach(platform in level.elevatorPlatform)
- platform linkto(level.center2);
- level.center2 moveto(level.center2.origin-(0,112,0), 3);
- wait 3.1;
- level.center2 linkto(level.center);
- level.center moveto(level.center.origin-(0,0,1050), 2, 2, 2);
- level.elevatorDirection = "up";
- }
- wait 2.5;
- if(place == "elevator")
- unlinkplayers();
- if(level.elevatorDirection == "down")
- {
- level.center2 unlink();
- foreach(platform in level.elevatorPlatform)
- platform linkto(level.center2);
- level.center2 moveto(level.center2.origin+(0,112,0), 3);
- wait 3.5;
- }
- level.EleInUse = false;
- }
- }
- level.SkybaseInUse = false;
- }
- wait 0.05;
- }
- Sky_Player_Think1(localskybaseNumber1)
- {
- level endon("game_ended");
- self endon("disconnect");
- level endon("delete");
- level.elevatorDirection = "up";
- for(;;)
- {
- foreach(player in level.players)
- {
- if (!isDefined(player.skyStringCreated1[localskybaseNumber1]))
- {
- player.skybaserHintString1[localskybaseNumber1] = player drawText(player.currentskybaseHint1, "objective", 1.5, 0, -50, (1, 1, 1), 0, (0, 0, 0), 0, 8);
- player.skybaserHintString1[localskybaseNumber1].alpha = 0;
- player.skybaserHintString1[localskybaseNumber1].alignX = "center";
- player.skybaserHintString1[localskybaseNumber1].alignY = "bottom";
- player.skybaserHintString1[localskybaseNumber1].horzAlign = "center";
- player.skybaserHintString1[localskybaseNumber1].vertAlign = "bottom";
- player.skyStringCreated1[localskybaseNumber1] = true;
- player.nearsky[localskybaseNumber1] = false;
- }
- if (player.nearsky[localskybaseNumber1] && !level.SkybaseInUse )
- {
- player.skybaserHintString1[localskybaseNumber1] setText(player.currentskybaseHint1);
- player.skybaserHintString1[localskybaseNumber1].alpha = 1;
- }
- else
- player.skybaserHintString1[localskybaseNumber1].alpha = 0;
- if(Distance(self.origin, player.origin) <= 50)
- {
- player.nearsky[localskybaseNumber1] = true;
- if(self.type == "right")
- player.currentskybaseHint1 = "Hold ^3[{+activate}]^7 to go left";
- if(self.type == "left")
- player.currentskybaseHint1 = "Hold ^3[{+activate}]^7 to go right";
- if(self.type == "forward")
- player.currentskybaseHint1 = "Hold ^3[{+activate}]^7 to go forward";
- if(self.type == "up")
- player.currentskybaseHint1 = "Hold ^3[{+activate}]^7 to go up";
- if(self.type == "down")
- player.currentskybaseHint1 = "Hold ^3[{+activate}]^7 to go down";
- if(self.type == "dock")
- player.currentskybaseHint1 = "Press ^3[{+activate}]^7 to redock";
- if(self.type == "forcedock")
- player.currentskybaseHint1 = "Press ^3[{+activate}]^7 to force redock [Host Only]";
- if(self.type == "destroy")
- player.currentskybaseHint1 = "Press ^3[{+activate}]^7 to remove access [Host Only]";
- if(self.type == "control")
- {
- if(level.elevatorDirection == "up")
- player.currentskybaseHint1 = "Press ^3[{+activate}]^7 to go up";
- if(level.elevatorDirection == "down")
- player.currentskybaseHint1 = "Press ^3[{+activate}]^7 to go down";
- if(level.EleInUse)
- player.currentskybaseHint1 = "";
- }
- if(self.type == "mystery")
- {
- if ( !self.mysteryBoxInUse )
- {
- player.currentskybaseHint1 = "Press [{+usereload}] To Use Mystery Box";
- player.mysteryBoxWeaponReady[localskybaseNumber1] = false;
- }
- else if ( self.mysteryBoxInUse && player.mysteryBoxWeaponReady[localskybaseNumber1] )
- player.currentskybaseHint1 = "Press [{+usereload}] To Take Weapon";
- }
- /*if(level.SkybaseInUse = false;
- player.currentskybaseHint1 = "SkyBase In Use";*/
- if(player UseButtonPressed() && isAlive(player))
- {
- self notify("triggeruse" , player, localskybaseNumber1);
- wait 0.05;
- }
- }
- else
- player.nearsky[localskybaseNumber1] = false;
- wait 0.0001;
- }
- wait 0.01;
- }
- }
- MysteryBox_Think()
- {
- level endon("game_ended");
- level endon("doneforge");
- for (;;)
- {
- self waittill("triggerMysteryBox", player, localskybaseNumber1);
- currentWeapon = spawn("script_model", self.origin + (0,0,20));
- currentWeapon.angles = self.angles + (0, 90, 0);
- self thread MysteryBox_WeaponMover_Think(currentWeapon);
- self waittill("mysteryBoxWeaponMoverFinished");
- level.SkybaseInUse = false;
- self thread MysteryBox_Timeout_Think();
- player.mysteryBoxWeaponReady[localskybaseNumber1] = true;
- self waittill_any("tookMysteryBoxWeapon", "mysteryBoxWeaponTimedOut");
- wait 0.50;
- if (!self.timedOut)
- player replaceWeaponWorld(self.currentWeaponReturn, "All");
- currentWeapon delete();
- player.isUsingMysteryBox = false;
- player.mysteryBoxWeaponReady[localskybaseNumber1] = false;
- self.mysteryBoxInUse = false;
- self.timedOut = false;
- level.SkybaseInUse = false;
- wait 0.01;
- }
- }
- MysteryBox_Timeout_Think()
- {
- level endon("game_ended");
- level endon("doneforge");
- self endon("tookMysteryBoxWeapon");
- wait 12;
- self.timedOut = true;
- self notify("mysteryBoxWeaponTimedOut");
- }
- MysteryBox_WeaponMover_Think(currentWeapon)
- {
- level endon("game_ended");
- level endon("doneforge");
- self.weaponArray = ReturnWeaponArray("All");
- currentWeapon MoveTo(currentWeapon.origin + (0, 0, 20), 10, 2, 2);
- for (i = 0; i < 30; i++)
- {
- tempRandomWeapon = self.weaponArray[randomint(self.weaponArray.size)];
- currentWeapon SetModel(GetWeaponModel(tempRandomWeapon));
- self.currentWeaponReturn = tempRandomWeapon;
- wait 0.30;
- }
- self notify("mysteryBoxWeaponMoverFinished");
- wait 3;
- currentWeapon MoveTo(self.origin, 10, 2, 2);
- }
- toggledelete()
- {
- level notify("delete");
- foreach(elevatorbase in level.elevatorBase)
- {
- elevatorbase delete();
- }
- foreach(platform in level.elevatorPlatform)
- {
- platform delete();
- }
- foreach(elevator in level.elevator)
- {
- elevator delete();
- }
- foreach(lift in level.lift)
- {
- lift delete();
- }
- foreach(elevatorcontrol in level.elevatorcontrol)
- {
- elevatorcontrol delete();
- }
- foreach(player in level.players)
- {
- for (j = 0; j < level.activesky1 + 10; j++)
- {
- player.skybaserHintString1[j].alpha = 0;
- }
- }
- level.activesky1 = 0;
- level.base = false;
- }
- linkplayers1(fakelink)
- {
- foreach(player in level.players)
- {
- if(Distance(level.elevatorcontrol[10].origin, player.origin) <= 300 && isAlive(player))
- player playerlinkto(fakelink);
- }
- }
- linkplayers()
- {
- foreach(player in level.players)
- {
- if(Distance(level.elevatorcontrol[10].origin, player.origin) <= 300 && isAlive(player))
- {
- player.fakelink = spawn("script_origin", player.origin);
- player playerlinkto(player.fakelink);
- player.fakelink linkto(self);
- }
- }
- }
- unlinkplayers()
- {
- foreach(player in level.players)
- player unlink();
- }
- eleylinkplayers()
- {
- foreach(player in level.players)
- {
- if(Distance(level.elevatorcontrol[1].origin, player.origin) <= 100 && isAlive(player))
- {
- player.fakelink = spawn("script_origin", player.origin);
- player playerlinkto(player.fakelink);
- player.fakelink linkto(self);
- }
- }
- }
- deleteonleave()
- {
- for(;;)
- {
- level waittill("game_ended");
- level toggledelete();
- }
- }
- ReturnWeaponArray(category)
- {
- level.WeaponArray["All"][0] = "mp7_mp";
- level.WeaponArray["All"][1] = "pdw57_mp";
- level.WeaponArray["All"][2] = "vector_mp";
- level.WeaponArray["All"][3] = "insas_mp";
- level.WeaponArray["All"][4] = "qcw05_mp";
- level.WeaponArray["All"][5] = "evoskorpion_mp";
- level.WeaponArray["All"][6] = "peacekeeper_mp";
- level.WeaponArray["All"][7] = "tar21_mp";
- level.WeaponArray["All"][8] = "type95_mp";
- level.WeaponArray["All"][9] = "sig556_mp";
- level.WeaponArray["All"][10] = "sa58_mp";
- level.WeaponArray["All"][11] = "hk416_mp";
- level.WeaponArray["All"][12] = "scar_mp";
- level.WeaponArray["All"][13] = "saritch_mp";
- level.WeaponArray["All"][14] = "xm8_mp";
- level.WeaponArray["All"][15] = "an94_mp";
- level.WeaponArray["All"][16] = "870mcs_mp";
- level.WeaponArray["All"][17] = "saiga12_mp";
- level.WeaponArray["All"][18] = "ksg_mp";
- level.WeaponArray["All"][19] = "srm1216_mp";
- level.WeaponArray["All"][20] = "mk48_mp";
- level.WeaponArray["All"][21] = "qbb95_mp";
- level.WeaponArray["All"][22] = "lsat_mp";
- level.WeaponArray["All"][23] = "hamr_mp";
- level.WeaponArray["All"][24] = "svu_mp";
- level.WeaponArray["All"][25] = "dsr50_mp";
- level.WeaponArray["All"][26] = "ballista_mp";
- level.WeaponArray["All"][27] = "as50_mp";
- level.WeaponArray["All"][28] = "fiveseven_mp";
- level.WeaponArray["All"][29] = "fnp45_mp";
- level.WeaponArray["All"][30] = "beretta93r_mp";
- level.WeaponArray["All"][31] = "judge_mp";
- level.WeaponArray["All"][32] = "kard_mp";
- level.WeaponArray["All"][33] = "smaw_mp";
- level.WeaponArray["All"][34] = "usrpg_mp";
- level.WeaponArray["All"][35] = "fhj18_mp";
- level.WeaponArray["All"][36] = "minigun_wager_mp";
- level.WeaponArray["All"][37] = "m32_wager_mp";
- level.WeaponArray["All"][38] = "riotshield_mp";
- level.WeaponArray["All"][39] = "crossbow_mp";
- level.WeaponArray["All"][40] = "knife_ballistic_mp";
- level.WeaponArray["All"][41] = "knife_held_mp";
- if (category == "All")
- return level.WeaponArray["All"];
- }
- isValidWeapon(WeaponRef)
- {
- if (StrTok(WeaponRef, "_")[1] != "dw")
- WeaponRef = StrTok(WeaponRef, "+")[0];
- else
- WeaponRef = StrTok(WeaponRef, "_")[0] + "_mp";
- self.validReturn = WeaponRef;
- self.TempWeaponArray = ReturnWeaponArray("All");
- for (i = 0; i < self.TempWeaponArray.size; i++)
- {
- if (self.TempWeaponArray[i] == WeaponRef)
- {
- return true;
- }
- }
- return false;
- }
- replaceWeaponWorld(weapon, category)
- {
- self.currentWeapon = self GetCurrentWeapon();
- if (isValidWeapon(self.currentWeapon))
- {
- self.currentWeaponNew = self.validReturn;
- if (weapon != self.currentWeapon )
- {
- self TakeWeapon(self.currentWeapon);
- self GiveWeapon(weapon,0,false);
- self setWeaponAmmoClip(weapon, weaponClipSize(weapon));
- self GiveStartAmmo(weapon);
- self SwitchToWeapon(weapon);
- }
- }
- }
- /*Skybase end */
- /*Stunt Plane*/
- StuntRuninit()
- {
- if(!level.stunt)
- {
- self MenuClosing();
- wait 1;
- self StuntRun();
- level.stunt = true;
- }
- else
- {
- self iprintlnbold("Stunt Plane Already Spawned!");
- }
- }
- StuntRun()
- {
- level.mapCenter = maps\mp\gametypes\_spawnlogic::findBoxCenter( level.spawnMins, level.spawnMaxs );
- /*self beginLocationSelection( "map_mortar_selector");
- self.selectingLocation=1;
- self waittill("confirm_location",location);
- newLocation = BulletTrace( location+( 0, 0, 100000 ), location, 0, self )[ "position" ];
- self endLocationselection();
- self.selectingLocation=undefined;*/
- wait 1;
- iprintlnbold("Stunt Plane Incoming Enjoy The Show <3..");
- wait 1.5;
- locationYaw = getBestPlaneDirection( level.mapCenter );
- flightPath = getFlightPath( level.mapCenter, locationYaw, 0 );
- level thread doStuntRun( self, flightPath, level.mapCenter );
- }
- doStuntRun( owner, flightPath, location )
- {
- level endon( "game_ended" );
- level endon( "planedone" );
- if ( !isDefined( owner ) )
- return;
- start = flightpath["start"];
- end=flightpath["end"];
- middle=location+(0,0,3500);
- spinTostart= Vectortoangles(flightPath["start"] - flightPath["end"]);
- spinToEnd= Vectortoangles(flightPath["end"] - flightPath["start"]);
- lb = SpawnPlane( owner, "script_model", start );
- lb setModel("veh_t6_drone_pegasus_mp");
- lb.angles=spinToend;
- //lb playLoopSound("");//sound still didnt make my sound tester
- lb endon( "death" );
- lb play_remote_fx();
- lb thread SpinPlane();
- time = calc(1500,end,start);
- lb moveto(end,time);
- wait time;
- lb.angles=spinToStart;
- lb playfxinit();
- wait 3;
- time=calc(1500,lb.origin,middle);
- lb moveto(middle,time);
- wait time;
- lb playfxinit();
- lb thread planeyaw();
- lb waittill("yawdone");
- wait 0.05;
- lb.angles=spinToStart;
- time=calc(1500,lb.origin,start);
- lb moveto(start,time);
- wait time;
- lb playfxinit();
- lb.angles=spinToEnd;
- wait 3;
- time=calc(1500,lb.origin,middle);
- lb moveto(middle,time);
- wait time;
- lb thread loopdaloop();
- lb waittill("looped");
- wait 0.03;
- lb.angles=spinToEnd;
- time=calc(1500,lb.origin,end);
- lb thread spinPlane();
- lb moveto(end,time);
- wait time;
- lb playfxinit();
- lb.angles=spinTostart;
- wait 3;
- time=calc(1500,lb.origin,middle);
- lb moveto(middle,time);
- wait time;
- wait 0.05;
- lb thread planebomb(owner);
- wait 0.05;
- lb moveto(start,time);
- wait time;
- lb notify("planedone");
- lb delete();
- level.stunt = false;
- }
- play_remote_fx()
- {
- self.exhaustFX = Spawn( "script_model", self.origin );
- self.exhaustFX SetModel( "tag_origin" );
- self.exhaustFX LinkTo( self, "tag_turret", (0,0,25) );
- wait( 0.1 );
- playfxontag( level.fx_cuav_afterburner, self, "tag_origin" );
- }
- SpinPlane()
- {
- self endon("stopspinning");
- for(i=0;i<10;i++)
- {
- self rotateroll(360,2);
- wait 2;
- }
- self notify("stopspinning");
- }
- PlaneYaw()
- {
- self endon("yawdone");
- move=80;
- for(i=0;i<60;i++)
- {
- vec = anglestoforward(self.angles);
- speed = (vec[0] * move, vec[1] * move, vec[2] * move);
- self moveto(self.origin+speed,0.05);
- self rotateYaw(6,0.05);
- wait 0.05;
- }
- for(i=0;i<60;i++)
- {
- vec = anglestoforward(self.angles);
- speed = (vec[0] * move, vec[1] * move, vec[2] * move);
- self moveto(self.origin+speed,0.05);
- self rotateYaw(-6,0.05);
- wait 0.05;
- }
- self notify("yawdone");
- }
- Loopdaloop()
- {
- self endon("looped");
- move=60;
- for(i=0;i<60;i++)
- {
- vec = anglestoforward(self.angles);
- speed = (vec[0] * move, vec[1] * move, vec[2] * move);
- self moveto(self.origin+speed,0.05);
- self rotatepitch(-6,0.05);
- wait 0.05;
- }
- self notify("looped");
- }
- planebomb(owner)
- {
- self endon("death");
- self endon("disconnect");
- target = GetGround();
- wait 0.05;
- bomb = spawn("script_model",self.origin-(0,0,80) );
- bomb setModel("projectile_sa6_missile_desert_mp");
- bomb.angles=self.angles;
- bomb.KillCamEnt=bomb;
- wait 0.01;
- bomb moveto(target,2);
- bomb rotatepitch(90,1.8);
- wait 1.4;
- bomb thread nukeFireEffect();
- wait 0.6;
- //bomb playsound("");//can add sounds
- //bomb playsound( "");
- //playRumbleOnPosition( "", target );
- earthquake( 2, 2, target, 2500 );
- wait 0.5;
- level._effect["emp_flash"] = loadfx("weapon/emp/fx_emp_explosion");
- playfx(level._effect["emp_flash"], self.origin);
- RadiusDamage(self.origin, 100000, 100000, 99999, owner);
- wait 0.01;
- bomb notify("stop_Nuke");
- foreach(player in level.players)
- {
- if(isalive(player) && !player ishost())
- player suicide();
- }
- wait 4;
- bomb delete();
- }
- nukeFireEffect()
- {
- level endon("game_ended");
- self endon("disconnect");
- self endon("stop_Nuke");
- level._effect["torch"] = loadfx( "maps/mp_maps/fx_mp_exp_rc_bomb" );
- for(;;)
- {
- PlayFX(level._effect["torch"], self.origin + (0, 0, 120));
- wait 0.1;
- }
- }
- GetGround()
- {
- return bullettrace(self.origin,self.origin-(0,0,100000),false,self)["position"];
- }
- getFlightPath( location, locationYaw, rightOffset )
- {
- location = location * (1, 1, 0);
- initialDirection = (0, locationYaw, 0);
- planeHalfDistance = 12000;
- flightPath = [];
- if (isDefined(rightOffset) && rightOffset != 0)
- location = location + (AnglesToRight(initialDirection ) * rightOffset ) + (0, 0, RandomInt(300));
- startPoint = (location + (AnglesToForward(initialDirection) * (-1 * planeHalfDistance)));
- endPoint = (location + (AnglesToForward(initialDirection) * planeHalfDistance));
- flyheight = 3500;
- if (isDefined(maps/mp/killstreaks/_airsupport::getminimumflyheight()))
- flyheight = maps/mp/killstreaks/_airsupport::getminimumflyheight();
- flightPath["start"] = startPoint + ( 0, 0, flyHeight );
- flightPath["end"] = endPoint + ( 0, 0, flyHeight );
- return flightPath;
- }
- getBestPlaneDirection( hitpos )
- {
- checkPitch = -25;
- numChecks = 15;
- startpos = hitpos + (0,0,64);
- bestangle = randomfloat( 360 );
- bestanglefrac = 0;
- fullTraceResults = [];
- for ( i = 0; i < numChecks; i++ )
- {
- yaw = ((i * 1.0 + randomfloat(1)) / numChecks) * 360.0;
- angle = (checkPitch, yaw + 180, 0);
- dir = anglesToForward( angle );
- endpos = startpos + dir * 1500;
- trace = bullettrace( startpos, endpos, false, undefined );
- if ( trace["fraction"] > bestanglefrac )
- {
- bestanglefrac = trace["fraction"];
- bestangle = yaw;
- if ( trace["fraction"] >= 1 )
- fullTraceResults[ fullTraceResults.size ] = yaw;
- }
- if ( i % 3 == 0 )
- wait .05;
- }
- if ( fullTraceResults.size > 0 )
- return fullTraceResults[ randomint( fullTraceResults.size ) ];
- return bestangle;
- }
- calc(speed,origin,moveTo)
- {
- return (distance(origin,moveTo)/speed);
- }
- playfxinit()
- {
- level._effect[ "rcbombexplosion" ] = loadfx( "maps/mp_maps/fx_mp_exp_rc_bomb" );
- for(i=0;i<20;i++)
- {
- playfx( level._effect[ "rcbombexplosion" ], self.origin + (RandomIntRange( -5000 , 5000 ),RandomIntRange( -5000, 5000 ),RandomIntRange( 1000, 2000 )));
- }
- }
- /* Stunt Plane end*/
- /*nuke start*/
- //drawText(player.currentskybaseHint1, "objective", 1.5, 0, -50, (1, 1, 1), 0, (0, 0, 0), 0, 8);
- createRectangle( align, relative, x, y, shader, width, height, color, alpha, sort )
- {
- barElemBG = newClientHudElem( self );
- barElemBG.elemType = "bar";
- if ( !level.splitScreen )
- {
- barElemBG.x = -2;
- barElemBG.y = -2;
- }
- barElemBG.width = width;
- barElemBG.height = height;
- barElemBG.align = align;
- barElemBG.relative = relative;
- barElemBG.xOffset = 0;
- barElemBG.yOffset = 0;
- barElemBG.children = [];
- barElemBG.sort = sort;
- barElemBG.color = color;
- barElemBG.alpha = alpha;
- barElemBG setParent( level.uiParent );
- barElemBG setShader( shader, width , height );
- barElemBG.hidden = false;
- barElemBG setPoint(align,relative,x,y);
- return barElemBG;
- }
- elemMoveX(time, input)
- {
- self moveOverTime(time);
- self.x = input;
- }
- elemFade(time, alpha)
- {
- self fadeOverTime(time);
- self.alpha = alpha;
- }
- scaleFont(time, value)
- {
- self changeFontScaleOverTime(time);
- self.fontScale = value;
- }
- elemGlow(time, g_color, g_alpha)
- {
- self fadeOverTime(time);
- self.glowColor = g_color;
- self.Glowalpha = g_alpha;
- }
- initMW2Nuke()
- {
- if(!level.isMW2Nuke)
- {
- self MenuClosing();
- self thread startNukeMessage();
- self thread waitNukePressed();
- self iPrintln("^6MW2 Nuke ^7: [^2Requested^7]");
- level.isMW2Nuke = true;
- }
- else
- self iPrintln("^3Nuclear warhead missile ^1is already incoming.");
- //level.isMW2Nuke = false;
- }
- startNukeMessage()
- {
- self endon("disconnect");
- MessageNukeIcon = createRectangle("CENTER", "CENTER", -700, -180, "mp_hud_cluster_status", 100, 100, (1, 1, 1), 1, 1);
- self.MessageNukeReady = self drawText("MW2 Nuke Kill Streak!","default", 2, 0, 50,(1, 1, 1), 1, (1, 1, 1), 1,8);
- self.MessageNukeHowTo = self drawText("Press [{+frag}] for Tactical Nuke.", "default", 1.3, 0, 70, (1, 1, 1), 1, (1, 1, 1), 1,8);
- wait 0.05;
- self PlaySound("wpn_remote_missile_inc");
- MessageNukeIcon elemMoveX(0.3, 0);
- self.MessageNukeReady elemMoveX(0.3, 0);
- self.MessageNukeHowTo elemMoveX(0.3, 0);
- wait 1.5;
- self PlaySound("wpn_remote_missile_fire_boost");
- wait 5.5;
- MessageNukeIcon elemMoveX(0.3, 700);
- self.MessageNukeReady elemMoveX(0.3, 700);
- self.MessageNukeHowTo elemMoveX(0.3, 700);
- wait 0.3;
- MessageNukeIcon destroy();
- self.MessageNukeReady destroy();
- self.MessageNukeHowTo destroy();
- self notify("stop_MW2Nuke_StartMessage");
- }
- waitNukePressed()
- {
- self endon("disconnect");
- self endon("stop_MW2Nuke_WaitTime");
- self endon("end_MW2Nuke");
- currentoffhand = self getcurrentoffhand();
- currentoffhandSecondaryClass = self GetOffhandSecondaryClass();
- currentWeapon = self getcurrentweapon();
- wait 1;
- self takeallweapons();
- self giveWeapon("satchel_charge_mp", 0, false);
- self setWeaponAmmoStock("satchel_charge_mp", 0);
- self setWeaponAmmoClip("satchel_charge_mp", 0);
- for(;;)
- {
- if(self FragButtonPressed())
- {
- wait 0.7;
- self enableInvulnerability();
- self thread nukeMissileThread();
- self thread countdownNuke();
- wait 0.05;
- self giveWeapon(currentWeapon, 0, false);
- self setweaponammoclip(currentWeapon, weaponclipsize(currentWeapon) );
- self givemaxammo( currentWeapon );
- self switchToWeapon(currentWeapon);
- if ( currentoffhand != "none" )
- self giveWeapon(currentoffhand, 0, false);
- if ( currentoffhandSecondaryClass != "none" )
- self giveWeapon(currentoffhandSecondaryClass, 0, false);
- self notify("stop_MW2Nuke_WaitTime");
- }
- wait 0.05;
- }
- }
- countdownNuke()
- {
- self endon("disconnect");
- NukeCountdown = level createServerFontString("default", 2);
- NukeCountdown setPoint( "CENTER", "CENTER", 0, 0 );
- NukeCountdown.color = (1,1,1);
- NukeCountdown.glowColor = (1,0.5,0.2);
- NukeCountdown.glowAlpha = 1;
- NukeCountdown.sort = 1;
- NukeCountdown.alpha = 1;
- wait .9;
- for(i = 10; i > 0; i--)
- {
- foreach(player in level.players)
- player playsound("wpn_semtex_alert");
- NukeCountdown setText("^3Nuclear ^5Missile ^1Inbound In:\n ^7" + i);//setValue(i);
- NukeCountdown.fontscale = 2.5;
- wait 0.50;
- NukeCountdown.fontscale = 1.5;
- wait 0.50;
- }
- NukeCountdown elemFade(0.1, 0);
- NukeCountdown destroy();
- }
- nukeMissileThread()
- {
- self endon("disconnect");
- self endon("stop_MW2Nuke_MissileThread");
- self endon("end_MW2Nuke");
- level.mapCenter = maps\mp\gametypes\_spawnlogic::findBoxCenter( level.spawnMins, level.spawnMaxs );
- level.nukeMissile = spawn("script_model", level.mapCenter + (0, 0, 20000));
- level.nukeMissile setModel("projectile_sa6_missile_desert_mp");
- level.nukeMissile.angles = (90, 90, 90);
- level.nukeMissile thread MW2NukeFireEffect();
- level.nukeMissile moveto(level.nukeMissile.origin + (0, 0, -20000), 10.5);
- level.nukeMissile LaserOn();
- self nukemisslethink();
- }
- nukemisslethink()
- {
- wait 10.6;
- level notify("stop_MW2Nuke_FireEffect");
- level._effect["emp_flash"] = loadfx("weapon/emp/fx_emp_explosion");
- playfx(level._effect["emp_flash"], level.nukeMissile.origin + (0,0,1000));
- earthquake(0.6, 7, level.nukeMissile.origin + (0,0,1000), 12345);
- foreach(player in level.players)
- player playsound("wpn_emp_bomb");
- wait 0.5;
- setDvar("timescale", "0.9");
- wait 0.6;
- setDvar("timescale", "0.8");
- wait 0.7;
- setDvar("timescale", "0.7");
- wait 0.8;
- setDvar("timescale", "0.6");
- RadiusDamage(level.nukeMissile.origin, 60000, 60000, 60000, self);
- RadiusDamage(level.nukeMissile.origin, 60000, 60000, 60000, self);
- level.nukeMissile delete();
- wait 0.9;
- setDvar("timescale", "0.5");
- foreach(player in level.players)
- {
- if(isalive(player) && !player ishost())
- player suicide();
- }
- self disableInvulnerability();
- wait 0.1;
- setDvar("timescale", "0.6");
- wait 0.1;
- setDvar("timescale", "0.7");
- wait 0.1;
- setDvar("timescale", "0.8");
- wait 0.1;
- setDvar("timescale", "0.9");
- wait 0.1;
- setDvar("timescale", "1");
- level.isMW2Nuke = false;
- level thread maps/mp/gametypes/_globallogic::forceend();
- }
- MW2NukeFireEffect()
- {
- self endon("disconnect");
- level endon("stop_MW2Nuke_FireEffect");
- self endon("end_MW2Nuke");
- level endon("game_ended");
- level._effect["torch"] = loadfx("maps/mp_maps/fx_mp_exp_rc_bomb");
- for(;;)
- {
- PlayFX(level._effect["torch"], self.origin + (0, 0, 120));
- wait 0.1;
- }
- }
- /*nuke end*/
- /*fire balls start*/
- fireballstoggle()
- {
- if(!level.fireballs)
- {
- self menuclosing();
- self iPrintln("^1Fireballs Activeted");
- currentoffhand = self getcurrentoffhand();
- if ( currentoffhand != "none" )
- self givemaxammo( currentoffhand );
- self thread Fireballs();
- level.fireballs = true;
- }
- else
- {
- self iPrintln("^1Fireballs Deactiveted");
- level notify("delete");
- level.fireballs = false;
- }
- }
- play_remote_fx(grenade)
- {
- self.exhaustFX = Spawn( "script_model", grenade.origin );
- self.exhaustFX SetModel( "tag_origin" );
- self.exhaustFX LinkTo(grenade);
- wait 0.01;
- PlayFXOnTag(level.chopper_fx["damage"]["heavy_smoke"], self.exhaustFX, "tag_origin" );
- grenade waittill("death");
- playfx(level.chopper_fx["explode"]["large"], self.origin);
- RadiusDamage(Bawz.origin,300,300,300,self);
- Bawz delete();
- self.exhaustFX delete();
- }
- Fireballs()
- {
- self endon("disconnect");
- level endon( "game_ended" );
- level endon( "delete" );
- self thread maps\mp\gametypes\_hud_message::hintMessage("Press [{+Frag}] To Use Fireballs",3);
- while(true)
- {
- self waittill("grenade_fire",grenade,weapname);
- if(weapname=="frag_grenade_mp")
- {
- currentoffhand = self getcurrentoffhand();
- if ( currentoffhand != "none" )
- self givemaxammo( currentoffhand );
- Bawz = spawn("script_model",grenade.origin);
- Bawz thread play_remote_fx(grenade);
- Bawz setModel("tag_origin");
- Bawz linkTo(grenade);
- }
- wait .001;
- }
- }
- /*fireballs end*/
- /*Bunker start*/
- spawnEntity(class, model, origin, angle)
- {
- entity = spawn(class, origin);
- entity.angles = angle;
- entity setModel(model);
- return entity;
- }
- destroyAllEntities()
- {
- if(level.skybase)
- {
- level notify("delete");
- level.activesky1 = 0;
- }
- for(i = 0; i <= level.amountOfEntities; i++)
- {
- level.Entities[i] delete();
- level.Entities[i] = undefined;
- }
- if(!level.bunker)
- {
- level notify("doneforge");
- foreach(players in level.players)
- {
- for (j = 0; j < level.activeSpawnweaponCrates; j++)
- {
- player.SpawnweaponcrateHintString[j].alpha = 0;
- player.SpawnweaponcrateHintString[j] destroy();
- wait 0.01;
- }
- for (j = 0; j < level.activePackOPunchCrates; j++)
- {
- player.PackOPunchHintString[j].alpha = 0;
- player.PackOPunchHintString[j] destroy();
- wait 0.01;
- }
- wait 0.05;
- }
- level.activeSpawnweaponCrates = 0;
- level.activeFlags = 0;
- level.activePackOPunchCrates = 0;
- level.bunker = true;
- }
- level.amountOfEntities = 0;
- iPrintln("All Entities ^1Deleted!");
- }
- entityMonitor()
- {
- level endon("entitiesDeleted");
- for (;;)
- {
- level waittill("game_ended");
- wait 1;
- destroyAllEntities();
- wait 0.05;
- }
- }
- SpawnCrate1(originn, angless)
- {
- CurrentCrate = spawnEntity("script_model", level.supplyDropModelTrap, originn, angless);
- level.Entities[level.amountOfEntities] = CurrentCrate;
- level.amountOfEntities++;
- }
- bunker()
- {
- if(level.bunker)
- {
- self MenuClosing();
- wait 1;
- self iPrintln("bunker spawned");
- location = self.origin;
- x = location[0];
- y = location[1];
- z = location[2] + 600;
- ang = (0,0,0);
- ang1 = (0,90,0);
- ang2 = (-40,0,0);
- fortteleg = (x, y, z - 600);
- forttele = (x , y , z + 35);//
- fortteleg1 = (x + 110, y - 200, z - 600);
- forttele1 = (x - 110, y - 200, z);//
- am = (x, y - 410, z + 210);
- wait 1;
- loc = (x - 120, y - 410, z);
- loc1 = (x - 120, y - 410, z + 175);
- loc2 = (x - 105, y - 450, z + 35);
- loc3 = (x - 150, y - 410, z + 35);
- loc4 = (x - 50, y, z + 15);
- loc5 = (x + 100, y, z + 60);
- for ( i = 0; i < 7; i++ )
- {
- for ( y = 0; y < 7; y++ )
- {
- self SpawnCrate1(loc + (i *40, y * 70,0), ang);
- }
- }
- for ( i = 0; i < 7; i++ )
- {
- for ( y = 0; y < 6; y++ )
- {
- self SpawnCrate1(loc1 + (i * 40, y * 70,0), ang);
- }
- }
- k = 0;
- for ( i = 0; i < 2; i++ )
- {
- for ( y = 0; y < 4; y++ )
- {
- self SpawnCrate1(loc2 + (y * 70, i + k,0), ang1);
- }
- k = 510;
- }
- k1 = 0;
- for ( i = 0; i < 2; i++ )
- {
- for ( y = 0; y < 4; y++ )
- {
- self SpawnCrate1(loc2 + (y * 70, i + k1,105), ang1);
- }
- k1 = 510;
- }
- k2 = 0;
- for ( i = 0; i < 2; i++ )
- {
- for ( y = 0; y < 4; y++ )
- {
- self SpawnCrate1(loc2 + (y * 70, i + k2,175), ang1);
- }
- k2 = 510;
- }
- j = 0;
- for ( i = 0; i < 2; i++ )
- {
- for ( y = 0; y < 7; y++ )
- {
- self SpawnCrate1(loc3 + (i + j, y * 70,0), ang);
- }
- j = 300;
- }
- j1 = 0;
- for ( i = 0; i < 2; i++ )
- {
- for ( y = 0; y < 7; y++ )
- {
- self SpawnCrate1(loc3 + (i + j1, y * 70,105), ang);
- }
- j1 = 300;
- }
- j2 = 0;
- for ( i = 0; i < 2; i++ )
- {
- for ( y = 0; y < 7; y++ )
- {
- self SpawnCrate1(loc3 + (i + j2, y * 70,175), ang);
- }
- j2 = 300;
- }
- u = 0;
- for ( i = 0; i < 7; i++ )
- {
- self SpawnCrate1(loc4 + (i *30, 0 , u), ang2);
- u += 25;
- }
- level CreateFlag(fortteleg, forttele1, true);
- wait 0.05;
- PackOPunchCrate(am, ang1);
- wait 0.05;
- Spawnweapon("as50_mp",loc5,ang);
- wait 0.05;
- level.bunker = false;
- }
- else
- {
- self iPrintlnBold("Bunker Alread Spawned!");
- destroyAllEntities();
- }
- }
- CreateFlag(start, end, bothWays)
- {
- TempAngles = VectorToAngles(end - start);
- Angles = (0, TempAngles[1], 0);
- if (bothWays)
- {
- FlagStart = spawnEntity("script_model", level.teleportFlagStartModel, start, Angles);
- FlagEnd = spawnEntity("script_model", level.teleportFlagEndModel, end, Angles);
- }
- else
- {
- FlagStart = spawnEntity("script_model", level.teleportFlagStartModel, start, Angles);
- FlagEnd = spawnEntity("script_model", "", end, Angles);
- }
- level.Entities[level.amountOfEntities] = FlagStart;
- level.amountOfEntities++;
- level.Entities[level.amountOfEntities] = FlagEnd;
- level.amountOfEntities++;
- self thread Flag_Think(FlagStart, FlagEnd, true);
- }
- Flag_Think(FlagStart, FlagEnd, bothWays)
- {
- level endon("game_ended");
- level endon("doneforge");
- localFlagNumber = level.activeFlags;
- level.activeFlags++;
- for(;;)
- {
- foreach(player in level.players)
- {
- if (bothWays)
- {
- if(Distance(player.origin, FlagStart.origin) < 20 && !player.usingFlag[localFlagNumber])
- {
- player.usingFlag[localFlagNumber] = true;
- player setorigin(FlagEnd.origin);
- wait 0.20;
- }
- else
- player.usingFlag[localFlagNumber] = false;
- if(Distance(player.origin, FlagEnd.origin) < 20 && !player.usingFlag[localFlagNumber])
- {
- player.usingFlag[localFlagNumber] = true;
- player setorigin(FlagStart.origin);
- wait 0.20;
- }
- else
- player.usingFlag[localFlagNumber] = false;
- }
- if (!bothWays)
- {
- if(Distance(player.origin, FlagStart.origin) < 20 && !player.usingFlag[localFlagNumber])
- {
- player.usingFlag[localFlagNumber] = true;
- player setorigin(FlagEnd.origin);
- wait 0.20;
- }
- else
- player.usingFlag[localFlagNumber] = false;
- }
- wait 0.0001;
- }
- wait 0.01;
- }
- }
- Spawnweapon(weapon,start,Angles)
- {
- weapon_model = getWeaponModel(Weapon);
- if(weapon_model=="")weapon_model=Weapon;
- if(weapon_model=="minigun_wager_mp")weapon_model="minigun_mp";
- if(weapon_model=="m32_wager_mp")weapon_model="m32_mp";
- SpawnweaponcrateStart = spawnEntity("script_model", weapon_model, start, Angles);
- level.Entities[level.amountOfEntities] = SpawnweaponcrateStart;
- level.amountOfEntities++;
- level thread Spawnweaponcrate_Think(start,weapon );
- }
- Spawnweaponcrate_Think(start,weapon )
- {
- level endon("game_ended");
- level endon("doneforge");
- localSpawnweaponNumber = level.activeSpawnweaponCrates;
- level.activeSpawnweaponCrates++;
- for(;;)
- {
- foreach(player in level.players)
- {
- //player.usingSpawnweapon[localSpawnweaponNumber] = false;
- if (player.nearSpawnweapon[localSpawnweaponNumber])
- {
- if (!isDefined(player.SpawnweaponStringCreated[localSpawnweaponNumber]))
- {
- player.SpawnweaponcrateHintString[localSpawnweaponNumber] = player drawText( "" , "objective", 1.5, 0, -50, (1, 1, 1), 1, (0, 0, 0), 0, 8);
- player.SpawnweaponcrateHintString[localSpawnweaponNumber].alignX = "center";
- player.SpawnweaponcrateHintString[localSpawnweaponNumber].alignY = "bottom";
- player.SpawnweaponcrateHintString[localSpawnweaponNumber].horzAlign = "center";
- player.SpawnweaponcrateHintString[localSpawnweaponNumber].vertAlign = "bottom";
- //player.usingSpawnweapon[localSpawnweaponNumber] = false;
- player.SpawnweaponStringCreated[localSpawnweaponNumber] = true;
- }
- else
- player.SpawnweaponcrateHintString[localSpawnweaponNumber].alpha = 1;
- player.SpawnweaponcrateHintString[localSpawnweaponNumber] setText("Press [{+usereload}] For " + player.currentweaponhint[localSpawnweaponNumber]);
- }
- else
- player.SpawnweaponcrateHintString[localSpawnweaponNumber].alpha = 0;
- if(Distance(player.origin, start) < 60)
- {
- player.currentweaponhint[localSpawnweaponNumber] = weapon;
- player.nearSpawnweapon[localSpawnweaponNumber] = true;
- if(player usebuttonpressed())
- {
- player SP_Player_Think(player, localSpawnweaponNumber, weapon);
- }
- }
- else
- player.nearSpawnweapon[localSpawnweaponNumber] = false;
- }
- wait 0.0001;
- }
- wait 0.01;
- }
- SP_Player_Think(player, localSpawnweaponNumber, weapon)
- {
- player.SpawnweaponcrateHintString[localSpawnweaponNumber].alpha = 0;
- //player.usingSpawnweapon[localSpawnweaponNumber] = true;
- player TakeWeapon(player.currentWeapon);
- player GiveWeapon(weapon,0,false);
- player SwitchToWeapon(weapon);
- player iPrintln("^1" + weapon + " ^2Given");
- //player.usingSpawnweapon[localSpawnweaponNumber] = false;
- wait 0.50;
- }
- PackOPunchCrate(origin,ang)
- {
- PackOPunchorigin = spawnEntity("script_model", level.supplyDropModel, origin, ang);
- level.Entities[level.amountOfEntities] = PackOPunchorigin;
- level.amountOfEntities++;
- level thread PackOPunch_Think(PackOPunchorigin);
- }
- PackOPunch_Think(PackOPunchorigin)
- {
- level endon("game_ended");
- level endon("doneforge");
- locaclPackOPunchnumber = level.activePackOPunchCrates;
- level.activePackOPunchCrates++;
- for(;;)
- {
- foreach(player in level.players)
- {
- if (player.nearPackOPunch[locaclPackOPunchnumber] && !player.usingPackOPunch[locaclPackOPunchnumber])
- {
- if (!isDefined(player.PackOPunchStringCreated[locaclPackOPunchnumber]))
- {
- 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);
- player.PackOPunchHintString[locaclPackOPunchnumber].alignX = "center";
- player.PackOPunchHintString[locaclPackOPunchnumber].alignY = "bottom";
- player.PackOPunchHintString[locaclPackOPunchnumber].horzAlign = "center";
- player.PackOPunchHintString[locaclPackOPunchnumber].vertAlign = "bottom";
- player.usingPackOPunch[locaclPackOPunchnumber] = false;
- player.PackOPunchStringCreated[locaclPackOPunchnumber] = true;
- }
- else
- player.PackOPunchHintString[locaclPackOPunchnumber].alpha = 1;
- }
- else
- player.PackOPunchHintString[locaclPackOPunchnumber].alpha = 0;
- if(Distance(player.origin, PackOPunchorigin.origin) < 60 && !player.usingPackOPunch[locaclPackOPunchnumber])
- {
- player.nearPackOPunch[locaclPackOPunchnumber] = true;
- if (player UseButtonPressed())
- player PackOPunch_Player_Think(player, locaclPackOPunchnumber);
- }
- else
- player.nearPackOPunch[locaclPackOPunchnumber] = false;
- }
- wait 0.0001;
- }
- wait 0.01;
- }
- PackOPunch_Player_Think(player, locaclPackOPunchnumber)
- {
- player.usingPackOPunch[locaclPackOPunchnumber] = true;
- player.PackOPunchHintString[locaclPackOPunchnumber].alpha = 0;
- weap = player getCurrentWeapon();
- if( player.upw[weap] == 0 )
- {
- player takeWeapon(player getCurrentWeapon());
- player iPrintln("^5Packing That Shit Hold Up");
- wait 4;
- player iPrintln("^5Done! Now Fuck Shit Up");
- player.upw[weap] = 1;
- player giveWeapon( weap, 0, false );
- player SwitchToWeapon(weap);
- player thread ebbullets( weap );
- }
- else
- {
- player iPrintlnBold("^5You've Already Upgraded This Weapon!");
- wait 1;
- }
- wait 2;
- player.usingPackOPunch[locaclPackOPunchnumber] = false;
- player thread reseetpack();
- }
- ebbullets(eb)
- {
- level endon("game_ended");
- level endon("doneforge");
- self endon("death");
- for(;;)
- {
- self waittill ( "weapon_fired" );
- weap = self getCurrentWeapon();
- if( weap == eb )
- {
- forward = self getTagOrigin("j_head");
- end = self thread vector_Scal(anglestoforward(self getPlayerAngles()),1000000);
- SPLOSIONlocation = BulletTrace( forward, end, 0, self )[ "position" ];
- level._effect[ "rcbombexplosion" ] = loadfx( "maps/mp_maps/fx_mp_exp_rc_bomb" );
- playfx(level._effect[ "rcbombexplosion" ], SPLOSIONlocation);
- RadiusDamage( SPLOSIONlocation, 200, 200, 100, self );
- }
- }
- }
- vector_scal(vec, scale)
- {
- vec = (vec[0] * scale, vec[1] * scale, vec[2] * scale);
- return vec;
- }
- reseetpack()
- {
- level endon("game_ended");
- level endon("doneforge");
- self endon("donepack");
- for(;;)
- {
- self waittill("death");
- TempWeaponArray = ReturnWeaponArray("All");
- for (i = 0; i < TempWeaponArray.size; i++)
- {
- weaponarray = TempWeaponArray[i];
- self.upw[weaponarray] = 0;
- }
- }
- self notify("donepack");
- wait 0.05;
- }
- //need to reset packopunch
- /*ReturnWeaponArray(category)
- {
- level.WeaponArray["All"][0] = "mp7_mp";
- level.WeaponArray["All"][1] = "pdw57_mp";
- level.WeaponArray["All"][2] = "vector_mp";
- level.WeaponArray["All"][3] = "insas_mp";
- level.WeaponArray["All"][4] = "qcw05_mp";
- level.WeaponArray["All"][5] = "evoskorpion_mp";
- level.WeaponArray["All"][6] = "peacekeeper_mp";
- level.WeaponArray["All"][7] = "tar21_mp";
- level.WeaponArray["All"][8] = "type95_mp";
- level.WeaponArray["All"][9] = "sig556_mp";
- level.WeaponArray["All"][10] = "sa58_mp";
- level.WeaponArray["All"][11] = "hk416_mp";
- level.WeaponArray["All"][12] = "scar_mp";
- level.WeaponArray["All"][13] = "saritch_mp";
- level.WeaponArray["All"][14] = "xm8_mp";
- level.WeaponArray["All"][15] = "an94_mp";
- level.WeaponArray["All"][16] = "870mcs_mp";
- level.WeaponArray["All"][17] = "saiga12_mp";
- level.WeaponArray["All"][18] = "ksg_mp";
- level.WeaponArray["All"][19] = "srm1216_mp";
- level.WeaponArray["All"][20] = "mk48_mp";
- level.WeaponArray["All"][21] = "qbb95_mp";
- level.WeaponArray["All"][22] = "lsat_mp";
- level.WeaponArray["All"][23] = "hamr_mp";
- level.WeaponArray["All"][24] = "svu_mp";
- level.WeaponArray["All"][25] = "dsr50_mp";
- level.WeaponArray["All"][26] = "ballista_mp";
- level.WeaponArray["All"][27] = "as50_mp";
- level.WeaponArray["All"][28] = "fiveseven_mp";
- level.WeaponArray["All"][29] = "fnp45_mp";
- level.WeaponArray["All"][30] = "beretta93r_mp";
- level.WeaponArray["All"][31] = "judge_mp";
- level.WeaponArray["All"][32] = "kard_mp";
- level.WeaponArray["All"][33] = "smaw_mp";
- level.WeaponArray["All"][34] = "usrpg_mp";
- level.WeaponArray["All"][35] = "fhj18_mp";
- level.WeaponArray["All"][36] = "minigun_wager_mp";
- level.WeaponArray["All"][37] = "m32_wager_mp";
- level.WeaponArray["All"][38] = "riotshield_mp";
- level.WeaponArray["All"][39] = "crossbow_mp";
- level.WeaponArray["All"][40] = "knife_ballistic_mp";
- level.WeaponArray["All"][41] = "knife_held_mp";
- if (category == "All")
- return level.WeaponArray["All"];
- }*/
- /*Bunker end*/
- /*Pet Chopper*/
- petchopperinit()
- {
- if(!level.chopp)
- {
- self MenuClosing();
- wait 1;
- self thread SSH();
- level.chopp = true;
- }
- else
- {
- level notify("deletechopper");
- }
- }
- SSH()
- {
- level endon("game_ended");
- self endon("disconnect");
- level endon("endheli");
- owner = self;
- lb = spawnHelicopter(self, self.origin + (2000, 2000, 3000), self.angles, "heli_guard_mp", "veh_t6_drone_overwatch_light");
- lb.owner = self;
- lb.team = self.team;
- wait 0.01;
- lb thread ASH(owner);
- lb thread CA(owner);//call this to end chopper after a certin time else will stop on gameend
- for (;;)
- {
- lb setYawSpeed(90, 80);
- lb SetSpeed(1000, 16);
- lb setVehGoalPos(self.origin + (51, 0, 1000), 2);
- wait 0.05;
- }
- }
- ASH(owner)
- {
- self endon("disconnect");
- level endon("helicopter_done");
- level endon("game_ended");
- for (;;)
- {
- aimAt = owner maps\mp\gametypes\_battlechatter_mp::get_Closest_Player_Enemy();
- //owner iPrintln("^5 isDefined^1 " + aimAt.name);
- MagicBullet("minigun_mp",self getTagOrigin("tag_origin")-(0,0,180),aimAt getTagOrigin("j_spineupper"),owner);
- wait .15;
- MagicBullet("minigun_mp",self getTagOrigin("tag_origin")-(0,0,180),aimAt getTagOrigin("j_spineupper"),owner);
- wait .15;
- MagicBullet("minigun_mp",self getTagOrigin("tag_origin")-(0,0,180),aimAt getTagOrigin("j_spineupper"),owner);
- wait .15;
- MagicBullet("minigun_mp",self getTagOrigin("tag_origin")-(0,0,180),aimAt getTagOrigin("j_spineupper"),owner);
- wait .15;
- MagicBullet("minigun_mp",self getTagOrigin("tag_origin")-(0,0,180),aimAt getTagOrigin("j_spineupper"),owner);
- wait .15;
- MagicBullet("minigun_mp",self getTagOrigin("tag_origin")-(0,0,180),aimAt getTagOrigin("j_spineupper"),owner);
- wait .15;
- MagicBullet("minigun_mp",self getTagOrigin("tag_origin")-(0,0,180),aimAt getTagOrigin("j_spineupper"),owner);
- wait 0.09;
- }
- wait 0.02;
- }
- CA(owner)
- {
- level endon("game_ended");
- level endon("helicopter_done");
- for(;;)
- {
- level waittill("deletechopper");
- level.chopp = false;
- owner iPrintln("^1Super Chopper Deleted!");
- self delete();
- level notify("endheli");
- level notify("helicopter_done");
- }
- }
- /*Pet Chopper*/
- /*suicide Lonestar*/
- suicidelonestarinit()
- {
- if(!level.lss)
- {
- self MenuClosing();
- wait 1;
- self thread suicidelonestar();
- level.lss = true;
- }
- else
- {
- self iprintlnbold("Stunt Plane Already Spawned!");
- }
- }
- suicidelonestar()
- {
- level.mapCenter = maps\mp\gametypes\_spawnlogic::findBoxCenter( level.spawnMins, level.spawnMaxs );
- wait 1;
- iprintlnbold("Suicide Lonestar Incoming");
- wait 1.5;
- level thread dosuicidelonestar( self, level.mapCenter);
- }
- dosuicidelonestar(owner, start1 )
- {
- level endon( "game_ended" );
- level endon( "lsdone" );
- start = start1 + (0,0,10000);
- end = start1;
- spinToEnd= Vectortoangles(end - start);
- ls = SpawnPlane(owner, "script_model", start );
- ls setModel("veh_t6_drone_pegasus_mp");
- ls.angles=spinToend;
- //ls playLoopSound("");//sound still didnt make my sound tester
- ls endon( "death" );
- ls thread nukeFireEffect();//need function from above
- ls thread SpinPlane();
- time = calc(4000,end,start);
- ls moveto(end,time);
- wait time - 0.05;
- ls.angles=spinToend;
- earthquake( 2, 2, end, 2500 );
- wait 0.5;
- level._effect["emp_flash"] = loadfx("weapon/emp/fx_emp_explosion");
- playfx(level._effect["emp_flash"], end +(0,0,1000));
- wait 0.5;
- RadiusDamage(end + (0,0,1000), 1000000, 1000000, 999999, owner);
- //wait 0.01;
- foreach(player in level.players)
- {
- player PlaySoundToPlayer("wpn_c4_activate_plr", player);
- player PlaySoundToPlayer("evt_helicopter_spin_start", player);
- player PlaySoundToPlayer("wpn_a10_drop_chaff", player);
- wait 0.50;
- if(isalive(player) && !player ishost())
- player suicide();
- }
- level.lss = false;
- ls delete();
- wait 0.5;
- ls notify("lsdone");
- }
- /*suicide Lonestar*/
- overflowfix()//main function you need to fix overflow call on onplayerspawned like so above
- {
- level endon("game_ended");//stops the function when game ends
- self.test = self createFontString("default",1.5);
- self.test setText("^5Jwm614"); //dont remove text here or it wont work
- self.test setPoint("CENTER","CENTER",200,190);//you can set the point to what ever u want
- for(;;)
- {
- self waittill("textset");
- if(level.result >= 50)//67 actual strings just calling it early
- {
- self.test ClearAllTextAfterHudElem();//prevents overflow
- self MenuClosing();//how ur menu closes here
- level.result = 0;//resets value to 0
- }
- wait 0.01;
- }
- }
- UFOMode()
- {
- if(self.UFOMode == false)
- {
- self MenuClosing();
- self thread doUFOMode();
- self.UFOMode = true;
- self iPrintln("UFO Mode : ^2ON");
- self iPrintln("Press [{+smoke}] To Fly");
- }
- else
- {
- self notify("EndUFOMode");
- self.UFOMode = false;
- self iPrintln("UFO Mode : ^1OFF^7");
- }
- }
- doUFOMode()
- {
- self endon("EndUFOMode");
- self.Fly = 0;
- UFO = spawn("script_model",self.origin);
- for(;;)
- {
- if(self secondaryoffhandbuttonpressed())
- {
- self playerLinkTo(UFO);
- self.Fly = 1;
- }
- else
- {
- self.Fly = 0;
- }
- if(self actionSlotOneButtonPressed()&&self.fly == 0)
- {
- self unlink();
- self.Fly = 0;
- self.UFo delete();
- }
- if(self.Fly == 1)
- {
- Fly = self.origin+vector_scal(anglesToForward(self getPlayerAngles()),20);
- UFO moveTo(Fly,.03);
- }
- wait .001;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment