[Ajuda] Comando dando erro
#1

Eu criei um comando de alistar que quando o lider alista um player manda uma mensagem global anunciando.Ex:

"O Lider UnGroup alistou Sync para Organizaзao : Groove Street"

Porem quando se usa o comando mais de uma vez(com pessoa diferente) continua armazenado no parametro(string) o nome da primeira pessoa.Ex:

"O Lider UnGroup alistou UnGroup para Organizaзao : Groove Street"




pawn Код:
COMMAND:alistar(playerid, params[])
{
    new PlayerB;
    new Nome[MAX_PLAYER_NAME];
    GetPlayerName(PlayerB, Nome, sizeof(Nome));
    new Lider[MAX_PLAYER_NAME];
    GetPlayerName(playerid, Lider, sizeof(Lider));
    new String[200];
    if(sscanf(params, "u", PlayerB)) return SendClientMessage(playerid,GetPlayerColor(playerid),"Digite: /Alistar [id]");
    if(PlayerInfo[playerid][Cargo] < 9) return SendClientMessage(playerid, GetPlayerColor(playerid), "Voce nao й lider da organizaзao.");
    if(PlayerInfo[PlayerB][Org] >= 1) return SendClientMessage(playerid, GetPlayerColor(playerid), "O player ja faz parte de uma organizaзao.");
    PlayerInfo[PlayerB][Org] = PlayerInfo[playerid][Org];
    PlayerInfo[PlayerB][Cargo] = 0;
    GetPlayerColor(playerid);
    SetPlayerColor(PlayerB, playerid);
    format(String, sizeof(String),"O Lider %s alistou %s para Organizaзao : %s",Lider, Nome, Nomeorgs[PlayerInfo[playerid][Org]]);
    SendClientMessageToAll(GetPlayerColor(playerid),String);
    return true;
}
Reply
#2

pawn Код:
COMMAND:alistar(playerid, params[])
{
    new PlayerB;
    new Nome[MAX_PLAYER_NAME];
    new Lider[MAX_PLAYER_NAME];
    GetPlayerName(playerid, Lider, sizeof(Lider));
    new String[200];
    if(sscanf(params, "u", PlayerB)) return SendClientMessage(playerid,GetPlayerColor(playerid),"Digite: /Alistar [id]");
    if(PlayerInfo[playerid][Cargo] < 9) return SendClientMessage(playerid, GetPlayerColor(playerid), "Voce nao й lider da organizaзao.");
    if(PlayerInfo[PlayerB][Org] >= 1) return SendClientMessage(playerid, GetPlayerColor(playerid), "O player ja faz parte de uma organizaзao.");
    GetPlayerName(PlayerB, Nome, sizeof(Nome));
    PlayerInfo[PlayerB][Org] = PlayerInfo[playerid][Org];
    PlayerInfo[PlayerB][Cargo] = 0;
    GetPlayerColor(playerid);
    SetPlayerColor(PlayerB, playerid);
    format(String, sizeof(String),"O Lider %s alistou %s para Organizaзao : %s",Lider, Nome, Nomeorgs[PlayerInfo[playerid][Org]]);
    SendClientMessageToAll(GetPlayerColor(playerid),String);
    return true;
}
Reply
#3

pawn Код:
#include icmd

scmd( alistar, playerid, erro)<Id> scanf("i", Id) {

    if(erro)
        return SendClientMessage(playerid, -1, "Use: /alistar [Id]");

    if(!IsPlayerConnected(Id))
        return SendClientMessage(playerid, -1, "Jogador nгo conectado!");

    if(PlayerInfo[playerid][Cargo] < 9)
        return SendClientMessage(playerid, GetPlayerColor(playerid), "Uso restrito para lideres!");
       
    if(PlayerInfo[Id][Org] >= 1)
        return SendClientMessage(playerid, GetPlayerColor(playerid), "O jogador ja faz parte de uma organizaзгo!");
       
    new
        pStr[128],
        NomeLider[MAX_PLAYER_NAME],
        NomePlayer[MAX_PLAYER_NAME]
    ;
       
    PlayerInfo[Id][Org] = PlayerInfo[playerid][Org];
    PlayerInfo[Id][Cargo] = 0;
    SetPlayerColor(Id, GetPlayerColor(playerid));
   
    GetPlayerName(playerid, NomeLider, MAX_PLAYER_NAME);
    GetPlayerName(Id, NomePlayer, MAX_PLAYER_NAME);
   
    format(pStr, 128, "O Lider %s alistou %s para Organizaзao : %s", NomeLider, NomePlayer, Nomeorgs[PlayerInfo[playerid][Org]]);
    SendClientMessageToAll(GetPlayerColor(playerid),pStr);

    return true;
}
Reply
#4

Obrigado.Agora so para entender,o erro foi devido a

pawn Код:
new Nome[MAX_PLAYER_NAME];
    GetPlayerName(PlayerB, Nome, sizeof(Nome));
    new Lider[MAX_PLAYER_NAME];
    GetPlayerName(playerid, Lider, sizeof(Lider));
estarem desorganizados?
Reply
#5

Sim. Ele estava pegando a variбvel playerb sem valor.
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)