看板 mud_sanc 關於我們 聯絡資訊
今天要做 instance_mobs 的分區,所有的現存副本都要更動,這個 由我來做,另外也要檢查 instance_rooms.c 做一些修正,最後就是 龍潭虎穴副本的實裝,屆時將關閉通往龍潭及虎穴兩區域的入口,玩 家需改由接副本的方式進入。 另外考慮到 instance 也有儲存資料的能力,instance_temp 的資料 有可能改放到這裡,做列表會比較方便,初期會採兩邊都設定資料的 方式辦理。 ============================================================ instance_mobs 分區已改好,以 bdlen_dragon.c 為例.. instance_mobs=([ "0":([ "01":({"dragon2","dragon1","dragon1",}), "02":({"dragon2","dragon5","dragon5",}), "04":({"dragon2","dragon2","dragon1",}), "05":({"dragon3","dragon5","dragon5",}), "06":({"dragon4","dragon1","dragon1",}), "07":({"dragon4","dragon2","dragon2",}), "08":({"dragon3","dragon3","dragon2",}), ]), "1":([ "10":({"dragon1","dragon1","dragon1",}), "11":({"dragon4","dragon4","dragon5",}), . . 像這樣子依字頭做分區,則以八卦為例,它是 1.c→1000.c 這樣的 檔名,就能分為至少 9 區,每一區平均 100 多個子 key。而若是以 菲里德 001.c→700.c 這樣的檔名,也能依 "0" "1" "2" ... "7"來 分區,每一區最多 100 個子 key。 國家區域則雖然多為 r 開頭,但是國家都有將其區域做適當的分區 ,因此假若副本化其檔名量也不會太多。 ============================================================ instance -analyze 關於 instance_mobs 的分區的部份也已更動完 成。 > instance -analyze 解析你所在的目錄 /d/ppl/bdlen/dragon/ 中... // 副本各房間生怪資料, 所生的怪在 instance_mob_datas 都要有定義 instance_mobs=([ "0":([ "01":({"dragon2","dragon1","dragon1",}), "02":({"dragon2","dragon5","dragon5",}), . . ]), "1":([ "10":({"dragon1","dragon1","dragon1",}), "11":({"dragon4","dragon4","dragon5",}), . . ============================================================ instance_rooms.c 備份為 2014/05/01。 我設計了一個 clean_empty_irooms,它可以用來確實清掉該清掉的 副本。 > call 001;create_instance;"laechan";({laechan});"normal";0 [副本]山林小徑 你撥開草叢, 隱約地可以看見埋在雜草堆裡面的道路, 由此可以 想見這條小徑平時應該沒有什麼人在走動. 據說小徑可以通往這 座山的深處, 可是蠻危險的. 明顯出口有: north. > call instance_rooms;clean_empty_irooms > running 編輯結束並存檔(.). 中途放棄編輯(~q).訊息暫時中斷。 __________________________________________________________________ obs=objects(); foreach(ob in obs) if(ob) if(base_name(ob)=="/std/new_ob/instance_room") write(ob->query("short")+" "+base_name(ob)+"\n"); ========== 程式執行區 ========== [副本]石室 /std/new_ob/instance_room [副本]地底長廊盡頭 /std/new_ob/instance_room [副本]地底長廊 /std/new_ob/instance_room 副本沒有被清掉 . . > home 然後離開副本 = 天上界 = > call instance_rooms;clean_empty_irooms > running 編輯結束並存檔(.). 中途放棄編輯(~q).訊息暫時中斷。 __________________________________________________________________ obs=objects(); foreach(ob in obs) if(ob) if(base_name(ob)=="/std/new_ob/instance_room") write(ob->query("short")+" "+base_name(ob)+"\n"); ========== 程式執行區 ========== 0 /std/new_ob/instance_room 這樣就清掉了 ========== 程式執行區 ========== 目前設定系統週期時間每 5 分鐘自動清一次。 ============================================================= instance_ob 的副本頻道函數 instance_channel 完成。 ﹝副本﹞普通難度的龍潭副本的破關紀錄產生了! 破關者:laechan 跟他愉快的伙伴們 破關紀錄:3分 27秒 通常會建議副本最後一個房間(出口所在房間)要做 instance_check, 再讓它呼叫 instance_channel 即可。 相關破關獎勵我會弄一個預設的函數去做,wiz 不想依預設的報酬時就 自訂報酬即可,唯仍希望呼叫 instance_ob.c 的特定函數執行,這樣才 能統一管理及方便修改。(類似 quest 的 set_v 做法) LAechan -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 210.61.157.53 ※ 文章網址: http://www.ptt.cc/bbs/mud_sanc/M.1398906822.A.936.html ※ 編輯: laechan (210.61.157.53), 05/01/2014 10:52:49
mantohu :在股板看到L兄的文,真是嚇到我了xd 05/01 15:39
laechan :我很久沒去 stock 哩, 今天無聊才晃過去 05/01 16:44
※ 編輯: laechan (210.61.157.53), 05/01/2014 17:12:18
laechan :明天再試著開放龍潭虎穴,我最近無法專心coding 05/01 17:12