游戏精英
 
- 贡献度
- 712
- 金元
- 14804
- 积分
- 4378
- 精华
- 5
- 注册时间
- 2012-10-6
|
桥那个问题,是 1.8x 开始的代码更新后,不知道加在哪里的限制。就是你说的,可以改成3000,但是不让放下去。具体是哪里加的这个额外限制,我也不知道。
大概可以理解为: 游戏从 1.70 到 1.8x,更换了底层引擎版本。
现在的 1.8x应该是基于 unity2022,而不是早期的旧版。
这就导致,一些以前正常的功能无法进行。
这还不是最严重的。《人类黎明》已经算很好了,还有很多功能可以正确使用BepInEx实现
最倒霉的是《Stranded Deep》。我在那边,BepInEx 改每个选项都会遇到灵异错误。
所以那边的项目直接放弃了,就让玩家自己修改 IL 实现算了。
回到桥这个事,你可以删除《天桥》相关的函数。这样,就可以在保留其他功能的情况下,继续使用这个Mod。
具体要删除哪些,你可以这样做:在dnspy中,选择 类编辑,也就是编辑整个类,而不是某个方法。
然后删除 天桥 相关的函数,这样,如果它报错,说明某某某依赖不存在,或者反红,你就知道把这些依赖也删干净。
你可以把mod代码视为 模块。既插即用。删错了也没事,反正下载回来的,随便改呗。
BepInEx 是框架,然后每一个 字段、字段对应的方法,以及每一个 [Harmony] 这样的反射位置,其实都是独立的。
只是某些方法需要互相配合才能实现功能,例如 天桥。
所以,你只要删除干净所有你不需要的,例如:
[HarmonyPatch(typeof(StructureType), "createBridgeModel")]
[HarmonyPrefix]
public static bool 桥虚影子对象错误归零修正(StructureType __instance, float constructionProgress, float length, ref GameObject __result, Material material = null)
你不需要天桥时,就把跟天桥相关的,这些方法,整个删除掉。
就可以了。
你自己写新方法来实现功能时,也是这个格式。等于是像
[BepInPlugin("CampFireModer.DOMFunction", "《圣火令Mod-人类黎明1.8.2》", "0.1.9")]
[BepInProcess("DawnOfMan.exe")]
[HarmonyPatch]
public class Function : BaseUnityPlugin
{
private void Awake()
{
Function.Mod设置.LoadConfig();
this.harmony.PatchAll();
}
}
这就是框架,有这些框架,其他 mod功能方法正常时,你就可以按照这种格式,自己尝试往里加,或者删内容。
|
|