RMRK is retiring.
Registration is disabled. The site will remain online, but eventually become a read-only archive. More information.

RMRK.net has nothing to do with Blockchains, Cryptocurrency or NFTs. We have been around since the early 2000s, but there is a new group using the RMRK name that deals with those things. We have nothing to do with them.
NFTs are a scam, and if somebody is trying to persuade you to buy or invest in crypto/blockchain/NFT content, please turn them down and save your money. See this video for more information.
Moving battle text to the top of the screen

0 Members and 1 Guest are viewing this topic.

**
Rep: +0/-0Level 56
RMRK Junior
I am working with VX and using a simple battle HUD because I want to keep my game very 8-bitish. I am using a very simple script called "Battler HUD" which simply just uses the bottom window as a HUD during battle. My problem is, the battle text shows up and replaces it completely and you don't get to see the HUD window until the round is over. What I want is to leave that HUD at the bottom of the screen where it is and make it so my battle text is at the top of the screen in a dimmed window. I downloaded a few different scripts that show the battle text at the top and they work fine, but when the text is showing at the top, the bottom window disappears. It seems like a simple solution but I cannot figure out how to fix it.

I am a bit new to all this and don't know how to post code or else I would have posted the code from the script I am using.

*
*crack*
Rep:
Level 64
2012 Best Newbie2012 Most Unsung MemberFor frequently finding and reporting spam and spam bots
Post the codes from the scripts you are referencing.

you do so like this




It shouldn't be too hard to fix :)
All of my scripts are totally free to use for commercial use. You don't need to ask me for permission. I'm too lazy to update every single script post I ever made with this addendum. So ignore whatever "rule" I posted there. :)

All scripts can be found at: https://pastebin.com/u/diamondandplatinum3

**
Rep: +0/-0Level 56
RMRK Junior
It's a great script and exactly what I am looking for. I just want that window to stay put and have battle messages show up at the top in a dimmed window is all. I have tried a few scripts that do put the battle messages up top, but when the messages go up top, the bottom HUD window disappears until the end of the round.

Battle HUD:

Code: [Select]

#===============================================================================
#
# Battler HUD
# Version 3.0
# By Pacman (rmrk.net)
# Description: There are a lot of battle scripts for VX out there, and they're
# mostly fantastic. However, they all require so much configuration. This script
# is the ultimate plug-and-play battle HUD: all you have to do is put it in the
# editor and alter one thing if you really want to. This script simply puts the
# actor's defined face into the battle window along with their HP and MP.
# There is now also a HUD for the enemy selection part of battle. It contains
# the enemies' names, HPs, MPs and states. You can prevent the HUD from drawing
# these values buy placing certain tags in the enemy's notebox:
#
# UNKNOWN_STATUS      - Nothing is drawn.
# UNKNOWN_STATE       - The states are not drawn.
# UNKNOWN_NAME        - The name is not drawn.
# UNKNOWN_HP          - The HP is not drawn.
# UNKNOWN_MP          - The MP is not drawn.
#
# Instructions: Put this script under materials and above main in the script
# editor. Change CharOpa to the desired opactiy if you wish, and let the
# script do the rest. You can also change the font type, size and colour in the
# configuration.
#
# Support: I reside almost ever-presently at rmrk.net.
#
#===============================================================================

module PacBFH   # <- Do not touch
#-------------------------------------------------------------------------------
# EDITING SECTION
#-------------------------------------------------------------------------------
  USE_ACTOR = true  # Use actor HUD?
  USE_ENEMY = true  # Use enemy HUD?
  CharOpa = 150 # Default 150
  ORIG_COLOURS = true # Use original HP/MP colours or my new colours?
  Colour = [255, 255, 255]  # RGB(A) values, separated by commas.
  Size = 17 # Size of the name text
  Font = "Verdana"  # Font of the name text
  HPMP_SIZE = false # Does 'size' apply to the drawing of HP and MP?
#-------------------------------------------------------------------------------
# END EDITING SECTION
#-------------------------------------------------------------------------------
end

if PacBFH::USE_ACTOR
#==============================================================================
# ** Window_BattleStatus
#------------------------------------------------------------------------------
#  This window displays the status of all party members on the battle screen.
#==============================================================================
 
class Window_BattleStatus < Window_Selectable
  #--------------------------------------------------------------------------
  # Alias listing
  #--------------------------------------------------------------------------
  alias pacman_WBS_ini initialize
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0, 416, 128, 1)
    @column_max = $game_party.members.size
    refresh
    self.active = false
    self.opacity = 255
    self.cursor_rect.set(0, self.index * 96, 90, 90)
  end
  #--------------------------------------------------------------------------
  # * Draw Item
  #     index : Item number
  #--------------------------------------------------------------------------
  def draw_item(index)
    rect = item_rect(index)
    rect.x += 4
    rect.width -= 8
    rect.height = 96
    self.contents.clear_rect(rect)
    self.contents.font.color = Color.new(*PacBFH::Colour)
    self.contents.font.size = PacBFH::Size
    self.contents.font.name = PacBFH::Font
    actor = $game_party.members[index]
    draw_actor_face2(actor, index * 96,0,80)
    draw_actor_name(actor, index * 96 + 8, 0)
    draw_actor_state(actor, index * 96 + 4, 32, 20)
    self.contents.font.size = PacBFH::HPMP_SIZE ? PacBFH::Size : 14
    draw_hp_and_mp(actor, index * 96, 50, 90)
    self.contents.font.color = Font.default_color
    self.contents.font.name = Font.default_name
    self.contents.font.size = Font.default_size
  end
  #--------------------------------------------------------------------------
  # * Frame update for cursor
  #--------------------------------------------------------------------------
  def update_cursor
    if @index < 0
      self.cursor_rect.empty
    else
      self.cursor_rect.set(index*96, 0, 90, 96)
    end
  end
