mirror of
https://github.com/valmojr/armatak.git
synced 2026-06-13 14:13:29 +00:00
Added Delete CoT handler for removing serverside CoT when a player invokes the clientside connection
This commit is contained in:
@@ -9,21 +9,38 @@ if (isNil { missionNamespace getVariable "armatak_server_syncedUnits" }) then {
|
||||
missionNamespace setVariable ["armatak_server_syncedUnits", []];
|
||||
};
|
||||
|
||||
if (isNil { missionNamespace getVariable "armatak_server_clientClaimedEuds" }) then {
|
||||
missionNamespace setVariable ["armatak_server_clientClaimedEuds", []];
|
||||
};
|
||||
|
||||
GVAR(syncedUnits) = missionNamespace getVariable "armatak_server_syncedUnits";
|
||||
|
||||
[{
|
||||
GVAR(syncedUnits) = missionNamespace getVariable "armatak_server_syncedUnits";
|
||||
private _clientClaimedEuds = missionNamespace getVariable ["armatak_server_clientClaimedEuds", []];
|
||||
|
||||
{
|
||||
_objectType = _x call BIS_fnc_objectType;
|
||||
switch (true) do {
|
||||
case ((_objectType select 0) == "Soldier"): {
|
||||
private _uuid = _x call armatak_fnc_extract_uuid;
|
||||
private _isClientEud = _x getVariable [QEGVAR(client,eudConnected), false];
|
||||
if (_isClientEud) exitWith {
|
||||
if !(_uuid in _clientClaimedEuds) then {
|
||||
private _position = _x call armatak_client_fnc_extractClientPosition;
|
||||
private _deleteCot = [_uuid, "a-f-G-U-C-I", _position select 1, _position select 2, _position select 3];
|
||||
"armatak" callExtension ["tcp_socket:cot:delete", [_deleteCot]];
|
||||
_clientClaimedEuds pushBack _uuid;
|
||||
};
|
||||
};
|
||||
|
||||
_clientClaimedEuds = _clientClaimedEuds - [_uuid];
|
||||
|
||||
_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, _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 {
|
||||
@@ -31,7 +48,6 @@ GVAR(syncedUnits) = missionNamespace getVariable "armatak_server_syncedUnits";
|
||||
_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;
|
||||
_x call armatak_fnc_extract_sensor_data;
|
||||
};
|
||||
};
|
||||
@@ -48,12 +64,13 @@ GVAR(syncedUnits) = missionNamespace getVariable "armatak_server_syncedUnits";
|
||||
_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;
|
||||
_x call armatak_fnc_extract_sensor_data;
|
||||
};
|
||||
};
|
||||
};
|
||||
} forEach GVAR(syncedUnits);
|
||||
|
||||
missionNamespace setVariable ["armatak_server_clientClaimedEuds", _clientClaimedEuds];
|
||||
}, 1, []] call CBA_fnc_addPerFrameHandler;
|
||||
|
||||
true
|
||||
|
||||
Reference in New Issue
Block a user