Hunter Killer (Commander Override)
Allows commander to override gunner and slew the turret to the direction his view is facing.
https://www.youtube.com/watch?v=p5yoC9p35GQ
How it works:
- Stick
directionStabilized = 1;on the puppet turret - Normally you then manually turn it off
_vehicle enableDirectionStabilization [false, _puppetTurret]; - When commander override is triggered then enable it and then do
_vehicle lockCameraTo [_lookPoint, _puppetTurret];
Design Issues:
-
Aim accuracy The demo is setup with both low and high accuracy modes, but we should just pick one mode and stick with it
-
Normal Precision Uses eyeDirection/turretDirection on a non-local turret which is only roughly synced in mp. e.g. at 1000m it will aim at the right building but not the right window. As the commander tracks over it will kind of jump from rough point to point, not continously.
-
High precision We sync our local lookDir via setVar and it should perfectly match I think this is fine, we just need to do a little work to make sure we don't overload network traffic
-
Commander Firing I tried
action//manualFireand it was weird, it didn't seem to fire in the direction either turret was looking. I suspect both FCS were conflicting. Could try the otherfirecommands, but I'm ok leaving this feature to just slew and then handoff to gunner. -
Config hell (turret and optics inheritance is always a mess)
Can this system be expanded for A) Automatic turret turning for a 'Shtora-1'-alike system (turns the turret to an incoming rocket/laser when enabled) and/or automatic target tracking for Radar guns (i.e. ZSU)?
ll - yeah, we can probably use this same code to do slew-to-cue
2.08 will add 3rd arg, and won't require any directionStabilized = 1; configs
e.g. (vehicle player) lockCameraTo [w, [0], true]
seems to have some smoothing to it that different from the other way that hard snaps, it also seems to works on AI
I think this is fine, we just need to do a little work to make sure we don't overload network traffic
~~My idea would be, do normal mode first so you get the movement started.~~ ~~Send a remoteExec to the commander to request his position, commander will send answer back.~~ ~~Once answer with exact position has arrived, re-adjust to that one.~~ ~~That process will usually not take longer than ~100ms to get the exact position.~~ ~~And if you already start movement early the player probably won't notice~~
~~That reduces the network traffic to zero while not using this.~~
^ Actually the above was because I thought this worked like below.
I also think instead of only commander override, there should also be a button for the gunner to move his own view to where the commander currently is.
So the commander can tell the gunner to look at his position without having to force him.
Posting the summarization of the discussion about "missing featrures" from slack, before it gets lost in time.
-
an option to disable that feature for yourself, so your view cannot be slaved
-
gunner has the same keybinds and can do the same thing.
-
Not all tanks allow it, so a config entry on the turrets makes sense to me.
ace_hunterKiller = 0;With
0 - no hunter killer system (or -1)
1 - can be controlled
2 - can control
3 - both
- Not all tanks allow it, so a config entry on the turrets makes sense to me.
ace_hunterKiller = 0;With0 - no hunter killer system (or -1) 1 - can be controlled 2 - can control 3 - both
I'd actually like to update my config entry suggestion and move the entry to the vehicle instead of the turret.
Have it be an array of arrays, with subarrays having the format [TURRET_INDEX, VALUE]
ace_hunterKiller = {
{{0}, 1},
{{1}, 2}}
};
This will make adding it to compats a lot easier since it will avoid complicated turret inheritance issues, and it's a single config lookup instead of getting from each turret.
RHS AFRF Compat would be nice to have too.
Pretty sure they are implementing their own version of it, check the RHSDEV mods.
would be nice to have some manual override/fnc/cba setting to enable (or disable) this for a non-supported tank quickly without the need for a compat mod
edit: nvm diwako told me its already in :D
Just played around with this tonight and it seems to work fairly well.
My unit has been playing with this a few missions, we however extended the functionality to the 2035 ifvs and apcs. Imo that should be the standard as well, as these systems most likely have this.
class APC_Tracked_01_base_F: Tank_F {
ADDON = 1;
};
class APC_Tracked_02_base_F: Tank_F {
ADDON = 1;
};
class APC_Tracked_03_base_F: Tank_F {
ADDON = 1;
};
class Wheeled_APC_F;
class AFV_Wheeled_01_base_F: Wheeled_APC_F {
ADDON = 1;
};
class APC_Wheeled_01_base_F: Wheeled_APC_F {
ADDON = 1;
};
class APC_Wheeled_02_base_F: Wheeled_APC_F {
ADDON = 1;
};
class APC_Wheeled_03_base_F: Wheeled_APC_F {
ADDON = 1;
};
As an FYI, this will enable hunter killer (from a config basis) on the following common mod vehicles after adding the APC base classes. Unsure if the intent is to base this feature off of realism (or what makes sense) or just to allow it on anything that has a gunner/commander turret team role.
BMP-1 (CUP_I_BMP1_TK_GUE)
BMP-1 (CUP_O_BMP1_CSAT_T)
BMP-1 (CUP_O_BMP1_CSAT)
BMP-1 (CUP_O_BMP1_TKA)
BMP-1P (CUP_O_BMP1P_CSAT_T)
BMP-1P (CUP_O_BMP1P_CSAT)
BMP-1P (CUP_O_BMP1P_TKA)
BMP-2 (CUP_B_BMP2_CDF)
BMP-2 (CUP_I_BMP2_NAPA)
BMP-2 (CUP_I_BMP2_UN)
BMP-2 (CUP_O_BMP2_CHDKZ)
BMP-2 (CUP_O_BMP2_CSAT_T)
BMP-2 (CUP_O_BMP2_CSAT)
BMP-2 (CUP_O_BMP2_RU)
BMP-2 (CUP_O_BMP2_SLA)
BMP-2 (CUP_O_BMP2_TKA)
BMP-2 Ambulance (CUP_B_BMP2_AMB_CDF)
BMP-2 Ambulance (CUP_I_BMP2_AMB_NAPA)
BMP-2 Ambulance (CUP_I_BMP2_AMB_UN)
BMP-2 Ambulance (CUP_O_BMP2_AMB_CHDKZ)
BMP-2 Ambulance (CUP_O_BMP2_AMB_CSAT_T)
BMP-2 Ambulance (CUP_O_BMP2_AMB_CSAT)
BMP-2 Ambulance (CUP_O_BMP2_AMB_RU)
BMP-2 Ambulance (CUP_O_BMP2_AMB_sla)
BMP-2 Ambulance (CUP_O_BMP2_AMB_TKA)
BMP-2 ZU-23 (CUP_O_BMP2_ZU_CSAT_T)
BMP-2 ZU-23 (CUP_O_BMP2_ZU_CSAT)
BMP-2 ZU-23 (CUP_O_BMP2_ZU_TKA)
BMP-2K (CUP_B_BMP_HQ_CDF)
BMP-2K (CUP_I_BMP_HQ_NAPA)
BMP-2K (CUP_I_BMP_HQ_UN)
BMP-2K (CUP_O_BMP_HQ_CHDKZ)
BMP-2K (CUP_O_BMP_HQ_CSAT_T)
BMP-2K (CUP_O_BMP_HQ_CSAT)
BMP-2K (CUP_O_BMP_HQ_RU)
BMP-2K (CUP_O_BMP_HQ_sla)
BMP-2K (CUP_O_BMP_HQ_TKA)
BVP-2 (CUP_B_BMP2_CZ_Des)
BVP-2 (CUP_B_BMP2_CZ)
BVP-2 (HQ) (CUP_B_BMP_HQ_CZ_Des)
BVP-2 (HQ) (CUP_B_BMP_HQ_CZ)
BVP-2 Ambulance (CUP_B_BMP2_AMB_CZ_Des)
BVP-2 Ambulance (CUP_B_BMP2_AMB_CZ)
M113A3 (Ammo) (rhsusf_m113_usarmy_supply)
M113A3 (Ammo) (rhsusf_m113d_usarmy_supply)
M113A3 (M2) (rhsgref_hidf_m113a3_m2)
M113A3 (M2) (rhsusf_m113_usarmy)
M113A3 (M2) (rhsusf_m113d_usarmy)
M113A3 (M2/Early) (rhsusf_m113_usarmy_M2_90)
M113A3 (M240) (rhsusf_m113_usarmy_M240)
M113A3 (M240) (rhsusf_m113d_usarmy_M240)
M113A3 (MEV) (rhsusf_m113_usarmy_medical)
M113A3 (MEV) (rhsusf_m113d_usarmy_medical)
M113A3 (Mk19) (rhsusf_m113_usarmy_MK19)
M113A3 (Mk19) (rhsusf_m113d_usarmy_MK19)
M113A3 (Mk19/Early) (rhsgref_hidf_m113a3_mk19)
M113A3 (Mk19/Early) (rhsusf_m113_usarmy_MK19_90)
M113A3 (Unarmed) (rhsgref_hidf_m113a3_unarmed)
M113A3 (Unarmed) (rhsusf_m113_usarmy_unarmed)
M113A3 (Unarmed) (rhsusf_m113d_usarmy_unarmed)
M2A2ODS (BUSK I) (RHS_M2A2_BUSKI_WD)
M2A2ODS (BUSK I) (RHS_M2A2_BUSKI)
M2A2ODS (RHS_M2A2_wd)
M2A2ODS (RHS_M2A2)
M2A3 (BUSK I) (RHS_M2A3_BUSKI_wd)
M2A3 (BUSK I) (RHS_M2A3_BUSKI)
M2A3 (BUSK III) (RHS_M2A3_BUSKIII_wd)
M2A3 (BUSK III) (RHS_M2A3_BUSKIII)
M2A3 (RHS_M2A3_wd)
M2A3 (RHS_M2A3)
M6A2 (RHS_M6_wd)
M6A2 (RHS_M6)
PTS-M (rhs_pts_vmf)
PTS-M (rhssaf_army_o_pts)
PTS-M (rhssaf_army_pts)
ZSU-23-4V (rhs_zsu234_aa)
ZSU-23-4V (rhsgref_cdf_b_zsu234)
ZSU-23-4V (rhsgref_cdf_zsu234)
ZSU-23-4V (rhsgref_ins_g_zsu234)
ZSU-23-4V (rhsgref_ins_zsu234)
or just to allow it on anything that has a gunner/commander turret team role.
pls no