Minulý týden jsem shodou okolností narazil na to, že již loni byl do Arma 3 přidán nový event handler “KnowsAboutChanged“. Tak jsem našel svou x-tou verzi alarm systému, která se původně inspirovala v OFP misi “Hawk in Nets” od Silver Falcona (respektive Munch Studios) a kterou jsem později přetvořil pro Armed Assault a zkoušel i nadále udržovat v nějaké aktuální verzi i v pokračováních původního Flashpointu.

Princip byl ale stále dosti podobný a víceméně hlavně s novým event handlerem se mi více podařilo upravit systém tak, abych se již zbavil všech smyček a celý ho postavil již jen na event handlerech.
Systém navíc nově vytváří objekt logiky do kterého se nastaví všechny potřebné předané parametry vrátí ho po inicializaci s možností dodatečné rekonfigurace.
Celý zdroják první funkční testovací verze, kterou mám v plánu ještě doladit, je již dostupný na githubu.

Příklad:

celo_alarm_reaction_base3 = {
	alarm_base3 = true; 
};
celo_ai_reaction_base3 = {
	params ["_alarm_type","_guards","_caller",["_target",objNull]];

	{
		private _grp = group _x;
		for "_j" from count waypoints _grp - 1 to 0 step -1 do { deleteWaypoint [_grp, _j]; };

		private _wp = _grp addWaypoint getPos _x;
		_wp setWaypointType "GUARD";
		_wp setWaypointSpeed "FULL";
		_wp setWaypointBehaviour "COMBAT";
		_wp setWaypointCombatMode "RED";
		_wp setUnitPos "UP";

	} foreach _guards;

};
[[g_1,g_2,g_3,g_4,g_5,g_6],"base_3",celo_alarm_reaction_base3,celo_ai_reaction_base3 ] call celo_fnc_init_alarm_guard_system;

Pro prezentaci jsem vytvořil krátké video, které ukazuje, že AI zapojené do systému reaguje na tělo padlého spolubojovníka, na nedaleký výstřel či na kontakt se nepřítelem. Následně má přednastavenou reakci pro AI (zruší mu waypointy a nastaví nový k objektu poplachu), ale tu lze právě snadno upravit dle potřeb.