Dalamud 插件开发白皮书 P1 - Getting started

news/2024/10/17 14:20:45/

文章目录

    • 从哪里开始 How do I get started?
      • Dalamud 插件例子
      • Dalamud 底层探究
      • XIVLauncher 启动器
    • 在哪里寻找帮助 Where do I ask for help?
    • 如何热重载插件 How do I hot-reload my plugin?
    • 如何调试插件,甚至游戏?
    • 如何在编码过程中使用 How do I use FFXIVClientStructs in my own code?
    • 译者的结语

原文来自 https://goatcorp.github.io/faq/development#q-how-do-i-get-started
如果您有英语原文阅读习惯,推荐您直接阅读原文!

从哪里开始 How do I get started?

主要的 XIVLauncher 和 Dalamud 系统建立在 C# 上,因为这个语言高可用、遍历、稳定;
建议你做的许多事情也可以尝试移植到 C# 上,除非你做的工作需要通过 native code 来控制机器运行。

想要开始编写 Dalamud 插件,建议您使用 Visual Studio,当然 JetBrains 的 Rider 同样不错。

Dalamud 插件例子

插件允许你和游戏进行 交互、添加功能、修改功能
您需要尊重这条准则 https://goatcorp.github.io/faq/development#q-what-am-i-allowed-to-do-in-my-plugin
否则您的仓库将不被保证可以 进入主仓库,这样做的同时也规避了 Square Enix 对您插件的风险评估
这是不被推荐制作的插件 https://goatcorp.github.io/faq/development#q-why-do-you-discourage-certain-types-of-plugins

您需要先熟悉 Git / GitHub,建议选择一个模板 clone,然后根据你的想法进行修改、拓展!

  • https://github.com/goatcorp/SamplePlugin
  • https://github.com/karashiiro/DalamudPluginProjectTemplate
  • https://github.com/lmcintyre/PluginTemplate

当您需要将插件打包,可以手动编译,也可以通过 DalamudPackager:

  • https://github.com/goatcorp/DalamudPackager

当你的插件准备测试 / 发布时,提交 PR 到 Dalamud 插件主库。注意,请将测试插件仍然放在测试文件夹中!

  • https://github.com/goatcorp/DalamudPluginsD17

Dalamud 底层探究

Dalamud,国服称卫月框架,通过 XIVLauncher 加载入游戏,你可以在这几个链接获取更多 Dalamud 本体信息:

  • Dalamud 源码 https://github.com/goatcorp/Dalamud
  • Dalamud 资源 https://github.com/goatcorp/DalamudAssets
  • Dalamud API ★ https://goatcorp.github.io/Dalamud/api/index.html

XIVLauncher 启动器

