[Ajuda] Comandos
#1

Bem, toda vez que eu executo um comando ele nгo funciona da forma desejada, se eu usar no meu ID(0) Funciona normal ok? se eu usar em um outro ID(1) Ele funciona em mim tambйm, criei alguns comandos quando fui testar a metade deles estгo assim D:

Um dos comandos e esse ''/Ir''
Queria saber o que tem de errado com ele.

pawn Код:
command(ir, playerid, params[])
{
        new ID;
    if(PlayerInfo[playerid][pAdmin] == 0) return SendClientMessage(playerid, Vermelho, "[ x ] Vocк nгo tem permissгo para usar esse comando!");
    if(isnull(params)) return SendClientMessage(playerid, Vermelho,"[ x ] Uso correto: /Ir [ID]");  
    if(!IsPlayerConnected(strval(params))) return SendClientMessage(playerid, Vermelho, "[ x ] Jogador(a) nгo estб conectado(a)!");
    format(dstring, sizeof dstring ,"[Admin] O(A) administrador(a) %s foi atй vocк", Nome(playerid));
    SendClientMessage(ID, Laranja, dstring);
    GetPlayerPos(ID, PosX, PosY, PosZ);
    SetPlayerPos(playerid, PosX, PosY, PosZ);
    SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(ID));
    SetPlayerInterior(playerid, GetPlayerInterior(ID));
    return 1;
Reply
#2

em algum momento vocк da algum valor para a variavel ID?

pelo que eu to vendo vocк sу criou a variavel ID mas nгo deu valor a ela, tente-a deixar desse jeito

Код:
command(ir, playerid, params[])
{
        new ID;
    if(PlayerInfo[playerid][pAdmin] == 0) return SendClientMessage(playerid, Vermelho, "[ x ] Vocк nгo tem permissгo para usar esse comando!");
    if(isnull(params)) return SendClientMessage(playerid, Vermelho,"[ x ] Uso correto: /Ir [ID]");   
    if(!IsPlayerConnected(strval(params))) return SendClientMessage(playerid, Vermelho, "[ x ] Jogador(a) nгo estб conectado(a)!");
    ID = strval(params);
    format(dstring, sizeof dstring ,"[Admin] O(A) administrador(a) %s foi atй vocк", Nome(playerid));
    SendClientMessage(ID, Laranja, dstring);
    GetPlayerPos(ID, PosX, PosY, PosZ);
    SetPlayerPos(playerid, PosX, PosY, PosZ);
    SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(ID));
    SetPlayerInterior(playerid, GetPlayerInterior(ID));
    return 1;
}
Reply
#3

funcionou obrigado +rep

Mas se no caso eu usar sscanf? й sу dar um valor a ela com vocк fez?

Olhem o cуdigo:

pawn Код:
command(kick, playerid, params[])
{

   new ID, Motivo[150];
   if(PlayerInfo[playerid][pAdmin] == 0) return SendClientMessage(playerid, Vermelho, "[ x ] Vocк nгo tem permissгo para usar esse comando!");
   if(sscanf(params, "us[128]", ID, Motivo)) return SendClientMessage(playerid, Vermelho, "[ x ] Uso correto: /kickar [ID] [motivo]");
   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 kickar vocк mesmo!");
   ID = strval(params);
   format(dstring, sizeof(dstring), "[Admin] Vocк foi kickado pelo(a) adminstrador(a) %s [Motivo: %s]", NomePlayer(playerid), Motivo);
   SendClientMessage(ID, Laranja, dstring);
   format(dstring, sizeof(dstring), "[Admin] O(A) adminstrador(a) %s kickou o(a) jogador(a) %s [Motivo: %s]", NomePlayer(playerid), NomePlayer(playerid), Motivo);
   SendClientMessageToAll(Snow, dstring);
   SetTimerEx("Kickado", 1000, false, "d", playerid);
   return 1;
}
Esse nгo estб funcionando da forma desejada.. quando eu uso o comando eu que sou kickado.
Reply
#4

Usando sscanf vocк nгo precisa colocar ID = strval(params); o sscanf jб faz isso.

No SetTimerEx vocк estб usando playerid, em vez de ID.
Reply
#5

Valeu vini arrumei (nгo consegui dar rep)

Me tira uma dъvida, existe alguma funзгo que verifique se o player tem tal score para pode usar o comando?
Reply
#6

Existe sim : GetPlayerScore
Reply
#7

Eu digo, uma funзгo parecida com essa:

pawn Код:
if(PlayerInfo[playerid][pScore] < 100) return SendClientMessage(playerid, -1, "Vocк nao tem level suficiente, mнnimo 100");
Como fazer isso com GetPlayerScore. o.O
Reply
#8

Й isso:
pawn Код:
if(GetPlayerScore(playerid) < 99)  return SendClientMessage(playerid, -1, "Vocк nao tem level suficiente, mнnimo 100");
Explicando:
pawn Код:
GetPlayerScore(playerid) //Geta o score atual do player
< 99 //Detecta se й 99 ou menos
return SendClientMessage //Retorna uma mensagem indicando que nгo tem score maior que 99
Reply


Forum Jump:


Users browsing this thread: 7 Guest(s)