打开网易新闻 查看精彩图片

在《魔兽世界》UI 开发者一次更新中,暴雪分享了插件 API 限制的新计划,该计划将让玩家对施法条、单位框体治疗量拥有更多控制权,同时还将对部分法术开启有限的白名单机制!

其中部分技术细节仅与插件作者相关,简单来说,开发团队放宽了部分限制,为玩家提供了更多工具,可直接与施法条交互,或是预测单位框体上的治疗量与吸收量。总体而言,这些改动是响应玩家反馈后推出的,是非常不错的调整。

灵魂残片与漩涡武器加入白名单

本次更新的核心内容之一是将特定法术加入白名单,允许插件追踪它们的状态、层数或冷却时间,而这些信息是当前游戏原生 UI 无法提供的。其中很重要的一项优化是,让没有战斗复活法术的玩家,也能更直观地看到团队中可用的战斗复活次数;同时加入了 “驭空术” 相关追踪,方便玩家查看该技能共享冷却的剩余层数。

打开网易新闻 查看精彩图片

除此之外,这些改动还能让插件直接追踪漩涡值,无需再使用蹩脚的替代方案。

以上改动本身对直接战斗的影响不大,但令人意外的是,暴雪将增强萨满的漩涡武器与吞噬者恶魔猎手的灵魂残片都加入了白名单 —— 这两者都是对专精至关重要的次级资源,但游戏原生 UI 并未提供相关显示。

将它们加入白名单,对于这两个专精的玩家来说,是一项重大优化,能让他们更好地掌控自己最重要的资源;但这与暴雪此前 “避免插件为玩家带来游戏玩法优势” 的声明相悖,而这些改动显然会带来此类优势。虽然这可能会引发连锁反应,但实际上,有想法的玩家早已通过临时方案,实现了类似的资源追踪功能,效果和使用插件相差无几。不过我们也不必期待这种宽松政策会覆盖所有职业、专精或法术,开发团队表示会根据具体情况评估需求。

即将到来的插件 API 改动

来自 WoWUIDev Discord 的消息:

暴雪:以下是在未来几周内,针对插件限制 API 所做的改动列表。这些并非计划中的全部改动,只是已确定会加入近期测试服版本的内容。

注意:测试服第 5 版将是今年推出的最后一个测试服版本。假期前会继续处理插件开发者的请求,但测试服第 6 版要到明年 1 月才会推出。另外需要说明,测试服第 4 版的改动超出预期,而第 5 版的改动较少,这是因为版本构建时间有所调整(测试服第 4 版的构建时间晚于预期)。

提醒:测试服版本号已从 12.0.0 切换为 12.0.1。这是因为 12.0.0 将作为《至暗之夜》前置补丁的版本号,12.0.1 则是《至暗之夜》正式上线的版本号。后续测试服都将使用 12.0.1 版本,而 PTR(公共测试服)开启后将使用 12.0.0 版本。在前置补丁发布候选版(RC)确定前,我们会继续在 12.0.0 版本中调整插件相关内容。

这里有一点需要重点注意:我们计划让这些新的插件限制在前置补丁(12.0.0)中生效,而非等到 12.0.1 版本。这么做是为了让玩家在《至暗之夜》正式上线前,有时间适应新的插件环境。目前 12.0.0 还未进入 RC 阶段,大家现在仍可在测试服中测试,但一旦确定 RC 版本(届时我们会通知),建议准备适配前置补丁的插件作者,切换到 PTR 而非测试服进行测试。

确定 12.0.0 的 RC 版本后,我们的工程师会将大部分插件相关改动转移到 12.0.1 版本(优先级极高的内容除外)。我们会持续为 12.0.1 版本进行改动,直到正式上线(上线后的后续补丁中也会继续),为大家提供更多你们所要求的便利功能优化。将于测试服第 5 版(预计 12 月 17 日上线)实装的改动单位框体治疗吸收与治疗预测

我们新增了一个UnitHealPredictionCalculator Lua 对象(通过新增的CreateUnitHealPredictionCalculator API 创建),以及配套的UnitGetDetailedHealPrediction API,该 API 可接收此对象类型。插件可通过这些 API,计算所有治疗预测与吸收量数据,并直接传入其他 API 中使用。该对象提供了多种选项,例如可将伤害吸收量限定为缺失生命值、加上 incoming healing 后的缺失生命值,或是最大生命值。以下是一个简单示例:

lua

local calculator =CreateUnitHealPredictionCalculator();

UnitGetDetailedHealPrediction(unit, unitDoingTheHealing, calculator);-- 调用后,calculator会更新为新数据

local incomingHeals, incomingHealsFromHealer, incomingHealsFromOthers, incomingHealsClamped = calculator:GetIncomingHeals();

myStatusBar:SetValue(incomingHealsFromHealer);

施法条

为StatusBar:SetTimerDuration新增了一个可选的方向参数,允许状态栏根据剩余时长而非已流逝时长计算填充进度(主要针对引导法术)。队伍击杀事件

新增了PARTY_KILL事件,当队伍成员击杀一个单位时会触发该事件,事件包含 2 个单位 GUID,分别是攻击者与目标。如果相关单位的身份是隐藏的,这两个 GUID 也会隐藏。目前仍在开发中的内容特定法术加入白名单

将大量法术加入冷却时间 / 光环隐藏机制的白名单:驭空术、公共冷却法术、漩涡武器、吞噬者恶魔猎手的资源法术、战斗复活法术。大家可以继续反馈认为应该加入白名单的法术,我们会逐一评估。移除旧时长 API

我们将移除多个不再需要的 API(位于C_UnitAuras、C_Spell与C_ActionBar中),因为现在已有时长对象可替代它们的功能。通用布尔值转颜色 API

新增 2 个 API(C_CurveUtil.EvaluateColorFromBoolean与C_CurveUtil.EvaluateColorValueFromBoolean),可将隐藏的布尔值转换为颜色。我们更推荐使用这种方式,而非新增SetStatusBarColorFromBoolean、SetColorTextureFromBoolean等 API。更多施法条相关内容

新增了一个施法条法术序列 ID,会随施法事件以及UnitCastingInfo/UnitChannelInfo API 返回。该序列 ID 仅会在 UI 中需要显示施法条的施法事件中返回,每次新法术施法时会递增,且不会隐藏。我们将移除插件正确显示敌方强化施法所需的部分数值的隐藏限制(包括阶段数量与每个阶段占施法时间的百分比)。我们将添加一种方式,把强化施法的最大停留时间纳入时长对象中。隐藏时间值格式化

新增了SecondsFormatter Lua 对象,允许插件将隐藏的时间值格式化为字符串。其他数值格式化方案也在开发中,其中包括施法时长差值的格式化方案(例如法术击退的时长差)。受限环境问题

部分被误从受限环境中移除的函数(strsplit、strjoin、strconcat)将被重新添加。重载 UI 与隐藏值

修复了 UI 重载后隐藏值变为非隐藏值的问题。