Vбrios comandos em um sу
PHP код:- Código:
public OnPlayerCommandText(playerid, commandid, params[]) {
switch(commandid) {
case iscmd("v,i,d,a"), iscmd("h,e,a,l,t,h"), : {
if(!params[0]) {
return SendClientMessage(playerid, -1, "[Erro]: Use /vida /health");
}
SetPlayerHealth(playerid, floatstr(params));
return true;
}
default: return SendClientMessage(playerid, -1, "[Erro]: Comando desconhecido, desculpe.");
}
return false;
}
Neste exemplo, caso digitar /health ou /vida. Ambos comandos farгo mesmo efeito.
Estes casos podem ser expandidos para muitos outros.
Como:
PHP код:Estes casos podem ser expandidos para muitos outros.
Como:
- Código:
public OnPlayerCommandText(playerid, commandid, params[]) {
switch(commandid) {
case iscmd("v,i,d,a"), iscmd("h,e,a,l,t,h"), iscmd("v"), iscmd("r,e,c,u,p,e,r,a,r") : {
if(!params[0]) {
return SendClientMessage(playerid, -1, "[Erro]: Use /vida /health /v /recuperar");
}
SetPlayerHealth(playerid, floatstr(params));
return true;
}
default: return SendClientMessage(playerid, -1, "[Erro]: Comando desconhecido, desculpe.");
}
return false;
}
Nesse caso, os quatros comandos farгo o mesmo efeito! Em outros processadores como ZCMD, precisava
PHP код:- Código:
cmd(comando1,playerid, params[]) {
}
cmd(comando2,playerid, params[]) return cmd_comando1(playerid, params[]);
Fazer o jogador digitar comandos
Alйm do mйtodo tradicional. em icmd7 vocк pode fazer o usuбrio digitar comandos atravйs de iscmd. Basta usar:
- Código:
OnPlayerCommandText( playerid, iscmd("v,i,d,a"), ""); /* /vida */
ou com params:
pawn Код:- Código:
OnPlayerCommandText( playerid, iscmd("v,i,d,a"), "40.5"); /* /vida 40.5 */
este mйtodo й mais veloz, por puxar a callback com valores e nгo com strings. Dessa maneira vбrias (talvez dezenas) de cйlulas a menos sгo criadas para repassar
Controle de comandos
Essa dica parece fбcil, mas sу й possнvel com icmd7 ser feita de forma fбcil
Caso fizeres:
pawn Код:Controle de comandos
Essa dica parece fбcil, mas sу й possнvel com icmd7 ser feita de forma fбcil
Caso fizeres:
- Código:
public OnPlayerCommandText(playerid, commandid, params[]) {
if(commandid != iscmd("v,i,d,a")) {
printf("Vocк nгo digitou /vida, mas sim outro comando");
return true;
}
}
Dessa maneira, й ao contrбrio. O jogador poderб digitar qualquer comando, mas sу irб ser processado se o comando for diferente de /vida
Listagem de comandos
pawn Код:Listagem de comandos
- Código:
public OnPlayerCommandText(playerid, commandid, params[]) {
switch(commandid) {
case iscmd("a") .. iscmd("z"): {
return SendClientMessage(playerid, -1, "Vocк digitou /a /b /c /d .. ou /z");
}
default: return SendClientMessage(playerid, -1, "[Erro]: Comando desconhecido, desculpe.");
}
return false;
}
Dessa maneira й declarado, que comandos de /a a /z irгo executar a mensagem. Neste caso /a /b /c /d /e /f /g e por aн vai. Este caso pode ser expandido para
PHP код:- Código:
iscmd("/aa") .. iscmd("/zz")
assim os comandos pegos serгo /aa /ab /ac /ad .. /za /zb /cc
Tambйm lembrando, que se o compilador detectar comandos iguais, ele anuncia o erro, da seguinte forma:
pawn Код:Tambйm lembrando, que se o compilador detectar comandos iguais, ele anuncia o erro, da seguinte forma:
- Código:
case iscmd("a") .. iscmd("z"): {
return SendClientMessage(playerid, -1, "Oi");
}
case iscmd("b"): {
return SendClientMessage(playerid, -1, "Tchau");
}
Quote:
error 040: duplicate "case" label (value X) |
pois o comando iscmd("b") estб incluнdo no iscmd("a") .. iscmd("z")
Comandos em forma de nъmeros
Em icmd7, todos comandos representam ids, dessa maneira vocк pode equivaler as s,t,r,i,n,g,s a nъmeros!
Para pegar o ID faзa:
pawn Код:Comandos em forma de nъmeros
Em icmd7, todos comandos representam ids, dessa maneira vocк pode equivaler as s,t,r,i,n,g,s a nъmeros!
Para pegar o ID faзa:
- Código:
printf("%d", iscmd("c,o,m,a,n,d,o"));
e retornarб um nъmero, no caso:
Quote:[19:35:38] 187935 |
Entгo basta fazer:
pawn Код:- Código:
[size=14][size=13]public OnPlayerCommandText(playerid, commandid, params[]) {
switch(commandid) {
case 187935: {
return SendClientMessage(playerid, -1, "Vocк digitou /comando");
}
default: return SendClientMessage(playerid, -1, "[Erro]: Comando desconhecido, desculpe.");
}
return false;
}[/size][/size]
Estranho, nгo?
Conforme as atualizaзхes, icmd7 serб atualizado e vira novos truques para fazer.
Em breve estarei estendendo este tutorial
Conforme as atualizaзхes, icmd7 serб atualizado e vira novos truques para fazer.
Em breve estarei estendendo este tutorial
Creditos: IPSBruno