【重磅】JSUI 无限服 移植版

【重磅】JSUI 无限服 移植版

【非官方移植】基于paopao01的JSUI 1.62版本利用AI改造[致敬paopao01!],适配无限服!同时增加的好几个重要功能!还有一些无限服的常用插件放进去了,方便大家练级!核心插件是未知插件里的JSUIForever。有兴趣的可以下载研究。

JSUI 无限版 v0.10 · 改动详情


本插件是把正式服(Interface 120105)的 JSUI 1.62(作者 Paopao001)整套移植到魔兽世界无限服(Camelot 1.60.1.70862 / Interface 16001)的版本。


这不是换皮。全套 393 个 lua 文件(约 12.8 万行,其中自有代码 337 个文件 / 约 10.6 万行)逐处对照本服 API 改过来:能用的全部保留,本服没有的系统删掉,缺失的能力自己做替代方案,最后把跑不通的地方一个个修好。



■ 一、版本信息


· 插件名:JSUI 无限版

· 文件夹名:JSUIForever(不能改名。改名会让插件元数据和 32 处贴图路径同时失效)

· 版本号:0.10(首发)

· 接口版本:16001

· 适用客户端:无限服 1.60.1.70862,正式服不可用

· 安装:解压后把 JSUIForever 整个文件夹放进 Interface\AddOns,完全重启客户端,游戏内输入 /jsui 打开设置



■ 二、为什么原版 JSUI 直接装会崩


本服的 API 看起来是现代化的一整套(C_AddOns、Settings、EditMode、C_TooltipInfo 都在),底层却是经典版模型。差异集中在这几处:


· 职业只有 9 个,classID 是 1–5、7–9、11(德鲁伊是 11,没有死亡骑士)。原版按 1 到 GetNumClasses() 遍历,遇到空洞全填 nil,职业表、颜色、专精跟着一起错

· 专精接口不同:GetSpecializationInfoByID 返回 nil,实际要用 C_SpecializationInfo.GetSpecializationInfo(index)

· 聊天消息过滤器只能改 msg。改 channelString 或 channelName,整条消息会被直接丢弃

· 地下城手册、预创建队伍、PVP 界面这三个暴雪插件,LoadAddOn 返回 WRONG_GAME_TYPE,永远装不上,相关的全局函数全是 nil

· 没有制造订单、战团银行、大秘境、每周宝库、世界任务、房屋、驭龙术

· 微型菜单是经典版 12 个(含"传承"入口),没有 PlayerSpells / Achievement / Housing / EJ

· 项目号 WOW_PROJECT_ID = 18,多个第三方库的"仅正式服"守卫会把功能直接关掉



■ 三、适配与兼容(让原有功能在本服活下来)


1. 职业与专精

· 职业表改成按 13 个 id 逐格扫描、跳过空洞,再重建职业列表与顺序表

· 职业取色对不存在的职业加兜底(白色 / ffffff),不再索引 nil

· 专精下拉改用 C_SpecializationInfo 的接口,按职业实际专精数遍历并跳过无名条目


2. 库与事件

· LibNickname / LibKeystone 的"仅正式服"判断放开到本服项目号,组队信息恢复正常

· LibRangeCheck 注册不存在的事件(LEARNED_SPELL_IN_TAB)前先校验事件是否合法

· 某个编辑模式枚举在本服是 nil 却被当成表键使用,会让整个文件中断、后续函数全变 nil,已删掉该行

· 新增统一的 hook 保护函数:目标不是函数时静默跳过,避免"xxx is not a function"刷屏

· oUF 样式改无条件注册,否则单位框架报 "No styles have been registered"


3. 缺失界面的兜底

· 地下城手册:新增可用性判断和打开函数,手册按钮项删除,声望模块右键退回声望面板

· 预创建队伍、PVP 面板:各新增一个替代打开函数,信息栏里 6 个"副本入口"模块恢复可点

