From 66deb59037f3ff49cfdab3ca1a7958e0a7fca849 Mon Sep 17 00:00:00 2001 From: BrettMayson Date: Sun, 1 Oct 2023 12:31:38 -0600 Subject: [PATCH] Medical Treatment - Add event and setting for grave creation (#9441) graves: event and setting for markers Co-authored-by: Grim <69561145+LinkIsGrim@users.noreply.github.com> --- .../functions/fnc_placeInBodyBagOrGrave.sqf | 6 +++++ .../functions/fnc_placeInGrave.sqf | 10 ++++++--- addons/medical_treatment/initSettings.sqf | 13 +++++++++-- addons/medical_treatment/stringtable.xml | 22 ++++++++++++++++--- docs/wiki/framework/events-framework.md | 1 + 5 files changed, 44 insertions(+), 8 deletions(-) diff --git a/addons/medical_treatment/functions/fnc_placeInBodyBagOrGrave.sqf b/addons/medical_treatment/functions/fnc_placeInBodyBagOrGrave.sqf index 33a577da81..850850e631 100644 --- a/addons/medical_treatment/functions/fnc_placeInBodyBagOrGrave.sqf +++ b/addons/medical_treatment/functions/fnc_placeInBodyBagOrGrave.sqf @@ -47,6 +47,10 @@ _direction = _direction + _rotation; // This setPosASL seems to need to be called where the unit is local _patient setPosASL [-5000, -5000, 0]; +if (_restingPlaceClass == "") exitWith { + [_patient, objNull] +}; + // Create the body bag object, set its position to prevent it from flipping private _restingPlace = createVehicle [_restingPlaceClass, [0, 0, 0], [], 0, "NONE"]; _restingPlace setPosASL _position; @@ -55,3 +59,5 @@ _restingPlace setDir _direction; // Server will handle hiding and deleting the body // Keep event name as body bag only to avoid breaking things for others ["ace_placedInBodyBag", [_patient, _restingPlace]] call CBA_fnc_globalEvent; + +[_patient, _restingPlace] diff --git a/addons/medical_treatment/functions/fnc_placeInGrave.sqf b/addons/medical_treatment/functions/fnc_placeInGrave.sqf index 9b6a4d0fb0..b0c8fc3699 100644 --- a/addons/medical_treatment/functions/fnc_placeInGrave.sqf +++ b/addons/medical_treatment/functions/fnc_placeInGrave.sqf @@ -23,9 +23,13 @@ if ((alive _patient) && {GVAR(allowGraveDigging) < 2}) exitWith { [LSTRING(bodybagWhileStillAlive)] call EFUNC(common,displayTextStructured); }; -private _graveClassname = missionNameSpace getVariable [QGVAR(graveClassname), "ACE_Grave"]; +private _graveClassname = ""; +if (GVAR(graveDiggingMarker)) then { + _graveClassname = missionNamespace getVariable [QGVAR(graveClassname), "ACE_Grave"]; +}; private _graveRotation = missionNameSpace getVariable [QGVAR(graveRotation), 0]; -[_this, _graveClassname, [0,0,0], _graveRotation] call FUNC(placeInBodyBagOrGrave); - +["ace_placedInGrave", + [_this, _graveClassname, [0,0,0], _graveRotation] call FUNC(placeInBodyBagOrGrave) +] call CBA_fnc_globalEvent; diff --git a/addons/medical_treatment/initSettings.sqf b/addons/medical_treatment/initSettings.sqf index 18e28608a8..0193a44546 100644 --- a/addons/medical_treatment/initSettings.sqf +++ b/addons/medical_treatment/initSettings.sqf @@ -317,9 +317,18 @@ [ QGVAR(allowGraveDigging), "LIST", - [LSTRING(AllowGaveDigging_DisplayName), LSTRING(AllowGaveDigging_Description)], + [LSTRING(AllowGraveDigging_DisplayName), LSTRING(AllowGraveDigging_Description)], [ELSTRING(medical,Category), LSTRING(SubCategory_Treatment)], - [[0, 1, 2], [ELSTRING(common,Disabled), LSTRING(AllowGaveDigging_graveOnlyDead), ELSTRING(common,Yes)], 1], + [[0, 1, 2], [ELSTRING(common,Disabled), LSTRING(AllowGraveDigging_graveOnlyDead), ELSTRING(common,Yes)], 1], + true +] call CBA_fnc_addSetting; + +[ + QGVAR(graveDiggingMarker), + "CHECKBOX", + [LSTRING(GraveDiggingMarker_DisplayName), LSTRING(GraveDiggingMarker_Description)], + [ELSTRING(medical,Category), LSTRING(SubCategory_Treatment)], + true, true ] call CBA_fnc_addSetting; diff --git a/addons/medical_treatment/stringtable.xml b/addons/medical_treatment/stringtable.xml index 04c0e33a1d..0f3694a49f 100644 --- a/addons/medical_treatment/stringtable.xml +++ b/addons/medical_treatment/stringtable.xml @@ -835,20 +835,36 @@ 能够将昏迷的伤员装入尸袋中。 기절상태의 인원을 시체운반용부대에 옮겨 담을 수 있는지를 정합니다. - + Allow Grave Digging Zezwalaj na kopanie grobów 무덤 파기 허용 + Erlaube Graben von Gräbern + Permitir cavar tumbas - + Enables digging graves to dispose of corpses. Umożliwia kopanie grobów w celu pozbycia się zwłok. 시체를 처리하기 위해 무덤을 파는 것을 허용합니다. + Erlaubt das Graben von Gräbern um Leichen zu entsorgen. + Habilita cavar tumbas para deshacerse de los cadáveres. - + Only if dead Tylko kiedy martwy 죽었을 때에만 + Nur wenn tot + Solo si está muerto + + + Create Grave Markers + Erstelle Grabmal + Crear Tumba + + + Enables the creation of grave markers when digging graves. + Erstellt Grabmale beim Graben von Gräbern. + Habilita la creación de Tumbas al cavar tumbas. Allow IV Transfusion diff --git a/docs/wiki/framework/events-framework.md b/docs/wiki/framework/events-framework.md index 99752735c0..a2d7f491c5 100644 --- a/docs/wiki/framework/events-framework.md +++ b/docs/wiki/framework/events-framework.md @@ -37,6 +37,7 @@ The vehicle events will also have the following local variables available `_gunn |----------|---------|---------|---------|---------|---------| |`ace_unconscious` | [_unit, _state(BOOL)] | Global | Listen | Unit's unconscious state changed |`ace_placedInBodyBag` | [_target, _bodyBag] | Global | Listen | Target placed into a bodybag Note: (Target will soon be deleted) +|`ace_placedInGrave` | [_target, _grave] | Global | Listen | Target placed into a grave, _grave will be objNull if `Create Grave Markers` is disabled Note: (Target will soon be deleted) |`ace_treatmentStarted` | [_caller, _target, _selectionName, _className, _itemUser, _usedItem] | Local | Listen | Treatment action has started (local on the _caller) |`ace_treatmentSucceded` | [_caller, _target, _selectionName, _className, _itemUser, _usedItem] | Local | Listen | Treatment action is completed (local on the _caller) |`ace_treatmentFailed` | [_caller, _target, _selectionName, _className, _itemUser, _usedItem] | Local | Listen | Treatment action has been interrupted (local on the _caller)