版本 RWLib 1.0.1 2007/05/14
先看房間的設定, 每60秒心跳一次, 當然rw裡的60秒大概是現實的64秒到67秒左右
nosave mapping action_info =
([
"laboratory" :
([
"short" : HIC"研發"NOR CYN"實驗室"NOR,
"heartbeat":60, // 實際時間 1 秒為單位
"job" : ENGINEER,
"master": 1,
"help" :
([
從look函式可以知道變數代表遊戲中的什麼值
technology是現在的科技值
tochnologylevy是平均研發力
sizeof(master->query_slave())+1是連鎖數
string look_room(object env)
{
string msg = "";
object master = env->query_master();
msg += "科技值 "HIC+query("technology", master)+NOR CYN"/"+query("total_technology", master)+NOR" ";
msg += "平均研發力 "HIY+query("technologylevel", master)+NOR+" ";
msg += "研發管理 "HIY+(sizeof(master->query_slave())+1)+"/"+query("researchmanage", master)+NOR+"\n";
return msg;
}
再來看主要的心跳函式
前面的檢查就跳過不看, 下面是我們關心的部分
如果有設定店員(npcinside), 就進入科技值變動的部分
首先決定是正值還是負值, 如果 random(technologylevel) < 10 就是負值
以雇員都是技能教滿平均研發力為60的情況, 這個機率是1/6
負值的範圍是 (-1到-5) 乘上 連鎖數的0.3次方
正值的範圍是 0 到 (平均研發力除以6再乘以連鎖數)的0.5次方減1
同樣假設平均研發力是60, 就是 0 到 根號(連鎖數乘10) 減1
(注: 減1是因為random函數包頭不包尾)
if( npcinside)
{
if( random(technologylevel) < 10 )
{
technology = to_int((-random(5)-1) * pow(sizeof(slaves)+1, 0.3));
if( userinside )
{
if( !random(2) )
msg("$ME打了個大呵欠,「呵~碰!」口水滴到電路板上把設備給燒壞了!(科技值 "HIR+technology+NOR")\n", npc, 0, 1);
else
msg("$ME突發奇想把「"HIY+RANDOM_THING[random(sizeof(RANDOM_THING))]+NOR"」通通往化學原料裡倒,只見濃濃"WHT"黑煙"NOR"佈滿整個實驗室!(科技值 "HIR+technology+NOR")\n", npc, 0, 1);
}
}
else
{
technology = random(to_int(pow(technologylevel / 6 * (sizeof(slaves)+1), 0.5)));
if( userinside )
{
if( !random(2) )
msg("$ME依循著標準的實驗程序,將編號 "+sprintf(HIG"%c%c"NOR GRN"%d%d%d%d%d"NOR, range_random(65,90),range_random(65,90),random(10),random(10),random(10),random(10),random(10))+" 的實項項目如期完成。(科技值 "HIG"+"+technology+NOR")\n", npc, 0, 1);
else
msg("$ME從失敗中獲取經驗,將原本錯誤的研究資料重新整理改寫。(科技值 "HIG"+"+technology+NOR")\n", npc, 0, 1);
}
}
}
實際遊戲中這部分已經有點小改動
負值的機率提高,估計是把10改成20,也就是1/3的機率
負值的範圍縮小了,公式不明
訊息當然也是小改
先看房間的設定, 每60秒心跳一次, 當然rw裡的60秒大概是現實的64秒到67秒左右
nosave mapping action_info =
([
"laboratory" :
([
"short" : HIC"研發"NOR CYN"實驗室"NOR,
"heartbeat":60, // 實際時間 1 秒為單位
"job" : ENGINEER,
"master": 1,
"help" :
([
從look函式可以知道變數代表遊戲中的什麼值
technology是現在的科技值
tochnologylevy是平均研發力
sizeof(master->query_slave())+1是連鎖數
string look_room(object env)
{
string msg = "";
object master = env->query_master();
msg += "科技值 "HIC+query("technology", master)+NOR CYN"/"+query("total_technology", master)+NOR" ";
msg += "平均研發力 "HIY+query("technologylevel", master)+NOR+" ";
msg += "研發管理 "HIY+(sizeof(master->query_slave())+1)+"/"+query("researchmanage", master)+NOR+"\n";
return msg;
}
再來看主要的心跳函式
前面的檢查就跳過不看, 下面是我們關心的部分
如果有設定店員(npcinside), 就進入科技值變動的部分
首先決定是正值還是負值, 如果 random(technologylevel) < 10 就是負值
以雇員都是技能教滿平均研發力為60的情況, 這個機率是1/6
負值的範圍是 (-1到-5) 乘上 連鎖數的0.3次方
正值的範圍是 0 到 (平均研發力除以6再乘以連鎖數)的0.5次方減1
同樣假設平均研發力是60, 就是 0 到 根號(連鎖數乘10) 減1
(注: 減1是因為random函數包頭不包尾)
if( npcinside)
{
if( random(technologylevel) < 10 )
{
technology = to_int((-random(5)-1) * pow(sizeof(slaves)+1, 0.3));
if( userinside )
{
if( !random(2) )
msg("$ME打了個大呵欠,「呵~碰!」口水滴到電路板上把設備給燒壞了!(科技值 "HIR+technology+NOR")\n", npc, 0, 1);
else
msg("$ME突發奇想把「"HIY+RANDOM_THING[random(sizeof(RANDOM_THING))]+NOR"」通通往化學原料裡倒,只見濃濃"WHT"黑煙"NOR"佈滿整個實驗室!(科技值 "HIR+technology+NOR")\n", npc, 0, 1);
}
}
else
{
technology = random(to_int(pow(technologylevel / 6 * (sizeof(slaves)+1), 0.5)));
if( userinside )
{
if( !random(2) )
msg("$ME依循著標準的實驗程序,將編號 "+sprintf(HIG"%c%c"NOR GRN"%d%d%d%d%d"NOR, range_random(65,90),range_random(65,90),random(10),random(10),random(10),random(10),random(10))+" 的實項項目如期完成。(科技值 "HIG"+"+technology+NOR")\n", npc, 0, 1);
else
msg("$ME從失敗中獲取經驗,將原本錯誤的研究資料重新整理改寫。(科技值 "HIG"+"+technology+NOR")\n", npc, 0, 1);
}
}
}
實際遊戲中這部分已經有點小改動
負值的機率提高,估計是把10改成20,也就是1/3的機率
負值的範圍縮小了,公式不明
訊息當然也是小改
文章標籤
全站熱搜
