Bravo2Kilo

ReinoRpg HUD

37 posts in this topic

ReinoRpg Hud

Author: LB

Translation: Bravo2Kilo

Ported: Bravo2Kilo

Toggle Key: Kal

 

This script was wrote by LB in RGSS2 in Portuguese. Some time ago i translated this script into English, now i have ported this script from RGSS2 to RGSS3. I have also made various edits to the script other than porting it from RGSS2 to RGSS3. Thanks to Kal for adding the toggle key to the script.

 

ReinoRpgHud.png

Sceenshot

 

Script

 

#================================================#
# ¦ ReinoRPG HUD v0.6
# Script: LB
# Translated: Bravo2Kilo
# Toggle key: Kal
#================================================#
puts "HUD Loaded"
module PR_RRPG_HUD

#================================================#
#============= General Settings ===============#
#================================================#
 # Post nil if you want to center on screen
 # Place a minus sign in front of value to refer to the opposite side.
 Position_X = nil
 Position_Y = -8
 Bottom_of_the_HUD = "Back.png"
 Bar_HP = "HP.png"
 Bar_MP = "MP.png"

 Using_transparency_in_the_entrance = true # Makes the HUD fade when go under it
 Using_transparency_in_the_exit = true # FadeOut to disappear in just

 Speed = 3 # Speed to FadeIn/FadeOut
 Final_Opacity = 255 # Final 0pacity of the HUD
 Opacity_Final_Element = 255 # Opacity of the final elements of the HUD
 Character_Opacity = 150 # Opacity if the character is under
 Opacity_Character_Element = 160 # Opacity of the elements

 Switch_Control = 1 # Switch that controls whether the HUD is active or not
				 # HUD to be active ON and OFF to turn it off.

 Number_Character = 1 # The number of character in order according to menu

 HUD_Toggle_Show_Key = Input::L # Press this key to show/hide the HUD
							 # L is the Q key on a keyboard.
							 # Press F1 in a game to see what the default
							 # key mappings are.

#==============================================#
#=============== HUD Elements ================#
#==============================================#

 # Set to true to display graphic charset (false to not display)
 Char_Show = true
 Char_X = 46
 Char_Y = 66

 # Set true to show the character's name (false to not display)
 Name_Show = true
 Name_Alignment = 1 # 0 = Left | 1 = Center | 2 = Right
 Name_X = 92
 Name_Y = 25
 Name_Width = 134
 Name_Color = Color.new(255,255,255)
 Name_Font = nil # Font to use, write nil to use the default
 Name_Size_of_Font = 17 # Size_of Font

 # Set true to show the character's class (false to not display)
 Class_Show = true
 Class_Alignment = 0 # 0 = Left | 1 = Center | 2 = Right
 Class_X = 229
 Class_Y = 25
 Class_Width = 60
 Class_Color = Color.new(255,255,255)
 Class_Font = nil # Font to use, write nil to use the default
 Class_Size_of_Font = 16 # Size_of Font

 # Set true to show the bar that represents the character's HP (false to not display)
 HP_Show = true
 HP_X = 92
 HP_Y = 42

 # Set true to show the bar that represents the character's MP (false to not display)
 MP_Show = true
 MP_X = 92
 MP_Y = 59

 # Set true to show the value of Current HP bar (false to not display)
 Values_HP_Show_Current = false
 # Set true to show the maximum value of the HP bar (false to not display)
 Values_HP_Show_Total = false
 Values_HP_Color = Color.new(255,255,255)
 Values_HP_Font = nil # Font to use, write nil to use the default
 Values_HP_Size_of_Font = 14 # Size_of Font
 Values_HP_X = 92
 Values_HP_Y = 38

 # Set true to show the value of Current MP bar (false to not display)
 Values_MP_Show_Current = false
 # Set true to show the maximum value of the MP bar (false to not display)
 Values_MP_Show_Total = false
 Values_MP_Color = Color.new(255,255,255)
 Values_MP_Font = nil # Font to use, write nil to use the default
 Values_MP_Size_of_Font = 14 # Size_of Font
 Values_MP_X = 92
 Values_MP_Y = 55

 # Set true to show the character's level (false to not display)
 LV_Show = true
 LV_Color = Color.new(255,255,255)
 LV_Font = nil # Font to use, write nil to use the default
 LV_Size_of_Font = 19 # Size_of Font
 LV_Width = 30
 LV_X = 241
 LV_Y = 49

 # Set true to show the character of money (false to not display)
 Gold_Show = true
 Gold_Color = Color.new(255,255,255)
 Gold_Font = nil # Font to use, write nil to use the default
 Gold_Size_of_Font = 18 # Size_of Font
 Gold_X = 281
 Gold_Y = 35
 Gold_Width = 50

 # Set true to show the suffix of play money (false to not display)
 Text_Show = true
 Text_Color = Color.new(255,255,255)
 Text_Font = nil # Font to use, write nil to use the default
 Text_Size_of_Font = 15 # Size_of Font
 Text_X = 281
 Text_Y = 50
 Text_Width = 50
 Text = "Gold" # Name of game currency