end
 
 
#==============================================================================
# ** Window_Base
#------------------------------------------------------------------------------
#  This is a superclass of all windows in the game.
#==============================================================================
 
class Window_Base < Window
  #--------------------------------------------------------------------------
  # * Secondary Method of drawing actor face
  #     actor : actor
  #     x     : draw spot x-coordinate
  #     y     : draw spot y-coordinate
  #     width : width of box
  #     height: height of box
  #--------------------------------------------------------------------------
  def draw_actor_face2(actor, x, y, width = 96, height = 96)
    draw_face2(actor.face_name, actor.face_index, x, y, width, height)   
  end
  #--------------------------------------------------------------------------
  # * Secondary Method of drawing face graphics
  #     face_name  : Face graphic filename
  #     face_index : Face graphic index
  #     x          : draw spot x-coordinate
  #     y          : draw spot y-coordinate
  #     width      : width of box
  #     height     : height of box
  #--------------------------------------------------------------------------
  def draw_face2(face_name, face_index, x, y, width = 96, height = 96)
    bitmap = Cache.face(face_name)
    rect = Rect.new(0, 0, 0, 0)
    rect.x = face_index % 4 * 96 + (96 - width) / 2
    rect.y = face_index / 4 * 96 + (96 - height) / 2
    rect.width = width
    rect.height = height -10
    self.contents.blt(x + 5, y + 5, bitmap, rect, PacBFH::CharOpa)
    bitmap.dispose
  end
  #--------------------------------------------------------------------------
  # * Draw Actor HP and MP
  #     actor : actor whose stats are to be drawn
  #     x     : draw spot x-coordinate
  #     y     : draw spot y_coordinate
  #     width : width of draw spot
  #--------------------------------------------------------------------------
  def draw_hp_and_mp(actor, x, y, width)
    if PacBFH::ORIG_COLOURS
      back_color = gauge_back_color
      hp_color1 = hp_gauge_color1
      hp_color2 = hp_gauge_color2
      mp_color1 = mp_gauge_color1
      mp_color2 = mp_gauge_color2
    else
      back_color = Color.new(39, 58, 83, 255)
      hp_color1 = Color.new(66, 114, 164, 255)
      hp_color2 = Color.new(122, 175, 229, 255)
      mp_color1 = Color.new(93, 50, 158, 255)
      mp_color2 = Color.new(145, 122, 229, 255)   
    end
    self.contents.fill_rect(x + 5, y + 15, width - 10, 7, back_color)
    self.contents.gradient_fill_rect(x + 7, y + 17, (width - 14) * actor.hp /
     actor.maxhp, 3, hp_color1, hp_color2)
    self.contents.draw_text(x + 5, y, width - 10, 20, Vocab::hp, 0)
    self.contents.draw_text(x + 5, y, width - 10, 20, actor.hp.to_s + "/" +
     actor.maxhp.to_s, 2)
    self.contents.fill_rect(x + 5, y + 35, width - 10, 7, back_color)
    if actor.maxmp != 0
      self.contents.gradient_fill_rect(x + 7, y + 37, (width - 14) * actor.mp /
       actor.maxmp, 3, mp_color1, mp_color2)
    else
      self.contents.gradient_fill_rect(x + 7, y + 37, (width - 14) * actor.mp,
       3, mp_color1, mp_color2)
    end
    self.contents.draw_text(x + 5, y + 20, width - 10, 20, Vocab::mp, 0)
    self.contents.draw_text(x + 5, y + 20, width - 10, 20,
     actor.mp.to_s + "/" + actor.maxmp.to_s, 2)
  end
end
end

if PacBFH::USE_ENEMY
#==============================================================================
# ** Window_TargetEnemy
#------------------------------------------------------------------------------
#  Window for selecting the enemy who is the action target on the battle
# screen.
#==============================================================================

