diff --git a/iw4/scripts/mp/_jump.gsc b/iw4/scripts/mp/_jump.gsc index c86db2f..483c4a9 100644 --- a/iw4/scripts/mp/_jump.gsc +++ b/iw4/scripts/mp/_jump.gsc @@ -2,6 +2,8 @@ init() { + setDvar( "bg_bounces", 1 ); + thread onPlayerConnect(); } @@ -11,21 +13,61 @@ onPlayerConnect() { level waittill( "connected", player ); - if ( isDefined( player.pers["isBot"] ) ) + if ( player isTestClient() ) { - if ( player.pers["isBot"] ) - { - continue; - } + continue; } player notifyOnPlayerCommand( "save_pos", "+melee" ); player notifyOnPlayerCommand( "load_saved_pos", "+activate" ); + player thread onPlayerSpawned(); + player thread onWeaponFired(); player thread jumper(); player thread displaySpeed(); } } +// deserteagle_mp +// rpg_mp +onPlayerSpawned() +{ + self endon( "disconnect" ); + + for ( ;; ) + { + self waittill( "spawned_player" ); + + self freezeControls( false ); + + self takeAllWeapons(); + + self giveWeapon( "deserteagle_mp" ); + self giveMaxAmmo( "deserteagle_mp" ); + + self giveWeapon( "rpg_mp" ); + self giveMaxAmmo( "rpg_mp" ); + + wait 1; + self switchToWeaponImmediate( "deserteagle_mp" ); + } +} + +onWeaponFired() +{ + level endon( "game_ended" ); + self endon( "disconnected" ); + + for ( ;; ) + { + self waittill( "weapon_fired", weapon ); + + if (weapon == "rpg_mp") + { + self.last_rpg_shot = getTime(); + } + } +} + displaySpeed() { level endon( "game_ended" ); @@ -37,12 +79,30 @@ displaySpeed() self.speed_text.label = &""; self.last_speed_sample = 0; + self.last_z_coordinate = 0.0; while ( true ) { player_speed = distance( ( 0, 0, 0 ), self getvelocity() ); current_speed = int( player_speed ); + if ( self.origin[2] > self.last_z_coordinate ) + { + // We should be going up + if ( isDefined( self.last_rpg_shot ) && self.last_rpg_shot != 0 ) + { + late = getTime() - self.last_rpg_shot; + if (late < 500) + { + iPrintLn( "Late RPG (+" + (late) + ")" ); + } + + self.last_rpg_shot = 0; + } + } + + self.last_z_coordinate = self.origin[2]; + if ( self.last_speed_sample == current_speed ) { // White