Envision, Create, Share

Welcome to HBGames, a leading amateur game development forum and Discord server. All are welcome, and amongst our ranks you will find experts in their field from all aspects of video game design and development.

SkillShopStatus

Status
Not open for further replies.
I was wondering if anyone can please edit the SkillShopStatus part of Trickster's skill shop script, so that it scrolls down when there are more than 4 party members. Currently, if you have 5+ party members, it goes down but the character graphic, hp, sp, and level don't.

Here's the script

Code:
#==============================================================================
# ** Window_ShopStatus
#------------------------------------------------------------------------------
#  This window displays number of items in possession and the actor's equipment
#  on the shop screen.
#==============================================================================

class Window_SkillShopStatus < Window_Selectable
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    super(0, 128, 320, 352)
    @column_max = 1
    @item_max = $game_party.actors.size
    self.contents = Bitmap.new(width - 32, @item_max * 80)
    self.contents.font.size = 20
    self.contents.font.bold = true
    self.index = -1
    @item = nil
    @sprites = {}
    refresh
    self.visible = false
  end
  #--------------------------------------------------------------------------
  # * Set Item
  #     item : new item
  #--------------------------------------------------------------------------
  def item=(item)
    if @item != item
      @item = item
      refresh
    end
  end
  #--------------------------------------------------------------------------
  # * Get Actor
  #--------------------------------------------------------------------------
  def actor
    return $game_party.actors[self.index]
  end
  #--------------------------------------------------------------------------
  # * Update
  #--------------------------------------------------------------------------
  def update
    super
    @sprites.each_value {|sprite| sprite.update}
  end
  #--------------------------------------------------------------------------
  # * Dispose
  #--------------------------------------------------------------------------
  def dispose
    super
    @sprites.each_value {|sprite| sprite.dispose}
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    if @item == nil
      return
    end
    # Equipment adding information
    $game_party.actors.each_with_index do |actor, i|
      y = 80 * i
      if not @sprites.has_key?(actor)
        args = actor,self.x+40,self.y+y+40,5,0,0
        @sprites[actor] = Sprite_ActorCharGraphic.new(*args)
        @sprites[actor].visible = self.visible
      end
      color = actor.skill_shop_learnable?(@item.id) ? normal_color : disabled_color
      opacity = actor.skill_shop_learnable?(@item.id) ? 255 : 128
      @sprites[actor].animate = actor.skill_shop_learnable?(@item.id)
      @sprites[actor].opacity = opacity
      @sprites[actor].frame = 0 if opacity == 128
      self.contents.font.color = color
      y += 6
      # Draw Actor's name
      self.contents.draw_text(84, y, 120, 18, actor.name)
      # Draw Actor's Level
      self.contents.font.color = system_color
      self.contents.draw_text(212,y,32,18,"Lv")
      self.contents.font.color = normal_color
      self.contents.draw_text(252,y,32,18,actor.level.to_s)
      # Draw Actor's Hp, Sp, Exp
      draw_actor_hp(actor, 84, y+12,178)
      draw_actor_sp(actor, 84, y+44,178)
    end
  end
  #--------------------------------------------------------------------------
  # * Set Visible
  #--------------------------------------------------------------------------
  def visible=(bool)
    super(bool)
    @sprites.each_value {|sprite| sprite.visible = bool}
    if self.class.method_defined?(:get_gradient_sprites)
      get_gradient_sprites.each {|sprite| sprite.visible = bool}
    end
  end
  #-------------------------------------------------------------------------- 
  # * Get Gradient Sprites
  #-------------------------------------------------------------------------- 
  def get_gradient_sprites
    sprites = @hp_bar_sprites.to_a + @sp_bar_sprites.to_a + @exp_bar_sprites.to_a
    sprites.flatten!
    sprites.delete_if {|object| object.is_a?(Game_Actor) or object.is_a?(Game_Enemy)}
    return sprites
  end
  #--------------------------------------------------------------------------
  # * Update Cursor Rectangle
  #--------------------------------------------------------------------------
  def update_cursor_rect
    super
    self.cursor_rect.y = @index / @column_max * 82 - self.oy
    self.cursor_rect.height = 96
  end
end

Thank you to anyone who can do this.
 
Status
Not open for further replies.

Thank you for viewing

HBGames is a leading amateur video game development forum and Discord server open to all ability levels. Feel free to have a nosey around!

Discord

Join our growing and active Discord server to discuss all aspects of game making in a relaxed environment. Join Us

Content

  • Our Games
  • Games in Development
  • Emoji by Twemoji.
    Top