93 lines
1.8 KiB
Plaintext
93 lines
1.8 KiB
Plaintext
/*
|
|||
|
|
Author: Clarky
|
||
|
|
Usage:
|
||
|
|
[
|
||
|
|
"CLF_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 {
|
||
|
|
|
||
|
|
[
|
||
|
|
"CLF_ShowMessage",
|
||
|
|
[
|
||
|
|
1,
|
||
|
|
0,
|
||
|
|
"Depot is already full."
|
||
|
|
],
|
||
|
|
_player
|
||
|
|
] call CBA_fnc_targetEvent;
|
||
|
|
};
|
||
|
|
|
||
|
|
if (_vehicleCurrent <= 0) exitWith {
|
||
|
|
|
||
|
|
[
|
||
|
|
"CLF_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
|
||
|
|
];
|
||
|
|
|
||
|
|
[
|
||
|
|
"CLF_ShowMessage",
|
||
|
|
[
|
||
|
|
0,
|
||
|
|
0,
|
||
|
|
format [
|
||
|
|
"Unloaded %1 materiel. Depot now contains %2/%3.",
|
||
|
|
_amount,
|
||
|
|
_depot getVariable ["currentMateriel",0],
|
||
|
|
_depotMax
|
||
|
|
]
|
||
|
|
],
|
||
|
|
_player
|
||
|
|
] call CBA_fnc_targetEvent;
|