[AJUDA] Dando uns erros aqui :/
#7

Olha, se vc ta comeзando um GM do 0, eu te aconselho a usar sscanf, Strtok nгo й seguro alйm de ser lento entre outros problemas...


@edit

Sua OnPlayerCommandText em sscanf
pawn Код:
public OnPlayerCommandText(playerid, cmdtext[])
{
    new cmd[50 char], params[100 char], PlayerB;
    unformat(cmdtext, "s[50]S( )[100]",cmd,params);
    if(strcmp(cmd, "/convidar", true) == 0)
    {
        if(sscanf(params, "u", PlayerB)) return SendClientMessage(playerid, -1, "Uso correto: /convidar [id]");
        if(!IsPlayerConnected(PlayerB)) return SendClientMessage(playerid, Branco, "Este jogador nгo estб conectado");
        if(PlayerInfo[playerid][PMilitar] >= 6)
        {
            PlayerInfo[PlayerB][PMilitar] = 1;
            SendClientMessage(PlayerB, Branco, "Vocк entrou а Polнcia Militar");
            SetPlayerColor(PlayerB, Cor_PMilitar);
            return 1;
        }
        else if(PlayerInfo[playerid][Groove] >= 6)
        {
            PlayerInfo[PlayerB][Groove] = 1;
            SendClientMessage(PlayerB, Branco, "Vocк entrou а Groove");
            SetPlayerColor(PlayerB, Cor_Groove);
            return 1;
        }
        else if(PlayerInfo[playerid][Ballas] >= 6)
        {
            PlayerInfo[PlayerB][Ballas] = 1;
            SendClientMessage(PlayerB, Branco, "Vocк entrou aos Ballas");
            SetPlayerColor(PlayerB, Cor_Ballas);
            return 1;
        }
        return 1;
    }
    if(strcmp(cmd, "/demitir", true) == 0)
    {
        if(sscanf(params, "u", PlayerB)) return SendClientMessage(playerid, -1, "Uso correto: /demitir [id]");
        new string[47];
        GetPlayerName(playerid, string, 24);
        if(!IsPlayerConnected(PlayerB)) return SendClientMessage(playerid, Branco, "Este jogador nгo estб conectado");
        if(PlayerInfo[playerid][PMilitar] >= 6)
        {
            if(PlayerInfo[PlayerB][PMilitar] < 1) return SendClientMessage(playerid, Branco, "Este jogador nгo й da sua organizaзгo");
            PlayerInfo[PlayerB][PMilitar] = 0;
            format(string, sizeof(string), "Vocк foi demitido por %s", string);
            SendClientMessage(PlayerB, Branco, string);
            return 1;
        }
        else if(PlayerInfo[playerid][Groove] >= 6)
        {
            if(PlayerInfo[PlayerB][Groove] < 1) return SendClientMessage(playerid, Branco, "Este jogador nгo й da sua organizaзгo");
            PlayerInfo[PlayerB][Groove] = 0;
            format(string, sizeof(string), "Vocк foi demitido por %s", string);
            SendClientMessage(PlayerB, Branco, string);
            return 1;
        }
        else if(PlayerInfo[playerid][Ballas] >= 6)
        {
            if(PlayerInfo[PlayerB][Ballas] < 1) return SendClientMessage(playerid, Branco, "Este jogador nгo й da sua organizaзгo");
            PlayerInfo[PlayerB][Ballas] = 0;
            format(string, sizeof(string), "Vocк foi demitido por %s", string);
            SendClientMessage(PlayerB, Branco, string);
            return 1;
        }
        return 1;
    }
    if(strcmp(cmd, "/promover", true) == 0)
    {
        new level;
        if(sscanf(params, "ud", PlayerB, level))
            return SendClientMessage(playerid, -1, "Uso correto: /promover [id] [cargo]");
        if(level < 1 || level > 6) return SendClientMessage(playerid, Branco, "O level deve ser maior que 0 e menor que 7");
        new string[58];
        GetPlayerName(playerid, string, 24);
        if(PlayerInfo[playerid][PMilitar] >= 6)
        {
            if(PlayerInfo[PlayerB][PMilitar] < 1) return SendClientMessage(playerid, Branco, "Este jogador nгo й da sua org");
            PlayerInfo[PlayerB][PMilitar] = level;
            format(string, sizeof(string), "Vocк foi promovido a level %d por %s", level, string););
            SendClientMessage(PlayerB, Branco, string);
            return 1;
        }
        else if(PlayerInfo[playerid][Groove] >= 6)
        {
            if(PlayerInfo[PlayerB][Groove] < 1) return SendClientMessage(playerid, Branco, "Este jogador nгo й da sua org");
            PlayerInfo[PlayerB][Groove] = level;
            format(string, sizeof(string), "Vocк foi promovido a level %d por %s", level, string););
            SendClientMessage(PlayerB, Branco, string);
            return 1;
        }
        else if(PlayerInfo[playerid][Ballas] >= 6)
        {
            if(PlayerInfo[PlayerB][Ballas] < 1) return SendClientMessage(playerid, Branco, "Este jogador nгo й da sua org");
            PlayerInfo[PlayerB][Ballas] = level;
            format(string, sizeof(string), "Vocк foi promovido a level %d por %s", level, string););
            SendClientMessage(PlayerB, Branco, string);
            return 1;
        }
        return 1;
    }
    return 0;
}
Se quiser usar desse jeito tera que instalar o plugin sscanf

Se usar sscanf e tiver qualquer duvida sinta-se а vontade pra me enviar MP's.

@edit2

Tutorial de como usar sscanf a unica diferenзa й que nesse tutorial mostra usando ZCMD, mas nгo tem muita diferenзa (EM FORMA DE USO NГO OPTIMIZAЗГO) ZCMD pra strcmp, por exemplo:

if(!strcmp(cmd, "/dar", true))
CMD:dar(playerid, params)

ambos sгo iguais com 2 formas diferentes.
Reply


Messages In This Thread
[AJUDA] Dando uns erros aqui :/ - by GustavoBonomo - 25.11.2011, 15:07
Re: [AJUDA] Dando uns erros aqui :/ - by Pharrel - 25.11.2011, 15:11
Re: [AJUDA] Dando uns erros aqui :/ - by GustavoBonomo - 25.11.2011, 15:14
Re: [AJUDA] Dando uns erros aqui :/ - by Pharrel - 25.11.2011, 15:17
Re: [AJUDA] Dando uns erros aqui :/ - by rjjj - 25.11.2011, 15:18
Re: [AJUDA] Dando uns erros aqui :/ - by GustavoBonomo - 25.11.2011, 15:20
Re: [AJUDA] Dando uns erros aqui :/ - by Pharrel - 25.11.2011, 15:23
Re: [AJUDA] Dando uns erros aqui :/ - by GustavoBonomo - 25.11.2011, 19:14
Re: [AJUDA] Dando uns erros aqui :/ - by GustavoBonomo - 25.11.2011, 19:21
Re: [AJUDA] Dando uns erros aqui :/ - by |_MeGaTroN_| - 25.11.2011, 19:31

Forum Jump:


Users browsing this thread: 2 Guest(s)