看板 mud_sanc 關於我們 聯絡資訊
備忘一下 1.增加 instance_multi 欄位。單人模式不會有這個欄位。 2.在 instance_rooms.c 補完副本過關資料的儲存(已完成一半) 3.在 questing("instance") 新增兩組 set/delete/query 原則一項修改的篇幅過長時,下一項修改就寫成另外一篇。 ============================================================ instance_ob.c 已經加上 instance_multi 參數,這參數在呼叫 create_instance 時就要給,沒給就預設為單人模式,相關的函 數例如 questing、instance_rooms.c 也已更動。 questing("instance","create","laechan/001", ({"laechan",({laechan}),"normal/hard1/hard2/hard3","single/multi"})); 沒有第三個欄位以後,就預設為 normal、single。 沒有第四個欄位以後,就預設為 single。 所以最簡單的呼叫就是跟之前一樣,如下: questing("instance","create","laechan/001",({"laechan",({laechan})); 並修改 instance_room.c,當房間沒有 multi 參數時,玩家會被 踢出,並 log 到 /open/wizs/log/instance.log。 ========================================================== 先補完了 questing("instance","set/query/delete") 的部份。 questing("instance","set/query/delete","laechan/001",({參數群})) 參數群接的參數如下 ({"normal/hard1/hard2/hard3",0/1,creator_id,破關所花的時間}) 破關時間是否紀錄,完全取決於副本腳本物件的 instance_check 是否呼叫 questing("instance","set"),有呼叫就代表想紀錄, 則通常呼叫的型式如下.. data=room->query_ob_data(); t=time()-(int)data["instance_times"]; n=questing("instance","set",data["instance_id1"]+"/"+data["instance_id2"], ({data["instance_diff"],(int)data["instance_multi"], data["instance_player"],t})); 底下說明傳回的 n 所代表的意義: n=1 : 沒有意義 n=2 : 玩家初次突破 diff-multi 這個組合 n=3 : 玩家此次更新了 diff-multi 這個組合的最短時間紀錄 當 n>1 時 t 就是玩家破關所花的時間(秒數)。 另外,底下的呼叫允許 wiz 無條件變更資料 call instance_rooms;instance_data;"set";"laechan";"001";({參數群});1 ^^ 有帶 1 那個最後一個欄位的參數時,將無條件把破關時間設進 去,這時如果破關時間設為 -1 則代表初始化破關時間。 目前有考慮將「誰」破了這個這個也紀錄進去。 以上已實裝。 Laechan -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.165.191.206 ※ 文章網址: http://www.ptt.cc/bbs/mud_sanc/M.1398295940.A.6B7.html ※ 編輯: laechan (1.165.191.206), 04/24/2014 07:34:45 ※ 編輯: laechan (210.61.157.53), 04/24/2014 10:13:38
laechan :突然覺得很睏..shxt.. 04/24 10:14
※ 編輯: laechan (210.61.157.53), 04/24/2014 14:16:16 ※ 編輯: laechan (210.61.157.53), 04/24/2014 16:16:58
laechan :剩下 instance_temp 及set_temp/query_temp/del_temp 04/24 16:28
laechan :我還在決定格式, 明天還有一天剛好留著做這些 04/24 16:28