Jump to content

Recommended Posts

@Pd3 - In the userconfig for ASR_AI you could play with the following values;

gunshothearing = 1; - setting this to 0 will turn off this feature which may help you not get spotted after firing your weapon and then hiding.

radionet = 1; - setting this to zero will prevenent enemy AI from radioing your position to nearby units.

radiorange = 600; - playing with this value will change the range that the nearby units are informed of your position when the above parameter is on.

You could also play with the spotTime and spotDistance values in the skillsets, which will reduce the AI's ability to spot you in the first place.

I attempted this experiment with one single AI, so its unlikely that it was getting intel from other sources.

I actually really like the radio feature incorporated along with lone soldiers rejoining groups, it mass coordination efforts of the AI really pull the game together in a way previously not experienced.

So I think in terms of that, I think I'm okay, but I will try setting the gunshothearing variable to 0, and posssibly fiddle around with making an inherited config mod that reduces the ai's overall hearing acuity.

Anyhow, Robalo, great mod, great addition to Arma 2.

Thanks for your response Jedra.

----------------------------------------

Well, I've decided to modify the variables "sensitivity" and "sensitivityear", in the config.bin for asr_ai_c_aisensors:

Regular soldiers have their sensitivity set to '2', and sensitivityear set to 0.0001 (it could be possibly set higher, but I wanted to know definitively that it would change their behavior).

SF and Snipers were set to sensitivity '3', their hearing was also set to 0.0001.

All I can say is, what a difference.

I used the "knowsabout" script to determine the changes to the AI behavior, and their ability to detect you moving out of their line of sight was greatly diminished, more in line with what you'd expect from game AI.

You can actually throw the AI a curveball and detour behind them and take them by surprise now!

Previously the AI would be looking -exactly- in the same direction that you would be re-entering their field of view, and now unless they have a clear line of sight to predict where you're going to be, they can't.

I think I may have solved the problem.

Share this post


Link to post
Share on other sites

Thanks, I will look into tweaking the sensitivity down a little. The increase came from numerous requests for better passive spotting (or complains about the blind AI).

Share this post


Link to post
Share on other sites

Be careful tuning this setting otherwise you make AI act like dumb bots which can't predict where their opponent could be. In general every AI should be able to anticipate something simple like appearing again on left or right side of the building/object and not beeing stuck looking at last known position of the enemy. Could be perhaps better if after time X the AI will get a bit nervous and after time X+n AI will continue with their mission. Just something that a human player would do in this situation too.... ;)

Share this post


Link to post
Share on other sites

I am still having a issue with AI being Aim-bots - I have set it to Regular and set the server to below to test

	skillEnemy=0.6;
	precisionEnemy=0.1;

But they still shoot me within 2 bullets in the head !

I am using ACE and also UPSMON - but i believe UPSMON would not have any effect on skill etc..

I really would like to dumb them down a lot as it is for a training mission and would like a lot of bullet flying around they are OPFOR insurgents - if that make any difference ?

Edited by psvialli

Share this post


Link to post
Share on other sites

psvialli try to change the "skillEnemy" setting in your *.cfg, "precisionEnemy" don't work anymore like it did or just tune AI via asr_ai_settings.hpp or via script for a certain scenario/mission.

Share this post


Link to post
Share on other sites

OK ill give that a go , Do i need to add in the classname for Insurgents into the userconfig or are they already in there by default ? and if so what level are they as i could not find them in there.

Thanks

Share this post


Link to post
Share on other sites

All default A2OA units are imo covered by ASR AI. I didn't test it but you can try to add unit classnames + change their settings and see if this will make a difference.

Share this post


Link to post
Share on other sites
OK ill give that a go , Do i need to add in the classname for Insurgents into the userconfig or are they already in there by default ? and if so what level are they as i could not find them in there.

Thanks

I posted a spreadsheet earlier in this thread that listed the skills value assigned to every class by ASR_AI. I have updated the sheet with the new values that Robalo has assigned. In the spreadsheet check out the first two tabs for Vanilla Units and Vanilla+ACE Units. This may help you understand what skills Robalo assigns to each unit class.

