用途:为《魔兽世界》正式服(Retail,Patch 12.0.0,Build 65655)插件开发者提供战斗相关 API 的完整参考,来源为 warcraft.wiki.gg 的 World of Warcraft API。
主要能力与范围:
- 战斗日志:12.0.0 起 COMBAT_LOG_EVENT_UNFILTERED(CLEU)不再对插件开放,CombatLogGetCurrentEventInfo() 与旧 COMBAT_LOG_EVENT 对受污染代码不可用,聊天标签消息变为不可解析的 KString;新增面向插件的 COMBAT_LOG_MESSAGE、COMBAT_LOG_ENTRIES_CLEARED、COMBAT_LOG_APPLY_FILTER_SETTINGS、COMBAT_LOG_REFILTER_ENTRIES、COMBAT_LOG_MESSAGE_LIMIT_CHANGED,另有仅限暴雪代码的 COMBAT_LOG_EVENT_INTERNAL_UNFILTERED。
- C_DamageMeter:内置伤害/治疗统计,提供 GetCurrentSessionID、GetSessions、GetSessionInfo、GetPlayerData、GetPartyData、ResetSessions,以及 DAMAGE_METER_COMBAT_SESSION_UPDATED 等事件,替代自行解析战斗日志。
- 仇恨:UnitThreatSituation、UnitDetailedThreatSituation、UnitThreatPercentageOfLead,状态值 0–3;副本中非玩家单位的仇恨值可能为秘密值,应直接传给 UI 控件。
- C_LossOfControl:追踪玩家受控效果,含 GetActiveLossOfControlData、ByUnit 版本与计数函数,数据字段有 locType、spellID、displayText、iconTexture、startTime、timeRemaining、duration、lockoutSchool、priority,事件为 LOSS_OF_CONTROL_ADDED/UPDATE。
- C_CombatText 与相关 CVar(enableFloatingCombatText 等)控制浮动战斗文字;C_CombatAudioAlert 提供战斗音频提示的无障碍开关。
- 秘密值处理:C_Secrets 判断生命、能量、施法是否秘密;C_CurveUtil 创建数值/颜色曲线,使插件无需读取具体数值即可映射视觉输出;C_DurationUtil 创建 DurationObject 配合冷却显示。
- 遭遇事件:ENCOUNTER_STATE_CHANGED、ENCOUNTER_WARNING 及时间线事件;另有 PLAYER_REGEN_DISABLED/ENABLED、UNIT_COMBAT、UNIT_THREAT_SITUATION_UPDATE 等。
- C_Commentator 观战/解说 API,如 IsSpectating、GetAllPlayerData、GetPlayerData、GetTeamColorAndName、GetMatchDuration、StartWargame、UpdatePlayerInfo。
使用方式:通过事件注册与上述函数读取数据;示例模式包括读取伤害统计、仇恨染色、失控显示等。
限制:副本中生命值、仇恨、单位身份等可能为秘密值,不可做数学运算或分支判断,应直接传给控件;副本内无法发送插件消息;设计理念是插件不应在战斗中提供竞争优势。仅适用于正式服,其他版本暂未提供。