pepoluan Posted February 25, 2018 Share Posted February 25, 2018 Is it possible to bind a key to the "head down" action of civilians, so that I don't need to confirm the action? That is, similar to how the "Y" (Overwatch) and "R" (Reload) keys work? Link to comment Share on other sites More sharing options...
dubiousintent Posted February 26, 2018 Share Posted February 26, 2018 See the "Keybind Commands - XCOM:EU 2012" wiki article. However, I don't recall off-hand if that command has a parameter to automatically confirm the action. -Dubious- Link to comment Share on other sites More sharing options...
Drakous79 Posted March 4, 2018 Share Posted March 4, 2018 (edited) Can be done in XComGame.upk, XComTacticalInput.ActiveUnit_Moving.Key_K. Just add civilian's head down ability, like: if(kActiveUnit.GetCharacter().IsA('XGCharacter_Civilian')) { // head down kActiveUnit.PerformAbility(70); return true; } else { // hunker down kActiveUnit.PerformAbility(27); return true; }---Here is mod file for PatcherGUI. There is no confirmation dialog after a key press, while the soldier is moving and not aiming. Either the ability is performed or in a case of hunker down outside cover an error sound is played. Enjoy. MOD_NAME=Stay Down for EW AUTHOR=Drakous79 DESCRIPTION=A key for soldier's hunker down ability will work for civilian's head down ability as well. There is no confirmation dialog after a key press, while the soldier is moving and not aiming. Either the ability is performed or in a case of hunker down outside cover an error sound is played. Version 1.401776a UPK_FILE = XComGame.upk OBJECT = XComTacticalInput.ActiveUnit_Moving.Key_K:AUTO [REPLACEMENT_CODE] 0F 00 <.kActiveUnit> 1B <GetActiveUnit> 16 07 [@label_if_1] 84 84 19 00 <.kActiveUnit> [@] <XGUnitNativeBase.IsPanicked.ReturnValue> 00 ( 1B <IsPanicked> 16 ) 18 [@] ( 19 00 <.kActiveUnit> [@] <XGUnit.IsStrangled.ReturnValue> 00 ( 1B <IsStrangled> 16 ) 16 ) 18 [@] ( 19 00 <.kActiveUnit> [@] <XGUnit.IsStrangling.ReturnValue> 00 ( 1B <IsStrangling> 16 ) 16 ) 04 28 [#label_if_1] 07 [@label_if_2] 9B 9C 00 <.Actionmask> 2C 20 16 25 16 // if the unit is a civilian; eAbility_CivilianCover (70, 0x46) - Head Down // if (kActiveUnit.GetCharacter().IsA('XGCharacter_Civilian')) 07 [@label_if_3] 19 19 00 <.kActiveUnit> [@] <XGUnit.GetCharacter.ReturnValue> 00 ( 1B <GetCharacter> 16 ) [@] <Core.Object.IsA.ReturnValue> 00 ( C5 21 <XGCharacter_Civilian> 16 ) // kActiveUnit.PerformAbility(70) 19 00 <.kActiveUnit> [@] <NullRef> 00 ( 1B <PerformAbility> 24 46 16 ) // return true 04 27 // else the unit is a soldier or an alien; eAbility_TakeCover (27, 0x1b) - Hunker Down 06 [@label_else_3] [#label_if_3] // kActiveUnit.PerformAbility(27) 19 00 <.kActiveUnit> [@] <NullRef> 00 ( 1B <PerformAbility> 24 1B 16 ) // return true 04 27 [#label_else_3] [#label_if_2] 04 28 04 3A <.ReturnValue> 53 Edited March 5, 2018 by Drakous79 Link to comment Share on other sites More sharing options...
Recommended Posts