[Tutorial] [Bбsico]Fazendo teleportes com dcmd
#1

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

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
Agora ainda no pawn, aperte ctrl + f e digite public OnPlayerCommandText(playerid, cmdtext[])

Acresente lб dentro
pawn Код:
#if USE_COMMANDS == 1
Por inquanto nгo mexeremos ainda ai dentro.. Agora vamos criar 1 comando bбsico de teleporte aleatorio sera simples.

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");
}
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
pawn Код:
#if USE_COMMANDS == 1
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:

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);
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:

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);
meu comando como й /iraero ficaria assim

pawn Код:
dcmd(iraero, 6, cmdtext);
Ficaria abaixo de todos o de cima, por que contйm 6 letras

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;
}
Й 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
Reply


Messages In This Thread
[Bбsico]Fazendo teleportes com dcmd - by Sampizito - 24.12.2011, 00:14
Re: [Bбsico]Fazendo teleportes com dcmd - by RebeloX - 24.12.2011, 00:22
Re: [Bбsico]Fazendo teleportes com dcmd - by Sampizito - 24.12.2011, 00:24
Re: [Bбsico]Fazendo teleportes com dcmd - by Victor Cesaroni - 24.12.2011, 00:28
Re: [Bбsico]Fazendo teleportes com dcmd - by Sampizito - 24.12.2011, 00:29
Re: [Bбsico]Fazendo teleportes com dcmd - by RebeloX - 24.12.2011, 00:34
Re: [Bбsico]Fazendo teleportes com dcmd - by Sampizito - 24.12.2011, 00:37
Re: [Bбsico]Fazendo teleportes com dcmd - by !Niiw - 24.12.2011, 08:04
Re: [Bбsico]Fazendo teleportes com dcmd - by Sampizito - 24.12.2011, 15:00
Re: [Bбsico]Fazendo teleportes com dcmd - by Nake01 - 01.01.2012, 00:26

Forum Jump:


Users browsing this thread: 2 Guest(s)