Alter überpüfen (ob Zahl angegeben wurde)

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Guten Tag liebe Brotfische,


    also ich möchte mir in meinem Register etwas einbauen. Wenn der Spieler das gewünschte Passwort angegeben hat, dann soll ihm ein Dialog angezeigt werden, wo der Spieler sein Geburtsdatum angeben muss (das habe ich auch schon bisjetzt gemacht). Doch ab folgendem Punkt komme ich nicht weiter.


    Ich will überprüfen, ob der Spieler eine Ziffer eingegeben hat, wenn ja, soll nochmal überprüft werden, ob es auch im gewünschten Format (TT/MM/JJJJ) angegeben wurde, wenn nicht, soll ihm eine Errornachricht gesendet werden. Könntet ihr mir dabei helfen? Ich wäre sehr bedankbar bei euch.

  • new year, month,day;
    getdate(year, month, day);
    new DateInfo[3][20];
    split(text, DateInfo, '.');
    if (strlen(text) > 10) { // nicht länger als 10 zeichen (xx/xx/xxxx)
    SendClientMessage(playerid, FARBE, "Wann bist du geboren? (TT.MM.JJJJ)");
    return 0;
    }
    if (!IsValidDate(strval(DateInfo[0]),strval(DateInfo[1]),strval(DateInfo[2]))) {
    SendClientMessage(playerid, FARBE, "Wann bist du geboren? (TT.MM.JJJJ)");
    return 0;
    }
    if(year - strval(DateInfo[2]) > 100 || strval(DateInfo[2]) < 1 || strval(DateInfo[2]) >= year)
    {
    SendClientMessage(playerid, FARBE, "Wann bist du geboren? (TT.MM.JJJJ)");
    return 0;
    }
    new check = year - strval(DateInfo[2]);
    if(check == year)
    {
    SendClientMessage(playerid, FARBE, "Wann bist du geboren? (TT.MM.JJJJ)");
    return 0;
    }
    if(strval(DateInfo[1]) > month)
    {
    check -= 1;
    }
    else if(strval(DateInfo[1]) == month && strval(DateInfo[0]) > day)
    {
    check -= 1;
    }
    HIER AUF VAR BESETZTEN = check;
    format(string, sizeof(string), "Ok, du bist also %d Jahre alt.",check);
    SendClientMessage(playerid, FARBE, string);

    //split function
    Function split(const strsrc[], strdest[][], delimiter)
    {
    new i, li;
    new aNum;
    new len;
    while(i <= strlen(strsrc)){
    if(strsrc[i]==delimiter || i==strlen(strsrc)){
    len = strmid(strdest[aNum], strsrc, li, i, 128);
    strdest[aNum][len] = 0;
    li = i+1;
    aNum++;
    }
    i++;
    }
    return 1;

    Habs mal kopiert und bissel bearbeitet ;) Überings finde es mit TT.MM.JJJJ besser =D
    Die Split function trennt es und speichert es richtig ab ;)


    L.G.
    heyho