=begin ■屋根裏とかの通行判定変更 RGSS2 DAIpage■ v1.1 ●機能と使い方● ・タイルA3 と A4 の屋根部分の裏側を通れるようにします。 ・通れるのはオートタイルの最上部一列だけです。 ・有効にするタイルを行ごとに設定できます。カスタマイズで設定して下さい。 ・ニューゲームから始めないとバグる。 ●仕様● ・通行可能部分の上にB〜Eタイルを重ねる事ができません。  (エディター上で重ねてもゲーム画面には反映されません) ・通行可能部分に宝箱などを置くとエディター上では屋根の上に宝箱が  あるように見えますが、ゲーム画面では屋根の下に表示されます。 ・自動影が本来の表示よりも一段下から表示されます。これはどうしようもない。 ・タイルA3 と A4 のタイルの通行設定を○にした場合でも該当部分は  プレイヤーの上に表示されてしまします。これもどうしようもない。 ●再定義している箇所●  Game_Mapをエイリアス。 ●更新履歴● 09/04/15:ブログに置いていた物を大幅に軽量化、微調整して公開 =end #============================================================================== # ■ DAI_Back_Pass #============================================================================== module DAI_Back_Pass # 行ごとに有効設定。 A3_1 = true # A3の 1段目の屋根 A3_2 = true # A3の 2段目の屋根 A4_1 = true # A4の 1段目の天井 A4_2 = true # A4の 2段目の天井 A4_3 = true # A4の 3段目の天井 # Aタイルの適当な通行可能なタイルID。(ダミー用) PASS = 2840 #-------------------------------------------------------------------------- # ● 変更するタイルIDの配列取得 #-------------------------------------------------------------------------- def dai_back_passages_id_get dai_back_passages_base_id_get r = [] for i in 0..7 for id in @b_id r.push id + (48 * i) end end @d_bp_id = r end #-------------------------------------------------------------------------- # ● 変更するベースのタイルID取得 #-------------------------------------------------------------------------- def dai_back_passages_base_id_get r = [] r.push 4354,4355,4358,4359 if A3_1 r.push 5122,5123,5126,5127 if A3_2 r.push 5908,5909,5910,5911,5921,5922,5923,5924,5925,5930,5931,5933,5934 if A4_1 r.push 6676,6677,6678,6679,6689,6690,6691,6692,6693,6698,6699,6701,6702 if A4_2 r.push 7444,7445,7446,7447,7457,7458,7459,7460,7461,7466,7467,7469,7470 if A4_3 @b_id = r end #-------------------------------------------------------------------------- # ● マップデータの変更 #-------------------------------------------------------------------------- def dai_back_passages_data_setup dai_back_passages_id_get for x in 0...width for y in 0...height next if @map.data[x, y, 0] < 4352 if @d_bp_id.include?(@map.data[x, y, 0]) @map.data[x, y, 2], @map.data[x, y, 0] = @map.data[x, y, 0], PASS end end end end #-------------------------------------------------------------------------- # ● 通行設定の初期設定 #-------------------------------------------------------------------------- def dai_back_passages_initialize dai_back_passages_id_get for p in @d_bp_id $data_system.passages[p] = 0x10 end end end #============================================================================== # ■ Game_Map #============================================================================== class Game_Map include DAI_Back_Pass #-------------------------------------------------------------------------- # ● オブジェクト初期化 #-------------------------------------------------------------------------- alias dai_back_pass_initialize initialize def initialize dai_back_pass_initialize dai_back_passages_initialize end #-------------------------------------------------------------------------- # ● セットアップ #-------------------------------------------------------------------------- alias dai_back_pass_setup setup def setup(map_id) dai_back_pass_setup(map_id) dai_back_passages_data_setup end end