18.08.2010, 22:51
Simples.
Strtok funciona assim:
CONSELHO:
No comeзo de seu OnPlayerCommandText adicione:
E para usar o strtok:
Para adicionar mais do que somente um valor (EX: /mensagem [playerid] [cor] [mensagem]), й sу fazer:
Eis um cуdigo de darvida.
De brinde, um de setar armor tambйm
Espero ter tirado sua dъvida.
Strtok funciona assim:
pawn Код:
strtok(const string[], &index)
{
new length = strlen(string);
while ((index < length) && (string[index] <= ' '))//Aqui ele vк se a string tem um espaзo. Enquanto ela tiver, o script continua.
{
index++;
}
new offset = index;
new result[20];
while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result)- 1)))//Aqui ele faz a mбgica de transformar o texto que estб em espaзo em outro texto.
{
result[index - offset] = string[index];
index++;
}
result[index - offset] = EOS;//Aqui й o resultado. A string :)
CONSELHO:
No comeзo de seu OnPlayerCommandText adicione:
pawn Код:
new idx;
new tmp[128];
pawn Код:
tmp = strtok(cmdtext, idx); //Pronto :). Agora TMP й a string depois do comando.
pawn Код:
new suastringaqui[TAMANHO_DA_ARRAY]; //Recomendo 128 de array, se for mensagem. Se nгo, use 64 ou menos :)
Eis um cуdigo de darvida.
De brinde, um de setar armor tambйm
pawn Код:
if(strcmp(cmd, "/darvida", true) == 0)
{
if(IsPlayerConnected(playerid))
{
tmp = strtok(cmdtext, idx); //Aqui ele vк o que й escrito depois de sethp;
if(!strlen(tmp))//Aqui ele checa se vocк nгo escreveu nada
{
SendClientMessage(playerid, 0xFFFFFFFF, "USO: /darvida [playerid/PartOfName] [health]");
return 1;
}
new playa;//Variбvel usada como sendo a do id do player;
new health;//Variavel usada para ser a quantidade de HP a ser setada;
playa = ReturnUser(tmp);//Define que player й para retornar um usuбrio;
tmp = strtok(cmdtext, idx);//Outro strtok, que define um espaзo depois da ID do player;
health = strval(tmp);//Retorna o valor de tmp(string que й a vida do player em valores numйricos inteiros;
if(IsPlayerConnected(playa))
{
if(playa != INVALID_PLAYER_ID)
{
SetPlayerHealth(playa, health);//Seta o HP.
}
else
{
SendClientMessage(playerid, 0xFFFFFFFF, "Jogador NГO conectado!");
}
}
}
return 1;
}
if(strcmp(cmd, "/darcolete", true) == 0)//Mesma coisa do acima :)
{
if(IsPlayerConnected(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, 0xFFFFFFFF, "USO: /darcolete [playerid/PartOfName] [armor]");
return 1;
}
new playa;
new health;
playa = ReturnUser(tmp);
tmp = strtok(cmdtext, idx);
health = strval(tmp);
if(IsPlayerConnected(playa))
{
if(playa != INVALID_PLAYER_ID)
{
SetPlayerArmour(playa, health);
}
else
{
SendClientMessage(playerid, 0xFFFFFFFF, "Jogador NГO conectado!");
}
}
}
return 1;
}
Espero ter tirado sua dъvida.