1.2 配置C#项目

一、新建项目

1.下载并安装visual studio

IDE选择visual studio的原因是不需要任何其他的处理和配置,如果用vscode的话,环境插件什么的配置起来比较麻烦。

2.新建类库(.NET Framework)项目

需要选择.NET Framework 4.7.2,如果不能选择,需要去官网下载一个开发者包。

3. 设置构建路径(输出路径)

1.右键项目选择属性 2.配置输出路径 输出路径设置为你的mod目录下(MyMoudle为你的mod目录) Modules/MyModule/bin/Win64_Shipping_Client 3.引用游戏目录(不是你自己的Modules目录)下的所有TaleWorlds.* DLLs 文件。并且引用每个官方模组的 TaleWorlds.* DLLs文件

PS: 不要引用TaleWorlds.native.dll,这个文件不是C#DLL文件,会引用失败

4.配置项目Debug

1.依然右键项目选择属性,切换到调试tab,选择启动外部程序,选择游戏目录下的bin/Win64_Shipping_Client文件夹下的TaleWorlds.MountAndBlade.Launcher.exe

2.设定工作目录为bin\Win64_Shipping_Client

3.添加命令行参数(替换MyModule为你的模组名称) /singleplayer MODULES Native SandBoxSandBoxCore StoryModeCustomBattle MyModule*MODULES

5.编写一个测试demo

1.返回并打开你新建的.Net项目并编写如下代码

c# 复制代码
using TaleWorlds.Core;
using TaleWorlds.Library;
using TaleWorlds.Localization;
using TaleWorlds.MountAndBlade;

namespace Isauria
{
  public class Main : MBSubModuleBase
  {
    protected override void OnSubModuleLoad()
    {
      Module.CurrentModule.AddInitialStateOption(new InitialStateOption("Message", new TextObject("消息", null), 9990, () =>
      {
        InformationManager.DisplayMessage(new InformationMessage("Hello World"));
      }, () =>
      {
        return (false, null);
      }));
    }
  }
}

这段代码的用处是在主菜单添加一个叫消息的按钮,然后点击的时候左下角会出现一行字hello world。

2.重新编辑你的mod下的SubModule.xml文件

xml 复制代码
<Module>
  <Name value="Isauria"/>
  <Id value="Isauria"/>
  <Version value="v1.0.0"/>
  <SingleplayerModule value="true"/>
  <MultiplayerModule value="false"/>
  <DependedModules>
    <DependedModule Id="Native"/>
    <DependedModule Id="SandBoxCore"/>
    <DependedModule Id="Sandbox"/>
    <DependedModule Id="CustomBattle"/>
    <DependedModule Id="StoryMode" />
  </DependedModules>
  <SubModules>
    <SubModule>
      <Name value="Isauria"/>
      <DLLName value="Isauria.dll"/>
      <SubModuleClassType value="Isauria.Main"/>
      <Tags>
        <Tag key="DedicatedServerType" value="none" />
        <Tag key="IsNoRenderModeElement" value="false" />
      </Tags>
    </SubModule>
  </SubModules>
  <Xmls/>
</Module>

其中SubModuleClassType中的value需要设置为你mod中刚刚创建的那个类,因此我这里是Isauria.dll

3.接下来右键项目启动调试并勾选你的Mod,接着启动游戏 这样你的mod就算是创建成功了

相关推荐
SmalBox8 小时前
【节点】[NormalFromHeight节点]原理解析与实际应用
unity3d·游戏开发·图形学
wgslucky1 天前
网络游戏帧同步技术理论知识梳理
udp·游戏开发·游戏网络帧同步
ryfdizuo7 天前
HDR渲染管线中的像素格式-v1
图形渲染·渲染·游戏开发·hdr·色彩·高动态
2401_841495647 天前
【游戏开发】登山赛车
数据结构·python·游戏·游戏开发·pygame·登山赛车游戏·游戏打包发布
喵个咪8 天前
Go单协程事件调度器:游戏后端的无锁有序与响应时间掌控
后端·游戏开发
yongche_shi9 天前
第九十九篇:Python在其他领域的应用:游戏开发、物联网、AIoT简介
开发语言·python·物联网·游戏开发·aiot
SmalBox9 天前
【节点】[NormalBlend节点]原理解析与实际应用
unity3d·游戏开发·图形学
龙智DevSecOps解决方案9 天前
Perforce《2025游戏技术现状报告》Part 5:创意工作者在用什么工具以及如何看待游戏引擎与生成式AI(附免费下载)
游戏引擎·游戏开发·软件开发·perforce·ai创作·龙智
_大学牲9 天前
Flutter 勇闯2D像素游戏之路(五):像元气骑士一样的设计随机地牢
flutter·游戏·游戏开发
SmalBox10 天前
【节点】[ColorMask节点]原理解析与实际应用
unity3d·游戏开发·图形学