Hey Leute,
Ich habe seid einigen tagen ein Problem und zwar hab ich ein Selfmade angefangen was auf MySQL R7/8 läuft nun wenn ich jetzt meine Sachen speichern will und mich wieder registrieren will und auf den Button halt klicke passiert nichts der Dialog ist wieder da und das die ganze Zeit ! Was kann man da gegen machen? Hier mal meine Codes:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
switch(dialogid)
{
case DIALOG_REGISTER:
{
if(!response) Kick(playerid);
if(strlen(inputtext) > 32 || strlen(inputtext) < 4) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD,"Registrierung","Dein Passwort muss mindestens 4 Zeichen oder darf maximal 32 Zeichen enthalten!\n\nWillkommen auf ... Du hast noch keinen Account, \num dich zu Registrieren gib bitte ein gewünschtes Passwort ein:","Registrieren","Abbrechen");
new password[129];
WP_Hash(password, 129, inputtext);
CreatePlayerAccount(playerid, password);
CheckPlayerAccount(playerid);
}
case DIALOG_LOGIN:
{
if(!response) Kick(playerid);
if(strlen(inputtext) > 32 || strlen(inputtext) < 4) return ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD,"Login","Dein Passwort muss mindestens 4 Zeichen oder darf maximal 32 Zeichen enthalten!\n\nWillkommen auf ...\nDeine Accountdaten wurden gefunden, bitte gib dein Passwort ein:","Login","Abbrechen");
new password[129], query[128];
WP_Hash(password, 129, inputtext);
format(query, sizeof query, "SELECT * FROM `accounts` WHERE `ID` = '%d'", SpielerInfo[playerid][pID]);
mysql_function_query(1, query, true, "OnPlayerAccountLoad", "is", playerid, password);
}
}
return 1;
}
public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
return 1;
}
stock ResetPlayerVariables(playerid)
{
SpielerInfo[playerid][pID] = -1,SpielerInfo[playerid][pEingeloggt] = 0,
SpielerInfo[playerid][pPremiumcoins] = 0,SpielerInfo[playerid][pEP] = 0,
SpielerInfo[playerid][pLevel] = 0, SpielerInfo[playerid][pGeld] = 0,
SpielerInfo[playerid][pAdmin] = 0,SpielerInfo[playerid][pFraktion] = 0,
SpielerInfo[playerid][pLeader] = 0,SpielerInfo[playerid][pRang] = 0,
SpielerInfo[playerid][pPerso] = 0,SpielerInfo[playerid][pAutoschein] = 0,
SpielerInfo[playerid][pMotorradschein] = 0,SpielerInfo[playerid][pLKWSchein] = 0,
SpielerInfo[playerid][pFlugschein] = 0,SpielerInfo[playerid][pWaffenschein] = 0,
SpielerInfo[playerid][pPayDayMinutes] = 0,SpielerInfo[playerid][pJob] = 0,
WrongPassword[playerid] = 0;
}
stock DatabaseConnect()
{
mysql_debug(1);
mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_DATA, MYSQL_PASS);
if(mysql_ping() == 1)
{
print("[MySQL] Verbindung zur Datenbank wurde erfolgreich hergestellt!");
return 1;
}
else
{
print("[MySQL] Es konnte keine Verbindung zur Datenbank hergestellt werden!");
print("[MySQL] Es wird erneut versucht eine Verbindung zur Datenbank herzustellen!");
mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_DATA, MYSQL_PASS);
if(mysql_ping() == 1)
{
print("[MySQL] Es konnte im 2 Versuch eine Verbindung hergestellt werden!");
return 1;
}
else
{
print("[MySQL] Es konnte keine Verbindung zur Datenbank hergestellt werden!");
print("[MySQL] Der Server wird nun beendet!");
SendRconCommand("exit");
return 1;
}
}
}
stock CheckPlayerAccount(playerid)
{
new query[128], name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, MAX_PLAYER_NAME);
mysql_real_escape_string(name, name);
format(query, sizeof query, "SELECT `ID` FROM `accounts` WHERE `Username` = '%s'", name);
mysql_function_query(1, query, true, "OnPlayerAccountCheck", "i", playerid);
}
public OnPlayerAccountCheck(playerid)
{
if(!IsPlayerConnected(playerid)) return 1;
new rows, fields, result[5];
cache_get_data(rows, fields);
if(rows)
{
cache_get_field_content(0, "ID", result);
SpielerInfo[playerid][pID] = strval(result);
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD,"Login", "Willkommen auf ...\nDeine Accountdaten wurden gefunden, bitte gib dein Passwort ein:","Login","Abbrechen");
}
else
{
ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Registrierung", "Willkommen auf ...\nDu hast noch keinen Account, um dich zu Registrieren gib bitte ein gewünschtes Passwort ein:", "Registrieren", "Abbrechen");
}
return 1; //!!WICHTIG: Immer returnen damit der Cache geleert wird..!!
}
stock CreatePlayerAccount(playerid, password[])
{
new query[256], name[MAX_PLAYER_NAME], escpassword[129];
GetPlayerName(playerid, name, MAX_PLAYER_NAME);
mysql_real_escape_string(name, name);
mysql_real_escape_string(password, escpassword);
format(query, sizeof query, "INSERT INTO `accounts` (`Username`, `Password`, `Premiumcoins`, `Erfahrungspunkte`, `Level`, `Geld`, `Adminlevel`, `Fraktion`, `Leader`, `Rang`, `Personalausweis`, `Autoschein`, `Motorradschein`, `LKWSchein`, `Flugschein`, `Waffenschein`, `PayDayMinutes`, `Job`) VALUES ('%s', '%s', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0')",name, escpassword);
mysql_function_query(1, query, false, "", "");
}
public OnPlayerAccountLoad(playerid, password[])
{
if(!IsPlayerConnected(playerid) || !IsPlayerNPC(playerid)) return 1;
new rows, fields, result[129];
cache_get_data(rows, fields);
if(!rows) Kick(playerid);
cache_get_field_content(0, "Password", result);
if(!strcmp(result, password, false))
{
cache_get_field_content(0, "Premiumcoins", result); SpielerInfo[playerid][pPremiumcoins] = strval(result);
cache_get_field_content(0, "Erfahrungspunkte", result); SpielerInfo[playerid][pEP] = strval(result);
cache_get_field_content(0, "Level", result); SpielerInfo[playerid][pLevel] = strval(result);
cache_get_field_content(0, "Geld", result); SpielerInfo[playerid][pGeld] = strval(result);
cache_get_field_content(0, "Adminlevel", result); SpielerInfo[playerid][pAdmin] = strval(result);
cache_get_field_content(0, "Fraktion", result); SpielerInfo[playerid][pFraktion] = strval(result);
cache_get_field_content(0, "Leader", result); SpielerInfo[playerid][pLeader] = strval(result);
cache_get_field_content(0, "Rang", result); SpielerInfo[playerid][pRang] = strval(result);
cache_get_field_content(0, "Personalausweis", result); SpielerInfo[playerid][pPerso] = strval(result);
cache_get_field_content(0, "Autoschein", result); SpielerInfo[playerid][pAutoschein] = strval(result);
cache_get_field_content(0, "Motorradschein", result); SpielerInfo[playerid][pMotorradschein] = strval(result);
cache_get_field_content(0, "LKWSchein", result); SpielerInfo[playerid][pLKWSchein] = strval(result);
cache_get_field_content(0, "Flugschein", result); SpielerInfo[playerid][pFlugschein] = strval(result);
cache_get_field_content(0, "Waffenschein", result); SpielerInfo[playerid][pWaffenschein] = strval(result);
cache_get_field_content(0, "PayDayMinutes", result); SpielerInfo[playerid][pPayDayMinutes] = strval(result);
cache_get_field_content(0, "Job", result); SpielerInfo[playerid][pJob] = strval(result);
SpielerInfo[playerid][pEingeloggt] = 1;
SetPlayerScore(playerid, SpielerInfo[playerid][pLevel]);
ResetPlayerMoney(playerid);
GivePlayerMoney(playerid, SpielerInfo[playerid][pGeld]);
SpawnPlayer(playerid);
}
else
{
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Das Angegebene Passwort stimmt nicht überein.\nBitte gib das richtige Passwort ein\n\nDu hast 3 Versuche sonst wirst du gekickt!:","Login","Abbrechen");
WrongPassword[playerid] += 1;
if(WrongPassword[playerid] == 3)
{
WrongPassword[playerid] = 0;
Kick(playerid);
}
}
return 1;
}
public SavePlayerAccount(playerid)
{
if(!IsPlayerConnected(playerid) || !IsPlayerNPC(playerid)) return 1;
new query[500];
format(query, sizeof query, "UPDATE accounts SET \
Premiumcoins=%d, \
Erfahrungspunkte=%d, \
Level=%d, \
Geld=%d, \
Adminlevel=%d, \
Fraktion=%d, \
Leader=%d, \
Rang=%d, \
Personalausweis=%d, \
Autoschein=%d, \
Motorradschein=%d, \
LKWSchein=%d, \
Flugschein=%d, \
Waffenschein=%d, \
PayDayMinutes=%d, \
Job=%d \
WHERE ID=%d", \
SpielerInfo[playerid][pPremiumcoins],
SpielerInfo[playerid][pEP],
GetPlayerScore(playerid),
GetPlayerMoney(playerid),
SpielerInfo[playerid][pAdmin],
SpielerInfo[playerid][pFraktion],
SpielerInfo[playerid][pLeader],
SpielerInfo[playerid][pRang],
SpielerInfo[playerid][pPerso],
SpielerInfo[playerid][pAutoschein],
SpielerInfo[playerid][pMotorradschein],
SpielerInfo[playerid][pLKWSchein],
SpielerInfo[playerid][pFlugschein],
SpielerInfo[playerid][pWaffenschein],
SpielerInfo[playerid][pPayDayMinutes],
SpielerInfo[playerid][pJob],
SpielerInfo[playerid][pID]);
mysql_function_query(1, query, false, "", "");
return 1;
}
Vielen dank im voraus.
Mit freundlichen Grüßen
Dwayne_Pacino