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

Anything introduced by betas that dont work probably wont becuase this addon hasn't been supported for quite a while now to update with anything new.

Share this post


Link to post
Share on other sites

Well, in the end, it's no new feature, when spawned the AI was handled by other computers already before the HC was implemented. The question is if the creator thought about that when he created GL4.

Share this post


Link to post
Share on other sites

Is SNKMAN (ElicXX) still around? His last activity was 2012 and also upload to youtube. I have a personal repo with working port of GL4 (script based) that I will be using in a upcoming mission. I still have some work to do in regards to adding staticmortar/air units into the arty and airstrike arrays (as I spawn in units after mission start) but overall GL4 is working perfectly for my intended uses.

In the spirit of the arma community, I release all of my personal work under creative commons so this sort of thing shall never happen to my code, it's free to use by anyone for any non commercial use. I know GL4's ELUA states for A2 only etc but as the project is abandoned and the original authors are long gone, I personally don't have moral issues with using this code in A3 (private use or released not in whole but in part of another mission/project). I shall never release it standalone (GL4 port A3, GL5 etc) and plan to use it anyway unless I an explicitly told not to by SNKMAN. Such I feel would be different if it wasn't the ArmA community as we tend to be a group of hobbiest, I don't port or otherwise use close source/copyrighted code in commercial products, etc.

I would like to also get ahold of the unreleased BETA GL4 code for further documentation/improvements and would also enjoy the help of another dev or two for some unresolved issues with the code. I follow good code guidelines like using a GIT repo with bugtracker and wiki :)

Thanks!

Issues?

Skype: Zorrobyte91

Edited by zorrobyte

Share this post


Link to post
Share on other sites

Thanks Zorro having GL4 updated and working in A3 would be a dream... especially if combined (once again) with DAC. I'm attempting to contact DAC author as we speak to sort out permissions but like SNKMAN he has not been active for some time.

Share this post


Link to post
Share on other sites
Thanks Zorro having GL4 updated and working in A3 would be a dream... especially if combined (once again) with DAC. I'm attempting to contact DAC author as we speak to sort out permissions but like SNKMAN he has not been active for some time.

My focus is solely on AI enhancements and execution via script/mission.

I'll just leave this here

https://bitbucket.org/zorrobyte/gl4-for-a3

Edited by zorrobyte

Share this post


Link to post
Share on other sites

i must admit and no disrepect other mod creators. But ive tried all the big AI mods, Zeus & ASR. I stumbled on this one hearing lots about GL4 but not really wanted to jump ship, mainly thinking the claims were going to be no different from other mods.

BUT...

having tried gl4 in campaign mode. (1st czeck mission) it works wonders for AI!!! YOur team actually get straight into a vehicle with this mod, no more running around and around then finally getting in car.. This with a sprinkle of other mods..

-nvg googles (full screen)

-copy my stance

-STHUD

-Mycontrolmenu

-SLX wounds

-CarsfasterPVP

-AI pistol

-allgunnerweapons

and i have a great arma modded game. Feels like it works like arma should... ill try further to see if campaign triggers/scripts are broken, but i like the way gl4 randomised the targets. I did have to turn off reinforcements as you do get the whole map worth of enemies come and get you. BUt now the Ai seem/are clever, they actually take cover and stick with you in formations and patrolling.

This does seem different to the other mods, im not entirely sure why, but somethings is better..

dan

Share this post


Link to post
Share on other sites

i just added this to me mod folders, and ran the mod like the others..

have i actually got this mod enabled now? or aim i imagining its better,?

i do get the markers on map, and the code initialising at the beginning?

im sure its running?!

also is there anything gl4 doesnt do that say zeus and asr do?

Edited by msportdan

Share this post


Link to post
Share on other sites

i must admit.. ive used this a bit in SP and this is the best mod out there, that actually feels like arma should be. Now captives follow you AI get in vehicles straight away, gunners aim and fire themselves. This and the few mods above, will get your arma game up n running to a much better experience in my view..

Cheers for the creators of this and all the mods, listed. :)

