Jump to content
Sign in to follow this  
SaOk

Line Of Sight (Example Thread)

Recommended Posts

Personally, I'm not 100% convinced that setdir is the way to go. The idea of a script like this is to sharpen the AI a bit, not turn them into killbots. And because the script already forces the units to turn towards the spotted enemy (_unit lookat _near), the actual aiming seems to be reasonably quick the majority of the time. And with the script the average unit gets a bead on the enemy a damn site quicker than without.

Regarding unit awareness: the script at present gives the unit 120 degree field of view. Partly this is a limitation of the eyedirection / head model. And partly it's for realism. If you stick your arms straight out to the side at shoulder level and look dead ahead, you won't see your fingers wiggling. Neither should the AI. However you are right that their awareness is not the same as a human player, and I'm not sure how a script like this can compensate in a way that doesn't turn them into killbots again. A script that could force AI head movement would be nice for a start(don't know if it can be done though), because we could then script in things like rapid scanning, or force them to look at each buildingpos etc etc.

Anyway, the script is here to stimulate discussion and I'm very grateful for all your ideas even if I don't (or can't) implement them.

Kremator - the script and the addon both work for an OPFOR or BLUFOR on the map. I will shortly, thanks to Rydygier, make it work for independents too. I'll try forcing a unit with LOS to an enemy into combat mode too, to see if that sharpens up their aiming.

Share this post


Link to post
Share on other sites
Personally, I'm not 100% convinced that setdir is the way to go. The idea of a script like this is to sharpen the AI a bit, not turn them into killbots. And because the script already forces the units to turn towards the spotted enemy (_unit lookat _near), the actual aiming seems to be reasonably quick the majority of the time. And with the script the average unit gets a bead on the enemy a damn site quicker than without.

Yeah, I don't think setdir is the way to go. Anything that breaks native AI behaviour, or forces a player's units out of parameters that he or she has specified for them (i.e. stealth, stance, movement orders, etc) is a red flag in my book. Hence, I'm watching this thread carefully. :)

Share this post


Link to post
Share on other sites
Personally, I'm not 100% convinced that setdir is the way to go. The idea of a script like this is to sharpen the AI a bit, not turn them into killbots. And because the script already forces the units to turn towards the spotted enemy (_unit lookat _near), the actual aiming seems to be reasonably quick the majority of the time. And with the script the average unit gets a bead on the enemy a damn site quicker than without.

Yeah, I don't think setdir is the way to go. Anything that breaks native AI behaviour, or forces a player's units out of parameters that he or she has specified for them (i.e. stealth, stance, movement orders, etc) is a red flag in my book. Hence, I'm watching this thread carefully.

Fair enough. Can't really think of any other possible addition. Maybe making a slight delay for an ai to crouch and engage upon sight based on skill? Probably not that neceassary but I guess in SP it might be benificial so that your squad of special forces are able to easily eliminate insurgents in CQB... I don't know, just brainstorming...

Share this post


Link to post
Share on other sites

Is it possible to have a full script-only version that can be called from the init.sqf please? Addon is great but would love to be able to add it directly into my missions now that this has REALLY come on.

This would also make it 'tweakable' perhaps in an hpp or something in description.ext.

What we do need is a way to analyse just HOW CPU intensive this script is. Presently we just have hearsay and conjecture but no real evidence. Anyone got any ideas of how we would do that ?

Share this post


Link to post
Share on other sites

Hi Kremator. I've been posting the code as well as the addon, so you can easily save the code into your mission directory as e.g lineofsight.sqf, tweak it, and then call it with nul = [] execvm "lineofsight.sqf".

This page has some hints at the bottom regarding testing code speed: http://community.bistudio.com/wiki/Code_Optimisation#How_to_test_and_gain_this_information_yourself.3F. I've got a few ideas myself which I will test out too.

Latest addon: http://www.gamefront.com/files/21857852/TPW_LOS.zip

Latest script:

//UNITS IN PLAYER'S GROUP WILL AUTOMATICALLY KNEEL/CROUCH AND SHOOT IF THEY HAVE LINE OF SIGHT WITH NEAR ENEMIES 
// Needs beta 93666 or greater 
// Line of sight stuff adapted from SaOk 
// Azimuth stuff adapted from CarlGustaffa
// TPW 20120617 

private ["_unit","_near","_nearunits","_a","_b","_dirTo","_eyeD","_eyePb","_eyePa","_eyeDV","_ang","_tint","_lint","_vm","_dist","_esp","_usp","_camo","_ka","_formula"]; 

//Start hint
sleep 1;
hintsilent "TPW LOS active";

//Angle of sun - adapted from CarlGustaffa
[] spawn {
private ["_lat","_day","_hour"];
while {true} do 
{
_lat = -1 * getNumber(configFile >> "CfgWorlds" >> worldName >> "latitude");
_day = 360 * (dateToNumber date);
_hour = (daytime / 24) * 360;
tpw_los_sunangle = round (((12 * cos(_day) - 78) * cos(_lat) * cos(_hour)) - (24 * sin(_lat) * cos(_day)));  
sleep 300; 
};
};

//Main function
tpw_los =  
{ 
   {
// remove this line for playersquad only
_side = side _x; if ((_side == west) || (_side == east) || (_side == resistance))then { 
   _unit = _x; 
_vm = (currentVisionMode _unit); if (_vm == 1) then {_vm = -1} else {_vm = 1}; 
switch (side _unit) do {
case east: {tpw_enemyside = west};
case west: {tpw_enemyside = east};
case resistance: {tpw_enemyside = east};
};
   _nextTime = _unit getVariable ["NextTime", -1]; 
   if(_nextTime == -1) then {_unit setVariable ["NextTime", diag_tickTime + random 1];}; 
   if(diag_tickTime >= _nextTime) then  
       { 
       _unit setunitpos "AUTO"; 
       _unit setVariable ["NextTime", diag_tickTime + random 1]; 
       _nearunits = (getposatl _unit) nearentities [["man","car"],100]; 
           { 
           _near = _x; 
           tpw_los_cansee = 0; 
           if (side _near == tpw_enemyside) then  
               { 
               //Line of sight stuff adapted from SaOk 
               _a = _unit;  
               _b = _near;  
               _eyeDV = eyeDirection _a;  
               _eyeD = ((_eyeDV select 0) atan2 (_eyeDV select 1));   
               _dirTo = ([_b, _a] call BIS_fnc_dirTo);  
               _ang = abs (_dirTo - _eyeD); 
               _eyePa = eyePos _a; 
               _eyePb = eyePos _b; 
               _tInt = terrainIntersect [_eyePa, _eyePb]; 
               _lInt = lineIntersects [_eyePa, _eyePb]; 
			if (((_ang > 120) && (_ang < 240)) && !(_lInt) && !(_tInt)) then
				{
				//Other factors affecting visibility of enemy
				_ka = _unit knowsabout _near;
				_dist = (_unit distance _near); 
				_esp = abs (speed _near);
				_usp = abs (speed _unit);
				_camo = getnumber (configfile >> "CfgVehicles" >> (typeof _near) >> "Camouflage");
				//Magic visibility formula
				_formula = (_vm * (tpw_los_sunangle)) + (_esp * 6) - (_usp * 2) - _dist + random 40;
				if (_dist < 25) then {_formula = 200}; 
				if (_camo > 0.5) then {tpw_los_cansee = _formula};
				};

			}; 
               if (tpw_los_cansee > 0) exitwith  
                  { 
                  _unit setunitpos "MIDDLE"; 
                  _unit lookat _near; 
			   _unit dofire _near;
                   //Debugging     
                  //hint format ["%1 \n%2 \n%3m \n%4\n%5",(name _unit),(typeof _near),round (_unit distance _near),round tpw_los_cansee]; 
                  };  
           } foreach _nearunits; 
       }; 
	;
   //} foreach units group player;  // player's squad
};}forEach allUnits; // Everyone
}; 

[tpw_los,0.5] call cba_fnc_addPerFrameHandler;

Share this post


Link to post
Share on other sites

I had this running on the non addon gunship in playing with

I had this running in a FSM for each of the gunners in the C130J

I got mixed results - but it does work on air targets well , ground targets i think they said they could see enemy when i dont think they could.

Run this in a loop -

_nearunits = (getposatl _veh) nearentities [["LAND","SHIP","AIR"],400];


		{
		_near = _x;
		_cansee = 0;
		_mytarget = objnull;
		if ((side _x != side _crewman) && (side _x != civilian)) then 
			{
			_a = _crewman; 
			_b = _near;
			_pos1 = getpos _b;
			_pos2 = getpos _a;
			_eyeDV = eyeDirection _a; 
			_eyeD = ((_eyeDV select 0) atan2 (_eyeDV select 1));  
			_dirTo = ((_pos2 select 0) - (_pos1 select 0)) atan2 ((_pos2 select 1) - (_pos1 select 1));
			_dirTo = _dirTo % 360;
			_ang = abs (_dirTo - _eyeD);
			_eyePa = eyePos _a;
			_eyePb = eyePos _b;
			_tInt = terrainIntersect [_eyePa, _eyePb];
			_lInt = lineIntersects [_eyePa, _eyePb];
			if (((_ang > 120) || (_ang < 240)) && !(_lInt) && !(_tInt)) then {_cansee = 1;};
			};
			if !(_cansee == 0) exitwith 
				{
				_crewman lookat _near;
				_crewman dotarget _near;
				_mytarget = _near;
				if (_crewman AimedAtTarget [_mytarget] > .1) then {(vehicle _crewman) fireAtTarget [_mytarget]};							};
		} foreach _nearunits;


if (player in crew _veh) then
{
hint str([typeof _mytarget,typeof assignedTarget _crewman]);
}; 

then running this in the next loop as while he can see a target why look for more -

if (!isnull _mytarget) then {
			_a = _crewman; 
			_b = _mytarget;
			_pos1 = getpos _b;
			_pos2 = getpos _a;
			_eyeDV = eyeDirection _a; 
			_eyeD = ((_eyeDV select 0) atan2 (_eyeDV select 1));  
			_dirTo = ((_pos2 select 0) - (_pos1 select 0)) atan2 ((_pos2 select 1) - (_pos1 select 1));
			_dirTo = _dirTo % 360;
			_ang = abs (_dirTo - _eyeD);
			_eyePa = eyePos _a;
			_eyePb = eyePos _b;
			_tInt = terrainIntersect [_eyePa, _eyePb];
			_lInt = lineIntersects [_eyePa, _eyePb];

			if (((_ang > 120) || (_ang < 240)) && !(_lInt) && !(_tInt)) then 
			{
			_crewman lookat _mytarget;
			_crewman dotarget _mytarget;
			_crewman dofire _mytarget;
			if (_crewman AimedAtTarget [_mytarget] > .1) then {(vehicle _crewman) fireAtTarget [_mytarget]};
			}else{_mytarget = objnull};

};

Next im going to try running it just on the pilot who is the group leader and use

group _pilot reveal [_mytarget, 3.5];

to pass the info to the gunners.

which would be running

if (_crewman AimedAtTarget [_crewman findNearestEnemy _veh] > .1) then {(vehicle _crewman) fireAtTarget [_crewman findNearestEnemy _veh]};

that way it may get a better balance - less cpu load and still quicker reaction by the group.

would there be a better way of getting the array to look for rather than using this ?

_nearunits = (getposatl _veh) nearentities [["LAND","SHIP","AIR"],400];

as getting that array fast and and easy would help a lot

i will be posting what i have done with the No Addon GunShip up on the forums in the next few days

for people to play with and see if we can make something fun out of it.

I would like to see some other feed back with people useing this in vehicles as well as just units

Edited by Zonekiller

Share this post


Link to post
Share on other sites

Is it possible to get any of this to work with a static gunner, it works when it's just a simple soldier but as soon as I make him static gunner it never sees the target.

Share this post


Link to post
Share on other sites

@tpw i see you managed to find the answer, sorry not reaching back soon enough to save you that time.

I had this running in a FSM for each of the gunners in the C130J

I think running from FSM might be worth exploring, because it will be event based instead of a infinite loop, and might help reducing the script load.

It will have to be served as an addon though, and might conflict with existing AI mods (ie SLX), but will provide the feature to all units.

Share this post


Link to post
Share on other sites
It will have to be served as an addon though, and might conflict with existing AI mods (ie SLX), but will provide the feature to all units.

Hi Gammadust

Not clear which module it is of SLX (especially of CoSLX) that you expect to be conflicted (I'm doing some perforce crude hacking of a couple of COSLX files). Please feel free to PM me to avoid thread-jacking here.

Cheers

Orcinus

Share this post


Link to post
Share on other sites
Is it possible to get any of this to work with a static gunner, it works when it's just a simple soldier but as soon as I make him static gunner it never sees the target.

I'll have a look into it. Might be something to do with eyepos.

Share this post


Link to post
Share on other sites

ok guys been playing with this all day - now it works on a unit and in driver gunner and cargo it changes as you change from unit to vehicle and vehicle pos to vehicle pos , - also works with getin action or movein command -

EDIT - To tell you why this is different to a std units LOS

when a unit PLAYER or AI gets into a vehicle the eyeDirection

locks on the direction the unit was when he was facing the

vehicle before he gets in.

this catches that position -- _eyeL_lock = if (_veh != vehicle _a) then {((_eyeDV select 0) atan2 (_eyeDV select 1))}else{_eyeL_lock};

it only runs once on entering a vehicle. then it is used to offset the -- _eyeD = ((_eyeDV select 0) atan2 (_eyeDV select 1)) - _eyeL_lock;

this way you can still see things if you look out of side windows

weaponDirection works much the same as eyeDirection and needs to be added -- _eyeD = _eyeD + _eyeL;

again to offset the angle of the weapon and yes you can still turn your head and see things left and right

of where your weapons facing

if you dont have a weapon - ie driver - cargo

eyeDirection is always relative to north -- "many headaches before i worked that out"

_eyeL = direction _veh - 360; keeps it relative to the direction of the vehicle.

this bit still needs some testing -

_tInt = if (vehicle _a != _a) then {terrainIntersect [getPosASL _a, getPosASL _b]}else{terrainIntersect [(eyePos _a),(eyePos _b)]};

using eyePos in some vehicles upsets terrainIntersect and it will always read true and getPosASL on units can do the same.

you will notice manly while looking at air targets or while your on static weapons.

If there are still any issues then it will have to a combination of what vehicles _a and _b are in

I have not worked out how to get the commanders gun direction so the LOS.sqf will not

work correctly in the commanders or second turret positions. even so i still had to use

-- if (count (assignedVehicleRole _a) > 1) then -- as if i used if (_a == gunner vehicle _a) then

and got in to a vehicle my pc had a hissyfit 50% of the time and it did not work correctly until i got out.

_lInt = lineIntersects [(eyePos _a),(eyePos _b),_veh,_b];

_veh - well yes that so you can see through the glass - cockpit of your vehicle

_b - hmm sometimes "more than less" you cant see the unit your looking at because of the vehicle he is in. "more headaches"

FOV is also different from a unit to a vehicle.

Check if any units are in FOV before you check on LOS , save a tone of cpu power.

if ((_ang > _left) && (_ang < _right)) then

{

_tInt = if (vehicle _a != _a) then {terrainIntersect [getPosASL _a, getPosASL _b]}else{terrainIntersect [(eyePos _a),(eyePos _b)]};

_lInt = lineIntersects [(eyePos _a),(eyePos _b),_veh,_b];

};

The code below is a sqf version of the code - im sure it can be improved

if you would like the FSM version - its a hell of a lot faster - just download the GUNSHIP DEMO posted below

copy the LOS.fsm from the Gunship folder add it to a folder or root and run it as _nil = [the unit] execFSM "LOS.fsm"; - if its in the root , im sure

you know what to do if its in a folder.

you can run FSM and SQF script on a PLAYER as well - good for testing.

I hope this save a few of you guys some headaches

UPDATED - 21-June-12

add this to the unit

useage _nil = [the unit] execVM "LOS.sqf"; PLEASE NOTE THE _nil = DONT EVER USE nil =

LOS.sqf script

_a = _this select 0;
_eyeL_lock = 0; 
_veh = vehicle _a;
_tInt = true;
_lInt = true;
_mytarget = objnull;


while {alive _a} do
{


_nearunits = (getposatl _a) nearentities [["LAND","SHIP","AIR"],500];

		{
		_near = _x;
		_cansee = 0;

		if ((side _x != side _a) && (side _x != civilian) && (count crew _x > 0)) then 
		{
		_b = _near;
		_pos1 = getpos _b;
		_pos2 = getpos _a;
		_eyeD = 0;
		_eyeL = 0;
		_left = 145;
		_right = 215;
		_tInt = true;
		_lInt = true;

		_eyeDV = eyeDirection _a; 

		_eyeL_lock = if (_veh != vehicle _a) then {((_eyeDV select 0) atan2 (_eyeDV select 1))}else{_eyeL_lock};

		_veh = vehicle _a;

			if (vehicle _a != _a) then {

			_eyeL = direction _veh - 360;					

				if (count (assignedVehicleRole _a) > 1) then
				{
				_gun = vehicle _a weaponsTurret ((assignedVehicleRole _a) select 1); 
				_guntype = (_gun select 0);
				_eyeGUN = vehicle _a weaponDirection _guntype; 
				_eyeL = ((_eyeGUN select 0) atan2 (_eyeGUN select 1));
				};

			_left = 130;
			_right = 230;
			};

		if (vehicle _a == _a) then {_eyeL_lock = 0;_eyeL = 0};
		_eyeD = ((_eyeDV select 0) atan2 (_eyeDV select 1)) - _eyeL_lock;
		_eyeD = _eyeD  + _eyeL;
		_dirTo = ((_pos2 select 0) - (_pos1 select 0)) atan2 ((_pos2 select 1) - (_pos1 select 1));
		_dirTo = _dirTo % 360;
		_ang =  abs (_dirTo - _eyeD);

			if ((_ang > _left) && (_ang < _right)) then 
			{
			_tInt = if (vehicle _a != _a) then {terrainIntersect [getPosASL _a, getPosASL _b]}else{terrainIntersect [(eyePos _a),(eyePos _b)]};
			_lInt = lineIntersects [(eyePos _a),(eyePos _b),_veh,_b];
			};

		if (!(_lInt) && !(_tInt)) then {_cansee = 1;};
		};	
		if !(_cansee == 0) exitwith 
				{
				_a lookat _near;
				_a dowatch _near;
				_a dotarget _near;
				_mytarget = _near;
				}; 
		} foreach _nearunits;





		while {(!isnull _mytarget)} do 
		{
		_b = _mytarget;
		_pos1 = getpos _b;
		_pos2 = getpos _a;
		_eyeD = 0;
		_eyeL = 0;
		_left = 145;
		_right = 215;
		_tInt = true;
		_lInt = true;
		_eyeDV = eyeDirection _a; 

		_eyeL_lock = if (_veh != vehicle _a) then {((_eyeDV select 0) atan2 (_eyeDV select 1))}else{_eyeL_lock};

		_veh = vehicle _a;

			if (vehicle _a != _a) then {

			_eyeL = direction _veh - 360;					


				if (count (assignedVehicleRole _a) > 1) then
				{
				_gun = vehicle _a weaponsTurret ((assignedVehicleRole _a) select 1); 
				_guntype = (_gun select 0);
				_eyeGUN = vehicle _a weaponDirection _guntype; 
				_eyeL = ((_eyeGUN select 0) atan2 (_eyeGUN select 1));
				};

			_left = 130;
			_right = 230;
			};

		if (vehicle _a == _a) then {_eyeL_lock = 0;_eyeL = 0};
		_eyeD = ((_eyeDV select 0) atan2 (_eyeDV select 1)) - _eyeL_lock;
		_eyeD = _eyeD  + _eyeL;
		_dirTo = ((_pos2 select 0) - (_pos1 select 0)) atan2 ((_pos2 select 1) - (_pos1 select 1));
		_dirTo = _dirTo % 360;
		_ang =  abs (_dirTo - _eyeD);

			if ((_ang > _left) && (_ang < _right)) then 
			{
			_tInt = if (vehicle _a != _a) then {terrainIntersect [getPosASL _a, getPosASL _b]}else{terrainIntersect [(eyePos _a),(eyePos _b)]};
			_lInt = lineIntersects [(eyePos _a),(eyePos _b),_veh,_b];
			};

			if (!(_lInt) && !(_tInt)) then 
			{

				if (_a != vehicle _a) then
				{ 
				_delay = (time + .1);
				waituntil {((vehicle _a AimedAtTarget [_mytarget] > 0) or !(alive _mytarget) or (time > _delay))};
				if (vehicle _a AimedAtTarget [_mytarget] > 0) then {vehicle _a fireAtTarget [_mytarget]};
				}else{
				_a dofire _mytarget;
				};

			}else{
			_mytarget = objnull;
			_a dowatch _mytarget;
			};

		sleep .1;
		};
sleep .5;
};

Edited by Zonekiller

Share this post


Link to post
Share on other sites

So I've recently been playing CWR/Red Hammer Campaign with this, Suppression script and latest ASR enabled. One thing thats definitely different is that twice now (two missions in a row) my entire squad (7-8) men have been wiped out by one well placed enemy -most likely because they cant get visual on him. In all honesty, both times the enemy AI was well concealed:

1st: An enemy that was kneeling and barely exposing himself out of a building at maybe 70m after truck disembarkment - he took out my guys without them really returning a shot and when I finally saw that fleshy 2 pixels in the window -blam! I was shot as well.

2nd: Approaching a large house (maybe 200m out) with trees in front and some construction equipment off to the side, again 1 gunman pinned my squad down and he hit 2 -3 of us without much if any return fire. Feels strange to not have my AI immediately shoot back when under fire (almost broken) but then I thought - let me hold my guys here and go snoop this guy and see wheres hes hiding. I did a long roundabout the house and finally found the lone gunman under a construction girder, behind a bush and 2 trees (from where my men were concerned) -no human player would have seen this guy either!!

This is leading to a different (and much preffered) type of gameplay. Often, I feel left out or not that interetsted when firefights break out between my squad and enemy AI at 200m+ merely because I cant see the way they see so I just try my best to feel involved. Now, I need to determine what angle to send my men out so that they can get LOS - exciting stuff :)

Share this post


Link to post
Share on other sites

ADDON FREE but you do need the BETA

here something ive been playing with

its a C103J with 4 static M2s attached to it running the LOS fsm

the gunners are set setskill .01 and disableAI "FSM" && "AUTOTARGET" so its just the LOS doing the work

all the aiming skill is set to 1

the C130J just looks normal at start all the gunners are inside. "NO ITS NOT BROKEN"

when the pilot detects an enemy it will open the doors and the guns come out

you can jump on any of the guns and have a shoot yourself by using the actions.

if the pilot thinks its safe he will pull in the guns and close the doors until new enemy show up.

all enemys respawn and you cant be shot down - you can still crash tho -

feel free to play with any of the code.

it is fun to turn on allow damage and try to take them out with a plane and just use guns -- bloody hard :)

but dodging the tracers is a lot of fun :)

