作者laechan (小太保)
看板mud_sanc
標題[wizs] 5-fingerfire.c
時間Fri Jun 27 15:26:48 2008
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)
推 horry7 :這個有開放權限給 wiz.4 以下的嗎? 06/27 15:37
→ horry7 :至少我是沒權限動就對了。 06/27 15:37
推 koct :我用五指轟會一直出現 MudOS driver tells you 06/28 05:15