PhilippRauch 0 Posted January 24, 2009 If we can map any and endless (joystick)keys to actions, scripts and variables that would be nice. I have several sticks with like 32 buttons and 8 rotary and whatnot... especially if i use a HOTAS setup there would be loads of possible switches and buttons and dials to attach to some functions. i.e. I mean that addonmakers can add their "actions" (or GlobalVariables etc) to the games keymap menu, where the player then can set his joystick buttons or keyboard or... as he likes. for example: I write some in my config like CfgUserInput or CfgHID or so... class NewKeyMapMenuEntry {    idp = 34 // position in Keymap list.    isRemappable = 0; // if so user can change it to own inside game    isKeyboard = 0; // for creating listentry    isJoystick = 1;    isWheel = 0;    isPedal = 0;    isAnalog = 0; // for sliders and dials or throttles    isInputControl[] = "Button";     // or "Rotary", "Dial", "Switch", "CoolieHatMouse",  depending on what type inputcontrol we want it to be    HIDid = 32; // to set the DIK or HID id or such if  "isRemappable = 0"    entryName = "Firebutton - SuperAddon";  // name appearing in list    actions[] = {["this"] spawn Keychecksrc; VIG_keycheckFireBx32 = true}; // well what happens on keypress etc       // if analog = 1 "this" will contain the momentary state of the dial/throttle i.e. 10%, 55% etc.. }; Which will give a entry under options/keysettings like: Firebutton - SuperAddon  [JoyButton_32] the [JoyButton_#] is made up from the isJoystick,isInputControl,HIDid If you have isRemappable = 1 then it would be Firebutton - SuperAddon  [JoyButton_XXXXXXXX] with XXXXXXXX you new attached key. (HID id or such) how about something like that? i know it could be done via armalib with its pipes and an external keymapper, but that would be just a workaround Share this post Link to post Share on other sites
baddo 0 Posted January 24, 2009 I support this suggestion. Share this post Link to post Share on other sites
Maddmatt 1 Posted January 24, 2009 I like this suggestion Would be very useful especially for mods like ACE. ACE already has custom controls and the ability to configure them like this would be much more user-friendly than the current method. Share this post Link to post Share on other sites
PhilippRauch 0 Posted January 26, 2009 is it there already???i am not really sure, but this might be useful to some.. <table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">class ControllerSchemes { class Default { name = $STR_XBOX_CONTROLER_SCHEME_DEFAULT; class Gamepad { class ButtonDeadZones : ButtonDeadZonesDefault { deadZone_LeftTrigger[] = {192, 128}; deadZone_RightTrigger[] = {80, 64}; }; class ThumbStickDeadZones { leftX = 0.21; leftY = 0.23; rightX = 0.21; rightY = 0.23; }; class Actions { ToggleWeapons[] = {0x00050000 + 1}; DefaultAction[] = {0x00050000 + 13}; ReloadMagazine[] = {0x00050000 + 2}; LookAround[] = {0x00050000 + 12}; LockTarget[] = {}; RevealTarget[] = {0x00050000 + 12}; VehLockTargets[] = {0x00050000 + 14}; PrevAction[] = {0x00050000 + 4}; NextAction[] = {0x00050000 + 5}; Action[] = {0x00050000 + 0}; MenuSelect[] = {0x00050000 + 7}; MenuBack[] = {0x00050000 + 6}; CancelAction[] = {0x00050000 + 2}; Compass[] = {0x00050000 + 11}; ShowMap[] = {0x00050000 + 10}; HideMap[] = {0x00050000 + 10}; ZoomCont[] = {0x00050000 + 12}; PersonView[] = {0x00050000 + 9}; IngamePause[] = {0x00050000 + 8}; Optics[] = {0x00050000 + 15}; CommandLeft[] = {0x00050000 + 20, 0, {"Gamma", 1.0, 3}}; CommandRight[] = {0x00050000 + 16, 0, {"Gamma", 1.0, 3}}; CommandForward[] = {0x00050000 + 17, 0, {"Gamma", 1.0, 1.5}}; CommandBack[] = {0x00050000 + 21, 0, {"Gamma", 1.0, 1.5}}; CommandFast[] = {}; CommandSlow[] = {}; }; }; class Joystick { class ButtonDeadZones : ButtonDeadZonesDefault { deadZone_LeftTrigger[] = {192, 128}; deadZone_RightTrigger[] = {80, 64}; }; class ThumbStickDeadZones { leftX = 0.21; leftY = 0.23; rightX = 0.21; rightY = 0.23; }; class Actions { ToggleWeapons[] = {0x00050000 + 1}; DefaultAction[] = {0x00050000 + 0}; ReloadMagazine[] = {0x00050000 + 2}; LookAround[] = {0x00050000 + 15}; LockTarget[] = {}; RevealTarget[] = {0x00050000 + 15}; VehLockTargets[] = {0x00050000 + 11}; PrevAction[] = {0x00050000 + 4}; NextAction[] = {0x00050000 + 5}; Action[] = {0x00050000 + 14}; MenuSelect[] = {0x00050000 + 7}; MenuBack[] = {0x00050000 + 6}; CancelAction[] = {0x00050000 + 2}; Compass[] = {}; ShowMap[] = {0x00050000 + 10}; HideMap[] = {0x00050000 + 10}; ZoomCont[] = {0x00050000 + 15}; PersonView[] = {0x00050000 + 9}; IngamePause[] = {0x00050000 + 8}; Optics[] = {}; CommandLeft[] = {0x00050000 + 22, 0, {"Gamma", 1.0, 3}}; CommandRight[] = {0x00050000 + 18, 0, {"Gamma", 1.0, 3}}; CommandForward[] = {0x00050000 + 13, 0, {"Gamma", 1.0, 1.5}}; CommandBack[] = {0x00050000 + 12, 0, {"Gamma", 1.0, 1.5}}; CommandFast[] = {}; CommandSlow[] = {}; }; }; also there are entires for joystick and wheel. is it possible to define own Actions, for above code?.. If so, where does it execute or how? (see example) <table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">class CfgActions { class None { priority=0; show=1; showWindow=0; hideOnUse=1; shortcut=""; text=""; textDefault=""; textSimple=""; }; class GetInCommander: None { priority=0.899000; showWindow=1; text="$STR_ACTION_GETIN_COMMANDER"; textDefault="$STR_ACTION_GETIN_COMMANDER"; }; class NewSuperAction: None { priority=0.899000; showWindow=1; text="$STR_ACTION_NEW_SUPER"; textDefault="$STR_ACTION_NEW_SUPER"; action = "call somecode"; // init="call somecode"; // }; interesting... but still not what we want/are looking for i guess Share this post Link to post Share on other sites
S!fkaIaC 10 Posted April 21, 2009 The main issue is that we have in ArmA 1 button assignments generic for all vehicles/weapons/units. Only granularity is that some are valid only for some vehicles/unit classes. But what we really need is a keymapping that comes with each addon and the default values are inside the addon and BIS defines a common way to make the keybinding visible and changable for each user. The changes are stored at the client with a reference to a unique ID of the addon. Keymappings should be even defined for each position in a vehicle and also for each "weapon". Example: Button "W" might be in a truck "foreward", as a soldier in normal condition "walking" as a soldier holding the weapon (addon) mixer it turns on the kitchen-aid, conflicts should not appear. But true, some functions need to be accessible in any situation like MAP or order menu. Hence a good solution is required to have fast access to common functions with a minimum of blocked keys. Share this post Link to post Share on other sites