#==============================================================================
# ITEM HUD by Ayene
# na podstawie MOG HUD Equip by Moghunter
#==============================================================================
module MOG
module Ayene
# Przełącznik, kontrolujący wyświetlanie HUD
EQPMAPVIS = 5
# położenie HUD:
# 0 - lewy górny róg
# 1 - prawy górny róg
# 2 - lewy dolny róg
# 3 - prawy dolny róg
# 4 - ręczne
EQPMAPPO = 2
# Położenie HUD (gdy wybrano ręczne) - współrzędne x i y
EQPMAPX = 210 # współrzędna x
EQPMAPY = 290 # współrzędna y
# ID przedmiotów, które będą wyświetlane w pasku
ITEM_IDS = [1, 2, 3, 4, 13, 17, 19, 24]
# Wielkość dopasowana do liczby przedmiotów
FIT_HUD = true
# Liczba slotów na przedmioty, gdy wybrano false
SLOTS = 10
end
end
#==============================================================================
# Window_Base
#==============================================================================
class Window_Base < Window
def draw_equip_map(item, x, y)
if item == nil
return
end
draw_icon(item.icon_index , x + 3 , y + 3)
number = $game_party.item_number(item)
self.contents.font.color = normal_color
self.contents.font.size = 16
self.contents.draw_text(x + 4, y + 3, 24, 32, number.to_s, 2)
end
def draw_mequip(x, y)
mequip = Cache.picture("sqequip")
cw = mequip.width
ch = mequip.height
src_rect = Rect.new(0, 0, cw, ch)
@data = []
for item in $game_party.items
@data.push(item) if item.is_a?(RPG::Item) and MOG::Ayene::ITEM_IDS.include?(item.id)
end
if MOG::Ayene::FIT_HUD
for i in 0...@data.size
self.contents.blt(32 * i, y, mequip, src_rect)
end
else
for i in 0...MOG::Ayene::SLOTS
self.contents.blt(32 * i, y, mequip, src_rect)
end
end
end
end
#==============================================================================
# Window_Equip_Map
#==============================================================================
class Window_Equipmap < Window_Base
def initialize(width)
super(0, 0, 222 + width, 100)
self.opacity = 0
case MOG::Ayene::EQPMAPPO
when 0
self.x = 0
self.y = 0
when 1
self.x = 512 - width
self.y = 0
when 2
self.x = 0
self.y = 360
when 3
self.x = 734 - width
self.y = 360
when 4
self.x = MOG::Ayene::EQPMAPX
self.y = MOG::Ayene::EQPMAPY
end
refresh
end
def refresh
@data = []
for item in $game_party.items
@data.push(item) if item.is_a?(RPG::Item) and MOG::Ayene::ITEM_IDS.include?(item.id)
end
@item_max = @data.size
create_contents
draw_mequip(0, 0)
for i in 0...@item_max
draw_equip_map(@data[i], 32 * i, 0)
end
end
end
#==============================================================================
# Scene_Map
#==============================================================================
class Scene_Map
alias ayene_start start
def start
create_hud
@eqmap.visible = !$game_switches[MOG::Ayene::EQPMAPVIS]
ayene_start
end
def create_hud
@eqmap = Window_Equipmap.new(hud_size?)
end
def hud_size?
@data = []
for item in $game_party.items
@data.push(item) if item.is_a?(RPG::Item) and MOG::Ayene::ITEM_IDS.include?(item.id)
end
return (MOG::Ayene::FIT_HUD ? @data.size : MOG::Ayene::SLOTS) * 32
end
alias ayene_terminate terminate
def terminate
ayene_terminate
@eqmap.dispose unless @eqmap.nil?
end
alias mog8_update update
def update
@eqmap.visible = !$game_switches[MOG::Ayene::EQPMAPVIS]
if $eref
@eqmap.dispose
create_hud
$eref = false
end
mog8_update
end
end
#==============================================================================
# Game_Map
#==============================================================================
class Game_Map
attr_accessor :eref
end
class Game_Interpreter
def eref
$eref = true
end
alias mog126ref command_126
def command_126
eref
return mog126ref
end
end