Guten Abend Zusammen,
ich bin derzeit etwas am Rand des Abgrunds, da ich nicht weiß, inwiefern hier das Problem besteht.
Unzwar bin ich gerade bei der Erstellung eines Registrierensystems mit Geschlecht, Alter und Herkunft. Das funktioniert alles auch so weit, aber sobald ich dann bei dem Alter im Dialog auf 'Bestätigen' klicke, sprich auf den Button, passiert nichts.
Bei der Auswahl des Geschlechts wird problemlos der nächste Dialog angezeigt, aber wie beschrieben funktioniert das beim Alter nicht. Das Dialogfenster schließt sich und die Aktionen bei der if(response == XY) werden nicht ausgeführt.
Anbei der Code:
{
if(response == 1)
{
SpielerInfo[playerid][pGeschlecht] = 1;
SendClientMessage(playerid, weiss, "Du hast angegeben, dass du dem männlichen Geschlecht angehörst.");
ShowPlayerDialog(playerid, DIALOG_ALTER, DIALOG_STYLE_INPUT, "Alter", "Wann wurdest du geboren? Angabe in TT.MM.JJJJ", "Bestätigen", "Zurück");
}
if(response == 0)
{
SpielerInfo[playerid][pGeschlecht] = 2;
SendClientMessage(playerid, weiss, "Du hast angegeben, dass du dem weiblichen Geschlecht angehörst.");
ShowPlayerDialog(playerid, DIALOG_ALTER, DIALOG_STYLE_INPUT, "Alter", "Wann wurdest du geboren? Angabe in TT.MM.JJJJ", "Bestätigen", "Zurück");
}
return 1;
}
if(dialogid == DIALOG_ALTER)
{
new tag, monat, jahr;
getdate(tag, monat, jahr);
new DatumInfo[3][20];
split(inputtext, DatumInfo, '.');
if(response == 1)
{
if(strlen(inputtext) > 10)
{
ShowPlayerDialog(playerid,DIALOG_ALTER,DIALOG_STYLE_INPUT,"Jahre","ANGABEFEHLER: Wann bist du geboren?\nAngabe bitte in TT.MM.JJJJ","Bestätigen","Zurück");
}
if(!IsDatumGueltig(strval(DatumInfo[0]),strval(DatumInfo[1]),strval(DatumInfo[2])))
{
ShowPlayerDialog(playerid,DIALOG_ALTER,DIALOG_STYLE_INPUT,"Jahre","ANGABEFEHLER: Wann bist du geboren?\nAngabe bitte in TT.MM.JJJJ","Bestätigen","Zurück");
}
if(jahr - strval(DatumInfo[2]) > 60 || strval(DatumInfo[2]) < 10 || strval(DatumInfo[2]) >= jahr)
{
ShowPlayerDialog(playerid,DIALOG_ALTER,DIALOG_STYLE_INPUT,"Jahre","ANGABEFEHLER: Wann bist du geboren?\nAngabe bitte in TT.MM.JJJJ","Bestätigen","Zurück");
}
new check = jahr - strval(DatumInfo[2]);
if(check == jahr)
{
ShowPlayerDialog(playerid,DIALOG_ALTER,DIALOG_STYLE_INPUT,"Jahre","ANGABEFEHLER: Wann bist du geboren?\nAngabe bitte in TT.MM.JJJJ","Bestätigen","Zurück");
}
if(strval(DatumInfo[1]) > monat)
{
check -= 1;
}
else if(strval(DatumInfo[1]) == monat && strval(DatumInfo[0]) > tag)
{
check -= 1;
}
new string[128];
SpielerInfo[playerid][pAlter] = check;
format(string, sizeof(string), "Du hast angegeben, dass du %d Jahre alt bist.",SpielerInfo[playerid][pAlter]);
SendClientMessage(playerid, weiss, string);
ShowPlayerDialog(playerid, DIALOG_HERKUNFT, DIALOG_STYLE_LIST, "Länderauswahl", "Deutschland\nÖsterreich\nSchweiz\nLiechtenstein\nLuxemburg\nDänemark","Weiter","");
}
if(response == 0)
{
SendClientMessage(playerid, weiss, "Du hast die Aktion 'Zurück' gewählt und bist im vorherigen Registrierungsvorgang.");
ShowPlayerDialog(playerid, DIALOG_GESCHLECHT, DIALOG_STYLE_MSGBOX, "Geschlecht", "Welchem Geschlecht gehörst du an?","männlich","weiblich");
}
return 1;
}
Die Dialoge sind selbstverständlich oben definiert.
#define DIALOG_GESCHLECHT 2
#define DIALOG_ALTER 3
Ich bedanke mich bei euch im Voraus für eure Hilfe.
Mit freundlichen Grüßen,
MrJokazMan
Edit 1: Problem näher beschrieben
Edit 2: Push... das Problem besteht immer noch