#============================================================================== # ■ RGSS3 中層タイル変換 Ver1.00 by 星潟 #------------------------------------------------------------------------------ # デフォルトでは中層タイルに置けるタイルは制限されており # 特定のタイルしか配置する事が出来ません。 # しかし、このスクリプトを利用する事で # リージョンを利用して中層タイルを別IDの物に変える事が出来ます。 # # なお、タイル変更タイミングはマップのセットアップのタイミングです。 # (セットアップは別バージョンのセーブデータからのロードや # 別マップからのマップ移動時等に行われます) #============================================================================== module MiddlePositionTileChange #空のハッシュを用意。(変更不要) T = {} #タイルセットデータをロードし、インデックス分の空のハッシュを用意。(変更不要) ts = load_data("Data/Tilesets.rvdata2") ts.each_with_index {|tsd,i| T[i] = {} if tsd} #指定タイルセットでのリージョンに対応したタイルIDに変更。 #例.T[4][11] = [72,0] #タイルセットID4のマップにおける #リージョンID11の座標の中層タイルはタイルID72のタイルに変更される。 #変更後、その座標のリージョンIDは0になる。 T[4][11] = [72,0] T[4][12] = [73,0] T[4][13] = [74,0] T[4][14] = [75,0] T[4][15] = [76,0] T[4][16] = [77,0] T[4][17] = [78,0] T[4][18] = [79,0] T[4][19] = [88,0] T[4][20] = [89,0] T[4][21] = [90,0] T[4][22] = [91,0] T[4][23] = [92,0] T[4][24] = [93,0] T[4][25] = [94,0] T[4][26] = [95,0] end class Game_Map #-------------------------------------------------------------------------- # セットアップ #-------------------------------------------------------------------------- alias setup_region_tile setup def setup(map_id) setup_region_tile(map_id) h = MiddlePositionTileChange::T[@tileset_id] return unless h width.times {|x| height.times {|y| a = h[$game_map.region_id(x,y)] next unless a @map.data[x,y,1] = a[0] if a[1] @map.data[x,y,3] %= 0x100 @map.data[x,y,3] += 0x100 * a[1] end }} end end