123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- #include "function_macros.hpp"
- params ["_args", "_handle"];
- _args params ["_target"];
- LOGF_1("Evaluating PFH %1",_handle);
- if(isNil "_target") exitWith {
- LOGF_1("Removing PFH %1, Reason: Null Target",_handle);
- [_handle] call CBA_fnc_removePerFrameHandler;
- };
- if(!isServer) exitWith {
- LOGF_1("Removing PFH %1, Reason: Not Server",_handle);
- [_handle] call CBA_fnc_removePerFrameHandler;
- };
- if(!alive _target) exitWith {
- LOGF_1("Removing PFH %1, Reason: Droid Dispenser Dead",_handle);
- [_handle] call CBA_fnc_removePerFrameHandler;
- };
- _group = _target getVariable QGVAR(group);
- if(isNil "_group") then
- {
- LOGF_1("PFH %1 Group empty, creating new",_handle);
- _target setVariable [QGVAR(group), createGroup [opfor, true]];
- _group = _target getVariable QGVAR(group);
- };
- _aliveUnits = ({alive _x} count (units _group));
- LOGF_2("Alive units for Droid Dispenser %1 :: %2",_target,_aliveUnits);
- if(_aliveUnits < _target getVariable QGVAR(maxUnits)) exitWith
- {
- _possibleUnits = _target getVariable QGVAR(possibleUnits);
- _selectedUnit = selectRandom _possibleUnits;
- if(_selectedUnit == _possibleUnits select 0) then {
- _selectedUnit = selectRandom _possibleUnits; // if its a b2, (first be default atm) random again (requires 2 rolls on b2 to spawn one)
- };
- LOGF_2("%1 spawning in %2",_target,_selectedUnit);
- _unit = _group createUnit [_selectedUnit, position _target, [], 0, "NONE"];
- [{
- params["_unit"];
- _unit call ace_common_fnc_fixPosition;
- _group = group _unit;
- _group setBehaviour "SAFE";
- _group1 setCombatMode "RED";
- _unit commandMove (_unit getPos [5, 0]);
- {
- _x addCuratorEditableObjects [[_unit], true];
- } forEach allCurators;
- }, _unit] call CBA_fnc_execNextFrame;
- };
- LOGF_1("%1 not spawning anything",_target);
|