jump-gsc/_jump.gsc
2024-01-03 19:48:41 +01:00

73 lines
1.3 KiB
Plaintext

// Call Of Duty: Modern Warfare 2
init()
{
thread onPlayerConnect();
}
onPlayerConnect()
{
while ( true )
{
level waittill( "connected", player );
if ( player isTestClient() )
{
continue;
}
player notifyOnPlayerCommand( "save_pos", "+melee" );
player notifyOnPlayerCommand( "load_saved_pos", "+activate" );
player thread jumper();
}
}
canInteract( player )
{
return maps\mp\_utility::isReallyAlive( player );
}
canSave( player )
{
if ( !player isOnGround() )
{
player iPrintLn( "Cannot save while in the air\n" );
return false;
}
return true;
}
jumper()
{
self endon ( "disconnect" );
self.jumper_pos = (0, 0, 0);
self.jumper_angles = (0, 0, 0);
self.jumper_pos_num = 0;
while ( true )
{
msg = self common_scripts\utility::waittill_any_return( "save_pos", "load_saved_pos" );
if ( !isDefined( msg ) )
{
continue;
}
if ( msg == "save_pos" && canInteract( self ) && canSave( self ) )
{
self.jumper_pos = self.origin;
self.jumper_angles = self getPlayerAngles();
self.jumper_pos_num += 1;
self iPrintLn( "saved pos ", self.jumper_pos_num, "\n" );
}
else if ( msg == "load_saved_pos" && canInteract( self ) )
{
self setOrigin( self.jumper_pos );
self setVelocity( (0, 0, 0) );
self setPlayerAngles( self.jumper_angles );
self iPrintLn( "loaded pos ", self.jumper_pos_num, "\n" );
}
}
}