#----------------------------------------------------------------------------
#マップにウインドウ表示
#----------------------------------------------------------------------------
module MARU_MAP_WINDOW
#★設定項目
SWITCH = 1 #マップウインドウ表示に使用するスイッチ番号
#該当スイッチONで表示、OFFで非表示
ACTOR = 21 #ステータスを表示するアクターIDを参照する変数の番号
#変数が0の時はアクターID1番のステータスを表示
NAME = "満腹度" #追加ウインドウに表示する名前
VALUE = 191 #満腹度(仮)の値を操作する変数の番号
ASWITCH = 1 #追加ウインドウを表示するスイッチ
#(上のスイッチと同じにする事で同時に管理可能)
#★設定終わり
end
#==============================================================================
# ■ Scene_Map
#------------------------------------------------------------------------------
# マップ画面の処理を行うクラスです。
#==============================================================================
class Scene_Map < Scene_Base
#--------------------------------------------------------------------------
# ● 全ウィンドウの作成
#--------------------------------------------------------------------------
alias ma__create_all_windows create_all_windows
def create_all_windows
ma__create_all_windows
create_status_windows
end
#--------------------------------------------------------------------------
# ● 表示ウインドウの作成
#--------------------------------------------------------------------------
def create_status_windows
@actorsta = $game_actors[$game_variables[MARU_MAP_WINDOW::ACTOR]]
create_hpmp_window
create_extra_window
end
#--------------------------------------------------------------------------
# ● HP・MPウインドウの作成
#--------------------------------------------------------------------------
def create_hpmp_window
@hpmp_window = Window_Status_e.new
end
#--------------------------------------------------------------------------
# ● 経験値ウインドウの作成
#--------------------------------------------------------------------------
def create_extra_window
@ext_window = Window_Extra.new
@ext_window.width = @ext_window.width
end
#--------------------------------------------------------------------------
# ● フレーム更新
#--------------------------------------------------------------------------
alias ma_update update
def update
ma_update
@hpmp_window.update
@ext_window.update
end
end
#==============================================================================
# ■ Window_Status_e
#------------------------------------------------------------------------------
# HPとMPを表示するウィンドウです。
#==============================================================================
class Window_Status_e < Window_Selectable
#--------------------------------------------------------------------------
# ● オブジェクト初期化
#--------------------------------------------------------------------------
def initialize
super(96,0,148,fitting_height(2))
refresh
end
#--------------------------------------------------------------------------
# ● ウィンドウ幅の取得
#--------------------------------------------------------------------------
def window_width
return 140
end
#--------------------------------------------------------------------------
# ● ウインドウの更新
#--------------------------------------------------------------------------
def update
super
if $game_switches[MARU_MAP_WINDOW::SWITCH] == false
self.visible = false
return
else
self.visible = true
end
hpp = @actorsta.hp
mpp = @actorsta.mp
mhpp = @actorsta.mhp
mmpp = @actorsta.mmp
idd = $game_variables[MARU_MAP_WINDOW::ACTOR]
if hpp != @last_hp or mpp != @last_mp or idd != @last_id or
mhpp != @last_mhp or mmpp != @last_mmp
refresh
end
end
#--------------------------------------------------------------------------
# ● リフレッシュ
#--------------------------------------------------------------------------
def refresh
contents.clear
@actorsta = $game_actors[$game_variables[MARU_MAP_WINDOW::ACTOR]]
draw_actor_hp(@actorsta, 0, 0)
draw_actor_mp(@actorsta, 0, 24)
@last_hp = @actorsta.hp
@last_mhp = @actorsta.mhp
@last_mp = @actorsta.mp
@last_mmp = @actorsta.mmp
@last_id = $game_variables[MARU_MAP_WINDOW::ACTOR]
end
end
#==============================================================================
# ■ Window_Extraa
#------------------------------------------------------------------------------
# 追加項目を表示するウィンドウです。
#==============================================================================
class Window_Extra < Window_Base
#--------------------------------------------------------------------------
# ● オブジェクト初期化
#--------------------------------------------------------------------------
def initialize
super(0, 72, window_width, fitting_height(1))
refresh
end
#--------------------------------------------------------------------------
# ● ウィンドウ幅の取得
#--------------------------------------------------------------------------
def window_width
return 140
end
#--------------------------------------------------------------------------
# ● 経験値ウインドウの作成
#--------------------------------------------------------------------------
def refresh
contents.clear
o_text = MARU_MAP_WINDOW::NAME
value = $game_variables[MARU_MAP_WINDOW::VALUE]
change_color(system_color)
draw_text(0, 0, 140, line_height, o_text)
change_color(normal_color)
draw_text(0, 0, window_width - 24, line_height, value.to_s, 2)
@last_value = $game_variables[MARU_MAP_WINDOW::VALUE]
end
#--------------------------------------------------------------------------
# ● ウインドウの更新
#--------------------------------------------------------------------------
def update
super
if $game_switches[MARU_MAP_WINDOW::ASWITCH] == false
self.visible = false
return
else
self.visible = true
end
val = $game_variables[MARU_MAP_WINDOW::VALUE]
if val != @last_value
refresh
end
end
end