diff --git a/addons/circulation/CfgVehicles.hpp b/addons/circulation/CfgVehicles.hpp index 13e04a345..67d633178 100644 --- a/addons/circulation/CfgVehicles.hpp +++ b/addons/circulation/CfgVehicles.hpp @@ -18,7 +18,8 @@ class CfgVehicles { ace_cargo_canLoad = 1; }; - class kat_AEDItem: Item_Base_F { + class ThingX; + class kat_AEDItem: ThingX { scope = 2; scopeCurator = 2; displayName = CSTRING(AED_DISPLAYNAME); @@ -31,32 +32,32 @@ class CfgVehicles { ACEGVAR(dragging,canDrag) = 1; ACEGVAR(dragging,canCarry) = 1; - ACEGVAR(dragging,dragPosition)[] = {0,1.1,1}; + ACEGVAR(dragging,dragPosition)[] = {0,1.1,0}; ACEGVAR(dragging,carryPosition)[] = {0,1.1,1}; class ACE_Actions { class ACE_MainActions { selection = "interaction_point"; - distance = 4; + distance = 4.2; displayName = "AED"; condition = "true"; class KAT_AED_AnalyzeRhythm { displayName = CSTRING(AnalyzeRhythm); - condition = QUOTE([ARR_2(_player,GVAR(medLvl_AED))] call ACEFUNC(medical_treatment,isMedic) && [ARR_3(_player,_target,2)] call FUNC(AEDXPlaced_CheckCondition)); + condition = QUOTE([ARR_2(_player,GVAR(medLvl_AED))] call ACEFUNC(medical_treatment,isMedic) && [ARR_3(_player,_target,2)] call FUNC(DefibrillatorPlaced_CheckCondition)); statement = QUOTE([ARR_2(_player,(_target getVariable [ARR_2(QQGVAR(Defibrillator_Patient),nil)]))] call FUNC(AED_Analyze)); showDisabled = 0; icon = QPATHTOF(ui\icon_aed_shock.paa); }; class KAT_AED_Shock { displayName = CSTRING(Defibrillator_Action_Shock); - condition = QUOTE([ARR_2(_player,GVAR(medLvl_AED))] call ACEFUNC(medical_treatment,isMedic) && [ARR_3(_player,_target,3)] call FUNC(AEDXPlaced_CheckCondition)); + condition = QUOTE([ARR_2(_player,GVAR(medLvl_AED))] call ACEFUNC(medical_treatment,isMedic) && [ARR_3(_player,_target,3)] call FUNC(DefibrillatorPlaced_CheckCondition)); statement = QUOTE((_target getVariable [ARR_2(QQGVAR(Defibrillator_Patient),nil)]) setVariable [ARR_3(QQGVAR(Defibrillator_Charged),false,true)]); showDisabled = 0; icon = QPATHTOF(ui\icon_aed_shock.paa); }; class KAT_AED_PlacePads { displayName = CSTRING(AED_Action_PlacePads); - condition = QUOTE([ARR_2(_player,GVAR(medLvl_AED))] call ACEFUNC(medical_treatment,isMedic) && [ARR_2(_player,_target)] call FUNC(AEDXPlaced_CheckCondition)); + condition = QUOTE([ARR_2(_player,GVAR(medLvl_AED))] call ACEFUNC(medical_treatment,isMedic) && [ARR_2(_player,_target)] call FUNC(DefibrillatorPlaced_CheckCondition)); statement = ""; insertChildren = QUOTE([ARR_2(_player,_target)] call FUNC(addDefibrillatorActions)); showDisabled = 0; @@ -64,7 +65,7 @@ class CfgVehicles { }; class KAT_AED_RemovePads: KAT_AED_PlacePads { displayName = CSTRING(Defibrillator_Action_RemovePads); - condition = QUOTE([ARR_2(_player,GVAR(medLvl_AED))] call ACEFUNC(medical_treatment,isMedic) && [ARR_3(_player,_target,4)] call FUNC(AEDXPlaced_CheckCondition)); + condition = QUOTE([ARR_2(_player,GVAR(medLvl_AED))] call ACEFUNC(medical_treatment,isMedic) && [ARR_3(_player,_target,4)] call FUNC(DefibrillatorPlaced_CheckCondition)); statement = QUOTE([ARR_4(_player,(_target getVariable [ARR_2(QQGVAR(Defibrillator_Patient),nil)]),'body','DefibrillatorRemovePads')] call ace_medical_treatment_fnc_treatment); insertChildren = ""; }; @@ -72,17 +73,26 @@ class CfgVehicles { }; }; - class kat_X_AEDItem: kat_AEDItem { + class kat_X_AEDItem: Item_Base_F { + scope = 2; + scopeCurator = 2; displayName = CSTRING(X_Display); + author = "Katalam"; + vehicleClass = "Items"; model = QPATHTOF(models\aedx\aedx.p3d); class TransportItems { MACRO_ADDITEM(kat_X_AED,1); }; + ACEGVAR(dragging,canDrag) = 1; + ACEGVAR(dragging,canCarry) = 1; + ACEGVAR(dragging,dragPosition)[] = {0,1.1,0}; + ACEGVAR(dragging,carryPosition)[] = {0,1.1,1}; + class ACE_Actions { class ACE_MainActions { selection = "interaction_point"; - distance = 4; + distance = 4.2; displayName = CSTRING(X_Display); condition = "true"; class KAT_AED_X_ViewMonitor { @@ -94,55 +104,55 @@ class CfgVehicles { }; class KAT_AED_X_ManualCharge { displayName = CSTRING(Defibrillator_Action_Charge); - condition = QUOTE([ARR_3(_player,_target,7)] call FUNC(AEDXPlaced_CheckCondition)); + condition = QUOTE([ARR_2(_player, GVAR(medLvl_AED_X))] call ACEFUNC(medical_treatment,isMedic) && [ARR_3(_player,_target,7)] call FUNC(DefibrillatorPlaced_CheckCondition)); statement = QUOTE([ARR_2(_player,(_target getVariable [ARR_2(QQGVAR(Defibrillator_Patient),nil)]))] call FUNC(Defibrillator_ManualCharge)); showDisabled = 0; icon = QPATHTOF(ui\icon_aed_shock.paa); }; class KAT_AED_X_CancelCharge { displayName = CSTRING(Defibrillator_Action_CancelCharge); - condition = QUOTE([ARR_3(_player,_target,8)] call FUNC(AEDXPlaced_CheckCondition)); + condition = QUOTE([ARR_2(_player, GVAR(medLvl_AED_X))] call ACEFUNC(medical_treatment,isMedic) && [ARR_3(_player,_target,8)] call FUNC(DefibrillatorPlaced_CheckCondition)); statement = QUOTE((_target getVariable [ARR_2(QQGVAR(Defibrillator_Patient),nil)]) setVariable [ARR_3(QQGVAR(DefibrillatorInUse),false,true)]; (_target getVariable [ARR_2(QQGVAR(Defibrillator_Patient),nil)]) setVariable [ARR_3(QQGVAR(Defibrillator_Charged),false,true)]); showDisabled = 0; icon = QPATHTOF(ui\icon_aed_shock.paa); }; class KAT_AED_X_Shock { displayName = CSTRING(Defibrillator_Action_Shock); - condition = QUOTE([ARR_3(_player,_target,3)] call FUNC(AEDXPlaced_CheckCondition)); + condition = QUOTE([ARR_2(_player, GVAR(medLvl_AED_X))] call ACEFUNC(medical_treatment,isMedic) && [ARR_3(_player,_target,3)] call FUNC(DefibrillatorPlaced_CheckCondition)); statement = QUOTE((_target getVariable QQGVAR(Defibrillator_Patient)) setVariable [ARR_3(QQGVAR(Defibrillator_Charged),false,true)]); showDisabled = 0; icon = QPATHTOF(ui\icon_aed_shock.paa); }; class KAT_AED_X_AnalyzeRhythm { displayName = CSTRING(AnalyzeRhythm); - condition = QUOTE([ARR_3(_player,_target,2)] call FUNC(AEDXPlaced_CheckCondition)); + condition = QUOTE([ARR_2(_player, GVAR(medLvl_AED_X))] call ACEFUNC(medical_treatment,isMedic) && [ARR_3(_player,_target,2)] call FUNC(DefibrillatorPlaced_CheckCondition)); statement = QUOTE([ARR_3(_player,(_target getVariable [ARR_2(QQGVAR(Defibrillator_Patient),nil)]),'AEDX')] call FUNC(AED_Analyze)); showDisabled = 0; icon = QPATHTOF(ui\icon_aed_shock.paa); }; class KAT_AED_X_PlacePads { displayName = CSTRING(AEDX_Action_PlacePads); - condition = QUOTE([ARR_3(_player,_target,1)] call FUNC(AEDXPlaced_CheckCondition)); + condition = QUOTE([ARR_2(_player, GVAR(medLvl_AED_X))] call ACEFUNC(medical_treatment,isMedic) && [ARR_3(_player,_target,1)] call FUNC(DefibrillatorPlaced_CheckCondition)); statement = QUOTE([ARR_5(_player,(_target getVariable QQGVAR(AED_X_VitalsMonitor_Patient)),'body','AEDXStationPlacePads',[_target])] call EFUNC(misc,treatment)); showDisabled = 0; icon = QPATHTOF(ui\icon_aed_pads.paa); }; class KAT_AED_X_PlacePadsTo: KAT_AED_X_PlacePads { displayName = CSTRING(AEDX_Action_PlacePads); - condition = QUOTE([ARR_2(_player,_target)] call FUNC(AEDXPlaced_CheckCondition)); + condition = QUOTE([ARR_2(_player, GVAR(medLvl_AED_X))] call ACEFUNC(medical_treatment,isMedic) && [ARR_2(_player,_target)] call FUNC(DefibrillatorPlaced_CheckCondition)); statement = ""; insertChildren = QUOTE([ARR_3(_player,_target,1)] call FUNC(addDefibrillatorActions)); }; class KAT_AED_X_RemovePads: KAT_AED_X_PlacePads { displayName = CSTRING(Defibrillator_Action_RemovePads); - condition = QUOTE([ARR_3(_player,_target,4)] call FUNC(AEDXPlaced_CheckCondition)); + condition = QUOTE([ARR_2(_player, GVAR(medLvl_AED_X))] call ACEFUNC(medical_treatment,isMedic) && [ARR_3(_player,_target,4)] call FUNC(DefibrillatorPlaced_CheckCondition)); statement = QUOTE([ARR_4(_player,(_target getVariable [ARR_2(QQGVAR(Defibrillator_Patient),nil)]),'body','DefibrillatorRemovePads')] call EFUNC(misc,treatment)); insertChildren = ""; icon = QPATHTOF(ui\icon_aed_pads.paa); }; class KAT_AED_X_ConnectMonitor { displayName = CSTRING(AEDX_Action_ConnectMonitor); - condition = QUOTE([ARR_3(_player,_target,5)] call FUNC(AEDXPlaced_CheckCondition)); + condition = QUOTE([ARR_2(_player, GVAR(medLvl_AED_X))] call ACEFUNC(medical_treatment,isMedic) && [ARR_3(_player,_target,5)] call FUNC(DefibrillatorPlaced_CheckCondition)); statement = QUOTE([ARR_5(_player,(_target getVariable QQGVAR(Defibrillator_Patient)),'rightarm','AEDXStationConnectVitalsMonitor',[_target])] call EFUNC(misc,treatment)); insertChildren = QUOTE([ARR_3(_player,_target,3)] call FUNC(addDefibrillatorActions)); showDisabled = 0; @@ -150,13 +160,13 @@ class CfgVehicles { }; class KAT_AED_X_ConnectMonitorTo: KAT_AED_X_ConnectMonitor { displayName = CSTRING(AEDX_Action_ConnectMonitor); - condition = QUOTE([ARR_2(_player,_target)] call FUNC(AEDXPlaced_CheckCondition)); + condition = QUOTE([ARR_2(_player, GVAR(medLvl_AED_X))] call ACEFUNC(medical_treatment,isMedic) && [ARR_2(_player,_target)] call FUNC(DefibrillatorPlaced_CheckCondition)); statement = ""; insertChildren = QUOTE([ARR_3(_player,_target,2)] call FUNC(addDefibrillatorActions)); }; class KAT_AED_X_DisconnectMonitor { displayName = CSTRING(AEDX_Action_DisconnectMonitor); - condition = QUOTE([ARR_3(_player,_target,6)] call FUNC(AEDXPlaced_CheckCondition)); + condition = QUOTE([ARR_2(_player, GVAR(medLvl_AED_X))] call ACEFUNC(medical_treatment,isMedic) && [ARR_3(_player,_target,6)] call FUNC(DefibrillatorPlaced_CheckCondition)); statement = QUOTE([ARR_4(_player,(_target getVariable QQGVAR(AED_X_VitalsMonitor_Patient)),'rightarm','AEDXDisconnectVitalsMonitor')] call EFUNC(misc,treatment)); showDisabled = 0; icon = QPATHTOF(ui\icon_aed_pads.paa); diff --git a/addons/circulation/XEH_PREP.hpp b/addons/circulation/XEH_PREP.hpp index 96e130458..602bdd79b 100644 --- a/addons/circulation/XEH_PREP.hpp +++ b/addons/circulation/XEH_PREP.hpp @@ -4,7 +4,7 @@ PREP(AED_Charge); PREP(AED_Shock); PREP(AEDX_VitalsMonitor_CheckCondition); PREP(AEDX_VitalsMonitor); -PREP(AEDXPlaced_CheckCondition); +PREP(DefibrillatorPlaced_CheckCondition); PREP(AEDXPlaced_VitalsMonitor_SetVolume); PREP(bloodType); PREP(canDraw); @@ -32,6 +32,7 @@ PREP(handleTreatment); PREP(init); PREP(measureBloodPressure); PREP(onCloseDialog); +PREP(placeAED_PickUpAction); PREP(placeAED); PREP(removeLog); PREP(treatmentAdvanced_IV); diff --git a/addons/circulation/XEH_postInit.sqf b/addons/circulation/XEH_postInit.sqf index a904f59e8..242c63a20 100644 --- a/addons/circulation/XEH_postInit.sqf +++ b/addons/circulation/XEH_postInit.sqf @@ -30,4 +30,6 @@ GVAR(AEDX_MonitorTarget) = objNull; params ["_unit"]; [QACEGVAR(medical,FatalVitals), _unit] call CBA_fnc_localEvent; -}] call CBA_fnc_addEventHandler; \ No newline at end of file +}] call CBA_fnc_addEventHandler; + +[QGVAR(placeAED_initAction), LINKFUNC(placeAED_PickUpAction)] call CBA_fnc_addEventHandler; \ No newline at end of file diff --git a/addons/circulation/XEH_preInit.sqf b/addons/circulation/XEH_preInit.sqf index d42671780..fe37c584c 100644 --- a/addons/circulation/XEH_preInit.sqf +++ b/addons/circulation/XEH_preInit.sqf @@ -133,7 +133,7 @@ PREP_RECOMPILE_END; true ] call CBA_settings_fnc_init; -//Sets medical level required to pick up/use placed AED/X Station +//Sets medical level required to pick up placed AED/X Station [ QGVAR(medLvl_AED_Station_Interact), "LIST", diff --git a/addons/circulation/functions/fnc_AEDXPlaced_CheckCondition.sqf b/addons/circulation/functions/fnc_DefibrillatorPlaced_CheckCondition.sqf similarity index 85% rename from addons/circulation/functions/fnc_AEDXPlaced_CheckCondition.sqf rename to addons/circulation/functions/fnc_DefibrillatorPlaced_CheckCondition.sqf index 3edf0e8ce..451c4c81d 100644 --- a/addons/circulation/functions/fnc_AEDXPlaced_CheckCondition.sqf +++ b/addons/circulation/functions/fnc_DefibrillatorPlaced_CheckCondition.sqf @@ -1,7 +1,7 @@ #include "..\script_component.hpp" /* * Author: Blue - * Checks if placed AED-X can be used (ace actions). + * Checks if placed AED can be used (ace actions). * * Arguments: * 0: Medic @@ -12,7 +12,7 @@ * Can use defibrillator * * Example: - * [player, cursorObject, 0] call kat_circulation_fnc_AEDXPlaced_CheckCondition; + * [player, cursorObject, 0] call kat_circulation_fnc_DefibrillatorPlaced_CheckCondition; * * Public: No */ @@ -55,4 +55,4 @@ switch (_check) do { }; }; -_condition && [_medic, GVAR(medLvl_AED_X)] call ACEFUNC(medical_treatment,isMedic) && {!(_patient getVariable [QEGVAR(airway,recovery), false]) && (isNull objectParent _patient) && {["",_patient] call ACEFUNC(medical_treatment,canCPR)}}; \ No newline at end of file +_condition && {!(_patient getVariable [QEGVAR(airway,recovery), false]) && (isNull objectParent _patient) && {["",_patient] call ACEFUNC(medical_treatment,canCPR)}}; \ No newline at end of file diff --git a/addons/circulation/functions/fnc_placeAED.sqf b/addons/circulation/functions/fnc_placeAED.sqf index e6dab5071..586993406 100644 --- a/addons/circulation/functions/fnc_placeAED.sqf +++ b/addons/circulation/functions/fnc_placeAED.sqf @@ -23,17 +23,15 @@ _unit removeItem _AEDClassName; private _AED = ([_AEDClassName,"Item"] joinString "") createVehicle (position _unit); // startCarry -if (stance _unit != "STAND") then { - _AED attachTo [_unit, [0,1.1,1]]; - [_unit, _AED] call ACEFUNC(dragging,dropObject_carry); +if (stance _unit == "STAND") then { + [_unit, _AED] call ACEFUNC(dragging,startCarry); } else { - _AED attachTo [_unit, [0,0.4,0]]; + _AED attachTo [_unit, [0,1.1,0.1]]; _unit setVariable [QACEGVAR(dragging,isCarrying), true, true]; - [ACEFUNC(dragging,startCarryPFH), 0.2, [_unit, _AED, (CBA_missionTime + 1)]] call CBA_fnc_addPerFrameHandler; + _unit setVariable [QACEGVAR(dragging,carriedObject), _AED, true]; + [_unit, _AED] call ACEFUNC(dragging,dropObject_carry); }; -private _pickUpText = LLSTRING(PickUpAED); - private _patient = _unit getVariable [QGVAR(MedicDefibrillator_Patient), objNull]; if !(_patient isEqualTo objNull) then { @@ -47,8 +45,6 @@ if !(_patient isEqualTo objNull) then { }; if (_AEDClassName == "kat_X_AED") then { - _pickUpText = LLSTRING(PickUpAEDX); - private _monitorPatient = _unit getVariable [QGVAR(AED_X_MedicVitalsMonitor_Patient), objNull]; if !(_monitorPatient isEqualTo objNull) then { @@ -71,62 +67,4 @@ if (_AEDClassName == "kat_X_AED") then { }; }; -private _action = ["AED_pickupAction", -_pickUpText, -"", -{ - params ["_AED", "_medic", "_args"]; - _args params ["_AEDClassName"]; - - _AED setVariable [QGVAR(DefibrillatorInUse), false, true]; - - private _patient = _AED getVariable [QGVAR(Defibrillator_Patient), objNull]; - - - if !(_patient isEqualTo objNull) then { - [_medic, _patient, true] call FUNC(Defibrillator_RemovePads); - - [{ - params ["_medic", "_patient", "_AEDClassName"]; - - [_medic, _patient, 0, _AEDClassName, [], true] call FUNC(Defibrillator_AttachPads); - }, [_medic, _patient, _AEDClassName], 0.1] call CBA_fnc_waitAndExecute; - }; - - if (_AEDClassName == "kat_X_AED") then { - _AED setVariable [QGVAR(AED_X_VitalsMonitor), false, true]; - _medic setVariable [QGVAR(AED_X_VitalsMonitor_Volume), _AED getVariable [QGVAR(AED_X_VitalsMonitor_Volume), false], true]; - - private _patientMonitor = _AED getVariable [QGVAR(AED_X_VitalsMonitor_Patient), objNull]; - - if !(_patientMonitor isEqualTo objNull) then { - private _monitorBodyPart = ALL_BODY_PARTS select ((_patientMonitor getVariable [QGVAR(AED_X_VitalsMonitor_Provider), [objNull, -1, 3]]) select 2); - - [_medic, _patientMonitor, true] call FUNC(AEDX_DisconnectVitalsMonitor); - - [{ - params ["_medic", "_patientMonitor", "_monitorBodyPart"]; - - [_medic, _patientMonitor, _monitorBodyPart, 0, [], true] call FUNC(AEDX_ConnectVitalsMonitor); - }, [_medic, _patientMonitor, _monitorBodyPart], 0.15] call CBA_fnc_waitAndExecute; - }; - }; - - deleteVehicle _AED; - if (_medic canAddItemToUniform _AEDClassName || _medic canAddItemToVest _AEDClassName || _medic canAddItemToBackpack _AEDClassName) then { - _medic addItem _AEDClassName; - } else { - private _droppedAED = createVehicle ["Weapon_Empty", getPosATL _medic, [], 0, "CAN_COLLIDE"]; - _droppedAED addItemCargo [_AEDClassName, 1]; - [ACELLSTRING(Common,Inventory_Full), 1.5, _medic] call ACEFUNC(common,displayTextStructured); - }; -}, -{ - params ["_AED", "_unit"]; - - [_unit, GVAR(medLvl_AED_Station_Interact)] call ACEFUNC(medical_treatment,isMedic) && !((_AED getVariable [QGVAR(Defibrillator_Patient), objNull]) getVariable [QGVAR(DefibrillatorInUse), false]); -}, -{}, -[_AEDClassName] -] call ACEFUNC(interact_menu,createAction); -[_AED, 0, ["ACE_MainActions"], _action] call ACEFUNC(interact_menu,addActionToObject); +[QGVAR(placeAED_initAction), [_AED, _AEDClassName]] call CBA_fnc_globalEvent; \ No newline at end of file diff --git a/addons/circulation/functions/fnc_placeAED_PickUpAction.sqf b/addons/circulation/functions/fnc_placeAED_PickUpAction.sqf new file mode 100644 index 000000000..d9231e078 --- /dev/null +++ b/addons/circulation/functions/fnc_placeAED_PickUpAction.sqf @@ -0,0 +1,85 @@ +#include "..\script_component.hpp" +/* + * Author: Blue + * Add pick up action to AED + * + * Arguments: + * 0: AED + * 1: AED Classname + * + * Return Value: + * None + * + * Example: + * [cursorTarget, 'kat_AED'] call kat_circulation_fnc_placeAED_PickUpAction; + * + * Public: No + */ + +params ["_AED", "_AEDClassName"]; + +private _pickUpText = LLSTRING(PickUpAED); + +if (_AEDClassName == "kat_X_AED") then { + _pickUpText = LLSTRING(PickUpAEDX); +}; + +private _action = ["AED_pickupAction", +_pickUpText, +"", +{ + params ["_AED", "_medic", "_args"]; + _args params ["_AEDClassName"]; + + _AED setVariable [QGVAR(DefibrillatorInUse), false, true]; + + private _patient = _AED getVariable [QGVAR(Defibrillator_Patient), objNull]; + + + if !(_patient isEqualTo objNull) then { + [_medic, _patient, true] call FUNC(Defibrillator_RemovePads); + + [{ + params ["_medic", "_patient", "_AEDClassName"]; + + [_medic, _patient, 0, _AEDClassName, [], true] call FUNC(Defibrillator_AttachPads); + }, [_medic, _patient, _AEDClassName], 0.1] call CBA_fnc_waitAndExecute; + }; + + if (_AEDClassName == "kat_X_AED") then { + _AED setVariable [QGVAR(AED_X_VitalsMonitor), false, true]; + _medic setVariable [QGVAR(AED_X_VitalsMonitor_Volume), _AED getVariable [QGVAR(AED_X_VitalsMonitor_Volume), false], true]; + + private _patientMonitor = _AED getVariable [QGVAR(AED_X_VitalsMonitor_Patient), objNull]; + + if !(_patientMonitor isEqualTo objNull) then { + private _monitorBodyPart = ALL_BODY_PARTS select ((_patientMonitor getVariable [QGVAR(AED_X_VitalsMonitor_Provider), [objNull, -1, 3]]) select 2); + + [_medic, _patientMonitor, true] call FUNC(AEDX_DisconnectVitalsMonitor); + + [{ + params ["_medic", "_patientMonitor", "_monitorBodyPart"]; + + [_medic, _patientMonitor, _monitorBodyPart, 0, [], true] call FUNC(AEDX_ConnectVitalsMonitor); + }, [_medic, _patientMonitor, _monitorBodyPart], 0.15] call CBA_fnc_waitAndExecute; + }; + }; + + deleteVehicle _AED; + if (_medic canAddItemToUniform _AEDClassName || _medic canAddItemToVest _AEDClassName || _medic canAddItemToBackpack _AEDClassName) then { + _medic addItem _AEDClassName; + } else { + private _droppedAED = createVehicle ["Weapon_Empty", getPosATL _medic, [], 0, "CAN_COLLIDE"]; + _droppedAED addItemCargo [_AEDClassName, 1]; + [ACELLSTRING(Common,Inventory_Full), 1.5, _medic] call ACEFUNC(common,displayTextStructured); + }; +}, +{ + params ["_AED", "_unit"]; + + [_unit, GVAR(medLvl_AED_Station_Interact)] call ACEFUNC(medical_treatment,isMedic) && !((_AED getVariable [QGVAR(Defibrillator_Patient), objNull]) getVariable [QGVAR(DefibrillatorInUse), false]); +}, +{}, +[_AEDClassName] +] call ACEFUNC(interact_menu,createAction); +[_AED, 0, ["ACE_MainActions"], _action] call ACEFUNC(interact_menu,addActionToObject); diff --git a/addons/circulation/stringtable.xml b/addons/circulation/stringtable.xml index 9c8388ee2..6b8a1428e 100644 --- a/addons/circulation/stringtable.xml +++ b/addons/circulation/stringtable.xml @@ -1861,13 +1861,7 @@ Permitir la interacción con la estación de DEA/X - Medical level required to pick up/interact with placed AED/X station - 設置AED/Xの取得/利用に必要な医療スキルのレベルを設定します。 - Niveau médical requis pour récupérer/interagir avec la station AED-X placée - 심장충격기 종류를 바닥에 설치하거나 줍는 상호작용을 하는 데 필요한 의료레벨 수준 - Benötigter medizinischer Grad, zum Aufnehmen/Interagieren mit der platzierten AED/X-Station - Nível médico necessário para pegar/interagir com a estação DEA-X colocada - Nivel médico requerido para recoger/interactuar con una estación de DEA/X colocada + Medical level required to pick up placed AED/X station Attach AED-X Vitals Monitor Time