· 制造订单:不再联动,邮件模块里相关代码整块去掉

· 聊天钩子:原版挂的入口本服没有,改为包装每个聊天窗口的 AddMessage


4. 其他适配

· 拍卖行:本服结构与正式服相近但没有对应全局名,改为逐层取并每层判空

· 货币条:只排本服真实存在的货币,默认只勾选荣誉点数

· 顶部信息条容器被压成 1x1:改为左上/右下对角锚定

· 字体:优先字体族,取不到时退回普通 SetFont

· 商人购买:加 pcall 保护,失败只提示一次(实测本服并不拦)



■ 四、删掉的内容


1. 两个大模块整体移除

· 团队框架:raid20/30/40 与团队宠物、团队框架设置页、点击施法入口、移动锚点全部不再生成。小队框架同样不再生成,raid 与 party 请用暴雪自带

· 姓名板:23 个文件整体归档(核心、光环、施法条、执行标记、预览、样式),姓名板设置页一并去掉


2. 按"本服没有这个系统"移除的 13 类

· 驭龙术监控

· 房屋住宅

· 大秘境(面板增强、钥石信息、计时器、钥石框)

· 每周宝库奖励

· 世界任务(列表、地图、接口、模板)

· 专业专注值与知识追赶

· 天赋配置管理(本服天赋界面装不上,配置串无意义)

· 坐骑幻化

· 对话特写抑制

· 拍卖行搜索增强

· 预创建队伍搜索筛选

· 超级追踪

· 物品升级的选项入口(只删入口,底层是共享取色工具,必须保留)


3. 追加删除

· 自动存取金币:本服没有战团银行,没有可存取的地方

· 邮件模块里的制造订单部分


所有被删代码都整块归档在开发目录里,需要时可以原样搬回。



■ 五、新增与重做(这个版本看得见的差别)


1. 小地图美化

· 地图名底下的黑色底板去掉,只留描边文字

· 追踪按钮从小地图正下方改到右下角

· 月相(昼夜)图标精确锚到小地图右上拐角,编辑模式移动或缩放小地图时会跟着走


2. 微型菜单纯图标化(来回改了三轮)

· 无边框、无底衬、无悬停常亮,只剩图标悬浮

· 角色按钮用真实头像

· 编辑模式那圈青色选择框保留,并调整为正好包住整排 12 个按钮(原来只有两个按钮被美化过,其余被固定名单逻辑跳过;按钮之间那条常亮的青色亮线也一并清掉)


3. 聊天频道名精简

· 「2. 大脚世界频道 4」显示为「2.世界」,「3. 综合 - 提瑞斯法林地」显示为「3.综合」

· 频道链接保留,点前缀照样能切频道

· 改名在消息进入渲染缓冲之前完成,不会出现"先显示全名、再变短"的跳动


4. 好友界面紧凑化

· 每行改为两行式:状态图标 + 战网名 + 职业染色的角色名;下面一行是「等级 · 区域 · 备注」

· 右侧有职业/游戏小图标、鼠标悬停出现的邀请按钮、收藏星标

· 左侧淡淡的阵营渐隐底色(联盟蓝、部落红)

· 搜索、筛选、右键菜单(密语/邀请/备注/删除)、收藏、提示全部沿用暴雪原生逻辑,一律没动

· 「最近战友」页同样处理


5. 原生窗口位置记忆

· 勾选后,角色、商人、大地图、背包、联系人(O)、拍卖行等窗口拖到哪,下次就在哪

· 重新打开时直接出现在目标位置,不再先闪一下默认位置

· 战斗中自动跳过,避免受保护框体被拒


6. 信息栏金币显示修正

· 本服金额通常只有几百铜,原版换算后永远显示"0 金"

· 现在显示为「金币图标 金 银币图标 银 背包图标 空格数」,金币为 0 时只显示银

· 鼠标提示里删掉了战团银行那一行


7. 邮件提醒重写

