mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
a4ae61f1fc
* allow players to reload from nearSupplies * limit reloading to friendly sides * add handling for ai getting inside empty weapon * configOf for lookup * add getin handler, hammer out remaining bugs * configOf lookup * improve friendly/object filter * more configOf lookups * Capitalize settings, add ammo storage setting * remove systemChat Co-authored-by: PabstMirror <pabstmirror@gmail.com> * fix TRACE Co-authored-by: PabstMirror <pabstmirror@gmail.com> Co-authored-by: PabstMirror <pabstmirror@gmail.com>
287 lines
9.9 KiB
C++
287 lines
9.9 KiB
C++
class CfgVehicles {
|
|
class Man;
|
|
class CAManBase: Man {
|
|
class ACE_SelfActions {
|
|
class GVAR(deploy) {
|
|
displayName = CSTRING(PlaceTripod_displayName);
|
|
condition = QUOTE(call FUNC(assemble_canDeployTripod));
|
|
statement = QUOTE(call FUNC(assemble_deployTripod));
|
|
exceptions[] = {};
|
|
};
|
|
};
|
|
};
|
|
|
|
|
|
// Tripods:
|
|
class ThingX;
|
|
class GVAR(baseTripod): ThingX {
|
|
side = 3;
|
|
typicalCargo[] = {};
|
|
armor = 500000;
|
|
mapSize = 0.4;
|
|
nameSound = "Bunker";
|
|
accuracy = 1000;
|
|
destrType = "DestructDefault";
|
|
|
|
EGVAR(dragging,canDrag) = 1;
|
|
EGVAR(dragging,dragPosition)[] = {0, 2, 0};
|
|
EGVAR(dragging,canCarry) = 1;
|
|
EGVAR(dragging,carryPosition)[] = {0, 2, 0};
|
|
|
|
class ACE_Actions {
|
|
class ACE_MainActions {
|
|
displayName = CSTRING(genericTripod_displayName);
|
|
selection = "";
|
|
distance = 2.5;
|
|
condition = "true";
|
|
class GVAR(pickUp) {
|
|
displayName = CSTRING(Pickup_displayName);
|
|
condition = QUOTE(call FUNC(assemble_canPickupTripod));
|
|
statement = QUOTE(call FUNC(assemble_pickupTripod));
|
|
};
|
|
class GVAR(mountWeapon) {
|
|
displayName = CSTRING(MountWeapon_displayName);
|
|
condition = QUOTE(call FUNC(assemble_canDeployWeapon));
|
|
statement = QUOTE(call FUNC(assemble_deployWeapon));
|
|
modifierFunction = QUOTE(call FUNC(assemble_deployWeaponModifier));
|
|
};
|
|
};
|
|
};
|
|
};
|
|
class GVAR(m3Tripod): GVAR(baseTripod) {
|
|
author = ECSTRING(common,ACETeam);
|
|
scope = 2;
|
|
model = QPATHTOEF(apl,ACE_CSW_m3_tripod.p3d);
|
|
editorPreview = QPATHTOF(data\ace_csw_m3Tripod.jpg);
|
|
displayName = CSTRING(m3Tripod_displayName);
|
|
class ADDON {
|
|
disassembleTo = QGVAR(m3CarryTripod);
|
|
};
|
|
};
|
|
class GVAR(m3TripodLow): GVAR(m3Tripod) {
|
|
class ADDON {
|
|
disassembleTo = QGVAR(m3CarryTripodLow);
|
|
};
|
|
};
|
|
class GVAR(kordTripod): GVAR(baseTripod) {
|
|
author = ECSTRING(common,ACETeam);
|
|
scope = 2;
|
|
model = QPATHTOEF(apl,ace_csw_tripod_kord.p3d);
|
|
editorPreview = QPATHTOF(data\ace_csw_kordTripod.jpg);
|
|
displayName = CSTRING(kordTripod_displayName);
|
|
class ADDON {
|
|
disassembleTo = QGVAR(kordCarryTripod);
|
|
};
|
|
};
|
|
class GVAR(kordTripodLow): GVAR(kordTripod) {
|
|
class ADDON {
|
|
disassembleTo = QGVAR(kordCarryTripodLow);
|
|
};
|
|
};
|
|
class GVAR(sag30Tripod): GVAR(baseTripod) {
|
|
author = ECSTRING(common,ACETeam);
|
|
scope = 2;
|
|
model = QPATHTOEF(apl,ace_csw_tripod_ags30.p3d);
|
|
editorPreview = QPATHTOF(data\ace_csw_sag30Tripod.jpg);
|
|
displayName = CSTRING(sag30Tripod_displayName);
|
|
class ADDON {
|
|
disassembleTo = QGVAR(sag30CarryTripod);
|
|
};
|
|
};
|
|
class GVAR(m220Tripod): GVAR(baseTripod) {
|
|
author = ECSTRING(common,ACETeam);
|
|
scope = 2;
|
|
model = QPATHTOEF(apl,ace_csw_tripod_m220.p3d);
|
|
editorPreview = QPATHTOF(data\ace_csw_m220Tripod.jpg);
|
|
displayName = CSTRING(m220Tripod_displayName);
|
|
class ADDON {
|
|
disassembleTo = QGVAR(m220CarryTripod);
|
|
};
|
|
};
|
|
class GVAR(spg9Tripod): GVAR(baseTripod) {
|
|
author = ECSTRING(common,ACETeam);
|
|
scope = 2;
|
|
model = QPATHTOEF(apl,ace_csw_tripod_spg9.p3d);
|
|
editorPreview = QPATHTOF(data\ace_csw_spg9Tripod.jpg);
|
|
displayName = CSTRING(spg9_Tripod);
|
|
class ADDON {
|
|
disassembleTo = QGVAR(spg9CarryTripod);
|
|
};
|
|
};
|
|
class GVAR(mortarBaseplate): GVAR(baseTripod) {
|
|
author = ECSTRING(common,ACETeam);
|
|
scope = 2;
|
|
model = QPATHTOEF(apl,ACE_CSW_mortarBaseplate.p3d);
|
|
editorPreview = QPATHTOF(data\ace_csw_mortarBaseplate.jpg);
|
|
displayName = CSTRING(mortarBaseplate_displayName);
|
|
class ADDON {
|
|
disassembleTo = QGVAR(carryMortarBaseplate);
|
|
};
|
|
};
|
|
|
|
|
|
// Static Weapons:
|
|
class LandVehicle;
|
|
class StaticWeapon: LandVehicle {
|
|
class ACE_Actions {
|
|
class ACE_MainActions {
|
|
class GVAR(getIn) {
|
|
displayName = CSTRING(GetIn_displayName);
|
|
condition = QUOTE(call FUNC(canGetIn));
|
|
statement = QUOTE(call FUNC(getIn));
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
class StaticMGWeapon: StaticWeapon {};
|
|
|
|
class HMG_01_base_F: StaticMGWeapon {
|
|
// ENABLE_CSW_ATTRIBUTE;
|
|
class ADDON {
|
|
enabled = 1;
|
|
proxyWeapon = QGVAR(HMG_Static);
|
|
magazineLocation = "_target selectionPosition 'magazine'";
|
|
disassembleWeapon = QGVAR(staticHMGCarry); // carry weapon [CfgWeapons]
|
|
disassembleTurret = QGVAR(m3TripodLow); // turret [CfgVehicles]
|
|
desiredAmmo = 100;
|
|
ammoLoadTime = 7;
|
|
ammoUnloadTime = 5;
|
|
};
|
|
};
|
|
|
|
class HMG_01_high_base_F: HMG_01_base_F {
|
|
class ADDON {
|
|
enabled = 1;
|
|
proxyWeapon = QGVAR(HMG_Static);
|
|
magazineLocation = "_target selectionPosition 'magazine'";
|
|
disassembleWeapon = QGVAR(staticHMGCarry); // carry weapon [CfgWeapons]
|
|
disassembleTurret = QGVAR(m3Tripod); // turret [CfgVehicles]
|
|
desiredAmmo = 100;
|
|
ammoLoadTime = 7;
|
|
ammoUnloadTime = 5;
|
|
};
|
|
};
|
|
|
|
class HMG_01_A_base_F: HMG_01_base_F {
|
|
class ADDON {
|
|
enabled = 0;
|
|
};
|
|
};
|
|
|
|
class HMG_02_base_F: StaticMGWeapon {
|
|
class ADDON {
|
|
enabled = 1;
|
|
proxyWeapon = QGVAR(HMG_M2_Mounted);
|
|
magazineLocation = "_target selectionPosition 'magazine'";
|
|
disassembleWeapon = QGVAR(staticM2ShieldCarry); // carry weapon [CfgWeapons]
|
|
disassembleTurret = QGVAR(m3TripodLow); // turret [CfgVehicles]
|
|
desiredAmmo = 100;
|
|
ammoLoadTime = 7;
|
|
ammoUnloadTime = 5;
|
|
};
|
|
};
|
|
class HMG_02_high_base_F: HMG_02_base_F {
|
|
class ADDON {
|
|
enabled = 1;
|
|
proxyWeapon = QGVAR(HMG_M2_Mounted);
|
|
magazineLocation = "_target selectionPosition 'magazine'";
|
|
disassembleWeapon = QGVAR(staticM2ShieldCarry); // carry weapon [CfgWeapons]
|
|
disassembleTurret = QGVAR(m3Tripod); // turret [CfgVehicles]
|
|
desiredAmmo = 100;
|
|
ammoLoadTime = 7;
|
|
ammoUnloadTime = 5;
|
|
};
|
|
};
|
|
|
|
|
|
class GMG_TriPod;
|
|
class GMG_01_base_F: GMG_TriPod {
|
|
// ENABLE_CSW_ATTRIBUTE;
|
|
class ADDON {
|
|
enabled = 1;
|
|
proxyWeapon = QGVAR(GMG_20mm); // Weapon Proxy (Shorter Reload Time) [CfgWeapons]
|
|
magazineLocation = "_target selectionPosition 'magazine'";
|
|
disassembleWeapon = QGVAR(staticGMGCarry); // carry weapon [CfgWeapons]
|
|
disassembleTurret = QGVAR(m3TripodLow); // turret [CfgVehicles]
|
|
desiredAmmo = 40;
|
|
ammoLoadTime = 7;
|
|
ammoUnloadTime = 5;
|
|
};
|
|
};
|
|
|
|
class GMG_01_high_base_F: GMG_01_base_F {
|
|
class ADDON {
|
|
enabled = 1;
|
|
proxyWeapon = QGVAR(GMG_20mm); // Weapon Proxy (Shorter Reload Time) [CfgWeapons]
|
|
magazineLocation = "_target selectionPosition 'magazine'";
|
|
disassembleWeapon = QGVAR(staticGMGCarry); // carry weapon [CfgWeapons]
|
|
disassembleTurret = QGVAR(m3Tripod); // turret [CfgVehicles]
|
|
desiredAmmo = 40;
|
|
ammoLoadTime = 7;
|
|
ammoUnloadTime = 5;
|
|
};
|
|
};
|
|
|
|
class GMG_01_A_base_F: GMG_01_base_F {
|
|
class ADDON {
|
|
enabled = 0;
|
|
};
|
|
};
|
|
|
|
|
|
class AT_01_base_F: StaticMGWeapon {
|
|
// ENABLE_CSW_ATTRIBUTE;
|
|
class ADDON {
|
|
enabled = 1;
|
|
proxyWeapon = QGVAR(Titan_AT_Static);
|
|
magazineLocation = "_target selectionPosition 'magazine'";
|
|
disassembleWeapon = QGVAR(staticATCarry); // carry weapon [CfgWeapons]
|
|
disassembleTurret = QGVAR(m3Tripod); // turret [CfgVehicles]
|
|
desiredAmmo = 40;
|
|
ammoLoadTime = 15; // 4 rounds per minute
|
|
ammoUnloadTime = 10;
|
|
};
|
|
};
|
|
|
|
class AA_01_base_F: StaticMGWeapon {
|
|
// ENABLE_CSW_ATTRIBUTE;
|
|
class ADDON {
|
|
enabled = 1;
|
|
proxyWeapon = QGVAR(Titan_AA_Static); // Weapon Proxy (Shorter Reload Time) [CfgWeapons]
|
|
magazineLocation = "_target selectionPosition 'magazine'";
|
|
disassembleWeapon = QGVAR(staticAACarry); // carry weapon [CfgWeapons]
|
|
disassembleTurret = QGVAR(m3Tripod); // turret [CfgVehicles]
|
|
desiredAmmo = 40;
|
|
ammoLoadTime = 15; // 4 rounds per minute
|
|
ammoUnloadTime = 10;
|
|
};
|
|
};
|
|
|
|
|
|
class StaticMortar: StaticWeapon {};
|
|
class Mortar_01_base_F: StaticMortar {
|
|
// ENABLE_CSW_ATTRIBUTE;
|
|
class ADDON {
|
|
enabled = 1;
|
|
magazineLocation = "";
|
|
disassembleWeapon = QGVAR(staticMortarCarry); // carry weapon [CfgWeapons]
|
|
disassembleTurret = QGVAR(mortarBaseplate); // turret [CfgVehicles]
|
|
desiredAmmo = 1;
|
|
ammoLoadTime = 3;
|
|
ammoUnloadTime = 3;
|
|
};
|
|
};
|
|
// Ammo holder for returning ammo
|
|
class ReammoBox_F;
|
|
class GVAR(ammo_holder): ReammoBox_F {
|
|
EGVAR(cargo,canLoad) = 0;
|
|
EGVAR(cargo,noRename) = 1;
|
|
EGVAR(dragging,canCarry) = 1; // Allow this to be moved alongside the weapon
|
|
EGVAR(dragging,canDrag) = 1;
|
|
scope = 1;
|
|
maximumLoad = 0; // don't allow anything to be placed inside, only removed
|
|
model = "\A3\Structures_F_EPB\Items\Military\Ammobox_rounds_F.p3d";
|
|
};
|
|
};
|