92 lines
3.2 KiB
Plaintext
92 lines
3.2 KiB
Plaintext
#include "..\script_component.hpp"
|
|
|
|
params [["_condition", "", [""]]];
|
|
|
|
private _dialog = findDisplay 202303;
|
|
private _list = _dialog displayCtrl 2023001;
|
|
private _targetValue = lbCurSel _list;
|
|
private _data = _list lbData _targetValue;
|
|
private _amount = round (parseNumber (ctrlText 2023005));
|
|
|
|
if ((isNil {_data})) exitWith { hint "You did not select a player!" };
|
|
|
|
{
|
|
if (str (name (_x)) == str _data) then {
|
|
private _target = _x;
|
|
};
|
|
} count playableUnits;
|
|
|
|
switch (_condition) do {
|
|
case ("advance"): {
|
|
private _bank = GETVAR(_target,FORGE_Bank,0);
|
|
private _newBalance = _bank + _amount;
|
|
|
|
if (_amount > companyFunds) exitWith { ["Not enough money in the company's account!", "warning", 3] call EFUNC(misc,notify) };
|
|
|
|
SETPVAR(_target,FORGE_Bank,_newBalance);
|
|
|
|
["deduct", _amount] call FUNC(adminRefresh);
|
|
["deduct", _amount] remoteExecCall ["forge_server_money_fnc_handleFunds", 2];
|
|
};
|
|
case ("advanceAll"): {
|
|
private _count = count playableUnits;
|
|
|
|
if ((10000 * _count) > companyFunds) exitWith { ["Not enough money in the company's account!", "warning", 3] call EFUNC(misc,notify) };
|
|
|
|
{
|
|
private _bank = GETVAR(_x,Cash_Bank,0);
|
|
private _newBalance = _bank + 10000;
|
|
|
|
SETPVAR(_x,Cash_Bank,_newBalance);
|
|
} count playableUnits;
|
|
|
|
["deduct", (10000 * _count)] call FUNC(adminRefresh);
|
|
["deduct", (10000 * _count)] remoteExecCall ["forge_server_money_fnc_handleFunds", 2];
|
|
};
|
|
case ("deduct"): {
|
|
private _bank = GETVAR(_target,FORGE_Bank,0);
|
|
private _newBalance = _bank - _amount;
|
|
|
|
if (_amount > _bank) exitWith { ["Not enough money in the player's account!", "warning", 3] call EFUNC(misc,notify) };
|
|
|
|
SETPVAR(_target,FORGE_Bank,_newBalance);
|
|
|
|
["advance", _amount] call FUNC(adminRefresh);
|
|
["advance", _amount] remoteExecCall ["forge_server_money_fnc_handleFunds", 2];
|
|
};
|
|
case ("payday"): {
|
|
private _totalPayment = 0;
|
|
private _paymentToDo = [];
|
|
private _payGrades = (missionConfigFile >> "CfgPaygrades" >> "payGrades") call BIS_fnc_getCfgData;
|
|
|
|
{
|
|
private _player = _x;
|
|
private _payGrade = GETVAR(_player,PayGrade,nil);
|
|
|
|
{
|
|
_x params ["_payGradeIndex", "_payGradeBonus"];
|
|
|
|
if ((_x select 0) == _payGrade) then {
|
|
_paymentToDo pushBack [_player, _payGradeBonus];
|
|
_totalPayment = _totalPayment + _payGradeBonus;
|
|
};
|
|
} forEach _payGrades;
|
|
} count playableUnits;
|
|
|
|
if (_totalPayment > companyFunds) exitWith { ["Not enough money in the company's account!", "warning", 3] call EFUNC(misc,notify) };
|
|
|
|
{
|
|
_x params ["_player", "_bonus"];
|
|
|
|
private _bank = GETVAR(_player,FORGE_Bank,0);
|
|
private _newBalance = _bank + _bonus;
|
|
|
|
SETPVAR(_player,FORGE_Bank,_newBalance);
|
|
} count _paymentToDo;
|
|
|
|
["deduct", _totalPayment] call FUNC(adminRefresh);
|
|
["deduct", _totalPayment] remoteExecCall ["forge_server_money_fnc_handleFunds", 2];
|
|
};
|
|
};
|
|
|
|
ctrlSetText [2023005, ""]; |