PDA

View Full Version : AI Urban Building/Combat Positioning Script (with Example Mission)



DaveP
Jun 5 2009, 23:49
In a nutshell, this script will let you quickly and easily fill out enterable urban buildings with AI without having to go through loads of tedious waypoint making. Makes for some very tense close quarters fighting. Don't see why it shouldn't work in MP.

Also now got a retreat script, whereby units that are fighting in built up areas, rather than running away, will flee to the nearest building and hold up inside

Example mission:
http://www.sendspace.com/file/vaqy03

Video:
http://www.youtube.com/watch?v=Sr-ICb7Wjbw&fmt=22


Code (+Howto)
RetreatToBuilding.sqs

; ****************************************************************
; Infantry retreat into buildings script, by DaveP (BIStudio forum PM for help/info)
;
; Free to use it in whatever and enjoy! Chop and change as you wish (credit is appreciated), BIStudio forum PM me if you use it in anything, so I can try it out =D
;
; Place soldier near building of choice, then:
; syntax:
; [unit name, courage (0-1, 1 = Low, 0 = High, 0.8~ is best for this script)] exec "RetreatToBuilding.sqs"
;
; example:
; (unit's init field, run like little girly girls)
; [this,0.9] exec "RetreatToBuilding.sqs"
;
;Extra info:
;-Removes hand grenades, otherwise dumb infantry try and throw a grenade from inside a building and frag themselves
; ****************************************************************

_FISHman = _this select 0
_Scaredness = _this select 1
_x = 0
_y = 0

_FISHman allowFleeing _Scaredness

#Wait
@<hidden>(fleeing _FISHman)=true

_FISHman allowFleeing 0



[_FISHman] joinsilent grpnull;

#FindBuilding
_buildings = nearestObjects [_FISHman, ["HOUSE"], 50]



_buildingcount = count _buildings






#SelectBuilding
_buildingselected = _buildings select _y




_y = _y + 1

?_y > _buildingcount:goto "nofind"

_z = 0
_Positionarray = []


#Positionfinder
_thisposition = (_buildingSelected buildingPos _z)



_positionsum = (_thisposition select 0) + (_thisposition select 1) + (_thisposition select 2)



? _positionsum==0:goto "PositionsChecked"

_Positionarray = _Positionarray + [_thisposition]
_z = _z + 1
goto "Positionfinder"


#Positionschecked



_MaxPos = count _positionarray



?_MaxPos==0:goto "SelectBuilding"

_randomnumber = round random _MaxPos



_MovePos = _positionarray select _randomnumber




_FISHman DoMove [(_MovePos select 0),(_MovePos select 1),(_MovePos select 2)]
_FISHman removeWeapon "HandGrenade_East"; _FISHman removeMagazines "HandGrenade_East";
_FISHman removeWeapon "HandGrenade_West"; _FISHman removeMagazines "HandGrenade_West";
_FISHman removeWeapon "HandGrenade"; _FISHman removeMagazines "HandGrenade";
_FISHman setunitpos "UP"


#nofind
exit


PlaceInBuilding.sqs

; ****************************************************************
; Place infantry in buildings script, by DaveP (BIStudio forum PM for help/info)
;
; Free to use it in whatever and enjoy! Chop and change as you wish (credit is appreciated), BIStudio forum PM me if you use it in anything, so I can try it out =D
;
; Place soldier near building of choice, then:
; syntax:
; [unit name] exec "PlaceInBuilding.sqs"
;
; example:
; (unit's init field)
; [this] exec "PlaceInBuilding.sqs"
;
;Extra info:
;-Removes hand grenades, otherwise dumb infantry try and throw a grenade from inside a building and frag themselves
;-Will delete unit if no building position is found
; ****************************************************************

_FISHman = _this select 0
_x = 0
_y = 0

#FindBuilding
_buildings = nearestObjects [_FISHman, ["HOUSE"], 200]



_buildingcount = count _buildings






#SelectBuilding
_buildingselected = _buildings select _y




_y = _y + 1

?_y > _buildingcount:goto "nofind"

_z = 0
_Positionarray = []


#Positionfinder
_thisposition = (_buildingSelected buildingPos _z)



_positionsum = (_thisposition select 0) + (_thisposition select 1) + (_thisposition select 2)



? _positionsum==0:goto "PositionsChecked"

_Positionarray = _Positionarray + [_thisposition]
_z = _z + 1
goto "Positionfinder"


#Positionschecked



_MaxPos = count _positionarray



?_MaxPos==0:goto "SelectBuilding"

_randomnumber = round random _MaxPos



_MovePos = _positionarray select _randomnumber




_FISHman Setpos [(_MovePos select 0),(_MovePos select 1),(_MovePos select 2)]
_FISHman setdir random 360

_FISHman removeWeapon "HandGrenade_East"; _FISHman removeMagazines "HandGrenade_East";
_FISHman removeWeapon "HandGrenade_West"; _FISHman removeMagazines "HandGrenade_West";
_FISHman removeWeapon "HandGrenade"; _FISHman removeMagazines "HandGrenade";
_FISHman setunitpos "UP"


exit


#nofind
DeleteVehicle _FISHman
exit

My wish would be to integrate these into a Game Logic module, but I have no idea how to do that; if anyone does and would like to, please do!


Free to use it in whatever and enjoy! Chop and change as you wish (credit is appreciated), BIStudio forum PM me if you use it in anything, so I can try it out =D

Manzilla
Jun 6 2009, 00:21
Yes. Thank you. This is nice to have so soon.

EDIT:

Wait what do you mean by this.

find out the number of positions in the building using the create waypoint window

DaveP
Jun 6 2009, 00:25
Yes. Thank you. This is nice to have so soon.

EDIT:

Wait what do you mean by this.


Enterable buildings usually have a number of set 'positions' inside for AI to use as a position to move to. These are the positions I use for the script. If you make a "move" waypoint on a building an extra option on the waypoint screen comes up specifying what position the AI should occupy

Manzilla
Jun 6 2009, 00:33
Enterable buildings usually have a number of set 'positions' inside for AI to use as a position to move to. These are the positions I use for the script. If you make a "move" waypoint on a building an extra option on the waypoint screen comes up specifying what position the AI should occupy

Jesus after all this time I never saw that. Thanks and sorry for my blindness.

Binkowski
Jun 6 2009, 00:37
Awesome! I just ran the test mission, great work! I'm going to implement this into missions soon!

DaveP
Jun 6 2009, 00:46
Interesting tidbit: The factory at 114,078 has a building with 59 different positions for soldiers, by far the most 'enterable' building in the game.. a deathtrap to try to take alive, though, would be great for two MP fireteams to try to tackle



Jesus after all this time I never saw that. Thanks and sorry for my blindness.


It was implemented in OFP:Resistance :p

Manzilla
Jun 6 2009, 02:44
Interesting tidbit: The factory at 114,078 has a building with 59 different positions for soldiers, by far the most 'enterable' building in the game.. a deathtrap to try to take alive, though, would be great for two MP fireteams to try to tackle





It was implemented in OFP:Resistance :p

I was afraid that may be the case. Damn I've been making missions for that and ArmA since the releases so the fact that I've never noticed that is remarkable, pretty damn funny too. ;)

Maddmatt
Jun 6 2009, 02:54
Interesting tidbit: The factory at 114,078 has a building with 59 different positions for soldiers, by far the most 'enterable' building in the game.. a deathtrap to try to take alive, though, would be great for two MP fireteams to try to tackle

All you need is a tank and some HEAT shells ;)
Or an airstrike.