have a play with this anyways - its a bit of fun , it is SP

DOWNLOAD GUNSHIP DEMO

Edited by Zonekiller

Share this post


Link to post
Share on other sites

Thanks Froggy, that sort of feedback is precisely why people write stuff for this game. With suppression & LOS & ASR you definitely can't be blase during missions!

Thanks again to BIS for bringing us the new LOS commands, and to SaOk for showing how to use them. Also, Zonekiller's FSM approach incorporating LOS is bloody awesome!

So I've recently been playing CWR/Red Hammer Campaign with this, Suppression script and latest ASR enabled. One thing thats definitely different is that twice now (two missions in a row) my entire squad (7-8) men have been wiped out by one well placed enemy -most likely because they cant get visual on him. In all honesty, both times the enemy AI was well concealed:

1st: An enemy that was kneeling and barely exposing himself out of a building at maybe 70m after truck disembarkment - he took out my guys without them really returning a shot and when I finally saw that fleshy 2 pixels in the window -blam! I was shot as well.

2nd: Approaching a large house (maybe 200m out) with trees in front and some construction equipment off to the side, again 1 gunman pinned my squad down and he hit 2 -3 of us without much if any return fire. Feels strange to not have my AI immediately shoot back when under fire (almost broken) but then I thought - let me hold my guys here and go snoop this guy and see wheres hes hiding. I did a long roundabout the house and finally found the lone gunman under a construction girder, behind a bush and 2 trees (from where my men were concerned) -no human player would have seen this guy either!!

