Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=#
- # Bitmap Functions
- #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=#
- #
- # FenixFyreX
- #
- # This script primarily gives scripters more options when working with
- # bitmaps.
- #
- # However, this script also allows the user to apply these effects to the map
- # and the characters upon that map.
- #
- # NOTE: YOU MUST HAVE WHITEFLUTE's BITMAP-EX script and .dll FOR THIS TO WORK.
- #
- # Here are the script calls you can make for the map:
- #
- # invert_map
- # pixelate_map(power)
- # diffuse_map(power)
- # blur_map(power)
- # darken_map
- # lighten_map
- # postaraiz_map
- #
- #
- # Here are the script calls you can make for the characters on the map; keep in
- # mind index:
- #
- # index == -3 applies to all vehicles, events, and players
- # index == -2 applies to all vehicles
- # index == -1 applies to player
- # index == 0 applies to this event
- # index == 1+ applies to event indicated by index
- #
- # invert_characters(index)
- # pixelate_characters(index, power)
- # diffuse_characters(index, power)
- # blur_characters(index, power)
- # darken_characters(index)
- # lighten_characters(index)
- # postaraiz_characters(index)
- #
- #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=#
- #
- # If you are a scripter or know of the bitmap and sprite classes, to use one of
- # these functions, jsut call them like any other;
- #
- # sprite.bitmap.mosaic!
- #
- # OR
- #
- # bitmap.mosaic!
- #
- #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=#
- module Bitmap_Functs
- Use_Buzzer_Effect = true
- end
- module Cache
- def clear_folder(folder_name)
- @cache.each_pair do |p,b|
- if p.include?(folder_name)
- b.dispose
- end
- end
- end
- end
- $imported ||= {}
- $imported['FFVI_Buzzer_MemFizzle'] = true
- class Scene_Base
- # -=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=- #
- # Buzzer Effect, Memory Fade, Create Count #
- # -=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=- #
- def create_mosaic_effect(speed=4, power=4, iterations=3)
- memsprite = Sprite.new
- memsprite.z = 3000000
- array = []
- for i in 0..iterations
- array.push i
- end
- for i in array
- memsprite.bitmap = Graphics.snap_to_bitmap
- memsprite.bitmap.mosaic!(power*i, power*i)
- create_count(speed, memsprite)
- memsprite.bitmap.dispose
- end
- for i in array.reverse
- memsprite.bitmap = Graphics.snap_to_bitmap
- memsprite.bitmap.mosaic!(power*i, power*i)
- create_count(speed, memsprite)
- memsprite.bitmap.dispose
- end
- memsprite = nil
- end
- def create_buzzer_effect
- buzsprite = Sprite.new
- buzsprite.z = 3000000
- buzsprite.bitmap = Graphics.snap_to_bitmap
- create_count(1, buzsprite)
- buzsprite.bitmap.mosaic!(9,9)
- create_count(1, buzsprite)
- buzsprite.bitmap.mosaic!(12,12)
- create_count(1, buzsprite)
- buzsprite.bitmap.dispose
- buzsprite.bitmap = Graphics.snap_to_bitmap
- buzsprite.bitmap.mosaic!(9,9)
- create_count(1, buzsprite)
- buzsprite.bitmap.dispose
- buzsprite.dispose
- buzsprite = nil
- end
- def dead_object(obj)
- return true if obj.nil?
- return true if defined?(obj.disposed?) and obj.disposed?
- return false
- end
- def create_count(number, obj_to_updt=nil)
- count = number
- begin
- Graphics.update
- Input.update
- if !obj_to_updt.is_a?(Array)
- obj_to_updt.update unless dead_object(obj_to_updt) or !defined?(obj_to_updt.update)
- else
- for i in obj_to_updt
- i.update unless dead_object(i) or !defined?(i.update)
- end
- end
- count -= 1
- end until count < 0
- end
- end
- module Sound
- class << self
- alias play_buzzer_bmpfx play_buzzer
- def play_buzzer
- play_buzzer_bmpfx
- SceneManager.scene.create_buzzer_effect
- end
- end
- end
- class Game_Interpreter
- def invert_map
- return if SceneManager.scene.spriteset.nil?
- return if SceneManager.scene.spriteset.get_tilemap.nil?
- for i in 0...8
- next if SceneManager.scene.spriteset.get_tilemap.bitmaps[i].inverted
- SceneManager.scene.spriteset.get_tilemap.bitmaps[i].reversing!
- end
- end
- def pixelate_map(power=nil)
- return if SceneManager.scene.spriteset.nil?
- return if SceneManager.scene.spriteset.get_tilemap.nil?
- for i in 0...8
- SceneManager.scene.spriteset.get_tilemap.bitmaps[i].mosaic! if power.nil?
- SceneManager.scene.spriteset.get_tilemap.bitmaps[i].mosaic!(power,power) unless power.nil?
- end
- end
- def diffuse_map(power=nil)
- return if SceneManager.scene.spriteset.nil?
- return if SceneManager.scene.spriteset.get_tilemap.nil?
- for i in 0...8
- SceneManager.scene.spriteset.get_tilemap.bitmaps[i].diffusion! if power.nil?
- SceneManager.scene.spriteset.get_tilemap.bitmaps[i].diffusion!(power) unless power.nil?
- end
- end
- def blur_map(power=nil)
- return if SceneManager.scene.spriteset.nil?
- return if SceneManager.scene.spriteset.get_tilemap.nil?
- for i in 0...8
- SceneManager.scene.spriteset.get_tilemap.bitmaps[i].blur! if power.nil?
- SceneManager.scene.spriteset.get_tilemap.bitmaps[i].blur!(power) unless power.nil?
- end
- end
- def darken_map
- return if SceneManager.scene.spriteset.nil?
- return if SceneManager.scene.spriteset.get_tilemap.nil?
- for i in 0...8
- SceneManager.scene.spriteset.get_tilemap.bitmaps[i].darkrndimg!
- end
- end
- def lighten_map
- return if SceneManager.scene.spriteset.nil?
- return if SceneManager.scene.spriteset.get_tilemap.nil?
- for i in 0...8
- SceneManager.scene.spriteset.get_tilemap.bitmaps[i].lightrndimg!
- end
- end
- def postaraiz_map
- return if SceneManager.scene.spriteset.nil?
- return if SceneManager.scene.spriteset.get_tilemap.nil?
- for i in 0...8
- SceneManager.scene.spriteset.get_tilemap.bitmaps[i].postaraiz!
- end
- end
- def invert_characters(ind)
- return if SceneManager.scene.spriteset.nil?
- if ind == -3
- for i in SceneManager.scene.spriteset.character_sprites
- i.bitmap.reversing! unless i.bitmap.inverted
- end
- elsif ind == -2
- for i in SceneManager.scene.spriteset.character_sprites
- next if !i.character.is_a?(Game_Vehicle)
- i.bitmap.reversing! unless i.bitmap.inverted
- end
- elsif ind == -1
- for i in SceneManager.scene.spriteset.character_sprites
- next if !i.character.is_a?(Game_Player)
- i.bitmap.reversing! unless i.bitmap.inverted
- end
- elsif ind == 0
- for i in SceneManager.scene.spriteset.character_sprites
- next unless i.character.is_a?(Game_Event)
- next unless i.character.ev_id == @event_id
- i.bitmap.reversing! unless i.bitmap.inverted
- end
- elsif ind > 0
- for i in SceneManager.scene.spriteset.character_sprites
- next unless i.character.is_a?(Game_Event)
- next unless i.character.ev_id == ind
- i.bitmap.reversing! unless i.bitmap.inverted
- end
- end
- end
- def pixelate_characters(ind, power=nil)
- return if SceneManager.scene.spriteset.nil?
- if ind == -3
- for i in SceneManager.scene.spriteset.character_sprites
- i.bitmap.mosaic! if power.nil?
- i.bitmap.mosaic!(power,power) unless power.nil?
- end
- elsif ind == -2
- for i in SceneManager.scene.spriteset.character_sprites
- next if !i.character.is_a?(Game_Vehicle)
- i.bitmap.mosaic! if power.nil?
- i.bitmap.mosaic!(power,power) unless power.nil?
- end
- elsif ind == -1
- for i in SceneManager.scene.spriteset.character_sprites
- next if !i.character.is_a?(Game_Player)
- i.bitmap.mosaic! if power.nil?
- i.bitmap.mosaic!(power,power) unless power.nil?
- end
- elsif ind == 0
- for i in SceneManager.scene.spriteset.character_sprites
- next unless i.character.is_a?(Game_Event)
- next unless i.character.ev_id == @event_id
- i.bitmap.mosaic! if power.nil?
- i.bitmap.mosaic!(power,power) unless power.nil?
- end
- elsif ind > 0
- for i in SceneManager.scene.spriteset.character_sprites
- next unless i.character.is_a?(Game_Event)
- next unless i.character.ev_id == ind
- i.bitmap.mosaic! if power.nil?
- i.bitmap.mosaic!(power,power) unless power.nil?
- end
- end
- end
- def diffuse_characters(ind, power=nil)
- return if SceneManager.scene.spriteset.nil?
- if ind == -3
- for i in SceneManager.scene.spriteset.character_sprites
- i.bitmap.diffusion! if power.nil?
- i.bitmap.diffusion!(power) unless power.nil?
- end
- elsif ind == -2
- for i in SceneManager.scene.spriteset.character_sprites
- next if !i.character.is_a?(Game_Vehicle)
- i.bitmap.diffusion! if power.nil?
- i.bitmap.diffusion!(power) unless power.nil?
- end
- elsif ind == -1
- for i in SceneManager.scene.spriteset.character_sprites
- next if !i.character.is_a?(Game_Player)
- i.bitmap.diffusion! if power.nil?
- i.bitmap.diffusion!(power) unless power.nil?
- end
- elsif ind == 0
- for i in SceneManager.scene.spriteset.character_sprites
- next unless i.character.is_a?(Game_Event)
- next unless i.character.ev_id == @event_id
- i.bitmap.diffusion! if power.nil?
- i.bitmap.diffusion!(power) unless power.nil?
- end
- elsif ind > 0
- for i in SceneManager.scene.spriteset.character_sprites
- next unless i.character.is_a?(Game_Event)
- next unless i.character.ev_id == ind
- i.bitmap.diffusion! if power.nil?
- i.bitmap.diffusion!(power) unless power.nil?
- end
- end
- end
- def blur_characters(ind, power=nil)
- return if SceneManager.scene.spriteset.nil?
- if ind == -3
- for i in SceneManager.scene.spriteset.character_sprites
- i.bitmap.blur! if power.nil?
- i.bitmap.blur!(power) unless power.nil?
- end
- elsif ind == -2
- for i in SceneManager.scene.spriteset.character_sprites
- next if !i.character.is_a?(Game_Vehicle)
- i.bitmap.blur! if power.nil?
- i.bitmap.blur!(power) unless power.nil?
- end
- elsif ind == -1
- for i in SceneManager.scene.spriteset.character_sprites
- next if !i.character.is_a?(Game_Player)
- i.bitmap.blur! if power.nil?
- i.bitmap.blur!(power) unless power.nil?
- end
- elsif ind == 0
- for i in SceneManager.scene.spriteset.character_sprites
- next unless i.character.is_a?(Game_Event)
- next unless i.character.ev_id == @event_id
- i.bitmap.blur! if power.nil?
- i.bitmap.blur!(power) unless power.nil?
- end
- elsif ind > 0
- for i in SceneManager.scene.spriteset.character_sprites
- next unless i.character.is_a?(Game_Event)
- next unless i.character.ev_id == ind
- i.bitmap.blur! if power.nil?
- i.bitmap.blur!(power) unless power.nil?
- end
- end
- end
- def lighten_characters(ind)
- return if SceneManager.scene.spriteset.nil?
- if ind == -3
- for i in SceneManager.scene.spriteset.character_sprites
- i.bitmap.lightrndimg!
- end
- elsif ind == -2
- for i in SceneManager.scene.spriteset.character_sprites
- next if !i.character.is_a?(Game_Vehicle)
- i.bitmap.lightrndimg!
- end
- elsif ind == -1
- for i in SceneManager.scene.spriteset.character_sprites
- next if !i.character.is_a?(Game_Player)
- i.bitmap.lightrndimg!
- end
- elsif ind == 0
- for i in SceneManager.scene.spriteset.character_sprites
- next unless i.character.is_a?(Game_Event)
- next unless i.character.ev_id == @event_id
- i.bitmap.lightrndimg!
- end
- elsif ind > 0
- for i in SceneManager.scene.spriteset.character_sprites
- next unless i.character.is_a?(Game_Event)
- next unless i.character.ev_id == ind
- i.bitmap.lightrndimg!
- end
- end
- end
- def darken_characters(ind)
- return if SceneManager.scene.spriteset.nil?
- if ind == -3
- for i in SceneManager.scene.spriteset.character_sprites
- i.bitmap.darkrndimg!
- end
- elsif ind == -2
- for i in SceneManager.scene.spriteset.character_sprites
- next if !i.character.is_a?(Game_Vehicle)
- i.bitmap.darkrndimg!
- end
- elsif ind == -1
- for i in SceneManager.scene.spriteset.character_sprites
- next if !i.character.is_a?(Game_Player)
- i.bitmap.darkrndimg!
- end
- elsif ind == 0
- for i in SceneManager.scene.spriteset.character_sprites
- next unless i.character.is_a?(Game_Event)
- next unless i.character.ev_id == @event_id
- i.bitmap.darkrndimg!
- end
- elsif ind > 0
- for i in SceneManager.scene.spriteset.character_sprites
- next unless i.character.is_a?(Game_Event)
- next unless i.character.ev_id == ind
- i.bitmap.darkrndimg!
- end
- end
- end
- def postaraiz_characters(ind)
- return if SceneManager.scene.spriteset.nil?
- if ind == -3
- for i in SceneManager.scene.spriteset.character_sprites
- i.bitmap.postaraiz!
- end
- elsif ind == -2
- for i in SceneManager.scene.spriteset.character_sprites
- next if !i.character.is_a?(Game_Vehicle)
- i.bitmap.postaraiz!
- end
- elsif ind == -1
- for i in SceneManager.scene.spriteset.character_sprites
- next if !i.character.is_a?(Game_Player)
- i.bitmap.postaraiz!
- end
- elsif ind == 0
- for i in SceneManager.scene.spriteset.character_sprites
- next unless i.character.is_a?(Game_Event)
- next unless i.character.ev_id == @event_id
- i.bitmap.postaraiz!
- end
- elsif ind > 0
- for i in SceneManager.scene.spriteset.character_sprites
- next unless i.character.is_a?(Game_Event)
- next unless i.character.ev_id == ind
- i.bitmap.postaraiz!
- end
- end
- end
- def refresh_spriteset
- return unless SceneManager.scene.is_a?(Scene_Map)
- SceneManager.scene.refresh_spriteset
- end
- def mosaic_effect(speed=4, power=4, iterations=3)
- if SceneManager.scene.message_window.openness > 0
- begin
- Graphics.update
- Input.update
- SceneManager.scene.spriteset.update
- SceneManager.scene.message_window.openness -= 48
- end until SceneManager.scene.message_window.openness <= 0
- end
- SceneManager.scene.create_mosaic_effect(speed, power, iterations)
- end
- end
- class Scene_Map < Scene_Base
- attr_accessor :message_window
- attr_accessor :spriteset
- def refresh_spriteset
- Cache.clear_folder("System/")
- Cache.clear_folder("Character/")
- @spriteset.dispose
- @spriteset = Spriteset_Map.new
- end
- end
- class Spriteset_Map
- def get_tilemap
- @tilemap
- end
- def char_sprites
- @character_sprites
- end
- end
- class Game_Event < Game_Character
- def ev_id
- return @event_id
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement