=begin ◆概要 簡易的にスキルやアイテムの単体/全体切り替えができるようになります。 ◆機能 ・スキルやアイテムのメモ欄に<全体化>と記入することにより、そのスキルやアイテムの 対象を選択する際にL/Rで単体/全体を切り替えられるようになります。 ・全体化した時のスキル/アイテムはIDが一つ下(ID+1)のスキル/アイテムになります。 ID21のスキルを全体化→ID22のスキルを使用できる ということです。 ◆仕様 ・スキル表示は変わらないので消費MPを変えるのは無謀な試みだと思う。 ・アイテムにも使えるって書いたけど、実際使えない機能であることは明白。 ◆使用上の注意 ・★……エイリアス ○……新規定義 =end class RPG::UsableItem #-------------------------------------------------------------------------- # ○ パラメータ取得 #-------------------------------------------------------------------------- def all_select return @all_select if !@all_select.nil? @all_select = (note =~ /<全体化>/); @all_select end end #============================================================================== # ■ Game_Action #============================================================================== class Game_Action #-------------------------------------------------------------------------- # ○ 全体化 #-------------------------------------------------------------------------- def all_select(value = true) id = @item.object.id + (value ? 1 : -1) @item.is_skill? ? set_skill(id) : set_item(id) end end #============================================================================== # ■ Window_MenuActor #============================================================================== class Window_MenuActor < Window_MenuStatus #-------------------------------------------------------------------------- # ● オブジェクト初期化 #-------------------------------------------------------------------------- def initialize super(0, 0) self.visible = false set_handler(:pagedown, method(:all_select)) set_handler(:pageup, method(:all_select)) end #-------------------------------------------------------------------------- # ● アイテムのためのカーソル位置設定 #-------------------------------------------------------------------------- alias select_for_item_as select_for_item def select_for_item(item) select_for_item_as(item); @item_as = item end #-------------------------------------------------------------------------- # ● キャンセルハンドラの呼び出し #-------------------------------------------------------------------------- def call_cancel_handler; super; @cursor_all = false; end #-------------------------------------------------------------------------- # ● L ボタン(PageUp)が押されたときの処理 #-------------------------------------------------------------------------- def process_pageup super if @item_as && @item_as.all_select end #-------------------------------------------------------------------------- # ● R ボタン(PageDown)が押されたときの処理 #-------------------------------------------------------------------------- def process_pagedown super if @item_as && @item_as.all_select end #-------------------------------------------------------------------------- # ○ 全選択処理 #-------------------------------------------------------------------------- def all_select @cursor_all ^= true; activate end end #============================================================================== # ■ Window_BattleActor #============================================================================== class Window_BattleActor < Window_BattleStatus #-------------------------------------------------------------------------- # ● 決定ハンドラの呼び出し #-------------------------------------------------------------------------- def call_ok_handler; super; @cursor_all = false; end #-------------------------------------------------------------------------- # ● キャンセルハンドラの呼び出し #-------------------------------------------------------------------------- def call_cancel_handler; super; @cursor_all = false; end #-------------------------------------------------------------------------- # ● L ボタン(PageUp)が押されたときの処理 #-------------------------------------------------------------------------- def process_pageup super if BattleManager.actor.current_action.item.all_select || @cursor_all end #-------------------------------------------------------------------------- # ● R ボタン(PageDown)が押されたときの処理 #-------------------------------------------------------------------------- def process_pagedown super if BattleManager.actor.current_action.item.all_select || @cursor_all end end #============================================================================== # ■ Window_BattleEnemy #============================================================================== class Window_BattleEnemy < Window_Selectable #-------------------------------------------------------------------------- # ● 決定ハンドラの呼び出し #-------------------------------------------------------------------------- def call_ok_handler; super; @cursor_all = false; end #-------------------------------------------------------------------------- # ● キャンセルハンドラの呼び出し #-------------------------------------------------------------------------- def call_cancel_handler; super; @cursor_all = false; end #-------------------------------------------------------------------------- # ● L ボタン(PageUp)が押されたときの処理 #-------------------------------------------------------------------------- def process_pageup super if BattleManager.actor.current_action.item.all_select || @cursor_all end #-------------------------------------------------------------------------- # ● R ボタン(PageDown)が押されたときの処理 #-------------------------------------------------------------------------- def process_pagedown super if BattleManager.actor.current_action.item.all_select || @cursor_all end end #============================================================================== # ■ Scene_ItemBase #============================================================================== class Scene_ItemBase < Scene_MenuBase #-------------------------------------------------------------------------- # ● 現在選択されているアイテムの取得 #-------------------------------------------------------------------------- alias item_as item def item cage = item_as.is_a?(RPG::Skill) ? $data_skills : $data_items item_as.all_select && @actor_window.cursor_all ? cage[item_as.id + 1] : item_as end end #============================================================================== # ■ Scene_Battle #============================================================================== class Scene_Battle < Scene_Base #-------------------------------------------------------------------------- # ★ アクターウィンドウの作成 #-------------------------------------------------------------------------- alias create_actor_window_as create_actor_window def create_actor_window create_actor_window_as @actor_window.set_handler(:pageup, method(:all_select_aw)) @actor_window.set_handler(:pagedown, method(:all_select_aw)) end #-------------------------------------------------------------------------- # ★ 敵キャラウィンドウの作成 #-------------------------------------------------------------------------- alias create_enemy_window_as create_enemy_window def create_enemy_window create_enemy_window_as @enemy_window.set_handler(:pageup, method(:all_select_ew)) @enemy_window.set_handler(:pagedown, method(:all_select_ew)) end #-------------------------------------------------------------------------- # ○ 全選択処理 #-------------------------------------------------------------------------- def all_select_aw @actor_window.cursor_all ^= true; @actor_window.activate BattleManager.actor.current_action.all_select(@actor_window.cursor_all) end def all_select_ew @enemy_window.cursor_all ^= true; @enemy_window.activate BattleManager.actor.current_action.all_select(@enemy_window.cursor_all) end end