mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
Added litter for medical treatment
This commit is contained in:
@ -22,6 +22,7 @@ class ACE_Medical_Actions {
|
|||||||
animationCallerProne = "AinvPpneMstpSlayW[wpn]Dnon_medic";
|
animationCallerProne = "AinvPpneMstpSlayW[wpn]Dnon_medic";
|
||||||
animationCallerSelf = "AinvPknlMstpSlayW[wpn]Dnon_medic";
|
animationCallerSelf = "AinvPknlMstpSlayW[wpn]Dnon_medic";
|
||||||
animationCallerSelfProne = "AinvPpneMstpSlayW[wpn]Dnon_medic";
|
animationCallerSelfProne = "AinvPpneMstpSlayW[wpn]Dnon_medic";
|
||||||
|
litter[] = {{"ACE_MedicalLitterBase", "ACE_MedicalLitter_bandage1", "ACE_MedicalLitter_bandage2", "ACE_MedicalLitter_bandage3"}};
|
||||||
};
|
};
|
||||||
class Morphine: Bandage {
|
class Morphine: Bandage {
|
||||||
displayName = "$STR_ACE_Medical_Inject_Morphine";
|
displayName = "$STR_ACE_Medical_Inject_Morphine";
|
||||||
@ -30,6 +31,7 @@ class ACE_Medical_Actions {
|
|||||||
items[] = {"ACE_morphine"};
|
items[] = {"ACE_morphine"};
|
||||||
callbackSuccess = QUOTE(DFUNC(treatmentBasic_morphine));
|
callbackSuccess = QUOTE(DFUNC(treatmentBasic_morphine));
|
||||||
animationCaller = "AinvPknlMstpSnonWnonDnon_medic1";
|
animationCaller = "AinvPknlMstpSnonWnonDnon_medic1";
|
||||||
|
litter[] = {};
|
||||||
};
|
};
|
||||||
class Epinephrine: Bandage {
|
class Epinephrine: Bandage {
|
||||||
displayName = "$STR_ACE_Medical_Inject_Epinephrine";
|
displayName = "$STR_ACE_Medical_Inject_Epinephrine";
|
||||||
@ -39,6 +41,7 @@ class ACE_Medical_Actions {
|
|||||||
items[] = {"ACE_epinephrine"};
|
items[] = {"ACE_epinephrine"};
|
||||||
callbackSuccess = QUOTE(DFUNC(treatmentBasic_epipen));
|
callbackSuccess = QUOTE(DFUNC(treatmentBasic_epipen));
|
||||||
animationCaller = "AinvPknlMstpSnonWnonDnon_medic1";
|
animationCaller = "AinvPknlMstpSnonWnonDnon_medic1";
|
||||||
|
litter[] = {};
|
||||||
};
|
};
|
||||||
class BloodIV: Bandage {
|
class BloodIV: Bandage {
|
||||||
displayName = "$STR_ACE_Medical_Transfuse_Blood";
|
displayName = "$STR_ACE_Medical_Transfuse_Blood";
|
||||||
@ -48,6 +51,7 @@ class ACE_Medical_Actions {
|
|||||||
items[] = {{"ACE_bloodIV", "ACE_bloodIV_500", "ACE_bloodIV_250"}};
|
items[] = {{"ACE_bloodIV", "ACE_bloodIV_500", "ACE_bloodIV_250"}};
|
||||||
callbackSuccess = QUOTE(DFUNC(treatmentBasic_bloodbag));
|
callbackSuccess = QUOTE(DFUNC(treatmentBasic_bloodbag));
|
||||||
animationCaller = "AinvPknlMstpSnonWnonDnon_medic1";
|
animationCaller = "AinvPknlMstpSnonWnonDnon_medic1";
|
||||||
|
litter[] = {};
|
||||||
};
|
};
|
||||||
class Tourniquet: Bandage {
|
class Tourniquet: Bandage {
|
||||||
displayName = "$STR_ACE_Medical_Apply_Tourniquet";
|
displayName = "$STR_ACE_Medical_Apply_Tourniquet";
|
||||||
@ -56,6 +60,7 @@ class ACE_Medical_Actions {
|
|||||||
treatmentTime = 6;
|
treatmentTime = 6;
|
||||||
callbackSuccess = QUOTE(DFUNC(treatmentTourniquet));
|
callbackSuccess = QUOTE(DFUNC(treatmentTourniquet));
|
||||||
condition = QUOTE(!([ARR_2(_this select 1, _this select 2)] call FUNC(hasTourniquetAppliedTo)));
|
condition = QUOTE(!([ARR_2(_this select 1, _this select 2)] call FUNC(hasTourniquetAppliedTo)));
|
||||||
|
litter[] = {};
|
||||||
};
|
};
|
||||||
class BodyBag: Bandage {
|
class BodyBag: Bandage {
|
||||||
displayName = "$STR_ACE_MEDICAL_PlaceInBodyBag";
|
displayName = "$STR_ACE_MEDICAL_PlaceInBodyBag";
|
||||||
@ -70,6 +75,7 @@ class ACE_Medical_Actions {
|
|||||||
callbackProgress = "";
|
callbackProgress = "";
|
||||||
animationPatient = "";
|
animationPatient = "";
|
||||||
itemConsumed = 0;
|
itemConsumed = 0;
|
||||||
|
litter[] = {};
|
||||||
};
|
};
|
||||||
class PersonalAidKit: Bandage {
|
class PersonalAidKit: Bandage {
|
||||||
displayName = "";
|
displayName = "";
|
||||||
@ -81,6 +87,7 @@ class ACE_Medical_Actions {
|
|||||||
callbackSuccess = QUOTE(DFUNC(treatmentAdvanced_fullHeal));
|
callbackSuccess = QUOTE(DFUNC(treatmentAdvanced_fullHeal));
|
||||||
itemConsumed = 0;
|
itemConsumed = 0;
|
||||||
animationCaller = "AinvPknlMstpSnonWnonDnon_medic1";
|
animationCaller = "AinvPknlMstpSnonWnonDnon_medic1";
|
||||||
|
litter[] = {"ACE_MedicalLitter_gloves", {"ACE_MedicalLitterBase", "ACE_MedicalLitter_bandage1", "ACE_MedicalLitter_bandage2", "ACE_MedicalLitter_bandage3"}, {"ACE_MedicalLitterBase", "ACE_MedicalLitter_bandage1", "ACE_MedicalLitter_bandage2", "ACE_MedicalLitter_bandage3"}};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -107,6 +114,7 @@ class ACE_Medical_Actions {
|
|||||||
animationCallerProne = "AinvPpneMstpSlayW[wpn]Dnon_medic";
|
animationCallerProne = "AinvPpneMstpSlayW[wpn]Dnon_medic";
|
||||||
animationCallerSelf = "AinvPknlMstpSlayW[wpn]Dnon_medic";
|
animationCallerSelf = "AinvPknlMstpSlayW[wpn]Dnon_medic";
|
||||||
animationCallerSelfProne = "AinvPpneMstpSlayW[wpn]Dnon_medic";
|
animationCallerSelfProne = "AinvPpneMstpSlayW[wpn]Dnon_medic";
|
||||||
|
litter[] = {{"ACE_MedicalLitterBase", "ACE_MedicalLitter_bandage1", "ACE_MedicalLitter_bandage2", "ACE_MedicalLitter_bandage3"}};
|
||||||
};
|
};
|
||||||
class PackingBandage: fieldDressing {
|
class PackingBandage: fieldDressing {
|
||||||
items[] = {"ACE_packingBandage"};
|
items[] = {"ACE_packingBandage"};
|
||||||
@ -124,6 +132,7 @@ class ACE_Medical_Actions {
|
|||||||
treatmentTime = 6;
|
treatmentTime = 6;
|
||||||
callbackSuccess = QUOTE(DFUNC(treatmentTourniquet));
|
callbackSuccess = QUOTE(DFUNC(treatmentTourniquet));
|
||||||
condition = QUOTE(!([ARR_2(_this select 1, _this select 2)] call FUNC(hasTourniquetAppliedTo)));
|
condition = QUOTE(!([ARR_2(_this select 1, _this select 2)] call FUNC(hasTourniquetAppliedTo)));
|
||||||
|
litter[] = {};
|
||||||
};
|
};
|
||||||
class Morphine: fieldDressing {
|
class Morphine: fieldDressing {
|
||||||
displayName = "$STR_ACE_Medical_Inject_Morphine";
|
displayName = "$STR_ACE_Medical_Inject_Morphine";
|
||||||
@ -132,16 +141,19 @@ class ACE_Medical_Actions {
|
|||||||
treatmentTime = 3;
|
treatmentTime = 3;
|
||||||
callbackSuccess = QUOTE(DFUNC(treatmentAdvanced_medication));
|
callbackSuccess = QUOTE(DFUNC(treatmentAdvanced_medication));
|
||||||
animationCaller = "AinvPknlMstpSnonWnonDnon_medic1";
|
animationCaller = "AinvPknlMstpSnonWnonDnon_medic1";
|
||||||
|
litter[] = {};
|
||||||
};
|
};
|
||||||
class Atropine: Morphine {
|
class Atropine: Morphine {
|
||||||
displayName = "$STR_ACE_Medical_Inject_Atropine";
|
displayName = "$STR_ACE_Medical_Inject_Atropine";
|
||||||
displayNameProgress = "$STR_ACE_Medical_Injecting_Atropine";
|
displayNameProgress = "$STR_ACE_Medical_Injecting_Atropine";
|
||||||
items[] = {"ACE_atropine"};
|
items[] = {"ACE_atropine"};
|
||||||
|
litter[] = {};
|
||||||
};
|
};
|
||||||
class Epinephrine: Morphine {
|
class Epinephrine: Morphine {
|
||||||
displayName = "$STR_ACE_Medical_Inject_Epinephrine";
|
displayName = "$STR_ACE_Medical_Inject_Epinephrine";
|
||||||
displayNameProgress = "$STR_ACE_Medical_Injecting_Epinephrine";
|
displayNameProgress = "$STR_ACE_Medical_Injecting_Epinephrine";
|
||||||
items[] = {"ACE_epinephrine"};
|
items[] = {"ACE_epinephrine"};
|
||||||
|
litter[] = {};
|
||||||
};
|
};
|
||||||
class BloodIV: fieldDressing {
|
class BloodIV: fieldDressing {
|
||||||
displayName = "$STR_ACE_Medical_Transfuse_Blood";
|
displayName = "$STR_ACE_Medical_Transfuse_Blood";
|
||||||
@ -151,6 +163,7 @@ class ACE_Medical_Actions {
|
|||||||
treatmentTime = 7;
|
treatmentTime = 7;
|
||||||
callbackSuccess = QUOTE(DFUNC(treatmentIV));
|
callbackSuccess = QUOTE(DFUNC(treatmentIV));
|
||||||
animationCaller = "AinvPknlMstpSnonWnonDnon_medic1";
|
animationCaller = "AinvPknlMstpSnonWnonDnon_medic1";
|
||||||
|
litter[] = {};
|
||||||
};
|
};
|
||||||
class BloodIV_500: BloodIV {
|
class BloodIV_500: BloodIV {
|
||||||
items[] = {"ACE_bloodIV_500"};
|
items[] = {"ACE_bloodIV_500"};
|
||||||
@ -192,6 +205,7 @@ class ACE_Medical_Actions {
|
|||||||
callbackSuccess = QUOTE(DFUNC(treatmentAdvanced_surgicalKit));
|
callbackSuccess = QUOTE(DFUNC(treatmentAdvanced_surgicalKit));
|
||||||
itemConsumed = 0;
|
itemConsumed = 0;
|
||||||
animationCaller = "AinvPknlMstpSnonWnonDnon_medic1";
|
animationCaller = "AinvPknlMstpSnonWnonDnon_medic1";
|
||||||
|
litter[] = {"ACE_MedicalLitter_gloves"};
|
||||||
};
|
};
|
||||||
class PersonalAidKit: fieldDressing {
|
class PersonalAidKit: fieldDressing {
|
||||||
displayName = "";
|
displayName = "";
|
||||||
@ -203,6 +217,7 @@ class ACE_Medical_Actions {
|
|||||||
callbackSuccess = QUOTE(DFUNC(treatmentAdvanced_fullHeal));
|
callbackSuccess = QUOTE(DFUNC(treatmentAdvanced_fullHeal));
|
||||||
itemConsumed = 0;
|
itemConsumed = 0;
|
||||||
animationCaller = "AinvPknlMstpSnonWnonDnon_medic1";
|
animationCaller = "AinvPknlMstpSnonWnonDnon_medic1";
|
||||||
|
litter[] = {"ACE_MedicalLitter_gloves", {"ACE_MedicalLitterBase", "ACE_MedicalLitter_bandage1", "ACE_MedicalLitter_bandage2", "ACE_MedicalLitter_bandage3"}, {"ACE_MedicalLitterBase", "ACE_MedicalLitter_bandage1", "ACE_MedicalLitter_bandage2", "ACE_MedicalLitter_bandage3"}};
|
||||||
};
|
};
|
||||||
class CheckPulse: fieldDressing {
|
class CheckPulse: fieldDressing {
|
||||||
displayName = "";
|
displayName = "";
|
||||||
@ -217,6 +232,7 @@ class ACE_Medical_Actions {
|
|||||||
animationPatient = "";
|
animationPatient = "";
|
||||||
animationCaller = ""; // TODO
|
animationCaller = ""; // TODO
|
||||||
itemConsumed = 0;
|
itemConsumed = 0;
|
||||||
|
litter[] = {};
|
||||||
};
|
};
|
||||||
class CheckBloodPressure: CheckPulse {
|
class CheckBloodPressure: CheckPulse {
|
||||||
callbackSuccess = QUOTE(DFUNC(actionCheckBloodPressure));
|
callbackSuccess = QUOTE(DFUNC(actionCheckBloodPressure));
|
||||||
@ -243,6 +259,7 @@ class ACE_Medical_Actions {
|
|||||||
animationPatient = "";
|
animationPatient = "";
|
||||||
animationCaller = ""; // TODO
|
animationCaller = ""; // TODO
|
||||||
itemConsumed = 0;
|
itemConsumed = 0;
|
||||||
|
litter[] = {};
|
||||||
};
|
};
|
||||||
class BodyBag: fieldDressing {
|
class BodyBag: fieldDressing {
|
||||||
displayName = "$STR_ACE_MEDICAL_PlaceInBodyBag";
|
displayName = "$STR_ACE_MEDICAL_PlaceInBodyBag";
|
||||||
@ -257,6 +274,7 @@ class ACE_Medical_Actions {
|
|||||||
callbackProgress = "";
|
callbackProgress = "";
|
||||||
animationPatient = "";
|
animationPatient = "";
|
||||||
itemConsumed = 0;
|
itemConsumed = 0;
|
||||||
|
litter[] = {};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -1689,6 +1689,29 @@ class CfgVehicles {
|
|||||||
icon = "";
|
icon = "";
|
||||||
displayName = $STR_ACE_MEDICAL_BODYBAG_DISPLAY;
|
displayName = $STR_ACE_MEDICAL_BODYBAG_DISPLAY;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Medical litter classes
|
||||||
|
class Thing;
|
||||||
|
class ACE_MedicalLitterBase: Thing {
|
||||||
|
scope = 1;
|
||||||
|
displayName = " ";
|
||||||
|
destrType = "DestructNo";
|
||||||
|
model = QUOTE(PATHTOF(data\littergeneric.p3d));
|
||||||
|
};
|
||||||
|
class ACE_MedicalLitter_bandage1: ACE_MedicalLitterBase {
|
||||||
|
model = QUOTE(PATHTOF(data\littergeneric_bandages1.p3d));
|
||||||
|
};
|
||||||
|
class ACE_MedicalLitter_bandage2: ACE_MedicalLitterBase {
|
||||||
|
model = QUOTE(PATHTOF(data\littergeneric_bandages2.p3d));
|
||||||
|
};
|
||||||
|
class ACE_MedicalLitter_bandage3: ACE_MedicalLitterBase {
|
||||||
|
model = QUOTE(PATHTOF(data\littergeneric_bandages3.p3d));
|
||||||
|
};
|
||||||
|
class ACE_MedicalLitter_gloves: ACE_MedicalLitterBase {
|
||||||
|
model = QUOTE(PATHTOF(data\littergeneric_gloves.p3d));
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
class Item_Base_F;
|
class Item_Base_F;
|
||||||
class ACE_fieldDressingItem: Item_Base_F {
|
class ACE_fieldDressingItem: Item_Base_F {
|
||||||
scope = 2;
|
scope = 2;
|
||||||
|
@ -25,7 +25,7 @@ class CfgWeapons {
|
|||||||
class ACE_ItemCore;
|
class ACE_ItemCore;
|
||||||
class ACE_fieldDressing: ACE_ItemCore {
|
class ACE_fieldDressing: ACE_ItemCore {
|
||||||
scope = 2;
|
scope = 2;
|
||||||
model = "\A3\Structures_F_EPA\Items\Medical\Bandage_F.p3d";
|
model = QUOTE(PATHTOF(data\bandage.p3d));
|
||||||
picture = QUOTE(PATHTOF(ui\items\fieldDressing.paa));
|
picture = QUOTE(PATHTOF(ui\items\fieldDressing.paa));
|
||||||
displayName = $STR_ACE_MEDICAL_BANDAGE_BASIC_DISPLAY;
|
displayName = $STR_ACE_MEDICAL_BANDAGE_BASIC_DISPLAY;
|
||||||
descriptionShort = $STR_ACE_MEDICAL_BANDAGE_BASIC_DESC_SHORT;
|
descriptionShort = $STR_ACE_MEDICAL_BANDAGE_BASIC_DESC_SHORT;
|
||||||
|
@ -23,6 +23,7 @@ PREP(canAccessMedicalEquipment);
|
|||||||
PREP(canTreat);
|
PREP(canTreat);
|
||||||
PREP(canTreatCached);
|
PREP(canTreatCached);
|
||||||
PREP(canCarry);
|
PREP(canCarry);
|
||||||
|
PREP(createLitter);
|
||||||
PREP(determineIfFatal);
|
PREP(determineIfFatal);
|
||||||
PREP(getBloodLoss);
|
PREP(getBloodLoss);
|
||||||
PREP(getBloodPressure);
|
PREP(getBloodPressure);
|
||||||
|
BIN
addons/medical/data/ace_gloves_ca.paa
Normal file
BIN
addons/medical/data/ace_gloves_ca.paa
Normal file
Binary file not shown.
BIN
addons/medical/data/ace_littergeneric1_co.paa
Normal file
BIN
addons/medical/data/ace_littergeneric1_co.paa
Normal file
Binary file not shown.
BIN
addons/medical/data/littergeneric.p3d
Normal file
BIN
addons/medical/data/littergeneric.p3d
Normal file
Binary file not shown.
BIN
addons/medical/data/littergeneric_bandages1.p3d
Normal file
BIN
addons/medical/data/littergeneric_bandages1.p3d
Normal file
Binary file not shown.
BIN
addons/medical/data/littergeneric_bandages2.p3d
Normal file
BIN
addons/medical/data/littergeneric_bandages2.p3d
Normal file
Binary file not shown.
BIN
addons/medical/data/littergeneric_bandages3.p3d
Normal file
BIN
addons/medical/data/littergeneric_bandages3.p3d
Normal file
Binary file not shown.
BIN
addons/medical/data/littergeneric_gloves.p3d
Normal file
BIN
addons/medical/data/littergeneric_gloves.p3d
Normal file
Binary file not shown.
58
addons/medical/functions/fnc_createLitter.sqf
Normal file
58
addons/medical/functions/fnc_createLitter.sqf
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
/*
|
||||||
|
* Author: Glowbal
|
||||||
|
* Spawns litter for the treatment action on the ground around the target
|
||||||
|
*
|
||||||
|
* Arguments:
|
||||||
|
* 0: The target <OBJECT>
|
||||||
|
* 1: The treatment classname <STRING>
|
||||||
|
*
|
||||||
|
* Return Value:
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* Public: No
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "script_component.hpp"
|
||||||
|
|
||||||
|
private ["_target", "_className", "_config", "_litter", "_createLitter", "_litterObject", "_position", "_createdLitter"];
|
||||||
|
_target = _this select 0;
|
||||||
|
_className = _this select 1;
|
||||||
|
|
||||||
|
_config = (configFile >> "ACE_Medical_Actions" >> "Basic" >> _className);
|
||||||
|
if (GVAR(level) >= 2) then {
|
||||||
|
_config = (configFile >> "ACE_Medical_Actions" >> "Advanced" >> _className);
|
||||||
|
};
|
||||||
|
if !(isClass _config) exitwith {false};
|
||||||
|
|
||||||
|
|
||||||
|
if !(isArray (_config >> "litter")) exitwith {};
|
||||||
|
_litter = getArray (_config >> "litter");
|
||||||
|
|
||||||
|
_createLitter = {
|
||||||
|
_position = getPos (_this select 0);
|
||||||
|
_litterClass = _this select 1;
|
||||||
|
_litterObject = createVehicle [_litterClass, _position, [], 0, "NONE"];
|
||||||
|
_litterObject setPos [(_position select 0) + random 0.5, (_position select 1) + random 1.2, _position select 2];
|
||||||
|
_litterObject setDir (random 360);
|
||||||
|
_litterObject;
|
||||||
|
};
|
||||||
|
|
||||||
|
_createdLitter = [];
|
||||||
|
{
|
||||||
|
if (typeName _x == "ARRAY") then {
|
||||||
|
{
|
||||||
|
if (typeName _x == "STRING") exitwith {
|
||||||
|
_createdLitter pushback ([_target, _x] call _createLitter);
|
||||||
|
};
|
||||||
|
}foreach _x;
|
||||||
|
};
|
||||||
|
if (typeName _x == "STRING") then {
|
||||||
|
_createdLitter pushback ([_target, _x] call _createLitter);
|
||||||
|
};
|
||||||
|
}foreach _litter;
|
||||||
|
|
||||||
|
[{
|
||||||
|
{
|
||||||
|
deleteVehicle _x;
|
||||||
|
}foreach (_this select 0);
|
||||||
|
}, [_createdLitter], 1800, 0] call EFUNC(common,waitAndExecute);
|
@ -50,3 +50,5 @@ if (isNil _callback) then {
|
|||||||
};
|
};
|
||||||
|
|
||||||
_args call _callback;
|
_args call _callback;
|
||||||
|
|
||||||
|
[_target, _className] call FUNC(createLitter);
|
||||||
|
@ -44,3 +44,5 @@ if (isNil _callback) then {
|
|||||||
};
|
};
|
||||||
|
|
||||||
_args call _callback;
|
_args call _callback;
|
||||||
|
|
||||||
|
[_target, _className] call FUNC(createLitter);
|
||||||
|
Reference in New Issue
Block a user