Ergebnis 1 bis 3 von 3

Thema: Ein paar Fragen zu einem eigenen Menü.

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1

    Ein paar Fragen zu einem eigenen Menü.

    Guten Abend!

    Erst einmal, ich bin neu hier und habe noch nicht so viel Erfahrung mit den Maker und ganz besonders keine mit Ruby....

    Ich möchte ein eigenes Menü aufstellen und würde gerne wissen wie man z.B. Beim Ausrüstungsmenü "Schild" "Helm" und "Rüstung" löschen kann.

    Zudem würde ich gerne wissen ob man über Ruby den Grafischen Stil des Menüs beeinflussen kann. (Ähnlich wie den Picture basierten Menüs beim RPGM2K)

    Wäre Super wenn ich hier ein paar Tipps bekommen würde.

    Vielen dank im Voraus!

    Geändert von Kuttentroll (24.08.2007 um 14:49 Uhr)

  2. #2
    Zitat Zitat
    Zudem würde ich gerne wissen ob man über Ruby den Grafischen Stil des Menüs beeinflussen kann. (Ähnlich wie den Picture basierten Menüs beim RPGM2K)
    Den grafischen Stil, die Funktionalität, den Aufbau, kurz: alles was im Spiel passiert läuft über Ruby ab und ist demnach beeinflussbar. Es ist also nicht mehr so wie im Rm2k, wo man ständig den Maker austricksen muss, im XP bestimmt man selber wie etwas abläuft. Savemenü, Titelbildschirm, das Standardmenü, das Kampfsystem, all diese Dinge lassen sich mit Ruby selbst gestalten.
    Wenn du Interesse hast Ruby zu lernen kannst du dir ja mal mein Tutorial anschauen, es ist speziell auf den Maker zugeschnitten, wenn auch noch nicht ganz fertig: Rubykurs

    Zitat Zitat
    Ich möchte ein eigenes Menü aufstellen und würde gerne wissen wie man z.B. Beim Ausrüstungsmenü "Schild" "Helm" und "Rüstung" löschen kann.
    Code:
    #==============================================================================
    # ** Scene_Equip
    #------------------------------------------------------------------------------
    #  This class performs equipment screen processing.
    #==============================================================================
    class Scene_Equip
      #--------------------------------------------------------------------------
      # * Main Processing
      #--------------------------------------------------------------------------
      def main
        # Get actor
        @actor = $game_party.actors[@actor_index]
        # Make windows
        @help_window = Window_Help.new
        @left_window = Window_EquipLeft.new(@actor)
        @right_window = Window_EquipRight.new(@actor)
        @item_window1 = Window_EquipItem.new(@actor, 0)
        @item_window5 = Window_EquipItem.new(@actor, 4)
        # Associate help window
        @right_window.help_window = @help_window
        @item_window1.help_window = @help_window
        @item_window5.help_window = @help_window
        # Set cursor position
        @right_window.index = @equip_index
        refresh
        # Execute transition
        Graphics.transition
        # Main loop
        loop do
          # Update game screen
          Graphics.update
          # Update input information
          Input.update
          # Frame update
          update
          # Abort loop if screen is changed
          if $scene != self
            break
          end
        end
        # Prepare for transition
        Graphics.freeze
        # Dispose of windows
        @help_window.dispose
        @left_window.dispose
        @right_window.dispose
        @item_window1.dispose
        @item_window5.dispose
      end
      #--------------------------------------------------------------------------
      # * Refresh
      #--------------------------------------------------------------------------
      def refresh
        # Set item window to visible
        @item_window1.visible = (@right_window.index == 0)
        @item_window5.visible = (@right_window.index == 1)
        # Get currently equipped item
        item1 = @right_window.item
        # Set current item window to @item_window
        case @right_window.index
        when 0
          @item_window = @item_window1
        when 1
          @item_window = @item_window5
        end
        # If right window is active
        if @right_window.active
          # Erase parameters for after equipment change
          @left_window.set_new_parameters(nil, nil, nil)
        end
        # If item window is active
        if @item_window.active
          # Get currently selected item
          item2 = @item_window.item
          # Change equipment
          last_hp = @actor.hp
          last_sp = @actor.sp
          @actor.equip(@item_window.equip_type, item2 == nil ? 0 : item2.id)
          # Get parameters for after equipment change
          new_atk = @actor.atk
          new_pdef = @actor.pdef
          new_mdef = @actor.mdef
          # Return equipment
          @actor.equip(@right_window.index, item1 == nil ? 0 : item1.id)
          @actor.hp = last_hp
          @actor.sp = last_sp
          # Draw in left window
          @left_window.set_new_parameters(new_atk, new_pdef, new_mdef)
        end
      end
    end
    #==============================================================================
    # ** Window_EquipItem
    #------------------------------------------------------------------------------
    #  This window displays choices when opting to change equipment on the
    #  equipment screen.
    #==============================================================================
    class Window_EquipItem < Window_Selectable
      attr_reader(:equip_type)
    end
    #==============================================================================
    # ** Window_EquipRight
    #------------------------------------------------------------------------------
    #  This window displays items the actor is currently equipped with on the
    #  equipment screen.
    #==============================================================================
    class Window_EquipRight < Window_Selectable
      #--------------------------------------------------------------------------
      # * Refresh
      #--------------------------------------------------------------------------
      def refresh
        self.contents.clear
        @data = []
        @data.push($data_weapons[@actor.weapon_id])
        @data.push($data_armors[@actor.armor4_id])
        @item_max = @data.size
        self.contents.font.color = system_color
        self.contents.draw_text(4, 32 * 0, 92, 32, $data_system.words.weapon)
        self.contents.draw_text(4, 32 * 1, 92, 32, $data_system.words.armor4)
        draw_item_name(@data[0], 92, 32 * 0)
        draw_item_name(@data[1], 92, 32 * 1)
      end
    end
    In den Scripteditor gehen, auf das Script Main mit rechter Maustaste klicken, Insert auswählen und dann ein neues, leeres Script erzeugen. Dort fügst du den obigen Code dann ein.

  3. #3
    Puh.. war übers Wochenende weg deswegen kann ich jetzt erst antworten.

    Das Ruby Tutorial werde ich mir mal zu gemüte führen. Anosonsten noch besten Dank! Werde langsam etwas besser in Skripten. In diesen Sinne: Problem gelöst thx!

Berechtigungen

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