mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
Add all ground based missiles. Tweak AIM-9 flare angle
This commit is contained in:
parent
cba9dcd8e7
commit
675b07d2ed
@ -22,7 +22,7 @@ class CfgAmmo {
|
||||
seekerTypes[] = { "IR" };
|
||||
|
||||
flareDistanceFilter = 100;
|
||||
flareAngleFilter = 2.0; // can filter out flares that are >= flareAngleFilter to known target velocity
|
||||
flareAngleFilter = 1.6; // can filter out flares that are >= flareAngleFilter to known target velocity
|
||||
|
||||
defaultSeekerLockMode = "LOBL";
|
||||
seekerLockModes[] = { "LOBL" };
|
||||
|
1
addons/manpad/$PBOPREFIX$
Normal file
1
addons/manpad/$PBOPREFIX$
Normal file
@ -0,0 +1 @@
|
||||
z\ace\addons\manpad
|
80
addons/manpad/CfgAmmo.hpp
Normal file
80
addons/manpad/CfgAmmo.hpp
Normal file
@ -0,0 +1,80 @@
|
||||
class CfgAmmo {
|
||||
class ammo_Missile_rim116;
|
||||
class GVAR(rim116): ammo_Missile_rim116 {
|
||||
maneuvrability = 0;
|
||||
missileLockMaxSpeed = 2000;
|
||||
|
||||
class ace_missileguidance {
|
||||
enabled = 1;
|
||||
|
||||
pitchRate = 30; // Minium flap deflection for guidance
|
||||
yawRate = 30; // Maximum flap deflection for guidance
|
||||
|
||||
canVanillaLock = 1; // Can this default vanilla lock? Only applicable to non-cadet mode
|
||||
|
||||
// Guidance type for munitions
|
||||
defaultSeekerType = "IR";
|
||||
seekerTypes[] = { "IR" };
|
||||
|
||||
flareDistanceFilter = 100;
|
||||
flareAngleFilter = 0.5; // can filter out flares that are >= flareAngleFilter to known target velocity
|
||||
|
||||
defaultSeekerLockMode = "LOBL";
|
||||
seekerLockModes[] = { "LOBL" };
|
||||
|
||||
defaultNavigationType = "ZeroEffortMiss";
|
||||
navigationTypes[] = { "ZeroEffortMiss" };
|
||||
|
||||
seekLastTargetPos = 0; // seek last target position [if seeker loses LOS of target, continue to last known pos]
|
||||
seekerAngle = 45; // Angle from the shooter's view that can track the missile
|
||||
seekerAccuracy = 0.8; // seeker accuracy multiplier
|
||||
|
||||
seekerMinRange = 75;
|
||||
seekerMaxRange = 5000; // Range from the missile which the seeker can visually search
|
||||
|
||||
// Attack profile type selection
|
||||
defaultAttackProfile = "DIR";
|
||||
attackProfiles[] = {"DIR"};
|
||||
};
|
||||
};
|
||||
|
||||
class M_70mm_SAAMI;
|
||||
class GVAR(stinger): M_70mm_SAAMI {
|
||||
maneuvrability = 0;
|
||||
missileLockMaxSpeed = 2000;
|
||||
|
||||
class ace_missileguidance {
|
||||
enabled = 1;
|
||||
|
||||
pitchRate = 20; // Minium flap deflection for guidance
|
||||
yawRate = 20; // Maximum flap deflection for guidance
|
||||
|
||||
canVanillaLock = 1; // Can this default vanilla lock? Only applicable to non-cadet mode
|
||||
|
||||
// Guidance type for munitions
|
||||
defaultSeekerType = "IR";
|
||||
seekerTypes[] = { "IR" };
|
||||
|
||||
flareDistanceFilter = 100;
|
||||
flareAngleFilter = 1.3; // can filter out flares that are >= flareAngleFilter to known target velocity
|
||||
|
||||
defaultSeekerLockMode = "LOBL";
|
||||
seekerLockModes[] = { "LOBL" };
|
||||
|
||||
defaultNavigationType = "AugmentedProportionalNavigation";
|
||||
navigationTypes[] = { "AugmentedProportionalNavigation" };
|
||||
|
||||
seekLastTargetPos = 0; // seek last target position [if seeker loses LOS of target, continue to last known pos]
|
||||
seekerAngle = 45; // Angle from the shooter's view that can track the missile
|
||||
seekerAccuracy = 0.8; // seeker accuracy multiplier
|
||||
|
||||
seekerMinRange = 75;
|
||||
seekerMaxRange = 5000; // Range from the missile which the seeker can visually search
|
||||
|
||||
// Attack profile type selection
|
||||
defaultAttackProfile = "DIR";
|
||||
attackProfiles[] = {"DIR"};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
23
addons/manpad/CfgMagazines.hpp
Normal file
23
addons/manpad/CfgMagazines.hpp
Normal file
@ -0,0 +1,23 @@
|
||||
class CfgMagazines {
|
||||
class magazine_Missile_rim116_x21;
|
||||
class GVAR(rim116): magazine_Missile_rim116_x21 {
|
||||
author = "Brandon (TCVM)";
|
||||
displayName = "x21 RIM-116 [ACE]";
|
||||
ammo = QGVAR(rim116);
|
||||
};
|
||||
|
||||
class 4Rnd_70mm_SAAMI_missiles;
|
||||
class GVAR(stinger): 4Rnd_70mm_SAAMI_missiles {
|
||||
author = "Brandon (TCVM)";
|
||||
displayName = "x4 FIM-92 Stinger [ACE]";
|
||||
ammo = QGVAR(stinger);
|
||||
};
|
||||
|
||||
class Titan_AA;
|
||||
class GVAR(stinger_man): Titan_AA {
|
||||
author = "Brandon (TCVM)";
|
||||
displayName = "FIM-92 Stinger [ACE]";
|
||||
ammo = QGVAR(stinger);
|
||||
};
|
||||
};
|
||||
|
111
addons/manpad/CfgVehicles.hpp
Normal file
111
addons/manpad/CfgVehicles.hpp
Normal file
@ -0,0 +1,111 @@
|
||||
class CfgVehicles {
|
||||
class LandVehicle;
|
||||
class StaticWeapon: LandVehicle {
|
||||
class Turrets;
|
||||
};
|
||||
class StaticMGWeapon: StaticWeapon {
|
||||
class Turrets: Turrets {
|
||||
class MainTurret;
|
||||
};
|
||||
};
|
||||
|
||||
class SAM_System_01_base_F: StaticMGWeapon {
|
||||
class AnimationSources {
|
||||
class Missiles_revolving {
|
||||
source = "revolving";
|
||||
weapon = QGVAR(rim116);
|
||||
};
|
||||
};
|
||||
|
||||
class Turrets: Turrets {
|
||||
class MainTurret: MainTurret {
|
||||
weapons[] = {QGVAR(rim116)};
|
||||
magazines[] = {QGVAR(rim116)};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class Tank;
|
||||
class Tank_F: Tank {
|
||||
class Turrets;
|
||||
};
|
||||
class LT_01_base_F: Tank_F {
|
||||
class AnimationSources;
|
||||
class Turrets: Turrets {
|
||||
class MainTurret;
|
||||
};
|
||||
};
|
||||
|
||||
class LT_01_AA_base_F: LT_01_base_F {
|
||||
class AnimationSources: AnimationSources {
|
||||
class Missiles_revolving {
|
||||
source = "revolving";
|
||||
weapon = QGVAR(FIM92);
|
||||
};
|
||||
};
|
||||
|
||||
class Turrets: Turrets {
|
||||
class MainTurret: MainTurret {
|
||||
weapons[] = {"SmokeLauncher", QGVAR(FIM92), "HMG_127"};
|
||||
magazines[] = {
|
||||
"SmokeLauncherMag",
|
||||
QGVAR(stinger),
|
||||
QGVAR(stinger),
|
||||
"100Rnd_127x99_mag_Tracer_Red",
|
||||
"100Rnd_127x99_mag_Tracer_Red",
|
||||
"100Rnd_127x99_mag_Tracer_Red",
|
||||
"100Rnd_127x99_mag_Tracer_Red"
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class APC_Tracked_01_base_F: Tank_F {
|
||||
class Turrets;
|
||||
};
|
||||
|
||||
class B_APC_Tracked_01_base_F: APC_Tracked_01_base_F {
|
||||
class AnimationSources;
|
||||
class Turrets: Turrets {
|
||||
class MainTurret;
|
||||
};
|
||||
};
|
||||
class B_APC_Tracked_01_AA_F: B_APC_Tracked_01_base_F {
|
||||
class AnimationSources: AnimationSources {
|
||||
class Missiles_revolving {
|
||||
source = "revolving";
|
||||
weapon = QGVAR(FIM92);
|
||||
};
|
||||
};
|
||||
class Turrets: Turrets {
|
||||
class MainTurret: MainTurret {
|
||||
weapons[] = {"autocannon_35mm", QGVAR(FIM92)};
|
||||
magazines[] = {"680Rnd_35mm_AA_shells_Tracer_Red", QGVAR(stinger), QGVAR(stinger)};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class APC_Tracked_02_base_F: Tank_F {
|
||||
class Turrets;
|
||||
};
|
||||
class O_APC_Tracked_02_base_F : APC_Tracked_02_base_F {
|
||||
class AnimationSources;
|
||||
class Turrets: Turrets {
|
||||
class MainTurret;
|
||||
};
|
||||
};
|
||||
class O_APC_Tracked_02_AA_F : O_APC_Tracked_02_base_F {
|
||||
class AnimationSources: AnimationSources {
|
||||
class Missiles_revolving {
|
||||
source = "revolving";
|
||||
weapon = QGVAR(FIM92);
|
||||
};
|
||||
};
|
||||
class Turrets: Turrets {
|
||||
class MainTurret: MainTurret {
|
||||
weapons[] = {"autocannon_35mm", QGVAR(FIM92)};
|
||||
magazines[] = {"680Rnd_35mm_AA_shells_Tracer_Green", QGVAR(stinger), QGVAR(stinger)};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
23
addons/manpad/CfgWeapons.hpp
Normal file
23
addons/manpad/CfgWeapons.hpp
Normal file
@ -0,0 +1,23 @@
|
||||
class CfgWeapons {
|
||||
class weapon_rim116Launcher;
|
||||
class GVAR(rim116): weapon_rim116Launcher {
|
||||
author = "Brandon (TCVM)";
|
||||
displayName = "RIM-116";
|
||||
magazines[] = { QGVAR(rim116) };
|
||||
weaponLockDelay = 0.5;
|
||||
};
|
||||
|
||||
class missiles_SAAMI;
|
||||
class GVAR(FIM92): missiles_SAAMI {
|
||||
author = "Brandon (TCVM)";
|
||||
displayName = "FIM-92 Stinger";
|
||||
magazines[] = { QGVAR(stinger) };
|
||||
weaponLockDelay = 0.5;
|
||||
};
|
||||
|
||||
class Launcher_Base_F;
|
||||
class launch_Titan_base: Launcher_Base_F {
|
||||
magazines[] = {QGVAR(stinger_man)};
|
||||
};
|
||||
};
|
||||
|
12
addons/manpad/README.md
Normal file
12
addons/manpad/README.md
Normal file
@ -0,0 +1,12 @@
|
||||
ace_manpad
|
||||
===================
|
||||
|
||||
Adds missile guidance to all vanilla MANPAD systems
|
||||
|
||||
|
||||
## Maintainers
|
||||
|
||||
The people responsible for merging changes to this component or answering potential questions.
|
||||
|
||||
- [Brandon-TCVM](https://github.com/TheCandianVendingMachine)
|
||||
|
21
addons/manpad/config.cpp
Normal file
21
addons/manpad/config.cpp
Normal file
@ -0,0 +1,21 @@
|
||||
#include "script_component.hpp"
|
||||
|
||||
class CfgPatches {
|
||||
class ADDON {
|
||||
name = COMPONENT_NAME;
|
||||
units[] = {};
|
||||
weapons[] = {};
|
||||
requiredVersion = REQUIRED_VERSION;
|
||||
requiredAddons[] = {"ace_common","ace_missileguidance"};
|
||||
author = ECSTRING(common,ACETeam);
|
||||
authors[] = {"Brandon (TCVM)"};
|
||||
url = ECSTRING(main,URL);
|
||||
VERSION_CONFIG;
|
||||
};
|
||||
};
|
||||
|
||||
#include "CfgAmmo.hpp"
|
||||
#include "CfgMagazines.hpp"
|
||||
#include "CfgWeapons.hpp"
|
||||
#include "CfgVehicles.hpp"
|
||||
|
18
addons/manpad/script_component.hpp
Normal file
18
addons/manpad/script_component.hpp
Normal file
@ -0,0 +1,18 @@
|
||||
#define COMPONENT manpad
|
||||
#define COMPONENT_BEAUTIFIED MANPAD
|
||||
#include "\z\ace\addons\main\script_mod.hpp"
|
||||
|
||||
// #define DEBUG_MODE_FULL
|
||||
// #define DISABLE_COMPILE_CACHE
|
||||
// #define ENABLE_PERFORMANCE_COUNTERS
|
||||
|
||||
#ifdef DEBUG_ENABLED_MANPAD
|
||||
#define DEBUG_MODE_FULL
|
||||
#endif
|
||||
|
||||
#ifdef DEBUG_SETTINGS_MANPAD
|
||||
#define DEBUG_SETTINGS DEBUG_SETTINGS_MANPAD
|
||||
#endif
|
||||
|
||||
#include "\z\ace\addons\main\script_macros.hpp"
|
||||
|
@ -91,7 +91,7 @@ if (TRACK_ON_PAUSE || {accTime > 0 && !isGamePaused}) then {
|
||||
if !(_foundDecoy) then {
|
||||
private _flareRelativeVelocity = (velocity _x) vectorDiff _projectileVelocity;
|
||||
private _angleBetweenVelocities = acos (_closingVelocity vectorCos _flareRelativeVelocity);
|
||||
|
||||
systemChat str [_angleBetweenVelocities, _flareAngleFilter];
|
||||
if (_angleBetweenVelocities <= _flareAngleFilter) then {
|
||||
_considering = true;
|
||||
if (_seekerAccuracy <= random 1) then {
|
||||
|
@ -27,11 +27,11 @@ Weapon Configs:
|
||||
AGM-88 - Passive Radar Homing
|
||||
KH-58 - Passive Radar Homing
|
||||
|
||||
Titan MRPL - Infrared
|
||||
AWC Nyx SAAMI - Infrared
|
||||
IFV-6a Cheetah AA - Infrared
|
||||
ZSU-39 Tigris AA - Infrared
|
||||
Mk49 Spartan - Infrared
|
||||
X Titan MRPL - Infrared
|
||||
X AWC Nyx SAAMI - Infrared
|
||||
X IFV-6a Cheetah AA - Infrared
|
||||
X ZSU-39 Tigris AA - Infrared
|
||||
X Mk49 Spartan - Infrared
|
||||
|
||||
X Mk21 Centurion - Doppler Radar
|
||||
X MIM-145 - Doppler Radar
|
||||
@ -61,11 +61,10 @@ Navigation Types:
|
||||
AGM-88 - APN
|
||||
KH-58 - APN
|
||||
X AIM-9 - APN
|
||||
Titan MRPL - APN
|
||||
AWC Nyx SAAMI - APN
|
||||
IFV-6a Cheetah AA - APN
|
||||
ZSU-39 Tigris AA - APN
|
||||
Mk21 Centurion - APN
|
||||
X Titan MRPL - APN
|
||||
X AWC Nyx SAAMI - APN
|
||||
X IFV-6a Cheetah AA - APN
|
||||
X ZSU-39 Tigris AA - APN
|
||||
|
||||
X Javelin - ZEM
|
||||
X Hellfire - ZEM
|
||||
@ -76,6 +75,7 @@ Navigation Types:
|
||||
X MIM-145 - ZEM
|
||||
X S-750 - ZEM
|
||||
X Mk49 Spartan - ZEM
|
||||
X Mk21 Centurion - ZEM
|
||||
|
||||
Navigation State Machine:
|
||||
Todo: Will allow for changing of navigation type in flight to get a more realistic flight profile
|
||||
@ -87,7 +87,7 @@ Navigation Types:
|
||||
X Predicted Line of Sight
|
||||
|
||||
General To-Do:
|
||||
Add more weapons
|
||||
X Add more weapons
|
||||
X Fix GBU drag
|
||||
X Make sure all applicable pylons can hold all applicable weapons
|
||||
X NLAW is busted: figure out PLOS navigation system
|
||||
|
Loading…
Reference in New Issue
Block a user