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.

Mr. Mo's ABS HUD

I'm using Mr. Mo's ABS for my RPG and don't know how to (safely) remove the HUD-scripts (timer, gold-display) without breaking the whole ABS. The gold display doesn't have to be removed, it would be good enough to move it somewhere else.

:biggrin: Thankya :biggrin:

P.S. I've tried searching for existing Mr. Mo's ABS threads, but it's impossible as none of the keywords is longer than 4 chars...
 
well...let's see, this is an image of Mr. Mo's ABS:

http://img19.imageshack.us/my.php?image=mrmo.png

do you want the whole lower left image hidden? or just the gold icon (along with the gold ammount)

as for the time HUD, replace your HUD script with this one:

Code:
#==============================================================================

# ** HUD

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

# Mr.Mo "Muhammet Sivri" & Axerax

# Version 1.8

# 10.01.06

# Credit: Prexus for the Original Background. Axerax for edited HUD Background.

# Axerax for HUD Display,Mini-Map Backdrop HUD, and Hotkeys HUD.

# Notes: Be sure you have the Selwyn Passability Mini-Map before trying to use

# this version of the HUD. As well follow steps provided by Selwyn in his script

# to display the Mini-Map itself, my HUD will not display it for you, it is only

# a backdrop that displays the name of the map you are currently on.

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

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

# Begin SDK Enabled Check

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

if SDK.enabled?("Mr.Mo's ABS")

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

# * Constants - MAKE YOUR EDITS HERE

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

TIME_VISIBLE = false

HP_X = 54             # X POS of the HP Bar

HP_Y = 3              # Y POS of the HP Bar

HP_WIDTH = 55         # WIDTH of the HP Bar

HP_HEIGHT = 5         # Height of the HP Bar

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

SP_X = 54             # X POS of the SP Bar

SP_Y = 22             # Y POS of the SP Bar

SP_WIDTH = 55         # WIDTH of the SP Bar

SP_HEIGHT = 5         # Height of the SP Bar

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

EXP_X = 55            # X POS of the EXP Bar

EXP_Y = 42            # Y POS of the EXP Bar

EXP_WIDTH = 60        # WIDTH of the EXP Bar

EXP_HEIGHT = 5        # Height of the EXP Bar

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

STATES_SHOW = true    # Show states?

STATES_X = 170        # States X display

STATES_Y = 430        # States Y display

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

HOTKEYS_SHOW = true  #Show hotkeys?

HOTKEYS_X = 180       #Hotkeys X Display

HOTKEYS_Y = 440       #Hotkeys Y Display

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

SHOW_DASH = true      # Show dash bar?

DASH_X = 95          # X POS of the DASH Bar

DASH_Y = 430          # Y POS of the DASH Bar

DASH_WIDTH = 55      # WIDTH of the DASH Bar

DASH_HEIGHT = 5      # Height of the DASH Bar

DASH_BAR = "018-Simple03" # The file used for gradient

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

SHOW_SNEAK = true      # Show SNEAK bar?

SNEAK_X = 95          # X POS of the SNEAK Bar

SNEAK_Y = 445          # Y POS of the SNEAK Bar

SNEAK_WIDTH = 55      # WIDTH of the SNEAK Bar

SNEAK_HEIGHT = 5      # Height of the SNEAK Bar

SNEAK_BAR = "019-Simple04" # The file used for gradient

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

LOW_HP = 150          # What HP should the low HP icon be shown?

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

HP_ITEMID = 1         # POTION ITEM ID

SP_ITEMID = 4         # SP Increase Item ID

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

CAN_TOGGLE = true

TOGGLE_KEY = Input::Letters["E"]

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

MINI_MAP = true       # Display Mini-Map?

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

