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.

STR33 HUD BATTLE Problem

EDIT: I have solved my problem so please close this thread

okay, so my problem is that when i start a battle i only get three huds like so:
Screen-1.png



I have no idea why the third one doesnt show up but i would really appreciate it if someone could help me. Here is the code:
Code:
 

#==============================================================================

# �–� Window_BattleStatus

#==============================================================================

class Window_BattleStatus < Window_Selectable

  # Skin File name

  BTSKIN_00 = "Btskin_main"   # Main Skin

  BTSKIN_01 = "Btskin_hp"     # HP(Gauge)

  BTSKIN_02 = "Btskin_mp"     # MP(Gauge)

  BTSKIN_04 = "Btskin_n00"    # HP(Numbers)

  BTSKIN_05 = "Btskin_n00"    # MP(Numbers)

  BTSKIN_03 = "Btskin_state"  # State

  # Skin coordinates[  x,  y]

  BTSKIN_B_XY = [-179, -17]     # �Ÿ��–座�™

  BTSKIN_00XY = [-35, 17]     #Main Skin

  BTSKIN_01XY = [-19,  25]     # HP(gauge)

  BTSKIN_02XY = [-15, 41]     # MP(gauge)

  BTSKIN_04XY = [ 24, 16]     # HP(numbers)

  BTSKIN_05XY = [ 28, 35]     # MP(numbers)

  BTSKIN_03XY = [ 23, 31]     # �‚��ƒ†�ƒ��ƒˆ�‚��‚��ƒ�

  BTSKIN_06XY = [ 66, -8]     # �‚��ƒ†�ƒ��ƒˆ

  # Various Settings

  BTSKIN_01GS = 4             # HP Gauge Speed (Low values are fast)

  BTSKIN_02GS = 6             # MP Gauge Speed(Low values are fast)

  BTSKIN_04SS = 8             # HP Rolling Numbers Speed(Low values are fast)

  BTSKIN_05SS = 2             # MP Rolling Numbers Speed(Low values are fast)

  BTSKIN_04NS = 4             # HP Maximum Digits

  BTSKIN_05NS = 4             # MP Maximum Digits

  BTSKIN_06WH = [24,24]       # [State Width, Height]

  BTSKIN_06SC = 3             # State Icon Scroll Speed

                              # (Values close to 1 are fast)

  # �ƒ��ƒˆ�ƒ��‚��ƒ†�ƒ��‚��‚�座�™

  def set_xy

    @x = []

    @y = []

    for i in 0...$game_party.members.size

      x = (i * 153) + 40

      y = 3

      @x[i] = x + 176#+ STRRGSS2::ST_SX

      @y[i] = y + 16#+ STRRGSS2::ST_SY

    end

  end

  # 設�š�‡�‰€�“�“まで

  @@f = false

  

  

  #--------------------------------------------------------------------------

  # �˜… �‚��‚��ƒ��‚��‚�

  #--------------------------------------------------------------------------

  alias initialize_str33 initialize

  def initialize(f = false)

    initialize_str33

    unless @@f

      @f = @@f = true

    else

      @f = false

    end

    set_xy

    @s_sprite = []

    @s_party = []

    @s_lv = []

    @opacity = 255

    self.contents.dispose

    self.create_contents

    self.back_opacity = 0

    self.opacity = 0

    #@column_max = $game_party.actors.size

    @viewport = Viewport.new(0, 480-128, 640, 128)

    @hpgw = (Cache.system(BTSKIN_01)).width

    @mpgw = (Cache.system(BTSKIN_02)).width

    @viewport.z = self.z - 1

    @state_opacity = []

    @item_max = $game_party.members.size

    return unless @f

    for i in 0...@item_max

      draw_item(i)

    end

    update

  end

  #--------------------------------------------------------------------------

  # �—� �ƒ��ƒ•�ƒ��ƒƒ�‚��ƒ�潰�—

  #--------------------------------------------------------------------------

  def refresh

    # :-)

  end

 

   #--------------------------------------------------------------------------

  # �—� �‚��ƒ†�ƒ��ƒˆの描�”�

  #--------------------------------------------------------------------------

  def draw_actor_state(actor)

    icon = Cache.system("Iconset")

    w = actor.states.size * 24

    w = 24 if w < 1

    bitmap = Bitmap.new(w, BTSKIN_06WH[1])

    count = 0

    for state in actor.states

      icon_index = state.icon_index

      x = 24 * count

      rect = Rect.new(icon_index % 16 * 24, icon_index / 16 * 24, 24, 24)

      bitmap.blt(x, 0, icon, rect)

      count += 1

    end

    return bitmap

  end

  #--------------------------------------------------------------------------

  # �—� 名�‰��œ�ˆ�

  #--------------------------------------------------------------------------

   def name_bitmap(actor)

     bitmap = Bitmap.new(100, 24)

     bitmap.font.size = 20

     bitmap.draw_text_f(-4, 40, 100, 24, actor.name)

     return bitmap

   end

  #--------------------------------------------------------------------------

  # �—� �‚��ƒ†�ƒ��ƒˆ�•��–�—

  #--------------------------------------------------------------------------

  def state_size(actor)

    return actor.states.size

  end

  #--------------------------------------------------------------------------

  # �—� �‚��‚��ƒ†�ƒ��œ�ˆ�

  #--------------------------------------------------------------------------

  def draw_item(index)

    return unless @f

    actor = $game_party.members[index]

    # 

    @s_sprite[index] = []

    s = @s_sprite[index]

    # �ƒ��‚��ƒ��‚��‚��ƒ�

    s[0] = Sprite.new(@viewport)

    s[0].bitmap = Cache.system(BTSKIN_00)

    s[0].x = @x[index] + BTSKIN_B_XY[0] + BTSKIN_00XY[0]

    s[0].y = @y[index] + BTSKIN_B_XY[1] + BTSKIN_00XY[1]

    s[0].z = 0

    # HP

    s[1] = Sprite.new(@viewport)

    s[1].bitmap = Cache.system(BTSKIN_01)

    s[1].x = @x[index] + BTSKIN_B_XY[0] + BTSKIN_01XY[0]

    s[1].y = @y[index] + BTSKIN_B_XY[1] + BTSKIN_01XY[1]

    s[1].z = 4

    w = s[1].bitmap.width

    h = s[1].bitmap.height / 2

    s[1].src_rect.set(0, 0, w, h)

    s[2] = Sprite.new(@viewport)

    s[2].bitmap = Cache.system(BTSKIN_01)

    s[2].x = @x[index] + BTSKIN_B_XY[0] + BTSKIN_01XY[0]

    s[2].y = @y[index] + BTSKIN_B_XY[1] + BTSKIN_01XY[1]

    s[2].z = 3

    s[2].src_rect.set(0, h, w, h)

    s[11] = 96

    s[6] = Sprite_strNumbers.new(@viewport, BTSKIN_04, BTSKIN_04NS)

    s[6].x = @x[index] + BTSKIN_B_XY[0] + BTSKIN_04XY[0]

    s[6].y = @y[index] + BTSKIN_B_XY[1] + BTSKIN_04XY[1]

    s[6].z = 5

    s[13] = actor.hp

    s[6].update(s[13])

    # MP

    s[3] = Sprite.new(@viewport)

    s[3].bitmap = Cache.system(BTSKIN_02)

    s[3].x = @x[index] + BTSKIN_B_XY[0] + BTSKIN_02XY[0]

    s[3].y = @y[index] + BTSKIN_B_XY[1] + BTSKIN_02XY[1]

    s[3].z = 4

    w = s[3].bitmap.width

    h = s[3].bitmap.height / 2

    s[3].src_rect.set(0, 0, w, h)

    s[4] = Sprite.new(@viewport)

    s[4].bitmap = Cache.system(BTSKIN_02)

    s[4].x = @x[index] + BTSKIN_B_XY[0] + BTSKIN_02XY[0]

    s[4].y = @y[index] + BTSKIN_B_XY[1] + BTSKIN_02XY[1]

    s[4].z = 3

    s[4].src_rect.set(0, h, w, h)

    s[12] = 56

    s[7] = Sprite_strNumbers.new(@viewport, BTSKIN_05, BTSKIN_05NS)

    s[7].x = @x[index] + BTSKIN_B_XY[0] + BTSKIN_05XY[0]

    s[7].y = @y[index] + BTSKIN_B_XY[1] + BTSKIN_05XY[1]

    s[7].z = 5

    s[14] = actor.mp

    s[7].update(s[14])

    # �‚��ƒ†�ƒ��ƒˆ

    s[5] = Viewport.new(0, 0, BTSKIN_06WH[0], BTSKIN_06WH[1])

    s[5].rect.x = @x[index] + BTSKIN_B_XY[0] + BTSKIN_06XY[0] + @viewport.rect.x

    s[5].rect.y = @y[index] + BTSKIN_B_XY[1] + BTSKIN_06XY[1] + @viewport.rect.y

    s[5].z = @viewport.z + 1

    s[8] = Sprite.new(@viewport)

    s[8].bitmap = Cache.system(BTSKIN_03)

    s[8].x = @x[index] + BTSKIN_B_XY[0] + BTSKIN_03XY[0]

    s[8].y = @y[index] + BTSKIN_B_XY[1] + BTSKIN_03XY[1]

    s[8].z = -2

    s[9] = Plane.new(s[5])

    s[9].bitmap = draw_actor_state(actor)

    s[10] = state_size(actor)

    # 現�œ�の�‚��ƒ†�ƒ��‚��‚�に

    s[11] = ((@hpgw * (actor.hp / (actor.maxhp * 1.0))) + 1).truncate

    if actor.maxmp != 0

      s[12] = ((@mpgw * (actor.mp / (actor.maxmp * 1.0))) + 1).truncate

    else

      s[12] = 0

    end

     s[15] = Sprite.new(@viewport)

     s[15].bitmap = name_bitmap(actor)

     s[15].x = @x[index] + 4

     s[15].y = @y[index] + 2

     s[15].z = 255

    s[1].src_rect.width = s[11]

    s[2].src_rect.width = s[11]

    s[3].src_rect.width = s[12]

    s[4].src_rect.width = s[12]

    s[6].update(s[13])

    s[7].update(s[14])

    # 不可�–に

    for l in [0,1,2,3,4,8,9,15]

      s[l].opacity = 0

    end

    for l in [6,7]

      s[l].o = 0

    end

    # �ƒ…報�˜�†�(actor, x, y, size = 151)

    @s_lv[index] = actor.level

    @s_party[index] = [actor.name, actor.hp, actor.maxhp,

                       actor.mp, actor.maxmp, actor.states]

    #

     x = index * 61 - 20

     y = 90

     s[16] = Sprite.new

     s[16].bitmap = Cache.system("HUD_" + actor.name)

     s[16].x = @x[index] + 10 - 227

     s[16].y = @y[index] + -4 + 225

     s[16].z = 0

   end

  #--------------------------------------------------------------------------

  # �—� �‚��ƒ–�‚��‚��‚��ƒˆ�–‹�”�

  #--------------------------------------------------------------------------

  def dispose       

    super

    return unless @f

    for i in 0...@s_sprite.size

      for l in [0,1,2,3,4,8,9,15,16]

        @s_sprite[i][l].bitmap.dispose

        @s_sprite[i][l].dispose

      end

      for l in [5,6,7]

        @s_sprite[i][l].dispose

      end

    end

    @@f = false

  end

  #--------------------------------------------------------------------------

  # �—� �ƒ•�ƒ��ƒ��ƒ��›��–�

  #--------------------------------------------------------------------------

  def update

    super

    return unless @f

    for i in 0...@s_sprite.size

      s = @s_sprite[i]

      a = $game_party.members[i]

      m = @s_party[i]

      @state_opacity[i] = 0 if @state_opacity[i] == nil

      # 不�€��˜Ž度�‚��ƒƒ�ƒ—

      @state_opacity[i] += 8

      if @opacity < 272

        @opacity += 8

        for l in [0,1,2,3,4,15]

          s[l].opacity = @opacity

        end

        for l in [6,7]

          s[l].o = @opacity

        end

      end

      # 名�‰��›��–�

      if a.name != m[0]

        s[15].bitmap.dispose

        s[15].bitmap = name_bitmap(a)

        m[0] = a.name

      end

      # HP/MP�›��–�

      update_hp(s,a,m)

      update_mp(s,a,m)

      # �‚��ƒ†�ƒ��ƒˆ�›��–�

      if s[10] > BTSKIN_06WH[0] / 24 and (Graphics.frame_count % BTSKIN_06SC) == 0

        s[9].ox += 1 

      end

      if s[10] > 0 and @state_opacity[i] < 272

        for l in [8,9]

          s[l].opacity = @state_opacity[i]

        end

      end

      if a.states != m[5]

        m[5] = a.states

        s[9].ox = 0

        s[9].bitmap.dispose

        s[9].bitmap = draw_actor_state($game_party.members[i])

        s[10] = state_size($game_party.members[i])

        @state_opacity[i] = 0

        for l in [8,9]

          s[l].opacity = @state_opacity[i]

        end

      end

    end

  end

  #--------------------------------------------------------------------------

  # �—� �ƒ•�ƒ��ƒ��ƒ��›��–� (HP)

  #--------------------------------------------------------------------------

  def update_hp(s,a,m)

    # HPく�‚‹く�‚‹

    if a.hp != s[13]

      c = 0; c = 1 if a.hp < a.maxhp / 4; c = 2 if a.hp == 0

      if s[13] > a.hp

        s[13] -= BTSKIN_04SS

        s[13] = a.hp if s[13] < a.hp

      else

        s[13] += BTSKIN_04SS

        s[13] = a.hp if s[13] > a.hp

      end

      s[6].update(s[13], c)

    end

    # HP

    if a.hp != m[1]

      s[11] = ((@hpgw * (a.hp / (a.maxhp * 1.0))) + 1).truncate

      m[1] = a.hp

    end

    sr = s[1].src_rect

    if sr.width != s[11]

      sp = BTSKIN_01GS

      sr.width = (s[11] + (s[1].src_rect.width * (sp - 1))) / sp

      sr.width = 2 if sr.width <= 1 and a.hp > 0

    end

    sr = s[2].src_rect

    sp = 2

    if sr.width != s[1].src_rect.width and (Graphics.frame_count % sp) == 0

      if sr.width < s[1].src_rect.width

        sr.width += 1

      else

        sr.width -= 1

      end

    end

    sr.width = 2 if sr.width <= 1 and a.hp > 0

  end

  #--------------------------------------------------------------------------

  # �—� �ƒ•�ƒ��ƒ��ƒ��›��–� (MP)

  #--------------------------------------------------------------------------

  def update_mp(s,a,m)

    # MPく�‚‹く�‚‹

    if a.mp != s[14]

      c = 0; c = 1 if a.mp < a.maxmp / 4

      if s[14] > a.mp

        s[14] -= BTSKIN_05SS

        s[14] = a.mp if s[14] < a.mp

      else

        s[14] += BTSKIN_05SS

        s[14] = a.mp if s[14] > a.mp

      end

      s[7].update(s[14], c)

    end

    # MP

    if a.mp != m[3]

      if a.maxmp != 0

        s[12] = ((@mpgw * (a.mp / (a.maxmp * 1.0))) + 1).truncate

      else

        s[12] = 0

      end

      m[3] = a.mp

    end

    sr = s[3].src_rect

    if sr.width != s[12]

      sp = BTSKIN_02GS

      sr.width = (s[12] + (s[3].src_rect.width * (sp - 1))) / sp

      sr.width = 2 if sr.width <= 1 and a.mp > 0

    end

    sr = s[4].src_rect

    sp = 2

    if sr.width != s[3].src_rect.width and (Graphics.frame_count % sp) == 0

      if sr.width < s[3].src_rect.width

        sr.width += 1

      else

        sr.width -= 1

      end

    end

    sr.width = 2 if sr.width <= 1 and a.mp > 0

  end

