[AJUDA] Tempo para ocorrer funcao -
Mattos - 30.09.2011
Pessoal eu tenho a seguinte coisa:
pawn Код:
public OnPlayerMarkMap(playerid, MarkID, Float:X, Float:Y, Float:Z)
{
SetPlayerPos(playerid,mapLastX[playerid],mapLastY[playerid],mapLastZ[playerid]);
CreateExplosion(X, Y, Z, 7, 10.0);
return 1;
}
Sу que eu queria que a explosao fosse criada apуs 5 segundos...
Ae eu fiz...
pawn Код:
public OnPlayerMarkMap(playerid, MarkID, Float:X, Float:Y, Float:Z)
{
SetPlayerPos(playerid,mapLastX[playerid],mapLastY[playerid],mapLastZ[playerid]);
SetTimer("TimeToExplosion", 5000, 0);
return 1;
}
forward TimeToExplosion();
public TimeToExplosion()
{
CreateExplosion(X, Y, Z, 7, 10.0);
}
Porem ele da erro no public TimeToExplosion pq o X Y e Z nao estao definidos... Eles tao definidos no public OnPlayerMarkMap... Entao o que eu faзo? Teria uma forma pra usar GetTickCount para realizar a explosao?
Re: [AJUDA] Tempo para ocorrer funcao -
Pharrel - 30.09.2011
pawn Код:
new Float:mapNewX[MAXPLAYERS], Float:mapNewY[MAXPLAYERS], Float:mapNewZ[MAXPLAYERS];
public OnPlayerMarkMap(playerid, MarkID, Float:X, Float:Y, Float:Z)
{
mapNewX[playerid] = X, mapNewY[playerid] = Y, mapNewZ[playerid] = Z;
SetPlayerPos(playerid,mapLastX[playerid],mapLastY[playerid],mapLastZ[playerid]);
SetTimerEx("TimeToExplosion", 5000, false, "i", playerid);
return 1;
}
forward TimeToExplosion(playerid);
public TimeToExplosion(playerid)
{
CreateExplosion(mapNewX[playerid],mapNewY[playerid],mapNewZ[playerid], 7, 10.0);
return 1;
}
Editado pq tinha erro antes.
Re: [AJUDA] Tempo para ocorrer funcao -
Mattos - 30.09.2011
Vocк mudou a minha funcao pharrel... a explosao й pra ocorrer em X, Y, Z
Re: [AJUDA] Tempo para ocorrer funcao -
Pharrel - 30.09.2011
Й pra funcionar do jeito q ta agora... editei pq tinha erro antes.
Re: [AJUDA] Tempo para ocorrer funcao -
Mattos - 30.09.2011
Outra coisa nao pode ser
SetTimerEx("TimeToExplosion", 5000, false, "i", playerid);
se nao vai explodir sу pra quele player... nao posso usar simplesmente
SetTimer("TimeToExplosion", 5000, 0); ?
Re: [AJUDA] Tempo para ocorrer funcao -
Pharrel - 30.09.2011
nгo, o settimerex й sу pra public receber o ID do player e checar o newMap?[
playerid], a explosao vai ocorrer pra todos
Re: [AJUDA] Tempo para ocorrer funcao -
Mattos - 30.09.2011
eu testei com SetTimer("TimeToExplosion", 5000, 0); e deu certo...
Agora posso lhe perguntar outra coisa...
Como eu faria para que em um Range tal do ponto X Y Z (onde ocorre a explosao), durante esses 5 segundos toque o som PlayerPlaySound(playerid,1057,0.0,0.0,0.0); a cada meio segundo (ou seja ele tocara 10 vezes) para as pessoas que estivessem dentro desse range?
Re: [AJUDA] Tempo para ocorrer funcao -
Pharrel - 30.09.2011
SetTimer("TimeToExplosion", 5000, 0); desse jeito vai explodir na coordenada q o player id 0 clicou no mapa por ultimo, se o player id 2 clicar no mapa n vai explodir onde ele colocou, vc tem q por como eu deixei no codigo pra funcionar...
pawn Код:
new TimerBombRange[MAXPLAYERS]//com suas news
TimerBombRange[playerid] = SetTimerEx("CheckBombRange", 500, true, "i", playerid);//em baixo do SetTimerEx da funзгo q clica no mapa
KillTimer(TimerBombRange[playerid]);//na funзгo que cria a explosгo.
forward CheckBombRange(playerid);
public CheckBombRange(playerid)
{
for(new i=0; i<MAXPLAYERS; i++)
{
if(IsPlayerInRangeOfPoint(i, DISTANCIA DO PONTO, newMapX[playerid], newMapY[playerid], newMapZ[playerid]))
{
PlayerPlaySound(i,1057,0.0,0.0,0.0);
}
}
return 1;
}
Re: [AJUDA] Tempo para ocorrer funcao -
Shadoww5 - 30.09.2011
Quote:
Originally Posted by Mateuscm
Pessoal eu tenho a seguinte coisa:
pawn Код:
public OnPlayerMarkMap(playerid, MarkID, Float:X, Float:Y, Float:Z) {
SetPlayerPos(playerid,mapLastX[playerid],mapLastY[playerid],mapLastZ[playerid]); CreateExplosion(X, Y, Z, 7, 10.0); return 1; }
Sу que eu queria que a explosao fosse criada apуs 5 segundos...
Ae eu fiz...
pawn Код:
public OnPlayerMarkMap(playerid, MarkID, Float:X, Float:Y, Float:Z) {
SetPlayerPos(playerid,mapLastX[playerid],mapLastY[playerid],mapLastZ[playerid]); SetTimer("TimeToExplosion", 5000, 0); return 1; }
forward TimeToExplosion(); public TimeToExplosion() { CreateExplosion(X, Y, Z, 7, 10.0); }
Porem ele da erro no public TimeToExplosion pq o X Y e Z nao estao definidos... Eles tao definidos no public OnPlayerMarkMap... Entao o que eu faзo? Teria uma forma pra usar GetTickCount para realizar a explosao?
|
PHP код:
public OnPlayerMarkMap(playerid, MarkID, Float:X, Float:Y, Float:Z)
{
SetPlayerPos(playerid,mapLastX[playerid],mapLastY[playerid],mapLastZ[playerid]);
SetTimerEx("TimeToExplosion", 5000, 0, "fff", X, Y, Z);
return 1;
}
forward TimeToExplosion(Float:X, Float:Y, Float:Z);
public TimeToExplosion(Float:X, Float:Y, Float:Z) return CreateExplosion(X, Y, Z, 7, 10.0);
Quote:
Originally Posted by Mateuscm
eu testei com SetTimer("TimeToExplosion", 5000, 0); e deu certo...
Agora posso lhe perguntar outra coisa...
Como eu faria para que em um Range tal do ponto X Y Z (onde ocorre a explosao), durante esses 5 segundos toque o som PlayerPlaySound(playerid,1057,0.0,0.0,0.0); a cada meio segundo (ou seja ele tocara 10 vezes) para as pessoas que estivessem dentro desse range?
|
1 - Qual o ID do som ?
2 - Ele deverб ser tocado na ponto X, Y, Z ou mapLastX[playerid], mapLastY[playerid], mapLastZ[playerid] ?
Re: [AJUDA] Tempo para ocorrer funcao -
Mattos - 30.09.2011
1052... e deverб ser colocado no X Y Z (que onde vai explodir)... ae ele deve tocar a cada meio segundo a cada 5 segundos (que й o tempo que a "bomba" demorarб a explodir...)... Ou seja, quem tiver no range desse ponto (nao sei qual range... mais algo em torno do tamanho de uma piscina...) deverб escutar esses 10 bips antes da bomba chegar, para saber que ta vindo uma bomba... igual quando vc ta em um aviao e um hydra atira em vc...