class Window_MrMo_HUD < Window_Base

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

  # * Object Initialization

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

  def initialize

    super(-16, -16, 700, 700)

    #Record Old Data

    @actor = $game_party.actors[0]

    @old_hp = @actor.hp

    @old_sp = @actor.sp

    @old_exp = @actor.exp

    @level = @actor.level

    @hp_n = $game_party.item_number(HP_ITEMID)

    @sp_n = $game_party.item_number(SP_ITEMID)

    @gold_n = $game_party.gold

    @states = @actor.states.to_s

    @dash = $ABS.dash_min

    @sneak = $ABS.sneak_min

    #Create Bitmap

    self.contents = Bitmap.new(width - 32, height - 32)

    #Hide Window

    self.opacity = 0

    #Refresh

    refresh

  end

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

  # * Refresh

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

  def refresh

    self.contents.clear

    self.contents.font.color = system_color

    self.contents.font.color = normal_color

    self.contents.font.size = 12

    #Record new data

    @actor = $game_party.actors[0]

    @old_hp = @actor.hp

    @old_sp = @actor.sp

    @old_exp = @actor.exp

    @level = @actor.level

    @hp_n = $game_party.item_number(HP_ITEMID)

    @sp_n = $game_party.item_number(SP_ITEMID)

    @gold_n = $game_party.gold

    @states = @actor.states.to_s

    @dash = $ABS.dash_min

    @sneak = $ABS.sneak_min

    @time = game_time

    @time = $kts.time.to_s if $kts != nil

    #Show the Pictures

    bitmap = RPG::Cache.picture("HUD Graphic")

    self.contents.blt(0, 0, bitmap, Rect.new(0, 10, 175, 175))

    bitmap = RPG::Cache.picture("HUD Display")

    self.contents.blt(15, 380, bitmap, Rect.new(0, 0, 175, 175))

    if TIME_VISIBLE == true

    bitmap = RPG::Cache.picture("HUD Time Display")

    self.contents.blt(553.5, 338.5, bitmap, Rect.new(0, 0, 175, 175))

    end

    bitmap = RPG::Cache.picture("Hotkeys HUD")

    self.contents.blt(250, -10, bitmap, Rect.new(0, 0, 400, 80))

    if MINI_MAP

      bitmap = RPG::Cache.picture("Mini-Map HUD")

      self.contents.blt(493, 362.5, bitmap, Rect.new(0, 0, 175, 175))

      #Show Map Name

      map_infos = load_data("Data/MapInfos.rxdata")

      name = map_infos[$game_map.map_id].name.to_s

      self.contents.draw_text(520, 455, 400, 32, name.to_s)

    end

    #Show the HP Symbol

    bitmap = RPG::Cache.icon("HP Symbol")

    self.contents.blt(0, -2, bitmap, Rect.new(0, 0, 24, 24))

    self.contents.draw_text(35, -9, 640, 32, "HP")

    #Draw the HP BAR

    draw_gradient_bar(HP_X, HP_Y, @actor.hp, @actor.maxhp, HP_BAR, HP_WIDTH, HP_HEIGHT)

    #Show the SP Symbol

    bitmap = RPG::Cache.icon("SP Symbol")

    self.contents.blt(0, 18, bitmap, Rect.new(0, 0, 24, 24))

    self.contents.draw_text(35, 11, 640, 32, "SP")

    #Draw the SP Bar

    draw_gradient_bar(SP_X, SP_Y, @actor.sp, @actor.maxsp, SP_BAR, SP_WIDTH, SP_HEIGHT)

    #Show the EXP Symbol

    bitmap = RPG::Cache.icon("EXP Symbol")

    self.contents.blt(0, 37, bitmap, Rect.new(0, 0, 24, 24))

    self.contents.draw_text(35, 30, 640, 32, "EXP")

    #Draw the EXP Bar

    min = @actor.level == 99 ? 1 : @actor.now_exp

    max = @actor.level == 99 ? 1 : @actor.next_exp

    draw_gradient_bar(EXP_X, EXP_Y, min, max, EXP_BAR, EXP_WIDTH, EXP_HEIGHT)

    #Show Hero Icon

    bitmap = RPG::Cache.icon("Hero")

    self.contents.blt(2, 59, bitmap, Rect.new(0, 0, 24, 24))

    self.contents.draw_text(35, 49, 640, 32, "Hero:")

    self.contents.draw_text(30, 59, 640, 32, @actor.name.to_s)

    #Show Level Icon

    bitmap = RPG::Cache.icon("Level")

    self.contents.blt(2, 81, bitmap, Rect.new(0, 0, 24, 24))

    self.contents.draw_text(33, 72, 640, 32, "Level:")

    self.contents.draw_text(43, 82, 640, 32, @actor.level.to_s)

    #Show Gold Icon

    bitmap = RPG::Cache.icon("Gold")

    self.contents.blt(35, 390, bitmap, Rect.new(0, 0, 24, 24))

    self.contents.draw_text(30, 400, 640, 32, $game_party.gold.to_s)

    #Show Clock

    self.contents.font.color = system_color

    self.contents.font.color = normal_color

    self.contents.font.size = 14

    if TIME_VISIBLE == true

    self.contents.draw_text(570, 270, 175, 175, @time.to_s)

    end

    #If the HP is too low

    if @actor.hp.to_i <= LOW_HP

      bitmap = RPG::Cache.icon("Skull")

      self.contents.blt(130, 0, bitmap, Rect.new(0, 0, 24, 24))

    end

    #If the SP Item is more then 0

    if $game_party.item_number(SP_ITEMID) > 0

      bitmap = RPG::Cache.icon("SP Potion")

      self.contents.blt(110, 20, bitmap, Rect.new(0, 0, 24, 24))

    end

    #if the HP Item is more then 0

    if $game_party.item_number(HP_ITEMID) > 0

      bitmap = RPG::Cache.icon("HP Potion")

      self.contents.blt(110, 0, bitmap, Rect.new(0, 0, 24, 24))

    end

    if STATES_SHOW

      begin

        #Draw States Background

        n = -2

        for id in @actor.states

          state = $data_states[id]

          next if state == nil

          bitmap = RPG::Cache.picture("States Display")

          x = (n*40) + 185

          self.contents.blt(x, 50, bitmap, Rect.new(0, 0, 49, 58))

          n += 1

        end

        #Draw States

        n = -2

        for id in @actor.states

          state = $data_states[id]

          next if state == nil

          bitmap = RPG::Cache.icon(state.name+"_Icon")

          x = (n*40) + +195

          self.contents.blt(x, 65, bitmap, Rect.new(0, 0, 24, 24))

          self.contents.draw_text(x, 66.5, 49, 58, state.name.to_s)

          n += 1

        end

      rescue

        print "#{$!} - Don't ask Mr.Mo for it!!!"

      end

    end

    if HOTKEYS_SHOW

      #Draw Hotkeys

      count = 0

      #Make a loop to get all the ideas that are Hotkeyed

      @actor.skill_keys.each {|key, id| 

        #Skip NIL values

        next if id == nil

        x = (count*32) + 280

        #Get skill

        skill = $data_skills[id]

        # Next if skill is nil

        next if skill.nil?

        #Get Icon

        icon = RPG::Cache.icon(skill.icon_name)

        self.contents.blt(x, 27, icon, Rect.new(0, 0, 200, 100))

        #self.contents.draw_text(x, 33, 49, 58, skill.name.to_s)

        n = Keys.name?(key)

        self.contents.draw_text(x+10, 33, 49, 58, "#{n}")

        #Increase Count

        count += 1

      }

    end

    #Change font size

    self.contents.font.size = 20

    #Dash Bar

    self.contents.draw_text(DASH_X - 40, DASH_Y-10, 40, 32, "") if SHOW_DASH

    draw_gradient_bar(DASH_X, DASH_Y, $ABS.dash_min, $ABS.dash_max, DASH_BAR, DASH_WIDTH, DASH_HEIGHT) if SHOW_DASH

    #SNEAK Bar

    self.contents.draw_text(SNEAK_X - 40, SNEAK_Y-10, 40, 32, "") if SHOW_SNEAK

    draw_gradient_bar(SNEAK_X, SNEAK_Y, $ABS.sneak_min, $ABS.sneak_max, SNEAK_BAR, SNEAK_WIDTH, SNEAK_HEIGHT) if SHOW_SNEAK

  end

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

  # * Update

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

  def update

    refresh if something_changed?

  end

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

  # * Something Changed?

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

  def something_changed?

    return false if Graphics.frame_count % 30 != 0

    return true if @actor != $game_party.actors[0]

    return true if @old_hp != @actor.hp or @old_sp != @actor.sp or @old_exp != @actor.exp

    return true if @level != @actor.level

    return true if @hp_n != $game_party.item_number(HP_ITEMID) or @sp_n != $game_party.item_number(SP_ITEMID)

    return true if @gold_n != $game_party.gold

    return true if @states.to_s != @actor.states.to_s

    return true if @dash != $ABS.dash_min or @sneak != $ABS.sneak_min

    return true if $kts != nil and @time != $kts.time.to_s

    return true if $kts == nil and @time != game_time

    return false

  end

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

  # * Game Time

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

  def game_time

    total_sec = Graphics.frame_count / Graphics.frame_rate

    hour = total_sec / 60 / 60

    min = total_sec / 60 % 60

    sec = total_sec % 60

    text = sprintf("%02d:%02d:%02d", hour, min, sec)

    return text

  end

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

  def CAN_TOGGLE

    return CAN_TOGGLE

  end

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

  def TOGGLE_KEY

    return TOGGLE_KEY

  end

