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