Perso Antrag alter abfragen

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
  • Hallo com ich habe gerade ein Kleines Perso system gemacht es funktioniert auch alles aber jetze will ich hinzufügen das man sein sein alter angeben muss aber habe 0 plan wie


    es soll so sein man darf nicht jünger als 12 sein und nicht älter als 80 :D
    und mann muss dann eingebeben z.b 05.12.1998 und dann soll da stehen oke du bist also 15 Jahre alt


    Jeffry:
    könntest du mir da weiterhelfen ?
    #define DIALOG_STADTHALLE 32
    #define DIALOG_ALTER 33


    ocmd:stadthalle(playerid)
    {
    if(IsPlayerInRangeOfPoint(playerid,10,362.1489,173.7344,1008.3828))
    {
    ShowPlayerDialog(playerid,DIALOG_STADTHALLE,DIALOG_STYLE_LIST,"Stadthalle","Personalausweis Beantrage\nPersonalausweis Abholen\nPKW Führerschein","Wählen","Abbruch");
    }
    else
    {
    SendClientMessage(playerid,ROT,"Du bist nicht In der Stadthalle");
    }
    return 1;
    }


    if(dialogid==DIALOG_STADTHALLE)
    {
    if(response==0)
    {
    return 1;
    }
    if(listitem==0)
    {
    ShowPlayerDialog(playerid,DIALOG_ALTER,DIALOG_STYLE_INPUT,"Alter angabe","Bitte Trage hier dein Alter ein","
    return 1;
    }
    if(listitem==1)
    {
    if(sInfo[playerid][pantrag] == 1)
    {
    SendClientMessage(playerid,ROT,"Du hast dein Personalausweis bekommen");
    sInfo[playerid][perso] = 1;
    savePlayer(playerid);
    printf("%s hat sein ausweis Abgeholt!)",getPlayerName(playerid));
    }
    else
    {
    SendClientMessage(playerid,ROT,"Du musst Zuerst ein Ausweis in der Stadthalle beantragen");
    return 1;
    }
    return 1;
    }
    if(listitem==2)
    {
    SendClientMessage(playerid,GELB,"PKW Führerschein");
    return 1;
    }
    return 1;
    }

    if(dialogid==DIALOG_ALTER)
    {
    //hier soll das alter angegeben werden und dann soll das hier ausgeführt werden
    SendClientMessage(playerid,GELB,"Du hast dein Personalausweis Erfolgreich beantragt!");
    SendClientMessage(playerid,GELB,"Du kannst ihn in 5 Minuten abholen!");
    SetTimerEx("Persoantrag",300000,false,"i",playerid);
    printf("%s hat sein ausweis Beantragt!)",getPlayerName(playerid));
    return 1;
    }
    return 1;
    }


    public Persoantrag(playerid)
    {
    sInfo[playerid][pantrag] = 1;
    }

  • habe diese Fehler hier ?
    habe überall //hier ist die zeile
    hingeschrieben wo fehler sind das du die Besser erkennst
    Jeffry:


    C:\Users\tobi\Desktop\Selfmadescript\gamemodes\Reallifescript.pwn(5654) : error 037: invalid string (possibly non-terminated string)
    C:\Users\tobi\Desktop\Selfmadescript\gamemodes\Reallifescript.pwn(5654 -- 5655) : error 001: expected token: ",", but found "return"
    C:\Users\tobi\Desktop\Selfmadescript\gamemodes\Reallifescript.pwn(5683) : error 017: undefined symbol "jahr"
    C:\Users\tobi\Desktop\Selfmadescript\gamemodes\Reallifescript.pwn(5684) : error 017: undefined symbol "stunde"
    C:\Users\tobi\Desktop\Selfmadescript\gamemodes\Reallifescript.pwn(5686) : error 004: function "split" is not implemented
    C:\Users\tobi\Desktop\Selfmadescript\gamemodes\Reallifescript.pwn(5695) : error 017: undefined symbol "IsValidDate"
    C:\Users\tobi\Desktop\Selfmadescript\gamemodes\Reallifescript.pwn(5700) : error 017: undefined symbol "jahr"
    C:\Users\tobi\Desktop\Selfmadescript\gamemodes\Reallifescript.pwn(5705) : error 017: undefined symbol "jahr"
    C:\Users\tobi\Desktop\Selfmadescript\gamemodes\Reallifescript.pwn(5706) : error 017: undefined symbol "monat"
    C:\Users\tobi\Desktop\Selfmadescript\gamemodes\Reallifescript.pwn(5710) : error 017: undefined symbol "monat"
    C:\Users\tobi\Desktop\Selfmadescript\gamemodes\Reallifescript.pwn(5719) : error 017: undefined symbol "pYearsOld"
    C:\Users\tobi\Desktop\Selfmadescript\gamemodes\Reallifescript.pwn(5721) : error 017: undefined symbol "Spieler"
    C:\Users\tobi\Desktop\Selfmadescript\gamemodes\Reallifescript.pwn(5721) : warning 215: expression has no effect
    C:\Users\tobi\Desktop\Selfmadescript\gamemodes\Reallifescript.pwn(5721) : error 001: expected token: ";", but found "]"
    C:\Users\tobi\Desktop\Selfmadescript\gamemodes\Reallifescript.pwn(5721) : error 029: invalid expression, assumed zero
    C:\Users\tobi\Desktop\Selfmadescript\gamemodes\Reallifescript.pwn(5721) : fatal error 107: too many error messages on one line


    Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
    #define DIALOG_STADTHALLE 32
    #define DIALOG_ALTER 33


    enum playerInfo{
    eingeloggt,
    level,
    db_id,
    alevel,
    slevel,
    Skin,
    fraktion,
    rang,
    leader,
    coleader,
    spawnchange,
    tutpart,
    regstep,
    geschlecht,
    adminduty,
    tv,
    pantrag,
    perso,
    pGeburtstag[11],
    }


    forward Persoantrag(playerid);
    forward split(const strsrc[], strdest[][], delimiter);
    ocmd:stadthalle(playerid)
    {
    if(IsPlayerInRangeOfPoint(playerid,10,362.1489,173.7344,1008.3828))
    {
    ShowPlayerDialog(playerid,DIALOG_STADTHALLE,DIALOG_STYLE_LIST,"Stadthalle","Personalausweis Beantrage\nPersonalausweis Abholen\nPKW Führerschein","Wählen","Abbruch");
    }
    else
    {
    SendClientMessage(playerid,ROT,"Du bist nicht In der Stadthalle");
    }
    return 1;
    }


    if(dialogid==DIALOG_STADTHALLE)
    {
    if(response==0)
    {
    return 1;
    }
    if(listitem==0)
    {
    ShowPlayerDialog(playerid,DIALOG_ALTER,DIALOG_STYLE_INPUT,"Alter angabe","Bitte Trage hier dein Alter ein","
    return 1;
    }
    if(listitem==1)
    {
    if(sInfo[playerid][pantrag] == 1)
    {
    SendClientMessage(playerid,ROT,"Du hast dein Personalausweis bekommen");
    sInfo[playerid][perso] = 1;
    savePlayer(playerid);
    printf("%s hat sein ausweis Abgeholt!)",getPlayerName(playerid));
    }
    else
    {
    SendClientMessage(playerid,ROT,"Du musst Zuerst ein Ausweis in der Stadthalle beantragen");
    return 1;
    }
    return 1;
    }
    if(listitem==2)
    {
    SendClientMessage(playerid,GELB,"PKW Führerschein");
    return 1;
    }
    return 1;
    }

    if(dialogid==DIALOG_ALTER)
    {
    getdate(jahr,monat,tag);//hier ist die Zeile 5683
    gettime(stunde,minute,sekunde); //hier ist die Zeile 5684
    new DateInfo[3][20],string[200];
    split(inputtext,DateInfo,'.'); //hier ist die Zeile 5686
    if(response == 0) return Kick(playerid);
    else
    {
    if(strlen(inputtext) > 10)
    {
    ShowPlayerDialog(playerid,DIALOG_ALTER,DIALOG_STYLE_INPUT,"Alter angabe","Gebe nun bitte dein Alter ein. | Angabe bitte in TT.MM.JJJJ","Weiter","Verlassen");
    return 1;
    }
    if(!IsValidDate(strval(DateInfo[0]),strval(DateInfo[1]),strval(DateInfo[2]))) //hier ist die Zeile 5695
    {
    ShowPlayerDialog(playerid,DIALOG_ALTER,DIALOG_STYLE_INPUT,"Alter angabe","Gebe nun bitte dein Alter ein. | Angabe bitte in TT.MM.JJJJ","Weiter","Verlassen");
    return 1;
    }
    if(jahr - strval(DateInfo[2]) > 100 || strval(DateInfo[2]) < 1 || strval(DateInfo[2]) >= jahr) // hier ist die Zeile 5700
    {
    ShowPlayerDialog(playerid,DIALOG_ALTER,DIALOG_STYLE_INPUT,"Alter angabe","Gebe nun bitte dein Alter ein. | Angabe bitte in TT.MM.JJJJ","Weiter","Verlassen");
    return 1;
    }
    new check = jahr - strval(DateInfo[2]); //hier ist die zeile 5705
    if(strval(DateInfo[1]) > monat) //hier ist die zeile 5706
    {
    check -= 1;
    }
    else if(strval(DateInfo[1]) == monat && strval(DateInfo[0]) > tag) // hier ist die Zeile 5710
    {
    check -= 1;
    }
    if(check < 14 || check > 50)
    {
    ShowPlayerDialog(playerid,DIALOG_ALTER,DIALOG_STYLE_INPUT,""#SERVERFARBE""#SERVERNAME"{FFFFFF}: Registrierung/Alter","Gebe nun bitte dein Alter ein. | Angabe bitte in TT.MM.JJJJ","Weiter","Verlassen");
    return 1;
    }
    sInfo[playerid][pYearsOld] = check; //hier ist die Zeile 5719
    format(sInfo[playerid][pGeburtstag],11,inputtext);
    format(string,sizeof(string),"Ok du bist also %i Jahre alt.",Spieler[playerid][pYearsOld]); // hier ist die Zeile 5721
    SendClientMessage(playerid,GELB,"Du hast dein Personalausweis Erfolgreich beantragt!");
    SendClientMessage(playerid,GELB,"Du kannst ihn in 5 Minuten abholen!");
    SetTimerEx("Persoantrag",300000,false,"i",playerid);
    printf("%s hat sein ausweis Beantragt!)",getPlayerName(playerid));
    return 1;
    }
    }
    return 1;
    }


    stock AgeOfPlayer(playerid)
    {
    new DateInfo[3][20], jahr, monat, tag;
    split(Spieler[playerid][pGeburtstag],DateInfo,'.');
    getdate(jahr,monat,tag);
    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;
    }
    return check;
    }


    public Persoantrag(playerid)
    {
    sInfo[playerid][pantrag] = 1;
    }

  • Jeffry:


    habe bis gerade dran gewesen nurnoch 2 errors kannst du mir dort helfen ?


    C:\Users\tobi\Desktop\Selfmadescript\gamemodes\Reallifescript.pwn(5689) : error 004: function "split" is not implemented
    C:\Users\tobi\Desktop\Selfmadescript\gamemodes\Reallifescript.pwn(5698) : error 017: undefined symbol "IsValidDate"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    2 Errors.



    if(dialogid==DIALOG_ALTER)
    {
    new second = gettime();
    new jahr,monat,tag,stunde,minute;
    getdate(jahr,monat,tag);
    gettime(stunde,minute,second);
    new DateInfo[3][20],string[200];
    split(inputtext,DateInfo,'.'); // hier ist noch ein fehler zeile 5689
    if(response == 0) return Kick(playerid);
    else
    {
    if(strlen(inputtext) > 10)
    {
    ShowPlayerDialog(playerid,DIALOG_ALTER,DIALOG_STYLE_INPUT,"Alter angabe","Gebe nun bitte dein Alter ein. | Angabe bitte in TT.MM.JJJJ","Weiter","Verlassen");
    return 1;
    }
    if(!IsValidDate(strval(DateInfo[0]),strval(DateInfo[1]),strval(DateInfo[2]))) // und hier ist der 2 Fehler 5698
    {
    ShowPlayerDialog(playerid,DIALOG_ALTER,DIALOG_STYLE_INPUT,"Alter angabe","Gebe nun bitte dein Alter ein. | Angabe bitte in TT.MM.JJJJ","Weiter","Verlassen");
    return 1;
    }
    if(jahr - strval(DateInfo[2]) > 100 || strval(DateInfo[2]) < 1 || strval(DateInfo[2]) >= jahr)
    {
    ShowPlayerDialog(playerid,DIALOG_ALTER,DIALOG_STYLE_INPUT,"Alter angabe","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_ALTER,DIALOG_STYLE_INPUT,""#SERVERFARBE""#SERVERNAME"{FFFFFF}: Registrierung/Alter","Gebe nun bitte dein Alter ein. | Angabe bitte in TT.MM.JJJJ","Weiter","Verlassen");
    return 1;
    }
    sInfo[playerid][alter] = check;
    format(sInfo[playerid][pGeburtstag],11,inputtext);
    format(string,sizeof(string),"Ok du bist also %i Jahre alt.",sInfo[playerid][alter]);
    SendClientMessage(playerid,GELB,"Du hast dein Personalausweis Erfolgreich beantragt!");
    SendClientMessage(playerid,GELB,"Du kannst ihn in 5 Minuten abholen!");
    SetTimerEx("Persoantrag",300000,false,"i",playerid);
    printf("%s hat sein ausweis Beantragt!)",getPlayerName(playerid));
    return 1;
    }
    }

  • Ändere:
    if(!IsValidDate(strval(DateInfo[0]),strval(DateInfo[1]),strval(DateInfo[2])))
    zu:
    new tmp[16];
    format(tmp, sizeof(tmp), "%02d.%02d.%d", strval(DateInfo[0]),strval(DateInfo[1]),strval(DateInfo[2]));
    if(!IsValidDate(tmp))


    Die split Funktion musst du einfach nur ganz untem in Gamemode einfügen.

  • Da so sieht das jetze aus


    if(dialogid==DIALOG_ALTER)
    {
    new second = gettime();
    new jahr,monat,tag,stunde,minute;
    getdate(jahr,monat,tag);
    gettime(stunde,minute,second);
    new DateInfo[3][20],string[200];
    split("inputtext",DateInfo,'.');
    if(response == 0) return Kick(playerid);
    else
    {
    if(strlen(inputtext) > 10)
    {
    ShowPlayerDialog(playerid,DIALOG_ALTER,DIALOG_STYLE_INPUT,"Alter angabe","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]));
    if(!IsValidDate(tmp))
    {
    ShowPlayerDialog(playerid,DIALOG_ALTER,DIALOG_STYLE_INPUT,"Alter angabe","Gebe nun bitte dein Alter ein. | Angabe bitte in TT.MM.JJJJ","Weiter","Verlassen");
    return 1;
    }
    if(jahr - strval(DateInfo[2]) > 100 || strval(DateInfo[2]) < 1 || strval(DateInfo[2]) >= jahr)
    {
    ShowPlayerDialog(playerid,DIALOG_ALTER,DIALOG_STYLE_INPUT,"Alter angabe","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_ALTER,DIALOG_STYLE_INPUT,""#SERVERFARBE""#SERVERNAME"{FFFFFF}: Registrierung/Alter","Gebe nun bitte dein Alter ein. | Angabe bitte in TT.MM.JJJJ","Weiter","Verlassen");
    return 1;
    }
    sInfo[playerid][alter] = check;
    format(sInfo[playerid][pGeburtstag],11,inputtext);
    format(string,sizeof(string),"Ok du bist also %i Jahre alt.",sInfo[playerid][alter]);
    SendClientMessage(playerid,GELB,"Du hast dein Personalausweis Erfolgreich beantragt!");
    SendClientMessage(playerid,GELB,"Du kannst ihn in 5 Minuten abholen!");
    SetTimerEx("Persoantrag",300000,false,"i",playerid);
    printf("%s hat sein ausweis Beantragt!)",getPlayerName(playerid));
    return 1;
    }
    }

  • Jeffry:
    Ja sry ;(


    habe jetze das problem ich gebe 15 ein gehe auf weiter ( bis dahin läuft alles gut ) aber dann gebe ich 05.12.1998 eingebe kommt der dialog immer wieder aber wieso ?
    if(dialogid==DIALOG_ALTER)
    {
    new second = gettime();
    new jahr,monat,tag,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_ALTER,DIALOG_STYLE_INPUT,"Alter angabe","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]));
    if(!IsValidDate(tmp))
    {
    ShowPlayerDialog(playerid,DIALOG_ALTER,DIALOG_STYLE_INPUT,"Alter angabe","Gebe nun bitte dein Alter ein. | Angabe bitte in TT.MM.JJJJ","Weiter","Verlassen");
    return 1;
    }
    if(jahr - strval(DateInfo[2]) > 100 || strval(DateInfo[2]) < 1 || strval(DateInfo[2]) >= jahr)
    {
    ShowPlayerDialog(playerid,DIALOG_ALTER,DIALOG_STYLE_INPUT,"Alter angabe","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_ALTER,DIALOG_STYLE_INPUT,"Alter angabe"" 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;
    }
    }

  • Möglicherweise liegt es an der IsValidDate Funktion, alles andere passt eigentlich.
    Ändere:
    format(tmp, sizeof(tmp), "%02d.%02d.%d", strval(DateInfo[0]),strval(DateInfo[1]),strval(DateInfo[2]));
    zu:
    format(tmp, sizeof(tmp), "%02d.%02d.%d", strval(DateInfo[0]),strval(DateInfo[1]),strval(DateInfo[2]));
    printf("IsValidDate(''%s'') -> %d", tmp, IsValidDate(tmp));


    Was steht dann im Log?
    Falls da 0 steht, dann mach die Zeilen 19-23 (Code oben) weg und teste es dann.

  • Jeffry:
    die 15.00.00 War von normalen Walter wo ich 15 eingeben habe
    [21:11:26] IsValidDate(''15.00.0'') -> 0
    [21:11:31] IsValidDate(''05.12.1998'') -> 0
    [21:11:45] Der Spieler [RGR]xSnake hat den Server Verlassen!)
    [21:11:45] [part] [RGR]xSnake has left the server (0:1)
    Console input: gmx


    nuegestartet und das gelöscht zeile 19-23
    [21:12:22] [junkbuster] Resetting player classes.
    [21:12:34] _______________________________________
    [21:12:34] Das Script wurde Vollständig geladen!
    [21:12:34] Red-Game0v3r-Reallife create by xSnake
    [21:12:34] _______________________________________
    [21:12:34]
    [21:12:34] Number of vehicle models: 88
    [21:12:44] Incoming connection: 127.0.0.1:51698
    [21:12:44] [join] [RGR]xSnake has joined the server (0:127.0.0.1)
    [21:12:44] Der Spieler [RGR]xSnake hat den Server Betreten!)
    [21:13:23] Der Owner [RGR]xSnake ist Aduty gegangen!)
    [21:13:26] [RGR]xSnake hat sich ein Car mit der ID 522 gespawnt!)
    [21:13:52] IsValidDate(''15.00.0'') -> 0
    [21:13:57] IsValidDate(''05.12.1998'') -> 0
    [21:14:01] IsValidDate(''05.12.1998'') -> 0

    Einmal editiert, zuletzt von xSnake ()

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen