作者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)