Hallo Leute,
mein Problem sieht folgendermaßen aus:
Ich lasse die Stats (ID,Kills,Tode usw.) von den Spielern in Textdraws anzeigen und jede Sekunde aktualisieren.
Wenn aber mehr als 1 Spieler auf meinen Server sind, switchen die ausgelesenen Daten von den Spielern hin und her.
Die Spieler sehen in einem Moment die Stats von ID 0 und im nächsten die Stats von ID 1 usw..
Ich weiß da einfach nicht weiter, ich finde den Fehler einfach nicht..
Hier mal das Public vom Timer für das Spieler/Stats-Update wo ich den Fehler vermute:
forward SpielerUpdate(playerid);
public SpielerUpdate(playerid)
{
if(GetPVarInt(playerid,"Eingeloggt") == 1)
{
SetPVarInt(playerid,"OnlineSeit",GetPVarInt(playerid,"OnlineSeit")+1);
if(GetPVarInt(playerid,"OnlineSeit")==60)
{
SpielerInfo[playerid][pSpielminuten] += 1;
SetPVarInt(playerid,"OnlineSeit",0);
SetPVarInt(playerid,"ZeitSeitLogin",GetPVarInt(playerid,"ZeitSeitLogin")+1);
SendClientMessage(playerid,ROT,"Deine Stats wurden aktualisiert!");
}
new strID[10]; format(strID, sizeof(strID), "ID: %d",playerid); TextDrawSetString(StatsID, strID); TextDrawShowForPlayer(playerid, StatsID);
new strKills[24]; format(strKills, sizeof(strKills), "Kills: %d", SpielerInfo[playerid][pKills]); TextDrawSetString(StatsKills, strKills); TextDrawShowForPlayer(playerid, StatsKills);
new strDeaths[24]; format(strDeaths, sizeof(strDeaths), "Tode: %d", SpielerInfo[playerid][pTode]); TextDrawSetString(StatsDeaths, strDeaths); TextDrawShowForPlayer(playerid, StatsDeaths);
new Float:health; GetPlayerHealth(playerid,health); new strHP[14]; format(strHP, sizeof(strHP), "Health: %f",health); TextDrawSetString(StatsHealth, strHP); TextDrawShowForPlayer(playerid, StatsHealth);
new Float:armour; GetPlayerArmour(playerid,armour); new strARMOUR[14]; format(strARMOUR, sizeof(strARMOUR), "Armour: %f", armour); TextDrawSetString(StatsArmour, strARMOUR); TextDrawShowForPlayer(playerid, StatsArmour);
new strSkin[13]; format(strSkin, sizeof(strSkin), "Skin-ID: %d", GetPlayerSkin(playerid)); TextDrawSetString(StatsSkin, strSkin); TextDrawShowForPlayer(playerid, StatsSkin);
new strZSL[50]; format(strZSL, sizeof(strZSL), "Minuten seit Login: %d", GetPVarInt(playerid,"ZeitSeitLogin")); TextDrawSetString(StatsZeitSeitLogin, strZSL); TextDrawShowForPlayer(playerid, StatsZeitSeitLogin);
new strZG[50]; format(strZG, sizeof(strZG), "Spielminuten: %d", SpielerInfo[playerid][pSpielminuten]); TextDrawSetString(StatsZeitGesammt, strZG); TextDrawShowForPlayer(playerid, StatsZeitGesammt);
{
new i = 0;
for(;i<GetMaxPlayers();i++)
{
if(GetPVarInt(i,"Prem1")==1)
{
SetPVarInt(i,"Navi",8);
SetPVarInt(i,"Prem1",0);
}
if(GetPVarInt(i,"Brob")==1)
{
if(GetPVarInt(i,"Bank")==0)
{
SetPVarInt(i,"Brob",0);
SendClientMessageToAll(ROT,"[Achtung] Der Bankraub ist fehlgeschlagen!");
}
}
}
}
}
return true;
}
Ich hoffe jemand kann mir zeigen was ich falsch gemacht habe.
Mit freundlichen Grüßen
AlphaGen!