#============================================================================== # ■ XP-RGSS-39 地形別戦闘背景 [Ver.1.1.0] by Claimh #------------------------------------------------------------------------------ # 戦闘が発生した場所によって戦闘背景を変えます。 #============================================================================== module Map_BattleBack TAG_BB = [] AREA_BB = [] BB_TYPE_TAG = 1 # タグ式 BB_TYPE_AREA = 2 # エリア式 #============================================================================== # □ カスタマイズSTART #============================================================================== # 地形別戦闘背景を有効にするスイッチ # (このスイッチがOFFのときに戦闘背景を変えます) BB_SW_ID = 1 # マップごとに適応する地形別バトルバックのタイプ # MAP_BB_TYPE = { # マップID => バトルバックのタイプ # } # ※バトルバックのタイプ # BB_TYPE_TAG …… タグ式 # BB_TYPE_AREA …… エリア式 MAP_BB_TYPE = { 1 => BB_TYPE_TAG, 2 => BB_TYPE_AREA, 3 => BB_TYPE_AREA, 4 => BB_TYPE_TAG } #++++++++++++++++++++++++++# # タグ式バトルバック設定 # #++++++++++++++++++++++++++# # マップ&地形タグによる戦闘背景指定 # TAG_BB[マップID] = { # 地形タグ => 戦闘背景のファイル名(Graphics/BattleBack内) # } TAG_BB[1] = { 1 => "006-Desert01", 2 => "002-Woods01" } #++++++++++++++++++++++++++++# # エリア式バトルバック設定 # #++++++++++++++++++++++++++++# # エリア指定によるバトルバックの指定 # AREA_BB[マップID] = [ # [[エリア設定],戦闘背景のファイル名(Graphics/BattleBack内)], # ] # [エリア設定] ⇒ [始点X位置, 始点Y位置, 終点X位置, 終点Y位置] # 始点→┌───────┐ # │ エリア │ # └───────┘←終点 AREA_BB[2] = [ # マップID:2の設定 [[ 0, 0, 7, 5],"006-Desert01"], # エリア[始点(0,0)〜終点(7,5)] の設定 [[ 0, 6,10,14],"002-Woods01"], # エリア[始点(0,6)〜終点(10,14)] の設定 [[ 8, 0,19, 5],"006-Desert01"], # エリア[始点(8,0)〜終点(19,5)] の設定 [[11, 6,19,14],"006-Desert01"] # エリア[始点(11,6)〜終点(19,14)] の設定 ] AREA_BB[3] = [ # マップID:3の設定 [[ 0, 0, 7, 5],"006-Desert01"], # エリア[始点(0,0)〜終点(7,5)] の設定 [[ 0, 6,10,14],"002-Woods01"], # エリア[始点(0,6)〜終点(10,14)] の設定 [[ 8, 0,19, 5],"006-Desert01"], # エリア[始点(8,0)〜終点(19,5)] の設定 [[11, 6,19,14],"006-Desert01"] # エリア[始点(11,6)〜終点(19,14)] の設定 ] #============================================================================== # □ カスタマイズEND #============================================================================== module_function #-------------------------------------------------------------------------- # ● 背景取得 #-------------------------------------------------------------------------- def get_battle_back(map_id, tag_id, x, y) case MAP_BB_TYPE[map_id] when BB_TYPE_TAG; return tag_battleback(map_id, tag_id) when BB_TYPE_AREA; return area_battleback(map_id, x, y) else; return nil end end #-------------------------------------------------------------------------- # ● タグ式 #-------------------------------------------------------------------------- def tag_battleback(map_id, tag_id) # データなし return nil if TAG_BB[map_id].nil? # タグなし return nil if TAG_BB[map_id][tag_id].nil? # 取得成功 return TAG_BB[map_id][tag_id] end #-------------------------------------------------------------------------- # ● エリア式 #-------------------------------------------------------------------------- def area_battleback(map_id, x, y) return nil if AREA_BB[map_id].nil? # エリアの特定 return search_area(AREA_BB[map_id], x, y) end #-------------------------------------------------------------------------- # ● エリアの特定【エリア式】 #-------------------------------------------------------------------------- def search_area(bbdata, x, y) for bb_area in bbdata start_x = bb_area[0][0] start_y = bb_area[0][1] end_x = bb_area[0][2] end_y = bb_area[0][3] # 範囲内? if start_x <= x and start_y <= y and end_x >= x and end_y >= y return bb_area[1] # バトルバックを返す end end return nil end end #============================================================================== # ■ Game_Map #============================================================================== class Game_Map #-------------------------------------------------------------------------- # ● 背景取得 #-------------------------------------------------------------------------- alias battleback_name_map_bb battleback_name def battleback_name # 地形背景変更処理が無効 if $game_switches[Map_BattleBack::BB_SW_ID] return battleback_name_map_bb else # 地形タグの取得 tag_id = terrain_tag($game_player.x, $game_player.y) # 背景ファイルを取得 map_bb_name = Map_BattleBack.get_battle_back(@map_id, tag_id, $game_player.x, $game_player.y) if map_bb_name.nil? return battleback_name_map_bb else return map_bb_name end end end end