AI Skill – Arma 3
Jump to navigation
Jump to search
Lou Montana (talk | contribs) m (Some wiki formatting) |
Lou Montana (talk | contribs) m (Remove syntaxhighlight spoiler hack) |
||
Line 213: | Line 213: | ||
==== Config ==== | ==== Config ==== | ||
<spoiler> | <spoiler> | ||
<syntaxhighlight lang="cpp"> | <syntaxhighlight lang="cpp"> |
Revision as of 13:32, 23 June 2023
AI Skill
The AI is characterized by a set of sub-skills. The final AI skill is unfluenced by several factors. Additionally each sub-skill is then interpolated with the values set in CfgAISkill.
Changing AI Skill
Players
- As player one can only influence AI skill by changing the global skill settings Skill and Precision. One has also the option to choose one of the default AI Levels.
- Skill: Influences multiple sub-skills related to the AIs "intelligence". If the value is set too low, the AI will be dumb.
- Precision: Influences sub-skills related to AIs precision. If the value is set too high, the AI will have a super human precision. Lower values result mostly in interesting fire fights.
Scenario Designers
- A scenario designer has four ways to influence the AI skill:
- By changing the skill slider in Eden Editor for each individual unit.
- By using functions like BIS_fnc_EXP_camp_setSkill or BIS_fnc_EXP_camp_dynamicAISkill to set the skill of multiple AI entities at once.
- By using commands like setSkill.
- By using the Set Skill module which allows to change the skill of AI entities for example when a trigger was activated.
Modders
- A modder can influence the AI skill by overwriting CfgAISkill.
Server Admins
- Server admins can change the AI skill by changing the aiLevelPreset config parameter found in server config. See Arma 3 Server Profile for more information.
Sub-Skills
Sub-skills are a set of parameters ultimately defining the individual AI unit performance in the game.
Sub-Skill | Effect | Influence |
---|---|---|
aimingAccuracy |
|
|
aimingSpeed |
|
|
commanding |
|
|
courage |
|
|
endurance |
|
|
general |
|
|
reloadSpeed |
|
|
spotDistance |
|
|
spotTime |
|
|
aimingShake |
|
|
CfgAISkill
CfgAISkill is a set of arrays, related to Sub-Skills, defining the interpolation curve of each of the sub-skill. They can be changed by a mod for example.
Example
In { w, x, y, z } value from (w,y) gets interpolated into (x,z)
spotDistance[] = { 0, 0.2, 1, 0.4 };
- Value in a range 0-1 will change into value in a range 0.2-0.4.
- _unit setSkill ["spotDistance", 0.5];
- Results in _unit skill "spotDistance" returning 0.3
Arma 3 Defaults
Table
Sub-Skill | minInputSkillLimit (w) | resultingSubSkillLowerBoundary (x) | maxInputSkillLimit (y) | resultingSubSkillLowerBoundary (z) |
---|---|---|---|---|
aimingAccuracy | 0 | 0 | 1 | 1 |
aimingShake | 0 | 0 | 1 | 1 |
aimingSpeed | 0 | 0.5 | 1 | 1 |
commanding | 0 | 0 | 1 | 1 |
courage | 0 | 0 | 1 | 1 |
endurance | 0 | 0 | 1 | 1 |
general | 0 | 0 | 1 | 1 |
reloadSpeed | 0 | 0 | 1 | 1 |
spotDistance | 0 | 0 | 1 | 1 |
spotTime | 0 | 0 | 1 | 1 |
Config
aimingAccuracy[] = { 0, 0, 1, 1 };
aimingShake[] = { 0, 0, 1, 1 };
aimingSpeed[] = { 0, 0.5, 1, 1 };
commanding[] = { 0, 0, 1, 1 };
courage[] = { 0, 0, 1, 1 };
endurance[] = { 0, 0, 1, 1 }; // disabled in Arma 3
general[] = { 0, 0, 1, 1 };
reloadSpeed[] = { 0, 0, 1, 1 };
spotDistance[] = { 0, 0, 1, 1 };
spotTime[] = { 0, 0, 1, 1 };
Related Commands