[Ajuda] Command /Pm
#1

pawn Код:
command(pm, playerid, params[])
{
    new string[230];
    if(isnull(params)) return SendClientMessage(playerid, Vermelho, "[ x ] Uso correto: /Pm [ID] [Texto]");
    if(!IsPlayerConnected(strval(params))) return SendClientMessage(playerid, Vermelho, "[ x ] Jogador(a) nгo estб conectado(a)!");
    //if(strval(params) == playerid)return SendClientMessage(playerid, Vermelho, "[ x ] Vocк nгo pode usar esse comando em si prуprio!");
    format(string,sizeof(string),"(PM)(E) %s [%d] {FFFFFF}%s", Nome(playerid), playerid, params);
    SendClientMessage(playerid,Cinza,string);
    format(string,sizeof(string),"(PM)® %s [%d] {FFFFFF}%s", Nome(playerid), playerid, params);
    SendClientMessage(playerid,Cinza,string);
    GameTextForPlayer(playerid, "~y~PM RECEBIDA!", 3000, 5);
    PlayerPlaySound(playerid, 1085, 0.0, 0.0, 0.0);
    return 1;
}
Bem, Meu comando /pm ta bugado nao consegui corrigir..

eu digito /pm [id] [texto]

entao envio a mensagem (PM)® Nick [0] 0 texto

antes do texto ta saindo um zero ''0'' nao sei de onde estб vindo em outros comando tambйm estб saindo, mas nao sei o por que, alguйm ajuda.

+Rep pra quem ajudar!
Reply
#2

0 й o valor de params, que й justamente o ID que vocк digitou...

Tente usar sscanf, e o problema acaba
Reply
#3

pawn Код:
if(isnull(params))
esta condicao so й usada quando o comando tem 1 parametro, quando sao parametros multiplos como ID e Texto seguidos, vc tem de usar sscanf, caso contrario o comando nao funciona e retorna a 0.


pawn Код:
if(sscanf(params, "us[128]", params[0], params[1]))
    return SendClientMessage(playerid, -1, "Uso: /PM [id] [Msg]");
ja tens ai a base.
Reply
#4

PT nгo tem como fazer isso de outra forma sem ser com sscanf?
Reply
#5

Hб outra forma com strtok, que comparando com sscanf й pior em todos os sentidos.
Reply
#6

Sim vini eu vi no wiki, prefiro nao usar... essas sao as ъnicas formas?

tentei fazer assim mas deu erro..

pawn Код:
command(pm, playerid, params[])
{
   
    if(isnull(params)) return SendClientMessage(playerid, Vermelho, "[ x ] Uso correto: /Pm [ID] [Texto]");

    new texto[150];

    texto = strval(params[0]);

    if(!IsPlayerConnected(strval(params))) return SendClientMessage(playerid, Vermelho, "[ x ] Jogador(a) nгo estб conectado(a)!");
    //if(strval(params) == playerid)return SendClientMessage(playerid, Vermelho, "[ x ] Vocк nгo pode usar esse comando em si prуprio!");
    format(dstring,sizeof(dstring),"(PM)(E) %s [%d] {FFFFFF}%s", Nome(playerid),playerid,texto);
    SendClientMessage(playerid,Cinza,dstring);
    format(dstring,sizeof(dstring),"(PM)® %s [%d] {FFFFFF}%s", Nome(playerid),playerid,texto);
    SendClientMessage(playerid,Cinza,dstring);
    GameTextForPlayer(playerid, "~y~PM RECEBIDA!", 3000, 5);
    PlayerPlaySound(playerid, 1085, 0.0, 0.0, 0.0);
    return 1;
}
Reply
#7

Por que vocк prefere nгo usar sscanf se й o caminho mais fбcil e prбtico?
Reply
#8

Porquк eu tive um problema com a sscanf o cmd nгo pegava entгo tirei ela, mas antes de tirar pesquisei, atualizei a sscanf2 e o plugin e nгo funcionou. :/
Reply
#9

Й melhor eu te ajudar a arrumar esse problema...

Usa o ъltimo plugin junto com a include sscanf2
Reply
#10

fiz o que disse, continua.. Tento usar o cmd /pm

Aparece: Use /pm id texto

Sendo q estou digitando certo.

.-.

sscanf error: system not initialised.
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)