diff --git a/addons/ai/CfgAISkill.hpp b/addons/ai/CfgAISkill.hpp new file mode 100644 index 0000000000..dfa0299509 --- /dev/null +++ b/addons/ai/CfgAISkill.hpp @@ -0,0 +1,27 @@ + +/* + * Documentation: + * https://community.bistudio.com/wiki/AI_Sub-skills + * + * The idea here is to reduce the AI's godlike aiming + * capabilties while retaining it's high intelligence. + * The AI should be smart enough to move through a town, + * but also be 'human' in their reaction time and aim. + * + * Note: All these values can still be adjusted via + * scripts, these arrays just change what 0 & 1 + * are for setSkill. + */ + +class CfgAISkill { + aimingAccuracy[] = {0,0, 1,0.8}; // {0,0,1,1}; v1.26 defaults + aimingShake[] = {0,0, 1,0.6}; // {0,0,1,1}; + aimingSpeed[] = {0,0, 1,0.7}; // {0,0.5,1,1}; + commanding[] = {0,0, 1,0.8}; // {0,0,1,1}; + courage[] = {0,0, 1,0.7}; // {0,0,1,1}; + endurance[] = {0,0, 1,0.7}; // {0,0,1,1}; + general[] = {0,0, 1,0.9}; // {0,0,1,1}; + reloadSpeed[] = {0,0, 1,0.8}; // {0,0,1,1}; + spotDistance[] = {0,0, 1,0.9}; // {0,0.2,1,0.4}; + spotTime[] = {0,0, 1,0.7}; // {0,0,1,0.7}; +}; diff --git a/addons/ai/CfgWeapons.hpp b/addons/ai/CfgWeapons.hpp new file mode 100644 index 0000000000..ff25e53c22 --- /dev/null +++ b/addons/ai/CfgWeapons.hpp @@ -0,0 +1,575 @@ + +// weapon config changes, by commy2 + +/* documentation: +aiDispersionCoefX = 1.0 Dispersion multiplier for AI units (axis X - left to right). +aiDispersionCoefY = 1.0 Dispersion multiplier for AI units (axis Y - top-down). +aiRateOfFire = 5.0 Delay between shots at given aiRateOfFireDistance. +aiRateOfFireDistance = 500 At shorter distance delay (aiRateOfFire) goes linearly to zero. +*/ + +class Mode_SemiAuto; +class Mode_Burst; +class Mode_FullAuto; + +class CfgWeapons { + + // rifles + class RifleCore; + class Rifle: RifleCore { + aiDispersionCoefX = 6; + aiDispersionCoefY = 6; + }; + + class Rifle_Base_F: Rifle {}; + class Rifle_Long_Base_F: Rifle_Base_F {}; + + // MX + class arifle_MX_Base_F: Rifle_Base_F { + aiDispersionCoefY = 18.0; + aiDispersionCoefX = 12.0; + modes[] += {"AGM_Burst_far"}; + + class Single: Mode_SemiAuto { + minRange = 120; // 2; + minRangeProbab = 0.7; // 0.5; + midRange = 300; // 200; + midRangeProbab = 0.5; // 0.7; + }; + + class FullAuto; + class fullauto_medium: FullAuto { + minRange = 20; // 2; + burst = "3 + round random 5"; //3; + }; + + class AGM_Burst_far: fullauto_medium { + aiRateOfFire = 2.0; + aiRateOfFireDistance = 500; + minRange = 400; + minRangeProbab = 0.1; + midRange = 500; + midRangeProbab = 0.2; + maxRange = 600; + maxRangeProbab = 0.2; + burst = "2 + round random 3"; + }; + + class single_medium_optics1: Single { + aiRateOfFireDistance = 700; // 600; + minRange = 120; // 2; + maxRange = 700; // 600; + }; + + class single_far_optics2: single_medium_optics1 { + aiRateOfFireDistance = 900; // 700; + minRange = 200; // 100; + maxRange = 900; // 700; + }; + }; + + // MX carbine + class arifle_MXC_F: arifle_MX_Base_F { + aiDispersionCoefY = 18.0; + aiDispersionCoefX = 12.0; + + class Single: Single { + minRange = 120; // 2; + minRangeProbab = 0.5; // 0.3; + midRange = 250; // 150; + midRangeProbab = 0.3; // 0.5; + }; + + class FullAuto; + class fullauto_medium: fullauto_medium { + minRange = 20; // 2; + burst = "3 + round random 5"; //3; + }; + + class AGM_Burst_far: fullauto_medium { + aiRateOfFire = 2.0; + aiRateOfFireDistance = 400; + minRange = 300; + minRangeProbab = 0.1; + midRange = 400; + midRangeProbab = 0.2; + maxRange = 500; + maxRangeProbab = 0.2; + burst = "2 + round random 3"; + }; + + class single_medium_optics1: single_medium_optics1 { + aiRateOfFireDistance = 600; // 500; + minRange = 120; // 2; + maxRange = 600; // 500; + }; + + class single_far_optics2: single_medium_optics1 { + aiRateOfFireDistance = 800; // 700; + minRange = 200; // 100; + maxRange = 800; // 700; + }; + }; + + //class arifle_MX_F: arifle_MX_Base_F {}; + //class arifle_MX_GL_F: arifle_MX_Base_F {}; + + // MX machine gun + class arifle_MXM_F: arifle_MX_Base_F { + class Single: Single { + minRange = 120; // 2; + minRangeProbab = 0.7; // 0.5; + midRange = 350; // 250; + midRangeProbab = 0.5; // 0.7; + }; + + class fullauto_medium: fullauto_medium { + minRange = 20; // 2; + burst = "3 + round random 5"; //3; + }; + + class single_medium_optics1: single_medium_optics1 { + aiRateOfFireDistance = 700; // 600; + minRange = 120; // 2; + maxRange = 750; // 650; + }; + + class single_far_optics2: single_far_optics2 { + aiRateOfFireDistance = 900; // 800; + minRange = 200; // 100; + maxRange = 900; // 800; + }; + }; + + // MX sniper rifle + class arifle_MX_SW_F: arifle_MX_Base_F { + aiDispersionCoefY = 24.0; + aiDispersionCoefX = 21.0; + modes[] += {"AGM_Burst_far"}; + + class Single: Mode_SemiAuto { + minRange = 120; // 2; + }; + + class close; + class medium; + class AGM_Burst_far: medium { + aiRateOfFire = 6.0; + aiRateOfFireDistance = 900; + minRange = 500; + minRangeProbab = 0.1; + midRange = 700; + midRangeProbab = 0.2; + maxRange = 900; + maxRangeProbab = 0.2; + burst = "3 + round random 5"; + }; + + class far_optic1: close { + aiRateOfFireDistance = 750; // 650; + maxRange = 750; // 650; + }; + + class far_optic2: far_optic1 { + maxRange = 1100; // 900; + aiRateOfFireDistance = 1100;// 900; + }; + }; + + // Katiba + class arifle_Katiba_Base_F: Rifle_Base_F { + aiDispersionCoefY = 18.0; + aiDispersionCoefX = 12.0; + modes[] += {"AGM_Burst_far"}; + + class Single: Mode_SemiAuto { + minRange = 120; // 2; + minRangeProbab = 0.7; // 0.5; + midRange = 300; // 200; + midRangeProbab = 0.5; // 0.7; + }; + + class FullAuto; + class fullauto_medium: FullAuto { + minRange = 20; // 2; + burst = "3 + round random 5"; //3; + }; + + class AGM_Burst_far: fullauto_medium { + aiRateOfFire = 2.0; + aiRateOfFireDistance = 500; + minRange = 400; + minRangeProbab = 0.1; + midRange = 500; + midRangeProbab = 0.2; + maxRange = 600; + maxRangeProbab = 0.2; + burst = "2 + round random 3"; + }; + + class single_medium_optics1: Single { + aiRateOfFireDistance = 700; // 600; + minRange = 120; // 2; + maxRange = 700; // 600; + }; + + class single_far_optics2: single_medium_optics1 { + aiRateOfFireDistance = 900; // 800; + minRange = 200; // 100; + maxRange = 900; // 800; + }; + }; + + // Katiba carbine + class arifle_Katiba_C_F: arifle_Katiba_Base_F { + aiDispersionCoefY = 18.0; + aiDispersionCoefX = 12.0; + + class Single: Single { + minRange = 120; // 2; + minRangeProbab = 0.5; // 0.3; + midRange = 250; // 150; + midRangeProbab = 0.3; // 0.7; + }; + + //class FullAuto: FullAuto {}; + + class fullauto_medium: fullauto_medium { + minRange = 20; // 2; + maxRange = 150; //100; + burst = "3 + round random 5"; //3; + }; + + class AGM_Burst_far: fullauto_medium { + aiRateOfFire = 2.0; + aiRateOfFireDistance = 400; + minRange = 300; + minRangeProbab = 0.1; + midRange = 400; + midRangeProbab = 0.2; + maxRange = 500; + maxRangeProbab = 0.2; + burst = "2 + round random 3"; + }; + + class single_medium_optics1: single_medium_optics1 { + minRange = 120; // 2; + maxRange = 600; // 500; + }; + + class single_medium_optics2: single_medium_optics1 { + aiRateOfFireDistance = 800; // 700; + minRange = 200; // 100; + maxRange = 800; // 700; + }; + }; + + // F2002 + class mk20_base_F: Rifle_Base_F { + aiDispersionCoefY = 18.0; + aiDispersionCoefX = 12.0; + modes[] += {"AGM_Burst_far"}; + + class Single: Mode_SemiAuto { + minRange = 120; // 2; + minRangeProbab = 0.7; // 0.5; + midRange = 250; // 150; + midRangeProbab = 0.5; // 0.7; + }; + + class FullAuto: Mode_FullAuto { + minRange = 0; //2; + }; + + class fullauto_medium: FullAuto { + minRange = 20; // 2; + maxRange = 150; // 100; + burst = "3 + round random 5"; // 3; + }; + + class AGM_Burst_far: fullauto_medium { + aiRateOfFire = 2.0; + aiRateOfFireDistance = 500; + minRange = 400; + minRangeProbab = 0.1; + midRange = 500; + midRangeProbab = 0.2; + maxRange = 600; + maxRangeProbab = 0.2; + burst = "2 + round random 3"; + }; + + class single_medium_optics1: Single { + aiRateOfFireDistance = 600; // 500; + minRange = 120; // 5; + maxRange = 600; // 500; + }; + + class single_far_optics2: single_medium_optics1 { + aiRateOfFireDistance = 800; // 700; + minRange = 200; // 100; + maxRange = 800; // 700; + }; + }; + + // F2002 carbine + class arifle_Mk20C_F: mk20_base_F { + aiDispersionCoefY = 18.0; + aiDispersionCoefX = 12.0; + + class Single: Single { + minRange = 120; // 2; + minRangeProbab = 0.7; // 0.5; + midRange = 250; // 150; + midRangeProbab = 0.5; // 0.7; + maxRange = 350; // 250; + }; + + class FullAuto: FullAuto { + minRange = 0; //2; + }; + + class single_medium_optics1: single_medium_optics1 { + aiRateOfFireDistance = 600; // 500; + minRange = 120; // 5; + maxRange = 550; // 450; + }; + + //class single_medium_optics2: single_medium_optics1 {}; + class fullauto_medium: fullauto_medium { + minRange = 20; //2; + burst = "3 + round random 5"; //3; + }; + + class AGM_Burst_far: fullauto_medium { + aiRateOfFire = 2.0; + aiRateOfFireDistance = 400; + minRange = 300; + minRangeProbab = 0.1; + midRange = 400; + midRangeProbab = 0.2; + maxRange = 500; + maxRangeProbab = 0.2; + burst = "2 + round random 3"; + }; + }; + + // TAR-20 + class Tavor_base_F: Rifle_Base_F { + aiDispersionCoefY = 18.0; + aiDispersionCoefX = 12.0; + modes[] += {"AGM_Burst_far"}; + + class Single: Mode_SemiAuto { + minRange = 120; //2; + minRangeProbab = 0.7; //0.5; + midRange = 250; //150; + midRangeProbab = 0.5; //0.7; + maxRange = 350; //250; + }; + + class FullAuto: Mode_FullAuto { + minRange = 0; //2; + }; + + class fullauto_medium: FullAuto { + minRange = 20; // 2; + maxRange = 150; // 100; + burst = "3 + round random 5"; // 3; + }; + + class AGM_Burst_far: fullauto_medium { + aiRateOfFire = 2.0; + aiRateOfFireDistance = 400; + minRange = 300; + minRangeProbab = 0.1; + midRange = 400; + midRangeProbab = 0.2; + maxRange = 500; + maxRangeProbab = 0.2; + burst = "2 + round random 3"; + }; + + class single_medium_optics1: Single { + aiRateOfFireDistance = 600; // 500; + minRange = 120; // 5; + maxRange = 550; // 450; + }; + + class single_medium_optics2: single_medium_optics1 { + aiRateOfFireDistance = 700; // 600; + minRange = 200; // 100; + maxRange = 700; // 600; + }; + }; + + // TAR-21 + class arifle_TRG21_F: Tavor_base_F { + aiDispersionCoefY = 18.0; + aiDispersionCoefX = 12.0; + + class Single: Single { + minRange = 120; // 2; + minRangeProbab = 0.7; // 0.3; + midRange = 300; // 200; + midRangeProbab = 0.5; // 0.7; + maxRange = 400; // 300; + }; + + class FullAuto: FullAuto { + minRange = 0; //2; + }; + + class fullauto_medium: fullauto_medium { + minRange = 20; // 2; + maxRange = 150; // 100; + burst = "3 + round random 5"; // 3; + }; + + class AGM_Burst_far: fullauto_medium { + aiRateOfFire = 2.0; + aiRateOfFireDistance = 400; + minRange = 300; + minRangeProbab = 0.1; + midRange = 400; + midRangeProbab = 0.2; + maxRange = 500; + maxRangeProbab = 0.2; + burst = "2 + round random 3"; + }; + + class single_medium_optics1: single_medium_optics1 { + aiRateOfFireDistance = 700; // 600; + minRange = 120; // 2; + maxRange = 600; // 500; + }; + + class single_medium_optics2: single_medium_optics1 { + aiRateOfFireDistance = 800; // 700; + minRange = 200; // 100; + maxRange = 800; // 700; + }; + }; + + // sub machine guns + + // SDAR + class SDAR_base_F: Rifle_Base_F { + aiDispersionCoefY = 28.0; + aiDispersionCoefX = 20.0; + + class Single: Mode_SemiAuto { + minRange = 10; //2; + }; + + class Burst: Mode_Burst { + minRange = 5; //1; + }; + }; + + // PD2000 + class pdw2000_base_F: Rifle_Base_F { + aiDispersionCoefY = 18.0; + aiDispersionCoefX = 12.0; + + class Single: Mode_SemiAuto { + minRange = 100; //2; + }; + + class Burst: Mode_Burst { + minRange = 50; //1; + }; + }; + + // Vector + class SMG_01_Base: Rifle_Base_F { + aiDispersionCoefY = 18.0; + aiDispersionCoefX = 12.0; + + class Single: Mode_SemiAuto { + minRange = 50; //2; + }; + + class Burst: Mode_Burst { + minRange = 25; //2; + }; + }; + + // Scorpion EVO + class SMG_02_base_F: Rifle_Base_F { + aiDispersionCoefY = 18.0; + aiDispersionCoefX = 12.0; + + class Single: Mode_SemiAuto { + minRange = 50; //2; + }; + + class Burst: Mode_Burst { + minRange = 25; //2; + }; + }; + + // machine guns + + // Stoner + class LMG_Mk200_F: Rifle_Long_Base_F { + aiDispersionCoefY = 24.0; + aiDispersionCoefX = 21.0; + modes[] += {"AGM_Burst_far"}; + + class medium; + class AGM_Burst_far: medium { + aiRateOfFire = 6.0; + aiRateOfFireDistance = 900; + minRange = 500; + minRangeProbab = 0.1; + midRange = 700; + midRangeProbab = 0.2; + maxRange = 900; + maxRangeProbab = 0.2; + burst = "3 + round random 5"; + }; + + class far_optic1: medium { + maxRange = 750; // 650; + }; + + class far_optic2: far_optic1 { + maxRange = 1100; // 900; + aiRateOfFireDistance = 1100;// 900; + }; + }; + + // Negev + class LMG_Zafir_F: Rifle_Long_Base_F { + aiDispersionCoefY = 23.0; + aiDispersionCoefX = 19.0; + modes[] += {"AGM_Burst_far"}; + + class Single: Mode_SemiAuto { + minRange = 120; // 2; + }; + + class close; + class medium; + class AGM_Burst_far: medium { + aiRateOfFire = 6.0; + aiRateOfFireDistance = 900; + minRange = 500; + minRangeProbab = 0.1; + midRange = 700; + midRangeProbab = 0.2; + maxRange = 900; + maxRangeProbab = 0.2; + burst = "3 + round random 5"; + }; + + class far_optic1: close { + maxRange = 800; //700; + }; + + class far_optic2: far_optic1 { + maxRange = 1200; //1000; + }; + }; +}; diff --git a/addons/ai/config.cpp b/addons/ai/config.cpp index c96dbe48b8..fdcb6afe9d 100644 --- a/addons/ai/config.cpp +++ b/addons/ai/config.cpp @@ -1,617 +1,16 @@ #include "script_component.hpp" class CfgPatches { - class ADDON { - units[] = {}; - weapons[] = {}; - requiredVersion = 0.60; - requiredAddons[] = {"ace_main","ace_common"}; - version = "0.95"; - versionStr = "0.95"; - versionAr[] = {0,95,0}; - author[] = {"KoffeinFlummi", "commy2"}; - authorUrl = "https://github.com/KoffeinFlummi/"; - }; + class ADDON { + units[] = {}; + weapons[] = {}; + requiredVersion = REQUIRED_VERSION; + requiredAddons[] = {"ace_common"}; + author[] = {"KoffeinFlummi","commy2"}; + authorUrl = "https://github.com/KoffeinFlummi/"; + VERSION_CONFIG; + }; }; -/* - * Documentation: - * https://community.bistudio.com/wiki/AI_Sub-skills - * - * The idea here is to reduce the AI's godlike aiming - * capabilties while retaining it's high intelligence. - * The AI should be smart enough to move through a town, - * but also be 'human' in their reaction time and aim. - * - * Note: All these values can still be adjusted via - * scripts, these arrays just change what 0 & 1 - * are for setSkill. - */ - -class CfgAISkill { - aimingAccuracy[] = {0,0, 1,0.8}; // {0,0,1,1}; v1.26 defaults - aimingShake[] = {0,0, 1,0.6}; // {0,0,1,1}; - aimingSpeed[] = {0,0, 1,0.7}; // {0,0.5,1,1}; - commanding[] = {0,0, 1,0.8}; // {0,0,1,1}; - courage[] = {0,0, 1,0.7}; // {0,0,1,1}; - endurance[] = {0,0, 1,0.7}; // {0,0,1,1}; - general[] = {0,0, 1,0.9}; // {0,0,1,1}; - reloadSpeed[] = {0,0, 1,0.8}; // {0,0,1,1}; - spotDistance[] = {0,0, 1,0.9}; // {0,0.2,1,0.4}; - spotTime[] = {0,0, 1,0.7}; // {0,0,1,0.7}; -}; - -// weapon config changes, by commy2 - -/* documentation: -aiDispersionCoefX = 1.0 Dispersion multiplier for AI units (axis X - left to right). -aiDispersionCoefY = 1.0 Dispersion multiplier for AI units (axis Y - top-down). -aiRateOfFire = 5.0 Delay between shots at given aiRateOfFireDistance. -aiRateOfFireDistance = 500 At shorter distance delay (aiRateOfFire) goes linearly to zero. -*/ - -class Mode_SemiAuto; -class Mode_Burst; -class Mode_FullAuto; - -class CfgWeapons { - - // rifles - class RifleCore; - class Rifle: RifleCore { - aiDispersionCoefX = 6; - aiDispersionCoefY = 6; - }; - - class Rifle_Base_F: Rifle {}; - class Rifle_Long_Base_F: Rifle_Base_F {}; - - // MX - class arifle_MX_Base_F: Rifle_Base_F { - aiDispersionCoefY = 18.0; - aiDispersionCoefX = 12.0; - modes[] += {"AGM_Burst_far"}; - - class Single: Mode_SemiAuto { - minRange = 120; // 2; - minRangeProbab = 0.7; // 0.5; - midRange = 300; // 200; - midRangeProbab = 0.5; // 0.7; - }; - - class FullAuto; - class fullauto_medium: FullAuto { - minRange = 20; // 2; - burst = "3 + round random 5"; //3; - }; - - class AGM_Burst_far: fullauto_medium { - aiRateOfFire = 2.0; - aiRateOfFireDistance = 500; - minRange = 400; - minRangeProbab = 0.1; - midRange = 500; - midRangeProbab = 0.2; - maxRange = 600; - maxRangeProbab = 0.2; - burst = "2 + round random 3"; - }; - - class single_medium_optics1: Single { - aiRateOfFireDistance = 700; // 600; - minRange = 120; // 2; - maxRange = 700; // 600; - }; - - class single_far_optics2: single_medium_optics1 { - aiRateOfFireDistance = 900; // 700; - minRange = 200; // 100; - maxRange = 900; // 700; - }; - }; - - // MX carbine - class arifle_MXC_F: arifle_MX_Base_F { - aiDispersionCoefY = 18.0; - aiDispersionCoefX = 12.0; - - class Single: Single { - minRange = 120; // 2; - minRangeProbab = 0.5; // 0.3; - midRange = 250; // 150; - midRangeProbab = 0.3; // 0.5; - }; - - class FullAuto; - class fullauto_medium: fullauto_medium { - minRange = 20; // 2; - burst = "3 + round random 5"; //3; - }; - - class AGM_Burst_far: fullauto_medium { - aiRateOfFire = 2.0; - aiRateOfFireDistance = 400; - minRange = 300; - minRangeProbab = 0.1; - midRange = 400; - midRangeProbab = 0.2; - maxRange = 500; - maxRangeProbab = 0.2; - burst = "2 + round random 3"; - }; - - class single_medium_optics1: single_medium_optics1 { - aiRateOfFireDistance = 600; // 500; - minRange = 120; // 2; - maxRange = 600; // 500; - }; - - class single_far_optics2: single_medium_optics1 { - aiRateOfFireDistance = 800; // 700; - minRange = 200; // 100; - maxRange = 800; // 700; - }; - }; - - //class arifle_MX_F: arifle_MX_Base_F {}; - //class arifle_MX_GL_F: arifle_MX_Base_F {}; - - // MX machine gun - class arifle_MXM_F: arifle_MX_Base_F { - class Single: Single { - minRange = 120; // 2; - minRangeProbab = 0.7; // 0.5; - midRange = 350; // 250; - midRangeProbab = 0.5; // 0.7; - }; - - class fullauto_medium: fullauto_medium { - minRange = 20; // 2; - burst = "3 + round random 5"; //3; - }; - - class single_medium_optics1: single_medium_optics1 { - aiRateOfFireDistance = 700; // 600; - minRange = 120; // 2; - maxRange = 750; // 650; - }; - - class single_far_optics2: single_far_optics2 { - aiRateOfFireDistance = 900; // 800; - minRange = 200; // 100; - maxRange = 900; // 800; - }; - }; - - // MX sniper rifle - class arifle_MX_SW_F: arifle_MX_Base_F { - aiDispersionCoefY = 24.0; - aiDispersionCoefX = 21.0; - modes[] += {"AGM_Burst_far"}; - - class Single: Mode_SemiAuto { - minRange = 120; // 2; - }; - - class close; - class medium; - class AGM_Burst_far: medium { - aiRateOfFire = 6.0; - aiRateOfFireDistance = 900; - minRange = 500; - minRangeProbab = 0.1; - midRange = 700; - midRangeProbab = 0.2; - maxRange = 900; - maxRangeProbab = 0.2; - burst = "3 + round random 5"; - }; - - class far_optic1: close { - aiRateOfFireDistance = 750; // 650; - maxRange = 750; // 650; - }; - - class far_optic2: far_optic1 { - maxRange = 1100; // 900; - aiRateOfFireDistance = 1100;// 900; - }; - }; - - // Katiba - class arifle_Katiba_Base_F: Rifle_Base_F { - aiDispersionCoefY = 18.0; - aiDispersionCoefX = 12.0; - modes[] += {"AGM_Burst_far"}; - - class Single: Mode_SemiAuto { - minRange = 120; // 2; - minRangeProbab = 0.7; // 0.5; - midRange = 300; // 200; - midRangeProbab = 0.5; // 0.7; - }; - - class FullAuto; - class fullauto_medium: FullAuto { - minRange = 20; // 2; - burst = "3 + round random 5"; //3; - }; - - class AGM_Burst_far: fullauto_medium { - aiRateOfFire = 2.0; - aiRateOfFireDistance = 500; - minRange = 400; - minRangeProbab = 0.1; - midRange = 500; - midRangeProbab = 0.2; - maxRange = 600; - maxRangeProbab = 0.2; - burst = "2 + round random 3"; - }; - - class single_medium_optics1: Single { - aiRateOfFireDistance = 700; // 600; - minRange = 120; // 2; - maxRange = 700; // 600; - }; - - class single_far_optics2: single_medium_optics1 { - aiRateOfFireDistance = 900; // 800; - minRange = 200; // 100; - maxRange = 900; // 800; - }; - }; - - // Katiba carbine - class arifle_Katiba_C_F: arifle_Katiba_Base_F { - aiDispersionCoefY = 18.0; - aiDispersionCoefX = 12.0; - - class Single: Single { - minRange = 120; // 2; - minRangeProbab = 0.5; // 0.3; - midRange = 250; // 150; - midRangeProbab = 0.3; // 0.7; - }; - - //class FullAuto: FullAuto {}; - - class fullauto_medium: fullauto_medium { - minRange = 20; // 2; - maxRange = 150; //100; - burst = "3 + round random 5"; //3; - }; - - class AGM_Burst_far: fullauto_medium { - aiRateOfFire = 2.0; - aiRateOfFireDistance = 400; - minRange = 300; - minRangeProbab = 0.1; - midRange = 400; - midRangeProbab = 0.2; - maxRange = 500; - maxRangeProbab = 0.2; - burst = "2 + round random 3"; - }; - - class single_medium_optics1: single_medium_optics1 { - minRange = 120; // 2; - maxRange = 600; // 500; - }; - - class single_medium_optics2: single_medium_optics1 { - aiRateOfFireDistance = 800; // 700; - minRange = 200; // 100; - maxRange = 800; // 700; - }; - }; - - // F2002 - class mk20_base_F: Rifle_Base_F { - aiDispersionCoefY = 18.0; - aiDispersionCoefX = 12.0; - modes[] += {"AGM_Burst_far"}; - - class Single: Mode_SemiAuto { - minRange = 120; // 2; - minRangeProbab = 0.7; // 0.5; - midRange = 250; // 150; - midRangeProbab = 0.5; // 0.7; - }; - - class FullAuto: Mode_FullAuto { - minRange = 0; //2; - }; - - class fullauto_medium: FullAuto { - minRange = 20; // 2; - maxRange = 150; // 100; - burst = "3 + round random 5"; // 3; - }; - - class AGM_Burst_far: fullauto_medium { - aiRateOfFire = 2.0; - aiRateOfFireDistance = 500; - minRange = 400; - minRangeProbab = 0.1; - midRange = 500; - midRangeProbab = 0.2; - maxRange = 600; - maxRangeProbab = 0.2; - burst = "2 + round random 3"; - }; - - class single_medium_optics1: Single { - aiRateOfFireDistance = 600; // 500; - minRange = 120; // 5; - maxRange = 600; // 500; - }; - - class single_far_optics2: single_medium_optics1 { - aiRateOfFireDistance = 800; // 700; - minRange = 200; // 100; - maxRange = 800; // 700; - }; - }; - - // F2002 carbine - class arifle_Mk20C_F: mk20_base_F { - aiDispersionCoefY = 18.0; - aiDispersionCoefX = 12.0; - - class Single: Single { - minRange = 120; // 2; - minRangeProbab = 0.7; // 0.5; - midRange = 250; // 150; - midRangeProbab = 0.5; // 0.7; - maxRange = 350; // 250; - }; - - class FullAuto: FullAuto { - minRange = 0; //2; - }; - - class single_medium_optics1: single_medium_optics1 { - aiRateOfFireDistance = 600; // 500; - minRange = 120; // 5; - maxRange = 550; // 450; - }; - - //class single_medium_optics2: single_medium_optics1 {}; - class fullauto_medium: fullauto_medium { - minRange = 20; //2; - burst = "3 + round random 5"; //3; - }; - - class AGM_Burst_far: fullauto_medium { - aiRateOfFire = 2.0; - aiRateOfFireDistance = 400; - minRange = 300; - minRangeProbab = 0.1; - midRange = 400; - midRangeProbab = 0.2; - maxRange = 500; - maxRangeProbab = 0.2; - burst = "2 + round random 3"; - }; - }; - - // TAR-20 - class Tavor_base_F: Rifle_Base_F { - aiDispersionCoefY = 18.0; - aiDispersionCoefX = 12.0; - modes[] += {"AGM_Burst_far"}; - - class Single: Mode_SemiAuto { - minRange = 120; //2; - minRangeProbab = 0.7; //0.5; - midRange = 250; //150; - midRangeProbab = 0.5; //0.7; - maxRange = 350; //250; - }; - - class FullAuto: Mode_FullAuto { - minRange = 0; //2; - }; - - class fullauto_medium: FullAuto { - minRange = 20; // 2; - maxRange = 150; // 100; - burst = "3 + round random 5"; // 3; - }; - - class AGM_Burst_far: fullauto_medium { - aiRateOfFire = 2.0; - aiRateOfFireDistance = 400; - minRange = 300; - minRangeProbab = 0.1; - midRange = 400; - midRangeProbab = 0.2; - maxRange = 500; - maxRangeProbab = 0.2; - burst = "2 + round random 3"; - }; - - class single_medium_optics1: Single { - aiRateOfFireDistance = 600; // 500; - minRange = 120; // 5; - maxRange = 550; // 450; - }; - - class single_medium_optics2: single_medium_optics1 { - aiRateOfFireDistance = 700; // 600; - minRange = 200; // 100; - maxRange = 700; // 600; - }; - }; - - // TAR-21 - class arifle_TRG21_F: Tavor_base_F { - aiDispersionCoefY = 18.0; - aiDispersionCoefX = 12.0; - - class Single: Single { - minRange = 120; // 2; - minRangeProbab = 0.7; // 0.3; - midRange = 300; // 200; - midRangeProbab = 0.5; // 0.7; - maxRange = 400; // 300; - }; - - class FullAuto: FullAuto { - minRange = 0; //2; - }; - - class fullauto_medium: fullauto_medium { - minRange = 20; // 2; - maxRange = 150; // 100; - burst = "3 + round random 5"; // 3; - }; - - class AGM_Burst_far: fullauto_medium { - aiRateOfFire = 2.0; - aiRateOfFireDistance = 400; - minRange = 300; - minRangeProbab = 0.1; - midRange = 400; - midRangeProbab = 0.2; - maxRange = 500; - maxRangeProbab = 0.2; - burst = "2 + round random 3"; - }; - - class single_medium_optics1: single_medium_optics1 { - aiRateOfFireDistance = 700; // 600; - minRange = 120; // 2; - maxRange = 600; // 500; - }; - - class single_medium_optics2: single_medium_optics1 { - aiRateOfFireDistance = 800; // 700; - minRange = 200; // 100; - maxRange = 800; // 700; - }; - }; - - // sub machine guns - - // SDAR - class SDAR_base_F: Rifle_Base_F { - aiDispersionCoefY = 28.0; - aiDispersionCoefX = 20.0; - - class Single: Mode_SemiAuto { - minRange = 10; //2; - }; - - class Burst: Mode_Burst { - minRange = 5; //1; - }; - }; - - // PD2000 - class pdw2000_base_F: Rifle_Base_F { - aiDispersionCoefY = 18.0; - aiDispersionCoefX = 12.0; - - class Single: Mode_SemiAuto { - minRange = 100; //2; - }; - - class Burst: Mode_Burst { - minRange = 50; //1; - }; - }; - - // Vector - class SMG_01_Base: Rifle_Base_F { - aiDispersionCoefY = 18.0; - aiDispersionCoefX = 12.0; - - class Single: Mode_SemiAuto { - minRange = 50; //2; - }; - - class Burst: Mode_Burst { - minRange = 25; //2; - }; - }; - - // Scorpion EVO - class SMG_02_base_F: Rifle_Base_F { - aiDispersionCoefY = 18.0; - aiDispersionCoefX = 12.0; - - class Single: Mode_SemiAuto { - minRange = 50; //2; - }; - - class Burst: Mode_Burst { - minRange = 25; //2; - }; - }; - - // machine guns - - // Stoner - class LMG_Mk200_F: Rifle_Long_Base_F { - aiDispersionCoefY = 24.0; - aiDispersionCoefX = 21.0; - modes[] += {"AGM_Burst_far"}; - - class medium; - class AGM_Burst_far: medium { - aiRateOfFire = 6.0; - aiRateOfFireDistance = 900; - minRange = 500; - minRangeProbab = 0.1; - midRange = 700; - midRangeProbab = 0.2; - maxRange = 900; - maxRangeProbab = 0.2; - burst = "3 + round random 5"; - }; - - class far_optic1: medium { - maxRange = 750; // 650; - }; - - class far_optic2: far_optic1 { - maxRange = 1100; // 900; - aiRateOfFireDistance = 1100;// 900; - }; - }; - - // Negev - class LMG_Zafir_F: Rifle_Long_Base_F { - aiDispersionCoefY = 23.0; - aiDispersionCoefX = 19.0; - modes[] += {"AGM_Burst_far"}; - - class Single: Mode_SemiAuto { - minRange = 120; // 2; - }; - - class close; - class medium; - class AGM_Burst_far: medium { - aiRateOfFire = 6.0; - aiRateOfFireDistance = 900; - minRange = 500; - minRangeProbab = 0.1; - midRange = 700; - midRangeProbab = 0.2; - maxRange = 900; - maxRangeProbab = 0.2; - burst = "3 + round random 5"; - }; - - class far_optic1: close { - maxRange = 800; //700; - }; - - class far_optic2: far_optic1 { - maxRange = 1200; //1000; - }; - }; -}; +#include "CfgAISkill.hpp" +#include "CfgWeapons.hpp" diff --git a/addons/ai/script_component.hpp b/addons/ai/script_component.hpp index 46602db75c..7e95e38573 100644 --- a/addons/ai/script_component.hpp +++ b/addons/ai/script_component.hpp @@ -2,11 +2,11 @@ #include "\z\ace\Addons\main\script_mod.hpp" #ifdef DEBUG_ENABLED_AI - #define DEBUG_MODE_FULL + #define DEBUG_MODE_FULL #endif #ifdef DEBUG_ENABLED_AI - #define DEBUG_SETTINGS DEBUG_ENABLED_AI + #define DEBUG_SETTINGS DEBUG_ENABLED_AI #endif #include "\z\ace\Addons\main\script_macros.hpp" \ No newline at end of file