稍微聊一下 TMI-2 (LPMud) 的战斗流程,假设 ppl 与 mob
一对一单挑的话
ppl->kill_ob(mob);
mob->set_heart_beat(1);
↓
ppl 的 heart_beat 呼叫 continue_attack 函数
mob 的 heart_beat 呼叫 continue_attack 函数
↓
ppl 的 continue_attack 呼叫 execute_attack 函数
mob 的 continue_attack 呼叫 execute_attack 函数
战斗结束时,ppl 与 mob 会持续呼叫 continue_attack 但
是不会有作用:
void continue_attack() {
if (!any_attack) return;
那目前跑 /d/area 下的区域,与怪物战斗时会出问题,跟
monster.c 与 sanc 不同有关,在 TMI-2_v3 里头,代表着
hp 与 sp 的字段分别是 hit_points 与 spell_points,而
不是 sanc 常用的 hp 与 sp,所以这些怪物一开始就没有
hp 及 sp,一进入战斗自然就瞬死产生尸体,然后很怪的是
怪物也不会消失这样。
下次发布的版本主要解决这个问题,并把 hit_points 以及
spell_points 全面替换为 hp 及 sp,并导入等级的概念,
其它有问题会替换的东西包括:
修改 wield_weapon 函数
修改 equip_armor 函数
新增 wear_all() 函数
修改 max_hp、max_sp 参数为 hp_src、sp_src 参数
透过 level 及 race 参数,会自动生出 mob 的 hp、sp 等
数值。
PS.下次发布新版本时这篇会删除,并编入 tmi2_v3_改 里
头,不过我稍微评估了一下,要改的东西非常多,当初
sanc 的 Int 花了半年大改特改才改出 sanc 的雏形..
所以要在今年内改出能拿来架的版本还是很困难的。
Laechan@Sanc