You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
GetPortraitTexture Null asset path for CardDef: HiddenCard (Clone), premium level: GOLDEN, fallbackToLowerClass: True, usedPremium: NORMAL
...(重复 18 行,premium level 在 GOLDEN / NORMAL 之间交替)
ASSEMBLEFX_Assembled_Intro_NEW (Spell).BuildFsmStateMap() - SpellStateType DEATH is missing a SpellStateAction.
NullReferenceException: Object reference not set to an instance of an object
at AssembleUIManager.OnShowChoices (ChoiceCardMgr+ChoiceState choiceState, Entity sourceEntity) [0x001ac] in <f6cd9545200d4f21ba2f2cb33bcf575d>:0
at AssembleUIManager+<>c__DisplayClass57_0.<ShowChoices>b__0 (Spell spell, SpellStateType prevStateType, System.Object userData) [0x0001a] in <f6cd9545200d4f21ba2f2cb33bcf575d>:0
at PlayMakerFSM.Update ()
at Fsm.UpdateState ()
Activity
heee000 commentedon Oct 16, 2026
遇到同样问题
ZQY-Joker commentedon Oct 18, 2026
补充一份完整的日志证据(同一问题,环境 Windows / 直连战网)
环境
复现条件(可稳定复现,已做对照实验)
触发只需要两项同时成立,不需要开「异画优先」:
卡牌最高特效 = OnlyMy(或All)异画特效 = true然后用任意带「拼装」词条的随从上场,只要拼装的三个选项里出现任意一张有异画的随从,进入「选择一项替换」界面就必定卡死。
对照实验结论
卡牌最高特效=OnlyMy+异画特效=true(原始默认)卡牌最高特效=Disabled(异画特效仍为 true)卡牌最高特效=OnlyMy+异画特效=false→ 问题精确定位在**「强制最高特效时套用异画」**这条路径上,最高特效(金卡/钻石)本身没问题。
卡死时的具体表现
不是闪退,是界面完全无响应,只能强杀进程。界面停在「选择一项替换」,左右两张牌的卡面文字变成:
中间那张显示暴雪的占位调试文案:
日志证据
%USERPROFILE%\AppData\LocalLow\Blizzard Entertainment\Hearthstone\Player.log,崩溃瞬间:猜测的成因
拼装选项使用的是
HiddenCard占位 CardDef,本身没有任何卡图/异画资源(日志里GetPortraitTexture Null asset path就是在说这件事)。强制最高特效的代码把它当成「有异画的卡」去套异画贴图,拿到的Texture是 null;AssembleUIManager.OnShowChoices里没有做判空,于是抛 NPE。因为异常发生在
ShowChoices的 PlayMaker 回调内部,Spell的 FSM 状态推进被打断(SpellStateType DEATH is missing a SpellStateAction),UI 就永远卡在「等待选择」状态,而不是报错退出。建议的修法
套用异画贴图前加判空,或者干脆跳过拼装/隐藏卡:
Texture != null,为 null 就return true走原逻辑(和Patches/PatchActorMod.cs里PatchSetPortraitTexture的处理方式一致,那条路径有 try/catch,所以卡牌MOD没这个问题);GetPortraitTexture返回 null 说明没有),没有就不强制;AssembleUIManager.OnShowChoices执行期间(可用 Harmony Prefix/Postfix 加个标志位)临时关闭异画强制。第 1 条改动最小,也最符合「异画特效」的语义——没有异画的卡本来就不该被套异画。
1213822 commentedon Oct 19, 2026
写的太详细,厉害了,希望早点修复