171 lines
7.5 KiB
Ruby
171 lines
7.5 KiB
Ruby
#==============================================================================
|
||
# 「メニュー項目の直接起動」(ACE) Ver.1.0
|
||
# 製作者:奈々(なな)
|
||
# へぷたなすくろーる http://heptanas.mamagoto.com/
|
||
#
|
||
# ◇使用規約
|
||
# 使用される場合はスクリプト作成者として「奈々」を明記して下さい。
|
||
# スクリプトの改変は自由に行って頂いて構いませんが
|
||
# その場合も元のスクリプトの作成者として名前を載せて下さい。
|
||
# また配布前に必ず、ブログにある利用規約を確認して下さい。
|
||
#
|
||
#------------------------------------------------------------------------------
|
||
#
|
||
# メニュー画面を介さずに、イベントコマンドから直接各画面を表示します。
|
||
# 自作イベントや、パーティメンバー以外の操作などにどうぞ。
|
||
#
|
||
# 使い方は、イベントコマンドのスクリプトで以下を入力します。
|
||
# (アクター指定が必要なものはidを数値で入力します)
|
||
#
|
||
# n7_direct_item :アイテム画面
|
||
# n7_direct_skill(id) :スキル画面
|
||
# n7_direct_equip(id) :装備画面
|
||
# n7_direct_status(id) :ステータス画面
|
||
# n7_direct_save :セーブ画面
|
||
# n7_direct_load :ロード画面
|
||
#
|
||
#==============================================================================
|
||
|
||
|
||
#==============================================================================
|
||
# ■ Game_Interpreter
|
||
#------------------------------------------------------------------------------
|
||
# イベントコマンドを実行するインタプリタです。このクラスは Game_Map クラス、
|
||
# Game_Troop クラス、Game_Event クラスの内部で使用されます。
|
||
#==============================================================================
|
||
|
||
class Game_Interpreter
|
||
#--------------------------------------------------------------------------
|
||
# ● メニュー項目の直接起動
|
||
#--------------------------------------------------------------------------
|
||
#アイテム画面
|
||
def n7_direct_item
|
||
SceneManager.call(Scene_Item)
|
||
end
|
||
#スキル画面
|
||
def n7_direct_skill(actor_id = 1)
|
||
$game_temp.direct_menu_actor_id = actor_id
|
||
SceneManager.call(Scene_Direct_Skill)
|
||
end
|
||
#装備画面
|
||
def n7_direct_equip(actor_id = 1)
|
||
$game_temp.direct_menu_actor_id = actor_id
|
||
SceneManager.call(Scene_Direct_Equip)
|
||
end
|
||
#ステータス画面
|
||
def n7_direct_status(actor_id = 1)
|
||
$game_temp.direct_menu_actor_id = actor_id
|
||
SceneManager.call(Scene_Direct_Status)
|
||
end
|
||
#セーブ画面
|
||
def n7_direct_save
|
||
SceneManager.call(Scene_Save)
|
||
end
|
||
#ロード画面
|
||
def n7_direct_load
|
||
SceneManager.call(Scene_Load)
|
||
end
|
||
end
|
||
#==============================================================================
|
||
# ■ Game_Temp
|
||
#------------------------------------------------------------------------------
|
||
# セーブデータに含まれない、一時的なデータを扱うクラスです。このクラスのイン
|
||
# スタンスは $game_temp で参照されます。
|
||
#==============================================================================
|
||
|
||
class Game_Temp
|
||
#--------------------------------------------------------------------------
|
||
# ● 公開インスタンス変数
|
||
#--------------------------------------------------------------------------
|
||
attr_accessor :direct_menu_actor_id # アクターIDの指定
|
||
#--------------------------------------------------------------------------
|
||
# ● オブジェクト初期化
|
||
#--------------------------------------------------------------------------
|
||
alias direct_menu_initialize initialize
|
||
def initialize
|
||
direct_menu_initialize
|
||
direct_menu_actor_id = 1
|
||
end
|
||
end
|
||
|
||
#以下やっていること。@actorの書き換え。pagedown,upのハンドラ削除。以上。
|
||
#競合対策するならsuperしてpagedown,upのハンドラを書き換えても良い。
|
||
#==============================================================================
|
||
# ■ Scene_Direct_Skill
|
||
#------------------------------------------------------------------------------
|
||
# 直接起動型スキル画面の処理を行うクラスです。
|
||
#==============================================================================
|
||
|
||
class Scene_Direct_Skill < Scene_Skill
|
||
#--------------------------------------------------------------------------
|
||
# ● 開始処理
|
||
#--------------------------------------------------------------------------
|
||
def start
|
||
super
|
||
@actor = $game_actors[($game_temp.direct_menu_actor_id)]
|
||
on_actor_change
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● コマンドウィンドウの作成
|
||
#--------------------------------------------------------------------------
|
||
def create_command_window
|
||
p @actor.id
|
||
wy = @help_window.height
|
||
@command_window = Window_SkillCommand.new(0, wy)
|
||
@command_window.viewport = @viewport
|
||
@command_window.help_window = @help_window
|
||
@command_window.actor = @actor
|
||
@command_window.set_handler(:skill, method(:command_skill))
|
||
@command_window.set_handler(:cancel, method(:return_scene))
|
||
end
|
||
end
|
||
|
||
#==============================================================================
|
||
# ■ Scene_Direct_Equip
|
||
#------------------------------------------------------------------------------
|
||
# 直接起動型装備画面の処理を行うクラスです。
|
||
#==============================================================================
|
||
|
||
class Scene_Direct_Equip < Scene_Equip
|
||
#--------------------------------------------------------------------------
|
||
# ● 開始処理
|
||
#--------------------------------------------------------------------------
|
||
def start
|
||
super
|
||
@actor = $game_actors[($game_temp.direct_menu_actor_id)]
|
||
on_actor_change
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● コマンドウィンドウの作成
|
||
#--------------------------------------------------------------------------
|
||
def create_command_window
|
||
wx = @status_window.width
|
||
wy = @help_window.height
|
||
ww = Graphics.width - @status_window.width
|
||
@command_window = Window_EquipCommand.new(wx, wy, ww)
|
||
@command_window.viewport = @viewport
|
||
@command_window.help_window = @help_window
|
||
@command_window.set_handler(:equip, method(:command_equip))
|
||
@command_window.set_handler(:optimize, method(:command_optimize))
|
||
@command_window.set_handler(:clear, method(:command_clear))
|
||
@command_window.set_handler(:cancel, method(:return_scene))
|
||
end
|
||
end
|
||
|
||
#==============================================================================
|
||
# ■ Scene_Direct_Status
|
||
#------------------------------------------------------------------------------
|
||
# 直接起動型ステータス画面の処理を行うクラスです。
|
||
#==============================================================================
|
||
|
||
class Scene_Direct_Status < Scene_Status
|
||
#--------------------------------------------------------------------------
|
||
# ● 開始処理
|
||
#--------------------------------------------------------------------------
|
||
def start
|
||
super
|
||
@actor = $game_actors[($game_temp.direct_menu_actor_id)]
|
||
@status_window = Window_Status.new(@actor)
|
||
@status_window.set_handler(:cancel, method(:return_scene))
|
||
end
|
||
end
|