help with vote to give all health !!!
#8

Try this:

pawn Код:
#include <a_samp>
#define COLOR 0x0000FFFF

new PlayerHasVoted[MAX_PLAYERS], Votes, IsVoteRunning, VoteTimer;

public OnFilterScriptInit()
{
    return 1;
}

public OnFilterScriptExit()
{
    return 1;
}

public OnPlayerConnect(playerid)
{
    PlayerHasVoted[playerid] = 0;
    return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
    if(PlayerHasVoted[playerid] == 1)
    {
        PlayerHasVoted[playerid] = 0;
        Votes --;
    }
    return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
    if(strcmp("/hl", cmdtext, true) == 0)
    {
        if(IsVoteRunning == 1)
        {
            SendClientMessage(playerid, COLOR, "There is another vote running!");
            return 1;
        }
        else
        {
            new Name[MAX_PLAYER_NAME], string[256];
            GetPlayerName(playerid, Name, sizeof(Name));
            format(string, sizeof(string), "%s is voting to heal everyone, type /vote to vote!", Name);
            SendClientMessageToAll(COLOR, string);
            IsVoteRunning = 1;
            VoteTimer = SetTimer("VoteFunction", 60000, false); // After 1 minute
        }
        return 1;
    }
    if(strcmp("/vote", cmdtext, true) == 0)
    {
        if(IsVoteRunning == 0)
        {
            SendClientMessage(playerid, COLOR, "There is no vote running!");
        }
        else if(PlayerHasVoted[playerid] == 1)
        {
            SendClientMessage(playerid, COLOR, "You have already voted!");
        }
        else
        {
            new Name[MAX_PLAYER_NAME], string[64];
            PlayerHasVoted[playerid] = 1;
            Votes ++;
            format(string, sizeof(string), "%s has voted (%d/7)!", Name, Votes);
            SendClientMessageToAll(COLOR, string);
            if(Votes == 7)
            {
                KillTimer(VoteTimer);
                IsVoteRunning = 0;
                Votes = 0;
                for(new i = 0; i < MAX_PLAYERS; i++)
                {
                    if(PlayerHasVoted[i] == 1)
                    {
                        PlayerHasVoted[i] = 0;
                    }
                    SetPlayerHealth(i, 100.0);
                }
                SendClientMessageToAll(COLOR, "Votes have reached 7! Everyone's health has been restored!");
            }
        }
    }
    return 0;
}

forward VoteFunction();
public VoteFunction() // Here 1 minute has passed and vote is ending.
{
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
        if(PlayerHasVoted[i] == 1)
        {
            PlayerHasVoted[i] = 0;
        }
    }
    new string[256];
    format(string, sizeof(string), "TIMEOUT! 60 seconds have passed and we got only %d vote(s)", Votes);
    SendClientMessageToAll(COLOR, string);
    IsVoteRunning = 0;
    Votes = 0;
    return 1;
}
Reply


Messages In This Thread

Forum Jump:


Users browsing this thread: 2 Guest(s)