這個檔案包括collect info指令, collect所花的體力, collect的行為
下面會講到後二者

首先看collect花的體力,
對於這種數量愈大就每單位愈多(或少)的行為,clode一般比較喜歡次方的寫法來調整
不過這裡用的是if_else_if的寫法,不知道是不是因為次方跟浮點數相對起來是比較吃系統資源的運算
而這指令很常用所以用比較不吃資源的寫法, 代價就是code會比較長

每次花的是COLLECT_STR_COST - skilllevel/4
其中COLLECT_STR_COST被定義成35
當採集技能100時, COLLECT_STR_COST - skilllevel/4 就會等於10
因此,
10個以下每個花10體力
20個以下每個花9體力
50個以下每個花8體力
100個以下每個花7體力
101個以上都是每個6體力

// 一次採愈多省愈多力
private int cost_stamina(object me, int amount, int skilllevel)
{
    if( amount <= 10 )
        return me->cost_stamina(amount * (COLLECT_STR_COST - skilllevel/4));
    else if( amount <= 20 )
        return me->cost_stamina(amount * (COLLECT_STR_COST - skilllevel/4 - 1));
    else if( amount <= 50 )
        return me->cost_stamina(amount * (COLLECT_STR_COST - skilllevel/4 - 2));
    else if( amount <= 100 )
        return me->cost_stamina(amount * (COLLECT_STR_COST - skilllevel/4 - 3));

    return me->cost_stamina(amount * (COLLECT_STR_COST - skilllevel/4 - 4));   
}



採集的行為我們本來就知道了, 我們不知道的是中間相關的機率

採到稀有物的機率請看這裡

工具壞掉的機率如下
endurance(耐久度)是工具的屬性, 數字愈大愈不會壞, 粗製系列是100,
工具壞掉的機率是 (耐久度+ 技能等級 * 耐久度 / 100)分之一
當技能100時, 機率是 2倍耐久度分之一
當技能50時, 機率是 1.5倍耐久度分之一
當技能0時, 機率是 耐久度分之一

if( !random(endurance + to_int(skilllevel*endurance/100.)) )


壞掉時會得到社經, 數值如下
前半部跟壞掉的機率是一樣的, 也就是愈不會壞, 每次得到愈多社經
當技能100時, 得到 2倍耐久度加減50
當技能50時, 得到 1.5倍耐久度加減50
當技能0時,得到 耐久度加減50

me->add_social_exp(endurance + to_int(skilllevel*endurance/100.) - 50 + random(101));
arrow
arrow
    全站熱搜

    suzin 發表在 痞客邦 留言(0) 人氣()