#===============================================================================
# XAS - Hot Key HUD
#===============================================================================
# By Mr_Wiggles
# Version 1.3
# 7/6/10
#-------------------------------------------------------------------------------
# Instructions:
# Fill in the constants bellow, paste this script above main and bellow XAS in
# your script data base. BE SURE TO SET TO THE RIGHT XAS VERSION!!
#
# Place the "Hot_Keys_HUD" picture file into your game directory
# Graphics/Pictures folder.
#-------------------------------------------------------------------------------
# Directions of Use:
# Simple just press a number key (1 - 5) when the quick skill or item menu is
# Showing.
#===============================================================================
HUD_X = 0 # X pos of HUD
HUD_Y = 0 # Y pos of HUD
XAS_HUDDISABLE_HUD_SWITCH = 1
# Set true if XAS 3.7f
# set false if XAS 3.6
XASVER_37 = true
#===============================================================================
# Numkeys Module
#===============================================================================
module Input
Numkey = {1 => 1049, 2 => 1050, 3 => 1051, 4 => 1052, 5 => 1053}
class << self
Key = Win32API.new('user32','GetAsyncKeyState',['i'],'i')
def testkey(key)
Key.call(key) & 0x01 == 1
end
alias hud_key_update update
def update
hud_key_update
@pressed = []
for key in Numkey.values
key -= 1000
@pressed.push(key) if testkey(key)
end
end
def pressed?(key)
key -= 1000
@pressed = [] if @pressed.nil?
return true if @pressed.include?(key)
return false
end
alias hud_key_press? press?
def press?(key)
return pressed?(key) if key.to_f > 1000
hud_key_press?(key)
end
end
end
#===============================================================================
# Game Player
#===============================================================================
class Game_Player < Game_Character
attr_accessor :hud_equip
attr_accessor :hud_item_id
attr_accessor :hud_skill_id
alias hot_key_hud_init initialize
def initialize
hot_key_hud_init
@hud_equip = []
@hud_item_id = []
@hud_skill_id = []
end
def equip_item_to_hud(n, item)
if item.nil?
$game_system.se_play($data_system.buzzer_se)
return
end
$game_system.se_play($data_system.decision_se)
@hud_equip[@hud_equip.index(item)] = nil if @hud_equip.include?(item)
@hud_equip[n] = item
@hud_item_id[n] = XAS::XASITEM_ID[item.id]
@hud_skill_id[n] = item.id
end
end
#===============================================================================
# Quick Skill Window
#===============================================================================
if XASVER_37 == false
class Xas_Scene_Skill
alias hud_quick_menu_main main
def main
@hot_key_hud = Hot_Key_HUD.new
hud_quick_menu_main
@hot_key_hud.dispose
end
alias hotkey_hud_qucik_menu_update update
def update
hotkey_hud_qucik_menu_update
# Hot Key num 1
if Input.press?(Input::Numkey[1])
$game_player.equip_item_to_hud(0, @skill_window.skill)
# Hot Key num 2
elsif Input.press?(Input::Numkey[2])
$game_player.equip_item_to_hud(1, @skill_window.skill)
# Hot Key num 3
elsif Input.press?(Input::Numkey[3])
$game_player.equip_item_to_hud(2, @skill_window.skill)
# Hot Key num 4
elsif Input.press?(Input::Numkey[4])
$game_player.equip_item_to_hud(3, @skill_window.skill)
# Hot Key num 5
elsif Input.press?(Input::Numkey[5])
$game_player.equip_item_to_hud(4, @skill_window.skill)
end
@hot_key_hud.update
end
end
else
class Quick_Menu_Skill
alias hud_quick_menu_main main
def main
@hot_key_hud = Hot_Key_HUD.new
hud_quick_menu_main
@hot_key_hud.dispose
end
alias hotkey_hud_qucik_menu_update update
def update
hotkey_hud_qucik_menu_update
# Hot Key num 1
if Input.press?(Input::Numkey[1])
$game_player.equip_item_to_hud(0, @skill_window.skill)
# Hot Key num 2
elsif Input.press?(Input::Numkey[2])
$game_player.equip_item_to_hud(1, @skill_window.skill)
# Hot Key num 3
elsif Input.press?(Input::Numkey[3])
$game_player.equip_item_to_hud(2, @skill_window.skill)
# Hot Key num 4
elsif Input.press?(Input::Numkey[4])
$game_player.equip_item_to_hud(3, @skill_window.skill)
# Hot Key num 5
elsif Input.press?(Input::Numkey[5])
$game_player.equip_item_to_hud(4, @skill_window.skill)
end
@hot_key_hud.update
end
end
end
#===============================================================================
# Quick Item Window
#===============================================================================
if XASVER_37 == false
class Xas_Scene_Item
alias hud_quick_menu_main main
def main
@hot_key_hud = Hot_Key_HUD.new
hud_quick_menu_main
@hot_key_hud.dispose
end
alias hud_key_update update
def update
hud_key_update
# Hot Key num 1
if Input.press?(Input::Numkey[1])
$game_player.equip_item_to_hud(0, @item_window.item)
# Hot Key num 2
elsif Input.press?(Input::Numkey[2])
$game_player.equip_item_to_hud(1, @item_window.item)
# Hot Key num 3
elsif Input.press?(Input::Numkey[3])
$game_player.equip_item_to_hud(2, @item_window.item)
# Hot Key num 4
elsif Input.press?(Input::Numkey[4])
$game_player.equip_item_to_hud(3, @item_window.item)
# Hot Key num 5
elsif Input.press?(Input::Numkey[5])
$game_player.equip_item_to_hud(4, @item_window.item)
end
@hot_key_hud.update
end
end
else
class Quick_Menu_Item
alias hud_quick_menu_main main
def main
@hot_key_hud = Hot_Key_HUD.new
hud_quick_menu_main
@hot_key_hud.dispose
end
alias hud_key_update update
def update
hud_key_update
# Hot Key num 1
if Input.press?(Input::Numkey[1])
$game_player.equip_item_to_hud(0, @item_window.item)
# Hot Key num 2
elsif Input.press?(Input::Numkey[2])
$game_player.equip_item_to_hud(1, @item_window.item)
# Hot Key num 3
elsif Input.press?(Input::Numkey[3])
$game_player.equip_item_to_hud(2, @item_window.item)
# Hot Key num 4
elsif Input.press?(Input::Numkey[4])
$game_player.equip_item_to_hud(3, @item_window.item)
# Hot Key num 5
elsif Input.press?(Input::Numkey[5])
$game_player.equip_item_to_hud(4, @item_window.item)
end
@hot_key_hud.update
end
end
end
#===============================================================================
# HUD Window
#===============================================================================
class Hot_Key_HUD < Window_Base
def initialize(x = HUD_X - 10, y = HUD_Y - 15)
super(x, y, 220, 80)
self.contents = Bitmap.new(width - 32, height - 32)
self.opacity = 0
@actor = $game_party.actors[0]
refresh
end
def refresh
self.contents.clear
bitmap = RPG::Cache.picture("Hot_Keys_HUD")
self.contents.blt(0, 0, bitmap, Rect.new(0, 0, 160, 32))
for i in 0..4
x = 32 * i + 4
item = $game_player.hud_equip[i]
next if item.nil?
if item.is_a?(RPG::Weapon)
item = nil if $game_party.weapon_number(item.id) == 0 and
@actor.weapon_id != item.id
elsif item.is_a?(RPG::Armor)
item = nil if $game_party.armor_number(item.id) == 0 and
@actor.armor1_id != item.id
elsif item.is_a?(RPG::Item)
item = nil if $game_party.item_number(item.id) == 0 or
!$game_party.item_can_use?(item.id)
end
bitmap = RPG::Cache.icon(item.icon_name)
self.contents.blt(x, 4, bitmap, Rect.new(0, 0, 24, 24))
end
end
def equip(item)
if item.nil?
$game_system.se_play($data_system.buzzer_se)
return
end
if item.is_a?(RPG::Skill)
if !@actor.skill_can_use?(item.id)
$game_system.se_play($data_system.buzzer_se)
return
end
#$game_system.xas_skill_id = item.id
@item_type = false
elsif item.is_a?(RPG::Weapon)
@actor.equip(0, item.id)
elsif item.is_a?(RPG::Armor)
@actor.equip(1, item.id)
elsif item.is_a?(RPG::Item)
item_tool_id = XAS::XASITEM_ID[item.id]
if item_tool_id != nil
unless $game_party.item_can_use?(item.id)
$game_system.se_play($data_system.buzzer_se)
return
end
#$game_system.xas_item_id = item.id
@item_type = true
end
end
#$game_system.se_play($data_system.equip_se)
end
def use_hud_item(i)
if @item_type
$game_temp.force_action_id = $game_player.hud_item_id[i]
else
$game_temp.force_action_id = $game_player.hud_skill_id[i]
end
end
def update
@actor = $game_party.actors[0]
@hot_keys = $game_player.hud_equip
refresh
return if !$scene.is_a?(Scene_Map)
if Input.press?(Input::Numkey[1])
equip($game_player.hud_equip[0])
use_hud_item(0)
elsif Input.press?(Input::Numkey[2])
equip($game_player.hud_equip[1])
use_hud_item(1)
elsif Input.press?(Input::Numkey[3])
equip($game_player.hud_equip[2])
use_hud_item(2)
elsif Input.press?(Input::Numkey[4])
equip($game_player.hud_equip[3])
use_hud_item(3)
elsif Input.press?(Input::Numkey[5])
equip($game_player.hud_equip[4])
use_hud_item(4)
end
end
end
#===============================================================================
# Scene Map
#===============================================================================
class Scene_Map
alias hot_key_hud_init main
def main
@hot_key_hud = Hot_Key_HUD.new
@hot_key_hud.visible = !$game_switches[XAS_HUDDISABLE_HUD_SWITCH]
hot_key_hud_init
@hot_key_hud.dispose
end
alias hot_key_hud_update update
def update
hot_key_hud_update
@hot_key_hud.update
@hot_key_hud.visible = !$game_switches[XAS_HUDDISABLE_HUD_SWITCH]
@hot_key_hud.update if !$game_switches[XAS_HUDDISABLE_HUD_SWITCH]
end
end