Woratana multiple Fog's for Ace

Lars Ulrika

I punch Therefore I am Harvest the land Taking the
Veteran
Joined
Nov 7, 2012
Messages
1,363
Reaction score
405
First Language
French
Primarily Uses
N/A
What are the terms of use, and do we hate to credit certain people who made to fog effects or just Woratana?
Just bumping this question as I wanted to ask the same. Is it usable for commercial projects? Thanks!
 

Orgaya

Veteran
Veteran
Joined
Oct 5, 2015
Messages
173
Reaction score
80
First Language
English
Primarily Uses
I realize this topic is very old, but I don't understand the script's formatting. It's showing up in the OP as a single line, and I don't think it's meant to be like that. Will it work as is?
 

Kes

Veteran
Veteran
Joined
Aug 3, 2012
Messages
22,299
Reaction score
11,712
First Language
English
Primarily Uses
RMVXA
No, unfortunately it won't. A previous forum update scrambled many of the scripts, putting the whole script into one line.

You will have to insert the line breaks manually. If you are not sure how to do that, you could start a new thread asking if someone can do that for you (or maybe has that script already and can send it to you). You would post that in Script Requests.
 

Orgaya

Veteran
Veteran
Joined
Oct 5, 2015
Messages
173
Reaction score
80
First Language
English
Primarily Uses
Thank you. I'll post over in that section.
 

LordV3nator

Warper
Member
Joined
Jun 24, 2017
Messages
1
Reaction score
0
First Language
French
Primarily Uses
RMVXA
Because the original script is unusable (apparently due a forum bug here), and because I searched for it myself as a result, here's a link to what seems to be the same version of the script.

http://www.rpgmakercentral.com/topic/1813-woratana-multiple-fogs-for-ace/

Hope this helps people looking for it on this site!
Hey, sorry to answer an old topic like that. Your link does not show the actual version of the script, since it has been updated in 2013 to correct a conflict with parallaxes.

I realize this topic is very old, but I don't understand the script's formatting. It's showing up in the OP as a single line, and I don't think it's meant to .be like that. Will it work as is?
Here it is!

Code:
#===============================================================
# ● [VX] ◦ Multiple Fogs ◦ □
# * Use unlimited layers of fog *
#--------------------------------------------------------------
#◦ by Woratana [woratana@hotmail.com]
#◦ Thaiware RPG Maker Community
#◦ Released on: 13/05/2008# ◦ Version: 1.0
#◦ ported to VX Ace by Necromus 17/03/2012
#--------------------------------------------------------------#==================================================================
# ** HOW TO USE **# * use event command 'Script...' for the any script line below~
#-----------------------------------------------------------------
#
#---------------------------------------------------------------
# ** SETUP FOG PROPERTIES & SHOW FOG **
# * You have to setup fog properties, before show fog~
#-------------------------------------------------------------
# * There are 3 ways to setup fog properties:
# >> Setup Fog [Custom]:
# $fog.name = 'image_name' # Image file name, must be in fog image path (setup path below).
# $fog.hue = (integer)
# Fog's hue. 0 - 360, 0 for no hue.
# $fog.tone = [red, green, blue, gray]
# Fog's tone color.
# $fog.opacity = (integer)
# Fog's opacity. 0 - 255, you will not see fog in 0.
# $fog.blend = (0, 1, or 2)
# Fog's blend type. 0 for Normal, 1 for Add, 2 for Subtract.
# $fog.zoom = (integer)
# Fog's size (in %). 100 for normal size.
# $fog.sx = (+ or - integer)
# Fog's horizontal move speed.
# $fog.sy = (+ or - integer)
# Fog's vertical move speed.
#
# >> Setup Fog [From Preset]:
# (You can setup fog presets, in part FOG PRESET SETUP below)
# $fog.load_preset(preset_id)
#
# >> Setup Fog [From Fog that showing]:
# $fog.load_fog(fog_id)
#
#--------------------------------------------------------------
# ** SHOW FOG **
#-------------------------------------------------------------
# After setup the fog, show fog by call script:
# $fog.show(fog_id)
#
# In case you want to show new fog on same ox, oy, tone as old fog. Call Script:
# $fog.show(old_fog_id, false)
#
# * fog_id: the ID number you want to put this fog in.
# (It can be any positive number or zero)
#
# After you show fog, the fog properties you've set will replace with default setting.
# (You can setup default setting, in part FOG DEFAULT SETTING below)
#
#--------------------------------------------------------------
# ** DELETE FOG **
#-------------------------------------------------------------
# You can delete 1 or more fog(s) at a time by call script:
# $fog.delete(fog_id, fog_id, fog_id, ...)
#
#---------------------------------------------------------------
# ** OLD FOG CONTROL EVENT COMMANDS **
#-------------------------------------------------------------
# Change Fog Tone:
# $game_map.fogtone(fog_id, [red, green, blue, gray], duration)
# e.g. $game_map.fogtone(1, [100,200,-100,0], 10)
# Change Fog Opacity:
# $game_map.fogopac(fog_id, new_opacity, duration)
# e.g. $game_map.fogopac(2, 200, 10)
#
#---------------------------------------------------------------
# ** ADDITIONAL SETTINGS **
#-------------------------------------------------------------
# Change Fog Image's Path:
# $game_map.fog_path = 'image_path'
# e.g. $game_map.fog_path = 'Graphics/Pictures/'
# Turn ON/OFF [Automatically clear all fogs when transfer player]:
# $game_map.fog_reset = (true / false)
#
#===============================================================
#==================================================================
# START ** MULTIPLE FOG SETUP **
#==================================================================
class Game_Map
  alias wora_mulfog_gammap_ini initialize
  def initialize   
    wora_mulfog_gammap_ini   
