看板 mud_sanc 關於我們 聯絡資訊
※ 引述《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 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 210.61.157.53 ※ 文章網址: http://www.ptt.cc/bbs/mud_sanc/M.1397184505.A.43D.html
laechan :下午又一堆障礙 04/11 15:36
※ 編輯: laechan (125.230.96.69), 04/12/2014 08:11:41
laechan :要新增 questing 的使用方式,不過等副本改完再弄 04/12 08:12
laechan :暫時的資訊取得方式用 instance_rooms->mob_record( 04/12 08:12
laechan :"query",({"副本creater","怪物mark","玩家id"})) 04/12 08:13
laechan :要查怪物時,玩家id那欄給0; 要查玩家時,怪物mark給0 04/12 08:13