end

 

#==============================================================================

# �–� Sprite_strNumber

#==============================================================================

class Sprite_strNumber < Sprite

  #--------------------------------------------------------------------------

  # �—� �‚��ƒ–�‚��‚��‚��ƒˆ�ˆ��œŸ�Œ–

  #--------------------------------------------------------------------------

  def initialize(v, gra, n = 0)

    @n = n

    super(v)

    self.bitmap = Cache.system(gra)

    @w = self.bitmap.width/10

    @h = self.bitmap.height/3

    self.src_rect = Rect.new(@n*@w, 0, @w, @h)

  end

  #--------------------------------------------------------------------------

  # �—� �ƒ•�ƒ��ƒ��ƒ��›��–�

  #--------------------------------------------------------------------------

  def update(n = -1, c = 0)

    @n = n

    self.src_rect.x = @n*@w

    self.src_rect.y = c*@h

  end

end

#==============================================================================

# �–� Sprite_strNumbers

#==============================================================================

class Sprite_strNumbers

  attr_accessor :x

  attr_accessor :y

  attr_accessor :z

  attr_accessor :o 

  #--------------------------------------------------------------------------

  # �—� �‚��ƒ–�‚��‚��‚��ƒˆ�ˆ��œŸ�Œ–

  #--------------------------------------------------------------------------

  def initialize(v, gra, n = 4, s = 0)

    @n = n # 桁�•�

    @x = 0

    @y = 0

    @z = 0

    @o = 255

    @sprite = []

    # �—�–“設�š

    b = Cache.system(gra)

    @s = b.width / 10 - s

    # �‚��ƒ—�ƒ��‚��ƒˆ�œ�ˆ�

    for i in 0...n

      @sprite[i] = Sprite_strNumber.new(v, gra)

    end

    update

  end

  #--------------------------------------------------------------------------

  # �—� �ƒ•�ƒ��ƒ��ƒ��›��–�

  #--------------------------------------------------------------------------

  def update(v = 0, c = 0)

    val = []

    # �•��€��‚’�…��ˆ—に格納

    for i in 0...@n

      if (10 ** (i)) == 0

        val[i] = v % 10

      else

        val[i] = v / (10 ** (i)) % 10

      end

    end

    val = val.reverse 

    # �…ˆ頭の0�‚’�–�‚Š�™�く

    for i in 0...@n

      if val[i] == 0 and @n != i + 1

        val[i] = -1

      else

        break

      end

    end

    # �‚��ƒ—�ƒ��‚��ƒˆ�›��–�

    for i in 0...@n

      @sprite[i].update(val[i], c)

      @sprite[i].x = @x + (i * @s)

      @sprite[i].y = @y

      @sprite[i].z = @z

      @sprite[i].opacity = @o

    end

  end

  #--------------------------------------------------------------------------

  # �—� 不�€��˜Ž度の適�”�

  #--------------------------------------------------------------------------

  def o=(val)

    @o = val

    for i in 0...@n

      @sprite[i].opacity = @o

    end

  end

  #--------------------------------------------------------------------------

  # �—� �‚��ƒ–�‚��‚��‚��ƒˆ�–‹�”�

  #--------------------------------------------------------------------------

  def dispose

    for i in [email=0...@sprite.size]0...@sprite.size[/email]

      @sprite[i].bitmap.dispose

      @sprite[i].dispose

    end

  end

