Hallo,
mal wieder ein MySQL Thema! Die Hände in die Höh', yüha!
Spaß beiseite, ich befasse mich momentan mit MySQL und habe meinen Code nun soweit bekommen, dass er ohne Errors kompiliert und eine Verbindung zur Datenbank hergestellt wird.
public OnPlayerConnect(playerid)
{
//MySQL - Login/Register
TogglePlayerSpectating(playerid, true);
new
query[128],
pName[MAX_PLAYER_NAME];
GetPlayerName(playerid, pName, sizeof(pName));
mysql_format(MySQL, query, sizeof(query), "SELECT `Password`, `DatabaseID` FROM `accounts` WHERE `Name` = '%e' LIMIT 1", pName);
mysql_tquery(MySQL, query, "OnAccountCheck", "i", playerid);
}
forward OnAccountCheck(playerid);
public OnAccountCheck(playerid)
{
new
rows,
fields;
cache_get_data(rows, fields, MySQL);
if(rows)
{
cache_get_field_content(0, "Password", pInfo[playerid][Password], MySQL, 129);
pInfo[playerid][DatabaseID] = cache_get_field_content_int(0, "DatabaseID");
new
n[MAX_PLAYER_NAME],
str[MAX_LANGUAGES][128];
format(str[LANGUAGE_DE], sizeof(str[]), "Willkommen, %s!\nEs wurden Accountdaten zu diesem Namen gefunden.\nBitte gib unten das Passwort ein.", n);
format(str[LANGUAGE_EN], sizeof(str[]), "Welcome, %s!\nAccount data has been found for this name.\nPleasy type in the password below.", n);
ShowLanguageDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "Login", "Login", str[LANGUAGE_DE], str[LANGUAGE_EN], "OK", "OK", "Verlassen", "Leave");
}
else ShowPlayerDialog(playerid, DIALOG_LANGUAGE, DIALOG_STYLE_LIST, "Sprache | Language", "Deutsch - German\nEnglisch - English.", "OK", "Exit");
return 1;
}
Also: Der Spieler connected auf den Server, wobei er erst einmal in den Spectator Modus gesetzt wird, um die Class Selection zu deaktivieren. Danach soll eben überprüft werden, ob es Accountdaten zum Namen des Spielers in der Datenbank gibt, oder nicht. Wenn ja, dann kommt der Login Dialog. Wenn nicht, dann kommt zunächst einmal ein Dialog, in dem der Spieler die Sprache auswählen kann, also Deutsch oder Englisch, und im Anschluss daran der Registrations Dialog.
Alles was jedoch passiert ist, dass der Spieler in den Spectator Modus gesetzt wird, mehr nicht. Was habe ich übersehen?
Bitte gebt bescheid, wenn ihr weiteren Code benötigt.