Ambient Combat Manager Module – Arma 2
Lou Montana (talk | contribs) m (Text replacement - "\[ *(https?\:\/\/.+\.bistudio\.[^ ]+) ([^ ]+) *\]" to "{{ExternalLink|link= $1|text= $2}}") |
Lou Montana (talk | contribs) m (Text replacement - "{{Feature|Informative|" to "{{Feature|informative|") |
||
(3 intermediate revisions by the same user not shown) | |||
Line 10: | Line 10: | ||
== Quickstart == | == Quickstart == | ||
[[ | [[File:ACM_Quickstart1.jpg|center]] | ||
# Place at least one unit in your mission. | # Place at least one unit in your mission. | ||
Line 17: | Line 17: | ||
# Preview the mission and enjoy! | # Preview the mission and enjoy! | ||
{{Feature| | {{Feature|informative| | ||
* Only one ACM may be synchronized with a group (additional ACM's will be ignored). However, other ACM's may be synchronized to other groups. | * Only one ACM may be synchronized with a group (additional ACM's will be ignored). However, other ACM's may be synchronized to other groups. | ||
* When synchronizing to a group with multiple units it does not matter which unit you synchronize to. Aesthetically it is recommend to sychronize to the group's leader. | * When synchronizing to a group with multiple units it does not matter which unit you synchronize to. Aesthetically it is recommend to sychronize to the group's leader. | ||
Line 30: | Line 30: | ||
The ACM needs a little time to initialize, so before calling these functions, please wait for initialization to complete. | The ACM needs a little time to initialize, so before calling these functions, please wait for initialization to complete. | ||
This can be achieved by looking at a variable stored inside the ACM itself: ''initDone''. Assuming you named your ACM ''myFirstACM'': | This can be achieved by looking at a variable stored inside the ACM itself: ''initDone''. Assuming you named your ACM ''myFirstACM'': | ||
<sqf> | |||
// Make a script wait for the ACM to initialize. | |||
waitUntil {!isNil {myFirstACM getVariable "initDone"}}; | |||
waitUntil {myFirstACM getVariable "initDone"}; | |||
</sqf> | |||
Line 40: | Line 41: | ||
Here is a basic example of what you would put into your init file for your mission if you were to want specific units to spawn from your ACM. | Here is a basic example of what you would put into your init file for your mission if you were to want specific units to spawn from your ACM. | ||
Assuming you named your ACM "BIS_ACM1", if you wanted a second ACM, copy and paste the below code beneath it renaming all the "1"s to 2s, with your second ACM named BIS_ACM2. | Assuming you named your ACM "BIS_ACM1", if you wanted a second ACM, copy and paste the below code beneath it renaming all the "1"s to 2s, with your second ACM named BIS_ACM2. | ||
<sqf> | |||
// Put this near the bottom of your init, have a sleep command before this. | |||
// ACM settings | |||
waitUntil { !isNil {BIS_ACM1 getVariable "initDone"} }; | |||
waitUntil { BIS_ACM1 getVariable "initDone" }; | |||
[] spawn { | |||
waitUntil { !isnil "BIS_fnc_init" }; | |||
[1, BIS_ACM1] call BIS_ACM_setIntensityFunc; // Sets the intensity of the ACM, in other words, determines how active it will be. Starts at 0 ends at 1.0, its been known to fail using 0.7 and 0.8 | |||
[BIS_ACM1, 400, 700] call BIS_ACM_setSpawnDistanceFunc; // This is the radius on where the units will spawn around the unit the module is sync'd to, 400m being the minimal distance and 700m being the maximum. Minimum is believed to be 1 | |||
[["BIS_TK_INS"], BIS_ACM1] call BIS_ACM_setFactionsFunc; // This tells the ACM which faction of units it will spawn. In this case it will spawn Takistani Insurgents | |||
[0, 0.7, BIS_ACM1] call BIS_ACM_setSkillFunc; // This determines what the skill rating for the spawned units will be | |||
[0.2, 0.5, BIS_ACM1] call BIS_ACM_setAmmoFunc; // This sets their amount of ammo they spawn with | |||
["ground_patrol", 1, BIS_ACM1] call BIS_ACM_setTypeChanceFunc; // If you want ground patrols then leave it as a 1, if you don't put a 0. They will use random paths | |||
["air_patrol", 0, BIS_ACM1] call BIS_ACM_setTypeChanceFunc; // Same thing for air patrols | |||
// This should determine which exact units will spawn from the group **Citation needed** | |||
[BIS_ACM1, ["TK_INS_Group", "TK_INS_Patrol", "TK_INS_AATeam", "TK_INS_ATTeam", "TK_INS_Technicals", "TK_INS_MotorizedGroup"]] call BIS_ACM_addGroupClassesFunc; | |||
}; | |||
</sqf> | |||
You can get Factions and Units for Operation Arrowhead at this link {{ | You can get Factions and Units for Operation Arrowhead at this link {{Link|link= http://forums.bistudio.com/showpost.php?p=1667629&postcount=324|text= Operation Arrowhead Factions and Units (Forums)}}. | ||
Latest revision as of 00:24, 2 February 2024
The Ambient Combat Manager (ACM) is a scripted module for Arma 2 which can dynamically generate a war around a unit. It is meant to fill the gameworld with actual combat while moving through it and without having to place units manually. The generated patrols are not faked: they will fight with and / or against you.
Since no current computer would be able to handle an entire Arma 2 gameworld full of AI units, the ACM cleans up after itself. It will remove dynamic content as the player moves away from it. After starting a mission with an ACM it may take some time for the patrols to appear, depending mostly on the ACM's intensity setting.
Quickstart
- Place at least one unit in your mission.
- Place an ACM near this unit (Modules (F7) > Ambient Combat).
- Synchronize the unit with the ACM (F5 > drag a line between the two objects).
- Preview the mission and enjoy!
Configuration
You can manipulate several ACM settings by calling pre-defined functions. The ACM needs a little time to initialize, so before calling these functions, please wait for initialization to complete. This can be achieved by looking at a variable stored inside the ACM itself: initDone. Assuming you named your ACM myFirstACM:
Example
Here is a basic example of what you would put into your init file for your mission if you were to want specific units to spawn from your ACM. Assuming you named your ACM "BIS_ACM1", if you wanted a second ACM, copy and paste the below code beneath it renaming all the "1"s to 2s, with your second ACM named BIS_ACM2.
You can get Factions and Units for Operation Arrowhead at this link Operation Arrowhead Factions and Units (Forums).
Advanced topics
Scripted ACM
You can also spawn an ACM by script via createUnit. You will then have to also script its synchronization to a unit via synchronizeObjectsAdd. This needs to be done within 0.5 seconds from the start of the mission, because after that synchronizations are processed and set in stone.
Group types
By default the ACM spawns groups from the CfgGroups config. This means that when add-ons add new groups here, these will be automatically used. The groups also define a rarity value which determines how frequently a certain type of group should be used. Regular infantry is spawned more often than a sniper team for example. You can override the default group types with specific group types.
Patrol types
The ACM uses two types of patrols: air and ground. The differences are small and both will spawn units which patrol the area. The air patrol is designed to fly over or near the synchronized group specifically, while ground patrols are using truly random routes.