I'm terrible at advanced Math, and for the life of me can't seem to figure out how to re-create the curve growth biases (Fast > Normal > Slow) in the toolset.
I have searched the internet, but without knowing what I'm looking for, all I seem to find are normal distribution formulas and instructions on how to generate line graphs with existing data... but not generating new data based on Min/Max values.
I'd appreciate any advice. Or just an example formula that I can pick apart.
Thanks!
Base 'Parameter Curve' Generation 'Growth' Formulas?
● ARCHIVED · READ-ONLY
-
-
The normal formula should be y = m + x*n (linear) where 'm' is the starting stat, 'x' is the level, and 'n' is the growth multiplier.
A fast or slow formula I believe it's by adding trigonometric function to the linear line formula so it works like a curve.
I haven't really tried to replicate the formula, but at least I kinda know where to start. -
Do you speak about the particular formula for EXP in MV? If that is so I obvserved that it is equal to:
<Something>*Base+(Extra*(LV-1))
This something is somehow related to Acc A and B. I observed that when Acc A is 10 and when Acc A is 50 the <something> is as follows:
A good guess may be that the <something> contains multiplication by (LV-1) since it is with 0 for LV 1 and is 1 at LV2. Later it explodes and I cannot really make up what happens. -
I believe it's not about EXP, but stat growth (ATK/DEF/MAT/MDF), but that EXP formula is also interesting.
-
I believe it's not about EXP, but stat growth (ATK/DEF/MAT/MDF), but that EXP formula is also interesting.
Correct. The formula for EXP is in the rpg_object.js script.
However, the Base Param formula appears to be internal to the toolset, and generates data in the Classes.json file.
No formula to find. -
Can't say if it is true for MV so you may have to test it, but at least XP and VXAce seemed to use this formula:
min + floor((1 - rate) * ceil((max-min) * (level-1)/98.0) + rate * ceil((max-min) * ((level-1)/98.0)^2))
min -> Level 1 value
max -> Level 99 value
rate -> Growth rate: (Fast: -1, Average: 0, Slow: +1)
Since MV uses Javascript which does all calculations with decimals by default, I'd not be surprised if at least the roundings were a bit different in MV though. -
I've gona ahead and attempted to gleen what I can from the EXP formula... And I've run into something odd.
This code:
Code:Game_Actor.prototype.expForLevel = function(level) { var c = this.currentClass(); var basis = c.expParams[0]; var extra = c.expParams[1]; var acc_a = c.expParams[2]; var acc_b = c.expParams[3]; return Math.round(basis*(Math.pow(level-1, 0.9+acc_a/250))*level* (level+1)/(6+Math.pow(level,2)/50/acc_b)+(level-1)*extra); };
Is supposed to be generating this curve:
But when I recreate the formula in excel, I get this output: (Column C)
(I've checked every single cell and the formula is accurate for all 15)
It' may not have any significance on my actual question, but it has me wondering.
I have also looked into obvious ways of applying a Trigonometric Function to a line generation formula and, so far nothing helpful.
Edit:
I think I've managed to figure out that whatever is going on, is merely finding the correct logarithmic formula to multiply the line values by, in a way to maintain the initial and end values. -
Could someone please write one of these as a mathematical equation? I am really unable to read it like JS, Ruby or like an Excel formula and I am genuinely interested in that.
-
If you mean, Another Fen's formula, I'm not sure how the equation in math equation.Could someone please write one of these as a mathematical equation? I am really unable to read it like JS, Ruby or like an Excel formula and I am genuinely interested in that.
But, in their formula, floor(...) means when a number is decimal, it rounded down. For example, floor(1.7) is equal as 1
In other hand, ceil(...) means when a number is decimal, it rounded up. For example ceil(1.2) is equal as 2
How would you translate it in math equation? -
-
lol I kinda hate working with log. Tell me when you figure out the formula.
-
@kartacha
[basis * [(level -1) ^(0.9 + (acc_a /250))] * level * (level + 1)]/[6 + [([level ^ 2]/50)/acc_b] + [(level -1) *extra]
And then round the answer.