mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
3c5b46c42d
* count treatment items * getCountofItem Co-Authored-By: Blue <itzblueman@gmail.com> * getCountofItem fix Co-Authored-By: Blue <itzblueman@gmail.com> * convert painkillers to magazine * use isclass Co-Authored-By: johnb432 <58661205+johnb432@users.noreply.github.com> * forget to change variable * Update addons/medical_treatment/functions/fnc_hasItem.sqf Co-authored-by: Grim <69561145+LinkIsGrim@users.noreply.github.com> * better magazine adjustment * Update addons/common/functions/fnc_adjustMagazineAmmo.sqf Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com> * Update addons/medical_treatment/functions/fnc_medication.sqf Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com> * Update addons/medical_treatment/functions/fnc_treatmentFailure.sqf Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com> * Update docs/wiki/framework/arsenal-framework.md Co-authored-by: Jouni Järvinen <rautamiekka@users.noreply.github.com> * Update addons/common/functions/fnc_adjustMagazineAmmo.sqf Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com> * Header * use switch statement in fnc_useItem * Update addons/common/functions/fnc_adjustMagazineAmmo.sqf * Update addons/common/functions/fnc_adjustMagazineAmmo.sqf Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com> * only check adding to mags that are not full Co-Authored-By: LinkIsGrim <salluci.lovi@gmail.com> * Update addons/common/functions/fnc_adjustMagazineAmmo.sqf * Update fnc_getCountOfItem.sqf * Optimisations & header fix * Update addons/common/functions/fnc_adjustMagazineAmmo.sqf * Fixed vehicle implementation --------- Co-authored-by: Blue <itzblueman@gmail.com> Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com> Co-authored-by: Grim <69561145+LinkIsGrim@users.noreply.github.com> Co-authored-by: Jouni Järvinen <rautamiekka@users.noreply.github.com> Co-authored-by: LinkIsGrim <salluci.lovi@gmail.com>
69 lines
1.9 KiB
Plaintext
69 lines
1.9 KiB
Plaintext
#include "..\script_component.hpp"
|
|
/*
|
|
* Author: AmsteadRayle
|
|
* Counts how many of the given items are present between the medic and patient.
|
|
* If medic or patient are in a vehicle then vehicle's inventory will also be checked.
|
|
*
|
|
* Arguments:
|
|
* 0: Items <ARRAY>
|
|
*
|
|
* Return Value:
|
|
* Counts (can be nil) <ARRAY>
|
|
*
|
|
* Example:
|
|
* [items] call ace_medical_gui_fnc_countTreatmentItems
|
|
*
|
|
* Public: No
|
|
*/
|
|
|
|
params ["_items"];
|
|
|
|
private _medicCount = 0;
|
|
private _patientCount = nil;
|
|
private _vehicleCount = nil;
|
|
|
|
// Medic
|
|
{
|
|
_medicCount = _medicCount + ([ACE_player, _x] call EFUNC(common,getCountOfItem));
|
|
} forEach _items;
|
|
|
|
// Patient
|
|
if (ACE_player != GVAR(target)) then {
|
|
_patientCount = 0;
|
|
{
|
|
_patientCount = _patientCount + ([GVAR(target), _x] call EFUNC(common,getCountOfItem));
|
|
} forEach _items;
|
|
};
|
|
|
|
// Vehicle
|
|
private _medicVehicle = objectParent ACE_player;
|
|
private _patientVehicle = objectParent GVAR(target);
|
|
private _vehicle = [_patientVehicle, _medicVehicle] select (!isNull _medicVehicle);
|
|
|
|
if (!isNull _vehicle) then {
|
|
_vehicleCount = 0;
|
|
private _magazineItems = [];
|
|
private _itemItems = [];
|
|
{
|
|
if (isClass (configFile >> "CfgMagazines" >> _x)) then {
|
|
_magazineItems pushBack _x;
|
|
} else {
|
|
_itemItems pushBack _x;
|
|
};
|
|
} forEach _items;
|
|
if (_magazineItems isNotEqualTo []) then {
|
|
(getMagazineCargo _vehicle) params ["_itemTypes", "_itemCounts"];
|
|
{
|
|
_vehicleCount = _vehicleCount + (_itemCounts param [_itemTypes find _x, 0]);
|
|
} forEach _magazineItems;
|
|
};
|
|
if (_itemItems isNotEqualTo []) then {
|
|
(getItemCargo _vehicle) params ["_itemTypes", "_itemCounts"];
|
|
{
|
|
_vehicleCount = _vehicleCount + (_itemCounts param [_itemTypes find _x, 0]);
|
|
} forEach _itemItems;
|
|
};
|
|
};
|
|
|
|
[_medicCount, _patientCount, _vehicleCount]
|