DaveP
Jun 6 2009, 03:36
All you need is a tank and some HEAT shells ;)
Or an airstrike.

Haha, funny you should say that, every time I've tried calling in an LGB bombing run, I'll go in to check the damages and one or two crafty buggers are lying there waiting for me among the rubble, that building's a bunker in disguise

])rStrangelove
Jun 6 2009, 06:23
Nice script. So a commandStop doesn't make them stop inside the building? Can't believe they always try to come out. If you tell them to halt when you're the leader it works ingame. I tried that with 2 of my heli crew members on a skycraper. Just dont tell them to mount the chopper again, they will gladly jump from the building lol.

[Edit]

Looks like it works when every unit has its own group:


[_unit] joinsilent grpnull;
_unit setPos _buildingpos;
_unit move _buildingspos;


They dont get a command to return to formation afterwards, so they dont leave their pos in the house.

Cross
Jun 6 2009, 08:01
There is a script by Raven for Arma1 .. TakeBuilding Script..
It places soldiers into building using the parameters you give like radius, building % and fill % etc...

Very nice script for quick CQC.

http://www.armaholic.com/page.php?id=3095

I think would be good if you can convert to Arma2 & combine both....don't forget to give credits or get permission before modifying ;)

GJ

DaveP
Jun 6 2009, 09:43
)rStrangelove;1300586']Nice script. So a commandStop doesn't make them stop inside the building? Can't believe they always try to come out. If you tell them to halt when you're the leader it works ingame. I tried that with 2 of my heli crew members on a skycraper. Just dont tell them to mount the chopper again, they will gladly jump from the building lol.

