mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
372 lines
10 KiB
C++
372 lines
10 KiB
C++
#include "script_component.hpp"
|
|
|
|
class CfgPatches {
|
|
class ADDON {
|
|
units[] = {};
|
|
weapons[] = {};
|
|
requiredVersion = REQUIRED_VERSION;
|
|
requiredAddons[] = {ace_common, ace_interaction};
|
|
author[] = {"KoffeinFlummi","BadGuy (simon84)"};
|
|
authorUrl = "https://github.com/KoffeinFlummi/";
|
|
VERSION_CONFIG;
|
|
};
|
|
};
|
|
|
|
#include "CfgEventHandlers.hpp"
|
|
|
|
class ACE_Default_Keys {
|
|
class laseTarget {
|
|
displayName = $STR_ACE_FCS_LaseTarget;
|
|
condition = QUOTE(call FUNC(canUseRangefinder) || FUNC(canUseFCS));
|
|
statement = QUOTE([_vehicle] call FUNC(keyDown));
|
|
conditionUp = QUOTE(GVAR(enabled) && FUNC(canUseFCS));
|
|
statementUp = QUOTE([_vehicle] call FUNC(keyUp));
|
|
key = 15;
|
|
shift = 0;
|
|
control = 0;
|
|
alt = 0;
|
|
};
|
|
class adjustRangeUp {
|
|
displayName = $STR_ACE_FCS_AdjustRangeUp;
|
|
condition = QUOTE(call FUNC(canUseRangefinder) || FUNC(canUseFCS));
|
|
statement = QUOTE([_vehicle, 50] call FUNC(adjustRange));
|
|
key = 201;
|
|
shift = 0;
|
|
control = 0;
|
|
alt = 0;
|
|
allowHolding = 1;
|
|
};
|
|
class adjustRangeDown: adjustRangeUp {
|
|
displayName = $STR_ACE_FCS_AdjustRangeDown;
|
|
statement = QUOTE([_vehicle, -50] call FUNC(adjustRange));
|
|
key = 209;
|
|
};
|
|
};
|
|
|
|
class CfgVehicles {
|
|
class All {
|
|
class Turrets;
|
|
};
|
|
|
|
class AllVehicles: All {
|
|
GVAR(Enabled) = 0;
|
|
GVAR(MinDistance) = 200;
|
|
GVAR(MaxDistance) = 9990;
|
|
GVAR(DistanceInterval) = 5;
|
|
class NewTurret {
|
|
class Turrets;
|
|
};
|
|
class CargoTurret;
|
|
};
|
|
|
|
class Land: AllVehicles {};
|
|
|
|
class LandVehicle: Land {
|
|
class CommanderOptics;
|
|
};
|
|
|
|
// WHEELED
|
|
class Car: LandVehicle {
|
|
class ACE_SelfActions {
|
|
class ResetFCS {
|
|
displayName = $STR_ACE_FCS_ResetFCS;
|
|
enableInside = 1;
|
|
condition = QUOTE(call FUNC(canResetFCS));
|
|
statement = QUOTE([vehicle _player] call FUNC(reset););
|
|
showDisabled = 0;
|
|
priority = 1;
|
|
icon = "";
|
|
};
|
|
};
|
|
};
|
|
|
|
class Car_F: Car {
|
|
class Turrets {
|
|
class MainTurret;
|
|
};
|
|
};
|
|
|
|
class Wheeled_APC_F: Car_F {
|
|
class Turrets {
|
|
class MainTurret: NewTurret {
|
|
class Turrets {
|
|
class CommanderOptics;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
class APC_Wheeled_01_base_F: Wheeled_APC_F {};
|
|
class B_APC_Wheeled_01_base_F: APC_Wheeled_01_base_F {};
|
|
class B_APC_Wheeled_01_cannon_F: B_APC_Wheeled_01_base_F {
|
|
GVAR(Enabled) = 1;
|
|
class Turrets: Turrets {
|
|
class MainTurret: MainTurret {
|
|
discreteDistance[] = {};
|
|
discreteDistanceInitIndex = 0;
|
|
};
|
|
};
|
|
};
|
|
|
|
class APC_Wheeled_03_base_F: Wheeled_APC_F {
|
|
GVAR(Enabled) = 1;
|
|
class Turrets: Turrets {
|
|
class MainTurret: MainTurret {
|
|
discreteDistance[] = {};
|
|
discreteDistanceInitIndex = 0;
|
|
};
|
|
};
|
|
};
|
|
|
|
// TRACKED
|
|
class Tank: LandVehicle {
|
|
GVAR(Enabled) = 1; // all tracked vehicles get one by default
|
|
class ACE_SelfActions {
|
|
class ResetFCS {
|
|
displayName = $STR_ACE_FCS_ResetFCS;
|
|
enableInside = 1;
|
|
condition = QUOTE(call FUNC(canResetFCS));
|
|
statement = QUOTE([vehicle _player] call FUNC(reset););
|
|
showDisabled = 0;
|
|
priority = 1;
|
|
icon = "";
|
|
};
|
|
};
|
|
class Turrets {
|
|
class MainTurret: NewTurret {
|
|
class Turrets {
|
|
class CommanderOptics;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
class Tank_F: Tank {
|
|
class Turrets {
|
|
class MainTurret: NewTurret {
|
|
class Turrets {
|
|
class CommanderOptics;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
class MBT_01_base_F: Tank_F {
|
|
class Turrets: Turrets {
|
|
class MainTurret: MainTurret {
|
|
discreteDistance[] = {};
|
|
discreteDistanceInitIndex = 0;
|
|
};
|
|
};
|
|
};
|
|
|
|
class B_MBT_01_base_F: MBT_01_base_F {};
|
|
class B_MBT_01_cannon_F: B_MBT_01_base_F {};
|
|
class B_MBT_01_TUSK_F: B_MBT_01_cannon_F {
|
|
class Turrets: Turrets {
|
|
class MainTurret: MainTurret {
|
|
discreteDistance[] = {};
|
|
discreteDistanceInitIndex = 0;
|
|
};
|
|
};
|
|
};
|
|
class MBT_01_arty_base_F: MBT_01_base_F {
|
|
GVAR(Enabled) = 0;
|
|
};
|
|
class MBT_01_mlrs_base_F: MBT_01_base_F {
|
|
GVAR(Enabled) = 0;
|
|
};
|
|
|
|
class MBT_02_base_F: Tank_F {
|
|
class Turrets: Turrets {
|
|
class MainTurret: MainTurret {
|
|
discreteDistance[] = {};
|
|
discreteDistanceInitIndex = 0;
|
|
};
|
|
};
|
|
};
|
|
class MBT_02_arty_base_F: MBT_02_base_F {
|
|
GVAR(Enabled) = 0;
|
|
};
|
|
|
|
class MBT_03_base_F: Tank_F {
|
|
class Turrets: Turrets {
|
|
class MainTurret: MainTurret {
|
|
discreteDistance[] = {};
|
|
discreteDistanceInitIndex = 0;
|
|
};
|
|
};
|
|
};
|
|
|
|
class APC_Tracked_01_base_F: Tank_F {};
|
|
class B_APC_Tracked_01_base_F: APC_Tracked_01_base_F {};
|
|
class B_APC_Tracked_01_rcws_F: B_APC_Tracked_01_base_F {
|
|
GVAR(Enabled) = 0;
|
|
};
|
|
class B_APC_Tracked_01_CRV_F: B_APC_Tracked_01_base_F {
|
|
GVAR(Enabled) = 0;
|
|
};
|
|
class B_APC_Tracked_01_AA_F: B_APC_Tracked_01_base_F {
|
|
class Turrets: Turrets {
|
|
class MainTurret: MainTurret {
|
|
discreteDistance[] = {};
|
|
discreteDistanceInitIndex = 0;
|
|
magazines[] += {"ACE_120Rnd_35mm_ABM_shells_Tracer_Red"};
|
|
};
|
|
};
|
|
};
|
|
|
|
class APC_Tracked_02_base_F: Tank_F {};
|
|
class O_APC_Tracked_02_base_F: APC_Tracked_02_base_F {};
|
|
class O_APC_Tracked_02_AA_F: O_APC_Tracked_02_base_F {
|
|
class Turrets: Turrets {
|
|
class MainTurret: MainTurret {
|
|
magazines[] += {"ACE_120Rnd_35mm_ABM_shells_Tracer_Green"};
|
|
};
|
|
};
|
|
};
|
|
|
|
class APC_Tracked_03_base_F: Tank_F {
|
|
class Turrets: Turrets {
|
|
class MainTurret: MainTurret {
|
|
discreteDistance[] = {};
|
|
discreteDistanceInitIndex = 0;
|
|
};
|
|
};
|
|
};
|
|
|
|
// HELICOPTERS
|
|
class Air: AllVehicles {};
|
|
|
|
class Helicopter: Air {
|
|
class ACE_SelfActions {
|
|
class ResetFCS {
|
|
displayName = $STR_ACE_FCS_ResetFCS;
|
|
enableInside = 1;
|
|
condition = QUOTE(call FUNC(canResetFCS));
|
|
statement = QUOTE([vehicle _player] call FUNC(reset););
|
|
showDisabled = 0;
|
|
priority = 1;
|
|
icon = "";
|
|
};
|
|
};
|
|
class Turrets {
|
|
class MainTurret;
|
|
};
|
|
};
|
|
|
|
class Helicopter_Base_F: Helicopter {
|
|
class Turrets: Turrets {
|
|
class CopilotTurret;
|
|
};
|
|
};
|
|
|
|
class Heli_Attack_01_base_F: Helicopter_Base_F {
|
|
GVAR(Enabled) = 1;
|
|
class Turrets: Turrets {
|
|
class MainTurret: MainTurret {
|
|
discreteDistance[] = {};
|
|
discreteDistanceInitIndex = 0;
|
|
};
|
|
};
|
|
};
|
|
|
|
class Heli_Attack_02_base_F: Helicopter_Base_F {
|
|
GVAR(Enabled) = 1;
|
|
class Turrets: Turrets {
|
|
class MainTurret: MainTurret {
|
|
discreteDistance[] = {};
|
|
discreteDistanceInitIndex = 0;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
class CfgWeapons {
|
|
// disable locking, so it doesn't interfere with our system
|
|
class CannonCore;
|
|
class cannon_120mm: CannonCore {
|
|
canLock = 0;
|
|
ballisticsComputer = 0;
|
|
};
|
|
class autocannon_Base_F: CannonCore {
|
|
canLock = 0;
|
|
ballisticsComputer = 0;
|
|
};
|
|
class autocannon_35mm: CannonCore {
|
|
canLock = 0;
|
|
ballisticsComputer = 0;
|
|
magazines[] += {"ACE_120Rnd_35mm_ABM_shells","ACE_120Rnd_35mm_ABM_shells_Tracer_Red","ACE_120Rnd_35mm_ABM_shells_Tracer_Green","ACE_120Rnd_35mm_ABM_shells_Tracer_Yellow"};
|
|
};
|
|
|
|
// fix mrco having an invisible rangefinder
|
|
class ItemCore;
|
|
class optic_MRCO: ItemCore {
|
|
weaponInfoType = "RscWeaponZeroing";
|
|
};
|
|
};
|
|
|
|
class CfgMagazines {
|
|
class 680Rnd_35mm_AA_shells;
|
|
class 680Rnd_35mm_AA_shells_Tracer_Red;
|
|
class 680Rnd_35mm_AA_shells_Tracer_Green;
|
|
class 680Rnd_35mm_AA_shells_Tracer_Yellow;
|
|
|
|
class ACE_120Rnd_35mm_ABM_shells: 680Rnd_35mm_AA_shells {
|
|
ammo = "ACE_B_35mm_ABM";
|
|
count = 120;
|
|
displayName = "35mm ABM Shells";
|
|
displayNameShort = "35mm ABM";
|
|
};
|
|
class ACE_120Rnd_35mm_ABM_shells_Tracer_Red: 680Rnd_35mm_AA_shells_Tracer_Red {
|
|
ammo = "ACE_B_35mm_ABM_Tracer_Red";
|
|
count = 120;
|
|
displayName = "35mm ABM Shells";
|
|
displayNameShort = "35mm ABM-T";
|
|
};
|
|
class ACE_120Rnd_35mm_ABM_shells_Tracer_Green: 680Rnd_35mm_AA_shells_Tracer_Green {
|
|
ammo = "ACE_B_35mm_ABM_Tracer_Green";
|
|
count = 120;
|
|
displayName = "35mm ABM Shells";
|
|
displayNameShort = "35mm ABM-T";
|
|
};
|
|
class ACE_120Rnd_35mm_ABM_shells_Tracer_Yellow: 680Rnd_35mm_AA_shells_Tracer_Yellow {
|
|
ammo = "ACE_B_35mm_ABM_Tracer_Yellow";
|
|
count = 120;
|
|
displayName = "35mm ABM Shells";
|
|
displayNameShort = "35mm ABM-T";
|
|
};
|
|
};
|
|
|
|
class CfgAmmo {
|
|
class B_35mm_AA;
|
|
class B_35mm_AA_Tracer_Red;
|
|
class B_35mm_AA_Tracer_Green;
|
|
class B_35mm_AA_Tracer_Yellow;
|
|
|
|
class ACE_B_35mm_ABM: B_35mm_AA {
|
|
GVAR(Airburst) = 1;
|
|
deflecting = 0;
|
|
};
|
|
class ACE_B_35mm_ABM_Tracer_Red: B_35mm_AA_Tracer_Red {
|
|
GVAR(Airburst) = 1;
|
|
deflecting = 0;
|
|
};
|
|
class ACE_B_35mm_ABM_Tracer_Green: B_35mm_AA_Tracer_Green {
|
|
GVAR(Airburst) = 1;
|
|
deflecting = 0;
|
|
};
|
|
class ACE_B_35mm_ABM_Tracer_Yellow: B_35mm_AA_Tracer_Yellow {
|
|
GVAR(Airburst) = 1;
|
|
deflecting = 0;
|
|
};
|
|
|
|
class ACE_B_35mm_ABM_Helper: B_35mm_AA {
|
|
indirectHitRange = 6;
|
|
simulation = "shotRocket";
|
|
timeToLive = 0;
|
|
};
|
|
};
|
|
|
|
#include <CfgOptics.hpp>
|