diff --git a/addons/admin/XEH_PREP.hpp b/addons/admin/XEH_PREP.hpp
index dcb11aa..0c8ec51 100644
--- a/addons/admin/XEH_PREP.hpp
+++ b/addons/admin/XEH_PREP.hpp
@@ -1,6 +1,5 @@
PREP(adminRefresh);
PREP(handleTransfer);
-PREP(initAdmin);
PREP(openAdmin);
PREP(sendMessage);
PREP(updatePaygrade);
\ No newline at end of file
diff --git a/addons/admin/XEH_postInit.sqf b/addons/admin/XEH_postInit.sqf
index f554e99..84f2529 100644
--- a/addons/admin/XEH_postInit.sqf
+++ b/addons/admin/XEH_postInit.sqf
@@ -1,96 +1 @@
-#include "script_component.hpp"
-
-[QGVAR(handleEvents), {
- params ["_control", "_isConfirmDialog", "_message"];
-
- diag_log format ["[FORGE: Admin] Received event: %1", _message];
-
- _message = fromJSON _message;
- private _event = _message get "event";
- private _data = _message get "data";
-
- switch (_event) do {
- case "REQUEST_PLAYER_DATA": {
- private _playerData = createHashMap;
- private _playerList = [];
-
- {
- private _player = _x;
- private _uid = getPlayerUID _player;
- private _name = name _player;
- private _paygrade = GETVAR(_player,FORGE_PayGrade,QUOTE(E1));
- private _funds = GETVAR(_player,FORGE_Bank,0);
-
- private _playerInfo = createHashMapFromArray [
- ["uid", _uid],
- ["name", _name],
- ["paygrade", _paygrade],
- ["funds", _funds],
- ["side", str (side _player)]
- ];
-
- _playerList pushBack _playerInfo;
- } forEach allPlayers;
-
- _playerData set ["players", _playerList];
- _control ctrlWebBrowserAction ["ExecJS", format ["handlePlayerDataRequest(%1)", (toJSON _playerList)]];
- };
- case "REQUEST_PAYGRADE_DATA": {
- private _payGrades = (missionConfigFile >> "CfgPaygrades" >> "payGrades") call BIS_fnc_getCfgData;
- private _paygradeData = createHashMap;
- private _paygradeList = [];
-
- {
- private _paygradeInfo = createHashMapFromArray [
- ["paygrade", _x select 0],
- ["bonus", _x select 1]
- ];
-
- _paygradeList pushBack _paygradeInfo;
- } forEach _payGrades;
-
- _paygradeData set ["paygrades", _paygradeList];
- _control ctrlWebBrowserAction ["ExecJS", format ["handlePaygradeDataRequest(%1)", (toJSON _paygradeList)]];
- };
- case "BROADCAST_MESSAGE": {
- _data params ["_uid", "_message"];
-
- if ((isNil "_message") || {_message isEqualTo ""}) exitWith { hintSilent "Message cannot be empty!"; };
-
- ["forge_server_admin_handleEvents", ["sendMessage", [_uid, _message]]] call CFUNC(serverEvent);
- };
- case "SEND_MESSAGE": {
- _data params ["_uid", "_message"];
-
- if ((isNil "_uid") || {_uid isEqualTo ""}) exitWith { hintSilent "You did not select a player!"; };
-
- ["forge_server_admin_handleEvents", ["sendMessage", [_uid, _message]]] call CFUNC(serverEvent);
- };
- case "UPDATE_PAYGRADE": {
- private _uid = _data select 0;
- private _paygrade = _data select 1;
-
- if ((isNil "_uid") || {_uid isEqualTo ""}) exitWith { hintSilent "You did not select a player!"; };
-
- ["forge_server_admin_handleEvents", ["updatePaygrade", [_uid, _paygrade]]] call CFUNC(serverEvent);
- };
- case "HANDLE_TRANSFER": {
- private _condition = _data select 0;
- private _amount = _data select 1;
- private _uid = _data select 2;
-
- ["forge_server_admin_handleEvents", ["handleTransfer", [_condition, _amount, _uid]]] call CFUNC(serverEvent);
- };
- case "ADVANCE_ALL": {
- private _amount = _data select 0;
-
- ["forge_server_admin_handleEvents", ["advanceAll", [_amount]]] call CFUNC(serverEvent);
- };
- case "HANDLE_PAYDAY": {
- ["forge_server_admin_handleEvents", ["handlePayday"]] call CFUNC(serverEvent);
- };
- default {
- diag_log format ["[FORGE: Admin] Unhandled event: %1", _event];
- };
- };
-}] call CFUNC(addEventHandler);
\ No newline at end of file
+#include "script_component.hpp"
\ No newline at end of file
diff --git a/addons/admin/XEH_postInit_client.sqf b/addons/admin/XEH_postInit_client.sqf
index 84f2529..1f04e6c 100644
--- a/addons/admin/XEH_postInit_client.sqf
+++ b/addons/admin/XEH_postInit_client.sqf
@@ -1 +1,93 @@
-#include "script_component.hpp"
\ No newline at end of file
+#include "script_component.hpp"
+
+[QGVAR(handleEvents), {
+ params ["_control", "_isConfirmDialog", "_message"];
+
+ diag_log format ["[FORGE::Client::Admin::XEH_postInit] Received event: %1", _message];
+
+ _message = fromJSON _message;
+ private _event = _message get "event";
+ private _data = _message get "data";
+
+ switch (_event) do {
+ case "REQUEST::PLAYER::DATA": {
+ private _playerData = createHashMap;
+ private _playerList = [];
+
+ {
+ private _player = _x;
+ private _uid = getPlayerUID _player;
+ private _name = name _player;
+ private _paygrade = GETVAR(_player,FORGE_PayGrade,QUOTE(E1)); //TODO: Implement paygrade from server
+ private _funds = GETVAR(_player,FORGE_Bank,0); //TODO: Implement funds from server
+
+ private _playerInfo = createHashMapFromArray [
+ ["uid", _uid],
+ ["name", _name],
+ ["paygrade", _paygrade],
+ ["funds", _funds],
+ ["side", str (side _player)]
+ ];
+
+ _playerList pushBack _playerInfo;
+ } forEach allPlayers;
+
+ _playerData set ["players", _playerList];
+ _control ctrlWebBrowserAction ["ExecJS", format ["handlePlayerDataRequest(%1)", (toJSON _playerList)]];
+ };
+ case "REQUEST::PAYGRADE::DATA": {
+ private _payGrades = (missionConfigFile >> "CfgPaygrades" >> "payGrades") call BIS_fnc_getCfgData;
+ private _paygradeData = createHashMap;
+ private _paygradeList = [];
+
+ {
+ private _paygradeInfo = createHashMapFromArray [
+ ["paygrade", _x select 0],
+ ["bonus", _x select 1]
+ ];
+
+ _paygradeList pushBack _paygradeInfo;
+ } forEach _payGrades;
+
+ _paygradeData set ["paygrades", _paygradeList];
+ _control ctrlWebBrowserAction ["ExecJS", format ["handlePaygradeDataRequest(%1)", (toJSON _paygradeList)]];
+ };
+ case "BROADCAST::MESSAGE": {
+ _data params ["_uid", "_message"];
+
+ if ((isNil "_message") || {_message isEqualTo ""}) exitWith { systemChat "Message cannot be empty!"; };
+
+ ["forge_server_admin_handleEvents", ["ADMIN::SEND::MESSAGE", [_uid, _message]]] call CFUNC(serverEvent);
+ };
+ case "SEND::MESSAGE": {
+ _data params ["_uid", "_message"];
+
+ if ((isNil "_uid") || {_uid isEqualTo ""}) exitWith { systemChat "You did not select a player!"; };
+
+ ["forge_server_admin_handleEvents", ["ADMIN::SEND::MESSAGE", [_uid, _message]]] call CFUNC(serverEvent);
+ };
+ case "UPDATE::PAYGRADE": {
+ _data params ["_uid", "_paygrade"];
+
+ if ((isNil "_uid") || {_uid isEqualTo ""}) exitWith { systemChat "You did not select a player!"; };
+
+ ["forge_server_admin_handleEvents", ["ADMIN::UPDATE::PAYGRADE", [_uid, _paygrade]]] call CFUNC(serverEvent);
+ };
+ case "HANDLE::TRANSFER": {
+ _data params ["_condition", "_amount", "_uid"];
+
+ ["forge_server_admin_handleEvents", ["ADMIN::TRANSFER", [_condition, _amount, _uid]]] call CFUNC(serverEvent);
+ };
+ case "ADVANCE::ALL": {
+ _data params ["_amount"];
+
+ ["forge_server_admin_handleEvents", ["ADMIN::ADVANCE::ALL", [_amount]]] call CFUNC(serverEvent);
+ };
+ case "HANDLE::PAYDAY": {
+ ["forge_server_admin_handleEvents", ["ADMIN::PAYDAY"]] call CFUNC(serverEvent);
+ };
+ default {
+ diag_log format ["[FORGE::Client::Admin::XEH_postInit] Unhandled event: %1", _event];
+ };
+ };
+}] call CFUNC(addEventHandler);
\ No newline at end of file
diff --git a/addons/admin/functions/fnc_handleTransfer.sqf b/addons/admin/functions/fnc_handleTransfer.sqf
index 54e786d..9657581 100644
--- a/addons/admin/functions/fnc_handleTransfer.sqf
+++ b/addons/admin/functions/fnc_handleTransfer.sqf
@@ -33,8 +33,8 @@ private _index = lbCurSel _list;
private _uid = _list lbData _index;
private _amount = round (parseNumber (ctrlText 2023005));
-if (_condition in ["advance", "deduct"] && ((isNil "_uid") || { _uid isEqualTo "" })) exitWith { hint "You did not select a player!"; };
+if ({_condition in ["advance", "deduct"]} && ((isNil "_uid") || { _uid isEqualTo "" })) exitWith { hint "You did not select a player!"; };
-["forge_server_admin_handleEvents", ["handleTransfer", [_condition, _amount, _uid]]] call CFUNC(serverEvent);
+["forge_server_admin_handleEvents", ["ADMIN::TRANSFER", [_condition, _amount, _uid]]] call CFUNC(serverEvent);
ctrlSetText [2023005, ""];
\ No newline at end of file
diff --git a/addons/admin/functions/fnc_initAdmin.sqf b/addons/admin/functions/fnc_initAdmin.sqf
deleted file mode 100644
index 6bb88dc..0000000
--- a/addons/admin/functions/fnc_initAdmin.sqf
+++ /dev/null
@@ -1,37 +0,0 @@
-#include "..\script_component.hpp"
-
-/*
- * Function: forge_client_admin_fnc_initAdmin
- * Author: IDSolutions
- *
- * [Description]
- * Initializes the admin menu.
- *
- * Arguments:
- * None
- *
- * Return Value:
- * None
- *
- * Examples:
- * None
- *
- * Public: No
- */
-
-{
- private _configName = configName(_x);
- private _className = (missionConfigFile >> "CfgCpofs" >> "cpofs" >> _configName >> "className") call BFUNC(getCfgData);
- private _pos = (missionConfigFile >> "CfgCpofs" >> "cpofs" >> _configName >> "pos") call BFUNC(getCfgData);
- private _dir = (missionConfigFile >> "CfgCpofs" >> "cpofs" >> _configName >> "dir") call BFUNC(getCfgData);
-
- private _cpof = createSimpleObject [_className, [0, 0, 0]];
-
- _cpof setPosATL _pos;
- _cpof setDir _dir;
- _cpof allowDamage false;
- _cpof setVariable ["isCPOF", true, true];
-
- diag_log text format ["[FORGE Admin] ClassName: '%1' Pos: '%2' Dir: '%3'", _className, _pos, _dir];
-
-} forEach ("true" configClasses (missionConfigFile >> "CfgCpofs" >> "cpofs"));
\ No newline at end of file
diff --git a/addons/admin/functions/fnc_openAdmin.sqf b/addons/admin/functions/fnc_openAdmin.sqf
index 4aff4df..a89cb17 100644
--- a/addons/admin/functions/fnc_openAdmin.sqf
+++ b/addons/admin/functions/fnc_openAdmin.sqf
@@ -1,11 +1,8 @@
#include "..\script_component.hpp"
/*
- * Function: forge_client_admin_fnc_openAdmin
* Author: IDSolutions
- *
- * [Description]
- * Opens the admin menu.
+ * Opens the admin dialog.
*
* Arguments:
* None
@@ -13,8 +10,8 @@
* Return Value:
* None
*
- * Examples:
- * None
+ * Example:
+ * [] call forge_client_admin_fnc_openAdmin;
*
* Public: Yes
*/
diff --git a/addons/admin/functions/fnc_sendMessage.sqf b/addons/admin/functions/fnc_sendMessage.sqf
index 8783e20..ed1ec97 100644
--- a/addons/admin/functions/fnc_sendMessage.sqf
+++ b/addons/admin/functions/fnc_sendMessage.sqf
@@ -30,8 +30,6 @@ private _message = ctrlText _control;
if ((isNil "_uid") || {_uid isEqualTo ""}) exitWith { hintSilent "You did not select a player!"; };
-["forge_server_admin_handleEvents", ["sendMessage", [_uid, _message]]] call CFUNC(serverEvent);
-
-hintSilent format ["Message sent to UID %1: %2", _uid, _message];
+["forge_server_admin_handleEvents", ["ADMIN::SEND::MESSAGE", [_uid, _message]]] call CFUNC(serverEvent);
["dummy"] call FUNC(adminRefresh);
\ No newline at end of file
diff --git a/addons/admin/functions/fnc_updatePaygrade.sqf b/addons/admin/functions/fnc_updatePaygrade.sqf
index 1c226e4..3371354 100644
--- a/addons/admin/functions/fnc_updatePaygrade.sqf
+++ b/addons/admin/functions/fnc_updatePaygrade.sqf
@@ -32,6 +32,6 @@ private _paygrade = _rankData select 0;
if ((isNil "_uid") || {_uid isEqualTo ""}) exitWith { hintSilent "You did not select a player!" };
-["forge_server_admin_handleEvents", ["updatePaygrade", [_uid, _paygrade]]] call CFUNC(serverEvent);
+["forge_server_admin_handleEvents", ["ADMIN::UPDATE::PAYGRADE", [_uid, _paygrade]]] call CFUNC(serverEvent);
["dummy"] call FUNC(adminRefresh);
\ No newline at end of file
diff --git a/addons/admin/ui/_site/script.js b/addons/admin/ui/_site/script.js
index b65f751..222f366 100644
--- a/addons/admin/ui/_site/script.js
+++ b/addons/admin/ui/_site/script.js
@@ -46,7 +46,7 @@ function initializeAdmin() {
*/
function requestPlayerData() {
const message = {
- event: "REQUEST_PLAYER_DATA",
+ event: "REQUEST::PLAYER::DATA",
data: {}
};
@@ -60,7 +60,7 @@ function requestPlayerData() {
*/
function requestPaygradeData() {
const message = {
- event: "REQUEST_PAYGRADE_DATA",
+ event: "REQUEST::PAYGRADE::DATA",
data: {}
};
@@ -286,7 +286,7 @@ function updatePaygrade(uid, isPromotion) {
}
const message = {
- event: "UPDATE_PAYGRADE",
+ event: "UPDATE::PAYGRADE",
data: [uid, newPaygrade]
};
@@ -341,7 +341,7 @@ function giveMoney() {
function giveAllMoney() {
const amount = parseInt(document.getElementById('giveAllAmount').value);
const message = {
- event: "ADVANCE_ALL",
+ event: "ADVANCE::ALL",
data: [amount]
}
@@ -371,7 +371,7 @@ function takeMoney() {
*/
function handleTransferFunds(condition, amount, uid) {
const message = {
- event: "HANDLE_TRANSFER",
+ event: "HANDLE::TRANSFER",
data: [condition, amount, uid]
};
@@ -425,7 +425,7 @@ function sendPlayerMessage() {
const message = document.getElementById('messageInput').value;
if (message && selectedPlayerId) {
const messageData = {
- event: "SEND_MESSAGE",
+ event: "SEND::MESSAGE",
data: [selectedPlayerId, message]
};
@@ -441,7 +441,7 @@ function broadcastMessage() {
const message = document.getElementById('broadcastMessage').value;
if (message) {
const messageData = {
- event: "BROADCAST_MESSAGE",
+ event: "BROADCAST::MESSAGE",
data: ["", message]
};
@@ -461,7 +461,7 @@ function broadcastMessage() {
*/
function Payday() {
const message = {
- event: "HANDLE_PAYDAY",
+ event: "HANDLE::PAYDAY",
data: []
};
diff --git a/addons/bank/XEH_PREP.hpp b/addons/bank/XEH_PREP.hpp
index 746ca50..96b75ce 100644
--- a/addons/bank/XEH_PREP.hpp
+++ b/addons/bank/XEH_PREP.hpp
@@ -1,5 +1,4 @@
PREP(deposit);
-PREP(initBank);
PREP(openBank);
PREP(refresh);
PREP(submit);
diff --git a/addons/bank/XEH_postInit.sqf b/addons/bank/XEH_postInit.sqf
index 84f2529..ce7c0a8 100644
--- a/addons/bank/XEH_postInit.sqf
+++ b/addons/bank/XEH_postInit.sqf
@@ -1 +1,11 @@
-#include "script_component.hpp"
\ No newline at end of file
+#include "script_component.hpp"
+
+[{
+ GETVAR(player,value_loadDone,false)
+}, {
+ private _bank = GETVAR(player,FORGE_Bank,0);
+ private _cash = GETVAR(player,FORGE_Cash,0);
+ private _uid = getPlayerUID player;
+
+ ["forge_server_bank_handleEvents", ["BANK::HANDLE::PLAYER::LOAD", [_uid, _bank, _cash]]] call CFUNC(serverEvent);
+}] call CFUNC(waitUntilAndExecute);
\ No newline at end of file
diff --git a/addons/bank/XEH_postInit_client.sqf b/addons/bank/XEH_postInit_client.sqf
index 84f2529..6986511 100644
--- a/addons/bank/XEH_postInit_client.sqf
+++ b/addons/bank/XEH_postInit_client.sqf
@@ -1 +1,86 @@
-#include "script_component.hpp"
\ No newline at end of file
+#include "script_component.hpp"
+
+[QGVAR(handleEvents), {
+ params ["_control", "_isConfirmDialog", "_message"];
+
+ diag_log text format ["[FORGE::Client::Bank::XEH_postInit] Received event: '%1'", _message];
+
+ _message = fromJSON _message;
+ private _event = _message get "event";
+ private _data = _message get "data";
+
+ switch (_event) do {
+ case "REQUEST::PLAYER::DATA": {
+ private _playerData = createHashMap;
+ private _playerList = [];
+
+ {
+ private _player = _x;
+ private _uid = getPlayerUID _player;
+ private _name = name _player;
+ private _funds = GETVAR(_player,FORGE_Bank,0); //TODO: Implement funds from server
+ private _cash = GETVAR(_player,FORGE_Cash,0); //TODO: Implement cash from server
+ private _playerInfo = createHashMapFromArray [
+ ["uid", _uid],
+ ["name", _name],
+ ["funds", _funds],
+ ["cash", _cash]
+ ];
+
+ _playerList pushBack _playerInfo;
+ } forEach allPlayers;
+
+ _playerData set ["players", _playerList];
+ _control ctrlWebBrowserAction ["ExecJS", format ["handlePlayerDataRequest(%1)", (toJSON _playerList)]];
+ };
+ case "REQUEST::PLAYER::FUNDS": {
+ private _playerData = createHashMap;
+ private _uid = getPlayerUID player;
+ private _balance = GETVAR(_player,FORGE_Bank,0); //TODO: Implement balance from server
+ private _cash = GETVAR(_player,FORGE_Cash,0); //TODO: Implement cash from server
+ private _playerData = createHashMapFromArray [
+ ["balance", _balance],
+ ["cash", _cash]
+ ];
+
+ _control ctrlWebBrowserAction ["ExecJS", format ["handlePlayerFundsRequest(%1)", (toJSON _playerData)]];
+ };
+ case "REQUEST::TRANSACTION::HISTORY": {
+ private _uid = getPlayerUID player;
+ private _history = []; //TODO: Implement history from server
+ private _historyData = createHashMapFromArray [["history", _history]];
+
+ _control ctrlWebBrowserAction ["ExecJS", format ["handleTransactionHistoryRequest(%1)", (toJSON _historyData)]];
+ };
+ case "DEPOSIT::FUNDS": {
+ _data params ["_amount"];
+
+ if (_amount <= 0) exitWith { systemChat "Invalid amount, must be greater than 0!"; false };
+
+ ["forge_server_bank_handleEvents", ["BANK::DEPOSIT", [getPlayerUID player, _amount]]] call CFUNC(serverEvent);
+
+ true
+ };
+ case "WITHDRAW::FUNDS": {
+ _data params ["_amount"];
+
+ if (_amount <= 0) exitWith { systemChat "Invalid amount, must be greater than 0!"; false };
+
+ ["forge_server_bank_handleEvents", ["BANK::WITHDRAW", [getPlayerUID player, _amount]]] call CFUNC(serverEvent);
+
+ true
+ };
+ case "TRANSFER::FUNDS": {
+ _data params ["_amount", "_toUid"];
+
+ if ((_amount <= 0) || {_toUid isEqualTo ""}) exitWith { systemChat "Invalid UID or amount, UID cannot be empty and amount must be greater than 0!"; false };
+
+ ["forge_server_bank_handleEvents", ["BANK::TRANSFER", [getPlayerUID player, _toUid, _amount]]] call CFUNC(serverEvent);
+
+ true
+ };
+ default {
+ diag_log format ["[FORGE::Client::Bank::XEH_postInit] Unhandled event: %1", _event];
+ };
+ };
+}] call CFUNC(addEventHandler);
\ No newline at end of file
diff --git a/addons/bank/config.cpp b/addons/bank/config.cpp
index c3688dc..ceb0e29 100644
--- a/addons/bank/config.cpp
+++ b/addons/bank/config.cpp
@@ -15,4 +15,5 @@ class CfgPatches {
#include "CfgEventHandlers.hpp"
#include "ui\BaseControls.hpp"
-#include "ui\RscBankDialog.hpp"
\ No newline at end of file
+#include "ui\RscBankDialog.hpp"
+#include "ui\RscWebBank.hpp"
\ No newline at end of file
diff --git a/addons/bank/functions/fnc_deposit.sqf b/addons/bank/functions/fnc_deposit.sqf
index 61533f0..43bc4bb 100644
--- a/addons/bank/functions/fnc_deposit.sqf
+++ b/addons/bank/functions/fnc_deposit.sqf
@@ -1,11 +1,8 @@
#include "..\script_component.hpp"
/*
- * Function: forge_client_bank_fnc_deposit
* Author: IDSolutions
- *
- * [Description]
- * Deposits money into the bank
+ * Deposits money into the bank.
*
* Arguments:
* None
@@ -13,25 +10,27 @@
* Return Value:
* None
*
- * Examples:
- * None
+ * Example:
+ * [] call forge_client_bank_fnc_deposit;
*
* Public: Yes
*/
private _amount = parseNumber (ctrlText IDC_AMOUNTINPUT);
-private _bank = GETVAR(player,FORGE_Bank,0);
-private _cash = GETVAR(player,FORGE_Cash,0);
+private _uid = getPlayerUID player;
-if (_amount > 0 && _amount <= _cash) then {
- _cash = _cash - _amount;
- _bank = _bank + _amount;
+private _messageData = createHashMapFromArray [
+ ["event", "DEPOSIT::FUNDS"],
+ ["data", createHashMapFromArray [
+ ["amount", _amount],
+ ["uid", _uid]
+ ]]
+];
- SETPVAR(player,FORGE_Bank,_bank);
- SETPVAR(player,FORGE_Cash,_cash);
+private _response = ["forge_client_bank_handleEvents", (toJSON _messageData)] call CFUNC(localEvent);
- [] call FUNC(refresh);
- hint "Money deposited successfully";
+if (_response) then {
+ [format ["Deposited $%1", _amount], "info", 3, "right"] call EFUNC(misc,notify);
} else {
- hint "Invalid amount";
+ [format ["Deposit failed"], "warning", 3, "right"] call EFUNC(misc,notify);
};
\ No newline at end of file
diff --git a/addons/bank/functions/fnc_openBank.sqf b/addons/bank/functions/fnc_openBank.sqf
index bd9b3a4..4b083c9 100644
--- a/addons/bank/functions/fnc_openBank.sqf
+++ b/addons/bank/functions/fnc_openBank.sqf
@@ -1,11 +1,8 @@
#include "..\script_component.hpp"
/*
- * Function: forge_client_bank_fnc_openBank
* Author: IDSolutions
- *
- * [Description]
- * Opens the bank dialog
+ * Opens the bank dialog.
*
* Arguments:
* None
@@ -13,34 +10,51 @@
* Return Value:
* None
*
- * Examples:
- * None
+ * Example:
+ * [] call forge_client_bank_fnc_openBank;
*
* Public: Yes
*/
-private _bank = GETVAR(player,FORGE_Bank,0);
-private _cash = GETVAR(player,FORGE_Cash,0);
+private _productVersion = productVersion;
+private _steamBranchName = _productVersion select 8;
private _payMultiplier = "MULTIPLYR" call BFUNC(getParamValue);
-private _plyscore = rating player;
-private _pending = _plyscore * _payMultiplier;
-disableSerialization;
-createDialog "RscBankDialog";
+if (_steamBranchName == "profiling") then {
+ private _display = (findDisplay 46) createDisplay "RscWebBank";
+ private _ctrl = _display displayCtrl 2025;
-private _formattedBank = _bank call EFUNC(misc,formatNumber);
-private _formattedCash = _cash call EFUNC(misc,formatNumber);
-private _formattedPending = _pending call EFUNC(misc,formatNumber);
+ _ctrl ctrlAddEventHandler ["JSDialog", {
+ params ["_control", "_isConfirmDialog", "_message"];
+ [QGVAR(handleEvents), [_control, _isConfirmDialog, _message]] call CFUNC(localEvent);
+ }];
-ctrlSetText [IDC_CASHTEXT, format ["Cash: $%1", _formattedCash]];
-ctrlSetText [IDC_BANKTEXT, format ["Bank: $%1", _formattedBank]];
-ctrlSetText [IDC_RATINGTEXT, format ["Pending: %1", _formattedPending]];
-ctrlSetText [IDC_TIMESHEETTEXT, "Ready for Timesheet"];
+ _ctrl ctrlWebBrowserAction ["LoadFile", QUOTE(PATHTOF(ui\_site\index.html))];
+ _ctrl ctrlWebBrowserAction ["OpenDevConsole"];
+} else {
+ disableSerialization;
+ createDialog "RscBankDialog";
-{
- lbAdd [IDC_PLAYERINPUT, name _x];
- lbSetData [IDC_PLAYERINPUT, _forEachIndex, netId _x];
-} forEach allPlayers;
+ private _uid = getPlayerUID player;
+ private _bank = GETVAR(player,FORGE_Bank,0); //TODO: Implement balance from server
+ private _cash = GETVAR(player,FORGE_Cash,0); //TODO: Implement cash from server
+ private _plyscore = rating player;
+ private _pending = _plyscore * _payMultiplier;
-lbSetCurSel [IDC_PLAYERINPUT, 0];
-ctrlSetText [IDC_AMOUNTINPUT, ""];
\ No newline at end of file
+ private _formattedBank = _bank call EFUNC(misc,formatNumber);
+ private _formattedCash = _cash call EFUNC(misc,formatNumber);
+ private _formattedPending = _pending call EFUNC(misc,formatNumber);
+
+ ctrlSetText [IDC_CASHTEXT, format ["Cash: $%1", _formattedCash]];
+ ctrlSetText [IDC_BANKTEXT, format ["Bank: $%1", _formattedBank]];
+ ctrlSetText [IDC_RATINGTEXT, format ["Pending: %1", _formattedPending]];
+ ctrlSetText [IDC_TIMESHEETTEXT, "Ready for Timesheet"];
+
+ {
+ lbAdd [IDC_PLAYERINPUT, name _x];
+ lbSetData [IDC_PLAYERINPUT, _forEachIndex, netId _x];
+ } forEach allPlayers;
+
+ lbSetCurSel [IDC_PLAYERINPUT, 0];
+ ctrlSetText [IDC_AMOUNTINPUT, ""];
+};
\ No newline at end of file
diff --git a/addons/bank/functions/fnc_refresh.sqf b/addons/bank/functions/fnc_refresh.sqf
index 4771d3e..660e2c9 100644
--- a/addons/bank/functions/fnc_refresh.sqf
+++ b/addons/bank/functions/fnc_refresh.sqf
@@ -1,11 +1,8 @@
#include "..\script_component.hpp"
/*
- * Function: forge_client_bank_fnc_refresh
* Author: IDSolutions
- *
- * [Description]
- * Refreshes the bank dialog
+ * Refreshes the bank dialog.
*
* Arguments:
* None
@@ -13,14 +10,15 @@
* Return Value:
* None
*
- * Examples:
- * None
+ * Example:
+ * [] call forge_client_bank_fnc_refresh;
*
* Public: Yes
*/
-private _bank = GETVAR(player,FORGE_Bank,0);
-private _cash = GETVAR(player,FORGE_Cash,0);
+private _bank = GETVAR(player,FORGE_Bank,0); //TODO: Implement balance from server
+private _cash = GETVAR(player,FORGE_Cash,0); //TODO: Implement cash from server
+
private _payMultiplier = "MULTIPLYR" call BFUNC(getParamValue);
private _plyscore = rating player;
private _pending = _plyscore * _payMultiplier;
diff --git a/addons/bank/functions/fnc_submit.sqf b/addons/bank/functions/fnc_submit.sqf
index dcdd9f0..07bcd79 100644
--- a/addons/bank/functions/fnc_submit.sqf
+++ b/addons/bank/functions/fnc_submit.sqf
@@ -19,9 +19,9 @@
* Public: Yes
*/
-private _bank = GETVAR(player,FORGE_Bank,0);
+private _bank = GETVAR(player,FORGE_Bank,0); //TODO: Implement balance from server
private _payMultiplyer = "MULTIPLYR" call BFUNC(getParamValue);
-private _plyscore = rating player;
+private _plyscore = rating player; //TODO: Implement rating from server
private _multiplyer = _plyscore * _payMultiplyer;
_bank = _bank + _multiplyer;
diff --git a/addons/bank/functions/fnc_transfer.sqf b/addons/bank/functions/fnc_transfer.sqf
index 7280554..4a5218d 100644
--- a/addons/bank/functions/fnc_transfer.sqf
+++ b/addons/bank/functions/fnc_transfer.sqf
@@ -1,11 +1,8 @@
#include "..\script_component.hpp"
/*
- * Function: forge_client_bank_fnc_transfer
* Author: IDSolutions
- *
- * [Description]
- * Transfers money to a player
+ * Transfers money to a player.
*
* Arguments:
* None
@@ -13,8 +10,8 @@
* Return Value:
* None
*
- * Examples:
- * None
+ * Example:
+ * [] call forge_client_bank_fnc_transfer;
*
* Public: Yes
*/
@@ -22,23 +19,28 @@
private _display = findDisplay IDD_BANKDIALOG;
private _input = _display displayCtrl IDC_AMOUNTINPUT;
private _dropdown = _display displayCtrl IDC_PLAYERINPUT;
+
private _amount = parseNumber (ctrlText _input);
private _selectedTarget = lbCurSel _dropdown;
private _selectedTargetData = _dropdown lbData _selectedTarget;
private _target = objectFromNetId _selectedTargetData;
-private _bank = GETVAR(player,FORGE_Bank,0);
-private _targetBank = GETVAR(_target,FORGE_Bank,0);
+private _fromUid = getPlayerUID player;
+private _toUid = getPlayerUID _target;
-if (!isNull _target && _amount > 0 && _amount <= _bank) then {
- _targetBank = _targetBank + _amount;
- SETPVAR(_target,FORGE_Bank,_targetBank);
+private _messageData = createHashMapFromArray [
+ ["event", "TRANSFER::FUNDS"],
+ ["data", createHashMapFromArray [
+ ["fromUid", _fromUid],
+ ["toUid", _toUid],
+ ["amount", _amount]
+ ]]
+];
- _bank = _bank - _amount;
- SETPVAR(player,FORGE_Bank,_bank);
+private _response = [QGVAR(handleEvents), (toJSON _messageData)] call CFUNC(localEvent);
- [] call FUNC(refresh);
+if (_response) then {
[format ["Transferred $%1", _amount], "info", 3, "right"] call EFUNC(misc,notify);
} else {
- [format ["Invalid transfer details"], "warning", 3, "right"] call EFUNC(misc,notify);
+ [format ["Transfer failed"], "warning", 3, "right"] call EFUNC(misc,notify);
};
\ No newline at end of file
diff --git a/addons/bank/functions/fnc_withdraw.sqf b/addons/bank/functions/fnc_withdraw.sqf
index 4c1f341..d358ba1 100644
--- a/addons/bank/functions/fnc_withdraw.sqf
+++ b/addons/bank/functions/fnc_withdraw.sqf
@@ -1,11 +1,8 @@
#include "..\script_component.hpp"
/*
- * Function: forge_client_bank_fnc_withdraw
* Author: IDSolutions
- *
- * [Description]
- * Withdraws money from the bank
+ * Withdraws money from the bank.
*
* Arguments:
* None
@@ -13,8 +10,8 @@
* Return Value:
* None
*
- * Examples:
- * None
+ * Example:
+ * [] call forge_client_bank_fnc_withdraw;
*
* Public: Yes
*/
@@ -23,18 +20,17 @@ private _display = findDisplay IDD_BANKDIALOG;
private _input = _display displayCtrl IDC_AMOUNTINPUT;
private _amount = parseNumber (ctrlText _input);
-private _bank = GETVAR(player,FORGE_Bank,0);
-private _cash = GETVAR(player,FORGE_Cash,0);
+private _messageData = createHashMapFromArray [
+ ["event", "WITHDRAW::FUNDS"],
+ ["data", createHashMapFromArray [
+ ["amount", _amount]
+ ]]
+];
-if (_amount > 0 && _amount <= _bank) then {
- _bank = _bank - _amount;
- _cash = _cash + _amount;
+private _response = ["forge_client_bank_handleEvents", (toJSON _messageData)] call CFUNC(localEvent);
- SETPVAR(player,FORGE_Bank,_bank);
- SETPVAR(player,FORGE_Cash,_cash);
-
- [] call FUNC(refresh);
- [format ["Money withdrawn successfully"], "info", 3, "right"] call EFUNC(misc,notify);
+if (_response) then {
+ [format ["Withdrawn $%1", _amount], "info", 3, "right"] call EFUNC(misc,notify);
} else {
- [format ["Invalid amount"], "warning", 3, "right"] call EFUNC(misc,notify);
+ [format ["Withdrawal failed"], "warning", 3, "right"] call EFUNC(misc,notify);
};
\ No newline at end of file
diff --git a/addons/bank/stringtable.xml b/addons/bank/stringtable.xml
index f34c6e8..0d64d40 100644
--- a/addons/bank/stringtable.xml
+++ b/addons/bank/stringtable.xml
@@ -4,9 +4,6 @@