→ hlead :soga... 10/19 13:19
※ 編輯: laechan 來自: 122.117.7.33 (10/20 21:58)
這篇會隨時新增。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)