精華區beta mud_sanc 關於我們 聯絡資訊
這個語法是最近寫的。 /open/cmds/quest/quest_data/quest_data.c case "set": // set 一定要有 names, questnum 跟 var if(names && names!="" && quest_num && quest_num!="" && sizeof(vars)>0 && stringp(vars[0])) { qq=query_quest_data(names,quest_num); // 採嚴格設定法,沒有列入的參數均不准設 if((string)vars[0]=="times" && intp(vars[1])) set_quest_data(names,quest_num,qq[1],vars[1],qq[3]); else if((string)vars[0]=="steps" && intp(vars[1])) set_quest_data(names,quest_num,vars[1],qq[2],qq[3]); else return -1; return 1; } return -1; break; 這意思就是說,假設任務 mark 是 j001,執行者是 justin 一、跳步驟 比方要把玩家變成「已經完成了步驟 5」 questing("set","justin","j001",({"steps",5})); 二、跳完成次數 比方要把玩家已完成該任務(全部流程) 3 次改成 0 次 questing("set","justin","j001",({"times",0})); 而 questing 是全域呼叫函數(simul_efun),所以你可以在 任何地方呼叫它,來更改 justin 的 j001 任務執行資料, 再用 quest query justin j002 來觀看更動結果。 例子: > quest query laechan l002 quest: ({ "l002", 1, 0, "2011/10/18-2" }) ([ "3" : 0, "2" : 0, "4" : 0 ]) > running 編輯結束並存檔(.). 中途放棄編輯(~q).訊息暫時中斷。 __________________________________________________________________ questing("set","laechan","l002",({"steps",3})); ========== 程式執行區 ========== ========== 程式執行區 ========== > quest query laechan l002 quest: ({ "l002", 3, 0, "2011/10/18-2" }) ([ "3" : 0, "2" : 0, "4" : 0 ]) Laechan -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 210.61.157.53
laechan :你就記有個很好用的 questing 函數即可 12/18 16:56
laechan :questing(string fun,string names,string questnum, 12/18 16:56
laechan :mixed vars), 它的結構則是這樣 12/18 16:56