#============================================================================== # ■ RGSS3 リージョン依存セルフスイッチ切り替え Ver1.00 by 星潟 #------------------------------------------------------------------------------ # イベントに対し現在地のリージョンIDに応じて # セルフスイッチに変更を加える機能を追加します。 #============================================================================== # イベントの名前欄に指定 #------------------------------------------------------------------------------ # # # このイベントはリージョン依存セルフスイッチ切り替えタイプ1に設定します。 #------------------------------------------------------------------------------ # # # このイベントはリージョン依存セルフスイッチ切り替えタイプ2に設定します。 #============================================================================== module RegionSelfSwitchSwitching #空のハッシュを用意。(変更不要) Type = {} #設定用キーワードを指定。 Word = "RSSST" #タイプ別にセルフスイッチのキーに対応したリージョンIDを指定。 #例. #Type[1] = {"A" => 1} #この場合、セルフスイッチ切り替えタイプ1は #リージョンIDが1の時、セルフスイッチAがONになり #リージョンIDが1でなくなった時、セルフスイッチAがOFFになる。 # #Type[2] = {"A" => 1,"B" => 2} #この場合、セルフスイッチ切り替えタイプ1は #リージョンIDが1の時、セルフスイッチAがONになり #リージョンIDが1でなくなった時、セルフスイッチAがOFFになる。 #リージョンIDが2の時、セルフスイッチBがONになり #リージョンIDが2でなくなった時、セルフスイッチBがOFFになる。 Type[1] = {"A" => 1} Type[2] = {"A" => 1,"B" => 2} Type[3] = {"A" => 1,"B" => 2,"C" => 3} Type[4] = {"A" => 1,"B" => 2,"C" => 3,"D" => 4} end class RPG::Event #-------------------------------------------------------------------------- # リージョン依存セルフスイッチ変動 #-------------------------------------------------------------------------- def region_self_switch_switching_type @region_self_switch_switching_type ||= /<#{RegionSelfSwitchSwitching::Word}[::](\d+)>/ =~ name ? $1.to_i : 0 end end class Game_Event < Game_Character #-------------------------------------------------------------------------- # 自動イベントの起動判定 #-------------------------------------------------------------------------- alias check_event_trigger_auto_region_self_switch_switching check_event_trigger_auto def check_event_trigger_auto region_self_switch_switching_execute check_event_trigger_auto_region_self_switch_switching end #-------------------------------------------------------------------------- # リージョン依存セルフスイッチ変動の実行 #-------------------------------------------------------------------------- def region_self_switch_switching_execute t = RegionSelfSwitchSwitching::Type[@event.region_self_switch_switching_type] return unless t r = region_id t.each {|k,v| a = [@map_id,@id,k] s = $game_self_switches[a] f = v.is_a?(Array) ? v.include?(r) : v == r $game_self_switches[a] = f if s != f } end end