RPG Maker Forums

Okay, so I'm reviving a previous topic that was never solved (most likely because of my poor wording). Basically, I'm using YEA's Victory Aftermath, as well as a custom EXP Gain script so I can set the exp needed for higher levels. The problem is this exp gain script is conflicting with VA somehow, and because of that, I'm unable to have characters at max level, otherwise this error pops up:



Here's the line that the error occurs on:

  #--------------------------------------------------------------------------  # complete_ticks?  #--------------------------------------------------------------------------  def complete_ticks?    for actor in $game_party.battle_members      total_ticks = YEA::VICTORY_AFTERMATH::EXP_TICKS      bonus_exp = actor_exp_gain(actor) * @ticks / total_ticks      now_exp = actor.exp - actor.current_level_exp + bonus_exp      next_exp = actor.next_level_exp - actor.current_level_exp     #This is the error line.      rate = now_exp * 1.0 / next_exp      return false if rate < 1.0    end    return true  endThis is the full script:

#==============================================================================## ▼ Yanfly Engine Ace - Victory Aftermath v1.03# -- Last Updated: 2012.01.07# -- Level: Easy, Normal, Hard# -- Requires: n/a##==============================================================================$imported = {} if $imported.nil?$imported["YEA-VictoryAftermath"] = true#==============================================================================# ▼ Updates# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# 2012.01.07 - Compatibility Update: JP Manager# 2012.01.01 - Bug Fixed: Quote tags were mislabeled.# 2011.12.26 - Compatibility Update: Command Autobattle# 2011.12.16 - Started Script and Finished.##==============================================================================# ▼ Introduction# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# At the end of each battle, RPG Maker VX Ace by default shows text saying that# the party has gained so-and-so EXP while this person leveled up and your# party happened to find these drops. This script changes that text into# something more visual for your players to see. Active battle members will be# seen gaining EXP, any kind of level up changes, and a list of the items# obtained through drops.##==============================================================================# ▼ 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.## -----------------------------------------------------------------------------# Actor Notetags - These notetags go in the actors notebox in the database.# -----------------------------------------------------------------------------# <win quotes>#  string#  string# </win quotes># Sets the win quote for the actor. The strings are continuous and can use# text codes. Use \n for a line break. Type in what you want the actor to say# for the particular win quote. Use [New Quote] in between the two tags to# start up a new quote.## <level quotes>#  string#  string# </level quotes># Sets the level up quote for the actor. The strings are continuous and can use# text codes. Use \n for a line break. Type in what you want the actor to say# for the particular win quote. Use [New Quote] in between the two tags to# start up a new quote.## <drops quotes>#  string#  string# </drops quotes># Sets the drops quote for the actor. The strings are continuous and can use# text codes. Use \n for a line break. Type in what you want the actor to say# for the particular win quote. Use [New Quote] in between the two tags to# start up a new quote.## -----------------------------------------------------------------------------# Class Notetags - These notetags go in the class notebox in the database.# -----------------------------------------------------------------------------# <win quotes>#  string#  string# </win quotes># Sets the win quote for the class. The strings are continuous and can use# text codes. Use \n for a line break. Type in what you want the actor to say# for the particular win quote. Use [New Quote] in between the two tags to# start up a new quote.## <level quotes>#  string#  string# </level quotes># Sets the level up quote for the class. The strings are continuous and can use# text codes. Use \n for a line break. Type in what you want the actor to say# for the particular win quote. Use [New Quote] in between the two tags to# start up a new quote.## <drops quotes>#  string#  string# </drops quotes># Sets the drops quote for the class. The strings are continuous and can use# text codes. Use \n for a line break. Type in what you want the actor to say# for the particular win quote. Use [New Quote] in between the two tags to# start up a new quote.##==============================================================================# ▼ 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 VICTORY_AFTERMATH        #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-    # - General Settings -    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-    # These are various settings that are used throughout the Victory Aftermath    # portion of a battle. Adjust them as you see fit.    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-    VICTORY_BGM  = RPG::BGM.new("Field1", 100, 100)    # Victory BGM    VICTORY_TICK = RPG::SE.new("Decision1", 90, 150)  # EXP ticking SFX    LEVEL_SOUND  = RPG::SE.new("Up4", 80, 150)         # Level Up SFX    SKILLS_TEXT  = "A new skill has been learned!"     # New skills text title.        #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-    # - Important Settings -    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-    # These are some important settings so please set them up properly. This    # section includes a switch that allows you to skip the victory aftermath    # phase (for those back to back battles and making them seamless) and it    # also allows you to declare a common event to run after each battle. If    # you do not wish to use either of these features, set them to 0. The    # common event will run regardless of win or escape.    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-    SKIP_AFTERMATH_SWITCH  = 0  # If switch on, skip aftermath. 0 to disable.    SKIP_MUSIC_SWITCH      = 0  # If switch on, skip music. 0 to disable.    AFTERMATH_COMMON_EVENT = 0  # Runs common event after battle. 0 to disable.        #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-    # - Top Text Settings -    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-    # Here, you can adjust the various text that appears in the window that    # appears at the top of the screen.    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-    TOP_TEAM         = "%s's team"           # Team name used.    TOP_VICTORY_TEXT = "%s is victorious!"   # Text used to display victory.    TOP_LEVEL_UP     = "%s has leveled up!"  # Text used to display level up.    TOP_SPOILS       = "Victory Spoils!"     # Text used for spoils.        #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-    # - EXP Gauge Settings -    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-    # Adjust how the EXP Gauge appears for the Victory Aftermath here. This    # includes the text display, the font size, the colour of the gauges, and    # more. Adjust it all here.    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-    VICTORY_EXP  = "+%sEXP"      # Text used to display EXP.    EXP_PERCENT  = "%1.2f%%"     # The way EXP percentage will be displayed.    LEVELUP_TEXT = "LEVEL UP!"   # Text to replace percentage when leveled.    MAX_LVL_TEXT = "MAX LEVEL"   # Text to replace percentage when max level.    FONTSIZE_EXP = 20            # Font size used for EXP.    EXP_TICKS    = 25            # Ticks to full EXP    EXP_GAUGE1   = 12            # "Window" skin text colour for gauge.    EXP_GAUGE2   = 4             # "Window" skin text colour for gauge.    LEVEL_GAUGE1 = 13            # "Window" skin text colour for leveling.    LEVEL_GAUGE2 = 5             # "Window" skin text colour for leveling.        #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-    # - Victory Messages -    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-    # In the Victory Aftermath, actors can say unique things. This is the pool    # of quotes used for actors without any custom victory quotes. Note that    # actors with custom quotes will take priority over classes with custom    # quotes, which will take priority over these default quotes. Use \n for    # a line break in the quotes.    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-    HEADER_TEXT = "\e>\eC[6]%s\eC[0]\e<\n"  # Always at start of messages.    FOOTER_TEXT = ""                        # Always at end of messages.        # Win Quotes are what the actors say when a battle is won.    VICTORY_QUOTES ={    # :type   => Quotes      #------------------------------------------------------------------------      :win    => [ # Occurs as initial victory quote.                     "Keep trying if you think you can win.",                 ],# Do not remove this.      #------------------------------------------------------------------------      :level  => [ # Occurs as initial victory quote.                     "Well, well~",                 ],# Do not remove this.      #------------------------------------------------------------------------      :drops  => [ # Occurs as initial victory quote.                     "What's this?",                 ],# Do not remove this.      #------------------------------------------------------------------------    } # Do not remove this.      end # VICTORY_AFTERMATHend # 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.#==============================================================================module YEA  module REGEXP  module BASEITEM        NEW_QUOTE = /\[(?:NEW_QUOTE|new quote)\]/i        WIN_QUOTE_ON    = /<(?:WIN_QUOTES|win quote|win quotes)>/i    WIN_QUOTE_OFF   = /<\/(?:WIN_QUOTES|win quote|win quotes)>/i    LEVEL_QUOTE_ON  = /<(?:LEVEL_QUOTES|level quote|level quotes)>/i    LEVEL_QUOTE_OFF = /<\/(?:LEVEL_QUOTES|level quote|level quotes)>/i    DROPS_QUOTE_ON  = /<(?:DROPS_QUOTES|drops quote|drops quotes)>/i    DROPS_QUOTE_OFF = /<\/(?:DROPS_QUOTES|drops quote|drops quotes)>/i      end # BASEITEM  end # REGEXPend # YEA#==============================================================================# ■ Switch#==============================================================================module Switch   #--------------------------------------------------------------------------  # self.skip_aftermath  #--------------------------------------------------------------------------  def self.skip_aftermath    return false if YEA::VICTORY_AFTERMATH::SKIP_AFTERMATH_SWITCH <= 0    return $game_switches[YEA::VICTORY_AFTERMATH::SKIP_AFTERMATH_SWITCH]  end   #--------------------------------------------------------------------------  # self.skip_aftermath_music  #--------------------------------------------------------------------------  def self.skip_aftermath_music    return false if YEA::VICTORY_AFTERMATH::SKIP_MUSIC_SWITCH <=0    return $game_switches[YEA::VICTORY_AFTERMATH::SKIP_MUSIC_SWITCH]  end    end # Switch#==============================================================================# ■ Numeric#==============================================================================class Numeric   #--------------------------------------------------------------------------  # new method: group_digits  #--------------------------------------------------------------------------  unless $imported["YEA-CoreEngine"]  def group; return self.to_s; end  end # $imported["YEA-CoreEngine"]    end # Numeric#==============================================================================# ■ DataManager#==============================================================================module DataManager   #--------------------------------------------------------------------------  # alias method: load_database  #--------------------------------------------------------------------------  class <<self; alias load_database_va load_database; end  def self.load_database    load_database_va    load_notetags_va  end   #--------------------------------------------------------------------------  # new method: load_notetags_va  #--------------------------------------------------------------------------  def self.load_notetags_va    groups = [$data_actors, $data_classes]    for group in groups      for obj in group        next if obj.nil?        obj.load_notetags_va      end    end  end end # DataManager#==============================================================================# ■ RPG::BaseItem#==============================================================================class RPG::BaseItem   #--------------------------------------------------------------------------  # public instance variables  #--------------------------------------------------------------------------  attr_accessor :win_quotes  attr_accessor :level_quotes  attr_accessor :drops_quotes   #--------------------------------------------------------------------------  # common cache: load_notetags_va  #--------------------------------------------------------------------------  def load_notetags_va    @win_quotes = [""]    @level_quotes = [""]    @drops_quotes = [""]    @victory_quote_type = nil    #---    self.note.split(/[\r\n]+/).each { |line|      case line      #---      when YEA::REGEXP::BASEITEM::WIN_QUOTE_ON        @victory_quote_type = :win_quote      when YEA::REGEXP::BASEITEM::WIN_QUOTE_OFF        @victory_quote_type = nil      when YEA::REGEXP::BASEITEM::LEVEL_QUOTE_ON        @victory_quote_type = :level_quote      when YEA::REGEXP::BASEITEM::LEVEL_QUOTE_OFF        @victory_quote_type = nil      when YEA::REGEXP::BASEITEM::DROPS_QUOTE_ON        @victory_quote_type = :drops_quote      when YEA::REGEXP::BASEITEM::DROPS_QUOTE_OFF        @victory_quote_type = nil      #---      when YEA::REGEXP::BASEITEM::NEW_QUOTE        case @victory_quote_type        when nil; next        when :win_quote;   @win_quotes.push("")        when :level_quote; @level_quotes.push("")        when :drops_quote; @drops_quotes.push("")        end      #---      else        case @victory_quote_type        when nil; next        when :win_quote;   @win_quotes[@win_quotes.size-1] += line.to_s        when :level_quote; @level_quotes[@level_quotes.size-1] += line.to_s        when :drops_quote; @drops_quotes[@drops_quotes.size-1] += line.to_s        end      end    } # self.note.split    #---    return unless self.is_a?(RPG::Class)    quotes = YEA::VICTORY_AFTERMATH::VICTORY_QUOTES    @win_quotes = quotes[:win].clone if @win_quotes == [""]    @level_quotes = quotes[:level].clone if @level_quotes == [""]    @drops_quotes = quotes[:drops].clone if @drops_quotes == [""]  end end # RPG::BaseItem#==============================================================================# ■ BattleManager#==============================================================================module BattleManager   #--------------------------------------------------------------------------  # overwrite method: self.process_victory  #--------------------------------------------------------------------------  def self.process_victory    if $imported["YEA-CommandAutobattle"]      SceneManager.scene.close_disable_autobattle_window    end    return skip_aftermath if Switch.skip_aftermath    play_battle_end_me    gain_jp if $imported["YEA-JPManager"]    display_exp    gain_exp    gain_gold    gain_drop_items    close_windows    SceneManager.return    replay_bgm_and_bgs    battle_end(0)    return true  end   #--------------------------------------------------------------------------  # new method: self.skip_aftermath  #--------------------------------------------------------------------------  def self.skip_aftermath    $game_party.all_members.each do |actor|      actor.gain_exp($game_troop.exp_total)    end    $game_party.gain_gold($game_troop.gold_total)    $game_troop.make_drop_items.each do |item|      $game_party.gain_item(item, 1)    end    close_windows    SceneManager.return    replay_bgm_and_bgs    battle_end(0)  end   #--------------------------------------------------------------------------  # overwrite method: self.play_battle_end_me  #--------------------------------------------------------------------------  def self.play_battle_end_me    return if Switch.skip_aftermath_music    $game_system.battle_end_me.play    YEA::VICTORY_AFTERMATH::VICTORY_BGM.play  end   #--------------------------------------------------------------------------  # new method: self.set_victory_text  #--------------------------------------------------------------------------  def self.set_victory_text(actor, type)    text = "" + sprintf(YEA::VICTORY_AFTERMATH::HEADER_TEXT, actor.name)    text += actor.victory_quotes(type)[rand(actor.victory_quotes(type).size)]    text += YEA::VICTORY_AFTERMATH::FOOTER_TEXT    $game_message.face_name = actor.face_name    $game_message.face_index = actor.face_index    $game_message.add(text)    wait_for_message  end   #--------------------------------------------------------------------------  # overwrite method: self.display_exp  #--------------------------------------------------------------------------  def self.display_exp    SceneManager.scene.show_victory_display_exp    actor = $game_party.random_target    @victory_actor = actor    set_victory_text(@victory_actor, :win)  end   #--------------------------------------------------------------------------  # overwrite method: self.gain_exp  #--------------------------------------------------------------------------  def self.gain_exp    $game_party.all_members.each do |actor|      temp_actor = Marshal.load(Marshal.dump(actor))      actor.gain_exp($game_troop.exp_total)      next if actor.level == temp_actor.level      SceneManager.scene.show_victory_level_up(actor, temp_actor)      set_victory_text(actor, :level)      wait_for_message    end  end   #--------------------------------------------------------------------------  # overwrite method: self.gain_gold  #--------------------------------------------------------------------------  def self.gain_gold    $game_party.gain_gold($game_troop.gold_total)  end   #--------------------------------------------------------------------------  # overwrite method: self.gain_drop_items  #--------------------------------------------------------------------------  def self.gain_drop_items    drops = []    $game_troop.make_drop_items.each do |item|      $game_party.gain_item(item, 1)      drops.push(item)    end    SceneManager.scene.show_victory_spoils($game_troop.gold_total, drops)    set_victory_text(@victory_actor, :drops)    wait_for_message  end   #--------------------------------------------------------------------------  # new method: self.close_windows  #--------------------------------------------------------------------------  def self.close_windows    SceneManager.scene.close_victory_windows  end   #--------------------------------------------------------------------------  # alias method: load_database  #--------------------------------------------------------------------------  class <<self; alias battle_end_va battle_end; end  def self.battle_end(result)    battle_end_va(result)    return if result == 2    return if YEA::VICTORY_AFTERMATH::AFTERMATH_COMMON_EVENT <= 0    event_id = YEA::VICTORY_AFTERMATH::AFTERMATH_COMMON_EVENT    $game_temp.reserve_common_event(event_id)  end end # BattleManager#==============================================================================# ■ Game_Actor#==============================================================================class Game_Actor < Game_Battler   #--------------------------------------------------------------------------  # overwrite method: gain_exp  #--------------------------------------------------------------------------  def gain_exp(exp)    enabled = !SceneManager.scene_is?(Scene_Battle)    change_exp(self.exp + (exp * final_exp_rate).to_i, enabled)  end   #--------------------------------------------------------------------------  # new method: victory_quotes  #--------------------------------------------------------------------------  def victory_quotes(type)    case type    when :win      return self.actor.win_quotes if self.actor.win_quotes != [""]      return self.class.win_quotes    when :level      return self.actor.level_quotes if self.actor.level_quotes != [""]      return self.class.level_quotes    when :drops      return self.actor.drops_quotes if self.actor.drops_quotes != [""]      return self.class.drops_quotes    else      return ["NOTEXT"]    end  end end # Game_Actor#==============================================================================# ■ Window_VictoryTitle#==============================================================================class Window_VictoryTitle < Window_Base   #--------------------------------------------------------------------------  # initialize  #--------------------------------------------------------------------------  def initialize    super(0, 0, Graphics.width, fitting_height(1))    self.z = 200    self.openness = 0  end   #--------------------------------------------------------------------------  # refresh  #--------------------------------------------------------------------------  def refresh(message = "")    contents.clear    draw_text(0, 0, contents.width, line_height, message, 1)  end end # Window_VictoryTitle#==============================================================================# ■ Window_VictoryEXP_Back#==============================================================================class Window_VictoryEXP_Back < Window_Selectable   #--------------------------------------------------------------------------  # initialize  #--------------------------------------------------------------------------  def initialize    super(0, fitting_height(1), Graphics.width, window_height)    self.z = 200    self.openness = 0  end   #--------------------------------------------------------------------------  # window_height  #--------------------------------------------------------------------------  def window_height    return Graphics.height - fitting_height(4) - fitting_height(1)  end   #--------------------------------------------------------------------------  # col_max  #--------------------------------------------------------------------------  def col_max; return item_max; end   #--------------------------------------------------------------------------  # spacing  #--------------------------------------------------------------------------  def spacing; return 8; end   #--------------------------------------------------------------------------  # item_max  #--------------------------------------------------------------------------  def item_max; return $game_party.battle_members.size; end   #--------------------------------------------------------------------------  # open  #--------------------------------------------------------------------------  def open    @exp_total = $game_troop.exp_total    super  end   #--------------------------------------------------------------------------  # item_rect  #--------------------------------------------------------------------------  def item_rect(index)    rect = Rect.new    rect.width = item_width    rect.height = contents.height    rect.x = index % col_max * (item_width + spacing)    rect.y = index / col_max * item_height    return rect  end   #--------------------------------------------------------------------------  # draw_item  #--------------------------------------------------------------------------  def draw_item(index)    actor = $game_party.battle_members[index]    return if actor.nil?    rect = item_rect(index)    reset_font_settings    draw_actor_name(actor, rect)    draw_exp_gain(actor, rect)    draw_jp_gain(actor, rect)    draw_actor_face(actor, rect)  end   #--------------------------------------------------------------------------  # draw_actor_name  #--------------------------------------------------------------------------  def draw_actor_name(actor, rect)    name = actor.name    draw_text(rect.x, rect.y+line_height, rect.width, line_height, name, 1)  end   #--------------------------------------------------------------------------  # draw_actor_face  #--------------------------------------------------------------------------  def draw_actor_face(actor, rect)    face_name = actor.face_name    face_index = actor.face_index    bitmap = Cache.face(face_name)    rw = [rect.width, 96].min    face_rect = Rect.new(face_index % 4 * 96, face_index / 4 * 96, rw, 96)    rx = (rect.width - rw) / 2 + rect.x    contents.blt(rx, rect.y + line_height * 2, bitmap, face_rect, 255)  end   #--------------------------------------------------------------------------  # draw_exp_gain  #--------------------------------------------------------------------------  def draw_exp_gain(actor, rect)    dw = rect.width - (rect.width - [rect.width, 96].min) / 2    dy = rect.y + line_height * 3 + 96    fmt = YEA::VICTORY_AFTERMATH::VICTORY_EXP    text = sprintf(fmt, actor_exp_gain(actor).group)    contents.font.size = YEA::VICTORY_AFTERMATH::FONTSIZE_EXP    change_color(power_up_color)    draw_text(rect.x, dy, dw, line_height, text, 2)  end   #--------------------------------------------------------------------------  # actor_exp_gain  #--------------------------------------------------------------------------  def actor_exp_gain(actor)    n = @exp_total * actor.final_exp_rate    return n.to_i  end   #--------------------------------------------------------------------------  # draw_jp_gain  #--------------------------------------------------------------------------  def draw_jp_gain(actor, rect)    return unless $imported["YEA-JPManager"]    dw = rect.width - (rect.width - [rect.width, 96].min) / 2    dy = rect.y + line_height * 4 + 96    fmt = YEA::JP::VICTORY_AFTERMATH    text = sprintf(fmt, actor_jp_gain(actor).group, Vocab::jp)    contents.font.size = YEA::VICTORY_AFTERMATH::FONTSIZE_EXP    change_color(power_up_color)    draw_text(rect.x, dy, dw, line_height, text, 2)  end   #--------------------------------------------------------------------------  # actor_jp_gain  #--------------------------------------------------------------------------  def actor_jp_gain(actor)    n = actor.battle_jp_earned    if actor.exp + actor_exp_gain(actor) > actor.exp_for_level(actor.level + 1)      n += YEA::JP::LEVEL_UP unless actor.max_level?    end    return n  end end # Window_VictoryEXP_Back#==============================================================================# ■ Window_VictoryEXP_Front#==============================================================================class Window_VictoryEXP_Front < Window_VictoryEXP_Back   #--------------------------------------------------------------------------  # initialize  #--------------------------------------------------------------------------  def initialize    super    self.back_opacity = 0    @ticks = 0    @counter = 30    contents.font.size = YEA::VICTORY_AFTERMATH::FONTSIZE_EXP  end   #--------------------------------------------------------------------------  # update  #--------------------------------------------------------------------------  def update    super    update_tick  end   #--------------------------------------------------------------------------  # update_tick  #--------------------------------------------------------------------------  def update_tick    return unless self.openness >= 255    return unless self.visible    return if complete_ticks?    @counter -= 1    return unless @counter <= 0    return if @ticks >= YEA::VICTORY_AFTERMATH::EXP_TICKS    YEA::VICTORY_AFTERMATH::VICTORY_TICK.play    @counter = 4    @ticks += 1    refresh  end   #--------------------------------------------------------------------------  # complete_ticks?  #--------------------------------------------------------------------------  def complete_ticks?    for actor in $game_party.battle_members      total_ticks = YEA::VICTORY_AFTERMATH::EXP_TICKS      bonus_exp = actor_exp_gain(actor) * @ticks / total_ticks      now_exp = actor.exp - actor.current_level_exp + bonus_exp      next_exp = actor.next_level_exp - actor.current_level_exp      rate = now_exp * 1.0 / next_exp      return false if rate < 1.0    end    return true  end   #--------------------------------------------------------------------------  # draw_item  #--------------------------------------------------------------------------  def draw_item(index)    actor = $game_party.battle_members[index]    return if actor.nil?    rect = item_rect(index)    draw_actor_exp(actor, rect)  end   #--------------------------------------------------------------------------  # exp_gauge1  #--------------------------------------------------------------------------  def exp_gauge1; return text_color(YEA::VICTORY_AFTERMATH::EXP_GAUGE1); end   #--------------------------------------------------------------------------  # exp_gauge2  #--------------------------------------------------------------------------  def exp_gauge2; return text_color(YEA::VICTORY_AFTERMATH::EXP_GAUGE2); end   #--------------------------------------------------------------------------  # lvl_gauge1  #--------------------------------------------------------------------------  def lvl_gauge1; return text_color(YEA::VICTORY_AFTERMATH::LEVEL_GAUGE1); end   #--------------------------------------------------------------------------  # lvl_gauge2  #--------------------------------------------------------------------------  def lvl_gauge2; return text_color(YEA::VICTORY_AFTERMATH::LEVEL_GAUGE2); end   #--------------------------------------------------------------------------  # draw_actor_exp  #--------------------------------------------------------------------------  def draw_actor_exp(actor, rect)    if actor.max_level?      @ticks = 0      draw_exp_gauge(actor, rect, 1.0)      return    end    total_ticks = YEA::VICTORY_AFTERMATH::EXP_TICKS    bonus_exp = actor_exp_gain(actor) * @ticks / total_ticks    now_exp = actor.exp - actor.current_level_exp + bonus_exp    next_exp = actor.next_level_exp - actor.current_level_exp    rate = now_exp * 1.0 / next_exp    draw_exp_gauge(actor, rect, rate)  end   #--------------------------------------------------------------------------  # draw_exp_gauge  #--------------------------------------------------------------------------  def draw_exp_gauge(actor, rect, rate)    rate = [[rate, 1.0].min, 0.0].max    dx = (rect.width - [rect.width, 96].min) / 2 + rect.x    dy = rect.y + line_height * 2 + 96    dw = [rect.width, 96].min    colour1 = rate >= 1.0 ? lvl_gauge1 : exp_gauge1    colour2 = rate >= 1.0 ? lvl_gauge2 : exp_gauge2    draw_gauge(dx, dy, dw, rate, colour1, colour2)    fmt = YEA::VICTORY_AFTERMATH::EXP_PERCENT    text = sprintf(fmt, [rate * 100, 100.00].min)    if [rate * 100, 100.00].min == 100.00      text = YEA::VICTORY_AFTERMATH::LEVELUP_TEXT      text = YEA::VICTORY_AFTERMATH::MAX_LVL_TEXT if actor.max_level?    end    draw_text(dx, dy, dw, line_height, text, 1)  end end # Window_VictoryEXP_Front#==============================================================================# ■ Window_VictoryLevelUp#==============================================================================class Window_VictoryLevelUp < Window_Base   #--------------------------------------------------------------------------  # initialize  #--------------------------------------------------------------------------  def initialize    super(0, fitting_height(1), Graphics.width, window_height)    self.z = 200    hide  end   #--------------------------------------------------------------------------  # window_height  #--------------------------------------------------------------------------  def window_height    return Graphics.height - fitting_height(4) - fitting_height(1)  end   #--------------------------------------------------------------------------  # refresh  #--------------------------------------------------------------------------  def refresh(actor, temp_actor)    contents.clear    reset_font_settings    YEA::VICTORY_AFTERMATH::LEVEL_SOUND.play    draw_actor_changes(actor, temp_actor)  end   #--------------------------------------------------------------------------  # draw_actor_changes  #--------------------------------------------------------------------------  def draw_actor_changes(actor, temp_actor)    dx = contents.width / 16    draw_actor_image(actor, temp_actor, dx)    draw_param_names(actor, dx)    draw_former_stats(temp_actor)    draw_arrows    draw_newer_stats(actor, temp_actor)    draw_new_skills(actor, temp_actor)  end   #--------------------------------------------------------------------------  # draw_actor_image  #--------------------------------------------------------------------------  def draw_actor_image(actor, temp_actor, dx)    draw_text(dx, line_height, 96, line_height, actor.name, 1)    draw_actor_face(actor, dx, line_height * 2)    exp = actor.exp - temp_actor.exp    text = sprintf(YEA::VICTORY_AFTERMATH::VICTORY_EXP, exp.group)    change_color(power_up_color)    contents.font.size = YEA::VICTORY_AFTERMATH::FONTSIZE_EXP    draw_text(0, line_height * 2 + 96, dx + 96, line_height, text, 2)    reset_font_settings  end   #--------------------------------------------------------------------------  # draw_param_names  #--------------------------------------------------------------------------  def draw_param_names(actor, dx)    dx += 108    change_color(system_color)    text = Vocab.level    draw_text(dx, 0, contents.width - dx, line_height, text)    dy = 0    for i in 0...8      dy += line_height      text = Vocab.param(i)      draw_text(dx, dy, contents.width - dx, line_height, text)    end  end   #--------------------------------------------------------------------------  # draw_former_stats  #--------------------------------------------------------------------------  def draw_former_stats(actor)    dw = contents.width / 2 - 12    dy = 0    change_color(normal_color)    draw_text(0, dy, dw, line_height, actor.level.group, 2)    for i in 0...8      dy += line_height      draw_text(0, dy, dw, line_height, actor.param(i).group, 2)    end  end   #--------------------------------------------------------------------------  # draw_arrows  #--------------------------------------------------------------------------  def draw_arrows    dx = contents.width / 2 - 12    dy = 0    change_color(system_color)    for i in 0..8      draw_text(dx, dy, 24, line_height, "→", 1)      dy += line_height    end  end   #--------------------------------------------------------------------------  # draw_newer_stats  #--------------------------------------------------------------------------  def draw_newer_stats(actor, temp_actor)    dx = contents.width / 2 + 12    dw = contents.width - dx    dy = 0    change_color(param_change_color(actor.level - temp_actor.level))    draw_text(dx, dy, dw, line_height, actor.level.group, 0)    for i in 0...8      dy += line_height      change_color(param_change_color(actor.param(i) - temp_actor.param(i)))      draw_text(dx, dy, dw, line_height, actor.param(i).group, 0)    end  end   #--------------------------------------------------------------------------  # draw_new_skills  #--------------------------------------------------------------------------  def draw_new_skills(actor, temp_actor)    return if temp_actor.skills.size == actor.skills.size    dw = 172 + 24    dx = contents.width - dw    change_color(system_color)    text = YEA::VICTORY_AFTERMATH::SKILLS_TEXT    draw_text(dx, 0, dw, line_height, text, 0)  end end # Window_VictoryLevelUp#==============================================================================# ■ Window_VictorySkills#==============================================================================class Window_VictorySkills < Window_Selectable   #--------------------------------------------------------------------------  # initialize  #--------------------------------------------------------------------------  def initialize    dy = fitting_height(1) + 24    dw = 172 + 24 + 24    dh = Graphics.height - fitting_height(4) - fitting_height(1) - 24    super(Graphics.width - dw, dy, dw, dh)    self.opacity = 0    self.z = 200    hide  end   #--------------------------------------------------------------------------  # item_max  #--------------------------------------------------------------------------  def item_max; return @data.nil? ? 0 : @data.size; end   #--------------------------------------------------------------------------  # refresh  #--------------------------------------------------------------------------  def refresh(actor, temp_actor)    contents.clear    if actor.skills.size == temp_actor.skills.size      unselect      @data = []      create_contents      return    end    @data = actor.skills - temp_actor.skills    if @data.size > 8      select(0)      activate    else      unselect      deactivate    end    create_contents    draw_all_items  end   #--------------------------------------------------------------------------  # refresh  #--------------------------------------------------------------------------  def draw_item(index)    rect = item_rect(index)    skill = @data[index]    return if skill.nil?    rect.width -= 4    draw_item_name(skill, rect.x, rect.y, true)  end end # Window_VictorySkills#==============================================================================# ■ Window_VictorySpoils#==============================================================================class Window_VictorySpoils < Window_ItemList   #--------------------------------------------------------------------------  # initialize  #--------------------------------------------------------------------------  def initialize    super(0, fitting_height(1), Graphics.width, window_height)    self.z = 200    hide  end   #--------------------------------------------------------------------------  # window_height  #--------------------------------------------------------------------------  def window_height    return Graphics.height - fitting_height(4) - fitting_height(1)  end   #--------------------------------------------------------------------------  # spacing  #--------------------------------------------------------------------------  def spacing; return 32; end   #--------------------------------------------------------------------------  # make  #--------------------------------------------------------------------------  def make(gold, drops)    @gold = gold    @drops = drops    refresh    select(0)    activate  end   #--------------------------------------------------------------------------  # make_item_list  #--------------------------------------------------------------------------  def make_item_list    @data = [nil]    items = {}    weapons = {}    armours = {}    @goods = {}    for item in @drops      case item      when RPG::Item        items[item] = 0 if items[item].nil?        items[item] += 1      when RPG::Weapon        weapons[item] = 0 if weapons[item].nil?        weapons[item] += 1      when RPG::Armor        armours[item] = 0 if armours[item].nil?        armours[item] += 1      end    end    items = items.sort { |a,b| a[0].id <=> b[0].id }    weapons = weapons.sort { |a,b| a[0].id <=> b[0].id }    armours = armours.sort { |a,b| a[0].id <=> b[0].id }    for key in items; @goods[key[0]] = key[1]; @data.push(key[0]); end    for key in weapons; @goods[key[0]] = key[1]; @data.push(key[0]); end    for key in armours; @goods[key[0]] = key[1]; @data.push(key[0]); end  end   #--------------------------------------------------------------------------  # draw_item  #--------------------------------------------------------------------------  def draw_item(index)    item = @data[index]    rect = item_rect(index)    reset_font_settings    if item.nil?      draw_gold(rect)      return    end    rect.width -= 4    draw_item_name(item, rect.x, rect.y, true, rect.width - 24)    draw_item_number(rect, item)  end   #--------------------------------------------------------------------------  # draw_gold  #--------------------------------------------------------------------------  def draw_gold(rect)    text = Vocab.currency_unit    draw_currency_value(@gold, text, rect.x, rect.y, rect.width)  end   #--------------------------------------------------------------------------  # draw_item_number  #--------------------------------------------------------------------------  def draw_item_number(rect, item)    number = @goods[item].group    if $imported["YEA-AdjustLimits"]      contents.font.size = YEA::LIMIT::ITEM_FONT      text = sprintf(YEA::LIMIT::ITEM_PREFIX, number)      draw_text(rect, text, 2)    else      draw_text(rect, sprintf(":%s", number), 2)    end  end end # Window_VictorySpoils#==============================================================================# ■ Scene_Battle#==============================================================================class Scene_Battle < Scene_Base   #--------------------------------------------------------------------------  # alias method: create_all_windows  #--------------------------------------------------------------------------  alias scene_battle_create_all_windows_va create_all_windows  def create_all_windows    scene_battle_create_all_windows_va    create_victory_aftermath_windows  end   #--------------------------------------------------------------------------  # new method: create_victory_aftermath_windows  #--------------------------------------------------------------------------  def create_victory_aftermath_windows    @victory_title_window = Window_VictoryTitle.new    @victory_exp_window_back = Window_VictoryEXP_Back.new    @victory_exp_window_front = Window_VictoryEXP_Front.new    @victory_level_window = Window_VictoryLevelUp.new    @victory_level_skills = Window_VictorySkills.new    @victory_spoils_window = Window_VictorySpoils.new  end   #--------------------------------------------------------------------------  # new method: show_victory_display_exp  #--------------------------------------------------------------------------  def show_victory_display_exp    @victory_title_window.open    name = $game_party.battle_members[0].name    fmt = YEA::VICTORY_AFTERMATH::TOP_TEAM    name = sprintf(fmt, name) if $game_party.battle_members.size > 1    fmt = YEA::VICTORY_AFTERMATH::TOP_VICTORY_TEXT    text = sprintf(fmt, name)    @victory_title_window.refresh(text)    #---    @victory_exp_window_back.open    @victory_exp_window_back.refresh    @victory_exp_window_front.open    @victory_exp_window_front.refresh  end   #--------------------------------------------------------------------------  # new method: show_victory_level_up  #--------------------------------------------------------------------------  def show_victory_level_up(actor, temp_actor)    @victory_exp_window_back.hide    @victory_exp_window_front.hide    #---    fmt = YEA::VICTORY_AFTERMATH::TOP_LEVEL_UP    text = sprintf(fmt, actor.name)    @victory_title_window.refresh(text)    #---    @victory_level_window.show    @victory_level_window.refresh(actor, temp_actor)    @victory_level_skills.show    @victory_level_skills.refresh(actor, temp_actor)  end   #--------------------------------------------------------------------------  # new method: show_victory_spoils  #--------------------------------------------------------------------------  def show_victory_spoils(gold, drops)    @victory_exp_window_back.hide    @victory_exp_window_front.hide    @victory_level_window.hide    @victory_level_skills.hide    #---    text = YEA::VICTORY_AFTERMATH::TOP_SPOILS    @victory_title_window.refresh(text)    #---    @victory_spoils_window.show    @victory_spoils_window.make(gold, drops)  end   #--------------------------------------------------------------------------  # new method: close_victory_windows  #--------------------------------------------------------------------------  def close_victory_windows    @victory_title_window.close    @victory_exp_window_back.close    @victory_exp_window_front.close    @victory_level_window.close    @victory_level_skills.close    @victory_spoils_window.close    wait(16)  end end # Scene_Battle#==============================================================================## ▼ End of File##==============================================================================
And, finally, the alternative EXP Gain script I'm using:

#≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡# :: Alternative EXP Gain                                    [RPG Maker VX Ace]#    Version 1.00#------------------------------------------------------------------------------#  The purpose of this script is to allow the user to change how much EXP#  is required to level up.#==============================================================================# ; Version History#------------------------------------------------------------------------------#   Version 1.00 ------------------------------------------------- (14-11-2012)#     - Initial version#     - Author: Legacy##==============================================================================# ; Instructions#------------------------------------------------------------------------------#  To instal the script, open you script editor and paste this script on#  a new section bellow the Materials section.#==============================================================================# * Contact#------------------------------------------------------------------------------#  Legacy, the author of this script, can be contacted through his#  website, found at http://legacyscripts.wordpress.com/##  You may also find Legacy at http://www.rpgrevolution.com/#==============================================================================# * Usage#------------------------------------------------------------------------------#  This script may be used with the following terms and conditions:##    1. This script is free to use in any noncommercial project. If you wish to#       use this script in a commercial (paid) project, please contact#       Legacy at his website.#    2. This script may only be hosted at the following domains:#         http://www.legacy-studios.org#         http://www.save-point.org#         http://www.rpgrevolution.com#         http://www.rpgmakerweb.com#    3. If you wish to host this script elsewhere, please contact Legacy.#    4. If you wish to translate this script, please contact Legacy. He#       will need the web address that you plan to host the script at, as well#       as the language this script is being translated to.#    5. This header must remain intact at all times.#    6. Legacy remains the sole owner of this code. He may modify or#       revoke this license at any time, for any reason.#    7. Any code derived from code within this script is owned by Legacy,#       and you must have his permission to publish, host, or distribute his#       code.#    8. This license applies to all code derived from the code within this#       script.#    9. If you use this script within your project, you must include visible#       credit to Legacy, within reason.#≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡#==============================================================================# :: RPG::Class#==============================================================================class RPG::Class < RPG::BaseItem  def exp_for_level(level)    #--------------------------------------------------------------------------    # ; @new_exp_gain = { level => exp_needed_to_level }    #--------------------------------------------------------------------------    @new_exp_gain = {    1 => 0,    2 => 51,    3 => 169,    4 => 386,    5 => 735,    6 => 1253,    7 => 1978,    8 => 2950,    9 => 4213,    10 => 5812,    11 => 7796,    12 => 10215,    13 => 13121,    14 => 16570,    15 => 20619,    16 => 25329,    17 => 30762,    18 => 36982,    19 => 44057,    20 => 53056,    21 => 61052,    22 => 71119,    23 => 82333,    24 => 94774,    25 => 108523,    26 => 123665,    27 => 140286,    28 => 158474,    29 => 178321,    30 => 199920,    31 => 223368,    32 => 248763,    33 => 276205,    34 => 305798,    35 => 337647,    36 => 371861,    37 => 408550,    38 => 447826,    39 => 489805,    40 => 534604,    41 => 582344,    42 => 633147,    43 => 687137,    44 => 744442,    45 => 805191,    46 => 869517,    47 => 937554,    48 => 1009438,    49 => 1085309,    50 => 1165308,    51 => 1249580,    52 => 1338271,    53 => 1431529,    54 => 1529506,    55 => 1632355,    56 => 1740233,    57 => 1853298,    58 => 1971710,    59 => 2095633,    60 => 2225232,    61 => 2360676,    62 => 2502135,    63 => 2649781,    64 => 2803790,    65 => 2964339,    66 => 3131609,    67 => 3305782,    68 => 3487042,    69 => 3675577,    70 => 3871576,    71 => 4075232,    72 => 4286739,    73 => 4506293,    74 => 4734094,    75 => 4970343,    76 => 5215245,    77 => 5469006,    78 => 5731834,    79 => 6003941,    80 => 6285540,    81 => 6576848,    82 => 6878083,    83 => 7189465,    84 => 7511218,    85 => 7843567,    86 => 8186741,    87 => 8540970,    88 => 8906486,    89 => 9283525,    90 => 9672324,    91 => 10073124,    92 => 10486167,    93 => 10911697,    94 => 11349962,    95 => 11801211,    96 => 12265697,    97 => 12743674,    98 => 13235398,    99 => 13741129,    100 => 14223368,    101 => 14848763,    102 => 15476205,    103 => 15905798,    104 => 16437647,    105 => 17071861,    106 => 17708550,    107 => 18447826,    108 => 19389805,    109 => 21134604,    110 => 23182344,    111 => 23933147,    112 => 24787137,    113 => 25544442,    114 => 26105191,    115 => 26869517,    116 => 27737554,    117 => 28700938,    118 => 29808509,    119 => 30865308,    120 => 31949580,    121 => 33133271,    122 => 34231529,    123 => 35529506,    124 => 36932355,    125 => 38040233,    126 => 39553298,    127 => 41371710,    128 => 42595633,    129 => 43705232,    130 => 44860676,    131 => 46002135,    132 => 47449781,    133 => 48903790,    134 => 50364339,    135 => 51631609,    136 => 51945782,    137 => 53487042,    138 => 54875577,    139 => 56371576,    140 => 57875232,    141 => 59486739,    142 => 61206293,    143 => 62874094,    144 => 64570343,    145 => 66215245,    146 => 67869006,    147 => 69731834,    148 => 72003941,    149 => 74185540,    150 => 76500000,    151 => 79000000,    152 => 81500000,    153 => 84000000,    154 => 86500000,    155 => 89000000,    156 => 93000000,    157 => 97000000,    158 => 101000000,    159 => 105000000,    160 => 120000000    }    return @new_exp_gain[level]  endend
Without this script, there's no error and "MAX LEVEL" is displayed normally, but I needed to properly adjust the EXP needed to level, which Ace doesn't let me do beyond Lv. 99. However, with it, the error occurs and I have no idea what to do with it.

