#include maps/mp/gametypes/_hud_util;
#include maps/mp/_utility;
#include common_scripts/utility;
#include maps/mp/gametypes/_hud_message;
init()
{
level.clientid = 0;
level thread onplayerconnect();
precacheModel("veh_t6_drone_overwatch_light");
PrecacheModel( "prop_suitcase_bomb" );
PrecacheItem("m32_wager_mp");
PrecacheItem("minigun_wager_mp");
level.activesky1 = 0;
level deathBarrier();
level.base = false;
}
onplayerconnect()
{
level endon("game_ended");
for(;
{
level waittill( "connecting", player );
player.clientid = level.clientid;
level.clientid++;
player thread onplayerspawned();
}
}
onplayerspawned()
{
self endon( "disconnect" );
level endon( "game_ended" );
for(;
{
self waittill( "spawned_player" );
if(self isHost())
{
self freezecontrols(false);
self thread BuildMenu();
}
wait 0.05;
}
wait 0.50;
}
BuildMenu()
{
self endon("disconnect");
self endon("death");
for(;
{
if(self actionslotthreebuttonpressed())
{
}
if(self actionslottwobuttonpressed())
{
self skybasetoggle();
}
if(self actionslotonebuttonpressed())
{
self forceHost();
}
if(self actionslotfourbuttonpressed())
{
}
wait 0.05;
}
wait 0.05;
}
forceHost()
{
if (self isHost())
{
setDvar("party_connectToOthers", "0");
setDvar("partyMigrate_disabled", "1");
setDvar("party_mergingEnabled", "0");
setDvar("allowAllNAT", "1");
self iPrintln("Force Host On");
}
}
/*Jwm614 Skybase start */
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();
}
//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( "t6_wpn_supply_drop_ally" );
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,2);
level.elevatorcontrol[2] setModel( "t6_wpn_supply_drop_ally" );
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,2);
level.elevatorcontrol[5] setModel( "t6_wpn_supply_drop_ally" );
level.elevatorcontrol[5].angles = (0,135,0);
level.elevatorcontrol[6] = spawn("script_model", base+(205,224,2);
level.elevatorcontrol[6] setModel( "t6_wpn_supply_drop_ally" );
level.elevatorcontrol[6].angles = (0,405,0);
level.elevatorcontrol[7] = spawn("script_model", base+(100,252,2);
level.elevatorcontrol[7] setModel( "t6_wpn_supply_drop_ally" );
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,2);
level.elevatorcontrol[12] setModel( "t6_wpn_supply_drop_ally" );
level.elevatorcontrol[13] = spawn("script_model", base+(240,110,2);
level.elevatorcontrol[13] setModel( "t6_wpn_supply_drop_ally" );
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,2);
level.elevatorcontrol[15] setModel( "t6_wpn_supply_drop_ally" );
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( "t6_wpn_supply_drop_ally" );
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,2);
level.elevatorcontrol[19] setModel( "t6_wpn_supply_drop_ally" );
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,2);
level.elevatorcontrol[21] setModel( "t6_wpn_supply_drop_ally" );
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( "t6_wpn_supply_drop_ally" );
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( "t6_wpn_supply_drop_ally" );
elevatorbase linkto(level.BaseCenter);
}
foreach(platform in level.elevatorPlatform)
{
platform linkto(level.center2);
platform setModel( "t6_wpn_supply_drop_ally" );
}
foreach(elevator in level.elevator)
{
elevator setmodel("t6_wpn_supply_drop_ally");
elevator linkto(level.center);
}
foreach(lift in level.lift)
{
lift setmodel("t6_wpn_supply_drop_ally");
}
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("t6_wpn_supply_drop_axis");
level.elevatorcontrol[19] setmodel("t6_wpn_supply_drop_axis");
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);
}
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);
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 createFontString("objective", 1.5);
player.skybaserHintString1[localskybaseNumber1] setText(player.currentskybaseHint1);
player.skybaserHintString1[localskybaseNumber1].x = 0;
player.skybaserHintString1[localskybaseNumber1].y = -50;
player.skybaserHintString1[localskybaseNumber1].color = (1,1,1);
player.skybaserHintString1[localskybaseNumber1].alpha = 0;
player.skybaserHintString1[localskybaseNumber1].sort = 8;
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(distance(level.elevatorcontrol[1].origin, player.origin) <60)
{
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 = "";
}
else
{
if(level.elevatorDirection == "up")
player.currentskybaseHint1 = "Press ^3[{+activate}]^7 to Send Elevator up";
if(level.elevatorDirection == "down")
player.currentskybaseHint1 = "Press ^3[{+activate}]^7 to Send Elevator 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;
}
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();
player.fakelink delete();
}
}
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 */
#include maps/mp/gametypes/_hud_util;
#include maps/mp/_utility;
#include common_scripts/utility;
#include maps/mp/gametypes/_hud_message;
init()
{
level.clientid = 0;
level thread onplayerconnect();
precacheModel("veh_t6_drone_overwatch_light");
PrecacheModel( "prop_suitcase_bomb" );
PrecacheItem("m32_wager_mp");
PrecacheItem("minigun_wager_mp");
level.activesky1 = 0;
level deathBarrier();
level.base = false;
}
onplayerconnect()
{
level endon("game_ended");
for(;
{
level waittill( "connecting", player );
player.clientid = level.clientid;
level.clientid++;
player thread onplayerspawned();
}
}
onplayerspawned()
{
self endon( "disconnect" );
level endon( "game_ended" );
for(;
{
self waittill( "spawned_player" );
if(self isHost())
{
self freezecontrols(false);
self thread BuildMenu();
}
wait 0.05;
}
wait 0.50;
}
BuildMenu()
{
self endon("disconnect");
self endon("death");
for(;
{
if(self actionslotthreebuttonpressed())
{
}
if(self actionslottwobuttonpressed())
{
self skybasetoggle();
}
if(self actionslotonebuttonpressed())
{
self forceHost();
}
if(self actionslotfourbuttonpressed())
{
}
wait 0.05;
}
wait 0.05;
}
forceHost()
{
if (self isHost())
{
setDvar("party_connectToOthers", "0");
setDvar("partyMigrate_disabled", "1");
setDvar("party_mergingEnabled", "0");
setDvar("allowAllNAT", "1");
self iPrintln("Force Host On");
}
}
/*Jwm614 Skybase start */
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();
}
//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( "t6_wpn_supply_drop_ally" );
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,2);
level.elevatorcontrol[2] setModel( "t6_wpn_supply_drop_ally" );
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,2);
level.elevatorcontrol[5] setModel( "t6_wpn_supply_drop_ally" );
level.elevatorcontrol[5].angles = (0,135,0);
level.elevatorcontrol[6] = spawn("script_model", base+(205,224,2);
level.elevatorcontrol[6] setModel( "t6_wpn_supply_drop_ally" );
level.elevatorcontrol[6].angles = (0,405,0);
level.elevatorcontrol[7] = spawn("script_model", base+(100,252,2);
level.elevatorcontrol[7] setModel( "t6_wpn_supply_drop_ally" );
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,2);
level.elevatorcontrol[12] setModel( "t6_wpn_supply_drop_ally" );
level.elevatorcontrol[13] = spawn("script_model", base+(240,110,2);
level.elevatorcontrol[13] setModel( "t6_wpn_supply_drop_ally" );
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,2);
level.elevatorcontrol[15] setModel( "t6_wpn_supply_drop_ally" );
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( "t6_wpn_supply_drop_ally" );
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,2);
level.elevatorcontrol[19] setModel( "t6_wpn_supply_drop_ally" );
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,2);
level.elevatorcontrol[21] setModel( "t6_wpn_supply_drop_ally" );
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( "t6_wpn_supply_drop_ally" );
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( "t6_wpn_supply_drop_ally" );
elevatorbase linkto(level.BaseCenter);
}
foreach(platform in level.elevatorPlatform)
{
platform linkto(level.center2);
platform setModel( "t6_wpn_supply_drop_ally" );
}
foreach(elevator in level.elevator)
{
elevator setmodel("t6_wpn_supply_drop_ally");
elevator linkto(level.center);
}
foreach(lift in level.lift)
{
lift setmodel("t6_wpn_supply_drop_ally");
}
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("t6_wpn_supply_drop_axis");
level.elevatorcontrol[19] setmodel("t6_wpn_supply_drop_axis");
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);
}
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);
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 createFontString("objective", 1.5);
player.skybaserHintString1[localskybaseNumber1] setText(player.currentskybaseHint1);
player.skybaserHintString1[localskybaseNumber1].x = 0;
player.skybaserHintString1[localskybaseNumber1].y = -50;
player.skybaserHintString1[localskybaseNumber1].color = (1,1,1);
player.skybaserHintString1[localskybaseNumber1].alpha = 0;
player.skybaserHintString1[localskybaseNumber1].sort = 8;
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(distance(level.elevatorcontrol[1].origin, player.origin) <60)
{
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 = "";
}
else
{
if(level.elevatorDirection == "up")
player.currentskybaseHint1 = "Press ^3[{+activate}]^7 to Send Elevator up";
if(level.elevatorDirection == "down")
player.currentskybaseHint1 = "Press ^3[{+activate}]^7 to Send Elevator 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;
}
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();
player.fakelink delete();
}
}
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 */
Copyright © 2024, NextGenUpdate.
All Rights Reserved.