diff --git a/addons/main/functions/api/fn_send_drone_cot.sqf b/addons/main/functions/api/fn_send_drone_cot.sqf index 3dcac38..e8c09a5 100644 --- a/addons/main/functions/api/fn_send_drone_cot.sqf +++ b/addons/main/functions/api/fn_send_drone_cot.sqf @@ -5,7 +5,7 @@ params["_drone"]; private _atak_role = "a-f-A"; -private _atak_callsign = [_drone] call armatak_fnc_extract_unit_callsign; +private _atak_callsign = [_drone] call armatak_fnc_extract_marker_callsign; switch (side _drone) do { case "WEST": { @@ -25,4 +25,10 @@ switch (side _drone) do { }; }; +_pre_defined_role = _drone getVariable "_atak_group_role"; + +if (!isNil "_pre_defined_role") then { + _callsign = _pre_defined_role; +}; + _cot = [_drone, _atak_role, _atak_callsign] call armatak_fnc_send_marker_cot; diff --git a/addons/server/functions/fnc_3denCoreModuleConfig.sqf b/addons/server/functions/fnc_3denCoreModuleConfig.sqf index d010e9f..7f90958 100644 --- a/addons/server/functions/fnc_3denCoreModuleConfig.sqf +++ b/addons/server/functions/fnc_3denCoreModuleConfig.sqf @@ -49,15 +49,12 @@ if (isServer) exitWith { _atak_type = [_x] call armatak_fnc_extract_role; _callsign = [_x] call armatak_fnc_extract_marker_callsign; - [_x, _atak_type, _callsign] call armatak_fnc_send_marker_cot; - }; - }; - if (unitIsUAV _x) then { - [_x] call armatak_fnc_send_drone_cot; - [_x] call armatak_fnc_send_digital_pointer_cot; + [_x, _atak_type, _callsign] call armatak_fnc_send_drone_cot; + [_x] call armatak_fnc_send_digital_pointer_cot; + }; }; } forEach GVAR(syncedUnits); - }, 2, []] call CBA_fnc_addPerFrameHandler; + }, 0.5, []] call CBA_fnc_addPerFrameHandler; }; true; diff --git a/addons/server/functions/fnc_ZeusCoreModuleConfig.sqf b/addons/server/functions/fnc_ZeusCoreModuleConfig.sqf index d2fe49d..da8dcf4 100644 --- a/addons/server/functions/fnc_ZeusCoreModuleConfig.sqf +++ b/addons/server/functions/fnc_ZeusCoreModuleConfig.sqf @@ -27,34 +27,37 @@ _syncUnits = []; missionNamespace setVariable ["armatak_server_syncedUnits", _syncUnits]; -GVAR(syncedUnits) = missionNamespace getVariable "armatak_server_syncedUnits"; - -[{ GVAR(syncedUnits) = missionNamespace getVariable "armatak_server_syncedUnits"; - { - _objectType = _x call BIS_fnc_objectType; - switch (true) do { - case ((_objectType select 0) == "Soldier"): { - _callsign = [_x] call armatak_fnc_extract_unit_callsign; - _group_name = [group _x] call armatak_fnc_extract_group_color; - _group_role = [_x] call armatak_fnc_extract_group_role; + [{ + GVAR(syncedUnits) = missionNamespace getVariable "armatak_server_syncedUnits"; - [_x, _callsign, _group_name, _group_role] call armatak_fnc_send_eud_cot; - [_x] call armatak_fnc_send_digital_pointer_cot; - }; - case ((_objectType select 0) == "Vehicle"): { - _atak_type = [_x] call armatak_fnc_extract_role; - _callsign = [_x] call armatak_fnc_extract_marker_callsign; + { + _objectType = _x call BIS_fnc_objectType; + switch (true) do { + case ((_objectType select 0) == "Soldier"): { + _callsign = [_x] call armatak_fnc_extract_unit_callsign; + _group_name = [group _x] call armatak_fnc_extract_group_color; + _group_role = [_x] call armatak_fnc_extract_group_role; - [_x, _atak_type, _callsign] call armatak_fnc_send_marker_cot; + [_x, _callsign, _group_name, _group_role] call armatak_fnc_send_eud_cot; + [_x] call armatak_fnc_send_digital_pointer_cot; + }; + case ((_objectType select 0) == "Vehicle"): { + _atak_type = [_x] call armatak_fnc_extract_role; + _callsign = [_x] call armatak_fnc_extract_marker_callsign; + + [_x, _atak_type, _callsign] call armatak_fnc_send_marker_cot; + }; + case ((_objectType select 0) == "VehicleAutonomous"): { + _atak_type = [_x] call armatak_fnc_extract_role; + _callsign = [_x] call armatak_fnc_extract_marker_callsign; + + [_x, _atak_type, _callsign] call armatak_fnc_send_drone_cot; + [_x] call armatak_fnc_send_digital_pointer_cot; + }; }; - }; - if (unitIsUAV _x) then { - [_x] call armatak_fnc_send_drone_cot; - [_x] call armatak_fnc_send_digital_pointer_cot; - }; - } forEach GVAR(syncedUnits); -}, 2, []] call CBA_fnc_addPerFrameHandler; + } forEach GVAR(syncedUnits); + }, 2, []] call CBA_fnc_addPerFrameHandler; deleteVehicle _logic; closeDialog 1;