Ja, ich habe das Problem, das wenn ich mich nach dem Login gleich gekickt werde. Aber ich weis nicht woran das liegen kann.
Könnte mir dabei mal jemand weiter helfen?
Hier mal ein paar Zeilen:
public OnPlayerConnect(playerid)
{
new Spieler[64];
new Sname[MAX_PLAYER_NAME];
GetPlayerName(playerid,Sname,sizeof(Sname));
format(Spieler,sizeof(Spieler),"/Accounts/%s.txt",Sname);
if(dini_Exists(Spieler))
{
ShowPlayerDialog(playerid,LOGIN,DIALOG_STYLE_PASSWORD,"Login", "Dein Account wurde gefunden.\nGib bitte dein Passwort ein:", "Login", "Abbrechen");
}
else
{
ShowPlayerDialog(playerid,REGISTER,DIALOG_STYLE_PASSWORD,"Register", "Gib bitte ein gewünschtes Passwort ein:", "Register", "Abbrechen");
}
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
sSpieler[playerid][sLogin] = 0;
SpielerSpeichern(playerid);
return 1;
}
stock Register(playerid,key[])
{
new Spieler[64];
new Sname[MAX_PLAYER_NAME];
GetPlayerName(playerid,Sname,sizeof(Sname));
format(Spieler,sizeof(Spieler),"/Accounts/%s.txt",Sname);
dini_Create(Spieler);
dini_Set(Spieler,"Passwort",key);
dini_IntSet(Spieler,"Adminlevel",0);
dini_IntSet(Spieler,"Level",0);
dini_IntSet(Spieler,"Fraktion",0);
dini_IntSet(Spieler,"Team",0);
dini_IntSet(Spieler,"Job",0);
SendClientMessage(playerid,Blau,"Du hast dich erfolgreich Registriert");
SpielerReset(playerid);
return 1;
}
stock Login(playerid,key[])
{
new Spieler[64];
new Sname[MAX_PLAYER_NAME];
GetPlayerName(playerid,Sname,sizeof(Sname));
format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",Sname);
if(!strcmp(key,dini_Get(Spieler,"Passwort"),false))
{
SendClientMessage(playerid,Blau,"Login erfolgreich . . . Spielerdaten werden geladen!");
SpielerLaden(playerid);
return 1;
}
else
{
SendClientMessage(playerid,Blau,"Das eingebene Passwort ist inkorrekt!");
ShowPlayerDialog(playerid,LOGIN,DIALOG_STYLE_PASSWORD,"Login", "Dein Account wurde gefunden.\nGib bitte dein Passwort ein:", "Login", "Abbrechen");
return 1;
}
}
stock SpielerSpeichern(playerid)
{
new Spieler[64];
new Sname[MAX_PLAYER_NAME];
GetPlayerName(playerid,Sname,sizeof(Sname));
format(Spieler,sizeof(Spieler),"/Accounts/%s.txt",Sname);
if(dini_Exists(Spieler))
{
dini_IntSet(Spieler,"Adminlevel",sSpieler[playerid][Adminlevel]);
dini_IntSet(Spieler,"Level",sSpieler[playerid][Level]);
dini_IntSet(Spieler,"Fraktion",sSpieler[playerid][Fraktion]);
dini_IntSet(Spieler,"Team",sSpieler[playerid][Team]);
dini_IntSet(Spieler,"Job",sSpieler[playerid][Job]);
}
return 1;
}
stock SpielerLaden(playerid)
{
new Spieler[64];
new Sname[MAX_PLAYER_NAME];
GetPlayerName(playerid,Sname,sizeof(Sname));
format(Spieler,sizeof(Spieler),"/Accounts/%s.txt",Sname);
if(dini_Exists(Spieler))
{
SetPlayerScore(playerid,dini_Int(Spieler,"Level"));
sSpieler[playerid][Adminlevel] = dini_Int(Spieler,"Adminlevel");
sSpieler[playerid][Level] = dini_Int(Spieler,"Level");
sSpieler[playerid][Fraktion] = dini_Int(Spieler,"Fraktion");
sSpieler[playerid][Team] = dini_Int(Spieler,"Team");
sSpieler[playerid][Job] = dini_Int(Spieler,"Job");
sSpieler[playerid][sLogin] = 1;
}
return 1;
}
stock SpielerReset(playerid)
{
sSpieler[playerid][Adminlevel] = 0;
sSpieler[playerid][Level] = 0;
sSpieler[playerid][Fraktion] = 0;
sSpieler[playerid][Team] = 0;
sSpieler[playerid][Job] = 0;
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == LOGIN)
{
if(response == 0)
{
SendClientMessage(playerid,Rot,"Du hast den Authenfizierungs Prozess abgebrochen . . .");
Kick(playerid);
return 1;
}
if(response == 1)
{
Login(playerid,MD5_Hash(inputtext));
return 1;
}
}
if(dialogid == REGISTER)
{
if(response == 0)
{
SendClientMessage(playerid,Blau,"Du hast den Registrierungs Vorgang abgebrochen");
Kick(playerid);
return 1;
}
if(response == 1)
{
if(!strlen(inputtext))
{
SendClientMessage(playerid,Blau,"Bitte gebe ein Passwort ein");
ShowPlayerDialog(playerid,REGISTER,DIALOG_STYLE_PASSWORD,"Registrieren","Bitte wähle ein Passwort um dir einen Account zu erstellen!","Registrieren","Abbrechen");
return 1;
}
Register(playerid,MD5_Hash(inputtext));
return 1;
}
}
return 1;
}