/* Author: Clarky Usage: [ "CLRK_fnc_VehicleUnloaded", [_target, _caller, _depot] ] call CBA_fnc_serverEvent; Intended to be run by an event handler call from a vehicle unload 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 _vehicleCurrent = _vehicle getVariable ["currentMateriel", 0]; private _transferRate = _vehicle getVariable ["transferRate", 50]; private _depotCurrent = _depot getVariable ["currentMateriel", 0]; private _depotMax = _depot getVariable ["maxMateriel", 300]; private _freeSpace = _depotMax - _depotCurrent; if (_freeSpace <= 0) exitWith { [ "CLRK_ShowMessage", [ 1, 0, "Depot is already full." ], _player ] call CBA_fnc_targetEvent; }; if (_vehicleCurrent <= 0) exitWith { [ "CLRK_ShowMessage", [ 2, 0, "Vehicle has no Materiel available." ], _player ] call CBA_fnc_targetEvent; }; private _amount = (_transferRate min _freeSpace) min _vehicleCurrent; _vehicle setVariable [ "currentMateriel", _vehicleCurrent - _amount, true ]; _depot setVariable [ "currentMateriel", _depotCurrent + _amount, true ]; [ "CLRK_ShowMessage", [ 0, 0, format [ "Unloaded %1 materiel. Depot now contains %2/%3.", _amount, _depot getVariable ["currentMateriel",0], _depotMax ] ], _player ] call CBA_fnc_targetEvent;