#include "..\script_component.hpp" /* * Author: IDSolutions * Initializes the bank class. * * Arguments: * None * * Return Value: * None * * Examples: * [] call forge_client_bank_fnc_initBankClass * * Public: Yes */ #pragma hemtt ignore_variables ["_self"] GVAR(BankClass) = createHashMapObject [[ ["#type", "IBankClass"], ["#create", { _self set ["uid", getPlayerUID player]; _self set ["account", createHashMap]; _self set ["isLoaded", false]; _self set ["lastSave", time]; private _account = createHashMap; _account set ["uid", (getPlayerUID player)]; _account set ["name", (name player)]; _account set ["bank", 0]; _account set ["cash", 0]; _account set ["earnings", 0]; _account set ["pin", 1234]; _account set ["transactions", []]; _self set ["account", _account]; }], ["init", { private _uid = _self get "uid"; private _account = _self get "account"; [SRPC(bank,requestInitBank), [_uid, _account]] call CFUNC(serverEvent); systemChat format ["Bank loaded for %1", (name player)]; diag_log "[FORGE:Client:Bank] Bank Class Initialized!"; }], ["save", { params [["_sync", false, [false]]]; private _uid = _self get "uid"; [SRPC(bank,requestSaveBank), [_uid, _sync]] call CFUNC(serverEvent); _self set ["lastSave", time]; }], ["sync", { params [["_data", createHashMap, [createHashMap]], ["_jip", false, [false]]]; private _account = _self get "account"; private _isLoaded = _self get "isLoaded"; if (_data isEqualTo createHashMap) exitWith { diag_log "[FORGE:Client:Bank] Empty data received for sync, skipping."; }; { _account set [_x, _y]; } forEach _data; _self set ["account", _account]; if !(_isLoaded) then { _self set ["isLoaded", true]; }; diag_log "[FORGE:Client:Bank] Sync completed"; }], ["get", { params [["_key", "", [""]], ["_default", nil, [[], "", 0, false, createHashMap]]]; private _account = _self get "account"; _account getOrDefault [_key, _default]; }] ]]; SETVAR(player,FORGE_BankClass,GVAR(BankClass)); GVAR(BankClass)