Share this post


Link to post
Share on other sites

Well, my friendly A.I rearm value (on Global.sqf)are like this:

// Choose if friendly A.I. should be able to rearm if they are running out of ammo.

// True / False, default is False

GL4_Global set [67, True];

Is it set right? Was I supposed to erase both slashes behing GL4? Because I tried placing a unit on the editor (Yes, I placed the modules there) and switched to it, dropped all it's ammo and switch back to me, yet the unit didn't try to rearm, he only yelled "Out of Ammo", any idea about what's wrong here?

By the way, don't know if that matters, my "Global.SQF" (and all other SQF.) file(s) are inside my Steamapps/ArmA2OA/Userconfig/GL4 folder. Should I just drop the files inside ArmA2OA/Userconfig folder, without the GL4 folder?

Share this post


Link to post
Share on other sites
Well, my friendly A.I rearm value (on Global.sqf)are like this:

// Choose if friendly A.I. should be able to rearm if they are running out of ammo.

// True / False, default is False

GL4_Global set [67, True];

Is it set right? Was I supposed to erase both slashes behing GL4? Because I tried placing a unit on the editor (Yes, I placed the modules there) and switched to it, dropped all it's ammo and switch back to me, yet the unit didn't try to rearm, he only yelled "Out of Ammo", any idea about what's wrong here?

By the way, don't know if that matters, my "Global.SQF" (and all other SQF.) file(s) are inside my Steamapps/ArmA2OA/Userconfig/GL4 folder. Should I just drop the files inside ArmA2OA/Userconfig folder, without the GL4 folder?

Well Arch3rAc3, part of the problem is a design flaw maybe?

This global variable(GL4_Global select 67) is used for rearming, as noted in the user config file, but also referenced in SNKMAN's GL4_Get_In_F.sqf via GL4_Preprocess.sqf:

GL4_Preprocess.sqf

if (isServer) then
{
call compile preprocessFile ([color="#0000FF"]GL4_Path+"GL4\GL4_Functions\GL4_System_F\GL4_Get_In_F.sqf"[/color]);

call compile preprocessFile (GL4_Path+"GL4\GL4_Functions\GL4_System_F\GL4_Spawn_F.sqf");

_a = allGroups;

_b = 0;

while { (_b < count _a) } do
{
	_c = (_a select _b);

	_d = (vehicle leader _c);

	if (_d isKindOf "Man") then
	{
		[_d] call (GL4_Get_In_F select 0);
	};

	_b = _b + 1;
};
};

Which leads to:

