Re: [建議] 副本相關

作者: laechan (揮淚斬馬雲)   2014-04-11 10:48:22
※ 引述《laechan (小太保)》之銘言:
: 出差剛回來。
: ※ 引述《justinj (黑旋風)》之銘言:
: : 看看能不能擁有這些功能
: : 1.限時副本(就是副本只能存活n分鐘)
: 這個在 instance_data 裡面新增參數來判斷即可,時間一到就是
: 全員脫出不能再跑。
: 從這裡可以看出還能增加一個 instance_comm 的欄位,也就是所
: 謂的「共通設定」。
/std/new_ob/instance/instance_ob.c 不備份添加修改。
1.更動 iroom 讀取資料的方式為 mapping 做法。
2.新增 instance_comm 欄位,用來做共通設定。
3.在 instance_data 設定串裡面增加 "del-" 的做法,代表
可刪除特定欄位的資料,例如 "del-light":1(值可任意接)
它就會做 delete("light") 的動作。
instance_comm 亦支援 "del-" 的做法。
這裡要加一個備忘,就是「原始基底房間」的資料,究竟要預載到
什麼程度,目前僅 short, long, item_desc, exits/hide_exits
: : 2.任務:擊殺副本的怪幾隻之類的
一般來說,能識別新舊副本的關鍵有兩個
1.instance_player 誰呼叫的
2.instance_time 什麼時候產生的
我新增了一個 instance_time 用來紀錄副本產生的時間。那理論上
打死每一隻副本怪是可以在 instance_rooms 新增紀錄,這個紀錄
將會隨著副本的消滅而消失,這是辦得到的,但前提必須是該副本
怪物沒有自訂 die。
那於是有兩種情況
1.怪物沒有自訂 die
修改 /adm/daemons/mob_d.c 即可,我剛剛已經改了。
if(me && me->query("instance_name"))
instance_rooms->mob_record("set",({me,killer}));
2.怪物有自訂 die
則 wizs 想統計玩家在該副本打死了多少怪物,針對有自訂 die
的怪物必須額外修改,不然 instance_rooms 無法統計到這類怪
物的被殺數量。
// 正常區域下的該怪物不會有 instance_name 參數
if(mob->query("instance_name"))
if(!catch(instance_rooms=find_object_or_load(
"/std/new_ob/instance/instance_rooms")))
instance_rooms->mob_record("set",mob,this_player());
/std/new_ob/instance/instance_rooms.c 也已做了相對映修改,
新增了 mob_record 函數。
Laechan

Links booklink

Contact Us: admin [ a t ] ucptt.com