推 cheerall2001:我從不能進入後 等了一天還是不能進入 =,= 07/03 22:53
// /open/cmds/quest/quest_data/quest_data.c 的 instance 段
for(i=0;i<j;i++)
{
if(idata[names][i][0]==diff && idata[names][i][1]==multi)
{
s++;
if(min_t>idata[names][i][2])
min_t=idata[names][i][2];
}
}
上面的意思是說從你已進去的紀錄裡面找出「時間最小的那一個」,
也就是 min_t。比方你已進入三次了,這三次裡面最早進入的時間就
是 min_t。
if(t-min_t > 3600)
{
然後你現在想要進入副本,就拿現在的時間 - 最早的時間,有超過一
小時的話就做底下呼叫
questing("instance","instance_ob",key_name,
({"del-ppl_instance",names+"-"+diff+"-"+multi}));
也就是刪掉你最近幾次進入副本的紀錄。
// /std/new_ob/instance/instance_ob.c 的 instance_data 函數
case "del-ppl_instance":
if(str2)
{
string s1,s2,s3;
// names, diff, multi
if(sscanf(str2,"%s-%s-%s",s1,s2,s3)==3)
{
int i,j;
j=sizeof(ppl_instance[s1]);
for(i=0;i<j;i++)
if(ppl_instance[s1][i][0]==s1 && ppl_instance[s1][i][1]==s2)
ppl_instance[s1][i]=0;
ppl_instance[s1]-=({0});
}
else
map_delete(ppl_instance,str2);
}
else
ppl_instance=([]);
return 1;
break;
我猜是上面標綠色的部份寫錯,要比對的應該是 s2 及 s3。
已修正,可再測試。若明天該 bug 確定修正,你可以申請 bug 回報獎勵。
※ 編輯: laechan (1.165.173.180), 07/03/2014 23:15:12
※ 編輯: laechan (1.165.173.180), 07/03/2014 23:15:34
推 cheerall2001:我確定之前是進入3次後到shutdown前就都無法進入了 07/03 23:25
→ cheerall2001:自己有測試過3次 感謝wiz修改^_^ 07/03 23:25