#==================================================================   
# ** MULTIPLE FOG SETUP ** SETTINGS   
#--------------------------------------------------------------   
    @fog_path = 'Graphics/Pictures/'   
# Fog image's path   
    @fog_reset = true
# (true or false)   
# Automatically clear all multiple fogs when transfer player   
#==================================================================   
@mulfog_name = []   
@mulfog_hue = []   
@mulfog_opacity = []   
@mulfog_blend_type = []   
@mulfog_zoom = []   
@mulfog_sx = []   
@mulfog_sy = []   
@mulfog_ox = []   
@mulfog_oy = []   
@mulfog_tone = []   
@mulfog_tone_target = []   
@mulfog_tone_duration = []   
@mulfog_opacity_duration = []   
@mulfog_opacity_target = []
    end
  end
class Wora_Multiple_Fog
  def set_default   
#==================================================================   
# ** MULTIPLE FOG SETUP ** FOG DEFAULT SETTING   
#--------------------------------------------------------------   
@name = ''   
@hue = 0   
@opacity = 64   
@blend = 0   
@zoom = 200   
@sx = 0   
@sy = 0   
@tone = [0,0,0,0]   
#==================================================================
    end
 
  def load_preset(preset_id)   
    case preset_id
#==================================================================
# ** MULTIPLE FOG SETUP ** FOG PRESET SETUP
#--------------------------------------------------------------   
    when 1 # Preset ID 1     
@name = 'Cloud3'     
@hue = 0     
@tone = [0,0,20,0]     
@opacity = 100     
@blend = 0     
@zoom = 150     
@sx = 3     
@sy = 3   
    when 2 # Preset ID 2     
@name = '002-Clouds01'     
@hue = 0     
@tone = [0,0,0,0]     
@opacity = 200     
@blend = 1     
@zoom = 200     
@sx = -2     
@sy = -2   
#==================================================================
      end
  end
#==================================================================
# END ** MULTIPLE FOG SETUP **
# * Don't change anything below unless you know what you're doing.
#==================================================================
  attr_accessor :name, :hue, :opacity, :blend, :zoom, :sx, :sy, :tone
  def initialize   
    set_default
    end
 
  def load_fog(id)   
@name = $game_map.mulfog_name[id].sub($game_map.fog_path, '')   
@hue = $game_map.mulfog_hue[id]   
@opacity = $game_map.mulfog_opacity[id]   
@blend = $game_map.mulfog_blend_type[id]   
@zoom = $game_map.mulfog_zoom[id]   
@sx = $game_map.mulfog_sx[id]   
@sy = $game_map.mulfog_sy[id]   
    tn = $game_map.mulfog_tone[id]   
@tone = [tn.red, tn.blue, tn.green, tn.gray]
    end
  def show(id, reset_all = true)   
