从安装到插件开发:Dalamud 三大场景带你走通 FFXIV 插件框架
从安装到插件开发:Dalamud 三大场景带你走通 FFXIV 插件框架
【免费下载链接】DalamudFFXIV plugin framework and API项目地址: https://gitcode.com/GitHub_Trending/da/Dalamud
开荒团本里,团长要在角色面板、团队列表、职业资源之间来回切,一抬头小怪就贴脸了。Dalamud 插件框架把 FFXIV 的内部数据、渲染与指令入口开放给 C# 插件,让自定义功能直接长在游戏里。本文按“能力、场景、机制、上手”四步,讲清它做了什么、怎么做到的。
能力速览
| 能力 | 说明 | 用户得到的价值 |
|---|---|---|
| 游戏数据读取 | IPlayerState、IClientState等服务暴露角色、队伍与职业资源状态 | 状态直接上屏,不用反复切原生面板 |
| 游戏内浮层 | 基于 ImGui 的 WindowSystem 窗口体系 | 面板、通知条可拖拽,叠在战斗画面上 |
| 聊天命令 | ConsoleManager支持注册斜杠命令 | 聊天框敲一条指令执行复合操作 |
| 插件间通信 | IPC call gate 提供远程调用与事件订阅 | 多插件分工协作,各自独立更新 |
实战场景
团本团长:全队状态收进一块面板
开荒时团长要同时盯队友血量、增益与职业资源,原生 FFXIV 得逐个窗口点开,视线频繁离开战斗画面。
做法是把IPlayerState、IClientState读到的全队数据汇总进一个 WindowSystem 浮层,挂在屏幕固定位置。
操作从“切面板再切回来”压缩到“抬眼扫一眼”,反应时间明显缩短。
采集玩家:一条命令替代一串操作
采集流程里“打开菜单—选动作—确认”的步骤反复出现,每轮都要翻找。
插件用IConsole注册一个斜杠命令,把这几个步骤合成一次调用,在聊天框直接触发。
单轮操作从十几次点击缩到一次输入,时间以秒计。
多工具用户:采集与展示分离
一套需求拆成两个插件:一个负责采数据,一个负责显示。
前者经 IPC call gate 推送事件,后者在浮层上呈现;两个插件独立打包、独立更新。
效果是从“改一处要重发整套”到“只更新出问题的半边”,互不拖累。
它是怎么工作的
把 Dalamud 类比成租公寓:搬进空房子前得先接通水电,住户平时只管用插座和家电,不需要懂管线走向。
对应到仓库,就是下面三层:
- 启动层在 Dalamud.Boot/:C++ 代码把 .NET 运行时装进游戏进程,支持 DLL 注入或改写进程入口点,游戏本体不改一行。
- 核心层在 Dalamud/:
PluginManager负责扫描插件目录、校验清单、管理安装与更新;数据服务封装了对内存的读取,插件按接口取数即可。 - 界面层在 Dalamud/Interface/:窗口、字体、渲染管线都备好了,插件拿到回调就能画面板。
快速上手:从克隆仓库到第一个插件
- 安装 XIVLauncher 并启用 Dalamud 选项。README 明确说明由它管理多项必需依赖,不建议手动运行。
- 进入游戏验证:界面出现 Dalamud 图标,说明注入成功;没有则检查游戏版本是否匹配。
- 克隆仓库到本地,按 README 指向的构建文档准备编译环境。
git clone https://gitcode.com/GitHub_Trending/da/Dalamud- 从 Dalamud.CorePlugin/ 读起:
PluginImpl.cs演示了窗口、命令与绘图回调的完整注册过程。注意它是试验性质的内部插件,新插件开发以官方样例工程为准。
上手前必读
- XIVLauncher 负责依赖管理与启动,手动注入容易缺组件。建议始终经启动器进入,出问题先排除启动器状态。
- 插件与游戏版本强绑定:钩子和签名扫描依赖游戏内存布局,游戏大更新后可能暂时加载失败,等框架跟进即可,无需自行改代码。
- 崩溃时有专门处理器:
DalamudCrashHandler会写内存转储并保留最近三份,排查时可提供给插件作者。 - 插件均为第三方代码。仓库内置封禁清单拦截已知问题插件,但选择时仍建议优先考虑知名度高的,出现异常行为及时停用。
生态与延伸
- 协议:AGPL-3.0 开源,代码可自由研读与修改,分发时需遵循相同协议。
- 社区:官方 Discord 提供答疑,配套独立的 API 文档站。
- 贡献政策:README 明确声明不接受由生成式 AI 撰写的贡献,也不要驱动自动化系统与本仓库交互,投稿前请先确认这条规则。
- 接口索引:Dalamud/Plugin/Services/ 目录下每个文件对应一个服务接口,想查某块能力先看这里。
两个具体的下一步:装好 XIVLauncher 进游戏,打开插件管理窗口装上第一个浮层插件;或克隆仓库,把Dalamud.CorePlugin跑通再逐行读PluginImpl.cs。
本文仅作项目介绍。Dalamud 为第三方框架,与游戏厂商无关联,使用是否合规请自行判断。
【免费下载链接】DalamudFFXIV plugin framework and API项目地址: https://gitcode.com/GitHub_Trending/da/Dalamud
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考