compatible version of Mr Mo's HUD for Blizz-ABS

Started by Ralphness, April 30, 2010, 04:11:07 am

Previous topic - Next topic

Ralphness

April 30, 2010, 04:11:07 am Last Edit: April 30, 2010, 04:13:20 am by Ralphness
Can some one make a compatible version of Mr Mo's HUD for Blizzards ABS???

Blizzards ABS Rocks but i'm not that crazy about the HUD i prefer Mr Mo's HUD instead, but i when i disabled Blizzards HUD and put Mr Mo's HUD the result was NO HUD at all

so when i asked Blizzard him self about this he said that i need a scripter to edit Mr Mo's HUD to work with Blizz-ABS

I dont know if this makes any difference but Mr Mo's HUD requires SDK (i think.....not sure)

Mr Mo's HUD
Spoiler: ShowHide
#==============================================================================
# ** 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.state("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 = 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))
   bitmap = RPG::Cache.picture("HUD Time Display")
   self.contents.blt(553.5, 338.5, bitmap, Rect.new(0, 0, 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(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
   self.contents.draw_text(570, 270, 175, 175, @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
     for id in $ABS.skill_keys.values
       #Skip NIL values
       next if id == nil
       #Get skill
       skill = $data_skills[id]
       #Skip NIL values
       next if skill == nil
       #Get Icon
       icon = RPG::Cache.icon(skill.icon_name)
       x = (count*32) + 280
       self.contents.blt(x, 27, icon, Rect.new(0, 0, 200, 100))
       self.contents.draw_text(x, 33, 49, 58, skill.name.to_s)
       #Increase Count
       count += 1
     end
   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_draw main_draw
 alias mrmo_hud_main_dispose main_dispose
 alias mrmo_hud_update_graphics update_graphics
 alias mrmo_keyhud_update update
 attr_accessor:mrmo_hud
 #--------------------------------------------------------------------------
 # * Main Draw
 #--------------------------------------------------------------------------
 def main_draw
   @mrmo_hud = Window_MrMo_HUD.new
   mrmo_hud_main_draw
 end
 #--------------------------------------------------------------------------
 # * Turn HUD Show
 #--------------------------------------------------------------------------
 def hud_show
   @mrmo_hud.visible = true
 end
 #--------------------------------------------------------------------------
 # * Turn HUD Hide
 #--------------------------------------------------------------------------
 def hud_hide
   @mrmo_hud.visible = false
 end
 #--------------------------------------------------------------------------
 # * Main Dispose
 #--------------------------------------------------------------------------
 def main_dispose
   @mrmo_hud.dispose
   mrmo_hud_main_dispose
 end
 #--------------------------------------------------------------------------
 # * Update Graphics
 #--------------------------------------------------------------------------
 def update_graphics
   mrmo_hud_update_graphics
   @mrmo_hud.update
 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

Mr Mo's Minimap
Spoiler: ShowHide
#==============================================================================
# ■ Passability Mini Map
#------------------------------------------------------------------------------
# made by Selwyn // selwyn@rmxp.ch
# released the 30th of May 2006
#==============================================================================

#==============================================================================
# ■ Scene_Map
#------------------------------------------------------------------------------
# draw the mini map
# @corner is the corner you want the mini map to be displayed in.
# 1 is upper left, 2 is upper right, 3 is bottom left and 4 is bottom right
#==============================================================================

class Scene_Map
 alias main_passminimap main
 alias update_passminimap update
 alias transfer_passminimap transfer_player
 alias mrmo_hud_hide hud_hide
 alias mrmo_hud_show hud_show
 #--------------------------------------------------------------------------
 # ● initialize
 #--------------------------------------------------------------------------
 def initialize
   @corner = 4 # 1 or 2 or 3 or 4
 end
 #--------------------------------------------------------------------------
 # ● main
 #--------------------------------------------------------------------------
 def main
   @mini_map = Map_Event.new(@corner)
   main_passminimap
   @mini_map.dispose
 end
 #--------------------------------------------------------------------------
 # * Turn HUD Show
 #--------------------------------------------------------------------------
 def hud_show
   mrmo_hud_show
   @mini_map.visible = true
   $game_switches[@mini_map.ACTIVATED_ID] = true
 end
 #--------------------------------------------------------------------------
 # * Turn HUD Hide
 #--------------------------------------------------------------------------
 def hud_hide
   mrmo_hud_hide
   @mini_map.visible = false
   $game_switches[@mini_map.ACTIVATED_ID] = false
 end
 #--------------------------------------------------------------------------
 # ● update
 #--------------------------------------------------------------------------
 def update
   @mini_map.update
   update_passminimap
 end
 #--------------------------------------------------------------------------
 # ● transfer_player
 #--------------------------------------------------------------------------
 def transfer_player
   transfer_passminimap
   @mini_map.dispose
   @mini_map = Map_Event.new(@corner)
 end
end

#==============================================================================
# ■ Map_Base
#------------------------------------------------------------------------------
#  Base class for mini maps
#==============================================================================

class Map_Base < Sprite
 #--------------------------------------------------------------------------
 # ● constants and instances
 #--------------------------------------------------------------------------
 PMP_VERSION  = 6
 ACTIVATED_ID = 3 # set the switch id for the minimap display (on/off)
 attr_reader :event
 #--------------------------------------------------------------------------
 # ● initialize
 #--------------------------------------------------------------------------
 def initialize(corner)
   super(Viewport.new(16, 16, width, height))
   viewport.z = 8000
   @border = Sprite.new
   @border.x = viewport.rect.x - 6
   @border.y = viewport.rect.y - 6
   @border.z = viewport.z - 1
   @border.bitmap = RPG::Cache.picture("mapback")
   self.visible = on?
   self.opacity = 180
   case corner
   when 1
     self.x = 270
     self.y = 43
   when 2
     self.x = 640 - width - 16
     self.y = 16
   when 3
     self.x = 16
     self.y = 480 - height - 16
   when 4
     self.x = 640 - width - 16
     self.y = 480 - height - 16
   else
     self.x = 16
     self.y = 16
   end
   self.visible = on?
 end
 #--------------------------------------------------------------------------
 # ● dispose
 #--------------------------------------------------------------------------
 def dispose
   @border.dispose
   super
 end
 #--------------------------------------------------------------------------
 # ● x=
 #--------------------------------------------------------------------------
 def x=(x)
   self.viewport.rect.x = x
   @border.x = x - 6
 end
 #--------------------------------------------------------------------------
 # ● y=
 #--------------------------------------------------------------------------
 def y=(y)
   self.viewport.rect.y = y
   @border.y = y - 6
 end
 #--------------------------------------------------------------------------
 # ● visible=
 #--------------------------------------------------------------------------
 def visible=(bool)
   super
   self.viewport.visible = bool
   @border.visible = bool
 end
 #--------------------------------------------------------------------------
 # ● minimap_on?
 #--------------------------------------------------------------------------
 def on?
   return $game_switches[ACTIVATED_ID]
 end
 def ACTIVATED_ID
   return ACTIVATED_ID
 end
 #--------------------------------------------------------------------------
 # ● update
 #--------------------------------------------------------------------------
 def update
   super
   self.visible = on?
   
   if viewport.ox < display_x
     viewport.ox += 1
   elsif viewport.ox > display_x
     viewport.ox -= 1
   end
   if viewport.oy < display_y
     viewport.oy += 1
   elsif viewport.oy > display_y
     viewport.oy -= 1
   end
 end
 #--------------------------------------------------------------------------
 # ● width
 #--------------------------------------------------------------------------
 def width
   return 120
 end
 #--------------------------------------------------------------------------
 # ● height
 #--------------------------------------------------------------------------
 def height
   return 90
 end
 #--------------------------------------------------------------------------
 # ● display_x
 #--------------------------------------------------------------------------
 def display_x
   return $game_map.display_x * 3 / 64
 end
 #--------------------------------------------------------------------------
 # ● display_y
 #--------------------------------------------------------------------------
 def display_y
   return $game_map.display_y * 3 / 64
 end
end

#==============================================================================
# ■ Map_Passability
#------------------------------------------------------------------------------
#   draws the mini map
#
#  thanks to Fanha Giang (aka fanha99) for the autotile drawing method
#==============================================================================

class Map_Passability < Map_Base
 #--------------------------------------------------------------------------
 # ● constants
 #--------------------------------------------------------------------------
 INDEX  =
 [
 26, 27, 32, 33,    4, 27, 32, 33,   26,  5, 32, 33,    4,  5, 32, 33,    
 26, 27, 32, 11,    4, 27, 32, 11,   26,  5, 32, 11,    4,  5, 32, 11,    
 26, 27, 10, 33,    4, 27, 10, 33,   26,  5, 10, 33,    4,  5, 10, 33,
 26, 27, 10, 11,    4, 27, 10, 11,   26,  5, 10, 11,    4,  5, 10, 11,  
 24, 25, 30, 31,   24,  5, 30, 31,   24, 25, 30, 11,   24,  5, 30, 11,  
 14, 15, 20, 21,   14, 15, 20, 11,   14, 15, 10, 21,   14, 15, 10, 11,
 28, 29, 34, 35,   28, 29, 10, 35,    4, 29, 34, 35,    4, 29, 10, 35,
 38, 39, 44, 45,    4, 39, 44, 45,   38,  5, 44, 45,    4,  5, 44, 45,
 24, 29, 30, 35,   14, 15, 44, 45,   12, 13, 18, 19,   12, 13, 18, 11,
 16, 17, 22, 23,   16, 17, 10, 23,   40, 41, 46, 47,    4, 41, 46, 47,
 36, 37, 42, 43,   36,  5, 42, 43,   12, 17, 18, 23,   12, 13, 42, 43,
 36, 41, 42, 47,   16, 17, 46, 47,   12, 17, 42, 47,    0,  1,  6,  7
 ]
 X = [0, 1, 0, 1]
 Y = [0, 0, 1, 1]
 #--------------------------------------------------------------------------
 # ● initialize
 #--------------------------------------------------------------------------
 def initialize(corner)
   super(corner)
   @autotile = RPG::Cache.picture("minimap_tiles")
   setup()
 end
 #--------------------------------------------------------------------------
 # ● setup
 #--------------------------------------------------------------------------
 def setup()
   @map = load_data(sprintf("Data/Map%03d.rxdata", $game_map.map_id))
   tileset = $data_tilesets[@map.tileset_id]
   @passages = tileset.passages
   @priorities = tileset.priorities
   redefine_tiles
   refresh
 end
 #--------------------------------------------------------------------------
 # ● pass
 #--------------------------------------------------------------------------
 def pass(tile_id)
   return 15 if tile_id == nil
   return @passages[tile_id] != nil ? @passages[tile_id] : 15
 end
 #--------------------------------------------------------------------------
 # ● passable
 #--------------------------------------------------------------------------
 def passable(tile_id)
   return pass(tile_id) < 15
 end
 #--------------------------------------------------------------------------
 # ● redefine_tile
 #--------------------------------------------------------------------------
 def redefine_tiles
   width = @map.width
   height = @map.height
   map = RPG::Map.new(width, height)
   map.data = @map.data.dup
   for x in 0...width
     for y in 0...height
       for level in [1, 2]
         id = @map.data[x, y, level]
         if id != 0 and @priorities[id] == 0
           @map.data[x, y, 0] = id
           @passages[@map.data[x, y, 0]] = @passages[id]
         end
       end
     end
   end
   for x in 0...width
     for y in 0...height
       for level in [0]
       tile = @map.data[x, y, level]
       u = @map.data[x,   y-1, level]
       l = @map.data[x-1, y,   level]
       r = @map.data[x+1, y,   level]
       d = @map.data[x,   y+1, level]
       if !passable(tile)
         map.data[x, y] = 0
       else
         if tile == 0
           map.data[x, y, level] = 0
           next
         end
         if pass(tile) < 15
           if !passable(u) and !passable(l) and !passable(r) and !passable(d)
             map.data[x, y, level] = 0
           elsif !passable(u) and !passable(l) and !passable(r) and passable(d)
             map.data[x, y, level] = 90
           elsif !passable(u) and !passable(l) and !passable(d) and passable(r)
             map.data[x, y, level] = 91
           elsif !passable(u) and !passable(r) and !passable(d) and passable(l)
             map.data[x, y, level] = 93
           elsif !passable(l) and !passable(r) and !passable(d) and passable(u)
             map.data[x, y, level] = 92
           elsif !passable(u) and !passable(d) and passable(r) and passable(l)
             map.data[x, y, level] = 81
           elsif !passable(u) and !passable(r) and passable(d) and passable(l)
             map.data[x, y, level] = 84
           elsif !passable(u) and !passable(l) and passable(d) and passable(r)
             map.data[x, y, level] = 82
           elsif !passable(d) and !passable(r) and passable(l) and passable(u)
             map.data[x, y, level] = 86
           elsif !passable(d) and !passable(l) and passable(r) and passable(u)
             map.data[x, y, level] = 88
           elsif !passable(r) and !passable(l) and passable(d) and passable(u)
             map.data[x, y, level] = 80
           elsif !passable(u) and passable(d) and passable(r) and passable(l)
             map.data[x, y, level] = 68
           elsif !passable(d) and passable(u) and passable(r) and passable(l)
             map.data[x, y, level] = 76
           elsif !passable(r) and passable(d) and passable(u) and passable(l)
             map.data[x, y, level] = 72
           elsif !passable(l) and passable(d) and passable(u) and passable(r)
             map.data[x, y, level] = 64
           else
             map.data[x, y, level] = 48
           end
         else
           map.data[x, y, level] = 0
         end
       end
       end
     end
   end
   @map = map.dup
   map = nil
 end
 #--------------------------------------------------------------------------
 # ● refresh
 #--------------------------------------------------------------------------
 def refresh
   self.visible = false
   self.bitmap = Bitmap.new(@map.width * 6, @map.height * 6)
   bitmap = Bitmap.new(@map.width * 6, @map.height * 6)
   rect1 = Rect.new(6, 0, 6, 6)
   for y in 0...@map.height
     for x in 0...@map.width
       for level in [0]
         tile_id = @map.data[x, y, level]
         next if tile_id == 0
         id = tile_id / 48 - 1
         tile_id %= 48
         for g in 0..3
           h = 4 * tile_id + g
           y1 = INDEX[h] / 6
           x1 = INDEX[h] % 6
           rect2 = Rect.new(x1 * 3, y1 * 3, 3, 3)
           bitmap.blt(x * 6 + X[g] *  3, y * 6 + Y[g] * 3, @autotile, rect2)
         end
       end
     end
   end
   d_rect = Rect.new(0, 0, @map.width * 6, @map.height * 6)
   s_rect = Rect.new(0, 0, bitmap.width, bitmap.height)
   self.bitmap.stretch_blt(d_rect, bitmap, s_rect)
   self.viewport.ox = display_x
   self.viewport.oy = display_y
   bitmap.clear
   bitmap.dispose
 end
end

#==============================================================================
# ■ Map_Event
#------------------------------------------------------------------------------
# * draw the events and hero position
#==============================================================================
class Map_Event < Map_Passability
 #--------------------------------------------------------------------------
 # ● initialize
 #--------------------------------------------------------------------------
 def initialize(corner = 4)
   super(corner)
   @dots = []
   @player = Sprite.new(self.viewport)
   @player.bitmap = RPG::Cache.picture("mm cursors")
   @player.src_rect = Rect.new(0, 0, 15, 15)
   @player.z = self.z + 3
   @events = {}  
   @page = {}
 end
 #--------------------------------------------------------------------------
 # ● dispose
 #--------------------------------------------------------------------------
 def dispose
   @player.dispose
   for event in @events.values
     next if event == nil or event.disposed?
     event.dispose
   end
   super
 end
 #--------------------------------------------------------------------------
 # ● update
 #--------------------------------------------------------------------------
 def update
   super
   #Update Events
   for key in $game_map.events.keys
     event = $game_map.events[key]
     if @events[key] != nil and (event.erased or event.page != @page[key])
       @events[key].dispose
       @events.delete(key)
       @page.delete(key)
       next
     elsif @events[key] != nil
       next
     end
     next if event.list == nil
     for i in 0...event.list.size
       next if event.list[i].code != 108
       if event.list[i].parameters[0].include?("event")
         @events[key] = Sprite.new(self.viewport)
         @events[key].z = self.z + 2
         @events[key].bitmap = RPG::Cache.picture("event")
         @page[key] = event.page
       elsif event.list[i].parameters[0].include?("enemy")
         @events[key] = Sprite.new(self.viewport)
         @events[key].z = self.z + 2
         @events[key].bitmap = RPG::Cache.picture("enemy")
         @page[key] = event.page
       elsif event.list[i].parameters[0].include?("ABS")
         @events[key] = Sprite.new(self.viewport)
         @events[key].z = self.z + 2
         @events[key].bitmap = RPG::Cache.picture("enemy")
         @page[key] = event.page
       elsif event.list[i].parameters[0].include?("teleport")
         @events[key] = Sprite.new(self.viewport)
         @events[key].z = self.z + 2
         @events[key].bitmap = RPG::Cache.picture("teleport")
         @page[key] = event.page
       elsif event.list[i].parameters[0].include?("chest")
         @events[key] = Sprite.new(self.viewport)
         @events[key].z = self.z + 2
         @events[key].bitmap = RPG::Cache.picture("chest")
         @page[key] = event.page
       elsif event.list[i].parameters[0].include?("npc")
         @events[key] = Sprite.new(self.viewport)
         @events[key].z = self.z + 2
         @events[key].bitmap = RPG::Cache.picture("npc")
         @page[key] = event.page
       elsif event.list[i].parameters[0].include?("savepoint")
         @events[key] = Sprite.new(self.viewport)
         @events[key].z = self.z + 2
         @events[key].bitmap = RPG::Cache.picture("savepoint")
         @page[key] = event.page
       end
     end
   end
   @player.x = $game_player.real_x * 3 / 64 - 5
   @player.y = $game_player.real_y * 3 / 64 - 4
   @player.src_rect.x = ($game_player.direction / 2 - 1) * 15
   for key in @events.keys
     event = @events[key]
     next if event == nil or event.disposed?
     mapevent = $game_map.events[key]
     event.x = mapevent.real_x * 3 / 64
     event.y = mapevent.real_y * 3 / 64
   end
 end
end
#============================================================================
# *  Game Event
#============================================================================
class Game_Event < Game_Character
 attr_reader   :page
end

I'm not sure if this minimap is made by Mr Mo

Link to Mr Mo's demo (includes Mr Mo's HUD and ABS):
http://www.rmxpunlimited.net/forums/files/download/75-mrmos-abs-v45/?s=491bf715cc28512806d3be3edeb65e2a