Hallo,
irgendwie funktioniert das ganze mit meinem Alter nicht. (Ich gebe z.B 23.06.1997 ein und es wird dennoch returnt)
Hier mal der Code, welchen ich geschrieben habe:
case DIALOG_ALTER:
{
new DateInfo[3][20],Check = Jahr - strval(DateInfo[2]);
getdate(Jahr,Monat,Tag);
gettime(Stunde,Minute,Sekunde);
split(inputtext,DateInfo,'.');
if(strlen(inputtext) > 10)
{
}
if(!IsValidDate(strval(DateInfo[0]),strval(DateInfo[1]),strval(DateInfo[2])))
{
}
if(Jahr - strval(DateInfo[2]) > 100 || strval(DateInfo[2]) < 1 || strval(DateInfo[2]) >= Jahr)
{
}
if(Check == Jahr)
{
}
if(strval(DateInfo[1]) > Monat)
{
Check -= 1;
}
else if(strval(DateInfo[1]) == Monat && strval(DateInfo[0]) > Tag)
{
Check -= 1;
}
if(AgeOfPlayer(playerid) < 12 && AgeOfPlayer(playerid) > 60)
{
}
SpielerInfo[playerid][pGeburtsdatum] = strval(inputtext);
}
Ich habe die Dialoge extra rausgenommen, damit man keine Informationen zum Server hat.
Wenn ich das Datum sofort korrekt eingebe, funktioniert es. Wenn ich jedoch erst ein falsches eingebe und dann ein richtiges, funktioniert es nicht.
Nebenbei habe ich noch ein Problem, dass er mir ausgibt, dass ich 45 bin, obwohl ich 20 bin.
stock AgeOfPlayer(playerid)
{
new yearold = gettime() - SpielerInfo[playerid][pGeburtsdatum];
return floatround(yearold/31536000);
}
Die E-Mail wird in einem anderen Dialog auch nicht gesetzt, die Spalte bleibt leer..
So setzte ich die E-Mail eigentlich:
format(SpielerInfo[playerid][pEmail],64,"%s",strval(inputtext));
MfG,
Cheevy