Surprise! another request...I'm just a big ol' leech aint I?
What I need:
I'm looking to pretty much have a fog style script that draws a picture according to the MAP x and y, instead of screen x and y. I need to utilize it for .png mapping to draw tiles overlapping the player/events (an overlay layer), so it must be locked to 0, 0 on the map, a fog or typical show picture is on the screen x and y and will move with the player. Ideally I'd like to still be able to use fogs above the fixed map overlay (currently using hevendor's fogs, in spoiler below).
Hev's fogs:
Spoiler for :
#============================================================================== # ** 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 hbgames.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 => 'treeshade.png', 2 => 'Fog01.png', 3 => 'cloud.jpg'} #============================================================================ # * Set maps you wish to have fogs here. Format: # Fog_maps = {mapID => Fog number, mapID2 => Fog number, ...} #============================================================================ Fog_maps = {2 => 1, 3 => 1, 10 =>2, 11 =>2, 12 =>2, 13 =>2, 6 => 3, 26 =>1, 29 =>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 => 50, 2 => 100, 3 => 50} Fog_zoom = {1 => 1, 2 => 1, 3 => 2} Fog_blend = {1 => 2, 2 => 2, 3 => 1} Fog_sxsy = {1 => [0, 0], 2 => [1, 2], 3 => [2, 1]} 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
So the layers end up being like this:
Fogs
Overlay (picture by map x ,y)
Events
Editor tiles
Parallax
And a pictorial version:
Spoiler for :
Overlay:
Editor:
Parallax:
All together now!
So that's the gist, I've searched the best I could here and at HB, and RRR is wiped out of scripts for the most part.
I'd really appreciate the help, I can make it work only if I make a map at the minimum size for vx, but I'd like to use this mapping style on larger maps.
Thanks!