added functions to handle TCP payloads

This commit is contained in:
Valmo Trindade
2025-01-30 01:41:58 -03:00
parent 79bdb3a3fc
commit 70d73ee804
5 changed files with 125 additions and 1 deletions

View File

@@ -0,0 +1,30 @@
// function name: armatak_fnc_extract_drone
// function author: Valmo
// function description: Gets the drone information for the CoT Router
params["_drone"];
private _atak_role = "a-f-A";
private _atak_callsign = getText(configFile >> "CfgVehicles" >> typeOf _drone >> "displayName");
switch (side _drone) do {
case "WEST": {
_atak_role = "a-f-A-M-F-Q"
};
case "EAST": {
_atak_role = "a-h-A-M-F-Q"
};
case "INDEPENDENT": {
_atak_role = "a-n-A-M-F-Q"
};
case "CIVILIAN": {
_atak_role = "a-f-A-C"
};
default {
_atak_role = "a-f-A-M-F-Q"
};
};
_cot = [_drone, _atak_role, _atak_callsign] call armatak_fnc_extract_marker_cot_info;
"armatak" callExtension ["cot_router:send_marker_cot", [_cot]];

View File

@@ -0,0 +1,67 @@
// function name: armatak_fnc_send_group_cots
// function author: Valmo
// function description: handle the cot routing for drones
params["_group"];
{
_group_colors = missionNamespace getVariable "_group_colors";
_group_roles = ["Team Member", "Team Lead", "HQ", "Sniper", "Medic", "Forward Observer", "RTO", "K9"];
_group_role = "Team Member";
_group_name = "";
_group_name = _group getVariable "_atak_group_name";
if (isNil "_group_name") then {
_group_colors = missionNamespace getVariable "_group_colors";
_group_name = selectRandom _group_colors;
if (count _group_colors > 0) then {
_randomIndex = floor (random (count _group_colors));
_selectedColor = _group_colors select _randomIndex;
_group_colors deleteAt _randomIndex;
_group_name = _selectedColor;
_group setVariable ["_atak_group_name", _group_name];
missionNamespace setVariable ["_group_colors", _group_colors]
} else {
_group_name = "Red";
_group setVariable ["_atak_group_name", _group_name];
};
};
if (["SpecialOperative", (configFile >> "CfgVehicles" >> typeOf _x >> "role") call BIS_fnc_getCfgData, false] call BIS_fnc_inString) then {
_group_role = _group_roles select 5;
};
if (_x getUnitTrait "medic") then {
_group_role = _group_roles select 4;
};
if ((["jtac", typeOf _x, false] call BIS_fnc_inString)) then {
_group_role = _group_roles select 5;
};
if (((backpack _x) isKindOf "TFAR_Bag_Base") or (["radio", typeOf _x, false] call BIS_fnc_inString)) then {
_group_role = _group_roles select 6;
};
if ((["sniper", typeOf _x, false] call BIS_fnc_inString) or (["marksman", (configFile >> "CfgVehicles" >> typeOf _x >> "role") call BIS_fnc_getCfgData, false] call BIS_fnc_inString) or (["sharpshooter", typeOf _x, false] call BIS_fnc_inString)) then {
_group_role = _group_roles select 3;
};
if (leader _group == _x) then {
_group_role = _group_roles select 1;
};
if (["officer", typeOf _x, false] call BIS_fnc_inString) then {
_group_role = _group_roles select 2;
};
[_x, name _x, _group_name, _group_role] call armatak_fnc_send_human_cot;
} forEach (units _group);

View File

@@ -0,0 +1,12 @@
// function name: armatak_fnc_extract_human_cot_info
// function author: Valmo
// function description: Gets the information necessary for generating the Human Cursor Over Time
params ["_unit", "_callsign", "_group_name", "_group_role"];
_unit_position = _unit call armatak_fnc_extract_position;
_uuid = _unit call armatak_fnc_extract_uuid;
_human_cot = [_uuid, _unit_position select 0, _unit_position select 1, _unit_position select 2, _callsign, _group_name, _group_role, _unit_position select 3, speed player / 3.6];
"armatak" callExtension ["cot_router:send_human_cot", [_human_cot]];

View File

@@ -0,0 +1,12 @@
// function name: armatak_fnc_send_marker_cot
// function author: Valmo
// function description: Gets the information necessary for generating the Marker Cursor Over Time
params ["_unit", "_type", "_callsign"];
_unit_position = _unit call armatak_fnc_extract_position;
_uuid = _unit call armatak_fnc_extract_uuid;
_marker_cot = [_uuid, _type, _unit_position select 0, _unit_position select 1, _unit_position select 2, _callsign, _unit_position select 3, speed _unit / 3.6];
"armatak" callExtension ["cot_router:send_marker_cot", [_marker_cot]];

View File

@@ -24,7 +24,9 @@ switch (side _unit) do {
_affiliation = "f";
};
};
_unit_type = _unit call BIS_fnc_objectType select 1;
switch (_unit_type) do {
case "AT": {
_type = "G-U-C-F-R";
@@ -63,7 +65,8 @@ switch (_unit_type) do {
_type = "G-U-C-I";
};
};
if (!isNull vehicle _unit) then {
if (typeOf (vehicle _unit) != typeOf _unit) then {
_vehicle_type = (vehicle _unit) call BIS_fnc_objectType select 1;
switch (_vehicle_type) do {
case "Car": {