功能需求分析
CombatTracker插件的主要功能/界面特点如下:
1. 屏幕上将有CombatTracker独立的框架,可拖曳;
2. 当玩家角色进入战斗时,插件将记录进入时间,并显示"进入战斗";
3. 每当玩家受到外部伤害,框架文字将更新并记录进入战斗的时间、受到的伤害总量、及平均每秒受到的伤害量;
4. 当战斗结束时,框架应正确显示最终数据;
5. 框架本身为按钮,点击时,若玩家处于队伍中,将向队伍发送统计数据;否则,只在聊天窗口输出统计数据信息。
相关的游戏事件
为了实现上述的功能,必须找到相关联的游戏事件。CombatTracker主要会用到下述的三个事件:
PLAYER_REGEN_DISABLED
众所周知,在魔兽世界中,一旦玩家进入战斗,自然的生命回复就会暂时停止。因此,PLAYER_REGEN_DISABLED事件的触发,可以被认为是玩家进入战斗的标志。
PLAYER_REGEN_DISABLED事件不传出任何参数。
PLAYER_REGEN_ENABLED
与PLAYER_REGEN_DISABLED相对。在玩家离开战斗的同时触发,因此可以认为是脱离战斗的标志。同样不传出任何参数。
UNIT_COMBAT
处理玩家受到伤害的事件很多,这里选用UNIT_COMBAT来实现上述的功能。任何时候,任一关注目标(包括玩家自身、团队小队成员及其目标等)生命值因战斗发生变动时,均会触发此事件。
UNIT_COMBAT事件携带5个参数,分别是:
unit: 生命值发生变动的单位名称
action: 发生的战斗行为,包括但不限于: HEAL, DODGE, BLOCK, WOUND, MISS, PARRY, RESIST
modifier: 战斗中的攻击可能产生的特殊情况,例如: GLANCING(擦过)、CRUSHING(碾压)、CRITICAL(暴击)
damage: 受到的伤害量或治疗量
damagetype: 伤害的类型, 0-物理, 1-神圣, 2-火焰, 3-自然, 4-冰霜, 5-暗影, 6-奥术(秘法)
关于追踪事件
可以利用插件DevTools来跟踪某个行为进行时触发的事件。此插件的作者是Iriel,暴雪UI/宏论坛的一位MVP。

可以从这里下载到DevTools。在实际游戏中,输入/dtevents可以呼叫出DevTools的事件追踪器界面。从中可以查阅各种事件的发生时间及其传递的参数。
DevTools还有其他许多指令可供开发者使用。详细的功能可以参照上面的下载页面。
浙公网安备 33010602011771号