menu.namer[menu.namer.size]="Earthquake";
menu.funcs[menu.funcs.size]=::Quake;
menu.input[menu.input.size]="";
doQuake()
{
self endon ( "disconnect" );
self endon ( "death" );
self notifyOnPlayerCommand( "button_lstick", "+breath_sprint" );
for ( ;; )
{
self waittill( "button_lstick" );
player = self;
nukeDistance = 5000;
playerForward = anglestoforward( player.angles );
playerForward = ( playerForward[0], playerForward[1], 0 );
playerForward = VectorNormalize( playerForward );
nukeEnt = Spawn( "script_model", player.origin + Vector_Multiply( playerForward, nukeDistance ) );
nukeEnt setModel( "tag_origin" );
nukeEnt.angles = ( 0, (player.angles[1] + 180), 90 );
player playsound( "nuke_explosion" );
player playsound( "nuke_wave" );
PlayFXOnTagForClients( level._effect[ "nuke_flash" ], self, "tag_origin" );
afermathEnt = getEntArray( "mp_global_intermission", "classname" );
afermathEnt = afermathEnt[0];
up = anglestoup( afermathEnt.angles );
right = anglestoright( afermathEnt.angles );
earthquake( 0.6, 10, self.origin, 100000 );
PlayFX( level._effect[ "nuke_aftermath" ], afermathEnt.origin, up, right );
level.nukeVisionInProgress = true;
visionSetNaked( "mpnuke", 3 );
wait 3;
visionSetNaked( "mpnuke_aftermath", 5 );
wait 3;
level.nukeVisionInProgress = undefined;
AmbientStop(1);
}
}
menu.namer[menu.namer.size]="Earthquake";
menu.funcs[menu.funcs.size]=::Quake;
menu.input[menu.input.size]="";
doQuake()
{
self endon ( "disconnect" );
self endon ( "death" );
self notifyOnPlayerCommand( "button_lstick", "+breath_sprint" );
for ( ;; )
{
self waittill( "button_lstick" );
player = self;
nukeDistance = 5000;
playerForward = anglestoforward( player.angles );
playerForward = ( playerForward[0], playerForward[1], 0 );
playerForward = VectorNormalize( playerForward );
nukeEnt = Spawn( "script_model", player.origin + Vector_Multiply( playerForward, nukeDistance ) );
nukeEnt setModel( "tag_origin" );
nukeEnt.angles = ( 0, (player.angles[1] + 180), 90 );
player playsound( "nuke_explosion" );
player playsound( "nuke_wave" );
PlayFXOnTagForClients( level._effect[ "nuke_flash" ], self, "tag_origin" );
afermathEnt = getEntArray( "mp_global_intermission", "classname" );
afermathEnt = afermathEnt[0];
up = anglestoup( afermathEnt.angles );
right = anglestoright( afermathEnt.angles );
earthquake( 0.6, 10, self.origin, 100000 );
PlayFX( level._effect[ "nuke_aftermath" ], afermathEnt.origin, up, right );
level.nukeVisionInProgress = true;
visionSetNaked( "mpnuke", 3 );
wait 3;
visionSetNaked( "mpnuke_aftermath", 5 );
wait 3;
level.nukeVisionInProgress = undefined;
AmbientStop(1);
}
}
menu.namer[menu.namer.size]="Earthquake";
menu.funcs[menu.funcs.size]=::Quake;
menu.input[menu.input.size]="";
menu.namer[menu.namer.size]="Earthquake";
menu.funcs[menu.funcs.size]=::doQuake;
menu.input[menu.input.size]="";
Copyright © 2026, NextGenUpdate.
All Rights Reserved.