Share this post


Link to post
Share on other sites

@psvialli:

If BIS calculations for bullet dispersion is based on the same random numbers generator they let us use through scripting, then the AI may be hitting you in the head even without BIS intention :).

The problem with the disposal of the precisionEnemy parameter is that now if you want a less precise shooting, you have to lower their whole AI. AFAIK lowering the skillEnemy, you got dumber AI, not only bad shooters. They will flank less, they will care less about their digital life, they will charge more often... to put it simple: they will dedicate less CPU time to resolve combat situations. And that is terrible. IMO what we gained in 1.59 in terms of AI, we lost it in 1.60, o more precisely, we have to choose between the before 1.59 micro AI (and have longer firefights), or the much better, tactical AI, after 1.59, but now with super shooting precision.

This mod helps a lot, but the higher precision no-mater-what is still there. You can try lowering skillEnemy to 0.1 and see what happens. On the other hand, I've used UPSMON a lot before 1.60, and it does influence how many times and how fast you're going get shot, if not for anything else, just because the mod orders more units than normal to dofire on your position, so a bunch of bullets, guided by the BIS random generator, homing in your position... well some of them are bound to hit you. Usually in the head. The only protection you have when a unit shoots at you, is a random number generator that tends to zero, imagine that.

Share this post


Link to post
Share on other sites

I know its either me who is retarded or the ASR AI isn't working properly but basically whats happening for me is this -

Recent days after I implemented the system to the server I've noticed the AI shooting me in a range of 2 clicks and not on ground neither, I am in a VENOM flying around 2KM above air in 265KM/H speed and they still can't resists firing a regular TECHNICAL 50.cal and fully hit me in cockpit in sideways as not using SMOKE or grenades but also not using RPG(Well they do but its RARE event) into vehicles / air.

I am using default Configs and the unit types are Takistanian GUE with ACE.

Ideas? I kinda made a new "config" file but I don't know if it would work at all,

/*
ASR AI settings
this file must be found in <game folder>\userconfig\asr_ai\
for most settings, 0 = disabled, 1 = enabled

All config entries are turned into global variables following a standard naming scheme. For example:
asr_ai_sys_airearming_feature = getNumber (configFile >> "asr_ai" >> "sys_airearming" >> "feature")
Mission makers can control these features by setting these global variables in init.sqf or by setting
a similar class in description.ext
*/

class asr_ai {

class sys_airearming {
	feature = 1;      // All the other settings of this class matter only if we have 1 here
	run = 1;          // Enable rearming at mission start
	radius = 50;      // Rearming search radius - how far will AI go to grab stuff
	civ = 0;          // Civilians will try to arm themselves
	sidearm = 1;      // Units will take handguns
	binocs = 1;       // Units will take binoculars