$game_map.mulfog_name[id] =
$game_map.fog_path +
@name   
$game_map.mulfog_hue[id] = @hue   
$game_map.mulfog_opacity[id] = @opacity   
$game_map.mulfog_blend_type[id] = @blend   
$game_map.mulfog_zoom[id] = @zoom   
$game_map.mulfog_sx[id] = @sx   
$game_map.mulfog_sy[id] = @sy   
$game_map.mulfog_tone[id] = Tone.new(@tone[0], @tone[1], @tone[2], @tone[3])   
    if $game_map.mulfog_ox[id].nil? or reset_all     
$game_map.mulfog_ox[id] = 0     
$game_map.mulfog_oy[id] = 0     
$game_map.mulfog_tone_target[id] = Tone.new(0, 0, 0, 0)     
     $game_map.mulfog_tone_duration[id] = 0     
     $game_map.mulfog_opacity_duration[id] = 0     
$game_map.mulfog_opacity_target[id] = 0   
    end   
    set_default
    end
 
  def delete(*args)   
    args.each do |id|     
      $game_map.mulfog_name[id] = ''   
      end
    end
  end
class Game_Interpreter
  alias wora_mulfog_interpret_com201 command_201
#--------------------------------------------------------------------------
# * Transfer Player
#--------------------------------------------------------------------------
  def command_201   
    if $game_map.fog_reset     
      if @params[0] == 0; id_map = @params[1]     
      else; id_map = $game_variables[@params[1]]     
      end     
      $game_map.clear_mulfog if id_map != @map_id   
    end   
    wora_mulfog_interpret_com201
    end
  end
class Game_Map
  attr_accessor :mulfog_name, :mulfog_hue, :mulfog_opacity, :mulfog_blend_type,:mulfog_zoom, :mulfog_sx, :mulfog_sy, :mulfog_ox, :mulfog_oy, :mulfog_tone,:mulfog_tone_target, :mulfog_tone_duration, :mulfog_opacity_duration,:mulfog_opacity_target, :fog_reset, :fog_path
  alias wora_mulfog_gammap_upd update
  def update(main)   
    wora_mulfog_gammap_upd(main)   
    @mulfog_name.each_index do |i|     
      next if @mulfog_name[i].nil? or @mulfog_name[i] == ''     
# Manage fog scrolling     
      @mulfog_ox[i] -= @mulfog_sx[i] / 8.0     
      @mulfog_oy[i] -= @mulfog_sy[i] / 8.0     
# Manage change in fog color tone     
      if @mulfog_tone_duration[i] >= 1       
        d = @mulfog_tone_duration[i]       
        target = @mulfog_tone_target[i]       
        @mulfog_tone[i].red = (@mulfog_tone[i].red * (d - 1) + target.red) / d       
        @mulfog_tone[i].green = (@mulfog_tone[i].green * (d - 1) + target.green) / d       
        @mulfog_tone[i].blue = (@mulfog_tone[i].blue * (d - 1) + target.blue) / d       
        @mulfog_tone[i].gray = (@mulfog_tone[i].gray * (d - 1) + target.gray) / d       
        @mulfog_tone_duration[i] -= 1     
      end     
# Manage change in fog opacity level     
      if @mulfog_opacity_duration[i] >= 1       
        d = @mulfog_opacity_duration[i]       
        @mulfog_opacity[i] = (@mulfog_opacity[i] * (d - 1) + @mulfog_opacity_target[i]) / d       
        @mulfog_opacity_duration[i] -= 1     
      end   
      end
  end
#--------------------------------------------------------------------------
# * Start Changing Fog Color Tone
#--------------------------------------------------------------------------
  def fogtone(i, tone, duration)   
    duration = duration * 2   
    tone = Tone.new(tone[0], tone[1], tone[2], tone[3])   
    @mulfog_tone_target[i] = tone.clone   
    @mulfog_tone_duration[i] = duration   
    if @mulfog_tone_duration[i] == 0     
      @mulfog_tone[i] = @mulfog_tone_target[i].clone   
      end
  end
#--------------------------------------------------------------------------
# * Start Changing Fog Opacity Level
#--------------------------------------------------------------------------
  def fogopac(i, opacity, duration)   
    duration = duration * 2   
    @mulfog_opacity_target[i] = opacity * 1.0   
    @mulfog_opacity_duration[i] = duration   
    if @mulfog_opacity_duration[i] == 0     
      @mulfog_opacity[i] = @mulfog_opacity_target[i]   
      end
    end
 
  def clear_mulfog   
    @mulfog_name.each_index {|i| @mulfog_name[i] = '' }
    end
