breeze 0 Posted July 22, 2009 Is there anyway to make AI less responsive and create a more realistic mission when using Silenced weapons, It seems extremely unrealistic when AI from all over begins to react because one of their squad across from them hits the dirt. Any imput on this would be appreciated. Share this post Link to post Share on other sites
Daveyboy154 10 Posted July 22, 2009 I think that main issue is the "knowsabout" function, where one unit passes info to his mates when he spots an enemy. At the moment "spots" includes being killed by someone and he passes this info even though he is dead, making it impossible to take someone out with silencers without alerting his squad. As I understand it, this it fixed in upcoming patch 1.03. Dave Share this post Link to post Share on other sites
breeze 0 Posted July 22, 2009 So it will be a setting that we will be able to tweak as we see fit for missions? Share this post Link to post Share on other sites
Big Dawg KS 6 Posted July 22, 2009 No, he's talking about a general bug with the AI that will be fixed. No such new settings will be added that we know of at this point. Share this post Link to post Share on other sites
dale0404 5 Posted July 22, 2009 No, he's talking about a general bug with the AI that will be fixed. No such new settings will be added that we know of at this point. I hope there isnt any options. I dont want dead AI telling other AI where I am, kinda creepy! :D Share this post Link to post Share on other sites
[GLT] Legislator 66 Posted July 22, 2009 Is there anyway to make AI less responsive and create a more realistic mission when using Silenced weapons, It seems extremely unrealistic when AI from all over begins to react because one of their squad across from them hits the dirt. Any imput on this would be appreciated. Never noticed something like this and I'm playing a specific mission with SD weapons at night at least two times a week. At the end everything is depending on the skill level of the AI. Usually I'll set a skill level of 0.1. The AI isn't reacting at once, they will scan the horizon and once they detect you (hearing, seeing your movement), they'll hunt you down as usual. Other groups may look after you too but not the whole island and definately not every group. Just try Utes Invasion I and see for yourself. Share this post Link to post Share on other sites
AliMag 0 Posted July 22, 2009 Hi, This is one of the first thing I checked when I received the game. According to the test I did the situation is a little worse than just passing infos while dying. For example, put 2 east soldiers at a few hundred meters from each other. Use a silenced weapon and shoot one of them. If the other one has already knowledge of his comrad his knowsAbout about you will immediately be 1.5 (soldier knowsAbout player == 1.5). If he did not has any knowledge of his dead comrade his knowsAbout on you will jump from 0 to 1.5 as soon as he gets some knowsAbout of his dead comrade. Some times before having a real visual on him. Further more, if you shoot an enemy soldier and he did not see you, his knowsAbout on you will also jump to 1.5. The good news is knowing that BIS is using the 1.5 mark for those situations you have now something to work with (until a patch eventually change all of this...). I've made a script (not finished) that circumvent this problem. Very usefull for stealth mission. Cheers Share this post Link to post Share on other sites
breeze 0 Posted July 23, 2009 Will you please share the script to help with this? Share this post Link to post Share on other sites
Tajin 349 Posted July 23, 2009 I believe we can influence this by using the setTargetAge command. Might not be the perfect solution and I haven't messed around with it yet, but it might work. http://www.arma2.com/comref/full.html#ObjectsetTargetAgeString disableAI could also be used, but I'm a bit skeptic about that one. Share this post Link to post Share on other sites
AliMag 0 Posted July 23, 2009 Hi, The script is not finished yet but when I get home I'll try to advance a little more in it with working samples so everything will be clear. But first, I'll explore Tajin suggestion about enableAI that I did'nt know exixts. I tought a disableAI could not be reversed so I was using careless mode to work with. Cheers Share this post Link to post Share on other sites
Tinker 10 Posted July 23, 2009 AliMag good luck with the script, I am also very interesed to see your findings. Have been tweaking and testing here also on a silenced mission, but just cannot seem to find a happy medium. Share this post Link to post Share on other sites
AliMag 0 Posted July 23, 2009 Hi, Here is the script in its current state (I have it with me in my usb key). ;============================================================================ ; detect.sqs ; AI manager for enemy and dead body detection ; Status: work in progress ; Script call: ["INIT", [arrayOfFriendlyUnits, arrayOfEnemyUnits], UserScript] ; alimag - 07/2009 ;============================================================================= if (count _this > 3) then {goto "HIDE"} goto (_this select 0) ;---------------- #INIT ;---------------- _friends = (_this select 1) select 0 _enemies = (_this select 1) select 1 _script = _this select 2 _delay = 10 {_x setBehaviour "CARELESS";_x setSpeedMode "LIMITED"} forEach _enemies {_x addEventHandler ["killed", {["KILLED", _this] exec "detect.sqs"}]} forEach _enemies {_x addEventHandler ["hit", {["HIT", _this] exec "detect.sqs"}]} forEach _enemies ; init global var detectSQS = [false, _friends, _enemies, [], _delay, []] ; start general detection script ["DETECT"] exec "detect.sqs" ; wait for exit script flag @ (detectSQS select 0) [_enemies] exec _script exit ;---------------- #DETECT ;---------------- _friends = detectSQS select 1 _enemies = detectSQS select 2 #DETECT_LOOP1 _i = 0 _n = count _friends #DETECT_LOOP2 _friend = _friends select _i {if ((_x knowsAbout _friend > 0.5) && (_x knowsAbout _friend != 1.5) && !(_x in (detectSQS select 5))) then {["COMBAT",_x,"Enemy"] exec "detect.sqs"}} forEach _enemies _i = _i + 1 if (_i < _n) then {goto "DETECT_LOOP2"} ~1 if !(detectSQS select 0) then {goto "DETECT_LOOP1"} exit ;---------------- #COMBAT ;---------------- _unit = _this select 1 _from = _this select 2 _delay = detectSQS select 4 detectSQS set [5, (detectSQS select 5) + [_unit]] if !(alive _unit) then {exit} _unit globalChat format ["%1 Detected", _from] _unit addEventHandler ["fired", {detectSQS set [0, true]}] _unit setBehaviour "COMBAT" _unit lockWp true _unit setCombatMode "RED" ~_delay if (alive _unit) then {detectSQS set [0, true]} exit ;---------------- #HIT ;---------------- _unit = (_this select 1) select 0 if !(_unit in (detectSQS select 5)) then {["COMBAT", _unit, "Enemy"] exec "detect.sqs"} exit ;---------------- #KILLED ;---------------- _unit = (_this select 1) select 0 ; detectable body tag - visibility value seems to low - another object ? _a = "SkeetDisk" createVehicle [0,0,0] _a attachTo [_unit, [0.5, 0, 0]] detectSQS set [3, (detectSQS select 3) + [[_unit, _a, false]]] _n = count (detectSQS select 3) ; range is to much - use trigger ? _unit addAction ["HIDE BODY", "detect.sqs", (_n - 1)] ; start body detection script if (_n == 1) then {["BODY"] exec "detect.sqs"} exit ;---------------- #BODY ;---------------- _enemies = detectSQS select 2 #BODY_LOOP1 _i = 0 _n = count (detectSQS select 3) #BODY_LOOP2 if (((detectSQS select 3) select _i) select 2) then {goto "BODY_SKIP"} _tag = ((detectSQS select 3) select _i) select 1 {if ((_x knowsAbout _tag > 0) && !(_x in (detectSQS select 5))) then {_x lockWp true;_x move (getPos _tag);["COMBAT",_x,"Body"] exec "detect.sqs"}} forEach _enemies #BODY_SKIP _i = _i + 1 if (_i < _n) then {goto "BODY_LOOP2"} ~1 if !(detectSQS select 0) then {goto "BODY_LOOP1"} exit ;---------------- #HIDE ;---------------- (_this select 0) removeAction (_this select 2) _index = _this select 3 _unit = ((detectSQS select 3) select _index) select 0 _tag = ((detectSQS select 3) select _index) select 1 _pos = getPos _unit _i = 0 ; animation needed here ? #BURRY ~0.01 _i = _i - 0.00025 _unit setPos [_pos select 0, _pos select 1, _i] if (_i > -0.5) then {goto "BURRY"} ((detectSQS select 3) select _index) set [2, true] _unit setPos [0,0,0] _tag setPos [0,0,0] deleteVehicle _unit deleteVehicle _tag titleText ["Body Hidden", "plain down"] exit ;---------------- #FIRED ;---------------- ... exit Some parts might seem like mandarin for new scripters but the old veterans from OFP will get the picture. Busy now. Some explanations and maybe working examples later... Cheers Share this post Link to post Share on other sites
breeze 0 Posted July 23, 2009 I read about that in Mr Murrays book I still dont understand it once the AI knows about target they know? Does that init line need to be in every AI that we want to perform correctly? Share this post Link to post Share on other sites
Tajin 349 Posted July 23, 2009 sqs *yuck* about that "hide body part": Certain types of units can do that anyway and theres no need to move the body underground with scripting. Just use the "hidebody _unit" command. Share this post Link to post Share on other sites
AliMag 0 Posted July 23, 2009 Hi, @Tajin Sorry to disappoint you but I did'nt have time for editing during the Arma period so I dont even have it. That is why I still use sqs (sorry for making you sick) and a lot of obsolete commands. But they still work and will do for now (at least for me) since we are mostly testing more than anything else. About the hide body command, I will check it out but if it just disappear the body I will not use it. I even intent to force the player to stay near the body for a small period of bury time. @Breeze As soon I get some time I will finish the script and post informations on how it works and use it. Cheers Share this post Link to post Share on other sites
AliMag 0 Posted July 25, 2009 Hi, as promised here I am with a few tests. First, I apologise for the long post (I just want to be sure that new people in the editor understand what I'm saying) and my english that is not my first language. Oh, and thanks to Tajin. You were right about the hide body part. The command hideBody does not work for me but the unit that I use already has the ability. I guess all specops have it. The problem In a stealth mission you want to be able to infiltrate an enemy sector, silently kill guards and sentries, dispose of their bodies, accomplish whatever tasks you were assigned, and extract without the enemy even knowing you were there. One can imagine the enemy base with soldiers in safe behaviour slowly patrolling their sector until an enemy is detected (visual or sound) or an anomaly, like a dead body, is encountered. Unfortunately, this is not actually possible with the engine default behaviour. Why? Simple. It is normal for a soldier in safe behaviour to switch to a combat behaviour as soon that he is aware of enemy presence. In other words, as soon as his knowsAbout about the detected unit is not 0 anymore. But it is not normal that a soldier knows about you as soon as you silently kill one of his comrade 200 meters away. I dont believe that this is a bug. A knowsAbout value of 1.5 is automatically given to an unit when he gets knowledge of a comrade (presence and position of the killer if he is alive, presence only if he is dead) and when he gets shot without having previous knowledge of the shooter. In other words, it seems that an unit inherits the knowsAbout properties of another unit when he gets knowledge of him, partially if dead. This behaviour is not without logic since Arma is much more a battlefield simulation than a specop one, but completely unsuitable for stealth mission. Another thing that I've found, and this is definitely a bug, is that you can throw a grenade in the middle of an enemy camp and if nobody is killed or injured, it will go unnoticed. They detect anything else (even in careless behaviour) but not grenades. The solution Since we cant change the way units perceive their environment we have to focus on the way they react to it. The script set the enemy soldiers behaviour to CARELESS. In this behaviour they are still aware of their environment but will not react to it. Their knowledge of enemy units is monitored so we can decide when we want them to react. The script also monitors dead bodies encountered (also based on his knowsAbout but on another object attach to the body) and grenade explosion. Test Setup 2 russian riflemans named s1 and s2 with a very simple patrol route. s2 has his mobility disabled at start (s2 disableAI "move") in his initialization box. 2 radio triggers: [0-0-1] s2 enable Move --> to start moving s2 [0-0-2] s2 switchCamera --> to switch the camera on s2 Difficulty on Normal. === TEST #1 - Kill the soldier to your left (s1). Once he detects you, you have about 10 seconds to kill him before the alarm is raised. Dont let him fire a shot or the other soldier (s2) will probably be alerted and eventually raise the alarm. The test will fail if the alarm is raised. - Hide and enable the other soldier (s2) to move (0-0-1) - Switch on him (0-0-2) to have a view of his perspective and watch him until he discover the body and the alarm is eventually raised. Has you will see, he will rapidly gain knowledge of his dead comrade and about a second after, OF YOU! he might not know exactly where you are (since his comrade is dead) but he automatically knows who you are and that you are present. The body will be detected later when he gets closer and eventually the alarm will be raised. === TEST #2 - Kill the soldier to your left (s1). - Move to his position and hide him using the option 'Hide body' in the action menu. - Hide and enable the other soldier (s2) to move (0-0-1) - Switch on him (0-0-2) to have a view of his perspective and watch him continuing his patrol like nothing has happend. Has you will maybe see, he might gain knowledge OF YOU even if there is nothing to detect. His knowsAbout on you might jump to 1.5 (when s1 got killed) but since we know what this value means, we'll not let him react to it. This is impossible to achieve with the engine default behaviour only. The test files Now, create a folder in your My Documents\Arma 2\missions in XP or Documents\Arma 2\missions in Vista/7 and create the following text files with their respective names. mission.sqm (the mission file) version=11; class Mission { addOns[]= { "cacharacters2", "utes" }; addOnsAuto[]= { "cacharacters2", "utes" }; randomSeed=2025868; class Intel { startWeather=0.40000001; forecastWeather=0.25; year=2008; month=10; day=11; hour=14; minute=20; }; class Groups { items=3; class Item0 { side="EAST"; class Vehicles { items=1; class Item0 { position[]={3427.1709,19,3628.5173}; azimut=90; id=0; side="EAST"; vehicle="RU_Soldier"; leader=1; skill=0.60000002; text="s1"; }; }; class Waypoints { items=2; class Item0 { position[]={3596.0247,19,3628.5815}; speed="LIMITED"; class Effects { }; timeoutMin=5; timeoutMid=7; timeoutMax=9; showWP="NEVER"; }; class Item1 { position[]={3435.7451,19,3628.3562}; type="CYCLE"; class Effects { }; timeoutMin=3; timeoutMid=5; timeoutMax=7; showWP="NEVER"; }; }; }; class Item1 { side="EAST"; class Vehicles { items=1; class Item0 { position[]={3553.7117,18.870409,3679.2463}; azimut=180; id=1; side="EAST"; vehicle="RU_Soldier"; leader=1; skill=0.60000002; text="s2"; init="this disableAI ""move"""; }; }; class Waypoints { items=4; class Item0 { position[]={3554.3345,19,3640.261}; class Effects { }; timeoutMin=6; timeoutMid=9; timeoutMax=12; showWP="NEVER"; }; class Item1 { position[]={3469.7847,18.993979,3640.6021}; class Effects { }; timeoutMin=6; timeoutMid=9; timeoutMax=12; showWP="NEVER"; }; class Item2 { position[]={3553.8733,19,3639.0298}; class Effects { }; timeoutMin=5; timeoutMid=10; timeoutMax=15; showWP="NEVER"; }; class Item3 { position[]={3553.1924,18.895931,3677.2134}; type="CYCLE"; class Effects { }; timeoutMin=5; timeoutMid=10; timeoutMax=15; showWP="NEVER"; }; }; }; class Item2 { side="WEST"; class Vehicles { items=1; class Item0 { position[]={3535.6306,19,3511.8772}; id=2; side="WEST"; vehicle="FR_R"; player="PLAYER COMMANDER"; leader=1; skill=0.60000002; }; }; }; }; class Sensors { items=2; class Item0 { position[]={3590.3928,19.003927,3506.1277}; a=0; b=0; activationBy="BRAVO"; interruptable=1; age="UNKNOWN"; text="s2 switchCamera"; expActiv="s2 switchCamera ""group"""; class Effects { }; }; class Item1 { position[]={3559.8145,19,3492.0686}; a=0; b=0; activationBy="ALPHA"; interruptable=1; age="UNKNOWN"; text="s2 Enable Move"; expActiv="s2 enableAI ""move"""; class Effects { }; }; }; }; class Intro { addOns[]= { "utes" }; addOnsAuto[]= { "utes" }; randomSeed=14681602; class Intel { startWeather=0.40000001; forecastWeather=0.25; year=2008; month=10; day=11; hour=14; minute=20; }; }; class OutroWin { addOns[]= { "utes" }; addOnsAuto[]= { "utes" }; randomSeed=2674643; class Intel { startWeather=0.40000001; forecastWeather=0.25; year=2008; month=10; day=11; hour=14; minute=20; }; }; class OutroLoose { addOns[]= { "utes" }; addOnsAuto[]= { "utes" }; randomSeed=9806466; class Intel { startWeather=0.40000001; forecastWeather=0.25; year=2008; month=10; day=11; hour=14; minute=20; }; }; init.sqs (the initialisation file) ;=============================== ; init.sqs ;=============================== ; init detect script _friends = [player] _enemies = [s1, s2] _script = "alarm.sqs" ["INIT", [_friends, _enemies], _script] exec "detect.sqs" detect.sqs (the detection script) ;============================================================================ ; detect.sqs ; ["INIT", [arrayOfFriendlyUnits, arrayOfEnemyUnits], UserScript] ; alimag - 07/2009 ;============================================================================= if (count _this > 3) then {goto "HIDE"} goto (_this select 0) ;---------------- #INIT ;---------------- _friends = (_this select 1) select 0 _enemies = (_this select 1) select 1 _script = _this select 2 _delay = 10 _distance = 200 {_x setBehaviour "CARELESS";_x setSpeedMode "LIMITED"} forEach _enemies {_x addEventHandler ["killed", {["KILLED", _this] exec "detect.sqs"}]} forEach _enemies {_x addEventHandler ["hit", {["HIT", _this] exec "detect.sqs"}]} forEach _enemies {_x addEventHandler ["fired", {["FIRED", _this] exec "detect.sqs"}]} forEach _friends ; init global var detectSQS = [false, _friends, _enemies, [], _delay, [], _distance] ; start general detection script ["DETECT"] exec "detect.sqs" ; wait for exit script flag @ (detectSQS select 0) [_enemies] exec _script exit ;---------------- #DETECT ;---------------- _friends = detectSQS select 1 _enemies = detectSQS select 2 #DETECT_LOOP1 _i = 0 _n = count _friends #DETECT_LOOP2 _friend = _friends select _i {if ((_x knowsAbout _friend > 0.5) && (_x knowsAbout _friend != 1.5) && !(_x in (detectSQS select 5))) then {["COMBAT",_x,"Unit"] exec "detect.sqs"}} forEach _enemies _i = _i + 1 if (_i < _n) then {goto "DETECT_LOOP2"} ~1 if !(detectSQS select 0) then {goto "DETECT_LOOP1"} exit ;---------------- #COMBAT ;---------------- _unit = _this select 1 _from = _this select 2 _delay = detectSQS select 4 detectSQS set [5, (detectSQS select 5) + [_unit]] if !(alive _unit) then {exit} player globalChat format ["%1 detected by (%2)", _from, _unit] _unit addEventHandler ["fired", {["COMBAT_FIRED",_unit] exec "detect.sqs"}] _unit setBehaviour "COMBAT" _unit lockWp true _unit setCombatMode "RED" ~_delay if (alive _unit) then {detectSQS set [0, true]} exit ;---------------- #COMBAT_FIRED ;---------------- if (detectSQS select 0) then {exit} _unit = _this select 1 _enemies = detectSQS select 2 _dist = detectSQS select 6 {if (_x distance _unit < _dist) then {["COMBAT",_x,"Friendly gunshot"] exec "detect.sqs"}} forEach _enemies exit ;---------------- #HIT ;---------------- if (detectSQS select 0) then {exit} _unit = (_this select 1) select 0 if !(_unit in (detectSQS select 5)) then {["COMBAT", _unit, "Shooter"] exec "detect.sqs"} exit ;---------------- #KILLED ;---------------- if (detectSQS select 0) then {exit} _unit = (_this select 1) select 0 _killer = (_this select 1) select 1 ; detectable body tag - visibility value seems to low - another object ? _a = "SkeetDisk" createVehicle [0,0,0] _a attachTo [_unit, [0.5, 0, 0]] detectSQS set [3, (detectSQS select 3) + [[_unit, _a,false]]] _n = count (detectSQS select 3) if ((_unit in (detectSQS select 5)) && !(detectSQS select 0)) then {player globalChat "Detector neutralized"} if (_n == 1) then {["BODY"] exec "detect.sqs"} exit ;---------------- #BODY ;---------------- _enemies = detectSQS select 2 #BODY_LOOP1 _i = 0 _n = count (detectSQS select 3) #BODY_LOOP2 _body = ((detectSQS select 3) select _i) select 0 _flag = ((detectSQS select 3) select _i) select 2 if (isNull _body) then {if !(_flag) then {((detectSQS select 3) select _i) set [2,true];titleText ["Body hidden","plain down"]};goto "BODY_SKIP"} _tag = ((detectSQS select 3) select _i) select 1 {if ((_x knowsAbout _tag > 0) && !(_x in (detectSQS select 5))) then {_x lockWp true;_x move (getPos _tag);["COMBAT",_x,"Body"] exec "detect.sqs"}} forEach _enemies #BODY_SKIP _i = _i + 1 if (_i < _n) then {goto "BODY_LOOP2"} ~1 if !(detectSQS select 0) then {goto "BODY_LOOP1"} exit ;---------------- #FIRED ;---------------- if (detectSQS select 0) then {exit} _grenade = (getPos ((_this select 1) select 0)) nearestObject ((_this select 1) select 4) ; if not grenade exit if !(((_this select 1) select 1) == "Throw") then {exit} ; determine grenade explosion position #FIRED_LOOP _pos = getPos _grenade ~0.1 if (alive _grenade) then {goto "FIRED_LOOP"} _enemies = detectSQS select 2 _impact = "SkeetDisk" createVehicle [0,0,0] _impact setPos _pos _dist = detectSQS select 6 {if (_x distance _impact < _dist) then {["COMBAT",_x,"Explosion"] exec "detect.sqs"}} forEach _enemies deleteVehicle _impact exit alarm.sqs (the user defined file) ;=============================== ; alarm sqs ;=============================== player globalChat "The alarm has been raised" _enemies = _this select 0 {_x setBehaviour "COMBAT";_x lockWp true;_x setCombatMode "RED"} forEach _enemies Now, save the files and open your folder in the editor to try it. I would definitely appreciate feedback from anyone trying it. Maybe, together, we can eliminate bugs and refine the script into something usefull. Thank you for reading Cheers Share this post Link to post Share on other sites
Tajin 349 Posted July 25, 2009 I'll certainly give it a try, not today though. Have you tested the effects of the settargetage command too ? Share this post Link to post Share on other sites
Tinker 10 Posted July 25, 2009 (edited) Mission loaded all fine. New to arma modding, can you explain this pls: :o - Hide and enable the other soldier (s2) to move (0-0-1)- Switch on him (0-0-2) to have a view of his perspective and watch him until he discover the body and the alarm is eventually raised. Killing any 1 of the guys does not alert the other here. Even if they spot me before I shoot them. Edited July 25, 2009 by Tinker Share this post Link to post Share on other sites
AliMag 0 Posted July 25, 2009 (edited) Hi, Have you tested the effects of the settargetage command too ? Not yet but I will. Killing any 1 of the guys does not alert the other here. Even if they spot me before I shoot them. This is because the script is forcing him to stay in careless behaviour. Without the script he would have switch in combat mode. To understand the point you have to see what HE sees. For this to happen, as soon as you kill the first guy on your left, hide yourself and press 0, then 0 again and then 1 (not on the num pad). This will enable the second guy to move. Immediately after press 0 then 0 again and then 2. This will switch the camera on the second soldier so you can see what HE is seeing. You'll notice a yellow arrow indicating his next waypoint and a ORANGE/RED SQUARE indicating where he thinks YOU might be. How the hell does he know about you? Just continue watching him until he discovers the body and raise the alarm. Then try the second test the same way. This is exactly what I've explain in the previous post. Sorry if it was not clear enough I might not have explain myself correctly. Just do what I've said and watch the results. Thanks again for the feedbacks. Cheers Edited July 25, 2009 by AliMag Share this post Link to post Share on other sites
breeze 0 Posted July 25, 2009 I want to try this to but im trying to understand it better before i do Share this post Link to post Share on other sites
galzohar 31 Posted July 25, 2009 Is it impossible to set them to combat mode and change up their waypoints when they detect danger and remove their knowledge of your location somehow? That way when they see a body they will still not know about you but will start acting in a more careful manner and actively look for you via waypoints that were defined either in advance or by a script. Share this post Link to post Share on other sites
Tinker 10 Posted July 26, 2009 #1 Hiding worked all fine, remained undetected. Tried several fall back locations. #2 He seemed to come close to the dead body, after a while, but had not looked in the direction of. Then suddenly spun around and locked onto me, then killed me. About 100M away, undetected. Share this post Link to post Share on other sites
Trazer01 0 Posted August 8, 2009 It would be great if any modder did an addon or script that showed that "knowsabout value" in the HUD in order to test AI behaviour, detecting capabilities in each level of awareness, etc. And it would be great if BI explanated properly all this issues too, IMAO Share this post Link to post Share on other sites
Ghost 40 Posted August 8, 2009 It would be great if any modder did an addon or script that showed that "knowsabout value" in the HUD in order to test AI behaviour, detecting capabilities in each level of awareness, etc.And it would be great if BI explanated properly all this issues too, IMAO you could create a looping script that has something like this in it _eknow = eman knowsAbout pman; hint format ["%1", _eknow]; eman would be the ai guy (make sure he is named) and pman would be the player. Would display a hint depending on loop delay about the status of eman knowing about player from 0-4. 0 is does not know and 4 is know exactly. i did a quick test and when they lost me in the tall grass i was getting 1.5 and the ai were spraying the area were i was then when they had a lock it was 4. Share this post Link to post Share on other sites
Bellicosity 10 Posted August 8, 2009 I would strongly suggest hintsilent over hint unless you want to go insane after a minute Share this post Link to post Share on other sites