news 2026/10/30 2:20:00

5 分钟看懂 Dalamud:FFXIV 插件框架 3 步装好

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
5 分钟看懂 Dalamud:FFXIV 插件框架 3 步装好

5 分钟看懂 Dalamud:FFXIV 插件框架 3 步装好

【免费下载链接】DalamudFFXIV plugin framework and API项目地址: https://gitcode.com/GitHub_Trending/da/Dalamud

FFXIV 的原生界面里,角色面板、队伍框、小地图的位置和大小都是锁死的,你想把"队友血线、自身冷却、交易行行情"放在一块屏幕上,只能自己拉窗口挤位置。FFXIV 插件框架 Dalamud 解决的就是这类问题:它把游戏内部数据暴露给 C# 插件,让你在游戏里画自己的浮层、注册自己的命令。读完这篇,你会知道 Dalamud 能做什么、它怎么跑起来、以及怎么装好第一个插件。

如果你只想记住三件事 🧩

Dalamud 的定位一句话:跑在 FFXIV 进程里的插件开发框架,提供游戏数据读取和原生互操作。

  • 游戏数据读取:IPlayerState、IClientState等接口直接读玩家状态、队伍、职业资源,不用手动切界面
  • 游戏内自定义界面:基于 ImGui,WindowSystem窗口体系支持拖拽、置顶、保存窗口位置
  • 聊天框斜杠命令:IConsole让插件注册命令,在聊天框里直接执行复合操作

数据、界面、命令这三块拼起来,就是 FFXIV 插件生态里大部分工具的底座。下面看三类玩家各取所需。

三类玩家,各取所需

开荒团团长。团本里要同时盯队友血线、增益和职业资源,原生界面只能逐个点开角色面板。用IClientState、IPlayerState读数据,把全队信息收进一块浮层面板,一眼扫完,视线不用离开战斗画面。

日常玩家。宏、查价、整理仓库这类操作要翻多级菜单。通过IConsole注册一条斜杠命令后,在聊天框敲一行字就执行完多步操作。

插件组合用户。一个插件负责采集数据,另一个负责展示。前者通过 IPC call gate 推送事件、暴露远程调用,后者订阅并在浮层上呈现,两个插件各自独立更新、互不拖累。

它是怎么跑起来的

知道了它能在游戏里做什么,下面看一条从"点启动"到"窗口出现在屏幕上"的链路,一共三步。

  1. C++ 组件Dalamud.Boot先把 .NET 运行时加载进游戏进程(或改写进程入口点完成同样目的),让 C# 代码得以在游戏里运行。
  2. C# 核心层的PluginManager扫描插件目录、校验清单,把每个插件的 C# 程序集加载进内存,并注入服务接口;插件从接口拿游戏状态数据,在自己的渲染回调里画窗口。
  3. 单个插件崩溃时由PluginErrorHandler兜底,不会直接拖垮游戏进程。

具体分工在 README.md 的 Components & Pipeline 表格里列了 5 个组件;想读注入层源码可以从 Dalamud.Boot/ 开始。

从 0 到第一个插件,4 步 📌

  1. 到 XIVLauncher 官方页下载安装,启用 Dalamud 选项——它统一管理多项必需依赖,README 明确不建议手动运行。验证点:启动器里能看到 Dalamud 的加载状态。
  2. 进入游戏,看到 Dalamud 图标。验证点:图标出现说明注入成功;没有则先检查启动器日志。
  3. 打开插件管理窗口,搜索内置仓库,一键安装任意插件。验证点:装完能在游戏里打开它的窗口。
  4. 想开发就克隆仓库,再按官方构建文档搭建环境:
git clone https://gitcode.com/GitHub_Trending/da/Dalamud

验证点:Dalamud.CorePlugin/ 的PluginImpl.cs能跑通——它演示了建窗口、注册/coreplug命令、卸载时注销事件的全流程。

装完之后的几件事,建议先想清楚。

用之前先想清楚

  • 这是第三方框架,README 明确声明与 SQUARE ENIX 无任何关联,使用是否触犯服务条款要自己判断。
  • 插件同样是第三方代码,质量参差不齐;框架有插件清单校验和封禁清单,但优先选知名插件更稳妥。
  • 游戏大版本更新后,钩子和签名扫描依赖的内存布局可能变化,插件可能加载失败,需要等框架适配,这不是你的配置问题。
  • 崩溃时DalamudCrashHandler会记录转储文件,排查问题或向社区求助时,这份转储是关键证据。

进阶入口与社区

项目以 AGPL-3.0 协议开源,官方 Discord 社区负责答疑。想深入代码,三个入口够用:

  • Dalamud/Plugin/Services/:40 多个接口文件,一个文件一个服务,想读什么游戏数据先来这里找接口
  • Dalamud/Plugin/Ipc/:插件间 call gate 通信的实现
  • Dalamud.Boot/:C++ 注入层,看框架是怎么进游戏进程的

下一步很具体:打开 XIVLauncher 装上第一个浮层插件,感受数据直接铺在战斗画面上的效果;或者克隆仓库,把 CorePlugin 通读一遍。

本文仅作项目介绍,第三方插件的使用可能受游戏服务条款约束,请自行判断。

【免费下载链接】DalamudFFXIV plugin framework and API项目地址: https://gitcode.com/GitHub_Trending/da/Dalamud

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/30 2:18:45

Python后端部署排障10:端口能连,为什么HTTPS仍然拒绝连接

Python后端部署排障10:端口能连,为什么HTTPS仍然拒绝连接 一次curl失败可能发生在HTTP之前。TCP握手成功只能说明网络可达,TLS还要协商加密参数、验证对方身份并建立可信连接。很多初学者遇到证书错误就加-k,得到200后认为问题解…

作者头像 李华
网站建设 2026/10/30 2:16:09

【计算几何】clipper库之扫描线、活动边、输出区域

本文涉及知识点 数学 几何 裁剪算法 Sutherland-Hodgman (1974):这是最经典的算法之一。它的核心限制是裁剪多边形必须是凸多边形,因此它非常适合矩形窗口裁剪这类简单场景。 Weiler-Atherton (1977):这是第一个能够处理任意多边形&#x…

作者头像 李华
网站建设 2026/10/30 2:11:07

Ruffle 桌面版:3 分钟打开 SWF 文件完整指南

Ruffle 桌面版:3 分钟打开 SWF 文件完整指南 【免费下载链接】ruffle A Flash Player emulator written in Rust 项目地址: https://gitcode.com/GitHub_Trending/ru/ruffle 从双击 Ruffle 到第一帧画面出现,通常 30 秒就够。它是一个用 Rust 写成…

作者头像 李华
网站建设 2026/10/30 2:10:26

【技术思考】Token经济下的通信技术发展(二)

继续前面的思考,继续聊聊关于沉浸式通信的技术的可能发展。 Q:针对沉浸式通信,业界有提出“网业端协同业务体验增强技术,实现端边云协同渲染计算,提升沉浸式体验”,请解读一下这个技术方向的具体研究内容&#xff0c…

作者头像 李华