From 7fa4a7c4114d5a90d1ef3ff66c13f807e7ed54f3 Mon Sep 17 00:00:00 2001 From: Valmo Trindade Date: Thu, 14 May 2026 19:05:58 -0300 Subject: [PATCH] Readded serverside digital pointer with a handler to avoid duplicated SPI when a entity is being controlled clientside --- addons/main/functions/api/fn_send_digital_pointer_cot.sqf | 8 +++++++- addons/server/functions/fnc_startCotRouter.sqf | 4 ++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/addons/main/functions/api/fn_send_digital_pointer_cot.sqf b/addons/main/functions/api/fn_send_digital_pointer_cot.sqf index f1ab107..4668402 100644 --- a/addons/main/functions/api/fn_send_digital_pointer_cot.sqf +++ b/addons/main/functions/api/fn_send_digital_pointer_cot.sqf @@ -6,7 +6,13 @@ if (!isNull _digitalPointer) then { _digitalPointerPosition = _digitalPointer call armatak_client_fnc_extractClientPosition; _link_uid = [_unit] call armatak_fnc_extract_uuid; - _contact_callsign = ([player] call armatak_fnc_extract_unit_callsign) + ".DP1"; + _objectType = [_unit] call BIS_fnc_objectType; + _ownerCallsign = if ((_objectType select 0) == "Soldier") then { + [_unit] call armatak_fnc_extract_unit_callsign + } else { + [_unit] call armatak_fnc_extract_marker_callsign + }; + _contact_callsign = _ownerCallsign + ".DP1"; _dpCot = [_link_uid, _contact_callsign, _digitalPointerPosition select 1, _digitalPointerPosition select 2, _digitalPointerPosition select 3]; diff --git a/addons/server/functions/fnc_startCotRouter.sqf b/addons/server/functions/fnc_startCotRouter.sqf index 690b199..0fa904d 100644 --- a/addons/server/functions/fnc_startCotRouter.sqf +++ b/addons/server/functions/fnc_startCotRouter.sqf @@ -41,6 +41,7 @@ GVAR(syncedUnits) = missionNamespace getVariable "armatak_server_syncedUnits"; _group_role = [_x] call armatak_fnc_extract_group_role; [_x, _callsign, _group_name, _group_role] call armatak_fnc_send_eud_cot; + [_x] call armatak_fnc_send_digital_pointer_cot; }; case (unitIsUAV _x): { if !(_x getVariable ["armatak_uav_mavlink_broadcasting", false]) then { @@ -49,6 +50,7 @@ GVAR(syncedUnits) = missionNamespace getVariable "armatak_server_syncedUnits"; [_x, _atak_type, _callsign] call armatak_fnc_send_drone_cot; _x call armatak_fnc_extract_sensor_data; + [_x] call armatak_fnc_send_digital_pointer_cot; }; }; case ((_objectType select 0) == "Vehicle"): { @@ -57,6 +59,7 @@ GVAR(syncedUnits) = missionNamespace getVariable "armatak_server_syncedUnits"; [_x, _atak_type, _callsign] call armatak_fnc_send_marker_cot; _x call armatak_fnc_extract_sensor_data; + [_x] call armatak_fnc_send_digital_pointer_cot; }; case ((_objectType select 0) == "VehicleAutonomous"): { if !(_x getVariable ["armatak_uav_mavlink_broadcasting", false]) then { @@ -65,6 +68,7 @@ GVAR(syncedUnits) = missionNamespace getVariable "armatak_server_syncedUnits"; [_x, _atak_type, _callsign] call armatak_fnc_send_drone_cot; _x call armatak_fnc_extract_sensor_data; + [_x] call armatak_fnc_send_digital_pointer_cot; }; }; };