17.08.2011, 17:27
Bem estou fazendo meu firesystem, ele ainda estб na versгo BETA, mas hoje reparei em um bug muito sinistro '-'
Vou exemplificar o bug.
Temos 3 Coordenadas a A,B e C.
Dai o server escolhe a coordenada B, e eu usei o CreateExplosion, porque tem uns id's que cria chamas, dai criei um settimer para definir que de 1 em 1 segundo ele criava explosхes durante 1 minuto, sу que o erro й o seguinte, o server escolheu a coordenada B, quando passa para repetir as explosхes ele volta a selecionar outra coordenada ou seja, ele escolhe a B, depois A, e no fim C, e volta ao seguinte, o que eu queria colocar era salvar a coordenada escolhida pelo servidor, vou passar o code do settimer mais o random.
SetTimer
Random
OBS: o KillerTime irб matar a public Fire para nгo repetir mais que 1 minuto, dai recomeзa o sistema novamente, e eu usei o Usado == 1 para ele nгo repetir os checkpoints.
Vou exemplificar o bug.
Temos 3 Coordenadas a A,B e C.
Dai o server escolhe a coordenada B, e eu usei o CreateExplosion, porque tem uns id's que cria chamas, dai criei um settimer para definir que de 1 em 1 segundo ele criava explosхes durante 1 minuto, sу que o erro й o seguinte, o server escolheu a coordenada B, quando passa para repetir as explosхes ele volta a selecionar outra coordenada ou seja, ele escolhe a B, depois A, e no fim C, e volta ao seguinte, o que eu queria colocar era salvar a coordenada escolhida pelo servidor, vou passar o code do settimer mais o random.
SetTimer
pawn Код:
public RandomBomb()
{
TimeFire = SetTimer("Fire",1000,1);
SetTimer("Bonus",100000,0);
SetTimer("KillFire",60000,0);
}
pawn Код:
forward Fire(playerid);
public Fire(playerid)
{
new Float:X ,Float:Y ,Float:Z;
new rand = random(sizeof(gBombs));
CreateExplosion( gBombs[rand][0], gBombs[rand][1], gBombs[rand][2], 1, 10);
if(Bombeiro[playerid] == true)
{
if(Usado == 0)
{
GetPlayerName(playerid,Nome,MAX_PLAYER_NAME);
format(Str, sizeof(Str),"Oficial %s Estб avendo um incendio vб ate o checkpoint", Nome);
SendClientMessage(playerid,0x1E90FFFF,Str);
if(check[0] != X) { check[0] = X; }
else if(check[1] != Y) { check[1] = Y; }
else if(check[2] != Z) { check[2] = Z; }
SetPlayerCheckpoint(playerid, gBombs[rand][0], gBombs[rand][1], gBombs[rand][2], 8.0);
check[0] = gBombs[rand][0];
check[1] = gBombs[rand][1];
check[2] = gBombs[rand][2];
Usado = 1;
}
}
}