end
#===============================================#
#============ End of Settings ================#
#===============================================#
#============ Top of Script ==================#
#===============================================#
module Cache
 #--------------------------------------------------------------------------
 # * Get HUD Graphic
 # filename : Filename
 #--------------------------------------------------------------------------
 def self.hud(filename)
load_bitmap("Graphics/Hud/", filename)
 end
end
class Scene_Map < Scene_Base
 include PR_RRPG_HUD

 alias hud_start start
 alias hud_update update
 alias hud_terminate terminate

 def start
active_hud
hud_start
 end

 def active_hud
unless @hud_has_run_before
  $game_switches[switch_Control] = true
  @hud_has_run_before = true
end
@animation_hud1 = Using_transparency_in_the_entrance
@animation_hud2 = Using_transparency_in_the_entrance
@animation_hud_1 = Using_transparency_in_the_exit
@animation_hud_2 = Using_transparency_in_the_exit
@back = Sprite.new
@back.bitmap = Cache.hud(Bottom_of_the_HUD)
@back.opacity = 0 if @animation_hud1 == true
x = Position_X
y = Position_Y
w = @back.width
h = @back.height
x = ( x == nil ? ( 544 - w ) / 2 : ( x < 0 ? ( 544 + x - w ) : x ) )
y = ( y == nil ? ( 416 - h ) / 2 : ( y < 0 ? ( 416 + y - h ) : y ) )
@back.x = x
@back.y = y
@back.z = 190
@wind = Window_Base.new(x-16,y-16,w+32,h+32)
@wind.opacity = 0
@wind.contents_opacity = 0 if @animation_hud2 == true
@wind.z = 195
@wind.contents.font.shadow = false
@id = Number_Character-1
@info = []
@hp = Sprite.new
@hp.bitmap = Bitmap.new(32,32)
@mp = Sprite.new
@mp.bitmap = Bitmap.new(32,32)
@hp.x = HP_X + x
@mp.x = MP_X + x
@hp.y = HP_Y + y
@mp.y = MP_Y + y
@hp.z = 192
@mp.z = 193
@hp.opacity = 0 if @animation_hud2 == true
@mp.opacity = 0 if @animation_hud2 == true
hud_real_update if status_update
 end

 def terminate
if @animation_hud_1 == true
  @back.bitmap.dispose
  @back.dispose
end
if @animation_hud_2 == true
  @hp.bitmap.dispose
  @hp.dispose
  @mp.bitmap.dispose
  @mp.dispose
  @wind.contents.dispose
  @wind.dispose
end
hud_terminate
 end

 def update
