Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #==============================================================================
- # ** Custom Resolution - Tilemap Tone Changer
- # Version : 1.12
- # Author : LiTTleDRAgo
- #==============================================================================
- #
- # Introduction :
- #
- # This script is made for F0's Custom Resolution, it can change the
- # tilemap's tone along with the selected character.
- #
- # How to Use :
- #
- # Script :
- # change_tilemap_tone(TONE,*CHARACTER) # change tilemap tone
- # change_character_tone(TONE,*CHARACTER) # change character tone without
- # changing the tilemap
- #
- # TONE = [R,G,B,A] or Tone.new(R,G,B,A)
- #
- # CHARACTER = $game_map.events.values # all events
- # = $game_map.events.keys # all events
- # = $game_player # player
- # = -1 # player
- # = 0 # this event
- # = [2,3,4,6] # events with selected id
- # = [-1,2,3,4,6] # player & events with selected id
- # = [0,2,3,4,6] # this event & events with selected id
- # = (1..99) # events in range
- # = [(1..8),20,25,(30..42)] # events in range
- #
- # * will not change the character tone if left out
- #
- #
- # Example :
- #
- # Script : tone = Tone.new(20,20,20,160)
- # char = $game_map.events.values
- # change_tilemap_tone(tone,char)
- #
- #===============================================================================
- ($imported ||= {})[:drg_tilemap_tone_changer] = 1.12
- core = "This script needs Drago - Core Engine ver 1.43 or above"
- reso = "This script needs F0's Custom Resolution"
- rmxp = "This script only for RMXP"
- $imported[:drg_core_engine] || raise(core)
- $resolution || raise(reso)
- LiTTleDRAgo::XP || raise(rmxp)
- #==============================================================================
- # ** Spriteset_Map
- #------------------------------------------------------------------------------
- # This class brings together map screen sprites, tilemaps, etc.
- # It's used within the Scene_Map class.
- #==============================================================================
- class Spriteset_Map
- #---------------------------------------------------------------------------
- # * Public Instance Variables
- #---------------------------------------------------------------------------
- attr_reader :viewport1, :viewport2, :viewport3
- #---------------------------------------------------------------------------
- # * New method: viewport_sprite
- #---------------------------------------------------------------------------
- def viewport_sprite(*v)
- v.collect! {|s| s.is_a?(Symbol) ? instance_variable_get(:"@#{s}") : s }
- v.reject! {|s| s.not.is_a?(Viewport)}
- all = instance_variables.map {|s| instance_variable_get("#{s}")}.flatten
- all.select {|s| s.respond_to?(:viewport) && v.include?(s.viewport)}
- end
- end
- #==============================================================================
- # ** Interpreter
- #------------------------------------------------------------------------------
- # This interpreter runs event commands. This class is used within the
- # Game_System class and the Game_Event class.
- #==============================================================================
- class Interpreter
- #---------------------------------------------------------------------------
- # * New method: change_tilemap_tone
- #---------------------------------------------------------------------------
- def change_tilemap_tone(tone, *char)
- sprite = $game_map.spriteset.viewport_sprite(:viewport1)
- sprite.reject! {|s| s.is_a?(Sprite_Character)}
- sprite.each do |s|
- if tone.is_a?(Array) && (3..4) === tone.size
- s.tone = Tone.new(*tone)
- elsif tone.is_a?(Tone)
- s.tone = tone
- end
- end
- change_character_tone(tone, *char) unless char.empty?
- end
- #---------------------------------------------------------------------------
- # * New method: change_character_tone
- #---------------------------------------------------------------------------
- def change_character_tone(tone, *char)
- char = char.collect {|c| c.is_a?(Range) ? c.to_a : c}.flatten
- char = char.collect {|c| c.is_a?(Range) ? c.to_a : c}.flatten
- char.collect! {|c| c.is_a?(Game_Character) ? c : get_character(c)}
- sprite = $game_map.spriteset.viewport_sprite(:viewport1)
- sprite.reject! {|s| s.not.is_a?(Sprite_Character) }
- sprite.reject! {|s| char.not.include?(s.character)}
- if tone.is_a?(Array) && (3..4) === tone.size
- sprite.tone(:tone=, Tone.new(*tone))
- elsif tone.is_a?(Tone)
- sprite.send(:tone=, tone)
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement