Map Tiles Hue Colour Change

Discussion in 'RGSS3 Scripts (RMVX Ace)' started by MeowFace, Oct 21, 2015.

  1. MeowFace

    MeowFace Meow Veteran

    Messages:
    1,034
    Likes Received:
    178
    Location:
    La La Land
    First Language:
    Meowish
    Made for a request here.

    This script allow the hue of the map tiles on the fly simply by changing the value of a game variable.

    [​IMG]

    Features:

    [1] Change Map Tile's hue colour

    [2] Controllable by game variable

    [3] Add-on script for character hue.

    How to Use:

    [1] Paste the script below Material and above Main in your script editor.

    [2] Change the VARIABLE number in the script to variable you wish to use in game.

    [3] Set the value of the variable in game to change the hue color (0~255, 0 = normal)

    For those who wish to have character hue with the map.

    All you need is paste the add-on script below the Map Hue script in the editor.

    Compatibility:

    This script uses overwrite methods but it retained the original methods fully.

    Put this script above all other custom scripts to avoid conflicts.

    Terms of Use:

    Free for both Commercial and Non-commercial usage.

    Script:

    #==============================================================================# ■ Meow Face Tile Hue#------------------------------------------------------------------------------# Chage the hue of tiles using a game variable#==============================================================================# How to Use:# [1] Put this script below Material and above Main# [2] Change the VARIABLE number to game variable you wish to use# [3] Change the value of the variable in game to set the hue (0-255, 0 = normal)#==============================================================================module MEOWTILEHUE #Do Not Remove!#==============================================================================# SETTINGS AREA#==============================================================================  VARIABLE = 1 #The game variable you wish to use#==============================================================================# END OF SETTINGS AREA# !!EDIT BEYOND THIS LINE AT YOUR OWN RISK!!#==============================================================================endmodule Cache  def self.tileset(filename, hue = 0)    load_bitmap("Graphics/Tilesets/", filename, hue)  endendclass Spriteset_Map  alias meow_sprite_map initialize  def initialize    meow_sprite_map    @meowhue = 0  end  def load_tileset    @tileset = $game_map.tileset    @meowhue = $game_variables[MEOWTILEHUE::VARIABLE]    @tileset.tileset_names.each_with_index do |name, i|      @tilemap.bitmaps = Cache.tileset(name,@meowhue)    end    @tilemap.flags = @tileset.flags  end  def update_tileset    if @tileset != $game_map.tileset || @meowhue != $game_variables[MEOWTILEHUE::VARIABLE]      load_tileset      refresh_characters    end  endend





    ADD-ON SCRIPT FOR CHARACTER HUE:



    [​IMG]

    Add-On Script:

    #==============================================================================# ■ Meow Face Tile Hue (ADD ON for Character Hue)#------------------------------------------------------------------------------# Chage the hue of characters along with tiles#==============================================================================# Required:# Meow Face Tile Hue Script# How to Use:# [1] Put this script below Meow Face Tile Hue Script#==============================================================================module Cache  def self.character(filename, hue = 0)    load_bitmap("Graphics/Characters/", filename, hue)  endendclass Sprite_Character < Sprite_Base  def initialize(viewport, character = nil)    super(viewport)    @character = character    @balloon_duration = 0    @meowcharhue = 0    update  end  def set_character_bitmap    @meowcharhue = $game_variables[MEOWTILEHUE::VARIABLE]    self.bitmap = Cache.character(@character_name, @meowcharhue)    sign = @character_name[/^[\!\$]./]    if sign && sign.include?('$')      @cw = bitmap.width / 3      @ch = bitmap.height / 4    else      @cw = bitmap.width / 12      @ch = bitmap.height / 8    end    self.ox = @cw / 2    self.oy = @ch  end  def update_bitmap    if graphic_changed? || @meowcharhue != $game_variables[MEOWTILEHUE::VARIABLE]      @tile_id = @character.tile_id      @character_name = @character.character_name      @character_index = @character.character_index      if @tile_id > 0        set_tile_bitmap      else        set_character_bitmap      end    end  endend


    Update:

    21-10-2015 Added add-on for character hue
     
    Last edited by a moderator: Oct 21, 2015
    #1
    Reason, Demariosphere, sokita and 2 others like this.
  2. goldenroy

    goldenroy Warper Member

    Messages:
    3
    Likes Received:
    0
    First Language:
    German
    Thanks a bunch for doing this. :)
     
    #2
  3. MeowFace

    MeowFace Meow Veteran

    Messages:
    1,034
    Likes Received:
    178
    Location:
    La La Land
    First Language:
    Meowish
    You're welcome!
     
    #3
  4. Oddball

    Oddball Veteran Veteran

    Messages:
    1,552
    Likes Received:
    390
    First Language:
    English
    Primarily Uses:
    N/A
    Seems like a good script to add mood to a creepy scene/area. Or affect the mood in other ways
     
    #4
  5. MeowFace

    MeowFace Meow Veteran

    Messages:
    1,034
    Likes Received:
    178
    Location:
    La La Land
    First Language:
    Meowish
    Thanks.

    This can actually act as a map count saving solution too(for maze/puzzle map), 1 map (unlimited hue of colour).

    Have your transfer area set up with a counter variable, and have the player repeat the same map over and over again with different hue colour until the counter reached X. Then do a real transfer to next area. :p Pair that with a random dungeon generator and you can have 99 floors in just 1 map all different colour. ;)
     
    Last edited by a moderator: Oct 23, 2015
    #5
  6. Oddball

    Oddball Veteran Veteran

    Messages:
    1,552
    Likes Received:
    390
    First Language:
    English
    Primarily Uses:
    N/A
    This might help with the lost woods portions of my game to let the player know there on the right track. Not just with eventing bushes, trees, ect...
     
    #6
  7. MeowFace

    MeowFace Meow Veteran

    Messages:
    1,034
    Likes Received:
    178
    Location:
    La La Land
    First Language:
    Meowish
    Since this is hue, unlike tint, it can work in rainbow colour. So, yes, a complex map puzzle based on hue colour can be done. ;)

    And you can still use tint above the hue too, so do whatever chaos mess you like with the colours. Imaginations the limit! :p
     
    #7
    Demariosphere and Oddball like this.
  8. tale

    tale Volunteer Veteran

    Messages:
    424
    Likes Received:
    695
    Location:
    USA
    First Language:
    English
    Primarily Uses:
    N/A
    Fixed script format, credit Meow Face.
    tile_hue.png
    Code:
    #==============================================================================
    # ■ Meow Face Tile Hue
    #------------------------------------------------------------------------------
    # Chage the hue of tiles using a game variable
    #==============================================================================
    # How to Use:
    # [1] Put this script below Material and above Main
    # [2] Change the VARIABLE number to game variable you wish to use
    # [3] Change the value of the variable in game to set the hue (0-255, 0 = normal)
    #==============================================================================
    module MEOWTILEHUE #Do Not Remove!
    #==============================================================================
    # SETTINGS AREA
    #==============================================================================
      VARIABLE = 1 #The game variable you wish to use
    #==============================================================================
    # END OF SETTINGS AREA
    # !!EDIT BEYOND THIS LINE AT YOUR OWN RISK!!
    #==============================================================================
    end
    module Cache
      def self.tileset(filename, hue = 0)
        load_bitmap("Graphics/Tilesets/", filename, hue)
      end
    end
    class Spriteset_Map
      alias meow_sprite_map initialize
      def initialize
        meow_sprite_map
        @meowhue = 0
      end
      def load_tileset
        @tileset = $game_map.tileset
        @meowhue = $game_variables[MEOWTILEHUE::VARIABLE]
        @tileset.tileset_names.each_with_index do |name, i|
          @tilemap.bitmaps[i] = Cache.tileset(name,@meowhue)
        end
        @tilemap.flags = @tileset.flags
      end
      def update_tileset
        if @tileset != $game_map.tileset || @meowhue != $game_variables[MEOWTILEHUE::VARIABLE]
          load_tileset
          refresh_characters
        end
    
      end
    end
    Add-On Script:
    charhue.png
    Code:
    #==============================================================================
    # ■ Meow Face Tile Hue (ADD ON for Character Hue)
    #------------------------------------------------------------------------------
    # Chage the hue of characters along with tiles
    #==============================================================================
    # Required:
    # Meow Face Tile Hue Script
    # How to Use:
    # [1] Put this script below Meow Face Tile Hue Script
    #==============================================================================
    module Cache
      def self.character(filename, hue = 0)
        load_bitmap("Graphics/Characters/", filename, hue)
      end
    end
    class Sprite_Character < Sprite_Base
      def initialize(viewport, character = nil)
        super(viewport)
        @character = character
        @balloon_duration = 0
        @meowcharhue = 0
        update
      end
      def set_character_bitmap
        @meowcharhue = $game_variables[MEOWTILEHUE::VARIABLE]
        self.bitmap = Cache.character(@character_name, @meowcharhue)
        sign = @character_name[/^[\!\$]./]
        if sign && sign.include?('$')
          @cw = bitmap.width / 3
          @ch = bitmap.height / 4
        else
          @cw = bitmap.width / 12
          @ch = bitmap.height / 8
        end
        self.ox = @cw / 2
        self.oy = @ch
      end
      def update_bitmap
        if graphic_changed? || @meowcharhue != $game_variables[MEOWTILEHUE::VARIABLE]
          @tile_id = @character.tile_id
          @character_name = @character.character_name
          @character_index = @character.character_index
          if @tile_id > 0
            set_tile_bitmap
          else
            set_character_bitmap
          end
        end
      end
    end
     
    #8
    Romanticist likes this.

Share This Page