Hey liebe Community,
habe folgendes Problem, habe nun mein Login Register System mit Dini geschrieben doch dann taucht immer wieder erneut der Fehler auf das keine Account-Datei erstellt wird beim Registrieren.
Hier mal die Codes:
enum SpielerDate
{
Name[MAX_PLAYER_NAME],
Level,
Geld,
Kills,
Deaths,
Team,
Banned
}
new pDaten[MAX_PLAYERS][SpielerDate];
Oben im Script .
public OnPlayerRequestClass(playerid, classid)
{
new pfad[64];
format(pfad,64,"/Accounts/%s.txt",GetName(playerid));
if(dini_Exists(pfad))
{
ShowPlayerDialog(playerid,2,DIALOG_STYLE_PASSWORD,"Register","Willkommen,\nBitte gebe unten dein Passwort ein um deinen Account laden zu können\nMit freundlichen Grueßen\nLukas","Login","Abbrechen");
}
else
{
ShowPlayerDialog(playerid,2,DIALOG_STYLE_PASSWORD,"Register","Willkommen,\nUm hier spielen zu können benötigst du einen Account, dafür bitten wir dich unten ein Passwort anzugeben das du nicht vergessen solltest.\nMit freundlichen Grueßen\nLukas","Register","Abbrechen");
}
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
SpielerSpeichern(playerid);
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == Register)
{
if(response == 1)
{
if(!strlen(inputtext))
{
SendClientMessage(playerid,0xFF1E00FF,"Du musst ein Passwort eingeben!");
}
else
{
Registrierung(playerid,inputtext);
}
}
if(response == 0)
{
Kick(playerid);
}
}
if(dialogid == Login)
{
if(response == 1)
{
if(!strlen(inputtext))
{
SendClientMessage(playerid,0xFF1E00FF,"Du musst ein Passwort eingeben!");
}
else
{
Logins(playerid,inputtext);
}
}
if(response == 0)
{
Kick(playerid);
}
}
return 1;
}
Hier die Stocks
stock SpielerLaden(playerid)
{
new pfad[64];
format(pfad,64,"/Accounts/%s.txt",GetName(playerid));
SetPlayerScore(playerid,dini_Int(pfad,"Level"));
GivePlayerMoney(playerid,dini_Int(pfad,"Geld"));
pDaten[playerid][Level] = dini_Int(pfad,"Level");
pDaten[playerid][Geld] = dini_Int(pfad,"Geld");
pDaten[playerid][Kills] = dini_Int(pfad,"Kills");
pDaten[playerid][Deaths] = dini_Int(pfad,"Deaths");
pDaten[playerid][Team] = dini_Int(pfad,"Team");
pDaten[playerid][Banned] = dini_Int(pfad,"Banned");
format(pDaten[playerid][Name],25,dini_Get(pfad,"Name"));
return 1;
}
stock Logins(playerid,key[])
{
new string2[128]; //Benötigen einen String
new pfad[64];
format(pfad,64,"/Accounts/%s.txt",GetName(playerid));
if(!strcmp(key,dini_Get(pfad,"Passwort"),false))
{
SpielerLaden(playerid);
SendClientMessage(playerid,0xFFB400FF,"Du hast dich erfolgreich eingeloggt."); //Nachricht wird gesendet
format(string2,sizeof(string2),"[Join] %s hat den Server betreten",GetName(playerid)); //Join-String wird formatiert
SendClientMessageToAll(0xFFB400FF,string2); //Join-Message wird an alle gesendet
}
return 1;
}
stock Registrierung(playerid,key[])
{
new pfad[64];
format(pfad,64,"/Accounts/%s.txt",GetName(playerid));
dini_Create(pfad);
dini_Set(pfad,"Passwort",key);
dini_Set(pfad,"Name",GetName(playerid));
dini_IntSet(pfad,"Level",1);
dini_IntSet(pfad,"Kills",0);
dini_IntSet(pfad,"Deaths",0);
dini_IntSet(pfad,"Team",0);
dini_IntSet(pfad,"Banned",0);
dini_IntSet(pfad,"Geld",20000);
return 1;
}
stock SpielerSpeichern(playerid)
{
new pfad[64];
format(pfad,64,"/Accounts/%s.txt",GetName(playerid));
dini_IntSet(pfad,"Level",GetPlayerScore(playerid));
dini_IntSet(pfad,"Team",pDaten[playerid][Team]);
dini_IntSet(pfad,"Geld",GetPlayerMoney(playerid));
dini_IntSet(pfad,"Kills",pDaten[playerid][Kills]);
dini_IntSet(pfad,"Deaths",pDaten[playerid][Deaths]);
dini_IntSet(pfad,"Banned",pDaten[playerid][Banned]);
return 1;
}
Ordner 'Accounts' ist vorhanden!
Wenn ich connecte registriere ich mich und gehe Offline und siehe da , keine Datei ._.
Bitte um hilfe