Tutorial überspringt abfrage

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, ich habe ein kleines problem.


    in meinem Selfmade hab ich ein Tutorialsystem überschrieben, das so aussieht:



    public OnPlayerSpawn(playerid)
    {
    if(SpielerInfo[playerid][Neu] == 0)
    {
    tutorialsetup[playerid] = 1;
    SetToTutorial(playerid);
    }//tutorial


    mein SetToTutorial:



    public SetToTutorial(playerid)
    {
    if(tutorialsetup[playerid] == 1)
    {
    ShowPlayerDialog(playerid,DIALOG_TUTORIAL,DIALOG_STYLE_MSGBOX,TUTORIALTITEL,TUTORIALSTRING1,"OK","");
    tutorialsetup[playerid] = 0;
    }

    if(tutorialsetup[playerid] == 0)
    {
    if(SpielerInfo[playerid][Alter] == 0)
    {
    TogglePlayerControllable(playerid,0);
    ShowPlayerDialog(playerid,DIALOG_ALTER,DIALOG_STYLE_INPUT,"Tutorial:{00ff00}Alter","{ffffff}Bitte Tipp dein Alter ein. {00ff00}(Beispiel: 16)","Ok","");
    }
    else if(SpielerInfo[playerid][Alter] != 0)
    {
    TogglePlayerControllable(playerid,0);
    ShowPlayerDialog(playerid,DIALOG_GESCHLECHT,DIALOG_STYLE_LIST,"Tutorial:{00ff00}Geschlecht","{00ff00}Du bist:\n{ffffff}Männlich\n{ffffff}Weiblich","OK","");
    }
    if(SpielerInfo[playerid][Geschlecht] != 0)
    {
    ShowPlayerDialog(playerid,DIALOG_TUTORIAL2,DIALOG_STYLE_MSGBOX,"{00ff00}[Colex]Tutorial","{ffffff}Vielen Dank für die Informationen. Sie wurden soeben in der Datenbank aufgenommen.\n{ffffff}Du kannst dir nun das Tutorial anschauen, wenn du möchtest.","Anschauen","Ablehnen");
    TogglePlayerControllable(playerid,0);
    }
    }
    }


    doch beim Spawnen springt er gleich zu dem Alter.


    was ist falsch?


    hier noch meine Dialogabfragen:



    case DIALOG_ALTER:
    {
    new alter = strval(inputtext);
    if(alter < 10) return ShowPlayerDialog(playerid,DIALOG_ALTER,DIALOG_STYLE_INPUT,"{ffffff}Fehler","{ffffff}Bitte Tippe dein richtiges Alter ein. (Nicht unter 10)","OK","");
    SpielerInfo[playerid][Alter] = alter;
    Speichern(playerid);
    SetToTutorial(playerid);
    }
    case DIALOG_GESCHLECHT:
    {
    switch(listitem)
    {
    case 0:
    {
    ShowPlayerDialog(playerid,DIALOG_GESCHLECHT,DIALOG_STYLE_LIST,"Tutorial:{00ff00}Geschlecht","{00ff00}Du bist:\n{ffffff}Männlich\n{ffffff}Weiblich","OK","");
    }
    case 1:
    {
    SpielerInfo[playerid][Geschlecht] = 1;//männlich
    SetToTutorial(playerid);
    Speichern(playerid);
    }
    case 2:
    {
    SpielerInfo[playerid][Geschlecht] = 2;//weiblich
    SetToTutorial(playerid);
    Speichern(playerid);
    }
    }
    }
    case DIALOG_TUTORIAL:
    {
    if(response)
    {
    SetToTutorial(playerid);
    }
    if(!response)
    {
    SetToTutorial(playerid);
    }
    }
    case DIALOG_TUTORIAL2:
    {
    if(response)
    {
    imtutorial[playerid] = 1;
    tutorialtimer = SetTimerEx("tutorial",5000,1,"if",playerid);
    tutorialzeit[playerid] = 1;
    MSG(playerid,COLOR_GREEN,"Du wirst zum Tutorial weitergeleitet.");
    }
    if(!response)
    {
    ShowPlayerDialog(playerid,DIALOG_ADMINHOLEN,DIALOG_STYLE_MSGBOX,"{00ff00}[Colex]Hilfe","{ffffff}Du hast entschieden, dir das Tutorial nicht anzuschauen.\n{ffffff}Möchtest du lieber ein Admin holen?","Ja","Nein");
    }
    }
    case DIALOG_ADMINHOLEN:
    {
    if(response)
    {
    new string[256];
    format(string,sizeof(string),"ToAdmins: %s ruft nach einem Admin, weil er das Tutorial absolviert hat.",PlayerName(playerid));
    SendToAdmins(COLOR_LIGHTRED,string);
    MSG(playerid,COLOR_LIGHTBLUE,"Ein Admin wird sich um dich kümmern.");
    }
    if(!response)
    {
    MSG(playerid,COLOR_GREEN,"Dann wünscht das Adminteam dir viel spaß auf Colex-RL!");
    }
    }


    mfg

    526C4Hj.png Mit freundlichen Grüßen,
    Noneatme

  • Schau mal dort wo sich der Spieler registriert ob das Alter nicht schon festgelegt wird. Es kann zum Beispiel sein, dass das Alter bei der Registration auf -1 gesetzt wird.


    // Edit: Sorry, kann glaube ich doch nicht daran liegen
    // Edit mach mal nach der Ersten Abfrage noch ein return 1; hin - dann müsste alles ordnungsgemäß klappen



    if(tutorialsetup[playerid] == 1)
    {
    ShowPlayerDialog(playerid,DIALOG_TUTORIAL,DIALOG_STYLE_MSGBOX,TUTORIALTITEL,TUTORIALSTRING1,"OK","");
    tutorialsetup[playerid] = 0;
    return 1;
    }