Я получил формулу для расчета XP, необходимого для следующего уровня
function getplayernextlevel($exp) {
$nextlevel = -1;
$level = 0;
while($nextlevel < $exp){
$nextlevel += pow(($level+1),3)+30*pow(($level+1),2)+30*($level+1)-50;
$level++;
}
return $nextlevel; }
Но я не могу понять, как я могу получить XP, необходимый для предыдущего уровня, потому что я хочу вычислить процент того, сколько процентов вам нужно, чтобы перейти на следующий уровень и сделать индикатор прогресса.
Будет ли это работать для вас? Это быстрый способ вычислить все нужные вам биты и передать их обратно в виде массива вместо одного значения:
<?php
function getplayernextlevel($exp) {
$prevlevel = -1;
$nextlevel = -1;
$level = 0;
while($nextlevel < $exp){
$prevlevel = $nextlevel;
$nextlevel += pow(($level+1),3)+30*pow(($level+1),2)+30*($level+1)-50;
$level++;
}
return array($level, $prevlevel, $nextlevel);
}$sample_result = getplayernextlevel(50);
echo var_dump($sample_result);
echo '<br /> Current Level: ' . $sample_result[0];
echo '<br /> Previous level EXP: ' . $sample_result[1];
echo '<br /> Next level EXP: ' . $sample_result[1];
?>
Других решений пока нет …