If you need a "standing" fog, just use the "Show picture" command.
EDIT:
Nvm, I didn't get the question right. Let me script it for you.
EDIT:
FOGNAMES = {}
# template:
# FOGNAMES[MAP_ID] = ["FOG_NAME", HUE, OPACITY, BLENDTYPE, ZOOM, X_OFF, Y_OFF]
FOGNAMES[1] = ["001-Fog01", 0, 80, 0, 0, 100.0, 0]
#==============================================================================
# Game_Map
#==============================================================================
class Game_Map
attr_accessor :fog2_name
attr_accessor :fog2_hue
attr_accessor :fog2_opacity
attr_accessor :fog2_blend_type
attr_accessor :fog2_zoom
attr_accessor :fog2_sx
attr_accessor :fog2_sy
attr_reader :fog2_ox
attr_reader :fog2_oy
attr_reader :fog2_tone
alias setup_fog2_later setup
def setup(map_id)
setup_fog2_later(map_id)
@fog2_name = (FOGNAMES[map_id][0] == nil ? "" : FOGNAMES[map_id][0])
@fog2_hue = (FOGNAMES[map_id][1] == nil ? 0 : FOGNAMES[map_id][1])
@fog2_opacity = (FOGNAMES[map_id][2] == nil ? 0 : FOGNAMES[map_id][2])
@fog2_blend_type = (FOGNAMES[map_id][3] == nil ? 0 : FOGNAMES[map_id][3])
@fog2_zoom = (FOGNAMES[map_id][4] == nil ? 100.0 : FOGNAMES[map_id][4])
@fog2_sx = (FOGNAMES[map_id][5] == nil ? 0 : FOGNAMES[map_id][5])
@fog2_sy = (FOGNAMES[map_id][6] == nil ? 0 : FOGNAMES[map_id][6])
@fog2_ox = 0
@fog2_oy = 0
@fog2_tone = Tone.new(0, 0, 0, 0)
@fog2_tone_target = Tone.new(0, 0, 0, 0)
@fog2_tone_duration = 0
@fog2_opacity_duration = 0
@fog2_opacity_target = 0
end
def start_fog2_opacity_change(opacity, duration)
@fog2_opacity_target = opacity * 1.0
@fog2_opacity_duration = duration
@fog2_opacity = @fog2_opacity_target if @fog2_opacity_duration == 0
end
alias update_fog2_later update
def update
update_fog2_later
@fog2_ox -= @fog2_sx / 8.0
@fog2_oy -= @fog2_sy / 8.0
if @fog2_tone_duration >= 1
d = @fog2_tone_duration
target = @fog2_tone_target
@fog2_tone.red = (@fog2_tone.red * (d - 1) + target.red) / d
@fog2_tone.green = (@fog2_tone.green * (d - 1) + target.green) / d
@fog2_tone.blue = (@fog2_tone.blue * (d - 1) + target.blue) / d
@fog2_tone.gray = (@fog2_tone.gray * (d - 1) + target.gray) / d
@fog2_tone_duration -= 1
end
if @fog2_opacity_duration >= 1
d = @fog2_opacity_duration
@fog2_opacity = (@fog2_opacity * (d - 1) + @fog2_opacity_target) / d
@fog2_opacity_duration -= 1
end
end
end
#==============================================================================
# Spriteset_Map
#==============================================================================
class Spriteset_Map
alias init_fog2_later initialize
def initialize
init_fog2_later
@fog2 = Plane.new(@viewport1)
@fog2.z = 3000
update
end
alias disp_fog2_later dispose
def dispose
@fog2.dispose
disp_fog2_later
end
alias upd_fog2_later update
def update
upd_fog2_later
if @fog2_name != $game_map.fog2_name or @fog2_hue != $game_map.fog2_hue
@fog2_name = $game_map.fog2_name
@fog2_hue = $game_map.fog2_hue
if @fog2.bitmap != nil
@fog2.bitmap.dispose
@fog2.bitmap = nil
end
if @fog2_name != ""
@fog2.bitmap = RPG::Cache.fog(@fog2_name, @fog2_hue)
end
Graphics.frame_reset
end
@fog2.zoom_x = $game_map.fog2_zoom / 100.0
@fog2.zoom_y = $game_map.fog2_zoom / 100.0
@fog2.opacity = $game_map.fog2_opacity
@fog2.blend_type = $game_map.fog2_blend_type
@fog2.ox = $game_map.display_x / 4 + $game_map.fog2_ox
@fog2.oy = $game_map.display_y / 4 + $game_map.fog2_oy
@fog2.tone = $game_map.fog2_tone
end
end
Use Call script and use this here
$game_map.start_fog2_opacity_change(OPACTIY, DURATION)
to change the second fog. This works the same like the fog change event command for the first one.
For any changes during the map you can just use:
$game_map.fog2_ATTRIBUTE_NAME = NEW_VALUE
ATTRIBUTE_NAME can be one of those here:
name
hue
opacity
blend_type
zoom
sx
sy
Don't forget to set up the configuration FOGNAMES for each map you want. Skip it for any maps you don't want this feature.