ejouanchicot/ffxi-macro-editor

GitHub: ejouanchicot/ffxi-macro-editor

一款现代化宏编辑器,以文本编辑器般的体验集中管理《最终幻想11》的全部宏,与游戏原生二进制格式逐字节兼容并支持热编辑。

Stars: 0 | Forks: 0

# FFXI Macro 编辑器 **English** · [Français](README.fr.md) 你的 800 个 macro,集中在一个屏幕上。像使用文本编辑器一样编辑它们,而不是像在菜单里那样。 **[下载 Windows 版 →](https://github.com/ejouanchicot/ffxi-macro-editor/releases/latest)** 单个文件,27 MB,无需安装。 ## 用途 Final Fantasy XI 为你提供了 40 个 book × 10 个 set × 20 个 macro。在游戏中,你需要通过菜单来访问它们, 一次显示六行,一次只能编辑一个 macro。配置一个新 job 需要耗费一整晚的时间。要在一个 完整的 book 中重命名一个 spell 则更麻烦。 本工具会将所有这些内容在一个窗口中打开:在左侧选择一个 book,该 set 中的 20 个 macro 会完全按照 游戏中的 `Ctrl` 和 `Alt` 行排列,点击任意一个,它就会在包含其六行内容的编辑器中打开。输入,保存,搞定。 ## 功能特点 **以纯文本形式编辑 Auto-translate 短语。** 在原始文件中,`Provoke` 是六个字节的二进制数据。在这里它 显示为 `«Provoke»`,按 `Ctrl+Space` 会打开搜索:输入 `mighty`,点击 `Mighty Strikes`,它就会 出现在你的光标处。游戏会以它通常的括号格式来渲染,具体语言取决于客户端运行的语言。无需 其他工具——这些名称都是直接从你自己的 FFXI 安装目录中读取的。 **边玩边编辑。** 游戏仅会加载当前屏幕上显示的 book。其他每个 book 都会在你切换到它的那一刻从磁盘读取, 因此你可以在游戏过程中重写它们,只要你切换 book 或更改 job,修改就会立即生效。无需重启,无需重新登录。 **一次性搜索所有内容。** 一个搜索框,搜遍本机上每个角色的所有 book:包括命令行、 macro 名称、book 标题。每个搜索结果都会显示确切位置,点击即可跳转。在某个 addon 重命名了命令的那一天,你会发现这个功能物超所值。 **自由移动内容。** 将一个 macro 拖拽到另一个上即可交换它们,按住 `Ctrl` 拖拽即可复制。将一整个 book 拖拽到另一个上可以连同它的十个 set 和标题一起移动——甚至支持跨角色移动。复制 book 时会先弹出确认提示, 因为它会覆盖十个文件。 **导出 set** 为纯文本或 JSON 格式:将其纳入版本控制,发送给朋友,然后再导 入回来。它可以实现精确的双向转换,甚至保留了其中的空隙和末尾的空格。 **修复损坏的内容。** 一个在某个时刻丢失了前导 `/` 的 macro 在游戏中不会起作用,但 在菜单中看起来依然正常。本编辑器能找到这些 macro 并把斜杠补回来。 ## 新手入门 1. [下载 `FfxiMacroEditor.exe`]((https://github.com/ejouanchicot/ffxi-macro-editor/releases/latest) 并运行它。它是完全独立的——无需 .NET,无需额外运行时,也无需安装程序。 2. Windows 会提示 **“Windows protected your PC”**,因为该文件没有进行代码签名。 *More info → Run anyway.* 发布页面提供了 SHA-256 校验码,方便你检查下载的文件。 3. 它会自动查找你的 `USER` 文件夹,同时兼容 PlayOnline 和 Steam 安装版。如果它猜错了, 左下角的 **USER folder…** 可以手动设置,并且设置会被记住。 快捷键:`Ctrl+S` 保存,`Ctrl+Shift+S` 全部保存,`F5` 将 set 恢复为磁盘上的原始状态, `Ctrl+PageUp` / `Ctrl+PageDown` 切换查看各个 set,`Ctrl+Space` 呼出短语。 界面语言支持 **English 或 French** —— 点击顶部的 `EN` / `FR` 按钮即可切换,无需重启。 ## 关于你的文件 你的 macro 记录了许多个夜晚的心血,因此: - **在每次会话的首次写入之前,每个 set 都会被复制**,保存到 `%APPDATA%\FfxiMacroEditor\Backups\` 中。在没有保留备份的情况下,绝不会覆盖任何文件。 - **它写回的内容与游戏写入的完全一致**,逐字节相同。任何它无法理解的内容都会 原封不动地保留,而不是被丢弃。这个保证在每次构建时都会通过 493 个真实文件进行复核, 这也是本项目存在的意义。 - **没有任何数据会离开你的电脑。** 没有账号,没有遥测,不联网。它只会在 你自己的 FFXI 文件夹中读写文件,仅此而已。 - 唯一需要注意的是:**如果你进行保存,游戏中当前打开的 book 将会被客户端覆盖**。 当某个角色处于登录状态时,编辑器会显示一个横幅提示,并标明是哪个角色。而其他的所有 book 都可以由你自由编辑。 ## 好奇必读 macro 的文件格式在任何地方都没有官方文档,因此它是通过分析真实文件推导出来的,并已记录在案: [观察到的二进制格式](docs/FORMAT.md) —— 包含 24 字节的 header,每个 macro 占用的 380 字节空间, auto-translate 短语在一行中是如何存储的,以及如何从游戏自身的数据表中提取它们的名称。 使用 C# 和 [Avalonia](https://avaloniaui.net/) 构建。用于读写文件的库 不依赖于 UI,可以完全独立运行;此外还提供了一个命令行工具。 ``` dotnet build FfxiMacroEditor.sln dotnet test FfxiMacroEditor.sln # 337 tests ``` ## 许可证 [MIT](LICENSE)。 文档和测试示例中使用的角色名称和文件夹 ID(`Kaelith`, `Sylvane`, `a1b2c3d`)均为占位符。 本项目不附属于 Square Enix,也未获得其认可。它仅在你自己的电脑上, 对合法安装的游戏副本的 macro 文件进行读写。不会重新分发任何游戏数据: auto-translate 名称是在运行时直接从你已有的安装中读取的。
标签:Avalonia, .NET 8, 宏编辑器, 最终幻想XI, 桌面应用, 游戏工具