|
本帖最后由 Regulus 于 2014-8-22 11:45 编辑
1.本文只适合DCS World 1.2.9及以上版本,不适合DCS Ka-50 1.0x
2.本文只适合可点击开关的键位
3.本文参考了http://forums.eagle.ru/showthrea ... ghlight=devices.lua,感谢原作者
4.本文以Ka-50为例,但是一样可以用到其他的可点击座舱的飞机
5.修改前备份原文件
内容简介:
本文描述了如何将游戏没有的按键增加到键位表里,或者修改原有按键的行为(比如按下按键打开某个开关,松开按键关闭开关)
一.文件结构介绍。
DCS W将设备输入(键盘,鼠标,头瞄等)的默认配置放在../Mods/Aircrafts/xxxx/Input/xxxx/zzzz/default.lua
其中,XXXX是飞机名字,比如Ka-50,A-10C,zzzz是设备名字,比如mouse,keyboard(键盘),joystick(摇杆)。在本文中我们会用到keyboard/default.lua和joystick/default.lua。在本文中我们只需要修改这2个文件即可
可点击开关的定义在../Mods/Aircrafts/xxxx/Cockpit/Scripts/clickabledata.lua
设备定义在../Mods/Aircrafts/xxxx/Cockpit/Scripts/device.lua
命令定义文件../Mods/Aircrafts/xxxx/Cockpit/Scripts/command_defs.lua
暂时只需要4个文件
二.文件修改介绍
先来看keyboard/default.lua的一行- {combos = {{key = 'A'}}, down = iCommandPlane_WeaponMode_Manual_Auto, name = 'Weapon system control switch Manual/Auto ', category = 'Ins Weapons Status and Control Panel PUI-800'},
复制代码 对应在joystickboard/default.lua里的是- {down = iCommandPlane_WeaponMode_Manual_Auto, name = 'Weapon system control switch Manual/Auto ', category = 'Ins Weapons Status and Control Panel PUI-800'},
复制代码 这一行表示一个键位,用于控制武器发射模式是自动还是手动。每按一次A切换一次。现在我要做一点修改,让猪肝油门上的APU开关,搬上去的时候是自动,放下来的时候是手动。
首先,在clickabledata.lua里找到对应的按键,如何用关键词查找不是本文内容,本文不作赘述:- elements["PUI800-AUTO-PTR"] = {class = {class_type.TUMB,class_type.TUMB}, hint = LOCALIZE("Manual/Auto weapon system control switch"), device = devices.WEAP_INTERFACE, action = {device_commands.Button_5,device_commands.Button_5}, stop_action = {}, arg = {403,403}, arg_value = {-direction*1.0,direction*1.0}, arg_lim = {{0.0, 1.0},{0.0, 1.0}}, use_OBB = true, updatable = true}
复制代码 需要关注的代码用红色标记
WEAP_INTERFACE表示这个开关的device是WEAP_INTERFACE。action表示用哪一个按钮。arg_lim表示开关的取值范围是0.0-1.0,arg_value表示取值的“步长”。在本例中,device是WEAP_INTERFACE,取值范围0.0-1.0,只能取0或者1,使用第5个按钮
现在,根据WEAP_INTERFACE在device.lua里找到对应的device ID是- devices["WEAP_INTERFACE"] = 12
复制代码 记住这个ID,后面会用到
在command_defs.lua的末尾有- start_command = 3000
- device_commands =
- {
- Button_1 = start_command + 1;
- Button_2 = start_command + 2;
- Button_3 = start_command + 3;
- Button_4 = start_command + 4;
- ......
复制代码 将joystickboard/default.lua下的- {down = iCommandPlane_WeaponMode_Manual_Auto, name = 'Weapon system control switch Manual/Auto ', category = 'Ins Weapons Status and Control Panel PUI-800'},
复制代码 修改为- {down = 3005, up = 3005, cockpit_device_id = 12, value_down = 1.0, value_up = 0.0, name = 'Weapon system control switch Manual/Auto ', category = 'Ins Weapons Status and Control Panel PUI-800'},
复制代码 新的命令表示在按下按键的时候,将设备12的第5个按钮的值设为1,松开按键的时候,将其设为0。通常都是按键按下为1,松开为0.但是也有例外,比如起落架就是反的,开关合上的时候为0,松开的时候为1。
为了降低阅读量,把keyboard里的那一行注释掉(在行首加--)- --{combos = {{key = 'A'}} , down = iCommandPlane_WeaponMode_Manual_Auto, name = 'Weapon system control switch Manual/Auto ', category = 'Ins Weapons Status and Control Panel PUI-800'},
复制代码 保存好后,进入游戏设置界面,找到对应的键位,然后把APU开关设置上去,就能使用了。
如果是旋钮或者三位开关的话则有点麻烦,需要用到多个键位,不过思路是一样的。
如果能解决自己增加可点击开关就好了,比如把总距杆的开关设置成可点击的
|
|