Vote% Logging

This commit is contained in:
ChocoTaco1 2021-01-09 14:14:15 -05:00
parent 0941841a18
commit 73ee6d7072
2 changed files with 83 additions and 1 deletions

View file

@ -85,6 +85,34 @@ function voteLog(%client, %typeName, %arg1, %arg2, %arg3, %arg4)
}
}
// votePercentLog(%client, %typeName, %key, %game.votesFor[%game.kickTeam], %game.votesAgainst[%game.kickTeam], %totalVotes, %game.totalVotesNone)
// Info: Logs voting percent events
function votePercentLog(%display, %typeName, %key, %voteYay, %voteNay, %voteTotal, %voteNone) //%voteNone = Did Not Vote (DNV)
{
if($Host::ClassicVoteLog)
{
// Dif calc for "VoteKickPlayer"
if(%typeName $= "VoteKickPlayer")
{
%percent = mFloor((%voteYay/ClientGroup.getCount()) * 100);
%voteNone = "N/A";
%display = %typeName SPC "[" @ %display.nameBase @ "]";
}
else
{
%percent = mFloor((%voteYay/(ClientGroup.getCount() - %voteNone)) * 100);
%display = %typeName SPC "[" @ %display @ "]";
}
$VoteLog = "[" @ %key @ "]" SPC %display SPC "Yay[" @ %voteYay @ "] Nay[" @ %voteNay @ "] Total[" @ %voteTotal @ "] Vote%[" @ %percent @ "] DNV[" @ %voteNone @ "]";
// this is the info that will be logged
%logpath = $Host::ClassicVoteLogPath;
export("$VoteLog", %logpath, true);
logEcho($VoteLog);
}
}
// From Goon
// Slightly more elegant solution rather than spamming console
function ClassicChatLog(%client, %id, %team, %msg)

View file

