Jump to content
Sign in to follow this  
.kju

Iron Front as mod in Arma 2: Combined Operations

Recommended Posts

Hey .kju, thank you for your work to bring IF to ArmA2, great job. We tried the mod now several times and it works really good except for some freezes. In every multiplayer session which we play we get several freezes, sometimes 3 seconds other times up to 20 seconds. Sometimes the freeze don't end and i have to kill the arma2oa.exe in the taskmanager. One of our members, Kaku, recorded a video of our last session and recorded also one of those freezes. Maybe it help you to identify the Problem.

(German)

We all used:

ArmA 2 CO (A2: v1.11 OA: v1.62)

CBA: CBA_v1.0.0pre10 of Dev-Heaven.net

Iron Front Mod with DLC converted with your conversiontool and updated with the community patches: IF: v1.08 DLC: v1.03 (used this guide Setup guide for Arma 2 CO version)

maybe you can take a look at this Problem with those freezes, thank you :)

regards

moerderhoschi

Share this post


Link to post
Share on other sites

There are two main problems:

1) BI won't do any more updates to A2: CO as far as I can tell. So if (parts of) it would be engine related, its unlikely to get fixed.

2) The damage system and a few other scripted systems in IF are very complex and there is lots of room for better coding.

We don't have any special tools to analyze freezes either. Providing the rpts might give me somewhat an idea, but dont have high hopes.

Make sure to check also RAM and CPU use by both clients and the server during (and before+after) those freezes. It could give us some indication.

Overall in A3 there might be a (better) chance to get BI look into engine issues (at some point).

The long term plan is to replace (at least some of) the scripted systems with 3rd party solutions or new A3 engine tech.

However with only three developers with little time, it will take quite some time to happen at minimum.

Share this post


Link to post
Share on other sites

thank you for the quick response. i will try to monitor the cores and ram usage and check the .rpt at the next big freeze and will report it here. thank you .kju

regards

moerderhoschi

Share this post


Link to post
Share on other sites

I found the freezes occur for me when there are explosions.

After doing a complete install on a new drive I have yet to experience the freezes in SP or MP when I host a server session on my dedi-server.

Currently running an FK edit of domination 1.1 converted to ARMACO IF and the server is still up and running.

You will need the bombing fix to join as well as all the other IF addons.

Rodserver is the name.

Share this post


Link to post
Share on other sites

@ rowdied

What is the bombing fix?

Should we integrate this into IF itself?

Share this post


Link to post
Share on other sites
;2678670']@ rowdied

What is the bombing fix?

Should we integrate this into IF itself?

Hey .kju!

First let me thank you for all the hard work you've done to port over this unpolished diamond into Arma2 and 3.

It was a fix that Gunter did I believe and can be found on the Iron front fan forums here

http://ironfront.forumchitchat.com/post/ifriron-front-revival-mod-projects-6253251

under other files,

•Bombing Fix - Default "homing bomb" behavior replaced by expected way of bomb falling.

Yes I think you should include it in the mod conversion.

Share this post


Link to post
Share on other sites

Thanks for the info rowdied - after taking a look what it does and how it works, I have to say it won't be included.

It is a scripted system, too complex and might have negative impact in specific situations. Also not much of a fan of the reduce area damage.

Share this post


Link to post
Share on other sites
;2680717']Thanks for the info rowdied - after taking a look what it does and how it works' date=' I have to say it won't be included.

