From 66cc3a85aae940050458e342c5319f3610159c32 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Wed, 4 Sep 2024 19:23:00 -0700 Subject: [PATCH 001/149] Initial --- addons/pharma/ACE_Medical_Treatment.hpp | 72 ++++++++++++ .../pharma/ACE_Medical_Treatment_Actions.hpp | 59 ++++++++++ addons/pharma/CfgWeapons.hpp | 110 ++++++++++++++++++ addons/pharma/config.cpp | 4 + addons/pharma/stringtable.xml | 82 +++++++++++++ 5 files changed, 327 insertions(+) diff --git a/addons/pharma/ACE_Medical_Treatment.hpp b/addons/pharma/ACE_Medical_Treatment.hpp index 4e96f8865..a42e97b77 100644 --- a/addons/pharma/ACE_Medical_Treatment.hpp +++ b/addons/pharma/ACE_Medical_Treatment.hpp @@ -335,5 +335,77 @@ class ACE_ADDON(Medical_Treatment) { onOverDose = ""; maxRelief = 0.6; }; + class 5ml_syringe_txa_1 { + painReduce = 0; + hrIncreaseLow[] = {0, 0}; + hrIncreaseNormal[] = {0, 0}; + hrIncreaseHigh[] = {0, 0}; + timeInSystem = 120; + timeTillMaxEffect = 5; + maxDose = 3; + incompatibleMedication[] = {}; + viscosityChange = 0; + onOverDose = ""; + }; + class 5ml_syringe_txa_2 { + painReduce = 0; + hrIncreaseLow[] = {0, 0}; + hrIncreaseNormal[] = {0, 0}; + hrIncreaseHigh[] = {0, 0}; + timeInSystem = 120; + timeTillMaxEffect = 5; + maxDose = 3; + incompatibleMedication[] = {}; + viscosityChange = 0; + onOverDose = ""; + }; + class 10ml_syringe_txa_1 { + painReduce = 0; + hrIncreaseLow[] = {0, 0}; + hrIncreaseNormal[] = {0, 0}; + hrIncreaseHigh[] = {0, 0}; + timeInSystem = 120; + timeTillMaxEffect = 5; + maxDose = 3; + incompatibleMedication[] = {}; + viscosityChange = 0; + onOverDose = ""; + }; + class 10ml_syringe_txa_2 { + painReduce = 0; + hrIncreaseLow[] = {0, 0}; + hrIncreaseNormal[] = {0, 0}; + hrIncreaseHigh[] = {0, 0}; + timeInSystem = 120; + timeTillMaxEffect = 5; + maxDose = 3; + incompatibleMedication[] = {}; + viscosityChange = 0; + onOverDose = ""; + }; + class 5ml_syringe_eaca_1 { + painReduce = 0; + hrIncreaseLow[] = {0, 0}; + hrIncreaseNormal[] = {0, 0}; + hrIncreaseHigh[] = {0, 0}; + timeInSystem = 600; + timeTillMaxEffect = 15; + maxDose = 10; + incompatibleMedication[] = {}; + viscosityChange = 0; + onOverDose = ""; + }; + class 5ml_syringe_eaca_2 { + painReduce = 0; + hrIncreaseLow[] = {0, 0}; + hrIncreaseNormal[] = {0, 0}; + hrIncreaseHigh[] = {0, 0}; + timeInSystem = 600; + timeTillMaxEffect = 15; + maxDose = 10; + incompatibleMedication[] = {}; + viscosityChange = 0; + onOverDose = ""; + }; }; }; diff --git a/addons/pharma/ACE_Medical_Treatment_Actions.hpp b/addons/pharma/ACE_Medical_Treatment_Actions.hpp index 66c4ee124..17ed53436 100644 --- a/addons/pharma/ACE_Medical_Treatment_Actions.hpp +++ b/addons/pharma/ACE_Medical_Treatment_Actions.hpp @@ -413,4 +413,63 @@ class ACE_Medical_Treatment_Actions { callbackSuccess = QFUNC(treatmentAdvanced_CheckCoag); litter[] = {}; }; + class EACA_IV_1: Carbonate { + displayName = CSTRING(push_EACA_1); + allowedSelections[] = {"Body", "LeftArm", "RightArm", "LeftLeg", "RightLeg"}; + allowSelfTreatment = 1; + medicRequired = QGVAR(medLvl_EACA); + treatmentTime = QGVAR(treatmentTime_EACA); + items[] = {"kat_5ml_syringe_eaca_1"}; + condition = QUOTE(!(GVAR(MedicationsRequireInsIV)) || FUNC(removeIV)); + callbackSuccess = QFUNC(medication); + sounds[] = {}; + }; + class EACA_IV_2: EACA_IV_1 { + displayName = CSTRING(take_EACA_2); + allowedSelections[] = {"Body", "LeftArm", "RightArm", "LeftLeg", "RightLeg"}; + allowSelfTreatment = 1; + medicRequired = QGVAR(medLvl_EACA); + treatmentTime = QGVAR(treatmentTime_EACA); + items[] = {"kat_5ml_syringe_eaca_2"}; + callbackSuccess = QFUNC(medication); + sounds[] = {}; + }; + class TXA_IM_1: Carbonate { + displayName = CSTRING(take_TXA_1); + allowedSelections[] = {"LeftArm", "RightArm", "LeftLeg", "RightLeg"}; + allowSelfTreatment = 1; + medicRequired = QGVAR(medLvl_EACA); + treatmentTime = QGVAR(treatmentTime_EACA); + items[] = {"kat_10ml_syringe_txa_1"}; + callbackSuccess = QFUNC(medication); + sounds[] = {}; + }; + class TXA_IM_2: TXA_IM_1 { + displayName = CSTRING(take_TXA_2); + allowedSelections[] = {"LeftArm", "RightArm", "LeftLeg", "RightLeg"}; + allowSelfTreatment = 1; + medicRequired = QGVAR(medLvl_EACA); + treatmentTime = QGVAR(treatmentTime_EACA); + items[] = {"kat_10ml_syringe_txa_2"}; + callbackSuccess = QFUNC(medication); + sounds[] = {}; + }; + class TXA_IV_1: EACA { + displayName = CSTRING(Take_TXA); + allowedSelections[] = {"Body", "LeftArm", "RightArm", "LeftLeg", "RightLeg"}; + allowSelfTreatment = 1; + medicRequired = QGVAR(medLvl_TXA); + treatmentTime = QGVAR(treatmentTime_TXA); + condition = QUOTE(!(GVAR(MedicationsRequireInsIV)) || FUNC(removeIV)); + items[] = {"kat_5ml_syringe_txa_1"}; + callbackSuccess = QFUNC(medication); + sounds[] = {}; + }; + class TXA_IV_2: TXA_IV_1 { + displayName = CSTRING(Take_TXA); + items[] = {"kat_5ml_syringe_txa_2"}; + callbackSuccess = QFUNC(medication); + sounds[] = {}; + }; + }; diff --git a/addons/pharma/CfgWeapons.hpp b/addons/pharma/CfgWeapons.hpp index 35c66fdd1..3576176dd 100644 --- a/addons/pharma/CfgWeapons.hpp +++ b/addons/pharma/CfgWeapons.hpp @@ -13,6 +13,28 @@ class CfgWeapons { mass = 0.5; }; }; + class kat_IV_14: ACE_ItemCore { + scope = 2; + displayName = CSTRING(IV_14_Display); + picture = QPATHTOF(ui\icon_IV_16.paa); + model = QPATHTOF(models\iv\kat_iv.p3d); + descriptionShort = CSTRING(IV_DescShort); + ACE_isMedicalItem = 1; + class ItemInfo: CBA_MiscItem_ItemInfo { + mass = 0.5; + }; + }; + class kat_IV_20: ACE_ItemCore { + scope = 2; + displayName = CSTRING(IV_20_Display); + picture = QPATHTOF(ui\icon_IV_16.paa); + model = QPATHTOF(models\iv\kat_iv.p3d); + descriptionShort = CSTRING(IV_DescShort); + ACE_isMedicalItem = 1; + class ItemInfo: CBA_MiscItem_ItemInfo { + mass = 0.5; + }; + }; class kat_IO_FAST: ACE_ItemCore { scope = 2; displayName = CSTRING(IO_45_Display); @@ -24,6 +46,28 @@ class CfgWeapons { mass = 0.5; }; }; + class kat_10ml_syringe: ACE_ItemCore { + scope = 2; + displayName = CSTRING(Syringe_10_Display); + picture = QPATHTOF(ui\icon_fast_io.paa); + model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; + descriptionShort = CSTRING(Syringe_10_DescShort); + ACE_isMedicalItem = 1; + class ItemInfo: CBA_MiscItem_ItemInfo { + mass = 1; + }; + }; + class kat_5ml_syringe: ACE_ItemCore { + scope = 2; + displayName = CSTRING(Syringe_5_Display); + picture = QPATHTOF(ui\icon_fast_io.paa); + model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; + descriptionShort = CSTRING(Syringe_5_DescShort); + ACE_isMedicalItem = 1; + class ItemInfo: CBA_MiscItem_ItemInfo { + mass = 1; + }; + }; class kat_naloxone: ACE_ItemCore { scope = 2; displayName = CSTRING(Naloxone_Box_Display); @@ -223,4 +267,70 @@ class CfgWeapons { mass = 1; }; }; + class kat_10ml_syringe_txa_1: ACE_ItemCore { + scope = 1; + displayName = CSTRING(Syringe_10_txa_1_Display); + picture = QPATHTOF(ui\icon_fast_io.paa); + model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; + descriptionShort = CSTRING(Syringe_10_txa_1_DescShort); + ACE_isMedicalItem = 1; + class ItemInfo: CBA_MiscItem_ItemInfo { + mass = 1; + }; + }; + class kat_10ml_syringe_txa_2: ACE_ItemCore { + scope = 1; + displayName = CSTRING(Syringe_10_txa_2_Display); + picture = QPATHTOF(ui\icon_fast_io.paa); + model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; + descriptionShort = CSTRING(Syringe_10_txa_2_DescShort); + ACE_isMedicalItem = 1; + class ItemInfo: CBA_MiscItem_ItemInfo { + mass = 1; + }; + }; + class kat_5ml_syringe_txa_1: ACE_ItemCore { + scope = 1; + displayName = CSTRING(Syringe_10_txa_1_Display); + picture = QPATHTOF(ui\icon_fast_io.paa); + model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; + descriptionShort = CSTRING(Syringe_10_txa_1_DescShort); + ACE_isMedicalItem = 1; + class ItemInfo: CBA_MiscItem_ItemInfo { + mass = 1; + }; + }; + class kat_5ml_syringe_txa_2: ACE_ItemCore { + scope = 1; + displayName = CSTRING(Syringe_10_txa_2_Display); + picture = QPATHTOF(ui\icon_fast_io.paa); + model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; + descriptionShort = CSTRING(Syringe_10_txa_2_DescShort); + ACE_isMedicalItem = 1; + class ItemInfo: CBA_MiscItem_ItemInfo { + mass = 1; + }; + }; + class kat_5ml_syringe_eaca_1: ACE_ItemCore { + scope = 1; + displayName = CSTRING(Syringe_10_eaca_1_Display); + picture = QPATHTOF(ui\icon_fast_io.paa); + model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; + descriptionShort = CSTRING(Syringe_10_eaca_1_DescShort); + ACE_isMedicalItem = 1; + class ItemInfo: CBA_MiscItem_ItemInfo { + mass = 1; + }; + }; + class kat_5ml_syringe_eaca_2: ACE_ItemCore { + scope = 1; + displayName = CSTRING(Syringe_10_eaca_2_Display); + picture = QPATHTOF(ui\icon_fast_io.paa); + model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; + descriptionShort = CSTRING(Syringe_10_eaca_2_DescShort); + ACE_isMedicalItem = 1; + class ItemInfo: CBA_MiscItem_ItemInfo { + mass = 1; + }; + }; }; diff --git a/addons/pharma/config.cpp b/addons/pharma/config.cpp index 2e35ef27e..8aaaf224f 100644 --- a/addons/pharma/config.cpp +++ b/addons/pharma/config.cpp @@ -12,6 +12,10 @@ class CfgPatches { "kat_Painkiller", "kat_PainkillerItem", "kat_IV_16", + "kat_IV_14", + "kat_IV_20", + "kat_10ml_syringe", + "kat_5ml_syringe", "kat_IO_FAST", "kat_Carbonate", "kat_CarbonateItem", diff --git a/addons/pharma/stringtable.xml b/addons/pharma/stringtable.xml index 5ff2d7243..4dc410fa9 100644 --- a/addons/pharma/stringtable.xml +++ b/addons/pharma/stringtable.xml @@ -862,6 +862,40 @@ 16g IV 16g IV + + 14g IV + 14g IV + 14g IV + 14g IV + 14g IV + 14g IV + 14g IV + 14g IV + 14g IV + 14g IV + 14g IV + 14g IV + 14r IV + 14g IV + 14g IV + + + 20g IV + 20g IV + 20g IV + 20g IV + 20g IV + 20g IV + 20g IV + 20g IV + 20g IV + 20g IV + 20g IV + 20g IV + 20r IV + 20g IV + 20g IV + Intravenous Needle Intravenöse Kanüle @@ -3724,5 +3758,53 @@ Administrar Epinefrina Administrer l'épinéphrine + + 5ml Syringe + + + For IV medications + + + 10ml Syringe + + + For IM medications + + + 10ml Syringe/1g TXA + + + 10ml Syringe loaded with 1 gram of TXA + + + 10ml Syringe/2g TXA + + + 10ml Syringe loaded with 2 grams of TXA + + + 5ml Syringe/1g TXA + + + 5ml Syringe loaded with 1 gram of TXA + + + 5ml Syringe/2g TXA + + + 5ml Syringe loaded with 2 grams of TXA + + + 5ml Syringe/7.5g EACA + + + 5ml Syringe loaded with 7.5 grams of EACA + + + 5ml Syringe/15g EACA + + + 5ml Syringe loaded with 15 grams of EACA + From e7c7563878ef1a774813c5ac71bd20fe6444fdcc Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Wed, 4 Sep 2024 19:23:28 -0700 Subject: [PATCH 002/149] Update CfgWeapons.hpp --- addons/pharma/CfgWeapons.hpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/addons/pharma/CfgWeapons.hpp b/addons/pharma/CfgWeapons.hpp index 3576176dd..b95580a98 100644 --- a/addons/pharma/CfgWeapons.hpp +++ b/addons/pharma/CfgWeapons.hpp @@ -268,7 +268,7 @@ class CfgWeapons { }; }; class kat_10ml_syringe_txa_1: ACE_ItemCore { - scope = 1; + scope = 2; displayName = CSTRING(Syringe_10_txa_1_Display); picture = QPATHTOF(ui\icon_fast_io.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; @@ -279,7 +279,7 @@ class CfgWeapons { }; }; class kat_10ml_syringe_txa_2: ACE_ItemCore { - scope = 1; + scope = 2; displayName = CSTRING(Syringe_10_txa_2_Display); picture = QPATHTOF(ui\icon_fast_io.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; @@ -290,7 +290,7 @@ class CfgWeapons { }; }; class kat_5ml_syringe_txa_1: ACE_ItemCore { - scope = 1; + scope = 2; displayName = CSTRING(Syringe_10_txa_1_Display); picture = QPATHTOF(ui\icon_fast_io.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; @@ -301,7 +301,7 @@ class CfgWeapons { }; }; class kat_5ml_syringe_txa_2: ACE_ItemCore { - scope = 1; + scope = 2; displayName = CSTRING(Syringe_10_txa_2_Display); picture = QPATHTOF(ui\icon_fast_io.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; @@ -312,7 +312,7 @@ class CfgWeapons { }; }; class kat_5ml_syringe_eaca_1: ACE_ItemCore { - scope = 1; + scope = 2; displayName = CSTRING(Syringe_10_eaca_1_Display); picture = QPATHTOF(ui\icon_fast_io.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; @@ -323,7 +323,7 @@ class CfgWeapons { }; }; class kat_5ml_syringe_eaca_2: ACE_ItemCore { - scope = 1; + scope = 2; displayName = CSTRING(Syringe_10_eaca_2_Display); picture = QPATHTOF(ui\icon_fast_io.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; From 273aa6e07283379e56f75fdf6ed5629d832a2ec7 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Wed, 4 Sep 2024 19:32:49 -0700 Subject: [PATCH 003/149] Update CfgWeapons.hpp --- addons/pharma/CfgWeapons.hpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/addons/pharma/CfgWeapons.hpp b/addons/pharma/CfgWeapons.hpp index b95580a98..c6c7c4104 100644 --- a/addons/pharma/CfgWeapons.hpp +++ b/addons/pharma/CfgWeapons.hpp @@ -291,10 +291,10 @@ class CfgWeapons { }; class kat_5ml_syringe_txa_1: ACE_ItemCore { scope = 2; - displayName = CSTRING(Syringe_10_txa_1_Display); + displayName = CSTRING(Syringe_5_txa_1_Display); picture = QPATHTOF(ui\icon_fast_io.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; - descriptionShort = CSTRING(Syringe_10_txa_1_DescShort); + descriptionShort = CSTRING(Syringe_5_txa_1_DescShort); ACE_isMedicalItem = 1; class ItemInfo: CBA_MiscItem_ItemInfo { mass = 1; @@ -302,10 +302,10 @@ class CfgWeapons { }; class kat_5ml_syringe_txa_2: ACE_ItemCore { scope = 2; - displayName = CSTRING(Syringe_10_txa_2_Display); + displayName = CSTRING(Syringe_5_txa_2_Display); picture = QPATHTOF(ui\icon_fast_io.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; - descriptionShort = CSTRING(Syringe_10_txa_2_DescShort); + descriptionShort = CSTRING(Syringe_5_txa_2_DescShort); ACE_isMedicalItem = 1; class ItemInfo: CBA_MiscItem_ItemInfo { mass = 1; @@ -313,10 +313,10 @@ class CfgWeapons { }; class kat_5ml_syringe_eaca_1: ACE_ItemCore { scope = 2; - displayName = CSTRING(Syringe_10_eaca_1_Display); + displayName = CSTRING(Syringe_5_eaca_1_Display); picture = QPATHTOF(ui\icon_fast_io.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; - descriptionShort = CSTRING(Syringe_10_eaca_1_DescShort); + descriptionShort = CSTRING(Syringe_5_eaca_1_DescShort); ACE_isMedicalItem = 1; class ItemInfo: CBA_MiscItem_ItemInfo { mass = 1; @@ -324,10 +324,10 @@ class CfgWeapons { }; class kat_5ml_syringe_eaca_2: ACE_ItemCore { scope = 2; - displayName = CSTRING(Syringe_10_eaca_2_Display); + displayName = CSTRING(Syringe_5_eaca_2_Display); picture = QPATHTOF(ui\icon_fast_io.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; - descriptionShort = CSTRING(Syringe_10_eaca_2_DescShort); + descriptionShort = CSTRING(Syringe_5_eaca_2_DescShort); ACE_isMedicalItem = 1; class ItemInfo: CBA_MiscItem_ItemInfo { mass = 1; From 4be680f64d4e10de5cf4a9905fb0ed62aeacadcf Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Wed, 4 Sep 2024 19:38:42 -0700 Subject: [PATCH 004/149] Updates to stringtable --- .../pharma/ACE_Medical_Treatment_Actions.hpp | 20 +++++++---- addons/pharma/stringtable.xml | 36 +++++++++++++++++++ 2 files changed, 49 insertions(+), 7 deletions(-) diff --git a/addons/pharma/ACE_Medical_Treatment_Actions.hpp b/addons/pharma/ACE_Medical_Treatment_Actions.hpp index 17ed53436..9b8404337 100644 --- a/addons/pharma/ACE_Medical_Treatment_Actions.hpp +++ b/addons/pharma/ACE_Medical_Treatment_Actions.hpp @@ -414,7 +414,8 @@ class ACE_Medical_Treatment_Actions { litter[] = {}; }; class EACA_IV_1: Carbonate { - displayName = CSTRING(push_EACA_1); + displayName = CSTRING(push_EACA_IV_1); + displayNameProgress = CSTRING(pushing_EACA_IV_1); allowedSelections[] = {"Body", "LeftArm", "RightArm", "LeftLeg", "RightLeg"}; allowSelfTreatment = 1; medicRequired = QGVAR(medLvl_EACA); @@ -425,7 +426,9 @@ class ACE_Medical_Treatment_Actions { sounds[] = {}; }; class EACA_IV_2: EACA_IV_1 { - displayName = CSTRING(take_EACA_2); + displayName = CSTRING(push_EACA_IV_2); + displayNameProgress = CSTRING(pushing_EACA_IV_2); + inject allowedSelections[] = {"Body", "LeftArm", "RightArm", "LeftLeg", "RightLeg"}; allowSelfTreatment = 1; medicRequired = QGVAR(medLvl_EACA); @@ -435,7 +438,7 @@ class ACE_Medical_Treatment_Actions { sounds[] = {}; }; class TXA_IM_1: Carbonate { - displayName = CSTRING(take_TXA_1); + displayName = CSTRING(inject_TXA_IM_1); allowedSelections[] = {"LeftArm", "RightArm", "LeftLeg", "RightLeg"}; allowSelfTreatment = 1; medicRequired = QGVAR(medLvl_EACA); @@ -445,7 +448,8 @@ class ACE_Medical_Treatment_Actions { sounds[] = {}; }; class TXA_IM_2: TXA_IM_1 { - displayName = CSTRING(take_TXA_2); + displayName = CSTRING(inject_TXA_IM_2); + displayNameProgress = CSTRING(injecting_TXA_IV_2); allowedSelections[] = {"LeftArm", "RightArm", "LeftLeg", "RightLeg"}; allowSelfTreatment = 1; medicRequired = QGVAR(medLvl_EACA); @@ -454,8 +458,9 @@ class ACE_Medical_Treatment_Actions { callbackSuccess = QFUNC(medication); sounds[] = {}; }; - class TXA_IV_1: EACA { - displayName = CSTRING(Take_TXA); + class TXA_IV_1: EACA_IV_1 { + displayName = CSTRING(push_TXA_IV_1); + displayNameProgress = CSTRING(pushing_TXA_IV_1); allowedSelections[] = {"Body", "LeftArm", "RightArm", "LeftLeg", "RightLeg"}; allowSelfTreatment = 1; medicRequired = QGVAR(medLvl_TXA); @@ -466,7 +471,8 @@ class ACE_Medical_Treatment_Actions { sounds[] = {}; }; class TXA_IV_2: TXA_IV_1 { - displayName = CSTRING(Take_TXA); + displayName = CSTRING(push_TXA_IV_2); + displayNameProgress = CSTRING(pushing_TXA_IV_2); items[] = {"kat_5ml_syringe_txa_2"}; callbackSuccess = QFUNC(medication); sounds[] = {}; diff --git a/addons/pharma/stringtable.xml b/addons/pharma/stringtable.xml index 4dc410fa9..4febeb8ed 100644 --- a/addons/pharma/stringtable.xml +++ b/addons/pharma/stringtable.xml @@ -3806,5 +3806,41 @@ 5ml Syringe loaded with 15 grams of EACA + + Push 1g TXA IV + + + Push 2g TXA IV + + + Push 7.5g EACA IV + + + Push 15g EACA IV + + + Inject 1g TXA IM + + + Inject 2g TXA IM + + + Pushing 1g TXA IV + + + Pushing 2g TXA IV + + + Pushing 7.5g EACA IV + + + Pushing 15g EACA IV + + + Injecting 1g TXA IM + + + Injecting 2g TXA IM + From 707cecb5e17f24a5deafa6cf248a7c910f813b68 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Wed, 4 Sep 2024 19:40:19 -0700 Subject: [PATCH 005/149] Fix --- addons/pharma/ACE_Medical_Treatment_Actions.hpp | 1 - 1 file changed, 1 deletion(-) diff --git a/addons/pharma/ACE_Medical_Treatment_Actions.hpp b/addons/pharma/ACE_Medical_Treatment_Actions.hpp index 9b8404337..b72e0989b 100644 --- a/addons/pharma/ACE_Medical_Treatment_Actions.hpp +++ b/addons/pharma/ACE_Medical_Treatment_Actions.hpp @@ -428,7 +428,6 @@ class ACE_Medical_Treatment_Actions { class EACA_IV_2: EACA_IV_1 { displayName = CSTRING(push_EACA_IV_2); displayNameProgress = CSTRING(pushing_EACA_IV_2); - inject allowedSelections[] = {"Body", "LeftArm", "RightArm", "LeftLeg", "RightLeg"}; allowSelfTreatment = 1; medicRequired = QGVAR(medLvl_EACA); From 34e0ed551e2ed51ca52e274e88ee5931a74f3d36 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Wed, 4 Sep 2024 19:44:49 -0700 Subject: [PATCH 006/149] Update stringtable.xml --- addons/pharma/stringtable.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/addons/pharma/stringtable.xml b/addons/pharma/stringtable.xml index 4febeb8ed..9ef9a0857 100644 --- a/addons/pharma/stringtable.xml +++ b/addons/pharma/stringtable.xml @@ -3794,16 +3794,16 @@ 5ml Syringe loaded with 2 grams of TXA - + 5ml Syringe/7.5g EACA - + 5ml Syringe loaded with 7.5 grams of EACA - + 5ml Syringe/15g EACA - + 5ml Syringe loaded with 15 grams of EACA From 8d0eb59db2ba9c32fcf6c1d8abb7a278a5f75162 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Wed, 4 Sep 2024 19:48:55 -0700 Subject: [PATCH 007/149] Fixes --- addons/pharma/ACE_Medical_Treatment_Actions.hpp | 3 ++- addons/pharma/stringtable.xml | 8 ++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/addons/pharma/ACE_Medical_Treatment_Actions.hpp b/addons/pharma/ACE_Medical_Treatment_Actions.hpp index b72e0989b..f92967951 100644 --- a/addons/pharma/ACE_Medical_Treatment_Actions.hpp +++ b/addons/pharma/ACE_Medical_Treatment_Actions.hpp @@ -438,6 +438,7 @@ class ACE_Medical_Treatment_Actions { }; class TXA_IM_1: Carbonate { displayName = CSTRING(inject_TXA_IM_1); + displayNameProgress = CSTRING(injecting_TXA_IM_1); allowedSelections[] = {"LeftArm", "RightArm", "LeftLeg", "RightLeg"}; allowSelfTreatment = 1; medicRequired = QGVAR(medLvl_EACA); @@ -448,7 +449,7 @@ class ACE_Medical_Treatment_Actions { }; class TXA_IM_2: TXA_IM_1 { displayName = CSTRING(inject_TXA_IM_2); - displayNameProgress = CSTRING(injecting_TXA_IV_2); + displayNameProgress = CSTRING(injecting_TXA_IM_2); allowedSelections[] = {"LeftArm", "RightArm", "LeftLeg", "RightLeg"}; allowSelfTreatment = 1; medicRequired = QGVAR(medLvl_EACA); diff --git a/addons/pharma/stringtable.xml b/addons/pharma/stringtable.xml index 9ef9a0857..1fb6cf761 100644 --- a/addons/pharma/stringtable.xml +++ b/addons/pharma/stringtable.xml @@ -3818,10 +3818,10 @@ Push 15g EACA IV - + Inject 1g TXA IM - + Inject 2g TXA IM @@ -3836,10 +3836,10 @@ Pushing 15g EACA IV - + Injecting 1g TXA IM - + Injecting 2g TXA IM From 29f1cee07347204357fab74988874736edcf1bfa Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Wed, 4 Sep 2024 19:57:41 -0700 Subject: [PATCH 008/149] Update config.cpp --- addons/pharma/config.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/addons/pharma/config.cpp b/addons/pharma/config.cpp index 8aaaf224f..7677dbfcf 100644 --- a/addons/pharma/config.cpp +++ b/addons/pharma/config.cpp @@ -36,7 +36,13 @@ class CfgPatches { "kat_flumazenil", "kat_lorazepam", "kat_etomidate", - "kat_epinephrineIV" + "kat_epinephrineIV", + "kat_10ml_syringe_txa_1", + "kat_5ml_syringe_txa_1", + "kat_10ml_syringe_txa_2", + "kat_5ml_syringe_txa_2", + "kat_5ml_syringe_eaca_1", + "kat_5ml_syringe_eaca_2" }; magazines[] = { }; requiredAddons[] = { From 7aaaa29f15b99fe4335c668fb159ad8b3f0d75e1 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Wed, 4 Sep 2024 20:02:29 -0700 Subject: [PATCH 009/149] Fixes for stringtable --- addons/pharma/stringtable.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/addons/pharma/stringtable.xml b/addons/pharma/stringtable.xml index 1fb6cf761..efcfb521c 100644 --- a/addons/pharma/stringtable.xml +++ b/addons/pharma/stringtable.xml @@ -3824,16 +3824,16 @@ Inject 2g TXA IM - + Pushing 1g TXA IV - + Pushing 2g TXA IV - + Pushing 7.5g EACA IV - + Pushing 15g EACA IV From 41537a92f7f0b6f6ab1be776bbac3cc82d0d353e Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Sun, 8 Sep 2024 13:28:40 -0700 Subject: [PATCH 010/149] fix --- addons/pharma/ACE_Medical_Treatment.hpp | 12 ++++----- .../pharma/ACE_Medical_Treatment_Actions.hpp | 12 ++++----- addons/pharma/CfgWeapons.hpp | 26 +++++++++---------- addons/pharma/stringtable.xml | 24 ++++++++--------- 4 files changed, 37 insertions(+), 37 deletions(-) diff --git a/addons/pharma/ACE_Medical_Treatment.hpp b/addons/pharma/ACE_Medical_Treatment.hpp index a42e97b77..6112ed71e 100644 --- a/addons/pharma/ACE_Medical_Treatment.hpp +++ b/addons/pharma/ACE_Medical_Treatment.hpp @@ -335,7 +335,7 @@ class ACE_ADDON(Medical_Treatment) { onOverDose = ""; maxRelief = 0.6; }; - class 5ml_syringe_txa_1 { + class syringe_txa_5ml__1 { painReduce = 0; hrIncreaseLow[] = {0, 0}; hrIncreaseNormal[] = {0, 0}; @@ -347,7 +347,7 @@ class ACE_ADDON(Medical_Treatment) { viscosityChange = 0; onOverDose = ""; }; - class 5ml_syringe_txa_2 { + class syringe_txa_5ml__2 { painReduce = 0; hrIncreaseLow[] = {0, 0}; hrIncreaseNormal[] = {0, 0}; @@ -359,7 +359,7 @@ class ACE_ADDON(Medical_Treatment) { viscosityChange = 0; onOverDose = ""; }; - class 10ml_syringe_txa_1 { + class syringe_txa_10ml_1 { painReduce = 0; hrIncreaseLow[] = {0, 0}; hrIncreaseNormal[] = {0, 0}; @@ -371,7 +371,7 @@ class ACE_ADDON(Medical_Treatment) { viscosityChange = 0; onOverDose = ""; }; - class 10ml_syringe_txa_2 { + class syringe_txa_10ml_2 { painReduce = 0; hrIncreaseLow[] = {0, 0}; hrIncreaseNormal[] = {0, 0}; @@ -383,7 +383,7 @@ class ACE_ADDON(Medical_Treatment) { viscosityChange = 0; onOverDose = ""; }; - class 5ml_syringe_eaca_1 { + class syringe_eaca_5ml_1 { painReduce = 0; hrIncreaseLow[] = {0, 0}; hrIncreaseNormal[] = {0, 0}; @@ -395,7 +395,7 @@ class ACE_ADDON(Medical_Treatment) { viscosityChange = 0; onOverDose = ""; }; - class 5ml_syringe_eaca_2 { + class syringe_eaca_5ml_2 { painReduce = 0; hrIncreaseLow[] = {0, 0}; hrIncreaseNormal[] = {0, 0}; diff --git a/addons/pharma/ACE_Medical_Treatment_Actions.hpp b/addons/pharma/ACE_Medical_Treatment_Actions.hpp index f92967951..fb05818ed 100644 --- a/addons/pharma/ACE_Medical_Treatment_Actions.hpp +++ b/addons/pharma/ACE_Medical_Treatment_Actions.hpp @@ -420,7 +420,7 @@ class ACE_Medical_Treatment_Actions { allowSelfTreatment = 1; medicRequired = QGVAR(medLvl_EACA); treatmentTime = QGVAR(treatmentTime_EACA); - items[] = {"kat_5ml_syringe_eaca_1"}; + items[] = {"kat_syringe_eaca_5ml_1"}; condition = QUOTE(!(GVAR(MedicationsRequireInsIV)) || FUNC(removeIV)); callbackSuccess = QFUNC(medication); sounds[] = {}; @@ -432,7 +432,7 @@ class ACE_Medical_Treatment_Actions { allowSelfTreatment = 1; medicRequired = QGVAR(medLvl_EACA); treatmentTime = QGVAR(treatmentTime_EACA); - items[] = {"kat_5ml_syringe_eaca_2"}; + items[] = {"kat_syringe_eaca_5ml_2"}; callbackSuccess = QFUNC(medication); sounds[] = {}; }; @@ -443,7 +443,7 @@ class ACE_Medical_Treatment_Actions { allowSelfTreatment = 1; medicRequired = QGVAR(medLvl_EACA); treatmentTime = QGVAR(treatmentTime_EACA); - items[] = {"kat_10ml_syringe_txa_1"}; + items[] = {"kat_syringe_txa_10ml_1"}; callbackSuccess = QFUNC(medication); sounds[] = {}; }; @@ -454,7 +454,7 @@ class ACE_Medical_Treatment_Actions { allowSelfTreatment = 1; medicRequired = QGVAR(medLvl_EACA); treatmentTime = QGVAR(treatmentTime_EACA); - items[] = {"kat_10ml_syringe_txa_2"}; + items[] = {"kat_syringe_txa_10ml_2"}; callbackSuccess = QFUNC(medication); sounds[] = {}; }; @@ -466,14 +466,14 @@ class ACE_Medical_Treatment_Actions { medicRequired = QGVAR(medLvl_TXA); treatmentTime = QGVAR(treatmentTime_TXA); condition = QUOTE(!(GVAR(MedicationsRequireInsIV)) || FUNC(removeIV)); - items[] = {"kat_5ml_syringe_txa_1"}; + items[] = {"kat_syringe_txa_5ml_1"}; callbackSuccess = QFUNC(medication); sounds[] = {}; }; class TXA_IV_2: TXA_IV_1 { displayName = CSTRING(push_TXA_IV_2); displayNameProgress = CSTRING(pushing_TXA_IV_2); - items[] = {"kat_5ml_syringe_txa_2"}; + items[] = {"kat_syringe_txa_5ml_2"}; callbackSuccess = QFUNC(medication); sounds[] = {}; }; diff --git a/addons/pharma/CfgWeapons.hpp b/addons/pharma/CfgWeapons.hpp index c6c7c4104..f8deb5fcc 100644 --- a/addons/pharma/CfgWeapons.hpp +++ b/addons/pharma/CfgWeapons.hpp @@ -267,12 +267,12 @@ class CfgWeapons { mass = 1; }; }; - class kat_10ml_syringe_txa_1: ACE_ItemCore { + class kat_syringe_txa_10ml_1: ACE_ItemCore { scope = 2; - displayName = CSTRING(Syringe_10_txa_1_Display); + displayName = CSTRING(Syringe_txa_10_1_Display); picture = QPATHTOF(ui\icon_fast_io.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; - descriptionShort = CSTRING(Syringe_10_txa_1_DescShort); + descriptionShort = CSTRING(Syringe_txa_10_1_DescShort); ACE_isMedicalItem = 1; class ItemInfo: CBA_MiscItem_ItemInfo { mass = 1; @@ -280,10 +280,10 @@ class CfgWeapons { }; class kat_10ml_syringe_txa_2: ACE_ItemCore { scope = 2; - displayName = CSTRING(Syringe_10_txa_2_Display); + displayName = CSTRING(Syringe_txa_10_2_Display); picture = QPATHTOF(ui\icon_fast_io.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; - descriptionShort = CSTRING(Syringe_10_txa_2_DescShort); + descriptionShort = CSTRING(Syringe_txa_10_2_DescShort); ACE_isMedicalItem = 1; class ItemInfo: CBA_MiscItem_ItemInfo { mass = 1; @@ -291,10 +291,10 @@ class CfgWeapons { }; class kat_5ml_syringe_txa_1: ACE_ItemCore { scope = 2; - displayName = CSTRING(Syringe_5_txa_1_Display); + displayName = CSTRING(Syringe_txa_5_1_Display); picture = QPATHTOF(ui\icon_fast_io.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; - descriptionShort = CSTRING(Syringe_5_txa_1_DescShort); + descriptionShort = CSTRING(Syringe_txa_5_1_DescShort); ACE_isMedicalItem = 1; class ItemInfo: CBA_MiscItem_ItemInfo { mass = 1; @@ -302,10 +302,10 @@ class CfgWeapons { }; class kat_5ml_syringe_txa_2: ACE_ItemCore { scope = 2; - displayName = CSTRING(Syringe_5_txa_2_Display); + displayName = CSTRING(Syringe_txa_5_2_Display); picture = QPATHTOF(ui\icon_fast_io.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; - descriptionShort = CSTRING(Syringe_5_txa_2_DescShort); + descriptionShort = CSTRING(Syringe_txa_5_2_DescShort); ACE_isMedicalItem = 1; class ItemInfo: CBA_MiscItem_ItemInfo { mass = 1; @@ -313,10 +313,10 @@ class CfgWeapons { }; class kat_5ml_syringe_eaca_1: ACE_ItemCore { scope = 2; - displayName = CSTRING(Syringe_5_eaca_1_Display); + displayName = CSTRING(Syringe_eaca_5_1_Display); picture = QPATHTOF(ui\icon_fast_io.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; - descriptionShort = CSTRING(Syringe_5_eaca_1_DescShort); + descriptionShort = CSTRING(Syringe_eaca_5_1_DescShort); ACE_isMedicalItem = 1; class ItemInfo: CBA_MiscItem_ItemInfo { mass = 1; @@ -324,10 +324,10 @@ class CfgWeapons { }; class kat_5ml_syringe_eaca_2: ACE_ItemCore { scope = 2; - displayName = CSTRING(Syringe_5_eaca_2_Display); + displayName = CSTRING(Syringe_eaca_5_2_Display); picture = QPATHTOF(ui\icon_fast_io.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; - descriptionShort = CSTRING(Syringe_5_eaca_2_DescShort); + descriptionShort = CSTRING(Syringe_eaca_5_2_DescShort); ACE_isMedicalItem = 1; class ItemInfo: CBA_MiscItem_ItemInfo { mass = 1; diff --git a/addons/pharma/stringtable.xml b/addons/pharma/stringtable.xml index efcfb521c..9d4a56ae3 100644 --- a/addons/pharma/stringtable.xml +++ b/addons/pharma/stringtable.xml @@ -3770,40 +3770,40 @@ For IM medications - + 10ml Syringe/1g TXA - + 10ml Syringe loaded with 1 gram of TXA - + 10ml Syringe/2g TXA - + 10ml Syringe loaded with 2 grams of TXA - + 5ml Syringe/1g TXA - + 5ml Syringe loaded with 1 gram of TXA - + 5ml Syringe/2g TXA - + 5ml Syringe loaded with 2 grams of TXA - + 5ml Syringe/7.5g EACA - + 5ml Syringe loaded with 7.5 grams of EACA - + 5ml Syringe/15g EACA - + 5ml Syringe loaded with 15 grams of EACA From 13789ad66c19ba6947f718c987dbdba39e3687da Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Mon, 9 Sep 2024 23:41:09 -0700 Subject: [PATCH 011/149] IV --- addons/pharma/functions/fnc_applyIV.sqf | 31 ++++++++++++++++++++++++- addons/pharma/stringtable.xml | 6 ++--- 2 files changed, 33 insertions(+), 4 deletions(-) diff --git a/addons/pharma/functions/fnc_applyIV.sqf b/addons/pharma/functions/fnc_applyIV.sqf index e491ed6bc..c32111c04 100644 --- a/addons/pharma/functions/fnc_applyIV.sqf +++ b/addons/pharma/functions/fnc_applyIV.sqf @@ -38,7 +38,36 @@ if (_IVpfhActual > 0) then { _IVpfh set [_partIndex, _IVpfhActual]; _patient setVariable [QGVAR(IVpfh), _IVpfh, true]; }; +switch (_usedItem) do { + case _usedItem isEqualTo "kat_IV_16": { _IVarray set [_partIndex, 2]; + _patient setVariable [QGVAR(IV), _IVarray, true]; + + [_patient, "activity", LSTRING(iv_log), [[_medic] call ACEFUNC(common,getName), "16g IV"]] call ACEFUNC(medical_treatment,addToLog); + [_patient, "16g IV"] call ACEFUNC(medical_treatment,addToTriageCard); }; + case _usedItem isEqualTo "kat_IV_14": { _IVarray set [_partIndex, 2]; + _patient setVariable [QGVAR(IV), _IVarray, true]; + + [_patient, "activity", LSTRING(iv_log), [[_medic] call ACEFUNC(common,getName), "14g IV"]] call ACEFUNC(medical_treatment,addToLog); + [_patient, "14g IV"] call ACEFUNC(medical_treatment,addToTriageCard);}; + case _usedItem isEqualTo "kat_IV_20": { _IVarray set [_partIndex, 2]; + _patient setVariable [QGVAR(IV), _IVarray, true]; + + [_patient, "activity", LSTRING(iv_log), [[_medic] call ACEFUNC(common,getName), "20g IV"]] call ACEFUNC(medical_treatment,addToLog); + [_patient, "20g IV"] call ACEFUNC(medical_treatment,addToTriageCard);}; + default { _IVarray set [_partIndex, 1]; + _patient setVariable [QGVAR(IV), _IVarray, true]; + + private _lidocaineCount = [_patient, "Lidocaine", false] call ACEFUNC(medical_status,getMedicationCount); + private _morphineCount = [_patient, "Morphine", false] call ACEFUNC(medical_status,getMedicationCount); + private _nalbuphineCount = [_patient, "Nalbuphine", false] call ACEFUNC(medical_status,getMedicationCount); + private _fentanylCount = [_patient, "Fentanyl", false] call ACEFUNC(medical_status,getMedicationCount); + private _ketamineCount = [_patient, "Ketamine", false] call ACEFUNC(medical_status,getMedicationCount); + if (_lidocaineCount <= 0.6 && _morphineCount <= 0.6 && _nalbuphineCount <= 0.6 && _fentanylCount <= 0.6 && _ketamineCount <= 0.6) then {[_patient, 0.8] call ACEFUNC(medical_status,adjustPainLevel)}; + [_patient, "activity", LSTRING(iv_log), [[_medic] call ACEFUNC(common,getName), "FAST IO"]] call ACEFUNC(medical_treatment,addToLog); + [_patient, "FAST IO"] call ACEFUNC(medical_treatment,addToTriageCard); + }; +}; if (_usedItem isEqualTo "kat_IV_16") then { _IVarray set [_partIndex, 2]; _patient setVariable [QGVAR(IV), _IVarray, true]; @@ -60,7 +89,7 @@ if (_usedItem isEqualTo "kat_IV_16") then { [_patient, "FAST IO"] call ACEFUNC(medical_treatment,addToTriageCard); }; -if (GVAR(IVdropEnable) && (_usedItem isEqualTo "kat_IV_16")) then { +if (GVAR(IVdropEnable) && ((_usedItem isEqualTo "kat_IV_16") || (_usedItem isEqualTo "kat_IV_14") || (_usedItem isEqualTo "kat_IV_20"))) then { [{ params ["_patient", "_partIndex", "_IVpfhActual"]; diff --git a/addons/pharma/stringtable.xml b/addons/pharma/stringtable.xml index 9d4a56ae3..487cfbf0d 100644 --- a/addons/pharma/stringtable.xml +++ b/addons/pharma/stringtable.xml @@ -3785,10 +3785,10 @@ 5ml Syringe/1g TXA - + 5ml Syringe loaded with 1 gram of TXA - + 5ml Syringe/2g TXA @@ -3797,7 +3797,7 @@ 5ml Syringe/7.5g EACA - + 5ml Syringe loaded with 7.5 grams of EACA From ff2eba33ed816e0dedd32640d892abc5e6c8c591 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Mon, 9 Sep 2024 23:47:55 -0700 Subject: [PATCH 012/149] iv actions --- .hemtt/launch.toml | 1 + .../pharma/ACE_Medical_Treatment_Actions.hpp | 26 +++++++++++++++++++ addons/pharma/stringtable.xml | 6 +++++ 3 files changed, 33 insertions(+) diff --git a/.hemtt/launch.toml b/.hemtt/launch.toml index 662ac1232..d5c0d1c2d 100644 --- a/.hemtt/launch.toml +++ b/.hemtt/launch.toml @@ -3,4 +3,5 @@ workshop = [ "450814997", # CBA_A3's Workshop ID "463939057", # ACE3's Workshop ID "2369477168", # Advanced Developer Tools's Workshop ID + ""1779063631", # ZEN ] \ No newline at end of file diff --git a/addons/pharma/ACE_Medical_Treatment_Actions.hpp b/addons/pharma/ACE_Medical_Treatment_Actions.hpp index fb05818ed..7f77ad9f5 100644 --- a/addons/pharma/ACE_Medical_Treatment_Actions.hpp +++ b/addons/pharma/ACE_Medical_Treatment_Actions.hpp @@ -309,6 +309,32 @@ class ACE_Medical_Treatment_Actions { litter[] = {}; sounds[] = {}; }; + class Apply14IV: ApplyIV { + displayName = CSTRING(Apply_IV_14); + displayNameProgress = CSTRING(Applying_IV); + medicRequired = QGVAR(medLvl_ApplyIV); + category = "advanced"; + allowedSelections[] = {"LeftArm", "RightArm", "LeftLeg", "RightLeg"}; + items[] = {"kat_IV_14"}; + condition = QUOTE(!([ARR_3(_player,_patient,_bodyPart)] call FUNC(removeIV))); + treatmentTime = QGVAR(treatmentTime_ApplyIV); + callbackSuccess = QUOTE([ARR_4(_player,_patient,_bodyPart,'kat_IV_14')] call FUNC(applyIV)); + litter[] = {}; + sounds[] = {}; + }; + class Apply20IV: ApplyIV { + displayName = CSTRING(Apply_IV_20); + displayNameProgress = CSTRING(Applying_IV); + medicRequired = QGVAR(medLvl_ApplyIV); + category = "advanced"; + allowedSelections[] = {"LeftArm", "RightArm", "LeftLeg", "RightLeg"}; + items[] = {"kat_IV_20"}; + condition = QUOTE(!([ARR_3(_player,_patient,_bodyPart)] call FUNC(removeIV))); + treatmentTime = QGVAR(treatmentTime_ApplyIV); + callbackSuccess = QUOTE([ARR_4(_player,_patient,_bodyPart,'kat_IV_14')] call FUNC(applyIV)); + litter[] = {}; + sounds[] = {}; + }; class ApplyIO: ApplyIV { displayName = CSTRING(Apply_IO_45); displayNameProgress = CSTRING(Applying_IV); diff --git a/addons/pharma/stringtable.xml b/addons/pharma/stringtable.xml index 487cfbf0d..35b73aad7 100644 --- a/addons/pharma/stringtable.xml +++ b/addons/pharma/stringtable.xml @@ -3842,5 +3842,11 @@ Injecting 2g TXA IM + + Establish 14g IV + + + Establish 20g IV + From 873b5428852392bcf839ec02c7eda120af42a76f Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Mon, 9 Sep 2024 23:50:37 -0700 Subject: [PATCH 013/149] Update launch.toml --- .hemtt/launch.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hemtt/launch.toml b/.hemtt/launch.toml index d5c0d1c2d..9103063db 100644 --- a/.hemtt/launch.toml +++ b/.hemtt/launch.toml @@ -3,5 +3,5 @@ workshop = [ "450814997", # CBA_A3's Workshop ID "463939057", # ACE3's Workshop ID "2369477168", # Advanced Developer Tools's Workshop ID - ""1779063631", # ZEN + "1779063631", # ZEN ] \ No newline at end of file From e73d64b81ee7bb2ff4610f191a9223f43eab7325 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Mon, 9 Sep 2024 23:58:34 -0700 Subject: [PATCH 014/149] Update fnc_applyIV.sqf --- addons/pharma/functions/fnc_applyIV.sqf | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/addons/pharma/functions/fnc_applyIV.sqf b/addons/pharma/functions/fnc_applyIV.sqf index c32111c04..dac5e38aa 100644 --- a/addons/pharma/functions/fnc_applyIV.sqf +++ b/addons/pharma/functions/fnc_applyIV.sqf @@ -39,22 +39,22 @@ if (_IVpfhActual > 0) then { _patient setVariable [QGVAR(IVpfh), _IVpfh, true]; }; switch (_usedItem) do { - case _usedItem isEqualTo "kat_IV_16": { _IVarray set [_partIndex, 2]; - _patient setVariable [QGVAR(IV), _IVarray, true]; - - [_patient, "activity", LSTRING(iv_log), [[_medic] call ACEFUNC(common,getName), "16g IV"]] call ACEFUNC(medical_treatment,addToLog); - [_patient, "16g IV"] call ACEFUNC(medical_treatment,addToTriageCard); }; - case _usedItem isEqualTo "kat_IV_14": { _IVarray set [_partIndex, 2]; + case "kat_IV_16": { + _IVarray set [_partIndex, 2]; + _patient setVariable [QGVAR(IV), _IVarray, true]; + [_patient, "activity", LSTRING(iv_log), [[_medic] call ACEFUNC(common,getName), "16g IV"]] call ACEFUNC(medical_treatment,addToLog); + [_patient, "16g IV"] call ACEFUNC(medical_treatment,addToTriageCard); }; + case "kat_IV_14": { _IVarray set [_partIndex, 2]; _patient setVariable [QGVAR(IV), _IVarray, true]; [_patient, "activity", LSTRING(iv_log), [[_medic] call ACEFUNC(common,getName), "14g IV"]] call ACEFUNC(medical_treatment,addToLog); [_patient, "14g IV"] call ACEFUNC(medical_treatment,addToTriageCard);}; - case _usedItem isEqualTo "kat_IV_20": { _IVarray set [_partIndex, 2]; + case "kat_IV_20": { _IVarray set [_partIndex, 2]; _patient setVariable [QGVAR(IV), _IVarray, true]; [_patient, "activity", LSTRING(iv_log), [[_medic] call ACEFUNC(common,getName), "20g IV"]] call ACEFUNC(medical_treatment,addToLog); [_patient, "20g IV"] call ACEFUNC(medical_treatment,addToTriageCard);}; - default { _IVarray set [_partIndex, 1]; + case "kat_IO_FAST" {_IVarray set [_partIndex, 1]; _patient setVariable [QGVAR(IV), _IVarray, true]; private _lidocaineCount = [_patient, "Lidocaine", false] call ACEFUNC(medical_status,getMedicationCount); @@ -65,8 +65,8 @@ switch (_usedItem) do { if (_lidocaineCount <= 0.6 && _morphineCount <= 0.6 && _nalbuphineCount <= 0.6 && _fentanylCount <= 0.6 && _ketamineCount <= 0.6) then {[_patient, 0.8] call ACEFUNC(medical_status,adjustPainLevel)}; [_patient, "activity", LSTRING(iv_log), [[_medic] call ACEFUNC(common,getName), "FAST IO"]] call ACEFUNC(medical_treatment,addToLog); - [_patient, "FAST IO"] call ACEFUNC(medical_treatment,addToTriageCard); - }; + [_patient, "FAST IO"] call ACEFUNC(medical_treatment,addToTriageCard);}; + default {}; }; if (_usedItem isEqualTo "kat_IV_16") then { _IVarray set [_partIndex, 2]; From 06492d6df76658ae4591e7efcd0dc5ef72daa686 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Tue, 10 Sep 2024 00:02:59 -0700 Subject: [PATCH 015/149] Update fnc_applyIV.sqf --- addons/pharma/functions/fnc_applyIV.sqf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/addons/pharma/functions/fnc_applyIV.sqf b/addons/pharma/functions/fnc_applyIV.sqf index dac5e38aa..6e6bd97d0 100644 --- a/addons/pharma/functions/fnc_applyIV.sqf +++ b/addons/pharma/functions/fnc_applyIV.sqf @@ -54,7 +54,8 @@ switch (_usedItem) do { [_patient, "activity", LSTRING(iv_log), [[_medic] call ACEFUNC(common,getName), "20g IV"]] call ACEFUNC(medical_treatment,addToLog); [_patient, "20g IV"] call ACEFUNC(medical_treatment,addToTriageCard);}; - case "kat_IO_FAST" {_IVarray set [_partIndex, 1]; + case "kat_IO_FAST" { + _IVarray set [_partIndex, 1]; _patient setVariable [QGVAR(IV), _IVarray, true]; private _lidocaineCount = [_patient, "Lidocaine", false] call ACEFUNC(medical_status,getMedicationCount); From 52567c602d3177bfb41b3d1a67b8a579e40b8c5d Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Tue, 10 Sep 2024 00:04:28 -0700 Subject: [PATCH 016/149] Update fnc_applyIV.sqf --- addons/pharma/functions/fnc_applyIV.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/pharma/functions/fnc_applyIV.sqf b/addons/pharma/functions/fnc_applyIV.sqf index 6e6bd97d0..0e5aa0770 100644 --- a/addons/pharma/functions/fnc_applyIV.sqf +++ b/addons/pharma/functions/fnc_applyIV.sqf @@ -54,7 +54,7 @@ switch (_usedItem) do { [_patient, "activity", LSTRING(iv_log), [[_medic] call ACEFUNC(common,getName), "20g IV"]] call ACEFUNC(medical_treatment,addToLog); [_patient, "20g IV"] call ACEFUNC(medical_treatment,addToTriageCard);}; - case "kat_IO_FAST" { + case "kat_IO_FAST": { _IVarray set [_partIndex, 1]; _patient setVariable [QGVAR(IV), _IVarray, true]; From a444afbc4bdfa38bdf8fc8b2c4c17f11f44eae6d Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Tue, 10 Sep 2024 00:11:58 -0700 Subject: [PATCH 017/149] Update fnc_applyIV.sqf --- addons/pharma/functions/fnc_applyIV.sqf | 20 -------------------- 1 file changed, 20 deletions(-) diff --git a/addons/pharma/functions/fnc_applyIV.sqf b/addons/pharma/functions/fnc_applyIV.sqf index 0e5aa0770..619ad9572 100644 --- a/addons/pharma/functions/fnc_applyIV.sqf +++ b/addons/pharma/functions/fnc_applyIV.sqf @@ -69,26 +69,6 @@ switch (_usedItem) do { [_patient, "FAST IO"] call ACEFUNC(medical_treatment,addToTriageCard);}; default {}; }; -if (_usedItem isEqualTo "kat_IV_16") then { - _IVarray set [_partIndex, 2]; - _patient setVariable [QGVAR(IV), _IVarray, true]; - - [_patient, "activity", LSTRING(iv_log), [[_medic] call ACEFUNC(common,getName), "16g IV"]] call ACEFUNC(medical_treatment,addToLog); - [_patient, "16g IV"] call ACEFUNC(medical_treatment,addToTriageCard); -} else { - _IVarray set [_partIndex, 1]; - _patient setVariable [QGVAR(IV), _IVarray, true]; - - private _lidocaineCount = [_patient, "Lidocaine", false] call ACEFUNC(medical_status,getMedicationCount); - private _morphineCount = [_patient, "Morphine", false] call ACEFUNC(medical_status,getMedicationCount); - private _nalbuphineCount = [_patient, "Nalbuphine", false] call ACEFUNC(medical_status,getMedicationCount); - private _fentanylCount = [_patient, "Fentanyl", false] call ACEFUNC(medical_status,getMedicationCount); - private _ketamineCount = [_patient, "Ketamine", false] call ACEFUNC(medical_status,getMedicationCount); - if (_lidocaineCount <= 0.6 && _morphineCount <= 0.6 && _nalbuphineCount <= 0.6 && _fentanylCount <= 0.6 && _ketamineCount <= 0.6) then {[_patient, 0.8] call ACEFUNC(medical_status,adjustPainLevel)}; - - [_patient, "activity", LSTRING(iv_log), [[_medic] call ACEFUNC(common,getName), "FAST IO"]] call ACEFUNC(medical_treatment,addToLog); - [_patient, "FAST IO"] call ACEFUNC(medical_treatment,addToTriageCard); -}; if (GVAR(IVdropEnable) && ((_usedItem isEqualTo "kat_IV_16") || (_usedItem isEqualTo "kat_IV_14") || (_usedItem isEqualTo "kat_IV_20"))) then { [{ From ffa00c747e82248e79e3f0d282c9ba23712c3e86 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Tue, 10 Sep 2024 00:24:39 -0700 Subject: [PATCH 018/149] Removal --- addons/pharma/functions/fnc_applyIV.sqf | 13 +++++++------ addons/pharma/functions/fnc_retrieveIV.sqf | 11 ++++++----- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/addons/pharma/functions/fnc_applyIV.sqf b/addons/pharma/functions/fnc_applyIV.sqf index 619ad9572..6f4695fc2 100644 --- a/addons/pharma/functions/fnc_applyIV.sqf +++ b/addons/pharma/functions/fnc_applyIV.sqf @@ -44,12 +44,12 @@ switch (_usedItem) do { _patient setVariable [QGVAR(IV), _IVarray, true]; [_patient, "activity", LSTRING(iv_log), [[_medic] call ACEFUNC(common,getName), "16g IV"]] call ACEFUNC(medical_treatment,addToLog); [_patient, "16g IV"] call ACEFUNC(medical_treatment,addToTriageCard); }; - case "kat_IV_14": { _IVarray set [_partIndex, 2]; + case "kat_IV_14": { _IVarray set [_partIndex, 3]; _patient setVariable [QGVAR(IV), _IVarray, true]; [_patient, "activity", LSTRING(iv_log), [[_medic] call ACEFUNC(common,getName), "14g IV"]] call ACEFUNC(medical_treatment,addToLog); [_patient, "14g IV"] call ACEFUNC(medical_treatment,addToTriageCard);}; - case "kat_IV_20": { _IVarray set [_partIndex, 2]; + case "kat_IV_20": { _IVarray set [_partIndex, 4]; _patient setVariable [QGVAR(IV), _IVarray, true]; [_patient, "activity", LSTRING(iv_log), [[_medic] call ACEFUNC(common,getName), "20g IV"]] call ACEFUNC(medical_treatment,addToLog); @@ -94,10 +94,11 @@ if (GVAR(IVdropEnable) && ((_usedItem isEqualTo "kat_IV_16") || (_usedItem isEqu private _IVactual = _IVarray select _partIndex; if(GVAR(IVreuse)) then { - if (_IVactual == 1) then { - _patient addItem "kat_IO_FAST"; - } else { - _patient addItem "kat_IV_16"; + switch (_IVactual) do { + case "1":{_patient addItem "kat_IO_FAST"} + case "2":{_patient addItem "kat_IV_16"} + case "3":{_patient addItem "kat_IV_14"} + case "4":{_patient addItem "kat_IV_20"} }; }; diff --git a/addons/pharma/functions/fnc_retrieveIV.sqf b/addons/pharma/functions/fnc_retrieveIV.sqf index a3e68c693..b181645d0 100644 --- a/addons/pharma/functions/fnc_retrieveIV.sqf +++ b/addons/pharma/functions/fnc_retrieveIV.sqf @@ -25,11 +25,12 @@ private _newArray = _patient getVariable [QACEGVAR(medical,ivBags), []]; private _IVactual = _IVarray select _partIndex; if(GVAR(IVreuse)) then { - if (_IVactual == 1) then { - _medic addItem "kat_IO_FAST"; - } else { - _medic addItem "kat_IV_16"; - }; + switch (_IVactual) do { + case "1":{_patient addItem "kat_IO_FAST"} + case "2":{_patient addItem "kat_IV_16"} + case "3":{_patient addItem "kat_IV_14"} + case "4":{_patient addItem "kat_IV_20"} + }; }; _IVarray set [_partIndex, 0]; From 5ed12ecf23211f02d415da23e0f7bd4500a5e465 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Tue, 10 Sep 2024 00:28:51 -0700 Subject: [PATCH 019/149] fixes --- addons/pharma/functions/fnc_applyIV.sqf | 8 ++++---- addons/pharma/functions/fnc_retrieveIV.sqf | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/addons/pharma/functions/fnc_applyIV.sqf b/addons/pharma/functions/fnc_applyIV.sqf index 6f4695fc2..3237b3281 100644 --- a/addons/pharma/functions/fnc_applyIV.sqf +++ b/addons/pharma/functions/fnc_applyIV.sqf @@ -95,10 +95,10 @@ if (GVAR(IVdropEnable) && ((_usedItem isEqualTo "kat_IV_16") || (_usedItem isEqu if(GVAR(IVreuse)) then { switch (_IVactual) do { - case "1":{_patient addItem "kat_IO_FAST"} - case "2":{_patient addItem "kat_IV_16"} - case "3":{_patient addItem "kat_IV_14"} - case "4":{_patient addItem "kat_IV_20"} + case "1": {_patient addItem "kat_IO_FAST"}; + case "2": {_patient addItem "kat_IV_16"}; + case "3": {_patient addItem "kat_IV_14"}; + case "4": {_patient addItem "kat_IV_20"}; }; }; diff --git a/addons/pharma/functions/fnc_retrieveIV.sqf b/addons/pharma/functions/fnc_retrieveIV.sqf index b181645d0..4ff967575 100644 --- a/addons/pharma/functions/fnc_retrieveIV.sqf +++ b/addons/pharma/functions/fnc_retrieveIV.sqf @@ -26,10 +26,10 @@ private _IVactual = _IVarray select _partIndex; if(GVAR(IVreuse)) then { switch (_IVactual) do { - case "1":{_patient addItem "kat_IO_FAST"} - case "2":{_patient addItem "kat_IV_16"} - case "3":{_patient addItem "kat_IV_14"} - case "4":{_patient addItem "kat_IV_20"} + case "1": {_patient addItem "kat_IO_FAST"}; + case "2": {_patient addItem "kat_IV_16"}; + case "3": {_patient addItem "kat_IV_14"}; + case "4": {_patient addItem "kat_IV_20"}; }; }; From c4fca7d95a787da3e01f1e911ffb45bab6875d6d Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Tue, 10 Sep 2024 00:36:55 -0700 Subject: [PATCH 020/149] fixes --- addons/pharma/ACE_Medical_Treatment_Actions.hpp | 2 +- addons/pharma/functions/fnc_applyIV.sqf | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/addons/pharma/ACE_Medical_Treatment_Actions.hpp b/addons/pharma/ACE_Medical_Treatment_Actions.hpp index 7f77ad9f5..eaeb59cad 100644 --- a/addons/pharma/ACE_Medical_Treatment_Actions.hpp +++ b/addons/pharma/ACE_Medical_Treatment_Actions.hpp @@ -331,7 +331,7 @@ class ACE_Medical_Treatment_Actions { items[] = {"kat_IV_20"}; condition = QUOTE(!([ARR_3(_player,_patient,_bodyPart)] call FUNC(removeIV))); treatmentTime = QGVAR(treatmentTime_ApplyIV); - callbackSuccess = QUOTE([ARR_4(_player,_patient,_bodyPart,'kat_IV_14')] call FUNC(applyIV)); + callbackSuccess = QUOTE([ARR_4(_player,_patient,_bodyPart,'kat_IV_20')] call FUNC(applyIV)); litter[] = {}; sounds[] = {}; }; diff --git a/addons/pharma/functions/fnc_applyIV.sqf b/addons/pharma/functions/fnc_applyIV.sqf index 3237b3281..d0599c0ed 100644 --- a/addons/pharma/functions/fnc_applyIV.sqf +++ b/addons/pharma/functions/fnc_applyIV.sqf @@ -44,16 +44,19 @@ switch (_usedItem) do { _patient setVariable [QGVAR(IV), _IVarray, true]; [_patient, "activity", LSTRING(iv_log), [[_medic] call ACEFUNC(common,getName), "16g IV"]] call ACEFUNC(medical_treatment,addToLog); [_patient, "16g IV"] call ACEFUNC(medical_treatment,addToTriageCard); }; + case "kat_IV_14": { _IVarray set [_partIndex, 3]; _patient setVariable [QGVAR(IV), _IVarray, true]; [_patient, "activity", LSTRING(iv_log), [[_medic] call ACEFUNC(common,getName), "14g IV"]] call ACEFUNC(medical_treatment,addToLog); [_patient, "14g IV"] call ACEFUNC(medical_treatment,addToTriageCard);}; + case "kat_IV_20": { _IVarray set [_partIndex, 4]; _patient setVariable [QGVAR(IV), _IVarray, true]; [_patient, "activity", LSTRING(iv_log), [[_medic] call ACEFUNC(common,getName), "20g IV"]] call ACEFUNC(medical_treatment,addToLog); [_patient, "20g IV"] call ACEFUNC(medical_treatment,addToTriageCard);}; + case "kat_IO_FAST": { _IVarray set [_partIndex, 1]; _patient setVariable [QGVAR(IV), _IVarray, true]; From 7a010068abba73c7ce0f4529977cfcbf33405abb Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Tue, 10 Sep 2024 02:28:05 -0700 Subject: [PATCH 021/149] Update fnc_retrieveIV.sqf --- addons/pharma/functions/fnc_retrieveIV.sqf | 1 + 1 file changed, 1 insertion(+) diff --git a/addons/pharma/functions/fnc_retrieveIV.sqf b/addons/pharma/functions/fnc_retrieveIV.sqf index 4ff967575..ac98f6cf7 100644 --- a/addons/pharma/functions/fnc_retrieveIV.sqf +++ b/addons/pharma/functions/fnc_retrieveIV.sqf @@ -30,6 +30,7 @@ if(GVAR(IVreuse)) then { case "2": {_patient addItem "kat_IV_16"}; case "3": {_patient addItem "kat_IV_14"}; case "4": {_patient addItem "kat_IV_20"}; + default: {} }; }; From 93dd5a22d90b4b6b82ab35250940486e4e9ac7cd Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Tue, 10 Sep 2024 02:33:42 -0700 Subject: [PATCH 022/149] Update fnc_retrieveIV.sqf --- addons/pharma/functions/fnc_retrieveIV.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/pharma/functions/fnc_retrieveIV.sqf b/addons/pharma/functions/fnc_retrieveIV.sqf index ac98f6cf7..e9a967291 100644 --- a/addons/pharma/functions/fnc_retrieveIV.sqf +++ b/addons/pharma/functions/fnc_retrieveIV.sqf @@ -30,7 +30,7 @@ if(GVAR(IVreuse)) then { case "2": {_patient addItem "kat_IV_16"}; case "3": {_patient addItem "kat_IV_14"}; case "4": {_patient addItem "kat_IV_20"}; - default: {} + default {}; }; }; From 7c2d797c31fd3a60771209733d49f662e905ad4d Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Tue, 10 Sep 2024 18:09:24 -0700 Subject: [PATCH 023/149] Update fnc_retrieveIV.sqf --- addons/pharma/functions/fnc_retrieveIV.sqf | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/addons/pharma/functions/fnc_retrieveIV.sqf b/addons/pharma/functions/fnc_retrieveIV.sqf index e9a967291..d15317b80 100644 --- a/addons/pharma/functions/fnc_retrieveIV.sqf +++ b/addons/pharma/functions/fnc_retrieveIV.sqf @@ -26,10 +26,10 @@ private _IVactual = _IVarray select _partIndex; if(GVAR(IVreuse)) then { switch (_IVactual) do { - case "1": {_patient addItem "kat_IO_FAST"}; - case "2": {_patient addItem "kat_IV_16"}; - case "3": {_patient addItem "kat_IV_14"}; - case "4": {_patient addItem "kat_IV_20"}; + case 1: {_patient addItem "kat_IO_FAST"}; + case 2: {_patient addItem "kat_IV_16"}; + case 3: {_patient addItem "kat_IV_14"}; + case 4: {_patient addItem "kat_IV_20"}; default {}; }; }; From b4488d5cb288c13835a2dc1e8c44aae2c99e5c40 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Tue, 10 Sep 2024 18:31:42 -0700 Subject: [PATCH 024/149] fixes --- addons/pharma/CfgWeapons.hpp | 10 +++++----- addons/pharma/stringtable.xml | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/addons/pharma/CfgWeapons.hpp b/addons/pharma/CfgWeapons.hpp index f8deb5fcc..c8b8ec064 100644 --- a/addons/pharma/CfgWeapons.hpp +++ b/addons/pharma/CfgWeapons.hpp @@ -278,7 +278,7 @@ class CfgWeapons { mass = 1; }; }; - class kat_10ml_syringe_txa_2: ACE_ItemCore { + class kat_syringe_txa_10ml_2: ACE_ItemCore { scope = 2; displayName = CSTRING(Syringe_txa_10_2_Display); picture = QPATHTOF(ui\icon_fast_io.paa); @@ -289,7 +289,7 @@ class CfgWeapons { mass = 1; }; }; - class kat_5ml_syringe_txa_1: ACE_ItemCore { + class kat_syringe_txa_5ml_1: ACE_ItemCore { scope = 2; displayName = CSTRING(Syringe_txa_5_1_Display); picture = QPATHTOF(ui\icon_fast_io.paa); @@ -300,7 +300,7 @@ class CfgWeapons { mass = 1; }; }; - class kat_5ml_syringe_txa_2: ACE_ItemCore { + class kat_syringe_txa_5ml_2: ACE_ItemCore { scope = 2; displayName = CSTRING(Syringe_txa_5_2_Display); picture = QPATHTOF(ui\icon_fast_io.paa); @@ -311,7 +311,7 @@ class CfgWeapons { mass = 1; }; }; - class kat_5ml_syringe_eaca_1: ACE_ItemCore { + class kat_syringe_eaca_5ml_1: ACE_ItemCore { scope = 2; displayName = CSTRING(Syringe_eaca_5_1_Display); picture = QPATHTOF(ui\icon_fast_io.paa); @@ -322,7 +322,7 @@ class CfgWeapons { mass = 1; }; }; - class kat_5ml_syringe_eaca_2: ACE_ItemCore { + class kat_syringe_eaca_5ml_2: ACE_ItemCore { scope = 2; displayName = CSTRING(Syringe_eaca_5_2_Display); picture = QPATHTOF(ui\icon_fast_io.paa); diff --git a/addons/pharma/stringtable.xml b/addons/pharma/stringtable.xml index 35b73aad7..25765178f 100644 --- a/addons/pharma/stringtable.xml +++ b/addons/pharma/stringtable.xml @@ -3800,7 +3800,7 @@ 5ml Syringe loaded with 7.5 grams of EACA - + 5ml Syringe/15g EACA From a1b4471839c84bdf993d0429a39f03f0864db781 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Tue, 10 Sep 2024 18:36:24 -0700 Subject: [PATCH 025/149] Update stringtable.xml --- addons/pharma/stringtable.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/pharma/stringtable.xml b/addons/pharma/stringtable.xml index 25765178f..7dd92271d 100644 --- a/addons/pharma/stringtable.xml +++ b/addons/pharma/stringtable.xml @@ -3800,7 +3800,7 @@ 5ml Syringe loaded with 7.5 grams of EACA - + 5ml Syringe/15g EACA From f549e5d08380cdf404d58bb38e6e944fe0679d83 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Tue, 10 Sep 2024 18:51:27 -0700 Subject: [PATCH 026/149] Update fnc_gui_updateInjuryListPart.sqf --- addons/pharma/functions/fnc_gui_updateInjuryListPart.sqf | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/addons/pharma/functions/fnc_gui_updateInjuryListPart.sqf b/addons/pharma/functions/fnc_gui_updateInjuryListPart.sqf index 91ea65d69..dc5153064 100644 --- a/addons/pharma/functions/fnc_gui_updateInjuryListPart.sqf +++ b/addons/pharma/functions/fnc_gui_updateInjuryListPart.sqf @@ -29,4 +29,13 @@ if (_IVactual > 0) then { } else { _entries pushBack [LLSTRING(IV_16_Display), [0.3, 0.6, 0.3, 1]]; }; +}; +if (_IVactual > 0) then { + switch (_IVactual) do { + case 1: { _entries pushBack [LLSTRING(IO_45_Display), [0.3, 0.6, 0.3, 1]]}; + case 2: { _entries pushBack [LLSTRING(IV_16_Display), [0.3, 0.6, 0.3, 1]]}; + case 3: { _entries pushBack [LLSTRING(IV_14_Display), [0.3, 0.6, 0.3, 1]]}; + case 4: { _entries pushBack [LLSTRING(IV_20_Display), [0.3, 0.6, 0.3, 1]]}; + default {}; + }; }; \ No newline at end of file From f22081bc6a0aa65c71d8bd07d522426c16edb50d Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Tue, 10 Sep 2024 18:55:18 -0700 Subject: [PATCH 027/149] Update fnc_gui_updateInjuryListPart.sqf --- addons/pharma/functions/fnc_gui_updateInjuryListPart.sqf | 7 ------- 1 file changed, 7 deletions(-) diff --git a/addons/pharma/functions/fnc_gui_updateInjuryListPart.sqf b/addons/pharma/functions/fnc_gui_updateInjuryListPart.sqf index dc5153064..1a3399722 100644 --- a/addons/pharma/functions/fnc_gui_updateInjuryListPart.sqf +++ b/addons/pharma/functions/fnc_gui_updateInjuryListPart.sqf @@ -23,13 +23,6 @@ params ["_ctrl", "_target", "_selectionN", "_entries"]; private _placed = _target getVariable [QGVAR(IV), [0,0,0,0,0,0]]; private _IVactual = _placed select _selectionN; -if (_IVactual > 0) then { - if (_IVactual == 1) then { - _entries pushBack [LLSTRING(IO_45_Display), [0.3, 0.6, 0.3, 1]]; - } else { - _entries pushBack [LLSTRING(IV_16_Display), [0.3, 0.6, 0.3, 1]]; - }; -}; if (_IVactual > 0) then { switch (_IVactual) do { case 1: { _entries pushBack [LLSTRING(IO_45_Display), [0.3, 0.6, 0.3, 1]]}; From c77878e888d4606ef05809cba5a794a1ad6d3e7c Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Wed, 11 Sep 2024 02:25:12 -0700 Subject: [PATCH 028/149] Add rates and fixed blockages --- addons/pharma/functions/fnc_applyIV.sqf | 52 +++++++++++-------- addons/pharma/functions/fnc_fullHealLocal.sqf | 1 + .../functions/fnc_getBloodVolumeChange.sqf | 3 +- .../pharma/functions/fnc_inspectCatheter.sqf | 2 +- .../pharma/functions/fnc_medicationLocal.sqf | 2 +- addons/pharma/functions/fnc_salineCheck.sqf | 2 +- .../pharma/functions/fnc_tourniquetRemove.sqf | 2 +- .../fnc_treatmentAdvanced_EACALocal.sqf | 10 ++-- .../fnc_treatmentAdvanced_FlushLocal.sqf | 2 +- .../fnc_treatmentAdvanced_TXALocal.sqf | 10 ++-- 10 files changed, 48 insertions(+), 38 deletions(-) diff --git a/addons/pharma/functions/fnc_applyIV.sqf b/addons/pharma/functions/fnc_applyIV.sqf index d0599c0ed..81c57adf9 100644 --- a/addons/pharma/functions/fnc_applyIV.sqf +++ b/addons/pharma/functions/fnc_applyIV.sqf @@ -27,6 +27,7 @@ private _IVarray = _patient getVariable [QGVAR(IV), [0,0,0,0,0,0]]; private _IVactual = _IVarray select _partIndex; private _IVpfh = _patient getVariable [QGVAR(IVpfh), [0,0,0,0,0,0]]; private _IVpfhActual = _IVpfh select _partIndex; +private _IVrate = _patient getVariable [QGVAR(IVrate), [0,0,0,0,0,0]]; if (_IVpfhActual > 0) then { [_IVpfhActual] call CBA_fnc_removePerFrameHandler; @@ -41,35 +42,42 @@ if (_IVpfhActual > 0) then { switch (_usedItem) do { case "kat_IV_16": { _IVarray set [_partIndex, 2]; + _IVrate set [_partIndex, 1]; _patient setVariable [QGVAR(IV), _IVarray, true]; + _patient setVariable [QGVAR(IVrate), _IVrate, true]; [_patient, "activity", LSTRING(iv_log), [[_medic] call ACEFUNC(common,getName), "16g IV"]] call ACEFUNC(medical_treatment,addToLog); [_patient, "16g IV"] call ACEFUNC(medical_treatment,addToTriageCard); }; - case "kat_IV_14": { _IVarray set [_partIndex, 3]; - _patient setVariable [QGVAR(IV), _IVarray, true]; - - [_patient, "activity", LSTRING(iv_log), [[_medic] call ACEFUNC(common,getName), "14g IV"]] call ACEFUNC(medical_treatment,addToLog); - [_patient, "14g IV"] call ACEFUNC(medical_treatment,addToTriageCard);}; - - case "kat_IV_20": { _IVarray set [_partIndex, 4]; - _patient setVariable [QGVAR(IV), _IVarray, true]; + case "kat_IV_14": { + _IVarray set [_partIndex, 3]; + _IVrate set [_partIndex, 1.5]; + _patient setVariable [QGVAR(IV), _IVarray, true]; + _patient setVariable [QGVAR(IVrate), _IVrate, true]; + [_patient, "activity", LSTRING(iv_log), [[_medic] call ACEFUNC(common,getName), "14g IV"]] call ACEFUNC(medical_treatment,addToLog); + [_patient, "14g IV"] call ACEFUNC(medical_treatment,addToTriageCard);}; - [_patient, "activity", LSTRING(iv_log), [[_medic] call ACEFUNC(common,getName), "20g IV"]] call ACEFUNC(medical_treatment,addToLog); - [_patient, "20g IV"] call ACEFUNC(medical_treatment,addToTriageCard);}; + case "kat_IV_20": { + _IVarray set [_partIndex, 4]; + _IVrate set [_partIndex, 0.5]; + _patient setVariable [QGVAR(IV), _IVarray, true]; + _patient setVariable [QGVAR(IVrate), _IVrate, true]; + [_patient, "activity", LSTRING(iv_log), [[_medic] call ACEFUNC(common,getName), "20g IV"]] call ACEFUNC(medical_treatment,addToLog); + [_patient, "20g IV"] call ACEFUNC(medical_treatment,addToTriageCard);}; case "kat_IO_FAST": { - _IVarray set [_partIndex, 1]; - _patient setVariable [QGVAR(IV), _IVarray, true]; - - private _lidocaineCount = [_patient, "Lidocaine", false] call ACEFUNC(medical_status,getMedicationCount); - private _morphineCount = [_patient, "Morphine", false] call ACEFUNC(medical_status,getMedicationCount); - private _nalbuphineCount = [_patient, "Nalbuphine", false] call ACEFUNC(medical_status,getMedicationCount); - private _fentanylCount = [_patient, "Fentanyl", false] call ACEFUNC(medical_status,getMedicationCount); - private _ketamineCount = [_patient, "Ketamine", false] call ACEFUNC(medical_status,getMedicationCount); - if (_lidocaineCount <= 0.6 && _morphineCount <= 0.6 && _nalbuphineCount <= 0.6 && _fentanylCount <= 0.6 && _ketamineCount <= 0.6) then {[_patient, 0.8] call ACEFUNC(medical_status,adjustPainLevel)}; - - [_patient, "activity", LSTRING(iv_log), [[_medic] call ACEFUNC(common,getName), "FAST IO"]] call ACEFUNC(medical_treatment,addToLog); - [_patient, "FAST IO"] call ACEFUNC(medical_treatment,addToTriageCard);}; + _IVarray set [_partIndex, 1]; + _IVrate set [_partIndex, 0.2]; + _patient setVariable [QGVAR(IV), _IVarray, true]; + _patient setVariable [QGVAR(IVrate), _IVrate, true]; + private _lidocaineCount = [_patient, "Lidocaine", false] call ACEFUNC(medical_status,getMedicationCount); + private _morphineCount = [_patient, "Morphine", false] call ACEFUNC(medical_status,getMedicationCount); + private _nalbuphineCount = [_patient, "Nalbuphine", false] call ACEFUNC(medical_status,getMedicationCount); + private _fentanylCount = [_patient, "Fentanyl", false] call ACEFUNC(medical_status,getMedicationCount); + private _ketamineCount = [_patient, "Ketamine", false] call ACEFUNC(medical_status,getMedicationCount); + if (_lidocaineCount <= 0.6 && _morphineCount <= 0.6 && _nalbuphineCount <= 0.6 && _fentanylCount <= 0.6 && _ketamineCount <= 0.6) then {[_patient, 0.8] call ACEFUNC(medical_status,adjustPainLevel)}; + + [_patient, "activity", LSTRING(iv_log), [[_medic] call ACEFUNC(common,getName), "FAST IO"]] call ACEFUNC(medical_treatment,addToLog); + [_patient, "FAST IO"] call ACEFUNC(medical_treatment,addToTriageCard);}; default {}; }; diff --git a/addons/pharma/functions/fnc_fullHealLocal.sqf b/addons/pharma/functions/fnc_fullHealLocal.sqf index 14befa1c7..cecc267fb 100644 --- a/addons/pharma/functions/fnc_fullHealLocal.sqf +++ b/addons/pharma/functions/fnc_fullHealLocal.sqf @@ -31,6 +31,7 @@ _patient setVariable [QGVAR(alphaAction), 1, true]; _patient setVariable [QGVAR(IV), [0,0,0,0,0,0], true]; _patient setVariable [QGVAR(IVflow), [0,0,0,0,0,0], true]; _patient setVariable [QGVAR(IVpfh), [0,0,0,0,0,0], true]; +_patient setVariable [QGVAR(IVrate), [0,0,0,0,0,0], true]; _patient setVariable [QGVAR(active), false, true]; _patient setVariable [QGVAR(IVPharma_PFH), nil, true]; _patient setVariable [QGVAR(externalPh), 0, true]; diff --git a/addons/pharma/functions/fnc_getBloodVolumeChange.sqf b/addons/pharma/functions/fnc_getBloodVolumeChange.sqf index 0be5e9913..9bf422406 100644 --- a/addons/pharma/functions/fnc_getBloodVolumeChange.sqf +++ b/addons/pharma/functions/fnc_getBloodVolumeChange.sqf @@ -55,7 +55,8 @@ if (!isNil {_unit getVariable [QACEGVAR(medical,ivBags),[]]}) then { if ((_tourniquets select _bodyPart isEqualTo 0) && (_IVarray select _bodyPart isNotEqualTo 3)) then { private _IVflow = _unit getVariable [QGVAR(IVflow), [0,0,0,0,0,0]]; - private _bagChange = (_flowCalculation * (_IVflow select _bodyPart)) min _bagVolumeRemaining; // absolute value of the change in miliLiters + private _IVrate = _unit getVariable [QGVAR(IVrate), [0,0,0,0,0,0]]; + private _bagChange = (_flowCalculation * (_IVflow select _bodyPart) * (_IVrate select _bodyPart)) min _bagVolumeRemaining; // absolute value of the change in miliLiters _bagVolumeRemaining = _bagVolumeRemaining - _bagChange; if (_hypothermia) then { diff --git a/addons/pharma/functions/fnc_inspectCatheter.sqf b/addons/pharma/functions/fnc_inspectCatheter.sqf index c8178f00e..172e96bc9 100644 --- a/addons/pharma/functions/fnc_inspectCatheter.sqf +++ b/addons/pharma/functions/fnc_inspectCatheter.sqf @@ -23,7 +23,7 @@ private _partIndex = ALL_BODY_PARTS find toLower _bodyPart; private _IVarray = _patient getVariable [QGVAR(IV), [0,0,0,0,0,0]]; private _IVactual = _IVarray select _partIndex; -if (_IVactual == 3) exitWith { +if (_IVactual == 7) exitWith { private _output = LLSTRING(IVblock_closed); [_output, 1.5, _medic] call ACEFUNC(common,displayTextStructured); }; diff --git a/addons/pharma/functions/fnc_medicationLocal.sqf b/addons/pharma/functions/fnc_medicationLocal.sqf index 78dcfc1cd..b3f41f84d 100644 --- a/addons/pharma/functions/fnc_medicationLocal.sqf +++ b/addons/pharma/functions/fnc_medicationLocal.sqf @@ -57,7 +57,7 @@ TRACE_1("Running treatmentMedicationLocal with Advanced configuration for",_pati private _partIndex = ALL_BODY_PARTS find toLower _bodyPart; // Handle IV blockage -if (((_patient getVariable [QGVAR(IV), [0,0,0,0,0,0]]) select _partIndex) isEqualTo 3) exitWith { +if (((_patient getVariable [QGVAR(IV), [0,0,0,0,0,0]]) select _partIndex) isEqualTo 7) exitWith { private _occludedMedications = _patient getVariable [QACEGVAR(medical,occludedMedications), []]; _occludedMedications pushBack [_partIndex, _classname]; _patient setVariable [QACEGVAR(medical,occludedMedications), _occludedMedications, true]; diff --git a/addons/pharma/functions/fnc_salineCheck.sqf b/addons/pharma/functions/fnc_salineCheck.sqf index 574c8db41..96e249386 100644 --- a/addons/pharma/functions/fnc_salineCheck.sqf +++ b/addons/pharma/functions/fnc_salineCheck.sqf @@ -22,7 +22,7 @@ params ["_medic", "_patient", "_bodyPart"]; private _partIndex = ALL_BODY_PARTS find toLower _bodyPart; private _IVarray = _patient getVariable [QGVAR(IV), [0,0,0,0,0,0]]; private _IVactual = _IVarray select _partIndex; -if (_IVactual != 3) exitWith {false}; +if (_IVactual != 7) exitWith {false}; private _fluidCheck = _patient getVariable [QACEGVAR(medical,ivBags), []]; private _check = false; diff --git a/addons/pharma/functions/fnc_tourniquetRemove.sqf b/addons/pharma/functions/fnc_tourniquetRemove.sqf index 135824569..38a5fc8a4 100644 --- a/addons/pharma/functions/fnc_tourniquetRemove.sqf +++ b/addons/pharma/functions/fnc_tourniquetRemove.sqf @@ -46,7 +46,7 @@ private _receiver = [_patient, _medic, _medic] select ACEGVAR(medical_treatment, private _occludedMedications = _patient getVariable [QACEGVAR(medical,occludedMedications), []]; private _arrayModified = false; -if !(((_patient getVariable [QGVAR(IV), [0,0,0,0,0,0]]) select _partIndex) isEqualTo 3) then { +if !(((_patient getVariable [QGVAR(IV), [0,0,0,0,0,0]]) select _partIndex) isEqualTo 7) then { { _x params ["_bodyPartN", "_medication"]; diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_EACALocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_EACALocal.sqf index 2a815a6df..1d08d1597 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_EACALocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_EACALocal.sqf @@ -29,26 +29,26 @@ private _cycleTime = missionNamespace getVariable [QGVAR(bandageCycleTime_EACA), if (_IVactual > 1) then { private _randomNumber = random 100; - if (_IVactual != 4) exitWith { + if (_IVactual != 8) exitWith { if (_randomNumber < GVAR(blockChance)) then { [{ params ["_patient", "_IVarray", "_partIndex"]; - if (_IVactual > 1 && _IVactual != 4) exitWith {}; - _IVarray set [_partIndex, 3]; + if (_IVactual > 1 && _IVactual != 8) exitWith {}; + _IVarray set [_partIndex, 7]; _patient setVariable [QGVAR(IV), _IVarray, true]; }, [_patient, _IVarray, _partIndex], (random 300)] call CBA_fnc_waitAndExecute; }; }; - _IVarray set [_partIndex, 2]; + _IVarray set [_partIndex, 6]; _patient setVariable [QGVAR(IV), _IVarray, true]; }; if (!(GVAR(coagulation)) || GVAR(coagulation_allow_EACA_script)) then { - if (_IVactual != 3) then { + if (_IVactual != 5) then { if (_countEACA > 1 && !(_allowStack)) exitWith {}; [{ diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_FlushLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_FlushLocal.sqf index 5ffaf00f9..8043d2004 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_FlushLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_FlushLocal.sqf @@ -23,7 +23,7 @@ private _partIndex = ALL_BODY_PARTS find toLower _bodyPart; private _IVarray = _patient getVariable [QGVAR(IV), [0,0,0,0,0,0]]; private _IVactual = _IVarray select _partIndex; -_IVarray set [_partIndex, 4]; +_IVarray set [_partIndex, 8]; _patient setVariable [QGVAR(IV), _IVarray, true]; private _occludedMedications = _patient getVariable [QACEGVAR(medical,occludedMedications), []]; diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_TXALocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_TXALocal.sqf index c52d0a4be..6aea3c45b 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_TXALocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_TXALocal.sqf @@ -29,26 +29,26 @@ private _cycleTime = missionNamespace getVariable [QGVAR(bandageCycleTime_TXA), if (_IVactual > 1) then { private _randomNumber = random 100; - if (_IVactual != 4) exitWith { + if (_IVactual != 8) exitWith { if (_randomNumber < GVAR(blockChance)) then { [{ params["_patient", "_IVarray", "_partIndex"]; - if (_IVactual > 1 && _IVactual != 4) exitWith {}; - _IVarray set [_partIndex, 3]; + if (_IVactual > 1 && _IVactual != 8) exitWith {}; + _IVarray set [_partIndex, 7]; _patient setVariable [QGVAR(IV), _IVarray, true]; }, [_patient, _IVarray, _partIndex], (random 300)] call CBA_fnc_waitAndExecute; }; }; - _IVarray set [_partIndex, 2]; + _IVarray set [_partIndex, 6]; _patient setVariable [QGVAR(IV), _IVarray, true]; }; if (!(GVAR(coagulation)) || GVAR(coagulation_allow_TXA_script)) then { - if (_IVactual != 3) then { + if (_IVactual != 5) then { if (_countTXA > 1 && !(_allowStack)) exitWith {}; From cf729744cdafc673b438ea07d4f15caec59f616d Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Wed, 11 Sep 2024 02:35:40 -0700 Subject: [PATCH 029/149] Update fnc_getBloodVolumeChange.sqf --- addons/pharma/functions/fnc_getBloodVolumeChange.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/pharma/functions/fnc_getBloodVolumeChange.sqf b/addons/pharma/functions/fnc_getBloodVolumeChange.sqf index 9bf422406..997394903 100644 --- a/addons/pharma/functions/fnc_getBloodVolumeChange.sqf +++ b/addons/pharma/functions/fnc_getBloodVolumeChange.sqf @@ -53,7 +53,7 @@ if (!isNil {_unit getVariable [QACEGVAR(medical,ivBags),[]]}) then { private _tourniquets = GET_TOURNIQUETS(_unit); - if ((_tourniquets select _bodyPart isEqualTo 0) && (_IVarray select _bodyPart isNotEqualTo 3)) then { + if ((_tourniquets select _bodyPart isEqualTo 0) && (_IVarray select _bodyPart isNotEqualTo 7)) then { private _IVflow = _unit getVariable [QGVAR(IVflow), [0,0,0,0,0,0]]; private _IVrate = _unit getVariable [QGVAR(IVrate), [0,0,0,0,0,0]]; private _bagChange = (_flowCalculation * (_IVflow select _bodyPart) * (_IVrate select _bodyPart)) min _bagVolumeRemaining; // absolute value of the change in miliLiters From 7c8e95e32600c2d801e93c545177223df74fffa1 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Wed, 11 Sep 2024 03:14:17 -0700 Subject: [PATCH 030/149] Create fnc_overdose.sqf --- addons/pharma/functions/fnc_overdose.sqf | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 addons/pharma/functions/fnc_overdose.sqf diff --git a/addons/pharma/functions/fnc_overdose.sqf b/addons/pharma/functions/fnc_overdose.sqf new file mode 100644 index 000000000..52188229c --- /dev/null +++ b/addons/pharma/functions/fnc_overdose.sqf @@ -0,0 +1,24 @@ +/* + * Author: Cplhardcore + * Applies Overdose effects + * + * Arguments: + * 0: Patient + * 1: Medication + * + * Return Value: + * None + * + * Example: + * [cursorTarget, "Morphine"] call kat_pharma_fnc_overdose; + * + * Public: No + */ + params ["_patient", "_classname",]; + + switch (_classname) do { + case "Morphine": { + }; + case "Epinephrine": { + }; + }; \ No newline at end of file From 96dc84241afac2751fb6adee86384ecc075a0e9e Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Wed, 11 Sep 2024 03:34:46 -0700 Subject: [PATCH 031/149] EACA and TXA changes --- addons/pharma/ACE_Medical_Treatment.hpp | 6 +++--- addons/pharma/functions/fnc_clotWound.sqf | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/addons/pharma/ACE_Medical_Treatment.hpp b/addons/pharma/ACE_Medical_Treatment.hpp index 6112ed71e..93e00591f 100644 --- a/addons/pharma/ACE_Medical_Treatment.hpp +++ b/addons/pharma/ACE_Medical_Treatment.hpp @@ -83,8 +83,8 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseLow[] = {0, 0}; hrIncreaseNormal[] = {0, 0}; hrIncreaseHigh[] = {0, 0}; - timeInSystem = 120; - timeTillMaxEffect = 5; + timeInSystem = 240; + timeTillMaxEffect = 30; maxDose = 3; incompatibleMedication[] = {}; viscosityChange = 0; @@ -242,7 +242,7 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseNormal[] = {0, 0}; hrIncreaseHigh[] = {0, 0}; timeInSystem = 600; - timeTillMaxEffect = 15; + timeTillMaxEffect = 60; maxDose = 10; incompatibleMedication[] = {}; viscosityChange = 0; diff --git a/addons/pharma/functions/fnc_clotWound.sqf b/addons/pharma/functions/fnc_clotWound.sqf index 9152bdbe4..ac6ac662b 100644 --- a/addons/pharma/functions/fnc_clotWound.sqf +++ b/addons/pharma/functions/fnc_clotWound.sqf @@ -62,10 +62,10 @@ private _fnc_clotWound = { if (_amountOf * _bleeding > 0) exitWith { - if (_countTXA > 0 || _countEACA > 0) then { + if (_countTXA > 0.3 || _countEACA > 0.3) then { _logString = LSTRING(coagulation_Bandaged_TXA); - if (_countEACA > 0 && _countTXA > 0) exitWith { // If TXA & EACA are in system at same time use EACA bandage + if (_countEACA > 0.3 && _countTXA > 0.3) exitWith { // If TXA & EACA are in system at same time use EACA bandage _woundClotTime = round (_woundClotTime / 3 * 2); _bandageToUse = _bandageToUse + "EACA"; }; @@ -113,8 +113,8 @@ private _fnc_clotWound = { private _openWounds = _unit getVariable [VAR_OPEN_WOUNDS, createHashMap]; private _pulse = _unit getVariable [VAR_HEART_RATE, 80]; private _coagulationFactor = _unit getVariable [QGVAR(coagulationFactor), 30]; - private _countTXA = [_unit, "TXA"] call ACEFUNC(medical_status,getMedicationCount); - private _countEACA = [_unit, "EACA"] call ACEFUNC(medical_status,getMedicationCount); + private _countTXA = [_unit, "TXA", false] call ACEFUNC(medical_status,getMedicationCount); + private _countEACA = [_unit, "EACA", false] call ACEFUNC(medical_status,getMedicationCount); private _hasWoundToBandageArray = []; if (_openWounds isEqualTo createHashMap) exitWith {}; // Exit when hashmap not initialized (Will not work when hashmap is set, cause ace only changes value of "woundCount" to 0) From 64b620198582324d37cf90dab636efc08c8b2b31 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Wed, 11 Sep 2024 03:35:07 -0700 Subject: [PATCH 032/149] Delete fnc_overdose.sqf --- addons/pharma/functions/fnc_overdose.sqf | 24 ------------------------ 1 file changed, 24 deletions(-) delete mode 100644 addons/pharma/functions/fnc_overdose.sqf diff --git a/addons/pharma/functions/fnc_overdose.sqf b/addons/pharma/functions/fnc_overdose.sqf deleted file mode 100644 index 52188229c..000000000 --- a/addons/pharma/functions/fnc_overdose.sqf +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Author: Cplhardcore - * Applies Overdose effects - * - * Arguments: - * 0: Patient - * 1: Medication - * - * Return Value: - * None - * - * Example: - * [cursorTarget, "Morphine"] call kat_pharma_fnc_overdose; - * - * Public: No - */ - params ["_patient", "_classname",]; - - switch (_classname) do { - case "Morphine": { - }; - case "Epinephrine": { - }; - }; \ No newline at end of file From 4a3fa6537977d6605c68b625d7442a8af4880556 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Wed, 11 Sep 2024 19:53:21 -0700 Subject: [PATCH 033/149] add actions try 1 --- addons/pharma/CfgVehicles.hpp | 16 ++++ .../functions/fnc_insertChildrenSyringe.sqf | 83 +++++++++++++++++++ .../pharma/functions/fnc_prepareSyringe.sqf | 43 ++++++++++ 3 files changed, 142 insertions(+) create mode 100644 addons/pharma/functions/fnc_insertChildrenSyringe.sqf create mode 100644 addons/pharma/functions/fnc_prepareSyringe.sqf diff --git a/addons/pharma/CfgVehicles.hpp b/addons/pharma/CfgVehicles.hpp index 0c8dba4e5..09def9332 100644 --- a/addons/pharma/CfgVehicles.hpp +++ b/addons/pharma/CfgVehicles.hpp @@ -74,4 +74,20 @@ class CfgVehicles { MACRO_ADDMAGAZINE(kat_Painkiller,15); }; }; + class Man; + class CAManBase: Man { + class ACE_SelfActions { + class KAT_Equipment { + class KAT_Medication { + displayName = CSTRING(Medication_Action); + statement = "true"; + showDisabled = 0; + exceptions[] = {"isNotInside", "isNotSitting"}; + icon = QPATHTOF(ui\syringe.paa); + insertChildren = QUOTE(_this call FUNC(insertChildrenSyringe)); + items[] = {"kat_5ml_syringe"||"kat_10ml_syringe"}; + }; + }; + }; + }; }; \ No newline at end of file diff --git a/addons/pharma/functions/fnc_insertChildrenSyringe.sqf b/addons/pharma/functions/fnc_insertChildrenSyringe.sqf new file mode 100644 index 000000000..c57ad5ba6 --- /dev/null +++ b/addons/pharma/functions/fnc_insertChildrenSyringe.sqf @@ -0,0 +1,83 @@ +#include "script_component.hpp" +/* + * Author: Katalam + * Insert children actions for medication sub ace self action + * + * Arguments: + * 0: Player + * 1: Player + * 2: Params + * + * Return Value: + * 0: Actions + * + * Example: + * [player, player, []] call kat_pharma_fnc_insertChildrenSyringe; + * + * Public: No + */ + +params ["_target", "_player", "_params"]; + +// Define two dose types +private _doseTypes = ["lowDose", "highDose"]; + +// Define two syringe types +private _syringeTypes = ["smallSyringe", "largeSyringe"]; + +// Define the medications list +private _allMedications = [ + "kat_EACA", + "kat_TXA", + "kat_norepinephrine", + "kat_phenylephrine", + "kat_nitroglycerin", + "kat_amiodarone", + "kat_lidocaine", + "kat_atropine", + "kat_ketamine", + "kat_fentanyl", + "kat_nalbuphine", + "kat_lorazepam", + "kat_flumazenil", + "kat_etomidate" +]; + +// Filter the player's items to get all medicines +private _medications = []; +{ + if (_x in _allMedications) then { + _medications pushBackUnique _x; + }; + // Fallback for additional mods + if ((getNumber (configFile >> "CfgWeapons" >> _x >> "isMedication")) > 0) then { + _medications pushBackUnique _x; + }; +} forEach (items _player); + +// Create the ace actions for each medication, dose type, and syringe type +private _actions = []; +private _condition = {true}; + +{ + private _medication = _x; + { + private _syringeType = _x; + { + private _doseType = _x; + + private _displayName = getText (configFile >> "CfgWeapons" >> _medication >> "displayName"); + + // Format the action variable name to include medication, dose type, and syringe type + private _actionVarName = format [QGVAR(syringe_action_%1_%2_%3), _medication, _syringeType, _doseType]; + + // Create the action + private _action = [_actionVarName, _displayName, "", FUNC(prepareSyringe), _condition, {}, [_medication, _doseType, _syringeType]] call ACEFUNC(interact_menu,createAction); + + // Add the action to the actions array + _actions pushBack [_action, [], _target]; + } forEach _syringeTypes; + } forEach _doseTypes; +} forEach _medications; + +_actions \ No newline at end of file diff --git a/addons/pharma/functions/fnc_prepareSyringe.sqf b/addons/pharma/functions/fnc_prepareSyringe.sqf new file mode 100644 index 000000000..3eaa2fffe --- /dev/null +++ b/addons/pharma/functions/fnc_prepareSyringe.sqf @@ -0,0 +1,43 @@ +#include "script_component.hpp" +/* + * Author: Katalam + * Removes a syringe and a given medication and + * returns a "crafted" syringe with fluid + * + * Arguments: + * 0: Player + * 1: Player + * 2: Params + * 0: Class name of medication + * 1: Dose type + * 2: Syringe type + * + * Return Value: + * None + * + * Example: + * [player, player, ["kat_TXA", "lowDose", "smallSyringe"]] call kat_pharma_fnc_prepareSyringe; + * + * Public: No + */ + +params ["_target", "_player", "_params"]; +_params params ["_className", "_syringeType", "_doseType"]; + +// Combine class name, dose type, and syringe type to form the final syringe class name +private _syringeClassName = format ["Syringe_%1_%2_%3", _className, _syringeType, _doseType,]; + +// Check if the syringe class exists +private _hasSyringe = isClass (configFile >> "CfgWeapons" >> _syringeClassName); + +if (!_hasSyringe) exitWith { + hint format ["Syringe type for %1 with %2 dose and %3 syringe does not exist.", _className, _doseType, _syringeType]; +}; + +// Remove the base syringe and the medication from the player's inventory +private _baseSyringe = format ["kat_%1", _syringeType]; +_player removeItem _baseSyringe; +_player removeItem _className; + +// Add the crafted syringe with fluid to the player's inventory +_player addItem _syringeClassName; \ No newline at end of file From 8d478e91cb06bc93c3f1dd2381dfe496df84a875 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Wed, 11 Sep 2024 19:57:05 -0700 Subject: [PATCH 034/149] Fix --- addons/pharma/CfgVehicles.hpp | 2 +- addons/pharma/stringtable.xml | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/addons/pharma/CfgVehicles.hpp b/addons/pharma/CfgVehicles.hpp index 09def9332..e435cbdd4 100644 --- a/addons/pharma/CfgVehicles.hpp +++ b/addons/pharma/CfgVehicles.hpp @@ -80,12 +80,12 @@ class CfgVehicles { class KAT_Equipment { class KAT_Medication { displayName = CSTRING(Medication_Action); + condition = QUOTE(player hasItem 'kat_5ml_syringe' || player hasItem 'kat_10ml_syringe'); statement = "true"; showDisabled = 0; exceptions[] = {"isNotInside", "isNotSitting"}; icon = QPATHTOF(ui\syringe.paa); insertChildren = QUOTE(_this call FUNC(insertChildrenSyringe)); - items[] = {"kat_5ml_syringe"||"kat_10ml_syringe"}; }; }; }; diff --git a/addons/pharma/stringtable.xml b/addons/pharma/stringtable.xml index 7dd92271d..7b7c7df1c 100644 --- a/addons/pharma/stringtable.xml +++ b/addons/pharma/stringtable.xml @@ -3848,5 +3848,8 @@ Establish 20g IV + + Prepare syringe + From d580f21ba2d59c64c7ac38035555dc3aced484e5 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Wed, 11 Sep 2024 19:59:48 -0700 Subject: [PATCH 035/149] fix 2 --- addons/pharma/functions/fnc_insertChildrenSyringe.sqf | 2 +- addons/pharma/functions/fnc_prepareSyringe.sqf | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/pharma/functions/fnc_insertChildrenSyringe.sqf b/addons/pharma/functions/fnc_insertChildrenSyringe.sqf index c57ad5ba6..a343829da 100644 --- a/addons/pharma/functions/fnc_insertChildrenSyringe.sqf +++ b/addons/pharma/functions/fnc_insertChildrenSyringe.sqf @@ -1,4 +1,4 @@ -#include "script_component.hpp" +#include "..\script_component.hpp" /* * Author: Katalam * Insert children actions for medication sub ace self action diff --git a/addons/pharma/functions/fnc_prepareSyringe.sqf b/addons/pharma/functions/fnc_prepareSyringe.sqf index 3eaa2fffe..b2fbc2469 100644 --- a/addons/pharma/functions/fnc_prepareSyringe.sqf +++ b/addons/pharma/functions/fnc_prepareSyringe.sqf @@ -1,4 +1,4 @@ -#include "script_component.hpp" +#include "..\script_component.hpp" /* * Author: Katalam * Removes a syringe and a given medication and From 1ab030f6a0635f68ed5b0dbd675b378a4cbdf77d Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Wed, 11 Sep 2024 20:08:32 -0700 Subject: [PATCH 036/149] Update CfgVehicles.hpp --- addons/pharma/CfgVehicles.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/pharma/CfgVehicles.hpp b/addons/pharma/CfgVehicles.hpp index e435cbdd4..f86cc1f63 100644 --- a/addons/pharma/CfgVehicles.hpp +++ b/addons/pharma/CfgVehicles.hpp @@ -80,7 +80,7 @@ class CfgVehicles { class KAT_Equipment { class KAT_Medication { displayName = CSTRING(Medication_Action); - condition = QUOTE(player hasItem 'kat_5ml_syringe' || player hasItem 'kat_10ml_syringe'); + condition = QUOTE((player hasItem 'kat_5ml_syringe') || (player hasItem 'kat_10ml_syringe')); statement = "true"; showDisabled = 0; exceptions[] = {"isNotInside", "isNotSitting"}; From 2af6d160a1bf0f86e64df2642bc42c77f3fbbeb4 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Wed, 11 Sep 2024 20:14:44 -0700 Subject: [PATCH 037/149] Update CfgVehicles.hpp --- addons/pharma/CfgVehicles.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/pharma/CfgVehicles.hpp b/addons/pharma/CfgVehicles.hpp index f86cc1f63..4c40c50b2 100644 --- a/addons/pharma/CfgVehicles.hpp +++ b/addons/pharma/CfgVehicles.hpp @@ -80,12 +80,12 @@ class CfgVehicles { class KAT_Equipment { class KAT_Medication { displayName = CSTRING(Medication_Action); - condition = QUOTE((player hasItem 'kat_5ml_syringe') || (player hasItem 'kat_10ml_syringe')); statement = "true"; showDisabled = 0; exceptions[] = {"isNotInside", "isNotSitting"}; icon = QPATHTOF(ui\syringe.paa); insertChildren = QUOTE(_this call FUNC(insertChildrenSyringe)); + items = "kat_5ml_syringe" }; }; }; From 72b7695214c0b9bcf1316a1c8874620d598e6265 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Wed, 11 Sep 2024 20:16:00 -0700 Subject: [PATCH 038/149] Update CfgVehicles.hpp --- addons/pharma/CfgVehicles.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/pharma/CfgVehicles.hpp b/addons/pharma/CfgVehicles.hpp index 4c40c50b2..348a6ca05 100644 --- a/addons/pharma/CfgVehicles.hpp +++ b/addons/pharma/CfgVehicles.hpp @@ -85,7 +85,7 @@ class CfgVehicles { exceptions[] = {"isNotInside", "isNotSitting"}; icon = QPATHTOF(ui\syringe.paa); insertChildren = QUOTE(_this call FUNC(insertChildrenSyringe)); - items = "kat_5ml_syringe" + items = "kat_5ml_syringe"; }; }; }; From d35e67205f60cda2edbcca378349bb4f9f27e8a3 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Wed, 11 Sep 2024 20:28:04 -0700 Subject: [PATCH 039/149] Fix 4 --- addons/pharma/CfgVehicles.hpp | 1 - addons/pharma/CfgWeapons.hpp | 12 ++++++------ .../pharma/functions/fnc_insertChildrenSyringe.sqf | 10 +++++----- addons/pharma/functions/fnc_prepareSyringe.sqf | 6 +++--- 4 files changed, 14 insertions(+), 15 deletions(-) diff --git a/addons/pharma/CfgVehicles.hpp b/addons/pharma/CfgVehicles.hpp index 348a6ca05..9f2dd662c 100644 --- a/addons/pharma/CfgVehicles.hpp +++ b/addons/pharma/CfgVehicles.hpp @@ -83,7 +83,6 @@ class CfgVehicles { statement = "true"; showDisabled = 0; exceptions[] = {"isNotInside", "isNotSitting"}; - icon = QPATHTOF(ui\syringe.paa); insertChildren = QUOTE(_this call FUNC(insertChildrenSyringe)); items = "kat_5ml_syringe"; }; diff --git a/addons/pharma/CfgWeapons.hpp b/addons/pharma/CfgWeapons.hpp index c8b8ec064..42eb1d1e3 100644 --- a/addons/pharma/CfgWeapons.hpp +++ b/addons/pharma/CfgWeapons.hpp @@ -267,7 +267,7 @@ class CfgWeapons { mass = 1; }; }; - class kat_syringe_txa_10ml_1: ACE_ItemCore { + class kat_syringe_kat_txa_10ml_1: ACE_ItemCore { scope = 2; displayName = CSTRING(Syringe_txa_10_1_Display); picture = QPATHTOF(ui\icon_fast_io.paa); @@ -278,7 +278,7 @@ class CfgWeapons { mass = 1; }; }; - class kat_syringe_txa_10ml_2: ACE_ItemCore { + class kat_syringe_kat_txa_10ml_2: ACE_ItemCore { scope = 2; displayName = CSTRING(Syringe_txa_10_2_Display); picture = QPATHTOF(ui\icon_fast_io.paa); @@ -289,7 +289,7 @@ class CfgWeapons { mass = 1; }; }; - class kat_syringe_txa_5ml_1: ACE_ItemCore { + class kat_syringe_kat_txa_5ml_1: ACE_ItemCore { scope = 2; displayName = CSTRING(Syringe_txa_5_1_Display); picture = QPATHTOF(ui\icon_fast_io.paa); @@ -300,7 +300,7 @@ class CfgWeapons { mass = 1; }; }; - class kat_syringe_txa_5ml_2: ACE_ItemCore { + class kat_syringe_kat_txa_5ml_2: ACE_ItemCore { scope = 2; displayName = CSTRING(Syringe_txa_5_2_Display); picture = QPATHTOF(ui\icon_fast_io.paa); @@ -311,7 +311,7 @@ class CfgWeapons { mass = 1; }; }; - class kat_syringe_eaca_5ml_1: ACE_ItemCore { + class kat_syringe_kat_eaca_5ml_1: ACE_ItemCore { scope = 2; displayName = CSTRING(Syringe_eaca_5_1_Display); picture = QPATHTOF(ui\icon_fast_io.paa); @@ -322,7 +322,7 @@ class CfgWeapons { mass = 1; }; }; - class kat_syringe_eaca_5ml_2: ACE_ItemCore { + class kat_syringe_kat_eaca_5ml_2: ACE_ItemCore { scope = 2; displayName = CSTRING(Syringe_eaca_5_2_Display); picture = QPATHTOF(ui\icon_fast_io.paa); diff --git a/addons/pharma/functions/fnc_insertChildrenSyringe.sqf b/addons/pharma/functions/fnc_insertChildrenSyringe.sqf index a343829da..a2a190059 100644 --- a/addons/pharma/functions/fnc_insertChildrenSyringe.sqf +++ b/addons/pharma/functions/fnc_insertChildrenSyringe.sqf @@ -20,10 +20,10 @@ params ["_target", "_player", "_params"]; // Define two dose types -private _doseTypes = ["lowDose", "highDose"]; +private _doseTypes = ["1", "2"]; // Define two syringe types -private _syringeTypes = ["smallSyringe", "largeSyringe"]; +private _syringeTypes = ["5ml", "10ml"]; // Define the medications list private _allMedications = [ @@ -72,12 +72,12 @@ private _condition = {true}; private _actionVarName = format [QGVAR(syringe_action_%1_%2_%3), _medication, _syringeType, _doseType]; // Create the action - private _action = [_actionVarName, _displayName, "", FUNC(prepareSyringe), _condition, {}, [_medication, _doseType, _syringeType]] call ACEFUNC(interact_menu,createAction); + private _action = [_actionVarName, _displayName, "", FUNC(prepareSyringe), _condition, {}, [_medication, _syringeType, _doseType]] call ACEFUNC(interact_menu,createAction); // Add the action to the actions array _actions pushBack [_action, [], _target]; - } forEach _syringeTypes; - } forEach _doseTypes; + } forEach _doseTypes; + } forEach _syringeTypes; } forEach _medications; _actions \ No newline at end of file diff --git a/addons/pharma/functions/fnc_prepareSyringe.sqf b/addons/pharma/functions/fnc_prepareSyringe.sqf index b2fbc2469..c23ea366c 100644 --- a/addons/pharma/functions/fnc_prepareSyringe.sqf +++ b/addons/pharma/functions/fnc_prepareSyringe.sqf @@ -9,14 +9,14 @@ * 1: Player * 2: Params * 0: Class name of medication - * 1: Dose type - * 2: Syringe type + * 1: Syringe type + * 2: Dose type * * Return Value: * None * * Example: - * [player, player, ["kat_TXA", "lowDose", "smallSyringe"]] call kat_pharma_fnc_prepareSyringe; + * [player, player, ["kat_TXA", "1", "5ml"]] call kat_pharma_fnc_prepareSyringe; * * Public: No */ From cc096d6f7cbbcfb5968769b0777f57d516847845 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Thu, 12 Sep 2024 03:48:20 -0700 Subject: [PATCH 040/149] Update XEH_PREP.hpp --- addons/pharma/XEH_PREP.hpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/addons/pharma/XEH_PREP.hpp b/addons/pharma/XEH_PREP.hpp index 362e50ce7..5a70ea27f 100644 --- a/addons/pharma/XEH_PREP.hpp +++ b/addons/pharma/XEH_PREP.hpp @@ -46,4 +46,6 @@ PREP(treatmentAdvanced_PervitinLocal); PREP(treatmentAdvanced_Reorientation); PREP(treatmentAdvanced_ReorientationLocal); PREP(treatmentAdvanced_TXALocal); -PREP(vehicleCheckDialysis); \ No newline at end of file +PREP(vehicleCheckDialysis); +PREP(insertChildrenSyringe); +PREP(prepareSyringe); \ No newline at end of file From d949ded33d2639b99f075b56c4ba246bbe2bc99a Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Thu, 12 Sep 2024 03:51:44 -0700 Subject: [PATCH 041/149] Update fnc_prepareSyringe.sqf --- addons/pharma/functions/fnc_prepareSyringe.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/pharma/functions/fnc_prepareSyringe.sqf b/addons/pharma/functions/fnc_prepareSyringe.sqf index c23ea366c..95e953542 100644 --- a/addons/pharma/functions/fnc_prepareSyringe.sqf +++ b/addons/pharma/functions/fnc_prepareSyringe.sqf @@ -25,7 +25,7 @@ params ["_target", "_player", "_params"]; _params params ["_className", "_syringeType", "_doseType"]; // Combine class name, dose type, and syringe type to form the final syringe class name -private _syringeClassName = format ["Syringe_%1_%2_%3", _className, _syringeType, _doseType,]; +private _syringeClassName = format ["Syringe_%1_%2_%3", _className, _syringeType, _doseType]; // Check if the syringe class exists private _hasSyringe = isClass (configFile >> "CfgWeapons" >> _syringeClassName); From 28d7939c556c1a2cb3e2203cfa39bc58fd622231 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Thu, 12 Sep 2024 04:05:52 -0700 Subject: [PATCH 042/149] try? --- addons/pharma/CfgWeapons.hpp | 4 ++-- .../functions/fnc_insertChildrenSyringe.sqf | 6 +++++- addons/pharma/stringtable.xml | 18 ++++++++++++++++++ 3 files changed, 25 insertions(+), 3 deletions(-) diff --git a/addons/pharma/CfgWeapons.hpp b/addons/pharma/CfgWeapons.hpp index 42eb1d1e3..c3159b79f 100644 --- a/addons/pharma/CfgWeapons.hpp +++ b/addons/pharma/CfgWeapons.hpp @@ -311,7 +311,7 @@ class CfgWeapons { mass = 1; }; }; - class kat_syringe_kat_eaca_5ml_1: ACE_ItemCore { + class kat_syringe_eaca_5ml_1: ACE_ItemCore { scope = 2; displayName = CSTRING(Syringe_eaca_5_1_Display); picture = QPATHTOF(ui\icon_fast_io.paa); @@ -322,7 +322,7 @@ class CfgWeapons { mass = 1; }; }; - class kat_syringe_kat_eaca_5ml_2: ACE_ItemCore { + class kat_syringe_eaca_5ml_2: ACE_ItemCore { scope = 2; displayName = CSTRING(Syringe_eaca_5_2_Display); picture = QPATHTOF(ui\icon_fast_io.paa); diff --git a/addons/pharma/functions/fnc_insertChildrenSyringe.sqf b/addons/pharma/functions/fnc_insertChildrenSyringe.sqf index a2a190059..7711ee5f3 100644 --- a/addons/pharma/functions/fnc_insertChildrenSyringe.sqf +++ b/addons/pharma/functions/fnc_insertChildrenSyringe.sqf @@ -66,7 +66,11 @@ private _condition = {true}; { private _doseType = _x; - private _displayName = getText (configFile >> "CfgWeapons" >> _medication >> "displayName"); + // Format the stringtable key to include medication, dose type, and syringe type + private _stringtableKey = format ["STR_KAT_SyringeAction_%1_%2_%3", _medication, _syringeType, _doseType]; + + // Localize the action display name using the custom stringtable entry + private _displayName = localize _stringtableKey; // Format the action variable name to include medication, dose type, and syringe type private _actionVarName = format [QGVAR(syringe_action_%1_%2_%3), _medication, _syringeType, _doseType]; diff --git a/addons/pharma/stringtable.xml b/addons/pharma/stringtable.xml index 7b7c7df1c..d2bcabfc2 100644 --- a/addons/pharma/stringtable.xml +++ b/addons/pharma/stringtable.xml @@ -3851,5 +3851,23 @@ Prepare syringe + + Prep 5ml EACA 7.5g + + + Prep 5ml EACA 15g + + + Prep 5ml TXA 1g + + + Prep 5ml TXA 2g + + + Prep 10ml TXA 1g + + + Prep 10ml TXA 2g + From 5e9d642fea09ab826f457cf7e18f787320f4c560 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Thu, 12 Sep 2024 04:11:29 -0700 Subject: [PATCH 043/149] Stringtable fix --- .../pharma/functions/fnc_insertChildrenSyringe.sqf | 2 +- addons/pharma/stringtable.xml | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/addons/pharma/functions/fnc_insertChildrenSyringe.sqf b/addons/pharma/functions/fnc_insertChildrenSyringe.sqf index 7711ee5f3..f6c0ee743 100644 --- a/addons/pharma/functions/fnc_insertChildrenSyringe.sqf +++ b/addons/pharma/functions/fnc_insertChildrenSyringe.sqf @@ -67,7 +67,7 @@ private _condition = {true}; private _doseType = _x; // Format the stringtable key to include medication, dose type, and syringe type - private _stringtableKey = format ["STR_KAT_SyringeAction_%1_%2_%3", _medication, _syringeType, _doseType]; + private _stringtableKey = format ["STR_KAT_Pharma_SyringeAction_%1_%2_%3", _medication, _syringeType, _doseType]; // Localize the action display name using the custom stringtable entry private _displayName = localize _stringtableKey; diff --git a/addons/pharma/stringtable.xml b/addons/pharma/stringtable.xml index d2bcabfc2..263ee4e9e 100644 --- a/addons/pharma/stringtable.xml +++ b/addons/pharma/stringtable.xml @@ -3851,22 +3851,22 @@ Prepare syringe - + Prep 5ml EACA 7.5g - + Prep 5ml EACA 15g - + Prep 5ml TXA 1g - + Prep 5ml TXA 2g - + Prep 10ml TXA 1g - + Prep 10ml TXA 2g From f9b5f953219d682ddcc32c6621f63eb5b0c5c110 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Thu, 12 Sep 2024 04:18:27 -0700 Subject: [PATCH 044/149] Update fnc_prepareSyringe.sqf --- addons/pharma/functions/fnc_prepareSyringe.sqf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/addons/pharma/functions/fnc_prepareSyringe.sqf b/addons/pharma/functions/fnc_prepareSyringe.sqf index 95e953542..9f1570693 100644 --- a/addons/pharma/functions/fnc_prepareSyringe.sqf +++ b/addons/pharma/functions/fnc_prepareSyringe.sqf @@ -25,17 +25,17 @@ params ["_target", "_player", "_params"]; _params params ["_className", "_syringeType", "_doseType"]; // Combine class name, dose type, and syringe type to form the final syringe class name -private _syringeClassName = format ["Syringe_%1_%2_%3", _className, _syringeType, _doseType]; +private _syringeClassName = format ["kat_syringe_%1_%2_%3", _className, _syringeType, _doseType]; // Check if the syringe class exists private _hasSyringe = isClass (configFile >> "CfgWeapons" >> _syringeClassName); if (!_hasSyringe) exitWith { - hint format ["Syringe type for %1 with %2 dose and %3 syringe does not exist.", _className, _doseType, _syringeType]; + hint format ["Syringe type for %1 with %2 syringe and %3 dose does not exist.", _className, _syringeType, _doseType]; }; // Remove the base syringe and the medication from the player's inventory -private _baseSyringe = format ["kat_%1", _syringeType]; +private _baseSyringe = format ["kat_%1_syringe", _syringeType]; _player removeItem _baseSyringe; _player removeItem _className; From 43f3c70efa6543180419ddb58cc80b2dd48a0903 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Thu, 12 Sep 2024 04:27:14 -0700 Subject: [PATCH 045/149] Update --- .../functions/fnc_insertChildrenSyringe.sqf | 33 ++++++++++++++----- addons/pharma/stringtable.xml | 6 ++++ 2 files changed, 31 insertions(+), 8 deletions(-) diff --git a/addons/pharma/functions/fnc_insertChildrenSyringe.sqf b/addons/pharma/functions/fnc_insertChildrenSyringe.sqf index f6c0ee743..a30532d50 100644 --- a/addons/pharma/functions/fnc_insertChildrenSyringe.sqf +++ b/addons/pharma/functions/fnc_insertChildrenSyringe.sqf @@ -19,10 +19,10 @@ params ["_target", "_player", "_params"]; -// Define two dose types +// Define dose types private _doseTypes = ["1", "2"]; -// Define two syringe types +// Define syringe types private _syringeTypes = ["5ml", "10ml"]; // Define the medications list @@ -43,7 +43,7 @@ private _allMedications = [ "kat_etomidate" ]; -// Filter the player's items to get all medicines +// Filter the player's items to get all medications private _medications = []; { if (_x in _allMedications) then { @@ -55,12 +55,22 @@ private _medications = []; }; } forEach (items _player); -// Create the ace actions for each medication, dose type, and syringe type +// Create the ACE actions for each medication private _actions = []; private _condition = {true}; { private _medication = _x; + + // Get the medication's display name from the config + private _medicationDisplayName = getText (configFile >> "CfgWeapons" >> _medication >> "displayName"); + + // Create a parent action for the medication + private _parentActionVarName = format ["STR_KAT_Pharma_SyringeAction_%1", _medication]; + private _parentAction = [_parentActionVarName, _medicationDisplayName, "", {}, _condition, {}, [], {true}] call ACEFUNC(interact_menu,createAction); + + // Create child actions for each dose and syringe type combination + private _childActions = []; { private _syringeType = _x; { @@ -75,13 +85,20 @@ private _condition = {true}; // Format the action variable name to include medication, dose type, and syringe type private _actionVarName = format [QGVAR(syringe_action_%1_%2_%3), _medication, _syringeType, _doseType]; - // Create the action - private _action = [_actionVarName, _displayName, "", FUNC(prepareSyringe), _condition, {}, [_medication, _syringeType, _doseType]] call ACEFUNC(interact_menu,createAction); + // Create the child action + private _childAction = [_actionVarName, _displayName, "", FUNC(prepareSyringe), _condition, {}, [_medication, _syringeType, _doseType]] call ACEFUNC(interact_menu,createAction); - // Add the action to the actions array - _actions pushBack [_action, [], _target]; + // Add the child action to the child actions array + _childActions pushBack _childAction; } forEach _doseTypes; } forEach _syringeTypes; + + // Attach child actions to the parent action + private _parentActionWithChildren = [_parentActionVarName, _medicationDisplayName, "", {}, _condition, {}, _childActions, {true}] call ACEFUNC(interact_menu,createAction); + + // Add the parent action (with children) to the actions array + _actions pushBack [_parentActionWithChildren, [], _target]; + } forEach _medications; _actions \ No newline at end of file diff --git a/addons/pharma/stringtable.xml b/addons/pharma/stringtable.xml index 263ee4e9e..c8ddd5d51 100644 --- a/addons/pharma/stringtable.xml +++ b/addons/pharma/stringtable.xml @@ -3850,6 +3850,12 @@ Prepare syringe + + + Prep EACA + + + Prep TXA Prep 5ml EACA 7.5g From ba35b8ede91955a7a3612ffb9acf653f69abd03e Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Thu, 12 Sep 2024 04:30:01 -0700 Subject: [PATCH 046/149] Update stringtable.xml --- addons/pharma/stringtable.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/pharma/stringtable.xml b/addons/pharma/stringtable.xml index c8ddd5d51..c4c93b675 100644 --- a/addons/pharma/stringtable.xml +++ b/addons/pharma/stringtable.xml @@ -3851,7 +3851,7 @@ Prepare syringe - + Prep EACA From 454a742e16b3e18d8b74a3f798aeb532322439a3 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Thu, 12 Sep 2024 04:36:35 -0700 Subject: [PATCH 047/149] Update fnc_insertChildrenSyringe.sqf --- .../functions/fnc_insertChildrenSyringe.sqf | 33 +++++-------------- 1 file changed, 8 insertions(+), 25 deletions(-) diff --git a/addons/pharma/functions/fnc_insertChildrenSyringe.sqf b/addons/pharma/functions/fnc_insertChildrenSyringe.sqf index a30532d50..f6c0ee743 100644 --- a/addons/pharma/functions/fnc_insertChildrenSyringe.sqf +++ b/addons/pharma/functions/fnc_insertChildrenSyringe.sqf @@ -19,10 +19,10 @@ params ["_target", "_player", "_params"]; -// Define dose types +// Define two dose types private _doseTypes = ["1", "2"]; -// Define syringe types +// Define two syringe types private _syringeTypes = ["5ml", "10ml"]; // Define the medications list @@ -43,7 +43,7 @@ private _allMedications = [ "kat_etomidate" ]; -// Filter the player's items to get all medications +// Filter the player's items to get all medicines private _medications = []; { if (_x in _allMedications) then { @@ -55,22 +55,12 @@ private _medications = []; }; } forEach (items _player); -// Create the ACE actions for each medication +// Create the ace actions for each medication, dose type, and syringe type private _actions = []; private _condition = {true}; { private _medication = _x; - - // Get the medication's display name from the config - private _medicationDisplayName = getText (configFile >> "CfgWeapons" >> _medication >> "displayName"); - - // Create a parent action for the medication - private _parentActionVarName = format ["STR_KAT_Pharma_SyringeAction_%1", _medication]; - private _parentAction = [_parentActionVarName, _medicationDisplayName, "", {}, _condition, {}, [], {true}] call ACEFUNC(interact_menu,createAction); - - // Create child actions for each dose and syringe type combination - private _childActions = []; { private _syringeType = _x; { @@ -85,20 +75,13 @@ private _condition = {true}; // Format the action variable name to include medication, dose type, and syringe type private _actionVarName = format [QGVAR(syringe_action_%1_%2_%3), _medication, _syringeType, _doseType]; - // Create the child action - private _childAction = [_actionVarName, _displayName, "", FUNC(prepareSyringe), _condition, {}, [_medication, _syringeType, _doseType]] call ACEFUNC(interact_menu,createAction); + // Create the action + private _action = [_actionVarName, _displayName, "", FUNC(prepareSyringe), _condition, {}, [_medication, _syringeType, _doseType]] call ACEFUNC(interact_menu,createAction); - // Add the child action to the child actions array - _childActions pushBack _childAction; + // Add the action to the actions array + _actions pushBack [_action, [], _target]; } forEach _doseTypes; } forEach _syringeTypes; - - // Attach child actions to the parent action - private _parentActionWithChildren = [_parentActionVarName, _medicationDisplayName, "", {}, _condition, {}, _childActions, {true}] call ACEFUNC(interact_menu,createAction); - - // Add the parent action (with children) to the actions array - _actions pushBack [_parentActionWithChildren, [], _target]; - } forEach _medications; _actions \ No newline at end of file From fdcf239cba60e075b981ccc6bda6365617a6fc80 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Thu, 12 Sep 2024 04:48:07 -0700 Subject: [PATCH 048/149] Update fnc_insertChildrenSyringe.sqf --- .../functions/fnc_insertChildrenSyringe.sqf | 35 +++++++++++-------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/addons/pharma/functions/fnc_insertChildrenSyringe.sqf b/addons/pharma/functions/fnc_insertChildrenSyringe.sqf index f6c0ee743..078722199 100644 --- a/addons/pharma/functions/fnc_insertChildrenSyringe.sqf +++ b/addons/pharma/functions/fnc_insertChildrenSyringe.sqf @@ -19,10 +19,10 @@ params ["_target", "_player", "_params"]; -// Define two dose types +// Define dose types private _doseTypes = ["1", "2"]; -// Define two syringe types +// Define syringe types private _syringeTypes = ["5ml", "10ml"]; // Define the medications list @@ -43,7 +43,7 @@ private _allMedications = [ "kat_etomidate" ]; -// Filter the player's items to get all medicines +// Filter the player's items to get all medications private _medications = []; { if (_x in _allMedications) then { @@ -55,9 +55,8 @@ private _medications = []; }; } forEach (items _player); -// Create the ace actions for each medication, dose type, and syringe type +// Create the ACE actions for each medication, dose type, and syringe type private _actions = []; -private _condition = {true}; { private _medication = _x; @@ -66,20 +65,26 @@ private _condition = {true}; { private _doseType = _x; - // Format the stringtable key to include medication, dose type, and syringe type - private _stringtableKey = format ["STR_KAT_Pharma_SyringeAction_%1_%2_%3", _medication, _syringeType, _doseType]; + // Construct the class name based on medication, syringe type, and dose type + private _className = format ["kat_syringe_%1_%2_%3", _medication, _syringeType, _doseType]; - // Localize the action display name using the custom stringtable entry - private _displayName = localize _stringtableKey; + // Check if the class exists in CfgWeapons + if (isClass (configFile >> "CfgWeapons" >> _className)) then { + // Format the stringtable key to include medication, dose type, and syringe type + private _stringtableKey = format ["STR_KAT_Pharma_SyringeAction_%1_%2_%3", _medication, _syringeType, _doseType]; - // Format the action variable name to include medication, dose type, and syringe type - private _actionVarName = format [QGVAR(syringe_action_%1_%2_%3), _medication, _syringeType, _doseType]; + // Localize the action display name using the custom stringtable entry + private _displayName = localize _stringtableKey; - // Create the action - private _action = [_actionVarName, _displayName, "", FUNC(prepareSyringe), _condition, {}, [_medication, _syringeType, _doseType]] call ACEFUNC(interact_menu,createAction); + // Format the action variable name to include medication, dose type, and syringe type + private _actionVarName = format [QGVAR(syringe_action_%1_%2_%3), _medication, _syringeType, _doseType]; - // Add the action to the actions array - _actions pushBack [_action, [], _target]; + // Create the action + private _action = [_actionVarName, _displayName, "", FUNC(prepareSyringe), {true}, {}, [_medication, _syringeType, _doseType]] call ACEFUNC(interact_menu,createAction); + + // Add the action to the actions array + _actions pushBack [_action, [], _target]; + }; } forEach _doseTypes; } forEach _syringeTypes; } forEach _medications; From c4b5044fadd2756852a6257874f358f46122e473 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Thu, 12 Sep 2024 10:21:13 -0700 Subject: [PATCH 049/149] Adding all meds to new system --- addons/pharma/ACE_Medical_Treatment.hpp | 445 +++++++++++++++- .../pharma/ACE_Medical_Treatment_Actions.hpp | 345 +++++++++++- addons/pharma/CfgWeapons.hpp | 345 +++++++++++- addons/pharma/config.cpp | 39 +- addons/pharma/functions/fnc_applyIV.sqf | 2 +- .../functions/fnc_insertChildrenSyringe.sqf | 17 +- .../pharma/functions/fnc_medicationLocal.sqf | 23 +- .../pharma/functions/fnc_prepareSyringe.sqf | 2 +- ..._treatmentAdvanced_NorepinephrineLocal.sqf | 29 ++ addons/pharma/stringtable.xml | 492 +++++++++++++++++- 10 files changed, 1685 insertions(+), 54 deletions(-) create mode 100644 addons/pharma/functions/fnc_treatmentAdvanced_NorepinephrineLocal.sqf diff --git a/addons/pharma/ACE_Medical_Treatment.hpp b/addons/pharma/ACE_Medical_Treatment.hpp index 93e00591f..ecba2e051 100644 --- a/addons/pharma/ACE_Medical_Treatment.hpp +++ b/addons/pharma/ACE_Medical_Treatment.hpp @@ -335,7 +335,7 @@ class ACE_ADDON(Medical_Treatment) { onOverDose = ""; maxRelief = 0.6; }; - class syringe_txa_5ml__1 { + class syringe_kat_txa_5ml_1 { painReduce = 0; hrIncreaseLow[] = {0, 0}; hrIncreaseNormal[] = {0, 0}; @@ -347,7 +347,7 @@ class ACE_ADDON(Medical_Treatment) { viscosityChange = 0; onOverDose = ""; }; - class syringe_txa_5ml__2 { + class syringe_kat_txa_5ml_2 { painReduce = 0; hrIncreaseLow[] = {0, 0}; hrIncreaseNormal[] = {0, 0}; @@ -359,7 +359,7 @@ class ACE_ADDON(Medical_Treatment) { viscosityChange = 0; onOverDose = ""; }; - class syringe_txa_10ml_1 { + class syringe_kat_txa_10ml_1 { painReduce = 0; hrIncreaseLow[] = {0, 0}; hrIncreaseNormal[] = {0, 0}; @@ -371,7 +371,7 @@ class ACE_ADDON(Medical_Treatment) { viscosityChange = 0; onOverDose = ""; }; - class syringe_txa_10ml_2 { + class syringe_kat_txa_10ml_2 { painReduce = 0; hrIncreaseLow[] = {0, 0}; hrIncreaseNormal[] = {0, 0}; @@ -383,19 +383,19 @@ class ACE_ADDON(Medical_Treatment) { viscosityChange = 0; onOverDose = ""; }; - class syringe_eaca_5ml_1 { + class syringe_kat_eaca_5ml_1 { painReduce = 0; hrIncreaseLow[] = {0, 0}; hrIncreaseNormal[] = {0, 0}; hrIncreaseHigh[] = {0, 0}; - timeInSystem = 600; + timeInSystem = 200; timeTillMaxEffect = 15; maxDose = 10; incompatibleMedication[] = {}; viscosityChange = 0; onOverDose = ""; }; - class syringe_eaca_5ml_2 { + class syringe_kat_eaca_5ml_2 { painReduce = 0; hrIncreaseLow[] = {0, 0}; hrIncreaseNormal[] = {0, 0}; @@ -407,5 +407,436 @@ class ACE_ADDON(Medical_Treatment) { viscosityChange = 0; onOverDose = ""; }; + class syringe_kat_epinephrineIV_5ml_1 { + painReduce = 0; + hrIncreaseLow[] = {15, 30}; + hrIncreaseNormal[] = {10, 50}; + hrIncreaseHigh[] = {15, 40}; + timeInSystem = 120; + timeTillMaxEffect = 10; + maxDose = 4; + maxDoseDeviation = 2; + incompatibleMedication[] = {}; + alphaFactor = -0.3; + onOverDose = ""; + }; + class syringe_kat_norepinephrine_5ml_1 { + painReduce = 0; + hrIncreaseLow[] = {0, 5}; + hrIncreaseNormal[] = {5, 15}; + hrIncreaseHigh[] = {5, 10}; + timeInSystem = 360; + timeTillMaxEffect = 15; + maxDose = 12; + incompatibleMedication[] = {}; + viscosityChange = 25; + alphaFactor = -0.3; + onOverDose = ""; + }; + class syringe_kat_phenylephrine_5ml_1 { + painReduce = 0; + hrIncreaseLow[] = {-5, -10}; + hrIncreaseNormal[] = {-10, -15}; + hrIncreaseHigh[] = {-10, -15}; + timeInSystem = 360; + timeTillMaxEffect = 15; + maxDose = 6; + maxDoseDeviation = 4; + incompatibleMedication[] = {}; + viscosityChange = 50; + alphaFactor = -0.5; + onOverDose = ""; + }; + class syringe_kat_nitroglycerin_5ml_1 { + painReduce = 0; + hrIncreaseLow[] = {5, 10}; + hrIncreaseNormal[] = {10, 15}; + hrIncreaseHigh[] = {10, 15}; + timeInSystem = 360; + timeTillMaxEffect = 15; + maxDose = 6; + maxDoseDeviation = 4; + incompatibleMedication[] = {}; + viscosityChange = -25; + alphaFactor = 0.3; + onOverDose = ""; + }; + class syringe_kat_fentanyl_5ml_1 { + painReduce = 1; + hrIncreaseLow[] = {-10, -5}; + hrIncreaseNormal[] = {-15, -10}; + hrIncreaseHigh[] = {-20, -10}; + timeInSystem = 900; + timeTillMaxEffect = 20; + maxDose = 1; + maxDoseDeviation = 1; + incompatibleMedication[] = {}; + viscosityChange = -10; + onOverDose = ""; + opioidRelief = 1.5; + }; + class syringe_kat_ketamine_5ml_1 { + painReduce = 0.8; + hrIncreaseLow[] = {5, 10}; + hrIncreaseNormal[] = {10, 15}; + hrIncreaseHigh[] = {10, 15}; + timeInSystem = 900; + timeTillMaxEffect = 15; + maxDose = 2; + maxDoseDeviation = 2; + incompatibleMedication[] = {}; + viscosityChange = 10; + onOverDose = ""; + }; + class syringe_kat_nalbuphine_5ml_1 { + painReduce = 0.6; + hrIncreaseLow[] = {-5, 0}; + hrIncreaseNormal[] = {-10, -5}; + hrIncreaseHigh[] = {-15, -5}; + timeInSystem = 900; + timeTillMaxEffect = 30; + maxDose = 2; + maxDoseDeviation = 2; + incompatibleMedication[] = {}; + viscosityChange = -5; + onOverDose = ""; + opioidRelief = 1.2; + }; + class syringe_kat_atropine_5ml_1 { + painReduce = 0; + hrIncreaseLow[] = {20, 40}; + hrIncreaseNormal[] = {10, 25}; + hrIncreaseHigh[] = {5, 15}; + timeInSystem = 120; + timeTillMaxEffect = 30; + maxDose = 4; + incompatibleMedication[]= {}; + viscosityChange = 0; + onOverDose = ""; + }; + class syringe_kat_amiodarone_5ml_1 { + painReduce = 0; + hrIncreaseLow[] = {0, 0, 0}; + hrIncreaseNormal[] = {0, 0, 0}; + hrIncreaseHigh[] = {0, 0, 0}; + timeInSystem = 120; + timeTillMaxEffect = 30; + maxDose = 4; + incompatibleMedication[]= {}; + viscosityChange = 0; + onOverDose = ""; + }; + class syringe_kat_lidocaine_5ml_1 { + painReduce = 0.2; + hrIncreaseLow[] = {0, 0, 0}; + hrIncreaseNormal[] = {0, 0, 0}; + hrIncreaseHigh[] = {0, 0, 0}; + timeInSystem = 120; + timeTillMaxEffect = 30; + maxDose = 2; + maxDoseDeviation = 4; + incompatibleMedication[]= {}; + onOverDose = ""; + maxRelief = 0.6; + }; + class syringe_kat_etomidate_5ml_1 { + painReduce = 0.4; + hrIncreaseLow[] = {-5, -10}; + hrIncreaseNormal[] = {-15, -20}; + hrIncreaseHigh[] = {-20, -30}; + timeInSystem = 45; + timeTillMaxEffect = 5; + maxDose = 10; + incompatibleMedication[] = {}; + viscosityChange = 0; + onOverDose = ""; + }; + class syringe_kat_flumazenil_5ml_1 { + painReduce = 0; + hrIncreaseLow[] = {0, 0}; + hrIncreaseNormal[] = {0, 0}; + hrIncreaseHigh[] = {0, 0}; + timeInSystem = 60; + timeTillMaxEffect = 5; + maxDose = 3; + incompatibleMedication[] = {}; + viscosityChange = 0; + onOverDose = ""; + }; + class syringe_kat_lorazepam_5ml_1 { + painReduce = 0; + hrIncreaseLow[] = {0, 0}; + hrIncreaseNormal[] = {0, 0}; + hrIncreaseHigh[] = {0, 0}; + timeInSystem = 60; + timeTillMaxEffect = 5; + maxDose = 3; + incompatibleMedication[] = {}; + viscosityChange = -15; + onOverDose = ""; + }; + class syringe_kat_epinephrineIV_5ml_2 { + painReduce = 0; + hrIncreaseLow[] = {15, 30}; + hrIncreaseNormal[] = {10, 50}; + hrIncreaseHigh[] = {15, 40}; + timeInSystem = 120; + timeTillMaxEffect = 10; + maxDose = 4; + maxDoseDeviation = 2; + incompatibleMedication[] = {}; + alphaFactor = -0.3; + onOverDose = ""; + }; + class syringe_kat_norepinephrine_5ml_2 { + painReduce = 0; + hrIncreaseLow[] = {0, 5}; + hrIncreaseNormal[] = {5, 15}; + hrIncreaseHigh[] = {5, 10}; + timeInSystem = 360; + timeTillMaxEffect = 15; + maxDose = 12; + incompatibleMedication[] = {}; + viscosityChange = 25; + alphaFactor = -0.3; + onOverDose = ""; + }; + class syringe_kat_phenylephrine_5ml_2 { + painReduce = 0; + hrIncreaseLow[] = {-5, -10}; + hrIncreaseNormal[] = {-10, -15}; + hrIncreaseHigh[] = {-10, -15}; + timeInSystem = 360; + timeTillMaxEffect = 15; + maxDose = 6; + maxDoseDeviation = 4; + incompatibleMedication[] = {}; + viscosityChange = 50; + alphaFactor = -0.5; + onOverDose = ""; + }; + class syringe_kat_nitroglycerin_5ml_2 { + painReduce = 0; + hrIncreaseLow[] = {5, 10}; + hrIncreaseNormal[] = {10, 15}; + hrIncreaseHigh[] = {10, 15}; + timeInSystem = 360; + timeTillMaxEffect = 15; + maxDose = 6; + maxDoseDeviation = 4; + incompatibleMedication[] = {}; + viscosityChange = -25; + alphaFactor = 0.3; + onOverDose = ""; + }; + class syringe_kat_fentanyl_5ml_2 { + painReduce = 1; + hrIncreaseLow[] = {-10, -5}; + hrIncreaseNormal[] = {-15, -10}; + hrIncreaseHigh[] = {-20, -10}; + timeInSystem = 900; + timeTillMaxEffect = 20; + maxDose = 1; + maxDoseDeviation = 1; + incompatibleMedication[] = {}; + viscosityChange = -10; + onOverDose = ""; + opioidRelief = 1.5; + }; + class syringe_kat_ketamine_5ml_2 { + painReduce = 0.8; + hrIncreaseLow[] = {5, 10}; + hrIncreaseNormal[] = {10, 15}; + hrIncreaseHigh[] = {10, 15}; + timeInSystem = 900; + timeTillMaxEffect = 15; + maxDose = 2; + maxDoseDeviation = 2; + incompatibleMedication[] = {}; + viscosityChange = 10; + onOverDose = ""; + }; + class syringe_kat_nalbuphine_5ml_2 { + painReduce = 0.6; + hrIncreaseLow[] = {-5, 0}; + hrIncreaseNormal[] = {-10, -5}; + hrIncreaseHigh[] = {-15, -5}; + timeInSystem = 900; + timeTillMaxEffect = 30; + maxDose = 2; + maxDoseDeviation = 2; + incompatibleMedication[] = {}; + viscosityChange = -5; + onOverDose = ""; + opioidRelief = 1.2; + }; + class syringe_kat_atropine_5ml_2 { + painReduce = 0; + hrIncreaseLow[] = {20, 40}; + hrIncreaseNormal[] = {10, 25}; + hrIncreaseHigh[] = {5, 15}; + timeInSystem = 120; + timeTillMaxEffect = 30; + maxDose = 4; + incompatibleMedication[]= {}; + viscosityChange = 0; + onOverDose = ""; + }; + class syringe_kat_amiodarone_5ml_2 { + painReduce = 0; + hrIncreaseLow[] = {0, 0, 0}; + hrIncreaseNormal[] = {0, 0, 0}; + hrIncreaseHigh[] = {0, 0, 0}; + timeInSystem = 120; + timeTillMaxEffect = 30; + maxDose = 4; + incompatibleMedication[]= {}; + viscosityChange = 0; + onOverDose = ""; + }; + class syringe_kat_lidocaine_5ml_2 { + painReduce = 0.2; + hrIncreaseLow[] = {0, 0, 0}; + hrIncreaseNormal[] = {0, 0, 0}; + hrIncreaseHigh[] = {0, 0, 0}; + timeInSystem = 120; + timeTillMaxEffect = 30; + maxDose = 2; + maxDoseDeviation = 4; + incompatibleMedication[]= {}; + onOverDose = ""; + maxRelief = 0.6; + }; + class syringe_kat_etomidate_5ml_2 { + painReduce = 0.4; + hrIncreaseLow[] = {-5, -10}; + hrIncreaseNormal[] = {-15, -20}; + hrIncreaseHigh[] = {-20, -30}; + timeInSystem = 45; + timeTillMaxEffect = 5; + maxDose = 10; + incompatibleMedication[] = {}; + viscosityChange = 0; + onOverDose = ""; + }; + class syringe_kat_flumazenil_5ml_2 { + painReduce = 0; + hrIncreaseLow[] = {0, 0}; + hrIncreaseNormal[] = {0, 0}; + hrIncreaseHigh[] = {0, 0}; + timeInSystem = 60; + timeTillMaxEffect = 5; + maxDose = 3; + incompatibleMedication[] = {}; + viscosityChange = 0; + onOverDose = ""; + }; + class syringe_kat_lorazepam_5ml_2 { + painReduce = 0; + hrIncreaseLow[] = {0, 0}; + hrIncreaseNormal[] = {0, 0}; + hrIncreaseHigh[] = {0, 0}; + timeInSystem = 60; + timeTillMaxEffect = 5; + maxDose = 3; + incompatibleMedication[] = {}; + viscosityChange = -15; + onOverDose = ""; + }; + class syringe_kat_fentanyl_10ml_1 { + painReduce = 1; + hrIncreaseLow[] = {-10, -5}; + hrIncreaseNormal[] = {-15, -10}; + hrIncreaseHigh[] = {-20, -10}; + timeInSystem = 900; + timeTillMaxEffect = 20; + maxDose = 1; + maxDoseDeviation = 1; + incompatibleMedication[] = {}; + viscosityChange = -10; + onOverDose = ""; + opioidRelief = 1.5; + }; + class syringe_kat_ketamine_10ml_1 { + painReduce = 0.8; + hrIncreaseLow[] = {5, 10}; + hrIncreaseNormal[] = {10, 15}; + hrIncreaseHigh[] = {10, 15}; + timeInSystem = 900; + timeTillMaxEffect = 15; + maxDose = 2; + maxDoseDeviation = 2; + incompatibleMedication[] = {}; + viscosityChange = 10; + onOverDose = ""; + }; + class syringe_kat_nalbuphine_10ml_1 { + painReduce = 0.6; + hrIncreaseLow[] = {-5, 0}; + hrIncreaseNormal[] = {-10, -5}; + hrIncreaseHigh[] = {-15, -5}; + timeInSystem = 900; + timeTillMaxEffect = 30; + maxDose = 2; + maxDoseDeviation = 2; + incompatibleMedication[] = {}; + viscosityChange = -5; + onOverDose = ""; + opioidRelief = 1.2; + }; + class syringe_kat_lidocaine_10ml_1 { + painReduce = 0.2; + hrIncreaseLow[] = {0, 0, 0}; + hrIncreaseNormal[] = {0, 0, 0}; + hrIncreaseHigh[] = {0, 0, 0}; + timeInSystem = 120; + timeTillMaxEffect = 30; + maxDose = 2; + maxDoseDeviation = 4; + incompatibleMedication[]= {}; + onOverDose = ""; + maxRelief = 0.6; + }; + class syringe_kat_fentanyl_10ml_2 { + painReduce = 1; + hrIncreaseLow[] = {-10, -5}; + hrIncreaseNormal[] = {-15, -10}; + hrIncreaseHigh[] = {-20, -10}; + timeInSystem = 900; + timeTillMaxEffect = 20; + maxDose = 1; + maxDoseDeviation = 1; + incompatibleMedication[] = {}; + viscosityChange = -10; + onOverDose = ""; + opioidRelief = 1.5; + }; + class syringe_kat_ketamine_10ml_2 { + painReduce = 0.8; + hrIncreaseLow[] = {5, 10}; + hrIncreaseNormal[] = {10, 15}; + hrIncreaseHigh[] = {10, 15}; + timeInSystem = 900; + timeTillMaxEffect = 15; + maxDose = 2; + maxDoseDeviation = 2; + incompatibleMedication[] = {}; + viscosityChange = 10; + onOverDose = ""; + }; + class syringe_kat_nalbuphine_10ml_2 { + painReduce = 0.6; + hrIncreaseLow[] = {-5, 0}; + hrIncreaseNormal[] = {-10, -5}; + hrIncreaseHigh[] = {-15, -5}; + timeInSystem = 900; + timeTillMaxEffect = 30; + maxDose = 2; + maxDoseDeviation = 2; + incompatibleMedication[] = {}; + viscosityChange = -5; + onOverDose = ""; + opioidRelief = 1.2; + }; }; }; diff --git a/addons/pharma/ACE_Medical_Treatment_Actions.hpp b/addons/pharma/ACE_Medical_Treatment_Actions.hpp index eaeb59cad..d2a5d87fa 100644 --- a/addons/pharma/ACE_Medical_Treatment_Actions.hpp +++ b/addons/pharma/ACE_Medical_Treatment_Actions.hpp @@ -439,52 +439,52 @@ class ACE_Medical_Treatment_Actions { callbackSuccess = QFUNC(treatmentAdvanced_CheckCoag); litter[] = {}; }; - class EACA_IV_1: Carbonate { + class syringe_kat_EACA_5ml_1: Carbonate { displayName = CSTRING(push_EACA_IV_1); displayNameProgress = CSTRING(pushing_EACA_IV_1); allowedSelections[] = {"Body", "LeftArm", "RightArm", "LeftLeg", "RightLeg"}; allowSelfTreatment = 1; medicRequired = QGVAR(medLvl_EACA); treatmentTime = QGVAR(treatmentTime_EACA); - items[] = {"kat_syringe_eaca_5ml_1"}; + items[] = {"kat_syringe_kat_eaca_5ml_1"}; condition = QUOTE(!(GVAR(MedicationsRequireInsIV)) || FUNC(removeIV)); callbackSuccess = QFUNC(medication); sounds[] = {}; }; - class EACA_IV_2: EACA_IV_1 { + class syringe_kat_EACA_5ml_2: syringe_kat_EACA_5ml_1 { displayName = CSTRING(push_EACA_IV_2); displayNameProgress = CSTRING(pushing_EACA_IV_2); allowedSelections[] = {"Body", "LeftArm", "RightArm", "LeftLeg", "RightLeg"}; allowSelfTreatment = 1; medicRequired = QGVAR(medLvl_EACA); treatmentTime = QGVAR(treatmentTime_EACA); - items[] = {"kat_syringe_eaca_5ml_2"}; + items[] = {"kat_syringe_kat_eaca_5ml_2"}; callbackSuccess = QFUNC(medication); sounds[] = {}; }; - class TXA_IM_1: Carbonate { + class syringe_kat_TXA_10ml_1: Carbonate { displayName = CSTRING(inject_TXA_IM_1); displayNameProgress = CSTRING(injecting_TXA_IM_1); allowedSelections[] = {"LeftArm", "RightArm", "LeftLeg", "RightLeg"}; allowSelfTreatment = 1; - medicRequired = QGVAR(medLvl_EACA); - treatmentTime = QGVAR(treatmentTime_EACA); - items[] = {"kat_syringe_txa_10ml_1"}; + medicRequired = QGVAR(medLvl_TXA); + treatmentTime = QGVAR(treatmentTime_TXA); + items[] = {"kat_syringe_kat_txa_10ml_1"}; callbackSuccess = QFUNC(medication); sounds[] = {}; }; - class TXA_IM_2: TXA_IM_1 { + class syringe_kat_TXA_10ml_2: syringe_kat_TXA_10ml_1 { displayName = CSTRING(inject_TXA_IM_2); displayNameProgress = CSTRING(injecting_TXA_IM_2); allowedSelections[] = {"LeftArm", "RightArm", "LeftLeg", "RightLeg"}; allowSelfTreatment = 1; - medicRequired = QGVAR(medLvl_EACA); - treatmentTime = QGVAR(treatmentTime_EACA); - items[] = {"kat_syringe_txa_10ml_2"}; + medicRequired = QGVAR(medLvl_TXA); + treatmentTime = QGVAR(treatmentTime_TXA); + items[] = {"kat_syringe_kat_txa_10ml_2"}; callbackSuccess = QFUNC(medication); sounds[] = {}; }; - class TXA_IV_1: EACA_IV_1 { + class syringe_kat_TXA_5ml_1: syringe_kat_EACA_5ml_1 { displayName = CSTRING(push_TXA_IV_1); displayNameProgress = CSTRING(pushing_TXA_IV_1); allowedSelections[] = {"Body", "LeftArm", "RightArm", "LeftLeg", "RightLeg"}; @@ -492,16 +492,327 @@ class ACE_Medical_Treatment_Actions { medicRequired = QGVAR(medLvl_TXA); treatmentTime = QGVAR(treatmentTime_TXA); condition = QUOTE(!(GVAR(MedicationsRequireInsIV)) || FUNC(removeIV)); - items[] = {"kat_syringe_txa_5ml_1"}; + items[] = {"kat_syringe_kat_txa_5ml_1"}; callbackSuccess = QFUNC(medication); sounds[] = {}; }; - class TXA_IV_2: TXA_IV_1 { + class syringe_kat_TXA_5ml_2: syringe_kat_TXA_5ml_1 { displayName = CSTRING(push_TXA_IV_2); displayNameProgress = CSTRING(pushing_TXA_IV_2); - items[] = {"kat_syringe_txa_5ml_2"}; + items[] = {"kat_syringe_kat_txa_5ml_2"}; + callbackSuccess = QFUNC(medication); + sounds[] = {}; + }; + class syringe_kat_norepinephrine_5ml_1: syringe_kat_EACA_5ml_1 { + displayName = CSTRING(push_norepinephrine_IV_1); + displayNameProgress = CSTRING(pushing_norepinephrine_IV_1); + allowedSelections[] = {"Body", "LeftArm", "RightArm", "LeftLeg", "RightLeg"}; + allowSelfTreatment = 1; + medicRequired = QGVAR(medLvl_norepinephrine); + treatmentTime = QGVAR(treatmentTime_norepinephrine); + condition = QUOTE(!(GVAR(MedicationsRequireInsIV)) || FUNC(removeIV)); + items[] = {"kat_syringe_kat_norepinephrine_5ml_1"}; + callbackSuccess = QFUNC(medication); + sounds[] = {}; + }; + class syringe_kat_norepinephrine_5ml_2: syringe_kat_norepinephrine_5ml_1 { + displayName = CSTRING(push_norepinephrine_IV_2); + displayNameProgress = CSTRING(pushing_norepinephrine_IV_2); + items[] = {"kat_syringe_kat_norepinephrine_5ml_2"}; + callbackSuccess = QFUNC(medication); + sounds[] = {}; + }; + class syringe_kat_phenylephrine_5ml_1: syringe_kat_EACA_5ml_1 { + displayName = CSTRING(push_phenylephrine_IV_1); + displayNameProgress = CSTRING(pushing_phenylephrine_IV_1); + allowedSelections[] = {"Body", "LeftArm", "RightArm", "LeftLeg", "RightLeg"}; + allowSelfTreatment = 1; + medicRequired = QGVAR(medLvl_phenylephrine); + treatmentTime = QGVAR(treatmentTime_phenylephrine); + condition = QUOTE(!(GVAR(MedicationsRequireInsIV)) || FUNC(removeIV)); + items[] = {"kat_syringe_kat_phenylephrine_5ml_1"}; + callbackSuccess = QFUNC(medication); + sounds[] = {}; + }; + class syringe_kat_penylephrine_5ml_2: syringe_kat_phenylephrine_5ml_1 { + displayName = CSTRING(push_phenylephrine_IV_2); + displayNameProgress = CSTRING(pushing_phenylephrine_IV_2); + items[] = {"kat_syringe_kat_phenylephrine_5ml_2"}; + callbackSuccess = QFUNC(medication); + sounds[] = {}; + }; + class syringe_kat_nitroglycerin_5ml_1: syringe_kat_EACA_5ml_1 { + displayName = CSTRING(push_nitroglycerin_IV_1); + displayNameProgress = CSTRING(pushing_nitroglycerin_IV_1); + allowedSelections[] = {"Body", "LeftArm", "RightArm", "LeftLeg", "RightLeg"}; + allowSelfTreatment = 1; + medicRequired = QGVAR(medLvl_nitroglycerin); + treatmentTime = QGVAR(treatmentTime_nitroglycerin); + condition = QUOTE(!(GVAR(MedicationsRequireInsIV)) || FUNC(removeIV)); + items[] = {"kat_syringe_kat_nitroglycerin_5ml_1"}; + callbackSuccess = QFUNC(medication); + sounds[] = {}; + }; + class syringe_kat_nitroglycerin_5ml_2: syringe_kat_nitroglycerin_5ml_1 { + displayName = CSTRING(push_nitroglycerin_IV_2); + displayNameProgress = CSTRING(pushing_nitroglycerin_IV_2); + items[] = {"kat_syringe_kat_nitroglycerin_5ml_2"}; + callbackSuccess = QFUNC(medication); + sounds[] = {}; + }; + class syringe_kat_amiodarone_5ml_1: syringe_kat_EACA_5ml_1 { + displayName = CSTRING(push_amiodarone_IV_1); + displayNameProgress = CSTRING(pushing_amiodarone_IV_1); + allowedSelections[] = {"Body", "LeftArm", "RightArm", "LeftLeg", "RightLeg"}; + allowSelfTreatment = 1; + medicRequired = QGVAR(medLvl_amiodarone); + treatmentTime = QGVAR(treatmentTime_amiodarone); + condition = QUOTE(!(GVAR(MedicationsRequireInsIV)) || FUNC(removeIV)); + items[] = {"kat_syringe_kat_amiodarone_5ml_1"}; + callbackSuccess = QFUNC(medication); + sounds[] = {}; + }; + class syringe_kat_amiodarone_5ml_2: syringe_kat_amiodarone_5ml_1 { + displayName = CSTRING(push_amiodarone_IV_2); + displayNameProgress = CSTRING(pushing_amiodarone_IV_2); + items[] = {"kat_syringe_kat_amiodarone_5ml_2"}; + callbackSuccess = QFUNC(medication); + sounds[] = {}; + }; + class syringe_kat_lidocaine_5ml_1: syringe_kat_EACA_5ml_1 { + displayName = CSTRING(push_lidocaine_IV_1); + displayNameProgress = CSTRING(pushing_lidocaine_IV_1); + allowedSelections[] = {"Body", "LeftArm", "RightArm", "LeftLeg", "RightLeg"}; + allowSelfTreatment = 1; + medicRequired = QGVAR(medLvl_lidocaine); + treatmentTime = QGVAR(treatmentTime_lidocaine); + condition = QUOTE(!(GVAR(MedicationsRequireInsIV)) || FUNC(removeIV)); + items[] = {"kat_syringe_kat_lidocaine_5ml_1"}; + callbackSuccess = QFUNC(medication); + sounds[] = {}; + }; + class syringe_kat_lidocaine_5ml_2: syringe_kat_lidocaine_5ml_1 { + displayName = CSTRING(push_lidocaine_IV_2); + displayNameProgress = CSTRING(pushing_lidocaine_IV_2); + items[] = {"kat_syringe_kat_lidocaine_5ml_2"}; + callbackSuccess = QFUNC(medication); + sounds[] = {}; + }; + class syringe_kat_atropine_5ml_1: syringe_kat_EACA_5ml_1 { + displayName = CSTRING(push_atropine_IV_1); + displayNameProgress = CSTRING(pushing_atropine_IV_1); + allowedSelections[] = {"Body", "LeftArm", "RightArm", "LeftLeg", "RightLeg"}; + allowSelfTreatment = 1; + medicRequired = QGVAR(medLvl_atropine); + treatmentTime = QGVAR(treatmentTime_atropine); + condition = QUOTE(!(GVAR(MedicationsRequireInsIV)) || FUNC(removeIV)); + items[] = {"kat_syringe_kat_atropine_5ml_1"}; + callbackSuccess = QFUNC(medication); + sounds[] = {}; + }; + class syringe_kat_atropine_5ml_2: syringe_kat_atropine_5ml_1 { + displayName = CSTRING(push_atropine_IV_2); + displayNameProgress = CSTRING(pushing_atropine_IV_2); + items[] = {"kat_syringe_kat_atropine_5ml_2"}; + callbackSuccess = QFUNC(medication); + sounds[] = {}; + }; + class syringe_kat_ketamine_5ml_1: syringe_kat_EACA_5ml_1 { + displayName = CSTRING(push_ketamine_IV_1); + displayNameProgress = CSTRING(pushing_ketamine_IV_1); + allowedSelections[] = {"Body", "LeftArm", "RightArm", "LeftLeg", "RightLeg"}; + allowSelfTreatment = 1; + medicRequired = QGVAR(medLvl_ketamine); + treatmentTime = QGVAR(treatmentTime_ketamine); + condition = QUOTE(!(GVAR(MedicationsRequireInsIV)) || FUNC(removeIV)); + items[] = {"kat_syringe_kat_ketamine_5ml_1"}; + callbackSuccess = QFUNC(medication); + sounds[] = {}; + }; + class syringe_kat_ketamine_5ml_2: syringe_kat_ketamine_5ml_1 { + displayName = CSTRING(push_ketamine_IV_2); + displayNameProgress = CSTRING(pushing_ketamine_IV_2); + items[] = {"kat_syringe_kat_ketamine_5ml_2"}; + callbackSuccess = QFUNC(medication); + sounds[] = {}; + }; + class syringe_kat_fentanyl_5ml_1: syringe_kat_EACA_5ml_1 { + displayName = CSTRING(push_fentanyl_IV_1); + displayNameProgress = CSTRING(pushing_fentanyl_IV_1); + allowedSelections[] = {"Body", "LeftArm", "RightArm", "LeftLeg", "RightLeg"}; + allowSelfTreatment = 1; + medicRequired = QGVAR(medLvl_fentanyl); + treatmentTime = QGVAR(treatmentTime_fentanyl); + condition = QUOTE(!(GVAR(MedicationsRequireInsIV)) || FUNC(removeIV)); + items[] = {"kat_syringe_kat_fentanyl_5ml_1"}; + callbackSuccess = QFUNC(medication); + sounds[] = {}; + }; + class syringe_kat_fentanyl_5ml_2: syringe_kat_fentanyl_5ml_1 { + displayName = CSTRING(push_fentanyl_IV_2); + displayNameProgress = CSTRING(pushing_fentanyl_IV_2); + items[] = {"kat_syringe_kat_fentanyl_5ml_2"}; + callbackSuccess = QFUNC(medication); + sounds[] = {}; + }; + class syringe_kat_nalbuphine_5ml_1: syringe_kat_EACA_5ml_1 { + displayName = CSTRING(push_nalbuphine_IV_1); + displayNameProgress = CSTRING(pushing_nalbuphine_IV_1); + allowedSelections[] = {"Body", "LeftArm", "RightArm", "LeftLeg", "RightLeg"}; + allowSelfTreatment = 1; + medicRequired = QGVAR(medLvl_nalbuphine); + treatmentTime = QGVAR(treatmentTime_nalbuphine); + condition = QUOTE(!(GVAR(MedicationsRequireInsIV)) || FUNC(removeIV)); + items[] = {"kat_syringe_kat_nalbuphine_5ml_1"}; + callbackSuccess = QFUNC(medication); + sounds[] = {}; + }; + class syringe_kat_nalbuphine_5ml_2: syringe_kat_nalbuphine_5ml_1 { + displayName = CSTRING(push_nalbuphine_IV_2); + displayNameProgress = CSTRING(pushing_nalbuphine_IV_2); + items[] = {"kat_syringe_kat_nalbuphine_5ml_2"}; + callbackSuccess = QFUNC(medication); + sounds[] = {}; + }; + class syringe_kat_lorazepam_5ml_1: syringe_kat_EACA_5ml_1 { + displayName = CSTRING(push_lorazepam_IV_1); + displayNameProgress = CSTRING(pushing_lorazepam_IV_1); + allowedSelections[] = {"Body", "LeftArm", "RightArm", "LeftLeg", "RightLeg"}; + allowSelfTreatment = 1; + medicRequired = QGVAR(medLvl_lorazepam); + treatmentTime = QGVAR(treatmentTime_lorazepam); + condition = QUOTE(!(GVAR(MedicationsRequireInsIV)) || FUNC(removeIV)); + items[] = {"kat_syringe_kat_lorazepam_5ml_1"}; + callbackSuccess = QFUNC(medication); + sounds[] = {}; + }; + class syringe_kat_lorazapam_5ml_1: syringe_kat_lorazepam_5ml_1 { + displayName = CSTRING(push_lorazepam_IV_2); + displayNameProgress = CSTRING(pushing_lorazepam_IV_2); + items[] = {"kat_syringe_kat_lorazepam_5ml_2"}; + callbackSuccess = QFUNC(medication); + sounds[] = {}; + }; + class syringe_kat_flumazenil_5ml_1: syringe_kat_EACA_5ml_1 { + displayName = CSTRING(push_flumazenil_IV_1); + displayNameProgress = CSTRING(pushing_flumazenil_IV_1); + allowedSelections[] = {"Body", "LeftArm", "RightArm", "LeftLeg", "RightLeg"}; + allowSelfTreatment = 1; + medicRequired = QGVAR(medLvl_flumazenil); + treatmentTime = QGVAR(treatmentTime_flumazenil); + condition = QUOTE(!(GVAR(MedicationsRequireInsIV)) || FUNC(removeIV)); + items[] = {"kat_syringe_kat_flumazenil_5ml_1"}; + callbackSuccess = QFUNC(medication); + sounds[] = {}; + }; + class syringe_kat_flumazenil_5ml_2: syringe_kat_flumazenil_5ml_1 { + displayName = CSTRING(push_flumazenil_IV_2); + displayNameProgress = CSTRING(pushing_flumazenil_IV_2); + items[] = {"kat_syringe_kat_flumazenil_5ml_2"}; + callbackSuccess = QFUNC(medication); + sounds[] = {}; + }; + class syringe_kat_etomidate_5ml_1: syringe_kat_EACA_5ml_1 { + displayName = CSTRING(push_etomidate_IV_1); + displayNameProgress = CSTRING(pushing_etomidate_IV_1); + allowedSelections[] = {"Body", "LeftArm", "RightArm", "LeftLeg", "RightLeg"}; + allowSelfTreatment = 1; + medicRequired = QGVAR(medLvl_etomidate); + treatmentTime = QGVAR(treatmentTime_etomidate); + condition = QUOTE(!(GVAR(MedicationsRequireInsIV)) || FUNC(removeIV)); + items[] = {"kat_syringe_kat_etomidate_5ml_1"}; + callbackSuccess = QFUNC(medication); + sounds[] = {}; + }; + class syringe_kat_etomidate_5ml_2: syringe_kat_etomidate_5ml_1 { + displayName = CSTRING(push_etomidate_IV_2); + displayNameProgress = CSTRING(pushing_flumazenil_IV_2); + items[] = {"kat_syringe_kat_etomidate_5ml_2"}; + callbackSuccess = QFUNC(medication); + sounds[] = {}; + }; + class syringe_kat_epinephrineIV_5ml_1: syringe_kat_EACA_5ml_1 { + displayName = CSTRING(push_epinephrineIV_IV_1); + displayNameProgress = CSTRING(pushing_epinephrineIV_IV_1); + allowedSelections[] = {"Body", "LeftArm", "RightArm", "LeftLeg", "RightLeg"}; + allowSelfTreatment = 1; + medicRequired = QGVAR(medLvl_epinephrineIV); + treatmentTime = QGVAR(treatmentTime_epinephrineIV); + condition = QUOTE(!(GVAR(MedicationsRequireInsIV)) || FUNC(removeIV)); + items[] = {"kat_syringe_kat_epinephrineIV_5ml_1"}; + callbackSuccess = QFUNC(medication); + sounds[] = {}; + }; + class syringe_kat_epinephrineIV_5ml_2: syringe_kat_epinephrineIV_5ml_1 { + displayName = CSTRING(push_epinephrineIV_IV_2); + displayNameProgress = CSTRING(pushing_epinephrineIV_IV_2); + items[] = {"kat_syringe_kat_epinephrineIV_5ml_2"}; + callbackSuccess = QFUNC(medication); + sounds[] = {}; + }; + class syringe_kat_lidocaine_10ml_1: syringe_kat_TXA_10ml_1 { + displayName = CSTRING(inject_lidocaine_IM_1); + displayNameProgress = CSTRING(injecting_lidocaine_IM_1); + allowedSelections[] = {"LeftArm", "RightArm", "LeftLeg", "RightLeg"}; + allowSelfTreatment = 1; + medicRequired = QGVAR(medLvl_lidocaine); + treatmentTime = QGVAR(treatmentTime_lidocaine); + items[] = {"kat_syringe_kat_lidocaine_10ml_1"}; + callbackSuccess = QFUNC(medication); + sounds[] = {}; + }; + class syringe_kat_ketamine_10ml_1: syringe_kat_TXA_10ml_1 { + displayName = CSTRING(inject_ketamine_IM_1); + displayNameProgress = CSTRING(injecting_ketamine_IM_1); + allowedSelections[] = {"LeftArm", "RightArm", "LeftLeg", "RightLeg"}; + allowSelfTreatment = 1; + medicRequired = QGVAR(medLvl_ketamine); + treatmentTime = QGVAR(treatmentTime_ketamine); + items[] = {"kat_syringe_kat_ketamine_10ml_1"}; + callbackSuccess = QFUNC(medication); + sounds[] = {}; + }; + class syringe_kat_ketamine_10ml_2: syringe_kat_ketamine_10ml_1 { + displayName = CSTRING(push_ketamine_IM_2); + displayNameProgress = CSTRING(pushing_ketamine_IM_2); + items[] = {"kat_syringe_kat_ketamine_10ml_2"}; + callbackSuccess = QFUNC(medication); + sounds[] = {}; + }; + class syringe_kat_fentanyl_10ml_1: syringe_kat_TXA_10ml_1 { + displayName = CSTRING(inject_fentanyl_IM_1); + displayNameProgress = CSTRING(injecting_fentanyl_IM_1); + allowedSelections[] = {"LeftArm", "RightArm", "LeftLeg", "RightLeg"}; + allowSelfTreatment = 1; + medicRequired = QGVAR(medLvl_fentanyl); + treatmentTime = QGVAR(treatmentTime_fentanyl); + items[] = {"kat_syringe_kat_fentanyl_10ml_1"}; + callbackSuccess = QFUNC(medication); + sounds[] = {}; + }; + class syringe_kat_fentanyl_10ml_2: syringe_kat_fentanyl_10ml_1 { + displayName = CSTRING(push_fentanyl_IM_2); + displayNameProgress = CSTRING(pushing_fentanyl_IM_2); + items[] = {"kat_syringe_kat_fentanyl_5ml_2"}; + callbackSuccess = QFUNC(medication); + sounds[] = {}; + }; + class syringe_kat_nalbuphine_10ml_1: syringe_kat_TXA_10ml_1 { + displayName = CSTRING(inject_nalbuphine_IM_1); + displayNameProgress = CSTRING(injecting_nalbuphine_IM_1); + allowedSelections[] = {"LeftArm", "RightArm", "LeftLeg", "RightLeg"}; + allowSelfTreatment = 1; + medicRequired = QGVAR(medLvl_nalbuphine); + treatmentTime = QGVAR(treatmentTime_nalbuphine); + items[] = {"kat_syringe_kat_nalbuphine_10ml_1"}; + callbackSuccess = QFUNC(medication); + sounds[] = {}; + }; + class syringe_kat_nalbuphine_10ml_2: syringe_kat_nalbuphine_10ml_1 { + displayName = CSTRING(push_nalbuphine_IM_2); + displayNameProgress = CSTRING(pushing_nalbuphine_IM_2); + items[] = {"kat_syringe_kat_nalbuphine_5ml_2"}; callbackSuccess = QFUNC(medication); sounds[] = {}; }; - }; diff --git a/addons/pharma/CfgWeapons.hpp b/addons/pharma/CfgWeapons.hpp index c3159b79f..2a5d0c6e8 100644 --- a/addons/pharma/CfgWeapons.hpp +++ b/addons/pharma/CfgWeapons.hpp @@ -289,6 +289,83 @@ class CfgWeapons { mass = 1; }; }; + class kat_syringe_kat_lidocaine_10ml_1: ACE_ItemCore { + scope = 2; + displayName = CSTRING(Syringe_lidocaine_10_1_Display); + picture = QPATHTOF(ui\icon_fast_io.paa); + model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; + descriptionShort = CSTRING(Syringe_lidocaine_10_1_DescShort); + ACE_isMedicalItem = 1; + class ItemInfo: CBA_MiscItem_ItemInfo { + mass = 1; + }; + }; + class kat_syringe_kat_ketamine_10ml_1: ACE_ItemCore { + scope = 2; + displayName = CSTRING(Syringe_ketamine_10_1_Display); + picture = QPATHTOF(ui\icon_fast_io.paa); + model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; + descriptionShort = CSTRING(Syringe_ketamine_10_1_DescShort); + ACE_isMedicalItem = 1; + class ItemInfo: CBA_MiscItem_ItemInfo { + mass = 1; + }; + }; + class kat_syringe_kat_ketamine_10ml_2: ACE_ItemCore { + scope = 2; + displayName = CSTRING(Syringe_ketamine_10_2_Display); + picture = QPATHTOF(ui\icon_fast_io.paa); + model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; + descriptionShort = CSTRING(Syringe_ketamine_10_2_DescShort); + ACE_isMedicalItem = 1; + class ItemInfo: CBA_MiscItem_ItemInfo { + mass = 1; + }; + }; + class kat_syringe_kat_fentanyl_10ml_1: ACE_ItemCore { + scope = 2; + displayName = CSTRING(Syringe_fentanyl_10_1_Display); + picture = QPATHTOF(ui\icon_fast_io.paa); + model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; + descriptionShort = CSTRING(Syringe_fentanyl_10_1_DescShort); + ACE_isMedicalItem = 1; + class ItemInfo: CBA_MiscItem_ItemInfo { + mass = 1; + }; + }; + class kat_syringe_kat_fentanyl_10ml_2: ACE_ItemCore { + scope = 2; + displayName = CSTRING(Syringe_fentanyl_10_2_Display); + picture = QPATHTOF(ui\icon_fast_io.paa); + model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; + descriptionShort = CSTRING(Syringe_fentanyl_10_2_DescShort); + ACE_isMedicalItem = 1; + class ItemInfo: CBA_MiscItem_ItemInfo { + mass = 1; + }; + }; + class kat_syringe_kat_nalbuphine_10ml_1: ACE_ItemCore { + scope = 2; + displayName = CSTRING(Syringe_nalbuphine_10_1_Display); + picture = QPATHTOF(ui\icon_fast_io.paa); + model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; + descriptionShort = CSTRING(Syringe_nalbuphine_10_1_DescShort); + ACE_isMedicalItem = 1; + class ItemInfo: CBA_MiscItem_ItemInfo { + mass = 1; + }; + }; + class kat_syringe_kat_nalbuphine_10ml_2: ACE_ItemCore { + scope = 2; + displayName = CSTRING(Syringe_nalbuphine_10_2_Display); + picture = QPATHTOF(ui\icon_fast_io.paa); + model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; + descriptionShort = CSTRING(Syringe_nalbuphine_10_2_DescShort); + ACE_isMedicalItem = 1; + class ItemInfo: CBA_MiscItem_ItemInfo { + mass = 1; + }; + }; class kat_syringe_kat_txa_5ml_1: ACE_ItemCore { scope = 2; displayName = CSTRING(Syringe_txa_5_1_Display); @@ -311,7 +388,7 @@ class CfgWeapons { mass = 1; }; }; - class kat_syringe_eaca_5ml_1: ACE_ItemCore { + class kat_syringe_kat_eaca_5ml_1: ACE_ItemCore { scope = 2; displayName = CSTRING(Syringe_eaca_5_1_Display); picture = QPATHTOF(ui\icon_fast_io.paa); @@ -322,7 +399,7 @@ class CfgWeapons { mass = 1; }; }; - class kat_syringe_eaca_5ml_2: ACE_ItemCore { + class kat_syringe_kat_eaca_5ml_2: ACE_ItemCore { scope = 2; displayName = CSTRING(Syringe_eaca_5_2_Display); picture = QPATHTOF(ui\icon_fast_io.paa); @@ -333,4 +410,268 @@ class CfgWeapons { mass = 1; }; }; + class kat_syringe_kat_norepinephrine_5ml_1: ACE_ItemCore { + scope = 2; + displayName = CSTRING(Syringe_norepinephrine_5_1_Display); + picture = QPATHTOF(ui\icon_fast_io.paa); + model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; + descriptionShort = CSTRING(Syringe_norepinephrine_5_1_DescShort); + ACE_isMedicalItem = 1; + class ItemInfo: CBA_MiscItem_ItemInfo { + mass = 1; + }; + }; + class kat_syringe_kat_norepinephrine_5ml_2: ACE_ItemCore { + scope = 2; + displayName = CSTRING(Syringe_norepinephrine_5_2_Display); + picture = QPATHTOF(ui\icon_fast_io.paa); + model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; + descriptionShort = CSTRING(Syringe_norepinephrine_5_2_DescShort); + ACE_isMedicalItem = 1; + class ItemInfo: CBA_MiscItem_ItemInfo { + mass = 1; + }; + }; + class kat_syringe_kat_phenylephrine_5ml_1: ACE_ItemCore { + scope = 2; + displayName = CSTRING(Syringe_phenylephrine_5_1_Display); + picture = QPATHTOF(ui\icon_fast_io.paa); + model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; + descriptionShort = CSTRING(Syringe_phenylephrine_5_1_DescShort); + ACE_isMedicalItem = 1; + class ItemInfo: CBA_MiscItem_ItemInfo { + mass = 1; + }; + }; + class kat_syringe_kat_phenylephrine_5ml_2: ACE_ItemCore { + scope = 2; + displayName = CSTRING(Syringe_phenylephrine_5_2_Display); + picture = QPATHTOF(ui\icon_fast_io.paa); + model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; + descriptionShort = CSTRING(Syringe_phenylephrine_5_2_DescShort); + ACE_isMedicalItem = 1; + class ItemInfo: CBA_MiscItem_ItemInfo { + mass = 1; + }; + }; + class kat_syringe_kat_nitroglycerin_5ml_1: ACE_ItemCore { + scope = 2; + displayName = CSTRING(Syringe_nitroglycerin_5_1_Display); + picture = QPATHTOF(ui\icon_fast_io.paa); + model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; + descriptionShort = CSTRING(Syringe_phenylephrine_5_1_DescShort); + ACE_isMedicalItem = 1; + class ItemInfo: CBA_MiscItem_ItemInfo { + mass = 1; + }; + }; + class kat_syringe_kat_nitroglycerin_5ml_2: ACE_ItemCore { + scope = 2; + displayName = CSTRING(Syringe_nitroglycerin_5_2_Display); + picture = QPATHTOF(ui\icon_fast_io.paa); + model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; + descriptionShort = CSTRING(Syringe_nitroglycerin_5_2_DescShort); + ACE_isMedicalItem = 1; + class ItemInfo: CBA_MiscItem_ItemInfo { + mass = 1; + }; + }; + class kat_syringe_kat_amiodarone_5ml_1: ACE_ItemCore { + scope = 2; + displayName = CSTRING(Syringe_amiodarone_5_1_Display); + picture = QPATHTOF(ui\icon_fast_io.paa); + model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; + descriptionShort = CSTRING(Syringe_amiodarone_5_1_DescShort); + ACE_isMedicalItem = 1; + class ItemInfo: CBA_MiscItem_ItemInfo { + mass = 1; + }; + }; + class kat_syringe_kat_amiodarone_5ml_2: ACE_ItemCore { + scope = 2; + displayName = CSTRING(Syringe_amiodarone_5_2_Display); + picture = QPATHTOF(ui\icon_fast_io.paa); + model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; + descriptionShort = CSTRING(Syringe_amiodarone_5_2_DescShort); + ACE_isMedicalItem = 1; + class ItemInfo: CBA_MiscItem_ItemInfo { + mass = 1; + }; + }; + class kat_syringe_kat_epinephrineIV_5ml_1: ACE_ItemCore { + scope = 2; + displayName = CSTRING(Syringe_epinephrineIV_5_1_Display); + picture = QPATHTOF(ui\icon_fast_io.paa); + model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; + descriptionShort = CSTRING(Syringe_epinephrineIV_5_1_DescShort); + ACE_isMedicalItem = 1; + class ItemInfo: CBA_MiscItem_ItemInfo { + mass = 1; + }; + }; + class kat_syringe_kat_epinephrineIV_5ml_2: ACE_ItemCore { + scope = 2; + displayName = CSTRING(Syringe_epinephrineIV_5_2_Display); + picture = QPATHTOF(ui\icon_fast_io.paa); + model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; + descriptionShort = CSTRING(Syringe_epinephrineIV_5_2_DescShort); + ACE_isMedicalItem = 1; + class ItemInfo: CBA_MiscItem_ItemInfo { + mass = 1; + }; + }; + class kat_syringe_kat_lidocaine_5ml_1: ACE_ItemCore { + scope = 2; + displayName = CSTRING(Syringe_lidocaine_5_1_Display); + picture = QPATHTOF(ui\icon_fast_io.paa); + model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; + descriptionShort = CSTRING(Syringe_lidocaine_5_1_DescShort); + ACE_isMedicalItem = 1; + class ItemInfo: CBA_MiscItem_ItemInfo { + mass = 1; + }; + }; + class kat_syringe_kat_lidocaine_5ml_2: ACE_ItemCore { + scope = 2; + displayName = CSTRING(Syringe_lidocaine_5_2_Display); + picture = QPATHTOF(ui\icon_fast_io.paa); + model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; + descriptionShort = CSTRING(Syringe_lidocaine_5_2_DescShort); + ACE_isMedicalItem = 1; + class ItemInfo: CBA_MiscItem_ItemInfo { + mass = 1; + }; + }; + class kat_syringe_kat_ketamine_5ml_1: ACE_ItemCore { + scope = 2; + displayName = CSTRING(Syringe_ketamine_5_1_Display); + picture = QPATHTOF(ui\icon_fast_io.paa); + model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; + descriptionShort = CSTRING(Syringe_ketamine_5_1_DescShort); + ACE_isMedicalItem = 1; + class ItemInfo: CBA_MiscItem_ItemInfo { + mass = 1; + }; + }; + class kat_syringe_kat_ketamine_5ml_2: ACE_ItemCore { + scope = 2; + displayName = CSTRING(Syringe_ketamine_5_2_Display); + picture = QPATHTOF(ui\icon_fast_io.paa); + model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; + descriptionShort = CSTRING(Syringe_ketamine_5_2_DescShort); + ACE_isMedicalItem = 1; + class ItemInfo: CBA_MiscItem_ItemInfo { + mass = 1; + }; + }; + class kat_syringe_kat_fentanyl_5ml_1: ACE_ItemCore { + scope = 2; + displayName = CSTRING(Syringe_fentanyl_5_1_Display); + picture = QPATHTOF(ui\icon_fast_io.paa); + model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; + descriptionShort = CSTRING(Syringe_fentanyl_5_1_DescShort); + ACE_isMedicalItem = 1; + class ItemInfo: CBA_MiscItem_ItemInfo { + mass = 1; + }; + }; + class kat_syringe_kat_fentanyl_5ml_2: ACE_ItemCore { + scope = 2; + displayName = CSTRING(Syringe_fentanyl_10_2_Display); + picture = QPATHTOF(ui\icon_fast_io.paa); + model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; + descriptionShort = CSTRING(Syringe_fentanyl_10_2_DescShort); + ACE_isMedicalItem = 1; + class ItemInfo: CBA_MiscItem_ItemInfo { + mass = 1; + }; + }; + class kat_syringe_kat_nalbuphine_5ml_1: ACE_ItemCore { + scope = 2; + displayName = CSTRING(Syringe_nalbuphine_5_1_Display); + picture = QPATHTOF(ui\icon_fast_io.paa); + model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; + descriptionShort = CSTRING(Syringe_nalbuphine_5_1_DescShort); + ACE_isMedicalItem = 1; + class ItemInfo: CBA_MiscItem_ItemInfo { + mass = 1; + }; + }; + class kat_syringe_kat_nalbuphine_5ml_2: ACE_ItemCore { + scope = 2; + displayName = CSTRING(Syringe_nalbuphine_5_2_Display); + picture = QPATHTOF(ui\icon_fast_io.paa); + model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; + descriptionShort = CSTRING(Syringe_nalbuphine_5_2_DescShort); + ACE_isMedicalItem = 1; + class ItemInfo: CBA_MiscItem_ItemInfo { + mass = 1; + }; + }; + class kat_syringe_kat_lorazepam_5ml_1: ACE_ItemCore { + scope = 2; + displayName = CSTRING(Syringe_lorazepam_5_1_Display); + picture = QPATHTOF(ui\icon_fast_io.paa); + model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; + descriptionShort = CSTRING(Syringe_lorazepam_5_1_DescShort); + ACE_isMedicalItem = 1; + class ItemInfo: CBA_MiscItem_ItemInfo { + mass = 1; + }; + }; + class kat_syringe_kat_lorazepam_5ml_2: ACE_ItemCore { + scope = 2; + displayName = CSTRING(Syringe_lorazepam_5_2_Display); + picture = QPATHTOF(ui\icon_fast_io.paa); + model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; + descriptionShort = CSTRING(Syringe_lorazepam_5_2_DescShort); + ACE_isMedicalItem = 1; + class ItemInfo: CBA_MiscItem_ItemInfo { + mass = 1; + }; + }; + class kat_syringe_kat_flumazenil_5ml_1: ACE_ItemCore { + scope = 2; + displayName = CSTRING(Syringe_flumazenil_5_1_Display); + picture = QPATHTOF(ui\icon_fast_io.paa); + model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; + descriptionShort = CSTRING(Syringe_flumazenil_5_1_DescShort); + ACE_isMedicalItem = 1; + class ItemInfo: CBA_MiscItem_ItemInfo { + mass = 1; + }; + }; + class kat_syringe_kat_flumazenil_5ml_2: ACE_ItemCore { + scope = 2; + displayName = CSTRING(Syringe_flumazenil_5_2_Display); + picture = QPATHTOF(ui\icon_fast_io.paa); + model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; + descriptionShort = CSTRING(Syringe_flumazenil_5_2_DescShort); + ACE_isMedicalItem = 1; + class ItemInfo: CBA_MiscItem_ItemInfo { + mass = 1; + }; + }; + class kat_syringe_kat_etomidate_5ml_1: ACE_ItemCore { + scope = 2; + displayName = CSTRING(Syringe_etomidate_5_1_Display); + picture = QPATHTOF(ui\icon_fast_io.paa); + model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; + descriptionShort = CSTRING(Syringe_etomidate_5_1_DescShort); + ACE_isMedicalItem = 1; + class ItemInfo: CBA_MiscItem_ItemInfo { + mass = 1; + }; + }; + class kat_syringe_kat_etomidate_5ml_2: ACE_ItemCore { + scope = 2; + displayName = CSTRING(Syringe_etomidate_5_2_Display); + picture = QPATHTOF(ui\icon_fast_io.paa); + model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; + descriptionShort = CSTRING(Syringe_etomidate_5_2_DescShort); + ACE_isMedicalItem = 1; + class ItemInfo: CBA_MiscItem_ItemInfo { + mass = 1; + }; + }; }; diff --git a/addons/pharma/config.cpp b/addons/pharma/config.cpp index 7677dbfcf..7c56ddc65 100644 --- a/addons/pharma/config.cpp +++ b/addons/pharma/config.cpp @@ -20,12 +20,12 @@ class CfgPatches { "kat_Carbonate", "kat_CarbonateItem", "kat_naloxone", + "kat_phenylephrineAuto", + "kat_X_AED", "kat_EACA", "kat_TXA", - "kat_X_AED", "kat_norepinephrine", "kat_phenylephrine", - "kat_phenylephrineAuto", "kat_nitroglycerin", "kat_amiodarone", "kat_lidocane", @@ -42,7 +42,40 @@ class CfgPatches { "kat_10ml_syringe_txa_2", "kat_5ml_syringe_txa_2", "kat_5ml_syringe_eaca_1", - "kat_5ml_syringe_eaca_2" + "kat_5ml_syringe_eaca_2", + "kat_syringe_kat_lidocaine_10ml_1", + "kat_syringe_kat_ketamine_10ml_1", + "kat_syringe_kat_ketamine_10ml_2", + "kat_syringe_kat_fentanyl_10ml_1", + "kat_syringe_kat_fentanyl_10ml_2", + "kat_syringe_kat_nalbuphine_10ml_1", + "kat_syringe_kat_nalbuphine_10ml_2", + "kat_syringe_kat_norepinephrine_5ml_1", + "kat_syringe_kat_norepinephrine_5ml_2", + "kat_syringe_kat_phenylephrine_5ml_1", + "kat_syringe_kat_phenylephrine_5ml_2", + "kat_syringe_kat_nitroglycerin_5ml_1", + "kat_syringe_kat_nitroglycerin_5ml_2", + "kat_syringe_kat_amiodarone_5ml_1", + "kat_syringe_kat_amiodarone_5ml_2", + "kat_syringe_kat_epinephrineIV_5ml_1", + "kat_syringe_kat_epinephrineIV_5ml_2", + "kat_syringe_kat_lidocaine_5ml_1", + "kat_syringe_kat_lidocaine_5ml_2", + "kat_syringe_kat_ketamine_5ml_1", + "kat_syringe_kat_ketamine_5ml_2", + "kat_syringe_kat_fentanyl_5ml_1", + "kat_syringe_kat_fentanyl_5ml_2", + "kat_syringe_kat_nalbuphine_5ml_1", + "kat_syringe_kat_nalbuphine_5ml_2", + "kat_syringe_kat_lorazepam_5ml_1", + "kat_syringe_kat_lorazepam_5ml_2", + "kat_syringe_kat_flumazenil_5ml_1", + "kat_syringe_kat_flumazenile_5ml_2", + "kat_syringe_kat_etomidate_5ml_1", + "kat_syringe_kat_etomidate_5ml_2", + "kat_syringe_kat_epinephrineIV_5ml_1", + "kat_syringe_kat_epinephrineIV_5ml_2", }; magazines[] = { }; requiredAddons[] = { diff --git a/addons/pharma/functions/fnc_applyIV.sqf b/addons/pharma/functions/fnc_applyIV.sqf index 81c57adf9..e5f6b1659 100644 --- a/addons/pharma/functions/fnc_applyIV.sqf +++ b/addons/pharma/functions/fnc_applyIV.sqf @@ -66,7 +66,7 @@ switch (_usedItem) do { case "kat_IO_FAST": { _IVarray set [_partIndex, 1]; - _IVrate set [_partIndex, 0.2]; + _IVrate set [_partIndex, 0.4]; _patient setVariable [QGVAR(IV), _IVarray, true]; _patient setVariable [QGVAR(IVrate), _IVrate, true]; private _lidocaineCount = [_patient, "Lidocaine", false] call ACEFUNC(medical_status,getMedicationCount); diff --git a/addons/pharma/functions/fnc_insertChildrenSyringe.sqf b/addons/pharma/functions/fnc_insertChildrenSyringe.sqf index 078722199..003202f20 100644 --- a/addons/pharma/functions/fnc_insertChildrenSyringe.sqf +++ b/addons/pharma/functions/fnc_insertChildrenSyringe.sqf @@ -1,7 +1,7 @@ #include "..\script_component.hpp" /* - * Author: Katalam - * Insert children actions for medication sub ace self action + * Author: Katalam, modified by Cplhardcore + * Adds sub actions for preparing syringes * * Arguments: * 0: Player @@ -40,7 +40,8 @@ private _allMedications = [ "kat_nalbuphine", "kat_lorazepam", "kat_flumazenil", - "kat_etomidate" + "kat_etomidate", + "kat_epinephrineIV" ]; // Filter the player's items to get all medications @@ -55,7 +56,6 @@ private _medications = []; }; } forEach (items _player); -// Create the ACE actions for each medication, dose type, and syringe type private _actions = []; { @@ -65,24 +65,19 @@ private _actions = []; { private _doseType = _x; - // Construct the class name based on medication, syringe type, and dose type + private _className = format ["kat_syringe_%1_%2_%3", _medication, _syringeType, _doseType]; - // Check if the class exists in CfgWeapons if (isClass (configFile >> "CfgWeapons" >> _className)) then { - // Format the stringtable key to include medication, dose type, and syringe type + private _stringtableKey = format ["STR_KAT_Pharma_SyringeAction_%1_%2_%3", _medication, _syringeType, _doseType]; - // Localize the action display name using the custom stringtable entry private _displayName = localize _stringtableKey; - // Format the action variable name to include medication, dose type, and syringe type private _actionVarName = format [QGVAR(syringe_action_%1_%2_%3), _medication, _syringeType, _doseType]; - // Create the action private _action = [_actionVarName, _displayName, "", FUNC(prepareSyringe), {true}, {}, [_medication, _syringeType, _doseType]] call ACEFUNC(interact_menu,createAction); - // Add the action to the actions array _actions pushBack [_action, [], _target]; }; } forEach _doseTypes; diff --git a/addons/pharma/functions/fnc_medicationLocal.sqf b/addons/pharma/functions/fnc_medicationLocal.sqf index b3f41f84d..3b52239cf 100644 --- a/addons/pharma/functions/fnc_medicationLocal.sqf +++ b/addons/pharma/functions/fnc_medicationLocal.sqf @@ -112,11 +112,22 @@ TRACE_3("adjustments",_heartRateChange,_painReduce,_viscosityChange); //Change Alpha Factor [_patient, _alphaFactor] call FUNC(alphaAction); +// Extract the medication name from the full class name safely. +_medicationParts = (_className select [13, count _className - 13]) splitString "_"; + +if (count _medicationParts > 4) then { + _medicationName = _medicationParts select 4; + + // Check if the extracted medication name is in the list. + if (_medicationName in ["lorazepam","ketamine","EACA","TXA","atropine","amiodarone","flumazenil"]) then { + [format ["kat_pharma_%1Local", toLower _medicationName], [_patient, _bodyPart], _patient] call CBA_fnc_targetEvent; + }; -if (_className in ["Lorazepam","Ketamine","EACA","TXA","Atropine","Amiodarone","Flumazenil"]) then { - [format ["kat_pharma_%1Local", toLower _className], [_patient, _bodyPart], _patient] call CBA_fnc_targetEvent; -}; - -if (_className in ["Fentanyl","Morphine","Nalbuphine"]) then { - [format ["kat_pharma_%1Local", toLower _className], [_patient, _bodyPart, _opioidRelief], _patient] call CBA_fnc_targetEvent; + if (_medicationName in ["fentanyl","morphine","nalbuphine"]) then { + [format ["kat_pharma_%1Local", toLower _medicationName], [_patient, _bodyPart, _opioidRelief], _patient] call CBA_fnc_targetEvent; + }; +} else { + // Handle the case where the medication name couldn't be extracted properly. + // This could be logging an error, or taking some other action. + diag_log format ["Unexpected _className format: %1", _className]; }; \ No newline at end of file diff --git a/addons/pharma/functions/fnc_prepareSyringe.sqf b/addons/pharma/functions/fnc_prepareSyringe.sqf index 9f1570693..5f9fc8412 100644 --- a/addons/pharma/functions/fnc_prepareSyringe.sqf +++ b/addons/pharma/functions/fnc_prepareSyringe.sqf @@ -1,6 +1,6 @@ #include "..\script_component.hpp" /* - * Author: Katalam + * Author: Katalam, modified by Cplhardcore * Removes a syringe and a given medication and * returns a "crafted" syringe with fluid * diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_NorepinephrineLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_NorepinephrineLocal.sqf new file mode 100644 index 000000000..3b5c1c1f4 --- /dev/null +++ b/addons/pharma/functions/fnc_treatmentAdvanced_NorepinephrineLocal.sqf @@ -0,0 +1,29 @@ +#include "..\script_component.hpp" +/* + * Author: Mazinski.H + * Locates and Removes Bradycardia Effect. + * + * Arguments: + * 0: Patient + * + * Return Value: + * None + * + * Example: + * [player] call kat_pharma_fnc_treatmentAdvanced_NorepinephrineLocal; + * + * Public: No + */ +params ["_patient"]; + +private _medicationArray = _patient getVariable [QACEGVAR(medical,medications), []]; + +{ + _x params ["_medication"]; + + if (_medication isEqualTo "BRADYCARDIA") exitWith { + _medicationArray deleteAt (_medicationArray find _x); + }; +} forEach (_medicationArray); + +_patient setVariable [QACEGVAR(medical,medications), _medicationArray, true]; \ No newline at end of file diff --git a/addons/pharma/stringtable.xml b/addons/pharma/stringtable.xml index c4c93b675..c8118cffa 100644 --- a/addons/pharma/stringtable.xml +++ b/addons/pharma/stringtable.xml @@ -3782,6 +3782,198 @@ 10ml Syringe loaded with 2 grams of TXA + + 10ml Syringe/40mg Lidocaine + + + 10ml Syringe loaded with 40mg of Lidocaine + + + 10ml Syringe/25mg Ketamine + + + 10ml Syringe loaded with 25mg of Ketamine + + + 10ml Syringe/80mg Ketamine + + + 10ml Syringe loaded with 80mg of Ketamine + + + 10ml Syringe/40mcg Fentanyl + + + 10ml Syringe loaded with 40mcg of Fentanyl + + + 10ml Syringe/80mcg Fentanyl + + + 10ml Syringe loaded with 80mcg of Fentanyl + + + 10ml Syringe/10mg Nalbuphine + + + 10ml Syringe loaded with 10mg of Nalbuphine + + + 10ml Syringe/20mg Nalbuphine + + + 10ml Syringe loaded with 20mg of Nalbuphine + + + 5ml Syringe/150mcg Norepinephrine + + + 5ml Syringe loaded with 150mcg of Norepinephrine + + + 5ml Syringe/240mcg Norepinephrine + + + 5ml Syringe loaded with 240mcg of Norepinephrine + + + 5ml Syringe/100mcg Phenylephrine + + + 5ml Syringe loaded with 100mcg of Phenylephrine + + + 5ml Syringe/200mcg Phenylephrine + + + 5ml Syringe loaded with 200mcg of Phenylephrine + + + 5ml Syringe/50mcg Nitroglycerin + + + 5ml Syringe loaded with 50mcg of Nitroglycerin + + + 5ml Syringe/100mcg Nitroglycerin + + + 5ml Syringe loaded with 100mcg of Nitroglycerin + + + 5ml Syringe/150mg Amiodarone + + + 5ml Syringe loaded with 150mg of Amiodarone + + + 5ml Syringe/300mg Amiodarone + + + 5ml Syringe loaded with 300mg of Amiodarone + + + 5ml Syringe/40mg Lidocaine + + + 5ml Syringe loaded with 40mg of Lidocaine + + + 5ml Syringe/80mg Lidocaine + + + 5ml Syringe loaded with 80mg of Lidocaine + + + 5ml Syringe/0.6mg Atropine + + + 5ml Syringe loaded with 0.6mg of Atropine + + + 5ml Syringe/2mg Atropine + + + 5ml Syringe loaded with 2mg of Atropine + + + 5ml Syringe/25mg Ketamine + + + 5ml Syringe loaded with 25mg of Ketamine + + + 5ml Syringe/80mg Ketamine + + + 5ml Syringe loaded with 80mg of Ketamine + + + 5ml Syringe/40mcg Fentanyl + + + 5ml Syringe loaded with 40mcg of Fentanyl + + + 5ml Syringe/80mcg Fentanyl + + + 5ml Syringe loaded with 80mcg of Fentanyl + + + 5ml Syringe/10mg Nalbuphine + + + 5ml Syringe loaded with 10mg of Nalbuphine + + + 5ml Syringe/20mg Nalbuphine + + + 5ml Syringe loaded with 20mg of Nalbuphine + + + 5ml Syringe/2.4mg Lorazepam + + + 5ml Syringe loaded with 2.4mg of Lorazepam + + + 5ml Syringe/4mg Lorazepam + + + 5ml Syringe loaded with 4mg of Lorazepam + + + 5ml Syringe/0.1mg Flumazenil + + + 5ml Syringe loaded with 0.1mg of Flumazenil + + + 5ml Syringe/0.2mg Flumazenil + + + 5ml Syringe loaded with 0.2mg of Flumazenil + + + 5ml Syringe/0.2mg Etomidate + + + 5ml Syringe loaded with 0.2mg of Etomidate + + + 5ml Syringe/0.3mg Etomidate + + + 5ml Syringe loaded with 0.3mg of Etomidate + + + 5ml Syringe/1mg Epinephrine + + + 5ml Syringe loaded with 1mg of Epinephrine + 5ml Syringe/1g TXA @@ -3818,12 +4010,6 @@ Push 15g EACA IV - - Inject 1g TXA IM - - - Inject 2g TXA IM - Pushing 1g TXA IV @@ -3836,12 +4022,210 @@ Pushing 15g EACA IV + + Push 150mg Norepinephrine IV + + + Push 240mg Norepinephrine IV + + + Push 100mcg Phenylephrine IV + + + Push 200mcg Phenylephrine IV + + + Push 50mcg Nitroglycerin IV + + + Push 100mcg Nitroglycerin IV + + + Push 150mg Amiodarone IV + + + Push 300mg Amiodarone IV + + + Push 40mg Lidocaine IV + + + Push 80mg Lidocaine IV + + + Push 0.6mg Atropine IV + + + Push 2mg Atropine IV + + + Push 25mg Ketamine IV + + + Push 80mg Ketamine IV + + + Push 40mcg Fentanyl IV + + + Push 80mcg Fentanyl IV + + + Push 10mg Nalbuphine IV + + + Push 20mg Nalbuphine IV + + + Push 2.4mg Lorazepam IV + + + Push 4mg Lorazepam IV + + + Push 0.1mg Flumazenil IV + + + Push 0.2mg Flumazenil IV + + + Push 0.2mg Etomidate IV + + + Push 0.3mg Etomidate IV + + + Push 1mg Epinephrine IV + + + Pushing 150mg Norepinephrine IV + + + Pushing 240mg Norepinephrine IV + + + Pushing 100mcg Phenylephrine IV + + + Pushing 200mcg Phenylephrine IV + + + Pushing 50mcg Nitroglycerin IV + + + Pushing 100mcg Nitroglycerin IV + + + Pushing 150mg Amiodarone IV + + + Pushing 300mg Amiodarone IV + + + Pushing 40mg Lidocaine IV + + + Pushing 80mg Lidocaine IV + + + Pushing 0.6mg Atropine IV + + + Pushing 2mg Atropine IV + + + Pushing 25mg Ketamine IV + + + Pushing 80mg Ketamine IV + + + Pushing 40mcg Fentanyl IV + + + Pushing 80mcg Fentanyl IV + + + Pushing 10mg Nalbuphine IV + + + Pushing 20mg Nalbuphine IV + + + Pushing 2.4mg Lorazepam IV + + + Pushing 4mg Lorazepam IV + + + Pushing 0.1mg Flumazenil IV + + + Pushing 0.2mg Flumazenil IV + + + Pushing 0.2mg Etomidate IV + + + Pushing 0.3mg Etomidate IV + + + Pushing 1mg Epinephrine IV + + + Inject 1g TXA IM + + + Inject 2g TXA IM + + + Inject 40mg Lidocaine IM + + + Inject 25mg Ketamine IM + + + Inject 80mg Ketamine IM + + + Inject 40mcg Fentanyl IM + + + Inject 80mcg Fentanyl IM + + + Inject 10mg Nalbuphine IM + + + Inject 20mg Nalbuphine IM + Injecting 1g TXA IM Injecting 2g TXA IM + + Injecting 40mg Lidocaine IM + + + Injecting 25mg Ketamine IM + + + Injecting 80mg Ketamine IM + + + Injecting 40mcg Fentanyl IM + + + Injecting 80mcg Fentanyl IM + + + Injecting 10mg Nalbuphine IM + + + Injecting 20mg Nalbuphine IM + Establish 14g IV @@ -3875,5 +4259,101 @@ Prep 10ml TXA 2g + + Prep 5ml Norepinephrine 150mcg + + + Prep 5ml Norepinephrine 240mcg + + + Prep 5ml Phenylephrine 100mcg + + + Prep 5ml Phenylephrine 200mcg + + + Prep 5ml Nitroglycerin 50mcg + + + Prep 5ml Nitroglycerin 100mcg + + + Prep 5ml Amiodarone 150mg + + + Prep 5ml Amiodarone 300mg + + + Prep 5ml Lidocaine 40mg + + + Prep 5ml Lidocaine 80mg + + + Prep 5ml Atropine 0.6mg + + + Prep 5ml Atropine 2mg + + + Prep 5ml Ketamine 25mg + + + Prep 5ml Ketamine 80mg + + + Prep 5ml Fentanyl 40mcg + + + Prep 5ml Fentanyl 80mcg + + + Prep 5ml Nalbuphine 10mg + + + Prep 5ml Nalbuphine 20mg + + + Prep 5ml Lorazepam 2.4mg + + + Prep 5ml Lorazepam 4mg + + + Prep 5ml Flumazenil 0.1mg + + + Prep 5ml Flumazenil 0.2mg + + + Prep 5ml Etomidate 0.2mg + + + Prep 5ml Etomidate 0.3mg + + + Prep 5ml Epinephrine 1mg + + + Prep 10ml Lidocaine 40mg + + + Prep 10ml Ketamine 25mg + + + Prep 10ml Ketamine 80mg + + + Prep 10ml Fentanyl 40mcg + + + Prep 10ml Fentanyl 80mcg + + + Prep 10ml Nalbuphine 10mg + + + Prep 10ml Nalbuphine 20mg + From 54c5fc1580f2b6bc413cd88a11b5aa1c555b493b Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Thu, 12 Sep 2024 23:48:51 -0700 Subject: [PATCH 050/149] Final? --- .../fnc_treatmentAdvanced_AtropineLocal.sqf | 3 +- addons/circulation/functions/fnc_cprLocal.sqf | 22 ++- addons/pharma/ACE_Medical_Treatment.hpp | 176 +++++++++--------- addons/pharma/config.cpp | 14 +- addons/pharma/functions/fnc_clotWound.sqf | 10 +- addons/pharma/functions/fnc_coagRegen.sqf | 12 +- addons/pharma/functions/fnc_handleRespawn.sqf | 2 +- addons/pharma/functions/fnc_init.sqf | 4 +- .../pharma/functions/fnc_medicationLocal.sqf | 12 +- .../fnc_treatmentAdvanced_AtropineLocal.sqf | 6 +- .../fnc_treatmentAdvanced_EACALocal.sqf | 4 +- .../fnc_treatmentAdvanced_KetamineLocal.sqf | 8 + ..._treatmentAdvanced_NorepinephrineLocal.sqf | 2 +- .../fnc_treatmentAdvanced_TXALocal.sqf | 6 +- addons/pharma/stringtable.xml | 16 +- 15 files changed, 179 insertions(+), 118 deletions(-) diff --git a/addons/chemical/functions/fnc_treatmentAdvanced_AtropineLocal.sqf b/addons/chemical/functions/fnc_treatmentAdvanced_AtropineLocal.sqf index ede9e02ae..8989f5414 100644 --- a/addons/chemical/functions/fnc_treatmentAdvanced_AtropineLocal.sqf +++ b/addons/chemical/functions/fnc_treatmentAdvanced_AtropineLocal.sqf @@ -15,7 +15,8 @@ * Public: No */ -params ["_patient"]; +params ["_patient", "_classname"]; +if (_classname isEqualTo syringe_kat_atropine_5ml_1) exitwith {}; _patient setVariable [QGVAR(airPoisoning), false, true]; _patient setVariable [QGVAR(isTreated), true, true]; diff --git a/addons/circulation/functions/fnc_cprLocal.sqf b/addons/circulation/functions/fnc_cprLocal.sqf index 8d2871964..9d5c9457f 100644 --- a/addons/circulation/functions/fnc_cprLocal.sqf +++ b/addons/circulation/functions/fnc_cprLocal.sqf @@ -73,7 +73,7 @@ private _fnc_advRhythm = { { case "Epinephrine": { - _epiBoost = 1.5; + _epiBoost = 1.2; }; case "EpinephrineIV": { @@ -87,6 +87,26 @@ private _fnc_advRhythm = { { _lidoBoost = _lidoBoost + 8; }; + case "syringe_kat_epinephrineIV_5ml_1": + { + _epiBoost = 1.3; + }; + case "syringe_kat_epinephrineIV_5ml_2": + { + _epiBoost = 1.5; + }; + case "syringe_kat_lidocaine_5ml_2": + { + _lidoBoost = _lidoBoost + 8; + }; + case "syringe_kat_amiodarone_5ml_1": + { + _amiBoost = _amiBoost + (random [6,10,16]); + }; + case "syringe_kat_amiodarone_5ml_2": + { + _amiBoost = _amiBoost + (random [8,14,20]); + }; }; } forEach (_patient getVariable [QACEGVAR(medical,medications), []]); diff --git a/addons/pharma/ACE_Medical_Treatment.hpp b/addons/pharma/ACE_Medical_Treatment.hpp index ecba2e051..dde360016 100644 --- a/addons/pharma/ACE_Medical_Treatment.hpp +++ b/addons/pharma/ACE_Medical_Treatment.hpp @@ -340,9 +340,9 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseLow[] = {0, 0}; hrIncreaseNormal[] = {0, 0}; hrIncreaseHigh[] = {0, 0}; - timeInSystem = 120; + timeInSystem = 180; timeTillMaxEffect = 5; - maxDose = 3; + maxDose = 2; incompatibleMedication[] = {}; viscosityChange = 0; onOverDose = ""; @@ -352,9 +352,9 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseLow[] = {0, 0}; hrIncreaseNormal[] = {0, 0}; hrIncreaseHigh[] = {0, 0}; - timeInSystem = 120; + timeInSystem = 240; timeTillMaxEffect = 5; - maxDose = 3; + maxDose = 13; incompatibleMedication[] = {}; viscosityChange = 0; onOverDose = ""; @@ -365,8 +365,8 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseNormal[] = {0, 0}; hrIncreaseHigh[] = {0, 0}; timeInSystem = 120; - timeTillMaxEffect = 5; - maxDose = 3; + timeTillMaxEffect = 15; + maxDose = 2; incompatibleMedication[] = {}; viscosityChange = 0; onOverDose = ""; @@ -377,8 +377,8 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseNormal[] = {0, 0}; hrIncreaseHigh[] = {0, 0}; timeInSystem = 120; - timeTillMaxEffect = 5; - maxDose = 3; + timeTillMaxEffect = 15; + maxDose = 2; incompatibleMedication[] = {}; viscosityChange = 0; onOverDose = ""; @@ -390,7 +390,7 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseHigh[] = {0, 0}; timeInSystem = 200; timeTillMaxEffect = 15; - maxDose = 10; + maxDose = 3; incompatibleMedication[] = {}; viscosityChange = 0; onOverDose = ""; @@ -402,7 +402,7 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseHigh[] = {0, 0}; timeInSystem = 600; timeTillMaxEffect = 15; - maxDose = 10; + maxDose = 3; incompatibleMedication[] = {}; viscosityChange = 0; onOverDose = ""; @@ -410,11 +410,11 @@ class ACE_ADDON(Medical_Treatment) { class syringe_kat_epinephrineIV_5ml_1 { painReduce = 0; hrIncreaseLow[] = {15, 30}; - hrIncreaseNormal[] = {10, 50}; + hrIncreaseNormal[] = {10, 40}; hrIncreaseHigh[] = {15, 40}; timeInSystem = 120; timeTillMaxEffect = 10; - maxDose = 4; + maxDose = 2; maxDoseDeviation = 2; incompatibleMedication[] = {}; alphaFactor = -0.3; @@ -427,7 +427,7 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseHigh[] = {5, 10}; timeInSystem = 360; timeTillMaxEffect = 15; - maxDose = 12; + maxDose = 6; incompatibleMedication[] = {}; viscosityChange = 25; alphaFactor = -0.3; @@ -438,10 +438,10 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseLow[] = {-5, -10}; hrIncreaseNormal[] = {-10, -15}; hrIncreaseHigh[] = {-10, -15}; - timeInSystem = 360; + timeInSystem = 300; timeTillMaxEffect = 15; - maxDose = 6; - maxDoseDeviation = 4; + maxDose = 3; + maxDoseDeviation = 3; incompatibleMedication[] = {}; viscosityChange = 50; alphaFactor = -0.5; @@ -462,7 +462,7 @@ class ACE_ADDON(Medical_Treatment) { onOverDose = ""; }; class syringe_kat_fentanyl_5ml_1 { - painReduce = 1; + painReduce = 0.8; hrIncreaseLow[] = {-10, -5}; hrIncreaseNormal[] = {-15, -10}; hrIncreaseHigh[] = {-20, -10}; @@ -473,23 +473,23 @@ class ACE_ADDON(Medical_Treatment) { incompatibleMedication[] = {}; viscosityChange = -10; onOverDose = ""; - opioidRelief = 1.5; + opioidRelief = 1.2; }; class syringe_kat_ketamine_5ml_1 { - painReduce = 0.8; + painReduce = 0.7; hrIncreaseLow[] = {5, 10}; hrIncreaseNormal[] = {10, 15}; hrIncreaseHigh[] = {10, 15}; timeInSystem = 900; timeTillMaxEffect = 15; maxDose = 2; - maxDoseDeviation = 2; + maxDoseDeviation = 1; incompatibleMedication[] = {}; viscosityChange = 10; onOverDose = ""; }; class syringe_kat_nalbuphine_5ml_1 { - painReduce = 0.6; + painReduce = 0.5; hrIncreaseLow[] = {-5, 0}; hrIncreaseNormal[] = {-10, -5}; hrIncreaseHigh[] = {-15, -5}; @@ -500,7 +500,7 @@ class ACE_ADDON(Medical_Treatment) { incompatibleMedication[] = {}; viscosityChange = -5; onOverDose = ""; - opioidRelief = 1.2; + opioidRelief = 1.1; }; class syringe_kat_atropine_5ml_1 { painReduce = 0; @@ -509,16 +509,16 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseHigh[] = {5, 15}; timeInSystem = 120; timeTillMaxEffect = 30; - maxDose = 4; + maxDose = 2; incompatibleMedication[]= {}; viscosityChange = 0; onOverDose = ""; }; class syringe_kat_amiodarone_5ml_1 { painReduce = 0; - hrIncreaseLow[] = {0, 0, 0}; - hrIncreaseNormal[] = {0, 0, 0}; - hrIncreaseHigh[] = {0, 0, 0}; + hrIncreaseLow[] = {0, 0}; + hrIncreaseNormal[] = {0, 0}; + hrIncreaseHigh[] = {0, 0}; timeInSystem = 120; timeTillMaxEffect = 30; maxDose = 4; @@ -528,9 +528,9 @@ class ACE_ADDON(Medical_Treatment) { }; class syringe_kat_lidocaine_5ml_1 { painReduce = 0.2; - hrIncreaseLow[] = {0, 0, 0}; - hrIncreaseNormal[] = {0, 0, 0}; - hrIncreaseHigh[] = {0, 0, 0}; + hrIncreaseLow[] = {0, 0}; + hrIncreaseNormal[] = {0, 0}; + hrIncreaseHigh[] = {0, 0}; timeInSystem = 120; timeTillMaxEffect = 30; maxDose = 2; @@ -541,7 +541,7 @@ class ACE_ADDON(Medical_Treatment) { }; class syringe_kat_etomidate_5ml_1 { painReduce = 0.4; - hrIncreaseLow[] = {-5, -10}; + hrIncreaseLow[] = {-10, -5}; hrIncreaseNormal[] = {-15, -20}; hrIncreaseHigh[] = {-20, -30}; timeInSystem = 45; @@ -577,62 +577,62 @@ class ACE_ADDON(Medical_Treatment) { }; class syringe_kat_epinephrineIV_5ml_2 { painReduce = 0; - hrIncreaseLow[] = {15, 30}; - hrIncreaseNormal[] = {10, 50}; - hrIncreaseHigh[] = {15, 40}; - timeInSystem = 120; + hrIncreaseLow[] = {25, 40}; + hrIncreaseNormal[] = {20, 50}; + hrIncreaseHigh[] = {20, 40}; + timeInSystem = 180; timeTillMaxEffect = 10; - maxDose = 4; + maxDose = 2; maxDoseDeviation = 2; incompatibleMedication[] = {}; - alphaFactor = -0.3; + alphaFactor = -0.4; onOverDose = ""; }; class syringe_kat_norepinephrine_5ml_2 { painReduce = 0; - hrIncreaseLow[] = {0, 5}; - hrIncreaseNormal[] = {5, 15}; - hrIncreaseHigh[] = {5, 10}; + hrIncreaseLow[] = {0, 10}; + hrIncreaseNormal[] = {10, 15}; + hrIncreaseHigh[] = {10, 15}; timeInSystem = 360; timeTillMaxEffect = 15; - maxDose = 12; + maxDose = 6; incompatibleMedication[] = {}; viscosityChange = 25; - alphaFactor = -0.3; + alphaFactor = -0.4; onOverDose = ""; }; class syringe_kat_phenylephrine_5ml_2 { painReduce = 0; - hrIncreaseLow[] = {-5, -10}; - hrIncreaseNormal[] = {-10, -15}; - hrIncreaseHigh[] = {-10, -15}; - timeInSystem = 360; + hrIncreaseLow[] = {-15, -5}; + hrIncreaseNormal[] = {-15, -25}; + hrIncreaseHigh[] = {-15, -20}; + timeInSystem = 300; timeTillMaxEffect = 15; - maxDose = 6; - maxDoseDeviation = 4; + maxDose = 3; + maxDoseDeviation = 3; incompatibleMedication[] = {}; viscosityChange = 50; - alphaFactor = -0.5; + alphaFactor = -0.7; onOverDose = ""; }; class syringe_kat_nitroglycerin_5ml_2 { painReduce = 0; - hrIncreaseLow[] = {5, 10}; - hrIncreaseNormal[] = {10, 15}; + hrIncreaseLow[] = {5, 15}; + hrIncreaseNormal[] = {10, 20}; hrIncreaseHigh[] = {10, 15}; timeInSystem = 360; timeTillMaxEffect = 15; maxDose = 6; maxDoseDeviation = 4; incompatibleMedication[] = {}; - viscosityChange = -25; - alphaFactor = 0.3; + viscosityChange = -30; + alphaFactor = 0.5; onOverDose = ""; }; class syringe_kat_fentanyl_5ml_2 { painReduce = 1; - hrIncreaseLow[] = {-10, -5}; - hrIncreaseNormal[] = {-15, -10}; + hrIncreaseLow[] = {-15, -10}; + hrIncreaseNormal[] = {-25, -15}; hrIncreaseHigh[] = {-20, -10}; timeInSystem = 900; timeTillMaxEffect = 20; @@ -645,21 +645,21 @@ class ACE_ADDON(Medical_Treatment) { }; class syringe_kat_ketamine_5ml_2 { painReduce = 0.8; - hrIncreaseLow[] = {5, 10}; - hrIncreaseNormal[] = {10, 15}; + hrIncreaseLow[] = {5, 15}; + hrIncreaseNormal[] = {10, 20}; hrIncreaseHigh[] = {10, 15}; timeInSystem = 900; timeTillMaxEffect = 15; maxDose = 2; - maxDoseDeviation = 2; + maxDoseDeviation = 1; incompatibleMedication[] = {}; viscosityChange = 10; onOverDose = ""; }; class syringe_kat_nalbuphine_5ml_2 { painReduce = 0.6; - hrIncreaseLow[] = {-5, 0}; - hrIncreaseNormal[] = {-10, -5}; + hrIncreaseLow[] = {-10, 0}; + hrIncreaseNormal[] = {-15, -5}; hrIncreaseHigh[] = {-15, -5}; timeInSystem = 900; timeTillMaxEffect = 30; @@ -677,7 +677,7 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseHigh[] = {5, 15}; timeInSystem = 120; timeTillMaxEffect = 30; - maxDose = 4; + maxDose = 2; incompatibleMedication[]= {}; viscosityChange = 0; onOverDose = ""; @@ -695,21 +695,21 @@ class ACE_ADDON(Medical_Treatment) { onOverDose = ""; }; class syringe_kat_lidocaine_5ml_2 { - painReduce = 0.2; - hrIncreaseLow[] = {0, 0, 0}; - hrIncreaseNormal[] = {0, 0, 0}; - hrIncreaseHigh[] = {0, 0, 0}; + painReduce = 0.3; + hrIncreaseLow[] = {0, 0}; + hrIncreaseNormal[] = {0, 0}; + hrIncreaseHigh[] = {0, 0}; timeInSystem = 120; timeTillMaxEffect = 30; maxDose = 2; - maxDoseDeviation = 4; + maxDoseDeviation = 3; incompatibleMedication[]= {}; onOverDose = ""; maxRelief = 0.6; }; class syringe_kat_etomidate_5ml_2 { painReduce = 0.4; - hrIncreaseLow[] = {-5, -10}; + hrIncreaseLow[] = {-10, -5}; hrIncreaseNormal[] = {-15, -20}; hrIncreaseHigh[] = {-20, -30}; timeInSystem = 45; @@ -744,38 +744,38 @@ class ACE_ADDON(Medical_Treatment) { onOverDose = ""; }; class syringe_kat_fentanyl_10ml_1 { - painReduce = 1; + painReduce = 0.8; hrIncreaseLow[] = {-10, -5}; hrIncreaseNormal[] = {-15, -10}; hrIncreaseHigh[] = {-20, -10}; - timeInSystem = 900; - timeTillMaxEffect = 20; + timeInSystem = 300; + timeTillMaxEffect = 60; maxDose = 1; maxDoseDeviation = 1; incompatibleMedication[] = {}; viscosityChange = -10; onOverDose = ""; - opioidRelief = 1.5; + opioidRelief = 1.3; }; class syringe_kat_ketamine_10ml_1 { - painReduce = 0.8; + painReduce = 0.7; hrIncreaseLow[] = {5, 10}; hrIncreaseNormal[] = {10, 15}; hrIncreaseHigh[] = {10, 15}; - timeInSystem = 900; + timeInSystem = 300; timeTillMaxEffect = 15; maxDose = 2; - maxDoseDeviation = 2; + maxDoseDeviation = 1; incompatibleMedication[] = {}; viscosityChange = 10; onOverDose = ""; }; class syringe_kat_nalbuphine_10ml_1 { - painReduce = 0.6; + painReduce = 0.5; hrIncreaseLow[] = {-5, 0}; hrIncreaseNormal[] = {-10, -5}; hrIncreaseHigh[] = {-15, -5}; - timeInSystem = 900; + timeInSystem = 300; timeTillMaxEffect = 30; maxDose = 2; maxDoseDeviation = 2; @@ -799,13 +799,13 @@ class ACE_ADDON(Medical_Treatment) { }; class syringe_kat_fentanyl_10ml_2 { painReduce = 1; - hrIncreaseLow[] = {-10, -5}; - hrIncreaseNormal[] = {-15, -10}; - hrIncreaseHigh[] = {-20, -10}; - timeInSystem = 900; - timeTillMaxEffect = 20; + hrIncreaseLow[] = {-15, -5}; + hrIncreaseNormal[] = {-20, -10}; + hrIncreaseHigh[] = {-25, -10}; + timeInSystem = 300; + timeTillMaxEffect = 60; maxDose = 1; - maxDoseDeviation = 1; + maxDoseDeviation = 0; incompatibleMedication[] = {}; viscosityChange = -10; onOverDose = ""; @@ -813,13 +813,13 @@ class ACE_ADDON(Medical_Treatment) { }; class syringe_kat_ketamine_10ml_2 { painReduce = 0.8; - hrIncreaseLow[] = {5, 10}; - hrIncreaseNormal[] = {10, 15}; - hrIncreaseHigh[] = {10, 15}; - timeInSystem = 900; + hrIncreaseLow[] = {5, 20}; + hrIncreaseNormal[] = {10, 25}; + hrIncreaseHigh[] = {10, 25}; + timeInSystem = 300; timeTillMaxEffect = 15; - maxDose = 2; - maxDoseDeviation = 2; + maxDose = 1; + maxDoseDeviation = 1; incompatibleMedication[] = {}; viscosityChange = 10; onOverDose = ""; @@ -829,7 +829,7 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseLow[] = {-5, 0}; hrIncreaseNormal[] = {-10, -5}; hrIncreaseHigh[] = {-15, -5}; - timeInSystem = 900; + timeInSystem = 300; timeTillMaxEffect = 30; maxDose = 2; maxDoseDeviation = 2; diff --git a/addons/pharma/config.cpp b/addons/pharma/config.cpp index 7c56ddc65..328a94c17 100644 --- a/addons/pharma/config.cpp +++ b/addons/pharma/config.cpp @@ -37,12 +37,12 @@ class CfgPatches { "kat_lorazepam", "kat_etomidate", "kat_epinephrineIV", - "kat_10ml_syringe_txa_1", - "kat_5ml_syringe_txa_1", - "kat_10ml_syringe_txa_2", - "kat_5ml_syringe_txa_2", - "kat_5ml_syringe_eaca_1", - "kat_5ml_syringe_eaca_2", + "kat_syringe_kat_txa_10ml_1", + "kat_syringe_kat_txa_5ml_1", + "kat_syringe_kat_txa_10ml_2", + "kat_syringe_kat_txa_5ml_2", + "kat_syringe_kat_eaca_5ml_1", + "kat_syringe_kat_eaca_5ml_2", "kat_syringe_kat_lidocaine_10ml_1", "kat_syringe_kat_ketamine_10ml_1", "kat_syringe_kat_ketamine_10ml_2", @@ -71,7 +71,7 @@ class CfgPatches { "kat_syringe_kat_lorazepam_5ml_1", "kat_syringe_kat_lorazepam_5ml_2", "kat_syringe_kat_flumazenil_5ml_1", - "kat_syringe_kat_flumazenile_5ml_2", + "kat_syringe_kat_flumazenil_5ml_2", "kat_syringe_kat_etomidate_5ml_1", "kat_syringe_kat_etomidate_5ml_2", "kat_syringe_kat_epinephrineIV_5ml_1", diff --git a/addons/pharma/functions/fnc_clotWound.sqf b/addons/pharma/functions/fnc_clotWound.sqf index ac6ac662b..c1bc6e85e 100644 --- a/addons/pharma/functions/fnc_clotWound.sqf +++ b/addons/pharma/functions/fnc_clotWound.sqf @@ -62,10 +62,10 @@ private _fnc_clotWound = { if (_amountOf * _bleeding > 0) exitWith { - if (_countTXA > 0.3 || _countEACA > 0.3) then { + if ((_countTXA > 0.3 || _countTXAiV51 > 0.3 || _countTXAiV52 > 0.3 || _countTXAiM101 > 0.3 || _countTXAiM102 > 0.3) || (_countEACA > 0.3 || _countEACAIV51 > 0.3 || _countEACAIV52 > 0.3)) then { _logString = LSTRING(coagulation_Bandaged_TXA); - if (_countEACA > 0.3 && _countTXA > 0.3) exitWith { // If TXA & EACA are in system at same time use EACA bandage + if ((_countTXA > 0.3 || _countTXAiV51 > 0.3 || _countTXAiV52 > 0.3 || _countTXAiM101 > 0.3 || _countTXAiM102 > 0.3) && (_countEACA > 0.3 || _countEACAIV51 > 0.3 || _countEACAIV52 > 0.3)) exitWith { // If TXA & EACA are in system at same time use EACA bandage _woundClotTime = round (_woundClotTime / 3 * 2); _bandageToUse = _bandageToUse + "EACA"; }; @@ -114,7 +114,13 @@ private _fnc_clotWound = { private _pulse = _unit getVariable [VAR_HEART_RATE, 80]; private _coagulationFactor = _unit getVariable [QGVAR(coagulationFactor), 30]; private _countTXA = [_unit, "TXA", false] call ACEFUNC(medical_status,getMedicationCount); + private _countTXAiV51= [_patient, "syringe_kat_txa_5ml_1", false] call ACEFUNC(medical_status,getMedicationCount); + private _countTXAiV51 = [_patient, "syringe_kat_txa_5ml_2", false] call ACEFUNC(medical_status,getMedicationCount); + private _countTXAiM101 = [_patient, "syringe_kat_txa_10ml_1", false] call ACEFUNC(medical_status,getMedicationCount); + private _countTXAiM102 = [_patient, "syringe_kat_txa_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); private _countEACA = [_unit, "EACA", false] call ACEFUNC(medical_status,getMedicationCount); + private _countEACAIV51 = [_patient, "syringe_kat_eaca_5ml_1", false] call ACEFUNC(medical_status,getMedicationCount); + private _countEACAIV52 = [_patient, "syringe_kat_eaca_5ml_2", false] call ACEFUNC(medical_status,getMedicationCount); private _hasWoundToBandageArray = []; if (_openWounds isEqualTo createHashMap) exitWith {}; // Exit when hashmap not initialized (Will not work when hashmap is set, cause ace only changes value of "woundCount" to 0) diff --git a/addons/pharma/functions/fnc_coagRegen.sqf b/addons/pharma/functions/fnc_coagRegen.sqf index c6ffeccaf..7e78d2990 100644 --- a/addons/pharma/functions/fnc_coagRegen.sqf +++ b/addons/pharma/functions/fnc_coagRegen.sqf @@ -41,7 +41,13 @@ if !(GVAR(coagulation)) exitWith {}; private _limitRegenCoagFactors = missionNamespace getVariable [QGVAR(coagulation_factor_count), 30]; private _cooldownON = _unit getVariable [QGVAR(coagulationRegenCooldown), false]; private _countTXA = [_unit, "TXA"] call ACEFUNC(medical_status,getMedicationCount); + private _countTXAiV51= [_patient, "syringe_kat_txa_5ml_1"] call ACEFUNC(medical_status,getMedicationCount); + private _countTXAiV51 = [_patient, "syringe_kat_txa_5ml_2"] call ACEFUNC(medical_status,getMedicationCount); + private _countTXAiM101 = [_patient, "syringe_kat_txa_10ml_1"] call ACEFUNC(medical_status,getMedicationCount); + private _countTXAiM102 = [_patient, "syringe_kat_txa_10ml_2"] call ACEFUNC(medical_status,getMedicationCount); private _countEACA = [_unit, "EACA"] call ACEFUNC(medical_status,getMedicationCount); + private _countEACAIV51 = [_patient, "syringe_kat_eaca_5ml_1"] call ACEFUNC(medical_status,getMedicationCount); + private _countEACAIV52 = [_patient, "syringe_kat_eaca_5ml_2"] call ACEFUNC(medical_status,getMedicationCount); private _ammountToAdd = 1; if (_currentCoagFactors < _savedCoagFactors) exitWith { @@ -54,8 +60,8 @@ if !(GVAR(coagulation)) exitWith {}; if (_currentCoagFactors == _savedCoagFactors && _currentCoagFactors < _limitRegenCoagFactors) exitWith { - if (_countTXA > 0 || _countEACA > 0) then { // If TXA or EACA are in system add more factors - if (_countTXA > 0 && _countEACA > 0) exitWith { + if ((_countTXA > 0 || _countTXAiV51 > 0 || _countTXAiV52 > 0 || _countTXAiM101 > 0 || _countTXAiM102 > 0) || (_countEACA > 0 || _countEACAIV51 > 0 || _countEACAIV52 > 0)) then { // If TXA or EACA are in system add more factors + if ((_countTXA > 0 || _countTXAiV51 > 0 || _countTXAiV52 > 0 || _countTXAiM101 > 0 || _countTXAiM102 > 0) && (_countEACA > 0 || _countEACAIV51 > 0 || _countEACAIV52 > 0) > 0) exitWith { _ammountToAdd = 4; }; _ammountToAdd = 2; @@ -67,7 +73,7 @@ if !(GVAR(coagulation)) exitWith {}; if (_currentCoagFactors > _limitRegenCoagFactors && !(_cooldownON)) exitWith { - if (_countTXA > 0 || _countEACA > 0) exitWith {}; // If TXA or EACA is in system don't remove factor + if ((_countTXA > 0 || _countTXAiV51 > 0 || _countTXAiV52 > 0 || _countTXAiM101 > 0 || _countTXAiM102 > 0) || (_countEACA > 0 || _countEACAIV51 > 0 || _countEACAIV52 > 0)) exitWith {}; // If TXA or EACA is in system don't remove factor _unit setVariable [QGVAR(coagulationFactor), (_currentCoagFactors - 1), true]; _unit setVariable [QGVAR(coagulationSavedFactors), (_currentCoagFactors - 1), true]; diff --git a/addons/pharma/functions/fnc_handleRespawn.sqf b/addons/pharma/functions/fnc_handleRespawn.sqf index 6c5f1e970..81b972163 100644 --- a/addons/pharma/functions/fnc_handleRespawn.sqf +++ b/addons/pharma/functions/fnc_handleRespawn.sqf @@ -36,7 +36,7 @@ params ["_unit","_dead"]; { _x params ["_medication"]; - if (_medication in ["Epinephrine", "EpinephrineIV", "Phenylephrine", "Nitroglycerin", "Lidocaine", "Norepinephrine"]) exitWith { + if (_medication in ["Epinephrine", "EpinephrineIV", "Phenylephrine", "Nitroglycerin", "Lidocaine", "Norepinephrine", "syringe_kat_norepinephrine_5ml_1", "syringe_kat_norepinephrine_5ml_2", "syringe_kat_phenylephrine_5ml_1", "syringe_kat_phenylephrine_5ml_2", "syringe_kat_nitroglycerin_5ml_1", "syringe_kat_nitroglycerin_5ml_2", "syringe_kat_epinephrineIV_5ml_1", "syringe_kat_epinephrineIV_5ml_2", "syringe_kat_lidocaine_5ml_1", "syringe_kat_lidocaine_5ml_2","syringe_kat_lidocaine_10ml_1"]) exitWith { _action = true; }; } forEach (_medicationArray); diff --git a/addons/pharma/functions/fnc_init.sqf b/addons/pharma/functions/fnc_init.sqf index c4194367b..66d958296 100644 --- a/addons/pharma/functions/fnc_init.sqf +++ b/addons/pharma/functions/fnc_init.sqf @@ -38,7 +38,7 @@ if (!local _unit) exitWith {}; { _x params ["_medication"]; - if (_medication in ["Epinephrine", "EpinephrineIV", "Phenylephrine", "Nitroglycerin", "Lidocaine", "Norepinephrine"]) exitWith { + if (_medication in ["Epinephrine", "EpinephrineIV", "Phenylephrine", "Nitroglycerin", "Lidocaine", "Norepinephrine", "syringe_kat_norepinephrine_5ml_1", "syringe_kat_norepinephrine_5ml_2", "syringe_kat_phenylephrine_5ml_1", "syringe_kat_phenylephrine_5ml_2", "syringe_kat_nitroglycerin_5ml_1", "syringe_kat_nitroglycerin_5ml_2", "syringe_kat_epinephrineIV_5ml_1", "syringe_kat_epinephrineIV_5ml_2", "syringe_kat_lidocaine_5ml_1", "syringe_kat_lidocaine_5ml_2","syringe_kat_lidocaine_10ml_1"]) exitWith { _alpha = true; }; } forEach (_medicationArray); @@ -46,7 +46,7 @@ if (!local _unit) exitWith {}; { _x params ["_medication"]; - if (_medication in ["Fentanyl", "Morphine", "Nalbuphine"]) exitWith { + if (_medication in ["Fentanyl", "Morphine", "Nalbuphine", "syringe_kat_fentanyl_5ml_1", "syringe_kat_fentanyl_5ml_2", "syringe_kat_nalbuphine_5ml_1", "syringe_kat_nalbuphine_5ml_2","syringe_kat_fentanyl_10ml_1", "syringe_kat_fentanyl_10ml_2", "syringe_kat_nalbuphine_10ml_1", "syringe_kat_nalbuphine_10ml_2"]) exitWith { _opioid = true; }; } forEach (_medicationArray); diff --git a/addons/pharma/functions/fnc_medicationLocal.sqf b/addons/pharma/functions/fnc_medicationLocal.sqf index 3b52239cf..5499422e7 100644 --- a/addons/pharma/functions/fnc_medicationLocal.sqf +++ b/addons/pharma/functions/fnc_medicationLocal.sqf @@ -112,22 +112,22 @@ TRACE_3("adjustments",_heartRateChange,_painReduce,_viscosityChange); //Change Alpha Factor [_patient, _alphaFactor] call FUNC(alphaAction); -// Extract the medication name from the full class name safely. _medicationParts = (_className select [13, count _className - 13]) splitString "_"; if (count _medicationParts > 4) then { _medicationName = _medicationParts select 4; - // Check if the extracted medication name is in the list. - if (_medicationName in ["lorazepam","ketamine","EACA","TXA","atropine","amiodarone","flumazenil"]) then { + if (_medicationName in ["lorazepam","EACA","TXA","amiodarone","flumazenil"]) then { [format ["kat_pharma_%1Local", toLower _medicationName], [_patient, _bodyPart], _patient] call CBA_fnc_targetEvent; }; + if (_medicationName in ["ketamine","atropine",]) then { + [format ["kat_pharma_%1Local", toLower _medicationName], [_patient, _bodyPart, _classname], _patient] call CBA_fnc_targetEvent; + }; + if (_medicationName in ["fentanyl","morphine","nalbuphine"]) then { [format ["kat_pharma_%1Local", toLower _medicationName], [_patient, _bodyPart, _opioidRelief], _patient] call CBA_fnc_targetEvent; }; } else { - // Handle the case where the medication name couldn't be extracted properly. - // This could be logging an error, or taking some other action. diag_log format ["Unexpected _className format: %1", _className]; -}; \ No newline at end of file +}; diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_AtropineLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_AtropineLocal.sqf index 478cd95ff..6ebe6cdf6 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_AtropineLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_AtropineLocal.sqf @@ -10,12 +10,14 @@ * None * * Example: - * [player] call kat_pharma_fnc_treatmentAdvanced_AtropineLocal; + * [player, syringe_kat_atropine_5ml_2] call kat_pharma_fnc_treatmentAdvanced_AtropineLocal; * * Public: No */ -params ["_patient"]; +params ["_patient", "_classname"]; + +if (_classname isEqualTo syringe_kat_atropine_5ml_2) exitwith {}; private _medicationArray = _patient getVariable [QACEGVAR(medical,medications), []]; diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_EACALocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_EACALocal.sqf index 1d08d1597..cb1160eb3 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_EACALocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_EACALocal.sqf @@ -22,6 +22,8 @@ private _partIndex = ALL_BODY_PARTS find toLower _bodyPart; private _IVarray = _patient getVariable [QGVAR(IV), [0,0,0,0,0,0]]; private _IVactual = _IVarray select _partIndex; private _countEACA = [_patient, "EACA"] call ACEFUNC(medical_status,getMedicationCount); +private _countEACAIV51 = [_patient, "syringe_kat_eaca_5ml_1"] call ACEFUNC(medical_status,getMedicationCount); +private _countEACAIV52 = [_patient, "syringe_kat_eaca_5ml_2"] call ACEFUNC(medical_status,getMedicationCount); private _allowStack = missionNamespace getVariable [QGVAR(allowStackScript_EACA), true]; private _keepRunning = missionNamespace getVariable [QGVAR(keepScriptRunning_EACA), false]; private _cycleTime = missionNamespace getVariable [QGVAR(bandageCycleTime_EACA), 5]; @@ -49,7 +51,7 @@ if (_IVactual > 1) then { if (!(GVAR(coagulation)) || GVAR(coagulation_allow_EACA_script)) then { if (_IVactual != 5) then { - if (_countEACA > 1 && !(_allowStack)) exitWith {}; + if ((_countEACA > 1 || _countEACAIV51 > 1 || _countEACAIV52 > 1)&& !(_allowStack)) exitWith {}; [{ params ["_args", "_idPFH"]; diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_KetamineLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_KetamineLocal.sqf index f9686086b..04432e938 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_KetamineLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_KetamineLocal.sqf @@ -64,3 +64,11 @@ if (GVAR(chromatic_aberration_checkbox_ketamine)) then { }, [_target], 60] call CBA_fnc_waitAndExecute; // chroma start after 60s }; + +if ((_classname isEqualTo syringe_kat_ketamine_5ml_2) || (_classname isEqualTo syringe_kat_ketamine_10ml_2)) then { + _patient setVariable [QEGVAR(surgery,sedated), true, true]; + [_patient, true] call ACEFUNC(medical,setUnconscious); + + [[_patient setVariable [QEGVAR(surgery,sedated), false, true]; + [_patient, false] call ACEFUNC(medical,setUnconscious)], 90] call CBA_fnc_waitAndExecute; +}; diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_NorepinephrineLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_NorepinephrineLocal.sqf index 3b5c1c1f4..5c3befdb3 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_NorepinephrineLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_NorepinephrineLocal.sqf @@ -14,7 +14,7 @@ * * Public: No */ -params ["_patient"]; +params ["_patient", "_classname"]; private _medicationArray = _patient getVariable [QACEGVAR(medical,medications), []]; diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_TXALocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_TXALocal.sqf index 6aea3c45b..554d42bba 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_TXALocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_TXALocal.sqf @@ -22,6 +22,10 @@ private _partIndex = ALL_BODY_PARTS find toLower _bodyPart; private _IVarray = _patient getVariable [QGVAR(IV), [0,0,0,0,0,0]]; private _IVactual = _IVarray select _partIndex; private _countTXA = [_patient, "TXA"] call ACEFUNC(medical_status,getMedicationCount); +private _countTXAiV51= [_patient, "syringe_kat_txa_5ml_1"] call ACEFUNC(medical_status,getMedicationCount); +private _countTXAiV51 = [_patient, "syringe_kat_txa_5ml_2"] call ACEFUNC(medical_status,getMedicationCount); +private _countTXAiM101 = [_patient, "syringe_kat_txa_10ml_1"] call ACEFUNC(medical_status,getMedicationCount); +private _countTXAiM102 = [_patient, "syringe_kat_txa_10ml_2"] call ACEFUNC(medical_status,getMedicationCount); private _allowStack = missionNamespace getVariable [QGVAR(allowStackScript_TXA), true]; private _keepRunning = missionNamespace getVariable [QGVAR(keepScriptRunning_TXA), false]; private _cycleTime = missionNamespace getVariable [QGVAR(bandageCycleTime_TXA), 5]; @@ -50,7 +54,7 @@ if (!(GVAR(coagulation)) || GVAR(coagulation_allow_TXA_script)) then { if (_IVactual != 5) then { - if (_countTXA > 1 && !(_allowStack)) exitWith {}; + if ((_countTXA > 1 || _countTXAiV51 > 1 || _countTXAiV52 > 1 || _countTXAiM101 > 1 || _countTXAiM102 > 1) && !(_allowStack)) exitWith {}; [{ params ["_args", "_idPFH"]; diff --git a/addons/pharma/stringtable.xml b/addons/pharma/stringtable.xml index c8118cffa..0bd09210b 100644 --- a/addons/pharma/stringtable.xml +++ b/addons/pharma/stringtable.xml @@ -1,4 +1,4 @@ - +t_syringe_kat_epi @@ -3969,9 +3969,15 @@ 5ml Syringe loaded with 0.3mg of Etomidate - 5ml Syringe/1mg Epinephrine + 5ml Syringe/10mcg Epinephrine + 5ml Syringe loaded with 10mcg of Epinephrine + + + 5ml Syringe/1mg Epinephrine + + 5ml Syringe loaded with 1mg of Epinephrine @@ -4095,6 +4101,9 @@ Push 0.3mg Etomidate IV + Push 10mcg Epinephrine IV + + Push 1mg Epinephrine IV @@ -4170,6 +4179,9 @@ Pushing 0.3mg Etomidate IV + Pushing 10mcg Epinephrine IV + + Pushing 1mg Epinephrine IV From 3ac86894b5ba293ee0bf0b55beda245b2847ed30 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Thu, 12 Sep 2024 23:50:13 -0700 Subject: [PATCH 051/149] Update fnc_treatmentAdvanced_KetamineLocal.sqf --- addons/pharma/functions/fnc_treatmentAdvanced_KetamineLocal.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_KetamineLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_KetamineLocal.sqf index 04432e938..13dadc2da 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_KetamineLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_KetamineLocal.sqf @@ -69,6 +69,6 @@ if ((_classname isEqualTo syringe_kat_ketamine_5ml_2) || (_classname isEqualTo s _patient setVariable [QEGVAR(surgery,sedated), true, true]; [_patient, true] call ACEFUNC(medical,setUnconscious); - [[_patient setVariable [QEGVAR(surgery,sedated), false, true]; + [[_patient setVariable [QEGVAR(surgery,sedated), false, true] [_patient, false] call ACEFUNC(medical,setUnconscious)], 90] call CBA_fnc_waitAndExecute; }; From 8917c169e56c293c08e7bf06d34c7d842089dd5a Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Thu, 12 Sep 2024 23:52:39 -0700 Subject: [PATCH 052/149] fixes --- .../chemical/functions/fnc_treatmentAdvanced_AtropineLocal.sqf | 2 +- .../pharma/functions/fnc_treatmentAdvanced_AtropineLocal.sqf | 2 +- .../pharma/functions/fnc_treatmentAdvanced_KetamineLocal.sqf | 3 +-- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/addons/chemical/functions/fnc_treatmentAdvanced_AtropineLocal.sqf b/addons/chemical/functions/fnc_treatmentAdvanced_AtropineLocal.sqf index 8989f5414..00dba28d4 100644 --- a/addons/chemical/functions/fnc_treatmentAdvanced_AtropineLocal.sqf +++ b/addons/chemical/functions/fnc_treatmentAdvanced_AtropineLocal.sqf @@ -16,7 +16,7 @@ */ params ["_patient", "_classname"]; -if (_classname isEqualTo syringe_kat_atropine_5ml_1) exitwith {}; +if (_classname isEqualTo syringe_kat_atropine_5ml_1) exitWith {}; _patient setVariable [QGVAR(airPoisoning), false, true]; _patient setVariable [QGVAR(isTreated), true, true]; diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_AtropineLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_AtropineLocal.sqf index 6ebe6cdf6..bba958f6d 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_AtropineLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_AtropineLocal.sqf @@ -17,7 +17,7 @@ params ["_patient", "_classname"]; -if (_classname isEqualTo syringe_kat_atropine_5ml_2) exitwith {}; +if (_classname isEqualTo syringe_kat_atropine_5ml_2) exitWith {}; private _medicationArray = _patient getVariable [QACEGVAR(medical,medications), []]; diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_KetamineLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_KetamineLocal.sqf index 13dadc2da..2c16ac00d 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_KetamineLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_KetamineLocal.sqf @@ -69,6 +69,5 @@ if ((_classname isEqualTo syringe_kat_ketamine_5ml_2) || (_classname isEqualTo s _patient setVariable [QEGVAR(surgery,sedated), true, true]; [_patient, true] call ACEFUNC(medical,setUnconscious); - [[_patient setVariable [QEGVAR(surgery,sedated), false, true] - [_patient, false] call ACEFUNC(medical,setUnconscious)], 90] call CBA_fnc_waitAndExecute; + [[_patient setVariable [QEGVAR(surgery,sedated), false, true]], 90] call CBA_fnc_waitAndExecute; }; From 15626b9e5e7513e645dffebe992b8249ef580ca1 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Thu, 12 Sep 2024 23:58:18 -0700 Subject: [PATCH 053/149] Update stringtable.xml --- addons/pharma/stringtable.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/pharma/stringtable.xml b/addons/pharma/stringtable.xml index 0bd09210b..9a9bcc47b 100644 --- a/addons/pharma/stringtable.xml +++ b/addons/pharma/stringtable.xml @@ -1,4 +1,4 @@ -t_syringe_kat_epi + From c0a829811b9367100025ade20cf850bff658fa68 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Thu, 12 Sep 2024 23:59:26 -0700 Subject: [PATCH 054/149] Update stringtable.xml --- addons/pharma/stringtable.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/pharma/stringtable.xml b/addons/pharma/stringtable.xml index 9a9bcc47b..979eed781 100644 --- a/addons/pharma/stringtable.xml +++ b/addons/pharma/stringtable.xml @@ -4181,7 +4181,7 @@ Pushing 10mcg Epinephrine IV - + Pushing 1mg Epinephrine IV From 11cdc8f7499b29a1d11114cd0bc1f8f0a76d6506 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Fri, 13 Sep 2024 00:20:50 -0700 Subject: [PATCH 055/149] weeee --- addons/pharma/CfgVehicles.hpp | 5 +- addons/pharma/CfgWeapons.hpp | 78 +++++++++++++++--------------- addons/pharma/ui/syringe.paa | Bin 0 -> 11621 bytes addons/pharma/ui/syringe_item.paa | Bin 0 -> 42620 bytes 4 files changed, 42 insertions(+), 41 deletions(-) create mode 100644 addons/pharma/ui/syringe.paa create mode 100644 addons/pharma/ui/syringe_item.paa diff --git a/addons/pharma/CfgVehicles.hpp b/addons/pharma/CfgVehicles.hpp index 9f2dd662c..a32c8bb60 100644 --- a/addons/pharma/CfgVehicles.hpp +++ b/addons/pharma/CfgVehicles.hpp @@ -78,13 +78,14 @@ class CfgVehicles { class CAManBase: Man { class ACE_SelfActions { class KAT_Equipment { - class KAT_Medication { + class KAT_PrepSyringe { displayName = CSTRING(Medication_Action); statement = "true"; + medicRequired = QGVAR(medLvl_prepIV); showDisabled = 0; exceptions[] = {"isNotInside", "isNotSitting"}; + icon = QPATHTOF(ui\syringe.paa); insertChildren = QUOTE(_this call FUNC(insertChildrenSyringe)); - items = "kat_5ml_syringe"; }; }; }; diff --git a/addons/pharma/CfgWeapons.hpp b/addons/pharma/CfgWeapons.hpp index 2a5d0c6e8..2f2215b91 100644 --- a/addons/pharma/CfgWeapons.hpp +++ b/addons/pharma/CfgWeapons.hpp @@ -49,7 +49,7 @@ class CfgWeapons { class kat_10ml_syringe: ACE_ItemCore { scope = 2; displayName = CSTRING(Syringe_10_Display); - picture = QPATHTOF(ui\icon_fast_io.paa); + picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; descriptionShort = CSTRING(Syringe_10_DescShort); ACE_isMedicalItem = 1; @@ -60,7 +60,7 @@ class CfgWeapons { class kat_5ml_syringe: ACE_ItemCore { scope = 2; displayName = CSTRING(Syringe_5_Display); - picture = QPATHTOF(ui\icon_fast_io.paa); + picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; descriptionShort = CSTRING(Syringe_5_DescShort); ACE_isMedicalItem = 1; @@ -270,7 +270,7 @@ class CfgWeapons { class kat_syringe_kat_txa_10ml_1: ACE_ItemCore { scope = 2; displayName = CSTRING(Syringe_txa_10_1_Display); - picture = QPATHTOF(ui\icon_fast_io.paa); + picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; descriptionShort = CSTRING(Syringe_txa_10_1_DescShort); ACE_isMedicalItem = 1; @@ -281,7 +281,7 @@ class CfgWeapons { class kat_syringe_kat_txa_10ml_2: ACE_ItemCore { scope = 2; displayName = CSTRING(Syringe_txa_10_2_Display); - picture = QPATHTOF(ui\icon_fast_io.paa); + picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; descriptionShort = CSTRING(Syringe_txa_10_2_DescShort); ACE_isMedicalItem = 1; @@ -292,7 +292,7 @@ class CfgWeapons { class kat_syringe_kat_lidocaine_10ml_1: ACE_ItemCore { scope = 2; displayName = CSTRING(Syringe_lidocaine_10_1_Display); - picture = QPATHTOF(ui\icon_fast_io.paa); + picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; descriptionShort = CSTRING(Syringe_lidocaine_10_1_DescShort); ACE_isMedicalItem = 1; @@ -303,7 +303,7 @@ class CfgWeapons { class kat_syringe_kat_ketamine_10ml_1: ACE_ItemCore { scope = 2; displayName = CSTRING(Syringe_ketamine_10_1_Display); - picture = QPATHTOF(ui\icon_fast_io.paa); + picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; descriptionShort = CSTRING(Syringe_ketamine_10_1_DescShort); ACE_isMedicalItem = 1; @@ -314,7 +314,7 @@ class CfgWeapons { class kat_syringe_kat_ketamine_10ml_2: ACE_ItemCore { scope = 2; displayName = CSTRING(Syringe_ketamine_10_2_Display); - picture = QPATHTOF(ui\icon_fast_io.paa); + picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; descriptionShort = CSTRING(Syringe_ketamine_10_2_DescShort); ACE_isMedicalItem = 1; @@ -325,7 +325,7 @@ class CfgWeapons { class kat_syringe_kat_fentanyl_10ml_1: ACE_ItemCore { scope = 2; displayName = CSTRING(Syringe_fentanyl_10_1_Display); - picture = QPATHTOF(ui\icon_fast_io.paa); + picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; descriptionShort = CSTRING(Syringe_fentanyl_10_1_DescShort); ACE_isMedicalItem = 1; @@ -336,7 +336,7 @@ class CfgWeapons { class kat_syringe_kat_fentanyl_10ml_2: ACE_ItemCore { scope = 2; displayName = CSTRING(Syringe_fentanyl_10_2_Display); - picture = QPATHTOF(ui\icon_fast_io.paa); + picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; descriptionShort = CSTRING(Syringe_fentanyl_10_2_DescShort); ACE_isMedicalItem = 1; @@ -347,7 +347,7 @@ class CfgWeapons { class kat_syringe_kat_nalbuphine_10ml_1: ACE_ItemCore { scope = 2; displayName = CSTRING(Syringe_nalbuphine_10_1_Display); - picture = QPATHTOF(ui\icon_fast_io.paa); + picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; descriptionShort = CSTRING(Syringe_nalbuphine_10_1_DescShort); ACE_isMedicalItem = 1; @@ -358,7 +358,7 @@ class CfgWeapons { class kat_syringe_kat_nalbuphine_10ml_2: ACE_ItemCore { scope = 2; displayName = CSTRING(Syringe_nalbuphine_10_2_Display); - picture = QPATHTOF(ui\icon_fast_io.paa); + picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; descriptionShort = CSTRING(Syringe_nalbuphine_10_2_DescShort); ACE_isMedicalItem = 1; @@ -369,7 +369,7 @@ class CfgWeapons { class kat_syringe_kat_txa_5ml_1: ACE_ItemCore { scope = 2; displayName = CSTRING(Syringe_txa_5_1_Display); - picture = QPATHTOF(ui\icon_fast_io.paa); + picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; descriptionShort = CSTRING(Syringe_txa_5_1_DescShort); ACE_isMedicalItem = 1; @@ -380,7 +380,7 @@ class CfgWeapons { class kat_syringe_kat_txa_5ml_2: ACE_ItemCore { scope = 2; displayName = CSTRING(Syringe_txa_5_2_Display); - picture = QPATHTOF(ui\icon_fast_io.paa); + picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; descriptionShort = CSTRING(Syringe_txa_5_2_DescShort); ACE_isMedicalItem = 1; @@ -391,7 +391,7 @@ class CfgWeapons { class kat_syringe_kat_eaca_5ml_1: ACE_ItemCore { scope = 2; displayName = CSTRING(Syringe_eaca_5_1_Display); - picture = QPATHTOF(ui\icon_fast_io.paa); + picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; descriptionShort = CSTRING(Syringe_eaca_5_1_DescShort); ACE_isMedicalItem = 1; @@ -402,7 +402,7 @@ class CfgWeapons { class kat_syringe_kat_eaca_5ml_2: ACE_ItemCore { scope = 2; displayName = CSTRING(Syringe_eaca_5_2_Display); - picture = QPATHTOF(ui\icon_fast_io.paa); + picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; descriptionShort = CSTRING(Syringe_eaca_5_2_DescShort); ACE_isMedicalItem = 1; @@ -413,7 +413,7 @@ class CfgWeapons { class kat_syringe_kat_norepinephrine_5ml_1: ACE_ItemCore { scope = 2; displayName = CSTRING(Syringe_norepinephrine_5_1_Display); - picture = QPATHTOF(ui\icon_fast_io.paa); + picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; descriptionShort = CSTRING(Syringe_norepinephrine_5_1_DescShort); ACE_isMedicalItem = 1; @@ -424,7 +424,7 @@ class CfgWeapons { class kat_syringe_kat_norepinephrine_5ml_2: ACE_ItemCore { scope = 2; displayName = CSTRING(Syringe_norepinephrine_5_2_Display); - picture = QPATHTOF(ui\icon_fast_io.paa); + picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; descriptionShort = CSTRING(Syringe_norepinephrine_5_2_DescShort); ACE_isMedicalItem = 1; @@ -435,7 +435,7 @@ class CfgWeapons { class kat_syringe_kat_phenylephrine_5ml_1: ACE_ItemCore { scope = 2; displayName = CSTRING(Syringe_phenylephrine_5_1_Display); - picture = QPATHTOF(ui\icon_fast_io.paa); + picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; descriptionShort = CSTRING(Syringe_phenylephrine_5_1_DescShort); ACE_isMedicalItem = 1; @@ -446,7 +446,7 @@ class CfgWeapons { class kat_syringe_kat_phenylephrine_5ml_2: ACE_ItemCore { scope = 2; displayName = CSTRING(Syringe_phenylephrine_5_2_Display); - picture = QPATHTOF(ui\icon_fast_io.paa); + picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; descriptionShort = CSTRING(Syringe_phenylephrine_5_2_DescShort); ACE_isMedicalItem = 1; @@ -457,7 +457,7 @@ class CfgWeapons { class kat_syringe_kat_nitroglycerin_5ml_1: ACE_ItemCore { scope = 2; displayName = CSTRING(Syringe_nitroglycerin_5_1_Display); - picture = QPATHTOF(ui\icon_fast_io.paa); + picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; descriptionShort = CSTRING(Syringe_phenylephrine_5_1_DescShort); ACE_isMedicalItem = 1; @@ -468,7 +468,7 @@ class CfgWeapons { class kat_syringe_kat_nitroglycerin_5ml_2: ACE_ItemCore { scope = 2; displayName = CSTRING(Syringe_nitroglycerin_5_2_Display); - picture = QPATHTOF(ui\icon_fast_io.paa); + picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; descriptionShort = CSTRING(Syringe_nitroglycerin_5_2_DescShort); ACE_isMedicalItem = 1; @@ -479,7 +479,7 @@ class CfgWeapons { class kat_syringe_kat_amiodarone_5ml_1: ACE_ItemCore { scope = 2; displayName = CSTRING(Syringe_amiodarone_5_1_Display); - picture = QPATHTOF(ui\icon_fast_io.paa); + picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; descriptionShort = CSTRING(Syringe_amiodarone_5_1_DescShort); ACE_isMedicalItem = 1; @@ -490,7 +490,7 @@ class CfgWeapons { class kat_syringe_kat_amiodarone_5ml_2: ACE_ItemCore { scope = 2; displayName = CSTRING(Syringe_amiodarone_5_2_Display); - picture = QPATHTOF(ui\icon_fast_io.paa); + picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; descriptionShort = CSTRING(Syringe_amiodarone_5_2_DescShort); ACE_isMedicalItem = 1; @@ -501,7 +501,7 @@ class CfgWeapons { class kat_syringe_kat_epinephrineIV_5ml_1: ACE_ItemCore { scope = 2; displayName = CSTRING(Syringe_epinephrineIV_5_1_Display); - picture = QPATHTOF(ui\icon_fast_io.paa); + picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; descriptionShort = CSTRING(Syringe_epinephrineIV_5_1_DescShort); ACE_isMedicalItem = 1; @@ -512,7 +512,7 @@ class CfgWeapons { class kat_syringe_kat_epinephrineIV_5ml_2: ACE_ItemCore { scope = 2; displayName = CSTRING(Syringe_epinephrineIV_5_2_Display); - picture = QPATHTOF(ui\icon_fast_io.paa); + picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; descriptionShort = CSTRING(Syringe_epinephrineIV_5_2_DescShort); ACE_isMedicalItem = 1; @@ -523,7 +523,7 @@ class CfgWeapons { class kat_syringe_kat_lidocaine_5ml_1: ACE_ItemCore { scope = 2; displayName = CSTRING(Syringe_lidocaine_5_1_Display); - picture = QPATHTOF(ui\icon_fast_io.paa); + picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; descriptionShort = CSTRING(Syringe_lidocaine_5_1_DescShort); ACE_isMedicalItem = 1; @@ -534,7 +534,7 @@ class CfgWeapons { class kat_syringe_kat_lidocaine_5ml_2: ACE_ItemCore { scope = 2; displayName = CSTRING(Syringe_lidocaine_5_2_Display); - picture = QPATHTOF(ui\icon_fast_io.paa); + picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; descriptionShort = CSTRING(Syringe_lidocaine_5_2_DescShort); ACE_isMedicalItem = 1; @@ -545,7 +545,7 @@ class CfgWeapons { class kat_syringe_kat_ketamine_5ml_1: ACE_ItemCore { scope = 2; displayName = CSTRING(Syringe_ketamine_5_1_Display); - picture = QPATHTOF(ui\icon_fast_io.paa); + picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; descriptionShort = CSTRING(Syringe_ketamine_5_1_DescShort); ACE_isMedicalItem = 1; @@ -556,7 +556,7 @@ class CfgWeapons { class kat_syringe_kat_ketamine_5ml_2: ACE_ItemCore { scope = 2; displayName = CSTRING(Syringe_ketamine_5_2_Display); - picture = QPATHTOF(ui\icon_fast_io.paa); + picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; descriptionShort = CSTRING(Syringe_ketamine_5_2_DescShort); ACE_isMedicalItem = 1; @@ -567,7 +567,7 @@ class CfgWeapons { class kat_syringe_kat_fentanyl_5ml_1: ACE_ItemCore { scope = 2; displayName = CSTRING(Syringe_fentanyl_5_1_Display); - picture = QPATHTOF(ui\icon_fast_io.paa); + picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; descriptionShort = CSTRING(Syringe_fentanyl_5_1_DescShort); ACE_isMedicalItem = 1; @@ -578,7 +578,7 @@ class CfgWeapons { class kat_syringe_kat_fentanyl_5ml_2: ACE_ItemCore { scope = 2; displayName = CSTRING(Syringe_fentanyl_10_2_Display); - picture = QPATHTOF(ui\icon_fast_io.paa); + picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; descriptionShort = CSTRING(Syringe_fentanyl_10_2_DescShort); ACE_isMedicalItem = 1; @@ -589,7 +589,7 @@ class CfgWeapons { class kat_syringe_kat_nalbuphine_5ml_1: ACE_ItemCore { scope = 2; displayName = CSTRING(Syringe_nalbuphine_5_1_Display); - picture = QPATHTOF(ui\icon_fast_io.paa); + picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; descriptionShort = CSTRING(Syringe_nalbuphine_5_1_DescShort); ACE_isMedicalItem = 1; @@ -600,7 +600,7 @@ class CfgWeapons { class kat_syringe_kat_nalbuphine_5ml_2: ACE_ItemCore { scope = 2; displayName = CSTRING(Syringe_nalbuphine_5_2_Display); - picture = QPATHTOF(ui\icon_fast_io.paa); + picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; descriptionShort = CSTRING(Syringe_nalbuphine_5_2_DescShort); ACE_isMedicalItem = 1; @@ -611,7 +611,7 @@ class CfgWeapons { class kat_syringe_kat_lorazepam_5ml_1: ACE_ItemCore { scope = 2; displayName = CSTRING(Syringe_lorazepam_5_1_Display); - picture = QPATHTOF(ui\icon_fast_io.paa); + picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; descriptionShort = CSTRING(Syringe_lorazepam_5_1_DescShort); ACE_isMedicalItem = 1; @@ -622,7 +622,7 @@ class CfgWeapons { class kat_syringe_kat_lorazepam_5ml_2: ACE_ItemCore { scope = 2; displayName = CSTRING(Syringe_lorazepam_5_2_Display); - picture = QPATHTOF(ui\icon_fast_io.paa); + picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; descriptionShort = CSTRING(Syringe_lorazepam_5_2_DescShort); ACE_isMedicalItem = 1; @@ -633,7 +633,7 @@ class CfgWeapons { class kat_syringe_kat_flumazenil_5ml_1: ACE_ItemCore { scope = 2; displayName = CSTRING(Syringe_flumazenil_5_1_Display); - picture = QPATHTOF(ui\icon_fast_io.paa); + picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; descriptionShort = CSTRING(Syringe_flumazenil_5_1_DescShort); ACE_isMedicalItem = 1; @@ -644,7 +644,7 @@ class CfgWeapons { class kat_syringe_kat_flumazenil_5ml_2: ACE_ItemCore { scope = 2; displayName = CSTRING(Syringe_flumazenil_5_2_Display); - picture = QPATHTOF(ui\icon_fast_io.paa); + picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; descriptionShort = CSTRING(Syringe_flumazenil_5_2_DescShort); ACE_isMedicalItem = 1; @@ -655,7 +655,7 @@ class CfgWeapons { class kat_syringe_kat_etomidate_5ml_1: ACE_ItemCore { scope = 2; displayName = CSTRING(Syringe_etomidate_5_1_Display); - picture = QPATHTOF(ui\icon_fast_io.paa); + picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; descriptionShort = CSTRING(Syringe_etomidate_5_1_DescShort); ACE_isMedicalItem = 1; @@ -666,7 +666,7 @@ class CfgWeapons { class kat_syringe_kat_etomidate_5ml_2: ACE_ItemCore { scope = 2; displayName = CSTRING(Syringe_etomidate_5_2_Display); - picture = QPATHTOF(ui\icon_fast_io.paa); + picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; descriptionShort = CSTRING(Syringe_etomidate_5_2_DescShort); ACE_isMedicalItem = 1; diff --git a/addons/pharma/ui/syringe.paa b/addons/pharma/ui/syringe.paa new file mode 100644 index 0000000000000000000000000000000000000000..6a1ca193c9d1df10fb3f6ffa5cab01fe4f70f546 GIT binary patch literal 11621 zcmeHNO^6gn6n;CsPBmz#RgeYkjYWj)y6);gSTtc{%|zH$G(V6KjEE@SqTt0_L=8FQ zlv{3D2>CgMoC1LmW~E6yc<~1`o3Y28o}GfJSM}=W zz3;tOKixee@#13Tz2l4TS4IIKj^kObpQ*f=)VY1Ja(aR41^iL_y9*0%m$7^cf1e@q z^Opd=mAF23QxS0L|?M4^IvHKBikKMVej zqJrP{xsKG0-tOG_l9o&5*(*4%>bbAg1QtH=+@Fs)FdY>qzbrgZ<|bS;(&L(l zcYin|aS)~3JcC4Izwj6M;S#8E#0i%IaWED-)@plAL~5MCAlRwexTD4b@p^Fd<%yI2 z@-akvu`1NI>b~Xq9pe|yEdz2c1x0n7H2-#~RsFjxOdpQkQt%5(h{OsI*zc;xj5Yx5 z>pwi$N#S%00ili@iSdvQ?SMN{-^T&zh)HuE$I(`cTf!}+fgk#Werv`p*#VCwA~D&4 z3tKcE94Q@Zhe3&l#Glg8r~S)(ZE&YC=Q$n>Ud_0j)Y`7&(vssnjk{5w=V|h^Kdgnj zfotu(&JUyd`9<^PVSmU7cgJ(k*uhANkZjbJz3!IA4;x4<+)oJoXJ{JjGhD_d*XAo4O{XZH~t$ z-wzx1SbgU0bt7`E9-;4}MY4&5|0CDR4DsG%%iYp$$?Y|+_2yUfSHJ@GYB?%8)s1mt-Ko73-;OghDiMuV{Zgm?mft*1;vq_P+ZN%$ zO7(VOLVQe`vh+B7xXFB+)rsWkM6TtnC9lyZIkIWIT;=0(o+iW84qw}G*tgs89fL9c zpE1r$BJK24#>Bf2DpLQ*Y}oaWT|U*#8P6@6@^%lA#McifZx74G8>y;WLUX?dA$v<& RC6GA^qjYsO&E_rv@E`preQW># literal 0 HcmV?d00001 diff --git a/addons/pharma/ui/syringe_item.paa b/addons/pharma/ui/syringe_item.paa new file mode 100644 index 0000000000000000000000000000000000000000..a970fd4d8be737c24b87651e8ff66a93df0f3fbb GIT binary patch literal 42620 zcmd?Rdt6lI7C*e7y=Q>o;tZDw6p)z#oIQKEXh$h)m>IAvOACz=qG5)}b21S%O-0#r z0kn%zra@UDkiij$fKCRQ&IR%4sZJ+5DMF$^rbU=S2?E2uylafk`|taC|NQ;@eAEG* z+0S~`?Yq8fErk3dk7Q&od1Q5l0K>5N-g!6T?$@~)D|}z`@XPo0BN@w=`o2c++xPWT zOP4;Whu3!a{aHGOF2sX5yPVXj$vl_{r}-tIff^vV_}$V=KubL{a^O7 z0mDKb#Fp((Shl}l5!{`@U=aR!869+-P`J6HxUb{c2c6RaQenv1mtSUBo|on$WF!#p zd{00NW~DWbHT=r2xEJ8_ytSNQ3Z z3?ddajyL?w=OPu2Asg@EShUbcWD~^6c|R+e=M!le5#mmLF#4RB*v)=H2O&dtmVV}u zjoLU=8Sl}=zg?5y)}b@}HSjAEiuw<~=Qi&h&E%I6);@WIGqRV}yN@S7C&{=DKjK;e_L-lXH8`KfcR$##{7RvJ9t2@Z|AtHgXp?*6@Z{MDcUo zJO{_e?`c_h(4ogD4S{lc-tF^=F|cvERn223ybdZIOA#y~PBfjhF> LeTk|b?d&u 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 literal 0 HcmV?d00001 From 3ca8fea7ea83faaf126bef8f0fb9cd2e0fd89e2e Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Fri, 13 Sep 2024 01:18:46 -0700 Subject: [PATCH 056/149] weee --- .../pharma/ACE_Medical_Treatment_Actions.hpp | 44 ++++----- addons/pharma/CfgVehicles.hpp | 15 +++- addons/pharma/XEH_preInit.sqf | 89 +++++++++++++++++++ .../pharma/functions/fnc_medicationLocal.sqf | 2 +- addons/pharma/stringtable.xml | 42 +++++++++ 5 files changed, 163 insertions(+), 29 deletions(-) diff --git a/addons/pharma/ACE_Medical_Treatment_Actions.hpp b/addons/pharma/ACE_Medical_Treatment_Actions.hpp index d2a5d87fa..d3012f216 100644 --- a/addons/pharma/ACE_Medical_Treatment_Actions.hpp +++ b/addons/pharma/ACE_Medical_Treatment_Actions.hpp @@ -454,10 +454,6 @@ class ACE_Medical_Treatment_Actions { class syringe_kat_EACA_5ml_2: syringe_kat_EACA_5ml_1 { displayName = CSTRING(push_EACA_IV_2); displayNameProgress = CSTRING(pushing_EACA_IV_2); - allowedSelections[] = {"Body", "LeftArm", "RightArm", "LeftLeg", "RightLeg"}; - allowSelfTreatment = 1; - medicRequired = QGVAR(medLvl_EACA); - treatmentTime = QGVAR(treatmentTime_EACA); items[] = {"kat_syringe_kat_eaca_5ml_2"}; callbackSuccess = QFUNC(medication); sounds[] = {}; @@ -467,8 +463,8 @@ class ACE_Medical_Treatment_Actions { displayNameProgress = CSTRING(injecting_TXA_IM_1); allowedSelections[] = {"LeftArm", "RightArm", "LeftLeg", "RightLeg"}; allowSelfTreatment = 1; - medicRequired = QGVAR(medLvl_TXA); - treatmentTime = QGVAR(treatmentTime_TXA); + medicRequired = QGVAR(medLvl_TXAIM); + treatmentTime = QGVAR(treatmentTime_TXAIM); items[] = {"kat_syringe_kat_txa_10ml_1"}; callbackSuccess = QFUNC(medication); sounds[] = {}; @@ -476,10 +472,6 @@ class ACE_Medical_Treatment_Actions { class syringe_kat_TXA_10ml_2: syringe_kat_TXA_10ml_1 { displayName = CSTRING(inject_TXA_IM_2); displayNameProgress = CSTRING(injecting_TXA_IM_2); - allowedSelections[] = {"LeftArm", "RightArm", "LeftLeg", "RightLeg"}; - allowSelfTreatment = 1; - medicRequired = QGVAR(medLvl_TXA); - treatmentTime = QGVAR(treatmentTime_TXA); items[] = {"kat_syringe_kat_txa_10ml_2"}; callbackSuccess = QFUNC(medication); sounds[] = {}; @@ -755,8 +747,8 @@ class ACE_Medical_Treatment_Actions { displayNameProgress = CSTRING(injecting_lidocaine_IM_1); allowedSelections[] = {"LeftArm", "RightArm", "LeftLeg", "RightLeg"}; allowSelfTreatment = 1; - medicRequired = QGVAR(medLvl_lidocaine); - treatmentTime = QGVAR(treatmentTime_lidocaine); + medicRequired = QGVAR(medLvl_lidocaineIM); + treatmentTime = QGVAR(treatmentTime_lidocaineIM); items[] = {"kat_syringe_kat_lidocaine_10ml_1"}; callbackSuccess = QFUNC(medication); sounds[] = {}; @@ -766,15 +758,15 @@ class ACE_Medical_Treatment_Actions { displayNameProgress = CSTRING(injecting_ketamine_IM_1); allowedSelections[] = {"LeftArm", "RightArm", "LeftLeg", "RightLeg"}; allowSelfTreatment = 1; - medicRequired = QGVAR(medLvl_ketamine); - treatmentTime = QGVAR(treatmentTime_ketamine); + medicRequired = QGVAR(medLvl_ketamineIM); + treatmentTime = QGVAR(treatmentTime_ketamineIM); items[] = {"kat_syringe_kat_ketamine_10ml_1"}; callbackSuccess = QFUNC(medication); sounds[] = {}; }; class syringe_kat_ketamine_10ml_2: syringe_kat_ketamine_10ml_1 { - displayName = CSTRING(push_ketamine_IM_2); - displayNameProgress = CSTRING(pushing_ketamine_IM_2); + displayName = CSTRING(inject_ketamine_IM_2); + displayNameProgress = CSTRING(injecting_ketamine_IM_2); items[] = {"kat_syringe_kat_ketamine_10ml_2"}; callbackSuccess = QFUNC(medication); sounds[] = {}; @@ -784,16 +776,16 @@ class ACE_Medical_Treatment_Actions { displayNameProgress = CSTRING(injecting_fentanyl_IM_1); allowedSelections[] = {"LeftArm", "RightArm", "LeftLeg", "RightLeg"}; allowSelfTreatment = 1; - medicRequired = QGVAR(medLvl_fentanyl); - treatmentTime = QGVAR(treatmentTime_fentanyl); + medicRequired = QGVAR(medLvl_fentanylIM); + treatmentTime = QGVAR(treatmentTime_fentanylIM); items[] = {"kat_syringe_kat_fentanyl_10ml_1"}; callbackSuccess = QFUNC(medication); sounds[] = {}; }; class syringe_kat_fentanyl_10ml_2: syringe_kat_fentanyl_10ml_1 { - displayName = CSTRING(push_fentanyl_IM_2); - displayNameProgress = CSTRING(pushing_fentanyl_IM_2); - items[] = {"kat_syringe_kat_fentanyl_5ml_2"}; + displayName = CSTRING(inject_fentanyl_IM_2); + displayNameProgress = CSTRING(injecting_fentanyl_IM_2); + items[] = {"kat_syringe_kat_fentanyl_10ml_2"}; callbackSuccess = QFUNC(medication); sounds[] = {}; }; @@ -802,16 +794,16 @@ class ACE_Medical_Treatment_Actions { displayNameProgress = CSTRING(injecting_nalbuphine_IM_1); allowedSelections[] = {"LeftArm", "RightArm", "LeftLeg", "RightLeg"}; allowSelfTreatment = 1; - medicRequired = QGVAR(medLvl_nalbuphine); - treatmentTime = QGVAR(treatmentTime_nalbuphine); + medicRequired = QGVAR(medLvl_nalbuphineIM); + treatmentTime = QGVAR(treatmentTime_nalbuphineIM); items[] = {"kat_syringe_kat_nalbuphine_10ml_1"}; callbackSuccess = QFUNC(medication); sounds[] = {}; }; class syringe_kat_nalbuphine_10ml_2: syringe_kat_nalbuphine_10ml_1 { - displayName = CSTRING(push_nalbuphine_IM_2); - displayNameProgress = CSTRING(pushing_nalbuphine_IM_2); - items[] = {"kat_syringe_kat_nalbuphine_5ml_2"}; + displayName = CSTRING(inject_nalbuphine_IM_2); + displayNameProgress = CSTRING(injecting_nalbuphine_IM_2); + items[] = {"kat_syringe_kat_nalbuphine_10ml_2"}; callbackSuccess = QFUNC(medication); sounds[] = {}; }; diff --git a/addons/pharma/CfgVehicles.hpp b/addons/pharma/CfgVehicles.hpp index a32c8bb60..1b473eb97 100644 --- a/addons/pharma/CfgVehicles.hpp +++ b/addons/pharma/CfgVehicles.hpp @@ -78,14 +78,25 @@ class CfgVehicles { class CAManBase: Man { class ACE_SelfActions { class KAT_Equipment { - class KAT_PrepSyringe { + class KAT_PrepIVSyringe { displayName = CSTRING(Medication_Action); statement = "true"; - medicRequired = QGVAR(medLvl_prepIV); + medicRequired = QGVAR(medLvl_PrepIVSyringe); showDisabled = 0; exceptions[] = {"isNotInside", "isNotSitting"}; icon = QPATHTOF(ui\syringe.paa); insertChildren = QUOTE(_this call FUNC(insertChildrenSyringe)); + item = "kat_5ml_syringe"; + }; + class KAT_PrepIMSyringe { + displayName = CSTRING(Medication_Action); + statement = "true"; + medicRequired = QGVAR(medLvl_PrepIMSyringe); + showDisabled = 0; + exceptions[] = {"isNotInside", "isNotSitting"}; + icon = QPATHTOF(ui\syringe.paa); + insertChildren = QUOTE(_this call FUNC(insertChildrenSyringe)); + item = "kat_10ml_syringe"; }; }; }; diff --git a/addons/pharma/XEH_preInit.sqf b/addons/pharma/XEH_preInit.sqf index 220c0adaa..d6a3909b3 100644 --- a/addons/pharma/XEH_preInit.sqf +++ b/addons/pharma/XEH_preInit.sqf @@ -63,6 +63,24 @@ PREP_RECOMPILE_END; true ] call CBA_Settings_fnc_init; +[ + QGVAR(medLvl_PrepIVSyringe), + "LIST", + [LLSTRING(medLvl_PrepIVSyringe), LLSTRING(medLvl_PrepIVSyringe_Desc)], + [CBA_SETTINGS_CAT, ELSTRING(GUI,SubCategory__Basic)], + [[0, 1, 2], [ACELSTRING(medical_treatment,Anyone), ACELSTRING(medical_treatment,Medics), ACELSTRING(medical_treatment,Doctors)], 0], + true +] call CBA_Settings_fnc_init; + +[ + QGVAR(medLvl_PrepIMSyringe), + "LIST", + [LLSTRING(medLvl_PrepIMSyringe), LLSTRING(medLvl_PrepIMSyringe_Desc)], + [CBA_SETTINGS_CAT, ELSTRING(GUI,SubCategory__Basic)], + [[0, 1, 2], [ACELSTRING(medical_treatment,Anyone), ACELSTRING(medical_treatment,Medics), ACELSTRING(medical_treatment,Doctors)], 0], + true +] call CBA_Settings_fnc_init; + //IV Settings Category [ QGVAR(medLvl_ApplyIV), @@ -478,6 +496,24 @@ PREP_RECOMPILE_END; true ] call CBA_Settings_fnc_init; +[ + QGVAR(medLvl_LidocaineIM), + "LIST", + [LLSTRING(medLvl_LidocaineIM)], + [CBA_SETTINGS_CAT, LSTRING(SubCategory_Lidocaine)], + [[0, 1, 2], [ACELSTRING(medical_treatment,Anyone), ACELSTRING(medical_treatment,Medics), ACELSTRING(medical_treatment,Doctors)], 0], + true +] call CBA_Settings_fnc_init; + +[ + QGVAR(treatmentTime_LidocaineIM), + "SLIDER", + [LLSTRING(treatmentTime_LidocaineIM)], + [CBA_SETTINGS_CAT, LSTRING(SubCategory_Lidocaine)], + [0.1, 10, 7, 1], + true +] call CBA_Settings_fnc_init; + // Atropine Settings Category [ QGVAR(medLvl_Atropine), @@ -572,6 +608,24 @@ PREP_RECOMPILE_END; true ] call CBA_Settings_fnc_init; +[ + QGVAR(medLvl_KetamineIM), + "LIST", + [LLSTRING(medLvl_KetamineIM)], + [CBA_SETTINGS_CAT, LSTRING(SubCategory_Ketamine)], + [[0, 1, 2], [ACELSTRING(medical_treatment,Anyone), ACELSTRING(medical_treatment,Medics), ACELSTRING(medical_treatment,Doctors)], 0], + true +] call CBA_Settings_fnc_init; + +[ + QGVAR(treatmentTime_KetamineIM), + "SLIDER", + [LLSTRING(treatmentTime_KetamineIM)], + [CBA_SETTINGS_CAT, LSTRING(SubCategory_Ketamine)], + [0.1, 10, 7, 1], + true +] call CBA_Settings_fnc_init; + [ QGVAR(chromatic_aberration_checkbox_ketamine), "CHECKBOX", @@ -609,6 +663,23 @@ PREP_RECOMPILE_END; true ] call CBA_Settings_fnc_init; +[ + QGVAR(medLvl_FentanylIM), + "LIST", + [LLSTRING(medLvl_FentanylIM)], + [CBA_SETTINGS_CAT, LSTRING(SubCategory_Fentanyl)], + [[0, 1, 2], [ACELSTRING(medical_treatment,Anyone), ACELSTRING(medical_treatment,Medics), ACELSTRING(medical_treatment,Doctors)], 0], + true +] call CBA_Settings_fnc_init; + +[ + QGVAR(treatmentTime_FentanylIM), + "SLIDER", + [LLSTRING(treatmentTime_FentanylIM)], + [CBA_SETTINGS_CAT, LSTRING(SubCategory_Fentanyl)], + [0.1, 10, 7, 1], + true +] call CBA_Settings_fnc_init; [ QGVAR(chromatic_aberration_checkbox_fentanyl), "CHECKBOX", @@ -646,6 +717,24 @@ PREP_RECOMPILE_END; true ] call CBA_Settings_fnc_init; +[ + QGVAR(medLvl_NalbuphineIM), + "LIST", + [LLSTRING(medLvl_Nalbuphine)], + [CBA_SETTINGS_CAT, LSTRING(SubCategory_Nalbuphine)], + [[0, 1, 2], [ACELSTRING(medical_treatment,Anyone), ACELSTRING(medical_treatment,Medics), ACELSTRING(medical_treatment,Doctors)], 0], + true +] call CBA_Settings_fnc_init; + +[ + QGVAR(treatmentTime_NalbuphineIM), + "SLIDER", + [LLSTRING(treatmentTime_NalbuphineIM)], + [CBA_SETTINGS_CAT, LSTRING(SubCategory_Nalbuphine)], + [0.1, 10, 7, 1], + true +] call CBA_Settings_fnc_init; + // Penthrox Settings Category [ QGVAR(medLvl_Penthrox), diff --git a/addons/pharma/functions/fnc_medicationLocal.sqf b/addons/pharma/functions/fnc_medicationLocal.sqf index 5499422e7..1440b1e0f 100644 --- a/addons/pharma/functions/fnc_medicationLocal.sqf +++ b/addons/pharma/functions/fnc_medicationLocal.sqf @@ -121,7 +121,7 @@ if (count _medicationParts > 4) then { [format ["kat_pharma_%1Local", toLower _medicationName], [_patient, _bodyPart], _patient] call CBA_fnc_targetEvent; }; - if (_medicationName in ["ketamine","atropine",]) then { + if (_medicationName in ["ketamine","atropine"]) then { [format ["kat_pharma_%1Local", toLower _medicationName], [_patient, _bodyPart, _classname], _patient] call CBA_fnc_targetEvent; }; diff --git a/addons/pharma/stringtable.xml b/addons/pharma/stringtable.xml index 979eed781..b711f30b2 100644 --- a/addons/pharma/stringtable.xml +++ b/addons/pharma/stringtable.xml @@ -1919,6 +1919,12 @@ TXA:n hoitoaika Время обработки для TXA + + Medical level required for IM TXA + + + Treatment time for IM TXA + Medical level required for Norepinephrine Poziom wyszkolenia medycznego dla Noradrenaliny @@ -2069,6 +2075,12 @@ Lidokaiinin hoitoaika Время обработки Лидокаином + + Medical level required for IM Lidocaine + + + Treatment time for IM Lidocaine + Medical level required for Atropine Poziom wyszkolenia medycznego dla Atropiny @@ -2249,6 +2261,12 @@ Ketamiinin hoitoaika Время обработки Кетамином + + Medical level required for IM Ketamine + + + Treatment time for IM Ketamine + Medical level required for Fentanyl Poziom wyszkolenia medycznego dla Fentanylu @@ -2279,6 +2297,12 @@ Fentanyylin hoitoaika Время обработки Фентанилом + + Medical level required for IM Fentanyl + + + Treatment time for IM Fentanyl + Medical level required for Nalbuphine Poziom wyszkolenia medycznego dla Nalbuphinu @@ -2309,6 +2333,12 @@ Nalbufiinin hoitoaika Время обработки Налбуфином + + Medical level required for IM Nalbuphine + + + Treatment time for IM Nalbuphine + Medical level required for Penthrox Inhaler ペンスロックス吸入器の許可 @@ -4367,5 +4397,17 @@ Prep 10ml Nalbuphine 20mg + + IV Prep level + + + Medical level required to prep IV medications + + + IM Prep level + + + Medical level required to prep IM medications + From ba07a79084b57a5263bb8c0b4bfbeb5d82c5ae05 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Fri, 13 Sep 2024 05:15:12 -0700 Subject: [PATCH 057/149] weee --- addons/pharma/CfgVehicles.hpp | 22 ++++-- addons/pharma/XEH_PREP.hpp | 4 +- addons/pharma/XEH_preInit.sqf | 2 +- ...ge.sqf => fnc_insertIMChildrenSyringe.sqf} | 12 +--- .../functions/fnc_insertIVChildrenSyringe.sqf | 70 +++++++++++++++++++ .../fnc_insertIVPainChildrenSyringe.sqf | 69 ++++++++++++++++++ addons/pharma/stringtable.xml | 13 +++- 7 files changed, 171 insertions(+), 21 deletions(-) rename addons/pharma/functions/{fnc_insertChildrenSyringe.sqf => fnc_insertIMChildrenSyringe.sqf} (85%) create mode 100644 addons/pharma/functions/fnc_insertIVChildrenSyringe.sqf create mode 100644 addons/pharma/functions/fnc_insertIVPainChildrenSyringe.sqf diff --git a/addons/pharma/CfgVehicles.hpp b/addons/pharma/CfgVehicles.hpp index 1b473eb97..04513058d 100644 --- a/addons/pharma/CfgVehicles.hpp +++ b/addons/pharma/CfgVehicles.hpp @@ -79,24 +79,34 @@ class CfgVehicles { class ACE_SelfActions { class KAT_Equipment { class KAT_PrepIVSyringe { - displayName = CSTRING(Medication_Action); + displayName = CSTRING(Medication_IVAction); + condition = QUOTE([ARR_2(_player,'kat_5ml_syringe')] call ACEFUNC(common,hasItem)); statement = "true"; medicRequired = QGVAR(medLvl_PrepIVSyringe); showDisabled = 0; exceptions[] = {"isNotInside", "isNotSitting"}; icon = QPATHTOF(ui\syringe.paa); - insertChildren = QUOTE(_this call FUNC(insertChildrenSyringe)); - item = "kat_5ml_syringe"; + insertChildren = QUOTE(_this call FUNC(insertIVChildrenSyringe)); + }; + class KAT_PrepIVPainSyringe { + displayName = CSTRING(Medication_IVPainAction); + condition = QUOTE([ARR_2(_player,'kat_5ml_syringe')] call ACEFUNC(common,hasItem)); + statement = "true"; + medicRequired = QGVAR(medLvl_PrepIVSyringe); + showDisabled = 0; + exceptions[] = {"isNotInside", "isNotSitting"}; + icon = QPATHTOF(ui\syringe.paa); + insertChildren = QUOTE(_this call FUNC(insertIVPainChildrenSyringe)); }; class KAT_PrepIMSyringe { - displayName = CSTRING(Medication_Action); + displayName = CSTRING(Medication_IMAction); + condition = QUOTE([ARR_2(_player,'kat_10ml_syringe')] call ACEFUNC(common,hasItem)); statement = "true"; medicRequired = QGVAR(medLvl_PrepIMSyringe); showDisabled = 0; exceptions[] = {"isNotInside", "isNotSitting"}; icon = QPATHTOF(ui\syringe.paa); - insertChildren = QUOTE(_this call FUNC(insertChildrenSyringe)); - item = "kat_10ml_syringe"; + insertChildren = QUOTE(_this call FUNC(insertIMChildrenSyringe)); }; }; }; diff --git a/addons/pharma/XEH_PREP.hpp b/addons/pharma/XEH_PREP.hpp index 5a70ea27f..dcbb216be 100644 --- a/addons/pharma/XEH_PREP.hpp +++ b/addons/pharma/XEH_PREP.hpp @@ -47,5 +47,7 @@ PREP(treatmentAdvanced_Reorientation); PREP(treatmentAdvanced_ReorientationLocal); PREP(treatmentAdvanced_TXALocal); PREP(vehicleCheckDialysis); -PREP(insertChildrenSyringe); +PREP(insertIVChildrenSyringe); +PREP(insertIVPainChildrenSyringe); +PREP(insertIMChildrenSyringe); PREP(prepareSyringe); \ No newline at end of file diff --git a/addons/pharma/XEH_preInit.sqf b/addons/pharma/XEH_preInit.sqf index d6a3909b3..4b174bc8d 100644 --- a/addons/pharma/XEH_preInit.sqf +++ b/addons/pharma/XEH_preInit.sqf @@ -720,7 +720,7 @@ PREP_RECOMPILE_END; [ QGVAR(medLvl_NalbuphineIM), "LIST", - [LLSTRING(medLvl_Nalbuphine)], + [LLSTRING(medLvl_NalbuphineIM)], [CBA_SETTINGS_CAT, LSTRING(SubCategory_Nalbuphine)], [[0, 1, 2], [ACELSTRING(medical_treatment,Anyone), ACELSTRING(medical_treatment,Medics), ACELSTRING(medical_treatment,Doctors)], 0], true diff --git a/addons/pharma/functions/fnc_insertChildrenSyringe.sqf b/addons/pharma/functions/fnc_insertIMChildrenSyringe.sqf similarity index 85% rename from addons/pharma/functions/fnc_insertChildrenSyringe.sqf rename to addons/pharma/functions/fnc_insertIMChildrenSyringe.sqf index 003202f20..c51c57a9b 100644 --- a/addons/pharma/functions/fnc_insertChildrenSyringe.sqf +++ b/addons/pharma/functions/fnc_insertIMChildrenSyringe.sqf @@ -19,13 +19,8 @@ params ["_target", "_player", "_params"]; -// Define dose types private _doseTypes = ["1", "2"]; - -// Define syringe types -private _syringeTypes = ["5ml", "10ml"]; - -// Define the medications list +private _syringeTypes = ["10ml"]; private _allMedications = [ "kat_EACA", "kat_TXA", @@ -44,16 +39,11 @@ private _allMedications = [ "kat_epinephrineIV" ]; -// Filter the player's items to get all medications private _medications = []; { if (_x in _allMedications) then { _medications pushBackUnique _x; }; - // Fallback for additional mods - if ((getNumber (configFile >> "CfgWeapons" >> _x >> "isMedication")) > 0) then { - _medications pushBackUnique _x; - }; } forEach (items _player); private _actions = []; diff --git a/addons/pharma/functions/fnc_insertIVChildrenSyringe.sqf b/addons/pharma/functions/fnc_insertIVChildrenSyringe.sqf new file mode 100644 index 000000000..b0b5d708f --- /dev/null +++ b/addons/pharma/functions/fnc_insertIVChildrenSyringe.sqf @@ -0,0 +1,70 @@ +#include "..\script_component.hpp" +/* + * Author: Katalam, modified by Cplhardcore + * Adds sub actions for preparing syringes + * + * Arguments: + * 0: Player + * 1: Player + * 2: Params + * + * Return Value: + * 0: Actions + * + * Example: + * [player, player, []] call kat_pharma_fnc_insertChildrenSyringe; + * + * Public: No + */ + +params ["_target", "_player", "_params"]; + +private _doseTypes = ["1", "2"]; +private _syringeTypes = ["5ml"]; +private _allMedications = [ + "kat_EACA", + "kat_TXA", + "kat_norepinephrine", + "kat_phenylephrine", + "kat_nitroglycerin", + "kat_amiodarone", + "kat_atropine", + "kat_epinephrineIV" +]; + +private _medications = []; +{ + if (_x in _allMedications) then { + _medications pushBackUnique _x; + }; +} forEach (items _player); + +private _actions = []; + +{ + private _medication = _x; + { + private _syringeType = _x; + { + private _doseType = _x; + + + private _className = format ["kat_syringe_%1_%2_%3", _medication, _syringeType, _doseType]; + + if (isClass (configFile >> "CfgWeapons" >> _className)) then { + + private _stringtableKey = format ["STR_KAT_Pharma_SyringeAction_%1_%2_%3", _medication, _syringeType, _doseType]; + + private _displayName = localize _stringtableKey; + + private _actionVarName = format [QGVAR(syringe_action_%1_%2_%3), _medication, _syringeType, _doseType]; + + private _action = [_actionVarName, _displayName, "", FUNC(prepareSyringe), {true}, {}, [_medication, _syringeType, _doseType]] call ACEFUNC(interact_menu,createAction); + + _actions pushBack [_action, [], _target]; + }; + } forEach _doseTypes; + } forEach _syringeTypes; +} forEach _medications; + +_actions diff --git a/addons/pharma/functions/fnc_insertIVPainChildrenSyringe.sqf b/addons/pharma/functions/fnc_insertIVPainChildrenSyringe.sqf new file mode 100644 index 000000000..e31760834 --- /dev/null +++ b/addons/pharma/functions/fnc_insertIVPainChildrenSyringe.sqf @@ -0,0 +1,69 @@ +#include "..\script_component.hpp" +/* + * Author: Katalam, modified by Cplhardcore + * Adds sub actions for preparing syringes + * + * Arguments: + * 0: Player + * 1: Player + * 2: Params + * + * Return Value: + * 0: Actions + * + * Example: + * [player, player, []] call kat_pharma_fnc_insertChildrenSyringe; + * + * Public: No + */ + +params ["_target", "_player", "_params"]; + +private _doseTypes = ["1", "2"]; +private _syringeTypes = ["5ml"]; +private _allMedications = [ + "kat_lidocaine", + "kat_ketamine", + "kat_fentanyl", + "kat_nalbuphine", + "kat_lorazepam", + "kat_flumazenil", + "kat_etomidate" +]; + +private _medications = []; +{ + if (_x in _allMedications) then { + _medications pushBackUnique _x; + }; +} forEach (items _player); + +private _actions = []; + +{ + private _medication = _x; + { + private _syringeType = _x; + { + private _doseType = _x; + + + private _className = format ["kat_syringe_%1_%2_%3", _medication, _syringeType, _doseType]; + + if (isClass (configFile >> "CfgWeapons" >> _className)) then { + + private _stringtableKey = format ["STR_KAT_Pharma_SyringeAction_%1_%2_%3", _medication, _syringeType, _doseType]; + + private _displayName = localize _stringtableKey; + + private _actionVarName = format [QGVAR(syringe_action_%1_%2_%3), _medication, _syringeType, _doseType]; + + private _action = [_actionVarName, _displayName, "", FUNC(prepareSyringe), {true}, {}, [_medication, _syringeType, _doseType]] call ACEFUNC(interact_menu,createAction); + + _actions pushBack [_action, [], _target]; + }; + } forEach _doseTypes; + } forEach _syringeTypes; +} forEach _medications; + +_actions diff --git a/addons/pharma/stringtable.xml b/addons/pharma/stringtable.xml index b711f30b2..08dfeb7ad 100644 --- a/addons/pharma/stringtable.xml +++ b/addons/pharma/stringtable.xml @@ -4274,8 +4274,14 @@ Establish 20g IV - - Prepare syringe + + Prepare IM syringe + + + Prepare IV syringe (Pain Management/Surgery) + + + Prepare IV syringe (Cardiac/Trauma) Prep EACA @@ -4374,6 +4380,9 @@ Prep 5ml Etomidate 0.3mg + Prep 5ml Epinephrine 10mcg + + Prep 5ml Epinephrine 1mg From 3ae72e5378d4e03bfa861d0ba7ca26bf0365efa7 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Fri, 13 Sep 2024 05:26:15 -0700 Subject: [PATCH 058/149] Scope --- addons/pharma/CfgWeapons.hpp | 74 +++++++++++++++++------------------ addons/pharma/XEH_preInit.sqf | 4 +- 2 files changed, 39 insertions(+), 39 deletions(-) diff --git a/addons/pharma/CfgWeapons.hpp b/addons/pharma/CfgWeapons.hpp index 2f2215b91..4ff9048c5 100644 --- a/addons/pharma/CfgWeapons.hpp +++ b/addons/pharma/CfgWeapons.hpp @@ -268,7 +268,7 @@ class CfgWeapons { }; }; class kat_syringe_kat_txa_10ml_1: ACE_ItemCore { - scope = 2; + scope = 0; displayName = CSTRING(Syringe_txa_10_1_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; @@ -279,7 +279,7 @@ class CfgWeapons { }; }; class kat_syringe_kat_txa_10ml_2: ACE_ItemCore { - scope = 2; + scope = 0; displayName = CSTRING(Syringe_txa_10_2_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; @@ -290,7 +290,7 @@ class CfgWeapons { }; }; class kat_syringe_kat_lidocaine_10ml_1: ACE_ItemCore { - scope = 2; + scope = 0; displayName = CSTRING(Syringe_lidocaine_10_1_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; @@ -301,7 +301,7 @@ class CfgWeapons { }; }; class kat_syringe_kat_ketamine_10ml_1: ACE_ItemCore { - scope = 2; + scope = 0; displayName = CSTRING(Syringe_ketamine_10_1_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; @@ -312,7 +312,7 @@ class CfgWeapons { }; }; class kat_syringe_kat_ketamine_10ml_2: ACE_ItemCore { - scope = 2; + scope = 0; displayName = CSTRING(Syringe_ketamine_10_2_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; @@ -323,7 +323,7 @@ class CfgWeapons { }; }; class kat_syringe_kat_fentanyl_10ml_1: ACE_ItemCore { - scope = 2; + scope = 0; displayName = CSTRING(Syringe_fentanyl_10_1_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; @@ -334,7 +334,7 @@ class CfgWeapons { }; }; class kat_syringe_kat_fentanyl_10ml_2: ACE_ItemCore { - scope = 2; + scope = 0; displayName = CSTRING(Syringe_fentanyl_10_2_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; @@ -345,7 +345,7 @@ class CfgWeapons { }; }; class kat_syringe_kat_nalbuphine_10ml_1: ACE_ItemCore { - scope = 2; + scope = 0; displayName = CSTRING(Syringe_nalbuphine_10_1_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; @@ -356,7 +356,7 @@ class CfgWeapons { }; }; class kat_syringe_kat_nalbuphine_10ml_2: ACE_ItemCore { - scope = 2; + scope = 0; displayName = CSTRING(Syringe_nalbuphine_10_2_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; @@ -367,7 +367,7 @@ class CfgWeapons { }; }; class kat_syringe_kat_txa_5ml_1: ACE_ItemCore { - scope = 2; + scope = 0; displayName = CSTRING(Syringe_txa_5_1_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; @@ -378,7 +378,7 @@ class CfgWeapons { }; }; class kat_syringe_kat_txa_5ml_2: ACE_ItemCore { - scope = 2; + scope = 0; displayName = CSTRING(Syringe_txa_5_2_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; @@ -389,7 +389,7 @@ class CfgWeapons { }; }; class kat_syringe_kat_eaca_5ml_1: ACE_ItemCore { - scope = 2; + scope = 0; displayName = CSTRING(Syringe_eaca_5_1_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; @@ -400,7 +400,7 @@ class CfgWeapons { }; }; class kat_syringe_kat_eaca_5ml_2: ACE_ItemCore { - scope = 2; + scope = 0; displayName = CSTRING(Syringe_eaca_5_2_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; @@ -411,7 +411,7 @@ class CfgWeapons { }; }; class kat_syringe_kat_norepinephrine_5ml_1: ACE_ItemCore { - scope = 2; + scope = 0; displayName = CSTRING(Syringe_norepinephrine_5_1_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; @@ -422,7 +422,7 @@ class CfgWeapons { }; }; class kat_syringe_kat_norepinephrine_5ml_2: ACE_ItemCore { - scope = 2; + scope = 0; displayName = CSTRING(Syringe_norepinephrine_5_2_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; @@ -433,7 +433,7 @@ class CfgWeapons { }; }; class kat_syringe_kat_phenylephrine_5ml_1: ACE_ItemCore { - scope = 2; + scope = 0; displayName = CSTRING(Syringe_phenylephrine_5_1_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; @@ -444,7 +444,7 @@ class CfgWeapons { }; }; class kat_syringe_kat_phenylephrine_5ml_2: ACE_ItemCore { - scope = 2; + scope = 0; displayName = CSTRING(Syringe_phenylephrine_5_2_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; @@ -455,7 +455,7 @@ class CfgWeapons { }; }; class kat_syringe_kat_nitroglycerin_5ml_1: ACE_ItemCore { - scope = 2; + scope = 0; displayName = CSTRING(Syringe_nitroglycerin_5_1_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; @@ -466,7 +466,7 @@ class CfgWeapons { }; }; class kat_syringe_kat_nitroglycerin_5ml_2: ACE_ItemCore { - scope = 2; + scope = 0; displayName = CSTRING(Syringe_nitroglycerin_5_2_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; @@ -477,7 +477,7 @@ class CfgWeapons { }; }; class kat_syringe_kat_amiodarone_5ml_1: ACE_ItemCore { - scope = 2; + scope = 0; displayName = CSTRING(Syringe_amiodarone_5_1_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; @@ -488,7 +488,7 @@ class CfgWeapons { }; }; class kat_syringe_kat_amiodarone_5ml_2: ACE_ItemCore { - scope = 2; + scope = 0; displayName = CSTRING(Syringe_amiodarone_5_2_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; @@ -499,7 +499,7 @@ class CfgWeapons { }; }; class kat_syringe_kat_epinephrineIV_5ml_1: ACE_ItemCore { - scope = 2; + scope = 0; displayName = CSTRING(Syringe_epinephrineIV_5_1_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; @@ -510,7 +510,7 @@ class CfgWeapons { }; }; class kat_syringe_kat_epinephrineIV_5ml_2: ACE_ItemCore { - scope = 2; + scope = 0; displayName = CSTRING(Syringe_epinephrineIV_5_2_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; @@ -521,7 +521,7 @@ class CfgWeapons { }; }; class kat_syringe_kat_lidocaine_5ml_1: ACE_ItemCore { - scope = 2; + scope = 0; displayName = CSTRING(Syringe_lidocaine_5_1_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; @@ -532,7 +532,7 @@ class CfgWeapons { }; }; class kat_syringe_kat_lidocaine_5ml_2: ACE_ItemCore { - scope = 2; + scope = 0; displayName = CSTRING(Syringe_lidocaine_5_2_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; @@ -543,7 +543,7 @@ class CfgWeapons { }; }; class kat_syringe_kat_ketamine_5ml_1: ACE_ItemCore { - scope = 2; + scope = 0; displayName = CSTRING(Syringe_ketamine_5_1_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; @@ -554,7 +554,7 @@ class CfgWeapons { }; }; class kat_syringe_kat_ketamine_5ml_2: ACE_ItemCore { - scope = 2; + scope = 0; displayName = CSTRING(Syringe_ketamine_5_2_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; @@ -565,7 +565,7 @@ class CfgWeapons { }; }; class kat_syringe_kat_fentanyl_5ml_1: ACE_ItemCore { - scope = 2; + scope = 0; displayName = CSTRING(Syringe_fentanyl_5_1_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; @@ -576,7 +576,7 @@ class CfgWeapons { }; }; class kat_syringe_kat_fentanyl_5ml_2: ACE_ItemCore { - scope = 2; + scope = 0; displayName = CSTRING(Syringe_fentanyl_10_2_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; @@ -587,7 +587,7 @@ class CfgWeapons { }; }; class kat_syringe_kat_nalbuphine_5ml_1: ACE_ItemCore { - scope = 2; + scope = 0; displayName = CSTRING(Syringe_nalbuphine_5_1_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; @@ -598,7 +598,7 @@ class CfgWeapons { }; }; class kat_syringe_kat_nalbuphine_5ml_2: ACE_ItemCore { - scope = 2; + scope = 0; displayName = CSTRING(Syringe_nalbuphine_5_2_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; @@ -609,7 +609,7 @@ class CfgWeapons { }; }; class kat_syringe_kat_lorazepam_5ml_1: ACE_ItemCore { - scope = 2; + scope = 0; displayName = CSTRING(Syringe_lorazepam_5_1_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; @@ -620,7 +620,7 @@ class CfgWeapons { }; }; class kat_syringe_kat_lorazepam_5ml_2: ACE_ItemCore { - scope = 2; + scope = 0; displayName = CSTRING(Syringe_lorazepam_5_2_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; @@ -631,7 +631,7 @@ class CfgWeapons { }; }; class kat_syringe_kat_flumazenil_5ml_1: ACE_ItemCore { - scope = 2; + scope = 0; displayName = CSTRING(Syringe_flumazenil_5_1_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; @@ -642,7 +642,7 @@ class CfgWeapons { }; }; class kat_syringe_kat_flumazenil_5ml_2: ACE_ItemCore { - scope = 2; + scope = 0; displayName = CSTRING(Syringe_flumazenil_5_2_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; @@ -653,7 +653,7 @@ class CfgWeapons { }; }; class kat_syringe_kat_etomidate_5ml_1: ACE_ItemCore { - scope = 2; + scope = 0; displayName = CSTRING(Syringe_etomidate_5_1_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; @@ -664,7 +664,7 @@ class CfgWeapons { }; }; class kat_syringe_kat_etomidate_5ml_2: ACE_ItemCore { - scope = 2; + scope = 0; displayName = CSTRING(Syringe_etomidate_5_2_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; diff --git a/addons/pharma/XEH_preInit.sqf b/addons/pharma/XEH_preInit.sqf index 4b174bc8d..687c97345 100644 --- a/addons/pharma/XEH_preInit.sqf +++ b/addons/pharma/XEH_preInit.sqf @@ -67,7 +67,7 @@ PREP_RECOMPILE_END; QGVAR(medLvl_PrepIVSyringe), "LIST", [LLSTRING(medLvl_PrepIVSyringe), LLSTRING(medLvl_PrepIVSyringe_Desc)], - [CBA_SETTINGS_CAT, ELSTRING(GUI,SubCategory__Basic)], + [CBA_SETTINGS_CAT, ELSTRING(GUI,SubCategory_Basic)], [[0, 1, 2], [ACELSTRING(medical_treatment,Anyone), ACELSTRING(medical_treatment,Medics), ACELSTRING(medical_treatment,Doctors)], 0], true ] call CBA_Settings_fnc_init; @@ -76,7 +76,7 @@ PREP_RECOMPILE_END; QGVAR(medLvl_PrepIMSyringe), "LIST", [LLSTRING(medLvl_PrepIMSyringe), LLSTRING(medLvl_PrepIMSyringe_Desc)], - [CBA_SETTINGS_CAT, ELSTRING(GUI,SubCategory__Basic)], + [CBA_SETTINGS_CAT, ELSTRING(GUI,SubCategory_Basic)], [[0, 1, 2], [ACELSTRING(medical_treatment,Anyone), ACELSTRING(medical_treatment,Medics), ACELSTRING(medical_treatment,Doctors)], 0], true ] call CBA_Settings_fnc_init; From 219e968aea9173a52b668a6d61a4bad364fcccc5 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Fri, 13 Sep 2024 05:28:47 -0700 Subject: [PATCH 059/149] Update fnc_treatmentAdvanced_KetamineLocal.sqf --- .../functions/fnc_treatmentAdvanced_KetamineLocal.sqf | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_KetamineLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_KetamineLocal.sqf index 2c16ac00d..b37fa2887 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_KetamineLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_KetamineLocal.sqf @@ -21,6 +21,12 @@ params ["_target"]; if !(alive _target) exitWith {}; if (ACE_Player != _target) exitWith {}; +if (_classname isEqualTo syringe_kat_ketamine_5ml_2) then { + _patient setVariable [QEGVAR(surgery,sedated), true, true]; + [_patient, true] call ACEFUNC(medical,setUnconscious); + + [[_patient setVariable [QEGVAR(surgery,sedated), false, true]], 90] call CBA_fnc_waitAndExecute; +}; if (GVAR(chromatic_aberration_checkbox_ketamine)) then { [{ @@ -65,7 +71,7 @@ if (GVAR(chromatic_aberration_checkbox_ketamine)) then { [_target], 60] call CBA_fnc_waitAndExecute; // chroma start after 60s }; -if ((_classname isEqualTo syringe_kat_ketamine_5ml_2) || (_classname isEqualTo syringe_kat_ketamine_10ml_2)) then { +if (_classname isEqualTo syringe_kat_ketamine_5ml_2) then { _patient setVariable [QEGVAR(surgery,sedated), true, true]; [_patient, true] call ACEFUNC(medical,setUnconscious); From 3b3480e48b3003445f5de0b782d79b476cbd0971 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Fri, 13 Sep 2024 05:40:25 -0700 Subject: [PATCH 060/149] fixed --- .../functions/fnc_treatmentAdvanced_AtropineLocal.sqf | 2 +- .../functions/fnc_treatmentAdvanced_KetamineLocal.sqf | 11 ++--------- 2 files changed, 3 insertions(+), 10 deletions(-) diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_AtropineLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_AtropineLocal.sqf index bba958f6d..7a375d113 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_AtropineLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_AtropineLocal.sqf @@ -15,7 +15,7 @@ * Public: No */ -params ["_patient", "_classname"]; +params ["_patient", "_bodyPart", "_classname"]; if (_classname isEqualTo syringe_kat_atropine_5ml_2) exitWith {}; diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_KetamineLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_KetamineLocal.sqf index b37fa2887..7aa99b923 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_KetamineLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_KetamineLocal.sqf @@ -10,24 +10,17 @@ * None * * Example: - * [player] call kat_pharma_fnc_ketaminePP; + * [player, leftLeg, syringe_kat_ketamine_5ml_2] call kat_pharma_fnc_ketamineLocal; * * Public: No */ /// ChromAberration effect -params ["_target"]; +params ["_patient", "_bodyPart", "_classname"]; if !(alive _target) exitWith {}; if (ACE_Player != _target) exitWith {}; -if (_classname isEqualTo syringe_kat_ketamine_5ml_2) then { - _patient setVariable [QEGVAR(surgery,sedated), true, true]; - [_patient, true] call ACEFUNC(medical,setUnconscious); - - [[_patient setVariable [QEGVAR(surgery,sedated), false, true]], 90] call CBA_fnc_waitAndExecute; -}; - if (GVAR(chromatic_aberration_checkbox_ketamine)) then { [{ params ["_target"]; From c32ac6e6191bc59e2f4ccf14f8a55680af52a497 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Fri, 13 Sep 2024 06:25:38 -0700 Subject: [PATCH 061/149] add to med checks --- addons/pharma/functions/fnc_applyIV.sqf | 18 +++++++++++++++++- .../functions/fnc_closedReductionLocal.sqf | 18 +++++++++++++++++- 2 files changed, 34 insertions(+), 2 deletions(-) diff --git a/addons/pharma/functions/fnc_applyIV.sqf b/addons/pharma/functions/fnc_applyIV.sqf index e5f6b1659..f19bb8755 100644 --- a/addons/pharma/functions/fnc_applyIV.sqf +++ b/addons/pharma/functions/fnc_applyIV.sqf @@ -70,11 +70,27 @@ switch (_usedItem) do { _patient setVariable [QGVAR(IV), _IVarray, true]; _patient setVariable [QGVAR(IVrate), _IVrate, true]; private _lidocaineCount = [_patient, "Lidocaine", false] call ACEFUNC(medical_status,getMedicationCount); + private _lidocaineCount51 = [_patient, "syringe_kat_lidocaine_5ml_1", false] call ACEFUNC(medical_status,getMedicationCount); + private _lidocaineCount52 = [_patient, "syringe_kat_lidocaine_5ml_2", false] call ACEFUNC(medical_status,getMedicationCount); + private _lidocaineCount101 = [_patient, "syringe_kat_lidocaine_10ml_1", false] call ACEFUNC(medical_status,getMedicationCount); + private _lidocaineCount102 = [_patient, "syringe_kat_lidocaine_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); private _morphineCount = [_patient, "Morphine", false] call ACEFUNC(medical_status,getMedicationCount); private _nalbuphineCount = [_patient, "Nalbuphine", false] call ACEFUNC(medical_status,getMedicationCount); private _fentanylCount = [_patient, "Fentanyl", false] call ACEFUNC(medical_status,getMedicationCount); private _ketamineCount = [_patient, "Ketamine", false] call ACEFUNC(medical_status,getMedicationCount); - if (_lidocaineCount <= 0.6 && _morphineCount <= 0.6 && _nalbuphineCount <= 0.6 && _fentanylCount <= 0.6 && _ketamineCount <= 0.6) then {[_patient, 0.8] call ACEFUNC(medical_status,adjustPainLevel)}; + private _nalbuphineCount51 = [_patient, "syringe_kat_nalbuphine_5ml_1", false] call ACEFUNC(medical_status,getMedicationCount); + private _fentanylCount51 = [_patient, "syringe_kat_fentanyl_5ml_1", false] call ACEFUNC(medical_status,getMedicationCount); + private _ketamineCount51 = [_patient, "syringe_kat_ketamine_5ml_1", false] call ACEFUNC(medical_status,getMedicationCount); + private _nalbuphineCount52 = [_patient, "syringe_kat_nalbuphine_5ml_2", false] call ACEFUNC(medical_status,getMedicationCount); + private _fentanylCount52 = [_patient, "syringe_kat_fentanyl_5ml_2", false] call ACEFUNC(medical_status,getMedicationCount); + private _ketamineCount52= [_patient, "syringe_kat_ketamine_5ml_2", false] call ACEFUNC(medical_status,getMedicationCount); + private _nalbuphineCount101 = [_patient, "syringe_kat_nalbuphine_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); + private _fentanylCount101 = [_patient, "syringe_kat_fentanyl_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); + private _ketamineCount101 = [_patient, "syringe_kat_ketamine_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); + private _nalbuphineCount102 = [_patient, "syringe_kat_nalbuphine_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); + private _fentanylCount102 = [_patient, "syringe_kat_fentanyl_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); + rivate _ketamineCount102 = [_patient, "syringe_kat_ketamine_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); + if (_lidocaineCount <= 0.6 && _morphineCount <= 0.6 && _nalbuphineCount <= 0.6 && _fentanylCount <= 0.6 && _ketamineCount <= 0.6 && _lidocaineCount51 <= 0.6 && _nalbuphineCount51 <= 0.6 && _fentanylCount51 <= 0.6 && _ketamineCount51 <= 0.6 &&_lidocaineCount52 <= 0.6 && _nalbuphineCount52 <= 0.6 && _fentanylCount52 <= 0.6 && _ketamineCount52 <= 0.6 && _lidocaineCount101 <= 0.6 && _nalbuphineCount101 <= 0.6 && _fentanylCount101 <= 0.6 && _ketamineCount101 <= 0.6 && && _lidocaineCount102 <= 0.6 && _nalbuphineCount102 <= 0.6 && _fentanylCount102 <= 0.6 && _ketamineCount102 <= 0.6) then {[_patient, 0.8] call ACEFUNC(medical_status,adjustPainLevel)}; [_patient, "activity", LSTRING(iv_log), [[_medic] call ACEFUNC(common,getName), "FAST IO"]] call ACEFUNC(medical_treatment,addToLog); [_patient, "FAST IO"] call ACEFUNC(medical_treatment,addToTriageCard);}; diff --git a/addons/surgery/functions/fnc_closedReductionLocal.sqf b/addons/surgery/functions/fnc_closedReductionLocal.sqf index 9446413f6..b133af3e2 100644 --- a/addons/surgery/functions/fnc_closedReductionLocal.sqf +++ b/addons/surgery/functions/fnc_closedReductionLocal.sqf @@ -23,11 +23,27 @@ private _part = ALL_BODY_PARTS find toLower _bodyPart; private _activeFracture = GET_FRACTURES(_patient); private _fractureArray = _patient getVariable [QGVAR(fractures), [0,0,0,0,0,0]]; private _lidocaineCount = [_patient, "Lidocaine", false] call ACEFUNC(medical_status,getMedicationCount); +private _lidocaineCount51 = [_patient, "syringe_kat_lidocaine_5ml_1", false] call ACEFUNC(medical_status,getMedicationCount); +private _lidocaineCount52 = [_patient, "syringe_kat_lidocaine_5ml_2", false] call ACEFUNC(medical_status,getMedicationCount); +private _lidocaineCount101 = [_patient, "syringe_kat_lidocaine_10ml_1", false] call ACEFUNC(medical_status,getMedicationCount); +private _lidocaineCount102 = [_patient, "syringe_kat_lidocaine_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); private _morphineCount = [_patient, "Morphine", false] call ACEFUNC(medical_status,getMedicationCount); private _nalbuphineCount = [_patient, "Nalbuphine", false] call ACEFUNC(medical_status,getMedicationCount); private _fentanylCount = [_patient, "Fentanyl", false] call ACEFUNC(medical_status,getMedicationCount); private _ketamineCount = [_patient, "Ketamine", false] call ACEFUNC(medical_status,getMedicationCount); -if (_lidocaineCount <= 0.6 && _morphineCount <= 0.8 && _nalbuphineCount <= 0.8 && _fentanylCount <= 0.8 && _ketamineCount <= 0.8) then { +private _nalbuphineCount51 = [_patient, "syringe_kat_nalbuphine_5ml_1", false] call ACEFUNC(medical_status,getMedicationCount); +private _fentanylCount51 = [_patient, "syringe_kat_fentanyl_5ml_1", false] call ACEFUNC(medical_status,getMedicationCount); +private _ketamineCount51 = [_patient, "syringe_kat_ketamine_5ml_1", false] call ACEFUNC(medical_status,getMedicationCount); +private _nalbuphineCount52 = [_patient, "syringe_kat_nalbuphine_5ml_2", false] call ACEFUNC(medical_status,getMedicationCount); +private _fentanylCount52 = [_patient, "syringe_kat_fentanyl_5ml_2", false] call ACEFUNC(medical_status,getMedicationCount); +private _ketamineCount52= [_patient, "syringe_kat_ketamine_5ml_2", false] call ACEFUNC(medical_status,getMedicationCount); +private _nalbuphineCount101 = [_patient, "syringe_kat_nalbuphine_10ml_1", false] call ACEFUNC(medical_status,getMedicationCount); +private _fentanylCount101 = [_patient, "syringe_kat_fentanyl_10ml_1", false] call ACEFUNC(medical_status,getMedicationCount); +private _ketamineCount101 = [_patient, "syringe_kat_ketamine_10ml_1", false] call ACEFUNC(medical_status,getMedicationCount); +private _nalbuphineCount102 = [_patient, "syringe_kat_nalbuphine_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); +private _fentanylCount102 = [_patient, "syringe_kat_fentanyl_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); +private _ketamineCount102 = [_patient, "syringe_kat_ketamine_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); +if (_lidocaineCount <= 0.6 && _morphineCount <= 0.8 && _nalbuphineCount <= 0.8 && _fentanylCount <= 0.8 && _ketamineCount <= 0.8 && _lidocaineCount51 <= 0.6 && _nalbuphineCount51 <= 0.8 && _fentanylCount51 <= 0.8 && _ketamineCount51 <= 0.8 &&_lidocaineCount52 <= 0.6 && _nalbuphineCount52 <= 0.8 && _fentanylCount52 <= 0.8 && _ketamineCount52 <= 0.8 && _lidocaineCount101 <= 0.6 && _nalbuphineCount101 <= 0.8 && _fentanylCount101 <= 0.8 && _ketamineCount101 <= 0.8 && && _lidocaineCount102 <= 0.6 && _nalbuphineCount102 <= 0.8 && _fentanylCount102 <= 0.8 && _ketamineCount102 <= 0.8) then { private _pain = random [0.7, 0.8, 0.9]; [_patient, _pain] call ACEFUNC(medical_status,adjustPainLevel); }; From b8ee551012460fd1ef7b45a3d33dbfa92e9a0d5e Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Fri, 13 Sep 2024 06:28:11 -0700 Subject: [PATCH 062/149] Update fnc_applyIV.sqf --- addons/pharma/functions/fnc_applyIV.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/pharma/functions/fnc_applyIV.sqf b/addons/pharma/functions/fnc_applyIV.sqf index f19bb8755..8036094a8 100644 --- a/addons/pharma/functions/fnc_applyIV.sqf +++ b/addons/pharma/functions/fnc_applyIV.sqf @@ -89,7 +89,7 @@ switch (_usedItem) do { private _ketamineCount101 = [_patient, "syringe_kat_ketamine_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); private _nalbuphineCount102 = [_patient, "syringe_kat_nalbuphine_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); private _fentanylCount102 = [_patient, "syringe_kat_fentanyl_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); - rivate _ketamineCount102 = [_patient, "syringe_kat_ketamine_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); + private _ketamineCount102 = [_patient, "syringe_kat_ketamine_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); if (_lidocaineCount <= 0.6 && _morphineCount <= 0.6 && _nalbuphineCount <= 0.6 && _fentanylCount <= 0.6 && _ketamineCount <= 0.6 && _lidocaineCount51 <= 0.6 && _nalbuphineCount51 <= 0.6 && _fentanylCount51 <= 0.6 && _ketamineCount51 <= 0.6 &&_lidocaineCount52 <= 0.6 && _nalbuphineCount52 <= 0.6 && _fentanylCount52 <= 0.6 && _ketamineCount52 <= 0.6 && _lidocaineCount101 <= 0.6 && _nalbuphineCount101 <= 0.6 && _fentanylCount101 <= 0.6 && _ketamineCount101 <= 0.6 && && _lidocaineCount102 <= 0.6 && _nalbuphineCount102 <= 0.6 && _fentanylCount102 <= 0.6 && _ketamineCount102 <= 0.6) then {[_patient, 0.8] call ACEFUNC(medical_status,adjustPainLevel)}; [_patient, "activity", LSTRING(iv_log), [[_medic] call ACEFUNC(common,getName), "FAST IO"]] call ACEFUNC(medical_treatment,addToLog); From adfcb0215f7dd0fa4067069d4e7b76f35244879e Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Fri, 13 Sep 2024 06:33:02 -0700 Subject: [PATCH 063/149] oops --- addons/pharma/functions/fnc_applyIV.sqf | 2 +- addons/surgery/functions/fnc_closedReductionLocal.sqf | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/pharma/functions/fnc_applyIV.sqf b/addons/pharma/functions/fnc_applyIV.sqf index 8036094a8..20b60ca9e 100644 --- a/addons/pharma/functions/fnc_applyIV.sqf +++ b/addons/pharma/functions/fnc_applyIV.sqf @@ -90,7 +90,7 @@ switch (_usedItem) do { private _nalbuphineCount102 = [_patient, "syringe_kat_nalbuphine_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); private _fentanylCount102 = [_patient, "syringe_kat_fentanyl_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); private _ketamineCount102 = [_patient, "syringe_kat_ketamine_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); - if (_lidocaineCount <= 0.6 && _morphineCount <= 0.6 && _nalbuphineCount <= 0.6 && _fentanylCount <= 0.6 && _ketamineCount <= 0.6 && _lidocaineCount51 <= 0.6 && _nalbuphineCount51 <= 0.6 && _fentanylCount51 <= 0.6 && _ketamineCount51 <= 0.6 &&_lidocaineCount52 <= 0.6 && _nalbuphineCount52 <= 0.6 && _fentanylCount52 <= 0.6 && _ketamineCount52 <= 0.6 && _lidocaineCount101 <= 0.6 && _nalbuphineCount101 <= 0.6 && _fentanylCount101 <= 0.6 && _ketamineCount101 <= 0.6 && && _lidocaineCount102 <= 0.6 && _nalbuphineCount102 <= 0.6 && _fentanylCount102 <= 0.6 && _ketamineCount102 <= 0.6) then {[_patient, 0.8] call ACEFUNC(medical_status,adjustPainLevel)}; + if (_lidocaineCount <= 0.6 && _morphineCount <= 0.6 && _nalbuphineCount <= 0.6 && _fentanylCount <= 0.6 && _ketamineCount <= 0.6 && _lidocaineCount51 <= 0.6 && _nalbuphineCount51 <= 0.6 && _fentanylCount51 <= 0.6 && _ketamineCount51 <= 0.6 &&_lidocaineCount52 <= 0.6 && _nalbuphineCount52 <= 0.6 && _fentanylCount52 <= 0.6 && _ketamineCount52 <= 0.6 && _lidocaineCount101 <= 0.6 && _nalbuphineCount101 <= 0.6 && _fentanylCount101 <= 0.6 && _ketamineCount101 <= 0.6 && _lidocaineCount102 <= 0.6 && _nalbuphineCount102 <= 0.6 && _fentanylCount102 <= 0.6 && _ketamineCount102 <= 0.6) then {[_patient, 0.8] call ACEFUNC(medical_status,adjustPainLevel)}; [_patient, "activity", LSTRING(iv_log), [[_medic] call ACEFUNC(common,getName), "FAST IO"]] call ACEFUNC(medical_treatment,addToLog); [_patient, "FAST IO"] call ACEFUNC(medical_treatment,addToTriageCard);}; diff --git a/addons/surgery/functions/fnc_closedReductionLocal.sqf b/addons/surgery/functions/fnc_closedReductionLocal.sqf index b133af3e2..4656e1112 100644 --- a/addons/surgery/functions/fnc_closedReductionLocal.sqf +++ b/addons/surgery/functions/fnc_closedReductionLocal.sqf @@ -43,7 +43,7 @@ private _ketamineCount101 = [_patient, "syringe_kat_ketamine_10ml_1", false] cal private _nalbuphineCount102 = [_patient, "syringe_kat_nalbuphine_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); private _fentanylCount102 = [_patient, "syringe_kat_fentanyl_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); private _ketamineCount102 = [_patient, "syringe_kat_ketamine_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); -if (_lidocaineCount <= 0.6 && _morphineCount <= 0.8 && _nalbuphineCount <= 0.8 && _fentanylCount <= 0.8 && _ketamineCount <= 0.8 && _lidocaineCount51 <= 0.6 && _nalbuphineCount51 <= 0.8 && _fentanylCount51 <= 0.8 && _ketamineCount51 <= 0.8 &&_lidocaineCount52 <= 0.6 && _nalbuphineCount52 <= 0.8 && _fentanylCount52 <= 0.8 && _ketamineCount52 <= 0.8 && _lidocaineCount101 <= 0.6 && _nalbuphineCount101 <= 0.8 && _fentanylCount101 <= 0.8 && _ketamineCount101 <= 0.8 && && _lidocaineCount102 <= 0.6 && _nalbuphineCount102 <= 0.8 && _fentanylCount102 <= 0.8 && _ketamineCount102 <= 0.8) then { +if (_lidocaineCount <= 0.6 && _morphineCount <= 0.8 && _nalbuphineCount <= 0.8 && _fentanylCount <= 0.8 && _ketamineCount <= 0.8 && _lidocaineCount51 <= 0.6 && _nalbuphineCount51 <= 0.8 && _fentanylCount51 <= 0.8 && _ketamineCount51 <= 0.8 &&_lidocaineCount52 <= 0.6 && _nalbuphineCount52 <= 0.8 && _fentanylCount52 <= 0.8 && _ketamineCount52 <= 0.8 && _lidocaineCount101 <= 0.6 && _nalbuphineCount101 <= 0.8 && _fentanylCount101 <= 0.8 && _ketamineCount101 <= 0.8 && _lidocaineCount102 <= 0.6 && _nalbuphineCount102 <= 0.8 && _fentanylCount102 <= 0.8 && _ketamineCount102 <= 0.8) then { private _pain = random [0.7, 0.8, 0.9]; [_patient, _pain] call ACEFUNC(medical_status,adjustPainLevel); }; From dfbefb17bd01e54c9162b64fd46d78afb6262394 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Fri, 13 Sep 2024 08:18:51 -0700 Subject: [PATCH 064/149] Start of AMS --- addons/pharma/XEH_preInit.sqf | 9 +++++++++ addons/pharma/stringtable.xml | 6 ++++++ 2 files changed, 15 insertions(+) diff --git a/addons/pharma/XEH_preInit.sqf b/addons/pharma/XEH_preInit.sqf index 687c97345..e1af0c549 100644 --- a/addons/pharma/XEH_preInit.sqf +++ b/addons/pharma/XEH_preInit.sqf @@ -63,6 +63,15 @@ PREP_RECOMPILE_END; true ] call CBA_Settings_fnc_init; +[ + QGVAR(AMS_Enabled), + "CHECKBOX", + [LLSTRING(advancedMedicationSystem), LLSTRING(advancedMedicationSystem_Desc)], + [CBA_SETTINGS_CAT, ELSTRING(GUI,SubCategory_Basic)], + [false], + true +] call CBA_Settings_fnc_init; + [ QGVAR(medLvl_PrepIVSyringe), "LIST", diff --git a/addons/pharma/stringtable.xml b/addons/pharma/stringtable.xml index 08dfeb7ad..74d485fcc 100644 --- a/addons/pharma/stringtable.xml +++ b/addons/pharma/stringtable.xml @@ -4418,5 +4418,11 @@ Medical level required to prep IM medications + + Enable Advanced Medication System + + + Enables Advanced Medication System and disables Basic System + From 89a7c0904330950a95aa3baff5f3f02ed82adc34 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Sat, 14 Sep 2024 02:04:52 -0700 Subject: [PATCH 065/149] Update fnc_treatmentAdvanced_KetamineLocal.sqf --- addons/pharma/functions/fnc_treatmentAdvanced_KetamineLocal.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_KetamineLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_KetamineLocal.sqf index 7aa99b923..f95bf942e 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_KetamineLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_KetamineLocal.sqf @@ -64,7 +64,7 @@ if (GVAR(chromatic_aberration_checkbox_ketamine)) then { [_target], 60] call CBA_fnc_waitAndExecute; // chroma start after 60s }; -if (_classname isEqualTo syringe_kat_ketamine_5ml_2) then { +if (_classname isEqualTo "syringe_kat_ketamine_5ml_2") then { _patient setVariable [QEGVAR(surgery,sedated), true, true]; [_patient, true] call ACEFUNC(medical,setUnconscious); From ab08ae5877c326da729f5ada83205c103dc4e79d Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Sat, 14 Sep 2024 02:06:06 -0700 Subject: [PATCH 066/149] atropine fix --- .../chemical/functions/fnc_treatmentAdvanced_AtropineLocal.sqf | 2 +- addons/pharma/functions/fnc_treatmentAdvanced_AtropineLocal.sqf | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/chemical/functions/fnc_treatmentAdvanced_AtropineLocal.sqf b/addons/chemical/functions/fnc_treatmentAdvanced_AtropineLocal.sqf index 00dba28d4..53c404e6b 100644 --- a/addons/chemical/functions/fnc_treatmentAdvanced_AtropineLocal.sqf +++ b/addons/chemical/functions/fnc_treatmentAdvanced_AtropineLocal.sqf @@ -16,7 +16,7 @@ */ params ["_patient", "_classname"]; -if (_classname isEqualTo syringe_kat_atropine_5ml_1) exitWith {}; +if (_classname isEqualTo "syringe_kat_atropine_5ml_1") exitWith {}; _patient setVariable [QGVAR(airPoisoning), false, true]; _patient setVariable [QGVAR(isTreated), true, true]; diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_AtropineLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_AtropineLocal.sqf index 7a375d113..02931a9f3 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_AtropineLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_AtropineLocal.sqf @@ -17,7 +17,7 @@ params ["_patient", "_bodyPart", "_classname"]; -if (_classname isEqualTo syringe_kat_atropine_5ml_2) exitWith {}; +if (_classname isEqualTo "syringe_kat_atropine_5ml_2") exitWith {}; private _medicationArray = _patient getVariable [QACEGVAR(medical,medications), []]; From 7dcf17a3f86018b582b85ee8387befc608cb6d00 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Sat, 14 Sep 2024 02:12:14 -0700 Subject: [PATCH 067/149] Update ACE_Medical_Treatment_Actions.hpp --- addons/pharma/ACE_Medical_Treatment_Actions.hpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/addons/pharma/ACE_Medical_Treatment_Actions.hpp b/addons/pharma/ACE_Medical_Treatment_Actions.hpp index d3012f216..ba74b5744 100644 --- a/addons/pharma/ACE_Medical_Treatment_Actions.hpp +++ b/addons/pharma/ACE_Medical_Treatment_Actions.hpp @@ -624,6 +624,7 @@ class ACE_Medical_Treatment_Actions { class syringe_kat_ketamine_5ml_2: syringe_kat_ketamine_5ml_1 { displayName = CSTRING(push_ketamine_IV_2); displayNameProgress = CSTRING(pushing_ketamine_IV_2); + category = "surgery"; items[] = {"kat_syringe_kat_ketamine_5ml_2"}; callbackSuccess = QFUNC(medication); sounds[] = {}; @@ -669,6 +670,7 @@ class ACE_Medical_Treatment_Actions { class syringe_kat_lorazepam_5ml_1: syringe_kat_EACA_5ml_1 { displayName = CSTRING(push_lorazepam_IV_1); displayNameProgress = CSTRING(pushing_lorazepam_IV_1); + category = "surgery"; allowedSelections[] = {"Body", "LeftArm", "RightArm", "LeftLeg", "RightLeg"}; allowSelfTreatment = 1; medicRequired = QGVAR(medLvl_lorazepam); @@ -681,6 +683,7 @@ class ACE_Medical_Treatment_Actions { class syringe_kat_lorazapam_5ml_1: syringe_kat_lorazepam_5ml_1 { displayName = CSTRING(push_lorazepam_IV_2); displayNameProgress = CSTRING(pushing_lorazepam_IV_2); + category = "surgery"; items[] = {"kat_syringe_kat_lorazepam_5ml_2"}; callbackSuccess = QFUNC(medication); sounds[] = {}; @@ -688,6 +691,7 @@ class ACE_Medical_Treatment_Actions { class syringe_kat_flumazenil_5ml_1: syringe_kat_EACA_5ml_1 { displayName = CSTRING(push_flumazenil_IV_1); displayNameProgress = CSTRING(pushing_flumazenil_IV_1); + category = "surgery"; allowedSelections[] = {"Body", "LeftArm", "RightArm", "LeftLeg", "RightLeg"}; allowSelfTreatment = 1; medicRequired = QGVAR(medLvl_flumazenil); @@ -700,6 +704,7 @@ class ACE_Medical_Treatment_Actions { class syringe_kat_flumazenil_5ml_2: syringe_kat_flumazenil_5ml_1 { displayName = CSTRING(push_flumazenil_IV_2); displayNameProgress = CSTRING(pushing_flumazenil_IV_2); + category = "surgery"; items[] = {"kat_syringe_kat_flumazenil_5ml_2"}; callbackSuccess = QFUNC(medication); sounds[] = {}; @@ -707,6 +712,7 @@ class ACE_Medical_Treatment_Actions { class syringe_kat_etomidate_5ml_1: syringe_kat_EACA_5ml_1 { displayName = CSTRING(push_etomidate_IV_1); displayNameProgress = CSTRING(pushing_etomidate_IV_1); + category = "surgery"; allowedSelections[] = {"Body", "LeftArm", "RightArm", "LeftLeg", "RightLeg"}; allowSelfTreatment = 1; medicRequired = QGVAR(medLvl_etomidate); @@ -719,6 +725,7 @@ class ACE_Medical_Treatment_Actions { class syringe_kat_etomidate_5ml_2: syringe_kat_etomidate_5ml_1 { displayName = CSTRING(push_etomidate_IV_2); displayNameProgress = CSTRING(pushing_flumazenil_IV_2); + category = "surgery"; items[] = {"kat_syringe_kat_etomidate_5ml_2"}; callbackSuccess = QFUNC(medication); sounds[] = {}; From cac1bf6cb59420264a7b79e6eeb8eb7fac9d6260 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Sat, 14 Sep 2024 03:31:04 -0700 Subject: [PATCH 068/149] Ketamine fixes --- .../pharma/functions/fnc_medicationLocal.sqf | 34 +++++++++++++------ .../fnc_treatmentAdvanced_KetamineLocal.sqf | 17 +++++----- 2 files changed, 32 insertions(+), 19 deletions(-) diff --git a/addons/pharma/functions/fnc_medicationLocal.sqf b/addons/pharma/functions/fnc_medicationLocal.sqf index 1440b1e0f..905b1f02e 100644 --- a/addons/pharma/functions/fnc_medicationLocal.sqf +++ b/addons/pharma/functions/fnc_medicationLocal.sqf @@ -111,23 +111,35 @@ TRACE_3("adjustments",_heartRateChange,_painReduce,_viscosityChange); //Change Alpha Factor [_patient, _alphaFactor] call FUNC(alphaAction); +if ([QGVAR(AMS_Enabled)] call CBA_settings_fnc_get) then { -_medicationParts = (_className select [13, count _className - 13]) splitString "_"; + private _medicationParts = (_className splitString "_"); -if (count _medicationParts > 4) then { - _medicationName = _medicationParts select 4; + if (count _medicationParts > 4) then { + _medicationName = _medicationParts select 2; - if (_medicationName in ["lorazepam","EACA","TXA","amiodarone","flumazenil"]) then { + if (_medicationName in ["lorazepam","EACA","TXA","amiodarone","flumazenil"]) then { [format ["kat_pharma_%1Local", toLower _medicationName], [_patient, _bodyPart], _patient] call CBA_fnc_targetEvent; - }; + }; - if (_medicationName in ["ketamine","atropine"]) then { + if (_medicationName in ["ketamine","atropine"]) then { [format ["kat_pharma_%1Local", toLower _medicationName], [_patient, _bodyPart, _classname], _patient] call CBA_fnc_targetEvent; - }; + }; - if (_medicationName in ["fentanyl","morphine","nalbuphine"]) then { + if (_medicationName in ["fentanyl","morphine","nalbuphine"]) then { [format ["kat_pharma_%1Local", toLower _medicationName], [_patient, _bodyPart, _opioidRelief], _patient] call CBA_fnc_targetEvent; + }; + + } else { + diag_log format ["Unexpected _className format: %1", _className]; + }; + } else { + + if (_className in ["Lorazepam","Ketamine","EACA","TXA","Atropine","Amiodarone","Flumazenil"]) then { + [format ["kat_pharma_%1Local", toLower _className], [_patient, _bodyPart], _patient] call CBA_fnc_targetEvent; }; -} else { - diag_log format ["Unexpected _className format: %1", _className]; -}; + + if (_className in ["Fentanyl","Morphine","Nalbuphine"]) then { + [format ["kat_pharma_%1Local", toLower _className], [_patient, _bodyPart, _opioidRelief], _patient] call CBA_fnc_targetEvent; + }; +}; \ No newline at end of file diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_KetamineLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_KetamineLocal.sqf index f95bf942e..260d7496a 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_KetamineLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_KetamineLocal.sqf @@ -10,7 +10,7 @@ * None * * Example: - * [player, leftLeg, syringe_kat_ketamine_5ml_2] call kat_pharma_fnc_ketamineLocal; + * [player, leftLeg, syringe_kat_ketamine_5ml_2] call kat_pharma_fnc_treatmentAdvanced_ketamineLocal; * * Public: No */ @@ -20,6 +20,14 @@ params ["_patient", "_bodyPart", "_classname"]; if !(alive _target) exitWith {}; +if (_classname isEqualTo "syringe_kat_ketamine_5ml_2") then { + _patient setVariable [QEGVAR(surgery,sedated), true, true]; + [_patient, true] call ACEFUNC(medical,setUnconscious); + + [{ + _patient setVariable ["kat_surgery_sedated", false, true]; + }, 90] call CBA_fnc_waitAndExecute; +}; if (ACE_Player != _target) exitWith {}; if (GVAR(chromatic_aberration_checkbox_ketamine)) then { [{ @@ -63,10 +71,3 @@ if (GVAR(chromatic_aberration_checkbox_ketamine)) then { }, [_target], 60] call CBA_fnc_waitAndExecute; // chroma start after 60s }; - -if (_classname isEqualTo "syringe_kat_ketamine_5ml_2") then { - _patient setVariable [QEGVAR(surgery,sedated), true, true]; - [_patient, true] call ACEFUNC(medical,setUnconscious); - - [[_patient setVariable [QEGVAR(surgery,sedated), false, true]], 90] call CBA_fnc_waitAndExecute; -}; From f542aeddf6f89700e24f8f25f7dcfba8aff0c25b Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Sat, 14 Sep 2024 04:46:11 -0700 Subject: [PATCH 069/149] coding sucks --- addons/pharma/XEH_PREP.hpp | 4 ++- addons/pharma/XEH_postInit.sqf | 1 + addons/pharma/functions/fnc_checkIVType.sqf | 36 +++++++++++++++++++ .../fnc_treatmentAdvanced_KetamineLocal.sqf | 13 ++----- ...reatmentAdvanced_KetamineSedationLocal.sqf | 28 +++++++++++++++ 5 files changed, 71 insertions(+), 11 deletions(-) create mode 100644 addons/pharma/functions/fnc_checkIVType.sqf create mode 100644 addons/pharma/functions/fnc_treatmentAdvanced_KetamineSedationLocal.sqf diff --git a/addons/pharma/XEH_PREP.hpp b/addons/pharma/XEH_PREP.hpp index dcbb216be..1f05a8eab 100644 --- a/addons/pharma/XEH_PREP.hpp +++ b/addons/pharma/XEH_PREP.hpp @@ -50,4 +50,6 @@ PREP(vehicleCheckDialysis); PREP(insertIVChildrenSyringe); PREP(insertIVPainChildrenSyringe); PREP(insertIMChildrenSyringe); -PREP(prepareSyringe); \ No newline at end of file +PREP(prepareSyringe); +PREP(checkIVType); +PREP(treatmentAdvanced_KetamineSedationLocal); \ No newline at end of file diff --git a/addons/pharma/XEH_postInit.sqf b/addons/pharma/XEH_postInit.sqf index 4ff370185..6aa958988 100644 --- a/addons/pharma/XEH_postInit.sqf +++ b/addons/pharma/XEH_postInit.sqf @@ -16,6 +16,7 @@ [QGVAR(pervitinLocal), LINKFUNC(treatmentAdvanced_PervitinLocal)] call CBA_fnc_addEventHandler; [QGVAR(pervitinPP), LINKFUNC(pervitinPP)] call CBA_fnc_addEventHandler; [QGVAR(ketamineLocal), LINKFUNC(treatmentAdvanced_KetamineLocal)] call CBA_fnc_addEventHandler; +[QGVAR(ketamineLocal), LINKFUNC(treatmentAdvanced_KetamineSedationLocal)] call CBA_fnc_addEventHandler; [QGVAR(fentanylLocal), LINKFUNC(treatmentAdvanced_FentanylLocal)] call CBA_fnc_addEventHandler; [QGVAR(caffeineLocal), LINKFUNC(treatmentAdvanced_CaffeineLocal)] call CBA_fnc_addEventHandler; diff --git a/addons/pharma/functions/fnc_checkIVType.sqf b/addons/pharma/functions/fnc_checkIVType.sqf new file mode 100644 index 000000000..6704c3ef0 --- /dev/null +++ b/addons/pharma/functions/fnc_checkIVType.sqf @@ -0,0 +1,36 @@ +#include "..\script_component.hpp" +/* + * Author: Cplhardcore + * Removes the IV from the patient on the given body part. + * Note: Patient may not be local + * + * Arguments: + * 0: Patient + * 1: Body Part + * + * Return Value: + * Check IV + * 0: No IV/IO + * 1: Fast IO + * 2: 16G IV + * 3: 14G IV + * 4: 20G IV + * + * Example: + * [cursorObject, "LeftLeg"] call kat_pharma_fnc_checkIVType; + * + * Public: No + */ + +params ["_patient", "_bodyPart"]; + +private _partIndex = ALL_BODY_PARTS find toLower _bodyPart; +private _IVarray = _patient getVariable [QGVAR(IV), [0,0,0,0,0,0]]; +private _IVactual = _IVarray select _partIndex; +private _return = 0; + +if (_IVactual > 0) then { + _return = _IVactual; +}; + +_return diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_KetamineLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_KetamineLocal.sqf index 260d7496a..902ddc96b 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_KetamineLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_KetamineLocal.sqf @@ -17,18 +17,11 @@ /// ChromAberration effect -params ["_patient", "_bodyPart", "_classname"]; +params ["_target"]; if !(alive _target) exitWith {}; -if (_classname isEqualTo "syringe_kat_ketamine_5ml_2") then { - _patient setVariable [QEGVAR(surgery,sedated), true, true]; - [_patient, true] call ACEFUNC(medical,setUnconscious); - - [{ - _patient setVariable ["kat_surgery_sedated", false, true]; - }, 90] call CBA_fnc_waitAndExecute; -}; if (ACE_Player != _target) exitWith {}; + if (GVAR(chromatic_aberration_checkbox_ketamine)) then { [{ params ["_target"]; @@ -70,4 +63,4 @@ if (GVAR(chromatic_aberration_checkbox_ketamine)) then { }; }, [_target], 60] call CBA_fnc_waitAndExecute; // chroma start after 60s -}; +}; \ No newline at end of file diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_KetamineSedationLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_KetamineSedationLocal.sqf new file mode 100644 index 000000000..7e3254b50 --- /dev/null +++ b/addons/pharma/functions/fnc_treatmentAdvanced_KetamineSedationLocal.sqf @@ -0,0 +1,28 @@ +#include "..\script_component.hpp" +/* + * Author: Cplhardcore + * Sedates the patient + * + * Arguments: + * 0: Patient + * 1: bodypart + * 2 classname + * + * Return Value: + * None + * + * Example: + * [player, leftLeg, syringe_kat_ketamine_5ml_2] call kat_pharma_fnc_treatmentAdvanced_ketamineLocal; + * + * Public: No + */ + +params ["_patient", "_bodyPart", "_classname"]; +if !(_classname isEqualTo "syringe_kat_ketamine_5ml_2") exitWith {}; + +_patient setVariable [QEGVAR(surgery,sedated), true, true]; +[_patient, true] call ACEFUNC(medical,setUnconscious); + +[{ + _patient setVariable ["kat_surgery_sedated", false, true]; +}, 90] call CBA_fnc_waitAndExecute; From fe7e2418d527597a53c4b24db911c12b48175680 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Thu, 19 Sep 2024 17:18:20 -0700 Subject: [PATCH 070/149] cleanup --- addons/pharma/functions/fnc_applyIV.sqf | 40 ++++++++---------- .../functions/fnc_closedReductionLocal.sqf | 42 ++++++++----------- 2 files changed, 34 insertions(+), 48 deletions(-) diff --git a/addons/pharma/functions/fnc_applyIV.sqf b/addons/pharma/functions/fnc_applyIV.sqf index 20b60ca9e..92aedeb2b 100644 --- a/addons/pharma/functions/fnc_applyIV.sqf +++ b/addons/pharma/functions/fnc_applyIV.sqf @@ -69,29 +69,23 @@ switch (_usedItem) do { _IVrate set [_partIndex, 0.4]; _patient setVariable [QGVAR(IV), _IVarray, true]; _patient setVariable [QGVAR(IVrate), _IVrate, true]; - private _lidocaineCount = [_patient, "Lidocaine", false] call ACEFUNC(medical_status,getMedicationCount); - private _lidocaineCount51 = [_patient, "syringe_kat_lidocaine_5ml_1", false] call ACEFUNC(medical_status,getMedicationCount); - private _lidocaineCount52 = [_patient, "syringe_kat_lidocaine_5ml_2", false] call ACEFUNC(medical_status,getMedicationCount); - private _lidocaineCount101 = [_patient, "syringe_kat_lidocaine_10ml_1", false] call ACEFUNC(medical_status,getMedicationCount); - private _lidocaineCount102 = [_patient, "syringe_kat_lidocaine_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); - private _morphineCount = [_patient, "Morphine", false] call ACEFUNC(medical_status,getMedicationCount); - private _nalbuphineCount = [_patient, "Nalbuphine", false] call ACEFUNC(medical_status,getMedicationCount); - private _fentanylCount = [_patient, "Fentanyl", false] call ACEFUNC(medical_status,getMedicationCount); - private _ketamineCount = [_patient, "Ketamine", false] call ACEFUNC(medical_status,getMedicationCount); - private _nalbuphineCount51 = [_patient, "syringe_kat_nalbuphine_5ml_1", false] call ACEFUNC(medical_status,getMedicationCount); - private _fentanylCount51 = [_patient, "syringe_kat_fentanyl_5ml_1", false] call ACEFUNC(medical_status,getMedicationCount); - private _ketamineCount51 = [_patient, "syringe_kat_ketamine_5ml_1", false] call ACEFUNC(medical_status,getMedicationCount); - private _nalbuphineCount52 = [_patient, "syringe_kat_nalbuphine_5ml_2", false] call ACEFUNC(medical_status,getMedicationCount); - private _fentanylCount52 = [_patient, "syringe_kat_fentanyl_5ml_2", false] call ACEFUNC(medical_status,getMedicationCount); - private _ketamineCount52= [_patient, "syringe_kat_ketamine_5ml_2", false] call ACEFUNC(medical_status,getMedicationCount); - private _nalbuphineCount101 = [_patient, "syringe_kat_nalbuphine_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); - private _fentanylCount101 = [_patient, "syringe_kat_fentanyl_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); - private _ketamineCount101 = [_patient, "syringe_kat_ketamine_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); - private _nalbuphineCount102 = [_patient, "syringe_kat_nalbuphine_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); - private _fentanylCount102 = [_patient, "syringe_kat_fentanyl_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); - private _ketamineCount102 = [_patient, "syringe_kat_ketamine_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); - if (_lidocaineCount <= 0.6 && _morphineCount <= 0.6 && _nalbuphineCount <= 0.6 && _fentanylCount <= 0.6 && _ketamineCount <= 0.6 && _lidocaineCount51 <= 0.6 && _nalbuphineCount51 <= 0.6 && _fentanylCount51 <= 0.6 && _ketamineCount51 <= 0.6 &&_lidocaineCount52 <= 0.6 && _nalbuphineCount52 <= 0.6 && _fentanylCount52 <= 0.6 && _ketamineCount52 <= 0.6 && _lidocaineCount101 <= 0.6 && _nalbuphineCount101 <= 0.6 && _fentanylCount101 <= 0.6 && _ketamineCount101 <= 0.6 && _lidocaineCount102 <= 0.6 && _nalbuphineCount102 <= 0.6 && _fentanylCount102 <= 0.6 && _ketamineCount102 <= 0.6) then {[_patient, 0.8] call ACEFUNC(medical_status,adjustPainLevel)}; - + [ + private _medications = [ + ["Lidocaine", "syringe_kat_lidocaine_5ml_1", "syringe_kat_lidocaine_5ml_2", "syringe_kat_lidocaine_10ml_1", "syringe_kat_lidocaine_10ml_2"], + ["Morphine"], + ["Nalbuphine", "syringe_kat_nalbuphine_5ml_1", "syringe_kat_nalbuphine_5ml_2", "syringe_kat_nalbuphine_10ml_1", "syringe_kat_nalbuphine_10ml_2"], + ["Fentanyl", "syringe_kat_fentanyl_5ml_1", "syringe_kat_fentanyl_5ml_2", "syringe_kat_fentanyl_10ml_1", "syringe_kat_fentanyl_10ml_2"], + ["Ketamine", "syringe_kat_ketamine_5ml_1", "syringe_kat_ketamine_5ml_2", "syringe_kat_ketamine_10ml_1", "syringe_kat_ketamine_10ml_2"] + ]; + private _totalCheck = true; + { + private _medicationType = _x; + { + private _count = [_patient, _x, false] call ACEFUNC(medical_status, getMedicationCount); + if (_count > 0.6) exitWith { _totalCheck = false; }; + } forEach _medicationType; + } forEach _medications; + if (_totalCheck) then {[_patient, 0.8] call ACEFUNC(medical_status, adjustPainLevel);};]; [_patient, "activity", LSTRING(iv_log), [[_medic] call ACEFUNC(common,getName), "FAST IO"]] call ACEFUNC(medical_treatment,addToLog); [_patient, "FAST IO"] call ACEFUNC(medical_treatment,addToTriageCard);}; default {}; diff --git a/addons/surgery/functions/fnc_closedReductionLocal.sqf b/addons/surgery/functions/fnc_closedReductionLocal.sqf index 4656e1112..90a6ae236 100644 --- a/addons/surgery/functions/fnc_closedReductionLocal.sqf +++ b/addons/surgery/functions/fnc_closedReductionLocal.sqf @@ -22,31 +22,23 @@ params ["_medic", "_patient", "_bodyPart"]; private _part = ALL_BODY_PARTS find toLower _bodyPart; private _activeFracture = GET_FRACTURES(_patient); private _fractureArray = _patient getVariable [QGVAR(fractures), [0,0,0,0,0,0]]; -private _lidocaineCount = [_patient, "Lidocaine", false] call ACEFUNC(medical_status,getMedicationCount); -private _lidocaineCount51 = [_patient, "syringe_kat_lidocaine_5ml_1", false] call ACEFUNC(medical_status,getMedicationCount); -private _lidocaineCount52 = [_patient, "syringe_kat_lidocaine_5ml_2", false] call ACEFUNC(medical_status,getMedicationCount); -private _lidocaineCount101 = [_patient, "syringe_kat_lidocaine_10ml_1", false] call ACEFUNC(medical_status,getMedicationCount); -private _lidocaineCount102 = [_patient, "syringe_kat_lidocaine_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); -private _morphineCount = [_patient, "Morphine", false] call ACEFUNC(medical_status,getMedicationCount); -private _nalbuphineCount = [_patient, "Nalbuphine", false] call ACEFUNC(medical_status,getMedicationCount); -private _fentanylCount = [_patient, "Fentanyl", false] call ACEFUNC(medical_status,getMedicationCount); -private _ketamineCount = [_patient, "Ketamine", false] call ACEFUNC(medical_status,getMedicationCount); -private _nalbuphineCount51 = [_patient, "syringe_kat_nalbuphine_5ml_1", false] call ACEFUNC(medical_status,getMedicationCount); -private _fentanylCount51 = [_patient, "syringe_kat_fentanyl_5ml_1", false] call ACEFUNC(medical_status,getMedicationCount); -private _ketamineCount51 = [_patient, "syringe_kat_ketamine_5ml_1", false] call ACEFUNC(medical_status,getMedicationCount); -private _nalbuphineCount52 = [_patient, "syringe_kat_nalbuphine_5ml_2", false] call ACEFUNC(medical_status,getMedicationCount); -private _fentanylCount52 = [_patient, "syringe_kat_fentanyl_5ml_2", false] call ACEFUNC(medical_status,getMedicationCount); -private _ketamineCount52= [_patient, "syringe_kat_ketamine_5ml_2", false] call ACEFUNC(medical_status,getMedicationCount); -private _nalbuphineCount101 = [_patient, "syringe_kat_nalbuphine_10ml_1", false] call ACEFUNC(medical_status,getMedicationCount); -private _fentanylCount101 = [_patient, "syringe_kat_fentanyl_10ml_1", false] call ACEFUNC(medical_status,getMedicationCount); -private _ketamineCount101 = [_patient, "syringe_kat_ketamine_10ml_1", false] call ACEFUNC(medical_status,getMedicationCount); -private _nalbuphineCount102 = [_patient, "syringe_kat_nalbuphine_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); -private _fentanylCount102 = [_patient, "syringe_kat_fentanyl_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); -private _ketamineCount102 = [_patient, "syringe_kat_ketamine_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); -if (_lidocaineCount <= 0.6 && _morphineCount <= 0.8 && _nalbuphineCount <= 0.8 && _fentanylCount <= 0.8 && _ketamineCount <= 0.8 && _lidocaineCount51 <= 0.6 && _nalbuphineCount51 <= 0.8 && _fentanylCount51 <= 0.8 && _ketamineCount51 <= 0.8 &&_lidocaineCount52 <= 0.6 && _nalbuphineCount52 <= 0.8 && _fentanylCount52 <= 0.8 && _ketamineCount52 <= 0.8 && _lidocaineCount101 <= 0.6 && _nalbuphineCount101 <= 0.8 && _fentanylCount101 <= 0.8 && _ketamineCount101 <= 0.8 && _lidocaineCount102 <= 0.6 && _nalbuphineCount102 <= 0.8 && _fentanylCount102 <= 0.8 && _ketamineCount102 <= 0.8) then { - private _pain = random [0.7, 0.8, 0.9]; - [_patient, _pain] call ACEFUNC(medical_status,adjustPainLevel); -}; +[ +private _medications = [ + ["Lidocaine", "syringe_kat_lidocaine_5ml_1", "syringe_kat_lidocaine_5ml_2", "syringe_kat_lidocaine_10ml_1", "syringe_kat_lidocaine_10ml_2"], + ["Morphine"], + ["Nalbuphine", "syringe_kat_nalbuphine_5ml_1", "syringe_kat_nalbuphine_5ml_2", "syringe_kat_nalbuphine_10ml_1", "syringe_kat_nalbuphine_10ml_2"], + ["Fentanyl", "syringe_kat_fentanyl_5ml_1", "syringe_kat_fentanyl_5ml_2", "syringe_kat_fentanyl_10ml_1", "syringe_kat_fentanyl_10ml_2"], + ["Ketamine", "syringe_kat_ketamine_5ml_1", "syringe_kat_ketamine_5ml_2", "syringe_kat_ketamine_10ml_1", "syringe_kat_ketamine_10ml_2"] + ]; + private _totalCheck = true; + { + private _medicationType = _x; + { + private _count = [_patient, _x, false] call ACEFUNC(medical_status, getMedicationCount); + if (_count > 0.6) exitWith { _totalCheck = false; }; + } forEach _medicationType; + } forEach _medications; + if (_totalCheck) then {[_patient, 0.8] call ACEFUNC(medical_status, adjustPainLevel);};]; playSound3D [QPATHTOF_SOUND(sounds\reduction.wav), _patient, false, getPosASL _patient, 8, 1, 15]; From d7046c5ebad0353b953f33e36d13dc2db74b105f Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Thu, 19 Sep 2024 17:24:00 -0700 Subject: [PATCH 071/149] woops --- addons/pharma/functions/fnc_applyIV.sqf | 13 ++++++------- .../surgery/functions/fnc_closedReductionLocal.sqf | 13 ++++++------- 2 files changed, 12 insertions(+), 14 deletions(-) diff --git a/addons/pharma/functions/fnc_applyIV.sqf b/addons/pharma/functions/fnc_applyIV.sqf index 92aedeb2b..821c76a35 100644 --- a/addons/pharma/functions/fnc_applyIV.sqf +++ b/addons/pharma/functions/fnc_applyIV.sqf @@ -70,13 +70,12 @@ switch (_usedItem) do { _patient setVariable [QGVAR(IV), _IVarray, true]; _patient setVariable [QGVAR(IVrate), _IVrate, true]; [ - private _medications = [ - ["Lidocaine", "syringe_kat_lidocaine_5ml_1", "syringe_kat_lidocaine_5ml_2", "syringe_kat_lidocaine_10ml_1", "syringe_kat_lidocaine_10ml_2"], - ["Morphine"], - ["Nalbuphine", "syringe_kat_nalbuphine_5ml_1", "syringe_kat_nalbuphine_5ml_2", "syringe_kat_nalbuphine_10ml_1", "syringe_kat_nalbuphine_10ml_2"], - ["Fentanyl", "syringe_kat_fentanyl_5ml_1", "syringe_kat_fentanyl_5ml_2", "syringe_kat_fentanyl_10ml_1", "syringe_kat_fentanyl_10ml_2"], - ["Ketamine", "syringe_kat_ketamine_5ml_1", "syringe_kat_ketamine_5ml_2", "syringe_kat_ketamine_10ml_1", "syringe_kat_ketamine_10ml_2"] - ]; + private _medications = []; + _medications pushBack ["Lidocaine", "syringe_kat_lidocaine_5ml_1", "syringe_kat_lidocaine_5ml_2", "syringe_kat_lidocaine_10ml_1", "syringe_kat_lidocaine_10ml_2"]; + _medications pushBack ["Morphine"]; + _medications pushBack ["Nalbuphine", "syringe_kat_nalbuphine_5ml_1", "syringe_kat_nalbuphine_5ml_2", "syringe_kat_nalbuphine_10ml_1", "syringe_kat_nalbuphine_10ml_2"]; + _medications pushBack ["Fentanyl", "syringe_kat_fentanyl_5ml_1", "syringe_kat_fentanyl_5ml_2", "syringe_kat_fentanyl_10ml_1", "syringe_kat_fentanyl_10ml_2"]; + _medications pushBack ["Ketamine", "syringe_kat_ketamine_5ml_1", "syringe_kat_ketamine_5ml_2", "syringe_kat_ketamine_10ml_1", "syringe_kat_ketamine_10ml_2"]; private _totalCheck = true; { private _medicationType = _x; diff --git a/addons/surgery/functions/fnc_closedReductionLocal.sqf b/addons/surgery/functions/fnc_closedReductionLocal.sqf index 90a6ae236..fa78cde7b 100644 --- a/addons/surgery/functions/fnc_closedReductionLocal.sqf +++ b/addons/surgery/functions/fnc_closedReductionLocal.sqf @@ -23,13 +23,12 @@ private _part = ALL_BODY_PARTS find toLower _bodyPart; private _activeFracture = GET_FRACTURES(_patient); private _fractureArray = _patient getVariable [QGVAR(fractures), [0,0,0,0,0,0]]; [ -private _medications = [ - ["Lidocaine", "syringe_kat_lidocaine_5ml_1", "syringe_kat_lidocaine_5ml_2", "syringe_kat_lidocaine_10ml_1", "syringe_kat_lidocaine_10ml_2"], - ["Morphine"], - ["Nalbuphine", "syringe_kat_nalbuphine_5ml_1", "syringe_kat_nalbuphine_5ml_2", "syringe_kat_nalbuphine_10ml_1", "syringe_kat_nalbuphine_10ml_2"], - ["Fentanyl", "syringe_kat_fentanyl_5ml_1", "syringe_kat_fentanyl_5ml_2", "syringe_kat_fentanyl_10ml_1", "syringe_kat_fentanyl_10ml_2"], - ["Ketamine", "syringe_kat_ketamine_5ml_1", "syringe_kat_ketamine_5ml_2", "syringe_kat_ketamine_10ml_1", "syringe_kat_ketamine_10ml_2"] - ]; + private _medications = []; + _medications pushBack ["Lidocaine", "syringe_kat_lidocaine_5ml_1", "syringe_kat_lidocaine_5ml_2", "syringe_kat_lidocaine_10ml_1", "syringe_kat_lidocaine_10ml_2"]; + _medications pushBack ["Morphine"]; + _medications pushBack ["Nalbuphine", "syringe_kat_nalbuphine_5ml_1", "syringe_kat_nalbuphine_5ml_2", "syringe_kat_nalbuphine_10ml_1", "syringe_kat_nalbuphine_10ml_2"]; + _medications pushBack ["Fentanyl", "syringe_kat_fentanyl_5ml_1", "syringe_kat_fentanyl_5ml_2", "syringe_kat_fentanyl_10ml_1", "syringe_kat_fentanyl_10ml_2"]; + _medications pushBack ["Ketamine", "syringe_kat_ketamine_5ml_1", "syringe_kat_ketamine_5ml_2", "syringe_kat_ketamine_10ml_1", "syringe_kat_ketamine_10ml_2"]; private _totalCheck = true; { private _medicationType = _x; From 0e2e2a7c161c3ce7b82d3f44f72e90ceb454f448 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Thu, 19 Sep 2024 17:27:32 -0700 Subject: [PATCH 072/149] weee --- addons/pharma/functions/fnc_applyIV.sqf | 12 ++++++------ .../surgery/functions/fnc_closedReductionLocal.sqf | 12 ++++++------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/addons/pharma/functions/fnc_applyIV.sqf b/addons/pharma/functions/fnc_applyIV.sqf index 821c76a35..110cc2ce5 100644 --- a/addons/pharma/functions/fnc_applyIV.sqf +++ b/addons/pharma/functions/fnc_applyIV.sqf @@ -70,12 +70,12 @@ switch (_usedItem) do { _patient setVariable [QGVAR(IV), _IVarray, true]; _patient setVariable [QGVAR(IVrate), _IVrate, true]; [ - private _medications = []; - _medications pushBack ["Lidocaine", "syringe_kat_lidocaine_5ml_1", "syringe_kat_lidocaine_5ml_2", "syringe_kat_lidocaine_10ml_1", "syringe_kat_lidocaine_10ml_2"]; - _medications pushBack ["Morphine"]; - _medications pushBack ["Nalbuphine", "syringe_kat_nalbuphine_5ml_1", "syringe_kat_nalbuphine_5ml_2", "syringe_kat_nalbuphine_10ml_1", "syringe_kat_nalbuphine_10ml_2"]; - _medications pushBack ["Fentanyl", "syringe_kat_fentanyl_5ml_1", "syringe_kat_fentanyl_5ml_2", "syringe_kat_fentanyl_10ml_1", "syringe_kat_fentanyl_10ml_2"]; - _medications pushBack ["Ketamine", "syringe_kat_ketamine_5ml_1", "syringe_kat_ketamine_5ml_2", "syringe_kat_ketamine_10ml_1", "syringe_kat_ketamine_10ml_2"]; + _medications = [ + ["Lidocaine", "syringe_kat_lidocaine_5ml_1", "syringe_kat_lidocaine_5ml_2", "syringe_kat_lidocaine_10ml_1", "syringe_kat_lidocaine_10ml_2"], + ["Morphine"], + ["Nalbuphine", "syringe_kat_nalbuphine_5ml_1", "syringe_kat_nalbuphine_5ml_2", "syringe_kat_nalbuphine_10ml_1", "syringe_kat_nalbuphine_10ml_2"], + ["Fentanyl", "syringe_kat_fentanyl_5ml_1", "syringe_kat_fentanyl_5ml_2", "syringe_kat_fentanyl_10ml_1", "syringe_kat_fentanyl_10ml_2"], + ["Ketamine", "syringe_kat_ketamine_5ml_1", "syringe_kat_ketamine_5ml_2", "syringe_kat_ketamine_10ml_1", "syringe_kat_ketamine_10ml_2"]]; private _totalCheck = true; { private _medicationType = _x; diff --git a/addons/surgery/functions/fnc_closedReductionLocal.sqf b/addons/surgery/functions/fnc_closedReductionLocal.sqf index fa78cde7b..14ad91165 100644 --- a/addons/surgery/functions/fnc_closedReductionLocal.sqf +++ b/addons/surgery/functions/fnc_closedReductionLocal.sqf @@ -23,12 +23,12 @@ private _part = ALL_BODY_PARTS find toLower _bodyPart; private _activeFracture = GET_FRACTURES(_patient); private _fractureArray = _patient getVariable [QGVAR(fractures), [0,0,0,0,0,0]]; [ - private _medications = []; - _medications pushBack ["Lidocaine", "syringe_kat_lidocaine_5ml_1", "syringe_kat_lidocaine_5ml_2", "syringe_kat_lidocaine_10ml_1", "syringe_kat_lidocaine_10ml_2"]; - _medications pushBack ["Morphine"]; - _medications pushBack ["Nalbuphine", "syringe_kat_nalbuphine_5ml_1", "syringe_kat_nalbuphine_5ml_2", "syringe_kat_nalbuphine_10ml_1", "syringe_kat_nalbuphine_10ml_2"]; - _medications pushBack ["Fentanyl", "syringe_kat_fentanyl_5ml_1", "syringe_kat_fentanyl_5ml_2", "syringe_kat_fentanyl_10ml_1", "syringe_kat_fentanyl_10ml_2"]; - _medications pushBack ["Ketamine", "syringe_kat_ketamine_5ml_1", "syringe_kat_ketamine_5ml_2", "syringe_kat_ketamine_10ml_1", "syringe_kat_ketamine_10ml_2"]; + _medications = [ + ["Lidocaine", "syringe_kat_lidocaine_5ml_1", "syringe_kat_lidocaine_5ml_2", "syringe_kat_lidocaine_10ml_1", "syringe_kat_lidocaine_10ml_2"], + ["Morphine"], + ["Nalbuphine", "syringe_kat_nalbuphine_5ml_1", "syringe_kat_nalbuphine_5ml_2", "syringe_kat_nalbuphine_10ml_1", "syringe_kat_nalbuphine_10ml_2"], + ["Fentanyl", "syringe_kat_fentanyl_5ml_1", "syringe_kat_fentanyl_5ml_2", "syringe_kat_fentanyl_10ml_1", "syringe_kat_fentanyl_10ml_2"], + ["Ketamine", "syringe_kat_ketamine_5ml_1", "syringe_kat_ketamine_5ml_2", "syringe_kat_ketamine_10ml_1", "syringe_kat_ketamine_10ml_2"]]; private _totalCheck = true; { private _medicationType = _x; From fa0e3f7198e6a3c9534a7e6d4cdcab24d7ef80fc Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Thu, 19 Sep 2024 17:31:58 -0700 Subject: [PATCH 073/149] try again --- addons/pharma/functions/fnc_applyIV.sqf | 17 +++++----- .../functions/fnc_closedReductionLocal.sqf | 31 +++++++++---------- 2 files changed, 23 insertions(+), 25 deletions(-) diff --git a/addons/pharma/functions/fnc_applyIV.sqf b/addons/pharma/functions/fnc_applyIV.sqf index 110cc2ce5..5e233fcf8 100644 --- a/addons/pharma/functions/fnc_applyIV.sqf +++ b/addons/pharma/functions/fnc_applyIV.sqf @@ -69,14 +69,13 @@ switch (_usedItem) do { _IVrate set [_partIndex, 0.4]; _patient setVariable [QGVAR(IV), _IVarray, true]; _patient setVariable [QGVAR(IVrate), _IVrate, true]; - [ - _medications = [ - ["Lidocaine", "syringe_kat_lidocaine_5ml_1", "syringe_kat_lidocaine_5ml_2", "syringe_kat_lidocaine_10ml_1", "syringe_kat_lidocaine_10ml_2"], - ["Morphine"], - ["Nalbuphine", "syringe_kat_nalbuphine_5ml_1", "syringe_kat_nalbuphine_5ml_2", "syringe_kat_nalbuphine_10ml_1", "syringe_kat_nalbuphine_10ml_2"], - ["Fentanyl", "syringe_kat_fentanyl_5ml_1", "syringe_kat_fentanyl_5ml_2", "syringe_kat_fentanyl_10ml_1", "syringe_kat_fentanyl_10ml_2"], - ["Ketamine", "syringe_kat_ketamine_5ml_1", "syringe_kat_ketamine_5ml_2", "syringe_kat_ketamine_10ml_1", "syringe_kat_ketamine_10ml_2"]]; - private _totalCheck = true; + private _medications = []; + _medications pushBack ["Lidocaine", "syringe_kat_lidocaine_5ml_1", "syringe_kat_lidocaine_5ml_2", "syringe_kat_lidocaine_10ml_1", "syringe_kat_lidocaine_10ml_2"]; + _medications pushBack ["Morphine"]; + _medications pushBack ["Nalbuphine", "syringe_kat_nalbuphine_5ml_1", "syringe_kat_nalbuphine_5ml_2", "syringe_kat_nalbuphine_10ml_1", "syringe_kat_nalbuphine_10ml_2"]; + _medications pushBack ["Fentanyl", "syringe_kat_fentanyl_5ml_1", "syringe_kat_fentanyl_5ml_2", "syringe_kat_fentanyl_10ml_1", "syringe_kat_fentanyl_10ml_2"]; + _medications pushBack ["Ketamine", "syringe_kat_ketamine_5ml_1", "syringe_kat_ketamine_5ml_2", "syringe_kat_ketamine_10ml_1", "syringe_kat_ketamine_10ml_2"]; + private _totalCheck = true; { private _medicationType = _x; { @@ -84,7 +83,7 @@ switch (_usedItem) do { if (_count > 0.6) exitWith { _totalCheck = false; }; } forEach _medicationType; } forEach _medications; - if (_totalCheck) then {[_patient, 0.8] call ACEFUNC(medical_status, adjustPainLevel);};]; + if (_totalCheck) then {[_patient, 0.8] call ACEFUNC(medical_status, adjustPainLevel);}; [_patient, "activity", LSTRING(iv_log), [[_medic] call ACEFUNC(common,getName), "FAST IO"]] call ACEFUNC(medical_treatment,addToLog); [_patient, "FAST IO"] call ACEFUNC(medical_treatment,addToTriageCard);}; default {}; diff --git a/addons/surgery/functions/fnc_closedReductionLocal.sqf b/addons/surgery/functions/fnc_closedReductionLocal.sqf index 14ad91165..2e880c055 100644 --- a/addons/surgery/functions/fnc_closedReductionLocal.sqf +++ b/addons/surgery/functions/fnc_closedReductionLocal.sqf @@ -22,22 +22,21 @@ params ["_medic", "_patient", "_bodyPart"]; private _part = ALL_BODY_PARTS find toLower _bodyPart; private _activeFracture = GET_FRACTURES(_patient); private _fractureArray = _patient getVariable [QGVAR(fractures), [0,0,0,0,0,0]]; -[ - _medications = [ - ["Lidocaine", "syringe_kat_lidocaine_5ml_1", "syringe_kat_lidocaine_5ml_2", "syringe_kat_lidocaine_10ml_1", "syringe_kat_lidocaine_10ml_2"], - ["Morphine"], - ["Nalbuphine", "syringe_kat_nalbuphine_5ml_1", "syringe_kat_nalbuphine_5ml_2", "syringe_kat_nalbuphine_10ml_1", "syringe_kat_nalbuphine_10ml_2"], - ["Fentanyl", "syringe_kat_fentanyl_5ml_1", "syringe_kat_fentanyl_5ml_2", "syringe_kat_fentanyl_10ml_1", "syringe_kat_fentanyl_10ml_2"], - ["Ketamine", "syringe_kat_ketamine_5ml_1", "syringe_kat_ketamine_5ml_2", "syringe_kat_ketamine_10ml_1", "syringe_kat_ketamine_10ml_2"]]; - private _totalCheck = true; - { - private _medicationType = _x; - { - private _count = [_patient, _x, false] call ACEFUNC(medical_status, getMedicationCount); - if (_count > 0.6) exitWith { _totalCheck = false; }; - } forEach _medicationType; - } forEach _medications; - if (_totalCheck) then {[_patient, 0.8] call ACEFUNC(medical_status, adjustPainLevel);};]; +private _medications = []; + _medications pushBack ["Lidocaine", "syringe_kat_lidocaine_5ml_1", "syringe_kat_lidocaine_5ml_2", "syringe_kat_lidocaine_10ml_1", "syringe_kat_lidocaine_10ml_2"]; + _medications pushBack ["Morphine"]; + _medications pushBack ["Nalbuphine", "syringe_kat_nalbuphine_5ml_1", "syringe_kat_nalbuphine_5ml_2", "syringe_kat_nalbuphine_10ml_1", "syringe_kat_nalbuphine_10ml_2"]; + _medications pushBack ["Fentanyl", "syringe_kat_fentanyl_5ml_1", "syringe_kat_fentanyl_5ml_2", "syringe_kat_fentanyl_10ml_1", "syringe_kat_fentanyl_10ml_2"]; + _medications pushBack ["Ketamine", "syringe_kat_ketamine_5ml_1", "syringe_kat_ketamine_5ml_2", "syringe_kat_ketamine_10ml_1", "syringe_kat_ketamine_10ml_2"]; + private _totalCheck = true; + { + private _medicationType = _x; + { + private _count = [_patient, _x, false] call ACEFUNC(medical_status, getMedicationCount); + if (_count > 0.8) exitWith { _totalCheck = false; }; + } forEach _medicationType; + } forEach _medications; + if (_totalCheck) then {[_patient, 0.8] call ACEFUNC(medical_status, adjustPainLevel);}; playSound3D [QPATHTOF_SOUND(sounds\reduction.wav), _patient, false, getPosASL _patient, 8, 1, 15]; From cdc1af9f3a5820ddab248fd8c9c23db7be5b9665 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Thu, 19 Sep 2024 17:18:20 -0700 Subject: [PATCH 074/149] woops cleanup weee try again --- addons/pharma/functions/fnc_applyIV.sqf | 38 +++++++----------- .../functions/fnc_closedReductionLocal.sqf | 40 +++++++------------ 2 files changed, 30 insertions(+), 48 deletions(-) diff --git a/addons/pharma/functions/fnc_applyIV.sqf b/addons/pharma/functions/fnc_applyIV.sqf index 20b60ca9e..5e233fcf8 100644 --- a/addons/pharma/functions/fnc_applyIV.sqf +++ b/addons/pharma/functions/fnc_applyIV.sqf @@ -69,29 +69,21 @@ switch (_usedItem) do { _IVrate set [_partIndex, 0.4]; _patient setVariable [QGVAR(IV), _IVarray, true]; _patient setVariable [QGVAR(IVrate), _IVrate, true]; - private _lidocaineCount = [_patient, "Lidocaine", false] call ACEFUNC(medical_status,getMedicationCount); - private _lidocaineCount51 = [_patient, "syringe_kat_lidocaine_5ml_1", false] call ACEFUNC(medical_status,getMedicationCount); - private _lidocaineCount52 = [_patient, "syringe_kat_lidocaine_5ml_2", false] call ACEFUNC(medical_status,getMedicationCount); - private _lidocaineCount101 = [_patient, "syringe_kat_lidocaine_10ml_1", false] call ACEFUNC(medical_status,getMedicationCount); - private _lidocaineCount102 = [_patient, "syringe_kat_lidocaine_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); - private _morphineCount = [_patient, "Morphine", false] call ACEFUNC(medical_status,getMedicationCount); - private _nalbuphineCount = [_patient, "Nalbuphine", false] call ACEFUNC(medical_status,getMedicationCount); - private _fentanylCount = [_patient, "Fentanyl", false] call ACEFUNC(medical_status,getMedicationCount); - private _ketamineCount = [_patient, "Ketamine", false] call ACEFUNC(medical_status,getMedicationCount); - private _nalbuphineCount51 = [_patient, "syringe_kat_nalbuphine_5ml_1", false] call ACEFUNC(medical_status,getMedicationCount); - private _fentanylCount51 = [_patient, "syringe_kat_fentanyl_5ml_1", false] call ACEFUNC(medical_status,getMedicationCount); - private _ketamineCount51 = [_patient, "syringe_kat_ketamine_5ml_1", false] call ACEFUNC(medical_status,getMedicationCount); - private _nalbuphineCount52 = [_patient, "syringe_kat_nalbuphine_5ml_2", false] call ACEFUNC(medical_status,getMedicationCount); - private _fentanylCount52 = [_patient, "syringe_kat_fentanyl_5ml_2", false] call ACEFUNC(medical_status,getMedicationCount); - private _ketamineCount52= [_patient, "syringe_kat_ketamine_5ml_2", false] call ACEFUNC(medical_status,getMedicationCount); - private _nalbuphineCount101 = [_patient, "syringe_kat_nalbuphine_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); - private _fentanylCount101 = [_patient, "syringe_kat_fentanyl_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); - private _ketamineCount101 = [_patient, "syringe_kat_ketamine_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); - private _nalbuphineCount102 = [_patient, "syringe_kat_nalbuphine_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); - private _fentanylCount102 = [_patient, "syringe_kat_fentanyl_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); - private _ketamineCount102 = [_patient, "syringe_kat_ketamine_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); - if (_lidocaineCount <= 0.6 && _morphineCount <= 0.6 && _nalbuphineCount <= 0.6 && _fentanylCount <= 0.6 && _ketamineCount <= 0.6 && _lidocaineCount51 <= 0.6 && _nalbuphineCount51 <= 0.6 && _fentanylCount51 <= 0.6 && _ketamineCount51 <= 0.6 &&_lidocaineCount52 <= 0.6 && _nalbuphineCount52 <= 0.6 && _fentanylCount52 <= 0.6 && _ketamineCount52 <= 0.6 && _lidocaineCount101 <= 0.6 && _nalbuphineCount101 <= 0.6 && _fentanylCount101 <= 0.6 && _ketamineCount101 <= 0.6 && _lidocaineCount102 <= 0.6 && _nalbuphineCount102 <= 0.6 && _fentanylCount102 <= 0.6 && _ketamineCount102 <= 0.6) then {[_patient, 0.8] call ACEFUNC(medical_status,adjustPainLevel)}; - + private _medications = []; + _medications pushBack ["Lidocaine", "syringe_kat_lidocaine_5ml_1", "syringe_kat_lidocaine_5ml_2", "syringe_kat_lidocaine_10ml_1", "syringe_kat_lidocaine_10ml_2"]; + _medications pushBack ["Morphine"]; + _medications pushBack ["Nalbuphine", "syringe_kat_nalbuphine_5ml_1", "syringe_kat_nalbuphine_5ml_2", "syringe_kat_nalbuphine_10ml_1", "syringe_kat_nalbuphine_10ml_2"]; + _medications pushBack ["Fentanyl", "syringe_kat_fentanyl_5ml_1", "syringe_kat_fentanyl_5ml_2", "syringe_kat_fentanyl_10ml_1", "syringe_kat_fentanyl_10ml_2"]; + _medications pushBack ["Ketamine", "syringe_kat_ketamine_5ml_1", "syringe_kat_ketamine_5ml_2", "syringe_kat_ketamine_10ml_1", "syringe_kat_ketamine_10ml_2"]; + private _totalCheck = true; + { + private _medicationType = _x; + { + private _count = [_patient, _x, false] call ACEFUNC(medical_status, getMedicationCount); + if (_count > 0.6) exitWith { _totalCheck = false; }; + } forEach _medicationType; + } forEach _medications; + if (_totalCheck) then {[_patient, 0.8] call ACEFUNC(medical_status, adjustPainLevel);}; [_patient, "activity", LSTRING(iv_log), [[_medic] call ACEFUNC(common,getName), "FAST IO"]] call ACEFUNC(medical_treatment,addToLog); [_patient, "FAST IO"] call ACEFUNC(medical_treatment,addToTriageCard);}; default {}; diff --git a/addons/surgery/functions/fnc_closedReductionLocal.sqf b/addons/surgery/functions/fnc_closedReductionLocal.sqf index 4656e1112..2e880c055 100644 --- a/addons/surgery/functions/fnc_closedReductionLocal.sqf +++ b/addons/surgery/functions/fnc_closedReductionLocal.sqf @@ -22,31 +22,21 @@ params ["_medic", "_patient", "_bodyPart"]; private _part = ALL_BODY_PARTS find toLower _bodyPart; private _activeFracture = GET_FRACTURES(_patient); private _fractureArray = _patient getVariable [QGVAR(fractures), [0,0,0,0,0,0]]; -private _lidocaineCount = [_patient, "Lidocaine", false] call ACEFUNC(medical_status,getMedicationCount); -private _lidocaineCount51 = [_patient, "syringe_kat_lidocaine_5ml_1", false] call ACEFUNC(medical_status,getMedicationCount); -private _lidocaineCount52 = [_patient, "syringe_kat_lidocaine_5ml_2", false] call ACEFUNC(medical_status,getMedicationCount); -private _lidocaineCount101 = [_patient, "syringe_kat_lidocaine_10ml_1", false] call ACEFUNC(medical_status,getMedicationCount); -private _lidocaineCount102 = [_patient, "syringe_kat_lidocaine_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); -private _morphineCount = [_patient, "Morphine", false] call ACEFUNC(medical_status,getMedicationCount); -private _nalbuphineCount = [_patient, "Nalbuphine", false] call ACEFUNC(medical_status,getMedicationCount); -private _fentanylCount = [_patient, "Fentanyl", false] call ACEFUNC(medical_status,getMedicationCount); -private _ketamineCount = [_patient, "Ketamine", false] call ACEFUNC(medical_status,getMedicationCount); -private _nalbuphineCount51 = [_patient, "syringe_kat_nalbuphine_5ml_1", false] call ACEFUNC(medical_status,getMedicationCount); -private _fentanylCount51 = [_patient, "syringe_kat_fentanyl_5ml_1", false] call ACEFUNC(medical_status,getMedicationCount); -private _ketamineCount51 = [_patient, "syringe_kat_ketamine_5ml_1", false] call ACEFUNC(medical_status,getMedicationCount); -private _nalbuphineCount52 = [_patient, "syringe_kat_nalbuphine_5ml_2", false] call ACEFUNC(medical_status,getMedicationCount); -private _fentanylCount52 = [_patient, "syringe_kat_fentanyl_5ml_2", false] call ACEFUNC(medical_status,getMedicationCount); -private _ketamineCount52= [_patient, "syringe_kat_ketamine_5ml_2", false] call ACEFUNC(medical_status,getMedicationCount); -private _nalbuphineCount101 = [_patient, "syringe_kat_nalbuphine_10ml_1", false] call ACEFUNC(medical_status,getMedicationCount); -private _fentanylCount101 = [_patient, "syringe_kat_fentanyl_10ml_1", false] call ACEFUNC(medical_status,getMedicationCount); -private _ketamineCount101 = [_patient, "syringe_kat_ketamine_10ml_1", false] call ACEFUNC(medical_status,getMedicationCount); -private _nalbuphineCount102 = [_patient, "syringe_kat_nalbuphine_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); -private _fentanylCount102 = [_patient, "syringe_kat_fentanyl_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); -private _ketamineCount102 = [_patient, "syringe_kat_ketamine_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); -if (_lidocaineCount <= 0.6 && _morphineCount <= 0.8 && _nalbuphineCount <= 0.8 && _fentanylCount <= 0.8 && _ketamineCount <= 0.8 && _lidocaineCount51 <= 0.6 && _nalbuphineCount51 <= 0.8 && _fentanylCount51 <= 0.8 && _ketamineCount51 <= 0.8 &&_lidocaineCount52 <= 0.6 && _nalbuphineCount52 <= 0.8 && _fentanylCount52 <= 0.8 && _ketamineCount52 <= 0.8 && _lidocaineCount101 <= 0.6 && _nalbuphineCount101 <= 0.8 && _fentanylCount101 <= 0.8 && _ketamineCount101 <= 0.8 && _lidocaineCount102 <= 0.6 && _nalbuphineCount102 <= 0.8 && _fentanylCount102 <= 0.8 && _ketamineCount102 <= 0.8) then { - private _pain = random [0.7, 0.8, 0.9]; - [_patient, _pain] call ACEFUNC(medical_status,adjustPainLevel); -}; +private _medications = []; + _medications pushBack ["Lidocaine", "syringe_kat_lidocaine_5ml_1", "syringe_kat_lidocaine_5ml_2", "syringe_kat_lidocaine_10ml_1", "syringe_kat_lidocaine_10ml_2"]; + _medications pushBack ["Morphine"]; + _medications pushBack ["Nalbuphine", "syringe_kat_nalbuphine_5ml_1", "syringe_kat_nalbuphine_5ml_2", "syringe_kat_nalbuphine_10ml_1", "syringe_kat_nalbuphine_10ml_2"]; + _medications pushBack ["Fentanyl", "syringe_kat_fentanyl_5ml_1", "syringe_kat_fentanyl_5ml_2", "syringe_kat_fentanyl_10ml_1", "syringe_kat_fentanyl_10ml_2"]; + _medications pushBack ["Ketamine", "syringe_kat_ketamine_5ml_1", "syringe_kat_ketamine_5ml_2", "syringe_kat_ketamine_10ml_1", "syringe_kat_ketamine_10ml_2"]; + private _totalCheck = true; + { + private _medicationType = _x; + { + private _count = [_patient, _x, false] call ACEFUNC(medical_status, getMedicationCount); + if (_count > 0.8) exitWith { _totalCheck = false; }; + } forEach _medicationType; + } forEach _medications; + if (_totalCheck) then {[_patient, 0.8] call ACEFUNC(medical_status, adjustPainLevel);}; playSound3D [QPATHTOF_SOUND(sounds\reduction.wav), _patient, false, getPosASL _patient, 8, 1, 15]; From d702c684bac6c6c5509ccfdec00bcd23c4efff80 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Thu, 19 Sep 2024 17:35:23 -0700 Subject: [PATCH 075/149] Revert "woops" This reverts commit cdc1af9f3a5820ddab248fd8c9c23db7be5b9665. --- addons/pharma/functions/fnc_applyIV.sqf | 38 +++++++++++------- .../functions/fnc_closedReductionLocal.sqf | 40 ++++++++++++------- 2 files changed, 48 insertions(+), 30 deletions(-) diff --git a/addons/pharma/functions/fnc_applyIV.sqf b/addons/pharma/functions/fnc_applyIV.sqf index 5e233fcf8..20b60ca9e 100644 --- a/addons/pharma/functions/fnc_applyIV.sqf +++ b/addons/pharma/functions/fnc_applyIV.sqf @@ -69,21 +69,29 @@ switch (_usedItem) do { _IVrate set [_partIndex, 0.4]; _patient setVariable [QGVAR(IV), _IVarray, true]; _patient setVariable [QGVAR(IVrate), _IVrate, true]; - private _medications = []; - _medications pushBack ["Lidocaine", "syringe_kat_lidocaine_5ml_1", "syringe_kat_lidocaine_5ml_2", "syringe_kat_lidocaine_10ml_1", "syringe_kat_lidocaine_10ml_2"]; - _medications pushBack ["Morphine"]; - _medications pushBack ["Nalbuphine", "syringe_kat_nalbuphine_5ml_1", "syringe_kat_nalbuphine_5ml_2", "syringe_kat_nalbuphine_10ml_1", "syringe_kat_nalbuphine_10ml_2"]; - _medications pushBack ["Fentanyl", "syringe_kat_fentanyl_5ml_1", "syringe_kat_fentanyl_5ml_2", "syringe_kat_fentanyl_10ml_1", "syringe_kat_fentanyl_10ml_2"]; - _medications pushBack ["Ketamine", "syringe_kat_ketamine_5ml_1", "syringe_kat_ketamine_5ml_2", "syringe_kat_ketamine_10ml_1", "syringe_kat_ketamine_10ml_2"]; - private _totalCheck = true; - { - private _medicationType = _x; - { - private _count = [_patient, _x, false] call ACEFUNC(medical_status, getMedicationCount); - if (_count > 0.6) exitWith { _totalCheck = false; }; - } forEach _medicationType; - } forEach _medications; - if (_totalCheck) then {[_patient, 0.8] call ACEFUNC(medical_status, adjustPainLevel);}; + private _lidocaineCount = [_patient, "Lidocaine", false] call ACEFUNC(medical_status,getMedicationCount); + private _lidocaineCount51 = [_patient, "syringe_kat_lidocaine_5ml_1", false] call ACEFUNC(medical_status,getMedicationCount); + private _lidocaineCount52 = [_patient, "syringe_kat_lidocaine_5ml_2", false] call ACEFUNC(medical_status,getMedicationCount); + private _lidocaineCount101 = [_patient, "syringe_kat_lidocaine_10ml_1", false] call ACEFUNC(medical_status,getMedicationCount); + private _lidocaineCount102 = [_patient, "syringe_kat_lidocaine_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); + private _morphineCount = [_patient, "Morphine", false] call ACEFUNC(medical_status,getMedicationCount); + private _nalbuphineCount = [_patient, "Nalbuphine", false] call ACEFUNC(medical_status,getMedicationCount); + private _fentanylCount = [_patient, "Fentanyl", false] call ACEFUNC(medical_status,getMedicationCount); + private _ketamineCount = [_patient, "Ketamine", false] call ACEFUNC(medical_status,getMedicationCount); + private _nalbuphineCount51 = [_patient, "syringe_kat_nalbuphine_5ml_1", false] call ACEFUNC(medical_status,getMedicationCount); + private _fentanylCount51 = [_patient, "syringe_kat_fentanyl_5ml_1", false] call ACEFUNC(medical_status,getMedicationCount); + private _ketamineCount51 = [_patient, "syringe_kat_ketamine_5ml_1", false] call ACEFUNC(medical_status,getMedicationCount); + private _nalbuphineCount52 = [_patient, "syringe_kat_nalbuphine_5ml_2", false] call ACEFUNC(medical_status,getMedicationCount); + private _fentanylCount52 = [_patient, "syringe_kat_fentanyl_5ml_2", false] call ACEFUNC(medical_status,getMedicationCount); + private _ketamineCount52= [_patient, "syringe_kat_ketamine_5ml_2", false] call ACEFUNC(medical_status,getMedicationCount); + private _nalbuphineCount101 = [_patient, "syringe_kat_nalbuphine_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); + private _fentanylCount101 = [_patient, "syringe_kat_fentanyl_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); + private _ketamineCount101 = [_patient, "syringe_kat_ketamine_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); + private _nalbuphineCount102 = [_patient, "syringe_kat_nalbuphine_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); + private _fentanylCount102 = [_patient, "syringe_kat_fentanyl_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); + private _ketamineCount102 = [_patient, "syringe_kat_ketamine_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); + if (_lidocaineCount <= 0.6 && _morphineCount <= 0.6 && _nalbuphineCount <= 0.6 && _fentanylCount <= 0.6 && _ketamineCount <= 0.6 && _lidocaineCount51 <= 0.6 && _nalbuphineCount51 <= 0.6 && _fentanylCount51 <= 0.6 && _ketamineCount51 <= 0.6 &&_lidocaineCount52 <= 0.6 && _nalbuphineCount52 <= 0.6 && _fentanylCount52 <= 0.6 && _ketamineCount52 <= 0.6 && _lidocaineCount101 <= 0.6 && _nalbuphineCount101 <= 0.6 && _fentanylCount101 <= 0.6 && _ketamineCount101 <= 0.6 && _lidocaineCount102 <= 0.6 && _nalbuphineCount102 <= 0.6 && _fentanylCount102 <= 0.6 && _ketamineCount102 <= 0.6) then {[_patient, 0.8] call ACEFUNC(medical_status,adjustPainLevel)}; + [_patient, "activity", LSTRING(iv_log), [[_medic] call ACEFUNC(common,getName), "FAST IO"]] call ACEFUNC(medical_treatment,addToLog); [_patient, "FAST IO"] call ACEFUNC(medical_treatment,addToTriageCard);}; default {}; diff --git a/addons/surgery/functions/fnc_closedReductionLocal.sqf b/addons/surgery/functions/fnc_closedReductionLocal.sqf index 2e880c055..4656e1112 100644 --- a/addons/surgery/functions/fnc_closedReductionLocal.sqf +++ b/addons/surgery/functions/fnc_closedReductionLocal.sqf @@ -22,21 +22,31 @@ params ["_medic", "_patient", "_bodyPart"]; private _part = ALL_BODY_PARTS find toLower _bodyPart; private _activeFracture = GET_FRACTURES(_patient); private _fractureArray = _patient getVariable [QGVAR(fractures), [0,0,0,0,0,0]]; -private _medications = []; - _medications pushBack ["Lidocaine", "syringe_kat_lidocaine_5ml_1", "syringe_kat_lidocaine_5ml_2", "syringe_kat_lidocaine_10ml_1", "syringe_kat_lidocaine_10ml_2"]; - _medications pushBack ["Morphine"]; - _medications pushBack ["Nalbuphine", "syringe_kat_nalbuphine_5ml_1", "syringe_kat_nalbuphine_5ml_2", "syringe_kat_nalbuphine_10ml_1", "syringe_kat_nalbuphine_10ml_2"]; - _medications pushBack ["Fentanyl", "syringe_kat_fentanyl_5ml_1", "syringe_kat_fentanyl_5ml_2", "syringe_kat_fentanyl_10ml_1", "syringe_kat_fentanyl_10ml_2"]; - _medications pushBack ["Ketamine", "syringe_kat_ketamine_5ml_1", "syringe_kat_ketamine_5ml_2", "syringe_kat_ketamine_10ml_1", "syringe_kat_ketamine_10ml_2"]; - private _totalCheck = true; - { - private _medicationType = _x; - { - private _count = [_patient, _x, false] call ACEFUNC(medical_status, getMedicationCount); - if (_count > 0.8) exitWith { _totalCheck = false; }; - } forEach _medicationType; - } forEach _medications; - if (_totalCheck) then {[_patient, 0.8] call ACEFUNC(medical_status, adjustPainLevel);}; +private _lidocaineCount = [_patient, "Lidocaine", false] call ACEFUNC(medical_status,getMedicationCount); +private _lidocaineCount51 = [_patient, "syringe_kat_lidocaine_5ml_1", false] call ACEFUNC(medical_status,getMedicationCount); +private _lidocaineCount52 = [_patient, "syringe_kat_lidocaine_5ml_2", false] call ACEFUNC(medical_status,getMedicationCount); +private _lidocaineCount101 = [_patient, "syringe_kat_lidocaine_10ml_1", false] call ACEFUNC(medical_status,getMedicationCount); +private _lidocaineCount102 = [_patient, "syringe_kat_lidocaine_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); +private _morphineCount = [_patient, "Morphine", false] call ACEFUNC(medical_status,getMedicationCount); +private _nalbuphineCount = [_patient, "Nalbuphine", false] call ACEFUNC(medical_status,getMedicationCount); +private _fentanylCount = [_patient, "Fentanyl", false] call ACEFUNC(medical_status,getMedicationCount); +private _ketamineCount = [_patient, "Ketamine", false] call ACEFUNC(medical_status,getMedicationCount); +private _nalbuphineCount51 = [_patient, "syringe_kat_nalbuphine_5ml_1", false] call ACEFUNC(medical_status,getMedicationCount); +private _fentanylCount51 = [_patient, "syringe_kat_fentanyl_5ml_1", false] call ACEFUNC(medical_status,getMedicationCount); +private _ketamineCount51 = [_patient, "syringe_kat_ketamine_5ml_1", false] call ACEFUNC(medical_status,getMedicationCount); +private _nalbuphineCount52 = [_patient, "syringe_kat_nalbuphine_5ml_2", false] call ACEFUNC(medical_status,getMedicationCount); +private _fentanylCount52 = [_patient, "syringe_kat_fentanyl_5ml_2", false] call ACEFUNC(medical_status,getMedicationCount); +private _ketamineCount52= [_patient, "syringe_kat_ketamine_5ml_2", false] call ACEFUNC(medical_status,getMedicationCount); +private _nalbuphineCount101 = [_patient, "syringe_kat_nalbuphine_10ml_1", false] call ACEFUNC(medical_status,getMedicationCount); +private _fentanylCount101 = [_patient, "syringe_kat_fentanyl_10ml_1", false] call ACEFUNC(medical_status,getMedicationCount); +private _ketamineCount101 = [_patient, "syringe_kat_ketamine_10ml_1", false] call ACEFUNC(medical_status,getMedicationCount); +private _nalbuphineCount102 = [_patient, "syringe_kat_nalbuphine_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); +private _fentanylCount102 = [_patient, "syringe_kat_fentanyl_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); +private _ketamineCount102 = [_patient, "syringe_kat_ketamine_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); +if (_lidocaineCount <= 0.6 && _morphineCount <= 0.8 && _nalbuphineCount <= 0.8 && _fentanylCount <= 0.8 && _ketamineCount <= 0.8 && _lidocaineCount51 <= 0.6 && _nalbuphineCount51 <= 0.8 && _fentanylCount51 <= 0.8 && _ketamineCount51 <= 0.8 &&_lidocaineCount52 <= 0.6 && _nalbuphineCount52 <= 0.8 && _fentanylCount52 <= 0.8 && _ketamineCount52 <= 0.8 && _lidocaineCount101 <= 0.6 && _nalbuphineCount101 <= 0.8 && _fentanylCount101 <= 0.8 && _ketamineCount101 <= 0.8 && _lidocaineCount102 <= 0.6 && _nalbuphineCount102 <= 0.8 && _fentanylCount102 <= 0.8 && _ketamineCount102 <= 0.8) then { + private _pain = random [0.7, 0.8, 0.9]; + [_patient, _pain] call ACEFUNC(medical_status,adjustPainLevel); +}; playSound3D [QPATHTOF_SOUND(sounds\reduction.wav), _patient, false, getPosASL _patient, 8, 1, 15]; From 43823a6892bd11c52246d39c2423b53e8bfc2fe3 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Thu, 19 Sep 2024 17:36:19 -0700 Subject: [PATCH 076/149] Revert "Merge branch 'Medication_Rework' of https://github.com/Cplhardcore/KAM into Medication_Rework" This reverts commit d951500f9caf3e623805454c7a1d20938db49f68, reversing changes made to d702c684bac6c6c5509ccfdec00bcd23c4efff80. --- addons/pharma/functions/fnc_applyIV.sqf | 38 +++++++++++------- .../functions/fnc_closedReductionLocal.sqf | 40 ++++++++++++------- 2 files changed, 48 insertions(+), 30 deletions(-) diff --git a/addons/pharma/functions/fnc_applyIV.sqf b/addons/pharma/functions/fnc_applyIV.sqf index 5e233fcf8..20b60ca9e 100644 --- a/addons/pharma/functions/fnc_applyIV.sqf +++ b/addons/pharma/functions/fnc_applyIV.sqf @@ -69,21 +69,29 @@ switch (_usedItem) do { _IVrate set [_partIndex, 0.4]; _patient setVariable [QGVAR(IV), _IVarray, true]; _patient setVariable [QGVAR(IVrate), _IVrate, true]; - private _medications = []; - _medications pushBack ["Lidocaine", "syringe_kat_lidocaine_5ml_1", "syringe_kat_lidocaine_5ml_2", "syringe_kat_lidocaine_10ml_1", "syringe_kat_lidocaine_10ml_2"]; - _medications pushBack ["Morphine"]; - _medications pushBack ["Nalbuphine", "syringe_kat_nalbuphine_5ml_1", "syringe_kat_nalbuphine_5ml_2", "syringe_kat_nalbuphine_10ml_1", "syringe_kat_nalbuphine_10ml_2"]; - _medications pushBack ["Fentanyl", "syringe_kat_fentanyl_5ml_1", "syringe_kat_fentanyl_5ml_2", "syringe_kat_fentanyl_10ml_1", "syringe_kat_fentanyl_10ml_2"]; - _medications pushBack ["Ketamine", "syringe_kat_ketamine_5ml_1", "syringe_kat_ketamine_5ml_2", "syringe_kat_ketamine_10ml_1", "syringe_kat_ketamine_10ml_2"]; - private _totalCheck = true; - { - private _medicationType = _x; - { - private _count = [_patient, _x, false] call ACEFUNC(medical_status, getMedicationCount); - if (_count > 0.6) exitWith { _totalCheck = false; }; - } forEach _medicationType; - } forEach _medications; - if (_totalCheck) then {[_patient, 0.8] call ACEFUNC(medical_status, adjustPainLevel);}; + private _lidocaineCount = [_patient, "Lidocaine", false] call ACEFUNC(medical_status,getMedicationCount); + private _lidocaineCount51 = [_patient, "syringe_kat_lidocaine_5ml_1", false] call ACEFUNC(medical_status,getMedicationCount); + private _lidocaineCount52 = [_patient, "syringe_kat_lidocaine_5ml_2", false] call ACEFUNC(medical_status,getMedicationCount); + private _lidocaineCount101 = [_patient, "syringe_kat_lidocaine_10ml_1", false] call ACEFUNC(medical_status,getMedicationCount); + private _lidocaineCount102 = [_patient, "syringe_kat_lidocaine_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); + private _morphineCount = [_patient, "Morphine", false] call ACEFUNC(medical_status,getMedicationCount); + private _nalbuphineCount = [_patient, "Nalbuphine", false] call ACEFUNC(medical_status,getMedicationCount); + private _fentanylCount = [_patient, "Fentanyl", false] call ACEFUNC(medical_status,getMedicationCount); + private _ketamineCount = [_patient, "Ketamine", false] call ACEFUNC(medical_status,getMedicationCount); + private _nalbuphineCount51 = [_patient, "syringe_kat_nalbuphine_5ml_1", false] call ACEFUNC(medical_status,getMedicationCount); + private _fentanylCount51 = [_patient, "syringe_kat_fentanyl_5ml_1", false] call ACEFUNC(medical_status,getMedicationCount); + private _ketamineCount51 = [_patient, "syringe_kat_ketamine_5ml_1", false] call ACEFUNC(medical_status,getMedicationCount); + private _nalbuphineCount52 = [_patient, "syringe_kat_nalbuphine_5ml_2", false] call ACEFUNC(medical_status,getMedicationCount); + private _fentanylCount52 = [_patient, "syringe_kat_fentanyl_5ml_2", false] call ACEFUNC(medical_status,getMedicationCount); + private _ketamineCount52= [_patient, "syringe_kat_ketamine_5ml_2", false] call ACEFUNC(medical_status,getMedicationCount); + private _nalbuphineCount101 = [_patient, "syringe_kat_nalbuphine_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); + private _fentanylCount101 = [_patient, "syringe_kat_fentanyl_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); + private _ketamineCount101 = [_patient, "syringe_kat_ketamine_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); + private _nalbuphineCount102 = [_patient, "syringe_kat_nalbuphine_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); + private _fentanylCount102 = [_patient, "syringe_kat_fentanyl_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); + private _ketamineCount102 = [_patient, "syringe_kat_ketamine_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); + if (_lidocaineCount <= 0.6 && _morphineCount <= 0.6 && _nalbuphineCount <= 0.6 && _fentanylCount <= 0.6 && _ketamineCount <= 0.6 && _lidocaineCount51 <= 0.6 && _nalbuphineCount51 <= 0.6 && _fentanylCount51 <= 0.6 && _ketamineCount51 <= 0.6 &&_lidocaineCount52 <= 0.6 && _nalbuphineCount52 <= 0.6 && _fentanylCount52 <= 0.6 && _ketamineCount52 <= 0.6 && _lidocaineCount101 <= 0.6 && _nalbuphineCount101 <= 0.6 && _fentanylCount101 <= 0.6 && _ketamineCount101 <= 0.6 && _lidocaineCount102 <= 0.6 && _nalbuphineCount102 <= 0.6 && _fentanylCount102 <= 0.6 && _ketamineCount102 <= 0.6) then {[_patient, 0.8] call ACEFUNC(medical_status,adjustPainLevel)}; + [_patient, "activity", LSTRING(iv_log), [[_medic] call ACEFUNC(common,getName), "FAST IO"]] call ACEFUNC(medical_treatment,addToLog); [_patient, "FAST IO"] call ACEFUNC(medical_treatment,addToTriageCard);}; default {}; diff --git a/addons/surgery/functions/fnc_closedReductionLocal.sqf b/addons/surgery/functions/fnc_closedReductionLocal.sqf index 2e880c055..4656e1112 100644 --- a/addons/surgery/functions/fnc_closedReductionLocal.sqf +++ b/addons/surgery/functions/fnc_closedReductionLocal.sqf @@ -22,21 +22,31 @@ params ["_medic", "_patient", "_bodyPart"]; private _part = ALL_BODY_PARTS find toLower _bodyPart; private _activeFracture = GET_FRACTURES(_patient); private _fractureArray = _patient getVariable [QGVAR(fractures), [0,0,0,0,0,0]]; -private _medications = []; - _medications pushBack ["Lidocaine", "syringe_kat_lidocaine_5ml_1", "syringe_kat_lidocaine_5ml_2", "syringe_kat_lidocaine_10ml_1", "syringe_kat_lidocaine_10ml_2"]; - _medications pushBack ["Morphine"]; - _medications pushBack ["Nalbuphine", "syringe_kat_nalbuphine_5ml_1", "syringe_kat_nalbuphine_5ml_2", "syringe_kat_nalbuphine_10ml_1", "syringe_kat_nalbuphine_10ml_2"]; - _medications pushBack ["Fentanyl", "syringe_kat_fentanyl_5ml_1", "syringe_kat_fentanyl_5ml_2", "syringe_kat_fentanyl_10ml_1", "syringe_kat_fentanyl_10ml_2"]; - _medications pushBack ["Ketamine", "syringe_kat_ketamine_5ml_1", "syringe_kat_ketamine_5ml_2", "syringe_kat_ketamine_10ml_1", "syringe_kat_ketamine_10ml_2"]; - private _totalCheck = true; - { - private _medicationType = _x; - { - private _count = [_patient, _x, false] call ACEFUNC(medical_status, getMedicationCount); - if (_count > 0.8) exitWith { _totalCheck = false; }; - } forEach _medicationType; - } forEach _medications; - if (_totalCheck) then {[_patient, 0.8] call ACEFUNC(medical_status, adjustPainLevel);}; +private _lidocaineCount = [_patient, "Lidocaine", false] call ACEFUNC(medical_status,getMedicationCount); +private _lidocaineCount51 = [_patient, "syringe_kat_lidocaine_5ml_1", false] call ACEFUNC(medical_status,getMedicationCount); +private _lidocaineCount52 = [_patient, "syringe_kat_lidocaine_5ml_2", false] call ACEFUNC(medical_status,getMedicationCount); +private _lidocaineCount101 = [_patient, "syringe_kat_lidocaine_10ml_1", false] call ACEFUNC(medical_status,getMedicationCount); +private _lidocaineCount102 = [_patient, "syringe_kat_lidocaine_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); +private _morphineCount = [_patient, "Morphine", false] call ACEFUNC(medical_status,getMedicationCount); +private _nalbuphineCount = [_patient, "Nalbuphine", false] call ACEFUNC(medical_status,getMedicationCount); +private _fentanylCount = [_patient, "Fentanyl", false] call ACEFUNC(medical_status,getMedicationCount); +private _ketamineCount = [_patient, "Ketamine", false] call ACEFUNC(medical_status,getMedicationCount); +private _nalbuphineCount51 = [_patient, "syringe_kat_nalbuphine_5ml_1", false] call ACEFUNC(medical_status,getMedicationCount); +private _fentanylCount51 = [_patient, "syringe_kat_fentanyl_5ml_1", false] call ACEFUNC(medical_status,getMedicationCount); +private _ketamineCount51 = [_patient, "syringe_kat_ketamine_5ml_1", false] call ACEFUNC(medical_status,getMedicationCount); +private _nalbuphineCount52 = [_patient, "syringe_kat_nalbuphine_5ml_2", false] call ACEFUNC(medical_status,getMedicationCount); +private _fentanylCount52 = [_patient, "syringe_kat_fentanyl_5ml_2", false] call ACEFUNC(medical_status,getMedicationCount); +private _ketamineCount52= [_patient, "syringe_kat_ketamine_5ml_2", false] call ACEFUNC(medical_status,getMedicationCount); +private _nalbuphineCount101 = [_patient, "syringe_kat_nalbuphine_10ml_1", false] call ACEFUNC(medical_status,getMedicationCount); +private _fentanylCount101 = [_patient, "syringe_kat_fentanyl_10ml_1", false] call ACEFUNC(medical_status,getMedicationCount); +private _ketamineCount101 = [_patient, "syringe_kat_ketamine_10ml_1", false] call ACEFUNC(medical_status,getMedicationCount); +private _nalbuphineCount102 = [_patient, "syringe_kat_nalbuphine_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); +private _fentanylCount102 = [_patient, "syringe_kat_fentanyl_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); +private _ketamineCount102 = [_patient, "syringe_kat_ketamine_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); +if (_lidocaineCount <= 0.6 && _morphineCount <= 0.8 && _nalbuphineCount <= 0.8 && _fentanylCount <= 0.8 && _ketamineCount <= 0.8 && _lidocaineCount51 <= 0.6 && _nalbuphineCount51 <= 0.8 && _fentanylCount51 <= 0.8 && _ketamineCount51 <= 0.8 &&_lidocaineCount52 <= 0.6 && _nalbuphineCount52 <= 0.8 && _fentanylCount52 <= 0.8 && _ketamineCount52 <= 0.8 && _lidocaineCount101 <= 0.6 && _nalbuphineCount101 <= 0.8 && _fentanylCount101 <= 0.8 && _ketamineCount101 <= 0.8 && _lidocaineCount102 <= 0.6 && _nalbuphineCount102 <= 0.8 && _fentanylCount102 <= 0.8 && _ketamineCount102 <= 0.8) then { + private _pain = random [0.7, 0.8, 0.9]; + [_patient, _pain] call ACEFUNC(medical_status,adjustPainLevel); +}; playSound3D [QPATHTOF_SOUND(sounds\reduction.wav), _patient, false, getPosASL _patient, 8, 1, 15]; From 395614c5bae4c1bbd4b7e9e39e67b39025434d57 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Mon, 30 Sep 2024 13:14:07 -0700 Subject: [PATCH 077/149] IV fixes and broken GUI --- addons/gui/XEH_PREP.hpp | 4 +- addons/gui/XEH_postInit.sqf | 2 + addons/gui/functions/fnc_onMenuOpen.sqf | 2 +- .../gui/functions/fnc_updateMedications.sqf | 63 ++++++++++++++ addons/gui/functions/fnc_updateSyringes.sqf | 32 +++++++ addons/gui/gui.hpp | 85 +++++++++++++++++++ addons/gui/gui_defines.hpp | 7 ++ addons/gui/stringtable.xml | 6 ++ .../pharma/ACE_Medical_Treatment_Actions.hpp | 4 +- addons/pharma/XEH_PREP.hpp | 3 +- addons/pharma/functions/fnc_checkIVType.sqf | 4 +- addons/pharma/functions/fnc_ivCondition.sqf | 33 +++++++ 12 files changed, 238 insertions(+), 7 deletions(-) create mode 100644 addons/gui/functions/fnc_updateMedications.sqf create mode 100644 addons/gui/functions/fnc_updateSyringes.sqf create mode 100644 addons/pharma/functions/fnc_ivCondition.sqf diff --git a/addons/gui/XEH_PREP.hpp b/addons/gui/XEH_PREP.hpp index 692458635..422ac237c 100644 --- a/addons/gui/XEH_PREP.hpp +++ b/addons/gui/XEH_PREP.hpp @@ -8,4 +8,6 @@ PREP(updateCategories); PREP(updateInjuryList); PREP(updateBodyImage); PREP(updateIVStatus); -PREP(updateABGStatus); \ No newline at end of file +PREP(updateABGStatus); +PREP(updateSyringes); +PREP(updateMedications); \ No newline at end of file diff --git a/addons/gui/XEH_postInit.sqf b/addons/gui/XEH_postInit.sqf index 49f230eac..b9a515628 100644 --- a/addons/gui/XEH_postInit.sqf +++ b/addons/gui/XEH_postInit.sqf @@ -1,3 +1,5 @@ #include "script_component.hpp" [QACEGVAR(medical_gui,logListAppended), LINKFUNC(logListAppended)] call CBA_fnc_addEventHandler; +[QACEGVAR(medical,medicalMenuOpened), LINKFUNC(updateMedications)] call CBA_fnc_addEventHandler; +[QACEGVAR(medical,medicalMenuOpened), LINKFUNC(updateSyringes)] call CBA_fnc_addEventHandler; diff --git a/addons/gui/functions/fnc_onMenuOpen.sqf b/addons/gui/functions/fnc_onMenuOpen.sqf index f04f8f3f3..6d3f2a974 100644 --- a/addons/gui/functions/fnc_onMenuOpen.sqf +++ b/addons/gui/functions/fnc_onMenuOpen.sqf @@ -102,4 +102,4 @@ if (ACEGVAR(medical_gui,target) == ACE_player) then { } else { _ctrl ctrlSetText QACEPATHTOF(medical_gui,data\categories\toggle_to_self.paa); _ctrl ctrlSetTooltip ACELLSTRING(medical_gui,ToggleToSelf); -}; +}; \ No newline at end of file diff --git a/addons/gui/functions/fnc_updateMedications.sqf b/addons/gui/functions/fnc_updateMedications.sqf new file mode 100644 index 000000000..fea06bd15 --- /dev/null +++ b/addons/gui/functions/fnc_updateMedications.sqf @@ -0,0 +1,63 @@ +#include "..\script_component.hpp" +/* + * Author: Cplhardcore + * Checks the medications in the players inventory and then populates the listbox with the medications, + * + * Arguments: + * 0: Target + * + * Return Value: + * None + * + * Example: + * [_player] call kat_medical_gui_fnc_updateMedication; + * + * Public: No + */ + +private _medications = [ + "ACE_morphine", + "ACE_epinephrine", + "kat_epinephrineIV" +]; + +// Function to get found medications +private _medicationsFound = { + params ["_medications"]; + private _inventory = items player; + private _found = []; + + // Check each item in the inventory + { + if (_x in _medications) then { + _found pushBack _x; + }; + } forEach _inventory; + + _found // Return the found items +}; +private _display = uiNamespace getVariable [QGVAR(menuDisplay), displayNull]; +private _listBox = _display displayCtrl 71305; +private _foundMedications = _medicationsFound call {}; +[_foundMedications, _listBox] call _populateListBox; +private _populateListBox = { + params ["_foundMedications", "_listBox"]; + + lbClear _listBox; + + { + private _classname = _x; + private _count = [player, _classname] call ace_common_fnc_getCountOfItem; // Fixed reference to player + + if (_count > 0) then { + private _config = configFile >> "CfgWeapons" >> _classname; + private _displayName = getText (_config >> "displayName"); + private _picture = getText (_config >> "picture"); + private _data = (_classname splitString "_") select 2; + + private _index = _listBox lbAdd _displayName; + _listBox lbSetPicture [_index, _picture]; + _listBox lbSetData [_index, _data]; + }; + } forEach _foundMedications; +}; \ No newline at end of file diff --git a/addons/gui/functions/fnc_updateSyringes.sqf b/addons/gui/functions/fnc_updateSyringes.sqf new file mode 100644 index 000000000..6f5d39bc3 --- /dev/null +++ b/addons/gui/functions/fnc_updateSyringes.sqf @@ -0,0 +1,32 @@ +#include "..\script_component.hpp" +/* + * Author: Cplhardcore + * Checks the syringes in the players inventory and then populates the listbox with the syringes, + * + * Arguments: + * 0: Target + * + * Return Value: + * None + * + * Example: + * [_target] call kat_medical_gui_fnc_updateSyringes; + * + * Public: No + */ +private _syringes = [ + "kat_10ml_syringe", + "kat_5ml_syringe" +]; +private _playerInventory = items player; +private _foundSyringes = []; +{ + if (_x in _syringes) then { + _foundSyringes pushBack _x; + }; +} forEach _playerInventory; +private _listBox = findDisplay 38580 displayCtrl 71303; +lbClear _listBox; +{ + _listBox lbAdd _x; +} forEach _foundSyringes; \ No newline at end of file diff --git a/addons/gui/gui.hpp b/addons/gui/gui.hpp index 9514c98f1..79d71bd33 100644 --- a/addons/gui/gui.hpp +++ b/addons/gui/gui.hpp @@ -151,6 +151,27 @@ class ACE_Medical_Menu { shadow = "true"; }; }; + class SYRINGEBackground: IVFlowBackground { + idc = IDC_SYRINGE_BACKGROUND; // LOOK HERE + x = QUOTE(POS_X(39.6)); + y = QUOTE(POS_Y(4.9)); + w = QUOTE(POS_W(9)); + h = QUOTE(POS_H(18.5)); + }; + class SYRINGETitle: IVFlowTitle { + idc = IDC_SYRINGE_TITLE; // LOOK HERE + text = CSTRING(SYRINGETitle); + x = QUOTE(POS_X(39.6)); + y = QUOTE(POS_Y(4.9)); + w = QUOTE(POS_W(9)); + h = QUOTE(POS_H(1)); + show = 1; + class Attributes { + color = "#E5E5E5"; + font = "RobotoCondensed"; + shadow = "true"; + }; + }; }; class controls { class HeadCover: RscStructuredText { @@ -585,5 +606,69 @@ class ACE_Medical_Menu { class BodyLabelRight: BodyLabelLeft { idc = IDC_SIDE_LABEL_RIGHT; }; + class SyringeTypeTitle: RscStructuredText { + idc = IDC_SYRINGE_TYPE_TITLE; // LOOK HERE + text = CSTRING(SyringeTitleList); + x = QUOTE(POS_X(40)); + y = QUOTE(POS_Y(5.9)); + w = QUOTE(POS_W(8)); + h = QUOTE(POS_H(1)); + colorBackground[] = {0, 0, 0, 0.5}; + show = 1; + class Attributes { + align = "center"; + valign = "bottom"; + color = "#E5E5E5"; + font = "RobotoCondensed"; + shadow = "false"; + }; + }; + class SyringeList: RscListBox { + idc = IDC_SYRINGE_TYPE_LIST; // LOOK HERE + x = QUOTE(POS_X(40)); + y = QUOTE(POS_Y(6.9)); + w = QUOTE(POS_W(8)); + h = QUOTE(POS_H(1.5)); + show = 1; + colorText[] = {1,1,1,1}; + colorSelect[] = {0,0,0,1}; + colorSelect2[] = {0,0,0,1}; + colorBackground[] = {0.2, 0.2, 0.2, 1}; + colorSelectBackground[] = {0.7,0.7,0.7,1}; + colorSelectBackground2[] = {0.7,0.7,0.7,1}; + sizeEx = QUOTE(GUI_GRID_H * 0.9 * NORMALIZE_SIZEEX); + }; + class MedicationTypeTitle: RscStructuredText { + idc = IDC_MEDICATION_TYPE_TITLE; // LOOK HERE + text = CSTRING(SyringeTitleList); + x = QUOTE(POS_X(40)); + y = QUOTE(POS_Y(8.9)); + w = QUOTE(POS_W(8)); + h = QUOTE(POS_H(1)); + colorBackground[] = {0, 0, 0, 0.5}; + show = 1; + class Attributes { + align = "center"; + valign = "bottom"; + color = "#E5E5E5"; + font = "RobotoCondensed"; + shadow = "false"; + }; + }; + class MedicationList: RscListBox { + idc = IDC_MEDICATION_TYPE_LIST; // LOOK HERE + x = QUOTE(POS_X(40)); + y = QUOTE(POS_Y(9.9)); + w = QUOTE(POS_W(8)); + h = QUOTE(POS_H(1.5)); + show = 1; + colorText[] = {1,1,1,1}; + colorSelect[] = {0,0,0,1}; + colorSelect2[] = {0,0,0,1}; + colorBackground[] = {0.2, 0.2, 0.2, 1}; + colorSelectBackground[] = {0.7,0.7,0.7,1}; + colorSelectBackground2[] = {0.7,0.7,0.7,1}; + sizeEx = QUOTE(GUI_GRID_H * 0.9 * NORMALIZE_SIZEEX); + }; }; }; diff --git a/addons/gui/gui_defines.hpp b/addons/gui/gui_defines.hpp index c37eedfeb..86d96b135 100644 --- a/addons/gui/gui_defines.hpp +++ b/addons/gui/gui_defines.hpp @@ -138,3 +138,10 @@ #define IDC_TEST_RESET 71207 #define IDC_ABG_BACKGROUND 71299 + +#define IDC_SYRINGE_TITLE 71300 +#define IDC_SYRINGE_BACKGROUND 71301 +#define IDC_SYRINGE_TYPE_TITLE 71302 +#define IDC_SYRINGE_TYPE_LIST 71303 +#define IDC_MEDICATION_TYPE_TITLE 71304 +#define IDC_MEDICATION_TYPE_LIST 71305 \ No newline at end of file diff --git a/addons/gui/stringtable.xml b/addons/gui/stringtable.xml index c409f1c66..b5b8c8c63 100644 --- a/addons/gui/stringtable.xml +++ b/addons/gui/stringtable.xml @@ -152,5 +152,11 @@ Reset + + Syringe Preparation + + + Syringe Type + diff --git a/addons/pharma/ACE_Medical_Treatment_Actions.hpp b/addons/pharma/ACE_Medical_Treatment_Actions.hpp index ba74b5744..2cfbb8033 100644 --- a/addons/pharma/ACE_Medical_Treatment_Actions.hpp +++ b/addons/pharma/ACE_Medical_Treatment_Actions.hpp @@ -138,7 +138,7 @@ class ACE_Medical_Treatment_Actions { medicRequired = QGVAR(medLvl_EACA); treatmentTime = QGVAR(treatmentTime_EACA); items[] = {"kat_EACA"}; - condition = QUOTE(!(GVAR(MedicationsRequireInsIV)) || FUNC(removeIV)); + condition = QUOTE(!(GVAR(MedicationsRequireInsIV)) || FUNC(ivCondition)); callbackSuccess = QFUNC(medication); sounds[] = {}; }; @@ -578,7 +578,7 @@ class ACE_Medical_Treatment_Actions { allowSelfTreatment = 1; medicRequired = QGVAR(medLvl_lidocaine); treatmentTime = QGVAR(treatmentTime_lidocaine); - condition = QUOTE(!(GVAR(MedicationsRequireInsIV)) || FUNC(removeIV)); + condition = QUOTE(!(GVAR(MedicationsRequireInsIV)) || FUNC(ivCondition)); items[] = {"kat_syringe_kat_lidocaine_5ml_1"}; callbackSuccess = QFUNC(medication); sounds[] = {}; diff --git a/addons/pharma/XEH_PREP.hpp b/addons/pharma/XEH_PREP.hpp index 1f05a8eab..274034d4a 100644 --- a/addons/pharma/XEH_PREP.hpp +++ b/addons/pharma/XEH_PREP.hpp @@ -52,4 +52,5 @@ PREP(insertIVPainChildrenSyringe); PREP(insertIMChildrenSyringe); PREP(prepareSyringe); PREP(checkIVType); -PREP(treatmentAdvanced_KetamineSedationLocal); \ No newline at end of file +PREP(treatmentAdvanced_KetamineSedationLocal); +PREP(ivCondition); \ No newline at end of file diff --git a/addons/pharma/functions/fnc_checkIVType.sqf b/addons/pharma/functions/fnc_checkIVType.sqf index 6704c3ef0..f376a1f5c 100644 --- a/addons/pharma/functions/fnc_checkIVType.sqf +++ b/addons/pharma/functions/fnc_checkIVType.sqf @@ -1,7 +1,7 @@ #include "..\script_component.hpp" /* * Author: Cplhardcore - * Removes the IV from the patient on the given body part. + * Checks the IV from the patient on the given body part. * Note: Patient may not be local * * Arguments: @@ -22,7 +22,7 @@ * Public: No */ -params ["_patient", "_bodyPart"]; +params ["_medic", "_patient", "_bodyPart"]; private _partIndex = ALL_BODY_PARTS find toLower _bodyPart; private _IVarray = _patient getVariable [QGVAR(IV), [0,0,0,0,0,0]]; diff --git a/addons/pharma/functions/fnc_ivCondition.sqf b/addons/pharma/functions/fnc_ivCondition.sqf new file mode 100644 index 000000000..7a74e8f88 --- /dev/null +++ b/addons/pharma/functions/fnc_ivCondition.sqf @@ -0,0 +1,33 @@ +#include "..\script_component.hpp" +/* + * Author: Cplhardcore + * Checks if an IV is present and medication can be pushed + * Note: Patient may not be local + * + * Arguments: + * 0: Medic + * 1: Patient + * 2: Body Part + * + * Return Value: + * Check IV Condition + * + * Example: + * [player, cursorObject, "LeftLeg"] call kat_pharma_fnc_ivCondition; + * + * Public: No + */ + +params ["_medic", "_patient", "_bodyPart"]; + +private _removeIV = [_medic, _patient, _bodyPart] call FUNC(removeIV); +private _ivType = [_medic, _patient, _bodyPart] call FUNC(checkIVType); +private _return = false; + +if (_removeIV == true && _ivType != 3) then { + _return = true; +} else { + _return = false; +}; + +_return \ No newline at end of file From 4c4fe1480b13304da958e6c8a146ea5870cfaaed Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Mon, 30 Sep 2024 13:50:31 -0700 Subject: [PATCH 078/149] wellp, im eepy, sleep --- addons/gui/XEH_postInit.sqf | 4 +- .../gui/functions/fnc_updateMedications.sqf | 22 ++++--- .../gui/functions/fnc_updateMedications1.sqf | 59 +++++++++++++++++++ 3 files changed, 75 insertions(+), 10 deletions(-) create mode 100644 addons/gui/functions/fnc_updateMedications1.sqf diff --git a/addons/gui/XEH_postInit.sqf b/addons/gui/XEH_postInit.sqf index b9a515628..bc66d6f35 100644 --- a/addons/gui/XEH_postInit.sqf +++ b/addons/gui/XEH_postInit.sqf @@ -1,5 +1,5 @@ #include "script_component.hpp" [QACEGVAR(medical_gui,logListAppended), LINKFUNC(logListAppended)] call CBA_fnc_addEventHandler; -[QACEGVAR(medical,medicalMenuOpened), LINKFUNC(updateMedications)] call CBA_fnc_addEventHandler; -[QACEGVAR(medical,medicalMenuOpened), LINKFUNC(updateSyringes)] call CBA_fnc_addEventHandler; +[QACEGVAR(medical,ace_medicalMenuOpened), LINKFUNC(updateMedications)] call CBA_fnc_addEventHandler; +[QACEGVAR(medical,ace_medicalMenuOpened), LINKFUNC(updateSyringes)] call CBA_fnc_addEventHandler; diff --git a/addons/gui/functions/fnc_updateMedications.sqf b/addons/gui/functions/fnc_updateMedications.sqf index fea06bd15..ed5bc678f 100644 --- a/addons/gui/functions/fnc_updateMedications.sqf +++ b/addons/gui/functions/fnc_updateMedications.sqf @@ -15,6 +15,8 @@ * Public: No */ +disableSerialization; + private _medications = [ "ACE_morphine", "ACE_epinephrine", @@ -26,29 +28,31 @@ private _medicationsFound = { params ["_medications"]; private _inventory = items player; private _found = []; - + // Check each item in the inventory { if (_x in _medications) then { _found pushBack _x; }; } forEach _inventory; - + _found // Return the found items }; -private _display = uiNamespace getVariable [QGVAR(menuDisplay), displayNull]; +private _display = uiNamespace getVariable ["ace_medical_gui_menuDisplay", displayNull]; private _listBox = _display displayCtrl 71305; -private _foundMedications = _medicationsFound call {}; -[_foundMedications, _listBox] call _populateListBox; +private _foundMedications = _medications call _medicationsFound; + private _populateListBox = { + disableSerialization; + params ["_foundMedications", "_listBox"]; - + lbClear _listBox; { private _classname = _x; private _count = [player, _classname] call ace_common_fnc_getCountOfItem; // Fixed reference to player - + if (_count > 0) then { private _config = configFile >> "CfgWeapons" >> _classname; private _displayName = getText (_config >> "displayName"); @@ -60,4 +64,6 @@ private _populateListBox = { _listBox lbSetData [_index, _data]; }; } forEach _foundMedications; -}; \ No newline at end of file +}; + +[_foundMedications, _listBox] call _populateListBox; \ No newline at end of file diff --git a/addons/gui/functions/fnc_updateMedications1.sqf b/addons/gui/functions/fnc_updateMedications1.sqf new file mode 100644 index 000000000..fec6afc7a --- /dev/null +++ b/addons/gui/functions/fnc_updateMedications1.sqf @@ -0,0 +1,59 @@ +#include "..\script_component.hpp" +/* + * Author: Cplhardcore + * Checks the medications in the players inventory and then populates the listbox with the medications, + * + * Arguments: + * 0: Target + * + * Return Value: + * None + * + * Example: + * [_player] call kat_medical_gui_fnc_updateMedication; + * + * Public: No + */ + +private _medications = [ + "ACE_morphine", + "ACE_epinephrine", + "kat_epinephrineIV" +]; + +private _medicationsFound = { + params ["_medications"]; + private _inventory = items player; + private _found = []; + { + if (_x in _medications) then { + _found pushBack _x; + }; + } forEach _inventory; + + _found +}; +private _display = uiNamespace getVariable [QACEGVAR(medical_gui,menuDisplay), displayNull]; +private _listBox = _display displayCtrl 71305; +private _foundMedications = [_medications] call _medicationsFound; +private _populateListBox = { + params ["_foundMedications", "_listBox"]; + + lbClear _listBox; + + { + private _classname = _x; + private _count = [player, _classname] call ace_common_fnc_getCountOfItem; + if (_count > 0) then { + private _config = configFile >> "CfgWeapons" >> _classname; + private _displayName = getText (_config >> "displayName"); + private _picture = getText (_config >> "picture"); + private _data = (_classname splitString "_") select 2; + + private _index = _listBox lbAdd _displayName; + _listBox lbSetPicture [_index, _picture]; + _listBox lbSetData [_index, _data]; + }; + } forEach _foundMedications; +}; +[_foundMedications, _listBox] call _populateListBox; \ No newline at end of file From 731464a1989fbc609a9e39ed876d58ce04cfb086 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Tue, 1 Oct 2024 11:41:37 -0700 Subject: [PATCH 079/149] well --- addons/gui/XEH_postInit.sqf | 2 - addons/gui/functions/fnc_onMenuOpen.sqf | 4 +- .../gui/functions/fnc_updateMedications.sqf | 42 ++++++------ .../gui/functions/fnc_updateMedications1.sqf | 59 ----------------- addons/gui/functions/fnc_updateSyringes.sqf | 65 +++++++++++++++---- addons/gui/gui.hpp | 27 ++------ addons/gui/stringtable.xml | 3 + 7 files changed, 86 insertions(+), 116 deletions(-) delete mode 100644 addons/gui/functions/fnc_updateMedications1.sqf diff --git a/addons/gui/XEH_postInit.sqf b/addons/gui/XEH_postInit.sqf index bc66d6f35..49f230eac 100644 --- a/addons/gui/XEH_postInit.sqf +++ b/addons/gui/XEH_postInit.sqf @@ -1,5 +1,3 @@ #include "script_component.hpp" [QACEGVAR(medical_gui,logListAppended), LINKFUNC(logListAppended)] call CBA_fnc_addEventHandler; -[QACEGVAR(medical,ace_medicalMenuOpened), LINKFUNC(updateMedications)] call CBA_fnc_addEventHandler; -[QACEGVAR(medical,ace_medicalMenuOpened), LINKFUNC(updateSyringes)] call CBA_fnc_addEventHandler; diff --git a/addons/gui/functions/fnc_onMenuOpen.sqf b/addons/gui/functions/fnc_onMenuOpen.sqf index 6d3f2a974..6b1f6258a 100644 --- a/addons/gui/functions/fnc_onMenuOpen.sqf +++ b/addons/gui/functions/fnc_onMenuOpen.sqf @@ -102,4 +102,6 @@ if (ACEGVAR(medical_gui,target) == ACE_player) then { } else { _ctrl ctrlSetText QACEPATHTOF(medical_gui,data\categories\toggle_to_self.paa); _ctrl ctrlSetTooltip ACELLSTRING(medical_gui,ToggleToSelf); -}; \ No newline at end of file +}; +[] call FUNC(updateMedications); +[] call FUNC(updateSyringes); \ No newline at end of file diff --git a/addons/gui/functions/fnc_updateMedications.sqf b/addons/gui/functions/fnc_updateMedications.sqf index ed5bc678f..36249203d 100644 --- a/addons/gui/functions/fnc_updateMedications.sqf +++ b/addons/gui/functions/fnc_updateMedications.sqf @@ -4,17 +4,17 @@ * Checks the medications in the players inventory and then populates the listbox with the medications, * * Arguments: - * 0: Target + * none * * Return Value: * None * * Example: - * [_player] call kat_medical_gui_fnc_updateMedication; + * [] call kat_medical_gui_fnc_updateMedication; * * Public: No */ - +hint str "updating medications"; disableSerialization; private _medications = [ @@ -23,47 +23,49 @@ private _medications = [ "kat_epinephrineIV" ]; -// Function to get found medications private _medicationsFound = { params ["_medications"]; - private _inventory = items player; + + private _inventory = (items player) + (magazines player); private _found = []; - // Check each item in the inventory { if (_x in _medications) then { - _found pushBack _x; + _found pushBack _x; // Store found medication }; } forEach _inventory; - _found // Return the found items + _found // Return the list of found medications }; -private _display = uiNamespace getVariable ["ace_medical_gui_menuDisplay", displayNull]; -private _listBox = _display displayCtrl 71305; -private _foundMedications = _medications call _medicationsFound; -private _populateListBox = { - disableSerialization; +private _listBox = findDisplay 38580 displayCtrl 71305; +private _foundMedications = [_medications] call _medicationsFound; +private _populateListBox = { params ["_foundMedications", "_listBox"]; - lbClear _listBox; + lbClear _listBox; // Clear the listbox before adding new entries { - private _classname = _x; - private _count = [player, _classname] call ace_common_fnc_getCountOfItem; // Fixed reference to player + private _classname = _x; // Medication class name - if (_count > 0) then { + // Only proceed if the medication is found + if (_classname != "") then { private _config = configFile >> "CfgWeapons" >> _classname; private _displayName = getText (_config >> "displayName"); private _picture = getText (_config >> "picture"); - private _data = (_classname splitString "_") select 2; + private _data = (_classname splitString "_") select 1; // Adjust index as needed + + // Display medication name in the listbox + private _entryText = format ["%1", _displayName]; // Only show the name + private _index = _listBox lbAdd _entryText; - private _index = _listBox lbAdd _displayName; + // Set the picture and data for the listbox entry _listBox lbSetPicture [_index, _picture]; _listBox lbSetData [_index, _data]; }; - } forEach _foundMedications; + } forEach _foundMedications; // Iterate through the found medications }; +// Populate the listbox with found medications [_foundMedications, _listBox] call _populateListBox; \ No newline at end of file diff --git a/addons/gui/functions/fnc_updateMedications1.sqf b/addons/gui/functions/fnc_updateMedications1.sqf deleted file mode 100644 index fec6afc7a..000000000 --- a/addons/gui/functions/fnc_updateMedications1.sqf +++ /dev/null @@ -1,59 +0,0 @@ -#include "..\script_component.hpp" -/* - * Author: Cplhardcore - * Checks the medications in the players inventory and then populates the listbox with the medications, - * - * Arguments: - * 0: Target - * - * Return Value: - * None - * - * Example: - * [_player] call kat_medical_gui_fnc_updateMedication; - * - * Public: No - */ - -private _medications = [ - "ACE_morphine", - "ACE_epinephrine", - "kat_epinephrineIV" -]; - -private _medicationsFound = { - params ["_medications"]; - private _inventory = items player; - private _found = []; - { - if (_x in _medications) then { - _found pushBack _x; - }; - } forEach _inventory; - - _found -}; -private _display = uiNamespace getVariable [QACEGVAR(medical_gui,menuDisplay), displayNull]; -private _listBox = _display displayCtrl 71305; -private _foundMedications = [_medications] call _medicationsFound; -private _populateListBox = { - params ["_foundMedications", "_listBox"]; - - lbClear _listBox; - - { - private _classname = _x; - private _count = [player, _classname] call ace_common_fnc_getCountOfItem; - if (_count > 0) then { - private _config = configFile >> "CfgWeapons" >> _classname; - private _displayName = getText (_config >> "displayName"); - private _picture = getText (_config >> "picture"); - private _data = (_classname splitString "_") select 2; - - private _index = _listBox lbAdd _displayName; - _listBox lbSetPicture [_index, _picture]; - _listBox lbSetData [_index, _data]; - }; - } forEach _foundMedications; -}; -[_foundMedications, _listBox] call _populateListBox; \ No newline at end of file diff --git a/addons/gui/functions/fnc_updateSyringes.sqf b/addons/gui/functions/fnc_updateSyringes.sqf index 6f5d39bc3..84ad84f38 100644 --- a/addons/gui/functions/fnc_updateSyringes.sqf +++ b/addons/gui/functions/fnc_updateSyringes.sqf @@ -4,29 +4,66 @@ * Checks the syringes in the players inventory and then populates the listbox with the syringes, * * Arguments: - * 0: Target + * none * * Return Value: * None * * Example: - * [_target] call kat_medical_gui_fnc_updateSyringes; + * [] call kat_medical_gui_fnc_updateSyringes; * * Public: No */ +disableSerialization; + private _syringes = [ - "kat_10ml_syringe", + "kat_10ml_syringe", "kat_5ml_syringe" ]; -private _playerInventory = items player; -private _foundSyringes = []; -{ - if (_x in _syringes) then { - _foundSyringes pushBack _x; - }; -} forEach _playerInventory; + +private _syringesFound = { + params ["_syringes"]; + + private _inventory = (items player) + (magazines player); + private _found = []; + + { + if (_x in _syringes) then { + _found pushBack _x; // Store found medication + }; + } forEach _inventory; + + _found // Return the list of found medications +}; + private _listBox = findDisplay 38580 displayCtrl 71303; -lbClear _listBox; -{ - _listBox lbAdd _x; -} forEach _foundSyringes; \ No newline at end of file +private _foundSyringes = [_syringes] call _syringesFound; + +private _populateListBox = { + params ["_foundSyringes", "_listBox"]; + + lbClear _listBox; // Clear the listbox before adding new entries + + { + private _classname = _x; // Medication class name + + // Only proceed if the medication is found + if (_classname != "") then { + private _config = configFile >> "CfgWeapons" >> _classname; + private _displayName = getText (_config >> "displayName"); + private _picture = getText (_config >> "picture"); + private _data = (_classname splitString "_") select 1; // Adjust index as needed + + // Display medication name in the listbox + private _entryText = format ["%1", _displayName]; // Only show the name + private _index = _listBox lbAdd _entryText; + + // Set the picture and data for the listbox entry + _listBox lbSetPicture [_index, _picture]; + _listBox lbSetData [_index, _data]; + }; + } forEach _foundSyringes; // Iterate through the found medications +}; + +// Populate the listbox with found medications +[_foundSyringes, _listBox] call _populateListBox; \ No newline at end of file diff --git a/addons/gui/gui.hpp b/addons/gui/gui.hpp index 79d71bd33..ac880415f 100644 --- a/addons/gui/gui.hpp +++ b/addons/gui/gui.hpp @@ -7,6 +7,7 @@ class RscActivePicture; class RscButtonMenu; class RscControlsGroup; class RscControlsGroupNoScrollbars; +class RscCombo; class ace_medical_gui_TriageToggle: RscButton { x = QUOTE(POS_X(14.33)); @@ -628,21 +629,14 @@ class ACE_Medical_Menu { x = QUOTE(POS_X(40)); y = QUOTE(POS_Y(6.9)); w = QUOTE(POS_W(8)); - h = QUOTE(POS_H(1.5)); + h = QUOTE(POS_H(2.5)); show = 1; - colorText[] = {1,1,1,1}; - colorSelect[] = {0,0,0,1}; - colorSelect2[] = {0,0,0,1}; - colorBackground[] = {0.2, 0.2, 0.2, 1}; - colorSelectBackground[] = {0.7,0.7,0.7,1}; - colorSelectBackground2[] = {0.7,0.7,0.7,1}; - sizeEx = QUOTE(GUI_GRID_H * 0.9 * NORMALIZE_SIZEEX); }; class MedicationTypeTitle: RscStructuredText { idc = IDC_MEDICATION_TYPE_TITLE; // LOOK HERE - text = CSTRING(SyringeTitleList); + text = CSTRING(MedicationTitleList); x = QUOTE(POS_X(40)); - y = QUOTE(POS_Y(8.9)); + y = QUOTE(POS_Y(9.9)); w = QUOTE(POS_W(8)); h = QUOTE(POS_H(1)); colorBackground[] = {0, 0, 0, 0.5}; @@ -655,20 +649,13 @@ class ACE_Medical_Menu { shadow = "false"; }; }; - class MedicationList: RscListBox { + class MedicationList: RscListBox { idc = IDC_MEDICATION_TYPE_LIST; // LOOK HERE x = QUOTE(POS_X(40)); - y = QUOTE(POS_Y(9.9)); + y = QUOTE(POS_Y(10.9)); w = QUOTE(POS_W(8)); - h = QUOTE(POS_H(1.5)); + h = QUOTE(POS_H(4.5)); show = 1; - colorText[] = {1,1,1,1}; - colorSelect[] = {0,0,0,1}; - colorSelect2[] = {0,0,0,1}; - colorBackground[] = {0.2, 0.2, 0.2, 1}; - colorSelectBackground[] = {0.7,0.7,0.7,1}; - colorSelectBackground2[] = {0.7,0.7,0.7,1}; - sizeEx = QUOTE(GUI_GRID_H * 0.9 * NORMALIZE_SIZEEX); }; }; }; diff --git a/addons/gui/stringtable.xml b/addons/gui/stringtable.xml index b5b8c8c63..8ccb6b659 100644 --- a/addons/gui/stringtable.xml +++ b/addons/gui/stringtable.xml @@ -158,5 +158,8 @@ Syringe Type + + Medication Type + From 87b981df857e22f828736c2a8b1ac66acaff2396 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Tue, 1 Oct 2024 16:36:37 -0700 Subject: [PATCH 080/149] WEEE --- addons/circulation/functions/fnc_cprLocal.sqf | 6 +- addons/gui/XEH_PREP.hpp | 3 +- addons/gui/functions/fnc_onMenuOpen.sqf | 2 +- addons/gui/functions/fnc_prepSyringe.sqf | 47 ++++ .../gui/functions/fnc_updateMedications.sqf | 45 ++-- addons/gui/functions/fnc_updateSyringes.sqf | 24 +-- addons/gui/gui.hpp | 56 ++++- addons/gui/gui_defines.hpp | 5 +- addons/gui/stringtable.xml | 17 +- addons/pharma/ACE_Medical_Treatment.hpp | 38 ++-- .../pharma/ACE_Medical_Treatment_Actions.hpp | 156 +++++++------- addons/pharma/CfgWeapons.hpp | 146 ++++++------- addons/pharma/XEH_preInit.sqf | 13 +- addons/pharma/functions/fnc_applyIV.sqf | 30 +-- addons/pharma/functions/fnc_clotWound.sqf | 10 +- addons/pharma/functions/fnc_coagRegen.sqf | 12 +- .../pharma/functions/fnc_prepareSyringe.sqf | 26 +-- .../fnc_treatmentAdvanced_AtropineLocal.sqf | 2 +- .../fnc_treatmentAdvanced_EACALocal.sqf | 4 +- .../fnc_treatmentAdvanced_TXALocal.sqf | 6 +- addons/pharma/stringtable.xml | 204 +++++++++--------- .../functions/fnc_closedReductionLocal.sqf | 18 +- 22 files changed, 483 insertions(+), 387 deletions(-) create mode 100644 addons/gui/functions/fnc_prepSyringe.sqf diff --git a/addons/circulation/functions/fnc_cprLocal.sqf b/addons/circulation/functions/fnc_cprLocal.sqf index 9d5c9457f..c405d9ebc 100644 --- a/addons/circulation/functions/fnc_cprLocal.sqf +++ b/addons/circulation/functions/fnc_cprLocal.sqf @@ -91,11 +91,11 @@ private _fnc_advRhythm = { { _epiBoost = 1.3; }; - case "syringe_kat_epinephrineIV_5ml_2": + case "syringe_kat_epinephrineIV_5ml_3": { _epiBoost = 1.5; }; - case "syringe_kat_lidocaine_5ml_2": + case "syringe_kat_lidocaine_5ml_3": { _lidoBoost = _lidoBoost + 8; }; @@ -103,7 +103,7 @@ private _fnc_advRhythm = { { _amiBoost = _amiBoost + (random [6,10,16]); }; - case "syringe_kat_amiodarone_5ml_2": + case "syringe_kat_amiodarone_5ml_3": { _amiBoost = _amiBoost + (random [8,14,20]); }; diff --git a/addons/gui/XEH_PREP.hpp b/addons/gui/XEH_PREP.hpp index 422ac237c..c45d13076 100644 --- a/addons/gui/XEH_PREP.hpp +++ b/addons/gui/XEH_PREP.hpp @@ -10,4 +10,5 @@ PREP(updateBodyImage); PREP(updateIVStatus); PREP(updateABGStatus); PREP(updateSyringes); -PREP(updateMedications); \ No newline at end of file +PREP(updateMedications); +PREP(prepSyringe); \ No newline at end of file diff --git a/addons/gui/functions/fnc_onMenuOpen.sqf b/addons/gui/functions/fnc_onMenuOpen.sqf index 6b1f6258a..8d37a5299 100644 --- a/addons/gui/functions/fnc_onMenuOpen.sqf +++ b/addons/gui/functions/fnc_onMenuOpen.sqf @@ -104,4 +104,4 @@ if (ACEGVAR(medical_gui,target) == ACE_player) then { _ctrl ctrlSetTooltip ACELLSTRING(medical_gui,ToggleToSelf); }; [] call FUNC(updateMedications); -[] call FUNC(updateSyringes); \ No newline at end of file +[] call FUNC(updateSyringes); diff --git a/addons/gui/functions/fnc_prepSyringe.sqf b/addons/gui/functions/fnc_prepSyringe.sqf new file mode 100644 index 000000000..2698c3dbf --- /dev/null +++ b/addons/gui/functions/fnc_prepSyringe.sqf @@ -0,0 +1,47 @@ +#include "..\script_component.hpp" +/* + * Author: Cplhardcore + * Checks the medications in the players inventory and then populates the listbox with the medications, + * + * Arguments: + * none + * + * Return Value: + * None + * + * Example: + * [] call kat_medical_gui_fnc_prepSyringe; + * + * Public: No + */ +private _playerMedicalLevel = [_player] call ace_medical_fnc_getMedicLevel; +private _requiredMedicalLevel = GVAR(medLvl_PrepSyringe); +if (_playerMedicalLevel < _requiredMedicalLevel) exitWith {}; + +private _syringeBox = findDisplay 38580 displayCtrl 71303; +private _medicationBox = findDisplay 38580 displayCtrl 71305; +private _doseCombo = findDisplay 38580 displayCtrl 71307; + +private _syringeSelected = lbCurSel _syringeBox; +private _medicationSelected = lbCurSel _medicationBox; +private _doseSelected = lbCurSel _doseCombo; + +private _syringeType = _syringeBox lbData _syringeSelected; +private _medicationType = _medicationBox lbData _medicationSelected; +private _doseType = _doseCombo lbValue _doseSelected; + +[5, [], { + private _syringeBox = findDisplay 38580 displayCtrl 71303; + private _medicationBox = findDisplay 38580 displayCtrl 71305; + private _doseCombo = findDisplay 38580 displayCtrl 71307; + + private _syringeSelected = lbCurSel _syringeBox; + private _medicationSelected = lbCurSel _medicationBox; + private _doseSelected = lbCurSel _doseCombo; + + private _syringeType = _syringeBox lbData _syringeSelected; + private _medicationType = _medicationBox lbData _medicationSelected; + private _doseType = _doseCombo lbValue _doseSelected; + + + [player, _medicationType, _syringeType, _doseType] call kat_pharma_fnc_prepareSyringe;}, {}, "Preparing Syringe..."] call ace_common_fnc_progressBar; \ No newline at end of file diff --git a/addons/gui/functions/fnc_updateMedications.sqf b/addons/gui/functions/fnc_updateMedications.sqf index 36249203d..567da4cf1 100644 --- a/addons/gui/functions/fnc_updateMedications.sqf +++ b/addons/gui/functions/fnc_updateMedications.sqf @@ -14,13 +14,24 @@ * * Public: No */ -hint str "updating medications"; disableSerialization; -private _medications = [ - "ACE_morphine", - "ACE_epinephrine", - "kat_epinephrineIV" +[{private _medications = [ + "kat_amiodarone", + "kat_atropine", + "kat_EACA", + "kat_epinephrineIV", + "kat_etomidate", + "kat_fentanyl", + "kat_flumazenil", + "kat_ketamine", + "kat_lidocaine", + "kat_lorazepam", + "kat_nalbuphine", + "kat_nitroglycerin", + "kat_norepinephrine", + "kat_phenylephrine", + "kat_TXA" ]; private _medicationsFound = { @@ -31,11 +42,11 @@ private _medicationsFound = { { if (_x in _medications) then { - _found pushBack _x; // Store found medication + _found pushBack _x; }; } forEach _inventory; - _found // Return the list of found medications + _found }; private _listBox = findDisplay 38580 displayCtrl 71305; @@ -44,28 +55,20 @@ private _foundMedications = [_medications] call _medicationsFound; private _populateListBox = { params ["_foundMedications", "_listBox"]; - lbClear _listBox; // Clear the listbox before adding new entries - + lbClear _listBox; { - private _classname = _x; // Medication class name - - // Only proceed if the medication is found + private _classname = _x; if (_classname != "") then { private _config = configFile >> "CfgWeapons" >> _classname; private _displayName = getText (_config >> "displayName"); private _picture = getText (_config >> "picture"); - private _data = (_classname splitString "_") select 1; // Adjust index as needed - - // Display medication name in the listbox - private _entryText = format ["%1", _displayName]; // Only show the name + private _data = toLower ((_classname splitString "_") select 1); + private _entryText = format ["%1", _displayName]; private _index = _listBox lbAdd _entryText; - - // Set the picture and data for the listbox entry _listBox lbSetPicture [_index, _picture]; _listBox lbSetData [_index, _data]; }; - } forEach _foundMedications; // Iterate through the found medications + } forEach _foundMedications; }; -// Populate the listbox with found medications -[_foundMedications, _listBox] call _populateListBox; \ No newline at end of file +[_foundMedications, _listBox] call _populateListBox; }, [], 0.1] call CBA_fnc_waitAndExecute; \ No newline at end of file diff --git a/addons/gui/functions/fnc_updateSyringes.sqf b/addons/gui/functions/fnc_updateSyringes.sqf index 84ad84f38..fad5336b1 100644 --- a/addons/gui/functions/fnc_updateSyringes.sqf +++ b/addons/gui/functions/fnc_updateSyringes.sqf @@ -16,7 +16,7 @@ */ disableSerialization; -private _syringes = [ +[{private _syringes = [ "kat_10ml_syringe", "kat_5ml_syringe" ]; @@ -29,11 +29,11 @@ private _syringesFound = { { if (_x in _syringes) then { - _found pushBack _x; // Store found medication + _found pushBack _x; }; } forEach _inventory; - _found // Return the list of found medications + _found }; private _listBox = findDisplay 38580 displayCtrl 71303; @@ -42,28 +42,22 @@ private _foundSyringes = [_syringes] call _syringesFound; private _populateListBox = { params ["_foundSyringes", "_listBox"]; - lbClear _listBox; // Clear the listbox before adding new entries + lbClear _listBox; { - private _classname = _x; // Medication class name + private _classname = _x; - // Only proceed if the medication is found if (_classname != "") then { private _config = configFile >> "CfgWeapons" >> _classname; private _displayName = getText (_config >> "displayName"); private _picture = getText (_config >> "picture"); - private _data = (_classname splitString "_") select 1; // Adjust index as needed - - // Display medication name in the listbox - private _entryText = format ["%1", _displayName]; // Only show the name + private _data = (_classname splitString "_") select 1; + private _entryText = format ["%1", _displayName]; private _index = _listBox lbAdd _entryText; - - // Set the picture and data for the listbox entry _listBox lbSetPicture [_index, _picture]; _listBox lbSetData [_index, _data]; }; - } forEach _foundSyringes; // Iterate through the found medications + } forEach _foundSyringes; }; -// Populate the listbox with found medications -[_foundSyringes, _listBox] call _populateListBox; \ No newline at end of file +[_foundSyringes, _listBox] call _populateListBox;}, [], 0.1] call CBA_fnc_waitAndExecute; \ No newline at end of file diff --git a/addons/gui/gui.hpp b/addons/gui/gui.hpp index ac880415f..7ee895069 100644 --- a/addons/gui/gui.hpp +++ b/addons/gui/gui.hpp @@ -157,7 +157,7 @@ class ACE_Medical_Menu { x = QUOTE(POS_X(39.6)); y = QUOTE(POS_Y(4.9)); w = QUOTE(POS_W(9)); - h = QUOTE(POS_H(18.5)); + h = QUOTE(POS_H(16.5)); }; class SYRINGETitle: IVFlowTitle { idc = IDC_SYRINGE_TITLE; // LOOK HERE @@ -657,5 +657,59 @@ class ACE_Medical_Menu { h = QUOTE(POS_H(4.5)); show = 1; }; + class DoseTitle: RscStructuredText { + idc = IDC_MEDICATION_DOSE_TITLE; // LOOK HERE + text = CSTRING(DoseTitle); + x = QUOTE(POS_X(40)); + y = QUOTE(POS_Y(15.9)); + w = QUOTE(POS_W(8)); + h = QUOTE(POS_H(1)); + colorBackground[] = {0, 0, 0, 0.5}; + show = 1; + class Attributes { + align = "center"; + valign = "bottom"; + color = "#E5E5E5"; + font = "RobotoCondensed"; + shadow = "false"; + }; + }; + class DoseList: RscCombo { + idc = IDC_MEDICATION_DOSE_COMBO; // LOOK HERE + x = QUOTE(POS_X(40)); + y = QUOTE(POS_Y(16.9)); + w = QUOTE(POS_W(8)); + h = QUOTE(POS_H(1.5)); + show = 1; + class Items + { + class LowDose + { + text = "Low"; + default = 1; + value = 1; + }; + //class MediumDose + //{ + // text = "Medium"; + // value = 2; + //}; + class HighDose + { + text = "High"; + value = 3; + }; + }; + }; + class PrepSyringe: RscButton { + idc = IDC_MEDICATION_PREP_SYRINGE; // LOOK HERE + text = CSTRING(PrepSyringe); + x = QUOTE(POS_X(40)); + y = QUOTE(POS_Y(18.9)); + w = QUOTE(POS_W(8)); + h = QUOTE(POS_H(1.5)); + show = 1; + onButtonClick = QUOTE([] call FUNC(prepSyringe)); + }; }; }; diff --git a/addons/gui/gui_defines.hpp b/addons/gui/gui_defines.hpp index 86d96b135..d0272c2d6 100644 --- a/addons/gui/gui_defines.hpp +++ b/addons/gui/gui_defines.hpp @@ -144,4 +144,7 @@ #define IDC_SYRINGE_TYPE_TITLE 71302 #define IDC_SYRINGE_TYPE_LIST 71303 #define IDC_MEDICATION_TYPE_TITLE 71304 -#define IDC_MEDICATION_TYPE_LIST 71305 \ No newline at end of file +#define IDC_MEDICATION_TYPE_LIST 71305 +#define IDC_MEDICATION_DOSE_TITLE 71306 +#define IDC_MEDICATION_DOSE_COMBO 71307 +#define IDC_MEDICATION_PREP_SYRINGE 71308 \ No newline at end of file diff --git a/addons/gui/stringtable.xml b/addons/gui/stringtable.xml index 8ccb6b659..acf2de62a 100644 --- a/addons/gui/stringtable.xml +++ b/addons/gui/stringtable.xml @@ -152,7 +152,7 @@ Reset - + Syringe Preparation @@ -161,5 +161,20 @@ Medication Type + + Dose Size + + + Low + + + Medium + + + High + + + Prepare Syringe + diff --git a/addons/pharma/ACE_Medical_Treatment.hpp b/addons/pharma/ACE_Medical_Treatment.hpp index dde360016..3abe30cd1 100644 --- a/addons/pharma/ACE_Medical_Treatment.hpp +++ b/addons/pharma/ACE_Medical_Treatment.hpp @@ -347,7 +347,7 @@ class ACE_ADDON(Medical_Treatment) { viscosityChange = 0; onOverDose = ""; }; - class syringe_kat_txa_5ml_2 { + class syringe_kat_txa_5ml_3 { painReduce = 0; hrIncreaseLow[] = {0, 0}; hrIncreaseNormal[] = {0, 0}; @@ -371,7 +371,7 @@ class ACE_ADDON(Medical_Treatment) { viscosityChange = 0; onOverDose = ""; }; - class syringe_kat_txa_10ml_2 { + class syringe_kat_txa_10ml_3 { painReduce = 0; hrIncreaseLow[] = {0, 0}; hrIncreaseNormal[] = {0, 0}; @@ -395,7 +395,7 @@ class ACE_ADDON(Medical_Treatment) { viscosityChange = 0; onOverDose = ""; }; - class syringe_kat_eaca_5ml_2 { + class syringe_kat_eaca_5ml_3 { painReduce = 0; hrIncreaseLow[] = {0, 0}; hrIncreaseNormal[] = {0, 0}; @@ -575,7 +575,7 @@ class ACE_ADDON(Medical_Treatment) { viscosityChange = -15; onOverDose = ""; }; - class syringe_kat_epinephrineIV_5ml_2 { + class syringe_kat_epinephrineIV_5ml_3 { painReduce = 0; hrIncreaseLow[] = {25, 40}; hrIncreaseNormal[] = {20, 50}; @@ -588,7 +588,7 @@ class ACE_ADDON(Medical_Treatment) { alphaFactor = -0.4; onOverDose = ""; }; - class syringe_kat_norepinephrine_5ml_2 { + class syringe_kat_norepinephrine_5ml_3 { painReduce = 0; hrIncreaseLow[] = {0, 10}; hrIncreaseNormal[] = {10, 15}; @@ -601,7 +601,7 @@ class ACE_ADDON(Medical_Treatment) { alphaFactor = -0.4; onOverDose = ""; }; - class syringe_kat_phenylephrine_5ml_2 { + class syringe_kat_phenylephrine_5ml_3 { painReduce = 0; hrIncreaseLow[] = {-15, -5}; hrIncreaseNormal[] = {-15, -25}; @@ -615,7 +615,7 @@ class ACE_ADDON(Medical_Treatment) { alphaFactor = -0.7; onOverDose = ""; }; - class syringe_kat_nitroglycerin_5ml_2 { + class syringe_kat_nitroglycerin_5ml_3 { painReduce = 0; hrIncreaseLow[] = {5, 15}; hrIncreaseNormal[] = {10, 20}; @@ -629,7 +629,7 @@ class ACE_ADDON(Medical_Treatment) { alphaFactor = 0.5; onOverDose = ""; }; - class syringe_kat_fentanyl_5ml_2 { + class syringe_kat_fentanyl_5ml_3 { painReduce = 1; hrIncreaseLow[] = {-15, -10}; hrIncreaseNormal[] = {-25, -15}; @@ -643,7 +643,7 @@ class ACE_ADDON(Medical_Treatment) { onOverDose = ""; opioidRelief = 1.5; }; - class syringe_kat_ketamine_5ml_2 { + class syringe_kat_ketamine_5ml_3 { painReduce = 0.8; hrIncreaseLow[] = {5, 15}; hrIncreaseNormal[] = {10, 20}; @@ -656,7 +656,7 @@ class ACE_ADDON(Medical_Treatment) { viscosityChange = 10; onOverDose = ""; }; - class syringe_kat_nalbuphine_5ml_2 { + class syringe_kat_nalbuphine_5ml_3 { painReduce = 0.6; hrIncreaseLow[] = {-10, 0}; hrIncreaseNormal[] = {-15, -5}; @@ -670,7 +670,7 @@ class ACE_ADDON(Medical_Treatment) { onOverDose = ""; opioidRelief = 1.2; }; - class syringe_kat_atropine_5ml_2 { + class syringe_kat_atropine_5ml_3 { painReduce = 0; hrIncreaseLow[] = {20, 40}; hrIncreaseNormal[] = {10, 25}; @@ -682,7 +682,7 @@ class ACE_ADDON(Medical_Treatment) { viscosityChange = 0; onOverDose = ""; }; - class syringe_kat_amiodarone_5ml_2 { + class syringe_kat_amiodarone_5ml_3 { painReduce = 0; hrIncreaseLow[] = {0, 0, 0}; hrIncreaseNormal[] = {0, 0, 0}; @@ -694,7 +694,7 @@ class ACE_ADDON(Medical_Treatment) { viscosityChange = 0; onOverDose = ""; }; - class syringe_kat_lidocaine_5ml_2 { + class syringe_kat_lidocaine_5ml_3 { painReduce = 0.3; hrIncreaseLow[] = {0, 0}; hrIncreaseNormal[] = {0, 0}; @@ -707,7 +707,7 @@ class ACE_ADDON(Medical_Treatment) { onOverDose = ""; maxRelief = 0.6; }; - class syringe_kat_etomidate_5ml_2 { + class syringe_kat_etomidate_5ml_3 { painReduce = 0.4; hrIncreaseLow[] = {-10, -5}; hrIncreaseNormal[] = {-15, -20}; @@ -719,7 +719,7 @@ class ACE_ADDON(Medical_Treatment) { viscosityChange = 0; onOverDose = ""; }; - class syringe_kat_flumazenil_5ml_2 { + class syringe_kat_flumazenil_5ml_3 { painReduce = 0; hrIncreaseLow[] = {0, 0}; hrIncreaseNormal[] = {0, 0}; @@ -731,7 +731,7 @@ class ACE_ADDON(Medical_Treatment) { viscosityChange = 0; onOverDose = ""; }; - class syringe_kat_lorazepam_5ml_2 { + class syringe_kat_lorazepam_5ml_3 { painReduce = 0; hrIncreaseLow[] = {0, 0}; hrIncreaseNormal[] = {0, 0}; @@ -797,7 +797,7 @@ class ACE_ADDON(Medical_Treatment) { onOverDose = ""; maxRelief = 0.6; }; - class syringe_kat_fentanyl_10ml_2 { + class syringe_kat_fentanyl_10ml_3 { painReduce = 1; hrIncreaseLow[] = {-15, -5}; hrIncreaseNormal[] = {-20, -10}; @@ -811,7 +811,7 @@ class ACE_ADDON(Medical_Treatment) { onOverDose = ""; opioidRelief = 1.5; }; - class syringe_kat_ketamine_10ml_2 { + class syringe_kat_ketamine_10ml_3 { painReduce = 0.8; hrIncreaseLow[] = {5, 20}; hrIncreaseNormal[] = {10, 25}; @@ -824,7 +824,7 @@ class ACE_ADDON(Medical_Treatment) { viscosityChange = 10; onOverDose = ""; }; - class syringe_kat_nalbuphine_10ml_2 { + class syringe_kat_nalbuphine_10ml_3 { painReduce = 0.6; hrIncreaseLow[] = {-5, 0}; hrIncreaseNormal[] = {-10, -5}; diff --git a/addons/pharma/ACE_Medical_Treatment_Actions.hpp b/addons/pharma/ACE_Medical_Treatment_Actions.hpp index 2cfbb8033..3a86796e0 100644 --- a/addons/pharma/ACE_Medical_Treatment_Actions.hpp +++ b/addons/pharma/ACE_Medical_Treatment_Actions.hpp @@ -16,7 +16,7 @@ class ACE_Medical_Treatment_Actions { class BloodIV_500: BloodIV { callbackSuccess = "[_medic, _patient, _bodyPart, _className, _itemUser, _usedItem] call ace_medical_treatment_fnc_ivBag; [_patient, -400, 8] call kat_pharma_fnc_fluid;"; }; - class BloodIV_250: BloodIV { + class BloodIV_350: BloodIV { callbackSuccess = "[_medic, _patient, _bodyPart, _className, _itemUser, _usedItem] call ace_medical_treatment_fnc_ivBag; [_patient, -200, 4] call kat_pharma_fnc_fluid;"; }; class SalineIV: BloodIV { @@ -25,7 +25,7 @@ class ACE_Medical_Treatment_Actions { class SalineIV_500: SalineIV { callbackSuccess = "[_medic, _patient, _bodyPart, _className, _itemUser, _usedItem] call ace_medical_treatment_fnc_ivBag; [_patient, 350, 0] call kat_pharma_fnc_fluid;"; }; - class SalineIV_250: SalineIV { + class SalineIV_350: SalineIV { callbackSuccess = "[_medic, _patient, _bodyPart, _className, _itemUser, _usedItem] call ace_medical_treatment_fnc_ivBag; [_patient, 150, 0] call kat_pharma_fnc_fluid;"; }; class PlasmaIV: BloodIV { @@ -34,7 +34,7 @@ class ACE_Medical_Treatment_Actions { class PlasmaIV_500: PlasmaIV { callbackSuccess = "[_medic, _patient, _bodyPart, _className, _itemUser, _usedItem] call ace_medical_treatment_fnc_ivBag; [_patient, -250, 10] call kat_pharma_fnc_fluid;"; }; - class PlasmaIV_250: PlasmaIV { + class PlasmaIV_350: PlasmaIV { callbackSuccess = "[_medic, _patient, _bodyPart, _className, _itemUser, _usedItem] call ace_medical_treatment_fnc_ivBag; [_patient, -100, 5] call kat_pharma_fnc_fluid;"; }; class Epinephrine: Morphine { @@ -451,10 +451,10 @@ class ACE_Medical_Treatment_Actions { callbackSuccess = QFUNC(medication); sounds[] = {}; }; - class syringe_kat_EACA_5ml_2: syringe_kat_EACA_5ml_1 { - displayName = CSTRING(push_EACA_IV_2); - displayNameProgress = CSTRING(pushing_EACA_IV_2); - items[] = {"kat_syringe_kat_eaca_5ml_2"}; + class syringe_kat_EACA_5ml_3: syringe_kat_EACA_5ml_1 { + displayName = CSTRING(push_EACA_IV_3); + displayNameProgress = CSTRING(pushing_EACA_IV_3); + items[] = {"kat_syringe_kat_eaca_5ml_3"}; callbackSuccess = QFUNC(medication); sounds[] = {}; }; @@ -469,10 +469,10 @@ class ACE_Medical_Treatment_Actions { callbackSuccess = QFUNC(medication); sounds[] = {}; }; - class syringe_kat_TXA_10ml_2: syringe_kat_TXA_10ml_1 { - displayName = CSTRING(inject_TXA_IM_2); - displayNameProgress = CSTRING(injecting_TXA_IM_2); - items[] = {"kat_syringe_kat_txa_10ml_2"}; + class syringe_kat_TXA_10ml_3: syringe_kat_TXA_10ml_1 { + displayName = CSTRING(inject_TXA_IM_3); + displayNameProgress = CSTRING(injecting_TXA_IM_3); + items[] = {"kat_syringe_kat_txa_10ml_3"}; callbackSuccess = QFUNC(medication); sounds[] = {}; }; @@ -488,10 +488,10 @@ class ACE_Medical_Treatment_Actions { callbackSuccess = QFUNC(medication); sounds[] = {}; }; - class syringe_kat_TXA_5ml_2: syringe_kat_TXA_5ml_1 { - displayName = CSTRING(push_TXA_IV_2); - displayNameProgress = CSTRING(pushing_TXA_IV_2); - items[] = {"kat_syringe_kat_txa_5ml_2"}; + class syringe_kat_TXA_5ml_3: syringe_kat_TXA_5ml_1 { + displayName = CSTRING(push_TXA_IV_3); + displayNameProgress = CSTRING(pushing_TXA_IV_3); + items[] = {"kat_syringe_kat_txa_5ml_3"}; callbackSuccess = QFUNC(medication); sounds[] = {}; }; @@ -507,10 +507,10 @@ class ACE_Medical_Treatment_Actions { callbackSuccess = QFUNC(medication); sounds[] = {}; }; - class syringe_kat_norepinephrine_5ml_2: syringe_kat_norepinephrine_5ml_1 { - displayName = CSTRING(push_norepinephrine_IV_2); - displayNameProgress = CSTRING(pushing_norepinephrine_IV_2); - items[] = {"kat_syringe_kat_norepinephrine_5ml_2"}; + class syringe_kat_norepinephrine_5ml_3: syringe_kat_norepinephrine_5ml_1 { + displayName = CSTRING(push_norepinephrine_IV_3); + displayNameProgress = CSTRING(pushing_norepinephrine_IV_3); + items[] = {"kat_syringe_kat_norepinephrine_5ml_3"}; callbackSuccess = QFUNC(medication); sounds[] = {}; }; @@ -526,10 +526,10 @@ class ACE_Medical_Treatment_Actions { callbackSuccess = QFUNC(medication); sounds[] = {}; }; - class syringe_kat_penylephrine_5ml_2: syringe_kat_phenylephrine_5ml_1 { - displayName = CSTRING(push_phenylephrine_IV_2); - displayNameProgress = CSTRING(pushing_phenylephrine_IV_2); - items[] = {"kat_syringe_kat_phenylephrine_5ml_2"}; + class syringe_kat_penylephrine_5ml_3: syringe_kat_phenylephrine_5ml_1 { + displayName = CSTRING(push_phenylephrine_IV_3); + displayNameProgress = CSTRING(pushing_phenylephrine_IV_3); + items[] = {"kat_syringe_kat_phenylephrine_5ml_3"}; callbackSuccess = QFUNC(medication); sounds[] = {}; }; @@ -545,10 +545,10 @@ class ACE_Medical_Treatment_Actions { callbackSuccess = QFUNC(medication); sounds[] = {}; }; - class syringe_kat_nitroglycerin_5ml_2: syringe_kat_nitroglycerin_5ml_1 { - displayName = CSTRING(push_nitroglycerin_IV_2); - displayNameProgress = CSTRING(pushing_nitroglycerin_IV_2); - items[] = {"kat_syringe_kat_nitroglycerin_5ml_2"}; + class syringe_kat_nitroglycerin_5ml_3: syringe_kat_nitroglycerin_5ml_1 { + displayName = CSTRING(push_nitroglycerin_IV_3); + displayNameProgress = CSTRING(pushing_nitroglycerin_IV_3); + items[] = {"kat_syringe_kat_nitroglycerin_5ml_3"}; callbackSuccess = QFUNC(medication); sounds[] = {}; }; @@ -564,10 +564,10 @@ class ACE_Medical_Treatment_Actions { callbackSuccess = QFUNC(medication); sounds[] = {}; }; - class syringe_kat_amiodarone_5ml_2: syringe_kat_amiodarone_5ml_1 { - displayName = CSTRING(push_amiodarone_IV_2); - displayNameProgress = CSTRING(pushing_amiodarone_IV_2); - items[] = {"kat_syringe_kat_amiodarone_5ml_2"}; + class syringe_kat_amiodarone_5ml_3: syringe_kat_amiodarone_5ml_1 { + displayName = CSTRING(push_amiodarone_IV_3); + displayNameProgress = CSTRING(pushing_amiodarone_IV_3); + items[] = {"kat_syringe_kat_amiodarone_5ml_3"}; callbackSuccess = QFUNC(medication); sounds[] = {}; }; @@ -583,10 +583,10 @@ class ACE_Medical_Treatment_Actions { callbackSuccess = QFUNC(medication); sounds[] = {}; }; - class syringe_kat_lidocaine_5ml_2: syringe_kat_lidocaine_5ml_1 { - displayName = CSTRING(push_lidocaine_IV_2); - displayNameProgress = CSTRING(pushing_lidocaine_IV_2); - items[] = {"kat_syringe_kat_lidocaine_5ml_2"}; + class syringe_kat_lidocaine_5ml_3: syringe_kat_lidocaine_5ml_1 { + displayName = CSTRING(push_lidocaine_IV_3); + displayNameProgress = CSTRING(pushing_lidocaine_IV_3); + items[] = {"kat_syringe_kat_lidocaine_5ml_3"}; callbackSuccess = QFUNC(medication); sounds[] = {}; }; @@ -602,10 +602,10 @@ class ACE_Medical_Treatment_Actions { callbackSuccess = QFUNC(medication); sounds[] = {}; }; - class syringe_kat_atropine_5ml_2: syringe_kat_atropine_5ml_1 { - displayName = CSTRING(push_atropine_IV_2); - displayNameProgress = CSTRING(pushing_atropine_IV_2); - items[] = {"kat_syringe_kat_atropine_5ml_2"}; + class syringe_kat_atropine_5ml_3: syringe_kat_atropine_5ml_1 { + displayName = CSTRING(push_atropine_IV_3); + displayNameProgress = CSTRING(pushing_atropine_IV_3); + items[] = {"kat_syringe_kat_atropine_5ml_3"}; callbackSuccess = QFUNC(medication); sounds[] = {}; }; @@ -621,11 +621,11 @@ class ACE_Medical_Treatment_Actions { callbackSuccess = QFUNC(medication); sounds[] = {}; }; - class syringe_kat_ketamine_5ml_2: syringe_kat_ketamine_5ml_1 { - displayName = CSTRING(push_ketamine_IV_2); - displayNameProgress = CSTRING(pushing_ketamine_IV_2); + class syringe_kat_ketamine_5ml_3: syringe_kat_ketamine_5ml_1 { + displayName = CSTRING(push_ketamine_IV_3); + displayNameProgress = CSTRING(pushing_ketamine_IV_3); category = "surgery"; - items[] = {"kat_syringe_kat_ketamine_5ml_2"}; + items[] = {"kat_syringe_kat_ketamine_5ml_3"}; callbackSuccess = QFUNC(medication); sounds[] = {}; }; @@ -641,10 +641,10 @@ class ACE_Medical_Treatment_Actions { callbackSuccess = QFUNC(medication); sounds[] = {}; }; - class syringe_kat_fentanyl_5ml_2: syringe_kat_fentanyl_5ml_1 { - displayName = CSTRING(push_fentanyl_IV_2); - displayNameProgress = CSTRING(pushing_fentanyl_IV_2); - items[] = {"kat_syringe_kat_fentanyl_5ml_2"}; + class syringe_kat_fentanyl_5ml_3: syringe_kat_fentanyl_5ml_1 { + displayName = CSTRING(push_fentanyl_IV_3); + displayNameProgress = CSTRING(pushing_fentanyl_IV_3); + items[] = {"kat_syringe_kat_fentanyl_5ml_3"}; callbackSuccess = QFUNC(medication); sounds[] = {}; }; @@ -660,10 +660,10 @@ class ACE_Medical_Treatment_Actions { callbackSuccess = QFUNC(medication); sounds[] = {}; }; - class syringe_kat_nalbuphine_5ml_2: syringe_kat_nalbuphine_5ml_1 { - displayName = CSTRING(push_nalbuphine_IV_2); - displayNameProgress = CSTRING(pushing_nalbuphine_IV_2); - items[] = {"kat_syringe_kat_nalbuphine_5ml_2"}; + class syringe_kat_nalbuphine_5ml_3: syringe_kat_nalbuphine_5ml_1 { + displayName = CSTRING(push_nalbuphine_IV_3); + displayNameProgress = CSTRING(pushing_nalbuphine_IV_3); + items[] = {"kat_syringe_kat_nalbuphine_5ml_3"}; callbackSuccess = QFUNC(medication); sounds[] = {}; }; @@ -681,10 +681,10 @@ class ACE_Medical_Treatment_Actions { sounds[] = {}; }; class syringe_kat_lorazapam_5ml_1: syringe_kat_lorazepam_5ml_1 { - displayName = CSTRING(push_lorazepam_IV_2); - displayNameProgress = CSTRING(pushing_lorazepam_IV_2); + displayName = CSTRING(push_lorazepam_IV_3); + displayNameProgress = CSTRING(pushing_lorazepam_IV_3); category = "surgery"; - items[] = {"kat_syringe_kat_lorazepam_5ml_2"}; + items[] = {"kat_syringe_kat_lorazepam_5ml_3"}; callbackSuccess = QFUNC(medication); sounds[] = {}; }; @@ -701,11 +701,11 @@ class ACE_Medical_Treatment_Actions { callbackSuccess = QFUNC(medication); sounds[] = {}; }; - class syringe_kat_flumazenil_5ml_2: syringe_kat_flumazenil_5ml_1 { - displayName = CSTRING(push_flumazenil_IV_2); - displayNameProgress = CSTRING(pushing_flumazenil_IV_2); + class syringe_kat_flumazenil_5ml_3: syringe_kat_flumazenil_5ml_1 { + displayName = CSTRING(push_flumazenil_IV_3); + displayNameProgress = CSTRING(pushing_flumazenil_IV_3); category = "surgery"; - items[] = {"kat_syringe_kat_flumazenil_5ml_2"}; + items[] = {"kat_syringe_kat_flumazenil_5ml_3"}; callbackSuccess = QFUNC(medication); sounds[] = {}; }; @@ -722,11 +722,11 @@ class ACE_Medical_Treatment_Actions { callbackSuccess = QFUNC(medication); sounds[] = {}; }; - class syringe_kat_etomidate_5ml_2: syringe_kat_etomidate_5ml_1 { - displayName = CSTRING(push_etomidate_IV_2); - displayNameProgress = CSTRING(pushing_flumazenil_IV_2); + class syringe_kat_etomidate_5ml_3: syringe_kat_etomidate_5ml_1 { + displayName = CSTRING(push_etomidate_IV_3); + displayNameProgress = CSTRING(pushing_flumazenil_IV_3); category = "surgery"; - items[] = {"kat_syringe_kat_etomidate_5ml_2"}; + items[] = {"kat_syringe_kat_etomidate_5ml_3"}; callbackSuccess = QFUNC(medication); sounds[] = {}; }; @@ -742,10 +742,10 @@ class ACE_Medical_Treatment_Actions { callbackSuccess = QFUNC(medication); sounds[] = {}; }; - class syringe_kat_epinephrineIV_5ml_2: syringe_kat_epinephrineIV_5ml_1 { - displayName = CSTRING(push_epinephrineIV_IV_2); - displayNameProgress = CSTRING(pushing_epinephrineIV_IV_2); - items[] = {"kat_syringe_kat_epinephrineIV_5ml_2"}; + class syringe_kat_epinephrineIV_5ml_3: syringe_kat_epinephrineIV_5ml_1 { + displayName = CSTRING(push_epinephrineIV_IV_3); + displayNameProgress = CSTRING(pushing_epinephrineIV_IV_3); + items[] = {"kat_syringe_kat_epinephrineIV_5ml_3"}; callbackSuccess = QFUNC(medication); sounds[] = {}; }; @@ -771,10 +771,10 @@ class ACE_Medical_Treatment_Actions { callbackSuccess = QFUNC(medication); sounds[] = {}; }; - class syringe_kat_ketamine_10ml_2: syringe_kat_ketamine_10ml_1 { - displayName = CSTRING(inject_ketamine_IM_2); - displayNameProgress = CSTRING(injecting_ketamine_IM_2); - items[] = {"kat_syringe_kat_ketamine_10ml_2"}; + class syringe_kat_ketamine_10ml_3: syringe_kat_ketamine_10ml_1 { + displayName = CSTRING(inject_ketamine_IM_3); + displayNameProgress = CSTRING(injecting_ketamine_IM_3); + items[] = {"kat_syringe_kat_ketamine_10ml_3"}; callbackSuccess = QFUNC(medication); sounds[] = {}; }; @@ -789,10 +789,10 @@ class ACE_Medical_Treatment_Actions { callbackSuccess = QFUNC(medication); sounds[] = {}; }; - class syringe_kat_fentanyl_10ml_2: syringe_kat_fentanyl_10ml_1 { - displayName = CSTRING(inject_fentanyl_IM_2); - displayNameProgress = CSTRING(injecting_fentanyl_IM_2); - items[] = {"kat_syringe_kat_fentanyl_10ml_2"}; + class syringe_kat_fentanyl_10ml_3: syringe_kat_fentanyl_10ml_1 { + displayName = CSTRING(inject_fentanyl_IM_3); + displayNameProgress = CSTRING(injecting_fentanyl_IM_3); + items[] = {"kat_syringe_kat_fentanyl_10ml_3"}; callbackSuccess = QFUNC(medication); sounds[] = {}; }; @@ -807,10 +807,10 @@ class ACE_Medical_Treatment_Actions { callbackSuccess = QFUNC(medication); sounds[] = {}; }; - class syringe_kat_nalbuphine_10ml_2: syringe_kat_nalbuphine_10ml_1 { - displayName = CSTRING(inject_nalbuphine_IM_2); - displayNameProgress = CSTRING(injecting_nalbuphine_IM_2); - items[] = {"kat_syringe_kat_nalbuphine_10ml_2"}; + class syringe_kat_nalbuphine_10ml_3: syringe_kat_nalbuphine_10ml_1 { + displayName = CSTRING(inject_nalbuphine_IM_3); + displayNameProgress = CSTRING(injecting_nalbuphine_IM_3); + items[] = {"kat_syringe_kat_nalbuphine_10ml_3"}; callbackSuccess = QFUNC(medication); sounds[] = {}; }; diff --git a/addons/pharma/CfgWeapons.hpp b/addons/pharma/CfgWeapons.hpp index 4ff9048c5..cf000e746 100644 --- a/addons/pharma/CfgWeapons.hpp +++ b/addons/pharma/CfgWeapons.hpp @@ -267,7 +267,7 @@ class CfgWeapons { mass = 1; }; }; - class kat_syringe_kat_txa_10ml_1: ACE_ItemCore { + class kat_syringe_txa_10ml_1: ACE_ItemCore { scope = 0; displayName = CSTRING(Syringe_txa_10_1_Display); picture = QPATHTOF(ui\syringe_item.paa); @@ -278,18 +278,18 @@ class CfgWeapons { mass = 1; }; }; - class kat_syringe_kat_txa_10ml_2: ACE_ItemCore { + class kat_syringe_txa_10ml_3: ACE_ItemCore { scope = 0; - displayName = CSTRING(Syringe_txa_10_2_Display); + displayName = CSTRING(Syringe_txa_10_3_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; - descriptionShort = CSTRING(Syringe_txa_10_2_DescShort); + descriptionShort = CSTRING(Syringe_txa_10_3_DescShort); ACE_isMedicalItem = 1; class ItemInfo: CBA_MiscItem_ItemInfo { mass = 1; }; }; - class kat_syringe_kat_lidocaine_10ml_1: ACE_ItemCore { + class kat_syringe_lidocaine_10ml_1: ACE_ItemCore { scope = 0; displayName = CSTRING(Syringe_lidocaine_10_1_Display); picture = QPATHTOF(ui\syringe_item.paa); @@ -300,7 +300,7 @@ class CfgWeapons { mass = 1; }; }; - class kat_syringe_kat_ketamine_10ml_1: ACE_ItemCore { + class kat_syringe_ketamine_10ml_1: ACE_ItemCore { scope = 0; displayName = CSTRING(Syringe_ketamine_10_1_Display); picture = QPATHTOF(ui\syringe_item.paa); @@ -311,18 +311,18 @@ class CfgWeapons { mass = 1; }; }; - class kat_syringe_kat_ketamine_10ml_2: ACE_ItemCore { + class kat_syringe_ketamine_10ml_3: ACE_ItemCore { scope = 0; - displayName = CSTRING(Syringe_ketamine_10_2_Display); + displayName = CSTRING(Syringe_ketamine_10_3_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; - descriptionShort = CSTRING(Syringe_ketamine_10_2_DescShort); + descriptionShort = CSTRING(Syringe_ketamine_10_3_DescShort); ACE_isMedicalItem = 1; class ItemInfo: CBA_MiscItem_ItemInfo { mass = 1; }; }; - class kat_syringe_kat_fentanyl_10ml_1: ACE_ItemCore { + class kat_syringe_fentanyl_10ml_1: ACE_ItemCore { scope = 0; displayName = CSTRING(Syringe_fentanyl_10_1_Display); picture = QPATHTOF(ui\syringe_item.paa); @@ -333,18 +333,18 @@ class CfgWeapons { mass = 1; }; }; - class kat_syringe_kat_fentanyl_10ml_2: ACE_ItemCore { + class kat_syringe_fentanyl_10ml_3: ACE_ItemCore { scope = 0; - displayName = CSTRING(Syringe_fentanyl_10_2_Display); + displayName = CSTRING(Syringe_fentanyl_10_3_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; - descriptionShort = CSTRING(Syringe_fentanyl_10_2_DescShort); + descriptionShort = CSTRING(Syringe_fentanyl_10_3_DescShort); ACE_isMedicalItem = 1; class ItemInfo: CBA_MiscItem_ItemInfo { mass = 1; }; }; - class kat_syringe_kat_nalbuphine_10ml_1: ACE_ItemCore { + class kat_syringe_nalbuphine_10ml_1: ACE_ItemCore { scope = 0; displayName = CSTRING(Syringe_nalbuphine_10_1_Display); picture = QPATHTOF(ui\syringe_item.paa); @@ -355,18 +355,18 @@ class CfgWeapons { mass = 1; }; }; - class kat_syringe_kat_nalbuphine_10ml_2: ACE_ItemCore { + class kat_syringe_nalbuphine_10ml_3: ACE_ItemCore { scope = 0; - displayName = CSTRING(Syringe_nalbuphine_10_2_Display); + displayName = CSTRING(Syringe_nalbuphine_10_3_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; - descriptionShort = CSTRING(Syringe_nalbuphine_10_2_DescShort); + descriptionShort = CSTRING(Syringe_nalbuphine_10_3_DescShort); ACE_isMedicalItem = 1; class ItemInfo: CBA_MiscItem_ItemInfo { mass = 1; }; }; - class kat_syringe_kat_txa_5ml_1: ACE_ItemCore { + class kat_syringe_txa_5ml_1: ACE_ItemCore { scope = 0; displayName = CSTRING(Syringe_txa_5_1_Display); picture = QPATHTOF(ui\syringe_item.paa); @@ -377,18 +377,18 @@ class CfgWeapons { mass = 1; }; }; - class kat_syringe_kat_txa_5ml_2: ACE_ItemCore { + class kat_syringe_txa_5ml_3: ACE_ItemCore { scope = 0; - displayName = CSTRING(Syringe_txa_5_2_Display); + displayName = CSTRING(Syringe_txa_5_3_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; - descriptionShort = CSTRING(Syringe_txa_5_2_DescShort); + descriptionShort = CSTRING(Syringe_txa_5_3_DescShort); ACE_isMedicalItem = 1; class ItemInfo: CBA_MiscItem_ItemInfo { mass = 1; }; }; - class kat_syringe_kat_eaca_5ml_1: ACE_ItemCore { + class kat_syringe_eaca_5ml_1: ACE_ItemCore { scope = 0; displayName = CSTRING(Syringe_eaca_5_1_Display); picture = QPATHTOF(ui\syringe_item.paa); @@ -399,18 +399,18 @@ class CfgWeapons { mass = 1; }; }; - class kat_syringe_kat_eaca_5ml_2: ACE_ItemCore { + class kat_syringe_eaca_5ml_3: ACE_ItemCore { scope = 0; - displayName = CSTRING(Syringe_eaca_5_2_Display); + displayName = CSTRING(Syringe_eaca_5_3_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; - descriptionShort = CSTRING(Syringe_eaca_5_2_DescShort); + descriptionShort = CSTRING(Syringe_eaca_5_3_DescShort); ACE_isMedicalItem = 1; class ItemInfo: CBA_MiscItem_ItemInfo { mass = 1; }; }; - class kat_syringe_kat_norepinephrine_5ml_1: ACE_ItemCore { + class kat_syringe_norepinephrine_5ml_1: ACE_ItemCore { scope = 0; displayName = CSTRING(Syringe_norepinephrine_5_1_Display); picture = QPATHTOF(ui\syringe_item.paa); @@ -421,18 +421,18 @@ class CfgWeapons { mass = 1; }; }; - class kat_syringe_kat_norepinephrine_5ml_2: ACE_ItemCore { + class kat_syringe_norepinephrine_5ml_3: ACE_ItemCore { scope = 0; - displayName = CSTRING(Syringe_norepinephrine_5_2_Display); + displayName = CSTRING(Syringe_norepinephrine_5_3_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; - descriptionShort = CSTRING(Syringe_norepinephrine_5_2_DescShort); + descriptionShort = CSTRING(Syringe_norepinephrine_5_3_DescShort); ACE_isMedicalItem = 1; class ItemInfo: CBA_MiscItem_ItemInfo { mass = 1; }; }; - class kat_syringe_kat_phenylephrine_5ml_1: ACE_ItemCore { + class kat_syringe_phenylephrine_5ml_1: ACE_ItemCore { scope = 0; displayName = CSTRING(Syringe_phenylephrine_5_1_Display); picture = QPATHTOF(ui\syringe_item.paa); @@ -443,18 +443,18 @@ class CfgWeapons { mass = 1; }; }; - class kat_syringe_kat_phenylephrine_5ml_2: ACE_ItemCore { + class kat_syringe_phenylephrine_5ml_3: ACE_ItemCore { scope = 0; - displayName = CSTRING(Syringe_phenylephrine_5_2_Display); + displayName = CSTRING(Syringe_phenylephrine_5_3_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; - descriptionShort = CSTRING(Syringe_phenylephrine_5_2_DescShort); + descriptionShort = CSTRING(Syringe_phenylephrine_5_3_DescShort); ACE_isMedicalItem = 1; class ItemInfo: CBA_MiscItem_ItemInfo { mass = 1; }; }; - class kat_syringe_kat_nitroglycerin_5ml_1: ACE_ItemCore { + class kat_syringe_nitroglycerin_5ml_1: ACE_ItemCore { scope = 0; displayName = CSTRING(Syringe_nitroglycerin_5_1_Display); picture = QPATHTOF(ui\syringe_item.paa); @@ -465,18 +465,18 @@ class CfgWeapons { mass = 1; }; }; - class kat_syringe_kat_nitroglycerin_5ml_2: ACE_ItemCore { + class kat_syringe_nitroglycerin_5ml_3: ACE_ItemCore { scope = 0; - displayName = CSTRING(Syringe_nitroglycerin_5_2_Display); + displayName = CSTRING(Syringe_nitroglycerin_5_3_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; - descriptionShort = CSTRING(Syringe_nitroglycerin_5_2_DescShort); + descriptionShort = CSTRING(Syringe_nitroglycerin_5_3_DescShort); ACE_isMedicalItem = 1; class ItemInfo: CBA_MiscItem_ItemInfo { mass = 1; }; }; - class kat_syringe_kat_amiodarone_5ml_1: ACE_ItemCore { + class kat_syringe_amiodarone_5ml_1: ACE_ItemCore { scope = 0; displayName = CSTRING(Syringe_amiodarone_5_1_Display); picture = QPATHTOF(ui\syringe_item.paa); @@ -487,18 +487,18 @@ class CfgWeapons { mass = 1; }; }; - class kat_syringe_kat_amiodarone_5ml_2: ACE_ItemCore { + class kat_syringe_amiodarone_5ml_3: ACE_ItemCore { scope = 0; - displayName = CSTRING(Syringe_amiodarone_5_2_Display); + displayName = CSTRING(Syringe_amiodarone_5_3_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; - descriptionShort = CSTRING(Syringe_amiodarone_5_2_DescShort); + descriptionShort = CSTRING(Syringe_amiodarone_5_3_DescShort); ACE_isMedicalItem = 1; class ItemInfo: CBA_MiscItem_ItemInfo { mass = 1; }; }; - class kat_syringe_kat_epinephrineIV_5ml_1: ACE_ItemCore { + class kat_syringe_epinephrineIV_5ml_1: ACE_ItemCore { scope = 0; displayName = CSTRING(Syringe_epinephrineIV_5_1_Display); picture = QPATHTOF(ui\syringe_item.paa); @@ -509,18 +509,18 @@ class CfgWeapons { mass = 1; }; }; - class kat_syringe_kat_epinephrineIV_5ml_2: ACE_ItemCore { + class kat_syringe_epinephrineIV_5ml_3: ACE_ItemCore { scope = 0; - displayName = CSTRING(Syringe_epinephrineIV_5_2_Display); + displayName = CSTRING(Syringe_epinephrineIV_5_3_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; - descriptionShort = CSTRING(Syringe_epinephrineIV_5_2_DescShort); + descriptionShort = CSTRING(Syringe_epinephrineIV_5_3_DescShort); ACE_isMedicalItem = 1; class ItemInfo: CBA_MiscItem_ItemInfo { mass = 1; }; }; - class kat_syringe_kat_lidocaine_5ml_1: ACE_ItemCore { + class kat_syringe_lidocaine_5ml_1: ACE_ItemCore { scope = 0; displayName = CSTRING(Syringe_lidocaine_5_1_Display); picture = QPATHTOF(ui\syringe_item.paa); @@ -531,18 +531,18 @@ class CfgWeapons { mass = 1; }; }; - class kat_syringe_kat_lidocaine_5ml_2: ACE_ItemCore { + class kat_syringe_lidocaine_5ml_3: ACE_ItemCore { scope = 0; - displayName = CSTRING(Syringe_lidocaine_5_2_Display); + displayName = CSTRING(Syringe_lidocaine_5_3_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; - descriptionShort = CSTRING(Syringe_lidocaine_5_2_DescShort); + descriptionShort = CSTRING(Syringe_lidocaine_5_3_DescShort); ACE_isMedicalItem = 1; class ItemInfo: CBA_MiscItem_ItemInfo { mass = 1; }; }; - class kat_syringe_kat_ketamine_5ml_1: ACE_ItemCore { + class kat_syringe_ketamine_5ml_1: ACE_ItemCore { scope = 0; displayName = CSTRING(Syringe_ketamine_5_1_Display); picture = QPATHTOF(ui\syringe_item.paa); @@ -553,18 +553,18 @@ class CfgWeapons { mass = 1; }; }; - class kat_syringe_kat_ketamine_5ml_2: ACE_ItemCore { + class kat_syringe_ketamine_5ml_3: ACE_ItemCore { scope = 0; - displayName = CSTRING(Syringe_ketamine_5_2_Display); + displayName = CSTRING(Syringe_ketamine_5_3_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; - descriptionShort = CSTRING(Syringe_ketamine_5_2_DescShort); + descriptionShort = CSTRING(Syringe_ketamine_5_3_DescShort); ACE_isMedicalItem = 1; class ItemInfo: CBA_MiscItem_ItemInfo { mass = 1; }; }; - class kat_syringe_kat_fentanyl_5ml_1: ACE_ItemCore { + class kat_syringe_fentanyl_5ml_1: ACE_ItemCore { scope = 0; displayName = CSTRING(Syringe_fentanyl_5_1_Display); picture = QPATHTOF(ui\syringe_item.paa); @@ -575,18 +575,18 @@ class CfgWeapons { mass = 1; }; }; - class kat_syringe_kat_fentanyl_5ml_2: ACE_ItemCore { + class kat_syringe_fentanyl_5ml_3: ACE_ItemCore { scope = 0; - displayName = CSTRING(Syringe_fentanyl_10_2_Display); + displayName = CSTRING(Syringe_fentanyl_10_3_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; - descriptionShort = CSTRING(Syringe_fentanyl_10_2_DescShort); + descriptionShort = CSTRING(Syringe_fentanyl_10_3_DescShort); ACE_isMedicalItem = 1; class ItemInfo: CBA_MiscItem_ItemInfo { mass = 1; }; }; - class kat_syringe_kat_nalbuphine_5ml_1: ACE_ItemCore { + class kat_syringe_nalbuphine_5ml_1: ACE_ItemCore { scope = 0; displayName = CSTRING(Syringe_nalbuphine_5_1_Display); picture = QPATHTOF(ui\syringe_item.paa); @@ -597,18 +597,18 @@ class CfgWeapons { mass = 1; }; }; - class kat_syringe_kat_nalbuphine_5ml_2: ACE_ItemCore { + class kat_syringe_nalbuphine_5ml_3: ACE_ItemCore { scope = 0; - displayName = CSTRING(Syringe_nalbuphine_5_2_Display); + displayName = CSTRING(Syringe_nalbuphine_5_3_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; - descriptionShort = CSTRING(Syringe_nalbuphine_5_2_DescShort); + descriptionShort = CSTRING(Syringe_nalbuphine_5_3_DescShort); ACE_isMedicalItem = 1; class ItemInfo: CBA_MiscItem_ItemInfo { mass = 1; }; }; - class kat_syringe_kat_lorazepam_5ml_1: ACE_ItemCore { + class kat_syringe_lorazepam_5ml_1: ACE_ItemCore { scope = 0; displayName = CSTRING(Syringe_lorazepam_5_1_Display); picture = QPATHTOF(ui\syringe_item.paa); @@ -619,18 +619,18 @@ class CfgWeapons { mass = 1; }; }; - class kat_syringe_kat_lorazepam_5ml_2: ACE_ItemCore { + class kat_syringe_lorazepam_5ml_3: ACE_ItemCore { scope = 0; - displayName = CSTRING(Syringe_lorazepam_5_2_Display); + displayName = CSTRING(Syringe_lorazepam_5_3_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; - descriptionShort = CSTRING(Syringe_lorazepam_5_2_DescShort); + descriptionShort = CSTRING(Syringe_lorazepam_5_3_DescShort); ACE_isMedicalItem = 1; class ItemInfo: CBA_MiscItem_ItemInfo { mass = 1; }; }; - class kat_syringe_kat_flumazenil_5ml_1: ACE_ItemCore { + class kat_syringe_flumazenil_5ml_1: ACE_ItemCore { scope = 0; displayName = CSTRING(Syringe_flumazenil_5_1_Display); picture = QPATHTOF(ui\syringe_item.paa); @@ -641,18 +641,18 @@ class CfgWeapons { mass = 1; }; }; - class kat_syringe_kat_flumazenil_5ml_2: ACE_ItemCore { + class kat_syringe_flumazenil_5ml_3: ACE_ItemCore { scope = 0; - displayName = CSTRING(Syringe_flumazenil_5_2_Display); + displayName = CSTRING(Syringe_flumazenil_5_3_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; - descriptionShort = CSTRING(Syringe_flumazenil_5_2_DescShort); + descriptionShort = CSTRING(Syringe_flumazenil_5_3_DescShort); ACE_isMedicalItem = 1; class ItemInfo: CBA_MiscItem_ItemInfo { mass = 1; }; }; - class kat_syringe_kat_etomidate_5ml_1: ACE_ItemCore { + class kat_syringe_etomidate_5ml_1: ACE_ItemCore { scope = 0; displayName = CSTRING(Syringe_etomidate_5_1_Display); picture = QPATHTOF(ui\syringe_item.paa); @@ -663,12 +663,12 @@ class CfgWeapons { mass = 1; }; }; - class kat_syringe_kat_etomidate_5ml_2: ACE_ItemCore { + class kat_syringe_etomidate_5ml_3: ACE_ItemCore { scope = 0; - displayName = CSTRING(Syringe_etomidate_5_2_Display); + displayName = CSTRING(Syringe_etomidate_5_3_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; - descriptionShort = CSTRING(Syringe_etomidate_5_2_DescShort); + descriptionShort = CSTRING(Syringe_etomidate_5_3_DescShort); ACE_isMedicalItem = 1; class ItemInfo: CBA_MiscItem_ItemInfo { mass = 1; diff --git a/addons/pharma/XEH_preInit.sqf b/addons/pharma/XEH_preInit.sqf index e1af0c549..c04280181 100644 --- a/addons/pharma/XEH_preInit.sqf +++ b/addons/pharma/XEH_preInit.sqf @@ -73,18 +73,9 @@ PREP_RECOMPILE_END; ] call CBA_Settings_fnc_init; [ - QGVAR(medLvl_PrepIVSyringe), + QGVAR(medLvl_PrepSyringe), "LIST", - [LLSTRING(medLvl_PrepIVSyringe), LLSTRING(medLvl_PrepIVSyringe_Desc)], - [CBA_SETTINGS_CAT, ELSTRING(GUI,SubCategory_Basic)], - [[0, 1, 2], [ACELSTRING(medical_treatment,Anyone), ACELSTRING(medical_treatment,Medics), ACELSTRING(medical_treatment,Doctors)], 0], - true -] call CBA_Settings_fnc_init; - -[ - QGVAR(medLvl_PrepIMSyringe), - "LIST", - [LLSTRING(medLvl_PrepIMSyringe), LLSTRING(medLvl_PrepIMSyringe_Desc)], + [LLSTRING(medLvl_PrepSyringe), LLSTRING(medLvl_PrepSyringe_Desc)], [CBA_SETTINGS_CAT, ELSTRING(GUI,SubCategory_Basic)], [[0, 1, 2], [ACELSTRING(medical_treatment,Anyone), ACELSTRING(medical_treatment,Medics), ACELSTRING(medical_treatment,Doctors)], 0], true diff --git a/addons/pharma/functions/fnc_applyIV.sqf b/addons/pharma/functions/fnc_applyIV.sqf index 20b60ca9e..27840297b 100644 --- a/addons/pharma/functions/fnc_applyIV.sqf +++ b/addons/pharma/functions/fnc_applyIV.sqf @@ -56,7 +56,7 @@ switch (_usedItem) do { [_patient, "activity", LSTRING(iv_log), [[_medic] call ACEFUNC(common,getName), "14g IV"]] call ACEFUNC(medical_treatment,addToLog); [_patient, "14g IV"] call ACEFUNC(medical_treatment,addToTriageCard);}; - case "kat_IV_20": { + case "kat_IV_30": { _IVarray set [_partIndex, 4]; _IVrate set [_partIndex, 0.5]; _patient setVariable [QGVAR(IV), _IVarray, true]; @@ -71,9 +71,9 @@ switch (_usedItem) do { _patient setVariable [QGVAR(IVrate), _IVrate, true]; private _lidocaineCount = [_patient, "Lidocaine", false] call ACEFUNC(medical_status,getMedicationCount); private _lidocaineCount51 = [_patient, "syringe_kat_lidocaine_5ml_1", false] call ACEFUNC(medical_status,getMedicationCount); - private _lidocaineCount52 = [_patient, "syringe_kat_lidocaine_5ml_2", false] call ACEFUNC(medical_status,getMedicationCount); + private _lidocaineCount53 = [_patient, "syringe_kat_lidocaine_5ml_3", false] call ACEFUNC(medical_status,getMedicationCount); private _lidocaineCount101 = [_patient, "syringe_kat_lidocaine_10ml_1", false] call ACEFUNC(medical_status,getMedicationCount); - private _lidocaineCount102 = [_patient, "syringe_kat_lidocaine_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); + private _lidocaineCount103 = [_patient, "syringe_kat_lidocaine_10ml_3", false] call ACEFUNC(medical_status,getMedicationCount); private _morphineCount = [_patient, "Morphine", false] call ACEFUNC(medical_status,getMedicationCount); private _nalbuphineCount = [_patient, "Nalbuphine", false] call ACEFUNC(medical_status,getMedicationCount); private _fentanylCount = [_patient, "Fentanyl", false] call ACEFUNC(medical_status,getMedicationCount); @@ -81,23 +81,23 @@ switch (_usedItem) do { private _nalbuphineCount51 = [_patient, "syringe_kat_nalbuphine_5ml_1", false] call ACEFUNC(medical_status,getMedicationCount); private _fentanylCount51 = [_patient, "syringe_kat_fentanyl_5ml_1", false] call ACEFUNC(medical_status,getMedicationCount); private _ketamineCount51 = [_patient, "syringe_kat_ketamine_5ml_1", false] call ACEFUNC(medical_status,getMedicationCount); - private _nalbuphineCount52 = [_patient, "syringe_kat_nalbuphine_5ml_2", false] call ACEFUNC(medical_status,getMedicationCount); - private _fentanylCount52 = [_patient, "syringe_kat_fentanyl_5ml_2", false] call ACEFUNC(medical_status,getMedicationCount); - private _ketamineCount52= [_patient, "syringe_kat_ketamine_5ml_2", false] call ACEFUNC(medical_status,getMedicationCount); - private _nalbuphineCount101 = [_patient, "syringe_kat_nalbuphine_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); - private _fentanylCount101 = [_patient, "syringe_kat_fentanyl_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); - private _ketamineCount101 = [_patient, "syringe_kat_ketamine_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); - private _nalbuphineCount102 = [_patient, "syringe_kat_nalbuphine_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); - private _fentanylCount102 = [_patient, "syringe_kat_fentanyl_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); - private _ketamineCount102 = [_patient, "syringe_kat_ketamine_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); - if (_lidocaineCount <= 0.6 && _morphineCount <= 0.6 && _nalbuphineCount <= 0.6 && _fentanylCount <= 0.6 && _ketamineCount <= 0.6 && _lidocaineCount51 <= 0.6 && _nalbuphineCount51 <= 0.6 && _fentanylCount51 <= 0.6 && _ketamineCount51 <= 0.6 &&_lidocaineCount52 <= 0.6 && _nalbuphineCount52 <= 0.6 && _fentanylCount52 <= 0.6 && _ketamineCount52 <= 0.6 && _lidocaineCount101 <= 0.6 && _nalbuphineCount101 <= 0.6 && _fentanylCount101 <= 0.6 && _ketamineCount101 <= 0.6 && _lidocaineCount102 <= 0.6 && _nalbuphineCount102 <= 0.6 && _fentanylCount102 <= 0.6 && _ketamineCount102 <= 0.6) then {[_patient, 0.8] call ACEFUNC(medical_status,adjustPainLevel)}; + private _nalbuphineCount53 = [_patient, "syringe_kat_nalbuphine_5ml_3", false] call ACEFUNC(medical_status,getMedicationCount); + private _fentanylCount53 = [_patient, "syringe_kat_fentanyl_5ml_3", false] call ACEFUNC(medical_status,getMedicationCount); + private _ketamineCount53= [_patient, "syringe_kat_ketamine_5ml_3", false] call ACEFUNC(medical_status,getMedicationCount); + private _nalbuphineCount101 = [_patient, "syringe_kat_nalbuphine_10ml_3", false] call ACEFUNC(medical_status,getMedicationCount); + private _fentanylCount101 = [_patient, "syringe_kat_fentanyl_10ml_3", false] call ACEFUNC(medical_status,getMedicationCount); + private _ketamineCount101 = [_patient, "syringe_kat_ketamine_10ml_3", false] call ACEFUNC(medical_status,getMedicationCount); + private _nalbuphineCount103 = [_patient, "syringe_kat_nalbuphine_10ml_3", false] call ACEFUNC(medical_status,getMedicationCount); + private _fentanylCount103 = [_patient, "syringe_kat_fentanyl_10ml_3", false] call ACEFUNC(medical_status,getMedicationCount); + private _ketamineCount103 = [_patient, "syringe_kat_ketamine_10ml_3", false] call ACEFUNC(medical_status,getMedicationCount); + if (_lidocaineCount <= 0.6 && _morphineCount <= 0.6 && _nalbuphineCount <= 0.6 && _fentanylCount <= 0.6 && _ketamineCount <= 0.6 && _lidocaineCount51 <= 0.6 && _nalbuphineCount51 <= 0.6 && _fentanylCount51 <= 0.6 && _ketamineCount51 <= 0.6 &&_lidocaineCount53 <= 0.6 && _nalbuphineCount53 <= 0.6 && _fentanylCount53 <= 0.6 && _ketamineCount53 <= 0.6 && _lidocaineCount101 <= 0.6 && _nalbuphineCount101 <= 0.6 && _fentanylCount101 <= 0.6 && _ketamineCount101 <= 0.6 && _lidocaineCount103 <= 0.6 && _nalbuphineCount103 <= 0.6 && _fentanylCount103 <= 0.6 && _ketamineCount103 <= 0.6) then {[_patient, 0.8] call ACEFUNC(medical_status,adjustPainLevel)}; [_patient, "activity", LSTRING(iv_log), [[_medic] call ACEFUNC(common,getName), "FAST IO"]] call ACEFUNC(medical_treatment,addToLog); [_patient, "FAST IO"] call ACEFUNC(medical_treatment,addToTriageCard);}; default {}; }; -if (GVAR(IVdropEnable) && ((_usedItem isEqualTo "kat_IV_16") || (_usedItem isEqualTo "kat_IV_14") || (_usedItem isEqualTo "kat_IV_20"))) then { +if (GVAR(IVdropEnable) && ((_usedItem isEqualTo "kat_IV_16") || (_usedItem isEqualTo "kat_IV_14") || (_usedItem isEqualTo "kat_IV_30"))) then { [{ params ["_patient", "_partIndex", "_IVpfhActual"]; @@ -125,7 +125,7 @@ if (GVAR(IVdropEnable) && ((_usedItem isEqualTo "kat_IV_16") || (_usedItem isEqu case "1": {_patient addItem "kat_IO_FAST"}; case "2": {_patient addItem "kat_IV_16"}; case "3": {_patient addItem "kat_IV_14"}; - case "4": {_patient addItem "kat_IV_20"}; + case "4": {_patient addItem "kat_IV_30"}; }; }; diff --git a/addons/pharma/functions/fnc_clotWound.sqf b/addons/pharma/functions/fnc_clotWound.sqf index c1bc6e85e..d003b13c6 100644 --- a/addons/pharma/functions/fnc_clotWound.sqf +++ b/addons/pharma/functions/fnc_clotWound.sqf @@ -62,10 +62,10 @@ private _fnc_clotWound = { if (_amountOf * _bleeding > 0) exitWith { - if ((_countTXA > 0.3 || _countTXAiV51 > 0.3 || _countTXAiV52 > 0.3 || _countTXAiM101 > 0.3 || _countTXAiM102 > 0.3) || (_countEACA > 0.3 || _countEACAIV51 > 0.3 || _countEACAIV52 > 0.3)) then { + if ((_countTXA > 0.3 || _countTXAiV51 > 0.3 || _countTXAiV52 > 0.3 || _countTXAiM101 > 0.3 || _countTXAiM103 > 0.3) || (_countEACA > 0.3 || _countEACAIV51 > 0.3 || _countEACAIV52 > 0.3)) then { _logString = LSTRING(coagulation_Bandaged_TXA); - if ((_countTXA > 0.3 || _countTXAiV51 > 0.3 || _countTXAiV52 > 0.3 || _countTXAiM101 > 0.3 || _countTXAiM102 > 0.3) && (_countEACA > 0.3 || _countEACAIV51 > 0.3 || _countEACAIV52 > 0.3)) exitWith { // If TXA & EACA are in system at same time use EACA bandage + if ((_countTXA > 0.3 || _countTXAiV51 > 0.3 || _countTXAiV52 > 0.3 || _countTXAiM101 > 0.3 || _countTXAiM103 > 0.3) && (_countEACA > 0.3 || _countEACAIV51 > 0.3 || _countEACAIV52 > 0.3)) exitWith { // If TXA & EACA are in system at same time use EACA bandage _woundClotTime = round (_woundClotTime / 3 * 2); _bandageToUse = _bandageToUse + "EACA"; }; @@ -115,12 +115,12 @@ private _fnc_clotWound = { private _coagulationFactor = _unit getVariable [QGVAR(coagulationFactor), 30]; private _countTXA = [_unit, "TXA", false] call ACEFUNC(medical_status,getMedicationCount); private _countTXAiV51= [_patient, "syringe_kat_txa_5ml_1", false] call ACEFUNC(medical_status,getMedicationCount); - private _countTXAiV51 = [_patient, "syringe_kat_txa_5ml_2", false] call ACEFUNC(medical_status,getMedicationCount); + private _countTXAiV53 = [_patient, "syringe_kat_txa_5ml_3", false] call ACEFUNC(medical_status,getMedicationCount); private _countTXAiM101 = [_patient, "syringe_kat_txa_10ml_1", false] call ACEFUNC(medical_status,getMedicationCount); - private _countTXAiM102 = [_patient, "syringe_kat_txa_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); + private _countTXAiM103 = [_patient, "syringe_kat_txa_10ml_3", false] call ACEFUNC(medical_status,getMedicationCount); private _countEACA = [_unit, "EACA", false] call ACEFUNC(medical_status,getMedicationCount); private _countEACAIV51 = [_patient, "syringe_kat_eaca_5ml_1", false] call ACEFUNC(medical_status,getMedicationCount); - private _countEACAIV52 = [_patient, "syringe_kat_eaca_5ml_2", false] call ACEFUNC(medical_status,getMedicationCount); + private _countEACAIV53 = [_patient, "syringe_kat_eaca_5ml_3", false] call ACEFUNC(medical_status,getMedicationCount); private _hasWoundToBandageArray = []; if (_openWounds isEqualTo createHashMap) exitWith {}; // Exit when hashmap not initialized (Will not work when hashmap is set, cause ace only changes value of "woundCount" to 0) diff --git a/addons/pharma/functions/fnc_coagRegen.sqf b/addons/pharma/functions/fnc_coagRegen.sqf index 7e78d2990..810577fc2 100644 --- a/addons/pharma/functions/fnc_coagRegen.sqf +++ b/addons/pharma/functions/fnc_coagRegen.sqf @@ -42,12 +42,12 @@ if !(GVAR(coagulation)) exitWith {}; private _cooldownON = _unit getVariable [QGVAR(coagulationRegenCooldown), false]; private _countTXA = [_unit, "TXA"] call ACEFUNC(medical_status,getMedicationCount); private _countTXAiV51= [_patient, "syringe_kat_txa_5ml_1"] call ACEFUNC(medical_status,getMedicationCount); - private _countTXAiV51 = [_patient, "syringe_kat_txa_5ml_2"] call ACEFUNC(medical_status,getMedicationCount); + private _countTXAiV53 = [_patient, "syringe_kat_txa_5ml_3"] call ACEFUNC(medical_status,getMedicationCount); private _countTXAiM101 = [_patient, "syringe_kat_txa_10ml_1"] call ACEFUNC(medical_status,getMedicationCount); - private _countTXAiM102 = [_patient, "syringe_kat_txa_10ml_2"] call ACEFUNC(medical_status,getMedicationCount); + private _countTXAiM103 = [_patient, "syringe_kat_txa_10ml_3"] call ACEFUNC(medical_status,getMedicationCount); private _countEACA = [_unit, "EACA"] call ACEFUNC(medical_status,getMedicationCount); private _countEACAIV51 = [_patient, "syringe_kat_eaca_5ml_1"] call ACEFUNC(medical_status,getMedicationCount); - private _countEACAIV52 = [_patient, "syringe_kat_eaca_5ml_2"] call ACEFUNC(medical_status,getMedicationCount); + private _countEACAIV53 = [_patient, "syringe_kat_eaca_5ml_3"] call ACEFUNC(medical_status,getMedicationCount); private _ammountToAdd = 1; if (_currentCoagFactors < _savedCoagFactors) exitWith { @@ -60,8 +60,8 @@ if !(GVAR(coagulation)) exitWith {}; if (_currentCoagFactors == _savedCoagFactors && _currentCoagFactors < _limitRegenCoagFactors) exitWith { - if ((_countTXA > 0 || _countTXAiV51 > 0 || _countTXAiV52 > 0 || _countTXAiM101 > 0 || _countTXAiM102 > 0) || (_countEACA > 0 || _countEACAIV51 > 0 || _countEACAIV52 > 0)) then { // If TXA or EACA are in system add more factors - if ((_countTXA > 0 || _countTXAiV51 > 0 || _countTXAiV52 > 0 || _countTXAiM101 > 0 || _countTXAiM102 > 0) && (_countEACA > 0 || _countEACAIV51 > 0 || _countEACAIV52 > 0) > 0) exitWith { + if ((_countTXA > 0 || _countTXAiV51 > 0 || _countTXAiV53 > 0 || _countTXAiM101 > 0 || _countTXAiM103 > 0) || (_countEACA > 0 || _countEACAIV51 > 0 || _countEACAIV53 > 0)) then { // If TXA or EACA are in system add more factors + if ((_countTXA > 0 || _countTXAiV51 > 0 || _countTXAiV53 > 0 || _countTXAiM101 > 0 || _countTXAiM103 > 0) && (_countEACA > 0 || _countEACAIV51 > 0 || _countEACAIV53 > 0) > 0) exitWith { _ammountToAdd = 4; }; _ammountToAdd = 2; @@ -73,7 +73,7 @@ if !(GVAR(coagulation)) exitWith {}; if (_currentCoagFactors > _limitRegenCoagFactors && !(_cooldownON)) exitWith { - if ((_countTXA > 0 || _countTXAiV51 > 0 || _countTXAiV52 > 0 || _countTXAiM101 > 0 || _countTXAiM102 > 0) || (_countEACA > 0 || _countEACAIV51 > 0 || _countEACAIV52 > 0)) exitWith {}; // If TXA or EACA is in system don't remove factor + if ((_countTXA > 0 || _countTXAiV51 > 0 || _countTXAiV53 > 0 || _countTXAiM101 > 0 || _countTXAiM103 > 0) || (_countEACA > 0 || _countEACAIV51 > 0 || _countEACAIV53 > 0)) exitWith {}; // If TXA or EACA is in system don't remove factor _unit setVariable [QGVAR(coagulationFactor), (_currentCoagFactors - 1), true]; _unit setVariable [QGVAR(coagulationSavedFactors), (_currentCoagFactors - 1), true]; diff --git a/addons/pharma/functions/fnc_prepareSyringe.sqf b/addons/pharma/functions/fnc_prepareSyringe.sqf index 5f9fc8412..17b1389a4 100644 --- a/addons/pharma/functions/fnc_prepareSyringe.sqf +++ b/addons/pharma/functions/fnc_prepareSyringe.sqf @@ -16,28 +16,22 @@ * None * * Example: - * [player, player, ["kat_TXA", "1", "5ml"]] call kat_pharma_fnc_prepareSyringe; + * [player, player, ["TXA", "1", "5ml"]] call kat_pharma_fnc_prepareSyringe; * * Public: No */ +params ["_player", "_medicationType", "_syringeType", "_doseType"]; -params ["_target", "_player", "_params"]; -_params params ["_className", "_syringeType", "_doseType"]; - -// Combine class name, dose type, and syringe type to form the final syringe class name -private _syringeClassName = format ["kat_syringe_%1_%2_%3", _className, _syringeType, _doseType]; - -// Check if the syringe class exists +private _syringeClassName = format ["kat_syringe_%1_%2_%3", _medicationType, _syringeType, _doseType]; private _hasSyringe = isClass (configFile >> "CfgWeapons" >> _syringeClassName); - if (!_hasSyringe) exitWith { - hint format ["Syringe type for %1 with %2 syringe and %3 dose does not exist.", _className, _syringeType, _doseType]; + hint format ["Syringe type for %1 with %2 syringe and %3 dose does not exist.", _medicationType, _syringeType, _doseType]; }; - -// Remove the base syringe and the medication from the player's inventory private _baseSyringe = format ["kat_%1_syringe", _syringeType]; _player removeItem _baseSyringe; -_player removeItem _className; - -// Add the crafted syringe with fluid to the player's inventory -_player addItem _syringeClassName; \ No newline at end of file +_katClassName = "kat_" + _medicationType; +_player removeItem _katClassName; +_player addItem _syringeClassName; +private _syringeDisplayName = getText (configFile >> "CfgWeapons" >> _syringeClassName >> "displayName"); +hint format ["Prepared syringe: %1", _syringeDisplayName]; +[{hint ""}, [], 5] call CBA_fnc_waitAndExecute; \ No newline at end of file diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_AtropineLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_AtropineLocal.sqf index 02931a9f3..fd6ea3bb0 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_AtropineLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_AtropineLocal.sqf @@ -17,7 +17,7 @@ params ["_patient", "_bodyPart", "_classname"]; -if (_classname isEqualTo "syringe_kat_atropine_5ml_2") exitWith {}; +if (_classname isEqualTo "syringe_kat_atropine_5ml_3") exitWith {}; private _medicationArray = _patient getVariable [QACEGVAR(medical,medications), []]; diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_EACALocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_EACALocal.sqf index cb1160eb3..63e8d9cc7 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_EACALocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_EACALocal.sqf @@ -23,7 +23,7 @@ private _IVarray = _patient getVariable [QGVAR(IV), [0,0,0,0,0,0]]; private _IVactual = _IVarray select _partIndex; private _countEACA = [_patient, "EACA"] call ACEFUNC(medical_status,getMedicationCount); private _countEACAIV51 = [_patient, "syringe_kat_eaca_5ml_1"] call ACEFUNC(medical_status,getMedicationCount); -private _countEACAIV52 = [_patient, "syringe_kat_eaca_5ml_2"] call ACEFUNC(medical_status,getMedicationCount); +private _countEACAIV53 = [_patient, "syringe_kat_eaca_5ml_3"] call ACEFUNC(medical_status,getMedicationCount); private _allowStack = missionNamespace getVariable [QGVAR(allowStackScript_EACA), true]; private _keepRunning = missionNamespace getVariable [QGVAR(keepScriptRunning_EACA), false]; private _cycleTime = missionNamespace getVariable [QGVAR(bandageCycleTime_EACA), 5]; @@ -51,7 +51,7 @@ if (_IVactual > 1) then { if (!(GVAR(coagulation)) || GVAR(coagulation_allow_EACA_script)) then { if (_IVactual != 5) then { - if ((_countEACA > 1 || _countEACAIV51 > 1 || _countEACAIV52 > 1)&& !(_allowStack)) exitWith {}; + if ((_countEACA > 1 || _countEACAIV51 > 1 || _countEACAIV53 > 1)&& !(_allowStack)) exitWith {}; [{ params ["_args", "_idPFH"]; diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_TXALocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_TXALocal.sqf index 554d42bba..b67853246 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_TXALocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_TXALocal.sqf @@ -23,9 +23,9 @@ private _IVarray = _patient getVariable [QGVAR(IV), [0,0,0,0,0,0]]; private _IVactual = _IVarray select _partIndex; private _countTXA = [_patient, "TXA"] call ACEFUNC(medical_status,getMedicationCount); private _countTXAiV51= [_patient, "syringe_kat_txa_5ml_1"] call ACEFUNC(medical_status,getMedicationCount); -private _countTXAiV51 = [_patient, "syringe_kat_txa_5ml_2"] call ACEFUNC(medical_status,getMedicationCount); +private _countTXAiV53 = [_patient, "syringe_kat_txa_5ml_3"] call ACEFUNC(medical_status,getMedicationCount); private _countTXAiM101 = [_patient, "syringe_kat_txa_10ml_1"] call ACEFUNC(medical_status,getMedicationCount); -private _countTXAiM102 = [_patient, "syringe_kat_txa_10ml_2"] call ACEFUNC(medical_status,getMedicationCount); +private _countTXAiM103 = [_patient, "syringe_kat_txa_10ml_3"] call ACEFUNC(medical_status,getMedicationCount); private _allowStack = missionNamespace getVariable [QGVAR(allowStackScript_TXA), true]; private _keepRunning = missionNamespace getVariable [QGVAR(keepScriptRunning_TXA), false]; private _cycleTime = missionNamespace getVariable [QGVAR(bandageCycleTime_TXA), 5]; @@ -54,7 +54,7 @@ if (!(GVAR(coagulation)) || GVAR(coagulation_allow_TXA_script)) then { if (_IVactual != 5) then { - if ((_countTXA > 1 || _countTXAiV51 > 1 || _countTXAiV52 > 1 || _countTXAiM101 > 1 || _countTXAiM102 > 1) && !(_allowStack)) exitWith {}; + if ((_countTXA > 1 || _countTXAiV51 > 1 || _countTXAiV53 > 1 || _countTXAiM101 > 1 || _countTXAiM103 > 1) && !(_allowStack)) exitWith {}; [{ params ["_args", "_idPFH"]; diff --git a/addons/pharma/stringtable.xml b/addons/pharma/stringtable.xml index 74d485fcc..0171056a3 100644 --- a/addons/pharma/stringtable.xml +++ b/addons/pharma/stringtable.xml @@ -3806,10 +3806,10 @@ 10ml Syringe loaded with 1 gram of TXA - + 10ml Syringe/2g TXA - + 10ml Syringe loaded with 2 grams of TXA @@ -3824,10 +3824,10 @@ 10ml Syringe loaded with 25mg of Ketamine - + 10ml Syringe/80mg Ketamine - + 10ml Syringe loaded with 80mg of Ketamine @@ -3836,10 +3836,10 @@ 10ml Syringe loaded with 40mcg of Fentanyl - + 10ml Syringe/80mcg Fentanyl - + 10ml Syringe loaded with 80mcg of Fentanyl @@ -3848,10 +3848,10 @@ 10ml Syringe loaded with 10mg of Nalbuphine - + 10ml Syringe/20mg Nalbuphine - + 10ml Syringe loaded with 20mg of Nalbuphine @@ -3860,10 +3860,10 @@ 5ml Syringe loaded with 150mcg of Norepinephrine - + 5ml Syringe/240mcg Norepinephrine - + 5ml Syringe loaded with 240mcg of Norepinephrine @@ -3872,10 +3872,10 @@ 5ml Syringe loaded with 100mcg of Phenylephrine - + 5ml Syringe/200mcg Phenylephrine - + 5ml Syringe loaded with 200mcg of Phenylephrine @@ -3884,10 +3884,10 @@ 5ml Syringe loaded with 50mcg of Nitroglycerin - + 5ml Syringe/100mcg Nitroglycerin - + 5ml Syringe loaded with 100mcg of Nitroglycerin @@ -3896,10 +3896,10 @@ 5ml Syringe loaded with 150mg of Amiodarone - + 5ml Syringe/300mg Amiodarone - + 5ml Syringe loaded with 300mg of Amiodarone @@ -3908,10 +3908,10 @@ 5ml Syringe loaded with 40mg of Lidocaine - + 5ml Syringe/80mg Lidocaine - + 5ml Syringe loaded with 80mg of Lidocaine @@ -3920,10 +3920,10 @@ 5ml Syringe loaded with 0.6mg of Atropine - + 5ml Syringe/2mg Atropine - + 5ml Syringe loaded with 2mg of Atropine @@ -3932,10 +3932,10 @@ 5ml Syringe loaded with 25mg of Ketamine - + 5ml Syringe/80mg Ketamine - + 5ml Syringe loaded with 80mg of Ketamine @@ -3944,10 +3944,10 @@ 5ml Syringe loaded with 40mcg of Fentanyl - + 5ml Syringe/80mcg Fentanyl - + 5ml Syringe loaded with 80mcg of Fentanyl @@ -3956,10 +3956,10 @@ 5ml Syringe loaded with 10mg of Nalbuphine - + 5ml Syringe/20mg Nalbuphine - + 5ml Syringe loaded with 20mg of Nalbuphine @@ -3968,10 +3968,10 @@ 5ml Syringe loaded with 2.4mg of Lorazepam - + 5ml Syringe/4mg Lorazepam - + 5ml Syringe loaded with 4mg of Lorazepam @@ -3980,10 +3980,10 @@ 5ml Syringe loaded with 0.1mg of Flumazenil - + 5ml Syringe/0.2mg Flumazenil - + 5ml Syringe loaded with 0.2mg of Flumazenil @@ -3992,10 +3992,10 @@ 5ml Syringe loaded with 0.2mg of Etomidate - + 5ml Syringe/0.3mg Etomidate - + 5ml Syringe loaded with 0.3mg of Etomidate @@ -4004,19 +4004,19 @@ 5ml Syringe loaded with 10mcg of Epinephrine - + 5ml Syringe/1mg Epinephrine - + 5ml Syringe loaded with 1mg of Epinephrine 5ml Syringe/1g TXA - + 5ml Syringe loaded with 1 gram of TXA - + 5ml Syringe/2g TXA @@ -4028,196 +4028,196 @@ 5ml Syringe loaded with 7.5 grams of EACA - + 5ml Syringe/15g EACA - + 5ml Syringe loaded with 15 grams of EACA Push 1g TXA IV - + Push 2g TXA IV Push 7.5g EACA IV - + Push 15g EACA IV Pushing 1g TXA IV - + Pushing 2g TXA IV Pushing 7.5g EACA IV - + Pushing 15g EACA IV Push 150mg Norepinephrine IV - + Push 240mg Norepinephrine IV Push 100mcg Phenylephrine IV - + Push 200mcg Phenylephrine IV Push 50mcg Nitroglycerin IV - + Push 100mcg Nitroglycerin IV Push 150mg Amiodarone IV - + Push 300mg Amiodarone IV Push 40mg Lidocaine IV - + Push 80mg Lidocaine IV Push 0.6mg Atropine IV - + Push 2mg Atropine IV Push 25mg Ketamine IV - + Push 80mg Ketamine IV Push 40mcg Fentanyl IV - + Push 80mcg Fentanyl IV Push 10mg Nalbuphine IV - + Push 20mg Nalbuphine IV Push 2.4mg Lorazepam IV - + Push 4mg Lorazepam IV Push 0.1mg Flumazenil IV - + Push 0.2mg Flumazenil IV Push 0.2mg Etomidate IV - + Push 0.3mg Etomidate IV Push 10mcg Epinephrine IV - + Push 1mg Epinephrine IV Pushing 150mg Norepinephrine IV - + Pushing 240mg Norepinephrine IV Pushing 100mcg Phenylephrine IV - + Pushing 200mcg Phenylephrine IV Pushing 50mcg Nitroglycerin IV - + Pushing 100mcg Nitroglycerin IV Pushing 150mg Amiodarone IV - + Pushing 300mg Amiodarone IV Pushing 40mg Lidocaine IV - + Pushing 80mg Lidocaine IV Pushing 0.6mg Atropine IV - + Pushing 2mg Atropine IV Pushing 25mg Ketamine IV - + Pushing 80mg Ketamine IV Pushing 40mcg Fentanyl IV - + Pushing 80mcg Fentanyl IV Pushing 10mg Nalbuphine IV - + Pushing 20mg Nalbuphine IV Pushing 2.4mg Lorazepam IV - + Pushing 4mg Lorazepam IV Pushing 0.1mg Flumazenil IV - + Pushing 0.2mg Flumazenil IV Pushing 0.2mg Etomidate IV - + Pushing 0.3mg Etomidate IV Pushing 10mcg Epinephrine IV - + Pushing 1mg Epinephrine IV Inject 1g TXA IM - + Inject 2g TXA IM @@ -4226,25 +4226,25 @@ Inject 25mg Ketamine IM - + Inject 80mg Ketamine IM Inject 40mcg Fentanyl IM - + Inject 80mcg Fentanyl IM Inject 10mg Nalbuphine IM - + Inject 20mg Nalbuphine IM Injecting 1g TXA IM - + Injecting 2g TXA IM @@ -4253,19 +4253,19 @@ Injecting 25mg Ketamine IM - + Injecting 80mg Ketamine IM Injecting 40mcg Fentanyl IM - + Injecting 80mcg Fentanyl IM Injecting 10mg Nalbuphine IM - + Injecting 20mg Nalbuphine IM @@ -4292,97 +4292,97 @@ Prep 5ml EACA 7.5g - + Prep 5ml EACA 15g Prep 5ml TXA 1g - + Prep 5ml TXA 2g Prep 10ml TXA 1g - + Prep 10ml TXA 2g Prep 5ml Norepinephrine 150mcg - + Prep 5ml Norepinephrine 240mcg Prep 5ml Phenylephrine 100mcg - + Prep 5ml Phenylephrine 200mcg Prep 5ml Nitroglycerin 50mcg - + Prep 5ml Nitroglycerin 100mcg Prep 5ml Amiodarone 150mg - + Prep 5ml Amiodarone 300mg Prep 5ml Lidocaine 40mg - + Prep 5ml Lidocaine 80mg Prep 5ml Atropine 0.6mg - + Prep 5ml Atropine 2mg Prep 5ml Ketamine 25mg - + Prep 5ml Ketamine 80mg Prep 5ml Fentanyl 40mcg - + Prep 5ml Fentanyl 80mcg Prep 5ml Nalbuphine 10mg - + Prep 5ml Nalbuphine 20mg Prep 5ml Lorazepam 2.4mg - + Prep 5ml Lorazepam 4mg Prep 5ml Flumazenil 0.1mg - + Prep 5ml Flumazenil 0.2mg Prep 5ml Etomidate 0.2mg - + Prep 5ml Etomidate 0.3mg Prep 5ml Epinephrine 10mcg - + Prep 5ml Epinephrine 1mg @@ -4391,32 +4391,26 @@ Prep 10ml Ketamine 25mg - + Prep 10ml Ketamine 80mg Prep 10ml Fentanyl 40mcg - + Prep 10ml Fentanyl 80mcg Prep 10ml Nalbuphine 10mg - + Prep 10ml Nalbuphine 20mg - - IV Prep level + + Syringe Prep level - - Medical level required to prep IV medications - - - IM Prep level - - - Medical level required to prep IM medications + + Medical level required to prep syringes Enable Advanced Medication System diff --git a/addons/surgery/functions/fnc_closedReductionLocal.sqf b/addons/surgery/functions/fnc_closedReductionLocal.sqf index 4656e1112..900a86675 100644 --- a/addons/surgery/functions/fnc_closedReductionLocal.sqf +++ b/addons/surgery/functions/fnc_closedReductionLocal.sqf @@ -24,9 +24,9 @@ private _activeFracture = GET_FRACTURES(_patient); private _fractureArray = _patient getVariable [QGVAR(fractures), [0,0,0,0,0,0]]; private _lidocaineCount = [_patient, "Lidocaine", false] call ACEFUNC(medical_status,getMedicationCount); private _lidocaineCount51 = [_patient, "syringe_kat_lidocaine_5ml_1", false] call ACEFUNC(medical_status,getMedicationCount); -private _lidocaineCount52 = [_patient, "syringe_kat_lidocaine_5ml_2", false] call ACEFUNC(medical_status,getMedicationCount); +private _lidocaineCount53 = [_patient, "syringe_kat_lidocaine_5ml_2", false] call ACEFUNC(medical_status,getMedicationCount); private _lidocaineCount101 = [_patient, "syringe_kat_lidocaine_10ml_1", false] call ACEFUNC(medical_status,getMedicationCount); -private _lidocaineCount102 = [_patient, "syringe_kat_lidocaine_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); +private _lidocaineCount103 = [_patient, "syringe_kat_lidocaine_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); private _morphineCount = [_patient, "Morphine", false] call ACEFUNC(medical_status,getMedicationCount); private _nalbuphineCount = [_patient, "Nalbuphine", false] call ACEFUNC(medical_status,getMedicationCount); private _fentanylCount = [_patient, "Fentanyl", false] call ACEFUNC(medical_status,getMedicationCount); @@ -34,16 +34,16 @@ private _ketamineCount = [_patient, "Ketamine", false] call ACEFUNC(medical_stat private _nalbuphineCount51 = [_patient, "syringe_kat_nalbuphine_5ml_1", false] call ACEFUNC(medical_status,getMedicationCount); private _fentanylCount51 = [_patient, "syringe_kat_fentanyl_5ml_1", false] call ACEFUNC(medical_status,getMedicationCount); private _ketamineCount51 = [_patient, "syringe_kat_ketamine_5ml_1", false] call ACEFUNC(medical_status,getMedicationCount); -private _nalbuphineCount52 = [_patient, "syringe_kat_nalbuphine_5ml_2", false] call ACEFUNC(medical_status,getMedicationCount); -private _fentanylCount52 = [_patient, "syringe_kat_fentanyl_5ml_2", false] call ACEFUNC(medical_status,getMedicationCount); -private _ketamineCount52= [_patient, "syringe_kat_ketamine_5ml_2", false] call ACEFUNC(medical_status,getMedicationCount); +private _nalbuphineCount53 = [_patient, "syringe_kat_nalbuphine_5ml_2", false] call ACEFUNC(medical_status,getMedicationCount); +private _fentanylCount53 = [_patient, "syringe_kat_fentanyl_5ml_2", false] call ACEFUNC(medical_status,getMedicationCount); +private _ketamineCount53= [_patient, "syringe_kat_ketamine_5ml_2", false] call ACEFUNC(medical_status,getMedicationCount); private _nalbuphineCount101 = [_patient, "syringe_kat_nalbuphine_10ml_1", false] call ACEFUNC(medical_status,getMedicationCount); private _fentanylCount101 = [_patient, "syringe_kat_fentanyl_10ml_1", false] call ACEFUNC(medical_status,getMedicationCount); private _ketamineCount101 = [_patient, "syringe_kat_ketamine_10ml_1", false] call ACEFUNC(medical_status,getMedicationCount); -private _nalbuphineCount102 = [_patient, "syringe_kat_nalbuphine_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); -private _fentanylCount102 = [_patient, "syringe_kat_fentanyl_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); -private _ketamineCount102 = [_patient, "syringe_kat_ketamine_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); -if (_lidocaineCount <= 0.6 && _morphineCount <= 0.8 && _nalbuphineCount <= 0.8 && _fentanylCount <= 0.8 && _ketamineCount <= 0.8 && _lidocaineCount51 <= 0.6 && _nalbuphineCount51 <= 0.8 && _fentanylCount51 <= 0.8 && _ketamineCount51 <= 0.8 &&_lidocaineCount52 <= 0.6 && _nalbuphineCount52 <= 0.8 && _fentanylCount52 <= 0.8 && _ketamineCount52 <= 0.8 && _lidocaineCount101 <= 0.6 && _nalbuphineCount101 <= 0.8 && _fentanylCount101 <= 0.8 && _ketamineCount101 <= 0.8 && _lidocaineCount102 <= 0.6 && _nalbuphineCount102 <= 0.8 && _fentanylCount102 <= 0.8 && _ketamineCount102 <= 0.8) then { +private _nalbuphineCount103 = [_patient, "syringe_kat_nalbuphine_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); +private _fentanylCount103 = [_patient, "syringe_kat_fentanyl_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); +private _ketamineCount103 = [_patient, "syringe_kat_ketamine_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); +if (_lidocaineCount <= 0.6 && _morphineCount <= 0.8 && _nalbuphineCount <= 0.8 && _fentanylCount <= 0.8 && _ketamineCount <= 0.8 && _lidocaineCount51 <= 0.6 && _nalbuphineCount51 <= 0.8 && _fentanylCount51 <= 0.8 && _ketamineCount51 <= 0.8 &&_lidocaineCount53 <= 0.6 && _nalbuphineCount53 <= 0.8 && 53 <= 0.8 && _ketamineCount53 <= 0.8 && _lidocaineCount101 <= 0.6 && _nalbuphineCount101 <= 0.8 && _fentanylCount101 <= 0.8 && _ketamineCount101 <= 0.8 && _lidocaineCount103 <= 0.6 && _nalbuphineCount103 <= 0.8 && _fentanylCount103 <= 0.8 && _ketamineCount103 <= 0.8) then { private _pain = random [0.7, 0.8, 0.9]; [_patient, _pain] call ACEFUNC(medical_status,adjustPainLevel); }; From 0a46e85c30278fa238f3911fac6bfee0534a9441 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Wed, 2 Oct 2024 08:28:04 -0700 Subject: [PATCH 081/149] holy beans its almost done --- addons/gui/functions/fnc_prepSyringe.sqf | 17 +---- .../gui/functions/fnc_updateMedications.sqf | 29 ++++++-- addons/gui/functions/fnc_updateSyringes.sqf | 32 +++++--- addons/gui/gui.hpp | 14 +++- .../pharma/ACE_Medical_Treatment_Actions.hpp | 9 ++- addons/pharma/CfgWeapons.hpp | 74 +++++++++---------- addons/pharma/XEH_preInit.sqf | 36 +++++++++ addons/pharma/functions/fnc_applyIV.sqf | 6 +- addons/pharma/stringtable.xml | 16 +++- 9 files changed, 152 insertions(+), 81 deletions(-) diff --git a/addons/gui/functions/fnc_prepSyringe.sqf b/addons/gui/functions/fnc_prepSyringe.sqf index 2698c3dbf..27ce36a13 100644 --- a/addons/gui/functions/fnc_prepSyringe.sqf +++ b/addons/gui/functions/fnc_prepSyringe.sqf @@ -14,10 +14,12 @@ * * Public: No */ +if !(EGVAR(pharma,AMS_Enabled)) exitWith {}; private _playerMedicalLevel = [_player] call ace_medical_fnc_getMedicLevel; private _requiredMedicalLevel = GVAR(medLvl_PrepSyringe); if (_playerMedicalLevel < _requiredMedicalLevel) exitWith {}; +[5, [], { private _syringeBox = findDisplay 38580 displayCtrl 71303; private _medicationBox = findDisplay 38580 displayCtrl 71305; private _doseCombo = findDisplay 38580 displayCtrl 71307; @@ -30,18 +32,5 @@ private _syringeType = _syringeBox lbData _syringeSelected; private _medicationType = _medicationBox lbData _medicationSelected; private _doseType = _doseCombo lbValue _doseSelected; -[5, [], { - private _syringeBox = findDisplay 38580 displayCtrl 71303; - private _medicationBox = findDisplay 38580 displayCtrl 71305; - private _doseCombo = findDisplay 38580 displayCtrl 71307; - - private _syringeSelected = lbCurSel _syringeBox; - private _medicationSelected = lbCurSel _medicationBox; - private _doseSelected = lbCurSel _doseCombo; - - private _syringeType = _syringeBox lbData _syringeSelected; - private _medicationType = _medicationBox lbData _medicationSelected; - private _doseType = _doseCombo lbValue _doseSelected; - - [player, _medicationType, _syringeType, _doseType] call kat_pharma_fnc_prepareSyringe;}, {}, "Preparing Syringe..."] call ace_common_fnc_progressBar; \ No newline at end of file +[player, _medicationType, _syringeType, _doseType] call kat_pharma_fnc_prepareSyringe;}, {}, "Preparing Syringe..."] call ace_common_fnc_progressBar; \ No newline at end of file diff --git a/addons/gui/functions/fnc_updateMedications.sqf b/addons/gui/functions/fnc_updateMedications.sqf index 567da4cf1..9a799b3ef 100644 --- a/addons/gui/functions/fnc_updateMedications.sqf +++ b/addons/gui/functions/fnc_updateMedications.sqf @@ -14,6 +14,8 @@ * * Public: No */ + +if !(EGVAR(pharma,AMS_Enabled)) exitWith {}; disableSerialization; [{private _medications = [ @@ -41,12 +43,22 @@ private _medicationsFound = { private _found = []; { - if (_x in _medications) then { - _found pushBack _x; + private _item = _x; + if (_item in _medications) then { + private _existingIndex = -1; + { + if ((_x select 0) == _item) exitWith {_existingIndex = _forEachIndex}; + } forEach _found; + + if (_existingIndex == -1) then { + _found pushBack [_item, 1]; + } else { + _found set [_existingIndex, [_item, (_found select _existingIndex select 1) + 1]]; + }; }; } forEach _inventory; - _found + _found }; private _listBox = findDisplay 38580 displayCtrl 71305; @@ -57,13 +69,14 @@ private _populateListBox = { lbClear _listBox; { - private _classname = _x; - if (_classname != "") then { - private _config = configFile >> "CfgWeapons" >> _classname; + private _medItem = _x select 0; + private _medCount = _x select 1; + if (_medItem != "") then { + private _config = configFile >> "CfgWeapons" >> _medItem; private _displayName = getText (_config >> "displayName"); private _picture = getText (_config >> "picture"); - private _data = toLower ((_classname splitString "_") select 1); - private _entryText = format ["%1", _displayName]; + private _data = toLower ((_medItem splitString "_") select 1); + private _entryText = format ["%1 (x%2)", _displayName, _medCount]; private _index = _listBox lbAdd _entryText; _listBox lbSetPicture [_index, _picture]; _listBox lbSetData [_index, _data]; diff --git a/addons/gui/functions/fnc_updateSyringes.sqf b/addons/gui/functions/fnc_updateSyringes.sqf index fad5336b1..795a905b6 100644 --- a/addons/gui/functions/fnc_updateSyringes.sqf +++ b/addons/gui/functions/fnc_updateSyringes.sqf @@ -14,6 +14,7 @@ * * Public: No */ +if !(EGVAR(pharma,AMS_Enabled)) exitWith {}; disableSerialization; [{private _syringes = [ @@ -28,12 +29,22 @@ private _syringesFound = { private _found = []; { - if (_x in _syringes) then { - _found pushBack _x; + private _item = _x; + if (_item in _syringes) then { + private _existingIndex = -1; + { + if ((_x select 0) == _item) exitWith {_existingIndex = _forEachIndex}; + } forEach _found; + + if (_existingIndex == -1) then { + _found pushBack [_item, 1]; + } else { + _found set [_existingIndex, [_item, (_found select _existingIndex select 1) + 1]]; + }; }; } forEach _inventory; - _found + _found }; private _listBox = findDisplay 38580 displayCtrl 71303; @@ -43,16 +54,15 @@ private _populateListBox = { params ["_foundSyringes", "_listBox"]; lbClear _listBox; - { - private _classname = _x; - - if (_classname != "") then { - private _config = configFile >> "CfgWeapons" >> _classname; + private _syringeItem = _x select 0; + private _syringeCount = _x select 1; + if (_syringeItem != "") then { + private _config = configFile >> "CfgWeapons" >> _syringeItem; private _displayName = getText (_config >> "displayName"); private _picture = getText (_config >> "picture"); - private _data = (_classname splitString "_") select 1; - private _entryText = format ["%1", _displayName]; + private _data = toLower ((_syringeItem splitString "_") select 1); + private _entryText = format ["%1 (x%2)", _displayName, _syringeCount]; private _index = _listBox lbAdd _entryText; _listBox lbSetPicture [_index, _picture]; _listBox lbSetData [_index, _data]; @@ -60,4 +70,4 @@ private _populateListBox = { } forEach _foundSyringes; }; -[_foundSyringes, _listBox] call _populateListBox;}, [], 0.1] call CBA_fnc_waitAndExecute; \ No newline at end of file +[_foundSyringes, _listBox] call _populateListBox; }, [], 0.1] call CBA_fnc_waitAndExecute; \ No newline at end of file diff --git a/addons/gui/gui.hpp b/addons/gui/gui.hpp index 7ee895069..b614cc135 100644 --- a/addons/gui/gui.hpp +++ b/addons/gui/gui.hpp @@ -679,7 +679,7 @@ class ACE_Medical_Menu { x = QUOTE(POS_X(40)); y = QUOTE(POS_Y(16.9)); w = QUOTE(POS_W(8)); - h = QUOTE(POS_H(1.5)); + h = QUOTE(POS_H(1)); show = 1; class Items { @@ -708,8 +708,18 @@ class ACE_Medical_Menu { y = QUOTE(POS_Y(18.9)); w = QUOTE(POS_W(8)); h = QUOTE(POS_H(1.5)); - show = 1; onButtonClick = QUOTE([] call FUNC(prepSyringe)); + colorText[] = {1, 1, 1, 0.9}; + colorActive[] = {0, 0, 0, 0.7}; + colorBackground[] = {0, 0, 0, 0.7}; + colorBackgroundActive[] = {1, 1, 1, 1}; + colorBorder[] = {0,0,0,0}; + show = 1; + class Attributes { + align = "center"; + font = "RobotoCondensed"; + shadow = "false"; + }; }; }; }; diff --git a/addons/pharma/ACE_Medical_Treatment_Actions.hpp b/addons/pharma/ACE_Medical_Treatment_Actions.hpp index 3a86796e0..a22e7ff7f 100644 --- a/addons/pharma/ACE_Medical_Treatment_Actions.hpp +++ b/addons/pharma/ACE_Medical_Treatment_Actions.hpp @@ -138,7 +138,7 @@ class ACE_Medical_Treatment_Actions { medicRequired = QGVAR(medLvl_EACA); treatmentTime = QGVAR(treatmentTime_EACA); items[] = {"kat_EACA"}; - condition = QUOTE(!(GVAR(MedicationsRequireInsIV)) || FUNC(ivCondition)); + condition = QUOTE(!(GVAR(MedicationsRequireInsIV)) && !(GVAR(AMS_Enabled)) || FUNC(ivCondition) && !(GVAR(AMS_Enabled))); callbackSuccess = QFUNC(medication); sounds[] = {}; }; @@ -312,7 +312,7 @@ class ACE_Medical_Treatment_Actions { class Apply14IV: ApplyIV { displayName = CSTRING(Apply_IV_14); displayNameProgress = CSTRING(Applying_IV); - medicRequired = QGVAR(medLvl_ApplyIV); + medicRequired = QGVAR(medLvl_Apply14IV); category = "advanced"; allowedSelections[] = {"LeftArm", "RightArm", "LeftLeg", "RightLeg"}; items[] = {"kat_IV_14"}; @@ -325,7 +325,7 @@ class ACE_Medical_Treatment_Actions { class Apply20IV: ApplyIV { displayName = CSTRING(Apply_IV_20); displayNameProgress = CSTRING(Applying_IV); - medicRequired = QGVAR(medLvl_ApplyIV); + medicRequired = QGVAR(medLvl_Apply20IV); category = "advanced"; allowedSelections[] = {"LeftArm", "RightArm", "LeftLeg", "RightLeg"}; items[] = {"kat_IV_20"}; @@ -447,7 +447,7 @@ class ACE_Medical_Treatment_Actions { medicRequired = QGVAR(medLvl_EACA); treatmentTime = QGVAR(treatmentTime_EACA); items[] = {"kat_syringe_kat_eaca_5ml_1"}; - condition = QUOTE(!(GVAR(MedicationsRequireInsIV)) || FUNC(removeIV)); + condition = QUOTE(FUNC(ivCondition) && (GVAR(AMS_Enabled))); callbackSuccess = QFUNC(medication); sounds[] = {}; }; @@ -463,6 +463,7 @@ class ACE_Medical_Treatment_Actions { displayNameProgress = CSTRING(injecting_TXA_IM_1); allowedSelections[] = {"LeftArm", "RightArm", "LeftLeg", "RightLeg"}; allowSelfTreatment = 1; + condition = QUOTE(GVAR(AMS_Enabled)); medicRequired = QGVAR(medLvl_TXAIM); treatmentTime = QGVAR(treatmentTime_TXAIM); items[] = {"kat_syringe_kat_txa_10ml_1"}; diff --git a/addons/pharma/CfgWeapons.hpp b/addons/pharma/CfgWeapons.hpp index cf000e746..9759f3c20 100644 --- a/addons/pharma/CfgWeapons.hpp +++ b/addons/pharma/CfgWeapons.hpp @@ -268,7 +268,7 @@ class CfgWeapons { }; }; class kat_syringe_txa_10ml_1: ACE_ItemCore { - scope = 0; + scope = 1; displayName = CSTRING(Syringe_txa_10_1_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; @@ -279,7 +279,7 @@ class CfgWeapons { }; }; class kat_syringe_txa_10ml_3: ACE_ItemCore { - scope = 0; + scope = 1; displayName = CSTRING(Syringe_txa_10_3_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; @@ -290,7 +290,7 @@ class CfgWeapons { }; }; class kat_syringe_lidocaine_10ml_1: ACE_ItemCore { - scope = 0; + scope = 1; displayName = CSTRING(Syringe_lidocaine_10_1_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; @@ -301,7 +301,7 @@ class CfgWeapons { }; }; class kat_syringe_ketamine_10ml_1: ACE_ItemCore { - scope = 0; + scope = 1; displayName = CSTRING(Syringe_ketamine_10_1_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; @@ -312,7 +312,7 @@ class CfgWeapons { }; }; class kat_syringe_ketamine_10ml_3: ACE_ItemCore { - scope = 0; + scope = 1; displayName = CSTRING(Syringe_ketamine_10_3_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; @@ -323,7 +323,7 @@ class CfgWeapons { }; }; class kat_syringe_fentanyl_10ml_1: ACE_ItemCore { - scope = 0; + scope = 1; displayName = CSTRING(Syringe_fentanyl_10_1_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; @@ -334,7 +334,7 @@ class CfgWeapons { }; }; class kat_syringe_fentanyl_10ml_3: ACE_ItemCore { - scope = 0; + scope = 1; displayName = CSTRING(Syringe_fentanyl_10_3_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; @@ -345,7 +345,7 @@ class CfgWeapons { }; }; class kat_syringe_nalbuphine_10ml_1: ACE_ItemCore { - scope = 0; + scope = 1; displayName = CSTRING(Syringe_nalbuphine_10_1_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; @@ -356,7 +356,7 @@ class CfgWeapons { }; }; class kat_syringe_nalbuphine_10ml_3: ACE_ItemCore { - scope = 0; + scope = 1; displayName = CSTRING(Syringe_nalbuphine_10_3_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; @@ -367,7 +367,7 @@ class CfgWeapons { }; }; class kat_syringe_txa_5ml_1: ACE_ItemCore { - scope = 0; + scope = 1; displayName = CSTRING(Syringe_txa_5_1_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; @@ -378,7 +378,7 @@ class CfgWeapons { }; }; class kat_syringe_txa_5ml_3: ACE_ItemCore { - scope = 0; + scope = 1; displayName = CSTRING(Syringe_txa_5_3_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; @@ -389,7 +389,7 @@ class CfgWeapons { }; }; class kat_syringe_eaca_5ml_1: ACE_ItemCore { - scope = 0; + scope = 1; displayName = CSTRING(Syringe_eaca_5_1_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; @@ -400,7 +400,7 @@ class CfgWeapons { }; }; class kat_syringe_eaca_5ml_3: ACE_ItemCore { - scope = 0; + scope = 1; displayName = CSTRING(Syringe_eaca_5_3_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; @@ -411,7 +411,7 @@ class CfgWeapons { }; }; class kat_syringe_norepinephrine_5ml_1: ACE_ItemCore { - scope = 0; + scope = 1; displayName = CSTRING(Syringe_norepinephrine_5_1_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; @@ -422,7 +422,7 @@ class CfgWeapons { }; }; class kat_syringe_norepinephrine_5ml_3: ACE_ItemCore { - scope = 0; + scope = 1; displayName = CSTRING(Syringe_norepinephrine_5_3_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; @@ -433,7 +433,7 @@ class CfgWeapons { }; }; class kat_syringe_phenylephrine_5ml_1: ACE_ItemCore { - scope = 0; + scope = 1; displayName = CSTRING(Syringe_phenylephrine_5_1_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; @@ -444,7 +444,7 @@ class CfgWeapons { }; }; class kat_syringe_phenylephrine_5ml_3: ACE_ItemCore { - scope = 0; + scope = 1; displayName = CSTRING(Syringe_phenylephrine_5_3_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; @@ -455,7 +455,7 @@ class CfgWeapons { }; }; class kat_syringe_nitroglycerin_5ml_1: ACE_ItemCore { - scope = 0; + scope = 1; displayName = CSTRING(Syringe_nitroglycerin_5_1_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; @@ -466,7 +466,7 @@ class CfgWeapons { }; }; class kat_syringe_nitroglycerin_5ml_3: ACE_ItemCore { - scope = 0; + scope = 1; displayName = CSTRING(Syringe_nitroglycerin_5_3_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; @@ -477,7 +477,7 @@ class CfgWeapons { }; }; class kat_syringe_amiodarone_5ml_1: ACE_ItemCore { - scope = 0; + scope = 1; displayName = CSTRING(Syringe_amiodarone_5_1_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; @@ -488,7 +488,7 @@ class CfgWeapons { }; }; class kat_syringe_amiodarone_5ml_3: ACE_ItemCore { - scope = 0; + scope = 1; displayName = CSTRING(Syringe_amiodarone_5_3_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; @@ -499,7 +499,7 @@ class CfgWeapons { }; }; class kat_syringe_epinephrineIV_5ml_1: ACE_ItemCore { - scope = 0; + scope = 1; displayName = CSTRING(Syringe_epinephrineIV_5_1_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; @@ -510,7 +510,7 @@ class CfgWeapons { }; }; class kat_syringe_epinephrineIV_5ml_3: ACE_ItemCore { - scope = 0; + scope = 1; displayName = CSTRING(Syringe_epinephrineIV_5_3_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; @@ -521,7 +521,7 @@ class CfgWeapons { }; }; class kat_syringe_lidocaine_5ml_1: ACE_ItemCore { - scope = 0; + scope = 1; displayName = CSTRING(Syringe_lidocaine_5_1_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; @@ -532,7 +532,7 @@ class CfgWeapons { }; }; class kat_syringe_lidocaine_5ml_3: ACE_ItemCore { - scope = 0; + scope = 1; displayName = CSTRING(Syringe_lidocaine_5_3_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; @@ -543,7 +543,7 @@ class CfgWeapons { }; }; class kat_syringe_ketamine_5ml_1: ACE_ItemCore { - scope = 0; + scope = 1; displayName = CSTRING(Syringe_ketamine_5_1_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; @@ -554,7 +554,7 @@ class CfgWeapons { }; }; class kat_syringe_ketamine_5ml_3: ACE_ItemCore { - scope = 0; + scope = 1; displayName = CSTRING(Syringe_ketamine_5_3_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; @@ -565,7 +565,7 @@ class CfgWeapons { }; }; class kat_syringe_fentanyl_5ml_1: ACE_ItemCore { - scope = 0; + scope = 1; displayName = CSTRING(Syringe_fentanyl_5_1_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; @@ -576,7 +576,7 @@ class CfgWeapons { }; }; class kat_syringe_fentanyl_5ml_3: ACE_ItemCore { - scope = 0; + scope = 1; displayName = CSTRING(Syringe_fentanyl_10_3_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; @@ -587,7 +587,7 @@ class CfgWeapons { }; }; class kat_syringe_nalbuphine_5ml_1: ACE_ItemCore { - scope = 0; + scope = 1; displayName = CSTRING(Syringe_nalbuphine_5_1_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; @@ -598,7 +598,7 @@ class CfgWeapons { }; }; class kat_syringe_nalbuphine_5ml_3: ACE_ItemCore { - scope = 0; + scope = 1; displayName = CSTRING(Syringe_nalbuphine_5_3_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; @@ -609,7 +609,7 @@ class CfgWeapons { }; }; class kat_syringe_lorazepam_5ml_1: ACE_ItemCore { - scope = 0; + scope = 1; displayName = CSTRING(Syringe_lorazepam_5_1_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; @@ -620,7 +620,7 @@ class CfgWeapons { }; }; class kat_syringe_lorazepam_5ml_3: ACE_ItemCore { - scope = 0; + scope = 1; displayName = CSTRING(Syringe_lorazepam_5_3_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; @@ -631,7 +631,7 @@ class CfgWeapons { }; }; class kat_syringe_flumazenil_5ml_1: ACE_ItemCore { - scope = 0; + scope = 1; displayName = CSTRING(Syringe_flumazenil_5_1_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; @@ -642,7 +642,7 @@ class CfgWeapons { }; }; class kat_syringe_flumazenil_5ml_3: ACE_ItemCore { - scope = 0; + scope = 1; displayName = CSTRING(Syringe_flumazenil_5_3_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; @@ -653,7 +653,7 @@ class CfgWeapons { }; }; class kat_syringe_etomidate_5ml_1: ACE_ItemCore { - scope = 0; + scope = 1; displayName = CSTRING(Syringe_etomidate_5_1_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; @@ -664,7 +664,7 @@ class CfgWeapons { }; }; class kat_syringe_etomidate_5ml_3: ACE_ItemCore { - scope = 0; + scope = 1; displayName = CSTRING(Syringe_etomidate_5_3_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; diff --git a/addons/pharma/XEH_preInit.sqf b/addons/pharma/XEH_preInit.sqf index c04280181..225e00f5a 100644 --- a/addons/pharma/XEH_preInit.sqf +++ b/addons/pharma/XEH_preInit.sqf @@ -91,6 +91,24 @@ PREP_RECOMPILE_END; true ] call CBA_Settings_fnc_init; +[ + QGVAR(medLvl_Apply14IV), + "LIST", + [LLSTRING(medLvl_Apply14IV), LLSTRING(medLvl_Apply14IV_Desc)], + [CBA_SETTINGS_CAT, LSTRING(SubCategory_ApplyIV)], + [[0, 1, 2], [ACELSTRING(medical_treatment,Anyone), ACELSTRING(medical_treatment,Medics), ACELSTRING(medical_treatment,Doctors)], 0], + true +] call CBA_Settings_fnc_init; + +[ + QGVAR(medLvl_Apply20IV), + "LIST", + [LLSTRING(medLvl_Apply20IV), LLSTRING(medLvl_Apply20IV_Desc)], + [CBA_SETTINGS_CAT, LSTRING(SubCategory_ApplyIV)], + [[0, 1, 2], [ACELSTRING(medical_treatment,Anyone), ACELSTRING(medical_treatment,Medics), ACELSTRING(medical_treatment,Doctors)], 0], + true +] call CBA_Settings_fnc_init; + [ QGVAR(treatmentTime_ApplyIV), "SLIDER", @@ -373,6 +391,24 @@ PREP_RECOMPILE_END; true ] call CBA_Settings_fnc_init; +[ + QGVAR(medLvl_TXAIM), + "LIST", + [LLSTRING(medLvl_TXAIM)], + [CBA_SETTINGS_CAT, LSTRING(SubCategory_TXA)], + [[0, 1, 2], [ACELSTRING(medical_treatment,Anyone), ACELSTRING(medical_treatment,Medics), ACELSTRING(medical_treatment,Doctors)], 0], + true +] call CBA_Settings_fnc_init; + +[ + QGVAR(treatmentTime_TXAIM), + "SLIDER", + [LLSTRING(treatmentTime_TXAIM)], + [CBA_SETTINGS_CAT, LSTRING(SubCategory_TXA)], + [0.1, 10, 7, 1], + true +] call CBA_Settings_fnc_init; + [ QGVAR(bandageCycleTime_TXA), "TIME", diff --git a/addons/pharma/functions/fnc_applyIV.sqf b/addons/pharma/functions/fnc_applyIV.sqf index 27840297b..4da5ef7dd 100644 --- a/addons/pharma/functions/fnc_applyIV.sqf +++ b/addons/pharma/functions/fnc_applyIV.sqf @@ -56,7 +56,7 @@ switch (_usedItem) do { [_patient, "activity", LSTRING(iv_log), [[_medic] call ACEFUNC(common,getName), "14g IV"]] call ACEFUNC(medical_treatment,addToLog); [_patient, "14g IV"] call ACEFUNC(medical_treatment,addToTriageCard);}; - case "kat_IV_30": { + case "kat_IV_20": { _IVarray set [_partIndex, 4]; _IVrate set [_partIndex, 0.5]; _patient setVariable [QGVAR(IV), _IVarray, true]; @@ -97,7 +97,7 @@ switch (_usedItem) do { default {}; }; -if (GVAR(IVdropEnable) && ((_usedItem isEqualTo "kat_IV_16") || (_usedItem isEqualTo "kat_IV_14") || (_usedItem isEqualTo "kat_IV_30"))) then { +if (GVAR(IVdropEnable) && ((_usedItem isEqualTo "kat_IV_16") || (_usedItem isEqualTo "kat_IV_14") || (_usedItem isEqualTo "kat_IV_20"))) then { [{ params ["_patient", "_partIndex", "_IVpfhActual"]; @@ -125,7 +125,7 @@ if (GVAR(IVdropEnable) && ((_usedItem isEqualTo "kat_IV_16") || (_usedItem isEqu case "1": {_patient addItem "kat_IO_FAST"}; case "2": {_patient addItem "kat_IV_16"}; case "3": {_patient addItem "kat_IV_14"}; - case "4": {_patient addItem "kat_IV_30"}; + case "4": {_patient addItem "kat_IV_20"}; }; }; diff --git a/addons/pharma/stringtable.xml b/addons/pharma/stringtable.xml index 0171056a3..6764d4761 100644 --- a/addons/pharma/stringtable.xml +++ b/addons/pharma/stringtable.xml @@ -2,7 +2,7 @@ - Allow applying IV + Allow applying 16g IV Poziom wyszkolenia medycznego dla IV 允许使用IV Permetti utilizzo IV @@ -17,7 +17,7 @@ Разрешить внутривенное введение - Changes what medical level is required to set IVs + Changes what medical level is required to set 16 gauge IVs Benötigter medizinischer Grad, welcher für das Legen von IVs erforderlich ist Poziom wyszkolenia medycznego potrzebnego do założenia kaniul IV Niveau nécessaire pour poser une IV @@ -33,6 +33,18 @@ Muda qual nível médico é necessário para aplicar IVs Muuttaa, mitä lääketieteen koulutustasoa tarvitaan IV:n lisäämiseen + + Allow applying 14g IV + + + Changes what medical level is required to set 14 gauge IVs + + + Allow applying 20g IV + + + Changes what medical level is required to set 20 gauge IVs + Allow applying IO Poziom wyszkolenia medycznego dla IO From 81eab33ec4fb84d78122a9c07f1aad4d373cb8ca Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Wed, 2 Oct 2024 08:30:31 -0700 Subject: [PATCH 082/149] tab fixes --- addons/gui/gui.hpp | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/addons/gui/gui.hpp b/addons/gui/gui.hpp index b614cc135..1cf98865b 100644 --- a/addons/gui/gui.hpp +++ b/addons/gui/gui.hpp @@ -683,22 +683,22 @@ class ACE_Medical_Menu { show = 1; class Items { - class LowDose - { - text = "Low"; + class LowDose + { + text = "Low"; default = 1; value = 1; - }; - //class MediumDose - //{ - // text = "Medium"; + }; + //class MediumDose + //{ + // text = "Medium"; // value = 2; - //}; + //}; class HighDose - { - text = "High"; + { + text = "High"; value = 3; - }; + }; }; }; class PrepSyringe: RscButton { From 4a478c80a0ab916f9ed391c5dd6a11c107329078 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Wed, 2 Oct 2024 12:42:13 -0700 Subject: [PATCH 083/149] i hate GUI i hate GUI --- addons/gui/XEH_PREP.hpp | 4 +- addons/gui/functions/fnc_closeSyringeMenu.sqf | 21 +++ addons/gui/functions/fnc_onMenuOpen.sqf | 6 + addons/gui/functions/fnc_openSyringeMenu.sqf | 21 +++ addons/gui/gui.hpp | 107 ++++++++---- addons/gui/gui_defines.hpp | 8 +- addons/gui/stringtable.xml | 3 + .../pharma/ACE_Medical_Treatment_Actions.hpp | 161 +++++++++--------- addons/pharma/XEH_PREP.hpp | 3 +- addons/pharma/functions/fnc_AMSCheck.sqf | 18 ++ 10 files changed, 235 insertions(+), 117 deletions(-) create mode 100644 addons/gui/functions/fnc_closeSyringeMenu.sqf create mode 100644 addons/gui/functions/fnc_openSyringeMenu.sqf create mode 100644 addons/pharma/functions/fnc_AMSCheck.sqf diff --git a/addons/gui/XEH_PREP.hpp b/addons/gui/XEH_PREP.hpp index c45d13076..25cdcc818 100644 --- a/addons/gui/XEH_PREP.hpp +++ b/addons/gui/XEH_PREP.hpp @@ -11,4 +11,6 @@ PREP(updateIVStatus); PREP(updateABGStatus); PREP(updateSyringes); PREP(updateMedications); -PREP(prepSyringe); \ No newline at end of file +PREP(prepSyringe); +PREP(openSyringeMenu); +PREP(closeSyringeMenu); \ No newline at end of file diff --git a/addons/gui/functions/fnc_closeSyringeMenu.sqf b/addons/gui/functions/fnc_closeSyringeMenu.sqf new file mode 100644 index 000000000..06f209202 --- /dev/null +++ b/addons/gui/functions/fnc_closeSyringeMenu.sqf @@ -0,0 +1,21 @@ +#include "..\script_component.hpp" +/* + * Author: Cplhardcore + * closes the syringe menu + * + * Arguments: + * none + * + * Return Value: + * None + * + * Example: + * [] call kat_medical_gui_fnc_closeSyringeMenu; + * + * Public: No + */ +player setVariable ["SyringeMenu", false]; +ctrlShow [71300, false]; +ctrlShow [71301, false]; +ctrlShow [71311, false]; +ctrlShow [71310, true]; diff --git a/addons/gui/functions/fnc_onMenuOpen.sqf b/addons/gui/functions/fnc_onMenuOpen.sqf index 8d37a5299..52a52960f 100644 --- a/addons/gui/functions/fnc_onMenuOpen.sqf +++ b/addons/gui/functions/fnc_onMenuOpen.sqf @@ -105,3 +105,9 @@ if (ACEGVAR(medical_gui,target) == ACE_player) then { }; [] call FUNC(updateMedications); [] call FUNC(updateSyringes); +private _syringeMenuStatus = player getVariable ["SyringeMenu", false]; +if (_syringeMenuStatus) then { + [] call FUNC(openSyringeMenu); +} else { + [] call FUNC(closeSyringeMenu); +}; \ No newline at end of file diff --git a/addons/gui/functions/fnc_openSyringeMenu.sqf b/addons/gui/functions/fnc_openSyringeMenu.sqf new file mode 100644 index 000000000..ed9179e17 --- /dev/null +++ b/addons/gui/functions/fnc_openSyringeMenu.sqf @@ -0,0 +1,21 @@ +#include "..\script_component.hpp" +/* + * Author: Cplhardcore + * opens the syringe menu + * + * Arguments: + * none + * + * Return Value: + * None + * + * Example: + * [] call kat_medical_gui_fnc_openSyringeMenu; + * + * Public: No + */ +player setVariable ["SyringeMenu", true]; +ctrlShow [71300, true]; +ctrlShow [71301, true]; +ctrlShow [71311, true]; +ctrlShow [71310, false]; diff --git a/addons/gui/gui.hpp b/addons/gui/gui.hpp index 1cf98865b..17d989d81 100644 --- a/addons/gui/gui.hpp +++ b/addons/gui/gui.hpp @@ -607,36 +607,78 @@ class ACE_Medical_Menu { class BodyLabelRight: BodyLabelLeft { idc = IDC_SIDE_LABEL_RIGHT; }; - class SyringeTypeTitle: RscStructuredText { - idc = IDC_SYRINGE_TYPE_TITLE; // LOOK HERE - text = CSTRING(SyringeTitleList); - x = QUOTE(POS_X(40)); - y = QUOTE(POS_Y(5.9)); - w = QUOTE(POS_W(8)); + class SyringeOpenButton: RscButton { + idc = IDC_SYRINGE_OPEN; + text = CSTRING(CloseMenu); + x = QUOTE(POS_X(39.6)); + y = QUOTE(POS_Y(4.9)); + w = QUOTE(POS_W(2)); h = QUOTE(POS_H(1)); - colorBackground[] = {0, 0, 0, 0.5}; - show = 1; + colorBackgroundDisabled[] = GUI_BCG_COLOR; + colorBackground[] = GUI_BCG_COLOR; + onButtonClick = QUOTE([] call FUNC(openSyringeMenu)); class Attributes { - align = "center"; + align = "Right"; valign = "bottom"; color = "#E5E5E5"; font = "RobotoCondensed"; shadow = "false"; }; }; - class SyringeList: RscListBox { + class SyringeControlGroup: RscControlsGroup { + idc = IDC_SYRINGE_GROUP; + x = QUOTE(POS_X(39.6)); + y = QUOTE(POS_Y(4.9)); + w = QUOTE(POS_W(9.2)); + h = QUOTE(POS_H(16.5)); + class controls { + class SyringeCloseButton: RscButton { + idc = IDC_SYRINGE_CLOSE; + text = CSTRING(CloseMenu); + x = QUOTE(POS_X(10)); + y = QUOTE(POS_Y(0)); + w = QUOTE(POS_W(2)); + h = QUOTE(POS_H(1)); + onButtonClick = QUOTE([] call FUNC(closeSyringeMenu)); + class Attributes { + align = "Right"; + valign = "bottom"; + color = "#E5E5E5"; + font = "RobotoCondensed"; + shadow = "false"; + }; + }; + + class SyringeTypeTitle: RscStructuredText { + idc = IDC_SYRINGE_TYPE_TITLE; // LOOK HERE + text = CSTRING(SyringeTitleList); + x = QUOTE(POS_X(4)); + y = QUOTE(POS_Y(1.3)); + w = QUOTE(POS_W(8)); + h = QUOTE(POS_H(1)); + colorBackground[] = {0, 0, 0, 0.5}; + show = 1; + class Attributes { + align = "center"; + valign = "bottom"; + color = "#E5E5E5"; + font = "RobotoCondensed"; + shadow = "false"; + }; + }; + class SyringeList: RscListBox { idc = IDC_SYRINGE_TYPE_LIST; // LOOK HERE - x = QUOTE(POS_X(40)); - y = QUOTE(POS_Y(6.9)); + x = QUOTE(POS_X(4)); + y = QUOTE(POS_Y(2.3)); w = QUOTE(POS_W(8)); - h = QUOTE(POS_H(2.5)); + h = QUOTE(POS_H(2)); show = 1; }; - class MedicationTypeTitle: RscStructuredText { + class MedicationTypeTitle: RscStructuredText { idc = IDC_MEDICATION_TYPE_TITLE; // LOOK HERE text = CSTRING(MedicationTitleList); - x = QUOTE(POS_X(40)); - y = QUOTE(POS_Y(9.9)); + x = QUOTE(POS_X(4)); + y = QUOTE(POS_Y(4.6)); w = QUOTE(POS_W(8)); h = QUOTE(POS_H(1)); colorBackground[] = {0, 0, 0, 0.5}; @@ -649,19 +691,19 @@ class ACE_Medical_Menu { shadow = "false"; }; }; - class MedicationList: RscListBox { + class MedicationList: RscListBox { idc = IDC_MEDICATION_TYPE_LIST; // LOOK HERE - x = QUOTE(POS_X(40)); - y = QUOTE(POS_Y(10.9)); + x = QUOTE(POS_X(4)); + y = QUOTE(POS_Y(5.6)); w = QUOTE(POS_W(8)); - h = QUOTE(POS_H(4.5)); + h = QUOTE(POS_H(6)); show = 1; }; - class DoseTitle: RscStructuredText { + class DoseTitle: RscStructuredText { idc = IDC_MEDICATION_DOSE_TITLE; // LOOK HERE text = CSTRING(DoseTitle); - x = QUOTE(POS_X(40)); - y = QUOTE(POS_Y(15.9)); + x = QUOTE(POS_X(4)); + y = QUOTE(POS_Y(12)); w = QUOTE(POS_W(8)); h = QUOTE(POS_H(1)); colorBackground[] = {0, 0, 0, 0.5}; @@ -674,10 +716,10 @@ class ACE_Medical_Menu { shadow = "false"; }; }; - class DoseList: RscCombo { + class DoseList: RscCombo { idc = IDC_MEDICATION_DOSE_COMBO; // LOOK HERE - x = QUOTE(POS_X(40)); - y = QUOTE(POS_Y(16.9)); + x = QUOTE(POS_X(4)); + y = QUOTE(POS_Y(13)); w = QUOTE(POS_W(8)); h = QUOTE(POS_H(1)); show = 1; @@ -701,11 +743,11 @@ class ACE_Medical_Menu { }; }; }; - class PrepSyringe: RscButton { + class PrepSyringe: RscButton { idc = IDC_MEDICATION_PREP_SYRINGE; // LOOK HERE text = CSTRING(PrepSyringe); - x = QUOTE(POS_X(40)); - y = QUOTE(POS_Y(18.9)); + x = QUOTE(POS_X(4)); + y = QUOTE(POS_Y(14)); w = QUOTE(POS_W(8)); h = QUOTE(POS_H(1.5)); onButtonClick = QUOTE([] call FUNC(prepSyringe)); @@ -715,11 +757,14 @@ class ACE_Medical_Menu { colorBackgroundActive[] = {1, 1, 1, 1}; colorBorder[] = {0,0,0,0}; show = 1; - class Attributes { + class Attributes { align = "center"; font = "RobotoCondensed"; shadow = "false"; - }; + }; + }; }; }; + }; + }; diff --git a/addons/gui/gui_defines.hpp b/addons/gui/gui_defines.hpp index d0272c2d6..43168ffd4 100644 --- a/addons/gui/gui_defines.hpp +++ b/addons/gui/gui_defines.hpp @@ -137,8 +137,7 @@ #define IDC_TEST_PH 71206 #define IDC_TEST_RESET 71207 -#define IDC_ABG_BACKGROUND 71299 - +#define IDC_ABG_BACKGROUND 71299 #define IDC_SYRINGE_TITLE 71300 #define IDC_SYRINGE_BACKGROUND 71301 #define IDC_SYRINGE_TYPE_TITLE 71302 @@ -147,4 +146,7 @@ #define IDC_MEDICATION_TYPE_LIST 71305 #define IDC_MEDICATION_DOSE_TITLE 71306 #define IDC_MEDICATION_DOSE_COMBO 71307 -#define IDC_MEDICATION_PREP_SYRINGE 71308 \ No newline at end of file +#define IDC_MEDICATION_PREP_SYRINGE 71308 +#define IDC_SYRINGE_CLOSE 71309 +#define IDC_SYRINGE_OPEN 71310 +#define IDC_SYRINGE_GROUP 71311 diff --git a/addons/gui/stringtable.xml b/addons/gui/stringtable.xml index acf2de62a..15acbe2bd 100644 --- a/addons/gui/stringtable.xml +++ b/addons/gui/stringtable.xml @@ -176,5 +176,8 @@ Prepare Syringe + + Close + diff --git a/addons/pharma/ACE_Medical_Treatment_Actions.hpp b/addons/pharma/ACE_Medical_Treatment_Actions.hpp index a22e7ff7f..7664bf3e3 100644 --- a/addons/pharma/ACE_Medical_Treatment_Actions.hpp +++ b/addons/pharma/ACE_Medical_Treatment_Actions.hpp @@ -138,7 +138,7 @@ class ACE_Medical_Treatment_Actions { medicRequired = QGVAR(medLvl_EACA); treatmentTime = QGVAR(treatmentTime_EACA); items[] = {"kat_EACA"}; - condition = QUOTE(!(GVAR(MedicationsRequireInsIV)) && !(GVAR(AMS_Enabled)) || FUNC(ivCondition) && !(GVAR(AMS_Enabled))); + condition = QUOTE(FUNC(AMSCheck)); callbackSuccess = QFUNC(medication); sounds[] = {}; }; @@ -439,45 +439,44 @@ class ACE_Medical_Treatment_Actions { callbackSuccess = QFUNC(treatmentAdvanced_CheckCoag); litter[] = {}; }; - class syringe_kat_EACA_5ml_1: Carbonate { + class syringe_EACA_5ml_1: Carbonate { displayName = CSTRING(push_EACA_IV_1); displayNameProgress = CSTRING(pushing_EACA_IV_1); allowedSelections[] = {"Body", "LeftArm", "RightArm", "LeftLeg", "RightLeg"}; allowSelfTreatment = 1; medicRequired = QGVAR(medLvl_EACA); treatmentTime = QGVAR(treatmentTime_EACA); - items[] = {"kat_syringe_kat_eaca_5ml_1"}; - condition = QUOTE(FUNC(ivCondition) && (GVAR(AMS_Enabled))); + items[] = {"kat_syringe_eaca_5ml_1"}; + condition = QUOTE(FUNC(ivCondition)); callbackSuccess = QFUNC(medication); sounds[] = {}; }; - class syringe_kat_EACA_5ml_3: syringe_kat_EACA_5ml_1 { + class syringe_EACA_5ml_3: syringe_EACA_5ml_1 { displayName = CSTRING(push_EACA_IV_3); displayNameProgress = CSTRING(pushing_EACA_IV_3); - items[] = {"kat_syringe_kat_eaca_5ml_3"}; + items[] = {"kat_syringe_eaca_5ml_3"}; callbackSuccess = QFUNC(medication); sounds[] = {}; }; - class syringe_kat_TXA_10ml_1: Carbonate { + class syringe_TXA_10ml_1: Carbonate { displayName = CSTRING(inject_TXA_IM_1); displayNameProgress = CSTRING(injecting_TXA_IM_1); allowedSelections[] = {"LeftArm", "RightArm", "LeftLeg", "RightLeg"}; allowSelfTreatment = 1; - condition = QUOTE(GVAR(AMS_Enabled)); medicRequired = QGVAR(medLvl_TXAIM); treatmentTime = QGVAR(treatmentTime_TXAIM); - items[] = {"kat_syringe_kat_txa_10ml_1"}; + items[] = {"kat_syringe_txa_10ml_1"}; callbackSuccess = QFUNC(medication); sounds[] = {}; }; - class syringe_kat_TXA_10ml_3: syringe_kat_TXA_10ml_1 { + class syringe_TXA_10ml_3: syringe_TXA_10ml_1 { displayName = CSTRING(inject_TXA_IM_3); displayNameProgress = CSTRING(injecting_TXA_IM_3); - items[] = {"kat_syringe_kat_txa_10ml_3"}; + items[] = {"kat_syringe_txa_10ml_3"}; callbackSuccess = QFUNC(medication); sounds[] = {}; }; - class syringe_kat_TXA_5ml_1: syringe_kat_EACA_5ml_1 { + class syringe_TXA_5ml_1: syringe_EACA_5ml_1 { displayName = CSTRING(push_TXA_IV_1); displayNameProgress = CSTRING(pushing_TXA_IV_1); allowedSelections[] = {"Body", "LeftArm", "RightArm", "LeftLeg", "RightLeg"}; @@ -485,18 +484,18 @@ class ACE_Medical_Treatment_Actions { medicRequired = QGVAR(medLvl_TXA); treatmentTime = QGVAR(treatmentTime_TXA); condition = QUOTE(!(GVAR(MedicationsRequireInsIV)) || FUNC(removeIV)); - items[] = {"kat_syringe_kat_txa_5ml_1"}; + items[] = {"kat_syringe_txa_5ml_1"}; callbackSuccess = QFUNC(medication); sounds[] = {}; }; - class syringe_kat_TXA_5ml_3: syringe_kat_TXA_5ml_1 { + class syringe_TXA_5ml_3: syringe_TXA_5ml_1 { displayName = CSTRING(push_TXA_IV_3); displayNameProgress = CSTRING(pushing_TXA_IV_3); - items[] = {"kat_syringe_kat_txa_5ml_3"}; + items[] = {"kat_syringe_txa_5ml_3"}; callbackSuccess = QFUNC(medication); sounds[] = {}; }; - class syringe_kat_norepinephrine_5ml_1: syringe_kat_EACA_5ml_1 { + class syringe_norepinephrine_5ml_1: syringe_EACA_5ml_1 { displayName = CSTRING(push_norepinephrine_IV_1); displayNameProgress = CSTRING(pushing_norepinephrine_IV_1); allowedSelections[] = {"Body", "LeftArm", "RightArm", "LeftLeg", "RightLeg"}; @@ -504,18 +503,18 @@ class ACE_Medical_Treatment_Actions { medicRequired = QGVAR(medLvl_norepinephrine); treatmentTime = QGVAR(treatmentTime_norepinephrine); condition = QUOTE(!(GVAR(MedicationsRequireInsIV)) || FUNC(removeIV)); - items[] = {"kat_syringe_kat_norepinephrine_5ml_1"}; + items[] = {"kat_syringe_norepinephrine_5ml_1"}; callbackSuccess = QFUNC(medication); sounds[] = {}; }; - class syringe_kat_norepinephrine_5ml_3: syringe_kat_norepinephrine_5ml_1 { + class syringe_norepinephrine_5ml_3: syringe_norepinephrine_5ml_1 { displayName = CSTRING(push_norepinephrine_IV_3); displayNameProgress = CSTRING(pushing_norepinephrine_IV_3); - items[] = {"kat_syringe_kat_norepinephrine_5ml_3"}; + items[] = {"kat_syringe_norepinephrine_5ml_3"}; callbackSuccess = QFUNC(medication); sounds[] = {}; }; - class syringe_kat_phenylephrine_5ml_1: syringe_kat_EACA_5ml_1 { + class syringe_phenylephrine_5ml_1: syringe_EACA_5ml_1 { displayName = CSTRING(push_phenylephrine_IV_1); displayNameProgress = CSTRING(pushing_phenylephrine_IV_1); allowedSelections[] = {"Body", "LeftArm", "RightArm", "LeftLeg", "RightLeg"}; @@ -523,18 +522,18 @@ class ACE_Medical_Treatment_Actions { medicRequired = QGVAR(medLvl_phenylephrine); treatmentTime = QGVAR(treatmentTime_phenylephrine); condition = QUOTE(!(GVAR(MedicationsRequireInsIV)) || FUNC(removeIV)); - items[] = {"kat_syringe_kat_phenylephrine_5ml_1"}; + items[] = {"kat_syringe_phenylephrine_5ml_1"}; callbackSuccess = QFUNC(medication); sounds[] = {}; }; - class syringe_kat_penylephrine_5ml_3: syringe_kat_phenylephrine_5ml_1 { + class syringe_penylephrine_5ml_3: syringe_phenylephrine_5ml_1 { displayName = CSTRING(push_phenylephrine_IV_3); displayNameProgress = CSTRING(pushing_phenylephrine_IV_3); - items[] = {"kat_syringe_kat_phenylephrine_5ml_3"}; + items[] = {"kat_syringe_phenylephrine_5ml_3"}; callbackSuccess = QFUNC(medication); sounds[] = {}; }; - class syringe_kat_nitroglycerin_5ml_1: syringe_kat_EACA_5ml_1 { + class syringe_nitroglycerin_5ml_1: syringe_EACA_5ml_1 { displayName = CSTRING(push_nitroglycerin_IV_1); displayNameProgress = CSTRING(pushing_nitroglycerin_IV_1); allowedSelections[] = {"Body", "LeftArm", "RightArm", "LeftLeg", "RightLeg"}; @@ -542,18 +541,18 @@ class ACE_Medical_Treatment_Actions { medicRequired = QGVAR(medLvl_nitroglycerin); treatmentTime = QGVAR(treatmentTime_nitroglycerin); condition = QUOTE(!(GVAR(MedicationsRequireInsIV)) || FUNC(removeIV)); - items[] = {"kat_syringe_kat_nitroglycerin_5ml_1"}; + items[] = {"kat_syringe_nitroglycerin_5ml_1"}; callbackSuccess = QFUNC(medication); sounds[] = {}; }; - class syringe_kat_nitroglycerin_5ml_3: syringe_kat_nitroglycerin_5ml_1 { + class syringe_nitroglycerin_5ml_3: syringe_nitroglycerin_5ml_1 { displayName = CSTRING(push_nitroglycerin_IV_3); displayNameProgress = CSTRING(pushing_nitroglycerin_IV_3); - items[] = {"kat_syringe_kat_nitroglycerin_5ml_3"}; + items[] = {"kat_syringe_nitroglycerin_5ml_3"}; callbackSuccess = QFUNC(medication); sounds[] = {}; }; - class syringe_kat_amiodarone_5ml_1: syringe_kat_EACA_5ml_1 { + class syringe_amiodarone_5ml_1: syringe_EACA_5ml_1 { displayName = CSTRING(push_amiodarone_IV_1); displayNameProgress = CSTRING(pushing_amiodarone_IV_1); allowedSelections[] = {"Body", "LeftArm", "RightArm", "LeftLeg", "RightLeg"}; @@ -561,18 +560,18 @@ class ACE_Medical_Treatment_Actions { medicRequired = QGVAR(medLvl_amiodarone); treatmentTime = QGVAR(treatmentTime_amiodarone); condition = QUOTE(!(GVAR(MedicationsRequireInsIV)) || FUNC(removeIV)); - items[] = {"kat_syringe_kat_amiodarone_5ml_1"}; + items[] = {"kat_syringe_amiodarone_5ml_1"}; callbackSuccess = QFUNC(medication); sounds[] = {}; }; - class syringe_kat_amiodarone_5ml_3: syringe_kat_amiodarone_5ml_1 { + class syringe_amiodarone_5ml_3: syringe_amiodarone_5ml_1 { displayName = CSTRING(push_amiodarone_IV_3); displayNameProgress = CSTRING(pushing_amiodarone_IV_3); - items[] = {"kat_syringe_kat_amiodarone_5ml_3"}; + items[] = {"kat_syringe_amiodarone_5ml_3"}; callbackSuccess = QFUNC(medication); sounds[] = {}; }; - class syringe_kat_lidocaine_5ml_1: syringe_kat_EACA_5ml_1 { + class syringe_lidocaine_5ml_1: syringe_EACA_5ml_1 { displayName = CSTRING(push_lidocaine_IV_1); displayNameProgress = CSTRING(pushing_lidocaine_IV_1); allowedSelections[] = {"Body", "LeftArm", "RightArm", "LeftLeg", "RightLeg"}; @@ -580,18 +579,18 @@ class ACE_Medical_Treatment_Actions { medicRequired = QGVAR(medLvl_lidocaine); treatmentTime = QGVAR(treatmentTime_lidocaine); condition = QUOTE(!(GVAR(MedicationsRequireInsIV)) || FUNC(ivCondition)); - items[] = {"kat_syringe_kat_lidocaine_5ml_1"}; + items[] = {"kat_syringe_lidocaine_5ml_1"}; callbackSuccess = QFUNC(medication); sounds[] = {}; }; - class syringe_kat_lidocaine_5ml_3: syringe_kat_lidocaine_5ml_1 { + class syringe_lidocaine_5ml_3: syringe_lidocaine_5ml_1 { displayName = CSTRING(push_lidocaine_IV_3); displayNameProgress = CSTRING(pushing_lidocaine_IV_3); - items[] = {"kat_syringe_kat_lidocaine_5ml_3"}; + items[] = {"kat_syringe_lidocaine_5ml_3"}; callbackSuccess = QFUNC(medication); sounds[] = {}; }; - class syringe_kat_atropine_5ml_1: syringe_kat_EACA_5ml_1 { + class syringe_atropine_5ml_1: syringe_EACA_5ml_1 { displayName = CSTRING(push_atropine_IV_1); displayNameProgress = CSTRING(pushing_atropine_IV_1); allowedSelections[] = {"Body", "LeftArm", "RightArm", "LeftLeg", "RightLeg"}; @@ -599,18 +598,18 @@ class ACE_Medical_Treatment_Actions { medicRequired = QGVAR(medLvl_atropine); treatmentTime = QGVAR(treatmentTime_atropine); condition = QUOTE(!(GVAR(MedicationsRequireInsIV)) || FUNC(removeIV)); - items[] = {"kat_syringe_kat_atropine_5ml_1"}; + items[] = {"kat_syringe_atropine_5ml_1"}; callbackSuccess = QFUNC(medication); sounds[] = {}; }; - class syringe_kat_atropine_5ml_3: syringe_kat_atropine_5ml_1 { + class syringe_atropine_5ml_3: syringe_atropine_5ml_1 { displayName = CSTRING(push_atropine_IV_3); displayNameProgress = CSTRING(pushing_atropine_IV_3); - items[] = {"kat_syringe_kat_atropine_5ml_3"}; + items[] = {"kat_syringe_atropine_5ml_3"}; callbackSuccess = QFUNC(medication); sounds[] = {}; }; - class syringe_kat_ketamine_5ml_1: syringe_kat_EACA_5ml_1 { + class syringe_ketamine_5ml_1: syringe_EACA_5ml_1 { displayName = CSTRING(push_ketamine_IV_1); displayNameProgress = CSTRING(pushing_ketamine_IV_1); allowedSelections[] = {"Body", "LeftArm", "RightArm", "LeftLeg", "RightLeg"}; @@ -618,19 +617,19 @@ class ACE_Medical_Treatment_Actions { medicRequired = QGVAR(medLvl_ketamine); treatmentTime = QGVAR(treatmentTime_ketamine); condition = QUOTE(!(GVAR(MedicationsRequireInsIV)) || FUNC(removeIV)); - items[] = {"kat_syringe_kat_ketamine_5ml_1"}; + items[] = {"kat_syringe_ketamine_5ml_1"}; callbackSuccess = QFUNC(medication); sounds[] = {}; }; - class syringe_kat_ketamine_5ml_3: syringe_kat_ketamine_5ml_1 { + class syringe_ketamine_5ml_3: syringe_ketamine_5ml_1 { displayName = CSTRING(push_ketamine_IV_3); displayNameProgress = CSTRING(pushing_ketamine_IV_3); category = "surgery"; - items[] = {"kat_syringe_kat_ketamine_5ml_3"}; + items[] = {"kat_syringe_ketamine_5ml_3"}; callbackSuccess = QFUNC(medication); sounds[] = {}; }; - class syringe_kat_fentanyl_5ml_1: syringe_kat_EACA_5ml_1 { + class syringe_fentanyl_5ml_1: syringe_EACA_5ml_1 { displayName = CSTRING(push_fentanyl_IV_1); displayNameProgress = CSTRING(pushing_fentanyl_IV_1); allowedSelections[] = {"Body", "LeftArm", "RightArm", "LeftLeg", "RightLeg"}; @@ -638,18 +637,18 @@ class ACE_Medical_Treatment_Actions { medicRequired = QGVAR(medLvl_fentanyl); treatmentTime = QGVAR(treatmentTime_fentanyl); condition = QUOTE(!(GVAR(MedicationsRequireInsIV)) || FUNC(removeIV)); - items[] = {"kat_syringe_kat_fentanyl_5ml_1"}; + items[] = {"kat_syringe_fentanyl_5ml_1"}; callbackSuccess = QFUNC(medication); sounds[] = {}; }; - class syringe_kat_fentanyl_5ml_3: syringe_kat_fentanyl_5ml_1 { + class syringe_fentanyl_5ml_3: syringe_fentanyl_5ml_1 { displayName = CSTRING(push_fentanyl_IV_3); displayNameProgress = CSTRING(pushing_fentanyl_IV_3); - items[] = {"kat_syringe_kat_fentanyl_5ml_3"}; + items[] = {"kat_syringe_fentanyl_5ml_3"}; callbackSuccess = QFUNC(medication); sounds[] = {}; }; - class syringe_kat_nalbuphine_5ml_1: syringe_kat_EACA_5ml_1 { + class syringe_nalbuphine_5ml_1: syringe_EACA_5ml_1 { displayName = CSTRING(push_nalbuphine_IV_1); displayNameProgress = CSTRING(pushing_nalbuphine_IV_1); allowedSelections[] = {"Body", "LeftArm", "RightArm", "LeftLeg", "RightLeg"}; @@ -657,18 +656,18 @@ class ACE_Medical_Treatment_Actions { medicRequired = QGVAR(medLvl_nalbuphine); treatmentTime = QGVAR(treatmentTime_nalbuphine); condition = QUOTE(!(GVAR(MedicationsRequireInsIV)) || FUNC(removeIV)); - items[] = {"kat_syringe_kat_nalbuphine_5ml_1"}; + items[] = {"kat_syringe_nalbuphine_5ml_1"}; callbackSuccess = QFUNC(medication); sounds[] = {}; }; - class syringe_kat_nalbuphine_5ml_3: syringe_kat_nalbuphine_5ml_1 { + class syringe_nalbuphine_5ml_3: syringe_nalbuphine_5ml_1 { displayName = CSTRING(push_nalbuphine_IV_3); displayNameProgress = CSTRING(pushing_nalbuphine_IV_3); - items[] = {"kat_syringe_kat_nalbuphine_5ml_3"}; + items[] = {"kat_syringe_nalbuphine_5ml_3"}; callbackSuccess = QFUNC(medication); sounds[] = {}; }; - class syringe_kat_lorazepam_5ml_1: syringe_kat_EACA_5ml_1 { + class syringe_lorazepam_5ml_1: syringe_EACA_5ml_1 { displayName = CSTRING(push_lorazepam_IV_1); displayNameProgress = CSTRING(pushing_lorazepam_IV_1); category = "surgery"; @@ -677,19 +676,19 @@ class ACE_Medical_Treatment_Actions { medicRequired = QGVAR(medLvl_lorazepam); treatmentTime = QGVAR(treatmentTime_lorazepam); condition = QUOTE(!(GVAR(MedicationsRequireInsIV)) || FUNC(removeIV)); - items[] = {"kat_syringe_kat_lorazepam_5ml_1"}; + items[] = {"kat_syringe_lorazepam_5ml_1"}; callbackSuccess = QFUNC(medication); sounds[] = {}; }; - class syringe_kat_lorazapam_5ml_1: syringe_kat_lorazepam_5ml_1 { + class syringe_lorazapam_5ml_1: syringe_lorazepam_5ml_1 { displayName = CSTRING(push_lorazepam_IV_3); displayNameProgress = CSTRING(pushing_lorazepam_IV_3); category = "surgery"; - items[] = {"kat_syringe_kat_lorazepam_5ml_3"}; + items[] = {"kat_syringe_lorazepam_5ml_3"}; callbackSuccess = QFUNC(medication); sounds[] = {}; }; - class syringe_kat_flumazenil_5ml_1: syringe_kat_EACA_5ml_1 { + class syringe_flumazenil_5ml_1: syringe_EACA_5ml_1 { displayName = CSTRING(push_flumazenil_IV_1); displayNameProgress = CSTRING(pushing_flumazenil_IV_1); category = "surgery"; @@ -698,19 +697,19 @@ class ACE_Medical_Treatment_Actions { medicRequired = QGVAR(medLvl_flumazenil); treatmentTime = QGVAR(treatmentTime_flumazenil); condition = QUOTE(!(GVAR(MedicationsRequireInsIV)) || FUNC(removeIV)); - items[] = {"kat_syringe_kat_flumazenil_5ml_1"}; + items[] = {"kat_syringe_flumazenil_5ml_1"}; callbackSuccess = QFUNC(medication); sounds[] = {}; }; - class syringe_kat_flumazenil_5ml_3: syringe_kat_flumazenil_5ml_1 { + class syringe_flumazenil_5ml_3: syringe_flumazenil_5ml_1 { displayName = CSTRING(push_flumazenil_IV_3); displayNameProgress = CSTRING(pushing_flumazenil_IV_3); category = "surgery"; - items[] = {"kat_syringe_kat_flumazenil_5ml_3"}; + items[] = {"kat_syringe_flumazenil_5ml_3"}; callbackSuccess = QFUNC(medication); sounds[] = {}; }; - class syringe_kat_etomidate_5ml_1: syringe_kat_EACA_5ml_1 { + class syringe_etomidate_5ml_1: syringe_EACA_5ml_1 { displayName = CSTRING(push_etomidate_IV_1); displayNameProgress = CSTRING(pushing_etomidate_IV_1); category = "surgery"; @@ -719,19 +718,19 @@ class ACE_Medical_Treatment_Actions { medicRequired = QGVAR(medLvl_etomidate); treatmentTime = QGVAR(treatmentTime_etomidate); condition = QUOTE(!(GVAR(MedicationsRequireInsIV)) || FUNC(removeIV)); - items[] = {"kat_syringe_kat_etomidate_5ml_1"}; + items[] = {"kat_syringe_etomidate_5ml_1"}; callbackSuccess = QFUNC(medication); sounds[] = {}; }; - class syringe_kat_etomidate_5ml_3: syringe_kat_etomidate_5ml_1 { + class syringe_etomidate_5ml_3: syringe_etomidate_5ml_1 { displayName = CSTRING(push_etomidate_IV_3); displayNameProgress = CSTRING(pushing_flumazenil_IV_3); category = "surgery"; - items[] = {"kat_syringe_kat_etomidate_5ml_3"}; + items[] = {"kat_syringe_etomidate_5ml_3"}; callbackSuccess = QFUNC(medication); sounds[] = {}; }; - class syringe_kat_epinephrineIV_5ml_1: syringe_kat_EACA_5ml_1 { + class syringe_epinephrineIV_5ml_1: syringe_EACA_5ml_1 { displayName = CSTRING(push_epinephrineIV_IV_1); displayNameProgress = CSTRING(pushing_epinephrineIV_IV_1); allowedSelections[] = {"Body", "LeftArm", "RightArm", "LeftLeg", "RightLeg"}; @@ -739,79 +738,79 @@ class ACE_Medical_Treatment_Actions { medicRequired = QGVAR(medLvl_epinephrineIV); treatmentTime = QGVAR(treatmentTime_epinephrineIV); condition = QUOTE(!(GVAR(MedicationsRequireInsIV)) || FUNC(removeIV)); - items[] = {"kat_syringe_kat_epinephrineIV_5ml_1"}; + items[] = {"kat_syringe_epinephrineIV_5ml_1"}; callbackSuccess = QFUNC(medication); sounds[] = {}; }; - class syringe_kat_epinephrineIV_5ml_3: syringe_kat_epinephrineIV_5ml_1 { + class syringe_epinephrineIV_5ml_3: syringe_epinephrineIV_5ml_1 { displayName = CSTRING(push_epinephrineIV_IV_3); displayNameProgress = CSTRING(pushing_epinephrineIV_IV_3); - items[] = {"kat_syringe_kat_epinephrineIV_5ml_3"}; + items[] = {"kat_syringe_epinephrineIV_5ml_3"}; callbackSuccess = QFUNC(medication); sounds[] = {}; }; - class syringe_kat_lidocaine_10ml_1: syringe_kat_TXA_10ml_1 { + class syringe_lidocaine_10ml_1: syringe_TXA_10ml_1 { displayName = CSTRING(inject_lidocaine_IM_1); displayNameProgress = CSTRING(injecting_lidocaine_IM_1); allowedSelections[] = {"LeftArm", "RightArm", "LeftLeg", "RightLeg"}; allowSelfTreatment = 1; medicRequired = QGVAR(medLvl_lidocaineIM); treatmentTime = QGVAR(treatmentTime_lidocaineIM); - items[] = {"kat_syringe_kat_lidocaine_10ml_1"}; + items[] = {"kat_syringe_lidocaine_10ml_1"}; callbackSuccess = QFUNC(medication); sounds[] = {}; }; - class syringe_kat_ketamine_10ml_1: syringe_kat_TXA_10ml_1 { + class syringe_ketamine_10ml_1: syringe_TXA_10ml_1 { displayName = CSTRING(inject_ketamine_IM_1); displayNameProgress = CSTRING(injecting_ketamine_IM_1); allowedSelections[] = {"LeftArm", "RightArm", "LeftLeg", "RightLeg"}; allowSelfTreatment = 1; medicRequired = QGVAR(medLvl_ketamineIM); treatmentTime = QGVAR(treatmentTime_ketamineIM); - items[] = {"kat_syringe_kat_ketamine_10ml_1"}; + items[] = {"kat_syringe_ketamine_10ml_1"}; callbackSuccess = QFUNC(medication); sounds[] = {}; }; - class syringe_kat_ketamine_10ml_3: syringe_kat_ketamine_10ml_1 { + class syringe_ketamine_10ml_3: syringe_ketamine_10ml_1 { displayName = CSTRING(inject_ketamine_IM_3); displayNameProgress = CSTRING(injecting_ketamine_IM_3); - items[] = {"kat_syringe_kat_ketamine_10ml_3"}; + items[] = {"kat_syringe_ketamine_10ml_3"}; callbackSuccess = QFUNC(medication); sounds[] = {}; }; - class syringe_kat_fentanyl_10ml_1: syringe_kat_TXA_10ml_1 { + class syringe_fentanyl_10ml_1: syringe_TXA_10ml_1 { displayName = CSTRING(inject_fentanyl_IM_1); displayNameProgress = CSTRING(injecting_fentanyl_IM_1); allowedSelections[] = {"LeftArm", "RightArm", "LeftLeg", "RightLeg"}; allowSelfTreatment = 1; medicRequired = QGVAR(medLvl_fentanylIM); treatmentTime = QGVAR(treatmentTime_fentanylIM); - items[] = {"kat_syringe_kat_fentanyl_10ml_1"}; + items[] = {"kat_syringe_fentanyl_10ml_1"}; callbackSuccess = QFUNC(medication); sounds[] = {}; }; - class syringe_kat_fentanyl_10ml_3: syringe_kat_fentanyl_10ml_1 { + class syringe_fentanyl_10ml_3: syringe_fentanyl_10ml_1 { displayName = CSTRING(inject_fentanyl_IM_3); displayNameProgress = CSTRING(injecting_fentanyl_IM_3); - items[] = {"kat_syringe_kat_fentanyl_10ml_3"}; + items[] = {"kat_syringe_fentanyl_10ml_3"}; callbackSuccess = QFUNC(medication); sounds[] = {}; }; - class syringe_kat_nalbuphine_10ml_1: syringe_kat_TXA_10ml_1 { + class syringe_nalbuphine_10ml_1: syringe_TXA_10ml_1 { displayName = CSTRING(inject_nalbuphine_IM_1); displayNameProgress = CSTRING(injecting_nalbuphine_IM_1); allowedSelections[] = {"LeftArm", "RightArm", "LeftLeg", "RightLeg"}; allowSelfTreatment = 1; medicRequired = QGVAR(medLvl_nalbuphineIM); treatmentTime = QGVAR(treatmentTime_nalbuphineIM); - items[] = {"kat_syringe_kat_nalbuphine_10ml_1"}; + items[] = {"kat_syringe_nalbuphine_10ml_1"}; callbackSuccess = QFUNC(medication); sounds[] = {}; }; - class syringe_kat_nalbuphine_10ml_3: syringe_kat_nalbuphine_10ml_1 { + class syringe_nalbuphine_10ml_3: syringe_nalbuphine_10ml_1 { displayName = CSTRING(inject_nalbuphine_IM_3); displayNameProgress = CSTRING(injecting_nalbuphine_IM_3); - items[] = {"kat_syringe_kat_nalbuphine_10ml_3"}; + items[] = {"kat_syringe_nalbuphine_10ml_3"}; callbackSuccess = QFUNC(medication); sounds[] = {}; }; diff --git a/addons/pharma/XEH_PREP.hpp b/addons/pharma/XEH_PREP.hpp index 274034d4a..c38329cb3 100644 --- a/addons/pharma/XEH_PREP.hpp +++ b/addons/pharma/XEH_PREP.hpp @@ -53,4 +53,5 @@ PREP(insertIMChildrenSyringe); PREP(prepareSyringe); PREP(checkIVType); PREP(treatmentAdvanced_KetamineSedationLocal); -PREP(ivCondition); \ No newline at end of file +PREP(ivCondition); +PREP(AMSCheck); \ No newline at end of file diff --git a/addons/pharma/functions/fnc_AMSCheck.sqf b/addons/pharma/functions/fnc_AMSCheck.sqf new file mode 100644 index 000000000..8fdb88ab7 --- /dev/null +++ b/addons/pharma/functions/fnc_AMSCheck.sqf @@ -0,0 +1,18 @@ +#include "..\script_component.hpp" +/* + * Author: Cplhardcore + * + * + * Arguments: + * + * + * Example: + * [] call kat_pharma_fnc_AMScheck; + * + * Public: No + */ +private _medicationsRequireInsIV = GVAR(MedicationsRequireInsIV); +private _amsEnabled = GVAR(AMS_Enabled); +private _removeIV = FUNC(removeIV); + +[false, true] select ((! _medicationsRequireInsIV || _removeIV) && ! _amsEnabled); \ No newline at end of file From 2ff2ca33356ab99605f1abe804c9ebf0f953f9bd Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Wed, 2 Oct 2024 13:13:53 -0700 Subject: [PATCH 084/149] ITS FIXED --- addons/gui/functions/fnc_closeSyringeMenu.sqf | 4 ++-- addons/gui/functions/fnc_onMenuOpen.sqf | 2 +- addons/gui/functions/fnc_openSyringeMenu.sqf | 4 ++-- addons/gui/gui.hpp | 18 +++++++++--------- 4 files changed, 14 insertions(+), 14 deletions(-) diff --git a/addons/gui/functions/fnc_closeSyringeMenu.sqf b/addons/gui/functions/fnc_closeSyringeMenu.sqf index 06f209202..d63469b47 100644 --- a/addons/gui/functions/fnc_closeSyringeMenu.sqf +++ b/addons/gui/functions/fnc_closeSyringeMenu.sqf @@ -14,8 +14,8 @@ * * Public: No */ -player setVariable ["SyringeMenu", false]; +[{player setVariable ["SyringeMenu", false]; ctrlShow [71300, false]; ctrlShow [71301, false]; ctrlShow [71311, false]; -ctrlShow [71310, true]; +ctrlShow [71310, true];}, []] call CBA_fnc_execNextFrame; \ No newline at end of file diff --git a/addons/gui/functions/fnc_onMenuOpen.sqf b/addons/gui/functions/fnc_onMenuOpen.sqf index 52a52960f..7f18c7661 100644 --- a/addons/gui/functions/fnc_onMenuOpen.sqf +++ b/addons/gui/functions/fnc_onMenuOpen.sqf @@ -106,7 +106,7 @@ if (ACEGVAR(medical_gui,target) == ACE_player) then { [] call FUNC(updateMedications); [] call FUNC(updateSyringes); private _syringeMenuStatus = player getVariable ["SyringeMenu", false]; -if (_syringeMenuStatus) then { +if (_syringeMenuStatus == true) then { [] call FUNC(openSyringeMenu); } else { [] call FUNC(closeSyringeMenu); diff --git a/addons/gui/functions/fnc_openSyringeMenu.sqf b/addons/gui/functions/fnc_openSyringeMenu.sqf index ed9179e17..e497a2ec9 100644 --- a/addons/gui/functions/fnc_openSyringeMenu.sqf +++ b/addons/gui/functions/fnc_openSyringeMenu.sqf @@ -14,8 +14,8 @@ * * Public: No */ -player setVariable ["SyringeMenu", true]; +[{player setVariable ["SyringeMenu", true]; ctrlShow [71300, true]; ctrlShow [71301, true]; ctrlShow [71311, true]; -ctrlShow [71310, false]; +ctrlShow [71310, false];}, []] call CBA_fnc_execNextFrame; diff --git a/addons/gui/gui.hpp b/addons/gui/gui.hpp index 17d989d81..7dab4567e 100644 --- a/addons/gui/gui.hpp +++ b/addons/gui/gui.hpp @@ -635,7 +635,7 @@ class ACE_Medical_Menu { class SyringeCloseButton: RscButton { idc = IDC_SYRINGE_CLOSE; text = CSTRING(CloseMenu); - x = QUOTE(POS_X(10)); + x = QUOTE(POS_X(10.3)); y = QUOTE(POS_Y(0)); w = QUOTE(POS_W(2)); h = QUOTE(POS_H(1)); @@ -652,7 +652,7 @@ class ACE_Medical_Menu { class SyringeTypeTitle: RscStructuredText { idc = IDC_SYRINGE_TYPE_TITLE; // LOOK HERE text = CSTRING(SyringeTitleList); - x = QUOTE(POS_X(4)); + x = QUOTE(POS_X(3.8)); y = QUOTE(POS_Y(1.3)); w = QUOTE(POS_W(8)); h = QUOTE(POS_H(1)); @@ -668,7 +668,7 @@ class ACE_Medical_Menu { }; class SyringeList: RscListBox { idc = IDC_SYRINGE_TYPE_LIST; // LOOK HERE - x = QUOTE(POS_X(4)); + x = QUOTE(POS_X(3.8)); y = QUOTE(POS_Y(2.3)); w = QUOTE(POS_W(8)); h = QUOTE(POS_H(2)); @@ -677,7 +677,7 @@ class ACE_Medical_Menu { class MedicationTypeTitle: RscStructuredText { idc = IDC_MEDICATION_TYPE_TITLE; // LOOK HERE text = CSTRING(MedicationTitleList); - x = QUOTE(POS_X(4)); + x = QUOTE(POS_X(3.8)); y = QUOTE(POS_Y(4.6)); w = QUOTE(POS_W(8)); h = QUOTE(POS_H(1)); @@ -693,7 +693,7 @@ class ACE_Medical_Menu { }; class MedicationList: RscListBox { idc = IDC_MEDICATION_TYPE_LIST; // LOOK HERE - x = QUOTE(POS_X(4)); + x = QUOTE(POS_X(3.8)); y = QUOTE(POS_Y(5.6)); w = QUOTE(POS_W(8)); h = QUOTE(POS_H(6)); @@ -702,7 +702,7 @@ class ACE_Medical_Menu { class DoseTitle: RscStructuredText { idc = IDC_MEDICATION_DOSE_TITLE; // LOOK HERE text = CSTRING(DoseTitle); - x = QUOTE(POS_X(4)); + x = QUOTE(POS_X(3.8)); y = QUOTE(POS_Y(12)); w = QUOTE(POS_W(8)); h = QUOTE(POS_H(1)); @@ -718,7 +718,7 @@ class ACE_Medical_Menu { }; class DoseList: RscCombo { idc = IDC_MEDICATION_DOSE_COMBO; // LOOK HERE - x = QUOTE(POS_X(4)); + x = QUOTE(POS_X(3.8)); y = QUOTE(POS_Y(13)); w = QUOTE(POS_W(8)); h = QUOTE(POS_H(1)); @@ -746,8 +746,8 @@ class ACE_Medical_Menu { class PrepSyringe: RscButton { idc = IDC_MEDICATION_PREP_SYRINGE; // LOOK HERE text = CSTRING(PrepSyringe); - x = QUOTE(POS_X(4)); - y = QUOTE(POS_Y(14)); + x = QUOTE(POS_X(3.8)); + y = QUOTE(POS_Y(14.5)); w = QUOTE(POS_W(8)); h = QUOTE(POS_H(1.5)); onButtonClick = QUOTE([] call FUNC(prepSyringe)); From 9ef32db47bf50390cc379d456ef3db867ec40125 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Wed, 2 Oct 2024 16:47:34 -0700 Subject: [PATCH 085/149] Remove old ace actions, plus a suprise --- .../gui/functions/fnc_updateMedications.sqf | 2 +- addons/gui/functions/fnc_updateSyringes.sqf | 2 +- addons/pharma/CfgVehicles.hpp | 37 ----- .../functions/fnc_insertIMChildrenSyringe.sqf | 77 ---------- .../functions/fnc_insertIVChildrenSyringe.sqf | 70 ---------- .../fnc_insertIVPainChildrenSyringe.sqf | 69 --------- .../pharma/functions/fnc_medicationLocal.sqf | 4 +- .../pharma/functions/fnc_prepareSyringe.sqf | 2 +- .../fnc_treatmentAdvanced_AmiodaroneLocal.sqf | 10 +- addons/pharma/stringtable.xml | 132 ------------------ 10 files changed, 12 insertions(+), 393 deletions(-) delete mode 100644 addons/pharma/functions/fnc_insertIMChildrenSyringe.sqf delete mode 100644 addons/pharma/functions/fnc_insertIVChildrenSyringe.sqf delete mode 100644 addons/pharma/functions/fnc_insertIVPainChildrenSyringe.sqf diff --git a/addons/gui/functions/fnc_updateMedications.sqf b/addons/gui/functions/fnc_updateMedications.sqf index 9a799b3ef..e19ed3358 100644 --- a/addons/gui/functions/fnc_updateMedications.sqf +++ b/addons/gui/functions/fnc_updateMedications.sqf @@ -84,4 +84,4 @@ private _populateListBox = { } forEach _foundMedications; }; -[_foundMedications, _listBox] call _populateListBox; }, [], 0.1] call CBA_fnc_waitAndExecute; \ No newline at end of file +[_foundMedications, _listBox] call _populateListBox; }, [], 0.01] call CBA_fnc_waitAndExecute; \ No newline at end of file diff --git a/addons/gui/functions/fnc_updateSyringes.sqf b/addons/gui/functions/fnc_updateSyringes.sqf index 795a905b6..59804e379 100644 --- a/addons/gui/functions/fnc_updateSyringes.sqf +++ b/addons/gui/functions/fnc_updateSyringes.sqf @@ -70,4 +70,4 @@ private _populateListBox = { } forEach _foundSyringes; }; -[_foundSyringes, _listBox] call _populateListBox; }, [], 0.1] call CBA_fnc_waitAndExecute; \ No newline at end of file +[_foundSyringes, _listBox] call _populateListBox; }, [], 0.01] call CBA_fnc_waitAndExecute; \ No newline at end of file diff --git a/addons/pharma/CfgVehicles.hpp b/addons/pharma/CfgVehicles.hpp index 04513058d..0c8dba4e5 100644 --- a/addons/pharma/CfgVehicles.hpp +++ b/addons/pharma/CfgVehicles.hpp @@ -74,41 +74,4 @@ class CfgVehicles { MACRO_ADDMAGAZINE(kat_Painkiller,15); }; }; - class Man; - class CAManBase: Man { - class ACE_SelfActions { - class KAT_Equipment { - class KAT_PrepIVSyringe { - displayName = CSTRING(Medication_IVAction); - condition = QUOTE([ARR_2(_player,'kat_5ml_syringe')] call ACEFUNC(common,hasItem)); - statement = "true"; - medicRequired = QGVAR(medLvl_PrepIVSyringe); - showDisabled = 0; - exceptions[] = {"isNotInside", "isNotSitting"}; - icon = QPATHTOF(ui\syringe.paa); - insertChildren = QUOTE(_this call FUNC(insertIVChildrenSyringe)); - }; - class KAT_PrepIVPainSyringe { - displayName = CSTRING(Medication_IVPainAction); - condition = QUOTE([ARR_2(_player,'kat_5ml_syringe')] call ACEFUNC(common,hasItem)); - statement = "true"; - medicRequired = QGVAR(medLvl_PrepIVSyringe); - showDisabled = 0; - exceptions[] = {"isNotInside", "isNotSitting"}; - icon = QPATHTOF(ui\syringe.paa); - insertChildren = QUOTE(_this call FUNC(insertIVPainChildrenSyringe)); - }; - class KAT_PrepIMSyringe { - displayName = CSTRING(Medication_IMAction); - condition = QUOTE([ARR_2(_player,'kat_10ml_syringe')] call ACEFUNC(common,hasItem)); - statement = "true"; - medicRequired = QGVAR(medLvl_PrepIMSyringe); - showDisabled = 0; - exceptions[] = {"isNotInside", "isNotSitting"}; - icon = QPATHTOF(ui\syringe.paa); - insertChildren = QUOTE(_this call FUNC(insertIMChildrenSyringe)); - }; - }; - }; - }; }; \ No newline at end of file diff --git a/addons/pharma/functions/fnc_insertIMChildrenSyringe.sqf b/addons/pharma/functions/fnc_insertIMChildrenSyringe.sqf deleted file mode 100644 index c51c57a9b..000000000 --- a/addons/pharma/functions/fnc_insertIMChildrenSyringe.sqf +++ /dev/null @@ -1,77 +0,0 @@ -#include "..\script_component.hpp" -/* - * Author: Katalam, modified by Cplhardcore - * Adds sub actions for preparing syringes - * - * Arguments: - * 0: Player - * 1: Player - * 2: Params - * - * Return Value: - * 0: Actions - * - * Example: - * [player, player, []] call kat_pharma_fnc_insertChildrenSyringe; - * - * Public: No - */ - -params ["_target", "_player", "_params"]; - -private _doseTypes = ["1", "2"]; -private _syringeTypes = ["10ml"]; -private _allMedications = [ - "kat_EACA", - "kat_TXA", - "kat_norepinephrine", - "kat_phenylephrine", - "kat_nitroglycerin", - "kat_amiodarone", - "kat_lidocaine", - "kat_atropine", - "kat_ketamine", - "kat_fentanyl", - "kat_nalbuphine", - "kat_lorazepam", - "kat_flumazenil", - "kat_etomidate", - "kat_epinephrineIV" -]; - -private _medications = []; -{ - if (_x in _allMedications) then { - _medications pushBackUnique _x; - }; -} forEach (items _player); - -private _actions = []; - -{ - private _medication = _x; - { - private _syringeType = _x; - { - private _doseType = _x; - - - private _className = format ["kat_syringe_%1_%2_%3", _medication, _syringeType, _doseType]; - - if (isClass (configFile >> "CfgWeapons" >> _className)) then { - - private _stringtableKey = format ["STR_KAT_Pharma_SyringeAction_%1_%2_%3", _medication, _syringeType, _doseType]; - - private _displayName = localize _stringtableKey; - - private _actionVarName = format [QGVAR(syringe_action_%1_%2_%3), _medication, _syringeType, _doseType]; - - private _action = [_actionVarName, _displayName, "", FUNC(prepareSyringe), {true}, {}, [_medication, _syringeType, _doseType]] call ACEFUNC(interact_menu,createAction); - - _actions pushBack [_action, [], _target]; - }; - } forEach _doseTypes; - } forEach _syringeTypes; -} forEach _medications; - -_actions \ No newline at end of file diff --git a/addons/pharma/functions/fnc_insertIVChildrenSyringe.sqf b/addons/pharma/functions/fnc_insertIVChildrenSyringe.sqf deleted file mode 100644 index b0b5d708f..000000000 --- a/addons/pharma/functions/fnc_insertIVChildrenSyringe.sqf +++ /dev/null @@ -1,70 +0,0 @@ -#include "..\script_component.hpp" -/* - * Author: Katalam, modified by Cplhardcore - * Adds sub actions for preparing syringes - * - * Arguments: - * 0: Player - * 1: Player - * 2: Params - * - * Return Value: - * 0: Actions - * - * Example: - * [player, player, []] call kat_pharma_fnc_insertChildrenSyringe; - * - * Public: No - */ - -params ["_target", "_player", "_params"]; - -private _doseTypes = ["1", "2"]; -private _syringeTypes = ["5ml"]; -private _allMedications = [ - "kat_EACA", - "kat_TXA", - "kat_norepinephrine", - "kat_phenylephrine", - "kat_nitroglycerin", - "kat_amiodarone", - "kat_atropine", - "kat_epinephrineIV" -]; - -private _medications = []; -{ - if (_x in _allMedications) then { - _medications pushBackUnique _x; - }; -} forEach (items _player); - -private _actions = []; - -{ - private _medication = _x; - { - private _syringeType = _x; - { - private _doseType = _x; - - - private _className = format ["kat_syringe_%1_%2_%3", _medication, _syringeType, _doseType]; - - if (isClass (configFile >> "CfgWeapons" >> _className)) then { - - private _stringtableKey = format ["STR_KAT_Pharma_SyringeAction_%1_%2_%3", _medication, _syringeType, _doseType]; - - private _displayName = localize _stringtableKey; - - private _actionVarName = format [QGVAR(syringe_action_%1_%2_%3), _medication, _syringeType, _doseType]; - - private _action = [_actionVarName, _displayName, "", FUNC(prepareSyringe), {true}, {}, [_medication, _syringeType, _doseType]] call ACEFUNC(interact_menu,createAction); - - _actions pushBack [_action, [], _target]; - }; - } forEach _doseTypes; - } forEach _syringeTypes; -} forEach _medications; - -_actions diff --git a/addons/pharma/functions/fnc_insertIVPainChildrenSyringe.sqf b/addons/pharma/functions/fnc_insertIVPainChildrenSyringe.sqf deleted file mode 100644 index e31760834..000000000 --- a/addons/pharma/functions/fnc_insertIVPainChildrenSyringe.sqf +++ /dev/null @@ -1,69 +0,0 @@ -#include "..\script_component.hpp" -/* - * Author: Katalam, modified by Cplhardcore - * Adds sub actions for preparing syringes - * - * Arguments: - * 0: Player - * 1: Player - * 2: Params - * - * Return Value: - * 0: Actions - * - * Example: - * [player, player, []] call kat_pharma_fnc_insertChildrenSyringe; - * - * Public: No - */ - -params ["_target", "_player", "_params"]; - -private _doseTypes = ["1", "2"]; -private _syringeTypes = ["5ml"]; -private _allMedications = [ - "kat_lidocaine", - "kat_ketamine", - "kat_fentanyl", - "kat_nalbuphine", - "kat_lorazepam", - "kat_flumazenil", - "kat_etomidate" -]; - -private _medications = []; -{ - if (_x in _allMedications) then { - _medications pushBackUnique _x; - }; -} forEach (items _player); - -private _actions = []; - -{ - private _medication = _x; - { - private _syringeType = _x; - { - private _doseType = _x; - - - private _className = format ["kat_syringe_%1_%2_%3", _medication, _syringeType, _doseType]; - - if (isClass (configFile >> "CfgWeapons" >> _className)) then { - - private _stringtableKey = format ["STR_KAT_Pharma_SyringeAction_%1_%2_%3", _medication, _syringeType, _doseType]; - - private _displayName = localize _stringtableKey; - - private _actionVarName = format [QGVAR(syringe_action_%1_%2_%3), _medication, _syringeType, _doseType]; - - private _action = [_actionVarName, _displayName, "", FUNC(prepareSyringe), {true}, {}, [_medication, _syringeType, _doseType]] call ACEFUNC(interact_menu,createAction); - - _actions pushBack [_action, [], _target]; - }; - } forEach _doseTypes; - } forEach _syringeTypes; -} forEach _medications; - -_actions diff --git a/addons/pharma/functions/fnc_medicationLocal.sqf b/addons/pharma/functions/fnc_medicationLocal.sqf index 905b1f02e..477a041dc 100644 --- a/addons/pharma/functions/fnc_medicationLocal.sqf +++ b/addons/pharma/functions/fnc_medicationLocal.sqf @@ -115,8 +115,8 @@ if ([QGVAR(AMS_Enabled)] call CBA_settings_fnc_get) then { private _medicationParts = (_className splitString "_"); - if (count _medicationParts > 4) then { - _medicationName = _medicationParts select 2; + if (count _medicationParts > 3) then { + _medicationName = _medicationParts select 1; if (_medicationName in ["lorazepam","EACA","TXA","amiodarone","flumazenil"]) then { [format ["kat_pharma_%1Local", toLower _medicationName], [_patient, _bodyPart], _patient] call CBA_fnc_targetEvent; diff --git a/addons/pharma/functions/fnc_prepareSyringe.sqf b/addons/pharma/functions/fnc_prepareSyringe.sqf index 17b1389a4..2bfa3e442 100644 --- a/addons/pharma/functions/fnc_prepareSyringe.sqf +++ b/addons/pharma/functions/fnc_prepareSyringe.sqf @@ -25,7 +25,7 @@ params ["_player", "_medicationType", "_syringeType", "_doseType"]; private _syringeClassName = format ["kat_syringe_%1_%2_%3", _medicationType, _syringeType, _doseType]; private _hasSyringe = isClass (configFile >> "CfgWeapons" >> _syringeClassName); if (!_hasSyringe) exitWith { - hint format ["Syringe type for %1 with %2 syringe and %3 dose does not exist.", _medicationType, _syringeType, _doseType]; + hint "This syringe combination does not exist."; }; private _baseSyringe = format ["kat_%1_syringe", _syringeType]; _player removeItem _baseSyringe; diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_AmiodaroneLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_AmiodaroneLocal.sqf index 04073ee61..ae08398b1 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_AmiodaroneLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_AmiodaroneLocal.sqf @@ -1,6 +1,6 @@ #include "..\script_component.hpp" /* - * Author: Mazinski.H, Edited by MiszczuZPolski + * Author: Mazinski.H, Edited by MiszczuZPolski and Cplhardcore * Applies Bradycardia randomly * * Arguments: @@ -15,8 +15,12 @@ * Public: No */ -params ["_patient"]; - +private _cardiacRhythm = _patient getVariable [QEGVAR(circulation,cardiacArrestType), 0]; +_patient setVariable [QEGVAR(circulation,cardiacArrestType), 1]; +[{ + params ["_patient", "_cardiacRhythm"]; + _patient setVariable [QEGVAR(circulation,cardiacArrestType), _cardiacRhythm]; +}, [_patient, _cardiacRhythm], random(8) + 8] call CBA_fnc_waitAndExecute; private _random = random 3; if (_random <= 1) then { [_patient, "BRADYCARDIA", 120, 1200, -40, 0, 0] call ACEFUNC(medical_status,addMedicationAdjustment); diff --git a/addons/pharma/stringtable.xml b/addons/pharma/stringtable.xml index 6764d4761..60da53b6d 100644 --- a/addons/pharma/stringtable.xml +++ b/addons/pharma/stringtable.xml @@ -4286,138 +4286,6 @@ Establish 20g IV - - Prepare IM syringe - - - Prepare IV syringe (Pain Management/Surgery) - - - Prepare IV syringe (Cardiac/Trauma) - - - Prep EACA - - - Prep TXA - - - Prep 5ml EACA 7.5g - - - Prep 5ml EACA 15g - - - Prep 5ml TXA 1g - - - Prep 5ml TXA 2g - - - Prep 10ml TXA 1g - - - Prep 10ml TXA 2g - - - Prep 5ml Norepinephrine 150mcg - - - Prep 5ml Norepinephrine 240mcg - - - Prep 5ml Phenylephrine 100mcg - - - Prep 5ml Phenylephrine 200mcg - - - Prep 5ml Nitroglycerin 50mcg - - - Prep 5ml Nitroglycerin 100mcg - - - Prep 5ml Amiodarone 150mg - - - Prep 5ml Amiodarone 300mg - - - Prep 5ml Lidocaine 40mg - - - Prep 5ml Lidocaine 80mg - - - Prep 5ml Atropine 0.6mg - - - Prep 5ml Atropine 2mg - - - Prep 5ml Ketamine 25mg - - - Prep 5ml Ketamine 80mg - - - Prep 5ml Fentanyl 40mcg - - - Prep 5ml Fentanyl 80mcg - - - Prep 5ml Nalbuphine 10mg - - - Prep 5ml Nalbuphine 20mg - - - Prep 5ml Lorazepam 2.4mg - - - Prep 5ml Lorazepam 4mg - - - Prep 5ml Flumazenil 0.1mg - - - Prep 5ml Flumazenil 0.2mg - - - Prep 5ml Etomidate 0.2mg - - - Prep 5ml Etomidate 0.3mg - - - Prep 5ml Epinephrine 10mcg - - - Prep 5ml Epinephrine 1mg - - - Prep 10ml Lidocaine 40mg - - - Prep 10ml Ketamine 25mg - - - Prep 10ml Ketamine 80mg - - - Prep 10ml Fentanyl 40mcg - - - Prep 10ml Fentanyl 80mcg - - - Prep 10ml Nalbuphine 10mg - - - Prep 10ml Nalbuphine 20mg - Syringe Prep level From 2aa1661d9e7b17020986babd6c2389cb13ac4180 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Wed, 2 Oct 2024 17:13:53 -0700 Subject: [PATCH 086/149] fixes --- addons/pharma/functions/fnc_treatmentAdvanced_KetamineLocal.sqf | 2 +- .../functions/fnc_treatmentAdvanced_KetamineSedationLocal.sqf | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_KetamineLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_KetamineLocal.sqf index 902ddc96b..52c7ba8e5 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_KetamineLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_KetamineLocal.sqf @@ -10,7 +10,7 @@ * None * * Example: - * [player, leftLeg, syringe_kat_ketamine_5ml_2] call kat_pharma_fnc_treatmentAdvanced_ketamineLocal; + * [player] call kat_pharma_fnc_treatmentAdvanced_ketamineLocal; * * Public: No */ diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_KetamineSedationLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_KetamineSedationLocal.sqf index 7e3254b50..a441df697 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_KetamineSedationLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_KetamineSedationLocal.sqf @@ -25,4 +25,4 @@ _patient setVariable [QEGVAR(surgery,sedated), true, true]; [{ _patient setVariable ["kat_surgery_sedated", false, true]; -}, 90] call CBA_fnc_waitAndExecute; +}, 30] call CBA_fnc_waitAndExecute; From 847b9d700944a6c87e5a0176d67811540e937654 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Fri, 4 Oct 2024 10:23:25 -0700 Subject: [PATCH 087/149] Forgot atropine --- addons/pharma/CfgWeapons.hpp | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/addons/pharma/CfgWeapons.hpp b/addons/pharma/CfgWeapons.hpp index 9759f3c20..8d120e489 100644 --- a/addons/pharma/CfgWeapons.hpp +++ b/addons/pharma/CfgWeapons.hpp @@ -674,4 +674,26 @@ class CfgWeapons { mass = 1; }; }; + class kat_syringe_atropine_5ml_1: ACE_ItemCore { + scope = 1; + displayName = CSTRING(Syringe_atropine_5_1_Display); + picture = QPATHTOF(ui\syringe_item.paa); + model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; + descriptionShort = CSTRING(Syringe_atropine_5_1_DescShort); + ACE_isMedicalItem = 1; + class ItemInfo: CBA_MiscItem_ItemInfo { + mass = 1; + }; + }; + class kat_syringe_atropine_5ml_3: ACE_ItemCore { + scope = 1; + displayName = CSTRING(Syringe_atropine_5_3_Display); + picture = QPATHTOF(ui\syringe_item.paa); + model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; + descriptionShort = CSTRING(Syringe_atropine_5_3_DescShort); + ACE_isMedicalItem = 1; + class ItemInfo: CBA_MiscItem_ItemInfo { + mass = 1; + }; + }; }; From 732474870f6417b5c2a5abc31205905a085a19b9 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Sat, 5 Oct 2024 12:41:55 -0700 Subject: [PATCH 088/149] Moving this to effects and overdose --- .../functions/fnc_treatmentAdvanced_AmiodaroneLocal.sqf | 6 ------ 1 file changed, 6 deletions(-) diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_AmiodaroneLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_AmiodaroneLocal.sqf index ae08398b1..bc05537df 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_AmiodaroneLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_AmiodaroneLocal.sqf @@ -15,12 +15,6 @@ * Public: No */ -private _cardiacRhythm = _patient getVariable [QEGVAR(circulation,cardiacArrestType), 0]; -_patient setVariable [QEGVAR(circulation,cardiacArrestType), 1]; -[{ - params ["_patient", "_cardiacRhythm"]; - _patient setVariable [QEGVAR(circulation,cardiacArrestType), _cardiacRhythm]; -}, [_patient, _cardiacRhythm], random(8) + 8] call CBA_fnc_waitAndExecute; private _random = random 3; if (_random <= 1) then { [_patient, "BRADYCARDIA", 120, 1200, -40, 0, 0] call ACEFUNC(medical_status,addMedicationAdjustment); From d4652da45bed9c4bc1894b47bba32461bf98f479 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Sat, 5 Oct 2024 13:09:16 -0700 Subject: [PATCH 089/149] Cleanup --- addons/pharma/ACE_Medical_Treatment_Actions.hpp | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/addons/pharma/ACE_Medical_Treatment_Actions.hpp b/addons/pharma/ACE_Medical_Treatment_Actions.hpp index 7664bf3e3..5534e31ea 100644 --- a/addons/pharma/ACE_Medical_Treatment_Actions.hpp +++ b/addons/pharma/ACE_Medical_Treatment_Actions.hpp @@ -483,7 +483,6 @@ class ACE_Medical_Treatment_Actions { allowSelfTreatment = 1; medicRequired = QGVAR(medLvl_TXA); treatmentTime = QGVAR(treatmentTime_TXA); - condition = QUOTE(!(GVAR(MedicationsRequireInsIV)) || FUNC(removeIV)); items[] = {"kat_syringe_txa_5ml_1"}; callbackSuccess = QFUNC(medication); sounds[] = {}; @@ -502,7 +501,6 @@ class ACE_Medical_Treatment_Actions { allowSelfTreatment = 1; medicRequired = QGVAR(medLvl_norepinephrine); treatmentTime = QGVAR(treatmentTime_norepinephrine); - condition = QUOTE(!(GVAR(MedicationsRequireInsIV)) || FUNC(removeIV)); items[] = {"kat_syringe_norepinephrine_5ml_1"}; callbackSuccess = QFUNC(medication); sounds[] = {}; @@ -521,7 +519,6 @@ class ACE_Medical_Treatment_Actions { allowSelfTreatment = 1; medicRequired = QGVAR(medLvl_phenylephrine); treatmentTime = QGVAR(treatmentTime_phenylephrine); - condition = QUOTE(!(GVAR(MedicationsRequireInsIV)) || FUNC(removeIV)); items[] = {"kat_syringe_phenylephrine_5ml_1"}; callbackSuccess = QFUNC(medication); sounds[] = {}; @@ -540,7 +537,6 @@ class ACE_Medical_Treatment_Actions { allowSelfTreatment = 1; medicRequired = QGVAR(medLvl_nitroglycerin); treatmentTime = QGVAR(treatmentTime_nitroglycerin); - condition = QUOTE(!(GVAR(MedicationsRequireInsIV)) || FUNC(removeIV)); items[] = {"kat_syringe_nitroglycerin_5ml_1"}; callbackSuccess = QFUNC(medication); sounds[] = {}; @@ -559,7 +555,6 @@ class ACE_Medical_Treatment_Actions { allowSelfTreatment = 1; medicRequired = QGVAR(medLvl_amiodarone); treatmentTime = QGVAR(treatmentTime_amiodarone); - condition = QUOTE(!(GVAR(MedicationsRequireInsIV)) || FUNC(removeIV)); items[] = {"kat_syringe_amiodarone_5ml_1"}; callbackSuccess = QFUNC(medication); sounds[] = {}; @@ -597,7 +592,6 @@ class ACE_Medical_Treatment_Actions { allowSelfTreatment = 1; medicRequired = QGVAR(medLvl_atropine); treatmentTime = QGVAR(treatmentTime_atropine); - condition = QUOTE(!(GVAR(MedicationsRequireInsIV)) || FUNC(removeIV)); items[] = {"kat_syringe_atropine_5ml_1"}; callbackSuccess = QFUNC(medication); sounds[] = {}; @@ -616,7 +610,6 @@ class ACE_Medical_Treatment_Actions { allowSelfTreatment = 1; medicRequired = QGVAR(medLvl_ketamine); treatmentTime = QGVAR(treatmentTime_ketamine); - condition = QUOTE(!(GVAR(MedicationsRequireInsIV)) || FUNC(removeIV)); items[] = {"kat_syringe_ketamine_5ml_1"}; callbackSuccess = QFUNC(medication); sounds[] = {}; @@ -636,7 +629,6 @@ class ACE_Medical_Treatment_Actions { allowSelfTreatment = 1; medicRequired = QGVAR(medLvl_fentanyl); treatmentTime = QGVAR(treatmentTime_fentanyl); - condition = QUOTE(!(GVAR(MedicationsRequireInsIV)) || FUNC(removeIV)); items[] = {"kat_syringe_fentanyl_5ml_1"}; callbackSuccess = QFUNC(medication); sounds[] = {}; @@ -655,7 +647,6 @@ class ACE_Medical_Treatment_Actions { allowSelfTreatment = 1; medicRequired = QGVAR(medLvl_nalbuphine); treatmentTime = QGVAR(treatmentTime_nalbuphine); - condition = QUOTE(!(GVAR(MedicationsRequireInsIV)) || FUNC(removeIV)); items[] = {"kat_syringe_nalbuphine_5ml_1"}; callbackSuccess = QFUNC(medication); sounds[] = {}; @@ -675,7 +666,6 @@ class ACE_Medical_Treatment_Actions { allowSelfTreatment = 1; medicRequired = QGVAR(medLvl_lorazepam); treatmentTime = QGVAR(treatmentTime_lorazepam); - condition = QUOTE(!(GVAR(MedicationsRequireInsIV)) || FUNC(removeIV)); items[] = {"kat_syringe_lorazepam_5ml_1"}; callbackSuccess = QFUNC(medication); sounds[] = {}; @@ -696,7 +686,6 @@ class ACE_Medical_Treatment_Actions { allowSelfTreatment = 1; medicRequired = QGVAR(medLvl_flumazenil); treatmentTime = QGVAR(treatmentTime_flumazenil); - condition = QUOTE(!(GVAR(MedicationsRequireInsIV)) || FUNC(removeIV)); items[] = {"kat_syringe_flumazenil_5ml_1"}; callbackSuccess = QFUNC(medication); sounds[] = {}; @@ -717,7 +706,6 @@ class ACE_Medical_Treatment_Actions { allowSelfTreatment = 1; medicRequired = QGVAR(medLvl_etomidate); treatmentTime = QGVAR(treatmentTime_etomidate); - condition = QUOTE(!(GVAR(MedicationsRequireInsIV)) || FUNC(removeIV)); items[] = {"kat_syringe_etomidate_5ml_1"}; callbackSuccess = QFUNC(medication); sounds[] = {}; @@ -737,7 +725,6 @@ class ACE_Medical_Treatment_Actions { allowSelfTreatment = 1; medicRequired = QGVAR(medLvl_epinephrineIV); treatmentTime = QGVAR(treatmentTime_epinephrineIV); - condition = QUOTE(!(GVAR(MedicationsRequireInsIV)) || FUNC(removeIV)); items[] = {"kat_syringe_epinephrineIV_5ml_1"}; callbackSuccess = QFUNC(medication); sounds[] = {}; From 9239918a9d7c57dcaf025ae10a8b5d476738c52b Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Sat, 5 Oct 2024 13:22:19 -0700 Subject: [PATCH 090/149] Woohoo --- .../functions/fnc_treatmentAdvanced_KetamineSedationLocal.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_KetamineSedationLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_KetamineSedationLocal.sqf index a441df697..06cc1ec5a 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_KetamineSedationLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_KetamineSedationLocal.sqf @@ -12,13 +12,13 @@ * None * * Example: - * [player, leftLeg, syringe_kat_ketamine_5ml_2] call kat_pharma_fnc_treatmentAdvanced_ketamineLocal; + * [player, leftLeg, syringe_kat_ketamine_5ml_3] call kat_pharma_fnc_treatmentAdvanced_ketamineLocal; * * Public: No */ params ["_patient", "_bodyPart", "_classname"]; -if !(_classname isEqualTo "syringe_kat_ketamine_5ml_2") exitWith {}; +if !(_classname isEqualTo "syringe_kat_ketamine_5ml_3") exitWith {}; _patient setVariable [QEGVAR(surgery,sedated), true, true]; [_patient, true] call ACEFUNC(medical,setUnconscious); From 6c9a0dd126293cd4480900f5254df4e7dc4f44f2 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Mon, 7 Oct 2024 21:02:41 -0700 Subject: [PATCH 091/149] prep fix --- addons/pharma/XEH_PREP.hpp | 3 --- 1 file changed, 3 deletions(-) diff --git a/addons/pharma/XEH_PREP.hpp b/addons/pharma/XEH_PREP.hpp index c38329cb3..fb81ee475 100644 --- a/addons/pharma/XEH_PREP.hpp +++ b/addons/pharma/XEH_PREP.hpp @@ -47,9 +47,6 @@ PREP(treatmentAdvanced_Reorientation); PREP(treatmentAdvanced_ReorientationLocal); PREP(treatmentAdvanced_TXALocal); PREP(vehicleCheckDialysis); -PREP(insertIVChildrenSyringe); -PREP(insertIVPainChildrenSyringe); -PREP(insertIMChildrenSyringe); PREP(prepareSyringe); PREP(checkIVType); PREP(treatmentAdvanced_KetamineSedationLocal); From de1a33564f0324472aee7ea3d1d5a8f98d9ac726 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Mon, 7 Oct 2024 21:31:22 -0700 Subject: [PATCH 092/149] One small fix --- addons/pharma/ACE_Medical_Treatment.hpp | 78 ++++++++++++------------- 1 file changed, 39 insertions(+), 39 deletions(-) diff --git a/addons/pharma/ACE_Medical_Treatment.hpp b/addons/pharma/ACE_Medical_Treatment.hpp index 3abe30cd1..d81e614ae 100644 --- a/addons/pharma/ACE_Medical_Treatment.hpp +++ b/addons/pharma/ACE_Medical_Treatment.hpp @@ -335,7 +335,7 @@ class ACE_ADDON(Medical_Treatment) { onOverDose = ""; maxRelief = 0.6; }; - class syringe_kat_txa_5ml_1 { + class syringe_txa_5ml_1 { painReduce = 0; hrIncreaseLow[] = {0, 0}; hrIncreaseNormal[] = {0, 0}; @@ -347,7 +347,7 @@ class ACE_ADDON(Medical_Treatment) { viscosityChange = 0; onOverDose = ""; }; - class syringe_kat_txa_5ml_3 { + class syringe_txa_5ml_3 { painReduce = 0; hrIncreaseLow[] = {0, 0}; hrIncreaseNormal[] = {0, 0}; @@ -359,7 +359,7 @@ class ACE_ADDON(Medical_Treatment) { viscosityChange = 0; onOverDose = ""; }; - class syringe_kat_txa_10ml_1 { + class syringe_txa_10ml_1 { painReduce = 0; hrIncreaseLow[] = {0, 0}; hrIncreaseNormal[] = {0, 0}; @@ -371,7 +371,7 @@ class ACE_ADDON(Medical_Treatment) { viscosityChange = 0; onOverDose = ""; }; - class syringe_kat_txa_10ml_3 { + class syringe_txa_10ml_3 { painReduce = 0; hrIncreaseLow[] = {0, 0}; hrIncreaseNormal[] = {0, 0}; @@ -383,7 +383,7 @@ class ACE_ADDON(Medical_Treatment) { viscosityChange = 0; onOverDose = ""; }; - class syringe_kat_eaca_5ml_1 { + class syringe_eaca_5ml_1 { painReduce = 0; hrIncreaseLow[] = {0, 0}; hrIncreaseNormal[] = {0, 0}; @@ -395,7 +395,7 @@ class ACE_ADDON(Medical_Treatment) { viscosityChange = 0; onOverDose = ""; }; - class syringe_kat_eaca_5ml_3 { + class syringe_eaca_5ml_3 { painReduce = 0; hrIncreaseLow[] = {0, 0}; hrIncreaseNormal[] = {0, 0}; @@ -407,7 +407,7 @@ class ACE_ADDON(Medical_Treatment) { viscosityChange = 0; onOverDose = ""; }; - class syringe_kat_epinephrineIV_5ml_1 { + class syringe_epinephrineIV_5ml_1 { painReduce = 0; hrIncreaseLow[] = {15, 30}; hrIncreaseNormal[] = {10, 40}; @@ -420,7 +420,7 @@ class ACE_ADDON(Medical_Treatment) { alphaFactor = -0.3; onOverDose = ""; }; - class syringe_kat_norepinephrine_5ml_1 { + class syringe_norepinephrine_5ml_1 { painReduce = 0; hrIncreaseLow[] = {0, 5}; hrIncreaseNormal[] = {5, 15}; @@ -433,7 +433,7 @@ class ACE_ADDON(Medical_Treatment) { alphaFactor = -0.3; onOverDose = ""; }; - class syringe_kat_phenylephrine_5ml_1 { + class syringe_phenylephrine_5ml_1 { painReduce = 0; hrIncreaseLow[] = {-5, -10}; hrIncreaseNormal[] = {-10, -15}; @@ -447,7 +447,7 @@ class ACE_ADDON(Medical_Treatment) { alphaFactor = -0.5; onOverDose = ""; }; - class syringe_kat_nitroglycerin_5ml_1 { + class syringe_nitroglycerin_5ml_1 { painReduce = 0; hrIncreaseLow[] = {5, 10}; hrIncreaseNormal[] = {10, 15}; @@ -461,7 +461,7 @@ class ACE_ADDON(Medical_Treatment) { alphaFactor = 0.3; onOverDose = ""; }; - class syringe_kat_fentanyl_5ml_1 { + class syringe_fentanyl_5ml_1 { painReduce = 0.8; hrIncreaseLow[] = {-10, -5}; hrIncreaseNormal[] = {-15, -10}; @@ -475,7 +475,7 @@ class ACE_ADDON(Medical_Treatment) { onOverDose = ""; opioidRelief = 1.2; }; - class syringe_kat_ketamine_5ml_1 { + class syringe_ketamine_5ml_1 { painReduce = 0.7; hrIncreaseLow[] = {5, 10}; hrIncreaseNormal[] = {10, 15}; @@ -488,7 +488,7 @@ class ACE_ADDON(Medical_Treatment) { viscosityChange = 10; onOverDose = ""; }; - class syringe_kat_nalbuphine_5ml_1 { + class syringe_nalbuphine_5ml_1 { painReduce = 0.5; hrIncreaseLow[] = {-5, 0}; hrIncreaseNormal[] = {-10, -5}; @@ -502,7 +502,7 @@ class ACE_ADDON(Medical_Treatment) { onOverDose = ""; opioidRelief = 1.1; }; - class syringe_kat_atropine_5ml_1 { + class syringe_atropine_5ml_1 { painReduce = 0; hrIncreaseLow[] = {20, 40}; hrIncreaseNormal[] = {10, 25}; @@ -514,7 +514,7 @@ class ACE_ADDON(Medical_Treatment) { viscosityChange = 0; onOverDose = ""; }; - class syringe_kat_amiodarone_5ml_1 { + class syringe_amiodarone_5ml_1 { painReduce = 0; hrIncreaseLow[] = {0, 0}; hrIncreaseNormal[] = {0, 0}; @@ -526,7 +526,7 @@ class ACE_ADDON(Medical_Treatment) { viscosityChange = 0; onOverDose = ""; }; - class syringe_kat_lidocaine_5ml_1 { + class syringe_lidocaine_5ml_1 { painReduce = 0.2; hrIncreaseLow[] = {0, 0}; hrIncreaseNormal[] = {0, 0}; @@ -539,7 +539,7 @@ class ACE_ADDON(Medical_Treatment) { onOverDose = ""; maxRelief = 0.6; }; - class syringe_kat_etomidate_5ml_1 { + class syringe_etomidate_5ml_1 { painReduce = 0.4; hrIncreaseLow[] = {-10, -5}; hrIncreaseNormal[] = {-15, -20}; @@ -551,7 +551,7 @@ class ACE_ADDON(Medical_Treatment) { viscosityChange = 0; onOverDose = ""; }; - class syringe_kat_flumazenil_5ml_1 { + class syringe_flumazenil_5ml_1 { painReduce = 0; hrIncreaseLow[] = {0, 0}; hrIncreaseNormal[] = {0, 0}; @@ -563,7 +563,7 @@ class ACE_ADDON(Medical_Treatment) { viscosityChange = 0; onOverDose = ""; }; - class syringe_kat_lorazepam_5ml_1 { + class syringe_lorazepam_5ml_1 { painReduce = 0; hrIncreaseLow[] = {0, 0}; hrIncreaseNormal[] = {0, 0}; @@ -575,7 +575,7 @@ class ACE_ADDON(Medical_Treatment) { viscosityChange = -15; onOverDose = ""; }; - class syringe_kat_epinephrineIV_5ml_3 { + class syringe_epinephrineIV_5ml_3 { painReduce = 0; hrIncreaseLow[] = {25, 40}; hrIncreaseNormal[] = {20, 50}; @@ -588,7 +588,7 @@ class ACE_ADDON(Medical_Treatment) { alphaFactor = -0.4; onOverDose = ""; }; - class syringe_kat_norepinephrine_5ml_3 { + class syringe_norepinephrine_5ml_3 { painReduce = 0; hrIncreaseLow[] = {0, 10}; hrIncreaseNormal[] = {10, 15}; @@ -601,7 +601,7 @@ class ACE_ADDON(Medical_Treatment) { alphaFactor = -0.4; onOverDose = ""; }; - class syringe_kat_phenylephrine_5ml_3 { + class syringe_phenylephrine_5ml_3 { painReduce = 0; hrIncreaseLow[] = {-15, -5}; hrIncreaseNormal[] = {-15, -25}; @@ -615,7 +615,7 @@ class ACE_ADDON(Medical_Treatment) { alphaFactor = -0.7; onOverDose = ""; }; - class syringe_kat_nitroglycerin_5ml_3 { + class syringe_nitroglycerin_5ml_3 { painReduce = 0; hrIncreaseLow[] = {5, 15}; hrIncreaseNormal[] = {10, 20}; @@ -629,7 +629,7 @@ class ACE_ADDON(Medical_Treatment) { alphaFactor = 0.5; onOverDose = ""; }; - class syringe_kat_fentanyl_5ml_3 { + class syringe_fentanyl_5ml_3 { painReduce = 1; hrIncreaseLow[] = {-15, -10}; hrIncreaseNormal[] = {-25, -15}; @@ -643,7 +643,7 @@ class ACE_ADDON(Medical_Treatment) { onOverDose = ""; opioidRelief = 1.5; }; - class syringe_kat_ketamine_5ml_3 { + class syringe_ketamine_5ml_3 { painReduce = 0.8; hrIncreaseLow[] = {5, 15}; hrIncreaseNormal[] = {10, 20}; @@ -656,7 +656,7 @@ class ACE_ADDON(Medical_Treatment) { viscosityChange = 10; onOverDose = ""; }; - class syringe_kat_nalbuphine_5ml_3 { + class syringe_nalbuphine_5ml_3 { painReduce = 0.6; hrIncreaseLow[] = {-10, 0}; hrIncreaseNormal[] = {-15, -5}; @@ -670,7 +670,7 @@ class ACE_ADDON(Medical_Treatment) { onOverDose = ""; opioidRelief = 1.2; }; - class syringe_kat_atropine_5ml_3 { + class syringe_atropine_5ml_3 { painReduce = 0; hrIncreaseLow[] = {20, 40}; hrIncreaseNormal[] = {10, 25}; @@ -682,7 +682,7 @@ class ACE_ADDON(Medical_Treatment) { viscosityChange = 0; onOverDose = ""; }; - class syringe_kat_amiodarone_5ml_3 { + class syringe_amiodarone_5ml_3 { painReduce = 0; hrIncreaseLow[] = {0, 0, 0}; hrIncreaseNormal[] = {0, 0, 0}; @@ -694,7 +694,7 @@ class ACE_ADDON(Medical_Treatment) { viscosityChange = 0; onOverDose = ""; }; - class syringe_kat_lidocaine_5ml_3 { + class syringe_lidocaine_5ml_3 { painReduce = 0.3; hrIncreaseLow[] = {0, 0}; hrIncreaseNormal[] = {0, 0}; @@ -707,7 +707,7 @@ class ACE_ADDON(Medical_Treatment) { onOverDose = ""; maxRelief = 0.6; }; - class syringe_kat_etomidate_5ml_3 { + class syringe_etomidate_5ml_3 { painReduce = 0.4; hrIncreaseLow[] = {-10, -5}; hrIncreaseNormal[] = {-15, -20}; @@ -719,7 +719,7 @@ class ACE_ADDON(Medical_Treatment) { viscosityChange = 0; onOverDose = ""; }; - class syringe_kat_flumazenil_5ml_3 { + class syringe_flumazenil_5ml_3 { painReduce = 0; hrIncreaseLow[] = {0, 0}; hrIncreaseNormal[] = {0, 0}; @@ -731,7 +731,7 @@ class ACE_ADDON(Medical_Treatment) { viscosityChange = 0; onOverDose = ""; }; - class syringe_kat_lorazepam_5ml_3 { + class syringe_lorazepam_5ml_3 { painReduce = 0; hrIncreaseLow[] = {0, 0}; hrIncreaseNormal[] = {0, 0}; @@ -743,7 +743,7 @@ class ACE_ADDON(Medical_Treatment) { viscosityChange = -15; onOverDose = ""; }; - class syringe_kat_fentanyl_10ml_1 { + class syringe_fentanyl_10ml_1 { painReduce = 0.8; hrIncreaseLow[] = {-10, -5}; hrIncreaseNormal[] = {-15, -10}; @@ -757,7 +757,7 @@ class ACE_ADDON(Medical_Treatment) { onOverDose = ""; opioidRelief = 1.3; }; - class syringe_kat_ketamine_10ml_1 { + class syringe_ketamine_10ml_1 { painReduce = 0.7; hrIncreaseLow[] = {5, 10}; hrIncreaseNormal[] = {10, 15}; @@ -770,7 +770,7 @@ class ACE_ADDON(Medical_Treatment) { viscosityChange = 10; onOverDose = ""; }; - class syringe_kat_nalbuphine_10ml_1 { + class syringe_nalbuphine_10ml_1 { painReduce = 0.5; hrIncreaseLow[] = {-5, 0}; hrIncreaseNormal[] = {-10, -5}; @@ -784,7 +784,7 @@ class ACE_ADDON(Medical_Treatment) { onOverDose = ""; opioidRelief = 1.2; }; - class syringe_kat_lidocaine_10ml_1 { + class syringe_lidocaine_10ml_1 { painReduce = 0.2; hrIncreaseLow[] = {0, 0, 0}; hrIncreaseNormal[] = {0, 0, 0}; @@ -797,7 +797,7 @@ class ACE_ADDON(Medical_Treatment) { onOverDose = ""; maxRelief = 0.6; }; - class syringe_kat_fentanyl_10ml_3 { + class syringe_fentanyl_10ml_3 { painReduce = 1; hrIncreaseLow[] = {-15, -5}; hrIncreaseNormal[] = {-20, -10}; @@ -811,7 +811,7 @@ class ACE_ADDON(Medical_Treatment) { onOverDose = ""; opioidRelief = 1.5; }; - class syringe_kat_ketamine_10ml_3 { + class syringe_ketamine_10ml_3 { painReduce = 0.8; hrIncreaseLow[] = {5, 20}; hrIncreaseNormal[] = {10, 25}; @@ -824,7 +824,7 @@ class ACE_ADDON(Medical_Treatment) { viscosityChange = 10; onOverDose = ""; }; - class syringe_kat_nalbuphine_10ml_3 { + class syringe_nalbuphine_10ml_3 { painReduce = 0.6; hrIncreaseLow[] = {-5, 0}; hrIncreaseNormal[] = {-10, -5}; From 5f109a599786e955611a5022b09adcea4351ac9f Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Mon, 7 Oct 2024 23:40:22 -0700 Subject: [PATCH 093/149] Squashed from effects, as these things are more for main PR --- addons/gui/functions/fnc_prepSyringe.sqf | 2 +- .../gui/functions/fnc_updateMedications.sqf | 5 +- addons/pharma/ACE_Medical_Treatment.hpp | 129 +++++++++++++- .../pharma/ACE_Medical_Treatment_Actions.hpp | 107 ++++++++++++ addons/pharma/CfgWeapons.hpp | 117 +++++++++++++ addons/pharma/XEH_PREP.hpp | 3 +- addons/pharma/XEH_preInit.sqf | 80 +++++++++ .../pharma/functions/fnc_medicationLocal.sqf | 2 +- .../pharma/functions/fnc_prepareSyringe.sqf | 5 +- .../fnc_treatmentAdvanced_AdenosineLocal.sqf | 23 +++ addons/pharma/stringtable.xml | 164 +++++++++++++++++- addons/pharma/weee | 6 + 12 files changed, 624 insertions(+), 19 deletions(-) create mode 100644 addons/pharma/functions/fnc_treatmentAdvanced_AdenosineLocal.sqf create mode 100644 addons/pharma/weee diff --git a/addons/gui/functions/fnc_prepSyringe.sqf b/addons/gui/functions/fnc_prepSyringe.sqf index 27ce36a13..b1ec6d728 100644 --- a/addons/gui/functions/fnc_prepSyringe.sqf +++ b/addons/gui/functions/fnc_prepSyringe.sqf @@ -19,7 +19,7 @@ private _playerMedicalLevel = [_player] call ace_medical_fnc_getMedicLevel; private _requiredMedicalLevel = GVAR(medLvl_PrepSyringe); if (_playerMedicalLevel < _requiredMedicalLevel) exitWith {}; -[5, [], { +[EGVAR(pharma,prepTime_PrepSyringe), [], { private _syringeBox = findDisplay 38580 displayCtrl 71303; private _medicationBox = findDisplay 38580 displayCtrl 71305; private _doseCombo = findDisplay 38580 displayCtrl 71307; diff --git a/addons/gui/functions/fnc_updateMedications.sqf b/addons/gui/functions/fnc_updateMedications.sqf index e19ed3358..95c13ebd2 100644 --- a/addons/gui/functions/fnc_updateMedications.sqf +++ b/addons/gui/functions/fnc_updateMedications.sqf @@ -33,7 +33,10 @@ disableSerialization; "kat_nitroglycerin", "kat_norepinephrine", "kat_phenylephrine", - "kat_TXA" + "kat_TXA", + "kat_morphineIV", + "kat_adenosineIV", + "kat_atropineIV" ]; private _medicationsFound = { diff --git a/addons/pharma/ACE_Medical_Treatment.hpp b/addons/pharma/ACE_Medical_Treatment.hpp index d81e614ae..e1017ee6d 100644 --- a/addons/pharma/ACE_Medical_Treatment.hpp +++ b/addons/pharma/ACE_Medical_Treatment.hpp @@ -54,17 +54,54 @@ class ACE_ADDON(Medical_Treatment) { onOverDose = ""; }; class Morphine { + painReduce = 0.6; + hrIncreaseLow[] = {-10, -20}; + hrIncreaseNormal[] = {-10, -30}; + hrIncreaseHigh[] = {-10, -35}; + timeInSystem = 450; + timeTillMaxEffect = 60; + maxDose = 2; + maxDoseDeviation = 2; + incompatibleMedication[] = {}; + viscosityChange = -0; + opioidRelief = 1.1; + }; + class MorphineIV { painReduce = 0.8; hrIncreaseLow[] = {-10, -20}; hrIncreaseNormal[] = {-10, -30}; hrIncreaseHigh[] = {-10, -35}; timeInSystem = 900; timeTillMaxEffect = 30; - maxDose = 4; - maxDoseDeviation = 4; + maxDose = 2; + maxDoseDeviation = 2; incompatibleMedication[] = {}; - viscosityChange = -10; - opioidRelief = 1.2; + viscosityChange = -15; + opioidRelief = 1.3; + }; + class Adenosine { + painReduce = 0; + hrIncreaseLow[] = {-4, -10}; + hrIncreaseNormal[] = {-5, -20}; + hrIncreaseHigh[] = {-5, -25}; + timeInSystem = 60; + timeTillMaxEffect = 30; + maxDose = 2; + maxDoseDeviation = 2; + incompatibleMedication[] = {}; + viscosityChange = 0; + }; + class AdenosineIV { + painReduce = 0; + hrIncreaseLow[] = {-7, -10}; + hrIncreaseNormal[] = {-15, -30}; + hrIncreaseHigh[] = {-15, -35}; + timeInSystem = 180; + timeTillMaxEffect = 15; + maxDose = 3; + maxDoseDeviation = 2; + incompatibleMedication[] = {}; + viscosityChange = 0; }; class Carbonate { painReduce = 0; @@ -502,7 +539,11 @@ class ACE_ADDON(Medical_Treatment) { onOverDose = ""; opioidRelief = 1.1; }; +<<<<<<< Updated upstream class syringe_atropine_5ml_1 { +======= + class syringe_atropineIV_5ml_1 { +>>>>>>> Stashed changes painReduce = 0; hrIncreaseLow[] = {20, 40}; hrIncreaseNormal[] = {10, 25}; @@ -670,7 +711,11 @@ class ACE_ADDON(Medical_Treatment) { onOverDose = ""; opioidRelief = 1.2; }; +<<<<<<< Updated upstream class syringe_atropine_5ml_3 { +======= + class syringe_atropineIV_5ml_3 { +>>>>>>> Stashed changes painReduce = 0; hrIncreaseLow[] = {20, 40}; hrIncreaseNormal[] = {10, 25}; @@ -838,5 +883,81 @@ class ACE_ADDON(Medical_Treatment) { onOverDose = ""; opioidRelief = 1.2; }; + class syringe_morphineIV_10ml_1 { + painReduce = 0.8; + hrIncreaseLow[] = {-10, -20}; + hrIncreaseNormal[] = {-10, -30}; + hrIncreaseHigh[] = {-10, -35}; + timeInSystem = 900; + timeTillMaxEffect = 30; + maxDose = 2; + maxDoseDeviation = 2; + incompatibleMedication[] = {}; + viscosityChange = -15; + opioidRelief = 1.3; + }; + class syringe_morphineIV_10ml_3 { + painReduce = 0.8; + hrIncreaseLow[] = {-10, -20}; + hrIncreaseNormal[] = {-10, -30}; + hrIncreaseHigh[] = {-10, -35}; + timeInSystem = 900; + timeTillMaxEffect = 30; + maxDose = 2; + maxDoseDeviation = 2; + incompatibleMedication[] = {}; + viscosityChange = -15; + opioidRelief = 1.3; + }; + class syringe_morphineIV_5ml_1 { + painReduce = 0.8; + hrIncreaseLow[] = {-10, -20}; + hrIncreaseNormal[] = {-10, -30}; + hrIncreaseHigh[] = {-10, -35}; + timeInSystem = 900; + timeTillMaxEffect = 30; + maxDose = 2; + maxDoseDeviation = 2; + incompatibleMedication[] = {}; + viscosityChange = -15; + opioidRelief = 1.3; + }; + class syringe_morphineIV_5ml_3 { + painReduce = 0.8; + hrIncreaseLow[] = {-10, -20}; + hrIncreaseNormal[] = {-10, -30}; + hrIncreaseHigh[] = {-10, -35}; + timeInSystem = 900; + timeTillMaxEffect = 30; + maxDose = 2; + maxDoseDeviation = 2; + incompatibleMedication[] = {}; + viscosityChange = -15; + opioidRelief = 1.3; + }; + class syringe_adenosineIV_5ml_1 { + painReduce = 0; + hrIncreaseLow[] = {-7, -10}; + hrIncreaseNormal[] = {-15, -30}; + hrIncreaseHigh[] = {-15, -35}; + timeInSystem = 180; + timeTillMaxEffect = 15; + maxDose = 3; + maxDoseDeviation = 2; + incompatibleMedication[] = {}; + viscosityChange = 0; + }; + class syringe_adenosineIV_5ml_3 { + painReduce = 0; + hrIncreaseLow[] = {-7, -10}; + hrIncreaseNormal[] = {-15, -30}; + hrIncreaseHigh[] = {-15, -35}; + timeInSystem = 180; + timeTillMaxEffect = 15; + maxDose = 3; + maxDoseDeviation = 2; + incompatibleMedication[] = {}; + viscosityChange = 0; + }; }; }; diff --git a/addons/pharma/ACE_Medical_Treatment_Actions.hpp b/addons/pharma/ACE_Medical_Treatment_Actions.hpp index 5534e31ea..8daaf4a1a 100644 --- a/addons/pharma/ACE_Medical_Treatment_Actions.hpp +++ b/addons/pharma/ACE_Medical_Treatment_Actions.hpp @@ -251,6 +251,16 @@ class ACE_Medical_Treatment_Actions { callbackSuccess = QFUNC(medication); sounds[] = {}; }; + class AtropineIV: EACA { + displayName = CSTRING(Take_Atropine); + allowedSelections[] = {"Body", "LeftArm", "RightArm", "LeftLeg", "RightLeg"}; + allowSelfTreatment = 1; + medicRequired = QGVAR(medLvl_AtropineIV); + treatmentTime = QGVAR(treatmentTime_AtropineIV); + items[] = {"kat_atropineIV"}; + callbackSuccess = QFUNC(medication); + sounds[] = {}; + }; class Ketamine: EACA { displayName = CSTRING(Take_Ketamine); allowedSelections[] = {"Body", "LeftArm", "RightArm", "LeftLeg", "RightLeg"}; @@ -281,6 +291,26 @@ class ACE_Medical_Treatment_Actions { callbackSuccess = QFUNC(medication); sounds[] = {}; }; + class MorphineIV: EACA { + displayName = CSTRING(Take_MorphineIV); + allowedSelections[] = {"Body", "LeftArm", "RightArm", "LeftLeg", "RightLeg"}; + allowSelfTreatment = 1; + medicRequired = QGVAR(medLvl_MorphineIV); + treatmentTime = QGVAR(treatmentTime_MorphineIV); + items[] = {"kat_morphineIV"}; + callbackSuccess = QFUNC(medication); + sounds[] = {}; + }; + class AdenosineIV: EACA { + displayName = CSTRING(Take_AdenosineIV); + allowedSelections[] = {"Body", "LeftArm", "RightArm", "LeftLeg", "RightLeg"}; + allowSelfTreatment = 1; + medicRequired = QGVAR(medLvl_AdenosineIV); + treatmentTime = QGVAR(treatmentTime_AdenosineIV); + items[] = {"kat_adenosineIV"}; + callbackSuccess = QFUNC(medication); + sounds[] = {}; + }; class Reorientation: Carbonate { displayName = CSTRING(Take_Reorient); displayNameProgress = CSTRING(Reorienting); @@ -658,6 +688,24 @@ class ACE_Medical_Treatment_Actions { callbackSuccess = QFUNC(medication); sounds[] = {}; }; + class syringe_morphineIV_5ml_1: syringe_EACA_5ml_1 { + displayName = CSTRING(push_morphineIV_IV_1); + displayNameProgress = CSTRING(pushing_morphineIV_IV_1); + allowedSelections[] = {"Body", "LeftArm", "RightArm", "LeftLeg", "RightLeg"}; + allowSelfTreatment = 1; + medicRequired = QGVAR(medLvl_morphineIV); + treatmentTime = QGVAR(treatmentTime_morphineIV); + items[] = {"kat_syringe_morphineIV_5ml_1"}; + callbackSuccess = QFUNC(medication); + sounds[] = {}; + }; + class syringe_morphineIV_5ml_3: syringe_morphineIV_5ml_1 { + displayName = CSTRING(push_morphineIV_IV_3); + displayNameProgress = CSTRING(pushing_morphineIV_IV_3); + items[] = {"kat_syringe_morphineIV_5ml_3"}; + callbackSuccess = QFUNC(medication); + sounds[] = {}; + }; class syringe_lorazepam_5ml_1: syringe_EACA_5ml_1 { displayName = CSTRING(push_lorazepam_IV_1); displayNameProgress = CSTRING(pushing_lorazepam_IV_1); @@ -723,8 +771,13 @@ class ACE_Medical_Treatment_Actions { displayNameProgress = CSTRING(pushing_epinephrineIV_IV_1); allowedSelections[] = {"Body", "LeftArm", "RightArm", "LeftLeg", "RightLeg"}; allowSelfTreatment = 1; +<<<<<<< Updated upstream medicRequired = QGVAR(medLvl_epinephrineIV); treatmentTime = QGVAR(treatmentTime_epinephrineIV); +======= + medicRequired = QGVAR(medLvl_EpinephrineIV); + treatmentTime = QGVAR(treatmentTime_EpinephrineIV); +>>>>>>> Stashed changes items[] = {"kat_syringe_epinephrineIV_5ml_1"}; callbackSuccess = QFUNC(medication); sounds[] = {}; @@ -735,6 +788,42 @@ class ACE_Medical_Treatment_Actions { items[] = {"kat_syringe_epinephrineIV_5ml_3"}; callbackSuccess = QFUNC(medication); sounds[] = {}; + }; + class syringe_adenosineIV_5ml_1: syringe_EACA_5ml_1 { + displayName = CSTRING(push_adenosineIV_IV_1); + displayNameProgress = CSTRING(pushing_adenosineIV_IV_1); + allowedSelections[] = {"Body", "LeftArm", "RightArm", "LeftLeg", "RightLeg"}; + allowSelfTreatment = 1; + medicRequired = QGVAR(medLvl_adenosineIV); + treatmentTime = QGVAR(treatmentTime_adenosineIV); + items[] = {"kat_syringe_adenosineIV_5ml_1"}; + callbackSuccess = QFUNC(medication); + sounds[] = {}; + }; + class syringe_adenosineIV_5ml_3: syringe_adenosineIV_5ml_1 { + displayName = CSTRING(push_adenosineIV_IV_3); + displayNameProgress = CSTRING(pushing_adenosineIV_IV_3); + items[] = {"kat_syringe_adenosineIV_5ml_3"}; + callbackSuccess = QFUNC(medication); + sounds[] = {}; + }; + class syringe_atropineIV_5ml_1: syringe_EACA_5ml_1 { + displayName = CSTRING(push_atropineIV_IV_1); + displayNameProgress = CSTRING(pushing_atropineIV_IV_1); + allowedSelections[] = {"Body", "LeftArm", "RightArm", "LeftLeg", "RightLeg"}; + allowSelfTreatment = 1; + medicRequired = QGVAR(medLvl_AtropineIV); + treatmentTime = QGVAR(treatmentTime_AtropineIV); + items[] = {"kat_syringe_atropineIV_5ml_1"}; + callbackSuccess = QFUNC(medication); + sounds[] = {}; + }; + class syringe_atropineIV_5ml_3: syringe_atropineIV_5ml_1 { + displayName = CSTRING(push_atropineIV_IV_3); + displayNameProgress = CSTRING(pushing_atropineIV_IV_3); + items[] = {"kat_syringe_atropineIV_5ml_3"}; + callbackSuccess = QFUNC(medication); + sounds[] = {}; }; class syringe_lidocaine_10ml_1: syringe_TXA_10ml_1 { displayName = CSTRING(inject_lidocaine_IM_1); @@ -801,4 +890,22 @@ class ACE_Medical_Treatment_Actions { callbackSuccess = QFUNC(medication); sounds[] = {}; }; + class syringe_morphineIV_10ml_1: syringe_TXA_10ml_1 { + displayName = CSTRING(inject_morphine_IM_1); + displayNameProgress = CSTRING(injecting_morphine_IM_1); + allowedSelections[] = {"LeftArm", "RightArm", "LeftLeg", "RightLeg"}; + allowSelfTreatment = 1; + medicRequired = QGVAR(medLvl_morphineIM); + treatmentTime = QGVAR(treatmentTime_morphineIM); + items[] = {"kat_syringe_morphine_10ml_1"}; + callbackSuccess = QFUNC(medication); + sounds[] = {}; + }; + class syringe_morphineIV_10ml_3: syringe_morphineIV_10ml_1 { + displayName = CSTRING(inject_morphine_IM_3); + displayNameProgress = CSTRING(injecting_morphine_IM_3); + items[] = {"kat_syringe_morphine_10ml_3"}; + callbackSuccess = QFUNC(medication); + sounds[] = {}; + }; }; diff --git a/addons/pharma/CfgWeapons.hpp b/addons/pharma/CfgWeapons.hpp index 8d120e489..f55d3ca39 100644 --- a/addons/pharma/CfgWeapons.hpp +++ b/addons/pharma/CfgWeapons.hpp @@ -179,6 +179,17 @@ class CfgWeapons { mass = 0.5; }; }; + class kat_atropineIV: ACE_ItemCore { + scope = 2; + displayName = CSTRING(AtropineIV_Display); + picture = QPATHTOF(ui\icon_EpinephrineIV.paa); + model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; + descriptionShort = CSTRING(AtropineIV_DescShort); + ACE_isMedicalItem = 1; + class ItemInfo: CBA_MiscItem_ItemInfo { + mass = 0.5; + }; + }; class kat_ketamine: ACE_ItemCore { scope = 2; displayName = CSTRING(Ketamine_Box_Display); @@ -256,6 +267,28 @@ class CfgWeapons { mass = 0.2; }; }; + class kat_morphineIV: ACE_ItemCore { + scope = 2; + displayName = CSTRING(MorphineIV_displayName); + picture = QPATHTOF(ui\icon_EpinephrineIV.paa); + model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; + descriptionShort = CSTRING(MorphineIV_DescShort); + ACE_isMedicalItem = 1; + class ItemInfo: CBA_MiscItem_ItemInfo { + mass = 0.2; + }; + }; + class kat_adenosineIV: ACE_ItemCore { + scope = 2; + displayName = CSTRING(AdenosineIV_displayName); + picture = QPATHTOF(ui\icon_EpinephrineIV.paa); + model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; + descriptionShort = CSTRING(AdenosineIV_DescShort); + ACE_isMedicalItem = 1; + class ItemInfo: CBA_MiscItem_ItemInfo { + mass = 0.2; + }; + }; class kat_coag_sense: ACE_ItemCore { scope = 2; author = "Miss Heda"; @@ -289,6 +322,28 @@ class CfgWeapons { mass = 1; }; }; + class kat_syringe_morphineIV_10ml_1: ACE_ItemCore { + scope = 1; + displayName = CSTRING(Syringe_morphine_10_1_Display); + picture = QPATHTOF(ui\syringe_item.paa); + model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; + descriptionShort = CSTRING(Syringe_morphineIV_10_1_DescShort); + ACE_isMedicalItem = 1; + class ItemInfo: CBA_MiscItem_ItemInfo { + mass = 1; + }; + }; + class kat_syringe_morphineIV_10ml_3: ACE_ItemCore { + scope = 1; + displayName = CSTRING(Syringe_morphineIV_10_3_Display); + picture = QPATHTOF(ui\syringe_item.paa); + model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; + descriptionShort = CSTRING(Syringe_morphineIV_10_3_DescShort); + ACE_isMedicalItem = 1; + class ItemInfo: CBA_MiscItem_ItemInfo { + mass = 1; + }; + }; class kat_syringe_lidocaine_10ml_1: ACE_ItemCore { scope = 1; displayName = CSTRING(Syringe_lidocaine_10_1_Display); @@ -674,23 +729,85 @@ class CfgWeapons { mass = 1; }; }; +<<<<<<< Updated upstream class kat_syringe_atropine_5ml_1: ACE_ItemCore { scope = 1; displayName = CSTRING(Syringe_atropine_5_1_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; descriptionShort = CSTRING(Syringe_atropine_5_1_DescShort); +======= + class kat_syringe_morphineIV_5ml_1: ACE_ItemCore { + scope = 1; + displayName = CSTRING(Syringe_morphine_5_1_Display); + picture = QPATHTOF(ui\syringe_item.paa); + model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; + descriptionShort = CSTRING(Syringe_morphine_5_1_DescShort); +>>>>>>> Stashed changes ACE_isMedicalItem = 1; class ItemInfo: CBA_MiscItem_ItemInfo { mass = 1; }; }; +<<<<<<< Updated upstream class kat_syringe_atropine_5ml_3: ACE_ItemCore { scope = 1; displayName = CSTRING(Syringe_atropine_5_3_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; descriptionShort = CSTRING(Syringe_atropine_5_3_DescShort); +======= + class kat_syringe_morphineIV_5ml_3: ACE_ItemCore { + scope = 1; + displayName = CSTRING(Syringe_morphine_5_3_Display); + picture = QPATHTOF(ui\syringe_item.paa); + model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; + descriptionShort = CSTRING(Syringe_morphine_5_3_DescShort); + ACE_isMedicalItem = 1; + class ItemInfo: CBA_MiscItem_ItemInfo { + mass = 1; + }; + }; + class kat_syringe_atropineIV_5ml_1: ACE_ItemCore { + scope = 1; + displayName = CSTRING(Syringe_atropineIV_5_1_Display); + picture = QPATHTOF(ui\syringe_item.paa); + model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; + descriptionShort = CSTRING(Syringe_atropineIV_5_1_DescShort); + ACE_isMedicalItem = 1; + class ItemInfo: CBA_MiscItem_ItemInfo { + mass = 1; + }; + }; + class kat_syringe_atropineIV_5ml_3: ACE_ItemCore { + scope = 1; + displayName = CSTRING(Syringe_atropineIV_5_3_Display); + picture = QPATHTOF(ui\syringe_item.paa); + model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; + descriptionShort = CSTRING(Syringe_atropineIV_5_3_DescShort); + ACE_isMedicalItem = 1; + class ItemInfo: CBA_MiscItem_ItemInfo { + mass = 1; + }; + }; + class kat_syringe_adenosineIV_5ml_1: ACE_ItemCore { + scope = 1; + displayName = CSTRING(Syringe_adenosineIV_5_1_Display); + picture = QPATHTOF(ui\syringe_item.paa); + model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; + descriptionShort = CSTRING(Syringe_adenosineIV_5_1_DescShort); + ACE_isMedicalItem = 1; + class ItemInfo: CBA_MiscItem_ItemInfo { + mass = 1; + }; + }; + class kat_syringe_adenosineIV_5ml_3: ACE_ItemCore { + scope = 1; + displayName = CSTRING(Syringe_adenosineIV_5_3_Display); + picture = QPATHTOF(ui\syringe_item.paa); + model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; + descriptionShort = CSTRING(Syringe_adenosineIV_5_3_DescShort); +>>>>>>> Stashed changes ACE_isMedicalItem = 1; class ItemInfo: CBA_MiscItem_ItemInfo { mass = 1; diff --git a/addons/pharma/XEH_PREP.hpp b/addons/pharma/XEH_PREP.hpp index fb81ee475..05922a36c 100644 --- a/addons/pharma/XEH_PREP.hpp +++ b/addons/pharma/XEH_PREP.hpp @@ -51,4 +51,5 @@ PREP(prepareSyringe); PREP(checkIVType); PREP(treatmentAdvanced_KetamineSedationLocal); PREP(ivCondition); -PREP(AMSCheck); \ No newline at end of file +PREP(AMSCheck); +PREP(getAllMedicationsCount) \ No newline at end of file diff --git a/addons/pharma/XEH_preInit.sqf b/addons/pharma/XEH_preInit.sqf index 225e00f5a..bbdca64c2 100644 --- a/addons/pharma/XEH_preInit.sqf +++ b/addons/pharma/XEH_preInit.sqf @@ -81,6 +81,15 @@ PREP_RECOMPILE_END; true ] call CBA_Settings_fnc_init; +[ + QGVAR(prepTime_PrepSyringe), + "SLIDER", + [LLSTRING(prepTime_PrepSyringe), LLSTRING(prepTime_PrepSyringe_Desc)], + [CBA_SETTINGS_CAT, ELSTRING(GUI,SubCategory_Basic)], + [1, 15, 6, 0], + true +] call CBA_Settings_fnc_init; + //IV Settings Category [ QGVAR(medLvl_ApplyIV), @@ -569,6 +578,23 @@ PREP_RECOMPILE_END; true ] call CBA_Settings_fnc_init; +[ + QGVAR(medLvl_AtropineIV), + "LIST", + [LLSTRING(medLvl_AtropineIV)], + [CBA_SETTINGS_CAT, LSTRING(SubCategory_Atropine)], + [[0, 1, 2], [ACELSTRING(medical_treatment,Anyone), ACELSTRING(medical_treatment,Medics), ACELSTRING(medical_treatment,Doctors)], 0], + true +] call CBA_Settings_fnc_init; + +[ + QGVAR(treatmentTime_AtropineIV), + "SLIDER", + [LLSTRING(treatmentTime_AtropineIV)], + [CBA_SETTINGS_CAT, LSTRING(SubCategory_Atropine)], + [0.1, 10, 7, 1], + true +] call CBA_Settings_fnc_init; // EACA Settings Category [ @@ -1023,4 +1049,58 @@ PREP_RECOMPILE_END; true ] call CBA_Settings_fnc_init; +[ + QGVAR(medLvl_morphineIM), + "LIST", + [LLSTRING(medLvl_MorphineIM)], + [CBA_SETTINGS_CAT, LSTRING(SubCategory_Morphine)], + [[0, 1, 2], [ACELSTRING(medical_treatment,Anyone), ACELSTRING(medical_treatment,Medics), ACELSTRING(medical_treatment,Doctors)], 0], + true +] call CBA_Settings_fnc_init; + +[ + QGVAR(treatmentTime_morphineIM), + "SLIDER", + [LLSTRING(treatmentTime_MorphineIM)], + [CBA_SETTINGS_CAT, LSTRING(SubCategory_Morphine)], + [0.1, 10, 7, 1], + true +] call CBA_Settings_fnc_init; + +[ + QGVAR(medLvl_morphineIV), + "LIST", + [LLSTRING(medLvl_MorphineIV)], + [CBA_SETTINGS_CAT, LSTRING(SubCategory_Morphine)], + [[0, 1, 2], [ACELSTRING(medical_treatment,Anyone), ACELSTRING(medical_treatment,Medics), ACELSTRING(medical_treatment,Doctors)], 0], + true +] call CBA_Settings_fnc_init; + +[ + QGVAR(treatmentTime_morphineIV), + "SLIDER", + [LLSTRING(treatmentTime_MorphineIV)], + [CBA_SETTINGS_CAT, LSTRING(SubCategory_Morphine)], + [0.1, 10, 7, 1], + true +] call CBA_Settings_fnc_init; + +[ + QGVAR(medLvl_adenosineIV), + "LIST", + [LLSTRING(medLvl_adenosineIV)], + [CBA_SETTINGS_CAT, LSTRING(SubCategory_AdenosineIV)], + [[0, 1, 2], [ACELSTRING(medical_treatment,Anyone), ACELSTRING(medical_treatment,Medics), ACELSTRING(medical_treatment,Doctors)], 0], + true +] call CBA_Settings_fnc_init; + +[ + QGVAR(treatmentTime_adenosineIV), + "SLIDER", + [LLSTRING(treatmentTime_adenosineIV)], + [CBA_SETTINGS_CAT, LSTRING(SubCategory_AdenosineIV)], + [0.1, 10, 7, 1], + true +] call CBA_Settings_fnc_init; + ADDON = true; diff --git a/addons/pharma/functions/fnc_medicationLocal.sqf b/addons/pharma/functions/fnc_medicationLocal.sqf index 477a041dc..e58b0b0cd 100644 --- a/addons/pharma/functions/fnc_medicationLocal.sqf +++ b/addons/pharma/functions/fnc_medicationLocal.sqf @@ -122,7 +122,7 @@ if ([QGVAR(AMS_Enabled)] call CBA_settings_fnc_get) then { [format ["kat_pharma_%1Local", toLower _medicationName], [_patient, _bodyPart], _patient] call CBA_fnc_targetEvent; }; - if (_medicationName in ["ketamine","atropine"]) then { + if (_medicationName in ["ketamine","atropine","adenosine"]) then { [format ["kat_pharma_%1Local", toLower _medicationName], [_patient, _bodyPart, _classname], _patient] call CBA_fnc_targetEvent; }; diff --git a/addons/pharma/functions/fnc_prepareSyringe.sqf b/addons/pharma/functions/fnc_prepareSyringe.sqf index 2bfa3e442..4022c2d11 100644 --- a/addons/pharma/functions/fnc_prepareSyringe.sqf +++ b/addons/pharma/functions/fnc_prepareSyringe.sqf @@ -25,7 +25,8 @@ params ["_player", "_medicationType", "_syringeType", "_doseType"]; private _syringeClassName = format ["kat_syringe_%1_%2_%3", _medicationType, _syringeType, _doseType]; private _hasSyringe = isClass (configFile >> "CfgWeapons" >> _syringeClassName); if (!_hasSyringe) exitWith { - hint "This syringe combination does not exist."; + hint format ["This syringe combination does not exist. kat_syringe %1 %2 %3", _medicationType, _syringeType, _doseType]; + [{hint ""}, [], 5] call CBA_fnc_waitAndExecute; }; private _baseSyringe = format ["kat_%1_syringe", _syringeType]; _player removeItem _baseSyringe; @@ -34,4 +35,4 @@ _player removeItem _katClassName; _player addItem _syringeClassName; private _syringeDisplayName = getText (configFile >> "CfgWeapons" >> _syringeClassName >> "displayName"); hint format ["Prepared syringe: %1", _syringeDisplayName]; -[{hint ""}, [], 5] call CBA_fnc_waitAndExecute; \ No newline at end of file +[{hint ""}, [], GVAR(prepTime_PrepSyringe)] call CBA_fnc_waitAndExecute; \ No newline at end of file diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_AdenosineLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_AdenosineLocal.sqf new file mode 100644 index 000000000..b347255ea --- /dev/null +++ b/addons/pharma/functions/fnc_treatmentAdvanced_AdenosineLocal.sqf @@ -0,0 +1,23 @@ +#include "..\script_component.hpp" +/* + * Author: Mazinski.H, Edited by MiszczuZPolski and Cplhardcore + * Applies Bradycardia randomly + * + * Arguments: + * 0: Patient + * + * Return Value: + * None + * + * Example: + * [cursorTarget, "ACE_adenosine"] call kat_pharma_fnc_treatmentAdvanced_AmiodaroneLocal; + * + * Public: No + */ +if (_classname isEqualTo "ACE_adenosine") exitWith {}; +private _cardiacRhythm = _patient getVariable [QEGVAR(circulation,cardiacArrestType), 0]; +_patient setVariable [QEGVAR(circulation,cardiacArrestType), 1]; +[{ + params ["_patient", "_cardiacRhythm"]; + _patient setVariable [QEGVAR(circulation,cardiacArrestType), _cardiacRhythm]; +}, [_patient, _cardiacRhythm], random(8) + 8] call CBA_fnc_waitAndExecute; \ No newline at end of file diff --git a/addons/pharma/stringtable.xml b/addons/pharma/stringtable.xml index 2d3e23ff8..47bb5d5f7 100644 --- a/addons/pharma/stringtable.xml +++ b/addons/pharma/stringtable.xml @@ -455,7 +455,7 @@ Injecteer Lidocaïne - Used to treat chemical exposure + Used to treat chemical exposure and bradycardia Zur Behandlung von Bradykardie Używany do zwalczania bradykardii Utiliser pour traiter une bradycardie @@ -490,6 +490,24 @@ Atropiini Atropine autoinjector + + IV Atropine + Atropin + Atropina + Atropine + 阿托品 + 阿托品 + Atropina + Atropina + 아트로핀 + Atropin + Atropin + アトロピン + Атропин + Atropina + Atropiini + Atropine + Inject Atropine Atropin verabreichen @@ -2260,6 +2278,12 @@ Время обратки Атропином Behandeltijd van Atropine + + Medical level required for IV Atropine + + + Treatment time for IV Atropine + Medical level required for EACA Poziom wyszkolenia medycznego dla EACA @@ -4218,16 +4242,16 @@ 5ml Syringe loaded with 80mg of Lidocaine - + 5ml Syringe/0.6mg Atropine - + 5ml Syringe loaded with 0.6mg of Atropine - + 5ml Syringe/2mg Atropine - + 5ml Syringe loaded with 2mg of Atropine @@ -4338,6 +4362,30 @@ 5ml Syringe loaded with 15 grams of EACA + + 5ml Syringe/10mg Morphine + + + 5ml Syringe loaded with 10mg of Morphine + + + 5ml Syringe/20mg Morphine + + + 5ml Syringe loaded with 20mg of Morphine + + + 5ml Syringe/6mg Adenosine + + + 5ml Syringe loaded with 6 mg of Adenosine + + + 5ml Syringe/12mg Adenosine + + + 5ml Syringe loaded with 12mg of Adenosine + Push 1g TXA IV @@ -4362,6 +4410,12 @@ Pushing 15g EACA IV + + Pushing 10mg Morphine IV + + + Pushing 20mg Morphine IV + Push 150mg Norepinephrine IV @@ -4392,10 +4446,10 @@ Push 80mg Lidocaine IV - + Push 0.6mg Atropine IV - + Push 2mg Atropine IV @@ -4440,6 +4494,18 @@ Push 1mg Epinephrine IV + + Push 10mg Morphine IV + + + Push 20mg Morphine IV + + + Push 6mg Adenosine IV + + + Push 12mg Adenosine IV + Pushing 150mg Norepinephrine IV @@ -4470,10 +4536,10 @@ Pushing 80mg Lidocaine IV - + Pushing 0.6mg Atropine IV - + Pushing 2mg Atropine IV @@ -4518,6 +4584,12 @@ Pushing 1mg Epinephrine IV + + Pushing 6mg Adenosine IV + + + Pushing 12mg Adenosine IV + Inject 1g TXA IM @@ -4545,12 +4617,24 @@ Inject 20mg Nalbuphine IM + + Inject 10mg Morphine IM + + + Inject 20mg Morphine IM + Injecting 1g TXA IM Injecting 2g TXA IM + + Injecting 10mg Morphine IM + + + Injecting 20mg Morphine IM + Injecting 40mg Lidocaine IM @@ -4572,6 +4656,18 @@ Injecting 20mg Nalbuphine IM + + 10ml Syringe/10mg Morphine + + + 10ml Syringe loaded with 10mg of Morphine + + + 10ml Syringe/20mg Morphine + + + 10ml Syringe loaded with 20mg of Morphine + Establish 14g IV @@ -4584,11 +4680,61 @@ Medical level required to prep syringes + + Syringe Prep Time + + + Time required to prep syringes + Enable Advanced Medication System Enables Advanced Medication System and disables Basic System + + KAT Morphine Settings + + + IV Morphine + + + IV Morphine + + + Medical level required for IV Morphine + + + Treatment time for IV Morphine + + + Medical level required for IM Morphine + + + Treatment time for IM Morphine + + + Push IV Morphine + + + IV Adenosine + + + Medical level required for IV Adenosine + + + Treatment time for IV Adenosine + + + IV Adenosine + + + IV Adenosine + + + Push IV Adenosine + + + diff --git a/addons/pharma/weee b/addons/pharma/weee new file mode 100644 index 000000000..d90fa666d --- /dev/null +++ b/addons/pharma/weee @@ -0,0 +1,6 @@ + + Push 6mg Adenosine IV + + + Push 12mg Adenosine IV + \ No newline at end of file From dc0069bc23dcb9552382e2e75d57a602946f72f8 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Mon, 7 Oct 2024 23:57:08 -0700 Subject: [PATCH 094/149] Fixes from the upstream --- addons/pharma/ACE_Medical_Treatment.hpp | 8 -------- .../pharma/ACE_Medical_Treatment_Actions.hpp | 5 ----- addons/pharma/CfgWeapons.hpp | 18 ------------------ 3 files changed, 31 deletions(-) diff --git a/addons/pharma/ACE_Medical_Treatment.hpp b/addons/pharma/ACE_Medical_Treatment.hpp index 5f64455ee..87b1acf7f 100644 --- a/addons/pharma/ACE_Medical_Treatment.hpp +++ b/addons/pharma/ACE_Medical_Treatment.hpp @@ -544,11 +544,7 @@ class ACE_ADDON(Medical_Treatment) { onOverDose = ""; opioidRelief = 1.1; }; -<<<<<<< Updated upstream - class syringe_atropine_5ml_1 { -======= class syringe_atropineIV_5ml_1 { ->>>>>>> Stashed changes painReduce = 0; hrIncreaseLow[] = {20, 40}; hrIncreaseNormal[] = {10, 25}; @@ -716,11 +712,7 @@ class ACE_ADDON(Medical_Treatment) { onOverDose = ""; opioidRelief = 1.2; }; -<<<<<<< Updated upstream - class syringe_atropine_5ml_3 { -======= class syringe_atropineIV_5ml_3 { ->>>>>>> Stashed changes painReduce = 0; hrIncreaseLow[] = {20, 40}; hrIncreaseNormal[] = {10, 25}; diff --git a/addons/pharma/ACE_Medical_Treatment_Actions.hpp b/addons/pharma/ACE_Medical_Treatment_Actions.hpp index 8daaf4a1a..8b1fcbde5 100644 --- a/addons/pharma/ACE_Medical_Treatment_Actions.hpp +++ b/addons/pharma/ACE_Medical_Treatment_Actions.hpp @@ -771,13 +771,8 @@ class ACE_Medical_Treatment_Actions { displayNameProgress = CSTRING(pushing_epinephrineIV_IV_1); allowedSelections[] = {"Body", "LeftArm", "RightArm", "LeftLeg", "RightLeg"}; allowSelfTreatment = 1; -<<<<<<< Updated upstream - medicRequired = QGVAR(medLvl_epinephrineIV); - treatmentTime = QGVAR(treatmentTime_epinephrineIV); -======= medicRequired = QGVAR(medLvl_EpinephrineIV); treatmentTime = QGVAR(treatmentTime_EpinephrineIV); ->>>>>>> Stashed changes items[] = {"kat_syringe_epinephrineIV_5ml_1"}; callbackSuccess = QFUNC(medication); sounds[] = {}; diff --git a/addons/pharma/CfgWeapons.hpp b/addons/pharma/CfgWeapons.hpp index f55d3ca39..b6557217b 100644 --- a/addons/pharma/CfgWeapons.hpp +++ b/addons/pharma/CfgWeapons.hpp @@ -729,34 +729,17 @@ class CfgWeapons { mass = 1; }; }; -<<<<<<< Updated upstream - class kat_syringe_atropine_5ml_1: ACE_ItemCore { - scope = 1; - displayName = CSTRING(Syringe_atropine_5_1_Display); - picture = QPATHTOF(ui\syringe_item.paa); - model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; - descriptionShort = CSTRING(Syringe_atropine_5_1_DescShort); -======= class kat_syringe_morphineIV_5ml_1: ACE_ItemCore { scope = 1; displayName = CSTRING(Syringe_morphine_5_1_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; descriptionShort = CSTRING(Syringe_morphine_5_1_DescShort); ->>>>>>> Stashed changes ACE_isMedicalItem = 1; class ItemInfo: CBA_MiscItem_ItemInfo { mass = 1; }; }; -<<<<<<< Updated upstream - class kat_syringe_atropine_5ml_3: ACE_ItemCore { - scope = 1; - displayName = CSTRING(Syringe_atropine_5_3_Display); - picture = QPATHTOF(ui\syringe_item.paa); - model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; - descriptionShort = CSTRING(Syringe_atropine_5_3_DescShort); -======= class kat_syringe_morphineIV_5ml_3: ACE_ItemCore { scope = 1; displayName = CSTRING(Syringe_morphine_5_3_Display); @@ -807,7 +790,6 @@ class CfgWeapons { picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; descriptionShort = CSTRING(Syringe_adenosineIV_5_3_DescShort); ->>>>>>> Stashed changes ACE_isMedicalItem = 1; class ItemInfo: CBA_MiscItem_ItemInfo { mass = 1; From 21a32e17296e606fe3ac02a43c758df182c308b4 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Mon, 7 Oct 2024 23:58:59 -0700 Subject: [PATCH 095/149] i hate stringtables --- addons/pharma/stringtable.xml | 2 -- 1 file changed, 2 deletions(-) diff --git a/addons/pharma/stringtable.xml b/addons/pharma/stringtable.xml index aeca45827..15b5be9b5 100644 --- a/addons/pharma/stringtable.xml +++ b/addons/pharma/stringtable.xml @@ -4554,7 +4554,5 @@ Push IV Adenosine - - From bacc9edcb742c35ba21637c9b7d79609ede61e00 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Fri, 11 Oct 2024 01:25:53 -0700 Subject: [PATCH 096/149] GUI Fixes --- addons/gui/gui.hpp | 16 +++++++--------- addons/gui/stringtable.xml | 3 +++ 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/addons/gui/gui.hpp b/addons/gui/gui.hpp index 4996227a2..ce5b0dc26 100644 --- a/addons/gui/gui.hpp +++ b/addons/gui/gui.hpp @@ -664,10 +664,10 @@ class ACE_Medical_Menu { }; class SyringeOpenButton: RscButton { idc = IDC_SYRINGE_OPEN; - text = CSTRING(CloseMenu); - x = QUOTE(POS_X(39.6)); - y = QUOTE(POS_Y(4.9)); - w = QUOTE(POS_W(2)); + text = CSTRING(OpenSyringeMenu); + x = QUOTE(POS_X(23.7)); + y = QUOTE(POS_Y(0)); + w = QUOTE(POS_W(4.4)); h = QUOTE(POS_H(1)); colorBackgroundDisabled[] = GUI_BCG_COLOR; colorBackground[] = GUI_BCG_COLOR; @@ -782,18 +782,18 @@ class ACE_Medical_Menu { { class LowDose { - text = "Low"; + text = CSTRING(DoseLow); default = 1; value = 1; }; //class MediumDose //{ - // text = "Medium"; + // text = CSTRING(DoseMedium); // value = 2; //}; class HighDose { - text = "High"; + text = CSTRING(DoseHigh); value = 3; }; }; @@ -820,6 +820,4 @@ class ACE_Medical_Menu { }; }; }; - }; - }; diff --git a/addons/gui/stringtable.xml b/addons/gui/stringtable.xml index a7d88166d..bb47362d8 100644 --- a/addons/gui/stringtable.xml +++ b/addons/gui/stringtable.xml @@ -254,5 +254,8 @@ Close + + Syringe Prep + From 28e14ca6e1866dc42af4c5101ce4f2764e493567 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Fri, 11 Oct 2024 22:25:16 -0700 Subject: [PATCH 097/149] Initial --- addons/pharma/ACE_Medical_Treatment.hpp | 653 ++++++++---------- addons/pharma/functions/fnc_applyIV.sqf | 58 +- .../fnc_treatmentAdvanced_NaloxoneLocal.sqf | 14 +- .../functions/fnc_closedReductionLocal.sqf | 58 +- 4 files changed, 376 insertions(+), 407 deletions(-) diff --git a/addons/pharma/ACE_Medical_Treatment.hpp b/addons/pharma/ACE_Medical_Treatment.hpp index 87b1acf7f..fe7ca165a 100644 --- a/addons/pharma/ACE_Medical_Treatment.hpp +++ b/addons/pharma/ACE_Medical_Treatment.hpp @@ -382,12 +382,9 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseLow[] = {0, 0}; hrIncreaseNormal[] = {0, 0}; hrIncreaseHigh[] = {0, 0}; - timeInSystem = 180; + timeInSystem = 120; timeTillMaxEffect = 5; - maxDose = 2; - incompatibleMedication[] = {}; viscosityChange = 0; - onOverDose = ""; }; class syringe_txa_5ml_3 { painReduce = 0; @@ -396,10 +393,7 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseHigh[] = {0, 0}; timeInSystem = 240; timeTillMaxEffect = 5; - maxDose = 13; - incompatibleMedication[] = {}; viscosityChange = 0; - onOverDose = ""; }; class syringe_txa_10ml_1 { painReduce = 0; @@ -407,60 +401,53 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseNormal[] = {0, 0}; hrIncreaseHigh[] = {0, 0}; timeInSystem = 120; - timeTillMaxEffect = 15; - maxDose = 2; - incompatibleMedication[] = {}; + timeTillMaxEffect = 20; viscosityChange = 0; - onOverDose = ""; }; class syringe_txa_10ml_3 { painReduce = 0; hrIncreaseLow[] = {0, 0}; hrIncreaseNormal[] = {0, 0}; hrIncreaseHigh[] = {0, 0}; - timeInSystem = 120; - timeTillMaxEffect = 15; - maxDose = 2; - incompatibleMedication[] = {}; + timeInSystem = 180; + timeTillMaxEffect = 20; viscosityChange = 0; - onOverDose = ""; }; class syringe_eaca_5ml_1 { painReduce = 0; hrIncreaseLow[] = {0, 0}; hrIncreaseNormal[] = {0, 0}; hrIncreaseHigh[] = {0, 0}; - timeInSystem = 200; - timeTillMaxEffect = 15; - maxDose = 3; - incompatibleMedication[] = {}; + timeInSystem = 100; + timeTillMaxEffect = 35; viscosityChange = 0; - onOverDose = ""; }; class syringe_eaca_5ml_3 { painReduce = 0; hrIncreaseLow[] = {0, 0}; hrIncreaseNormal[] = {0, 0}; hrIncreaseHigh[] = {0, 0}; - timeInSystem = 600; - timeTillMaxEffect = 15; - maxDose = 3; - incompatibleMedication[] = {}; + timeInSystem = 300; + timeTillMaxEffect = 35; viscosityChange = 0; - onOverDose = ""; }; class syringe_epinephrineIV_5ml_1 { painReduce = 0; - hrIncreaseLow[] = {15, 30}; + hrIncreaseLow[] = {10, 30}; hrIncreaseNormal[] = {10, 40}; hrIncreaseHigh[] = {15, 40}; timeInSystem = 120; timeTillMaxEffect = 10; - maxDose = 2; - maxDoseDeviation = 2; - incompatibleMedication[] = {}; - alphaFactor = -0.3; - onOverDose = ""; + alphaFactor = -0.2; + }; + class syringe_epinephrineIV_5ml_3 { + painReduce = 0; + hrIncreaseLow[] = {25, 40}; + hrIncreaseNormal[] = {20, 50}; + hrIncreaseHigh[] = {20, 40}; + timeInSystem = 180; + timeTillMaxEffect = 10; + alphaFactor = -0.4; }; class syringe_norepinephrine_5ml_1 { painReduce = 0; @@ -469,25 +456,38 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseHigh[] = {5, 10}; timeInSystem = 360; timeTillMaxEffect = 15; - maxDose = 6; - incompatibleMedication[] = {}; + viscosityChange = 15; + alphaFactor = -0.2; + }; + class syringe_norepinephrine_5ml_3 { + painReduce = 0; + hrIncreaseLow[] = {0, 10}; + hrIncreaseNormal[] = {10, 15}; + hrIncreaseHigh[] = {10, 15}; + timeInSystem = 360; + timeTillMaxEffect = 15; viscosityChange = 25; - alphaFactor = -0.3; - onOverDose = ""; + alphaFactor = -0.4; }; class syringe_phenylephrine_5ml_1 { painReduce = 0; hrIncreaseLow[] = {-5, -10}; hrIncreaseNormal[] = {-10, -15}; hrIncreaseHigh[] = {-10, -15}; + timeInSystem = 180; + timeTillMaxEffect = 15; + viscosityChange = 35; + alphaFactor = -0.4; + }; + class syringe_phenylephrine_5ml_3 { + painReduce = 0; + hrIncreaseLow[] = {-10, -15}; + hrIncreaseNormal[] = {-15, -25}; + hrIncreaseHigh[] = {-15, -20}; timeInSystem = 300; timeTillMaxEffect = 15; - maxDose = 3; - maxDoseDeviation = 3; - incompatibleMedication[] = {}; viscosityChange = 50; - alphaFactor = -0.5; - onOverDose = ""; + alphaFactor = -0.7; }; class syringe_nitroglycerin_5ml_1 { painReduce = 0; @@ -496,65 +496,94 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseHigh[] = {10, 15}; timeInSystem = 360; timeTillMaxEffect = 15; - maxDose = 6; - maxDoseDeviation = 4; - incompatibleMedication[] = {}; viscosityChange = -25; alphaFactor = 0.3; - onOverDose = ""; + }; + class syringe_nitroglycerin_5ml_3 { + painReduce = 0; + hrIncreaseLow[] = {5, 15}; + hrIncreaseNormal[] = {10, 25}; + hrIncreaseHigh[] = {10, 20}; + timeInSystem = 360; + timeTillMaxEffect = 15; + viscosityChange = -35; + alphaFactor = 0.5; }; class syringe_fentanyl_5ml_1 { - painReduce = 0.8; - hrIncreaseLow[] = {-10, -5}; - hrIncreaseNormal[] = {-15, -10}; - hrIncreaseHigh[] = {-20, -10}; + painReduce = 0.6; + hrIncreaseLow[] = {-5, -10}; + hrIncreaseNormal[] = {-10, -15}; + hrIncreaseHigh[] = {-10, -20}; timeInSystem = 900; timeTillMaxEffect = 20; - maxDose = 1; - maxDoseDeviation = 1; - incompatibleMedication[] = {}; viscosityChange = -10; - onOverDose = ""; opioidRelief = 1.2; }; + class syringe_fentanyl_5ml_3 { + painReduce = 1; + hrIncreaseLow[] = {-5, -15}; + hrIncreaseNormal[] = {-15, -25}; + hrIncreaseHigh[] = {-10, -20}; + timeInSystem = 900; + timeTillMaxEffect = 20; + viscosityChange = -10; + opioidRelief = 1.5; + }; class syringe_ketamine_5ml_1 { - painReduce = 0.7; + painReduce = 0.5; hrIncreaseLow[] = {5, 10}; hrIncreaseNormal[] = {10, 15}; hrIncreaseHigh[] = {10, 15}; + timeInSystem = 600; + timeTillMaxEffect = 15; + viscosityChange = 10; + }; + class syringe_ketamine_5ml_3 { + painReduce = 0.8; + hrIncreaseLow[] = {5, 15}; + hrIncreaseNormal[] = {10, 20}; + hrIncreaseHigh[] = {10, 15}; timeInSystem = 900; timeTillMaxEffect = 15; - maxDose = 2; - maxDoseDeviation = 1; - incompatibleMedication[] = {}; viscosityChange = 10; - onOverDose = ""; }; class syringe_nalbuphine_5ml_1 { painReduce = 0.5; hrIncreaseLow[] = {-5, 0}; hrIncreaseNormal[] = {-10, -5}; hrIncreaseHigh[] = {-15, -5}; - timeInSystem = 900; + timeInSystem = 600; timeTillMaxEffect = 30; - maxDose = 2; - maxDoseDeviation = 2; - incompatibleMedication[] = {}; viscosityChange = -5; - onOverDose = ""; opioidRelief = 1.1; }; + class syringe_nalbuphine_5ml_3 { + painReduce = 0.7; + hrIncreaseLow[] = {0, -10}; + hrIncreaseNormal[] = {-5, -15}; + hrIncreaseHigh[] = {-5, -15}; + timeInSystem = 900; + timeTillMaxEffect = 30; + viscosityChange = -5; + opioidRelief = 1.2; + }; class syringe_atropineIV_5ml_1 { + painReduce = 0; + hrIncreaseLow[] = {10, 20}; + hrIncreaseNormal[] = {5, 15}; + hrIncreaseHigh[] = {5, 10}; + timeInSystem = 120; + timeTillMaxEffect = 30; + viscosityChange = 0; + }; + class syringe_atropineIV_5ml_3 { painReduce = 0; hrIncreaseLow[] = {20, 40}; hrIncreaseNormal[] = {10, 25}; hrIncreaseHigh[] = {5, 15}; timeInSystem = 120; timeTillMaxEffect = 30; - maxDose = 2; - incompatibleMedication[]= {}; viscosityChange = 0; - onOverDose = ""; }; class syringe_amiodarone_5ml_1 { painReduce = 0; @@ -563,35 +592,50 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseHigh[] = {0, 0}; timeInSystem = 120; timeTillMaxEffect = 30; - maxDose = 4; - incompatibleMedication[]= {}; viscosityChange = 0; - onOverDose = ""; + }; + class syringe_amiodarone_5ml_3 { + painReduce = 0; + hrIncreaseLow[] = {0, 0, 0}; + hrIncreaseNormal[] = {0, 0, 0}; + hrIncreaseHigh[] = {0, 0, 0}; + timeInSystem = 120; + timeTillMaxEffect = 30; + viscosityChange = 0; }; class syringe_lidocaine_5ml_1 { - painReduce = 0.2; + painReduce = 0; + hrIncreaseLow[] = {0, 0}; + hrIncreaseNormal[] = {0, 0}; + hrIncreaseHigh[] = {0, 0}; + timeInSystem = 120; + timeTillMaxEffect = 30; + }; + class syringe_lidocaine_5ml_3 { + painReduce = 0; hrIncreaseLow[] = {0, 0}; hrIncreaseNormal[] = {0, 0}; hrIncreaseHigh[] = {0, 0}; timeInSystem = 120; timeTillMaxEffect = 30; - maxDose = 2; - maxDoseDeviation = 4; - incompatibleMedication[]= {}; - onOverDose = ""; - maxRelief = 0.6; }; class syringe_etomidate_5ml_1 { + painReduce = 0.2; + hrIncreaseLow[] = {0, -5}; + hrIncreaseNormal[] = {-5, -10}; + hrIncreaseHigh[] = {-10, -20}; + timeInSystem = 60; + timeTillMaxEffect = 5; + viscosityChange = 0; + }; + class syringe_etomidate_5ml_3 { painReduce = 0.4; hrIncreaseLow[] = {-10, -5}; hrIncreaseNormal[] = {-15, -20}; hrIncreaseHigh[] = {-20, -30}; - timeInSystem = 45; + timeInSystem = 30; timeTillMaxEffect = 5; - maxDose = 10; - incompatibleMedication[] = {}; viscosityChange = 0; - onOverDose = ""; }; class syringe_flumazenil_5ml_1 { painReduce = 0; @@ -600,10 +644,16 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseHigh[] = {0, 0}; timeInSystem = 60; timeTillMaxEffect = 5; - maxDose = 3; - incompatibleMedication[] = {}; viscosityChange = 0; - onOverDose = ""; + }; + class syringe_flumazenil_5ml_3 { + painReduce = 0; + hrIncreaseLow[] = {0, 0}; + hrIncreaseNormal[] = {0, 0}; + hrIncreaseHigh[] = {0, 0}; + timeInSystem = 60; + timeTillMaxEffect = 5; + viscosityChange = 0; }; class syringe_lorazepam_5ml_1 { painReduce = 0; @@ -612,349 +662,242 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseHigh[] = {0, 0}; timeInSystem = 60; timeTillMaxEffect = 5; - maxDose = 3; - incompatibleMedication[] = {}; - viscosityChange = -15; - onOverDose = ""; + viscosityChange = -10; }; - class syringe_epinephrineIV_5ml_3 { + class syringe_lorazepam_5ml_3 { painReduce = 0; - hrIncreaseLow[] = {25, 40}; - hrIncreaseNormal[] = {20, 50}; - hrIncreaseHigh[] = {20, 40}; - timeInSystem = 180; - timeTillMaxEffect = 10; - maxDose = 2; - maxDoseDeviation = 2; - incompatibleMedication[] = {}; - alphaFactor = -0.4; - onOverDose = ""; + hrIncreaseLow[] = {0, 0}; + hrIncreaseNormal[] = {0, 0}; + hrIncreaseHigh[] = {0, 0}; + timeInSystem = 60; + timeTillMaxEffect = 5; + viscosityChange = -15; }; - class syringe_norepinephrine_5ml_3 { + class syringe_morphineIV_5ml_1 { + painReduce = 0.6; + hrIncreaseLow[] = {-10, -15}; + hrIncreaseNormal[] = {-10, -30}; + hrIncreaseHigh[] = {-10, -35}; + timeInSystem = 600; + timeTillMaxEffect = 30; + viscosityChange = -15; + opioidRelief = 1.2; + }; + class syringe_morphineIV_5ml_3 { + painReduce = 0.8; + hrIncreaseLow[] = {-10, -25}; + hrIncreaseNormal[] = {-10, -35}; + hrIncreaseHigh[] = {-10, -45}; + timeInSystem = 600; + timeTillMaxEffect = 30; + viscosityChange = -20; + opioidRelief = 1.3; + }; + class syringe_adenosineIV_5ml_1 { painReduce = 0; - hrIncreaseLow[] = {0, 10}; - hrIncreaseNormal[] = {10, 15}; - hrIncreaseHigh[] = {10, 15}; - timeInSystem = 360; + hrIncreaseLow[] = {-7, -10}; + hrIncreaseNormal[] = {-10, -25}; + hrIncreaseHigh[] = {-15, -35}; + timeInSystem = 180; timeTillMaxEffect = 15; - maxDose = 6; - incompatibleMedication[] = {}; - viscosityChange = 25; - alphaFactor = -0.4; - onOverDose = ""; + viscosityChange = 0; }; - class syringe_phenylephrine_5ml_3 { + class syringe_adenosineIV_5ml_3 { painReduce = 0; - hrIncreaseLow[] = {-15, -5}; - hrIncreaseNormal[] = {-15, -25}; - hrIncreaseHigh[] = {-15, -20}; - timeInSystem = 300; + hrIncreaseLow[] = {-7, -10}; + hrIncreaseNormal[] = {-15, -35}; + hrIncreaseHigh[] = {-15, -40}; + timeInSystem = 180; timeTillMaxEffect = 15; - maxDose = 3; - maxDoseDeviation = 3; - incompatibleMedication[] = {}; - viscosityChange = 50; - alphaFactor = -0.7; - onOverDose = ""; - }; - class syringe_nitroglycerin_5ml_3 { - painReduce = 0; - hrIncreaseLow[] = {5, 15}; - hrIncreaseNormal[] = {10, 20}; - hrIncreaseHigh[] = {10, 15}; - timeInSystem = 360; - timeTillMaxEffect = 15; - maxDose = 6; - maxDoseDeviation = 4; - incompatibleMedication[] = {}; - viscosityChange = -30; - alphaFactor = 0.5; - onOverDose = ""; + viscosityChange = 0; }; - class syringe_fentanyl_5ml_3 { - painReduce = 1; - hrIncreaseLow[] = {-15, -10}; - hrIncreaseNormal[] = {-25, -15}; - hrIncreaseHigh[] = {-20, -10}; - timeInSystem = 900; - timeTillMaxEffect = 20; - maxDose = 1; - maxDoseDeviation = 1; - incompatibleMedication[] = {}; + class syringe_fentanyl_10ml_1 { + painReduce = 0.6; + hrIncreaseLow[] = {-5, -10}; + hrIncreaseNormal[] = {-10, -15}; + hrIncreaseHigh[] = {-10, -20}; + timeInSystem = 300; + timeTillMaxEffect = 60; viscosityChange = -10; - onOverDose = ""; - opioidRelief = 1.5; + opioidRelief = 1.1; }; - class syringe_ketamine_5ml_3 { + class syringe_fentanyl_10ml_3 { painReduce = 0.8; - hrIncreaseLow[] = {5, 15}; - hrIncreaseNormal[] = {10, 20}; - hrIncreaseHigh[] = {10, 15}; - timeInSystem = 900; - timeTillMaxEffect = 15; - maxDose = 2; - maxDoseDeviation = 1; - incompatibleMedication[] = {}; - viscosityChange = 10; - onOverDose = ""; + hrIncreaseLow[] = {-5, -15}; + hrIncreaseNormal[] = {-10, -25}; + hrIncreaseHigh[] = {-20, -30}; + timeInSystem = 600; + timeTillMaxEffect = 60; + viscosityChange = -10; + opioidRelief = 1.3; }; - class syringe_nalbuphine_5ml_3 { + class syringe_ketamine_10ml_1 { painReduce = 0.6; - hrIncreaseLow[] = {-10, 0}; - hrIncreaseNormal[] = {-15, -5}; - hrIncreaseHigh[] = {-15, -5}; - timeInSystem = 900; + hrIncreaseLow[] = {5, 10}; + hrIncreaseNormal[] = {10, 15}; + hrIncreaseHigh[] = {10, 15}; + timeInSystem = 300; timeTillMaxEffect = 30; - maxDose = 2; - maxDoseDeviation = 2; - incompatibleMedication[] = {}; - viscosityChange = -5; - onOverDose = ""; - opioidRelief = 1.2; + viscosityChange = 10; }; - class syringe_atropineIV_5ml_3 { - painReduce = 0; - hrIncreaseLow[] = {20, 40}; + class syringe_ketamine_10ml_3 { + painReduce = 0.8; + hrIncreaseLow[] = {5, 20}; hrIncreaseNormal[] = {10, 25}; - hrIncreaseHigh[] = {5, 15}; - timeInSystem = 120; + hrIncreaseHigh[] = {10, 25}; + timeInSystem = 450; timeTillMaxEffect = 30; - maxDose = 2; - incompatibleMedication[]= {}; - viscosityChange = 0; - onOverDose = ""; + viscosityChange = 10; }; - class syringe_amiodarone_5ml_3 { + class syringe_nalbuphine_10ml_1 { + painReduce = 0.5; + hrIncreaseLow[] = {-5, 0}; + hrIncreaseNormal[] = {-5, -15}; + hrIncreaseHigh[] = {-10, -15}; + timeInSystem = 300; + timeTillMaxEffect = 45; + viscosityChange = -5; + opioidRelief = 1.1; + }; + class syringe_nalbuphine_10ml_3 { + painReduce = 0.7; + hrIncreaseLow[] = {-5, 0}; + hrIncreaseNormal[] = {-5, -20}; + hrIncreaseHigh[] = {-10, -20}; + timeInSystem = 300; + timeTillMaxEffect = 45; + viscosityChange = -5; + opioidRelief = 1.2; + }; + class syringe_lidocaine_10ml_1 { painReduce = 0; hrIncreaseLow[] = {0, 0, 0}; hrIncreaseNormal[] = {0, 0, 0}; hrIncreaseHigh[] = {0, 0, 0}; timeInSystem = 120; timeTillMaxEffect = 30; - maxDose = 4; - incompatibleMedication[]= {}; - viscosityChange = 0; - onOverDose = ""; }; - class syringe_lidocaine_5ml_3 { - painReduce = 0.3; - hrIncreaseLow[] = {0, 0}; - hrIncreaseNormal[] = {0, 0}; - hrIncreaseHigh[] = {0, 0}; - timeInSystem = 120; + class syringe_morphineIV_10ml_1 { + painReduce = 0.6; + hrIncreaseLow[] = {-10, -20}; + hrIncreaseNormal[] = {-10, -25}; + hrIncreaseHigh[] = {-10, -35}; + timeInSystem = 600; timeTillMaxEffect = 30; - maxDose = 2; + viscosityChange = -15; + opioidRelief = 1.1; + }; + class syringe_morphineIV_10ml_3 { + painReduce = 0.8; + hrIncreaseLow[] = {-10, -25}; + hrIncreaseNormal[] = {-10, -35}; + hrIncreaseHigh[] = {-10, -45}; + timeInSystem = 600; + timeTillMaxEffect = 30; + viscosityChange = -15; + opioidRelief = 1.3; + }; + class syringe_txa { + maxDose = 9; maxDoseDeviation = 3; - incompatibleMedication[]= {}; + incompatibleMedication[] = {}; onOverDose = ""; - maxRelief = 0.6; }; - class syringe_etomidate_5ml_3 { - painReduce = 0.4; - hrIncreaseLow[] = {-10, -5}; - hrIncreaseNormal[] = {-15, -20}; - hrIncreaseHigh[] = {-20, -30}; - timeInSystem = 45; - timeTillMaxEffect = 5; - maxDose = 10; + class syringe_eaca { + maxDose = 6; + maxDoseDeviation = 3; incompatibleMedication[] = {}; - viscosityChange = 0; onOverDose = ""; }; - class syringe_flumazenil_5ml_3 { - painReduce = 0; - hrIncreaseLow[] = {0, 0}; - hrIncreaseNormal[] = {0, 0}; - hrIncreaseHigh[] = {0, 0}; - timeInSystem = 60; - timeTillMaxEffect = 5; - maxDose = 3; + class syringe_epinephrineIV { + maxDose = 9; + maxDoseDeviation = 3; incompatibleMedication[] = {}; - viscosityChange = 0; - onOverDose = ""; + onOverDose = ""; }; - class syringe_lorazepam_5ml_3 { - painReduce = 0; - hrIncreaseLow[] = {0, 0}; - hrIncreaseNormal[] = {0, 0}; - hrIncreaseHigh[] = {0, 0}; - timeInSystem = 60; - timeTillMaxEffect = 5; - maxDose = 3; + class syringe_norepinephrine { + maxDose = 6; + maxDoseDeviation = 3; incompatibleMedication[] = {}; - viscosityChange = -15; onOverDose = ""; }; - class syringe_fentanyl_10ml_1 { - painReduce = 0.8; - hrIncreaseLow[] = {-10, -5}; - hrIncreaseNormal[] = {-15, -10}; - hrIncreaseHigh[] = {-20, -10}; - timeInSystem = 300; - timeTillMaxEffect = 60; - maxDose = 1; - maxDoseDeviation = 1; + class syringe_phenylephrine { + maxDose = 6; + maxDoseDeviation = 3; incompatibleMedication[] = {}; - viscosityChange = -10; onOverDose = ""; - opioidRelief = 1.3; }; - class syringe_ketamine_10ml_1 { - painReduce = 0.7; - hrIncreaseLow[] = {5, 10}; - hrIncreaseNormal[] = {10, 15}; - hrIncreaseHigh[] = {10, 15}; - timeInSystem = 300; - timeTillMaxEffect = 15; - maxDose = 2; - maxDoseDeviation = 1; + class syringe_nitroglycerin { + maxDose = 9; + maxDoseDeviation = 3; incompatibleMedication[] = {}; - viscosityChange = 10; onOverDose = ""; }; - class syringe_nalbuphine_10ml_1 { - painReduce = 0.5; - hrIncreaseLow[] = {-5, 0}; - hrIncreaseNormal[] = {-10, -5}; - hrIncreaseHigh[] = {-15, -5}; - timeInSystem = 300; - timeTillMaxEffect = 30; - maxDose = 2; - maxDoseDeviation = 2; + class syringe_atropineIV { + maxDose = 9; + maxDoseDeviation = 6; incompatibleMedication[] = {}; - viscosityChange = -5; onOverDose = ""; - opioidRelief = 1.2; }; - class syringe_lidocaine_10ml_1 { - painReduce = 0.2; - hrIncreaseLow[] = {0, 0, 0}; - hrIncreaseNormal[] = {0, 0, 0}; - hrIncreaseHigh[] = {0, 0, 0}; - timeInSystem = 120; - timeTillMaxEffect = 30; - maxDose = 2; - maxDoseDeviation = 4; - incompatibleMedication[]= {}; + class syringe_amiodarone { + maxDose = 6; + maxDoseDeviation = 3; + incompatibleMedication[] = {}; onOverDose = ""; - maxRelief = 0.6; }; - class syringe_fentanyl_10ml_3 { - painReduce = 1; - hrIncreaseLow[] = {-15, -5}; - hrIncreaseNormal[] = {-20, -10}; - hrIncreaseHigh[] = {-25, -10}; - timeInSystem = 300; - timeTillMaxEffect = 60; - maxDose = 1; - maxDoseDeviation = 0; + class syringe_etomidate { + maxDose = 9; + maxDoseDeviation = 3; incompatibleMedication[] = {}; - viscosityChange = -10; onOverDose = ""; - opioidRelief = 1.5; }; - class syringe_ketamine_10ml_3 { - painReduce = 0.8; - hrIncreaseLow[] = {5, 20}; - hrIncreaseNormal[] = {10, 25}; - hrIncreaseHigh[] = {10, 25}; - timeInSystem = 300; - timeTillMaxEffect = 15; - maxDose = 1; - maxDoseDeviation = 1; + class syringe_flumazenil { + maxDose = 6; + maxDoseDeviation = 3; incompatibleMedication[] = {}; - viscosityChange = 10; onOverDose = ""; }; - class syringe_nalbuphine_10ml_3 { - painReduce = 0.6; - hrIncreaseLow[] = {-5, 0}; - hrIncreaseNormal[] = {-10, -5}; - hrIncreaseHigh[] = {-15, -5}; - timeInSystem = 300; - timeTillMaxEffect = 30; - maxDose = 2; - maxDoseDeviation = 2; + class syringe_lorazepam { + maxDose = 6; + maxDoseDeviation = 3; incompatibleMedication[] = {}; - viscosityChange = -5; onOverDose = ""; - opioidRelief = 1.2; }; - class syringe_morphineIV_10ml_1 { - painReduce = 0.8; - hrIncreaseLow[] = {-10, -20}; - hrIncreaseNormal[] = {-10, -30}; - hrIncreaseHigh[] = {-10, -35}; - timeInSystem = 900; - timeTillMaxEffect = 30; - maxDose = 2; - maxDoseDeviation = 2; + class syringe_lidocaine { + maxDose = 12; + maxDoseDeviation = 6; incompatibleMedication[] = {}; - viscosityChange = -15; - opioidRelief = 1.3; + onOverDose = ""; }; - class syringe_morphineIV_10ml_3 { - painReduce = 0.8; - hrIncreaseLow[] = {-10, -20}; - hrIncreaseNormal[] = {-10, -30}; - hrIncreaseHigh[] = {-10, -35}; - timeInSystem = 900; - timeTillMaxEffect = 30; - maxDose = 2; - maxDoseDeviation = 2; + class syringe_fentanyl { + maxDose = 3; + maxDoseDeviation = 3; incompatibleMedication[] = {}; - viscosityChange = -15; - opioidRelief = 1.3; + onOverDose = ""; }; - class syringe_morphineIV_5ml_1 { - painReduce = 0.8; - hrIncreaseLow[] = {-10, -20}; - hrIncreaseNormal[] = {-10, -30}; - hrIncreaseHigh[] = {-10, -35}; - timeInSystem = 900; - timeTillMaxEffect = 30; - maxDose = 2; - maxDoseDeviation = 2; + class syringe_ketamine { + maxDose = 6; + maxDoseDeviation = 3; incompatibleMedication[] = {}; - viscosityChange = -15; - opioidRelief = 1.3; + onOverDose = ""; }; - class syringe_morphineIV_5ml_3 { - painReduce = 0.8; - hrIncreaseLow[] = {-10, -20}; - hrIncreaseNormal[] = {-10, -30}; - hrIncreaseHigh[] = {-10, -35}; - timeInSystem = 900; - timeTillMaxEffect = 30; - maxDose = 2; + class syringe_nalbuphine { + maxDose = 6; maxDoseDeviation = 2; incompatibleMedication[] = {}; - viscosityChange = -15; - opioidRelief = 1.3; + onOverDose = ""; }; - class syringe_adenosineIV_5ml_1 { - painReduce = 0; - hrIncreaseLow[] = {-7, -10}; - hrIncreaseNormal[] = {-15, -30}; - hrIncreaseHigh[] = {-15, -35}; - timeInSystem = 180; - timeTillMaxEffect = 15; - maxDose = 3; - maxDoseDeviation = 2; + class syringe_morphineIV { + maxDose = 6; + maxDoseDeviation = 3; incompatibleMedication[] = {}; - viscosityChange = 0; + onOverDose = ""; }; - class syringe_adenosineIV_5ml_3 { - painReduce = 0; - hrIncreaseLow[] = {-7, -10}; - hrIncreaseNormal[] = {-15, -30}; - hrIncreaseHigh[] = {-15, -35}; - timeInSystem = 180; - timeTillMaxEffect = 15; - maxDose = 3; - maxDoseDeviation = 2; + class syringe_adenosineIV { + maxDose = 6; + maxDoseDeviation = 3; incompatibleMedication[] = {}; - viscosityChange = 0; + onOverDose = ""; }; }; }; diff --git a/addons/pharma/functions/fnc_applyIV.sqf b/addons/pharma/functions/fnc_applyIV.sqf index 4da5ef7dd..9bfd10596 100644 --- a/addons/pharma/functions/fnc_applyIV.sqf +++ b/addons/pharma/functions/fnc_applyIV.sqf @@ -69,29 +69,41 @@ switch (_usedItem) do { _IVrate set [_partIndex, 0.4]; _patient setVariable [QGVAR(IV), _IVarray, true]; _patient setVariable [QGVAR(IVrate), _IVrate, true]; - private _lidocaineCount = [_patient, "Lidocaine", false] call ACEFUNC(medical_status,getMedicationCount); - private _lidocaineCount51 = [_patient, "syringe_kat_lidocaine_5ml_1", false] call ACEFUNC(medical_status,getMedicationCount); - private _lidocaineCount53 = [_patient, "syringe_kat_lidocaine_5ml_3", false] call ACEFUNC(medical_status,getMedicationCount); - private _lidocaineCount101 = [_patient, "syringe_kat_lidocaine_10ml_1", false] call ACEFUNC(medical_status,getMedicationCount); - private _lidocaineCount103 = [_patient, "syringe_kat_lidocaine_10ml_3", false] call ACEFUNC(medical_status,getMedicationCount); - private _morphineCount = [_patient, "Morphine", false] call ACEFUNC(medical_status,getMedicationCount); - private _nalbuphineCount = [_patient, "Nalbuphine", false] call ACEFUNC(medical_status,getMedicationCount); - private _fentanylCount = [_patient, "Fentanyl", false] call ACEFUNC(medical_status,getMedicationCount); - private _ketamineCount = [_patient, "Ketamine", false] call ACEFUNC(medical_status,getMedicationCount); - private _nalbuphineCount51 = [_patient, "syringe_kat_nalbuphine_5ml_1", false] call ACEFUNC(medical_status,getMedicationCount); - private _fentanylCount51 = [_patient, "syringe_kat_fentanyl_5ml_1", false] call ACEFUNC(medical_status,getMedicationCount); - private _ketamineCount51 = [_patient, "syringe_kat_ketamine_5ml_1", false] call ACEFUNC(medical_status,getMedicationCount); - private _nalbuphineCount53 = [_patient, "syringe_kat_nalbuphine_5ml_3", false] call ACEFUNC(medical_status,getMedicationCount); - private _fentanylCount53 = [_patient, "syringe_kat_fentanyl_5ml_3", false] call ACEFUNC(medical_status,getMedicationCount); - private _ketamineCount53= [_patient, "syringe_kat_ketamine_5ml_3", false] call ACEFUNC(medical_status,getMedicationCount); - private _nalbuphineCount101 = [_patient, "syringe_kat_nalbuphine_10ml_3", false] call ACEFUNC(medical_status,getMedicationCount); - private _fentanylCount101 = [_patient, "syringe_kat_fentanyl_10ml_3", false] call ACEFUNC(medical_status,getMedicationCount); - private _ketamineCount101 = [_patient, "syringe_kat_ketamine_10ml_3", false] call ACEFUNC(medical_status,getMedicationCount); - private _nalbuphineCount103 = [_patient, "syringe_kat_nalbuphine_10ml_3", false] call ACEFUNC(medical_status,getMedicationCount); - private _fentanylCount103 = [_patient, "syringe_kat_fentanyl_10ml_3", false] call ACEFUNC(medical_status,getMedicationCount); - private _ketamineCount103 = [_patient, "syringe_kat_ketamine_10ml_3", false] call ACEFUNC(medical_status,getMedicationCount); - if (_lidocaineCount <= 0.6 && _morphineCount <= 0.6 && _nalbuphineCount <= 0.6 && _fentanylCount <= 0.6 && _ketamineCount <= 0.6 && _lidocaineCount51 <= 0.6 && _nalbuphineCount51 <= 0.6 && _fentanylCount51 <= 0.6 && _ketamineCount51 <= 0.6 &&_lidocaineCount53 <= 0.6 && _nalbuphineCount53 <= 0.6 && _fentanylCount53 <= 0.6 && _ketamineCount53 <= 0.6 && _lidocaineCount101 <= 0.6 && _nalbuphineCount101 <= 0.6 && _fentanylCount101 <= 0.6 && _ketamineCount101 <= 0.6 && _lidocaineCount103 <= 0.6 && _nalbuphineCount103 <= 0.6 && _fentanylCount103 <= 0.6 && _ketamineCount103 <= 0.6) then {[_patient, 0.8] call ACEFUNC(medical_status,adjustPainLevel)}; - + private _medStack = _patient call ACEFUNC(medical_treatment,getAllMedication); + private _medsToCheck = ["fentanyl", "ketamine", "nalbuphine", "morphine", "morphineIV"]; + private _fentanylEffectiveness = 0; + private _ketamineEffectiveness = 0; + private _nalbuphineEffectiveness = 0; + private _morphineEffectiveness = 0; + private _morphineIVEffectiveness = 0; + { + private _medName = toLower (_x select 0); + private _effectiveness = _x select 2; + if (_medName find "fentanyl" > -1) then { + _fentanylEffectiveness = _fentanylEffectiveness max _effectiveness; + }; + if (_medName find "ketamine" > -1) then { + _ketamineEffectiveness = _ketamineEffectiveness max _effectiveness; + }; + if (_medName find "nalbuphine" > -1) then { + _nalbuphineEffectiveness = _nalbuphineEffectiveness max _effectiveness; + }; + if (_medName find "morphine" > -1) then { + _nalbuphineEffectiveness = _nalbuphineEffectiveness max _effectiveness; + }; + if (_medName find "morphineIV" > -1) then { + _nalbuphineEffectiveness = _nalbuphineEffectiveness max _effectiveness; + }; + } forEach _medStack; + if ( + _fentanylEffectiveness <= 0.8 && + _ketamineEffectiveness <= 0.8 && + _nalbuphineEffectiveness <= 0.8 && + _morphineEffectiveness <= 0.8 && + _morphineIVEffectiveness <= 0.8 && + ) then { + [_patient, [0.6, 0.7, 0.8] select (floor random 3)] call ACEFUNC(medical_status, adjustPainLevel); + }; [_patient, "activity", LSTRING(iv_log), [[_medic] call ACEFUNC(common,getName), "FAST IO"]] call ACEFUNC(medical_treatment,addToLog); [_patient, "FAST IO"] call ACEFUNC(medical_treatment,addToTriageCard);}; default {}; diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_NaloxoneLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_NaloxoneLocal.sqf index 03119d46e..d399d1d75 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_NaloxoneLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_NaloxoneLocal.sqf @@ -19,12 +19,16 @@ params ["_patient"]; private _medicationArray = _patient getVariable [QACEGVAR(medical,medications), []]; +private _medicationDeleted = false; + { _x params ["_medication"]; - - if (_medication isEqualTo "Morphine" || _medication isEqualTo "Fentanyl" || _medication isEqualTo "Nalbuphine") exitWith { - _medicationArray deleteAt (_medicationArray find _x); + if (_medication isEqualTo "Morphine" || _medication isEqualTo "Fentanyl" || _medication isEqualTo "Nalbuphine") then { + if (!_medicationDeleted && (random 1 < 0.5)) then { + _medicationArray deleteAt (_medicationArray find _x); + _medicationDeleted = true; + }; }; -} forEach (_medicationArray); +} forEach _medicationArray; -_patient setVariable [QACEGVAR(medical,medications), _medicationArray, true]; +_patient setVariable [QACEGVAR(medical,medications), _medicationArray, true]; \ No newline at end of file diff --git a/addons/surgery/functions/fnc_closedReductionLocal.sqf b/addons/surgery/functions/fnc_closedReductionLocal.sqf index 900a86675..263007864 100644 --- a/addons/surgery/functions/fnc_closedReductionLocal.sqf +++ b/addons/surgery/functions/fnc_closedReductionLocal.sqf @@ -22,30 +22,40 @@ params ["_medic", "_patient", "_bodyPart"]; private _part = ALL_BODY_PARTS find toLower _bodyPart; private _activeFracture = GET_FRACTURES(_patient); private _fractureArray = _patient getVariable [QGVAR(fractures), [0,0,0,0,0,0]]; -private _lidocaineCount = [_patient, "Lidocaine", false] call ACEFUNC(medical_status,getMedicationCount); -private _lidocaineCount51 = [_patient, "syringe_kat_lidocaine_5ml_1", false] call ACEFUNC(medical_status,getMedicationCount); -private _lidocaineCount53 = [_patient, "syringe_kat_lidocaine_5ml_2", false] call ACEFUNC(medical_status,getMedicationCount); -private _lidocaineCount101 = [_patient, "syringe_kat_lidocaine_10ml_1", false] call ACEFUNC(medical_status,getMedicationCount); -private _lidocaineCount103 = [_patient, "syringe_kat_lidocaine_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); -private _morphineCount = [_patient, "Morphine", false] call ACEFUNC(medical_status,getMedicationCount); -private _nalbuphineCount = [_patient, "Nalbuphine", false] call ACEFUNC(medical_status,getMedicationCount); -private _fentanylCount = [_patient, "Fentanyl", false] call ACEFUNC(medical_status,getMedicationCount); -private _ketamineCount = [_patient, "Ketamine", false] call ACEFUNC(medical_status,getMedicationCount); -private _nalbuphineCount51 = [_patient, "syringe_kat_nalbuphine_5ml_1", false] call ACEFUNC(medical_status,getMedicationCount); -private _fentanylCount51 = [_patient, "syringe_kat_fentanyl_5ml_1", false] call ACEFUNC(medical_status,getMedicationCount); -private _ketamineCount51 = [_patient, "syringe_kat_ketamine_5ml_1", false] call ACEFUNC(medical_status,getMedicationCount); -private _nalbuphineCount53 = [_patient, "syringe_kat_nalbuphine_5ml_2", false] call ACEFUNC(medical_status,getMedicationCount); -private _fentanylCount53 = [_patient, "syringe_kat_fentanyl_5ml_2", false] call ACEFUNC(medical_status,getMedicationCount); -private _ketamineCount53= [_patient, "syringe_kat_ketamine_5ml_2", false] call ACEFUNC(medical_status,getMedicationCount); -private _nalbuphineCount101 = [_patient, "syringe_kat_nalbuphine_10ml_1", false] call ACEFUNC(medical_status,getMedicationCount); -private _fentanylCount101 = [_patient, "syringe_kat_fentanyl_10ml_1", false] call ACEFUNC(medical_status,getMedicationCount); -private _ketamineCount101 = [_patient, "syringe_kat_ketamine_10ml_1", false] call ACEFUNC(medical_status,getMedicationCount); -private _nalbuphineCount103 = [_patient, "syringe_kat_nalbuphine_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); -private _fentanylCount103 = [_patient, "syringe_kat_fentanyl_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); -private _ketamineCount103 = [_patient, "syringe_kat_ketamine_10ml_2", false] call ACEFUNC(medical_status,getMedicationCount); -if (_lidocaineCount <= 0.6 && _morphineCount <= 0.8 && _nalbuphineCount <= 0.8 && _fentanylCount <= 0.8 && _ketamineCount <= 0.8 && _lidocaineCount51 <= 0.6 && _nalbuphineCount51 <= 0.8 && _fentanylCount51 <= 0.8 && _ketamineCount51 <= 0.8 &&_lidocaineCount53 <= 0.6 && _nalbuphineCount53 <= 0.8 && 53 <= 0.8 && _ketamineCount53 <= 0.8 && _lidocaineCount101 <= 0.6 && _nalbuphineCount101 <= 0.8 && _fentanylCount101 <= 0.8 && _ketamineCount101 <= 0.8 && _lidocaineCount103 <= 0.6 && _nalbuphineCount103 <= 0.8 && _fentanylCount103 <= 0.8 && _ketamineCount103 <= 0.8) then { - private _pain = random [0.7, 0.8, 0.9]; - [_patient, _pain] call ACEFUNC(medical_status,adjustPainLevel); +private _medStack = _patient call ACEFUNC(medical_treatment,getAllMedication); +private _medsToCheck = ["fentanyl", "ketamine", "nalbuphine", "morphine", "morphineIV"]; +private _fentanylEffectiveness = 0; +private _ketamineEffectiveness = 0; +private _nalbuphineEffectiveness = 0; +private _morphineEffectiveness = 0; +private _morphineIVEffectiveness = 0; +{ + private _medName = toLower (_x select 0); + private _effectiveness = _x select 2; + if (_medName find "fentanyl" > -1) then { + _fentanylEffectiveness = _fentanylEffectiveness max _effectiveness; + }; + if (_medName find "ketamine" > -1) then { + _ketamineEffectiveness = _ketamineEffectiveness max _effectiveness; + }; + if (_medName find "nalbuphine" > -1) then { + _nalbuphineEffectiveness = _nalbuphineEffectiveness max _effectiveness; + }; + if (_medName find "morphine" > -1) then { + _nalbuphineEffectiveness = _nalbuphineEffectiveness max _effectiveness; + }; + if (_medName find "morphineIV" > -1) then { + _nalbuphineEffectiveness = _nalbuphineEffectiveness max _effectiveness; + }; +} forEach _medStack; +if ( + _fentanylEffectiveness <= 0.8 && + _ketamineEffectiveness <= 0.8 && + _nalbuphineEffectiveness <= 0.8 && + _morphineEffectiveness <= 0.8 && + _morphineIVEffectiveness <= 0.8 && +) then { + [_patient, [0.6, 0.7, 0.8] select (floor random 3)] call ACEFUNC(medical_status, adjustPainLevel); }; playSound3D [QPATHTOF_SOUND(sounds\reduction.wav), _patient, false, getPosASL _patient, 8, 1, 15]; From 437a7d4229acf83f7916191a1e75a76a2d375ea4 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Fri, 11 Oct 2024 22:43:28 -0700 Subject: [PATCH 098/149] Small changes --- .hemtt/launch.toml | 9 ++++++++- addons/pharma/functions/fnc_applyIV.sqf | 14 +++++++------- .../surgery/functions/fnc_closedReductionLocal.sqf | 14 +++++++------- 3 files changed, 22 insertions(+), 15 deletions(-) diff --git a/.hemtt/launch.toml b/.hemtt/launch.toml index 9103063db..90a3945eb 100644 --- a/.hemtt/launch.toml +++ b/.hemtt/launch.toml @@ -1,7 +1,14 @@ [default] workshop = [ "450814997", # CBA_A3's Workshop ID - "463939057", # ACE3's Workshop ID "2369477168", # Advanced Developer Tools's Workshop ID "1779063631", # ZEN +] +parameters = [ + "-skipIntro", + "-noSplash", + "-showScriptErrors", + "-debug", + "-filePatching", + "-mod=@ace" ] \ No newline at end of file diff --git a/addons/pharma/functions/fnc_applyIV.sqf b/addons/pharma/functions/fnc_applyIV.sqf index 9bfd10596..b6352e35c 100644 --- a/addons/pharma/functions/fnc_applyIV.sqf +++ b/addons/pharma/functions/fnc_applyIV.sqf @@ -79,19 +79,19 @@ switch (_usedItem) do { { private _medName = toLower (_x select 0); private _effectiveness = _x select 2; - if (_medName find "fentanyl" > -1) then { + if ("fentanyl" in _medName) then { _fentanylEffectiveness = _fentanylEffectiveness max _effectiveness; }; - if (_medName find "ketamine" > -1) then { + if ("ketamine" in _medName) then { _ketamineEffectiveness = _ketamineEffectiveness max _effectiveness; }; - if (_medName find "nalbuphine" > -1) then { + if ("nalbuphine" in _medName) then { _nalbuphineEffectiveness = _nalbuphineEffectiveness max _effectiveness; }; - if (_medName find "morphine" > -1) then { + if ("morphine" in _medName) then { _nalbuphineEffectiveness = _nalbuphineEffectiveness max _effectiveness; }; - if (_medName find "morphineIV" > -1) then { + if ("morphineIV" in _medName) then { _nalbuphineEffectiveness = _nalbuphineEffectiveness max _effectiveness; }; } forEach _medStack; @@ -100,9 +100,9 @@ switch (_usedItem) do { _ketamineEffectiveness <= 0.8 && _nalbuphineEffectiveness <= 0.8 && _morphineEffectiveness <= 0.8 && - _morphineIVEffectiveness <= 0.8 && + _morphineIVEffectiveness <= 0.8 ) then { - [_patient, [0.6, 0.7, 0.8] select (floor random 3)] call ACEFUNC(medical_status, adjustPainLevel); + [_patient, [0.6, 0.7, 0.8] select (floor random 3)] call ACEFUNC(medical_status,adjustPainLevel); }; [_patient, "activity", LSTRING(iv_log), [[_medic] call ACEFUNC(common,getName), "FAST IO"]] call ACEFUNC(medical_treatment,addToLog); [_patient, "FAST IO"] call ACEFUNC(medical_treatment,addToTriageCard);}; diff --git a/addons/surgery/functions/fnc_closedReductionLocal.sqf b/addons/surgery/functions/fnc_closedReductionLocal.sqf index 263007864..8df603351 100644 --- a/addons/surgery/functions/fnc_closedReductionLocal.sqf +++ b/addons/surgery/functions/fnc_closedReductionLocal.sqf @@ -32,19 +32,19 @@ private _morphineIVEffectiveness = 0; { private _medName = toLower (_x select 0); private _effectiveness = _x select 2; - if (_medName find "fentanyl" > -1) then { + if ("fentanyl" in _medName) then { _fentanylEffectiveness = _fentanylEffectiveness max _effectiveness; }; - if (_medName find "ketamine" > -1) then { + if ("ketamine" in _medName) then { _ketamineEffectiveness = _ketamineEffectiveness max _effectiveness; }; - if (_medName find "nalbuphine" > -1) then { + if ("nalbuphine" in _medName) then { _nalbuphineEffectiveness = _nalbuphineEffectiveness max _effectiveness; }; - if (_medName find "morphine" > -1) then { + if ("morphine" in _medName) then { _nalbuphineEffectiveness = _nalbuphineEffectiveness max _effectiveness; }; - if (_medName find "morphineIV" > -1) then { + if ("morphineIV" in _medName) then { _nalbuphineEffectiveness = _nalbuphineEffectiveness max _effectiveness; }; } forEach _medStack; @@ -53,9 +53,9 @@ if ( _ketamineEffectiveness <= 0.8 && _nalbuphineEffectiveness <= 0.8 && _morphineEffectiveness <= 0.8 && - _morphineIVEffectiveness <= 0.8 && + _morphineIVEffectiveness <= 0.8 ) then { - [_patient, [0.6, 0.7, 0.8] select (floor random 3)] call ACEFUNC(medical_status, adjustPainLevel); + [_patient, [0.6, 0.7, 0.8] select (floor random 3)] call ACEFUNC(medical_status,adjustPainLevel); }; playSound3D [QPATHTOF_SOUND(sounds\reduction.wav), _patient, false, getPosASL _patient, 8, 1, 15]; From c6ec349a07582f3397e8e299150f75d45effddb0 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Fri, 11 Oct 2024 22:46:37 -0700 Subject: [PATCH 099/149] Update gui.hpp --- addons/gui/gui.hpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/addons/gui/gui.hpp b/addons/gui/gui.hpp index ce5b0dc26..683f9b733 100644 --- a/addons/gui/gui.hpp +++ b/addons/gui/gui.hpp @@ -665,9 +665,9 @@ class ACE_Medical_Menu { class SyringeOpenButton: RscButton { idc = IDC_SYRINGE_OPEN; text = CSTRING(OpenSyringeMenu); - x = QUOTE(POS_X(23.7)); - y = QUOTE(POS_Y(0)); - w = QUOTE(POS_W(4.4)); + x = QUOTE(POS_X(39.6)); + y = QUOTE(POS_Y(4.9)); + w = QUOTE(POS_W(4)); h = QUOTE(POS_H(1)); colorBackgroundDisabled[] = GUI_BCG_COLOR; colorBackground[] = GUI_BCG_COLOR; From 3b9def0fa250a3a6722cc56d04b1c2fa54eebbb4 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Fri, 11 Oct 2024 23:11:55 -0700 Subject: [PATCH 100/149] Fixes --- addons/pharma/ACE_Medical_Treatment.hpp | 8 +++ addons/pharma/XEH_PREP.hpp | 1 - addons/pharma/XEH_postInit.sqf | 1 - addons/pharma/XEH_preInit.sqf | 53 ------------------- .../pharma/functions/fnc_medicationLocal.sqf | 9 +--- .../fnc_treatmentAdvanced_AmiodaroneLocal.sqf | 1 + ...> fnc_treatmentAdvanced_KetamineLocal.sqf} | 0 7 files changed, 11 insertions(+), 62 deletions(-) rename addons/pharma/functions/{fnc_treatmentAdvanced_KetamineSedationLocal.sqf => fnc_treatmentAdvanced_KetamineLocal.sqf} (100%) diff --git a/addons/pharma/ACE_Medical_Treatment.hpp b/addons/pharma/ACE_Medical_Treatment.hpp index 87b1acf7f..1ae43eb60 100644 --- a/addons/pharma/ACE_Medical_Treatment.hpp +++ b/addons/pharma/ACE_Medical_Treatment.hpp @@ -516,6 +516,7 @@ class ACE_ADDON(Medical_Treatment) { viscosityChange = -10; onOverDose = ""; opioidRelief = 1.2; + opioidEffect = 0.17; }; class syringe_ketamine_5ml_1 { painReduce = 0.7; @@ -529,6 +530,7 @@ class ACE_ADDON(Medical_Treatment) { incompatibleMedication[] = {}; viscosityChange = 10; onOverDose = ""; + opioidEffect = 0.11; }; class syringe_nalbuphine_5ml_1 { painReduce = 0.5; @@ -684,6 +686,7 @@ class ACE_ADDON(Medical_Treatment) { viscosityChange = -10; onOverDose = ""; opioidRelief = 1.5; + opioidEffect = 0.17; }; class syringe_ketamine_5ml_3 { painReduce = 0.8; @@ -697,6 +700,7 @@ class ACE_ADDON(Medical_Treatment) { incompatibleMedication[] = {}; viscosityChange = 10; onOverDose = ""; + opioidEffect = 0.17; }; class syringe_nalbuphine_5ml_3 { painReduce = 0.6; @@ -798,6 +802,7 @@ class ACE_ADDON(Medical_Treatment) { viscosityChange = -10; onOverDose = ""; opioidRelief = 1.3; + opioidEffect = 0.17; }; class syringe_ketamine_10ml_1 { painReduce = 0.7; @@ -811,6 +816,7 @@ class ACE_ADDON(Medical_Treatment) { incompatibleMedication[] = {}; viscosityChange = 10; onOverDose = ""; + opioidEffect = 0.17; }; class syringe_nalbuphine_10ml_1 { painReduce = 0.5; @@ -852,6 +858,7 @@ class ACE_ADDON(Medical_Treatment) { viscosityChange = -10; onOverDose = ""; opioidRelief = 1.5; + opioidEffect = 0.17; }; class syringe_ketamine_10ml_3 { painReduce = 0.8; @@ -865,6 +872,7 @@ class ACE_ADDON(Medical_Treatment) { incompatibleMedication[] = {}; viscosityChange = 10; onOverDose = ""; + opioidEffect = 0.17; }; class syringe_nalbuphine_10ml_3 { painReduce = 0.6; diff --git a/addons/pharma/XEH_PREP.hpp b/addons/pharma/XEH_PREP.hpp index 05922a36c..d6c614442 100644 --- a/addons/pharma/XEH_PREP.hpp +++ b/addons/pharma/XEH_PREP.hpp @@ -49,7 +49,6 @@ PREP(treatmentAdvanced_TXALocal); PREP(vehicleCheckDialysis); PREP(prepareSyringe); PREP(checkIVType); -PREP(treatmentAdvanced_KetamineSedationLocal); PREP(ivCondition); PREP(AMSCheck); PREP(getAllMedicationsCount) \ No newline at end of file diff --git a/addons/pharma/XEH_postInit.sqf b/addons/pharma/XEH_postInit.sqf index 6aa958988..4ff370185 100644 --- a/addons/pharma/XEH_postInit.sqf +++ b/addons/pharma/XEH_postInit.sqf @@ -16,7 +16,6 @@ [QGVAR(pervitinLocal), LINKFUNC(treatmentAdvanced_PervitinLocal)] call CBA_fnc_addEventHandler; [QGVAR(pervitinPP), LINKFUNC(pervitinPP)] call CBA_fnc_addEventHandler; [QGVAR(ketamineLocal), LINKFUNC(treatmentAdvanced_KetamineLocal)] call CBA_fnc_addEventHandler; -[QGVAR(ketamineLocal), LINKFUNC(treatmentAdvanced_KetamineSedationLocal)] call CBA_fnc_addEventHandler; [QGVAR(fentanylLocal), LINKFUNC(treatmentAdvanced_FentanylLocal)] call CBA_fnc_addEventHandler; [QGVAR(caffeineLocal), LINKFUNC(treatmentAdvanced_CaffeineLocal)] call CBA_fnc_addEventHandler; diff --git a/addons/pharma/XEH_preInit.sqf b/addons/pharma/XEH_preInit.sqf index e274914c0..26d07fc25 100644 --- a/addons/pharma/XEH_preInit.sqf +++ b/addons/pharma/XEH_preInit.sqf @@ -344,24 +344,6 @@ PREP_RECOMPILE_END; true ] call CBA_Settings_fnc_init; -[ - QGVAR(chromatic_aberration_checkbox_pervitin), - "CHECKBOX", - [LLSTRING(SETTING_Chromatic_Aberration_Checkbox_Pervitin), LLSTRING(SETTING_Chromatic_Aberration_Checkbox_Pervitin_DESC)], - [CBA_SETTINGS_CAT, LSTRING(SubCategory_Pervitin)], - [true], - true -] call CBA_Settings_fnc_init; - -[ - QGVAR(chromatic_aberration_slider_pervitin), - "SLIDER", - [LLSTRING(SETTING_Chromatic_Aberration_Slider_Pervitin), LLSTRING(SETTING_Chromatic_Aberration_Slider_Pervitin_DESC)], - [CBA_SETTINGS_CAT, LSTRING(SubCategory_Pervitin)], - [0.1, 10, 1, 1], - true -] call CBA_Settings_fnc_init; - [ QGVAR(pervitinSpeed), "SLIDER", @@ -697,24 +679,6 @@ PREP_RECOMPILE_END; true ] call CBA_Settings_fnc_init; -[ - QGVAR(chromatic_aberration_checkbox_ketamine), - "CHECKBOX", - [LLSTRING(SETTING_Chromatic_Aberration_Checkbox_Ketamine), LLSTRING(SETTING_Chromatic_Aberration_Checkbox_Ketamine_DESC)], - [CBA_SETTINGS_CAT, LSTRING(SubCategory_Ketamine)], - [true], - true -] call CBA_Settings_fnc_init; - -[ - QGVAR(chromatic_aberration_slider_ketamine), - "SLIDER", - [LLSTRING(SETTING_Chromatic_Aberration_Slider_Ketamine), LLSTRING(SETTING_Chromatic_Aberration_Slider_Ketamine_DESC)], - [CBA_SETTINGS_CAT, LSTRING(SubCategory_Ketamine)], - [0.1, 10, 0.8, 1], - true -] call CBA_Settings_fnc_init; - //Fentanyl Settings Category [ QGVAR(medLvl_Fentanyl), @@ -751,23 +715,6 @@ PREP_RECOMPILE_END; [0.1, 10, 7, 1], true ] call CBA_Settings_fnc_init; -[ - QGVAR(chromatic_aberration_checkbox_fentanyl), - "CHECKBOX", - [LLSTRING(SETTING_Chromatic_Aberration_Checkbox_Fentanyl), LLSTRING(SETTING_Chromatic_Aberration_Checkbox_Fentanyl_DESC)], - [CBA_SETTINGS_CAT, LSTRING(SubCategory_Fentanyl)], - [true], - true -] call CBA_Settings_fnc_init; - -[ - QGVAR(chromatic_aberration_slider_fentanyl), - "SLIDER", - [LLSTRING(SETTING_Chromatic_Aberration_Slider_Fentanyl), LLSTRING(SETTING_Chromatic_Aberration_Slider_Fentanyl_DESC)], - [CBA_SETTINGS_CAT, LSTRING(SubCategory_Fentanyl)], - [0.1, 10, 1, 1], - true -] call CBA_Settings_fnc_init; //Nalbuphine Settings Category [ diff --git a/addons/pharma/functions/fnc_medicationLocal.sqf b/addons/pharma/functions/fnc_medicationLocal.sqf index c7fad8782..36dc0315d 100644 --- a/addons/pharma/functions/fnc_medicationLocal.sqf +++ b/addons/pharma/functions/fnc_medicationLocal.sqf @@ -42,16 +42,11 @@ if !(ACEGVAR(medical_treatment,advancedMedication)) exitWith { if !(_sedated) then { [QACEGVAR(medical,WakeUp), _patient] call CBA_fnc_localEvent; }; - - [_patient, -0.15] call FUNC(alphaAction); }; case "EpinephrineIV": { private _sedated = _patient getVariable [QEGVAR(surgery,sedated), false]; if !(_sedated) then { [QACEGVAR(medical,WakeUp), _patient] call CBA_fnc_localEvent; - }; - - [_patient, -0.30] call FUNC(alphaAction); }; case "Painkillers": { private _painSuppress = GET_PAIN_SUPPRESS(_patient); @@ -95,6 +90,7 @@ private _incompatibleMedication = GET_ARRAY(_medicationConfig >> "incompatibleMe private _alphaFactor = GET_NUMBER(_medicationConfig >> "alphaFactor",getNumber (_defaultConfig >> "alphaFactor")); private _maxRelief = GET_NUMBER(_medicationConfig >> "maxRelief",getNumber (_defaultConfig >> "maxRelief")); private _opioidRelief = GET_NUMBER(_medicationConfig >> "opioidRelief",getNumber (_defaultConfig >> "opioidRelief")); +private _opioidEffect = GET_NUMBER(_medicationConfig >> "opioidEffect",getNumber (_defaultConfig >> "opioidEffect")); private _heartRate = GET_HEART_RATE(_patient); private _hrIncrease = [_hrIncreaseLow, _hrIncreaseNormal, _hrIncreaseHigh] select (floor ((0 max _heartRate min 110) / 55)); @@ -111,13 +107,12 @@ if (_maxRelief > 0) then { // Adjust the medication effects and add the medication to the list TRACE_3("adjustments",_heartRateChange,_painReduce,_viscosityChange); -[_patient, _className, _timeTillMaxEffect, _timeInSystem, _heartRateChange, _painReduce, _viscosityChange] call ACEFUNC(medical_status,addMedicationAdjustment); +[_patient, _className, _timeTillMaxEffect, _timeInSystem, _heartRateChange, _painReduce, _viscosityChange, _alphaFactor, _opioidEffect] call EFUNC(vitals,addMedicationAdjustment); // Check for medication compatiblity [_patient, _className, _maxDose, _maxDoseDeviation, _incompatibleMedication] call ACEFUNC(medical_treatment,onMedicationUsage); //Change Alpha Factor -[_patient, _alphaFactor] call FUNC(alphaAction); if ([QGVAR(AMS_Enabled)] call CBA_settings_fnc_get) then { private _medicationParts = (_className splitString "_"); diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_AmiodaroneLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_AmiodaroneLocal.sqf index bc05537df..72f555905 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_AmiodaroneLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_AmiodaroneLocal.sqf @@ -14,6 +14,7 @@ * * Public: No */ +params ["_patient"]; private _random = random 3; if (_random <= 1) then { diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_KetamineSedationLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_KetamineLocal.sqf similarity index 100% rename from addons/pharma/functions/fnc_treatmentAdvanced_KetamineSedationLocal.sqf rename to addons/pharma/functions/fnc_treatmentAdvanced_KetamineLocal.sqf From 440b569f327797fe8656c1ab9113536004672446 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Fri, 11 Oct 2024 23:19:02 -0700 Subject: [PATCH 101/149] Fix --- addons/pharma/XEH_PREP.hpp | 1 - addons/pharma/functions/fnc_medicationLocal.sqf | 8 ++++---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/addons/pharma/XEH_PREP.hpp b/addons/pharma/XEH_PREP.hpp index d6c614442..1d062aca7 100644 --- a/addons/pharma/XEH_PREP.hpp +++ b/addons/pharma/XEH_PREP.hpp @@ -1,4 +1,3 @@ -PREP(alphaAction); PREP(applyIV); PREP(checkIV); PREP(clotWound); diff --git a/addons/pharma/functions/fnc_medicationLocal.sqf b/addons/pharma/functions/fnc_medicationLocal.sqf index 36dc0315d..8c3286023 100644 --- a/addons/pharma/functions/fnc_medicationLocal.sqf +++ b/addons/pharma/functions/fnc_medicationLocal.sqf @@ -47,6 +47,7 @@ if !(ACEGVAR(medical_treatment,advancedMedication)) exitWith { private _sedated = _patient getVariable [QEGVAR(surgery,sedated), false]; if !(_sedated) then { [QACEGVAR(medical,WakeUp), _patient] call CBA_fnc_localEvent; + }; }; case "Painkillers": { private _painSuppress = GET_PAIN_SUPPRESS(_patient); @@ -112,7 +113,6 @@ TRACE_3("adjustments",_heartRateChange,_painReduce,_viscosityChange); // Check for medication compatiblity [_patient, _className, _maxDose, _maxDoseDeviation, _incompatibleMedication] call ACEFUNC(medical_treatment,onMedicationUsage); -//Change Alpha Factor if ([QGVAR(AMS_Enabled)] call CBA_settings_fnc_get) then { private _medicationParts = (_className splitString "_"); @@ -133,9 +133,9 @@ if ([QGVAR(AMS_Enabled)] call CBA_settings_fnc_get) then { }; } else { - diag_log format ["Unexpected _className format: %1", _className]; + diag_log format ["Unexpected _className format: %1", _className]; }; - } else { +} else { if (_className in ["Lorazepam","Ketamine","EACA","TXA","Atropine","Amiodarone","Flumazenil"]) then { [format ["kat_pharma_%1Local", toLower _className], [_patient, _bodyPart], _patient] call CBA_fnc_targetEvent; @@ -144,4 +144,4 @@ if ([QGVAR(AMS_Enabled)] call CBA_settings_fnc_get) then { if (_className in ["Fentanyl","Morphine","Nalbuphine"]) then { [format ["kat_pharma_%1Local", toLower _className], [_patient, _bodyPart, _opioidRelief], _patient] call CBA_fnc_targetEvent; }; -}; \ No newline at end of file +}; From d971a2035fef1f4bd0eb787b6132c06318213338 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Fri, 11 Oct 2024 23:39:00 -0700 Subject: [PATCH 102/149] Wee --- addons/gui/gui.hpp | 23 +++++++++++------------ addons/pharma/XEH_PREP.hpp | 1 - 2 files changed, 11 insertions(+), 13 deletions(-) diff --git a/addons/gui/gui.hpp b/addons/gui/gui.hpp index ce5b0dc26..0f3c42374 100644 --- a/addons/gui/gui.hpp +++ b/addons/gui/gui.hpp @@ -665,9 +665,9 @@ class ACE_Medical_Menu { class SyringeOpenButton: RscButton { idc = IDC_SYRINGE_OPEN; text = CSTRING(OpenSyringeMenu); - x = QUOTE(POS_X(23.7)); - y = QUOTE(POS_Y(0)); - w = QUOTE(POS_W(4.4)); + x = QUOTE(POS_X(39.6)); + y = QUOTE(POS_Y(4.9)); + w = QUOTE(POS_W(2)); h = QUOTE(POS_H(1)); colorBackgroundDisabled[] = GUI_BCG_COLOR; colorBackground[] = GUI_BCG_COLOR; @@ -703,7 +703,6 @@ class ACE_Medical_Menu { shadow = "false"; }; }; - class SyringeTypeTitle: RscStructuredText { idc = IDC_SYRINGE_TYPE_TITLE; // LOOK HERE text = CSTRING(SyringeTitleList); @@ -720,7 +719,7 @@ class ACE_Medical_Menu { font = "RobotoCondensed"; shadow = "false"; }; - }; + }; class SyringeList: RscListBox { idc = IDC_SYRINGE_TYPE_LIST; // LOOK HERE x = QUOTE(POS_X(3.8)); @@ -728,7 +727,7 @@ class ACE_Medical_Menu { w = QUOTE(POS_W(8)); h = QUOTE(POS_H(2)); show = 1; - }; + }; class MedicationTypeTitle: RscStructuredText { idc = IDC_MEDICATION_TYPE_TITLE; // LOOK HERE text = CSTRING(MedicationTitleList); @@ -744,8 +743,8 @@ class ACE_Medical_Menu { color = "#E5E5E5"; font = "RobotoCondensed"; shadow = "false"; + }; }; - }; class MedicationList: RscListBox { idc = IDC_MEDICATION_TYPE_LIST; // LOOK HERE x = QUOTE(POS_X(3.8)); @@ -753,7 +752,7 @@ class ACE_Medical_Menu { w = QUOTE(POS_W(8)); h = QUOTE(POS_H(6)); show = 1; - }; + }; class DoseTitle: RscStructuredText { idc = IDC_MEDICATION_DOSE_TITLE; // LOOK HERE text = CSTRING(DoseTitle); @@ -769,8 +768,8 @@ class ACE_Medical_Menu { color = "#E5E5E5"; font = "RobotoCondensed"; shadow = "false"; + }; }; - }; class DoseList: RscCombo { idc = IDC_MEDICATION_DOSE_COMBO; // LOOK HERE x = QUOTE(POS_X(3.8)); @@ -795,9 +794,9 @@ class ACE_Medical_Menu { { text = CSTRING(DoseHigh); value = 3; + }; }; }; - }; class PrepSyringe: RscButton { idc = IDC_MEDICATION_PREP_SYRINGE; // LOOK HERE text = CSTRING(PrepSyringe); @@ -817,7 +816,7 @@ class ACE_Medical_Menu { font = "RobotoCondensed"; shadow = "false"; }; - }; - }; + }; + }; }; }; diff --git a/addons/pharma/XEH_PREP.hpp b/addons/pharma/XEH_PREP.hpp index 1d062aca7..c93e704b2 100644 --- a/addons/pharma/XEH_PREP.hpp +++ b/addons/pharma/XEH_PREP.hpp @@ -50,4 +50,3 @@ PREP(prepareSyringe); PREP(checkIVType); PREP(ivCondition); PREP(AMSCheck); -PREP(getAllMedicationsCount) \ No newline at end of file From 4b684664c6300870fa9f5a89eeb56fb872fda9ea Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Sat, 12 Oct 2024 02:49:02 -0700 Subject: [PATCH 103/149] Blood fix --- addons/gui/gui.hpp | 4 ++-- addons/pharma/ACE_Medical_Treatment_Actions.hpp | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/addons/gui/gui.hpp b/addons/gui/gui.hpp index 0f3c42374..eadc56c9f 100644 --- a/addons/gui/gui.hpp +++ b/addons/gui/gui.hpp @@ -167,7 +167,6 @@ class ACE_Medical_Menu { shadow = "true"; }; }; - }; class SYRINGEBackground: IVFlowBackground { idc = IDC_SYRINGE_BACKGROUND; // LOOK HERE x = QUOTE(POS_X(39.6)); @@ -187,6 +186,7 @@ class ACE_Medical_Menu { color = "#E5E5E5"; font = "RobotoCondensed"; shadow = "true"; + }; }; }; }; @@ -667,7 +667,7 @@ class ACE_Medical_Menu { text = CSTRING(OpenSyringeMenu); x = QUOTE(POS_X(39.6)); y = QUOTE(POS_Y(4.9)); - w = QUOTE(POS_W(2)); + w = QUOTE(POS_W(3)); h = QUOTE(POS_H(1)); colorBackgroundDisabled[] = GUI_BCG_COLOR; colorBackground[] = GUI_BCG_COLOR; diff --git a/addons/pharma/ACE_Medical_Treatment_Actions.hpp b/addons/pharma/ACE_Medical_Treatment_Actions.hpp index 8b1fcbde5..4960324bd 100644 --- a/addons/pharma/ACE_Medical_Treatment_Actions.hpp +++ b/addons/pharma/ACE_Medical_Treatment_Actions.hpp @@ -16,7 +16,7 @@ class ACE_Medical_Treatment_Actions { class BloodIV_500: BloodIV { callbackSuccess = "[_medic, _patient, _bodyPart, _className, _itemUser, _usedItem] call ace_medical_treatment_fnc_ivBag; [_patient, -400, 8] call kat_pharma_fnc_fluid;"; }; - class BloodIV_350: BloodIV { + class BloodIV_250: BloodIV { callbackSuccess = "[_medic, _patient, _bodyPart, _className, _itemUser, _usedItem] call ace_medical_treatment_fnc_ivBag; [_patient, -200, 4] call kat_pharma_fnc_fluid;"; }; class SalineIV: BloodIV { @@ -25,7 +25,7 @@ class ACE_Medical_Treatment_Actions { class SalineIV_500: SalineIV { callbackSuccess = "[_medic, _patient, _bodyPart, _className, _itemUser, _usedItem] call ace_medical_treatment_fnc_ivBag; [_patient, 350, 0] call kat_pharma_fnc_fluid;"; }; - class SalineIV_350: SalineIV { + class SalineIV_250: SalineIV { callbackSuccess = "[_medic, _patient, _bodyPart, _className, _itemUser, _usedItem] call ace_medical_treatment_fnc_ivBag; [_patient, 150, 0] call kat_pharma_fnc_fluid;"; }; class PlasmaIV: BloodIV { @@ -34,7 +34,7 @@ class ACE_Medical_Treatment_Actions { class PlasmaIV_500: PlasmaIV { callbackSuccess = "[_medic, _patient, _bodyPart, _className, _itemUser, _usedItem] call ace_medical_treatment_fnc_ivBag; [_patient, -250, 10] call kat_pharma_fnc_fluid;"; }; - class PlasmaIV_350: PlasmaIV { + class PlasmaIV_250: PlasmaIV { callbackSuccess = "[_medic, _patient, _bodyPart, _className, _itemUser, _usedItem] call ace_medical_treatment_fnc_ivBag; [_patient, -100, 5] call kat_pharma_fnc_fluid;"; }; class Epinephrine: Morphine { From abd729a1db68270cf67e176eb140799a4ca6f6f6 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Sat, 12 Oct 2024 02:50:48 -0700 Subject: [PATCH 104/149] Weight changes --- addons/pharma/CfgWeapons.hpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/addons/pharma/CfgWeapons.hpp b/addons/pharma/CfgWeapons.hpp index c182bb03f..1e0dd9c89 100644 --- a/addons/pharma/CfgWeapons.hpp +++ b/addons/pharma/CfgWeapons.hpp @@ -231,7 +231,7 @@ class CfgWeapons { descriptionShort = CSTRING(Lorazepam_DescShort); ACE_isMedicalItem = 1; class ItemInfo: CBA_MiscItem_ItemInfo { - mass = 0.2; + mass = 0.5; }; }; class kat_flumazenil: ACE_ItemCore { @@ -242,7 +242,7 @@ class CfgWeapons { descriptionShort = CSTRING(Flumazenil_DescShort); ACE_isMedicalItem = 1; class ItemInfo: CBA_MiscItem_ItemInfo { - mass = 0.2; + mass = 0.5; }; }; class kat_etomidate: ACE_ItemCore { @@ -253,7 +253,7 @@ class CfgWeapons { descriptionShort = CSTRING(Etomidate_DescShort); ACE_isMedicalItem = 1; class ItemInfo: CBA_MiscItem_ItemInfo { - mass = 0.2; + mass = 0.5; }; }; class kat_epinephrineIV: ACE_ItemCore { @@ -264,7 +264,7 @@ class CfgWeapons { descriptionShort = CSTRING(EpinephrineIV_DescShort); ACE_isMedicalItem = 1; class ItemInfo: CBA_MiscItem_ItemInfo { - mass = 0.2; + mass = 0.5; }; }; class kat_morphineIV: ACE_ItemCore { @@ -275,7 +275,7 @@ class CfgWeapons { descriptionShort = CSTRING(MorphineIV_DescShort); ACE_isMedicalItem = 1; class ItemInfo: CBA_MiscItem_ItemInfo { - mass = 0.2; + mass = 0.5; }; }; class kat_adenosineIV: ACE_ItemCore { @@ -286,7 +286,7 @@ class CfgWeapons { descriptionShort = CSTRING(AdenosineIV_DescShort); ACE_isMedicalItem = 1; class ItemInfo: CBA_MiscItem_ItemInfo { - mass = 0.2; + mass = 0.5; }; }; class kat_coag_sense: ACE_ItemCore { From 136257fcbd98e84bcba91ba3036b880015ed02c3 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Sat, 12 Oct 2024 07:21:06 -0700 Subject: [PATCH 105/149] Motherforking misplaced }; --- addons/gui/gui.hpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/addons/gui/gui.hpp b/addons/gui/gui.hpp index eadc56c9f..8f316b4d1 100644 --- a/addons/gui/gui.hpp +++ b/addons/gui/gui.hpp @@ -189,7 +189,6 @@ class ACE_Medical_Menu { }; }; }; - }; class controls { class IVbutton: RscButton { idc = IDC_IV_FLOW_SHOWBUTTON; // LOOK HERE @@ -665,9 +664,9 @@ class ACE_Medical_Menu { class SyringeOpenButton: RscButton { idc = IDC_SYRINGE_OPEN; text = CSTRING(OpenSyringeMenu); - x = QUOTE(POS_X(39.6)); - y = QUOTE(POS_Y(4.9)); - w = QUOTE(POS_W(3)); + x = QUOTE(POS_X(19.4)); + y = QUOTE(POS_Y(0)); + w = QUOTE(POS_W(4.4)); h = QUOTE(POS_H(1)); colorBackgroundDisabled[] = GUI_BCG_COLOR; colorBackground[] = GUI_BCG_COLOR; @@ -818,5 +817,6 @@ class ACE_Medical_Menu { }; }; }; + }; }; -}; +}; \ No newline at end of file From 984b07e99d337d0d390f241a02d953a960cf10d5 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Sat, 12 Oct 2024 07:37:50 -0700 Subject: [PATCH 106/149] WEEE --- addons/gui/gui.hpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/addons/gui/gui.hpp b/addons/gui/gui.hpp index 8f316b4d1..2c22bd343 100644 --- a/addons/gui/gui.hpp +++ b/addons/gui/gui.hpp @@ -664,7 +664,7 @@ class ACE_Medical_Menu { class SyringeOpenButton: RscButton { idc = IDC_SYRINGE_OPEN; text = CSTRING(OpenSyringeMenu); - x = QUOTE(POS_X(19.4)); + x = QUOTE(POS_X(23.6)); y = QUOTE(POS_Y(0)); w = QUOTE(POS_W(4.4)); h = QUOTE(POS_H(1)); @@ -686,7 +686,7 @@ class ACE_Medical_Menu { w = QUOTE(POS_W(9.2)); h = QUOTE(POS_H(16.5)); class controls { - class SyringeCloseButton: RscButton { + class SyringeCloseButton: RscButton { idc = IDC_SYRINGE_CLOSE; text = CSTRING(CloseMenu); x = QUOTE(POS_X(10.3)); @@ -701,7 +701,7 @@ class ACE_Medical_Menu { font = "RobotoCondensed"; shadow = "false"; }; - }; + }; class SyringeTypeTitle: RscStructuredText { idc = IDC_SYRINGE_TYPE_TITLE; // LOOK HERE text = CSTRING(SyringeTitleList); From 5dd8661c5587298258e0b33d8c39c4761a80ccce Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Sat, 12 Oct 2024 07:49:08 -0700 Subject: [PATCH 107/149] weee --- addons/gui/functions/fnc_onMenuOpen.sqf | 2 -- addons/gui/functions/fnc_openSyringeMenu.sqf | 4 ++- .../pharma/ACE_Medical_Treatment_Actions.hpp | 12 ++++---- addons/pharma/CfgWeapons.hpp | 10 +++---- addons/pharma/stringtable.xml | 28 +++++++++---------- 5 files changed, 28 insertions(+), 28 deletions(-) diff --git a/addons/gui/functions/fnc_onMenuOpen.sqf b/addons/gui/functions/fnc_onMenuOpen.sqf index 54862ae74..3b3a1e1ad 100644 --- a/addons/gui/functions/fnc_onMenuOpen.sqf +++ b/addons/gui/functions/fnc_onMenuOpen.sqf @@ -107,8 +107,6 @@ if (ACEGVAR(medical_gui,target) == ACE_player) then { _ctrl ctrlSetText QACEPATHTOF(medical_gui,data\categories\toggle_to_self.paa); _ctrl ctrlSetTooltip ACELLSTRING(medical_gui,ToggleToSelf); }; -[] call FUNC(updateMedications); -[] call FUNC(updateSyringes); private _syringeMenuStatus = player getVariable ["SyringeMenu", false]; if (_syringeMenuStatus == true) then { [] call FUNC(openSyringeMenu); diff --git a/addons/gui/functions/fnc_openSyringeMenu.sqf b/addons/gui/functions/fnc_openSyringeMenu.sqf index e497a2ec9..4f162914c 100644 --- a/addons/gui/functions/fnc_openSyringeMenu.sqf +++ b/addons/gui/functions/fnc_openSyringeMenu.sqf @@ -1,7 +1,7 @@ #include "..\script_component.hpp" /* * Author: Cplhardcore - * opens the syringe menu + * opens the syringe menu and populates it * * Arguments: * none @@ -14,6 +14,8 @@ * * Public: No */ +[] call FUNC(updateMedications); +[] call FUNC(updateSyringes); [{player setVariable ["SyringeMenu", true]; ctrlShow [71300, true]; ctrlShow [71301, true]; diff --git a/addons/pharma/ACE_Medical_Treatment_Actions.hpp b/addons/pharma/ACE_Medical_Treatment_Actions.hpp index 4960324bd..fd576d13e 100644 --- a/addons/pharma/ACE_Medical_Treatment_Actions.hpp +++ b/addons/pharma/ACE_Medical_Treatment_Actions.hpp @@ -886,20 +886,20 @@ class ACE_Medical_Treatment_Actions { sounds[] = {}; }; class syringe_morphineIV_10ml_1: syringe_TXA_10ml_1 { - displayName = CSTRING(inject_morphine_IM_1); - displayNameProgress = CSTRING(injecting_morphine_IM_1); + displayName = CSTRING(inject_morphineIV_IM_1); + displayNameProgress = CSTRING(injecting_morphineIV_IM_1); allowedSelections[] = {"LeftArm", "RightArm", "LeftLeg", "RightLeg"}; allowSelfTreatment = 1; medicRequired = QGVAR(medLvl_morphineIM); treatmentTime = QGVAR(treatmentTime_morphineIM); - items[] = {"kat_syringe_morphine_10ml_1"}; + items[] = {"kat_syringe_morphineIV_10ml_1"}; callbackSuccess = QFUNC(medication); sounds[] = {}; }; class syringe_morphineIV_10ml_3: syringe_morphineIV_10ml_1 { - displayName = CSTRING(inject_morphine_IM_3); - displayNameProgress = CSTRING(injecting_morphine_IM_3); - items[] = {"kat_syringe_morphine_10ml_3"}; + displayName = CSTRING(inject_morphineIV_IM_3); + displayNameProgress = CSTRING(injecting_morphineIV_IM_3); + items[] = {"kat_syringe_morphineIV_10ml_3"}; callbackSuccess = QFUNC(medication); sounds[] = {}; }; diff --git a/addons/pharma/CfgWeapons.hpp b/addons/pharma/CfgWeapons.hpp index 1e0dd9c89..bee8bb30d 100644 --- a/addons/pharma/CfgWeapons.hpp +++ b/addons/pharma/CfgWeapons.hpp @@ -324,7 +324,7 @@ class CfgWeapons { }; class kat_syringe_morphineIV_10ml_1: ACE_ItemCore { scope = 1; - displayName = CSTRING(Syringe_morphine_10_1_Display); + displayName = CSTRING(Syringe_morphineIV_10_1_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; descriptionShort = CSTRING(Syringe_morphineIV_10_1_DescShort); @@ -731,10 +731,10 @@ class CfgWeapons { }; class kat_syringe_morphineIV_5ml_1: ACE_ItemCore { scope = 1; - displayName = CSTRING(Syringe_morphine_5_1_Display); + displayName = CSTRING(Syringe_morphineIV_5_1_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; - descriptionShort = CSTRING(Syringe_morphine_5_1_DescShort); + descriptionShort = CSTRING(Syringe_morphineIV_5_1_DescShort); ACE_isMedicalItem = 1; class ItemInfo: CBA_MiscItem_ItemInfo { mass = 1; @@ -742,10 +742,10 @@ class CfgWeapons { }; class kat_syringe_morphineIV_5ml_3: ACE_ItemCore { scope = 1; - displayName = CSTRING(Syringe_morphine_5_3_Display); + displayName = CSTRING(Syringe_morphineIV_5_3_Display); picture = QPATHTOF(ui\syringe_item.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; - descriptionShort = CSTRING(Syringe_morphine_5_3_DescShort); + descriptionShort = CSTRING(Syringe_morphineIV_5_3_DescShort); ACE_isMedicalItem = 1; class ItemInfo: CBA_MiscItem_ItemInfo { mass = 1; diff --git a/addons/pharma/stringtable.xml b/addons/pharma/stringtable.xml index ad850c693..787075945 100644 --- a/addons/pharma/stringtable.xml +++ b/addons/pharma/stringtable.xml @@ -4188,16 +4188,16 @@ 5ml Syringe loaded with 15 grams of EACA - + 5ml Syringe/10mg Morphine - + 5ml Syringe loaded with 10mg of Morphine - + 5ml Syringe/20mg Morphine - + 5ml Syringe loaded with 20mg of Morphine @@ -4236,10 +4236,10 @@ Pushing 15g EACA IV - + Pushing 10mg Morphine IV - + Pushing 20mg Morphine IV @@ -4443,10 +4443,10 @@ Inject 20mg Nalbuphine IM - + Inject 10mg Morphine IM - + Inject 20mg Morphine IM @@ -4455,10 +4455,10 @@ Injecting 2g TXA IM - + Injecting 10mg Morphine IM - + Injecting 20mg Morphine IM @@ -4482,16 +4482,16 @@ Injecting 20mg Nalbuphine IM - + 10ml Syringe/10mg Morphine - + 10ml Syringe loaded with 10mg of Morphine - + 10ml Syringe/20mg Morphine - + 10ml Syringe loaded with 20mg of Morphine From 1fc1af46934c8f739066c549480c8f58def8c6c0 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Sat, 12 Oct 2024 08:08:40 -0700 Subject: [PATCH 108/149] Update fnc_prepareSyringe.sqf --- addons/pharma/functions/fnc_prepareSyringe.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/pharma/functions/fnc_prepareSyringe.sqf b/addons/pharma/functions/fnc_prepareSyringe.sqf index 4022c2d11..77214ee8f 100644 --- a/addons/pharma/functions/fnc_prepareSyringe.sqf +++ b/addons/pharma/functions/fnc_prepareSyringe.sqf @@ -16,7 +16,7 @@ * None * * Example: - * [player, player, ["TXA", "1", "5ml"]] call kat_pharma_fnc_prepareSyringe; + * [player, ["TXA", "5ml", "1"]] call kat_pharma_fnc_prepareSyringe; * * Public: No */ From fb93a59d7853594d965d7992910332f40dfb6728 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Sat, 12 Oct 2024 21:20:17 -0700 Subject: [PATCH 109/149] Update launch.toml --- .hemtt/launch.toml | 1 - 1 file changed, 1 deletion(-) diff --git a/.hemtt/launch.toml b/.hemtt/launch.toml index 90a3945eb..bd40b67c6 100644 --- a/.hemtt/launch.toml +++ b/.hemtt/launch.toml @@ -10,5 +10,4 @@ parameters = [ "-showScriptErrors", "-debug", "-filePatching", - "-mod=@ace" ] \ No newline at end of file From 8616b7ccb8aed9c4c1d2d1488df288cfb9acc490 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Sat, 12 Oct 2024 21:21:30 -0700 Subject: [PATCH 110/149] Update launch.toml --- .hemtt/launch.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/.hemtt/launch.toml b/.hemtt/launch.toml index bd40b67c6..c708d334b 100644 --- a/.hemtt/launch.toml +++ b/.hemtt/launch.toml @@ -1,6 +1,7 @@ [default] workshop = [ "450814997", # CBA_A3's Workshop ID + "463939057", # ACE3's Workshop ID "2369477168", # Advanced Developer Tools's Workshop ID "1779063631", # ZEN ] From 1cb8672d6892a3b30561ada8ae86ebd41ac8eded Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Wed, 16 Oct 2024 04:54:39 -0700 Subject: [PATCH 111/149] weeehoo --- addons/pharma/ACE_Medical_Treatment.hpp | 2 +- addons/pharma/CfgFunctions.hpp | 3 ++ addons/pharma/XEH_PREP.hpp | 2 +- addons/pharma/functions/fnc_applyIV.sqf | 13 +++----- addons/pharma/functions/fnc_checkIVType.sqf | 2 +- addons/pharma/functions/fnc_clotWound.sqf | 32 +++++++++++-------- addons/pharma/functions/fnc_coagRegen.sqf | 26 +++++++++------ addons/pharma/functions/fnc_ivCondition.sqf | 2 +- .../fnc_treatmentAdvanced_EACALocal.sqf | 15 ++++++--- .../fnc_treatmentAdvanced_TXALocal.sqf | 17 ++++++---- .../functions/fnc_closedReductionLocal.sqf | 13 +++----- 11 files changed, 72 insertions(+), 55 deletions(-) diff --git a/addons/pharma/ACE_Medical_Treatment.hpp b/addons/pharma/ACE_Medical_Treatment.hpp index 509bbd01a..a48228fff 100644 --- a/addons/pharma/ACE_Medical_Treatment.hpp +++ b/addons/pharma/ACE_Medical_Treatment.hpp @@ -723,7 +723,7 @@ class ACE_ADDON(Medical_Treatment) { timeTillMaxEffect = 60; viscosityChange = -10; onOverDose = ""; - opioidRelief = 1.5; + opioidRelief = 1.1; opioidEffect = 0.17; }; class syringe_fentanyl_10ml_3 { diff --git a/addons/pharma/CfgFunctions.hpp b/addons/pharma/CfgFunctions.hpp index ab92d6775..1622d0d79 100644 --- a/addons/pharma/CfgFunctions.hpp +++ b/addons/pharma/CfgFunctions.hpp @@ -17,6 +17,9 @@ class CfgFunctions { class tourniquetRemove { file = QPATHTOF(functions\fnc_tourniquetRemove.sqf); }; + class ivBagLocal { + file = QPATHTOF(functions\fnc_ivBagLocal.sqf); + }; }; }; }; diff --git a/addons/pharma/XEH_PREP.hpp b/addons/pharma/XEH_PREP.hpp index c93e704b2..dc60b7c80 100644 --- a/addons/pharma/XEH_PREP.hpp +++ b/addons/pharma/XEH_PREP.hpp @@ -49,4 +49,4 @@ PREP(vehicleCheckDialysis); PREP(prepareSyringe); PREP(checkIVType); PREP(ivCondition); -PREP(AMSCheck); +PREP(AMSCheck); \ No newline at end of file diff --git a/addons/pharma/functions/fnc_applyIV.sqf b/addons/pharma/functions/fnc_applyIV.sqf index b6352e35c..5cbf11e65 100644 --- a/addons/pharma/functions/fnc_applyIV.sqf +++ b/addons/pharma/functions/fnc_applyIV.sqf @@ -69,13 +69,12 @@ switch (_usedItem) do { _IVrate set [_partIndex, 0.4]; _patient setVariable [QGVAR(IV), _IVarray, true]; _patient setVariable [QGVAR(IVrate), _IVrate, true]; - private _medStack = _patient call ACEFUNC(medical_treatment,getAllMedication); - private _medsToCheck = ["fentanyl", "ketamine", "nalbuphine", "morphine", "morphineIV"]; + private _medStack = _patient call ACEFUNC(medical_treatment,getAllMedicationCount); + private _medsToCheck = ["fentanyl", "ketamine", "nalbuphine", "morphine"]; private _fentanylEffectiveness = 0; private _ketamineEffectiveness = 0; private _nalbuphineEffectiveness = 0; private _morphineEffectiveness = 0; - private _morphineIVEffectiveness = 0; { private _medName = toLower (_x select 0); private _effectiveness = _x select 2; @@ -89,18 +88,14 @@ switch (_usedItem) do { _nalbuphineEffectiveness = _nalbuphineEffectiveness max _effectiveness; }; if ("morphine" in _medName) then { - _nalbuphineEffectiveness = _nalbuphineEffectiveness max _effectiveness; - }; - if ("morphineIV" in _medName) then { - _nalbuphineEffectiveness = _nalbuphineEffectiveness max _effectiveness; + _morphineEffectiveness = _morphineEffectiveness max _effectiveness; }; } forEach _medStack; if ( _fentanylEffectiveness <= 0.8 && _ketamineEffectiveness <= 0.8 && _nalbuphineEffectiveness <= 0.8 && - _morphineEffectiveness <= 0.8 && - _morphineIVEffectiveness <= 0.8 + _morphineEffectiveness <= 0.8 ) then { [_patient, [0.6, 0.7, 0.8] select (floor random 3)] call ACEFUNC(medical_status,adjustPainLevel); }; diff --git a/addons/pharma/functions/fnc_checkIVType.sqf b/addons/pharma/functions/fnc_checkIVType.sqf index f376a1f5c..94137c2ef 100644 --- a/addons/pharma/functions/fnc_checkIVType.sqf +++ b/addons/pharma/functions/fnc_checkIVType.sqf @@ -22,7 +22,7 @@ * Public: No */ -params ["_medic", "_patient", "_bodyPart"]; +params ["_patient", "_bodyPart"]; private _partIndex = ALL_BODY_PARTS find toLower _bodyPart; private _IVarray = _patient getVariable [QGVAR(IV), [0,0,0,0,0,0]]; diff --git a/addons/pharma/functions/fnc_clotWound.sqf b/addons/pharma/functions/fnc_clotWound.sqf index d003b13c6..950f8ddc2 100644 --- a/addons/pharma/functions/fnc_clotWound.sqf +++ b/addons/pharma/functions/fnc_clotWound.sqf @@ -20,7 +20,7 @@ params ["_unit"]; if !(GVAR(coagulation)) exitWith {}; private _fnc_clotWound = { - params ["_unit", "_bodyPart", "_wounds", "_countTXA", "_countEACA"]; + params ["_unit", "_bodyPart", "_wounds", "_eacaEffectiveness", "_txaEffectiveness"]; { _x params ["_woundClassID", "_amountOf", "_bleeding", "_damage"]; @@ -62,10 +62,10 @@ private _fnc_clotWound = { if (_amountOf * _bleeding > 0) exitWith { - if ((_countTXA > 0.3 || _countTXAiV51 > 0.3 || _countTXAiV52 > 0.3 || _countTXAiM101 > 0.3 || _countTXAiM103 > 0.3) || (_countEACA > 0.3 || _countEACAIV51 > 0.3 || _countEACAIV52 > 0.3)) then { + if ((_eacaEffectiveness > 0.3 || _txaEffectiveness > 0.3)) then { _logString = LSTRING(coagulation_Bandaged_TXA); - if ((_countTXA > 0.3 || _countTXAiV51 > 0.3 || _countTXAiV52 > 0.3 || _countTXAiM101 > 0.3 || _countTXAiM103 > 0.3) && (_countEACA > 0.3 || _countEACAIV51 > 0.3 || _countEACAIV52 > 0.3)) exitWith { // If TXA & EACA are in system at same time use EACA bandage + if (_eacaEffectiveness > 0.3 && _txaEffectiveness > 0.3) exitWith { // If TXA & EACA are in system at same time use EACA bandage _woundClotTime = round (_woundClotTime / 3 * 2); _bandageToUse = _bandageToUse + "EACA"; }; @@ -113,14 +113,20 @@ private _fnc_clotWound = { private _openWounds = _unit getVariable [VAR_OPEN_WOUNDS, createHashMap]; private _pulse = _unit getVariable [VAR_HEART_RATE, 80]; private _coagulationFactor = _unit getVariable [QGVAR(coagulationFactor), 30]; - private _countTXA = [_unit, "TXA", false] call ACEFUNC(medical_status,getMedicationCount); - private _countTXAiV51= [_patient, "syringe_kat_txa_5ml_1", false] call ACEFUNC(medical_status,getMedicationCount); - private _countTXAiV53 = [_patient, "syringe_kat_txa_5ml_3", false] call ACEFUNC(medical_status,getMedicationCount); - private _countTXAiM101 = [_patient, "syringe_kat_txa_10ml_1", false] call ACEFUNC(medical_status,getMedicationCount); - private _countTXAiM103 = [_patient, "syringe_kat_txa_10ml_3", false] call ACEFUNC(medical_status,getMedicationCount); - private _countEACA = [_unit, "EACA", false] call ACEFUNC(medical_status,getMedicationCount); - private _countEACAIV51 = [_patient, "syringe_kat_eaca_5ml_1", false] call ACEFUNC(medical_status,getMedicationCount); - private _countEACAIV53 = [_patient, "syringe_kat_eaca_5ml_3", false] call ACEFUNC(medical_status,getMedicationCount); + private _medStack = [_patient, false] call ACEFUNC(medical_treatment,getAllMedicationCount); + private _medsToCheck = ["TXA", "EACA"]; + private _eacaEffectiveness = 0; + private _txaEffectiveness = 0; + { + private _medName = toLower (_x select 0); + private _effectiveness = _x select 2; + if ("TXA" in _medName) then { + _txaEffectiveness = _txaEffectiveness max _effectiveness; + }; + if ("EACA" in _medName) then { + _eacaEffectiveness = _eacaEffectiveness max _effectiveness; + }; + } forEach _medStack; private _hasWoundToBandageArray = []; if (_openWounds isEqualTo createHashMap) exitWith {}; // Exit when hashmap not initialized (Will not work when hashmap is set, cause ace only changes value of "woundCount" to 0) @@ -161,11 +167,11 @@ private _fnc_clotWound = { } forEach (_openWounds get _x); // Sets array that specifies if there is a open wound that coag can bandage in body part (here for performance so that the fnc does not get called every time) if (!(GVAR(coagulation_on_all_Bodyparts)) && true in _hasWoundToBandageArray) exitWith { // Check if coag should be present on all body party simultaneously, if not use this exitWith to block next interiation of forEach - [_unit, _x, _openWounds get _x, _countTXA, _countEACA] call _fnc_clotWound; + [_unit, _x, _openWounds get _x, _eacaEffectiveness, _txaEffectiveness] call _fnc_clotWound; }; if (true in _hasWoundToBandageArray) then { // Check if there is a wound to bandage for coag, if not loop through next interiation of forEach - [_unit, _x, _openWounds get _x, _countTXA, _countEACA] call _fnc_clotWound; + [_unit, _x, _openWounds get _x, _eacaEffectiveness, _txaEffectiveness] call _fnc_clotWound; }; } forEach _shuffledKeys; }, missionNamespace getVariable [QGVAR(coagulation_time), 5], [_unit, _fnc_clotWound]] call CBA_fnc_addPerFrameHandler; diff --git a/addons/pharma/functions/fnc_coagRegen.sqf b/addons/pharma/functions/fnc_coagRegen.sqf index 810577fc2..4713743c5 100644 --- a/addons/pharma/functions/fnc_coagRegen.sqf +++ b/addons/pharma/functions/fnc_coagRegen.sqf @@ -40,14 +40,20 @@ if !(GVAR(coagulation)) exitWith {}; private _savedCoagFactors = _unit getVariable [QGVAR(coagulationSavedFactors), (_unit getVariable [QGVAR(coagulationFactor), 30])]; private _limitRegenCoagFactors = missionNamespace getVariable [QGVAR(coagulation_factor_count), 30]; private _cooldownON = _unit getVariable [QGVAR(coagulationRegenCooldown), false]; - private _countTXA = [_unit, "TXA"] call ACEFUNC(medical_status,getMedicationCount); - private _countTXAiV51= [_patient, "syringe_kat_txa_5ml_1"] call ACEFUNC(medical_status,getMedicationCount); - private _countTXAiV53 = [_patient, "syringe_kat_txa_5ml_3"] call ACEFUNC(medical_status,getMedicationCount); - private _countTXAiM101 = [_patient, "syringe_kat_txa_10ml_1"] call ACEFUNC(medical_status,getMedicationCount); - private _countTXAiM103 = [_patient, "syringe_kat_txa_10ml_3"] call ACEFUNC(medical_status,getMedicationCount); - private _countEACA = [_unit, "EACA"] call ACEFUNC(medical_status,getMedicationCount); - private _countEACAIV51 = [_patient, "syringe_kat_eaca_5ml_1"] call ACEFUNC(medical_status,getMedicationCount); - private _countEACAIV53 = [_patient, "syringe_kat_eaca_5ml_3"] call ACEFUNC(medical_status,getMedicationCount); + private _medStack = [_patient, false] call ACEFUNC(medical_treatment,getAllMedicationCount); + private _medsToCheck = ["TXA", "EACA"]; + private _eacaEffectiveness = 0; + private _txaEffectiveness = 0; + { + private _medName = toLower (_x select 0); + private _effectiveness = _x select 2; + if ("TXA" in _medName) then { + _txaEffectiveness = _txaEffectiveness max _effectiveness; + }; + if ("EACA" in _medName) then { + _eacaEffectiveness = _eacaEffectiveness max _effectiveness; + }; + } forEach _medStack; private _ammountToAdd = 1; if (_currentCoagFactors < _savedCoagFactors) exitWith { @@ -60,8 +66,8 @@ if !(GVAR(coagulation)) exitWith {}; if (_currentCoagFactors == _savedCoagFactors && _currentCoagFactors < _limitRegenCoagFactors) exitWith { - if ((_countTXA > 0 || _countTXAiV51 > 0 || _countTXAiV53 > 0 || _countTXAiM101 > 0 || _countTXAiM103 > 0) || (_countEACA > 0 || _countEACAIV51 > 0 || _countEACAIV53 > 0)) then { // If TXA or EACA are in system add more factors - if ((_countTXA > 0 || _countTXAiV51 > 0 || _countTXAiV53 > 0 || _countTXAiM101 > 0 || _countTXAiM103 > 0) && (_countEACA > 0 || _countEACAIV51 > 0 || _countEACAIV53 > 0) > 0) exitWith { + if (__eacaEffectiveness > 0.3 || _txaEffectiveness > 0.3) then { // If TXA or EACA are in system add more factors + if (_eacaEffectiveness > 0.3 && _txaEffectiveness > 0.3) exitWith { _ammountToAdd = 4; }; _ammountToAdd = 2; diff --git a/addons/pharma/functions/fnc_ivCondition.sqf b/addons/pharma/functions/fnc_ivCondition.sqf index 7a74e8f88..bfe1cc665 100644 --- a/addons/pharma/functions/fnc_ivCondition.sqf +++ b/addons/pharma/functions/fnc_ivCondition.sqf @@ -21,7 +21,7 @@ params ["_medic", "_patient", "_bodyPart"]; private _removeIV = [_medic, _patient, _bodyPart] call FUNC(removeIV); -private _ivType = [_medic, _patient, _bodyPart] call FUNC(checkIVType); +private _ivType = [_patient, _bodyPart] call FUNC(checkIVType); private _return = false; if (_removeIV == true && _ivType != 3) then { diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_EACALocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_EACALocal.sqf index 63e8d9cc7..75f92dc3f 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_EACALocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_EACALocal.sqf @@ -21,9 +21,16 @@ params ["_patient", "_bodyPart"]; private _partIndex = ALL_BODY_PARTS find toLower _bodyPart; private _IVarray = _patient getVariable [QGVAR(IV), [0,0,0,0,0,0]]; private _IVactual = _IVarray select _partIndex; -private _countEACA = [_patient, "EACA"] call ACEFUNC(medical_status,getMedicationCount); -private _countEACAIV51 = [_patient, "syringe_kat_eaca_5ml_1"] call ACEFUNC(medical_status,getMedicationCount); -private _countEACAIV53 = [_patient, "syringe_kat_eaca_5ml_3"] call ACEFUNC(medical_status,getMedicationCount); +private _medStack = [_patient, false] call ACEFUNC(medical_treatment,getAllMedicationCount); +private _medsToCheck = ["EACA"]; +private _eacaEffectiveness = 0; +{ + private _medName = toLower (_x select 0); + private _effectiveness = _x select 2; + if ("EACA" in _medName) then { + _eacaEffectiveness = _eacaEffectiveness max _effectiveness; + }; +} forEach _medStack; private _allowStack = missionNamespace getVariable [QGVAR(allowStackScript_EACA), true]; private _keepRunning = missionNamespace getVariable [QGVAR(keepScriptRunning_EACA), false]; private _cycleTime = missionNamespace getVariable [QGVAR(bandageCycleTime_EACA), 5]; @@ -51,7 +58,7 @@ if (_IVactual > 1) then { if (!(GVAR(coagulation)) || GVAR(coagulation_allow_EACA_script)) then { if (_IVactual != 5) then { - if ((_countEACA > 1 || _countEACAIV51 > 1 || _countEACAIV53 > 1)&& !(_allowStack)) exitWith {}; + if (_eacaEffectiveness > 0.3)&& !(_allowStack) exitWith {}; [{ params ["_args", "_idPFH"]; diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_TXALocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_TXALocal.sqf index b67853246..d2ce1f44a 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_TXALocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_TXALocal.sqf @@ -21,11 +21,16 @@ params ["_patient", "_bodyPart"]; private _partIndex = ALL_BODY_PARTS find toLower _bodyPart; private _IVarray = _patient getVariable [QGVAR(IV), [0,0,0,0,0,0]]; private _IVactual = _IVarray select _partIndex; -private _countTXA = [_patient, "TXA"] call ACEFUNC(medical_status,getMedicationCount); -private _countTXAiV51= [_patient, "syringe_kat_txa_5ml_1"] call ACEFUNC(medical_status,getMedicationCount); -private _countTXAiV53 = [_patient, "syringe_kat_txa_5ml_3"] call ACEFUNC(medical_status,getMedicationCount); -private _countTXAiM101 = [_patient, "syringe_kat_txa_10ml_1"] call ACEFUNC(medical_status,getMedicationCount); -private _countTXAiM103 = [_patient, "syringe_kat_txa_10ml_3"] call ACEFUNC(medical_status,getMedicationCount); +private _medStack = [_patient, false] call ACEFUNC(medical_treatment,getAllMedicationCount); +private _medsToCheck = ["TXA"]; +private _txaEffectiveness = 0; +{ + private _medName = toLower (_x select 0); + private _effectiveness = _x select 2; + if ("TXA" in _medName) then { + _txaEffectiveness = _txaEffectiveness max _effectiveness; + }; +} forEach _medStack; private _allowStack = missionNamespace getVariable [QGVAR(allowStackScript_TXA), true]; private _keepRunning = missionNamespace getVariable [QGVAR(keepScriptRunning_TXA), false]; private _cycleTime = missionNamespace getVariable [QGVAR(bandageCycleTime_TXA), 5]; @@ -54,7 +59,7 @@ if (!(GVAR(coagulation)) || GVAR(coagulation_allow_TXA_script)) then { if (_IVactual != 5) then { - if ((_countTXA > 1 || _countTXAiV51 > 1 || _countTXAiV53 > 1 || _countTXAiM101 > 1 || _countTXAiM103 > 1) && !(_allowStack)) exitWith {}; + if ((_txaEffectiveness > 0.3) && !(_allowStack)) exitWith {}; [{ params ["_args", "_idPFH"]; diff --git a/addons/surgery/functions/fnc_closedReductionLocal.sqf b/addons/surgery/functions/fnc_closedReductionLocal.sqf index 8df603351..272fb6dbf 100644 --- a/addons/surgery/functions/fnc_closedReductionLocal.sqf +++ b/addons/surgery/functions/fnc_closedReductionLocal.sqf @@ -22,13 +22,12 @@ params ["_medic", "_patient", "_bodyPart"]; private _part = ALL_BODY_PARTS find toLower _bodyPart; private _activeFracture = GET_FRACTURES(_patient); private _fractureArray = _patient getVariable [QGVAR(fractures), [0,0,0,0,0,0]]; -private _medStack = _patient call ACEFUNC(medical_treatment,getAllMedication); -private _medsToCheck = ["fentanyl", "ketamine", "nalbuphine", "morphine", "morphineIV"]; +private _medStack = _patient call ACEFUNC(medical_treatment,getAllMedicationCount); +private _medsToCheck = ["fentanyl", "ketamine", "nalbuphine", "morphine"]; private _fentanylEffectiveness = 0; private _ketamineEffectiveness = 0; private _nalbuphineEffectiveness = 0; private _morphineEffectiveness = 0; -private _morphineIVEffectiveness = 0; { private _medName = toLower (_x select 0); private _effectiveness = _x select 2; @@ -42,18 +41,14 @@ private _morphineIVEffectiveness = 0; _nalbuphineEffectiveness = _nalbuphineEffectiveness max _effectiveness; }; if ("morphine" in _medName) then { - _nalbuphineEffectiveness = _nalbuphineEffectiveness max _effectiveness; - }; - if ("morphineIV" in _medName) then { - _nalbuphineEffectiveness = _nalbuphineEffectiveness max _effectiveness; + _morphineEffectiveness = _morphineEffectiveness max _effectiveness; }; } forEach _medStack; if ( _fentanylEffectiveness <= 0.8 && _ketamineEffectiveness <= 0.8 && _nalbuphineEffectiveness <= 0.8 && - _morphineEffectiveness <= 0.8 && - _morphineIVEffectiveness <= 0.8 + _morphineEffectiveness <= 0.8 ) then { [_patient, [0.6, 0.7, 0.8] select (floor random 3)] call ACEFUNC(medical_status,adjustPainLevel); }; From a22b5c2f17abc1e0900fab0f9a914e22328d541d Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Thu, 17 Oct 2024 14:39:53 -0700 Subject: [PATCH 112/149] Small fixes --- addons/pharma/ACE_Medical_Treatment.hpp | 4 -- addons/pharma/config.cpp | 78 ++++++++++++------------- addons/pharma/weee | 6 -- 3 files changed, 39 insertions(+), 49 deletions(-) delete mode 100644 addons/pharma/weee diff --git a/addons/pharma/ACE_Medical_Treatment.hpp b/addons/pharma/ACE_Medical_Treatment.hpp index 509bbd01a..92cb9ca81 100644 --- a/addons/pharma/ACE_Medical_Treatment.hpp +++ b/addons/pharma/ACE_Medical_Treatment.hpp @@ -833,14 +833,12 @@ class ACE_ADDON(Medical_Treatment) { incompatibleMedication[] = {}; onOverDose = ""; opioidRelief = 1.3; - opioidEffect = 0.17; }; class syringe_nitroglycerin { maxDose = 9; maxDoseDeviation = 3; incompatibleMedication[] = {}; onOverDose = ""; - opioidEffect = 0.17; }; class syringe_atropineIV { maxDose = 9; @@ -860,14 +858,12 @@ class ACE_ADDON(Medical_Treatment) { incompatibleMedication[] = {}; onOverDose = ""; opioidRelief = 1.5; - opioidEffect = 0.17; }; class syringe_flumazenil { maxDose = 6; maxDoseDeviation = 3; incompatibleMedication[] = {}; onOverDose = ""; - opioidEffect = 0.17; }; class syringe_lorazepam { maxDose = 6; diff --git a/addons/pharma/config.cpp b/addons/pharma/config.cpp index 328a94c17..b2ad970aa 100644 --- a/addons/pharma/config.cpp +++ b/addons/pharma/config.cpp @@ -37,45 +37,45 @@ class CfgPatches { "kat_lorazepam", "kat_etomidate", "kat_epinephrineIV", - "kat_syringe_kat_txa_10ml_1", - "kat_syringe_kat_txa_5ml_1", - "kat_syringe_kat_txa_10ml_2", - "kat_syringe_kat_txa_5ml_2", - "kat_syringe_kat_eaca_5ml_1", - "kat_syringe_kat_eaca_5ml_2", - "kat_syringe_kat_lidocaine_10ml_1", - "kat_syringe_kat_ketamine_10ml_1", - "kat_syringe_kat_ketamine_10ml_2", - "kat_syringe_kat_fentanyl_10ml_1", - "kat_syringe_kat_fentanyl_10ml_2", - "kat_syringe_kat_nalbuphine_10ml_1", - "kat_syringe_kat_nalbuphine_10ml_2", - "kat_syringe_kat_norepinephrine_5ml_1", - "kat_syringe_kat_norepinephrine_5ml_2", - "kat_syringe_kat_phenylephrine_5ml_1", - "kat_syringe_kat_phenylephrine_5ml_2", - "kat_syringe_kat_nitroglycerin_5ml_1", - "kat_syringe_kat_nitroglycerin_5ml_2", - "kat_syringe_kat_amiodarone_5ml_1", - "kat_syringe_kat_amiodarone_5ml_2", - "kat_syringe_kat_epinephrineIV_5ml_1", - "kat_syringe_kat_epinephrineIV_5ml_2", - "kat_syringe_kat_lidocaine_5ml_1", - "kat_syringe_kat_lidocaine_5ml_2", - "kat_syringe_kat_ketamine_5ml_1", - "kat_syringe_kat_ketamine_5ml_2", - "kat_syringe_kat_fentanyl_5ml_1", - "kat_syringe_kat_fentanyl_5ml_2", - "kat_syringe_kat_nalbuphine_5ml_1", - "kat_syringe_kat_nalbuphine_5ml_2", - "kat_syringe_kat_lorazepam_5ml_1", - "kat_syringe_kat_lorazepam_5ml_2", - "kat_syringe_kat_flumazenil_5ml_1", - "kat_syringe_kat_flumazenil_5ml_2", - "kat_syringe_kat_etomidate_5ml_1", - "kat_syringe_kat_etomidate_5ml_2", - "kat_syringe_kat_epinephrineIV_5ml_1", - "kat_syringe_kat_epinephrineIV_5ml_2", + "kat_syringe_txa_10ml_1", + "kat_syringe_txa_5ml_1", + "kat_syringe_txa_10ml_2", + "kat_syringe_txa_5ml_2", + "kat_syringe_eaca_5ml_1", + "kat_syringe_eaca_5ml_2", + "kat_syringe_lidocaine_10ml_1", + "kat_syringe_ketamine_10ml_1", + "kat_syringe_ketamine_10ml_2", + "kat_syringe_fentanyl_10ml_1", + "kat_syringe_fentanyl_10ml_2", + "kat_syringe_nalbuphine_10ml_1", + "kat_syringe_nalbuphine_10ml_2", + "kat_syringe_norepinephrine_5ml_1", + "kat_syringe_norepinephrine_5ml_2", + "kat_syringe_phenylephrine_5ml_1", + "kat_syringe_phenylephrine_5ml_2", + "kat_syringe_nitroglycerin_5ml_1", + "kat_syringe_nitroglycerin_5ml_2", + "kat_syringe_amiodarone_5ml_1", + "kat_syringe_amiodarone_5ml_2", + "kat_syringe_epinephrineIV_5ml_1", + "kat_syringe_epinephrineIV_5ml_2", + "kat_syringe_lidocaine_5ml_1", + "kat_syringe_lidocaine_5ml_2", + "kat_syringe_ketamine_5ml_1", + "kat_syringe_ketamine_5ml_2", + "kat_syringe_fentanyl_5ml_1", + "kat_syringe_fentanyl_5ml_2", + "kat_syringe_nalbuphine_5ml_1", + "kat_syringe_nalbuphine_5ml_2", + "kat_syringe_lorazepam_5ml_1", + "kat_syringe_lorazepam_5ml_2", + "kat_syringe_flumazenil_5ml_1", + "kat_syringe_flumazenil_5ml_2", + "kat_syringe_etomidate_5ml_1", + "kat_syringe_etomidate_5ml_2", + "kat_syringe_epinephrineIV_5ml_1", + "kat_syringe_epinephrineIV_5ml_2", }; magazines[] = { }; requiredAddons[] = { diff --git a/addons/pharma/weee b/addons/pharma/weee deleted file mode 100644 index d90fa666d..000000000 --- a/addons/pharma/weee +++ /dev/null @@ -1,6 +0,0 @@ - - Push 6mg Adenosine IV - - - Push 12mg Adenosine IV - \ No newline at end of file From 7f610f5e05080177290ede92575124c86bc1d27e Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Tue, 22 Oct 2024 22:45:48 -0700 Subject: [PATCH 113/149] start of overdose effects --- .../breathing/functions/fnc_fullHealLocal.sqf | 1 + addons/main/script_macros.hpp | 5 +- addons/pharma/CfgFunctions.hpp | 3 ++ addons/pharma/XEH_PREP.hpp | 30 ++++++++++- addons/pharma/functions/fnc_overDose.sqf | 49 +++++++++++++++++ .../fnc_treatmentAdvanced_AdenosineLocal.sqf | 5 +- ...eatmentAdvanced_AdenosineOverdoseLocal.sqf | 16 ++++++ ...atmentAdvanced_AmiodaroneOverdoseLocal.sqf | 16 ++++++ ...reatmentAdvanced_AtropineOverdoseLocal.sqf | 16 ++++++ ...nc_treatmentAdvanced_CWMPOverdoseLocal.sqf | 21 ++++++++ ...reatmentAdvanced_CaffeineOverdoseLocal.sqf | 16 ++++++ ...eatmentAdvanced_CarbonateOverdoseLocal.sqf | 19 +++++++ ...nc_treatmentAdvanced_EACAOverdoseLocal.sqf | 51 ++++++++++++++++++ ...tmentAdvanced_EpinephrineOverdoseLocal.sqf | 18 +++++++ ...eatmentAdvanced_EtomidateOverdoseLocal.sqf | 16 ++++++ ...reatmentAdvanced_FentanylOverdoseLocal.sqf | 20 +++++++ ...atmentAdvanced_FlumazenilOverdoseLocal.sqf | 16 ++++++ ...reatmentAdvanced_KetamineOverdoseLocal.sqf | 18 +++++++ ...eatmentAdvanced_LidocaineOverdoseLocal.sqf | 17 ++++++ ...eatmentAdvanced_LorazepamOverdoseLocal.sqf | 17 ++++++ ...reatmentAdvanced_MorphineOverdoseLocal.sqf | 16 ++++++ ...atmentAdvanced_NalbuphineOverdoseLocal.sqf | 16 ++++++ ...reatmentAdvanced_NaloxoneOverdoseLocal.sqf | 16 ++++++ ...entAdvanced_NitroglycerinOverdoseLocal.sqf | 16 ++++++ ...ntAdvanced_NorepinephrineOverdoseLocal.sqf | 16 ++++++ ...reatmentAdvanced_PenthroxOverdoseLocal.sqf | 21 ++++++++ ...reatmentAdvanced_PervitinOverdoseLocal.sqf | 17 ++++++ ...entAdvanced_PhenylephrineOverdoseLocal.sqf | 21 ++++++++ ...fnc_treatmentAdvanced_TXAOverdoseLocal.sqf | 52 +++++++++++++++++++ addons/pharma/notepad2 | 23 ++++++++ 30 files changed, 578 insertions(+), 6 deletions(-) create mode 100644 addons/pharma/functions/fnc_overDose.sqf create mode 100644 addons/pharma/functions/fnc_treatmentAdvanced_AdenosineOverdoseLocal.sqf create mode 100644 addons/pharma/functions/fnc_treatmentAdvanced_AmiodaroneOverdoseLocal.sqf create mode 100644 addons/pharma/functions/fnc_treatmentAdvanced_AtropineOverdoseLocal.sqf create mode 100644 addons/pharma/functions/fnc_treatmentAdvanced_CWMPOverdoseLocal.sqf create mode 100644 addons/pharma/functions/fnc_treatmentAdvanced_CaffeineOverdoseLocal.sqf create mode 100644 addons/pharma/functions/fnc_treatmentAdvanced_CarbonateOverdoseLocal.sqf create mode 100644 addons/pharma/functions/fnc_treatmentAdvanced_EACAOverdoseLocal.sqf create mode 100644 addons/pharma/functions/fnc_treatmentAdvanced_EpinephrineOverdoseLocal.sqf create mode 100644 addons/pharma/functions/fnc_treatmentAdvanced_EtomidateOverdoseLocal.sqf create mode 100644 addons/pharma/functions/fnc_treatmentAdvanced_FentanylOverdoseLocal.sqf create mode 100644 addons/pharma/functions/fnc_treatmentAdvanced_FlumazenilOverdoseLocal.sqf create mode 100644 addons/pharma/functions/fnc_treatmentAdvanced_KetamineOverdoseLocal.sqf create mode 100644 addons/pharma/functions/fnc_treatmentAdvanced_LidocaineOverdoseLocal.sqf create mode 100644 addons/pharma/functions/fnc_treatmentAdvanced_LorazepamOverdoseLocal.sqf create mode 100644 addons/pharma/functions/fnc_treatmentAdvanced_MorphineOverdoseLocal.sqf create mode 100644 addons/pharma/functions/fnc_treatmentAdvanced_NalbuphineOverdoseLocal.sqf create mode 100644 addons/pharma/functions/fnc_treatmentAdvanced_NaloxoneOverdoseLocal.sqf create mode 100644 addons/pharma/functions/fnc_treatmentAdvanced_NitroglycerinOverdoseLocal.sqf create mode 100644 addons/pharma/functions/fnc_treatmentAdvanced_NorepinephrineOverdoseLocal.sqf create mode 100644 addons/pharma/functions/fnc_treatmentAdvanced_PenthroxOverdoseLocal.sqf create mode 100644 addons/pharma/functions/fnc_treatmentAdvanced_PervitinOverdoseLocal.sqf create mode 100644 addons/pharma/functions/fnc_treatmentAdvanced_PhenylephrineOverdoseLocal.sqf create mode 100644 addons/pharma/functions/fnc_treatmentAdvanced_TXAOverdoseLocal.sqf create mode 100644 addons/pharma/notepad2 diff --git a/addons/breathing/functions/fnc_fullHealLocal.sqf b/addons/breathing/functions/fnc_fullHealLocal.sqf index 9791dd752..e0af97d7b 100644 --- a/addons/breathing/functions/fnc_fullHealLocal.sqf +++ b/addons/breathing/functions/fnc_fullHealLocal.sqf @@ -27,6 +27,7 @@ _patient setVariable [QGVAR(deepPenetratingInjury), false, true]; _patient setVariable [QGVAR(etco2Monitor), [], true]; _patient setVariable [QGVAR(breathRate), 15, true]; _patient setVariable [QGVAR(nasalCannula), false, true]; +_patient setVariable [QGVAR(lungSurfaceArea), 400]; if (ACEGVAR(advanced_fatigue,enabled)) then { ["kat_LSDF"] call ACEFUNC(advanced_fatigue,removeDutyFactor); diff --git a/addons/main/script_macros.hpp b/addons/main/script_macros.hpp index d18adf1f7..2cdcfe79f 100644 --- a/addons/main/script_macros.hpp +++ b/addons/main/script_macros.hpp @@ -299,8 +299,9 @@ #define OXYGEN_PERCENTAGE_FATAL 75 // Breathing -#define VAR_SURFACE_AREA 400 -#define GET_KAT_SURFACE_AREA(unit) (VAR_SURFACE_AREA - (((unit getVariable [QEGVAR(breathing,pneumothorax), 0]) * 75))) +#define LUNG_SURFACE_AREA QEGVAR(breathing,lungSurfaceArea) +#define VAR_SURFACE_AREA(unit) (unit getVariable [LUNG_SURFACE_AREA, 400]) +#define GET_KAT_SURFACE_AREA(unit) (VAR_SURFACE_AREA(unit) - (((unit getVariable [QEGVAR(breathing,pneumothorax), 0]) * 75))) #define VAR_BLOOD_GAS QEGVAR(circulation,bloodGas) #define VAR_BREATHING_RATE QEGVAR(breathing,breathRate) diff --git a/addons/pharma/CfgFunctions.hpp b/addons/pharma/CfgFunctions.hpp index 1622d0d79..e62ca0a7c 100644 --- a/addons/pharma/CfgFunctions.hpp +++ b/addons/pharma/CfgFunctions.hpp @@ -20,6 +20,9 @@ class CfgFunctions { class ivBagLocal { file = QPATHTOF(functions\fnc_ivBagLocal.sqf); }; + class overDose { + file = QPATHTOF(functions\fnc_overDose.sqf); + }; }; }; }; diff --git a/addons/pharma/XEH_PREP.hpp b/addons/pharma/XEH_PREP.hpp index dc60b7c80..1bd1f4d3e 100644 --- a/addons/pharma/XEH_PREP.hpp +++ b/addons/pharma/XEH_PREP.hpp @@ -18,35 +18,61 @@ PREP(removeIV); PREP(retrieveIV); PREP(salineCheck); PREP(tourniquetRemove); +PREP(treatmentAdvanced_AdenosineLocal); +PREP(treatmentAdvanced_AdenosineOverdoseLocal); PREP(treatmentAdvanced_AmiodaroneLocal); +PREP(treatmentAdvanced_AmiodaroneOverdoseLocal); PREP(treatmentAdvanced_AtropineLocal); +PREP(treatmentAdvanced_AtropineOverdoseLocal); PREP(treatmentAdvanced_Caffeine); PREP(treatmentAdvanced_CaffeineLocal); +PREP(treatmentAdvanced_CaffeineOverdoseLocal); PREP(treatmentAdvanced_Carbonate); -PREP(treatmentAdvanced_CWMP); PREP(treatmentAdvanced_CarbonateLocal); +PREP(treatmentAdvanced_CarbonateOverdoseLocal); PREP(treatmentAdvanced_CheckCoag); +PREP(treatmentAdvanced_CWMP); +PREP(treatmentAdvanced_CWMPOverdoseLocal); PREP(treatmentAdvanced_Dialysis); PREP(treatmentAdvanced_DialysisLocal); PREP(treatmentAdvanced_EACALocal); +PREP(treatmentAdvanced_EACAOverdoseLocal); +PREP(treatmentAdvanced_EpinephrineOverdoseLocal); +PREP(treatmentAdvanced_EtomidateOverdoseLocal); PREP(treatmentAdvanced_FentanylLocal); +PREP(treatmentAdvanced_FentanylOverdoseLocal); PREP(treatmentAdvanced_FlumazenilLocal); +PREP(treatmentAdvanced_FlumazenilOverdoseLocal); PREP(treatmentAdvanced_Flush); PREP(treatmentAdvanced_FlushLocal); PREP(treatmentAdvanced_KetamineLocal); +PREP(treatmentAdvanced_KetamineOverdoseLocal); +PREP(treatmentAdvanced_LidocaineOverdoseLocal); PREP(treatmentAdvanced_LorazepamLocal); +PREP(treatmentAdvanced_LorazepamOverdoseLocal); PREP(treatmentAdvanced_MorphineLocal); +PREP(treatmentAdvanced_MorphineOverdoseLocal); PREP(treatmentAdvanced_NalbuphineLocal); +PREP(treatmentAdvanced_NalbuphineOverdoseLocal); PREP(treatmentAdvanced_Naloxone); PREP(treatmentAdvanced_NaloxoneLocal); +PREP(treatmentAdvanced_NaloxoneOverdoseLocal); +PREP(treatmentAdvanced_NitroglycerinOverdoseLocal); +PREP(treatmentAdvanced_NorepinephrineLocal); +PREP(treatmentAdvanced_NorepinephrineOverdoseLocal); PREP(treatmentAdvanced_Penthrox); +PREP(treatmentAdvanced_PenthroxOverdoseLocal); PREP(treatmentAdvanced_Pervitin); PREP(treatmentAdvanced_PervitinLocal); +PREP(treatmentAdvanced_PervitinOverdoseLocal); +PREP(treatmentAdvanced_PhenylephrineOverdoseLocal); PREP(treatmentAdvanced_Reorientation); PREP(treatmentAdvanced_ReorientationLocal); PREP(treatmentAdvanced_TXALocal); +PREP(treatmentAdvanced_TXAOverdoseLocal); PREP(vehicleCheckDialysis); PREP(prepareSyringe); PREP(checkIVType); PREP(ivCondition); -PREP(AMSCheck); \ No newline at end of file +PREP(AMSCheck); +PREP(overDose); \ No newline at end of file diff --git a/addons/pharma/functions/fnc_overDose.sqf b/addons/pharma/functions/fnc_overDose.sqf new file mode 100644 index 000000000..4c8293e03 --- /dev/null +++ b/addons/pharma/functions/fnc_overDose.sqf @@ -0,0 +1,49 @@ +#include "..\script_component.hpp" +/* + * Author: Cplhardcore + * Handles the overdose effects of a medication. + * + * Arguments: + * 0: The patient + * 1: Medication Treatment classname + * 2: Incompatable medication > + * + * Return Value: + * None + * + * Example: + * [player, "morphine"] call kat_pharma_fnc_overDose + * Public: No + */ + +params ["_unit", "_classname"]; +if ([QGVAR(AMS_Enabled)] call CBA_settings_fnc_get) then { + private _medicationParts = (_className splitString "_"); + + if (count _medicationParts > 3) then { + _medicationName = _medicationParts select 1; + [format ["kat_pharma_%1OverdoseLocal", toLower _medicationName], [_patient], _patient] call CBA_fnc_targetEvent; + }; + }; +else { + private _defaultConfig = configFile >> QUOTE(ACE_ADDON(Medical_Treatment)) >> "Medication"; + private _medicationConfig = (configFile >> "ace_medical_treatment" >> _classname); + private _onOverDose = getText (_medicationConfig >> "onOverDose"); + + if (isClass (_medicationConfig)) then { + _medicationConfig = (_medicationConfig >> _classname); + if (isText (_medicationConfig >> "onOverDose")) then { + _onOverDose = getText (_medicationConfig >> "onOverDose"); + }; + }; + TRACE_2("overdose",_classname,_onOverDose); + if (_onOverDose == "") exitWith { + TRACE_1("CriticalVitals Event",_unit); + [QEGVAR(medical,CriticalVitals), _unit] call CBA_fnc_localEvent; + }; + if (!isNil "_onOverDose" && {isText _onOverDose}) then { + _onOverDose = compile _onOverDose; + } else { + _onOverDose = missionNamespace getVariable _onOverDose; + }; + [_target, _className] call _onOverDose;}; \ No newline at end of file diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_AdenosineLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_AdenosineLocal.sqf index b347255ea..9ae16dc40 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_AdenosineLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_AdenosineLocal.sqf @@ -1,7 +1,7 @@ #include "..\script_component.hpp" /* - * Author: Mazinski.H, Edited by MiszczuZPolski and Cplhardcore - * Applies Bradycardia randomly + * Author:Cplhardcore + * Does the AV block effect of adenosine * * Arguments: * 0: Patient @@ -14,6 +14,7 @@ * * Public: No */ +params ["_patient", "_classname"]; if (_classname isEqualTo "ACE_adenosine") exitWith {}; private _cardiacRhythm = _patient getVariable [QEGVAR(circulation,cardiacArrestType), 0]; _patient setVariable [QEGVAR(circulation,cardiacArrestType), 1]; diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_AdenosineOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_AdenosineOverdoseLocal.sqf new file mode 100644 index 000000000..db150c08e --- /dev/null +++ b/addons/pharma/functions/fnc_treatmentAdvanced_AdenosineOverdoseLocal.sqf @@ -0,0 +1,16 @@ +#include "..\script_component.hpp" +/* + * Author:Cplhardcore + * Does the AV block effect of adenosine + * + * Arguments: + * 0: Patient + * + * Return Value: + * None + * + * Example: + * [cursorTarget, "ACE_adenosine"] call kat_pharma_fnc_treatmentAdvanced_AmiodaroneLocal; + * + * Public: No + */ diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_AmiodaroneOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_AmiodaroneOverdoseLocal.sqf new file mode 100644 index 000000000..9703eeefa --- /dev/null +++ b/addons/pharma/functions/fnc_treatmentAdvanced_AmiodaroneOverdoseLocal.sqf @@ -0,0 +1,16 @@ +#include "..\script_component.hpp" +/* + * Author: Mazinski.H, Edited by MiszczuZPolski and Cplhardcore + * Applies Bradycardia randomly + * + * Arguments: + * 0: Patient + * + * Return Value: + * None + * + * Example: + * [cursorTarget] call kat_pharma_fnc_treatmentAdvanced_AmiodaroneLocal; + * + * Public: No + */ diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_AtropineOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_AtropineOverdoseLocal.sqf new file mode 100644 index 000000000..c890047b0 --- /dev/null +++ b/addons/pharma/functions/fnc_treatmentAdvanced_AtropineOverdoseLocal.sqf @@ -0,0 +1,16 @@ +#include "..\script_component.hpp" +/* + * Author: Mazinski.H + * Locates and Removes Bradycardia Effect. + * + * Arguments: + * 0: Patient + * + * Return Value: + * None + * + * Example: + * [player, syringe_kat_atropine_5ml_2] call kat_pharma_fnc_treatmentAdvanced_AtropineLocal; + * + * Public: No + */ diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_CWMPOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_CWMPOverdoseLocal.sqf new file mode 100644 index 000000000..60b830df4 --- /dev/null +++ b/addons/pharma/functions/fnc_treatmentAdvanced_CWMPOverdoseLocal.sqf @@ -0,0 +1,21 @@ +#include "..\script_component.hpp" +/* + * Author: MiszczuZPolski + * Begins CWMP Treatment + * + * Arguments: + * 0: Medic + * 1: Patient + * 2: Body Part + * 3: Treatment + * 4: Item User (not used) + * 5: Used Item + * + * Return Value: + * None + * + * Example: + * [player, cursorObject, "RightArm", "CWMP", objNull, "kat_Painkiller"] call kat_pharma_fnc_treatmentAdvanced_CWMP; + * + * Public: No + */ diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_CaffeineOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_CaffeineOverdoseLocal.sqf new file mode 100644 index 000000000..a0487b630 --- /dev/null +++ b/addons/pharma/functions/fnc_treatmentAdvanced_CaffeineOverdoseLocal.sqf @@ -0,0 +1,16 @@ +#include "..\script_component.hpp" +/* + * Author: Miss Heda + * + * Arguments: + * 0: Patient + * + * Return Value: + * None + * + * Example: + * [player] call kat_pharma_fnc_treatmentAdvanced_CaffeineLocal; + * + * Public: No + */ + diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_CarbonateOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_CarbonateOverdoseLocal.sqf new file mode 100644 index 000000000..ac75fb602 --- /dev/null +++ b/addons/pharma/functions/fnc_treatmentAdvanced_CarbonateOverdoseLocal.sqf @@ -0,0 +1,19 @@ +#include "..\script_component.hpp" +/* + * Author: Mazinski.H, Blue + * Checks for Carbonate Wakeup values to restore consciousness + * + * Arguments: + * 0: Medic + * 1: Patient + * + * Return Value: + * None + *` + * Example: + * [player, cursorTarget] call kat_pharma_fnc_treatmentAdvanced_CarbonateLocal; + * + * Public: No + */ + + diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_EACAOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_EACAOverdoseLocal.sqf new file mode 100644 index 000000000..0f57fbcad --- /dev/null +++ b/addons/pharma/functions/fnc_treatmentAdvanced_EACAOverdoseLocal.sqf @@ -0,0 +1,51 @@ +#include "..\script_component.hpp" +/* + * Author: 2LT.Mazinski + * Local function for EACA treatment + * + * Arguments: + * 0: Patient + * 1: Body Part + * + * Return Value: + * None + * + * Example: + * [_patient] call kat_pharma_fnc_treatmentAdvanced_EACAOverdoseLocal; + * + * Public: No + */ + params ["_patient"]; + [_patient, EACAOverdose, 1, 900, "", "", -90, -0.3, "", ""] call EFUNC(vitals,addMedicationAdjustment); +[{ + params ["_patient"]; + private _EACAOverdoseTarget = 0; + [{ + params ["_patient", "_idPFH"]; + if (!(alive _patient)) exitWith { + [_idPFH] call CBA_fnc_removePerFrameHandler; + }; + if (floor (random 100) < GVAR(deterioratingPneumothorax_chance)) then { + _EACAOverdoseTarget = _EACAOverdoseTarget + 1; + if (_EACAOverdoseTarget > 12) exitWith { + [{ + params ["_args", "_idPFH"]; + _args params ["_patient"]; + private _ht = _patient getVariable [QEGVAR(circulation,ht), []]; + if ((_ht findIf {_x isEqualTo "eacaOD"}) == -1) then { + _ht pushBack "eacaOD"; + + if (_patient getVariable [QEGVAR(circulation,cardiacArrestType), 0] == 0) then { + [QACEGVAR(medical,FatalVitals), _patient] call CBA_fnc_localEvent; + }; + + _patient setVariable [QEGVAR(circulation,ht), _ht, true]; + }; + }, [_patient], 15] call CBA_fnc_waitAndExecute + [_idPFH] call CBA_fnc_removePerFrameHandler; + }; + private _surfaceArea = (_patient getVariable [QGVAR(lungSurfaceArea), 400]) - 10; + _patient setVariable [QGVAR(lungSurfaceArea), _surfaceArea]; + }; + }, 15, [_patient]] call CBA_fnc_addPerFrameHandler; +}, _patient, 15] call CBA_fnc_waitAndExecute; \ No newline at end of file diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_EpinephrineOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_EpinephrineOverdoseLocal.sqf new file mode 100644 index 000000000..2ebc9df95 --- /dev/null +++ b/addons/pharma/functions/fnc_treatmentAdvanced_EpinephrineOverdoseLocal.sqf @@ -0,0 +1,18 @@ +#include "..\script_component.hpp" +/* + * Author: 2LT.Mazinski + * Local function for EACA treatment + * + * Arguments: + * 0: Patient + * 1: Body Part + * + * Return Value: + * None + * + * Example: + * [_patient, "LeftArm"] call kat_pharma_fnc_treatmentAdvanced_EACALocal; + * + * Public: No + */ + diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_EtomidateOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_EtomidateOverdoseLocal.sqf new file mode 100644 index 000000000..ff48087ad --- /dev/null +++ b/addons/pharma/functions/fnc_treatmentAdvanced_EtomidateOverdoseLocal.sqf @@ -0,0 +1,16 @@ +#include "..\script_component.hpp" +/* + * Author: MiszczuZPolski + * Begins Lorazepam sedating process + * + * Arguments: + * 0: Patient + * + * Return Value: + * None + * + * Example: + * [player] call kat_pharma_fnc_treatmentAdvanced_LorazepamLocal; + * + * Public: No + */ diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_FentanylOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_FentanylOverdoseLocal.sqf new file mode 100644 index 000000000..6dcae692a --- /dev/null +++ b/addons/pharma/functions/fnc_treatmentAdvanced_FentanylOverdoseLocal.sqf @@ -0,0 +1,20 @@ +#include "..\script_component.hpp" +/* + * Author: Miss Heda + * Modified: Mazinski + * Triggers the fentanyl visual effect and applies the opioid factor from Fentanyl. + * + * Arguments: + * 0: Patient + * + * Return Value: + * None + * + * Example: + * [player, "LeftLeg", 1] call kat_pharma_fnc_treatmentAdvanced_FentanylLocal; + * + * Public: No + */ + + +/// ChromAberration effect diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_FlumazenilOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_FlumazenilOverdoseLocal.sqf new file mode 100644 index 000000000..f42551792 --- /dev/null +++ b/addons/pharma/functions/fnc_treatmentAdvanced_FlumazenilOverdoseLocal.sqf @@ -0,0 +1,16 @@ +#include "..\script_component.hpp" +/* + * Author: MiszczuZPolski + * Begins Flumazenil unsedating process + * + * Arguments: + * 0: Patient + * + * Return Value: + * None + * + * Example: + * [player] call kat_pharma_fnc_treatmentAdvanced_FlumazenilLocal; + * + * Public: No + */ diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_KetamineOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_KetamineOverdoseLocal.sqf new file mode 100644 index 000000000..029e679e5 --- /dev/null +++ b/addons/pharma/functions/fnc_treatmentAdvanced_KetamineOverdoseLocal.sqf @@ -0,0 +1,18 @@ +#include "..\script_component.hpp" +/* + * Author: Cplhardcore + * Sedates the patient + * + * Arguments: + * 0: Patient + * 1: bodypart + * 2 classname + * + * Return Value: + * None + * + * Example: + * [player, leftLeg, syringe_kat_ketamine_5ml_3] call kat_pharma_fnc_treatmentAdvanced_ketamineLocal; + * + * Public: No + */ diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_LidocaineOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_LidocaineOverdoseLocal.sqf new file mode 100644 index 000000000..7663c303a --- /dev/null +++ b/addons/pharma/functions/fnc_treatmentAdvanced_LidocaineOverdoseLocal.sqf @@ -0,0 +1,17 @@ +#include "..\script_component.hpp" +/* + * Author: MiszczuZPolski + * Begins Lorazepam sedating process + * + * Arguments: + * 0: Patient + * + * Return Value: + * None + * + * Example: + * [player] call kat_pharma_fnc_treatmentAdvanced_LorazepamLocal; + * + * Public: No + */ + diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_LorazepamOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_LorazepamOverdoseLocal.sqf new file mode 100644 index 000000000..7663c303a --- /dev/null +++ b/addons/pharma/functions/fnc_treatmentAdvanced_LorazepamOverdoseLocal.sqf @@ -0,0 +1,17 @@ +#include "..\script_component.hpp" +/* + * Author: MiszczuZPolski + * Begins Lorazepam sedating process + * + * Arguments: + * 0: Patient + * + * Return Value: + * None + * + * Example: + * [player] call kat_pharma_fnc_treatmentAdvanced_LorazepamLocal; + * + * Public: No + */ + diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_MorphineOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_MorphineOverdoseLocal.sqf new file mode 100644 index 000000000..f7b889388 --- /dev/null +++ b/addons/pharma/functions/fnc_treatmentAdvanced_MorphineOverdoseLocal.sqf @@ -0,0 +1,16 @@ +#include "..\script_component.hpp" +/* + * Author: Mazinski + * Applies the opioid factor from Morphine + * + * Arguments: + * 0: Patient + * + * Return Value: + * None + * + * Example: + * [player, "Leftleg", 1] call kat_pharma_fnc_treatmentAdvanced_MorphineLocal; + * + * Public: No + */ diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_NalbuphineOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_NalbuphineOverdoseLocal.sqf new file mode 100644 index 000000000..21a4066ba --- /dev/null +++ b/addons/pharma/functions/fnc_treatmentAdvanced_NalbuphineOverdoseLocal.sqf @@ -0,0 +1,16 @@ +#include "..\script_component.hpp" +/* + * Author: Mazinski + * Applies the opioid factor from Nalbuphine + * + * Arguments: + * 0: Patient + * + * Return Value: + * None + * + * Example: + * [player, "Leftleg", 1] call kat_pharma_fnc_treatmentAdvanced_NalbuphineLocal; + * + * Public: No + */ diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_NaloxoneOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_NaloxoneOverdoseLocal.sqf new file mode 100644 index 000000000..e907e2408 --- /dev/null +++ b/addons/pharma/functions/fnc_treatmentAdvanced_NaloxoneOverdoseLocal.sqf @@ -0,0 +1,16 @@ +#include "..\script_component.hpp" +/* + * Author: Mazinski.H + * Locates and Removes one opioid after the administration of Naloxone. + * + * Arguments: + * 0: Patient + * + * Return Value: + * None + * + * Example: + * [player] call kat_pharma_fnc_treatmentAdvanced_NaloxoneLocal; + * + * Public: No + */ \ No newline at end of file diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_NitroglycerinOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_NitroglycerinOverdoseLocal.sqf new file mode 100644 index 000000000..e907e2408 --- /dev/null +++ b/addons/pharma/functions/fnc_treatmentAdvanced_NitroglycerinOverdoseLocal.sqf @@ -0,0 +1,16 @@ +#include "..\script_component.hpp" +/* + * Author: Mazinski.H + * Locates and Removes one opioid after the administration of Naloxone. + * + * Arguments: + * 0: Patient + * + * Return Value: + * None + * + * Example: + * [player] call kat_pharma_fnc_treatmentAdvanced_NaloxoneLocal; + * + * Public: No + */ \ No newline at end of file diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_NorepinephrineOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_NorepinephrineOverdoseLocal.sqf new file mode 100644 index 000000000..e0df725da --- /dev/null +++ b/addons/pharma/functions/fnc_treatmentAdvanced_NorepinephrineOverdoseLocal.sqf @@ -0,0 +1,16 @@ +#include "..\script_component.hpp" +/* + * Author: Mazinski.H + * Locates and Removes Bradycardia Effect. + * + * Arguments: + * 0: Patient + * + * Return Value: + * None + * + * Example: + * [player] call kat_pharma_fnc_treatmentAdvanced_NorepinephrineLocal; + * + * Public: No + */ \ No newline at end of file diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_PenthroxOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_PenthroxOverdoseLocal.sqf new file mode 100644 index 000000000..2d59a9a1e --- /dev/null +++ b/addons/pharma/functions/fnc_treatmentAdvanced_PenthroxOverdoseLocal.sqf @@ -0,0 +1,21 @@ +#include "..\script_component.hpp" +/* + * Author: Blue + * Begins Penthrox Inhaler use + * + * Arguments: + * 0: Medic + * 1: Patient + * 2: Body Part + * 3: Treatment + * 4: Item User (not used) + * 5: Used Item + * + * Return Value: + * None + * + * Example: + * [player, cursorObject, "RightArm", classname, objNull, "kat_Penthrox"] call kat_pharma_fnc_treatmentAdvanced_Penthrox; + * + * Public: No + */ diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_PervitinOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_PervitinOverdoseLocal.sqf new file mode 100644 index 000000000..0ced345b4 --- /dev/null +++ b/addons/pharma/functions/fnc_treatmentAdvanced_PervitinOverdoseLocal.sqf @@ -0,0 +1,17 @@ +#include "..\script_component.hpp" +/* + * Author: Miss Heda, + * Contributers: YonV, MiszczuZPolski + * + * + * Arguments: + * 0: Patient + * + * Return Value: + * None + * + * Example: + * [player] call kat_pharma_fnc_treatmentAdvanced_PervitinLocal; + * + * Public: No + */ diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_PhenylephrineOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_PhenylephrineOverdoseLocal.sqf new file mode 100644 index 000000000..2d59a9a1e --- /dev/null +++ b/addons/pharma/functions/fnc_treatmentAdvanced_PhenylephrineOverdoseLocal.sqf @@ -0,0 +1,21 @@ +#include "..\script_component.hpp" +/* + * Author: Blue + * Begins Penthrox Inhaler use + * + * Arguments: + * 0: Medic + * 1: Patient + * 2: Body Part + * 3: Treatment + * 4: Item User (not used) + * 5: Used Item + * + * Return Value: + * None + * + * Example: + * [player, cursorObject, "RightArm", classname, objNull, "kat_Penthrox"] call kat_pharma_fnc_treatmentAdvanced_Penthrox; + * + * Public: No + */ diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_TXAOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_TXAOverdoseLocal.sqf new file mode 100644 index 000000000..4b660e867 --- /dev/null +++ b/addons/pharma/functions/fnc_treatmentAdvanced_TXAOverdoseLocal.sqf @@ -0,0 +1,52 @@ +#include "..\script_component.hpp" +/* + * Author: Cplhardcore + * causes TXA overdose effect + * + * Arguments: + * 0: Medic + * + * Return Value: + * None + * + * Example: + * [player] call kat_pharma_fnc_treatmentAdvanced_TXAOverdoseLocal; + * + * Public: No + */ + +params ["_patient"]; + +[_patient, TXAOverdose, 1, 900, "", "", -90, -0.3, "", ""] call EFUNC(vitals,addMedicationAdjustment); +[{ + params ["_patient"]; + private _TXAOverdoseTarget = 0; + [{ + params ["_patient", "_idPFH"]; + if (!(alive _patient)) exitWith { + [_idPFH] call CBA_fnc_removePerFrameHandler; + }; + if (floor (random 100) < GVAR(deterioratingPneumothorax_chance)) then { + _TXAOverdoseTarget = _TXAOverdoseTarget + 1; + if (_TXAOverdoseTarget > 12) exitWith { + [{ + params ["_args", "_idPFH"]; + _args params ["_patient"]; + private _ht = _patient getVariable [QEGVAR(circulation,ht), []]; + if ((_ht findIf {_x isEqualTo "txaOD"}) == -1) then { + _ht pushBack "txaOD"; + + if (_patient getVariable [QEGVAR(circulation,cardiacArrestType), 0] == 0) then { + [QACEGVAR(medical,FatalVitals), _patient] call CBA_fnc_localEvent; + }; + + _patient setVariable [QEGVAR(circulation,ht), _ht, true]; + }; + }, [_patient], 15] call CBA_fnc_waitAndExecute + [_idPFH] call CBA_fnc_removePerFrameHandler; + }; + private _surfaceArea = (_patient getVariable [QGVAR(lungSurfaceArea), 400]) - 15; + _patient setVariable [QGVAR(lungSurfaceArea), _surfaceArea]; + }; + }, 15, [_patient]] call CBA_fnc_addPerFrameHandler; +}, _patient, 15] call CBA_fnc_waitAndExecute; diff --git a/addons/pharma/notepad2 b/addons/pharma/notepad2 new file mode 100644 index 000000000..82213c303 --- /dev/null +++ b/addons/pharma/notepad2 @@ -0,0 +1,23 @@ +[QGVAR(adenosineOverdoseLocal), LINKFUNC(treatmentAdvanced_AdenosineOverdoseLocal)] call CBA_fnc_addEventHandler; +[QGVAR(amiodaroneOverdoseLocal), LINKFUNC(treatmentAdvanced_AmiodaroneOverdoseLocal)] call CBA_fnc_addEventHandler; +[QGVAR(atropineOverdoseLocal), LINKFUNC(treatmentAdvanced_AtropineOverdoseLocal)] call CBA_fnc_addEventHandler; +[QGVAR(caffeineOverdoseLocal), LINKFUNC(treatmentAdvanced_CaffeineOverdoseLocal)] call CBA_fnc_addEventHandler; +[QGVAR(carbonateOverdoseLocal), LINKFUNC(treatmentAdvanced_CarbonateOverdoseLocal)] call CBA_fnc_addEventHandler; +[QGVAR(CWMPOverdoseLocal), LINKFUNC(treatmentAdvanced_CWMPOverdoseLocal)] call CBA_fnc_addEventHandler; +[QGVAR(eacaOverdoseLocal), LINKFUNC(treatmentAdvanced_EACAOverdoseLocal)] call CBA_fnc_addEventHandler; +[QGVAR(epinephrineOverdoseLocal), LINKFUNC(treatmentAdvanced_EpinephrineOverdoseLocal)] call CBA_fnc_addEventHandler; +[QGVAR(etomidateOverdoseLocal), LINKFUNC(treatmentAdvanced_EtomidateOverdoseLocal)] call CBA_fnc_addEventHandler; +[QGVAR(fentanylOverdoseLocal), LINKFUNC(treatmentAdvanced_FentanylOverdoseLocal)] call CBA_fnc_addEventHandler; +[QGVAR(flumazenilOverdoseLocal), LINKFUNC(treatmentAdvanced_FlumazenilOverdoseLocal)] call CBA_fnc_addEventHandler; +[QGVAR(ketamineOverdoseLocal), LINKFUNC(treatmentAdvanced_KetamineOverdoseLocal)] call CBA_fnc_addEventHandler; +[QGVAR(lidocaineOverdoseLocal), LINKFUNC(treatmentAdvanced_LidocaineOverdoseLocal)] call CBA_fnc_addEventHandler; +[QGVAR(lorazapamOverdoseLocal), LINKFUNC(treatmentAdvanced_LorazapamOverdoseLocal)] call CBA_fnc_addEventHandler; +[QGVAR(morphineOverdoseLocal), LINKFUNC(treatmentAdvanced_MorphineOverdoseLocal)] call CBA_fnc_addEventHandler; +[QGVAR(nalbuphineOverdoseLocal), LINKFUNC(treatmentAdvanced_NalbuphineOverdoseLocal)] call CBA_fnc_addEventHandler; +[QGVAR(naloxoneOverdoseLocal), LINKFUNC(treatmentAdvanced_NaloxoneOverdoseLocal)] call CBA_fnc_addEventHandler; +[QGVAR(nitroglycerinOverdoseLocal), LINKFUNC(treatmentAdvanced_NitroglycerineOverdoseLocal)] call CBA_fnc_addEventHandler; +[QGVAR(norepinephrineOverdoseLocal), LINKFUNC(treatmentAdvanced_NorepinephrineOverdoseLocal)] call CBA_fnc_addEventHandler; +[QGVAR(penthroxOverdoseLocal), LINKFUNC(treatmentAdvanced_PenthroxOverdoseLocal)] call CBA_fnc_addEventHandler; +[QGVAR(pervitinOverdoseLocal), LINKFUNC(treatmentAdvanced_PervitinOverdoseLocal)] call CBA_fnc_addEventHandler; +[QGVAR(phenylephrineOverdoseLocal), LINKFUNC(treatmentAdvanced_PhenylephrinOverdoseLocal)] call CBA_fnc_addEventHandler; +[QGVAR(txaOverdoseLocal), LINKFUNC(treatmentAdvanced_TXAOverdoseLocal)] call CBA_fnc_addEventHandler; \ No newline at end of file From b6ff6a23cfa35b173305bc10230a59c1382d45bf Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Wed, 23 Oct 2024 01:06:28 -0700 Subject: [PATCH 114/149] More changes, weee! --- .../fnc_treatmentAdvanced_AtropineLocal.sqf | 2 +- addons/circulation/CfgFunctions.hpp | 8 ++++ addons/circulation/XEH_PREP.hpp | 1 + addons/circulation/functions/fnc_cprLocal.sqf | 10 ++--- .../functions/fnc_updateWoundBloodLoss.sqf | 42 +++++++++++++++++++ addons/main/script_macros.hpp | 2 +- addons/pharma/functions/fnc_handleRespawn.sqf | 2 +- addons/pharma/functions/fnc_init.sqf | 4 +- .../pharma/functions/fnc_medicationLocal.sqf | 24 ++++++++--- ...eatmentAdvanced_AdenosineOverdoseLocal.sqf | 1 + ...atmentAdvanced_AmiodaroneOverdoseLocal.sqf | 1 + .../fnc_treatmentAdvanced_AtropineLocal.sqf | 4 +- ...reatmentAdvanced_AtropineOverdoseLocal.sqf | 3 +- ...nc_treatmentAdvanced_CWMPOverdoseLocal.sqf | 1 + ...reatmentAdvanced_CaffeineOverdoseLocal.sqf | 2 +- ...eatmentAdvanced_CarbonateOverdoseLocal.sqf | 2 +- ...tmentAdvanced_EpinephrineOverdoseLocal.sqf | 1 + ...eatmentAdvanced_EtomidateOverdoseLocal.sqf | 1 + ...reatmentAdvanced_FentanylOverdoseLocal.sqf | 2 +- ...atmentAdvanced_FlumazenilOverdoseLocal.sqf | 1 + .../fnc_treatmentAdvanced_KetamineLocal.sqf | 4 +- ...reatmentAdvanced_KetamineOverdoseLocal.sqf | 3 +- ...eatmentAdvanced_LidocaineOverdoseLocal.sqf | 2 +- ...eatmentAdvanced_LorazepamOverdoseLocal.sqf | 2 +- ...reatmentAdvanced_MorphineOverdoseLocal.sqf | 1 + ...atmentAdvanced_NalbuphineOverdoseLocal.sqf | 1 + ...reatmentAdvanced_NaloxoneOverdoseLocal.sqf | 3 +- ...entAdvanced_NitroglycerinOverdoseLocal.sqf | 3 +- ...ntAdvanced_NorepinephrineOverdoseLocal.sqf | 3 +- ...reatmentAdvanced_PenthroxOverdoseLocal.sqf | 1 + ...reatmentAdvanced_PervitinOverdoseLocal.sqf | 1 + ...entAdvanced_PhenylephrineOverdoseLocal.sqf | 1 + 32 files changed, 110 insertions(+), 29 deletions(-) create mode 100644 addons/circulation/functions/fnc_updateWoundBloodLoss.sqf diff --git a/addons/chemical/functions/fnc_treatmentAdvanced_AtropineLocal.sqf b/addons/chemical/functions/fnc_treatmentAdvanced_AtropineLocal.sqf index 53c404e6b..d07c7e376 100644 --- a/addons/chemical/functions/fnc_treatmentAdvanced_AtropineLocal.sqf +++ b/addons/chemical/functions/fnc_treatmentAdvanced_AtropineLocal.sqf @@ -16,7 +16,7 @@ */ params ["_patient", "_classname"]; -if (_classname isEqualTo "syringe_kat_atropine_5ml_1") exitWith {}; +if (_classname isEqualTo "syringe_atropine_5ml_1") exitWith {}; _patient setVariable [QGVAR(airPoisoning), false, true]; _patient setVariable [QGVAR(isTreated), true, true]; diff --git a/addons/circulation/CfgFunctions.hpp b/addons/circulation/CfgFunctions.hpp index ea50d658c..4db609314 100644 --- a/addons/circulation/CfgFunctions.hpp +++ b/addons/circulation/CfgFunctions.hpp @@ -26,4 +26,12 @@ class CfgFunctions { }; }; }; + class overwrite_medical { + tag = "ace_medical"; + class ace_medical { + class updateWoundBloodLoss { + file = QPATHTOF(functions\fnc_updateWoundBloodLoss.sqf); + }; + }; + }; }; \ No newline at end of file diff --git a/addons/circulation/XEH_PREP.hpp b/addons/circulation/XEH_PREP.hpp index a207e6fc7..c9c62c8e7 100644 --- a/addons/circulation/XEH_PREP.hpp +++ b/addons/circulation/XEH_PREP.hpp @@ -45,6 +45,7 @@ PREP(placeAED); PREP(removeLog); PREP(showBloodGas); PREP(treatmentAdvanced_IV); +PREP(updateWoundBloodLoss); PREP(updateBloodPressureChange); PREP(updateHeartRate); PREP(updateInternalBleeding); diff --git a/addons/circulation/functions/fnc_cprLocal.sqf b/addons/circulation/functions/fnc_cprLocal.sqf index c405d9ebc..4700ffef5 100644 --- a/addons/circulation/functions/fnc_cprLocal.sqf +++ b/addons/circulation/functions/fnc_cprLocal.sqf @@ -87,23 +87,23 @@ private _fnc_advRhythm = { { _lidoBoost = _lidoBoost + 8; }; - case "syringe_kat_epinephrineIV_5ml_1": + case "syringe_epinephrineIV_5ml_1": { _epiBoost = 1.3; }; - case "syringe_kat_epinephrineIV_5ml_3": + case "syringe_epinephrineIV_5ml_3": { _epiBoost = 1.5; }; - case "syringe_kat_lidocaine_5ml_3": + case "syringe_lidocaine_5ml_3": { _lidoBoost = _lidoBoost + 8; }; - case "syringe_kat_amiodarone_5ml_1": + case "syringe_amiodarone_5ml_1": { _amiBoost = _amiBoost + (random [6,10,16]); }; - case "syringe_kat_amiodarone_5ml_3": + case "syringe_amiodarone_5ml_3": { _amiBoost = _amiBoost + (random [8,14,20]); }; diff --git a/addons/circulation/functions/fnc_updateWoundBloodLoss.sqf b/addons/circulation/functions/fnc_updateWoundBloodLoss.sqf new file mode 100644 index 000000000..161535b4b --- /dev/null +++ b/addons/circulation/functions/fnc_updateWoundBloodLoss.sqf @@ -0,0 +1,42 @@ +#include "..\script_component.hpp" +/* + * Author: Glowbal, modified by Cplhardcore + * Update total wound bleeding based on open wounds and tourniquets + * Wound bleeding = percentage of cardiac output lost + * + * Arguments: + * 0: The Unit + * + * Return Value: + * Nothing + * + * Example: + * [player] call kat_circulation_fnc_updateWoundBloodLoss + * + * Public: No + */ + +params ["_unit"]; + +private _tourniquets = GET_TOURNIQUETS(_unit); +private _bodyPartBleeding = [0,0,0,0,0,0]; +{ + private _partIndex = ALL_BODY_PARTS find _x; + if (_tourniquets select _partIndex == 0) then { + { + _x params ["", "_amountOf", "_bleeeding"]; + _bodyPartBleeding set [_partIndex, (_bodyPartBleeding select _partIndex) + (_amountOf * _bleeeding)]; + } forEach _y; + }; +} forEach GET_OPEN_WOUNDS(_unit); + +if (_bodyPartBleeding isEqualTo [0,0,0,0,0,0]) then { + TRACE_1("updateWoundBloodLoss-none",_unit); + _unit setVariable [VAR_WOUND_BLEEDING, 0, true]; +} else { + _bodyPartBleeding params ["_headBleeding", "_bodyBleeding", "_leftArmBleeding", "_rightArmBleeding", "_leftLegBleeding", "_rightLegBleeding"]; + private _bodyBleedingRate = ((_headBleeding min 0.9) + (_bodyBleeding min 1.0)) min 1.0; + private _limbBleedingRate = ((_leftArmBleeding min 0.3) + (_rightArmBleeding min 0.3) + (_leftLegBleeding min 0.5) + (_rightLegBleeding min 0.5)) min 1.0; + TRACE_3("updateWoundBloodLoss-bleeding",_unit,_bodyBleedingRate,_limbBleedingRate); + _unit setVariable [VAR_WOUND_BLEEDING, _bodyBleedingRate + _limbBleedingRate, true]; +}; \ No newline at end of file diff --git a/addons/main/script_macros.hpp b/addons/main/script_macros.hpp index 2cdcfe79f..0cdd5eb99 100644 --- a/addons/main/script_macros.hpp +++ b/addons/main/script_macros.hpp @@ -163,7 +163,7 @@ // Defined here for easy consistency with GETVAR/SETVAR (also a list for reference) #define VAR_BLOOD_PRESS QACEGVAR(medical,bloodPressure) #define VAR_BLOOD_VOL QACEGVAR(medical,bloodVolume) -#define VAR_WOUND_BLEEDING QACEGVAR(medical,woundBleeding) +#define VAR_WOUND_BLEEDING QEGVAR(circulation,woundBleeding) #define VAR_CRDC_ARRST QACEGVAR(medical,inCardiacArrest) #define VAR_HEART_RATE QACEGVAR(medical,heartRate) #define VAR_PAIN QACEGVAR(medical,pain) diff --git a/addons/pharma/functions/fnc_handleRespawn.sqf b/addons/pharma/functions/fnc_handleRespawn.sqf index 81b972163..3cc7990f5 100644 --- a/addons/pharma/functions/fnc_handleRespawn.sqf +++ b/addons/pharma/functions/fnc_handleRespawn.sqf @@ -36,7 +36,7 @@ params ["_unit","_dead"]; { _x params ["_medication"]; - if (_medication in ["Epinephrine", "EpinephrineIV", "Phenylephrine", "Nitroglycerin", "Lidocaine", "Norepinephrine", "syringe_kat_norepinephrine_5ml_1", "syringe_kat_norepinephrine_5ml_2", "syringe_kat_phenylephrine_5ml_1", "syringe_kat_phenylephrine_5ml_2", "syringe_kat_nitroglycerin_5ml_1", "syringe_kat_nitroglycerin_5ml_2", "syringe_kat_epinephrineIV_5ml_1", "syringe_kat_epinephrineIV_5ml_2", "syringe_kat_lidocaine_5ml_1", "syringe_kat_lidocaine_5ml_2","syringe_kat_lidocaine_10ml_1"]) exitWith { + if (_medication in ["Epinephrine", "EpinephrineIV", "Phenylephrine", "Nitroglycerin", "Lidocaine", "Norepinephrine", "syringe_norepinephrine_5ml_1", "syringe_norepinephrine_5ml_2", "syringe_phenylephrine_5ml_1", "syringe_phenylephrine_5ml_2", "syringe_nitroglycerin_5ml_1", "syringe_nitroglycerin_5ml_2", "syringe_epinephrineIV_5ml_1", "syringe_epinephrineIV_5ml_2", "syringe_lidocaine_5ml_1", "syringe_lidocaine_5ml_2","syringe_lidocaine_10ml_1"]) exitWith { _action = true; }; } forEach (_medicationArray); diff --git a/addons/pharma/functions/fnc_init.sqf b/addons/pharma/functions/fnc_init.sqf index 66d958296..f89c62864 100644 --- a/addons/pharma/functions/fnc_init.sqf +++ b/addons/pharma/functions/fnc_init.sqf @@ -38,7 +38,7 @@ if (!local _unit) exitWith {}; { _x params ["_medication"]; - if (_medication in ["Epinephrine", "EpinephrineIV", "Phenylephrine", "Nitroglycerin", "Lidocaine", "Norepinephrine", "syringe_kat_norepinephrine_5ml_1", "syringe_kat_norepinephrine_5ml_2", "syringe_kat_phenylephrine_5ml_1", "syringe_kat_phenylephrine_5ml_2", "syringe_kat_nitroglycerin_5ml_1", "syringe_kat_nitroglycerin_5ml_2", "syringe_kat_epinephrineIV_5ml_1", "syringe_kat_epinephrineIV_5ml_2", "syringe_kat_lidocaine_5ml_1", "syringe_kat_lidocaine_5ml_2","syringe_kat_lidocaine_10ml_1"]) exitWith { + if (_medication in ["Epinephrine", "EpinephrineIV", "Phenylephrine", "Nitroglycerin", "Lidocaine", "Norepinephrine", "syringe_norepinephrine_5ml_1", "syringe_norepinephrine_5ml_2", "syringe_phenylephrine_5ml_1", "syringe_phenylephrine_5ml_2", "syringe_nitroglycerin_5ml_1", "syringe_nitroglycerin_5ml_2", "syringe_epinephrineIV_5ml_1", "syringe_epinephrineIV_5ml_2", "syringe_lidocaine_5ml_1", "syringe_lidocaine_5ml_2","syringe_lidocaine_10ml_1"]) exitWith { _alpha = true; }; } forEach (_medicationArray); @@ -46,7 +46,7 @@ if (!local _unit) exitWith {}; { _x params ["_medication"]; - if (_medication in ["Fentanyl", "Morphine", "Nalbuphine", "syringe_kat_fentanyl_5ml_1", "syringe_kat_fentanyl_5ml_2", "syringe_kat_nalbuphine_5ml_1", "syringe_kat_nalbuphine_5ml_2","syringe_kat_fentanyl_10ml_1", "syringe_kat_fentanyl_10ml_2", "syringe_kat_nalbuphine_10ml_1", "syringe_kat_nalbuphine_10ml_2"]) exitWith { + if (_medication in ["Fentanyl", "Morphine", "Nalbuphine", "syringe_fentanyl_5ml_1", "syringe_fentanyl_5ml_2", "syringe_nalbuphine_5ml_1", "syringe_nalbuphine_5ml_2","syringe_fentanyl_10ml_1", "syringe_fentanyl_10ml_2", "syringe_nalbuphine_10ml_1", "syringe_nalbuphine_10ml_2"]) exitWith { _opioid = true; }; } forEach (_medicationArray); diff --git a/addons/pharma/functions/fnc_medicationLocal.sqf b/addons/pharma/functions/fnc_medicationLocal.sqf index b704e0d29..a2825ff7b 100644 --- a/addons/pharma/functions/fnc_medicationLocal.sqf +++ b/addons/pharma/functions/fnc_medicationLocal.sqf @@ -105,13 +105,27 @@ if (_maxRelief > 0) then { _painReduce = _painReduce / 4; }; }; +if ([QGVAR(AMS_Enabled)] call CBA_settings_fnc_get) then { -// Adjust the medication effects and add the medication to the list -TRACE_3("adjustments",_heartRateChange,_painReduce,_viscosityChange); -[_patient, _className, _timeTillMaxEffect, _timeInSystem, _heartRateChange, _painReduce, _viscosityChange, _alphaFactor, _opioidRelief, _opioidEffect] call EFUNC(vitals,addMedicationAdjustment); + private _medicationParts = (_className splitString "_"); -// Check for medication compatiblity -[_patient, _className, _maxDose, _maxDoseDeviation, _incompatibleMedication] call ACEFUNC(medical_treatment,onMedicationUsage); + if (count _medicationParts > 3) then { + _medicationName = (_medicationParts select 0) + "_" + (_medicationParts select 1); + }; + // Adjust the medication effects and add the medication to the list + TRACE_3("adjustments",_heartRateChange,_painReduce,_viscosityChange); + [_patient, _medicationName, _timeTillMaxEffect, _timeInSystem, _heartRateChange, _painReduce, _viscosityChange, _alphaFactor, _opioidRelief, _opioidEffect] call EFUNC(vitals,addMedicationAdjustment); + + // Check for medication compatiblity + [_patient, _medicationName, _maxDose, _maxDoseDeviation, _incompatibleMedication] call ACEFUNC(medical_treatment,onMedicationUsage); +} else { + // Adjust the medication effects and add the medication to the list + TRACE_3("adjustments",_heartRateChange,_painReduce,_viscosityChange); + [_patient, _className, _timeTillMaxEffect, _timeInSystem, _heartRateChange, _painReduce, _viscosityChange, _alphaFactor, _opioidRelief, _opioidEffect] call EFUNC(vitals,addMedicationAdjustment); + + // Check for medication compatiblity + [_patient, _className, _maxDose, _maxDoseDeviation, _incompatibleMedication] call ACEFUNC(medical_treatment,onMedicationUsage); +}; if ([QGVAR(AMS_Enabled)] call CBA_settings_fnc_get) then { diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_AdenosineOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_AdenosineOverdoseLocal.sqf index db150c08e..594b920e0 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_AdenosineOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_AdenosineOverdoseLocal.sqf @@ -14,3 +14,4 @@ * * Public: No */ +params ["_patient"]; \ No newline at end of file diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_AmiodaroneOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_AmiodaroneOverdoseLocal.sqf index 9703eeefa..6ad4ab4ff 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_AmiodaroneOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_AmiodaroneOverdoseLocal.sqf @@ -14,3 +14,4 @@ * * Public: No */ +params ["_patient"]; \ No newline at end of file diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_AtropineLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_AtropineLocal.sqf index fd6ea3bb0..c416342d8 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_AtropineLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_AtropineLocal.sqf @@ -10,14 +10,14 @@ * None * * Example: - * [player, syringe_kat_atropine_5ml_2] call kat_pharma_fnc_treatmentAdvanced_AtropineLocal; + * [player, syringe_atropine_5ml_2] call kat_pharma_fnc_treatmentAdvanced_AtropineLocal; * * Public: No */ params ["_patient", "_bodyPart", "_classname"]; -if (_classname isEqualTo "syringe_kat_atropine_5ml_3") exitWith {}; +if (_classname isEqualTo "syringe_atropine_5ml_3") exitWith {}; private _medicationArray = _patient getVariable [QACEGVAR(medical,medications), []]; diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_AtropineOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_AtropineOverdoseLocal.sqf index c890047b0..184e8aeb8 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_AtropineOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_AtropineOverdoseLocal.sqf @@ -10,7 +10,8 @@ * None * * Example: - * [player, syringe_kat_atropine_5ml_2] call kat_pharma_fnc_treatmentAdvanced_AtropineLocal; + * [player, syringe_atropine_5ml_2] call kat_pharma_fnc_treatmentAdvanced_AtropineLocal; * * Public: No */ +params ["_patient"]; \ No newline at end of file diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_CWMPOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_CWMPOverdoseLocal.sqf index 60b830df4..d40bb77ad 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_CWMPOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_CWMPOverdoseLocal.sqf @@ -19,3 +19,4 @@ * * Public: No */ +params ["_patient"]; \ No newline at end of file diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_CaffeineOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_CaffeineOverdoseLocal.sqf index a0487b630..5b7cec4ac 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_CaffeineOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_CaffeineOverdoseLocal.sqf @@ -13,4 +13,4 @@ * * Public: No */ - +params ["_patient"]; diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_CarbonateOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_CarbonateOverdoseLocal.sqf index ac75fb602..1c3fbe8e0 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_CarbonateOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_CarbonateOverdoseLocal.sqf @@ -15,5 +15,5 @@ * * Public: No */ - +params ["_patient"]; diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_EpinephrineOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_EpinephrineOverdoseLocal.sqf index 2ebc9df95..e1c9c894a 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_EpinephrineOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_EpinephrineOverdoseLocal.sqf @@ -16,3 +16,4 @@ * Public: No */ +params ["_patient"]; \ No newline at end of file diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_EtomidateOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_EtomidateOverdoseLocal.sqf index ff48087ad..61f187cc4 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_EtomidateOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_EtomidateOverdoseLocal.sqf @@ -14,3 +14,4 @@ * * Public: No */ +params ["_patient"]; \ No newline at end of file diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_FentanylOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_FentanylOverdoseLocal.sqf index 6dcae692a..3f7b41d3f 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_FentanylOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_FentanylOverdoseLocal.sqf @@ -17,4 +17,4 @@ */ -/// ChromAberration effect +params ["_patient"]; diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_FlumazenilOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_FlumazenilOverdoseLocal.sqf index f42551792..1784c47eb 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_FlumazenilOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_FlumazenilOverdoseLocal.sqf @@ -14,3 +14,4 @@ * * Public: No */ +params ["_patient"]; \ No newline at end of file diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_KetamineLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_KetamineLocal.sqf index 06cc1ec5a..4db378c33 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_KetamineLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_KetamineLocal.sqf @@ -12,13 +12,13 @@ * None * * Example: - * [player, leftLeg, syringe_kat_ketamine_5ml_3] call kat_pharma_fnc_treatmentAdvanced_ketamineLocal; + * [player, leftLeg, syringe_ketamine_5ml_3] call kat_pharma_fnc_treatmentAdvanced_ketamineLocal; * * Public: No */ params ["_patient", "_bodyPart", "_classname"]; -if !(_classname isEqualTo "syringe_kat_ketamine_5ml_3") exitWith {}; +if !(_classname isEqualTo "syringe_ketamine_5ml_3") exitWith {}; _patient setVariable [QEGVAR(surgery,sedated), true, true]; [_patient, true] call ACEFUNC(medical,setUnconscious); diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_KetamineOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_KetamineOverdoseLocal.sqf index 029e679e5..220aff5c8 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_KetamineOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_KetamineOverdoseLocal.sqf @@ -12,7 +12,8 @@ * None * * Example: - * [player, leftLeg, syringe_kat_ketamine_5ml_3] call kat_pharma_fnc_treatmentAdvanced_ketamineLocal; + * [player, leftLeg, syringe_ketamine_5ml_3] call kat_pharma_fnc_treatmentAdvanced_ketamineLocal; * * Public: No */ +params ["_patient"]; \ No newline at end of file diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_LidocaineOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_LidocaineOverdoseLocal.sqf index 7663c303a..a10b8e371 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_LidocaineOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_LidocaineOverdoseLocal.sqf @@ -14,4 +14,4 @@ * * Public: No */ - +params ["_patient"]; diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_LorazepamOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_LorazepamOverdoseLocal.sqf index 7663c303a..a10b8e371 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_LorazepamOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_LorazepamOverdoseLocal.sqf @@ -14,4 +14,4 @@ * * Public: No */ - +params ["_patient"]; diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_MorphineOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_MorphineOverdoseLocal.sqf index f7b889388..081a55a6a 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_MorphineOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_MorphineOverdoseLocal.sqf @@ -14,3 +14,4 @@ * * Public: No */ +params ["_patient"]; \ No newline at end of file diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_NalbuphineOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_NalbuphineOverdoseLocal.sqf index 21a4066ba..f856c6572 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_NalbuphineOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_NalbuphineOverdoseLocal.sqf @@ -14,3 +14,4 @@ * * Public: No */ +params ["_patient"]; \ No newline at end of file diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_NaloxoneOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_NaloxoneOverdoseLocal.sqf index e907e2408..da8d480dc 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_NaloxoneOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_NaloxoneOverdoseLocal.sqf @@ -13,4 +13,5 @@ * [player] call kat_pharma_fnc_treatmentAdvanced_NaloxoneLocal; * * Public: No - */ \ No newline at end of file + */ +params ["_patient"]; \ No newline at end of file diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_NitroglycerinOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_NitroglycerinOverdoseLocal.sqf index e907e2408..e2b70d1d9 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_NitroglycerinOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_NitroglycerinOverdoseLocal.sqf @@ -13,4 +13,5 @@ * [player] call kat_pharma_fnc_treatmentAdvanced_NaloxoneLocal; * * Public: No - */ \ No newline at end of file + */ + params ["_patient"]; \ No newline at end of file diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_NorepinephrineOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_NorepinephrineOverdoseLocal.sqf index e0df725da..4917ba549 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_NorepinephrineOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_NorepinephrineOverdoseLocal.sqf @@ -13,4 +13,5 @@ * [player] call kat_pharma_fnc_treatmentAdvanced_NorepinephrineLocal; * * Public: No - */ \ No newline at end of file + */ + params ["_patient"]; \ No newline at end of file diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_PenthroxOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_PenthroxOverdoseLocal.sqf index 2d59a9a1e..8845a78f8 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_PenthroxOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_PenthroxOverdoseLocal.sqf @@ -19,3 +19,4 @@ * * Public: No */ +params ["_patient"]; \ No newline at end of file diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_PervitinOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_PervitinOverdoseLocal.sqf index 0ced345b4..c941a693e 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_PervitinOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_PervitinOverdoseLocal.sqf @@ -15,3 +15,4 @@ * * Public: No */ +params ["_patient"]; \ No newline at end of file diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_PhenylephrineOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_PhenylephrineOverdoseLocal.sqf index 2d59a9a1e..8845a78f8 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_PhenylephrineOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_PhenylephrineOverdoseLocal.sqf @@ -19,3 +19,4 @@ * * Public: No */ +params ["_patient"]; \ No newline at end of file From 3ffee91d58ea1f20185d25552bb04e102ba529a6 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Wed, 23 Oct 2024 01:23:36 -0700 Subject: [PATCH 115/149] Fix tabs --- .../functions/fnc_treatmentAdvanced_EACAOverdoseLocal.sqf | 4 ++-- .../functions/fnc_treatmentAdvanced_TXAOverdoseLocal.sqf | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_EACAOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_EACAOverdoseLocal.sqf index 0f57fbcad..cbf2edc21 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_EACAOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_EACAOverdoseLocal.sqf @@ -19,7 +19,7 @@ [_patient, EACAOverdose, 1, 900, "", "", -90, -0.3, "", ""] call EFUNC(vitals,addMedicationAdjustment); [{ params ["_patient"]; - private _EACAOverdoseTarget = 0; + private _EACAOverdoseTarget = 0; [{ params ["_patient", "_idPFH"]; if (!(alive _patient)) exitWith { @@ -40,7 +40,7 @@ }; _patient setVariable [QEGVAR(circulation,ht), _ht, true]; - }; + }; }, [_patient], 15] call CBA_fnc_waitAndExecute [_idPFH] call CBA_fnc_removePerFrameHandler; }; diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_TXAOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_TXAOverdoseLocal.sqf index 4b660e867..94e18df2b 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_TXAOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_TXAOverdoseLocal.sqf @@ -20,7 +20,7 @@ params ["_patient"]; [_patient, TXAOverdose, 1, 900, "", "", -90, -0.3, "", ""] call EFUNC(vitals,addMedicationAdjustment); [{ params ["_patient"]; - private _TXAOverdoseTarget = 0; + private _TXAOverdoseTarget = 0; [{ params ["_patient", "_idPFH"]; if (!(alive _patient)) exitWith { @@ -41,7 +41,7 @@ params ["_patient"]; }; _patient setVariable [QEGVAR(circulation,ht), _ht, true]; - }; + }; }, [_patient], 15] call CBA_fnc_waitAndExecute [_idPFH] call CBA_fnc_removePerFrameHandler; }; From 31ce10a3a570cf941260b81545d3d80cf94d4db9 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Wed, 23 Oct 2024 01:24:17 -0700 Subject: [PATCH 116/149] fixed ; --- .../functions/fnc_treatmentAdvanced_EACAOverdoseLocal.sqf | 2 +- .../pharma/functions/fnc_treatmentAdvanced_TXAOverdoseLocal.sqf | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_EACAOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_EACAOverdoseLocal.sqf index cbf2edc21..5f2885e18 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_EACAOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_EACAOverdoseLocal.sqf @@ -41,7 +41,7 @@ _patient setVariable [QEGVAR(circulation,ht), _ht, true]; }; - }, [_patient], 15] call CBA_fnc_waitAndExecute + }, [_patient], 15] call CBA_fnc_waitAndExecute; [_idPFH] call CBA_fnc_removePerFrameHandler; }; private _surfaceArea = (_patient getVariable [QGVAR(lungSurfaceArea), 400]) - 10; diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_TXAOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_TXAOverdoseLocal.sqf index 94e18df2b..852b42a3b 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_TXAOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_TXAOverdoseLocal.sqf @@ -42,7 +42,7 @@ params ["_patient"]; _patient setVariable [QEGVAR(circulation,ht), _ht, true]; }; - }, [_patient], 15] call CBA_fnc_waitAndExecute + }, [_patient], 15] call CBA_fnc_waitAndExecute; [_idPFH] call CBA_fnc_removePerFrameHandler; }; private _surfaceArea = (_patient getVariable [QGVAR(lungSurfaceArea), 400]) - 15; From a33dc71d1c93b6d46e5f5524d844333bd5d0fcf1 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Wed, 23 Oct 2024 01:25:12 -0700 Subject: [PATCH 117/149] more fixes --- addons/pharma/functions/fnc_overDose.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/pharma/functions/fnc_overDose.sqf b/addons/pharma/functions/fnc_overDose.sqf index 4c8293e03..b439a521b 100644 --- a/addons/pharma/functions/fnc_overDose.sqf +++ b/addons/pharma/functions/fnc_overDose.sqf @@ -25,7 +25,7 @@ if ([QGVAR(AMS_Enabled)] call CBA_settings_fnc_get) then { [format ["kat_pharma_%1OverdoseLocal", toLower _medicationName], [_patient], _patient] call CBA_fnc_targetEvent; }; }; -else { + else { private _defaultConfig = configFile >> QUOTE(ACE_ADDON(Medical_Treatment)) >> "Medication"; private _medicationConfig = (configFile >> "ace_medical_treatment" >> _classname); private _onOverDose = getText (_medicationConfig >> "onOverDose"); From 500a9dbd6488a57c1c40b93e580392f97919f2bc Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Wed, 23 Oct 2024 01:28:23 -0700 Subject: [PATCH 118/149] changes to TXA/EACA OD --- .../functions/fnc_treatmentAdvanced_EACAOverdoseLocal.sqf | 2 ++ .../pharma/functions/fnc_treatmentAdvanced_TXAOverdoseLocal.sqf | 2 ++ 2 files changed, 4 insertions(+) diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_EACAOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_EACAOverdoseLocal.sqf index 5f2885e18..80c6815ba 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_EACAOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_EACAOverdoseLocal.sqf @@ -28,6 +28,7 @@ if (floor (random 100) < GVAR(deterioratingPneumothorax_chance)) then { _EACAOverdoseTarget = _EACAOverdoseTarget + 1; if (_EACAOverdoseTarget > 12) exitWith { + if (random(100) < 25) then { [{ params ["_args", "_idPFH"]; _args params ["_patient"]; @@ -42,6 +43,7 @@ _patient setVariable [QEGVAR(circulation,ht), _ht, true]; }; }, [_patient], 15] call CBA_fnc_waitAndExecute; + }; [_idPFH] call CBA_fnc_removePerFrameHandler; }; private _surfaceArea = (_patient getVariable [QGVAR(lungSurfaceArea), 400]) - 10; diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_TXAOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_TXAOverdoseLocal.sqf index 852b42a3b..532b2150a 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_TXAOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_TXAOverdoseLocal.sqf @@ -29,6 +29,7 @@ params ["_patient"]; if (floor (random 100) < GVAR(deterioratingPneumothorax_chance)) then { _TXAOverdoseTarget = _TXAOverdoseTarget + 1; if (_TXAOverdoseTarget > 12) exitWith { + if (random(100) < 25) then { [{ params ["_args", "_idPFH"]; _args params ["_patient"]; @@ -43,6 +44,7 @@ params ["_patient"]; _patient setVariable [QEGVAR(circulation,ht), _ht, true]; }; }, [_patient], 15] call CBA_fnc_waitAndExecute; + }; [_idPFH] call CBA_fnc_removePerFrameHandler; }; private _surfaceArea = (_patient getVariable [QGVAR(lungSurfaceArea), 400]) - 15; From 4be57a1a3aa3c72706fae8eed7d237a3cc395695 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Wed, 23 Oct 2024 02:02:31 -0700 Subject: [PATCH 119/149] small fix --- addons/pharma/functions/fnc_overDose.sqf | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/addons/pharma/functions/fnc_overDose.sqf b/addons/pharma/functions/fnc_overDose.sqf index b439a521b..842adfdb3 100644 --- a/addons/pharma/functions/fnc_overDose.sqf +++ b/addons/pharma/functions/fnc_overDose.sqf @@ -24,11 +24,11 @@ if ([QGVAR(AMS_Enabled)] call CBA_settings_fnc_get) then { _medicationName = _medicationParts select 1; [format ["kat_pharma_%1OverdoseLocal", toLower _medicationName], [_patient], _patient] call CBA_fnc_targetEvent; }; - }; - else { - private _defaultConfig = configFile >> QUOTE(ACE_ADDON(Medical_Treatment)) >> "Medication"; - private _medicationConfig = (configFile >> "ace_medical_treatment" >> _classname); - private _onOverDose = getText (_medicationConfig >> "onOverDose"); + } +else { +private _defaultConfig = configFile >> QUOTE(ACE_ADDON(Medical_Treatment)) >> "Medication"; +private _medicationConfig = (configFile >> "ace_medical_treatment" >> _classname); +private _onOverDose = getText (_medicationConfig >> "onOverDose"); if (isClass (_medicationConfig)) then { _medicationConfig = (_medicationConfig >> _classname); From 20ef2d886e21b8a356801a2677b636a5921ec166 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Wed, 23 Oct 2024 03:38:29 -0700 Subject: [PATCH 120/149] Weehoo --- .../fnc_treatmentAdvanced_AmiodaroneLocal.sqf | 4 +++- ...reatmentAdvanced_AmiodaroneOverdoseLocal.sqf | 3 ++- .../fnc_treatmentAdvanced_CWMPOverdoseLocal.sqf | 9 ++------- ..._treatmentAdvanced_CaffeineOverdoseLocal.sqf | 1 + ...treatmentAdvanced_CarbonateOverdoseLocal.sqf | 1 + ...eatmentAdvanced_EpinephrineOverdoseLocal.sqf | 9 ++++++--- .../fnc_treatmentAdvanced_LorazepamLocal.sqf | 4 +++- .../fnc_treatmentAdvanced_NaloxoneLocal.sqf | 9 ++++++--- ..._treatmentAdvanced_NaloxoneOverdoseLocal.sqf | 17 ----------------- ...tmentAdvanced_NitroglycerinOverdoseLocal.sqf | 5 ++++- ...nc_treatmentAdvanced_NorepinephrineLocal.sqf | 8 +++----- 11 files changed, 31 insertions(+), 39 deletions(-) delete mode 100644 addons/pharma/functions/fnc_treatmentAdvanced_NaloxoneOverdoseLocal.sqf diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_AmiodaroneLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_AmiodaroneLocal.sqf index 72f555905..971ef53a7 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_AmiodaroneLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_AmiodaroneLocal.sqf @@ -18,5 +18,7 @@ params ["_patient"]; private _random = random 3; if (_random <= 1) then { - [_patient, "BRADYCARDIA", 120, 1200, -40, 0, 0] call ACEFUNC(medical_status,addMedicationAdjustment); + private _hrValue = [-40, -30, -50]; + private _hrAdjust = selectRandom _hrValue; + [_patient, "BRADYCARDIA", 120, 1200, _hrAdjust, "", "", "", "", ""] call EFUNC(vitals,addMedicationAdjustment); }; diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_AmiodaroneOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_AmiodaroneOverdoseLocal.sqf index 6ad4ab4ff..49e55fd9e 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_AmiodaroneOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_AmiodaroneOverdoseLocal.sqf @@ -14,4 +14,5 @@ * * Public: No */ -params ["_patient"]; \ No newline at end of file +params ["_patient"]; +[_patient, AmiodaroneOverdose, 30, 600, "", "", "", 0.2, "", ""] call EFUNC(vitals,addMedicationAdjustment); diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_CWMPOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_CWMPOverdoseLocal.sqf index d40bb77ad..954764320 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_CWMPOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_CWMPOverdoseLocal.sqf @@ -4,18 +4,13 @@ * Begins CWMP Treatment * * Arguments: - * 0: Medic - * 1: Patient - * 2: Body Part - * 3: Treatment - * 4: Item User (not used) - * 5: Used Item + * 0: patient * * Return Value: * None * * Example: - * [player, cursorObject, "RightArm", "CWMP", objNull, "kat_Painkiller"] call kat_pharma_fnc_treatmentAdvanced_CWMP; + * [player] call kat_pharma_fnc_treatmentAdvanced_CWMPOverdoseLocal; * * Public: No */ diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_CaffeineOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_CaffeineOverdoseLocal.sqf index 5b7cec4ac..7fd23a262 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_CaffeineOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_CaffeineOverdoseLocal.sqf @@ -14,3 +14,4 @@ * Public: No */ params ["_patient"]; +[_patient, CaffineOverdose, 1, 120, 30, "", "", "", "", ""] call EFUNC(vitals,addMedicationAdjustment); diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_CarbonateOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_CarbonateOverdoseLocal.sqf index 1c3fbe8e0..035af1293 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_CarbonateOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_CarbonateOverdoseLocal.sqf @@ -16,4 +16,5 @@ * Public: No */ params ["_patient"]; +[_patient, CarbonateOverdose, 1, 30, 10, "", "", "", "", ""] call EFUNC(vitals,addMedicationAdjustment); diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_EpinephrineOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_EpinephrineOverdoseLocal.sqf index e1c9c894a..d033fa024 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_EpinephrineOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_EpinephrineOverdoseLocal.sqf @@ -1,7 +1,7 @@ #include "..\script_component.hpp" /* - * Author: 2LT.Mazinski - * Local function for EACA treatment + * Author: Cplhardcore + * Local function for Epi Overdose * * Arguments: * 0: Patient @@ -16,4 +16,7 @@ * Public: No */ -params ["_patient"]; \ No newline at end of file +params ["_patient"]; +private _hrValue = [40, 30, 50]; +private _hrAdjust = selectRandom _hrValue; +[_patient, "TACHYCARDIA", 120, 1200, _hrAdjust, 0, 0] call ACEFUNC(medical_status,addMedicationAdjustment); \ No newline at end of file diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_LorazepamLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_LorazepamLocal.sqf index 52e9e9db3..5b2d86747 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_LorazepamLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_LorazepamLocal.sqf @@ -19,7 +19,9 @@ params ["_patient"]; private _random = random 3; if (_random <= 1) then { - [_patient, "BRADYCARDIA", 120, 1200, -40, 0, 0] call ACEFUNC(medical_status,addMedicationAdjustment); + private _hrValue = [-40, -30, -50]; + private _hrAdjust = selectRandom _hrValue; + [_patient, "BRADYCARDIA", 120, 1200, _hrAdjust, 0, 0] call ACEFUNC(medical_status,addMedicationAdjustment); }; _patient setVariable [QEGVAR(surgery,sedated), true, true]; diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_NaloxoneLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_NaloxoneLocal.sqf index b628d41da..52ca98513 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_NaloxoneLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_NaloxoneLocal.sqf @@ -18,14 +18,17 @@ params ["_patient"]; private _medicationArray = _patient getVariable [QACEGVAR(medical,medications), []]; - private _medicationDeleted = false; - { _x params ["_medication"]; if (_medication isEqualTo "Morphine" || _medication isEqualTo "Fentanyl" || _medication isEqualTo "Nalbuphine") then { - _medicationArray deleteAt (_medicationArray find _x); + if (random 1 < 0.33) then { + _medicationArray deleteAt (_medicationArray find _x); + _medicationDeleted = true; + }; }; + if (_medicationDeleted) exitWith {}; + } forEach _medicationArray; _patient setVariable [QACEGVAR(medical,medications), _medicationArray, true]; \ No newline at end of file diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_NaloxoneOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_NaloxoneOverdoseLocal.sqf deleted file mode 100644 index da8d480dc..000000000 --- a/addons/pharma/functions/fnc_treatmentAdvanced_NaloxoneOverdoseLocal.sqf +++ /dev/null @@ -1,17 +0,0 @@ -#include "..\script_component.hpp" -/* - * Author: Mazinski.H - * Locates and Removes one opioid after the administration of Naloxone. - * - * Arguments: - * 0: Patient - * - * Return Value: - * None - * - * Example: - * [player] call kat_pharma_fnc_treatmentAdvanced_NaloxoneLocal; - * - * Public: No - */ -params ["_patient"]; \ No newline at end of file diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_NitroglycerinOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_NitroglycerinOverdoseLocal.sqf index e2b70d1d9..e41882060 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_NitroglycerinOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_NitroglycerinOverdoseLocal.sqf @@ -14,4 +14,7 @@ * * Public: No */ - params ["_patient"]; \ No newline at end of file + params ["_patient"]; +private _hrValue = [-40, -30, -20, 20, 30, 40]; +private _hrAdjust = selectRandom _hrValue; +[_patient, NitroglycerinOverdose, 30, 1200, _hrAdjust, "", "", -0.7, "", ""] call EFUNC(vitals,addMedicationAdjustment); \ No newline at end of file diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_NorepinephrineLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_NorepinephrineLocal.sqf index 5c3befdb3..ae8c489c1 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_NorepinephrineLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_NorepinephrineLocal.sqf @@ -14,16 +14,14 @@ * * Public: No */ -params ["_patient", "_classname"]; +params ["_patient"]; private _medicationArray = _patient getVariable [QACEGVAR(medical,medications), []]; - { _x params ["_medication"]; - - if (_medication isEqualTo "BRADYCARDIA") exitWith { + if (_medication isEqualTo "BRADYCARDIA") then { _medicationArray deleteAt (_medicationArray find _x); }; -} forEach (_medicationArray); +} forEach _medicationArray; _patient setVariable [QACEGVAR(medical,medications), _medicationArray, true]; \ No newline at end of file From 46519a87a2d6584671785a005ea5cea5a61a1046 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Wed, 23 Oct 2024 04:47:04 -0700 Subject: [PATCH 121/149] MORE OVERDOSES --- .../functions/fnc_treatmentAdvanced_IV.sqf | 2 +- .../functions/fnc_updateWoundBloodLoss.sqf | 9 +++++++-- addons/pharma/functions/fnc_handleRespawn.sqf | 2 +- addons/pharma/functions/fnc_init.sqf | 2 +- ...nc_treatmentAdvanced_EACAOverdoseLocal.sqf | 1 + ...tmentAdvanced_EpinephrineOverdoseLocal.sqf | 7 ++++++- .../fnc_treatmentAdvanced_LorazepamLocal.sqf | 2 +- ...entAdvanced_NitroglycerinOverdoseLocal.sqf | 4 ++-- ...ntAdvanced_NorepinephrineOverdoseLocal.sqf | 10 +++++++++- ...reatmentAdvanced_PenthroxOverdoseLocal.sqf | 7 ++++++- ...entAdvanced_PhenylephrineOverdoseLocal.sqf | 20 +++++++++++-------- ...fnc_treatmentAdvanced_TXAOverdoseLocal.sqf | 1 + .../surgery/functions/fnc_incisionLocal.sqf | 4 ++-- 13 files changed, 50 insertions(+), 21 deletions(-) diff --git a/addons/circulation/functions/fnc_treatmentAdvanced_IV.sqf b/addons/circulation/functions/fnc_treatmentAdvanced_IV.sqf index 2097f9f7c..763824f1e 100644 --- a/addons/circulation/functions/fnc_treatmentAdvanced_IV.sqf +++ b/addons/circulation/functions/fnc_treatmentAdvanced_IV.sqf @@ -23,7 +23,7 @@ private _volume = getNumber (configFile >> "ACE_Medical_Treatment" >> "IV" >> _c private _hradjust = -_volume; -[_unit, "BloodPoisoning", 150, 300, _hradjust, 0, -10] call ACEFUNC(medical_status,addMedicationAdjustment); +[_unit, "BloodPoisoning", 150, 600, _hradjust, 0, -10, "", "", ""] call EFUNC(vitals,addMedicationAdjustment); [{ params ["_unit"]; diff --git a/addons/circulation/functions/fnc_updateWoundBloodLoss.sqf b/addons/circulation/functions/fnc_updateWoundBloodLoss.sqf index 161535b4b..e8bea637e 100644 --- a/addons/circulation/functions/fnc_updateWoundBloodLoss.sqf +++ b/addons/circulation/functions/fnc_updateWoundBloodLoss.sqf @@ -22,13 +22,18 @@ private _tourniquets = GET_TOURNIQUETS(_unit); private _bodyPartBleeding = [0,0,0,0,0,0]; { private _partIndex = ALL_BODY_PARTS find _x; - if (_tourniquets select _partIndex == 0) then { + if (_tourniquets select _partIndex == 1) then { + { + _x params ["", "_amountOf", "_bleeeding"]; + _bodyPartBleeding set [_partIndex, (_bodyPartBleeding select _partIndex) + (0.05 * _amountOf * _bleeeding)]; + } forEach _y; + } else { { _x params ["", "_amountOf", "_bleeeding"]; _bodyPartBleeding set [_partIndex, (_bodyPartBleeding select _partIndex) + (_amountOf * _bleeeding)]; } forEach _y; }; -} forEach GET_OPEN_WOUNDS(_unit); + } forEach GET_OPEN_WOUNDS(_unit); if (_bodyPartBleeding isEqualTo [0,0,0,0,0,0]) then { TRACE_1("updateWoundBloodLoss-none",_unit); diff --git a/addons/pharma/functions/fnc_handleRespawn.sqf b/addons/pharma/functions/fnc_handleRespawn.sqf index 3cc7990f5..c55d10b46 100644 --- a/addons/pharma/functions/fnc_handleRespawn.sqf +++ b/addons/pharma/functions/fnc_handleRespawn.sqf @@ -87,7 +87,7 @@ if (GVAR(kidneyAction)) then { if !(_kidneyPressure) then { _unit setVariable [QGVAR(kidneyPressure), true, true]; - [_unit, "KIDNEY", 15, 1200, 30, 0, 15] call ACEFUNC(medical_status,addMedicationAdjustment); + [_unit, "KIDNEY", 15, 1200, 30, 0, 15 "", "", ""] call EFUNC(vitals,addMedicationAdjustment); }; }; default { diff --git a/addons/pharma/functions/fnc_init.sqf b/addons/pharma/functions/fnc_init.sqf index f89c62864..d08d66d3a 100644 --- a/addons/pharma/functions/fnc_init.sqf +++ b/addons/pharma/functions/fnc_init.sqf @@ -101,7 +101,7 @@ if (GVAR(kidneyAction)) then { if !(_kidneyPressure) then { _unit setVariable [QGVAR(kidneyPressure), true, true]; - [_unit, "KIDNEY", 15, 1200, 30, 0, 15] call ACEFUNC(medical_status,addMedicationAdjustment); + [_unit, "KIDNEY", 15, 1200, 30, 0, 15, "", "", ""] call EFUNC(vitals,addMedicationAdjustment); }; }; default { diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_EACAOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_EACAOverdoseLocal.sqf index 80c6815ba..659e4a688 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_EACAOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_EACAOverdoseLocal.sqf @@ -48,6 +48,7 @@ }; private _surfaceArea = (_patient getVariable [QGVAR(lungSurfaceArea), 400]) - 10; _patient setVariable [QGVAR(lungSurfaceArea), _surfaceArea]; + if ((random 1000) < 1) then {_patient setDamage 1;}; }; }, 15, [_patient]] call CBA_fnc_addPerFrameHandler; }, _patient, 15] call CBA_fnc_waitAndExecute; \ No newline at end of file diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_EpinephrineOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_EpinephrineOverdoseLocal.sqf index d033fa024..a98492fe2 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_EpinephrineOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_EpinephrineOverdoseLocal.sqf @@ -19,4 +19,9 @@ params ["_patient"]; private _hrValue = [40, 30, 50]; private _hrAdjust = selectRandom _hrValue; -[_patient, "TACHYCARDIA", 120, 1200, _hrAdjust, 0, 0] call ACEFUNC(medical_status,addMedicationAdjustment); \ No newline at end of file +[_patient, "TACHYCARDIA", 30, 1200, _hrAdjust, "", "", "", "", ""] call EFUNC(vitals,addMedicationAdjustment); +if (random 10 < 1) then { + private _randomValue = [3, 4]; + private _randomRhythm = selectRandom _randomValue; + _patient setVariable [QEGVAR(circulation,cardiacArrestType), _randomRhythm]; +}; \ No newline at end of file diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_LorazepamLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_LorazepamLocal.sqf index 5b2d86747..640329672 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_LorazepamLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_LorazepamLocal.sqf @@ -21,7 +21,7 @@ private _random = random 3; if (_random <= 1) then { private _hrValue = [-40, -30, -50]; private _hrAdjust = selectRandom _hrValue; - [_patient, "BRADYCARDIA", 120, 1200, _hrAdjust, 0, 0] call ACEFUNC(medical_status,addMedicationAdjustment); + [_patient, "BRADYCARDIA", 120, 1200, _hrAdjust, 0, 0, "", "", ""] call EFUNC(vitals,addMedicationAdjustment); }; _patient setVariable [QEGVAR(surgery,sedated), true, true]; diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_NitroglycerinOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_NitroglycerinOverdoseLocal.sqf index e41882060..b7ec021e5 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_NitroglycerinOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_NitroglycerinOverdoseLocal.sqf @@ -15,6 +15,6 @@ * Public: No */ params ["_patient"]; -private _hrValue = [-40, -30, -20, 20, 30, 40]; +private _hrValue = [-20, -25, -30, -35, -40, -45, 20, 25, 30, 35, 40, 45]; private _hrAdjust = selectRandom _hrValue; -[_patient, NitroglycerinOverdose, 30, 1200, _hrAdjust, "", "", -0.7, "", ""] call EFUNC(vitals,addMedicationAdjustment); \ No newline at end of file +[_patient, NitroglycerinOverdose, 30, 1200, _hrAdjust, "", 75, "", "", ""] call EFUNC(vitals,addMedicationAdjustment); \ No newline at end of file diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_NorepinephrineOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_NorepinephrineOverdoseLocal.sqf index 4917ba549..6ece14ea2 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_NorepinephrineOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_NorepinephrineOverdoseLocal.sqf @@ -14,4 +14,12 @@ * * Public: No */ - params ["_patient"]; \ No newline at end of file + params ["_patient"]; +private _hrValue = [40, 30, 50]; +private _hrAdjust = selectRandom _hrValue; +[_patient, "TACHYCARDIA", 120, 1200, _hrAdjust, "", "", "", "", ""] call EFUNC(vitals,addMedicationAdjustment); +if (random 10 < 1) then { + private _randomValue = [3, 4]; + private _randomRhythm = selectRandom _randomValue; + _patient setVariable [QEGVAR(circulation,cardiacArrestType), _randomRhythm]; +}; \ No newline at end of file diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_PenthroxOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_PenthroxOverdoseLocal.sqf index 8845a78f8..64bee08b4 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_PenthroxOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_PenthroxOverdoseLocal.sqf @@ -19,4 +19,9 @@ * * Public: No */ -params ["_patient"]; \ No newline at end of file +params ["_patient"]; +if (random 25 < 1) then { + private _randomValue = [3, 4]; + private _randomRhythm = selectRandom _randomValue; + _patient setVariable [QEGVAR(circulation,cardiacArrestType), _randomRhythm]; +}; \ No newline at end of file diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_PhenylephrineOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_PhenylephrineOverdoseLocal.sqf index 8845a78f8..b7baa0b78 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_PhenylephrineOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_PhenylephrineOverdoseLocal.sqf @@ -4,13 +4,7 @@ * Begins Penthrox Inhaler use * * Arguments: - * 0: Medic - * 1: Patient - * 2: Body Part - * 3: Treatment - * 4: Item User (not used) - * 5: Used Item - * + * 0: Patient * Return Value: * None * @@ -19,4 +13,14 @@ * * Public: No */ -params ["_patient"]; \ No newline at end of file +params ["_patient"]; +private _hrValue = [20, 25, 30, 35, 40, 45]; +private _hrAdjust = selectRandom _hrValue; +private _alphaValue = [-0.7, -0.6, -0.8]; +private _alphaAdjust = selectRandom _alphaValue; +[_patient, PhenylephrineOverdose, 30, 1200, _hrAdjust, "", "", _alphaAdjust, "", ""] call EFUNC(vitals,addMedicationAdjustment); +if (random 5 < 1) then { + private _randomValue = [3, 4]; + private _randomRhythm = selectRandom _randomValue; + _patient setVariable [QEGVAR(circulation,cardiacArrestType), _randomRhythm]; +}; \ No newline at end of file diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_TXAOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_TXAOverdoseLocal.sqf index 532b2150a..947a1bdb6 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_TXAOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_TXAOverdoseLocal.sqf @@ -49,6 +49,7 @@ params ["_patient"]; }; private _surfaceArea = (_patient getVariable [QGVAR(lungSurfaceArea), 400]) - 15; _patient setVariable [QGVAR(lungSurfaceArea), _surfaceArea]; + if ((random 1000) < 1) then {_patient setDamage 1;}; }; }, 15, [_patient]] call CBA_fnc_addPerFrameHandler; }, _patient, 15] call CBA_fnc_waitAndExecute; diff --git a/addons/surgery/functions/fnc_incisionLocal.sqf b/addons/surgery/functions/fnc_incisionLocal.sqf index 9c78beb4c..9f52d266b 100644 --- a/addons/surgery/functions/fnc_incisionLocal.sqf +++ b/addons/surgery/functions/fnc_incisionLocal.sqf @@ -52,13 +52,13 @@ _patient setVariable [QGVAR(fractures), _fractureArray, true]; }; if (((GVAR(Surgery_ConsciousnessRequirement) in [0,1]) && (!(IS_UNCONSCIOUS(_patient)) || _count == 0)) || (GVAR(Surgery_ConsciousnessRequirement) == 3 && _count == 0)) exitWith { - [_patient, "Pain", 10, 40, 200, 0, 40] call ACEFUNC(medical_status,addMedicationAdjustment); + [_patient, "Pain", 10, 40, 200, 0, 40 "", "", ""] call EFUNC(vitals,addMedicationAdjustment); [_patient, true] call ACEFUNC(medical,setUnconscious); }; if (GVAR(Surgery_ConsciousnessRequirement) == 2 && _count == 0) then { [_patient, 0.4] call ACEFUNC(medical_status,adjustPainLevel); - [_patient, "Pain", 10, 40, 30, 0, 40] call ACEFUNC(medical_status,addMedicationAdjustment); + [_patient, "Pain", 10, 40, 30, 0, 40, "", "", ""] call EFUNC(vitals,addMedicationAdjustment); }; }, GVAR(etomidateTime), [_patient, _part]] call CBA_fnc_addPerFrameHandler; From 5d5c0c8d1f9e235d07c61dfaa7c002960030b54f Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Wed, 23 Oct 2024 19:13:40 -0700 Subject: [PATCH 122/149] Fixes --- addons/pharma/functions/fnc_handleRespawn.sqf | 2 +- .../fnc_treatmentAdvanced_EpinephrineOverdoseLocal.sqf | 4 ++-- .../fnc_treatmentAdvanced_NorepinephrineOverdoseLocal.sqf | 4 ++-- .../functions/fnc_treatmentAdvanced_PenthroxOverdoseLocal.sqf | 4 ++-- .../fnc_treatmentAdvanced_PhenylephrineOverdoseLocal.sqf | 4 ++-- addons/surgery/functions/fnc_incisionLocal.sqf | 2 +- 6 files changed, 10 insertions(+), 10 deletions(-) diff --git a/addons/pharma/functions/fnc_handleRespawn.sqf b/addons/pharma/functions/fnc_handleRespawn.sqf index c55d10b46..01400000d 100644 --- a/addons/pharma/functions/fnc_handleRespawn.sqf +++ b/addons/pharma/functions/fnc_handleRespawn.sqf @@ -87,7 +87,7 @@ if (GVAR(kidneyAction)) then { if !(_kidneyPressure) then { _unit setVariable [QGVAR(kidneyPressure), true, true]; - [_unit, "KIDNEY", 15, 1200, 30, 0, 15 "", "", ""] call EFUNC(vitals,addMedicationAdjustment); + [_unit, "KIDNEY", 15, 1200, 30, 0, 15, "", "", ""] call EFUNC(vitals,addMedicationAdjustment); }; }; default { diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_EpinephrineOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_EpinephrineOverdoseLocal.sqf index a98492fe2..f9dfb0da2 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_EpinephrineOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_EpinephrineOverdoseLocal.sqf @@ -21,7 +21,7 @@ private _hrValue = [40, 30, 50]; private _hrAdjust = selectRandom _hrValue; [_patient, "TACHYCARDIA", 30, 1200, _hrAdjust, "", "", "", "", ""] call EFUNC(vitals,addMedicationAdjustment); if (random 10 < 1) then { - private _randomValue = [3, 4]; - private _randomRhythm = selectRandom _randomValue; + private _randomValue = [3, 4]; + private _randomRhythm = selectRandom _randomValue; _patient setVariable [QEGVAR(circulation,cardiacArrestType), _randomRhythm]; }; \ No newline at end of file diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_NorepinephrineOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_NorepinephrineOverdoseLocal.sqf index 6ece14ea2..c6e8c245f 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_NorepinephrineOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_NorepinephrineOverdoseLocal.sqf @@ -19,7 +19,7 @@ private _hrValue = [40, 30, 50]; private _hrAdjust = selectRandom _hrValue; [_patient, "TACHYCARDIA", 120, 1200, _hrAdjust, "", "", "", "", ""] call EFUNC(vitals,addMedicationAdjustment); if (random 10 < 1) then { - private _randomValue = [3, 4]; - private _randomRhythm = selectRandom _randomValue; + private _randomValue = [3, 4]; + private _randomRhythm = selectRandom _randomValue; _patient setVariable [QEGVAR(circulation,cardiacArrestType), _randomRhythm]; }; \ No newline at end of file diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_PenthroxOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_PenthroxOverdoseLocal.sqf index 64bee08b4..8d5c9a9af 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_PenthroxOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_PenthroxOverdoseLocal.sqf @@ -21,7 +21,7 @@ */ params ["_patient"]; if (random 25 < 1) then { - private _randomValue = [3, 4]; - private _randomRhythm = selectRandom _randomValue; + private _randomValue = [3, 4]; + private _randomRhythm = selectRandom _randomValue; _patient setVariable [QEGVAR(circulation,cardiacArrestType), _randomRhythm]; }; \ No newline at end of file diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_PhenylephrineOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_PhenylephrineOverdoseLocal.sqf index b7baa0b78..33790b791 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_PhenylephrineOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_PhenylephrineOverdoseLocal.sqf @@ -20,7 +20,7 @@ private _alphaValue = [-0.7, -0.6, -0.8]; private _alphaAdjust = selectRandom _alphaValue; [_patient, PhenylephrineOverdose, 30, 1200, _hrAdjust, "", "", _alphaAdjust, "", ""] call EFUNC(vitals,addMedicationAdjustment); if (random 5 < 1) then { - private _randomValue = [3, 4]; - private _randomRhythm = selectRandom _randomValue; + private _randomValue = [3, 4]; + private _randomRhythm = selectRandom _randomValue; _patient setVariable [QEGVAR(circulation,cardiacArrestType), _randomRhythm]; }; \ No newline at end of file diff --git a/addons/surgery/functions/fnc_incisionLocal.sqf b/addons/surgery/functions/fnc_incisionLocal.sqf index 9f52d266b..c294aa15a 100644 --- a/addons/surgery/functions/fnc_incisionLocal.sqf +++ b/addons/surgery/functions/fnc_incisionLocal.sqf @@ -52,7 +52,7 @@ _patient setVariable [QGVAR(fractures), _fractureArray, true]; }; if (((GVAR(Surgery_ConsciousnessRequirement) in [0,1]) && (!(IS_UNCONSCIOUS(_patient)) || _count == 0)) || (GVAR(Surgery_ConsciousnessRequirement) == 3 && _count == 0)) exitWith { - [_patient, "Pain", 10, 40, 200, 0, 40 "", "", ""] call EFUNC(vitals,addMedicationAdjustment); + [_patient, "Pain", 10, 40, 200, 0, 40, "", "", ""] call EFUNC(vitals,addMedicationAdjustment); [_patient, true] call ACEFUNC(medical,setUnconscious); }; From c6a67640fc33a802b44021faf97ff33cd1a98384 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Wed, 23 Oct 2024 20:48:23 -0700 Subject: [PATCH 123/149] More oD --- ...nc_treatmentAdvanced_EACAOverdoseLocal.sqf | 2 -- .../fnc_treatmentAdvanced_NaloxoneLocal.sqf | 2 +- ...reatmentAdvanced_PenthroxOverdoseLocal.sqf | 32 ++++++++++++++++--- ...fnc_treatmentAdvanced_TXAOverdoseLocal.sqf | 3 -- 4 files changed, 28 insertions(+), 11 deletions(-) diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_EACAOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_EACAOverdoseLocal.sqf index 659e4a688..aaebb95e2 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_EACAOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_EACAOverdoseLocal.sqf @@ -25,7 +25,6 @@ if (!(alive _patient)) exitWith { [_idPFH] call CBA_fnc_removePerFrameHandler; }; - if (floor (random 100) < GVAR(deterioratingPneumothorax_chance)) then { _EACAOverdoseTarget = _EACAOverdoseTarget + 1; if (_EACAOverdoseTarget > 12) exitWith { if (random(100) < 25) then { @@ -49,6 +48,5 @@ private _surfaceArea = (_patient getVariable [QGVAR(lungSurfaceArea), 400]) - 10; _patient setVariable [QGVAR(lungSurfaceArea), _surfaceArea]; if ((random 1000) < 1) then {_patient setDamage 1;}; - }; }, 15, [_patient]] call CBA_fnc_addPerFrameHandler; }, _patient, 15] call CBA_fnc_waitAndExecute; \ No newline at end of file diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_NaloxoneLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_NaloxoneLocal.sqf index 52ca98513..cd5d5f4ff 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_NaloxoneLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_NaloxoneLocal.sqf @@ -21,7 +21,7 @@ private _medicationArray = _patient getVariable [QACEGVAR(medical,medications), private _medicationDeleted = false; { _x params ["_medication"]; - if (_medication isEqualTo "Morphine" || _medication isEqualTo "Fentanyl" || _medication isEqualTo "Nalbuphine") then { + if (_medication isEqualTo "Morphine" || _medication isEqualTo "Fentanyl" || _medication isEqualTo "Nalbuphine" || _medication isEqualTo "MorphineOverdose" || _medication isEqualTo "FentanylOverdose" || _medication isEqualTo "NalbuphineOverdose") then { if (random 1 < 0.33) then { _medicationArray deleteAt (_medicationArray find _x); _medicationDeleted = true; diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_PenthroxOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_PenthroxOverdoseLocal.sqf index 8d5c9a9af..2fd2c8f53 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_PenthroxOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_PenthroxOverdoseLocal.sqf @@ -20,8 +20,30 @@ * Public: No */ params ["_patient"]; -if (random 25 < 1) then { - private _randomValue = [3, 4]; - private _randomRhythm = selectRandom _randomValue; - _patient setVariable [QEGVAR(circulation,cardiacArrestType), _randomRhythm]; -}; \ No newline at end of file +[{ + params ["_patient"]; + private _PenthroxOverdoseTarget = 0; + [{ + params ["_patient", "_idPFH"]; + if (!(alive _patient)) exitWith { + [_idPFH] call CBA_fnc_removePerFrameHandler; + }; + _PenthroxOverdoseTarget = _PenthroxOverdoseTarget + 1; + if (_PenthroxOverdoseTarget > 6) exitWith { + [{ + if (random 25 < 1) then { + private _randomValue = [3, 4]; + private _randomRhythm = selectRandom _randomValue; + _patient setVariable [QEGVAR(circulation,cardiacArrestType), _randomRhythm]; + }; + }, [_patient], 20] call CBA_fnc_waitAndExecute; + [_idPFH] call CBA_fnc_removePerFrameHandler; + }; + private _surfaceArea = (_patient getVariable [QGVAR(lungSurfaceArea), 400]) - 5; + _patient setVariable [QGVAR(lungSurfaceArea), _surfaceArea]; + private _respRate = _patient getVariable [VAR_BREATHING_RATE, 20]; + _patient setVariable [VAR_BREATHING_RATE, (_respRate + 1), true]; + if ((random 1000) < 1) then {_patient setDamage 1;}; + }, 20, [_patient]] call CBA_fnc_addPerFrameHandler; +}, _patient, 20] call CBA_fnc_waitAndExecute; + diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_TXAOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_TXAOverdoseLocal.sqf index 947a1bdb6..f97bfeff3 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_TXAOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_TXAOverdoseLocal.sqf @@ -26,7 +26,6 @@ params ["_patient"]; if (!(alive _patient)) exitWith { [_idPFH] call CBA_fnc_removePerFrameHandler; }; - if (floor (random 100) < GVAR(deterioratingPneumothorax_chance)) then { _TXAOverdoseTarget = _TXAOverdoseTarget + 1; if (_TXAOverdoseTarget > 12) exitWith { if (random(100) < 25) then { @@ -49,7 +48,5 @@ params ["_patient"]; }; private _surfaceArea = (_patient getVariable [QGVAR(lungSurfaceArea), 400]) - 15; _patient setVariable [QGVAR(lungSurfaceArea), _surfaceArea]; - if ((random 1000) < 1) then {_patient setDamage 1;}; - }; }, 15, [_patient]] call CBA_fnc_addPerFrameHandler; }, _patient, 15] call CBA_fnc_waitAndExecute; From 8c341d92e3d174a18ce889cd0d387e2176967b06 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Thu, 24 Oct 2024 02:42:13 -0700 Subject: [PATCH 124/149] More fun stuff --- addons/pharma/ACE_Medical_Treatment.hpp | 37 ++++++++++--------- addons/pharma/XEH_postInit.sqf | 1 + .../pharma/functions/fnc_medicationLocal.sqf | 8 ++-- ...reatmentAdvanced_CaffeineOverdoseLocal.sqf | 35 +++++++++++++++++- ...eatmentAdvanced_CarbonateOverdoseLocal.sqf | 35 +++++++++++++++++- .../fnc_treatmentAdvanced_EACALocal.sqf | 2 +- ...nc_treatmentAdvanced_EACAOverdoseLocal.sqf | 7 +++- ...reatmentAdvanced_PenthroxOverdoseLocal.sqf | 2 +- .../fnc_treatmentAdvanced_TXALocal.sqf | 2 +- ...fnc_treatmentAdvanced_TXAOverdoseLocal.sqf | 7 +++- 10 files changed, 106 insertions(+), 30 deletions(-) diff --git a/addons/pharma/ACE_Medical_Treatment.hpp b/addons/pharma/ACE_Medical_Treatment.hpp index b9137e904..86e190d74 100644 --- a/addons/pharma/ACE_Medical_Treatment.hpp +++ b/addons/pharma/ACE_Medical_Treatment.hpp @@ -57,16 +57,15 @@ class ACE_ADDON(Medical_Treatment) { }; class Morphine { painReduce = 0.6; - hrIncreaseLow[] = {-10, -20}; - hrIncreaseNormal[] = {-10, -30}; - hrIncreaseHigh[] = {-10, -35}; - timeInSystem = 450; + hrIncreaseLow[] = {-5, -15}; + hrIncreaseNormal[] = {-10, -20}; + hrIncreaseHigh[] = {-10, -25}; + timeInSystem = 300; timeTillMaxEffect = 60; maxDose = 2; maxDoseDeviation = 2; incompatibleMedication[] = {}; viscosityChange = -0; - opioidRelief = 1.1; }; class MorphineIV { painReduce = 0.8; @@ -76,7 +75,7 @@ class ACE_ADDON(Medical_Treatment) { timeInSystem = 900; timeTillMaxEffect = 30; maxDose = 2; - maxDoseDeviation = 2; + maxDoseDeviation = 1; incompatibleMedication[] = {}; viscosityChange = -15; opioidRelief = 1.3; @@ -84,9 +83,9 @@ class ACE_ADDON(Medical_Treatment) { class Adenosine { painReduce = 0; hrIncreaseLow[] = {-4, -10}; - hrIncreaseNormal[] = {-5, -20}; - hrIncreaseHigh[] = {-5, -25}; - timeInSystem = 60; + hrIncreaseNormal[] = {-5, -15}; + hrIncreaseHigh[] = {-5, -20}; + timeInSystem = 180; timeTillMaxEffect = 30; maxDose = 2; maxDoseDeviation = 2; @@ -98,9 +97,9 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseLow[] = {-7, -10}; hrIncreaseNormal[] = {-15, -30}; hrIncreaseHigh[] = {-15, -35}; - timeInSystem = 180; + timeInSystem = 360; timeTillMaxEffect = 15; - maxDose = 3; + maxDose = 2; maxDoseDeviation = 2; incompatibleMedication[] = {}; viscosityChange = 0; @@ -238,7 +237,7 @@ class ACE_ADDON(Medical_Treatment) { incompatibleMedication[] = {}; viscosityChange = -5; onOverDose = ""; - maxRelief = 0.5; + maxRelief = 0.4; }; class Atropine { painReduce = 0; @@ -529,6 +528,7 @@ class ACE_ADDON(Medical_Treatment) { timeTillMaxEffect = 20; viscosityChange = -10; opioidRelief = 1.5; + opioidEffect = 0.25; }; class syringe_ketamine_5ml_1 { painReduce = 0.5; @@ -538,6 +538,7 @@ class ACE_ADDON(Medical_Treatment) { timeInSystem = 600; timeTillMaxEffect = 15; viscosityChange = 10; + opioidEffect = 0.18; }; class syringe_ketamine_5ml_3 { painReduce = 0.8; @@ -548,7 +549,7 @@ class ACE_ADDON(Medical_Treatment) { timeTillMaxEffect = 15; viscosityChange = 10; onOverDose = ""; - opioidEffect = 0.11; + opioidEffect = 0.21; }; class syringe_nalbuphine_5ml_1 { painReduce = 0.5; @@ -724,7 +725,7 @@ class ACE_ADDON(Medical_Treatment) { viscosityChange = -10; onOverDose = ""; opioidRelief = 1.1; - opioidEffect = 0.17; + opioidEffect = 0.15; }; class syringe_fentanyl_10ml_3 { painReduce = 0.8; @@ -745,6 +746,7 @@ class ACE_ADDON(Medical_Treatment) { timeInSystem = 300; timeTillMaxEffect = 30; viscosityChange = 10; + opioidEffect = 0.12; }; class syringe_ketamine_10ml_3 { painReduce = 0.8; @@ -754,6 +756,7 @@ class ACE_ADDON(Medical_Treatment) { timeInSystem = 450; timeTillMaxEffect = 30; viscosityChange = 10; + opioidEffect = 0.15; }; class syringe_nalbuphine_10ml_1 { painReduce = 0.5; @@ -804,14 +807,14 @@ class ACE_ADDON(Medical_Treatment) { opioidRelief = 1.3; }; class syringe_txa { - maxDose = 9; - maxDoseDeviation = 3; + maxDose = 6; + maxDoseDeviation = 2; incompatibleMedication[] = {}; onOverDose = ""; }; class syringe_eaca { maxDose = 6; - maxDoseDeviation = 3; + maxDoseDeviation = 2; incompatibleMedication[] = {}; onOverDose = ""; }; diff --git a/addons/pharma/XEH_postInit.sqf b/addons/pharma/XEH_postInit.sqf index 4ff370185..d657ca7c6 100644 --- a/addons/pharma/XEH_postInit.sqf +++ b/addons/pharma/XEH_postInit.sqf @@ -18,6 +18,7 @@ [QGVAR(ketamineLocal), LINKFUNC(treatmentAdvanced_KetamineLocal)] call CBA_fnc_addEventHandler; [QGVAR(fentanylLocal), LINKFUNC(treatmentAdvanced_FentanylLocal)] call CBA_fnc_addEventHandler; [QGVAR(caffeineLocal), LINKFUNC(treatmentAdvanced_CaffeineLocal)] call CBA_fnc_addEventHandler; +[QGVAR(lidocaineLocal), LINKFUNC(treatmentAdvanced_LidocaineLocal)] call CBA_fnc_addEventHandler; ["kat_fluid", LINKFUNC(fluid)] call CBA_fnc_addEventHandler; diff --git a/addons/pharma/functions/fnc_medicationLocal.sqf b/addons/pharma/functions/fnc_medicationLocal.sqf index a2825ff7b..edb2084d2 100644 --- a/addons/pharma/functions/fnc_medicationLocal.sqf +++ b/addons/pharma/functions/fnc_medicationLocal.sqf @@ -134,11 +134,11 @@ if ([QGVAR(AMS_Enabled)] call CBA_settings_fnc_get) then { if (count _medicationParts > 3) then { _medicationName = _medicationParts select 1; - if (_medicationName in ["lorazepam","EACA","TXA","amiodarone","flumazenil"]) then { + if (_medicationName in ["lorazepam","EACA","TXA","amiodarone","flumazenil","lidocaine"]) then { [format ["kat_pharma_%1Local", toLower _medicationName], [_patient, _bodyPart], _patient] call CBA_fnc_targetEvent; }; - if (_medicationName in ["ketamine","atropine","adenosine"]) then { + if (_medicationName in ["ketamine","atropine","adenosine","lidocaine"]) then { [format ["kat_pharma_%1Local", toLower _medicationName], [_patient, _bodyPart, _classname], _patient] call CBA_fnc_targetEvent; }; @@ -151,8 +151,8 @@ if ([QGVAR(AMS_Enabled)] call CBA_settings_fnc_get) then { }; } else { - if (_className in ["Lorazepam","Ketamine","EACA","TXA","Atropine","Amiodarone","Flumazenil"]) then { - [format ["kat_pharma_%1Local", toLower _className], [_patient, _bodyPart], _patient] call CBA_fnc_targetEvent; + if (_className in ["Lorazepam","Ketamine","EACA","TXA","Atropine","Amiodarone","Flumazenil","lidocaine"]) then { + [format ["kat_pharma_%1Local", toLower _className], [_patient, _bodyPart, _classname], _patient] call CBA_fnc_targetEvent; }; if (_className in ["Fentanyl","Morphine","Nalbuphine"]) then { diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_CaffeineOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_CaffeineOverdoseLocal.sqf index 7fd23a262..b242f5b09 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_CaffeineOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_CaffeineOverdoseLocal.sqf @@ -14,4 +14,37 @@ * Public: No */ params ["_patient"]; -[_patient, CaffineOverdose, 1, 120, 30, "", "", "", "", ""] call EFUNC(vitals,addMedicationAdjustment); +[{ + params ["_patient"]; + private _CaffineOverdoseTarget = 0; + [{ + params ["_patient", "_idPFH"]; + if (!(alive _patient)) exitWith { + [_idPFH] call CBA_fnc_removePerFrameHandler; + }; + _CaffineOverdoseTarget = _CaffineOverdoseTarget + 1; + if (_CaffineOverdoseTarget > 12) exitWith { + [_idPFH] call CBA_fnc_removePerFrameHandler; + }; + private _hr = _patient getVariable [VAR_HEART_RATE, 80]; + private _hrAdd = (_hr + 3); + _patient setVariable [VAR_HEART_RATE, _hrAdd, true]; + }, 10, [_patient]] call CBA_fnc_addPerFrameHandler; +}, _patient, 10] call CBA_fnc_waitAndExecute; +[{ + params ["_patient"]; + private _CaffineOverdoseTarget = 0; + [{ + params ["_patient", "_idPFH"]; + if (!(alive _patient)) exitWith { + [_idPFH] call CBA_fnc_removePerFrameHandler; + }; + _CaffineOverdoseTarget = _CaffineOverdoseTarget + 1; + if (_CaffineOverdoseTarget > 12) exitWith { + [_idPFH] call CBA_fnc_removePerFrameHandler; + }; + private _hr = _patient getVariable [VAR_HEART_RATE, 80]; + private _hrAdd = (_hr - 3); + _patient setVariable [VAR_HEART_RATE, _hrAdd, true]; + }, 10, [_patient]] call CBA_fnc_addPerFrameHandler; +}, _patient, 150] call CBA_fnc_waitAndExecute; \ No newline at end of file diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_CarbonateOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_CarbonateOverdoseLocal.sqf index 035af1293..a5a7fe264 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_CarbonateOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_CarbonateOverdoseLocal.sqf @@ -16,5 +16,38 @@ * Public: No */ params ["_patient"]; -[_patient, CarbonateOverdose, 1, 30, 10, "", "", "", "", ""] call EFUNC(vitals,addMedicationAdjustment); +[{ + params ["_patient"]; + private _CarbonateOverdoseTarget = 0; + [{ + params ["_patient", "_idPFH"]; + if (!(alive _patient)) exitWith { + [_idPFH] call CBA_fnc_removePerFrameHandler; + }; + _CarbonateOverdoseTarget = _CarbonateOverdoseTarget + 1; + if (_CarbonateOverdoseTarget > 18) exitWith { + [_idPFH] call CBA_fnc_removePerFrameHandler; + }; + private _hr = _patient getVariable [VAR_HEART_RATE, 80]; + private _hrAdd = (_hr + 1); + _patient setVariable [VAR_HEART_RATE, _hrAdd, true]; + }, 10, [_patient]] call CBA_fnc_addPerFrameHandler; +}, _patient, 10] call CBA_fnc_waitAndExecute; +[{ + params ["_patient"]; + private _CarbonateOverdoseTarget = 0; + [{ + params ["_patient", "_idPFH"]; + if (!(alive _patient)) exitWith { + [_idPFH] call CBA_fnc_removePerFrameHandler; + }; + _CarbonateOverdoseTarget = _CarbonateOverdoseTarget + 1; + if (_CarbonateOverdoseTarget > 18) exitWith { + [_idPFH] call CBA_fnc_removePerFrameHandler; + }; + private _hr = _patient getVariable [VAR_HEART_RATE, 80]; + private _hrAdd = (_hr - 2); + _patient setVariable [VAR_HEART_RATE, _hrAdd, true]; + }, 10, [_patient]] call CBA_fnc_addPerFrameHandler; +}, _patient, 150] call CBA_fnc_waitAndExecute; diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_EACALocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_EACALocal.sqf index 75f92dc3f..6ad9bb210 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_EACALocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_EACALocal.sqf @@ -57,7 +57,7 @@ if (_IVactual > 1) then { if (!(GVAR(coagulation)) || GVAR(coagulation_allow_EACA_script)) then { - if (_IVactual != 5) then { + if (_IVactual != 7) then { if (_eacaEffectiveness > 0.3)&& !(_allowStack) exitWith {}; [{ diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_EACAOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_EACAOverdoseLocal.sqf index aaebb95e2..fc9cadd29 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_EACAOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_EACAOverdoseLocal.sqf @@ -45,8 +45,11 @@ }; [_idPFH] call CBA_fnc_removePerFrameHandler; }; - private _surfaceArea = (_patient getVariable [QGVAR(lungSurfaceArea), 400]) - 10; - _patient setVariable [QGVAR(lungSurfaceArea), _surfaceArea]; + private _surfaceArea = (_patient getVariable [QEGVAR(breathing,lungSurfaceArea), 400]) - 10; + _patient setVariable [QEGVAR(breathing,lungSurfaceArea), _surfaceArea]; + private _coagulationFactor = (_patient getVariable [QGVAR(coagulationFactor), 30]); + private _factorstoremove = 1 + _patient setVariable [QGVAR(coagulationFactor), (_coagulationFactor - _factorstoremove), true]; if ((random 1000) < 1) then {_patient setDamage 1;}; }, 15, [_patient]] call CBA_fnc_addPerFrameHandler; }, _patient, 15] call CBA_fnc_waitAndExecute; \ No newline at end of file diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_PenthroxOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_PenthroxOverdoseLocal.sqf index 2fd2c8f53..bced50e74 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_PenthroxOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_PenthroxOverdoseLocal.sqf @@ -41,7 +41,7 @@ params ["_patient"]; }; private _surfaceArea = (_patient getVariable [QGVAR(lungSurfaceArea), 400]) - 5; _patient setVariable [QGVAR(lungSurfaceArea), _surfaceArea]; - private _respRate = _patient getVariable [VAR_BREATHING_RATE, 20]; + private _respRate = _patient getVariable [VAR_BREATHING_RATE, 15]; _patient setVariable [VAR_BREATHING_RATE, (_respRate + 1), true]; if ((random 1000) < 1) then {_patient setDamage 1;}; }, 20, [_patient]] call CBA_fnc_addPerFrameHandler; diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_TXALocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_TXALocal.sqf index d2ce1f44a..ea55fa021 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_TXALocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_TXALocal.sqf @@ -57,7 +57,7 @@ if (_IVactual > 1) then { if (!(GVAR(coagulation)) || GVAR(coagulation_allow_TXA_script)) then { - if (_IVactual != 5) then { + if (_IVactual != 7) then { if ((_txaEffectiveness > 0.3) && !(_allowStack)) exitWith {}; diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_TXAOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_TXAOverdoseLocal.sqf index f97bfeff3..9187fd0cc 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_TXAOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_TXAOverdoseLocal.sqf @@ -46,7 +46,10 @@ params ["_patient"]; }; [_idPFH] call CBA_fnc_removePerFrameHandler; }; - private _surfaceArea = (_patient getVariable [QGVAR(lungSurfaceArea), 400]) - 15; - _patient setVariable [QGVAR(lungSurfaceArea), _surfaceArea]; + private _surfaceArea = (_patient getVariable [QEGVAR(breathing,lungSurfaceArea), 400]) - 10; + _patient setVariable [QEGVAR(breathing,lungSurfaceArea), _surfaceArea]; + private _coagulationFactor = (_patient getVariable [QGVAR(coagulationFactor), 30]); + private _factorstoremove = 1 + _patient setVariable [QGVAR(coagulationFactor), (_coagulationFactor - _factorstoremove), true]; }, 15, [_patient]] call CBA_fnc_addPerFrameHandler; }, _patient, 15] call CBA_fnc_waitAndExecute; From 6411ce397ba23c84c7ec51bf37c607c838ea2b96 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Sun, 27 Oct 2024 01:32:25 -0700 Subject: [PATCH 125/149] small fixes --- addons/gui/functions/fnc_onMenuOpen.sqf | 3 +++ addons/gui/functions/fnc_prepSyringe.sqf | 16 +++++++++------- addons/gui/gui.hpp | 7 +++++-- addons/pharma/stringtable.xml | 8 ++++---- 4 files changed, 21 insertions(+), 13 deletions(-) diff --git a/addons/gui/functions/fnc_onMenuOpen.sqf b/addons/gui/functions/fnc_onMenuOpen.sqf index 3b3a1e1ad..4b838845e 100644 --- a/addons/gui/functions/fnc_onMenuOpen.sqf +++ b/addons/gui/functions/fnc_onMenuOpen.sqf @@ -98,6 +98,9 @@ if (EGVAR(pharma,RequireInsIV) && EGVAR(pharma,IVflowControl)) then { (_display displayCtrl IDC_IV_FLOW_SHOWBUTTON) ctrlShow true; }; +if (EGVAR(pharma,AMS_Enabled)) then { + (_display displayCtrl IDC_SYRINGE_OPEN) ctrlShow true; +}; // Set toggle button icon and tooltip private _ctrl = _display displayCtrl IDC_TOGGLE; if (ACEGVAR(medical_gui,target) == ACE_player) then { diff --git a/addons/gui/functions/fnc_prepSyringe.sqf b/addons/gui/functions/fnc_prepSyringe.sqf index b1ec6d728..60f151060 100644 --- a/addons/gui/functions/fnc_prepSyringe.sqf +++ b/addons/gui/functions/fnc_prepSyringe.sqf @@ -14,23 +14,25 @@ * * Public: No */ -if !(EGVAR(pharma,AMS_Enabled)) exitWith {}; private _playerMedicalLevel = [_player] call ace_medical_fnc_getMedicLevel; private _requiredMedicalLevel = GVAR(medLvl_PrepSyringe); if (_playerMedicalLevel < _requiredMedicalLevel) exitWith {}; - -[EGVAR(pharma,prepTime_PrepSyringe), [], { private _syringeBox = findDisplay 38580 displayCtrl 71303; private _medicationBox = findDisplay 38580 displayCtrl 71305; private _doseCombo = findDisplay 38580 displayCtrl 71307; - private _syringeSelected = lbCurSel _syringeBox; private _medicationSelected = lbCurSel _medicationBox; private _doseSelected = lbCurSel _doseCombo; - private _syringeType = _syringeBox lbData _syringeSelected; private _medicationType = _medicationBox lbData _medicationSelected; private _doseType = _doseCombo lbValue _doseSelected; +private _syringeClassName = format ["kat_syringe_%1_%2_%3", _medicationType, _syringeType, _doseType]; +private _hasSyringe = isClass (configFile >> "CfgWeapons" >> _syringeClassName); +if (!_hasSyringe) exitWith { + hint format ["This syringe combination does not exist. kat_syringe %1 %2 %3", _medicationType, _syringeType, _doseType]; + [{hint ""}, [], 5] call CBA_fnc_waitAndExecute; +}; +[EGVAR(pharma,prepTime_PrepSyringe), [], { + [player, _medicationType, _syringeType, _doseType] call kat_pharma_fnc_prepareSyringe; +}, {}, "Preparing Syringe..."] call ace_common_fnc_progressBar; - -[player, _medicationType, _syringeType, _doseType] call kat_pharma_fnc_prepareSyringe;}, {}, "Preparing Syringe..."] call ace_common_fnc_progressBar; \ No newline at end of file diff --git a/addons/gui/gui.hpp b/addons/gui/gui.hpp index 2c22bd343..eb4980dca 100644 --- a/addons/gui/gui.hpp +++ b/addons/gui/gui.hpp @@ -668,8 +668,11 @@ class ACE_Medical_Menu { y = QUOTE(POS_Y(0)); w = QUOTE(POS_W(4.4)); h = QUOTE(POS_H(1)); - colorBackgroundDisabled[] = GUI_BCG_COLOR; - colorBackground[] = GUI_BCG_COLOR; + show = 0; + colorBackground[] = {0, 0, 0, 0}; + colorBackgroundActive[] = {1, 1, 1, 0.4}; + colorBackgroundDisabled[] = {0, 0, 0, 0}; + colorBorder[] = {0,0,0,0}; onButtonClick = QUOTE([] call FUNC(openSyringeMenu)); class Attributes { align = "Right"; diff --git a/addons/pharma/stringtable.xml b/addons/pharma/stringtable.xml index f656055a7..a15b1ba26 100644 --- a/addons/pharma/stringtable.xml +++ b/addons/pharma/stringtable.xml @@ -4151,16 +4151,16 @@ 5ml Syringe loaded with 0.2mg of Flumazenil - 5ml Syringe/0.2mg Etomidate + 5ml Syringe/20mg Etomidate - 5ml Syringe loaded with 0.2mg of Etomidate + 5ml Syringe loaded with 20mg of Etomidate - 5ml Syringe/0.3mg Etomidate + 5ml Syringe/30mg Etomidate - 5ml Syringe loaded with 0.3mg of Etomidate + 5ml Syringe loaded with 30mg of Etomidate 5ml Syringe/10mcg Epinephrine From 81d0e1d8a3cc41ae951f877cbbdc2afc1c7ab374 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Wed, 30 Oct 2024 05:46:28 -0700 Subject: [PATCH 126/149] Fixes --- .../fnc_treatmentAdvanced_CaffeineOverdoseLocal.sqf | 8 ++++---- .../fnc_treatmentAdvanced_CarbonateOverdoseLocal.sqf | 8 ++++---- .../functions/fnc_treatmentAdvanced_EACAOverdoseLocal.sqf | 2 +- .../functions/fnc_treatmentAdvanced_TXAOverdoseLocal.sqf | 2 +- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_CaffeineOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_CaffeineOverdoseLocal.sqf index b242f5b09..194309fb7 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_CaffeineOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_CaffeineOverdoseLocal.sqf @@ -27,8 +27,8 @@ params ["_patient"]; [_idPFH] call CBA_fnc_removePerFrameHandler; }; private _hr = _patient getVariable [VAR_HEART_RATE, 80]; - private _hrAdd = (_hr + 3); - _patient setVariable [VAR_HEART_RATE, _hrAdd, true]; + private _hrAdd = (_hr + 3); + _patient setVariable [VAR_HEART_RATE, _hrAdd, true]; }, 10, [_patient]] call CBA_fnc_addPerFrameHandler; }, _patient, 10] call CBA_fnc_waitAndExecute; [{ @@ -44,7 +44,7 @@ params ["_patient"]; [_idPFH] call CBA_fnc_removePerFrameHandler; }; private _hr = _patient getVariable [VAR_HEART_RATE, 80]; - private _hrAdd = (_hr - 3); - _patient setVariable [VAR_HEART_RATE, _hrAdd, true]; + private _hrAdd = (_hr - 3); + _patient setVariable [VAR_HEART_RATE, _hrAdd, true]; }, 10, [_patient]] call CBA_fnc_addPerFrameHandler; }, _patient, 150] call CBA_fnc_waitAndExecute; \ No newline at end of file diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_CarbonateOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_CarbonateOverdoseLocal.sqf index a5a7fe264..26c0a917c 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_CarbonateOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_CarbonateOverdoseLocal.sqf @@ -29,8 +29,8 @@ params ["_patient"]; [_idPFH] call CBA_fnc_removePerFrameHandler; }; private _hr = _patient getVariable [VAR_HEART_RATE, 80]; - private _hrAdd = (_hr + 1); - _patient setVariable [VAR_HEART_RATE, _hrAdd, true]; + private _hrAdd = (_hr + 1); + _patient setVariable [VAR_HEART_RATE, _hrAdd, true]; }, 10, [_patient]] call CBA_fnc_addPerFrameHandler; }, _patient, 10] call CBA_fnc_waitAndExecute; [{ @@ -46,8 +46,8 @@ params ["_patient"]; [_idPFH] call CBA_fnc_removePerFrameHandler; }; private _hr = _patient getVariable [VAR_HEART_RATE, 80]; - private _hrAdd = (_hr - 2); - _patient setVariable [VAR_HEART_RATE, _hrAdd, true]; + private _hrAdd = (_hr - 2); + _patient setVariable [VAR_HEART_RATE, _hrAdd, true]; }, 10, [_patient]] call CBA_fnc_addPerFrameHandler; }, _patient, 150] call CBA_fnc_waitAndExecute; diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_EACAOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_EACAOverdoseLocal.sqf index fc9cadd29..a7cc8ebd1 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_EACAOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_EACAOverdoseLocal.sqf @@ -48,7 +48,7 @@ private _surfaceArea = (_patient getVariable [QEGVAR(breathing,lungSurfaceArea), 400]) - 10; _patient setVariable [QEGVAR(breathing,lungSurfaceArea), _surfaceArea]; private _coagulationFactor = (_patient getVariable [QGVAR(coagulationFactor), 30]); - private _factorstoremove = 1 + private _factorstoremove = 1; _patient setVariable [QGVAR(coagulationFactor), (_coagulationFactor - _factorstoremove), true]; if ((random 1000) < 1) then {_patient setDamage 1;}; }, 15, [_patient]] call CBA_fnc_addPerFrameHandler; diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_TXAOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_TXAOverdoseLocal.sqf index 9187fd0cc..920872a7f 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_TXAOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_TXAOverdoseLocal.sqf @@ -49,7 +49,7 @@ params ["_patient"]; private _surfaceArea = (_patient getVariable [QEGVAR(breathing,lungSurfaceArea), 400]) - 10; _patient setVariable [QEGVAR(breathing,lungSurfaceArea), _surfaceArea]; private _coagulationFactor = (_patient getVariable [QGVAR(coagulationFactor), 30]); - private _factorstoremove = 1 + private _factorstoremove = 1; _patient setVariable [QGVAR(coagulationFactor), (_coagulationFactor - _factorstoremove), true]; }, 15, [_patient]] call CBA_fnc_addPerFrameHandler; }, _patient, 15] call CBA_fnc_waitAndExecute; From 3d6e93e378e4961b056005a6426fdaa675411b21 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Wed, 30 Oct 2024 07:15:31 -0700 Subject: [PATCH 127/149] Fun times --- addons/gui/functions/fnc_prepSyringe.sqf | 12 +---- .../pharma/ACE_Medical_Treatment_Actions.hpp | 2 +- addons/pharma/CfgWeapons.hpp | 6 +-- .../pharma/functions/fnc_prepareSyringe.sqf | 10 ++-- addons/pharma/stringtable.xml | 48 +++++++----------- addons/pharma/ui/icon_AdenosineIV.paa | Bin 0 -> 57491 bytes addons/pharma/ui/icon_AtropineIV.paa | Bin 0 -> 92794 bytes addons/pharma/ui/icon_MorphineIV.paa | Bin 0 -> 67394 bytes 8 files changed, 28 insertions(+), 50 deletions(-) create mode 100644 addons/pharma/ui/icon_AdenosineIV.paa create mode 100644 addons/pharma/ui/icon_AtropineIV.paa create mode 100644 addons/pharma/ui/icon_MorphineIV.paa diff --git a/addons/gui/functions/fnc_prepSyringe.sqf b/addons/gui/functions/fnc_prepSyringe.sqf index 60f151060..5bb8ddf5f 100644 --- a/addons/gui/functions/fnc_prepSyringe.sqf +++ b/addons/gui/functions/fnc_prepSyringe.sqf @@ -17,6 +17,7 @@ private _playerMedicalLevel = [_player] call ace_medical_fnc_getMedicLevel; private _requiredMedicalLevel = GVAR(medLvl_PrepSyringe); if (_playerMedicalLevel < _requiredMedicalLevel) exitWith {}; +[EGVAR(pharma,prepTime_PrepSyringe), [], { private _syringeBox = findDisplay 38580 displayCtrl 71303; private _medicationBox = findDisplay 38580 displayCtrl 71305; private _doseCombo = findDisplay 38580 displayCtrl 71307; @@ -26,13 +27,4 @@ private _doseSelected = lbCurSel _doseCombo; private _syringeType = _syringeBox lbData _syringeSelected; private _medicationType = _medicationBox lbData _medicationSelected; private _doseType = _doseCombo lbValue _doseSelected; -private _syringeClassName = format ["kat_syringe_%1_%2_%3", _medicationType, _syringeType, _doseType]; -private _hasSyringe = isClass (configFile >> "CfgWeapons" >> _syringeClassName); -if (!_hasSyringe) exitWith { - hint format ["This syringe combination does not exist. kat_syringe %1 %2 %3", _medicationType, _syringeType, _doseType]; - [{hint ""}, [], 5] call CBA_fnc_waitAndExecute; -}; -[EGVAR(pharma,prepTime_PrepSyringe), [], { - [player, _medicationType, _syringeType, _doseType] call kat_pharma_fnc_prepareSyringe; -}, {}, "Preparing Syringe..."] call ace_common_fnc_progressBar; - +[player, _medicationType, _syringeType, _doseType] call kat_pharma_fnc_prepareSyringe;}, {}, "Preparing Syringe..."] call ace_common_fnc_progressBar; \ No newline at end of file diff --git a/addons/pharma/ACE_Medical_Treatment_Actions.hpp b/addons/pharma/ACE_Medical_Treatment_Actions.hpp index fd576d13e..0552b77e2 100644 --- a/addons/pharma/ACE_Medical_Treatment_Actions.hpp +++ b/addons/pharma/ACE_Medical_Treatment_Actions.hpp @@ -252,7 +252,7 @@ class ACE_Medical_Treatment_Actions { sounds[] = {}; }; class AtropineIV: EACA { - displayName = CSTRING(Take_Atropine); + displayName = CSTRING(Take_AtropineIV); allowedSelections[] = {"Body", "LeftArm", "RightArm", "LeftLeg", "RightLeg"}; allowSelfTreatment = 1; medicRequired = QGVAR(medLvl_AtropineIV); diff --git a/addons/pharma/CfgWeapons.hpp b/addons/pharma/CfgWeapons.hpp index bee8bb30d..c6ec56ece 100644 --- a/addons/pharma/CfgWeapons.hpp +++ b/addons/pharma/CfgWeapons.hpp @@ -182,7 +182,7 @@ class CfgWeapons { class kat_atropineIV: ACE_ItemCore { scope = 2; displayName = CSTRING(AtropineIV_Display); - picture = QPATHTOF(ui\icon_EpinephrineIV.paa); + picture = QPATHTOF(ui\icon_AtropineIV.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; descriptionShort = CSTRING(AtropineIV_DescShort); ACE_isMedicalItem = 1; @@ -270,7 +270,7 @@ class CfgWeapons { class kat_morphineIV: ACE_ItemCore { scope = 2; displayName = CSTRING(MorphineIV_displayName); - picture = QPATHTOF(ui\icon_EpinephrineIV.paa); + picture = QPATHTOF(ui\icon_MorphineIV.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; descriptionShort = CSTRING(MorphineIV_DescShort); ACE_isMedicalItem = 1; @@ -281,7 +281,7 @@ class CfgWeapons { class kat_adenosineIV: ACE_ItemCore { scope = 2; displayName = CSTRING(AdenosineIV_displayName); - picture = QPATHTOF(ui\icon_EpinephrineIV.paa); + picture = QPATHTOF(ui\icon_AdenosineIV.paa); model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; descriptionShort = CSTRING(AdenosineIV_DescShort); ACE_isMedicalItem = 1; diff --git a/addons/pharma/functions/fnc_prepareSyringe.sqf b/addons/pharma/functions/fnc_prepareSyringe.sqf index 77214ee8f..58749053a 100644 --- a/addons/pharma/functions/fnc_prepareSyringe.sqf +++ b/addons/pharma/functions/fnc_prepareSyringe.sqf @@ -6,17 +6,15 @@ * * Arguments: * 0: Player - * 1: Player - * 2: Params - * 0: Class name of medication - * 1: Syringe type - * 2: Dose type + * 1: Class name of medication + * 2: Syringe type + * 3: Dose type * * Return Value: * None * * Example: - * [player, ["TXA", "5ml", "1"]] call kat_pharma_fnc_prepareSyringe; + * [player, "TXA", "5ml", "1"] call kat_pharma_fnc_prepareSyringe; * * Public: No */ diff --git a/addons/pharma/stringtable.xml b/addons/pharma/stringtable.xml index a15b1ba26..c6d98a92d 100644 --- a/addons/pharma/stringtable.xml +++ b/addons/pharma/stringtable.xml @@ -493,22 +493,7 @@ Atropine autoinjector - IV Atropine - Atropin - Atropina - Atropine - 阿托品 - 阿托品 - Atropina - Atropina - 아트로핀 - Atropin - Atropin - アトロピン - Атропин - Atropina - Atropiini - Atropine + Atropine IV Inject Atropine @@ -528,6 +513,9 @@ Työnnä atropiinia Injecteer Atropine + + Inject Atropine IV + Encourages clot formation Fördert die Gerinnungsbildung @@ -2113,10 +2101,10 @@ Behandeltijd van Atropine - Medical level required for IV Atropine + Medical level required for Atropine IV - Treatment time for IV Atropine + Treatment time for Atropine IV Medical level required for EACA @@ -3939,7 +3927,7 @@ Epinéphrine IV - IV Epinephrine + Epinephrine IV アドレナリン静脈注射 (IV) Epinefrina IV IV Adrenaline @@ -4532,16 +4520,16 @@ KAT Morphine Settings - IV Morphine + Morphine IV - IV Morphine + Morphine IV - Medical level required for IV Morphine + Medical level required for Morphine IV - Treatment time for IV Morphine + Treatment time for Morphine IV Medical level required for IM Morphine @@ -4550,25 +4538,25 @@ Treatment time for IM Morphine - Push IV Morphine + Push Morphine IV - IV Adenosine + Adenosine IV - Medical level required for IV Adenosine + Medical level required for Adenosine IV - Treatment time for IV Adenosine + Treatment time for Adenosine IV - IV Adenosine + Adenosine IV - IV Adenosine + Adenosine IV - Push IV Adenosine + Push Adenosine IV diff --git a/addons/pharma/ui/icon_AdenosineIV.paa b/addons/pharma/ui/icon_AdenosineIV.paa new file mode 100644 index 0000000000000000000000000000000000000000..3d5d733ba8ae324b1f80556de2979a9394145b29 GIT binary patch literal 57491 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

r035yrxa_AlC-7x% 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

t6oBHTgzkCra_O3s8h-P`(aXr-Y|5*EByI!x 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 literal 0 HcmV?d00001 From f571088c7777a559b2a537e122c9e691b7809897 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Wed, 30 Oct 2024 08:27:26 -0700 Subject: [PATCH 128/149] Adds alteplase and effects --- .../gui/functions/fnc_updateMedications.sqf | 3 +- addons/pharma/ACE_Medical_Treatment.hpp | 12 +++++ .../pharma/ACE_Medical_Treatment_Actions.hpp | 11 ++++ addons/pharma/CfgFunctions.hpp | 3 -- addons/pharma/CfgWeapons.hpp | 22 ++++++++ addons/pharma/XEH_PREP.hpp | 2 + addons/pharma/XEH_preInit.sqf | 18 +++++++ .../pharma/functions/fnc_medicationLocal.sqf | 2 +- .../fnc_treatmentAdvanced_AlteplaseLocal.sqf | 48 ++++++++++++++++++ ...tAdvanced_AmiodaroneOverdoseLocal copy.sqf | 18 +++++++ .../fnc_treatmentAdvanced_NaloxoneLocal.sqf | 9 +++- ...reatmentAdvanced_NaloxoneOverdoseLocal.sqf | 17 +++++++ addons/pharma/stringtable.xml | 27 ++++++++++ addons/pharma/ui/icon_Alteplase.paa | Bin 0 -> 65311 bytes 14 files changed, 186 insertions(+), 6 deletions(-) create mode 100644 addons/pharma/functions/fnc_treatmentAdvanced_AlteplaseLocal.sqf create mode 100644 addons/pharma/functions/fnc_treatmentAdvanced_AmiodaroneOverdoseLocal copy.sqf create mode 100644 addons/pharma/functions/fnc_treatmentAdvanced_NaloxoneOverdoseLocal.sqf create mode 100644 addons/pharma/ui/icon_Alteplase.paa diff --git a/addons/gui/functions/fnc_updateMedications.sqf b/addons/gui/functions/fnc_updateMedications.sqf index 95c13ebd2..c352432f2 100644 --- a/addons/gui/functions/fnc_updateMedications.sqf +++ b/addons/gui/functions/fnc_updateMedications.sqf @@ -36,7 +36,8 @@ disableSerialization; "kat_TXA", "kat_morphineIV", "kat_adenosineIV", - "kat_atropineIV" + "kat_atropineIV", + "kat_alteplase" ]; private _medicationsFound = { diff --git a/addons/pharma/ACE_Medical_Treatment.hpp b/addons/pharma/ACE_Medical_Treatment.hpp index 86e190d74..58d683171 100644 --- a/addons/pharma/ACE_Medical_Treatment.hpp +++ b/addons/pharma/ACE_Medical_Treatment.hpp @@ -92,6 +92,18 @@ class ACE_ADDON(Medical_Treatment) { incompatibleMedication[] = {}; viscosityChange = 0; }; + class Alteplase { + painReduce = 0; + hrIncreaseLow[] = {-4, -10}; + hrIncreaseNormal[] = {-5, -15}; + hrIncreaseHigh[] = {-5, -20}; + timeInSystem = 180; + timeTillMaxEffect = 30; + maxDose = 1; + maxDoseDeviation = 0; + incompatibleMedication[] = {}; + viscosityChange = 0; + }; class AdenosineIV { painReduce = 0; hrIncreaseLow[] = {-7, -10}; diff --git a/addons/pharma/ACE_Medical_Treatment_Actions.hpp b/addons/pharma/ACE_Medical_Treatment_Actions.hpp index 0552b77e2..7222038f3 100644 --- a/addons/pharma/ACE_Medical_Treatment_Actions.hpp +++ b/addons/pharma/ACE_Medical_Treatment_Actions.hpp @@ -596,6 +596,17 @@ class ACE_Medical_Treatment_Actions { callbackSuccess = QFUNC(medication); sounds[] = {}; }; + class syringe_alteplase_5ml_3: syringe_EACA_5ml_1 { + displayName = CSTRING(push_alteplase_IV_3); + displayNameProgress = CSTRING(pushing_alteplase_IV_3); + allowedSelections[] = {"Body", "LeftArm", "RightArm", "LeftLeg", "RightLeg"}; + allowSelfTreatment = 1; + medicRequired = QGVAR(medLvl_alteplase); + treatmentTime = QGVAR(treatmentTime_alteplase); + items[] = {"kat_syringe_alteplase_5ml_3"}; + callbackSuccess = QFUNC(medication); + sounds[] = {}; + }; class syringe_lidocaine_5ml_1: syringe_EACA_5ml_1 { displayName = CSTRING(push_lidocaine_IV_1); displayNameProgress = CSTRING(pushing_lidocaine_IV_1); diff --git a/addons/pharma/CfgFunctions.hpp b/addons/pharma/CfgFunctions.hpp index e62ca0a7c..d55116ed7 100644 --- a/addons/pharma/CfgFunctions.hpp +++ b/addons/pharma/CfgFunctions.hpp @@ -17,9 +17,6 @@ class CfgFunctions { class tourniquetRemove { file = QPATHTOF(functions\fnc_tourniquetRemove.sqf); }; - class ivBagLocal { - file = QPATHTOF(functions\fnc_ivBagLocal.sqf); - }; class overDose { file = QPATHTOF(functions\fnc_overDose.sqf); }; diff --git a/addons/pharma/CfgWeapons.hpp b/addons/pharma/CfgWeapons.hpp index c6ec56ece..27f6c6074 100644 --- a/addons/pharma/CfgWeapons.hpp +++ b/addons/pharma/CfgWeapons.hpp @@ -289,6 +289,17 @@ class CfgWeapons { mass = 0.5; }; }; + class kat_alteplase: ACE_ItemCore { + scope = 2; + displayName = CSTRING(Alteplase_Display); + picture = QPATHTOF(ui\icon_Alteplase.paa); + model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; + descriptionShort = CSTRING(Alteplase_DescShort); + ACE_isMedicalItem = 1; + class ItemInfo: CBA_MiscItem_ItemInfo { + mass = 0.5; + }; + }; class kat_coag_sense: ACE_ItemCore { scope = 2; author = "Miss Heda"; @@ -553,6 +564,17 @@ class CfgWeapons { mass = 1; }; }; + class kat_syringe_alteplase_5ml_3: ACE_ItemCore { + scope = 1; + displayName = CSTRING(Syringe_alteplase_5_3_Display); + picture = QPATHTOF(ui\syringe_item.paa); + model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; + descriptionShort = CSTRING(Syringe_alteplase_5_3_DescShort); + ACE_isMedicalItem = 1; + class ItemInfo: CBA_MiscItem_ItemInfo { + mass = 1; + }; + }; class kat_syringe_epinephrineIV_5ml_1: ACE_ItemCore { scope = 1; displayName = CSTRING(Syringe_epinephrineIV_5_1_Display); diff --git a/addons/pharma/XEH_PREP.hpp b/addons/pharma/XEH_PREP.hpp index 1bd1f4d3e..6f0188df4 100644 --- a/addons/pharma/XEH_PREP.hpp +++ b/addons/pharma/XEH_PREP.hpp @@ -20,6 +20,8 @@ PREP(salineCheck); PREP(tourniquetRemove); PREP(treatmentAdvanced_AdenosineLocal); PREP(treatmentAdvanced_AdenosineOverdoseLocal); +PREP(treatmentAdvanced_AlteplaseLocal); +PREP(treatmentAdvanced_AlteplaseOverdoseLocal); PREP(treatmentAdvanced_AmiodaroneLocal); PREP(treatmentAdvanced_AmiodaroneOverdoseLocal); PREP(treatmentAdvanced_AtropineLocal); diff --git a/addons/pharma/XEH_preInit.sqf b/addons/pharma/XEH_preInit.sqf index 26d07fc25..fc6152735 100644 --- a/addons/pharma/XEH_preInit.sqf +++ b/addons/pharma/XEH_preInit.sqf @@ -1059,4 +1059,22 @@ PREP_RECOMPILE_END; true ] call CBA_Settings_fnc_init; +[ + QGVAR(medLvl_Alteplase), + "LIST", + [LLSTRING(medLvl_Alteplase)], + [CBA_SETTINGS_CAT, LSTRING(SubCategory_Alteplase)], + [[0, 1, 2], [ACELSTRING(medical_treatment,Anyone), ACELSTRING(medical_treatment,Medics), ACELSTRING(medical_treatment,Doctors)], 0], + true +] call CBA_Settings_fnc_init; + +[ + QGVAR(treatmentTime_Alteplase), + "SLIDER", + [LLSTRING(treatmentTime_Alteplase)], + [CBA_SETTINGS_CAT, LSTRING(SubCategory_Alteplase)], + [0.1, 10, 7, 1], + true +] call CBA_Settings_fnc_init; + ADDON = true; diff --git a/addons/pharma/functions/fnc_medicationLocal.sqf b/addons/pharma/functions/fnc_medicationLocal.sqf index a20873e6f..689c3f3dc 100644 --- a/addons/pharma/functions/fnc_medicationLocal.sqf +++ b/addons/pharma/functions/fnc_medicationLocal.sqf @@ -137,7 +137,7 @@ if ([QGVAR(AMS_Enabled)] call CBA_settings_fnc_get) then { [format ["kat_pharma_%1Local", toLower _medicationName], [_patient, _bodyPart], _patient] call CBA_fnc_targetEvent; }; - if (_medicationName in ["ketamine","atropine","adenosine","lidocaine"]) then { + if (_medicationName in ["ketamine","atropine","adenosine","alteplase","lidocaine"]) then { [format ["kat_pharma_%1Local", toLower _medicationName], [_patient, _bodyPart, _classname], _patient] call CBA_fnc_targetEvent; }; diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_AlteplaseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_AlteplaseLocal.sqf new file mode 100644 index 000000000..bf98213a3 --- /dev/null +++ b/addons/pharma/functions/fnc_treatmentAdvanced_AlteplaseLocal.sqf @@ -0,0 +1,48 @@ +#include "..\script_component.hpp" +/* + * Author: Mazinski.H, Edited by MiszczuZPolski and Cplhardcore + * Applies Bradycardia randomly + * + * Arguments: + * 0: Patient + * + * Return Value: + * None + * + * Example: + * [cursorTarget] call kat_pharma_fnc_treatmentAdvanced_AmiodaroneLocal; + * + * Public: No + */ +params ["_patient"]; +private _medicationArray = _patient getVariable [QACEGVAR(medical,medications), []]; +{ + _x params ["_medication"]; + private _lowerMed = toLower _medication; + if ( + (_lowerMed find "txa" != -1) || + (_lowerMed find "eaca" != -1) + ) then { + _medicationArray deleteAt (_medicationArray find _x); + }; +} forEach _medicationArray; + +_patient setVariable [QACEGVAR(medical,medications), _medicationArray, true]; +[{ + params ["_patient"]; + private _AlteplaseTarget = 0; + [{ + params ["_patient", "_idPFH"]; + if (!(alive _patient)) exitWith { + [_idPFH] call CBA_fnc_removePerFrameHandler; + }; + _TXAOverdoseTarget = _TXAOverdoseTarget + 1; + if (_TXAOverdoseTarget > 24) exitWith { + [_idPFH] call CBA_fnc_removePerFrameHandler;}; + private _surfaceArea = (_patient getVariable [QEGVAR(breathing,lungSurfaceArea), 400]) + 5; + _patient setVariable [QEGVAR(breathing,lungSurfaceArea), _surfaceArea]; + private _coagulationFactor = (_patient getVariable [QGVAR(coagulationFactor), 30]); + private _factorstoremove = 1; + _patient setVariable [QGVAR(coagulationFactor), (_coagulationFactor - _factorstoremove), true]; + }, 10, [_patient]] call CBA_fnc_addPerFrameHandler; +}, _patient, 15] call CBA_fnc_waitAndExecute; diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_AmiodaroneOverdoseLocal copy.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_AmiodaroneOverdoseLocal copy.sqf new file mode 100644 index 000000000..49e55fd9e --- /dev/null +++ b/addons/pharma/functions/fnc_treatmentAdvanced_AmiodaroneOverdoseLocal copy.sqf @@ -0,0 +1,18 @@ +#include "..\script_component.hpp" +/* + * Author: Mazinski.H, Edited by MiszczuZPolski and Cplhardcore + * Applies Bradycardia randomly + * + * Arguments: + * 0: Patient + * + * Return Value: + * None + * + * Example: + * [cursorTarget] call kat_pharma_fnc_treatmentAdvanced_AmiodaroneLocal; + * + * Public: No + */ +params ["_patient"]; +[_patient, AmiodaroneOverdose, 30, 600, "", "", "", 0.2, "", ""] call EFUNC(vitals,addMedicationAdjustment); diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_NaloxoneLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_NaloxoneLocal.sqf index cd5d5f4ff..8bb983a3a 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_NaloxoneLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_NaloxoneLocal.sqf @@ -19,14 +19,21 @@ params ["_patient"]; private _medicationArray = _patient getVariable [QACEGVAR(medical,medications), []]; private _medicationDeleted = false; + { _x params ["_medication"]; - if (_medication isEqualTo "Morphine" || _medication isEqualTo "Fentanyl" || _medication isEqualTo "Nalbuphine" || _medication isEqualTo "MorphineOverdose" || _medication isEqualTo "FentanylOverdose" || _medication isEqualTo "NalbuphineOverdose") then { + private _lowerMed = toLower _medication; + if ( + (_lowerMed find "morphine" != -1) || + (_lowerMed find "fentanyl" != -1) || + (_lowerMed find "nalbuphine" != -1) + ) then { if (random 1 < 0.33) then { _medicationArray deleteAt (_medicationArray find _x); _medicationDeleted = true; }; }; + if (_medicationDeleted) exitWith {}; } forEach _medicationArray; diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_NaloxoneOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_NaloxoneOverdoseLocal.sqf new file mode 100644 index 000000000..8e5983b55 --- /dev/null +++ b/addons/pharma/functions/fnc_treatmentAdvanced_NaloxoneOverdoseLocal.sqf @@ -0,0 +1,17 @@ +#include "..\script_component.hpp" +/* + * Author: Mazinski.H + * Locates and Removes one opioid after the administration of Naloxone. + * + * Arguments: + * 0: Patient + * + * Return Value: + * None + * + * Example: + * [player] call kat_pharma_fnc_treatmentAdvanced_NaloxoneLocal; + * + * Public: No + */ + diff --git a/addons/pharma/stringtable.xml b/addons/pharma/stringtable.xml index c6d98a92d..608c5b3de 100644 --- a/addons/pharma/stringtable.xml +++ b/addons/pharma/stringtable.xml @@ -384,6 +384,12 @@ Amiodaroni Amiodaron + + Used to reverse TXA and EACA overdose + + + Alteplase + Push Amiodarone Amiodaron verabreichen @@ -2030,6 +2036,12 @@ Время обработки Амиодароном Behandeltijd van Amiodaron + + Medical level required for Alteplase + + + Treatment time for Alteplase + Medical level required for Lidocaine Poziom wyszkolenia medycznego dla Lidokainy @@ -2578,6 +2590,9 @@ Настройки Амиодарона Amiodaron instellingen + + Alteplase Settings + Lidocaine Settings Ustawienia Lidokainy @@ -4054,6 +4069,12 @@ 5ml Syringe loaded with 300mg of Amiodarone + + 5ml Syringe/50mg Alteplase + + + 5ml Syringe loaded with 50mg of Alteplase + 5ml Syringe/40mg Lidocaine @@ -4264,6 +4285,9 @@ Push 300mg Amiodarone IV + + Push 50mg Alteplase IV + Push 40mg Lidocaine IV @@ -4354,6 +4378,9 @@ Pushing 300mg Amiodarone IV + + Pushing 50mg Alteplase IV + Pushing 40mg Lidocaine IV diff --git a/addons/pharma/ui/icon_Alteplase.paa b/addons/pharma/ui/icon_Alteplase.paa new file mode 100644 index 0000000000000000000000000000000000000000..82914ba8ffc08448309ffd101b94c17fb6a3f6cc GIT binary patch literal 65311 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 Date: Tue, 12 Nov 2024 14:17:47 -0800 Subject: [PATCH 129/149] Adds a whole bunch of OD effects --- addons/feedback/XEH_preInit.sqf | 9 +++++ addons/feedback/stringtable.xml | 7 ++++ .../fnc_treatmentAdvanced_AlteplaseLocal.sqf | 4 +- ...eatmentAdvanced_AlteplaseOverdoseLocal.sqf | 39 +++++++++++++++++++ .../fnc_treatmentAdvanced_AmiodaroneLocal.sqf | 3 +- ...tAdvanced_AmiodaroneOverdoseLocal copy.sqf | 18 --------- ...atmentAdvanced_AmiodaroneOverdoseLocal.sqf | 2 + .../fnc_treatmentAdvanced_AtropineLocal.sqf | 14 ------- ...nc_treatmentAdvanced_CWMPOverdoseLocal.sqf | 38 +++++++++++++++++- ...nc_treatmentAdvanced_EACAOverdoseLocal.sqf | 8 ++-- ...tmentAdvanced_EpinephrineOverdoseLocal.sqf | 3 +- ...eatmentAdvanced_EtomidateOverdoseLocal.sqf | 31 ++++++++++++++- ...reatmentAdvanced_FentanylOverdoseLocal.sqf | 38 ++++++++++++++++-- ...reatmentAdvanced_MorphineOverdoseLocal.sqf | 37 +++++++++++++++++- ...atmentAdvanced_NalbuphineOverdoseLocal.sqf | 37 +++++++++++++++++- .../fnc_treatmentAdvanced_NaloxoneLocal.sqf | 6 ++- ...entAdvanced_NitroglycerinOverdoseLocal.sqf | 4 +- ..._treatmentAdvanced_NorepinephrineLocal.sqf | 10 ----- ...ntAdvanced_NorepinephrineOverdoseLocal.sqf | 3 +- ...fnc_treatmentAdvanced_TXAOverdoseLocal.sqf | 1 + 20 files changed, 247 insertions(+), 65 deletions(-) create mode 100644 addons/pharma/functions/fnc_treatmentAdvanced_AlteplaseOverdoseLocal.sqf delete mode 100644 addons/pharma/functions/fnc_treatmentAdvanced_AmiodaroneOverdoseLocal copy.sqf diff --git a/addons/feedback/XEH_preInit.sqf b/addons/feedback/XEH_preInit.sqf index 9e766b44e..97406ec84 100644 --- a/addons/feedback/XEH_preInit.sqf +++ b/addons/feedback/XEH_preInit.sqf @@ -27,4 +27,13 @@ PREP_RECOMPILE_END; true ] call CBA_Settings_fnc_init; +[ + QGVAR(effectOverdose), + "CHECKBOX", + [LLSTRING(SETTING_overdoseEffect_display), LLSTRING(SETTING_overdoseEffect_DESC)], + CBA_SETTINGS_CAT, + [false], + true +] call CBA_Settings_fnc_init; + ADDON = true; diff --git a/addons/feedback/stringtable.xml b/addons/feedback/stringtable.xml index 87b1e7830..03e2a81c5 100644 --- a/addons/feedback/stringtable.xml +++ b/addons/feedback/stringtable.xml @@ -37,5 +37,12 @@ Enables opioid effect on ketamine, fentanyl and pervitin ケタミン、フェンタニル、ペルビチンなどでオピオイドの効果を有効にします + + Enable Overdose effects + オピオイド効果を有効化 + + + Enables Overdose effects on certain medications + diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_AlteplaseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_AlteplaseLocal.sqf index bf98213a3..122c6e7e7 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_AlteplaseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_AlteplaseLocal.sqf @@ -36,8 +36,8 @@ _patient setVariable [QACEGVAR(medical,medications), _medicationArray, true]; if (!(alive _patient)) exitWith { [_idPFH] call CBA_fnc_removePerFrameHandler; }; - _TXAOverdoseTarget = _TXAOverdoseTarget + 1; - if (_TXAOverdoseTarget > 24) exitWith { + _AlteplaseTarget = _AlteplaseTarget + 1; + if (_AlteplaseTarget > 24) exitWith { [_idPFH] call CBA_fnc_removePerFrameHandler;}; private _surfaceArea = (_patient getVariable [QEGVAR(breathing,lungSurfaceArea), 400]) + 5; _patient setVariable [QEGVAR(breathing,lungSurfaceArea), _surfaceArea]; diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_AlteplaseOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_AlteplaseOverdoseLocal.sqf new file mode 100644 index 000000000..4aec77353 --- /dev/null +++ b/addons/pharma/functions/fnc_treatmentAdvanced_AlteplaseOverdoseLocal.sqf @@ -0,0 +1,39 @@ +#include "..\script_component.hpp" +/* + * Author: Mazinski.H, Edited by MiszczuZPolski and Cplhardcore + * Applies Bradycardia randomly + * + * Arguments: + * 0: Patient + * + * Return Value: + * None + * + * Example: + * [cursorTarget] call kat_pharma_fnc_treatmentAdvanced_AmiodaroneLocal; + * + * Public: No + */ +params ["_patient"]; +private _hrAdjust = 10 + floor random ((25 - 10) + 1); +[_patient, AlteplaseOverdose, 30, 600, _hrAdjust, "", "", 0.2, "", ""] call EFUNC(vitals,addMedicationAdjustment); +_patient setVariable [QACEGVAR(medical,medications), _medicationArray, true]; +[{ + params ["_patient"]; + private _AlteplaseTarget = 0; + [{ + params ["_patient", "_idPFH"]; + if (!(alive _patient)) exitWith { + [_idPFH] call CBA_fnc_removePerFrameHandler; + }; + _AlteplaseTarget = _AlteplaseTarget + 1; + if (_AlteplaseTarget > 24) exitWith { + [_idPFH] call CBA_fnc_removePerFrameHandler;}; + private _bloodlevels = GET_BODY_FLUID(_patient); + _bloodlevels set [0, (_bloodlevels select 0) - 50]; + _patient setVariable [QEGVAR(circulation,bodyFluid), _bloodlevels, true]; + private _coagulationFactor = (_patient getVariable [QGVAR(coagulationFactor), 30]); + private _factorstoremove = 2; + _patient setVariable [QGVAR(coagulationFactor), (_coagulationFactor - _factorstoremove), true]; + }, 15, [_patient]] call CBA_fnc_addPerFrameHandler; +}, _patient, 15] call CBA_fnc_waitAndExecute; diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_AmiodaroneLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_AmiodaroneLocal.sqf index 971ef53a7..40920f1a5 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_AmiodaroneLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_AmiodaroneLocal.sqf @@ -18,7 +18,6 @@ params ["_patient"]; private _random = random 3; if (_random <= 1) then { - private _hrValue = [-40, -30, -50]; - private _hrAdjust = selectRandom _hrValue; + private _hrAdjust = -50 + floor random ((-30 - -50) + 1); [_patient, "BRADYCARDIA", 120, 1200, _hrAdjust, "", "", "", "", ""] call EFUNC(vitals,addMedicationAdjustment); }; diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_AmiodaroneOverdoseLocal copy.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_AmiodaroneOverdoseLocal copy.sqf deleted file mode 100644 index 49e55fd9e..000000000 --- a/addons/pharma/functions/fnc_treatmentAdvanced_AmiodaroneOverdoseLocal copy.sqf +++ /dev/null @@ -1,18 +0,0 @@ -#include "..\script_component.hpp" -/* - * Author: Mazinski.H, Edited by MiszczuZPolski and Cplhardcore - * Applies Bradycardia randomly - * - * Arguments: - * 0: Patient - * - * Return Value: - * None - * - * Example: - * [cursorTarget] call kat_pharma_fnc_treatmentAdvanced_AmiodaroneLocal; - * - * Public: No - */ -params ["_patient"]; -[_patient, AmiodaroneOverdose, 30, 600, "", "", "", 0.2, "", ""] call EFUNC(vitals,addMedicationAdjustment); diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_AmiodaroneOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_AmiodaroneOverdoseLocal.sqf index 49e55fd9e..0c42d6cf4 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_AmiodaroneOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_AmiodaroneOverdoseLocal.sqf @@ -15,4 +15,6 @@ * Public: No */ params ["_patient"]; +private _hrAdjust = -50 + floor random ((-30 - -50) + 1); +[_patient, "BRADYCARDIA", 120, 1200, _hrAdjust, "", "", "", "", ""] call EFUNC(vitals,addMedicationAdjustment); [_patient, AmiodaroneOverdose, 30, 600, "", "", "", 0.2, "", ""] call EFUNC(vitals,addMedicationAdjustment); diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_AtropineLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_AtropineLocal.sqf index c416342d8..fcaf6087b 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_AtropineLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_AtropineLocal.sqf @@ -16,17 +16,3 @@ */ params ["_patient", "_bodyPart", "_classname"]; - -if (_classname isEqualTo "syringe_atropine_5ml_3") exitWith {}; - -private _medicationArray = _patient getVariable [QACEGVAR(medical,medications), []]; - -{ - _x params ["_medication"]; - - if (_medication isEqualTo "BRADYCARDIA") exitWith { - _medicationArray deleteAt (_medicationArray find _x); - }; -} forEach (_medicationArray); - -_patient setVariable [QACEGVAR(medical,medications), _medicationArray, true]; diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_CWMPOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_CWMPOverdoseLocal.sqf index 954764320..01c0baac3 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_CWMPOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_CWMPOverdoseLocal.sqf @@ -14,4 +14,40 @@ * * Public: No */ -params ["_patient"]; \ No newline at end of file +params ["_patient"]; +[_patient, "CWMPOverdose", 30, 600, "", "", "", 0.3, "", ""] call EFUNC(vitals,addMedicationAdjustment); +if GVAR(kidneyAction) then + {[ + { + params ["_patient"]; + private _kidneyTarget = 0; + [{ + params ["_patient", "_idPFH"]; + if (!(alive _patient)) exitWith { + [_idPFH] call CBA_fnc_removePerFrameHandler; + }; + _kidneyTarget = _kidneyTarget + 1; + if (_kidneyTarget > 12) exitWith { + [_idPFH] call CBA_fnc_removePerFrameHandler;}; + private _ph = _patient getVariable [QGVAR(externalPh), _ph, true] + 100; + _patient setVariable [QGVAR(externalPh), _ph, true]; + private _coagulationFactor = (_patient getVariable [QGVAR(coagulationFactor), 30]); + private _factorstoremove = 1; + _patient setVariable [QGVAR(coagulationFactor), (_coagulationFactor - _factorstoremove), true]; + }, 10, [_patient]] call CBA_fnc_addPerFrameHandler; + }, _patient, 15] call CBA_fnc_waitAndExecute; +} +[{ + params ["_patient"]; + private _bpTarget = 0; + [{ + params ["_patient", "_idPFH"]; + if (!(alive _patient)) exitWith { + [_idPFH] call CBA_fnc_removePerFrameHandler; + }; + _bpTarget = _bpTarget + 1; + if (_bpTarget > 12) exitWith { + [_idPFH] call CBA_fnc_removePerFrameHandler;}; + [_patient, -2, -2, "CWMPOverdose"] call kat_circulation_fnc_updateBloodPressureChange; + }, 15, [_patient]] call CBA_fnc_addPerFrameHandler; +}, _patient, 15] call CBA_fnc_waitAndExecute; \ No newline at end of file diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_EACAOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_EACAOverdoseLocal.sqf index a7cc8ebd1..ffb6078c5 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_EACAOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_EACAOverdoseLocal.sqf @@ -15,8 +15,8 @@ * * Public: No */ - params ["_patient"]; - [_patient, EACAOverdose, 1, 900, "", "", -90, -0.3, "", ""] call EFUNC(vitals,addMedicationAdjustment); +params ["_patient"]; +[_patient, EACAOverdose, 1, 900, "", "", -90, -0.3, "", ""] call EFUNC(vitals,addMedicationAdjustment); [{ params ["_patient"]; private _EACAOverdoseTarget = 0; @@ -34,11 +34,9 @@ private _ht = _patient getVariable [QEGVAR(circulation,ht), []]; if ((_ht findIf {_x isEqualTo "eacaOD"}) == -1) then { _ht pushBack "eacaOD"; - if (_patient getVariable [QEGVAR(circulation,cardiacArrestType), 0] == 0) then { [QACEGVAR(medical,FatalVitals), _patient] call CBA_fnc_localEvent; }; - _patient setVariable [QEGVAR(circulation,ht), _ht, true]; }; }, [_patient], 15] call CBA_fnc_waitAndExecute; @@ -50,6 +48,6 @@ private _coagulationFactor = (_patient getVariable [QGVAR(coagulationFactor), 30]); private _factorstoremove = 1; _patient setVariable [QGVAR(coagulationFactor), (_coagulationFactor - _factorstoremove), true]; - if ((random 1000) < 1) then {_patient setDamage 1;}; + if ((random 10000) < 1) then {_patient setDamage 1;}; }, 15, [_patient]] call CBA_fnc_addPerFrameHandler; }, _patient, 15] call CBA_fnc_waitAndExecute; \ No newline at end of file diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_EpinephrineOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_EpinephrineOverdoseLocal.sqf index f9dfb0da2..70accf91b 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_EpinephrineOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_EpinephrineOverdoseLocal.sqf @@ -17,8 +17,7 @@ */ params ["_patient"]; -private _hrValue = [40, 30, 50]; -private _hrAdjust = selectRandom _hrValue; +private _hrAdjust = 30 + floor random ((60 - 30) + 1); [_patient, "TACHYCARDIA", 30, 1200, _hrAdjust, "", "", "", "", ""] call EFUNC(vitals,addMedicationAdjustment); if (random 10 < 1) then { private _randomValue = [3, 4]; diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_EtomidateOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_EtomidateOverdoseLocal.sqf index 61f187cc4..b2ff1731c 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_EtomidateOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_EtomidateOverdoseLocal.sqf @@ -14,4 +14,33 @@ * * Public: No */ -params ["_patient"]; \ No newline at end of file +params ["_patient"]; +private _random = random 3; +if (_random <= 1) then { + private _hrAdjust = -40 + floor random ((-20 - -40) + 1); + [_patient, "BRADYCARDIA", 120, 1200, _hrAdjust, "", "", "", "", ""] call EFUNC(vitals,addMedicationAdjustment); +}; +private _randomNumber = floor (random 1) + 1; +switch (_randomNumber) do { + case 1: { + private _bpAdjust = -20 + floor random ((-5 - -20) + 1); + [_patient, _bpAdjust, _bpAdjust, "EtomidateOverdose"] call kat_circulation_fnc_updateBloodPressureChange; + private _hrAdjust = -40 + floor random ((-20 - -40) + 1); + [_patient, "BRADYCARDIA", 120, 1200, _hrAdjust, "", "", "", "", ""] call EFUNC(vitals,addMedicationAdjustment); + }; + case 2: { + private _bpAdjust = -20 + floor random ((-5 - -20) + 1); + [_patient, _bpAdjust, _bpAdjust, "EtomidateOverdose"] call kat_circulation_fnc_updateBloodPressureChange; + private _hrAdjust = 20 + floor random ((40 - 20) + 1); + [_patient, "TACHYCARDIA", 120, 1200, _hrAdjust, "", "", "", "", ""] call EFUNC(vitals,addMedicationAdjustment); + }; +}; +if QEGVAR(feedback,effectOverdose) then + {PP_wetD = ppEffectCreate ["WetDistortion",300]; + PP_wetD ppEffectEnable true; + PP_wetD ppEffectAdjust [9.7,0.2,-0.1,1.84,1.46,0.33,0.86,0.05,0.05,0.05,0.05,0.1,0.1,0.2,0.2]; + PP_wetD ppEffectCommit 0; + // Date YYYY-MM-DD-HH-MM: [2035,6,24,8,0]. Overcast: 0.3. Fog: 0.0823474. Fog params: [0.0800016,0.013,0] + // GF PostProcess Editor parameters: Copy the following line to clipboard and click Import in the editor. + //[[false,100,[0.2,0.2,0.26,0.3]],[false,200,[0.05,0.05,true]],[true,300,[9.7,0.2,-0.1,1.84,1.46,0.33,0.86,0.05,0.05,0.05,0.05,0.1,0.1,0.2,0.2]],[false,1500,[1,1,0,[2,2,2,-0.1],[5,5,5,1],[4,0.33,0.33,0],[0.66,0,0.96,0,0,0,4]]],[false,500,[2.06]],[false,2000,[0.44,1,1,0.5,0.5,true]],[false,2500,[1,1,1]]] + [{PP_wetD ppEffectEnable false; PP_wetD ppEffectCommit 0;}, [], 600] call CBA_fnc_waitAndExecute;}: \ No newline at end of file diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_FentanylOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_FentanylOverdoseLocal.sqf index 3f7b41d3f..9bf52f81e 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_FentanylOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_FentanylOverdoseLocal.sqf @@ -11,10 +11,42 @@ * None * * Example: - * [player, "LeftLeg", 1] call kat_pharma_fnc_treatmentAdvanced_FentanylLocal; + * [player] call kat_pharma_fnc_treatmentAdvanced_FentanylOverdoseLocal; * * Public: No */ - - params ["_patient"]; +private _bpAdjust = -30 + floor random ((-15 - -30) + 1); +[_patient, _bpAdjust, _bpAdjust, "fentanylOverdose"] call kat_circulation_fnc_updateBloodPressureChange; +private _hrAdjust = -50 + floor random ((-30 - -50) + 1); +[_patient, "fentanylOverdose", 120, 1200, _hrAdjust, "", "", "", "", ""] call EFUNC(vitals,addMedicationAdjustment); +[{ + params ["_patient"]; + private _fentanylOverdoseTarget = 0; + [{ + params ["_patient", "_idPFH"]; + if (!(alive _patient)) exitWith { + [_idPFH] call CBA_fnc_removePerFrameHandler; + }; + _fentanylOverdoseTarget = _fentanylOverdoseTarget + 1; + if (_fentanylOverdoseTarget > 6) exitWith { + [{ + params ["_args", "_idPFH"]; + _args params ["_patient"]; + private _ht = _patient getVariable [QEGVAR(circulation,ht), []]; + if ((_ht findIf {_x isEqualTo "opioidOD"}) == -1) then { + _ht pushBack "opioidOD"; + if (_patient getVariable [QEGVAR(circulation,cardiacArrestType), 0] == 0) then { + [QACEGVAR(medical,FatalVitals), _patient] call CBA_fnc_localEvent; + }; + _patient setVariable [QEGVAR(circulation,ht), _ht, true]; + }; + }, [_patient], 10] call CBA_fnc_waitAndExecute; + [_idPFH] call CBA_fnc_removePerFrameHandler; + }; + private _medications = _patient getVariable [QACEGVAR(medical,medications), []]; + if (_medications findIf {_x isEqualTo "naloxone"} != -1) exitWith {}; + private _depression = _unit getVariable [QEGVAR(pharma,opioidFactor)] + 0.1; + _patient setVariable [QEGVAR(pharma,opioidFactor), _depression]; + }, 10, [_patient]] call CBA_fnc_addPerFrameHandler; +}, _patient, 10] call CBA_fnc_waitAndExecute; diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_MorphineOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_MorphineOverdoseLocal.sqf index 081a55a6a..1fa0a846b 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_MorphineOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_MorphineOverdoseLocal.sqf @@ -14,4 +14,39 @@ * * Public: No */ -params ["_patient"]; \ No newline at end of file +params ["_patient"]; +params ["_patient"]; +private _bpAdjust = -30 + floor random ((-15 - -30) + 1); +[_patient, _bpAdjust, _bpAdjust, "morphineOverdose"] call kat_circulation_fnc_updateBloodPressureChange; +private _hrAdjust = -50 + floor random ((-30 - -50) + 1); +[_patient, "morphineOverdose", 120, 1200, _hrAdjust, "", "", "", "", ""] call EFUNC(vitals,addMedicationAdjustment); +[{ + params ["_patient"]; + private _morphineOverdoseTarget = 0; + [{ + params ["_patient", "_idPFH"]; + if (!(alive _patient)) exitWith { + [_idPFH] call CBA_fnc_removePerFrameHandler; + }; + _morphineOverdoseTarget = _morphineOverdoseTarget + 1; + if (_morphineOverdoseTarget > 6) exitWith { + [{ + params ["_args", "_idPFH"]; + _args params ["_patient"]; + private _ht = _patient getVariable [QEGVAR(circulation,ht), []]; + if ((_ht findIf {_x isEqualTo "opioidOD"}) == -1) then { + _ht pushBack "opioidOD"; + if (_patient getVariable [QEGVAR(circulation,cardiacArrestType), 0] == 0) then { + [QACEGVAR(medical,FatalVitals), _patient] call CBA_fnc_localEvent; + }; + _patient setVariable [QEGVAR(circulation,ht), _ht, true]; + }; + }, [_patient], 10] call CBA_fnc_waitAndExecute; + [_idPFH] call CBA_fnc_removePerFrameHandler; + }; + private _medications = _patient getVariable [QACEGVAR(medical,medications), []]; + if (_medications findIf {_x isEqualTo "naloxone"} != -1) exitWith {}; + private _depression = _unit getVariable [QEGVAR(pharma,opioidFactor)] + 0.08; + _patient setVariable [QEGVAR(pharma,opioidFactor), _depression]; + }, 10, [_patient]] call CBA_fnc_addPerFrameHandler; +}, _patient, 10] call CBA_fnc_waitAndExecute; diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_NalbuphineOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_NalbuphineOverdoseLocal.sqf index f856c6572..bdd6c14b6 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_NalbuphineOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_NalbuphineOverdoseLocal.sqf @@ -14,4 +14,39 @@ * * Public: No */ -params ["_patient"]; \ No newline at end of file +params ["_patient"]; +params ["_patient"]; +private _bpAdjust = -30 + floor random ((-15 - -30) + 1); +[_patient, _bpAdjust, _bpAdjust, "nalbuphineOverdose"] call kat_circulation_fnc_updateBloodPressureChange; +private _hrAdjust = -50 + floor random ((-30 - -50) + 1); +[_patient, "nalbuphineOverdose", 120, 1200, _hrAdjust, "", "", "", "", ""] call EFUNC(vitals,addMedicationAdjustment); +[{ + params ["_patient"]; + private _nalbuphineOverdoseTarget = 0; + [{ + params ["_patient", "_idPFH"]; + if (!(alive _patient)) exitWith { + [_idPFH] call CBA_fnc_removePerFrameHandler; + }; + _nalbuphineOverdoseTarget = _nalbuphineOverdoseTarget + 1; + if (_nalbuphineOverdoseTarget > 6) exitWith { + [{ + params ["_args", "_idPFH"]; + _args params ["_patient"]; + private _ht = _patient getVariable [QEGVAR(circulation,ht), []]; + if ((_ht findIf {_x isEqualTo "opioidOD"}) == -1) then { + _ht pushBack "opioidOD"; + if (_patient getVariable [QEGVAR(circulation,cardiacArrestType), 0] == 0) then { + [QACEGVAR(medical,FatalVitals), _patient] call CBA_fnc_localEvent; + }; + _patient setVariable [QEGVAR(circulation,ht), _ht, true]; + }; + }, [_patient], 10] call CBA_fnc_waitAndExecute; + [_idPFH] call CBA_fnc_removePerFrameHandler; + }; + private _medications = _patient getVariable [QACEGVAR(medical,medications), []]; + if (_medications findIf {_x isEqualTo "naloxone"} != -1) exitWith {}; + private _depression = _unit getVariable [QEGVAR(pharma,opioidFactor)] + 0.05; + _patient setVariable [QEGVAR(pharma,opioidFactor), _depression]; + }, 10, [_patient]] call CBA_fnc_addPerFrameHandler; +}, _patient, 10] call CBA_fnc_waitAndExecute; diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_NaloxoneLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_NaloxoneLocal.sqf index 8bb983a3a..9e9eb6765 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_NaloxoneLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_NaloxoneLocal.sqf @@ -25,12 +25,16 @@ private _medicationDeleted = false; private _lowerMed = toLower _medication; if ( (_lowerMed find "morphine" != -1) || + (_lowerMed find "morphineOverdose" != -1) || (_lowerMed find "fentanyl" != -1) || - (_lowerMed find "nalbuphine" != -1) + (_lowerMed find "fentanylOverdose" != -1) || + (_lowerMed find "nalbuphine" != -1) || + (_lowerMed find "nalbuphineOverdose" != -1) ) then { if (random 1 < 0.33) then { _medicationArray deleteAt (_medicationArray find _x); _medicationDeleted = true; + _patient setVariable [QEGVAR(pharma,opioidFactor), 1]; }; }; diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_NitroglycerinOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_NitroglycerinOverdoseLocal.sqf index b7ec021e5..58476f973 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_NitroglycerinOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_NitroglycerinOverdoseLocal.sqf @@ -14,7 +14,7 @@ * * Public: No */ - params ["_patient"]; +params ["_patient"]; private _hrValue = [-20, -25, -30, -35, -40, -45, 20, 25, 30, 35, 40, 45]; private _hrAdjust = selectRandom _hrValue; -[_patient, NitroglycerinOverdose, 30, 1200, _hrAdjust, "", 75, "", "", ""] call EFUNC(vitals,addMedicationAdjustment); \ No newline at end of file +[_patient, NitroglycerinOverdose, 30, 1200, _hrAdjust, "", 75, "", "", ""] call EFUNC(vitals,addMedicationAdjustment); diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_NorepinephrineLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_NorepinephrineLocal.sqf index ae8c489c1..8631f2d4f 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_NorepinephrineLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_NorepinephrineLocal.sqf @@ -15,13 +15,3 @@ * Public: No */ params ["_patient"]; - -private _medicationArray = _patient getVariable [QACEGVAR(medical,medications), []]; -{ - _x params ["_medication"]; - if (_medication isEqualTo "BRADYCARDIA") then { - _medicationArray deleteAt (_medicationArray find _x); - }; -} forEach _medicationArray; - -_patient setVariable [QACEGVAR(medical,medications), _medicationArray, true]; \ No newline at end of file diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_NorepinephrineOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_NorepinephrineOverdoseLocal.sqf index c6e8c245f..9686acd92 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_NorepinephrineOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_NorepinephrineOverdoseLocal.sqf @@ -15,8 +15,7 @@ * Public: No */ params ["_patient"]; -private _hrValue = [40, 30, 50]; -private _hrAdjust = selectRandom _hrValue; +private _hrAdjust = 30 + floor random ((50 - 30) + 1); [_patient, "TACHYCARDIA", 120, 1200, _hrAdjust, "", "", "", "", ""] call EFUNC(vitals,addMedicationAdjustment); if (random 10 < 1) then { private _randomValue = [3, 4]; diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_TXAOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_TXAOverdoseLocal.sqf index 920872a7f..8a2eaf8ae 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_TXAOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_TXAOverdoseLocal.sqf @@ -51,5 +51,6 @@ params ["_patient"]; private _coagulationFactor = (_patient getVariable [QGVAR(coagulationFactor), 30]); private _factorstoremove = 1; _patient setVariable [QGVAR(coagulationFactor), (_coagulationFactor - _factorstoremove), true]; + if ((random 10000) < 1) then {_patient setDamage 1;}; }, 15, [_patient]] call CBA_fnc_addPerFrameHandler; }, _patient, 15] call CBA_fnc_waitAndExecute; From 91d054b5938615aef37f473645baa12d817907f1 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Wed, 13 Nov 2024 07:53:31 -0800 Subject: [PATCH 130/149] More stuff should be done until brain sim stuff --- .../breathing/functions/fnc_fullHealLocal.sqf | 2 +- addons/main/script_macros.hpp | 1 + addons/pharma/ACE_Medical_Treatment.hpp | 24 +-- addons/pharma/functions/fnc_fullHealLocal.sqf | 1 + .../pharma/functions/fnc_medicationLocal.sqf | 5 +- ...eatmentAdvanced_AdenosineOverdoseLocal.sqf | 50 ++++- ...atmentAdvanced_AmiodaroneOverdoseLocal.sqf | 2 +- ...reatmentAdvanced_AtropineOverdoseLocal.sqf | 54 +++++- ...nc_treatmentAdvanced_CWMPOverdoseLocal.sqf | 8 +- ...eatmentAdvanced_EtomidateOverdoseLocal.sqf | 180 ++++++++++++++++-- ...reatmentAdvanced_FentanylOverdoseLocal.sqf | 8 +- .../fnc_treatmentAdvanced_FlumazenilLocal.sqf | 22 +++ ...atmentAdvanced_FlumazenilOverdoseLocal.sqf | 15 +- ...reatmentAdvanced_KetamineOverdoseLocal.sqf | 35 +++- ...eatmentAdvanced_LidocaineOverdoseLocal.sqf | 38 ++++ ...eatmentAdvanced_LorazepamOverdoseLocal.sqf | 45 +++++ ...reatmentAdvanced_MorphineOverdoseLocal.sqf | 9 +- ...atmentAdvanced_NalbuphineOverdoseLocal.sqf | 8 +- ...reatmentAdvanced_NaloxoneOverdoseLocal.sqf | 2 +- ...entAdvanced_NitroglycerinOverdoseLocal.sqf | 4 + ..._treatmentAdvanced_NorepinephrineLocal.sqf | 4 +- ...ntAdvanced_NorepinephrineOverdoseLocal.sqf | 4 +- ...reatmentAdvanced_PervitinOverdoseLocal.sqf | 36 +++- addons/vitals/XEH_PREP.hpp | 1 + .../functions/fnc_addMedicationAdjustment.sqf | 4 +- .../functions/fnc_handleOxygenFunction.sqf | 3 +- .../vitals/functions/fnc_handleUnitVitals.sqf | 5 +- .../functions/fnc_updateOpioidDepression.sqf | 23 +++ 28 files changed, 526 insertions(+), 67 deletions(-) create mode 100644 addons/vitals/functions/fnc_updateOpioidDepression.sqf diff --git a/addons/breathing/functions/fnc_fullHealLocal.sqf b/addons/breathing/functions/fnc_fullHealLocal.sqf index e0af97d7b..3c7dd4ae9 100644 --- a/addons/breathing/functions/fnc_fullHealLocal.sqf +++ b/addons/breathing/functions/fnc_fullHealLocal.sqf @@ -28,7 +28,7 @@ _patient setVariable [QGVAR(etco2Monitor), [], true]; _patient setVariable [QGVAR(breathRate), 15, true]; _patient setVariable [QGVAR(nasalCannula), false, true]; _patient setVariable [QGVAR(lungSurfaceArea), 400]; - +_patient setvariable [QGVAR(respiratoryRateMultiplier), 1]; if (ACEGVAR(advanced_fatigue,enabled)) then { ["kat_LSDF"] call ACEFUNC(advanced_fatigue,removeDutyFactor); }; diff --git a/addons/main/script_macros.hpp b/addons/main/script_macros.hpp index 0cdd5eb99..b981e8b7c 100644 --- a/addons/main/script_macros.hpp +++ b/addons/main/script_macros.hpp @@ -189,6 +189,7 @@ #undef GET_BLOOD_VOLUME #define GET_OPIOID_FACTOR(unit) (unit getVariable [QEGVAR(pharma,opioidFactor), 0]) +#define GET_OPIOID_DEPRESSION(unit) (unit getVariable [QEGVAR(pharma,opioidDepression), 0]) #define GET_PAIN_PERCEIVED(unit) (0 max ((GET_PAIN(unit) - GET_PAIN_SUPPRESS(unit)) min 1)) #undef GET_DAMAGE_THRESHOLD diff --git a/addons/pharma/ACE_Medical_Treatment.hpp b/addons/pharma/ACE_Medical_Treatment.hpp index 58d683171..4bcab3826 100644 --- a/addons/pharma/ACE_Medical_Treatment.hpp +++ b/addons/pharma/ACE_Medical_Treatment.hpp @@ -92,18 +92,6 @@ class ACE_ADDON(Medical_Treatment) { incompatibleMedication[] = {}; viscosityChange = 0; }; - class Alteplase { - painReduce = 0; - hrIncreaseLow[] = {-4, -10}; - hrIncreaseNormal[] = {-5, -15}; - hrIncreaseHigh[] = {-5, -20}; - timeInSystem = 180; - timeTillMaxEffect = 30; - maxDose = 1; - maxDoseDeviation = 0; - incompatibleMedication[] = {}; - viscosityChange = 0; - }; class AdenosineIV { painReduce = 0; hrIncreaseLow[] = {-7, -10}; @@ -727,6 +715,18 @@ class ACE_ADDON(Medical_Treatment) { timeTillMaxEffect = 15; viscosityChange = 0; }; + class syringe_alteplase_5ml_3 { + painReduce = 0; + hrIncreaseLow[] = {-4, -10}; + hrIncreaseNormal[] = {-5, -15}; + hrIncreaseHigh[] = {-5, -20}; + timeInSystem = 180; + timeTillMaxEffect = 30; + maxDose = 1; + maxDoseDeviation = 0; + incompatibleMedication[] = {}; + viscosityChange = 0; + }; class syringe_fentanyl_10ml_1 { painReduce = 0.6; hrIncreaseLow[] = {-5, -10}; diff --git a/addons/pharma/functions/fnc_fullHealLocal.sqf b/addons/pharma/functions/fnc_fullHealLocal.sqf index 7800a79b1..aa566ab51 100644 --- a/addons/pharma/functions/fnc_fullHealLocal.sqf +++ b/addons/pharma/functions/fnc_fullHealLocal.sqf @@ -48,6 +48,7 @@ _patient setVariable [QGVAR(externalPh), 0, true]; _patient setVariable [QGVAR(pH), 0, true]; _patient setVariable [QGVAR(opioidFactor), 0, true]; +_patient setVariable [QGVAR(opioidDepressionFactor), 0, true]; _patient setVariable [QGVAR(kidneyFail), false, true]; _patient setVariable [QGVAR(kidneyArrest), false, true]; diff --git a/addons/pharma/functions/fnc_medicationLocal.sqf b/addons/pharma/functions/fnc_medicationLocal.sqf index 689c3f3dc..46dbf7ca2 100644 --- a/addons/pharma/functions/fnc_medicationLocal.sqf +++ b/addons/pharma/functions/fnc_medicationLocal.sqf @@ -92,6 +92,7 @@ private _alphaFactor = GET_NUMBER(_medicationConfig >> "alphaFactor", private _maxRelief = GET_NUMBER(_medicationConfig >> "maxRelief",getNumber (_defaultConfig >> "maxRelief")); private _opioidRelief = GET_NUMBER(_medicationConfig >> "opioidRelief",getNumber (_defaultConfig >> "opioidRelief")); private _opioidEffect = GET_NUMBER(_medicationConfig >> "opioidEffect",getNumber (_defaultConfig >> "opioidEffect")); +private _opioidDepression = GET_NUMBER(_medicationConfig >> "opioidRelief",getNumber (_defaultConfig >> "opioidRelief")); private _heartRate = GET_HEART_RATE(_patient); private _hrIncrease = [_hrIncreaseLow, _hrIncreaseNormal, _hrIncreaseHigh] select (floor ((0 max _heartRate min 110) / 55)); @@ -113,14 +114,14 @@ if ([QGVAR(AMS_Enabled)] call CBA_settings_fnc_get) then { }; // Adjust the medication effects and add the medication to the list TRACE_3("adjustments",_heartRateChange,_painReduce,_viscosityChange); - [_patient, _medicationName, _timeTillMaxEffect, _timeInSystem, _heartRateChange, _painReduce, _viscosityChange, _alphaFactor, _opioidRelief, _opioidEffect] call EFUNC(vitals,addMedicationAdjustment); + [_patient, _medicationName, _timeTillMaxEffect, _timeInSystem, _heartRateChange, _painReduce, _viscosityChange, _alphaFactor, _opioidRelief, _opioidEffect, _opioidDepression] call EFUNC(vitals,addMedicationAdjustment); // Check for medication compatiblity [_patient, _medicationName, _maxDose, _maxDoseDeviation, _incompatibleMedication] call ACEFUNC(medical_treatment,onMedicationUsage); } else { // Adjust the medication effects and add the medication to the list TRACE_3("adjustments",_heartRateChange,_painReduce,_viscosityChange); - [_patient, _className, _timeTillMaxEffect, _timeInSystem, _heartRateChange, _painReduce, _viscosityChange, _alphaFactor, _opioidRelief, _opioidEffect] call EFUNC(vitals,addMedicationAdjustment); + [_patient, _className, _timeTillMaxEffect, _timeInSystem, _heartRateChange, _painReduce, _viscosityChange, _alphaFactor, _opioidRelief, _opioidEffect, _opioidDepression] call EFUNC(vitals,addMedicationAdjustment); // Check for medication compatiblity [_patient, _className, _maxDose, _maxDoseDeviation, _incompatibleMedication] call ACEFUNC(medical_treatment,onMedicationUsage); diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_AdenosineOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_AdenosineOverdoseLocal.sqf index 594b920e0..efbe7ec38 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_AdenosineOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_AdenosineOverdoseLocal.sqf @@ -14,4 +14,52 @@ * * Public: No */ -params ["_patient"]; \ No newline at end of file +params ["_patient"]; +[{ + params ["_patient"]; + private _adenosineOverdoseTarget = 0; + [{ + params ["_patient", "_idPFH"]; + if (!(alive _patient)) exitWith { + [_idPFH] call CBA_fnc_removePerFrameHandler; + }; + _adenosineOverdoseTarget = _adenosineOverdoseTarget + 1; + if (_adenosineOverdoseTarget > 12) exitWith { + if (random(100) < 15) then { + [{ + params ["_args", "_idPFH"]; + _args params ["_patient"]; + private _ht = _patient getVariable [QEGVAR(circulation,ht), []]; + if ((_ht findIf {_x isEqualTo "adenosineOD"}) == -1) then { + _ht pushBack "adenosineOD"; + + if (_patient getVariable [QEGVAR(circulation,cardiacArrestType), 0] == 0) then { + [QACEGVAR(medical,FatalVitals), _patient] call CBA_fnc_localEvent; + }; + + _patient setVariable [QEGVAR(circulation,ht), _ht, true]; + }; + }, [_patient], 15] call CBA_fnc_waitAndExecute; + }; + [_idPFH] call CBA_fnc_removePerFrameHandler; + }; + private _surfaceArea = (_patient getVariable [QEGVAR(breathing,lungSurfaceArea), 400]) - 10; + _patient setVariable [QEGVAR(breathing,lungSurfaceArea), _surfaceArea]; + }, 15, [_patient]] call CBA_fnc_addPerFrameHandler; +}, _patient, 15] call CBA_fnc_waitAndExecute; +[{ + params ["_patient"]; + private _AdenosineTarget = 0; + [{ + params ["_patient", "_idPFH"]; + if (!(alive _patient)) exitWith { + [_idPFH] call CBA_fnc_removePerFrameHandler; + }; + _AdenosineTarget = _AdenosineTarget + 1; + if (_AdenosineTarget > 18) exitWith { + [_idPFH] call CBA_fnc_removePerFrameHandler; + }; + private _surfaceArea = (_patient getVariable [QEGVAR(breathing,lungSurfaceArea), 400]) + 10; + _patient setVariable [QEGVAR(breathing,lungSurfaceArea), _surfaceArea]; + }, 10, [_patient]] call CBA_fnc_addPerFrameHandler; +}, _patient, 300] call CBA_fnc_waitAndExecute; \ No newline at end of file diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_AmiodaroneOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_AmiodaroneOverdoseLocal.sqf index 0c42d6cf4..145e73b2e 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_AmiodaroneOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_AmiodaroneOverdoseLocal.sqf @@ -17,4 +17,4 @@ params ["_patient"]; private _hrAdjust = -50 + floor random ((-30 - -50) + 1); [_patient, "BRADYCARDIA", 120, 1200, _hrAdjust, "", "", "", "", ""] call EFUNC(vitals,addMedicationAdjustment); -[_patient, AmiodaroneOverdose, 30, 600, "", "", "", 0.2, "", ""] call EFUNC(vitals,addMedicationAdjustment); +[_patient, "AmiodaroneOverdose", 30, 600, "", "", "", 0.2, "", ""] call EFUNC(vitals,addMedicationAdjustment); diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_AtropineOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_AtropineOverdoseLocal.sqf index 184e8aeb8..d6d7cd9d9 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_AtropineOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_AtropineOverdoseLocal.sqf @@ -14,4 +14,56 @@ * * Public: No */ -params ["_patient"]; \ No newline at end of file +params ["_patient"]; +[{ + params ["_patient"]; + private _adenosineOverdoseTarget = 0; + [{ + params ["_patient", "_idPFH"]; + if (!(alive _patient)) exitWith { + [_idPFH] call CBA_fnc_removePerFrameHandler; + }; + _adenosineOverdoseTarget = _adenosineOverdoseTarget + 1; + if (_adenosineOverdoseTarget > 12) exitWith { + if (random(100) < 15) then { + [{ + params ["_args", "_idPFH"]; + _args params ["_patient"]; + private _ht = _patient getVariable [QEGVAR(circulation,ht), []]; + if ((_ht findIf {_x isEqualTo "adenosineOD"}) == -1) then { + _ht pushBack "adenosineOD"; + + if (_patient getVariable [QEGVAR(circulation,cardiacArrestType), 0] == 0) then { + [QACEGVAR(medical,FatalVitals), _patient] call CBA_fnc_localEvent; + }; + + _patient setVariable [QEGVAR(circulation,ht), _ht, true]; + }; + }, [_patient], 15] call CBA_fnc_waitAndExecute; + }; + [_idPFH] call CBA_fnc_removePerFrameHandler; + }; + private _depression = _unit getVariable [QEGVAR(pharma,opioidDepressionFactor)] + 0.05; + _patient setVariable [QEGVAR(pharma,opioidDepressionFactor), _depression]; + private _rr = _patient getvariable [QEGVAR(breathing,respiratoryRateMultiplier), 1] - 0.07; + _patient setvariable [QEGVAR(breathing,respiratoryRateMultiplier), _rr]; + }, 15, [_patient]] call CBA_fnc_addPerFrameHandler; +}, _patient, 15] call CBA_fnc_waitAndExecute; +[{ + params ["_patient"]; + private _AdenosineTarget = 0; + [{ + params ["_patient", "_idPFH"]; + if (!(alive _patient)) exitWith { + [_idPFH] call CBA_fnc_removePerFrameHandler; + }; + _AdenosineTarget = _AdenosineTarget + 1; + if (_AdenosineTarget > 18) exitWith { + [_idPFH] call CBA_fnc_removePerFrameHandler; + }; + private _depression = _unit getVariable [QEGVAR(pharma,opioidDepressionFactor)] - 0.05; + _patient setVariable [QEGVAR(pharma,opioidDepressionFactor), _depression]; + private _rr = _patient getvariable [QEGVAR(breathing,respiratoryRateMultiplier), 1] + 0.07; + _patient setvariable [QEGVAR(breathing,respiratoryRateMultiplier), _rr]; + }, 10, [_patient]] call CBA_fnc_addPerFrameHandler; +}, _patient, 300] call CBA_fnc_waitAndExecute; diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_CWMPOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_CWMPOverdoseLocal.sqf index 01c0baac3..66a3683f1 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_CWMPOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_CWMPOverdoseLocal.sqf @@ -31,12 +31,9 @@ if GVAR(kidneyAction) then [_idPFH] call CBA_fnc_removePerFrameHandler;}; private _ph = _patient getVariable [QGVAR(externalPh), _ph, true] + 100; _patient setVariable [QGVAR(externalPh), _ph, true]; - private _coagulationFactor = (_patient getVariable [QGVAR(coagulationFactor), 30]); - private _factorstoremove = 1; - _patient setVariable [QGVAR(coagulationFactor), (_coagulationFactor - _factorstoremove), true]; }, 10, [_patient]] call CBA_fnc_addPerFrameHandler; }, _patient, 15] call CBA_fnc_waitAndExecute; -} +}; [{ params ["_patient"]; private _bpTarget = 0; @@ -49,5 +46,8 @@ if GVAR(kidneyAction) then if (_bpTarget > 12) exitWith { [_idPFH] call CBA_fnc_removePerFrameHandler;}; [_patient, -2, -2, "CWMPOverdose"] call kat_circulation_fnc_updateBloodPressureChange; + private _coagulationFactor = (_patient getVariable [QGVAR(coagulationFactor), 30]); + private _factorstoremove = 1; + _patient setVariable [QGVAR(coagulationFactor), (_coagulationFactor - _factorstoremove), true]; }, 15, [_patient]] call CBA_fnc_addPerFrameHandler; }, _patient, 15] call CBA_fnc_waitAndExecute; \ No newline at end of file diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_EtomidateOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_EtomidateOverdoseLocal.sqf index b2ff1731c..f6a4928ed 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_EtomidateOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_EtomidateOverdoseLocal.sqf @@ -15,32 +15,172 @@ * Public: No */ params ["_patient"]; -private _random = random 3; -if (_random <= 1) then { - private _hrAdjust = -40 + floor random ((-20 - -40) + 1); - [_patient, "BRADYCARDIA", 120, 1200, _hrAdjust, "", "", "", "", ""] call EFUNC(vitals,addMedicationAdjustment); -}; -private _randomNumber = floor (random 1) + 1; +private _randomNumber = floor (random 3) + 1; switch (_randomNumber) do { case 1: { - private _bpAdjust = -20 + floor random ((-5 - -20) + 1); - [_patient, _bpAdjust, _bpAdjust, "EtomidateOverdose"] call kat_circulation_fnc_updateBloodPressureChange; + private _bpAdjust = -20 + floor random ((-5 - -20) + 1); + [_patient, _bpAdjust, _bpAdjust, "EtomidateOverdose"] call kat_circulation_fnc_updateBloodPressureChange; private _hrAdjust = -40 + floor random ((-20 - -40) + 1); - [_patient, "BRADYCARDIA", 120, 1200, _hrAdjust, "", "", "", "", ""] call EFUNC(vitals,addMedicationAdjustment); + [_patient, "BRADYCARDIA", 120, 1200, _hrAdjust, "", "", "", "", ""] call EFUNC(vitals,addMedicationAdjustment); + [{ + params ["_patient"]; + private _etomidateOverdoseTarget = 0; + [{ + params ["_patient", "_idPFH"]; + if (!(alive _patient)) exitWith { + [_idPFH] call CBA_fnc_removePerFrameHandler; + }; + _etomidateOverdoseTarget = _etomidateOverdoseTarget + 1; + if (_etomidateOverdoseTarget > 12) exitWith { + if (random(100) < 25) then { + [{ + params ["_args", "_idPFH"]; + _args params ["_patient"]; + private _ht = _patient getVariable [QEGVAR(circulation,ht), []]; + if ((_ht findIf {_x isEqualTo "lidocaineOD"}) == -1) then { + _ht pushBack "lidocaineOD"; + + if (_patient getVariable [QEGVAR(circulation,cardiacArrestType), 0] == 0) then { + [QACEGVAR(medical,FatalVitals), _patient] call CBA_fnc_localEvent; + }; + + _patient setVariable [QEGVAR(circulation,ht), _ht, true]; + }; + }, [_patient], 15] call CBA_fnc_waitAndExecute; + }; + [_idPFH] call CBA_fnc_removePerFrameHandler; + }; + private _depression = _unit getVariable [QEGVAR(pharma,opioidDepressionFactor)] + 0.08; + _patient setVariable [QEGVAR(pharma,opioidDepressionFactor), _depression]; + }, 30, [_patient]] call CBA_fnc_addPerFrameHandler; + }, _patient, 30] call CBA_fnc_waitAndExecute; }; case 2: { - private _bpAdjust = -20 + floor random ((-5 - -20) + 1); - [_patient, _bpAdjust, _bpAdjust, "EtomidateOverdose"] call kat_circulation_fnc_updateBloodPressureChange; + private _bpAdjust = -20 + floor random ((-5 - -20) + 1); + [_patient, _bpAdjust, _bpAdjust, "EtomidateOverdose"] call kat_circulation_fnc_updateBloodPressureChange; + private _hrAdjust = 20 + floor random ((40 - 20) + 1); + [_patient, "TACHYCARDIA", 120, 1200, _hrAdjust, "", "", "", "", ""] call EFUNC(vitals,addMedicationAdjustment); + [{ + params ["_patient"]; + private _etomidateOverdoseTarget = 0; + [{ + params ["_patient", "_idPFH"]; + if (!(alive _patient)) exitWith { + [_idPFH] call CBA_fnc_removePerFrameHandler; + }; + _etomidateOverdoseTarget = _etomidateOverdoseTarget + 1; + if (_etomidateOverdoseTarget > 12) exitWith { + if (random(100) < 25) then { + [{ + params ["_args", "_idPFH"]; + _args params ["_patient"]; + private _ht = _patient getVariable [QEGVAR(circulation,ht), []]; + if ((_ht findIf {_x isEqualTo "lidocaineOD"}) == -1) then { + _ht pushBack "lidocaineOD"; + + if (_patient getVariable [QEGVAR(circulation,cardiacArrestType), 0] == 0) then { + [QACEGVAR(medical,FatalVitals), _patient] call CBA_fnc_localEvent; + }; + + _patient setVariable [QEGVAR(circulation,ht), _ht, true]; + }; + }, [_patient], 15] call CBA_fnc_waitAndExecute; + }; + [_idPFH] call CBA_fnc_removePerFrameHandler; + }; + private _depression = _unit getVariable [QEGVAR(pharma,opioidDepressionFactor)] + 0.08; + _patient setVariable [QEGVAR(pharma,opioidDepressionFactor), _depression]; + }, 30, [_patient]] call CBA_fnc_addPerFrameHandler; + }, _patient, 30] call CBA_fnc_waitAndExecute; + }; + case 3: { + private _bpAdjust = -20 + floor random ((-5 - -20) + 1); + [_patient, _bpAdjust, _bpAdjust, "EtomidateOverdose"] call kat_circulation_fnc_updateBloodPressureChange; private _hrAdjust = 20 + floor random ((40 - 20) + 1); - [_patient, "TACHYCARDIA", 120, 1200, _hrAdjust, "", "", "", "", ""] call EFUNC(vitals,addMedicationAdjustment); + [_patient, "TACHYCARDIA", 120, 1200, _hrAdjust, "", "", "", "", ""] call EFUNC(vitals,addMedicationAdjustment); + [{ + params ["_patient"]; + private _etomidateOverdoseTarget = 0; + [{ + params ["_patient", "_idPFH"]; + if (!(alive _patient)) exitWith { + [_idPFH] call CBA_fnc_removePerFrameHandler; + }; + _etomidateOverdoseTarget = _etomidateOverdoseTarget + 1; + if (_etomidateOverdoseTarget > 12) exitWith { + if (random(100) < 15) then { + [{ + params ["_args", "_idPFH"]; + _args params ["_patient"]; + private _ht = _patient getVariable [QEGVAR(circulation,ht), []]; + if ((_ht findIf {_x isEqualTo "lidocaineOD"}) == -1) then { + _ht pushBack "lidocaineOD"; + + if (_patient getVariable [QEGVAR(circulation,cardiacArrestType), 0] == 0) then { + [QACEGVAR(medical,FatalVitals), _patient] call CBA_fnc_localEvent; + }; + + _patient setVariable [QEGVAR(circulation,ht), _ht, true]; + }; + }, [_patient], 15] call CBA_fnc_waitAndExecute; + }; + [_idPFH] call CBA_fnc_removePerFrameHandler; + }; + private _depression = _unit getVariable [QEGVAR(pharma,opioidDepressionFactor)] + 0.08; + _patient setVariable [QEGVAR(pharma,opioidDepressionFactor), _depression]; + private _rr = _patient getvariable [QEGVAR(breathing,respiratoryRateMultiplier), 1] - 0.06; + _patient setvariable [QEGVAR(breathing,respiratoryRateMultiplier), _rr]; + }, 30, [_patient]] call CBA_fnc_addPerFrameHandler; + }, _patient, 30] call CBA_fnc_waitAndExecute; + }; + case 3: { + private _bpAdjust = -20 + floor random ((-5 - -20) + 1); + [_patient, _bpAdjust, _bpAdjust, "EtomidateOverdose"] call kat_circulation_fnc_updateBloodPressureChange; + private _hrAdjust = -40 + floor random ((-20 - -40) + 1); + [_patient, "BRADYCARDIA", 120, 1200, _hrAdjust, "", "", "", "", ""] call EFUNC(vitals,addMedicationAdjustment); + [{ + params ["_patient"]; + private _etomidateOverdoseTarget = 0; + [{ + params ["_patient", "_idPFH"]; + if (!(alive _patient)) exitWith { + [_idPFH] call CBA_fnc_removePerFrameHandler; + }; + _etomidateOverdoseTarget = _etomidateOverdoseTarget + 1; + if (_etomidateOverdoseTarget > 12) exitWith { + if (random(100) < 15) then { + [{ + params ["_args", "_idPFH"]; + _args params ["_patient"]; + private _ht = _patient getVariable [QEGVAR(circulation,ht), []]; + if ((_ht findIf {_x isEqualTo "lidocaineOD"}) == -1) then { + _ht pushBack "lidocaineOD"; + + if (_patient getVariable [QEGVAR(circulation,cardiacArrestType), 0] == 0) then { + [QACEGVAR(medical,FatalVitals), _patient] call CBA_fnc_localEvent; + }; + + _patient setVariable [QEGVAR(circulation,ht), _ht, true]; + }; + }, [_patient], 15] call CBA_fnc_waitAndExecute; + }; + [_idPFH] call CBA_fnc_removePerFrameHandler; + }; + private _depression = _unit getVariable [QEGVAR(pharma,opioidDepressionFactor)] + 0.08; + _patient setVariable [QEGVAR(pharma,opioidDepressionFactor), _depression]; + private _rr = _patient getvariable [QEGVAR(breathing,respiratoryRateMultiplier), 1] - 0.06; + _patient setvariable [QEGVAR(breathing,respiratoryRateMultiplier), _rr]; + }, 30, [_patient]] call CBA_fnc_addPerFrameHandler; + }, _patient, 30] call CBA_fnc_waitAndExecute; }; }; if QEGVAR(feedback,effectOverdose) then - {PP_wetD = ppEffectCreate ["WetDistortion",300]; - PP_wetD ppEffectEnable true; - PP_wetD ppEffectAdjust [9.7,0.2,-0.1,1.84,1.46,0.33,0.86,0.05,0.05,0.05,0.05,0.1,0.1,0.2,0.2]; - PP_wetD ppEffectCommit 0; - // Date YYYY-MM-DD-HH-MM: [2035,6,24,8,0]. Overcast: 0.3. Fog: 0.0823474. Fog params: [0.0800016,0.013,0] - // GF PostProcess Editor parameters: Copy the following line to clipboard and click Import in the editor. - //[[false,100,[0.2,0.2,0.26,0.3]],[false,200,[0.05,0.05,true]],[true,300,[9.7,0.2,-0.1,1.84,1.46,0.33,0.86,0.05,0.05,0.05,0.05,0.1,0.1,0.2,0.2]],[false,1500,[1,1,0,[2,2,2,-0.1],[5,5,5,1],[4,0.33,0.33,0],[0.66,0,0.96,0,0,0,4]]],[false,500,[2.06]],[false,2000,[0.44,1,1,0.5,0.5,true]],[false,2500,[1,1,1]]] - [{PP_wetD ppEffectEnable false; PP_wetD ppEffectCommit 0;}, [], 600] call CBA_fnc_waitAndExecute;}: \ No newline at end of file + { + PP_wetD = ppEffectCreate ["WetDistortion",300]; + PP_wetD ppEffectEnable true; + PP_wetD ppEffectAdjust [9.7,0.2,-0.1,1.84,1.46,0.33,0.86,0.05,0.05,0.05,0.05,0.1,0.1,0.2,0.2]; + PP_wetD ppEffectCommit 0; + // Date YYYY-MM-DD-HH-MM: [2035,6,24,8,0]. Overcast: 0.3. Fog: 0.0823474. Fog params: [0.0800016,0.013,0] + // GF PostProcess Editor parameters: Copy the following line to clipboard and click Import in the editor. + //[[false,100,[0.2,0.2,0.26,0.3]],[false,200,[0.05,0.05,true]],[true,300,[9.7,0.2,-0.1,1.84,1.46,0.33,0.86,0.05,0.05,0.05,0.05,0.1,0.1,0.2,0.2]],[false,1500,[1,1,0,[2,2,2,-0.1],[5,5,5,1],[4,0.33,0.33,0],[0.66,0,0.96,0,0,0,4]]],[false,500,[2.06]],[false,2000,[0.44,1,1,0.5,0.5,true]],[false,2500,[1,1,1]]] + [{PP_wetD ppEffectEnable false; PP_wetD ppEffectCommit 0;}, [], 600] call CBA_fnc_waitAndExecute;}; \ No newline at end of file diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_FentanylOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_FentanylOverdoseLocal.sqf index 9bf52f81e..882dcf043 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_FentanylOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_FentanylOverdoseLocal.sqf @@ -44,9 +44,9 @@ private _hrAdjust = -50 + floor random ((-30 - -50) + 1); }, [_patient], 10] call CBA_fnc_waitAndExecute; [_idPFH] call CBA_fnc_removePerFrameHandler; }; - private _medications = _patient getVariable [QACEGVAR(medical,medications), []]; - if (_medications findIf {_x isEqualTo "naloxone"} != -1) exitWith {}; - private _depression = _unit getVariable [QEGVAR(pharma,opioidFactor)] + 0.1; - _patient setVariable [QEGVAR(pharma,opioidFactor), _depression]; + private _medications = _patient getVariable [QACEGVAR(medical,medications), []]; + if (_medications findIf {_x isEqualTo "naloxone"} != -1) exitWith {}; + private _depression = _unit getVariable [QEGVAR(pharma,opioidDepressionFactor)] + 0.08; + _patient setVariable [QEGVAR(pharma,opioidDepressionFactor), _depression]; }, 10, [_patient]] call CBA_fnc_addPerFrameHandler; }, _patient, 10] call CBA_fnc_waitAndExecute; diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_FlumazenilLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_FlumazenilLocal.sqf index c40be45a6..21c041efd 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_FlumazenilLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_FlumazenilLocal.sqf @@ -18,3 +18,25 @@ params ["_patient"]; _patient setVariable [QEGVAR(surgery,sedated), false, true]; +private _medications = _patient getVariable [QACEGVAR(medical,medications), []]; +if (_medications findIf {_x isEqualTo "Lorazepam"} != ) exitWith {[{ + params ["_patient"]; + private _FlumanzenilTarget = 0; + [{ + params ["_patient", "_idPFH"]; + if (!(alive _patient)) exitWith { + [_idPFH] call CBA_fnc_removePerFrameHandler; + }; + _FlumanzenilTarget = _FlumanzenilTarget + 1; + if (_FlumanzenilTarget > 12) exitWith { + [{ + params ["_args", "_idPFH"]; + _args params ["_patient"]; + }, [_patient], 15] call CBA_fnc_waitAndExecute; + [_idPFH] call CBA_fnc_removePerFrameHandler; + }; + private _depression = _unit getVariable [QEGVAR(pharma,opioidDepressionFactor)] - 0.08; + _patient setVariable [QEGVAR(pharma,opioidDepressionFactor), _depression]; + }, 60, [_patient]] call CBA_fnc_addPerFrameHandler; +}, _patient, 60] call CBA_fnc_waitAndExecute;}; + diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_FlumazenilOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_FlumazenilOverdoseLocal.sqf index 1784c47eb..269819a9b 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_FlumazenilOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_FlumazenilOverdoseLocal.sqf @@ -14,4 +14,17 @@ * * Public: No */ -params ["_patient"]; \ No newline at end of file +params ["_patient"]; +private _hrAdjust = 20 + floor random ((40 - 20) + 1); +[_patient, "TACHYCARDIA", 120, 1200, _hrAdjust, "", "", "", "", ""] call EFUNC(vitals,addMedicationAdjustment); +if QEGVAR(feedback,effectOverdose) then + { + PP_wetD = ppEffectCreate ["WetDistortion",300]; + PP_wetD ppEffectEnable true; + PP_wetD ppEffectAdjust [10,0.2,0.2,1.84,1.46,0.33,0.86,0.05,0.05,0.05,0.05,0.1,0.1,0.2,0.2]; + PP_wetD ppEffectCommit 0; + [{PP_wetD ppEffectEnable false; PP_wetD ppEffectCommit 0;}, [], 600] call CBA_fnc_waitAndExecute;}; + // Date YYYY-MM-DD-HH-MM: [2035,6,24,8,0]. Overcast: 0.3. Fog: 0.0806154. Fog params: [0.0800015,0.013,0] + // GF PostProcess Editor parameters: Copy the following line to clipboard and click Import in the editor. + //[[false,100,[0.2,0.2,0.26,0.3]],[false,200,[0.05,0.05,true]],[true,300,[10,0.2,0.2,1.84,1.46,0.33,0.86,0.05,0.05,0.05,0.05,0.1,0.1,0.2,0.2]],[false,1500,[1,1,0,[2,2,2,-0.1],[5,5,5,1],[4,0.33,0.33,0],[0.66,0,0.96,0,0,0,4]]],[false,500,[2.06]],[false,2000,[0.44,1,1,0.5,0.5,true]],[false,2500,[1,1,1]]] + \ No newline at end of file diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_KetamineOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_KetamineOverdoseLocal.sqf index 220aff5c8..be8d2fc20 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_KetamineOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_KetamineOverdoseLocal.sqf @@ -16,4 +16,37 @@ * * Public: No */ -params ["_patient"]; \ No newline at end of file +params ["_patient"]; +[{ + params ["_patient"]; + private _KetamineOverdoseTarget = 0; + [{ + params ["_patient", "_idPFH"]; + if (!(alive _patient)) exitWith { + [_idPFH] call CBA_fnc_removePerFrameHandler; + }; + _KetamineOverdoseTarget = _KetamineOverdoseTarget + 1; + if (_KetamineOverdoseTarget > 12) exitWith { + if (random(100) < 25) then { + [{ + params ["_args", "_idPFH"]; + _args params ["_patient"]; + private _ht = _patient getVariable [QEGVAR(circulation,ht), []]; + if ((_ht findIf {_x isEqualTo "KetamineOD"}) == -1) then { + _ht pushBack "KetamineOD"; + + if (_patient getVariable [QEGVAR(circulation,cardiacArrestType), 0] == 0) then { + [QACEGVAR(medical,FatalVitals), _patient] call CBA_fnc_localEvent; + }; + _patient setVariable [QEGVAR(circulation,ht), _ht, true]; + }; + }, [_patient], 15] call CBA_fnc_waitAndExecute; + }; + [_idPFH] call CBA_fnc_removePerFrameHandler; + }; + private _rr = _patient getvariable [QEGVAR(breathing,respiratoryRateMultiplier), 1] - 0.04; + _patient setvariable [QEGVAR(breathing,respiratoryRateMultiplier), _rr]; + private _depression = _unit getVariable [QEGVAR(pharma,opioidDepressionFactor)] + 0.04; + _patient setVariable [QEGVAR(pharma,opioidDepressionFactor), _depression]; + }, 15, [_patient]] call CBA_fnc_addPerFrameHandler; +}, _patient, 15] call CBA_fnc_waitAndExecute; \ No newline at end of file diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_LidocaineOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_LidocaineOverdoseLocal.sqf index a10b8e371..6ed5cd4ea 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_LidocaineOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_LidocaineOverdoseLocal.sqf @@ -15,3 +15,41 @@ * Public: No */ params ["_patient"]; +private _bpAdjust = -40 + floor random ((-25 - -40) + 1); +[_patient, _bpAdjust, _bpAdjust, "lidocaineOverdose"] call kat_circulation_fnc_updateBloodPressureChange; +private _hrAdjust = -50 + floor random ((-30 - -50) + 1); +[_patient, "BRADYCARDIA", 120, 1200, _hrAdjust, "", "", "", "", ""] call EFUNC(vitals,addMedicationAdjustment); +[{ + params ["_patient"]; + private _lidocaineOverdoseTarget = 0; + [{ + params ["_patient", "_idPFH"]; + if (!(alive _patient)) exitWith { + [_idPFH] call CBA_fnc_removePerFrameHandler; + }; + _lidocaineOverdoseTarget = _lidocaineOverdoseTarget + 1; + if (_lidocaineOverdoseTarget > 12) exitWith { + if (random(100) < 25) then { + [{ + params ["_args", "_idPFH"]; + _args params ["_patient"]; + private _ht = _patient getVariable [QEGVAR(circulation,ht), []]; + if ((_ht findIf {_x isEqualTo "lidocaineOD"}) == -1) then { + _ht pushBack "lidocaineOD"; + + if (_patient getVariable [QEGVAR(circulation,cardiacArrestType), 0] == 0) then { + [QACEGVAR(medical,FatalVitals), _patient] call CBA_fnc_localEvent; + }; + + _patient setVariable [QEGVAR(circulation,ht), _ht, true]; + }; + }, [_patient], 15] call CBA_fnc_waitAndExecute; + }; + [_idPFH] call CBA_fnc_removePerFrameHandler; + }; + private _medications = _patient getVariable [QACEGVAR(medical,medications), []]; + if (_medications findIf {_x isEqualTo "naloxone"} != -1) exitWith {}; + private _depression = _unit getVariable [QEGVAR(pharma,opioidDepressionFactor)] + 0.08; + _patient setVariable [QEGVAR(pharma,opioidDepressionFactor), _depression]; + }, 30, [_patient]] call CBA_fnc_addPerFrameHandler; +}, _patient, 30] call CBA_fnc_waitAndExecute; diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_LorazepamOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_LorazepamOverdoseLocal.sqf index a10b8e371..72fd314da 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_LorazepamOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_LorazepamOverdoseLocal.sqf @@ -15,3 +15,48 @@ * Public: No */ params ["_patient"]; +private _bpAdjust = -30 + floor random ((-15 - -30) + 1); +[_patient, _bpAdjust, _bpAdjust, "LorazepamOverdose"] call kat_circulation_fnc_updateBloodPressureChange; +private _hrAdjust = -50 + floor random ((-30 - -50) + 1); +[_patient, "LorazepamOverdose", 120, 1200, _hrAdjust, "", "", "", "", ""] call EFUNC(vitals,addMedicationAdjustment); +[{ + params ["_patient"]; + private _LorazepamOverdoseTarget = 0; + [{ + params ["_patient", "_idPFH"]; + if (!(alive _patient)) exitWith { + [_idPFH] call CBA_fnc_removePerFrameHandler; + }; + _LorazepamOverdoseTarget = _LorazepamOverdoseTarget + 1; + if (_LorazepamOverdoseTarget > 12) exitWith { + if (random(100) < 25) then { + [{ + params ["_args", "_idPFH"]; + _args params ["_patient"]; + private _ht = _patient getVariable [QEGVAR(circulation,ht), []]; + if ((_ht findIf {_x isEqualTo "LorazepamOD"}) == -1) then { + _ht pushBack "LorazepamOD"; + + if (_patient getVariable [QEGVAR(circulation,cardiacArrestType), 0] == 0) then { + [QACEGVAR(medical,FatalVitals), _patient] call CBA_fnc_localEvent; + }; + + _patient setVariable [QEGVAR(circulation,ht), _ht, true]; + }; + }, [_patient], 15] call CBA_fnc_waitAndExecute; + }; + [_idPFH] call CBA_fnc_removePerFrameHandler; + }; + private _depression = _unit getVariable [QEGVAR(pharma,opioidDepressionFactor)] + 0.08; + _patient setVariable [QEGVAR(pharma,opioidDepressionFactor), _depression]; + }, 15, [_patient]] call CBA_fnc_addPerFrameHandler; +}, _patient, 15] call CBA_fnc_waitAndExecute; + + +if QEGVAR(feedback,effectOverdose) then + { + PP_wetD = ppEffectCreate ["WetDistortion",300]; + PP_wetD ppEffectEnable true; + PP_wetD ppEffectAdjust [10,0.2,0.2,1.84,1.46,0.33,0.86,0.05,0.05,0.05,0.05,0.1,0.1,0.2,0.2]; + PP_wetD ppEffectCommit 0; + [{PP_wetD ppEffectEnable false; PP_wetD ppEffectCommit 0;}, [], 600] call CBA_fnc_waitAndExecute;}; diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_MorphineOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_MorphineOverdoseLocal.sqf index 1fa0a846b..7cd7be3c3 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_MorphineOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_MorphineOverdoseLocal.sqf @@ -15,7 +15,6 @@ * Public: No */ params ["_patient"]; -params ["_patient"]; private _bpAdjust = -30 + floor random ((-15 - -30) + 1); [_patient, _bpAdjust, _bpAdjust, "morphineOverdose"] call kat_circulation_fnc_updateBloodPressureChange; private _hrAdjust = -50 + floor random ((-30 - -50) + 1); @@ -44,9 +43,9 @@ private _hrAdjust = -50 + floor random ((-30 - -50) + 1); }, [_patient], 10] call CBA_fnc_waitAndExecute; [_idPFH] call CBA_fnc_removePerFrameHandler; }; - private _medications = _patient getVariable [QACEGVAR(medical,medications), []]; - if (_medications findIf {_x isEqualTo "naloxone"} != -1) exitWith {}; - private _depression = _unit getVariable [QEGVAR(pharma,opioidFactor)] + 0.08; - _patient setVariable [QEGVAR(pharma,opioidFactor), _depression]; + private _medications = _patient getVariable [QACEGVAR(medical,medications), []]; + if (_medications findIf {_x isEqualTo "naloxone"} != -1) exitWith {}; + private _depression = _unit getVariable [QEGVAR(pharma,opioidDepressionFactor)] + 0.08; + _patient setVariable [QEGVAR(pharma,opioidDepressionFactor), _depression]; }, 10, [_patient]] call CBA_fnc_addPerFrameHandler; }, _patient, 10] call CBA_fnc_waitAndExecute; diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_NalbuphineOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_NalbuphineOverdoseLocal.sqf index bdd6c14b6..917360f21 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_NalbuphineOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_NalbuphineOverdoseLocal.sqf @@ -44,9 +44,9 @@ private _hrAdjust = -50 + floor random ((-30 - -50) + 1); }, [_patient], 10] call CBA_fnc_waitAndExecute; [_idPFH] call CBA_fnc_removePerFrameHandler; }; - private _medications = _patient getVariable [QACEGVAR(medical,medications), []]; - if (_medications findIf {_x isEqualTo "naloxone"} != -1) exitWith {}; - private _depression = _unit getVariable [QEGVAR(pharma,opioidFactor)] + 0.05; - _patient setVariable [QEGVAR(pharma,opioidFactor), _depression]; + private _medications = _patient getVariable [QACEGVAR(medical,medications), []]; + if (_medications findIf {_x isEqualTo "naloxone"} != -1) exitWith {}; + private _depression = _unit getVariable [QEGVAR(pharma,opioidDepressionFactor)] + 0.05; + _patient setVariable [QEGVAR(pharma,opioidDepressionFactor), _depression]; }, 10, [_patient]] call CBA_fnc_addPerFrameHandler; }, _patient, 10] call CBA_fnc_waitAndExecute; diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_NaloxoneOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_NaloxoneOverdoseLocal.sqf index 8e5983b55..8a8dc27af 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_NaloxoneOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_NaloxoneOverdoseLocal.sqf @@ -14,4 +14,4 @@ * * Public: No */ - +params ["_patient"]; diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_NitroglycerinOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_NitroglycerinOverdoseLocal.sqf index 58476f973..b33602b25 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_NitroglycerinOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_NitroglycerinOverdoseLocal.sqf @@ -18,3 +18,7 @@ params ["_patient"]; private _hrValue = [-20, -25, -30, -35, -40, -45, 20, 25, 30, 35, 40, 45]; private _hrAdjust = selectRandom _hrValue; [_patient, NitroglycerinOverdose, 30, 1200, _hrAdjust, "", 75, "", "", ""] call EFUNC(vitals,addMedicationAdjustment); +if (random 3 < 1) then { + private _randomValue = [3, 4]; + private _randomRhythm = selectRandom _randomValue; + _patient setVariable [QEGVAR(circulation,cardiacArrestType), _randomRhythm];}; diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_NorepinephrineLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_NorepinephrineLocal.sqf index 8631f2d4f..57a63abce 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_NorepinephrineLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_NorepinephrineLocal.sqf @@ -1,7 +1,7 @@ #include "..\script_component.hpp" /* - * Author: Mazinski.H - * Locates and Removes Bradycardia Effect. + * Author: Cplhardcore + * * * Arguments: * 0: Patient diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_NorepinephrineOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_NorepinephrineOverdoseLocal.sqf index 9686acd92..c1a8d9136 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_NorepinephrineOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_NorepinephrineOverdoseLocal.sqf @@ -1,7 +1,7 @@ #include "..\script_component.hpp" /* - * Author: Mazinski.H - * Locates and Removes Bradycardia Effect. + * Author: Cplhardcore + * Applies Norepinephrine Overdose Effects * * Arguments: * 0: Patient diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_PervitinOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_PervitinOverdoseLocal.sqf index c941a693e..e69bc9f0c 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_PervitinOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_PervitinOverdoseLocal.sqf @@ -15,4 +15,38 @@ * * Public: No */ -params ["_patient"]; \ No newline at end of file +params ["_patient"]; +private _randomNumber = floor (random 3) + 1; +switch (_randomNumber) do { + case 1: { + private _bpAdjust = 20 + floor random ((35 - 20) + 1); + [_patient, _bpAdjust, _bpAdjust, "PervitinOverdose"] call kat_circulation_fnc_updateBloodPressureChange; + private _hrAdjust = 30 + floor random ((50 - 30) + 1); + [_patient, "TACHYCARDIA", 120, 1200, _hrAdjust, "", "", "", "", ""] call EFUNC(vitals,addMedicationAdjustment); + }; + case 2: { + private _bpAdjust = 20 + floor random ((35 - 20) + 1); + [_patient, _bpAdjust, _bpAdjust, "PervitinOverdose"] call kat_circulation_fnc_updateBloodPressureChange; + private _hrAdjust = 30 + floor random ((50 - 30) + 1); + [_patient, "TACHYCARDIA", 120, 1200, _hrAdjust, "", "", "", "", ""] call EFUNC(vitals,addMedicationAdjustment); + private _randomValue = [3, 4]; + private _randomRhythm = selectRandom _randomValue; + _patient setVariable [QEGVAR(circulation,cardiacArrestType), _randomRhythm]; + }; + case 3: { + private _bpAdjust = 20 + floor random ((35 - 20) + 1); + [_patient, _bpAdjust, _bpAdjust, "PervitinOverdose"] call kat_circulation_fnc_updateBloodPressureChange; + private _hrAdjust = 30 + floor random ((50 - 30) + 1); + [_patient, "TACHYCARDIA", 120, 1200, _hrAdjust, "", "", "", "", ""] call EFUNC(vitals,addMedicationAdjustment); + private _randomValue = [3, 4]; + private _randomRhythm = selectRandom _randomValue; + _patient setVariable [QEGVAR(circulation,cardiacArrestType), _randomRhythm]; + }; + case 4: { + private _bpAdjust = 20 + floor random ((35 - 20) + 1); + [_patient, _bpAdjust, _bpAdjust, "PervitinOverdose"] call kat_circulation_fnc_updateBloodPressureChange; + private _hrAdjust = 30 + floor random ((50 - 30) + 1); + [_patient, "TACHYCARDIA", 120, 1200, _hrAdjust, "", "", "", "", ""] call EFUNC(vitals,addMedicationAdjustment); + _patient setVariable [QEGVAR(circulation,cardiacArrestType), 0]; + }; +}; \ No newline at end of file diff --git a/addons/vitals/XEH_PREP.hpp b/addons/vitals/XEH_PREP.hpp index 9295e7f53..2618e1039 100644 --- a/addons/vitals/XEH_PREP.hpp +++ b/addons/vitals/XEH_PREP.hpp @@ -8,5 +8,6 @@ PREP(handleRespawn); PREP(handleOxygenFunction); PREP(hasStableVitals); PREP(init); +PREP(updateOpioidDepression); PREP(updateOpioidEffect); PREP(updateOpioidRelief); \ No newline at end of file diff --git a/addons/vitals/functions/fnc_addMedicationAdjustment.sqf b/addons/vitals/functions/fnc_addMedicationAdjustment.sqf index c293d1345..f49f7b0f7 100644 --- a/addons/vitals/functions/fnc_addMedicationAdjustment.sqf +++ b/addons/vitals/functions/fnc_addMedicationAdjustment.sqf @@ -20,7 +20,7 @@ * * Public: No */ -params ["_unit", "_medication", "_timeToMaxEffect", "_maxTimeInSystem", "_hrAdjust", "_painAdjust", "_flowAdjust", "_alphaFactor", "_opioidRelief", "_opioidEffect"]; +params ["_unit", "_medication", "_timeToMaxEffect", "_maxTimeInSystem", "_hrAdjust", "_painAdjust", "_flowAdjust", "_alphaFactor", "_opioidRelief", "_opioidEffect", "_opioidDepression"]; TRACE_7("addMedicationAdjustment",_unit,_medication,_timeToMaxEffect,_maxTimeInSystem,_hrAdjust,_painAdjust,_flowAdjust); if (_maxTimeInSystem <= 0) exitWith { WARNING_1("bad value for _maxTimeInSystem - %1",_this); }; @@ -29,6 +29,6 @@ _timeToMaxEffect = _timeToMaxEffect max 1; private _adjustments = _unit getVariable [VAR_MEDICATIONS, []]; -_adjustments pushBack [_medication, CBA_missionTime, _timeToMaxEffect, _maxTimeInSystem, _hrAdjust, _painAdjust, _flowAdjust, _alphaFactor, _opioidRelief, _opioidEffect]; +_adjustments pushBack [_medication, CBA_missionTime, _timeToMaxEffect, _maxTimeInSystem, _hrAdjust, _painAdjust, _flowAdjust, _alphaFactor, _opioidRelief, _opioidEffect, _opioidDepression]; _unit setVariable [VAR_MEDICATIONS, _adjustments, true]; diff --git a/addons/vitals/functions/fnc_handleOxygenFunction.sqf b/addons/vitals/functions/fnc_handleOxygenFunction.sqf index dab0fab68..5ebb34cdf 100644 --- a/addons/vitals/functions/fnc_handleOxygenFunction.sqf +++ b/addons/vitals/functions/fnc_handleOxygenFunction.sqf @@ -33,6 +33,7 @@ params ["_unit", "_actualHeartRate", "_anerobicPressure", "_bloodGas", "_tempera #define DEFAULT_FIO2 0.21 private _respiratoryRate = 0; +private _respiratoryRateMult = _unit getvariable [QEGVAR(breathing,respiratoryRateMultiplier), 1]; private _demandVentilation = 0; private _actualVentilation = 0; private _previousCyclePaco2 = (_bloodGas select 0); @@ -49,7 +50,7 @@ if (IN_CRDC_ARRST(_unit)) then { private _tidalVolume = GET_KAT_SURFACE_AREA(_unit); // Respiratory Rate is supressed by Opioids - _respiratoryRate = [((_demandVentilation / _tidalVolume) - (_opioidDepression * 5)) min MAXIMUM_RR, 20] select (_unit getVariable [QEGVAR(breathing,BVMInUse), false]); + _respiratoryRate = [(((_demandVentilation / _tidalVolume) - (_opioidDepression * 5)) * _respiratoryRateMult) min MAXIMUM_RR, 20] select (_unit getVariable [QEGVAR(breathing,BVMInUse), false]); // If respiratory rate is low due to PaCO2, it starts increasing faster to compensate if (_previousCyclePaco2 > 50) then { _respiratoryRate = (_respiratoryRate + ((_previousCyclePaco2 - 50) * 0.2)) min MAXIMUM_RR}; diff --git a/addons/vitals/functions/fnc_handleUnitVitals.sqf b/addons/vitals/functions/fnc_handleUnitVitals.sqf index fe3295591..2f8f2f0ec 100644 --- a/addons/vitals/functions/fnc_handleUnitVitals.sqf +++ b/addons/vitals/functions/fnc_handleUnitVitals.sqf @@ -91,6 +91,7 @@ private _peripheralResistanceAdjustment = 0; private _alphaFactorAdjustment = 0; private _opioidAdjustment = 0; private _opioidEffectAdjustment = 0; +private _opioidDepressionAdjustment = 0; private _adjustments = _unit getVariable [VAR_MEDICATIONS,[]]; if !(_adjustments isEqualTo []) then { @@ -109,6 +110,7 @@ if !(_adjustments isEqualTo []) then { if (_alphaFactor != 0) then { _alphaFactorAdjustment = _alphaFactorAdjustment + _alphaFactor * _effectRatio; }; if (_opioidRelief != 0) then {_opioidAdjustment = _opioidAdjustment + _opioidRelief * _effectRatio; }; if (_opioidEffect != 0) then {_opioidEffectAdjustment = _opioidEffectAdjustment + _opioidEffect * _effectRatio; }; + if (_opioidDepression != 0) then {_opioidDepressionAdjustment = _opioidAdjustment + _opioidDepression * _effectRatio; }; }; } forEach _adjustments; @@ -122,6 +124,7 @@ if !(_adjustments isEqualTo []) then { [_unit, _peripheralResistanceAdjustment, _deltaT, _syncValues] call ACEFUNC(medical_vitals,updatePeripheralResistance); [_unit, _opioidAdjustment, _deltaT, _syncValues] call FUNC(updateOpioidRelief); [_unit, _opioidEffectAdjustment, _deltaT, _syncValues] call FUNC(updateOpioidEffect); +[_unit, _opioid_opioidDepressionAdjustment, _deltaT, _syncValues] call FUNC(updateOpioidDepression); private _heartRate = [_unit, _hrTargetAdjustment, 0, _bloodVolume, _deltaT, _syncValues] call FUNC(handleCardiacFunction); @@ -129,7 +132,7 @@ private _spo2 = 97; if (EGVAR(breathing,enable)) then { // Additional variables for Respiration functions private _bloodGas = GET_BLOOD_GAS(_unit); - private _opioidDepression = GET_OPIOID_FACTOR(_unit); + private _opioidDepression = GET_OPIOID_DEPRESSION(_unit); private _anerobicPressure = (DEFAULT_ANEROBIC_EXCHANGE * (6 / (_bloodVolume max 6))) min 1.2; _spo2 = [_unit, _heartRate, _anerobicPressure, _bloodGas, _temperature, _baroPressure, _opioidDepression, _deltaT, _syncValues] call FUNC(handleOxygenFunction); diff --git a/addons/vitals/functions/fnc_updateOpioidDepression.sqf b/addons/vitals/functions/fnc_updateOpioidDepression.sqf new file mode 100644 index 000000000..b6b1a5230 --- /dev/null +++ b/addons/vitals/functions/fnc_updateOpioidDepression.sqf @@ -0,0 +1,23 @@ +#include "..\script_component.hpp" +/* + * Author: Cplhardcore + * Update the opioid Depression effect + * + * Arguments: + * 0: The Unit + * 1: Opioid Depression Adjustments + * 2: Time since last update + * 3: Sync value? + * + * Return Value: + * None + * + * Example: + * [player, 0, 1, false] call kat_vitals_fnc_updateOpioidDepression + * + * Public: No + */ + +params ["_unit", "_opioidDepressionAdjustment", "_deltaT", "_syncValue"]; + +_unit setVariable [QEGVAR(pharma,opioidDepression), _opioidDepressionAdjustment, _syncValue]; From e6a9877098d47c98e3ce2c83e315283f372cfa5a Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Wed, 13 Nov 2024 07:58:28 -0800 Subject: [PATCH 131/149] fixes --- .../fnc_treatmentAdvanced_FlumazenilOverdoseLocal.sqf | 2 +- .../fnc_treatmentAdvanced_LorazepamOverdoseLocal.sqf | 2 +- .../fnc_treatmentAdvanced_PervitinOverdoseLocal.sqf | 10 +++++----- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_FlumazenilOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_FlumazenilOverdoseLocal.sqf index 269819a9b..b8bf0035b 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_FlumazenilOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_FlumazenilOverdoseLocal.sqf @@ -23,7 +23,7 @@ if QEGVAR(feedback,effectOverdose) then PP_wetD ppEffectEnable true; PP_wetD ppEffectAdjust [10,0.2,0.2,1.84,1.46,0.33,0.86,0.05,0.05,0.05,0.05,0.1,0.1,0.2,0.2]; PP_wetD ppEffectCommit 0; - [{PP_wetD ppEffectEnable false; PP_wetD ppEffectCommit 0;}, [], 600] call CBA_fnc_waitAndExecute;}; + [{PP_wetD ppEffectEnable false; PP_wetD ppEffectCommit 0;}, [], 600] call CBA_fnc_waitAndExecute;}; // Date YYYY-MM-DD-HH-MM: [2035,6,24,8,0]. Overcast: 0.3. Fog: 0.0806154. Fog params: [0.0800015,0.013,0] // GF PostProcess Editor parameters: Copy the following line to clipboard and click Import in the editor. //[[false,100,[0.2,0.2,0.26,0.3]],[false,200,[0.05,0.05,true]],[true,300,[10,0.2,0.2,1.84,1.46,0.33,0.86,0.05,0.05,0.05,0.05,0.1,0.1,0.2,0.2]],[false,1500,[1,1,0,[2,2,2,-0.1],[5,5,5,1],[4,0.33,0.33,0],[0.66,0,0.96,0,0,0,4]]],[false,500,[2.06]],[false,2000,[0.44,1,1,0.5,0.5,true]],[false,2500,[1,1,1]]] diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_LorazepamOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_LorazepamOverdoseLocal.sqf index 72fd314da..06e08f377 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_LorazepamOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_LorazepamOverdoseLocal.sqf @@ -59,4 +59,4 @@ if QEGVAR(feedback,effectOverdose) then PP_wetD ppEffectEnable true; PP_wetD ppEffectAdjust [10,0.2,0.2,1.84,1.46,0.33,0.86,0.05,0.05,0.05,0.05,0.1,0.1,0.2,0.2]; PP_wetD ppEffectCommit 0; - [{PP_wetD ppEffectEnable false; PP_wetD ppEffectCommit 0;}, [], 600] call CBA_fnc_waitAndExecute;}; + [{PP_wetD ppEffectEnable false; PP_wetD ppEffectCommit 0;}, [], 600] call CBA_fnc_waitAndExecute;}; diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_PervitinOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_PervitinOverdoseLocal.sqf index e69bc9f0c..6d8fdef8e 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_PervitinOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_PervitinOverdoseLocal.sqf @@ -29,20 +29,20 @@ switch (_randomNumber) do { [_patient, _bpAdjust, _bpAdjust, "PervitinOverdose"] call kat_circulation_fnc_updateBloodPressureChange; private _hrAdjust = 30 + floor random ((50 - 30) + 1); [_patient, "TACHYCARDIA", 120, 1200, _hrAdjust, "", "", "", "", ""] call EFUNC(vitals,addMedicationAdjustment); - private _randomValue = [3, 4]; + private _randomValue = [3, 4]; private _randomRhythm = selectRandom _randomValue; _patient setVariable [QEGVAR(circulation,cardiacArrestType), _randomRhythm]; }; - case 3: { + case 3: { private _bpAdjust = 20 + floor random ((35 - 20) + 1); [_patient, _bpAdjust, _bpAdjust, "PervitinOverdose"] call kat_circulation_fnc_updateBloodPressureChange; private _hrAdjust = 30 + floor random ((50 - 30) + 1); [_patient, "TACHYCARDIA", 120, 1200, _hrAdjust, "", "", "", "", ""] call EFUNC(vitals,addMedicationAdjustment); - private _randomValue = [3, 4]; - private _randomRhythm = selectRandom _randomValue; + private _randomValue = [3, 4]; + private _randomRhythm = selectRandom _randomValue; _patient setVariable [QEGVAR(circulation,cardiacArrestType), _randomRhythm]; }; - case 4: { + case 4: { private _bpAdjust = 20 + floor random ((35 - 20) + 1); [_patient, _bpAdjust, _bpAdjust, "PervitinOverdose"] call kat_circulation_fnc_updateBloodPressureChange; private _hrAdjust = 30 + floor random ((50 - 30) + 1); From 25c660e5b8edb0314aa9a1a205349b24a4adece6 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Wed, 13 Nov 2024 08:13:17 -0800 Subject: [PATCH 132/149] More fixes --- .../pharma/functions/fnc_treatmentAdvanced_FlumazenilLocal.sqf | 2 +- .../functions/fnc_treatmentAdvanced_LidocaineOverdoseLocal.sqf | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_FlumazenilLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_FlumazenilLocal.sqf index 21c041efd..782d3fdd4 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_FlumazenilLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_FlumazenilLocal.sqf @@ -19,7 +19,7 @@ params ["_patient"]; _patient setVariable [QEGVAR(surgery,sedated), false, true]; private _medications = _patient getVariable [QACEGVAR(medical,medications), []]; -if (_medications findIf {_x isEqualTo "Lorazepam"} != ) exitWith {[{ +if (_medications findIf {_x isEqualTo "Lorazepam"} != -1) exitWith {[{ params ["_patient"]; private _FlumanzenilTarget = 0; [{ diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_LidocaineOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_LidocaineOverdoseLocal.sqf index 6ed5cd4ea..5e03e4e75 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_LidocaineOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_LidocaineOverdoseLocal.sqf @@ -48,7 +48,6 @@ private _hrAdjust = -50 + floor random ((-30 - -50) + 1); [_idPFH] call CBA_fnc_removePerFrameHandler; }; private _medications = _patient getVariable [QACEGVAR(medical,medications), []]; - if (_medications findIf {_x isEqualTo "naloxone"} != -1) exitWith {}; private _depression = _unit getVariable [QEGVAR(pharma,opioidDepressionFactor)] + 0.08; _patient setVariable [QEGVAR(pharma,opioidDepressionFactor), _depression]; }, 30, [_patient]] call CBA_fnc_addPerFrameHandler; From 780fd5ede27832ff01743dd24cd2d6bd7f6094d2 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Fri, 15 Nov 2024 16:28:42 -0800 Subject: [PATCH 133/149] Fixes --- addons/pharma/ACE_Medical_Treatment.hpp | 109 +++++++++++++++--- .../pharma/functions/fnc_medicationLocal.sqf | 15 ++- addons/pharma/functions/fnc_overDose.sqf | 2 +- .../functions/fnc_addMedicationAdjustment.sqf | 9 +- 4 files changed, 107 insertions(+), 28 deletions(-) diff --git a/addons/pharma/ACE_Medical_Treatment.hpp b/addons/pharma/ACE_Medical_Treatment.hpp index 4bcab3826..3307947de 100644 --- a/addons/pharma/ACE_Medical_Treatment.hpp +++ b/addons/pharma/ACE_Medical_Treatment.hpp @@ -11,6 +11,8 @@ class ACE_ADDON(Medical_Treatment) { timeInSystem = 120; // How long until the maximum effect is reached timeTillMaxEffect = 30; + + dose = 1; // How many of this type of medication can be in the system before the patient overdoses? maxDose = 4; // The number of doses over maxDose where there is a chance to overdose. @@ -36,6 +38,7 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseHigh[] = {10, 40}; timeInSystem = 120; timeTillMaxEffect = 10; + dose = 1; maxDose = 6; maxDoseDeviation = 4; incompatibleMedication[] = {}; @@ -49,6 +52,7 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseHigh[] = {15, 40}; timeInSystem = 120; timeTillMaxEffect = 10; + dose = 1; maxDose = 4; maxDoseDeviation = 2; incompatibleMedication[] = {}; @@ -62,6 +66,7 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseHigh[] = {-10, -25}; timeInSystem = 300; timeTillMaxEffect = 60; + dose = 1; maxDose = 2; maxDoseDeviation = 2; incompatibleMedication[] = {}; @@ -74,6 +79,7 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseHigh[] = {-10, -35}; timeInSystem = 900; timeTillMaxEffect = 30; + dose = 1; maxDose = 2; maxDoseDeviation = 1; incompatibleMedication[] = {}; @@ -87,6 +93,7 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseHigh[] = {-5, -20}; timeInSystem = 180; timeTillMaxEffect = 30; + dose = 1; maxDose = 2; maxDoseDeviation = 2; incompatibleMedication[] = {}; @@ -99,6 +106,7 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseHigh[] = {-15, -35}; timeInSystem = 360; timeTillMaxEffect = 15; + dose = 1; maxDose = 2; maxDoseDeviation = 2; incompatibleMedication[] = {}; @@ -111,6 +119,7 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseHigh[] = {15, 20}; timeInSystem = 30; timeTillMaxEffect = 2; + dose = 1; maxDose = 10; incompatibleMedication[] = {}; viscosityChange = 0; @@ -123,6 +132,7 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseHigh[] = {0, 0}; timeInSystem = 240; timeTillMaxEffect = 30; + dose = 1; maxDose = 3; incompatibleMedication[] = {}; viscosityChange = 0; @@ -135,6 +145,7 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseHigh[] = {5, 10}; timeInSystem = 360; timeTillMaxEffect = 15; + dose = 1; maxDose = 12; incompatibleMedication[] = {}; viscosityChange = 25; @@ -148,6 +159,7 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseHigh[] = {-10, -15}; timeInSystem = 360; timeTillMaxEffect = 15; + dose = 1; maxDose = 6; maxDoseDeviation = 4; incompatibleMedication[] = {}; @@ -162,6 +174,7 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseHigh[] = {-10, -15}; timeInSystem = 360; timeTillMaxEffect = 15; + dose = 1; maxDose = 6; maxDoseDeviation = 4; incompatibleMedication[] = {}; @@ -175,6 +188,7 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseHigh[] = {10, 15}; timeInSystem = 360; timeTillMaxEffect = 15; + dose = 1; maxDose = 6; maxDoseDeviation = 4; incompatibleMedication[] = {}; @@ -189,6 +203,7 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseHigh[] = {-20, -10}; timeInSystem = 900; timeTillMaxEffect = 20; + dose = 1; maxDose = 1; maxDoseDeviation = 1; incompatibleMedication[] = {}; @@ -204,6 +219,7 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseHigh[] = {10, 15}; timeInSystem = 900; timeTillMaxEffect = 15; + dose = 1; maxDose = 2; maxDoseDeviation = 2; incompatibleMedication[] = {}; @@ -218,6 +234,7 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseHigh[] = {-15, -5}; timeInSystem = 900; timeTillMaxEffect = 30; + dose = 1; maxDose = 2; maxDoseDeviation = 2; incompatibleMedication[] = {}; @@ -232,6 +249,7 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseHigh[] = {5, 10}; timeInSystem = 360; timeTillMaxEffect = 45; + dose = 1; maxDose = 6; maxDoseDeviation = 4; incompatibleMedication[] = {}; @@ -246,6 +264,7 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseHigh[] = {5, 15}; timeInSystem = 120; timeTillMaxEffect = 30; + dose = 1; maxDose = 4; incompatibleMedication[]= {}; viscosityChange = 0; @@ -258,6 +277,7 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseHigh[] = {0, 0, 0}; timeInSystem = 120; timeTillMaxEffect = 30; + dose = 1; maxDose = 4; incompatibleMedication[]= {}; viscosityChange = 0; @@ -270,6 +290,7 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseHigh[] = {0, 0, 0}; timeInSystem = 120; timeTillMaxEffect = 30; + dose = 1; maxDose = 2; maxDoseDeviation = 4; incompatibleMedication[]= {}; @@ -283,6 +304,7 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseHigh[] = {0, 0}; timeInSystem = 600; timeTillMaxEffect = 60; + dose = 1; maxDose = 10; incompatibleMedication[] = {}; viscosityChange = 0; @@ -295,6 +317,7 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseHigh[] = {-20, -30}; timeInSystem = 45; timeTillMaxEffect = 5; + dose = 1; maxDose = 10; incompatibleMedication[] = {}; viscosityChange = 0; @@ -307,6 +330,7 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseHigh[] = {0, 0}; timeInSystem = 60; timeTillMaxEffect = 5; + dose = 1; maxDose = 3; incompatibleMedication[] = {}; viscosityChange = 0; @@ -319,6 +343,7 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseHigh[] = {0, 0}; timeInSystem = 60; timeTillMaxEffect = 5; + dose = 1; maxDose = 3; incompatibleMedication[] = {}; viscosityChange = -15; @@ -331,6 +356,7 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseHigh[] = {15, 25}; timeInSystem = 600; timeTillMaxEffect = 5; + dose = 1; maxDose = 2; maxDoseDeviation = 1; incompatibleMedication[] = {}; @@ -345,6 +371,7 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseHigh[] = {5, 15}; timeInSystem = 1800; timeTillMaxEffect = 5; + dose = 1; maxDose = 4; maxDoseDeviation = 4; incompatibleMedication[] = {}; @@ -358,6 +385,7 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseHigh[] = {0, 0}; timeInSystem = 300; timeTillMaxEffect = 5; + dose = 1; maxDose = 0; incompatibleMedication[] = {}; viscosityChange = 0; @@ -370,6 +398,7 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseHigh[] = {-5, -15}; timeInSystem = 300; timeTillMaxEffect = 20; + dose = 1; maxDose = 4; incompatibleMedication[] = {}; viscosityChange = 5; @@ -383,6 +412,7 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseHigh[] = {0, 0}; timeInSystem = 120; timeTillMaxEffect = 5; + dose = 1; viscosityChange = 0; }; class syringe_txa_5ml_3 { @@ -392,6 +422,7 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseHigh[] = {0, 0}; timeInSystem = 240; timeTillMaxEffect = 5; + dose = 3; viscosityChange = 0; }; class syringe_txa_10ml_1 { @@ -401,6 +432,7 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseHigh[] = {0, 0}; timeInSystem = 120; timeTillMaxEffect = 20; + dose = 1; viscosityChange = 0; }; class syringe_txa_10ml_3 { @@ -410,6 +442,7 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseHigh[] = {0, 0}; timeInSystem = 180; timeTillMaxEffect = 20; + dose = 3; viscosityChange = 0; }; class syringe_eaca_5ml_1 { @@ -419,6 +452,7 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseHigh[] = {0, 0}; timeInSystem = 100; timeTillMaxEffect = 35; + dose = 1; viscosityChange = 0; }; class syringe_eaca_5ml_3 { @@ -428,6 +462,7 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseHigh[] = {0, 0}; timeInSystem = 300; timeTillMaxEffect = 35; + dose = 3; viscosityChange = 0; }; class syringe_epinephrineIV_5ml_1 { @@ -437,6 +472,7 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseHigh[] = {15, 40}; timeInSystem = 120; timeTillMaxEffect = 10; + dose = 1; alphaFactor = -0.2; }; class syringe_epinephrineIV_5ml_3 { @@ -446,6 +482,7 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseHigh[] = {20, 40}; timeInSystem = 180; timeTillMaxEffect = 10; + dose = 3; alphaFactor = -0.4; }; class syringe_norepinephrine_5ml_1 { @@ -456,6 +493,7 @@ class ACE_ADDON(Medical_Treatment) { timeInSystem = 360; timeTillMaxEffect = 15; viscosityChange = 15; + dose = 1; alphaFactor = -0.2; }; class syringe_norepinephrine_5ml_3 { @@ -465,6 +503,7 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseHigh[] = {10, 15}; timeInSystem = 360; timeTillMaxEffect = 15; + dose = 3; viscosityChange = 25; alphaFactor = -0.4; }; @@ -476,6 +515,7 @@ class ACE_ADDON(Medical_Treatment) { timeInSystem = 180; timeTillMaxEffect = 15; viscosityChange = 35; + dose = 1; alphaFactor = -0.4; }; class syringe_phenylephrine_5ml_3 { @@ -486,6 +526,7 @@ class ACE_ADDON(Medical_Treatment) { timeInSystem = 300; timeTillMaxEffect = 15; viscosityChange = 50; + dose = 3; alphaFactor = -0.7; }; class syringe_nitroglycerin_5ml_1 { @@ -496,6 +537,7 @@ class ACE_ADDON(Medical_Treatment) { timeInSystem = 360; timeTillMaxEffect = 15; viscosityChange = -25; + dose = 1; alphaFactor = 0.3; }; class syringe_nitroglycerin_5ml_3 { @@ -505,6 +547,7 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseHigh[] = {10, 20}; timeInSystem = 360; timeTillMaxEffect = 15; + dose = 3; viscosityChange = -35; alphaFactor = 0.5; }; @@ -515,6 +558,7 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseHigh[] = {-10, -20}; timeInSystem = 900; timeTillMaxEffect = 20; + dose = 1; viscosityChange = -10; opioidRelief = 1.2; opioidEffect = 0.17; @@ -526,6 +570,7 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseHigh[] = {-10, -20}; timeInSystem = 900; timeTillMaxEffect = 20; + dose = 3; viscosityChange = -10; opioidRelief = 1.5; opioidEffect = 0.25; @@ -537,6 +582,7 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseHigh[] = {10, 15}; timeInSystem = 600; timeTillMaxEffect = 15; + dose = 1; viscosityChange = 10; opioidEffect = 0.18; }; @@ -547,6 +593,7 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseHigh[] = {10, 15}; timeInSystem = 900; timeTillMaxEffect = 15; + dose = 3; viscosityChange = 10; onOverDose = ""; opioidEffect = 0.21; @@ -558,6 +605,7 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseHigh[] = {-15, -5}; timeInSystem = 600; timeTillMaxEffect = 30; + dose = 1; viscosityChange = -5; opioidRelief = 1.1; }; @@ -568,6 +616,7 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseHigh[] = {-5, -15}; timeInSystem = 900; timeTillMaxEffect = 30; + dose = 3; viscosityChange = -5; opioidRelief = 1.2; }; @@ -578,6 +627,7 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseHigh[] = {5, 10}; timeInSystem = 120; timeTillMaxEffect = 30; + dose = 1; viscosityChange = 0; }; class syringe_atropineIV_5ml_3 { @@ -587,6 +637,7 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseHigh[] = {5, 15}; timeInSystem = 120; timeTillMaxEffect = 30; + dose = 3; viscosityChange = 0; }; class syringe_amiodarone_5ml_1 { @@ -596,6 +647,7 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseHigh[] = {0, 0}; timeInSystem = 120; timeTillMaxEffect = 30; + dose = 1; viscosityChange = 0; }; class syringe_amiodarone_5ml_3 { @@ -605,6 +657,7 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseHigh[] = {0, 0, 0}; timeInSystem = 120; timeTillMaxEffect = 30; + dose = 3; viscosityChange = 0; }; class syringe_lidocaine_5ml_1 { @@ -614,6 +667,7 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseHigh[] = {0, 0}; timeInSystem = 120; timeTillMaxEffect = 30; + dose = 1; }; class syringe_lidocaine_5ml_3 { painReduce = 0; @@ -622,6 +676,7 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseHigh[] = {0, 0}; timeInSystem = 120; timeTillMaxEffect = 30; + dose = 3; }; class syringe_etomidate_5ml_1 { painReduce = 0.2; @@ -630,6 +685,7 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseHigh[] = {-10, -20}; timeInSystem = 60; timeTillMaxEffect = 5; + dose = 1; viscosityChange = 0; }; class syringe_etomidate_5ml_3 { @@ -639,6 +695,7 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseHigh[] = {-20, -30}; timeInSystem = 30; timeTillMaxEffect = 5; + dose = 3; viscosityChange = 0; }; class syringe_flumazenil_5ml_1 { @@ -648,6 +705,7 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseHigh[] = {0, 0}; timeInSystem = 60; timeTillMaxEffect = 5; + dose = 1; viscosityChange = 0; }; class syringe_flumazenil_5ml_3 { @@ -657,6 +715,7 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseHigh[] = {0, 0}; timeInSystem = 60; timeTillMaxEffect = 5; + dose = 3; viscosityChange = 0; }; class syringe_lorazepam_5ml_1 { @@ -666,6 +725,7 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseHigh[] = {0, 0}; timeInSystem = 60; timeTillMaxEffect = 5; + dose = 1; viscosityChange = -10; }; class syringe_lorazepam_5ml_3 { @@ -675,6 +735,7 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseHigh[] = {0, 0}; timeInSystem = 60; timeTillMaxEffect = 5; + dose = 3; viscosityChange = -15; }; class syringe_morphineIV_5ml_1 { @@ -684,6 +745,7 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseHigh[] = {-10, -35}; timeInSystem = 600; timeTillMaxEffect = 30; + dose = 1; viscosityChange = -15; opioidRelief = 1.2; }; @@ -694,6 +756,7 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseHigh[] = {-10, -45}; timeInSystem = 600; timeTillMaxEffect = 30; + dose = 3; viscosityChange = -20; opioidRelief = 1.3; }; @@ -704,6 +767,7 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseHigh[] = {-15, -35}; timeInSystem = 180; timeTillMaxEffect = 15; + dose = 1; viscosityChange = 0; }; class syringe_adenosineIV_5ml_3 { @@ -713,6 +777,7 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseHigh[] = {-15, -40}; timeInSystem = 180; timeTillMaxEffect = 15; + dose = 3; viscosityChange = 0; }; class syringe_alteplase_5ml_3 { @@ -722,7 +787,8 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseHigh[] = {-5, -20}; timeInSystem = 180; timeTillMaxEffect = 30; - maxDose = 1; + dose = 3; + maxDose = 3; maxDoseDeviation = 0; incompatibleMedication[] = {}; viscosityChange = 0; @@ -734,6 +800,7 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseHigh[] = {-10, -20}; timeInSystem = 300; timeTillMaxEffect = 60; + dose = 1; viscosityChange = -10; onOverDose = ""; opioidRelief = 1.1; @@ -746,6 +813,7 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseHigh[] = {-20, -30}; timeInSystem = 600; timeTillMaxEffect = 60; + dose = 3; viscosityChange = -10; opioidRelief = 1.3; opioidEffect = 0.17; @@ -757,6 +825,7 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseHigh[] = {10, 15}; timeInSystem = 300; timeTillMaxEffect = 30; + dose = 1; viscosityChange = 10; opioidEffect = 0.12; }; @@ -767,6 +836,7 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseHigh[] = {10, 25}; timeInSystem = 450; timeTillMaxEffect = 30; + dose = 3; viscosityChange = 10; opioidEffect = 0.15; }; @@ -777,6 +847,7 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseHigh[] = {-10, -15}; timeInSystem = 300; timeTillMaxEffect = 45; + dose = 1; viscosityChange = -5; opioidRelief = 1.1; }; @@ -787,6 +858,7 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseHigh[] = {-10, -20}; timeInSystem = 300; timeTillMaxEffect = 45; + dose = 3; viscosityChange = -5; opioidRelief = 1.2; }; @@ -797,6 +869,7 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseHigh[] = {0, 0, 0}; timeInSystem = 120; timeTillMaxEffect = 30; + dose = 1; }; class syringe_morphineIV_10ml_1 { painReduce = 0.6; @@ -805,6 +878,7 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseHigh[] = {-10, -35}; timeInSystem = 600; timeTillMaxEffect = 30; + dose = 1; viscosityChange = -15; opioidRelief = 1.1; }; @@ -815,6 +889,7 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseHigh[] = {-10, -45}; timeInSystem = 600; timeTillMaxEffect = 30; + dose = 3; viscosityChange = -15; opioidRelief = 1.3; }; @@ -847,17 +922,16 @@ class ACE_ADDON(Medical_Treatment) { maxDoseDeviation = 3; incompatibleMedication[] = {}; onOverDose = ""; - opioidRelief = 1.3; }; class syringe_nitroglycerin { - maxDose = 9; + maxDose = 6; maxDoseDeviation = 3; incompatibleMedication[] = {}; onOverDose = ""; }; class syringe_atropineIV { maxDose = 9; - maxDoseDeviation = 6; + maxDoseDeviation = 3; incompatibleMedication[] = {}; onOverDose = ""; }; @@ -872,40 +946,39 @@ class ACE_ADDON(Medical_Treatment) { maxDoseDeviation = 3; incompatibleMedication[] = {}; onOverDose = ""; - opioidRelief = 1.5; }; class syringe_flumazenil { - maxDose = 6; - maxDoseDeviation = 3; + maxDose = 4; + maxDoseDeviation = 2; incompatibleMedication[] = {}; onOverDose = ""; }; class syringe_lorazepam { - maxDose = 6; - maxDoseDeviation = 3; + maxDose = 4; + maxDoseDeviation = 2; incompatibleMedication[] = {}; onOverDose = ""; }; class syringe_lidocaine { - maxDose = 12; - maxDoseDeviation = 6; + maxDose = 6; + maxDoseDeviation = 3; incompatibleMedication[] = {}; onOverDose = ""; }; class syringe_fentanyl { maxDose = 3; - maxDoseDeviation = 3; + maxDoseDeviation = 1; incompatibleMedication[] = {}; onOverDose = ""; }; class syringe_ketamine { - maxDose = 6; - maxDoseDeviation = 3; + maxDose = 4; + maxDoseDeviation = 2; incompatibleMedication[] = {}; onOverDose = ""; }; class syringe_nalbuphine { - maxDose = 6; + maxDose = 4; maxDoseDeviation = 2; incompatibleMedication[] = {}; onOverDose = ""; @@ -922,5 +995,11 @@ class ACE_ADDON(Medical_Treatment) { incompatibleMedication[] = {}; onOverDose = ""; }; + class syringe_alteplase { + maxDose = 3; + maxDoseDeviation = 0; + incompatibleMedication[] = {}; + onOverDose = ""; + }; }; }; diff --git a/addons/pharma/functions/fnc_medicationLocal.sqf b/addons/pharma/functions/fnc_medicationLocal.sqf index 46dbf7ca2..81d032bc4 100644 --- a/addons/pharma/functions/fnc_medicationLocal.sqf +++ b/addons/pharma/functions/fnc_medicationLocal.sqf @@ -81,8 +81,6 @@ private _medicationConfig = _defaultConfig >> _classname; private _painReduce = GET_NUMBER(_medicationConfig >> "painReduce",getNumber (_defaultConfig >> "painReduce")); private _timeInSystem = GET_NUMBER(_medicationConfig >> "timeInSystem",getNumber (_defaultConfig >> "timeInSystem")); private _timeTillMaxEffect = GET_NUMBER(_medicationConfig >> "timeTillMaxEffect",getNumber (_defaultConfig >> "timeTillMaxEffect")); -private _maxDose = GET_NUMBER(_medicationConfig >> "maxDose",getNumber (_defaultConfig >> "maxDose")); -private _maxDoseDeviation = GET_NUMBER(_medicationConfig >> "maxDoseDeviation",getNumber (_defaultConfig >> "maxDoseDeviation")); private _viscosityChange = GET_NUMBER(_medicationConfig >> "viscosityChange",getNumber (_defaultConfig >> "viscosityChange")); private _hrIncreaseLow = GET_ARRAY(_medicationConfig >> "hrIncreaseLow",getArray (_defaultConfig >> "hrIncreaseLow")); private _hrIncreaseNormal = GET_ARRAY(_medicationConfig >> "hrIncreaseNormal",getArray (_defaultConfig >> "hrIncreaseNormal")); @@ -93,6 +91,7 @@ private _maxRelief = GET_NUMBER(_medicationConfig >> "maxRelief",ge private _opioidRelief = GET_NUMBER(_medicationConfig >> "opioidRelief",getNumber (_defaultConfig >> "opioidRelief")); private _opioidEffect = GET_NUMBER(_medicationConfig >> "opioidEffect",getNumber (_defaultConfig >> "opioidEffect")); private _opioidDepression = GET_NUMBER(_medicationConfig >> "opioidRelief",getNumber (_defaultConfig >> "opioidRelief")); +private _dose = GET_NUMBER(_medicationConfig >> "dose",getNumber (_defaultConfig >> "dose")); private _heartRate = GET_HEART_RATE(_patient); private _hrIncrease = [_hrIncreaseLow, _hrIncreaseNormal, _hrIncreaseHigh] select (floor ((0 max _heartRate min 110) / 55)); @@ -106,7 +105,7 @@ if (_maxRelief > 0) then { _painReduce = _painReduce / 4; }; }; -if ([QGVAR(AMS_Enabled)] call CBA_settings_fnc_get) then { +if (QGVAR(AMS_Enabled)) then { private _medicationParts = (_className splitString "_"); if (count _medicationParts > 3) then { @@ -114,20 +113,20 @@ if ([QGVAR(AMS_Enabled)] call CBA_settings_fnc_get) then { }; // Adjust the medication effects and add the medication to the list TRACE_3("adjustments",_heartRateChange,_painReduce,_viscosityChange); - [_patient, _medicationName, _timeTillMaxEffect, _timeInSystem, _heartRateChange, _painReduce, _viscosityChange, _alphaFactor, _opioidRelief, _opioidEffect, _opioidDepression] call EFUNC(vitals,addMedicationAdjustment); + [_patient, _medicationName, _timeTillMaxEffect, _timeInSystem, _heartRateChange, _painReduce, _viscosityChange, _dose, _alphaFactor, _opioidRelief, _opioidEffect, _opioidDepression] call EFUNC(vitals,addMedicationAdjustment); // Check for medication compatiblity - [_patient, _medicationName, _maxDose, _maxDoseDeviation, _incompatibleMedication] call ACEFUNC(medical_treatment,onMedicationUsage); + [_patient, _medicationName, _incompatibleMedication] call ACEFUNC(medical_treatment,onMedicationUsage); } else { // Adjust the medication effects and add the medication to the list TRACE_3("adjustments",_heartRateChange,_painReduce,_viscosityChange); - [_patient, _className, _timeTillMaxEffect, _timeInSystem, _heartRateChange, _painReduce, _viscosityChange, _alphaFactor, _opioidRelief, _opioidEffect, _opioidDepression] call EFUNC(vitals,addMedicationAdjustment); + [_patient, _className, _timeTillMaxEffect, _timeInSystem, _heartRateChange, _painReduce, _viscosityChange, _dose, _alphaFactor, _opioidRelief, _opioidEffect, _opioidDepression] call EFUNC(vitals,addMedicationAdjustment); // Check for medication compatiblity - [_patient, _className, _maxDose, _maxDoseDeviation, _incompatibleMedication] call ACEFUNC(medical_treatment,onMedicationUsage); + [_patient, _className, _incompatibleMedication] call ACEFUNC(medical_treatment,onMedicationUsage); }; -if ([QGVAR(AMS_Enabled)] call CBA_settings_fnc_get) then { +if (QGVAR(AMS_Enabled)) then { private _medicationParts = (_className splitString "_"); diff --git a/addons/pharma/functions/fnc_overDose.sqf b/addons/pharma/functions/fnc_overDose.sqf index 842adfdb3..209bf07e7 100644 --- a/addons/pharma/functions/fnc_overDose.sqf +++ b/addons/pharma/functions/fnc_overDose.sqf @@ -17,7 +17,7 @@ */ params ["_unit", "_classname"]; -if ([QGVAR(AMS_Enabled)] call CBA_settings_fnc_get) then { +if (QGVAR(AMS_Enabled)) then { private _medicationParts = (_className splitString "_"); if (count _medicationParts > 3) then { diff --git a/addons/vitals/functions/fnc_addMedicationAdjustment.sqf b/addons/vitals/functions/fnc_addMedicationAdjustment.sqf index f49f7b0f7..1c758ec5a 100644 --- a/addons/vitals/functions/fnc_addMedicationAdjustment.sqf +++ b/addons/vitals/functions/fnc_addMedicationAdjustment.sqf @@ -11,17 +11,18 @@ * 4: Heart Rate Adjust * 5: Pain Suppress Adjust * 6: Flow Adjust + * 7: Dose * * Return Value: * None * * Example: - * [player, "Morphine", 120, 60, -10, 0.8, -10] call ace_medical_status_fnc_addMedicationAdjustment + * [player, "Morphine", 120, 60, -10, 0.8, -10, 1] call ace_medical_status_fnc_addMedicationAdjustment * * Public: No */ -params ["_unit", "_medication", "_timeToMaxEffect", "_maxTimeInSystem", "_hrAdjust", "_painAdjust", "_flowAdjust", "_alphaFactor", "_opioidRelief", "_opioidEffect", "_opioidDepression"]; -TRACE_7("addMedicationAdjustment",_unit,_medication,_timeToMaxEffect,_maxTimeInSystem,_hrAdjust,_painAdjust,_flowAdjust); +params ["_unit", "_medication", "_timeToMaxEffect", "_maxTimeInSystem", "_hrAdjust", "_painAdjust", "_flowAdjust", "_dose", "_alphaFactor", "_opioidRelief", "_opioidEffect", "_opioidDepression"]; +TRACE_8("addMedicationAdjustment",_unit,_medication,_timeToMaxEffect,_maxTimeInSystem,_hrAdjust,_painAdjust,_flowAdjust,_dose); if (_maxTimeInSystem <= 0) exitWith { WARNING_1("bad value for _maxTimeInSystem - %1",_this); }; _timeToMaxEffect = _timeToMaxEffect max 1; @@ -29,6 +30,6 @@ _timeToMaxEffect = _timeToMaxEffect max 1; private _adjustments = _unit getVariable [VAR_MEDICATIONS, []]; -_adjustments pushBack [_medication, CBA_missionTime, _timeToMaxEffect, _maxTimeInSystem, _hrAdjust, _painAdjust, _flowAdjust, _alphaFactor, _opioidRelief, _opioidEffect, _opioidDepression]; +_adjustments pushBack [_medication, CBA_missionTime, _timeToMaxEffect, _maxTimeInSystem, _hrAdjust, _painAdjust, _flowAdjust, _dose, _alphaFactor, _opioidRelief, _opioidEffect, _opioidDepression]; _unit setVariable [VAR_MEDICATIONS, _adjustments, true]; From 6ca29abfdcdd9b3fa21d116249bf629501853fc8 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Sat, 16 Nov 2024 15:58:36 -0800 Subject: [PATCH 134/149] overwrites and small changes --- addons/pharma/CfgFunctions.hpp | 3 + .../functions/fnc_onMedicationUsage.sqf | 82 +++++++++++++++++++ addons/pharma/functions/fnc_overDose.sqf | 34 ++++---- 3 files changed, 102 insertions(+), 17 deletions(-) create mode 100644 addons/pharma/functions/fnc_onMedicationUsage.sqf diff --git a/addons/pharma/CfgFunctions.hpp b/addons/pharma/CfgFunctions.hpp index d55116ed7..0e95d25ee 100644 --- a/addons/pharma/CfgFunctions.hpp +++ b/addons/pharma/CfgFunctions.hpp @@ -20,6 +20,9 @@ class CfgFunctions { class overDose { file = QPATHTOF(functions\fnc_overDose.sqf); }; + class onMedicationUsage { + file = QPATHTOF(functions\fnc_onMedicationUsage.sqf); + }; }; }; }; diff --git a/addons/pharma/functions/fnc_onMedicationUsage.sqf b/addons/pharma/functions/fnc_onMedicationUsage.sqf new file mode 100644 index 000000000..98be2bee6 --- /dev/null +++ b/addons/pharma/functions/fnc_onMedicationUsage.sqf @@ -0,0 +1,82 @@ +#include "..\script_component.hpp" +/* + * Author: Glowbal, Cplhardcore + * Handles the medication given to a patient. + * + * Arguments: + * 0: Patient + * 1: Medication Treatment classname + * 2: Incompatible medication > + * + * Return Value: + * None + * + * Example: + * [player, "morphine", [["x", 1]]] call ace_medical_treatment_fnc_onMedicationUsage + * + * Public: No + */ + +params ["_target", "_className", "_incompatibleMedication"]; +TRACE_3("onMedicationUsage",_target,_className,_incompatibleMedication); + +if (QGVAR(AMS_Enabled)) then { + private _medicationParts = (_className splitString "_"); + + if (count _medicationParts > 3) then { + _medicationName = _medicationParts select 1; { + private _defaultConfig = configFile >> QUOTE(ADDON) >> "Medication"; + private _medicationConfig = _defaultConfig >> _medicationName; + private _maxDose = GET_NUMBER(_medicationConfig >> "maxDose",getNumber (_defaultConfig >> "maxDose")); + + if (_maxDose > 0) then { + private _maxDoseDeviation = GET_NUMBER(_medicationConfig >> "maxDoseDeviation",getNumber (_defaultConfig >> "maxDoseDeviation")); + private _currentDose = [_target, _medicationName] call EFUNC(medical_status,getMedicationCount) select 0; + // Because both {floor random 0} and {floor random 1} return 0 + if (_maxDoseDeviation > 0) then { + _maxDoseDeviation = _maxDoseDeviation + 1; + }; + + private _limit = _maxDose + (floor random _maxDoseDeviation); + if (_currentDose > _limit) then { + TRACE_1("exceeded max dose",_currentDose); + [_target, _medicationName, _currentDose, _limit, _incompatibleMed] call FUNC(overDose); + }; + { + _x params ["_xMed", "_xLimit"]; + private _inSystem = ([_target, _xMed] call EFUNC(medical_status,getMedicationCount)) select 0; + if (_inSystem > _xLimit) then { + [_target, _medicationName, _inSystem, _xLimit, _xMed] call FUNC(overDose); + }; + } forEach _incompatibleMedication; + }; + }; + }; +} else { + private _defaultConfig = configFile >> QUOTE(ADDON) >> "Medication"; + private _medicationConfig = _defaultConfig >> _classname; + private _maxDose = GET_NUMBER(_medicationConfig >> "maxDose",getNumber (_defaultConfig >> "maxDose")); + + if (_maxDose > 0) then { + private _maxDoseDeviation = GET_NUMBER(_medicationConfig >> "maxDoseDeviation",getNumber (_defaultConfig >> "maxDoseDeviation")); + private _currentDose = [_target, _className] call EFUNC(medical_status,getMedicationCount) select 0; + // Because both {floor random 0} and {floor random 1} return 0 + if (_maxDoseDeviation > 0) then { + _maxDoseDeviation = _maxDoseDeviation + 1; + }; + + private _limit = _maxDose + (floor random _maxDoseDeviation); + if (_currentDose > _limit) then { + TRACE_1("exceeded max dose",_currentDose); + [_target, _classname, _currentDose, _limit, _classname] call FUNC(overDose); + }; + }; + +// Check incompatible medication (format [med,limit]) + { + _x params ["_xMed", "_xLimit"]; + private _inSystem = ([_target, _xMed] call EFUNC(medical_status,getMedicationCount)) select 0; + if (_inSystem > _xLimit) then { + [_target, _classname, _inSystem, _xLimit, _xMed] call FUNC(overDose); + }; + } forEach _incompatibleMedication;} diff --git a/addons/pharma/functions/fnc_overDose.sqf b/addons/pharma/functions/fnc_overDose.sqf index 209bf07e7..cf8f8bde5 100644 --- a/addons/pharma/functions/fnc_overDose.sqf +++ b/addons/pharma/functions/fnc_overDose.sqf @@ -16,34 +16,34 @@ * Public: No */ -params ["_unit", "_classname"]; +params ["_unit", "_className", "_dose", "_limit", "_incompatibleMedication"]; if (QGVAR(AMS_Enabled)) then { - private _medicationParts = (_className splitString "_"); - - if (count _medicationParts > 3) then { - _medicationName = _medicationParts select 1; - [format ["kat_pharma_%1OverdoseLocal", toLower _medicationName], [_patient], _patient] call CBA_fnc_targetEvent; + [format ["kat_pharma_%1OverdoseLocal", toLower _className], [_patient], _patient] call CBA_fnc_targetEvent; }; - } else { private _defaultConfig = configFile >> QUOTE(ACE_ADDON(Medical_Treatment)) >> "Medication"; private _medicationConfig = (configFile >> "ace_medical_treatment" >> _classname); private _onOverDose = getText (_medicationConfig >> "onOverDose"); - if (isClass (_medicationConfig)) then { - _medicationConfig = (_medicationConfig >> _classname); - if (isText (_medicationConfig >> "onOverDose")) then { - _onOverDose = getText (_medicationConfig >> "onOverDose"); + if (isClass _medicationConfig) then { + _medicationConfig = _medicationConfig >> _classname; + if (isText (_medicationConfig >> "onOverDose")) then { + _onOverDose = getText (_medicationConfig >> "onOverDose"); }; }; TRACE_2("overdose",_classname,_onOverDose); + + [QEGVAR(medical,overdose), [_unit, _classname, _dose, _limit, _incompatibleMed]] call CBA_fnc_localEvent; + if (_onOverDose == "") exitWith { - TRACE_1("CriticalVitals Event",_unit); - [QEGVAR(medical,CriticalVitals), _unit] call CBA_fnc_localEvent; + TRACE_1("CriticalVitals Event",_unit); + [QEGVAR(medical,CriticalVitals), _unit] call CBA_fnc_localEvent; }; - if (!isNil "_onOverDose" && {isText _onOverDose}) then { - _onOverDose = compile _onOverDose; + + _onOverDose = if (missionNamespace isNil _onOverDose) then { + compile _onOverDose } else { - _onOverDose = missionNamespace getVariable _onOverDose; + missionNamespace getVariable _onOverDose }; - [_target, _className] call _onOverDose;}; \ No newline at end of file + + [_unit, _classname, _dose, _limit, _incompatibleMed] call _onOverDose}; \ No newline at end of file From d515753092ce4476dfa6941d0b30e5216fcbc45b Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Sat, 16 Nov 2024 16:04:06 -0800 Subject: [PATCH 135/149] HEMTT FIXES --- addons/breathing/functions/fnc_fullHealLocal.sqf | 2 +- addons/pharma/functions/fnc_overDose.sqf | 2 +- .../fnc_treatmentAdvanced_AtropineOverdoseLocal.sqf | 6 +++--- .../fnc_treatmentAdvanced_EtomidateOverdoseLocal.sqf | 10 +++++----- .../fnc_treatmentAdvanced_KetamineOverdoseLocal.sqf | 4 ++-- addons/vitals/functions/fnc_handleOxygenFunction.sqf | 2 +- 6 files changed, 13 insertions(+), 13 deletions(-) diff --git a/addons/breathing/functions/fnc_fullHealLocal.sqf b/addons/breathing/functions/fnc_fullHealLocal.sqf index 3c7dd4ae9..f48817747 100644 --- a/addons/breathing/functions/fnc_fullHealLocal.sqf +++ b/addons/breathing/functions/fnc_fullHealLocal.sqf @@ -28,7 +28,7 @@ _patient setVariable [QGVAR(etco2Monitor), [], true]; _patient setVariable [QGVAR(breathRate), 15, true]; _patient setVariable [QGVAR(nasalCannula), false, true]; _patient setVariable [QGVAR(lungSurfaceArea), 400]; -_patient setvariable [QGVAR(respiratoryRateMultiplier), 1]; +_patient setVariable [QGVAR(respiratoryRateMultiplier), 1]; if (ACEGVAR(advanced_fatigue,enabled)) then { ["kat_LSDF"] call ACEFUNC(advanced_fatigue,removeDutyFactor); }; diff --git a/addons/pharma/functions/fnc_overDose.sqf b/addons/pharma/functions/fnc_overDose.sqf index cf8f8bde5..0d1a9f3fc 100644 --- a/addons/pharma/functions/fnc_overDose.sqf +++ b/addons/pharma/functions/fnc_overDose.sqf @@ -19,7 +19,7 @@ params ["_unit", "_className", "_dose", "_limit", "_incompatibleMedication"]; if (QGVAR(AMS_Enabled)) then { [format ["kat_pharma_%1OverdoseLocal", toLower _className], [_patient], _patient] call CBA_fnc_targetEvent; - }; + } else { private _defaultConfig = configFile >> QUOTE(ACE_ADDON(Medical_Treatment)) >> "Medication"; private _medicationConfig = (configFile >> "ace_medical_treatment" >> _classname); diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_AtropineOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_AtropineOverdoseLocal.sqf index d6d7cd9d9..b2406e72b 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_AtropineOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_AtropineOverdoseLocal.sqf @@ -45,8 +45,8 @@ params ["_patient"]; }; private _depression = _unit getVariable [QEGVAR(pharma,opioidDepressionFactor)] + 0.05; _patient setVariable [QEGVAR(pharma,opioidDepressionFactor), _depression]; - private _rr = _patient getvariable [QEGVAR(breathing,respiratoryRateMultiplier), 1] - 0.07; - _patient setvariable [QEGVAR(breathing,respiratoryRateMultiplier), _rr]; + private _rr = _patient getVariable [QEGVAR(breathing,respiratoryRateMultiplier), 1] - 0.07; + _patient setVariable [QEGVAR(breathing,respiratoryRateMultiplier), _rr]; }, 15, [_patient]] call CBA_fnc_addPerFrameHandler; }, _patient, 15] call CBA_fnc_waitAndExecute; [{ @@ -64,6 +64,6 @@ params ["_patient"]; private _depression = _unit getVariable [QEGVAR(pharma,opioidDepressionFactor)] - 0.05; _patient setVariable [QEGVAR(pharma,opioidDepressionFactor), _depression]; private _rr = _patient getvariable [QEGVAR(breathing,respiratoryRateMultiplier), 1] + 0.07; - _patient setvariable [QEGVAR(breathing,respiratoryRateMultiplier), _rr]; + _patient setVariable [QEGVAR(breathing,respiratoryRateMultiplier), _rr]; }, 10, [_patient]] call CBA_fnc_addPerFrameHandler; }, _patient, 300] call CBA_fnc_waitAndExecute; diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_EtomidateOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_EtomidateOverdoseLocal.sqf index f6a4928ed..7fa66e320 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_EtomidateOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_EtomidateOverdoseLocal.sqf @@ -128,12 +128,12 @@ switch (_randomNumber) do { }; private _depression = _unit getVariable [QEGVAR(pharma,opioidDepressionFactor)] + 0.08; _patient setVariable [QEGVAR(pharma,opioidDepressionFactor), _depression]; - private _rr = _patient getvariable [QEGVAR(breathing,respiratoryRateMultiplier), 1] - 0.06; - _patient setvariable [QEGVAR(breathing,respiratoryRateMultiplier), _rr]; + private _rr = _patient getVariable [QEGVAR(breathing,respiratoryRateMultiplier), 1] - 0.06; + _patient setVariable [QEGVAR(breathing,respiratoryRateMultiplier), _rr]; }, 30, [_patient]] call CBA_fnc_addPerFrameHandler; }, _patient, 30] call CBA_fnc_waitAndExecute; }; - case 3: { + case 4: { private _bpAdjust = -20 + floor random ((-5 - -20) + 1); [_patient, _bpAdjust, _bpAdjust, "EtomidateOverdose"] call kat_circulation_fnc_updateBloodPressureChange; private _hrAdjust = -40 + floor random ((-20 - -40) + 1); @@ -168,8 +168,8 @@ switch (_randomNumber) do { }; private _depression = _unit getVariable [QEGVAR(pharma,opioidDepressionFactor)] + 0.08; _patient setVariable [QEGVAR(pharma,opioidDepressionFactor), _depression]; - private _rr = _patient getvariable [QEGVAR(breathing,respiratoryRateMultiplier), 1] - 0.06; - _patient setvariable [QEGVAR(breathing,respiratoryRateMultiplier), _rr]; + private _rr = _patient getVariable [QEGVAR(breathing,respiratoryRateMultiplier), 1] - 0.06; + _patient setVariable [QEGVAR(breathing,respiratoryRateMultiplier), _rr]; }, 30, [_patient]] call CBA_fnc_addPerFrameHandler; }, _patient, 30] call CBA_fnc_waitAndExecute; }; diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_KetamineOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_KetamineOverdoseLocal.sqf index be8d2fc20..b7998cd2a 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_KetamineOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_KetamineOverdoseLocal.sqf @@ -44,8 +44,8 @@ params ["_patient"]; }; [_idPFH] call CBA_fnc_removePerFrameHandler; }; - private _rr = _patient getvariable [QEGVAR(breathing,respiratoryRateMultiplier), 1] - 0.04; - _patient setvariable [QEGVAR(breathing,respiratoryRateMultiplier), _rr]; + private _rr = _patient getVariable [QEGVAR(breathing,respiratoryRateMultiplier), 1] - 0.04; + _patient setVariable [QEGVAR(breathing,respiratoryRateMultiplier), _rr]; private _depression = _unit getVariable [QEGVAR(pharma,opioidDepressionFactor)] + 0.04; _patient setVariable [QEGVAR(pharma,opioidDepressionFactor), _depression]; }, 15, [_patient]] call CBA_fnc_addPerFrameHandler; diff --git a/addons/vitals/functions/fnc_handleOxygenFunction.sqf b/addons/vitals/functions/fnc_handleOxygenFunction.sqf index 08fef3a58..44fa93156 100644 --- a/addons/vitals/functions/fnc_handleOxygenFunction.sqf +++ b/addons/vitals/functions/fnc_handleOxygenFunction.sqf @@ -33,7 +33,7 @@ params ["_unit", "_actualHeartRate", "_anerobicPressure", "_bloodGas", "_tempera #define DEFAULT_FIO2 0.21 private _respiratoryRate = 0; -private _respiratoryRateMult = _unit getvariable [QEGVAR(breathing,respiratoryRateMultiplier), 1]; +private _respiratoryRateMult = _unit getVariable [QEGVAR(breathing,respiratoryRateMultiplier), 1]; private _demandVentilation = 0; private _actualVentilation = 0; private _previousCyclePaco2 = (_bloodGas select 0); From 30c6a8a9c8b239f43743e76df9d61bb13a1e8a85 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Sat, 16 Nov 2024 16:12:01 -0800 Subject: [PATCH 136/149] HEMTT FIXES --- addons/pharma/functions/fnc_ivCondition.sqf | 2 +- .../functions/fnc_treatmentAdvanced_AtropineOverdoseLocal.sqf | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/pharma/functions/fnc_ivCondition.sqf b/addons/pharma/functions/fnc_ivCondition.sqf index bfe1cc665..13b8b1838 100644 --- a/addons/pharma/functions/fnc_ivCondition.sqf +++ b/addons/pharma/functions/fnc_ivCondition.sqf @@ -24,7 +24,7 @@ private _removeIV = [_medic, _patient, _bodyPart] call FUNC(removeIV); private _ivType = [_patient, _bodyPart] call FUNC(checkIVType); private _return = false; -if (_removeIV == true && _ivType != 3) then { +if (_removeIV && _ivType != 3) then { _return = true; } else { _return = false; diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_AtropineOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_AtropineOverdoseLocal.sqf index b2406e72b..8cccbad89 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_AtropineOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_AtropineOverdoseLocal.sqf @@ -63,7 +63,7 @@ params ["_patient"]; }; private _depression = _unit getVariable [QEGVAR(pharma,opioidDepressionFactor)] - 0.05; _patient setVariable [QEGVAR(pharma,opioidDepressionFactor), _depression]; - private _rr = _patient getvariable [QEGVAR(breathing,respiratoryRateMultiplier), 1] + 0.07; + private _rr = _patient getVariable [QEGVAR(breathing,respiratoryRateMultiplier), 1] + 0.07; _patient setVariable [QEGVAR(breathing,respiratoryRateMultiplier), _rr]; }, 10, [_patient]] call CBA_fnc_addPerFrameHandler; }, _patient, 300] call CBA_fnc_waitAndExecute; From 179b32dc18024fb32a6c36a29a13ad8fc53a1130 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Sat, 16 Nov 2024 18:56:31 -0800 Subject: [PATCH 137/149] holy shite its done --- addons/pharma/ACE_Medical_Treatment.hpp | 230 +++++++++--------- .../pharma/functions/fnc_medicationLocal.sqf | 60 ++++- 2 files changed, 164 insertions(+), 126 deletions(-) diff --git a/addons/pharma/ACE_Medical_Treatment.hpp b/addons/pharma/ACE_Medical_Treatment.hpp index 3307947de..e48eac5c6 100644 --- a/addons/pharma/ACE_Medical_Treatment.hpp +++ b/addons/pharma/ACE_Medical_Treatment.hpp @@ -33,9 +33,9 @@ class ACE_ADDON(Medical_Treatment) { class Epinephrine { painReduce = 0; - hrIncreaseLow[] = {10, 20}; - hrIncreaseNormal[] = {10, 50}; - hrIncreaseHigh[] = {10, 40}; + hrIncreaseLow[] = {5, 20}; + hrIncreaseNormal[] = {5, 25}; + hrIncreaseHigh[] = {5, 20}; timeInSystem = 120; timeTillMaxEffect = 10; dose = 1; @@ -47,10 +47,10 @@ class ACE_ADDON(Medical_Treatment) { }; class EpinephrineIV { painReduce = 0; - hrIncreaseLow[] = {15, 30}; - hrIncreaseNormal[] = {10, 50}; - hrIncreaseHigh[] = {15, 40}; - timeInSystem = 120; + hrIncreaseLow[] = {5, 30}; + hrIncreaseNormal[] = {10, 30}; + hrIncreaseHigh[] = {5, 30}; + timeInSystem = 300; timeTillMaxEffect = 10; dose = 1; maxDose = 4; @@ -61,22 +61,22 @@ class ACE_ADDON(Medical_Treatment) { }; class Morphine { painReduce = 0.6; - hrIncreaseLow[] = {-5, -15}; - hrIncreaseNormal[] = {-10, -20}; - hrIncreaseHigh[] = {-10, -25}; + hrIncreaseLow[] = {-2, -10}; + hrIncreaseNormal[] = {-5, -10}; + hrIncreaseHigh[] = {-10, -15}; timeInSystem = 300; timeTillMaxEffect = 60; dose = 1; maxDose = 2; - maxDoseDeviation = 2; + maxDoseDeviation = 1; incompatibleMedication[] = {}; viscosityChange = -0; }; class MorphineIV { painReduce = 0.8; - hrIncreaseLow[] = {-10, -20}; - hrIncreaseNormal[] = {-10, -30}; - hrIncreaseHigh[] = {-10, -35}; + hrIncreaseLow[] = {-5, -15}; + hrIncreaseNormal[] = {-5, -20}; + hrIncreaseHigh[] = {-5, -20}; timeInSystem = 900; timeTillMaxEffect = 30; dose = 1; @@ -89,12 +89,12 @@ class ACE_ADDON(Medical_Treatment) { class Adenosine { painReduce = 0; hrIncreaseLow[] = {-4, -10}; - hrIncreaseNormal[] = {-5, -15}; - hrIncreaseHigh[] = {-5, -20}; + hrIncreaseNormal[] = {-5, -10}; + hrIncreaseHigh[] = {-5, -15}; timeInSystem = 180; timeTillMaxEffect = 30; dose = 1; - maxDose = 2; + maxDose = 4; maxDoseDeviation = 2; incompatibleMedication[] = {}; viscosityChange = 0; @@ -102,8 +102,8 @@ class ACE_ADDON(Medical_Treatment) { class AdenosineIV { painReduce = 0; hrIncreaseLow[] = {-7, -10}; - hrIncreaseNormal[] = {-15, -30}; - hrIncreaseHigh[] = {-15, -35}; + hrIncreaseNormal[] = {-15, -20}; + hrIncreaseHigh[] = {-15, -25}; timeInSystem = 360; timeTillMaxEffect = 15; dose = 1; @@ -407,9 +407,9 @@ class ACE_ADDON(Medical_Treatment) { }; class syringe_txa_5ml_1 { painReduce = 0; - hrIncreaseLow[] = {0, 0}; - hrIncreaseNormal[] = {0, 0}; - hrIncreaseHigh[] = {0, 0}; + hrIncreaseLow[] = {-2, -5}; + hrIncreaseNormal[] = {-2, -5}; + hrIncreaseHigh[] = {-2, -5}; timeInSystem = 120; timeTillMaxEffect = 5; dose = 1; @@ -417,9 +417,9 @@ class ACE_ADDON(Medical_Treatment) { }; class syringe_txa_5ml_3 { painReduce = 0; - hrIncreaseLow[] = {0, 0}; - hrIncreaseNormal[] = {0, 0}; - hrIncreaseHigh[] = {0, 0}; + hrIncreaseLow[] = {-4, -12}; + hrIncreaseNormal[] = {-4, -12}; + hrIncreaseHigh[] = {-4, -12}; timeInSystem = 240; timeTillMaxEffect = 5; dose = 3; @@ -427,9 +427,9 @@ class ACE_ADDON(Medical_Treatment) { }; class syringe_txa_10ml_1 { painReduce = 0; - hrIncreaseLow[] = {0, 0}; - hrIncreaseNormal[] = {0, 0}; - hrIncreaseHigh[] = {0, 0}; + hrIncreaseLow[] = {-2, -5}; + hrIncreaseNormal[] = {-2, -5}; + hrIncreaseHigh[] = {-2, -5}; timeInSystem = 120; timeTillMaxEffect = 20; dose = 1; @@ -437,9 +437,9 @@ class ACE_ADDON(Medical_Treatment) { }; class syringe_txa_10ml_3 { painReduce = 0; - hrIncreaseLow[] = {0, 0}; - hrIncreaseNormal[] = {0, 0}; - hrIncreaseHigh[] = {0, 0}; + hrIncreaseLow[] = {-4, -12}; + hrIncreaseNormal[] = {-4, -12}; + hrIncreaseHigh[] = {-4, -12}; timeInSystem = 180; timeTillMaxEffect = 20; dose = 3; @@ -447,9 +447,9 @@ class ACE_ADDON(Medical_Treatment) { }; class syringe_eaca_5ml_1 { painReduce = 0; - hrIncreaseLow[] = {0, 0}; - hrIncreaseNormal[] = {0, 0}; - hrIncreaseHigh[] = {0, 0}; + hrIncreaseLow[] = {-2, -5}; + hrIncreaseNormal[] = {-2, -5}; + hrIncreaseHigh[] = {-2, -5}; timeInSystem = 100; timeTillMaxEffect = 35; dose = 1; @@ -457,9 +457,9 @@ class ACE_ADDON(Medical_Treatment) { }; class syringe_eaca_5ml_3 { painReduce = 0; - hrIncreaseLow[] = {0, 0}; - hrIncreaseNormal[] = {0, 0}; - hrIncreaseHigh[] = {0, 0}; + hrIncreaseLow[] = {-4, -12}; + hrIncreaseNormal[] = {-4, -12}; + hrIncreaseHigh[] = {-4, -12}; timeInSystem = 300; timeTillMaxEffect = 35; dose = 3; @@ -467,9 +467,9 @@ class ACE_ADDON(Medical_Treatment) { }; class syringe_epinephrineIV_5ml_1 { painReduce = 0; - hrIncreaseLow[] = {10, 30}; - hrIncreaseNormal[] = {10, 40}; - hrIncreaseHigh[] = {15, 40}; + hrIncreaseLow[] = {10, 20}; + hrIncreaseNormal[] = {10, 30}; + hrIncreaseHigh[] = {15, 30}; timeInSystem = 120; timeTillMaxEffect = 10; dose = 1; @@ -477,9 +477,9 @@ class ACE_ADDON(Medical_Treatment) { }; class syringe_epinephrineIV_5ml_3 { painReduce = 0; - hrIncreaseLow[] = {25, 40}; - hrIncreaseNormal[] = {20, 50}; - hrIncreaseHigh[] = {20, 40}; + hrIncreaseLow[] = {10, 20}; + hrIncreaseNormal[] = {10, 35}; + hrIncreaseHigh[] = {15, 30}; timeInSystem = 180; timeTillMaxEffect = 10; dose = 3; @@ -487,9 +487,9 @@ class ACE_ADDON(Medical_Treatment) { }; class syringe_norepinephrine_5ml_1 { painReduce = 0; - hrIncreaseLow[] = {0, 5}; - hrIncreaseNormal[] = {5, 15}; - hrIncreaseHigh[] = {5, 10}; + hrIncreaseLow[] = {-5, 5}; + hrIncreaseNormal[] = {-10, 5}; + hrIncreaseHigh[] = {-10, 5}; timeInSystem = 360; timeTillMaxEffect = 15; viscosityChange = 15; @@ -498,9 +498,9 @@ class ACE_ADDON(Medical_Treatment) { }; class syringe_norepinephrine_5ml_3 { painReduce = 0; - hrIncreaseLow[] = {0, 10}; - hrIncreaseNormal[] = {10, 15}; - hrIncreaseHigh[] = {10, 15}; + hrIncreaseLow[] = {-10, 0}; + hrIncreaseNormal[] = {-15, 5}; + hrIncreaseHigh[] = {-15, 5}; timeInSystem = 360; timeTillMaxEffect = 15; dose = 3; @@ -509,9 +509,9 @@ class ACE_ADDON(Medical_Treatment) { }; class syringe_phenylephrine_5ml_1 { painReduce = 0; - hrIncreaseLow[] = {-5, -10}; - hrIncreaseNormal[] = {-10, -15}; - hrIncreaseHigh[] = {-10, -15}; + hrIncreaseLow[] = {2, 10}; + hrIncreaseNormal[] = {2, 15}; + hrIncreaseHigh[] = {2, 10}; timeInSystem = 180; timeTillMaxEffect = 15; viscosityChange = 35; @@ -520,9 +520,9 @@ class ACE_ADDON(Medical_Treatment) { }; class syringe_phenylephrine_5ml_3 { painReduce = 0; - hrIncreaseLow[] = {-10, -15}; - hrIncreaseNormal[] = {-15, -25}; - hrIncreaseHigh[] = {-15, -20}; + hrIncreaseLow[] = {2, 15}; + hrIncreaseNormal[] = {2, 20}; + hrIncreaseHigh[] = {2, 15}; timeInSystem = 300; timeTillMaxEffect = 15; viscosityChange = 50; @@ -543,8 +543,8 @@ class ACE_ADDON(Medical_Treatment) { class syringe_nitroglycerin_5ml_3 { painReduce = 0; hrIncreaseLow[] = {5, 15}; - hrIncreaseNormal[] = {10, 25}; - hrIncreaseHigh[] = {10, 20}; + hrIncreaseNormal[] = {5, 20}; + hrIncreaseHigh[] = {5, 20}; timeInSystem = 360; timeTillMaxEffect = 15; dose = 3; @@ -555,7 +555,7 @@ class ACE_ADDON(Medical_Treatment) { painReduce = 0.6; hrIncreaseLow[] = {-5, -10}; hrIncreaseNormal[] = {-10, -15}; - hrIncreaseHigh[] = {-10, -20}; + hrIncreaseHigh[] = {-10, -15}; timeInSystem = 900; timeTillMaxEffect = 20; dose = 1; @@ -566,7 +566,7 @@ class ACE_ADDON(Medical_Treatment) { class syringe_fentanyl_5ml_3 { painReduce = 1; hrIncreaseLow[] = {-5, -15}; - hrIncreaseNormal[] = {-15, -25}; + hrIncreaseNormal[] = {-10, -20}; hrIncreaseHigh[] = {-10, -20}; timeInSystem = 900; timeTillMaxEffect = 20; @@ -577,9 +577,9 @@ class ACE_ADDON(Medical_Treatment) { }; class syringe_ketamine_5ml_1 { painReduce = 0.5; - hrIncreaseLow[] = {5, 10}; - hrIncreaseNormal[] = {10, 15}; - hrIncreaseHigh[] = {10, 15}; + hrIncreaseLow[] = {5, 20}; + hrIncreaseNormal[] = {10, 25}; + hrIncreaseHigh[] = {5, 25}; timeInSystem = 600; timeTillMaxEffect = 15; dose = 1; @@ -588,9 +588,9 @@ class ACE_ADDON(Medical_Treatment) { }; class syringe_ketamine_5ml_3 { painReduce = 0.8; - hrIncreaseLow[] = {5, 15}; - hrIncreaseNormal[] = {10, 20}; - hrIncreaseHigh[] = {10, 15}; + hrIncreaseLow[] = {15, 30}; + hrIncreaseNormal[] = {15, 35}; + hrIncreaseHigh[] = {15, 35}; timeInSystem = 900; timeTillMaxEffect = 15; dose = 3; @@ -622,7 +622,7 @@ class ACE_ADDON(Medical_Treatment) { }; class syringe_atropineIV_5ml_1 { painReduce = 0; - hrIncreaseLow[] = {10, 20}; + hrIncreaseLow[] = {5, 20}; hrIncreaseNormal[] = {5, 15}; hrIncreaseHigh[] = {5, 10}; timeInSystem = 120; @@ -632,7 +632,7 @@ class ACE_ADDON(Medical_Treatment) { }; class syringe_atropineIV_5ml_3 { painReduce = 0; - hrIncreaseLow[] = {20, 40}; + hrIncreaseLow[] = {10, 30}; hrIncreaseNormal[] = {10, 25}; hrIncreaseHigh[] = {5, 15}; timeInSystem = 120; @@ -652,9 +652,9 @@ class ACE_ADDON(Medical_Treatment) { }; class syringe_amiodarone_5ml_3 { painReduce = 0; - hrIncreaseLow[] = {0, 0, 0}; - hrIncreaseNormal[] = {0, 0, 0}; - hrIncreaseHigh[] = {0, 0, 0}; + hrIncreaseLow[] = {0, 0}; + hrIncreaseNormal[] = {0, 0}; + hrIncreaseHigh[] = {0, 0}; timeInSystem = 120; timeTillMaxEffect = 30; dose = 3; @@ -682,7 +682,7 @@ class ACE_ADDON(Medical_Treatment) { painReduce = 0.2; hrIncreaseLow[] = {0, -5}; hrIncreaseNormal[] = {-5, -10}; - hrIncreaseHigh[] = {-10, -20}; + hrIncreaseHigh[] = {-10, -15}; timeInSystem = 60; timeTillMaxEffect = 5; dose = 1; @@ -690,9 +690,9 @@ class ACE_ADDON(Medical_Treatment) { }; class syringe_etomidate_5ml_3 { painReduce = 0.4; - hrIncreaseLow[] = {-10, -5}; - hrIncreaseNormal[] = {-15, -20}; - hrIncreaseHigh[] = {-20, -30}; + hrIncreaseLow[] = {-5, -10}; + hrIncreaseNormal[] = {-5, -15}; + hrIncreaseHigh[] = {-10, -15}; timeInSystem = 30; timeTillMaxEffect = 5; dose = 3; @@ -720,9 +720,9 @@ class ACE_ADDON(Medical_Treatment) { }; class syringe_lorazepam_5ml_1 { painReduce = 0; - hrIncreaseLow[] = {0, 0}; - hrIncreaseNormal[] = {0, 0}; - hrIncreaseHigh[] = {0, 0}; + hrIncreaseLow[] = {5, 10}; + hrIncreaseNormal[] = {5, 15}; + hrIncreaseHigh[] = {7, 15}; timeInSystem = 60; timeTillMaxEffect = 5; dose = 1; @@ -730,9 +730,9 @@ class ACE_ADDON(Medical_Treatment) { }; class syringe_lorazepam_5ml_3 { painReduce = 0; - hrIncreaseLow[] = {0, 0}; - hrIncreaseNormal[] = {0, 0}; - hrIncreaseHigh[] = {0, 0}; + hrIncreaseLow[] = {5, 15}; + hrIncreaseNormal[] = {5, 20}; + hrIncreaseHigh[] = {5, 20}; timeInSystem = 60; timeTillMaxEffect = 5; dose = 3; @@ -740,9 +740,9 @@ class ACE_ADDON(Medical_Treatment) { }; class syringe_morphineIV_5ml_1 { painReduce = 0.6; - hrIncreaseLow[] = {-10, -15}; - hrIncreaseNormal[] = {-10, -30}; - hrIncreaseHigh[] = {-10, -35}; + hrIncreaseLow[] = {-5, -15}; + hrIncreaseNormal[] = {-5, -20}; + hrIncreaseHigh[] = {-5, -20}; timeInSystem = 600; timeTillMaxEffect = 30; dose = 1; @@ -751,9 +751,9 @@ class ACE_ADDON(Medical_Treatment) { }; class syringe_morphineIV_5ml_3 { painReduce = 0.8; - hrIncreaseLow[] = {-10, -25}; - hrIncreaseNormal[] = {-10, -35}; - hrIncreaseHigh[] = {-10, -45}; + hrIncreaseLow[] = {-5, -15}; + hrIncreaseNormal[] = {-5, -25}; + hrIncreaseHigh[] = {-5, -25}; timeInSystem = 600; timeTillMaxEffect = 30; dose = 3; @@ -762,9 +762,9 @@ class ACE_ADDON(Medical_Treatment) { }; class syringe_adenosineIV_5ml_1 { painReduce = 0; - hrIncreaseLow[] = {-7, -10}; - hrIncreaseNormal[] = {-10, -25}; - hrIncreaseHigh[] = {-15, -35}; + hrIncreaseLow[] = {-3, -10}; + hrIncreaseNormal[] = {-5, -10}; + hrIncreaseHigh[] = {-5, -15}; timeInSystem = 180; timeTillMaxEffect = 15; dose = 1; @@ -772,9 +772,9 @@ class ACE_ADDON(Medical_Treatment) { }; class syringe_adenosineIV_5ml_3 { painReduce = 0; - hrIncreaseLow[] = {-7, -10}; - hrIncreaseNormal[] = {-15, -35}; - hrIncreaseHigh[] = {-15, -40}; + hrIncreaseLow[] = {-3, -10}; + hrIncreaseNormal[] = {-5, -15}; + hrIncreaseHigh[] = {-5, -20}; timeInSystem = 180; timeTillMaxEffect = 15; dose = 3; @@ -797,7 +797,7 @@ class ACE_ADDON(Medical_Treatment) { painReduce = 0.6; hrIncreaseLow[] = {-5, -10}; hrIncreaseNormal[] = {-10, -15}; - hrIncreaseHigh[] = {-10, -20}; + hrIncreaseHigh[] = {-10, -15}; timeInSystem = 300; timeTillMaxEffect = 60; dose = 1; @@ -809,8 +809,8 @@ class ACE_ADDON(Medical_Treatment) { class syringe_fentanyl_10ml_3 { painReduce = 0.8; hrIncreaseLow[] = {-5, -15}; - hrIncreaseNormal[] = {-10, -25}; - hrIncreaseHigh[] = {-20, -30}; + hrIncreaseNormal[] = {-10, -20}; + hrIncreaseHigh[] = {-10, -20}; timeInSystem = 600; timeTillMaxEffect = 60; dose = 3; @@ -820,9 +820,9 @@ class ACE_ADDON(Medical_Treatment) { }; class syringe_ketamine_10ml_1 { painReduce = 0.6; - hrIncreaseLow[] = {5, 10}; - hrIncreaseNormal[] = {10, 15}; - hrIncreaseHigh[] = {10, 15}; + hrIncreaseLow[] = {5, 20}; + hrIncreaseNormal[] = {10, 25}; + hrIncreaseHigh[] = {5, 25}; timeInSystem = 300; timeTillMaxEffect = 30; dose = 1; @@ -831,9 +831,9 @@ class ACE_ADDON(Medical_Treatment) { }; class syringe_ketamine_10ml_3 { painReduce = 0.8; - hrIncreaseLow[] = {5, 20}; - hrIncreaseNormal[] = {10, 25}; - hrIncreaseHigh[] = {10, 25}; + hrIncreaseLow[] = {15, 30}; + hrIncreaseNormal[] = {15, 35}; + hrIncreaseHigh[] = {15, 35}; timeInSystem = 450; timeTillMaxEffect = 30; dose = 3; @@ -843,8 +843,8 @@ class ACE_ADDON(Medical_Treatment) { class syringe_nalbuphine_10ml_1 { painReduce = 0.5; hrIncreaseLow[] = {-5, 0}; - hrIncreaseNormal[] = {-5, -15}; - hrIncreaseHigh[] = {-10, -15}; + hrIncreaseNormal[] = {-10, -5}; + hrIncreaseHigh[] = {-15, -5}; timeInSystem = 300; timeTillMaxEffect = 45; dose = 1; @@ -853,9 +853,9 @@ class ACE_ADDON(Medical_Treatment) { }; class syringe_nalbuphine_10ml_3 { painReduce = 0.7; - hrIncreaseLow[] = {-5, 0}; - hrIncreaseNormal[] = {-5, -20}; - hrIncreaseHigh[] = {-10, -20}; + hrIncreaseLow[] = {0, -10}; + hrIncreaseNormal[] = {-5, -15}; + hrIncreaseHigh[] = {-5, -15}; timeInSystem = 300; timeTillMaxEffect = 45; dose = 3; @@ -864,18 +864,18 @@ class ACE_ADDON(Medical_Treatment) { }; class syringe_lidocaine_10ml_1 { painReduce = 0; - hrIncreaseLow[] = {0, 0, 0}; - hrIncreaseNormal[] = {0, 0, 0}; - hrIncreaseHigh[] = {0, 0, 0}; + hrIncreaseLow[] = {0, 0}; + hrIncreaseNormal[] = {0, 0}; + hrIncreaseHigh[] = {0, 0}; timeInSystem = 120; timeTillMaxEffect = 30; dose = 1; }; class syringe_morphineIV_10ml_1 { painReduce = 0.6; - hrIncreaseLow[] = {-10, -20}; - hrIncreaseNormal[] = {-10, -25}; - hrIncreaseHigh[] = {-10, -35}; + hrIncreaseLow[] = {-5, -15}; + hrIncreaseNormal[] = {-5, -20}; + hrIncreaseHigh[] = {-5, -20}; timeInSystem = 600; timeTillMaxEffect = 30; dose = 1; @@ -884,9 +884,9 @@ class ACE_ADDON(Medical_Treatment) { }; class syringe_morphineIV_10ml_3 { painReduce = 0.8; - hrIncreaseLow[] = {-10, -25}; - hrIncreaseNormal[] = {-10, -35}; - hrIncreaseHigh[] = {-10, -45}; + hrIncreaseLow[] = {-5, -15}; + hrIncreaseNormal[] = {-5, -25}; + hrIncreaseHigh[] = {-5, -25}; timeInSystem = 600; timeTillMaxEffect = 30; dose = 3; diff --git a/addons/pharma/functions/fnc_medicationLocal.sqf b/addons/pharma/functions/fnc_medicationLocal.sqf index 81d032bc4..4bf58e7c7 100644 --- a/addons/pharma/functions/fnc_medicationLocal.sqf +++ b/addons/pharma/functions/fnc_medicationLocal.sqf @@ -78,19 +78,27 @@ if (HAS_TOURNIQUET_APPLIED_ON(_patient,_partIndex)) exitWith { private _defaultConfig = configFile >> QUOTE(ACE_ADDON(Medical_Treatment)) >> "Medication"; private _medicationConfig = _defaultConfig >> _classname; -private _painReduce = GET_NUMBER(_medicationConfig >> "painReduce",getNumber (_defaultConfig >> "painReduce")); -private _timeInSystem = GET_NUMBER(_medicationConfig >> "timeInSystem",getNumber (_defaultConfig >> "timeInSystem")); -private _timeTillMaxEffect = GET_NUMBER(_medicationConfig >> "timeTillMaxEffect",getNumber (_defaultConfig >> "timeTillMaxEffect")); -private _viscosityChange = GET_NUMBER(_medicationConfig >> "viscosityChange",getNumber (_defaultConfig >> "viscosityChange")); -private _hrIncreaseLow = GET_ARRAY(_medicationConfig >> "hrIncreaseLow",getArray (_defaultConfig >> "hrIncreaseLow")); -private _hrIncreaseNormal = GET_ARRAY(_medicationConfig >> "hrIncreaseNormal",getArray (_defaultConfig >> "hrIncreaseNormal")); -private _hrIncreaseHigh = GET_ARRAY(_medicationConfig >> "hrIncreaseHigh",getArray (_defaultConfig >> "hrIncreaseHigh")); +private _bloodloss = (GET_BODY_FLUID(unit) select 4); +private _maxbloodloss = 1; +private _minbloodloss = 6000; +private _minDrugMult = 1; +private _maxDrugMult = 2; + +private _drugMult = _minDrugMult + ((_bloodloss - _maxbloodloss) / (_minbloodloss - _maxbloodloss)) * (_maxDrugMult - _minDrugMult); + +private _painReduce = GET_NUMBER(_medicationConfig >> "painReduce",getNumber (_defaultConfig >> "painReduce")) / _drugMult; +private _timeInSystem = GET_NUMBER(_medicationConfig >> "timeInSystem",getNumber (_defaultConfig >> "timeInSystem")) * _drugMult; +private _timeTillMaxEffect = GET_NUMBER(_medicationConfig >> "timeTillMaxEffect",getNumber (_defaultConfig >> "timeTillMaxEffect")) * _drugMult; +private _viscosityChange = GET_NUMBER(_medicationConfig >> "viscosityChange",getNumber (_defaultConfig >> "viscosityChange")) * _drugMult; +private _alphaFactor = GET_NUMBER(_medicationConfig >> "alphaFactor",getNumber (_defaultConfig >> "alphaFactor")) * _drugMult; +private _opioidRelief = GET_NUMBER(_medicationConfig >> "opioidRelief",getNumber (_defaultConfig >> "opioidRelief")) * _drugMult; +private _opioidEffect = GET_NUMBER(_medicationConfig >> "opioidEffect",getNumber (_defaultConfig >> "opioidEffect")) * _drugMult; +private _opioidDepression = GET_NUMBER(_medicationConfig >> "opioidDepression",getNumber (_defaultConfig >> "opioidDepression")) * _drugMult; +private _hrIncreaseLow = GET_ARRAY(_medicationConfig >> "hrIncreaseLow",getArray (_defaultConfig >> "hrIncreaseLow")) apply { _x * _drugMult }; +private _hrIncreaseNormal = GET_ARRAY(_medicationConfig >> "hrIncreaseNormal",getArray (_defaultConfig >> "hrIncreaseNormal")) apply { _x * _drugMult }; +private _hrIncreaseHigh = GET_ARRAY(_medicationConfig >> "hrIncreaseHigh",getArray (_defaultConfig >> "hrIncreaseHigh")) apply { _x * _drugMult }; private _incompatibleMedication = GET_ARRAY(_medicationConfig >> "incompatibleMedication",getArray (_defaultConfig >> "incompatibleMedication")); -private _alphaFactor = GET_NUMBER(_medicationConfig >> "alphaFactor",getNumber (_defaultConfig >> "alphaFactor")); private _maxRelief = GET_NUMBER(_medicationConfig >> "maxRelief",getNumber (_defaultConfig >> "maxRelief")); -private _opioidRelief = GET_NUMBER(_medicationConfig >> "opioidRelief",getNumber (_defaultConfig >> "opioidRelief")); -private _opioidEffect = GET_NUMBER(_medicationConfig >> "opioidEffect",getNumber (_defaultConfig >> "opioidEffect")); -private _opioidDepression = GET_NUMBER(_medicationConfig >> "opioidRelief",getNumber (_defaultConfig >> "opioidRelief")); private _dose = GET_NUMBER(_medicationConfig >> "dose",getNumber (_defaultConfig >> "dose")); private _heartRate = GET_HEART_RATE(_patient); @@ -158,3 +166,33 @@ if (QGVAR(AMS_Enabled)) then { [format ["kat_pharma_%1Local", toLower _className], [_patient, _bodyPart, _opioidRelief], _patient] call CBA_fnc_targetEvent; }; }; +if (QGVAR(AMSEnabled)) then { +private _TXAmedications = ["syringe_TXA_5ml_1", "syringe_TXA_10ml_1"]; + if (_classname in _TXAmedications) then { + private _medication = _classname; + private _administered = _patient getVariable ["meds_administered", []]; + private _effectTriggered = _patient getVariable ["effect_triggered", false]; + private _windowActive = _patient getVariable ["meds_window_active", false]; + if (!(_medication in _administered)) then { + _administered pushBack _medication; + _patient setVariable ["meds_administered", _administered, true]; + }; + if (count _administered == 1) then { + _patient setVariable ["meds_window_active", false, true]; + [_patient] call { + _patient setVariable ["meds_window_active", true, true]; + } call CBA_fnc_waitAndExecute [180]; + [_patient] call { + _patient setVariable ["meds_window_active", false, true]; + } call CBA_fnc_waitAndExecute [300]; + }; + if ((count _administered == count _TXAmedications) && (_patient getVariable ["meds_window_active", false]) && {!_effectTriggered}) then { + _effectTriggered = true; + [_patient, "EACA", 15, 360, "", "", "", "", "", "", "", ""] call EFUNC(vitals,addMedicationAdjustment); + [_patient, "Body"] call FUNC(treatmentAdvanced_EACALocal); + _patient setVariable ["effect_triggered", false, true]; + _patient setVariable ["meds_administered", [], true]; + _patient setVariable ["meds_window_active", false, true]; + }; + }; +}; \ No newline at end of file From 70f5d62f086e7211ef8aa05fa22e21c08402d56a Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Sat, 16 Nov 2024 19:06:22 -0800 Subject: [PATCH 138/149] Update fnc_medicationLocal.sqf --- addons/pharma/functions/fnc_medicationLocal.sqf | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/addons/pharma/functions/fnc_medicationLocal.sqf b/addons/pharma/functions/fnc_medicationLocal.sqf index 4bf58e7c7..2c546213b 100644 --- a/addons/pharma/functions/fnc_medicationLocal.sqf +++ b/addons/pharma/functions/fnc_medicationLocal.sqf @@ -179,12 +179,10 @@ private _TXAmedications = ["syringe_TXA_5ml_1", "syringe_TXA_10ml_1"]; }; if (count _administered == 1) then { _patient setVariable ["meds_window_active", false, true]; - [_patient] call { - _patient setVariable ["meds_window_active", true, true]; - } call CBA_fnc_waitAndExecute [180]; - [_patient] call { - _patient setVariable ["meds_window_active", false, true]; - } call CBA_fnc_waitAndExecute [300]; + [_patient setVariable ["meds_window_active", true, true] + [_patient], 180] call CBA_fnc_waitAndExecute; + [_patient setVariable ["meds_window_active", false, true] + [_patient], 300] call CBA_fnc_waitAndExecute; }; if ((count _administered == count _TXAmedications) && (_patient getVariable ["meds_window_active", false]) && {!_effectTriggered}) then { _effectTriggered = true; From 893c4b152bc712b61a8e3f4344ac774f3fd1f117 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Sat, 16 Nov 2024 19:10:52 -0800 Subject: [PATCH 139/149] WAEs are fun and im drunk --- addons/pharma/functions/fnc_medicationLocal.sqf | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/addons/pharma/functions/fnc_medicationLocal.sqf b/addons/pharma/functions/fnc_medicationLocal.sqf index 2c546213b..472cfd7d7 100644 --- a/addons/pharma/functions/fnc_medicationLocal.sqf +++ b/addons/pharma/functions/fnc_medicationLocal.sqf @@ -179,10 +179,16 @@ private _TXAmedications = ["syringe_TXA_5ml_1", "syringe_TXA_10ml_1"]; }; if (count _administered == 1) then { _patient setVariable ["meds_window_active", false, true]; - [_patient setVariable ["meds_window_active", true, true] - [_patient], 180] call CBA_fnc_waitAndExecute; - [_patient setVariable ["meds_window_active", false, true] - [_patient], 300] call CBA_fnc_waitAndExecute; + [{ + params ["_patient"]; + _patient setVariable ["meds_window_active", true, true]; + }, + [_patient], 180] call CBA_fnc_waitAndExecute; + [{ + params ["_patient"]; + _patient setVariable ["meds_window_active", false, true]; + }, + [_patient], 300] call CBA_fnc_waitAndExecute; }; if ((count _administered == count _TXAmedications) && (_patient getVariable ["meds_window_active", false]) && {!_effectTriggered}) then { _effectTriggered = true; From 433b645eeacdc0876115d623e3915b6c37c3c2a8 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Sat, 16 Nov 2024 19:58:13 -0800 Subject: [PATCH 140/149] I LIED, MORE CHANGES --- .../breathing/functions/fnc_fullHealLocal.sqf | 1 - addons/pharma/ACE_Medical_Treatment.hpp | 20 ++++++++++++++++ .../pharma/functions/fnc_medicationLocal.sqf | 5 ++-- addons/vitals/XEH_PREP.hpp | 3 ++- .../functions/fnc_addMedicationAdjustment.sqf | 4 ++-- .../functions/fnc_handleOxygenFunction.sqf | 2 +- .../vitals/functions/fnc_handleUnitVitals.sqf | 6 +++-- .../functions/fnc_updateRespiratoryRate.sqf | 23 +++++++++++++++++++ 8 files changed, 55 insertions(+), 9 deletions(-) create mode 100644 addons/vitals/functions/fnc_updateRespiratoryRate.sqf diff --git a/addons/breathing/functions/fnc_fullHealLocal.sqf b/addons/breathing/functions/fnc_fullHealLocal.sqf index f48817747..8e5086513 100644 --- a/addons/breathing/functions/fnc_fullHealLocal.sqf +++ b/addons/breathing/functions/fnc_fullHealLocal.sqf @@ -28,7 +28,6 @@ _patient setVariable [QGVAR(etco2Monitor), [], true]; _patient setVariable [QGVAR(breathRate), 15, true]; _patient setVariable [QGVAR(nasalCannula), false, true]; _patient setVariable [QGVAR(lungSurfaceArea), 400]; -_patient setVariable [QGVAR(respiratoryRateMultiplier), 1]; if (ACEGVAR(advanced_fatigue,enabled)) then { ["kat_LSDF"] call ACEFUNC(advanced_fatigue,removeDutyFactor); }; diff --git a/addons/pharma/ACE_Medical_Treatment.hpp b/addons/pharma/ACE_Medical_Treatment.hpp index e48eac5c6..eca2fedb7 100644 --- a/addons/pharma/ACE_Medical_Treatment.hpp +++ b/addons/pharma/ACE_Medical_Treatment.hpp @@ -30,6 +30,8 @@ class ACE_ADDON(Medical_Treatment) { opioidRelief = 0; // How strong should opioid visuals be opioidEffect = 0; + //multiplier to respiratory rate + respiratoryRate = 1; class Epinephrine { painReduce = 0; @@ -562,6 +564,7 @@ class ACE_ADDON(Medical_Treatment) { viscosityChange = -10; opioidRelief = 1.2; opioidEffect = 0.17; + respiratoryRate = 0.7; }; class syringe_fentanyl_5ml_3 { painReduce = 1; @@ -574,6 +577,7 @@ class ACE_ADDON(Medical_Treatment) { viscosityChange = -10; opioidRelief = 1.5; opioidEffect = 0.25; + respiratoryRate = 0.6; }; class syringe_ketamine_5ml_1 { painReduce = 0.5; @@ -585,6 +589,7 @@ class ACE_ADDON(Medical_Treatment) { dose = 1; viscosityChange = 10; opioidEffect = 0.18; + respiratoryRate = 0.6; }; class syringe_ketamine_5ml_3 { painReduce = 0.8; @@ -597,6 +602,7 @@ class ACE_ADDON(Medical_Treatment) { viscosityChange = 10; onOverDose = ""; opioidEffect = 0.21; + respiratoryRate = 0.5; }; class syringe_nalbuphine_5ml_1 { painReduce = 0.5; @@ -608,6 +614,7 @@ class ACE_ADDON(Medical_Treatment) { dose = 1; viscosityChange = -5; opioidRelief = 1.1; + respiratoryRate = 0.9; }; class syringe_nalbuphine_5ml_3 { painReduce = 0.7; @@ -619,6 +626,7 @@ class ACE_ADDON(Medical_Treatment) { dose = 3; viscosityChange = -5; opioidRelief = 1.2; + respiratoryRate = 0.8; }; class syringe_atropineIV_5ml_1 { painReduce = 0; @@ -727,6 +735,7 @@ class ACE_ADDON(Medical_Treatment) { timeTillMaxEffect = 5; dose = 1; viscosityChange = -10; + respiratoryRate = 0.9; }; class syringe_lorazepam_5ml_3 { painReduce = 0; @@ -737,6 +746,7 @@ class ACE_ADDON(Medical_Treatment) { timeTillMaxEffect = 5; dose = 3; viscosityChange = -15; + respiratoryRate = 0.8; }; class syringe_morphineIV_5ml_1 { painReduce = 0.6; @@ -748,6 +758,7 @@ class ACE_ADDON(Medical_Treatment) { dose = 1; viscosityChange = -15; opioidRelief = 1.2; + respiratoryRate = 0.7; }; class syringe_morphineIV_5ml_3 { painReduce = 0.8; @@ -759,6 +770,7 @@ class ACE_ADDON(Medical_Treatment) { dose = 3; viscosityChange = -20; opioidRelief = 1.3; + respiratoryRate = 0.6; }; class syringe_adenosineIV_5ml_1 { painReduce = 0; @@ -805,6 +817,7 @@ class ACE_ADDON(Medical_Treatment) { onOverDose = ""; opioidRelief = 1.1; opioidEffect = 0.15; + respiratoryRate = 0.7; }; class syringe_fentanyl_10ml_3 { painReduce = 0.8; @@ -817,6 +830,7 @@ class ACE_ADDON(Medical_Treatment) { viscosityChange = -10; opioidRelief = 1.3; opioidEffect = 0.17; + respiratoryRate = 0.6; }; class syringe_ketamine_10ml_1 { painReduce = 0.6; @@ -828,6 +842,7 @@ class ACE_ADDON(Medical_Treatment) { dose = 1; viscosityChange = 10; opioidEffect = 0.12; + respiratoryRate = 0.6; }; class syringe_ketamine_10ml_3 { painReduce = 0.8; @@ -839,6 +854,7 @@ class ACE_ADDON(Medical_Treatment) { dose = 3; viscosityChange = 10; opioidEffect = 0.15; + respiratoryRate = 0.5; }; class syringe_nalbuphine_10ml_1 { painReduce = 0.5; @@ -850,6 +866,7 @@ class ACE_ADDON(Medical_Treatment) { dose = 1; viscosityChange = -5; opioidRelief = 1.1; + respiratoryRate = 0.9; }; class syringe_nalbuphine_10ml_3 { painReduce = 0.7; @@ -861,6 +878,7 @@ class ACE_ADDON(Medical_Treatment) { dose = 3; viscosityChange = -5; opioidRelief = 1.2; + respiratoryRate = 0.8; }; class syringe_lidocaine_10ml_1 { painReduce = 0; @@ -881,6 +899,7 @@ class ACE_ADDON(Medical_Treatment) { dose = 1; viscosityChange = -15; opioidRelief = 1.1; + respiratoryRate = 0.6; }; class syringe_morphineIV_10ml_3 { painReduce = 0.8; @@ -892,6 +911,7 @@ class ACE_ADDON(Medical_Treatment) { dose = 3; viscosityChange = -15; opioidRelief = 1.3; + respiratoryRate = 0.7; }; class syringe_txa { maxDose = 6; diff --git a/addons/pharma/functions/fnc_medicationLocal.sqf b/addons/pharma/functions/fnc_medicationLocal.sqf index 472cfd7d7..f7c73e024 100644 --- a/addons/pharma/functions/fnc_medicationLocal.sqf +++ b/addons/pharma/functions/fnc_medicationLocal.sqf @@ -93,6 +93,7 @@ private _viscosityChange = GET_NUMBER(_medicationConfig >> "viscosityChan private _alphaFactor = GET_NUMBER(_medicationConfig >> "alphaFactor",getNumber (_defaultConfig >> "alphaFactor")) * _drugMult; private _opioidRelief = GET_NUMBER(_medicationConfig >> "opioidRelief",getNumber (_defaultConfig >> "opioidRelief")) * _drugMult; private _opioidEffect = GET_NUMBER(_medicationConfig >> "opioidEffect",getNumber (_defaultConfig >> "opioidEffect")) * _drugMult; +private _respiratoryRate = GET_NUMBER(_medicationConfig >> "respiratoryRate",getNumber (_defaultConfig >> "respiratoryRate")) * _drugMult; private _opioidDepression = GET_NUMBER(_medicationConfig >> "opioidDepression",getNumber (_defaultConfig >> "opioidDepression")) * _drugMult; private _hrIncreaseLow = GET_ARRAY(_medicationConfig >> "hrIncreaseLow",getArray (_defaultConfig >> "hrIncreaseLow")) apply { _x * _drugMult }; private _hrIncreaseNormal = GET_ARRAY(_medicationConfig >> "hrIncreaseNormal",getArray (_defaultConfig >> "hrIncreaseNormal")) apply { _x * _drugMult }; @@ -121,14 +122,14 @@ if (QGVAR(AMS_Enabled)) then { }; // Adjust the medication effects and add the medication to the list TRACE_3("adjustments",_heartRateChange,_painReduce,_viscosityChange); - [_patient, _medicationName, _timeTillMaxEffect, _timeInSystem, _heartRateChange, _painReduce, _viscosityChange, _dose, _alphaFactor, _opioidRelief, _opioidEffect, _opioidDepression] call EFUNC(vitals,addMedicationAdjustment); + [_patient, _medicationName, _timeTillMaxEffect, _timeInSystem, _heartRateChange, _painReduce, _viscosityChange, _dose, _alphaFactor, _opioidRelief, _opioidEffect, _opioidDepression, _respiratoryRate] call EFUNC(vitals,addMedicationAdjustment); // Check for medication compatiblity [_patient, _medicationName, _incompatibleMedication] call ACEFUNC(medical_treatment,onMedicationUsage); } else { // Adjust the medication effects and add the medication to the list TRACE_3("adjustments",_heartRateChange,_painReduce,_viscosityChange); - [_patient, _className, _timeTillMaxEffect, _timeInSystem, _heartRateChange, _painReduce, _viscosityChange, _dose, _alphaFactor, _opioidRelief, _opioidEffect, _opioidDepression] call EFUNC(vitals,addMedicationAdjustment); + [_patient, _className, _timeTillMaxEffect, _timeInSystem, _heartRateChange, _painReduce, _viscosityChange, _dose, _alphaFactor, _opioidRelief, _opioidEffect, _opioidDepression, _respiratoryRate] call EFUNC(vitals,addMedicationAdjustment); // Check for medication compatiblity [_patient, _className, _incompatibleMedication] call ACEFUNC(medical_treatment,onMedicationUsage); diff --git a/addons/vitals/XEH_PREP.hpp b/addons/vitals/XEH_PREP.hpp index 2618e1039..ce42ccbab 100644 --- a/addons/vitals/XEH_PREP.hpp +++ b/addons/vitals/XEH_PREP.hpp @@ -10,4 +10,5 @@ PREP(hasStableVitals); PREP(init); PREP(updateOpioidDepression); PREP(updateOpioidEffect); -PREP(updateOpioidRelief); \ No newline at end of file +PREP(updateOpioidRelief); +PREP(updateRespiratoryRate); \ No newline at end of file diff --git a/addons/vitals/functions/fnc_addMedicationAdjustment.sqf b/addons/vitals/functions/fnc_addMedicationAdjustment.sqf index 1c758ec5a..668b4df48 100644 --- a/addons/vitals/functions/fnc_addMedicationAdjustment.sqf +++ b/addons/vitals/functions/fnc_addMedicationAdjustment.sqf @@ -21,7 +21,7 @@ * * Public: No */ -params ["_unit", "_medication", "_timeToMaxEffect", "_maxTimeInSystem", "_hrAdjust", "_painAdjust", "_flowAdjust", "_dose", "_alphaFactor", "_opioidRelief", "_opioidEffect", "_opioidDepression"]; +params ["_unit", "_medication", "_timeToMaxEffect", "_maxTimeInSystem", "_hrAdjust", "_painAdjust", "_flowAdjust", "_dose", "_alphaFactor", "_opioidRelief", "_opioidEffect", "_opioidDepression" "_respiratoryRate"]; TRACE_8("addMedicationAdjustment",_unit,_medication,_timeToMaxEffect,_maxTimeInSystem,_hrAdjust,_painAdjust,_flowAdjust,_dose); if (_maxTimeInSystem <= 0) exitWith { WARNING_1("bad value for _maxTimeInSystem - %1",_this); }; @@ -30,6 +30,6 @@ _timeToMaxEffect = _timeToMaxEffect max 1; private _adjustments = _unit getVariable [VAR_MEDICATIONS, []]; -_adjustments pushBack [_medication, CBA_missionTime, _timeToMaxEffect, _maxTimeInSystem, _hrAdjust, _painAdjust, _flowAdjust, _dose, _alphaFactor, _opioidRelief, _opioidEffect, _opioidDepression]; +_adjustments pushBack [_medication, CBA_missionTime, _timeToMaxEffect, _maxTimeInSystem, _hrAdjust, _painAdjust, _flowAdjust, _dose, _alphaFactor, _opioidRelief, _opioidEffect, _opioidDepression, _respiratoryRate]; _unit setVariable [VAR_MEDICATIONS, _adjustments, true]; diff --git a/addons/vitals/functions/fnc_handleOxygenFunction.sqf b/addons/vitals/functions/fnc_handleOxygenFunction.sqf index 44fa93156..4bad19a87 100644 --- a/addons/vitals/functions/fnc_handleOxygenFunction.sqf +++ b/addons/vitals/functions/fnc_handleOxygenFunction.sqf @@ -33,7 +33,7 @@ params ["_unit", "_actualHeartRate", "_anerobicPressure", "_bloodGas", "_tempera #define DEFAULT_FIO2 0.21 private _respiratoryRate = 0; -private _respiratoryRateMult = _unit getVariable [QEGVAR(breathing,respiratoryRateMultiplier), 1]; +private _respiratoryRateMult = _unit getVariable [QEGVAR(pharma,respiratoryRate), 1]; private _demandVentilation = 0; private _actualVentilation = 0; private _previousCyclePaco2 = (_bloodGas select 0); diff --git a/addons/vitals/functions/fnc_handleUnitVitals.sqf b/addons/vitals/functions/fnc_handleUnitVitals.sqf index 2f8f2f0ec..d82102aa6 100644 --- a/addons/vitals/functions/fnc_handleUnitVitals.sqf +++ b/addons/vitals/functions/fnc_handleUnitVitals.sqf @@ -97,7 +97,7 @@ private _adjustments = _unit getVariable [VAR_MEDICATIONS,[]]; if !(_adjustments isEqualTo []) then { private _deleted = false; { - _x params ["_medication", "_timeAdded", "_timeTillMaxEffect", "_maxTimeInSystem", "_hrAdjust", "_painAdjust", "_flowAdjust", "_alphaFactor", "_opioidRelief", "_opioidEffect"]; + _x params ["_medication", "_timeAdded", "_timeTillMaxEffect", "_maxTimeInSystem", "_hrAdjust", "_painAdjust", "_flowAdjust", "_alphaFactor", "_opioidRelief", "_opioidEffect", "_opioidDepression" "_respiratoryRate"]; private _timeInSystem = CBA_missionTime - _timeAdded; if (_timeInSystem >= _maxTimeInSystem) then { _deleted = true; @@ -111,6 +111,7 @@ if !(_adjustments isEqualTo []) then { if (_opioidRelief != 0) then {_opioidAdjustment = _opioidAdjustment + _opioidRelief * _effectRatio; }; if (_opioidEffect != 0) then {_opioidEffectAdjustment = _opioidEffectAdjustment + _opioidEffect * _effectRatio; }; if (_opioidDepression != 0) then {_opioidDepressionAdjustment = _opioidAdjustment + _opioidDepression * _effectRatio; }; + if (_respiratoryRate != 0) then {_respiratoryRateAdjustment = _respiratoryRateAdjustment + _respiratoryRate * _effectRatio; }; }; } forEach _adjustments; @@ -124,7 +125,8 @@ if !(_adjustments isEqualTo []) then { [_unit, _peripheralResistanceAdjustment, _deltaT, _syncValues] call ACEFUNC(medical_vitals,updatePeripheralResistance); [_unit, _opioidAdjustment, _deltaT, _syncValues] call FUNC(updateOpioidRelief); [_unit, _opioidEffectAdjustment, _deltaT, _syncValues] call FUNC(updateOpioidEffect); -[_unit, _opioid_opioidDepressionAdjustment, _deltaT, _syncValues] call FUNC(updateOpioidDepression); +[_unit, _opioidDepressionAdjustment, _deltaT, _syncValues] call FUNC(updateOpioidDepression); +[_unit, _respiratoryRateAdjustment, _deltaT, _syncValues] call FUNC(updateRespiratoryRate); private _heartRate = [_unit, _hrTargetAdjustment, 0, _bloodVolume, _deltaT, _syncValues] call FUNC(handleCardiacFunction); diff --git a/addons/vitals/functions/fnc_updateRespiratoryRate.sqf b/addons/vitals/functions/fnc_updateRespiratoryRate.sqf new file mode 100644 index 000000000..daba412b9 --- /dev/null +++ b/addons/vitals/functions/fnc_updateRespiratoryRate.sqf @@ -0,0 +1,23 @@ +#include "..\script_component.hpp" +/* + * Author: Cplhardcore + * Update the respiratoryRate effect + * + * Arguments: + * 0: The Unit + * 1: respiratoryRate Adjustments + * 2: Time since last update + * 3: Sync value? + * + * Return Value: + * None + * + * Example: + * [player, 0, 1, false] call kat_vitals_fnc_updaterespiratoryRate + * + * Public: No + */ + +params ["_unit", "_respiratoryRateAdjustment", "_deltaT", "_syncValue"]; + +_unit setVariable [QEGVAR(pharma,respiratoryRate), _respiratoryRateAdjustment, _syncValue]; From 71d9c4b86bb2b05996aacad699b7a97c9854ce55 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Sat, 16 Nov 2024 20:02:45 -0800 Subject: [PATCH 141/149] commas --- addons/vitals/functions/fnc_addMedicationAdjustment.sqf | 2 +- addons/vitals/functions/fnc_handleUnitVitals.sqf | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/vitals/functions/fnc_addMedicationAdjustment.sqf b/addons/vitals/functions/fnc_addMedicationAdjustment.sqf index 668b4df48..e113bc7a6 100644 --- a/addons/vitals/functions/fnc_addMedicationAdjustment.sqf +++ b/addons/vitals/functions/fnc_addMedicationAdjustment.sqf @@ -21,7 +21,7 @@ * * Public: No */ -params ["_unit", "_medication", "_timeToMaxEffect", "_maxTimeInSystem", "_hrAdjust", "_painAdjust", "_flowAdjust", "_dose", "_alphaFactor", "_opioidRelief", "_opioidEffect", "_opioidDepression" "_respiratoryRate"]; +params ["_unit", "_medication", "_timeToMaxEffect", "_maxTimeInSystem", "_hrAdjust", "_painAdjust", "_flowAdjust", "_dose", "_alphaFactor", "_opioidRelief", "_opioidEffect", "_opioidDepression", "_respiratoryRate"]; TRACE_8("addMedicationAdjustment",_unit,_medication,_timeToMaxEffect,_maxTimeInSystem,_hrAdjust,_painAdjust,_flowAdjust,_dose); if (_maxTimeInSystem <= 0) exitWith { WARNING_1("bad value for _maxTimeInSystem - %1",_this); }; diff --git a/addons/vitals/functions/fnc_handleUnitVitals.sqf b/addons/vitals/functions/fnc_handleUnitVitals.sqf index d82102aa6..9624ad944 100644 --- a/addons/vitals/functions/fnc_handleUnitVitals.sqf +++ b/addons/vitals/functions/fnc_handleUnitVitals.sqf @@ -97,7 +97,7 @@ private _adjustments = _unit getVariable [VAR_MEDICATIONS,[]]; if !(_adjustments isEqualTo []) then { private _deleted = false; { - _x params ["_medication", "_timeAdded", "_timeTillMaxEffect", "_maxTimeInSystem", "_hrAdjust", "_painAdjust", "_flowAdjust", "_alphaFactor", "_opioidRelief", "_opioidEffect", "_opioidDepression" "_respiratoryRate"]; + _x params ["_medication", "_timeAdded", "_timeTillMaxEffect", "_maxTimeInSystem", "_hrAdjust", "_painAdjust", "_flowAdjust", "_alphaFactor", "_opioidRelief", "_opioidEffect", "_opioidDepression", "_respiratoryRate"]; private _timeInSystem = CBA_missionTime - _timeAdded; if (_timeInSystem >= _maxTimeInSystem) then { _deleted = true; From 157054865992ffd1cb73fd39eb9c535cef90c6f5 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Sun, 17 Nov 2024 11:52:17 -0800 Subject: [PATCH 142/149] More fixes --- addons/pharma/ACE_Medical_Treatment.hpp | 40 +++++++++---------- addons/pharma/functions/fnc_fullHealLocal.sqf | 1 + 2 files changed, 21 insertions(+), 20 deletions(-) diff --git a/addons/pharma/ACE_Medical_Treatment.hpp b/addons/pharma/ACE_Medical_Treatment.hpp index eca2fedb7..80bbfca4d 100644 --- a/addons/pharma/ACE_Medical_Treatment.hpp +++ b/addons/pharma/ACE_Medical_Treatment.hpp @@ -31,7 +31,7 @@ class ACE_ADDON(Medical_Treatment) { // How strong should opioid visuals be opioidEffect = 0; //multiplier to respiratory rate - respiratoryRate = 1; + respiratoryRate = 0; class Epinephrine { painReduce = 0; @@ -564,7 +564,7 @@ class ACE_ADDON(Medical_Treatment) { viscosityChange = -10; opioidRelief = 1.2; opioidEffect = 0.17; - respiratoryRate = 0.7; + respiratoryRate = -0.2; }; class syringe_fentanyl_5ml_3 { painReduce = 1; @@ -577,7 +577,7 @@ class ACE_ADDON(Medical_Treatment) { viscosityChange = -10; opioidRelief = 1.5; opioidEffect = 0.25; - respiratoryRate = 0.6; + respiratoryRate = -0.3; }; class syringe_ketamine_5ml_1 { painReduce = 0.5; @@ -589,7 +589,7 @@ class ACE_ADDON(Medical_Treatment) { dose = 1; viscosityChange = 10; opioidEffect = 0.18; - respiratoryRate = 0.6; + respiratoryRate = -0.3; }; class syringe_ketamine_5ml_3 { painReduce = 0.8; @@ -602,7 +602,7 @@ class ACE_ADDON(Medical_Treatment) { viscosityChange = 10; onOverDose = ""; opioidEffect = 0.21; - respiratoryRate = 0.5; + respiratoryRate = -0.4; }; class syringe_nalbuphine_5ml_1 { painReduce = 0.5; @@ -614,7 +614,7 @@ class ACE_ADDON(Medical_Treatment) { dose = 1; viscosityChange = -5; opioidRelief = 1.1; - respiratoryRate = 0.9; + respiratoryRate = -0.1; }; class syringe_nalbuphine_5ml_3 { painReduce = 0.7; @@ -626,7 +626,7 @@ class ACE_ADDON(Medical_Treatment) { dose = 3; viscosityChange = -5; opioidRelief = 1.2; - respiratoryRate = 0.8; + respiratoryRate = -0.1; }; class syringe_atropineIV_5ml_1 { painReduce = 0; @@ -735,7 +735,7 @@ class ACE_ADDON(Medical_Treatment) { timeTillMaxEffect = 5; dose = 1; viscosityChange = -10; - respiratoryRate = 0.9; + respiratoryRate = -0.1; }; class syringe_lorazepam_5ml_3 { painReduce = 0; @@ -746,7 +746,7 @@ class ACE_ADDON(Medical_Treatment) { timeTillMaxEffect = 5; dose = 3; viscosityChange = -15; - respiratoryRate = 0.8; + respiratoryRate = -0.1; }; class syringe_morphineIV_5ml_1 { painReduce = 0.6; @@ -758,7 +758,7 @@ class ACE_ADDON(Medical_Treatment) { dose = 1; viscosityChange = -15; opioidRelief = 1.2; - respiratoryRate = 0.7; + respiratoryRate = -0.2; }; class syringe_morphineIV_5ml_3 { painReduce = 0.8; @@ -770,7 +770,7 @@ class ACE_ADDON(Medical_Treatment) { dose = 3; viscosityChange = -20; opioidRelief = 1.3; - respiratoryRate = 0.6; + respiratoryRate = -0.3; }; class syringe_adenosineIV_5ml_1 { painReduce = 0; @@ -817,7 +817,7 @@ class ACE_ADDON(Medical_Treatment) { onOverDose = ""; opioidRelief = 1.1; opioidEffect = 0.15; - respiratoryRate = 0.7; + respiratoryRate = -0.2; }; class syringe_fentanyl_10ml_3 { painReduce = 0.8; @@ -830,7 +830,7 @@ class ACE_ADDON(Medical_Treatment) { viscosityChange = -10; opioidRelief = 1.3; opioidEffect = 0.17; - respiratoryRate = 0.6; + respiratoryRate = -0.3; }; class syringe_ketamine_10ml_1 { painReduce = 0.6; @@ -842,7 +842,7 @@ class ACE_ADDON(Medical_Treatment) { dose = 1; viscosityChange = 10; opioidEffect = 0.12; - respiratoryRate = 0.6; + respiratoryRate = -0.3; }; class syringe_ketamine_10ml_3 { painReduce = 0.8; @@ -854,7 +854,7 @@ class ACE_ADDON(Medical_Treatment) { dose = 3; viscosityChange = 10; opioidEffect = 0.15; - respiratoryRate = 0.5; + respiratoryRate = -0.4; }; class syringe_nalbuphine_10ml_1 { painReduce = 0.5; @@ -866,7 +866,7 @@ class ACE_ADDON(Medical_Treatment) { dose = 1; viscosityChange = -5; opioidRelief = 1.1; - respiratoryRate = 0.9; + respiratoryRate = -0.1; }; class syringe_nalbuphine_10ml_3 { painReduce = 0.7; @@ -878,7 +878,7 @@ class ACE_ADDON(Medical_Treatment) { dose = 3; viscosityChange = -5; opioidRelief = 1.2; - respiratoryRate = 0.8; + respiratoryRate = -0.1; }; class syringe_lidocaine_10ml_1 { painReduce = 0; @@ -899,7 +899,7 @@ class ACE_ADDON(Medical_Treatment) { dose = 1; viscosityChange = -15; opioidRelief = 1.1; - respiratoryRate = 0.6; + respiratoryRate = -0.2; }; class syringe_morphineIV_10ml_3 { painReduce = 0.8; @@ -911,7 +911,7 @@ class ACE_ADDON(Medical_Treatment) { dose = 3; viscosityChange = -15; opioidRelief = 1.3; - respiratoryRate = 0.7; + respiratoryRate = -0.3; }; class syringe_txa { maxDose = 6; @@ -1004,7 +1004,7 @@ class ACE_ADDON(Medical_Treatment) { onOverDose = ""; }; class syringe_morphineIV { - maxDose = 6; + maxDose = 3; maxDoseDeviation = 3; incompatibleMedication[] = {}; onOverDose = ""; diff --git a/addons/pharma/functions/fnc_fullHealLocal.sqf b/addons/pharma/functions/fnc_fullHealLocal.sqf index aa566ab51..5a6c92d7d 100644 --- a/addons/pharma/functions/fnc_fullHealLocal.sqf +++ b/addons/pharma/functions/fnc_fullHealLocal.sqf @@ -53,6 +53,7 @@ _patient setVariable [QGVAR(opioidDepressionFactor), 0, true]; _patient setVariable [QGVAR(kidneyFail), false, true]; _patient setVariable [QGVAR(kidneyArrest), false, true]; _patient setVariable [QGVAR(kidneyPressure), false, true]; +_patient setVariable [QGVAR(respiratoryRate), 1, true]; _patient setVariable [QGVAR(coagulationFactor), missionNamespace getVariable [QGVAR(coagulation_factor_count), 30], true]; From fa4c3458cabde73a0907698d1fec7736bf1fec83 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Mon, 18 Nov 2024 15:21:37 -0800 Subject: [PATCH 143/149] Headers --- addons/pharma/functions/fnc_AMSCheck.sqf | 4 ++-- .../functions/fnc_treatmentAdvanced_AdenosineLocal.sqf | 2 +- .../fnc_treatmentAdvanced_AdenosineOverdoseLocal.sqf | 4 ++-- .../functions/fnc_treatmentAdvanced_AlteplaseLocal.sqf | 6 +++--- .../fnc_treatmentAdvanced_AlteplaseOverdoseLocal.sqf | 6 +++--- .../fnc_treatmentAdvanced_AmiodaroneOverdoseLocal.sqf | 4 ++-- .../functions/fnc_treatmentAdvanced_AtropineLocal.sqf | 4 ++-- .../fnc_treatmentAdvanced_AtropineOverdoseLocal.sqf | 2 +- .../functions/fnc_treatmentAdvanced_CWMPOverdoseLocal.sqf | 2 +- .../fnc_treatmentAdvanced_CaffeineOverdoseLocal.sqf | 4 ++-- .../fnc_treatmentAdvanced_CarbonateOverdoseLocal.sqf | 5 ++--- .../functions/fnc_treatmentAdvanced_EACAOverdoseLocal.sqf | 6 +++--- .../fnc_treatmentAdvanced_EpinephrineOverdoseLocal.sqf | 2 +- .../fnc_treatmentAdvanced_EtomidateOverdoseLocal.sqf | 6 +++--- .../fnc_treatmentAdvanced_FentanylOverdoseLocal.sqf | 5 ++--- .../fnc_treatmentAdvanced_FlumazenilOverdoseLocal.sqf | 2 +- .../fnc_treatmentAdvanced_KetamineOverdoseLocal.sqf | 6 ++---- .../fnc_treatmentAdvanced_LidocaineOverdoseLocal.sqf | 6 +++--- .../fnc_treatmentAdvanced_LorazepamOverdoseLocal.sqf | 6 +++--- .../fnc_treatmentAdvanced_MorphineOverdoseLocal.sqf | 6 +++--- .../fnc_treatmentAdvanced_NalbuphineOverdoseLocal.sqf | 6 +++--- .../fnc_treatmentAdvanced_NaloxoneOverdoseLocal.sqf | 6 +++--- .../fnc_treatmentAdvanced_NitroglycerinOverdoseLocal.sqf | 6 +++--- .../fnc_treatmentAdvanced_NorepinephrineOverdoseLocal.sqf | 2 +- .../fnc_treatmentAdvanced_PenthroxOverdoseLocal.sqf | 6 +++--- .../fnc_treatmentAdvanced_PervitinOverdoseLocal.sqf | 6 +++--- .../fnc_treatmentAdvanced_PhenylephrineOverdoseLocal.sqf | 7 ++++--- .../functions/fnc_treatmentAdvanced_TXAOverdoseLocal.sqf | 2 +- 28 files changed, 63 insertions(+), 66 deletions(-) diff --git a/addons/pharma/functions/fnc_AMSCheck.sqf b/addons/pharma/functions/fnc_AMSCheck.sqf index 8fdb88ab7..9ce97b8b4 100644 --- a/addons/pharma/functions/fnc_AMSCheck.sqf +++ b/addons/pharma/functions/fnc_AMSCheck.sqf @@ -1,10 +1,10 @@ #include "..\script_component.hpp" /* * Author: Cplhardcore - * + * Checks for if AMS is enabled and an IV sutible for medications is placed/if an IV is required * * Arguments: - * + * 0: None * * Example: * [] call kat_pharma_fnc_AMScheck; diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_AdenosineLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_AdenosineLocal.sqf index 9ae16dc40..9611a9ce2 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_AdenosineLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_AdenosineLocal.sqf @@ -10,7 +10,7 @@ * None * * Example: - * [cursorTarget, "ACE_adenosine"] call kat_pharma_fnc_treatmentAdvanced_AmiodaroneLocal; + * [cursorTarget, "ACE_adenosine"] call kat_pharma_fnc_treatmentAdvanced_AdenosineLocal; * * Public: No */ diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_AdenosineOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_AdenosineOverdoseLocal.sqf index efbe7ec38..ac64593fe 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_AdenosineOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_AdenosineOverdoseLocal.sqf @@ -1,7 +1,7 @@ #include "..\script_component.hpp" /* * Author:Cplhardcore - * Does the AV block effect of adenosine + * Handles the overdose effect of Adenosine * * Arguments: * 0: Patient @@ -10,7 +10,7 @@ * None * * Example: - * [cursorTarget, "ACE_adenosine"] call kat_pharma_fnc_treatmentAdvanced_AmiodaroneLocal; + * [cursorTarget] call kat_pharma_fnc_treatmentAdvanced_AdenosineOverdoseLocal; * * Public: No */ diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_AlteplaseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_AlteplaseLocal.sqf index 122c6e7e7..b3501bcce 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_AlteplaseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_AlteplaseLocal.sqf @@ -1,7 +1,7 @@ #include "..\script_component.hpp" /* - * Author: Mazinski.H, Edited by MiszczuZPolski and Cplhardcore - * Applies Bradycardia randomly + * Author: Cplhardcore + * Handles the overdose effect of Alteplase * * Arguments: * 0: Patient @@ -10,7 +10,7 @@ * None * * Example: - * [cursorTarget] call kat_pharma_fnc_treatmentAdvanced_AmiodaroneLocal; + * [cursorTarget] call kat_pharma_fnc_treatmentAdvanced_AlteplaseLocal; * * Public: No */ diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_AlteplaseOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_AlteplaseOverdoseLocal.sqf index 4aec77353..abf11f257 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_AlteplaseOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_AlteplaseOverdoseLocal.sqf @@ -1,7 +1,7 @@ #include "..\script_component.hpp" /* - * Author: Mazinski.H, Edited by MiszczuZPolski and Cplhardcore - * Applies Bradycardia randomly + * Author: Cplhardcore + * Handles the overdose effect of Alteplase * * Arguments: * 0: Patient @@ -10,7 +10,7 @@ * None * * Example: - * [cursorTarget] call kat_pharma_fnc_treatmentAdvanced_AmiodaroneLocal; + * [cursorTarget] call kat_pharma_fnc_treatmentAdvanced_AlteplaseLocal; * * Public: No */ diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_AmiodaroneOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_AmiodaroneOverdoseLocal.sqf index 145e73b2e..adc3a79b8 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_AmiodaroneOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_AmiodaroneOverdoseLocal.sqf @@ -1,7 +1,7 @@ #include "..\script_component.hpp" /* * Author: Mazinski.H, Edited by MiszczuZPolski and Cplhardcore - * Applies Bradycardia randomly + * Handles the overdose effect Amiodarone * * Arguments: * 0: Patient @@ -10,7 +10,7 @@ * None * * Example: - * [cursorTarget] call kat_pharma_fnc_treatmentAdvanced_AmiodaroneLocal; + * [cursorTarget] call kat_pharma_fnc_treatmentAdvanced_AmiodaroneOverdoseLocal; * * Public: No */ diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_AtropineLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_AtropineLocal.sqf index fcaf6087b..f5d98b333 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_AtropineLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_AtropineLocal.sqf @@ -1,7 +1,7 @@ #include "..\script_component.hpp" /* * Author: Mazinski.H - * Locates and Removes Bradycardia Effect. + * * * Arguments: * 0: Patient @@ -15,4 +15,4 @@ * Public: No */ -params ["_patient", "_bodyPart", "_classname"]; +params ["_patient", "_classname"]; diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_AtropineOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_AtropineOverdoseLocal.sqf index 8cccbad89..3a3d6449b 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_AtropineOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_AtropineOverdoseLocal.sqf @@ -10,7 +10,7 @@ * None * * Example: - * [player, syringe_atropine_5ml_2] call kat_pharma_fnc_treatmentAdvanced_AtropineLocal; + * [player, syringe_atropine_5ml_2] call kat_pharma_fnc_treatmentAdvanced_AtropineOverdoseLocal; * * Public: No */ diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_CWMPOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_CWMPOverdoseLocal.sqf index 66a3683f1..0eabc9133 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_CWMPOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_CWMPOverdoseLocal.sqf @@ -1,6 +1,6 @@ #include "..\script_component.hpp" /* - * Author: MiszczuZPolski + * Author: Cplhardcore * Begins CWMP Treatment * * Arguments: diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_CaffeineOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_CaffeineOverdoseLocal.sqf index 194309fb7..7d3c521db 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_CaffeineOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_CaffeineOverdoseLocal.sqf @@ -1,6 +1,6 @@ #include "..\script_component.hpp" /* - * Author: Miss Heda + * Author: Cplhardcore * * Arguments: * 0: Patient @@ -9,7 +9,7 @@ * None * * Example: - * [player] call kat_pharma_fnc_treatmentAdvanced_CaffeineLocal; + * [player] call kat_pharma_fnc_treatmentAdvanced_CaffeineOverdoseLocal; * * Public: No */ diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_CarbonateOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_CarbonateOverdoseLocal.sqf index 26c0a917c..da0eaf421 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_CarbonateOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_CarbonateOverdoseLocal.sqf @@ -1,17 +1,16 @@ #include "..\script_component.hpp" /* - * Author: Mazinski.H, Blue + * Author: Cplhardcore * Checks for Carbonate Wakeup values to restore consciousness * * Arguments: - * 0: Medic * 1: Patient * * Return Value: * None *` * Example: - * [player, cursorTarget] call kat_pharma_fnc_treatmentAdvanced_CarbonateLocal; + * [player, cursorTarget] call kat_pharma_fnc_treatmentAdvanced_CarbonateOverdoseLocal; * * Public: No */ diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_EACAOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_EACAOverdoseLocal.sqf index ffb6078c5..3c8b5f449 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_EACAOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_EACAOverdoseLocal.sqf @@ -1,11 +1,11 @@ #include "..\script_component.hpp" /* - * Author: 2LT.Mazinski - * Local function for EACA treatment + * Author: Cplhardcore + * Handles the overdose effect of EACA * * Arguments: * 0: Patient - * 1: Body Part + * * * Return Value: * None diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_EpinephrineOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_EpinephrineOverdoseLocal.sqf index 70accf91b..ba1c1830e 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_EpinephrineOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_EpinephrineOverdoseLocal.sqf @@ -11,7 +11,7 @@ * None * * Example: - * [_patient, "LeftArm"] call kat_pharma_fnc_treatmentAdvanced_EACALocal; + * [_patient] call kat_pharma_fnc_treatmentAdvanced_EpinephrineOverdoseLocal; * * Public: No */ diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_EtomidateOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_EtomidateOverdoseLocal.sqf index 7fa66e320..7e02e6a68 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_EtomidateOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_EtomidateOverdoseLocal.sqf @@ -1,7 +1,7 @@ #include "..\script_component.hpp" /* - * Author: MiszczuZPolski - * Begins Lorazepam sedating process + * Author: Cplhardcore + * Handles the overdose effect of Etomidate * * Arguments: * 0: Patient @@ -10,7 +10,7 @@ * None * * Example: - * [player] call kat_pharma_fnc_treatmentAdvanced_LorazepamLocal; + * [player] call kat_pharma_fnc_treatmentAdvanced_EtomidateOverdoseLocal; * * Public: No */ diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_FentanylOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_FentanylOverdoseLocal.sqf index 882dcf043..74f9d7b0d 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_FentanylOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_FentanylOverdoseLocal.sqf @@ -1,8 +1,7 @@ #include "..\script_component.hpp" /* - * Author: Miss Heda - * Modified: Mazinski - * Triggers the fentanyl visual effect and applies the opioid factor from Fentanyl. + * Author: Cplhardcore + * Handles the overdose effect of Fentanyl * * Arguments: * 0: Patient diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_FlumazenilOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_FlumazenilOverdoseLocal.sqf index b8bf0035b..2f6611d65 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_FlumazenilOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_FlumazenilOverdoseLocal.sqf @@ -10,7 +10,7 @@ * None * * Example: - * [player] call kat_pharma_fnc_treatmentAdvanced_FlumazenilLocal; + * [player] call kat_pharma_fnc_treatmentAdvanced_FlumazenilOverdoseLocal; * * Public: No */ diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_KetamineOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_KetamineOverdoseLocal.sqf index b7998cd2a..1131b93d6 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_KetamineOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_KetamineOverdoseLocal.sqf @@ -1,18 +1,16 @@ #include "..\script_component.hpp" /* * Author: Cplhardcore - * Sedates the patient + * Handles the overdose effect of Ketamine * * Arguments: * 0: Patient - * 1: bodypart - * 2 classname * * Return Value: * None * * Example: - * [player, leftLeg, syringe_ketamine_5ml_3] call kat_pharma_fnc_treatmentAdvanced_ketamineLocal; + * [player] call kat_pharma_fnc_treatmentAdvanced_KetamineOverdoseLocal; * * Public: No */ diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_LidocaineOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_LidocaineOverdoseLocal.sqf index 5e03e4e75..11e00b911 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_LidocaineOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_LidocaineOverdoseLocal.sqf @@ -1,7 +1,7 @@ #include "..\script_component.hpp" /* - * Author: MiszczuZPolski - * Begins Lorazepam sedating process + * Author: Cplhardcore + * Handles the overdose effect of Lidocaine * * Arguments: * 0: Patient @@ -10,7 +10,7 @@ * None * * Example: - * [player] call kat_pharma_fnc_treatmentAdvanced_LorazepamLocal; + * [player] call kat_pharma_fnc_treatmentAdvanced_LidocaineOverdoseLocal; * * Public: No */ diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_LorazepamOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_LorazepamOverdoseLocal.sqf index 06e08f377..d1ce1f184 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_LorazepamOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_LorazepamOverdoseLocal.sqf @@ -1,7 +1,7 @@ #include "..\script_component.hpp" /* - * Author: MiszczuZPolski - * Begins Lorazepam sedating process + * Author: Cplhardcore + * Handles the overdose effect of Lorazepam * * Arguments: * 0: Patient @@ -10,7 +10,7 @@ * None * * Example: - * [player] call kat_pharma_fnc_treatmentAdvanced_LorazepamLocal; + * [player] call kat_pharma_fnc_treatmentAdvanced_LorazepamOverdoseLocal; * * Public: No */ diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_MorphineOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_MorphineOverdoseLocal.sqf index 7cd7be3c3..53fb20cd9 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_MorphineOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_MorphineOverdoseLocal.sqf @@ -1,7 +1,7 @@ #include "..\script_component.hpp" /* - * Author: Mazinski - * Applies the opioid factor from Morphine + * Author: Cplhardcore + * Handles the overdose effect of Morphine * * Arguments: * 0: Patient @@ -10,7 +10,7 @@ * None * * Example: - * [player, "Leftleg", 1] call kat_pharma_fnc_treatmentAdvanced_MorphineLocal; + * [player] call kat_pharma_fnc_treatmentAdvanced_MorphineOverdoseLocal; * * Public: No */ diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_NalbuphineOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_NalbuphineOverdoseLocal.sqf index 917360f21..6906ed505 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_NalbuphineOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_NalbuphineOverdoseLocal.sqf @@ -1,7 +1,7 @@ #include "..\script_component.hpp" /* - * Author: Mazinski - * Applies the opioid factor from Nalbuphine + * Author: Cplhardcore + * Handles the overdose effect of Nalbuphine * * Arguments: * 0: Patient @@ -10,7 +10,7 @@ * None * * Example: - * [player, "Leftleg", 1] call kat_pharma_fnc_treatmentAdvanced_NalbuphineLocal; + * [player] call kat_pharma_fnc_treatmentAdvanced_NalbuphineOverdoseLocal; * * Public: No */ diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_NaloxoneOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_NaloxoneOverdoseLocal.sqf index 8a8dc27af..bca14bb6d 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_NaloxoneOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_NaloxoneOverdoseLocal.sqf @@ -1,7 +1,7 @@ #include "..\script_component.hpp" /* - * Author: Mazinski.H - * Locates and Removes one opioid after the administration of Naloxone. + * Author: Cplhardcore + * Handles the overdose effect of Naloxone. * * Arguments: * 0: Patient @@ -10,7 +10,7 @@ * None * * Example: - * [player] call kat_pharma_fnc_treatmentAdvanced_NaloxoneLocal; + * [player] call kat_pharma_fnc_treatmentAdvanced_NaloxoneOverdoseLocal; * * Public: No */ diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_NitroglycerinOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_NitroglycerinOverdoseLocal.sqf index b33602b25..87362c55c 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_NitroglycerinOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_NitroglycerinOverdoseLocal.sqf @@ -1,7 +1,7 @@ #include "..\script_component.hpp" /* - * Author: Mazinski.H - * Locates and Removes one opioid after the administration of Naloxone. + * Author: Cplhardcore + * Handles the overdose effect of Nitroglycerin. * * Arguments: * 0: Patient @@ -10,7 +10,7 @@ * None * * Example: - * [player] call kat_pharma_fnc_treatmentAdvanced_NaloxoneLocal; + * [player] call kat_pharma_fnc_treatmentAdvanced_NitroglycerinOverdoseLocal; * * Public: No */ diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_NorepinephrineOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_NorepinephrineOverdoseLocal.sqf index c1a8d9136..25ebd1b92 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_NorepinephrineOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_NorepinephrineOverdoseLocal.sqf @@ -10,7 +10,7 @@ * None * * Example: - * [player] call kat_pharma_fnc_treatmentAdvanced_NorepinephrineLocal; + * [player] call kat_pharma_fnc_treatmentAdvanced_NorepinephrineOverdoseLocal; * * Public: No */ diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_PenthroxOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_PenthroxOverdoseLocal.sqf index bced50e74..075eb6fa6 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_PenthroxOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_PenthroxOverdoseLocal.sqf @@ -1,7 +1,7 @@ #include "..\script_component.hpp" /* - * Author: Blue - * Begins Penthrox Inhaler use + * Author: Cplhardcore + * Handles the overdose effect of Penthrox * * Arguments: * 0: Medic @@ -15,7 +15,7 @@ * None * * Example: - * [player, cursorObject, "RightArm", classname, objNull, "kat_Penthrox"] call kat_pharma_fnc_treatmentAdvanced_Penthrox; + * [player] call kat_pharma_fnc_treatmentAdvanced_PenthroxOverdoseLocal; * * Public: No */ diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_PervitinOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_PervitinOverdoseLocal.sqf index 6d8fdef8e..16744f700 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_PervitinOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_PervitinOverdoseLocal.sqf @@ -1,7 +1,7 @@ #include "..\script_component.hpp" /* - * Author: Miss Heda, - * Contributers: YonV, MiszczuZPolski + * Author: Cplhardcore + * Handles the overdose effect of Pervatin * * * Arguments: @@ -11,7 +11,7 @@ * None * * Example: - * [player] call kat_pharma_fnc_treatmentAdvanced_PervitinLocal; + * [player] call kat_pharma_fnc_treatmentAdvanced_PervitinOverdoseLocal; * * Public: No */ diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_PhenylephrineOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_PhenylephrineOverdoseLocal.sqf index 33790b791..6ae0171de 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_PhenylephrineOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_PhenylephrineOverdoseLocal.sqf @@ -1,15 +1,16 @@ #include "..\script_component.hpp" /* - * Author: Blue - * Begins Penthrox Inhaler use + * Author: Cplhardcore + * Handles the overdose effect of Phenylephrine * * Arguments: * 0: Patient + * Return Value: * None * * Example: - * [player, cursorObject, "RightArm", classname, objNull, "kat_Penthrox"] call kat_pharma_fnc_treatmentAdvanced_Penthrox; + * [player] call kat_pharma_fnc_treatmentAdvanced_PhenylephrineOverdoseLocal; * * Public: No */ diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_TXAOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_TXAOverdoseLocal.sqf index 8a2eaf8ae..ba613a193 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_TXAOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_TXAOverdoseLocal.sqf @@ -1,7 +1,7 @@ #include "..\script_component.hpp" /* * Author: Cplhardcore - * causes TXA overdose effect + * Handles the overdose effect of TXA * * Arguments: * 0: Medic From 70ddc2b335d406425cbd279d12946eb0f5c269a1 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Mon, 18 Nov 2024 15:22:06 -0800 Subject: [PATCH 144/149] why are you still here --- addons/pharma/notepad2 | 23 ----------------------- 1 file changed, 23 deletions(-) delete mode 100644 addons/pharma/notepad2 diff --git a/addons/pharma/notepad2 b/addons/pharma/notepad2 deleted file mode 100644 index 82213c303..000000000 --- a/addons/pharma/notepad2 +++ /dev/null @@ -1,23 +0,0 @@ -[QGVAR(adenosineOverdoseLocal), LINKFUNC(treatmentAdvanced_AdenosineOverdoseLocal)] call CBA_fnc_addEventHandler; -[QGVAR(amiodaroneOverdoseLocal), LINKFUNC(treatmentAdvanced_AmiodaroneOverdoseLocal)] call CBA_fnc_addEventHandler; -[QGVAR(atropineOverdoseLocal), LINKFUNC(treatmentAdvanced_AtropineOverdoseLocal)] call CBA_fnc_addEventHandler; -[QGVAR(caffeineOverdoseLocal), LINKFUNC(treatmentAdvanced_CaffeineOverdoseLocal)] call CBA_fnc_addEventHandler; -[QGVAR(carbonateOverdoseLocal), LINKFUNC(treatmentAdvanced_CarbonateOverdoseLocal)] call CBA_fnc_addEventHandler; -[QGVAR(CWMPOverdoseLocal), LINKFUNC(treatmentAdvanced_CWMPOverdoseLocal)] call CBA_fnc_addEventHandler; -[QGVAR(eacaOverdoseLocal), LINKFUNC(treatmentAdvanced_EACAOverdoseLocal)] call CBA_fnc_addEventHandler; -[QGVAR(epinephrineOverdoseLocal), LINKFUNC(treatmentAdvanced_EpinephrineOverdoseLocal)] call CBA_fnc_addEventHandler; -[QGVAR(etomidateOverdoseLocal), LINKFUNC(treatmentAdvanced_EtomidateOverdoseLocal)] call CBA_fnc_addEventHandler; -[QGVAR(fentanylOverdoseLocal), LINKFUNC(treatmentAdvanced_FentanylOverdoseLocal)] call CBA_fnc_addEventHandler; -[QGVAR(flumazenilOverdoseLocal), LINKFUNC(treatmentAdvanced_FlumazenilOverdoseLocal)] call CBA_fnc_addEventHandler; -[QGVAR(ketamineOverdoseLocal), LINKFUNC(treatmentAdvanced_KetamineOverdoseLocal)] call CBA_fnc_addEventHandler; -[QGVAR(lidocaineOverdoseLocal), LINKFUNC(treatmentAdvanced_LidocaineOverdoseLocal)] call CBA_fnc_addEventHandler; -[QGVAR(lorazapamOverdoseLocal), LINKFUNC(treatmentAdvanced_LorazapamOverdoseLocal)] call CBA_fnc_addEventHandler; -[QGVAR(morphineOverdoseLocal), LINKFUNC(treatmentAdvanced_MorphineOverdoseLocal)] call CBA_fnc_addEventHandler; -[QGVAR(nalbuphineOverdoseLocal), LINKFUNC(treatmentAdvanced_NalbuphineOverdoseLocal)] call CBA_fnc_addEventHandler; -[QGVAR(naloxoneOverdoseLocal), LINKFUNC(treatmentAdvanced_NaloxoneOverdoseLocal)] call CBA_fnc_addEventHandler; -[QGVAR(nitroglycerinOverdoseLocal), LINKFUNC(treatmentAdvanced_NitroglycerineOverdoseLocal)] call CBA_fnc_addEventHandler; -[QGVAR(norepinephrineOverdoseLocal), LINKFUNC(treatmentAdvanced_NorepinephrineOverdoseLocal)] call CBA_fnc_addEventHandler; -[QGVAR(penthroxOverdoseLocal), LINKFUNC(treatmentAdvanced_PenthroxOverdoseLocal)] call CBA_fnc_addEventHandler; -[QGVAR(pervitinOverdoseLocal), LINKFUNC(treatmentAdvanced_PervitinOverdoseLocal)] call CBA_fnc_addEventHandler; -[QGVAR(phenylephrineOverdoseLocal), LINKFUNC(treatmentAdvanced_PhenylephrinOverdoseLocal)] call CBA_fnc_addEventHandler; -[QGVAR(txaOverdoseLocal), LINKFUNC(treatmentAdvanced_TXAOverdoseLocal)] call CBA_fnc_addEventHandler; \ No newline at end of file From d454df257bfc2be124130cf725009055781bcc14 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Mon, 18 Nov 2024 15:29:09 -0800 Subject: [PATCH 145/149] small update --- addons/vitals/functions/fnc_handleOxygenFunction.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/vitals/functions/fnc_handleOxygenFunction.sqf b/addons/vitals/functions/fnc_handleOxygenFunction.sqf index 4bad19a87..0ef055e1c 100644 --- a/addons/vitals/functions/fnc_handleOxygenFunction.sqf +++ b/addons/vitals/functions/fnc_handleOxygenFunction.sqf @@ -50,7 +50,7 @@ if (IN_CRDC_ARRST(_unit)) then { private _tidalVolume = GET_KAT_SURFACE_AREA(_unit); // Respiratory Rate is supressed by Opioids - _respiratoryRate = [(((_demandVentilation / _tidalVolume) - (_opioidDepression * 5)) * _respiratoryRateMult) min MAXIMUM_RR, 20] select (_unit getVariable [QEGVAR(breathing,BVMInUse), false]); + _respiratoryRate = [(((_demandVentilation / _tidalVolume) - (_opioidDepression * 5))) min MAXIMUM_RR, 20] select (_unit getVariable [QEGVAR(breathing,BVMInUse), false]); // If respiratory rate is low due to PaCO2, it starts increasing faster to compensate if (_previousCyclePaco2 > 50) then { _respiratoryRate = (_respiratoryRate + ((_previousCyclePaco2 - 50) * 0.2)) min MAXIMUM_RR}; From 15db74ffc8d0121af6c33f4de5d2b2126aaba68d Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Thu, 21 Nov 2024 22:57:58 -0800 Subject: [PATCH 146/149] Adds WUAE to some overdoses --- ...eatmentAdvanced_AdenosineOverdoseLocal.sqf | 11 ++++++-- ...reatmentAdvanced_AtropineOverdoseLocal.sqf | 27 ++++++++++++------- ...nc_treatmentAdvanced_CWMPOverdoseLocal.sqf | 11 ++++++-- ...reatmentAdvanced_CaffeineOverdoseLocal.sqf | 11 ++++++-- 4 files changed, 44 insertions(+), 16 deletions(-) diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_AdenosineOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_AdenosineOverdoseLocal.sqf index ac64593fe..fdbf24913 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_AdenosineOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_AdenosineOverdoseLocal.sqf @@ -47,7 +47,14 @@ params ["_patient"]; _patient setVariable [QEGVAR(breathing,lungSurfaceArea), _surfaceArea]; }, 15, [_patient]] call CBA_fnc_addPerFrameHandler; }, _patient, 15] call CBA_fnc_waitAndExecute; -[{ +private _medStack = [_patient, false] call ACEFUNC(medical_treatment,getAllMedicationCount); +private _medIndex = _medStack find "Adenosine"; +private _hasMed = false; +if (_medIndex > -1) then { + private _medCount = _medStack select (_medIndex + 1); + _hasMed = (_medCount > 0); +}; +[{_hasmed, {}, params ["_patient"]; private _AdenosineTarget = 0; [{ @@ -62,4 +69,4 @@ params ["_patient"]; private _surfaceArea = (_patient getVariable [QEGVAR(breathing,lungSurfaceArea), 400]) + 10; _patient setVariable [QEGVAR(breathing,lungSurfaceArea), _surfaceArea]; }, 10, [_patient]] call CBA_fnc_addPerFrameHandler; -}, _patient, 300] call CBA_fnc_waitAndExecute; \ No newline at end of file +}, _patient, 120] call CBA_fnc_waitUntilAndExecute; \ No newline at end of file diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_AtropineOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_AtropineOverdoseLocal.sqf index 3a3d6449b..e85a53b86 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_AtropineOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_AtropineOverdoseLocal.sqf @@ -17,21 +17,21 @@ params ["_patient"]; [{ params ["_patient"]; - private _adenosineOverdoseTarget = 0; + private _atropineOverdoseTarget = 0; [{ params ["_patient", "_idPFH"]; if (!(alive _patient)) exitWith { [_idPFH] call CBA_fnc_removePerFrameHandler; }; - _adenosineOverdoseTarget = _adenosineOverdoseTarget + 1; - if (_adenosineOverdoseTarget > 12) exitWith { + _atropineOverdoseTarget = _atropineOverdoseTarget + 1; + if (_atropineOverdoseTarget > 12) exitWith { if (random(100) < 15) then { [{ params ["_args", "_idPFH"]; _args params ["_patient"]; private _ht = _patient getVariable [QEGVAR(circulation,ht), []]; - if ((_ht findIf {_x isEqualTo "adenosineOD"}) == -1) then { - _ht pushBack "adenosineOD"; + if ((_ht findIf {_x isEqualTo "atropineOD"}) == -1) then { + _ht pushBack "atropineOD"; if (_patient getVariable [QEGVAR(circulation,cardiacArrestType), 0] == 0) then { [QACEGVAR(medical,FatalVitals), _patient] call CBA_fnc_localEvent; @@ -49,16 +49,23 @@ params ["_patient"]; _patient setVariable [QEGVAR(breathing,respiratoryRateMultiplier), _rr]; }, 15, [_patient]] call CBA_fnc_addPerFrameHandler; }, _patient, 15] call CBA_fnc_waitAndExecute; -[{ +private _medStack = [_patient, false] call ACEFUNC(medical_treatment,getAllMedicationCount); +private _medIndex = _medStack find "Atropine"; +private _hasMed = false; +if (_medIndex > -1) then { + private _medCount = _medStack select (_medIndex + 1); + _hasMed = (_medCount > 0); +}; +[{_hasmed, {}, params ["_patient"]; - private _AdenosineTarget = 0; + private _atropineTarget = 0; [{ params ["_patient", "_idPFH"]; if (!(alive _patient)) exitWith { [_idPFH] call CBA_fnc_removePerFrameHandler; }; - _AdenosineTarget = _AdenosineTarget + 1; - if (_AdenosineTarget > 18) exitWith { + _atropineTarget = _atropineTarget + 1; + if (_atropineTarget > 18) exitWith { [_idPFH] call CBA_fnc_removePerFrameHandler; }; private _depression = _unit getVariable [QEGVAR(pharma,opioidDepressionFactor)] - 0.05; @@ -66,4 +73,4 @@ params ["_patient"]; private _rr = _patient getVariable [QEGVAR(breathing,respiratoryRateMultiplier), 1] + 0.07; _patient setVariable [QEGVAR(breathing,respiratoryRateMultiplier), _rr]; }, 10, [_patient]] call CBA_fnc_addPerFrameHandler; -}, _patient, 300] call CBA_fnc_waitAndExecute; +}, _patient, 0] call CBA_fnc_waitUntilAndExecute; diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_CWMPOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_CWMPOverdoseLocal.sqf index 0eabc9133..47a6fb2ab 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_CWMPOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_CWMPOverdoseLocal.sqf @@ -34,7 +34,14 @@ if GVAR(kidneyAction) then }, 10, [_patient]] call CBA_fnc_addPerFrameHandler; }, _patient, 15] call CBA_fnc_waitAndExecute; }; -[{ +private _medStack = [_patient, false] call ACEFUNC(medical_treatment,getAllMedicationCount); +private _medIndex = _medStack find "CWMP"; +private _hasMed = false; +if (_medIndex > -1) then { + private _medCount = _medStack select (_medIndex + 1); + _hasMed = (_medCount > 0); +}; +[{_hasmed, {}, params ["_patient"]; private _bpTarget = 0; [{ @@ -50,4 +57,4 @@ if GVAR(kidneyAction) then private _factorstoremove = 1; _patient setVariable [QGVAR(coagulationFactor), (_coagulationFactor - _factorstoremove), true]; }, 15, [_patient]] call CBA_fnc_addPerFrameHandler; -}, _patient, 15] call CBA_fnc_waitAndExecute; \ No newline at end of file +}, _patient, 15] call CBA_fnc_waitUntilAndExecute; \ No newline at end of file diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_CaffeineOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_CaffeineOverdoseLocal.sqf index 7d3c521db..49059ffc0 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_CaffeineOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_CaffeineOverdoseLocal.sqf @@ -31,7 +31,14 @@ params ["_patient"]; _patient setVariable [VAR_HEART_RATE, _hrAdd, true]; }, 10, [_patient]] call CBA_fnc_addPerFrameHandler; }, _patient, 10] call CBA_fnc_waitAndExecute; -[{ +private _medStack = [_patient, false] call ACEFUNC(medical_treatment,getAllMedicationCount); +private _medIndex = _medStack find "Caffeine"; +private _hasMed = false; +if (_medIndex > -1) then { + private _medCount = _medStack select (_medIndex + 1); + _hasMed = (_medCount > 0); +}; +[{_hasmed, {}, params ["_patient"]; private _CaffineOverdoseTarget = 0; [{ @@ -47,4 +54,4 @@ params ["_patient"]; private _hrAdd = (_hr - 3); _patient setVariable [VAR_HEART_RATE, _hrAdd, true]; }, 10, [_patient]] call CBA_fnc_addPerFrameHandler; -}, _patient, 150] call CBA_fnc_waitAndExecute; \ No newline at end of file +}, _patient, 150] call CBA_fnc_waitUntilAndExecute; \ No newline at end of file From 8a11d727d1881a399ebd0aa0b982e7437f65520e Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Thu, 21 Nov 2024 23:09:44 -0800 Subject: [PATCH 147/149] Makes HR effect medications --- addons/pharma/functions/fnc_medicationLocal.sqf | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/addons/pharma/functions/fnc_medicationLocal.sqf b/addons/pharma/functions/fnc_medicationLocal.sqf index f7c73e024..33d14341a 100644 --- a/addons/pharma/functions/fnc_medicationLocal.sqf +++ b/addons/pharma/functions/fnc_medicationLocal.sqf @@ -83,12 +83,18 @@ private _maxbloodloss = 1; private _minbloodloss = 6000; private _minDrugMult = 1; private _maxDrugMult = 2; - private _drugMult = _minDrugMult + ((_bloodloss - _maxbloodloss) / (_minbloodloss - _maxbloodloss)) * (_maxDrugMult - _minDrugMult); +private _maxHR = 160; +private _minHR = 1; +private _minHRMult = 0.1; +private _maxHRMult = 1.6; +private _hrMult = _minHRMult + ((_heartRate - _maxHR) / (_minHR - _maxHR)) * (_maxHRMult - _minHRMult); + + private _painReduce = GET_NUMBER(_medicationConfig >> "painReduce",getNumber (_defaultConfig >> "painReduce")) / _drugMult; private _timeInSystem = GET_NUMBER(_medicationConfig >> "timeInSystem",getNumber (_defaultConfig >> "timeInSystem")) * _drugMult; -private _timeTillMaxEffect = GET_NUMBER(_medicationConfig >> "timeTillMaxEffect",getNumber (_defaultConfig >> "timeTillMaxEffect")) * _drugMult; +private _timeTillMaxEffect = GET_NUMBER(_medicationConfig >> "timeTillMaxEffect",getNumber (_defaultConfig >> "timeTillMaxEffect")) * _hrMult; private _viscosityChange = GET_NUMBER(_medicationConfig >> "viscosityChange",getNumber (_defaultConfig >> "viscosityChange")) * _drugMult; private _alphaFactor = GET_NUMBER(_medicationConfig >> "alphaFactor",getNumber (_defaultConfig >> "alphaFactor")) * _drugMult; private _opioidRelief = GET_NUMBER(_medicationConfig >> "opioidRelief",getNumber (_defaultConfig >> "opioidRelief")) * _drugMult; From 76d40a07012e97dc7336e4afac975edb2fa3cdb6 Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Fri, 22 Nov 2024 00:03:42 -0800 Subject: [PATCH 148/149] fixes --- .../functions/fnc_treatmentAdvanced_AdenosineOverdoseLocal.sqf | 2 +- .../functions/fnc_treatmentAdvanced_AtropineOverdoseLocal.sqf | 2 +- .../functions/fnc_treatmentAdvanced_CWMPOverdoseLocal.sqf | 2 +- .../functions/fnc_treatmentAdvanced_CaffeineOverdoseLocal.sqf | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_AdenosineOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_AdenosineOverdoseLocal.sqf index fdbf24913..cd3771f89 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_AdenosineOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_AdenosineOverdoseLocal.sqf @@ -54,7 +54,7 @@ if (_medIndex > -1) then { private _medCount = _medStack select (_medIndex + 1); _hasMed = (_medCount > 0); }; -[{_hasmed, {}, +[_hasmed, {},{ params ["_patient"]; private _AdenosineTarget = 0; [{ diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_AtropineOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_AtropineOverdoseLocal.sqf index e85a53b86..83f6a8387 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_AtropineOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_AtropineOverdoseLocal.sqf @@ -56,7 +56,7 @@ if (_medIndex > -1) then { private _medCount = _medStack select (_medIndex + 1); _hasMed = (_medCount > 0); }; -[{_hasmed, {}, +[_hasmed, {}, { params ["_patient"]; private _atropineTarget = 0; [{ diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_CWMPOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_CWMPOverdoseLocal.sqf index 47a6fb2ab..ce0d00ee9 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_CWMPOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_CWMPOverdoseLocal.sqf @@ -41,7 +41,7 @@ if (_medIndex > -1) then { private _medCount = _medStack select (_medIndex + 1); _hasMed = (_medCount > 0); }; -[{_hasmed, {}, +[_hasmed, {}, { params ["_patient"]; private _bpTarget = 0; [{ diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_CaffeineOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_CaffeineOverdoseLocal.sqf index 49059ffc0..10718f427 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_CaffeineOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_CaffeineOverdoseLocal.sqf @@ -38,7 +38,7 @@ if (_medIndex > -1) then { private _medCount = _medStack select (_medIndex + 1); _hasMed = (_medCount > 0); }; -[{_hasmed, {}, +[_hasmed, {}, { params ["_patient"]; private _CaffineOverdoseTarget = 0; [{ From 4c3606e8d9b6d87310e9b30eb420aa664ae04b2d Mon Sep 17 00:00:00 2001 From: Cplhardcore <135324281+Cplhardcore@users.noreply.github.com> Date: Sat, 23 Nov 2024 04:30:31 -0800 Subject: [PATCH 149/149] adds counteractions and limits to lung surface area --- ...nc_treatmentAdvanced_EACAOverdoseLocal.sqf | 8 +++++-- ...reatmentAdvanced_PenthroxOverdoseLocal.sqf | 23 +++++++++++++++++++ ...fnc_treatmentAdvanced_TXAOverdoseLocal.sqf | 8 +++++-- 3 files changed, 35 insertions(+), 4 deletions(-) diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_EACAOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_EACAOverdoseLocal.sqf index 3c8b5f449..0a59ab7a0 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_EACAOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_EACAOverdoseLocal.sqf @@ -43,8 +43,12 @@ params ["_patient"]; }; [_idPFH] call CBA_fnc_removePerFrameHandler; }; - private _surfaceArea = (_patient getVariable [QEGVAR(breathing,lungSurfaceArea), 400]) - 10; - _patient setVariable [QEGVAR(breathing,lungSurfaceArea), _surfaceArea]; + private _surface = (_patient getVariable [QEGVAR(breathing,lungSurfaceArea), 400]); + if (_surface < 150) then { + } else { + private _surfaceArea = _surface - 10; + _patient setVariable [QEGVAR(breathing,lungSurfaceArea), _surfaceArea]; + }; private _coagulationFactor = (_patient getVariable [QGVAR(coagulationFactor), 30]); private _factorstoremove = 1; _patient setVariable [QGVAR(coagulationFactor), (_coagulationFactor - _factorstoremove), true]; diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_PenthroxOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_PenthroxOverdoseLocal.sqf index 075eb6fa6..7bcd7a42f 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_PenthroxOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_PenthroxOverdoseLocal.sqf @@ -46,4 +46,27 @@ params ["_patient"]; if ((random 1000) < 1) then {_patient setDamage 1;}; }, 20, [_patient]] call CBA_fnc_addPerFrameHandler; }, _patient, 20] call CBA_fnc_waitAndExecute; +private _medStack = [_patient, false] call ACEFUNC(medical_treatment,getAllMedicationCount); +private _medIndex = _medStack find "Penthrox"; +private _hasMed = false; +if (_medIndex > -1) then { + private _medCount = _medStack select (_medIndex + 1); + _hasMed = (_medCount > 0); +}; +[_hasmed, {}, { + params ["_patient"]; + private _PenthroxOverdoseTarget = 0; + [{ + params ["_patient", "_idPFH"]; + if (!(alive _patient)) exitWith { + [_idPFH] call CBA_fnc_removePerFrameHandler; + }; + _PenthroxOverdoseTarget = _PenthroxOverdoseTarget + 1; + if (_PenthroxOverdoseTarget > 6) exitWith { + [_idPFH] call CBA_fnc_removePerFrameHandler; + }; + private _surfaceArea = (_patient getVariable [QGVAR(lungSurfaceArea), 400]) + 5; + _patient setVariable [QGVAR(lungSurfaceArea), _surfaceArea]; + }, 60, [_patient]] call CBA_fnc_addPerFrameHandler; +}, _patient, 150] call CBA_fnc_waitUntilAndExecute; diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_TXAOverdoseLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_TXAOverdoseLocal.sqf index ba613a193..7f2b47c17 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_TXAOverdoseLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_TXAOverdoseLocal.sqf @@ -46,8 +46,12 @@ params ["_patient"]; }; [_idPFH] call CBA_fnc_removePerFrameHandler; }; - private _surfaceArea = (_patient getVariable [QEGVAR(breathing,lungSurfaceArea), 400]) - 10; - _patient setVariable [QEGVAR(breathing,lungSurfaceArea), _surfaceArea]; + private _surface = (_patient getVariable [QEGVAR(breathing,lungSurfaceArea), 400]); + if (_surface < 150) then { + } else { + private _surfaceArea = _surface - 10; + _patient setVariable [QEGVAR(breathing,lungSurfaceArea), _surfaceArea]; + }; private _coagulationFactor = (_patient getVariable [QGVAR(coagulationFactor), 30]); private _factorstoremove = 1; _patient setVariable [QGVAR(coagulationFactor), (_coagulationFactor - _factorstoremove), true];