• Announcements

    • RagingHobo

      Forum Upgraded!   07/17/2017

      We have successfully upgraded our forum to the latest version! Some things have moved around but don't worry everything is still there, we still need to find updated versions of the plugins we were using previously to restore everything to the way it was. There will be a running topic in the Feedback and Support in case you notice something wrong. Before you do so please clear your browser cache and close your browser completely to rule out a caching issue. Thank you for your patience during the outage and while we get everything back to 150%  
Dekita

dekita
$D13x - Exp Control

6 posts in this topic

Exp Control

Dekita

 
Introduction
 
This script completely changes the way exp is handled in game.
You can now gain exp per battle, attack, guard, skill / item used, based on
FULLY customizable formulas.
Each item/skill can also give additional exp when used, again using formulas.
 
The Party now has its own Exp Rate, default is 1.0. This can be changed via
script calls only. This gives the ability to reduce all party members exp 
rates at once. 
 
The Map now also has its own unique Exp Rate, default is 1.0. This is set using
notetags, this provides the ability to have secret caves/areas that have a 
boosted exp gain rate.
 
You can also now have items or skills that when used, increase the actors
exp rate by [x] for [y] amount of battles.
 
As well as the above features, you now have complete control over the 
requirements for each level. you can either have a fixed value for [x] level,
an exp curve (without database limitations) or you can opt for a fully 
customizable formula to determine the required exp.
 
 
 
 
Features
- See Above
 
Screenshots
- Not Required
 
How to Use
Place under "Main" and above "Materials" 
Place under "$D13x - Enemy Levels"
Place under "$D13x - Attack | Defence Levels" (if used)
 
Demo
- Not Required
 
Script
 
 
Credit and Thanks
- Dekita / Dekita-RPG
 

Share this post


Link to post
Share on other sites

This sounds like a really great idea! I've always thought it would be nice to make it so that players gained experience every time they attacked. Not just at the end of battles. Great work here! Will definitely be testing in my game! :)

Share this post


Link to post
Share on other sites

Please be aware, the default settings will increase exp over time, to the value of the actors level (gained every 2 seconds)

Share this post


Link to post
Share on other sites

This is a really great script, thanks for this!

But I have a concern. If you have exp gained when you use skills, what if you use, for example, a healing spell of battle? you could get infinite exp by spamming the spell and going to an min over and over to recover MP.

Share this post


Link to post
Share on other sites

I've tried to use your script but I may have found a bug:

Exp_Req_Form={
  # --
  0 => "((level + 5 + $game_variables[100]) * 4)" ,
  # --
  1 => "((level + 8 + $game_variables[101]) * 2)" ,
  # --
  2 => "(((level*2)+4+$game_variables[102]) * 4)" ,
  # --
  3 => "(((level*8)+8+$game_variables[103]) * 8)" ,
}# << KEEP

It's the hash for EXP FORMULAS and should be called somewhere. When I tried to search Exp_Req_Form, however, I couldn't see it appear elsewhere.

I've checked the 'implementation part' of your script and I think Exp_Req_Form should appear here:

def exp_for_level(level)
  data = self.exp_req_type[1]
  case self.exp_req_type[0]
  when 0
    return Expert_Exp::Exp_Req_Fixed[data][level-1]
  when 1
    l = level.to_f
    b = Expert_Exp::Exp_Req_Curve[data][:basis]
    e = Expert_Exp::Exp_Req_Curve[data][:extra]
    aa = Expert_Exp::Exp_Req_Curve[data][:acc_A]
    ab = Expert_Exp::Exp_Req_Curve[data][:acc_B]
    return (b*((l-1)**(0.9+aa/250))*l*(l+1)/(6+l**2/50/ab)+(l-1)*e).round.to_i
  when 2
    return ([eval(Expert_Exp::Exp_Req_Fixed[data]), 0].max.to_i rescue 0)
  else
    return expert_exp_efl(level)
  end
end

My guess is this the following part has some typo:

when 2
    return ([eval(Expert_Exp::Exp_Req_Fixed[data]), 0].max.to_i rescue 0)

As it should be:

when 2
    return ([eval(Expert_Exp::Exp_Req_Form[data]), 0].max.to_i rescue 0)

Share this post


Link to post
Share on other sites

@DoubleX,

Thank you very much for letting me know about this.

Unfortunately, I seem to make little oversights like this too often :/

 

I will update this script as soon as I can :)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.