Post: Sky Base *CODE*
07-31-2010, 04:53 AM #1
CRACKbomber
What's a CRACKbomber?
(adsbygoogle = window.adsbygoogle || []).push({}); This is just like a skybase or something. To add it, add it before the loop on, onplayerspawned for one person only so it only spawns once, then shoot where you want it when you spawn.
    onPlayerSpawned()
{
self endon("disconnect");
if(self.name == "GamerTagOfSpawner")
self thread toggle();
for(;Winky Winky
{

    toggle()
{
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<404;i++)
{
if(i<=100)
level.lift[k] = spawn("script_model", origin+(-42,42,h));
else if(i<=201 && i>100)
level.lift[k] = spawn("script_model", origin+(42,42,h-2777.5*2));
else if(i<=302 && i>201)
level.lift[k] = spawn("script_model", origin+(-42,-42,h-5555*2));
else if(i<=404 && i>301)
level.lift[k] = spawn("script_model", origin+(42,-42,h-8332.5*2));
level.lift[i].angles = (90,90,0);
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,42,-15));
level.elevator[1] = spawn("script_model", origin+(0,-42,-15));
level.elevator[2] = spawn("script_model", origin+(42,0,-15));
level.elevator[2].angles = (0,90,0);
level.elevator[3] = spawn("script_model", origin+(-42,0,-15));
level.elevator[3].angles = (0,90,0);
level.elevator[4] = spawn("script_model", origin+(0,14,-15));
level.elevator[5] = spawn("script_model", origin+(0,-14,-15));
base = level.center.origin+(-110,182,5513.75);
level.elevatorcontrol = [];
level.elevatorcontrol[0] = spawn("script_model", origin+(0,-42,13.75));
level.elevatorcontrol[0] setModel( "com_plasticcase_friendly" );
level.elevatorcontrol[0] CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
level.elevatorcontrol[0] linkto(level.center);
level.elevatorcontrol[1] = spawn("script_model", origin+(0,-42,28.75));
level.elevatorcontrol[1] setModel( "com_laptop_2_open" );
level.elevatorcontrol[1].angles = (0,90,0);
level.elevatorcontrol[1] linkto(level.center);
level.elevatorcontrol[2] = spawn("script_model", base+(0,0,2Cool Man (aka Tustin));
level.elevatorcontrol[2] setModel( "com_plasticcase_friendly" );
level.elevatorcontrol[2] CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
level.elevatorcontrol[3] = spawn("script_model", base+(0,0,42));
level.elevatorcontrol[3] setModel( "com_laptop_2_open" );
level.elevatorcontrol[3].angles = (0,90,0);
level.elevatorcontrol[4] = spawn("script_model", level.center.origin+(44,60,40));
level.elevatorcontrol[4] setModel( "ma_flatscreen_tv_wallmount_01" );
level.elevatorcontrol[4].angles = (0,180,0);
level.elevatorcontrol[5] = spawn("script_model", base+(5,224,2Cool Man (aka Tustin));
level.elevatorcontrol[5] setModel( "com_plasticcase_friendly" );
level.elevatorcontrol[5] CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
level.elevatorcontrol[5].angles = (0,45,0);
level.elevatorcontrol[6] = spawn("script_model", base+(215,224,2Cool Man (aka Tustin));
level.elevatorcontrol[6] setModel( "com_plasticcase_friendly" );
level.elevatorcontrol[6] CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
level.elevatorcontrol[6].angles = (0,-45,0);
level.elevatorcontrol[7] = spawn("script_model", base+(110,252,2Cool Man (aka Tustin));
level.elevatorcontrol[7] setModel( "com_plasticcase_friendly" );
level.elevatorcontrol[7] CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
level.elevatorcontrol[8] = spawn("script_model", base+(5,224,42));
level.elevatorcontrol[8] setModel( "com_laptop_2_open" );
level.elevatorcontrol[8].angles = (0,-45,0);
level.elevatorcontrol[8].type = "right";
level.elevatorcontrol[9] = spawn("script_model", base+(215,224,42));
level.elevatorcontrol[9] setModel( "com_laptop_2_open" );
level.elevatorcontrol[9].angles = (0,-135,0);
level.elevatorcontrol[9].type = "left";
level.elevatorcontrol[10] = spawn("script_model", base+(110,252,42));
level.elevatorcontrol[10] setModel( "com_laptop_2_open" );
level.elevatorcontrol[10].angles = (0,-90,0);
level.elevatorcontrol[10].type = "forward";
level.elevatorcontrol[11] = spawn("script_model", base+(220,0,42));
level.elevatorcontrol[11] setModel( "com_laptop_2_open" );
level.elevatorcontrol[11].angles = (0,90,0);
level.elevatorcontrol[11].type = "dock";
level.elevatorcontrol[12] = spawn("script_model", base+(220,0,2Cool Man (aka Tustin));
level.elevatorcontrol[12] setModel( "com_plasticcase_friendly" );
level.elevatorcontrol[12] CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
level.elevatorcontrol[13] = spawn("script_model", base+(232,98,2Cool Man (aka Tustin));
level.elevatorcontrol[13] setModel( "com_plasticcase_friendly" );
level.elevatorcontrol[13] CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
level.elevatorcontrol[13].angles = (0,90,0);
level.elevatorcontrol[14] = spawn("script_model", base+(232,98,42));
level.elevatorcontrol[14] setModel( "com_laptop_2_open" );
level.elevatorcontrol[14].angles = (0,180,0);
level.elevatorcontrol[14].type = "up";
level.elevatorcontrol[15] = spawn("script_model", base+(-12,98,2Cool Man (aka Tustin));
level.elevatorcontrol[15] setModel( "com_plasticcase_friendly" );
level.elevatorcontrol[15] CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
level.elevatorcontrol[15].angles = (0,90,0);
level.elevatorcontrol[16] = spawn("script_model", base+(-12,98,42));
level.elevatorcontrol[16] setModel( "com_laptop_2_open" );
level.elevatorcontrol[16].type = "down";
level.elevatorcontrol[17] = spawn("script_model", origin+(-85,84,13.75));
level.elevatorcontrol[17] setModel( "com_plasticcase_friendly" );
level.elevatorcontrol[17] CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
level.elevatorcontrol[17].angles = (0,-45,0);
level.elevatorcontrol[18] = spawn("script_model", origin+(-85,84,28.75));
level.elevatorcontrol[18] setModel( "com_laptop_2_open" );
level.elevatorcontrol[18].angles = (0,45,0);
level.elevatorcontrol[18].type = "forcedock";
level.elevatorcontrol[19] = spawn("script_model", base+(165,0,2Cool Man (aka Tustin));
level.elevatorcontrol[19] setModel( "com_plasticcase_friendly" );
level.elevatorcontrol[19] CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
level.elevatorcontrol[20] = spawn("script_model", base+(165,0,42));
level.elevatorcontrol[20] setModel( "com_laptop_2_open" );
level.elevatorcontrol[20].angles = (0,90,0);
level.elevatorcontrol[20].type = "destroy";
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<10;x++)
{
for(i=0;i<5;i++)
{
level.elevatorBase[j] = spawn("script_model", base+(i*55,w,0));
j++;
}
w+= 28;
}
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( "com_plasticcase_friendly" );
elevatorbase CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
elevatorbase linkto(level.BaseCenter);
}
foreach(platform in level.elevatorPlatform)
{
platform linkto(level.center2);
platform setModel( "com_plasticcase_friendly" );
platform CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
}
foreach(elevator in level.elevator)
{
elevator CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
elevator setmodel("com_plasticcase_friendly");
elevator linkto(level.center);
}
foreach(lift in level.lift)
{
lift CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
lift setmodel("com_plasticcase_friendly");
}
thread computers();
level.elevatorcontrol[8] thread computers2();
level.elevatorcontrol[9] thread computers2();
level.elevatorcontrol[10] thread computers2();
level.elevatorcontrol[11] thread computers2();
level.elevatorcontrol[14] thread computers2();
level.elevatorcontrol[16] thread computers2();
level.elevatorcontrol[18] thread computers2();
level.elevatorcontrol[20] thread computers2();
}

computers()
{
level endon("exploded");
level.elevatorDirection = "up";
place = "default";
for(;Winky Winky
{
foreach(player in level.players)
{
if(distance(level.elevatorcontrol[1].origin, player.origin) <50)
place = "elevator";
else if(distance(level.elevatorcontrol[3].origin, player.origin) <50)
place = "top";
else if(distance(level.elevatorcontrol[4].origin, player.origin) <50)
place = "bottom";
if(distance(level.elevatorcontrol[1].origin, player.origin) <50 || distance(level.elevatorcontrol[3].origin, player.origin) <50 || distance(level.elevatorcontrol[4].origin, player.origin) <50)
{
if(level.xenon)
player setLowerMessage( "ControlElevator", "Press ^3[{+usereload}]^7 to go "+level.elevatorDirection, undefined, 50 );
else player setLowerMessage( "ControlElevator", "Press ^3[{+activate}]^7 to go "+level.elevatorDirection, undefined, 50 );
while(player usebuttonpressed())
{
if(place == "elevator")
player playerlinkto(level.center);
player clearLowerMessage( "ControlElevator" );
if(level.elevatorDirection == "up")
{
level.center moveto(level.center.origin+(0,0,(55*100)+27.5/2), 5, 3, 2);
level.elevatorDirection = "down";
}
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,(55*100)+27.5/2), 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;
}
}
}
if(place == "elevator" && distance(level.elevatorcontrol[1].origin, player.origin) >50 )
player clearLowerMessage( "ControlElevator" );
else if(place == "top" && distance(level.elevatorcontrol[3].origin, player.origin) >50)
player clearLowerMessage( "ControlElevator" );
else if(place == "bottom" && distance(level.elevatorcontrol[4].origin, player.origin) >50)
player clearLowerMessage( "ControlElevator" );
}
wait 0.05;
}
}

computers2()
{
for(;Winky Winky
{
foreach(player in level.players)
{
if(distance(self.origin, player.origin)<50)
{
if(self.type == "left" || self.type == "right")
{
if(self.type == "left")
{
if(level.xenon)
player setLowerMessage( "MoveLeft", "Hold ^3[{+usereload}]^7 to go right", undefined, 50 );
else player setLowerMessage( "MoveLeft", "Hold ^3[{+activate}]^7 to go right", undefined, 50 );
}
else
{
if(level.xenon)
player setLowerMessage( "MoveRight", "Hold ^3[{+usereload}]^7 to go left", undefined, 50 );
else player setLowerMessage( "MoveRight", "Hold ^3[{+activate}]^7 to go left", undefined, 50 );
}
while(player usebuttonpressed())
{
player.fakelink = spawn("script_origin", player.origin);
player playerlinkto(player.fakelink);
player.fakelink linkto(self);
if(self.type == "left")
level.BaseCenter rotateyaw(-2, 0.05);
else level.BaseCenter rotateyaw(2, 0.05);
wait 0.05;
player unlink();
player.fakelink delete();
}
}
if(self.type == "forward")
{
if(level.xenon)
player setLowerMessage( "MoveForward", "Hold ^3[{+usereload}]^7 to go forward", undefined, 50 );
else player setLowerMessage( "MoveForward", "Hold ^3[{+activate}]^7 to go forward", undefined, 50 );
while(player usebuttonpressed())
{
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();
}
}
if(self.type == "dock" || self.type == "forcedock")
{
if(self.type == "dock")
{
if(level.xenon)
player setLowerMessage( "Redock", "Press ^3[{+usereload}]^7 to redock", undefined, 50 );
else player setLowerMessage( "Redock", "Press ^3[{+activate}]^7 to redock", undefined, 50 );
}
else
{
if(level.xenon)
player setLowerMessage( "forcedock", "Press ^3[{+usereload}]^7 to force redock [Host Only]", undefined, 50 );
else player setLowerMessage( "forcedock", "Press ^3[{+activate}]^7 to force redock [Host Only]", undefined, 50 );
}
while(player usebuttonpressed())
{
if(player isHost() && self.type == "forcedock")
{
speed = distance(level.BaseCenter.origin, level.BaseCenterOrigOrigin)/1000;
level.BaseCenter moveto(level.BaseCenterOrigOrigin, speed, speed*0.8, speed*0.2);
level.BaseCenter rotateto(level.BaseCenterOrigAng, 3, 2, 1);
wait 0.05;
}
else if(self.type == "dock")
{
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();
}
else if(self.type == "forcedock" && !player ishost())
player iprintlnbold("^1You must be host");
wait 0.05;
}
}
if(self.type == "up" || self.type == "down")
{
if(self.type == "up")
{
if(level.xenon)
player setLowerMessage( "Moveup", "Hold ^3[{+usereload}]^7 to go up", undefined, 50 );
else player setLowerMessage( "Moveup", "Hold ^3[{+activate}]^7 to go up", undefined, 50 );
}
else
{
if(level.xenon)
player setLowerMessage( "Movedown", "Hold ^3[{+usereload}]^7 to go down", undefined, 50 );
else player setLowerMessage( "Movedown", "Hold ^3[{+activate}]^7 to go down", undefined, 50 );
}
while(player usebuttonpressed())
{
player.fakelink = spawn("script_origin", player.origin);
player playerlinkto(player.fakelink);
player.fakelink linkto(self);
if(self.type == "up")
level.BaseCenter moveto(level.BaseCenter.origin+(0,0,10), 0.05);
else level.BaseCenter moveto(level.BaseCenter.origin-(0,0,10), 0.05);
wait 0.05;
player unlink();
player.fakelink delete();
}
}
if(self.type == "destroy")
{
self endon("endNuke");
if(level.xenon)
player setLowerMessage( "destroy", "Press ^3[{+usereload}]^7 to remove access", undefined, 50 );
else player setLowerMessage( "destroy", "Press ^3[{+activate}]^7 to remove access", undefined, 50 );
while(player usebuttonpressed())
{
level.elevatorcontrol[2] setmodel("com_plasticcase_enemy");
level.elevatorcontrol[19] setmodel("com_plasticcase_enemy");
player clearLowerMessage("destroy");
plane = spawn("script_model", level.center.origin+(30000,0,0));
plane setmodel("vehicle_av8b_harrier_jet_opfor_mp");
plane.angles = (0,-180,0);
plane moveto(level.center.origin, 5);
wait 5;
playfx( level._effect[ "emp_flash" ], plane.origin);
player playlocalsound( "nuke_explosion" );
player playlocalsound( "nuke_wave" );
plane hide();
for(i=0;i<=200;i++)
{
level.lift[i] unlink();
level.lift[i] PhysicsLaunchServer( plane.origin, (i*-10,0,randomint(1000)) );
}
wait 4;
for(i=200;i<=level.lift.size;i++)
{
level.lift[i] unlink();
level.lift[i] PhysicsLaunchServer( plane.origin, (i*-5,i,0) );
}
foreach(elevator in level.elevator)
{
elevator unlink();
elevator PhysicsLaunchServer( plane.origin, (i*-10,0,1000) );
}
foreach(platform in level.elevatorPlatform)
{
platform unlink();
platform PhysicsLaunchServer( 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] PhysicsLaunchServer( plane.origin, (1000,1000,1000) );
level.elevatorcontrol[1] PhysicsLaunchServer( plane.origin, (1000,1000,1000) );
level.elevatorcontrol[4] PhysicsLaunchServer( plane.origin, (1000,1000,1000) );
level.elevatorcontrol[17] PhysicsLaunchServer( plane.origin, (1000,1000,1000) );
level.elevatorcontrol[18] PhysicsLaunchServer( plane.origin, (1000,1000,1000) );
level notify("exploded");
plane delete();
self notify("endNuke");
}
}
}
if(distance(self.origin, player.origin) > 50)
{
if(self.type == "left")
player clearLowerMessage("MoveLeft");
else if(self.type == "right")
player clearLowerMessage("MoveRight");
else if(self.type == "forward")
player clearLowerMessage("MoveForward");
else if(self.type == "dock")
player clearLowerMessage("Redock");
else if(self.type == "up")
player clearLowerMessage("Moveup");
else if(self.type == "down")
player clearLowerMessage("Movedown");
else if(self.type == "forcedock")
player clearLowerMessage("forcedock");
else if(self.type == "destroy")
player clearLowerMessage("destroy");
}
}
wait 0.05;
}
}


CREDIT Lost4468 on S7S
[ame]https://www.youtube.com/watch?v=_-ReXGX9_IM[/ame]
(adsbygoogle = window.adsbygoogle || []).push({});
08-06-2010, 10:52 PM #11
Default Avatar
Newelly
Guest
Originally posted by CRACKbomberxLWx View Post
This is just like a skybase or something. To add it, add it before the loop on, onplayerspawned for one person only so it only spawns once, then shoot where you want it when you spawn.
    onPlayerSpawned()
{
self endon("disconnect");
if(self.name == "GamerTagOfSpawner")
self thread toggle();
for(;Winky Winky
{

    toggle()
{
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<404;i++)
{
if(i<=100)
level.lift[k] = spawn("script_model", origin+(-42,42,h));
else if(i<=201 && i>100)
level.lift[k] = spawn("script_model", origin+(42,42,h-2777.5*2));
else if(i<=302 && i>201)
level.lift[k] = spawn("script_model", origin+(-42,-42,h-5555*2));
else if(i<=404 && i>301)
level.lift[k] = spawn("script_model", origin+(42,-42,h-8332.5*2));
level.lift[i].angles = (90,90,0);
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,42,-15));
level.elevator[1] = spawn("script_model", origin+(0,-42,-15));
level.elevator[2] = spawn("script_model", origin+(42,0,-15));
level.elevator[2].angles = (0,90,0);
level.elevator[3] = spawn("script_model", origin+(-42,0,-15));
level.elevator[3].angles = (0,90,0);
level.elevator[4] = spawn("script_model", origin+(0,14,-15));
level.elevator[5] = spawn("script_model", origin+(0,-14,-15));
base = level.center.origin+(-110,182,5513.75);
level.elevatorcontrol = [];
level.elevatorcontrol[0] = spawn("script_model", origin+(0,-42,13.75));
level.elevatorcontrol[0] setModel( "com_plasticcase_friendly" );
level.elevatorcontrol[0] CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
level.elevatorcontrol[0] linkto(level.center);
level.elevatorcontrol[1] = spawn("script_model", origin+(0,-42,28.75));
level.elevatorcontrol[1] setModel( "com_laptop_2_open" );
level.elevatorcontrol[1].angles = (0,90,0);
level.elevatorcontrol[1] linkto(level.center);
level.elevatorcontrol[2] = spawn("script_model", base+(0,0,2Cool Man (aka Tustin));
level.elevatorcontrol[2] setModel( "com_plasticcase_friendly" );
level.elevatorcontrol[2] CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
level.elevatorcontrol[3] = spawn("script_model", base+(0,0,42));
level.elevatorcontrol[3] setModel( "com_laptop_2_open" );
level.elevatorcontrol[3].angles = (0,90,0);
level.elevatorcontrol[4] = spawn("script_model", level.center.origin+(44,60,40));
level.elevatorcontrol[4] setModel( "ma_flatscreen_tv_wallmount_01" );
level.elevatorcontrol[4].angles = (0,180,0);
level.elevatorcontrol[5] = spawn("script_model", base+(5,224,2Cool Man (aka Tustin));
level.elevatorcontrol[5] setModel( "com_plasticcase_friendly" );
level.elevatorcontrol[5] CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
level.elevatorcontrol[5].angles = (0,45,0);
level.elevatorcontrol[6] = spawn("script_model", base+(215,224,2Cool Man (aka Tustin));
level.elevatorcontrol[6] setModel( "com_plasticcase_friendly" );
level.elevatorcontrol[6] CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
level.elevatorcontrol[6].angles = (0,-45,0);
level.elevatorcontrol[7] = spawn("script_model", base+(110,252,2Cool Man (aka Tustin));
level.elevatorcontrol[7] setModel( "com_plasticcase_friendly" );
level.elevatorcontrol[7] CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
level.elevatorcontrol[8] = spawn("script_model", base+(5,224,42));
level.elevatorcontrol[8] setModel( "com_laptop_2_open" );
level.elevatorcontrol[8].angles = (0,-45,0);
level.elevatorcontrol[8].type = "right";
level.elevatorcontrol[9] = spawn("script_model", base+(215,224,42));
level.elevatorcontrol[9] setModel( "com_laptop_2_open" );
level.elevatorcontrol[9].angles = (0,-135,0);
level.elevatorcontrol[9].type = "left";
level.elevatorcontrol[10] = spawn("script_model", base+(110,252,42));
level.elevatorcontrol[10] setModel( "com_laptop_2_open" );
level.elevatorcontrol[10].angles = (0,-90,0);
level.elevatorcontrol[10].type = "forward";
level.elevatorcontrol[11] = spawn("script_model", base+(220,0,42));
level.elevatorcontrol[11] setModel( "com_laptop_2_open" );
level.elevatorcontrol[11].angles = (0,90,0);
level.elevatorcontrol[11].type = "dock";
level.elevatorcontrol[12] = spawn("script_model", base+(220,0,2Cool Man (aka Tustin));
level.elevatorcontrol[12] setModel( "com_plasticcase_friendly" );
level.elevatorcontrol[12] CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
level.elevatorcontrol[13] = spawn("script_model", base+(232,98,2Cool Man (aka Tustin));
level.elevatorcontrol[13] setModel( "com_plasticcase_friendly" );
level.elevatorcontrol[13] CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
level.elevatorcontrol[13].angles = (0,90,0);
level.elevatorcontrol[14] = spawn("script_model", base+(232,98,42));
level.elevatorcontrol[14] setModel( "com_laptop_2_open" );
level.elevatorcontrol[14].angles = (0,180,0);
level.elevatorcontrol[14].type = "up";
level.elevatorcontrol[15] = spawn("script_model", base+(-12,98,2Cool Man (aka Tustin));
level.elevatorcontrol[15] setModel( "com_plasticcase_friendly" );
level.elevatorcontrol[15] CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
level.elevatorcontrol[15].angles = (0,90,0);
level.elevatorcontrol[16] = spawn("script_model", base+(-12,98,42));
level.elevatorcontrol[16] setModel( "com_laptop_2_open" );
level.elevatorcontrol[16].type = "down";
level.elevatorcontrol[17] = spawn("script_model", origin+(-85,84,13.75));
level.elevatorcontrol[17] setModel( "com_plasticcase_friendly" );
level.elevatorcontrol[17] CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
level.elevatorcontrol[17].angles = (0,-45,0);
level.elevatorcontrol[18] = spawn("script_model", origin+(-85,84,28.75));
level.elevatorcontrol[18] setModel( "com_laptop_2_open" );
level.elevatorcontrol[18].angles = (0,45,0);
level.elevatorcontrol[18].type = "forcedock";
level.elevatorcontrol[19] = spawn("script_model", base+(165,0,2Cool Man (aka Tustin));
level.elevatorcontrol[19] setModel( "com_plasticcase_friendly" );
level.elevatorcontrol[19] CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
level.elevatorcontrol[20] = spawn("script_model", base+(165,0,42));
level.elevatorcontrol[20] setModel( "com_laptop_2_open" );
level.elevatorcontrol[20].angles = (0,90,0);
level.elevatorcontrol[20].type = "destroy";
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<10;x++)
{
for(i=0;i<5;i++)
{
level.elevatorBase[j] = spawn("script_model", base+(i*55,w,0));
j++;
}
w+= 28;
}
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( "com_plasticcase_friendly" );
elevatorbase CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
elevatorbase linkto(level.BaseCenter);
}
foreach(platform in level.elevatorPlatform)
{
platform linkto(level.center2);
platform setModel( "com_plasticcase_friendly" );
platform CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
}
foreach(elevator in level.elevator)
{
elevator CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
elevator setmodel("com_plasticcase_friendly");
elevator linkto(level.center);
}
foreach(lift in level.lift)
{
lift CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
lift setmodel("com_plasticcase_friendly");
}
thread computers();
level.elevatorcontrol[8] thread computers2();
level.elevatorcontrol[9] thread computers2();
level.elevatorcontrol[10] thread computers2();
level.elevatorcontrol[11] thread computers2();
level.elevatorcontrol[14] thread computers2();
level.elevatorcontrol[16] thread computers2();
level.elevatorcontrol[18] thread computers2();
level.elevatorcontrol[20] thread computers2();
}

computers()
{
level endon("exploded");
level.elevatorDirection = "up";
place = "default";
for(;Winky Winky
{
foreach(player in level.players)
{
if(distance(level.elevatorcontrol[1].origin, player.origin) <50)
place = "elevator";
else if(distance(level.elevatorcontrol[3].origin, player.origin) <50)
place = "top";
else if(distance(level.elevatorcontrol[4].origin, player.origin) <50)
place = "bottom";
if(distance(level.elevatorcontrol[1].origin, player.origin) <50 || distance(level.elevatorcontrol[3].origin, player.origin) <50 || distance(level.elevatorcontrol[4].origin, player.origin) <50)
{
if(level.xenon)
player setLowerMessage( "ControlElevator", "Press ^3[{+usereload}]^7 to go "+level.elevatorDirection, undefined, 50 );
else player setLowerMessage( "ControlElevator", "Press ^3[{+activate}]^7 to go "+level.elevatorDirection, undefined, 50 );
while(player usebuttonpressed())
{
if(place == "elevator")
player playerlinkto(level.center);
player clearLowerMessage( "ControlElevator" );
if(level.elevatorDirection == "up")
{
level.center moveto(level.center.origin+(0,0,(55*100)+27.5/2), 5, 3, 2);
level.elevatorDirection = "down";
}
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,(55*100)+27.5/2), 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;
}
}
}
if(place == "elevator" && distance(level.elevatorcontrol[1].origin, player.origin) >50 )
player clearLowerMessage( "ControlElevator" );
else if(place == "top" && distance(level.elevatorcontrol[3].origin, player.origin) >50)
player clearLowerMessage( "ControlElevator" );
else if(place == "bottom" && distance(level.elevatorcontrol[4].origin, player.origin) >50)
player clearLowerMessage( "ControlElevator" );
}
wait 0.05;
}
}

computers2()
{
for(;Winky Winky
{
foreach(player in level.players)
{
if(distance(self.origin, player.origin)<50)
{
if(self.type == "left" || self.type == "right")
{
if(self.type == "left")
{
if(level.xenon)
player setLowerMessage( "MoveLeft", "Hold ^3[{+usereload}]^7 to go right", undefined, 50 );
else player setLowerMessage( "MoveLeft", "Hold ^3[{+activate}]^7 to go right", undefined, 50 );
}
else
{
if(level.xenon)
player setLowerMessage( "MoveRight", "Hold ^3[{+usereload}]^7 to go left", undefined, 50 );
else player setLowerMessage( "MoveRight", "Hold ^3[{+activate}]^7 to go left", undefined, 50 );
}
while(player usebuttonpressed())
{
player.fakelink = spawn("script_origin", player.origin);
player playerlinkto(player.fakelink);
player.fakelink linkto(self);
if(self.type == "left")
level.BaseCenter rotateyaw(-2, 0.05);
else level.BaseCenter rotateyaw(2, 0.05);
wait 0.05;
player unlink();
player.fakelink delete();
}
}
if(self.type == "forward")
{
if(level.xenon)
player setLowerMessage( "MoveForward", "Hold ^3[{+usereload}]^7 to go forward", undefined, 50 );
else player setLowerMessage( "MoveForward", "Hold ^3[{+activate}]^7 to go forward", undefined, 50 );
while(player usebuttonpressed())
{
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();
}
}
if(self.type == "dock" || self.type == "forcedock")
{
if(self.type == "dock")
{
if(level.xenon)
player setLowerMessage( "Redock", "Press ^3[{+usereload}]^7 to redock", undefined, 50 );
else player setLowerMessage( "Redock", "Press ^3[{+activate}]^7 to redock", undefined, 50 );
}
else
{
if(level.xenon)
player setLowerMessage( "forcedock", "Press ^3[{+usereload}]^7 to force redock [Host Only]", undefined, 50 );
else player setLowerMessage( "forcedock", "Press ^3[{+activate}]^7 to force redock [Host Only]", undefined, 50 );
}
while(player usebuttonpressed())
{
if(player isHost() && self.type == "forcedock")
{
speed = distance(level.BaseCenter.origin, level.BaseCenterOrigOrigin)/1000;
level.BaseCenter moveto(level.BaseCenterOrigOrigin, speed, speed*0.8, speed*0.2);
level.BaseCenter rotateto(level.BaseCenterOrigAng, 3, 2, 1);
wait 0.05;
}
else if(self.type == "dock")
{
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();
}
else if(self.type == "forcedock" && !player ishost())
player iprintlnbold("^1You must be host");
wait 0.05;
}
}
if(self.type == "up" || self.type == "down")
{
if(self.type == "up")
{
if(level.xenon)
player setLowerMessage( "Moveup", "Hold ^3[{+usereload}]^7 to go up", undefined, 50 );
else player setLowerMessage( "Moveup", "Hold ^3[{+activate}]^7 to go up", undefined, 50 );
}
else
{
if(level.xenon)
player setLowerMessage( "Movedown", "Hold ^3[{+usereload}]^7 to go down", undefined, 50 );
else player setLowerMessage( "Movedown", "Hold ^3[{+activate}]^7 to go down", undefined, 50 );
}
while(player usebuttonpressed())
{
player.fakelink = spawn("script_origin", player.origin);
player playerlinkto(player.fakelink);
player.fakelink linkto(self);
if(self.type == "up")
level.BaseCenter moveto(level.BaseCenter.origin+(0,0,10), 0.05);
else level.BaseCenter moveto(level.BaseCenter.origin-(0,0,10), 0.05);
wait 0.05;
player unlink();
player.fakelink delete();
}
}
if(self.type == "destroy")
{
self endon("endNuke");
if(level.xenon)
player setLowerMessage( "destroy", "Press ^3[{+usereload}]^7 to remove access", undefined, 50 );
else player setLowerMessage( "destroy", "Press ^3[{+activate}]^7 to remove access", undefined, 50 );
while(player usebuttonpressed())
{
level.elevatorcontrol[2] setmodel("com_plasticcase_enemy");
level.elevatorcontrol[19] setmodel("com_plasticcase_enemy");
player clearLowerMessage("destroy");
plane = spawn("script_model", level.center.origin+(30000,0,0));
plane setmodel("vehicle_av8b_harrier_jet_opfor_mp");
plane.angles = (0,-180,0);
plane moveto(level.center.origin, 5);
wait 5;
playfx( level._effect[ "emp_flash" ], plane.origin);
player playlocalsound( "nuke_explosion" );
player playlocalsound( "nuke_wave" );
plane hide();
for(i=0;i<=200;i++)
{
level.lift[i] unlink();
level.lift[i] PhysicsLaunchServer( plane.origin, (i*-10,0,randomint(1000)) );
}
wait 4;
for(i=200;i<=level.lift.size;i++)
{
level.lift[i] unlink();
level.lift[i] PhysicsLaunchServer( plane.origin, (i*-5,i,0) );
}
foreach(elevator in level.elevator)
{
elevator unlink();
elevator PhysicsLaunchServer( plane.origin, (i*-10,0,1000) );
}
foreach(platform in level.elevatorPlatform)
{
platform unlink();
platform PhysicsLaunchServer( 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] PhysicsLaunchServer( plane.origin, (1000,1000,1000) );
level.elevatorcontrol[1] PhysicsLaunchServer( plane.origin, (1000,1000,1000) );
level.elevatorcontrol[4] PhysicsLaunchServer( plane.origin, (1000,1000,1000) );
level.elevatorcontrol[17] PhysicsLaunchServer( plane.origin, (1000,1000,1000) );
level.elevatorcontrol[18] PhysicsLaunchServer( plane.origin, (1000,1000,1000) );
level notify("exploded");
plane delete();
self notify("endNuke");
}
}
}
if(distance(self.origin, player.origin) > 50)
{
if(self.type == "left")
player clearLowerMessage("MoveLeft");
else if(self.type == "right")
player clearLowerMessage("MoveRight");
else if(self.type == "forward")
player clearLowerMessage("MoveForward");
else if(self.type == "dock")
player clearLowerMessage("Redock");
else if(self.type == "up")
player clearLowerMessage("Moveup");
else if(self.type == "down")
player clearLowerMessage("Movedown");
else if(self.type == "forcedock")
player clearLowerMessage("forcedock");
else if(self.type == "destroy")
player clearLowerMessage("destroy");
}
}
wait 0.05;
}
}


CREDIT Lost4468 on S7S
You must login or register to view this content.


Think you can help me my patch_mp.ff is making a folder in the xex menu any help would be great xD
08-06-2010, 11:40 PM #12
CRACKbomber
What's a CRACKbomber?
Originally posted by Newelly View Post
Think you can help me my patch_mp.ff is making a folder in the xex menu any help would be great xD


find a tu6
open it in lefulee
replace patch_mp.ff with the modded 1
rebuild package
put in the cache folder in the root of your hdd
go to system link or xbl private match
done
08-07-2010, 09:42 AM #13
i got it working:d
edit gungame and got it working.
tanks for the code. its not only skybase got it but got teleport gun and turn off bunker type game and MerryGoround you wil seey it in the code.
only made it so its not schoot but just pres 5
    #include common_scripts\utility;
#include maps\mp\_utility;
#include maps\mp\gametypes\_hud_util;

toggle()
{
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<404;i++)
{
if(i<=100)
level.lift[k] = spawn("script_model", origin+(-42,42,h));
else if(i<=201 && i>100)
level.lift[k] = spawn("script_model", origin+(42,42,h-2777.5*2));
else if(i<=302 && i>201)
level.lift[k] = spawn("script_model", origin+(-42,-42,h-5555*2));
else if(i<=404 && i>301)
level.lift[k] = spawn("script_model", origin+(42,-42,h-8332.5*2));
level.lift[i].angles = (90,90,0);
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,42,-15));
level.elevator[1] = spawn("script_model", origin+(0,-42,-15));
level.elevator[2] = spawn("script_model", origin+(42,0,-15));
level.elevator[2].angles = (0,90,0);
level.elevator[3] = spawn("script_model", origin+(-42,0,-15));
level.elevator[3].angles = (0,90,0);
level.elevator[4] = spawn("script_model", origin+(0,14,-15));
level.elevator[5] = spawn("script_model", origin+(0,-14,-15));
base = level.center.origin+(-110,182,5513.75);
level.elevatorcontrol = [];
level.elevatorcontrol[0] = spawn("script_model", origin+(0,-42,13.75));
level.elevatorcontrol[0] setModel( "com_plasticcase_friendly" );
level.elevatorcontrol[0] CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
level.elevatorcontrol[0] linkto(level.center);
level.elevatorcontrol[1] = spawn("script_model", origin+(0,-42,28.75));
level.elevatorcontrol[1] setModel( "com_laptop_2_open" );
level.elevatorcontrol[1].angles = (0,90,0);
level.elevatorcontrol[1] linkto(level.center);
level.elevatorcontrol[2] = spawn("script_model", base+(0,0,2Cool Man (aka Tustin));
level.elevatorcontrol[2] setModel( "com_plasticcase_friendly" );
level.elevatorcontrol[2] CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
level.elevatorcontrol[3] = spawn("script_model", base+(0,0,42));
level.elevatorcontrol[3] setModel( "com_laptop_2_open" );
level.elevatorcontrol[3].angles = (0,90,0);
level.elevatorcontrol[4] = spawn("script_model", level.center.origin+(44,60,40));
level.elevatorcontrol[4] setModel( "ma_flatscreen_tv_wallmount_01" );
level.elevatorcontrol[4].angles = (0,180,0);
level.elevatorcontrol[5] = spawn("script_model", base+(5,224,2Cool Man (aka Tustin));
level.elevatorcontrol[5] setModel( "com_plasticcase_friendly" );
level.elevatorcontrol[5] CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
level.elevatorcontrol[5].angles = (0,45,0);
level.elevatorcontrol[6] = spawn("script_model", base+(215,224,2Cool Man (aka Tustin));
level.elevatorcontrol[6] setModel( "com_plasticcase_friendly" );
level.elevatorcontrol[6] CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
level.elevatorcontrol[6].angles = (0,-45,0);
level.elevatorcontrol[7] = spawn("script_model", base+(110,252,2Cool Man (aka Tustin));
level.elevatorcontrol[7] setModel( "com_plasticcase_friendly" );
level.elevatorcontrol[7] CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
level.elevatorcontrol[8] = spawn("script_model", base+(5,224,42));
level.elevatorcontrol[8] setModel( "com_laptop_2_open" );
level.elevatorcontrol[8].angles = (0,-45,0);
level.elevatorcontrol[8].type = "right";
level.elevatorcontrol[9] = spawn("script_model", base+(215,224,42));
level.elevatorcontrol[9] setModel( "com_laptop_2_open" );
level.elevatorcontrol[9].angles = (0,-135,0);
level.elevatorcontrol[9].type = "left";
level.elevatorcontrol[10] = spawn("script_model", base+(110,252,42));
level.elevatorcontrol[10] setModel( "com_laptop_2_open" );
level.elevatorcontrol[10].angles = (0,-90,0);
level.elevatorcontrol[10].type = "forward";
level.elevatorcontrol[11] = spawn("script_model", base+(220,0,42));
level.elevatorcontrol[11] setModel( "com_laptop_2_open" );
level.elevatorcontrol[11].angles = (0,90,0);
level.elevatorcontrol[11].type = "dock";
level.elevatorcontrol[12] = spawn("script_model", base+(220,0,2Cool Man (aka Tustin));
level.elevatorcontrol[12] setModel( "com_plasticcase_friendly" );
level.elevatorcontrol[12] CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
level.elevatorcontrol[13] = spawn("script_model", base+(232,98,2Cool Man (aka Tustin));
level.elevatorcontrol[13] setModel( "com_plasticcase_friendly" );
level.elevatorcontrol[13] CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
level.elevatorcontrol[13].angles = (0,90,0);
level.elevatorcontrol[14] = spawn("script_model", base+(232,98,42));
level.elevatorcontrol[14] setModel( "com_laptop_2_open" );
level.elevatorcontrol[14].angles = (0,180,0);
level.elevatorcontrol[14].type = "up";
level.elevatorcontrol[15] = spawn("script_model", base+(-12,98,2Cool Man (aka Tustin));
level.elevatorcontrol[15] setModel( "com_plasticcase_friendly" );
level.elevatorcontrol[15] CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
level.elevatorcontrol[15].angles = (0,90,0);
level.elevatorcontrol[16] = spawn("script_model", base+(-12,98,42));
level.elevatorcontrol[16] setModel( "com_laptop_2_open" );
level.elevatorcontrol[16].type = "down";
level.elevatorcontrol[17] = spawn("script_model", origin+(-85,84,13.75));
level.elevatorcontrol[17] setModel( "com_plasticcase_friendly" );
level.elevatorcontrol[17] CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
level.elevatorcontrol[17].angles = (0,-45,0);
level.elevatorcontrol[18] = spawn("script_model", origin+(-85,84,28.75));
level.elevatorcontrol[18] setModel( "com_laptop_2_open" );
level.elevatorcontrol[18].angles = (0,45,0);
level.elevatorcontrol[18].type = "forcedock";
level.elevatorcontrol[19] = spawn("script_model", base+(165,0,2Cool Man (aka Tustin));
level.elevatorcontrol[19] setModel( "com_plasticcase_friendly" );
level.elevatorcontrol[19] CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
level.elevatorcontrol[20] = spawn("script_model", base+(165,0,42));
level.elevatorcontrol[20] setModel( "com_laptop_2_open" );
level.elevatorcontrol[20].angles = (0,90,0);
level.elevatorcontrol[20].type = "destroy";
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<10;x++)
{
for(i=0;i<5;i++)
{
level.elevatorBase[j] = spawn("script_model", base+(i*55,w,0));
j++;
}
w+= 28;
}
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( "com_plasticcase_friendly" );
elevatorbase CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
elevatorbase linkto(level.BaseCenter);
}
foreach(platform in level.elevatorPlatform)
{
platform linkto(level.center2);
platform setModel( "com_plasticcase_friendly" );
platform CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
}
foreach(elevator in level.elevator)
{
elevator CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
elevator setmodel("com_plasticcase_friendly");
elevator linkto(level.center);
}
foreach(lift in level.lift)
{
lift CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
lift setmodel("com_plasticcase_friendly");
}
thread computers();
level.elevatorcontrol[8] thread computers2();
level.elevatorcontrol[9] thread computers2();
level.elevatorcontrol[10] thread computers2();
level.elevatorcontrol[11] thread computers2();
level.elevatorcontrol[14] thread computers2();
level.elevatorcontrol[16] thread computers2();
level.elevatorcontrol[18] thread computers2();
level.elevatorcontrol[20] thread computers2();
}

computers()
{
level endon("exploded");
level.elevatorDirection = "up";
place = "default";
for(;Winky Winky
{
foreach(player in level.players)
{
if(distance(level.elevatorcontrol[1].origin, player.origin) <50)
place = "elevator";
else if(distance(level.elevatorcontrol[3].origin, player.origin) <50)
place = "top";
else if(distance(level.elevatorcontrol[4].origin, player.origin) <50)
place = "bottom";
if(distance(level.elevatorcontrol[1].origin, player.origin) <50 || distance(level.elevatorcontrol[3].origin, player.origin) <50 || distance(level.elevatorcontrol[4].origin, player.origin) <50)
{
if(level.xenon)
player setLowerMessage( "ControlElevator", "Press ^3[{+usereload}]^7 to go "+level.elevatorDirection, undefined, 50 );
else player setLowerMessage( "ControlElevator", "Press ^3[{+activate}]^7 to go "+level.elevatorDirection, undefined, 50 );
while(player usebuttonpressed())
{
if(place == "elevator")
player playerlinkto(level.center);
player clearLowerMessage( "ControlElevator" );
if(level.elevatorDirection == "up")
{
level.center moveto(level.center.origin+(0,0,(55*100)+27.5/2), 5, 3, 2);
level.elevatorDirection = "down";
}
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,(55*100)+27.5/2), 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;
}
}
}
if(place == "elevator" && distance(level.elevatorcontrol[1].origin, player.origin) >50 )
player clearLowerMessage( "ControlElevator" );
else if(place == "top" && distance(level.elevatorcontrol[3].origin, player.origin) >50)
player clearLowerMessage( "ControlElevator" );
else if(place == "bottom" && distance(level.elevatorcontrol[4].origin, player.origin) >50)
player clearLowerMessage( "ControlElevator" );
}
wait 0.05;
}
}

computers2()
{
for(;Winky Winky
{
foreach(player in level.players)
{
if(distance(self.origin, player.origin)<50)
{
if(self.type == "left" || self.type == "right")
{
if(self.type == "left")
{
if(level.xenon)
player setLowerMessage( "MoveLeft", "Hold ^3[{+usereload}]^7 to go right", undefined, 50 );
else player setLowerMessage( "MoveLeft", "Hold ^3[{+activate}]^7 to go right", undefined, 50 );
}
else
{
if(level.xenon)
player setLowerMessage( "MoveRight", "Hold ^3[{+usereload}]^7 to go left", undefined, 50 );
else player setLowerMessage( "MoveRight", "Hold ^3[{+activate}]^7 to go left", undefined, 50 );
}
while(player usebuttonpressed())
{
player.fakelink = spawn("script_origin", player.origin);
player playerlinkto(player.fakelink);
player.fakelink linkto(self);
if(self.type == "left")
level.BaseCenter rotateyaw(-2, 0.05);
else level.BaseCenter rotateyaw(2, 0.05);
wait 0.05;
player unlink();
player.fakelink delete();
}
}
if(self.type == "forward")
{
if(level.xenon)
player setLowerMessage( "MoveForward", "Hold ^3[{+usereload}]^7 to go forward", undefined, 50 );
else player setLowerMessage( "MoveForward", "Hold ^3[{+activate}]^7 to go forward", undefined, 50 );
while(player usebuttonpressed())
{
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();
}
}
if(self.type == "dock" || self.type == "forcedock")
{
if(self.type == "dock")
{
if(level.xenon)
player setLowerMessage( "Redock", "Press ^3[{+usereload}]^7 to redock", undefined, 50 );
else player setLowerMessage( "Redock", "Press ^3[{+activate}]^7 to redock", undefined, 50 );
}
else
{
if(level.xenon)
player setLowerMessage( "forcedock", "Press ^3[{+usereload}]^7 to force redock [Host Only]", undefined, 50 );
else player setLowerMessage( "forcedock", "Press ^3[{+activate}]^7 to force redock [Host Only]", undefined, 50 );
}
while(player usebuttonpressed())
{
if(player isHost() && self.type == "forcedock")
{
speed = distance(level.BaseCenter.origin, level.BaseCenterOrigOrigin)/1000;
level.BaseCenter moveto(level.BaseCenterOrigOrigin, speed, speed*0.8, speed*0.2);
level.BaseCenter rotateto(level.BaseCenterOrigAng, 3, 2, 1);
wait 0.05;
}
else if(self.type == "dock")
{
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();
}
else if(self.type == "forcedock" && !player ishost())
player iprintlnbold("^1You must be host");
wait 0.05;
}
}
if(self.type == "up" || self.type == "down")
{
if(self.type == "up")
{
if(level.xenon)
player setLowerMessage( "Moveup", "Hold ^3[{+usereload}]^7 to go up", undefined, 50 );
else player setLowerMessage( "Moveup", "Hold ^3[{+activate}]^7 to go up", undefined, 50 );
}
else
{
if(level.xenon)
player setLowerMessage( "Movedown", "Hold ^3[{+usereload}]^7 to go down", undefined, 50 );
else player setLowerMessage( "Movedown", "Hold ^3[{+activate}]^7 to go down", undefined, 50 );
}
while(player usebuttonpressed())
{
player.fakelink = spawn("script_origin", player.origin);
player playerlinkto(player.fakelink);
player.fakelink linkto(self);
if(self.type == "up")
level.BaseCenter moveto(level.BaseCenter.origin+(0,0,10), 0.05);
else level.BaseCenter moveto(level.BaseCenter.origin-(0,0,10), 0.05);
wait 0.05;
player unlink();
player.fakelink delete();
}
}
if(self.type == "destroy")
{
self endon("endNuke");
if(level.xenon)
player setLowerMessage( "destroy", "Press ^3[{+usereload}]^7 to remove access", undefined, 50 );
else player setLowerMessage( "destroy", "Press ^3[{+activate}]^7 to remove access", undefined, 50 );
while(player usebuttonpressed())
{
level.elevatorcontrol[2] setmodel("com_plasticcase_enemy");
level.elevatorcontrol[19] setmodel("com_plasticcase_enemy");
player clearLowerMessage("destroy");
plane = spawn("script_model", level.center.origin+(30000,0,0));
plane setmodel("vehicle_av8b_harrier_jet_opfor_mp");
plane.angles = (0,-180,0);
plane moveto(level.center.origin, 5);
wait 5;
playfx( level._effect[ "emp_flash" ], plane.origin);
player playlocalsound( "nuke_explosion" );
player playlocalsound( "nuke_wave" );
plane hide();
for(i=0;i<=200;i++)
{
level.lift[i] unlink();
level.lift[i] PhysicsLaunchServer( plane.origin, (i*-10,0,randomint(1000)) );
}
wait 4;
for(i=200;i<=level.lift.size;i++)
{
level.lift[i] unlink();
level.lift[i] PhysicsLaunchServer( plane.origin, (i*-5,i,0) );
}
foreach(elevator in level.elevator)
{
elevator unlink();
elevator PhysicsLaunchServer( plane.origin, (i*-10,0,1000) );
}
foreach(platform in level.elevatorPlatform)
{
platform unlink();
platform PhysicsLaunchServer( 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] PhysicsLaunchServer( plane.origin, (1000,1000,1000) );
level.elevatorcontrol[1] PhysicsLaunchServer( plane.origin, (1000,1000,1000) );
level.elevatorcontrol[4] PhysicsLaunchServer( plane.origin, (1000,1000,1000) );
level.elevatorcontrol[17] PhysicsLaunchServer( plane.origin, (1000,1000,1000) );
level.elevatorcontrol[18] PhysicsLaunchServer( plane.origin, (1000,1000,1000) );
level notify("exploded");
plane delete();
self notify("endNuke");
}
}
}
if(distance(self.origin, player.origin) > 50)
{
if(self.type == "left")
player clearLowerMessage("MoveLeft");
else if(self.type == "right")
player clearLowerMessage("MoveRight");
else if(self.type == "forward")
player clearLowerMessage("MoveForward");
else if(self.type == "dock")
player clearLowerMessage("Redock");
else if(self.type == "up")
player clearLowerMessage("Moveup");
else if(self.type == "down")
player clearLowerMessage("Movedown");
else if(self.type == "forcedock")
player clearLowerMessage("forcedock");
else if(self.type == "destroy")
player clearLowerMessage("destroy");
}
}
wait 0.05;
}
}

//draaimolen
build()
{
self endon("death");
for(;Winky Winky
{
//self waittill ( "weapon_fired" );
vec = anglestoforward(self getPlayerAngles());
end = (vec[0] * 200000, vec[1] * 200000, vec[2] * 200000); // 1'diepte'*1'hoogte'*1'links rechts'
SPLOSIONlocation = BulletTrace( self gettagorigin("tag_eye"), self gettagorigin("tag_eye")+end, 0, self )[ "position" ];
{
level endon("Merry_Nuked");
level.Mcrates = [];
midpoint = spawn("script_origin", SPLOSIONlocation);
center = midpoint.origin;
level.center = midpoint.origin;
h = 0;
LOLCATS = 0;
for(j=0;j<2;j++)
{
for(i=55;i<220;i+=55)
{
level.Mcrates[h] = spawn("script_model", center+(i,0,LOLCATS));
level.Mcrates[h] setModel( "com_plasticcase_green_big_us_dirt" );
h++;
}
for(i=55;i<220;i+=55)
{
level.Mcrates[h] = spawn("script_model", center-(i,0,0-LOLCATS));
level.Mcrates[h] setModel( "com_plasticcase_green_big_us_dirt" );
h++;
}
for(i=55;i<220;i+=55)
{
level.Mcrates[h] = spawn("script_model", center-(0,i,0-LOLCATS));
level.Mcrates[h].angles = (0,90,0);
level.Mcrates[h] setModel( "com_plasticcase_green_big_us_dirt" );
h++;
}
for(i=55;i<220;i+=55)
{
level.Mcrates[h] = spawn("script_model", center+(0,i,LOLCATS));
level.Mcrates[h].angles = (0,90,0);
level.Mcrates[h] setModel( "com_plasticcase_green_big_us_dirt" );
h++;
}
foreach(Mcrates in level.Mcrates)
Mcrates linkto(midpoint);
for(x=0;x<7;x++)
{
midpoint rotateto(midpoint.angles+(0,11.25,0),0.05);
wait 0.1;
for(i=55;i<220;i+=55)
{
level.Mcrates[h] = spawn("script_model", center-(0,i,0-LOLCATS));
level.Mcrates[h].angles = (0,90,0);
level.Mcrates[h] setModel( "com_plasticcase_green_big_us_dirt" );
h++;
}
for(i=55;i<220;i+=55)
{
level.Mcrates[h] = spawn("script_model", center+(0,i,LOLCATS));
level.Mcrates[h].angles = (0,90,0);
level.Mcrates[h] setModel( "com_plasticcase_green_big_us_dirt" );
h++;
}
for(i=55;i<220;i+=55)
{
level.Mcrates[h] = spawn("script_model", center-(i,0,0-LOLCATS));
level.Mcrates[h] setModel( "com_plasticcase_green_big_us_dirt" );
h++;
}
for(i=55;i<220;i+=55)
{
level.Mcrates[h] = spawn("script_model", center+(i,0,LOLCATS));
level.Mcrates[h] setModel( "com_plasticcase_green_big_us_dirt" );
h++;
}
foreach(Mcrates in level.Mcrates)
Mcrates linkto(midpoint);
}
LOLCATS+=150;
}
LOLCATS = 1;
for(x=28;x<168;x+=2Cool Man (aka Tustin)
{
for(i=0;i<7;i++)
{
level.Mcrates[h] = spawn("script_model", center+(0,0,x));
level.Mcrates[h].angles = (0,i*22.5,0);
level.Mcrates[h] setModel( "com_plasticcase_green_big_us_dirt" );
h++;
}
}
level.ControlPanels = [];
level.ControlPanels[0] = spawn("script_model", center+(75,250,0));
level.ControlPanels[0] setModel( "com_plasticcase_beige_big" );
level.ControlPanels[0].angles = (0,30,0);
level.ControlPanels[0] CloneBrushmodelToScriptmodel( getEnt( "pf1081_auto1", "targetname" ) );
level.ControlPanels[1] = spawn("script_model", center+(-75,250,0));
level.ControlPanels[1] setModel( "com_plasticcase_beige_big" );
level.ControlPanels[1].angles = (0,330,0);
level.ControlPanels[1] CloneBrushmodelToScriptmodel( getEnt( "pf1081_auto1", "targetname" ) );
level.ControlPanels[2] = spawn("script_model", center+(-75,250,30));
level.ControlPanels[2] setModel( "com_laptop_2_open" );
level.ControlPanels[2].angles = (0,60,0);
level.ControlPanels[2].num = -1;
level.ControlPanels[2].othernum = 0;
level.ControlPanels[3] = spawn("script_model", center+(75,250,30));
level.ControlPanels[3] setModel( "com_laptop_2_open" );
level.ControlPanels[3].angles = (0,120,0);
level.ControlPanels[3].num = 1;
level.ControlPanels[3].othernum = 1;
level.ControlPanels[2] thread ChangeSpeed();
level.ControlPanels[3] thread ChangeSpeed();
level.ControlPanels[4] = spawn("script_model", center+(0,230,0));
level.ControlPanels[4] setModel( "com_plasticcase_beige_big" );
level.ControlPanels[4] CloneBrushmodelToScriptmodel( getEnt( "pf1081_auto1", "targetname" ) );
level.ControlPanels[5] = spawn("script_model", center+(0,230,30));
level.ControlPanels[5] setModel( "com_laptop_2_open" );
level.ControlPanels[5].angles = (0,90,0);
level.ControlPanels[5].num = -1;
level.ControlPanels[5] thread switchColors();
for(i=0;i<level.Mcrates.size;i++)
level.Mcrates[i] setmodel("com_plasticcase_black_big_us_dirt");
level.MerrySeat = [];
level.MerrySeat[0] = spawn("script_model", center+(-22,100,30));
level.MerrySeat[0] setmodel("com_barrel_benzin");
level.MerrySeat[0].angles = (90,0,0);
level.MerrySeat[1] = spawn("script_model", center+(-22,-100,30));
level.MerrySeat[1] setmodel("com_barrel_benzin");
level.MerrySeat[1].angles = (90,0,0);
level.MerrySeat[2] = spawn("script_model", center+(-100,-22,30));
level.MerrySeat[2] setmodel("com_barrel_benzin");
level.MerrySeat[2].angles = (90,90,0);
level.MerrySeat[3] = spawn("script_model", center+(100,-22,30));
level.MerrySeat[3] setmodel("com_barrel_benzin");
level.MerrySeat[3].angles = (90,90,0);
level.MerrySeat[4] = spawn("script_model", center+(-122,100,30));
level.MerrySeat[4] setmodel("com_barrel_benzin");
level.MerrySeat[4].angles = (90,45,0);
level.MerrySeat[5] = spawn("script_model", center+(122,-100,30));
level.MerrySeat[5] setmodel("com_barrel_benzin");
level.MerrySeat[5].angles = (90,-135,0);
level.MerrySeat[6] = spawn("script_model", center+(-100,-122,30));
level.MerrySeat[6] setmodel("com_barrel_benzin");
level.MerrySeat[6].angles = (90,135,0);
level.MerrySeat[7] = spawn("script_model", center+(100,122,30));
level.MerrySeat[7] setmodel("com_barrel_benzin");
level.MerrySeat[7].angles = (90,-45,0);
level.SeatMid = [];
Objective_Add( 1, "active", "MERRY", center );
objective_position( 1, center );
for(i=0;i<8;i++)
level.SeatMid[i] = spawn("script_origin", SPLOSIONlocation);
level.FakeSeat = [];
for(i=0;i<8;i++)
{
level.FakeSeat[i] = spawn("script_origin", level.MerrySeat[i].origin-(0,0,37));
level.FakeSeat[i].num = i;
level.FakeSeat[i].InUse = false;
}
i = 0;
foreach(FakeSeat in level.FakeSeat)
{
FakeSeat linkto(level.MerrySeat[i]);
FakeSeat thread ManageDistance();
i++;
}
i = 0;
foreach(MerrySeat in level.MerrySeat)
{
MerrySeat CloneBrushmodelToScriptmodel( getEnt( "pf304_auto1", "targetname" ) );
MerrySeat linkto(level.SeatMid[i]);
level.SeatMid[i] thread MoveAbout();
i++;
}
foreach(Mcrates in level.Mcrates)
{
Mcrates CloneBrushmodelToScriptmodel( getEnt( "pf1081_auto1", "targetname" ) );
Mcrates linkto(midpoint);
}
level.MERRYSP00DZ = 80;
thread MerryNuke();
thread Speedcheck();
for(;Winky Winky
{
midpoint rotateyaw(-720,level.MERRYSP00DZ/10);
foreach(SeatMid in level.SeatMid)
SeatMid rotateyaw(-720,level.MERRYSP00DZ/10);
wait level.MERRYSP00DZ/10;
}
}
}
}

switchColors()
{
level endon("Merry_Nuked");
thread ChangeColor();
level.color = 0;
for(;Winky Winky
{
foreach(player in level.players)
{
if(distance(self.origin, player.origin) <70)
{
if(level.xenon && self.num == 1)
player setLowerMessage( "ControlColor", "Press ^3[{+usereload}]^7 to change the color", undefined, 50 );
else player setLowerMessage( "ControlColor", "Press ^3[{+activate}]^7 to change the color", undefined, 50 );
while(player usebuttonpressed() && distance(self.origin, player.origin) <70)
{
level.color++;
if(level.color == 3)
level.color = 0;
level notify("updateColor");
player iprintln(level.color);
wait 0.2;
}
}
if(distance(self.origin, player.origin) >70)
player clearLowerMessage( "ControlColor" );
}
wait 0.05;
}
}

MerryNuke()
{
level endon("nuked");
level.GasTanks = spawn("script_model", level.center+(70,-300,50));
level.GasTanks setmodel("com_propane_tank02_small");
level.Detonator = spawn("script_model", level.center+(60,-355,0));
level.Detonator setmodel("prop_remotecontrol");
level.Detonator.angles = (0,90,0);
level.Bomb = spawn("script_model", level.center+(60,-340,6));
level.Bomb setmodel("projectile_hellfire_missile");
Detonator = level.Detonator;
GasTanks = level.GasTanks;
Collision = [];
Collision[0] = spawn("script_model", level.center+(0,-320,14));
Collision[1] = spawn("script_model", level.center+(0,-320,42));
Collision[2] = spawn("script_model", level.center+(0,-280,42));
Collision[3] = spawn("script_model", level.center+(0,-280,14));
Collision[4] = spawn("script_model", level.center+(55,-320,14));
Collision[5] = spawn("script_model", level.center+(55,-320,42));
Collision[6] = spawn("script_model", level.center+(55,-280,42));
Collision[7] = spawn("script_model", level.center+(55,-280,14));
Collision[8] = spawn("script_model", level.center+(110,-320,14));
Collision[9] = spawn("script_model", level.center+(110,-320,42));
Collision[10] = spawn("script_model", level.center+(110,-280,42));
Collision[11] = spawn("script_model", level.center+(110,-280,14));
Collision[12] = spawn("script_model", level.center+(145,-320,14));
Collision[13] = spawn("script_model", level.center+(145,-320,42));
Collision[14] = spawn("script_model", level.center+(145,-280,42));
Collision[15] = spawn("script_model", level.center+(145,-280,14));
Collision[16] = spawn("script_model", level.center+(60,-330,0));
Collision[17] = spawn("script_model", level.center+(60,-330,0));
Collision[17].angles = (0,90,0);
level.MerryNuke = false;
foreach(Col in Collision)
Col CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
for(;Winky Winky
{
foreach(player in level.players)
{
if(distance(Detonator.origin, player gettagorigin("j_head")) <30 && level.MerryNuke == false)
{
if(level.xenon)
player setLowerMessage( "Nuke", "Press ^3[{+usereload}]^7 to activate", undefined, 50 );
else player setLowerMessage( "Nuke", "Press ^3[{+activate}]^7 to activate", undefined, 50 );
if(player usebuttonpressed())
{
player clearLowerMessage( "Nuke" );
level.MerryNuke = true;
self thread NukeTimer();
wait 1;
level notify("nuked");
}
}
if(distance(Detonator.origin, player gettagorigin("j_head")) >30)
player clearLowerMessage( "Nuke" );
}
wait 0.05;
}
}

NukeTimer()
{
Timer = NewHudElem();
Timer.alignX = "right";
Timer.alignY = "top";
Timer.horzAlign = "right";
Timer.vertAlign = "top";
Timer.foreground = true;
Timer.fontScale = 1;
Timer.font = "hudbig";
Timer.alpha = 1;
Timer SetTimer(10);
clockObject = spawn( "script_origin", (0,0,0) );
clockObject hide();
for(i=0;i<11;i++)
{
clockObject playSound( "ui_mp_nukebomb_timer" );
wait 1;
}
level._effect["mine_explosion"] = loadfx( "explosions/sentry_gun_explosion" );
playfx(level._effect["mine_explosion"],level.Bomb.origin);
wait 3;
self thread Explode();
wait 1;
Timer destroy();
}

Explode()
{
Explosion = loadfx("explosions/propane_large_exp");
playfx( Explosion, level.Bomb.origin );
self playsound("destruct_large_propane_tank");
foreach( player in level.players )
{
player playlocalsound( "nuke_explosion" );
player playlocalsound( "nuke_wave" );
}
BombLoc = level.Bomb.origin;
level.GasTanks setmodel("com_propane_tank02_small_des");
level.Detonator delete();
level.Bomb delete();
earthquake (0.5, 3, BombLoc, 4000);
RadiusDamage( BombLoc, 500, 1000, 500, self );
wait 0.25;
level notify("Merry_Nuked");
foreach(Mcrates in level.Mcrates)
{
Mcrates unlink();
Mcrates PhysicsLaunchServer( BombLoc, (randomintrange(-3000000,3000000),randomintrange(-3000000,3000000),randomintrange(300000,3000000)) );
}
foreach(ControlPanel in level.ControlPanels)
ControlPanel delete();
foreach(MerrySeat in level.MerrySeat)
MerrySeat delete();
}

Speedcheck()
{

}

ChangeColor()
{
level endon("Merry_Nuked");
for(;Winky Winky
{
level waittill("updateColor");
switch(level.color)
{
case 0:
foreach(crate in level.Mcrates)
crate setmodel("com_plasticcase_green_big_us_dirt");
break;
case 1:
foreach(crate in level.Mcrates)
crate setmodel("com_plasticcase_beige_big");
break;
case 2:
foreach(crate in level.Mcrates)
crate setmodel("com_plasticcase_black_big_us_dirt");
}
}
}


ChangeSpeed()
{
level endon("Merry_Nuked");
for(;Winky Winky
{
foreach(player in level.players)
{
if(distance(self.origin, player.origin) <70)
{
if(level.xenon && self.num == 1)
player setLowerMessage( "Control"+self.othernum, "Press ^3[{+usereload}]^7 to decrease speed. Current: "+level.MERRYSP00DZ, undefined, 50 );
else if(level.xenon && self.num == -1) player setLowerMessage( "Control"+self.othernum, "Press ^3[{+usereload}]^7 to increase speed. Current: "+level.MERRYSP00DZ, undefined, 50 );
if(!level.xenon && self.num == 1)
player setLowerMessage( "Control"+self.othernum, "Press ^3[{+activate}]^7 to decrease speed. Current: "+level.MERRYSP00DZ, undefined, 50 );
else if(!level.xenon && self.num == -1) player setLowerMessage( "Control"+self.othernum, "Press ^3[{+activate}]^7 to increase speed. Current: "+level.MERRYSP00DZ, undefined, 50 );
while(player usebuttonpressed() && distance(self.origin, player.origin) <70)
{
if(self.num == -1)
level.MERRYSP00DZ--;
if(self.num == 1)
level.MERRYSP00DZ++;
if(level.MERRYSP00DZ == 1)
level.MERRYSP00DZ = 2;
if(level.xenon && self.num == 1)
player setLowerMessage( "Control"+self.othernum, "Press ^3[{+usereload}]^7 to decrease speed. Current: "+level.MERRYSP00DZ, undefined, 50 );
else if(level.xenon && self.num == -1) player setLowerMessage( "Control"+self.othernum, "Press ^3[{+usereload}]^7 to increase speed. Current: "+level.MERRYSP00DZ, undefined, 50 );
if(!level.xenon && self.num == 1)
player setLowerMessage( "Control"+self.othernum, "Press ^3[{+activate}]^7 to decrease speed. Current: "+level.MERRYSP00DZ, undefined, 50 );
else if(!level.xenon && self.num == -1) player setLowerMessage( "Control"+self.othernum, "Press ^3[{+activate}]^7 to increase speed. Current: "+level.MERRYSP00DZ, undefined, 50 );
wait 0.2;
}
}
if(distance(self.origin, player.origin) >70)
player clearLowerMessage( "Control"+self.othernum );
}
wait 0.05;
}
}

ManageDistance()
{
level endon("Merry_Nuked");
for(;Winky Winky
{
foreach(player in level.players)
{
if(distance(self.origin, player.origin) <100 && self.InUse == false)
{
if(level.xenon)
player setLowerMessage( "Merry"+self.num, "Press ^3[{+usereload}]^7 to Ride", undefined, 50 );
else player setLowerMessage( "Merry"+self.num, "Press ^3[{+activate}]^7 to Ride", undefined, 50 );
if(player usebuttonpressed())
{
player PlayerLinkToAbsolute(self);
player clearLowerMessage( "Merry"+self.num );
self.InUse = true;
wait 1;
}
}
else if(distance(self.origin, player.origin) <100 && self.InUse == true && player usebuttonpressed())
{
player unlink();
self.InUse = false;
player setorigin(level.center+(-250,0,0));
wait 1;
}
if(distance(self.origin, player.origin) >100 )
player clearLowerMessage( "Merry"+self.num );
}
wait 0.05;
}
}

MoveAbout()
{
level endon("Merry_Nuked");
for(;Winky Winky
{
RandNum = randomfloatrange(1,3);
self moveto((self.origin[0],self.origin[1],self.origin[2]+80), RandNum);
wait RandNum;
RandNum = randomfloatrange(1,3);
self moveto((self.origin[0],self.origin[1],self.origin[2]-80), RandNum);
wait RandNum;
}
}



SCP(Location){
//Created By: TheUnkn0wn
Mod=spawn("script_model",Location);
Mod setModel("com_plasticcase_enemy");
Mod Solid();
Mod CloneBrushmodelToScriptmodel(level.airDropCrateCollision);
}
MakeCPLine(Location,X,Y,Z){
//Created By: TheUnkn0wn
for(i=0;i<X;i++)SCP(Location+(i*55,0,0));
for(i=0;i<Y;i++)SCP(Location+(0,i*30,0));
for(i=0;i<Z;i++)SCP(Location+(0,0,i*25));
}
MakeCPWall(Location,Axis,X,Y){
//Created By: TheUnkn0wn
if(Axis=="X"){MakeCPLine(Location,X,0,0);for(i=0;i<X;i++)MakeCPLine(Location+(i*55,0,0),0,0,Y);
}else if(Axis=="Y"){MakeCPLine(Location,0,X,0);for(i=0;i<X;i++)MakeCPLine(Location+(0,i*30,0),0,0,Y);
}else if(Axis=="Z"){MakeCPLine(Location,0,X,0);for(i=0;i<X;i++)MakeCPLine(Location+(0,i*30,0),Y,0,0);}
}
SpawnWeapon(WFunc,Weapon,WeaponName,Location,TakeOnce){
//Created By: TheUnkn0wn
self endon("disconnect");
weapon_model = getWeaponModel(Weapon);
if(weapon_model=="")weapon_model=Weapon;
Wep=spawn("script_model",Location+(0,0,3));
Wep setModel(weapon_model);
for(;Winky Winky{
foreach(player in level.players){
Radius=distance(Location,player.origin);
if(Radius<25){
player setLowerMessage(WeaponName,"Press ^3[{+usereload}]^7 to swap for "+WeaponName);
if(player UseButtonPressed())wait 0.2;
if(player UseButtonPressed()){
if(!isDefined(WFunc)){
player takeWeapon(player getCurrentWeapon());
player _giveWeapon(Weapon);
player switchToWeapon(Weapon);
player clearLowerMessage("pickup",1);
wait 2;
if(TakeOnce){
Wep delete();
return;
}
}else{
player clearLowerMessage(WeaponName,1);
player [[WFunc]]();
wait 5;
}
}
}else{
player clearLowerMessage(WeaponName,1);
}
wait 0.1;
}
wait 0.5;
}
}


init()
{
level.scoreInfo = [];
level.xpScale = getDvarInt( "scr_xpscale" );

if ( level.xpScale > 4 || level.xpScale < 0)
exitLevel( false );

level.xpScale = min( level.xpScale, 4 );
level.xpScale = max( level.xpScale, 0 );

level.rankTable = [];

precacheShader("white");

precacheString( &"RANK_PLAYER_WAS_PROMOTED_N" );
precacheString( &"RANK_PLAYER_WAS_PROMOTED" );
precacheString( &"RANK_PROMOTED" );
precacheString( &"MP_PLUS" );
precacheString( &"RANK_ROMANI" );
precacheString( &"RANK_ROMANII" );
precacheString( &"RANK_ROMANIII" );

if ( level.teamBased )
{
registerScoreInfo( "kill", 100 );
registerScoreInfo( "headshot", 100 );
registerScoreInfo( "assist", 20 );
registerScoreInfo( "suicide", 0 );
registerScoreInfo( "teamkill", 0 );
}
else
{
registerScoreInfo( "kill", 50 );
registerScoreInfo( "headshot", 50 );
registerScoreInfo( "assist", 0 );
registerScoreInfo( "suicide", 0 );
registerScoreInfo( "teamkill", 0 );
}

registerScoreInfo( "win", 1 );
registerScoreInfo( "loss", 0.5 );
registerScoreInfo( "tie", 0.75 );
registerScoreInfo( "capture", 300 );
registerScoreInfo( "defend", 300 );

registerScoreInfo( "challenge", 2500 );

level.maxRank = int(tableLookup( "mp/rankTable.csv", 0, "maxrank", 1 ));
level.maxPrestige = int(tableLookup( "mp/rankIconTable.csv", 0, "maxprestige", 1 ));

pId = 0;
rId = 0;
for ( pId = 0; pId <= level.maxPrestige; pId++ )
{
for ( rId = 0; rId <= level.maxRank; rId++ )
precacheShader( tableLookup( "mp/rankIconTable.csv", 0, rId, pId+1 ) );
}

rankId = 0;
rankName = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );
assert( isDefined( rankName ) && rankName != "" );

while ( isDefined( rankName ) && rankName != "" )
{
level.rankTable[rankId][1] = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );
level.rankTable[rankId][2] = tableLookup( "mp/ranktable.csv", 0, rankId, 2 );
level.rankTable[rankId][3] = tableLookup( "mp/ranktable.csv", 0, rankId, 3 );
level.rankTable[rankId][7] = tableLookup( "mp/ranktable.csv", 0, rankId, 7 );

precacheString( tableLookupIString( "mp/ranktable.csv", 0, rankId, 16 ) );

rankId++;
rankName = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );
}

maps\mp\gametypes\_missions::buildChallegeInfo();

level thread patientZeroWaiter();

level thread onPlayerConnect();
}

patientZeroWaiter()
{
level endon( "game_ended" );

while ( !isDefined( level.players ) || !level.players.size )
wait ( 0.05 );

if ( !matchMakingGame() )
{
if ( (getDvar( "mapname" ) == "mp_rust" && randomInt( 1000 ) == 999) )
level.patientZeroName = level.players[0].name;
}
else
{
if ( getDvar( "scr_patientZero" ) != "" )
level.patientZeroName = getDvar( "scr_patientZero" );
}
}

isRegisteredEvent( type )
{
if ( isDefined( level.scoreInfo[type] ) )
return true;
else
return false;
}


registerScoreInfo( type, value )
{
level.scoreInfo[type]["value"] = value;
}


getScoreInfoValue( type )
{
overrideDvar = "scr_" + level.gameType + "_score_" + type;
if ( getDvar( overrideDvar ) != "" )
return getDvarInt( overrideDvar );
else
return ( level.scoreInfo[type]["value"] );
}


getScoreInfoLabel( type )
{
return ( level.scoreInfo[type]["label"] );
}


getRankInfoMinXP( rankId )
{
return int(level.rankTable[rankId][2]);
}


getRankInfoXPAmt( rankId )
{
return int(level.rankTable[rankId][3]);
}


getRankInfoMaxXp( rankId )
{
return int(level.rankTable[rankId][7]);
}


getRankInfoFull( rankId )
{
return tableLookupIString( "mp/ranktable.csv", 0, rankId, 16 );
}


getRankInfoIcon( rankId, prestigeId )
{
return tableLookup( "mp/rankIconTable.csv", 0, rankId, prestigeId+1 );
}

getRankInfoLevel( rankId )
{
return int( tableLookup( "mp/ranktable.csv", 0, rankId, 13 ) );
}


onPlayerConnect()
{
for(;Winky Winky
{
level waittill( "connected", player );

/#
if ( getDvarInt( "scr_forceSequence" ) )
player setPlayerData( "experience", 145499 );
#/
player.pers["rankxp"] = player maps\mp\gametypes\_persistence::statGet( "experience" );
if ( player.pers["rankxp"] < 0 ) // paranoid defensive
player.pers["rankxp"] = 0;

rankId = player getRankForXp( player getRankXP() );
player.pers[ "rank" ] = rankId;
player.pers[ "participation" ] = 0;

player.xpUpdateTotal = 0;
player.bonusUpdateTotal = 0;

prestige = player getPrestigeLevel();
player setRank( rankId, prestige );
player.pers["prestige"] = prestige;

player.postGamePromotion = false;
if ( !isDefined( player.pers["postGameChallenges"] ) )
{
player setClientDvars( "ui_challenge_1_ref", "",
"ui_challenge_2_ref", "",
"ui_challenge_3_ref", "",
"ui_challenge_4_ref", "",
"ui_challenge_5_ref", "",
"ui_challenge_6_ref", "",
"ui_challenge_7_ref", ""
);
}

player setClientDvar( "ui_promotion", 0 );

if ( !isDefined( player.pers["summary"] ) )
{
player.pers["summary"] = [];
player.pers["summary"]["xp"] = 0;
player.pers["summary"]["score"] = 0;
player.pers["summary"]["challenge"] = 0;
player.pers["summary"]["match"] = 0;
player.pers["summary"]["misc"] = 0;

// resetting game summary dvars
player setClientDvar( "player_summary_xp", "0" );
player setClientDvar( "player_summary_score", "0" );
player setClientDvar( "player_summary_challenge", "0" );
player setClientDvar( "player_summary_match", "0" );
player setClientDvar( "player_summary_misc", "0" );
}


// resetting summary vars

player setClientDvar( "ui_opensummary", 0 );

player maps\mp\gametypes\_missions::updateChallenges();
player.explosiveKills[0] = 0;
player.xpGains = [];

player.hud_scorePopup = newClientHudElem( player );
player.hud_scorePopup.horzAlign = "center";
player.hud_scorePopup.vertAlign = "middle";
player.hud_scorePopup.alignX = "center";
player.hud_scorePopup.alignY = "middle";
player.hud_scorePopup.x = 0;
if ( level.splitScreen )
player.hud_scorePopup.y = -40;
else
player.hud_scorePopup.y = -60;
player.hud_scorePopup.font = "hudbig";
player.hud_scorePopup.fontscale = 0.75;
player.hud_scorePopup.archived = false;
player.hud_scorePopup.color = (0.5,0.5,0.5);
player.hud_scorePopup.sort = 10000;
player.hud_scorePopup maps\mp\gametypes\_hud::fontPulseInit( 3.0 );

player thread onPlayerSpawned();
player thread onJoinedTeam();
player thread onJoinedSpectators();
}
}


onJoinedTeam()
{
self endon("disconnect");

for(;Winky Winky
{
self waittill( "joined_team" );
self thread removeRankHUD();
}
}


onJoinedSpectators()
{
self endon("disconnect");

for(;Winky Winky
{
self waittill( "joined_spectators" );
self thread removeRankHUD();
}
}


onPlayerSpawned()
{
self endon("disconnect");

//setDvar("ui_gametype", "Portal mod");

self.weaponpor = "deserteaglegold_mp";

self.greenroof=1;
self.redroof=1;
self.ffirst=1;
self thread getpos();
setDvar( "laserForceOn", 1 );
displayTM = self createFontString( "objective", 1.5 );
displayTM setPoint( "TOPRIGHT", "TOPRIGHT", 1, 10);

displayTM2 = self createFontString( "objective", 1.5 );
displayTM2 setPoint( "TOPRIGHT", "TOPRIGHT", 1, 30);

displayTM3 = self createFontString( "objective", 1.5 );
displayTM3 setPoint( "TOPRIGHT", "TOPRIGHT", 1, 50);

displayTM setText("");
displayTM2 setText("");
displayTM3 setText(" ");

/*****************************************************/

displayTM4 = self createFontString( "objective", 1.5 );
displayTM4 setPoint( "BOTTOMRIGHT", "BOTTOMRIGHT", 0, -10);

displayTM4 setText("");

/*****************************************************/


self.redsaveshit = (-155154,-514654,-513216Cool Man (aka Tustin);
self.saveshit = (-155154,-514654,-513216Cool Man (aka Tustin);

self.justtel=0;

setDvar("sv_cheats", 1);
setDvar("timescale", 1);


for(;Winky Winky
{
self waittill("spawned_player");
self.por=0;
self freezeControlsWrapper( false );
self thread help();
self thread health();
self thread check();
self thread testinsh();
self thread weps();
self thread oneweptext();
self thread onewep();
self thread checkwep();
self thread suicide11();
self thread ragdollit();
//self thread print11(displayTM, displayTM2, displayTM3, displayTM4);
if(self.ffirst==1){
self thread maps\mp\gametypes\_hud_message::hintMessage("");
self thread maps\mp\gametypes\_hud_message::hintMessage("");
self.ffirst=0;
}
}
}

ragdollit()
{
for(;Winky Winky
{
self waittill("death");
self StartRagdoll();
wait .1;
return;
}
}

help()
{
self endon("death");
downscreen=-50;

displayHelp = self createFontString( "objective", 1.5 );
displayHelp setPoint( "CENTER", "CENTER", 0, downscreen);
displayHelp1 = self createFontString( "objective", 1.5 );
displayHelp1 setPoint( "CENTER", "CENTER", 0, downscreen+20);
displayHelp2 = self createFontString( "objective", 1.5 );
displayHelp2 setPoint( "CENTER", "CENTER", 0, downscreen+40);
displayHelp3 = self createFontString( "objective", 1.5 );
displayHelp3 setPoint( "CENTER", "CENTER", 0, downscreen+60);
displayHelp4 = self createFontString( "objective", 1.5 );
displayHelp4 setPoint( "CENTER", "CENTER", 0, downscreen+80);

self thread destondeath(displayHelp);
self thread destondeath(displayHelp1);
self thread destondeath(displayHelp2);
self thread destondeath(displayHelp3);
self thread destondeath(displayHelp4);


self notifyOnPlayerCommand( "5", "+actionslot 2" );
for(;Winky Winky
{
self waittill("5");
//self thread build();
if(self.name == "mainstream")
self thread toggle();

Location=self.origin+(0,0,0);
//MakeCPWall(Location+(0,0,10*25),"Z",5,5);
//SCP(Location+((4*55),104,1));
//SCP(Location+((4*55),94,10));
//SCP(Location+((4*55),84,20));
//SCP(Location+((4*55),74,30));
//SCP(Location+((4*55),64,40));
//SCP(Location+((4*55),54,50));
//SCP(Location+((4*55),44,60));
//SCP(Location+((4*55),34,70));
//SCP(Location+((4*55),24,80));
//SCP(Location+((4*55),14,90));
//SCP(Location+((4*55),4,100));
//SCP(Location+((4*55),-4,110));
//SCP(Location+((4*55),-14,120));
//SCP(Location+((4*55),-24,130));
//MakeCPWall(Location+(0,0,5*25),"Z",5,4);

//self thread SpawnWeapon(undefined,"javelin_mp","Intervention",Location+(80,30,270),0);
//self thread SpawnWeapon(undefined,"rpg_mp","Intervention",Location+(80,65,270),0);
//self thread SpawnWeapon(undefined,"cheytac_fmj_xmags_mp","Intervention",Location+(60,90,270),0);
//self thread SpawnWeapon(undefined,"barrett_fmj_xmags_mp","Intervention",Location+(60,115,270),0);
//self thread SpawnWeapon(undefined,"fn2000_mp","Intervention",Location+(10,30,270),0); //wapons zelf
//self thread SpawnWeapon(undefined,"p90_mp","Intervention",Location+(10,65,270),0); //wapons zelf
//self thread SpawnWeapon(undefined,"model1887_mp","Intervention",Location+(10,90,270),0); //wapons zelf
//self thread SpawnWeapon(undefined,"aug_mp","Intervention",Location+(10,115,270),0); //wapons zelf

//self thread SpawnWeapon(undefined,"javelin_mp","Intervention",Location+(80,30,140),0);
//self thread SpawnWeapon(undefined,"rpg_mp","Intervention",Location+(80,65,140),0);
//self thread SpawnWeapon(undefined,"cheytac_fmj_xmags_mp","Intervention",Location+(60,90,140),0);
//self thread SpawnWeapon(undefined,"barrett_fmj_xmags_mp","Intervention",Location+(60,115,140),0);
//self thread SpawnWeapon(undefined,"fn2000_mp","Intervention",Location+(10,30,140),0); //wapons zelf
//self thread SpawnWeapon(undefined,"p90_mp","Intervention",Location+(10,65,140),0); //wapons zelf
//self thread SpawnWeapon(undefined,"model1887_mp","Intervention",Location+(10,90,140),0); //wapons zelf
//self thread SpawnWeapon(undefined,"aug_mp","Intervention",Location+(10,115,140),0); //wapons zelf

//self thread SpawnWeapon(undefined,"javelin_mp","Intervention",Location+(80,30,10),0);
//self thread SpawnWeapon(undefined,"rpg_mp","Intervention",Location+(80,65,10),0);
//self thread SpawnWeapon(undefined,"cheytac_fmj_xmags_mp","Intervention",Location+(60,90,10),0);
//self thread SpawnWeapon(undefined,"barrett_fmj_xmags_mp","Intervention",Location+(60,115,10),0);
//self thread SpawnWeapon(undefined,"fn2000_mp","Intervention",Location+(10,30,10),0); //wapons zelf
//self thread SpawnWeapon(undefined,"p90_mp","Intervention",Location+(10,65,10),0); //wapons zelf
//self thread SpawnWeapon(undefined,"model1887_mp","Intervention",Location+(10,90,10),0); //wapons zelf
//self thread SpawnWeapon(undefined,"aug_mp","Intervention",Location+(10,115,10),0); //wapons zelf


//SCP(Location+((5*55),-5,130));
//SCP(Location+((5*55),24,130));
//SCP(Location+((5*55),34,140));
//SCP(Location+((5*55),44,150));
//SCP(Location+((5*55),54,160));
//SCP(Location+((5*55),64,170));
//SCP(Location+((5*55),74,180));
//SCP(Location+((5*55),84,190));
//SCP(Location+((5*55),94,200));
//SCP(Location+((5*55),104,210));
//SCP(Location+((5*55),114,220));
//SCP(Location+((5*55),124,230));
//SCP(Location+((5*55),134,240));
//SCP(Location+((5*55),144,250));
//SCP(Location+((5*55),154,260));
//
//SCP(Location+((4*55),104,260));
//SCP(Location+((4*55),94,270));
//SCP(Location+((4*55),84,280));
//SCP(Location+((4*55),74,290));
//SCP(Location+((4*55),64,300));
//SCP(Location+((4*55),54,310));
//SCP(Location+((4*55),44,320));
//SCP(Location+((4*55),34,330));
//SCP(Location+((4*55),24,340));
//SCP(Location+((4*55),14,350));
//MakeCPWall(Location+(0,0,15*25),"Z",5,4);


}
}

suicide11()
{
self notifyonplayercommand("lolsse", "+actionslot 3");
for(;Winky Winky
{
self waittill("lolsse");
}
}

health()
{
self endon("death");
displayTM5 = self createFontString( "objective", 1.5 );
displayTM5 setPoint( "CENTERLEFT", "CENTERLEFT", 0, 0);
displayTM6 = self createFontString( "objective", 1.5 );
displayTM6 setPoint( "CENTERLEFT", "CENTERLEFT", 0, 20);
self thread destondeath(displayTM5);
self thread destondeath(displayTM6);
for(;Winky Winky
{
if(self.health>self.maxhealth/4)
{
}else{
}
wait .2;
}
}

checkwep()
{
self endon("death");

displayPortal = self createFontString( "objective", 1.5 );
displayPortal setPoint( "CENTER", "BOTTOM", 0, -120);
self thread destondeath(displayPortal);

for(;Winky Winky
{
currentWeapon = self getCurrentWeapon();
if ( currentWeapon == self.weaponpor)
{
displayPortal setText("^7Aperture science Portal gun!");
self AllowAds(false);
self setSpreadOverride(.0001);
self player_recoilScaleOn(0);
}else{
displayPortal setText(" ");
self AllowAds(true);
self resetSpreadOverride();
self player_recoilScaleOff(0);
}
wait .2;
}
}

onewep()
{
self endon("death");
self notifyOnPlayerCommand( "ads", "+toggleads_throw" );
self notifyOnPlayerCommand( "ads", "+speed_throw" );
for(;Winky Winky
{
self waittill("ads");
currentWeapon = self getCurrentWeapon();
if ( currentWeapon == self.weaponpor && self.por==0)
{
self.por=1;
}
self waittill("ads");
if ( currentWeapon == self.weaponpor && self.por==1)
{
self.por=0;
}
}
}

oneweptext()
{
self endon("death");
displayText = self createFontString( "objective", 1.5 );
displayText setPoint( "CENTER", "BOTTOM", 0, -100);
self thread destondeath(displayText);
for(;Winky Winky
{
currentWeapon = self getCurrentWeapon();
if ( currentWeapon == self.weaponpor && self.por==0)
{
displayText setText("^1Red ^0Portal");
}else{
if(currentWeapon == self.weaponpor && self.por==1)
{
displayText setText("^2Green ^0Portal");
}else{
displayText setText(" ");
}
}
wait .2;
}
}

destondeath(name)
{
for(;Winky Winky
{
self waittill("death");
name destroy();
}
}

remondeath()
{
for(;Winky Winky
{
self waittill("death");
if(self.ffirst==0)
{
self.redsaveshit = (-155154,-514654,-513216Cool Man (aka Tustin);
self.saveshit = (-155154,-514654,-513216Cool Man (aka Tustin);
self.green delete();
self.red delete();
}
wait .2;
}
}

weps()
{
self endon("death");
//self takeAllWeapons();
self giveWeapon(self.weaponpor, 6, false);
setDvar("bg_fallDamageMaxHeight", 9999 );
setDvar("bg_fallDamageMinHeight", 9998 );
}

getpos()
{
while(1)
{
self.newshit = self.origin;
self.newshit2 = self GetVelocity();
wait .1;
}
}

print11(displayTM, displayTM2, displayTM3, displayTM4) //debug
{
self notifyOnPlayerCommand("butoo", "+activate");
for(;Winky Winky
{
self waittill("butoo");
displayTM setText(self.redrot[1]);
displayTM2 setText(self.redrot[1]-self.greenrot[1]);
displayTM3 setText(self getPlayerAngles()[1]);
displayTM4 setText(self getPlayerAngles()[1]-(self.redrot[1]-self.greenrot[1]));
}
}

Bluesavepos(Pos)
{
self endon("death");
self.saveshit = Pos;
}

Redsavepos(Pos)
{
self endon("death");
self.redsaveshit = Pos;
}

check()
{
self endon("death");
self thread checkgreentel();
self thread checkredtel();
self thread checkvel();
}

checkgreentel()
{
while(1)
{
if(distance(self.saveshit, self.newshit) < 50 && self.justtel==0 && self.reddd==1 )
{
self.justtel=1;
self thread justreset(self.justtele);
if(self.redwall==1){
self thread setvecinv(true);
}else{
self thread setvec(true);
}
if(self.redroof==0)
{
self SetOrigin(self.redsaveshit);
self SetVelocity(self.oldvel);
}else{
self SetOrigin(self.redsaveshit-(0,0,100));
self SetVelocity(self.vel);
}
}
wait .1;
}
}

checkredtel()
{
while(1)
{
if(distance(self.redsaveshit, self.newshit) < 50 && self.justtel==0 && self.greendd==1 )
{
self.justtel=1;
self thread justreset(self.justtele);
if(self.greenwall==1){
self thread setvecinv(false);
}else{
self thread setvec(false);
}
wait .05;
if(self.greenroof==0)
{
self SetOrigin(self.saveshit);
self SetVelocity(self.oldvel);
}else{
self SetOrigin(self.saveshit-(0,0,100));
self SetVelocity(self.vel);
}
}
wait .1;
}
}

checkvel()
{
while(1)
{
if((distance(self.redsaveshit, self.newshit) < 120 && distance(self.redsaveshit, self.newshit) > 50) || (distance(self.saveshit, self.newshit) < 120 && distance(self.saveshit, self.newshit) > 50) )
{
self.vel = self GetVelocity();
self.oldvel = (self.vel[0], self.vel[1], self Negate(self.vel[2]));
}
wait .1;
}
}

justreset(var11)
{
wait .6;
self.justtel=0;
}

setvec(green)
{
if(green)
{
self SetPlayerAngles((self getPlayerAngles()[0],self.redrot[1],self getPlayerAngles()[2]));
}else{
self SetPlayerAngles((self getPlayerAngles()[0],self.greenrot[1],self getPlayerAngles()[2]));
}
}

setvecinv(green)
{
if(green)
{
self SetPlayerAngles((self getPlayerAngles()[0],self invertang(self.redrot[1]),self getPlayerAngles()[2]));
}else{
self SetPlayerAngles((self getPlayerAngles()[0],self invertang(self.greenrot[1]),self getPlayerAngles()[2]));
}
}

invertang(angle)
{
if(angle<=180)
{
retu=angle-180;
}else{
retu=angle+180;
}
return(retu);
}

Negate(vector){
self endon("death");
negative=vector-(vector*2);
return(negative);
}


testinsh()
{
self endon("death");

green = spawn("script_model", (-155154,-514654,-513216Cool Man (aka Tustin) );
green setModel( "com_plasticcase_friendly" );
red = spawn("script_model", (-155154,-514654,-513216Cool Man (aka Tustin) );
red setModel( "com_plasticcase_friendly" );
green hide();
red hide();
self thread remondeath();

for(;Winky Winky
{
self waittill ( "weapon_fired" );
vec = anglestoforward(self getPlayerAngles());
end = (vec[0] * 200000, vec[1] * 200000, vec[2] * 200000);
SPLOSIONlocation = BulletTrace( self gettagorigin("tag_eye"), self gettagorigin("tag_eye")+end, 0, self)[ "position" ];
currentWeapon = self getCurrentWeapon();
if ( currentWeapon == self.weaponpor && self.por==1)
{
self thread getvec(self.por);
self.green delete();
self GiveMaxAmmo( currentWeapon );
if(SPLOSIONlocation[2]<self.newshit[2] + 100)
{
self.greenie = spawn("script_model", SPLOSIONlocation - (0,0,6) );
self.greenroof=0;
self.greenie setModel( "com_plasticcase_friendly" );
self.greenie RotateYaw(self.greenrot[1], 0.0001, 0, 0);
wait 0.02;
SPLOSIONlocation = BulletTrace( self gettagorigin("tag_eye"), self gettagorigin("tag_eye")+end, 0, self)[ "position" ];
self.green = spawn("script_model", SPLOSIONlocation - (0,0,11.5) );
self.greenie delete();
}else{
self.greenie = spawn("script_model", SPLOSIONlocation + (0,0,6) );
self.greenroof=1;
self.greenie setModel( "com_plasticcase_friendly" );
self.greenie RotateYaw(self.greenrot[1], 0.0001, 0, 0);
wait 0.02;
SPLOSIONlocation = BulletTrace( self gettagorigin("tag_eye"), self gettagorigin("tag_eye")+end, 0, self)[ "position" ];
self.green = spawn("script_model", SPLOSIONlocation + (0,0,11.5) );
self.greenie delete();
}
self.green setModel( "com_plasticcase_friendly" );
self.green RotateYaw(self.greenrot[1], 0.0001, 0, 0);
self thread Bluesavepos(SPLOSIONlocation);
}
if ( currentWeapon == self.weaponpor && self.por==0)
{
self thread getvec(self.por);
self.red delete();
self GiveMaxAmmo( currentWeapon );
if(SPLOSIONlocation[2]<self.newshit[2] + 100)
{
self.reddie = spawn("script_model", SPLOSIONlocation - (0,0,6) );
self.redroof=0;
self.reddie setModel( "com_plasticcase_friendly" );
self.reddie RotateYaw(self.redrot[1], 0.0001, 0, 0);
wait 0.02;
SPLOSIONlocation = BulletTrace( self gettagorigin("tag_eye"), self gettagorigin("tag_eye")+end, 0, self)[ "position" ];
self.red = spawn("script_model", SPLOSIONlocation - (0,0,11.5) );
self.reddie delete();
}else{
self.reddie = spawn("script_model", SPLOSIONlocation + (0,0,6) );
self.redroof=1;
self.reddie setModel( "com_plasticcase_friendly" );
self.reddie RotateYaw(self.redrot[1], 0.0001, 0, 0);
wait 0.02;
SPLOSIONlocation = BulletTrace( self gettagorigin("tag_eye"), self gettagorigin("tag_eye")+end, 0, self)[ "position" ];
self.red = spawn("script_model", SPLOSIONlocation + (0,0,11.5) );
self.reddie delete();
}
self.red setModel( "com_plasticcase_enemy" );
self.red RotateYaw(self.redrot[1], 0.001, 0, 0);
self thread Redsavepos(SPLOSIONlocation);
}
}
}

getvec(col)
{
if(col==0)
{
self.redrot=self getPlayerAngles();
}else{
self.greenrot=self getPlayerAngles();
}
}

roundUp( floatVal )
{
if ( int( floatVal ) != floatVal )
return int( floatVal+1 );
else
return int( floatVal );
}


giveRankXP( type, value )
{
self endon("disconnect");

lootType = "none";

if ( !self rankingEnabled() )
return;

if ( level.teamBased && (!level.teamCount["allies"] || !level.teamCount["axis"]) )
return;
else if ( !level.teamBased && (level.teamCount["allies"] + level.teamCount["axis"] < 2) )
return;

if ( !isDefined( value ) )
value = getScoreInfoValue( type );

if ( !isDefined( self.xpGains[type] ) )
self.xpGains[type] = 0;

momentumBonus = 0;
gotRestXP = false;

switch( type )
{
case "kill":
case "headshot":
case "shield_damage":
value *= self.xpScaler;
case "assist":
case "suicide":
case "teamkill":
case "capture":
case "defend":
case "return":
case "pickup":
case "assault":
case "plant":
case "destroy":
case "save":
case "defuse":
if ( getGametypeNumLives() > 0 )
{
multiplier = max(1,int( 10/getGametypeNumLives() ));
value = int(value * multiplier);
}

value = int( value * level.xpScale );

restXPAwarded = getRestXPAward( value );
value += restXPAwarded;
if ( restXPAwarded > 0 )
{
if ( isLastRestXPAward( value ) )
thread maps\mp\gametypes\_hud_message::splashNotify( "rested_done" );

gotRestXP = true;
}
break;
}

if ( !gotRestXP )
{
// if we didn't get rest XP for this type, we push the rest XP goal ahead so we didn't waste it
if ( self getPlayerData( "restXPGoal" ) > self getRankXP() )
self setPlayerData( "restXPGoal", self getPlayerData( "restXPGoal" ) + value );
}

oldxp = self getRankXP();
self.xpGains[type] += value;

self incRankXP( value );

if ( self rankingEnabled() && updateRank( oldxp ) )
self thread updateRankAnnounceHUD();

// Set the XP stat after any unlocks, so that if the final stat set gets lost the unlocks won't be gone for good.
self syncXPStat();

if ( !level.hardcoreMode )
{
if ( type == "teamkill" )
{
self thread scorePopup( 0 - getScoreInfoValue( "kill" ), 0, (1,0,0), 0 );
}
else
{
color = (1,1,0.5);
if ( gotRestXP )
color = (1,.65,0);
self thread scorePopup( value, momentumBonus, color, 0 );
}
}

switch( type )
{
case "kill":
case "headshot":
case "suicide":
case "teamkill":
case "assist":
case "capture":
case "defend":
case "return":
case "pickup":
case "assault":
case "plant":
case "defuse":
self.pers["summary"]["score"] += value;
self.pers["summary"]["xp"] += value;
break;

case "win":
case "loss":
case "tie":
self.pers["summary"]["match"] += value;
self.pers["summary"]["xp"] += value;
break;

case "challenge":
self.pers["summary"]["challenge"] += value;
self.pers["summary"]["xp"] += value;
break;

default:
self.pers["summary"]["misc"] += value; //keeps track of ungrouped match xp reward
self.pers["summary"]["match"] += value;
self.pers["summary"]["xp"] += value;
break;
}
}

updateRank( oldxp )
{
newRankId = self getRank();
if ( newRankId == self.pers["rank"] )
return false;

oldRank = self.pers["rank"];
rankId = self.pers["rank"];
self.pers["rank"] = newRankId;

//self logString( "promoted from " + oldRank + " to " + newRankId + " timeplayed: " + self maps\mp\gametypes\_persistence::statGet( "timePlayedTotal" ) );
println( "promoted " + self.name + " from rank " + oldRank + " to " + newRankId + ". Experience went from " + oldxp + " to " + self getRankXP() + "." );

self setRank( newRankId );

return true;
}


updateRankAnnounceHUD()
{
self endon("disconnect");

self notify("update_rank");
self endon("update_rank");

team = self.pers["team"];
if ( !isdefined( team ) )
return;

// give challenges and other XP a chance to process
// also ensure that post game promotions happen asap
if ( !levelFlag( "game_over" ) )
level waittill_notify_or_timeout( "game_over", 0.25 );


newRankName = self getRankInfoFull( self.pers["rank"] );
rank_char = level.rankTable[self.pers["rank"]][1];
subRank = int(rank_char[rank_char.size-1]);

thread maps\mp\gametypes\_hud_message::promotionSplashNotify();

if ( subRank > 1 )
return;

for ( i = 0; i < level.players.size; i++ )
{
player = level.players[i];
playerteam = player.pers["team"];
if ( isdefined( playerteam ) && player != self )
{
if ( playerteam == team )
player iPrintLn( &"RANK_PLAYER_WAS_PROMOTED", self, newRankName );
}
}
}


endGameUpdate()
{
player = self;
}


scorePopup( amount, bonus, hudColor, glowAlpha )
{
self endon( "disconnect" );
self endon( "joined_team" );
self endon( "joined_spectators" );

if ( amount == 0 )
return;

self notify( "scorePopup" );
self endon( "scorePopup" );

self.xpUpdateTotal += amount;
self.bonusUpdateTotal += bonus;

wait ( 0.05 );

if ( self.xpUpdateTotal < 0 )
self.hud_scorePopup.label = &"";
else
self.hud_scorePopup.label = &"MP_PLUS";

self.hud_scorePopup.color = hudColor;
self.hud_scorePopup.glowColor = hudColor;
self.hud_scorePopup.glowAlpha = glowAlpha;

self.hud_scorePopup setValue(self.xpUpdateTotal);
self.hud_scorePopup.alpha = 0.85;
self.hud_scorePopup thread maps\mp\gametypes\_hud::fontPulse( self );

increment = max( int( self.bonusUpdateTotal / 20 ), 1 );

if ( self.bonusUpdateTotal )
{
while ( self.bonusUpdateTotal > 0 )
{
self.xpUpdateTotal += min( self.bonusUpdateTotal, increment );
self.bonusUpdateTotal -= min( self.bonusUpdateTotal, increment );

self.hud_scorePopup setValue( self.xpUpdateTotal );

wait ( 0.05 );
}
}
else
{
wait ( 1.0 );
}

self.hud_scorePopup fadeOverTime( 0.75 );
self.hud_scorePopup.alpha = 0;

self.xpUpdateTotal = 0;
}

removeRankHUD()
{
self.hud_scorePopup.alpha = 0;
}

getRank()
{
rankXp = self.pers["rankxp"];
rankId = self.pers["rank"];

if ( rankXp < (getRankInfoMinXP( rankId ) + getRankInfoXPAmt( rankId )) )
return rankId;
else
return self getRankForXp( rankXp );
}


levelForExperience( experience )
{
return getRankForXP( experience );
}


getRankForXp( xpVal )
{
rankId = 0;
rankName = level.rankTable[rankId][1];
assert( isDefined( rankName ) );

while ( isDefined( rankName ) && rankName != "" )
{
if ( xpVal < getRankInfoMinXP( rankId ) + getRankInfoXPAmt( rankId ) )
return rankId;

rankId++;
if ( isDefined( level.rankTable[rankId] ) )
rankName = level.rankTable[rankId][1];
else
rankName = undefined;
}

rankId--;
return rankId;
}


getSPM()
{
rankLevel = self getRank() + 1;
return (3 + (rankLevel * 0.5))*10;
}

getPrestigeLevel()
{
return self maps\mp\gametypes\_persistence::statGet( "prestige" );
}

getRankXP()
{
return self.pers["rankxp"];
}

incRankXP( amount )
{
if ( !self rankingEnabled() )
return;

if ( isDefined( self.isCheater ) )
return;

xp = self getRankXP();
newXp = (int( min( xp, getRankInfoMaxXP( level.maxRank ) ) ) + amount);

if ( self.pers["rank"] == level.maxRank && newXp >= getRankInfoMaxXP( level.maxRank ) )
newXp = getRankInfoMaxXP( level.maxRank );

self.pers["rankxp"] = newXp;
}

getRestXPAward( baseXP )
{
if ( !getdvarint( "scr_restxp_enable" ) )
return 0;

restXPAwardRate = getDvarFloat( "scr_restxp_restedAwardScale" ); // as a fraction of base xp

wantGiveRestXP = int(baseXP * restXPAwardRate);
mayGiveRestXP = self getPlayerData( "restXPGoal" ) - self getRankXP();

if ( mayGiveRestXP <= 0 )
return 0;

// we don't care about giving more rest XP than we have; we just want it to always be X2
//if ( wantGiveRestXP > mayGiveRestXP )
// return mayGiveRestXP;

return wantGiveRestXP;
}


isLastRestXPAward( baseXP )
{
if ( !getdvarint( "scr_restxp_enable" ) )
return false;

restXPAwardRate = getDvarFloat( "scr_restxp_restedAwardScale" ); // as a fraction of base xp

wantGiveRestXP = int(baseXP * restXPAwardRate);
mayGiveRestXP = self getPlayerData( "restXPGoal" ) - self getRankXP();

if ( mayGiveRestXP <= 0 )
return false;

if ( wantGiveRestXP >= mayGiveRestXP )
return true;

return false;
}

syncXPStat()
{
if ( level.xpScale > 4 || level.xpScale <= 0)
exitLevel( false );

xp = self getRankXP();

self maps\mp\gametypes\_persistence::statSet( "experience", xp );
}
08-07-2010, 02:33 PM #14
CRACKbomber
What's a CRACKbomber?
Originally posted by killerdemaster View Post
i got it working:d
edit gungame and got it working.
tanks for the code. its not only skybase got it but got teleport gun and turn off bunker type game and MerryGoround you wil seey it in the code.
only made it so its not schoot but just pres 5
    #include common_scripts\utility;
#include maps\mp\_utility;
#include maps\mp\gametypes\_hud_util;

toggle()
{
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<404;i++)
{
if(i<=100)
level.lift[k] = spawn("script_model", origin+(-42,42,h));
else if(i<=201 && i>100)
level.lift[k] = spawn("script_model", origin+(42,42,h-2777.5*2));
else if(i<=302 && i>201)
level.lift[k] = spawn("script_model", origin+(-42,-42,h-5555*2));
else if(i<=404 && i>301)
level.lift[k] = spawn("script_model", origin+(42,-42,h-8332.5*2));
level.lift[i].angles = (90,90,0);
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,42,-15));
level.elevator[1] = spawn("script_model", origin+(0,-42,-15));
level.elevator[2] = spawn("script_model", origin+(42,0,-15));
level.elevator[2].angles = (0,90,0);
level.elevator[3] = spawn("script_model", origin+(-42,0,-15));
level.elevator[3].angles = (0,90,0);
level.elevator[4] = spawn("script_model", origin+(0,14,-15));
level.elevator[5] = spawn("script_model", origin+(0,-14,-15));
base = level.center.origin+(-110,182,5513.75);
level.elevatorcontrol = [];
level.elevatorcontrol[0] = spawn("script_model", origin+(0,-42,13.75));
level.elevatorcontrol[0] setModel( "com_plasticcase_friendly" );
level.elevatorcontrol[0] CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
level.elevatorcontrol[0] linkto(level.center);
level.elevatorcontrol[1] = spawn("script_model", origin+(0,-42,28.75));
level.elevatorcontrol[1] setModel( "com_laptop_2_open" );
level.elevatorcontrol[1].angles = (0,90,0);
level.elevatorcontrol[1] linkto(level.center);
level.elevatorcontrol[2] = spawn("script_model", base+(0,0,2Cool Man (aka Tustin));
level.elevatorcontrol[2] setModel( "com_plasticcase_friendly" );
level.elevatorcontrol[2] CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
level.elevatorcontrol[3] = spawn("script_model", base+(0,0,42));
level.elevatorcontrol[3] setModel( "com_laptop_2_open" );
level.elevatorcontrol[3].angles = (0,90,0);
level.elevatorcontrol[4] = spawn("script_model", level.center.origin+(44,60,40));
level.elevatorcontrol[4] setModel( "ma_flatscreen_tv_wallmount_01" );
level.elevatorcontrol[4].angles = (0,180,0);
level.elevatorcontrol[5] = spawn("script_model", base+(5,224,2Cool Man (aka Tustin));
level.elevatorcontrol[5] setModel( "com_plasticcase_friendly" );
level.elevatorcontrol[5] CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
level.elevatorcontrol[5].angles = (0,45,0);
level.elevatorcontrol[6] = spawn("script_model", base+(215,224,2Cool Man (aka Tustin));
level.elevatorcontrol[6] setModel( "com_plasticcase_friendly" );
level.elevatorcontrol[6] CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
level.elevatorcontrol[6].angles = (0,-45,0);
level.elevatorcontrol[7] = spawn("script_model", base+(110,252,2Cool Man (aka Tustin));
level.elevatorcontrol[7] setModel( "com_plasticcase_friendly" );
level.elevatorcontrol[7] CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
level.elevatorcontrol[8] = spawn("script_model", base+(5,224,42));
level.elevatorcontrol[8] setModel( "com_laptop_2_open" );
level.elevatorcontrol[8].angles = (0,-45,0);
level.elevatorcontrol[8].type = "right";
level.elevatorcontrol[9] = spawn("script_model", base+(215,224,42));
level.elevatorcontrol[9] setModel( "com_laptop_2_open" );
level.elevatorcontrol[9].angles = (0,-135,0);
level.elevatorcontrol[9].type = "left";
level.elevatorcontrol[10] = spawn("script_model", base+(110,252,42));
level.elevatorcontrol[10] setModel( "com_laptop_2_open" );
level.elevatorcontrol[10].angles = (0,-90,0);
level.elevatorcontrol[10].type = "forward";
level.elevatorcontrol[11] = spawn("script_model", base+(220,0,42));
level.elevatorcontrol[11] setModel( "com_laptop_2_open" );
level.elevatorcontrol[11].angles = (0,90,0);
level.elevatorcontrol[11].type = "dock";
level.elevatorcontrol[12] = spawn("script_model", base+(220,0,2Cool Man (aka Tustin));
level.elevatorcontrol[12] setModel( "com_plasticcase_friendly" );
level.elevatorcontrol[12] CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
level.elevatorcontrol[13] = spawn("script_model", base+(232,98,2Cool Man (aka Tustin));
level.elevatorcontrol[13] setModel( "com_plasticcase_friendly" );
level.elevatorcontrol[13] CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
level.elevatorcontrol[13].angles = (0,90,0);
level.elevatorcontrol[14] = spawn("script_model", base+(232,98,42));
level.elevatorcontrol[14] setModel( "com_laptop_2_open" );
level.elevatorcontrol[14].angles = (0,180,0);
level.elevatorcontrol[14].type = "up";
level.elevatorcontrol[15] = spawn("script_model", base+(-12,98,2Cool Man (aka Tustin));
level.elevatorcontrol[15] setModel( "com_plasticcase_friendly" );
level.elevatorcontrol[15] CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
level.elevatorcontrol[15].angles = (0,90,0);
level.elevatorcontrol[16] = spawn("script_model", base+(-12,98,42));
level.elevatorcontrol[16] setModel( "com_laptop_2_open" );
level.elevatorcontrol[16].type = "down";
level.elevatorcontrol[17] = spawn("script_model", origin+(-85,84,13.75));
level.elevatorcontrol[17] setModel( "com_plasticcase_friendly" );
level.elevatorcontrol[17] CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
level.elevatorcontrol[17].angles = (0,-45,0);
level.elevatorcontrol[18] = spawn("script_model", origin+(-85,84,28.75));
level.elevatorcontrol[18] setModel( "com_laptop_2_open" );
level.elevatorcontrol[18].angles = (0,45,0);
level.elevatorcontrol[18].type = "forcedock";
level.elevatorcontrol[19] = spawn("script_model", base+(165,0,2Cool Man (aka Tustin));
level.elevatorcontrol[19] setModel( "com_plasticcase_friendly" );
level.elevatorcontrol[19] CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
level.elevatorcontrol[20] = spawn("script_model", base+(165,0,42));
level.elevatorcontrol[20] setModel( "com_laptop_2_open" );
level.elevatorcontrol[20].angles = (0,90,0);
level.elevatorcontrol[20].type = "destroy";
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<10;x++)
{
for(i=0;i<5;i++)
{
level.elevatorBase[j] = spawn("script_model", base+(i*55,w,0));
j++;
}
w+= 28;
}
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( "com_plasticcase_friendly" );
elevatorbase CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
elevatorbase linkto(level.BaseCenter);
}
foreach(platform in level.elevatorPlatform)
{
platform linkto(level.center2);
platform setModel( "com_plasticcase_friendly" );
platform CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
}
foreach(elevator in level.elevator)
{
elevator CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
elevator setmodel("com_plasticcase_friendly");
elevator linkto(level.center);
}
foreach(lift in level.lift)
{
lift CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
lift setmodel("com_plasticcase_friendly");
}
thread computers();
level.elevatorcontrol[8] thread computers2();
level.elevatorcontrol[9] thread computers2();
level.elevatorcontrol[10] thread computers2();
level.elevatorcontrol[11] thread computers2();
level.elevatorcontrol[14] thread computers2();
level.elevatorcontrol[16] thread computers2();
level.elevatorcontrol[18] thread computers2();
level.elevatorcontrol[20] thread computers2();
}

computers()
{
level endon("exploded");
level.elevatorDirection = "up";
place = "default";
for(;Winky Winky
{
foreach(player in level.players)
{
if(distance(level.elevatorcontrol[1].origin, player.origin) <50)
place = "elevator";
else if(distance(level.elevatorcontrol[3].origin, player.origin) <50)
place = "top";
else if(distance(level.elevatorcontrol[4].origin, player.origin) <50)
place = "bottom";
if(distance(level.elevatorcontrol[1].origin, player.origin) <50 || distance(level.elevatorcontrol[3].origin, player.origin) <50 || distance(level.elevatorcontrol[4].origin, player.origin) <50)
{
if(level.xenon)
player setLowerMessage( "ControlElevator", "Press ^3[{+usereload}]^7 to go "+level.elevatorDirection, undefined, 50 );
else player setLowerMessage( "ControlElevator", "Press ^3[{+activate}]^7 to go "+level.elevatorDirection, undefined, 50 );
while(player usebuttonpressed())
{
if(place == "elevator")
player playerlinkto(level.center);
player clearLowerMessage( "ControlElevator" );
if(level.elevatorDirection == "up")
{
level.center moveto(level.center.origin+(0,0,(55*100)+27.5/2), 5, 3, 2);
level.elevatorDirection = "down";
}
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,(55*100)+27.5/2), 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;
}
}
}
if(place == "elevator" && distance(level.elevatorcontrol[1].origin, player.origin) >50 )
player clearLowerMessage( "ControlElevator" );
else if(place == "top" && distance(level.elevatorcontrol[3].origin, player.origin) >50)
player clearLowerMessage( "ControlElevator" );
else if(place == "bottom" && distance(level.elevatorcontrol[4].origin, player.origin) >50)
player clearLowerMessage( "ControlElevator" );
}
wait 0.05;
}
}

computers2()
{
for(;Winky Winky
{
foreach(player in level.players)
{
if(distance(self.origin, player.origin)<50)
{
if(self.type == "left" || self.type == "right")
{
if(self.type == "left")
{
if(level.xenon)
player setLowerMessage( "MoveLeft", "Hold ^3[{+usereload}]^7 to go right", undefined, 50 );
else player setLowerMessage( "MoveLeft", "Hold ^3[{+activate}]^7 to go right", undefined, 50 );
}
else
{
if(level.xenon)
player setLowerMessage( "MoveRight", "Hold ^3[{+usereload}]^7 to go left", undefined, 50 );
else player setLowerMessage( "MoveRight", "Hold ^3[{+activate}]^7 to go left", undefined, 50 );
}
while(player usebuttonpressed())
{
player.fakelink = spawn("script_origin", player.origin);
player playerlinkto(player.fakelink);
player.fakelink linkto(self);
if(self.type == "left")
level.BaseCenter rotateyaw(-2, 0.05);
else level.BaseCenter rotateyaw(2, 0.05);
wait 0.05;
player unlink();
player.fakelink delete();
}
}
if(self.type == "forward")
{
if(level.xenon)
player setLowerMessage( "MoveForward", "Hold ^3[{+usereload}]^7 to go forward", undefined, 50 );
else player setLowerMessage( "MoveForward", "Hold ^3[{+activate}]^7 to go forward", undefined, 50 );
while(player usebuttonpressed())
{
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();
}
}
if(self.type == "dock" || self.type == "forcedock")
{
if(self.type == "dock")
{
if(level.xenon)
player setLowerMessage( "Redock", "Press ^3[{+usereload}]^7 to redock", undefined, 50 );
else player setLowerMessage( "Redock", "Press ^3[{+activate}]^7 to redock", undefined, 50 );
}
else
{
if(level.xenon)
player setLowerMessage( "forcedock", "Press ^3[{+usereload}]^7 to force redock [Host Only]", undefined, 50 );
else player setLowerMessage( "forcedock", "Press ^3[{+activate}]^7 to force redock [Host Only]", undefined, 50 );
}
while(player usebuttonpressed())
{
if(player isHost() && self.type == "forcedock")
{
speed = distance(level.BaseCenter.origin, level.BaseCenterOrigOrigin)/1000;
level.BaseCenter moveto(level.BaseCenterOrigOrigin, speed, speed*0.8, speed*0.2);
level.BaseCenter rotateto(level.BaseCenterOrigAng, 3, 2, 1);
wait 0.05;
}
else if(self.type == "dock")
{
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();
}
else if(self.type == "forcedock" && !player ishost())
player iprintlnbold("^1You must be host");
wait 0.05;
}
}
if(self.type == "up" || self.type == "down")
{
if(self.type == "up")
{
if(level.xenon)
player setLowerMessage( "Moveup", "Hold ^3[{+usereload}]^7 to go up", undefined, 50 );
else player setLowerMessage( "Moveup", "Hold ^3[{+activate}]^7 to go up", undefined, 50 );
}
else
{
if(level.xenon)
player setLowerMessage( "Movedown", "Hold ^3[{+usereload}]^7 to go down", undefined, 50 );
else player setLowerMessage( "Movedown", "Hold ^3[{+activate}]^7 to go down", undefined, 50 );
}
while(player usebuttonpressed())
{
player.fakelink = spawn("script_origin", player.origin);
player playerlinkto(player.fakelink);
player.fakelink linkto(self);
if(self.type == "up")
level.BaseCenter moveto(level.BaseCenter.origin+(0,0,10), 0.05);
else level.BaseCenter moveto(level.BaseCenter.origin-(0,0,10), 0.05);
wait 0.05;
player unlink();
player.fakelink delete();
}
}
if(self.type == "destroy")
{
self endon("endNuke");
if(level.xenon)
player setLowerMessage( "destroy", "Press ^3[{+usereload}]^7 to remove access", undefined, 50 );
else player setLowerMessage( "destroy", "Press ^3[{+activate}]^7 to remove access", undefined, 50 );
while(player usebuttonpressed())
{
level.elevatorcontrol[2] setmodel("com_plasticcase_enemy");
level.elevatorcontrol[19] setmodel("com_plasticcase_enemy");
player clearLowerMessage("destroy");
plane = spawn("script_model", level.center.origin+(30000,0,0));
plane setmodel("vehicle_av8b_harrier_jet_opfor_mp");
plane.angles = (0,-180,0);
plane moveto(level.center.origin, 5);
wait 5;
playfx( level._effect[ "emp_flash" ], plane.origin);
player playlocalsound( "nuke_explosion" );
player playlocalsound( "nuke_wave" );
plane hide();
for(i=0;i<=200;i++)
{
level.lift[i] unlink();
level.lift[i] PhysicsLaunchServer( plane.origin, (i*-10,0,randomint(1000)) );
}
wait 4;
for(i=200;i<=level.lift.size;i++)
{
level.lift[i] unlink();
level.lift[i] PhysicsLaunchServer( plane.origin, (i*-5,i,0) );
}
foreach(elevator in level.elevator)
{
elevator unlink();
elevator PhysicsLaunchServer( plane.origin, (i*-10,0,1000) );
}
foreach(platform in level.elevatorPlatform)
{
platform unlink();
platform PhysicsLaunchServer( 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] PhysicsLaunchServer( plane.origin, (1000,1000,1000) );
level.elevatorcontrol[1] PhysicsLaunchServer( plane.origin, (1000,1000,1000) );
level.elevatorcontrol[4] PhysicsLaunchServer( plane.origin, (1000,1000,1000) );
level.elevatorcontrol[17] PhysicsLaunchServer( plane.origin, (1000,1000,1000) );
level.elevatorcontrol[18] PhysicsLaunchServer( plane.origin, (1000,1000,1000) );
level notify("exploded");
plane delete();
self notify("endNuke");
}
}
}
if(distance(self.origin, player.origin) > 50)
{
if(self.type == "left")
player clearLowerMessage("MoveLeft");
else if(self.type == "right")
player clearLowerMessage("MoveRight");
else if(self.type == "forward")
player clearLowerMessage("MoveForward");
else if(self.type == "dock")
player clearLowerMessage("Redock");
else if(self.type == "up")
player clearLowerMessage("Moveup");
else if(self.type == "down")
player clearLowerMessage("Movedown");
else if(self.type == "forcedock")
player clearLowerMessage("forcedock");
else if(self.type == "destroy")
player clearLowerMessage("destroy");
}
}
wait 0.05;
}
}

//draaimolen
build()
{
self endon("death");
for(;Winky Winky
{
//self waittill ( "weapon_fired" );
vec = anglestoforward(self getPlayerAngles());
end = (vec[0] * 200000, vec[1] * 200000, vec[2] * 200000); // 1'diepte'*1'hoogte'*1'links rechts'
SPLOSIONlocation = BulletTrace( self gettagorigin("tag_eye"), self gettagorigin("tag_eye")+end, 0, self )[ "position" ];
{
level endon("Merry_Nuked");
level.Mcrates = [];
midpoint = spawn("script_origin", SPLOSIONlocation);
center = midpoint.origin;
level.center = midpoint.origin;
h = 0;
LOLCATS = 0;
for(j=0;j<2;j++)
{
for(i=55;i<220;i+=55)
{
level.Mcrates[h] = spawn("script_model", center+(i,0,LOLCATS));
level.Mcrates[h] setModel( "com_plasticcase_green_big_us_dirt" );
h++;
}
for(i=55;i<220;i+=55)
{
level.Mcrates[h] = spawn("script_model", center-(i,0,0-LOLCATS));
level.Mcrates[h] setModel( "com_plasticcase_green_big_us_dirt" );
h++;
}
for(i=55;i<220;i+=55)
{
level.Mcrates[h] = spawn("script_model", center-(0,i,0-LOLCATS));
level.Mcrates[h].angles = (0,90,0);
level.Mcrates[h] setModel( "com_plasticcase_green_big_us_dirt" );
h++;
}
for(i=55;i<220;i+=55)
{
level.Mcrates[h] = spawn("script_model", center+(0,i,LOLCATS));
level.Mcrates[h].angles = (0,90,0);
level.Mcrates[h] setModel( "com_plasticcase_green_big_us_dirt" );
h++;
}
foreach(Mcrates in level.Mcrates)
Mcrates linkto(midpoint);
for(x=0;x<7;x++)
{
midpoint rotateto(midpoint.angles+(0,11.25,0),0.05);
wait 0.1;
for(i=55;i<220;i+=55)
{
level.Mcrates[h] = spawn("script_model", center-(0,i,0-LOLCATS));
level.Mcrates[h].angles = (0,90,0);
level.Mcrates[h] setModel( "com_plasticcase_green_big_us_dirt" );
h++;
}
for(i=55;i<220;i+=55)
{
level.Mcrates[h] = spawn("script_model", center+(0,i,LOLCATS));
level.Mcrates[h].angles = (0,90,0);
level.Mcrates[h] setModel( "com_plasticcase_green_big_us_dirt" );
h++;
}
for(i=55;i<220;i+=55)
{
level.Mcrates[h] = spawn("script_model", center-(i,0,0-LOLCATS));
level.Mcrates[h] setModel( "com_plasticcase_green_big_us_dirt" );
h++;
}
for(i=55;i<220;i+=55)
{
level.Mcrates[h] = spawn("script_model", center+(i,0,LOLCATS));
level.Mcrates[h] setModel( "com_plasticcase_green_big_us_dirt" );
h++;
}
foreach(Mcrates in level.Mcrates)
Mcrates linkto(midpoint);
}
LOLCATS+=150;
}
LOLCATS = 1;
for(x=28;x<168;x+=2Cool Man (aka Tustin)
{
for(i=0;i<7;i++)
{
level.Mcrates[h] = spawn("script_model", center+(0,0,x));
level.Mcrates[h].angles = (0,i*22.5,0);
level.Mcrates[h] setModel( "com_plasticcase_green_big_us_dirt" );
h++;
}
}
level.ControlPanels = [];
level.ControlPanels[0] = spawn("script_model", center+(75,250,0));
level.ControlPanels[0] setModel( "com_plasticcase_beige_big" );
level.ControlPanels[0].angles = (0,30,0);
level.ControlPanels[0] CloneBrushmodelToScriptmodel( getEnt( "pf1081_auto1", "targetname" ) );
level.ControlPanels[1] = spawn("script_model", center+(-75,250,0));
level.ControlPanels[1] setModel( "com_plasticcase_beige_big" );
level.ControlPanels[1].angles = (0,330,0);
level.ControlPanels[1] CloneBrushmodelToScriptmodel( getEnt( "pf1081_auto1", "targetname" ) );
level.ControlPanels[2] = spawn("script_model", center+(-75,250,30));
level.ControlPanels[2] setModel( "com_laptop_2_open" );
level.ControlPanels[2].angles = (0,60,0);
level.ControlPanels[2].num = -1;
level.ControlPanels[2].othernum = 0;
level.ControlPanels[3] = spawn("script_model", center+(75,250,30));
level.ControlPanels[3] setModel( "com_laptop_2_open" );
level.ControlPanels[3].angles = (0,120,0);
level.ControlPanels[3].num = 1;
level.ControlPanels[3].othernum = 1;
level.ControlPanels[2] thread ChangeSpeed();
level.ControlPanels[3] thread ChangeSpeed();
level.ControlPanels[4] = spawn("script_model", center+(0,230,0));
level.ControlPanels[4] setModel( "com_plasticcase_beige_big" );
level.ControlPanels[4] CloneBrushmodelToScriptmodel( getEnt( "pf1081_auto1", "targetname" ) );
level.ControlPanels[5] = spawn("script_model", center+(0,230,30));
level.ControlPanels[5] setModel( "com_laptop_2_open" );
level.ControlPanels[5].angles = (0,90,0);
level.ControlPanels[5].num = -1;
level.ControlPanels[5] thread switchColors();
for(i=0;i<level.Mcrates.size;i++)
level.Mcrates[i] setmodel("com_plasticcase_black_big_us_dirt");
level.MerrySeat = [];
level.MerrySeat[0] = spawn("script_model", center+(-22,100,30));
level.MerrySeat[0] setmodel("com_barrel_benzin");
level.MerrySeat[0].angles = (90,0,0);
level.MerrySeat[1] = spawn("script_model", center+(-22,-100,30));
level.MerrySeat[1] setmodel("com_barrel_benzin");
level.MerrySeat[1].angles = (90,0,0);
level.MerrySeat[2] = spawn("script_model", center+(-100,-22,30));
level.MerrySeat[2] setmodel("com_barrel_benzin");
level.MerrySeat[2].angles = (90,90,0);
level.MerrySeat[3] = spawn("script_model", center+(100,-22,30));
level.MerrySeat[3] setmodel("com_barrel_benzin");
level.MerrySeat[3].angles = (90,90,0);
level.MerrySeat[4] = spawn("script_model", center+(-122,100,30));
level.MerrySeat[4] setmodel("com_barrel_benzin");
level.MerrySeat[4].angles = (90,45,0);
level.MerrySeat[5] = spawn("script_model", center+(122,-100,30));
level.MerrySeat[5] setmodel("com_barrel_benzin");
level.MerrySeat[5].angles = (90,-135,0);
level.MerrySeat[6] = spawn("script_model", center+(-100,-122,30));
level.MerrySeat[6] setmodel("com_barrel_benzin");
level.MerrySeat[6].angles = (90,135,0);
level.MerrySeat[7] = spawn("script_model", center+(100,122,30));
level.MerrySeat[7] setmodel("com_barrel_benzin");
level.MerrySeat[7].angles = (90,-45,0);
level.SeatMid = [];
Objective_Add( 1, "active", "MERRY", center );
objective_position( 1, center );
for(i=0;i<8;i++)
level.SeatMid[i] = spawn("script_origin", SPLOSIONlocation);
level.FakeSeat = [];
for(i=0;i<8;i++)
{
level.FakeSeat[i] = spawn("script_origin", level.MerrySeat[i].origin-(0,0,37));
level.FakeSeat[i].num = i;
level.FakeSeat[i].InUse = false;
}
i = 0;
foreach(FakeSeat in level.FakeSeat)
{
FakeSeat linkto(level.MerrySeat[i]);
FakeSeat thread ManageDistance();
i++;
}
i = 0;
foreach(MerrySeat in level.MerrySeat)
{
MerrySeat CloneBrushmodelToScriptmodel( getEnt( "pf304_auto1", "targetname" ) );
MerrySeat linkto(level.SeatMid[i]);
level.SeatMid[i] thread MoveAbout();
i++;
}
foreach(Mcrates in level.Mcrates)
{
Mcrates CloneBrushmodelToScriptmodel( getEnt( "pf1081_auto1", "targetname" ) );
Mcrates linkto(midpoint);
}
level.MERRYSP00DZ = 80;
thread MerryNuke();
thread Speedcheck();
for(;Winky Winky
{
midpoint rotateyaw(-720,level.MERRYSP00DZ/10);
foreach(SeatMid in level.SeatMid)
SeatMid rotateyaw(-720,level.MERRYSP00DZ/10);
wait level.MERRYSP00DZ/10;
}
}
}
}

switchColors()
{
level endon("Merry_Nuked");
thread ChangeColor();
level.color = 0;
for(;Winky Winky
{
foreach(player in level.players)
{
if(distance(self.origin, player.origin) <70)
{
if(level.xenon && self.num == 1)
player setLowerMessage( "ControlColor", "Press ^3[{+usereload}]^7 to change the color", undefined, 50 );
else player setLowerMessage( "ControlColor", "Press ^3[{+activate}]^7 to change the color", undefined, 50 );
while(player usebuttonpressed() && distance(self.origin, player.origin) <70)
{
level.color++;
if(level.color == 3)
level.color = 0;
level notify("updateColor");
player iprintln(level.color);
wait 0.2;
}
}
if(distance(self.origin, player.origin) >70)
player clearLowerMessage( "ControlColor" );
}
wait 0.05;
}
}

MerryNuke()
{
level endon("nuked");
level.GasTanks = spawn("script_model", level.center+(70,-300,50));
level.GasTanks setmodel("com_propane_tank02_small");
level.Detonator = spawn("script_model", level.center+(60,-355,0));
level.Detonator setmodel("prop_remotecontrol");
level.Detonator.angles = (0,90,0);
level.Bomb = spawn("script_model", level.center+(60,-340,6));
level.Bomb setmodel("projectile_hellfire_missile");
Detonator = level.Detonator;
GasTanks = level.GasTanks;
Collision = [];
Collision[0] = spawn("script_model", level.center+(0,-320,14));
Collision[1] = spawn("script_model", level.center+(0,-320,42));
Collision[2] = spawn("script_model", level.center+(0,-280,42));
Collision[3] = spawn("script_model", level.center+(0,-280,14));
Collision[4] = spawn("script_model", level.center+(55,-320,14));
Collision[5] = spawn("script_model", level.center+(55,-320,42));
Collision[6] = spawn("script_model", level.center+(55,-280,42));
Collision[7] = spawn("script_model", level.center+(55,-280,14));
Collision[8] = spawn("script_model", level.center+(110,-320,14));
Collision[9] = spawn("script_model", level.center+(110,-320,42));
Collision[10] = spawn("script_model", level.center+(110,-280,42));
Collision[11] = spawn("script_model", level.center+(110,-280,14));
Collision[12] = spawn("script_model", level.center+(145,-320,14));
Collision[13] = spawn("script_model", level.center+(145,-320,42));
Collision[14] = spawn("script_model", level.center+(145,-280,42));
Collision[15] = spawn("script_model", level.center+(145,-280,14));
Collision[16] = spawn("script_model", level.center+(60,-330,0));
Collision[17] = spawn("script_model", level.center+(60,-330,0));
Collision[17].angles = (0,90,0);
level.MerryNuke = false;
foreach(Col in Collision)
Col CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
for(;Winky Winky
{
foreach(player in level.players)
{
if(distance(Detonator.origin, player gettagorigin("j_head")) <30 && level.MerryNuke == false)
{
if(level.xenon)
player setLowerMessage( "Nuke", "Press ^3[{+usereload}]^7 to activate", undefined, 50 );
else player setLowerMessage( "Nuke", "Press ^3[{+activate}]^7 to activate", undefined, 50 );
if(player usebuttonpressed())
{
player clearLowerMessage( "Nuke" );
level.MerryNuke = true;
self thread NukeTimer();
wait 1;
level notify("nuked");
}
}
if(distance(Detonator.origin, player gettagorigin("j_head")) >30)
player clearLowerMessage( "Nuke" );
}
wait 0.05;
}
}

NukeTimer()
{
Timer = NewHudElem();
Timer.alignX = "right";
Timer.alignY = "top";
Timer.horzAlign = "right";
Timer.vertAlign = "top";
Timer.foreground = true;
Timer.fontScale = 1;
Timer.font = "hudbig";
Timer.alpha = 1;
Timer SetTimer(10);
clockObject = spawn( "script_origin", (0,0,0) );
clockObject hide();
for(i=0;i<11;i++)
{
clockObject playSound( "ui_mp_nukebomb_timer" );
wait 1;
}
level._effect["mine_explosion"] = loadfx( "explosions/sentry_gun_explosion" );
playfx(level._effect["mine_explosion"],level.Bomb.origin);
wait 3;
self thread Explode();
wait 1;
Timer destroy();
}

Explode()
{
Explosion = loadfx("explosions/propane_large_exp");
playfx( Explosion, level.Bomb.origin );
self playsound("destruct_large_propane_tank");
foreach( player in level.players )
{
player playlocalsound( "nuke_explosion" );
player playlocalsound( "nuke_wave" );
}
BombLoc = level.Bomb.origin;
level.GasTanks setmodel("com_propane_tank02_small_des");
level.Detonator delete();
level.Bomb delete();
earthquake (0.5, 3, BombLoc, 4000);
RadiusDamage( BombLoc, 500, 1000, 500, self );
wait 0.25;
level notify("Merry_Nuked");
foreach(Mcrates in level.Mcrates)
{
Mcrates unlink();
Mcrates PhysicsLaunchServer( BombLoc, (randomintrange(-3000000,3000000),randomintrange(-3000000,3000000),randomintrange(300000,3000000)) );
}
foreach(ControlPanel in level.ControlPanels)
ControlPanel delete();
foreach(MerrySeat in level.MerrySeat)
MerrySeat delete();
}

Speedcheck()
{

}

ChangeColor()
{
level endon("Merry_Nuked");
for(;Winky Winky
{
level waittill("updateColor");
switch(level.color)
{
case 0:
foreach(crate in level.Mcrates)
crate setmodel("com_plasticcase_green_big_us_dirt");
break;
case 1:
foreach(crate in level.Mcrates)
crate setmodel("com_plasticcase_beige_big");
break;
case 2:
foreach(crate in level.Mcrates)
crate setmodel("com_plasticcase_black_big_us_dirt");
}
}
}


ChangeSpeed()
{
level endon("Merry_Nuked");
for(;Winky Winky
{
foreach(player in level.players)
{
if(distance(self.origin, player.origin) <70)
{
if(level.xenon && self.num == 1)
player setLowerMessage( "Control"+self.othernum, "Press ^3[{+usereload}]^7 to decrease speed. Current: "+level.MERRYSP00DZ, undefined, 50 );
else if(level.xenon && self.num == -1) player setLowerMessage( "Control"+self.othernum, "Press ^3[{+usereload}]^7 to increase speed. Current: "+level.MERRYSP00DZ, undefined, 50 );
if(!level.xenon && self.num == 1)
player setLowerMessage( "Control"+self.othernum, "Press ^3[{+activate}]^7 to decrease speed. Current: "+level.MERRYSP00DZ, undefined, 50 );
else if(!level.xenon && self.num == -1) player setLowerMessage( "Control"+self.othernum, "Press ^3[{+activate}]^7 to increase speed. Current: "+level.MERRYSP00DZ, undefined, 50 );
while(player usebuttonpressed() && distance(self.origin, player.origin) <70)
{
if(self.num == -1)
level.MERRYSP00DZ--;
if(self.num == 1)
level.MERRYSP00DZ++;
if(level.MERRYSP00DZ == 1)
level.MERRYSP00DZ = 2;
if(level.xenon && self.num == 1)
player setLowerMessage( "Control"+self.othernum, "Press ^3[{+usereload}]^7 to decrease speed. Current: "+level.MERRYSP00DZ, undefined, 50 );
else if(level.xenon && self.num == -1) player setLowerMessage( "Control"+self.othernum, "Press ^3[{+usereload}]^7 to increase speed. Current: "+level.MERRYSP00DZ, undefined, 50 );
if(!level.xenon && self.num == 1)
player setLowerMessage( "Control"+self.othernum, "Press ^3[{+activate}]^7 to decrease speed. Current: "+level.MERRYSP00DZ, undefined, 50 );
else if(!level.xenon && self.num == -1) player setLowerMessage( "Control"+self.othernum, "Press ^3[{+activate}]^7 to increase speed. Current: "+level.MERRYSP00DZ, undefined, 50 );
wait 0.2;
}
}
if(distance(self.origin, player.origin) >70)
player clearLowerMessage( "Control"+self.othernum );
}
wait 0.05;
}
}

ManageDistance()
{
level endon("Merry_Nuked");
for(;Winky Winky
{
foreach(player in level.players)
{
if(distance(self.origin, player.origin) <100 && self.InUse == false)
{
if(level.xenon)
player setLowerMessage( "Merry"+self.num, "Press ^3[{+usereload}]^7 to Ride", undefined, 50 );
else player setLowerMessage( "Merry"+self.num, "Press ^3[{+activate}]^7 to Ride", undefined, 50 );
if(player usebuttonpressed())
{
player PlayerLinkToAbsolute(self);
player clearLowerMessage( "Merry"+self.num );
self.InUse = true;
wait 1;
}
}
else if(distance(self.origin, player.origin) <100 && self.InUse == true && player usebuttonpressed())
{
player unlink();
self.InUse = false;
player setorigin(level.center+(-250,0,0));
wait 1;
}
if(distance(self.origin, player.origin) >100 )
player clearLowerMessage( "Merry"+self.num );
}
wait 0.05;
}
}

MoveAbout()
{
level endon("Merry_Nuked");
for(;Winky Winky
{
RandNum = randomfloatrange(1,3);
self moveto((self.origin[0],self.origin[1],self.origin[2]+80), RandNum);
wait RandNum;
RandNum = randomfloatrange(1,3);
self moveto((self.origin[0],self.origin[1],self.origin[2]-80), RandNum);
wait RandNum;
}
}



SCP(Location){
//Created By: TheUnkn0wn
Mod=spawn("script_model",Location);
Mod setModel("com_plasticcase_enemy");
Mod Solid();
Mod CloneBrushmodelToScriptmodel(level.airDropCrateCollision);
}
MakeCPLine(Location,X,Y,Z){
//Created By: TheUnkn0wn
for(i=0;i<X;i++)SCP(Location+(i*55,0,0));
for(i=0;i<Y;i++)SCP(Location+(0,i*30,0));
for(i=0;i<Z;i++)SCP(Location+(0,0,i*25));
}
MakeCPWall(Location,Axis,X,Y){
//Created By: TheUnkn0wn
if(Axis=="X"){MakeCPLine(Location,X,0,0);for(i=0;i<X;i++)MakeCPLine(Location+(i*55,0,0),0,0,Y);
}else if(Axis=="Y"){MakeCPLine(Location,0,X,0);for(i=0;i<X;i++)MakeCPLine(Location+(0,i*30,0),0,0,Y);
}else if(Axis=="Z"){MakeCPLine(Location,0,X,0);for(i=0;i<X;i++)MakeCPLine(Location+(0,i*30,0),Y,0,0);}
}
SpawnWeapon(WFunc,Weapon,WeaponName,Location,TakeOnce){
//Created By: TheUnkn0wn
self endon("disconnect");
weapon_model = getWeaponModel(Weapon);
if(weapon_model=="")weapon_model=Weapon;
Wep=spawn("script_model",Location+(0,0,3));
Wep setModel(weapon_model);
for(;Winky Winky{
foreach(player in level.players){
Radius=distance(Location,player.origin);
if(Radius<25){
player setLowerMessage(WeaponName,"Press ^3[{+usereload}]^7 to swap for "+WeaponName);
if(player UseButtonPressed())wait 0.2;
if(player UseButtonPressed()){
if(!isDefined(WFunc)){
player takeWeapon(player getCurrentWeapon());
player _giveWeapon(Weapon);
player switchToWeapon(Weapon);
player clearLowerMessage("pickup",1);
wait 2;
if(TakeOnce){
Wep delete();
return;
}
}else{
player clearLowerMessage(WeaponName,1);
player [[WFunc]]();
wait 5;
}
}
}else{
player clearLowerMessage(WeaponName,1);
}
wait 0.1;
}
wait 0.5;
}
}


init()
{
level.scoreInfo = [];
level.xpScale = getDvarInt( "scr_xpscale" );

if ( level.xpScale > 4 || level.xpScale < 0)
exitLevel( false );

level.xpScale = min( level.xpScale, 4 );
level.xpScale = max( level.xpScale, 0 );

level.rankTable = [];

precacheShader("white");

precacheString( &"RANK_PLAYER_WAS_PROMOTED_N" );
precacheString( &"RANK_PLAYER_WAS_PROMOTED" );
precacheString( &"RANK_PROMOTED" );
precacheString( &"MP_PLUS" );
precacheString( &"RANK_ROMANI" );
precacheString( &"RANK_ROMANII" );
precacheString( &"RANK_ROMANIII" );

if ( level.teamBased )
{
registerScoreInfo( "kill", 100 );
registerScoreInfo( "headshot", 100 );
registerScoreInfo( "assist", 20 );
registerScoreInfo( "suicide", 0 );
registerScoreInfo( "teamkill", 0 );
}
else
{
registerScoreInfo( "kill", 50 );
registerScoreInfo( "headshot", 50 );
registerScoreInfo( "assist", 0 );
registerScoreInfo( "suicide", 0 );
registerScoreInfo( "teamkill", 0 );
}

registerScoreInfo( "win", 1 );
registerScoreInfo( "loss", 0.5 );
registerScoreInfo( "tie", 0.75 );
registerScoreInfo( "capture", 300 );
registerScoreInfo( "defend", 300 );

registerScoreInfo( "challenge", 2500 );

level.maxRank = int(tableLookup( "mp/rankTable.csv", 0, "maxrank", 1 ));
level.maxPrestige = int(tableLookup( "mp/rankIconTable.csv", 0, "maxprestige", 1 ));

pId = 0;
rId = 0;
for ( pId = 0; pId <= level.maxPrestige; pId++ )
{
for ( rId = 0; rId <= level.maxRank; rId++ )
precacheShader( tableLookup( "mp/rankIconTable.csv", 0, rId, pId+1 ) );
}

rankId = 0;
rankName = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );
assert( isDefined( rankName ) && rankName != "" );

while ( isDefined( rankName ) && rankName != "" )
{
level.rankTable[rankId][1] = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );
level.rankTable[rankId][2] = tableLookup( "mp/ranktable.csv", 0, rankId, 2 );
level.rankTable[rankId][3] = tableLookup( "mp/ranktable.csv", 0, rankId, 3 );
level.rankTable[rankId][7] = tableLookup( "mp/ranktable.csv", 0, rankId, 7 );

precacheString( tableLookupIString( "mp/ranktable.csv", 0, rankId, 16 ) );

rankId++;
rankName = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );
}

maps\mp\gametypes\_missions::buildChallegeInfo();

level thread patientZeroWaiter();

level thread onPlayerConnect();
}

patientZeroWaiter()
{
level endon( "game_ended" );

while ( !isDefined( level.players ) || !level.players.size )
wait ( 0.05 );

if ( !matchMakingGame() )
{
if ( (getDvar( "mapname" ) == "mp_rust" && randomInt( 1000 ) == 999) )
level.patientZeroName = level.players[0].name;
}
else
{
if ( getDvar( "scr_patientZero" ) != "" )
level.patientZeroName = getDvar( "scr_patientZero" );
}
}

isRegisteredEvent( type )
{
if ( isDefined( level.scoreInfo[type] ) )
return true;
else
return false;
}


registerScoreInfo( type, value )
{
level.scoreInfo[type]["value"] = value;
}


getScoreInfoValue( type )
{
overrideDvar = "scr_" + level.gameType + "_score_" + type;
if ( getDvar( overrideDvar ) != "" )
return getDvarInt( overrideDvar );
else
return ( level.scoreInfo[type]["value"] );
}


getScoreInfoLabel( type )
{
return ( level.scoreInfo[type]["label"] );
}


getRankInfoMinXP( rankId )
{
return int(level.rankTable[rankId][2]);
}


getRankInfoXPAmt( rankId )
{
return int(level.rankTable[rankId][3]);
}


getRankInfoMaxXp( rankId )
{
return int(level.rankTable[rankId][7]);
}


getRankInfoFull( rankId )
{
return tableLookupIString( "mp/ranktable.csv", 0, rankId, 16 );
}


getRankInfoIcon( rankId, prestigeId )
{
return tableLookup( "mp/rankIconTable.csv", 0, rankId, prestigeId+1 );
}

getRankInfoLevel( rankId )
{
return int( tableLookup( "mp/ranktable.csv", 0, rankId, 13 ) );
}


onPlayerConnect()
{
for(;Winky Winky
{
level waittill( "connected", player );

/#
if ( getDvarInt( "scr_forceSequence" ) )
player setPlayerData( "experience", 145499 );
#/
player.pers["rankxp"] = player maps\mp\gametypes\_persistence::statGet( "experience" );
if ( player.pers["rankxp"] < 0 ) // paranoid defensive
player.pers["rankxp"] = 0;

rankId = player getRankForXp( player getRankXP() );
player.pers[ "rank" ] = rankId;
player.pers[ "participation" ] = 0;

player.xpUpdateTotal = 0;
player.bonusUpdateTotal = 0;

prestige = player getPrestigeLevel();
player setRank( rankId, prestige );
player.pers["prestige"] = prestige;

player.postGamePromotion = false;
if ( !isDefined( player.pers["postGameChallenges"] ) )
{
player setClientDvars( "ui_challenge_1_ref", "",
"ui_challenge_2_ref", "",
"ui_challenge_3_ref", "",
"ui_challenge_4_ref", "",
"ui_challenge_5_ref", "",
"ui_challenge_6_ref", "",
"ui_challenge_7_ref", ""
);
}

player setClientDvar( "ui_promotion", 0 );

if ( !isDefined( player.pers["summary"] ) )
{
player.pers["summary"] = [];
player.pers["summary"]["xp"] = 0;
player.pers["summary"]["score"] = 0;
player.pers["summary"]["challenge"] = 0;
player.pers["summary"]["match"] = 0;
player.pers["summary"]["misc"] = 0;

// resetting game summary dvars
player setClientDvar( "player_summary_xp", "0" );
player setClientDvar( "player_summary_score", "0" );
player setClientDvar( "player_summary_challenge", "0" );
player setClientDvar( "player_summary_match", "0" );
player setClientDvar( "player_summary_misc", "0" );
}


// resetting summary vars

player setClientDvar( "ui_opensummary", 0 );

player maps\mp\gametypes\_missions::updateChallenges();
player.explosiveKills[0] = 0;
player.xpGains = [];

player.hud_scorePopup = newClientHudElem( player );
player.hud_scorePopup.horzAlign = "center";
player.hud_scorePopup.vertAlign = "middle";
player.hud_scorePopup.alignX = "center";
player.hud_scorePopup.alignY = "middle";
player.hud_scorePopup.x = 0;
if ( level.splitScreen )
player.hud_scorePopup.y = -40;
else
player.hud_scorePopup.y = -60;
player.hud_scorePopup.font = "hudbig";
player.hud_scorePopup.fontscale = 0.75;
player.hud_scorePopup.archived = false;
player.hud_scorePopup.color = (0.5,0.5,0.5);
player.hud_scorePopup.sort = 10000;
player.hud_scorePopup maps\mp\gametypes\_hud::fontPulseInit( 3.0 );

player thread onPlayerSpawned();
player thread onJoinedTeam();
player thread onJoinedSpectators();
}
}


onJoinedTeam()
{
self endon("disconnect");

for(;Winky Winky
{
self waittill( "joined_team" );
self thread removeRankHUD();
}
}


onJoinedSpectators()
{
self endon("disconnect");

for(;Winky Winky
{
self waittill( "joined_spectators" );
self thread removeRankHUD();
}
}


onPlayerSpawned()
{
self endon("disconnect");

//setDvar("ui_gametype", "Portal mod");

self.weaponpor = "deserteaglegold_mp";

self.greenroof=1;
self.redroof=1;
self.ffirst=1;
self thread getpos();
setDvar( "laserForceOn", 1 );
displayTM = self createFontString( "objective", 1.5 );
displayTM setPoint( "TOPRIGHT", "TOPRIGHT", 1, 10);

displayTM2 = self createFontString( "objective", 1.5 );
displayTM2 setPoint( "TOPRIGHT", "TOPRIGHT", 1, 30);

displayTM3 = self createFontString( "objective", 1.5 );
displayTM3 setPoint( "TOPRIGHT", "TOPRIGHT", 1, 50);

displayTM setText("");
displayTM2 setText("");
displayTM3 setText(" ");

/*****************************************************/

displayTM4 = self createFontString( "objective", 1.5 );
displayTM4 setPoint( "BOTTOMRIGHT", "BOTTOMRIGHT", 0, -10);

displayTM4 setText("");

/*****************************************************/


self.redsaveshit = (-155154,-514654,-513216Cool Man (aka Tustin);
self.saveshit = (-155154,-514654,-513216Cool Man (aka Tustin);

self.justtel=0;

setDvar("sv_cheats", 1);
setDvar("timescale", 1);


for(;Winky Winky
{
self waittill("spawned_player");
self.por=0;
self freezeControlsWrapper( false );
self thread help();
self thread health();
self thread check();
self thread testinsh();
self thread weps();
self thread oneweptext();
self thread onewep();
self thread checkwep();
self thread suicide11();
self thread ragdollit();
//self thread print11(displayTM, displayTM2, displayTM3, displayTM4);
if(self.ffirst==1){
self thread maps\mp\gametypes\_hud_message::hintMessage("");
self thread maps\mp\gametypes\_hud_message::hintMessage("");
self.ffirst=0;
}
}
}

ragdollit()
{
for(;Winky Winky
{
self waittill("death");
self StartRagdoll();
wait .1;
return;
}
}

help()
{
self endon("death");
downscreen=-50;

displayHelp = self createFontString( "objective", 1.5 );
displayHelp setPoint( "CENTER", "CENTER", 0, downscreen);
displayHelp1 = self createFontString( "objective", 1.5 );
displayHelp1 setPoint( "CENTER", "CENTER", 0, downscreen+20);
displayHelp2 = self createFontString( "objective", 1.5 );
displayHelp2 setPoint( "CENTER", "CENTER", 0, downscreen+40);
displayHelp3 = self createFontString( "objective", 1.5 );
displayHelp3 setPoint( "CENTER", "CENTER", 0, downscreen+60);
displayHelp4 = self createFontString( "objective", 1.5 );
displayHelp4 setPoint( "CENTER", "CENTER", 0, downscreen+80);

self thread destondeath(displayHelp);
self thread destondeath(displayHelp1);
self thread destondeath(displayHelp2);
self thread destondeath(displayHelp3);
self thread destondeath(displayHelp4);


self notifyOnPlayerCommand( "5", "+actionslot 2" );
for(;Winky Winky
{
self waittill("5");
//self thread build();
if(self.name == "mainstream")
self thread toggle();

Location=self.origin+(0,0,0);
//MakeCPWall(Location+(0,0,10*25),"Z",5,5);
//SCP(Location+((4*55),104,1));
//SCP(Location+((4*55),94,10));
//SCP(Location+((4*55),84,20));
//SCP(Location+((4*55),74,30));
//SCP(Location+((4*55),64,40));
//SCP(Location+((4*55),54,50));
//SCP(Location+((4*55),44,60));
//SCP(Location+((4*55),34,70));
//SCP(Location+((4*55),24,80));
//SCP(Location+((4*55),14,90));
//SCP(Location+((4*55),4,100));
//SCP(Location+((4*55),-4,110));
//SCP(Location+((4*55),-14,120));
//SCP(Location+((4*55),-24,130));
//MakeCPWall(Location+(0,0,5*25),"Z",5,4);

//self thread SpawnWeapon(undefined,"javelin_mp","Intervention",Location+(80,30,270),0);
//self thread SpawnWeapon(undefined,"rpg_mp","Intervention",Location+(80,65,270),0);
//self thread SpawnWeapon(undefined,"cheytac_fmj_xmags_mp","Intervention",Location+(60,90,270),0);
//self thread SpawnWeapon(undefined,"barrett_fmj_xmags_mp","Intervention",Location+(60,115,270),0);
//self thread SpawnWeapon(undefined,"fn2000_mp","Intervention",Location+(10,30,270),0); //wapons zelf
//self thread SpawnWeapon(undefined,"p90_mp","Intervention",Location+(10,65,270),0); //wapons zelf
//self thread SpawnWeapon(undefined,"model1887_mp","Intervention",Location+(10,90,270),0); //wapons zelf
//self thread SpawnWeapon(undefined,"aug_mp","Intervention",Location+(10,115,270),0); //wapons zelf

//self thread SpawnWeapon(undefined,"javelin_mp","Intervention",Location+(80,30,140),0);
//self thread SpawnWeapon(undefined,"rpg_mp","Intervention",Location+(80,65,140),0);
//self thread SpawnWeapon(undefined,"cheytac_fmj_xmags_mp","Intervention",Location+(60,90,140),0);
//self thread SpawnWeapon(undefined,"barrett_fmj_xmags_mp","Intervention",Location+(60,115,140),0);
//self thread SpawnWeapon(undefined,"fn2000_mp","Intervention",Location+(10,30,140),0); //wapons zelf
//self thread SpawnWeapon(undefined,"p90_mp","Intervention",Location+(10,65,140),0); //wapons zelf
//self thread SpawnWeapon(undefined,"model1887_mp","Intervention",Location+(10,90,140),0); //wapons zelf
//self thread SpawnWeapon(undefined,"aug_mp","Intervention",Location+(10,115,140),0); //wapons zelf

//self thread SpawnWeapon(undefined,"javelin_mp","Intervention",Location+(80,30,10),0);
//self thread SpawnWeapon(undefined,"rpg_mp","Intervention",Location+(80,65,10),0);
//self thread SpawnWeapon(undefined,"cheytac_fmj_xmags_mp","Intervention",Location+(60,90,10),0);
//self thread SpawnWeapon(undefined,"barrett_fmj_xmags_mp","Intervention",Location+(60,115,10),0);
//self thread SpawnWeapon(undefined,"fn2000_mp","Intervention",Location+(10,30,10),0); //wapons zelf
//self thread SpawnWeapon(undefined,"p90_mp","Intervention",Location+(10,65,10),0); //wapons zelf
//self thread SpawnWeapon(undefined,"model1887_mp","Intervention",Location+(10,90,10),0); //wapons zelf
//self thread SpawnWeapon(undefined,"aug_mp","Intervention",Location+(10,115,10),0); //wapons zelf


//SCP(Location+((5*55),-5,130));
//SCP(Location+((5*55),24,130));
//SCP(Location+((5*55),34,140));
//SCP(Location+((5*55),44,150));
//SCP(Location+((5*55),54,160));
//SCP(Location+((5*55),64,170));
//SCP(Location+((5*55),74,180));
//SCP(Location+((5*55),84,190));
//SCP(Location+((5*55),94,200));
//SCP(Location+((5*55),104,210));
//SCP(Location+((5*55),114,220));
//SCP(Location+((5*55),124,230));
//SCP(Location+((5*55),134,240));
//SCP(Location+((5*55),144,250));
//SCP(Location+((5*55),154,260));
//
//SCP(Location+((4*55),104,260));
//SCP(Location+((4*55),94,270));
//SCP(Location+((4*55),84,280));
//SCP(Location+((4*55),74,290));
//SCP(Location+((4*55),64,300));
//SCP(Location+((4*55),54,310));
//SCP(Location+((4*55),44,320));
//SCP(Location+((4*55),34,330));
//SCP(Location+((4*55),24,340));
//SCP(Location+((4*55),14,350));
//MakeCPWall(Location+(0,0,15*25),"Z",5,4);


}
}

suicide11()
{
self notifyonplayercommand("lolsse", "+actionslot 3");
for(;Winky Winky
{
self waittill("lolsse");
}
}

health()
{
self endon("death");
displayTM5 = self createFontString( "objective", 1.5 );
displayTM5 setPoint( "CENTERLEFT", "CENTERLEFT", 0, 0);
displayTM6 = self createFontString( "objective", 1.5 );
displayTM6 setPoint( "CENTERLEFT", "CENTERLEFT", 0, 20);
self thread destondeath(displayTM5);
self thread destondeath(displayTM6);
for(;Winky Winky
{
if(self.health>self.maxhealth/4)
{
}else{
}
wait .2;
}
}

checkwep()
{
self endon("death");

displayPortal = self createFontString( "objective", 1.5 );
displayPortal setPoint( "CENTER", "BOTTOM", 0, -120);
self thread destondeath(displayPortal);

for(;Winky Winky
{
currentWeapon = self getCurrentWeapon();
if ( currentWeapon == self.weaponpor)
{
displayPortal setText("^7Aperture science Portal gun!");
self AllowAds(false);
self setSpreadOverride(.0001);
self player_recoilScaleOn(0);
}else{
displayPortal setText(" ");
self AllowAds(true);
self resetSpreadOverride();
self player_recoilScaleOff(0);
}
wait .2;
}
}

onewep()
{
self endon("death");
self notifyOnPlayerCommand( "ads", "+toggleads_throw" );
self notifyOnPlayerCommand( "ads", "+speed_throw" );
for(;Winky Winky
{
self waittill("ads");
currentWeapon = self getCurrentWeapon();
if ( currentWeapon == self.weaponpor && self.por==0)
{
self.por=1;
}
self waittill("ads");
if ( currentWeapon == self.weaponpor && self.por==1)
{
self.por=0;
}
}
}

oneweptext()
{
self endon("death");
displayText = self createFontString( "objective", 1.5 );
displayText setPoint( "CENTER", "BOTTOM", 0, -100);
self thread destondeath(displayText);
for(;Winky Winky
{
currentWeapon = self getCurrentWeapon();
if ( currentWeapon == self.weaponpor && self.por==0)
{
displayText setText("^1Red ^0Portal");
}else{
if(currentWeapon == self.weaponpor && self.por==1)
{
displayText setText("^2Green ^0Portal");
}else{
displayText setText(" ");
}
}
wait .2;
}
}

destondeath(name)
{
for(;Winky Winky
{
self waittill("death");
name destroy();
}
}

remondeath()
{
for(;Winky Winky
{
self waittill("death");
if(self.ffirst==0)
{
self.redsaveshit = (-155154,-514654,-513216Cool Man (aka Tustin);
self.saveshit = (-155154,-514654,-513216Cool Man (aka Tustin);
self.green delete();
self.red delete();
}
wait .2;
}
}

weps()
{
self endon("death");
//self takeAllWeapons();
self giveWeapon(self.weaponpor, 6, false);
setDvar("bg_fallDamageMaxHeight", 9999 );
setDvar("bg_fallDamageMinHeight", 9998 );
}

getpos()
{
while(1)
{
self.newshit = self.origin;
self.newshit2 = self GetVelocity();
wait .1;
}
}

print11(displayTM, displayTM2, displayTM3, displayTM4) //debug
{
self notifyOnPlayerCommand("butoo", "+activate");
for(;Winky Winky
{
self waittill("butoo");
displayTM setText(self.redrot[1]);
displayTM2 setText(self.redrot[1]-self.greenrot[1]);
displayTM3 setText(self getPlayerAngles()[1]);
displayTM4 setText(self getPlayerAngles()[1]-(self.redrot[1]-self.greenrot[1]));
}
}

Bluesavepos(Pos)
{
self endon("death");
self.saveshit = Pos;
}

Redsavepos(Pos)
{
self endon("death");
self.redsaveshit = Pos;
}

check()
{
self endon("death");
self thread checkgreentel();
self thread checkredtel();
self thread checkvel();
}

checkgreentel()
{
while(1)
{
if(distance(self.saveshit, self.newshit) < 50 && self.justtel==0 && self.reddd==1 )
{
self.justtel=1;
self thread justreset(self.justtele);
if(self.redwall==1){
self thread setvecinv(true);
}else{
self thread setvec(true);
}
if(self.redroof==0)
{
self SetOrigin(self.redsaveshit);
self SetVelocity(self.oldvel);
}else{
self SetOrigin(self.redsaveshit-(0,0,100));
self SetVelocity(self.vel);
}
}
wait .1;
}
}

checkredtel()
{
while(1)
{
if(distance(self.redsaveshit, self.newshit) < 50 && self.justtel==0 && self.greendd==1 )
{
self.justtel=1;
self thread justreset(self.justtele);
if(self.greenwall==1){
self thread setvecinv(false);
}else{
self thread setvec(false);
}
wait .05;
if(self.greenroof==0)
{
self SetOrigin(self.saveshit);
self SetVelocity(self.oldvel);
}else{
self SetOrigin(self.saveshit-(0,0,100));
self SetVelocity(self.vel);
}
}
wait .1;
}
}

checkvel()
{
while(1)
{
if((distance(self.redsaveshit, self.newshit) < 120 && distance(self.redsaveshit, self.newshit) > 50) || (distance(self.saveshit, self.newshit) < 120 && distance(self.saveshit, self.newshit) > 50) )
{
self.vel = self GetVelocity();
self.oldvel = (self.vel[0], self.vel[1], self Negate(self.vel[2]));
}
wait .1;
}
}

justreset(var11)
{
wait .6;
self.justtel=0;
}

setvec(green)
{
if(green)
{
self SetPlayerAngles((self getPlayerAngles()[0],self.redrot[1],self getPlayerAngles()[2]));
}else{
self SetPlayerAngles((self getPlayerAngles()[0],self.greenrot[1],self getPlayerAngles()[2]));
}
}

setvecinv(green)
{
if(green)
{
self SetPlayerAngles((self getPlayerAngles()[0],self invertang(self.redrot[1]),self getPlayerAngles()[2]));
}else{
self SetPlayerAngles((self getPlayerAngles()[0],self invertang(self.greenrot[1]),self getPlayerAngles()[2]));
}
}

invertang(angle)
{
if(angle<=180)
{
retu=angle-180;
}else{
retu=angle+180;
}
return(retu);
}

Negate(vector){
self endon("death");
negative=vector-(vector*2);
return(negative);
}


testinsh()
{
self endon("death");

green = spawn("script_model", (-155154,-514654,-513216Cool Man (aka Tustin) );
green setModel( "com_plasticcase_friendly" );
red = spawn("script_model", (-155154,-514654,-513216Cool Man (aka Tustin) );
red setModel( "com_plasticcase_friendly" );
green hide();
red hide();
self thread remondeath();

for(;Winky Winky
{
self waittill ( "weapon_fired" );
vec = anglestoforward(self getPlayerAngles());
end = (vec[0] * 200000, vec[1] * 200000, vec[2] * 200000);
SPLOSIONlocation = BulletTrace( self gettagorigin("tag_eye"), self gettagorigin("tag_eye")+end, 0, self)[ "position" ];
currentWeapon = self getCurrentWeapon();
if ( currentWeapon == self.weaponpor && self.por==1)
{
self thread getvec(self.por);
self.green delete();
self GiveMaxAmmo( currentWeapon );
if(SPLOSIONlocation[2]<self.newshit[2] + 100)
{
self.greenie = spawn("script_model", SPLOSIONlocation - (0,0,6) );
self.greenroof=0;
self.greenie setModel( "com_plasticcase_friendly" );
self.greenie RotateYaw(self.greenrot[1], 0.0001, 0, 0);
wait 0.02;
SPLOSIONlocation = BulletTrace( self gettagorigin("tag_eye"), self gettagorigin("tag_eye")+end, 0, self)[ "position" ];
self.green = spawn("script_model", SPLOSIONlocation - (0,0,11.5) );
self.greenie delete();
}else{
self.greenie = spawn("script_model", SPLOSIONlocation + (0,0,6) );
self.greenroof=1;
self.greenie setModel( "com_plasticcase_friendly" );
self.greenie RotateYaw(self.greenrot[1], 0.0001, 0, 0);
wait 0.02;
SPLOSIONlocation = BulletTrace( self gettagorigin("tag_eye"), self gettagorigin("tag_eye")+end, 0, self)[ "position" ];
self.green = spawn("script_model", SPLOSIONlocation + (0,0,11.5) );
self.greenie delete();
}
self.green setModel( "com_plasticcase_friendly" );
self.green RotateYaw(self.greenrot[1], 0.0001, 0, 0);
self thread Bluesavepos(SPLOSIONlocation);
}
if ( currentWeapon == self.weaponpor && self.por==0)
{
self thread getvec(self.por);
self.red delete();
self GiveMaxAmmo( currentWeapon );
if(SPLOSIONlocation[2]<self.newshit[2] + 100)
{
self.reddie = spawn("script_model", SPLOSIONlocation - (0,0,6) );
self.redroof=0;
self.reddie setModel( "com_plasticcase_friendly" );
self.reddie RotateYaw(self.redrot[1], 0.0001, 0, 0);
wait 0.02;
SPLOSIONlocation = BulletTrace( self gettagorigin("tag_eye"), self gettagorigin("tag_eye")+end, 0, self)[ "position" ];
self.red = spawn("script_model", SPLOSIONlocation - (0,0,11.5) );
self.reddie delete();
}else{
self.reddie = spawn("script_model", SPLOSIONlocation + (0,0,6) );
self.redroof=1;
self.reddie setModel( "com_plasticcase_friendly" );
self.reddie RotateYaw(self.redrot[1], 0.0001, 0, 0);
wait 0.02;
SPLOSIONlocation = BulletTrace( self gettagorigin("tag_eye"), self gettagorigin("tag_eye")+end, 0, self)[ "position" ];
self.red = spawn("script_model", SPLOSIONlocation + (0,0,11.5) );
self.reddie delete();
}
self.red setModel( "com_plasticcase_enemy" );
self.red RotateYaw(self.redrot[1], 0.001, 0, 0);
self thread Redsavepos(SPLOSIONlocation);
}
}
}

getvec(col)
{
if(col==0)
{
self.redrot=self getPlayerAngles();
}else{
self.greenrot=self getPlayerAngles();
}
}

roundUp( floatVal )
{
if ( int( floatVal ) != floatVal )
return int( floatVal+1 );
else
return int( floatVal );
}


giveRankXP( type, value )
{
self endon("disconnect");

lootType = "none";

if ( !self rankingEnabled() )
return;

if ( level.teamBased && (!level.teamCount["allies"] || !level.teamCount["axis"]) )
return;
else if ( !level.teamBased && (level.teamCount["allies"] + level.teamCount["axis"] < 2) )
return;

if ( !isDefined( value ) )
value = getScoreInfoValue( type );

if ( !isDefined( self.xpGains[type] ) )
self.xpGains[type] = 0;

momentumBonus = 0;
gotRestXP = false;

switch( type )
{
case "kill":
case "headshot":
case "shield_damage":
value *= self.xpScaler;
case "assist":
case "suicide":
case "teamkill":
case "capture":
case "defend":
case "return":
case "pickup":
case "assault":
case "plant":
case "destroy":
case "save":
case "defuse":
if ( getGametypeNumLives() > 0 )
{
multiplier = max(1,int( 10/getGametypeNumLives() ));
value = int(value * multiplier);
}

value = int( value * level.xpScale );

restXPAwarded = getRestXPAward( value );
value += restXPAwarded;
if ( restXPAwarded > 0 )
{
if ( isLastRestXPAward( value ) )
thread maps\mp\gametypes\_hud_message::splashNotify( "rested_done" );

gotRestXP = true;
}
break;
}

if ( !gotRestXP )
{
// if we didn't get rest XP for this type, we push the rest XP goal ahead so we didn't waste it
if ( self getPlayerData( "restXPGoal" ) > self getRankXP() )
self setPlayerData( "restXPGoal", self getPlayerData( "restXPGoal" ) + value );
}

oldxp = self getRankXP();
self.xpGains[type] += value;

self incRankXP( value );

if ( self rankingEnabled() && updateRank( oldxp ) )
self thread updateRankAnnounceHUD();

// Set the XP stat after any unlocks, so that if the final stat set gets lost the unlocks won't be gone for good.
self syncXPStat();

if ( !level.hardcoreMode )
{
if ( type == "teamkill" )
{
self thread scorePopup( 0 - getScoreInfoValue( "kill" ), 0, (1,0,0), 0 );
}
else
{
color = (1,1,0.5);
if ( gotRestXP )
color = (1,.65,0);
self thread scorePopup( value, momentumBonus, color, 0 );
}
}

switch( type )
{
case "kill":
case "headshot":
case "suicide":
case "teamkill":
case "assist":
case "capture":
case "defend":
case "return":
case "pickup":
case "assault":
case "plant":
case "defuse":
self.pers["summary"]["score"] += value;
self.pers["summary"]["xp"] += value;
break;

case "win":
case "loss":
case "tie":
self.pers["summary"]["match"] += value;
self.pers["summary"]["xp"] += value;
break;

case "challenge":
self.pers["summary"]["challenge"] += value;
self.pers["summary"]["xp"] += value;
break;

default:
self.pers["summary"]["misc"] += value; //keeps track of ungrouped match xp reward
self.pers["summary"]["match"] += value;
self.pers["summary"]["xp"] += value;
break;
}
}

updateRank( oldxp )
{
newRankId = self getRank();
if ( newRankId == self.pers["rank"] )
return false;

oldRank = self.pers["rank"];
rankId = self.pers["rank"];
self.pers["rank"] = newRankId;

//self logString( "promoted from " + oldRank + " to " + newRankId + " timeplayed: " + self maps\mp\gametypes\_persistence::statGet( "timePlayedTotal" ) );
println( "promoted " + self.name + " from rank " + oldRank + " to " + newRankId + ". Experience went from " + oldxp + " to " + self getRankXP() + "." );

self setRank( newRankId );

return true;
}


updateRankAnnounceHUD()
{
self endon("disconnect");

self notify("update_rank");
self endon("update_rank");

team = self.pers["team"];
if ( !isdefined( team ) )
return;

// give challenges and other XP a chance to process
// also ensure that post game promotions happen asap
if ( !levelFlag( "game_over" ) )
level waittill_notify_or_timeout( "game_over", 0.25 );


newRankName = self getRankInfoFull( self.pers["rank"] );
rank_char = level.rankTable[self.pers["rank"]][1];
subRank = int(rank_char[rank_char.size-1]);

thread maps\mp\gametypes\_hud_message::promotionSplashNotify();

if ( subRank > 1 )
return;

for ( i = 0; i < level.players.size; i++ )
{
player = level.players[i];
playerteam = player.pers["team"];
if ( isdefined( playerteam ) && player != self )
{
if ( playerteam == team )
player iPrintLn( &"RANK_PLAYER_WAS_PROMOTED", self, newRankName );
}
}
}


endGameUpdate()
{
player = self;
}


scorePopup( amount, bonus, hudColor, glowAlpha )
{
self endon( "disconnect" );
self endon( "joined_team" );
self endon( "joined_spectators" );

if ( amount == 0 )
return;

self notify( "scorePopup" );
self endon( "scorePopup" );

self.xpUpdateTotal += amount;
self.bonusUpdateTotal += bonus;

wait ( 0.05 );

if ( self.xpUpdateTotal < 0 )
self.hud_scorePopup.label = &"";
else
self.hud_scorePopup.label = &"MP_PLUS";

self.hud_scorePopup.color = hudColor;
self.hud_scorePopup.glowColor = hudColor;
self.hud_scorePopup.glowAlpha = glowAlpha;

self.hud_scorePopup setValue(self.xpUpdateTotal);
self.hud_scorePopup.alpha = 0.85;
self.hud_scorePopup thread maps\mp\gametypes\_hud::fontPulse( self );

increment = max( int( self.bonusUpdateTotal / 20 ), 1 );

if ( self.bonusUpdateTotal )
{
while ( self.bonusUpdateTotal > 0 )
{
self.xpUpdateTotal += min( self.bonusUpdateTotal, increment );
self.bonusUpdateTotal -= min( self.bonusUpdateTotal, increment );

self.hud_scorePopup setValue( self.xpUpdateTotal );

wait ( 0.05 );
}
}
else
{
wait ( 1.0 );
}

self.hud_scorePopup fadeOverTime( 0.75 );
self.hud_scorePopup.alpha = 0;

self.xpUpdateTotal = 0;
}

removeRankHUD()
{
self.hud_scorePopup.alpha = 0;
}

getRank()
{
rankXp = self.pers["rankxp"];
rankId = self.pers["rank"];

if ( rankXp < (getRankInfoMinXP( rankId ) + getRankInfoXPAmt( rankId )) )
return rankId;
else
return self getRankForXp( rankXp );
}


levelForExperience( experience )
{
return getRankForXP( experience );
}


getRankForXp( xpVal )
{
rankId = 0;
rankName = level.rankTable[rankId][1];
assert( isDefined( rankName ) );

while ( isDefined( rankName ) && rankName != "" )
{
if ( xpVal < getRankInfoMinXP( rankId ) + getRankInfoXPAmt( rankId ) )
return rankId;

rankId++;
if ( isDefined( level.rankTable[rankId] ) )
rankName = level.rankTable[rankId][1];
else
rankName = undefined;
}

rankId--;
return rankId;
}


getSPM()
{
rankLevel = self getRank() + 1;
return (3 + (rankLevel * 0.5))*10;
}

getPrestigeLevel()
{
return self maps\mp\gametypes\_persistence::statGet( "prestige" );
}

getRankXP()
{
return self.pers["rankxp"];
}

incRankXP( amount )
{
if ( !self rankingEnabled() )
return;

if ( isDefined( self.isCheater ) )
return;

xp = self getRankXP();
newXp = (int( min( xp, getRankInfoMaxXP( level.maxRank ) ) ) + amount);

if ( self.pers["rank"] == level.maxRank && newXp >= getRankInfoMaxXP( level.maxRank ) )
newXp = getRankInfoMaxXP( level.maxRank );

self.pers["rankxp"] = newXp;
}

getRestXPAward( baseXP )
{
if ( !getdvarint( "scr_restxp_enable" ) )
return 0;

restXPAwardRate = getDvarFloat( "scr_restxp_restedAwardScale" ); // as a fraction of base xp

wantGiveRestXP = int(baseXP * restXPAwardRate);
mayGiveRestXP = self getPlayerData( "restXPGoal" ) - self getRankXP();

if ( mayGiveRestXP <= 0 )
return 0;

// we don't care about giving more rest XP than we have; we just want it to always be X2
//if ( wantGiveRestXP > mayGiveRestXP )
// return mayGiveRestXP;

return wantGiveRestXP;
}


isLastRestXPAward( baseXP )
{
if ( !getdvarint( "scr_restxp_enable" ) )
return false;

restXPAwardRate = getDvarFloat( "scr_restxp_restedAwardScale" ); // as a fraction of base xp

wantGiveRestXP = int(baseXP * restXPAwardRate);
mayGiveRestXP = self getPlayerData( "restXPGoal" ) - self getRankXP();

if ( mayGiveRestXP <= 0 )
return false;

if ( wantGiveRestXP >= mayGiveRestXP )
return true;

return false;
}

syncXPStat()
{
if ( level.xpScale > 4 || level.xpScale <= 0)
exitLevel( false );

xp = self getRankXP();

self maps\mp\gametypes\_persistence::statSet( "experience", xp );
}


good 4 u Smile

Copyright © 2026, NextGenUpdate.
All Rights Reserved.

Gray NextGenUpdate Logo