[Ajuda] Passar Zcmd + sscanf para strtok
#1

Queria passar esse comando que esta em zcmd para strtok

pawn Код:
CMD:irpresente(playerid, params[])
{
    new LePresente;
    new Float:OP1[3], Float:OP2[3], Float:OP3[3], Float:OP4[3], Float:OP5[3];
    GetObjectPos(Presentes[0], OP1[0], OP1[1], OP1[2]);
    GetObjectPos(Presentes[1], OP2[0], OP2[1], OP2[2]);
    GetObjectPos(Presentes[2], OP3[0], OP3[1], OP3[2]);
    GetObjectPos(Presentes[3], OP4[0], OP4[1], OP4[2]);
    GetObjectPos(Presentes[4], OP5[0], OP5[1], OP5[2]);
    if(!IsPlayerAdmin(playerid)) return Msg(playerid, -1, "[FaiL] Vocк nгo й um Admin!");
    if(sscanf(params, "d", LePresente)) return Msg(playerid, -1, "Use: /irpresente [1-5]");
    if(LePresente < 1 || LePresente > 5) return Msg(playerid, -1, "Use: /irpresente [1-5]");
    if(PresentesON == false) return Msg(playerid, -1, "[FaiL] Desculpe, mas nгo foram dados presentes ainda");
    if(LePresente == 1)
    {
        if(Presente1 == true) return Msg(playerid, -1, "[FaiL] Este presente jб foi pego");
        SetPlayerPos(playerid, OP1[0], OP1[1], OP1[2]);
    }
    else if(LePresente == 2)
    {
        if(Presente2 == true) return Msg(playerid, -1, "[FaiL] Este presente jб foi pego");
        SetPlayerPos(playerid, OP2[0], OP2[1], OP2[2]);
    }
    else if(LePresente == 3)
    {
        if(Presente3 == true) return Msg(playerid, -1, "[FaiL] Este presente jб foi pego");
        SetPlayerPos(playerid, OP3[0], OP3[1], OP3[2]);
    }
    else if(LePresente == 4)
    {
        if(Presente4 == true) return Msg(playerid, -1, "[FaiL] Este presente jб foi pego");
        SetPlayerPos(playerid, OP4[0], OP4[1], OP4[2]);
    }
    else if(LePresente == 5)
    {
        if(Presente5 == true) return Msg(playerid, -1, "[FaiL] Este presente jб foi pego");
        SetPlayerPos(playerid, OP5[0], OP5[1], OP5[2]);
    }
    return 1;
}
й necessitaria as linhas :

pawn Код:
if(sscanf(params, "d", LePresente)) return Msg(playerid, -1, "Use: /irpresente [1-5]");
        if(LePresente < 1 || LePresente > 5) return Msg(playerid, -1, "Use: /irpresente [1-5]");
Reply
#2

Troque:
pawn Код:
if(sscanf(params, "d", LePresente)) return Msg(playerid, -1, "Use: /irpresente [1-5]");
        if(LePresente < 1 || LePresente > 5) return Msg(playerid, -1, "Use: /irpresente [1-5]");
Por:
pawn Код:
tmp = strtok(cmdtext, idx);
LePresente = ReturnUser(tmp);
if(LePresente < 1 || LePresente > 5) return Msg(playerid, -1, "Use: /irpresente [1-5]");
Reply
#3

Ta repitindo a mensagem:
pawn Код:
Use: /irpresente [1-5]
Reply
#4

Coloque no Comando
pawn Код:
if(!strlen(tmp)) return SendClientMessage(playerid, -1, "{FFFFFF}/irpresente [1-5]");
Reply
#5

n aconselho a fazer isso, vai perder desempenho
Reply
#6

Continua repetindo a mensagem
pawn Код:
Use: /irpresente [1-5]
@PT todos meus comandos jб estгo em strtok
Reply
#7

passe-os para sscanf, ganhara muito mais com isso...
Reply
#8

deveria passa todos os comandos pra sscanf e zcmd
eles ficariao mas rapidos strtok e obsoleta
Reply
#9

Sim eu aconcelho tambйm usar ZCMD & sscanf.

Pois o processamento dos seus comandos ficara mais rapido
Reply
#10

y_commands e sscanf se quiser melhorar ainda mais
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)