O TEMA DO FÓRUM ESTÁ EM MANUTENÇÃO. FEEDBACKS AQUI: ACESSAR

Yanfly Engine Ace - Config (Traduzido)

Iniciado por Fallen, 28/02/2013 às 20:39

28/02/2013 às 20:39 Última edição: 28/02/2013 às 21:53 por Fallen
Yanfly Engine Ace - Config (Traduzido)

Compativel com: RMVXA
Compatibilidade: boa
Facilidade de uso: fácil
Lag gerado: desprezível

[box class=titlebg]
Condições de Uso
[/box]
Não precisa me creditar por traduzir, porque eu realmente não me importo e.e, Mas lembre-se de creditar ao Yanfly pela criação e disposição do Sistema.

[box class=titlebg]
Para que serve o script
[/box]
O Script substitui a manjada opção "Sair do Jogo" No menu principal, por outra opção vista em alguns RPGs Clássicos, a opção de configurar certas opções do jogo por um sub-menu chamado Config.

[box class=titlebg]
Imagens
[/box]

[box class=titlebg]
Download e Script
[/box]


Tradução:
#==============================================================================
# 
# ▼ 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

#==============================================================================
# ▼ Atualização (Versão do Script)
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# 2012.01.01 - Started Script and Finished.
# 28.02.2013 - Traduzido para o Português.
#==============================================================================
# ▼ Introdução
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# Este Script substitui a opção "Fim de jogo" do menu principal pela opção "Config"
# Um sub-menu onde o jogador pode ajustar diversas configurações do jogo. Entre elas
# O Jogador pode mudar a cor da Windowskin, o volume das BGM, BGS e SFX, ajustar
# a corrida como movimento padrão sem a necessidade de pressionar shift. Textos
# serem exibidos instantaneamente, e acelerar as batalhas escondendo as animações
#(O que eu acho meio estranho, mas enfim lol)
# 
#==============================================================================
# ▼ Instruções
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# Para instalar o script basta abrir o editor de scripts e colocar abaixo
# da seção materiais e acima do main. Lembre-se de Salvar.
# 
# -----------------------------------------------------------------------------
# Script Calls - Comandos utilizados para chamadas de Script (opção Chamar Script)
# -----------------------------------------------------------------------------
# $game_system.volume_change(:bgm, x)
# $game_system.volume_change(:bgs, x)
# $game_system.volume_change(:sfx, x)
# Ao contrário dos motores anteriores da engine Yanfly, esta versão não liga o 
# o volume a uma variável. Use o chamar script para aumentar a taxa de volume
# do bgm, bgs, or sfx por X. Use um valor negativo para abaixar o volume
# 
# $game_system.set_autodash(true)
# $game_system.set_autodash(false)
# Liga a corrida automática com (true) ou desliga com (false).
# 
# $game_system.set_instantmsg(true)
# $game_system.set_instantmsg(false)
# Liga as mensagens instantâneas com (true) ou desliga com (false).
# 
# $game_system.set_animations(true)
# $game_system.set_animations(false)
# Ligas animações de batalha com (true) ou desliga (false).
# 
#==============================================================================
# ▼ Compatibilidade
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# Este script foi feito exclusivamente para RPG Maker VX e é óbvio que não funciona
# Em outras engines sem muitos ajustes.
#==============================================================================

