From 1bdb2038ebba27736e0a1e101e8576ac568f677b Mon Sep 17 00:00:00 2001 From: commy2 Date: Sun, 11 Jan 2015 23:01:27 +0100 Subject: [PATCH] port ai --- {TO_MERGE/agm/AI => addons/ai}/config.cpp | 125 ++++++++++++++++++---- addons/ai/script_component.hpp | 12 +++ 2 files changed, 119 insertions(+), 18 deletions(-) rename {TO_MERGE/agm/AI => addons/ai}/config.cpp (94%) create mode 100644 addons/ai/script_component.hpp diff --git a/TO_MERGE/agm/AI/config.cpp b/addons/ai/config.cpp similarity index 94% rename from TO_MERGE/agm/AI/config.cpp rename to addons/ai/config.cpp index bd2e7b922e..5e1264d418 100644 --- a/TO_MERGE/agm/AI/config.cpp +++ b/addons/ai/config.cpp @@ -1,5 +1,7 @@ +#include "script_component.hpp" + class CfgPatches { - class AGM_AI { + class ADDON { units[] = {}; weapons[] = {}; requiredVersion = 0.60; @@ -60,24 +62,29 @@ class CfgWeapons { 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[] = {"Single","FullAuto","fullauto_medium","single_medium_optics1","single_far_optics2","AGM_Burst_far"}; + 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; @@ -89,11 +96,13 @@ class CfgWeapons { 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; @@ -101,20 +110,24 @@ class CfgWeapons { }; }; + // 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; @@ -126,11 +139,13 @@ class CfgWeapons { 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; @@ -141,6 +156,7 @@ class CfgWeapons { //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; @@ -148,15 +164,18 @@ class CfgWeapons { 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; @@ -164,13 +183,16 @@ class CfgWeapons { }; }; + // MX sniper rifle class arifle_MX_SW_F: arifle_MX_Base_F { aiDispersionCoefY = 24.0; aiDispersionCoefX = 21.0; - modes[] = {"Single","manual","close","short","medium","far_optic1","far_optic2","AGM_Burst_far"}; + modes[] += {"AGM_Burst_far"}; + class Single: Mode_SemiAuto { minRange = 120; // 2; }; + class close; class medium; class AGM_Burst_far: medium { @@ -184,31 +206,37 @@ class CfgWeapons { 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[] = {"Single","FullAuto","single_medium_optics1","single_far_optics2","fullauto_medium","AGM_Burst_far"}; + 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; @@ -220,32 +248,40 @@ class CfgWeapons { 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; @@ -257,10 +293,12 @@ class CfgWeapons { 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; @@ -268,24 +306,29 @@ class CfgWeapons { }; }; + // F2002 class mk20_base_F: Rifle_Base_F { aiDispersionCoefY = 18.0; aiDispersionCoefX = 12.0; - modes[] = {"Single","FullAuto","fullauto_medium","single_medium_optics1","single_far_optics2","AGM_Burst_far"}; + 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; @@ -297,20 +340,25 @@ class CfgWeapons { 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; @@ -318,19 +366,23 @@ class CfgWeapons { 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; @@ -344,11 +396,12 @@ class CfgWeapons { }; }; + // TAR-20 class Tavor_base_F: Rifle_Base_F { aiDispersionCoefY = 18.0; aiDispersionCoefX = 12.0; + modes[] += {"AGM_Burst_far"}; - modes[] = {"Single","FullAuto","single_medium_optics1","single_medium_optics2","fullauto_medium","AGM_Burst_far"}; class Single: Mode_SemiAuto { minRange = 120; //2; minRangeProbab = 0.7; //0.5; @@ -356,14 +409,17 @@ class CfgWeapons { 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; @@ -375,20 +431,25 @@ class CfgWeapons { 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; @@ -396,24 +457,17 @@ class CfgWeapons { 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 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; - }; + class AGM_Burst_far: fullauto_medium { aiRateOfFire = 2.0; aiRateOfFireDistance = 400; @@ -425,58 +479,86 @@ class CfgWeapons { 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[] = {"manual","close","short","medium","far_optic1","far_optic2","AGM_Burst_far"}; + modes[] += {"AGM_Burst_far"}; + class medium; class AGM_Burst_far: medium { aiRateOfFire = 6.0; @@ -489,22 +571,27 @@ class CfgWeapons { 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[] = {"Single","FullAuto","close","short","medium","far_optic1","far_optic2","AGM_Burst_far"}; + modes[] += {"AGM_Burst_far"}; + class Single: Mode_SemiAuto { minRange = 120; // 2; }; + class close; class medium; class AGM_Burst_far: medium { @@ -518,9 +605,11 @@ class CfgWeapons { 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/script_component.hpp b/addons/ai/script_component.hpp new file mode 100644 index 0000000000..46602db75c --- /dev/null +++ b/addons/ai/script_component.hpp @@ -0,0 +1,12 @@ +#define COMPONENT ai +#include "\z\ace\Addons\main\script_mod.hpp" + +#ifdef DEBUG_ENABLED_AI + #define DEBUG_MODE_FULL +#endif + +#ifdef DEBUG_ENABLED_AI + #define DEBUG_SETTINGS DEBUG_ENABLED_AI +#endif + +#include "\z\ace\Addons\main\script_macros.hpp" \ No newline at end of file