class ACTION_GiveWaveEndCash extends ScriptedAction editinlinenew; function bool InitActionFor(ScriptedController C) { local Controller PC; local int moneyPerPlayer,div; local TeamInfo T; for ( PC = C.Level.ControllerList; PC != none; PC = PC.NextController ) { if ( PC.Pawn != none && PC.PlayerReplicationInfo != none && PC.PlayerReplicationInfo.Team != none ) { T = PC.PlayerReplicationInfo.Team; div++; } } if ( T == none || T.Score <= 0 ) { return false; } moneyPerPlayer = int(T.Score / float(div)); for ( PC = C.Level.ControllerList; PC != none; PC = PC.NextController ) { if ( PC.Pawn != none && PC.PlayerReplicationInfo != none && PC.PlayerReplicationInfo.Team != none ) { if ( div == 1 ) { PC.PlayerReplicationInfo.Score += T.Score; T.Score = 0; } else { PC.PlayerReplicationInfo.Score += moneyPerPlayer; T.Score-=moneyPerPlayer; div--; } if(PlayerController(PC) != none) { PlayerController(PC).ClientPlaySound(class 'CashPickup'.default.PickupSound); PlayerController(PC).ReceiveLocalizedMessage(class 'Msg_CashReward',MoneyPerPlayer); } PC.PlayerReplicationInfo.NetUpdateTime = C.Level.TimeSeconds - 1; if( T.Score <= 0 ) { T.Score = 0; Break; } } } return false; }