public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
switch(dialogid)
{
case DIALOG_REGISTER:
{
if(response)
{
new str[2048], hash[65], query[256], key[50];
format(str, sizeof(str), "Willkommen "SERVERCOLORHTML"%s"HTML_WEIS", \nUm auf dem Server spielen zu können, musst du \ndir erst ein "SERVERCOLORHTML"Account"HTML_WEIS" erstellen. \n\n"HTML_ROT"* Mit der Regestration akzeptierst du die Serverregeln!", Spielername(playerid));
if(strlen(inputtext) < 4) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, ""SERVERCOLORHTML"["SERVERTAG"] - Regestration [1/4]", str, "Weiter", "Abbrechen"), SendClientMessage(playerid, SERVERCOLOR, "[Server]"HTML_ROT"* Dein Passwort ist zu kurz!");
format(key, 50, "%s", inputtext);
mysql_escape_string(Spielername(playerid), Spielername(playerid)), mysql_escape_string(key, key);
SHA256_PassHash(key, HASHCODE, hash, 65);
format(query, sizeof(query), "INSERT INTO "SQL_TAG"accounts (Spielername, Passwort) VALUES ('%s','%s')", Spielername(playerid), hash);
mysql_tquery(Handle, query);
printf(hash);
return 1;
}
else
{
SendClientMessage(playerid, SERVERCOLOR, "[Server] "HTML_ROT"Du wurdest gekickt! Grund: Fehlerhafte Regestration");
Kick(playerid);
return 1;
}
}
case DIALOG_LOGIN:
{
if(response)
{
new key[50], hash[65], query[256];
format(key, 50, "%s", inputtext);
mysql_escape_string(Spielername(playerid), Spielername(playerid)), mysql_escape_string(key, key);
format(query, sizeof(query), "SELECT * FROM "SQL_TAG"accounts WHERE Spielername='%s' AND Passwort='%s'", Spielername(playerid), key);
SHA256_PassHash(key, HASHCODE, hash, sizeof(hash));
mysql_tquery(Handle, query);
strcmp(hash, key, false) == 0)
{
pInfo[playerid][LoggedIn] = true;
SpawnPlayer(playerid);
}
else
{
SendClientMessage(playerid, SERVERCOLOR, "[Server]"COLOR_ROT"* Das eingegebene Passwort ist inkorrekt!");
new str[2048], ip[16];
format(str, sizeof(str), ""HTML_WEIS"Hallo"SERVERCOLORHTML" %s"HTML_WEIS", \nBitte geb dein Passwort ein. \n \nDeine Ip: "SERVERCOLORHTML"%s"), Spielername(playerid), GetPlayerIp(playerid, ip, sizeof(ip));
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, ""SERVERCOLORHTML"["SERVERTAG"] - Login", str, "Login", "Abbrechen");
}
return 1;
}
else
{
Kick(playerid);
}
}
}
return 1;
}
Alles anzeigen