[知識文庫] 生命值,魔法值,經驗值怎麼計算的?

A:生命值hp為註冊天數
註冊天數起慢慢增加

Q:魔法值mp為平均每日積分數
A:發帖便會增加

Q:經驗值exp為總積分
A:發帖回覆增加

以下是 簡單化的計算公式
// 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%後就提升一個級別
複製這篇網址分享給朋友: http://discuz.bluelovers.net/thread-3587-1.html#pid5377

本篇的內容不含引用除另有聲明外,如符合 CC授權條款 則套用 姓名標示-非商業性-相同方式分享 3.0 通用版

套一句黃小琥說過的話:「你可以點歌,但是我可以選歌」

RE: [知識文庫] 生命值,魔法值,經驗值怎麼計算的?

可以順便告訴我權限是如何計算的嗎
謝謝
複製這篇網址分享給朋友: http://discuz.bluelovers.net/thread-3587-1.html#pid104951

本篇的內容不含引用除另有聲明外,如符合 CC授權條款 則套用 姓名標示-非商業性-相同方式分享 3.0 通用版

TOP