※ 引述《laechan (小太保)》之銘言:
: ※ 引述《justinj (黑旋風)》之銘言:
: : 4.只有在某副本才會掉的物品(ob)(如果可以,增加連接了某任務才會開始掉ob)
: 這個只要改 mob_drop 即可,怪物可以設定其它資料,因此只要
: 讓 mob_drop 讀取這個所謂的「其它資料」,則副本怪就可以比
: 一般怪(即使檔案一樣)多掉一些東西。
: 比方怪物都會設定 instance 相關的東西
: if(mob->query(instance相關設定))
: 才會執行副本額外掉落資料;
副本裡面關於怪物的設定如下
instance_mob_datas=([
"bear1":([
"files":"/u/l/laechan/area/whitetile/mob/bear1",
"level":150,
]),
所以直覺的做法就是
"mob_drop":(["物品1":掉落機率1,"物品2":掉落機率2,..]),
而 mob_d.c 裡面已經有這一段
"/open/cmds/vobjs_d"->exec_mob_drop(killer,me);
然後 vobjs_d.c 的 exec_mob_drop 裡面則有這一段
if(!mob_drop[paths]) return 1;
if(function_exists("mob_drop_rate",mob))
rates=(mapping)mob->mob_drop_rate(ppl);
所以額外掉落部份寫在這一段之前,然後利用 rates 參數做前期判斷
即可。
已加在 /open/cmds/vobjs_d.c 段落內。
===========================測試開始==========================
instance_mob_datas=([
"bear1":(["files":"/u/l/laechan/area/whitetile/mob/bear1",
"level":150,
"mob_drop":(["/d/ppl/norr/special_obj/lodoos_map":500,
"m024":500]),
> da bear
mob_drop :([ "m024" : 500, "/d/ppl/norr/special_obj/lodoos_map" : 500 ])
邪 惡 黑 熊發出一聲慘叫!!
邪 惡 黑 熊慢慢的倒在地上死了...你得到 12600點的經驗值。
你取得了一個獸掌。
邪 惡 黑 熊發出一聲慘叫!!
邪 惡 黑 熊慢慢的倒在地上死了...你得到 12600點的經驗值。
你取得了一張羅德斯地圖(Lodoos Map)。
> con bear
物品掉落資訊:
[副本額外設定]
獸掌 50.0%
羅德斯地圖(Lodoos Map) 50.0%
[一般怪物設定]
無。
===========================測試結束==========================
這樣子設定的缺點,是副本怪物的掉落資訊無法透過 ob view
獸掌去得到相關資訊。換言之,如果要讓 ob view 顯示副本怪
的掉落資訊,就必須要有一個 instance_drop 設定,而且它要
有識別用的字串當做主 key,然後 wizs 們要設定副本怪掉落
物時就得透過 vobjs -instance 指令去設定..
1.每一個副本需有它獨特的識別字串(這可以透過預設值辦到)
2.vobjs_d.c 需建立 mapping instance_drop 資料
3.vobjs 指令需寫 -instance 設定語法
4.副 key 用的是 instance_mark 而不是 base_name
5.如何讓 ob view 可讀到是哪一隻副本怪物掉這東西
這個我再評估看看..不太好做。
Laechan