Ha úgy mentem a játékos által szerveren eltöltött idõt, amikor kilép, akkor nem kell timert használni.
De amikor kifagy a szerver? Akkor nem menti el, és dini fájlrendszerbe probáltam a mentés kódot és hibás adatokat jelenített meg.
LuxAdminból probálkoztam, de szerintem ez nem a legjobb megoldás.
enum PlayerData
{
hours,
mins,
secs,
TotalTime,
ConnectTime
};
new AccInfo[MAX_PLAYERS][PlayerData];
public OnPlayerConnect(playerid)
{
AccInfo[playerid][ConnectTime] = gettime();
return 1;
}
TotalGameTime(playerid, &h=0, &m=0, &s=0)
{
AccInfo[playerid][TotalTime] = ( (gettime() - AccInfo[playerid][ConnectTime]) + (AccInfo[playerid][hours]*60*60) + (AccInfo[playerid][mins]*60) + (AccInfo[playerid][secs]) );
h = floatround(AccInfo[playerid][TotalTime] / 3600, floatround_floor);
m = floatround(AccInfo[playerid][TotalTime] / 60, floatround_floor) % 60;
s = floatround(AccInfo[playerid][TotalTime] % 60, floatround_floor);
return AccInfo[playerid][TotalTime];
}
Viszont ha két percenként MySQL-al mentem, akkor meg szerver lagg lesz. Vagy bírja a szerver?