#============================================================================== # ■ RGSS3 メニューカスタマイズ オプション # スイッチ依存で指定名のメニューコマンド削除/使用不可 Ver1.00 by 星潟 #------------------------------------------------------------------------------ # 指定した名前のメニューコマンドをスイッチ依存で # 削除もしくは使用不可にします。 #============================================================================== module DeleteMenuCommand #空のハッシュを用意。(変更不要) S1 = {} S2 = {} #削除するコマンドの名前とスイッチIDを指定。 #指定したコマンドは特定のスイッチの状態に応じて削除される。 #例1.S1["ステータス"] = [0,true] #ステータスという名のメニューコマンドは常に削除される。 #例2.S1["スキル"] = [1,true] #スキルという名のスイッチID1がONの場合は表示される。 #(OFFの場合は表示されない) S1["ステータス"] = [0,true] S1["スキル"] = [1,true] #使用不可にするコマンドの名前とスイッチIDを指定。 #指定したコマンドは特定のスイッチの状態に応じて使用できなくなる。 #例3.S2["並び替え"] = [2,false] #並び替えという名のメニューコマンドはスイッチID2がOFFの場合のみ選択できる。 #例4.S2["セーブ"] = [3,true] #セーブという名のメニューコマンドはスイッチID3がONの場合のみ選択できる。 S2["並び替え"] = [2,false] S2["セーブ"] = [3,true] end class Window_MenuCommand < Window_Command #-------------------------------------------------------------------------- # コマンドリストの作成 #-------------------------------------------------------------------------- alias make_command_list_delete_menu_command make_command_list def make_command_list make_command_list_delete_menu_command @list.delete_if {|h| v = DeleteMenuCommand::S1[h[:name]] f = v ? (v[0] == 0 ? true : ($game_switches[v[0]] ? false : true)) : false v && f == v[1]} @list.each {|h| v = DeleteMenuCommand::S2[h[:name]] f = v ? (v[0] == 0 ? true : ($game_switches[v[0]] ? false : true)) : false h[:enabled] = false if v && f == v[1]} end end