Help - Search - Members - Calendar
Full Version: Help on changing EXP To Next Level
RPG RPG Revolution Forums > Game Engines > RPG Maker VX Discussion
Destinynite1
I have been lookin at the Game_Actor script and been messin with the experience calculations. I have changed a few things but it doesnt seem to be working in the actual game. Here is what I have modified so far:

CODE
class Game_Actor
  def make_exp_list
    @exp_list[1] = @exp_list[100] = 0
    m = actor.exp_basis + 10
    n = 0.65 + actor.exp_inflation / 50.0;
    for i in 2..99
      @exp_list[i] = @exp_list[i-1] + Integer(m)
      m *= 0.9 + n;
      n *= 0.3;
    end
  end
end


It doesnt seem to be making any impact at all, as I still need the same amount of EXP to level up. I even made it as a new Material and posted it in the Materials section since its overwriting an existing method. Any ideas?

EDIT: I even searched the forums and nothing came up so I made a new topic.
amerk
It depends on how you want to configure this. ZeroManArmy and mithos had a sort of balanced guide back on the VX site, with this code for fixing the EXP:

CODE
#--------------------------------------------------------------------------
# * Fix Experience Calculation
#--------------------------------------------------------------------------
  
class Game_Actor
  def make_exp_list
    @exp_list[1] = @exp_list[100] = 0
    m = 2000
    for i in 2..99
      @exp_list[i] = @exp_list[i-1] + m
      m += 2000
    end
  end
end



Credit should go to both of them for this. This means that it will take 2000 Times the current level of experience to reach the next level.
Example: Level 1 = 2000 Exp to level up. Level 2 = 4000 Exp to level up. Level 3 = 6000 Exp to level up.

I found this a bit too high for my tastes, although it fits if you follow through with his guide on stat, gold, and EXP drops. I use 500 instead of 2000 multiplied by the current level, which is more doable.

Or if you want to configure your own EXP for each level, you can follow this, by Hesufo & Big Ed. Here is a summary of his comments and instructions:

CLICK ME


First, go to Line 134 of the Game_Actor class of the "Game Objects" array of scripts, and look for this:

CODE
  #--------------------------------------------------------------------------
         # * Calculate Experience
         #--------------------------------------------------------------------------
         def make_exp_list
           @exp_list[1] = @exp_list[100] = 0
           m = actor.exp_basis
           n = 0.75 + actor.exp_inflation / 200.0;
           for i in 2..99
             @exp_list[i] = @exp_list[i-1] + Integer(m)
             m *= 1 + n;
             n *= 0.9;
           end
         end



After the def make_exp_list line, you'll see @exp_list[1] = @exp_list[100] = 0.

"@exp_list[x] = y" defines the amount of experience (y) required to reach x level. The things after that are variables and the equation used to calculate the experience curve in the database.

Then, we'll focus on the exp_list thingy. After "@exp_list[1] = @exp_list[100] = 0" start making your exp chart as desired like in this example:

CODE
  #--------------------------------------------------------------------------
         # * Calculate Experience
         #--------------------------------------------------------------------------
         def make_exp_list
           @exp_list[1] = @exp_list[100] = 0
           @exp_list[2] = 20
           @exp_list[3] = 50
           @exp_list[4] = 90
           @exp_list[5] = 140
           m = actor.exp_basis
           n = 0.75 + actor.exp_inflation / 200.0;
           for i in 2..99
             @exp_list[i] = @exp_list[i-1] + Integer(m)
             m *= 1 + n;
             n *= 0.9;
           end
         end


See? That's how you set a custom amount of exp for each level, and you can continue until level 99 if you'd like. But wait! There's one more thing you have to do. See that "for i in 2..99" there? That determines which levels are affected by the equation calculation. We want to use our own custom experience curve so we don't want that baddie equation to interfere. If you're setting each level up to level 100 manually, you might want to change that 2..99 to levels which will be impossible to attain (if you're not using LimitBreak, but I'll delve deeper into that later).


CODE
  #--------------------------------------------------------------------------
           # * Calculate Experience
           #--------------------------------------------------------------------------
           def make_exp_list
             @exp_list[1] = @exp_list[100] = 0
            @exp_list[2] = 20
             @exp_list[3] = 50
             @exp_list[4] = 90
             @exp_list[5] = 140
             m = actor.exp_basis
             n = 0.75 + actor.exp_inflation / 200.0;
             for i in 101..102
               @exp_list[i] = @exp_list[i-1] + Integer(m)
               m *= 1 + n;
               n *= 0.9;
             end
           end



So there we go. Impossible to attain levels are used for the equation so they will not interfere with our custom chart.
_______________________________________________________________________

For those who are using the KGC_LimitBreak script: Since it overrides the Game_Actor data, you'll have to check line 308 and onwards:

CODE
class Game_Actor < Game_Battler
         #--------------------------------------------------------------------------
         # ● 経験値計算
         #--------------------------------------------------------------------------
         def make_exp_list
           @exp_list = Array.new(final_level + 2)
           @exp_list[1] = 0
           @exp_list[2] = 20
           @exp_list[3] = 50
           @exp_list[4] = 90
           @exp_list[5] = 140
        
           @exp_list[final_level + 1] = 0
           m = actor.exp_basis
           n = 0.75 + actor.exp_inflation / 200.0
           (151..final_level).each { |i|
             @exp_list[i] = @exp_list[i-1] + Integer(m)
             m *= 0.0
             n *= 0.0
           }
         end




Destinynite1
Little confused on the KGC part. I'm usin it and its not making any sense to me. I get an error when I follow it by the guide.
amerk
I don't know. I don't use KGC, so I can't help with that. All that I posted came from a topic on another site. You could ask about it in support, though, and see if somebody can help with it.
Destinynite1
Bump. Need a bit of help still =\
Destinynite1
Bump please.
Destinynite1
Please bump. I need a ton of help.
amerk
If you're having problems script-wise, you might have better luck asking in script support. Beyond what I've already included, I can't provide anymore assistance, since I don't use KGC scripts.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2013 Invision Power Services, Inc.