mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
Arsenal - Add ace_arsenal_fnc_saveLoadout
as API to save loadouts (#10151)
* Added fnc_saveLoadout * Changed to toLower for other languages * GitHub didn't like editing the file in the browser * Fix case-sensitive _loadoutIndex Co-authored-by: Grim <69561145+LinkIsGrim@users.noreply.github.com> * Unicode support Co-authored-by: Grim <69561145+LinkIsGrim@users.noreply.github.com> * setVariable in case no loadouts are saved * Fix return not happening properly * Added scripting example * Update docs/wiki/framework/arsenal-framework.md --------- Co-authored-by: Grim <69561145+LinkIsGrim@users.noreply.github.com> Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com>
This commit is contained in:
parent
346d56c659
commit
e36363e8cc
@ -78,6 +78,7 @@ PREP(removeStat);
|
|||||||
PREP(removeVirtualItems);
|
PREP(removeVirtualItems);
|
||||||
PREP(renameDefaultLoadout);
|
PREP(renameDefaultLoadout);
|
||||||
PREP(replaceUniqueItemsLoadout);
|
PREP(replaceUniqueItemsLoadout);
|
||||||
|
PREP(saveLoadout);
|
||||||
PREP(scanConfig);
|
PREP(scanConfig);
|
||||||
PREP(showItem);
|
PREP(showItem);
|
||||||
PREP(sortPanel);
|
PREP(sortPanel);
|
||||||
|
37
addons/arsenal/functions/fnc_saveLoadout.sqf
Normal file
37
addons/arsenal/functions/fnc_saveLoadout.sqf
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
#include "..\script_component.hpp"
|
||||||
|
/*
|
||||||
|
* Author: DartRuffian
|
||||||
|
* Saves a given loadout to the client's profile.
|
||||||
|
*
|
||||||
|
* Arguments:
|
||||||
|
* 0: Name of loadout <STRING>
|
||||||
|
* 1: CBA extended loadout or getUnitLoadout array <ARRAY>
|
||||||
|
* 2: Replace existing loadout <BOOL> (default: false)
|
||||||
|
*
|
||||||
|
* Return Value:
|
||||||
|
* True if loadout was saved, otherwise false <BOOL>
|
||||||
|
*
|
||||||
|
* Example:
|
||||||
|
* ["Current Loadout", getUnitLoadout ACE_player] call ace_arsenal_fnc_saveLoadout
|
||||||
|
*
|
||||||
|
* Public: Yes
|
||||||
|
*/
|
||||||
|
|
||||||
|
params [["_name", "", [""]], ["_loadout", [], [[]]], ["_replaceExisting", false, [false]]];
|
||||||
|
|
||||||
|
if (_name == "" || {_loadout isEqualTo []}) exitWith { false };
|
||||||
|
|
||||||
|
private _loadouts = profileNamespace getVariable [QGVAR(saved_loadouts), []];
|
||||||
|
private _loadoutIndex = _loadouts findIf {(_x#0) == _name};
|
||||||
|
|
||||||
|
// If a loadout with same name already exists and no overwriting enabled, quit
|
||||||
|
if (!_replaceExisting && {_loadoutIndex != -1}) exitWith { false };
|
||||||
|
|
||||||
|
if (_loadoutIndex == -1) then {
|
||||||
|
_loadouts pushBack [_name, _loadout];
|
||||||
|
} else {
|
||||||
|
_loadouts set [_loadoutIndex, [_name, _loadout]];
|
||||||
|
};
|
||||||
|
|
||||||
|
profileNamespace setVariable [QGVAR(saved_loadouts), _loadouts];
|
||||||
|
true
|
@ -588,3 +588,12 @@ TAG_my_arsenal_essentials = ["arifle_AK12_F", "LMG_03_F"];
|
|||||||
[ace_arsenal_currentBox, TAG_my_arsenal_essentials] call ace_arsenal_fnc_addVirtualItems
|
[ace_arsenal_currentBox, TAG_my_arsenal_essentials] call ace_arsenal_fnc_addVirtualItems
|
||||||
}] call CBA_fnc_addEventHandler;
|
}] call CBA_fnc_addEventHandler;
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### 10.4 Saving loadouts to profile
|
||||||
|
A loadout can be saved to the player's profile using `ace_arsenal_fnc_saveLoadout`.
|
||||||
|
|
||||||
|
```sqf
|
||||||
|
private _loadout = [ACE_player] call CBA_fnc_getLoadout; // or getUnitLoadout ACE_player
|
||||||
|
private _replaceExisting = true; // optional, default: false
|
||||||
|
["Current Loadout", _loadout, _replaceExisting] call ace_arsenal_fnc_saveLoadout;
|
||||||
|
```
|
||||||
|
Loading…
Reference in New Issue
Block a user