Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #===============================================================================
- #
- #-------------------------------------------------------------------------------
- #-------------------------------------------------------------------------------
- # Script : Multifogs 2.0
- # por JessWishes
- #-------------------------------------------------------------------------------
- #-------------------------------------------------------------------------------
- # Creado para RPG Maker XP con base Essentials
- # Compatible : versión 15+
- #-------------------------------------------------------------------------------
- #
- #-------------------------------------------------------------------------------
- # DevianArt :
- # https://www.deviantart.com/jesswshs
- #
- # Twitter :
- # https://twitter.com/JessWishes
- #
- # Pagina de Recursos :
- # https://jesswishesdev.weebly.com
- #
- # CreadoresEssentials en Discord :
- # https://discord.gg/VvrSQwz
- #
- #-------------------------------------------------------------------------------
- #
- #-------------------------------------------------------------------------------
- # Esto ha tomado tiempo y esfuerzo en ser diseñado, aunque es de uso libre,
- # se agradece que se den créditos.
- #
- #-------------------------------------------------------------------------------
- #
- #-------------------------------------------------------------------------------
- # Modo de uso
- #
- # Copiar y pegar en un nuevo script arriba del llamado Main.
- #
- # El objetivo de este script es brindar la oportunidad de crear diferentes
- # efectos usando más de un solo gráfico de fog/niebla por mapa.
- #
- # Este script no afecta al efecto de fog original de RMXP, ya que los nuevos
- # gráficos se manejan independientes a este.
- #
- # Para agregar uno o más gráficos de fogs :
- #
- # 1.- Añadir en un cuadro de script dentro de un evento la siguiente función
- # (No olvidar seleccionar la opción "Proceso Paralelo" del evento)
- #
- # jess_fogs(ID,NOMBRE,HUE,OPACO,BLEND,ZOOM,VX,VY,MOV)
- #
- # *ID : Deberá ser el ID del nuevo fog, comenzando con el cero
- # *NOMBRE : Nombre del gráfico en la carpeta Graphics/Fogs/ usando comillas
- # *HUE : Tonalidad del gráfico, es un valor entre 0 y 360
- # *OPACO : Nivel de transparencia del gráfico, entre 0 y 255
- # *BLEND : Efecto de capas de color, puede ser 0, 1 o 2
- # *ZOOM : Expandir el tamaño del gráfico, 1 es normal, 2 es doble, etc.
- # *VX : Velocidad de movimiento para el eje X
- # *VY : Velocidad de movimiento para el eje Y
- # *MOV : El fog se moverá junto con el jugador (true/false)
- #
- # Solo el ID y el NOMBRE del archivo son parametros obligatorios.
- #
- # ¡ES IMPORTANTE recordar que los ID deben ir en orden! por ejemplo :
- #
- # jess_fogs(0,"Hojas")
- # jess_fogs(1,"Nubes")
- # jess_fogs(2,"Sombras")
- #
- #
- # 2.- Para que un fog se mantenga estático en la pantalla se agrega un false
- # al final de los argumentos.
- #
- # jess_fogs(0,"Hojas",0,255,0,1,0,0,false)
- #
- # Para hacer que todo los fogs se mantengan siempre estáticos se debe usar
- # la constante JSS_MFOGS_NOPLANE y darle el valor true
- #
- #
- # 3.- En caso que se desea eliminar todos los gráficos de fogs, se usa
- # la siguiente función :
- #
- # jess_fogs_disposeAll
- #
- # Esta función es solo para casos especiales, en condiciones normales
- # no debería ser usado. Los fogs se eliminan cuando el jugador cambia de
- # mapa y se vuelven a crear al regresar.
- #
- #
- #-------------------------------------------------------------------------------
- # Constantes
- #-------------------------------------------------------------------------------
- # Hacer que el o los gráficos de fog se mantengan estáticos en el mapa
- # Esto aplica para todos los fogs en el mapa
- JSS_MFOGS_NOPLANE = false
- # Dirección de la carpeta donde se guardan los gráficos de Fogs
- JSS_MFOGS_DIR = "Graphics/Fogs"
- #-------------------------------------------------------------------------------
- # Multi-Fogs
- # * Aquí comienza todo
- #-------------------------------------------------------------------------------
- #
- #-------------------------------------------------------------------------------
- # Eliminar todos los gráficos actuales
- # * No debería ser usado en condiciones normales
- #-------------------------------------------------------------------------------
- def jess_fogs_disposeAll
- return if !$scene.is_a?(Scene_Map)
- return if $scene.spriteset.j_fog.size<1
- for m in 0...$scene.spriteset.j_fog.size
- $scene.spriteset.j_fog[m]=nil
- if $scene.spriteset.j_fog_bmp[m]
- $scene.spriteset.j_fog_bmp[m].dispose
- $scene.spriteset.j_fog_bmp[m]=nil
- end
- end
- $scene.spriteset.j_fog = []
- $scene.spriteset.j_fog_bmp = []
- end
- #-------------------------------------------------------------------------------
- # Crear un nuevo gráfico de fog
- # * Guarda la información de cada gráfico
- #-------------------------------------------------------------------------------
- def jess_fogs(id=0,nombre="",hue=0,opacity=255,blend=0,zoom=1.0,sx=0,sy=0,stf=true)
- return if !$scene.is_a?(Scene_Map)
- $scene.spriteset.j_fog=[] if !$scene.spriteset.j_fog
- $scene.spriteset.j_fog[id]=[nombre,hue,opacity,blend,zoom,sx,sy,stf]
- end
- #-------------------------------------------------------------------------------
- # Spriteset_Map
- # * Editar la información de sprites en el mapa actual
- #-------------------------------------------------------------------------------
- class Spriteset_Map
- attr_accessor :j_fog
- attr_accessor :j_fog_bmp
- #-------------------------------------------------------------------------------
- # Iniciar class
- #-------------------------------------------------------------------------------
- alias ini_jess initialize
- def initialize(map=nil)
- ini_jess(map)
- @j_fog = []
- @j_fog_bmp = []
- end
- #-------------------------------------------------------------------------------
- # Update
- #-------------------------------------------------------------------------------
- alias up_jess update
- def update
- up_jess
- vista = @viewport1.is_a?(Viewport) ? @viewport1 : @@viewport1
- @j_fog = [] if !@j_fog
- @j_fog_bmp = [] if !@j_fog_bmp
- if @j_fog.size>0
- for fg in 0...@j_fog.size
- next if @j_fog[fg]==nil
- if @j_fog[fg][0]==""
- @j_fog_bmp[fg].dispose if $game_player.jf02[fg]
- @j_fog_bmp[fg]=nil
- end
- if !@j_fog_bmp[fg]
- @j_fog_bmp[fg] = Plane.new(vista)
- @j_fog_bmp[fg].z = 3000
- @j_fog_bmp[fg].bitmap = Bitmap.new("#{JSS_MFOGS_DIR}/#{@j_fog[fg][0]}")
- @j_fog_bmp[fg].bitmap.hue_change(@j_fog[fg][1])
- @j_fog_bmp[fg].opacity = @j_fog[fg][2]
- @j_fog_bmp[fg].blend_type = @j_fog[fg][3]
- @j_fog_bmp[fg].zoom_x = @j_fog[fg][4]
- @j_fog_bmp[fg].zoom_y = @j_fog[fg][4]
- end
- @j_fog_bmp[fg].ox+= @j_fog[fg][5] if @j_fog[fg][5]>0
- @j_fog_bmp[fg].oy+= @j_fog[fg][6] if @j_fog[fg][6]>0
- if JSS_MFOGS_NOPLANE == false
- @j_fog_bmp[fg].ox = @map.display_x/4+@map.fog_ox if @j_fog[fg][7]==true && @j_fog[fg][5]==0
- @j_fog_bmp[fg].oy = @map.display_y/4+@map.fog_oy if @j_fog[fg][7]==true && @j_fog[fg][6]==0
- end
- @j_fog_bmp[fg].update
- end
- end
- end
- #-------------------------------------------------------------------------------
- # Dispose
- #-------------------------------------------------------------------------------
- alias dis_jess dispose
- def dispose
- dis_jess
- if @j_fog.size>0
- for fg in 0...@j_fog.size
- @j_fog_bmp[fg].dispose if @j_fog_bmp[fg]
- end
- end
- end
- end
- #
- #-------------------------------------------------------------------------------
- #
- #-------------------------------------------------------------------------------
- #
- #-------------------------------------------------------------------------------
- #===============================================================================
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement