Wenn man sich mit diesem System registriert und dann den Server verlässt wird nur das Passwort gespeichert. Wenn man zum 2. mal den Server verlässt wird alles ordnungsgemäß gespeichert. Wo liegt der Fehler???
OnPlayerConnect
new pname[MAX_PLAYERS],accFormat[128];
GetPlayerName(playerid,pname,sizeof pname);
format(accFormat,sizeof accFormat,"/loginsystem/%s.ini",pname);
if(fexist(accFormat))
{
ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Bitte logge dich ein, indem du dein Passwort eingibst.","Weiter","Abbrechen");
}
else
{
ShowPlayerDialog(playerid,DIALOG_REG,1,"Registrieren","Bitte Registriere dich, indem du dein Passwort eingibst.","Weiter","Abbrechen");
}
OnPlayerDisconnect
new playername[MAX_PLAYERS],accFormat[128];
GetPlayerName(playerid,playername,sizeof playername);
format(accFormat,sizeof accFormat,"/loginsystem/%s.ini",playername);
if(fexist(accFormat) && Spieler[playerid][eingeloggt] && !classselection)
{
dini_IntSet(accFormat,"wanted",GetPlayerWantedLevel(Spieler[playerid][wanted]));
if(Spieler[playerid][beruf] == 0) {
dini_IntSet(accFormat,"skin",GetPlayerSkin(playerid));
}
GetPlayerPos(playerid,Spieler[playerid][lastx],Spieler[playerid][lasty],Spieler[playerid][lastz]);
dini_FloatSet(accFormat,"lastx",Spieler[playerid][lastx]);
dini_FloatSet(accFormat,"lasty",Spieler[playerid][lasty]);
dini_FloatSet(accFormat,"lastz",Spieler[playerid][lastz]);
dini_IntSet(accFormat,"Geld",GetPlayerMoney(playerid));
dini_IntSet(accFormat,"Score",GetPlayerScore(playerid));
dini_IntSet(accFormat,"Beruf",Spieler[playerid][beruf]);
}
OnDialogResponse
new pname[MAX_PLAYERS],accFormat[128];
GetPlayerName(playerid,pname,sizeof pname);
format(accFormat,sizeof accFormat,"/loginsystem/%s.ini",pname);
if(response)
{
switch(dialogid) //Möglichkeit auswählen
{
case DIALOG_LOGIN: //Login
{
if(!strlen(inputtext))
{
ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Bitte logge dich ein, indem du dein Passwort eingibst.","Weiter","Abbrechen");
return SendClientMessage(playerid,0xFFFFFFFF,"Kein Passwort angegeben!");
}
if(strcmp(inputtext,dini_Get(accFormat,"Passwort")) == 0)
{
Spieler[playerid][wanted] = dini_Int(accFormat,"wanted");
Spieler[playerid][skin] = dini_Int(accFormat,"skin");
Spieler[playerid][lastx] = dini_Float(accFormat,"lastx");
Spieler[playerid][lasty] = dini_Float(accFormat,"lasty");
Spieler[playerid][lastz] = dini_Float(accFormat,"lastz");
Spieler[playerid][beruf] = dini_Int(accFormat,"Beruf");
GivePlayerMoney(playerid,dini_Int(accFormat,"Geld"));
SetPlayerScore(playerid,dini_Int(accFormat,"Score"));
SetPlayerWantedLevel(playerid,dini_Int(accFormat,"wanted"));
Spieler[playerid][eingeloggt] = 1;
SendClientMessage(playerid,0xFFFFFFFF,"Du wurdest erfolgreich eingeloggt.");
}
else
{
ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Bitte logge dich ein, indem du dein Passwort eingibst.","Weiter","Abbrechen");
SendClientMessage(playerid,0xFFFFFFFF,"Das Passwort war Falsch!");
}
}
case DIALOG_REG: // Registrierung
{
if(!strlen(inputtext)) // Falls leere Eingabe
{
ShowPlayerDialog(playerid,DIALOG_REG,1,"Registrieren","Bitte Registriere dich, indem du dein Passwort eingibst.","Weiter","Abbrechen");
return SendClientMessage(playerid,0xFFFFFFFF,"Das Passwort ist zu kurz!");
}
dini_Create(accFormat);
dini_Set(accFormat,"Passwort",inputtext);
Spieler[playerid][eingeloggt] = 1;
Spieler[playerid][beruf] = 0;
SendClientMessage(playerid,0xFFFFFFFF,"Account wurde angelegt und du wurdest eingeloggt.");
classselection = true;
ForceClassSelection(playerid);
}
}
}
else
{
switch(dialogid)
{
case DIALOG_LOGIN:ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Bitte logge dich ein, indem du dein Passwort eingibst.","Weiter","Abbrechen");
case DIALOG_REG:ShowPlayerDialog(playerid,DIALOG_REG,1,"Registrieren","Bitte Registriere dich, indem du dein Passwort eingibst.","Weiter","Abbrechen");
}
}
Weiß niemand wo der Fehler liegt?