Guten Abend.
Leider komme ich derzeit bei einem kleinen Problem nicht weiter.
Funktionsweise
Sobald ein Spieler sich ausloggt, sollen seine Daten in seiner .ini Datei gespeichert werden.
Problembeschreibung
Die Daten werden trotz Speicherfunktions Angabe nicht gespeichert.
Code
#include <dini>
enum sInfo
{
Adminlevel,
Score,
Banned,
LoggedIn,
}
new SpielerInfo[MAX_PLAYERS][sInfo];
stock LoadAccount(playerid)
{
new Spielerdatei[200];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.ini",name);
SpielerInfo[playerid][Adminlevel]=dini_Int(Spielerdatei,"Adminlevel");
SetPlayerScore(playerid,dini_Int(Spielerdatei,"Score"));
SpielerInfo[playerid][Banned]=dini_Int(Spielerdatei,"Banned");
SpielerInfo[playerid][LoggedIn]=dini_Int(Spielerdatei,"LoggedIn");
return 1;
}
stock SpielerSpeichern(playerid)
{
new Spielerdatei[200];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.ini",name);
dini_IntSet(Spielerdatei,"Adminlevel",SpielerInfo[playerid][Adminlevel]);
dini_IntSet(Spielerdatei,"Score",GetPlayerScore(playerid));
dini_IntSet(Spielerdatei,"Banned",SpielerInfo[playerid][Banned]);
dini_IntSet(Spielerdatei,"LoggedIn",SpielerInfo[playerid][LoggedIn]);
return 1;
}
Wenn der Spieler jetzt gebannt wird, dann setzte ich:
SpielerInfo[playerid][Banned] = 1;
und bei OnPlayerDisconnect:
SpielerSpeichern(playerid);
Leider klappt dieser Weg nicht. In der Benutzer Ini steht weiterhin: Banned = 0
Ich würde mich auf ein paar Lösungsansätze freuen.
Steven