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 = Angulo, usei 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