@ -704,6 +704,7 @@ function DefaultGame::cancelMatchStart(%game, %admin)
function DefaultGame::voteKickPlayer(%game, %admin, %client)
{
%cause = "";
%typeName = "VoteKickPlayer";
if(isObject(%admin))
{
@ -718,6 +719,8 @@ function DefaultGame::voteKickPlayer(%game, %admin, %client)
{
kick(%client, %admin, %game.kickGuid);
%cause = "(vote)";
%key = "Passed";
}
else
{
@ -728,9 +731,13 @@ function DefaultGame::voteKickPlayer(%game, %admin, %client)
if (%cl.team == %game.kickTeam && !%cl.isAIControlled())
messageClient( %cl, 'MsgVoteFailed', '\c2Kick player vote did not pass.' );
}
%key = "Failed";
}
}
//Log Vote %
votePercentLog(%client, %typeName, %key, %game.votesFor[%game.kickTeam], %game.votesAgainst[%game.kickTeam], %totalVotes, %game.totalVotesNone);
%game.kickTeam = "";
%game.kickGuid = "";
%game.kickClientName = "";
@ -742,6 +749,8 @@ function DefaultGame::voteKickPlayer(%game, %admin, %client)
//------------------------------------------------------------------------------
function DefaultGame::voteChangeMission(%game, %admin, %missionDisplayName, %typeDisplayName, %missionId, %missionTypeId)
{
%typeName = "VoteChangeMission";
%mission = $HostMissionFile[%missionId];
if ( %mission $= "" )
{
@ -770,17 +779,30 @@ function DefaultGame::voteChangeMission(%game, %admin, %missionDisplayName, %typ
if(%totalVotes > 0 && (%game.totalVotesFor / (ClientGroup.getCount() - $HostGameBotCount - %game.totalVotesNone)) > ($Host::VotePasspercent / 100))
{
messageAll('MsgVotePassed', '\c2The mission was changed to %1 (%2) by vote.', %missionDisplayName, %typeDisplayName );
//Log Vote % - Must be before Game Over
%key = "Passed";
votePercentLog(%missionDisplayName, %typeName, %key, %game.totalVotesFor, %game.totalVotesAgainst, %totalVotes, %game.totalVotesNone);
%game.gameOver();
loadMission( %mission, %missionType, false );
}
else
{
messageAll('MsgVoteFailed', '\c2Change mission vote did not pass: %1 percent.', mFloor(%game.totalVotesFor/(ClientGroup.getCount() - $HostGameBotCount - %game.totalVotesNone) * 100));
//Log Vote %
%key = "Failed";
votePercentLog(%missionDisplayName, %typeName, %key, %game.totalVotesFor, %game.totalVotesAgainst, %totalVotes, %game.totalVotesNone);
}
}
}
//------------------------------------------------------------------------------
function DefaultGame::voteTournamentMode( %game, %admin, %missionDisplayName, %typeDisplayName, %missionId, %missionTypeId )
{
%typeName = "VoteTournamentMode";
%mission = $HostMissionFile[%missionId];
if ( %mission $= "" )
{
@ -808,10 +830,21 @@ function DefaultGame::voteTournamentMode( %game, %admin, %missionDisplayName, %t
if(%totalVotes > 0 && (%game.totalVotesFor / (ClientGroup.getCount() - $HostGameBotCount - %game.totalVotesNone)) > ($Host::VotePasspercent / 100))
{
messageAll('MsgVotePassed', '\c2Server switched to Tournament mode by vote (%1): %2 percent.', %missionDisplayName, mFloor(%game.totalVotesFor/(ClientGroup.getCount() - $HostGameBotCount - %game.totalVotesNone) * 100));
//Log Vote % - Must be before Game Over
%key = "Passed";
votePercentLog(%missionDisplayName, %typeName, %key, %game.totalVotesFor, %game.totalVotesAgainst, %totalVotes, %game.totalVotesNone);
setModeTournament( %mission, %missionType );
}
else
messageAll('MsgVoteFailed', '\c2Tournament mode vote did not pass: %1 percent.', mFloor(%game.totalVotesFor/(ClientGroup.getCount() - $HostGameBotCount - %game.totalVotesNone) * 100));
{
//Log Vote %
%key = "Failed";
votePercentLog(%missionDisplayName, %typeName, %key, %game.totalVotesFor, %game.totalVotesAgainst, %totalVotes, %game.totalVotesNone);
messageAll('MsgVoteFailed', '\c2Tournament mode vote did not pass: %1 percent.', mFloor(%game.totalVotesFor/(ClientGroup.getCount() - $HostGameBotCount - %game.totalVotesNone) * 100));
}
}
if(%cause !$= "")
@ -821,6 +854,8 @@ function DefaultGame::voteTournamentMode( %game, %admin, %missionDisplayName, %t
//------------------------------------------------------------------------------
function DefaultGame::voteChangeTimeLimit( %game, %admin, %newLimit )
{
%typeName = "VoteChangeTimeLimit";
if( %newLimit == 999 )
%display = "unlimited";
else
@ -844,13 +879,19 @@ function DefaultGame::voteChangeTimeLimit( %game, %admin, %newLimit )
ResetVOTimeChanged(%game);
// Reset the voted time limit when changing mission
$TimeLimitChanged = 1;
%key = "Passed";
}
else
{
messageAll('MsgVoteFailed', '\c2The vote to change the mission time limit did not pass: %1 percent.', mFloor(%game.totalVotesFor/(ClientGroup.getCount() - $HostGameBotCount - %game.totalVotesNone) * 100));
// VoteOvertime
ResetVOall(%game);
%key = "Failed";
}
//Log Vote %
votePercentLog(%newLimit, %typeName, %key, %game.totalVotesFor, %game.totalVotesAgainst, %totalVotes, %game.totalVotesNone);
}
//if the match has been started, reset the end of match countdown
@ -894,6 +935,8 @@ function DefaultGame::voteFFAMode( %game, %admin, %client )
function DefaultGame::voteSkipMission(%game, %admin, %arg1, %arg2, %arg3, %arg4)
{
%typeName = "VoteSkipMission";
if(isObject(%admin))
{
messageAll('MsgAdminForce', '\c2The Admin %1 has skipped to the next mission.',%admin.name );
@ -908,13 +951,24 @@ function DefaultGame::voteSkipMission(%game, %admin, %arg1, %arg2, %arg3, %arg4)
if(%totalVotes > 0 && (%game.totalVotesFor / (ClientGroup.getCount() - $HostGameBotCount - %game.totalVotesNone)) > ($Host::VotePasspercent / 100))
{
messageAll('MsgVotePassed', '\c2The mission was skipped to next by vote.');
//Log Vote % - Must be before Game Over
%key = "Passed";
votePercentLog("N/A", %typeName, %key, %game.totalVotesFor, %game.totalVotesAgainst, %totalVotes, %game.totalVotesNone);
echo("mission skipped (vote)");
%game.gameOver();
//loadMission( findNextCycleMission(), $CurrentMissionType, false );
cycleMissions();
}
else
{
messageAll('MsgVoteFailed', '\c2Skip mission vote did not pass: %1 percent.', mFloor(%game.totalVotesFor/(ClientGroup.getCount() - $HostGameBotCount - %game.totalVotesNone) * 100));
//Log Vote %
%key = "Failed";
votePercentLog("N/A", %typeName, %key, %game.totalVotesFor, %game.totalVotesAgainst, %totalVotes, %game.totalVotesNone);
}
}
}