Falls da 0 steht, dann mach die Zeilen 19-23 (Code oben) weg und teste es dann.
War mal so frei und habe es mal kopiert.
xSnake:
Falls da 0 steht, dann mach die Zeilen 19-23 (Code oben) weg und teste es dann.
War mal so frei und habe es mal kopiert.
xSnake:
Poste bitte den "if(dialogid==DIALOG_ALTER)" Teil so wie du ihn jetzt hast.
Vielleicht als Anmerkung für die Zukunft: Wenn ein Code nicht klappt nachdem du ihn geändert hast, poste immer gleich wieder den Code dazu, so wie du ihn jetzt nach der Änderung hast. Das beschleunigt die Fehlerfindung.
bin rein gegangen habe dann /stadthalle gemacht dann Ausweis beantragen dann 15 eingegeben dann kommt der nechste dialog da muss ich mein Geburtsdatum eingeben da habe ich 05.12.1998 eingegeben dann ist der dialog weg gegangen und nichts mehr passiert und die Nachrichten werden nicht ausgesendet und der Timer fürs abholen funktioniert auch nicht
so sieht der code aus
Du zeigst die falsche Dialog ID an.
ShowPlayerDialog(playerid,DIALOG_REGISTER2,DIALOG_STYLE_INPUT,"Geburtsdatum","Gebe nun bitte dein Alter ein. | Angabe bitte in TT.MM.JJJJ","Weiter","Verlassen");
zu:
ShowPlayerDialog(playerid,DIALOG_GEBURTSDATUM,DIALOG_STYLE_INPUT,"Geburtsdatum","Gebe nun bitte dein Alter ein. | Angabe bitte in TT.MM.JJJJ","Weiter","Verlassen");
und es passiert wieder das gleiche wenn ich da 15 eingebe und dann der andere dialog kommt wo ich das geburtsdatum einge ich 05.12.1998 ein aber der dialog kommt immer wieder wo ist der fehler ?
[10:41:32] IsValidDate(''05.12.1998'') -> 0
[10:41:36] IsValidDate(''05.12.1998'') -> 0
steht in den Server Logs
if(dialogid==DIALOG_GEBURTSDATUM)
{
new second = gettime();
new tag,monat,jahr,stunde,minute;
getdate(tag,monat,jahr);
gettime(stunde,minute,second);
new DateInfo[3][20],string[200];
split(inputtext,DateInfo,'.');
if(response == 0) return 1;
else
{
if(strlen(inputtext) > 10)
{
ShowPlayerDialog(playerid,DIALOG_GEBURTSDATUM,DIALOG_STYLE_INPUT,"Geburtsdatum","Gebe nun bitte dein Alter ein. | Angabe bitte in TT.MM.JJJJ","Weiter","Verlassen");
return 1;
}
new tmp[16];
format(tmp, sizeof(tmp), "%02d.%02d.%d", strval(DateInfo[0]),strval(DateInfo[1]),strval(DateInfo[2]));
printf("IsValidDate(''%s'') -> %d", tmp, IsValidDate(tmp));
if(jahr - strval(DateInfo[2]) > 100 || strval(DateInfo[2]) < 1 || strval(DateInfo[2]) >= jahr)
{
ShowPlayerDialog(playerid,DIALOG_GEBURTSDATUM,DIALOG_STYLE_INPUT,"Geburtsdatum","Gebe nun bitte dein Alter ein. | Angabe bitte in TT.MM.JJJJ","Weiter","Verlassen");
return 1;
}
new check = jahr - strval(DateInfo[2]);
if(strval(DateInfo[1]) > monat)
{
check -= 1;
}
else if(strval(DateInfo[1]) == monat && strval(DateInfo[0]) > tag)
{
check -= 1;
}
if(check < 14 || check > 50)
{
ShowPlayerDialog(playerid,DIALOG_GEBURTSDATUM,DIALOG_STYLE_INPUT,"Geburtsdatum"" Registrierung/Alter","Gebe nun bitte dein Alter ein. | Angabe bitte in TT.MM.JJJJ","Weiter","Verlassen");
return 1;
}
sInfo[playerid][palter] = check;
format(sInfo[playerid][pGeburtstag],11,inputtext);
format(string,sizeof(string),"Ok du bist also %i Jahre alt.",sInfo[playerid][palter]);
SendClientMessage(playerid,GELB,"Du hast dein Personalausweis Erfolgreich beantragt!");
SendClientMessage(playerid,GELB,"Du kannst ihn in 5 Minuten abholen!");
SetTimerEx("Persoantrag",5000,false,"i",playerid);
printf("%s hat sein ausweis Beantragt!)",getPlayerName(playerid));
return 1;
}
}
Das ging so zum kompilieren? Interessant.
Schreib es so, falls es nicht klappt, poste den Code und die Logs dazu.
if(dialogid==DIALOG_GEBURTSDATUM)
{
new second = gettime();
new tag,monat,jahr,stunde,minute;
getdate(jahr,monat,tag);
gettime(stunde,minute,second);
new DateInfo[3][20],string[200];
split(inputtext,DateInfo,'.');
if(response == 0) return 1;
else
{
if(strlen(inputtext) > 10)
{
ShowPlayerDialog(playerid,DIALOG_GEBURTSDATUM,DIALOG_STYLE_INPUT,"Geburtsdatum","Gebe nun bitte dein Alter ein. | Angabe bitte in TT.MM.JJJJ","Weiter","Verlassen");
return 1;
}
new tmp[16];
format(tmp, sizeof(tmp), "%02d.%02d.%d", strval(DateInfo[0]),strval(DateInfo[1]),strval(DateInfo[2]));
printf("Datum: %s", tmp);
if(jahr - strval(DateInfo[2]) > 100 || strval(DateInfo[2]) < 1 || strval(DateInfo[2]) >= jahr)
{
printf("jahr: %d | eingabe: %d", jahr, strval(DateInfo[2]));
ShowPlayerDialog(playerid,DIALOG_GEBURTSDATUM,DIALOG_STYLE_INPUT,"Geburtsdatum","Gebe nun bitte dein Alter ein. | Angabe bitte in TT.MM.JJJJ","Weiter","Verlassen");
return 1;
}
new check = jahr - strval(DateInfo[2]);
if(strval(DateInfo[1]) > monat)
{
check -= 1;
}
else if(strval(DateInfo[1]) == monat && strval(DateInfo[0]) > tag)
{
check -= 1;
}
if(check < 14 || check > 50)
{
printf("check = %d", check);
ShowPlayerDialog(playerid,DIALOG_GEBURTSDATUM,DIALOG_STYLE_INPUT,"Geburtsdatum","Gebe nun bitte dein Alter ein. | Angabe bitte in TT.MM.JJJJ","Weiter","Verlassen");
return 1;
}
sInfo[playerid][palter] = check;
format(sInfo[playerid][pGeburtstag],11,inputtext);
format(string,sizeof(string),"Ok du bist also %i Jahre alt.",sInfo[playerid][palter]);
SendClientMessage(playerid,GELB,"Du hast dein Personalausweis Erfolgreich beantragt!");
SendClientMessage(playerid,GELB,"Du kannst ihn in 5 Minuten abholen!");
SetTimerEx("Persoantrag",5000,false,"i",playerid);
printf("%s hat sein ausweis Beantragt!)",getPlayerName(playerid));
return 1;
}
}