作者laechan (小太保)
看板mud_sanc
标题Re: [建议] 副本相关
时间Fri Apr 25 09:43:00 2014
副本剩下 instance_temp 这个大项目,初定格式如下..
instance_temp=
([
"laechan":([
"laechan/004":({
({进入时间,是否计算}),
.
.
({进入时间,是否计算}),
}),
]),
]);
比方说玩家在一段时间内进入该副本的次数已达n次,则在
CD时间如果要再进去,原则上是不行的,这时玩家透过支付
挪布币的方式变成可以,则该次进入时「是否计算」的参数
就会变更成别的,则玩家「於CD时间内要再进入」,它就会
看「是否计算」的参数是否有「已付过挪布币进入」,有的
话就不会放行。
instance_temp 在系统重开後 CD 时间都会归零。
questing 的最简略呼叫语法如下
questing("instance","set_temp/query_temp/del_temp/query_first",
instance_id,({ ({instance_members}) }));
这意思是说,比方今天有n个人同时进这副本..
questing("instance","set_temp","laechan/001",({ ({laechan,justinj,..}) }));
这样就是最简易的呼叫,set_temp 的判断就如下
// 没有带其它参数时就以「当下的时间」以及「一般判断」来做
if(sizeof(vars)<1)
vars=({time(),0});
else if(sizeof(vars)<2)
vars+=({0});
// 然後开始针对每一个玩家做设定
foreach(ppl in ppl_names)
{
if(!ppl) continue;
tmp=ppl->query("name");
if(undefinedp(instance_temp[tmp]))
{
instance_temp[tmp]=([]);
instance_temp[tmp][ids]=({});
}
else if(undefinedp(instance_temp[tmp][ids]))
instance_temp[tmp][ids]=({});
// 把玩家本次进入的时间资讯设进 instance_temp 里面
instance_temp[tmp][ids]+=({ ({vars[0],vars[1]}) });
}
wiz 不需知道 instance_temp 里面是怎麽运作的,只要知道全域呼叫
函数 questing("instance") 要如何带参数即可,基本上 quest_num
栏位都是带 "laechan/001" 这样的格式。
以上已实装。
LAechan
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 210.61.157.53
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/mud_sanc/M.1398390184.A.7FD.html
※ 编辑: laechan (210.61.157.53), 04/25/2014 11:40:31