end
$worale = {} if !$worale
$worale['MutipleFog'] = true
$fog = Wora_Multiple_Fog.new
class Spriteset_Map
alias wora_mulfog_sprmap_crepal create_parallax
alias wora_mulfog_sprmap_updpal update_parallax
alias wora_mulfog_sprmap_dispal dispose_parallax

def create_parallax   
@mulfog = []   
@mulfog_name = []   
@mulfog_hue = []   
wora_mulfog_sprmap_crepalend
  def update_parallax     
wora_mulfog_sprmap_updpal   
$game_map.mulfog_name.each_index do |i|     
  next if $game_map.mulfog_name[i].nil?
 
# If fog is different than current fog
  if @mulfog_name[i] != $game_map.mulfog_name[i] or @mulfog_hue[i] != $game_map.mulfog_hue[i]       
    @mulfog_name[i] = $game_map.mulfog_name[i]       
    @mulfog_hue[i] = $game_map.mulfog_hue[i]       
    if @mulfog[i].nil?         
      @mulfog[i] = Plane.new(@viewport3)         
      @mulfog[i].z = 3000       
    end       
    if @mulfog[i].bitmap != nil         
      @mulfog[i].bitmap.dispose         
      @mulfog[i].bitmap = nil       
    end       
    if @mulfog_name[i] != ''         
      @mulfog[i].bitmap = Cache.load_bitmap('', @mulfog_name[i], @mulfog_hue[i])       
    end       
    Graphics.frame_reset     
  end     
    next if @mulfog[i].bitmap.nil?     
# Update fog plane     
    @mulfog[i].zoom_x = ($game_map.mulfog_zoom[i] / 100.0) if @mulfog[i].zoom_x != ($game_map.mulfog_zoom[i] / 100.0)
    @mulfog[i].zoom_y = ($game_map.mulfog_zoom[i] / 100.0) if @mulfog[i].zoom_y != ($game_map.mulfog_zoom[i] / 100.0)
    @mulfog[i].opacity = $game_map.mulfog_opacity[i] if @mulfog[i].opacity != $game_map.mulfog_opacity[i]
    @mulfog[i].blend_type = $game_map.mulfog_blend_type[i] if @mulfog[i].blend_type != $game_map.mulfog_blend_type[i]
    @mulfog[i].ox = $game_map.mulfog_ox[i] + $game_map.display_x * 32 if @mulfog[i].ox != $game_map.mulfog_ox[i] + $game_map.display_x * 32
    @mulfog[i].oy = $game_map.mulfog_oy[i] + $game_map.display_y * 32 if @mulfog[i].oy != $game_map.mulfog_oy[i] + $game_map.display_y * 32
    @mulfog[i].tone = $game_map.mulfog_tone[i] if @mulfog[i].tone != $game_map.mulfog_tone[i]
    end
  end
def dispose_parallax   
  @mulfog.each_index do |i|     
    next if @mulfog[i].nil?     
    @mulfog[i].bitmap.dispose if !@mulfog[i].bitmap.nil?     
    @mulfog[i].dispose   
  end   
  wora_mulfog_sprmap_dispal
  end
end

I really needed that script in my game, so i put all the line breaks.
It's great to see the syntax coloration coming back in the code editor!

Anyway, thank to Woratana and Necromus for this script, it is super awesome and it works again with parallaxes.
 

djbeardo

Veteran
Veteran
Joined
Oct 1, 2014
Messages
42
Reaction score
17
First Language
English
Primarily Uses
I was told that there might be an error with the June 2017 post of the code - a missing "end" command, perhaps. So I have re-posted it here instead of making a new thread.
This is copied directly from my game, so I know it works. But I did change the names for the various fogs and clouds, so be sure to read the instructions on file naming conventions for the clouds and fogs.

