• 注册
  • 离线疑难解答 离线疑难解答 关注:1885 内容:23458

    大佬救命!加装WTT内容后游戏闪退,不知道是不是报错,但是没有标红,说我有补丁没加载好

  • 查看作者
  • 打赏作者
  • 当前位置: ODDBA社区 > 离线疑难解答 > 正文
  • 14
  • 离线疑难解答
  • 圆转纯熟

    各位大佬麻烦帮忙看一下这是什么问题,刚加装的WTT内容就出现这个问题了
    大佬救命!加装WTT内容后游戏闪退,不知道是不是报错,但是没有标红,说我有补丁没加载好
    大佬救命!加装WTT内容后游戏闪退,不知道是不是报错,但是没有标红,说我有补丁没加载好
    大佬救命!加装WTT内容后游戏闪退,不知道是不是报错,但是没有标红,说我有补丁没加载好
    大佬救命!加装WTT内容后游戏闪退,不知道是不是报错,但是没有标红,说我有补丁没加载好
    大佬救命!加装WTT内容后游戏闪退,不知道是不是报错,但是没有标红,说我有补丁没加载好

  • 4.0.13

  • 已配图

  • 游戏闪退

  • 自成一派

    wtt的前置mod都装了吗?黄字一般不碍事,报错的好像是QuickPrice

  • Fatebio都装了,删除quickprice重新进入也不行
    拉黑 2星期前 电脑端回复
  • Fatebio完整内容特别长,这是给豆包他去分析的内容: 让我重新仔细过一遍这份日志,从预加载到最终报错完整梳理因果链。重新完整过了一遍日志,这次从预加载阶段一路追踪到最终报错,发现了几个之前没注意到的关键交汇点。 ## 完整因果链 问题的起点在**预加载阶段最后一步**——`ContentBackportPatcher.EnvironmentUiTypePatch`。它是 8 个 patcher 里最后一个运行的,直接修改 Assembly‑CSharp 程序集。在它之前,BlackDiv、MoreBotsAPI、Wedge 三个 prepatch 都只是往 WildSpawnType 枚举里塞新值,这些都是安全的、经过大量验证的操作,不会出问题。但 WTT 这个 patcher 跑完之后,程序集里某些类型的引用关系就变了。 真正暴露问题是在后面的 mod 加载阶段。你看,WTT‑ClientCommonLib 的 24 个 patch 全部成功,WTT‑ContentBackportClient 的 4 个 patch 也全部成功,它们都没有触发报错。直到 Manimal‑CSGas 加载时,它的某个 patch 需要遍历 Assembly‑CSharp 的全部类型(调用 GetTypesFromAssembly),这才第一次刷出 `EDLSSPreset not found` 的警告。 这很关键——不是 WTT 的 patch 本身失败了,而是 WTT 改过程序集之后,**游戏原生的某些类型突然就加载不了了**。前面的 mod 之所以没报错,只是因为它们都没去遍历全部类型,没踩到这个雷。 ## 核心病灶:GClass2389`1 泛型设置类 日志里有个被忽略的交汇点:**`GClass2389`1** 这个泛型设置类。Icebreaker 的 PerfectCulling patch 失败,报的是 `GClass2389`1.Settings` 字段找不到;SPT.Custom 的 SaveSettingsToSptFolderPatch 失败,报的也是 `SharedGameSettingsClass+GClass2389`1[GraphicsSettingsClass]:Settings` 类型无效。两个完全不同的 mod,卡在同一个泛型类上。 这个 GClass2389`1 应该是游戏里一个通用的设置包装泛型类,不同的设置类型(图形、音频、控制等等)都用它来包一层。GraphicsSettingsClass 是它的泛型参数之一。当 GraphicsSettingsClass 本身因为 EDLSSPreset 找不到而变成无效类型时,所有用它做参数的泛型实例就全部跟着崩了。 ## 为什么装 WTT 之前没问题 这是最关键的问题。如果 EDLSSPreset 本来就找不到,那装 WTT 之前也应该报错才对。 只有一种解释:**WTT 的预加载 patcher 在修改 Assembly‑CSharp 时,意外破坏了程序集的元数据表**。具体来说,EnvironmentUiTypePatch 本意可能只是给环境 UI 相关的枚举或类型加东西,但它在写入程序集时,可能因为 Mono.Cecil 的版本差异、或者和前面几个 prepatch 叠加修改产生了冲突,导致类型引用表(TypeRef)或者字段表的偏移出现了细微错乱。EDLSSPreset 这个引用本来是好的,被它这么一改,token 对不上了,CLR 就觉得这个类型不存在了。 这也能解释为什么症状这么奇怪——图形设置类和环境 UI 八竿子打不着,但因为是程序集元数据层面的损坏,影响是随机扩散的,哪个类型先被加载哪个就先炸。 ## 怎么验证和解决 要确认是不是 WTT‑ContentBackportPatcher 干的,最快的方法是做一个对照测试:把 WTT‑ContentBackportPatcher.dll 暂时从 patchers 目录里移出去,保留其他所有 WTT 组件(ClientCommonLib、ContentBackportClient、服务端内容包等等),启动游戏。如果不报错了,那就 100% 是这个预加载 patcher 的问题。 如果确认了是它,解决方向有几个。一是换 WTT 的版本,你现在用的是 1.1.3 的 patcher,试试换成 1.0.7 或者其他版本,看哪个版本的 patcher 不会搞坏程序集。二是去 WTT 的发布页看看有没有人报过类似的 bug,有没有热修复 dll。三是如果暂时找不到修复,可以先不用 ContentBackport 的全量回溯,只留 WTT 前置库 + BlackDivision 玩黑狐内容,至少能保证 SPT 核心模块正常加载,不会弹那个错。 另外提一句,QuestingBots 找不到 SerializerSettings 是独立的小问题,和这个图形类崩溃完全没关系,它只是自己找不到配置类型,不影响其他 mod,后面有空再单独处理就行。
    拉黑 2星期前 电脑端回复
  • poncer @Fatebio e~~~那啥,豆包说的对啊
    拉黑 2星期前 电脑端回复
  • poncer @Fatebio 内容回溯我目前1.0.8没更到最新,不知道退版本好不好使。但肯定的是移除内容回溯,黑狐就挂了。如果是加载先后的问题,好像有模组排序的工具。我暂时也没有思路
    拉黑 2星期前 电脑端回复
  • Fatebio好的谢谢
    拉黑 2星期前 电脑端回复
  • poncer @Fatebio 刚想起来,之前我也遇到其它mod失效的情况,但是还能进去玩。删除BepInEx\patchers中的这个文件FixPluginTypesSerialization.dll,就一切正常了,你试试看?
    拉黑 2星期前 电脑端回复
  • Fatebio @poncer 我是弹出来第一个图片然后闪退,我是进不去的,不过我一会尝试
    拉黑 2星期前 电脑端回复
  • Fatebio @poncer 能成功进入游戏了,进不去游戏的问题解决了,感谢! [s-7] 不过出现新的问题了,我的F12开不出mod菜单了,然后阿曼达失效了 [s-31]
    拉黑 2星期前 电脑端回复
  • 回复
    圆转纯熟

    那个文件里就这么一个报错,应该怎么解决啊?是这个mod的问题吗?他没有标红啊?
    [Info :ModulePatch] Enabled patch GameWorldEquipmentTrackerCleanupPatch

    [Info :ModulePatch] Enabled patch RaidSummaryHealthParametersPanelShowPatch

    [Error :QuickPrice] ❌ 启用补丁失败: Exception of type 'System.Reflection.ReflectionTypeLoadException' was thrown.

    Could not load type of field 'GClass2394:Edlsspreset_0' (26) due to: Could not resolve type with token 0100045f from typeref (expected class 'EDLSSPreset' in assembly 'Unity.Postprocessing.Runtime, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null') assembly:Unity.Postprocessing.Runtime, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null type:EDLSSPreset member:(null)

    Could not load type of field 'GraphicsSettingsClass:DLSSPreset' (37) due to: Could not resolve type with token 0100045f from typeref (expected class 'EDLSSPreset' in assembly 'Unity.Postprocessing.Runtime, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null') assembly:Unity.Postprocessing.Runtime, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null type:EDLSSPreset member:(null)

    [Error :QuickPrice] at (wrapper managed-to-native) System.Reflection.Assembly.GetTypes(System.Reflection.Assembly,bool)

    at System.Reflection.Assembly.GetTypes () [0x00000] in <8ce0bd04a7a04b4b9395538239d3fdd8>:0

    at QuickPrice.Patches.CustomColorConverterPatch.GetTargetMethod () [0x0000f] in <98625c5e9df747c9ac876a530e8ca958>:0

    at SPT.Reflection.Patching.ModulePatch.Enable () [0x00000] in <26430ceccff54fea85acaf0ae5dcd34e>:0

    at QuickPrice.Plugin.EnableAllPatches () [0x0005f] in <98625c5e9df747c9ac876a530e8ca958>:0

    [Info : BepInEx] Loading [Shader Replace Mod 1.0.0]

    [Info :Shader Replace Mod] === Shader Replace Mod 正在加载 ===


    回复
    登堂入室

    blackout(实验室停电这个模组)没删干净,你应该用的是3.0之前的模组,删掉BepInEx/patchers里BlackoutPrepatch.dll这个文件,再装blackout的最新版本

  • yeeese如果你没有下过blackout这个模组那可能就是wedge这个模组和最新的blackdivision有冲突
    拉黑 2星期前 电脑端回复
  • Fatebio好的我一会试试
    拉黑 2星期前 电脑端回复
  • Fatebio@yeeese 我没有下过blckout,我打算看看是不是wedge的问题
    拉黑 2星期前 电脑端回复
  • 回复

    请登录之后再进行评论

    登录
    离线疑难解答
  • 今日 7
  • 内容 23458
  • 关注 1885
  • 聊天
    关注 0

    【招募】GRIFFIN TKF项目开工 期待你的加入 || 你是否想加入格里芬书写自己与人形的故事

    捐助我们

    • 微信
    • 支付宝
  • 签到
  • 任务
  • 发布
  • 模式切换
  • 偏好设置
  • 帖子间隔 侧栏位置: