View Full Version : Ambient Combat Module
MechaStalin
Jun 2 2009, 04:30
Is there a special way to set up this module or does it function like the Ambient Civillians module? If you just place it by its self nothing seems to happen.
Maddmatt
Jun 2 2009, 05:07
Synchronise it to the player/squad leaser, then it should work. Same as with the ambient civilians modules.
Yes, you simply synchronize (F5) the module with a unit and it will kick in. Do not group (F2) it, for that will not do anything :)
We will add more configuration information to the BiKi soon, but here's some stuff to get you started (ACM reference means either the module itself or one of the units in the group it's synchronized to):
//The intensity value should be a Number between 0.0 and 1.0.
[<intensity | Number>, <ACM reference | Object>] call BIS_ACM_setIntensityFunc;
//Distances with the value -1 will leave the distance as it was.
//Distances with a value below -1 will reset to their defaults.
[<ACM reference | Object>, <minimum | Number>, <maximum | Number>] call BIS_ACM_setSpawnDistanceFunc;
//The skill values should be Numbers between 0.0 and 1.0.
[<minimum | Number>, <maximum | Number>, <ACM reference | Object>] call BIS_ACM_setSkillFunc;
//The ammo values should be Numbers between 0.0 and 1.0.
[<minimum | Number>, <maximum | Number>, <ACM reference | Object>] call BIS_ACM_setAmmoFunc;
//You can pass both actual CfgGroups Config entries or class name Strings.
[<ACM reference | Object>, <types | Array of Configs and / or Strings>] call BIS_ACM_addGroupClassesFunc;
//Passing an empty types Array will completely disable the custom database and switch back to the default.
[<ACM reference | Object>, <types | Array of Configs and / or Strings>] call BIS_ACM_removeGroupClassesFunc;
//Pick from: USMC, CDF, RU, INS, GUE.
[<factions | Array of Strings>, <ACM reference | Object>] call BIS_ACM_setFactionsFunc;
//When passing Arrays, these should contain the top-left and bottom-right coordinates.
[<ACM reference | Object>, <types | Array of Arrays and / or Markers and / or triggers>] call BIS_ACM_blacklistAreaFunc;
/*type must be one of "", "ground_patrol", "air_patrol".
Passing an empty type will reset back to the default pool.
Weights should normally be between 0 and 1.
A weight of -1 will remove that patrol type from the pool.*/
[<type | String>, <weight / chance | Number>, <ACM reference | Object>] call BIS_ACM_setTypeChanceFunc;
What does the ACM actually do?
It randomly spawns AI units of all sides which then fight each other....
Here i have a Video here where suddenly Mi24, F35 and M1A2 TUSK Tanks appeared:
http://www.youtube.com/watch?v=YTZM7jO7G-g&fmt=22
What does the ACM actually do?
It can create a war of any size around you as you travel in the world. You can control whether it spawns enemies and friendlies, or just one or the other. You can set which types of units are spawned, so imagine only allowing small infantry groups to spawn in a smaller scenario. It's also important to mention that the ACM cleans up after itself. When you move too far away from dynamically created patrols, they are eventually removed (to prevent the world from being populated with millions of units ;)).
hmm it doesnt do anything when i create it in editor and sync to my sl.
my question is where and how can i change its settings, as i cant see anything in the logics apearance itself how to spawn any soldiers or vehicles or wich side.
do i have to create a script for that ?
[GLT] Legislator
Jun 2 2009, 13:38
Is it possible to activate the ACM at a certain point of time during a mission and not from the beginning? I thought of using a variable to active it during the game. Is this possible? If yes, how?
Yes, you simply synchronize (F5) the module with a unit and it will kick in. Do not group (F2) it, for that will not do anything
We will add more configuration information to the BiKi soon, but here's some stuff to get you started (ACM reference means either the module itself or one of the units in the group it's synchronized to):
Code:
//The intensity value should be a Number between 0.0 and 1.0.
[<intensity | Number>, <ACM reference | Object>] call BIS_ACM_setIntensityFunc;
//Distances with the value -1 will leave the distance as it was.
//Distances with a value below -1 will reset to their defaults.
[<ACM reference | Object>, <minimum | Number>, <maximum | Number>] call BIS_ACM_setSpawnDistanceFunc;
//The skill values should be Numbers between 0.0 and 1.0.
[<minimum | Number>, <maximum | Number>, <ACM reference | Object>] call BIS_ACM_setSkillFunc;
//The ammo values should be Numbers between 0.0 and 1.0.
[<minimum | Number>, <maximum | Number>, <ACM reference | Object>] call BIS_ACM_setAmmoFunc;
//You can pass both actual CfgGroups Config entries or class name Strings.
[<ACM reference | Object>, <types | Array of Configs and / or Strings>] call BIS_ACM_addGroupClassesFunc;
//Passing an empty types Array will completely disable the custom database and switch back to the default.
[<ACM reference | Object>, <types | Array of Configs and / or Strings>] call BIS_ACM_removeGroupClassesFunc;
//Pick from: USMC, CDF, RU, INS, GUE.
[<factions | Array of Strings>, <ACM reference | Object>] call BIS_ACM_setFactionsFunc;
//When passing Arrays, these should contain the top-left and bottom-right coordinates.
[<ACM reference | Object>, <types | Array of Arrays and / or Markers and / or triggers>] call BIS_ACM_blacklistAreaFunc;
/*type must be one of "", "ground_patrol", "air_patrol".
Passing an empty type will reset back to the default pool.
Weights should normally be between 0 and 1.
A weight of -1 will remove that patrol type from the pool.*/
[<type | String>, <weight / chance | Number>, <ACM reference | Object>] call BIS_ACM_setTypeChanceFunc;
Awww, is that how you do it? :butbut: Writing down and memorizing lines of code? I'd hoped it would be more user-friendly, seeing as the Editor was advertised as such. Like being able to select the options from a drop-down menu, or something...
gunterlund21
Jun 2 2009, 14:10
It sounds like silola is going to be bored with Arma II as alot of the stuff his DAC system did will be built in :-)
Is it possible to activate the ACM at a certain point of time during a mission and not from the beginning? I thought of using a variable to active it during the game. Is this possible? If yes, how?
Yes: either do not place the ACM in the mission and spawn it (createUnit) at some point. Or you can set the intensity to 0 at the beginning and raise to some value between 0 and 1 when you want to activate it.
You do need to use scripting to manipulate the ACM (and other modules). It's not too hard once it will be fully documented. You can pretty much copy'n'paste the code I posted into an init.sqf and alter it ;)
Sniper Pilot
Jun 2 2009, 14:54
Hmm can't get it to work... Am I stupid?
-I synced the ACM to the SQL: nada
-I synced the ACM to me: nada
-I didnt sync the ACM to anyone: nada
-I added enemies to the map with sync/no sync: nada
Any help would be appreciated.
Hmm can't get it to work... Am I stupid?
Probably not :)
-I synced the ACM to the SQL: nada
-I synced the ACM to me: nada
All you should have to do is sync it (F5, not F2) and preview the mission. Both options there are valid, since it should work when synced to any of the group's units. Did you run the mission for a little while? The system is not instantly spawning stuff all over the place, but things will ramp up over time. When you set the intensity to 1 (0.5 being default), there should be more and quicker patrols.
Yes: either do not place the ACM in the mission and spawn it (createUnit) at some point. Or you can set the intensity to 0 at the beginning and raise to some value between 0 and 1 when you want to activate it.
You do need to use scripting to manipulate the ACM (and other modules). It's not too hard once it will be fully documented. You can pretty much copy'n'paste the code I posted into an init.sqf and alter it ;)
With the beautyness (for mission makers) of synchronizing and logic (placing stuff in the editor), it might be an idea to add it to the init field of the logic? (maybe as alternative implementation)
Sniper Pilot
Jun 2 2009, 15:01
Hmm thanks, I will try again.
But - I placed myself down synced F5 not F2 to myself then I previewed and ran around for 15min from town to town - nothing...
anyways thanks for your quick response.
PS- I can just drag and drop and sync right? nothing else? OR do I have to add some script lines?
EDIT: I got it to work somewhat... but I only saw 1 Mi17 fly over and that was it for the remainder of my 30min tour through Chernasuras(sp?)
It can create a war of any size around you as you travel in the world. You can control whether it spawns enemies and friendlies, or just one or the other. You can set which types of units are spawned, so imagine only allowing small infantry groups to spawn in a smaller scenario. It's also important to mention that the ACM cleans up after itself. When you move too far away from dynamically created patrols, they are eventually removed (to prevent the world from being populated with millions of units ;)).
I cant hold it any longer, i must buy ArmA2 today. :D
.kju [PvPscene]
Jun 2 2009, 19:36
What about a simple demo mission DnA for beginner people to understand the setup? :)
What about a simple demo mission DnA for beginner people to understand the setup?
Cool idea. :)
Two quick questions, by the way:
1) When the Ambient Combat -module is activated, where exactly will the soldiers spawn? Randomly all over the place, or can you set this for yourself?
2) Okay, so you have to use scripting to edit the GL. But... how, exactly? When you select the Ambient Combat -module in the editor (Or any Game Logic, for that matter.), what screen appears? Is it like when selecting regular units and objects, and you have the old init field in the middle where you are expected to write a string of code, or is it something new and, dare I say, simpler?
petteerr
Jun 3 2009, 01:29
If i want to create a mission which acm will get me support(CDF) with intensity 0.6,40 to 90 meters from reference object what should i do?
Also where do i put the codes of the first page,to the acm or to the team leader???(initialization)
Reference point is the name of team leader?
Hope someone could help thanks..
NeMeSiS: Just imagine this with Zombies. LOL. You're workload just dropped to 10%
BIS, Absolute brilliance in these modules.. Genius.
petteerr
Jun 3 2009, 18:44
Can someone help to create an ACM for one specific fanction setting predefined intensity,and distance code for a specific fanction??
Manzilla
Jun 3 2009, 20:49
If i want to create a mission which acm will get me support(CDF) with intensity 0.6,40 to 90 meters from reference object what should i do?
Also where do i put the codes of the first page,to the acm or to the team leader???(initialization)
Reference point is the name of team leader?
Hope someone could help thanks..
My questions exactly. I don't suppose some has whipped up an example/test mission with the settings of ACM tweaked. I'm assuming all one has to do is copy and paste DnA's code into an init.sqf in the mission's directory, as he explained. That part I think I get. My ineptness arises when I actually look at the code and instructions he posted and then try to figure out what means what and what I need to change.
The best way for me to learn it is to just see it an reverse engineer it. I'm bad with instructions but damn good at figuring stuff out.
petteerr
Jun 3 2009, 21:06
what is "init.sqf"??
schaefsky
Jun 3 2009, 21:19
"init.sqf" is a special scriptname that gets executed around mission start (or at mission initialisation, I am unsure when exactly).
That means you don't have to execute that script yourself, if it is present in your mission folder it will be executed automaticly.
I'll get some sample missions for this module and other modules as soon as I can, but I also have other tasks to attend to :)
Another hint for experienced scripters: modules need a little time to initialize (this can be super fast, but it's still several milliseconds after the mission starts). It is therefore wise to query whether the module is done initializing and then start changing settings in a script. You may check Boolean variable initDone in the ACM to do that.
waitUntil {!isNil {myFirstACM getVariable "initDone"}};
waitUntil {myFirstACM getVariable "initDone"};
Warning! Long post ahead. :butbut:
My ineptness arises when I actually look at the code and instructions he posted and then try to figure out what means what and what I need to change.
My problem exactly. I was really happy when I heard about the ACM, but then I look at DnA's post and get instantly disheartened. :(
---
Some guy: -"Hey, DnA, how does the player choose which factions and units are to appear, and where?"
DnA: -"Oh, pffft. That's easy. All you have to do, is this:"
*Writes down a mile long list of nigh unintelligable gooble-gooble-goo moon language techno gibberish that makes absolutely no sense to anyone not completely into coding, with sentences consisting of words you've never even heard before, with all sorts of commas, brackets and general punctuation in places they seemingly have no buissness being.*
"... And then, all you have to do is write this down into the init-field of the Game Logic, although sometimes you are supposed write it into the init-field of the group leader, although sometimes you're not supposed to write it anywhere, but scream it out loud at your monitor while you're playing. If it still doesn't work, just do this:
*Writes down another mile-long list of even more technobabble.*
"...Then, manually make a file, paste it into the mission folder, add the text I wrote, and start the game, hoping for the best. If that still doesn't work, give up, turn off the computer and sink discretely back into the comfort of a deep alcoholic slumber. Alternatively, go back to playing the first Spyro the Dragon on your little brother's old Playstation 1, preferably while crying. Sure is nice the devs decided to make the Editor more user-friendly this time around, eh? :)"
---
Yeah, yeah, alright. Let me just explain that in OFP and ArmA 1, I had a fairly good grasp on how to script commands in the init-fields of the soldiers and vehicles, and have them do stuff.
I could, for example, write "This SetBehaviour 'Combat'; this SetCombatMode 'Red'; This SetFormation 'Line'.", and know that when I pressed "Preview", the squad(s) in question would approach their designated objective in a spread-out line formation, set to engage at will, and seek cover as they'd see fit. I could tell vehicles to drop people off, and have them get in. I could change the weapons and equipment the soldiers would start with; that sort of thing. And while it was pretty easy once you had learned how the scripting-system worked, I honestly thought it was complicated enough as it was.
I had hoped the "new" Game Logic system would work something like this. I actually believe I could have coped with that. But apparently, it's something even weirder? :confused:
Granted; maybe, like the devs say, the new system turns out to be really simple and immediately obvious once I actually get the game, around the 19th or so. But as of right now, I don't even know what the command interface of a Game Logic looks like.
Could someone please be charitable and make a screenshot showing what the menu screen that appears once you have selected a GL looks like? Or does it look just like that of any other object, with nothing but a line in the middle that you're supposed to write the whole script on?
Sorry for this long-winded and whiny post. I'm just a little tired and confused right now...
Manzilla
Jun 4 2009, 00:50
I know I'll kick myself once I see the example missions. Even though this stuff looks tough it always ends up being and I can comprehend it in a matter of seconds when I see it in action.
Thanks DnA and no worries, get that other stuff done. ;)
Great game thus far as well. You guys have incorporated some damn good stuff in A2. The difference between A1 and A2 is mind-blowing. Congrats.
The great thing about all this is that once someone actually writes the code down.. All you have to do is copy and paste it from the Internet into Arma II editor. Then all you really need to change is the numbers in the viarable.
But alas we have to wait for someone to write the code down in a demo type way...
@<hidden>!gar : It may looks difficult, but 2 points :
- The script & variables parameters are there to change the default behavior of the modules. You can easily simply drop the module and synchronize it if needed, and you're set.
- These modules may look difficult to configure, but they achieve a whole lot by simply dropping an object on the map, doing the same by yourself would require.... well, a lot lot of line of scripting and such :)
I using [USMC, BIS_ACM] call BIS_ACM_setFactionsFunc; but ACM spawns units of all factions, what's wrong? If i type "USMC" ACM doesn't work.
])rStrangelove
Jun 4 2009, 07:58
This should be really awesome once it can be used by scripters.
Would be even cooler to combine enemy spawns with locations. So every time you're near a village that has a name (a location) the ACM starts spawning the right faction inside the village.
It's just a shame we can't control exactly where units are spawned. I'd like to see them coming out of houses front doors like civilians. Would be cool if we could manipulate the ACM spawn pos somehow.
I using ["USMC", BIS_ACM] call BIS_ACM_setFactionsFunc; but ACM spawns units of all factions, what's wrong?
<factions | Array of Strings>
Means: ["USMC"] for a faction array.
So that's how it should be:
[["USMC"], BIS_ACM] call BIS_ACM_setFactionsFunc;
http://rapidshare.com/files/240649395/ACM_test.utes.rar.html please check this demo, what's wrong?
schaefsky
Jun 4 2009, 11:35
This one definitly works after some time, removed the configuration from the trigger and put this into an "init.sqf":
waitUntil {!isNil {BIS_ACM getVariable "initDone"}};
waitUntil {BIS_ACM getVariable "initDone"};
[100, BIS_ACM] call BIS_ACM_setIntensityFunc;
[["USMC"], BIS_ACM] call BIS_ACM_setFactionsFunc;
[BIS_ACM, 1, 10] call BIS_ACM_setSpawnDistanceFunc;
["ground_patrol", 1, BIS_ACM] call BIS_ACM_setTypeChanceFunc;
["air_patrol", 0, BIS_ACM] call BIS_ACM_setTypeChanceFunc;
As you see, I wait for "initDone" and I also changed the min / max distance. Friendly units started to spawn once I lowered my flyheight, so your min / max of zero might be the problem.
Edit:
It seems to me that both is necessary, wait for "initDone" and set the min / max distance to something appropriate.
In this case, you are flying in chopper at height 50, so to spawn ground units set min >= 50 and max 80 for example. Still not sure though.
Manzilla
Jun 4 2009, 12:23
This one definitly works after some time, removed the configuration from the trigger and put this into an "init.sqf":
waitUntil {!isNil {BIS_ACM getVariable "initDone"}};
waitUntil {BIS_ACM getVariable "initDone"};
[100, BIS_ACM] call BIS_ACM_setIntensityFunc;
[["USMC"], BIS_ACM] call BIS_ACM_setFactionsFunc;
[BIS_ACM, 1, 10] call BIS_ACM_setSpawnDistanceFunc;
["ground_patrol", 1, BIS_ACM] call BIS_ACM_setTypeChanceFunc;
["air_patrol", 0, BIS_ACM] call BIS_ACM_setTypeChanceFunc;
As you see, I wait for "initDone" and I also changed the min / max distance. Friendly units started to spawn once I lowered my flyheight, so your min / max of zero might be the problem.
Edit:
It seems to me that both is necessary, wait for "initDone" and set the min / max distance to something appropriate.
In this case, you are flying in chopper at height 50, so to spawn ground units set min >= 50 and max 80 for example. Still not sure though.
Quick question:
What does "[100, BIS_ACM]" stand for in "[100, BIS_ACM] call BIS_ACM_setIntensityFunc;"?
And the "[BIS_ACM, 1, 10]" in "[BIS_ACM, 1, 10] call BIS_ACM_setSpawnDistanceFunc;"?
trini scourge
Jun 4 2009, 12:45
Quick question:
What does "[100, BIS_ACM]" stand for in "[100, BIS_ACM] call BIS_ACM_setIntensityFunc;"?
And the "[BIS_ACM, 1, 10]" in "[BIS_ACM, 1, 10] call BIS_ACM_setSpawnDistanceFunc;"?
DNA explained earlier:
[100, BIS_ACM] call BIS_ACM_setIntensityFunc;, where 100 is intensity (shouldn't this be value between 0 and 1?), and BIS_ACM references the module itself (can also reference a unit).
[BIS_ACM, 1, 10] call BIS_ACM_setSpawnDistanceFunc; Once again BIS_ACM references the module or unit, 1 is minimum spawn distance and 10 is maximum spawn distance.
Manzilla
Jun 4 2009, 12:52
DNA explained earlier:
[100, BIS_ACM] call BIS_ACM_setIntensityFunc;, where 100 is intensity (shouldn't this be value between 0 and 1?), and BIS_ACM references the module itself (can also reference a unit).
[BIS_ACM, 1, 10] call BIS_ACM_setSpawnDistanceFunc; Once again BIS_ACM references the module or unit, 1 is minimum spawn distance and 10 is maximum spawn distance.
Yeah I read and replied to that post earlier. I should be a little more clear, what does the 1 and 10 max/min distance refer to? i.e. does 1=1m and 10=10m or something much higher. If I set it to 10 how far away will the spawn?
Same goes for 100. Is that 100% and if so what does that mean. Intensity of what? The fighting or spawning of units and so on.
trini scourge
Jun 4 2009, 13:01
I'm guessing that the intensity refers to how many groups spawn within the spawnDistance specified. As far as I know the distance is in meters (need to do some more tests when I get home).
Mr_Centipede
Jun 4 2009, 13:22
i think somewhere along this thread mention that intensity is actually kinda like frequency. how frequent new unit will be spawned. I could be wrong though
edit:
Found it:
When you set the intensity to 1 (0.5 being default), there should be more and quicker patrols.
so it's intensity and frequency?
schaefsky, thank you! It's works now fine. This module is very interesting..
I have a new question. How to spawn only infantry?
will this module only create firefights around you and delete units who get to close to you? Or will those units also attack you?
I using [USMC, BIS_ACM] call BIS_ACM_setFactionsFunc; but ACM spawns units of all factions, what's wrong? If i type "USMC" ACM doesn't work.
Please try:
[["USMC"], BIS_ACM] call BIS_ACM_setFactionsFunc;
The list of factions should be an Array of Strings :)
will this module only create firefights around you and delete units who get to close to you? Or will those units also attack you?
Nope, it definately will not delete units when they get close and you will be attacked by spawned enemies.
Looking at it that way maybe ambient isn't the best description. When we wanted ambient war sounds in the game, we didn't want to simply add some ambient pre-recorded sounds like certain other games do; we wanted actual combat :D
Manzilla
Jun 4 2009, 15:29
i think somewhere along this thread mention that intensity is actually kinda like frequency. how frequent new unit will be spawned. I could be wrong though
edit:
Found it:
so it's intensity and frequency?
Ok, now I get it. Not sure why I didn't understand that when I read it. Thanks everyone. Now what about the spawn distance. Not quite sure what 1 or 10 is suppose to refer to.
trini scourge
Jun 4 2009, 16:08
Ok, now I get it. Not sure why I didn't understand that when I read it. Thanks everyone. Now what about the spawn distance. Not quite sure what 1 or 10 is suppose to refer to.
Just tested it, spawn distance is in meters Manzilla. Using will spawn units at a minimum distance of 1m and a max of 10m.
For example: [B][MY_ACM, a, b] allows the spawn distance (in meters) to be chosen from the range of values between a and b
Remeber sizes of units vary around you, so you may only see few units for a long time or loads and it always is varied, but with the simple commands you can change that.
Player + Sync Game Logic = Working nothing else needed. :)
Manzilla
Jun 4 2009, 17:27
Just tested it, spawn distance is in meters Manzilla. Using will spawn units at a minimum distance of 1m and a max of 10m.
For example: [B][MY_ACM, a, b] allows the spawn distance (in meters) to be chosen from the range of values between a and b
Alright, I'm getting it. But is that spawn distance the distance the units will spawn from me or from the ACM gamelogic? I guess that's what's confusing me. It seems a little silly to have stuff spawning 1 to 10m away from the player. Plus when playing the missions and campaign I never saw anything that close to me.
Please try:
[["USMC"], BIS_ACM] call BIS_ACM_setFactionsFunc;
The list of factions should be an Array of Strings :)
Okay, stupid question: It's the ["USMC"] part of the code that makes the USMC spawn, right? So if I want the ACM to make me a battle with the USMC against Russians, I'll type:
[["USMC"], BIS_ACM] call BIS_ACM_setFactionsFunc;;
[["Russia"], BIS_ACM] call BIS_ACM_setFactionsFunc;
...Or something, right?
Please try:
[["USMC"], BIS_ACM] call BIS_ACM_setFactionsFunc;
The list of factions should be an Array of Strings :)
Okay, stupid question: It's the ["USMC"] part of [["USMC"], BIS_ACM] call BIS_ACM_setFactionsFunc that makes US forces spawn, right? So if I want the ACM to make me a battle with the USMC against Russia, I'll type:
[["USMC"], BIS_ACM] call BIS_ACM_setFactionsFunc;[["Russia"], BIS_ACM] call BIS_ACM_setFactionsFunc;[/I]
...Or something, right? :raisebrow:
Manzilla
Jun 4 2009, 17:52
Okay, stupid question: It's the ["USMC"] part of [["USMC"], BIS_ACM] call BIS_ACM_setFactionsFunc that makes US forces spawn, right? So if I want the ACM to make me a battle with the USMC against Russia, I'll type:
[["USMC"], BIS_ACM] call BIS_ACM_setFactionsFunc;[["Russia"], BIS_ACM] call BIS_ACM_setFactionsFunc;[/I]
...Or something, right? :raisebrow:
Maybe:
[["USMC","RU"], BIS_ACM] call BIS_ACM_setFactionsFunc;
Not sure though
EDIT:
Jesus I finally figured what something like this means after all this time.
//Pick from: USMC, CDF, RU, INS, GUE.
[<factions | Array of Strings>, <ACM reference | Object>] call BIS_ACM_setFactionsFunc;
Yes just enter the Array of strings here:
<factions | Array of Strings>
so
["USMC", "CDF", "RU"]
then this
<ACM reference | Object>
you put
BIS_ACM- (which in this case is simply referencing the ACM Module itself. Not really sure in what instance you'd use an object or what "ACM reference" really means in this case.)
So it should look like this in the end if you want to have combat between US and CDF vs. RU:
[["USMC", "CDF", "RU"], BIS_ACM] call BIS_ACM_setFactionsFunc;
Hopefully this is correct
petteerr
Jun 4 2009, 17:58
[["USMC"], BIS_ACM] call BIS_ACM_setFactionsFunc;
I have tried just this but spawn blufor and opfor as weell :((bmp2green,and mi8red)in a test! One rifleman with nothing around
whats wrong??
How to spawn only infantry?
trini scourge
Jun 4 2009, 18:02
Alright, I'm getting it. But is that spawn distance the distance the units will spawn from me or from the ACM gamelogic? I guess that's what's confusing me. It seems a little silly to have stuff spawning 1 to 10m away from the player. Plus when playing the missions and campaign I never saw anything that close to me.
The default values are much higher. is an example that schaefsky used for testing purposes.
[B][MY_ACM, 500, 800] would be much more appropriate.
As far as I can tell, since the Module is synchronized to a group/unit, spawns occur in the specified vicinity of the synchronized group/unit, and not the location of the logic itself.
If that still confuses you, you can always use the name of a synchronized unit instead of the logic as the reference object.
Example: [player, 500, 800]
Manzilla
Jun 4 2009, 18:16
The default values are much higher. is an example that schaefsky used for testing purposes.
[B][MY_ACM, 500, 800] would be much more appropriate.
As far as I can tell, since the Module is synchronized to a group/unit, spawns occur in the specified vicinity of the synchronized group/unit, and not the location of the logic itself.
If that still confuses you, you can always use the name of a synchronized unit instead of the logic as the reference object.
Example: [player, 500, 800]
Hey thanks a lot trini. I completely understand it now. I was thinking 1/10 were the absolute min/max. Your settings are more what I wanted. It took me a while but you've explained it very well. Thanks.
Jesus I finally figured what something like this means after all this time.
//Pick from: USMC, CDF, RU, INS, GUE.
[<factions | Array of Strings>, <ACM reference | Object>] call BIS_ACM_setFactionsFunc;
Yes just enter the Array of strings here:
<factions | Array of Strings>
so
["USMC", "CDF", "RU"]
then this
<ACM reference | Object>
you put
BIS_ACM- (which in this case is simply referencing the ACM Module itself. Not really sure in what instance you'd use an object or what "ACM reference" really means in this case.)
So it should look like this in the end if you want to have combat between US and CDF vs. RU:
[["USMC", "CDF", "RU"], BIS_ACM] call BIS_ACM_setFactionsFunc;
Hopefully this is correct
trini scourge
Jun 4 2009, 18:16
For those that still need help with getting it to work, copy and paste this into your mission's "init.sqf", and change whatever you need to.
waitUntil {!isNil {BIS_ACM getVariable "initDone"}};
waitUntil {BIS_ACM getVariable "initDone"};
//Sets frequency and number of patrols (0-1). BIS_ACM is module name
[1, BIS_ACM] call BIS_ACM_setIntensityFunc;
//min max spawn distance
[BIS_ACM, 300, 600] call BIS_ACM_setSpawnDistanceFunc;
//factions to be spawned
[["USMC", "RU"], BIS_ACM] call BIS_ACM_setFactionsFunc;
//Skill range for spawned units
[0, 0.6, BIS_ACM] call BIS_ACM_setSkillFunc;
//Amount of ammo spawned units possess
[0.2, 0.5, BIS_ACM] call BIS_ACM_setAmmoFunc;
//Type of patrol. With 0 meaning no chance of appearing, and 1 meaning 100% chance. -1 removes patrol type completely.
["ground_patrol", 1, BIS_ACM] call BIS_ACM_setTypeChanceFunc;
["air_patrol", 0, BIS_ACM] call BIS_ACM_setTypeChanceFunc;
Manzilla
Jun 4 2009, 18:32
Beautiful. Thanks a lot trini.
petteerr
Jun 4 2009, 19:20
Trini_scourge,
If we want to use support for 2 fanctions with different intensity values..etc?
Thanks for example trini
Can we actually use "this synchronizeObjectsAdd allUnits" instead of F5 ?
Can we actually use "this synchronizeObjectsAdd allUnits" instead of F5 ?
Yes, but be quick, because you only have 0.5 seconds to synchronize this way ... after that the ACM will evaluate which group is synced to it.
Thanks for the assistance trini ;)
trini scourge
Jun 4 2009, 20:33
Trini_scourge,
If we want to use support for 2 fanctions with different intensity values..etc?
Sorry petteerr, I have no idea. We will have to wait for DNA to answer that question.
Thanks for the assistance trini ;)
No problem :cool:
Manzilla wrote:
[["USMC", "CDF", "RU"], BIS_ACM] call BIS_ACM_setFactionsFunc;
Hopefully this is correct
But then petteerr wrote:
[["USMC"], BIS_ACM] call BIS_ACM_setFactionsFunc;
I have tried just this but spawn blufor and opfor as weell (bmp2green,and mi8red)in a test! One rifleman with nothing around
whats wrong??
...So then what Manzilla posted wasn't correct, after all, or...? :confused:
trini scourge
Jun 4 2009, 21:25
...So then what Manzilla posted wasn't correct, after all, or...? :confused:
They are both correct, but afaik cannot be used in the INIT field (which is what I assume peterr is referring to).
For those that still need help with getting it to work, copy and paste this into your mission's "init.sqf", and change whatever you need to.
waitUntil {!isNil {BIS_ACM getVariable "initDone"}};
waitUntil {BIS_ACM getVariable "initDone"};
//Sets frequency and number of patrols (0-1). BIS_ACM is module name
[1, BIS_ACM] call BIS_ACM_setIntensityFunc;
//min max spawn distance
call BIS_ACM_setSpawnDistanceFunc;
//factions to be spawned
[B][["USMC", "RU"], BIS_ACM] call BIS_ACM_setFactionsFunc;
//Skill range for spawned units
[0, 0.6, BIS_ACM] call BIS_ACM_setSkillFunc;
//Amount of ammo spawned units possess
[0.2, 0.5, BIS_ACM] call BIS_ACM_setAmmoFunc;
//Type of patrol. With 0 meaning no chance of appearing, and 1 meaning 100% chance. -1 removes patrol type completely.
["ground_patrol", 1, BIS_ACM] call BIS_ACM_setTypeChanceFunc;
["air_patrol", 0, BIS_ACM] call BIS_ACM_setTypeChanceFunc;
As you can see it is used as part of a broader script (in this case, init.sqf), so using the command on it's own will probably do nothing.
Uh-huh... :raisebrow:
But then, if you want to use the actual GL itself rather than having to go through making a whole init.sqf file about it, you must write something else?
Manzilla
Jun 4 2009, 21:55
Uh-huh... :raisebrow:
But then, if you want to use the actual GL itself rather than having to go through making a whole init.sqf file about it, you must write something else?
I think you can just put
[["USMC", "RU"], BIS_ACM] call BIS_ACM_setFactionsFunc;
in to the init line of the ACM GL.
trini scourge
Jun 4 2009, 22:12
St!gar, the script is useful for those who want more control over the module. If copy and pasting the code is too much work for you, then you are probably just going to have to do it the easier way (by just syncing the module).
OR
just do these 5 easy steps:
1.) New mission, in the mission create the player/group
2.) Place Combat Module, name it BIS_ACM (for the sake of simplicity)
3.) Save Mission
4.) Go to- My Documents/Arma2/missions, open your mission folder
5.) Create ordinary txt file, paste code supplied earlier, Save As "init.sqf"
Play.
5 mins and 5 easy steps == almost total control of the module.
I put comments above every line of code explaining what each does. Just change the values to suit your needs.
If this is too much, then you may have to wait for DNA's example missions and instructions.
St!gar, the script is useful for those who want more control over the module.
Well, I don't really feel like I need lots and lots of control over everything it does. That's kind of the whole point. But the few, incredibly basic things I want to be able to control, I want to be able to do on the spot. Things like which factions and where they spawn. Maybe - maybe at times the density level. But that's all. If I have some very specific ideas and needs lots of control over what's going on, I'd probably not use the ACM in the first place.
I just want to be able to dump it into the editor, tinker with the values and press "Preview". Not be dependant on copying an init.sqf into the mission folder every time I want to use it in a mission.
That's pretty much where I stand. It's not like I'm in any way opposed to doing it your way, I had just hoped it would be a simpler, more user-friendly way to do it. :) If I hadn't known about this forum, for example, I would be pretty much boned. I can imagine myself randomly trying the ACM in the Editor, realising that it's cool, but also that I don't want every battle to be a batshit insane chaos; spawning absolutely every faction at once in a giant, largely unrealistic six-way mêlée, the way the ACM supposedly works un-edited. So I'd try to modify the GL on the spot, but seeing as I'd have no idea how to do it, I wouldn't ever in practice actually find any use for the ACM. And that would be too bad.
CarlGustaffa
Jun 5 2009, 01:37
But the few, incredibly basic things I want to be able to control, I want to be able to do on the spot.
You can, those things are set in the editor.
ACM is not an "incredibly basic thing".
You could possibly do a code spawn directly from the editor instead of from the init.sqf, but that would look much more ugly and hard to edit.
You simply can't do advanced stuff like ACM, while being reluctant to learn about it.
Also, if you don't want to set values now, believe me later you want to set more than it supports. The rest of us want's this.
I agree completely that by having low level scripting control over modules and other aspects one has far more flexibilty in mission creation.
However, these aspects must be fully documented or you relegate complex mission creation to a very small population.
Engineering Mantra:
"The job isn't finished until the paperwork is complete."
Akilez
])rStrangelove
Jun 5 2009, 05:50
Imo you don't need to use predefined BIS scripts like the ACM for 'complex mission creation'. The editor can help you making good missions without using scripts at all, but...
Like with every other TOOL you need to LEARN in order to get basic UNDERSTANDING how to use it. Don't rely on the ACM or any other script to make a mission for you.
And you (still) need a good idea for a good mission. A TOOL DOESN'T MAKE YOU CREATIVE. :)
Charliereddog
Jun 5 2009, 06:26
I don't think I've ever created a "proper" mission (not me vs the whole world messabout in the editor:)) without having an init file of some sort.
Could you not nest the required commands in an init field somewhere in the editor? It'd be a right mess, but I think it would work. (Ah, I think that's what Carl's saying.)
Amazing!
This is exactlly what i wanted. :) And for anyone who thinks its annoying to copy an INIT.SQF to the mission folder...? Cmon. Do you know what we had to do before this?
Just have a copy of this INIT.SQF in the "scripts" folder inside the profiles folder. That way you can just copy it into whatever missions your working on and change the variables. To be honest it isnt much variables to change. Just wich sides should be needed to change - maybe - and distances should be most often the same so no need to change that. you can even make 3 different init's with different ranges/sides so just pick the one you need. All you need to do then is to move 1 file to your mission folder. Not really hard is it.
Really great work BIS.
Alex
])rStrangelove
Jun 5 2009, 07:11
You can write single commands into init fields, it's the same as putting them into a script. Problem is you can't do wicked stuff like loops. Well ok apart from the 'forEach' command , which is kind of a loop too.
Init fields are what they name suggests: you can manipulate variables on the unit/object when it's initialized, but that's all. Typically you would only do that when you can't edit a variable through the object dialog directly or you want to easy workload by passing command to a whole group of units ("commands _X" foreach units group this) etc etc.
Init fields are NOT like scripts.
I agree completely that by having low level scripting control over modules and other aspects one has far more flexibilty in mission creation.
However, these aspects must be fully documented or you relegate complex mission creation to a very small population.
I think that was kind of the point I was going for...
Init fields are what they name suggests: you can manipulate variables on the unit/object when it's initialized, but that's all. Typically you would only do that when you can't edit a variable through the object dialog directly or you want to easy workload by passing command to a whole group of units ("commands _X" foreach units group this) etc etc.
Init fields are NOT like scripts.
Aah...
CarlGustaffa
Jun 5 2009, 10:32
Init fields are NOT like scripts.
Actually, if you spawn someting in there, I think you can do pretty much anything. It won't look pretty though :) I know in Arma1 I did basic ifs, labelling, and loops within an init field if I started the whole mess using spawn.
But due to sheer uglyness, I wouldn't reccomend it :D
As for documentation, I think the devs already said they're working on it. High level (easy to use interface) is not there, and I don't think it will be. Takes too long to develop, and forces are spent fixing things. And frankly, I don't think the engine supports it for the 2D editor.
petteerr
Jun 5 2009, 15:29
so saying...
did anybody managed to use support for two fanctions with different values??
anyone...??
I tried this with two acm modules(one init sqf)
waitUntil {!isNil {BIS_ACM getVariable "initDone"}};
waitUntil {BIS_ACM getVariable "initDone"};
//Sets frequency and number of patrols (0-1). BIS_ACM is module name
[1, BIS_ACM] call BIS_ACM_setIntensityFunc;
//min max spawn distance
[BIS_ACM, 40, 80] call BIS_ACM_setSpawnDistanceFunc;
//factions to be spawned
[["USMC"], BIS_ACM] call BIS_ACM_setFactionsFunc;
//Skill range for spawned units
[0, 0.6, BIS_ACM] call BIS_ACM_setSkillFunc;
//Amount of ammo spawned units possess
[0.2, 0.5, BIS_ACM] call BIS_ACM_setAmmoFunc;
//Type of patrol. With 0 meaning no chance of appearing, and 1 meaning 100% chance. -1 removes patrol type completely.
["ground_patrol", 0, BIS_ACM] call BIS_ACM_setTypeChanceFunc;
["air_patrol", 0, BIS_ACM] call BIS_ACM_setTypeChanceFunc;
waitUntil {!isNil {BISS_ACM getVariable "initDone"}};
waitUntil {BISS_ACM getVariable "initDone"};
//Sets frequency and number of patrols (0-1). BISS_ACM is module name
[1, BISS_ACM] call BISS_ACM_setIntensityFunc;
//min max spawn distance
[BISS_ACM, 40, 80] call BISS_ACM_setSpawnDistanceFunc;
//factions to be spawned
[["RU"], BISS_ACM] call BISS_ACM_setFactionsFunc;
//Skill range for spawned units
[0, 0.6, BISS_ACM] call BISS_ACM_setSkillFunc;
//Amount of ammo spawned units possess
[0.2, 0.5, BISS_ACM] call BISS_ACM_setAmmoFunc;
//Type of patrol. With 0 meaning no chance of appearing, and 1 meaning 100% chance. -1 removes patrol type completely.
["ground_patrol", 1, BISS_ACM] call BISS_ACM_setTypeChanceFunc;
["air_patrol", 0, BISS_ACM] call BISS_ACM_setTypeChanceFunc;
but it didnt worked.
Manzilla
Jun 5 2009, 16:43
waitUntil {!isNil {BISS_ACM getVariable "initDone"}};
waitUntil {BISS_ACM getVariable "initDone"};
//Sets frequency and number of patrols (0-1). BISS_ACM is module name
[1, BISS_ACM] call BISS_ACM_setIntensityFunc;
//min max spawn distance
[BISS_ACM, 40, 80] call BISS_ACM_setSpawnDistanceFunc;
//factions to be spawned
[["RU"], BISS_ACM] call BISS_ACM_setFactionsFunc;
//Skill range for spawned units
[0, 0.6, BISS_ACM] call BISS_ACM_setSkillFunc;
//Amount of ammo spawned units possess
[0.2, 0.5, BISS_ACM] call BISS_ACM_setAmmoFunc;
//Type of patrol. With 0 meaning no chance of appearing, and 1 meaning 100% chance. -1 removes patrol type completely.
["ground_patrol", 1, BISS_ACM] call BISS_ACM_setTypeChanceFunc;
["air_patrol", 0, BISS_ACM] call BISS_ACM_setTypeChanceFunc;
but it didnt worked.
Are the "SS" in "BISS" suppose to be like that?
petteerr
Jun 5 2009, 16:54
Yes its the name of the second moduler i use!
ACM=BIS(1ST Module on map)f5 with one rifleman bluefor
ACM=BISS(2ND module on map)f5 with one rifleman opfor
Its like the program see only the first module...or what?
I also tried to make a new initT with the second module(lines) again nothing...
schaefsky
Jun 5 2009, 17:32
I think the failure might be you are calling a function named "BISS_ACM_setSpawnDistanceFunc", which will most probably not exist.
"BIS_ACM_setSpawnDistanceFunc" should exist, I am not sure though.
The first part "BIS_ACM_" is part of the function name which has nothing todo with the varible name.
"BIS_ACM_setSpawnDistanceFunc" and logic called "BIS_ACM" would just be a coincidence, more or less.
Offtopic:
From experience I can only strongly recommend to not do something like:
BIS_ACM = something;
BISS_ACM = something_else;
The difference in this variable names is really hard to spot, which makes debugging very hard.
Consider this, there's an "error" in both codes, which one is easier to spot by just skimming over it?
waitUntil {!isNil {BISS_ACM getVariable "initDone"}};
waitUntil {BISS_ACM getVariable "initDone"};
//Sets frequency and number of patrols (0-1). BISS_ACM is module name
[1, BISS_ACM] call BIS_ACM_setIntensityFunc;
//min max spawn distance
[BIS_ACM, 40, 80] call BIS_ACM_setSpawnDistanceFunc;
//factions to be spawned
[["RU"], BISS_ACM] call BIS_ACM_setFactionsFunc;
//Skill range for spawned units
[0, 0.6, BISS_ACM] call BIS_ACM_setSkillFunc;
//Amount of ammo spawned units possess
[0.2, 0.5, BISS_ACM] call BIS_ACM_setAmmoFunc;
//Type of patrol. With 0 meaning no chance of appearing, and 1 meaning 100% chance. -1 removes patrol type completely.
["ground_patrol", 1, BISS_ACM] call BIS_ACM_setTypeChanceFunc;
["air_patrol", 0, BISS_ACM] call BIS_ACM_setTypeChanceFunc;
and this:
waitUntil {!isNil {BIS_ACM_2 getVariable "initDone"}};
waitUntil {BIS_ACM_2 getVariable "initDone"};
//Sets frequency and number of patrols (0-1). BISS_ACM is module name
[1, BIS_ACM_2] call BIS_ACM_setIntensityFunc;
//min max spawn distance
[BIS_ACM, 40, 80] call BIS_ACM_setSpawnDistanceFunc;
//factions to be spawned
[["RU"], BIS_ACM_2] call BIS_ACM_setFactionsFunc;
//Skill range for spawned units
[0, 0.6, BIS_ACM_2] call BIS_ACM_setSkillFunc;
//Amount of ammo spawned units possess
[0.2, 0.5, BIS_ACM_2] call BIS_ACM_setAmmoFunc;
//Type of patrol. With 0 meaning no chance of appearing, and 1 meaning 100% chance. -1 removes patrol type completely.
["ground_patrol", 1, BIS_ACM_2] call BIS_ACM_setTypeChanceFunc;
["air_patrol", 0, BIS_ACM_2] call BIS_ACM_setTypeChanceFunc;
Its like the program see only the first module...or what?
Yes, I'm afraid only one ACM per group is currently allowed. The second one is ignored. The only way to have different settings for different factions currently would be to create a custom pool of group classes.
The ACM pulls its groups from CfgGroups, which is the same place the mission editor loads its groups from when you use F2 to place one. In these groups a value is defined (rarity) which controls how likely that group is. By default the ACM uses the entire set of groups. You can create a custom list by using the functions listed earlier, but you would have to know the class names ... again: more info on the way.
CarlGustaffa
Jun 5 2009, 19:56
So a 2 man sniper team is/can be less frequent than a fireteam or squad? Brilliant!
])rStrangelove
Jun 5 2009, 20:46
So, if i only want Infantry to spawn i use:
[this, ["Motorized", "Mechanized", "Armored","Air"]] call BIS_ACM_removeGroupClassesFunc;
right? Because that would remove all those GrpTypes ?
[EDIT] Oh btw,
i managed to get the ACM to work when you put this into the init field:
waitUntil {!isNil {this getVariable "initDone"}};
waitUntil {this getVariable "initDone"};
[1, this] call BIS_ACM_setIntensityFunc;
[this, 300, 500] call BIS_ACM_setSpawnDistanceFunc;
[["USMC", "RU"], this] call BIS_ACM_setFactionsFunc;
[0.4, 0.8, this] call BIS_ACM_setSkillFunc;
[0.2, 0.5, this] call BIS_ACM_setAmmoFunc;
["ground_patrol", 1, this] call BIS_ACM_setTypeChanceFunc;
this in this case refers to the object itself, so no need to give the Logic a name.
trini scourge
Jun 5 2009, 21:25
Tried your method Strangelove...it doesn't work.
I used:
waitUntil {!isNil {this getVariable "initDone"}};
waitUntil {this getVariable "initDone"};
[1, this] call BIS_ACM_setIntensityFunc;
[this, 30, 50] call BIS_ACM_setSpawnDistanceFunc;
[["USMC"], this] call BIS_ACM_setFactionsFunc;
[0.4, 0.8, this] call BIS_ACM_setSkillFunc;
[0.2, 0.5, this] call BIS_ACM_setAmmoFunc;
["ground_patrol", 1, this] call BIS_ACM_setTypeChanceFunc;
After 5 mins I was killed by a squadron of two KA52s, which should not be possible with the parameters used.
Manzilla
Jun 5 2009, 21:34
So a 2 man sniper team is/can be less frequent than a fireteam or squad? Brilliant!
No doubt. Every time DnA comes around and posts about this I get the feeling that my jaw is gonna hit the desk when this documentation comes out. I have a feeling there's so much good stuff these modules can do and currently we haven't even scratched with what we know about the possibilities.
I'm excited to see what comes.
])rStrangelove
Jun 5 2009, 21:35
Hmm maybe we also need to deactivate the air_patrols, like this:
["air_patrol",-1, this] call BIS_ACM_setTypeChanceFunc;
I can't check now, off to bed. NN everyone :D
)rStrangelove;1300110']So, if i only want Infantry to spawn i use:
[this, ["Motorized", "Mechanized", "Armored","Air"]] call BIS_ACM_removeGroupClassesFunc;
right? Because that would remove all those GrpTypes ?
Returns a error :(
/*type must be one of "", "ground_patrol", "air_patrol".
And that's all? Only 2 types?
trini scourge
Jun 5 2009, 23:38
What other type of patrol is there? According to what DNA said, you will be able to add custom CfgGroup lists that could include or exclude whatever you want.
])rStrangelove
Jun 6 2009, 06:36
If you take a look into the dePBOed dir structure at modules\ambient_combat\data\scripts you will find there are 3 scripts: air_drop.sqf, air_patrol.sqf and ground_patrol.sqf.
Seems like air_drop.sqf was planned to be in the 1.00 release, but it's empty. I guess we get more with the next patch.
There's also the init.sqf which tells us how to register(sync) a group with an ACM object:
BIS_ACM setVariable ["grp", group player];
{_x setVariable ["acm", BIS_ACM];} forEach (units group player);
Not tested yet, but i guess that's how you could sync an ACM with the player group dynamically in a mission at any time. For example, once you reach an enemy territory. Should come in handy.
[EDIT]
Ok, it seems BIS_ACM_removeGroupClassesFunc and BIS_ACM_addGroupClassesFunc work only with the CUSTOM pool of group classes, means the groups you made up in your own class definition file.
This only works with scripting, can't be done with pasting txt into an init field alone.
CarlGustaffa
Jun 6 2009, 10:49
What other type of patrol is there? According to what DNA said, you will be able to add custom CfgGroup lists that could include or exclude whatever you want.
Foot Patrol, Motorized Patrol, Armored Patrol, and Sea Patrol? :) Search Patrol even (kind of foot patrol). Probably other means of setting this up though.
Btw, how does an air patrol work? Do they constantly patrol the area like i.e. how Domination was setup, or for a limited amount of time?
trini scourge
Jun 6 2009, 14:13
Foot Patrol, Motorized Patrol, Armored Patrol, and Sea Patrol? :) Search Patrol even (kind of foot patrol). Probably other means of setting this up though.
Btw, how does an air patrol work? Do they constantly patrol the area like i.e. how Domination was setup, or for a limited amount of time?
Wouldn't all these be variations of ground patrol? (except for Sea Patrol of course). With the ability to add custom groups to the pool, it would be relatively easy to set up any of the variations you mentioned.
With Air Patrol they patrol the area for a random amount of time:
//Give this patrol a random lifetime.
private ["_lifetimes"];
_lifetimes = _acm getVariable "patrolLifetimes";
_lifetimes = _lifetimes + [time + (60 + (random 120))];
_acm setVariable ["patrolLifetimes", _lifetimes];
EDIT: Strangelove, this would not work?
[My_ACM, ["Infantry"] call BIS_ACM_addGroupClassesFunc;
Quick question: On the default settings, before the player modifies it, the ACM spawns patrols from all five factions, right? Are those factions all fighting each other, (USMC vs Russia vs NAPA vs CDF vs ChDKZ vs USMC, for example.), or are some of them allied to each other? USMC+CDF and Russia+ChDKZ, for example?
trini scourge
Jun 7 2009, 19:10
Quick question: On the default settings, before the player modifies it, the ACM spawns patrols from all five factions, right? Are those factions all fighting each other, (USMC vs Russia vs NAPA vs CDF vs ChDKZ vs USMC, for example.), or are some of them allied to each other? USMC+CDF and Russia+ChDKZ, for example?
BLUFOR (USMC+CDF) VS OPFOR (INS + RU)
Who NAPA fights would be determined by mission settings.
Aah. By choosing which side the Resistance -faction is friendly to, like in OFP and ArmA 1, I assume? But then what happens if the Resistance side - I assume that's NAPA - is set to be friendly to everyone? :confused:
silly question. but when synchronizing i push f5 and then drag a line from the ambient combat module to me.
is that all i need to do as nothing happens after?
])rStrangelove
Jun 8 2009, 17:10
No, you need to initialize parameters of the ACM object.
You can do that by pasting commands into a txtfile named 'init.sqf' and save it into the directory of your mission.
Or you try & put this into the init field of the ACM object:
waitUntil {!isNil {BIS_ACM getVariable "initDone"}};
waitUntil {BIS_ACM getVariable "initDone"};
[1, BIS_ACM] call BIS_ACM_setIntensityFunc;
[BIS_ACM, 300, 600] call BIS_ACM_setSpawnDistanceFunc;
[["USMC", "RU"], BIS_ACM] call BIS_ACM_setFactionsFunc;
[0, 0.6, BIS_ACM] call BIS_ACM_setSkillFunc;
[0.2, 0.5, BIS_ACM] call BIS_ACM_setAmmoFunc;
["ground_patrol", 1, BIS_ACM] call BIS_ACM_setTypeChanceFunc;
)rStrangelove;1303601']No, you need to initialize parameters of the ACM object.
thanks man!
edit.
it works. easy. but all that spawn are helicopters even though it says ground patrol in the text. funny that - seems more info is being put on the arma biki so that should illluminate things a bit more.
I'd like to see newly created squads - sometimes - be introduced by a helicopter so the squad will a) land and eject (normal squads) or b) paradrop (special squads like Speznaz) at a random location.
Ok, it's called `Ambient` Combat Module. But still: what about an option/toggle for `Direct` Combat? By this I mean random generated squads heading for your location or even following you. A Squad, transported by an Ural, heading in your direction and stuff like this. Or there could be `ambient` enemy spotters: the moment such a unit spots your squad, `direct` units will be generated, heading towards you :D
Also, since such a spotter has to radio his HQ. there should be a chance that your HQ (or other friendlies) will intercept that radio-call and thus your squad will be warned by your HQ (information about direction of the attack, number/type of enemies, etc.). Sounds like fun, ehy?
HyperWeaseL
Jun 9 2009, 20:36
72;1299000']Amazing!
Just have a copy of this INIT.SQF in the "scripts" folder inside the profiles folder. That way you can just copy it into whatever missions your working on and change the variables.
Really great work BIS.
Alex
"scripts" folder inside the profiles folder !? whot scripts folder:confused:
Cyborg11
Jun 9 2009, 22:01
"scripts" folder inside the profiles folder !? whot scripts folder:confused:
He created a new folder called "scripts" :D
])rStrangelove
Jun 9 2009, 22:08
Yeah, as an example. What he meant was to gather all your template scripts in a nearby folder underneath ArmA2, so that copying them into your various mission folders isn't that much of an issue.
HyperWeaseL
Jun 9 2009, 23:27
ok thanks.
is there a way to respawn and still have the ACM linked to the player! and how do you respawn like in mp or is it that when you get shot you just start over againe.
])rStrangelove
Jun 10 2009, 04:58
No, you don't normally respawn just like that. You have to specify respawns in the description.ext file in your mission directory. (Respawn delay, respawn as bird or team member etc things like that)
The description.ext tutorials for ArmA1 can still be used, just use search.
HyperWeaseL
Jun 10 2009, 11:15
ok thanks :)
S!fkaIaC
Jun 10 2009, 21:25
I am not sure, but it looks that it is easier to use DAC then ACM if you want to get a lot of control and customization over "what spawns when".
Not just F5 and done.
To me ACM makes only sense for game-style missions. Mainly COOP. Or maybe crCTI could utilize it to spawn random Resistance to pester both sides.
Cyborg11
Jun 10 2009, 23:16
You can get a lot of control over ACM :)
Copy this in your init.sqf and change the values if you want :)
waitUntil {!isNil {BIS_ACM getVariable "initDone"}};
waitUntil {BIS_ACM getVariable "initDone"};
//Sets frequency and number of patrols (0-1). BIS_ACM is module name
[1, BIS_ACM] call BIS_ACM_setIntensityFunc;
//min max spawn distance
[BIS_ACM, 300, 600] call BIS_ACM_setSpawnDistanceFunc;
//factions to be spawned
[["RU","USMC"], BIS_ACM] call BIS_ACM_setFactionsFunc;
//Skill range for spawned units
[0, 0.6, BIS_ACM] call BIS_ACM_setSkillFunc;
//Amount of ammo spawned units possess
[0.2, 0.5, BIS_ACM] call BIS_ACM_setAmmoFunc;
//Type of patrol. With 0 meaning no chance of appearing, and 1 meaning 100% chance. -1 removes patrol type completely.
["ground_patrol", 1, BIS_ACM] call BIS_ACM_setTypeChanceFunc;
["air_patrol", 1, BIS_ACM] call BIS_ACM_setTypeChanceFunc;
Create ordinary txt file, paste code supplied earlier, Save As "init.sqf"
No, if I make a text-document and save it as "init.sqf", it does not change filetype. It's still a Notepad-document, even though i's named "init.sqf". Am I doing something wrong? :confused:
S!fkaIaC
Jun 11 2009, 03:04
In windows it shows you just that notepad is the current defined application to open .sqf files. Nothing else.
Maddmatt
Jun 11 2009, 03:06
No, if I make a text-document and save it as "init.sqf", it does not change filetype. It's still a Notepad-document, even though i's named "init.sqf". Am I doing something wrong? :confused:
Probably because you have windows set to hide file extensions.
When u save a file in notepad you should have 2 lines. Filename and filetype, filetype is a rollout menu. Usually you have 2 choices. Save as TXT or All Files.
Choose all files and put .sqf at the end of your file and it will be a sqf file.
])rStrangelove
Jun 11 2009, 08:22
Probably because you have windows set to hide file extensions.
Yup, Matt is right. Your file actually is "init.sqf.txt" rather than "init.sqf", that's why ArmA2 can't recognize it.
Explorer->Folder Options, then unsign "Hide file extensions".
Generally i set this right after windows installation because it can be dangerous when working with files downloaded from the www. You could doubleclick on a jpg to view it, but in reality it could be "Watch_this_lol.jpg.exe" - and you have a problem. ;)
I am not sure, but it looks that it is easier to use DAC then ACM if you want to get a lot of control and customization over "what spawns when".
Not just F5 and done.
I agree. As long as not much has been documented about the modules, we're pretty much in the guessing phase. If you dePBO modules and navigate through various scripts you realize it's a lot of overhead in there. Overhead which uses CPU resources. This is needed to make the scripts safer for false parameters etc.
So in theory, performance wise you'd better to be off writing your own scripts for the mission that you're trying to make - as always.
I know i will try that at least. Lots of infos can be gathered from the module scripts though. 1 thing i've esp liked is how empty doors are spawned on houses and civilians are moved into cargo space. Great idea.
No, if I make a text-document and save it as "init.sqf", it does not change filetype. It's still a Notepad-document, even though i's named "init.sqf". Am I doing something wrong? :confused:
I think its better to use the ArmA Script Editor (http://www.assaultmissionstudio.de/downloads.php?page_id=74) from Chenderman. With this you can create sqs and sqf files very easy. ;)
BTT:
I found this in a script:
//ACM settings
[] spawn {
waitUntil {!(isnil "BIS_ACM_setAmmoFunc") && !(isnil "BIS_ACM_setSkillFunc") && !(isnil "BIS_ACM_addGroupClassesFunc")};
sleep 10;
[0.2, 0.8, BIS_ACM] call BIS_ACM_setAmmoFunc;
[0, 0.5, BIS_ACM] call BIS_ACM_setSkillFunc;
[BIS_ACM, ["INS_InfSquad", "INS_InfSquad_Weapons", "INS_SniperTeam", "INS_MilitiaSquad", "CDF_InfSection_Patrol", "CDF_SniperTeam", "CDF_MotInfSection"]] call BIS_ACM_addGroupClassesFunc;
};
I think we can choose any Inf groups with this. But i'm not sure!
schaefsky
Jun 11 2009, 16:16
No, if I make a text-document and save it as "init.sqf", it does not change filetype. It's still a Notepad-document, even though i's named "init.sqf". Am I doing something wrong? :confused:
There are two ways of doing it right:
Set the name to
"init.sqf" with the quotes. That way notepad will save with .sqf as exetension (or anything else you put in).
Or set the file type to All (*.*) and name the file "init.sqf" with or without quotes.
Nephris1
Jun 11 2009, 18:44
Hi folks,
looks like i am really to stupid!
I tried it via init.sqf nothing spawned
I tried it via entry into the init of the ACM Modul...2 Helicopter spawned!
But i still no troops around me.
Would it be possible that you can upload a simple working demo mission with the ACM modul, so i can check wth i am doin wrong plz?
Helmut_AUT
Jun 11 2009, 19:38
Same for me. I follow everthing by the book, and get nothing. maybe it just needs 5 to 10 minutes before spawning something?
twisted
Jun 11 2009, 19:50
did you name the ACM module in the editor the same as the name in the init.sqf? I forgot to do that after syncing the ACM module with a character.
maybe that makes a difference - not sure.
Helmut_AUT
Jun 11 2009, 20:33
Yep, that was it. And also I had tried Strangelove's suggestion, which actually works, but the configuration doesn't set. With the init.sqf and a properly named ACM, it's works great.
I can't really say how awesome this is. Most of my time making Spec Ops missions with realistic insertion and extraction (meaning, a lot of foot walking and carefull patrolling) was spent randomizing guards and patrols. Now you can simple slap the mission targets togehter, create an insertion transport and extraction, then have the modules fill out the island with civilians, animals, soldiers.
Nephris1
Jun 11 2009, 22:53
I named the module same as in the init.sqf and sny. via F5...as in Strangeloves example....
I am sure there is any stupid error i made but this is the 3rd evening i am trying to get it workin.
Strange thing, i got the helicopter working but no patrol crosses my way....
So Helmut after u go it working, and had the same prob, would u be so kind to make a demo for me plz.
Or set the file type to All (*.*) and name the file "init.sqf" with or without quotes.
Thanks. That worked. :)
Also, I'm kind of getting mixed messages, here. Does using the "init.sqf" work, or doesn't it? :confused:
I set up ACM using the guidelines in this thread, and it works really well. However, once I put it on a dedicated server it didn't run so well, or at all. Is ACM a single player only component?
*UPDATE*
I tested it some more on the dedicated server, and a friendly MI-8 flew by after a while so something is happening. However, that's also the bad news since I set the ACM to only spawn guerilla infantry groups. I'm using the following code to initiate ACM in the test mission:
// Ambient Combat Manager Settings
waitUntil {!isNil {BIS_ACM getVariable "initDone"}};
waitUntil {BIS_ACM getVariable "initDone"};
//Sets frequency and number of patrols (0-1). BIS_ACM is module name (set to maximum intensity)
[1, BIS_ACM] call BIS_ACM_setIntensityFunc;
//min max spawn distance (set to spawn between 20 and 60 meter away from the player)
[BIS_ACM, 20, 60] call BIS_ACM_setSpawnDistanceFunc;
//factions to be spawned (set to only spawn independents)
[["GUE"], BIS_ACM] call BIS_ACM_setFactionsFunc;
//Skill range for spawned units (set to skill ranges from 0.25 to 0.3)
[0.25, 0.3, BIS_ACM] call BIS_ACM_setSkillFunc;
//Amount of ammo spawned units possess (set to between half and full ammo for spawned units)
[0.5, 1.0, BIS_ACM] call BIS_ACM_setAmmoFunc;
//Passing an empty types Array will completely disable the custom database and switch back to the default. (list of allowed groups, taken from cfggroups)
[BIS_ACM, ["GUE_InfSquad", "GUE_InfSquad_Assault", "GUE_InfSquad_Weapons", "GUE_InfTeam_1", "GUE_InfTeam_2", "GUE_InfTeam_AT", "GUE_GrpInf_TeamAA", "GUE_GrpInf_TeamSniper", "GUE_MilitiaSquad"]] call BIS_ACM_addGroupClassesFunc;
//Type of patrol. With 0 meaning no chance of appearing, and 1 meaning 100% chance. -1 removes patrol type completely. (set to allow ground patrols, disallow air patrols)
["ground_patrol", 1, BIS_ACM] call BIS_ACM_setTypeChanceFunc;
["air_patrol", -1, BIS_ACM] call BIS_ACM_setTypeChanceFunc;
Heatseeker
Jun 12 2009, 15:33
Im not sure this will be good to populate worlds with, atleast not in MP.
For example if you want towns to be populated with civilians it only takes a few players to spread all over the map for this to spawn lots of units, lag and desync?
Still need to understand what these modules can do after the game arrives. It sounds just like a "light" version of DAC 2.
Kremator
Jun 12 2009, 16:13
Could someone please post a mission with all of this setup ?
Hi everyone !
Very interesting thread and very interesting features !
I've been able to test ACM within the editor, but haven't tested it on multiplayer though.
I've just got one question. I've uncompressed all the pbo files of the game and never found this cfggroups file.
Where can I find it ? So that I can select the spawning units.
Thanks by advance for the answer.
Best regards.
---------- Post added at 12:07 AM ---------- Previous post was Yesterday at 10:58 PM ----------
Ok.. I found them on stringtable.xml. Here they are. I would have liked to make a good looking table on the forum, but dunno how to do. So here they are :
usmc_motinfsection_at Motorized Section (AT)
usmc_motinfsection Motorized Section
usmc_motorized Motorized Infantry
usmc_mechreconsection Recon Section
usmc_mechinfsquad Mechanized Rifle Squad
usmc_mechanized Mechanized Infantry
usmc_sniperteam Sniper Team
usmc_infsquad Rifle Squad
usmc_heavyatteam Heavy AT Team
usmc_frteam_razor Razor Team
usmc_frteam Force Recon Team
usmc_fireteam_support Fire Team (Support)
usmc_fireteam_mg Fire Team (MG)
usmc_fireteam_at Fire Team (AT)
usmc_fireteam Fire Team
usmc_infantry Infantry
usmc_tankplatoon Tank Platoon
usmc_armored Armor
usmc_uh1ysquadron UH-1Y Squadron
usmc_mv22squadron MV-22 Squadron
usmc_mq9squadron MQ-9 Squadron
usmc_f35squadron F-35B Squadron
usmc_av8bfightersquadron AV-8B Fighter Squadron
usmc_av8bbombersquadron AV-8B Bomber Squadron
usmc_ah1zsquadron AH-1Z Squadron
usmc_air Air
cdf_motinfsquad Motorized Infantry Squad
cdf_motinfsection_weapons Motorized Weapons Section
cdf_motinfsection Motorized Infantry Patrol
cdf_motorized Motorized Infantry
cdf_mechreconsection Mechanized Recon Section
cdf_mechinfsquad Mechanized Rifle Squad
cdf_mechatsection Mechanized Recon Section (AT)
cdf_mechanized Mechanized Infantry
cdf_sniperteam Sniper Team
cdf_infsquad_weapons Weapons Squad
cdf_infsquad Infantry Squad
cdf_infsection_patrol Patrol
cdf_infsection_mg Infantry Section (MG)
cdf_infsection_at Infantry Section (AT)
cdf_infsection_aa Infantry Section (AA)
cdf_infantry Infantry
cdf_tankplatoon Tank Platoon
cdf_armored Armor
cdf_mi8squadron Mi-8 Squadron
cdf_mi24dsquadron Mi-24D Squadron
cdf_air Air
gue_motinfsquad Motorized Group
gue_motinfsection Technicals
gue_motorized Motorized Infantry
gue_mechinfsquad Mechanized Group
gue_mechinfsection Mechanized Patrol
gue_mechanized Mechanized Infantry
gue_militiasquad Militia
gue_infteam_at AT Team
gue_infteam_2 Patrol 2
gue_infteam_1 Patrol 1
gue_infsquad_weapons Group (Weapons)
gue_infsquad_assault Group (Assault)
gue_infsquad Group
gue_grpinf_teamsniper Sniper Team
gue_grpinf_teamaa AA Team
gue_infantry Infantry
gue_tanksection Tank Section
gue_armored Armor
ru_motinfsquad Motorized Infantry Squad
ru_motinfsection_recon Motorized Recon Section
ru_motinfsection_patrol Motorized Patrol
ru_motorized Motorized Infantry
ru_mechinfsquad_2 Motor Rifles (BTR)
ru_mechinfsquad_1 Motor Rifles (BMP)
ru_mechanized Mechanized Infantry
rus_reconteam Spetsnaz Team
ru_sniperteam Sniper Team
ru_infsquad Infantry Squad
ru_infsection_mg Infantry Section (MG)
ru_infsection_at Infantry Section (AT)
ru_infsection_aa Infantry Section (AA)
ru_infsection Infantry Section
ru_infantry_mvd_assaultteam MVD Assault Team
ru_infantry Infantry
ru_tankplatoon Tank Platoon
ru_armored Armor
ru_su34fightersquadron Su-34 Fighter Squadron
ru_su34cassquadron Su-34 CAS Squadron
ru_pchela1tsquadron Pchela-1T Squadron
ru_mi8squadron Mi-8 Squadron
ru_mi24vsquadron Mi-24V Squadron
ru_mi24psquadron Mi-24P Squadron
ru_ka52squadron Ka-52 Squadron
ru_air Air
ins_motinfsquad Motorized Group
ins_motinfsection Technicals
ins_motorized Motorized Infantry
ins_mechinfsquad Mechanized Group
ins_mechinfsection_at Mechanized Section (AT)
ins_mechinfsection Mechanized Patrol
ins_mechanized Mechanized Infantry
ins_sniperteam Sniper Team
ins_militiasquad Militia
ins_infsquad_weapons Weapons Group
ins_infsquad Group
ins_infsection_at AT Team
ins_infsection_aa AA Team
ins_infantry Infantry
ins_tanksection Tank Section
ins_armored Armor
ins_mi8squadron Mi-8 Squadron
ins_air Air
civ_village_2 Village People 2
civ_village_1 Village People 1
civ_crowd Crowd
civ_city_2 City People 2
civ_city_1 City People 1
civ_infantry Civilian Groups
---------- Post added at 01:50 AM ---------- Previous post was at 12:07 AM ----------
Ok... sorry for the flood..
I've tried calling BIS_ACM_addGroupClassesFunc with some group strings I found in cfggroups. For example :
[BIS_ACM,["usmc_infantry"]] call BIS_ACM_addGroupClassesFunc;
... and then nothing spawns with ACM.
When I try to call BIS_ACM_removeGroupClassesFunc like this :
[BIS_ACM,["usmc_armored","usmc_tankplatoon","usmc_motinfsection_at","usmc_motinfsection","usmc_motorized","usmc_mechreconsection","usmc_mechinfsquad","usmc_mechanized"]] call BIS_ACM_removeGroupClassesFunc;
those units still spawn.
What I conclude is that the functions might work well as no unit spawned with the BIS_ACM_addGroupClassesFunc command.
So :
I may not use the right cfggroups strings,
I may have to create my own group database thanks to an addon... but it hope it won't be necessary
The functions may be bugged
I may be silly !
Could you please give us more details about the strings demanded by these functions ?
Thanks by advance.
Ambient Combat Manager - Functions at BIS Wiki (http://community.bistudio.com/wiki/Ambient_Combat_Manager_-_Functions)
Take a look ^^
Duke49th
Jun 17 2009, 02:33
Hi, I'm a noob with scripting stuff.
So could anyone please show me the correct syntax for the following line:
[<ACM reference | Object>, <types | Array of Arrays and / or Markers and / or triggers>] call BIS_ACM_blacklistAreaFunc;
Thx alot :)
Edit: I think I got it:
[[BIS_ACM], BIS_ACM_1] call BIS_ACM_blacklistAreaFunc;
Helmut_AUT
Jun 18 2009, 13:12
Duke, if you want to exclude an area from ACM, the Wiki simple says:
"You may place markers with a special naming pattern BIS_ACM_X (where X has to start at 1 and may not skip any numbers). The areas defined by these markers are automatically blacklisted and the markers deleted."
Sounds easier than calling a function.
Duke49th
Jun 18 2009, 19:01
Duke, if you want to exclude an area from ACM, the Wiki simple says:
"You may place markers with a special naming pattern BIS_ACM_X (where X has to start at 1 and may not skip any numbers). The areas defined by these markers are automatically blacklisted and the markers deleted."
Sounds easier than calling a function.
Yeah, I overread that. Thx.
Another question:
How can I delay the Module. So that it starts to work after, let's say 10 minutes?
sleep 600 in the Init doesn't work.
*TCF*Jackal
Jun 19 2009, 22:53
Yes, a sample mission for us noobs would be splendid.....hint hint :)
Hmm, i tested it today and it seems to work, but i'm not 100% sure.
waitUntil {!isNil {BIS_ACM getVariable "initDone"}};
waitUntil {BIS_ACM getVariable "initDone"};
sleep 600;
//Sets frequency and number of patrols (0-1). BIS_ACM is module name
[1, BIS_ACM] call BIS_ACM_setIntensityFunc;
//min max spawn distance
[BIS_ACM, 300, 600] call BIS_ACM_setSpawnDistanceFunc;
//factions to be spawned
[["GUE","RU"], BIS_ACM] call BIS_ACM_setFactionsFunc;
//Skill range for spawned units
[0.4, 0.8, BIS_ACM] call BIS_ACM_setSkillFunc;
//Amount of ammo spawned units possess
[0.4, 0.8, BIS_ACM] call BIS_ACM_setAmmoFunc;
//Type of patrol. With 0 meaning no chance of appearing, and 1 meaning 100% chance. -1 removes patrol type completely.
["ground_patrol", 1, BIS_ACM] call BIS_ACM_setTypeChanceFunc;
["air_patrol", 0, BIS_ACM] call BIS_ACM_setTypeChanceFunc;
I wanted to see how the ambient modules worked, so I could easily populate a town with random civilians and whatnot but it doesn't seem to be working as well as I hoped. I placed the civvie module down in the editor and myself next to it, then hit preview. I did see one civilian wander by but he was it and the town was empty.
I then tried out the ambient combat module as per these instructions (http://community.bistudio.com/wiki/Ambient_Combat_Manager)
1. Place at least one unit in your mission.
2. Place an ACM near this unit (F1 > Side: Game Logic > Class: Modules > Unit: Ambient Combat).
3. Synchronize the unit with the ACM (F5 > drag a line between the two objects).
4. Preview the mission and enjoy!
I did exactly that (this time being sure to sync the logic with myself) and saw nothing aside from one enemy helicopter fly past about five minutes after start. I realize it is supposed to take a bit of time to populate, but am I doing something wrong? How long before I should start seeing enemy infantry and what not?
DMarkwick
Jun 20 2009, 19:58
I wanted to see how the ambient modules worked, so I could easily populate a town with random civilians and whatnot but it doesn't seem to be working as well as I hoped. I placed the civvie module down in the editor and myself next to it, then hit preview. I did see one civilian wander by but he was it and the town was empty.
I then tried out the ambient combat module as per these instructions (http://community.bistudio.com/wiki/Ambient_Combat_Manager)
I did exactly that (this time being sure to sync the logic with myself) and saw nothing aside from one enemy helicopter fly past about five minutes after start. I realize it is supposed to take a bit of time to populate, but am I doing something wrong? How long before I should start seeing enemy infantry and what not?
I'm not sure, as I've only had the game less than a day, but you might need to move about before some activities are generated. I mean, you might not and there's some other problem for you, but try moving from one location to another.
You have looked through this thread that is about the ACM module?
http://forums.bistudio.com/showthread.php?t=73393
To get different factions spawned etc you need an init.sqf in your mission folder where you can set how good the AI should be, what factions will be spawned, how much air contra ground forces will spawn etc etc. Very simple setup but sure needs more than just syncing ACM to player. Not hard though. Check it out.
Alex
Ignore the previous three posts, it appears my thread was merged with this one.
To get different factions spawned etc you need an init.sqf in your mission folder where you can set how good the AI should be, what factions will be spawned, how much air contra ground forces will spawn etc etc. Very simple setup but sure needs more than just syncing ACM to player. Not hard though. Check it out.
...What?! But there's a freaking YouTube video showing the ACM working right out of the box! :confused: That was even one of the earliest videos, as far as I can recall.
...What?! But there's a freaking YouTube video showing the ACM working right out of the box! :confused: That was even one of the earliest videos, as far as I can recall.
It DOES work out of the box.. you just can configure it (albeit not as simple as some may wish:))
Yes, but it does produce more than a single chopper when not yet configured, doesn't it? :confused:
I read in the BIS Wiki that "By default the ACM will select group types from CfgGroups, but you may want to use only a number of specific group types." And that each squad/group has a chance value of spawning, so for example regular infantry has a higher chance of spawning then a sniper team.
Is there anyway I can edit these chances, or make my own CfgGroups file that is linked only to one mission, so it only effects the mission I want it to and not other missions Ive made using the ACM?
Or is there any other way I can limit which group types spawn and the chance values they have?
Is there anyway I can edit these chances, or make my own CfgGroups file that is linked only to one mission, ...
++ for this idea. Defining groups (and their chances of appearance) on a per-mission-basis would be very handy for the ACM.
As for
Or is there any other way I can limit which group types spawn and the chance values they have?
You can already define exactly which group's will spawn (search for: BIS_ACM_addGroupClassesFunc), though I don't know of any possibility to modify their chance to appear.
Also there's an interesting comment in `ground_patrol.sqf` (script of ACM) that reads:
//Assign a patrol task.
Which leads me to the following suggestion: There are locations in ArmAII (though I don't know much about their potential yet), so how about spawned Groups from the ACM would orient themselves by these locations? Valuable locations could be the target of any group and once they secured such a location, other groups could set up their patrols around these locations!
This could make the ACM a whole lot more believeable, IMHO. Also, mission-makers could have the option to choose if their ACM should consider standard-locations already defined on a map OR they could setup and register their own locations! (this we offer instant defence-mission: setup one custom location and everything that spawns will head towards this location...)
Also different group-classes could handle different tasks (hold/defend or attack/secure a location, patrol around a secured location, street-blockade, recon, etc. etc.)
Something alonge those lines would be awesome.
Thanks for the reply, I noticed the command
[<ACM reference | Object>, <types | Array of Configs and / or Strings>] call BIS_ACM_addGroupClassesFunc;
Now I know what <ACM reference | Object> would be, thats the name of my ACM module, in this case BIS_ACM. But <types | Array of Configs and / or Strings>, where can I find a list of groups and their names?
where can I find a list of groups and their names?
:rolleyes: actually, in this very thread, one page before this here or two... :D
:rolleyes: actually, in this very thread, one page before this here or two... :D
Oh yes :) I see that know, thanks. Sorry for not looking harder :o
Copy and paste this to a notepad and save as init.sqf and place it in your mission folder. In the mission you already made a unit (player) and placed an ACM module wich you named BIS_ACM (name field of the module), and then you dragged a synchronization line between the ACM module to your unit (player). SAVE and PREVIEW.
waitUntil {!isNil {BIS_ACM getVariable "initDone"}};
waitUntil {BIS_ACM getVariable "initDone"};
//Sets frequency and number of patrols (0-1). BIS_ACM is module name
[1, BIS_ACM] call BIS_ACM_setIntensityFunc;
//min max spawn distance
[BIS_ACM, 100, 500] call BIS_ACM_setSpawnDistanceFunc;
//factions to be spawned
[["USMC", "INS", "CDF", "RU", "GER"], BIS_ACM] call BIS_ACM_setFactionsFunc;
//Skill range for spawned units
[0, 0.6, BIS_ACM] call BIS_ACM_setSkillFunc;
//Amount of ammo spawned units possess
[0.2, 0.5, BIS_ACM] call BIS_ACM_setAmmoFunc;
//Type of patrol. With 0 meaning no chance of appearing, and 1 meaning 100% chance. -1 removes patrol type completely.
["ground_patrol", 1, BIS_ACM] call BIS_ACM_setTypeChanceFunc;
["air_patrol", 1, BIS_ACM] call BIS_ACM_setTypeChanceFunc;
Note that the values range from 0 to 1 where 0.5 is middle value.
-Frequency wich is the top value as you can see sets how intense it will be. How much patrols will be spawn all the time.
-Next value is 100, 500 wich means meters closest they spawn and meters furthest away from player they spawn.
-Next is the factions to spawn. I added all. Remove some if needed.
-Skill and amount of ammo is self explanable.
-Last but not least is how much GROUND or AIR should be involved. 0 means nothing 0.5 means more and 1 means full load. So for little air but lots of ground forces you would set air to maybe 0.something and ground to 1.
Hope this is clearer now. ;)
Alex
I copied down the group names to a txt file and split the script name from the type name, its useful to have on your computer rather then here.
http://rapidshare.com/files/247106563/GroupNames.rar.html
Just been testing it out.
waitUntil {!isNil {BIS_ACM getVariable "initDone"}};
waitUntil {BIS_ACM getVariable "initDone"};
[1, BIS_ACM] call BIS_ACM_setIntensityFunc;
[["USMC"], BIS_ACM] call BIS_ACM_setFactionsFunc;
[BIS_ACM, 15, 30] call BIS_ACM_setSpawnDistanceFunc;
[0.5, 0.8, BIS_ACM] call BIS_ACM_setAmmoFunc;
["ground_patrol", 1, BIS_ACM] call BIS_ACM_setTypeChanceFunc;
["air_patrol", 0, BIS_ACM] call BIS_ACM_setTypeChanceFunc;
This works fine, only ground units spawn, so infantry, mechanized, motorized and foot. Tanks spawn as well. After around 20 or so second in the mission things start spawning, around 10 seconds apart from each other.
But this code:
waitUntil {!isNil {BIS_ACM getVariable "initDone"}};
waitUntil {BIS_ACM getVariable "initDone"};
[1, BIS_ACM] call BIS_ACM_setIntensityFunc;
[["USMC"], BIS_ACM] call BIS_ACM_setFactionsFunc;
[BIS_ACM, 15, 30] call BIS_ACM_setSpawnDistanceFunc;
[0.5, 0.8, BIS_ACM] call BIS_ACM_setAmmoFunc;
["ground_patrol", 1, BIS_ACM] call BIS_ACM_setTypeChanceFunc;
["air_patrol", 0, BIS_ACM] call BIS_ACM_setTypeChanceFunc;
[BIS_ACM, usmc_infsquad] call BIS_ACM_addGroupClassesFunc;
Nothing spawns even after a few minutes :/
edit: also just tried:
waitUntil {!isNil {BIS_ACM getVariable "initDone"}};
waitUntil {BIS_ACM getVariable "initDone"};
[1, BIS_ACM] call BIS_ACM_setIntensityFunc;
[BIS_ACM, 15, 30] call BIS_ACM_setSpawnDistanceFunc;
[0.5, 0.8, BIS_ACM] call BIS_ACM_setAmmoFunc;
[BIS_ACM, usmc_infsquad] call BIS_ACM_addGroupClassesFunc;
Thinking that removing some of the other unit/faction parameters would fix it. Noluck, nothing spawned.
Edit 2: tried a few more combinations
waitUntil {!isNil {BIS_ACM getVariable "initDone"}};
waitUntil {BIS_ACM getVariable "initDone"};
[1, BIS_ACM] call BIS_ACM_setIntensityFunc;
[["USMC"], BIS_ACM] call BIS_ACM_setFactionsFunc;
[BIS_ACM, 15, 30] call BIS_ACM_setSpawnDistanceFunc;
[0.5, 0.8, BIS_ACM] call BIS_ACM_setAmmoFunc;
["ground_patrol", 1, BIS_ACM] call BIS_ACM_setTypeChanceFunc;
["air_patrol", 0, BIS_ACM] call BIS_ACM_setTypeChanceFunc;
[BIS_ACM, ["usmc_tankplatoon", "usmc_armored", "usmc_mechreconsection","usmc_mechinfsquad", "usmc_mechanized"]] call BIS_ACM_removeGroupClassesFunc;
waitUntil {!isNil {BIS_ACM getVariable "initDone"}};
waitUntil {BIS_ACM getVariable "initDone"};
[1, BIS_ACM] call BIS_ACM_setIntensityFunc;
[["USMC"], BIS_ACM] call BIS_ACM_setFactionsFunc;
[BIS_ACM, 15, 30] call BIS_ACM_setSpawnDistanceFunc;
[0.5, 0.8, BIS_ACM] call BIS_ACM_setAmmoFunc;
["ground_patrol", 1, BIS_ACM] call BIS_ACM_setTypeChanceFunc;
["air_patrol", 0, BIS_ACM] call BIS_ACM_setTypeChanceFunc;
[BIS_ACM, usmc_tankplatoon] call BIS_ACM_removeGroupClassesFunc;
waitUntil {!isNil {BIS_ACM getVariable "initDone"}};
waitUntil {BIS_ACM getVariable "initDone"};
[1, BIS_ACM] call BIS_ACM_setIntensityFunc;
[["USMC"], BIS_ACM] call BIS_ACM_setFactionsFunc;
[BIS_ACM, 15, 30] call BIS_ACM_setSpawnDistanceFunc;
[0.5, 0.8, BIS_ACM] call BIS_ACM_setAmmoFunc;
["ground_patrol", 1, BIS_ACM] call BIS_ACM_setTypeChanceFunc;
["air_patrol", 0, BIS_ACM] call BIS_ACM_setTypeChanceFunc;
[BIS_ACM, usmc_tankplatoon] call BIS_ACM_removeGroupClassesFunc;
[BIS_ACM, usmc_mechreconsection] call BIS_ACM_removeGroupClassesFunc;
[BIS_ACM, usmc_mechinfsquad] call BIS_ACM_removeGroupClassesFunc;
[BIS_ACM, usmc_mechanized] call BIS_ACM_removeGroupClassesFunc;
[BIS_ACM, usmc_armored] call BIS_ACM_removeGroupClassesFunc;
Still no luck, seems really hit and miss. Would be nice if BIS stepped in and gave some more guidance/information/examples.
You have to put those group-classes into an array (also if you have only one) and pass this array as an argument to the function. Not a class itself.
Also consider to have a look at your `arma2.RPT`-file once in a while, while scripting. Errors (and hints why the error occured/whats wrong) are logged in there.
Gah this just keeps getting more complicated.
the array would look something like
[usmc_tankplatoon, usmc_mechreconsection, usmc_mechinfsquad, usmc_mechanized] ?
Is the array a file or is it put somewhere in init.sqf?
Also how would I link it into the ACM and get it all working?
Sorry for asking all these questions, I really really appreciate the help.
Edit: Think I figured it out. Is it:
[usmc_tankplatoon, usmc_mechreconsection, usmc_mechinfsquad, usmc_mechanized] execVM "ca\modules\ambient_combat\data\scripts\functions\removeGroupClasses.sqf";
? Testing now :) Well that didnt work.
Edit 2: I tried the add script, no errors returned in the RPT file it it didnt work either.
waitUntil {!isNil {BIS_ACM getVariable "initDone"}};
waitUntil {BIS_ACM getVariable "initDone"};
[1, BIS_ACM] call BIS_ACM_setIntensityFunc;
//[["USMC"], BIS_ACM] call BIS_ACM_setFactionsFunc;
[BIS_ACM, 15, 30] call BIS_ACM_setSpawnDistanceFunc;
//[0.5, 0.8, BIS_ACM] call BIS_ACM_setAmmoFunc;
//["ground_patrol", 1, BIS_ACM] call BIS_ACM_setTypeChanceFunc;
//["air_patrol", 0, BIS_ACM] call BIS_ACM_setTypeChanceFunc;
[usmc_sniperteam] execVM "ca\modules\ambient_combat\data\scripts\functions\addGroupClasses.sqf";
I cut off a few of the other scripts just to see if it was working. It wasnt, a BMP2 infantry squad spawned instead. So its just ignoring the script, at least the array. Maybe Ive done it wrong.
Dignity
Jun 22 2009, 13:02
The problem i have is when i try and save one of my missions, i cannot load it. Just stays on the loading screen forever, does anyone know why ?
I still get nothing when using the ACM module.. The Civilians works just fine, they get spawned in the cities. But the ACM doesn't seem to work for me. It is synced with the unit, not grouped.
I've tried syncing it with all units, just some, just one, the player, the leader, a dog.. Pretty much everything, but there is no soldiers anywhere even if I stay 15 minutes on the map (still or moving around).
Is the module a bit unstable? (it doesn't help to fiddle with the init-file either)
*** edit ***
Now it kicks in , sometimes... A few chopper came and two footmen, then nothing.
I still get nothing when using the ACM module.. The Civilians works just fine, they get spawned in the cities. But the ACM doesn't seem to work for me. It is synced with the unit, not grouped.
I've tried syncing it with all units, just some, just one, the player, the leader, a dog.. Pretty much everything, but there is no soldiers anywhere even if I stay 15 minutes on the map (still or moving around).
Is the module a bit unstable? (it doesn't help to fiddle with the init-file either)
*** edit ***
Now it kicks in , sometimes... A few chopper came and two footmen, then nothing.
Tophe, I don't know if this will help but I was having simular problems and I made the max and min distance larger like min-100 and max-350, then things began to work. Don't know if 100 is a minimum or I if it was just a fluke. I had previously had the minimum less than 100.
Okay, let me see if I've got this straight:
---
Scenario:
After saving a user-made mission, I put the init.sqf file into the mission folder. In this file, I have copied and pasted the following from this thread:
waitUntil {!isNil {BIS_ACM getVariable "initDone"}};
waitUntil {BIS_ACM getVariable "initDone"};
//Sets frequency and number of patrols (0-1). BIS_ACM is module name
[1, BIS_ACM] call BIS_ACM_setIntensityFunc;
//min max spawn distance
call BIS_ACM_setSpawnDistanceFunc;
//factions to be spawned
[["USMC", "RU"], BIS_ACM] call BIS_ACM_setFactionsFunc;
//Skill range for spawned units
[0, 0.6, BIS_ACM] call BIS_ACM_setSkillFunc;
//Amount of ammo spawned units possess
[0.2, 0.5, BIS_ACM] call BIS_ACM_setAmmoFunc;
//Type of patrol. With 0 meaning no chance of appearing, and 1 meaning 100% chance. -1 removes patrol type completely.
["ground_patrol", 1, BIS_ACM] call BIS_ACM_setTypeChanceFunc;
["air_patrol", 0, BIS_ACM] call BIS_ACM_setTypeChanceFunc;
Now I go in, and change the patrol-type settings into the following:
["ground_patrol", 1, BIS_ACM] call BIS_ACM_setTypeChanceFunc;
["air_patrol", [B]1, BIS_ACM] call BIS_ACM_setTypeChanceFunc;
And the faction selections into the following:
["USMC", "RU", "NAPA"], BIS_ACM] call BIS_ACM_setFactionsFunc;
Then I change the skill-settings into the following:
[1, 1, BIS_ACM] call BIS_ACM_setSkillFunc;
All other settings and values remains unchanged.
Then, I load my mission in the editor, placing down the ACM -module and naming it "BIS_ACM", before I sync it to myself. When I preview the mission, I'm assuming the following will happen:
The game will spawn USMC and Russian patrols at max "intensity", plus NAPA patrols who will be aligned to whoever the "Resistance" -side is set to. They will all be at the maximum skill level, and there will be both air and ground patrols.
---
...Is this correct?
th3flyboy
Jun 23 2009, 20:14
With this module, I can see some VERY interesting possibilities to revamp maps like EVO and DOM.
Also, another thing: When you have the ACM sync'ed to yourself and move around, will the battle "follow" you? That is; will the different patrols continually spawn around you, and stop spawning in the places you no longer are?
...Is this correct?
Also, another thing: When you have the ACM sync'ed to yourself and move around, will the battle "follow" you? That is; will the different patrols continually spawn around you, and stop spawning in the places you no longer are?
Both correct.
Although the big thing people want to do is customise the groups that spawn. So far we can only choose between air patrols and ground patrols, there should be a way to spawn only groups you choose but nobody has posted it yet, and I cant figure out as I am new to this editing business.
Siddern
Jun 24 2009, 00:26
It would be great if someone could make a basic scripting manual for noobs! :P
maturin
Jun 30 2009, 00:46
I synched the ACM to myself and rode around on a bicycle for a good twenty minutes. Towards the end I saw some tracer rounds hitting an enemy APC, and then some similarly disembodied ordnance exploded nearby, but it was deathly quiet both before and after that.
Is the default intensity at minimum? I have yet to find any tutorials for the editor or its modules. Just like the Valve Developer Community, modding wikis assume that the reader is at least competent in the topic. Any pointers?
SafetyCatch
Jun 30 2009, 09:49
Alex72, I've used your code a few pages back to add examples to the Ambient Combat Manager Functions on the Biki.
maturin
Jun 30 2009, 15:15
Alex72, I've used your code a few pages back to add examples to the Ambient Combat Manager Functions on the Biki.
How do those functions work? Is there a field I can paste them into in the editor? Are those console commands only, are they script files made from outside the game?
LKK.Viper
Jun 30 2009, 15:28
Hi, I would like to know if there is a way to keep the ACM active forever in a mission.
Like I want to create a MP mission with player respawn and the ACM synced to every Player in the Mission.
But I don't want the ACM to stop working when one or all Player died because they're gonna be respawned after say 30 seconds.
So can anyone tell me how to do that, plz??
or is it impossible to keep the ACM alive even when the Player it is synced to respawnes after a short while??
SafetyCatch
Jun 30 2009, 16:23
How do those functions work? Is there a field I can paste them into in the editor? Are those console commands only, are they script files made from outside the game?
You can run them in the init.sqf as Alex stated in his post listing the functions.
You can run them in the init.sqf as Alex stated in his post listing the functions.
I pasted Alex's code (minus the //explanation lines and with 500,1000 for distance) into a text file named init.sqf, which I placed in the Mission folder of a preexisting mission.
It didn't do anything, though. I also edited the code so that USMC was not on the spawned faction list- yet I came across a pair of humvees. Basically I ran into a helicopter or APC every half hour. Does that sound like intensity 1?
SafetyCatch
Jul 1 2009, 10:15
I pasted Alex's code (minus the //explanation lines and with 500,1000 for distance) into a text file named init.sqf, which I placed in the Mission folder of a preexisting mission.
It didn't do anything, though. I also edited the code so that USMC was not on the spawned faction list- yet I came across a pair of humvees. Basically I ran into a helicopter or APC every half hour. Does that sound like intensity 1?
Yeah I'm also curious as I took CDF out of the faction list and I saw a friendly Mi8 fly over, also the intensity as you said doesn't seem to have changed anything, mine's been set to 1-100 with no difference between the two. I wonder if these settings are actually doing anything at all.
Maddmatt
Jul 1 2009, 10:17
also the intensity as you said doesn't seem to have changed anything, mine's been set to 1-100 with no difference between the two. I wonder if these settings are actually doing anything at all.
The value is suppose to be between 1 and 0. Think that might be the problem :p
Even at a setting of 1 though, it isn't exactly a massive battle.
Even at a setting of 1 though, it isn't exactly a massive battle.
You can still have multiple instances of ACM and link them to different units/groups, so after a short time you should indeed feel like in a massive battle. (tip: create some observer-hint-script using allUnits to check the spawned units)
Though my test mission (that is the nth-ACM's) stopped working, after I've set up my 3rd or 4th ACM.. Somehow I got the impression that only three of them would work (testing by restricting the groups each ACM should spawn)... The forth would only start to work the moment I would delete the first one... But I wasn't too sure about it and too annoyed too, so I didn't dig any further, hehe. But give it a try ;)
SafetyCatch
Jul 1 2009, 19:00
The value is suppose to be between 1 and 0. Think that might be the problem :p
Even at a setting of 1 though, it isn't exactly a massive battle.
Thanks I know that now, it was just mentioned somewhere on here that putting it on 100 helps.
You can still have multiple instances of ACM and link them to different units/groups, so after a short time you should indeed feel like in a massive battle. (tip: create some observer-hint-script using allUnits to check the spawned units)
Would this work with several ACM logics synced to one group or would it have to be several groups? I asked because the mission I'm making only has one playable group.
Thanks!
supergruntsb78
Jul 1 2009, 21:53
Yeah I'm also curious as I took CDF out of the faction list and I saw a friendly Mi8 fly over.
me to, wants to know why USMC keeps spawning while they are removed form the list
Uhh... I have the factions-part of the init.sqf set to:
[["RU", "INS", "USMC", "CDF"], BIS_ACM] call BIS_ACM_setFactionsFunc;
But when I start the map, the only factions to spawn are the USMC and Russia. Never the the Chedaki or CDF... Why? :butbut:
Would this work with several ACM logics synced to one group or would it have to be several groups? I asked because the mission I'm making only has one playable group.
As I understood, you can only have one ACM linked to a group. The moment you attach another instance to a group, the former shuts down.
I guess you have to improvise by either splitting your one group (HighCommand or have some units just follow you; or you could create an unarmed UAV following you too, etc..) or create some hidden units around the area of your mission and attach another ACM to him... you could write a script and setPos'him to follow your group at distance...
Im at work and didnt have time to read through it all. But if some kind soul heard or read about applying ACM to certain areas - if its possible would be nice to know. :) Like the UPS script by Kronzky, but using the ACM to populate certain villages etc with it.
Possible yet?
Alex
Manzilla
Jul 2 2009, 11:37
Alex72,
I'm pretty sure it is possible but I haven't completely figured it out yet. I think there's a way to add areas the are restricted for use by the ACM. I think it's done by places a marker and giving it a certain name. It's not exactly the same thing as applying ACM to certain areas but I'm pretty sure you can restrict the ACM from appearing in certain areas.
Also I'm pretty sure you can set which towns are hostile/friendly to a certain faction/side or whether or not citizens will take up arms against a side that starts killing them.
This module seems like it's gonna add a ton to the game, now I just gotta learn how to use it. ;)
GunnDawg09
Jul 3 2009, 03:29
I am wildly confused after reading through all of these pages.
Do I have to write custom script files(which I know nothing about) and place them in a certain folder in order to get ACM to work?
It was my understanding that I could go as simple as creating 1 person to spawn(me), then putting an ACM on the map next to me and syncing it to my self. At that point I could walk around, or drive around the map and randomly encounter some fights.
But this hasnt happened. What are the very basics to get ACM to work just so I can get a basic test working.
waitUntil {!isNil {BIS_ACM getVariable "initDone"}};
waitUntil {BIS_ACM getVariable "initDone"};
//Sets frequency and number of patrols (0-1). BIS_ACM is module name
[1, BIS_ACM] call BIS_ACM_setIntensityFunc;
//min max spawn distance
[BIS_ACM, 700, 1000] call BIS_ACM_setSpawnDistanceFunc;
//factions to be spawned
[["RU"], BIS_ACM] call BIS_ACM_setFactionsFunc;
//Skill range for spawned units
[0, 0.6, BIS_ACM] call BIS_ACM_setSkillFunc;
//Amount of ammo spawned units possess
[0.2, 0.7, BIS_ACM] call BIS_ACM_setAmmoFunc;
//Type of patrol. With 0 meaning no chance of appearing, and 1 meaning 100% chance. -1 removes patrol type completely.
["ground_patrol", 1, BIS_ACM] call BIS_ACM_setTypeChanceFunc;
["air_patrol", 0, BIS_ACM] call BIS_ACM_setTypeChanceFunc;
Does nothing but spawn BTR-90's and BMDs, wheres the infantry patrols; and why if they do spawn (the BTR-90s), are they so infrequent (ie one enemy per 30minutes of gameplay).
Mr_Centipede
Jul 3 2009, 08:36
@<hidden>
Maybe the distance spawned was far.. then the move about all over the place and by chance you only found one of them? Did you test on chernarus or utes?
Kiptanoi
Jul 3 2009, 11:09
waitUntil {!isNil {BIS_ACM getVariable "initDone"}};
waitUntil {BIS_ACM getVariable "initDone"};
//Sets frequency and number of patrols (0-1). BIS_ACM is module name
[1, BIS_ACM] call BIS_ACM_setIntensityFunc;
//min max spawn distance
[BIS_ACM, 300, 600] call BIS_ACM_setSpawnDistanceFunc;
//factions to be spawned
[["RU"], BIS_ACM] call BIS_ACM_setFactionsFunc;
//Skill range for spawned units
[0, 0.6, BIS_ACM] call BIS_ACM_setSkillFunc;
//Amount of ammo spawned units possess
[0.2, 0.5, BIS_ACM] call BIS_ACM_setAmmoFunc;
//Type of patrol. With 0 meaning no chance of appearing, and 1 meaning 100% chance. -1 removes patrol type completely.
["ground_patrol", 1, BIS_ACM] call BIS_ACM_setTypeChanceFunc;
["air_patrol", 1, BIS_ACM] call BIS_ACM_setTypeChanceFunc;
Is there anyway I can give them who spawn out a waypiont?
Like move or search and destroy waypoint order?
If the scripting isn't working for any of the other newbs out there (like me), a far better way of running a high intensity ACM is opening a Random Scenario, type Basic and setting the AC to High in the Parameters tab. You can also give yourself a tank.
The map is usually cluttered by helicopter patrols, with occasional APCs and rare infantry groups. I even got blown up by T-90s once.
If the scripting isn't working for any of the other newbs out there (like me), a far better way of running a high intensity ACM is opening a Random Scenario, type Basic and setting the AC to High in the Parameters tab. You can also give yourself a tank.
Uhh... yeah. Or you can, you know, make an init.sqf and paste what has already been posted into it. There's no difference.
Uhh... yeah. Or you can, you know, make an init.sqf and paste what has already been posted into it. There's no difference.
Read the thread, it doesn't always work. I'm sure there's a reason for that, but no one seems to be taking guesses.
hey just wondering if anyone can point me in the right direction on how the custom group lists works.
The ACM is brilliant i just want to limit the types of groups it spawns!
Say BIS_ACM is my ACM's name, then:
[BIS_ACM, [ what goes here ]] call BIS_ACM_addGroupClassesFunc;
I tried this for example:
[BIS_ACM, [CDF_MotInfSquad]] call BIS_ACM_addGroupClassesFunc;
to limit it to only spawning that type of group
but it doesn't work
i'm new to scripting so any help would be great!
Redfield-77
Jul 10 2009, 22:01
I have a simple question.
Im under the assumption that you can only have 1 init.sqf in a mission folder so if I have other stuff in an init.sqf for example
[] execVM "briefing.sqf"
where would I put the code Alex provided in relation to existing stuff like my briefing?
abdecken
Jul 18 2009, 18:27
Does anyone know if I can have russian ground patrols and USMC patrols air only, with no USMC ground units?
Could I perhaps use two Ambient Combat Modules, one for russian ground patrols and another for USMC air patrols?
This should work.
[[Let this empty], BIS_ACM] call BIS_ACM_setFactionsFunc;
[BIS_ACM, ["USMC_InfSquad","RU_Mi24VSquadron","RU_TankPlatoon"]] call BIS_ACM_addGroupClassesFunc;
These are the group class names of all factions:
// USMC
USMC_InfSquad
USMC_FireTeam
USMC_FireTeam_MG
USMC_FireTeam_AT
USMC_FireTeam_Support
USMC_HeavyATTeam
USMC_SniperTeam
USMC_FRTeam
USMC_FRTeam_Razor
USMC_MotInfSection
USMC_MotInfSection_AT
USMC_MechInfSquad
USMC_MechReconSection
USMC_TankPlatoon
USMC_AH1ZSquadron
USMC_UH1YSquadron
USMC_MV22Squadron
USMC_MQ9Squadron
USMC_F35Squadron
USMC_AV8BFighterSquadron
USMC_AV8BBomberSquadron
// CDF
CDF_InfSquad
CDF_InfSquad_Weapons
CDF_InfSection_AT
CDF_InfSection_AA
CDF_InfSection_MG
CDF_InfSection_Patrol
CDF_SniperTeam
CDF_MotInfSquad
CDF_MotInfSection
CDF_MotInfSection_Weapons
CDF_MechInfSquad
CDF_MechReconSection
CDF_MechATSection
CDF_TankPlatoon
CDF_Mi24DSquadron
CDF_Mi8Squadron
// RU
RU_InfSquad
RU_InfSection
RU_InfSection_AT
RU_InfSection_AA
RU_InfSection_MG
RU_SniperTeam
RUS_ReconTeam
MVD_AssaultTeam
RU_MotInfSquad
RU_MotInfSection_Recon
RU_MotInfSection_Patrol
RU_MechInfSquad_1
RU_MechInfSquad_2
RU_TankPlatoon
RU_Mi24VSquadron
RU_Mi24PSquadron
RU_Pchela1TSquadron
RU_Ka52Squadron
RU_Mi8Squadron
RU_Su34FighterSquadron
// INS
INS_InfSquad
INS_InfSquad_Weapons
INS_InfSection_AT
INS_InfSection_AA
INS_SniperTeam
INS_MilitiaSquad
INS_MotInfSquad
INS_MotInfSection
INS_MechInfSquad
INS_MechInfSection
INS_MechInfSection_AT
INS_TankSection
INS_Mi8Squadron
// GUE
GUE_InfSquad
GUE_InfSquad_Assault
GUE_InfSquad_Weapons
GUE_InfTeam_1
GUE_InfTeam_2
GUE_InfTeam_AT
GUE_GrpInf_TeamAA
GUE_GrpInf_TeamSniper
GUE_MilitiaSquad
GUE_MotInfSection
GUE_MotInfSquad
GUE_MechInfSection
GUE_MechInfSquad
GUE_TankSection
// CIV (not supported with ACM)
CIV_Crowd
CIV_City_1
CIV_City_2
CIV_Village_1
CIV_Village_2
december
Jul 19 2009, 09:39
I have been testing "BIS_ACM_setIntensityFunc". It is to be set to a value between 0 and 1. If I set it anything less than 1 (0.something) nothing is spawned.
Can someone test this?
the_shadow
Jul 19 2009, 13:48
can anyone list what kinds of patrols there is?
ive seen ground and air mentined..
is that all?
or are there armor, foot, vehicle, boat and so on?
Daveyboy154
Jul 19 2009, 13:56
This should work.
[[Let this empty], BIS_ACM] call BIS_ACM_setFactionsFunc;
[BIS_ACM, ["USMC_InfSquad","RU_Mi24VSquadron","RU_TankPlatoon"]] call BIS_ACM_addGroupClassesFunc;
Weirdly, this didn't work for me. However, when I added a faction back in the first line (instead of leaving the array blank) it did. It even worked with when I swapped the side over (see example):
[[USMC], BIS_ACM] call BIS_ACM_setFactionsFunc;
[BIS_ACM, ["RU_TankPlatoon"]] call BIS_ACM_addGroupClassesFunc;
With this, I got nothing but Russian tanks for 15 minutes and not a single USMC unit. Maybe the ACM just needs at least one faction in there to function, but then disregards it if you use the addGroupClassesFunc afterwards?
Dave
Actually, what is even weirder is that I forgot quotation marks around the USMC, returning an .rpt error. Yet somehow, it had the desired effect regardless. I'm sure that there is an explanation, but someone more knowledgeable than me will have to come up with !
the_shadow
Jul 19 2009, 15:10
ok, i´ve got a small problem with the ACM module..
i made a init.sqf and this is what i have in it..
waitUntil {!isNil {BIS_ACM getVariable "initDone"}};
waitUntil {BIS_ACM getVariable "initDone"};
//Sets frequency and number of patrols (0-1). BIS_ACM is module name
[1, BIS_ACM] call BIS_ACM_setIntensityFunc;
//min max spawn distance
[BIS_ACM, 200, 1000] call BIS_ACM_setSpawnDistanceFunc;
//factions to be spawned
[["INS", "GUE", "USMC"], BIS_ACM] call BIS_ACM_setFactionsFunc;
//Skill range for spawned units
[0.01, 0.5, BIS_ACM] call BIS_ACM_setSkillFunc;
//Amount of ammo spawned units possess
[0.2, 1.0, BIS_ACM] call BIS_ACM_setAmmoFunc;
//Type of patrol. With 0 meaning no chance of appearing, and 1 meaning 100% chance. -1 removes patrol type completely.
["ground_patrol", 1, BIS_ACM] call BIS_ACM_setTypeChanceFunc;
["air_patrol", -1, BIS_ACM] call BIS_ACM_setTypeChanceFunc;
but still i get USMC and other Air patrols flying around...
most USMC though.
and in 1hr i havnt encountered one single enemy soldier exept for those i manually put in the editor.
i also have another problem but thats not AMC related so i´ll take that in the SOM module thread instead.
El Mariachi
Jul 19 2009, 17:10
I guess I'm gonna wait till I can get a hold of someone's DAC script edited for arma 2. This doesn't sound like it will work too well for MP, and on top of that you have to blacklist 90% of the map where you DON"T want things to spawn and it takes too long to configure. Why couldn't they make it as easy to configure as any one of the scripters?
andersson
Jul 19 2009, 18:10
If I synch this module with the teamleader, will enemies spawn around the other soldiers in that group? Say that I am the teamleader and my friend (MP) in the same group goes away a couple of km. Are enemies spawned around the both of us the same way for both clients?
Daveyboy154
Jul 19 2009, 18:35
@<hidden> Shadow
I think that it has to do with the initializations, but i'm not sure. The first 2 lines should prevent that, but sometimes I get rpt errors (and other times I don't despite not changing anything!)
Just going on my own trial and error experience, maybe put your code in a seperate sqf and execVM it from the init.sqf instead. Have it a couple of lines down, or even after a "sleep 1", to see if that helps. It's not like it would spawn any patrols in the first second of a mission anyway.
Dave
andersson
Jul 21 2009, 11:58
Ok, been reading this, the biki and trying myself.
I dont think ACM is good enough for my purposes, its best suited SP. I hope by this post I can be told otherwise. Atleast I hope to shed some light about some things out of curiousity.
1 - Is it compatible with MP?
2 - How does the enemy units spawn around the group (SP and MP)? Is it the leader that is the middlepoint or are units spawning around all members? Will the density go down if the group get splitted or will the leader have all enemies and the rest will get less and see units getting spawned or disapear depending on distance to the leader?
3 - Can I synch this to a gamelogic and have enemies spawning around that location? Will that mean that units will pop up and disapear if Im getting to far away from that GL?
4 - Why oh why is airborne groups scripted to fly over me? I dont like the feeling of being special. This gameserie is for me all about being one guy among others in a war, not a hero nor the center of attention.
Some things I could find out by myself if I had time, but it takes too much time to even see the result of one scenario in SP..
This seems like a good idea for quick and easy SP gameplay, but for MP I cant see much serious use for it. I guess I have to wait for DAC..
can i use a marker to make a no-spawn zone? how do i do that?
nominesine
Jul 23 2009, 12:53
I've placed my ACM (nomin_acm1) on the map, synched it with a playable group and given it the following command in ininit.sqf:
[0, nomin_acm1] call BIS_ACM_setIntensityFunc;
Hence no unit will spawn around my group until I raise the value 0. I only want the action to start when the players group enters a certain trigger area. Thus I feed my ACM the following line of code when the player enter the trigger:
[1, nomin_acm1] call BIS_ACM_setIntensityFunc;
That should work, right? And now some questions.
1) Can I execute the code [1, nomin_acm1] call BIS_ACM_setIntensityFunc; directly from the triggers activation field? I cannot see any reason why not, so...
2) What happens if a player Joins in Progress after the change is made. Will this init-launch revert the ACM to it's zero setting again?
3) Is it possible to make all changes of the ACM values from a script that is only running on the server in a MP game? Or does the ACM values also need to be changed on all clients in a network game.
norm6669
Jul 28 2009, 03:12
ACM can be used in multi. I didn't run a lot of test but enough to know it will work. When the WHOLE group is dead, the ACM stop. So to use ACM with respawn, you need to be able to create the module via scripting. On my server loop I use this:
_LogicCenter = createCenter sideLogic;
_LogicGroup = createGroup _LogicCenter;
_array = [P1, P2, P3, P4];
while {true} do {
for [{_i=0}, {_i < count _array}, {_i=_i+1}] do {
if (!(isNull (_array select _i))) then {
_cnt = {!isNil {_x getVariable "acm"}} count (units group (_array select _i));
if (_cnt == 0) then {
_ACMMod = _LogicGroup createUnit ["AmbientCombatManager", [0, 0, 0], [], 0, ""];
_ACMMod synchronizeObjectsAdd [(_array select _i)];
};
};
};
sleep 10;
};
The four players are name P1, P2, P3 and P4 and they each have their fireteam with up to 3 bots. The script check is someone in the group is still synchronized to the ACM (if the acm is still running). If not, it start one.
Devil_Orchestra
Jul 28 2009, 22:28
Can someone please tell me if my syntax is correct? I have tried so many different ways to specify groups with ACM and i have had no luck. this is the closest i have come from reading through this entire thread
waitUntil {!isNil {BIS_ACM getVariable "initDone"}};
waitUntil {BIS_ACM getVariable "initDone"};
//Sets frequency and number of patrols (0-1). BIS_ACM is module name
[1, BIS_ACM] call BIS_ACM_setIntensityFunc;
//min max spawn distance
[BIS_ACM, 300, 600] call BIS_ACM_setSpawnDistanceFunc;
//factions to be spawned
[["RU"], BIS_ACM] call BIS_ACM_setFactionsFunc;
//Skill range for spawned units
[0, 0.6, BIS_ACM] call BIS_ACM_setSkillFunc;
//Amount of ammo spawned units possess
[0.2, 0.5, BIS_ACM] call BIS_ACM_setAmmoFunc;
//Type of patrol. With 0 meaning no chance of appearing, and 1 meaning 100% chance. -1 removes patrol type completely.
["ground_patrol", 1, BIS_ACM] call BIS_ACM_setTypeChanceFunc;
["air_patrol", 0, BIS_ACM] call BIS_ACM_setTypeChanceFunc;
[["RU_InfSquad", "RU_InfSection", "RU_SniperTeam", "RUS_ReconTeam", "RU_MotInfPatrol"], BIS_ACM] call BIS_ACM_addGroupClassesFunc;
RedRage
Jul 30 2009, 02:02
I need some help as well. No matter what I do in the config I get the same couple of helicopters and a few friendly/enemy armored units aimlessly loitering around the map. I waited for over 5 mins on x4 time for something epic to happen - no luck there. Here are the contents of my init.sqf (placed in mission folder):
waitUntil {!isNil {BIS_ACM getVariable “initDone”}};
waitUntil {BIS_ACM getVariable “initDone”};
[100, BIS_ACM] call BIS_ACM_setIntensityFunc;
[BIS_ACM, 40, 300] call BIS_ACM_setSpawnDistanceFunc;
[["INS", "CDF"], BIS_ACM] call BIS_ACM_setFactionsFunc;
[0.3, 0.8, BIS_ACM] call BIS_ACM_setSkillFunc;
[0.6, 0.9, BIS_ACM] call BIS_ACM_setAmmoFunc;
["ground_patrol", 1, BIS_ACM] call BIS_ACM_setTypeChanceFunc;
["air_patrol", 0.6, BIS_ACM] call BIS_ACM_setTypeChanceFunc;
Any suggestions?
Mr_Centipede
Jul 30 2009, 05:00
I need some help as well. No matter what I do in the config I get the same couple of helicopters and a few friendly/enemy armored units aimlessly loitering around the map. I waited for over 5 mins on x4 time for something epic to happen - no luck there. Here are the contents of my init.sqf (placed in mission folder):
Any suggestions?
For me ACM purpose to give you a sense that you're in a war, that you might run into a random patrol. Not making a huge engagement. So that ACM wont bog down your PC as much.
If your purpose is to witness a large battle going on, ACM probably wont be able to do it. If ACM happened to have a large battle going on, I think it was pure luck. Or you run into one of the enemy, had an engagement and the rest of the enemy on map will come and support the fight... Could happen, never actually try it
andersson
Jul 30 2009, 11:12
ACM can be used in multi. I didn't run a lot of test but enough to know it will work.
...
The four players are name P1, P2, P3 and P4 and they each have their fireteam with up to 3 bots.
Good to know!
But what happens if two players are close to each other, is the enemy density doubled? And what happens if all players are in the same group?
I cant test this myself as Im away on a job..
arthur666
Jul 30 2009, 21:04
1. So, from what I've gathered, setting which factions in the sqf file has no effect on the ACM. My mission that should only have GUE and INS still had a Russian BTR90 show up to the party uninvited. Has anyone found a way to make this work?
2. Is the proper name for the independent side GER or GUE or GUR? I've seen it all of those ways. Of course, right now it's a moot point because I don't know how to configure the ACM anyhow.
I want to get this config to work. It really is gonna make 3 of my missions just about perfect.
NeMeSiS
Jul 30 2009, 21:56
If your purpose is to witness a large battle going on, ACM probably wont be able to do it. If ACM happened to have a large battle going on, I think it was pure luck. Or you run into one of the enemy, had an engagement and the rest of the enemy on map will come and support the fight... Could happen, never actually try it
I dont know, i always have the density on one (Though significantly lowered the chance for air patrols) and its not rare to see 6 squads fighting within a square kilometer. Then again, its also not rare to not see any battles for 20 minutes. ;)
Also, if you dont move around the chance to run into ground patrols is very small. If you wait at your starting position it will take forever to see something happen. :p
andersson
Jul 31 2009, 11:19
2. Is the proper name for the independent side GER or GUE or GUR? I've seen it all of those ways. Of course, right now it's a moot point because I don't know how to configure the ACM anyhow.
Think it is GUER.
arthur666
Jul 31 2009, 18:22
Think it is GUER.
Hmm... do you think if I put the wrong name in that line, it would just void the entire line and go back to the default, which is all 5 factions being present?
NeMeSiS
Jul 31 2009, 19:04
Think it is GUER.
Sides: http://community.bistudio.com/wiki/side
Factions: http://community.bistudio.com/wiki/faction
arthur666
Jul 31 2009, 20:05
Sides: http://community.bistudio.com/wiki/side
Factions: http://community.bistudio.com/wiki/faction
Oh. GUE . And I've also been typing RUSS instead of the proper RU. No wonder it's not working.
laserpanda
Jul 31 2009, 23:49
If I make 2 ACMs sync'd to different units, will there be twice as many patrols?
i've been trying this for two days and still even when i jack up the density all i ever see are two helicopters flying by (if im lucky)
FifthColumnist
Aug 3 2009, 11:17
From the wiki (http://community.bistudio.com/wiki/Ambient_Combat_Manager):
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.
Anyone know?
1) If I have two players and they each have their own ACM can one ACM's units be deleted when they are visible to the other player, or does the routine only cleanup units if they not with range of any player?
2) Can the range of units being cleaned up be changed, I'd like to make it quite large.
Smoot178
Aug 7 2009, 05:08
Hey everyone I am looking for some help here:
I was looking for a way to allow this module to work with respawning. I've got a trigger that runs this whenever the player I want this to work with respawns:
sleep 5;
BIS_ACM synchronizeObjectsAdd [P2];
[1, P2] call BIS_ACM_setIntensityFunc;
[P2, 100, 1000] call BIS_ACM_setSpawnDistanceFunc;
[["USMC", "INS", "CDF", "RU", "GUE"], BIS_ACM] call BIS_ACM_setFactionsFunc;
[0, 1, BIS_ACM] call BIS_ACM_setSkillFunc;
[0.2, 0.5, BIS_ACM] call BIS_ACM_setAmmoFunc;
["ground_patrol", 1, BIS_ACM] call BIS_ACM_setTypeChanceFunc;
["air_patrol", 1, BIS_ACM] call BIS_ACM_setTypeChanceFunc;
It doesn't work though. After the player respawns the script runs but stuff doesn't spawn anymore.
Help :(
Just to add some more info to this thread, I've been tinkering with this ACM for a few day now trying every method listed and some new ones I've thought of to try to limit factions and/or units and I am pretty sure that it just isn't reliably getting initialization parameters passed on to it or it doesn't process them correctly. Sometimes it does, sometimes not. I can waitUntil dozens of different things and sleep for 10 minutes but it doesn't change a thing.
Also, someone asked earlier about multiple ACMs and getting more spawns. Ya - pretty much that seems to be the case, but again it's not as should be expected. I can sync 20 ACMS to different squads and I don't get a massive system crashing battle. Maybe the 2-3 times more units.
I have two things I've learned. If you don't want the ACM to die with the player try syncing the high command module to the squad with the ACM. That seems to keep it going past deaths. Seems to be is all I can say because the ACM is so unpredictable.
I also have an idea I thought of earlier if the ACM can be made to to work right. Use it as an efficient spawn multiplier for enemy units. Say for example you have an enemy officer running an ACM that only spawns units of his own side around him. Kill the officer and the resistance starts dying out.
FifthColumnist
Aug 8 2009, 16:58
Just to add some more info to this thread, I've been tinkering with this ACM for a few day now trying every method listed and some new ones I've thought of to try to limit factions and/or units and I am pretty sure that it just isn't reliably getting initialization parameters passed on to it or it doesn't process them correctly. Sometimes it does, sometimes not. I can waitUntil dozens of different things and sleep for 10 minutes but it doesn't change a thing.
Also, someone asked earlier about multiple ACMs and getting more spawns. Ya - pretty much that seems to be the case, but again it's not as should be expected. I can sync 20 ACMS to different squads and I don't get a massive system crashing battle. Maybe the 2-3 times more units.
I have two things I've learned. If you don't want the ACM to die with the player try syncing the high command module to the squad with the ACM. That seems to keep it going past deaths. Seems to be is all I can say because the ACM is so unpredictable.
I also have an idea I thought of earlier if the ACM can be made to to work right. Use it as an efficient spawn multiplier for enemy units. Say for example you have an enemy officer running an ACM that only spawns units of his own side around him. Kill the officer and the resistance starts dying out.
Hmm, that seems to work for me, bear in mind that you cannot do wait or sleep or anything directly in an init block, I use this peice of code in an sqf that I call with execVM from init block on the ACM and as various groups enter triggers (each group has their own personal ACM):
if (!isServer) exitWith {};
_acm = _this select 0;
_factions = _this select 1;
_intensity = if (count _this > 2) then {_this select 2} else { 1 };
waitUntil {!isNil {_acm getVariable "initDone"}};
waitUntil {_acm getVariable "initDone"};
[_factions, _acm] call BIS_ACM_setFactionsFunc;
[_intensity, _acm] call BIS_ACM_setIntensityFunc;
Ok, I started working with the ACM again. The suggestion to use an execVM in the init works, and so does the below code to make it purely scripted.
if (!isServer) exitWith {};
private ["_grpLogic"];
createCenter sideLogic;
_grpLogic = createGroup sideLogic;
private ["_array"];
_array = [RU_COMMANDER, RU_SF]; // Group leaders assigned an ACM
private ["_acm"];
while {true} do {
for [{_i=0}, {_i < count _array}, {_i=_i+1}] do {
if (!(isNull (_array select _i))) then {
_cnt = {!isNil {_x getVariable "acm"}} count (units group (_array select _i));
if (_cnt == 0) then {
_acm = _grpLogic createUnit ["AmbientCombatManager", [0, 0, 0], [], 0, "NONE"];
_acm synchronizeObjectsAdd [(_array select _i)];
waitUntil {!isNil {_acm getVariable "initDone"}};
waitUntil {_acm getVariable "initDone"};
[1, _acm] call BIS_ACM_setIntensityFunc;
[["USMC"], _acm] call BIS_ACM_setFactionsFunc;
[1, _acm] call BIS_ACM_setIntensityFunc;
["ground_patrol", -1, _acm] call BIS_ACM_setTypeChanceFunc;
["air_patrol", 1, _acm] call BIS_ACM_setTypeChanceFunc;
};
};
};
sleep 10;
};
This code will proceed to rain a parade of USMC air patrols on my two unfortunate Russian group leaders. So that part is working - up until when they die (I used air patrols as they are easy to spot). For some reason the above code is not restarting the ACM though. Any ideas?
*UPDATE*
Actually, I think this code may be working fine as long as you don't kill the associated group leaders too fast. When I was testing I headshotted the both of them straight away and this breaks the script. If I wait a while for the ACM to start and then kill them it appears to be working and the ACM get synchronized again, so far that I have tested.
MagicDerek
Aug 14 2009, 05:35
I've placed my ACM (nomin_acm1) on the map, synched it with a playable group and given it the following command in ininit.sqf:
[0, nomin_acm1] call BIS_ACM_setIntensityFunc;
Hence no unit will spawn around my group until I raise the value 0. I only want the action to start when the players group enters a certain trigger area. Thus I feed my ACM the following line of code when the player enter the trigger:
[1, nomin_acm1] call BIS_ACM_setIntensityFunc;
That should work, right? And now some questions.
1) Can I execute the code [1, nomin_acm1] call BIS_ACM_setIntensityFunc; directly from the triggers activation field? I cannot see any reason why not, so...
2) What happens if a player Joins in Progress after the change is made. Will this init-launch revert the ACM to it's zero setting again?
3) Is it possible to make all changes of the ACM values from a script that is only running on the server in a MP game? Or does the ACM values also need to be changed on all clients in a network game.
Did you have any luck with this working? trying to set something similar myself but reversed with the ACM only working in a certain area and then disabling when my team gets to a certain objective. This didnt seem to do the trick any other way around it?
FifthColumnist
Aug 14 2009, 10:20
Did you have any luck with this working? trying to set something similar myself but reversed with the ACM only working in a certain area and then disabling when my team gets to a certain objective. This didnt seem to do the trick any other way around it?
You could inhibit the ACM using the blacklisted areas perhaps (http://community.bistudio.com/wiki/Ambient_Combat_Manager_-_Functions)
I had issues with triggers and the ACM functions, the problem seemed to be caused by the trigger activating before the ACM had initialised properly (the player started in one of my trigger areas).
spirit6
Aug 14 2009, 10:36
Can de ACM parameters be updated during mission. As i have created a mission generator instead of a static one i need to wait for the ingame mission maker to decide on what enemy faction and side are being used as enemy.
As i also only ingame know the total player pool (coop missions only)(going from 1 to 132) i also need to ingame adjust the sort of stuff that is spawned.
My main interest is random patrol's and not huge firefights all over.
Is that in anyway possible to achieve in MP ?
nominesine
Aug 14 2009, 11:21
Did you have any luck with this working? trying to set something similar myself but reversed with the ACM only working in a certain area and then disabling when my team gets to a certain objective. This didnt seem to do the trick any other way around it?
Same experience here, unfortunately. Intensity doesn't work for reasons beyond my comprehension. I just posted this at Ofpec to get some expert answers. Can't hurt to ask for the same advice in here I suppose...
[0.0, BIS_ACM] call BIS_ACM_setIntensityFunc;
According to the Biki (http://community.bistudio.com/wiki/Ambient_Combat_Manager_-_Functions) the quoted code will: "in effect pause the ACM". This much I've figured out and to switch it back on again I must use
[1.0, BIS_ACM] call BIS_ACM_setIntensityFunc;
or any scalar number greater than 0. But my limited testing (three hours) implies that it doesn't work more than once. I wan't a mission that starts with no intensity and then gradually builds up towards heavy fighting around the player. No matter how high I raise the intensity value, no ambient units show up in game if the ACM has been paused once.
If I do it the other way around (start with a high intensity number) I can force it into hiatus by setting intensity to 0. At least I assume it works, since no units showed up for one hour. I was moving at slow pace across the map (walking with shift locked). Hence I assume the syntax is correct. But why can't I start with low intensity and gradually raise it during the mission?
Kartamm
Aug 16 2009, 15:29
waitUntil {!isNil {BIS_ACM getVariable "initDone"}};
waitUntil {BIS_ACM getVariable "initDone"};
//Sets frequency and number of patrols (0-1). BIS_ACM is module name
[1, BIS_ACM] call BIS_ACM_setIntensityFunc;
//min max spawn distance
[BIS_ACM, 200, 600] call BIS_ACM_setSpawnDistanceFunc;
//factions to be spawned
[["USMC", "RU"], BIS_ACM] call BIS_ACM_setFactionsFunc;
//Skill range for spawned units
[0, 0.5, BIS_ACM] call BIS_ACM_setSkillFunc;
//Amount of ammo spawned units possess
[0.2, 0.5, BIS_ACM] call BIS_ACM_setAmmoFunc;
//Type of patrol. With 0 meaning no chance of appearing, and 1 meaning 100% chance. -1 removes patrol type completely.
["ground_patrol", 1, BIS_ACM] call BIS_ACM_setTypeChanceFunc;
["air_patrol", 1, BIS_ACM] call BIS_ACM_setTypeChanceFunc;
I used this and after 2 minutes i was killed by T-90
pssst.....how do u make an SQF file *looks around awkwardly*
Grek8899
Aug 16 2009, 19:11
Finaly scripts that work...
:D
Was waiting for a long time for this...
And its very very intens battles...
arthur666
Aug 16 2009, 19:48
Finaly scripts that work...
:D
Was waiting for a long time for this...
And its very very intens battles...
Which script worked for you? I'm still haveing trouble getting the settings to change.
nominesine
Aug 17 2009, 13:17
I used this and after 2 minutes i was killed by T-90
Hardly suprising since you set the intensity to maximum and specifically instructed all ground troops to appear at extremely close range. But it seems to be a good example of a working code for anyone who's still struggling to get it right.
OK 22 pages later and still confused: I discovered that sometimes ACM doesn't work and sometimes it does. I can not see the pattern.
It always works during those quick-made custom scenarios (war is all over the place) but when I create the mission in the editor it seems to have an intensity of 0.01 :S. But that's the thing, I created a mission with a civ once and ACM did work there.
Also, this comes with a very strange Secop fenomena - I called for a UAV and the UAV stayed a good 500 meters away from me and from the location I called it to. The same was the case with the airstrike - I thought I heard a jet but it never even approached the location I was at.
It's almost like there is an invisible trigger around me which tells all units from Secops and ACM to stay as far away from me as possible
I already tried creating the init.sqf with:
waitUntil {!isNil {BIS_ACM getVariable "initDone"}};
waitUntil {BIS_ACM getVariable "initDone"};
and all those other options
WTF is going on, guys? BIS?
Jakerod
Aug 18 2009, 23:04
It's almost like there is an invisible trigger around me which tells all units from Secops and ACM to stay as far away from me as possible
Perhaps they ran into something a bit stronger than they and got shot down. Or maybe they decided to chase after something else.
Grek8899
Aug 19 2009, 20:08
Kartamm script in the end of page 21...
I tried it with different factions, intansety etc...
And it worked very well. Got some good firefights.
But for some reason its not workin if my unit is in a group. :(
Major Woody
Aug 19 2009, 20:13
I would like to know if there's anyway to synchronize this module to a trigger instead of a player...? - it's kind of acward when your preparing an attack and the the enemy spawn behind you an take out your whole unit from behind before you got to react... :|
- any suggestions appreciated.. :)
UbiquitousUK
Aug 19 2009, 20:16
Arg, I feel stupid now.
Just in case anyone else makes the same mistake: where it says BIS_ACM in the code that people have been posting, you have to enter the name that you give to your ACM module. Thus, if you make an ACM module with the name BOB, the code would be:
waitUntil {!isNil {BOB getVariable "initDone"}};
waitUntil {BOB getVariable "initDone"};
[1, BOB] call BIS_ACM_setIntensityFunc;
[BOB, 200, 600] call BIS_ACM_setSpawnDistanceFunc;
[["USMC", "RU"], BOB] call BIS_ACM_setFactionsFunc;
[0, 0.5, BOB] call BIS_ACM_setSkillFunc;
[0.2, 0.5, BOB] call BIS_ACM_setAmmoFunc;
["ground_patrol", 1, BOB] call BIS_ACM_setTypeChanceFunc;
["air_patrol", 1, BOB] call BIS_ACM_setTypeChanceFunc;
cobra4v320
Aug 20 2009, 10:10
I didnt see anywhere on this thread how to blacklist areas. I pulled this out of the wiki but Im not sure how to utilize it.
[<ACM reference | Object>, <types | Array of Arrays and / or Markers and / or triggers>] call BIS_ACM_blacklistAreaFunc;
You may place markers with a special naming pattern BIS_ACM_X (where X has to start at 1 and may not skip any numbers). The areas defined by these markers are automatically blacklisted and the markers deleted. I have placed BIS_ACM_1 into a marker name, will that be enought to blacklist an area?
cobra4v320
Aug 21 2009, 19:03
Here is a mission with working ACM and SOM modules on Utes.
http://www.armaholic.com/page.php?id=6940
Arg, I feel stupid now.
Just in case anyone else makes the same mistake: where it says BIS_ACM in the code that people have been posting, you have to enter the name that you give to your ACM module. Thus, if you make an ACM module with the name BOB, the code would be:
waitUntil {!isNil {BOB getVariable "initDone"}};
waitUntil {BOB getVariable "initDone"};
[1, BOB] call BIS_ACM_setIntensityFunc;
[BOB, 200, 600] call BIS_ACM_setSpawnDistanceFunc;
[["USMC", "RU"], BOB] call BIS_ACM_setFactionsFunc;
[0, 0.5, BOB] call BIS_ACM_setSkillFunc;
[0.2, 0.5, BOB] call BIS_ACM_setAmmoFunc;
["ground_patrol", 1, BOB] call BIS_ACM_setTypeChanceFunc;
["air_patrol", 1, BOB] call BIS_ACM_setTypeChanceFunc;
Wow, naming the module and using the above with a trigger actually seems to have fixed my troubles with acm, at least so it seems now.
deadactionman
Aug 25 2009, 14:24
Got the module working fiine, but as soon as I try to define groups using BIS_ACM_addGroupClassesFunc, I get nothing!
The syntax is correct, but no units ever show up. However, as an experiment, I setup a radio trigger to display the names of all units on the map. When the mission starts, there's just me, the ACM and a Game Logic (which seems to get spawned as part of the ACM). After a few seconds of running around, more GLs start turning up. Still no sign of any actual units, just a map filled with invisible GLs. I assume the GLs are used as spawn locations for the soon to appear units? If I comment out BIS_ACM_addGroupClassesFunc, everything works fine, but every class turns up... not quite what I'm after.
Has anyone cracked this yet? The idea of only being able to use custom groups renders the module rather inflexible in my opinion.
luckyhendrix
Aug 25 2009, 15:02
cobra4v320 you're mission actualy requires multiple addons , you should edit with vanila game.
BlackAlpha
Aug 25 2009, 17:29
Got the module working fiine, but as soon as I try to define groups using BIS_ACM_addGroupClassesFunc, I get nothing!
The syntax is correct, but no units ever show up. However, as an experiment, I setup a radio trigger to display the names of all units on the map. When the mission starts, there's just me, the ACM and a Game Logic (which seems to get spawned as part of the ACM). After a few seconds of running around, more GLs start turning up. Still no sign of any actual units, just a map filled with invisible GLs. I assume the GLs are used as spawn locations for the soon to appear units? If I comment out BIS_ACM_addGroupClassesFunc, everything works fine, but every class turns up... not quite what I'm after.
Has anyone cracked this yet? The idea of only being able to use custom groups renders the module rather inflexible in my opinion.
Here's what I use in one of my inits. It's a bunch of stuff I found on the internet and a bunch of comments I added to make it easier to edit. Hope it helps.
Init.sqf
// BIS_ACM is module name.
waitUntil {!isNil {BIS_ACM getVariable "initDone"}};
waitUntil {BIS_ACM getVariable "initDone"};
sleep 5;
// Sets frequency and number of patrols (between 0 and 1. 0 is lowest and 1 is highest).
// Default: 0.5
//
[1, BIS_ACM] call BIS_ACM_setIntensityFunc;
// Min/max spawn distance.
// Default: 500, 1000
//
[BIS_ACM, 400, 600] call BIS_ACM_setSpawnDistanceFunc;
// Factions to be spawned. Pick from: USMC, CDF, RU, INS, GUE.
// Default: "USMC", "CDF", "RU", "INS", "GUE"
//
[["USMC", "RU", "INS", "GUE"], BIS_ACM] call BIS_ACM_setFactionsFunc;
// Min/max skill range for spawned units (from 0 to 1. 0 is lowest and 1 is highest).
// Default skill levels are based on difficulty setting.
// cadet mode: 0, 0.5
// Other difficulty settings: 0.3, 0.9
//
[0.1, 0.2, BIS_ACM] call BIS_ACM_setSkillFunc;
// Min/max amount of ammo that units will possess (From 0 to 1. 0 is lowest and 1 is highest).
// Default 1, 1
//
[0.5, 0.95, BIS_ACM] call BIS_ACM_setAmmoFunc;
// Type of patrol. With 0 meaning no chance of appearing, and 1 meaning 100% chance. -1 removes patrol type completely.
// Default: 0.75
//
["ground_patrol", 1, BIS_ACM] call BIS_ACM_setTypeChanceFunc;
// Type of patrol. With 0 meaning no chance of appearing, and 1 meaning 100% chance. -1 removes patrol type completely.
// Default: 0.25
//
["air_patrol", 1, BIS_ACM] call BIS_ACM_setTypeChanceFunc;
// Add classes to a custom database and use that instead.
// You can pass both actual CfgGroups Config entries or class name Strings.
// [(Module name), (Array of classes)] call BIS_ACM_addGroupClassesFunc;
// Default: Not configured, which means all classes will be used.
//
[BIS_ACM, ["USMC_TankPlatoon", "INS_TankSection", "RU_TankPlatoon", "GUE_TankSection"]] call BIS_ACM_addGroupClassesFunc;
// Remove classes from the custom class database during a mission.
// Example: [BIS_ACM, ["USMC_TankPlatoon", "INS_TankSection"]] call BIS_ACM_removeGroupClassesFunc;
//
// Leave array empty to switch back to all classes:
// Example: [BIS_ACM, []] call BIS_ACM_removeGroupClassesFunc;
// All classes are shown below.
/*
// USMC
USMC_InfSquad
USMC_FireTeam
USMC_FireTeam_MG
USMC_FireTeam_AT
USMC_FireTeam_Support
USMC_HeavyATTeam
USMC_SniperTeam
USMC_FRTeam
USMC_FRTeam_Razor
USMC_MotInfSection
USMC_MotInfSection_AT
USMC_MechInfSquad
USMC_MechReconSection
USMC_TankPlatoon
USMC_AH1ZSquadron
USMC_UH1YSquadron
USMC_MV22Squadron
USMC_MQ9Squadron
USMC_F35Squadron
USMC_AV8BFighterSquadron
USMC_AV8BBomberSquadron
// CDF
CDF_InfSquad
CDF_InfSquad_Weapons
CDF_InfSection_AT
CDF_InfSection_AA
CDF_InfSection_MG
CDF_InfSection_Patrol
CDF_SniperTeam
CDF_MotInfSquad
CDF_MotInfSection
CDF_MotInfSection_Weapons
CDF_MechInfSquad
CDF_MechReconSection
CDF_MechATSection
CDF_TankPlatoon
CDF_Mi24DSquadron
CDF_Mi8Squadron
// RU
RU_InfSquad
RU_InfSection
RU_InfSection_AT
RU_InfSection_AA
RU_InfSection_MG
RU_SniperTeam
RUS_ReconTeam
MVD_AssaultTeam
RU_MotInfSquad
RU_MotInfSection_Recon
RU_MotInfSection_Patrol
RU_MechInfSquad_1
RU_MechInfSquad_2
RU_TankPlatoon
RU_Mi24VSquadron
RU_Mi24PSquadron
RU_Pchela1TSquadron
RU_Ka52Squadron
RU_Mi8Squadron
RU_Su34FighterSquadron
// INS
INS_InfSquad
INS_InfSquad_Weapons
INS_InfSection_AT
INS_InfSection_AA
INS_SniperTeam
INS_MilitiaSquad
INS_MotInfSquad
INS_MotInfSection
INS_MechInfSquad
INS_MechInfSection
INS_MechInfSection_AT
INS_TankSection
INS_Mi8Squadron
// GUE
GUE_InfSquad
GUE_InfSquad_Assault
GUE_InfSquad_Weapons
GUE_InfTeam_1
GUE_InfTeam_2
GUE_InfTeam_AT
GUE_GrpInf_TeamAA
GUE_GrpInf_TeamSniper
GUE_MilitiaSquad
GUE_MotInfSection
GUE_MotInfSquad
GUE_MechInfSection
GUE_MechInfSquad
GUE_TankSection
// CIV (Not supported with ACM)
CIV_Crowd
CIV_City_1
CIV_City_2
CIV_Village_1
CIV_Village_2
*/
deadactionman
Aug 25 2009, 20:43
Thanks BlackAlpha!
Apart from the order each function is executed, our scripts are almost identical. Adding the "sleep 5" at the top may have helped too?
Very happy now :bounce3:
BlackAlpha
Aug 25 2009, 23:03
Thanks BlackAlpha!
Apart from the order each function is executed, our scripts are almost identical. Adding the "sleep 5" at the top may have helped too?
Very happy now :bounce3:
I run my game using the "-showScriptErrors" commandline. That will show you all errors ingame, instead of just in the .rpt file. It will allow you to quickly find out what is wrong.
Basically, the above script without the sleep kept giving me errors. I figured it was because the module was not fully initialized at that point, even with the "waituntil" command. So, I added the sleep after the waituntil and then it worked.
I didn't really bother to check it out but I guess you could turn down the sleep to just 1 or two seconds. Not sure, though.
deadactionman
Aug 26 2009, 07:28
I use the -showScriptErrors option and no errors where reported. It just didn't want to spawn any units. I'll try changing the order of the functions and adjust the wait time to try and find out the point at which it stops working. At least I've got a good starting point now :)
Thanks again for your help.
BlackAlpha
Aug 26 2009, 11:59
I use the -showScriptErrors option and no errors where reported. It just didn't want to spawn any units. I'll try changing the order of the functions and adjust the wait time to try and find out the point at which it stops working. At least I've got a good starting point now :)
Thanks again for your help.
The quickest way to find out whether something is being spawned is by only spawning tank platoons at a distance of less then 500 meters, then fly around in a cobra and eventually (after 5 min) they will start popping up.
Charon Productions
Aug 30 2009, 03:11
There seems to be a bug in the Ambient Combat Module script returnRandomGroup.sqf:
_allGroups = _db select _sideSel;
the local variable _sideSel is not defined anywhere in the scope of the script.
When using the default database, no problems occur.
Maybe the array processing of the custom groups has a bug?
The custom group array is initialized in the following way (addGroupClasses.sqf) :
_dbCustom =
[
[
[], [], [], [], []
],
[
[], [], [], [], []
],
[
[], [], [], [], []
],
[
[], [], [], [], []
],
[
[], [], [], [], []
]
]
The selector-variable _sideSel is intended to select a group-subarray of a specific side out of the main array.
0 _cfgWest >> "USMC"
1 _cfgWest >> "CDF"
2 _cfgEast >> "RU"
3 _cfgEast >> "INS"
4 _cfgGuerilla >> "GUE"
There is 5 enclosed arrays which relate to the group classes:
0 ["Infantry"]
1 ["Motorized"]
2 ["Mechanized"]
3 ["Armored"]
4 ["Air"]
It is possible to address that global array directly to pass the desired
group types.
Attention has to be paid to the fact that the sub-array elements
are not the group name strings but their group-config entries !
This little test illustrates it:
_db = BIS_ACM getVariable "dbGroups";
hint format ["dbGroups default groups : %1",_db];
So if it is desired to just spawn infantry and no tanks etc. choosing the group "USMC_InfSquad",
then the proper syntax to address that directly in a script would be :
Example 1:
_groupname="USMC_InfSquad";
_configentry = [_groupname call BIS_ACM_convertGroupStringToConfigFunc];
_dbCustom=[
[
_configentry,[],[],[],[]
],
[
[],[],[],[],[]
],
[
[],[],[],[],[]
],
[
[],[],[],[],[]
],
[
[],[],[],[],[]
]
];
BIS_ACM setVariable ["dbGroupsCustom", _dbCustom];
To just spawn russian sniper teams and no tanks etc. (group name "ru_sniperteam"), the proper syntax would be :
Example 2:
_groupname="ru_sniperteam";
_configentry = [_groupname call BIS_ACM_convertGroupStringToConfigFunc];
_dbCustom=[
[
[],[],[],[],[]
],
[
[],[],[],[],[]
],
[
_configentry,[],[],[],[]
],
[
[],[],[],[],[]
],
[
[],[],[],[],[]
]
];
BIS_ACM setVariable ["dbGroupsCustom", _dbCustom];
I hope this helps some of you to make more selective use of the wonderful ambient combat module. :thumb:
Regards,
Charon
So here is what i did :
_LogicCenter = createCenter sideLogic;
_LogicGroup = createGroup _LogicCenter;
BIS_ACM = _LogicGroup createUnit ["AmbientCombatManager", [0, 0, 0], [], 0, ""];
BIS_ACM synchronizeObjectsAdd [player];
sleep 5;
[] spawn {
waitUntil {!(isnil "BIS_fnc_init")};
sleep 5;
[BIS_ACM, 200, 400] call BIS_ACM_setSpawnDistanceFunc;
[0.2, 0.8, BIS_ACM] call BIS_ACM_setAmmoFunc;
[0.2, 0.5, BIS_ACM] call BIS_ACM_setSkillFunc;
[["RU"], BIS_ACM] call BIS_ACM_setFactionsFunc;
[1, BIS_ACM] call BIS_ACM_setIntensityFunc;
[BIS_ACM,
[
"RU_InfSquad",
"RU_InfSection",
"RU_InfSection_AT",
"RU_InfSection_AA",
"RU_InfSection_MG",
"RU_SniperTeam",
"RUS_ReconTeam",
"MVD_AssaultTeam"
]
] call BIS_ACM_addGroupClassesFunc;
};
all you have todo is:
- place a FunctionModule
- place a player
- copy the code to "Init.sqf"
now the INIT will create a ACMModule, sync it to you an will start spawning only RU Inf Troops .
Hope I could help you out!!! :)
Charon Productions
Aug 30 2009, 10:26
@<hidden>:
Tested your approach.
Seems to work fine so far and is more user-friendly ;)
Cool, now that makes a couple of spawn-scripts obsolete from now on since the ACM is more lighter.
I have one problem with the ACM:
WORKS:
If I create a lan multiplayer game to test it, no problem: the hostile invasion begin.
DOESN'T WORKS:
If I put the mission on the dedicated server or I create an internet multiplayer game.
And then I test with 2 testers or more...
Nothing append :eek::eek::eek:
ACM module is sync to an AI car.
and activated with a trigger:
["ground_patrol", 1, BIS_ACM1] call BIS_ACM_setTypeChanceFunc;
["air_patrol", 1, BIS_ACM1] call BIS_ACM_setTypeChanceFunc;
Is it a bug? or the bug is me ? :butbut:
I just try to sync to the team leader, but it doesn't change anything :confused:
no luck ...........................
Did you create a ACM Module with name "BIS_ACM1" ? thats the ModuleName you use in ["ground_patrol", 1, BIS_ACM1] call BIS_ACM_setTypeChanceFunc;
BlackAlpha
Sep 2 2009, 18:05
There seems to be a bug in the Ambient Combat Module script
...
I hope this helps some of you to make more selective use of the wonderful ambient combat module. :thumb:
Regards,
Charon
Not sure what you are trying to say but I tested out that var and the var is defined just fine. As for spawning custom groups, did you try BIS_ACM_addGroupClassesFunc?
Did you create a ACM Module with name "BIS_ACM1" ? thats the ModuleName you use in ["ground_patrol", 1, BIS_ACM1] call BIS_ACM_setTypeChanceFunc;
Sure ! it's works pretty good in lan game (alone).
BlackAlpha
Sep 2 2009, 18:21
Sure ! works pretty good in lan game.
You could try to sync it to a "man" (the leader of a group) instead of a vehicle.
Also, the AI car might be too far away from the players. With the default settings, the spawn distance is between 500 and 1000 meters. So, maybe things are spawning but they are just too far away from the players for them to notice it.
Finally, what do you mean with "activated with a trigger"? The code you posted does not activate the module, it simply changes two settings to different values but the module should already be active before you run those two line of codes.
The init:
// ====================================================================================
//ACM1
player sidechat "ACM1 loading.";
waitUntil {!isNil {BIS_ACM1 getVariable "initDone"}};
player sidechat "ACM1 BIS not null.";
waitUntil {BIS_ACM1 getVariable "initDone"};
player sidechat "ACM1 Init Done.";
//Sets frequency and number of patrols (0-1). BIS_ACM is module name
[1, BIS_ACM1] call BIS_ACM_setIntensityFunc;
//min max spawn distance
[BIS_ACM1, 300, 600] call BIS_ACM_setSpawnDistanceFunc;
//factions to be spawned
[["RU","GUE","INS"], BIS_ACM1] call BIS_ACM_setFactionsFunc;
//Skill range for spawned units
[0.8, 0.9, BIS_ACM1] call BIS_ACM_setSkillFunc;
//Amount of ammo spawned units possess
[0.8, 0.9, BIS_ACM1] call BIS_ACM_setAmmoFunc;
//Type of patrol. With 0 meaning no chance of appearing, and 1 meaning 100% chance. -1 removes patrol type completely.
["ground_patrol", 0, BIS_ACM1] call BIS_ACM_setTypeChanceFunc;
["air_patrol", 0, BIS_ACM1] call BIS_ACM_setTypeChanceFunc;
// ====================================================================================
The trigger:
class Item7
{
position[]={2897.0452,571.70068,15728.278};
interruptable=1;
age="UNKNOWN";
expCond="Trigger100";
expActiv="null0 = execVM ""acm1start.sqf"";";
class Effects
{
};
};
acm1start.sqf:
["ground_patrol", 1, BIS_ACM1] call BIS_ACM_setTypeChanceFunc;
["air_patrol", 1, BIS_ACM1] call BIS_ACM_setTypeChanceFunc;
MrBob sidechat "Be carrefull we just decipher enemy communications !";
I have already tried to sync it with the teamleader same issue.
After some test:
It's not a multiplayer issue!
If I play alone I can teleport directly near the ACM (to test it) ! So I don't see the problem...
---------------------------------
Explanations:
---------------------------------
The ACM module looks to be inactive after few time, even if an AI is sync to the ACM and is near it.
Situation:
ACM is sync to an ally car who is in the ally base near the acm, far from the human players.
1/ The players must wait that the helicopters land in.
2/ the players go in the helicopters and fly (12 kilometers) to the ally base.
3/ then (about 15 minutes after the begining of the mission) the trigger activate the ACM when helicopters land in the ally base.
If someone have a tip, he is welcome !!!!!
NouberNou
Sep 10 2009, 06:02
I have a question I think I already know is a no answer.
I have a few maps for the unit that I am that we use to do LANDNAV training.
Basically it spawns you randomly within a certain distance of where you start and the goal is to use the terrain and your compass and map to figure out where you are, and then meet up with your team mates someplace.
We want to add in the ACM to this so that players can practice evasion skills while they move to their rally point.
The issue I have run into is that it seems like the ACM just wants to spawn on one player. I have tried syncing the ACM to every member in the group, and I have also tried making each player their own group and syncing the ACM to each player-group. The ACM seems to work once again on just the unit marked as the player and not on any of the playable units.
Also, when I die and respawn it seems to break the ACM, it no longer registers the player it was syncing too and no more units are spawned...
Does anyone know if what I am trying is possible or if I am just SOL?
*edit*
I think it does work if it is synced to each user as a group, it just doesnt work when they respawn... Anyone know a way around this?
cobra4v320
Sep 10 2009, 10:45
Did anyone notice that there is an air_drop.sqf under the ACM Module? There is nothing in it, maybe something in the future.
Someone have already tried to move the ACM during the game?
kylania
Sep 10 2009, 19:37
Did anyone notice that there is an air_drop.sqf under the ACM Module? There is nothing in it, maybe something in the future.
Functions module has the BIS_fnc_supplydrop that is used by SOM I think, or can be used separately.
cobra4v320
Sep 10 2009, 21:23
Kylania
I think there is a difference between the two (supply_drop and air_drop), it would be nice to have enemy helicopters flying in and enemy soldiers jumping out at random.
NouberNou
Sep 11 2009, 23:19
I have a question I think I already know is a no answer.
I have a few maps for the unit that I am that we use to do LANDNAV training.
Basically it spawns you randomly within a certain distance of where you start and the goal is to use the terrain and your compass and map to figure out where you are, and then meet up with your team mates someplace.
We want to add in the ACM to this so that players can practice evasion skills while they move to their rally point.
The issue I have run into is that it seems like the ACM just wants to spawn on one player. I have tried syncing the ACM to every member in the group, and I have also tried making each player their own group and syncing the ACM to each player-group. The ACM seems to work once again on just the unit marked as the player and not on any of the playable units.
Also, when I die and respawn it seems to break the ACM, it no longer registers the player it was syncing too and no more units are spawned...
Does anyone know if what I am trying is possible or if I am just SOL?
*edit*
I think it does work if it is synced to each user as a group, it just doesnt work when they respawn... Anyone know a way around this?
Sorry to bump my own post, but I'd really like to know if anyone has had any experience with this?
I think it mainly has to do with respawning during MP play.
cobra4v320
Sep 12 2009, 01:53
I believe the ACM module only works if you have more than one member in your group. How do you have your group setup?
NouberNou
Sep 12 2009, 02:20
I believe the ACM module only works if you have more than one member in your group. How do you have your group setup?
No, it does work on a single unit.
The issue is that it only works on the lead unit. If the group is spread all over the map, which it is in my case then the units only spawn around the leader.
When I put each person in their own group I am pretty sure it worked right and spawned around everyone, but when we died we lost sync with the ACM and it no longer spawned units around us...
cobra4v320
Sep 12 2009, 07:01
Right out of the modules.pbo
//Shut down if the group does not contain at least one other unit.
if ((count _syncObjs) == 0) exitWith {debugLog "Log: [ACM] Shutting down. No units were synchronized to the ACM."};
//Only the first unit's group is checked. We only allow one group synchronized with the ACM.
andersson
Sep 12 2009, 15:14
This module is good for easy fast action but is lacking for more complex MP missions. I cant finnish off my mission until DAC is released for arma2..
Powered by vBulletin® Version 4.2.0 Copyright © 2013 vBulletin Solutions, Inc. All rights reserved.