[Ajuda] Reset timer
#1

Eu criei um timer para saber a quanto tempo o jogador estб conectado no servidor mas deu fail, ele nгo reseta, se um player logar agora e ficar 13 min, e eu logar daqui 1 hora, vai ter o mesmo tempo pra os dois.

O cуdigo й esse:

PHP код:
new Text:CMlt;
new 
horaslt[MAX_PLAYERS], minutoslt[MAX_PLAYERS], segundoslt[MAX_PLAYERS], timerlt[MAX_PLAYERS];
forward CreateCMlt();
public 
CreateCMlt()
{
    
CMlt TextDrawCreate(498.000000125.000000" ");
    
TextDrawBackgroundColor(CMlt255);
    
TextDrawFont(CMlt1);
    
TextDrawLetterSize(CMlt0.5000001.000000);
    
TextDrawColor(CMlt, -1);
    
TextDrawSetOutline(CMlt1);
    
TextDrawSetProportional(CMlt1);
    return 
1;
}
forward ccmlt(playerid);
public 
ccmlt(playerid)
{
    
segundoslt[playerid]++;
    if(
segundoslt[playerid] > 59)
    {
    
segundoslt[playerid] = 0;
    
minutoslt[playerid] ++;
    if(
minutoslt[playerid] > 59)
    {
    
minutoslt[playerid] = 0;
    
horaslt[playerid]++;
    }
    }
    new 
ccmltstr[24];
    
format(ccmltstrsizeof(ccmltstr), "%02d:%02d:%02d"horasltminutosltsegundoslt);
    
TextDrawSetString(CMltccmltstr);
    return 
1;
}
public 
OnPlayerConnect(playerid)
{
timerlt[playerid] = SetTimerEx("ccmlt"1000true"d"playerid);
return 
1;
}
public 
OnPlayerSpawn(playerid)
{
TextDrawShowForPlayer(playeridCMlt);
return 
1;
}
OnPlayerDisconnect(playerid)
{
KillTimer(timerlt[playerid]);
return 
1;

Se alguйm puder me ajudar, vlw '-'
Reply
#2

Код:
public OnPlayerDisconnect(playerid, reason)
{
	KillTimer(timerlt[playerid]);
	horaslt[playerid] = minutoslt[playerid] = segundoslt[playerid] = 0;
	return 1;
}
Reply
#3

Mesma coisa, serб que tenho que usar PlayerTextDraw?
Reply
#4

Eu acho que sim
Reply
#5

pronto kkkkkkkkkk

Код:
#include <a_samp>
new PlayerText:CMlt[MAX_PLAYERS];

new horaslt[MAX_PLAYERS], minutoslt[MAX_PLAYERS], segundoslt[MAX_PLAYERS], timerlt[MAX_PLAYERS];


forward ccmlt(playerid);

public ccmlt(playerid)
{
segundoslt[playerid]++;
if(segundoslt[playerid] > 59)
{
segundoslt[playerid] = 0;
minutoslt[playerid] ++;
if(minutoslt[playerid] > 59)
{
minutoslt[playerid] = 0;
horaslt[playerid]++;
}
}
new ccmltstr[25];
format(ccmltstr, sizeof(ccmltstr), "%02d:%02d:%02d", horaslt, minutoslt, segundoslt);
PlayerTextDrawSetString(playerid,CMlt[playerid], ccmltstr);
return 1;
}

public OnPlayerConnect(playerid)
{
CMlt[playerid] = CreatePlayerTextDraw(playerid,498.000000, 125.000000, " ");
PlayerTextDrawBackgroundColor(playerid,CMlt[playerid], 255);
PlayerTextDrawFont(playerid,CMlt[playerid], 1);
PlayerTextDrawTextSize(playerid,CMlt[playerid], 0.500000, 1.000000);
PlayerTextDrawColor(playerid,CMlt[playerid], -1);
PlayerTextDrawSetOutline(playerid,CMlt[playerid], 1);
PlayerTextDrawSetProportional(playerid,CMlt[playerid], 1);
timerlt[playerid] = SetTimerEx("ccmlt", 1000, true, "d", playerid);
return 1;
}


public OnPlayerSpawn(playerid)
{
PlayerTextDrawShow(playerid,CMlt[playerid]);
return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
KillTimer(timerlt[playerid]);
horaslt[playerid] = minutoslt[playerid] = segundoslt[playerid] = 0;
return 1;
}
Reply
#6

Ainda nгo funciona, mesmo usando PlayerTextDraw, o tempo fica igual para todos,
O bagulho ficou sinistro, daн eu coloquei pra zerar o tempo pra quando sair junto com o KillTimer, sу que se o ID 1 sai, o tempo do ID 0 vai pra 00:00:00 sendo que o ID 0 nгo saiu kkk, mds...
Reply
#7

Alguйm?
Reply
#8

faz um loop
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)