RPG Maker Forums

Hey i dont know if this part of the forums is where i ask this but i need a part of a script changed that i got online. It's a charset Maker script for rmxp made by Moonpearl/Perlune.

FEATURES = [:skin, :eyes, :feet, :legs, :hands, :torso1, :torso2, :shoulders, :hair, :facial_hair1, :facial_hair2, :hat, :back ]OPTIONS = [:picture, :hue, :brightness, :x_offset, :y_offset]DEFAULT_LIBRARY = "Standard"DEFAULT_PICTURES = { "Standard" => ["Standard Pale.png", "Eyes02.png", "Shoes01.png", "Pants01.png", nil, "Shirt01.png", nil, nil, "Hair01.png", nil, nil, nil, nil], "Chubby" => ["Chubby Skin Pale.png", "Eyes01.png", "Boots.png", "Slacks.png", nil, "Sweater.png", "Vest.png", nil, "Coiffed.png", nil, nil, nil, nil]}NAME_NO_PICTURE = "<None>"DIR_DATA = "Data/Charsets"FILENAME_SAVE = "Selection"FILENAME_RENDER = "Render"COLOR1 = Color.new(255, 0, 255, 128)COLOR2 = Color.new(192, 0, 192, 128)HELP_MESSAGE = { "Edit" => "Edit the current selection", "Load..." => "Load previously saved data to the maker", "Save" => "Save current selection for future use", "Library..." => "Select a different graphic library to build charset with", "Default" => "Revert to default selection", "Randomize" => "Randomize each feature for which a selection has been made", "Use as hero" => "Replace the player's graphic with the current render", "To image file" => "Save current render as a .PNG file", "Credits" => "Find out who's behind this great program" }module RPG module Cache class << self def replace(key, bitmap) unless @cache[key].nil? @cache[key].dispose end @cache[key] = bitmap end def part(type, filename, hue = 0, brightness = 0) self.load_bitmap("Graphics/Characters/#{Charset.library}/#{type.display}/", filename, hue, brightness) end alias mp_charset_load_bitmap load_bitmap def load_bitmap(folder_name, filename, hue = 0, brightness = 0) if brightness == 0 return mp_charset_load_bitmap(folder_name, filename, hue) else path = folder_name + filename key = [path, 0, brightness] if not @cache.include?(key) or @cache[key].disposed? @cache[key] = self.load_bitmap(folder_name, filename).clone if brightness > 0 @cache[key].lighten(brightness.to_f / 10) else @cache[key].darken(brightness.abs.to_f / 10) end end if hue == 0 return @cache[key] else key = [path, hue, brightness] if not @cache.include?(key) or @cache[key].disposed? @cache[key] = @cache[ [path, 0, brightness] ].clone @cache[key].hue_change(hue) end return @cache[key] end end end end end def self.warn(message) $game_system.se_play($data_system.decision_se) Graphics.freeze window = Window_Base.new(32, 192, 576, 96) window.contents = Bitmap.new(window.width - 32, window.height - 32) window.contents.draw_text(0, 0, window.width - 32, 32, message, 1) window.contents.draw_text(0, 32, 544, 32, "OK", 1) window.cursor_rect.set(208, 32, 128, 32) window.active = true window.z = 5000 Graphics.transition loop do Input.update Graphics.update window.update if Input.trigger?(Input::C) or Input.trigger?(Input:: $game_system.se_play($data_system.cancel_se) break end end Graphics.freeze window.dispose Graphics.transition return end def self.confirm(message) $game_system.se_play($data_system.buzzer_se) Graphics.freeze window = Window_Base.new(32, 192, 576, 96) window.contents = Bitmap.new(window.width - 32, window.height - 32) window.contents.draw_text(0, 0, window.width - 32, 32, message, 1) window.contents.draw_text(0, 32, 272, 32, "OK", 1) window.contents.draw_text(272, 32, 272, 32, "Cancel", 1) window.cursor_rect.set(72, 32, 128, 32) window.active = true window.z = 5000 Graphics.transition index = 0 result = nil while result.nil? Input.update Graphics.update window.update if Input.repeat?(Input::LEFT) or Input.repeat?(Input::RIGHT) $game_system.se_play($data_system.cursor_se) index += 1 index %= 2 window.cursor_rect.set(72 + 272 * index, 32, 128, 32) end if Input.trigger?(Input::C) $game_system.se_play($data_system.decision_se) result = index == 0 end if Input.trigger?(Input:: $game_system.se_play($data_system.cancel_se) result = false end end Graphics.freeze window.dispose Graphics.transition return result endendclass Bitmap def darken(factor) factor = 1 - factor for y in 0...self.height for x in 0...self.width color = self.get_pixel(x, y) next if color.alpha == 0 self.set_pixel(x, y, Color.new(color.red * factor, color.green * factor, color.blue * factor, color.alpha) ) end end GC.start end def lighten(factor) p = 255 * factor factor = 1 - factor for y in 0...self.height for x in 0...self.width color = self.get_pixel(x, y) next if color.alpha == 0 self.set_pixel(x, y, Color.new(color.red * factor + p, color.green * factor + p, color.blue * factor + p, color.alpha) ) end end GC.start endendclass Bitmask def initialize(size = 1) @data = [0] resize(size) end def [](i) if i >= @size raise RangeError, "Bit ##{i} not defined (max = #{@size - 1}) in Bitmask#[]" end return @data[i >> 5][i & 31] == 1 end def []=(i, case b when TrueClass, FalseClass if self == b return nil else @data[i >> 5] ^= 2 ** i return b end else raise TypeError, "TrueClass or FalseClass expected as parameters in Bitmask#[]=" end end def resize(size) while (size >> 5) >= @data.size @data << 0 end @size = size end def to_s str = String.new for i in 0...@size if i & 7 == 0 str << " " end str << @data[i >> 5][i & 31].to_s end return str endendclass Dir def self.files(directory = self.pwd, *filters) ary = [] for filename in self.entries(directory) next if File.directory?(filename) or filename == "." or filename == ".." if filters.empty? or filters.include?(File.extname(filename)) ary << filename end end return ary end def self.subdirectories(directory = self.pwd) ary = [] for filename in self.entries(directory) if File.directory?(filename) ary << filename end end return ary endendclass File def self.directory?(filename) return false if filename == "." return true if self.extname(filename) == "" return false endendmodule Charset VIEWPORT = Viewport.new(0, 0, 640, 480) VIEWPORT.z = 1000 class << self attr_reader :data attr_accessor :library def init(library = DEFAULT_LIBRARY) @library = library @data = [] for i in 0...FEATURES.size feature = Feature.new(FEATURES) feature.picture = DEFAULT_PICTURES[@library] unless DEFAULT_PICTURES[@library].nil? @data << feature end end def render bitmap = Bitmap.new(128, 192) for feature in @data next if feature.picture == NAME_NO_PICTURE src_bitmap = RPG::Cache.part(feature.type, feature.picture, feature.hue, feature.brightness) start_x = feature.x_offset >= 0 ? 0 : feature.x_offset.abs start_y = feature.y_offset >= 0 ? 0 : feature.y_offset.abs rect = Rect.new(start_x, start_y, 128 - feature.x_offset.abs, 192 - feature.y_offset.abs) start_x = feature.x_offset >= 0 ? feature.x_offset : 0 start_y = feature.y_offset >= 0 ? feature.y_offset : 0 bitmap.blt(start_x, start_y, src_bitmap, rect) end return bitmap end def cache(name) RPG::Cache.replace("Graphics/Characters/#{name}", self.render) end end class Feature attr_reader :type attr_accessor :hue attr_accessor :brightness attr_accessor :x_offset attr_accessor :y_offset def initialize(type) @type = type @picture = nil @hue = 0 @brightness = 0 @x_offset = 0 @y_offset = 0 end def picture if @picture == nil return NAME_NO_PICTURE else return @picture end end def picture=(name) if name == NAME_NO_PICTURE @picture = nil else @picture = name end end endendclass Game_Temp alias mp_charset_initialize initialize def initialize mp_charset_initialize Charset.init endendclass Sprite_Part < RPG::Sprite def initialize(id, x, y) super(Charset::VIEWPORT) @id = id @_x = x @_y = y self.z = id end def feature return Charset.data[@id] end def refresh if self.feature.picture == NAME_NO_PICTURE self.bitmap = nil return end self.x = @_x + self.feature.x_offset self.y = @_y + self.feature.y_offset self.bitmap = RPG::Cache.part(self.feature.type, self.feature.picture, self.feature.hue, self.feature.brightness) @_whiten_duration = 1 endendclass Window_Menu < Window_Selectable attr_reader :options attr_reader :disabled def initialize(x, y, width, max_height, options) @options = options super(x, y, width, [max_height, (@options.size + 1) * 32].min) self.contents = Bitmap.new(width - 32, @options.size * 32) @item_max = @options.size @disabled = Bitmask.new(@item_max) self.index = 0 refresh end def refresh self.contents.clear for i in 0...@options.size self.contents.font.color = @disabled ? disabled_color : normal_color self.contents.draw_text(4, i * 32, width - 32, 32, @options) end end def disable_option(i) return false if @disabled @disabled = true refresh return true end def enable_option(i) return false unless @disabled @disabled = false refresh return true end def update_help @help_window.set_text(HELP_MESSAGE[@options[self.index]], 1) endendclass Window_Charset < Window_Base attr_reader :menu_windows attr_accessor :index def initialize super(0,0,640,64) self.contents = Bitmap.new(self.width - 32, self.height - 32) @item_max = 3 x = self.contents.width / @item_max for i in 0...@item_max self.contents.draw_text(x * i + 4, 0, x, 32, case i when 0 "Selection" when 1 "Render" when 2 "?" end ) end @menu_windows = [] for i in 0...@item_max window = Window_Menu.new(16 + x * i, 64, x, 160, case i # Selection Menu when 0 ["Edit", "Load...", "Save", "Library...", "Default", "Randomize"] # Export Menu when 1 ["Use as hero", "To image file"] # ? Menu when 2 ["Credits"] end ) window.visible = false window.active = false window.z = 4000 @menu_windows << window end end def help_window=(help_window) for window in @menu_windows window.help_window = help_window end end def index=(i) unless @index.nil? menu_window.visible = false menu_window.active = false end if i == -1 @index = nil self.cursor_rect.empty return end @index = i x = self.contents.width / @item_max self.cursor_rect.set(x * @index, 0, x, 32) menu_window.visible = true menu_window.active = true end def update return unless self.active super menu_window.update if Input.repeat?(Input::LEFT) $game_system.se_play($data_system.cursor_se) self.index = (self.index - 1) % @item_max end if Input.repeat?(Input::RIGHT) $game_system.se_play($data_system.cursor_se) self.index = (self.index + 1) % @item_max end end def activate self.active = true self.index = 0 end def deactivate self.active = false self.index = -1 end def menu_window return @menu_windows[self.index] end def option return menu_window.options[menu_window.index] end def dispose for window in @menu_windows window.dispose end super endendclass Window_Feature < Window_Selectable def initialize super(0, 64, 96, 352) @item_max = Charset.data.size self.index = -1 self.active = false self.contents = Bitmap.new(width - 32, @item_max * 32) refresh end def feature(i = self.index) return Charset.data.type end def refresh self.contents.clear for i in 0...@item_max self.contents.draw_text(4, i * 32, 64, 32, self.feature(i).display ) end end def update return unless self.active super end def activate self.active = true end def deactivate self.active = false end def update_help @help_window.set_text("C: Edit feature B: Return to top menu A: Edit all L/R: Change order", 1) endendclass Window_FeatureOption < Window_Selectable attr_accessor :feature_window attr_accessor :edit_all def initialize super(96, 64, 224, 352) self.contents = Bitmap.new(self.width - 32, self.height - 32) @item_max = OPTIONS.size self.index = -1 self.active = false self.visible = true @edit_all = false @need_refresh = false end def feature(i = @feature_window.index) return Charset.data end def option return OPTIONS[self.index] end def refresh @need_refresh = true @pictures = Dir.files("Graphics/Characters/#{Charset.library}/#{feature.type.display}", ".bmp", ".png", ".jpg") @pictures.unshift(NAME_NO_PICTURE) @picture_index = @pictures.index(self.feature.picture) self.contents.clear for i in 0...@item_max if i == 0 and @edit_all self.contents.font.color = disabled_color else self.contents.font.color = system_color end self.contents.draw_text(4, i * 32, 64, 32, OPTIONS.display) end for i in 0...@item_max if self.feature.send(OPTIONS).is_a?(Numeric) text = sprintf("%+d", self.feature.send(OPTIONS)) else text = self.feature.send(OPTIONS).to_s end if i == 0 and @edit_all self.contents.font.color = disabled_color self.contents.draw_text(64, i * 32, 124, 32, "---", 2) else self.contents.font.color = normal_color self.contents.draw_text(64, i * 32, 124, 32, text, 2) end end end def update return unless self.active super if @edit_all return if option == :picture for i in 0...Charset.data.size update_feature(i) end else update_feature end if option == :picture and feature.picture != NAME_NO_PICTURE if Input.repeat?(Input::Z) picture_index = @picture_index regexp = Regexp.new(feature.picture[0, feature.picture.size - 6] + "\\d{2}.\\w{3}") while @pictures[picture_index] =~ regexp picture_index += 1 if picture_index == @pictures.size $game_system.se_play($data_system.buzzer_se) return end end $game_system.se_play($data_system.cursor_se) @picture_index = picture_index self.feature.picture = @pictures[@picture_index] self.refresh end if Input.repeat?(Input::Y) picture_index = @picture_index regexp = Regexp.new(feature.picture[0, feature.picture.size - 6] + "\\d{2}.\\w{3}") while @pictures[picture_index] =~ regexp picture_index -= 1 if picture_index == 0 $game_system.se_play($data_system.buzzer_se) return end end $game_system.se_play($data_system.cursor_se) @picture_index = picture_index self.feature.picture = @pictures[@picture_index] self.refresh end end end def update_feature(i = @feature_window.index) if Input.repeat?(Input::LEFT) $game_system.se_play($data_system.cursor_se) case option when :picture @picture_index -= 1 @picture_index %= @pictures.size self.feature(i).picture = @pictures[@picture_index] when :hue feature(i).hue -= 10 feature(i).hue %= 360 else eval("feature(i).#{option} -= 1") end self.refresh return true end if Input.repeat?(Input::RIGHT) $game_system.se_play($data_system.cursor_se) case option when :picture @picture_index += 1 @picture_index %= @pictures.size self.feature(i).picture = @pictures[@picture_index] when :hue feature(i).hue += 10 feature(i).hue %= 360 else eval("feature(i).#{option} += 1") end self.refresh return true end return false end def activate self.active = true self.index = 0 end def deactivate self.active = false self.index = -1 end def update_help @help_window.set_text("<-/->: Adjust parameter C: Apply changes B: Cancel changes L/R: Change order", 1) end def need_refresh if @need_refresh @need_refresh = false return true end return false endendclass Window_LoadSelection < Window_Selectable def initialize super(0, 64, 320, 352) self.contents = Bitmap.new(width - 32, height - 32) self.active = false self.visible = false self.z = 1000 @need_refresh = false end def refresh @data = Dir.files(DIR_DATA)#, "*.rxdata") return false if @data.empty? @item_max = @data.size for i in 0...@item_max self.contents.draw_text(4, i * 32, self.width - 32, 32, @data) end end def filename return "#{DIR_DATA}/#{@data[self.index]}" end def update return unless self.active super if Input.repeat?(Input::DOWN) or Input.repeat?(Input::UP) or Input.repeat?(Input::L) or Input.repeat?(Input::R) update_selection end end def update_selection @need_refresh = true file = File.open(self.filename, "r") Charset.library = Marshal.load(file) Charset.data.replace(Marshal.load(file)) file.close end def activate self.active = true self.visible = true self.index = 0 self.update_selection end def deactivate self.active = false self.visible = false end def update_help @help_window.set_text("C: Load current selection B: Cancel selection load", 1) end def need_refresh if @need_refresh @need_refresh = false return true end return false endendclass Window_LoadSelection < Window_Selectable def initialize super(0, 64, 320, 352) self.contents = Bitmap.new(width - 32, height - 32) self.active = false self.visible = false self.z = 1000 @need_refresh = false end def refresh @data = Dir.files(DIR_DATA)#, "*.rxdata") return false if @data.empty? @item_max = @data.size for i in 0...@item_max self.contents.draw_text(4, i * 32, self.width - 32, 32, @data) end end def filename return "#{DIR_DATA}/#{@data[self.index]}" end def update return unless self.active super if Input.repeat?(Input::DOWN) or Input.repeat?(Input::UP) or Input.repeat?(Input::L) or Input.repeat?(Input::R) update_selection end end def update_selection @need_refresh = true file = File.open(self.filename, "r") Charset.library = Marshal.load(file) Charset.data.replace(Marshal.load(file)) file.close end def activate self.active = true self.visible = true self.index = 0 self.update_selection end def deactivate self.active = false self.visible = false end def update_help @help_window.set_text("C: Load current selection B: Cancel selection load", 1) end def need_refresh if @need_refresh @need_refresh = false return true end return false endendclass Window_LibrarySelection < Window_Selectable def initialize super(0, 64, 320, 352) self.contents = Bitmap.new(width - 32, height - 32) self.active = false self.visible = false self.z = 1000 @need_refresh = false end def refresh @data = Dir.subdirectories("Graphics/Characters") return false if @data.empty? @item_max = @data.size for i in 0...@item_max self.contents.draw_text(4, i * 32, self.width - 32, 32, @data) end end def library return @data[self.index] end def update return unless self.active super if Input.repeat?(Input::DOWN) or Input.repeat?(Input::UP) or Input.repeat?(Input::L) or Input.repeat?(Input::R) update_selection end end def update_selection @need_refresh = true Charset.init(library) end def activate self.active = true self.visible = true self.index = 0 self.update_selection end def deactivate self.active = false self.visible = false end def update_help @help_window.set_text("C: Load current library B: Cancel library selection", 1) end def need_refresh if @need_refresh @need_refresh = false return true end return false endendclass Scene_Charset < Scene_Base def setup super @sprites << @charset_window = Window_Charset.new @sprites << @feature_window = Window_Feature.new @sprites << @option_window = Window_FeatureOption.new @option_window.feature_window = @feature_window @sprites << @preview_window = Window_Base.new(320, 64, 320, 352) @sprites << @load_window = Window_LoadSelection.new @sprites << @library_window = Window_LibrarySelection.new @sprites << @help_window = Window_Help.new @help_window.y = 416 @charset_window.help_window = @feature_window.help_window = @option_window.help_window = @load_window.help_window = @library_window.help_window = @help_window @charset_window.activate @preview_window.contents = Bitmap.new(@preview_window.width - 32, @preview_window.height - 32) @preview_window.active = false def @preview_window.refresh self.contents.clear self.contents.draw_text(0, 0, 144, 32, "Selected", 1) if self.active self.contents.draw_text(160, 0, 144, 32, "Preview", 1) end end def @preview_window.activate self.active = true self.refresh end def @preview_window.deactivate self.active = false self.refresh end @preview_window.refresh @option_windows = [] @preview_sprites = [] @selected_sprites = [] bitmap = Bitmap.new(128, 192) for y in 0...4 for x in 0...4 bitmap.fill_rect(x * 32, y * 48, 32, 48, (x + y) % 2 == 0 ? COLOR1 : COLOR2) end end sprite = Sprite.new(Charset::VIEWPORT) sprite.bitmap = bitmap sprite.x = 496 sprite.y = 128 sprite.visible = false def sprite.refresh; return; end @sprites << sprite @preview_sprites << sprite sprite = Sprite.new(Charset::VIEWPORT) sprite.bitmap = bitmap sprite.x = 336 sprite.y = 128 def sprite.refresh; return; end @sprites << sprite for i in 0...FEATURES.size sprite = Sprite_Part.new(i, 496, 128) sprite.visible = false @sprites << sprite @preview_sprites << sprite sprite = Sprite_Part.new(i, 336, 128) @sprites << sprite @selected_sprites << sprite end @selected_animated = [] @preview_animated = [] for i in 0..3 rect = Rect.new(0, i * 48, 32, 48) sprite = RPG::Sprite.new(Charset::VIEWPORT) sprite.x = 336 + i * 32 sprite.y = 344 sprite.src_rect = rect @selected_animated << sprite @sprites << sprite sprite = RPG::Sprite.new(Charset::VIEWPORT) sprite.x = 496 + i * 32 sprite.y = 344 sprite.src_rect = rect sprite.visible = false @preview_animated << sprite @sprites << sprite end refresh_selected refresh_preview if Dir.files(DIR_DATA, ".rxdata").empty? i = @charset_window.menu_windows[0].options.index("Load...") @charset_window.menu_windows[0].disable_option(i) end @blink_count = 0 @frame_count = 0 @frame = 0 @animation_rect = [] for i in 0..15 @animation_rect << Rect.new(i % 4 * 32, i / 4 * 48, 32, 48) end update_animation end def terminate super for sprite in @selected_sprites sprite.dispose end end def refresh_selected for sprite in @selected_sprites sprite.refresh end bitmap = Charset.cache("Render") for sprite in @selected_animated sprite.bitmap = bitmap end end def refresh_preview for sprite in @preview_sprites sprite.refresh end bitmap = Charset.cache("Preview") for sprite in @preview_animated sprite.bitmap = bitmap end end def show_preview for sprite in @preview_sprites + @preview_animated sprite.visible = true end end def hide_preview for sprite in @preview_sprites + @preview_animated sprite.visible = false end end def enable_save enable_export i = @charset_window.menu_windows[0].options.index("Save") @charset_window.menu_windows[0].enable_option(i) end def disable_save i = @charset_window.menu_windows[0].options.index("Save") @charset_window.menu_windows[0].disable_option(i) end def enable_export i = @charset_window.menu_windows[1].options.index("To image file") @charset_window.menu_windows[1].enable_option(i) end def disable_export i = @charset_window.menu_windows[1].options.index("To image file") @charset_window.menu_windows[1].disable_option(i) end def export_disabled? i = @charset_window.menu_windows[1].options.index("To image file") return @charset_window.menu_windows[1].disabled end def save_disabled? i = @charset_window.menu_windows[0].options.index("Save") return @charset_window.menu_windows[0].disabled end def update_animation if @frame_count == 0 @frame_count = 8 @frame += 1 @frame %= 4 end @frame_count -= 1 for i in 0..3 @selected_animated.src_rect = @preview_animated.src_rect = @animation_rect[i * 4 + @frame] end end def update super if @option_window.need_refresh or @load_window.need_refresh or @library_window.need_refresh refresh_preview end # Confirm Selection if Input.trigger?(Input::C) # If in command window if @charset_window.active case @charset_window.option # Edit sprite when "Edit" $game_system.se_play($data_system.decision_se) @charset_window.deactivate @feature_window.activate @blink_count = 0 @feature_window.index = 0 @option_window.refresh # Default when "Default" return unless RPG.confirm("Lose all changes and revert to default?") Charset.init @feature_window.refresh for window in @option_windows window.refresh end refresh_selected enable_save when "Load..." unless @load_window.refresh return RPG.warn("No saved data found in Data/Charsets!") end $game_system.se_play($data_system.decision_se) @backup_charset = Charset.data.clone @charset_window.deactivate @preview_window.activate @load_window.activate show_preview refresh_preview when "Save" if save_disabled? $game_system.se_play($data_system.buzzer_se) return end i = 0 while File.exist?(filename = sprintf("Data/Charsets/#{FILENAME_SAVE}%03d.rxdata", i)) i += 1 end file = File.open(filename, "wb") Marshal.dump(Charset.library, file) Marshal.dump(Charset.data, file) file.close disable_save i = @charset_window.menu_windows[0].options.index("Load...") @charset_window.menu_windows[0].enable_option(i) return RPG.warn("Current selection saved as #{filename}!") when "Library..." unless @library_window.refresh return RPG.warn("No libraries found in Graphics/Characters!") end $game_system.se_play($data_system.decision_se) @backup_charset = Charset.data.clone @charset_window.deactivate @preview_window.activate @library_window.activate show_preview refresh_preview when "Randomize" $game_system.se_play($data_system.decision_se) @backup_charset = [] for feature in Charset.data @backup_charset << feature.clone next if feature.picture == NAME_NO_PICTURE # Randomize picture feature.picture = Dir.files("Graphics/Characters/#{Charset.library}/#{feature.type.display}").sample end @preview_window.activate show_preview refresh_preview @help_window.set_text("C: Apply changes B: Cancel changes", 1) loop do Input.update Graphics.update update_animation if Input.trigger?(Input::C) $game_system.se_play($data_system.decision_se) enable_save refresh_selected break end if Input.trigger?(Input:: $game_system.se_play($data_system.cancel_se) Charset.data.replace(@backup_charset) break end end @preview_window.deactivate hide_preview update_animation return # Use charset when "Use as hero" Charset.cache($game_actors[1].character_name) return RPG.warn("Player's character changed to current selection!") when "To image file" if export_disabled? $game_system.se_play($data_system.buzzer_se) return end i = 0 while File.exist?(filename = sprintf("Graphics/Characters/#{FILENAME_RENDER}%03d.png", i)) i += 1 end Charset.render.export(filename) disable_export return RPG.warn("Current selection rendered as #{filename}!") when "Credits" RPG.warn("Charset Maker v1.00 written by Moonpearl") RPG.warn("Using Bitmap Export written by Zeus81") RPG.warn("Graphic libraries provided and maintained by JonBon") return end # If selecting feature to edit elsif @feature_window.active $game_system.se_play($data_system.decision_se) @backup_feature = Charset.data[@feature_window.index].clone @preview_window.activate @feature_window.deactivate @option_window.activate show_preview # If editing selected feature elsif @option_window.active $game_system.se_play($data_system.decision_se) @preview_window.deactivate @option_window.deactivate @feature_window.activate @option_window.edit_all = false @blink_count = 0 refresh_selected hide_preview enable_save # If browsing list of possible selections elsif @load_window.active $game_system.se_play($data_system.decision_se) @load_window.deactivate @preview_window.deactivate @charset_window.activate refresh_selected hide_preview disable_save # If browsing list of libraries elsif @library_window.active $game_system.se_play($data_system.decision_se) @library_window.deactivate @preview_window.deactivate @charset_window.activate refresh_selected hide_preview disable_save end end # Cancel selection if Input.trigger?(Input:: # If in command window if @charset_window.active $game_system.se_play($data_system.cancel_se) $scene = Scene_Map.new # If selecting feature to edit elsif @feature_window.active $game_system.se_play($data_system.cancel_se) @feature_window.deactivate @feature_window.index = -1 @charset_window.activate @option_window.contents.clear # If editing selected feature elsif @option_window.active $game_system.se_play($data_system.cancel_se) @preview_window.deactivate @option_window.deactivate @feature_window.activate # Cancel changes and revert to backup if @option_window.edit_all Charset.data.replace(@backup_charset) else Charset.data[@feature_window.index] = @backup_feature end @option_window.refresh @option_window.edit_all = false hide_preview # If browsing list of possible selections elsif @load_window.active $game_system.se_play($data_system.cancel_se) @load_window.deactivate @preview_window.activate @charset_window.activate Charset.data.replace(@backup_charset) hide_preview # If browsing list of libraries elsif @library_window.active $game_system.se_play($data_system.cancel_se) @library_window.deactivate @preview_window.deactivate @charset_window.activate Charset.data.replace(@backup_charset) hide_preview end end if Input.repeat?(Input::L) return if @feature_window.index == - 1 if @feature_window.index == 0 or @option_window.edit_all $game_system.se_play($data_system.buzzer_se) return end $game_system.se_play($data_system.cursor_se) Charset.data.insert( @feature_window.index - 1, Charset.data.delete_at(@feature_window.index) ) index = @option_window.index @option_window.index = -1 @option_window.refresh @option_window.active = false @feature_window.index -= 1 @feature_window.refresh @option_window.refresh @option_window.index = index if @feature_window.active refresh_selected else feature = Charset.data[@feature_window.index] Charset.data[@feature_window.index] = @backup_feature refresh_selected Charset.data[@feature_window.index] = feature @option_window.active = true end enable_save end if Input.repeat?(Input::R) return if @feature_window.index == - 1 if @feature_window.index == Charset.data.size - 1 or @option_window.edit_all $game_system.se_play($data_system.buzzer_se) return end $game_system.se_play($data_system.cursor_se) Charset.data.insert( @feature_window.index + 1, Charset.data.delete_at(@feature_window.index) ) index = @option_window.index @option_window.index = -1 @option_window.refresh @option_window.active = false @feature_window.index += 1 @feature_window.refresh @option_window.refresh @option_window.index = index @option_window.active = true unless @feature_window.active if @feature_window.active refresh_selected else feature = Charset.data[@feature_window.index] Charset.data[@feature_window.index] = @backup_feature refresh_selected Charset.data[@feature_window.index] = feature @option_window.active = true end enable_save end update_animation if @feature_window.active if @blink_count == 0 @blink_count = 16 @selected_sprites[@feature_window.index].whiten end @blink_count -= 1 if Input.trigger?(Input::A) $game_system.se_play($data_system.decision_se) @backup_charset = [] for feature in Charset.data @backup_charset << feature.clone end @option_window.edit_all = true @feature_window.deactivate @feature_window.cursor_rect.set(0, 0, @feature_window.width - 32, Charset.data.size * 32) @preview_window.activate @option_window.activate @option_window.refresh show_preview end if Input.repeat?(Input::UP) or Input.repeat?(Input::DOWN) @blink_count = 0 @option_window.refresh end end endendclass Scene_Title #-------------------------------------------------------------------------- # * Main Processing #-------------------------------------------------------------------------- def main # If battle test if $BTEST battle_test return end # Load database $data_actors = load_data("Data/Actors.rxdata") $data_classes = load_data("Data/Classes.rxdata") $data_skills = load_data("Data/Skills.rxdata") $data_items = load_data("Data/Items.rxdata") $data_weapons = load_data("Data/Weapons.rxdata") $data_armors = load_data("Data/Armors.rxdata") $data_enemies = load_data("Data/Enemies.rxdata") $data_troops = load_data("Data/Troops.rxdata") $data_states = load_data("Data/States.rxdata") $data_animations = load_data("Data/Animations.rxdata") $data_tilesets = load_data("Data/Tilesets.rxdata") $data_common_events = load_data("Data/CommonEvents.rxdata") $data_system = load_data("Data/System.rxdata") # Make system object $game_system = Game_System.new # Reset frame count for measuring play time Graphics.frame_count = 0 # Make each type of game object $game_temp = Game_Temp.new $game_system = Game_System.new $game_switches = Game_Switches.new $game_variables = Game_Variables.new $game_self_switches = Game_SelfSwitches.new $game_screen = Game_Screen.new $game_actors = Game_Actors.new $game_party = Game_Party.new $game_troop = Game_Troop.new $game_map = Game_Map.new $game_player = Game_Player.new # Set up initial party $game_party.setup_starting_members # Set up initial map position $game_map.setup($data_system.start_map_id) # Move player to initial position $game_player.moveto($data_system.start_x, $data_system.start_y) # Refresh player $game_player.refresh # Run automatic change for BGM and BGS set with map $game_map.autoplay # Update map (run parallel process event) $game_map.update $scene = Scene_Charset.new endend
In this script, for each feature there are the five options listed above: picture, hue, brightness, x_offset, y_offset. What i want is a way to get rid of hue and brightness and replace them with certain colors. Is there a way anyone can do that?

Latest Threads

Latest Profile Posts

Don't forget, aspiring writers: Personality isn't what your characters do, it is WHY they do it.
Hello! I would like to know if there are any pluggings or any way to customize how battles look?
I was thinking that when you start the battle for it to appear the eyes of your characters and opponents sorta like Ace Attorney.
Sadly I don't know how that would be possible so I would be needing help! If you can help me in any way I would really apreciate it!
The biggest debate we need to complete on which is better, Waffles or Pancakes?
rux
How is it going? :D
Day 9 of giveaways! 8 prizes today :D

Forum statistics

Threads
106,051
Messages
1,018,551
Members
137,837
Latest member
Dabi
Top