Advertisement
Guest User

FFVI Memory Buzz/Fizz - VxAce

a guest
Jan 12th, 2012
1,026
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 15.12 KB | None | 0 0
  1.  
  2. #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=#
  3. # Bitmap Functions
  4. #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=#
  5. #
  6. # FenixFyreX
  7. #
  8. # This script primarily gives scripters more options when working with
  9. # bitmaps.
  10. #
  11. # However, this script also allows the user to apply these effects to the map
  12. # and the characters upon that map.
  13. #
  14. # NOTE: YOU MUST HAVE WHITEFLUTE's BITMAP-EX script and .dll FOR THIS TO WORK.
  15. #
  16. # Here are the script calls you can make for the map:
  17. #
  18. #    invert_map
  19. #    pixelate_map(power)
  20. #    diffuse_map(power)
  21. #    blur_map(power)
  22. #    darken_map
  23. #    lighten_map
  24. #    postaraiz_map
  25. #
  26. #
  27. # Here are the script calls you can make for the characters on the map; keep in
  28. # mind index:
  29. #
  30. #    index == -3    applies to all vehicles, events, and players
  31. #    index == -2    applies to all vehicles
  32. #    index == -1    applies to player
  33. #    index ==  0    applies to this event
  34. #    index == 1+    applies to event indicated by index
  35. #
  36. #    invert_characters(index)
  37. #    pixelate_characters(index, power)
  38. #    diffuse_characters(index, power)
  39. #    blur_characters(index, power)
  40. #    darken_characters(index)
  41. #    lighten_characters(index)
  42. #    postaraiz_characters(index)
  43. #
  44. #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=#
  45. #
  46. # If you are a scripter or know of the bitmap and sprite classes, to use one of
  47. # these functions, jsut call them like any other;
  48. #
  49. #  sprite.bitmap.mosaic!
  50. #
  51. #      OR
  52. #
  53. #  bitmap.mosaic!
  54. #
  55. #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=#
  56.  
  57.  
  58.  
  59. module Bitmap_Functs
  60.  
  61.   Use_Buzzer_Effect = true
  62.  
  63. end
  64.  
  65. module Cache
  66.   def clear_folder(folder_name)
  67.     @cache.each_pair do |p,b|
  68.       if p.include?(folder_name)
  69.         b.dispose
  70.       end
  71.     end
  72.   end
  73. end
  74.  
  75. $imported ||= {}
  76. $imported['FFVI_Buzzer_MemFizzle'] = true
  77.  
  78. class Scene_Base
  79.  
  80.   # -=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=- #
  81.   #  Buzzer Effect, Memory Fade, Create Count  #
  82.   # -=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=- #  
  83.  
  84.   def create_mosaic_effect(speed=4, power=4, iterations=3)
  85.     memsprite = Sprite.new
  86.     memsprite.z = 3000000
  87.     array = []
  88.     for i in 0..iterations
  89.       array.push i
  90.     end
  91.     for i in array
  92.       memsprite.bitmap = Graphics.snap_to_bitmap
  93.       memsprite.bitmap.mosaic!(power*i, power*i)
  94.       create_count(speed, memsprite)
  95.       memsprite.bitmap.dispose
  96.     end
  97.     for i in array.reverse
  98.       memsprite.bitmap = Graphics.snap_to_bitmap
  99.       memsprite.bitmap.mosaic!(power*i, power*i)
  100.       create_count(speed, memsprite)
  101.       memsprite.bitmap.dispose
  102.     end
  103.     memsprite = nil
  104.   end
  105.  
  106.   def create_buzzer_effect
  107.     buzsprite = Sprite.new
  108.     buzsprite.z = 3000000
  109.     buzsprite.bitmap = Graphics.snap_to_bitmap
  110.     create_count(1, buzsprite)
  111.     buzsprite.bitmap.mosaic!(9,9)
  112.     create_count(1, buzsprite)
  113.     buzsprite.bitmap.mosaic!(12,12)
  114.     create_count(1, buzsprite)
  115.     buzsprite.bitmap.dispose
  116.     buzsprite.bitmap = Graphics.snap_to_bitmap
  117.     buzsprite.bitmap.mosaic!(9,9)
  118.     create_count(1, buzsprite)
  119.     buzsprite.bitmap.dispose
  120.     buzsprite.dispose
  121.     buzsprite = nil
  122.   end
  123.  
  124.   def dead_object(obj)
  125.     return true if obj.nil?
  126.     return true if defined?(obj.disposed?) and obj.disposed?
  127.     return false
  128.   end
  129.  
  130.   def create_count(number, obj_to_updt=nil)
  131.     count = number
  132.     begin
  133.       Graphics.update
  134.       Input.update
  135.       if !obj_to_updt.is_a?(Array)
  136.         obj_to_updt.update unless dead_object(obj_to_updt) or !defined?(obj_to_updt.update)
  137.       else
  138.         for i in obj_to_updt
  139.           i.update unless dead_object(i) or !defined?(i.update)
  140.         end
  141.       end
  142.       count -= 1
  143.     end until count < 0
  144.   end
  145. end
  146.  
  147. module Sound
  148.  
  149.   class << self
  150.  
  151.     alias play_buzzer_bmpfx play_buzzer
  152.     def play_buzzer
  153.       play_buzzer_bmpfx
  154.       SceneManager.scene.create_buzzer_effect
  155.     end
  156.   end
  157. end
  158.  
  159. class Game_Interpreter
  160.  
  161.   def invert_map
  162.     return if SceneManager.scene.spriteset.nil?
  163.     return if SceneManager.scene.spriteset.get_tilemap.nil?
  164.     for i in 0...8
  165.       next if SceneManager.scene.spriteset.get_tilemap.bitmaps[i].inverted
  166.       SceneManager.scene.spriteset.get_tilemap.bitmaps[i].reversing!
  167.     end
  168.   end
  169.  
  170.   def pixelate_map(power=nil)
  171.     return if SceneManager.scene.spriteset.nil?
  172.     return if SceneManager.scene.spriteset.get_tilemap.nil?
  173.     for i in 0...8
  174.       SceneManager.scene.spriteset.get_tilemap.bitmaps[i].mosaic! if power.nil?
  175.       SceneManager.scene.spriteset.get_tilemap.bitmaps[i].mosaic!(power,power) unless power.nil?
  176.     end
  177.   end
  178.  
  179.   def diffuse_map(power=nil)
  180.     return if SceneManager.scene.spriteset.nil?
  181.     return if SceneManager.scene.spriteset.get_tilemap.nil?
  182.     for i in 0...8
  183.       SceneManager.scene.spriteset.get_tilemap.bitmaps[i].diffusion! if power.nil?
  184.       SceneManager.scene.spriteset.get_tilemap.bitmaps[i].diffusion!(power) unless power.nil?
  185.     end
  186.   end
  187.  
  188.   def blur_map(power=nil)
  189.     return if SceneManager.scene.spriteset.nil?
  190.     return if SceneManager.scene.spriteset.get_tilemap.nil?
  191.     for i in 0...8
  192.       SceneManager.scene.spriteset.get_tilemap.bitmaps[i].blur! if power.nil?
  193.       SceneManager.scene.spriteset.get_tilemap.bitmaps[i].blur!(power) unless power.nil?
  194.     end
  195.   end
  196.  
  197.   def darken_map
  198.     return if SceneManager.scene.spriteset.nil?
  199.     return if SceneManager.scene.spriteset.get_tilemap.nil?
  200.     for i in 0...8
  201.       SceneManager.scene.spriteset.get_tilemap.bitmaps[i].darkrndimg!
  202.     end
  203.   end
  204.  
  205.   def lighten_map
  206.     return if SceneManager.scene.spriteset.nil?
  207.     return if SceneManager.scene.spriteset.get_tilemap.nil?
  208.     for i in 0...8
  209.       SceneManager.scene.spriteset.get_tilemap.bitmaps[i].lightrndimg!
  210.     end
  211.   end
  212.  
  213.   def postaraiz_map
  214.     return if SceneManager.scene.spriteset.nil?
  215.     return if SceneManager.scene.spriteset.get_tilemap.nil?
  216.     for i in 0...8
  217.       SceneManager.scene.spriteset.get_tilemap.bitmaps[i].postaraiz!
  218.     end
  219.   end
  220.  
  221.   def invert_characters(ind)
  222.     return if SceneManager.scene.spriteset.nil?
  223.     if ind == -3
  224.       for i in SceneManager.scene.spriteset.character_sprites
  225.         i.bitmap.reversing! unless i.bitmap.inverted
  226.       end
  227.     elsif ind == -2
  228.       for i in SceneManager.scene.spriteset.character_sprites
  229.         next if !i.character.is_a?(Game_Vehicle)
  230.         i.bitmap.reversing! unless i.bitmap.inverted
  231.       end
  232.     elsif ind == -1
  233.       for i in SceneManager.scene.spriteset.character_sprites
  234.         next if !i.character.is_a?(Game_Player)
  235.         i.bitmap.reversing! unless i.bitmap.inverted
  236.       end
  237.     elsif ind == 0
  238.       for i in SceneManager.scene.spriteset.character_sprites
  239.         next unless i.character.is_a?(Game_Event)
  240.         next unless i.character.ev_id == @event_id
  241.         i.bitmap.reversing! unless i.bitmap.inverted
  242.       end
  243.     elsif ind > 0
  244.       for i in SceneManager.scene.spriteset.character_sprites
  245.         next unless i.character.is_a?(Game_Event)
  246.         next unless i.character.ev_id == ind
  247.         i.bitmap.reversing! unless i.bitmap.inverted
  248.       end
  249.     end
  250.   end
  251.  
  252.   def pixelate_characters(ind, power=nil)
  253.     return if SceneManager.scene.spriteset.nil?
  254.     if ind == -3
  255.       for i in SceneManager.scene.spriteset.character_sprites
  256.         i.bitmap.mosaic! if power.nil?
  257.         i.bitmap.mosaic!(power,power) unless power.nil?
  258.       end
  259.     elsif ind == -2
  260.       for i in SceneManager.scene.spriteset.character_sprites
  261.         next if !i.character.is_a?(Game_Vehicle)
  262.         i.bitmap.mosaic! if power.nil?
  263.         i.bitmap.mosaic!(power,power) unless power.nil?
  264.       end
  265.     elsif ind == -1
  266.       for i in SceneManager.scene.spriteset.character_sprites
  267.         next if !i.character.is_a?(Game_Player)
  268.         i.bitmap.mosaic! if power.nil?
  269.         i.bitmap.mosaic!(power,power) unless power.nil?
  270.       end
  271.     elsif ind == 0
  272.       for i in SceneManager.scene.spriteset.character_sprites
  273.         next unless i.character.is_a?(Game_Event)
  274.         next unless i.character.ev_id == @event_id
  275.         i.bitmap.mosaic! if power.nil?
  276.         i.bitmap.mosaic!(power,power) unless power.nil?
  277.       end
  278.     elsif ind > 0
  279.       for i in SceneManager.scene.spriteset.character_sprites
  280.         next unless i.character.is_a?(Game_Event)
  281.         next unless i.character.ev_id == ind
  282.         i.bitmap.mosaic! if power.nil?
  283.         i.bitmap.mosaic!(power,power) unless power.nil?
  284.       end
  285.     end
  286.   end
  287.  
  288.   def diffuse_characters(ind, power=nil)
  289.     return if SceneManager.scene.spriteset.nil?
  290.     if ind == -3
  291.       for i in SceneManager.scene.spriteset.character_sprites
  292.         i.bitmap.diffusion! if power.nil?
  293.         i.bitmap.diffusion!(power) unless power.nil?
  294.       end
  295.     elsif ind == -2
  296.       for i in SceneManager.scene.spriteset.character_sprites
  297.         next if !i.character.is_a?(Game_Vehicle)
  298.         i.bitmap.diffusion! if power.nil?
  299.         i.bitmap.diffusion!(power) unless power.nil?
  300.       end
  301.     elsif ind == -1
  302.       for i in SceneManager.scene.spriteset.character_sprites
  303.         next if !i.character.is_a?(Game_Player)
  304.         i.bitmap.diffusion! if power.nil?
  305.         i.bitmap.diffusion!(power) unless power.nil?
  306.       end
  307.     elsif ind == 0
  308.       for i in SceneManager.scene.spriteset.character_sprites
  309.         next unless i.character.is_a?(Game_Event)
  310.         next unless i.character.ev_id == @event_id
  311.         i.bitmap.diffusion! if power.nil?
  312.         i.bitmap.diffusion!(power) unless power.nil?
  313.       end
  314.     elsif ind > 0
  315.       for i in SceneManager.scene.spriteset.character_sprites
  316.         next unless i.character.is_a?(Game_Event)
  317.         next unless i.character.ev_id == ind
  318.         i.bitmap.diffusion! if power.nil?
  319.         i.bitmap.diffusion!(power) unless power.nil?
  320.       end
  321.     end
  322.   end
  323.  
  324.   def blur_characters(ind, power=nil)
  325.     return if SceneManager.scene.spriteset.nil?
  326.     if ind == -3
  327.       for i in SceneManager.scene.spriteset.character_sprites
  328.         i.bitmap.blur! if power.nil?
  329.         i.bitmap.blur!(power) unless power.nil?
  330.       end
  331.     elsif ind == -2
  332.       for i in SceneManager.scene.spriteset.character_sprites
  333.         next if !i.character.is_a?(Game_Vehicle)
  334.         i.bitmap.blur! if power.nil?
  335.         i.bitmap.blur!(power) unless power.nil?
  336.       end
  337.     elsif ind == -1
  338.       for i in SceneManager.scene.spriteset.character_sprites
  339.         next if !i.character.is_a?(Game_Player)
  340.         i.bitmap.blur! if power.nil?
  341.         i.bitmap.blur!(power) unless power.nil?
  342.       end
  343.     elsif ind == 0
  344.       for i in SceneManager.scene.spriteset.character_sprites
  345.         next unless i.character.is_a?(Game_Event)
  346.         next unless i.character.ev_id == @event_id
  347.         i.bitmap.blur! if power.nil?
  348.         i.bitmap.blur!(power) unless power.nil?
  349.       end
  350.     elsif ind > 0
  351.       for i in SceneManager.scene.spriteset.character_sprites
  352.         next unless i.character.is_a?(Game_Event)
  353.         next unless i.character.ev_id == ind
  354.         i.bitmap.blur! if power.nil?
  355.         i.bitmap.blur!(power) unless power.nil?
  356.       end
  357.     end
  358.   end
  359.  
  360.   def lighten_characters(ind)
  361.     return if SceneManager.scene.spriteset.nil?
  362.     if ind == -3
  363.       for i in SceneManager.scene.spriteset.character_sprites
  364.         i.bitmap.lightrndimg!
  365.       end
  366.     elsif ind == -2
  367.       for i in SceneManager.scene.spriteset.character_sprites
  368.         next if !i.character.is_a?(Game_Vehicle)
  369.         i.bitmap.lightrndimg!
  370.       end
  371.     elsif ind == -1
  372.       for i in SceneManager.scene.spriteset.character_sprites
  373.         next if !i.character.is_a?(Game_Player)
  374.         i.bitmap.lightrndimg!
  375.       end
  376.     elsif ind == 0
  377.       for i in SceneManager.scene.spriteset.character_sprites
  378.         next unless i.character.is_a?(Game_Event)
  379.         next unless i.character.ev_id == @event_id
  380.         i.bitmap.lightrndimg!
  381.       end
  382.     elsif ind > 0
  383.       for i in SceneManager.scene.spriteset.character_sprites
  384.         next unless i.character.is_a?(Game_Event)
  385.         next unless i.character.ev_id == ind
  386.         i.bitmap.lightrndimg!
  387.       end
  388.     end
  389.   end
  390.  
  391.   def darken_characters(ind)
  392.     return if SceneManager.scene.spriteset.nil?
  393.     if ind == -3
  394.       for i in SceneManager.scene.spriteset.character_sprites
  395.         i.bitmap.darkrndimg!
  396.       end
  397.     elsif ind == -2
  398.       for i in SceneManager.scene.spriteset.character_sprites
  399.         next if !i.character.is_a?(Game_Vehicle)
  400.         i.bitmap.darkrndimg!
  401.       end
  402.     elsif ind == -1
  403.       for i in SceneManager.scene.spriteset.character_sprites
  404.         next if !i.character.is_a?(Game_Player)
  405.         i.bitmap.darkrndimg!
  406.       end
  407.     elsif ind == 0
  408.       for i in SceneManager.scene.spriteset.character_sprites
  409.         next unless i.character.is_a?(Game_Event)
  410.         next unless i.character.ev_id == @event_id
  411.         i.bitmap.darkrndimg!
  412.       end
  413.     elsif ind > 0
  414.       for i in SceneManager.scene.spriteset.character_sprites
  415.         next unless i.character.is_a?(Game_Event)
  416.         next unless i.character.ev_id == ind
  417.         i.bitmap.darkrndimg!
  418.       end
  419.     end
  420.   end
  421.  
  422.   def postaraiz_characters(ind)
  423.     return if SceneManager.scene.spriteset.nil?
  424.     if ind == -3
  425.       for i in SceneManager.scene.spriteset.character_sprites
  426.         i.bitmap.postaraiz!
  427.       end
  428.     elsif ind == -2
  429.       for i in SceneManager.scene.spriteset.character_sprites
  430.         next if !i.character.is_a?(Game_Vehicle)
  431.         i.bitmap.postaraiz!
  432.       end
  433.     elsif ind == -1
  434.       for i in SceneManager.scene.spriteset.character_sprites
  435.         next if !i.character.is_a?(Game_Player)
  436.         i.bitmap.postaraiz!
  437.       end
  438.     elsif ind == 0
  439.       for i in SceneManager.scene.spriteset.character_sprites
  440.         next unless i.character.is_a?(Game_Event)
  441.         next unless i.character.ev_id == @event_id
  442.         i.bitmap.postaraiz!
  443.       end
  444.     elsif ind > 0
  445.       for i in SceneManager.scene.spriteset.character_sprites
  446.         next unless i.character.is_a?(Game_Event)
  447.         next unless i.character.ev_id == ind
  448.         i.bitmap.postaraiz!
  449.       end
  450.     end
  451.   end
  452.  
  453.   def refresh_spriteset
  454.     return unless SceneManager.scene.is_a?(Scene_Map)
  455.     SceneManager.scene.refresh_spriteset
  456.   end
  457.  
  458.   def mosaic_effect(speed=4, power=4, iterations=3)
  459.     if SceneManager.scene.message_window.openness > 0
  460.       begin
  461.         Graphics.update
  462.         Input.update
  463.         SceneManager.scene.spriteset.update
  464.         SceneManager.scene.message_window.openness -= 48
  465.       end until SceneManager.scene.message_window.openness <= 0
  466.     end
  467.     SceneManager.scene.create_mosaic_effect(speed, power, iterations)
  468.   end
  469. end
  470.  
  471. class Scene_Map < Scene_Base
  472.  
  473.   attr_accessor :message_window
  474.   attr_accessor :spriteset
  475.  
  476.   def refresh_spriteset
  477.     Cache.clear_folder("System/")
  478.     Cache.clear_folder("Character/")
  479.     @spriteset.dispose
  480.     @spriteset = Spriteset_Map.new
  481.   end  
  482. end
  483.  
  484. class Spriteset_Map
  485.  
  486.   def get_tilemap
  487.     @tilemap
  488.   end
  489.  
  490.   def char_sprites
  491.     @character_sprites
  492.   end
  493. end
  494.  
  495. class Game_Event < Game_Character
  496.  
  497.   def ev_id
  498.     return @event_id
  499.   end
  500. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement