[Pedido] Comando de pegar id de um player /pegarid [playerid]
#1

Por favor alguйm pode fazer um comando de pegar um id de um player, para eu fazer outros comandos.
Exemplo do comando:
if (strcmp("/pegarid", cmdtext, true, 10) == 0)
{
return SendClientMessage(playerid,Vermelho,"(ERRO) /pegarid [playerid]");
aqui ficara a funзгo
return 1;
}
Reply
#2

Recomendo que procure como usar ZCMD ou YCMD e sscanf, eles facilitam muito a sua vida. Um exemplo do comando em ZCMD:

pawn Код:
CMD:pegarid(playerid, params[])
{
      new sName[MAX_PLAYER_NAME], pName[MAX_PLAYER_NAME], string[60], id;
      if(sscanf(params, "s", sName)) return SendClientMessage(playerid, -1, "Utilize /pegarid [Nome/ParteDoNome]");
      if(strlen(sName) < 3) return SendClientMessage(playerid, -1, "O nome deverб conter no minimo 3 letras.");

      id = GetPlayerID(sName, 1);

      if(id != -1)
      {
            GetPlayerName(id, pName, MAX_PLAYER_NAME);
            format(string, sizeof(string), "Player %s / ID: %d.", pName, id);
            SendClientMessage(playerid, -1, string);
      }
      else
      {
            return SendClientMessage(playerid, -1, "Player nгo encontrado!");
      }
      return 1;  
}
Reply
#3

O codigo nгo deu erro mas quando eu digito o comando fala que o comando nгo existe.
Reply
#4

pawn Код:
if(strcmp(cmd, "/pegarid", true) == 0)
    {
        if(IsPlayerConnected(playerid))
        {
            tmp = strtok(cmdtext, idx);
            if(!strlen(tmp))
            {
                SendClientMessage(playerid, COLOR_GRAD2, "USE: /pegarid [ nick ]");
                return true;
            }
            new target;
            target = ReturnUser(tmp);
            if(IsPlayerConnected(target))
            {
                if(target != INVALID_PLAYER_ID)
                {
                    GetPlayerName(target, giveplayer, sizeof(giveplayer));
                    format(gstring, sizeof(gstring), "ID: (%d) %s",target,giveplayer);
                    SendClientMessage(playerid, COLOR_GRAD1, gstring);
                }
            }
        }
        return true;
    }
Reply
#5

Deu esses erros;

C:\DOCUME~1\MATEUS~1\Desktop\pawn\GAMEMO~1\GMT.pwn (80) : error 017: undefined symbol "tmp"
C:\DOCUME~1\MATEUS~1\Desktop\pawn\GAMEMO~1\GMT.pwn (80) : error 017: undefined symbol "strtok"
C:\DOCUME~1\MATEUS~1\Desktop\pawn\GAMEMO~1\GMT.pwn (81) : error 017: undefined symbol "tmp"
C:\DOCUME~1\MATEUS~1\Desktop\pawn\GAMEMO~1\GMT.pwn (87) : error 017: undefined symbol "ReturnUser"
C:\DOCUME~1\MATEUS~1\Desktop\pawn\GAMEMO~1\GMT.pwn (92) : error 017: undefined symbol "giveplayer"
C:\DOCUME~1\MATEUS~1\Desktop\pawn\GAMEMO~1\GMT.pwn (92) : error 017: undefined symbol "giveplayer"
C:\DOCUME~1\MATEUS~1\Desktop\pawn\GAMEMO~1\GMT.pwn (92) : error 029: invalid expression, assumed zero
C:\DOCUME~1\MATEUS~1\Desktop\pawn\GAMEMO~1\GMT.pwn (92) : fatal error 107: too many error messages on one line