	// List of secondary weapons that any unit may take. Other launchers not in this list will only be picked by specialists
	launchers[] = {
		"M136","RPG18","cwr2_AT4","cwr2_LAW","cwr2_RPG75",
		"ACE_M136_CSRS","ACE_M72A2","ACE_M72","ACE_RPG22","ACE_RPG27","ACE_RPOM","ACE_RSHG1","ACE_RMG"
	};
	// List of frag grenades that units will look for
	grenades[] = {
		"HandGrenade","HandGrenade_West","HandGrenade_East","BAF_L109A1_HE","ACE_DM51","ACE_DM51A1"
	};
	// List of smoke grenades that units will look for
	smokes[] = {
		"SmokeShell","SmokeShellRed","SmokeShellGreen","SmokeShellYellow","SmokeShellPurple","SmokeShellBlue","SmokeShellOrange",
		"ACE_M34","ACE_RDG2","ACE_RDGM","ACE_DM25","ACE_DM31","ACE_DM32","ACE_DM33","ACE_DM34","ACE_DM36","ACE_M15"
	};
};

class sys_aiskill {
	feature = 1;                   // All the other settings of this class matter only if we have 1 here
	civ = 0;                       // Enable advanced skills for civilians
	radionet = 1;                  // AI groups share known enemy locations over radio
	radiorange = 600;              // Maximum range for radios
	nightspotting = 0.2;           // Spotting range night reduction coeficient
	gunshothearing = 1;            // Gunshot hearing range coefficient (applied to shooter's weapon sound range; 0 will disable the feature)
	                               // If using the JSRS sound mod, set it to 2-3 because of the scripted long range sounds, the limit is 500m for all weapons in the config
	buildingSearching = 0.8;       // Chance the AI group will search nearby buildings when in combat mode (0 to 1 values, 0 will disable the feature)
	buildingSearchingAlwaysUp = 1; // Force UP stance (value: 1, default) when doing the house search or let AI choose automatically (value: 0)
	throwsmoke = 1;                // AI throws smoke when hit
	join_loners = 1;               // Groups left with only one unit merge with nearest group of the same side or faction (1-enabled, 0-disabled)
	join_loners_sameFaction = 0;   // Single units will only join groups of the same faction, if join_loners = 1 above (1-faction, 0-side)
	serverdvd = 1;                 // Dynamic dedicated server viewdistance adjustment
	setskills = 1;                 // Configure AI skills based on their unit type (faction, training etc.)
	setskills_debug = 0;           // Log skill assignments to RPT

	/*
	Units are classified into skill sets between 1 and 10
	By default, a lower level number means a better skilled unit
	Levels 8-10 are special:
	 - 8-9 are for pilots, very good by default, but some of their skills are now automatically reduced when they leave the aircraft (accuracy, courage)
	 - 10 is for trained snipers
	*/
	class sets {
		// only classes of arrays under this
		class level_0 { // perfect (only used for testing)
			aimingAccuracy[] = {1.00, 0.00};
			aimingShake[]    = {1.00, 0.00};
			aimingSpeed[]    = {1.00, 0.00};
			spotDistance[]   = {1.00, 0.00};
			spotTime[]       = {1.00, 0.00};
			endurance[]      = {1.00, 0.00};
			courage[]        = {1.00, 0.00};
			reloadSpeed[]    = {1.00, 0.00};
			commanding[]     = {1.00, 0.00};
			general[]        = {1.00, 0.00};

			units[] = { // add class names to this to override their default (or inherited) skill set

			};
		};
		class level_1 { // sf 1
			aimingAccuracy[] = {0.40, 0.20}; // skilltype = {<min value>, <random value added to min>};
			aimingShake[]    = {0.40, 0.20};
			aimingSpeed[]    = {0.55, 0.20};
			spotDistance[]   = {0.65, 0.30};
			spotTime[]       = {0.40, 0.20};
			endurance[]      = {0.80, 0.20};
			courage[]        = {0.80, 0.20};
			reloadSpeed[]    = {0.80, 0.20};
			commanding[]     = {0.80, 0.20};
			general[]        = {0.80, 0.20};

			units[] = {
				"sf_18d","sf_18c","sf_18z","sf_18b","sf_18e","sf_18a"
			};
		};
		class level_2 { // sf 2
			aimingAccuracy[] = {0.35, 0.20};
			aimingShake[]    = {0.35, 0.20};
			aimingSpeed[]    = {0.50, 0.20};
			spotDistance[]   = {0.60, 0.30};
			spotTime[]       = {0.35, 0.20};
			endurance[]      = {0.70, 0.20};
			courage[]        = {0.70, 0.20};
			reloadSpeed[]    = {0.70, 0.20};
			commanding[]     = {0.70, 0.20};
			general[]        = {0.70, 0.20};

			units[] = {
				"ibr_mutant"
			};
		};
		class level_3 { // regular 1
			aimingAccuracy[] = {0.30, 0.20};
			aimingShake[]    = {0.30, 0.20};
			aimingSpeed[]    = {0.45, 0.20};
			spotDistance[]   = {0.55, 0.30};
			spotTime[]       = {0.30, 0.20};
			endurance[]      = {0.60, 0.20};
			courage[]        = {0.60, 0.20};
			reloadSpeed[]    = {0.60, 0.20};
			commanding[]     = {0.60, 0.20};
			general[]        = {0.60, 0.20};

