【教程】MOD复活术!我刚刚成功复活了一个作者不更新的MOD!
星露谷物语吧
全部回复
仅看楼主
level 5
刚注意你 楼主
每次版本更新最难受的就是MOD不能用!更难受的是好容易上了N网发现有些MOD被作者大大放弃再也不更新了!
好在由很多作者上传了自己的MOD源码,让我们还有机会复活它!其实这帖子也不算教程,是我自己的一次摸索的经历,但大家可以照着我的做法试一下,让大家了解功能类MOD是如何实现的,如果大家感兴趣的话未来制作自己的mod也是可能的!楼主上班摸鱼发帖,更新缓慢,见谅。
2020年01月09日 02点01分 1
level 5
刚注意你 楼主
各位看到镇楼图了吗?
这个mod叫Pelican Postal Service,鹈鹕镇邮寄服务,这个mod可以让你远程送礼物,不用满地图找NPC,这么优秀的mod我再发现它时就版本过久不能用了,作者也没有更新。
最近新版本后我又发现许多mod不能用,没办法只好捡起还给老师的C#来试试,万一成功了呢!果然我就很强!我成功了!
2020年01月09日 02点01分 2
level 5
强啊
2020年01月09日 03点01分 4
level 5
刚注意你 楼主
我说明一下:
1、原MOD Pelican Postal Service, N网ID 2770, 作者Endorsements。
2、这个毕竟是作者的心血,我也没有作者的授权啥的,我就不把我改好的MOD放出来了,大家如果想用可以自己动手试一下。
3、如果你想自己动手首先你需要以下技能:
你能上N网(因为MOD是在N网上分享的,源码链接在mod介绍页上)
你成功安装了visual studio(许多人会死在这一步上,这个软件安装会遇到很多问题),并且会使用它。
你会安装SMAPI并且知道你的游戏路径
你会一点c#(如果不会的话你就看不懂程序,修改的代码我会放出来)
4、有什么疑惑欢迎提问,但是吧上班狗不一定能及时看到,但看到我一定回。
2020年01月09日 03点01分 5
level 5
刚注意你 楼主
相关参考:https://stardewvalleywiki.com/Modding:Index
这个是SMAPImod开发相关资料,如果你想自己开发MOD这个网站必不可少啊
2020年01月09日 03点01分 6
level 5
刚注意你 楼主
我建议先看一下这位吧主大佬的教程,这个教程里的东西你都需要会
@戳破你个荷包蛋
【教程】SMAPI功能类mod制作入门
https://tieba.baidu.com/p/5753174756
2020年01月09日 03点01分 7
level 5
刚注意你 楼主
看完大佬的教程我们就开始啦!
第一步:获取MOD源码
1、上N网找到Pelican Postal Service,介绍页往下拉:
2、点进去就是下源码(看图):
3、你下载的PelicanPostalService-master.zip就是源码的打包文件了。
2020年01月09日 03点01分 9
level 5
刚注意你 楼主
第二步:使用Visiual Studio打开源码
(安装Visiual Studio上面那位大佬 教程里说了,有问题来问)
1、把你刚刚下的那个ZIP文件解压,记住文件位置。
2、打开Visiual Studio,选择打开项目或解决方案
3、打开项目文件Pelican Postal Service.sln
或者你直接双击Pelican Postal Service.sln它自己会启动visual studio的[滑稽]
2020年01月09日 03点01分 10
level 5
刚注意你 楼主
下班下班 我去吃个饭回来更哦。
2020年01月09日 03点01分 11
level 8
马
2020年01月09日 04点01分 12
level 5
刚注意你 楼主
下面开始进阶步骤,我会一点一点讲,也会解释将这么做的原因,看不懂原因就跟着做就行了。
第三步:更改项目中游戏路径
原因:这一步主要是应为作者在建立项目时关联游戏使用了绝对路径,也就是作者自己的游戏路径,如果我们要调试代码就必须关联自己的游戏路径,游戏路径就是你Stardew.Valley.exe所在的文件路径。修改路径需要改写项目的.csproj文件,下面就是改写方法。
1、首先在解决方案资源管理器里面右键点击刚刚加入的项目,选择“卸载项目”:
(解决方案资源管理器 在界面右侧,如果没有点菜单栏 视图→解决方案资源管理器)
2、右键卸载的项目,选择“编辑PelicanPostalService.csproj”
3、找到“<GamePath>D:\...</GamePath>”这一行代码,把你的游戏路径替换掉原来的路径。
4、然后点击保存,右键项目选择“重新加载项目”这样游戏路径就改好了,验证自己改的对不对:在解决方案资源管理器里点开“引用”,下图红框里的引用没有那个黄色的三角感叹号就算成功了。
2020年01月09日 05点01分 13
现在还有没有人我问个问题,没有GamePath咋搞
2024年08月25日 14点08分
level 5
刚注意你 楼主
第四步:更新NuGet包
这是最最重要的一步!可以仔细的看一下原因!
原因:通俗来说NuGet包就是SMAPI提供的让我们自己写的代码能够和游戏关联起来的东西!SMAPI更新后这个包也会更新,所以smapi更新后我们的之前MOD就不能用了,需要在项目中更新NuGet包的版本。我们制作mod需要的包名字叫:Pathoschild.Stardew.ModBuildConfig,如果是自己新建的项目就需要在NuGet包管理器里面把它加上,现在原作者以及添加了旧版本的包,我们更新一下就可以了。
1、在菜单栏选择 工具→NuGet包管理器→管理解决方案的NuGet程序包
2、应为项目以前添加过这个包,我们只需要更新就行了 步骤看图:
3、你以为就这么简单?真正难的是下一步!
2020年01月09日 05点01分 14
level 6
技术大佬……就想用一下养猪长草那个,可是好像不能用了。如果楼主可以能帮帮忙,万分感谢 尾号1772
2020年01月09日 05点01分 15
上班狗没时间,你可以自己上手试一下
2020年01月09日 06点01分
level 5
刚注意你 楼主
第五步:修改报错代码
原因:这个原因怎么说呢,我不是程序员我也半懂不懂,这个就是应为NuGet包更新后里面一些东西变了,作者原先写的代码调用了已经改了的东西,所以会有代码报错,我们需要把这些错的调用修改掉,这一步就需要你C#的基础了,否则你无从下手。这个Mod报错的原因是应为程序识别按键的方法改了,我看了参考资料(就上面相关参考内个网站里的)改的,居然成功了。我真是佩服我自己。
1、报错的代码是ModEntry.cs这个文件里的,他会报两个错误,如下:
2、这个我改的代码,我也不解释了,直接全部替换就行了。
using Pelican.Config;
using Pelican.Menus;
using Pelican.Items;
using StardewModdingAPI;
using StardewModdingAPI.Events;
namespace Pelican
{
public class ModEntry : Mod
{
private IModHelper helper;
public override void Entry(IModHelper helper)
{
this.helper = helper;
//ControlEvents.KeyPressed += ControlEvents_KeyPressed;
helper.Events.Input.ButtonPressed += this.ControlEvents_KeyPressed;
}
private void ControlEvents_KeyPressed(object sender, ButtonPressedEventArgs e)
{
if (Context.IsWorldReady)
{
Meta.Config = helper.ReadConfig<ModConfig>();
if (e.Button.ToString().Equals(Meta.Config.MenuAccessKey))
{
Meta.Console = Monitor;
Meta.Lang = helper.Translation;
ItemHandler itemHandler = new ItemHandler();
PostalService menu = new PostalService(itemHandler);
menu.Open();
}
}
}
}
}
3、记得保存啊,一个字也不能差。
2020年01月09日 05点01分 16
这一步不会C#是有点难,但不是所有mod更新NuGet包都会报错,如果不报错这一步就省啦!
2020年01月09日 06点01分
level 5
刚注意你 楼主
最后一步:生成mod
原因:要知道其实我们的mod就是那个XXX.dll文件,所谓的类库。如果你成功生成了.dll文件,恭喜你!你学会了!
1、在解决方案资源管理器里右键项目,点生成,如果生成成功就证明你成功了!
2、mod就在源码文件夹..\PelicanPostalService-master\PelicanPostalService\bin\Debug这个目录里的zip文件
3、解压到Mods文件就能用了,一般生成以后mods文件夹就有这个mod了,也能直接用。
2020年01月09日 06点01分 17
1 2 3 4 尾页