PHP Experience Points (XP) Level System
Last Updated on Friday, 8 July 2011 11:07pm Written by spunky Friday, 8 July 2011 11:05pm
Here’s a fun little snippet that lets you create a XP leveling system similar to World of Warcraft.
*ding!*
function calculateXP($myPoints) {
$calcStart = 0; // Level 1 Start XP
$calcEnd = 10; // Level 1 End XP
$calcInc = 0; // Increase by extra how many per level?
$calcLevel = 6; // Multiply by how many per level? (1- easy / 20- hard)
/* Calculate Level */
$myLevel = 0;
$calcCount = 0;
do {
$calcCount = $calcCount+1;
if ($calcCount % 2 == 0 ) { $calcInc = $calcInc + $calcLevel; }
if (($myPoints < $calcEnd) && ($myPoints >= $calcStart)) { $myLevel = $calcCount; $myStart = $calcStart; $myEnd = $calcEnd; }
$calcStart = $calcEnd;
$calcEnd = $calcEnd + $calcInc;
} while ($myLevel == 0);
$myLevel--;
/* Calculate Percentage to Next Level */
$myPercent = (($myPoints - $myStart) / ($myEnd - $myStart)) * 100;
$myPercent = round($myPercent);
if ($myPercent == 0) { $myPercent = 1; }
return array('percent'=>$myPercent,'level'=>$myLevel);
}
Please excuse the primitive logic and bad variable naming, this was written many years ago.
Man this is just what I was looking for. Great script dude !