在使用 LBS 的二次元 Mod 时,偶尔会出现角色脸部变暗且无法恢复的情况(除非重启游戏或重新加载脚本),同时 REFramework 会报错。我尝试用 AI 修复了这个 Bug,经过测试,无论是高强度刷鱼,还是一整晚开荒过剧情、反复穿脱装备,都没有再出现黑脸无法恢复或REF报错的情况。
Bug 原因:
原脚本中 PlayerFace 变量存储的是一个 via.Transform 对象(对应游戏里角色的脸部骨骼节点)。
当角色切换装备、进出帐篷、读取存档或播放过场动画时,游戏会销毁旧的 Transform 对象并创建新的。
但 Lua 脚本里的 PlayerFace 变量没有更新,仍然指向已经被销毁的对象。
此后脚本调用 Face:get_GameObject() 时,Lua 尝试对一个已无效的 C++ 对象执行方法,导致 C++ 异常 Invoke threw an exception,脚本停止运行。
修复原理:
用 pcall 捕获异常
将 Face:get_GameObject() 放入 pcall 中执行。如果调用失败(因为对象已无效),pcall 会返回 false 和错误信息,脚本不会崩溃,而是直接跳过本次操作。
增加对象有效性预判
调用 pcall 前先用 sdk.is_managed_object(Face) 检查 Face 是否仍为有效的托管对象。如果检查不通过,直接返回,避免后续操作。
lua bone system N网链接:https://www.nexusmods.com/monsterhunterwilds/mods/2112?tab=files



闽公网安备35010302000678号



















































