作者laechan (小太保)
看板mud_sanc
標題[備忘] 有空要檢查一下 heart_beat 函數
時間Thu Oct 11 17:35:49 2012
算備忘,以後會直接回這篇 or 另發新篇,時間應該就是在最近
,會造成玩家沒心跳的最直接原因,就是程式執行到 heart_beat
的某一行時出問題才造成的。
就目前來說唯一可猜到的原因在最近的修改 cast 上。
底下先貼關鍵段再來 debug...
if(temp_data["casting"]>0)
temp_data["casting"]--;
else if(temp_data["casting"]<0)
temp_data["casting"]=0;
if(temp_data["casting2"]>0)
temp_data["casting2"]--;
else if(temp_data["casting2"]<0)
temp_data["casting2"]=0;
if(temp_data["cmd_cast_data"])
{
casting=(int)temp_data["casting"];
if(casting<1)
{
if(temp_data["cmd_cast_data"][0])
{
call_other(temp_data["cmd_cast_data"][1],"start_effect",
temp_data["cmd_cast_data"][0],me,
temp_data["cmd_cast_data"][2],
temp_data["cmd_cast_data"][3],
temp_data["cmd_cast_data"][4]);
if(query_temp("special_effect/double-charm") &&
temp_data["cmd_cast_data"][0])
{
call_other(temp_data["cmd_cast_data"][1],"start_effect",
temp_data["cmd_cast_data"][0],me,
temp_data["cmd_cast_data"][2],
temp_data["cmd_cast_data"][3],
temp_data["cmd_cast_data"][4]);
}
delete_temp("cmd_cast_data");
delete_temp("casting");
}
}
}
目前很不想對這一段落上 catch,因為 catch 並不是一個好
東西(但是它可以避免程式卡死)。
總之,原因應該出在 cast 上,即戰鬥中 cast 某法術會出問
題,若是以這個為前提的話,一個一個試大概也可以...有空
我擬出一份測試流程來試好了..
(若玩家能回報自己是 cast 啥法術出問題就更好了)
Laechan
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 210.61.157.53
1F:→ laechan :或是應用以前的方法,把這部份變成外部呼叫 10/11 17:37
2F:推 Yanten :如果有 我想應該是鼓舞... 10/12 00:13
3F:→ laechan :嗯嗯,我明天檢查看看,它設定的東西太多了 10/12 00:25
關鍵程式段:
obs=all_inventory(environment(ppl));
j=sizeof(obs);
for(i=0;i<j;i++)
{
if(t2>=10) break; // 最多一次影響10個玩家
if(!obs[i]) continue;
if(!userp(obs[i])) continue;
if(obs[i]->query_temp("heal_time/encourage")) continue;
tell_object(obs[i],obs[i]->query("sex_name")+"頓時感受到一股源源不絕"+
"的力量!\n");
t2=t2+1;
obs[i]->temp_several_same_mod(({"damage","speed","dodge","hit_chance"}),
t1,"encourage",lv);
}
若真的是這個技能有問題,則出問題的段落通常是上面紅色
的部份。我覺得這個技能其實該轉型了。
不過我仍覺得是 cast 出問題。
※ 編輯: laechan 來自: 223.143.35.239 (10/12 00:31)
4F:→ laechan :yalis>你也可以試試先不要用 encourage, 若沒問題就 10/12 11:37
5F:→ laechan :可以用這個來反證 encourage 有問題 10/12 11:37
6F:推 Yanten :今天用一整天 還是沒問題 明天會關掉兩天看看 10/13 01:25