Code:
#===============================================================
# ● [VX] ◦ Multiple Fogs ◦ □
# * Use unlimited layers of fog *
#--------------------------------------------------------------
# ◦ by Woratana [woratana@hotmail.com]
# ◦ Thaiware RPG Maker Community
# ◦ Released on: 13/05/2008
# ◦ Version: 1.0
# ◦ ported to VX Ace by Necromus 17/03/2012
#--------------------------------------------------------------
#==================================================================
# ** HOW TO USE **
# * use event command 'Script...' for the any script line below~
#-----------------------------------------------------------------
#
#---------------------------------------------------------------
# ** SETUP FOG PROPERTIES & SHOW FOG **
# * You have to setup fog properties, before show fog~
#-------------------------------------------------------------
# * There are 3 ways to setup fog properties:
# >> Setup Fog [Custom]:
# $fog.name = 'image_name' # Image file name, must be in fog image path (setup path below).
# $fog.hue = (integer) # Fog's hue. 0 - 360, 0 for no hue.
# $fog.tone = [red, green, blue, gray] # Fog's tone color.
# $fog.opacity = (integer) # Fog's opacity. 0 - 255, you will not see fog in 0.
# $fog.blend = (0, 1, or 2) # Fog's blend type. 0 for Normal, 1 for Add, 2 for Subtract.
# $fog.zoom = (integer) # Fog's size (in %). 100 for normal size.
# $fog.sx = (+ or - integer) # Fog's horizontal move speed.
# $fog.sy = (+ or - integer) # Fog's vertical move speed.
#
# >> Setup Fog [From Preset]:
# (You can setup fog presets, in part FOG PRESET SETUP below)
# $fog.load_preset(preset_id)
#
# >> Setup Fog [From Fog that showing]:
# $fog.load_fog(fog_id)
#
#--------------------------------------------------------------
# ** SHOW FOG **
#-------------------------------------------------------------
# After setup the fog, show fog by call script:
# $fog.show(fog_id)
#
# In case you want to show new fog on same ox, oy, tone as old fog. Call Script:
# $fog.show(old_fog_id, false)
#
# * fog_id: the ID number you want to put this fog in.
# (It can be any positive number or zero)
#
# After you show fog, the fog properties you've set will replace with default setting.
# (You can setup default setting, in part FOG DEFAULT SETTING below)
#
#--------------------------------------------------------------
# ** DELETE FOG **
#-------------------------------------------------------------
# You can delete 1 or more fog(s) at a time by call script:
# $fog.delete(fog_id, fog_id, fog_id, ...)
#
#---------------------------------------------------------------
# ** OLD FOG CONTROL EVENT COMMANDS **
#-------------------------------------------------------------
# Change Fog Tone:
# $game_map.fogtone(fog_id, [red, green, blue, gray], duration)
# e.g. $game_map.fogtone(1, [100,200,-100,0], 10)
# Change Fog Opacity:
# $game_map.fogopac(fog_id, new_opacity, duration)
# e.g. $game_map.fogopac(2, 200, 10)
#
#---------------------------------------------------------------
# ** ADDITIONAL SETTINGS **
#-------------------------------------------------------------
# Change Fog Image's Path:
# $game_map.fog_path = 'image_path'
# e.g. $game_map.fog_path = 'Graphics/Pictures/'
# Turn ON/OFF [Automatically clear all fogs when transfer player]:
# $game_map.fog_reset = (true / false)
#
#===============================================================
#==================================================================
# START ** MULTIPLE FOG SETUP **
#==================================================================
class Game_Map
alias wora_mulfog_gammap_ini initialize
def initialize
    wora_mulfog_gammap_ini

    #==================================================================
    # ** MULTIPLE FOG SETUP ** SETTINGS
    #--------------------------------------------------------------
    @fog_path = "Graphics/Pictures/"
    # Fog image's path
    @fog_reset = true # (true or false)
    # Automatically clear all multiple fogs when transfer player
    #==================================================================

    @mulfog_name = []
    @mulfog_hue = []
    @mulfog_opacity = []
    @mulfog_blend_type = []
    @mulfog_zoom = []
    @mulfog_sx = []
    @mulfog_sy = []
    @mulfog_ox = []
    @mulfog_oy = []
    @mulfog_tone = []
    @mulfog_tone_target = []
    @mulfog_tone_duration = []
    @mulfog_opacity_duration = []
    @mulfog_opacity_target = []
end
end
class Wora_Multiple_Fog
def set_default
    #==================================================================
    # ** MULTIPLE FOG SETUP ** FOG DEFAULT SETTING
    #--------------------------------------------------------------
    @name = ''
    @hue = 0
    @opacity = 64
    @blend = 0
    @zoom = 200
    @sx = 0
    @sy = 0
    @tone = [0,0,0,0]
    #==================================================================
