Guten Tag,
da ich aus Versehen meinen anderen Beitrag auf "Abgeschlossen" gestellt habe erstelle ich jetzt einen neuen Beitrag.
Und zwar: Alle Sachen werden beim Einloggen normal geladen und bei /q auch gespeichert.
Bei einem Serverrestart aber werden nur die Sachen gespeichert die es schon in Pawn gibt, also Geld, Fightstyle usw., aber dazugescriptete Dinge wie Bank, Adminlevel usw. werden aber immer wieder auf 0 gesetzt.
In meinem letzten Beitrag wurde ja schon gesagt, dass ich in den Restart Befehl eine Schleife machen soll die alle Spieler durchläuft und dann speichert, dies habe ich getan, aber nach dem Restart sind die Dinge wieder auf 0 gesetzt.
Hier mein SaveAccount stock:
stock SaveAccount(playerid)
{
new name[128], save[128];
GetPlayerName(playerid,name,sizeof(name));
format(save,sizeof(save),"/Spieler/%s.ini",name);
if(dini_Exists(save))
{
dini_IntSet(save,"Geld",GetPlayerMoney(playerid)); // speichert das aktuelle Geld, was der Spieler zum schluss hatte
dini_IntSet(save,"Skin",GetPlayerSkin(playerid)); // speichert den aktuellen Skin, welchne der Spieler zum schluss hatte
dini_IntSet(save,"Bank",GetPVarInt(playerid,"Bank"));
dini_IntSet(save,"Perso",GetPVarInt(playerid,"Perso"));
dini_IntSet(save,"Fightstyle",GetPlayerFightingStyle(playerid));
dini_IntSet(save,"Adminlevel",GetPVarInt(playerid,"Adminlevel"));
dini_IntSet(save,"Fraktion",GetPVarInt(playerid,"Fraktion"));
dini_IntSet(save,"Level",GetPlayerScore(playerid));
}
return 1;
}
Mein OnPlayerDisconnect:
public OnPlayerDisconnect(playerid, reason)
{
new name[128], save[128];// Gleiche
GetPlayerName(playerid,name,sizeof(name)); // wie
format(save,sizeof(save),"/Spieler/%s.ini",name);// oben
if(dini_Exists(save)) // steht
{
SaveAccount(playerid);
}
return 1;
}
Und mein Restart Befehl:
if(strcmp(cmdtext, "/gmx", true) == 0)
{
if(IsPlayerAnAdmin(playerid,2000))
{
SendClientMessageToAll(COLOR_YELLOW,"[Server-Restart] Der Server wird neugestartet, wir sind gleich wieder zurück.");
SendRconCommand("gmx");
for(new i = 0; i < GetMaxPlayers(); i++)
{
SaveAccount(i);
}
}
else
{
SendClientMessage(playerid,COLOR_RED,"Du hast nicht das ausreichende Adminlevel.");
}
return 1;
}
Ich weiß nicht wo der Fehler liegen könnte und ich hoffe ihr wisst wie ich das Problem lösen kann.
Mit freundlichen Grüßen,
Mr.Cro997