Yanfly's System Options Layout Edit

Status
Not open for further replies.

Hollow

(◡‿◡✿)
Veteran
Joined
Jul 14, 2012
Messages
519
Reaction score
439
First Language
English
Primarily Uses
RMMV
Hey, guys! So, I thought this would be a simple thing to do and ended up spending about an hour trying to figure it out myself, but I could not get it to work.  :(

I really just want to rearrange the selectable options in Yanfly's script to make the window look...well, prettier. Since I'm not using all of the options available in the script (the ones in the mock-up below are the only ones I'm using), I'd like to have the visible ones centered on the screen with a horizontal bar between each "section" instead of a blank selection.

Here is a rough mock-up of what I was trying to achieve:



 All of the areas highlighted in red should not be selectable, and the two thinner lines are where I'd like the horizontal bars to be.

And here's my copy of Yanfly's script:

#==============================================================================# # ▼ Yanfly Engine Ace - System Options v1.00# -- Last Updated: 2012.01.01# -- Level: Normal# -- Requires: n/a# #============================================================================== $imported = {} if $imported.nil?$imported["YEA-SystemOptions"] = true #==============================================================================# ▼ Updates# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# 2012.01.01 - Started Script and Finished.# #==============================================================================# ▼ Introduction# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# This script replaces the "Game End" option in the Main Menu with a "System"# menu where the player can adjust various settings in the game. Of them, the# player can change the window colour, the volume for BGM, BGS, SFX, set# automatic dashing, message text to display instantly, and speed up battles by# hiding battle animations.# #==============================================================================# ▼ Instructions# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# To install this script, open up your script editor and copy/paste this script# to an open slot below ▼ Materials/素材 but above ▼ Main. Remember to save.# # -----------------------------------------------------------------------------# Script Calls - These commands are used with script calls.# -----------------------------------------------------------------------------# $game_system.volume_change:)bgm, x)# $game_system.volume_change:)bgs, x)# $game_system.volume_change:)sfx, x)# Unlike the previous Yanfly Engines, this version does not bind volume to a# variable. Use the script call to change the bgm, bgs, or sfx sound rate by# x increment. Use a negative value to lower the volume.# # $game_system.set_autodash(true)# $game_system.set_autodash(false)# Turns autodash on (true) or off (false).# # $game_system.set_instantmsg(true)# $game_system.set_instantmsg(false)# Turns instant messages on (true) or off (false).# # $game_system.set_animations(true)# $game_system.set_animations(false)# Turns battle animations on (true) or off (false).# #==============================================================================# ▼ Compatibility# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# This script is made strictly for RPG Maker VX Ace. It is highly unlikely that# it will run with RPG Maker VX without adjusting.# #============================================================================== module YEA  module SYSTEM        #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-    # - General Setting -    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-    # These are the general settings that govern the System settings. This will    # change the "Game End" vocab, and disable or enable autodash, instant    # messages, or animations by default.    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-    COMMAND_NAME = "System"      # Command name used to replace Game End.    DEFAULT_AUTODASH   = true    # Enable automatic dashing by default?    DEFAULT_INSTANTMSG = false   # Enable instant message text by default?    DEFAULT_ANIMATIONS = true    # Enable battle animations by default?        #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-    # - Command Settings -    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-    # These settings adjust the commands shown in the command list. Add, remove    # or rearrange the commands as you see fit. Here's a list of which commands    # do what:    #     # -------------------------------------------------------------------------    # :command         Description    # -------------------------------------------------------------------------    # :blank           Inserts an empty blank space.    #     # :window_red      Changes the red tone for all windows.    # :window_grn      Changes the green tone for all windows.    # :window_blu      Changes the blue tone for all windows.    #     # :volume_bgm      Changes the BGM volume used.    # :volume_bgs      Changes the BGS volume used.    # :volume_sfx      Changes the SFX volume used.    #     # :autodash        Sets the player to automatically dash.    # :instantmsg      Sets message text to appear instantly.    # :animations      Enables battle animations or disables them.    #     # :to_title        Returns to the title screen.    # :shutdown        Shuts down the game.    #     #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-    COMMANDS =[    # :window_red,   # Changes the red tone for all windows.    # :window_grn,   # Changes the green tone for all windows.    # :window_blu,   # Changes the blue tone for all windows.      :volume_bgm,   # Changes the BGM volume used.      :volume_bgs,   # Changes the BGS volume used.      :volume_sfx,   # Changes the SFX volume used.    # :blank,      :autodash,     # Sets the player to automatically dash.      :instantmsg,   # Sets message text to appear instantly.    # :animations,   # Enables battle animations or disables them.    # :switch_1,     # Custom Switch 1. Adjust settings below.    # :switch_2,     # Custom Switch 2. Adjust settings below.    # :variable_1,   # Custom Variable 1. Adjust settings below.    # :variable_2,   # Custom Variable 2. Adjust settings below.    # :blank,      :to_title,     # Returns to the title screen.      :shutdown,     # Shuts down the game.    ] # Do not remove this.        #--------------------------------------------------------------------------    # - Custom Switches -    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -    # If you want your game to have system options other than just the ones    # listed above, you can insert custom switches here to produce such an    # effect. Adjust the settings here as you see fit.    #--------------------------------------------------------------------------    CUSTOM_SWITCHES ={    # -------------------------------------------------------------------------    # :switch    => [Switch, Name, Off Text, On Text,     #                Help Window Description    #               ], # Do not remove this.    # -------------------------------------------------------------------------      :switch_1  => [ 2, "Highlight Treasure?", "NO", "YES",                     "Places a sparkling graphic wherever hidden items are located."                    ],    # -------------------------------------------------------------------------      :switch_2  => [ 2, "Custom Switch 2", "OFF", "ON",                     "Help description used for custom switch 2."                    ],    # -------------------------------------------------------------------------    } # Do not remove this.        #--------------------------------------------------------------------------    # - Custom Variables -    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -    # If you want your game to have system options other than just the ones    # listed above, you can insert custom variables here to produce such an    # effect. Adjust the settings here as you see fit.    #--------------------------------------------------------------------------    CUSTOM_VARIABLES ={    # -------------------------------------------------------------------------    # :variable   => [Switch, Name, Colour1, Colour2, Min, Max,    #                 Help Window Description    #                ], # Do not remove this.    # -------------------------------------------------------------------------      :variable_1 => [ 1, "Custom Variable 1", 9, 1, -100, 100,                      "Help description used for custom variable 1."                     ],    # -------------------------------------------------------------------------      :variable_2 => [ 2, "Custom Variable 2", 10, 2, -10, 10,                      "Help description used for custom variable 2."                     ],    # -------------------------------------------------------------------------    } # Do not remove this.        #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-    # - Vocab Settings -    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-    # This hash adjusts the vocab used for both the commands and the help    # description that appears above the command window. Note that for the    # command help descriptions, you may use text codes. Use \n to linebreak.    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-    COMMAND_VOCAB ={    # -------------------------------------------------------------------------    # :command    => [Command Name, Option1, Option2    #                 Help Window Description,    #                ], # Do not remove this.    # -------------------------------------------------------------------------      :blank      => ["", "None", "None",                      ""                     ], # Do not remove this.    # -------------------------------------------------------------------------      :window_red => ["Window Red", "None", "None",                      "Change the red colour tone for windows.\n" +                      "Hold SHIFT to change increment by 10."                     ], # Do not remove this.    # -------------------------------------------------------------------------      :window_grn => ["Window Green", "None", "None",                      "Change the green colour tone for windows.\n" +                      "Hold SHIFT to change increment by 10."                     ], # Do not remove this.    # -------------------------------------------------------------------------      :window_blu => ["Window Blue", "None", "None",                      "Change the blue colour tone for windows.\n" +                      "Hold SHIFT to change increment by 10."                     ], # Do not remove this.    # -------------------------------------------------------------------------      :volume_bgm => ["BGM Volume", 22, 23, # Options 1 & 2 are Gauge Colours.                      "Change the volume used for background music.\n" +                      "Hold SHIFT to change increment by 10."                     ], # Do not remove this.    # -------------------------------------------------------------------------      :volume_bgs => ["BGS Volume", 22, 23, # Options 1 & 2 are Gauge Colours.                      "Change the volume used for background sound.\n" +                      "Hold SHIFT to change increment by 10."                     ], # Do not remove this.    # -------------------------------------------------------------------------      :volume_sfx => ["SFX Volume", 22, 23, # Options 1 & 2 are Gauge Colours.                      "Change the volume used for sound effects.\n" +                      "Hold SHIFT to change increment by 10."                     ], # Do not remove this.    # -------------------------------------------------------------------------      :autodash   => ["Auto-Dash", "Walk", "Dash",                      "Automatically dash without holding the run button."                     ], # Do not remove this.    # -------------------------------------------------------------------------      :instantmsg => ["Instant Text", "Normal", "Instant",                      "Set message text to appear one-by-one or instantly."                     ], # Do not remove this.    # -------------------------------------------------------------------------      :animations => ["Battle Animations", "Hide", "Show",                      "Hide animations during battle to speed up battles?"                     ], # Do not remove this.    # -------------------------------------------------------------------------      :to_title   => ["Return to Title Screen", "None", "None",                      "Go back to the title screen."                     ], # Do not remove this.    # -------------------------------------------------------------------------      :shutdown   => ["Shutdown Game", "None", "None",                      "Turns off the game."                     ], # Do not remove this.    # -------------------------------------------------------------------------    } # Do not remove this.      end # SYSTEMend # YEA #==============================================================================# ▼ Editting anything past this point may potentially result in causing# computer damage, incontinence, explosion of user's head, coma, death, and/or# halitosis so edit at your own risk.#============================================================================== #==============================================================================# ■ Vocab#============================================================================== module Vocab    #--------------------------------------------------------------------------  # overwrite method: self.game_end  #--------------------------------------------------------------------------  def self.game_end    return YEA::SYSTEM::COMMAND_NAME  end  end # Vocab #==============================================================================# ■ RPG::BGM#============================================================================== class RPG::BGM < RPG::AudioFile    #--------------------------------------------------------------------------  # overwrite method: play  #--------------------------------------------------------------------------  def play(pos = 0)    if @name.empty?      Audio.bgm_stop      @@last = RPG::BGM.new    else      volume = @volume      volume *= $game_system.volume:)bgm) * 0.01 unless $game_system.nil?      Audio.bgm_play('Audio/BGM/' + @name, volume, @pitch, pos)      @@last = self.clone    end  end  end # RPG::BGM #==============================================================================# ■ RPG::ME#============================================================================== class RPG::ME < RPG::AudioFile    #--------------------------------------------------------------------------  # overwrite method: play  #--------------------------------------------------------------------------  def play    if @name.empty?      Audio.me_stop    else      volume = @volume      volume *= $game_system.volume:)bgm) * 0.01 unless $game_system.nil?      Audio.me_play('Audio/ME/' + @name, volume, @pitch)    end  end  end # RPG::ME #==============================================================================# ■ RPG::BGS#============================================================================== class RPG::BGS < RPG::AudioFile    #--------------------------------------------------------------------------  # overwrite method: play  #--------------------------------------------------------------------------  def play(pos = 0)    if @name.empty?      Audio.bgs_stop      @@last = RPG::BGS.new    else      volume = @volume      volume *= $game_system.volume:)bgs) * 0.01 unless $game_system.nil?      Audio.bgs_play('Audio/BGS/' + @name, volume, @pitch, pos)      @@last = self.clone    end  end  end # RPG::BGS #==============================================================================# ■ RPG::SE#============================================================================== class RPG::SE < RPG::AudioFile    #--------------------------------------------------------------------------  # overwrite method: play  #--------------------------------------------------------------------------  def play    unless @name.empty?      volume = @volume      volume *= $game_system.volume:)sfx) * 0.01 unless $game_system.nil?      Audio.se_play('Audio/SE/' + @name, volume, @pitch)    end  end  end # RPG::SE #==============================================================================# ■ Game_System#============================================================================== class Game_System    #--------------------------------------------------------------------------  # alias method: initialize  #--------------------------------------------------------------------------  alias game_system_initialize_so initialize  def initialize    game_system_initialize_so    init_volume_control    init_autodash    init_instantmsg    init_animations  end    #--------------------------------------------------------------------------  # new method: init_volume_control  #--------------------------------------------------------------------------  def init_volume_control    @volume = {}    @volume[:bgm] = 100    @volume[:bgs] = 100    @volume[:sfx] = 100  end    #--------------------------------------------------------------------------  # new method: volume  #--------------------------------------------------------------------------  def volume(type)    init_volume_control if @volume.nil?    return [[@volume[type], 0].max, 100].min  end    #--------------------------------------------------------------------------  # new method: volume_change  #--------------------------------------------------------------------------  def volume_change(type, increment)    init_volume_control if @volume.nil?    @volume[type] += increment    @volume[type] = [[@volume[type], 0].max, 100].min  end    #--------------------------------------------------------------------------  # new method: init_autodash  #--------------------------------------------------------------------------  def init_autodash    @autodash = YEA::SYSTEM::DEFAULT_AUTODASH  end    #--------------------------------------------------------------------------  # new method: autodash?  #--------------------------------------------------------------------------  def autodash?    init_autodash if @autodash.nil?    return @autodash  end    #--------------------------------------------------------------------------  # new method: set_autodash  #--------------------------------------------------------------------------  def set_autodash(value)    @autodash = value  end    #--------------------------------------------------------------------------  # new method: init_instantmsg  #--------------------------------------------------------------------------  def init_instantmsg    @instantmsg = YEA::SYSTEM::DEFAULT_INSTANTMSG  end    #--------------------------------------------------------------------------  # new method: instantmsg?  #--------------------------------------------------------------------------  def instantmsg?    init_instantmsg if @instantmsg.nil?    return @instantmsg  end    #--------------------------------------------------------------------------  # new method: set_instantmsg  #--------------------------------------------------------------------------  def set_instantmsg(value)    @instantmsg = value  end    #--------------------------------------------------------------------------  # new method: init_animations  #--------------------------------------------------------------------------  def init_animations    @animations = YEA::SYSTEM::DEFAULT_ANIMATIONS  end    #--------------------------------------------------------------------------  # new method: animations?  #--------------------------------------------------------------------------  def animations?    init_animations if @animations.nil?    return @animations  end    #--------------------------------------------------------------------------  # new method: set_animations  #--------------------------------------------------------------------------  def set_animations(value)    @animations = value  end  end # Game_System #==============================================================================# ■ Game_Player#============================================================================== class Game_Player < Game_Character    #--------------------------------------------------------------------------  # alias method: dash?  #--------------------------------------------------------------------------  alias game_player_dash_so dash?  def dash?    if $game_system.autodash?      return false if @move_route_forcing      return false if $game_map.disable_dash?      return false if vehicle      return !Input.press?:)A)    else      return game_player_dash_so    end  end  end # Game_Player #==============================================================================# ■ Scene_Battle#============================================================================== class Scene_Battle < Scene_Base    #--------------------------------------------------------------------------  # alias method: show_fast?  #--------------------------------------------------------------------------  alias scene_battle_show_fast_so show_fast?  def show_fast?    return true unless $game_system.animations?    return scene_battle_show_fast_so  end    #--------------------------------------------------------------------------  # alias method: show_normal_animation  #--------------------------------------------------------------------------  alias scene_battle_show_normal_animation_so show_normal_animation  def show_normal_animation(targets, animation_id, mirror = false)    return unless $game_system.animations?    scene_battle_show_normal_animation_so(targets, animation_id, mirror)  end  end # Scene_Battle #==============================================================================# ■ Window_Message#============================================================================== class Window_Message < Window_Base    #--------------------------------------------------------------------------  # alias method: clear_flags  #--------------------------------------------------------------------------  alias window_message_clear_flags_so clear_flags  def clear_flags    window_message_clear_flags_so    @show_fast = true if $game_system.instantmsg?  end  end # Window_Message #==============================================================================# ■ Window_SystemOptions#============================================================================== class Window_SystemOptions < Window_Command    #--------------------------------------------------------------------------  # initialize  #--------------------------------------------------------------------------  def initialize(help_window)    @help_window = help_window    super(0, @help_window.height)    refresh    activate  end    #--------------------------------------------------------------------------  # window_width  #--------------------------------------------------------------------------  def window_width; return Graphics.width; end    #--------------------------------------------------------------------------  # window_height  #--------------------------------------------------------------------------  def window_height; return Graphics.height - @help_window.height; end    #--------------------------------------------------------------------------  # update_help  #--------------------------------------------------------------------------  def update_help    if current_symbol == :custom_switch || current_symbol == :custom_variable      text = @help_descriptions[current_ext]    else      text = @help_descriptions[current_symbol]    end    text = "" if text.nil?    @help_window.set_text(text)  end    #--------------------------------------------------------------------------  # ok_enabled?  #--------------------------------------------------------------------------  def ok_enabled?    return true if [:to_title, :shutdown].include?(current_symbol)    return false  end    #--------------------------------------------------------------------------  # make_command_list  #--------------------------------------------------------------------------  def make_command_list    @help_descriptions = {}    for command in YEA::SYSTEM::COMMANDS      case command      when :blank        add_command(YEA::SYSTEM::COMMAND_VOCAB[command][0], command)        @help_descriptions[command] = YEA::SYSTEM::COMMAND_VOCAB[command][3]      when :window_red, :window_grn, :window_blu        add_command(YEA::SYSTEM::COMMAND_VOCAB[command][0], command)        @help_descriptions[command] = YEA::SYSTEM::COMMAND_VOCAB[command][3]      when :volume_bgm, :volume_bgs, :volume_sfx        add_command(YEA::SYSTEM::COMMAND_VOCAB[command][0], command)        @help_descriptions[command] = YEA::SYSTEM::COMMAND_VOCAB[command][3]      when :autodash, :instantmsg, :animations        add_command(YEA::SYSTEM::COMMAND_VOCAB[command][0], command)        @help_descriptions[command] = YEA::SYSTEM::COMMAND_VOCAB[command][3]      when :to_title, :shutdown        add_command(YEA::SYSTEM::COMMAND_VOCAB[command][0], command)        @help_descriptions[command] = YEA::SYSTEM::COMMAND_VOCAB[command][3]      else        process_custom_switch(command)        process_custom_variable(command)      end    end  end    #--------------------------------------------------------------------------  # process_custom_switch  #--------------------------------------------------------------------------  def process_custom_switch(command)    return unless YEA::SYSTEM::CUSTOM_SWITCHES.include?(command)    name = YEA::SYSTEM::CUSTOM_SWITCHES[command][1]    add_command(name, :custom_switch, true, command)    @help_descriptions[command] = YEA::SYSTEM::CUSTOM_SWITCHES[command][4]  end    #--------------------------------------------------------------------------  # process_custom_variable  #--------------------------------------------------------------------------  def process_custom_variable(command)    return unless YEA::SYSTEM::CUSTOM_VARIABLES.include?(command)    name = YEA::SYSTEM::CUSTOM_VARIABLES[command][1]    add_command(name, :custom_variable, true, command)    @help_descriptions[command] = YEA::SYSTEM::CUSTOM_VARIABLES[command][6]  end    #--------------------------------------------------------------------------  # draw_item  #--------------------------------------------------------------------------  def draw_item(index)    reset_font_settings    rect = item_rect(index)    contents.clear_rect(rect)    case @list[index][:symbol]    when :window_red, :window_grn, :window_blu      draw_window_tone(rect, index, @list[index][:symbol])    when :volume_bgm, :volume_bgs, :volume_sfx      draw_volume(rect, index, @list[index][:symbol])    when :autodash, :instantmsg, :animations      draw_toggle(rect, index, @list[index][:symbol])    when :to_title, :shutdown      draw_text(item_rect_for_text(index), command_name(index), 1)    when :custom_switch      draw_custom_switch(rect, index, @list[index][:ext])    when :custom_variable      draw_custom_variable(rect, index, @list[index][:ext])    end  end    #--------------------------------------------------------------------------  # draw_window_tone  #--------------------------------------------------------------------------  def draw_window_tone(rect, index, symbol)    name = @list[index][:name]    draw_text(0, rect.y, contents.width/2, line_height, name, 1)    #---    dx = contents.width / 2    tone = $game_system.window_tone    case symbol    when :window_red      rate = (tone.red + 255.0) / 510.0      colour1 = Color.new(128, 0, 0)      colour2 = Color.new(255, 0, 0)      value = tone.red.to_i    when :window_grn      rate = (tone.green + 255.0) / 510.0      colour1 = Color.new(0, 128, 0)      colour2 = Color.new(0, 255, 0)      value = tone.green.to_i    when :window_blu      rate = (tone.blue + 255.0) / 510.0      colour1 = Color.new(0, 0, 128)      colour2 = Color.new(0, 0, 255)      value = tone.blue.to_i    end    draw_gauge(dx, rect.y, contents.width - dx - 48, rate, colour1, colour2)    draw_text(dx, rect.y, contents.width - dx - 48, line_height, value, 2)  end    #--------------------------------------------------------------------------  # draw_volume  #--------------------------------------------------------------------------  def draw_volume(rect, index, symbol)    name = @list[index][:name]    draw_text(0, rect.y, contents.width/2, line_height, name, 1)    #---    dx = contents.width / 2    case symbol    when :volume_bgm      rate = $game_system.volume:)bgm)    when :volume_bgs      rate = $game_system.volume:)bgs)    when :volume_sfx      rate = $game_system.volume:)sfx)    end    colour1 = text_color(YEA::SYSTEM::COMMAND_VOCAB[symbol][1])    colour2 = text_color(YEA::SYSTEM::COMMAND_VOCAB[symbol][2])    value = sprintf("%d%%", rate)    rate *= 0.01    draw_gauge(dx, rect.y-8, contents.width - dx - 48, rate, colour1, colour2)    draw_text(dx, rect.y, contents.width - dx - 48, line_height, value, 2)  end    #--------------------------------------------------------------------------  # draw_toggle  #--------------------------------------------------------------------------  def draw_toggle(rect, index, symbol)    name = @list[index][:name]    draw_text(0, rect.y, contents.width/2, line_height, name, 1)    #---    dx = contents.width / 2    case symbol    when :autodash      enabled = $game_system.autodash?    when :instantmsg      enabled = $game_system.instantmsg?    when :animations      enabled = $game_system.animations?    end    dx = contents.width/2    change_color(normal_color, !enabled)    option1 = YEA::SYSTEM::COMMAND_VOCAB[symbol][1]    draw_text(dx, rect.y + 24, contents.width/4, line_height, option1, 1)    dx += contents.width/4    change_color(normal_color, enabled)    option2 = YEA::SYSTEM::COMMAND_VOCAB[symbol][2]    draw_text(dx, rect.y + 24, contents.width/4, line_height, option2, 1)  end    #--------------------------------------------------------------------------  # cursor_right  #--------------------------------------------------------------------------  def draw_custom_switch(rect, index, ext)    name = @list[index][:name]    draw_text(0, rect.y, contents.width/2, line_height, name, 1)    #---    dx = contents.width / 2    enabled = $game_switches[YEA::SYSTEM::CUSTOM_SWITCHES[ext][0]]    dx = contents.width/2    change_color(normal_color, !enabled)    option1 = YEA::SYSTEM::CUSTOM_SWITCHES[ext][2]    draw_text(dx, rect.y, contents.width/4, line_height, option1, 1)    dx += contents.width/4    change_color(normal_color, enabled)    option2 = YEA::SYSTEM::CUSTOM_SWITCHES[ext][3]    draw_text(dx, rect.y, contents.width/4, line_height, option2, 1)  end    #--------------------------------------------------------------------------  # draw_custom_variable  #--------------------------------------------------------------------------  def draw_custom_variable(rect, index, ext)    name = @list[index][:name]    draw_text(0, rect.y, contents.width/2, line_height, name, 1)    #---    dx = contents.width / 2    value = $game_variables[YEA::SYSTEM::CUSTOM_VARIABLES[ext][0]]    colour1 = text_color(YEA::SYSTEM::CUSTOM_VARIABLES[ext][2])    colour2 = text_color(YEA::SYSTEM::CUSTOM_VARIABLES[ext][3])    minimum = YEA::SYSTEM::CUSTOM_VARIABLES[ext][4]    maximum = YEA::SYSTEM::CUSTOM_VARIABLES[ext][5]    rate = (value - minimum).to_f / [(maximum - minimum).to_f, 0.01].max    dx = contents.width/2    draw_gauge(dx, rect.y, contents.width - dx - 48, rate, colour1, colour2)    draw_text(dx, rect.y, contents.width - dx - 48, line_height, value, 2)  end    #--------------------------------------------------------------------------  # cursor_right  #--------------------------------------------------------------------------  def cursor_right(wrap = false)    cursor_change:)right)    super(wrap)  end    #--------------------------------------------------------------------------  # cursor_left  #--------------------------------------------------------------------------  def cursor_left(wrap = false)    cursor_change:)left)    super(wrap)  end    #--------------------------------------------------------------------------  # cursor_change  #--------------------------------------------------------------------------  def cursor_change(direction)    case current_symbol    when :window_red, :window_blu, :window_grn      change_window_tone(direction)    when :volume_bgm, :volume_bgs, :volume_sfx      change_volume(direction)    when :autodash, :instantmsg, :animations      change_toggle(direction)    when :custom_switch      change_custom_switch(direction)    when :custom_variable      change_custom_variables(direction)    end  end    #--------------------------------------------------------------------------  # change_window_tone  #--------------------------------------------------------------------------  def change_window_tone(direction)    Sound.play_cursor    value = direction == :left ? -1 : 1    value *= 10 if Input.press?:)A)    tone = $game_system.window_tone.clone    case current_symbol    when :window_red; tone.red += value    when :window_grn; tone.green += value    when :window_blu; tone.blue += value    end    $game_system.window_tone = tone    draw_item(index)  end    #--------------------------------------------------------------------------  # change_window_tone  #--------------------------------------------------------------------------  def change_volume(direction)    Sound.play_cursor    value = direction == :left ? -1 : 1    value *= 10 if Input.press?:)A)    case current_symbol    when :volume_bgm      $game_system.volume_change:)bgm, value)      RPG::BGM::last.play    when :volume_bgs      $game_system.volume_change:)bgs, value)      RPG::BGS::last.play    when :volume_sfx      $game_system.volume_change:)sfx, value)    end    draw_item(index)  end    #--------------------------------------------------------------------------  # change_toggle  #--------------------------------------------------------------------------  def change_toggle(direction)    value = direction == :left ? false : true    case current_symbol    when :autodash      current_case = $game_system.autodash?      $game_system.set_autodash(value)    when :instantmsg      current_case = $game_system.instantmsg?      $game_system.set_instantmsg(value)    when :animations      current_case = $game_system.animations?      $game_system.set_animations(value)    end    Sound.play_cursor if value != current_case    draw_item(index)  end    #--------------------------------------------------------------------------  # change_custom_switch  #--------------------------------------------------------------------------  def change_custom_switch(direction)    value = direction == :left ? false : true    ext = current_ext    current_case = $game_switches[YEA::SYSTEM::CUSTOM_SWITCHES[ext][0]]    $game_switches[YEA::SYSTEM::CUSTOM_SWITCHES[ext][0]] = value    Sound.play_cursor if value != current_case    draw_item(index)  end    #--------------------------------------------------------------------------  # change_custom_variables  #--------------------------------------------------------------------------  def change_custom_variables(direction)    Sound.play_cursor    value = direction == :left ? -1 : 1    value *= 10 if Input.press?:)A)    ext = current_ext    var = YEA::SYSTEM::CUSTOM_VARIABLES[ext][0]    minimum = YEA::SYSTEM::CUSTOM_VARIABLES[ext][4]    maximum = YEA::SYSTEM::CUSTOM_VARIABLES[ext][5]    $game_variables[var] += value    $game_variables[var] = [[$game_variables[var], minimum].max, maximum].min    draw_item(index)  end  end # Window_SystemOptions #==============================================================================# ■ Scene_Menu#============================================================================== class Scene_Menu < Scene_MenuBase    #--------------------------------------------------------------------------  # overwrite method: command_game_end  #--------------------------------------------------------------------------  def command_game_end    SceneManager.call(Scene_System)  end  end # Scene_Menu #==============================================================================# ■ Scene_System#============================================================================== class Scene_System < Scene_MenuBase    #--------------------------------------------------------------------------  # start  #--------------------------------------------------------------------------  def start    super    create_help_window    create_command_window  end    #--------------------------------------------------------------------------  # create_command_window  #--------------------------------------------------------------------------  def create_command_window    @command_window = Window_SystemOptions.new(@help_window)    @command_window.set_handler:)cancel, method:)return_scene))    @command_window.set_handler:)to_title, method:)command_to_title))    @command_window.set_handler:)shutdown, method:)command_shutdown))  end    #--------------------------------------------------------------------------  # command_to_title  #--------------------------------------------------------------------------  def command_to_title    fadeout_all    SceneManager.goto(Scene_Title)  end    #--------------------------------------------------------------------------  # command_shutdown  #--------------------------------------------------------------------------  def command_shutdown    fadeout_all    SceneManager.exit  end  end # Scene_System #==============================================================================# # ▼ End of File# #==============================================================================
Obviously, this isn't vital to my game, but it is something I would prefer to have done. If anyone can help me out with this, I'd greatly appreciate it!  :wub:
 

Yato

(aka Racheal)
Veteran
Joined
Mar 17, 2012
Messages
825
Reaction score
346
Primarily Uses
I know I've done a request for someone that made the "blank" spots unselectable. I should be able to do the other bits quickly here. Give me a few.

Edit

class Window_SystemOptions < Window_Command #-------------------------------------------------------------------------- # * Move Cursor Down #-------------------------------------------------------------------------- def cursor_down(wrap = false) if index < item_max - col_max || (wrap && col_max == 1) select((index + col_max) % item_max) cursor_down(wrap) if current_symbol == :blank end end #-------------------------------------------------------------------------- # * Move Cursor Up #-------------------------------------------------------------------------- def cursor_up(wrap = false) if index >= col_max || (wrap && col_max == 1) select((index - col_max + item_max) % item_max) cursor_up(wrap) if current_symbol == :blank end end #-------------------------------------------------------------------------- # * Get Rectangle for Drawing Items #-------------------------------------------------------------------------- def item_rect(index) lines = YEA::SYSTEM::COMMANDS.size h = (height - lines * line_height - line_height) / 2 rect = Rect.new rect.width = item_width rect.height = item_height rect.x = index % col_max * (item_width + spacing) rect.y = index / col_max * item_height + h rect end #-------------------------------------------------------------------------- # * Draw Horizontal Line #-------------------------------------------------------------------------- def draw_horz_line(y) line_y = y + line_height / 2 - 1 contents.fill_rect(0, line_y, contents_width, 2, line_color) end #-------------------------------------------------------------------------- # * Get Color of Horizontal Line #-------------------------------------------------------------------------- def line_color color = normal_color color.alpha = 48 color end #-------------------------------------------------------------------------- # draw_item #-------------------------------------------------------------------------- def draw_item(index) reset_font_settings rect = item_rect(index) contents.clear_rect(rect) case @list[index][:symbol] when :blank draw_horz_line(rect.y) when :window_red, :window_grn, :window_blu draw_window_tone(rect, index, @list[index][:symbol]) when :volume_bgm, :volume_bgs, :volume_sfx draw_volume(rect, index, @list[index][:symbol]) when :autodash, :instantmsg, :animations draw_toggle(rect, index, @list[index][:symbol]) when :to_title, :shutdown draw_text(item_rect_for_text(index), command_name(index), 1) when :custom_switch draw_custom_switch(rect, index, @list[index][:ext]) when :custom_variable draw_custom_variable(rect, index, @list[index][:ext]) end endend
Scriptlet goes under Yanfly's script. Put :blank back wherever you want the horizontal bars.
 
Last edited by a moderator:

Hollow

(◡‿◡✿)
Veteran
Joined
Jul 14, 2012
Messages
519
Reaction score
439
First Language
English
Primarily Uses
RMMV
Thank you for the fast response!  :D

Hm, it works, but there's an issue where the toggle options don't appear until I select them and move the cursor left or right, and when they do appear they're a line below where they're supposed to be:

 

Yato

(aka Racheal)
Veteran
Joined
Mar 17, 2012
Messages
825
Reaction score
346
Primarily Uses
That appears to be the case in your initial screenshot as well. It does not happen with my scriptlet plus the original yanfly script. I'll try to find what's doing it.
 

Hollow

(◡‿◡✿)
Veteran
Joined
Jul 14, 2012
Messages
519
Reaction score
439
First Language
English
Primarily Uses
RMMV
Yeah, it might be something left over from when I was fiddling with the script before. OTL

...Yup, I found it! I had forgotten to change back one of the rect.y values in the draw_toggle method. Everything's working fine now.  :)

Thank you so much for your help, Racheal!!  :wub:
 
Last edited by a moderator:

Yato

(aka Racheal)
Veteran
Joined
Mar 17, 2012
Messages
825
Reaction score
346
Primarily Uses
I was about to edit my post and mentioned that.


Make sure you use the version after I edited in the "- line_height". Without that, it's not quite centered. (It's half a line too low.)
 
Last edited by a moderator:

Archeia

Level 99 Demi-fiend
Developer
Joined
Mar 1, 2012
Messages
15,141
Reaction score
15,473
First Language
Filipino
Primarily Uses
RMMZ
This thread is being closed, due to being solved. If for some reason you would like this thread re-opened, please report this post and leave a message why. Thank you.
 
Status
Not open for further replies.

Users Who Are Viewing This Thread (Users: 0, Guests: 1)

Latest Threads

Latest Posts

Latest Profile Posts

Couple hours of work. Might use in my game as a secret find or something. Not sure. Fancy though no? :D
Holy stink, where have I been? Well, I started my temporary job this week. So less time to spend on game design... :(
Cartoonier cloud cover that better fits the art style, as well as (slightly) improved blending/fading... fading clouds when there are larger patterns is still somewhat abrupt for some reason.
Do you Find Tilesetting or Looking for Tilesets/Plugins more fun? Personally I like making my tileset for my Game (Cretaceous Park TM) xD
How many parameters is 'too many'??

Forum statistics

Threads
105,860
Messages
1,017,040
Members
137,569
Latest member
Shtelsky
Top