new IsPlayerVoted[MAXPLAYERS+1] = {0, ...};
new Handle:g_hSvAlltalk = INVALID_HANDLE;
public OnPluginStart()
{
RegConsoleCmd("sm_alltalk", votealltalk);
RegConsoleCmd("sm_at", votealltalk);
g_hSvAlltalk = FindConVar("sv_alltalk");
}
public Action:votealltalk(client, args)
{
if(client && IsClientInGame(client))
{
IsPlayerVoted[client] = !IsPlayerVoted[client];
new votes;
new client_count;
for(new i = 1; i <= MaxClients; i++)
if(IsClientInGame(i) && !IsFakeClient(i))
{
votes += IsPlayerVoted[i];
client_count++;
}
new votes_needed = RoundFloat(float(client_count)*0.4);
if(votes_needed == 0) votes_needed++;
if(votes >= votes_needed)
SetConVarBool(g_hSvAlltalk, true);
else
SetConVarBool(g_hSvAlltalk, false);
PrintToChatAll("[VoteAllTalk] %N %s за AllTalk! (%d/%d)", client, IsPlayerVoted[client] ? "проголосовал" : "забрал свой голос", votes, votes_needed);
}
return Plugin_Handled;
}
public OnClientConnected(client)
IsPlayerVoted[client] = 0;
public OnClientDisconnect(client)
IsPlayerVoted[client] = 0;