if $game_switches[switch_Control] == true and @hud_keyboard_switch
  if @back != nil
	if @back.opacity < Final_Opacity and @animation_hud1 == true
	  @back.opacity += Speed
	else
	  @back.opacity = Final_Opacity
	  @animation_hud1 = false
	end
	if @wind.contents_opacity < Opacity_Final_Element and @animation_hud2 == true
	  @wind.contents_opacity += Speed
	  @hp.opacity += Speed
	  @mp.opacity += Speed
	else
	  @wind.contents_opacity = Opacity_Final_Element
	  @hp.opacity = Opacity_Final_Element
	  @mp.opacity = Opacity_Final_Element
	  @animation_hud2 = false
	end
  else
	active_hud
  end
else
  if @back != nil
	if @back.opacity > Speed-1 and @animation_hud_1 == true
	  @back.opacity -= Speed
	else
	  @back.bitmap.dispose
	  @back.dispose
	  @back = nil
	  @animation_hud_1 = false
	end
	if @wind.contents_opacity > Speed-1 and @animation_hud_2 == true
	  @wind.contents_opacity -= Speed
	  @hp.opacity -= Speed
	  @mp.opacity -= Speed
	else
	  if @animation_hud_2 == true
		@hp.bitmap.dispose
		@hp.dispose
		@hp = nil
		@mp.bitmap.dispose
		@mp.dispose
		@mp = nil
		@wind.contents.dispose
		@wind.dispose
		@wind = nil
		@animation_hud_2 = false
	  end
	end
  end
end
if @back != nil
  if $game_player.screen_x >= @back.x and $game_player.screen_x <= @back.x + @back.width and
	 $game_player.screen_y >= @back.y and $game_player.screen_y <= @back.y + @back.height
	@back.opacity = Character_Opacity
	@hp.opacity = Opacity_Character_Element
	@mp.opacity = Opacity_Character_Element
	@wind.contents_opacity = Opacity_Character_Element
  end
end
hud_real_update if status_update
hud_check_key_toggle
hud_update
 end

 def hud_real_update
a = $game_party.members[@id]
@wind.contents.clear
@wind.draw_character(a.character_name, a.character_index, Char_X, Char_Y) if Char_Show
if Name_Show
  @wind.contents.font.name = Name_Font if Name_Font != nil
  @wind.contents.font.color = Name_Color
  @wind.contents.font.size = Name_Size_of_Font
  @wind.contents.draw_text(Name_X, Name_Y, Name_Width, Name_Size_of_Font, a.name, Name_Alignment)
end
if Class_Show
  @wind.contents.font.name = Class_Font if Class_Font != nil
  @wind.contents.font.color = Class_Color
  @wind.contents.font.size = Class_Size_of_Font
  @wind.contents.draw_text(Class_X, Class_Y, Class_Width, Class_Size_of_Font, a.class.name, Class_Alignment)
end
if HP_Show
  @hp.bitmap.dispose
  @hp.bitmap = Cache.hud(Bar_HP)
  @hp.bitmap.clear_rect(Rect.new((@hp.width*a.hp/a.mhp),0,@hp.width,@hp.height))
end
if MP_Show
  @mp.bitmap.dispose
  @mp.bitmap = Cache.hud(Bar_MP)
  @mp.bitmap.clear_rect(Rect.new((@mp.width*a.mp/a.mmp),0,@mp.width,@mp.height))
end
if Values_HP_Show_Current
  text = a.hp.to_s
end
if Values_HP_Show_Total
  text = a.mhp.to_s
end
if Values_HP_Show_Current and Values_HP_Show_Total
  text = a.hp.to_s + "/" + a.mhp.to_s
end
if text != nil
  @wind.contents.font.name = Values_HP_Font if Values_HP_Font != nil
  @wind.contents.font.color = Values_HP_Color
  @wind.contents.font.size = Values_HP_Size_of_Font
  @wind.contents.draw_text(Values_HP_X, Values_HP_Y, @hp.width, Values_HP_Size_of_Font, text, 2)
end
text = nil
if Values_MP_Show_Current
  text = a.mp.to_s
end
if Values_MP_Show_Total
  text = a.mmp.to_s
