Jump to content
Sign in to follow this  
kyfohatl

An annoying AI swimming problem

Recommended Posts

Sounds more like a bad route planing and bad spawn points in the mission. In warfare the problem occurs only if the commander plants a factory near the shore or a lake/pond. In general the feature is a good one since it would be a bit strange to see fully equiped soldiers arise out of the deep with fully functional heavy equipment...like the undead pirates from Pirates of the carribean.

Share this post


Link to post
Share on other sites

Could be. I've never attempted to measure distance from water. I think Domination checks for water at the spawnpoint or waypoint (not sure, will have to check, and keep it in mind), but AI will enter the water while trying to maintain formation or disregard the water completely during attack orders etc.

Share this post


Link to post
Share on other sites

Ever played Invasion 1944 mods for Arma ?

All soldiers got FUBAR in the first mission and after playing about 15 minutes, you get a lot of unarmed soldiers running around on the beach of Normandy........due to this silly equipment loss feature.

I bet there could be a script or maybe someone can write so that the script immediately take note of the soldiers equipment as soon as the soldier gets into water...then restoring them after he gets out.

(This way it will more realistic as you can filter equipment that can be loss from those that can't).

My sample script :

not tested , but should work fine.

No filters is applied here, just a basic thing.

private ["_sol","_weps","_mags","_i"];

_i=0;

_weps=[];

_mags = [];

_sol = _this select 0;

for [{_i=0},{_i<1},{_i=_i}] do

{

waitUntil {surfaceIsWater [getpos _sol select 0,getpos _sol select 1]};

hintSilent "Soldier is in water!";

sleep 5;

//wait 5 seconds and check if the soldier is still in water.

_weps = weapons _sol;

_mags = magazines _sol;

while {alive _sol AND surfaceIsWater [getpos _sol select 0,getpos _sol select 1]} do

{

hintSilent "Waiting until soldier gets out of water!";

sleep 1;

};

hintSilent "Soldier has finally got out of water"

//check if soldier has lost any weapon, then replace all

if (weapons _sol select 0 != _weps select 0) then

{

{_sol removeWeapon _x} foreach weapons _sol;

{_sol addWeapon _x} foreach _weps;

hintSilent "Soldier has lost weapons, now replaced!";

};

//check if soldier has lost any magz,if so, replace all.

if (magazines _sol select 0 != _mags select 0) then

{

{_sol removeMagazine _x} foreach magazines _sol;

{_sol addMagazine _x} foreach _mags;

titleText ["Soldier has lost mags, now refilled","PLAIN"];

};

sleep 1;

_weps= [];

_mags= [];

if (not (alive _sol)) exitWith {};

};

call that using :

_nul = [unitname] execVM "script.sqf";

An alternate way and probably a better way to check if a unit is in water is :

if (getposASL _sol select 2 < 0 ) then {hint "Unit is in water"};

OR

another way :

if (getposATL _sol select 2 > 1) then {Hint "Unit is in water"};

getposASL select 2= height above sea level

getposATL select 2= height above ground level.(Will be high in water because the ground is far below the unit)

Edited by haroon

Share this post


Link to post
Share on other sites
Ever played Invasion 1944 mods for Arma ?

All soldiers got FUBAR in the first mission and after playing about 15 minutes, you get a lot of unarmed soldiers running around on the beach of Normandy........due to this silly equipment loss feature.

Sorry, but isn't that really a mission design issue? I do think they used amphibious vehicles during the landing :p

I'll see if I can whip something up, I want a day off from Domino. My idea revolves around triggers, so that you only have to check relevant units while in the danger zone. Then use setVariable "owner" on "WeaponHolder" in the water. And finally use action "TakeMagazine" and "TakeWeapon" once he reaches shore or remove it if he dies.

Edit: Had to drop the Take actions approach, but here is the script. Hopefully I'm not making too much of an ass of myself :p

http://forums.bistudio.com/showthread.php?t=108253

Edited by CarlGustaffa

Share this post


Link to post
Share on other sites

And we can swim in Arma, just not for very long. Could the distance be increased? Probably. But I would still want the water to be an obstacle you can't easily ignore.

Share this post


Link to post
Share on other sites

Well I wouldn't exactly call having to swim ignoring it.

In any case just tossing all your equipment is not realistic by any means.

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  

×