module YEA
  module SYSTEM
    
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    # - Configurações Gerais -
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    # São as configurações que governam o Sistema de Configuração. 
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    COMMAND_NAME = "Config"      # Nome do comando que substitui Game End.
    DEFAULT_AUTODASH   = false    # Ligar corrida automática por padrão?
    DEFAULT_INSTANTMSG = false   # Ligar cmensagem instantânea por padrão?
    DEFAULT_ANIMATIONS = true    # Ligar animações de batalha por padrão?
    
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    # - Configurações de Comando -
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    # Essas configurações mostram os comandos mostrados na lista. Adiciona, remove
    # ou reorganiza os comandos como você quiser. Aqui há uma lista do que cada
    # comando representa:
    # 
    # -------------------------------------------------------------------------
    # :command         Descrição
    # -------------------------------------------------------------------------
    # :blank           Insere um espaço vazio.
    # 
    # :window_red      Muda o tom vermelho das janelas.
    # :window_grn      Muda o tom verde das janelas.
    # :window_blu      Muda o tom azul das janelas.
    # 
    # :volume_bgm      Muda o volume de BGM.
    # :volume_bgs      Muda o volume de BGS.
    # :volume_sfx      Muda o volume de SFX.
    # 
    # :autodash        Opção de corrida automática.
    # :instantmsg      Opção de Mensagem instântanea.
    # :animations      Opção de ligar ou desligar animações de batalha.
    # 
    # :to_title        Retorna para tela título.
    # :shutdown        Desliga o Jogo.
    # 
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    COMMANDS =[
      :window_red,   #  Muda o tom vermelho das janelas.
      :window_grn,   # Muda o tom verde das janelas.
      :window_blu,   #  Muda o tom azul das janelas.
      :volume_bgm,   # Muda o volume de BGM.
      :volume_bgs,   # Muda o volume de BGS.
      :volume_sfx,   # Muda o volume de SFX.
      :blank,
      :autodash,     # Opção de corrida automática.
      :instantmsg,   # Opção de Mensagem instântanea.
      :animations,   # Opção de ligar ou desligar animações de batalha.
    # :switch_1,     # Switch Customizada 1. Ajustar configurações abaixo
    # :switch_2,     # Switch Customizada 2. Ajustar configurações abaixo
    # :variable_1,   # Variável Customizável 1. Ajustar configurações abaixo
    # :variable_2,   # Variável Customizável 2. Ajustar configurações abaixo
      :blank,
      :to_title,     # Retorna para tela título.
      :shutdown,     # Desliga o Jogo.
    ] # Não remova isso u.u --
    
    #--------------------------------------------------------------------------
    # - Switches Customizadas -
    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    # Se você quer que seu joga tenha outras opções além das listadas acima
    # Você pode inserir alavancas aqui para produzir o efeito desejado. 
    # Ajuste as configurações como desejar.
    #--------------------------------------------------------------------------
    CUSTOM_SWITCHES ={
    # -------------------------------------------------------------------------
    # :switch    => [Switch ID, Nome, Texto ao desligar, Texto ao Ligar, 
    #                Descrição na Janela de Ajuda.
    #               ], # Não remova isso.
    # -------------------------------------------------------------------------
      :switch_1  => [ 1, "Custom Switch 1", "OFF", "ON",
                     "Descrição usada para Custom Switch 1."
                    ],
    # -------------------------------------------------------------------------
      :switch_2  => [ 2, "Custom Switch 2", "OFF", "ON",
                     "Descrição usada para Custom Switch 2."
                    ],
    # -------------------------------------------------------------------------
    } # Não remova isso, já deu pra perceber que não é pra remover né? e.e.
    
    #--------------------------------------------------------------------------
    # - Variáveis Customizadas -
    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    # Se você quer que seu joga tenha outras opções além das listadas acima
    # Você pode inserir variáveis aqui para produzir o efeito desejado. 
    # Ajuste as configurações como desejar.
    #--------------------------------------------------------------------------
    CUSTOM_VARIABLES ={
    # -------------------------------------------------------------------------
    # :variable   => [Variável ID, Nome, Cor 1, Cor 2, Min, Max,
    #                 Descrição na Janela de Ajuda.
    #                ], # Do not remove this.
    # -------------------------------------------------------------------------
      :variable_1 => [ 1, "Custom Variable 1", 9, 1, -100, 100,
                      "Descrição usada para Custom Variable 1."
                     ],
    # -------------------------------------------------------------------------
      :variable_2 => [ 2, "Custom Variable 2", 10, 2, -10, 10,
                      "Descrição usada para Custom Variavble 2."
                     ],
    # -------------------------------------------------------------------------
    } # Nem vou falar nada...
    
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    # - Configurações de Voca -
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    # Esta parte ajusta o vocab utilizado tanto para os comandos quanto para
    # As janelas de ajuda que aparece acima do comando. Note que para as 
    # descrições da janela de ajuda você pode usar códigos de Texto. Use \n 
    # para quebra de linha.
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    COMMAND_VOCAB ={
    # -------------------------------------------------------------------------
    # :command    => [Nome do Comando, Opção 1, Opção 2
    #                 Descrição da Janela de Ajuda,
    #                ], # Não remover.
    # -------------------------------------------------------------------------
      :blank      => ["", "Nada", "Nada",
                      ""
                     ],  # Não remover.
    # -------------------------------------------------------------------------
      :window_red => ["Tom Vermelho", "None", "None",
                      "Muda o tom vermelho para janelas.\n" +
                      "Segure SHIFT + direcional para acrescentar ou diminuir 10."
                     ], # Não remover.
    # -------------------------------------------------------------------------
      :window_grn => ["Window Green", "None", "None",
                      "Muda o tom verde para janelas.\n" +
                      "Segure SHIFT + direcional para acrescentar ou diminuir 10."
                     ], # Não remover.
    # -------------------------------------------------------------------------
      :window_blu => ["Window Blue", "None", "None",
                      "Muda o tom verde para janelas.\n" +
                      "Segure SHIFT + direcional para acrescentar ou diminuir 10."
                     ],  # Não remover.
    # -------------------------------------------------------------------------
      :volume_bgm => ["Volume BGM", 12, 4, # Opções 1 e 2 são as cores da barra.
                      "Muda o volume usado da música de fundo.\n" +
                      "Segure SHIFT + direcional para acrescentar ou diminuir 10."
                     ],  # Não remover.
    # -------------------------------------------------------------------------
      :volume_bgs => ["BGS Volume", 13, 5, # Opções 1 e 2 são as cores da barra.
                      "Muda o volume do som de fundo.\n" +
                      "Segure SHIFT + direcional para acrescentar ou diminuir 10."
                     ], # Do not remove this.
    # -------------------------------------------------------------------------
      :volume_sfx => ["SFX Volume", 14, 6, # Opções 1 e 2 são as cores da barra.
                      "Muda o volume dos Efeitos Sonoros SE .\n" +
                      "Segure SHIFT + direcional para acrescentar ou diminuir 10."
                     ], # Do not remove this.
    # -------------------------------------------------------------------------
      :autodash   => ["Auto-Dash", "Andar", "Correr",
                      "Corre automáticamente sem precisar pressionar o botão."
                     ], # Do not remove this.
    # -------------------------------------------------------------------------
      :instantmsg => ["Mensagem Instantânea", "Normal", "Instant",
                      "Coloca as mensagens para aparecer instantaneamente."
                     ], # Do not remove this.
    # -------------------------------------------------------------------------
      :animations => ["Animações de Batalha", "Esconder", "Mostrar",
                      "Esconder as animações para acelerar as batalhas?"
                     ], # Do not remove this.
    # -------------------------------------------------------------------------
      :to_title   => ["Tela Título", "None", "None",
                      "Voltar a Tela Título."
                     ], # Do not remove this.
    # -------------------------------------------------------------------------
      :shutdown   => ["Sair", "None", "None",
                      "Desliga o Jogo."
                     ], # Do not remove this.
    # -------------------------------------------------------------------------
    } # Do not remove this.
    
  end # SYSTEM
