/* Author: Clarky Usage: [ "CLF_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 _vehicleCurrent = _vehicle getVariable ["currentMateriel", 0]; private _vehicleMax = _vehicle getVariable ["maxMateriel", 300]; private _transferRate = _vehicle getVariable ["transferRate", 50]; private _depotCurrent = _depot getVariable ["currentMateriel", 0]; private _freeSpace = _vehicleMax - _vehicleCurrent; if (_freeSpace <= 0) exitWith { [ "CLF_ShowMessage", [1, 0, "Vehicle is already full."], _player ] call CBA_fnc_targetEvent; }; if (_depotCurrent <= 0) exitWith { [ "CLF_ShowMessage", [2, 0, "Depot has no materiel available."], _player ] call CBA_fnc_targetEvent; }; private _amount = (_transferRate min _freeSpace) min _depotCurrent; _vehicle setVariable [ "currentMateriel", _vehicleCurrent + _amount, true ]; _depot setVariable [ "currentMateriel", _depotCurrent - _amount, true ]; [ "CLF_ShowMessage", [ 0, 0, format [ "Loaded %1 materiel. Vehicle now contains %2/%3.", _amount, _vehicle getVariable ["currentMateriel",0], _vehicleMax ] ], _player ] call CBA_fnc_targetEvent;