feat: release for IW5
This commit is contained in:
117
iw4/scripts/mp/_jump.gsc
Normal file
117
iw4/scripts/mp/_jump.gsc
Normal file
@ -0,0 +1,117 @@
|
||||
// Call Of Duty: Modern Warfare 2
|
||||
|
||||
init()
|
||||
{
|
||||
thread onPlayerConnect();
|
||||
}
|
||||
|
||||
onPlayerConnect()
|
||||
{
|
||||
while ( true )
|
||||
{
|
||||
level waittill( "connected", player );
|
||||
|
||||
if ( isDefined( player.pers["isBot"] ) )
|
||||
{
|
||||
if ( player.pers["isBot"] )
|
||||
{
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
player notifyOnPlayerCommand( "save_pos", "+melee" );
|
||||
player notifyOnPlayerCommand( "load_saved_pos", "+activate" );
|
||||
player thread jumper();
|
||||
player thread displaySpeed();
|
||||
}
|
||||
}
|
||||
|
||||
displaySpeed()
|
||||
{
|
||||
level endon( "game_ended" );
|
||||
self endon( "disconnect" );
|
||||
|
||||
self.speed_text = maps\mp\gametypes\_hud_util::createFontString( "hudsmall" , 1 );
|
||||
self.speed_text maps\mp\gametypes\_hud_util::setPoint( "TOP", "TOP", -2, -2 );
|
||||
self.speed_text.hideWhenInMenu = true;
|
||||
self.speed_text.label = &"";
|
||||
|
||||
self.last_speed_sample = 0;
|
||||
|
||||
while ( true )
|
||||
{
|
||||
player_speed = distance( ( 0, 0, 0 ), self getvelocity() );
|
||||
current_speed = int( player_speed );
|
||||
|
||||
if ( self.last_speed_sample == current_speed )
|
||||
{
|
||||
// White
|
||||
self.speed_text.color = ( 255, 255, 255 );
|
||||
}
|
||||
else if ( self.last_speed_sample > current_speed )
|
||||
{
|
||||
// Slowing down (Red)
|
||||
self.speed_text.color = ( 255, 0, 0 );
|
||||
}
|
||||
else
|
||||
{
|
||||
// Speeding up (Green)
|
||||
self.speed_text.color = ( 0, 255, 0 );
|
||||
}
|
||||
|
||||
self.last_speed_sample = current_speed;
|
||||
|
||||
self.speed_text setValue( current_speed );
|
||||
wait( 0.1 );
|
||||
}
|
||||
}
|
||||
|
||||
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()
|
||||
{
|
||||
level endon( "game_ended ");
|
||||
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" );
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user