require_module 'standard';
.*/
$xpNeededFormula = '(((((playerLevel*playerLevel*playerLevel)^1.16)*3 2)+((playerLevel*playerLevel)*300))*0.1)+36';
$xpRewardedFormula = '(((monsterLevel*12.5-(averagePartyLevel*averagePartyLevel/50))+((monsterLevel-averagePartyLevel)*(averagePartyLevel/1.1)))*0.098)*(1+(monsterExperience/100))+2';
$xpRequiredPerLv = [];
$xpNeededForNextLv = [];
$monsterKillRequired = [];
const LEVEL_CAP = 100;
for ($i = 1; $i < LEVEL_CAP + 1; ++$i) {
$xpNeededFormulaTmp = str_replace('playerLevel', $i, $xpNeededFormula);
$xpNeededFormulaTmp = str_replace('^', '**', $xpNeededFormulaTmp);
$xpNeededFormulaTmp = 'return ' . $xpNeededFormulaTmp . ';';
$xpRequiredPerLv[$i] = round(eval($xpNeededFormulaTmp)); // return type of eval here is float
if ($i > 1) {
$xpNeededForNextLv[$i] = $xpRequiredPerLv[$i] - $xpRequiredPerLv[$i - 1];
}
$xpRewardedFormulaTmp = str_replace('monsterLevel', $i, $xpRewardedFormula);
$xpRewardedFormulaTmp = str_replace('averagePartyLevel', $i, $xpRewardedFormulaTmp);
$xpRewardedFormulaTmp = str_replace('monsterExperience', $i, $xpRewardedFormulaTmp); // fix me to some sane value?
$xpRewardedFormulaTmp = 'return ' . $xpRewardedFormulaTmp . ';';
$monsterKillRequired[$i] = round(eval($xpRewardedFormulaTmp));
}
echo 'xp needed per lv:' . "\n";
print_r($xpRequiredPerLv);
echo 'xp needed for next lv:' . "\n";
print_r($xpNeededForNextLv);
//print_r($monsterKillRequired);
Exp formula test level 100
Aucun commentaire:
Enregistrer un commentaire