NoWCL

A lightweight in-game raid analytics and evaluation addon with Warcraft Logs-inspired and custom scoring modes, featuring multi-user synchronization.

简介 / Summary

NoWCL 是一个适配《魔兽世界:国服时光服》(Titan Reforged Classic)的轻量级游戏内战斗统计与团队审计插件。它按与 Warcraft Logs 一致的口径计算伤害与治疗,全程只读取游戏内战斗日志事件流,不上传、下载或解析任何外部日志文件,也无任何自动化、脚本挂机或外部可执行文件。游戏内输入 /nowcl 打开审计窗口。

NoWCL is a lightweight in-game combat-statistics and raid-audit addon for World of Warcraft: Titan Reforged Classic. It computes damage and healing aligned with how Warcraft Logs reports them, reading only the in-game combat-log event stream — no external log files are uploaded, downloaded, or parsed, and it contains no automation, botting, or external executable files. Type /nowcl in-game to open the audit window.


更新日志(中文)

v1.0.1

  • 新增 P1/P2/P3 三阶段逐 Boss 对首领口径(实测自 WCL):熔火之心、毒蛇神殿/风暴要塞、纳克萨玛斯/黑曜石/永恒之眼,共 37 个 Boss。统计口径窗口新增 P1/P2/P3 tab,可逐 Boss 配置。多目标计入(深水领主+3卫士、凯尔+4副官、塔迪乌斯+斯塔拉格+费尔根、天启四骑士)与只算本体(萨塔里奥,3 条龙不计)均按 WCL 处理。
  • 修复:拍卖行内部错误 —— 加载 NoWCL 后在拍卖行买东西报"内部错误",根因是 Blizzard UIDropDownMenu 污染(taint)扩散到拍卖行安全代码路径;已把全部下拉改为自建轻量下拉,彻底不碰共享下拉全局。
  • 修复:统计口径窗口切 tab 后文字残留 —— 非当前阶段内容帧未隐藏,需 reload 才清除;现已显式隐藏 + 关闭兜底。

v1.0.0 — 首个发布版

战斗统计(对齐 WCL 口径)

  • DPS / 对首领 DPS:有效伤害 = 伤害 + 吸收;治疗扣过量。
  • 对首领口径:只计入该战斗真正的首领/大怪 NPC(逐 Boss 名单,ZG/ToC 已内置;统计口径窗口可逐 Boss 自定义)。
  • 默认统计口径档案 WCL 4.5;按钮显示当前是 (WCL4.5) 还是 (自定义)。

团员详情页(点团员行进入)

  • 按技能的百分比明细:每条带技能图标 + 学派配色(火橙/自然绿/暗影紫/奥术粉…),按角色显示伤害或治疗。
  • 活跃度块:活跃度% 与"生存时活跃度";活跃/空闲/死亡/战斗 拆分;绿/灰时间轴;死亡红标;空闲段统计;动作数 / APM。

团队审计页

  • 装等、缺失附魔、空孔、蓝绿装、合剂、食物(未取到显示灰色  占位)。
  • 输出列:绝对总输出 + 相对基准% + 及格 ✓/✗(数值用 WCL 官方分位配色)。对首领口径=对首领总伤害,全程口径=总伤害;治疗职业显示总治疗(不套 DPS 考核)。
  • DPS 基准可选:第一名 / 第二名 / 平均 / 中位数 / 坦克。
  • 额外任务列:破甲 / 打断 / 驱散 合并显示(如「破甲1 打断3」)。
  • 活跃度考核(挂机检测);老板(不参与统计)标记。
  • 窗口高度随内容自适应:满团时自动加高,不再溢出背景(封顶屏幕高度)。

全团同步与独立运作

  • 战斗数据(SNAP)/ 考核配置(CFG):以团长为权威广播全团;团长没装 NoWCL 时各端本地权威、独立运作。
  • 准备度:各端本地采集,不依赖权威端——合剂/食物本地扫(UnitAura);装备优先收对方自报(点对点),没装 NoWCL 的人本机检视兜底。
  • 逐 Boss 标签 + "全部"聚合;清空/置灰。自带分块/限流/重组通讯,无外部库。

活跃度计算(本版重点修正)

活跃度按 GCD 窗口的并集计算,并修正了三类系统性低估:

  1. 硬读条按"读条开始→完成"整段计入(不再只算完成后的 1.5s GCD)。
  2. 离战宽限的等待时间不再计入战斗时长。
  3. 通道法术(精神鞭笞/吸取灵魂/暴风雪/飓风/乱射等)用 UNIT_SPELLCAST_CHANNEL 按实际起止计时。

并修正同步显示与回退: 4. 团员逐段明细(时间轴/空闲段/死亡红标)在木桩战不显示:原按 Boss 名匹配,木桩每人首个目标不同;改为时间就近 + 玩家名匹配,并消除竞态。 5. 团长没装 NoWCL 时团员不记录:引入"本地权威"回退,团员本地照常记录(默认 WCL 口径);确认团长在用 NoWCL 则让权于团长。注:设置页仅团长/单人可编辑,团员只读。 6. 每次战斗都被记录:改为只记 Boss 战(ENCOUNTER)与木桩,杂兵/世界怪不再建战斗标签。 7. 准备度改为各端本地采集(独立运作):合剂/食物本地扫(不进网络);装备优先收对方自报,没自报的本机检视兜底(受 ~28 码距离与逐个节流影响,装等为近似);未取到显示灰色 

隐私 / 合规

  • 仅读取 WoW API 的游戏内战斗日志事件流。
  • 无自动化、无挂机脚本、无外部可执行文件。
  • 不读取、上传或解析任何外部日志文件。

安装

解压到 Interface/AddOns,确保文件夹名为 NoWCL 且含 NoWCL.toc