GL4_Get_In_F = [

// ////////////////////////////////////////////////////////////////////////////
// Get In Function #0
// ////////////////////////////////////////////////////////////////////////////
// Get In
// Script by =\SNKMAN/=
// ////////////////////////////////////////////////////////////////////////////
{private ["_a","_b","_c","_d"];

_a = _this select 0;

if ([color="#0000FF"]GL4_Global select 67[/color]) then
{
	_b = synchronizedObjects _a;

	if (count _b > 0) then
	{
		_c = 0;

		while { (_c < count _b) } do
		{
			_d = (_b select _c);

			if ( { (_d isKindOf _x) } count (GL4_Resource select 44) > 0) exitWith
			{
				[_a, _d] call (GL4_Get_In_F select 1);
			};

			_c = _c + 1;
		};
	};
};

},

// ////////////////////////////////////////////////////////////////////////////
// Get In Function #1
// ////////////////////////////////////////////////////////////////////////////
// Get In
// Script by =\SNKMAN/=
// ////////////////////////////////////////////////////////////////////////////
{private ["_a","_b","_c","_d","_e"];

_a = _this select 0;
_b = _this select 1;

_c = [ True, True, True, True, True, True ];

_d = [];

{if (_x isKindOf "Man") then {_d = _d + [_x]} } forEach units _a;

_e = -3;

while { ( (count _d > 0) && (_e <= count units _a) ) } do
{
	if (_c select 0) then
	{
		(_d select 0) moveInDriver _b;

		if ( (_d select 0) in _b) then
		{
			_c set [0, False];

			_d = _d - [ (_d select 0) ];
		}
		else
		{
			_c set [0, False];
		};
	}
	else
	{
		if (_c select 1) then
		{
			(_d select 0) moveInGunner _b;

			if ( (_d select 0) in _b) then
			{
				_c set [1, False];

				_d = _d - [ (_d select 0) ];
			}
			else
			{
				_c set [1, False];
			};
		}
		else
		{
			if (_c select 2) then
			{
				(_d select 0) moveInCommander _b;

				if ( (_d select 0) in _b) then
				{
					_c set [2, False];

					_d = _d - [ (_d select 0) ];
				}
				else
				{
					_c set [2, False];
				};
			}
			else
			{
				if (_c select 3) then
				{
					(_d select 0) moveInTurret [_b, [0] ];

					if ( (_d select 0) in _b) then
					{
						_c set [3, False];

						_d = _d - [ (_d select 0) ];
					}
					else
					{
						_c set [3, False];
					};
				}
				else
				{
					if (_c select 4) then
					{
						(_d select 0) moveInTurret [_b, [1] ];

						if ( (_d select 0) in _b) then
						{
							_c set [4, False];

							_d = _d - [ (_d select 0) ];
						}
						else
						{
							_c set [4, False];
						};
					}
					else
					{
						if (_c select 5) then
						{
							(_d select 0) moveInCargo _b;

							if ( (_d select 0) in _b) then
							{
								_d = _d - [ (_d select 0) ];
							}
							else
							{
								_c set [5, False];

								if (count _d > 0) then
								{
									(_d select 0) setPos (getPos _b);

									[_d, _b] call (GL4_Get_In_F select 2);
								};
							};
						};
					};
				};
			};
		};
	};

	_e = _e + 1;
};

},

// ////////////////////////////////////////////////////////////////////////////
// Get In Function #2
// ////////////////////////////////////////////////////////////////////////////
// Get In
// Script by =\SNKMAN/=
// ////////////////////////////////////////////////////////////////////////////
{private ["_a","_b","_c","_d","_e","_f","_g"];

_a = _this select 0;
_b = _this select 1;

_c = nearestObjects [ (_a select 0), (GL4_Resource select 44), 20];

_c = _c - [_b];

if (count _c > 0) then
{
	_d = 0;

	while { (_d < count _c) } do
	{
		_e = (_c select _d);

		if ( !(locked _e) && (canMove _e) && (count (crew _e) == 0) ) exitWith
		{
			[_a, _e] call (GL4_Get_In_F select 3);
		};

		_d = _d + 1;
	};
};

[_a] call (GL4_Get_In_F select 4);

},

// ////////////////////////////////////////////////////////////////////////////
// Get In Function #3
// ////////////////////////////////////////////////////////////////////////////
// Get In
// Script by =\SNKMAN/=
// ////////////////////////////////////////////////////////////////////////////
{private ["_a","_b","_c","_d","_e"];

_a = _this select 0;
_b = _this select 1;

_c = [ True, True, True, True, True ];

_d = _a;

_e = -3;

while { ( (count _d > 0) && (_e <= count _a) ) } do
{
	if (_c select 0) then
	{
		(_d select 0) moveInDriver _b;

		if ( (_d select 0) in _b) then
		{
			_c set [0, False];

			_d = _d - [ (_d select 0) ];
		}
		else
		{
			_c set [0, False];
		};
	}
	else
	{
		if (_c select 1) then
		{
			(_d select 0) moveInGunner _b;

			if ( (_d select 0) in _b) then
			{
				_c set [1, False];

				_d = _d - [ (_d select 0) ];
			}
			else
			{
				_c set [1, False];
			};
		}
		else
		{
			if (_c select 2) then
			{
				(_d select 0) moveInCommander _b;

				if ( (_d select 0) in _b) then
				{
					_c set [2, False];

					_d = _d - [ (_d select 0) ];
				}
				else
				{
					_c set [2, False];
				};
			}
			else
			{
				if (_c select 3) then
				{
					(_d select 0) moveInTurret [_b, [0] ];

					if ( (_d select 0) in _b) then
					{
						_c set [3, False];

						_d = _d - [ (_d select 0) ];
					}
					else
					{
						_c set [3, False];
					};
				}
				else
				{
					if (_c select 4) then
					{
						(_d select 0) moveInTurret [_b, [1] ];

						if ( (_d select 0) in _b) then
						{
							_c set [4, False];

							_d = _d - [ (_d select 0) ];
						}
						else
						{
							_c set [4, False];
						};
					}
					else
					{
						(_d select 0) moveInCargo _b;

						if ( (_d select 0) in _b) then
						{
							_d = _d - [ (_d select 0) ];
						};
					};
				};
			};
		};
	};

	_e = _e + 1;
};

},

// ////////////////////////////////////////////////////////////////////////////
// Get In Function #4
// ////////////////////////////////////////////////////////////////////////////
// Get In
// Script by =\SNKMAN/=
// ////////////////////////////////////////////////////////////////////////////
{private ["_a","_b","_c","_d","_e","_f"];

_a = _this select 0;

_b = (vehicle leader (_a select 0) );

_c = [];

_d = 0;

while { (_d < count _a) } do
{
	_e = (_a select _d);

	_f = (vehicle _e);

	if (_f isKindOf "Man") then
	{
		_c = _c + [_e];
	};

	_d = _d + 1;
};

if (count _c > 0) then
{
	hint format ["Get In Error:\n%1 had not enough available cargo for %2 units of %3.\nPlease resize the group %3 or choose a vehicle with more available cargo.", typeOf _b, count _c, group _b];
};

}
];

