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

news2024/10/7 20:29:56

文章目录

    • 从哪里开始 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.coloradmin.cn/o/651828.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

国内几款强大的语言模型

写在前面 Hello大家好&#xff0c; 我是【麟-小白】&#xff0c;一位软件工程专业的学生&#xff0c;喜好计算机知识。希望大家能够一起学习进步呀&#xff01;本人是一名在读大学生&#xff0c;专业水平有限&#xff0c;如发现错误或不足之处&#xff0c;请多多指正&#xff0…

STC15WProteus仿真红绿灯直行左右转紧急模式STC15W4K32S4-0041

STC15WProteus仿真红绿灯直行左右转紧急模式STC15W4K32S4-0041 Proteus仿真小实验&#xff1a; STC15WProteus仿真红绿灯直行左右转紧急模式STC15W4K32S4-0041 功能&#xff1a; 硬件组成&#xff1a;STC15W4K32S4单片机 2位数码管5个LED灯&#xff08;红 黄 ←绿 ↑绿 →绿…

《网络基础之socket理解》

【一】socket是什么 从字面上的意思来理解&#xff0c;这玩意的中文含义叫插座&#xff0c;对你想的没错&#xff0c;就是你家用来插电器的插座&#xff0c;只不过你家的插座是用来导电的&#xff0c;而网络里面的socket是用来传导信息的。 【二】网络socket传送数据流程 我们…

基于阻尼绕组起动同步电动机matlab完整程序分享

主要包含输出转速,感应转矩,磁场变化,感应电压,感应电流等6个参数变化曲线图!! 完整程序如下: clc; clear; close all; warning off; addpath(genpath(pwd)); %電機參數設定 r_stat_in=15;%stator內圈半徑 r_stat_out=17;%stator外圈半徑 width_rot=2;%rotor細部寬度 leng…

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

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

多用户商城软件有哪些开发方式?-加速度jsudo

电商时代之下&#xff0c;企业商家纷纷开始了b2b2c商城系统的搭建&#xff0c;以此来抢占电商市场&#xff0c;但由于大多企业商家并没有专业化的开发团队&#xff0c;所以大多会选择将网站建设外包给专业的商城系统开发公司&#xff0c;但就目前而言&#xff0c;b2b2c商城系统…

改进YOLOv8 | 损失函数篇 | YOLOv8 更换损失函数之 SIoU / EIoU / WIoU / Focal_xIoU 最全汇总版

文章目录 更换方式CIoUDIoUEIoUGIoUSIoUWIoUFocal_CIoUFocal_DIoUFocal_EIoUFocal_GIoUFocal_SIoU提示更换方式 第一步:将ultralytics/yolo/utils/metrics.py文件中的bbox_iou替换为如下的代码:class

基于微信小程序的云音乐管理系统+第三稿+文档

博主介绍&#xff1a;✌在职Java研发工程师、专注于程序设计、源码分享、技术交流、专注于Java技术领域和毕业设计✌ 项目名称 基于微信小程序的云音乐管理系统第三稿文档 视频演示 基于微信小程序的云音乐管理系统第三稿问题解答任务书开题报告查重报告安装视频讲解视频&#…

【计算机网络】第三章传输层-电子科技大学2023期末考试

第三章 传输层 传输层服务与协议 传输层为两个不同主机上的应用程序之间提供逻辑通信机制 传输层协议运行在端系统 发送方: 将应用程序报文分成数据段传递给网络层,接受方: 将数据段重新组装成报文传递到应用层 网络层为两个主机之间提供逻辑通信 主要提供两种协议TCP和U…

RTC

文章目录 前言驱动应用程序运行 前言 RTC&#xff08;Real Time Clock&#xff0c;实时时钟&#xff09;是个常用的外设&#xff0c;通过 RTC 我们可以知道日期和时间信息&#xff0c;因此在需要记录时间的场合就需要实时时钟。 可以使用专用的实时时钟芯片来完成此功能&#…

PostgreSQL如何创建临时表?

