[FilterScript] Simples Processador de Comandos (Usando Strtok)
#1


Por DraKoN
Introduзгo:
Oi Galerinha estava aqui mexendo na Strtok e vendo algumas coisas interessantes entгo resolvi criar um Processador de Comandos usando ela,й muito simples e praticamente o mesmo que outros porйm achei mais simples de mexer nela..

Cуdigo:
O Cуdigo й Muito Simples nem necessita colocar para Download pelo fato de ser simples 8 Linhas (como disse muito simples)
Aqui o Cуdigo Basta Adicionar ao Topo ou Final GameMode dependendo do uso e posiзхes das CallBacks de comandos

pawn Код:
#define CMD:(%1) if(!strcmp(cmd,%1, true))
#define UsarProcessador new cmd[128],idx;cmd = Processar(cmdtext, idx);
#define UsarParametros new tmp[128],idxp;tmp = Processar(cmdtext, idxp);
Processar(const s[], &i)
{
    new l = strlen(s);while ((i < l) && (s[i] <= ' ')) {
    i++;}new o = i;new r[20];while ((i < l) && (s[i] > ' ') && ((i - o) < (sizeof(r) - 1))) {
    r[i - o] = s[i];i++;}r[i - o] = EOS; return r;
}
Usando:
Para usar deve ser da Seguinte Forma:

pawn Код:
public OnPlayerCommandText(playerid, cmdtext[])
{
    UsarProcessador // Indica que Irб processar os Comandos
    CMD:("/cmd1") // Comando desta forma "CMD:("/COMANDO") "
    {
        UsarParametros //Indica que usaram parвmetros para /comandos [id] ,etc..
        printf("Vocк Digitou '/cmd1 %s",tmp);//Faz uma impressгo como exemplo do que digitamos
    }
    return 0;
}
Cуdigos Complementares:
Bom caso queira colocar mensagem do tipo, "Player OFF-LINE" ou Caracter Invalido,algo do Tipo faзa Assim:

pawn Код:
if(!IsPlayerConnected(playerid)) return SendClientMessage(playerid,0x08005,"O player Esta OFF-LINE");
if(!strlen(tmp)) return SendClientMessage(playerid,0x08005,"Digite /comando [id]|[texto]");
if(strval(tmp) == playerid) return SendClientMessage(playerid,0x08005,"Nгo pode usar esse comando em si mesmo");
( Como Podem Ver 'tmp' й o que o player Digitarб apуs o Comando )

Espero que tenham Gostado й bem Simples de se mexer,Bug? Envie uma PM para mim,irei testar a Corrigi-lo

CRЙDITOS A DRAKON
Reply
#2

Ta Mas pra tutorial
Reply
#3

Mais й um Filterscript, e sendo eu que fiz eu tenho total direito de explicar como funciona,ou nгo?

Quote:

O "mas" й uma conjunзгo adversativa. Й usada para dar idйia de oposiзгo entre duas oraзхes.
O "mais" й um adverbio de intensidade.

Reply
#4

Gostei do "FS" Drakon, mas como sempre tentarei melhorar ou pensar mais alto (menor).

OFF:
Entra no msn, que quero falar com vocк. xD
Reply
#5

Valeu Suba,ja entrei no msn *-*
Reply
#6

Eu n estou criticando, acho atй melhor assim, sу q deveria colocar o codigo pronto pra down, ja q se trata de um FS
Reply
#7

Sim eu Sei Dogu mais o cуdigo ja esta pronto,basta ler melhor o Tуpico,se eu postasse dessa forma nгo saberiam como usar ¬¬
Reply
#8

ATUALIZADO,rs.
Mudado para '\0'

pawn Код:
#define CMD:(%1) if(!strcmp(cmd,%1, true))
#define UsarProcessador new cmd[128],idx;cmd = Processar(cmdtext, idx);
#define UsarParametros new tmp[128],idxp;tmp = Processar(cmdtext, idxp);
Processar(const s[], &i)
{
    new l = strlen(s);while ((i < l) && (s[i] <= ' ')) {
    i++;}new o = i;new r[20];while ((i < l) && (s[i] > ' ') && ((i - o) < (sizeof(r) - 1))) {
    r[i - o] = s[i];i++;}r[i - o] = '\0'; return r;
}
Reply
#9

o.O ta mais pra copia do YCMD, sem querer ser chato. (E creio q o msm seja mais rapido)

Mas ta valendo. Talvez seja util algm dia
Reply


Forum Jump:


Users browsing this thread: 4 Guest(s)