Captain Orso Posted August 16, 2021 Share Posted August 16, 2021 The actual P-47 has the left and right hardpoint jettison handles situated next to each other so that the pilot can hook his fingers around both at the same time to release the payloads from both wings simultaneously, as opposed to pulling them one at a time and causing a sudden imbalance in the wing-loads. Is there any way to create a bind to operate both in-cockpit handles through the operation of a single HOTAS switch? When you hit the wrong button on take-off System Specs. Spoiler System board: MSI X670E ACE Memory: 64GB DDR5-6000 G.Skill Ripjaw System disk: Crucial P5 M.2 2TB CPU: AMD Ryzen 7 7800X3D PSU: Corsair HX1200 PSU Monitor: ASUS MG279Q, 27" CPU cooling: Noctua NH-D15S Graphics card: MSI RTX 3090Ti SuprimX VR: Oculus Rift CV1 Link to comment Share on other sites More sharing options...
scoobie Posted August 16, 2021 Share Posted August 16, 2021 AFAIK no, there isn't any way within DCS. Nevertheless, you may want to try external joystick software to create a "virtual copy" of your physical joystick button on a virtual joystick. Thus you get two buttons in the game (one is real, the other fake, but DCS doesn't know that), both are always pressed/released in tandem. Then you just assign one of them to drop the left wing bomb and the other to the right one. I do such things quite a lot, both with buttons and sometimes even axes. I'm using software called Joystick Gremlin (and "vJoy" virtual joystick), but I know there are more programs of this type out there. i7-8700K 32GB 2060(6GB) 27"@1080p TM Hawg HOTAS TPR TIR5 SD-XL 2xSD+ HC Bravo button/pot box Link to comment Share on other sites More sharing options...
Captain Orso Posted August 17, 2021 Author Share Posted August 17, 2021 Thanks for the reply, Scoobie...... snack? jk I have a Thrustmaster Warthog HOTAS, both stick and throttle. I could use Target, but I'm not willing add yet another software layer to accomplish the very simplest of tasks. 1 When you hit the wrong button on take-off System Specs. Spoiler System board: MSI X670E ACE Memory: 64GB DDR5-6000 G.Skill Ripjaw System disk: Crucial P5 M.2 2TB CPU: AMD Ryzen 7 7800X3D PSU: Corsair HX1200 PSU Monitor: ASUS MG279Q, 27" CPU cooling: Noctua NH-D15S Graphics card: MSI RTX 3090Ti SuprimX VR: Oculus Rift CV1 Link to comment Share on other sites More sharing options...
scoobie Posted August 18, 2021 Share Posted August 18, 2021 (edited) Naah, I'd be hard to digest If you're using the Target software, I guess you can achieve the desired result as well. The main point is that ED said they were not going to implement this feature in DCS. I think I know why, but anyway... either there exists some smart trick you can do in some Lua files for the Jug (a trick I have no idea about) or you really HAVE to use some external software. Pick the one you like most, but it seems you have to do it that way. Edited August 18, 2021 by scoobie i7-8700K 32GB 2060(6GB) 27"@1080p TM Hawg HOTAS TPR TIR5 SD-XL 2xSD+ HC Bravo button/pot box Link to comment Share on other sites More sharing options...
Captain Orso Posted August 18, 2021 Author Share Posted August 18, 2021 Firstly, I was offering the "Scoobie snack". Personally, I'm not that much into cannibalisms. No, I'm not using Target, which is exactly the point; I don't want to. I'm willing to mod the ..\Input\Stick\default.lua file to allow what I want, but I've never seen a method to do this. This is exactly why I ask When you hit the wrong button on take-off System Specs. Spoiler System board: MSI X670E ACE Memory: 64GB DDR5-6000 G.Skill Ripjaw System disk: Crucial P5 M.2 2TB CPU: AMD Ryzen 7 7800X3D PSU: Corsair HX1200 PSU Monitor: ASUS MG279Q, 27" CPU cooling: Noctua NH-D15S Graphics card: MSI RTX 3090Ti SuprimX VR: Oculus Rift CV1 Link to comment Share on other sites More sharing options...
scoobie Posted August 18, 2021 Share Posted August 18, 2021 Well... you can also use the patent invented by @LeCuvier. His patent was meant and works nice with switches protected by a cover, but for bomb dropping it comes with an undesirable side effect. When you release the button that has just dropped left and right wing bombs at the same time, the right handle will stay up (pulled)! So if you're going to then land and get another pair of bombs, you will have to have another binding for "Jettison Right Wing Hardpoint" - using it will lower the handle again. It may be a key on the keyboard or whatever. So yeah... it's better than nothing, but not quite a solution, I guess. {pressed = device_commands.Button_9, down = device_commands.Button_8, up = device_commands.Button_8, cockpit_device_id = devices.WEAPONS, value_pressed = 1.0, value_down = 1.0, value_up = 0.0, name = _('Jettison Left And Right Wing Hardpoints'), category = {_('Weapons'), _('Input.Generic.drop_ordnance_arming_panel')}}, PS. Yes, me English be rudimentary. Sometimes I get what they're saying, sometimes I don't i7-8700K 32GB 2060(6GB) 27"@1080p TM Hawg HOTAS TPR TIR5 SD-XL 2xSD+ HC Bravo button/pot box Link to comment Share on other sites More sharing options...
LeCuvier Posted August 19, 2021 Share Posted August 19, 2021 Unfortunately I found no way to trigger more than 3 commands in a single line of "default.lua". That's because I cannot pair the command "pressed" with an equivalent of the "up" command. I have added a second "up" and "value_up = 0.0" but that has no effect. The only way to create more commands with a single button is via a macro. That's the mechanism used for the auto-start and auto-stop function. ED has built in some provision for a third macro, and I build on that with a macro that pushes all 19 CB's in on the P-47D. I could share that method but doubt that anybody would be interested in the context of this thread. LeCuvier Windows 10 Pro 64Bit | i7-4790 CPU |16 GB RAM|SSD System Disk|SSD Gaming Disk| MSI GTX-1080 Gaming 8 GB| Acer XB270HU | TM Warthog HOTAS | VKB Gladiator Pro | MongoosT-50 | MFG Crosswind Pedals | TrackIR 5 Link to comment Share on other sites More sharing options...
scoobie Posted August 19, 2021 Share Posted August 19, 2021 Haha... out of dispair I added "released" command in the hope that it would work as a pair to "pressed" But no, of course - DCS is oblivious of the word "released". "pressed" is meant to be alone. I never do auto-start/stop and have never looked at how it works in Lua files, so if you ask me - YES, PLEASE, share the method (if only you can find time to do it)! Your tips really help people. I don't know if Capt. Orso is insterested too, but I for one am. Alternatively, you have this (relatively) new thread in "Guides & Tutorials", the one with the guide in PDF and your Lua commands for various planes. Great stuff, BTW! I guess that place could be better for this, people could find all the knowledge at one specific place. i7-8700K 32GB 2060(6GB) 27"@1080p TM Hawg HOTAS TPR TIR5 SD-XL 2xSD+ HC Bravo button/pot box Link to comment Share on other sites More sharing options...
LeCuvier Posted August 19, 2021 Share Posted August 19, 2021 (edited) I posted the attached "How-to" document years ago but cannot remember where. I also attach a copy of my file "Macro_sequencies.lua" (folder "...\DCS World OpenBeta\Mods\aircraft\P-47D-30\Cockpit\Scripts". If you compare it with the stock file in Notepad++ you will see that I added some declarations at the top (marked with the comment "-- added HWF): dofile(LockOn_Options.script_path .. "command_defs.lua") dofile(LockOn_Options.script_path .. "devices.lua") std_message_timeout = 15 local t_start = 0.0 local t_stop = 0.0 local delta_t_com = 2.0 start_sequence_full = {} stop_sequence_full = {} cockpit_illumination_full = {} -- added HWF function push_command(sequence, run_t, command) sequence[#sequence + 1] = command sequence[#sequence]["time"] = run_t end function push_start_command(delta_t, command) t_start = t_start + delta_t push_command(start_sequence_full,t_start, command) end function push_stop_command(delta_t, command) t_stop = t_stop + delta_t push_command(stop_sequence_full,t_stop, command) end function push_CBs_command(delta_t, command) -- added HWF t_stop = t_stop + delta_t push_command(cockpit_illumination_full,t_stop, command) end and the macro to push the CB's at the end: -- added HWF: Macro to push all CB's to simplify manual start push_CBs_command(1.0,{message = _("Push CB's Macro Starting"),message_timeout = std_message_timeout}) push_CBs_command(0.01, {device = devices.MAIN_SWITCH_BOX, action = device_commands.Button_54, value = 1.0})--CB Guns LO push_CBs_command(0.01, {device = devices.MAIN_SWITCH_BOX, action = device_commands.Button_56, value = 1.0})-- CB Guns RI push_CBs_command(0.01, {device = devices.MAIN_SWITCH_BOX, action = device_commands.Button_58, value = 1.0})-- CB Guns RO push_CBs_command(0.01, {device = devices.MAIN_SWITCH_BOX, action = device_commands.Button_60, value = 1.0})-- CB Fuel Pumps push_CBs_command(0.01, {device = devices.MAIN_SWITCH_BOX, action = device_commands.Button_62, value = 1.0})-- CB Oil Cooler push_CBs_command(0.01, {device = devices.MAIN_SWITCH_BOX, action = device_commands.Button_64, value = 1.0})-- CB Intercooler push_CBs_command(0.01, {device = devices.MAIN_SWITCH_BOX, action = device_commands.Button_66, value = 1.0})-- CB Guns Relay push_CBs_command(0.01, {device = devices.MAIN_SWITCH_BOX, action = device_commands.Button_68, value = 1.0})-- CB Gun Sight push_CBs_command(0.01, {device = devices.MAIN_SWITCH_BOX, action = device_commands.Button_70, value = 1.0})-- CB Canopy push_CBs_command(0.01, {device = devices.MAIN_SWITCH_BOX, action = device_commands.Button_72, value = 1.0})-- CB LLight (or ILight?) push_CBs_command(0.01, {device = devices.MAIN_SWITCH_BOX, action = device_commands.Button_74, value = 1.0})-- CB Warnings push_CBs_command(0.01, {device = devices.MAIN_SWITCH_BOX, action = device_commands.Button_76, value = 1.0})-- CB CLight push_CBs_command(0.01, {device = devices.MAIN_SWITCH_BOX, action = device_commands.Button_78, value = 1.0})-- CB Pitot push_CBs_command(0.01, {device = devices.MAIN_SWITCH_BOX, action = device_commands.Button_80, value = 1.0})-- CB NLight push_CBs_command(0.01, {device = devices.MAIN_SWITCH_BOX, action = device_commands.Button_82, value = 1.0})-- CB RLight push_CBs_command(0.01, {device = devices.MAIN_SWITCH_BOX, action = device_commands.Button_84, value = 1.0})-- CB Radio push_CBs_command(0.01, {device = devices.MAIN_SWITCH_BOX, action = device_commands.Button_86, value = 1.0})-- CB Prop push_CBs_command(0.01, {device = devices.MAIN_SWITCH_BOX, action = device_commands.Button_88, value = 1.0})-- CB Bombs push_CBs_command(0.01, {device = devices.MAIN_SWITCH_BOX, action = device_commands.Button_90, value = 1.0})-- CB CRFlaps push_CBs_command(6.0,{message = _("Push CB's Macro COMPLETE"),message_timeout = std_message_timeout}) You could just change the 4 first commands (device, action and value) to produce the jettison lever commands and delete the remaining commands, and modify the 2 message lines. The message lines are not necessary but I like them for debugging. If you want it to be neat, change the function name from "push_command" to something like "jettison_wing_hardpoints". The only other thing you need to do is add this line to "default.lua" (change the name of course!) and bind it to a button: {down = 300, name = _('Push CBs'), category = _('Cheat')}, -- Requires macro! On some airplanes I added two macros (for interior lights) but the second macro is more tricky. As I said,a lot of hoops to jump through and more rewarding for long command sequences. How to Create Macros_2019-07-26.pdf Macro_sequencies.lua Edited August 19, 2021 by LeCuvier LeCuvier Windows 10 Pro 64Bit | i7-4790 CPU |16 GB RAM|SSD System Disk|SSD Gaming Disk| MSI GTX-1080 Gaming 8 GB| Acer XB270HU | TM Warthog HOTAS | VKB Gladiator Pro | MongoosT-50 | MFG Crosswind Pedals | TrackIR 5 Link to comment Share on other sites More sharing options...
scoobie Posted August 19, 2021 Share Posted August 19, 2021 (edited) This is splendid, thank you! I'll plough through it right away. No, no - no need for Notepad++. If anybody can touch type, I can recommend Vim - a modal editor (today a forgotten term). I've been using it for years and now couldn't live without it. Gee... I must learn to read. For file comparison/merge I normally use Kdiff3. Thanks again Now... it's not that I'm trying to "convert" Cpt. Orso, but I thought I could just emphasize that in practice one doesn't have to really operate that "external software for joysticks", on a daily basis. I don't need to launch it, configure it, select profile or whatever - not at all. Here's how it's possible... For hardware-related reasons (actually it's bugs in Win10 USB support, not hardware), I launch DCS from a batch file. I just have to. Since I do it either way, I can add Joystick Gremlin to it, so it launches together with DCS. Now, for all warbirds I have a common "profile" (smartly named "warbirds.xml" ) in Joystick Gremlin. It's easy as warbirds aren't "controls intensive", they're not flying computers. The batch file launches the Gremlin, the Gremlin hops into Windows SysTray and enables the last used profile (warbirds.xml). I don't have to do anything, it's all automatic. I quote this batch file if anyone's interested. It looks a bit over the top, but this is because I'm doing more things there. So... the point is IT'S NOT AS BAD AS PEOPLE MAY THINK, really @echo off echo Restarting Leo Bodnar... pnputil /disable-device "USB\VID_16C0&PID_05B7\A01232" pnputil /enable-device "USB\VID_16C0&PID_05B7\A01232" echo Starting Stream Deck... start "" "D:\Elgato\StreamDeck\StreamDeck.exe" tasklist /FI "IMAGENAME eq joystick_gremlin.exe" 2>NUL | find /I /N "joystick_gremlin.exe">NUL if "%ERRORLEVEL%"=="0" ( echo Joystick Gremlin is already running. ) else ( echo Starting Joystick Gremlin... start "" /D D:\Gremlin joystick_gremlin.exe ) tasklist /FI "IMAGENAME eq TrackIR5.exe" 2>NUL | find /I /N "TrackIR5.exe">NUL if "%ERRORLEVEL%"=="0" ( echo TrackIR is already running. ) else ( echo Starting TrackIR... start "" "C:\Program Files (x86)\NaturalPoint\TrackIR5\TrackIR5.exe" ) echo Starting DCS... start "" "D:\gry\DCS World\bin\DCS_updater.exe" timeout /T 7 rem pause Edited August 19, 2021 by scoobie i7-8700K 32GB 2060(6GB) 27"@1080p TM Hawg HOTAS TPR TIR5 SD-XL 2xSD+ HC Bravo button/pot box Link to comment Share on other sites More sharing options...
Recommended Posts