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, 数字取证, 游戏辅助, 自动化脚本