immortalbob/NerfusBuffus3
GitHub: immortalbob/NerfusBuffus3
「Asheron's Call」经典自我增益机器人的 Decal 3 / C# 现代重制版,提供跨时代法术选择与技能感知的自动化 Buff 循环。
Stars: 0 | Forks: 0
# Nerfus Buffus III
一个基于配置文件驱动的自我增益(Buff)机器人,适用于 **Asheron's Call**,作为 **Decal 3** 插件运行。
构建一个配置文件(装备焦点物品、施放一系列增益法术、为装备注入属性),运行 `/nbuff `,
它将在一个循环中施放整个列表——在实时状态窗口中跟踪已施放 / 剩余 / 失败 / 忙碌 / 法力(mana),
并提供暂停/恢复/中止功能,以及五种在循环中法力耗尽时的法力恢复策略。
Nerfus Buffus III 是原版 **Nerfus Buffus II**(Pascal Jolin / Nerf Soft,2001–2003)的 Decal 3 重制版。
其增益逻辑、循环运行器、角色独立选项、法力恢复模式和配置文件编辑器均忠实于原版;
法术层针对现代(零售版末期 / ACE)游戏进行了重构,因为这些版本重新编号了法术 ID,并改变了增益的叠加和施放方式。
与原版不同的是,**NB3 不需要配套的过滤器**——旧的 *Nerfus Filter*(用于从网络底层直接解析法术书、附魔、生命体征和物品栏)已被 Decal 3 托管的 `CharacterFilter` / `WorldFilter` API 完全取代。
## 要求
- 已安装 **Decal 3.0** 的 **Asheron's Call**。
- **VirindiViewService (VVS)** 用于实现窗口化 UI。如果 VVS 未运行,NB3 将回退到 Decal 内置的视图渲染器,但推荐使用 VVS。
- 从源码构建:需要 **.NET Framework 4.8 developer pack** 和当前的 .NET SDK。
## 安装
该插件在 Windows 上构建(net48 / x86 / ComVisible)。从此源码树中执行:
```
# 1. build(将两个 SDK 属性指向你的安装目录;VVS 不在 Decal 文件夹中)
.\build-windows.ps1 `
-DecalSdk "C:\Program Files (x86)\Decal 3.0" `
-VvsSdk "C:\Games\VirindiPlugins\VirindiViewService"
# 2. 在 ADMINISTRATOR 提示符下 register 已 build 的 DLL —— 使用 32 位的 RegAsm,切勿使用 Framework64
.\register-windows.ps1
```
然后通过 Decal 启动 AC,打开 **Manage Plugins**(管理插件),启用 **Nerfus Buffus III** 并登录。
登录时,它会打印一条加载横幅及其选择的 UI 后端;随后主窗口将会出现。
完整的分步指南(构建标志、RegAsm 陷阱、`register-NB3.reg` 替代方案)位于
[`BUILD_ON_WINDOWS.md`](BUILD_ON_WINDOWS.md) 中。
## 快速开始
```
/nbnew create a starter self-buff profile named 'default'
/nbset regen 1 (optional) pick a mana-regen mode — 1 = drink Trade Mana Elixirs
/nbuff default plan and run the cycle; watch the counters in the status window
```
无需使用编辑器即可上手——`/nbnew` 会生成一个包含经典自我增益(属性、生命系核心法术、防护)的现成配置文件,并自动解析为你的角色实际能够施放的法术。
当你想要自定义时,打开编辑器(`/nbed`)。
## 窗口
- **Main** (`NB3`) — 当前配置文件、状态、实时计数器(Spells / Left / Time / Fizzles / Busy / Mana / Casting),以及按钮:START、Pause、Resume、Abort、Editor、Options。
- **Editor** (`NB3 Editor`) — 选择或创建一个配置文件,然后从五个标签页(Creature/Life × Self/Other、Item)中添加增益,Equip(装备)物品,并 Include(包含)其他配置文件。配置文件中的每一行都可以删除/上移/下移。提供 New / Clear / Revert / Copy / Delete / Save 功能。
- **Options** (`NB3 Options`) — 每项角色独立设置(见下文),点击 **Save** 保存。
- **Spells** (`NB3 Spells`) — 正在运行的循环尚需执行任务的实时列表;在循环开始时打开,完成时关闭。
窗口中的所有功能同样可以通过聊天命令使用,因此即使 UI 无法在你的客户端上显示,机器人也能完全正常使用。
## 命令
```
/nbnew [name] create a starter self-buff profile (default: 'default')
/nbuff [,...] [force] load the profile(s) and buff
'force' recasts even buffs that are already active
/nbpause /nbresume /nbabort cycle control
/nbed open/close the Profile Editor
/nboptions open the Options window
/nbinclude add an Include to the profile being edited
/nbrefresh rescan the profile folder into every dropdown
/nbset [key value] show or set options from chat (see below)
/nbstatus print current/max Health/Stamina/Mana
/nbid print your target's GUID + its weapon/shield GUID
/nbcovers print the GUID and cover mask of everything you're wearing
/nbdiag UI backend, wireup health, window state, control resolution
/nbreset restore every NB3 window's position/size, unpin, un-hide
/nbdebug toggle instrumentation logging (cast timings, status ids)
/nbhelp list the commands
```
## 选项 (`/nbset`)
不带参数运行 `/nbset` 会显示当前值;`/nbset ` 用于设置一个值。所有选项均为角色独立设置,并在不同会话间保留。
```
regen 0-5 mana-regen mode:
0 none · 1 Trade Mana Elixirs · 2 Stamina Elixirs + S2M ·
3 Rest + S2M · 4 Healing Kits + H2M · 5 Revitalize + S2M
aggr Expected % of Spell Cost — buff only while mana >= this % of the next spell's cost
kits [p][t][e] which healing-kit tiers to use: p=Plentiful, t=Treated, e=Peerless (e.g. 'kits pt')
maxrec 1-7 max level for the recovery spells (H2M / S2M / Revitalize)
s2m7 0/1 use level-7 Stamina-to-Mana
h2m7 0/1 use level-7 Health-to-Mana
revit7 0/1 use level-7 Revitalize
fallback6 0/1 fall back to level 6 when a level-7 recovery spell is unknown
skillcap 0/1 cast the highest level your skill can LAND reliably, not just the highest you know
mincast minimum cast-success chance for the skill cap (default 90)
rebuffmins on a re-run, recast buffs with fewer than n minutes left (0 = skip all active buffs)
```
## 增益机制
- **跨时代通用的法术选择。** 配置文件存储的是增益的 *叠加类别*,而非法术 ID 或名称(因为 ID 已被重新编号,且 7 级/8 级法术的名称不规则)。在施放时,NB3 会向客户端的实时法术表查询你在该类别中已知的最强法术,因此配置文件可以跨服务器和补丁持续有效。详见 [`MODERN_SPELL_MODEL.md`](MODERN_SPELL_MODEL.md)。
- **基于技能的等级。** NB3 会施放你在当前魔法技能下能够 *可靠* 释放的最高等级,而不是你恰好知道的最高等级——因此它不会在你技能不足的情况下疯狂施放 8 级法术而导致施法失败(fizzle)。随着你的技能提升,它会自动升级法术。可通过 `/nbset skillcap` 和 `/nbset mincast` 进行调整。详见 [`SKILL_BASED_LEVEL.md`](SKILL_BASED_LEVEL.md)。
- **智能重新增益。** 重新运行时会跳过你身上已有的增益(以节省法力),因此在完整循环结束后立即运行 `/nbuff` 可能会报告无需操作——这是正常现象,并非配置文件丢失。使用 `/nbuff force` 可强制重新施放所有法术,或者使用 `/nbset rebuffmins `,这样定期重新运行时只会补充即将到期的增益。详见 [`REBUFF_BEHAVIOR.md`](REBUFF_BEHAVIOR.md)。
- **物品附魔。** 在现代服务器中,bane(防具增益)是作为套装整体自我施放的(盾牌会继承),而武器增益是自我施放的 aura,因此它们将作为普通的自我增益进行解析。编辑器的 Item 标签页依然支持对指定的物品名称 / GUID / 通过覆盖掩码选中的护甲进行直接施放。
## 配置文件与数据
配置文件和角色独立设置以 XML 文件的形式存储在 `%AppData%\NerfusBuffus3` 目录中(每个配置文件对应一个 XML 文件;设置则保存在 `config_.xml` 中)。你可以对它们进行备份或手动编辑;除非开启了“Permanently delete files in editor”(在编辑器中永久删除文件),否则从编辑器中删除的项目会被移至 `_deleted` 子文件夹。
## 故障排除
- **窗口丢失或空白?** 运行 `/nbdiag`——它会报告 UI 后端状态(VVS 还是 DecalInject 回退)、连线健康状况以及解析成功的控件。如果窗口因为 VVS 保存的状态(如被固定、开启点击穿透、被拖拽至只剩标题栏)而变得不可见,`/nbreset` 可以将其恢复。
- **`/nbuff` 提示无需施放?** 你已经拥有增益效果——请参阅上文的 *智能重新增益*。
- **增益经常施法失败(fizzle)?** 说明你的魔法技能对于该等级来说偏低;请保持开启 `skillcap`(默认),或者提高 `mincast`。执行 `/nbset skillcap 0` 会强制施放已知最高等级的法术并导致施法失败。
- **编辑器标签页为空或出现其他异常?** `/nbdebug` 会将施法时间和状态 ID 记录到 `%AppData%\NerfusBuffus3\nb3-debug.txt` 中;错误信息则会记录到 `nb3-errors.txt`。
## 项目结构
```
src/NB3.Core/ pure, testable buff logic — no Decal references (netstandard2.0)
src/NB3.Plugin/ the Decal 3 shell: PluginBase, the VVS views, /nb* commands (net48/x86/COM)
tests/ dependency-free offline test harness (122 cases)
tools/shimcheck/ offline type-check of the plugin glue against API shims
tools/viewlint/ static geometry/clipping lints for the view XML
```
更深入的文档:[`README_BUILD.md`](README_BUILD.md)(验证与构建细节)、
[`UI_WIRING.md`](UI_WIRING.md)、[`SKILL_BASED_LEVEL.md`](SKILL_BASED_LEVEL.md)、
[`REBUFF_BEHAVIOR.md`](REBUFF_BEHAVIOR.md)、[`COVER_MASK_RECOVERY.md`](COVER_MASK_RECOVERY.md)、
[`MODERN_SPELL_MODEL.md`](MODERN_SPELL_MODEL.md)、[`DECAL_API_REFERENCE.md`](DECAL_API_REFERENCE.md)。
## 致谢
原版 **Nerfus Buffus II** 由 **Pascal Jolin / Nerf Soft**(2001–2003)开发。Nerfus Buffus III 是其在 Decal 3 上的重制版。内置的 MetaViewWrappers UI 文件采用 MIT 许可证,© 2010 VirindiPlugins。
标签:Asheron's Call, Decal插件, .NET Framework, 数字取证, 游戏辅助, 自动化脚本