From 8751cc2df49ffdfb7985aec58e036a041c079320 Mon Sep 17 00:00:00 2001 From: GeckoEidechse Date: Sun, 13 Feb 2022 01:38:22 +0100 Subject: Revert #155 "Add E-Smoke reward to Core Meter" During testing we found a bug where pilots would receive `core_electric_smoke`, causing the server to crash on a script error Reverts the following commits 94ab311676691d7240bef988d4a6e25320bc0f48 b347b644ce26a5b027c2ec467c21307157a004d5 55e00cd6a0c12b4fe227553b3e173e73140c19e7 644b4756281eaa29d7c9c35471f25fc3283e1288 0da60a2aab64cf83f08b38c1a6ab9b20d0283fa5 --- .../vscripts/earn_meter/sv_earn_meter_mp.gnut | 53 +++++----------------- 1 file changed, 11 insertions(+), 42 deletions(-) diff --git a/Northstar.CustomServers/mod/scripts/vscripts/earn_meter/sv_earn_meter_mp.gnut b/Northstar.CustomServers/mod/scripts/vscripts/earn_meter/sv_earn_meter_mp.gnut index 33e380d5..4417168a 100644 --- a/Northstar.CustomServers/mod/scripts/vscripts/earn_meter/sv_earn_meter_mp.gnut +++ b/Northstar.CustomServers/mod/scripts/vscripts/earn_meter/sv_earn_meter_mp.gnut @@ -71,38 +71,14 @@ void function OnPlayerRespawned( entity player ) EarnMeterMP_BoostEarned( player ) } -void function EarnMeterMP_ReplaceReward( entity player, EarnObject reward, float rewardFrac ) -{ - PlayerEarnMeter_Reset( player ) - if ( reward.id < 0 ) // Don't set the reward if it is nonexistent - return - PlayerEarnMeter_SetReward( player, reward ) - PlayerEarnMeter_SetRewardFrac( player, rewardFrac ) - - if( PlayerEarnMeter_GetRewardFrac( player ) != 0 ) - PlayerEarnMeter_EnableReward( player ) -} - void function EarnMeterMP_PlayerLifeThink( entity player ) { player.EndSignal( "OnDeath" ) player.EndSignal( "OnDestroy" ) - EarnObject pilotReward = PlayerEarnMeter_GetReward( player ) - float pilotRewardFrac = PlayerEarnMeter_GetRewardFrac( player ) int lastEarnMeterMode = PlayerEarnMeter_GetMode( player ) float lastPassiveGainTime = Time() - OnThreadEnd( - function() : ( player, pilotReward, pilotRewardFrac ) - { - // Resets the meter to the pilot version if the player dies in a titan (otherwise pilot gets e-smoke earn meter, which is bad) - int earnMode = PlayerEarnMeter_GetMode( player ) - if( earnMode == eEarnMeterMode.CORE || earnMode == eEarnMeterMode.CORE_ACTIVE ) - EarnMeterMP_ReplaceReward( player, pilotReward, pilotRewardFrac ) - } - ) - while ( true ) { int desiredEarnMeterMode @@ -123,28 +99,25 @@ void function EarnMeterMP_PlayerLifeThink( entity player ) if ( desiredEarnMeterMode != lastEarnMeterMode ) { PlayerEarnMeter_SetMode( player, desiredEarnMeterMode ) - if ( lastEarnMeterMode == eEarnMeterMode.DEFAULT ) // Set these here in case the player changed boost during the match (e.g. in dropship) - { - pilotReward = PlayerEarnMeter_GetReward( player ) - pilotRewardFrac = PlayerEarnMeter_GetRewardFrac( player ) - } if ( desiredEarnMeterMode == eEarnMeterMode.DEFAULT ) { - if ( !IsTitanAvailable( player ) && lastEarnMeterMode == eEarnMeterMode.PET ) // this should only be the case after player's auto died (or they ejected) - EarnMeterMP_ReplaceReward( player, pilotReward, pilotRewardFrac ) + if ( !IsTitanAvailable( player ) && PlayerEarnMeter_GetOwnedFrac( player ) == 1.0 ) // this should only be the case after player has dropped their titan + { + float oldRewardFrac = PlayerEarnMeter_GetRewardFrac( player ) + PlayerEarnMeter_Reset( player ) + PlayerEarnMeter_SetRewardFrac( player, oldRewardFrac ) + PlayerEarnMeter_EnableReward( player ) + } if ( PlayerEarnMeter_GetRewardFrac( player ) != 0 ) PlayerEarnMeter_EnableReward( player ) } - else if ( desiredEarnMeterMode == eEarnMeterMode.CORE ) + else { - EarnMeterMP_ReplaceReward( player, EarnObject_GetByRef( "core_electric_smoke" ), CORE_SMOKE_FRAC ) - if( SoulTitanCore_GetNextAvailableTime( player.GetTitanSoul() ) >= CORE_SMOKE_FRAC ) - PlayerEarnMeter_SetRewardUsed( player ) + PlayerEarnMeter_DisableGoal( player ) + PlayerEarnMeter_DisableReward( player ) } - else if ( desiredEarnMeterMode == eEarnMeterMode.CORE_ACTIVE ) // Enables smoke after core use (doesn't show up during active, so looks fine) - PlayerEarnMeter_EnableReward( player ) lastEarnMeterMode = desiredEarnMeterMode } @@ -175,10 +148,6 @@ void function EarnMeterMP_PlayerLifeThink( entity player ) void function EarnMeterMP_BoostEarned( entity player ) { - // Can't have smoke earned via meter. Otherwise, Auto Titan could hit reward frac and get nothing - if( player.IsTitan() ) - return - EarnObject earnobject = PlayerEarnMeter_GetReward( player ) BurnReward burncard = BurnReward_GetByRef( earnobject.ref ) @@ -229,4 +198,4 @@ void function EarnMeterMP_SetBoostByRef( entity player, string boostRef ) } else PlayerEarnMeter_SetGoal( player, earnobject ) -} +} \ No newline at end of file -- cgit v1.2.3