end

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

# * Scene_Map

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

class Scene_Map

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

  alias mrmo_hud_main_window main_window

  alias mrmo_keyhud_update update

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

  # * Main Draw

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

  def main_window

    @mrmo_hud = Window_MrMo_HUD.new

    mrmo_hud_main_window

  end

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

  # * Turn HUD Show

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

  def hud_show

    @mrmo_hud.visible = true

  end

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

  # * Turn HUD Hide

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

  def hud_hide

    @mrmo_hud.visible = false

  end

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

  # * Update

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

  def update

    mrmo_keyhud_update

    if @mrmo_hud.CAN_TOGGLE and Input.trigger?(@mrmo_hud.TOGGLE_KEY)

      return @mrmo_hud.visible = true if !@mrmo_hud.visible

      return @mrmo_hud.visible = false if @mrmo_hud.visible

    end

  end

end

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

# * SDK End

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

end

class Game_Actor

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

  # * Get the current EXP

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

  def now_exp

    return @exp - @exp_list[@level]

  end

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

  # * Get the next level's EXP

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

  def next_exp

    exp = @exp_list[@level+1] > 0 ? @exp_list[@level+1] - @exp_list[@level] : 0

    return exp

  end

end

ASSUMING YOU HAVE Mr. MO ABS Lite!!
if not, tell me which one you have and i'll modify it for you
 
