GM Compat - Add interaction anims to GM vehicles (#10234)

Add interaction anims to GM
This commit is contained in:
johnb432 2024-08-22 05:49:06 +02:00 committed by GitHub
parent 1dae884fff
commit 15a5e74649
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
9 changed files with 924 additions and 34 deletions

View File

@ -81,15 +81,242 @@ class CfgVehicles {
class gm_brdm2_base: gm_wheeled_APC_base {
EGVAR(refuel,fuelCapacity) = 290;
class EGVAR(interaction,anims) {
class AmmoBox_01_unhide {
phase = 0;
positions[] = {"_target selectionPosition ['ammobox_01', 'FireGeometry', 'AveragePoint']"};
items[] = {"gm_AmmoBox_wood_04_empty"};
name = "$STR_DN_gm_AmmoBox_wood_04_base";
text = "$STR_DN_gm_AmmoBox_wood_04_base";
};
class AmmoBox_02_unhide {
phase = 0;
positions[] = {"_target selectionPosition ['ammobox_02', 'FireGeometry', 'AveragePoint']"};
items[] = {"gm_AmmoBox_wood_04_empty"};
name = "$STR_DN_gm_AmmoBox_wood_04_base";
text = "$STR_DN_gm_AmmoBox_wood_04_base";
};
class AmmoBox_03_unhide {
phase = 0;
positions[] = {"_target selectionPosition ['ammobox_03', 'FireGeometry', 'AveragePoint']"};
items[] = {"gm_AmmoBox_wood_04_empty"};
name = "$STR_DN_gm_AmmoBox_wood_04_base";
text = "$STR_DN_gm_AmmoBox_wood_04_base";
};
};
};
class gm_brdm2um_base: gm_brdm2_base {
class EGVAR(interaction,anims): EGVAR(interaction,anims) {
class AmmoBox_01_unhide: AmmoBox_01_unhide {
positions[] = {{-0.1, -1.9, -0.5}};
};
class AmmoBox_02_unhide: AmmoBox_02_unhide {
positions[] = {{-0.55, -0.35, -0.35}};
};
class AmmoBox_03_unhide: AmmoBox_03_unhide {
positions[] = {{0.3, -1.85, -0.5}};
};
};
};
class gm_btr60_base: gm_wheeled_APC_base {
EGVAR(refuel,fuelCapacity) = 290;
EGVAR(cookoff,cookoffSelections)[] = {"commanderturret_hatch"};
class EGVAR(interaction,anims) {
class AmmoBox_01_unhide {
phase = 0;
positions[] = {"_target selectionPosition ['ammobox_01', 'FireGeometry', 'AveragePoint']"};
items[] = {"gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"};
name = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
text = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
};
class AmmoBox_02_unhide {
phase = 0;
positions[] = {"_target selectionPosition ['ammobox_02', 'FireGeometry', 'AveragePoint']"};
items[] = {"gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"};
name = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
text = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
};
class AmmoBox_03_unhide {
phase = 0;
positions[] = {"_target selectionPosition ['ammobox_03', 'FireGeometry', 'AveragePoint']"};
items[] = {"gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"};
name = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
text = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
};
class AmmoBox_04_unhide {
phase = 0;
positions[] = {"_target selectionPosition ['ammobox_04', 'FireGeometry', 'AveragePoint']"};
items[] = {"gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"};
name = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
text = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
};
class AmmoBox_05_unhide {
phase = 0;
positions[] = {"_target selectionPosition ['ammobox_05', 'FireGeometry', 'AveragePoint']"};
items[] = {"gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"};
name = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
text = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
};
class AmmoBox_06_unhide {
phase = 0;
positions[] = {"_target selectionPosition ['ammobox_06', 'FireGeometry', 'AveragePoint']"};
items[] = {"gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"};
name = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
text = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
};
class AmmoBox_07_unhide {
phase = 0;
positions[] = {"_target selectionPosition ['ammobox_07', 'FireGeometry', 'AveragePoint']"};
items[] = {"gm_AmmoBox_wood_04_empty"};
name = "$STR_DN_gm_AmmoBox_wood_04_base";
text = "$STR_DN_gm_AmmoBox_wood_04_base";
};
};
};
class gm_ural375d_base: gm_wheeled_truck_base {
EGVAR(refuel,fuelCapacity) = 360;
class EGVAR(interaction,anims) {
class AmmoBox_01_unhide {
phase = 0;
positions[] = {{-0.55, 1.83, 0.7}};
items[] = {"gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"};
name = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
text = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
distance = 2.5;
};
class AmmoBox_02_unhide {
phase = 0;
positions[] = {{0, 1.83, 0.7}};
items[] = {"gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"};
name = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
text = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
distance = 3;
};
class AmmoBox_03_unhide {
phase = 0;
positions[] = {{0.55, 1.83, 0.7}};
items[] = {"gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"};
name = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
text = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
distance = 2.5;
};
class AmmoBox_04_unhide {
phase = 0;
positions[] = {{-0.45, 1.83, 0.7}};
items[] = {"gm_AmmoBox_wood_04_empty"};
name = "$STR_DN_gm_AmmoBox_wood_04_base";
text = "$STR_DN_gm_AmmoBox_wood_04_base";
distance = 2.5;
};
};
};
class gm_ural375d_mlrs_base: gm_ural375d_base {
class EGVAR(interaction,anims): EGVAR(interaction,anims) {
class AmmoBox_01_unhide: AmmoBox_01_unhide {
positions[] = {{-0.55, 2, 0.5}};
};
class AmmoBox_02_unhide: AmmoBox_02_unhide {
positions[] = {{0, 2, 0.5}};
};
class AmmoBox_03_unhide: AmmoBox_03_unhide {
positions[] = {{0.55, 2, 0.5}};
};
class AmmoBox_04_unhide: AmmoBox_04_unhide {
positions[] = {{-0.45, 2, 0.5}};
};
};
};
class gm_ural375d_medic_base: gm_ural375d_base {
class EGVAR(interaction,anims): EGVAR(interaction,anims) {
class AmmoBox_01_unhide: AmmoBox_01_unhide {
positions[] = {{-0.55, 2, 0.7}};
};
class AmmoBox_02_unhide: AmmoBox_02_unhide {
positions[] = {{0, 2, 0.7}};
};
class AmmoBox_03_unhide: AmmoBox_03_unhide {
positions[] = {{0.55, 2, 0.7}};
};
class AmmoBox_04_unhide: AmmoBox_04_unhide {
positions[] = {{-0.45, 2, 0.7}};
};
};
};
class gm_ural4320_base: gm_wheeled_truck_base {
EGVAR(refuel,fuelCapacity) = 360;
class EGVAR(interaction,anims) {
class AmmoBox_01_unhide {
phase = 0;
positions[] = {{-0.55, 1.47, 0.7}};
items[] = {"gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"};
name = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
text = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
distance = 2.5;
};
class AmmoBox_02_unhide {
phase = 0;
positions[] = {{0, 1.47, 0.7}};
items[] = {"gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"};
name = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
text = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
distance = 3;
};
class AmmoBox_03_unhide {
phase = 0;
positions[] = {{0.55, 1.47, 0.7}};
items[] = {"gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"};
name = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
text = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
distance = 2.5;
};
class AmmoBox_04_unhide {
phase = 0;
positions[] = {{-0.45, 1.47, 0.7}};
items[] = {"gm_AmmoBox_wood_04_empty"};
name = "$STR_DN_gm_AmmoBox_wood_04_base";
text = "$STR_DN_gm_AmmoBox_wood_04_base";
distance = 2.5;
};
};
};
class gm_ural4320_repair_base: gm_ural4320_base {
class EGVAR(interaction,anims): EGVAR(interaction,anims) {
class AmmoBox_01_unhide: AmmoBox_01_unhide {
positions[] = {{-0.55, 1.62, 0.7}};
};
class AmmoBox_02_unhide: AmmoBox_02_unhide {
positions[] = {{0, 1.62, 0.7}};
};
class AmmoBox_03_unhide: AmmoBox_03_unhide {
positions[] = {{0.55, 1.62, 0.7}};
};
class AmmoBox_04_unhide: AmmoBox_04_unhide {
positions[] = {{-0.45, 1.62, 0.7}};
};
};
};
class gm_ural44202_base: gm_ural4320_base {
class EGVAR(interaction,anims): EGVAR(interaction,anims) {
class AmmoBox_01_unhide: AmmoBox_01_unhide {
positions[] = {{-0.55, 1.37, 0.7}};
};
class AmmoBox_02_unhide: AmmoBox_02_unhide {
positions[] = {{0, 1.37, 0.7}};
};
class AmmoBox_03_unhide: AmmoBox_03_unhide {
positions[] = {{0.55, 1.37, 0.7}};
};
class AmmoBox_04_unhide: AmmoBox_04_unhide {
positions[] = {{-0.45, 1.37, 0.7}};
};
};
};
class gm_ural4320_reammo_base: gm_ural4320_base {
@ -190,9 +417,103 @@ class CfgVehicles {
EGVAR(refuel,fuelCapacity) = 460;
EGVAR(cookoff,cookoffSelections)[] = {"mainturret_hatch","commanderturret_hatch"};
};
class gm_bmp1sp2_base: gm_bmp1_base {
class EGVAR(interaction,anims) {
class AmmoBox_01_unhide {
phase = 0;
positions[] = {{-1.2, -2.52, -1.2}};
items[] = {"gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"};
name = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
text = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
};
class AmmoBox_02_unhide {
phase = 0;
positions[] = {{-1.3, -2, -1.2}};
items[] = {"gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"};
name = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
text = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
};
class AmmoBox_03_unhide {
phase = 0;
positions[] = {{-1.35, -1.43, -1.2}};
items[] = {"gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"};
name = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
text = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
};
class AmmoBox_04_unhide {
phase = 0;
positions[] = {{1.2, -2.52, -1.2}};
items[] = {"gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"};
name = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
text = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
};
class AmmoBox_05_unhide {
phase = 0;
positions[] = {{1.3, -2, -1.2}};
items[] = {"gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"};
name = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
text = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
};
class AmmoBox_06_unhide {
phase = 0;
positions[] = {{1.35, -1.43, -1.2}};
items[] = {"gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"};
name = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
text = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
};
class AmmoBox_07_unhide {
phase = 0;
positions[] = {{-1.45, 0.1, -1.3}};
items[] = {"gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"};
name = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
text = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
};
class AmmoBox_08_unhide {
phase = 0;
positions[] = {{-1.45, 2, -1.3}};
items[] = {"gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"};
name = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
text = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
};
class AmmoBox_09_unhide {
phase = 0;
positions[] = {{1.45, 2, -1.3}};
items[] = {"gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"};
name = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
text = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
};
};
};
class gm_pt76_base: gm_tracked_Tank_base {
EGVAR(refuel,fuelCapacity) = 250;
class EGVAR(interaction,anims) {
class AmmoBox_01_unhide {
phase = 0;
positions[] = {{0.08, -1.75, -1}};
items[] = {"gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"};
name = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
text = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
distance = 2.5;
};
class AmmoBox_02_unhide {
phase = 0;
positions[] = {{0.08, -1.38, -1}};
items[] = {"gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"};
name = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
text = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
distance = 2.5;
};
class AmmoBox_03_unhide {
phase = 0;
positions[] = {{0.08, -2.15, -1}};
items[] = {"gm_AmmoBox_wood_04_empty"};
name = "$STR_DN_gm_AmmoBox_wood_04_base";
text = "$STR_DN_gm_AmmoBox_wood_04_base";
distance = 2.5;
};
};
};
class gm_t55_base: gm_tracked_Tank_base {
@ -204,6 +525,21 @@ class CfgVehicles {
EGVAR(refuel,fuelCapacity) = 812;
};
class gm_tracked_Artillery_base;
class gm_2s1_base: gm_tracked_Artillery_base {
class EGVAR(interaction,anims) {
class AmmoBox_01_unhide {
phase = 0;
// Rotate interactions with turret rotation
positions[] = {"[0, -1.3, 0] vectorAdd ([[0, -1.1, -0.35], [0, 0, 1], deg (_target animationPhase 'mainturret_trav_anim')] call CBA_fnc_vectRotate3D)"};
items[] = {"gm_AmmoBox_wood_04_empty"};
name = "$STR_DN_gm_AmmoBox_wood_04_base";
text = "$STR_DN_gm_AmmoBox_wood_04_base";
distance = 2.5;
};
};
};
// WEST
class gm_Leopard1_base;
class gm_Leopard1a0_base: gm_Leopard1_base {
@ -211,6 +547,27 @@ class CfgVehicles {
EGVAR(cookoff,cookoffSelections)[] = {"mainturret_hatch_1","commanderturret_hatch"};
};
class gm_Leopard1a1_base: gm_Leopard1a0_base {
class EGVAR(interaction,anims) {
class AmmoBox_01_unhide {
phase = 0;
// Rotate interactions with turret rotation
positions[] = {"[0, -0.6, 0] vectorAdd ([[0.7, -2, -0.6], [0, 0, 1], deg (_target animationPhase 'mainturret_trav_anim')] call CBA_fnc_vectRotate3D)"};
items[] = {"gm_AmmoBox_wood_04_empty"};
name = "$STR_DN_gm_AmmoBox_wood_04_base";
text = "$STR_DN_gm_AmmoBox_wood_04_base";
};
class AmmoBox_02_unhide {
phase = 0;
// Rotate interactions with turret rotation
positions[] = {"[0, -0.6, 0] vectorAdd ([[-0.3, -1.95, -0.6], [0, 0, 1], deg (_target animationPhase 'mainturret_trav_anim')] call CBA_fnc_vectRotate3D)"};
items[] = {"gm_AmmoBox_wood_04_empty"};
name = "$STR_DN_gm_AmmoBox_wood_04_base";
text = "$STR_DN_gm_AmmoBox_wood_04_base";
};
};
};
class gm_Gepard_base: gm_Leopard1_base {
EGVAR(refuel,fuelCapacity) = 985;
};
@ -257,39 +614,36 @@ class CfgVehicles {
EGVAR(refuel,fuelCapacity) = 3700;
EGVAR(fastroping,enabled) = 0;
// TODO: stringtables
class UserActions {
class openDoor_L {
displayNameDefault = "Open left Door";
displayName = "Open left Door";
displayNameDefault = "$STR_a3_cfgvehicles_useractions_openldoor0";
displayName = "$STR_a3_cfgvehicles_useractions_openldoor0";
position = "";
radius = 2.7;
onlyForPlayer = 1;
condition = QUOTE((this animationSourcePhase 'door_2_1_unhide' > 0.5) && (this doorPhase 'door_2_1_source' < 0.5) && {alive this} && {!(this getVariable [ARR_2(QUOTE(QEGVAR(fastroping,doorsLocked)),false)])});
condition = QUOTE((this animationSourcePhase 'door_2_1_unhide' > 0.5) && (this doorPhase 'door_2_1_source' < 0.5) && {alive this} && {!(this getVariable [ARR_2(QQEGVAR(fastroping,doorsLocked),false)])});
statement = "this animateDoor ['door_2_1_source',1]";
};
class openDoor_R: openDoor_L {
displayNameDefault = "Open right Door";
displayName = "Open right Door";
condition = QUOTE((this animationSourcePhase 'door_2_2_unhide' > 0.5) && (this doorPhase 'door_2_2_source' < 0.5) && {alive this} && {!(this getVariable [ARR_2(QUOTE(QEGVAR(fastroping,doorsLocked)),false)])});
displayNameDefault = "$STR_a3_cfgvehicles_useractions_openrdoor0";
displayName = "$STR_a3_cfgvehicles_useractions_openrdoor0";
condition = QUOTE((this animationSourcePhase 'door_2_2_unhide' > 0.5) && (this doorPhase 'door_2_2_source' < 0.5) && {alive this} && {!(this getVariable [ARR_2(QQEGVAR(fastroping,doorsLocked),false)])});
statement = "this animateDoor ['door_2_2_source',1]";
};
class closeDoor_L {
displayNameDefault = "Close left Door";
displayName = "Close left Door";
displayNameDefault = "$STR_a3_cfgvehicles_useractions_closeldoor0";
displayName = "$STR_a3_cfgvehicles_useractions_closeldoor0";
position = "";
radius = 2.7;
onlyForPlayer = 1;
condition = QUOTE((this animationSourcePhase 'door_2_1_unhide' > 0.5) && (this doorPhase 'door_2_1_source' > 0.5) && {alive this} && {!(this getVariable [ARR_2(QUOTE(QEGVAR(fastroping,doorsLocked)),false)])});
condition = QUOTE((this animationSourcePhase 'door_2_1_unhide' > 0.5) && (this doorPhase 'door_2_1_source' > 0.5) && {alive this} && {!(this getVariable [ARR_2(QQEGVAR(fastroping,doorsLocked),false)])});
statement = "this animateDoor ['door_2_1_source',0]";
};
class closeDoor_R: closeDoor_L {
displayNameDefault = "Close right Door";
displayName = "Close right Door";
condition = QUOTE((this animationSourcePhase 'door_2_2_unhide' > 0.5) && (this doorPhase 'door_2_2_source' > 0.5) && {alive this} && {!(this getVariable [ARR_2(QUOTE(QEGVAR(fastroping,doorsLocked)),false)])});
displayNameDefault = "$STR_a3_cfgvehicles_useractions_closerdoor0";
displayName = "$STR_a3_cfgvehicles_useractions_closerdoor0";
condition = QUOTE((this animationSourcePhase 'door_2_2_unhide' > 0.5) && (this doorPhase 'door_2_2_source' > 0.5) && {alive this} && {!(this getVariable [ARR_2(QQEGVAR(fastroping,doorsLocked),false)])});
statement = "this animateDoor ['door_2_2_source',0]";
};
};

View File

@ -0,0 +1,336 @@
class CfgVehicles {
class gm_typ2_base;
class gm_typ251_base: gm_typ2_base {
class EGVAR(interaction,anims) {
class canister_01_unhide {
phase = 0;
positions[] = {{-0.55, -0.17, 0.4}};
items[] = {"Land_CanisterFuel_F"};
name = ECSTRING(refuel,TakeFuelCanister);
text = ECSTRING(refuel,TakeFuelCanisterAction);
};
class canister_02_unhide {
phase = 0;
positions[] = {{-0.55, -0.65, 0.4}};
items[] = {"Land_CanisterFuel_F"};
name = ECSTRING(refuel,TakeFuelCanister);
text = ECSTRING(refuel,TakeFuelCanisterAction);
};
};
};
class gm_typ253_base: gm_typ2_base {
class EGVAR(interaction,anims) {
class canister_01_unhide {
phase = 0;
positions[] = {{-0.55, -0.19, 0.4}};
items[] = {"Land_CanisterFuel_F"};
name = ECSTRING(refuel,TakeFuelCanister);
text = ECSTRING(refuel,TakeFuelCanisterAction);
};
class canister_02_unhide {
phase = 0;
positions[] = {{-0.55, -0.68, 0.4}};
items[] = {"Land_CanisterFuel_F"};
name = ECSTRING(refuel,TakeFuelCanister);
text = ECSTRING(refuel,TakeFuelCanisterAction);
};
};
};
class gm_wheeled_truck_base;
class gm_ural375d_base: gm_wheeled_truck_base {
class EGVAR(interaction,anims) {
class fuelcan_1_1_unhide {
phase = 0;
positions[] = {{-0.95, 3.15, -0.45}};
items[] = {"Land_CanisterFuel_F"};
name = ECSTRING(refuel,TakeFuelCanister);
text = ECSTRING(refuel,TakeFuelCanisterAction);
};
class fuelcan_1_2_unhide {
phase = 0;
positions[] = {{0.9, 3.15, -0.45}};
items[] = {"Land_CanisterFuel_F"};
name = ECSTRING(refuel,TakeFuelCanister);
text = ECSTRING(refuel,TakeFuelCanisterAction);
};
};
};
class gm_ural375d_mlrs_base: gm_ural375d_base {
class EGVAR(interaction,anims): EGVAR(interaction,anims) {
class fuelcan_1_1_unhide: fuelcan_1_1_unhide {
positions[] = {{-0.95, 3.35, -0.55}};
};
class fuelcan_1_2_unhide: fuelcan_1_2_unhide {
positions[] = {{0.9, 3.35, -0.55}};
};
};
};
class gm_ural375d_medic_base: gm_ural375d_base {
class EGVAR(interaction,anims): EGVAR(interaction,anims) {
class fuelcan_1_1_unhide: fuelcan_1_1_unhide {
positions[] = {{-0.95, 3.35, -0.45}};
};
class fuelcan_1_2_unhide: fuelcan_1_2_unhide {
positions[] = {{0.9, 3.35, -0.45}};
};
};
};
class gm_ural4320_base: gm_wheeled_truck_base {
class EGVAR(interaction,anims) {
class fuelcan_1_1_unhide {
phase = 0;
positions[] = {{-0.9, 3.1, -0.4}};
items[] = {"Land_CanisterFuel_F"};
name = ECSTRING(refuel,TakeFuelCanister);
text = ECSTRING(refuel,TakeFuelCanisterAction);
};
class fuelcan_1_2_unhide {
phase = 0;
positions[] = {{0.9, 3.1, -0.4}};
items[] = {"Land_CanisterFuel_F"};
name = ECSTRING(refuel,TakeFuelCanister);
text = ECSTRING(refuel,TakeFuelCanisterAction);
};
};
};
class gm_ural4320_repair_base: gm_ural4320_base {
class EGVAR(interaction,anims): EGVAR(interaction,anims) {
class fuelcan_1_1_unhide: fuelcan_1_1_unhide {
positions[] = {{-0.9, 3.25, -0.4}};
};
class fuelcan_1_2_unhide: fuelcan_1_2_unhide {
positions[] = {{0.9, 3.25, -0.4}};
};
};
};
class gm_ural44202_base: gm_ural4320_base {
class EGVAR(interaction,anims): EGVAR(interaction,anims) {
class fuelcan_1_1_unhide: fuelcan_1_1_unhide {
positions[] = {{-0.9, 3, -0.4}};
};
class fuelcan_1_2_unhide: fuelcan_1_2_unhide {
positions[] = {{0.9, 3, -0.4}};
};
};
};
class gm_wheeled_APC_base;
class gm_brdm2_base: gm_wheeled_APC_base {
class EGVAR(interaction,anims) {
class FuelCanister_01_unhide {
phase = 0;
positions[] = {"_target selectionPosition ['fuelcanister_01', 'FireGeometry', 'AveragePoint']"};
items[] = {"Land_CanisterFuel_F"};
name = ECSTRING(refuel,TakeFuelCanister);
text = ECSTRING(refuel,TakeFuelCanisterAction);
};
class FuelCanister_02_unhide {
phase = 0;
positions[] = {"_target selectionPosition ['fuelcanister_02', 'FireGeometry', 'AveragePoint']"};
items[] = {"Land_CanisterFuel_F"};
name = ECSTRING(refuel,TakeFuelCanister);
text = ECSTRING(refuel,TakeFuelCanisterAction);
};
class FuelCanister_03_unhide {
phase = 0;
positions[] = {"_target selectionPosition ['fuelcanister_03', 'FireGeometry', 'AveragePoint']"};
items[] = {"Land_CanisterFuel_F"};
name = ECSTRING(refuel,TakeFuelCanister);
text = ECSTRING(refuel,TakeFuelCanisterAction);
};
};
};
class gm_brdm2um_base: gm_brdm2_base {
class EGVAR(interaction,anims): EGVAR(interaction,anims) {
class FuelCanister_01_unhide: FuelCanister_01_unhide {
positions[] = {{0.87, -3, -1.2}};
};
class FuelCanister_02_unhide: FuelCanister_02_unhide {
positions[] = {{-0.87, -3, -1.2}};
};
class FuelCanister_03_unhide: FuelCanister_03_unhide {
positions[] = {{-0.4, -1.85, -0.5}};
};
};
};
class gm_btr60_base: gm_wheeled_APC_base {
class EGVAR(interaction,anims) {
class FuelCanister_01_unhide {
phase = 0;
positions[] = {"_target selectionPosition ['fuelcanister_01', 'FireGeometry', 'AveragePoint']"};
items[] = {"Land_CanisterFuel_F"};
name = ECSTRING(refuel,TakeFuelCanister);
text = ECSTRING(refuel,TakeFuelCanisterAction);
};
class FuelCanister_02_unhide {
phase = 0;
positions[] = {"_target selectionPosition ['fuelcanister_02', 'FireGeometry', 'AveragePoint']"};
items[] = {"Land_CanisterFuel_F"};
name = ECSTRING(refuel,TakeFuelCanister);
text = ECSTRING(refuel,TakeFuelCanisterAction);
};
class FuelCanister_03_unhide {
phase = 0;
positions[] = {"_target selectionPosition ['fuelcanister_03', 'FireGeometry', 'AveragePoint']"};
items[] = {"Land_CanisterFuel_F"};
name = ECSTRING(refuel,TakeFuelCanister);
text = ECSTRING(refuel,TakeFuelCanisterAction);
};
class FuelCanister_04_unhide {
phase = 0;
positions[] = {"_target selectionPosition ['fuelcanister_04', 'FireGeometry', 'AveragePoint']"};
items[] = {"Land_CanisterFuel_F"};
name = ECSTRING(refuel,TakeFuelCanister);
text = ECSTRING(refuel,TakeFuelCanisterAction);
};
class FuelCanister_05_unhide {
phase = 0;
positions[] = {"_target selectionPosition ['fuelcanister_05', 'FireGeometry', 'AveragePoint']"};
items[] = {"Land_CanisterFuel_F"};
name = ECSTRING(refuel,TakeFuelCanister);
text = ECSTRING(refuel,TakeFuelCanisterAction);
};
class FuelCanister_06_unhide {
phase = 0;
positions[] = {"_target selectionPosition ['fuelcanister_06', 'FireGeometry', 'AveragePoint']"};
items[] = {"Land_CanisterFuel_F"};
name = ECSTRING(refuel,TakeFuelCanister);
text = ECSTRING(refuel,TakeFuelCanisterAction);
};
};
};
class gm_btr60pa_base: gm_btr60_base {
class EGVAR(interaction,anims): EGVAR(interaction,anims) {
class FuelCanister_05_unhide: FuelCanister_05_unhide {
items[] = {"Land_CanisterFuel_F", "Land_CanisterFuel_F"};
};
class FuelCanister_06_unhide: FuelCanister_06_unhide {
items[] = {"Land_CanisterFuel_F", "Land_CanisterFuel_F"};
};
};
};
class gm_btr60pb_base: gm_btr60_base {
class EGVAR(interaction,anims): EGVAR(interaction,anims) {
class FuelCanister_03_unhide: FuelCanister_03_unhide {
items[] = {"Land_CanisterFuel_F", "Land_CanisterFuel_F"};
};
class FuelCanister_04_unhide: FuelCanister_04_unhide {
items[] = {"Land_CanisterFuel_F", "Land_CanisterFuel_F"};
};
};
};
class gm_btr60pu12_base: gm_btr60_base {
class EGVAR(interaction,anims): EGVAR(interaction,anims) {
class FuelCanister_03_unhide: FuelCanister_03_unhide {
items[] = {"Land_CanisterFuel_F", "Land_CanisterFuel_F"};
};
class FuelCanister_04_unhide: FuelCanister_04_unhide {
items[] = {"Land_CanisterFuel_F", "Land_CanisterFuel_F"};
};
};
};
class gm_bmp1_base;
class gm_bmp1sp2_base: gm_bmp1_base {
class EGVAR(interaction,anims) {
class FuelCanister_01_unhide {
phase = 0;
positions[] = {{-1.2, -2.52, -1.2}};
items[] = {"Land_CanisterFuel_F"};
name = ECSTRING(refuel,TakeFuelCanister);
text = ECSTRING(refuel,TakeFuelCanisterAction);
};
class FuelCanister_02_unhide {
phase = 0;
positions[] = {{1.2, -2.52, -1.2}};
items[] = {"Land_CanisterFuel_F"};
name = ECSTRING(refuel,TakeFuelCanister);
text = ECSTRING(refuel,TakeFuelCanisterAction);
};
};
};
class gm_zsu234_base;
class gm_zsu234v1_base: gm_zsu234_base {
class EGVAR(interaction,anims) {
class FuelCanister_01_unhide {
phase = 0;
// Rotate interactions with turret rotation
positions[] = {"[0, 0.2, 0] vectorAdd ([[-0.85, -2.2, -0.9], [0, 0, 1], deg (_target animationPhase 'mainturret_trav_anim')] call CBA_fnc_vectRotate3D)"};
items[] = {"Land_CanisterFuel_F"};
name = ECSTRING(refuel,TakeFuelCanister);
text = ECSTRING(refuel,TakeFuelCanisterAction);
};
class FuelCanister_02_unhide {
phase = 0;
// Rotate interactions with turret rotation
positions[] = {"[0, 0.2, 0] vectorAdd ([[0.7, -2.25, -0.85], [0, 0, 1], deg (_target animationPhase 'mainturret_trav_anim')] call CBA_fnc_vectRotate3D)"};
items[] = {"Land_CanisterFuel_F"};
name = ECSTRING(refuel,TakeFuelCanister);
text = ECSTRING(refuel,TakeFuelCanisterAction);
};
class FuelCanister_03_unhide {
phase = 0;
// Rotate interactions with turret rotation
positions[] = {"[0, 0.2, 0] vectorAdd ([[0.92, -2.25, -0.85], [0, 0, 1], deg (_target animationPhase 'mainturret_trav_anim')] call CBA_fnc_vectRotate3D)"};
items[] = {"Land_CanisterFuel_F"};
name = ECSTRING(refuel,TakeFuelCanister);
text = ECSTRING(refuel,TakeFuelCanisterAction);
};
};
};
class gm_tracked_Tank_base;
class gm_pt76_base: gm_tracked_Tank_base {
class EGVAR(interaction,anims) {
class FuelTank_01_unhide {
phase = 0;
positions[] = {{-1, -2.85, -1}};
items[] = {"Land_CanisterFuel_F"};
name = ECSTRING(refuel,TakeFuelCanister);
text = ECSTRING(refuel,TakeFuelCanisterAction);
};
class FuelTank_02_unhide {
phase = 0;
positions[] = {{1, -2.85, -1}};
items[] = {"Land_CanisterFuel_F"};
name = ECSTRING(refuel,TakeFuelCanister);
text = ECSTRING(refuel,TakeFuelCanisterAction);
};
};
};
class gm_Leopard1a0_base;
class gm_Leopard1a1_base: gm_Leopard1a0_base {
class EGVAR(interaction,anims) {
class FuelCanister_01_unhide {
phase = 0;
// Rotate interactions with turret rotation
positions[] = {"[0, -0.6, 0] vectorAdd ([[0.25, -1.9, -0.55], [0, 0, 1], deg (_target animationPhase 'mainturret_trav_anim')] call CBA_fnc_vectRotate3D)"};
items[] = {"Land_CanisterFuel_F"};
name = ECSTRING(refuel,TakeFuelCanister);
text = ECSTRING(refuel,TakeFuelCanisterAction);
distance = 2.5;
};
class FuelCanister_02_unhide {
phase = 0;
// Rotate interactions with turret rotation
positions[] = {"[0, -0.6, 0] vectorAdd ([[-0.8, -1.65, -0.55], [0, 0, 1], deg (_target animationPhase 'mainturret_trav_anim')] call CBA_fnc_vectRotate3D)"};
items[] = {"Land_CanisterFuel_F"};
name = ECSTRING(refuel,TakeFuelCanister);
text = ECSTRING(refuel,TakeFuelCanisterAction);
};
class FuelCanister_03_unhide {
phase = 0;
// Rotate interactions with turret rotation
positions[] = {"[0, -0.6, 0] vectorAdd ([[0.8, -1.8, -0.55], [0, 0, 1], deg (_target animationPhase 'mainturret_trav_anim')] call CBA_fnc_vectRotate3D)"};
items[] = {"Land_CanisterFuel_F"};
name = ECSTRING(refuel,TakeFuelCanister);
text = ECSTRING(refuel,TakeFuelCanisterAction);
};
};
};
};

View File

@ -21,3 +21,4 @@ class CfgPatches {
};
#include "CfgEventHandlers.hpp"
#include "CfgVehicles.hpp"

View File

@ -0,0 +1,100 @@
class CfgVehicles {
class gm_wheeled_car_base;
class gm_uaz469_base: gm_wheeled_car_base {
class EGVAR(interaction,anims) {
class spare_wheel_unhide {
phase = 0;
positions[] = {"_target selectionPosition ['spare_wheel', 'FireGeometry', 'AveragePoint']"};
items[] = {"ACE_Wheel"};
name = ECSTRING(repair,RemoveWheel);
text = ECSTRING(repair,RemovingWheel);
};
};
};
class gm_wheeled_APC_base;
class gm_brdm2_base: gm_wheeled_APC_base {
class EGVAR(interaction,anims) {
class SpareWheel_01_unhide {
phase = 0;
positions[] = {"_target selectionPosition ['sparewheel_01', 'FireGeometry', 'AveragePoint']"};
items[] = {"ACE_Wheel"};
name = ECSTRING(repair,RemoveWheel);
text = ECSTRING(repair,RemovingWheel);
distance = 2.5;
};
class SpareWheel_02_unhide {
phase = 0;
positions[] = {"_target selectionPosition ['sparewheel_02', 'FireGeometry', 'AveragePoint']"};
items[] = {"ACE_Wheel"};
name = ECSTRING(repair,RemoveWheel);
text = ECSTRING(repair,RemovingWheel);
};
};
};
class gm_brdm2um_base: gm_brdm2_base {
class EGVAR(interaction,anims): EGVAR(interaction,anims) {
class SpareWheel_01_unhide: SpareWheel_01_unhide {
positions[] = {{0.2, -0.7, -0.25}};
distance = 2;
};
class SpareWheel_02_unhide: SpareWheel_02_unhide {
positions[] = {{0, -1.6, -0.4}};
};
};
};
class gm_btr60_base: gm_wheeled_APC_base {
class EGVAR(interaction,anims) {
class SpareWheel_01_unhide {
phase = 0;
positions[] = {"_target selectionPosition ['sparewheel_01', 'FireGeometry', 'AveragePoint']"};
items[] = {"ACE_Wheel"};
name = ECSTRING(repair,RemoveWheel);
text = ECSTRING(repair,RemovingWheel);
distance = 3;
};
class SpareWheel_02_unhide {
phase = 0;
positions[] = {"_target selectionPosition ['sparewheel_02', 'FireGeometry', 'AveragePoint']"};
items[] = {"ACE_Wheel"};
name = ECSTRING(repair,RemoveWheel);
text = ECSTRING(repair,RemovingWheel);
};
class SpareWheel_03_unhide {
phase = 0;
positions[] = {"_target selectionPosition ['sparewheel_03', 'FireGeometry', 'AveragePoint']"};
items[] = {"ACE_Wheel"};
name = ECSTRING(repair,RemoveWheel);
text = ECSTRING(repair,RemovingWheel);
};
};
};
class gm_bmp1_base;
class gm_bmp1sp2_base: gm_bmp1_base {
class EGVAR(interaction,anims) {
class spareTracks_1_1_unhide {
phase = 0;
positions[] = {"(_target selectionPosition ['door_1_1', 'FireGeometry', 'AveragePoint']) vectorAdd [0, 0, -0.15]"};
items[] = {"ACE_Track"};
name = ECSTRING(repair,RemoveTrack);
text = ECSTRING(repair,RemovingTrack);
};
class spareTracks_1_2_unhide {
phase = 0;
positions[] = {"(_target selectionPosition ['door_1_2', 'FireGeometry', 'AveragePoint']) vectorAdd [0, 0, -0.15]"};
items[] = {"ACE_Track"};
name = ECSTRING(repair,RemoveTrack);
text = ECSTRING(repair,RemovingTrack);
};
class spareTracks_2_1_unhide {
phase = 0;
positions[] = {{-1.1, -2.7, -1.3}, {1.1, -2.7, -1.3}};
items[] = {"ACE_Track", "ACE_Track"};
name = ECSTRING(repair,RemoveTrack);
text = ECSTRING(repair,RemovingTrack);
};
};
};
};

View File

@ -0,0 +1,23 @@
#include "script_component.hpp"
class CfgPatches {
class SUBADDON {
name = COMPONENT_NAME;
units[] = {};
weapons[] = {};
requiredVersion = REQUIRED_VERSION;
requiredAddons[] = {
"gm_core",
"ace_repair"
};
skipWhenMissingDependencies = 1;
author = ECSTRING(common,ACETeam);
authors[] = {"johnb43"};
url = ECSTRING(main,URL);
VERSION_CONFIG;
addonRootClass = QUOTE(ADDON);
};
};
#include "CfgVehicles.hpp"

View File

@ -0,0 +1,3 @@
#define SUBCOMPONENT repair
#define SUBCOMPONENT_BEAUTIFIED Repair
#include "..\script_component.hpp"

View File

@ -0,0 +1,47 @@
class CfgVehicles {
class gm_wheeled_truck_base;
class gm_ural375d_base: gm_wheeled_truck_base {
class EGVAR(interaction,anims) {
class tools_unhide {
phase = 0;
positions[] = {{0.9, 3.15, -0.5}};
items[] = {"ACE_EntrenchingTool"};
name = ECSTRING(trenches,EntrenchingToolName);
text = ECSTRING(trenches,EntrenchingToolName);
};
};
};
class gm_ural375d_mlrs_base: gm_ural375d_base {
class EGVAR(interaction,anims): EGVAR(interaction,anims) {
class tools_unhide: tools_unhide {
positions[] = {{0.9, 3.35, -0.65}};
};
};
};
class gm_ural375d_medic_base: gm_ural375d_base {
class EGVAR(interaction,anims): EGVAR(interaction,anims) {
class tools_unhide: tools_unhide {
positions[] = {{0.9, 3.35, -0.5}};
};
};
};
class gm_ural4320_base: gm_wheeled_truck_base {
class EGVAR(interaction,anims) {
class tools_unhide {
phase = 0;
positions[] = {{0.93, 2.7, -0.5}};
items[] = {"ACE_EntrenchingTool"};
name = ECSTRING(trenches,EntrenchingToolName);
text = ECSTRING(trenches,EntrenchingToolName);
};
};
};
class gm_ural44202_base: gm_ural4320_base {
class EGVAR(interaction,anims): EGVAR(interaction,anims) {
class tools_unhide: tools_unhide {
positions[] = {{0.9, 2.6, -0.5}};
};
};
};
};

View File

@ -0,0 +1,23 @@
#include "script_component.hpp"
class CfgPatches {
class SUBADDON {
name = COMPONENT_NAME;
units[] = {};
weapons[] = {};
requiredVersion = REQUIRED_VERSION;
requiredAddons[] = {
"gm_core",
"ace_trenches"
};
skipWhenMissingDependencies = 1;
author = ECSTRING(common,ACETeam);
authors[] = {"johnb43"};
url = ECSTRING(main,URL);
VERSION_CONFIG;
addonRootClass = QUOTE(ADDON);
};
};
#include "CfgVehicles.hpp"

View File

@ -0,0 +1,3 @@
#define SUBCOMPONENT trenches
#define SUBCOMPONENT_BEAUTIFIED Trenches
#include "..\script_component.hpp"