关于怪脱战不完全的问题已经解决!特别感谢 isbiluo
mud吧
全部回复
仅看楼主
level 2
眉烟如黛 楼主
起因:
go.c文件里有段针对is boss属性怪的判断造成脱战不彻底,那怕你们不在一个房间,也会进入战斗
if ( !playerp(me) && objectp(follow_ob=me->query_leader()) )
{
if ( me->is_killing(follow_ob) )
me->kill_ob(follow_ob);
if ( playerp(follow_ob) &&
(me->query("is_boss") || me->query("end_boss")) )
me->fight_ob(follow_ob);
}
但是把这段代码注释掉之后,你站在房间里不动,怪撞你,他只会下达kill指令,不会出招,但是你走入他所在的房间,就没问题。
想了很久没想明白结果............
偶然,测试的时候发现,怪跟着你,他会下达2次kill你的命令,也就是出现2次 看起来想杀死你...........
处理结果:
在attack.c的varargs void remove_all_enemy(int flag)里面有这段代码
if ( (enemy[i]->query("end_boss") || enemy[i]->query("is_boss"))
&& environment()==env ) continue;
// We ask our enemy to stop fight, but not nessessary to confirm
// if the fight is succeffully stopped, bcz the fight will start
// again if our enemy keeping call COMBAT_D->fight() on us.
enemy[i]->remove_enemy(me);
enemy[i] = 0;
修改方法:
把这段代码
if ( (enemy[i]->query("end_boss") || enemy[i]->query("is_boss"))
&& environment()==env ) continue;
修改为
if ( environment()==env ) continue;
这样就好了,这样又解决了另外一个bug,如果怪跟随你进入禁止战斗的房间,以前还是会继续战斗出招的,现在就不会了。
特别感谢 吧主 isbiluo 所说的,npc下达kill指令,只是在 attack.c 调用,和 kill.c没关系,以前一直在想办法修改ho.c 和kill.c
2015年03月11日 10点03分 1
level 2
眉烟如黛 楼主
如果没有吧主,还想不到attack.c呢[哈哈][哈哈]
2015年03月11日 10点03分 2
level 2
眉烟如黛 楼主
[汗]又逗比了 go.c里面的
if ( !playerp(me) && objectp(follow_ob=me->query_leader()) )
{
if ( me->is_killing(follow_ob) )
me->kill_ob(follow_ob);
if ( playerp(follow_ob) &&
(me->query("is_boss") || me->query("end_boss")) )
me->fight_ob(follow_ob);
}
这段代码也要注释掉,
这个bug基本上适用 现在流传出来的所有的 夕阳再现-炎龙封印 ,当然,你要是花钱买的版本,应该没这bug
2015年03月11日 10点03分 3
1