作者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