end

def load_preset(preset_id)
    case preset_id
#==================================================================
# ** MULTIPLE FOG SETUP ** FOG PRESET SETUP
#--------------------------------------------------------------
    when 1 # Cloud Shadow 1
     @name = 'Cloud03'
     @hue = 0
     @tone = [0,0,0,0]
     @opacity = 200
     @blend = 2
     @zoom = 300
     @sx = 1
     @sy = 1
    when 2 # Cloud Shadow 2
     @name = 'Cloud02'
     @hue = 0
     @tone = [0,0,0,0]
     @opacity = 100
     @blend = 2
     @zoom = 300
     @sx = 2
     @sy = 2
    when 3 # Cloud Shadow 3
     @name = 'Cloud01'
     @hue = 0
     @tone = [0,0,0,0]
     @opacity = 200
     @blend = 2
     @zoom = 300
     @sx = 3
     @sy = 3
    when 4 # Fog 1
     @name = 'Fog01'
     @hue = 0
     @tone = [0,0,0,0]
     @opacity = 60
     @blend = 0
     @zoom = 200
     @sx = 1
     @sy = 1
    when 5 # Fog 2
     @name = 'Fog02'
     @hue = 0
     @tone = [0,0,0,0]
     @opacity = 100
     @blend = 0
     @zoom = 300
     @sx = 2
     @sy = 2
    when 6 # Fog 3
     @name = 'Fog03'
     @hue = 0
     @tone = [0,0,0,0]
     @opacity = 200
     @blend = 0
     @zoom = 300
     @sx = 3
     @sy = 3
    when 7
     @name = 'Cloud01'
     @hue = 0
     @tone = [0,0,0,0]
     @opacity = 40
     @blend = 2
     @zoom = 300
     @sx = 0
     @sy = 8
    when 8
     @name = 'Fog01'
     @hue = 0
     @tone = [0,0,0,0]
     @opacity = 150
     @blend = 1
     @zoom = 300
     @sx = 2
     @sy = 1
    #==================================================================
end
end
#==================================================================
# END ** MULTIPLE FOG SETUP **
# * Don't change anything below unless you know what you're doing.
#==================================================================
attr_accessor :name, :hue, :opacity, :blend, :zoom, :sx, :sy, :tone
def initialize
    set_default
end

def load_fog(id)
    @name = $game_map.mulfog_name[id].sub($game_map.fog_path, '')
    @hue = $game_map.mulfog_hue[id]
    @opacity = $game_map.mulfog_opacity[id]
    @blend = $game_map.mulfog_blend_type[id]
    @zoom = $game_map.mulfog_zoom[id]
    @sx = $game_map.mulfog_sx[id]
    @sy = $game_map.mulfog_sy[id]
    tn = $game_map.mulfog_tone[id]
    @tone = [tn.red, tn.blue, tn.green, tn.gray]
end
def show(id, reset_all = true)
    $game_map.mulfog_name[id] = $game_map.fog_path + @name
    $game_map.mulfog_hue[id] = @hue
    $game_map.mulfog_opacity[id] = @opacity
    $game_map.mulfog_blend_type[id] = @blend
    $game_map.mulfog_zoom[id] = @zoom
    $game_map.mulfog_sx[id] = @sx
    $game_map.mulfog_sy[id] = @sy
    $game_map.mulfog_tone[id] = Tone.new(@tone[0], @tone[1], @tone[2], @tone[3])
    if $game_map.mulfog_ox[id].nil? or reset_all
     $game_map.mulfog_ox[id] = 0
     $game_map.mulfog_oy[id] = 0
     $game_map.mulfog_tone_target[id] = Tone.new(0, 0, 0, 0)
     $game_map.mulfog_tone_duration[id] = 0
     $game_map.mulfog_opacity_duration[id] = 0
     $game_map.mulfog_opacity_target[id] = 0
    end
    set_default
end

def delete(*args)
    args.each do |id|
     $game_map.mulfog_name[id] = ''
    end
