TacoServer/autoexec/TeamBalanceNotify.cs

78 lines
2.6 KiB
C#
Raw Normal View History

2018-06-28 18:34:52 +00:00
//Give the client a notification on the current state of balancing.
//This function is in GetTeamCounts( %game, %client, %respawn ) GetTeamCounts.cs
function TeamBalanceNotify::AtSpawn( %game, %client, %respawn )
{
//Call for a GetTeamCount update
//GetTeamCounts( %game, %client, %respawn );
//evoplayercount does not count yourself
//variables
//%balancedifference = 2; //player difference you want to allow before sending notifications between teams.
//%Team1Difference = $PlayerCount[1] - $PlayerCount[2];
//%Team2Difference = $PlayerCount[2] - $PlayerCount[1];
//echo ("%Team1Difference " @ %Team1Difference);
//echo ("%Team2Difference " @ %Team2Difference);
//Are teams unbalanced?
if( $PlayerCount[1] !$= $PlayerCount[2] ) {
//Reset Balanced
$BalancedCount = 0;
if( ($PlayerCount[1] - $PlayerCount[2]) >= 2 || ($PlayerCount[2] - $PlayerCount[1]) >= 2 ) {
//Has the client gotten the notification already
if($TeamBalanceNotifyCount !$= 1) {
//If unbalanced, send a notification. Will continue to send notifications until teams are balanced.
messageAll('MsgTeamBalanceNotify', '\c1Teams are unbalanced.');
2018-06-28 18:34:52 +00:00
//Only get the notification once per spawn.
$TeamBalanceNotifyCount = 1;
//Reset Stat
$StatsBalanceCount = 0;
}
}
}
else
//If teams are balanced and teams dont equal 0.
if( $PlayerCount[1] == $PlayerCount[2] && $TotalTeamPlayerCount !$= 0 ) {
//Has the client gotten the notification already
if($BalancedCount !$= 1) {
//If balanced, send a notification.
messageAll('MsgTeamBalanceNotify', '\c1Teams are balanced.');
2018-06-28 18:34:52 +00:00
//Only get the balance notification once.
$BalancedCount = 1;
//Reset Unbalanced
$TeamBalanceNotifyCount = 0;
//Reset Stat
$StatsBalanceCount = 0;
}
}
//3 or more difference gets a count notify
if( ($PlayerCount[1] - $PlayerCount[2]) >= 3 || ($PlayerCount[2] - $PlayerCount[1]) >= 3 ) {
//Run it once
if($StatsBalanceCount !$= 1) {
messageAll('MsgTeamBalanceNotify', '\c1It is currently %1 vs %2 with %3 observers.', $PlayerCount[1], $PlayerCount[2], $PlayerCount[0] );
2018-06-28 18:34:52 +00:00
$StatsBalanceCount = 1;
}
}
}
//Called in CTFGame::flagCap in evo CTFGame.ovl
//Allows for another unbalanced notification everytime the flag is capped.
2018-06-28 18:34:52 +00:00
function ResetUnbalancedNotifyPerCap()
{
$TeamBalanceNotifyCount = 0;
$StatsBalanceCount = 0;
}
//Reset Notify at defaultgame::gameOver in evo defaultgame.ovl
function ResetTeamBalanceNotifyGameOver( %game ) {
2018-06-28 18:34:52 +00:00
//Reset TeamBalance Variables
$BalancedCount = -1;
$TeamBalanceNotifyCount = -1;
$StatsBalanceCount = -1;
}