[Include] dCMD - Processador de comandos
#1

dCMD - Processador de comandos

Basicamente o uso й igual ao do ZCMD.

Testes de velocidade:

Nгo fiz pensando em ser mais veloz, fiz apenas no intuito de testar o que eu sei(nгo tenho certeza sobre a precisгo dos testes).

10000 interaзхes
Nem sempre й mais rapida e nem sempre mais lenta - Pastebin (usei no teste)
Com Params
PHP Code:
146ms DCMD
155ms 
ZCMD
154ms 
DCMD
152ms 
ZCMD 
Sem Params
PHP Code:
126ms DCMD
124ms 
ZCMD
126ms 
DCMD
131ms 
ZCMD 
Include:
PHP Code:
#if defined _dcmd_included
    #endinput
#endif    
#define _dcmd_included
#define COMMAND:%1(%2)          \
            
forward dcmd_%1(%2); \
            public 
dcmd_%1(%2)
#define CMD:%1(%2) \
            
COMMAND:%1(%2)
#define command(%1,%2,%3) \
            
COMMAND:%1(%2, %3)
#define cmd(%1,%2,%3) \
            
COMMAND:%1(%2, %3)
#if !defined isnull
    #define isnull(%1) \
                
((!(%1[0])) || (((%1[0]) == '\1') && (!(%1[1]))))
#endif
 
static __c__command[32] = "dcmd_";
forward OnPlayerCommandPerfomed(playeridsucess);
public 
OnPlayerCommandText(playeridcmdtext[]) 

    
__command "dcmd_",
    
__c 0;
 
    while(
cmdtext[++__c] > 0x20)
    if(
0x41 <= cmdtext[__c] <= 0x5A)
        
cmdtext[__c] = tolower(cmdtext[__c]);
    
strcat(__commandcmdtext__c+6);
    
strdel(__command56);
    if(!
cmdtext[__c])
        return 
CallLocalFunction("OnPlayerCommandPerfomed""ii"playeridCallLocalFunction(__command"is"playerid"\1")), true;
    
    return 
CallLocalFunction("OnPlayerCommandPerfomed""ii"playeridCallLocalFunction(__command"is"playeridcmdtext[__c+1])), true;

Pastebin

Pra retornar a mensagem de que um comando nгo existe vocк pode utilizar (public obrigatуria):
PHP Code:
public OnPlayerCommandPerfomed(playeridsucess)
{
    if(!
sucess)
        return 
SendClientMessage(playerid0xFF0000AA"ERRO: Comando Invalido!");
    return 
1;

Crйditos:
DanDRT - Include.

Agradecimentos:
JonathanFeitosa - Ajudou-me nos testes e deu-me algumas dicas.

-

Me esforcei pra fazer, espero que se forem criticar que faзam crнticas construtivas.
Reply
#2

Vou testar amanhг depois em um dos meus filterscripts.
Mais parece que ficou bom
Parabйns.
3 Publicaзхes em Release de uma lapada sу hsaushaushuashuashu
Reply
#3

Bom, primeiramente parabйns, й sempre bom manter os estudos em dia, no mais, a include estб simples e nгo contйm os mesmos features da ZCMD para estar batendo a mesma velocidade, entгo nгo hб benefнcios em usa-la, correto ?
Reply
#4

Parabйns pela include.
Reply
#5

Quote:
Originally Posted by Willian_Luigi
View Post
Bom, primeiramente parabйns, й sempre bom manter os estudos em dia, no mais, a include estб simples e nгo contйm os mesmos features da ZCMD para estar batendo a mesma velocidade, entгo nгo hб benefнcios em usa-la, correto ?
nгo fiz pra bater velocidades, fiz mais para testar o que eu sei :v

Quote:
Originally Posted by xCR7
View Post
Parabйns pela include.
Obrigado :v
Reply
#6

Quote:
Originally Posted by Willian_Luigi
View Post
Bom, primeiramente parabйns, й sempre bom manter os estudos em dia, no mais, a include estб simples e nгo contйm os mesmos features da ZCMD para estar batendo a mesma velocidade, entгo nгo hб benefнcios em usa-la, correto ?
Nao, porem й bom ver que o povo aqui esta fazendo para estudar e nao fazer so por fazer.

Como eu vejo muitos fazendo so por fazer ai coisas que chamam de "tutoriais".
Reply
#7

Quote:
Originally Posted by DanDRT
View Post
nгo fiz pra bater velocidades, fiz mais para testar o que eu sei :v
Foi oque se passou pela minha cabeзa, por isso fiz a pergunta. Podia ter citado isso no tуpico, alguns usuбrios nгo tem o conhecimento para avaliar a melhoria entre includes, e as vezes sу olham o tуpico e jб pensam em adotar por pensar ser melhor... Esses detalhes vocк (criador da include) tem que explicar...

Assim como por exemplo, para usar a sua include o usuбrio tem que obrigatуriamente criar uma public OnPlayerCommandPerfomed, se nгo a mesma nгo funcionarб e possivelmente irб gerar erros...

Entende ? Vocк precisa detalhar o uso e os seus devidos benefнcios.

Quote:
Originally Posted by PT
View Post
Nao, porem й bom ver que o povo aqui esta fazendo para estudar e nao fazer so por fazer.

Como eu vejo muitos fazendo so por fazer ai coisas que chamam de "tutoriais".
Й уbvio que й bom, por isso foi uma das primeiras coisas que citei, caso vocк nгo saiba ler... ^^
Reply
#8

Parabйns pela include DanDRT, testarei isso em breve
Reply
#9

Quote:
Originally Posted by Willian_Luigi
View Post
Foi oque se passou pela minha cabeзa, por isso fiz a pergunta. Podia ter citado isso no tуpico, alguns usuбrios nгo tem o conhecimento para avaliar a melhoria entre includes, e as vezes sу olham o tуpico e jб pensam em adotar por pensar ser melhor... Esses detalhes vocк (criador da include) tem que explicar...

Assim como por exemplo, para usar a sua include o usuбrio tem que obrigatуriamente criar uma public OnPlayerCommandPerfomed, se nгo a mesma nгo funcionarб e possivelmente irб gerar erros...

Entende ? Vocк precisa detalhar o uso e os seus devidos benefнcios.



Й уbvio que й bom, por isso foi uma das primeiras coisas que citei, caso vocк nгo saiba ler... ^^
Corrigido
Reply
#10

Nossa, atй que enfim um trabalho decente nessa board(ultimamente), onde nesta board um mero "tutorial" tenha mais feedback do que um trabalho de verdade(como o seu).

Primeiramente, analisei seu cуdigo, e analisei com outros processadores, vocк deu mais ou menos uma minimizada, mas de cara dб para ver que foi vocк fez.

Se eu trabalhasse com o Pawn ainda, eu realmente iria dar uma estudada em seu cуdigo, que apesar de nгo estб longo(nгo que isso significa alguma coisa), conseguiu ser mais 'eficiente' que atй o prуprio zCMD, porйm ele(zCMD) contйm mais coisas, mas nгo й o caso comparar os 2, mas de fato seu trabalho, depois do ъltimo trabalho Willian, й com certeza o melhor.

Parabйns Dan.
Reply
#11

A include estб legal e interessante de ser estudada. Jб dei rep. ^^
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)