关于mod《强制建造》崩溃
关于mod《大一统.强制制造》,由于作者大大只更新统一版本了,而我只需要强制制造功能,所以想修改一下,但是确实是没啥实力,所以发出来求助,希望各位大佬能救救我:hug:订阅后系统显示错误代码
Exception while loading mod 3021521842.Steam at C:/Users/Azure/Documents/Klei/OxygenNotIncluded/mods/Steam/3021521842. HarmonyLib.HarmonyException: Ambiguous match for HarmonyMethod[(class=BuildingDef, methodname=IsAreaClear, type=Normal, args=undefined)] ---> System.Reflection.AmbiguousMatchException: Ambiguous match found.at System.RuntimeType.GetMethodImpl (System.String name, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, System.Reflection.CallingConventions callConv, System.Type[] types, System.Reflection.ParameterModifier[] modifiers) in <695d1cc93cca45069c528c15c9fdd749>:0 at System.Type.GetMethod (System.String name, System.Reflection.BindingFlags bindingAttr) in <695d1cc93cca45069c528c15c9fdd749>:0 at HarmonyLib.AccessTools.DeclaredMethod (System.Type type, System.String name, System.Type[] parameters, System.Type[] generics) in <6dcb326e4f6442999f701f1e67d0b5a0>:0 at HarmonyLib.PatchTools.GetOriginalMethod (HarmonyLib.HarmonyMethod attr) in <6dcb326e4f6442999f701f1e67d0b5a0>:0 --- End of inner exception stack trace ---at HarmonyLib.PatchClassProcessor.ReportException (System.Exception exception, System.Reflection.MethodBase original) in <6dcb326e4f6442999f701f1e67d0b5a0>:0 at HarmonyLib.PatchClassProcessor.Patch () in <6dcb326e4f6442999f701f1e67d0b5a0>:0 at HarmonyLib.Harmony.<PatchAll>b__10_0 (System.Type type) in <6dcb326e4f6442999f701f1e67d0b5a0>:0 at HarmonyLib.CollectionExtensions.Do (System.Collections.Generic.IEnumerable`1 sequence, System.Action`1 action) in <6dcb326e4f6442999f701f1e67d0b5a0>:0 at HarmonyLib.Harmony.PatchAll (System.Reflection.Assembly assembly) in <6dcb326e4f6442999f701f1e67d0b5a0>:0 at KMod.UserMod2.OnLoad (HarmonyLib.Harmony harmony) in <3d436e4ec1d5455793674ec559b0cc77>:0 at KMod.DLLLoader.LoadDLLs (KMod.Mod ownerMod, System.String harmonyId, System.String path, System.Boolean isDev) in <3d436e4ec1d5455793674ec559b0cc77>:0 at UnityEngine.Debug.LogError (System.Object message, UnityEngine.Object context) in <72b60a3dd8cd4f12a155b761a1af9144>:0 at Debug.LogError (System.Object obj, UnityEngine.Object context) in <3ca21dc18eae422d87255277091f8593>:0 at DebugUtil.LogErrorArgs (UnityEngine.Object context, System.Object[] objs) in <3ca21dc18eae422d87255277091f8593>:0 at DebugUtil.LogException (UnityEngine.Object context, System.String errorMessage, System.Exception e) in <3ca21dc18eae422d87255277091f8593>:0 at KMod.DLLLoader.LoadDLLs (KMod.Mod ownerMod, System.String harmonyId, System.String path, System.Boolean isDev) in <3d436e4ec1d5455793674ec559b0cc77>:0 at KMod.Mod.Load (KMod.Content content) in <3d436e4ec1d5455793674ec559b0cc77>:0 at KMod.Manager.Load (KMod.Content content) in <3d436e4ec1d5455793674ec559b0cc77>:0 at Global.Awake () in <3d436e4ec1d5455793674ec559b0cc77>:0 at UnityEngine.Object.Internal_InstantiateSingleWithParent_Injected (UnityEngine.Object data, UnityEngine.Transform parent, UnityEngine.Vector3& pos, UnityEngine.Quaternion& rot) in <72b60a3dd8cd4f12a155b761a1af9144>:0 at UnityEngine.Object.Internal_InstantiateSingleWithParent (UnityEngine.Object data, UnityEngine.Transform parent, UnityEngine.Vector3 pos, UnityEngine.Quaternion rot) in <72b60a3dd8cd4f12a155b761a1af9144>:0 at UnityEngine.Object.Instantiate (UnityEngine.Object original, UnityEngine.Vector3 position, UnityEngine.Quaternion rotation, UnityEngine.Transform parent) in <72b60a3dd8cd4f12a155b761a1af9144>:0 at UnityEngine.Object.Instantiate (T original, UnityEngine.Vector3 position, UnityEngine.Quaternion rotation, UnityEngine.Transform parent) in <72b60a3dd8cd4f12a155b761a1af9144>:0 at Util.KInstantiate (UnityEngine.GameObject original, UnityEngine.Vector3 position, UnityEngine.Quaternion rotation, UnityEngine.GameObject parent, System.String name, System.Boolean initialize_id, System.Int32 gameLayer) in <3ca21dc18eae422d87255277091f8593>:0 at Util.KInstantiate (UnityEngine.GameObject original, UnityEngine.GameObject parent, System.String name) in <3ca21dc18eae422d87255277091f8593>:0 at LaunchInitializer.Update () in <3d436e4ec1d5455793674ec559b0cc77>:0 Build: U51-600112-VD
作者已开源,mod的原文件已上传
其实我有试过自己搞(完全零基础
用作者开源的代码中的强制建造cs文件代码,通过百度缺氧的mod制作教程和al搞成dll,然后弄到本地mod里,游戏确实不崩溃,但是按shift没用:'(搞了一晚上了,我枯了
窒息了,研究了半天发现是因为有两个定义的IsAreaClear,一个是7个参数的private bool IsAreaClear(GameObject source_go, int cell, Orientation orientation, ObjectLayer layer, ObjectLayer tile_layer, bool replace_tile, out string fail_reason)
一个是8个参数的private bool IsAreaClear(GameObject source_go, int cell, Orientation orientation, ObjectLayer layer, ObjectLayer tile_layer, bool replace_tile, bool restrictToActiveWorld, out string fail_reason)
我研究了半天实在是搞不来把只定义成一个(一点基础都没有),所以我直接把Assembly-CSharp里的7个参数的IsAreaClear全给删了,然后原来的mod就可以用了
但是还是希望有大佬教教我如何把IsAreaClear定义成8个参数的或者7个参数的特定的
页:
[1]