Jump to content
silola

DAC V3.1 (Dynamic-AI-Creator) released

Recommended Posts

when i disable a zone, the AI gets despawned (enemy) but if its a civil zone, they just stay. Also if i have a lot of zones, this status display on the right will go so much down, that i cannot read what its doing anymore. Is there a possibility to remove all the "|"?

Share this post


Link to post
Share on other sites

Edit2:

I figured out one problem... An extra bracket or comma where they don't belong.

I also still get the error DAC_config_behavior > No valid config number. As well as the error undefined variable in expression: _waittime

 

 

Spoiler

 

Edit:
So, I think I found out how to use custom npcs with custom weapons (through the dac folder and dac_extern)

But I can't test it because I keep getting the errors:


DAC_config_behavior > No valid config number


and


file DAC_Source\scripts\DAC_group_Soldier.sqf, line 105

if((count |#|_TempUnits < 3) && (count _this < 15)) t...
error undefined variable in expressions: _TempUnit

 

The code for the weapons is: (fixed)

Spoiler

 



//////////////////////////////
//    Dynamic-AI-Creator    //
//    Version 3.1b - 2014   //
//--------------------------//
//    DAC_Config_Weapons    //
//--------------------------//
//    Script by Silola      //
//    silola@freenet.de     //
//////////////////////////////

private ["_TypNumber","_TempArray","_Weapon_Pool","_Magazine_Pool"];

_TypNumber = _this select 0;_TempArray = [];

switch (_TypNumber) do
{
//-------------------------------------------------------------------------------------------------
  case 1:
  {
    _Weapon_Pool  = ["CUP_Weapon_arifle_AK47"];
    _Magazine_Pool  = ["CUP_30Rnd_762x39_AK47_M",6];
  };
//-------------------------------------------------------------------------------------------------
  case 2:
  {
    _Weapon_Pool  = ["CUP_Weapon_arifle_AK47"];
    _Magazine_Pool  = ["CUP_30Rnd_762x39_AK47_M",6];
  };
//-------------------------------------------------------------------------------------------------
  case 3:
  {
    _Weapon_Pool  = ["CUP_Weapon_arifle_AK47"];
    _Magazine_Pool  = ["CUP_30Rnd_762x39_AK47_M",6];
  };
//-------------------------------------------------------------------------------------------------
  case 4:
  {
    _Weapon_Pool  = ["CUP_Weapon_arifle_AK47"];
    _Magazine_Pool  = ["CUP_30Rnd_762x39_AK47_M",6];
  };
//-------------------------------------------------------------------------------------------------
  case 5:
  {
    _Weapon_Pool  = ["CUP_Weapon_arifle_AK47"];
    _Magazine_Pool  = ["CUP_30Rnd_762x39_AK47_M",6];
  };
//-------------------------------------------------------------------------------------------------
  case 6:
  {
    _Weapon_Pool  = ["CUP_Weapon_arifle_AK47"];
    _Magazine_Pool  = ["CUP_30Rnd_762x39_AK47_M",6];
  };
//-------------------------------------------------------------------------------------------------
Default
{
  if(DAC_Basic_Value != 5) then
  {
    DAC_Basic_Value = 5;publicvariable "DAC_Basic_Value";
    hintc "Error: DAC_Config_Weapons > No valid config number";
  };
  if(true) exitwith {};
  };
};

_TempArray = [_Weapon_Pool] + [_Magazine_Pool];
_TempArray

 


and the code for the units is (fixed)
 

Spoiler


//////////////////////////////
//    Dynamic-AI-Creator    //
//    Version 2.1 - 2009    //
//--------------------------//
//    DAC_Config_Units      //
//--------------------------//
//    Script by Silola      //
//    silola@freenet.de     //
//////////////////////////////

private ["_TypNumber","_TempArray","_Unit_Pool_S","_Unit_Pool_V","_Unit_Pool_T","_Unit_Pool_A"];
_TypNumber = _this select 0;_TempArray = [];

switch (_TypNumber) do
{
//-------------------------------------------------------------------------------------------------
// REDFOR (A3)
  case 0:
  {
    _Unit_Pool_S = ["O_mas_med_Insuhd_AR_F","O_mas_med_Rebelhd8_F","O_mas_med_Rebelhd1a_F","O_mas_med_Rebelhd2_F"];
    _Unit_Pool_V = ["O_MRAP_02_F","O_MRAP_02_gmg_F","O_MRAP_02_hmg_F"];
    _Unit_Pool_T = ["O_MBT_02_arty_F","O_APC_Tracked_02_cannon_F","O_APC_Wheeled_02_rcws_F","O_MBT_02_cannon_F","O_APC_Tracked_02_AA_F"];
	_Unit_Pool_A = ["O_Heli_Attack_02_F","O_Heli_Light_02_F","O_Heli_Light_02_armed_F"];
  };
//-------------------------------------------------------------------------------------------------
// BLUFOR (A3)
  case 1:
  {
    _Unit_Pool_S = ["B_crew_F","B_Helipilot_F","B_Soldier_SL_F","B_soldier_AR_F","B_soldier_AR_F","B_soldier_exp_F","B_soldier_GL_F","B_soldier_GL_F","B_soldier_AA_F","B_soldier_M_F","B_medic_F","B_soldier_repair_F","B_Soldier_F","B_Soldier_F","B_soldier_LAT_F","B_soldier_LAT_F","B_soldier_lite_F","B_soldier_TL_F","B_soldier_TL_F"];
    _Unit_Pool_V = ["B_MRAP_01_F","B_MRAP_01_gmg_F","B_MRAP_01_hmg_F"];
    _Unit_Pool_T = ["B_APC_Wheeled_01_cannon_F","B_APC_Tracked_01_AA_F","B_APC_Tracked_01_rcws_F","B_MBT_01_cannon_F","B_MBT_01_arty_F","B_MBT_01_mlrs_F"];
    _Unit_Pool_A = ["B_Heli_Light_01_armed_F","B_Heli_Transport_01_camo_F","B_Heli_Light_01_F"];
  };
//-------------------------------------------------------------------------------------------------
// Independent (A3)
  case 2:
  {
    _Unit_Pool_S = ["I_crew_F","I_helipilot_F","I_officer_F","I_Soldier_AT_F","I_Soldier_AA_F","I_Soldier_M_F","I_Soldier_GL_F","I_Soldier_exp_F","I_engineer_F","I_medic_F","I_Soldier_AR_F","I_Soldier_A_F"];
    _Unit_Pool_V = ["I_Truck_02_covered_F","I_Truck_02_transport_F","I_MRAP_03_hmg_F","I_MRAP_03_gmg_F","I_MRAP_03_F"];
    _Unit_Pool_T = ["I_MBT_03_cannon_F","I_APC_tracked_03_cannon_F"];
    _Unit_Pool_A = ["I_Heli_light_03_F"];
  };
//-------------------------------------------------------------------------------------------------
// Civilians (A3)
  case 3:
  {
    _Unit_Pool_S = ["C_mas_med_Civil_1_1_F","C_mas_med_Civil_1_2_F","C_mas_med_Civil_1_3_F","C_mas_med_Civil_1_4_F","C_mas_med_Civil_1_5_F","C_mas_med_Civil_1_6_F","C_mas_med_Civil_1_7_F","C_mas_med_Civil_1_8_F"];
    _Unit_Pool_V = ["C_Van_01_box_F","C_Van_01_transport_F","C_Offroad_01_F","C_Hatchback_01_sport_F","C_Hatchback_01_F"];
    _Unit_Pool_T = ["C_Van_01_box_F","C_Van_01_transport_F","C_Offroad_01_F","C_Hatchback_01_sport_F","C_Hatchback_01_F"];
    _Unit_Pool_A = [];
  };
//-------------------------------------------------------------------------------------------------
  Default
  {
    if(DAC_Basic_Value != 5) then
    {
      DAC_Basic_Value = 5;publicvariable "DAC_Basic_Value",
      hintc "Error: DAC_Config_Units > No valid config number";
    };
    if(true) exitwith {};
  };
};

if(count _this == 2) then
{
  _TempArray = _TempArray + [_Unit_Pool_S,_Unit_Pool_V,_Unit_Pool_T,_Unit_Pool_A];
}
else
{
  _TempArray = _Unit_Pool_V + _Unit_Pool_T + _Unit_Pool_A;
};
_TempArray

 

 

 

 


Also, if it's easier, here's a dropbox link to my mission.
You'll need the Fallujha map, RHSUSF, MELB, Middle East Warfare (and it's required addons), and CUP.

If you do download it, you'll need to place a dac_extern logic


Just merge the save with a new mission, save it, then copy+paste the contents my file into the new one you made
I tell you to do this because dynasound keeps throwing up an error that doesn't mean anything... (I think)

 

If you download the map, you'll need to copy+paste the code in the spoilers above into their respective files

OP:

Spoiler

How can I make DAC spawn custom npcs? Or npcs with custom loadouts?

I'm trying to make a mission with themed opfor and civvies (from the Middle East Warfare mod).

What I currently have is extremely heavy on the system, what with nearly 200 opfor and civ combined; plus their different waypoints (and 3den enhanced's random patrol waypoints).... I figured it would be better to use this mod, as it spawns and despawns units as necessary.

 

 

2 more things:

How do I make it so DAC won't throw up a bunch of notifications in chat (kinda breaks the immersion to see "blahblah was created")
and

How do I change the distance required for units to be spawned?


PS... I've only just started using this mod, so forgive my noob-ness

 

Share this post


Link to post
Share on other sites
On 2017-02-08 at 4:02 AM, RagingGamer said:

Edit2:

I figured out one problem... An extra bracket or comma where they don't belong.

I also still get the error DAC_config_behavior > No valid config number. As well as the error undefined variable in expression: _waittime

 

 

  Reveal hidden contents

 

Edit:
So, I think I found out how to use custom npcs with custom weapons (through the dac folder and dac_extern)

But I can't test it because I keep getting the errors:



DAC_config_behavior > No valid config number


and



file DAC_Source\scripts\DAC_group_Soldier.sqf, line 105

if((count |#|_TempUnits < 3) && (count _this < 15)) t...
error undefined variable in expressions: _TempUnit

 

The code for the weapons is: (fixed)

  Reveal hidden contents

 




//////////////////////////////
//    Dynamic-AI-Creator    //
//    Version 3.1b - 2014   //
//--------------------------//
//    DAC_Config_Weapons    //
//--------------------------//
//    Script by Silola      //
//    silola@freenet.de     //
//////////////////////////////

private ["_TypNumber","_TempArray","_Weapon_Pool","_Magazine_Pool"];

_TypNumber = _this select 0;_TempArray = [];

switch (_TypNumber) do
{
//-------------------------------------------------------------------------------------------------
  case 1:
  {
    _Weapon_Pool  = ["CUP_Weapon_arifle_AK47"];
    _Magazine_Pool  = ["CUP_30Rnd_762x39_AK47_M",6];
  };
//-------------------------------------------------------------------------------------------------
  case 2:
  {
    _Weapon_Pool  = ["CUP_Weapon_arifle_AK47"];
    _Magazine_Pool  = ["CUP_30Rnd_762x39_AK47_M",6];
  };
//-------------------------------------------------------------------------------------------------
  case 3:
  {
    _Weapon_Pool  = ["CUP_Weapon_arifle_AK47"];
    _Magazine_Pool  = ["CUP_30Rnd_762x39_AK47_M",6];
  };
//-------------------------------------------------------------------------------------------------
  case 4:
  {
    _Weapon_Pool  = ["CUP_Weapon_arifle_AK47"];
    _Magazine_Pool  = ["CUP_30Rnd_762x39_AK47_M",6];
  };
//-------------------------------------------------------------------------------------------------
  case 5:
  {
    _Weapon_Pool  = ["CUP_Weapon_arifle_AK47"];
    _Magazine_Pool  = ["CUP_30Rnd_762x39_AK47_M",6];
  };
//-------------------------------------------------------------------------------------------------
  case 6:
  {
    _Weapon_Pool  = ["CUP_Weapon_arifle_AK47"];
    _Magazine_Pool  = ["CUP_30Rnd_762x39_AK47_M",6];
  };
//-------------------------------------------------------------------------------------------------
Default
{
  if(DAC_Basic_Value != 5) then
  {
    DAC_Basic_Value = 5;publicvariable "DAC_Basic_Value";
    hintc "Error: DAC_Config_Weapons > No valid config number";
  };
  if(true) exitwith {};
  };
};

_TempArray = [_Weapon_Pool] + [_Magazine_Pool];
_TempArray

 


and the code for the units is (fixed)
 

  Reveal hidden contents



//////////////////////////////
//    Dynamic-AI-Creator    //
//    Version 2.1 - 2009    //
//--------------------------//
//    DAC_Config_Units      //
//--------------------------//
//    Script by Silola      //
//    silola@freenet.de     //
//////////////////////////////

private ["_TypNumber","_TempArray","_Unit_Pool_S","_Unit_Pool_V","_Unit_Pool_T","_Unit_Pool_A"];
_TypNumber = _this select 0;_TempArray = [];

switch (_TypNumber) do
{
//-------------------------------------------------------------------------------------------------
// REDFOR (A3)
  case 0:
  {
    _Unit_Pool_S = ["O_mas_med_Insuhd_AR_F","O_mas_med_Rebelhd8_F","O_mas_med_Rebelhd1a_F","O_mas_med_Rebelhd2_F"];
    _Unit_Pool_V = ["O_MRAP_02_F","O_MRAP_02_gmg_F","O_MRAP_02_hmg_F"];
    _Unit_Pool_T = ["O_MBT_02_arty_F","O_APC_Tracked_02_cannon_F","O_APC_Wheeled_02_rcws_F","O_MBT_02_cannon_F","O_APC_Tracked_02_AA_F"];
	_Unit_Pool_A = ["O_Heli_Attack_02_F","O_Heli_Light_02_F","O_Heli_Light_02_armed_F"];
  };
//-------------------------------------------------------------------------------------------------
// BLUFOR (A3)
  case 1:
  {
    _Unit_Pool_S = ["B_crew_F","B_Helipilot_F","B_Soldier_SL_F","B_soldier_AR_F","B_soldier_AR_F","B_soldier_exp_F","B_soldier_GL_F","B_soldier_GL_F","B_soldier_AA_F","B_soldier_M_F","B_medic_F","B_soldier_repair_F","B_Soldier_F","B_Soldier_F","B_soldier_LAT_F","B_soldier_LAT_F","B_soldier_lite_F","B_soldier_TL_F","B_soldier_TL_F"];
    _Unit_Pool_V = ["B_MRAP_01_F","B_MRAP_01_gmg_F","B_MRAP_01_hmg_F"];
    _Unit_Pool_T = ["B_APC_Wheeled_01_cannon_F","B_APC_Tracked_01_AA_F","B_APC_Tracked_01_rcws_F","B_MBT_01_cannon_F","B_MBT_01_arty_F","B_MBT_01_mlrs_F"];
    _Unit_Pool_A = ["B_Heli_Light_01_armed_F","B_Heli_Transport_01_camo_F","B_Heli_Light_01_F"];
  };
//-------------------------------------------------------------------------------------------------
// Independent (A3)
  case 2:
  {
    _Unit_Pool_S = ["I_crew_F","I_helipilot_F","I_officer_F","I_Soldier_AT_F","I_Soldier_AA_F","I_Soldier_M_F","I_Soldier_GL_F","I_Soldier_exp_F","I_engineer_F","I_medic_F","I_Soldier_AR_F","I_Soldier_A_F"];
    _Unit_Pool_V = ["I_Truck_02_covered_F","I_Truck_02_transport_F","I_MRAP_03_hmg_F","I_MRAP_03_gmg_F","I_MRAP_03_F"];
    _Unit_Pool_T = ["I_MBT_03_cannon_F","I_APC_tracked_03_cannon_F"];
    _Unit_Pool_A = ["I_Heli_light_03_F"];
  };
//-------------------------------------------------------------------------------------------------
// Civilians (A3)
  case 3:
  {
    _Unit_Pool_S = ["C_mas_med_Civil_1_1_F","C_mas_med_Civil_1_2_F","C_mas_med_Civil_1_3_F","C_mas_med_Civil_1_4_F","C_mas_med_Civil_1_5_F","C_mas_med_Civil_1_6_F","C_mas_med_Civil_1_7_F","C_mas_med_Civil_1_8_F"];
    _Unit_Pool_V = ["C_Van_01_box_F","C_Van_01_transport_F","C_Offroad_01_F","C_Hatchback_01_sport_F","C_Hatchback_01_F"];
    _Unit_Pool_T = ["C_Van_01_box_F","C_Van_01_transport_F","C_Offroad_01_F","C_Hatchback_01_sport_F","C_Hatchback_01_F"];
    _Unit_Pool_A = [];
  };
//-------------------------------------------------------------------------------------------------
  Default
  {
    if(DAC_Basic_Value != 5) then
    {
      DAC_Basic_Value = 5;publicvariable "DAC_Basic_Value",
      hintc "Error: DAC_Config_Units > No valid config number";
    };
    if(true) exitwith {};
  };
};

if(count _this == 2) then
{
  _TempArray = _TempArray + [_Unit_Pool_S,_Unit_Pool_V,_Unit_Pool_T,_Unit_Pool_A];
}
else
{
  _TempArray = _Unit_Pool_V + _Unit_Pool_T + _Unit_Pool_A;
};
_TempArray

 

 

 

 


Also, if it's easier, here's a dropbox link to my mission.
You'll need the Fallujha map, RHSUSF, MELB, Middle East Warfare (and it's required addons), and CUP.

If you do download it, you'll need to place a dac_extern logic


Just merge the save with a new mission, save it, then copy+paste the contents my file into the new one you made
I tell you to do this because dynasound keeps throwing up an error that doesn't mean anything... (I think)

 

If you download the map, you'll need to copy+paste the code in the spoilers above into their respective files

OP:

  Reveal hidden contents

How can I make DAC spawn custom npcs? Or npcs with custom loadouts?

I'm trying to make a mission with themed opfor and civvies (from the Middle East Warfare mod).

What I currently have is extremely heavy on the system, what with nearly 200 opfor and civ combined; plus their different waypoints (and 3den enhanced's random patrol waypoints).... I figured it would be better to use this mod, as it spawns and despawns units as necessary.

 

 

2 more things:

How do I make it so DAC won't throw up a bunch of notifications in chat (kinda breaks the immersion to see "blahblah was created")
and

How do I change the distance required for units to be spawned?


PS... I've only just started using this mod, so forgive my noob-ness

 

 

Sounds like you've messed up the behaviour config or are passing the wrong index where it expects the behaviour index.

Share this post


Link to post
Share on other sites
On 2/16/2017 at 9:45 AM, delta99 said:

 

Sounds like you've messed up the behaviour config or are passing the wrong index where it expects the behaviour index.


lol I forgot I made this post. I fixed it by using dac_intern and editing the files in the pbo.

Actually, if I use the files from the (edited) PBO itself and replace the dac_extern files, I still get the same error. So I don't know what its problem is.

Share this post


Link to post
Share on other sites
On 2017-02-18 at 11:42 PM, RagingGamer said:


lol I forgot I made this post. I fixed it by using dac_intern and editing the files in the pbo.

Actually, if I use the files from the (edited) PBO itself and replace the dac_extern files, I still get the same error. So I don't know what its problem is.

 

I forget, what is DAC_INTERN and DAC_EXTERN again?

Share this post


Link to post
Share on other sites
On 2/24/2017 at 2:49 PM, delta99 said:

 

I forget, what is DAC_INTERN and DAC_EXTERN again?


The modules.
DAC_intern uses the files packed in the PBO of the mod.
DAC_extern uses files that are the same as the ones inside the PBO but are separated. Those same files are used in the script version of DAC, too.

DAC_extern is, I'm assuming, used for creating customized loadouts/weapon-pools for the AI that spawns. But like I said, I've only recently started using it.

Share this post


Link to post
Share on other sites
On 2017-02-26 at 0:33 AM, RagingGamer said:


The modules.
DAC_intern uses the files packed in the PBO of the mod.
DAC_extern uses files that are the same as the ones inside the PBO but are separated. Those same files are used in the script version of DAC, too.

DAC_extern is, I'm assuming, used for creating customized loadouts/weapon-pools for the AI that spawns. But like I said, I've only recently started using it.

 

I just read the documentation. It looks like you use DAC_intern when you are not really adjusting any of the configuration and DAC_extern if you want to provide your own config files.

 

I've never really used DAC as a mod so none of this was an issue for me. I've always just used the script version. I understand that for those that are not familiar enough with scripting they might use the MOD version but if you are at all familiar with scripting then I would suggest you just skip the mod version altogether and just go straight to the scripting version.

 

@RagingGamer You are probably much better off using the scripting version. Then you won't be messing around with the PBO, possibly breaking stuff and finding it much more difficult to debug etc.

Share this post


Link to post
Share on other sites
On 3/10/2017 at 8:38 AM, delta99 said:

 

@RagingGamer You are probably much better off using the scripting version. Then you won't be messing around with the PBO, possibly breaking stuff and finding it much more difficult to debug etc.

I'd agree with you there, if I knew any scripting lol

Share this post


Link to post
Share on other sites

Can DAC control Airplanes? I want to setup an Airbase controlled by DAC and have it use the AT6-B among other TurboProp fighters.

Share this post


Link to post
Share on other sites

Just a heads up -- in a mission using a script version of DAC v3.1 modified slightly to work with Headless Client (though this implementation did not use a HC), a fatal error came at seemingly random times, crashed DAC, and spammed my RPT ~2,000,000 times.

 

pastebin.com/fhGXpDg3

 

There's a snippet of it. Basically the private variable _fwp in DAC_Create_Groups (and other private variables like _entry) were not being initialized before they were being used. At the beginning of DAC_Create_Groups.sqf the script makes sure to explicitly predefine these variables with both a big private[] declaration and then some assignment statements.

 

Yet, still, somehow this code was being skipped over and resulting in a fatal error.

 

To "fix" it (bandaid it) I threw a

< waitUntil {!isNil "_fwp"}; >

just below where the private variables are established. It's working so far.

 

I have two questions:

1. Is there any other way to fix this?

2. Unrelated, but is it ever a good idea to run DAC on the Headless Client? You can't really use ACE_X HC or anything that transfers AI because then the DAC script (running on the server) can't manage them anymore. You also can't outright spawn DAC on the Headless Client because if the HC crashes it cannot recover the script. Will DAC ever truly work with HC?

 

EDIT: Looks like it still happens. Maybe less often? I can't really tell.

Share this post


Link to post
Share on other sites
4 hours ago, linuxmaster9 said:

im trying to decide between DAC and ALiVE

 

I use both. DAC excels at creating random patrols in an area, while ALiVE is much better to populate a zone and give "purpose" to units thanks to high level commanding.

  • Like 1

Share this post


Link to post
Share on other sites
3 hours ago, magnetar said:

 

I use both. DAC excels at creating random patrols in an area, while ALiVE is much better to populate a zone and give "purpose" to units thanks to high level commanding.

I want to add it to Wasteland. I am replacing the OPFOR faction or BLUFOR faction with roving AI. I thought it would be nice to have a Base or Two that the AI originate from. Constant action etc.

Share this post


Link to post
Share on other sites
3 minutes ago, linuxmaster9 said:

I want to add it to Wasteland. I am replacing the OPFOR faction or BLUFOR faction with roving AI. I thought it would be nice to have a Base or Two that the AI originate from. Constant action etc.

 

You also have DAC camps. But alive is better in the sense that overall command gives instructions to attack other places if a certain objective has been already taken.

Share this post


Link to post
Share on other sites
19 hours ago, Whalenator said:

Just a heads up -- in a mission using a script version of DAC v3.1 modified slightly to work with Headless Client (though this implementation did not use a HC), a fatal error came at seemingly random times, crashed DAC, and spammed my RPT ~2,000,000 times.

 

pastebin.com/fhGXpDg3

 

There's a snippet of it. Basically the private variable _fwp in DAC_Create_Groups (and other private variables like _entry) were not being initialized before they were being used. At the beginning of DAC_Create_Groups.sqf the script makes sure to explicitly predefine these variables with both a big private[] declaration and then some assignment statements.

 

Yet, still, somehow this code was being skipped over and resulting in a fatal error.

 

To "fix" it (bandaid it) I threw a

< waitUntil {!isNil "_fwp"}; >

just below where the private variables are established. It's working so far.

 

I have two questions:

1. Is there any other way to fix this?

2. Unrelated, but is it ever a good idea to run DAC on the Headless Client? You can't really use ACE_X HC or anything that transfers AI because then the DAC script (running on the server) can't manage them anymore. You also can't outright spawn DAC on the Headless Client because if the HC crashes it cannot recover the script. Will DAC ever truly work with HC?

 

EDIT: Looks like it still happens. Maybe less often? I can't really tell.

 

Out of the ~150 waypoints that are usually generated... the Monitor hangs at ~15, then starts generating a paltry amount of units, then throws those 2,000,000 RPT errors and DAC's script either hangs up or crashes.

 

I ran it 38 times in local multiplayer and it happened at random but came out to roughly 1/5 times. Going to try and run some diagnostics but I honestly have no idea how to approach this given that literally forcing the script to wait until the variable is initialized does nothing.

Share this post


Link to post
Share on other sites
3 hours ago, Whalenator said:

 

Out of the ~150 waypoints that are usually generated... the Monitor hangs at ~15, then starts generating a paltry amount of units, then throws those 2,000,000 RPT errors and DAC's script either hangs up or crashes.

 

I ran it 38 times in local multiplayer and it happened at random but came out to roughly 1/5 times. Going to try and run some diagnostics but I honestly have no idea how to approach this given that literally forcing the script to wait until the variable is initialized does nothing.

ALiVE seems like it might be the best option based on this. Especially if I go lite on it. One thing I really want to be able to do is have the AI use Turbo Prop Fighter planes like the BWI AT6B and Tuscano.

Share this post


Link to post
Share on other sites
3 hours ago, linuxmaster9 said:

ALiVE seems like it might be the best option based on this. Especially if I go lite on it. One thing I really want to be able to do is have the AI use Turbo Prop Fighter planes like the BWI AT6B and Tuscano.

 

Use whatever you like, ALiVE is more plug-n-play but less flexible. I'm only asking because after two years of using DAC for A3 it's giving me this problem for the first time.

_________

 

EDIT: Think I finally fixed the problem. I had DAC spawn in an array of randomized positions within a minefield that was to be initialized halfway through the mission. I used turbo mode, and in DAC_Config_Creator I had the waypoint "speed limit" set to 0.01 as opposed to the usual 0.1. A null waypoint my have been spawned, someway, somehow, and gotten passed into DAC_Create_Groups.

 

I think.

Edited by Whalenator
Update on problem.

Share this post


Link to post
Share on other sites
9 hours ago, linuxmaster9 said:

ALiVE seems like it might be the best option based on this. Especially if I go lite on it. One thing I really want to be able to do is have the AI use Turbo Prop Fighter planes like the BWI AT6B and Tuscano.

 

I must say here that I have never encountered a problem using DAC together with Headless Client.

 

The flexibility DAC offers has no rival and it ensures a different experience every time you play the mission. Even the group composition changes every mission! This is not something you can do with ALiVE, where the spawned groups have always the same elements and size as defined in the config. With DAC you can set minimum and maximum sizes, time spent looking in a surrounding area if they reach a waypoint and they were on top of a vehicle, time spent checking buildings, probability of a certain role (grenadier, MG, rifleman,...) to appear in a group and so on. As said earlier: DAC offers the best flexibility and you can combine it with other spawn scripts like T8-Units to have a less dynamic spawning (https://github.com/T-800a/T8_Units).

 

You could also use DAC to spawn units and later give them to ALiVE using a script, giving ALiVE the command of DAC AI units. This however will cut the AI features of DAC mentioned before. 

Share this post


Link to post
Share on other sites
1 hour ago, magnetar said:

 

I must say here that I have never encountered a problem using DAC together with Headless Client.

 

The flexibility DAC offers has no rival and it ensures a different experience every time you play the mission. Even the group composition changes every mission! This is not something you can do with ALiVE, where the spawned groups have always the same elements and size as defined in the config. With DAC you can set minimum and maximum sizes, time spent looking in a surrounding area if they reach a waypoint and they were on top of a vehicle, time spent checking buildings, probability of a certain role (grenadier, MG, rifleman,...) to appear in a group and so on. As said earlier: DAC offers the best flexibility and you can combine it with other spawn scripts like T8-Units to have a less dynamic spawning (https://github.com/T-800a/T8_Units).

 

You could also use DAC to spawn units and later give them to ALiVE using a script, giving ALiVE the command of DAC AI units. This however will cut the AI features of DAC mentioned before.

 

How do you use DAC with HC? Curious. I've seen solutions that literally spawn the entire script on the HC, and some that transfer AI afterwards. I have concerns about both:

1. If you're spawning the script on the HC and the HC crashes (a common occurrence in one of the larger groups I'm in), will the script crash? Will the AI be lost for the entire mission?

2. If you transfer AI locality to the HC but keep the script running on the server, can the script even control the AI anymore? Don't the units need to be local to whomever's setting waypoints?

 

IIRC I use Vanilla DAC script version save a few minor edits made across the "Scripts" folder. I don't remember if I got my stuff from Broma, ARK, or Zriel.

 

Something I've noticed with DAC is that during large missions after a long time (an hour into the op, for instance) the AI seem to have plenty of glitching bouts. They freeze and start shaking back and forth wildly, ignore DAC waypoints, do not respond to reinforcement calls, etc. It honestly has me wondering whether DAC is still equipped to play nicely with Arma 3's new AI FSMs.

Share this post


Link to post
Share on other sites
13 hours ago, magnetar said:

 

I must say here that I have never encountered a problem using DAC together with Headless Client.

 

The flexibility DAC offers has no rival and it ensures a different experience every time you play the mission. Even the group composition changes every mission! This is not something you can do with ALiVE, where the spawned groups have always the same elements and size as defined in the config. With DAC you can set minimum and maximum sizes, time spent looking in a surrounding area if they reach a waypoint and they were on top of a vehicle, time spent checking buildings, probability of a certain role (grenadier, MG, rifleman,...) to appear in a group and so on. As said earlier: DAC offers the best flexibility and you can combine it with other spawn scripts like T8-Units to have a less dynamic spawning (https://github.com/T-800a/T8_Units).

 

You could also use DAC to spawn units and later give them to ALiVE using a script, giving ALiVE the command of DAC AI units. This however will cut the AI features of DAC mentioned before. 

from my experience with ALiVE, I can set the force type to random so each time, the type of forces deployed and how they act are different. I messed around with the current version of ALiVE last night and the AI were deviously evil.

Share this post


Link to post
Share on other sites
On 2017-03-20 at 10:40 PM, linuxmaster9 said:

ALiVE seems like it might be the best option based on this. Especially if I go lite on it. One thing I really want to be able to do is have the AI use Turbo Prop Fighter planes like the BWI AT6B and Tuscano.

 

I think that user was doing something wrong with DAC and posted just that afterwards. I have never had issues with DAC like that before unless I was doing something wrong.

 

If you ask me, from what you are trying to do and if I understand what Wastland is, DAC is probably a much better option.

Share this post


Link to post
Share on other sites
On 3/24/2017 at 2:15 PM, delta99 said:

 

I think that user was doing something wrong with DAC and posted just that afterwards. I have never had issues with DAC like that before unless I was doing something wrong.

 

If you ask me, from what you are trying to do and if I understand what Wastland is, DAC is probably a much better option.

But how do I make DAC have unlimited respawns? I dont want the AI to be killed off and never return. They are supposed to be an ever present threat. That is something I can do with ALiVE.  I do want the server to be liteweight.

Share this post


Link to post
Share on other sites

 

1 hour ago, linuxmaster9 said:

But how do I make DAC have unlimited respawns? I dont want the AI to be killed off and never return. They are supposed to be an ever present threat. That is something I can do with ALiVE.  I do want the server to be liteweight.

 

Look at the DAC camps functionality.

Share this post


Link to post
Share on other sites

I have but I didnt see anywhere that you could tell it to have unlimited spawns. It just said that when the camp runs out of spawns it switches to another camp.

Share this post


Link to post
Share on other sites

Using a fresh copy of the script version of DAC i am now getting script errors from it: 

 

12:51:06 Error in expression <e {_pa < count DAC_Players} do {_pn = group (DAC_Players select _pa);if((!(fo>
12:51:06   Error position: <group (DAC_Players select _pa);if((!(fo>
12:51:06   Error group: Type Group, expected Object
12:51:06 File E:\My Documents\Arma 3\missions\co@_xx_Glass_Cannon.Tanoa\DAC\Scripts\DAC_Init_Creator.sqf, line 76

 

Does this mean DAC is broken in 1.68?

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×