09.06.2012, 04:46
(
Последний раз редактировалось CidadeNovaRP; 10.06.2012 в 23:16.
Причина: Atualizado, erro fatal concertado
)
Bem, minha primeira Include que acredito que preste...
Para mim funcionou perfeitamente, estб Include cria sequencia de Timer's, que vocк define a quantidade de vezes que este Timer serб repetido (loop), tirando necessidade de criar uma variбvel para cada tempo e usar o "true".
Ele possui 3 comandos por macros:
LoopTimerCreate("FuncName", {Float,_}:...)
- Usado para criar a funзгo que serб usada na Sequencia do LoopTimerStart
Exemplo:
LoopTimerEnd("FuncName", {Float,_}:...)
- Й chamada quando a "FuncName" й finalizada (quando a Sequкncia acaba, o loop)
Exemplo:
LoopTimerStart("FuncName", tempo, repeticoes, "Const Format", {Float,_}:...);
- Inicia a Sequencia de acordo com o Tempo e suas Repetiзхes e etc
Exemplo:
EXEMPLO FINAL:
INCLUDE:
Espero que gostem, comentem !
ATUALIZADO POR FINAL
VELOCIDADE - 0.2x MAIS LENTO (CONSEGUI)
OTIMIZAЗГO - 0.5 A MAIS OTIMIZADO EM COMPARAЗГO TAMANHO DO .AMX
SIMPLICIDADE - 2/3x MAIS SIMPLES
DOWNLOAD DE PROVAS/CODES DOS TESTES/INCLUDE:
Para mim funcionou perfeitamente, estб Include cria sequencia de Timer's, que vocк define a quantidade de vezes que este Timer serб repetido (loop), tirando necessidade de criar uma variбvel para cada tempo e usar o "true".
Ele possui 3 comandos por macros:
LoopTimerCreate("FuncName", {Float,_}:...)
- Usado para criar a funзгo que serб usada na Sequencia do LoopTimerStart
Exemplo:
pawn Код:
LoopTimerCreate("Perseguir", playerid, giveid)
{
new Float:Pos[3];
GetPlayerPos(giveid, Pos[0], Pos[1], Pos[2]);
SetPlayerCheckpoint(playerid, Pos[0], Pos[1], Pos[2], 3.0);
return 1;
}
- Й chamada quando a "FuncName" й finalizada (quando a Sequкncia acaba, o loop)
Exemplo:
pawn Код:
LoopTimerEnd("Perseguir", playerid, giveid)
{
DisablePlayerCheckpoint(playerid);
printf("Loop Timer Finished");
return 1;
}
- Inicia a Sequencia de acordo com o Tempo e suas Repetiзхes e etc
Exemplo:
pawn Код:
LoopTimerStart("Perseguir", 1000, time, "ii", playerid, giveid);
EXEMPLO FINAL:
pawn Код:
#include a_samp
#include zcmd
#include sscanf
#include looptimer
LoopTimerCreate("Perseguir", playerid, giveid)
{
new Float:Pos[3];
GetPlayerPos(giveid, Pos[0], Pos[1], Pos[2]);
SetPlayerCheckpoint(playerid, Pos[0], Pos[1], Pos[2], 3.0);
return 1;
}
LoopTimerEnd("Perseguir", playerid, giveid)
{
DisablePlayerCheckpoint(playerid);
printf("Loop Timer Finished");
return 1;
}
CMD:perseguir(playerid, params[])
{
new giveid, time;
if(sscanf(params, "dd", giveid, time)) return SendClientMessage(playerid, -1, "USE: /seguir [ID] [TEMPO EM SEGUNDOS]");
LoopTimerStart("Perseguir", 1000, time, "ii", playerid, giveid);
return 1;
}
INCLUDE:
pawn Код:
#include a_samp
#if defined tabsize
#undef tabsize
#endif
#pragma tabsize 0
#define LoopTimerCreate("%0",%1) \
forward Func_%0(%1); \
forward End_%0(%1); \
public Func_%0(%1)
#define LoopTimerStart(%0,%1,%2,%3,%4); \
for(new c, f[36]; c < %2; c++) \
{ \
format(f, sizeof(f), "%s", %0); \
if(c == %2 - 1) \
{ \
strins(f, "End_", 0); \
SetTimerEx(f, %1*c, false, "%3", %4); \
} \
else \
{ \
strins(f, "Func_", 0); \
SetTimerEx(f, %1*c, false, "%3", %4); \
} \
}
#define LoopTimerEnd("%0",%1) \
public End_%0(%1)
ATUALIZADO POR FINAL
VELOCIDADE - 0.2x MAIS LENTO (CONSEGUI)
OTIMIZAЗГO - 0.5 A MAIS OTIMIZADO EM COMPARAЗГO TAMANHO DO .AMX
SIMPLICIDADE - 2/3x MAIS SIMPLES
DOWNLOAD DE PROVAS/CODES DOS TESTES/INCLUDE: