sacred-ritual-academy/Scripts/_.23.rb
2025-03-18 19:45:34 -05:00

171 lines
7.5 KiB
Ruby
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#==============================================================================
# 「メニュー項目の直接起動」(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