( 74 )public OnPlayerCommandText(playerid, cmdtext[])
( 75 ){
( 76 ) if(strcmp(cmdtext, "/pegarid", true) == 0)
( 77 ) {
( 78 ) if(IsPlayerConnected(playerid))
( 79 ) {
( 80 ) tmp = strtok(cmdtext, idx);
( 81 ) if(!strlen(tmp))
( 82 ) {
( 83 ) SendClientMessage(playerid, -1, "USE: /pegarid [ nick ]");
( 84 ) return true;
( 85 ) }
( 86 ) new target;
( 87 ) target = ReturnUser(tmp);
( 88 ) if(IsPlayerConnected(target))
( 89 ) {
( 90 ) if(target != INVALID_PLAYER_ID)
( 91 ) {
( 92 ) GetPlayerName(target, giveplayer, sizeof(giveplayer));
( 93 ) format(gstring, sizeof(gstring), "ID: (%d) %s",target,giveplayer);
( 94 ) SendClientMessage(playerid, -1, gstring);
( 95 ) }
( 96 ) }
( 97 ) }
( 98 ) return true;
( 99 ) }
Reply
#6

Aqui

pawn Код:
//
    if(strcmp(cmd, "/pegarid", true) == 0)
    {
        new giveplayer, tmp[24];
        if(IsPlayerConnected(playerid))
        {
            tmp = strtok(cmdtext, idx);
            if(!strlen(tmp))
            {
                SendClientMessage(playerid, COLOR_GRAD2, "USE: /pegarid [ nick ]");
                return true;
            }
            new target;
            target = ReturnUser(tmp);
            if(IsPlayerConnected(target))
            {
                if(target != INVALID_PLAYER_ID)
                {
                    GetPlayerName(target, giveplayer, sizeof(giveplayer));
                    format(gstring, sizeof(gstring), "ID: (%d) %s",target,giveplayer);
                    SendClientMessage(playerid, COLOR_GRAD1, gstring);
                }
            }
        }
        return true;
    }

strtok(const string[], &index)
{
    new length = strlen(string);
    while ((index < length) && (string[index] <= ' '))
    {
        index++;
    }

    new offset = index;
    new result[20];
    while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
    {
        result[index - offset] = string[index];
        index++;
    }
    result[index - offset] = EOS;
    return result;
}
Reply
#7

Quote:
Originally Posted by Murilo_sousa
Посмотреть сообщение
Aqui

pawn Код:
//
    if(strcmp(cmd, "/pegarid", true) == 0)
    {
        new giveplayer, tmp[24];
        if(IsPlayerConnected(playerid))
        {
            tmp = strtok(cmdtext, idx);
            if(!strlen(tmp))
            {
                SendClientMessage(playerid, COLOR_GRAD2, "USE: /pegarid [ nick ]");
                return true;
            }
            new target;
            target = ReturnUser(tmp);
            if(IsPlayerConnected(target))
            {
                if(target != INVALID_PLAYER_ID)
                {
                    GetPlayerName(target, giveplayer, sizeof(giveplayer));
                    format(gstring, sizeof(gstring), "ID: (%d) %s",target,giveplayer);
                    SendClientMessage(playerid, COLOR_GRAD1, gstring);
                }
            }
        }
        return true;
    }

strtok(const string[], &index)
{
    new length = strlen(string);
    while ((index < length) && (string[index] <= ' '))
    {
        index++;
    }

    new offset = index;
    new result[20];
    while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
    {
        result[index - offset] = string[index];
        index++;
    }
    result[index - offset] = EOS;
    return result;
}

Strtok jб foi extinto!

pawn Код:
if(!strfind(cmdtext, "/pegarid", true)){
   
        if(strlen(cmdtext) == 9 || strlen(cmdtext) == 8)
            return SendClientMessage(playerid, -1, "/Pegarid <nome>");
           
        static
            NickName[32],
            TotalPlayers,
            iString[60],
            Integer
        ;
        strdel(cmdtext, 0, 9);
       
        for(TotalPlayers = GetMaxPlayers(), Integer = 0; Integer != TotalPlayers; ++Integer){
            GetPlayerName(Integer, NickName, 24);
           
            if(strfind(NickName, cmdtext, true) != -1){
           

                format(iString, 128, "%s[ID:%i]", NickName, Integer);
                SendClientMessage(playerid, -1, iString);
                break;
            }
        }
       
        printf("%d | %d", Integer, TotalPlayers);
       
        if(Integer == (TotalPlayers)){
            SendClientMessage(playerid, -1, "NUN ACHO, I AGORA ?");
        }
       
        return true;
    }
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)