Re: [建议] 副本相关

楼主: laechan (挥泪斩马云)   2014-04-25 09:43:00
副本剩下 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

Links booklink

Contact Us: admin [ a t ] ucptt.com