稍微聊一下 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