class Window_TargetEnemy < Window_Command
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    @enemies = []
    commands = []
    $game_troop.members.each do |enemy|
      next unless enemy.exist?
      @enemies.push(enemy)
      commands.push(enemy.name)
    end
    super(416, commands)
    self.height = 128
  end
  #--------------------------------------------------------------------------
  # * Get Enemy Object
  #--------------------------------------------------------------------------
  def enemy
    return @enemies[@index]
  end
  #--------------------------------------------------------------------------
  # * Draw Item
  #     index : item number
  #--------------------------------------------------------------------------
  def draw_item(index)
    rect = item_rect(index)
    rect.x += 4
    rect.width -= 8
    self.contents.clear_rect(rect)
    self.contents.font.color = normal_color
    actor = @enemies[index]
    unless actor.stat_note?('UNKNOWN_STATUS')
      draw_actor_name(actor, 4, rect.y) unless actor.stat_note?('UNKNOW_NAME')
      unless actor.stat_note?('UNKNOWN_STATUS')
        draw_actor_state(actor, 114, rect.y, 48)
      end
      unless actor.stat_note?('UNKNOWN_HP')
        draw_actor_hp(actor, 174, rect.y, 120)
      end
      unless actor.stat_note?('UNKNOWN_MP')
        draw_actor_mp(actor, 310, rect.y, 70)
      end
    end
  end
end

#==============================================================================
# ** Game_Enemy
#------------------------------------------------------------------------------
#  This class handles enemy characters. It's used within the Game_Troop class
# ($game_troop).
#==============================================================================

class Game_Enemy < Game_Battler
  #--------------------------------------------------------------------------
  # Public Instance Variables
  #--------------------------------------------------------------------------
  attr_reader :status_note
  #--------------------------------------------------------------------------
  # Alias listing
  #--------------------------------------------------------------------------
  alias pac_unstat_ini initialize
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize(*args)
    pac_unstat_ini(*args)
    @status_note = enemy.note
  end
  #--------------------------------------------------------------------------
  # * Get tag from enemy note
  #--------------------------------------------------------------------------
  def stat_note?(note)
    return @status_note.include?(note)
  end
end
end

#===============================================================================
#
# END OF SCRIPT
#
#===============================================================================

[\code]

Battle Message Script:

Code: [Select]

#==============================================================================
# ** Window_BattleMessage
#------------------------------------------------------------------------------
#  Message window displayed during battle. In addition to the normal message
# window functions, it also has a battle progress narration function.
#==============================================================================

class Window_BattleMessage < Window_Message
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    super
    self.openness = 255
    @lines = []
    refresh
  end
  #--------------------------------------------------------------------------
  # * Dispose
  #--------------------------------------------------------------------------
  def dispose
    super
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    super
  end
  #--------------------------------------------------------------------------
  # * Open Window (disabled)
  #--------------------------------------------------------------------------
  def open
  end
  #--------------------------------------------------------------------------
  # * Close Window (disabled)
  #--------------------------------------------------------------------------
  def close
  end
  #--------------------------------------------------------------------------
  # * Set Window Background and Position
  #--------------------------------------------------------------------------
 def reset_window
    @background = 0
    @position = 0
    if @background == 255   # Normal window
      self.opacity = 255
    else                  # Dim Background and Make it Transparent
      self.opacity = 0
    end
    case @position
    when 0  # Top
      self.y = 0
    when 1  # Middle
      self.y = 144
    when 2  # Bottom
      self.y = 288
    end
  end
  #--------------------------------------------------------------------------
  # * Clear
  #--------------------------------------------------------------------------
  def clear
    @lines.clear
    refresh
  end
  #--------------------------------------------------------------------------
  # * Get Row Count
  #--------------------------------------------------------------------------
  def line_number
    return @lines.size
  end
  #--------------------------------------------------------------------------
  # * Go Back One Line
  #--------------------------------------------------------------------------
  def back_one
    @lines.pop
    refresh
  end
  #--------------------------------------------------------------------------
  # * Return to Designated Line
  #     line_number : Line number
  #--------------------------------------------------------------------------
  def back_to(line_number)
    while @lines.size > line_number
      @lines.pop
    end
    refresh
  end
  #--------------------------------------------------------------------------
  # * Add Text
  #     text : Text to be added
  #--------------------------------------------------------------------------
  def add_instant_text(text)
    @lines.push(text)
    refresh
  end
  #--------------------------------------------------------------------------
  # * Replace Text
  #     text : Text to be replaced
  #    Replaces the last line with different text.
  #--------------------------------------------------------------------------
  def replace_instant_text(text)
    @lines.pop
    @lines.push(text)
    refresh
  end
  #--------------------------------------------------------------------------
  # * Get Text From Last Line
  #--------------------------------------------------------------------------
  def last_instant_text
    return @lines[-1]
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    for i in 0...@lines.size
      draw_line(i)
    end
  end
  #--------------------------------------------------------------------------
  # * Draw Line
  #     index : Line number
  #--------------------------------------------------------------------------
  def draw_line(index)
    rect = Rect.new(0, 0, 0, 0)
    rect.x += 4
    rect.y += index * WLH
    rect.width = contents.width - 8
    rect.height = WLH
    self.contents.clear_rect(rect)
    self.contents.font.color = normal_color
    self.contents.draw_text(rect, @lines[index])
  end
end

[\code]
« Last Edit: March 25, 2012, 05:20:13 AM by spriggan72 »

**
Rep: +0/-0Level 56
RMRK Junior
Basically, I want it to be set up like the "RPG Maker VX Ace" Battle system where the battle text is at the top. Or even having the characters on the left side and leaving battle messages at bottom would be cool too. In any case. I want to be able to always see the character stats during battle.