Advertisement
LeonMMS

Untitled

Jul 12th, 2019
313
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 4.88 KB | None | 0 0
  1. #=======================================================
  2. #         Script de Névoa
  3. # Autor: Raizen
  4. # Comunidade: www.centrorpg.com
  5. # Compativel com: RMVXAce
  6. # O script permite que seja criado uma névoa, a famosa fog
  7. # que pode ser nuvens, folhas, neblina entre outros.
  8. # para ativar a fog, basta
  9. # Chamar Script:$game_map.change_fog(name, sx, sy, opacidade1, opacidade2,
  10. # taxa)
  11. # em que,
  12. # name = nome do arquivo, colocar entre aspas por exemplo, "Fog", "Névoa3"
  13. # o arquivo de imagem, deve estar dentro de uma pasta com nome
  14. # Fog, dentro da pasta Graphics do seu projeto.
  15. # sx = velocidade do loop em x(0 = sem loop)
  16. # sy = velocidade do loop em y(0 = sem loop)
  17. # opacidade1 = opacidade da névoa inicial. (255 = 100%, 0 = invisivel)
  18. # opacidade2 = opacidade da névoa final. (255 = 100%, 0 = invisivel)
  19. # taxa = o quão rápido acontece a mudança.
  20. # Um exemplo valido de como Chamar o script.
  21. # $game_map.change_fog("Fog", 2, 1, 10, 150, 2)
  22. # para desativar a névoa, basta colocar no lugar do name
  23. # 2 aspas desse modo, "".
  24. # Chamar Script:$game_map.change_fog("", 0, 0, 0, 0, 0)
  25. #=======================================================
  26. # Aqui começa o script
  27. #=======================================================
  28.  
  29. $fog_opacity = 0
  30. $fog_opacitybegin = 0
  31. module Cache
  32.   def self.fog(filename)
  33.     load_bitmap("Graphics/Fog/", filename)
  34.   end
  35. end
  36.  
  37. class Spriteset_Map
  38. alias raizenmap_initialize initialize
  39. alias raizenmap_create_viewports create_viewports
  40. alias raizenmap_dispose dispose
  41. alias raizenmap_update update
  42. alias raizenmap_update_viewports update_viewports
  43.   def initialize
  44.     create_fog
  45.     raizenmap_initialize
  46.   end
  47.   def create_viewports
  48.     raizenmap_create_viewports
  49.     @viewport4 = Viewport.new    
  50.   end
  51.   def create_fog
  52.     @fog = Plane.new(@viewport4)
  53.     @fog.z = 100
  54.   end
  55.     def dispose
  56.     raizenmap_dispose
  57.     dispose_fog
  58.   end
  59.   def dispose_fog
  60.     @fog.bitmap.dispose if @fog.bitmap
  61.     @fog.dispose
  62.   end
  63.   def update
  64.   update_fog
  65.   raizenmap_update
  66.   end
  67.   def update_fog
  68.     if @fog.opacity < $fog_opacity and $fog_opacity > $fog_opacitybegin
  69.     @fog.opacity += $game_fogtime if $game_fogtime != nil
  70.     elsif @fog.opacity > $fog_opacity and $fog_opacity < $fog_opacitybegin
  71.     @fog.opacity -= $game_fogtime if $game_fogtime != nil
  72.     end
  73.     if @fog_name != $game_fog_name
  74.       @fog.opacity = $fog_opacitybegin
  75.       @fog_name = $game_fog_name
  76.       @fog.bitmap.dispose if @fog.bitmap
  77.       @fog.bitmap = Cache.fog(@fog_name) if @fog_name != ""
  78.       Graphics.frame_reset
  79.     end
  80.     if @fog_name != nil and $game_fog_name != ""
  81.     @fog.ox = $game_map.fog_ox(@fog.bitmap)
  82.     @fog.oy = $game_map.fog_oy(@fog.bitmap)
  83.     end
  84.   end
  85.   def update_viewports
  86.     @viewport4.tone.set($game_map.screen.tone)
  87.     @viewport4.update
  88.     raizenmap_update_viewports
  89.   end
  90. end
  91.  
  92.  
  93. class Game_Map
  94. alias raizen_map_setup setup_parallax
  95. alias raizen_map_update update_parallax
  96.   def setup_parallax
  97.     setup_fog
  98.     raizen_map_setup
  99.   end
  100.   def setup_fog
  101.     $game_fog_name = Note.read_string('FogName', @map.note)
  102.     number = Note.read_number('FogTempo', @map.note)
  103.     $game_fogtime = number ? number : 0    
  104.     @fog_loop_x = 0
  105.     @fog_loop_y = 0
  106.     number = Note.read_number('FogSX', @map.note)
  107.     @fog_sx = number ? number : 0
  108.     number = Note.read_number('FogSY', @map.note)
  109.     @fog_sy = number ? number : 0  
  110.     @fog_sx != 0 ? (@fog_loop_x = true) : @fog_loop_x = false
  111.     @fog_sy != 0 ? (@fog_loop_y = true) : @fog_loop_y = false    
  112.     @fog_x = 0
  113.     @fog_y = 0
  114.     number = Note.read_number('FogOpacity1', @map.note)
  115.     $fog_opacitybegin = number ? number : 0
  116.     number = Note.read_number('FogOpacity2', @map.note)
  117.     $fog_opacity = number ? number : 0        
  118.   end
  119.   def fog_ox(bitmap)
  120.     if @fog_loop_x
  121.       @fog_x * 16
  122.     else
  123.       w1 = [bitmap.width - Graphics.width, 0].max
  124.       w2 = [width * 32 - Graphics.width, 1].max
  125.       @fog_x * 16 * w1 / w2
  126.     end
  127.   end
  128.   def fog_oy(bitmap)
  129.     if @fog_loop_y
  130.       @fog_y * 16
  131.     else
  132.       if $game_fog_name != ""
  133.       h1 = [bitmap.height - Graphics.height, 0].max
  134.       h2 = [height * 32 - Graphics.height, 1].max
  135.       @fog_y * 16 * h1 / h2
  136.       end
  137.     end
  138.   end
  139.  
  140.   def update_parallax
  141.     raizen_map_update
  142.     update_fog if @fog_name != ""
  143.   end
  144.  
  145.   def update_fog
  146.     @fog_x += @fog_sx / 64.0 if @fog_loop_x
  147.     @fog_y += @fog_sy / 64.0 if @fog_loop_y
  148.   end
  149.  
  150.   def change_fog(name, sx, sy, opacidade1, opacidade2, tempo)
  151.     $game_fog_name = name
  152.     $game_fogtime = tempo
  153.     $fog_opacitybegin = opacidade1
  154.     $fog_opacity = opacidade2
  155.     @fog_x = 0  
  156.     @fog_y = 0
  157.     sx != 0 ? (@fog_loop_x = true) : @fog_loop_x = false
  158.     sy != 0 ? (@fog_loop_y = true) : @fog_loop_y = false
  159.     @fog_sx = sx
  160.     @fog_sy = sy
  161.   end
  162. end
  163. module Note
  164.   def self.read_string(str, note)
  165.     note[/#{str}=(.*)/, 1]
  166.   end  
  167. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement