作者laechan (小太保)
看板mud_sanc
標題Re: [問題] 掉落率
時間Wed Nov 20 23:24:43 2013
※ 引述《justinj (黑旋風)》之銘言:
: nidhogg
: 龍尾 50.0% 龍爪 50.0% 龍角 50.0%
: 梓馨水玉鐲(Water Bracelet) 10.0% 闇冥之靴(test)(Dark Boot) 10.0% 毒龍涎
: 0.1%
:
: 這是我設定這隻的掉落,其中
: 闇冥之靴(test)(Dark Boot)中我放了一個mob_drop_func
: 然後就開始悲劇了....
: 除了闇冥之靴(test)(Dark Boot)之外..其它的都不會掉..
: 我只是想設定一個可以讓闇冥之靴(test)(Dark Boot)跑run的函數(設定隨機變數用的)
: flop~
根據 mob_drop 的寫法
if(function_exists("mob_drop_rate",mob))
rates=(mapping)mob->mob_drop_rate(ppl);
tmps=keys(mob_drop[paths][files]);
foreach(tmp in tmps)
{
if(tmp[0..0]!="/")
{
.
.
}
else
{
.
.
if(function_exists("mob_drop_func",ob))
ob->mob_drop_func(ppl);
shorts=(string)ob->query("short");
write(ppl->query("sex_name")+"取得了一個"+shorts+"。\n");
}
}
你可以看一下它的基本原則是 foreach 每一個可能掉的東西
foreach(每一個可能會掉的東西 tmp)
{
若 tmp 是虛擬物品
會有個 mob 是否有 mob_drop_rate 函數的判斷
若 tmp 是實體物品
會有個 ob 是否有 mob_drop_func 函數的判斷
}
然後再看你的修改是否有 match 這樣的設定原則,理論上,
只要你設定 n 個物品會掉,這 n 個物品都會跑判斷,而且
假設有兩個實體物品,則它會跑這兩個物品「各自的」判斷
函數,而且不影響對虛擬物品的判斷。
修改有 match 以上就 ok。
(我上面是參考更換 mudos 前的備份檔)
Laechan
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 60.249.37.61
1F:→ justinj :原本的寫法是跑到有實體物品及這個時間有掉過就停 11/21 08:30
2F:→ justinj :(在判斷機率前)..所以在它之後的機率設定就不會繼續 11/21 08:31
3F:→ justinj :所以我改成continue..(略過) 11/21 08:32
ok,這樣改沒問題,continue 才是對的。
※ 編輯: laechan 來自: 60.249.37.61 (11/21 09:43)