25.04.2012, 23:09
(
Последний раз редактировалось Joker_OutLock; 26.04.2012 в 00:11.
)
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:
Defina isto no inicio da Callback OnPlayerCommandText:
bom vamos ao tuto..
antes de comeзar o comando que for utilizar strtok sempre use:
e nгo:
Obs: se o comando nгo conter strtok pode utilizar a segunda forma normalmente..
Vamos ao simples exemplo de kickar o jogador:
dar dinheiro ao jogador:
lembre-se caso o comando for para outro jogador por exemplo:
Pronto.. pessoal й sу isso, como й meu primeiro tutorial, estб aberto a critнcas, dъvidas e etc..
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;
}
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);
antes de comeзar o comando que for utilizar strtok sempre use:
pawn Код:
if(strcmp(cmd,"/nomecomando", true) == 0)
pawn Код:
if(strcmp("/nomecomando", cmdtext, true) == 0)
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;
}
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;
}
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);