Ergebnis 1 bis 4 von 4

Thema: VX ACE, Menüpunkt/e hinzufügen /entfernen

  1. #1

    VX ACE, Menüpunkt/e hinzufügen /entfernen

    Guten Abend,

    Ich habe seit einiger Zeit eine Idee für ein oder mehrere Menüpunkte, da ich aber keine große Erfahrung mit Scripten habe wollte ich nun hier fragen. Ich möchte gerne ein oder zwei Menüpunkte hinzufügen, welche dann ein Bild öffnen, wenn man dann ESC drückt kommt man zurück zum Menü... Wäre dies irgendwie möglich? Gibt es dafür schon Scripts? Habe bis jetzt leider nichts gefunden. Außerdem würde ich gerne den Menüpunkt "Status" entfernen. Geht das auch irgendwie?

  2. #2
    Das sollte mit nahezu jeder custom Menü-Engine ziemlich einfach gehen, z.B. der von Yanfly (bei der müsste auch ne Beschreibung am Skriptanfang stehen wie man das Skript entsprechend verändert).

  3. #3
    Achtung: Hangover Coding + Keine Ahnung von Ruby/RGSS + Keine Ahnung vom Maker

    • Menüpunkt "Status" entfernen
      1. Script Editor öffnen
      2. WindowWindow_MenuCommand öffnen
      3. In der Definition der Methode add_main_commands (~Zeile 43) die Zeile add_command(Vocab::status, :status, main_commands_enabled) mit einem # auskommentieren oder löschen:
        Code (Ruby):
        #--------------------------------------------------------------------------
          # * Add Main Commands to List
          #--------------------------------------------------------------------------
          def add_main_commands
            add_command(Vocab::item,          :item,   main_commands_enabled)
            add_command(Vocab::skill,         :skill,  main_commands_enabled)
            add_command(Vocab::equip,         :equip,  main_commands_enabled)
            add_command("Eigener Menüpunkt",  :custom,   main_commands_enabled)
          # add_command(Vocab::status, :status, main_commands_enabled)
          end
      4. SceneScene_Menu öffnen
      5. In der Definition der Methode create_command_window (~Zeile 17) die Zeile @command_window.set_handler(:status, method(:command_personal)) mit einem # auskommentieren oder löschen:
        Code:
        #--------------------------------------------------------------------------
          # * Create Command Window
          #--------------------------------------------------------------------------
          def create_command_window
            @command_window = Window_MenuCommand.new
            @command_window.set_handler(:item,      method(:command_item))
            @command_window.set_handler(:skill,     method(:command_personal))
            @command_window.set_handler(:equip,     method(:command_personal))
         #  @command_window.set_handler(:status,    method(:command_personal))
            @command_window.set_handler(:custom,    method(:command_custom))
            @command_window.set_handler(:formation, method(:command_formation))
            @command_window.set_handler(:save,      method(:command_save))
            @command_window.set_handler(:game_end,  method(:command_game_end))
            @command_window.set_handler(:cancel,    method(:return_scene))
          end
      6. Script Editor beenden, F12 drücken, über Status-loses Menü freuen

    • Neuen Menüpunkt "Eigener Menüpunkt" hinzufügen, der ein Bild anzeigt
      1. Script Editor öffnen
      2. WindowWindow_MenuCommand öffnen
      3. In der Definition der Methode add_main_commands (~Zeile 43) die Zeile add_command("Eigener Menüpunkt", :custom, main_commands_enabled) mit einem # hinzufügen:
        Code (Ruby):
          #--------------------------------------------------------------------------
          # * Add Main Commands to List
          #--------------------------------------------------------------------------
          def add_main_commands
            add_command(Vocab::item,          :item,   main_commands_enabled)
            add_command(Vocab::skill,         :skill,  main_commands_enabled)
            add_command(Vocab::equip,         :equip,  main_commands_enabled)
            add_command("Eigener Menüpunkt",  :custom,   main_commands_enabled) # <- Hier!
          # add_command(Vocab::status, :status, main_commands_enabled)
          end
      4. SceneScene_Menu öffnen
      5. In der Definition der Methode create_command_window (~Zeile 17) die Zeile @command_window.set_handler(:custom, method(:command_custom)) hinzufügen:
        Code:
        #--------------------------------------------------------------------------
          # * Create Command Window
          #--------------------------------------------------------------------------
          def create_command_window
            @command_window = Window_MenuCommand.new
            @command_window.set_handler(:item,      method(:command_item))
            @command_window.set_handler(:skill,     method(:command_personal))
            @command_window.set_handler(:equip,     method(:command_personal))
         #  @command_window.set_handler(:status,    method(:command_personal))
            @command_window.set_handler(:custom,    method(:command_custom)) # <- Hier!
            @command_window.set_handler(:formation, method(:command_formation))
            @command_window.set_handler(:save,      method(:command_save))
            @command_window.set_handler(:game_end,  method(:command_game_end))
            @command_window.set_handler(:cancel,    method(:return_scene))
          end
      6. Irgendwo weiter unten command_custom definieren:
        Code (Ruby):
          #--------------------------------------------------------------------------
          # * [Eigener Menüpunkt] Command
          #--------------------------------------------------------------------------
          def command_custom
            SceneManager.call(Scene_Custom)
          end
      7. Die gerade aufgerufene Scene Scene_Custom im Script Editor anlegen (habe ich jetzt mal in Materials reingeboxt):
        Code (Ruby):
        #==============================================================================
        # ** Scene_Custom
        #------------------------------------------------------------------------------
        #  Ayy lmao
        #==============================================================================
         
        class Scene_Custom < Scene_MenuBase
          #--------------------------------------------------------------------------
          # * Start Processing
          #--------------------------------------------------------------------------
          def start
            super
            create_custom_window
          end
         
          def create_custom_window
            @test_window = Window_Custom.new
            @test_window.set_handler(:cancel,   method(:return_scene))
          end
        end
    • Das gerade aufgerufene Window Window_Custom im Script Editor anlegen (habe ich jetzt mal direkt unter Scene_Custom platziert):
      Code (Ruby):
      #==============================================================================
      # ** Window_Status
      #------------------------------------------------------------------------------
      #  Bestimmt fällt dir eine sinnvollere Beschreibung ein, ich bin gerade aufgewacht
      #==============================================================================
       
      class Window_Custom < Window_Selectable
        #--------------------------------------------------------------------------
        # * Object Initialization
        #--------------------------------------------------------------------------
        def initialize
          super(0, 0, Graphics.width, Graphics.height)
          refresh
          activate
        end
        #--------------------------------------------------------------------------
        # * Refresh
        #--------------------------------------------------------------------------
        def refresh
          contents.clear
          draw_picture
        end
        #--------------------------------------------------------------------------
        # * Draw Picture
        #--------------------------------------------------------------------------
        def draw_picture
          bitmap = Cache.picture("<b><font color="#FF0000">1413223675541.jpg</font></b>")
       
          src_rect = Rect.new(0, 0, bitmap.width, bitmap.height)
          ret_rect = Rect.new(0, 0, Graphics.width, Graphics.height)
       
          contents.stretch_blt(ret_rect, bitmap, src_rect)
        end
      end
       


    Wäre cool wenn jemand, der mehr als fünf Minuten Ruby Erfahrung hat, das etwas eleganter lösen könnte (Bild nicht in das Window hardcoden etc.)

    Falls irgendwas unklar ist, hier das Testprojekt: http://puu.sh/cistn/d82b5f471f.zip

  4. #4
    Sehr vielen Dank! :-)

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •