Jump to content
Sign in to follow this  
snkman

Group Link 4 Special FX Edition

Do you use the "Script/Mission Based" initialize?  

69 members have voted

  1. 1. Do you use the "Script/Mission Based" initialize?

    • Yes
      24
    • No
      33
    • Sometimes
      12


Recommended Posts

@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

@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 by SafetyCatch

Share this post


Link to post
Share on other sites

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

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

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

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

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

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
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

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 by SafetyCatch

Share this post


Link to post
Share on other sites

Okay so it works. :)

Nice.

Share this post


Link to post
Share on other sites

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

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

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

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

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

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

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

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

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
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

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

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

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

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

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×