◕小莫◕ 发表于 2022-9-27 15:54

正式版 太吾绘卷 Mod制作教程(Plugins插件篇)

开个坑,来给大家讲解游戏太吾绘卷的Mod制作方法。
先来讲一讲我比较熟悉的插件制作方法。

前置工具:
- DnSpy
- vscode
- Visual Studio
- 略懂C#的语法基础

参考资料
- Harmony 官方文档:https://harmony.pardeike.net/articles/intro.html
- BepInEx插件制作教程:https://wiki.aoe.top/BepInEx/
- 宵夜大佬的视频教程: https://www.bilibili.com/video/BV1Fd4y1z7jV

目录介绍
首先,Mod由Config.lua、Settings.Lua、Cover.png、Plugins文件夹 组成

Config.lua - Mod的配置文件,格式:

return {
    Title = "标题",
    Author = "作者",
    Cover = "Cover.png",-- 封面图
    Description = "介绍",
    HasArchive = false,                              
    FrontendPlugins = {
       = "XXX.dll"-- 前端插件dll 放入 Plugins文件夹 中 没有可不填 前端后端两个有一个即可
    },
    BackendPlugins = {
       = "YYY.dll" -- 后端插件dll 放入 Plugins文件夹 中 没有可不填 前端后端两个有一个即可
    },
    DefaultSettings = {
       = {
            Key = "Hot_key",    -- 对应下面 Settings.Lua 中的键
            DisplayName = "界面启动按键",    -- 显示的名称
            SettingType = "InputField",    -- 设置类型 枚举: InputField(输入框 string)、Toggle(开关 bool)、Slider(滑块 int 可搭配 MinValue 和 MaxValue 使用)、Dropdown(下拉框 int 配合 Options使用 Options 是字符串数组)
            Description = "修改此按键以启动修改器界面",
            DefaultValue = "F9"
      }
    }
}


Settings.Lua - Mod配置的保存值,格式:

return {
      Hot_key = "F9"
}


Cover.png - Mod封面438 x 512
Plugins文件夹 - 存放我们生成的dll用的

入口函数
基础的创建项目就不说了,不懂的可以去翻阅 BepInEx 创建插件;
唯一需要注意的是:
前端插件创建是用 .NET Framewori 4.8;
后端插件创建是用 .NETCore 5.0;

引入 0Harmony.dll、TaiwuModdingLib.dll、Assembly-CSharp.dll 或 GameData.dll (取决于是前端插件还是后端插件

让你的入口函数继承 TaiwuRemakePlugin 类,并添加 PluginConfig 特性,并实现类,就像这样:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using TaiwuModdingLib.Core.Plugin;
using UnityEngine;
using HarmonyLib;

namespace ScriptTrainer
{

   
    public class ScriptTrainer : TaiwuRemakePlugin
    {
      public override void Dispose()
      {
            // 销毁时调用
      }

      public override void Initialize()
      {
            // 加载插件时调用
      }

      public override void OnModSettingUpdate()
      {
            // 修改设置时调用

            string hot_Key = default(string) ;
            ModManager.GetSetting(base.ModIdStr, "Hot_key", ref hot_Key);   // 从配置文件读取键为 Hot_key 的值, 将其赋值给 hot_Key
      }
    }
}


接下来你就可以开始制作你的Mod了



其他教程

- 用HarmonyPrefix 补丁注入修改游戏方法
- 使用GUILayout制作游戏UI(仅前端支持)
- 使用UnityGameUI制作游戏UI (仅前端支持)



叶晨晨 发表于 2022-9-27 16:15

手:脑子你会了吗脑子:我也不会

GYML 发表于 2022-9-27 16:15

不明觉厉,凑个热闹{:3_126:}

bybye 发表于 2022-9-27 16:22

技术贴顶一下

我叫蜡笔新新仔 发表于 2022-9-27 16:45

哥,你能先把你的内置修改器更新一下吗?:)F9都按不出来了,看不到嘛

◕小莫◕ 发表于 2022-9-27 17:51

我叫蜡笔新新仔 发表于 2022-9-27 16:45
哥,你能先把你的内置修改器更新一下吗?F9都按不出来了,看不到嘛

更新了,跟别的按键冲突了,你自己改个别的快捷键就行了

callmeglasses 发表于 2022-9-30 14:21

喜不自胜 感谢

WahtRuLookinG 发表于 2022-9-30 23:54

阅读效率:0
灵光一闪:0
内息紊乱
页: [1]
查看完整版本: 正式版 太吾绘卷 Mod制作教程(Plugins插件篇)