end # YEA

#==============================================================================
# ==== Só traduzi o que achei necessário, bjs === 
#▼ 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
  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
      rate2 = 45
      colour1 = Color.new(128, 0, 0)
      colour2 = Color.new(255, 0, 0)
      colour3 = Color.new(255,255,255)
      value = tone.red.to_i
    when :window_grn
      rate = (tone.green + 255.0) / 510.0
      rate2 = 45
      colour1 = Color.new(0, 128, 0)
      colour2 = Color.new(0, 255, 0)
      colour3 = Color.new(255,255,255)
      value = tone.green.to_i
    when :window_blu
      rate = (tone.blue + 255.0) / 510.0
      rate2 = 45
      colour1 = Color.new(0, 0, 128)
      colour2 = Color.new(0, 0, 255)
      colour3 = Color.new(255,255,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, 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, 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, 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
# 
#==============================================================================


[box class=titlebg]
Créditos e Avisos
[/box]
Criador: Yanfly
Tradução: Eu rsrs

Eu olho para esse script, eu vejo Final Fantasy k, eu havia testado ele e pensei em trazer para cá, nem sei talvez até trouxe kk, mas não traduzido claro, e traduzi-lo foi sim um trabalho então merece créditos u_u, já que tem muito comentário que teve que traduzir .-., então nada errado se creditar por isso. E o legal é que ele substitui aquele Scene_End, então ele já estará presente em praticamente todos os menus que tem, o que é um adianto e tanto :D, realmente um dos melhores scripts de janela dele, legal ter traduzido para o pessoal :).

Opa Raizen agradeço por comentar, eu já me acostumei em traduzir scripts, apesar de estar meio enferrujado. Mas desta vez priorizei traduzir o que é necessário, e deixar os comentários em processo para uma versão 2.0, quem sabe e.e.  Realmente vem FF na cabeça ao ver esse menu, tanto que estou utilizando ele no meu projeto, mas com algumas modificações. Já que eu fuço praticamente tudo que uso, esse script é muito bom, algo que não era explorado nos outros makers e ele fez logo que o Ace foi lançado. Sem falar que a maioria dos scripts do Yanfly te permite alta customização e esse não é diferente. Só acho estranho que a galera hoje em dia não visa muito a tradução dos scripts como antigamente, mas enfim eu planejo estar traduzindo mais sistemas e trazendo para cá. Do mais agradeço por comentar Raizen.