Ich hoffe, das mir einer Helfen kann, undzwar möchte ich es bei meinem Registrierungs-System so machen, das der Spieler bei jedem "Schritt der Registrierung" auf Abbrechen drücken kann, und gekickt wird. Bis jetzt habe ich das Problem, das ich nur beim "Geburtsdatum sowie vor der Passwort eingabe" auf Abbrechen drücken kann. Wenn ich beim Geburtsdatum auf Abbrechen drücke, werde ich zwar gekickt, aber leider wird der Spieler trotzdem in die Datenbank eingetragen, aber mit allen Werten auf 0.
Und beim Geschlecht besteht die möglichkeit des Abbrechens noch nicht, dies werde ich aber selber erlededigen können, werde dort ein "DIALOG_STYLE_LIST" verwenden.
Hier mal mein bisheriger Code:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
switch(dialogid)
{
case Dialog_Register:
{
if(!response)
{
SendClientMessage(playerid,0xFF0000FF,"Die Registrierung wurde Ab.-oder Unterbrochen\nBitte beenden Sie das Spiel, indem Sie /q als Textnachricht in den Chat eingeben.");
SetTimerEx("KickPlayer",250,0,"i",playerid);
return 1;
}
if(!inputtext[0] || !(3 <= strlen(inputtext) <= 24))
{
ShowPlayerDialog(playerid,Dialog_Register,DIALOG_STYLE_PASSWORD,"{FFFFFF}SmR: {308EAD}Registrierung","{FFFFFF}Herzlich Willkommen auf San Miami Roleplay\n\nUnser System hat Ihre Spielerinformationen nicht in unserer Datenbank gefunden.\nUm einen Charakter auf unserem Server zu Erstellen\nbenötigen wir einige Informationen von Ihnen.\nBitte tragen Sie ein Sicheres Passwort in das untere Feld ein.\n\nMerken Sie sich Ihr Passwort Gut.","Annehmen","Abbrechen");
return 1;
}
new query[950 + MAX_PLAYER_NAME],Tag,Monat,Jahr,Stunde,Minute,Sekunde,;
mysql_escape_string(inputtext,passwort,DBHandle)
getdate(Tag,Monat,Jahr);
gettime(Stunde,Minute,Sekunde);
format(query,sizeof(query),"%02d.%02d.%d - %02d:%02d:%d",Tag,Monat,Jahr,Stunde,Minute,Sekunde);
mysql_format(DBHandle, query, sizeof(query),"INSERT INTO `Accounts` (`pName`, `pPasswort`, `pAlter`, `pGeburtsdatum`, `pGeschlecht`, `pAdminlevel`, `pBanned`, `pBargeld`, `pKontoguthaben`, `pLastLogin`, `pRegDatum`, `pWarns`, `pLeben`) VALUES ('%e','%e','%d','%e','%d','%d','%d','0','0','%s','%s','%d','100.0')",
Spieler[playerid][pName],inputtext,Spieler[playerid][pAlter],Spieler[playerid][pGeburtsdatum],Spieler[playerid][pGeschlecht],Spieler[playerid][pAdminlevel],Spieler[playerid][pBanned],Spieler[playerid][pBargeld],Spieler[playerid][pKontoguthaben],query,query,Spieler[playerid][pWarns],Spieler[playerid][pLeben]);
mysql_tquery(DBHandle, query, "", "");
ShowPlayerDialog(playerid,Dialog_Geburtsdatum,DIALOG_STYLE_INPUT,"{FFFFFF}SmR: {308EAD}Geburtsdatum","{E5E5E5}Nun möchten wir wissen, wann Sie Geboren wurden. Tragen Sie Bitte Ihr Geburtsdatum in das untere Feld ein. Halten Sie sich Bitte an die Vorlage!\n\nAngabe bitte in TT.MM.JJJJ - {23A7F5}Beispiel: {E5E5E5}10.09.1994","Weiter","Verlassen");
return 1;
}
case Dialog_Geburtsdatum:
{
if(response == 0)return Kick(playerid);
else
{
Spieler[playerid][pAlter] = GetAge(inputtext);
if(Spieler[playerid][pAlter] == 0)
{
ShowPlayerDialog(playerid,Dialog_Geburtsdatum,DIALOG_STYLE_INPUT,"{FFFFFF}SmR: {308EAD}Geburtsdatum","{E5E5E5}Nun möchten wir wissen, wann Sie Geboren wurden. Tragen Sie Bitte Ihr Geburtsdatum in das untere Feld ein. Halten Sie sich Bitte an die Vorlage!\n\nAngabe bitte in TT.MM.JJJJ - {23A7F5}Beispiel: {E5E5E5}10.09.1994","Weiter","Verlassen");
return 1;
}
format(Spieler[playerid][pGeburtsdatum],20,inputtext);
if(Spieler[playerid][pAlter] == 0)
{
ShowPlayerDialog(playerid,Dialog_Geburtsdatum,DIALOG_STYLE_INPUT,"{FFFFFF}SmR: {308EAD}Geburtsdatum","{E5E5E5}Nun möchten wir wissen, wann Sie Geboren wurden. Tragen Sie Bitte Ihr Geburtsdatum in das untere Feld ein. Halten Sie sich Bitte an die Vorlage!\n\nAngabe bitte in TT.MM.JJJJ - {23A7F5}Beispiel: {E5E5E5}10.09.1994","Weiter","Verlassen");
return 1;
}
Spieler[playerid][pLogged] = false;
ShowPlayerDialog(playerid,Dialog_Geschlecht,DIALOG_STYLE_MSGBOX,"{FFFFFF}SmR: {308EAD}Geschlecht","{FFFFFF}Als letztes möchten wir Ihr Geschlecht wissen, Wählen Sie für die Angabe bitte Ihr Geschlecht welches unten zutrifft.","Männlich","Weiblich");
return 1;
}
}
case Dialog_Geschlecht:
{
new string[128];
if(response == 0)
{
format(string,sizeof(string),"{23A7F5}%s, {E5E5E5}Sie sind also Weiblich, und {23A7F5}%i {E5E5E5}Jahre alt.",Spielername(playerid),AgeOfPlayer(playerid));
SendClientMessage(playerid,0x00D2D2FF,string);
Spieler[playerid][pGeschlecht] = 2;
Spieler[playerid][pLogged] = true;
SavePlayerData(playerid);
SpawnPlayer(playerid);
return 1;
}
if(response == 1)
{
format(string,sizeof(string),"{23A7F5}%s, {E5E5E5}Sie sind also Männlich, und {23A7F5}%i {E5E5E5}Jahre alt.",Spielername(playerid),AgeOfPlayer(playerid));
SendClientMessage(playerid,0x00D2D2FF,string);
Spieler[playerid][pGeschlecht] = 1;
Spieler[playerid][pLogged] = true;
SavePlayerData(playerid);
SpawnPlayer(playerid);
return 1;
}
return 1;
}
case Dialog_Login:
{
if(!response)
{
SendClientMessage(playerid,0xFF0000FF,"Dieser Vorgang wurde Ab.-oder Unterbrochen\nBitte beenden Sie das Spiel, indem Sie /q als Textnachricht in den Chat eingeben.");
SetTimerEx("KickPlayer",250,0,"i",playerid);
return 1;
}
if(!inputtext[0] || !(3 <= strlen(inputtext) <= 25))
{
ShowPlayerDialog(playerid,Dialog_Login,DIALOG_STYLE_INPUT,"{FFFFFF}SmR: {308EAD}Einloggen","{0xA70000FF}Das Passwort darf nur 3-25 Zeichen enthalten!{FFFFFF}\n\nSie müssen von unserem System {0xFFFFFF}Identifiziert{FFFFFF} werden.\nGeben Sie dafür bitte Ihr richtiges Passwort unten in das Feld ein.\n\nKlicken Sie danach auf Einloggen, damit die Daten kontrolliert werden können.","Einloggen","Abbrechen");
return 1;
}
new query[180 + MAX_PLAYER_NAME];
mysql_format(DBHandle, query,sizeof(query),"SELECT COUNT(*) AS `count` FROM `Accounts` WHERE `pName` ='%e' AND `pPasswort` ='%e'",Spieler[playerid][pName],inputtext);
mysql_function_query(DBHandle, query, true,"LoadPlayerDataSequence","dd",playerid,2);
Spieler[playerid][pLogged] = true;
return 1;
}
}
return 1;
}