Hi Fallen,

A huuuge thankyou for your reply! The timer's gone now. About that gold problem - the image surrounding it (the blue frame) is already removed, only the little gold icon and counter remains there.

Option 1 would be moving it into the states window below the HP, MP,... bars, if possible.
Option 2 is simply removing it if it is not.

I have the Lite version, btw.

P.S. I've pasted the whole code you posted in your last post. Which line was it that actually disabled the timer display? It would make it easier for me to understand the way things work with scripts...

Thanks again :)
 
Hello!
sry for not being online, I've been kinda busy.
If you want to do it yourself, just look for lines 165 to 168:

#Show Gold Icon
bitmap = RPG::Cache.icon("Gold")
self.contents.blt(35, 390, bitmap, Rect.new(0, 0, 24, 24))
self.contents.draw_text(30, 400, 640, 32, $game_party.gold.to_s)

the "self.contents.blt(35, 390, bitmap, Rect.new(0, 0, 24, 24))" is the line that shows the gold icon.
if you want to remove the icon, simply remove lines 166 and 167 (166 creates the icon, and 167 shows it)

now, take a look at the code:

self.contents.blt(35, 390, bitmap, Rect.new(0, 0, 24, 24))

35 mean X position
390 means Y position
bitmap means what image to put. (remember that bitmap variable was defined one line before)
Rect.new(0,0,24,24) means the size of the icon 0 is x position, 0 is Y position, 24 is X size and 24 is Y size)


This line is just the same:

self.contents.draw_text(30, 400, 640, 32, $game_party.gold.to_s)

as you should already know, it draws the text (obviously)
30 means X position
400 means Y poisition
640 means X size
32 means Y size, (it's generally 32)
$game_party.gold.to_s tells the script what to show (game_party.gold), and to_s converts the gold into a readable string.

so...that's all, if you don't understand something, just tell me. If there's something wrong, also let me know.
 
Thanks to your help I was able to do it the way I had wanted it to be, but another problem has arisen:

My idea was to put a ~100x100 pic of the current player to the location where the gold icon used to be. I could do it for one player, but it was supposed to change to the pic of the other hero(es) whenever I switched players. I've already found something on another forum but I don't really understand the way it works.

#Show Face
if @old_actor == $game_party.actors[0]
@face = Sprite.new
@face.bitmap = RPG::Cache.picture($game_party.actors[0].character_name)
@face.x = 50
@face.y = 10
@old_actor = $game_party.actors[0]
end

I just don't really know how to fit it to my needs :cry:

face.x and face.y describe x and y coordinates. OK, that's easy. But what about game_party.actors[0], why is it that if I change it to >0, my main hero's pic is displayed (but doesn't change), and if I don't change anything (= leave it at 0), no pic is shown at all?
 
since actors[] is an array, it starts from 0, so actor number 1 is 0, actor number 2 is 1, etc.
@face.bitmap = RPG::Cache.picture($game_party.actors[0].character_name) this will search for a picture in you "pictures" folder with the name of your actor number 1 name.

since Mr Mo's ABS replaces actors when they die, you should just put this:

inside pictures folder, make 2 images, 1 with the name of your first actor's character graphic, and one with the name of your second actors character graphic.

so if your first character has aluxes graphic, your pictures should be called: "001-Fighter01".

I'm not explaining good today, so sorry for that. If you still don't understand I'll be glad to help you more.
 
Okay, I've managed to reverse-engineer an already existing line later on in the script (the one that changes the hero's name) and now it seems to work fine.

#Show Hero Icon
bitmap = RPG::Cache.picture($game_party.actors[0].character_name)
self.contents.blt(10, 395, bitmap, Rect.new(0, 0, 75, 75))
self.contents.draw_text(35, 49, 640, 32, "")
self.contents.draw_text(30, 59, 640, 32,@actor.name.to_s)

On to another thing (doesn't exactly have to do with the HUD itself, please move/close thread if it is inappropriate here): Is there a way to change the actor gfx when in combat (= getting in an enemy's attack range)?
There is a part of the ABS I could think of as a starting point - the monsters' attack script, which makes them approach the hero when he gets close enough to them. Problem is, I can't find that part of Mr. Mo, and as an alternative solution I have already tried a separate radius-script, but that one came with bugs.

P.S. Sorry for the time-out, I had a load of things to do apart from the KRPG.
 

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