This is leading to a different (and much preffered) type of gameplay. Often, I feel left out or not that interetsted when firefights break out between my squad and enemy AI at 200m+ merely because I cant see the way they see so I just try my best to feel involved. Now, I need to determine what angle to send my men out so that they can get LOS - exciting stuff :)

Share this post


Link to post
Share on other sites

Nice update ZK ! This is really shaping up.

See what talented programmers can do !

Now if we had a really good FindCover system that actually worked we would be totally sorted! AI running from cover to cover, pushing towards an objective, or being pushed back from cover to cover would be amazing.

EDIT: A thought has just occurred to me. I remember seeing a script once upon a time, that gave a ROUGH visual indication of where your troops were looking (towards an enemy). The higher the knowsabout the tighter that indication was, however it was never pinpoint accurate. That way humans could be looking in the right area (instead of relying on clock positions - which aren't great!) Can anyone remember the addon/script ?

Edited by Kremator

Share this post


Link to post
Share on other sites

AWWW SHUCKS THANKS GUYS :)

I have edited my earlier post to point out all my findings - the headache stuff -

so if your writing some LOS scripts do flick back and save yourself a lot of time wondering why

things are not working the way you thought it sould.

PS. i do love them tracers from the GUNSHIPS - thats why i set the time at just before dark -

Share this post


Link to post
Share on other sites
AWWW SHUCKS THANKS GUYS :)

This is one of my 2 top-priority threads, though I haven't been able to contribute a damn thing :)

Looking forward ti trying this out in a few days time (unless I'm totally asleep)

Shit, the way people are churning out new mods & addons recently, will we need A3? /jk

Share this post


Link to post
Share on other sites

Nice stuff, ZK - any chance of seeing an addon variant of a hopefully combined effort (i.e. your work and tpw's)?

Share this post


Link to post
Share on other sites
Nice stuff, ZK - any chance of seeing an addon variant of a hopefully combined effort (i.e. your work and tpw's)?

Sooner than you think ;). Insider info! Shhhhh

Share this post


Link to post
Share on other sites
Sooner than you think ;). Insider info! Shhhhh

Oooh, do tell...

ZoneKiller, drop me a PM if you are interested in combining forces on an addon.

Share this post


Link to post
Share on other sites

Together with your suppression scripts this would be AWESOME !111eleven

Of course being able to pause ASR_AI if necessary would be required wouldn't it ?

Share this post


Link to post
Share on other sites

note:

since build 94049

+ terrainIntersect reverted back to ATL

+ added terrainIntersectASL

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  

×