Heyho
ich möchte folgendes wissen. Un zwar wenn ich auf "Passwort eingeben" klicke soll ein Dialog kommen wo der Spieler sein oder bisher gewähltes Passwort reinschreiben muss. Wenn er dann auf Registrieren oder Login ( auf dem Bild nicht vorhanden) klickt soll er halt entweder Registriert werden oder Eingeloggt werden.
Bisher habe ich, dass der wenigstens schonmal das Richtige Textdraw hinbastelt. Aber wie mach ich das nun mit dem Extra Textdraw (das Passwort was "gespeichert" wird und dann beim klicken auf Register/Login abgerufen wird und er eingeloggt oder registiert wirs)?
Hier der Code:
Nach abfrage ob er schon einen Account besitzt:
public CheckUser(playerid)
{
new num_rows, num_fields;
cache_get_data(num_rows, num_fields, mysql);
if(num_rows == 0){
//Registrierung
PlayerTextDrawShow(playerid, SB_REGISTER);
}
else
{
//Login
// new input[200];
// format(input,sizeof(input),"{908B8E}Willkommen zurück auf {FF9E00}%s{908B8E}!\nDein Account wurde in der Datenbank gefunden.\nGebe hier bitte dein Passwort ein, welches du bei der Registrierung gewählt hast.",SERVERNAME);
// ShowPlayerDialog(playerid,DIALOG_LOGIN,3,"{FF9E00}Login",input,"Absenden","Verlassen");
PlayerTextDrawShow(playerid, SB_LOGIN);
}
return 1;
}
Hier die Dialoge die ich bisher hatte:
if(dialogid == DIALOG_REGISTER){
if(response){
new query[1024],query2[1024],passwort[35];
if(strlen(inputtext) >= 6){
mysql_escape_string(inputtext,passwort,mysql);
format(query,sizeof(query),"INSERT INTO accounts (Name,Passwort) VALUES ('%s',MD5('%s')) ",SpielerName(playerid),passwort);
mysql_function_query(mysql,query,false,"","");
format(query2,sizeof(query2),"SELECT ID FROM accounts WHERE Name='%s'",SpielerName(playerid));
mysql_function_query(mysql,query2,true,"AfterRegister","i",playerid);
sInfo[playerid][pEingeloggt] = 1;
sInfo[playerid][pLevel] = 1;
SetSpawnInfo( playerid, 0, 289, 1511.8359, -1713.5916, 14.0469, 222.1692, 0, 0, 0, 0, 0, 0 );
SpawnPlayer(playerid);
SetPlayerScore(playerid,sInfo[playerid][pLevel]);
GivePlayerMoney(playerid,150);
} else {
new input[200];
format(input,sizeof(input),"{908B8E}Das Passwort ist nicht lang genug. (min. {FF9E00}6{908B8E} Zeichen)\nGebe hier dein gewünschtes Passwort ein, mit welchem du dich registrieren möchtest!");
ShowPlayerDialog(playerid,DIALOG_REGISTER,3,"{FF9E00}Registrierung",input,"Absenden","Verlassen");
}
} else {
Kick(playerid);
}
return 1;
}
//##########################################################################################################################################################################
if(dialogid == DIALOG_LOGIN){
if(response){
new query[1024],passwort[35];
if(strlen(inputtext) > 0){
mysql_escape_string(inputtext,passwort,mysql);
format(query,sizeof(query),"SELECT * FROM accounts WHERE Name='%s' AND Passwort=MD5('%s')",SpielerName(playerid),passwort);
mysql_function_query(mysql,query,true,"OnPasswortResponse","i",playerid);
} else {
new input[200];
format(input,sizeof(input),"{908B8E}Du hast kein Passwort angegeben.\nGebe hier bitte dein Passwort ein, welches du bei der Registrierung gewählt hast.",SERVERNAME);
ShowPlayerDialog(playerid,DIALOG_LOGIN,3,"{FF9E00}Login",input,"Absenden","Verlassen");
}
} else {
Kick(playerid);
}
return 1;
}
Hier wenn er auf den Register Button klickt was aber auch bisher noch Falsch ist:
public OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid)
{
if(playertextid == SB_REGISTER){
CancelSelectTextDraw(playerid);
new input[200];
format(input,sizeof(input),"{908B8E}Herzlich Willkommen auf {FF9E00}%s{908B8E}!\nDein Account wurde nicht in der Datenbank gefunden.\nGebe hier dein gewünschtes Passwort ein, mit welchem du dich registrieren möchtest!",SERVERNAME);
ShowPlayerDialog(playerid,DIALOG_REGISTER,3,"{FF9E00}Registrierung",input,"Absenden","Verlassen");
}
return 1;
}