Vorgeschichte:
Wir wollen beispielsweise Online Überweisungen auf der Homepage ermöglichen. Bsp. X zahlt an Y 1000 aber wird ja erst beim nächsten Login *geupdated*. Dann hatte ich die Idee einfach LoadPlayer alle 10 Sekunden ausführen zulassen für eine aktuallisierung. Das ganze sieht ungefähr so aus:
Timer wird alle 10 Sekunden ausgeführt:
public ReloadTimer()
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
LoadPlayer(i);
}
}
}
LoadPlayer
stock LoadPlayer(playerid)
{
if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
{
GetPlayerName(playerid, SpielerInfo[playerid][pName], MAX_PLAYER_NAME);
SpielerInfo[playerid][pLevel] = mysql_GetInt("accounts", "Level", "Name", SpielerInfo[playerid][pName]);
SetPlayerScore(playerid, SpielerInfo[playerid][pLevel]);
SpielerInfo[playerid][pGeld] = mysql_GetInt("accounts", "Geld", "Name", SpielerInfo[playerid][pName]);
SetPlayerMoney(playerid, SpielerInfo[playerid][pGeld]);
SpielerInfo[playerid][pKills] = mysql_GetInt("accounts", "Kills", "Name", SpielerInfo[playerid][pName]);
SpielerInfo[playerid][pTode] = mysql_GetInt("accounts", "Tode", "Name", SpielerInfo[playerid][pName]);
SpielerInfo[playerid][pAdminLevel] = mysql_GetInt("accounts", "AdminLevel", "Name", SpielerInfo[playerid][pName]);
SpielerInfo[playerid][pFraktion] = mysql_GetInt("accounts", "Fraktion", "Name", SpielerInfo[playerid][pName]);
SpielerInfo[playerid][pJob] = mysql_GetInt("accounts", "Job", "Name", SpielerInfo[playerid][pName]);
SpielerInfo[playerid][pBank] = mysql_GetInt("accounts", "Bank", "Name", SpielerInfo[playerid][pName]);
SpielerInfo[playerid][pBann] = mysql_GetInt("accounts", "Bann", "Name", SpielerInfo[playerid][pName]);
SpielerInfo[playerid][pWanteds] = mysql_GetInt("accounts", "Wanteds", "Name", SpielerInfo[playerid][pName]);
SpielerInfo[playerid][pSkin] = mysql_GetInt("accounts", "Skin", "Name", SpielerInfo[playerid][pName]);
SetPlayerSkin(playerid, SpielerInfo[playerid][pSkin]);
SpielerInfo[playerid][pLeader] = mysql_GetInt("accounts", "Leader", "Name", SpielerInfo[playerid][pName]);
}
return 1;
}
Problem 1: Er updated trotzdem nicht sondern zeigt(getestet mit Geld) erst den neuen Wert nach einem Relog an.
Problem 2: Alle 10 Sekunden gibts nen kurzen lagg und Spieler bleibt stehen weil er ja aktuallisiert(was ja nicht wirklich geht..)
Gibts da irrgendne bessere Methode? Am besten ohne Laggs.
Mfg