Dialogproblem

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
  • Moin, Moin ich habe ein Problem mit Dialgoen:
    #include <a_samp>
    #include "../include/gl_common.inc"
    #pragma tabsize 0


    //Also jetz kommen die Defines
    #define premdihi 1
    #define premdima 2
    #define premdivm 3
    #define premdivs 4
    public OnFilterScriptInit()
    {



    return 1;
    }


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    new cmd[256];


    new idx;

    cmd = strtok(cmdtext, idx);



    if(strcmp("/dia1", cmd, true) == 0)
    {
    ShowPlayerDialog(playerid, premdihi, DIALOG_STYLE_MSGBOX, "BLA", "Tüdelü", "Ja", "Nein");
    return 1;
    }
    return 0;
    }


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid == 1)
    {
    if(response == 0)//rechter Button
    {
    return 1;
    }
    if(response == 1)//linker Button
    {
    ShowPlayerDialog(playerid, premdima, DIALOG_STYLE_LIST, "BLA2", " 123 ", "Weiter", "Zurück");
    return 1;
    }
    }
    return 0;
    }
    Wenn ich jetzt ingame beim ersten Dialog auf "JA" drücke, verschwindet der Dialog, aber der zweite wird nicht angezeigt.
    Was habe ich hier denn schon wieder falsch gemacht? ;(

    #define dcmd(%1,%2,%3) if (!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1

    Der Satz des Dracoblue

  • Ok beim draufschauen, war ich auch ratlos, probiers mal so.. Es kann ja irgendwie sein, dass eine Überschneidung passiert


    #include <a_samp>
    #include "../include/gl_common.inc"
    #pragma tabsize 0


    //Also jetz kommen die Defines
    #define premdihi 245
    #define premdima 2
    #define premdivm 3
    #define premdivs 4


    public OnFilterScriptInit()
    {
    return 1;
    }


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    new cmd[256];
    new idx;
    cmd = strtok(cmdtext, idx);
    if(strcmp("/dia1", cmd, true) == 0)
    {
    ShowPlayerDialog(playerid, premdihi, DIALOG_STYLE_MSGBOX, "BLA", "Tüdelü", "Ja", "Nein");
    return 1;
    }
    return 0;
    }


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid == premdihi)
    {
    if(response == 0)//rechter Button
    {
    return 1;
    }
    if(response == 1)//linker Button
    {
    ShowPlayerDialog(playerid, premdima, DIALOG_STYLE_LIST, "BLA2", " 123 ", "Weiter", "Zurück");
    return 1;
    }
    }
    return 0;
    }

    Mfg Templer


    >>Dein Breadfish-Thema im Unterforum ScriptingBase / Scriptingwünsche wurde nicht richtig beantworter?<<
    >>Es handelt sich um ein Programmier Problem und du nicht einfach weiter kommst wo der Fehler sein könnte?<<
    Dann melde dich bei mir über die PN-Funktion indem du den Link zu deinem Breadfish-Themen Problem schickst.
    Voraussetzung:
    Thema älter als 1 Tag und im Breadfish Forum gespostet!

  • Wieso den rechten? Ich meine, Rechts wäre ja response == false ... Erklärung bitte ^^

    Mfg Templer


    >>Dein Breadfish-Thema im Unterforum ScriptingBase / Scriptingwünsche wurde nicht richtig beantworter?<<
    >>Es handelt sich um ein Programmier Problem und du nicht einfach weiter kommst wo der Fehler sein könnte?<<
    Dann melde dich bei mir über die PN-Funktion indem du den Link zu deinem Breadfish-Themen Problem schickst.
    Voraussetzung:
    Thema älter als 1 Tag und im Breadfish Forum gespostet!

  • Nee, passiert imma noch nix, aber schon mal danke für eure Hilfe.

    #define dcmd(%1,%2,%3) if (!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1

    Der Satz des Dracoblue

  • Kann ja immer mal nen Zufallstreffer sein, will wissen ob sich das überschneidet mit den Buttons, hatte ich letztens auch.


    Argh. Du benutzt es ja als Filterscript.


    In deinem GameMode hast du keine Dialogid mit 1 oder? oO

  • Ah ich glaube die Abfrage spinnt, probiers mal so Gorn:


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid == premdihi)
    {
    if(response)//linker Button
    {
    ShowPlayerDialog(playerid, premdima, DIALOG_STYLE_LIST, "BLA2", " 123 ", "Weiter", "Zurück");
    return 1;
    }
    else //rechter Button
    {
    return 1;
    }
    }
    return 0;
    }


    Edit: 8D lies meinen Beitrag, da hab ich bereits bereits versucht ID auf 245 zu setzen, er sagte aber das es nicht ging ^^

    Mfg Templer


    >>Dein Breadfish-Thema im Unterforum ScriptingBase / Scriptingwünsche wurde nicht richtig beantworter?<<
    >>Es handelt sich um ein Programmier Problem und du nicht einfach weiter kommst wo der Fehler sein könnte?<<
    Dann melde dich bei mir über die PN-Funktion indem du den Link zu deinem Breadfish-Themen Problem schickst.
    Voraussetzung:
    Thema älter als 1 Tag und im Breadfish Forum gespostet!

  • Moment mal ich habe noch ein GUI Login System, ich schau mal da nach
    edit: hmm da sind nur die Ids 3 und 4 belegtich nehm die schon mal aus meinem aktuellen script raus...

    #define dcmd(%1,%2,%3) if (!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1

    Der Satz des Dracoblue

  • Mist... auch mit der anderen Abfrage wird, wenn man auf den Ja bzw. Nein Botton drückt der zweite Dialog nicht angezeigt.

    #define dcmd(%1,%2,%3) if (!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1

    Der Satz des Dracoblue

  • Also die Ids sind jetzt
    #define premdihi 245
    #define premdima 248
    #define premdivm 250
    #define premdivs 252
    Somit gleicht die 3 und 4 Id nicht mehr denen vom Register-system

    #define dcmd(%1,%2,%3) if (!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1

    Der Satz des Dracoblue

  • Bitte ersetzen und den Auszug von ServerLog hierher kopieren, danke! Natürlich kommt erst dann was, wenn du das mim Dialog nochma probierst!


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    printf("OnDialogResponse = id: %d response: %d", dialogid, response);
    if(dialogid == premdihi)
    {
    print("Debug premdihi checked...");
    if(response)//linker Button
    {
    print("Debug premdihi response == 1");
    ShowPlayerDialog(playerid, premdima, DIALOG_STYLE_LIST, "BLA2", " 123 ", "Weiter", "Zurück");
    return 1;
    }
    else //rechter Button
    {
    print("Debug premdihi response == 0");
    return 1;
    }
    }
    return 0;
    }

    Mfg Templer


    >>Dein Breadfish-Thema im Unterforum ScriptingBase / Scriptingwünsche wurde nicht richtig beantworter?<<
    >>Es handelt sich um ein Programmier Problem und du nicht einfach weiter kommst wo der Fehler sein könnte?<<
    Dann melde dich bei mir über die PN-Funktion indem du den Link zu deinem Breadfish-Themen Problem schickst.
    Voraussetzung:
    Thema älter als 1 Tag und im Breadfish Forum gespostet!

  • Oben drüber nur Serverstart und NPC-Logins

    Code
    [12:12:45] Incoming connection: 127.0.0.1:55538
    [12:12:45] [join] xXGornXx has joined the server (14:127.0.0.1)


    Und nichts drunter 8|

    #define dcmd(%1,%2,%3) if (!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1

    Der Satz des Dracoblue

  • Ja hab ich.
    Ganz doof bin ich ja auch nich xD
    //edit: Sooooo ich hab jetzt die ganze Sache in meinen GM kopiert und JETZT funzt das alles auch 8o

    #define dcmd(%1,%2,%3) if (!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1

    Der Satz des Dracoblue

    2 Mal editiert, zuletzt von xXGornXx ()