Ich habe gerade ein Register/Login System gescriptet, dass allerdings nicht so funktioniert wie ich es mir vorgestellt habe. Also ich kann mich ohne Probleme registrieren, aber wenn ich mich dann wieder einloggen will sagt er mir falsches Passwort. Ich hoffe ihr könnt mir helfen.
#define REGISTER 2
#define LOGIN 3
public OnPlayerConnect(playerid)
{
new Accounts[64];
new Sname[MAX_PLAYER_NAME];
GetPlayerName(playerid,Sname,sizeof(Sname));
format(Accounts,sizeof(Accounts),"/Accounts/%s.txt",Sname);
if(dini_Exists(Accounts))
{
SendClientMessage(playerid,GELB,"Herzlich Willkommen zurück auf unserem Server");
ShowPlayerDialog(playerid,LOGIN,DIALOG_STYLE_INPUT,"Login","Dein Account wurde gefunden, bitte gebe nun dein Passwort ein, um dich einzuloggen","Login","Abbrechen");
}
else
{
SendClientMessage(playerid,GELB,"Willkommen auf dem Server!");
ShowPlayerDialog(playerid,REGISTER,DIALOG_STYLE_INPUT,"Registrieren","Bitte wähle ein Passwort um dich zu registrieren.","Registrieren","Abbrechen");
}
return 1;
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
if(dialogid == LOGIN)
{
if(response == 0)
{
SendClientMessage(playerid,GELB,"Du hast den Loginvorgang abgebrochen!");
Kick(playerid);
return 1;
}
if(response == 1)
{
Login(playerid,MD5_Hash(inputtext));
return 1;
}
}
if(dialogid == REGISTER)
{
if(response == 0)
{
SendClientMessage(playerid,GELB,"Du hast den Registrierungsvorgang abgebrochen!");
Kick(playerid);
return 1;
}
if(response == 1)
{
if(!strlen(inputtext))
{
SendClientMessage(playerid,GELB,"Bitte gebe ein Passwort ein.");
ShowPlayerDialog(playerid,REGISTER,DIALOG_STYLE_INPUT,"Registrieren","Bitte wähle ein Passwort um dich zu registrieren.","Registrieren","Abbrechen");
return 1;
}
Register(playerid,MD5_Hash(inputtext));
return 1;
}
stock Register(playerid,key[])
{
new Accounts[64];
new Sname[MAX_PLAYER_NAME];
GetPlayerName(playerid,Sname,sizeof(Sname));
format(Accounts,sizeof(Accounts),"/Accounts/%s.txt",Sname);
dini_Create(Accounts);
dini_Set(Accounts,"Passwort",key);
SendClientMessage(playerid,GELB,"Du hast dich erfolgreich Registriert.");
dini_IntSet(Accounts,"Fraktion",0);
return 1;
}
stock Login(playerid,key[])
{
new Accounts[64];
new Sname[MAX_PLAYER_NAME];
GetPlayerName(playerid,Sname,sizeof(Sname));
format(Accounts,sizeof(Accounts),"/Accounts/%s.txt",Sname);
if(!strcmp(key,dini_Get(Accounts,"Passwort"),true))
{
SendClientMessage(playerid,GELB,"Du hast dich erfolgreich eingeloggt.");
}
else
{
SendClientMessage(playerid,GELB,"Du hast ein falsches Passwort eingegeben.");
Kick(playerid);
}
return 1;
}