Skip to content
This repository has been archived by the owner on May 24, 2022. It is now read-only.

Headless - Add naked unit bug workaround #163

Merged
merged 2 commits into from
Feb 24, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions addons/headless/XEH_postInit.sqf
Original file line number Diff line number Diff line change
Expand Up @@ -14,5 +14,23 @@
// Register HC (this part happens on HC only)
[QGVAR(headlessClientJoined), [player]] call CBA_fnc_globalEvent; // Global event for API purposes
};

// Transfer loadouts (naked unit work-around)
if (GVAR(transferLoadut) > 0) then {
["CAManBase", "Local", {
params ["_unit", "_local"];

// Check if naked unit bug happened
if (_local && {uniform _unit == ""}) then {
if (GVAR(transferLoadout) == 1) then {
// Transferred loadout, if unavailable reset to config default (still better than naked)
_unit setUnitLoadout (_unit getVariable [QGVAR(loadout), typeOf _unit]);
} else {
// Config default loadout
_unit setUnitLoadout (typeOf _unit);
};
};
}] call CBA_fnc_addClassEventHandler;
};
};
}] call CBA_fnc_addEventHandler;
2 changes: 2 additions & 0 deletions addons/headless/XEH_preInit.sqf
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ PREP_RECOMPILE_START;
#include "XEH_PREP.hpp"
PREP_RECOMPILE_END;

#include "initSettings.sqf"

if (isServer) then {
GVAR(headlessClients) = [];
GVAR(inRebalance) = false;
Expand Down
5 changes: 5 additions & 0 deletions addons/headless/functions/fnc_transferGroups.sqf
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,11 @@ private _numTransferredHC3 = 0;
if (vehicle _x != _x && {(vehicle _x) getVariable [QGVAR(blacklist), false]}) exitWith {
_transfer = false;
};

// Save gear if unit about to be transferred with current loadout (naked unit work-around)
if (GVAR(transferLoadout) == 1) {
_x setVariable [QGVAR(loadout), getUnitLoadout _x, true];
};
} forEach (units _x);
};

Expand Down
8 changes: 8 additions & 0 deletions addons/headless/initSettings.sqf
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
[
QGVAR(transferLoadout),
"LIST",
[LSTRING(TransferLoadout), LSTRING(TransferLoadoutDesc)],
format ["ACEX %1", localize LSTRING(Module)],
[[0, 1, 2], [ACELSTRING(Common,Disabled), LSTRING(TransferLoadoutCurrent), LSTRING(TransferLoadoutConfig)], 0],
true
] call CBA_settings_fnc_init;
12 changes: 12 additions & 0 deletions addons/headless/stringtable.xml
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,18 @@
<Chinese>記錄無頭客戶端間的轉換數量與連線/斷線等記錄到RPT報告檔中。(預設:關閉)</Chinese>
<Italian>Registra le statistiche del trasferimento e delle (dis)connessioni dell'Headless Clienti su RPT. (Default: No)</Italian>
</Key>
<Key ID="STR_ACEX_Headless_TransferLoadout">
<English>Transfer Loadout</English>
</Key>
<Key ID="STR_ACEX_Headless_TransferLoadoutDesc">
<English>Transfer loadout of units attempts to work around an issue where units appear naked after transferring to a Headless Client.</English>
</Key>
<Key ID="STR_ACEX_Headless_TransferLoadoutCurrent">
<English>Current Loadout</English>
</Key>
<Key ID="STR_ACEX_Headless_TransferLoadoutConfig">
<English>Config Loadout</English>
</Key>
<Key ID="STR_ACEX_Headless_BlacklistEden">
<English>Headless Blacklist</English>
<Japanese>ヘッドレス ブラックリスト</Japanese>
Expand Down