#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:= # [Xp] Multiple Fog # Version: 2.31 # Author : LiTTleDRAgo #:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=: if true #============================================================================== # ** Spriteset_Map #------------------------------------------------------------------------------ # This class brings together map screen sprites, tilemaps, etc. # It's used within the Scene_Map class. #============================================================================== Cache = RPG::Cache if !defined? Cache class Spriteset_Map #-------------------------------------------------------------------------- # * Alias Listing #-------------------------------------------------------------------------- alias dispose_multifog dispose alias update_multifog update #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def multifog_setup(v=@viewport1) @fog2, @fog3, @fog4 = Plane.new(v), Plane.new(v), Plane.new(v) @fog2.z = -400 @fog3.z = -300 @fog4.z = -200 end #-------------------------------------------------------------------------- # * Dispose #-------------------------------------------------------------------------- def dispose dispose_multifog [@fog2, @fog3, @fog4].each {|i| i.dispose} end #-------------------------------------------------------------------------- # * Frame Update #-------------------------------------------------------------------------- def update multifog_setup if @fog2.nil? or @fog3.nil? or @fog4.nil? all_fog_update update_multifog end #-------------------------------------------------------------------------- # * All Fog Update #-------------------------------------------------------------------------- def all_fog_update #--------------------------------------------------------------------------- # FOG 2 #--------------------------------------------------------------------------- if $game_system.fog2_name if @fog2_name != $game_system.fog2_name @fog2_name = $game_system.fog2_name if @fog2.bitmap != nil @fog2.bitmap.dispose @fog2.bitmap = nil end if @fog2_name != '' @fog2.bitmap = Cache.fog(@fog2_name,0) rescue Cache.panorama(@fog2_name,0) end Graphics.frame_reset end @fog2.opacity = $game_system.fog2_opacity @fog2.blend_type = $game_system.fog2_blend_type @fog2.zoom_x = $game_system.fog2_zoom @fog2.zoom_y = $game_system.fog2_zoom @fog2_ox.nil? ? @fog2_ox = 0 : @fog2_ox += $game_system.fog2_ox @fog2_oy.nil? ? @fog2_oy = 0 : @fog2_oy += $game_system.fog2_oy @fog2.ox = $game_map.display_x / 3 + ($game_player.screen_x / 3 ) + @fog2_ox @fog2.oy = $game_map.display_y / 3 + @fog2_oy end #--------------------------------------------------------------------------- # FOG 3 #--------------------------------------------------------------------------- if $game_system.fog3_name if @fog3_name != $game_system.fog3_name @fog3_name = $game_system.fog3_name if @fog3.bitmap != nil @fog3.bitmap.dispose @fog3.bitmap = nil end if @fog3_name != '' @fog3.bitmap = Cache.fog(@fog3_name,0) rescue Cache.panorama(@fog3_name,0) end Graphics.frame_reset end @fog3.opacity = $game_system.fog3_opacity @fog3.blend_type = $game_system.fog3_blend_type @fog3.zoom_x = $game_system.fog3_zoom @fog3.zoom_y = $game_system.fog3_zoom @fog3_ox.nil? ? @fog3_ox = 0 : @fog3_ox += $game_system.fog3_ox @fog3_oy.nil? ? @fog3_oy = 0 : @fog3_oy += $game_system.fog3_oy @fog3.ox = $game_map.display_x / 3 + ($game_player.screen_x / 2 ) + @fog3_ox @fog3.oy = $game_map.display_y / 4 + @fog3_oy end #--------------------------------------------------------------------------- # FOG 4 #--------------------------------------------------------------------------- if $game_system.fog4_name if @fog4_name != $game_system.fog4_name @fog4_name = $game_system.fog4_name if @fog4.bitmap != nil @fog4.bitmap.dispose @fog4.bitmap = nil end if @fog4_name != '' @fog4.bitmap = Cache.fog(@fog4_name,0) rescue Cache.panorama(@fog4_name,0) end Graphics.frame_reset end @fog4.opacity = $game_system.fog4_opacity @fog4.blend_type = $game_system.fog4_blend_type @fog4.zoom_x = $game_system.fog4_zoom @fog4.zoom_y = $game_system.fog4_zoom @fog4_ox.nil? ? @fog4_ox = 0 : @fog4_ox += $game_system.fog4_ox @fog4_oy.nil? ? @fog4_oy = 0 : @fog4_oy += $game_system.fog4_oy @fog4.ox = $game_map.display_x / 3 + ($game_player.screen_x / 2 ) + @fog4_ox @fog4.oy = $game_map.display_y / 4 + @fog4_oy end #--------------------------------------------------------------------------- end end class Interpreter def set_fog2(n = '',ox = 0,oy = 0,opacity = 255,blend=0,zoom = 1.00) $game_system.fog2_name = n $game_system.fog2_ox = ox $game_system.fog2_oy = oy $game_system.fog2_opacity = opacity $game_system.fog2_blend_type = blend $game_system.fog2_zoom = zoom end def set_fog3(n = '',ox = 0,oy = 0,opacity = 255,blend=0,zoom = 1.00) $game_system.fog3_name = n $game_system.fog3_ox = ox $game_system.fog3_oy = oy $game_system.fog3_opacity = opacity $game_system.fog3_blend_type = blend $game_system.fog3_zoom = zoom end def set_fog4(n = '',ox = 0,oy = 0,opacity = 255,blend=0,zoom = 1.00) $game_system.fog4_name = n $game_system.fog4_ox = ox $game_system.fog4_oy = oy $game_system.fog4_opacity = opacity $game_system.fog4_blend_type = blend $game_system.fog4_zoom = zoom end def reset_fog set_fog2('', 0, 0) set_fog3('', 0, 0) set_fog4('', 0, 0) end end #=============================================================================== # ■ GAME_SYSTEM #=============================================================================== class Game_System attr_accessor :fog2_name, :fog2_zoom, :fog2_opacity, :fog2_blend_type, :fog2_ox, :fog2_oy, :fog3_name, :fog3_zoom, :fog3_opacity, :fog3_blend_type, :fog3_ox, :fog3_oy, :fog4_name, :fog4_zoom, :fog4_opacity, :fog4_blend_type, :fog4_ox, :fog4_oy end $drago_multifog = true end #-------------------------------------------------------------------------- # END OF SCRIPT #--------------------------------------------------------------------------