[PEDIDO]Strtok
#2

Simples.


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];
E para usar o strtok:

pawn Код:
tmp = strtok(cmdtext, idx); //Pronto :). Agora TMP й a string depois do comando.
Para adicionar mais do que somente um valor (EX: /mensagem [playerid] [cor] [mensagem]), й sу fazer:

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.
Reply


Messages In This Thread
[PEDIDO]Strtok - by TiagoPS - 18.08.2010, 20:48
Re: [PEDIDO]Strtok - by LeLeTe - 18.08.2010, 22:51
Re: [PEDIDO]Strtok - by zSuYaNw - 18.08.2010, 23:34
Re: [PEDIDO]Strtok - by LeLeTe - 18.08.2010, 23:47
Re: [PEDIDO]Strtok - by zSuYaNw - 18.08.2010, 23:53
Re: [PEDIDO]Strtok - by Kasura - 19.08.2010, 00:26
Re: [PEDIDO]Strtok - by LeLeTe - 19.08.2010, 01:18
Re: [PEDIDO]Strtok - by TiagoPS - 19.08.2010, 13:50
Re: [PEDIDO]Strtok - by zSuYaNw - 19.08.2010, 14:56
Re: [PEDIDO]Strtok - by ipsBruno - 19.08.2010, 15:04

Forum Jump:


Users browsing this thread: 1 Guest(s)