#============================================================================== # ■ RGSS3 マップ移動時指定セルフスイッチ削除 Ver1.00 by 星潟 #------------------------------------------------------------------------------ # 現在のマップから別のマップに場所移動する際 # 『現在の』マップ上に存在する全てのイベントに対し # 特定のセルフスイッチをOFFにする機能を追加します。 # # 当方の『場所移動前セルフスイッチOFF』のイベントコマンド版です。 # 必要なマップで必要なセルフスイッチにだけ使用出来ます。 #============================================================================== # イベントコマンドのスクリプトで設定。 # 場所移動コマンドの直前が妥当。 #------------------------------------------------------------------------------ # transfer_premap_ssd("A") # # マップ上に存在する全てのイベントのセルフスイッチAをOFFにします。 #============================================================================== class Game_Interpreter #-------------------------------------------------------------------------- # マップ移動時指定セルフスイッチ削除 #-------------------------------------------------------------------------- def transfer_premap_ssd(array = []) $game_map.transfer_premap_ssd = array end end class Game_Map attr_accessor :transfer_premap_ssd #-------------------------------------------------------------------------- # セットアップ #-------------------------------------------------------------------------- alias setup_transfer_premap_ssd setup def setup(map_id) check_transfer_premap_ssd if @map setup_transfer_premap_ssd(map_id) end #-------------------------------------------------------------------------- # マップ移動時指定セルフスイッチ削除のチェック #-------------------------------------------------------------------------- def check_transfer_premap_ssd if @transfer_premap_ssd && @events @transfer_premap_ssd = [@transfer_premap_ssd] unless @transfer_premap_ssd.is_a?(Array) @events.keys.each {|k1| @transfer_premap_ssd.each {|k2| k3 = [@map_id,k1,k2] $game_self_switches.delete_by_key(k3)}} @transfer_premap_ssd = nil end end end class Game_SelfSwitches #-------------------------------------------------------------------------- # セルフスイッチの削除を実行 #-------------------------------------------------------------------------- def delete_by_key(key) @data.delete(key) end end