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.

[RMXP] HUD Skill Hotkey Positioning.... *I suck at script editing*

Windu

Member

Okay I need to move the Skill Icons and Text down to where the Hot Key Bar is if anyone can help that'd be great here's the script at the current state. It's Mr. Mo's SABS Lite... Edited XD But nothing difficult to handle I just can get positioning right..  :crazy:

Screenshot of what it looks like. Please don't make fun of the stupid HUD graphic I have for HP/SP etc... It's not what I want just temp.  :tongue:

http://i78.photobucket.com/albums/j106/scorpiusongz/ss_help_hud.png[/img]

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
#--------------------------------------------------------------------------
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 = false    # 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 = false      # 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 = false      # 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 = 10          # 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 = false       # 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("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(2, 103, bitmap, Rect.new(0, 0, 24, 24))
    self.contents.draw_text(30, 105, 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
    self.contents.draw_text(27, 115, 640, 2, @time.to_s)
    #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

This needs to be edited...

    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

I hope I explained everything well enough. The red text is what needs to be edited (the skills icon & text)  :lol:
 

Windu

Member

punched2death":30bw14s4 said:
Only bump after 72 hours, please.
I would help, but scripting's not my area. You may need to find a line that changes the X Y positions of the Hotkey hud.

I know the line but I don't know what it's format like

example

0,10,50,35

0=left
10=top
50=width
35=height

you know what i mean if someone could just tell me that that'd be great because i guess on the actual hotkey graphics location and it worked XD
 
You'd probably get helped earlier if you weren't so bloody vague. We really don't know what you mean.

Code:
x = (count*32) + 280
Is where it counts how many skills it has already drawn and adds 280. To move how far away it is from the left border, change the 280.

Code:
self.contents.blt(x, 27, icon, Rect.new(0, 0, 200, 100))
Change the 27 to wherever you want it drawn vertically.

Is that of any help?
 

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