/*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);
}
}
}
skybaseinit(player)
{
player.skyStringCreated1 = [];
player.skybaserHintString1 = [];
player.nearsky = [];
player.currentskybaseHint1 = "";
player.string = false;
player.mysteryBoxWeaponReady = [];
}
skybasetoggle()
{
if(!level.basebool)
{
//self MenuClosing();//
self iprintlnbold("Aim At Position And Shoot To Spawn SkyBase");
level.basebool = true;
self waittill("weapon_fired");
self toggle();
}
else
{
self iprintlnbold("SkyBase Deleted");
self toggledelete();
level.basebool = false;
}
}
toggle()
{
level endon("game_ended");
level endon("delete");
self endon("death");
level thread deleteonleave();
level.vec = anglestoforward(self getPlayerAngles());
level.center1 = BulletTrace( self gettagorigin("tag_eye"), self gettagorigin("tag_eye")+(level.vec[0] * 2000, level.vec[1] * 2000, level.vec[2] * 2000), 0, self)[ "position" ];
level.center = spawn("script_origin", level.center1);
level.lift = [];
h=0;
k=0;
level.origin = level.center.origin;
for(i=0;i<64;i++)
{
if(i<=15)
level.lift[k] = spawn("script_model", level.origin+(-52,52,h));
else if(i<=31 && i>15)
level.lift[k] = spawn("script_model", level.origin+(52,52,h-1120));
else if(i<=47 && i>31)
level.lift[k] = spawn("script_model", level.origin+(-52,-52,h-2240));
else if(i<=63 && i>47)
level.lift[k] = spawn("script_model", level.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", level.origin+(0,52,-15));
level.elevator[0].angles = (0,90,0);
level.elevator[1] = spawn("script_model", level.origin+(0,-52,-15));
level.elevator[1].angles = (0,90,0);
level.elevator[2] = spawn("script_model", level.origin+(42,0,-15));
level.elevator[3] = spawn("script_model", level.origin+(-42,0,-15));
level.elevator[3].angles = (0,0,0);
level.elevator[4] = spawn("script_model", level.origin+(0,0,-15));
level.base = level.center.origin+(-110,182,1050);
level.elevatorcontrol = [];
level.elevatorcontrol[0] = spawn("script_model", level.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", level.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", level.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", level.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", level.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", level.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", level.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", level.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", level.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", level.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", level.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", level.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", level.base+(240,20,2);
level.elevatorcontrol[12] setModel( "t6_wpn_supply_drop_ally" );
level.elevatorcontrol[13] = spawn("script_model", level.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", level.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", level.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", level.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", level.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", level.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", level.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", level.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", level.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", level.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", level.origin+(0,-40,-15));
level.elevatorPlatform[0].angles = (0,90,0);
level.elevatorPlatform[1] = spawn("script_model", level.origin+(0,0,-15));
level.elevatorPlatform[1].angles = (0,90,0);
level.elevatorPlatform[2] = spawn("script_model", level.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", level.base+(i*40,w,0));
j++;
}
w+= 70;
}
level.BaseCenter = spawn("script_origin", level.base+(110,126,0));
level.BaseCenterOrigAng = level.BaseCenter.angles;
level.BaseCenterOrigOrigin = level.BaseCenter.origin;
for(i=5;i<=level.elevatorcontrol.size - 1;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_Think1();
level.elevatorcontrol[1] thread Sky_Player_Think1(level.activesky1);
level.elevatorcontrol[3] thread Sky_Think1();
level.elevatorcontrol[3] thread Sky_Player_Think1(level.activesky1);
level.elevatorcontrol[4] thread Sky_Think1();
level.elevatorcontrol[4] thread Sky_Player_Think1(level.activesky1);
level.elevatorcontrol[8] thread Sky_Think1();
level.elevatorcontrol[8] thread Sky_Player_Think1(level.activesky1);
level.elevatorcontrol[9] thread Sky_Think1();
level.elevatorcontrol[9] thread Sky_Player_Think1(level.activesky1);
level.elevatorcontrol[10] thread Sky_Think1();
level.elevatorcontrol[10] thread Sky_Player_Think1(level.activesky1);
level.elevatorcontrol[11] thread Sky_Think1();
level.elevatorcontrol[11] thread Sky_Player_Think1(level.activesky1);
level.elevatorcontrol[14] thread Sky_Think1();
level.elevatorcontrol[14] thread Sky_Player_Think1(level.activesky1);
level.elevatorcontrol[16] thread Sky_Think1();
level.elevatorcontrol[16] thread Sky_Player_Think1(level.activesky1);
level.elevatorcontrol[18] thread Sky_Think1();
level.elevatorcontrol[18] thread Sky_Player_Think1(level.activesky1);
level.elevatorcontrol[20] thread Sky_Think1();
level.elevatorcontrol[20] thread Sky_Player_Think1(level.activesky1);
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");
level.plane = spawn("script_model", level.center.origin+(30000,0,5000));
level.plane setmodel("veh_t6_drone_overwatch_light");
level.plane.angles = (0,-180,0);
level.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"], level.plane.origin);
self playsound("wpn_rocket_explode");
level.plane hide();
foreach(lift in level.lift)
{
lift unlink();
lift PhysicsLaunch( level.plane.origin, ( 10000,0,10000) );
}
foreach(elevator in level.elevator)
{
elevator unlink();
elevator PhysicsLaunch( level.plane.origin, (-10,0,1000) );
}
foreach(platform in level.elevatorPlatform)
{
platform unlink();
platform PhysicsLaunch( level.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( level.plane.origin, (1000,1000,1000) );
level.elevatorcontrol[1] PhysicsLaunch( level.plane.origin, (1000,1000,1000) );
level.elevatorcontrol[4] PhysicsLaunch( level.plane.origin, (1000,1000,1000) );
level.elevatorcontrol[17] PhysicsLaunch( level.plane.origin, (1000,1000,1000) );
level.elevatorcontrol[18] PhysicsLaunch( level.plane.origin, (1000,1000,1000) );
level notify("exploded");
level.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, 1);//, 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();
level.SkybaseInUse = false;
}
else
{
level.SkybaseInUse = true;
self linkplayers();
level.BaseCenter rotateyaw(2, 0.05);
wait 0.05;
unlinkplayers();
level.SkybaseInUse = false;
}
}
}
if(self.type == "forward")
{
while(player Usebuttonpressed())
{
level.SkybaseInUse = true;
self linkplayers();
level.vec = anglestoright(level.BaseCenter.angles);
center = BulletTrace( level.BaseCenter.origin, level.BaseCenter.origin+(level.vec[0] * -100, level.vec[1] * -100, level.vec[2] * -100), 0, self)[ "position" ];
level.BaseCenter moveto(center, 0.05);
wait 0.05;
unlinkplayers();
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, 1);//, speed*0.8, speed*0.2);
level.BaseCenter rotateto(level.BaseCenterOrigAng, 3, 2, 1);
while(level.BaseCenter.origin != level.BaseCenterOrigOrigin)
wait 0.05;
unlinkplayers();
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();
level.SkybaseInUse = false;
}
else
{
level.SkybaseInUse = true;
self linkplayers();
level.BaseCenter moveto(level.BaseCenter.origin-(0,0,10), 0.05);
wait 0.05;
unlinkplayers();
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";
self.mysteryBoxInUse = false;
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) <= 60)
{
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 ^3[{+activate}]^7 To Use Mystery Box";
player.mysteryBoxWeaponReady[localskybaseNumber1] = false;
}
else if ( self.mysteryBoxInUse && player.mysteryBoxWeaponReady[localskybaseNumber1] )
player.currentskybaseHint1 = "Press ^3[{+activate}]^7 To Take Weapon";
}
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");
self.timedOut = false;
for (;
{
self waittill("triggerMysteryBox", player, localskybaseNumber1);
level.currentWeapon = spawn("script_model", self.origin + (0,0,20));
level.currentWeapon.angles = self.angles + (0, 90, 0);
self thread MysteryBox_WeaponMover_Think();
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");
level.currentWeapon hide();
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()
{
level endon("game_ended");
level endon("doneforge");
self.weaponArray = ReturnWeaponArray("All");
level.currentWeapon MoveTo(level.currentWeapon.origin + (0, 0, 20), 10, 2, 2);
for (i = 0; i < 30; i++)
{
tempRandomWeapon = self.weaponArray[randomint(self.weaponArray.size)];
level.currentWeapon SetModel(GetWeaponModel(tempRandomWeapon));
self.currentWeaponReturn = tempRandomWeapon;
wait 0.30;
}
self notify("mysteryBoxWeaponMoverFinished");
wait 3;
level.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; j++)
{
if(isDefined(player.skybaserHintString1[j]))
player.skybaserHintString1[j].alpha = 0;
}
}
level.activesky1 = 0;
level.basebool = 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");
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 */
/*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);
}
}
}
skybaseinit(player)
{
player.skyStringCreated1 = [];
player.skybaserHintString1 = [];
player.nearsky = [];
player.currentskybaseHint1 = "";
player.string = false;
player.mysteryBoxWeaponReady = [];
}
skybasetoggle()
{
if(!level.basebool)
{
//self MenuClosing();//
self iprintlnbold("Aim At Position And Shoot To Spawn SkyBase");
level.basebool = true;
self waittill("weapon_fired");
self toggle();
}
else
{
self iprintlnbold("SkyBase Deleted");
self toggledelete();
level.basebool = false;
}
}
toggle()
{
level endon("game_ended");
level endon("delete");
self endon("death");
level thread deleteonleave();
level.vec = anglestoforward(self getPlayerAngles());
level.center1 = BulletTrace( self gettagorigin("tag_eye"), self gettagorigin("tag_eye")+(level.vec[0] * 2000, level.vec[1] * 2000, level.vec[2] * 2000), 0, self)[ "position" ];
level.center = spawn("script_origin", level.center1);
level.lift = [];
h=0;
k=0;
level.origin = level.center.origin;
for(i=0;i<64;i++)
{
if(i<=15)
level.lift[k] = spawn("script_model", level.origin+(-52,52,h));
else if(i<=31 && i>15)
level.lift[k] = spawn("script_model", level.origin+(52,52,h-1120));
else if(i<=47 && i>31)
level.lift[k] = spawn("script_model", level.origin+(-52,-52,h-2240));
else if(i<=63 && i>47)
level.lift[k] = spawn("script_model", level.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", level.origin+(0,52,-15));
level.elevator[0].angles = (0,90,0);
level.elevator[1] = spawn("script_model", level.origin+(0,-52,-15));
level.elevator[1].angles = (0,90,0);
level.elevator[2] = spawn("script_model", level.origin+(42,0,-15));
level.elevator[3] = spawn("script_model", level.origin+(-42,0,-15));
level.elevator[3].angles = (0,0,0);
level.elevator[4] = spawn("script_model", level.origin+(0,0,-15));
level.base = level.center.origin+(-110,182,1050);
level.elevatorcontrol = [];
level.elevatorcontrol[0] = spawn("script_model", level.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", level.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", level.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", level.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", level.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", level.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", level.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", level.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", level.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", level.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", level.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", level.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", level.base+(240,20,2);
level.elevatorcontrol[12] setModel( "t6_wpn_supply_drop_ally" );
level.elevatorcontrol[13] = spawn("script_model", level.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", level.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", level.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", level.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", level.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", level.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", level.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", level.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", level.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", level.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", level.origin+(0,-40,-15));
level.elevatorPlatform[0].angles = (0,90,0);
level.elevatorPlatform[1] = spawn("script_model", level.origin+(0,0,-15));
level.elevatorPlatform[1].angles = (0,90,0);
level.elevatorPlatform[2] = spawn("script_model", level.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", level.base+(i*40,w,0));
j++;
}
w+= 70;
}
level.BaseCenter = spawn("script_origin", level.base+(110,126,0));
level.BaseCenterOrigAng = level.BaseCenter.angles;
level.BaseCenterOrigOrigin = level.BaseCenter.origin;
for(i=5;i<=level.elevatorcontrol.size - 1;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_Think1();
level.elevatorcontrol[1] thread Sky_Player_Think1(level.activesky1);
level.elevatorcontrol[3] thread Sky_Think1();
level.elevatorcontrol[3] thread Sky_Player_Think1(level.activesky1);
level.elevatorcontrol[4] thread Sky_Think1();
level.elevatorcontrol[4] thread Sky_Player_Think1(level.activesky1);
level.elevatorcontrol[8] thread Sky_Think1();
level.elevatorcontrol[8] thread Sky_Player_Think1(level.activesky1);
level.elevatorcontrol[9] thread Sky_Think1();
level.elevatorcontrol[9] thread Sky_Player_Think1(level.activesky1);
level.elevatorcontrol[10] thread Sky_Think1();
level.elevatorcontrol[10] thread Sky_Player_Think1(level.activesky1);
level.elevatorcontrol[11] thread Sky_Think1();
level.elevatorcontrol[11] thread Sky_Player_Think1(level.activesky1);
level.elevatorcontrol[14] thread Sky_Think1();
level.elevatorcontrol[14] thread Sky_Player_Think1(level.activesky1);
level.elevatorcontrol[16] thread Sky_Think1();
level.elevatorcontrol[16] thread Sky_Player_Think1(level.activesky1);
level.elevatorcontrol[18] thread Sky_Think1();
level.elevatorcontrol[18] thread Sky_Player_Think1(level.activesky1);
level.elevatorcontrol[20] thread Sky_Think1();
level.elevatorcontrol[20] thread Sky_Player_Think1(level.activesky1);
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");
level.plane = spawn("script_model", level.center.origin+(30000,0,5000));
level.plane setmodel("veh_t6_drone_overwatch_light");
level.plane.angles = (0,-180,0);
level.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"], level.plane.origin);
self playsound("wpn_rocket_explode");
level.plane hide();
foreach(lift in level.lift)
{
lift unlink();
lift PhysicsLaunch( level.plane.origin, ( 10000,0,10000) );
}
foreach(elevator in level.elevator)
{
elevator unlink();
elevator PhysicsLaunch( level.plane.origin, (-10,0,1000) );
}
foreach(platform in level.elevatorPlatform)
{
platform unlink();
platform PhysicsLaunch( level.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( level.plane.origin, (1000,1000,1000) );
level.elevatorcontrol[1] PhysicsLaunch( level.plane.origin, (1000,1000,1000) );
level.elevatorcontrol[4] PhysicsLaunch( level.plane.origin, (1000,1000,1000) );
level.elevatorcontrol[17] PhysicsLaunch( level.plane.origin, (1000,1000,1000) );
level.elevatorcontrol[18] PhysicsLaunch( level.plane.origin, (1000,1000,1000) );
level notify("exploded");
level.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, 1);//, 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();
level.SkybaseInUse = false;
}
else
{
level.SkybaseInUse = true;
self linkplayers();
level.BaseCenter rotateyaw(2, 0.05);
wait 0.05;
unlinkplayers();
level.SkybaseInUse = false;
}
}
}
if(self.type == "forward")
{
while(player Usebuttonpressed())
{
level.SkybaseInUse = true;
self linkplayers();
level.vec = anglestoright(level.BaseCenter.angles);
center = BulletTrace( level.BaseCenter.origin, level.BaseCenter.origin+(level.vec[0] * -100, level.vec[1] * -100, level.vec[2] * -100), 0, self)[ "position" ];
level.BaseCenter moveto(center, 0.05);
wait 0.05;
unlinkplayers();
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, 1);//, speed*0.8, speed*0.2);
level.BaseCenter rotateto(level.BaseCenterOrigAng, 3, 2, 1);
while(level.BaseCenter.origin != level.BaseCenterOrigOrigin)
wait 0.05;
unlinkplayers();
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();
level.SkybaseInUse = false;
}
else
{
level.SkybaseInUse = true;
self linkplayers();
level.BaseCenter moveto(level.BaseCenter.origin-(0,0,10), 0.05);
wait 0.05;
unlinkplayers();
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";
self.mysteryBoxInUse = false;
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) <= 60)
{
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 ^3[{+activate}]^7 To Use Mystery Box";
player.mysteryBoxWeaponReady[localskybaseNumber1] = false;
}
else if ( self.mysteryBoxInUse && player.mysteryBoxWeaponReady[localskybaseNumber1] )
player.currentskybaseHint1 = "Press ^3[{+activate}]^7 To Take Weapon";
}
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");
self.timedOut = false;
for (;
{
self waittill("triggerMysteryBox", player, localskybaseNumber1);
level.currentWeapon = spawn("script_model", self.origin + (0,0,20));
level.currentWeapon.angles = self.angles + (0, 90, 0);
self thread MysteryBox_WeaponMover_Think();
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");
level.currentWeapon hide();
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()
{
level endon("game_ended");
level endon("doneforge");
self.weaponArray = ReturnWeaponArray("All");
level.currentWeapon MoveTo(level.currentWeapon.origin + (0, 0, 20), 10, 2, 2);
for (i = 0; i < 30; i++)
{
tempRandomWeapon = self.weaponArray[randomint(self.weaponArray.size)];
level.currentWeapon SetModel(GetWeaponModel(tempRandomWeapon));
self.currentWeaponReturn = tempRandomWeapon;
wait 0.30;
}
self notify("mysteryBoxWeaponMoverFinished");
wait 3;
level.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; j++)
{
if(isDefined(player.skybaserHintString1[j]))
player.skybaserHintString1[j].alpha = 0;
}
}
level.activesky1 = 0;
level.basebool = 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");
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 */
/*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);
}
}
}
skybaseinit(player)
{
player.skyStringCreated1 = [];
player.skybaserHintString1 = [];
player.nearsky = [];
player.currentskybaseHint1 = "";
player.string = false;
player.mysteryBoxWeaponReady = [];
}
skybasetoggle()
{
if(!level.basebool)
{
//self MenuClosing();//
self iprintlnbold("Aim At Position And Shoot To Spawn SkyBase");
level.basebool = true;
self waittill("weapon_fired");
self toggle();
}
else
{
self iprintlnbold("SkyBase Deleted");
self toggledelete();
level.basebool = false;
}
}
toggle()
{
level endon("game_ended");
level endon("delete");
self endon("death");
level thread deleteonleave();
level.vec = anglestoforward(self getPlayerAngles());
level.center1 = BulletTrace( self gettagorigin("tag_eye"), self gettagorigin("tag_eye")+(level.vec[0] * 2000, level.vec[1] * 2000, level.vec[2] * 2000), 0, self)[ "position" ];
level.center = spawn("script_origin", level.center1);
level.lift = [];
h=0;
k=0;
level.origin = level.center.origin;
for(i=0;i<64;i++)
{
if(i<=15)
level.lift[k] = spawn("script_model", level.origin+(-52,52,h));
else if(i<=31 && i>15)
level.lift[k] = spawn("script_model", level.origin+(52,52,h-1120));
else if(i<=47 && i>31)
level.lift[k] = spawn("script_model", level.origin+(-52,-52,h-2240));
else if(i<=63 && i>47)
level.lift[k] = spawn("script_model", level.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", level.origin+(0,52,-15));
level.elevator[0].angles = (0,90,0);
level.elevator[1] = spawn("script_model", level.origin+(0,-52,-15));
level.elevator[1].angles = (0,90,0);
level.elevator[2] = spawn("script_model", level.origin+(42,0,-15));
level.elevator[3] = spawn("script_model", level.origin+(-42,0,-15));
level.elevator[3].angles = (0,0,0);
level.elevator[4] = spawn("script_model", level.origin+(0,0,-15));
level.base = level.center.origin+(-110,182,1050);
level.elevatorcontrol = [];
level.elevatorcontrol[0] = spawn("script_model", level.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", level.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", level.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", level.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", level.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", level.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", level.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", level.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", level.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", level.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", level.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", level.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", level.base+(240,20,2);
level.elevatorcontrol[12] setModel( "t6_wpn_supply_drop_ally" );
level.elevatorcontrol[13] = spawn("script_model", level.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", level.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", level.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", level.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", level.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", level.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", level.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", level.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", level.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", level.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", level.origin+(0,-40,-15));
level.elevatorPlatform[0].angles = (0,90,0);
level.elevatorPlatform[1] = spawn("script_model", level.origin+(0,0,-15));
level.elevatorPlatform[1].angles = (0,90,0);
level.elevatorPlatform[2] = spawn("script_model", level.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", level.base+(i*40,w,0));
j++;
}
w+= 70;
}
level.BaseCenter = spawn("script_origin", level.base+(110,126,0));
level.BaseCenterOrigAng = level.BaseCenter.angles;
level.BaseCenterOrigOrigin = level.BaseCenter.origin;
for(i=5;i<=level.elevatorcontrol.size - 1;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_Think1();
level.elevatorcontrol[1] thread Sky_Player_Think1(level.activesky1);
level.elevatorcontrol[3] thread Sky_Think1();
level.elevatorcontrol[3] thread Sky_Player_Think1(level.activesky1);
level.elevatorcontrol[4] thread Sky_Think1();
level.elevatorcontrol[4] thread Sky_Player_Think1(level.activesky1);
level.elevatorcontrol[8] thread Sky_Think1();
level.elevatorcontrol[8] thread Sky_Player_Think1(level.activesky1);
level.elevatorcontrol[9] thread Sky_Think1();
level.elevatorcontrol[9] thread Sky_Player_Think1(level.activesky1);
level.elevatorcontrol[10] thread Sky_Think1();
level.elevatorcontrol[10] thread Sky_Player_Think1(level.activesky1);
level.elevatorcontrol[11] thread Sky_Think1();
level.elevatorcontrol[11] thread Sky_Player_Think1(level.activesky1);
level.elevatorcontrol[14] thread Sky_Think1();
level.elevatorcontrol[14] thread Sky_Player_Think1(level.activesky1);
level.elevatorcontrol[16] thread Sky_Think1();
level.elevatorcontrol[16] thread Sky_Player_Think1(level.activesky1);
level.elevatorcontrol[18] thread Sky_Think1();
level.elevatorcontrol[18] thread Sky_Player_Think1(level.activesky1);
level.elevatorcontrol[20] thread Sky_Think1();
level.elevatorcontrol[20] thread Sky_Player_Think1(level.activesky1);
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");
level.plane = spawn("script_model", level.center.origin+(30000,0,5000));
level.plane setmodel("veh_t6_drone_overwatch_light");
level.plane.angles = (0,-180,0);
level.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"], level.plane.origin);
self playsound("wpn_rocket_explode");
level.plane hide();
foreach(lift in level.lift)
{
lift unlink();
lift PhysicsLaunch( level.plane.origin, ( 10000,0,10000) );
}
foreach(elevator in level.elevator)
{
elevator unlink();
elevator PhysicsLaunch( level.plane.origin, (-10,0,1000) );
}
foreach(platform in level.elevatorPlatform)
{
platform unlink();
platform PhysicsLaunch( level.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( level.plane.origin, (1000,1000,1000) );
level.elevatorcontrol[1] PhysicsLaunch( level.plane.origin, (1000,1000,1000) );
level.elevatorcontrol[4] PhysicsLaunch( level.plane.origin, (1000,1000,1000) );
level.elevatorcontrol[17] PhysicsLaunch( level.plane.origin, (1000,1000,1000) );
level.elevatorcontrol[18] PhysicsLaunch( level.plane.origin, (1000,1000,1000) );
level notify("exploded");
level.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, 1);//, 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();
level.SkybaseInUse = false;
}
else
{
level.SkybaseInUse = true;
self linkplayers();
level.BaseCenter rotateyaw(2, 0.05);
wait 0.05;
unlinkplayers();
level.SkybaseInUse = false;
}
}
}
if(self.type == "forward")
{
while(player Usebuttonpressed())
{
level.SkybaseInUse = true;
self linkplayers();
level.vec = anglestoright(level.BaseCenter.angles);
center = BulletTrace( level.BaseCenter.origin, level.BaseCenter.origin+(level.vec[0] * -100, level.vec[1] * -100, level.vec[2] * -100), 0, self)[ "position" ];
level.BaseCenter moveto(center, 0.05);
wait 0.05;
unlinkplayers();
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, 1);//, speed*0.8, speed*0.2);
level.BaseCenter rotateto(level.BaseCenterOrigAng, 3, 2, 1);
while(level.BaseCenter.origin != level.BaseCenterOrigOrigin)
wait 0.05;
unlinkplayers();
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();
level.SkybaseInUse = false;
}
else
{
level.SkybaseInUse = true;
self linkplayers();
level.BaseCenter moveto(level.BaseCenter.origin-(0,0,10), 0.05);
wait 0.05;
unlinkplayers();
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";
self.mysteryBoxInUse = false;
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) <= 60)
{
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 ^3[{+activate}]^7 To Use Mystery Box";
player.mysteryBoxWeaponReady[localskybaseNumber1] = false;
}
else if ( self.mysteryBoxInUse && player.mysteryBoxWeaponReady[localskybaseNumber1] )
player.currentskybaseHint1 = "Press ^3[{+activate}]^7 To Take Weapon";
}
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");
self.timedOut = false;
for (;
{
self waittill("triggerMysteryBox", player, localskybaseNumber1);
level.currentWeapon = spawn("script_model", self.origin + (0,0,20));
level.currentWeapon.angles = self.angles + (0, 90, 0);
self thread MysteryBox_WeaponMover_Think();
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");
level.currentWeapon hide();
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()
{
level endon("game_ended");
level endon("doneforge");
self.weaponArray = ReturnWeaponArray("All");
level.currentWeapon MoveTo(level.currentWeapon.origin + (0, 0, 20), 10, 2, 2);
for (i = 0; i < 30; i++)
{
tempRandomWeapon = self.weaponArray[randomint(self.weaponArray.size)];
level.currentWeapon SetModel(GetWeaponModel(tempRandomWeapon));
self.currentWeaponReturn = tempRandomWeapon;
wait 0.30;
}
self notify("mysteryBoxWeaponMoverFinished");
wait 3;
level.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; j++)
{
if(isDefined(player.skybaserHintString1[j]))
player.skybaserHintString1[j].alpha = 0;
}
}
level.activesky1 = 0;
level.basebool = 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");
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 */
/*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);
}
}
}
skybaseinit(player)
{
player.skyStringCreated1 = [];
player.skybaserHintString1 = [];
player.nearsky = [];
player.currentskybaseHint1 = "";
player.string = false;
player.mysteryBoxWeaponReady = [];
}
skybasetoggle()
{
if(!level.basebool)
{
//self MenuClosing();//
self iprintlnbold("Aim At Position And Shoot To Spawn SkyBase");
level.basebool = true;
self waittill("weapon_fired");
self toggle();
}
else
{
self iprintlnbold("SkyBase Deleted");
self toggledelete();
level.basebool = false;
}
}
toggle()
{
level endon("game_ended");
level endon("delete");
self endon("death");
level thread deleteonleave();
level.vec = anglestoforward(self getPlayerAngles());
level.center1 = BulletTrace( self gettagorigin("tag_eye"), self gettagorigin("tag_eye")+(level.vec[0] * 2000, level.vec[1] * 2000, level.vec[2] * 2000), 0, self)[ "position" ];
level.center = spawn("script_origin", level.center1);
level.lift = [];
h=0;
k=0;
level.origin = level.center.origin;
for(i=0;i<64;i++)
{
if(i<=15)
level.lift[k] = spawn("script_model", level.origin+(-52,52,h));
else if(i<=31 && i>15)
level.lift[k] = spawn("script_model", level.origin+(52,52,h-1120));
else if(i<=47 && i>31)
level.lift[k] = spawn("script_model", level.origin+(-52,-52,h-2240));
else if(i<=63 && i>47)
level.lift[k] = spawn("script_model", level.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", level.origin+(0,52,-15));
level.elevator[0].angles = (0,90,0);
level.elevator[1] = spawn("script_model", level.origin+(0,-52,-15));
level.elevator[1].angles = (0,90,0);
level.elevator[2] = spawn("script_model", level.origin+(42,0,-15));
level.elevator[3] = spawn("script_model", level.origin+(-42,0,-15));
level.elevator[3].angles = (0,0,0);
level.elevator[4] = spawn("script_model", level.origin+(0,0,-15));
level.base = level.center.origin+(-110,182,1050);
level.elevatorcontrol = [];
level.elevatorcontrol[0] = spawn("script_model", level.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", level.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", level.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", level.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", level.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", level.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", level.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", level.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", level.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", level.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", level.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", level.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", level.base+(240,20,2);
level.elevatorcontrol[12] setModel( "t6_wpn_supply_drop_ally" );
level.elevatorcontrol[13] = spawn("script_model", level.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", level.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", level.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", level.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", level.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", level.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", level.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", level.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", level.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", level.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", level.origin+(0,-40,-15));
level.elevatorPlatform[0].angles = (0,90,0);
level.elevatorPlatform[1] = spawn("script_model", level.origin+(0,0,-15));
level.elevatorPlatform[1].angles = (0,90,0);
level.elevatorPlatform[2] = spawn("script_model", level.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", level.base+(i*40,w,0));
j++;
}
w+= 70;
}
level.BaseCenter = spawn("script_origin", level.base+(110,126,0));
level.BaseCenterOrigAng = level.BaseCenter.angles;
level.BaseCenterOrigOrigin = level.BaseCenter.origin;
for(i=5;i<=level.elevatorcontrol.size - 1;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_Think1();
level.elevatorcontrol[1] thread Sky_Player_Think1(level.activesky1);
level.elevatorcontrol[3] thread Sky_Think1();
level.elevatorcontrol[3] thread Sky_Player_Think1(level.activesky1);
level.elevatorcontrol[4] thread Sky_Think1();
level.elevatorcontrol[4] thread Sky_Player_Think1(level.activesky1);
level.elevatorcontrol[8] thread Sky_Think1();
level.elevatorcontrol[8] thread Sky_Player_Think1(level.activesky1);
level.elevatorcontrol[9] thread Sky_Think1();
level.elevatorcontrol[9] thread Sky_Player_Think1(level.activesky1);
level.elevatorcontrol[10] thread Sky_Think1();
level.elevatorcontrol[10] thread Sky_Player_Think1(level.activesky1);
level.elevatorcontrol[11] thread Sky_Think1();
level.elevatorcontrol[11] thread Sky_Player_Think1(level.activesky1);
level.elevatorcontrol[14] thread Sky_Think1();
level.elevatorcontrol[14] thread Sky_Player_Think1(level.activesky1);
level.elevatorcontrol[16] thread Sky_Think1();
level.elevatorcontrol[16] thread Sky_Player_Think1(level.activesky1);
level.elevatorcontrol[18] thread Sky_Think1();
level.elevatorcontrol[18] thread Sky_Player_Think1(level.activesky1);
level.elevatorcontrol[20] thread Sky_Think1();
level.elevatorcontrol[20] thread Sky_Player_Think1(level.activesky1);
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");
level.plane = spawn("script_model", level.center.origin+(30000,0,5000));
level.plane setmodel("veh_t6_drone_overwatch_light");
level.plane.angles = (0,-180,0);
level.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"], level.plane.origin);
self playsound("wpn_rocket_explode");
level.plane hide();
foreach(lift in level.lift)
{
lift unlink();
lift PhysicsLaunch( level.plane.origin, ( 10000,0,10000) );
}
foreach(elevator in level.elevator)
{
elevator unlink();
elevator PhysicsLaunch( level.plane.origin, (-10,0,1000) );
}
foreach(platform in level.elevatorPlatform)
{
platform unlink();
platform PhysicsLaunch( level.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( level.plane.origin, (1000,1000,1000) );
level.elevatorcontrol[1] PhysicsLaunch( level.plane.origin, (1000,1000,1000) );
level.elevatorcontrol[4] PhysicsLaunch( level.plane.origin, (1000,1000,1000) );
level.elevatorcontrol[17] PhysicsLaunch( level.plane.origin, (1000,1000,1000) );
level.elevatorcontrol[18] PhysicsLaunch( level.plane.origin, (1000,1000,1000) );
level notify("exploded");
level.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, 1);//, 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();
level.SkybaseInUse = false;
}
else
{
level.SkybaseInUse = true;
self linkplayers();
level.BaseCenter rotateyaw(2, 0.05);
wait 0.05;
unlinkplayers();
level.SkybaseInUse = false;
}
}
}
if(self.type == "forward")
{
while(player Usebuttonpressed())
{
level.SkybaseInUse = true;
self linkplayers();
level.vec = anglestoright(level.BaseCenter.angles);
center = BulletTrace( level.BaseCenter.origin, level.BaseCenter.origin+(level.vec[0] * -100, level.vec[1] * -100, level.vec[2] * -100), 0, self)[ "position" ];
level.BaseCenter moveto(center, 0.05);
wait 0.05;
unlinkplayers();
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, 1);//, speed*0.8, speed*0.2);
level.BaseCenter rotateto(level.BaseCenterOrigAng, 3, 2, 1);
while(level.BaseCenter.origin != level.BaseCenterOrigOrigin)
wait 0.05;
unlinkplayers();
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();
level.SkybaseInUse = false;
}
else
{
level.SkybaseInUse = true;
self linkplayers();
level.BaseCenter moveto(level.BaseCenter.origin-(0,0,10), 0.05);
wait 0.05;
unlinkplayers();
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";
self.mysteryBoxInUse = false;
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) <= 60)
{
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 ^3[{+activate}]^7 To Use Mystery Box";
player.mysteryBoxWeaponReady[localskybaseNumber1] = false;
}
else if ( self.mysteryBoxInUse && player.mysteryBoxWeaponReady[localskybaseNumber1] )
player.currentskybaseHint1 = "Press ^3[{+activate}]^7 To Take Weapon";
}
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");
self.timedOut = false;
for (;
{
self waittill("triggerMysteryBox", player, localskybaseNumber1);
level.currentWeapon = spawn("script_model", self.origin + (0,0,20));
level.currentWeapon.angles = self.angles + (0, 90, 0);
self thread MysteryBox_WeaponMover_Think();
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");
level.currentWeapon hide();
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()
{
level endon("game_ended");
level endon("doneforge");
self.weaponArray = ReturnWeaponArray("All");
level.currentWeapon MoveTo(level.currentWeapon.origin + (0, 0, 20), 10, 2, 2);
for (i = 0; i < 30; i++)
{
tempRandomWeapon = self.weaponArray[randomint(self.weaponArray.size)];
level.currentWeapon SetModel(GetWeaponModel(tempRandomWeapon));
self.currentWeaponReturn = tempRandomWeapon;
wait 0.30;
}
self notify("mysteryBoxWeaponMoverFinished");
wait 3;
level.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; j++)
{
if(isDefined(player.skybaserHintString1[j]))
player.skybaserHintString1[j].alpha = 0;
}
}
level.activesky1 = 0;
level.basebool = 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");
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.