已知限制

  • 木桩战斗有约 3–4 秒"在战计时尾巴",木桩场活跃度略低于手感;真 Boss 战在击杀瞬间定稿,无此影响。
  • 没装 NoWCL 的团员装备靠本机检视:受 ~28 码距离与逐个节流影响,远处/分散时需稍等(显示 ),装等为近似值(附魔/宝石/合剂/食物精确)。
  • 跨服同名玩家的名字归并可能有边缘情况;单服正常。

Changelog (English)

v1.0.1

  • Added per-boss "boss-damage" classification for tiers P1 / P2 / P3 (verified against Warcraft Logs): Molten Core, Serpentshrine Cavern / Tempest Keep, and Naxxramas / Obsidian Sanctum / Eye of Eternity — 37 bosses in total. The Statistics Profile window now has per-tier P1 / P2 / P3 tabs you can configure boss-by-boss. Multi-target encounters that WCL counts (Fathom-Lord + 3 advisors, Kael'thas + 4 advisors, Thaddius + Stalagg + Feugen, the Four Horsemen) and single-body cases (Sartharion only — drakes excluded) are handled exactly as WCL does.
  • Fixed: "Auction House internal error" — after loading NoWCL, buying at the auction house failed with an internal error. Root cause was Blizzard UIDropDownMenu taint spreading into the auction-house secure code path. All dropdowns were replaced with a self-built lightweight dropdown that never touches the shared dropdown globals, eliminating the taint.
  • Fixed: lingering text after switching tabs in the Statistics Profile window — non-active tier panes were not hidden, leaving text on screen until a reload. They are now explicitly hidden, with an on-close safety net.

v1.0.0 — First Release

Combat stats (WCL-aligned)

  • DPS / boss-only DPS — effective damage includes absorbs; effective healing subtracts overheal.
  • Boss-damage metric — counts only an encounter's real boss / "big add" NPCs (per-boss NPC list; ZG/ToC built in, customizable in the Statistics Profile window).
  • Default profile WCL 4.5; the button shows whether it is (WCL4.5) or (Custom).

Per-player detail page (click a row)

  • Per-ability percentage breakdown with a spell icon + school color (fire orange / nature green / shadow purple / arcane pink…); shows damage or healing by role.
  • Activity block — activity % and "alive-time activity %"; active / idle / dead / fight split; a green-grey timelinedeath markers; idle-gap stats; action count / APM.

Raid audit page

  • Item level, missing enchants, empty sockets, low-quality gear, flask, food (a grey  placeholder while data is still being gathered).
  • Output column — absolute total output + relative % + pass ✓/✗ (number uses WCL percentile colors). Boss mode = total boss damage, full mode = total damage; healers show total healing (no DPS pass check).
  • DPS baseline options: rank 1 / rank 2 / average / median / tank.
  • Extra-tasks column — sunder / interrupt / dispel merged (e.g. "Sunder 1 Interrupt 3").
  • Activity check (AFK detection); "boss / non-participant" marker.
  • Window height auto-fits content — grows for a full raid so rows no longer overflow the background (capped to screen height).

Full-raid sync & standalone operation

  • Combat data (SNAP) / audit config (CFG) — broadcast authoritatively by the raid leader; if the leader has no NoWCL, each client is its own local authority and works independently.
  • Readiness — gathered locally on each client (no dependence on an authority): flask/food via UnitAura; gear prefers the peer's self-report, otherwise the local client inspects it.
  • Per-boss tabs + an "All" aggregate; clear / grey-out. Self-rolled chunked / throttled / reassembled addon comms, no external libraries.

Activity calculation (key fixes this release)

Activity is the union of GCD windows; three systematic under-counts were fixed:

  1. Hard casts are counted for the whole cast (cast-start → cast-success), not just the 1.5s GCD after completion.
  2. The out-of-combat grace wait is no longer counted as fight time.
  3. Channeled spells (Mind Flay, Drain Soul, Blizzard, Hurricane, Volley…) are timed via UNIT_SPELLCAST_CHANNEL start/stop.

And sync / display / fallback fixes: 4. Member per-segment detail (timeline / idle gaps / death markers) not showing on dummies — it matched by boss name, but on dummies each player's first target differs; changed to time-proximity + player-name matching, and removed the SNAP-vs-local race. 5. Members not recording when the leader has no NoWCL — added a "local authority" fallback so the member records locally (default WCL profile); once the leader is confirmed to use NoWCL it defers to the leader. The settings page is editable only by the leader / solo; members are always read-only. 6. Every fight was recorded — now only boss fights (ENCOUNTER) and training dummies are recorded; trash / world mobs no longer create fight tabs. 7. Readiness gathered locally on every client (standalone operation) — flask/food via UnitAura (no network); gear prefers self-report (peer-to-peer, accurate), otherwise local inspection (NotifyInspect, ~28-yd range & throttled, item level approximate). Grey  while pending.

Privacy / compliance

  • Reads only the in-game combat-log event stream from the WoW API.
  • No automation, no botting, no external executable files.
  • Does not read, upload, or parse any external log files.

Installation

Extract into Interface/AddOns; the folder must be named NoWCL and contain NoWCL.toc.

Known limitations

  • Training dummies keep you "in combat" for ~3–4s after the last hit, so dummy-fight activity reads slightly low; real boss fights finalize on kill (ENCOUNTER_END) and are unaffected.
  • Gear for members without NoWCL relies on local inspection: ~28-yd range & throttled, so far/spread players take a moment (shown as ), and their item level is approximate (enchants / gems / flask / food are exact).
  • Cross-realm players with identical names may have edge cases in name merging; single-realm is fine.

The NoWCL Team

profile avatar
  • 1
    Projects
  • 8
    Downloads