#=========================================================================== # ◆ A1 Scripts ◆ # マップチップ置き換え(RGSS3) # # バージョン : 1.10 (2012/01/02) # 作者 : A1 # URL     : http://a1tktk.web.fc2.com/ #--------------------------------------------------------------------------- # 機能: # ・マップチップを置き換えます #--------------------------------------------------------------------------- # 更新履歴   :2011/12/31 Ver1.00 リリース #    :2012/01/02 Ver1.10 A1共通スクリプトVer3.30対応 #--------------------------------------------------------------------------- # 設置場所 #  A1共通スクリプトより下 # # 必要スクリプト # A1共通スクリプトVer3.30以上 #--------------------------------------------------------------------------- # 使い方 # イベントコマンド「注釈」に記述 # # マップチップ置き換え MapID,ToChipID,FromChipID,FromChipID,FromChipID,・・・ # # MapID :マップチップを置き換えるマップID # ToChipID :置き換える先のマップチップID # FromChipID:置き換える元のマップチップID # # 例:マップチップ置き換え 11,512,627,628,629,635,636,637 # マップID11の マップチップID 627,628,629,635,636,637を # マップチップID 512 に置き換えます #============================================================================== $imported ||= {} $imported["A1_ChangeMapChip"] = true if $imported["A1_Common_Script"] old_common_script("マップチップ置き換え", "3.30") if common_version < 3.30 #============================================================================== # ■ Game_System #------------------------------------------------------------------------------ #  システム周りのデータを扱うクラスです。セーブやメニューの禁止状態などを保存 # します。このクラスのインスタンスは $game_system で参照されます。 #============================================================================== class Game_System #-------------------------------------------------------------------------- # ☆ オブジェクト初期化 #-------------------------------------------------------------------------- alias a1_change_map_chip_gs_initialize initialize def initialize a1_change_map_chip_gs_initialize @change_map_chip = {} end #-------------------------------------------------------------------------- # ○ マップチップ変更データ #-------------------------------------------------------------------------- def change_map_chip(map_id) @change_map_chip ||= {} @change_map_chip[map_id] ||= {} return @change_map_chip[map_id] end #-------------------------------------------------------------------------- # ○ マップチップ変更データの設定 #-------------------------------------------------------------------------- def set_change_map_chip(map_id, data) @change_map_chip ||= {} @change_map_chip[map_id] = data end end #============================================================================== # ■ Game_Map #------------------------------------------------------------------------------ #  マップを扱うクラスです。スクロールや通行可能判定などの機能を持っています。 # このクラスのインスタンスは $game_map で参照されます。 #============================================================================== class Game_Map #-------------------------------------------------------------------------- # ☆ マップチップを調べるか判定する #-------------------------------------------------------------------------- alias a1_change_map_chip_search_map_chip? search_map_chip? def search_map_chip? @change_map_chip = $game_system.change_map_chip(@map_id) return a1_change_map_chip_search_map_chip? if @change_map_chip.empty? return true end #-------------------------------------------------------------------------- # ☆ マップチップに対して処理を行う #-------------------------------------------------------------------------- alias a1_change_map_chip_map_chip_proc map_chip_proc def map_chip_proc(x, y, z) a1_change_map_chip_map_chip_proc(x, y, z) id = @map.data[x, y, z] @map.data[x, y, z] = @change_map_chip[id] if @change_map_chip.has_key?(id) end #-------------------------------------------------------------------------- # ○ マップチップ変更データの設定 #-------------------------------------------------------------------------- def change_map_chip=(data) @change_map_chip = data end end #============================================================================== # ■ A1_System::CommonModule #============================================================================== class A1_System::CommonModule #-------------------------------------------------------------------------- # ☆ 注釈コマンド定義 #-------------------------------------------------------------------------- alias a1_change_map_chip_define_command define_command def define_command a1_change_map_chip_define_command @cmd_108["マップチップ置き換え"] = :change_map_chip end end #============================================================================== # ■ Game_Interpreter #------------------------------------------------------------------------------ #  イベントコマンドを実行するインタプリタです。このクラスは Game_Map クラス、 # Game_Troop クラス、Game_Event クラスの内部で使用されます。 #============================================================================== class Game_Interpreter #-------------------------------------------------------------------------- # ○ マップチップ置き換え #-------------------------------------------------------------------------- def change_map_chip(params) map_id = params[0].to_i params.delete_at(0) to_id = params[0].to_i params.delete_at(0) data = {} params.each {|id| data[id.to_i] = to_id } $game_system.set_change_map_chip(map_id, data) $game_map.change_map_chip = data $game_map.map_chip_search end end end