Try the following:
Code:
//Do the following when you declare other variables.
$ current_xp = 226 // default value
$ xp_base_value = 200 // XP needed for next level
$ increment_modifier = 50;
//Call when the current xp be updated
//Example: updateCurrentXP(25)
function updateCurrentXP($gain) {
$current_xp = $current_xp + $gain;
}
//Call just before checking the level
//Example: $needed_xp = getNeededXp()
function getNeededXp() {
return ($xp_base_value + ($level * $increment_modifier));
}
//We get 25 XP so current_xp reach 251, and thus qualify for increase
updateCurrentXP(25);
//Perform check and increasing level if we are qualified
if ($current_xp >= getNeededXp()) {
$level = $level + 1;
}
In order not to have a flat increase (ie, 50 extra xp for each level) you can make the following small addition
Code:
function getNeededXp() {
$modifier = $xp_base_value + ($level * $increment_modifier) * 0.93;
return ($xp_base_value + ($level * $increment_modifier) + $modifier);
}
Here, then instead of 50 extra each level, be an increase in the number of necessary xp .. namely, the higher level, the more xp needed ..
0.93 in the example above, of course adjusted and will probably be adjusted until it feels right.
Bookmarks