Readded serverside digital pointer with a handler to avoid duplicated SPI when a entity is being controlled clientside

This commit is contained in:
2026-05-14 19:05:58 -03:00
parent d4dfd80cdf
commit 7fa4a7c411
2 changed files with 11 additions and 1 deletions

View File

@@ -6,7 +6,13 @@ if (!isNull _digitalPointer) then {
_digitalPointerPosition = _digitalPointer call armatak_client_fnc_extractClientPosition; _digitalPointerPosition = _digitalPointer call armatak_client_fnc_extractClientPosition;
_link_uid = [_unit] call armatak_fnc_extract_uuid; _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]; _dpCot = [_link_uid, _contact_callsign, _digitalPointerPosition select 1, _digitalPointerPosition select 2, _digitalPointerPosition select 3];

View File

@@ -41,6 +41,7 @@ GVAR(syncedUnits) = missionNamespace getVariable "armatak_server_syncedUnits";
_group_role = [_x] call armatak_fnc_extract_group_role; _group_role = [_x] call armatak_fnc_extract_group_role;
[_x, _callsign, _group_name, _group_role] call armatak_fnc_send_eud_cot; [_x, _callsign, _group_name, _group_role] call armatak_fnc_send_eud_cot;
[_x] call armatak_fnc_send_digital_pointer_cot;
}; };
case (unitIsUAV _x): { case (unitIsUAV _x): {
if !(_x getVariable ["armatak_uav_mavlink_broadcasting", false]) then { 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, _atak_type, _callsign] call armatak_fnc_send_drone_cot;
_x call armatak_fnc_extract_sensor_data; _x call armatak_fnc_extract_sensor_data;
[_x] call armatak_fnc_send_digital_pointer_cot;
}; };
}; };
case ((_objectType select 0) == "Vehicle"): { 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, _atak_type, _callsign] call armatak_fnc_send_marker_cot;
_x call armatak_fnc_extract_sensor_data; _x call armatak_fnc_extract_sensor_data;
[_x] call armatak_fnc_send_digital_pointer_cot;
}; };
case ((_objectType select 0) == "VehicleAutonomous"): { case ((_objectType select 0) == "VehicleAutonomous"): {
if !(_x getVariable ["armatak_uav_mavlink_broadcasting", false]) then { 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, _atak_type, _callsign] call armatak_fnc_send_drone_cot;
_x call armatak_fnc_extract_sensor_data; _x call armatak_fnc_extract_sensor_data;
[_x] call armatak_fnc_send_digital_pointer_cot;
}; };
}; };
}; };