Fog Feature
by Hevendor of rmxp.org, version 1.2.2
Introduction
This script enables the old Fog feature that RMXP had. You can display an image on screen (tiling or not), with the opacity that you choose, scrolling or not, for each map.
Instructions
Paste in the appropriate spot, above "Main" and below "Materials"
Fogs go in the pictures folder.
Everything else is explained in the script. It is reasonably easy to manage.
Screenshots
Script
Notes
Usable everywhere with credit to Hevendor.
Older Versions
by Hevendor of rmxp.org, version 1.2.2
Introduction
This script enables the old Fog feature that RMXP had. You can display an image on screen (tiling or not), with the opacity that you choose, scrolling or not, for each map.
Instructions
Paste in the appropriate spot, above "Main" and below "Materials"
Fogs go in the pictures folder.
Everything else is explained in the script. It is reasonably easy to manage.
Screenshots
http://img183.imageshack.us/img183/812/fogsmd4.png[/img]
Now imagine it scrolling.
Now imagine it scrolling.
Script
Code:
#==============================================================================
# ** RMXP Fog feature for RMVX
#------------------------------------------------------------------------------
# Allows you to display a fog on map. Brings back the "old" Fog feature from
# RPG Maker XP.
# 08-03-2008 (dd-mm-yyyy) © Hevendor of rmxp.org
# 09-03-2008 Edits/additions by Jirbytaylor
# 09-03-2008 (dd-mm-yyyy) Edited by Hevendor
# Version 1.2.3
# Latest update: fixed bug where fog showed over pictures
#==============================================================================
module Fog_Map_Settings
#============================================================================
# * Configure Fog numbers -> names for setup timesaving. Format:
# {fognumber => 'fogname.extension', ...}
# where 'Fogname.extension' must be the name of a fog picture and its extension
# located in the pictures folder
#============================================================================
Fog_names = {1 => 'fog01.png'}
#============================================================================
# * Set maps you wish to have fogs here. Format:
# Fog_maps = {mapID => Fog number, mapID2 => Fog number, ...}
#============================================================================
Fog_maps = {1 => 1}
#============================================================================
# * Set up fog settings. Uses (fog number => setting, ...) format
# - Opacity - Opacity of fog, ranging from 0 (invisible) to 255 (opaque)
# - Zoom - size of fog. '1' is normal not '100'.
# - Blend - 0 - Normal, 1 - Add, 2 - Subtract
# - SxSy - Scroll settings. (fog number => [sx,sy] ...)
#============================================================================
Fog_opacity = {1 => 90}
Fog_zoom = {1 => 3}
Fog_blend = {1 => 2}
Fog_sxsy = {1 => [4, 4]}
end
class Game_Map
#--------------------------------------------------------------------------
# * Public Instance Variables
#--------------------------------------------------------------------------
attr_reader :map_id # map ID
attr_reader :fog_ox # fog oX
attr_reader :fog_oy # fog oY
#--------------------------------------------------------------------------
# * Alias Definitions
#--------------------------------------------------------------------------
alias hev_fog_feature_map_update update
alias hev_fog_feature_map_initialize initialize
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize
@fog_ox = 0
@fog_oy = 0
hev_fog_feature_map_initialize
end
#--------------------------------------------------------------------------
# * Update Fog
#--------------------------------------------------------------------------
def update_fog
if Fog_Map_Settings::Fog_maps.include?($game_map.map_id)
@fog_ox -= Fog_Map_Settings::Fog_sxsy[Fog_Map_Settings::Fog_maps[@map_id]][0] / 8.0
@fog_oy -= Fog_Map_Settings::Fog_sxsy[Fog_Map_Settings::Fog_maps[@map_id]][1] / 8.0
end
end
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update
hev_fog_feature_map_update
update_fog
end
end
class Spriteset_Map
#--------------------------------------------------------------------------
# * Alias Definitions
#--------------------------------------------------------------------------
alias hev_fog_feature_initialize initialize
alias hev_fog_feature_create_viewports create_viewports
alias hev_fog_feature_dispose dispose
alias hev_fog_feature_update_viewports update_viewports
alias hev_fog_feature_update update
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize
hev_fog_feature_initialize
create_fog
end
#--------------------------------------------------------------------------
# * Create Viewport
#--------------------------------------------------------------------------
def create_viewports
@viewport4 = Viewport.new(0, 0, 544, 416)
@viewport4.z = 9
hev_fog_feature_create_viewports
end
#--------------------------------------------------------------------------
# * Create Fog
#--------------------------------------------------------------------------
def create_fog
@fog = Plane.new(@viewport4)
if Fog_Map_Settings::Fog_maps.include?($game_map.map_id)
fog_number = Fog_Map_Settings::Fog_maps[$game_map.map_id]
update_fog
@fog.bitmap = Cache.picture(Fog_Map_Settings::Fog_names[fog_number])
@fog.opacity = Fog_Map_Settings::Fog_opacity[fog_number]
@fog.zoom_x = @fog.zoom_y = Fog_Map_Settings::Fog_zoom[fog_number]
@fog.blend_type = Fog_Map_Settings::Fog_blend[fog_number]
end
end
#--------------------------------------------------------------------------
# * Update Fog Sprite
#--------------------------------------------------------------------------
def update_fog
if @fog != nil
@fog.ox = $game_map.display_x / 8 + $game_map.fog_ox
@fog.oy = $game_map.display_y / 8 + $game_map.fog_oy
end
end
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update
hev_fog_feature_update
update_fog
end
#--------------------------------------------------------------------------
# * Dispose of Fog Sprite
#--------------------------------------------------------------------------
def dispose_fog
@fog.dispose
end
#--------------------------------------------------------------------------
# * Dispose
#--------------------------------------------------------------------------
def dispose
dispose_fog
hev_fog_feature_dispose
end
end
Notes
Usable everywhere with credit to Hevendor.
Older Versions
Code:
#==============================================================================
# ** Fog feature
#------------------------------------------------------------------------------
# Allows you to display a fog on map. Brings back the "old" Fog feature from
# RPG Maker XP.
# 08-03-2008 (dd-mm-yyyy) © Hevendor of rmxp.org
# Version 1.0
#==============================================================================
module Fog_Map_Settings
#============================================================================
# * Configure map names for setup timesaving. Format:
# {fognumber => 'fogname.extension', ...}
#============================================================================
Fog_names = {1 => 'fog01.png'}
#============================================================================
# * Set maps you wish to have fogs here. Format:
# Fog_maps = {mapID => Fog number, mapID2 => Fog number, ...}
#============================================================================
Fog_maps = {1 => 1}
#============================================================================
# * Set up opacity of fogs. Uses the number corresponding to each fog that you
# defined above.
#============================================================================
Fog_opacity = {1 => 125}
#============================================================================
# * Set SX/SY of each fog (relates to scrolling) Uses the number corresponding
# to each fog that you defined above.
# Format: {fognumber => [fogSX, fogSY], ...}
#============================================================================
Fog_sxsy = {1 => [0, 0]}
end
class Game_Map
#--------------------------------------------------------------------------
# * Public Instance Variables
#--------------------------------------------------------------------------
attr_reader :map_id # map ID
attr_reader :fog_ox # fog oX
attr_reader :fog_oy # fog oY
#--------------------------------------------------------------------------
# * Alias Definitions
#--------------------------------------------------------------------------
alias hev_fog_feature_map_update update
alias hev_fog_feature_map_initialize initialize
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize
@fog_ox = 0
@fog_oy = 0
hev_fog_feature_map_initialize
end
#--------------------------------------------------------------------------
# * Update Fog
#--------------------------------------------------------------------------
def update_fog
@fog_ox -= Fog_Map_Settings::Fog_sxsy[1][0] / 8.0
@fog_oy -= Fog_Map_Settings::Fog_sxsy[1][1] / 8.0
end
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update
hev_fog_feature_map_update
update_fog
end
end
class Spriteset_Map
#--------------------------------------------------------------------------
# * Alias Definitions
#--------------------------------------------------------------------------
alias hev_fog_feature_initialize initialize
alias hev_fog_feature_create_viewports create_viewports
alias hev_fog_feature_dispose dispose
alias hev_fog_feature_update_viewports update_viewports
alias hev_fog_feature_update update
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize
hev_fog_feature_initialize
create_fog
end
#--------------------------------------------------------------------------
# * Create Viewport
#--------------------------------------------------------------------------
def create_viewports
@viewport4 = Viewport.new(0, 0, 544, 416)
@viewport4.z = 1000
hev_fog_feature_create_viewports
end
#--------------------------------------------------------------------------
# * Create Fog
#--------------------------------------------------------------------------
def create_fog
@fog = Plane.new(@viewport4)
if Fog_Map_Settings::Fog_maps.include?($game_map.map_id)
fog_number = Fog_Map_Settings::Fog_maps[$game_map.map_id]
@fog.bitmap = Cache.picture(Fog_Map_Settings::Fog_names[fog_number])
@fog.opacity = Fog_Map_Settings::Fog_opacity[fog_number]
end
end
#--------------------------------------------------------------------------
# * Update Fog Sprite
#--------------------------------------------------------------------------
def update_fog
if @fog != nil
@fog.ox = $game_map.display_x / 8 + $game_map.fog_ox
@fog.oy = $game_map.display_y / 8 + $game_map.fog_oy
end
end
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update
hev_fog_feature_update
update_fog
end
#--------------------------------------------------------------------------
# * Dispose of Fog Sprite
#--------------------------------------------------------------------------
def dispose_fog
@fog.dispose
end
#--------------------------------------------------------------------------
# * Dispose
#--------------------------------------------------------------------------
def dispose
dispose_fog
hev_fog_feature_dispose
end
end