Skip to content

客户端修改快速指南

<NolebasePageProperties />

客户端模组入门基础指南。


本页面适用于任何 SPT 版本

要为 SPT(或任何其他使用 BepInEx 的 Unity 游戏)编写客户端模组,您需要掌握 C# 编程。如果您是编程新手,请参阅资源部分以开始学习。

资源:

步骤 0:安装所需程序

  1. 安装Visual Studio
    • 点击Download Visual Studio
    • 安装程序下载完成后,运行它。点击Available顶部,然后点击Install under Visual Studio Community 2022
    • 向下滚动Workloads标签页,直到看到Game development with Unity“工作负载”。选中该工作负载旁边的复选框,然后单击Install右下角。
  2. 安装 .NET 运行时(最低版本:6.0,最新版本应该可以正常工作)下载
  3. 安装dnSpy
    • 滚动到该版本底部的相应Assets部分,然后根据您的系统选择其中一个dn-spy-net-win32.zip或。dn-spy-net-win64.zip
    • 创建一个C:\dnSpy文件夹,然后将下载的压缩文件拖入该文件夹中。
    • 或者,右键单击dnSpy.exe并创建快捷方式,然后将其放置在桌面上。

步骤 1:SPT 开发安装设置

  1. 创建一个新的 SPT 安装用于开发。
  2. 在新的 SPT 安装目录下创建一个 Development 文件夹,用于存放您的 mod 项目,例如[spt install folder]/Development
    • 这样做的好处是,当需要将你的 mod 更新到新的 SPT 版本时,你可以直接将整个 Development 文件夹粘贴到安装目录中,然后就可以开始工作,而无需更新引用路径等(感谢 Drakia 的想法!)。
  3. 下载Unity ExplorerMono最新版本。像安装其他客户端模组一样安装它。BIE 5.X
  4. 导航至[spt install folder]/BepInEx/config并打开[Logging.Console] 部分BepInEx.cfg,进行LogChannels = all设置Enabled = true。这将使 BepInEx 控制台在您启动 SPT 时启动。您的模组中的所有日志记录都将显示在此控制台中。
  5. 请务必运行一次开发安装程序,一直运行到主菜单,然后退出。这样可以对程序集进行反混淆处理。

步骤 2:导出 Assembly-CSharp.dll 文件以查看 Tarkov 的反编译源代码

我们这样做是为了研究 Tarkov 的源代码,看看我们需要修改哪些地方,以及应该在哪里修改。我建议创建一个 Visual Studio 项目来存放反编译后的源代码。幸运的是,dnSpy 可以帮我们做到这一点!

  1. 创建一个文件夹来存储反编译后的源代码。我建议以源代码所对应的 SPT 版本命名该文件夹,以便将其与 SPT 更新到新的 EFT 客户端版本时您反编译的程序集区分开来,例如SPT400_assembly
  2. 打开 dnSpy。
  3. 前往File > Open并导航至此路径:[game folder]/EscapeFromTarkov_Data/Managed,选择Assembly-CSharp.dll文件并单击Open
  4. 文件打开后Assembly-CSharp.dll,您应该能在 dnSpy 中看到它。您可以直接在 dnSpy 中查看代码,但我建议您创建一个 Visual Studio 项目来存放它。您可以通过访问并File > Export to Project…选择我们在步骤 1 中创建的文件夹来实现这一点。
  5. 打开项目!Assembly-CSharp.sln在 dnSpy 创建的项目文件夹中运行。

您可以使用CTRL“++ Shift”F搜索整个解决方案中的代码。不妨试试搜索“跳跃”或“门”之类的关键词,看看能找到什么!

步骤 3:模组项目设置

  1. 设置并登录 GitHub 帐户 ( https://github.com/ ),然后前往示例仓库
  2. Use this template > Create a new repository点击示例仓库 GitHub 页面右上角的绿色按钮。
  3. 使用 GitBash 之类的工具将你的新仓库克隆到计算机上的文件夹中(https://git-scm.com/downloads),或者手动下载Code > Download ZIP
    • 请确保您克隆的是您自己的新仓库,而不是示例仓库本身。
  4. 将以下文件重命名SPTClientModExamples为你的新模组名称:
    • 项目所在的文件夹
    • .csproj文件
    • .sln文件
  5. 用文本编辑器打开**.sln**文件,输入CTRL+并将 ll 替换为你的新模组名称。FSPTClientModExamples
  6. 用文本编辑器打开**.csproj**文件,输入CTRL+并替换所有内容为你的模组名称。FSPTClientModExamples
  7. 双击**.sln文件打开解决方案,然后双击Plugin.cs 文件**。
  8. 按CTRL+ Shift+ F,单击“文件中的替换”:
    • 确保Look in已设置为Entire solution
    • 在字段中Find输入:SPTClientModExamples
    • Replace字段中,输入你的新模组名称
    • 点击Replace All右下角,如果出现提示,请点击“是”

第四步:开始编写代码!

  1. 不妨参考示例仓库中的示例,亲自动手实践一下!
  2. 准备好测试后,前往Build > Build Solution或按下F6构建按钮来构建你的模组。如果你的项目解决方案正确放置在 <project-path>YourSPTInstall/Development,编译后的插件应该会自动复制到 <plugin-path> BepInEx/plugins,因此你只需构建并启动游戏即可进行测试。
  3. 玩得开心!

感谢这些酷炫的人们:

感谢所有帮助我学习这些知识并为这份文档提供反馈的朋友们,你们太棒了!非常感谢!

DrakiaXYZ
Cj
Arys
Kiki
mpstark
Tyfon

参见

模组资源

贡献者

<NolebaseGitContributors />

文件历史

<NolebaseGitChangelog />

撰写