[Ajuda] SetTimer
#1

olб, estou com o seguinte problema,
Criei um timer para ser iniciado quando o player pegar o primeiro checkpoint, porem o timer nгo esta sendo setado individualmente, ele seta e fica para todos, os players que logam seguem o timer, como faзo para que ele seja setado individualmente para cada player que passar no checkpoint ?

Код:
new rMinute[MAX_PLAYERS] = 0;
new rSec[MAX_PLAYERS] = 0;
new RaceTimer[MAX_PLAYERS] = 0;
____________________________________________
public OnPlayerConnect(playerid)
        CorridaInfo[2] = CreatePlayerTextDraw(playerid,521.000000, 422.000000, "");
	PlayerTextDrawBackgroundColor(playerid,CorridaInfo[2], 255);
	PlayerTextDrawFont(playerid,CorridaInfo[2], 2);
	PlayerTextDrawLetterSize(playerid,CorridaInfo[2], 0.390000, 1.200000);
	PlayerTextDrawColor(playerid,CorridaInfo[2], -65281);
	PlayerTextDrawSetOutline(playerid,CorridaInfo[2], 1);
	PlayerTextDrawSetProportional(playerid,CorridaInfo[2], 1);
	PlayerTextDrawUseBox(playerid,CorridaInfo[2], 1);
	PlayerTextDrawBoxColor(playerid,CorridaInfo[2], 136);
	PlayerTextDrawTextSize(playerid,CorridaInfo[2], 640.000000, 0.000000);
____________________________________________
public OnPlayerEnterRaceCheckpoint(playerid)
        if(CheckP[playerid] == 1)
    	RaceTimer[playerid] = SetTimerEx("RaceTimeer",1000,true,"i",playerid);
	PlayerTextDrawShow(playerid,CorridaInfo[2]);
------------------------------------------------------------
        if(CheckP[playerid] == 43)
        KillTimer(RaceTimer[playerid]);
____________________________________________
forward RaceTimeer(playerid);
public RaceTimeer(playerid)
{
	new string[218];
	rSec[playerid]++;
	if(rSec[playerid] == 60)
	{
		rMinute[playerid]++;
		rSec[playerid] = 0;
	}
	if(rSec[playerid] < 10)
	format(string,sizeof(string),"Tempo: ~w~0%d:0%d",rMinute[playerid],rSec[playerid]);
	else
	format(string,sizeof(string),"Tempo: ~w~0%d:%d",rMinute[playerid],rSec[playerid]);
	PlayerTextDrawSetString(playerid,CorridaInfo[2],string);
}
____________________________________________
Reply
#2

Cria uma variavel bool para indentificar se o jogador passou ou nгo .
Reply
#3

Ajuda simples mas era tudo o que eu precisava.
vlw!! +rep
Reply
#4

Bom, surgiu outro problema,
quando o player passa no check point o tempo continua contando do ultimo player que deslogo...
coloquei em OnPlayerConnect - KillTimer(RaceTimer[playerid]); para destruir o timer, mas nгo mudo nada,
como proceder?
Reply
#5

Bota esse KillTimer no OnPlayerEnterCheckPoint
Reply
#6

nгo resulto, ele segue o timer do outro player...
Reply
#7

Quote:
Originally Posted by GustavoKarasek
Посмотреть сообщение
Bom, surgiu outro problema,
quando o player passa no check point o tempo continua contando do ultimo player que deslogo...
coloquei em OnPlayerConnect - KillTimer(RaceTimer[playerid]); para destruir o timer, mas nгo mudo nada,
como proceder?
Simples, resete o valor das variбveis ao jogador se conectar.
PHP код:
public OnPlayerConnect(playerid)
{
    
rMinute[playerid] = rSec[playerid] = RaceTimer[playerid] = 0;
    return 
1;

E para matar o timer, coloque KillTimer em OnPlayerDisconnect.
Reply
#8

Quote:
Originally Posted by Bruno13
Посмотреть сообщение
Simples, resete o valor das variбveis ao jogador se conectar.
PHP код:
public OnPlayerConnect(playerid)
{
    
rMinute[playerid] = rSec[playerid] = RaceTimer[playerid] = 0;
    return 
1;

E para matar o timer, coloque KillTimer em OnPlayerDisconnect.
Perfect!
+ rep
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)