这实际上取决于您希望每个级别的 exp 如何扩展。
比方说
LvL1 : 50 Xp
Lvl2: LvL1*2=100Xp
LvL3: LvL2*2=200Xp
Lvl4: LvL3*2=400Xp
这意味着你有一个几何级数
完成第 n 级所需的 Xp 为
`XPn=base*Q^(n-1)`
在我的示例中,基数是初始 50 xp,Q 是 2(比率)。
假设玩家从 lvl1 开始且没有经验:
when he dings lvl2 he would have 50 total Xp
at lvl3 150xp
at lvl4 350xp
等等
玩家升级到新等级时的总经验为:
base*(Q^n-1)/(Q-1)
在你的情况下,你已经知道玩家有多少 XP。对于 2 的比率,公式变得更简单:
base * (2^n-1)=total xp at level n
要找出给定 xp 数量的等级,您只需应用一个简单的公式即可
$playerLevel=floor(log($playerXp/50+1,2));
但是随着几何级数的增长,玩家升级难度会越来越大。
要显示下一级别所需的 XP,您只需计算下一级别的总 XP。
$totalXpNextLevel=50*(pow(2,$playerLevel+1)-1);
$reqXp=$totalXpNextLevel - $playerXp;
检查帖子的开头:
要从 lvl1 -> lvl2 你需要 50 xp
lvl2 ->lvl3 100xp
从 lvl x 到 lvl(x+1)
你需要
$totalXprequired=50*pow(2,$playerLevel-1);