/* Author: Clarky Usage: [ "CLRK_fnc_VehicleLoaded", [_target, _caller, _depot] ] call CBA_fnc_serverEvent; Intended to be run by an event handler call from a vehicle load action from a player on a valid supply vehicle */ params ["_vehicle", "_player", "_depot"]; if (!isServer) exitWith {}; if (isNull _vehicle) exitWith {hint "Vehicle ain't exist";}; if (isNull _player) exitWith {hint "Player ain't exist";}; if (isNull _depot) exitWith {hint "Depot ain't exist";}; if !(_vehicle getVariable ["isSupplyVehicle", false]) exitWith {hint "Vehicle ain't supply vehicle";}; private _vehicleCurrentMateriel = _vehicle getVariable ["currentMateriel", 0]; private _vehicleCurrentOre = _vehicle getVariable ["currentOre", 0]; private _vehicleMax = _vehicle getVariable ["maxLoad", 300]; private _transferRate = _vehicle getVariable ["transferRate", 50]; private _depotCurrent = _depot getVariable ["currentMateriel", 0]; private _freeSpace = _vehicleMax - (_vehicleCurrentMateriel + _vehicleCurrentOre); if (_freeSpace <= 0) exitWith { [ "CLRK_ShowMessage", [1, 0, "Vehicle is already full."], _player ] call CBA_fnc_targetEvent; }; if (_depotCurrent <= 0) exitWith { [ "CLRK_ShowMessage", [2, 0, "Depot has no Materiel available."], _player ] call CBA_fnc_targetEvent; }; private _amount = (_transferRate min _freeSpace) min _depotCurrent; _vehicle setVariable [ "currentMateriel", _vehicleCurrentMateriel + _amount, true ]; _depot setVariable [ "currentMateriel", _depotCurrent - _amount, true ]; [ "CLRK_ShowMessage", [ 0, 0, format [ "Loaded %1 Materiel. Vehicle now contains %2.
Current Load: %3/%4.", _amount, _vehicleCurrentMateriel + _amount, _vehicleCurrentMateriel + _amount + _vehicleCurrentOre, _vehicleMax ] ], _player ] call CBA_fnc_targetEvent;