
问的人太多了 单独开一个贴比较容易解决, 虽然严格上来讲不能算是排除 只能说是发现问题.
你只需要找到Payday2的Crashlog(崩溃日志)文件, 每次游戏崩溃 里面的内容都会更新.
具体位置: C:\用户\你的用户名\AppData\Local\PAYDAY 2\crashlog.txt
打开之后你就能看到最近游戏崩溃的记录日志, 里面开头的内容大致意思如下:
-------------------------------
崩溃时间
Application has crashed: C++ exception
具体导致问题的脚本行数与关键词
SCRIPT STACK
崩溃发生时所要读取的脚本
-------------------------------
往下的内容没有参考价值, Script Stack给出的答案通常很难找出问题, 大多数情况下你都能直接通过上一行直接判断.
举个例子, 这是我最近的游戏崩溃记录:
----------------------------------------------------------------------
Thu Nov 29 00:05:46 2018
Application has crashed: C++ exception
assets/mod_overrides/MyRebalance/Hooks/Copchanges.lua:32: attempt to index global 'weapon' (a nil value)
SCRIPT STACK
new() core/lib/utils/coreclass.lua:35
init() lib/tweak_data/tweakdata.lua:571
new() core/lib/utils/coreclass.lua:35
lib/tweak_data/tweakdata.lua:3084
require() =[C]
OrigRequire() @mods/base/base.lua:151
require() @mods/BeardLib/Core.lua:215
lib/setups/setup.lua:35
require() =[C]
OrigRequire() @mods/base/base.lua:151
require() @mods/BeardLib/Core.lua:215
lib/setups/gamesetup.lua:6
require() =[C]
OrigRequire() @mods/base/base.lua:151
require() @mods/BeardLib/Core.lua:215
lib/setups/networkgamesetup.lua:1
require() =[C]
OrigRequire() @mods/base/base.lua:151
require() @mods/BeardLib/Core.lua:215
lib/entry.lua:6
require() =[C]
OrigRequire() @mods/base/base.lua:151
require() @mods/BeardLib/Core.lua:215
core/lib/coreentry.lua:19
-------------------------------
从这里可以直接从第一行看到导致我崩溃问题的mod (mod_overrides下的MyRebalance) , 并且列出了具体文件名 (Copchanges) 以及具体导致崩溃的脚本行数 (第32行) , 还可以看到这里具体导致问题的是Copchanges在尝试寻找一个叫做weapon的阈值, 但这个阈值却并不存在.
如果你是mod开发者 有了这些信息你就应该可以开始debug了, 至于普通玩家就只需要移除这个mod (MyRebalance文件夹) 就能解决你的问题.
较常见的崩溃关键词:
Application has crashed: access violation
这种崩溃日志相当于什么也没有讲, 通常是内存溢出之类的问题导致的, 看到这种崩溃可以直接忽略, 不一定是任何mod导致的问题.
Application has crashed: C++ exception
Could not load texture because IDirect3D9::CreateTexture call failed.
Direct3D could not allocate sufficient memory to complete the call.
如果不是你电脑太烂, 那就是资源占用过多, 不要Multi-task或者窗口化游戏.
Application has crashed: C++ exception
[string "core/lib/units/somethingsomething/overkillsobad.lua"]:69: attempt to index field 'lmao' (a nil value)
看到开头的Core/lib就意味着这是游戏本体的代码编写问题, 这是开发组自己写代码的水平太烂, 除非你要反馈给开发组, 可以直接忽略.
如果有什么问题真的找不到原因的再在这个贴子里回复, 但在回复之前确保你的mod都是最新版本.