[Edit]

Looks like it works when every unit has its own group:


[_unit] joinsilent grpnull;
_unit setPos _buildingpos;
_unit move _buildingspos;


They dont get a command to return to formation afterwards, so they dont leave their pos in the house.

Yeah, that's one of the major limitations, kinda funny seeing 60 people charge into a building and then walk straight back out again, mind.

I considered using DisableAI "Move" on them, but CommandStop sounds like a far cleaner method




There is a script by Raven for Arma1 .. TakeBuilding Script..
It places soldiers into building using the parameters you give like radius, building % and fill % etc...

Very nice script for quick CQC.

http://www.armaholic.com/page.php?id=3095

I think would be good if you can convert to Arma2 & combine both....don't forget to give credits or get permission before modifying ;)

GJ


Interesting, this uses some methods I'd considered but not really thought too much detail into; the advantage I'd say my script has it's a bit more controllable in terms of specifying how many people in each building and what unit type, something you may want as a mission editor (eg. Hostage rescue from a building, make sure there's a few civvies and one commander and so on)

CarlGustaffa
Jun 6 2009, 10:23
All you need is a tank and some HEAT shells ;)
Or an airstrike.

Sometimes what you need is not available. Maybe the mission designer didn't want to use these things :)

SAbre4809
Jun 6 2009, 10:35
I really think something like this in module/game logic form, would be a awesome addition, link it to groups you want to use it. With specified req for them to use it, like they 'retreat' to buildings when overwhelmed, or just all the time.

Can you imagine Urban fights where the enemy starts to fall back into buildings. :eek:

DaveP
Jun 6 2009, 13:12
I really think something like this in module/game logic form, would be a awesome addition, link it to groups you want to use it. With specified req for them to use it, like they 'retreat' to buildings when overwhelmed, or just all the time.

Can you imagine Urban fights where the enemy starts to fall back into buildings. :eek:

Hmm, I'm working on it but having a problem with my conditional; If I use @<hidden> it never continues, regardless of the allowFleeing level, and if I use WaitUntil it always continues!



_FISHman allowFleeing 1

@<hidden>{fleeing _FISHman==true}

hint "Screw this ahh"

Any ideas at all?

