[Tutorial] Utilizando strtok
#1

Olб pessoal hoje vim postar um tutorial sobre strtok, pois vi que muita gente tem dъvida de como utiliza-lo..

strval - Converte uma string em Integer, nesse caso usado para definir o outro jogador...
strtok - Usado para separar strings em partes..

vamos as definiзхes..

No fim ou inнcio do gm:
pawn Код:
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;
}
Defina isto no inicio da Callback OnPlayerCommandText:

pawn Код:
new nome[MAX_PLAYER_NAME]; //defini para o jogador, seu nome..
new string[128]; // Array
new cmd[128], tmp[128], idx;
cmd = strtok(cmdtext,idx);
bom vamos ao tuto..

antes de comeзar o comando que for utilizar strtok sempre use:

pawn Код:
if(strcmp(cmd,"/nomecomando", true) == 0)
e nгo:

pawn Код:
if(strcmp("/nomecomando", cmdtext, true) == 0)
Obs: se o comando nгo conter strtok pode utilizar a segunda forma normalmente..

Vamos ao simples exemplo de kickar o jogador:

pawn Код:
if(strcmp(cmd,"/kickar", true) == 0)
{
   tmp = strtok(cmdtext,idx); // Aqui serб utilizado como o ID do outro jogador
   new player = strval(tmp); // Transforma em ID.
   if(!strlen(tmp)) return SendClientMessage(playerid, -1, "Use /kickar [id]");//Se o comando for digitado incorretamente.
   if(!IsPlayerConnected(player)) return SendClientMessage(playerid, -1, "Jogador desconectado..");//Caso o jogador esteja desconectado..
   GetPlayerName(player, nome, sizeof(nome));//Pega o nome do jogador..
   format(string, sizeof(string), "O jogador %s[ID:%d] foi kickado do servidor!!", nome, outro); //Formata a array..
   SendClientMessageToAll(-1, string); //Cor, array
   Kick(player); //Kicka o jogador..
   return 1;
}
dar dinheiro ao jogador:

pawn Код:
if(strcmp(cmd,"/darmoney", true) == 0)
{
    tmp = strtok(cmdtext,idx);
    new player = strval(tmp);
    if(!strlen(tmp)) return SendClientMessage(playerid, -1, "Use /darmoney [id]");//Se o comando for digitado incorretamente.
    if(!IsPlayerConnected(player)) return SendClientMessage(playerid, -1, "Jogador desconectado..");//Caso o jogador esteja desconectado..
    GivePlayerMoney(player, 5000);
    return 1;
}
lembre-se caso o comando for para outro jogador por exemplo:

pawn Код:
nunca use:
   
GivePlayerMoney(playerid, 5000); //Isto irб para o jogador que chamar a funзгo, e nгo o ID que vocк digitou..

utilize:

GivePlayerMoney(VARIБVELDOINICIODOCMD, 5000);
Pronto.. pessoal й sу isso, como й meu primeiro tutorial, estб aberto a critнcas, dъvidas e etc..
Reply


Messages In This Thread
Utilizando strtok - by Joker_OutLock - 25.04.2012, 23:09
Re: Utilizando strtok - by humildadeforever - 25.04.2012, 23:18
Re: Utilizando strtok - by RoacH` - 25.04.2012, 23:33
Re: Utilizando strtok - by zSuYaNw - 25.04.2012, 23:41
Re: Utilizando strtok - by RoacH` - 25.04.2012, 23:43
Re: Utilizando strtok - by Kuddy - 25.04.2012, 23:43
Re: Utilizando strtok - by [BND]Rodrigues - 25.04.2012, 23:50
Re: Utilizando strtok - by WLSF - 25.04.2012, 23:51
Re: Utilizando strtok - by Don_Speed - 26.04.2012, 00:20
Re: Utilizando strtok - by histire - 26.04.2012, 00:40

Forum Jump:


Users browsing this thread: 2 Guest(s)