Auf Knopfdruck ins Item-Menu

  • Hallo zusammen,


    Ich hoffe, mir kann jemand weiterhelfen, der sich mehr mit Java Script auskennt. (Ich mach zwar schon fleissig bei der Codecademy meine Aufgaben, aber so ins Detail komme ich damit noch nicht.)


    Ich suche nach einem Script Call, der direkt einen bestimmten Teil des Menus aufruft, so dass der Spieler z.B. durch's "OK" druecken direkt auf die Itemliste zugreifen kann (oder die Waffen/Ruestung/etc) und nicht erst durchs Hauptmenu muss.


    Kann mir jemand den richtigen Script Call nennen?


    Danke im Vorraus!

    Lui

  • Code
    SceneManager.push(Scene_Item);

    Ich weiß jetzt nicht genau, welchen Maker du nutzst, aber es gibt für jeden eine Seite, die alle Script-Calls auflistet.

    Hier z.B. für den MV:

    RPG MAKER MV / MZ Script Calls
    Script Calls Script Calls,Last updated 2023-07-22 (14:35 UTC) MV,MZ,Effect,Script call(s),Example(s),Inputs/Outputs,Notes Event Commands,Recent update log: <a…
    docs.google.com

  • Also wie meine Vorredner bereits geschrieben wäre es möglich per:

    SceneManager.push(SCENE-NAMEN)
    Dieser Aufruf fügt die neue Scene mit auf den Stapel, eine weitere Möglichkeit wäre noch:
    SceneManager.goto(SCENE-NAMEN)

    Bei dieser Variante wird direkt auf eine Scene gesprungen, jedoch ist es ungeeignet, wenn die Möglichkeit bestehen soll zurück zu springen. (Kann bei manchen Scenen zu Bugs führen)


    Die Namen der Szenen ist darüber hinaus sehr selbererklärend: Scene_Items, Scene_Skills, Scene_Equip nur um einige zu nennen. Die diese Aufrufe aussehen kannst du im Code bei Scene_Menu finden. (Bitte nicht verwechseln mit Scene_MenuBase - ist mir mal passiert xD)


    PS: Ich beziehe mich auf den i_RMMV

  • Danke euch beiden! Ja, es war der MV, ich wusste doch, ich hab' was vergessen...


    Boros Die Seite hatte ich tatsaechlich auch gefunden aber hab diesen Script Call einfach nicht entdeckt. Werde mir sie aber auf jeden Fall fuer die Zukunft speichern.


    Cosmo Das hat perfekt geklappt, vielen Dank!! :thumbup:


    Firemaster640 Danke auch dir fuer die Hilfe! Ich weiss nicht, ob es daran liegt, dass ich den RPG Maker zumeist auf Englisch gelernt und verwendet habe, aber was meinst du denn mit "auf den Stapel fuegen" vs "Auf die Scene springen"? Ich bin mir nicht sicher, was der Unterschied ist...

  • Nachdem es schwer zu erklären ist, überlasse ich es mal den Experten:
    https://www.mediaevent.de/javascript/array-push-pop.html

    Die goto-Anweisung in JavaScript
    Dieses Tutorial zeigt, wie Sie die goto-Anweisung in JavaScript verwenden.
    www.delftstack.com


    Vereinfacht kann man also sagen: Alle Scenen kannst du dir wie ein Stapel von Büchern vorstellen und mit push legst du das welches du möchtest oben drauf und beenden bzw. pop um es zurückzulegen. Mit Goto legst du das Buch neben hin und kannst es somit unterbrechen zu lesen und weiterlesen, manche Scenen im Maker mögen jedoch diese Art von Aufruf nicht. Ich nenn es mal so:Platzhirsche xD

  • Nachdem es schwer zu erklären ist, überlasse ich es mal den Experten:
    https://www.mediaevent.de/javascript/array-push-pop.html

    https://www.delftstack.com/de/…cript/goto-in-javascript/


    Vereinfacht kann man also sagen: Alle Scenen kannst du dir wie ein Stapel von Büchern vorstellen und mit push legst du das welches du möchtest oben drauf und beenden bzw. pop um es zurückzulegen. Mit Goto legst du das Buch neben hin und kannst es somit unterbrechen zu lesen und weiterlesen, manche Scenen im Maker mögen jedoch diese Art von Aufruf nicht. Ich nenn es mal so:Platzhirsche xD

    Vielen Dank!!! Da hab ich dieses Wochenende was zum Gucken, wenn ich mit der neuen Folge von What We Do In The Shadows fertig bin 8o ^^


  • stopbeingbored


    Also ich selbst entwickle nicht mit dem RPG Maker, aber ich kann mir denken was hier gemeint ist.

    Wenn du das Programmieren auf Englisch lernst, sagt dir vielleicht der Begriff "Stack" etwas. Ein Stack ist ein gängiges Konzept.

    Hier werden Objekte (hier die Szenen) aufeinander gelegt, praktisch "oben drauf".


    Mit "Push" wird etwas AUF dem Stack gelegt und mit "Pop" wird das Oberste entfernt.



    In dem Kontext mit dem Menü ist es so, dass du mit SceneManager.push(NAME) das Item Menü auf den Stapel legst.

    Es wird wohl sowas geben wie SceneManager.pop(), dass diese Szene wieder entfernt. Und das oberste ist dann wohl die Szene, die gerade der Maker abspielt.



    Beispiel Stack:


    Ingame (Aktuelle Szene ist das Spiel)



    push("Menu")



    Ingame -> Menu ( Aktuelle Szene ist das Menü)


    pop()



    ingame (Aktuelle Szene ist das Spiel)



    Mit Menüs in Spielen ist es ja oft so, dass du mit ESC aus dem Menü rausgehst, also in dem Sinne "pop()" aufrufen kannst. Daher ist es hier sehr praktisch.


    Ich nehme an, dass das goto(Name) es nicht auf den Stack legt, sondern das oberste auf den Stack direkt durch die andere Szene dann ersetzt.

  • Also mit der push bzw pop Thematik hast du es genauso wiedergegeben wie mein Kenntnisstand ist :)
    Bezüglich dem goto: Das es die Szene ersetzt ist durchaus möglich, ich weiß es im Detail aber nicht - Mir ist hierbei nur stets aufgefallen, dass manche Scenen sich damit nicht Vertragen. Darüber hinaus ist noch das Problem, dass wenn manche Scenen per goto aufruft und dann wegpoppen will, dass das Spiel an sich beendet. Daher empfinde ich dies als undurchsichtig - habe mich aber dazu nie im Detail befasst. :)

  • Bezüglich dem goto: Das es die Szene ersetzt ist durchaus möglich,

    Es ist nicht nur möglich, es ist fast exakt so, wie Canti es geschrieben hat. Anders gesagt: Wenn man zu der vorherigen Scene zurück gehen möchte, dann immer push verwenden. Das ist bei allen Menüs im Maker so, da der normale Cancel-Befehl in jedem Menü standardmäßig pop aufruft. goto darf nur verwendet werden, wenn einem der Stapel egal ist, da es dann keinen Stapel mehr gibt bzw. du einen neuen Stapel anfängst, ohne auf den alten zurückgreifen zu können.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!