· 去掉了制造订单逻辑,只做邮件

· 左键 = 账号藏品(原 SHIFT+P)

· 右键 = 传承(原 Y);未满 25 级服务端不弹面板,但不会报错

· 鼠标提示不管有没有邮件都写明这两个操作,有邮件时中间多一行寄件人


8. 光环指示器导出

· 导出内容直接弹到可复制的窗口并自动全选,不再受聊天通道限制


9. 设置页大片空白修复

· 说明文字原来一律按 120 像素高度占位,而文字实际只有 20–33 像素,多出来的就是那片空白

· 改为按文字实际高度排版。全插件所有说明项一起修好,多行说明仍留足空间


10. 角色面板穿脱装备按钮归位

· 本服角色面板是自绘结构,原锚点退化到画布底部,按钮跑到屏幕最下面

· 现在脱装贴主手槽左侧、穿装贴副手槽右侧,取不到槽位时退回面板底部



■ 六、修掉的问题(现象 → 原因)


1. 登录报 hooksecurefunc(): UpdatePosition is not a function → 本服没有这个方法,改为存在性判断加显示时重排

2. 拍卖行增强报错 → 依赖的模块已归档,改为自建环境变量并逐层判空

3. 职业颜色报索引 nil → 本服只有 9 个职业,取色加兜底

4. 专精下拉拼接 nil 报错 → 换成 C_SpecializationInfo 接口

5. 光环白名单取不到团队框体名 → 团队框架已删,退回标签名并加保护

6. 多处 hook 目标不是函数 → 统一走保护函数

7. 频道名"先全名再变短"的跳动 → 改为在消息入缓冲前改名

8. 好友界面(O)完全拖不动 → 该窗口打开时没有锚点,拖动前先补一个

9. 窗口位置记不住 → 拖动后取锚点信息时相对框体为空,整条存档静默失效,已补齐

10. 好友列表部落底色是绿的 → 色值写错,改为红色并加深

11. 微型菜单只美化了前两个按钮 → 固定名单在本服对不上,改为运行时按顺序收集

12. 编辑模式青框偏小、偏移 → 锚错对象且缩放不一致(0.64 与 0.544),已按缩放比校正

13. 设置页说明下方大片空白 → 见第五部分第 9 条

14. 拾取专精提醒报 nil → 手册函数缺失,加判空

15. 自动购买可能被拦 → 加 pcall 保护,实测本服并不拦



■ 七、代码质量收尾


· 全量核对 687 个公共函数定义与 612 处调用,断链只有 2 处,其中 1 处补了实现、1 处是注释里的误报

· 清理 6 处全局变量泄漏,避免和其它插件互相打架

· 简中词条 2129 条,补齐缺失键并同步英文

· 15 个设置页逐个渲染、搜索过滤各跑一遍;宏界面、物品提示、交易与拾取记录、角色面板、复制框、信息栏 28 个模块、微菜单、频道精简、好友面板、窗口记忆、邮件左右键、光环导出逐个实测,运行日志零报错



■ 八、已知限制


· 不含团队框架与姓名板,请用暴雪自带

· 地下城手册界面在本服装不上,相关按钮已隐藏

· 传承功能需要角色达到 25 级

· 大秘境、制造订单、战团银行、坐骑幻化、世界任务等本服没有的系统已移除

· 登录时可能看到一条 "已存在的全局名" 提示,那是 oUF 库的正常行为,不影响使用

· 首次安装或更新后需要完全重启客户端,toc 里的标题与图标才会刷新

· 拍卖行增强只做了容错兜底,未做完整实测



■ 九、署名


本插件基于 Paopao001 的 JSUI 1.62(正式服版)移植适配无限服,非官方版本,原版版权归原作者所有。移植过程中删除或改动的代码均以"本服有没有这个系统"为判断依据,未改动原作者的收费与署名信息。


使用时如遇到报错,请附上 /jsui 版本号、报错原文和触发场景,方便定位。