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