[Ajuda] Strval tmp entre outros
#5

Quote:
Originally Posted by NathanLive
Посмотреть сообщение
Vamos lб amigo:

Nesse tipo de comando vocк vai usar uma funзгo chamada strtok, ela serve para pegar o espaзo e identificar o que vem escrito depois do comando, usando ela funcionaria mais ou menos assim seu comando (nгo testei caso tenha erro avise aн):

pawn Код:
if(strcmp(cmd, "/banip", true) == 0 || strcmp(cmd, "/banirip", true) == 0)
{
    if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFFFFAA, "Vocк nгo й administrador."); //Caso o player nгo for adm no caso eu usei a RCON como referкncia, no seu GM vocк modifica
    new tmpex[128]; //Criei a variбvel tmpex que vai servir para armazenar o valor depois do primeiro espaзo ou seja o id
    new idxex; // Servirб de apoio para funзгo strtok pois vai pegar o нnicio do id
    tmpex = strtok(cmdtext, idxex); // Aqui vai atribuir para tmp o reconhecimento do id, pois o strtok vai pegar o espaзo que vem depois
    if(!strlen(tmpex)) // Caso o usuбrio nгo digite o id
    {
        SendClientMessage(playerid,0xFFFFAA,"Uso correto: /banip [id] [motivo].");
        return 1;
    }
    new playerban = strval(tmpex); //Strval serve para passar uma string de texto para um valor inteiro, ou seja tranforma o texto em nъmero, no caso o texto pegado й o id
    if(!IsPlayerConnected(playerban)) return SendClientMessage(playerid, 0xFFFFAA, "Esse ID nгo estб conectado.");
    /* Aн vocк usarб a funзгo abaixo para pegar o motivo, nгo vou explicar pois nгo conheзo muito bem essa funзгo, vou estudб-la melhor qualquer coisa te explico */
    new length = strlen(cmdtext);
    while ((idxex < length) && (cmdtext[idxex] <= ' '))// Aqui servirб para detectar o texto apуs o segundo espaзo
    {
        idxex++;
    }
    new offset = idxex;
    new result[64];//Aqui serб armazenado o motivo do banimento
    while ((idxex < length) && ((idxex - offset) < (sizeof(result) - 1)))
    {
        result[idxex - offset] = cmdtext[idxex];
        idxex++;
    }
    result[idxex - offset] = EOS;
    if(!strlen(result))//Caso nгo digite o motivo
    {
        SendClientMessage(playerid,0xFFFFAA,"Uso correto: /banip [id] [motivo].");
        return 1;
    }
    new aviso[256];
    format(aviso, 256,"%s foi banido pelo ADM %s motivo: %s.",pNome(playerban), pNome(playerid), result);
    SendClientMessageToAll(0xFFFFAA, aviso);
    Ban(playerban);
}
A funзгo pNome que eu criei
pawn Код:
stock pNome(playerid)
{
new nome[MAX_PLAYER_NAME];
GetPlayerName(playerid, nome, sizeof(nome));
return nome;
}
Hm... nгo resolveu tudo pois entendi atй onde vocк sabia tbm ^^
Mais vai ganhar rep.

Se alguem poder dar uma complementada ai na parte que ele sabe mais ou menos eu agradeзo!
Reply


Messages In This Thread
Strval tmp entre outros - by ViniKuliveguisky - 25.07.2013, 19:20
Re: Strval tmp entre outros - by PT - 25.07.2013, 19:33
Respuesta: Re: Strval tmp entre outros - by ViniKuliveguisky - 25.07.2013, 19:55
Re: Strval tmp entre outros - by NathanLive - 25.07.2013, 20:02
Respuesta: Re: Strval tmp entre outros - by ViniKuliveguisky - 25.07.2013, 20:07
Re: Strval tmp entre outros - by NathanLive - 25.07.2013, 20:18
Re: Strval tmp entre outros - by NathanLive - 25.07.2013, 20:23
Respuesta: Strval tmp entre outros - by ViniKuliveguisky - 25.07.2013, 20:45
Re: Strval tmp entre outros - by darkxdll - 25.07.2013, 20:48
Respuesta: Strval tmp entre outros - by ViniKuliveguisky - 25.07.2013, 21:39

Forum Jump:


Users browsing this thread: 2 Guest(s)