By Phronk
DESCRIPTION:
Adds a "firedNear" eventHandler to all civilians in mission to flee into a random nearby house and also play a random frightened animation. (Check example on how to make it work for spawned civilians)
VIDEO:
FEATURES:
Supports a few maps by default:
-Stratis
-Altis
-Tanoa
-Chernarus
-Takistan
-Zargabad
Adding support for other maps is easy
Civilians will flee into a random nearby house when they hear a gunshot
Upon hearing the gunshot, civilians will play random frightened animation
TO DO LIST:
Improve efficiency
Add ArmA 1 maps from CUP:Terrains
Delete civilian's waypoints before ordering them to move
Possibly replace doMove with addWaypoint command
KNOWN BUGS:
Sometimes the civilian can't get into the house
Sometimes the civilian can walk through objects/structures
Civilian may continue to next waypoint if he already has one, after running to a nearby house
INSTALLATION:
NOTE: Demo mission requires CUP:Terrains & TalibanFighters, the script is standalone and does not require any scripts to use
Copy & Paste "init.sqf" from demo mission to your mission, if you only want the civilians already placed in the mission to be effected
Done!
(OPTIONAL) If you want spawned civilians to be effected, do the following:
1-1. Also copy & paste this code into your "init.sqf", in addition to the rest of the above example:
civFlee={_this select 0 addEventHandler["FiredNear",{
_civ=_this select 0;
switch(round(random 2))do{
case 0:{_civ switchMove "ApanPercMstpSnonWnonDnon_G01";_civ setSpeedMode "FULL";};
case 1:{_civ playMoveNow "ApanPknlMstpSnonWnonDnon_G01";_civ setSpeedMode "FULL";};
case 2:{_civ playMoveNow "ApanPpneMstpSnonWnonDnon_G01";_civ setSpeedMode "FULL";};
default{_civ playMoveNow "ApanPknlMstpSnonWnonDnon_G01";_civ setSpeedMode "FULL";};};
//nearestObjects[ PositionOrTarget, ["List","Of","Classnames","To","Look","For"], MaxDistanceToSearchAroundTarget ];
_nH=nearestObjects[_civ,nH_List,100];
_H=selectRandom _nH;//Pick an object found in the above nearestObjects array
_HP=_H buildingPos -1;//Finds list of all available building positions in the selected building
_HP=selectRandom _HP;//Picks a building position from the list of building positions
_civ doMove _HP;//Orders the civilian to move to the building position
//Remove the eventHandler to prevent spamming
_civ removeAllEventHandlers "FiredNear";}];};
1-2. In your civ spawning script, right after the civ is created (Example: _unit=createVehicle["C_Man_01",_pos,[],0,""];) paste this after:
[_unit]call civFlee;
1-3. Done!
v0.1 (Jan 1, 2017)
DOWNLOAD LINK - (Google Drive)
DOWNLOAD LINK - (Armaholic)
Change-Log:
(2017.1.1)
Initial Release