=begin ▼ セルフスイッチの自動OFF ver. 1.1 RPGツクールVXAce用スクリプト 制作 : 木星ペンギン URL : http://woodpenguin.blog.fc2.com/ ------------------------------------------------------------------------------ 概要 □ 場所移動でマップが切り替わった時に、設定したセルフスイッチ(とセルフ変数)を  自動的にOFFにします。 ------------------------------------------------------------------------------ 初期化するセルフスイッチ(変数)を直接指定する場合 ・イベントコマンドのスクリプトで、↓のスクリプトを入れて実行すると  そのマップ ID のセルフスイッチが OFF になります。 $game_self_switches.delete(マップID, セルフスイッチの配列) ・セルフ変数の場合は、↓のスクリプトでセルフ変数が 0 になります。 $game_variables.delete(マップID, 変数番号の配列) =end module Wooden module AutoOFF #////////////////////////////////////////////////////////////////////////////// # # 設定項目 # #////////////////////////////////////////////////////////////////////////////// #-------------------------------------------------------------------------- # ● OFF にするセルフスイッチの配列 #-------------------------------------------------------------------------- SelfSwitches = ["A", "B", "C", "D"] #-------------------------------------------------------------------------- # ● OFF にするセルフ変数の配列 # 当然ですが「セルフ変数の追加」スクリプトが入っていないと意味ありません。 #-------------------------------------------------------------------------- SelfVariables = [] #-------------------------------------------------------------------------- # ● セルフスイッチ自動 OFF の例外マップ # 例:マップ ID 2 では、セルフスイッチの A だけを OFF に、 # マップ ID 3 では、セルフスイッチの B と C を OFF にしたい場合 # # { 2 => ["A"], # 3 => ["B", "C"] } # # と設定してください。 #-------------------------------------------------------------------------- Ex_SelfSwitches = {} end end #////////////////////////////////////////////////////////////////////////////// # # 以降、変更する必要なし # #////////////////////////////////////////////////////////////////////////////// #============================================================================== # ■ Game_Variables #============================================================================== class Game_Variables #-------------------------------------------------------------------------- # ● セルフ変数の削除 #-------------------------------------------------------------------------- def delete(map_id, keys) return unless @self_variables @self_variables.reject! {|key,| key[0] == map_id && keys.include?(key[2]) } end end #============================================================================== # ■ Game_SelfSwitches #============================================================================== class Game_SelfSwitches #-------------------------------------------------------------------------- # ● セルフスイッチの削除 #-------------------------------------------------------------------------- def delete(map_id, keys) @data.reject! {|key,| key[0] == map_id && keys.include?(key[2]) } end end #============================================================================== # ■ Game_Map #============================================================================== class Game_Map #-------------------------------------------------------------------------- # ● モジュール #-------------------------------------------------------------------------- include Wooden #-------------------------------------------------------------------------- # ◯ セットアップ #-------------------------------------------------------------------------- alias _wooden_autooff_setup setup def setup(map_id) if @map_id != map_id if AutoOFF::Ex_SelfSwitches.include?(@map_id) $game_self_switches.delete(@map_id, AutoOFF::Ex_SelfSwitches[@map_id]) else $game_self_switches.delete(@map_id, AutoOFF::SelfSwitches) end $game_variables.delete(@map_id, AutoOFF::SelfVariables) end _wooden_autooff_setup(map_id) end end