wiggum2 31 Posted August 8, 2010 Hi, is there a way to set the accuracy of the enemy forces in the editor or with script ? And can someone explain what really does the Skill slider in editor do ? Does it effect the accuracy too ? Share this post Link to post Share on other sites
KC Grimes 79 Posted August 8, 2010 The actual difficulty of AI has always been questioned in MP, simply because there are a few ways to edit their skill levels. Personally I have found that lowering their skill bar in the editor reduces accuracy and the overall amount of shots fired. Share this post Link to post Share on other sites
wiggum2 31 Posted August 8, 2010 Ok, i could use this: {_x setskill ["aimingAccuracy",0.5]} foreach units east So it would be possible to set them to skill 1.0 in the editor but reduce their aiming accuracy ? But again, i somewhere read that the slider in the editor has basiclly no effect because the settings get overwrite by the diffucult settings of the player (SP) or host (MP). Share this post Link to post Share on other sites
Jelliz 10 Posted August 8, 2010 I really dont notice any difference with the skill slider, but using the aimingaccuracy setting you can remove their KORD machinegun sniping. 0.1 or 0.15 is great when you want bullets going all around you, while there still is some risk of being shot! Share this post Link to post Share on other sites
Militant1006 11 Posted August 9, 2010 Ok, i could use this: {_x setskill ["aimingAccuracy",0.5]} foreach units east So it would be possible to set them to skill 1.0 in the editor but reduce their aiming accuracy ? But again, i somewhere read that the slider in the editor has basiclly no effect because the settings get overwrite by the diffucult settings of the player (SP) or host (MP). You can adjust accuracy outside of the editor by opeining up your profile (your ArmA 2 name in your documents) and then go to the difficulty settings, (like regular, veteran etc.) and change the enemy and friendly precision settings to something lower while keeping the skill level high so they shoot alot and become worthy enemies without them being gods of accuracy. By the way the skill values will be between 0 and 1, 1 being the highest and 0 being the lowest, i use .2 to .3 for enemy precision and .5 to.6 for friendly precision, while i keep the skill settings around .9 or .8 for both sides so they flank, suppress, and assault without being overly accurate. Share this post Link to post Share on other sites
shuko 59 Posted August 10, 2010 Ok, i could use this: East is a side, not a group. So, using units command wont do much good. Share this post Link to post Share on other sites
wiggum2 31 Posted August 10, 2010 East is a side, not a group. So, using units command wont do much good. So how would it look like correctly ? {_x setskill ["aimingAccuracy",0.5]} foreach side east ? Share this post Link to post Share on other sites
shuko 59 Posted August 10, 2010 { if (side _x == east) then { _x setskill ["aimingAccuracy",0.5]; }; } foreach allunits; Share this post Link to post Share on other sites
wiggum2 31 Posted August 10, 2010 { if (side _x == east) then { _x setskill ["aimingAccuracy",0.5]; }; } foreach allunits; Thanks shk ! Share this post Link to post Share on other sites
chacne 17 Posted August 10, 2010 so does this { if (side _x == east) then { _x setskill ["aimingAccuracy",0.5]; }; } foreach allunits; go in a trigger ? :confused: Share this post Link to post Share on other sites
wiggum2 31 Posted August 10, 2010 @ Chacne Just put that code in the init.sqf I currently use this code: { if (side _x == east) then { _x setskill ["aimingAccuracy",0.15]; _x setskill ["spotDistance",0.85]; _x setskill ["spotTime",0.85]; _x setskill ["courage",0.85]; _x setskill ["commanding",0.85]; _x setskill ["aimingShake",0.15]; _x setskill ["aimingSpeed",0.65]; }; } foreach allunits; That makes the enemy AI spot you easier, attack you faster and with more courage but makes them bad shooters...i like this "Shooter-Feeling" ! Share this post Link to post Share on other sites
celery 8 Posted August 10, 2010 Place a trigger with condition true and on act {if (side _x==east) then {_x setskill ["aimingAccuracy",0.5]}} forEach allUnits Share this post Link to post Share on other sites
A-SUICIDAL 11 Posted August 13, 2010 Where do you put the script? { if (side _x == east) then { _x setskill ["aimingAccuracy",0.5]; }; } foreach allunits; Share this post Link to post Share on other sites
fideco 1 Posted August 13, 2010 It would be interesting spread out skill over multiple AI groups. How do you do this? Share this post Link to post Share on other sites
A-SUICIDAL 11 Posted August 13, 2010 Cool thx shk :) Share this post Link to post Share on other sites
Nielsen 10 Posted August 13, 2010 (edited) @fideco: { _x setskill ["aimingAccuracy",0.15]; _x setskill ["spotDistance",0.85]; _x setskill ["spotTime",0.85]; _x setskill ["courage",0.85]; _x setskill ["commanding",0.85]; _x setskill ["aimingShake",0.15]; _x setskill ["aimingSpeed",0.65]; } foreach units [color="Red"]groupName[/color]; Just change 'groupName' to the name of the group you want to execute the script on. This groupName can be specified by putting [color="Red"]GroupName[/color] = group this; in the init line of a group leader. EDIT: The things in red have to match ;) Edited August 14, 2010 by Nielsen Clarity Share this post Link to post Share on other sites
A-SUICIDAL 11 Posted August 13, 2010 was just about to ask that. thank u Share this post Link to post Share on other sites
fideco 1 Posted August 13, 2010 Great!! Very helpful Thanks so much Cheers Share this post Link to post Share on other sites
A-SUICIDAL 11 Posted August 13, 2010 (edited) I added to the enemy group leaders init field: group_b = group this; then I put this into my init.sqf: { group_b setskill ["aimingAccuracy",0.15]; group_b setskill ["spotDistance",0.85]; group_b setskill ["spotTime",0.85]; group_b setskill ["courage",0.85]; group_b setskill ["commanding",0.85]; group_b setskill ["aimingShake",0.15]; group_b setskill ["aimingSpeed",0.65]; }; } foreach units groupName; I know I did this wrong since it's giving me script errors. I wish I knew this stuff better. If I use: group_b = group this; What exactly would I need to put into my init.sqf? And would I have to apply this for every enemy group I want to change? Because I want to change them all. Or is there a way I can just apply it to the entire enemy team in my coop mission? because that's what I thought Wiggum was trying to accomplish and I kinda wanted to do the same if it's possible. Edited August 13, 2010 by A-SUICIDAL Share this post Link to post Share on other sites
Nielsen 10 Posted August 14, 2010 @A-SUICIDAL: It's because your not replacing the 'groupName' with the groupname you have set on the leader. Also you have a scripterror as you point you, and on top of that you have wrongly replaced an essential part of the forEach command '_x'. ;) The forEach command just runs the same code, on each of the given units. In this case on each unit in group_b. The '_x' automatically gets replaced with the correct name of the unit in each cycle of the code. With the init: group_b = group this; the code should look like this: { _x setskill ["aimingAccuracy",0.15]; _x setskill ["spotDistance",0.85]; _x setskill ["spotTime",0.85]; _x setskill ["courage",0.85]; _x setskill ["commanding",0.85]; _x setskill ["aimingShake",0.15]; _x setskill ["aimingSpeed",0.65]; } foreach units [color="Red"]group_b[/color]; That being said. If you want to apply this to every enemy, then you should just use the example that Shk posted. That does exactly that. With this example you would indeed have to set every groups skills. The example is only of use if you want different groups to have different skills. Share this post Link to post Share on other sites
A-SUICIDAL 11 Posted August 14, 2010 (edited) I read back though this thread and then found what he explained. I some how missed it the first time I read through it. But at least now I know how to set it both ways. Thank you. This will make my mission so much better. All mission creators should use this stuff to tone down the enemy a bit. I've played a ton of custom made missions where enemy are placed into the mission on roof tops and in the middle of streets and they do nothing except sit there picking their nose and then I get into a good position and right when I get ready to aim and fire - one of the enemy AI flips around aimbots and shoots me right between the eyes with his crappy iron sight weapon from 200 meters away and insta kills me before i can pull my trigger. Then I respawn, run 3 miles back to the same spot and I got shot while I'm running and the very first shot fired kills me again. Edited August 14, 2010 by A-SUICIDAL Share this post Link to post Share on other sites
lightspeed_aust 681 Posted October 30, 2010 agreed - if this works properly this should be pinned. i think one of the biggest gripes about Arma2 is ai accuracy. Share this post Link to post Share on other sites
Morten87 10 Posted November 6, 2010 Interesting, looking forward to test this:) Share this post Link to post Share on other sites