Initial upload. Not currently functional as a mod. Includes some slightly refactored source code as well as the original mission this was debuted in zipped up as reference + example of usage.
This commit is contained in:
commit
75b737230e
32 files changed
+2049
No files matched your search
@@ -0,0 +1,85 @@
|
||||
/*
|
||||
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;
|
||||
Reference in new issue
Block a user