			units[] = {
				"bink_usmc_tl","bink_usmc_sl","bink_usmc_dmr","bink_usmc_scout","bink_usmc_scout_l","bink_usmc_tl_des","bink_usmc_sl_des","bink_usmc_dmr_des",
				"bink_usmc_scout_des","bink_usmc_scout_l_des",
				"rb_teamleader"
			};
		};
		class level_4 { // regular 2
			aimingAccuracy[] = {0.25, 0.20};
			aimingShake[]    = {0.25, 0.20};
			aimingSpeed[]    = {0.40, 0.20};
			spotDistance[]   = {0.50, 0.30};
			spotTime[]       = {0.25, 0.20};
			endurance[]      = {0.50, 0.20};
			courage[]        = {0.50, 0.20};
			reloadSpeed[]    = {0.50, 0.20};
			commanding[]     = {0.50, 0.20};
			general[]        = {0.50, 0.20};

			units[] = {
				"ibr_bodyguard"
			};
		};
		class level_5 { // militia or trained insurgents, former regulars
			aimingAccuracy[] = {0.20, 0.20};
			aimingShake[]    = {0.20, 0.20};
			aimingSpeed[]    = {0.35, 0.20};
			spotDistance[]   = {0.45, 0.30};
			spotTime[]       = {0.20, 0.20};
			endurance[]      = {0.40, 0.20};
			courage[]        = {0.40, 0.20};
			reloadSpeed[]    = {0.40, 0.20};
			commanding[]     = {0.40, 0.20};
			general[]        = {0.40, 0.20};

			units[] = {
				"ibr_arl_officer","ibr_arl_sniper","ibr_arl_sab"
			};
		};
		class level_6 { // civilians with some military training
			aimingAccuracy[] = {0.15, 0.20};
			aimingShake[]    = {0.15, 0.20};
			aimingSpeed[]    = {0.30, 0.20};
			spotDistance[]   = {0.40, 0.30};
			spotTime[]       = {0.15, 0.20};
			endurance[]      = {0.30, 0.20};
			courage[]        = {0.30, 0.20};
			reloadSpeed[]    = {0.30, 0.20};
			commanding[]     = {0.30, 0.20};
			general[]        = {0.30, 0.20};

			units[] = {
				"ibr_rebel11","ibr_rebel22","ibr_rebel33","ibr_rebel44","ibr_rebel55","ibr_rebel66","ibr_rebel77","ibr_rebel83","ibr_rebel95","ibr_rebel102",
				"ibr_rebel111","ibr_rebel125","ibr_rebel132","ibr_rebel145","ibr_rebel151","ibr_rebel162","ibr_rebel173","ibr_rebel184","ibr_rebel195",
				"ibr_rebel206","ibr_rebel217",
				"ibr_arl_rif","ibr_arl_rif2","ibr_arl_mg","ibr_arl_ar","ibr_arl_at","ibr_arl_aa","ibr_arl_crew","ibr_arl_medic",
				"ibr_drg_man1","ibr_drg_man2","ibr_drg_man3","ibr_drg_man4","ibr_drg_man5","ibr_drg_man6","ibr_drg_man7","TK_GUE_Bonesetter_EP1","TK_GUE_Soldier_2_EP1","TK_GUE_Soldier_3_EP1","TK_GUE_Soldier_4_EP1","TK_GUE_Soldier_5_EP1","TK_GUE_Soldier_AAT_EP1","TK_GUE_Soldier_AA_EP1","TK_GUE_Soldier_AR_EP1","TK_GUE_Soldier_AT_EP1","TK_GUE_Soldier_EP1","TK_GUE_Soldier_HAT_EP1","TK_GUE_Soldier_MG_EP1","TK_GUE_Soldier_Sniper_EP1","TK_GUE_Soldier_TL_EP1","TK_GUE_Warlord_EP1","TK_GUE_Warlord_EP1","TK_INS_Soldier_2_EP1"
			};
		};
		class level_7 { // civilians without military training
			aimingAccuracy[] = {0.10, 0.20};
			aimingShake[]    = {0.10, 0.20};
			aimingSpeed[]    = {0.25, 0.20};
			spotDistance[]   = {0.35, 0.30};
			spotTime[]       = {0.10, 0.20};
			endurance[]      = {0.20, 0.20};
			courage[]        = {0.20, 0.20};
			reloadSpeed[]    = {0.20, 0.20};
			commanding[]     = {0.20, 0.20};
			general[]        = {0.20, 0.20};

