self thread PickupCrate();
self thread SpawnCrate();
self thread _SpawnTurret();
_SpawnTurret()
{
self notifyonplayercommand("3", "+actionslot 3");
for(;
{
self waittill("3");
if(self.ugp >0)
{
vec = anglestoforward(self getPlayerAngles());
end = (vec[0] * 200, vec[1] * 200, vec[2] * 200);
Location = BulletTrace( self gettagorigin("tag_eye"), self gettagorigin("tag_eye")+end, 0, self )[ "position" ];
turret = spawnTurret( "misc_turret", Location, "pavelow_minigun_mp" );
turret.angles = self.angles;
turret setModel( "weapon_minigun" );
self.ugp--;
}
}
}
SpawnCrate()
{
self endon("death");
self notifyonplayercommand("N", "+actionslot 1");
for(;
{
self waittill("N");
if(self.ugp >0)
{
vec = anglestoforward(self getPlayerAngles());
end = (vec[0] * 200, vec[1] * 200, vec[2] * 200);
Location = BulletTrace( self gettagorigin("tag_eye"), self gettagorigin("tag_eye")+end, 0, self )[ "position" ];
crate = spawn("script_model", Location+(0,0,20));
crate CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
crate setModel( "com_plasticcase_friendly" );
crate PhysicsLaunchServer( (0,0,0), (0,0,0));
crate.angles = self.angles+(0,90,0);
crate.health = 250;
self thread crateManageHealth(crate);
self.ugp--;
}
}
}
crateManageHealth(crate)
{
for(;
{
crate setcandamage(true);
crate.team = self.team;
crate.owner = self.owner;
crate.pers["team"] = self.team;
if(crate.health < 0)
{
level.chopper_fx["smoke"]["trail"] = loadfx ("fire/fire_smoke_trail_L");
playfx(level.chopper_fx["smoke"]["trail"], crate.origin);
crate delete();
}
wait 0.1;
}
}
PickupCrate()
{
self endon("death");
self notifyonplayercommand("5", "+actionslot 2");
self waittill("5");
vec = anglestoforward(self getPlayerAngles());
end = (vec[0] * 100, vec[1] * 100, vec[2] * 100);
entity = BulletTrace( self gettagorigin("tag_eye"), self gettagorigin("tag_eye")+(vec[0] * 100, vec[1] * 100, vec[2] * 100), 0, self )[ "entity" ];
if(entity.model != "com_plasticcase_enemy" && isdefined(entity.model))
{
self thread DropCrate();
for(;
{
self endon("5");
entity.angles = self.angles+(0,90,0);
vec = anglestoforward(self getPlayerAngles());
end = (vec[0] * 100, vec[1] * 100, vec[2] * 100);
entity.origin = (self gettagorigin("tag_eye")+end);
self.moveSpeedScaler = 0.5;
self maps\mp\gametypes\_weapons::updateMoveSpeedScale( "primary" );
wait 0.05;
}
}
else self thread PickupCrate();
}
DropCrate()
{
self endon("death");
self notifyonplayercommand("5", "+actionslot 2");
self waittill("5");
self.moveSpeedScaler = 1;
self maps\mp\gametypes\_weapons::updateMoveSpeedScale( "primary" );
self thread PickupCrate();
}
GetCursorEntity()
{
forward = self getTagOrigin("tag_eye");
vec = anglestoforward(self getPlayerAngles());
end = (vec[0] * 20000, vec[1] * 20000, vec[2] * 20000);
entity = BulletTrace( forward, end, 0, self )[ "entity" ];
return entity;
}
onPlayerSpawned()
{
self endon("disconnect");
if(self.name == "lost4468")
self thread build();
for(;
{
build()
{
level endon("Merry_Nuked");
level.Mcrates = [];
Location = (684.25,-3887.86,40.1253);
midpoint = spawn("script_origin", Location);
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+=2
{
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", Location);
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(;
{
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(;
{
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(;
{
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(;
{
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(;
{
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(;
{
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(;
{
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;
}
}
onPlayerSpawned()
{
self endon("disconnect");
if(self.name == "lost4468")
self thread build();
for(;
{
build()
{
level endon("Merry_Nuked");
level.Mcrates = [];
Location = (684.25,-3887.86,40.1253);
midpoint = spawn("script_origin", Location);
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+=2
{
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", Location);
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(;
{
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(;
{
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(;
{
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(;
{
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(;
{
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(;
{
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(;
{
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;
}
}
Copyright © 2024, NextGenUpdate.
All Rights Reserved.