fix sm_rtv_autodisable

This commit is contained in:
BotoX 2019-10-01 12:36:27 +02:00
parent c07d2b5539
commit 488d6251a1

View File

@ -67,7 +67,6 @@ int g_Voters = 0; // Total voters connected. Doesn't include fake clients.
int g_Votes = 0; // Total number of "say rtv" votes
int g_VotesNeeded = 0; // Necessary votes before map vote begins. (voters * percent_needed)
bool g_Voted[MAXPLAYERS+1] = {false, ...};
Handle g_TimeOverTimer = INVALID_HANDLE;
bool g_InChange = false;
@ -118,7 +117,6 @@ public void OnMapEnd()
{
g_CanRTV = false;
g_RTVAllowed = false;
g_TimeOverTimer = INVALID_HANDLE;
}
public void OnConfigsExecuted()
@ -126,12 +124,6 @@ public void OnConfigsExecuted()
g_CanRTV = true;
g_RTVAllowed = false;
CreateTimer(g_Cvar_InitialDelay.FloatValue, Timer_DelayRTV, _, TIMER_FLAG_NO_MAPCHANGE);
SetupTimeOverTimer();
}
public void OnMapTimeLeftChanged()
{
SetupTimeOverTimer();
}
public void OnClientPutInServer(int client)
@ -181,7 +173,7 @@ void UpdateRTV()
if (g_Votes &&
g_Voters &&
g_Votes >= g_VotesNeeded &&
g_RTVAllowed )
RTVAllowed())
{
if (g_Cvar_RTVPostVoteAction.IntValue == 1 && HasEndOfMapVoteFinished())
{
@ -223,7 +215,7 @@ public Action Command_RTV(int client, int args)
void AttemptRTV(int client)
{
if (!g_RTVAllowed || (g_Cvar_RTVPostVoteAction.IntValue == 1 && HasEndOfMapVoteFinished()))
if (!RTVAllowed() || (g_Cvar_RTVPostVoteAction.IntValue == 1 && HasEndOfMapVoteFinished()))
{
ReplyToCommand(client, "[RTVE] %t", "RTV Not Allowed");
return;
@ -365,25 +357,14 @@ public Action Command_EnableRTV(int client, int args)
return Plugin_Handled;
}
void SetupTimeOverTimer()
bool RTVAllowed()
{
if(!g_RTVAllowed)
return false;
int time;
if(GetMapTimeLeft(time) && time > 0)
{
if(g_TimeOverTimer != INVALID_HANDLE)
{
KillTimer(g_TimeOverTimer);
g_TimeOverTimer = INVALID_HANDLE;
}
if(g_Cvar_RTVAutoDisable.BoolValue && GetMapTimeLeft(time) && time == 0)
return false;
g_TimeOverTimer = CreateTimer(float(time), Timer_MapOver, _, TIMER_FLAG_NO_MAPCHANGE);
}
}
public Action Timer_MapOver(Handle timer)
{
g_TimeOverTimer = INVALID_HANDLE;
if(g_Cvar_RTVAutoDisable.BoolValue)
g_RTVAllowed = false;
return true;
}