			units[] = {
				"ibr_arl_stoner1","ibr_arl_stoner2","ibr_arl_stoner3","ibr_arl_stoner4","ibr_arl_stoner5","ibr_arl_stoner6","ibr_arl_stoner7"
			};
		};
		class level_8 { // pilot 1
			aimingAccuracy[] = {0.40, 0.20};
			aimingShake[]    = {0.40, 0.20};
			aimingSpeed[]    = {0.55, 0.20};
			spotDistance[]   = {0.65, 0.30};
			spotTime[]       = {0.40, 0.20};
			endurance[]      = {0.60, 0.20};
			courage[]        = {0.60, 0.20};
			reloadSpeed[]    = {0.60, 0.20};
			commanding[]     = {0.60, 0.20};
			general[]        = {0.60, 0.20};

			units[] = {

			};
		};
		class level_9 { // pilot 2
			aimingAccuracy[] = {0.35, 0.20};
			aimingShake[]    = {0.35, 0.20};
			aimingSpeed[]    = {0.50, 0.20};
			spotDistance[]   = {0.60, 0.30};
			spotTime[]       = {0.35, 0.20};
			endurance[]      = {0.50, 0.20};
			courage[]        = {0.50, 0.20};
			reloadSpeed[]    = {0.50, 0.20};
			commanding[]     = {0.50, 0.20};
			general[]        = {0.50, 0.20};

			units[] = {
				"ibr_arl_pilot"
			};
		};
		class level_10 { // sniper
			aimingAccuracy[] = {0.75, 0.20};
			aimingShake[]    = {0.75, 0.20};
			aimingSpeed[]    = {0.60, 0.20};
			spotDistance[]   = {0.70, 0.30};
			spotTime[]       = {0.75, 0.20};
			endurance[]      = {0.70, 0.20};
			courage[]        = {0.70, 0.20};
			reloadSpeed[]    = {0.70, 0.20};
			commanding[]     = {0.70, 0.20};
			general[]        = {0.70, 0.20};

			units[] = {

			};
		};
	};//sets
};//sys_aiskill

};

Basically adding the TK people into UNITS.

Share this post


Link to post
Share on other sites

I can only provide support if more details are provided, most important:

1. the .RPT file - provides essential info about the mods you're running and errors

2. the mission or scenario demonstrating weird/faulty AI behavior

3. if the issue is introduced by this mod (not happening with vanilla)

Please use the tracker link in the first post.

@brightness:

Those TK_ units should already be level 6 so no need to add them there. Best to keep that list minimal for performance considerations.

Check Jedra's data to see what level each unit is (cheers for that mate !).

Share this post


Link to post
Share on other sites

