ShowPlayerDialog - Frage

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,


    wenn ich z.b. einen Dialog erstelle
    * ShowPlayerDialog(playerid ,DIALOG_FISHHELP, DIALOG_STYLE_MSGBOX,{F80000},"Test - Dialog", Blabla bla bla.."," Weiter,"Schliessen"); *
    Wie mache ich dann ein neues fenster? wenn man z.b. auf "weiter " klickt?


    Danke im voraus

  • ja, ok..
    Für DialogStyleList...
    if(dialogid == DIALOG_DeinDialog)
    {
    if(response)
    {
    if(listitem == 0)
    {
    SendClientMessage(playerid,farbe,"Nun kommt noch ein Dialog");
    ShowPlayerDialog(playerid,..................//weiter kannst dus machen!");
    }
    }
    else
    {
    SendClientMessage(playerid,farbe,"Jetzt kommt kein Dialog, da abgebrochen!");
    }
    }

  • if(dialogid == DIALOG_HELP)
    {
    if(response)
    {
    if(listitem == 0)
    {
    ShowPlayerDialog(playerid, DIALOG_ALHELP, DIALOG_STYLE_MSGBOX,"{F80000} Allgemeine - Hilfe","- Account Hilfe -\n/stats -> Um die Statisktiken zu öffnen.\n/buylevel -> Um sich ein level zu Kaufen.\n/upgrade -> Um dein Spieler zu upgraden.\n- Chat Hilfe-\n/s -> Um zu schreien\n/support -> Um fragen zu stellen/ spieler zu melden.\n/ad -> Um Werbung zu schreiben.\n/me -> Um in seiner Person zu schreiben","Weiter","Schliessen");
    ShowPlayerDialog(playerid, DIALOG_ALHELP, DIALOG_STYLE_MSGBOX,"{F80000} Allgemeine - Hilfe","- Account Befehle -\n/buy -> Um etwas im Laden zu Kaufen.\n/show -> Um deine Lizenzen zu zeigen.\n/drink -> Um etwas zu Trinken.\n/music -> Um Musik zu hören.\n/licenses -> Um deine Lizenzen zu sehen.\n/usedrugs -> Um Drogen zu nehmen.\n/antrag -> Um zu Heiraten\n/divorce -> Um die Scheidung einzureichen.","Weiter","Schliessen");
    ShowPlayerDialog(playerid, DIALOG_ALHELP, DIALOG_STYLE_MSGBOX,"{F80000} Allgemeine - Hilfe","- Account Befehle -\n/accept -> Um etwas anzunehmen.\n/cancel -> Um etwas abzulehnen.\n/service -> Um die Polizei etc zu rufen.\n/fight -> Um einen Fightstyle zu wählen.","Schliessen","Schliessen");
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Hilfe - Geschlossen!");
    }
    }
    if(listitem == 1)
    {
    ShowJobCommands(playerid);
    }
    if(listitem == 2)
    {
    ShowPlayerFractionCommands(playerid);
    }

  • Du kannst nicht mehrmals einen ShowPlayerDialog anzeigen.
    Das Script wird von oben bis unten gelesen.
    Er fängt mit dem 1sten Dialog an, bis er ihn anzeigt, ist das Script 3 Zeilen weiter und zeigt Dir desshalb nur den letzten Dialog an. (hoffe du hast es so verstanden :D ).


    Du könntest es so machen:




    if(dialogid == DIALOG_HELP) //nur ein Beispiel !!! Nicht Copy & Paste machen, sonst gibts Errors wegen fehlenden Klammern
    {
    if(response)
    {
    if(listitem == 0)
    {
    ShowPlayerDialog(playerid, DIALOG_ALHELP, DIALOG_STYLE_MSGBOX,"{F80000} Allgemeine - Hilfe","- Account Hilfe -\n/stats -> Um die Statisktiken zu öffnen.\n/buylevel -> Um sich ein level zu Kaufen.\n/upgrade -> Um dein Spieler zu upgraden.\n- Chat Hilfe-\n/s -> Um zu schreien\n/support -> Um fragen zu stellen/ spieler zu melden.\n/ad -> Um Werbung zu schreiben.\n/me -> Um in seiner Person zu schreiben","Seite 2","Schliessen");


    So hast du als Button nicht "Weiter", sondern "Seite 2".
    Drückt er nun auf "Seite 2", lässt du dem Spieler mit ShowPlayerDialog die nächsten Befehle zeigen.


    Wenn du Hilfe brauchst, melde Dich ;)

  • ShowPlayerDialog(playerid ,DIALOG_FISHHELP, DIALOG_STYLE_MSGBOX,{F80000},"Test - Dialog", Blabla bla bla.."," Weiter,"Schliessen");


    ShowPlayerDialog(playerid,DIALOG_FISHHELP,DIALOG_STYLE_MSGBOX,"{FF8000}Test - Dialog","Bla bla bla...","Weiter","Schließen");


    //Unter OnDialogResponse
    if(dialogid==DIALOG_FISHHELP){
    if(!response)//Wenn der Spieler "Schließen" klickt
    if(response)//Wenn der Spieler "Weiter klickt"
    return ShowPlayerDialog(playerid,DIALOG_FISHHELP2,DIALOG_STYLE_MSGBOX,"{FF8000}Test - Dialog2","Bla bla bla...","Weiter","Schließen");
    }


    // if(!response) braucht man bei solchen Dialogen eigentlich nicht verwenden, wenn er auf "Schließen" klickt dann soll ja nichts passieren außer das sich der Dialog schließt.
    // Wenn man dann z.B. aber gekickt werden soll, müsste das so aussehen:
    if(!response)return Kick(playerid);