• 注册
  • Mod制作教程 Mod制作教程 关注:1758 内容:74

    [mod教程]编译一个SPT4.0mod的教程

  • 查看作者
  • 打赏作者
  • 2
  • Mod制作教程
  • 初来乍到

    我先前发了一个教程 SPT4.0修改mod武器数值的方法

    怎么想,对IL代码搞逆向都比直接编辑C#代码要麻烦得多吧。这样还不如直接拉源码编译了。

    干脆就写一个编译SPT4.0mod的教程吧。

    我们所需的东西只有两个

    1. 文本编辑器(随便哪一个都可以,VSCode、NotePad++甚至记事本)

    2. .Net 9 SDK

    当然,如果你已经安装了完整的.NET开发环境了(VisualStudio或者Rider,之类的IDE),那你应该也不需要看这个教程啦


    安装 .NET9 SDK

    这个可以在微软官方的下载页下载到https://dotnet.microsoft.com/en-us/download/dotnet/9.0

    是SDK不是运行时哦

    体积200多MB,比一些mod的体积都要小

    安装也没什么难度,和安装软件一样,很简单的,所以这里就略过

    编译

    我们以SPT官方的mod例程1 “Logging” 为例

    [mod教程]编译一个SPT4.0mod的教程

    由于其余的依赖SPT团队都已经通过nuget包组织好了,所以我们编译的关键就只有两个

    包含源码的.cs文件和用于组织项目的.csproj文件

    然后win10用户shift+鼠标右键“在此处打开Powershell窗口”[mod教程]编译一个SPT4.0mod的教程

    win11用户直接右键选择在终端中打开即可[mod教程]编译一个SPT4.0mod的教程

    接下来只需要命令

    dotnet build -c Release

    如果你没装上SDK的话就是这样子[mod教程]编译一个SPT4.0mod的教程

    如果装上了,而且代码没问题的话,你就可以在bin\Release\目录下找到编译的.dll文件了

    [mod教程]编译一个SPT4.0mod的教程[mod教程]编译一个SPT4.0mod的教程

    在mod目录(SPT/user/mods)新建一个文件夹,把编译的dll放进去,启动服务端的时候就可以自动加载了

    [mod教程]编译一个SPT4.0mod的教程

    [mod教程]编译一个SPT4.0mod的教程

    那要怎么编写mod的代码呢?

    这个可以直接参考spt团队的例程仓库 https://github.com/sp-tarkov/server-mod-examples

    涵盖了大多数mod功能的实现例子,甚至包括.NET Hook方法等比较高级的用法,比较完善了


    对于网络特殊情况的问题


    nuget是有国内源的,后面这些你当我在放屁

    只需要

    dotnet nuget add source https://nuget.cdn.azure.cn/v3/index.json -n AzureChina

    我还没有试验过有没有可能部分地区部分运营商连接nuget包源服务器有问题,但以防万一我还是在这里补充一下

    如果你编译后出现这样的情况

    [mod教程]编译一个SPT4.0mod的教程

    这个就是连接nuget源服务器的网络问题。会解决网络问题的可以自行解决,无法解决的可以照我说的做。

    用文本编辑器打开.csproj文件确定依赖的包

    [mod教程]编译一个SPT4.0mod的教程

    我们可以看到引用到了SPT的三个包,我们其实不一定非要通过nuget获取,因为它们就在我们的SPT服务端目录下存在。

    [mod教程]编译一个SPT4.0mod的教程

    那我们把用到的复制到源码文件夹,然后修改.csproj文件

    比如

    <PackageReference Include="SPTarkov.Common" Version="4.0.1" />

    我们就可以改为

    <Reference Include="SPTarkov.Common">
      <HintPath>SPTarkov.Common.dll</HintPath>
    </Reference>

    然后注意,无论如何都要复制SemanticVersioning.dll然后在.csproj中加上

    <Reference Include="SemanticVersioning">
      <HintPath>SemanticVersioning.dll</HintPath>
    </Reference>

    [mod教程]编译一个SPT4.0mod的教程

    修改完大概就像这样,再次尝试编译应该就可以通过了

    [mod教程]编译一个SPT4.0mod的教程

    已臻大成
    VIP5
    打赏了1金币
    回复
    炉火纯青

    就服这种技术大佬!

    回复

    请登录之后再进行评论

    登录
    离线版教程
  • 今日 2
  • 内容 1029
  • 关注 1758
  • 聊天
    关注 8

    【招募】GRIFFIN TKF项目开工 期待你的加入 || 你是否想加入格里芬书写自己与人形的故事

  • 签到
  • 任务
  • 发布
  • 模式切换
  • 偏好设置
  • 帖子间隔 侧栏位置: