安装过滤器
您每次调用调用CombatLogAddFilter()函数的时候,您就添加了一个新的过滤器。任何通过该过滤器的单位都将触发COMBAT_LOG_EVENT事件。例如,如果您想看见您做过的任何事以及敌人对您做的一切,您就该调用下列函数
CombatLogAddFilter(nil, COMBATLOG_FILTER_MINE, nil)
CombatLogAddFilter(nil, COMBATLOG_FILTER_HOSTILE_UNITS , COMBATLOG_FILTER_MINE nil)
回收战斗消息
一旦您安装了一个过滤器,所有匹配过滤器的项目都被组织进一个链接列表。通过调用CombatLogSetCurrentEntry(1),您设置当前指针为列表开头。如果不存在任何消息,CombatLogSetCurrentEntry(1)就会失败。如果您向CombatLogSetCurrentEntry()发送一个负值,就将从列表底部开始倒数。
要向前移动指针,调用CombatLogAdvanceEntry(1)即可移向列表里的下一个项目。
ComabtLogGetCurrentEntryy()和COMBAT_LOG_EVENT事件将返回该事件的所有参数。精确的参数排序取决于事件,但下面是不变的参数:
timestamp, event, srcGUID, srcName, srcFlags, dstGUID, dstName, dstFlags = CombatLogGetCurrentEntry()
事件
说实在的,事件太多了,也太磨叽,但这有个基本的组织。
基础事件:
SWING - 这些事件关联近战攻击,通常被称为“白色伤害”。
RANGE - 这些事件关联猎人射击或术士甩魔杖。
SPELL - 这些事件关联法术和技能。
SPELL_CAST - 这些事件关联法术的起始和失败。
SPELL_AURA - 这些事件关联buff和debuff。
SPELL_PERIODIC - 这些事件关联持续伤害、持续治疗及类似效果。
DAMAGE_SHIELD - 这些事件关联伤害盾,例如荆棘术。
ENCHANT - 这些事件关联临时和永久的物品buff。
ENVIRONMENTAL - 此为世界造成的任何伤害。火焰、熔岩、掉落等等。
后缀
_DAMAGE - 如果事件结果是伤害,那就是它了。
_MISSED - 如果事件结果是失败,例如未击中、抵抗或格挡。
_HEAL - 如果事件结果是治疗。
_ENERGIZE - 如果事件结果是强度回复。
_LEECH - 如果事件转换为生命和强度。
_DRAIN - 如果事件降低强度,但并不转化。
特殊事件:
PARTY_KILL - 在您或您的队友击杀什么东西的时候触发。
UNIT_DIED - 身边有单位死亡的时候触发。
上一页 [1] [2] [3] [4] [5] [6] 下一页