end
end
class Game_Interpreter
alias wora_mulfog_interpret_com201 command_201
#--------------------------------------------------------------------------
# * Transfer Player
#--------------------------------------------------------------------------
def command_201
    if $game_map.fog_reset
     if @params[0] == 0; id_map = @params[1]
     else; id_map = $game_variables[@params[1]]
     end
     $game_map.clear_mulfog if id_map != @map_id
    end
    wora_mulfog_interpret_com201
end
end
class Game_Map
attr_accessor :mulfog_name, :mulfog_hue, :mulfog_opacity, :mulfog_blend_type,
:mulfog_zoom, :mulfog_sx, :mulfog_sy, :mulfog_ox, :mulfog_oy, :mulfog_tone,
:mulfog_tone_target, :mulfog_tone_duration, :mulfog_opacity_duration,
:mulfog_opacity_target, :fog_reset, :fog_path
alias wora_mulfog_gammap_upd update
def update(main)
    wora_mulfog_gammap_upd(main)
    @mulfog_name.each_index do |i|
     next if @mulfog_name[i].nil? or @mulfog_name[i] == ''
     # Manage fog scrolling
     @mulfog_ox[i] -= @mulfog_sx[i] / 8.0
     @mulfog_oy[i] -= @mulfog_sy[i] / 8.0
     # Manage change in fog color tone
     if @mulfog_tone_duration[i] >= 1
        d = @mulfog_tone_duration[i]
        target = @mulfog_tone_target[i]
        @mulfog_tone[i].red = (@mulfog_tone[i].red * (d - 1) + target.red) / d
        @mulfog_tone[i].green = (@mulfog_tone[i].green * (d - 1) + target.green) / d
        @mulfog_tone[i].blue = (@mulfog_tone[i].blue * (d - 1) + target.blue) / d
        @mulfog_tone[i].gray = (@mulfog_tone[i].gray * (d - 1) + target.gray) / d
        @mulfog_tone_duration[i] -= 1
     end
     # Manage change in fog opacity level
     if @mulfog_opacity_duration[i] >= 1
        d = @mulfog_opacity_duration[i]
        @mulfog_opacity[i] = (@mulfog_opacity[i] * (d - 1) + @mulfog_opacity_target[i]) / d
        @mulfog_opacity_duration[i] -= 1
     end
    end
end
#--------------------------------------------------------------------------
# * Start Changing Fog Color Tone
#--------------------------------------------------------------------------
def fogtone(i, tone, duration)
    duration = duration * 2
    tone = Tone.new(tone[0], tone[1], tone[2], tone[3])
    @mulfog_tone_target[i] = tone.clone
    @mulfog_tone_duration[i] = duration
    if @mulfog_tone_duration[i] == 0
     @mulfog_tone[i] = @mulfog_tone_target[i].clone
    end
end
#--------------------------------------------------------------------------
# * Start Changing Fog Opacity Level
#--------------------------------------------------------------------------
def fogopac(i, opacity, duration)
    duration = duration * 2
    @mulfog_opacity_target[i] = opacity * 1.0
    @mulfog_opacity_duration[i] = duration
    if @mulfog_opacity_duration[i] == 0
     @mulfog_opacity[i] = @mulfog_opacity_target[i]
    end
end

def clear_mulfog
    @mulfog_name.each_index {|i| @mulfog_name[i] = '' }
end
end
$worale = {} if !$worale
$worale['MutipleFog'] = true
$fog = Wora_Multiple_Fog.new
class Spriteset_Map
alias wora_mulfog_sprmap_crepal create_parallax
alias wora_mulfog_sprmap_updpal update_parallax
alias wora_mulfog_sprmap_dispal dispose_parallax

def create_parallax
    @mulfog = []
    @mulfog_name = []
    @mulfog_hue = []
    wora_mulfog_sprmap_crepal
end

