Geburtsdatum auslesen

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 liebes Forum,


    ich scripte gerade am meinem Selfmade und hab ein Problem


    Wie überprufe ich im DIALOG_STYLE_INPUT ob die eingabe(eigentlich xx.xx.xxxx) richtig eingegeben ist.
    Mein Dialog sieht momentan so aus:

    [/b]
    case DIALOG_AGE:
    {
    if(!response) return 1;
    new t,m,j;
    if(strlen(inputtext)>10) return 1;
    mysql_escape_string(inputtext,inputtext,Handle,12);
    sscanf(inputtext,"p<.>iii",t,m,j);
    if(t >31 || t < 1) return 1;
    if(m > 12 || m < 1) return 1;
    if(j <1965 || j > 2004) return 1;
    pInfo[playerid][pAge]=GetAlter(t,m,j);
    return 1;

    }
    [b][/b]


    Vielen dank für euere Hilfe im vorraus :)

  • beachte das du den Dialog hier am besten nochmal aufrufst



    Code
    if(t >31 || t < 1) return 1;
                if(m > 12 || m < 1) return 1;
                if(j <1965 || j > 2004) return 1;



    anstatt 1 zurück zu geben sonst kann der User schlecht seine Eingabe korrigieren :D

  • beachte das du den Dialog hier am besten nochmal aufrufst



    Code
    if(t >31 || t < 1) return 1;
                if(m > 12 || m < 1) return 1;
                if(j <1965 || j > 2004) return 1;


    anstatt 1 zurück zu geben sonst kann der User schlecht seine Eingabe korrigieren :D

    Wie meinst du das?

  • Ich hab es jetzt so:



    case DIALOG_AGE:
    {
    if(response)
    {
    new t,m,j;
    if(strlen(inputtext)>10) return 1;
    mysql_escape_string(inputtext,inputtext,Handle,12);
    sscanf(inputtext,"p<.>iii",t,m,j);
    if(t >31 || t < 1) return 1;
    if(m > 12 || m < 1) return 1;
    if(j <1965 || j > 2004) return 1;
    pInfo[playerid][pAge] = GetAlter(t,m,j);
    ClearChat(playerid, 20);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "-----------------------------------------------------------------------------------------------------");
    SendClientMessage(playerid, COLOR_WEIS, "["HTML_ROT"Server"HTML_WEIS"] Bitte wähle eine Spawnposition aus für das weitere spielen aus.");
    ShowPlayerDialog(playerid, DIALOG_SPAWNCHANGENEULING, DIALOG_STYLE_LIST, ""SERVERHTML""SERVERTAG" - Spawn", "- Neulingsspawn \n- Letzte Position", "Weiter", "Abbrechen");
    }
    else
    {
    ClearChat(playerid, 20);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "-----------------------------------------------------------------------------------------------------");
    SendClientMessage(playerid, COLOR_WEIS, "["HTML_ROT"Server"HTML_WEIS"] Bitte gebe dein Geburtsdatum ein.");
    ShowPlayerDialog(playerid, DIALOG_AGE, DIALOG_STYLE_INPUT, ""SERVERHTML""SERVERTAG" - Geburtsdatum","Bitte gebe dein Geburtsdatum ein um dein Alter festzustellen.CreateActor \nBitte nutze dieses Format: "HTML_ROT"xx.xx.xxxx", "Weiter", "Abbrechen");
    }
    return 1;
    }


    leider Funktioniert es nicht. Ich komm gerade nicht drauf woran es liegt

  • @TheOneBehindYou1



    forward InsertUser(playerid);
    public InsertUser(playerid)
    {
    switch(orm_errno(pInfo[playerid][orm]))
    {
    case ERROR_OK:
    {
    pInfo[playerid][pLogin]=1;
    ClearChat(playerid, 4);
    SendClientMessage(playerid, COLOR_WEIS, "["HTML_ROT"Server"HTML_WEIS"]"HTML_GRUN" Dein Account wurde erfolgreich erstellt.");
    //Neulingsspawnchange
    ClearChat(playerid, 3);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "-----------------------------------------------------------------------------------------------------");
    SendClientMessage(playerid, COLOR_WEIS, "["HTML_ROT"Server"HTML_WEIS"] Bitte gebe dein Geburtsdatum ein.");
    ShowPlayerDialog(playerid, DIALOG_AGE, DIALOG_STYLE_INPUT, ""SERVERHTML""SERVERTAG" - Geburtsdatum","Bitte gebe dein Geburtsdatum ein um dein Alter festzustellen.CreateActor \nBitte nutze dieses Format: "HTML_ROT"xx.xx.xxxx", "Weiter", "Abbrechen");
    }
    case ERROR_NO_DATA:
    {
    //Kein Account erstellt
    }
    }
    return 1;
    }

  • Versuchs mal so:



    [list=1][*]case DIALOG_AGE:
    [*] {
    [*] if(response)
    [*] {
    [*] new t,m,j;
    [*] if(strlen(inputtext)>10) return 1;
    [*] mysql_escape_string(inputtext,inputtext,Handle,12);
    [*] sscanf(inputtext,"p<.>iii",t,m,j);
    [*] if(t >31 || t < 1) return ShowPlayerDialog(playerid, DIALOG_AGE, DIALOG_STYLE_INPUT, ""SERVERHTML""SERVERTAG" - Geburtsdatum","Bitte gebe dein Geburtsdatum ein um dein Alter festzustellen.CreateActor \nBitte nutze dieses Format: "HTML_ROT"xx.xx.xxxx", "Weiter", "Abbrechen");
    [*] if(m > 12 || m < 1) return ShowPlayerDialog(playerid, DIALOG_AGE, DIALOG_STYLE_INPUT, ""SERVERHTML""SERVERTAG" - Geburtsdatum","Bitte gebe dein Geburtsdatum ein um dein Alter festzustellen.CreateActor \nBitte nutze dieses Format: "HTML_ROT"xx.xx.xxxx", "Weiter", "Abbrechen");
    [*] if(j <1965 || j > 2004) return ShowPlayerDialog(playerid, DIALOG_AGE, DIALOG_STYLE_INPUT, ""SERVERHTML""SERVERTAG" - Geburtsdatum","Bitte gebe dein Geburtsdatum ein um dein Alter festzustellen.CreateActor \nBitte nutze dieses Format: "HTML_ROT"xx.xx.xxxx", "Weiter", "Abbrechen");
    [*] pInfo[playerid][pAge] = GetAlter(t,m,j);
    [*] ClearChat(playerid, 20);
    [*] SendClientMessage(playerid, COLOR_LIGHTBLUE, "-----------------------------------------------------------------------------------------------------");
    [*] SendClientMessage(playerid, COLOR_WEIS, "["HTML_ROT"Server"HTML_WEIS"] Bitte wähle eine Spawnposition aus für das weitere spielen aus.");
    [*] ShowPlayerDialog(playerid, DIALOG_SPAWNCHANGENEULING, DIALOG_STYLE_LIST, ""SERVERHTML""SERVERTAG" - Spawn", "- Neulingsspawn \n- Letzte Position", "Weiter", "Abbrechen");
    [*] }
    [*] else
    [*] {
    [*] ClearChat(playerid, 20);
    [*] SendClientMessage(playerid, COLOR_LIGHTBLUE, "-----------------------------------------------------------------------------------------------------");
    [*] SendClientMessage(playerid, COLOR_WEIS, "["HTML_ROT"Server"HTML_WEIS"] Bitte gebe dein Geburtsdatum ein.");
    [*] ShowPlayerDialog(playerid, DIALOG_AGE, DIALOG_STYLE_INPUT, ""SERVERHTML""SERVERTAG" - Geburtsdatum","Bitte gebe dein Geburtsdatum ein um dein Alter festzustellen.CreateActor \nBitte nutze dieses Format: "HTML_ROT"xx.xx.xxxx", "Weiter", "Abbrechen");
    [*] }
    [*] return 1;
    [*] }
    [/list]

  • ORM steht für object related mapping, du musst als erstes die jeweilige Spalten, welche du auslesen möchtest registrieren in der ORM Instanz um anschließend mit dem setzten zweier keys erst Name, dann die ID um auf die entsprechenden Datensatz zuzugreifen,


    Siehe dazu am besten


    http://forum.sa-mp.com/showthread.php?t=461766


    Beim vergleich würde das ganze so aussehen:

    Code
    if(!strcmp(PlayerInfo[playerid][pPassword], inputtext)) {
    
    
     // PAsswort ist richtig
    } else {
    
    
     // Passwort ist falsch
    }

    //edit


    Das ganze jedoch alternative eine query zu senden via mysql_tquery wäre definitiv einfacherer

  • Beitrag von Marschl ()

    Dieser Beitrag wurde vom Autor gelöscht ().