player.skybaserHintString[localskybaseNumber] = player drawText(player.currentskybaseHint, "objective", 1.5, 0, -50, (1, 1, 1), 0, (0, 0, 0), 0, 8[COLOR="#FF0000"],false[/COLOR]);
player.skybaserHintString[localskybaseNumber] = player drawText(player.currentskybaseHint, "objective", 1.5, 0, -50, (1, 1, 1), 0, (0, 0, 0), 0, ;
player.skybaserHintString[localskybaseNumber] = player drawText(player.currentskybaseHint, "objective", 1.5, 0, -50, (1, 1, 1), 0, (0, 0, 0), 0, 8[COLOR="#FF0000"],false[/COLOR]);
player.skybaserHintString[localskybaseNumber] = player drawText(player.currentskybaseHint, "objective", 1.5, 0, -50, (1, 1, 1), 0, (0, 0, 0), 0, ;
#include maps/mp/gametypes/_hud_util;
#include maps/mp/gametypes/_weapons;
#include maps/mp/_utility;
#include common_scripts/utility;
init()
{
precacheModel("prop_suitcase_bomb");
precacheModel("veh_t6_drone_overwatch_light");
level.activesky = 0;
level.activesky1 = 0;
level.activeMysteryBoxes = 0;
level thread onplayerconnect();
level deathBarrier();
}
onplayerconnect()
{
level endon("game_ended");
for(;
{
level waittill( "connecting", player );
player.clientid = level.clientid;
level.clientid++;
player thread onplayerspawned();
}
}
onplayerspawned()
{
self endon( "disconnect" );
level endon( "game_ended" );
for(;
{
self waittill( "spawned_player" );
if(self isHost())
{
self freezecontrols(false);
self thread BuildMenu();
}
}
}
deathBarrier()
{
ents = getEntArray();
for ( index = 0; index < ents.size; index++ )
{
if(isSubStr(ents[index].classname, "trigger_hurt"))
ents[index].origin = (0, 0, 9999999);
}
}
BuildMenu()
{
self endon("disconnect");
self endon("death");
level endon("game_ended");
for(;
{
if(self actionslotonebuttonpressed())
{
self skybasetoggle();
}
wait 0.05;
}
}
skybasetoggle()
{
if(!level.base)
{
self iprintlnbold("Aim At Position And Shoot To Spawn SkyBase");
self toggle();
level.base = true;
}
else
{
self toggledelete();
level.base = false;
}
}
toggle()
{
level endon("game_ended");
self endon("death");
self waittill("weapon_fired");
vec = anglestoforward(self getPlayerAngles());
center = BulletTrace( self gettagorigin("tag_eye"), self gettagorigin("tag_eye")+(vec[0] * 200000, vec[1] * 200000, vec[2] * 200000), 0, self)[ "position" ];
level.center = spawn("script_origin", center);
level.lift = [];
h=0;
k=0;
origin = level.center.origin;
for(i=0;i<204;i++)
{
if(i<=50)
level.lift[k] = spawn("script_model", origin+(-52,52,h));
else if(i<=101 && i>50)
level.lift[k] = spawn("script_model", origin+(52,52,h-1402.5*2));
else if(i<=152 && i>101)
level.lift[k] = spawn("script_model", origin+(-52,-52,h-2805*2));
else if(i<=204 && i>152)
level.lift[k] = spawn("script_model", origin+(52,-52,h-8415));
level.lift[i].angles = (0,0,90);
h+=55;
k++;
}
level.center moveto(level.center.origin+(0,0,15), 0.05);
wait 0.05;
level.elevator = [];
level.elevator[0] = spawn("script_model", origin+(0,52,-15));
level.elevator[0].angles = (0,90,0);
level.elevator[1] = spawn("script_model", origin+(0,-52,-15));
level.elevator[1].angles = (0,90,0);
level.elevator[2] = spawn("script_model", origin+(42,0,-15));
level.elevator[3] = spawn("script_model", origin+(-42,0,-15));
level.elevator[3].angles = (0,0,0);
level.elevator[4] = spawn("script_model", origin+(0,0,-15));
base = level.center.origin+(-110,182,2750);
level.elevatorcontrol = [];
level.elevatorcontrol[0] = spawn("script_model", origin+(0,-52,13.75));
level.elevatorcontrol[0] setModel( "t6_wpn_supply_drop_ally" );
level.elevatorcontrol[0].angles = (0,-90,0);
level.elevatorcontrol[0] linkto(level.center);
level.elevatorcontrol[1] = spawn("script_model", origin+(0,-52,28.75));
level.elevatorcontrol[1] setModel( "prop_suitcase_bomb" );
level.elevatorcontrol[1].angles = (0,180,0);
level.elevatorcontrol[1] linkto(level.center);
level.elevatorcontrol[2] = spawn("script_model", base+(-40,20,2);
level.elevatorcontrol[2] setModel( "t6_wpn_supply_drop_ally" );
level.elevatorcontrol[2].angles = (0,180,0);
level.elevatorcontrol[3] = spawn("script_model", base+(-40,20,42));
level.elevatorcontrol[3] setModel( "prop_suitcase_bomb" );
level.elevatorcontrol[3].angles = (0,90,0);
level.elevatorcontrol[4] = spawn("script_model", origin+(85,84,30));
level.elevatorcontrol[4] setModel( "prop_suitcase_bomb" );
level.elevatorcontrol[4].angles = (0,135,0);
level.elevatorcontrol[5] = spawn("script_model", base+(0,224,2);
level.elevatorcontrol[5] setModel( "t6_wpn_supply_drop_ally" );
level.elevatorcontrol[5].angles = (0,135,0);
level.elevatorcontrol[6] = spawn("script_model", base+(205,224,2);
level.elevatorcontrol[6] setModel( "t6_wpn_supply_drop_ally" );
level.elevatorcontrol[6].angles = (0,405,0);
level.elevatorcontrol[7] = spawn("script_model", base+(100,252,2);
level.elevatorcontrol[7] setModel( "t6_wpn_supply_drop_ally" );
level.elevatorcontrol[7].angles = (0,90,0);
level.elevatorcontrol[8] = spawn("script_model", base+(0,224,42));
level.elevatorcontrol[8] setModel( "prop_suitcase_bomb" );
level.elevatorcontrol[8].angles = (0,405,0);
level.elevatorcontrol[8].type = "right";
level.elevatorcontrol[9] = spawn("script_model", base+(205,224,42));
level.elevatorcontrol[9] setModel( "prop_suitcase_bomb" );
level.elevatorcontrol[9].angles = (0,-405,0);
level.elevatorcontrol[9].type = "left";
level.elevatorcontrol[10] = spawn("script_model", base+(100,252,42));
level.elevatorcontrol[10] setModel( "prop_suitcase_bomb" );
level.elevatorcontrol[10].angles = (0,0,0);
level.elevatorcontrol[10].type = "forward";
level.elevatorcontrol[11] = spawn("script_model", base+(240,20,42));
level.elevatorcontrol[11] setModel( "prop_suitcase_bomb" );
level.elevatorcontrol[11].angles = (0,-90,0);
level.elevatorcontrol[11].type = "dock";
level.elevatorcontrol[12] = spawn("script_model", base+(240,20,2);
level.elevatorcontrol[12] setModel( "t6_wpn_supply_drop_ally" );
level.elevatorcontrol[13] = spawn("script_model", base+(240,110,2);
level.elevatorcontrol[13] setModel( "t6_wpn_supply_drop_ally" );
level.elevatorcontrol[13].angles = (0,0,0);
level.elevatorcontrol[14] = spawn("script_model", base+(240,110,42));
level.elevatorcontrol[14] setModel( "prop_suitcase_bomb" );
level.elevatorcontrol[14].angles = (0,-90,0);
level.elevatorcontrol[14].type = "up";
level.elevatorcontrol[15] = spawn("script_model", base+(-40,110,2);
level.elevatorcontrol[15] setModel( "t6_wpn_supply_drop_ally" );
level.elevatorcontrol[15].angles = (0,180,0);
level.elevatorcontrol[16] = spawn("script_model", base+(-40,110,42));
level.elevatorcontrol[16] setModel( "prop_suitcase_bomb" );
level.elevatorcontrol[16].type = "down";
level.elevatorcontrol[16].angles = (0,90,0);
level.elevatorcontrol[17] = spawn("script_model", origin+(-85,84,13.75));
level.elevatorcontrol[17] setModel( "t6_wpn_supply_drop_ally" );
level.elevatorcontrol[17].angles = (0,-45,0);
level.elevatorcontrol[18] = spawn("script_model", origin+(-85,84,28.75));
level.elevatorcontrol[18] setModel( "prop_suitcase_bomb" );
level.elevatorcontrol[18].angles = (0,-135,0);
level.elevatorcontrol[18].type = "forcedock";
level.elevatorcontrol[19] = spawn("script_model", base+(175,-45,2);
level.elevatorcontrol[19] setModel( "t6_wpn_supply_drop_ally" );
level.elevatorcontrol[19].angles = (0,-90,0);
level.elevatorcontrol[20] = spawn("script_model", base+(175,-45,42));
level.elevatorcontrol[20] setModel( "prop_suitcase_bomb" );
level.elevatorcontrol[20].angles = (0,180,0);
level.elevatorcontrol[20].type = "destroy";
level.elevatorcontrol[21] = spawn("script_model", base+(30,-45,2);
level.elevatorcontrol[21] setModel( "t6_wpn_supply_drop_ally" );
level.elevatorcontrol[21].angles = (0,-90,0);
level.elevatorcontrol[21].type = "mystery";
level.elevatorcontrol[22] = spawn("script_model", origin+(85,84,13.75));
level.elevatorcontrol[22] setModel( "t6_wpn_supply_drop_ally" );
level.elevatorcontrol[22].angles = (0,225,0);
level.center2 = spawn("script_origin", level.center.origin);
level.center2 linkto(level.center);
level.elevatorPlatform = [];
level.elevatorPlatform[0] = spawn("script_model", origin+(0,-42,-15));
level.elevatorPlatform[1] = spawn("script_model", origin+(0,-14,-15));
level.elevatorPlatform[2] = spawn("script_model", origin+(0,14,-15));
level.elevatorPlatform[3] = spawn("script_model", origin+(0,42,-15));
level.elevatorBase = [];
j = 0;
w = 0;
for(x=0;x<4;x++)
{
for(i=0;i<6;i++)
{
level.elevatorBase[j] = spawn("script_model", base+(i*40,w,0));
j++;
}
w+= 70;
}
level.BaseCenter = spawn("script_origin", base+(110,126,0));
level.BaseCenterOrigAng = level.BaseCenter.angles;
level.BaseCenterOrigOrigin = level.BaseCenter.origin;
for(i=5;i<=level.elevatorcontrol.size;i++)
level.elevatorcontrol[i] linkto(level.BaseCenter);
level.elevatorcontrol[17] unlink();
level.elevatorcontrol[18] unlink();
level.elevatorcontrol[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[8] thread Sky_Player_Think1(level.activesky1);
level.elevatorcontrol[8] thread Sky_Think1();
level.elevatorcontrol[9] thread Sky_Player_Think1(level.activesky1);
level.elevatorcontrol[9] thread Sky_Think1();
level.elevatorcontrol[10] thread Sky_Player_Think1(level.activesky1);
level.elevatorcontrol[10] thread Sky_Think1();
level.elevatorcontrol[11] thread Sky_Player_Think1(level.activesky1);
level.elevatorcontrol[11] thread Sky_Think1();
level.elevatorcontrol[14] thread Sky_Player_Think1(level.activesky1);
level.elevatorcontrol[14] thread Sky_Think1();
level.elevatorcontrol[16] thread Sky_Player_Think1(level.activesky1);
level.elevatorcontrol[16] thread Sky_Think1();
level.elevatorcontrol[18] thread Sky_Player_Think1(level.activesky1);
level.elevatorcontrol[18] thread Sky_Think1();
level.elevatorcontrol[20] thread Sky_Player_Think1(level.activesky1);
level.elevatorcontrol[20] thread Sky_Think1();
level.elevatorcontrol[1] thread Sky_Player_Think(level.activesky);
level.elevatorcontrol[1] thread Sky_Think();
level.elevatorcontrol[3] thread Sky_Player_Think(level.activesky);
level.elevatorcontrol[3] thread Sky_Think();
level.elevatorcontrol[4] thread Sky_Player_Think(level.activesky);
level.elevatorcontrol[4] thread Sky_Think();
level.elevatorcontrol[21] thread MysteryBox_Think();
level.elevatorcontrol[21] thread MysteryBox_Player_Think();
}
Sky_Think()
{
level endon("game_ended");
level.elevatorDirection = "up";
localskybaseNumber = level.activesky;
level.SkybaseInUse1[localskybaseNumber] = false;
level.activesky++;
for(;
{
self waittill ("triggeruse" , player);
if(distance(level.elevatorcontrol[1].origin, player.origin) <60)
place = "elevator";
else
place = "";
if(place == "elevator")
player PlayerLinkTo(level.center);
if(level.elevatorDirection == "up")
{
level.SkybaseInUse1[localskybaseNumber] = ture;
level.elevatorDirection = "down";
level.center moveto(level.center.origin+(0,0,2750), 5, 3, 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,2750), 5, 3, 2);
level.elevatorDirection = "up";
}
wait 5.5;
if(place == "elevator")
player unlink();
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.SkybaseInUse1[localskybaseNumber] = false;
}
}
Sky_Player_Think(localskybaseNumber)
{
level endon("game_ended");
self endon("disconnect");
level.elevatorDirection = "up";
for(;
{
foreach(player in level.players)
{
if (!isDefined(player.doorStringCreated[localskybaseNumber]))
{
player.skybaserHintString[localskybaseNumber] = player drawText(player.currentskybaseHint, "objective", 1.5, 0, -50, (1, 1, 1), 0, (0, 0, 0), 0, 8, false);
player.skybaserHintString[localskybaseNumber].alpha = 0;
player.skybaserHintString[localskybaseNumber].alignX = "center";
player.skybaserHintString[localskybaseNumber].alignY = "bottom";
player.skybaserHintString[localskybaseNumber].horzAlign = "center";
player.skybaserHintString[localskybaseNumber].vertAlign = "bottom";
player.doorStringCreated[localskybaseNumber] = true;
player.nearskyy[localskybaseNumber] = false;
}
if (player.nearskyy[localskybaseNumber] && !level.SkybaseInUse1[localskybaseNumber])
{
player.skybaserHintString[localskybaseNumber] setText(player.currentskybaseHint);
player.skybaserHintString[localskybaseNumber].alpha = 1;
}
else
player.skybaserHintString[localskybaseNumber].alpha = 0;
if(Distance(self.origin, player.origin) <= 50)
{
if(level.elevatorDirection == "up")
player.currentskybaseHint = "ControlElevator Press ^3[{+activate}]^7 to go up";
if(level.elevatorDirection == "down")
player.currentskybaseHint = "ControlElevator Press ^3[{+activate}]^7 to go down";
if(player UseButtonPressed() && isAlive(player))
{
self notify("triggeruse" , player);
wait 0.20;
}
player.nearskyy[localskybaseNumber] = true;
}
else
player.nearskyy[localskybaseNumber] = false;
}
wait 0.1;
}
}
Sky_Think1()
{
level endon("game_ended");
localskybaseNumber1 = level.activesky1;
level.SkybaseInUse[localskybaseNumber1] = false;
level.activesky1++;
for(;
{
self waittill ("triggeruse" , player);
if(self.type == "left" || self.type == "right")
{
while(player Usebuttonpressed())
{
if(self.type == "left")
{
player.SkybaseInUse[localskybaseNumber] = true;
player.fakelink = spawn("script_origin", player.origin);
player playerlinkto(player.fakelink);
player.fakelink linkto(self);
level.BaseCenter rotateyaw(-2, 0.05);
wait 0.05;
player unlink();
player.fakelink delete();
player.SkybaseInUse[localskybaseNumber] = false;
}
else
{
player.SkybaseInUse[localskybaseNumber] = true;
player.fakelink = spawn("script_origin", player.origin);
player playerlinkto(player.fakelink);
player.fakelink linkto(self);
level.BaseCenter rotateyaw(2, 0.05);
wait 0.05;
player unlink();
player.fakelink delete();
player.SkybaseInUse[localskybaseNumber] = false;
}
}
}
if(self.type == "forward")
{
while(player Usebuttonpressed())
{
player.SkybaseInUse[localskybaseNumber] = true;
player.fakelink = spawn("script_origin", player.origin);
player playerlinkto(player.fakelink);
player.fakelink linkto(self);
vec = anglestoright(level.BaseCenter.angles);
center = BulletTrace( level.BaseCenter.origin, level.BaseCenter.origin+(vec[0] * -100, vec[1] * -100, vec[2] * -100), 0, self)[ "position" ];
level.BaseCenter moveto(center, 0.05);
wait 0.05;
player unlink();
player.fakelink delete();
player.SkybaseInUse[localskybaseNumber] = false;
}
}
if(self.type == "dock" || self.type == "forcedock")
{
while(player Usebuttonpressed())
{
if(self.type == "dock")
{
player.SkybaseInUse[localskybaseNumber] = true;
player.fakelink = spawn("script_origin", player.origin);
player playerlinkto(player.fakelink);
player.fakelink linkto(self);
speed = distance(level.BaseCenter.origin, level.BaseCenterOrigOrigin)/1000;
level.BaseCenter moveto(level.BaseCenterOrigOrigin, speed, speed*0.8, speed*0.2);
level.BaseCenter rotateto(level.BaseCenterOrigAng, 3, 2, 1);
while(level.BaseCenter.origin != level.BaseCenterOrigOrigin)
wait 0.05;
wait 0.05;
player unlink();
player.fakelink delete();
player.SkybaseInUse[localskybaseNumber] = false;
}
if(player isHost() && self.type == "forcedock")
{
player.SkybaseInUse[localskybaseNumber] = true;
speed = distance(level.BaseCenter.origin, level.BaseCenterOrigOrigin)/1000;
level.BaseCenter moveto(level.BaseCenterOrigOrigin, speed, speed*0.8, speed*0.2);
level.BaseCenter rotateto(level.BaseCenterOrigAng, 3, 2, 1);
player.SkybaseInUse[localskybaseNumber] = false;
wait 0.05;
}
else if(self.type == "forcedock" && !player ishost())
player iprintlnbold("^1You must be host");
wait 0.05;
}
}
if(self.type == "up" || self.type == "down")
{
while(player Usebuttonpressed())
{
if(self.type == "up")
{
player.SkybaseInUse[localskybaseNumber] = true;
player.fakelink = spawn("script_origin", player.origin);
player playerlinkto(player.fakelink);
player.fakelink linkto(self);
level.BaseCenter moveto(level.BaseCenter.origin+(0,0,10), 0.05);
wait 0.05;
player unlink();
player.fakelink delete();
player.SkybaseInUse[localskybaseNumber] = false;
}
else
{
player.SkybaseInUse[localskybaseNumber] = true;
player.fakelink = spawn("script_origin", player.origin);
player playerlinkto(player.fakelink);
player.fakelink linkto(self);
level.BaseCenter moveto(level.BaseCenter.origin-(0,0,10), 0.05);
wait 0.05;
player unlink();
player.fakelink delete();
player.SkybaseInUse[localskybaseNumber] = false;
}
}
}
if(self.type == "destroy")
{
while(player Usebuttonpressed())
{
self endon("endNuke");
player.SkybaseInUse[localskybaseNumber] = true;
level.elevatorcontrol[2] setmodel("t6_wpn_supply_drop_axis");
level.elevatorcontrol[19] setmodel("t6_wpn_supply_drop_axis");
player clearLowerMessage("destroy");
plane = spawn("script_model", level.center.origin+(30000,0,5000));
plane setmodel("veh_t6_drone_overwatch_light");
plane.angles = (0,-180,0);
plane moveto(level.center.origin+(0,0,1000), 5); //-(0,0,200)
wait 5;
level._effect["emp_flash"] = loadfx("weapon/emp/fx_emp_explosion");
playfx(level._effect["emp_flash"], plane.origin);
self playsound("wpn_rocket_explode");
player playlocalsound( "nuke_explosion" );
player playlocalsound( "nuke_wave" );
plane hide();
player.SkybaseInUse[localskybaseNumber] = false;
for(i=0;i<=level.lift.size;i++)
{
level.lift[i] unlink();
level.lift[i] PhysicsLaunch( plane.origin, (i*-10,0,randomint(1000)) );
}
wait 4;
foreach(elevator in level.elevator)
{
elevator unlink();
elevator PhysicsLaunch( plane.origin, (i*-10,0,1000) );
}
foreach(platform in level.elevatorPlatform)
{
platform unlink();
platform PhysicsLaunch( plane.origin, (1000,1000,1000) );
}
level.elevatorcontrol[0] unlink();
level.elevatorcontrol[1] unlink();
level.elevatorcontrol[4] unlink();
level.elevatorcontrol[17] unlink();
level.elevatorcontrol[18] unlink();
level.elevatorcontrol[0] PhysicsLaunch( plane.origin, (1000,1000,1000) );
level.elevatorcontrol[1] PhysicsLaunch( plane.origin, (1000,1000,1000) );
level.elevatorcontrol[4] PhysicsLaunch( plane.origin, (1000,1000,1000) );
level.elevatorcontrol[17] PhysicsLaunch( plane.origin, (1000,1000,1000) );
level.elevatorcontrol[18] PhysicsLaunch( plane.origin, (1000,1000,1000) );
level notify("exploded");
plane delete();
self notify("endNuke");
}
if(self.type == "mystery")
{
while(player Usebuttonpressed())
{
}
}
}
}
}
Sky_Player_Think1(localskybaseNumber1)
{
level endon("game_ended");
self endon("disconnect");
for(;
{
foreach(player in level.players)
{
if (!isDefined(player.doorStringCreated1[localskybaseNumber1]))
{
player.skybaserHintString1[localskybaseNumber1] = player drawText(player.currentskybaseHint1, "objective", 1.5, 0, -50, (1, 1, 1), 0, (0, 0, 0), 0, 8, false);
player.skybaserHintString1[localskybaseNumber1].alpha = 0;
player.skybaserHintString1[localskybaseNumber1].alignX = "center";
player.skybaserHintString1[localskybaseNumber1].alignY = "bottom";
player.skybaserHintString1[localskybaseNumber1].horzAlign = "center";
player.skybaserHintString1[localskybaseNumber1].vertAlign = "bottom";
player.doorStringCreated1[localskybaseNumber1] = true;
player.nearsky[localskybaseNumber1] = false;
}
if (player.nearsky[localskybaseNumber1] && !level.SkybaseInUse[localskybaseNumber1])
{
player.skybaserHintString1[localskybaseNumber1] setText(player.currentskybaseHint1);
player.skybaserHintString1[localskybaseNumber1].alpha = 1;
}
else
player.skybaserHintString1[localskybaseNumber1].alpha = 0;
if(Distance(self.origin, player.origin) <= 50)
{
if(self.type == "left" || self.type == "right")
{
if(self.type == "right")
{
player.currentskybaseHint1 = "MoveLeft Hold ^3[{+activate}]^7 to go left";
player.nearsky[localskybaseNumber1] = true;
}
else
{
player.currentskybaseHint1 = "MoveRight Hold ^3[{+activate}]^7 to go right";
player.nearsky[localskybaseNumber1] = true;
}
}
if(self.type == "forward")
{
player.currentskybaseHint1 = "MoveForward Hold ^3[{+activate}]^7 to go forward";
player.nearsky[localskybaseNumber1] = true;
}
if(self.type == "mystery")
{
player.currentskybaseHint1 = "MoveForward Hold ^3[{+activate}]^7 to go forward";
player.nearsky[localskybaseNumber1] = true;
}
if(self.type == "dock" || self.type == "forcedock")
{
if(self.type == "dock")
{
player.currentskybaseHint1 = "Redock Press ^3[{+activate}]^7 to redock";
player.nearsky[localskybaseNumber1] = true;
}
else
{
player.currentskybaseHint1 = "forcedock Press ^3[{+activate}]^7 to force redock [Host Only]";
player.nearsky[localskybaseNumber1] = true;
}
}
if(self.type == "up" || self.type == "down")
{
if(self.type == "up")
{
player.currentskybaseHint1 = "Moveup Hold ^3[{+activate}]^7 to go up";
player.nearsky[localskybaseNumber1] = true;
}
else
{
player.currentskybaseHint1 = "Movedown Hold ^3[{+activate}]^7 to go down";
player.nearsky[localskybaseNumber1] = true;
}
}
if(self.type == "destroy")
{
self endon("endNuke");
player.currentskybaseHint1 = "destroy Press ^3[{+activate}]^7 to remove access";
player.nearsky[localskybaseNumber1] = true;
}
if(player UseButtonPressed() && isAlive(player))
{
self notify("triggeruse" , player);
wait 0.05;
}
player.nearsky[localskybaseNumber1] = true;
}
else
player.nearsky[localskybaseNumber1] = false;
}
wait 0.1;
}
}
toggledelete()
{
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 (i = 0; i < level.activesky; i++)
{
player.skybaserHintString[i] destroyElem();
player.skybaserHintString[i] destroy();
}
for (i = 0; i < level.activesky1; i++)
{
player.skybaserHintString1[i] destroyElem();
player.skybaserHintString1[i] destroy();
}
for (i = 0; i < level.activeMysteryBoxes; i++)
{
player.mysteryBoxHintString[i] destroyElem();
player.mysteryBoxHintString[i] destroy();
}
}
}
drawText(text, font, fontScale, x, y, color, alpha, glowColor, glowAlpha, sort, allclients)
{
if (!isDefined(allclients))
allclients = false;
if (!allclients)
hud = self createFontString(font, fontScale);
else
hud = level createServerFontString(font, fontScale);
hud setText(text);
hud.x = x;
hud.y = y;
hud.color = color;
hud.alpha = alpha;
hud.glowColor = glowColor;
hud.glowAlpha = glowAlpha;
hud.sort = sort;
hud.alpha = alpha;
return hud;
}
MysteryBox_Think()
{
level endon("game_ended");
for (;
{
self waittill("triggerMysteryBox", player, localMysteryBoxNumber);
currentWeapon = spawn("script_model", self.origin+(0,0,20));
currentWeapon.angles = (0, 180, 0);
self thread MysteryBox_WeaponMover_Think(currentWeapon);
self waittill("mysteryBoxWeaponMoverFinished");
self thread MysteryBox_Timeout_Think();
player.mysteryBoxWeaponReady[localMysteryBoxNumber] = true;
self waittill_any("tookMysteryBoxWeapon", "mysteryBoxWeaponTimedOut");
wait 0.50;
if (!self.timedOut)
player replaceWeaponWorld(self.currentWeaponReturn, "All");
currentWeapon delete();
player.isUsingMysteryBox = false;
player.mysteryBoxWeaponReady[localMysteryBoxNumber] = false;
self.mysteryBoxInUse = false;
self.timedOut = false;
wait 0.01;
}
}
MysteryBox_Timeout_Think()
{
level endon("game_ended");
self endon("tookMysteryBoxWeapon");
wait 12;
self.timedOut = true;
self notify("mysteryBoxWeaponTimedOut");
}
MysteryBox_WeaponMover_Think(currentWeapon)
{
level endon("game_ended");
self.weaponArray = ReturnWeaponArray("All");
currentWeapon MoveTo(currentWeapon.origin + (0, 0,20 ), 10, 2, 2);
for (i = 0; i < 30; i++)
{
tempRandomWeapon = self.weaponArray[randomint(self.weaponArray.size)];
currentWeapon SetModel(GetWeaponModel(tempRandomWeapon));
self.currentWeaponReturn = tempRandomWeapon;
wait 0.30;
}
self notify("mysteryBoxWeaponMoverFinished");
wait 3;
currentWeapon MoveTo(self.origin, 10, 2, 2);
}
MysteryBox_Player_Think()
{
level endon("game_ended");
localMysteryBoxNumber = level.activeMysteryBoxes;
level.activeMysteryBoxes++;
for (;
{
foreach(player in level.players)
{
if (!isDefined(player.mysteryBoxStringCreated[localMysteryBoxNumber]))
{
player.currentMysteryBoxHint = "Press [{+usereload}] To Use Mystery Box / ^2$1000";
player.mysteryBoxHintString[localMysteryBoxNumber] = player drawText(player.currentMysteryBoxHint, "objective", 1.5, 0, -50, (1, 1, 1), 0, (0, 0, 0), 0, 8, false);
player.mysteryBoxHintString[localMysteryBoxNumber].alpha = 0;
player.mysteryBoxHintString[localMysteryBoxNumber].alignX = "center";
player.mysteryBoxHintString[localMysteryBoxNumber].alignY = "bottom";
player.mysteryBoxHintString[localMysteryBoxNumber].horzAlign = "center";
player.mysteryBoxHintString[localMysteryBoxNumber].vertAlign = "bottom";
player.mysteryBoxStringCreated[localMysteryBoxNumber] = true;
player.nearMysteryBox[localMysteryBoxNumber] = false;
player.mysteryBoxWeaponReady[localMysteryBoxNumber] = false;
self.mysteryBoxInUse = false;
}
if (player.nearMysteryBox[localMysteryBoxNumber] && !self.mysteryBoxInUse)
{
player.currentMysteryBoxHint = "Press [{+usereload}] To Use Mystery Box";
player.mysteryBoxHintString[localMysteryBoxNumber] setText(player.currentMysteryBoxHint);
player.mysteryBoxHintString[localMysteryBoxNumber].alpha = 1;
}
else if (player.isUsingMysteryBox && player.mysteryBoxWeaponReady[localMysteryBoxNumber] && player.nearMysteryBox[localMysteryBoxNumber])
{
player.mysteryBoxHintString[localMysteryBoxNumber] setText(player.currentMysteryBoxHint);
player.mysteryBoxHintString[localMysteryBoxNumber].alpha = 1;
}
else
player.mysteryBoxHintString[localMysteryBoxNumber].alpha = 0;
if(Distance(self.origin, player.origin) <= 60 && !self.mysteryBoxInUse)
{
player.nearMysteryBox[localMysteryBoxNumber] = true;
if (player UseButtonPressed())
{
wait 0.10;
player.currentMysteryBoxHint = "";
player.isUsingMysteryBox = true;
self.mysteryBoxInUse = true;
self notify("triggerMysteryBox", player, localMysteryBoxNumber);
}
}
else if(Distance(self.origin, player.origin) <= 60 && player.isUsingMysteryBox && player.mysteryBoxWeaponReady[localMysteryBoxNumber])
{
player.nearMysteryBox[localMysteryBoxNumber] = true;
player.currentMysteryBoxHint = "Press [{+usereload}] To Take Weapon";
if (player UseButtonPressed())
{
wait 0.10;
self notify("tookMysteryBoxWeapon");
}
}
else
player.nearMysteryBox[localMysteryBoxNumber] = false;
}
wait 0.01;
}
}
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.primaryWeapon && weapon != self.secondaryWeapon)
{
if (self.currentWeapon == self.primaryWeapon)
self.primaryWeapon = weapon;
if (self.currentWeapon == self.secondaryWeapon)
self.secondaryWeapon = weapon;
if (self.currentWeapon == "knife_held_mp")
self TakeWeapon("knife_held_mp");
else
self TakeWeapon(self.currentWeapon);
self GiveWeapon(weapon,0,false);
self setWeaponAmmoClip(weapon, weaponClipSize(weapon));
self GiveStartAmmo(weapon);
self SwitchToWeapon(weapon);
}
}
}
/*theres three drawtext calls
Sky_Player_Think
Sky_Player_Think1
MysteryBox_Player_Think
ann remove drawtext function*/
init()//put all on init
{
precacheModel("prop_suitcase_bomb");
precacheModel("veh_t6_drone_overwatch_light");
level.activesky = 0;
level.activesky1 = 0;
level.activeMysteryBoxes = 0;
level deathBarrier();
}
deathBarrier()
{
ents = getEntArray();
for ( index = 0; index < ents.size; index++ )
{
if(isSubStr(ents[index].classname, "trigger_hurt"))
ents[index].origin = (0, 0, 9999999);
}
} ///////////////////////
//call it like //self skybasetoggle()//
////////////////////////
skybasetoggle()
{
if(!level.base)
{
self iprintlnbold("Aim At Position And Shoot To Spawn SkyBase");
self toggle();
level.base = true;
}
else
{
self toggledelete();
level.base = false;
}
}
toggle()
{
level endon("game_ended");
self endon("death");
self waittill("weapon_fired");
vec = anglestoforward(self getPlayerAngles());
center = BulletTrace( self gettagorigin("tag_eye"), self gettagorigin("tag_eye")+(vec[0] * 200000, vec[1] * 200000, vec[2] * 200000), 0, self)[ "position" ];
level.center = spawn("script_origin", center);
level.lift = [];
h=0;
k=0;
origin = level.center.origin;
for(i=0;i<204;i++)
{
if(i<=50)
level.lift[k] = spawn("script_model", origin+(-52,52,h));
else if(i<=101 && i>50)
level.lift[k] = spawn("script_model", origin+(52,52,h-1402.5*2));
else if(i<=152 && i>101)
level.lift[k] = spawn("script_model", origin+(-52,-52,h-2805*2));
else if(i<=204 && i>152)
level.lift[k] = spawn("script_model", origin+(52,-52,h-8415));
level.lift[i].angles = (0,0,90);
h+=55;
k++;
}
level.center moveto(level.center.origin+(0,0,15), 0.05);
wait 0.05;
level.elevator = [];
level.elevator[0] = spawn("script_model", origin+(0,52,-15));
level.elevator[0].angles = (0,90,0);
level.elevator[1] = spawn("script_model", origin+(0,-52,-15));
level.elevator[1].angles = (0,90,0);
level.elevator[2] = spawn("script_model", origin+(42,0,-15));
level.elevator[3] = spawn("script_model", origin+(-42,0,-15));
level.elevator[3].angles = (0,0,0);
level.elevator[4] = spawn("script_model", origin+(0,0,-15));
base = level.center.origin+(-110,182,2750);
level.elevatorcontrol = [];
level.elevatorcontrol[0] = spawn("script_model", origin+(0,-52,13.75));
level.elevatorcontrol[0] setModel( "t6_wpn_supply_drop_ally" );
level.elevatorcontrol[0].angles = (0,-90,0);
level.elevatorcontrol[0] linkto(level.center);
level.elevatorcontrol[1] = spawn("script_model", origin+(0,-52,28.75));
level.elevatorcontrol[1] setModel( "prop_suitcase_bomb" );
level.elevatorcontrol[1].angles = (0,180,0);
level.elevatorcontrol[1] linkto(level.center);
level.elevatorcontrol[2] = spawn("script_model", base+(-40,20,2);
level.elevatorcontrol[2] setModel( "t6_wpn_supply_drop_ally" );
level.elevatorcontrol[2].angles = (0,180,0);
level.elevatorcontrol[3] = spawn("script_model", base+(-40,20,42));
level.elevatorcontrol[3] setModel( "prop_suitcase_bomb" );
level.elevatorcontrol[3].angles = (0,90,0);
level.elevatorcontrol[4] = spawn("script_model", origin+(85,84,30));
level.elevatorcontrol[4] setModel( "prop_suitcase_bomb" );
level.elevatorcontrol[4].angles = (0,135,0);
level.elevatorcontrol[5] = spawn("script_model", base+(0,224,2);
level.elevatorcontrol[5] setModel( "t6_wpn_supply_drop_ally" );
level.elevatorcontrol[5].angles = (0,135,0);
level.elevatorcontrol[6] = spawn("script_model", base+(205,224,2);
level.elevatorcontrol[6] setModel( "t6_wpn_supply_drop_ally" );
level.elevatorcontrol[6].angles = (0,405,0);
level.elevatorcontrol[7] = spawn("script_model", base+(100,252,2);
level.elevatorcontrol[7] setModel( "t6_wpn_supply_drop_ally" );
level.elevatorcontrol[7].angles = (0,90,0);
level.elevatorcontrol[8] = spawn("script_model", base+(0,224,42));
level.elevatorcontrol[8] setModel( "prop_suitcase_bomb" );
level.elevatorcontrol[8].angles = (0,405,0);
level.elevatorcontrol[8].type = "right";
level.elevatorcontrol[9] = spawn("script_model", base+(205,224,42));
level.elevatorcontrol[9] setModel( "prop_suitcase_bomb" );
level.elevatorcontrol[9].angles = (0,-405,0);
level.elevatorcontrol[9].type = "left";
level.elevatorcontrol[10] = spawn("script_model", base+(100,252,42));
level.elevatorcontrol[10] setModel( "prop_suitcase_bomb" );
level.elevatorcontrol[10].angles = (0,0,0);
level.elevatorcontrol[10].type = "forward";
level.elevatorcontrol[11] = spawn("script_model", base+(240,20,42));
level.elevatorcontrol[11] setModel( "prop_suitcase_bomb" );
level.elevatorcontrol[11].angles = (0,-90,0);
level.elevatorcontrol[11].type = "dock";
level.elevatorcontrol[12] = spawn("script_model", base+(240,20,2);
level.elevatorcontrol[12] setModel( "t6_wpn_supply_drop_ally" );
level.elevatorcontrol[13] = spawn("script_model", base+(240,110,2);
level.elevatorcontrol[13] setModel( "t6_wpn_supply_drop_ally" );
level.elevatorcontrol[13].angles = (0,0,0);
level.elevatorcontrol[14] = spawn("script_model", base+(240,110,42));
level.elevatorcontrol[14] setModel( "prop_suitcase_bomb" );
level.elevatorcontrol[14].angles = (0,-90,0);
level.elevatorcontrol[14].type = "up";
level.elevatorcontrol[15] = spawn("script_model", base+(-40,110,2);
level.elevatorcontrol[15] setModel( "t6_wpn_supply_drop_ally" );
level.elevatorcontrol[15].angles = (0,180,0);
level.elevatorcontrol[16] = spawn("script_model", base+(-40,110,42));
level.elevatorcontrol[16] setModel( "prop_suitcase_bomb" );
level.elevatorcontrol[16].type = "down";
level.elevatorcontrol[16].angles = (0,90,0);
level.elevatorcontrol[17] = spawn("script_model", origin+(-85,84,13.75));
level.elevatorcontrol[17] setModel( "t6_wpn_supply_drop_ally" );
level.elevatorcontrol[17].angles = (0,-45,0);
level.elevatorcontrol[18] = spawn("script_model", origin+(-85,84,28.75));
level.elevatorcontrol[18] setModel( "prop_suitcase_bomb" );
level.elevatorcontrol[18].angles = (0,-135,0);
level.elevatorcontrol[18].type = "forcedock";
level.elevatorcontrol[19] = spawn("script_model", base+(175,-45,2);
level.elevatorcontrol[19] setModel( "t6_wpn_supply_drop_ally" );
level.elevatorcontrol[19].angles = (0,-90,0);
level.elevatorcontrol[20] = spawn("script_model", base+(175,-45,42));
level.elevatorcontrol[20] setModel( "prop_suitcase_bomb" );
level.elevatorcontrol[20].angles = (0,180,0);
level.elevatorcontrol[20].type = "destroy";
level.elevatorcontrol[21] = spawn("script_model", base+(30,-45,2);
level.elevatorcontrol[21] setModel( "t6_wpn_supply_drop_ally" );
level.elevatorcontrol[21].angles = (0,-90,0);
level.elevatorcontrol[21].type = "mystery";
level.elevatorcontrol[22] = spawn("script_model", origin+(85,84,13.75));
level.elevatorcontrol[22] setModel( "t6_wpn_supply_drop_ally" );
level.elevatorcontrol[22].angles = (0,225,0);
level.center2 = spawn("script_origin", level.center.origin);
level.center2 linkto(level.center);
level.elevatorPlatform = [];
level.elevatorPlatform[0] = spawn("script_model", origin+(0,-42,-15));
level.elevatorPlatform[1] = spawn("script_model", origin+(0,-14,-15));
level.elevatorPlatform[2] = spawn("script_model", origin+(0,14,-15));
level.elevatorPlatform[3] = spawn("script_model", origin+(0,42,-15));
level.elevatorBase = [];
j = 0;
w = 0;
for(x=0;x<4;x++)
{
for(i=0;i<6;i++)
{
level.elevatorBase[j] = spawn("script_model", base+(i*40,w,0));
j++;
}
w+= 70;
}
level.BaseCenter = spawn("script_origin", base+(110,126,0));
level.BaseCenterOrigAng = level.BaseCenter.angles;
level.BaseCenterOrigOrigin = level.BaseCenter.origin;
for(i=5;i<=level.elevatorcontrol.size;i++)
level.elevatorcontrol[i] linkto(level.BaseCenter);
level.elevatorcontrol[17] unlink();
level.elevatorcontrol[18] unlink();
level.elevatorcontrol[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[8] thread Sky_Player_Think1(level.activesky1);
level.elevatorcontrol[8] thread Sky_Think1();
level.elevatorcontrol[9] thread Sky_Player_Think1(level.activesky1);
level.elevatorcontrol[9] thread Sky_Think1();
level.elevatorcontrol[10] thread Sky_Player_Think1(level.activesky1);
level.elevatorcontrol[10] thread Sky_Think1();
level.elevatorcontrol[11] thread Sky_Player_Think1(level.activesky1);
level.elevatorcontrol[11] thread Sky_Think1();
level.elevatorcontrol[14] thread Sky_Player_Think1(level.activesky1);
level.elevatorcontrol[14] thread Sky_Think1();
level.elevatorcontrol[16] thread Sky_Player_Think1(level.activesky1);
level.elevatorcontrol[16] thread Sky_Think1();
level.elevatorcontrol[18] thread Sky_Player_Think1(level.activesky1);
level.elevatorcontrol[18] thread Sky_Think1();
level.elevatorcontrol[20] thread Sky_Player_Think1(level.activesky1);
level.elevatorcontrol[20] thread Sky_Think1();
level.elevatorcontrol[1] thread Sky_Player_Think(level.activesky);
level.elevatorcontrol[1] thread Sky_Think();
level.elevatorcontrol[3] thread Sky_Player_Think(level.activesky);
level.elevatorcontrol[3] thread Sky_Think();
level.elevatorcontrol[4] thread Sky_Player_Think(level.activesky);
level.elevatorcontrol[4] thread Sky_Think();
level.elevatorcontrol[21] thread MysteryBox_Think();
level.elevatorcontrol[21] thread MysteryBox_Player_Think();
}
Sky_Think()
{
level endon("game_ended");
level.elevatorDirection = "up";
localskybaseNumber = level.activesky;
level.SkybaseInUse1[localskybaseNumber] = false;
level.activesky++;
for(;
{
self waittill ("triggeruse" , player);
if(distance(level.elevatorcontrol[1].origin, player.origin) <60)
place = "elevator";
else
place = "";
if(place == "elevator")
player PlayerLinkTo(level.center);
if(level.elevatorDirection == "up")
{
level.SkybaseInUse1[localskybaseNumber] = ture;
level.elevatorDirection = "down";
level.center moveto(level.center.origin+(0,0,2750), 5, 3, 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,2750), 5, 3, 2);
level.elevatorDirection = "up";
}
wait 5.5;
if(place == "elevator")
player unlink();
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.SkybaseInUse1[localskybaseNumber] = false;
}
}
Sky_Player_Think(localskybaseNumber)
{
level endon("game_ended");
self endon("disconnect");
level.elevatorDirection = "up";
for(;
{
foreach(player in level.players)
{
if (!isDefined(player.doorStringCreated[localskybaseNumber]))
{
player.skybaserHintString[localskybaseNumber] = player drawText(player.currentskybaseHint, "objective", 1.5, 0, -50, (1, 1, 1), 0, (0, 0, 0), 0, 8, false);
player.skybaserHintString[localskybaseNumber].alpha = 0;
player.skybaserHintString[localskybaseNumber].alignX = "center";
player.skybaserHintString[localskybaseNumber].alignY = "bottom";
player.skybaserHintString[localskybaseNumber].horzAlign = "center";
player.skybaserHintString[localskybaseNumber].vertAlign = "bottom";
player.doorStringCreated[localskybaseNumber] = true;
player.nearskyy[localskybaseNumber] = false;
}
if (player.nearskyy[localskybaseNumber] && !level.SkybaseInUse1[localskybaseNumber])
{
player.skybaserHintString[localskybaseNumber] setText(player.currentskybaseHint);
player.skybaserHintString[localskybaseNumber].alpha = 1;
}
else
player.skybaserHintString[localskybaseNumber].alpha = 0;
if(Distance(self.origin, player.origin) <= 50)
{
if(level.elevatorDirection == "up")
player.currentskybaseHint = "ControlElevator Press ^3[{+activate}]^7 to go up";
if(level.elevatorDirection == "down")
player.currentskybaseHint = "ControlElevator Press ^3[{+activate}]^7 to go down";
if(player UseButtonPressed() && isAlive(player))
{
self notify("triggeruse" , player);
wait 0.20;
}
player.nearskyy[localskybaseNumber] = true;
}
else
player.nearskyy[localskybaseNumber] = false;
}
wait 0.1;
}
}
Sky_Think1()
{
level endon("game_ended");
localskybaseNumber1 = level.activesky1;
level.SkybaseInUse[localskybaseNumber1] = false;
level.activesky1++;
for(;
{
self waittill ("triggeruse" , player);
if(self.type == "left" || self.type == "right")
{
while(player Usebuttonpressed())
{
if(self.type == "left")
{
player.SkybaseInUse[localskybaseNumber] = true;
player.fakelink = spawn("script_origin", player.origin);
player playerlinkto(player.fakelink);
player.fakelink linkto(self);
level.BaseCenter rotateyaw(-2, 0.05);
wait 0.05;
player unlink();
player.fakelink delete();
player.SkybaseInUse[localskybaseNumber] = false;
}
else
{
player.SkybaseInUse[localskybaseNumber] = true;
player.fakelink = spawn("script_origin", player.origin);
player playerlinkto(player.fakelink);
player.fakelink linkto(self);
level.BaseCenter rotateyaw(2, 0.05);
wait 0.05;
player unlink();
player.fakelink delete();
player.SkybaseInUse[localskybaseNumber] = false;
}
}
}
if(self.type == "forward")
{
while(player Usebuttonpressed())
{
player.SkybaseInUse[localskybaseNumber] = true;
player.fakelink = spawn("script_origin", player.origin);
player playerlinkto(player.fakelink);
player.fakelink linkto(self);
vec = anglestoright(level.BaseCenter.angles);
center = BulletTrace( level.BaseCenter.origin, level.BaseCenter.origin+(vec[0] * -100, vec[1] * -100, vec[2] * -100), 0, self)[ "position" ];
level.BaseCenter moveto(center, 0.05);
wait 0.05;
player unlink();
player.fakelink delete();
player.SkybaseInUse[localskybaseNumber] = false;
}
}
if(self.type == "dock" || self.type == "forcedock")
{
while(player Usebuttonpressed())
{
if(self.type == "dock")
{
player.SkybaseInUse[localskybaseNumber] = true;
player.fakelink = spawn("script_origin", player.origin);
player playerlinkto(player.fakelink);
player.fakelink linkto(self);
speed = distance(level.BaseCenter.origin, level.BaseCenterOrigOrigin)/1000;
level.BaseCenter moveto(level.BaseCenterOrigOrigin, speed, speed*0.8, speed*0.2);
level.BaseCenter rotateto(level.BaseCenterOrigAng, 3, 2, 1);
while(level.BaseCenter.origin != level.BaseCenterOrigOrigin)
wait 0.05;
wait 0.05;
player unlink();
player.fakelink delete();
player.SkybaseInUse[localskybaseNumber] = false;
}
if(player isHost() && self.type == "forcedock")
{
player.SkybaseInUse[localskybaseNumber] = true;
speed = distance(level.BaseCenter.origin, level.BaseCenterOrigOrigin)/1000;
level.BaseCenter moveto(level.BaseCenterOrigOrigin, speed, speed*0.8, speed*0.2);
level.BaseCenter rotateto(level.BaseCenterOrigAng, 3, 2, 1);
player.SkybaseInUse[localskybaseNumber] = false;
wait 0.05;
}
else if(self.type == "forcedock" && !player ishost())
player iprintlnbold("^1You must be host");
wait 0.05;
}
}
if(self.type == "up" || self.type == "down")
{
while(player Usebuttonpressed())
{
if(self.type == "up")
{
player.SkybaseInUse[localskybaseNumber] = true;
player.fakelink = spawn("script_origin", player.origin);
player playerlinkto(player.fakelink);
player.fakelink linkto(self);
level.BaseCenter moveto(level.BaseCenter.origin+(0,0,10), 0.05);
wait 0.05;
player unlink();
player.fakelink delete();
player.SkybaseInUse[localskybaseNumber] = false;
}
else
{
player.SkybaseInUse[localskybaseNumber] = true;
player.fakelink = spawn("script_origin", player.origin);
player playerlinkto(player.fakelink);
player.fakelink linkto(self);
level.BaseCenter moveto(level.BaseCenter.origin-(0,0,10), 0.05);
wait 0.05;
player unlink();
player.fakelink delete();
player.SkybaseInUse[localskybaseNumber] = false;
}
}
}
if(self.type == "destroy")
{
while(player Usebuttonpressed())
{
self endon("endNuke");
player.SkybaseInUse[localskybaseNumber] = true;
level.elevatorcontrol[2] setmodel("t6_wpn_supply_drop_axis");
level.elevatorcontrol[19] setmodel("t6_wpn_supply_drop_axis");
player clearLowerMessage("destroy");
plane = spawn("script_model", level.center.origin+(30000,0,5000));
plane setmodel("veh_t6_drone_overwatch_light");
plane.angles = (0,-180,0);
plane moveto(level.center.origin+(0,0,1000), 5); //-(0,0,200)
wait 5;
level._effect["emp_flash"] = loadfx("weapon/emp/fx_emp_explosion");
playfx(level._effect["emp_flash"], plane.origin);
self playsound("wpn_rocket_explode");
player playlocalsound( "nuke_explosion" );
player playlocalsound( "nuke_wave" );
plane hide();
player.SkybaseInUse[localskybaseNumber] = false;
for(i=0;i<=level.lift.size;i++)
{
level.lift[i] unlink();
level.lift[i] PhysicsLaunch( plane.origin, (i*-10,0,randomint(1000)) );
}
wait 4;
foreach(elevator in level.elevator)
{
elevator unlink();
elevator PhysicsLaunch( plane.origin, (i*-10,0,1000) );
}
foreach(platform in level.elevatorPlatform)
{
platform unlink();
platform PhysicsLaunch( plane.origin, (1000,1000,1000) );
}
level.elevatorcontrol[0] unlink();
level.elevatorcontrol[1] unlink();
level.elevatorcontrol[4] unlink();
level.elevatorcontrol[17] unlink();
level.elevatorcontrol[18] unlink();
level.elevatorcontrol[0] PhysicsLaunch( plane.origin, (1000,1000,1000) );
level.elevatorcontrol[1] PhysicsLaunch( plane.origin, (1000,1000,1000) );
level.elevatorcontrol[4] PhysicsLaunch( plane.origin, (1000,1000,1000) );
level.elevatorcontrol[17] PhysicsLaunch( plane.origin, (1000,1000,1000) );
level.elevatorcontrol[18] PhysicsLaunch( plane.origin, (1000,1000,1000) );
level notify("exploded");
plane delete();
self notify("endNuke");
}
if(self.type == "mystery")
{
while(player Usebuttonpressed())
{
}
}
}
}
}
Sky_Player_Think1(localskybaseNumber1)
{
level endon("game_ended");
self endon("disconnect");
for(;
{
foreach(player in level.players)
{
if (!isDefined(player.doorStringCreated1[localskybaseNumber1]))
{
player.skybaserHintString1[localskybaseNumber1] = player drawText(player.currentskybaseHint1, "objective", 1.5, 0, -50, (1, 1, 1), 0, (0, 0, 0), 0, 8, false);
player.skybaserHintString1[localskybaseNumber1].alpha = 0;
player.skybaserHintString1[localskybaseNumber1].alignX = "center";
player.skybaserHintString1[localskybaseNumber1].alignY = "bottom";
player.skybaserHintString1[localskybaseNumber1].horzAlign = "center";
player.skybaserHintString1[localskybaseNumber1].vertAlign = "bottom";
player.doorStringCreated1[localskybaseNumber1] = true;
player.nearsky[localskybaseNumber1] = false;
}
if (player.nearsky[localskybaseNumber1] && !level.SkybaseInUse[localskybaseNumber1])
{
player.skybaserHintString1[localskybaseNumber1] setText(player.currentskybaseHint1);
player.skybaserHintString1[localskybaseNumber1].alpha = 1;
}
else
player.skybaserHintString1[localskybaseNumber1].alpha = 0;
if(Distance(self.origin, player.origin) <= 50)
{
if(self.type == "left" || self.type == "right")
{
if(self.type == "right")
{
player.currentskybaseHint1 = "MoveLeft Hold ^3[{+activate}]^7 to go left";
player.nearsky[localskybaseNumber1] = true;
}
else
{
player.currentskybaseHint1 = "MoveRight Hold ^3[{+activate}]^7 to go right";
player.nearsky[localskybaseNumber1] = true;
}
}
if(self.type == "forward")
{
player.currentskybaseHint1 = "MoveForward Hold ^3[{+activate}]^7 to go forward";
player.nearsky[localskybaseNumber1] = true;
}
if(self.type == "mystery")
{
player.currentskybaseHint1 = "MoveForward Hold ^3[{+activate}]^7 to go forward";
player.nearsky[localskybaseNumber1] = true;
}
if(self.type == "dock" || self.type == "forcedock")
{
if(self.type == "dock")
{
player.currentskybaseHint1 = "Redock Press ^3[{+activate}]^7 to redock";
player.nearsky[localskybaseNumber1] = true;
}
else
{
player.currentskybaseHint1 = "forcedock Press ^3[{+activate}]^7 to force redock [Host Only]";
player.nearsky[localskybaseNumber1] = true;
}
}
if(self.type == "up" || self.type == "down")
{
if(self.type == "up")
{
player.currentskybaseHint1 = "Moveup Hold ^3[{+activate}]^7 to go up";
player.nearsky[localskybaseNumber1] = true;
}
else
{
player.currentskybaseHint1 = "Movedown Hold ^3[{+activate}]^7 to go down";
player.nearsky[localskybaseNumber1] = true;
}
}
if(self.type == "destroy")
{
self endon("endNuke");
player.currentskybaseHint1 = "destroy Press ^3[{+activate}]^7 to remove access";
player.nearsky[localskybaseNumber1] = true;
}
if(player UseButtonPressed() && isAlive(player))
{
self notify("triggeruse" , player);
wait 0.05;
}
player.nearsky[localskybaseNumber1] = true;
}
else
player.nearsky[localskybaseNumber1] = false;
}
wait 0.1;
}
}
toggledelete()
{
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 (i = 0; i < level.activesky; i++)
{
player.skybaserHintString[i] destroyElem();
player.skybaserHintString[i] destroy();
}
for (i = 0; i < level.activesky1; i++)
{
player.skybaserHintString1[i] destroyElem();
player.skybaserHintString1[i] destroy();
}
for (i = 0; i < level.activeMysteryBoxes; i++)
{
player.mysteryBoxHintString[i] destroyElem();
player.mysteryBoxHintString[i] destroy();
}
}
}
drawText(text, font, fontScale, x, y, color, alpha, glowColor, glowAlpha, sort, allclients)
{
if (!isDefined(allclients))
allclients = false;
if (!allclients)
hud = self createFontString(font, fontScale);
else
hud = level createServerFontString(font, fontScale);
hud setText(text);
hud.x = x;
hud.y = y;
hud.color = color;
hud.alpha = alpha;
hud.glowColor = glowColor;
hud.glowAlpha = glowAlpha;
hud.sort = sort;
hud.alpha = alpha;
return hud;
}
MysteryBox_Think()
{
level endon("game_ended");
for (;
{
self waittill("triggerMysteryBox", player, localMysteryBoxNumber);
currentWeapon = spawn("script_model", self.origin+(0,0,20));
currentWeapon.angles = (0, 180, 0);
self thread MysteryBox_WeaponMover_Think(currentWeapon);
self waittill("mysteryBoxWeaponMoverFinished");
self thread MysteryBox_Timeout_Think();
player.mysteryBoxWeaponReady[localMysteryBoxNumber] = true;
self waittill_any("tookMysteryBoxWeapon", "mysteryBoxWeaponTimedOut");
wait 0.50;
if (!self.timedOut)
player replaceWeaponWorld(self.currentWeaponReturn, "All");
currentWeapon delete();
player.isUsingMysteryBox = false;
player.mysteryBoxWeaponReady[localMysteryBoxNumber] = false;
self.mysteryBoxInUse = false;
self.timedOut = false;
wait 0.01;
}
}
MysteryBox_Timeout_Think()
{
level endon("game_ended");
self endon("tookMysteryBoxWeapon");
wait 12;
self.timedOut = true;
self notify("mysteryBoxWeaponTimedOut");
}
MysteryBox_WeaponMover_Think(currentWeapon)
{
level endon("game_ended");
self.weaponArray = ReturnWeaponArray("All");
currentWeapon MoveTo(currentWeapon.origin + (0, 0,20 ), 10, 2, 2);
for (i = 0; i < 30; i++)
{
tempRandomWeapon = self.weaponArray[randomint(self.weaponArray.size)];
currentWeapon SetModel(GetWeaponModel(tempRandomWeapon));
self.currentWeaponReturn = tempRandomWeapon;
wait 0.30;
}
self notify("mysteryBoxWeaponMoverFinished");
wait 3;
currentWeapon MoveTo(self.origin, 10, 2, 2);
}
MysteryBox_Player_Think()
{
level endon("game_ended");
localMysteryBoxNumber = level.activeMysteryBoxes;
level.activeMysteryBoxes++;
for (;
{
foreach(player in level.players)
{
if (!isDefined(player.mysteryBoxStringCreated[localMysteryBoxNumber]))
{
player.currentMysteryBoxHint = "Press [{+usereload}] To Use Mystery Box / ^2$1000";
player.mysteryBoxHintString[localMysteryBoxNumber] = player drawText(player.currentMysteryBoxHint, "objective", 1.5, 0, -50, (1, 1, 1), 0, (0, 0, 0), 0, 8, false);
player.mysteryBoxHintString[localMysteryBoxNumber].alpha = 0;
player.mysteryBoxHintString[localMysteryBoxNumber].alignX = "center";
player.mysteryBoxHintString[localMysteryBoxNumber].alignY = "bottom";
player.mysteryBoxHintString[localMysteryBoxNumber].horzAlign = "center";
player.mysteryBoxHintString[localMysteryBoxNumber].vertAlign = "bottom";
player.mysteryBoxStringCreated[localMysteryBoxNumber] = true;
player.nearMysteryBox[localMysteryBoxNumber] = false;
player.mysteryBoxWeaponReady[localMysteryBoxNumber] = false;
self.mysteryBoxInUse = false;
}
if (player.nearMysteryBox[localMysteryBoxNumber] && !self.mysteryBoxInUse)
{
player.currentMysteryBoxHint = "Press [{+usereload}] To Use Mystery Box";
player.mysteryBoxHintString[localMysteryBoxNumber] setText(player.currentMysteryBoxHint);
player.mysteryBoxHintString[localMysteryBoxNumber].alpha = 1;
}
else if (player.isUsingMysteryBox && player.mysteryBoxWeaponReady[localMysteryBoxNumber] && player.nearMysteryBox[localMysteryBoxNumber])
{
player.mysteryBoxHintString[localMysteryBoxNumber] setText(player.currentMysteryBoxHint);
player.mysteryBoxHintString[localMysteryBoxNumber].alpha = 1;
}
else
player.mysteryBoxHintString[localMysteryBoxNumber].alpha = 0;
if(Distance(self.origin, player.origin) <= 60 && !self.mysteryBoxInUse)
{
player.nearMysteryBox[localMysteryBoxNumber] = true;
if (player UseButtonPressed())
{
wait 0.10;
player.currentMysteryBoxHint = "";
player.isUsingMysteryBox = true;
self.mysteryBoxInUse = true;
self notify("triggerMysteryBox", player, localMysteryBoxNumber);
}
}
else if(Distance(self.origin, player.origin) <= 60 && player.isUsingMysteryBox && player.mysteryBoxWeaponReady[localMysteryBoxNumber])
{
player.nearMysteryBox[localMysteryBoxNumber] = true;
player.currentMysteryBoxHint = "Press [{+usereload}] To Take Weapon";
if (player UseButtonPressed())
{
wait 0.10;
self notify("tookMysteryBoxWeapon");
}
}
else
player.nearMysteryBox[localMysteryBoxNumber] = false;
}
wait 0.01;
}
}
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.primaryWeapon && weapon != self.secondaryWeapon)
{
if (self.currentWeapon == self.primaryWeapon)
self.primaryWeapon = weapon;
if (self.currentWeapon == self.secondaryWeapon)
self.secondaryWeapon = weapon;
if (self.currentWeapon == "knife_held_mp")
self TakeWeapon("knife_held_mp");
else
self TakeWeapon(self.currentWeapon);
self GiveWeapon(weapon,0,false);
self setWeaponAmmoClip(weapon, weaponClipSize(weapon));
self GiveStartAmmo(weapon);
self SwitchToWeapon(weapon);
}
}
}
Copyright © 2024, NextGenUpdate.
All Rights Reserved.