[Ajuda] Bugando no ID 0
#1

Olб estou um erro horrivel, estava testando meu sistema de X1, mas tem um problema. e й neste CMD:

pawn Код:
if(strcmp(cmd, "/desafiar", true) == 0)
        {
        if(IsPlayerConnected(playerid))
        {
            new para1;
            para1 = strval(tmp);
            tmp = strtok(cmdtext, idx);
            para1 = ReturnUser(tmp);
            if(!strlen(tmp))
            {
                SendClientMessage(playerid, COLOR_GRAD1, "*ESCREVA: /desafiar [id] [quantia]");
                return 1;
            }
            GetPlayerName(para1, giveplayer, sizeof(giveplayer));
            GetPlayerName(playerid, sendername, sizeof(sendername));
            if(IsPlayerConnected(para1))
            {
                if(para1 != INVALID_PLAYER_ID)
                {
                if (ProxDetectorS(5.0, playerid, para1))
                {
                if(PlayerToPoint(25.0,playerid,1378.3489,-1753.1702,14.1406))
                {
                if (para1 == playerid)
                {
                    SendClientMessage(playerid, COLOR_WHITE, "Vocк nгo pode desafiar a si mesmo.");
                    return 1;
                }
                new valor;
                tmp = strtok(cmdtext, idx);
                valor = strval(tmp);
                moneys = strval(tmp);
                if(!strlen(tmp))
                {
                SendClientMessage(playerid, COLOR_GRAD1, "*ESCREVA: /desafiar [id] [quantia]");
                return 1;
                }
                if(valor > GetPlayerMoney(playerid) || valor > GetPlayerMoney(giveplayerid))
                {
                SendClientMessage(playerid,COLOR_GREY,"Vocк ou o Adversario nгo possuiem esta quantia.");
                return 1;
                }
                if(moneys < 10000) { SendClientMessage(playerid, COLOR_GREY, "   Seu contrato nгo pode ser menor que 10000"); return 1; }
                if(desafiando == 1)
                {
                SendClientMessage(playerid, COLOR_WHITE, "*ERRO: Jб hб um desafio em andamento, ou alguйm jб desafiou outra pessoa. Tente mais tarde.");
                return 1;
                }
                SendClientMessage(playerid,COLOR_GRAD2,"Vocк desafiou o player!");
                format(string, sizeof(string), "*CENTRAL-x1: %s te desafiou para um X1 no valor de $%d! Caso aceite digite: /aceitarx1 ou /recusarx1",PlayerName(playerid),valor);
                SendClientMessage(para1, COLOR_YELLOW,string);
                desafiante = playerid; desafiado = giveplayerid;
                PlayerInfo[para1][pValorx1] = valor;
                PlayerInfo[playerid][pValorx1] = valor;
                NikoInfo[playerid][desafianter] = 1;
                NikoInfo[para1][desafiador] = 1;
                desafiando = 1;
                }
            }
        else
        {
         SendClientMessage(playerid, COLOR_WHITE, "O Jogador nгo estб perto de vocк.");
                }
        }
        }
        return 1;
    }
}
O problema й, quando o ID 0 desafia alguйm, e o player aceita o desafio, em vez de ir o ID 0 vs Outro ID, vai ID 0 vs ID 0, e isso apenas acontece com o mesmo, pois testei com outros IDs como, 1,2,3,4,5 etc...
Se alguйm pudesse me ajudar ficaria grato.

OPS: Caso possa nгo ser nesse CMD tem esse tambйm:

pawn Код:
if(strcmp(cmd, "/aceitarx1", true) == 0)
        {
        if(NikoInfo[playerid][desafiador] == 0)
        {
            SendClientMessage(playerid, COLOR_GRAD2, "Vocк nгo foi desafiado por ninguйm!");
            return 1;
        }
        if(x1acontecendo == 1)
        {
            SendClientMessage(playerid, COLOR_GRAD2, "Jб hб um X1 acontecendo neste exato momento!");
            return 1;
        }
        format(string,sizeof(string),"*CENTRAL-x1: %s e %s resolveram decidir as diferenзas no x1! Para assistir ao x1 vб na Central de x1!",PlayerName(desafiante),PlayerName(desafiado));
        SendClientMessageToAll(COLOR_ZOMBIE,string);
        SetPlayerPos(desafiante,3027.5464,-2427.8391,1.2203);
        SetPlayerPos(desafiado,2995.6516,-2424.5979,1.2203);
        IsPlayerInx1[desafiante] = 1; IsPlayerInx1[desafiado] = 1;
        x1rolando = 1;
        SetPlayerHealth(desafiante,100);
        SetPlayerArmour(desafiante,100);
        ResetPlayerWeapons(desafiante);
        GivePlayerWeapon(desafiante,24,99999);
        SetPlayerHealth(desafiado,100);
        SetPlayerArmour(desafiado,100);
        ResetPlayerWeapons(desafiado);
        GivePlayerWeapon(desafiado,24,99999);
        SetTimer("TempoX1", 180000, false);
        PlayerInfo[desafiante][pValorx1] = 0;
        PlayerInfo[desafiado][pValorx1] = 0;
        NikoInfo[desafiante][desafianter] = 0;
                NikoInfo[playerid][desafiador] = 0;
        desafiando = 0;
        x1acontecendo = 1;
        }
Reply
#2

O timer TempoX1 tem algum parвmetro?
Reply
#3

Para mim o erro й vocк usar variaveis inteiras globais como modo de guardar os Ids dos jogadores..

desafiante, desafiando, x1rolando, desafiado..
Reply
#4

Para que usar todas as variaveis como globais? -.-'
Reply
#5

Haha, jб arrumei vlw :P
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)