DCS 多屏幕下膝板错位更正
如果有使用多屏幕玩dcs,比如外接了mfcd或者使用helios分屏。会发现根据你多屏幕的排列布置方式而出现膝板与操纵指示器的错位的现象。
这问题已经遗留很久,ED也一直没有真正的修好。
但是我们是可以自己通过修改lua脚本文件是可以让它们能正常使用的。
不过有点小限制,就是你dcs的主屏幕必须是在windows多屏配置中 最左上角的那一块。
首先说说膝板,这个相对来说还是比较简单的。以下介绍的方法是可以连服务器多人游戏的,也就是不会触发文件完整性检查
只不过我们需要多修改几个文件,先定位到自己dcs的安装目录,比如:"steam\steamapps\common\DCSWorld"
首先定位第一个文件。
DCSWorld\Scripts\Aircrafts\_Common\Cockpit\ViewportHandling.lua
将这文件复制一份并改名放在同目录下 比如说:ViewportHandling-kb.lua
用任意文本编辑器打开你所复制重名的文件ViewportHandling-kb.lua
直接看第3和第4行,修改 local w = LockOn_Options.screen.width; 改为 local w = 1920;(主屏幕的分辨率宽度)修改 local h = LockOn_Options.screen.height; 改为 local h = 1080;(主屏幕的分辨率高度)然后保存。如果你主屏是4k或者其他分辨率 自己填入自己的数据
定位第二个文件。
DCSWorld\Scripts\Aircrafts\_Common\Cockpit\KNEEBOARD\indicator\init.lua
将这文件也同样复制一份并改名放在同目录下 比如说:init-kb.lua
打开刚才的文件init-kb.lua
第2行,修改dofile(LockOn_Options.common_script_path.."ViewportHandling.lua")为dofile(LockOn_Options.common_script_path.."ViewportHandling-kb.lua") 保存。此双引号的文件名填上你第一步骤中修改的文件名即可
定位第三个文件。
DCSWorld\Scripts\Aircrafts\_Common\Cockpit\KNEEBOARD\declare_kneeboard_device.lua
同样复制并改名,比如说:declare_kneeboard_device-kb.lua
打开刚才的文件declare_kneeboard_device-kb.lua
第14行,修改local init_script = LockOn_Options.common_script_path.."KNEEBOARD/indicator/init.lua" 为 local init_script = LockOn_Options.common_script_path.."KNEEBOARD/indicator/init-kb.lua" 保存。文件名为你第4步骤中修改的文件名;文件名前的目录别乱了
最后修改每架飞机的膝板文件 (没错,每个飞机都要单独改)
注意 可能不同模组飞机下面的Cockpit\Scripts\device_init.lua 目录结构不太一样,这文件可能在Scripts\里,也有可能在Cockpit\里;
DCSWorld\Mods\aircraft\飞机名称\Cockpit\Scripts\device_init.lua
直接打开并修改,一般来说在最后面,找到dofile(LockOn_Options.common_script_path.."KNEEBOARD/declare_kneeboard_device.lua") 将""号中的文件名改成第5步中的名字。注意前面的KNEEBOARD/要保留
如此一环套一环的修改,就能让游戏加载飞机时,使用我们在第2步修改的参数而不触发绿盾验证,让膝板单独定位在从屏幕坐标左上角0,0到1920,1080(我们设定的主屏幕)的区域之中了
注意1。某些飞机默认膝板是在左边的,比如米格21。如果默认也是错位的,建议直接改成右边:一般来说这种在左边的飞机 在第7步修改代码的上一行 应该有一句 is_left = true;直接把true改成false即可,不在上一行or找不到建议搜索看下。
注意2。修改步骤中给的第几行,在特定版本下是准确的(本文编写时游戏版本2.5.6.58125),不保证随着游戏更新而还是相同的行数,如果不对,就自行搜索关键字找到对应代码。且指不定哪天ED终于想起来大改膝板代码,也许就修复这问题了。
提示:如果嫌改这么多文件麻烦,自己又只是单人玩,不去服务器联网多人的话,完全可以直接在第1步的原文件上做第2步的修改即可。这样只是无法通过dcs的文件完整性验证不让连接有绿盾的多人服务器而已。单人玩是没有影响的
操纵指示器的错位以后有空咕咕咕写一下。

