92 lines
3.5 KiB
Plaintext
92 lines
3.5 KiB
Plaintext
if (!isServer) exitWith {};
|
|
|
|
params ["_price_s", "_price_a", "_price_f", "_typename", "_localtype", "_storage_areas"];
|
|
|
|
if ((_price_s > 0) || (_price_a > 0) || (_price_f > 0)) then {
|
|
|
|
stats_supplies_spent = stats_supplies_spent + _price_s;
|
|
stats_ammo_spent = stats_ammo_spent + _price_a;
|
|
stats_fuel_spent = stats_fuel_spent + _price_f;
|
|
|
|
{
|
|
private _storage_positions = [];
|
|
private _storedCrates = (attachedObjects _x);
|
|
reverse _storedCrates;
|
|
|
|
{
|
|
_crateValue = _x getVariable ["KP_liberation_crate_value",0];
|
|
|
|
switch ((typeOf _x)) do {
|
|
case KP_liberation_supply_crate: {
|
|
if (_price_s > 0) then {
|
|
if (_crateValue > _price_s) then {
|
|
_crateValue = _crateValue - _price_s;
|
|
_x setVariable ["KP_liberation_crate_value", _crateValue, true];
|
|
_price_s = 0;
|
|
} else {
|
|
detach _x;
|
|
deleteVehicle _x;
|
|
_price_s = _price_s - _crateValue;
|
|
};
|
|
};
|
|
};
|
|
case KP_liberation_ammo_crate: {
|
|
if (_price_a > 0) then {
|
|
if (_crateValue > _price_a) then {
|
|
_crateValue = _crateValue - _price_a;
|
|
_x setVariable ["KP_liberation_crate_value", _crateValue, true];
|
|
_price_a = 0;
|
|
} else {
|
|
detach _x;
|
|
deleteVehicle _x;
|
|
_price_a = _price_a - _crateValue;
|
|
};
|
|
};
|
|
};
|
|
case KP_liberation_fuel_crate: {
|
|
if (_price_f > 0) then {
|
|
if (_crateValue > _price_f) then {
|
|
_crateValue = _crateValue - _price_f;
|
|
_x setVariable ["KP_liberation_crate_value", _crateValue, true];
|
|
_price_f = 0;
|
|
} else {
|
|
detach _x;
|
|
deleteVehicle _x;
|
|
_price_f = _price_f - _crateValue;
|
|
};
|
|
};
|
|
};
|
|
default {[format ["Invalid object (%1) at storage area", (typeOf _x)], "ERROR"] call KPLIB_fnc_log;};
|
|
};
|
|
} forEach _storedCrates;
|
|
|
|
([_x] call KPLIB_fnc_getStoragePositions) params ["_storage_positions"];
|
|
|
|
private _area = _x;
|
|
_i = 0;
|
|
{
|
|
_height = [typeOf _x] call KPLIB_fnc_getCrateHeight;
|
|
detach _x;
|
|
_x attachTo [_area, [(_storage_positions select _i) select 0, (_storage_positions select _i) select 1, _height]];
|
|
_i = _i + 1;
|
|
} forEach attachedObjects (_x);
|
|
|
|
if ((_price_s == 0) && (_price_a == 0) && (_price_f == 0)) exitWith {};
|
|
|
|
} forEach _storage_areas;
|
|
|
|
if ( _localtype == 8 ) then {
|
|
stats_blufor_soldiers_recruited = stats_blufor_soldiers_recruited + 10;
|
|
} else {
|
|
if ( _typename isKindOf "Man" ) then {
|
|
stats_blufor_soldiers_recruited = stats_blufor_soldiers_recruited + 1;
|
|
} else {
|
|
if ( ! ( _typename isKindOf "Building" ) ) then {
|
|
stats_blufor_vehicles_built = stats_blufor_vehicles_built + 1;
|
|
};
|
|
};
|
|
};
|
|
|
|
please_recalculate = true;
|
|
};
|