25/03/2022 20:42
O problema foi corrigido, a variável minutos estava dividindo antes de fazer a subtração, colocando alguns parentêses consegui solucionar o erro.
Código com o problema resolvido:
Código com o problema resolvido:
Código PHP:
function onAjailTimer(playerid)
{
if(--ajailInfo[playerid][ajailTime] < 0)
{
KillTimer(ajailInfo[playerid][ajailTimer]);
ajailInfo[playerid][ajailTime] = 0;
SendClientMessage(playerid, Branco, "SERVER: Voce foi solto.");
SpawnPlayer(playerid);
}
else
{
new string[128];
new horas = ajailInfo[playerid][ajailTime] / 3600;
new minutos = (ajailInfo[playerid][ajailTime] - (horas * 3600)) / 60;
new segundos = ajailInfo[playerid][ajailTime] % 60;
format(string, sizeof(string), "Tempo: %02d:%02d:%02d", horas, minutos, segundos);
PlayerTextDrawSetString(playerid, ajail_time[playerid][0], string);
PlayerTextDrawShow(playerid, ajail_time[playerid][0]);
}
return 1;
}
Citar:@k2bi_YT> Obrigado pela força, e pela função que tu enviou, eu testei e também funcionou! +rep
Altere apenas a função OnJailTimer e adicione a função ConvertTime()
Código PHP:
Código:function onAjailTimer(playerid)
{
if(--ajailInfo[playerid][ajailTime] < 0)
{
KillTimer(ajailInfo[playerid][ajailTimer]);
ajailInfo[playerid][ajailTime] = 0;
SendClientMessage(playerid, Branco, "SERVER: Voce foi solto.");
SpawnPlayer(playerid);
}
else
{
new string[128];
format(string, sizeof(string), "Tempo: %s", ConvertTime(ajailInfo[playerid][ajailTime]));
PlayerTextDrawSetString(playerid, ajail_time[playerid][0], string);
PlayerTextDrawShow(playerid, ajail_time[playerid][0]);
}
return 1;
}
stock ConvertTime(number)
{
new hours = 0, mins = 0, secs = 0, string[100];
hours = floatround(number / 3600);
mins = floatround((number / 60) - (hours * 60));
secs = floatround(number - ((hours * 3600) + (mins * 60)));
new days = 0;
if(hours >= 24)
{
days = floatround((hours/24), floatround_floor);
hours = hours % 24;
}
if(days > 0)
{
format(string, 100, "%d dias, %02d:%02d:%02d", days, hours, mins, secs);
}
else if(hours > 0)
{
format(string, 100, "%02d:%02d:%02d", hours, mins, secs);
}
else
{
format(string, 100, "%02d:%02d", mins, secs);
}
return string;
}
Essa função ConvertTime(..) é muito util para no caso, você queira mostrar um tempo tanto em textdraw, como chat/dialog