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.
Post the codes from the scripts you are referencing.
you do so like this
(https://rmrk.net/proxy.php?request=http%3A%2F%2Fimg4host.net%2Fupload%2F250420504f6e8102a6dc6.JPG&hash=932bb80b44a46851b1888415a2ca294306ef690f)
It shouldn't be too hard to fix :)
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:
#===============================================================================
#
# 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:
#==============================================================================
# ** 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]
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.