snkman 351 Posted July 27, 2010 @Banderas Yes thanks this already was reported. @SafetyCatch GL4 do overwrite absolutly nothing. The strange thing i have discovered the last few day's is the micro A.I. Many command's simply don't work like expected after A.I. has detected a enemy... They do what they want and this is really very stupid. Guess FSM can do the trick. ;) Share this post Link to post Share on other sites
EddiePrice 16 Posted July 27, 2010 (edited) @SafetyCatch GL4 do overwrite absolutly nothing. The strange thing i have discovered the last few day's is the micro A.I. Many command's simply don't work like expected after A.I. has detected a enemy... They do what they want and this is really very stupid. Guess FSM can do the trick. ;) I don't follow sorry. This doesn't seem to happen when I run the game without GL4. My question still stands, can you turn off GL4 AI changes for induvidual enemy AI? Edited July 27, 2010 by SafetyCatch Share this post Link to post Share on other sites
snkman 351 Posted July 27, 2010 Yes of course you can initialize enemy A.I. groups manuelly in the editor. You simply need to wrote something in the initialize field of the enemy A.I. group leader to ID the group. 1. Enemy A.I. group: cg1 = group this; 2. Enemy A.I. group: cg2 = group this; 3. Enemy A.I. group: cg3 = group this; And so on... Share this post Link to post Share on other sites
EddiePrice 16 Posted July 27, 2010 I don't think you understand my question. I want certain units in the editor to not have the GL4 AI effects without using a module so the mission doesn't require GL4. I don't see how just naming a group would have this outcome? Share this post Link to post Share on other sites
snkman 351 Posted July 27, 2010 Just tell me which effects? "Special FX" or "Enemy A.I. Enhancement" features? I really don't get what you want... May you could tell me a bit more exactly what you are after. Share this post Link to post Share on other sites
EddiePrice 16 Posted July 27, 2010 Sorry SNKMAN I'll make it clear. I want it so certain units in the editor don't use the Enemy A.I. Enhancement features. Share this post Link to post Share on other sites
snkman 351 Posted July 27, 2010 Well not a problem. ;) Okay here we go again: :) 1. Enemy A.I. group: cg1 = group this; 2. Enemy A.I. group: cg2 = group this; 3. Enemy A.I. group: cg3 = group this; This is the way it is done. Belive me. ;) Every enemy A.I. group leader with a cgX = group this; in his initialize field will be initialized by the "Enemy A.I. Enhancement" feature of Group Link 4. So if you need specific units/groups which should NOT use the "Enemy A.I. Enhancement" then simply dont define them. B.t.w.: cg = Custom Group and they work the same way like the "Group Link 4: Custom" module. Share this post Link to post Share on other sites
EddiePrice 16 Posted July 27, 2010 SNKMAN, I'm sorry but this doesn't seem to be the case at all. I've never defined a unit or group, they all use the GL4 AI Enhancement by default. We'll carry on this conversation via PM if it's easier. Share this post Link to post Share on other sites
snkman 351 Posted July 27, 2010 I've never defined a unit or group, they all use the GL4 AI Enhancement by default. Yes that's right "By Default" every enemy A.I. group will be initialized automatically but i have build some extensions to make thing's like this happend so ppl can define them. Okay simply go to the editor ( Enable the Debug Markers ) create a player and 4 enemy A.I. groups. Now give 2 of the 4 enemy A.I. groups the name "cg1 = group this" and the second "cg2 = group this". If you now preview the mission you can see that only the enemy A.I. groups with the "cgX = group this" have markers the other 2 enemy A.I. groups don't have any markers becouse they was not initialized. Why don't you simply try it? It takes you 1 minute? B.t.w.: The ReadMe.pdf explains this too. Share this post Link to post Share on other sites
EddiePrice 16 Posted July 27, 2010 (edited) Ok I'll try it out thanks SNKMAN. What I wanted to confirm was the this method doesn't require putting modules down and that putting cg, dg or sg groups in was the way to initiate the manual selection of groups that use the enhancements. Edited July 27, 2010 by SafetyCatch Share this post Link to post Share on other sites
snkman 351 Posted July 27, 2010 Okay so it works. :) Nice. Share this post Link to post Share on other sites
EddiePrice 16 Posted July 27, 2010 Yeah sorry for the mixup I wanted to know if there was an "off switch" as such, rather than an "on switch". Thanks though this method works fine. Share this post Link to post Share on other sites
snkman 351 Posted July 28, 2010 Not a problem. ;) Well just in mind: You can customize the "Enemy A.I. Enhancement" by synchronizing enemy A.I. groups directly with each other too. Example: 5 Enemy A.I. Groups:Synchronize the enemy A.I. groups 1 | 2 | 3 directly with each other and only thouse 3 connected enemy A.I. groups can request and be requested by any of the synchronized groups as reinforcement. The other 2 enemy A.I. groups can not be requested by the 3 synchronized enemy A.I. groups as reinforcement and the 2 not synchronized enemy A.I. groups can not be requested as reinforcement by the 3 synchronized groups. Some kind of network very usable for towns or any other specific areas. Share this post Link to post Share on other sites
snkman 351 Posted July 29, 2010 Group Link 4 Work In Progress Videos: -------------------------------------------- Well this is something i was missing all the time. :) It's a really outstanding feature which gives a mission designer / modder a really greate view about what and how A.I. is doing right at the moment. The debug idea is from a B.I.S. "Formation FSM" which was available for ArmA 1. I really have absolutely no clue why B.I.S. do not give us such nice debugging features by default. Also many thank's to HeliJUnkie which has explained me some "FSM" stuff and showed me the "Formation FSM" debug. - Real Time Debug: 8QMMXYXLYz8 Share this post Link to post Share on other sites
kremator 1065 Posted July 29, 2010 WOW .... very nice. Now if you could capture ALL that data ... you have a video playback device ! Share this post Link to post Share on other sites
snkman 351 Posted July 29, 2010 I'm pretty sure we could capture all thouse data's but i guess this would really overdo it. This already is very nice becouse you now finally have some real time visuals about how A.I. is moving and fighting. Share this post Link to post Share on other sites
Protegimus 0 Posted July 29, 2010 SNKMAN care to share how to enable this properly? I see the code in the .fsm, but initial efforts to enable it aren't working. Also, I'd like to emulate the rather eloquent method you use to nest your functions in arrays - could you tell me where abouts do you initialise the functions? Thanks, Protegimus Share this post Link to post Share on other sites
snkman 351 Posted July 30, 2010 Hi Protegimus, the "Real Time" debug is scripted and is not available in ArmA 2 or OA. I made it by myself. Also, I'd like to emulate the rather eloquent method you use to nest your functions in arrays. Well this is pretty easy if you once understand how it works. ;) Okay let's create a function first: My_Function.sqf My_Function = [ // //////////////////////////////////////////// // First function of the function array // //////////////////////////////////////////// {private ["_object","_bool"]; _object = _this select 0; if (_object == player) then { _bool = True; } else { _bool = False; }; _bool }, // //////////////////////////////////////////// // Second function of the function array // //////////////////////////////////////////// {private ["_player"]; _player = _this select 0; if (alive _player) then { hint "Player is alive."; } else { hint "Player is dead."; }; } ]; The first function in the array return a value ( Bool ) so you can use this function to return something to the caller script. The second function in the array simply check if the player is alive or not and display a "hint" message. Now you need to store the function ( My_Function.sqf ) in the engine memory by doing: call compile preprocessFileLineNumbers "My_Function.sqf"; After the function was stored you can call or spawn the function by doing: Call the first function: _bool = [_object] call (My_Function select 0); if (_bool) then { ....... } else { ....... }; The variable "_bool" is what the first function has returned. Call the second function: [player] call (My_Function select 1); The hint message will be displayed given to the state of the player. You can do a lot more crazy things with this way of scripting and the best is that it's totally resource friendly becouse you can store hundret of functions in only 1 global variable. ;) So the basics are: The first function in the array will be called with: [] call (Function_Name [b]select 0[/b]); The second function in the array will be called with: [] call (Function_Name [b]select 1[/b]); The third function in the array will be called with: [] call (Function_Name [b]select 2[/b]); And so on... You can use as many functions as you like and you can do with them what ever you like. One more thing: If you use "sleep" or "waitUntil" in a function then make sure to use "[] spawn" instead of "call". Share this post Link to post Share on other sites
Protegimus 0 Posted July 30, 2010 Thanks for the explanation SNKMAN, much appreciated. So the debug stuff is not the same as that which BIS included in ArmA 2 formationCDanger.fsm, or did you produce something yourself using the ArmA formation.fsm as a reference? Protegimus Share this post Link to post Share on other sites
snkman 351 Posted July 30, 2010 Yes i did it myself. In ArmA 1 there was exactly the same debug system for unit's formation / combat behaviour in FSM but in ArmA 2 this is not available. So i coded my own one becouse this simply is a awesome way to debug A.I. You can see what exactly A.I. is doing even if 500 meter's away or behind a mountain or any other object. It's simply a particle which will change it's color and velocity given to the behaviour and some other things like looking for cover. Share this post Link to post Share on other sites
KeyCat 131 Posted July 31, 2010 Yes i did it myself.In ArmA 1 there was exactly the same debug system for unit's formation / combat behaviour in FSM but in ArmA 2 this is not available. So i coded my own one becouse this simply is a awesome way to debug A.I. You can see what exactly A.I. is doing even if 500 meter's away or behind a mountain or any other object. It's simply a particle which will change it's color and velocity given to the behaviour and some other things like looking for cover. Great stuff, looks like it could help alot when evaluating AI's beavior! Keep it up SNKMAN and sorry to say that I do not had enough time with your latest yet - mostly played PvP lately! /KC Share this post Link to post Share on other sites
snkman 351 Posted July 31, 2010 Yes it really is by far the best system i have seen so far to debug A.I. behaviours. Really a shame B.I.S. has removed it in the release version... Keep it up SNKMAN and sorry to say that I do not had enough time with your latest yet - mostly played PvP lately! Really not a problem. :) Share this post Link to post Share on other sites
Richey79 10 Posted August 1, 2010 Is the debugging system going to be available to use without using the whole GL4 suite? It looks fantastic, and I'd find it really useful, but don't always want to use GL4. Thanks, Share this post Link to post Share on other sites
snkman 351 Posted August 1, 2010 Yes i already was playing with the thought to make a stand alone version of it. ;) Share this post Link to post Share on other sites
viper[cww] 14 Posted August 1, 2010 I simply love the GL4 mod, one of the best mods out there, and it can all be modified to the users wishes in the config, simply great :) Share this post Link to post Share on other sites