The second issue is that, when leveling up and stat changes are shown, a few issues appear.

(sorry, didn't realize Imageshack become complete fail, so I'm using Photobucket)

The first is obvious; that "]" that serves no purpose being there... The second being the former level (that's more than twice my max level for this game), and the last one is the missing former "Luck" stat.

This is the area of VA concerning these issues:

#--------------------------------------------------------------------------  # draw_param_names  #--------------------------------------------------------------------------  def draw_param_names(actor, dx)    dx += 108    change_color(system_color)    text = Vocab.level    draw_text(dx, 0, contents.width - dx, line_height, text)    dy = 0    for i in 0...8      dy += line_height      text = Vocab.param(i)      draw_text(dx, dy, contents.width - dx, line_height, text)    end  end   #--------------------------------------------------------------------------  # draw_former_stats  #--------------------------------------------------------------------------  def draw_former_stats(actor)    dw = contents.width / 2 - 12    dy = 0    change_color(normal_color)    draw_text(0, dy, dw, line_height, actor.level.group, 2)    for i in 0...8      draw_text(0, dy, dw, line_height, actor.param_base(i).group, 2)      dy += line_height    end  end   #--------------------------------------------------------------------------  # draw_arrows  #--------------------------------------------------------------------------  def draw_arrows    dx = contents.width / 2 - 12    dy = 0    change_color(system_color)    for i in 0..8      draw_text(dx, dy, 24, line_height, "->", 1)      dy += line_height    end  end   #--------------------------------------------------------------------------  # draw_newer_stats  #--------------------------------------------------------------------------  def draw_newer_stats(actor, temp_actor)    dx = contents.width / 2 + 12    dw = contents.width - dx    dy = 0    change_color(param_change_color(actor.level - temp_actor.level))    draw_text(dx, dy, dw, line_height, actor.level.group, 0)    for i in 0...8      dy += line_height      change_color(param_change_color(actor.param_base(i) - temp_actor.param_base(i)))      draw_text(dx, dy, dw, line_height, actor.param_base(i).group, 0)    end  end
Basically, I have no idea how the former level is being displayed that way, why that "]" is there, or why the former Luck stat isn't being displayed.

Any help is appreciated~

Latest Threads

Latest Posts

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,047
Messages
1,018,540
Members
137,834
Latest member
EverNoir
Top