Nгo funciona com SetTimer
#1

Eai pessoal blz ?

Alguйm saberia me dizer porque essa funзгo funciona no OnPlayerUpdate mais nгo funciona em um SetTimer ?

Код:
	if(GetPVarInt(playerid, "IniciouDerby") == 1)
  	{
		if(GetPVarInt(playerid, "AlturaDerby") == 1)
		{
     		if(ChecarAltura(playerid, 16.0))
     		{
     			DeletePVar(playerid,"IniciouDerby");
     			DeletePVar(playerid,"Derby");
     			{
				SpawnPlayer(playerid);
				for(new i=0; i < PlayersDerby; i++)
				{
				new String[40],Nome[24];
				GetPlayerName(playerid,Nome,sizeof(Nome));
				format(String,sizeof(String),"%s Caiu no mar!",Nome);
				SendClientMessage(playerid,PerdeuDerby,String);
				}
  	      	}
  	   	}
	}
}
Reply
#2

Ela funciona em um SetTimer, vocк fez algo errado.
Reply
#3

aproveitando o topico alguem poderia ensinar o basico de settimer =P?
n entendo '-'
Reply
#4

Fiz assim:

Код:
forward Derby(playerid);

SetTimer("Derby",2000,true);

public Derby(playerid)
{
	if(GetPVarInt(playerid, "IniciouDerby") == 1)
  	{
		if(GetPVarInt(playerid, "AlturaDerby") == 1)
		{
     		if(ChecarAltura(playerid, 16.0))
     		{
     			DeletePVar(playerid,"IniciouDerby");
     			DeletePVar(playerid,"Derby");
     			{
				SpawnPlayer(playerid);
				for(new i=0; i < PlayersDerby; i++)
				{
				new String[40],Nome[24];
				GetPlayerName(playerid,Nome,sizeof(Nome));
				format(String,sizeof(String),"%s Caiu no mar!",Nome);
				SendClientMessage(playerid,PerdeuDerby,String);
				}
  	          	}
  	   	}
	}
}
return 1;
}
Ai estб mais ou menos pois nem usei o pawn.
Reply
#5

O certo seria usar SetTimerEx, pois a funзгo precisa do parвmetro playerid atualizado, no contrбrio sу iria funcionar se o jogador do momento fosse o de id 0.
pawn Код:
SetTimerEx("Derby", 2000, true, "i", playerid);
Reply
#6

Jб tinha tentado com o SetTimerEx mais nгo tinha dado certo , agora deu deve ser por causa do "i" ,que eu nгo sei pra que serve.

Obrigado cynic.
Reply
#7

pawn Код:
/*
i: inteiro
d: inteiro
f: flutuante(float)
b: booleano
h: hexadecimal
s: string
entre outros, mas esses sгo os mais usados.
*/
Reply
#8

Viajei com isso , ele estava funcionando pois nгo havia tirado o outro do OnPlayerUpdate.

Код:
forward AlturaDerby(playerid);

SetTimerEx("AlturaDerby", 2000, true, "i", playerid);

public AlturaDerby(playerid)
{
    print("Certo");
	if(GetPVarInt(playerid, "IniciouDerby") == 1)
  	{
  	    print("Certo1");
		if(GetPVarInt(playerid, "AlturaDerby") == 0)
		{
		    print("Certo2");
     		if(ChecarAltura(playerid, 16.0))
     		{
     		    print("Certo3");
     			DeletePVar(playerid,"IniciouDerby");
     			DeletePVar(playerid,"Derby");
     			{
				SpawnPlayer(playerid);
				for(new i=0; i < PlayersDerby; i++)
				{
				new String[40],Nome[24];
				GetPlayerName(playerid,Nome,sizeof(Nome));
				format(String,sizeof(String),"[DERBY]: %s Caiu no mar!",Nome);
				SendClientMessage(playerid,PerdeuDerby,String);
				}
   			}
  	   	}
	}
}
	return 1;
}
fiz dessa forma mais ele sу chega atй o "Certo" mesmo o IniciouDerby estar setado para 1.
Reply
#9

SetTimerEx("AlturaDerby", 2000, true, "i", playerid); -> Tu poderia usar setTimer normal e na public usar loop
Reply
#10

loop й tenso demais , jб estou colocando 2 segundos para nгo dar lag.
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)