作者laechan (小太保)
看板mud_sanc
標題[wizs] questing("set", 呼叫法
時間Tue Dec 18 16:55:06 2012
這個語法是最近寫的。
/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