end
if Values_MP_Show_Current and Values_MP_Show_Total
  text = a.mp.to_s + "/" + a.mmp.to_s
end
if text != nil
  @wind.contents.font.name = Values_MP_Font if Values_MP_Font != nil
  @wind.contents.font.color = Values_MP_Color
  @wind.contents.font.size = Values_MP_Size_of_Font
  @wind.contents.draw_text(Values_MP_X, Values_MP_Y, @hp.width, Values_MP_Size_of_Font, text, 2)
end
if LV_Show
  @wind.contents.font.name = LV_Font if LV_Font != nil
  @wind.contents.font.color = LV_Color
  @wind.contents.font.size = LV_Size_of_Font
  @wind.contents.draw_text(LV_X, LV_Y, LV_Width, LV_Size_of_Font, a.level, 1)
end
if Gold_Show
  @wind.contents.font.name = Gold_Font if Gold_Font != nil
  @wind.contents.font.color = Gold_Color
  @wind.contents.font.size = Gold_Size_of_Font
  @wind.contents.draw_text(Gold_X, Gold_Y, Gold_Width, Gold_Size_of_Font, $game_party.gold, 1)
end
if Text_Show
  @wind.contents.font.name = Text_Font if Text_Font != nil
  @wind.contents.font.color = Text_Color
  @wind.contents.font.size = Text_Size_of_Font
  @wind.contents.draw_text(Text_X, Text_Y, Text_Width, Text_Size_of_Font, Text, 1)
end
 end

 def status_update
return false if @wind == nil
a = $game_party.members[@id]
return update_infos if a.id != @info[0]
return update_infos if a.character_name != @info[1]
return update_infos if a.character_index != @info[2]
return update_infos if a.name != @info[3]
return update_infos if a.class_id != @info[4]
return update_infos if a.class.name != @info[5]
return update_infos if a.hp != @info[6]
return update_infos if a.mhp != @info[7]
return update_infos if a.mp != @info[8]
return update_infos if a.mmp != @info[9]
return update_infos if a.level != @info[10]
return update_infos if $game_party.gold != @info[11]
return false
 end

 def update_infos
a = $game_party.members[@id]
@info[0] = a.id
@info[1] = a.character_name
@info[2] = a.character_index
@info[3] = a.name
@info[4] = a.class_id
@info[5] = a.class.name
@info[6] = a.hp
@info[7] = a.mhp
@info[8] = a.mp
@info[9] = a.mmp
@info[10] = a.level
@info[11] = $game_party.gold
return true
 end
 def hud_check_key_toggle
@hud_keyboard_switch = true if @hud_keyboard_switch.nil?
if Input.trigger?(HUD_Toggle_Show_Key)
  @hud_keyboard_switch = !@hud_keyboard_switch
end
 end

end

 

 

If you want the hud, hp, and mp graphic

 

Back.pngHP.pngMP.png

 

Edited by Bravo2Kilo

Share this post


Link to post
Share on other sites

Nice script! The way it fades in and out and handles opacity is cool. It's missing one thing though (in my opinion) and that is a the ability to to toggle the HUD (show/hide that is) by pressing a keyboard/gamepad button. I added this functionality to the script here: https://gist.github....862b02f35509c93

 

In the config you can set what button you want to toggle the HUD with (default is the Q button on a keyboard). I made it so that the key button press has a lower priority than the switch that controls if the HUD is on or off. So if the switch is off, pressing the key won't do anything, but if the switch is on, you can press the key to show/hide the HUD.

 

And one more thing, you (or the person who made the script) might want to consider changing the method and constant names that are added to Scene_Menu. For example there's a method added called real_update and there's a possibility some other script defines this method too. If that's the case it would lead to some very annoying errors for the user. If you change it to something like hud_real_update it is much less likely that this will happen.

Edited by kal
Ally likes this

Share this post


Link to post
Share on other sites

Haha I'm glad you liked it, Ally. :)

 

