06.04.2012, 06:55
(
Последний раз редактировалось Jeffrey_Hatrix Jeffrey_; 06.04.2012 в 12:50.
)
Bom dia, enfim aqui sгo 4:00 horas da manhг,
todos sabem que adoro tirar uma lasquinha do Pawn na madrugada.
Entгo aqui estou novamente para compartilhar com vocкs meu processador de comandos.
todos sabem que adoro tirar uma lasquinha do Pawn na madrugada.
Entгo aqui estou novamente para compartilhar com vocкs meu processador de comandos.
• Descriзгo:
Simples processador de comandos feito na mesma idйia do ZCMD, cria uma callback para todo comando criado, e chama essa callback pelo OnPlayerCommandText quando o player digita tal comando.
• Forma de uso:
Simples, contendo duas formas de adicionar comandos, sendo elas:
Код:
newCmd:teste(playerid,params[]) { new k; if(sscanf(params, "d", k)) return SendClientMessage(playerid, -1, "Correct Syntax: /teste params"); SendClientMessage(playerid, -1, "Valor printado!"); printf("[Debug] - Result do CMD: teste, %d", k); return 1; } // ou newCommand:teste2(playerid,params[]) { new k; if(sscanf(params, "d", k)) return SendClientMessage(playerid, -1, "Correct Syntax: /teste params"); SendClientMessage(playerid, -1, "Valor printado!"); printf("[Debug] - Result do CMD: teste, %d", k); return 1; }
- Como eu faria para criar um comando com a mesma funзгo de outro?
Код:
newCmd:teste(playerid,params[]) { new k; if(sscanf(params, "d", k)) return SendClientMessage(playerid, -1, "Correct Syntax: /teste params"); SendClientMessage(playerid, -1, "Valor printado!"); printf("[Debug] - Result do CMD: teste, %d", k); return 1; } newCommand:teste2(playerid,params[]) { return @teste(playerid, params); }
Код:
Specifier(s) Name Example values i, d Integer 1, 42, -10 c Character a, o, * l Logical true, false b Binary 01001, 0b1100 h, x Hex 1A, 0x23 o Octal 045 12 n Number 42, 0b010, 0xAC, 045 f Float 0.7, -99.5 g IEEE Float 0.7, -99.5, INFINITY, -INFINITY, NAN, NAN_E u User name/id (bots and players) ******, 0 q Bot name/id ShopBot, 27 r Player name/id ******, 42
-------------------------------------------------------------------------------------------------------------------
E aqui uma SS da bench, feito teste de velocidade... Tirem suas conclusхes e faзam seus testes tambйm !
-------------------------------------------------------------------------------------------------------------------
Espero que ajude alguns, obrigado.E aqui uma SS da bench, feito teste de velocidade... Tirem suas conclusхes e faзam seus testes tambйm !
-------------------------------------------------------------------------------------------------------------------
OBS: Desculpem pela desorganizaзгo do tуpico, nгo estou 100% acordado para me preocupar com detalhes de stйtica para um tуpico bonito.
Source:
pawn Код:
/******************************************************************************\
| |
| [Include] - Processador de comandos |
| By Jeffrey_Hatrix |
| Special thanks to: SlashPT for speed ideas |
| |
\******************************************************************************/
// JCMD Fast and simple, enjoy.
#if !defined MAX_CMD_PARAMS
#define MAX_CMD_PARAMS 256
#endif
#define newCmd:%1(%2) \
forward @%1(%2); \
public @%1(%2)
#define newCommand:%1(%2) \
newCmd:%1(%2)
static c_sys_cmd[MAX_CMD_PARAMS], c_sys_loop;
public OnPlayerCommandText(playerid, cmdtext[])
{
c_sys_loop = strfind((cmdtext[0] = 0x40 ,cmdtext), "\x20" );
c_sys_cmd [0] = '\0';
if(c_sys_loop != -1)
{
if(cmdtext[c_sys_loop+1] == '\0')
{
cmdtext[c_sys_loop] = '\0';
return (CallLocalFunction(cmdtext, "is", playerid, "\1") == -1) ? (0) : (1);
}
strmid(c_sys_cmd, cmdtext, 0, MAX_CMD_PARAMS);
c_sys_cmd[c_sys_loop] = '\0';
return (CallLocalFunction(c_sys_cmd, "is", playerid, cmdtext[c_sys_loop+1]) == -1) ? (0) : (1);
}
else
{
return (CallLocalFunction(cmdtext, "is", playerid, "\1") == -1) ? (0) : (1);
}
}
Special thanks to:
SlashPT, idйias para otimizaзгo e velocidade.
SlashPT, idйias para otimizaзгo e velocidade.