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

文章目录

    • 从哪里开始 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 都会被尝试加载

Dalamud 插件开发白皮书 P1 - Getting started_第1张图片

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

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

Dalamud 插件开发白皮书 P1 - Getting started_第2张图片

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

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

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

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

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

译者的结语

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

你可能感兴趣的:(插件开发,开发语言,网络安全)