It is a scripted system, too complex and might have negative impact in specific situations. Also not much of a fan of the reduce area damage.[/quote']

This disappoints me :(

The totally unrealistic way the guided bombs seek you out and the super bomb explosion radius, makes me hate having planes fly in any of the Iron Front missions, sp or mp.

Is there a way that you could do a more simple work around so that there is the possibility they will miss you when they drop the bombs?

Side Note:

There is a module that you have to place on the map before the bomb fix takes affect, leaving it up to the mission maker to decide whether they want to use it or not. Including it in the mod will make sure if someone does use it, the person connecting will not get kicked because they don't have it. Not sure if you saw that aspect of it but wanted to point it out again.

thanks

Edited by rowdied
speling

Share this post


Link to post
Share on other sites

The said mod does not change anything as far as I can tell in this regard.

It only reduces the area damage and makes AI know how to drop bombs (which is nicely scripted).

Share this post


Link to post
Share on other sites
;2681164']The said mod does not change anything as far as I can tell in this regard.

It only reduces the area damage and makes AI know how to drop bombs (which is nicely scripted).

The mod is the module you are referring too?

So you will not include the bomb fix module to the mod conversion then, is this correct?

If not, is there another way to make the A.I. less accurate when dropping bombs?

Another mod for Arma or A2 out there that does this then?

thanks

Share this post


Link to post
Share on other sites

Yep. Mod = modification = addon.

Sorry to say but this is just out of scope / that approach is just too problematic.

He can easily convert it into a scripted only version. This way you can just add it to a mission when its needed.

Share this post


Link to post
Share on other sites

@rowdied

This isn't tested in that form and not tested at all under MP, but here is scripted version of Bombing fix feature making bombs not guided:

[] spawn
{
_PosTowards2D = 
	{
	private ["_source","_distT","_angle","_dXb","_dYb","_px","_py"];

	_source = _this select 0;
	_angle = _this select 1;
	_distT = _this select 2;

	_dXb = _distT * (sin _angle);
	_dYb = _distT * (cos _angle);

	_px = (_source select 0) + _dXb;
	_py = (_source select 1) + _dYb;

	[_px,_py,0]
	};

_isNightCheck = 
	{//math by CarlGustaffa
	private ["_lat","_day","_hour","_sunangle","_isNight"];

	_isNight = false;

	_lat = -1 * getNumber(configFile >> "CfgWorlds" >> worldName >> "latitude"); 
	_day = 360 * (dateToNumber date); 
	_hour = (daytime / 24) * 360; 
	_sunangle = ((12 * (cos _day) - 78) * (cos _lat) * (cos _hour)) - (24 * (sin _lat) * (cos _day)); 

	if (_sunangle < -10) then {_isNight = true};

	_isNight
	};

_howManyBombs = 
	{
	private ["_plane","_mags","_turrets","_turret","_bombs","_ammo"];

	_plane = _this select 0;

	_mags = _plane magazinesTurret [-1];

	_bombs = 0;

		{
		_ammo = getText (configFile >> "CfgMagazines" >> _x >> "ammo");

		if (_ammo isKindOf "BombCore") then
			{
			_bombs = _bombs + 1
			}
		}
	foreach _mags;

	_bombs
	};

sleep 2;

_cycle = 0;
_isNight = [] call _isNightCheck;

while {true} do
	{
	sleep 0.5;
	_cycle = _cycle + 1;

	if (_cycle > 1200) then
		{
		_cycle = 0;
		_isNight = [] call _isNightCheck
		};

	_planeVehs = (entities "LIB_P39") + (entities "LIB_Pe2") + (entities "LIB_FW190F8") + (entities "LIB_Ju87") + (entities "LIB_P47");
	_planes = [];

		{
		if not (isNull _x) then
			{
			_weapIX = _x getVariable ["RYD_BF_weapIX",true];

			if (alive _x) then
				{
				if (_weapIX) then
					{
					_x setVariable ["RYD_BF_weapIX",false];

					_weapons = [10];
					if (_x isKindOf "LIB_Ju87") then {_weapons = [6,5]};
					if (_x isKindOf "LIB_P47") then {_weapons = [5]};

					_x setVariable ["RYD_BF_Weapons",_weapons];


					_CMinit = combatMode _x;

					_x setVariable ["RYD_BF_CMInit",_CMinit];
					};

				if (canMove _x) then
					{
					_pilot = driver _x;

					if not (isNull _pilot) then
						{
						if (alive _pilot) then
							{
							if not (isPlayer _pilot) then
								{
								_height = ((getPosATL _x) select 2);

								if (_height > 2) then
									{
									_bombs = [_x] call _howManyBombs;

									if (_bombs > 0) then
										{
										_planes set [(count _planes),_x]
										}
									else
										{
										_x setCombatMode (_x getVariable ["RYD_BF_CMInit","RED"])
										}
									}
								}
							}
						}
					}
				}
			}
		}
	foreach _planeVehs;

		{
		_x setCombatMode "GREEN";
		_fire = false;

		_planePos = getPosATL _x;
		_currentPos = [_planePos select 0,_planePos select 1];

		_lastPos = _x getVariable ["RYD_BF_lastPos",_currentPos];
		_x setVariable ["RYD_BF_lastPos",_currentPos];

		_lastTime = _x getVariable ["RYD_BF_lastTime",time];
		_x setVariable ["RYD_BF_lastTime",time];

		_dst2D = _lastPos distance _currentPos;

		_interval = time - _lastTime;
		_speed2D = 0;
		if (_interval > 0) then
			{
			_speed2D = _dst2D/_interval
			};

		_ping = [_planePos,(getDir _x),450] call _posTowards2D;
		_levelDiff = ((getPosASL _x) select 2) - (getTerrainHeightASL [_ping select 0,_ping select 1]);
		_fallTimeF = 0.034;
		_bsSpeedF = 0.98;

		switch (typeOf _x) do
			{
			case ("LIB_P39") : {_fallTimeF = 0.0502;_bsSpeedF = 0.9};
			case ("LIB_FW190F8") : {_fallTimeF = 0.042;_bsSpeedF = 0.87};
			case ("LIB_Ju87") : {_fallTimeF = 0.042;_bsSpeedF = 1.05};
			case ("LIB_P47") : {_fallTimeF = 0.045;_bsSpeedF = 0.9};
			};

		_pilot = driver _x;
		_accuracy = ((_pilot skill "aimingAccuracy") + (_pilot skill "general"))/2;

		_nightF = 0;
		if (_isNight) then {_nightF = 3 - (moonIntensity/(1 + overcast))};

		_dispF = (1.1 - _accuracy) * (1 + fog + overcast + _nightF);

		_fallTime = _fallTimeF * _levelDiff;

		_fallTime = _fallTime + (random (2 * _dispF)) - _dispF;
		if (_fallTime < 1) then {_fallTime = 1};

		_ping = [_planePos,(getDir _x),_fallTime * _speed2D * _bsSpeedF] call _posTowards2D;

		_nE = _x findNearestEnemy _ping;
		_nU = [];
		_cE = 0;

		if not (isNull _nE) then
			{
			_tPos = getPosATL _nE;

			_nU = _tPos nearEntities [["AllVehicles","Building"],50];
			_cF = {(((_pilot knowsAbout _x) >= 1.5) and (((side _pilot) getFriend (side _x)) >= 0.6))} count _nU;

			if ((random _cF) < 0.25) then
				{
				_tPos2 = [_tPos select 0,_tPos select 1];

				if ((60 + (_dispF * 3) - (_tPos2 distance _ping)) > (random 80)) then
					{
					_cE = {(((_pilot knowsAbout _x) >= 1.5) and (((side _pilot) getFriend (side _x)) < 0.6) and not (((getPosATL _x) select 2) > 2))} count _nU;
					if (_cE > 0) then
						{
						_fire = true
						}
					}
				}
			};

		if (_fire) then
			{
			_fired = _x getVariable ["Ryd_BFix_Fired",false];

			if (not (_fired) or ((random 100) > (75 - ((_cE^2) * 2)))) then
				{
				_x setVariable ["Ryd_BFix_Fired",true];

				[_x,_nE] spawn
					{
					_plane = _this select 0;
					_nE = _this select 1;

					_weapons = _plane getVariable ["RYD_BF_Weapons",[]];

						{
						_plane action ["useWeapon",_plane,driver _plane,_x]
						}
					foreach _weapons;

					sleep (random 15);

					_plane setVariable ["Ryd_BFix_Fired",false]
					}
				}
			}
		}
	foreach _planes
	};
};

So, to reduce blast radius still play with Bf addon (recommended with this code, as for not guided bombs, they will not "overtake" the plane like a missile, and thus bomber often is inside blast radius at impact, and even may "shot down" himself this way. Especially Ju-87, as slowest and carrying the biggest bomb), but do not place the module on map. Instead, if you want also not guided bombs, paste above code into any place in the init.sqf. Feel free to PM me, if something is not working, as should, except MP issues - I'm not MP specialist, not interested in MP in general and in scripting for MP in particular. I could guess, it should be run only on the server, or perhaps only there, where all AI planes are local, but do not listen to me too much, I'm really ignorant in MP.

Regarding to accuracy, for this code it depends on several factors, like pilot's skill, daytime, weather... But at any accuracy there is no "guided bombs" and miss is possible.

Note also AKB addon, that also reduces blast radiuses for HE ordnance of any kind, not only bombs, but also instead gives deadly, but selective, scripted "shrapnel shards" working analogously to those present in IF for hand grenades (may be CPU expensive if many booms at a time).

Edited by Rydygier

Share this post


Link to post
Share on other sites

Hi there

I have bought Iron Front from Sprocket and the DLC from gamers Gate.

I'm in trouble getting to work the Iron front converter I downloaded from Dev Heaven.

Every time I click on the the converter Icon I get an error message.

You have to run a legitimate version of Iron Front before proceeding

That's it. I have my games installed on a different hard disk it's not installed where my OS is installed.

Can someone give me some advice please.

Thanks in advance.

Share this post


Link to post
Share on other sites

@ nettrucker

It means your Cd key is not properly or not at all written to the registry.

Re-install, launch the game once with admin permissions.

Share this post


Link to post
Share on other sites

Hey, I just digged up IF44 again and tried it in A2CO with this outstanding conversion. I was hoping for something like this since IF release.

It works very well. Finally I can apply the most important gameplay mods I always wanted to have in IF.

But theres one thing I have to ask: the dubbing files have been converted, too but there is no chatter in IF when playing it as mod for CO. Every unit stays quiet. Radio protocol is disabled.

This makes it very hard to run a SP mission because very often you won't notice an AI spotting an enemy for example.

So: Is this on your todo list? Are you aware of this? Is it something on my end and I should check my game files?

Share this post


Link to post
Share on other sites

@ Dar

Despite having spent a lot of time, unfortunately I was unable to fix this.

I've also tried to reach out to BI but haven't gotten a response sadly.

Share this post


Link to post
Share on other sites

Thanks for the info, kju.

That is very unfortunate. And definitly a reason to return to original IF as it is not only a matter of convenience but has a massive impact on SP gaming, as pointed out. I hope this will be fixed one day.

But thanks again for your amazing work. I'll just stick to original IF for SP and go for some coop with the arma 2 conversion.

Share this post


Link to post
Share on other sites

Will MP in IF be affected by the disappearance of Gamespy in 24 hours?

Share this post


Link to post
Share on other sites

News flash:

  • 1.09 has been released
  • 1.10 has been released

Play withSIX support will take some time unfortunately (2-3 weeks), so you have to download both and apply the patch yourself for now.

Share this post


Link to post
Share on other sites
there is no chatter in IF when playing it as mod for CO. Every unit stays quiet. Radio protocol is disabled.

This makes it very hard to run a SP mission because very often you won't notice an AI spotting an enemy for example.

The quiet player & AI issue is in Ironfront lite version as well,one way to fix this is to add code-This addweapon "ItemRadio"; in squad leader(as player) of the group and all the AI infantry units init in a squad/group then player/AI commands & voice is enabled and audible.Also if pilots,tank crews and static artillery crews disembark their vehicle or static weapon there is again no player & AI voice sound.

Will the next update have AI voices enabled to all infantry units,pilots,tank crews etc?

EDIT -To enable player/AI voices, place code in squad/team leaders init- Groupname = group this; and create init.sqf and place code -

{_x addweapon "ItemRadio"} forEach units Groupname;

And place init.sqf in mission folder.

Edited by Battleship

Share this post


Link to post
Share on other sites

Huge thanks, Battleship. I wonder why that thought didn't come to my mind. I noticed it works for Vehicle Commanders but never though about why :)

Made my day. I just wrote a simple addon script that gives the Itemradio to the player at every mission start and now they're talking. Not talking like in original IF without the radio noise but at least they're talking and the text is shown.

Share this post


Link to post
Share on other sites

Greetings all! Reading this topic want thank for such a work on transfer IF 1944 in ARMA 2 OA and ARMA 3. But at me have a couple of questions:

1. How to transfer IF 1944 ( in my case i have Steam version IF 1944 (patch 1.05) and DLC D-Day) in ARMA 3 ( ARMA OA ). Understand that stupid question, but everywhere strange it all is painted.

2. Is there a possibility the games on this mode play MP mode? In usual IF 1944 all salt was in it.

Thanks for the reply!

Share this post


Link to post
Share on other sites

2014-07-12 News update

  • One can find now all the patch information consolidated in this thread.
  • What's new?
    • Easier to patch: Full patches (instead of many individual patches).
    • Support for both 1.62 and 1.63.

    [*]The documentation in the wiki has been updated to reflect these changes.

    [*]Updated and additional batch files available in the file section (for 1.62, 1.63).

Play withSIX support will take some days. Will keep you updated.

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  

×