Files
DayZ-Epoch/SQF/dayz_code/compile/epoch_tempKeys.sqf
oiad a68e4b273b fix epoch_tempKeys.sqf making massive arrays. (#1884)
* fix epoch_tempKeys.sqf making massive arrays.

epoch_tempKeys was making a massive array every time it was called due
to them setting the array size to the _ownerKeyId instead of count
_temp_keys_names.

For example: Call this function 10k times in testkit and see it lag the
client due to making a massive array over and over again.

```"[[["9379"],[<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<n
"Test script finished. Code took 0.440002 seconds to run"
```

With fixed code:
```"[[["9379"],["Yellow Key (65d0)"]],false]"
"Test script finished. Code took 0.000991821 seconds to run"
```

* Update fn_selfActions to support fixed epoch_tempKeys fix.

Forgot this from my previous commit, this will select the right key now
for displaying in the unlock_veh.sqf (I broke this with my previous
commit)

* Rework
2017-01-21 17:01:42 -05:00

16 lines
633 B
Plaintext

private ["_temp_keys","_temp_keys_names","_key_colors","_ownerKeyId","_ownerKeyName"];
_temp_keys = [];
_temp_keys_names = [];
_key_colors = ["ItemKeyYellow","ItemKeyBlue","ItemKeyRed","ItemKeyGreen","ItemKeyBlack"];
{
if (configName(inheritsFrom(configFile >> "CfgWeapons" >> _x)) in _key_colors) then {
_ownerKeyId = getNumber(configFile >> "CfgWeapons" >> _x >> "keyid");
_ownerKeyName = getText(configFile >> "CfgWeapons" >> _x >> "displayName");
_temp_keys_names set [count _temp_keys_names,_ownerKeyName];
_temp_keys set [count _temp_keys,str(_ownerKeyId)];
};
} count (items player);
[_temp_keys,_temp_keys_names]