PHP级别和体验系统

时间:2011-06-05 12:35:37

标签: php

我正在尝试创建一个练级和体验系统。我已经完成了,但我正在努力让PHP弄清楚需要多少经验才能升级。

对于每个级别,用户需要670经验。但是,如果我在他们的经验总数中加入了670,那么它就无法正常运作。

这就是我做的..

<?php $exp = ($user["experience"]+670); ?>

但这不符合用户的需求。希望我已经清楚地解释过了。任何帮助都会很好,谢谢。

4 个答案:

答案 0 :(得分:3)

好的,这就是我练习练级系统的方法..我的技术点数增加了一点......我的作品。

<?php
$level_up = ($level + 1);
if ($exp >= $max_exp)
{
    $sql = "UPDATE   users 
            SET      level = (level + 1)
                     ,max_exp = (exp * 1.05)
                     ,skill_points = (skill_points + 3) 
            WHERE    id = '".$id."'
            LIMIT    1";
    $res = mysql_query($sql);
    if ($exp >= $max_exp)
    {
        echo      '<div class="Leveled">'
                . 'You sucessfully leveled up to '
                . $level_up . '!'
                . ' As a reward you were given 3 skill points!'
                . '</div>';
    }
    else
    {
    } 
}?>

答案 1 :(得分:2)

考虑以下几点:

表达式$user["experience"] % 670会从最后一级为您提供 over 的金额。因此,如果我有671经验,它会给1,如果我有1360经验,它会给20等等。然后你可以从670减去这个数额给剩余金额。

(另外,作为一般提示,如果你有一个像670这样的所谓'幻数',它会很有用,你可以通过定义一个名为EXP_PER_LEVEL的常量给它起一个名字,而不是使用裸值670因此,如果有人在将来阅读您的代码,他们可以轻松找出670的含义,而且,如果每个级别的exp数量发生变化,您只需要在一个地方更改值,即EXP_PER_LEVEL常量已定义)

答案 2 :(得分:1)

查看http://www.daftspunk.com/code/php-experience-points-xp-level-system.html

它会将当前级别和百分比计算到下一级别。您为级别1设置距离,并将每个后续级别的数量相乘,例如:

6倍的乘数

1级 - 1XP至10XP

2级 - 10XP至60XP

3级 - 60XP至360XP

4级 - 360XP至2160XP

答案 3 :(得分:0)

你的意思是:

 $exp = ($user["experience"] >= 670); // checking if the experience is higher

或者

 $user["experience"] += 670; // Adding 670 to the experience in the  $user array