SA-MP Forums Archive
[AJUDA] Sistema de contagem. - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [AJUDA] Sistema de contagem. (/showthread.php?tid=270861)



[AJUDA] Sistema de contagem. - Bruno Pereira - 22.07.2011

Ae galera, criei um sistema por exemplo, a arena tem 15 vagas, ai quando o jogador abre ela, automaticamente abre 15 vagas, e cada player que digita /irarena diminui uma vaga, quando acaba as vagas ninguem mais poder ir.

Mas ta dando uns bugs porque isso й mais avanзado doque meu conhecimento mas to tentando aqui desbuguei mas to desde manhг tentando desbugar isso e ta fodaaa!

Meu sistema tem:

/abrirarena

/fechararena

/irarena

/sairarena

Se alguem puder ajudar ou puder criar um simples de exemplo eu agradeceria, obrigado!


Re: [AJUDA] Sistema de contagem. - ViniBorn - 22.07.2011

Que bug tб dando?


Re: [AJUDA] Sistema de contagem. - [S]trong - 22.07.2011

Cade o cуdigo?


Re: [AJUDA] Sistema de contagem. - ViniBorn - 22.07.2011

pawn Код:
new vagas;
new bool:arena = false;
new bool:naarena[MAX_PLAYERS];

if(strcmp(cmdtext, "/abrirarena", true) == 0)
{
    if(arena == true)
        return SendClientMessage(playerid,COR,"A arena jб estб aberta");

    arena = true;
    vagas  = 0;

    return 1;
}

if(strcmp(cmdtext, "/fechararena", true) == 0)
{
    if(arena == false)
        return SendClientMessage(playerid,COR,"A arena nгo estб aberta");

    for(new i=0;i <= MAX_PLAYERS;i++)
        if(naarena[playerid] == true)
            naarena[playerid] = false;

    arena = false;

    return 1;
}

if(strcmp(cmdtext, "/irarena", true) == 0)
{
   
    if(vagas == 15)
        return SendClientMessage(playerid,COR,"A arena jб estб cheia");
    if(arena == false)
        return SendClientMessage(playerid,COR,"A arena nгo estб aberta");
    if(naarena[playerid] == true)
        return SendClientMessage(playerid,COR,"Vocк jб estб na arena");


    //codigo
    vagas++;
    naarena[playerid] = true;

    return 1;
}

if(strcmp(cmdtext, "/sairarena", true) == 0)
{
    if(naarena[playerid] == false)
        return SendClientMessage(playerid,COR,"Vocк nгo estб na arena");


    //codigo
    vagas--;
    naarena[playerid] = false;

    return 1;
}

Acho que й isso que vocк quer.
Й sу ver a questгo do teleporte, e deixar naarena como false assim que o player deslogar.
Nгo esqueзer tambйm de diminuir vagas assim que os jogadores que estiverem na arena e deslogarem.


Re: [AJUDA] Sistema de contagem. - [BEP]AcerPilot - 22.07.2011

Vini, dei uma melhorada no teu cуdigo:

pawn Код:
#include <a_samp>

new vagas;
new bool:naarena[MAX_PLAYERS];

public OnPlayerCommandText(playerid, cmdtext[]) <arena:fechada>
{
    if(strcmp(cmdtext, "/abrirarena", true) == 0)
    {
        state arena:aberta;
        vagas  = 0;
    }

    else if(strcmp(cmdtext, "/irarena", true) == 0)
    {

        if(vagas == 15)
            return SendClientMessage(playerid,COR,"A arena jб estб cheia");
        if(naarena[playerid] == true)
            return SendClientMessage(playerid,COR,"Vocк jб estб na arena");


        //codigo
        vagas++;
        naarena[playerid] = true;

        return 1;
    }
   
    return 0;
}

public OnPlayerCommandText(playerid, cmdtext[]) <arena:aberta>
{
    if(strcmp(cmdtext, "/fechararena", true) == 0)
    {
        for(new i = 0; i < MAX_PLAYERS; i++)
        {
            if(naarena[playerid] == true)
            {
                naarena[playerid] = false;
            }
        }

        state arena:fechada;

        return 1;
    }

    return 0;
}

public OnPlayerCommandText(playerid, cmdtext[]) <>
{
    if(strcmp(cmdtext, "/sairarena", true) == 0)
    {
        if(naarena[playerid] == false)
            return SendClientMessage(playerid,COR,"Vocк nгo estб na arena");


        //codigo
        vagas--;
        naarena[playerid] = false;

        return 1;
    }

    return 0;
}
O ъnico porйm й que quando tu digitar /abrirarena e jб estiver aberta nгo vai avisar, o mesmo com /fechararena, mas o cуdigo й mais limpo no visual e mais rбpido.