13.02.2015, 00:47
(
Last edited by DanDRT; 14/02/2015 at 03:43 PM.
)
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
Sem Params
Include:
Pastebin
Pra retornar a mensagem de que um comando nгo existe vocк pode utilizar (public obrigatуria):
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.
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
PHP Code:
126ms - DCMD
124ms - ZCMD
126ms - DCMD
131ms - ZCMD
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(playerid, sucess);
public OnPlayerCommandText(playerid, cmdtext[])
{
__command = "dcmd_",
__c = 0;
while(cmdtext[++__c] > 0x20)
if(0x41 <= cmdtext[__c] <= 0x5A)
cmdtext[__c] = tolower(cmdtext[__c]);
strcat(__command, cmdtext, __c+6);
strdel(__command, 5, 6);
if(!cmdtext[__c])
return CallLocalFunction("OnPlayerCommandPerfomed", "ii", playerid, CallLocalFunction(__command, "is", playerid, "\1")), true;
return CallLocalFunction("OnPlayerCommandPerfomed", "ii", playerid, CallLocalFunction(__command, "is", playerid, cmdtext[__c+1])), true;
}
Pra retornar a mensagem de que um comando nгo existe vocк pode utilizar (public obrigatуria):
PHP Code:
public OnPlayerCommandPerfomed(playerid, sucess)
{
if(!sucess)
return SendClientMessage(playerid, 0xFF0000AA, "ERRO: Comando Invalido!");
return 1;
}
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.