精華區beta mud_sanc 關於我們 聯絡資訊
這篇會隨時新增。questing 函數寫在 /open/cmds/quest/quest_d.c ,並支援全域呼叫的模式。 (以後則會把它挪到 /adm/daemons 下存放) 全域的意思是說,例如某房間 set("pre_exit_func/north","hihi"); int hihi() { if( questing("check",玩家id,任務編號,({"times"})) > 0 ) return 0; write("你要先解過 XXXX 任務才可以往北邊走喔.\n"); return 1; } 所以我才會跟 norr 說這個東西以後會很常被用到。 ============================================================ kind names quest_num vars if( questing("check","玩家id","任務編號",({"times",3})) >0 ) write("玩家有解過這個任務 3 次.\n"); n = questing("check","玩家id","任務編號",({"times"})); write("玩家解過這個任務 "+n+" 次.\n"); if( questing("check","玩家id","任務編號",({"steps",3})) > 0 ) write("玩家在這個任務上已經解到第 3 步驟.\n"); n = questing("check","玩家id","任務編號",({"steps"})); write("玩家解這個任務解到第 "+n+" 步驟了.\n"); ※假設你要進行的判斷是「玩家已經解這個任務解過 2 次,  正在解第 3 次,而且也已經解到第 4 步驟了」,它的判  斷方式就是.. if( questing("check","玩家id","任務編號",({"times",2})) > 0 && questing("check","玩家id","任務編號",({"steps",4})) > 0 ) 10/20更新: questing 新增支援 kind="skyroom" 的語法, 並以 vars 做 為「判斷值是否符合」或是「傳回值」的依據. 傳回值 // 傳回天空城作物資料 mapping crosp=questing("skyroom","laechan","crops",({})); // 傳回天空城 m1 這個作物的數量 int n=questing("skyroom","laechan","crops",({"m1"})); ┌← 一定要有 // 傳回 laechan 的 myskill 的名字 ↓ string sname=questing("skyroom","laechan","myskill_name",({""})); 確認值 // 確認天空城 m1 這個作物的數量是不是等於 100 if( questing("skyroom","laechan","crops",({"m1",100})) > 0) write("laechan 家的 m1 作物數量確實等於 100.\n"); // 確認 laechan 的 myskill 的名字是不是 怒火燒盡九重天 if( questing("skyroom","laechan","myskill_name",({"","怒火燒盡九重天"}) > 0) write("laechan 的自創武功名字確實是怒火燒盡九重天.\n"); -- ※ 發信站: 批踢踢實業坊(ptt.cc)
hlead :soga... 10/19 13:19
※ 編輯: laechan 來自: 122.117.7.33 (10/20 21:58)