Criando Macros


Vamos melhorar o desempenho do seu GameMode e a velocidade para terminar ele e deixar mais otimizado?

Venho Ensinar a vocês da HomeHots, como criar um Macro :)

Veja o macro abaixo :
#define Teleporte(%0,%1,%2,%3,%4);  SetPlayerPos(%0,%1,%2,%3), SetPlayerFacingAngle(%0,%4);

Os %0,%1,%2,%3,%4 define os parâmetros,  ou seja:

0% = playerid, usei no SetPlayerPos e SetPlayerFacingAngle pois ambos tem parametro playerid.
%1 = CorX, usei no SetPlayerPos para definir que no parâmetro 1 vou por CorX. 
%2 = CorY, usei no SetPlayerPos para definir que no parâmetro 2 vou por CorY. 
%3 = CorZ, usei no SetPlayerPos para definir que no parâmetro 3 vou por CorZ. 
%4 = Angulousei no SetPlayerFacingAngle para definir que no parâmetro 4 vou por o Angulo. 


Definindo o Macro no topo do GameMode, você poderá usar agora:
Teleporte(playerid, CORX, CORY, CORZ, ANGULO);


Em Vez de você fazer:
SetPlayerPos(playerid, CORX, CORY, CORZ), 
SetPlayerFacingAngle(playerid, ANGULO);

Dica: Caso fique muito grande e desorganizado se por na mesma linha, use /.
Exemplo:

#define Teleporte(%0,%1,%2,%3,%4);  \
                                        SetPlayerPos(%0,%1,%2,%3), SetPlayerFacingAngle(%0,%4);


Outros Exemplos de Macros:


#define LimparLinhas(%0,%1);  \
for(new ii; ii < %1; ii++) { SendClientMessage(%0, -1, " "); }
Uso: LimparLinhas(playerid, QuantidadeDeLinhas);



#define EquiparVidaColete(%0,%1,%2); \
SetPlayerHealth(%0, %1), SetPlayerArmour(%0, %2);
Em vez de: SetPlayerHealth(playerid, QUANTIDADE), SetPlayerArmour(playerid, QUANTIDADE);
Use: EquiparVidaColete(playerid, QuantidadeVida, QuantidadeColete);


#define Loop(%0,%1) for(new %0; %0<%1;++%0)
Em vez de: for(new i; i < MAX_PLAYERS; i ++)
Use: Loop(i, MAX_PLAYERS);


#define Comando(%0) strcmp(cmdtext, %0, true) == 0
Em vez de: if(strcmp(cmdtext, "/ronaldo", true) == 0)
Use: if(Comando("/ronaldo"))





E assim vai Galera... Se tiver dúvidas e erros basta comentar !
Créditos: JonathanFeitosa