感谢开源工作者!这玩意同样也是开源的,可以自动将 Dalamud 加载入游戏,十分方便(划掉

  • https://github.com/goatcorp/FFXIVQuickLauncher

在哪里寻找帮助 Where do I ask for help?

这是一条不可能显示出来的内容,请自行查看原网站!

译者:可以去找找汉化 / ACT插件开发交流群,部分群还是有插件开发讨论的

如何热重载插件 How do I hot-reload my plugin?

从 API 4 / Dalamud 6 版本开始,Dalamud 就支持热重载了,请:

  • 打开 Dalamud 设置 > 实验性 > 开发插件位置
  • 添加插件所在文件夹 或 插件本体 DLL
  • 如果添加的是文件夹,那么里面的所有 DLL 都会被尝试加载

在这里插入图片描述

如何调试插件,甚至游戏?

你需要把调试器附加到游戏,默认游戏是有反调试保护的。
在游戏中输入 /xldev 显示开发者界面,启用 AntiDebug 即可把你的调试器附加到游戏上。
要使得调试功能完整,请把 Attach to 设置为 both and,这会保证你的调试器对游戏和插件都可用!
这个功能只是为了支持调试插件,如果你做其他事情将不会获得任何支持。

在这里插入图片描述

如何在编码过程中使用 How do I use FFXIVClientStructs in my own code?

FFXIVClientStructs 同样是个开源项目,为 C# 和逆向工程师提供了游戏数据、类的接口。
.csproj 中添加如下

    <Reference Include="FFXIVClientStructs"><HintPath>$(AppData)\XIVLauncher\addon\Hooks\dev\FFXIVClientStructs.dll</HintPath></Reference>

或者右键点击 VS 中的项目,点击 “添加”,然后把程序集引用到这个路径。

这里粗略翻译一下意思,等我尝试以后再重新翻译一遍,或者麻烦各位可以在评论区留言~

译者的结语

这是 Dalamud 插件开发白皮书的第一章,后面还有关于更多更新、限制、开发指南、逆向工程的知识,请关注支持原文作者,谢谢~


http://www.ppmy.cn/news/411587.html

相关文章

MidJourney使用教程:二 初识Prompts

最近AIGC这么火&#xff0c;除了chatGPT以外&#xff0c;这种图像类的产品也是非常有意思&#xff0c;其中就有MidJourney和Stable Diffusion这俩个比较出圈。这里我先选择MidJourney来体验并整理出一个教程。一方面MidJourney最简单&#xff0c;能当路Discord&#xff0c;注册…

【瑞萨RA_FSP】DAC —— 输出正弦波

文章目录 一、DAC简介二、DAC的结构框图1. 参考电压2. 触发源3. DAC数据寄存器4. 转换的过程5. 同步转换 三、生成正弦波数据表四、DAC程序设计1. 硬件设计2. 软件设计①文件结构②FSP配置③DAC初始化函数④设置DAC输出电压函数⑤DAC输出正弦波⑥ hal_entry入口函数 一、DAC简介…

【2023】华为OD机试真题Java CC++ Python JS Go-题目0247-恢复数字序列

题目0247-恢复数字序列 题目描述 对于一个连续正整数组成的序列,可以将其拼接成一个字符串,再将字符串里的部分字符打乱顺序。如序列8 9 10 11 12,拼接成的字符串为89101112,打乱一部分字符后得到90811211。注意打乱后原来的正整数可能被拆开,比如在90811211中,原来的正…

stable diffusion webui 安装部署(linux系统)

文中部署stable diffusion webui所使用的机器是腾讯云服务器linux系统&#xff0c;centos7 一 环境准备 在这里使用anaconda安装&#xff0c;优势就是可以方便地安装和管理软件包&#xff0c;同一系统上可以同时使用不同版本的 Python 和第三方软件包。如果你需要安装多个系统…

android ios 传视频播放器,推荐用于iOS / Android全面格式的视频播放器|手机最强大的播放器...

几天前&#xff0c;一个朋友以ts格式下载了一些高清电视剧&#xff0c;但是无法在iPad上播放&#xff0c;因此我想在计算机上将其转换为MP4格式. 花了时间和精力&#xff0c;结果并不令人满意. 事实上手机上的万能播放器&#xff0c;所有平台现在都具有支持完整格式的播放器. 播…

7款很棒的 HTML5 视频播放器

作为下一代的网页语言&#xff0c;HTML5 拥有很多让人期待已久的新特性&#xff0c;其中之一就是 video 标签&#xff0c;让开发者可以在网页中和添加图片一样简单的方式添加视频。在这篇文章中&#xff0c;我收集了7个很棒的HTML5视频播放器&#xff0c;你可以很容易的应用到你…

联想pc服务器芯片,联想推出配备64核AMD Epyc芯片的两处理器服务器

联想今天将推出两插槽的ThinkSystem服务器&#xff0c;这些服务器具有每个具有64个内核的Advanced Micro Devices Epyc处理器。ThinkSystem SR645和SR665两路服务器平台每个系统具有128个中央处理器(CPU)内核&#xff0c;而AMD Epyc Zen 2处理器每个都有64个内核。这些芯片代表…

AMD真坑,centos7在amd6上图形化(失败经验,供参考)

centos图形化界面 linux图形化界面 我以下命令&#xff0c;来回执行了N遍&#xff0c;最后发现amd6 无法识别&#xff0c;然后去amd官网找了补丁 microcode: failed to load file amd-ucode/microcode_amd. #先安装X窗口系统。&#xff08;如果发现报错&#xff0c;找不到X之…