作者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
1F:→ laechan :你就记有个很好用的 questing 函数即可 12/18 16:56
2F:→ laechan :questing(string fun,string names,string questnum, 12/18 16:56
3F:→ laechan :mixed vars), 它的结构则是这样 12/18 16:56