(→崩溃) |
(→漏洞) |
||
第246行: | 第246行: | ||
| | | | ||
*Check that no province history files reference a barony that is not defined in landed_titles (with [[The Validator]]) | *Check that no province history files reference a barony that is not defined in landed_titles (with [[The Validator]]) | ||
|- | |||
|Rivers are flowing from east to west on the map | |||
| | |||
* Rivers flowing east to west typically means that there is something wrong with the color index of rivers.bmp. <ref>[https://forum.paradoxplaza.com/forum/index.php?threads/map-mod-testing.588084/page-96]</ref> | |||
|- | |- | ||
| Title is badly displayed on the map (not visible or way outside its area) | | Title is badly displayed on the map (not visible or way outside its area) |
2020年3月5日 (四) 09:46的版本
故障排除是指定位游戏崩溃、漏洞或其他问题。一些调试功能在出售给玩家的版本中并不可用,但余下的功能依然足以解决问题。
日志文件
王国风云2本身在你的游戏文件夹(~\Documents\Paradox Interactive\Crusader Kings II\logs\
)记录了大量的日志文件。每次游戏启动时这些文件将被覆盖。
更多的日志记录功能可以用启动参数来打开(通过steam高级启动/定义启动参数):
-debug -debugscripts
文件名 | 描述 |
---|---|
game.log | 游戏内通知和log 指令的输出。从patch 2.4.1开始,只在-debugscripts 启用时记录
|
setup.log | 游戏数据loading日志(GUI、特质、修正等) |
error.log | 分析和记载错误。启用-debugscripts 时记载更多内容。
如果没有发现问题,以下几行应该显示为OK: [technology.cpp:718]: Missing Tech seed values: [technology.cpp:755]: None. [texturehandler.cpp:181]: Couldn't find texture file: . |
historical_setup_errors.log | 额外的关于头衔/角色历史的错误。只在-fullhistoricalsetuplog 启用时记录。
|
system_interface.log | 关于interface modding的错误 |
graphics.log | 关于map modding的错误 |
system.log | 硬件内容记录 |
system_interface.log | 界面错误 |
text.log | 关于localization键值的错误记录 |
script_optimizations.log | 关于廷臣触发的事件的错误记录 |
ai.log | |
exceptions.log | 如果游戏崩溃,你可能在此得到一份堆栈轨迹,和最后一个被调用的方法(例如:CLandedTitle::GetShortName) |
time.log | 记载游戏载入时间 |
memory.log | 记载游戏占用内存 |
载入
游戏的加载按照以下顺序:
- 载入地图
- 载入数据库
- 载入盾徽
- 载入事件
- 加载音效
- 载入原版历史(即使被MOD覆盖),依旧显示为加载音效(非常耗时的一步)
- 处理旗帜——从每个tga文件中获得旗帜数据
- 加载旗帜
- 加载图像
- 创建省份
- 载入地图(创建地形)
- 载入地图(创建边境)
- 载入地图(创建树木)
- 载入地图(创建纹理)
全部完成以后显示主菜单
崩溃
崩溃,或者说Crash To Desktop (CTD),令玩家失望,也是MOD作者的梦魇。崩溃的原因很难定位。
这里是一些已知的崩溃原因
现象 | 故障排除方法 |
---|---|
Instant CTD clicking Play in the launcher | Check no new defines.lua entries are missing in the mod (or better use defines folder to override, and avoid duplication) |
CTD at "Loading Databases" |
|
CTD at "Loading Events" |
|
CTD at "Loading Graphics
| |
CTD when rendering the lobby interface | Check that interface .gui and .gfx files are properly merged with vanilla, if copied in the mod. |
CTD on applying history (initial load or selecting a bookmark) | Check that all groups in technology history have an entry for earliest starting date of the mod. See technology modding. |
CTD on load/resign |
|
CTD after 1 in-game day |
|
CTD after a random elapsed time |
It is the worst kind of CTD, because it can be caused by ANY event or decision occurring in the game.
|
CTD when hovering or clicking an event option | Invalid syntax in the event, or calling a command with an invalid value. |
CTD when clicking on religion screen | Check that no more than 5 holy sites are defined in landed_titles for that religion |
CTD when clicking on button to open College of Cardinals | See Interface modding#Papal succession |
CTD when starting typing specific letters in the Title finder | Check that there are no empty geographical regions (at least 1 valid province) |
CTD when you click the "Arrange Marriage" rings button next to a character's portrait | Check that no character, living or dead, that is conceived illegitimately is missing the required "Bastard" Trait. The Trait must be placed in each character's Character History entry BEFORE their birth date and WITHOUT being enclosed in brackets. |
排除错误
Windows
In last resort you can use Visual Studio (including the free Express editions; get the "Windows Desktop" one) to see detailed debugging information. Though it won't let you debug step by step, as the sources for the game are not available.
Simply start the game, then use the Debug > Attach to process... menu option. Use the Output window to read the game's messages, which will include script validation errors and performance data.
For best results create an empty project and configure it to launch CK2.exe with your mod active (i.e. with the argument -mod=mod/foo.mod
); check the documentation for details on how to do this. You will then be able to launch the game with debugging by clicking the green Play button in Visual Studio. This will ensure that you capture any problems that show up right after the game starts.
When the game crashes Visual Studio will freeze it, tell you where the offset at which crash happened, and provide the option to save a "minidump". The offset and dump won't mean much to you but if you want to report the crash to Paradox they would find both useful.
macOS
Install Xcode from the App Store, then run xcode-select --install
in a Terminal window.
Launch the game from lldb:
cd ~/Library/Application\ Support/Steam/SteamApps/common/Crusader\ Kings\ II lldb ck2.app/Contents/MacOS/ck2 r -- -debug -debugscripts
If the game crashes, it will be paused in the debugger, letting you use the bt
command to get a stack trace. Most other debugger features are unavailable without source code.
Meanwhile, use tail in separate terminal tabs to monitor the game's own logs:
tail -F ~/Documents/Paradox\ Interactive/Crusader\ Kings\ II/logs/game.log tail -F ~/Documents/Paradox\ Interactive/Crusader\ Kings\ II/logs/error.log
漏洞
由于你可以在漏洞发生后继续看到游戏内文本,漏洞通常比崩溃容易定位。 大多数不影响功能的漏洞可以通过The Validator,一个第三方的用于检测脚本文件的工具来确定。
现象 | 故障排除方法 |
---|---|
空白的事件弹出窗口,强制暂停游戏且无法被关闭 |
|
Scripting keywords appearing in decisions/councillor names |
|
Decision not appearing |
|
Decision not having any effect when taken |
|
Truncated localization |
|
Localization not appearing in game |
|
Localized names show strange characters (Ã) |
|
Events not triggering (but OK via console testevent) |
|
Titles have wrong flags |
|
Black coats of arms |
|
Missing layers in portraits for custom ethnicities | |
Casus Belli immediately ends inconclusively |
|
All units models use wrong gfx |
|
Rivers are flowing from east to west on the map |
|
Title is badly displayed on the map (not visible or way outside its area) |
|
Popups like naming children not showing up |
# ID 1 and 2 are empty dummy events that are used by the message system to spawn messages # that should be displayed as events, their descriptions are filled in by the message system letter_event = { id = 1 is_triggered_only = yes desc = "A" } character_event = { id = 2 is_triggered_only = yes desc = "B" } |
测试
包括检测你的MOD是否会导致崩溃、有无漏洞、无效功能或者游戏体验/平衡性问题。 测试工具包括:
- 控制台指令,提供许多用于调试的功能(或者作弊功能...),尤其是
play
、testevent
和event
。注意部分以debug_开头的命令在上市版本中不可用。 - 作弊MOD,简化控制台指令操作或实现控制台没有的功能。
- 观察者模式(控制台指令
observe
),测试游戏平衡和在长期游戏中检测随机崩溃。
参考资料
历史 | 角色 • 家族 • 省份 • 头衔 • 剧本 |
脚本 | 指令 • 条件 • 作用域 • 修正 • 事件 • 决议 |
常规 | 定义 • 游戏规则 • 另类开局 • 宗教 • 文化 • 政体 • 特质 • 血脉 • 科技 • 法律 • 建筑 • 宣战理由 • 朝贡国 • 单位 • 目标 • 疾病 • 死亡 • 荣誉头衔 • 社团 • 宝物 • 地图外政权 • 内阁成员 • 贸易路线 • 继承 • 奇观 • 称号 |
图像/音效/本地化 | 地图 • 图形 • 盾徽 • 肖像 • 界面 • 小地图 • 音乐 • 本地化 |
其他 | 故障排除 • 验证器 • 控制台指令 • 编辑游戏存档 • Steam创意工坊 • EU4转档器模组制作 |