client/addons/db/functions/fnc_saveToMission.sqf
2025-01-04 19:26:35 -06:00

111 lines
3.9 KiB
Plaintext

#include "..\script_component.hpp"
/*
* Function: forge_client_db_fnc_saveToMission
* Author: J.Schmidt
* Edit: 07.23.2024
* Copyright © 2024 J.Schmidt, All rights reserved
*
* Do not edit without permission!
*
* This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivative 4.0 International License.
* To view a copy of this license, vist https://creativecommons.org/licenses/by-nc-nd/4.0/ or send a letter to Creative Commons,
* PO Box 1866, Mountain View, CA 94042
*
* [Description]
* Store mission and player data in Mission Namespace.
*
* Arguments:
* N/A
*
* Return Value:
* N/A
*
* Examples:
* [] call forge_client_db_fnc_saveToMission;
*
* Public: Yes
*/
if (isNil "companyFunds") then { companyFunds = 0 };
if (isNil "companyRating") then { companyRating = 0 };
if (isNil "companyGenerals") then { companyGenerals = [] };
if (isNil "companyGarageUnlocks") then { companyGarageUnlocks = [] };
if (isNil EGVAR(arsenal,armory_unlocks)) then { EGVAR(arsenal,armory_unlocks) = [[],[],[],[]] };
if (isNil EGVAR(arsenal,garage_unlocks)) then { EGVAR(arsenal,garage_unlocks) = [[],[],[],[],[],[]] };
private _vdata = [];
private _pdata = [];
private _cdata = [
["key", "CompanyState"],
["funds", [companyFunds]],
["rating", [companyRating]],
["operations", [companyGenerals]],
["garage_unlocks", [companyGarageUnlocks]]
];
private _vehicles = nearestObjects [player, ["LandVehicle"], 50] apply {
createHashMapFromArray [
["vehicle", _x],
["class", [typeOf _x]],
["position", [getPosATL _x]],
["direction", [getDir _x]],
["health", [damage _x]]
];
};
{
if (alive _x) then {
_vdata pushBackUnique _x;
};
} forEach _vehicles;
{
private _data = [
["key", getPlayerUID player],
// ["armory_unlocks", [forge_client_armory_arsenalUnlocks]],
// ["garage_unlocks", [forge_client_armory_garageUnlocks]],
["armory_unlocks", [EGVAR(arsenal,armory_unlocks)]],
["garage_unlocks", [EGVAR(arsenal,garage_unlocks)]],
// ["locker", [player getVariable ["Locker", []]]],
// ["garage", [player getVariable ["Garage", []]]],
["locker", [GETVAR(player,FORGE_Locker,[])]],
["garage", [GETVAR(player,FORGE_Garage,[])]],
// ["cash", [player getVariable ["FORGE_Cash", 0]]],
// ["bank", [player getVariable ["FORGE_Bank", 0]]],
["cash", [GETVAR(player,FORGE_Cash,0)]],
["bank", [GETVAR(player,FORGE_Bank,0)]],
// ["number", [player getVariable ["FORGE_Phone_Number", "unknown"]]],
// ["email", [player getVariable ["FORGE_Email", "unknown@spearnet.mil"]]],
["number", [GETVAR(player,FORGE_Phone_Number,"unknown")]],
["email", [GETVAR(player,FORGE_Email,"unknown@spearnet.mil")]],
// ["paygrade", [player getVariable ["Paygrade", "E1"]]],
["paygrade", [GETVAR(player,FORGE_Paygrade,"E1")]],
["reputation", [rating player]],
["loadout", [getUnitLoadout player]],
// ["holster", [player getVariable ["FORGE_Holster_Weapon", true]]],
["holster", [GETVAR(player,FORGE_Holster_Weapon,true)]],
["position", [getPosASLVisual player]],
["direction", [getDirVisual player]]
];
if (isNull objectParent player) then {
_data pushBack "currentWeapon";
_data pushBack [currentMuzzle player];
_data pushBack "stance";
_data pushBack [stance player];
};
_pdata pushBackUnique _data;
} forEach playableUnits;
private _cHashMap = createHashMapFromArray _cdata;
private _pHashMap = createHashMapFromArray _pdata;
private _vHashMap = createHashMapFromArray _vdata;
// missionProfileNamespace setVariable ["FORGE_MissionData", _cHashMap];
// missionProfileNamespace setVariable ["FORGE_PlayerData", _pHashMap];
// missionProfileNamespace setVariable ["FORGE_VehicleData", _vHashMap];
SETPVAR(missionNamespace,FORGE_MissionData,_cHashMap);
SETPVAR(missionNamespace,FORGE_PlayerData,_pHashMap);
SETPVAR(missionNamespace,FORGE_VehicleData,_vHashMap);