1から99をループし、数式であるこのコードがあります。
function getExperienceByLevel ($maxLevel)
{
$levels = array ();
$current = 0;
for ($i = 1; $i <= $maxLevel; $i++)
{
$levels[$i - 1] = floor ($current / 4);
$current += floor($i+300*pow(2, ($i/9.75)));
}
return $levels;
}
最初にそのように開始し、次にそれが配列であるため、これを行う$aLevels = getExperienceByLevel(99);
レベルに到達するために必要なEXPの量を確認します。6
echo $aLevels[5];
今、私は逆をしようとしています。EXPでレベルを取得します。
function getLevelByExp($exp)
{
$myLevel = 0;
$aLevels = getExperienceByLevel(99);
for ($i = 1; $i < 100; $i++)
{
if ($exp > $aLevels[$i-1])
{
return $myLevel;
}
}
}
呼び出されたとき、getLevelByExp(1124);
または内部の任意の数の場合、ゼロを返すようです。しかし、そのステートメントの中にエコーを入れるとうまくいくようです。
return $myLevel
doの代わりに、echo "You are up to level $i<br />";
EXPを獲得した現在のレベルまで上がります。
しかし、それでも..単に数値を返したい場合は機能しません。