def update_parallax
     wora_mulfog_sprmap_updpal
    $game_map.mulfog_name.each_index do |i|
     next if $game_map.mulfog_name[i].nil?
     # If fog is different than current fog
     if @mulfog_name[i] != $game_map.mulfog_name[i] or @mulfog_hue[i] != $game_map.mulfog_hue[i]
        @mulfog_name[i] = $game_map.mulfog_name[i]
        @mulfog_hue[i] = $game_map.mulfog_hue[i]
        if @mulfog[i].nil?
         @mulfog[i] = Plane.new(@viewport3)
         @mulfog[i].z = 3000
        end
        if @mulfog[i].bitmap != nil
         @mulfog[i].bitmap.dispose
         @mulfog[i].bitmap = nil
        end
        if @mulfog_name[i] != ''
         @mulfog[i].bitmap = Cache.load_bitmap('', @mulfog_name[i], @mulfog_hue[i])
        end
        Graphics.frame_reset
     end
     next if @mulfog[i].bitmap.nil?
     # Update fog plane
     @mulfog[i].zoom_x = ($game_map.mulfog_zoom[i] / 100.0) if @mulfog[i].zoom_x != ($game_map.mulfog_zoom[i] / 100.0)
     @mulfog[i].zoom_y = ($game_map.mulfog_zoom[i] / 100.0) if @mulfog[i].zoom_y != ($game_map.mulfog_zoom[i] / 100.0)
     @mulfog[i].opacity = $game_map.mulfog_opacity[i] if @mulfog[i].opacity != $game_map.mulfog_opacity[i]
     @mulfog[i].blend_type = $game_map.mulfog_blend_type[i] if @mulfog[i].blend_type != $game_map.mulfog_blend_type[i]
     @mulfog[i].ox = $game_map.mulfog_ox[i] + $game_map.display_x * 32 if @mulfog[i].ox != $game_map.mulfog_ox[i] + $game_map.display_x * 32
     @mulfog[i].oy = $game_map.mulfog_oy[i] + $game_map.display_y * 32 if @mulfog[i].oy != $game_map.mulfog_oy[i] + $game_map.display_y * 32
     @mulfog[i].tone = $game_map.mulfog_tone[i] if @mulfog[i].tone != $game_map.mulfog_tone[i]
    end
end

def dispose_parallax
    @mulfog.each_index do |i|
     next if @mulfog[i].nil?
     @mulfog[i].bitmap.dispose if !@mulfog[i].bitmap.nil?
     @mulfog[i].dispose
    end
    wora_mulfog_sprmap_dispal
end
end
#==================================================================
# [END] VX Multiple Fog by Woratana [woratana@hotmail.com]
#==================================================================
 

Manaprizm

Warper
Member
Joined
Jul 20, 2013
Messages
1
Reaction score
0
First Language
English
Primarily Uses
I know this script is ancient at this point, but I have a little problem.

The script works nearly perfectly and it's everything I ever wanted out of a fog script that isn't just a substitute for moving pictures like most other fog scripts tend to be. However the game I am making uses pictures (namely a HUD), and I noticed the fogs appear ABOVE the pictures which, of course, is not okay.

I have no scripting knowledge what-so-ever, but I skimmed the script anyway to see if I can fix that. I found that line 299 has "@mulfog.z = 3000" which I assumed was the cause of the problem so I changed the "3000" to a variety of numbers below 45 yet it changed absolutely nothing as far as I could tell.

The pictures I have up are on 45 through 49 if that's important. And I plan to use pictures on 50 for various things throughout the game

I'm a little surprised that over the span of 5+ years no one's had or mentioned this problem, so I'm kinda assuming I did SOMETHING wrong here. I just don't know what.

EDIT: I realized part of the dimness was because of the rain weather I had applied and well I fixed that but it still doesn't get rid of the problem entirely.
 
Last edited:

DokuDako

Villager
Member
Joined
Apr 14, 2019
Messages
14
Reaction score
0
First Language
English
Primarily Uses
RMVXA
Every time I paste this code into my project, it always ends up as a comment or always aligned to line 1, can someone give me the full code too?

EDIT: Oh wait, nevermind. Thanks!
 

Users Who Are Viewing This Thread (Users: 0, Guests: 1)

Latest Threads

Latest Profile Posts

Couple hours of work. Might use in my game as a secret find or something. Not sure. Fancy though no? :D
Holy stink, where have I been? Well, I started my temporary job this week. So less time to spend on game design... :(
Cartoonier cloud cover that better fits the art style, as well as (slightly) improved blending/fading... fading clouds when there are larger patterns is still somewhat abrupt for some reason.
Do you Find Tilesetting or Looking for Tilesets/Plugins more fun? Personally I like making my tileset for my Game (Cretaceous Park TM) xD
How many parameters is 'too many'??

Forum statistics

Threads
105,859
Messages
1,017,030
Members
137,566
Latest member
Fl0shVS
Top