# 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 => 'fog.png'} #============================================================================ # * Set maps you wish to have fogs here. Format: # Fog_maps = {mapID => Fog number, mapID2 => Fog number, ...} #============================================================================ Fog_maps = {7 => 1, 10 => 1, 8 => 1, 11 => 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 => 100} 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
스크립트입니다. 인터넷에 fog 검색하셔서 안개 사진 다운로드 하시고 런타임 패키지 그래픽 폴더에 picture에 넣으시고 이 스크립트 입력하시면 됩니다.
네이버 카페 RPG 만들기 포럼에 있는 VX용 안개 스크립트 링크를 달아둡니다.
http://cafe.naver.com/dd00oo/47757