Jump to content

Photo

Help me finish a menu edit?

- - - - -

2 replies to this topic

#1
MarblePoundCakes

MarblePoundCakes

    Newbie

  • Member
  • 2 posts
  • Prefered Engine: RPG Maker XP
  • Engine Level: N/A
  • Class Title: Eventer

I've been working on a customized "Dragon Warrior" style menu screen and have gotten pretty far with tinkering (pic 1). I am however looking for help with the second and third picture- that is to say I'm not sure how to remove the black background of the skills menu, and I haven't figured out which line of the Window_Skill script can make the skills stop listing from left to right in two columns.

Instead what I've got is every other skill visible because something in the Window_Skill part is forcing the horizontal segregation.

So ideally, the skill window would have the same visual effect (map visible) as the main menu, and the skills would be one, neat column.

If it helps, here's the script thing I used for the Window_Skill part to this point. Please ignore the crazy battle coordinates, I was testing.
 

#==============================================================================
# ** Window_Skill
#------------------------------------------------------------------------------
#  This window displays usable skills on the skill and battle screens.
#==============================================================================

class Window_Skill < Window_Selectable
  #--------------------------------------------------------------------------
  # * Object Initialization
  #     actor : actor
  #--------------------------------------------------------------------------
  def initialize(actor)
    super(0, 65, 160, 160)
    @actor = actor
    @column_max = 1
    refresh
    self.index = 0
    # If in battle, move window to center of screen
    # and make it semi-transparent
    if $game_temp.in_battle
      self.y = 190
      self.x = 0
      self.height = 250
      self.back_opacity = 255
    end
  end
  #--------------------------------------------------------------------------
  # * Acquiring Skill
  #--------------------------------------------------------------------------
  def skill
    return @data[self.index]
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    if self.contents != nil
      self.contents.dispose
      self.contents = nil
    end
    @data = []
    for i in 0...@actor.skills.size
      skill = $data_skills[@actor.skills[i]]
      if skill != nil
        @data.push(skill)
      end
    end
    # If item count is not 0, make a bit map and draw all items
    @item_max = @data.size
    if @item_max > 0
      self.contents = Bitmap.new(width - 32, row_max * 72)
      for i in 0...@item_max
        draw_item(i)
      end
    end
  end
  #--------------------------------------------------------------------------
  # * Draw Item
  #     index : item number
  #--------------------------------------------------------------------------
  def draw_item(index)
    skill = @data[index]
    if @actor.skill_can_use?(skill.id)
      self.contents.font.color = normal_color
    else
      self.contents.font.color = disabled_color
    end
def draw_item(index)
    skill = @data[index]
    if @actor.skill_can_use?(skill.id)
      self.contents.font.color = normal_color
    else
      self.contents.font.color = disabled_color
    end
    x = 1 + index % 2 * (155 + 32)
    y = index / 2 * 32
    rect = Rect.new(x, y, self.width / @column_max - 32, 32)
    self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
    bitmap = RPG::Cache.icon(skill.icon_name)
    opacity = self.contents.font.color == normal_color ? 255 : 128
    self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
    self.contents.draw_text(x + 10, y, 204, 32, skill.name, 0)
    self.contents.draw_text(x + 100, y, 48, 32, skill.sp_cost.to_s, 2)
  end
  #--------------------------------------------------------------------------
  # * Help Text Update
  #--------------------------------------------------------------------------
  def update_help
    @help_window.set_text(self.skill == nil ? "" : self.skill.description)
  end
end
end
  #-------------------------------------------------------------------------------------
  # * Knock out the black background (Works for main menu, does not when class is Window_Skill
  #-------------------------------------------------------------------------------------
class Scene_Menu
        alias :zahraa_main_map :main
        def main
    @background = Spriteset_Map.new
                zahraa_main_map
                @background.dispose
        end
      end


https://imgur.com/a/jazbc


Edited by MarblePoundCakes, 25 September 2017 - 06:09 AM.

  • 0

#2
zahraa

zahraa

    Phuck The World ;D

  • Member
  • 518 posts
  • Prefered Engine: Unity
  • Engine Level: Getting There
  • Class Title: Writer
  • Project(s): Black Butterflies

Awww good old memories...

anyway, um, In order to make that script work for the Skill window, you should make sure that it refers to Scene_Skill instead of Scene_Menu. Copy and paste this script above the one called Main

class Window_Base < Window
        alias :zahraa_skill_init :initialize unless $@
        def initialize(*args, &block)
                zahraa_skill_init(*args, &block)
                skill_opacity?
        end
        def skill_opacity?
                return unless $scene.is_a?(Scene_Skill)
                self.back_opacity = 160
                self.opacity = 160 
        end
end
class Scene_Skill
        alias :zahraa_main_map :main
        def main
    @background = Spriteset_Map.new
                zahraa_main_map
                @background.dispose
        end
end

And for the second thing, First change the variable called @column_max in Window_Skill from 2 to 1. Then go to the section called Draw Item. You will see two lines:

    x = 1 + index % 2 * (155 + 32)
    y = index / 2 * 32

Change them to this:

    x = index
    y = index * 32

That's it.

Have a nice day!


  • 1

#3
MarblePoundCakes

MarblePoundCakes

    Newbie

  • Member
  • 2 posts
  • Prefered Engine: RPG Maker XP
  • Engine Level: N/A
  • Class Title: Eventer

Yooo works perfect, thanks a lot! :)


  • 0





0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users