24.12.2011, 00:14
De longe, o sistema de processamento mais comum de comando em termos de uso й o mйtodo usado pela primeira vez para strtok SA: MP na LVDM original por jax. Esta exposiзгo, desde o inнcio estabeleceu firmemente o seu uso em scripts, porйm й muito lento em comparaзгo com outros mйtodos, um desses mйtodos, dcmd, й explicado aqui, juntamente com um mйtodo de extraзгo de parвmetros com seguranзa e rapidez a partir do comando digitado.
A vantagem de colocar seus comandos via dcmd й que os comandos nгo precisam ficar dentro da OnPlayerCommandText , somente as definiзхes delas.
Para colocar seus comando via dcmd siga o tutorial abaixo..
Antes de comerзamos a fazer qualquer comando via dcmd , coloque no topo do seu GAME MODE
Agora ainda no pawn, aperte ctrl + f e digite public OnPlayerCommandText(playerid, cmdtext[])
Acresente lб dentro
Por inquanto nгo mexeremos ainda ai dentro.. Agora vamos criar 1 comando bбsico de teleporte aleatorio sera simples.
Diferente dos outras maneiras de comando o params do dcmd segue abaixo do comando com o # , como vocкs podem ver acima , se essa definiзгo nгo conter em todos seus comandos dcmd, ira da erro, e nгo irб funcionar
Obs : O comando poderб ir em qualquer lugar, nгo й necessбrio estб dentro da OnPlayerCommandText.
Apуs nos realizarmos o comando, agora vocк apertarб ctrl + f em seu pawn e digitarб novamente
Agora й a parte mais interessante, diferente de todos outros modelos abaixo da definiзгo use_comands ficarб todos os comandos dcmd , de acordo com o numero de letras em ordem crescente como segue no exemplo abaixo
EX:
Peguei 1 exemplo do meu Game mode; como vocкs podem ver os comandos sempre seguiram nesse padrгo
dcmd(comando,numero de letras,cmdtext); lembrando que se seu comando for 2 letras vocк deverб por abaixo de todos dcmd de 1 letra, seguido de um espaзo , EX:
meu comando como й /iraero ficaria assim
Ficaria abaixo de todos o de cima, por que contйm 6 letras
E assim vai indo..
No final da public , vocк colocarб isso
Й Simples , quem tiver alguma dъvida, basta postar abaixo que tiro sua dъvida
OBS: Totalmente proibido Trolls aqui, й um tutorial bбsico . Aceito sugestхes e criticas e elogios tambйm
Clique aqui e conheзa uma stock feita pelo Victor Cesaroni
Clique aqui e saiba como fazer comandos por zcmd & sscanf pelo membro BlueX
Fonte do texto : Tibia Wiki
Mais informaзхes https://sampwiki.blast.hk/wiki/Dcmd
A vantagem de colocar seus comandos via dcmd й que os comandos nгo precisam ficar dentro da OnPlayerCommandText , somente as definiзхes delas.
Para colocar seus comando via dcmd siga o tutorial abaixo..
Antes de comerзamos a fazer qualquer comando via dcmd , coloque no topo do seu GAME MODE
pawn Код:
#define dcmd(%1,%2,%3) if(!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
pawn Код:
#define USE_COMMANDS 1
Acresente lб dentro
pawn Код:
#if USE_COMMANDS == 1
pawn Код:
dcmd_iraero(playerid, params[])
{
#pragma unused params
SetPlayerPos(playerid, 1950, 5245, 2547);
SetPlayerFacingAngle(playerid, 0.0);
SetPlayerInterior(playerid, 0);
SetPlayerVirtualWorld(playerid, 0);
return SendClientMessage(playerid, , "[INFO]Vocк foi teleportado com sucesso");
}
Obs : O comando poderб ir em qualquer lugar, nгo й necessбrio estб dentro da OnPlayerCommandText.
Apуs nos realizarmos o comando, agora vocк apertarб ctrl + f em seu pawn e digitarб novamente
pawn Код:
#if USE_COMMANDS == 1
EX:
pawn Код:
dcmd(g, 1, cmdtext);
dcmd(a, 1, cmdtext);
dcmd(b, 1, cmdtext);
dcmd(c, 1, cmdtext);
dcmd(d, 1, cmdtext);
dcmd(g, 1, cmdtext);
dcmd(h, 1, cmdtext);
dcmd(i, 1, cmdtext);
dcmd(j, 1, cmdtext);
dcmd(r, 1, cmdtext);
dcmd(comando,numero de letras,cmdtext); lembrando que se seu comando for 2 letras vocк deverб por abaixo de todos dcmd de 1 letra, seguido de um espaзo , EX:
pawn Код:
dcmd(g, 1, cmdtext);
dcmd(m, 1, cmdtext);
dcmd(d, 1, cmdtext);
dcmd(a, 1, cmdtext);
dcmd(q, 1, cmdtext);
dcmd(v, 1, cmdtext);
dcmd(i, 1, cmdtext);
dcmd(j, 1, cmdtext);
dcmd(r, 1, cmdtext);
dcmd(ra, 2, cmdtext);
dcmd(te, 2, cmdtext);
pawn Код:
dcmd(iraero, 6, cmdtext);
E assim vai indo..
No final da public , vocк colocarб isso
pawn Код:
#endif // aqui ficarб a mensagem de quando o player colocar um comando que nгo existe ..
new string[128];
format(string,128,"[ERRO] O comando %s nгo й vбlido. Digite /ajuda para mais informaзхes.", cmdtext);
SendClientMessage(playerid, sua cor, string);
return 1;
}
OBS: Totalmente proibido Trolls aqui, й um tutorial bбsico . Aceito sugestхes e criticas e elogios tambйm

Clique aqui e conheзa uma stock feita pelo Victor Cesaroni
Clique aqui e saiba como fazer comandos por zcmd & sscanf pelo membro BlueX
Fonte do texto : Tibia Wiki
Mais informaзхes https://sampwiki.blast.hk/wiki/Dcmd