Hallo,
ich habe ein Problem mit dem ermitteln des Alters eines Spielers. Es wir immer auf 2011 gesetzt..
Code:
if(dialogid == DIALOG_REGSTEP_2)
{
new year, month,day;
getdate(year, month, day);
new DateInfo[3][20];
split(inputtext, DateInfo, '.');
if(response == 1)
if (strlen(inputtext) > 10) { // nicht länger als 10 zeichen (xx/xx/xxxx)
ShowPlayerDialog(playerid,DIALOG_REGSTEP_2,DIALOG_STYLE_INPUT,"Alter","Angabefehler: Wann bist du geboren?\nAngabe bitte in TT.MM.JJJJ","Weiter","Abbrechen");
return 0;
}
if (!IsValidDate(strval(DateInfo[0]),strval(DateInfo[1]),strval(DateInfo[2]))) {
ShowPlayerDialog(playerid,DIALOG_REGSTEP_2,DIALOG_STYLE_INPUT,"Alter","Angabefehler: Wann bist du geboren?\nAngabe bitte in TT.MM.JJJJ","Weiter","Abbrechen");
return 0;
}
if(year - strval(DateInfo[2]) > 100 || strval(DateInfo[2]) < 1 || strval(DateInfo[2]) >= year)
{
ShowPlayerDialog(playerid,DIALOG_REGSTEP_2,DIALOG_STYLE_INPUT,"Alter","Angabefehler: Wann bist du geboren?\nAngabe bitte in TT.MM.JJJJ","Weiter","Abbrechen");
return 0;
}
new check = year - strval(DateInfo[2]);
if(check == year)
{
ShowPlayerDialog(playerid,DIALOG_REGSTEP_2,DIALOG_STYLE_INPUT,"Alter","Angabefehler: Wann bist du geboren?\nAngabe bitte in TT.MM.JJJJ","Weiter","Abbrechen");
return 0;
}
if(strval(DateInfo[1]) > month)
{
check -= 1;
}
else if(strval(DateInfo[1]) == month && strval(DateInfo[0]) > day)
{
check -= 1;
}
PlayerInfo[playerid][pAge] = check;
OnPlayerSave(playerid);
format(string, sizeof(string), "Ok, du bist also %d Jahre alt.",PlayerInfo[playerid][pAge]);
SendClientMessage(playerid, COLOR_WHITE, string);
RegistrationStep[playerid] = 3;
ShowPlayerDialog(playerid,DIALOG_REGSTEP_3,DIALOG_STYLE_LIST,"Woher kommst du?","Deutschland\nÖsterreich\nSchweiz","Weiter","Abbrechen");
if(response == 0){
ShowPlayerDialog(playerid,DIALOG_REGSTEP_2,DIALOG_STYLE_INPUT,"Alter","ANGABEFEHLER:Wann bist du geboren?\nAngabe bitte in TT.MM.JJJJ","Weiter","Abbrechen");
}
}
Ich hoffe mir kann jemand helfen