// exp为经验值,mp为魔法值,hp为生命值
// $credits为总积分,$postsperday为平均每日积分數,$daysreg为注册天数
首先是等级,它和总积分有关,这个你们自己可以看的,经验值每从1%到达100%后就提升一个级别,至于多少积分,看下等级计算公式.
等级计算公式:
- $level = pow(log10 ($credits), 3);
- 等级 = pow(log10(总积分),3 ) [pow的意思是次方]
复制代码
也就是说如果一个用户的总积分是1000,那它的等级就是 pow( log10(1000), 3 ) 即3的3次方就是27级。
- $showlevel = floor ($level + 1);
复制代码
这个的意思就是……
显示出来的等级为比计算出来的$level的数值+1以后的值小的最大整数
例如算出来为值在2~3之间,例如2.5,则取2为现有的等级
用户生命力 (HP)
- $hpmulti =round($postsperday / 6, 1);
- if ($hpmulti > 1.5) {
- $hpmulti = 1.5;
- }
- if ($hpmulti < 1) {
- $hpmulti = 1;
- }
- $maxhp = $level * 10 * $hpmulti;
- $hp= $postsperday/10;
- if ($hp >= 1) {
- $hp= $maxhp;
- } else {
- $hp= floor($hp * $maxhp);
- }
- $hp= floor($hp);
- $maxhp= floor($maxhp);
- if ($maxhp <= 0) {
- $zhp = 1;
- } else {
- $zhp = $maxhp;
复制代码
hpmulti是生命值的计算因子=每日积分/6
生命最大值=等级*10*计算因子
生命值=(每天积分/10)*生命最大值 [floor的意思是取整]
不足1 按1计算
超过,按最大值计算……
用户魔法力 ( MP)
- $maxmp= ($daysreg * $level) / 10;
- $mp= $credits / 3;
- if ($mp >= $maxmp) {
- $mp = $maxmp;
- }
- $maxmp = floor($maxmp);
- $mp = floor($mp);
- if ($maxmp <= 0) {
- $zmp = 1;
- } else {
- $zmp = $maxmp;
复制代码
你的最大魔力=(你注册至今的时间×你的等级)/10
你的现有魔力=你的总积分/3 取整(前提是必须拥有最大魔法值)
不足1 按1计算
超过,按最大值计算……
用户经验值 (EXP)
用户每次发布帖子将获得一定的经验值,经验值每从1%到达100%后就提升一个级别
演示图:
[ 本帖最后由 enbony 于 2007-4-22 14:28 编辑 ] |