This all has do do with units mounting vehicles, not rearming...

As for the rearming itself, the design is NOT to rearm magazines, but to rearm with weapon from DEAD units:

GL4_Rearm_F = [

// ////////////////////////////////////////////////////////////////////////////
// Rearm Function #0
// ////////////////////////////////////////////////////////////////////////////
// Rearm
// Script by =\SNKMAN/=
// ////////////////////////////////////////////////////////////////////////////
{private ["_a","_b","_c"];

_a = _this select 0;

_b = True;

if ([color="#0000FF"]GL4_Global select 26[/color]) then
{
	if ( { (isPlayer _x) } count (units _a) > 0) then
	{
		if ([color="#0000FF"]GL4_Global select 67[/color]) then
		{
			_b = True;
		}
		else
		{
			_b = False;
		};
	};

	if (_b) then
	{
		while { (alive _a) } do
		{
			_c = (vehicle _a);

			if ( (_c isKindOf "Man") && (_c != leader _c) && (side _c != CIVILIAN) ) then
			{
				if ( (alive _c) && ( ( [_c] call (GL4_Rearm_F select 1) ) || (primaryWeapon _c == "") ) ) then
				{
					[_c] call (GL4_Rearm_F select 2);
				};
			};

			sleep 70 + (random 70);
		};
	};
};

},

// ////////////////////////////////////////////////////////////////////////////
// Rearm Function #1
// ////////////////////////////////////////////////////////////////////////////
// Rearm
// By =\SNKMAN/=
// ////////////////////////////////////////////////////////////////////////////
{private ["_a","_b","_c","_d","_e","_f"];

_a = _this select 0;

_b = False;

_c = (GL4_Resource select 36);

_d = magazines _a;

_e = 0;

while { ( (_e < count magazines _a) && (count _d > 3) ) } do
{
	_f = (magazines _a select _e);

	if (_f in _c) then
	{
		_d = _d - [_f];
	};

	_e = _e + 1;
};

if (count _d <= 3) then
{
	_b = True;
};

_b

},

// ////////////////////////////////////////////////////////////////////////////
// Rearm Function #2
// ////////////////////////////////////////////////////////////////////////////
// Rearm
// Script by =\SNKMAN/=
// ////////////////////////////////////////////////////////////////////////////
{private ["_a","_b","_c","_d"];

_a = _this select 0;

_b = nearestObjects [_a, ["Man"], 100];

if (count (GL4_Rearm select 0) > 0) then
{
	_b = _b - (GL4_Rearm select 0);
};

if (count _b > 0) then
{
	_c = 0;

	while { (_c < count _b) } do
	{
		_d = (_b select _c);

		if ([color="#0000FF"] !(alive _d)[/color] && (local _d) && (_d ammo (primaryWeapon _d) > 0) ) exitWith
		{
			GL4_Rearm set [0, (GL4_Rearm select 0) + [_d] ];

			[_a, _d] spawn (GL4_Rearm_F select 3);
		};

		_c = _c + 1;
	};
};

},

// ////////////////////////////////////////////////////////////////////////////
// Rearm Function #2
// ////////////////////////////////////////////////////////////////////////////
// Rearm
// Script by =\SNKMAN/=
// ////////////////////////////////////////////////////////////////////////////
{private ["_a","_b","_c","_d"];

_a = _this select 0;
_b = _this select 1;

_c = (primaryWeapon _b);

_d = group _a;

[_a] join grpNull;

if (stopped _a) then
{
	_a stop False;
};

_a doMove (getPos _b);

while { ( (alive _a) && (_a distance _b > 3) ) } do
{
	sleep 1;
};

if (alive _a) then
{
	_a action ["[url="https://community.bistudio.com/wiki/ArmA_2:_Actions#TakeMagazine_.2F_TakeWeapon"]TAKEWEAPON[/url]", _b, _c];

	if ( { (alive _x) } count (units _d) > 0) then
	{
		[_a] join _d;
	};
};

}
];

I have also highlighted this is dependent on GL4_Global select 26 && GL4_Global select 67

Maybe the units mounting vehicles is disabled overall, I have not dug deeper into the code.

I may have looked at this wrong, but that's the way it seems to me. Hopefully this helps.

Edited by panther42

Share this post


Link to post
Share on other sites

Anybody know what the Gl4 bug is for holdfire... Gl4 keeps ai from holding fire,is there a fix for this or no...example I set a night mission up my team has silenced weapons and I say hold fire they do till we move in closer and no one from opfor has shot yet and are facing in opposite direction and all a sudden my team mates start firing even though the hold fire command shows on the dossier with the line through notifying the player where in hold fire mode. This is driving me up the wall cause Gl4 is a great mod but that one thing is killing it. please help thanks

Share this post


Link to post
Share on other sites

Heyo, just one question: Does anyone still have the last version of this and can upload it somewhere, i tried all known shenannigans for 2 days but the files are irretrivebly lost on the interwebs.

Thanks in advance

Share this post


Link to post
Share on other sites
32 minutes ago, Sniperturtle said:

i tried all known shenannigans for 2 days


Maybe you didn't try the easiest...
the google friend, you simply write arma 2 group link 4 and the first result of the search is the download that you are looking for.

6BUytS4.jpg

Share this post


Link to post
Share on other sites
1 hour ago, dalber24 said:


Maybe you didn't try the easiest...
the google friend, you simply write arma 2 group link 4 and the first result of the search is the download that you are looking for.

6BUytS4.jpg

 That's version 0.0.1. I even dug up version 1.1.37 in some russian forum, but the final version is not available anywhere.

 

 

Edit: I stand corrected, it took opening the script files and looking up the version numbers to see that this is actually the last version.

Edited by Sniperturtle
Update

Share this post


Link to post
Share on other sites
10 hours ago, Sniperturtle said:

Edit: I stand corrected, it took opening the script files and looking up the version numbers to see that this is actually the last version.


@SniperturtleYes, I knew that this was the latest version regardless of the file name, that's why I told you to look for it like this, I knew that this was the download you were looking for, otherwise I would have uploaded the file, but it was not necessary.

 

12 hours ago, Sniperturtle said:

Does anyone still have the last version of this


your question was very clear, and my answer too 😉

  • Like 1

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  

×