Thanks for adding it to the script dartdaman! I found something else too in this part here:

 

 

 def active_hud
   $game_switches[switch_Control] = true
   [...]

 

So here the switch is turned on every time the active_hud method is getting called. The problem is that active_hud gets called every time the scene changes to Scene_Map, and not just once. So say for example that the user turns the switch off, which hides the HUD, and then enters a battle on the map, and when the battle is over the HUD will be shown again because the switch got set to true again. I'm not sure if this is the intended behavior but it seems like a bug to me. If you change that line to the following code:

 

 

 def active_hud
   unless @hud_has_run_before
  $game_switches[switch_Control] = true
  @hud_has_run_before = true
   end

 

It will only turn the switch on the first time this method is run and when the scene changes later on it won't reset any changes the player made to the switch.

Ally likes this

Share this post


Link to post
Share on other sites

I was thinking about starting a resource thread were I can make custom hud graphics to be used with this hud. I was wondering how may people actually use this hud and would want a custom graphic made. I have an example hud I made

Back.png

. What do you think should I open this thread and make custom huds.

Triggerhound777 and Rosenblack like this

Share this post


Link to post
Share on other sites

Hey Bravo,I really like this script and I think the idea of making custom huds is really good and all,but I'm encountering an error,everytime I open a chest,this happens:-

 

 

rj5Dg.png

Share this post


Link to post
Share on other sites

@shadic what other scripts are you using because there has to be a compatibility error between one of those scripts and the hud script

Share this post


Link to post
Share on other sites

Hey Bravo,I really like this script and I think the idea of making custom huds is really good and all,but I'm encountering an error,everytime I open a chest,this happens:-

 

 

rj5Dg.png

 

I get this same error and I have no other scripts installed but the default scripts that came with ace. I get this message when I open a treasure chest that gives the player gold. I noticed if I press the Q button on the keyboard to hid the Hud and then open a treasure chest I don't get the error. only when the hud is displayed and I open a chest i get the error because its not being updated.

 

Edit: Ok never mind. I fixed the problem myself. On line 273 for those who get that error, rename real_update to hud_real_update.. this fixed and solved it for me.

Edited by syrus ultima

Share this post


Link to post
Share on other sites

i can't move when i install this script...

 

 

fixed:

 

For some reason having a common event trigger set to ON makes the character not move...also i couldn't open the menu or press f1.

 

Line 273 was also an issue but updated to hud_real_update

 

Great HUD!

Edited by Dojoep

Share this post


Link to post
Share on other sites

Thanks a lot for this script, which is the first one i've integrated and modified :-)

 

A screenshot to this one below (level, face, name, class and money) :

 

reinohudmodified.png

 

If you want to use it :

  • Code (on pastebin) ;
  • Image (in attached file)

Enjoy!

post-13691-0-95744400-1345492641_thumb.png

Edited by pjbdes

Share this post


Link to post
Share on other sites

pjbdes -- that modification looks awesome! Could you share the changed script and images please???

 

I've edited my previous post :-)

Share this post


Link to post
Share on other sites

Thanks a lot for this script, which is the first one i've integrated and modified :-)

 

A screenshot to this one below (level, face, name, class and money) :

 

reinohudmodified.png

 

If you want to use it :

  • Code (on pastebin) ;
  • Image (in attached file)

Enjoy!

 

 

Omg this is incredible!

Share this post


Link to post
Share on other sites

Thanks for the code!!! I have modified it slightly, kinda combining yours and Bravo2Kilo's. I changed out the money section and added in HP/MP bars...

 

post-14005-0-83994400-1345499116_thumb.jpg

 

What do you guys think?

Edited by Caveman

Share this post


Link to post
Share on other sites

Thanks for the code!!! I have modified it slightly, kinda combining yours and Bravo2Kilo's. I changed out the money section and added in HP/MP bars...

 

post-14005-0-83994400-1345499116_thumb.jpg

 

What do you guys think?

 

Sounds nice I did that too.

Edited by Sievn

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.