Mike84
Jun 6 2009, 13:26
I was thinking of making something like this as well when reading the comref (I haven't seen buildingPos before, although it was in arma1). Anyhow, I haven't gotten far yet, only the algorithm to find enterable buildings and save the number of positions in a building so far. Maybe you can find us for it as well:



_radius = 250;
buildingArray = [];
{
if (((_x buildingPos 0) select 0) != 0) then
{
_i = 0;
while { ((_x buildingPos _i) select 0) != 0 } do
{
_i = _i + 1;
};
buildingArray = buildingArray + [[_x, _i]];
};
}forEach (nearestObjects [player,["House"], _radius]);


and it will spit out (1st element = house object, 2nd element = number of positions):
[[10827000# 10909: mil_house.p3d,2],
[1094dc00# 10880: ss_hangar.p3d,10],
[107a6000# 10660: mil_controltower.p3d,21],
[10944800# 10887: mil_guardhouse.p3d,3]]

DaveP
Jun 6 2009, 13:28
I was thinking of making something like this as well when reading the comref (I haven't seen buildingPos before, although it was in arma1). Anyhow, I haven't gotten far yet, only the algorithm to find enterable buildings and save the number of positions in a building so far. Maybe you can find us for it as well:



_radius = 250;
buildingArray = [];
{
if (((_x buildingPos 0) select 0) != 0) then
{
_i = 0;
while { ((_x buildingPos _i) select 0) != 0 } do
{
_i = _i + 1;
};
buildingArray = buildingArray + [[_x, _i]];
};
}forEach (nearestObjects [player,["House"], _radius]);


and it will spit out (1st element = house object, 2nd element = number of positions):
[[10827000# 10909: mil_house.p3d,2],
[1094dc00# 10880: ss_hangar.p3d,10],
[107a6000# 10660: mil_controltower.p3d,21],
[10944800# 10887: mil_guardhouse.p3d,3]]


Already ahead of ya, heh, I've now got it so AI will enter the nearest enterable building in a 50m radius and automatically randomly choose any of the available positions without having to even tell it how many there are. Any ideas on the conditional at all? It's holding back progress

Cross
Jun 6 2009, 13:31
Interesting, this uses some methods I'd considered but not really thought too much detail into; the advantage I'd say my script has it's a bit more controllable in terms of specifying how many people in each building and what unit type, something you may want as a mission editor (eg. Hostage rescue from a building, make sure there's a few civvies and one commander and so on)

you can specify the intensity on each soldier type as well. But in general...not per building. You can set the soldier type according to height tho .. like put snipers/MG on top of the buildings. You also don't need to create many groups and it is randomized so that it is different everytime you play..
Take a look into it.

Mike84
Jun 6 2009, 13:32
i dont think you need the comparision operator, a waitUntil waits until it's true anyway

Imutep
Jun 6 2009, 13:39
Thx for this nice script, DaveP :)

Put it on our script section at Assault Mission Studio
http://www.assaultmissionstudio.de/images/downloads/dlicon.gif (http://www.assaultmissionstudio.de/downloads.php?page_id=163)
AI Urban Building/Combat Positioning Script by DaveP

DaveP
Jun 6 2009, 13:40
i dont think you need the comparision operator, a waitUntil waits until it's true anyway

You'd think that, but even with allowFleeing 0 it's letting the script pass :confused:

SAbre4809
Jun 6 2009, 13:42
Would it be possible to check where the enemy presence is, directional, (or main enemy presence). Then check which positions in the building face that direction and make the AI have a priority to occupy those positions. Mostly usefull for higher floors in buildings.

Another thing though, can the AI even shoot out of building windows.

DaveP
Jun 6 2009, 13:45
Another thing though, can the AI even shoot out of building windows.

Very much so. They'll shoot, fire RPGs, and generally make your life hell.


Building positions don't have information on what side of the building they're facing; It could be possible by comparing distance between the positions, but another consideration is that often, even with it random as it is multiple men will end up taking the same positions, and if you increase the chances of going to one position over another you're always raising the chance that you have around 5 people at one window, which looks a bit dumb



After much cajouling I've got it working, mission soonish

RunForrest
Jun 6 2009, 15:36
hi
i stumbled over this thread and i thought u might find this script interesting too (if u dont know it already):
Random House Patrol Script by Tophe
http://www.armaholic.com/page.php?id=936

DaveP
Jun 6 2009, 16:16
Here we go, updated latest version:

http://www.sendspace.com/file/vaqy03


; ****************************************************************
; Place infantry in buildings script, by DaveP (BIStudio forum PM for help/info)
;
; Free to use it in whatever and enjoy! Chop and change as you wish (credit is appreciated), BIStudio forum PM me if you use it in anything, so I can try it out =D
;
; Place soldier near building of choice, then:
; syntax:
; [unit name] exec "PlaceInBuilding.sqs"
;
; example:
; (unit's init field)
; [this] exec "PlaceInBuilding.sqs"
;
;Extra info:
;-Removes hand grenades, otherwise dumb infantry try and throw a grenade from inside a building and frag themselves
;-Will delete unit if no building position is found
; ****************************************************************
; ****************************************************************
; Infantry retreat into buildings script, by DaveP (BIStudio forum PM for help/info)
;
; Free to use it in whatever and enjoy! Chop and change as you wish (credit is appreciated), BIStudio forum PM me if you use it in anything, so I can try it out =D
;
; Place soldier near building of choice, then:
; syntax:
; [unit name, courage (0-1, 1 = Low, 0 = High, 0.8~ is best for this script)] exec "RetreatToBuilding.sqs"
;
; example:
; (unit's init field, run like little girly girls)
; [this,0.9] exec "RetreatToBuilding.sqs"
;
;Extra info:
;-Removes hand grenades, otherwise dumb infantry try and throw a grenade from inside a building and frag themselves
; ****************************************************************

Cross
Jun 6 2009, 16:50
Retreat to building is great idea ... well done..
I sure will try as soon as I get my copy
:bounce3:

CarlGustaffa
Jun 6 2009, 20:12
How does urban patrol script (http://www.armaholic.com/page.php?id=471) work with Arma2?

Imutep
Jun 7 2009, 10:23
Sure, take a look at Kronzkys site.
UPS for ArmA2 (http://kronzky.info/ups/index.htm)

mr.g-c
Jun 7 2009, 11:07
A very nice script!, but why in sqs? Isn't sqf far better performance wise?

CarlGustaffa
Jun 7 2009, 11:13
Nice, thx. If I only could test it :)

bravo 6
Jun 7 2009, 11:17
Could we have a demonstration video of these please?

DaveP
Jun 7 2009, 14:23
A very nice script!, but why in sqs? Isn't sqf far better performance wise?

Like I said, last time I scripted, functions were in their infancy; I have no clue how to make them




Could we have a demonstration video of these please?

I'll throw one together soonish

CarlGustaffa
Jun 7 2009, 18:41
@<hidden>: Sqf are no longer only a function type, but used for most scripting. You can do both functions (returning a value) and regular sqs type scripts with them, with a few changes.

Check sqf (http://community.bistudio.com/wiki/sqf) vs old sqs (http://community.bistudio.com/wiki/sqs) syntax.

DaveP
Jun 7 2009, 20:19
Video:

http://www.youtube.com/watch?v=Sr-ICb7Wjbw&fmt=22

Fcn
Jun 21 2009, 17:03
Just a quick issue, a lot of the time when units are placed they are spawned slightly too high or low in the building and die after around 15-30 seconds, leaving corpses. Is this a bug with the script or am I missing something?

DiRaven
Jun 21 2009, 18:38
SQF variant of "Place in building" script:



/*
; ****************************************************************
; Place infantry in buildings script, by DaveP (BIStudio forum PM for help/info)
; Reworked into SQF by DiRaven (BIStudio forum PM for help/info)
; Free to use it in whatever and enjoy! Chop and change as you wish (credit is appreciated)
;
; Place soldier near building of choice, then:
; syntax:
; unitname execVM "PlaceInBuilding.sqf"
;
; example:
; (unit's init field)
; _script = this execVM "PlaceInBuilding.sqf"
;
;Extra info:
;-Removes hand grenades, otherwise dumb infantry try and throw a grenade from inside a building and frag themselves
;-Will delete unit if no building position is found
; ****************************************************************
*/
_unit = _this;
_arr_buildings = nearestObjects [_unit, ["HOUSE"], 50];
_buildingcount = count _buildings;

_arr_positions = [];
{
_i = 0;
_positions_checked = FALSE;
while {not _positions_checked} do {
_position = _x buildingPos _i;
_coord_x = _position select 0;
_coord_y = _position select 1;
_coord_z = _position select 2;
_coord_sum = _coord_x + _coord_y + _coord_z;
if (_coord_sum == 0) then {
_positions_checked = TRUE;
} else {
_arr_positions = _arr_positions + [_position];
_i = _i + 1;
};
};
} foreach _arr_buildings;

if (count _arr_positions == 0) then {
deleteVehicle _unit;
};

_position = _arr_positions select random count _arr_positions;

_unit setPos _position;
_unit setDir random 360;

_unit removeWeapon "HandGrenade_East"; _unit removeMagazines "HandGrenade_East";
_unit removeWeapon "HandGrenade_West"; _unit removeMagazines "HandGrenade_West";
_unit removeWeapon "HandGrenade"; _unit removeMagazines "HandGrenade";
_unit setUnitPos "UP";


---------- Post added at 06:38 PM ---------- Previous post was at 06:36 PM ----------


Just a quick issue, a lot of the time when units are placed they are spawned slightly too high or low in the building and die after around 15-30 seconds, leaving corpses. Is this a bug with the script or am I missing something?

According to the script code it is problem of the building LOD, not the script itself. Script just gets one of the available positions predefined by LOD and places soldier there. Nothing less, nothing more.

Fcn
Jun 21 2009, 18:52
So is there anything that can be done to remedy it?

DiRaven
Jun 21 2009, 19:30
You can search for buggy houses/positions and restrict them in the script. But it is a lot of work. Mostly needless. In future versions this issues might be fixed by the developers.

For now with my current level of knowladge i do not have any idea to solve the problem.

---------- Post added at 07:20 PM ---------- Previous post was at 07:02 PM ----------

BTW u can remove dead units by the script to make feeling that nothing happened. =))

---------- Post added at 07:30 PM ---------- Previous post was at 07:20 PM ----------

Improved variant of the script to place infantry groups into the buildings:



/*
==========================================================================
Place infantry groups in buildings script
==========================================================================
Credits:
Original idea is by DaveP.
Improved, reworked into SQF and changed to group positioning by [MB] DiRaven
You can use, rework, change and enjoy this script anyhow you want.
Still credit is appreciated.
==========================================================================
Description:
This script places desired group of infantry units into the nearest available buildings.
==========================================================================
HowTo:

Place group leader near building of choice, then:
syntax for scripts:
group execVM "PlaceInBuilding.sqf"

syntax for init field for the leader of the desired group:
_script = group this execVM "PlaceInBuilding.sqf"

Extra info:
- Removes hand grenades, otherwise dumb infantry try and throw a grenade from inside a building and frag themselves
- Will delete group if no building position is found
- Buildings id being searched near group leader's position
- All members of the group are each joined into another newly created groups to prevent them from getting back into formation
- You can change _check_distance variable to change search distance for entrable buildings
==========================================================================
History:
v0.1 - First version of the script.
==========================================================================
*/
_group = _this;

_leader = leader _group;

_check_distance = 50; // Change this to tweak building searching distance

_arr_buildings = nearestObjects [_leader, ["HOUSE"], _check_distance];
_buildingcount = count _buildings;

_arr_positions = [];
{
_i = 0;
_positions_checked = FALSE;
while {not _positions_checked} do {
_position = _x buildingPos _i;
_coord_x = _position select 0;
_coord_y = _position select 1;
_coord_z = _position select 2;
_coord_sum = _coord_x + _coord_y + _coord_z;
if (_coord_sum == 0) then {
_positions_checked = TRUE;
} else {
_arr_positions = _arr_positions + [_position];
_i = _i + 1;
};
};
} foreach _arr_buildings;

{
_newgroup = createGroup side _leader;

[_x] join _newgroup;

if (count _arr_positions == 0) then {
deleteVehicle _x;
};

_position = _arr_positions select random count _arr_positions;

_x setPos _position;
_x setDir random 360;

_x removeWeapon "HandGrenade_East"; _x removeMagazines "HandGrenade_East";
_x removeWeapon "HandGrenade_West"; _x removeMagazines "HandGrenade_West";
_x removeWeapon "HandGrenade"; _x removeMagazines "HandGrenade";
_x setUnitPos "UP";
} foreach units _group;


Version listed above is not the last one, last one available here (http://diraven.web44.net/files/arma/scripts/place_group_in_building.sqf).

nikita320106
Jun 22 2009, 06:35
great) huge thanx)

Tophe
Jun 27 2009, 05:16
hi
i stumbled over this thread and i thought u might find this script interesting too (if u dont know it already):
Random House Patrol Script by Tophe
http://www.armaholic.com/page.php?id=936

That script is now updated for Arma 2.
http://www.armaholic.com/page.php?id=6078

I think the updated version works for Arma1 as well...

zwobot
Jan 2 2011, 10:17
Thread resurrection! :)

Is there a way to check if a building position is already occupied by another unit (not placed into the position by the script)?
I want to move a group of infantry into editor placed trenches and bunkers with the script. However some of the positions are already occupied by friendly units and I only want to move the new units into empty positions of course...

galzohar
Jan 2 2011, 14:35
Assuming that you don't want to edit the other script to be compatible, the only way I cant think of is checking if there is a unit within 1 meter of the position using nearObjects (http://community.bistudio.com/wiki/nearObjects) with "man". And even that would not be reliable because if another AI is moving towards that position but isn't there yet it still won't work.

The only reliable way to make AI work together is to make their scripts work together as well.

HateDread
Jan 3 2011, 01:03
Thank you for digging this up! Looks nice :)

So, does this script work in OA? I.e. it doesn't screw up with the changed buildings?

(Same question for Tophe's House Patrol - http://www.armaholic.com/page.php?id=6078 - does it work in OA, too?)

Cheers.

Edit: From Tophe's Script's Armaholic page;


Will you be porting this script over to arrowhead? as alls i get is the guard cannot patrol that building due to game bug, choose another building, which i do and it comes up again....

Guess it doesn't :(