最近刚开始研究怎么开发mod 不知道有没有朋友发过
管他呢 总之简单分享一下 如果已经有了我就删帖跑路【不是
因为目前还在学习中 所以没办法保证帖子里的东西都是对的
请不要直接回复我的楼层 我可能会贴一些更新啥的 如果有问题请发在后面 感谢
首先首先首先首先!!!!!! 并不推荐完全没有开发经验的朋友自己做mod
当然如果你很喜欢elin愿意学除外 爱是第一生产力
所以我还是尽量用最浅显易懂的方式描述 希望对大家有点帮助
本人维塔士任职4年 给firaxis konami等公司打过工 【战绩不可查x
但是没做过mod而且unity也确实不熟 主要都是UE的东西 CSharp也是要用才边查边用
分享一下做mod的起始准备工作 学习为主 也许之后研究有进展也会继续更新 但说不准
如果有错误请指正 感谢
首先你需要准备的东西
Visual Studio 我用的VS2019 community
VS code 没有也无所谓 本质是高级文本编辑工具 其实用notepad也一样
Everything 一个非常好用的全盘搜索工具 非必须 但是很好用 我上下班有需要都会用这个 助你快速找到你要找的文件
打开你的steam 找到elin 右键管理浏览本地文件 你会进入elin本地安装的目录
然后打开BepInEx\config 用你喜欢的文本编辑器打开BepInEx.cfg
搜索 [Logging.Console] 在下方找到Enable=false 给他改成=true
改完之后你启动游戏时会同时启动一个cmd窗口 之后开发mod输出log的时候可以用这个窗口查看
接下来新建mod项目 选择C# 找到class library(.Net Framework) 然后创建tmd就完事了
创建完项目 打开 然后右边应该会有个Class1.cs 你可以改下名字然后回车
接下来要准备一些游戏库
在你的项目右边 右键references 选择add reference
找到Elin的根目录 也就是从steam打开的目录 选择
Elin_Data\Managed
Assembly-Csharp.dll,
UnityEngine.dll
然后是\Elin\BepInEx\core下的
0Harmony.dll,
BepInEx.Core.dll,
UnityEngine.CoreModule.dll ,
BepInEx.Preloader.Core.dll,
BepInEx.Preloader.Unity.dll,
BepInEx.Unity.dll
把上面这些文件加入依赖项
(我不是完全确定要引入哪些 有可能有遗留 如果有问题可以喊我 我有时间尽量帮忙看看)
加进去的依赖项记得在右下角窗口里 Copy Local改成false
接下来来到代码
保证最上方至少有
using BepInEx;
using UnityEngine;
using HarmonyLib;
然后是mod部分 先贴代码后面解释
[BepInPlugin("missfour.bepinex.plugins.MissFourStackTool", "MissFour Stack Tool", "0.0.0.1")]
public class MissFourStackTool : BaseUnityPlugin
{
void Awake()
{
}
void Start()
{
var harmony = new Harmony("MissFourStackTool");
harmony.PatchAll();
}
void Update()
{
}
void OnDestroy()
{
}
}
[BepInPlugin("missfour.bepinex.plugins.MissFourStackTool", "MissFour Stack Tool", "0.0.0.1")]
上面这行有三个部分 第一个是对于mod来说的唯一值 你可以用类似我这种名字+mod名字的方式来填
第二个是你mod的名字 这个是对用户来说可读的名字 清楚描述mod就行
第三个是版本号 我不确定是否有硬性规定
正好插个小科普
简单来说 软件或者游戏 版本号用点分割 靠左的数字表示大版本 靠右的数字表示小版本 不会进位
比如小版本0.0.9修复一些bug之后会是0.0.10
如果大改游戏性或者推出新功能那可能就是0.1.0甚至1.0.0
扯远了 类似这种填好你的版本号
在Update()函数里 你可以加上下面这段代码来测试
void Update()
{
var key = new BepInEx.Configuration.KeyboardShortcut(KeyCode.F9);
if (key.IsDown())
{
Debug.Log("F9 is pressed");
}
}
完成之后 编译你的项目
上方build->build solution 或者右边右键你的项目 build solution
如果VS下方没有报错 那就说明搞定了
在你项目文件夹里的bin\Debug下找到xxxx.dll xxxx是你项目的名字
复制这个文件然后拷贝到Elin\BepInEx\plugins文件夹下
然后启动elin 进入游戏后 如果一切正常 按下F9你会在cmd窗口看到输出
上述应该是对本地载入mod的方式 关于上传到创意工坊的部分我还在研究
管他呢 总之简单分享一下 如果已经有了我就删帖跑路【不是
因为目前还在学习中 所以没办法保证帖子里的东西都是对的
请不要直接回复我的楼层 我可能会贴一些更新啥的 如果有问题请发在后面 感谢
首先首先首先首先!!!!!! 并不推荐完全没有开发经验的朋友自己做mod
当然如果你很喜欢elin愿意学除外 爱是第一生产力
所以我还是尽量用最浅显易懂的方式描述 希望对大家有点帮助
本人维塔士任职4年 给firaxis konami等公司打过工 【战绩不可查x
但是没做过mod而且unity也确实不熟 主要都是UE的东西 CSharp也是要用才边查边用
分享一下做mod的起始准备工作 学习为主 也许之后研究有进展也会继续更新 但说不准
如果有错误请指正 感谢
首先你需要准备的东西
Visual Studio 我用的VS2019 community
VS code 没有也无所谓 本质是高级文本编辑工具 其实用notepad也一样
Everything 一个非常好用的全盘搜索工具 非必须 但是很好用 我上下班有需要都会用这个 助你快速找到你要找的文件
打开你的steam 找到elin 右键管理浏览本地文件 你会进入elin本地安装的目录
然后打开BepInEx\config 用你喜欢的文本编辑器打开BepInEx.cfg
搜索 [Logging.Console] 在下方找到Enable=false 给他改成=true
改完之后你启动游戏时会同时启动一个cmd窗口 之后开发mod输出log的时候可以用这个窗口查看
接下来新建mod项目 选择C# 找到class library(.Net Framework) 然后创建tmd就完事了
创建完项目 打开 然后右边应该会有个Class1.cs 你可以改下名字然后回车
接下来要准备一些游戏库
在你的项目右边 右键references 选择add reference
找到Elin的根目录 也就是从steam打开的目录 选择
Elin_Data\Managed
Assembly-Csharp.dll,
UnityEngine.dll
然后是\Elin\BepInEx\core下的
0Harmony.dll,
BepInEx.Core.dll,
UnityEngine.CoreModule.dll ,
BepInEx.Preloader.Core.dll,
BepInEx.Preloader.Unity.dll,
BepInEx.Unity.dll
把上面这些文件加入依赖项
(我不是完全确定要引入哪些 有可能有遗留 如果有问题可以喊我 我有时间尽量帮忙看看)
加进去的依赖项记得在右下角窗口里 Copy Local改成false
接下来来到代码
保证最上方至少有
using BepInEx;
using UnityEngine;
using HarmonyLib;
然后是mod部分 先贴代码后面解释
[BepInPlugin("missfour.bepinex.plugins.MissFourStackTool", "MissFour Stack Tool", "0.0.0.1")]
public class MissFourStackTool : BaseUnityPlugin
{
void Awake()
{
}
void Start()
{
var harmony = new Harmony("MissFourStackTool");
harmony.PatchAll();
}
void Update()
{
}
void OnDestroy()
{
}
}
[BepInPlugin("missfour.bepinex.plugins.MissFourStackTool", "MissFour Stack Tool", "0.0.0.1")]
上面这行有三个部分 第一个是对于mod来说的唯一值 你可以用类似我这种名字+mod名字的方式来填
第二个是你mod的名字 这个是对用户来说可读的名字 清楚描述mod就行
第三个是版本号 我不确定是否有硬性规定
正好插个小科普
简单来说 软件或者游戏 版本号用点分割 靠左的数字表示大版本 靠右的数字表示小版本 不会进位
比如小版本0.0.9修复一些bug之后会是0.0.10
如果大改游戏性或者推出新功能那可能就是0.1.0甚至1.0.0
扯远了 类似这种填好你的版本号
在Update()函数里 你可以加上下面这段代码来测试
void Update()
{
var key = new BepInEx.Configuration.KeyboardShortcut(KeyCode.F9);
if (key.IsDown())
{
Debug.Log("F9 is pressed");
}
}
完成之后 编译你的项目
上方build->build solution 或者右边右键你的项目 build solution
如果VS下方没有报错 那就说明搞定了
在你项目文件夹里的bin\Debug下找到xxxx.dll xxxx是你项目的名字
复制这个文件然后拷贝到Elin\BepInEx\plugins文件夹下
然后启动elin 进入游戏后 如果一切正常 按下F9你会在cmd窗口看到输出
上述应该是对本地载入mod的方式 关于上传到创意工坊的部分我还在研究