end

 

 

#==============================================================================

# �–� Bitmap

#==============================================================================

# This script controls the shadow behind actor names for *STR33g1_Battle Status.

 

class Bitmap

  #--------------------------------------------------------------------------

  # �—� �–‡�—縁�–�‚Š描�”�

  #--------------------------------------------------------------------------

  def draw_text_f(x, y, width, height, str, align = 0, color = Color.new(64,32,128))

    shadow = self.font.shadow

    b_color = self.font.color.dup

    font.shadow = true

    font.color = color

    draw_text(x + 1, y, width, height, str, align) 

    draw_text(x - 1, y, width, height, str, align) 

    draw_text(x, y + 1, width, height, str, align) 

    draw_text(x, y - 1, width, height, str, align) 

    font.color = b_color

    draw_text(x, y, width, height, str, align)

    font.shadow = shadow

  end

  def draw_text_f_rect(r, str, align = 0, color = Color.new(64,32,128)) 

    draw_text_f(r.x, r.y, r.width, r.height, str, align = 0, color) 

  end

end

 
 
That is one horribly coded script you managed to find you there... :/

Try replacing
Code:
for i in 0...$game_party.members.size
with
Code:
for i in 0..$game_party.members.size
which doesn't make too much sense, but is the closest I can find that could work. Because of the duplicate name and avatar, are you sure it's not just you forgetting to add a fourth actor?

If it's none of those, have fun finding someone willing enough to wade through those lines. It's like I'd just be saying I i's n o t, h f f s w e t w t t l instead... (this is a note for all the people who think coding style doesn't matter a shit)
 

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