diff --git a/addons/medical_ai/functions/fnc_healingLogic.sqf b/addons/medical_ai/functions/fnc_healingLogic.sqf index 9c7ce1c847f..10e0549e767 100644 --- a/addons/medical_ai/functions/fnc_healingLogic.sqf +++ b/addons/medical_ai/functions/fnc_healingLogic.sqf @@ -262,7 +262,7 @@ if (true) then { if (_canGiveIV) exitWith { _treatmentEvent = QEGVAR(medical_treatment,ivBagLocal); _treatmentTime = 5; - _treatmentArgs = [_target, _bodyPart, "SalineIV"]; + _treatmentArgs = [_target, _bodyPart, "SalineIV", _healer]; _treatmentItem = "@iv"; }; diff --git a/addons/medical_treatment/functions/fnc_ivBag.sqf b/addons/medical_treatment/functions/fnc_ivBag.sqf index 7f56f332b30..a856afec32a 100644 --- a/addons/medical_treatment/functions/fnc_ivBag.sqf +++ b/addons/medical_treatment/functions/fnc_ivBag.sqf @@ -25,4 +25,4 @@ params ["_medic", "_patient", "_bodyPart", "_classname", "", "_usedItem"]; [_patient, _usedItem] call FUNC(addToTriageCard); [_patient, "activity", LSTRING(Activity_gaveIV), [[_medic, false, true] call EFUNC(common,getName)]] call FUNC(addToLog); -[QGVAR(ivBagLocal), [_patient, _bodyPart, _classname], _patient] call CBA_fnc_targetEvent; +[QGVAR(ivBagLocal), [_patient, _bodyPart, _classname, _medic], _patient] call CBA_fnc_targetEvent; diff --git a/addons/medical_treatment/functions/fnc_ivBagLocal.sqf b/addons/medical_treatment/functions/fnc_ivBagLocal.sqf index dc416f90c50..91a1db54a3f 100644 --- a/addons/medical_treatment/functions/fnc_ivBagLocal.sqf +++ b/addons/medical_treatment/functions/fnc_ivBagLocal.sqf @@ -1,27 +1,39 @@ #include "..\script_component.hpp" /* - * Author: Glowbal, mharis001 + * Author: Glowbal, mharis001, Cplhardcore * Local callback for administering an IV bag to a patient. * * Arguments: * 0: Patient * 1: Body Part * 2: Treatment + * 3: Medic * * Return Value: * None * * Example: - * [player, "RightArm", "BloodIV"] call ace_medical_treatment_fnc_ivBagLocal + * [player, "RightArm", "BloodIV", player] call ace_medical_treatment_fnc_ivBagLocal * * Public: No */ -params ["_patient", "_bodyPart", "_classname"]; +params ["_patient", "_bodyPart", "_classname", "_medic"]; // Exit if patient has max blood volume private _bloodVolume = GET_BLOOD_VOLUME(_patient); -if (_bloodVolume >= DEFAULT_BLOOD_VOLUME) exitWith {}; +if (_bloodVolume >= DEFAULT_BLOOD_VOLUME) exitWith { + // Return the bag if patient is topped up on blood + if (_medic call EFUNC(common,isPlayer)) then { + private _receiver = [_patient, _medic, _medic] select GVAR(allowSharedEquipment); + [_receiver, _classname] call EFUNC(common,addToInventory); + } else { + // If the medic is AI, only return bag if enabled + if (missionNamespace getVariable [QEGVAR(medical_ai,requireItems), 0] > 0) then { + [_medic, _classname] call EFUNC(common,addToInventory); + }; + }; +}; private _partIndex = ALL_BODY_PARTS find toLowerANSI _bodyPart;