[wizs] 5-fingerfire.c
tars=ppl->query_attackers();
a=0;
for(u=0;u<k;u++)
{
a+=1;
if(a>=sizeof(tars))a=a-sizeof(tars);
if(a>=10) break;
if(tars[a] && environment(tars[a]) &&
environment(tars[a])==environment(ppl))
ppl->shut(HIR"五 指 爆 炎 彈"NOR,damage,hit,"fire",tars[a]);
}
wiz 是不是有改過這個法術?
最近系統紀錄到玩家在使用這個技能時出問題,我猜是這一行..
if(tars[a] && environment(tars[a]) &&
environment(tars[a])==environment(ppl))
a 出現 <0 或 a >= sizeof(tars) 的情況。
印象中我不會去加這一行。
正確的寫法是...
if(a>=sizeof(tars)-1)a=a-(sizeof(tars)-1);
這是因為 tars 的範圍是 [0..sizeof-1], 例如 sizeof(tars) = 10
那 tars 的範圍就是 [0..9](正確), 而不是 [0..10](超過範圍).
程式已修正。以後有改到程式的地方請盡量加 // 備註,才知道
是誰改的,以及改到哪些地方。
Laechan
--
※ 發信站: 批踢踢實業坊(ptt.cc)
※ 編輯: laechan 來自: 61.225.163.6 (06/27 15:28)
推
06/27 15:37, , 1F
06/27 15:37, 1F
→
06/27 15:37, , 2F
06/27 15:37, 2F
推
06/28 05:15, , 3F
06/28 05:15, 3F
mud_sanc 近期熱門文章
PTT遊戲區 即時熱門文章