
ES2 mudlib - FF extension v0.6c 函式說明書

程式: /adm/daemons/combatd.c

	處理戰鬥, 與 look 和 go 同列利用率最頻繁的一段程式.
	此處的程式需要最佳化, 但是顯然我正朝向相反的方向走去...:Q
	載具系統算是開發到一半的 prototype, 如果嫌累贅, 可以刪除.

string damage_msg( int damage, string type )

	根據傷害大小 damage 及種類 type 傳回戰鬥造成的傷害描寫.

string v_damage_msg( int damage, string type )

	同上, 給載具使用的.

string eff_status_msg( int ratio )

	由下面的 report_status() 呼叫.
	以有效體力的百分比 ratio 傳回人物受傷狀態的描述.

string status_msg( int ratio )

	同上, 改為體力.

string v_status_msg( int ratio )

	由下面的 v_report_status() 呼叫.
	同上, 改為載具的損壞程度.

varargs string report_status( object ob, int effective )

	先算出 ob 的體力或有效體力百分比.
	如果 effective 為零, 呼叫上面的 status_msg(). 如果 effective 
	不為零, 呼叫上面的 eff_status_msg().

string v_report_status( object ob )

	同上, 改為載具.

varargs int skill_power( object ob, string skill, int usage )

	算出 ob 的 skill 目前有效的技能值, 有效技能值受到 ob 的精神值、
	攻擊和防守修正值影響.

varargs int do_attack( object me, object victim, object weapon, 
	int attack_type )

	由下面的 fight() 呼叫, 處理單次攻擊的各種數值以及結果.

varargs void fight( object me, object victim, int vehicle )

	處理戰鬥雙方攻擊與防守的回合, 由 /feature/attack.c 的
	attack() 呼叫.

void auto_fight( object me, object obj, string type )

	由 /feature/attack.c 的 init() 呼叫, 根據自動戰鬥的種類 type,
	處理自動戰鬥.

void start_hatred( object me, object obj )

	由上面的 auto_fight() 呼叫, 處理見到剛才逃跑的敵人.

void start_vendetta( object me, object obj )

	同上, 處理宿仇.

void start_aggressive( object me, object obj )

	同上, 處理見人就砍的 NPC.

void announce( object ob, string event )

	宣告各種戰鬥中發生的狀況: 死亡、疲累、昏倒等等.

void winner_reward( object killer, object victim )

	對打昏敵人的勝利者呼叫 defeated_enemy().

void killer_reward( object killer, object victim )

	處理殺死敵人之後的 killer.

int advance( object me, object target, int steps )

	處理拉近距離的動作.

int back( object me, object target, int steps )

	處理拉開距離的動作.

int check_equip_broken( object me, object equip )

	檢查某個裝備是否損壞.

void status_report( object me )

	在戰鬥時, 每回合顯示自己的狀況. 與平時的 prompt 相同.

Spock of The Final Frontier	98.Sep.19.
