|
前言
1.本文对2总人有用:1).打算做实体座舱或有猪肝的人;2).闲的蛋疼想折腾的人
2.如果火星了请无视即可
A. 最近在给Ka-50设置猪肝的键位时遇到一件比较困惑的事。不能识别出左手杆的开关放下,而A-10C却可以识别。经过官网某筒子提醒后去比较了一下猪的按键文件和Ka-50的按键文件,发现差异其实很明显。在A-10C里某些开关按键按键和松开(对应开关合上和断开)都会被处理。比如- {combos = {{key = "JOY_BTN24"}, }, down = iCommandPlane_EAC_ARM, up = iCommandPlane_EAC_OFF, name = "EAC Arm/Off", category = "LASTE Control Panel"},
复制代码 开关合上打开EAC,开关放下就断开EAC,很好理解吧。而Ka-50的摇杆配置文件采用的是标准的按键处理,只处理按下而不处理松开,要不就得一直摁住按钮了。- {combos = {{key = "JOY_BTN22"}, }, down = iCommandPlane_WeaponMode_Manual_Auto, name = "Weapon system control switch Manual/Auto ", category = "Ins Weapons Status and Control Panel PUI-800"},
复制代码 这表示BTN22按下后就切换武器模式手动/自动
如果我们想把这个功能设置到一个双向开关上,那么只要把这一条改为- {combos = {{key = "JOY_BTN22"}, }, down = iCommandPlane_WeaponMode_Manual_Auto, up = iCommandPlane_WeaponMode_Manual_Auto, name = "Weapon system control switch Manual/Auto ", category = "Ins Weapons Status and Control Panel PUI-800"},
复制代码 即可,很简单吧,加上up就行了。至此核心已经说完了。
总结流程如下:
1.先在option里把键位设置好,并记下要修改的开关(设置的时候会显示为JOY_BTNXX)
2.保存第一步设置的键位。
3.打开第二步里保存的键位文件(推荐用notepad++,地球人都说好用),切记不想重新再配置一遍的话就先做备份。
4.按照上述的方法把对up的处理加上,然后保存
5.进入option页面导入刚才修改好的配置文件。记得要戳一下OK按钮
6.进座舱尽情的去撸吧
细心的筒子可能已经发现这个办法不足的地方了:只有up/down用的是同一个键值,这就意味着狗大户的物理座舱开关状态和游戏的开关状态可能会不匹配(想想物理开关的武器保险在AMR位置,游戏开关的保险却是SAFE,这是一件多么喜闻乐见的事情啊)
解决办法就是给按下和松开分别设置不同的键值。以上面的例子来说,理想状况是down = iCommandPlane_WeaponMode_Manual, up = down = iCommandPlane_WeaponMode_Auto。遗憾的是现实和理想就像联通和电信,永远也不要指望他们能走到一起。也许有其他方法可以解决/绕过这个问题。有想知道的请点击。
B.鼠标点击开关循环切换问题。相信不少人遇到过点击IFFCC开关把系统关了的问题(还好CDU电源开关不常用)。不知道毛子怎么想的,开关居然可以循环切换,点到最右边了再点一下居然跳到最左边,蛋疼。。。
解决办法其实也很简单。
先来看A-10C interom面板- function multiposition_switch_intercom(hint_,device_,command_,arg_,count_,delta_,min_)
- local min_ = min_ or 0
- local delta_ = delta_ or 0.5
- return {
- class = {class_type.TUMB,class_type.TUMB},
- hint = hint_,
- device = device_,
- action = {command_,command_},
- arg = {arg_,arg_},
- arg_value = {delta_,-delta_},
- arg_lim = {{min_, min_ + delta_ * (count_ -1)},
- {min_, min_ + delta_ * (count_ -1)}},
- animated = {true,true},
- animation_speed = {1.5, -1.5},
- <font color="#ff0000"> cycle</font> = false,
- updatable = true,
- use_OBB = true
- }
- end
复制代码 cycle = false表示设置为不循环
那么如果把其他开关的处理也改成false是不是也能达到这个效果。经过验证确实有效
比如起落架灯光开关修改为- elements["PTR-LIGHTS-LAND"] = {
- class = {class_type.TUMB,class_type.TUMB},
- hint = _("Land Taxi Lights"),
- device = devices.LIGHT_SYSTEM,
- action = {device_commands.Button_14, device_commands.Button_14},
- arg = {655,655},
- arg_value = {0.1,-0.1},
- arg_lim = {{0,0.2},{0,0.2}},
- updatable = true,
- use_OBB = true,
- <span style="background-color: red;"> cycle = false</span>
- }
复制代码 红色这段是新加的。提醒粗心的筒子注意倒数第二行不能少了逗号,记得用英文的。现在再进游戏试试看是不是起落架灯光开关不会由最下边的位置跳到最上边去。
修改很简单吧。
以A-10C为例,大部分双向开关共用一个判断函数。- function default_2_position_tumb(hint_, device_, command_, arg_)
- return {
- class = {class_type.TUMB,class_type.TUMB},
- hint = hint_,
- device = device_,
- action = {command_,command_},
- arg = {arg_,arg_},
- arg_value = {1,-1},
- arg_lim = {{0,1},{0,1}},
- updatable = true,
- use_OBB = true
- }
- end
复制代码 因此只要修改这个函数就能解决大部分开关的问题。其他旋钮啥的修改方法类似。
这个文件应该还配置了鼠标左击/右击对应开关是朝上还是朝下,不过我暂时还没发现是哪一句控制的
到这里肯定有人会问:那么,请问这个文件我可以在哪里找到呢?
每个可以点击的飞机都有一个鼠标配置文件,叫做clickabledata.lua,此文件位于:安装目录\Mods\aircrafts\xxxx\Cockpit\Scripts。xxxx表示具体的飞机,比如F/A-18C
注意:
修改有风险,动手先备份,勿谓言之不预也。
强烈建议用notepad++修改lua文件,千万不要用系统自带的记事本去编辑文件,勿谓言之不预也。
|
|