分类 PostgreSQL支持两种临时表&#xff1a; 会话级临时表&#xff1a;数据可以一直保存在整个会话的生命周期中事务级临时表&#xff1a;数据只存在于这个事务的生命周期中 在PostgreSQL中&#xff0c;不管是事务级的临时表还是会话级的临时表&#xff0c;当会话结束时都会…

家庭版Windows10/Windows11不支持远程桌面的解决办法

家庭版Windows10或11是不支持远程桌面的。我们可以在电脑的“设置”-> “远程桌面设置”中查看系统是否支持远程桌面&#xff1a;我们可以通过RDPWrap这个项目让家庭版也支持远程桌面。 百度网盘下载 首先在下面网址下载该项目&#xff0c;下载zip&#xff1a;https://gith…

【wifi使用指导】wifi模块怎么用?无线路由wifi模块SKW92A/SKW77网页配置说明

据悉&#xff0c;在全球范围内&#xff0c;WiFi承载了超过一半的数据流量&#xff0c;并且65%-90%的智能手机流量来自WiFi。无线覆盖的实现依赖于WiFi模块提供的WiFi信号&#xff0c;支持AP/Client&#xff0c;Bridge&#xff0c;Gateway&#xff0c;Router&#xff0c;3G/4G R…

U-Mail企业邮件服务器搭建方案

数字化办公的日渐推行&#xff0c;使企业对邮箱的依赖与日俱增&#xff0c;正式工作报告&#xff0c;部门之间的事物往来、通知等等都需要使用到企业邮箱。随着企业对数字化建设的不断深入&#xff0c;企业对企业邮箱的要求也越来越高&#xff0c;比如对第三方应用集成及协同办…

【C++】STL之string类(1)

个人主页&#xff1a;平行线也会相交&#x1f4aa; 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 平行线也会相交 原创 收录于专栏【C之路】&#x1f48c; 本专栏旨在记录C的学习路线&#xff0c;望对大家有所帮助&#x1f647;‍ 希望我们一起努力、成长&…

19项网络与数据安全新国标全文公开免费下载

根据2023年5月23日国家市场监督管理总局、国家标准化管理委员会发布的中华人民共和国国家标准公告&#xff08;2023年第2号&#xff09;&#xff0c;全国信息安全标准化技术委员会归口的19项网络安全国家标准正式发布。近日&#xff0c;标准全文正式公开&#xff0c;博主第一时…

【社区图书馆】疯狂 Java 讲义:但凡种种,不一而足

虽说酒香不怕巷子深&#xff0c;但是千里之外并不一定能闻到&#xff0c;有人看到这可能会感觉这不免有些杠的味道&#xff0c;其实我想表达的是好酒也需要宣传&#xff0c;比如今天我所要讲的这本书《疯狂Java讲义》。 这不是【赠书活动】&#xff0c;这不是赠书活动… …&…

ChatGPT辅助学Qt6.2——1.Qt安装及编写登录界面

本文旨在帮助读者理解如何使用ChatGPT来辅助安装和学习Qt 6.2。我们将从Qt 6.2的基本概念开始&#xff0c;然后深入了解其安装过程&#xff0c;并探讨如何使用ChatGPT作为一个强大的辅助工具。对于那些寻求在学习和使用Qt 6.2中找到有效支持的人来说&#xff0c;这篇文章将提供…

中国电子学会2023年05月份青少年软件编程Python等级考试试卷五级真题(含答案)

2023-05 Python五级真题 分数&#xff1a;100 题数&#xff1a;38 测试时长&#xff1a;60min 一、单选题(共25题&#xff0c;共50分) 1. 有列表L[UK,china,lili,"张三"]&#xff0c;print(L[-2])的结果是&#xff1f;&#xff08; C&#xff09; A. UK B.…

华为防火墙基础知识

1.什么是防火墙 墙&#xff0c;始于防&#xff0c;忠于守。自古至今&#xff0c;墙予人以安全之意。防火墙&#xff0c;顾名思义&#xff0c;阻挡的是火&#xff0c;这一名词起源于建筑领域&#xff0c;其作用是隔离火灾&#xff0c;阻止火势从一个区域蔓延到另一个区域。 而…