[quote=Robalo;2116920

@brightness:

Those TK_ units should already be level 6 so no need to add them there. Best to keep that list minimal for performance considerations.

Check Jedra's data to see what level each unit is (cheers for that mate !).

That is the thing! They are shooting me with a 50 cal in perfect hit when I am flying over 2 clicks with a average speed of 260km/h which I consider is a bit overrule :S

Ideas? Maybe it isn't reading userconfig properly?

Share this post


Link to post
Share on other sites
That is the thing! They are shooting me with a 50 cal in perfect hit when I am flying over 2 clicks with a average speed of 260km/h which I consider is a bit overrule :S

Ideas? Maybe it isn't reading userconfig properly?

May I ask where you bought Arma?

Share this post


Link to post
Share on other sites
That is the thing! They are shooting me with a 50 cal in perfect hit when I am flying over 2 clicks with a average speed of 260km/h which I consider is a bit overrule :S

Ideas? Maybe it isn't reading userconfig properly?

Have you tried without this mod?

Share this post


Link to post
Share on other sites
That is the thing! They are shooting me with a 50 cal in perfect hit when I am flying over 2 clicks with a average speed of 260km/h which I consider is a bit overrule :S

Ideas? Maybe it isn't reading userconfig properly?

This is where I ask again for the ticket, have to see it to believe it :)

Same as with the reports like "they shoot me in the head with 2 bullets from miles away".

I'm not changing anything about how AI uses vehicle weapons, only small arms. Also, on default settings, AI is less accurate then vanilla.

Share this post


Link to post
Share on other sites
This is where I ask again for the ticket, have to see it to believe it :)

Same as with the reports like "they shoot me in the head with 2 bullets from miles away".

I'm not changing anything about how AI uses vehicle weapons, only small arms. Also, on default settings, AI is less accurate then vanilla.

Na' I fixed it, the add-on wasn't being read correct fully.

Share this post


Link to post
Share on other sites

How compatible is Invasion44 mod or is it safer to copy&paste unitnames into asr_ai_settings.hpp?

Share this post


Link to post
Share on other sites
How compatible is Invasion44 mod or is it safer to copy&paste unitnames into asr_ai_settings.hpp?

It seems to work fine. You'll probably need to add the grenade/launchers to the config though. Check out the spreadsheet I linked to earlier as it also has a tab for the new I44 stuff with ASR_AI - you'll be able to see which units need tweaking (if any). I have been running it on my server since the 2.6 release of I44 and have had no problems.

Share this post


Link to post
Share on other sites

Also, on default settings, AI is less accurate then vanilla.

Do you have a repro mission that can confirm that? Have to see it to believe it :).

Share this post


Link to post
Share on other sites
Do you have a repro mission that can confirm that? Have to see it to believe it :).

Here is a simple test harness that I wrote while building something else. Run it once with ASR_AI and once without and compare the results in the .rpt that it outputs. To begin the test, just fire a shot in the direction of the enemy in front of you and wait for about a minute!

SkillsTest

In my own testing, ASR_AI controlled is less accurate - this is because the skills Robalo sets are more specific and usually less than the 0.7 (or whatever) all round that the standard skill_enemy usually gives.

Share this post


Link to post
Share on other sites
This is where I ask again for the ticket, have to see it to believe it :)

Same as with the reports like "they shoot me in the head with 2 bullets from miles away".

I'm not changing anything about how AI uses vehicle weapons, only small arms. Also, on default settings, AI is less accurate then vanilla.

I use a separate mod for mounted guns and the like, and I've struck quite a nice balance with the ASR_AI mod.

I really have to say again, after my sensitivity tweaks, I can sneak up on AI and put a bean in the back of their head and they won't turn around like they heard me running from a mile away.

They're also much more general in their estimate of your position, and it isn't updated as frequently, which means you can actually evade and watch them running toward the place where they think you are.

It creates some great ambush potential.

I also have a question regarding the AI firing rates of weapons.

I would like to greatly decrease the firing rate for rifles and carbines from about 225/250m onward, since at present they don't really shoot like they're taking "aimed" single shots, but simply leaning on the full auto and managing to control it into a way tighter group for the range they're doing it at.

I know in ofp they had a variable called: AIrateoffiredist, but I see no such thing now.

Is it a different variable, or is it handled differently now?

Edited by Pd3

Share this post


Link to post
Share on other sites

Is there any issues using this with UPSMON ? as when i activate this on our Dedi UPSMON does not seem to spawn any units in , take it off and they spawn in again , but when i test it on local host it all works great !?

Anyone using this on Dedi with UPSMON ?

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

×