diff --git a/addons/medical/ACE_Settings.hpp b/addons/medical/ACE_Settings.hpp index 09680dbbdb..9379b981eb 100644 --- a/addons/medical/ACE_Settings.hpp +++ b/addons/medical/ACE_Settings.hpp @@ -1,19 +1,4 @@ class ACE_Settings { - class GVAR(medicSetting) { - category = CSTRING(Category_Medical); - displayName = CSTRING(MedicalSettings_medicSetting_DisplayName); - description = CSTRING(MedicalSettings_medicSetting_Description); - value = 0; - typeName = "SCALAR"; - values[] = {"Disabled", "Normal", "Advanced"}; - }; - class GVAR(increaseTrainingInLocations) { - category = CSTRING(Category_Medical); - displayName = CSTRING(MedicalSettings_increaseTrainingInLocations_DisplayName); - description = CSTRING(MedicalSettings_increaseTrainingInLocations_Description); - value = 0; - typeName = "BOOL"; - }; /* @todo class GVAR(enableFor) { category = CSTRING(Category_Medical); @@ -24,50 +9,6 @@ class ACE_Settings { values[] = {"Players only", "Players and AI"}; }; */ - class GVAR(bleedingCoefficient) { - category = CSTRING(Category_Medical); - displayName = CSTRING(MedicalSettings_bleedingCoefficient_DisplayName); - description = CSTRING(MedicalSettings_bleedingCoefficient_Description); - typeName = "SCALAR"; - value = 1; - sliderSettings[] = {0, 25, 1, 1}; - }; - class GVAR(painCoefficient) { - category = CSTRING(Category_Medical); - displayName = CSTRING(MedicalSettings_painCoefficient_DisplayName); - description = CSTRING(MedicalSettings_painCoefficient_Description); - typeName = "SCALAR"; - value = 1; - sliderSettings[] = {0, 25, 1, 1}; - }; - class GVAR(advancedBandages) { - category = CSTRING(Category_Medical); - displayName = CSTRING(MedicalSettings_advancedBandages_DisplayName); - description = CSTRING(MedicalSettings_advancedBandages_Description); - typeName = "BOOL"; - value = 1; - }; - class GVAR(advancedMedication) { - category = CSTRING(Category_Medical); - displayName = CSTRING(MedicalSettings_advancedMedication_DisplayName); - description = CSTRING(MedicalSettings_advancedMedication_Description); - typeName = "BOOL"; - value = 1; - }; - class GVAR(advancedDiagnose) { - category = CSTRING(Category_Medical); - displayName = CSTRING(MedicalSettings_advancedDiagnose_DisplayName); - description = CSTRING(MedicalSettings_advancedDiagnose_Description); - typeName = "BOOL"; - value = 1; - }; - class GVAR(woundReopening) { - category = CSTRING(Category_Medical); - displayName = CSTRING(MedicalSettings_enableAdvancedWounds_DisplayName); - description = CSTRING(MedicalSettings_enableAdvancedWounds_Description); - typeName = "BOOL"; - value = 1; - }; /* @todo class GVAR(enableVehicleCrashes) { category = CSTRING(Category_Medical); @@ -77,168 +18,6 @@ class ACE_Settings { value = 1; }; */ - class GVAR(enableScreams) { - category = CSTRING(Category_Medical); - displayName = CSTRING(MedicalSettings_enableScreams_DisplayName); - description = CSTRING(MedicalSettings_enableScreams_Description); - typeName = "BOOL"; - value = 1; - }; - class GVAR(showPainInMenu) { - category = CSTRING(Category_Medical); - displayName = CSTRING(MedicalSettings_showPainInMenu_DisplayName); - description = CSTRING(MedicalSettings_showPainInMenu_Description); - typeName = "BOOL"; - value = 0; - }; - class GVAR(playerDamageThreshold) { - category = CSTRING(Category_Medical); - displayName = CSTRING(MedicalSettings_playerDamageThreshold_DisplayName); - description = CSTRING(MedicalSettings_playerDamageThreshold_Description); - typeName = "SCALAR"; - value = 1.0; - sliderSettings[] = {0, 25, 1, 2}; - }; - class GVAR(AIDamageThreshold) { - category = CSTRING(Category_Medical); - displayName = CSTRING(MedicalSettings_AIDamageThreshold_DisplayName); - description = CSTRING(MedicalSettings_AIDamageThreshold_Description); - typeName = "SCALAR"; - value = 1.0; - sliderSettings[] = {0, 25, 1, 2}; - }; - class GVAR(fatalInjuryCondition) { - category = CSTRING(Category_Medical); - displayName = CSTRING(MedicalSettings_fatalInjuryCondition_DisplayName); - description = CSTRING(MedicalSettings_fatalInjuryCondition_Description); - value = 0; - typeName = "SCALAR"; - values[] = {"Always", "In Cardiac Arrest", "Never"}; - }; - class GVAR(fatalInjuryConditionAI) { - category = CSTRING(Category_Medical); - displayName = CSTRING(MedicalSettings_fatalInjuryConditionAI_DisplayName); - description = CSTRING(MedicalSettings_fatalInjuryConditionAI_Description); - value = 1; - typeName = "BOOL"; - }; - class GVAR(unconsciousConditionAI) { - category = CSTRING(Category_Medical); - displayName = CSTRING(MedicalSettings_unconsciousConditionAI_DisplayName); - description = CSTRING(MedicalSettings_unconsciousConditionAI_Description); - value = 1; - typeName = "BOOL"; - }; - class GVAR(cardiacArrestTime) { - category = CSTRING(Category_Medical); - displayName = CSTRING(MedicalSettings_cardiacArrestTime_DisplayName); - description = CSTRING(MedicalSettings_cardiacArrestTime_Description); - value = 30; - typeName = "SCALAR"; - sliderSettings[] = {1, 3600, 30, 0}; - }; - class GVAR(medicSetting_PainVisualization) { - category = CSTRING(Category_Medical); - displayName = CSTRING(MedicalSettings_medicSetting_PainVisualization_DisplayName); - description = CSTRING(MedicalSettings_medicSetting_PainVisualization_Description); - typeName = "SCALAR"; - value = 0; - values[] = {"Anyone", "Medics only", "Doctors only"}; - }; - class GVAR(medicSetting_Epi) { - category = CSTRING(Category_Medical); - displayName = CSTRING(MedicalSettings_medicSetting_Epi_DisplayName); - description = CSTRING(MedicalSettings_medicSetting_Epi_Description); - typeName = "SCALAR"; - value = 0; - values[] = {"Anyone", "Medics only", "Doctors only"}; - }; - class GVAR(medicSetting_PAK) { - category = CSTRING(Category_Medical); - displayName = CSTRING(MedicalSettings_medicSetting_PAK_DisplayName); - description = CSTRING(MedicalSettings_medicSetting_PAK_Description); - typeName = "SCALAR"; - value = 0; - values[] = {"Anyone", "Medics only", "Doctors only"}; - }; - class GVAR(medicSetting_SurgicalKit) { - category = CSTRING(Category_Medical); - displayName = CSTRING(MedicalSettings_medicSetting_SurgicalKit_DisplayName); - description = CSTRING(MedicalSettings_medicSetting_SurgicalKit_Description); - typeName = "SCALAR"; - value = 0; - values[] = {"Anyone", "Medics only", "Doctors only"}; - }; - class GVAR(consumeItem_PAK) { - category = CSTRING(Category_Medical); - displayName = CSTRING(MedicalSettings_consumeItem_PAK_DisplayName); - description = CSTRING(MedicalSettings_consumeItem_PAK_Description); - typeName = "SCALAR"; - value = 1; - values[] = {"No", "Yes"}; - }; - class GVAR(consumeItem_SurgicalKit) { - category = CSTRING(Category_Medical); - displayName = CSTRING(MedicalSettings_consumeItem_SurgicalKit_DisplayName); - description = CSTRING(MedicalSettings_consumeItem_SurgicalKit_Description); - typeName = "SCALAR"; - value = 1; - values[] = {"No", "Yes"}; - }; - class GVAR(useLocation_Epi) { - category = CSTRING(Category_Medical); - displayName = CSTRING(BasicMedicalSettings_useLocation_Epi_DisplayName); - description = CSTRING(BasicMedicalSettings_useLocation_Epi_Description); - typeName = "SCALAR"; - value = 0; - values[] = {ECSTRING(common,Anywhere), ECSTRING(common,Vehicle), CSTRING(MedicalSettings_facility), CSTRING(MedicalSettings_vehicleAndFacility), ECSTRING(common,Disabled)}; - }; - class GVAR(useLocation_PAK) { - category = CSTRING(Category_Medical); - displayName = CSTRING(MedicalSettings_useLocation_PAK_DisplayName); - description = CSTRING(MedicalSettings_useLocation_PAK_Description); - typeName = "SCALAR"; - value = 0; - values[] = {ECSTRING(common,Anywhere), ECSTRING(common,Vehicle), CSTRING(MedicalSettings_facility), CSTRING(MedicalSettings_vehicleAndFacility), ECSTRING(common,Disabled)}; - }; - class GVAR(useLocation_SurgicalKit) { - category = CSTRING(Category_Medical); - displayName = CSTRING(MedicalSettings_useLocation_SurgicalKit_DisplayName); - description = CSTRING(MedicalSettings_useLocation_SurgicalKit_Description); - typeName = "SCALAR"; - value = 0; - values[] = {ECSTRING(common,Anywhere), ECSTRING(common,Vehicle), CSTRING(MedicalSettings_facility), CSTRING(MedicalSettings_vehicleAndFacility), ECSTRING(common,Disabled)}; - }; - class GVAR(allowUnconsciousAnimationOnTreatment) { - category = CSTRING(Category_Medical); - displayName = CSTRING(MedicalSettings_allowUnconsciousAnimationOnTreatment_DisplayName); - typeName = "BOOL"; - value = 0; - }; - class GVAR(menuTypeStyle) { - category = CSTRING(Category_Medical); - displayName = CSTRING(menuTypeDisplay); - description = CSTRING(menuTypeDescription); - typeName = "SCALAR"; - value = 0; - values[] = {CSTRING(useSelection), CSTRING(useRadial), "Disabled"}; - isClientSettable = 1; - }; - class GVAR(ivFlowRate) { - category = CSTRING(Category_Medical); - displayName = CSTRING(MedicalSettings_ivFlowRate_DisplayName); - description = CSTRING(MedicalSettings_ivFlowRate_Description); - typeName = "SCALAR"; - value = 1; - }; - class GVAR(allowSelfIV) { - category = CSTRING(Category_Medical); - displayName = CSTRING(MedicalSettings_allowSelfIV_DisplayName); - description = CSTRING(MedicalSettings_allowSelfIV_Description); - typeName = "SCALAR"; - value = 0; - values[] = {"No", "Yes"}; - }; class GVAR(spontaneousWakeUpChance) { category = CSTRING(Category_Medical); displayName = CSTRING(MedicalSettings_spontaneousWakeUpChance_DisplayName); diff --git a/addons/medical/CfgVehicles.hpp b/addons/medical/CfgVehicles.hpp index c0b22ac78c..424059c8e1 100644 --- a/addons/medical/CfgVehicles.hpp +++ b/addons/medical/CfgVehicles.hpp @@ -1,398 +1,7 @@ class CfgVehicles { class Logic; - class Module_F: Logic { - class ArgumentsBaseUnits { - }; - }; - class ACE_Module; - class ACE_moduleMedicalSettings: ACE_Module { + // Left as dumb logic so that old missions don't error about missing vehicle + class ACE_moduleMedicalSettings: Logic { scope = 1; - displayName = CSTRING(MedicalSettings_Module_DisplayName); - icon = ""; - category = "ACE"; - function = QFUNC(moduleMedicalSettings); - functionPriority = 1; - isGlobal = 1; - author = ECSTRING(common,ACETeam); - - class Arguments { - class medicSetting { - displayName = CSTRING(MedicalSettings_medicSetting_DisplayName); - description = CSTRING(MedicalSettings_medicSetting_Description); - typeName = "NUMBER"; - class values { - class disable { - name = ECSTRING(common,Disabled); - value = 0; - }; - class normal { - name = ECSTRING(common,Normal); - value = 1; - default = 1; - }; - class full { - name = ECSTRING(common,Advanced); - value = 2; - }; - }; - }; - class increaseTrainingInLocations { - displayName = CSTRING(MedicalSettings_increaseTrainingInLocations_DisplayName); - description = CSTRING(MedicalSettings_increaseTrainingInLocations_Description); - typeName = "BOOL"; - defaultValue = 0; - }; - class bleedingCoefficient { - displayName = CSTRING(MedicalSettings_bleedingCoefficient_DisplayName); - description = CSTRING(MedicalSettings_bleedingCoefficient_Description); - typeName = "NUMBER"; - defaultValue = 1; - }; - class painCoefficient { - displayName = CSTRING(MedicalSettings_painCoefficient_DisplayName); - description = CSTRING(MedicalSettings_painCoefficient_Description); - typeName = "NUMBER"; - defaultValue = 1; - }; - - class advancedBandages { - displayName = CSTRING(MedicalSettings_advancedBandages_DisplayName); - description = CSTRING(MedicalSettings_advancedBandages_Description); - typeName = "BOOL"; - defaultValue = 1; - }; - class advancedMedication { - displayName = CSTRING(MedicalSettings_advancedMedication_DisplayName); - description = CSTRING(MedicalSettings_advancedMedication_Description); - typeName = "BOOL"; - defaultValue = 1; - }; - class advancedDiagnose { - displayName = CSTRING(MedicalSettings_advancedDiagnose_DisplayName); - description = CSTRING(MedicalSettings_advancedDiagnose_Description); - typeName = "BOOL"; - defaultValue = 1; - }; - class woundReopening { - displayName = CSTRING(MedicalSettings_enableAdvancedWounds_DisplayName); - description = CSTRING(MedicalSettings_enableAdvancedWounds_Description); - typeName = "BOOL"; - defaultValue = 1; - }; - - class enableScreams { - displayName = CSTRING(MedicalSettings_enableScreams_DisplayName); - description = CSTRING(MedicalSettings_enableScreams_Description); - typeName = "BOOL"; - defaultValue = 1; - }; - class showPainInMenu { - displayName = CSTRING(MedicalSettings_showPainInMenu_DisplayName); - description = CSTRING(MedicalSettings_showPainInMenu_Description); - typeName = "BOOL"; - defaultValue = 0; - }; - class playerDamageThreshold { - displayName = CSTRING(MedicalSettings_playerDamageThreshold_DisplayName); - description = CSTRING(MedicalSettings_playerDamageThreshold_Description); - typeName = "SCALAR"; - defaultValue = 1.05; - }; - class AIDamageThreshold { - displayName = CSTRING(MedicalSettings_AIDamageThreshold_DisplayName); - description = CSTRING(MedicalSettings_AIDamageThreshold_Description); - typeName = "SCALAR"; - defaultValue = 1.05; - }; - class fatalInjuryCondition { - displayName = CSTRING(MedicalSettings_fatalInjuryCondition_DisplayName); - description = CSTRING(MedicalSettings_fatalInjuryCondition_Description); - typeName = "SCALAR"; - class values { - class always { - name = ECSTRING(common,Always); - value = 0; - default = 1; - }; - class incardiacarrest { - name = CSTRING(MedicalSettings_fatalInjuryCondition_InCardiacArrest); - value = 1; - }; - class never { - name = ECSTRING(common,Never); - value = 2; - }; - }; - }; - class fatalInjuryConditionAI { - displayName = CSTRING(MedicalSettings_fatalInjuryConditionAI_DisplayName); - description = CSTRING(MedicalSettings_fatalInjuryConditionAI_Description); - typeName = "BOOL"; - defaultValue = 1; - }; - class unconsciousConditionAI { - displayName = CSTRING(MedicalSettings_unconsciousConditionAI_DisplayName); - description = CSTRING(MedicalSettings_unconsciousConditionAI_Description); - typeName = "BOOL"; - defaultValue = 1; - }; - class cardiacArrestTime { - displayName = CSTRING(MedicalSettings_cardiacArrestTime_DisplayName); - description = CSTRING(MedicalSettings_cardiacArrestTime_Description); - defaultValue = 30; - typeName = "SCALAR"; - }; - class painVisualization { - displayName = CSTRING(MedicalSettings_medicSetting_PainVisualization_DisplayName); - description = CSTRING(MedicalSettings_medicSetting_PainVisualization_Description); - typeName = "SCALAR"; - class values { - class anyone { - name = CSTRING(MedicalSettings_anyone); - value = 0; - default = 1; - }; - class onlymedics { - name = CSTRING(MedicalSettings_Medic); - value = 1; - }; - class onlydoctors { - name = CSTRING(MedicalSettings_Special); - value = 2; - }; - }; - }; - class medicSetting_Epi { - displayName = CSTRING(MedicalSettings_medicSetting_Epi_DisplayName); - description = CSTRING(MedicalSettings_medicSetting_Epi_Description); - typeName = "SCALAR"; - class values { - class anyone { - name = CSTRING(MedicalSettings_anyone); - value = 0; - default = 1; - }; - class onlymedics { - name = CSTRING(MedicalSettings_Medic); - value = 1; - }; - class onlydoctors { - name = CSTRING(MedicalSettings_Special); - value = 2; - }; - }; - }; - class medicSetting_PAK { - displayName = CSTRING(MedicalSettings_medicSetting_PAK_DisplayName); - description = CSTRING(MedicalSettings_medicSetting_PAK_Description); - typeName = "SCALAR"; - class values { - class anyone { - name = CSTRING(MedicalSettings_anyone); - value = 0; - default = 1; - }; - class onlymedics { - name = "Medics only"; - value = 1; - }; - class onlydoctors { - name = CSTRING(MedicalSettings_Special); - value = 2; - }; - }; - }; - class medicSetting_SurgicalKit { - displayName = CSTRING(MedicalSettings_medicSetting_SurgicalKit_DisplayName); - description = CSTRING(MedicalSettings_medicSetting_SurgicalKit_Description); - typeName = "SCALAR"; - class values { - class anyone { - name = CSTRING(MedicalSettings_anyone); - value = 0; - default = 1; - }; - class onlymedics { - name = CSTRING(MedicalSettings_Medic); - value = 1; - }; - class onlydoctors { - name = CSTRING(MedicalSettings_Special); - value = 2; - }; - }; - }; - class consumeItem_PAK { - displayName = CSTRING(MedicalSettings_consumeItem_PAK_DisplayName); - description = CSTRING(MedicalSettings_consumeItem_PAK_Description); - typeName = "SCALAR"; - class values { - class no { - name = ECSTRING(common,No); - value = 0; - }; - class yes { - name = ECSTRING(common,Yes); - value = 1; - default = 1; - }; - }; - }; - class consumeItem_SurgicalKit { - displayName = CSTRING(MedicalSettings_consumeItem_SurgicalKit_DisplayName); - description = CSTRING(MedicalSettings_consumeItem_SurgicalKit_Description); - typeName = "SCALAR"; - class values { - class no { - name = ECSTRING(common,No); - value = 0; - }; - class yes { - name = ECSTRING(common,Yes); - value = 1; - default = 1; - }; - }; - }; - class useLocation_Epi { - displayName = CSTRING(BasicMedicalSettings_useLocation_Epi_DisplayName); - description = CSTRING(BasicMedicalSettings_useLocation_Epi_Description); - typeName = "SCALAR"; - class values { - class anywhere { - name = ECSTRING(common,Anywhere); - value = 0; - default = 1; - }; - class vehicle { - name = ECSTRING(common,Vehicle); - value = 1; - }; - class facility { - name = CSTRING(MedicalSettings_facility); - value = 2; - }; - class vehicleAndFacility { - name = CSTRING(MedicalSettings_vehicleAndFacility); - value = 3; - }; - class disabled { - name = ECSTRING(common,Disabled); - value = 4; - }; - }; - }; - class useLocation_PAK { - displayName = CSTRING(MedicalSettings_useLocation_PAK_DisplayName); - description = CSTRING(MedicalSettings_useLocation_PAK_Description); - typeName = "SCALAR"; - class values { - class anywhere { - name = ECSTRING(common,Anywhere); - value = 0; - default = 1; - }; - class vehicle { - name = ECSTRING(common,Vehicle); - value = 1; - }; - class facility { - name = CSTRING(MedicalSettings_facility); - value = 2; - }; - class vehicleAndFacility { - name = CSTRING(MedicalSettings_vehicleAndFacility); - value = 3; - }; - class disabled { - name = ECSTRING(common,Disabled); - value = 4; - }; - }; - }; - class useLocation_SurgicalKit { - displayName = CSTRING(MedicalSettings_useLocation_SurgicalKit_DisplayName); - description = CSTRING(MedicalSettings_useLocation_SurgicalKit_Description); - typeName = "SCALAR"; - class values { - class anywhere { - name = ECSTRING(common,Anywhere); - value = 0; - default = 1; - }; - class vehicle { - name = ECSTRING(common,Vehicle); - value = 1; - }; - class facility { - name = CSTRING(MedicalSettings_facility); - value = 2; - }; - class vehicleAndFacility { - name = CSTRING(MedicalSettings_vehicleAndFacility); - value = 3; - }; - class disabled { - name = ECSTRING(common,Disabled); - value = 4; - }; - }; - }; - class allowUnconsciousAnimationOnTreatment { - displayName = CSTRING(MedicalSettings_allowUnconsciousAnimationOnTreatment_DisplayName); - description = CSTRING(MedicalSettings_allowUnconsciousAnimationOnTreatment_Description); - typeName = "BOOL"; - defaultValue = 0; - }; - class menuTypeStyle { - displayName = CSTRING(menuTypeDisplay); - description = CSTRING(menuTypeDescription); - typeName = "SCALAR"; - isClientSettable = 1; - class values { - class useSelection { - name = CSTRING(useSelection); - value = 0; - default = 1; - }; - class useRadial { - name = CSTRING(useRadial); - value = 1; - }; - class disabled { - name = ECSTRING(common,Disabled); - value = 1; - }; - }; - }; - class ivFlowRate { - displayName = CSTRING(MedicalSettings_ivFlowRate_DisplayName); - description = CSTRING(MedicalSettings_ivFlowRate_Description); - typeName = "SCALAR"; - defaultValue = 1; - }; - class allowSelfIV { - displayName = CSTRING(MedicalSettings_allowSelfIV_DisplayName); - description = CSTRING(MedicalSettings_allowSelfIV_Description); - typeName = "SCALAR"; - class values { - class no { - name = ECSTRING(common,No); - value = 0; - default = 1; - }; - class yes { - name = ECSTRING(common,Yes); - value = 1; - }; - }; - }; - class spontaneousWakeUpChance { - displayName = CSTRING(MedicalSettings_spontaneousWakeUpChance_DisplayName); - description = CSTRING(MedicalSettings_spontaneousWakeUpChance_Description); - typeName = "SCALAR"; - defaultValue = 0; - }; - }; }; }; diff --git a/addons/medical/XEH_PREP.hpp b/addons/medical/XEH_PREP.hpp index 766e47eac5..215aa03a7b 100644 --- a/addons/medical/XEH_PREP.hpp +++ b/addons/medical/XEH_PREP.hpp @@ -1,6 +1,4 @@ PREP(addDamageToUnit); -PREP(adjustPainLevel); PREP(dev_watchMedicalStats); PREP(getUnitState); -PREP(moduleMedicalSettings); PREP(setUnconscious); diff --git a/addons/medical/functions/fnc_moduleMedicalSettings.sqf b/addons/medical/functions/fnc_moduleMedicalSettings.sqf deleted file mode 100644 index 0d145b6d9a..0000000000 --- a/addons/medical/functions/fnc_moduleMedicalSettings.sqf +++ /dev/null @@ -1,66 +0,0 @@ -#include "script_component.hpp" -/* - * Author: Glowbal - * Module for adjusting the medical damage settings - * - * Arguments: - * 0: The module logic - * 1: units - * 2: activated - * - * Return Value: - * None - * - * Example: - * [LOGIC, [bob, kevin], true] call ACE_medical_fnc_moduleMedicalSettings - * - * Public: No - */ - -params ["_logic", "_units", "_activated"]; - -if !(_activated) exitWith {}; - -[_logic, QGVAR(medicSetting), "medicSetting"] call EFUNC(common,readSettingFromModule); -[_logic, QGVAR(increaseTrainingInLocations), "increaseTrainingInLocations"] call EFUNC(common,readSettingFromModule); - -[_logic, QGVAR(bleedingCoefficient), "bleedingCoefficient"] call EFUNC(common,readSettingFromModule); -[_logic, QGVAR(painCoefficient), "painCoefficient"] call EFUNC(common,readSettingFromModule); -[_logic, QGVAR(advancedMedication), "advancedMedication"] call EFUNC(common,readSettingFromModule); -[_logic, QGVAR(advancedDiagnose), "advancedDiagnose"] call EFUNC(common,readSettingFromModule); -[_logic, QGVAR(woundReopening), "woundReopening"] call EFUNC(common,readSettingFromModule); -[_logic, QGVAR(enableScreams), "enableScreams"] call EFUNC(common,readSettingFromModule); -[_logic, QGVAR(showPainInMenu), "showPainInMenu"] call EFUNC(common,readSettingFromModule); -[_logic, QGVAR(playerDamageThreshold), "playerDamageThreshold"] call EFUNC(common,readSettingFromModule); -[_logic, QGVAR(AIDamageThreshold), "AIDamageThreshold"] call EFUNC(common,readSettingFromModule); -[_logic, QGVAR(fatalInjuryCondition), "fatalInjuryCondition"] call EFUNC(common,readSettingFromModule); -[_logic, QGVAR(fatalInjuryConditionAI), "fatalInjuryConditionAI"] call EFUNC(common,readSettingFromModule); -[_logic, QGVAR(unconsciousConditionAI), "unconsciousConditionAI"] call EFUNC(common,readSettingFromModule); - -[_logic, QGVAR(cardiacArrestTime), "cardiacArrestTime"] call EFUNC(common,readSettingFromModule); -[_logic, QGVAR(medicSetting_PainVisualization), "painVisualization"] call EFUNC(common,readSettingFromModule); -[_logic, QGVAR(medicSetting_Epi), "medicSetting_Epi"] call EFUNC(common,readSettingFromModule); -[_logic, QGVAR(medicSetting_PAK), "medicSetting_PAK"] call EFUNC(common,readSettingFromModule); -[_logic, QGVAR(medicSetting_SurgicalKit), "medicSetting_SurgicalKit"] call EFUNC(common,readSettingFromModule); -[_logic, QGVAR(consumeItem_PAK), "consumeItem_PAK"] call EFUNC(common,readSettingFromModule); - -[_logic, QGVAR(consumeItem_SurgicalKit), "consumeItem_SurgicalKit"] call EFUNC(common,readSettingFromModule); -[_logic, QGVAR(useLocation_Epi), "useLocation_Epi"] call EFUNC(common,readSettingFromModule); -[_logic, QGVAR(useLocation_PAK), "useLocation_PAK"] call EFUNC(common,readSettingFromModule); -[_logic, QGVAR(useLocation_SurgicalKit), "useLocation_SurgicalKit"] call EFUNC(common,readSettingFromModule); -[_logic, QGVAR(allowUnconsciousAnimationOnTreatment), "allowUnconsciousAnimationOnTreatment"] call EFUNC(common,readSettingFromModule); - -[_logic, QGVAR(menuTypeStyle), "menuTypeStyle"] call EFUNC(common,readSettingFromModule); -[_logic, QGVAR(ivFlowRate), "ivFlowRate"] call EFUNC(common,readSettingFromModule); -[_logic, QGVAR(allowSelfIV), "allowSelfIV"] call EFUNC(common,readSettingFromModule); - -[_logic, QGVAR(spontaneousWakeUpChance), "spontaneousWakeUpChance"] call EFUNC(common,readSettingFromModule); - -//[_logic, QGVAR(allowLitterCreation), "allowLitterCreation"] call EFUNC(common,readSettingFromModule); -//[_logic, QGVAR(litterCleanUpDelay), "litterCleanUpDelay"] call EFUNC(common,readSettingFromModule); - -//[_logic, QGVAR(enableUnconsciousnessAI), "enableUnconsciousnessAI"] call EFUNC(common,readSettingFromModule); -//[_logic, QGVAR(preventInstaDeath), "preventInstaDeath"] call EFUNC(common,readSettingFromModule); - -//[_logic, QGVAR(keepLocalSettingsSynced), "keepLocalSettingsSynced"] call EFUNC(common,readSettingFromModule); -// [_logic, QGVAR(delayUnconCaptive), "delayUnconCaptive"] call EFUNC(common,readSettingFromModule); diff --git a/addons/medical/stringtable.xml b/addons/medical/stringtable.xml index 0cd0b2b05c..da4a7dfa8a 100644 --- a/addons/medical/stringtable.xml +++ b/addons/medical/stringtable.xml @@ -33,22 +33,6 @@ ACE 医疗系统 ACE 醫療系統 - - Medical Settings [ACE] - Настройки медицины [ACE] - Ustawienia medyczne - Ajustes médicos [ACE] - Sanitätseinstellungen [ACE] - Lékařské nastavení [ACE] - Ajustes médicos [ACE] - Options médicales [ACE] - Orvosi beállítások [ACE] - Impostazioni Mediche [ACE] - 医療設定 [ACE] - 의료 설정 [ACE] - 医疗设定 [ACE] - 醫療設定 [ACE] - Medical Level Сложность медицины @@ -81,68 +65,6 @@ 选择需要的医疗模拟等级 選擇需要的醫療模擬等級 - - Medics setting - Настройки медиков - Poziom medyków - Configuración médica - Sanitätseinstellungen - Úroveň zdravotníků - Configuração médica - Règlage des infirmiers - Orvosok beállítása - Parametri Medici - 治療の設定 - 의료 설정 - 医护兵等级 - 醫護兵等級 - - - What is the level of detail prefered for medics? - Wie hoch soll das Simulationslevel für Sanitäter sein? - Каков уровень подробностей для медиков? - Jaki jest poziom detali medycznych wyświetlanych dla medyków? - ¿Cuál es el nivel de detalle preferido para los médicos? - Jaká úroveň detailů je preferována pro zdravotníky? - Qual o nível de detalhe preferido para os médicos? - Quel niveau de détail voulez-vous pour les infirmiers? - Mi a javasolt részletesség orvosok számára? - Qual'è il livello di dettagli preferito per i medici? - 衛生兵への再現度をどのくらいに設定しますか? - 의무병의 시뮬레이션 정도? - 设定医护兵的预设医疗水平(医疗兵, 军医) - 設定醫護兵的預設醫療水平(醫療兵, 軍醫) - - - Locations boost training - Místa pro vylepšení zkušeností - Località aumentano addestramento - Örtliche Trainingssteigerung - Ubicación mejora entrenamiento. - Miejsca zwiększają wyszkolenie - Localização melhora treinamento - Le lieu améliore l'efficacité - Места ускоренного обучения - 衛生兵としての能力を与える場所 - 교육 증가 지역 - 受所在位置影响提升医疗能力 - 受所在位置影響提升醫療能力 - - - Boost medic rating in medical vehicles or near medical facilities [untrained becomes medic, medic becomes doctor] - Zlepšit zkušenosti zdravotníka v medickém vozidle nebo poblíž zdravotního zařízení [nezkušení se stane zdravotníkem, zdravotník se stane doktorem] - Aumenta il rating medico in veicoli medici o vicino strutture mediche [non addestrato diventa medico, medico diventa dottore] - Steigert die medizinische Einstufung eines Soldaten in Sanitätsfarhzeugen oder in der Nähe von Sanitätseinrichtungen [untrainiert wird zu Sanitäter, Sanitäter zu Doktor] - Mejora el entrenamiento médico dentro de vehículos médicos o cerca de instalaciones médicas (no entrenados se convierten en médicos, médicos se convierten en doctores) - Zwiększa poziom wyszkolenia medyków wewnątrz pojazdów medycznych lub w pobliżu budynków medycznych [niedoświadczony zostaje medykiem, medyk zostaje doktorem] - Aumenta a classificação do médico dentro de veículos médicos ou perto de instalações médicas [sem treinamento vira médico, médico vira doutor] - Améliore l'efficacité des soins dans les véhicules ou structures de soins [non formés deviennent médecins, médecins deviennent docteurs] - Улучшает медицинскую подготовку в мед. транспорте и около мед. строений [нетренированные становятся медиками, медики становятся врачами] - 医療車両や医療施設の近くは衛生兵としての能力を与える場所となり、衛生兵の訓練を受けていないのに衛生兵としてなる (未訓練は衛生兵に、衛生兵は医師に) - 의무병의 수준이 주변의 차량이나 의료시설에 따라 증가합니다. [비교육자가 의무병이되고, 의무병이 의사가 됩니다] - 当人员在医疗载具或是医护设施旁进行医疗时, 该员医疗能力将会有所提升 (未受训人员提升为医疗兵, 医疗兵提升为军医) - 當人員在醫療載具或是醫護設施旁進行醫療時, 該員醫療能力將會有所提升 (未受訓人員提升為醫療兵, 醫療兵提升為軍醫) - Disable medics Отключить медиков @@ -223,167 +145,6 @@ 定义医疗废弃物存在时间,以秒为单位,-1为永远存在。 定義醫療廢棄物存在時間,以秒為單位,-1為永遠存在。 - - Enable Screams - Включить крики - Aktywuj wrzaski - Activar gritos - Schreie aktivieren - Povolit křik - Ativar gritos - Activer les hurlements - Kiáltások engedélyezése - Abilita Grida - 叫びを有効化 - 비명 활성화 - 启用尖叫 - 啟用尖叫 - - - Enable screaming by injured units - Включить крики раненных бойцов - Aktywuj wrzeszczenie z bólu przez ranne jednostki - Activar gritos para unidades heridas - Aktiviere Schreie bei verletzten Einheiten - Povolit křičení zraněných jednotek - Ativa gritos para unidades feridas - Active les hurlements d'unités blessées - Engedélyezi a sérült egységek kiáltásait - Abilita Grida da parte delle unità ferite - 負傷したユニットが叫ぶように - 부상당한 인원이 소리지르는것을 활성화합니다 - 启用伤者的尖叫声 - 啟用傷者的尖叫聲 - - - Show pain - - - Show pain status in the medical menu - - - Player Damage - Урон игроку - Próg obrażeń graczy - Daño de jugador - Spielerschaden - Poškození hráče - Dano do jogador - Dégats du joueur - Játékos sérülés - Danno Giocatore - プレイヤーへの損傷 - 플레이어 부상 - 玩家伤害 - 玩家傷害 - - - What is the damage a player can take before being killed? - Какой уровень урона необходим, чтобы убить игрока? - Jaki jest próg obrażeń, jakie gracz może otrzymać zanim zostanie zabity? - ¿Cuál es el daño que un jugador puede sufrir antes de morir? - Wie viel Schaden kann ein Spieler erleiden, bevor er getötet wird? - Jaké poškození může hráč dostat než bude zabit? - Qal é o dano que um jogador pode sofrer antes de morrer? - Quels dégâts peut subir un joueur avant d'être tué - Mennyi sérülést szenvedhet el egy játékos, mielőtt meghal? - Quanto è il danno che un giocatore può sostenere prima di essere ucciso? - プレイヤーが死に始める前に損傷を受けるようにしますか? - 얼마정도의 부상을 플레이어가 죽기 전까지 버틸 수 있습니까? - 玩家死亡前所能承受的伤害程度 - 玩家死亡前所能承受的傷害程度 - - - AI Damage - Урон ботам - Próg obrażeń AI - Daño IA - KI-Schaden - Poškození AI - Dano da IA - Dégâts des IA - AI sérülés - Danno AI - AI への損傷 - 인공지능 부상 - AI伤害 - AI傷害 - - - What is the damage an AI can take before being killed? - Какой уровень урона необходим, чтобы убить бота? - Jaki jest próg obrażeń, jakie AI może otrzymać zanim zostanie zabite? - ¿Cuál es el daño que la IA puede sufrir antes de morir? - Wie viel Schaden kann eine KI erleiden, bis sie getötet wird? - Jaké poškození může AI dostat než bude zabito? - Qual é o dano que uma IA pode sofrer antes de morrer? - Quels dégâts peut subir une IA avant d'être tuée - Mennyi sérülést szenvedhet el egy AI, mielőtt meghal? - Quanto è il danno che un'IA può sostenere prima di essere uccisa? - AI が死に始める前に損傷を受けるようにしますか? - 얼마정도의 부상을 인공지능이 죽기 전까지 버틸 수 있습니까? - AI 死亡前所能承受的伤害程度 - AI 死亡前所能承受的傷害程度 - - - Fatal Injury Player - - - Defines when Player can receive a fatal injury - - - Instant death AI - - - Defines if AI will be able to die instantly - - - Forbid unconscious AI - - - Defines if AI will be denied to go unconscious and will die instead - - - In Cardiac Arrest - - - Cardiac Arrest time (seconds) - - - Defines how long it takes to die from cardiac arrest? - - - AI Unconsciousness - Потеря сознания ботами - Nieprzytomność AI - Inconsciencia IA - KI-Bewusstlosigkeit - Bezvědomí AI - Inconsciência da IA - Inconscience des IA - AI eszméletlenség - Incoscienza IA - AI の気絶 - 인공지능 기절 - AI无意识 - AI無意識 - - - Allow AI to go unconscious - Позволить ботам терять сознание - Czy AI może być nieprzytomne od odniesionych obrażeń? - Permita a la IA caer inconsciente - KI kann bewusstlos werden - Umožňuje AI upadnout do bezvědomí - Permite IA ficar inconsciente - Autoriser les IA à tomber inconscients - Engedélyezi az AI eszméletének elvesztését - Permetti alle IA di diventare incoscienti - AI が気絶をするように - 인공지능도 기절에 빠지게 합니다 - 允许AI进入无意识状态 - 允許AI進入無意識狀態 - Remote Controlled AI Ferngesteuerte KI-Einheiten @@ -448,88 +209,6 @@ 伤者最严重只会立即进入昏迷,而非立即死亡 傷者最嚴重只會立即進入昏迷,而非立即死亡 - - Bleeding coefficient - Коэффициент кровопотери - Mnożnik krwawienia - Coeficiente de sangrado - Verblutungsmultiplikator - Koeficient krvácení - Coeficiente de sangramento - Coéfficient de saignement - Vérzési koefficiens - Coefficiente sanguinamento - 出血の係数 - 출혈 계수 - 流血系数 - 流血係數 - - - Coefficient to modify the bleeding speed - Коэффициент, изменяющий скорость потери крови - Mnożnik modyfikujący prędkość wykrwawiania się - Coeficiente para modificar la velocidad de sangrado - Multiplikator um die Verblutungsgeschwindigkeit zu verändern - Koeficient rychlosti krvácení - Coeficiente para modificar a velocidade do sangramento - Modifie le débit des saignements - Egy szorzó a vérzés sebességének szabályozására - Coefficiente che modifica la velocità di sanguinamento - この係数では出血速度を変更できます - 출혈의 속도를 계수만큼 변경합니다 - 修改流血速度 - 修改流血速度 - - - Pain coefficient - Коэффициент боли - Mnożnik bólu - Coeficiente de dolor - Schmerzmultiplikator - Koeficient bolesti - Coeficiente de dor - Coéfficient de douleur - Fájdalmi koefficiens - Coefficiente dolore - 痛みの係数 - 고통 계수 - 疼痛系数 - 疼痛係數 - - - Coefficient to modify the pain intensity - Коэффициент, изменяющий уровень боли - Mnożnik modyfikujący intensywność bólu - Coeficiente para modificar la intensidad del dolor - Multiplikator um die Schmerzintensität zu verändern - Koeficient intenzity bolesti - Coeficiente para modificar a instensidade de dor - Modifie l'intensité de la douleur - Egy szorzó a fájdalom erősségének szabályozására - Coefficiente che modifica l'intensità del dolore - この係数では痛みの強さを変更できます - 고통의 정도를 계수만큼 변경합니다 - 修改疼痛强度的系数 - 修改疼痛強度的係數 - - - Advanced Bandages - - - Enable advanced bandages (required for wound reopening) - - - Advanced Medication - - - Enable advanced medication - - - Advanced Diagnose - - - Enable advanced diagnose - Provides a medical system for both players and AI. Включает медицинскую систему как для игроков, так и для ботов. @@ -546,18 +225,6 @@ 医疗系统将同时对玩家与AI发生作用 醫療系統將同時對玩家與AI發生作用 - - IV Transfusion Flow Rate - - - Effects how quickly IV Bags will have effect - - - Self IV Transfusion - - - Allows using IV Transfusions on yourself - Basic Medical Settings [ACE] Standard Sanitätseinstellungen [ACE] @@ -637,38 +304,6 @@ 玩家与AI 玩家與AI - - Enable Advanced wounds - Усложненные раны - Aktywuj zaawansowane rany - Activa heridas avanzadas - Aktiviere erweiterte Wunden - Povolit pokročilé zranění - Ativar ferimentos avançados - Activer les plaies compliquées - Komplex sebek engedélyezése - Abilita ferite Avanzate - アドバンスドな傷を有効化 - 고급 부상 활성화 - 启用进阶伤口系统 - 啟用進階傷口系統 - - - Allow reopening of bandaged wounds? - Будут ли открываться уже перевязанные раны? - Pozwól na otwieranie się zabandażowanych ran? - Permitir la reapertura de las heridas vendadas? - Erlaube das Öffnen von bandagierten Wunden? - Umožnit znovuotevření zavázané rány? - Permitr reabertura de ferimentos enfaixados? - Les plaies peuvent se rouvrir - Visszanyílhatnak a bekötözött sebek? - Permetti la riapertura di ferite bendate? - 包帯で巻かれた傷を再び開くようにしますか? - 붕대가 풀리는것을 활성화합니까? - 启用进阶伤口系统会使已被包扎的伤口有机率裂开 - 啟用進階傷口系統會使已被包紮的傷口有機率裂開 - Vehicle Crashes Аварии транспорта @@ -701,176 +336,6 @@ 设定人员是否会因为载具冲撞别的物件而产生伤害? 設定人員是否會因為載具衝撞別的物件而產生傷害? - - Allow Pain visualization - - - Who can see pain in the menu? - - - Allow Epinephrine - Erlaube Epiniphrin - Permitir Epinefrina - Ograniczenia adrenaliny - Activer l'épinéphrine - Permette epinefrina - Povolit adrenalin - Permitir Epinefrina - Разрешить Адреналин - アドレナリンの許可 - 에피네프린 활성화 - 允许使用肾上腺素 - 允許使用腎上腺素 - - - Who can use Epinephrine? - - - Who can use Epinephrine for full heal? (Basic medical only) - Wer darf Epiniphrin zur vollständigen Heilung benutzen? (Standard Sanitätseinstellungen) - Configura quienes pueden usar Epinefrina (Solo sistema médico básico) - Kto może skorzystać z adrenaliny w celu pełnego uleczenia? (Tylko podstawowy system medyczny) - Qui peut utiliser l'adrénaline pour les soins complets ? (Médical basique seulement) - Chi può usare l'epinefrina per la cura completa? (solo per sistema medico di base) - Kdo může použít adrenalin k úplnému vyléčení? (Pouze základní zdravotní systém) - Quem pode usar Epinefrina para cura completa? (Somente sistema médico básico) - Кому разрешено использовать адреналин для полного излечения? (Только для базовой медицины) - 完全に回復できるよう誰しもがアドレナリンを使えるようにしますか? (ベーシック医療のみ) - 완전한 체력회복을 위해 어느 인원이 에피네프린을 쓸 수 있습니까? (기본 의료 전용) - 谁可以使用肾上腺素完整医治? (仅适用于基本医疗) - 誰可以使用腎上腺素完整醫治? (僅適用於基本醫療) - - - Allow PAK - Использование аптечки - Ustawienie apteczek osobistych - Permitir EPA - Erlaube Erste-Hilfe-Set - Povolit osobní lékárničky (PAK) - Permitir Kit de Primeiros Socorros - Activer la trousse sanitaire - Elsősegélycsomag engedélyezése - Consenti Kit di Pronto Soccorso - 応急処置キットの許可 - 개인응급키트 활성화 - 允许使用个人急救包 - 允許使用個人急救包 - - - Who can use the PAK for full heal? - Кому разрешено выполнять полное лечение с помощью аптечки? - Kto może skorzystać z apteczki osobistej w celu pełnego uleczenia? - ¿Quién puede utilizar el EPA para una cura completa? - Wer kann das Erste-Hilfe-Set für eine Endheilung verwenden? - Kdo může použít osobní lékárničku pro plné vyléčení? - Quem pode usar o KPS para cura completa? - Qui peut utilier la trousse sanitaire pour des soins complets? - Ki használhatja az elsősegélycsomagot teljes gyógyításra? - Chi può usare il KPS per cura completa? - 完全に回復できるよう誰しもが応急処置キットを使えるようにしますか? - 완전한 체력회복을 위해 어느 인원이 개인응급키트을 쓸 수 있습니까? (기본 의료 전용) - 谁能够使用个人急救包来达到完整医疗? - 誰能夠使用個人急救包來達到完整醫療? - - - Anyone - Кем угодно - Wszyscy - Nadie - Jeder - Kdokoliv - Qualquer um - Tous - Akárki - Chiunque - だれでも - 모두 - 任何人 - 任何人 - - - Medics only - Только медиками - Tylko medycy - Solo médicos - Nur Sanitäter - Pouze zdravotník - Somente médicos - Infirmiers uniquement - Csak orvosok - Solo medici - 衛生兵のみ - 의무병만 - 只限医疗兵 - 只限醫療兵 - - - Doctors only - Только врачами - Tylko doktorzy - Solo doctores - Nur Ärzte - Pouze doktor - Somente doutores - Médecins uniquement - Csak doktorok - Solo dottori - 医師のみ - 오직 의사만 - 只限军医 - 只限軍醫 - - - Remove PAK on use - Удалять аптечки после использования - Usuń apteczkę po użyciu - Eliminar EPA después del uso - Entf. Erste-Hilfe-Set bei Verwendung - Odebrat osobní lékárničku po použití - Remover o KPS depois do uso - Utilisation unique de la trousse sanitaire - Elsősegélycsomag eltávolítása használatkor - Rimuovi Kit Pronto Soccorso dopo l'uso - 応急処置キットの削除 - 개인응급키트 사용후 사라짐 - 在使用后删除个人急救包 - 在使用後刪除個人急救包 - - - Should PAK be removed on usage? - Нужно ли удалять аптечки после использования? - Czy apteczka osobista powinna zniknąć z ekwipunku po jej użyciu? - El EPA será eliminado después de usarlo - Sollen Erste-Hilfe-Sets bei Verwendung entfernt werden? - Má se osobní lékárnička odstranit po použití? - Deve o KPS ser removido depois do uso? - La trousse sanitaire doit être consommée à l'utilisation? - Eltávolítódjon az elsősegélycsomag használatkor? - Il Kit Pronto Soccorso dev'essere rimosso dopo l'utilizzo? - 応急処置キットを使うと削除しますか? - 개인응급키트를 사용하고 나서 제거합니까? - 要在使用后删除个人急救包吗? - 要在使用後刪除個人急救包嗎? - - - Locations Epinephrine - Orte für Epiniphrin - Ubicaciones epinefrina - Ograniczenia adrenaliny - Utilisation de l'épinéphrine - Ubicazione epinefrina - Oblast k použití adrenalinu - Localizações de Epinefrina - Место использования адреналина - アドレナリンをつかう場所 - 에피네프린 사용 장소 - 肾上腺素使用地点 - 腎上腺素使用地點 - - - Where can the Epinephrine be used? - - Where can the Epinephrine be used? (Basic Medical) Wo kann Epiniphrin verwendet werden? (Standard Sanitätseinstellungen) @@ -950,38 +415,6 @@ 何时可以使用个人急救包? 何時可以使用個人急救包? - - Medical facility - В госпитале - Budynki medyczne - Centro médico - Medizinische Einrichtungen - Zdravotnické zařízení - Instalação médica - Dans les structures sanitaires - Orvosi létesítmény - Strutture mediche - 医療施設でのみ - 의료시설 - 医疗设施 - 醫療設施 - - - Vehicles & facility - В транспорте и госпитале - Pojazdy i budynki medyczne - Vehículos y centros - Fahrzeuge & Einrichtungen - Vozidla a zařízení - Veículos e instalações - Dans les véhicules et les structures sanitaires - Járművek & létesítmény - Veicoli e Strutture - 車両 & 施設 - 차량 및 시설 - 医疗载具 & 医疗设施 - 醫療載具 & 醫療設施 - Allow Surgical Kit (Adv) Хирургический набор может использоваться (усл.) @@ -1259,12 +692,6 @@ 是否使该载具为医疗载具? 是否使該載具為醫療載具? - - Allow Unconscious Animation - - - Allow Unconscious Animation on Treatment. - Unconscious Wake Up Chance diff --git a/addons/medical_ai/ACE_Settings.hpp b/addons/medical_ai/ACE_Settings.hpp index 8a43c34484..e970265467 100644 --- a/addons/medical_ai/ACE_Settings.hpp +++ b/addons/medical_ai/ACE_Settings.hpp @@ -1,8 +1,5 @@ class ACE_Settings { class GVAR(enabledFor) { - category = ECSTRING(medical,Category_Medical); - value = 2; - typeName = "SCALAR"; - values[] = {ECSTRING(Common,Disabled), CSTRING(enabledFor_OnlyServerAndHC), ECSTRING(Common,Enabled)}; + movedToSQF = 1; }; }; diff --git a/addons/medical_ai/XEH_preInit.sqf b/addons/medical_ai/XEH_preInit.sqf index b47cf6628d..9361d05015 100644 --- a/addons/medical_ai/XEH_preInit.sqf +++ b/addons/medical_ai/XEH_preInit.sqf @@ -6,4 +6,6 @@ PREP_RECOMPILE_START; #include "XEH_PREP.hpp" PREP_RECOMPILE_END; +#include "initSettings.sqf" + ADDON = true; diff --git a/addons/medical_ai/initSettings.sqf b/addons/medical_ai/initSettings.sqf new file mode 100644 index 0000000000..a8bed0c7e2 --- /dev/null +++ b/addons/medical_ai/initSettings.sqf @@ -0,0 +1,13 @@ +[ + QGVAR(enabledFor), + "CHECKBOX", + "LIST", + [LLSTRING(enableFor_title), LLSTRING(enableFor_desc)], + LLSTRING(settingCategory), + [ + [0, 1, 2], + [LELSTRING(Common,Disabled), LLSTRING(enabledFor_OnlyServerAndHC), LELSTRING(Common,Enabled)], + 2 + ], + true +] call CBA_settings_fnc_init; diff --git a/addons/medical_ai/stringtable.xml b/addons/medical_ai/stringtable.xml index b2bda42146..e3cd9efd67 100644 --- a/addons/medical_ai/stringtable.xml +++ b/addons/medical_ai/stringtable.xml @@ -1,6 +1,15 @@ - + + + ACE Medical - AI + + + Medic AI + + + AI will respond to injury and unconsciousness + Only Server and HC Nur Server und HC diff --git a/addons/medical_damage/ACE_Settings.hpp b/addons/medical_damage/ACE_Settings.hpp new file mode 100644 index 0000000000..078fcf8f60 --- /dev/null +++ b/addons/medical_damage/ACE_Settings.hpp @@ -0,0 +1,18 @@ +class ACE_Settings { + class EGVAR(medical,playerDamageThreshold) { + category = CSTRING(Category_Medical); + displayName = CSTRING(playerDamageThreshold_DisplayName); + description = CSTRING(playerDamageThreshold_Description); + typeName = "SCALAR"; + value = 1.0; + sliderSettings[] = {0, 25, 1, 2}; + }; + class EGVAR(medical,AIDamageThreshold) { + category = CSTRING(Category_Medical); + displayName = CSTRING(AIDamageThreshold_DisplayName); + description = CSTRING(AIDamageThreshold_Description); + typeName = "SCALAR"; + value = 1.0; + sliderSettings[] = {0, 25, 1, 2}; + }; +}; diff --git a/addons/medical_damage/config.cpp b/addons/medical_damage/config.cpp index d1d89aaa0d..5e420a173e 100644 --- a/addons/medical_damage/config.cpp +++ b/addons/medical_damage/config.cpp @@ -14,6 +14,7 @@ class CfgPatches { }; }; +#include "ACE_Settings.hpp" #include "ACE_Medical_Injuries.hpp" #include "CfgEventHandlers.hpp" diff --git a/addons/medical_damage/functions/fnc_handleIncapacitation.sqf b/addons/medical_damage/functions/fnc_handleIncapacitation.sqf index 2d977f0623..cbcea69313 100644 --- a/addons/medical_damage/functions/fnc_handleIncapacitation.sqf +++ b/addons/medical_damage/functions/fnc_handleIncapacitation.sqf @@ -27,11 +27,10 @@ _bodyPartDamage params ["_headDamage", "_bodyDamage", "_leftArmDamage", "_rightA }; } forEach (_unit getVariable [QEGVAR(medical,openWounds), []]); -private _damageThreshold = if (isPlayer _unit) then { +private _damageThreshold = [ + EGVAR(medical,AIDamageThreshold), EGVAR(medical,playerDamageThreshold) -} else { - EGVAR(medical,AIDamageThreshold) -}; +] select (isPlayer _unit); if ((_headDamage > _damageThreshold / 2) || {_bodyDamage > _damageThreshold} || {(_painLevel >= PAIN_UNCONSCIOUS) && {random 1 < 0.1}}) then { [QEGVAR(medical,CriticalInjury), _unit] call CBA_fnc_localEvent; diff --git a/addons/medical_damage/functions/fnc_woundsHandler.sqf b/addons/medical_damage/functions/fnc_woundsHandler.sqf index 4efcb0b2ca..74f5364964 100644 --- a/addons/medical_damage/functions/fnc_woundsHandler.sqf +++ b/addons/medical_damage/functions/fnc_woundsHandler.sqf @@ -124,7 +124,6 @@ _unit setVariable [QEGVAR(medical,bodyPartDamage), _bodyPartDamage, true]; _bodyPartVisParams call EFUNC(medical_engine,updateBodyPartVisuals); -[_unit, _painLevel] call EFUNC(medical,adjustPainLevel); [QEGVAR(medical,injured), [_unit, _painLevel]] call CBA_fnc_localEvent; if (_critialDamage || {_painLevel > PAIN_UNCONSCIOUS}) then { diff --git a/addons/medical_damage/functions/fnc_woundsHandlerSQF.sqf b/addons/medical_damage/functions/fnc_woundsHandlerSQF.sqf index fb2f288daf..79566cc0de 100644 --- a/addons/medical_damage/functions/fnc_woundsHandlerSQF.sqf +++ b/addons/medical_damage/functions/fnc_woundsHandlerSQF.sqf @@ -182,7 +182,6 @@ _unit setVariable [QEGVAR(medical,bodyPartDamage), _bodyPartDamage, true]; _bodyPartVisParams call EFUNC(medical_engine,updateBodyPartVisuals); -[_unit, _painLevel] call EFUNC(medical,adjustPainLevel); [QEGVAR(medical,injured), [_unit, _painLevel]] call CBA_fnc_localEvent; if (_critialDamage || {_painLevel > PAIN_UNCONSCIOUS}) then { diff --git a/addons/medical_damage/stringtable.xml b/addons/medical_damage/stringtable.xml index e74d80fc48..aa7eeb4efd 100644 --- a/addons/medical_damage/stringtable.xml +++ b/addons/medical_damage/stringtable.xml @@ -1,6 +1,72 @@ + + + Player Damage + Урон игроку + Próg obrażeń graczy + Daño de jugador + Spielerschaden + Poškození hráče + Dano do jogador + Dégats du joueur + Játékos sérülés + Danno Giocatore + プレイヤーへの損傷 + 플레이어 부상 + 玩家伤害 + 玩家傷害 + + + What is the damage a player can take before being killed? + Какой уровень урона необходим, чтобы убить игрока? + Jaki jest próg obrażeń, jakie gracz może otrzymać zanim zostanie zabity? + ¿Cuál es el daño que un jugador puede sufrir antes de morir? + Wie viel Schaden kann ein Spieler erleiden, bevor er getötet wird? + Jaké poškození může hráč dostat než bude zabit? + Qal é o dano que um jogador pode sofrer antes de morrer? + Quels dégâts peut subir un joueur avant d'être tué + Mennyi sérülést szenvedhet el egy játékos, mielőtt meghal? + Quanto è il danno che un giocatore può sostenere prima di essere ucciso? + プレイヤーが死に始める前に損傷を受けるようにしますか? + 얼마정도의 부상을 플레이어가 죽기 전까지 버틸 수 있습니까? + 玩家死亡前所能承受的伤害程度 + 玩家死亡前所能承受的傷害程度 + + + AI Damage + Урон ботам + Próg obrażeń AI + Daño IA + KI-Schaden + Poškození AI + Dano da IA + Dégâts des IA + AI sérülés + Danno AI + AI への損傷 + 인공지능 부상 + AI伤害 + AI傷害 + + + What is the damage an AI can take before being killed? + Какой уровень урона необходим, чтобы убить бота? + Jaki jest próg obrażeń, jakie AI może otrzymać zanim zostanie zabite? + ¿Cuál es el daño que la IA puede sufrir antes de morir? + Wie viel Schaden kann eine KI erleiden, bis sie getötet wird? + Jaké poškození může AI dostat než bude zabito? + Qual é o dano que uma IA pode sofrer antes de morrer? + Quels dégâts peut subir une IA avant d'être tuée + Mennyi sérülést szenvedhet el egy AI, mielőtt meghal? + Quanto è il danno che un'IA può sostenere prima di essere uccisa? + AI が死に始める前に損傷を受けるようにしますか? + 얼마정도의 부상을 인공지능이 죽기 전까지 버틸 수 있습니까? + AI 死亡前所能承受的伤害程度 + AI 死亡前所能承受的傷害程度 + + Scrape Kratzer diff --git a/addons/medical_feedback/ACE_Settings.hpp b/addons/medical_feedback/ACE_Settings.hpp new file mode 100644 index 0000000000..da6ef94c15 --- /dev/null +++ b/addons/medical_feedback/ACE_Settings.hpp @@ -0,0 +1,10 @@ +class ACE_Settings { + // Not currently used anywhere + class GVAR(enableScreams) { + category = CSTRING(Category_Medical); + displayName = CSTRING(enableScreams_DisplayName); + description = CSTRING(enableScreams_Description); + typeName = "BOOL"; + value = 1; + }; +}; diff --git a/addons/medical_feedback/config.cpp b/addons/medical_feedback/config.cpp index 493d41cf8c..77de56d714 100644 --- a/addons/medical_feedback/config.cpp +++ b/addons/medical_feedback/config.cpp @@ -14,6 +14,7 @@ class CfgPatches { }; }; +#include "ACE_Settings.hpp" #include "CfgEventHandlers.hpp" #include "CfgInGameUI.hpp" #include "CfgSounds.hpp" diff --git a/addons/medical_feedback/stringtable.xml b/addons/medical_feedback/stringtable.xml index e2b59e49e4..f90b340f3f 100644 --- a/addons/medical_feedback/stringtable.xml +++ b/addons/medical_feedback/stringtable.xml @@ -1,6 +1,40 @@ + + + Enable Screams + Включить крики + Aktywuj wrzaski + Activar gritos + Schreie aktivieren + Povolit křik + Ativar gritos + Activer les hurlements + Kiáltások engedélyezése + Abilita Grida + 叫びを有効化 + 비명 활성화 + 启用尖叫 + 啟用尖叫 + + + Enable screaming by injured units + Включить крики раненных бойцов + Aktywuj wrzeszczenie z bólu przez ranne jednostki + Activar gritos para unidades heridas + Aktiviere Schreie bei verletzten Einheiten + Povolit křičení zraněných jednotek + Ativa gritos para unidades feridas + Active les hurlements d'unités blessées + Engedélyezi a sérült egységek kiáltásait + Abilita Grida da parte delle unità ferite + 負傷したユニットが叫ぶように + 부상당한 인원이 소리지르는것을 활성화합니다 + 启用伤者的尖叫声 + 啟用傷者的尖叫聲 + + Pain Effect Type Schmerzeffekt-Typ diff --git a/addons/medical_gui/ACE_Settings.hpp b/addons/medical_gui/ACE_Settings.hpp index 4c34d11865..17bb2a2b1b 100644 --- a/addons/medical_gui/ACE_Settings.hpp +++ b/addons/medical_gui/ACE_Settings.hpp @@ -31,4 +31,26 @@ class ACE_Settings { category = ECSTRING(medical,Category_Medical); sliderSettings[] = {0, 10, 3, 1}; }; + class EGVAR(medical,menuTypeStyle) { + category = CSTRING(Category_Medical); + displayName = CSTRING(menuTypeDisplay); + description = CSTRING(menuTypeDescription); + typeName = "SCALAR"; + value = 0; + values[] = {CSTRING(useSelection), CSTRING(useRadial), "Disabled"}; + isClientSettable = 1; + }; + class GVAR(painVisualization) { + displayName = CSTRING(painVisualization_DisplayName); + description = CSTRING(painVisualization_Description); + typeName = "SCALAR"; + value = 0; + values[] = {"Anyone", "Medics only", "Doctors only"}; + }; + class GVAR(showPainInMenu) { + displayName = CSTRING(showPainInMenu_DisplayName); + description = CSTRING(showPainInMenu_Description); + typeName = "BOOL"; + value = 0; + }; }; diff --git a/addons/medical_gui/functions/fnc_displayPatientInformation.sqf b/addons/medical_gui/functions/fnc_displayPatientInformation.sqf index 8ae5703b77..8a429f7ad4 100644 --- a/addons/medical_gui/functions/fnc_displayPatientInformation.sqf +++ b/addons/medical_gui/functions/fnc_displayPatientInformation.sqf @@ -74,7 +74,7 @@ if (_show == 1) then { if (HAS_TOURNIQUET_APPLIED_ON(_target,_selectionN)) then { _genericMessages pushback [localize ELSTRING(medical_treatment,Status_Tourniquet_Applied), [0.77, 0.51, 0.08, 1]]; }; - if (EGVAR(medical,showPainInMenu) && {[ACE_player, EGVAR(medical,medicSetting_PainVisualization)] call EFUNC(medical_treatment,isMedic)}) then { + if (GVAR(showPainInMenu) && {[ACE_player, EGVAR(medical,medicSetting_PainVisualization)] call EFUNC(medical_treatment,isMedic)}) then { private _painLevel = GET_PAIN_PERCEIVED(_target); if (_painLevel > 0) then { private _painText = localize ELSTRING(medical_treatment,Status_Pain); @@ -119,7 +119,7 @@ if (_show == 1) then { _allInjuryTexts pushBack [format["Partial %1", _woundDescription], [1,1,1,1]]; }; } else { - if (!EGVAR(medical,advancedBandages) || {!EGVAR(medical,woundReopening)}) then { + if (!EGVAR(medical_treatment,advancedBandages) || {!EGVAR(medical,woundReopening)}) then { private _className = (EGVAR(medical_damage,woundsData) select _woundClassID) select 6; private _postfix = ["Minor", "Medium", "Large"] select _category; private _woundDescription = localize format [ELSTRING(medical_damage,%1_%2), _className, _postfix]; diff --git a/addons/medical_gui/functions/fnc_updateUIInfo.sqf b/addons/medical_gui/functions/fnc_updateUIInfo.sqf index 49bb9b891e..8fc055ac31 100644 --- a/addons/medical_gui/functions/fnc_updateUIInfo.sqf +++ b/addons/medical_gui/functions/fnc_updateUIInfo.sqf @@ -51,7 +51,7 @@ if (HAS_TOURNIQUET_APPLIED_ON(_target,_selectionN)) then { _genericMessages pushBack [localize ELSTRING(medical_treatment,Status_Tourniquet_Applied), [0.77, 0.51, 0.08, 1]]; }; -if (EGVAR(medical,showPainInMenu) && {[ACE_player, EGVAR(medical,medicSetting_PainVisualization)] call EFUNC(medical_treatment,isMedic)}) then { +if (GVAR(showPainInMenu) && {[ACE_player, EGVAR(medical,medicSetting_PainVisualization)] call EFUNC(medical_treatment,isMedic)}) then { private _painLevel = GET_PAIN_PERCEIVED(_target); if (_painLevel > 0) then { private _painText = localize ELSTRING(medical_treatment,Status_Pain); @@ -97,7 +97,7 @@ private _allInjuryTexts = []; _allInjuryTexts pushBack [format["Partial %1", _woundDescription], [1,1,1,1]]; }; } else { - if (!EGVAR(medical,advancedBandages) || {!EGVAR(medical,woundReopening)}) then { + if (!EGVAR(medical_treatment,advancedBandages) || {!EGVAR(medical,woundReopening)}) then { private _className = (EGVAR(medical_damage,woundsData) select _woundClassID) select 6; private _postfix = ["Minor", "Medium", "Large"] select _category; private _woundDescription = localize format [ELSTRING(medical_damage,%1_%2), _className, _postfix]; diff --git a/addons/medical_gui/stringtable.xml b/addons/medical_gui/stringtable.xml index 7768beed01..9e58878401 100644 --- a/addons/medical_gui/stringtable.xml +++ b/addons/medical_gui/stringtable.xml @@ -1,6 +1,84 @@ + + + Show pain + + + Show pain status in the medical menu + + + Allow Pain visualization + + + Who can see pain in the menu? + + + Style of menu (Medical) + Styl menu medycznego + Style de menu (médical) + Menüstil (Medizin) + Вид меню (медицина) + Tipo de menú (Medico) + Styl menu (Zdravotní) + Estilo do menu (Médico) + Menü stílusa (Orvosi) + Stile del menù (medico) + メニューの表示形式 (治療) + 메뉴의 스타일 (의료) + 选单样式 (医疗) + 選單樣式 (醫療) + + + Select the type of menu you prefer; default 3d selections or radial. + Wybierz rodzaj menu, który preferujesz: domyślne pozycje 3D lub radialne + Sélectionne le type de menu préféré; par défaut la sélection 3D ou radiale + Wähle den Menüstil: Standard 3D-Auswahl oder kreisförmig. + Выберите тип меню: стандартный вариант (3D) или радиальный + Selecciona el tipo de menú que prefieres: selecciones 3d por defecto o radial. + Selecione o tipo de menu que você prefere; padrão seleções 3d ou radial. + Válaszd ki a neked megfelelő menüt: Alapértelmezett 3D válogatás, vagy kerek. + Zvolte typ menu: základní 3D výběr nebo kruhový + Seleziona il tipo di menù che preferisci: selezione (3D), radiale o disabilitata. + 好みに応じてメニューの表示形式を選んでください。標準では 3D 選択か円状です。 + 선호하는 종류의 메뉴를 고르세요; 기본 3d 선택형 혹은 다이얼형 + 选择你喜欢的选单样式; 预设为3D选项或放射状 + 選擇你喜歡的選單樣式; 預設為3D選項或放射狀 + + + Selections (3d) + Pozycje (3D) + Sélection (3D) + 3D-Auswahl + Стандартный (3D) + Selecciones (3d) + Seleção (3d) + Választékok (3D) + 3D výběr + Selezione (3D) + 選択 (3d) + 선택 (3d) + 选择 (3D) + 選擇 (3D) + + + Radial + Radialne + Radial + Kreisförmig + Радиальный + Radial + Radial + Kerek + Kruhový + Radiale + 円状 + 다이얼형 + 放射状 + 放射狀 + + Medical Menu Sanitätsmenü diff --git a/addons/medical_statemachine/ACE_Settings.hpp b/addons/medical_statemachine/ACE_Settings.hpp new file mode 100644 index 0000000000..0659607543 --- /dev/null +++ b/addons/medical_statemachine/ACE_Settings.hpp @@ -0,0 +1,28 @@ +class ACE_Settings { + class GVAR(fatalInjuryCondition) { + displayName = CSTRING(fatalInjuryCondition_DisplayName); + description = CSTRING(fatalInjuryCondition_Description); + value = 0; + typeName = "SCALAR"; + values[] = {"Always", "In Cardiac Arrest", "Never"}; + }; + class GVAR(fatalInjuryConditionAI) { + displayName = CSTRING(fatalInjuryConditionAI_DisplayName); + description = CSTRING(fatalInjuryConditionAI_Description); + value = 1; + typeName = "BOOL"; + }; + class GVAR(unconsciousConditionAI) { + displayName = CSTRING(unconsciousConditionAI_DisplayName); + description = CSTRING(unconsciousConditionAI_Description); + value = 1; + typeName = "BOOL"; + }; + class GVAR(cardiacArrestTime) { + displayName = CSTRING(cardiacArrestTime_DisplayName); + description = CSTRING(cardiacArrestTime_Description); + value = 30; + typeName = "SCALAR"; + sliderSettings[] = {1, 3600, 30, 0}; + }; +}; diff --git a/addons/medical_statemachine/Statemachine.hpp b/addons/medical_statemachine/Statemachine.hpp index 943d9e66ec..c58d73b731 100644 --- a/addons/medical_statemachine/Statemachine.hpp +++ b/addons/medical_statemachine/Statemachine.hpp @@ -71,12 +71,12 @@ class ACE_Medical_StateMachine { class DeathAI { events[] = {QEGVAR(medical,FatalInjuryInstantTransition)}; targetState = "Dead"; - condition = QUOTE(!isPlayer _this && {EGVAR(medical,fatalInjuryConditionAI)}); + condition = QUOTE(!isPlayer _this && {GVAR(fatalInjuryConditionAI)}); }; class SecondChance { events[] = {QEGVAR(medical,FatalInjuryInstantTransition)}; targetState = "CardiacArrest"; - condition = QUOTE(EGVAR(medical,fatalInjuryCondition) > 0); + condition = QUOTE(GVAR(fatalInjuryCondition) > 0); onTransition = QFUNC(transitionSecondChance); }; class Death { @@ -90,7 +90,7 @@ class ACE_Medical_StateMachine { onStateLeaving = QFUNC(leftStateCardiacArrest); class DeathAI { targetState = "Dead"; - condition = QUOTE(!isPlayer _this && {EGVAR(medical,fatalInjuryConditionAI)}); + condition = QUOTE(!isPlayer _this && {GVAR(fatalInjuryConditionAI)}); }; class Timeout { targetState = "Dead"; diff --git a/addons/medical_statemachine/config.cpp b/addons/medical_statemachine/config.cpp index 23a55f5258..a87d797163 100644 --- a/addons/medical_statemachine/config.cpp +++ b/addons/medical_statemachine/config.cpp @@ -14,5 +14,6 @@ class CfgPatches { }; }; +#include "ACE_Settings.hpp" #include "Statemachine.hpp" #include "CfgEventHandlers.hpp" diff --git a/addons/medical_statemachine/stringtable.xml b/addons/medical_statemachine/stringtable.xml new file mode 100644 index 0000000000..ed9b99464f --- /dev/null +++ b/addons/medical_statemachine/stringtable.xml @@ -0,0 +1,66 @@ + + + + + + Fatal Injury Player + + + Defines when Player can receive a fatal injury + + + Instant death AI + + + Defines if AI will be able to die instantly + + + Forbid unconscious AI + + + Defines if AI will be denied to go unconscious and will die instead + + + In Cardiac Arrest + + + Cardiac Arrest time (seconds) + + + Defines how long it takes to die from cardiac arrest? + + + AI Unconsciousness + Потеря сознания ботами + Nieprzytomność AI + Inconsciencia IA + KI-Bewusstlosigkeit + Bezvědomí AI + Inconsciência da IA + Inconscience des IA + AI eszméletlenség + Incoscienza IA + AI の気絶 + 인공지능 기절 + AI无意识 + AI無意識 + + + Allow AI to go unconscious + Позволить ботам терять сознание + Czy AI może być nieprzytomne od odniesionych obrażeń? + Permita a la IA caer inconsciente + KI kann bewusstlos werden + Umožňuje AI upadnout do bezvědomí + Permite IA ficar inconsciente + Autoriser les IA à tomber inconscients + Engedélyezi az AI eszméletének elvesztését + Permetti alle IA di diventare incoscienti + AI が気絶をするように + 인공지능도 기절에 빠지게 합니다 + 允许AI进入无意识状态 + 允許AI進入無意識狀態 + + + + diff --git a/addons/medical_status/ACE_settings.hpp b/addons/medical_status/ACE_settings.hpp new file mode 100644 index 0000000000..46728a8711 --- /dev/null +++ b/addons/medical_status/ACE_settings.hpp @@ -0,0 +1,24 @@ +class ACE_Settings { + class EGVAR(medical,bleedingCoefficient) { + category = CSTRING(Category_Medical); + displayName = CSTRING(bleedingCoefficient_DisplayName); + description = CSTRING(bleedingCoefficient_Description); + typeName = "SCALAR"; + value = 1; + sliderSettings[] = {0, 25, 1, 1}; + }; + class EGVAR(medical,painCoefficient) { + category = CSTRING(Category_Medical); + displayName = CSTRING(painCoefficient_DisplayName); + description = CSTRING(painCoefficient_Description); + typeName = "SCALAR"; + value = 1; + sliderSettings[] = {0, 25, 1, 1}; + }; + class GVAR(ivFlowRate) { + displayName = CSTRING(ivFlowRate_DisplayName); + description = CSTRING(ivFlowRate_Description); + typeName = "SCALAR"; + value = 1; + }; +}; diff --git a/addons/medical_status/CfgEventHandlers.hpp b/addons/medical_status/CfgEventHandlers.hpp index 34b070a1c0..7363a518fc 100644 --- a/addons/medical_status/CfgEventHandlers.hpp +++ b/addons/medical_status/CfgEventHandlers.hpp @@ -10,6 +10,12 @@ class Extended_PreInit_EventHandlers { }; }; +class Extended_PostInit_EventHandlers { + class ADDON { + init = QUOTE(call COMPILE_FILE(XEH_postInit)); + }; +}; + class Extended_Init_EventHandlers { class CAManBase { class ADDON { diff --git a/addons/medical_status/XEH_PREP.hpp b/addons/medical_status/XEH_PREP.hpp index c2cc670807..d0c3f743d5 100644 --- a/addons/medical_status/XEH_PREP.hpp +++ b/addons/medical_status/XEH_PREP.hpp @@ -1,4 +1,5 @@ PREP(addHeartRateAdjustment); +PREP(adjustPainLevel); PREP(getBloodLoss); PREP(getBloodPressure); PREP(getBloodVolumeChange); diff --git a/addons/medical_status/XEH_postInit.sqf b/addons/medical_status/XEH_postInit.sqf new file mode 100644 index 0000000000..9b7d186b46 --- /dev/null +++ b/addons/medical_status/XEH_postInit.sqf @@ -0,0 +1,4 @@ +#include "script_component.hpp" + +// Handle pain changes on injury +[QEGVAR(medical,injured), LINKFUNC(adjustPainLevel)] call CBA_fnc_addEventHandler; diff --git a/addons/medical_status/config.cpp b/addons/medical_status/config.cpp index d01a69dc83..6af8664a1b 100644 --- a/addons/medical_status/config.cpp +++ b/addons/medical_status/config.cpp @@ -14,4 +14,5 @@ class CfgPatches { }; }; +#include "ACE_Settings.hpp" #include "CfgEventHandlers.hpp" diff --git a/addons/medical/functions/fnc_adjustPainLevel.sqf b/addons/medical_status/functions/fnc_adjustPainLevel.sqf similarity index 78% rename from addons/medical/functions/fnc_adjustPainLevel.sqf rename to addons/medical_status/functions/fnc_adjustPainLevel.sqf index 36af92a876..f2a3664da0 100644 --- a/addons/medical/functions/fnc_adjustPainLevel.sqf +++ b/addons/medical_status/functions/fnc_adjustPainLevel.sqf @@ -11,9 +11,9 @@ * nothing * * Example: - * [guy, 0.5] call ace_medical_fnc_adjustPainLevel + * [guy, 0.5] call ace_medical_status_fnc_adjustPainLevel * - * Public: Yes + * Public: No */ params ["_unit", "_desiredPainLevel"]; @@ -22,7 +22,7 @@ if (!local _unit) exitWith { ERROR("unit is not local"); }; TRACE_2("adjustPainLevel",_unit,_desiredPainLevel); -_desiredPainLevel = _desiredPainLevel * GVAR(painCoefficient); +_desiredPainLevel = _desiredPainLevel * EGVAR(medical,painCoefficient); private _pain = GET_PAIN(_unit); _pain = 0 max (_pain max _desiredPainLevel) min 1; diff --git a/addons/medical_status/functions/fnc_getBloodVolumeChange.sqf b/addons/medical_status/functions/fnc_getBloodVolumeChange.sqf index 3ba4bc4a37..6092110086 100644 --- a/addons/medical_status/functions/fnc_getBloodVolumeChange.sqf +++ b/addons/medical_status/functions/fnc_getBloodVolumeChange.sqf @@ -30,7 +30,7 @@ if (!isNil {_unit getVariable QEGVAR(medical,ivBags)}) then { _x params ["_bagVolumeRemaining", "_type", "_bodyPart"]; if (_tourniquets select _bodyPart == 0) then { - private _bagChange = (_deltaT * EGVAR(medical,ivFlowRate) * IV_CHANGE_PER_SECOND) min _bagVolumeRemaining; // absolute value of the change in miliLiters + private _bagChange = (_deltaT * GVAR(ivFlowRate) * IV_CHANGE_PER_SECOND) min _bagVolumeRemaining; // absolute value of the change in miliLiters _bagVolumeRemaining = _bagVolumeRemaining - _bagChange; _bloodVolumeChange = _bloodVolumeChange + (_bagChange / 1000); }; diff --git a/addons/medical_status/stringtable.xml b/addons/medical_status/stringtable.xml new file mode 100644 index 0000000000..0fe68b7ba4 --- /dev/null +++ b/addons/medical_status/stringtable.xml @@ -0,0 +1,77 @@ + + + + + + Bleeding coefficient + Коэффициент кровопотери + Mnożnik krwawienia + Coeficiente de sangrado + Verblutungsmultiplikator + Koeficient krvácení + Coeficiente de sangramento + Coéfficient de saignement + Vérzési koefficiens + Coefficiente sanguinamento + 出血の係数 + 출혈 계수 + 流血系数 + 流血係數 + + + Coefficient to modify the bleeding speed + Коэффициент, изменяющий скорость потери крови + Mnożnik modyfikujący prędkość wykrwawiania się + Coeficiente para modificar la velocidad de sangrado + Multiplikator um die Verblutungsgeschwindigkeit zu verändern + Koeficient rychlosti krvácení + Coeficiente para modificar a velocidade do sangramento + Modifie le débit des saignements + Egy szorzó a vérzés sebességének szabályozására + Coefficiente che modifica la velocità di sanguinamento + この係数では出血速度を変更できます + 출혈의 속도를 계수만큼 변경합니다 + 修改流血速度 + 修改流血速度 + + + Pain coefficient + Коэффициент боли + Mnożnik bólu + Coeficiente de dolor + Schmerzmultiplikator + Koeficient bolesti + Coeficiente de dor + Coéfficient de douleur + Fájdalmi koefficiens + Coefficiente dolore + 痛みの係数 + 고통 계수 + 疼痛系数 + 疼痛係數 + + + Coefficient to modify the pain intensity + Коэффициент, изменяющий уровень боли + Mnożnik modyfikujący intensywność bólu + Coeficiente para modificar la intensidad del dolor + Multiplikator um die Schmerzintensität zu verändern + Koeficient intenzity bolesti + Coeficiente para modificar a instensidade de dor + Modifie l'intensité de la douleur + Egy szorzó a fájdalom erősségének szabályozására + Coefficiente che modifica l'intensità del dolore + この係数では痛みの強さを変更できます + 고통의 정도를 계수만큼 변경합니다 + 修改疼痛强度的系数 + 修改疼痛強度的係數 + + + IV Transfusion Flow Rate + + + Effects how quickly IV Bags will have effect + + + + diff --git a/addons/medical_treatment/ACE_Medical_Treatment_Actions.hpp b/addons/medical_treatment/ACE_Medical_Treatment_Actions.hpp index 773e601234..f244ee0ce1 100644 --- a/addons/medical_treatment/ACE_Medical_Treatment_Actions.hpp +++ b/addons/medical_treatment/ACE_Medical_Treatment_Actions.hpp @@ -12,7 +12,7 @@ class GVAR(Actions) { treatmentTime = QFUNC(getBandageTime); treatmentTimeSelfCoef = 1; items[] = {{"ACE_fieldDressing", "ACE_packingBandage", "ACE_elasticBandage", "ACE_quikclot"}}; - condition = QUOTE(!EGVAR(medical,advancedBandages)); + condition = QUOTE(!GVAR(advancedBandages)); itemConsumed = 1; callbackSuccess = QFUNC(treatmentBandage); callbackFailure = ""; @@ -33,7 +33,7 @@ class GVAR(Actions) { class FieldDressing: BasicBandage { displayName = CSTRING(Actions_FieldDressing); items[] = {"ACE_fieldDressing"}; - condition = QEGVAR(medical,advancedBandages); + condition = QGVAR(advancedBandages); litter[] = { {"All", "_bloodLossOnBodyPart > 0", {{"ACE_MedicalLitter_bandage2", "ACE_MedicalLitter_bandage3"}}}, {"All", "_bloodLossOnBodyPart <= 0", {"ACE_MedicalLitter_clean"}} @@ -42,7 +42,7 @@ class GVAR(Actions) { class PackingBandage: BasicBandage { displayName = CSTRING(Actions_PackingBandage); items[] = {"ACE_packingBandage"}; - condition = QEGVAR(medical,advancedBandages); + condition = QGVAR(advancedBandages); litter[] = { {"All", "", {"ACE_MedicalLitter_packingBandage"}}, {"All", "_bloodLossOnBodyPart > 0", {{"ACE_MedicalLitter_bandage2", "ACE_MedicalLitter_bandage3"}}}, @@ -52,7 +52,7 @@ class GVAR(Actions) { class ElasticBandage: BasicBandage { displayName = CSTRING(Actions_ElasticBandage); items[] = {"ACE_elasticBandage"}; - condition = QEGVAR(medical,advancedBandages); + condition = QGVAR(advancedBandages); litter[] = { {"All", "_bloodLossOnBodyPart > 0", {{"ACE_MedicalLitter_bandage2", "ACE_MedicalLitter_bandage3"}}}, {"All", "_bloodLossOnBodyPart <= 0", {"ACE_MedicalLitter_clean"}} @@ -61,7 +61,7 @@ class GVAR(Actions) { class QuikClot: BasicBandage { displayName = CSTRING(Actions_QuikClot); items[] = {"ACE_quikclot"}; - condition = QEGVAR(medical,advancedBandages); + condition = QGVAR(advancedBandages); litter[] = { {"All", "", {"ACE_MedicalLitter_QuickClot"}}, {"All", "_bloodLossOnBodyPart > 0", {{"ACE_MedicalLitter_bandage2", "ACE_MedicalLitter_bandage3"}}}, @@ -105,14 +105,14 @@ class GVAR(Actions) { class Adenosine: Morphine { displayName = CSTRING(Inject_Adenosine); displayNameProgress = CSTRING(Injecting_Adenosine); - condition = QEGVAR(medical,advancedMedication); + condition = QGVAR(advancedMedication); items[] = {"ACE_adenosine"}; litter[] = { {"All", "", {"ACE_MedicalLitter_adenosine"}} }; }; class Atropine: Morphine { displayName = CSTRING(Inject_Atropine); displayNameProgress = CSTRING(Injecting_Atropine); - condition = QEGVAR(medical,advancedMedication); + condition = QGVAR(advancedMedication); items[] = {"ACE_atropine"}; litter[] = { {"All", "", {"ACE_MedicalLitter_atropine"}} }; }; @@ -130,7 +130,7 @@ class GVAR(Actions) { displayName = CSTRING(Actions_Blood4_1000); displayNameProgress = CSTRING(Transfusing_Blood); allowedSelections[] = {"LeftArm", "RightArm", "LeftLeg", "RightLeg"}; - allowSelfTreatment = QEGVAR(medical,allowSelfIV); + allowSelfTreatment = QGVAR(allowSelfIV); category = "advanced"; requiredMedic = 1; treatmentTime = 12; @@ -187,7 +187,7 @@ class GVAR(Actions) { requiredMedic = 0; treatmentTime = 2.5; items[] = {}; - condition = QUOTE(!EGVAR(medical,advancedDiagnose)); + condition = QUOTE(!GVAR(advancedDiagnose)); callbackSuccess = QFUNC(actionDiagnose); callbackFailure = ""; callbackProgress = ""; @@ -200,7 +200,7 @@ class GVAR(Actions) { displayName = CSTRING(Actions_CheckPulse); displayNameProgress = CSTRING(Check_Pulse_Content); allowedSelections[] = {"All"}; - condition = QEGVAR(medical,advancedDiagnose); + condition = QGVAR(advancedDiagnose); callbackSuccess = QFUNC(actionCheckPulse); animationCallerProne = ""; animationCallerSelfProne = ""; diff --git a/addons/medical_treatment/ACE_Settings.hpp b/addons/medical_treatment/ACE_Settings.hpp index 7326a3ec09..918b665aa0 100644 --- a/addons/medical_treatment/ACE_Settings.hpp +++ b/addons/medical_treatment/ACE_Settings.hpp @@ -1,4 +1,26 @@ class ACE_Settings { + // Settings without EGVAR are new and don't need backwards compat + class GVAR(advancedBandages) { + displayName = CSTRING(advancedBandages_DisplayName); + description = CSTRING(advancedBandages_Description); + typeName = "BOOL"; + value = 1; + // todo: I don't like that wound reopening requires this setting to be enabled, they should be independent + }; + class GVAR(advancedDiagnose) { + displayName = CSTRING(advancedDiagnose_DisplayName); + description = CSTRING(advancedDiagnose_Description); + typeName = "BOOL"; + value = 1; + // todo: this setting just disables some treatment options, remove? + }; + class GVAR(advancedMedication) { + displayName = CSTRING(advancedMedication_DisplayName); + description = CSTRING(advancedMedication_Description); + typeName = "BOOL"; + value = 1; + }; + // todo: the strings for all three advanced bandages/medication/diagnose settings are terribly ambigious class EGVAR(medical,allowLitterCreation) { category = ECSTRING(medical,Category_Medical); displayName = CSTRING(allowLitterCreation); @@ -6,6 +28,20 @@ class ACE_Settings { typeName = "BOOL"; value = 1; }; + class EGVAR(medical,CPRcreatesPulse) { + category = ECSTRING(medical,Category_Medical); + displayName = CSTRING(CPRcreatesPulse); + description = CSTRING(CPRcreatesPulse_Description); + typeName = "BOOL"; + value = 1; + }; + class EGVAR(medical,litterCleanUpDelay) { + category = ECSTRING(medical,Category_Medical); + displayName = CSTRING(litterCleanUpDelay); + description = CSTRING(litterCleanUpDelay_Description); + typeName = "SCALAR"; + value = 0; + }; class EGVAR(medical,litterSimulationDetail) { category = ECSTRING(medical,Category_Medical); displayName = CSTRING(litterSimulationDetail); @@ -16,19 +52,12 @@ class ACE_Settings { values[] = {"Off", "Low", "Medium", "High", "Ultra"}; _values[] = { 0, 50, 100, 1000, 5000 }; }; - class EGVAR(medical,litterCleanUpDelay) { - category = ECSTRING(medical,Category_Medical); - displayName = CSTRING(litterCleanUpDelay); - description = CSTRING(litterCleanUpDelay_Description); - typeName = "SCALAR"; + class GVAR(medical,increaseTrainingInLocations) { + category = CSTRING(Category_Medical); + displayName = CSTRING(increaseTrainingInLocations_DisplayName); + description = CSTRING(increaseTrainingInLocations_Description); value = 0; - }; - class EGVAR(medical,CPRcreatesPulse) { - category = ECSTRING(medical,Category_Medical); - displayName = CSTRING(CPRcreatesPulse); - description = CSTRING(CPRcreatesPulse_Description); typeName = "BOOL"; - value = 1; }; class EGVAR(medical,PAKTime) { category = ECSTRING(medical,Category_Medical); @@ -37,4 +66,78 @@ class ACE_Settings { typeName = "SCALAR"; value = 0; }; + class GVAR(woundReopening) { + displayName = CSTRING(woundReopening_DisplayName); + description = CSTRING(woundReopening_Description); + typeName = "BOOL"; + value = 1; + }; + class EGVAR(medical,medicSetting_Epi) { + displayName = CSTRING(medicSetting_Epi_DisplayName); + description = CSTRING(medicSetting_Epi_Description); + typeName = "SCALAR"; + value = 0; + values[] = {CSTRING(anyone), CSTRING(medicsOnly), CSTRING(doctorsOnly)}; + }; + class EGVAR(medical,medicSetting_PAK) { + displayName = CSTRING(medicSetting_PAK_DisplayName); + description = CSTRING(medicSetting_PAK_Description); + typeName = "SCALAR"; + value = 0; + values[] = {CSTRING(anyone), CSTRING(medicsOnly), CSTRING(doctorsOnly)}; + }; + class EGVAR(medical,medicSetting_SurgicalKit) { + displayName = CSTRING(medicSetting_SurgicalKit_DisplayName); + description = CSTRING(medicSetting_SurgicalKit_Description); + typeName = "SCALAR"; + value = 0; + values[] = {CSTRING(anyone), CSTRING(medicsOnly), CSTRING(doctorsOnly)}; + }; + class EGVAR(medical,consumeItem_PAK) { + displayName = CSTRING(consumeItem_PAK_DisplayName); + description = CSTRING(consumeItem_PAK_Description); + typeName = "SCALAR"; + value = 1; + values[] = {"No", "Yes"}; + }; + class EGVAR(medical,consumeItem_SurgicalKit) { + displayName = CSTRING(consumeItem_SurgicalKit_DisplayName); + description = CSTRING(consumeItem_SurgicalKit_Description); + typeName = "SCALAR"; + value = 1; + values[] = {"No", "Yes"}; + }; + class EGVAR(medical,useLocation_Epi) { + displayName = CSTRING(useLocation_Epi_DisplayName); + description = CSTRING(useLocation_Epi_Description); + typeName = "SCALAR"; + value = 0; + values[] = {ECSTRING(common,Anywhere), ECSTRING(common,Vehicle), CSTRING(medicalFacility), CSTRING(vehicleAndFacility), ECSTRING(common,Disabled)}; + }; + class EGVAR(medical,useLocation_PAK) { + displayName = CSTRING(useLocation_PAK_DisplayName); + description = CSTRING(useLocation_PAK_Description); + typeName = "SCALAR"; + value = 0; + values[] = {ECSTRING(common,Anywhere), ECSTRING(common,Vehicle), CSTRING(medicalFacility), CSTRING(vehicleAndFacility), ECSTRING(common,Disabled)}; + }; + class EGVAR(medical,useLocation_SurgicalKit) { + displayName = CSTRING(useLocation_SurgicalKit_DisplayName); + description = CSTRING(useLocation_SurgicalKit_Description); + typeName = "SCALAR"; + value = 0; + values[] = {ECSTRING(common,Anywhere), ECSTRING(common,Vehicle), CSTRING(medicalFacility), CSTRING(vehicleAndFacility), ECSTRING(common,Disabled)}; + }; + class GVAR(allowSelfIV) { + displayName = CSTRING(allowSelfIV_DisplayName); + description = CSTRING(allowSelfIV_Description); + typeName = "SCALAR"; + value = 0; + values[] = {"No", "Yes"}; + }; + class EGVAR(medical,allowUnconsciousAnimationOnTreatment) { + displayName = CSTRING(allowUnconsciousAnimationOnTreatment_DisplayName); + typeName = "BOOL"; + value = 0; + }; }; diff --git a/addons/medical_treatment/functions/fnc_isMedic.sqf b/addons/medical_treatment/functions/fnc_isMedic.sqf index afd7a700b2..65bbdcc853 100644 --- a/addons/medical_treatment/functions/fnc_isMedic.sqf +++ b/addons/medical_treatment/functions/fnc_isMedic.sqf @@ -20,11 +20,11 @@ params ["_unit", ["_medicN", 1]]; private _class = _unit getVariable [QEGVAR(medical,medicClass), [0, 1] select (_unit getUnitTrait "medic")]; -if (_class >= _medicN min EGVAR(medical,medicSetting)) exitWith {true}; +if (_class >= _medicN) exitWith {true}; if (!EGVAR(medical,increaseTrainingInLocations)) exitWith {false}; if (([_unit] call FUNC(isInMedicalVehicle)) || {[_unit] call FUNC(isInMedicalFacility)}) then { _class = _class + 1; //boost by one: untrained becomes medic, medic becomes doctor }; -_class >= _medicN min EGVAR(medical,medicSetting); +_class >= _medicN diff --git a/addons/medical_treatment/functions/fnc_treatmentBandageLocal.sqf b/addons/medical_treatment/functions/fnc_treatmentBandageLocal.sqf index 5d689183c4..15e7620fb7 100644 --- a/addons/medical_treatment/functions/fnc_treatmentBandageLocal.sqf +++ b/addons/medical_treatment/functions/fnc_treatmentBandageLocal.sqf @@ -39,7 +39,7 @@ _openWounds set [_woundIndex, _wound]; _target setVariable [QEGVAR(medical,openWounds), _openWounds, true]; // Handle the reopening of bandaged wounds -if (_impact > 0 && {EGVAR(medical,advancedBandages) && {EGVAR(medical,woundReopening)}}) then { +if (_impact > 0 && {GVAR(advancedBandages) && {EGVAR(medical,woundReopening)}}) then { [_target, _impact, _partIndex, _woundIndex, _wound, _bandage] call FUNC(handleBandageOpening); }; diff --git a/addons/medical_treatment/functions/fnc_treatmentMedicationLocal.sqf b/addons/medical_treatment/functions/fnc_treatmentMedicationLocal.sqf index b2c497b841..76746175d8 100644 --- a/addons/medical_treatment/functions/fnc_treatmentMedicationLocal.sqf +++ b/addons/medical_treatment/functions/fnc_treatmentMedicationLocal.sqf @@ -18,8 +18,8 @@ params ["_target", "_className", "_partIndex"]; TRACE_3("params",_target,_className,_partIndex); -if (!EGVAR(medical,advancedMedication)) exitWith { - TRACE_1("MedicalSettingAdvancedMedication is:", EGVAR(medical,advancedMedication)); +if (!GVAR(advancedMedication)) exitWith { + TRACE_1("MedicalSettingAdvancedMedication is:", GVAR(advancedMedication)); if (_className == "Morphine") exitWith { private _painSupress = GET_PAIN_SUPPRESS(_target); _target setVariable [VAR_PAIN_SUPP, (_painSupress + MORPHINE_PAIN_SUPPRESSION) min 1, true]; diff --git a/addons/medical_treatment/stringtable.xml b/addons/medical_treatment/stringtable.xml index df2d51d910..17f8aa5129 100644 --- a/addons/medical_treatment/stringtable.xml +++ b/addons/medical_treatment/stringtable.xml @@ -1,6 +1,376 @@ + + + Advanced Bandages + + + Enable advanced bandages (required for wound reopening) + + + Advanced Diagnose + + + Enable advanced diagnose + + + Advanced Medication + + + Enable advanced medication + + + Locations boost training + Místa pro vylepšení zkušeností + Località aumentano addestramento + Örtliche Trainingssteigerung + Ubicación mejora entrenamiento. + Miejsca zwiększają wyszkolenie + Localização melhora treinamento + Le lieu améliore l'efficacité + Места ускоренного обучения + 衛生兵としての能力を与える場所 + 교육 증가 지역 + 受所在位置影响提升医疗能力 + 受所在位置影響提升醫療能力 + + + Boost medic rating in medical vehicles or near medical facilities [untrained becomes medic, medic becomes doctor] + Zlepšit zkušenosti zdravotníka v medickém vozidle nebo poblíž zdravotního zařízení [nezkušení se stane zdravotníkem, zdravotník se stane doktorem] + Aumenta il rating medico in veicoli medici o vicino strutture mediche [non addestrato diventa medico, medico diventa dottore] + Steigert die medizinische Einstufung eines Soldaten in Sanitätsfarhzeugen oder in der Nähe von Sanitätseinrichtungen [untrainiert wird zu Sanitäter, Sanitäter zu Doktor] + Mejora el entrenamiento médico dentro de vehículos médicos o cerca de instalaciones médicas (no entrenados se convierten en médicos, médicos se convierten en doctores) + Zwiększa poziom wyszkolenia medyków wewnątrz pojazdów medycznych lub w pobliżu budynków medycznych [niedoświadczony zostaje medykiem, medyk zostaje doktorem] + Aumenta a classificação do médico dentro de veículos médicos ou perto de instalações médicas [sem treinamento vira médico, médico vira doutor] + Améliore l'efficacité des soins dans les véhicules ou structures de soins [non formés deviennent médecins, médecins deviennent docteurs] + Улучшает медицинскую подготовку в мед. транспорте и около мед. строений [нетренированные становятся медиками, медики становятся врачами] + 医療車両や医療施設の近くは衛生兵としての能力を与える場所となり、衛生兵の訓練を受けていないのに衛生兵としてなる (未訓練は衛生兵に、衛生兵は医師に) + 의무병의 수준이 주변의 차량이나 의료시설에 따라 증가합니다. [비교육자가 의무병이되고, 의무병이 의사가 됩니다] + 当人员在医疗载具或是医护设施旁进行医疗时, 该员医疗能力将会有所提升 (未受训人员提升为医疗兵, 医疗兵提升为军医) + 當人員在醫療載具或是醫護設施旁進行醫療時, 該員醫療能力將會有所提升 (未受訓人員提升為醫療兵, 醫療兵提升為軍醫) + + + Self IV Transfusion + + + Allows using IV Transfusions on yourself + + + Allow Unconscious Animation + + + Allow Unconscious Animation on Treatment. + + + CPR creates pulse + HLW erzeugt einen Puls + + + CPR will create a pulse for the patient while performing + HLW erzeugt während der Behandlung beim Patienten einen Puls + + + Enable Advanced wounds + Усложненные раны + Aktywuj zaawansowane rany + Activa heridas avanzadas + Aktiviere erweiterte Wunden + Povolit pokročilé zranění + Ativar ferimentos avançados + Activer les plaies compliquées + Komplex sebek engedélyezése + Abilita ferite Avanzate + アドバンスドな傷を有効化 + 고급 부상 활성화 + 启用进阶伤口系统 + 啟用進階傷口系統 + + + Allow reopening of bandaged wounds? + Будут ли открываться уже перевязанные раны? + Pozwól na otwieranie się zabandażowanych ran? + Permitir la reapertura de las heridas vendadas? + Erlaube das Öffnen von bandagierten Wunden? + Umožnit znovuotevření zavázané rány? + Permitr reabertura de ferimentos enfaixados? + Les plaies peuvent se rouvrir + Visszanyílhatnak a bekötözött sebek? + Permetti la riapertura di ferite bendate? + 包帯で巻かれた傷を再び開くようにしますか? + 붕대가 풀리는것을 활성화합니까? + 启用进阶伤口系统会使已被包扎的伤口有机率裂开 + 啟用進階傷口系統會使已被包紮的傷口有機率裂開 + + + + + Allow Epinephrine + Erlaube Epiniphrin + Permitir Epinefrina + Ograniczenia adrenaliny + Activer l'épinéphrine + Permette epinefrina + Povolit adrenalin + Permitir Epinefrina + Разрешить Адреналин + アドレナリンの許可 + 에피네프린 활성화 + 允许使用肾上腺素 + 允許使用腎上腺素 + + + Who can use Epinephrine? + + + Allow PAK + Использование аптечки + Ustawienie apteczek osobistych + Permitir EPA + Erlaube Erste-Hilfe-Set + Povolit osobní lékárničky (PAK) + Permitir Kit de Primeiros Socorros + Activer la trousse sanitaire + Elsősegélycsomag engedélyezése + Consenti Kit di Pronto Soccorso + 応急処置キットの許可 + 개인응급키트 활성화 + 允许使用个人急救包 + 允許使用個人急救包 + + + Who can use the PAK for full heal? + Кому разрешено выполнять полное лечение с помощью аптечки? + Kto może skorzystać z apteczki osobistej w celu pełnego uleczenia? + ¿Quién puede utilizar el EPA para una cura completa? + Wer kann das Erste-Hilfe-Set für eine Endheilung verwenden? + Kdo může použít osobní lékárničku pro plné vyléčení? + Quem pode usar o KPS para cura completa? + Qui peut utilier la trousse sanitaire pour des soins complets? + Ki használhatja az elsősegélycsomagot teljes gyógyításra? + Chi può usare il KPS per cura completa? + 完全に回復できるよう誰しもが応急処置キットを使えるようにしますか? + 완전한 체력회복을 위해 어느 인원이 개인응급키트을 쓸 수 있습니까? (기본 의료 전용) + 谁能够使用个人急救包来达到完整医疗? + 誰能夠使用個人急救包來達到完整醫療? + + + Anyone + Кем угодно + Wszyscy + Nadie + Jeder + Kdokoliv + Qualquer um + Tous + Akárki + Chiunque + だれでも + 모두 + 任何人 + 任何人 + + + Medics only + Только медиками + Tylko medycy + Solo médicos + Nur Sanitäter + Pouze zdravotník + Somente médicos + Infirmiers uniquement + Csak orvosok + Solo medici + 衛生兵のみ + 의무병만 + 只限医疗兵 + 只限醫療兵 + + + Doctors only + Только врачами + Tylko doktorzy + Solo doctores + Nur Ärzte + Pouze doktor + Somente doutores + Médecins uniquement + Csak doktorok + Solo dottori + 医師のみ + 오직 의사만 + 只限军医 + 只限軍醫 + + + Medical facility + В госпитале + Budynki medyczne + Centro médico + Medizinische Einrichtungen + Zdravotnické zařízení + Instalação médica + Dans les structures sanitaires + Orvosi létesítmény + Strutture mediche + 医療施設でのみ + 의료시설 + 医疗设施 + 醫療設施 + + + Vehicles & facility + В транспорте и госпитале + Pojazdy i budynki medyczne + Vehículos y centros + Fahrzeuge & Einrichtungen + Vozidla a zařízení + Veículos e instalações + Dans les véhicules et les structures sanitaires + Járművek & létesítmény + Veicoli e Strutture + 車両 & 施設 + 차량 및 시설 + 医疗载具 & 医疗设施 + 醫療載具 & 醫療設施 + + + Remove PAK on use + Удалять аптечки после использования + Usuń apteczkę po użyciu + Eliminar EPA después del uso + Entf. Erste-Hilfe-Set bei Verwendung + Odebrat osobní lékárničku po použití + Remover o KPS depois do uso + Utilisation unique de la trousse sanitaire + Elsősegélycsomag eltávolítása használatkor + Rimuovi Kit Pronto Soccorso dopo l'uso + 応急処置キットの削除 + 개인응급키트 사용후 사라짐 + 在使用后删除个人急救包 + 在使用後刪除個人急救包 + + + Should PAK be removed on usage? + Нужно ли удалять аптечки после использования? + Czy apteczka osobista powinna zniknąć z ekwipunku po jej użyciu? + El EPA será eliminado después de usarlo + Sollen Erste-Hilfe-Sets bei Verwendung entfernt werden? + Má se osobní lékárnička odstranit po použití? + Deve o KPS ser removido depois do uso? + La trousse sanitaire doit être consommée à l'utilisation? + Eltávolítódjon az elsősegélycsomag használatkor? + Il Kit Pronto Soccorso dev'essere rimosso dopo l'utilizzo? + 応急処置キットを使うと削除しますか? + 개인응급키트를 사용하고 나서 제거합니까? + 要在使用后删除个人急救包吗? + 要在使用後刪除個人急救包嗎? + + + Locations Epinephrine + Orte für Epiniphrin + Ubicaciones epinefrina + Ograniczenia adrenaliny + Utilisation de l'épinéphrine + Ubicazione epinefrina + Oblast k použití adrenalinu + Localizações de Epinefrina + Место использования адреналина + アドレナリンをつかう場所 + 에피네프린 사용 장소 + 肾上腺素使用地点 + 腎上腺素使用地點 + + + Where can the Epinephrine be used? + + + How long should PAK take to apply? + + + How long should PAK take to apply? Use 0 for default (based on damage) + + + + + Enable Litter + Включить мусор + Aktywuj odpadki + Activar restos médicos + Abfälle aktivieren + Povolit odpadky + Ativar lixo médico + Activer les détritus + Szemét engedélyezése + Abilita Barella + 医療廃棄物の表示を有効化 + + + Enable litter being created upon treatment + Включить появление мусора после лечения + Twórz odpadki medyczne podczas leczenia + Activar los restos médicos que se crean en el tratamiento + Aktiviere Abfälle, wenn eine Behandlung durchgeführt wurde + Vytváří odpad zdravotnického materiálu pří léčení + Ativar lixo ser criado após tratamento + Activer la création de détrimus au début des traitements + Engedélyezi a szemét keletkezését ellátáskor + Abilita la creazione della barella dopo trattamento + 治療を始めると、医療廃棄物の作成を有効化する + + + Litter Simulation Detail + Detale zużytych medykamentów + Detalle de simulación de basura + Количество мусора от медицины + Dettagli Simulazione Rifiuti + Niveau de simulation des détritus + Abfall-Detaillevel + Hulladékszimuláció részletessége + Detalhe da simulação de sujeira + Počet zobrazených předmětů po použití zdravotnického materiálu + 医療廃棄物を再現する詳細度 + + + Litter simulation detail level sets the number of litter items which will be locally spawned in the client. Excessive amounts in local areas could cause FPS lag, so this is a client only setting. + Opcja ta ustawia liczbę zużytych medykamentów, jakie pojawiają się lokalnie wokół gracza. Ich zbyt duża ilość może spowodować spadki FPS, dlatego jest to ustawienie tylko po stronie klienta. + Detalle simulación de basura establece el número de artículos de basura que se generan a nivel local en el cliente. Las cantidades excesivas en áreas locales podrían causar caída de rendimiento, así que esto es un ajuste de cliente únicamente. + Устанавливает количество мусора, который появляется после использования мед. препаратов. Большое количество мусора может уменьшить производительность, поэтому данная настройка локальна для клиента. + Il numero di rifiuti che verranno creati localmente. La creazione di troppi rifiuti in aree locali potrebbe causare lag e calo di FPS. Questo è un settaggio lato client. + Le niveau de simulation des détritus règle la quantité de déchets qui vont être créés localement chez le client. Des quantitées excessive chez certains clients peuvent causer des chutes de FPS, c'est donc une option client uniquement. + Die Einstellung für das Abfall-Detaillevel stellt die Menge des lokal angezeigten medizinischen Abfalls ein. Zuviel Abfall kann FPS-Einbrüche erzeugen, weswegen diese Einstellung nur clientseitig ist. + A hulladékszimuláció részletessége megszabja a kliens által megjelenített hulladékobjektumok mennyiségét. Súlyos mennyiségek izolált területeken alacsony FPS-t okozhatnak, így ez egy kliensoldali beállítás. + O nível de detalhe de sujeira determina o número de itens que irão aparecer no cliente. Quantidades excessivas em áreas locais podem aumentar o lag do FPS, então esta é uma opção somente para o cliente. + Počet zobrazených předmětů po použití zdravotnického materiálu ovlivňuje počet objektů, které budou zobrazeny klientovi v místě použití zdravotnického materiálu. Vyšší množství objektů může způsobovat poklesy FPS a proto je toto nastavení čistě na klientovi. + 医療廃棄物再現度は各クライアントでローカルに作成される、医療廃棄物への詳細度を決定できます。ローカルで多くのアイテムがあると FPS の低下を引き起こすため、クライアント側のみの設定です。 + + + Life time of litter objects + Время удаления мусора + Długość życia odpadków + Tiempo de vida de los restos médicos + Dauer des angezeigten Abfalls + Životnost pro odpadky + Tempo de vida dos objetos do lixo + Durée d'affichage des détritus + Szemétobjektumok élettartama + Tempo di vita delle barelle + 医療廃棄物の作成限界数を設定 + + + How long should litter objects stay? In seconds. -1 is forever. + Как долго мусор будет оставаться на земле? В секундах. -1 означает бесконечное время. + Ile czasu musi upłynąć, aby odpadki zaczęły znikać? W sekundach. -1 dla nieskończoności. + ¿Por cuánto tiempo deben permanecer los restos médicos? En segundos. -1 es para siempre. + Wie lange sollen Abfälle am Boden liegen (in Sekunden)? -1 ist für immer. + Za jak dlouho začnou odpadky mizet? V sekundách. -1 navždy. + Quanto tempo os objetos do lixo devem ficar? Em segundos. -1 é para sempre. + Combien de temps doivent rester affiché les détritus? En secondes. -1 pour tout le temps + Milyen sokáig legyenek jelen a szemétobjektumok (másodpercben)? A -1 végtelen időt jelent. + Per quanto devono restare le barelle? In secondi. -1 è permanente + 医療廃棄物オブジェクトが表示されつづける時間を設定しますか?-1 は永遠です。 + + [ACE] Medical Supply Crate (Basic) [ACE] Ящик с медикаментами (базовая медицина) @@ -192,98 +562,6 @@ 军医 軍醫 - - Enable Litter - Включить мусор - Aktywuj odpadki - Activar restos médicos - Abfälle aktivieren - Povolit odpadky - Ativar lixo médico - Activer les détritus - Szemét engedélyezése - Abilita Barella - 医療廃棄物の表示を有効化 - - - Enable litter being created upon treatment - Включить появление мусора после лечения - Twórz odpadki medyczne podczas leczenia - Activar los restos médicos que se crean en el tratamiento - Aktiviere Abfälle, wenn eine Behandlung durchgeführt wurde - Vytváří odpad zdravotnického materiálu pří léčení - Ativar lixo ser criado após tratamento - Activer la création de détrimus au début des traitements - Engedélyezi a szemét keletkezését ellátáskor - Abilita la creazione della barella dopo trattamento - 治療を始めると、医療廃棄物の作成を有効化する - - - CPR creates pulse - HLW erzeugt einen Puls - - - CPR will create a pulse for the patient while performing - HLW erzeugt während der Behandlung beim Patienten einen Puls - - - Litter Simulation Detail - Detale zużytych medykamentów - Detalle de simulación de basura - Количество мусора от медицины - Dettagli Simulazione Rifiuti - Niveau de simulation des détritus - Abfall-Detaillevel - Hulladékszimuláció részletessége - Detalhe da simulação de sujeira - Počet zobrazených předmětů po použití zdravotnického materiálu - 医療廃棄物を再現する詳細度 - - - Litter simulation detail level sets the number of litter items which will be locally spawned in the client. Excessive amounts in local areas could cause FPS lag, so this is a client only setting. - Opcja ta ustawia liczbę zużytych medykamentów, jakie pojawiają się lokalnie wokół gracza. Ich zbyt duża ilość może spowodować spadki FPS, dlatego jest to ustawienie tylko po stronie klienta. - Detalle simulación de basura establece el número de artículos de basura que se generan a nivel local en el cliente. Las cantidades excesivas en áreas locales podrían causar caída de rendimiento, así que esto es un ajuste de cliente únicamente. - Устанавливает количество мусора, который появляется после использования мед. препаратов. Большое количество мусора может уменьшить производительность, поэтому данная настройка локальна для клиента. - Il numero di rifiuti che verranno creati localmente. La creazione di troppi rifiuti in aree locali potrebbe causare lag e calo di FPS. Questo è un settaggio lato client. - Le niveau de simulation des détritus règle la quantité de déchets qui vont être créés localement chez le client. Des quantitées excessive chez certains clients peuvent causer des chutes de FPS, c'est donc une option client uniquement. - Die Einstellung für das Abfall-Detaillevel stellt die Menge des lokal angezeigten medizinischen Abfalls ein. Zuviel Abfall kann FPS-Einbrüche erzeugen, weswegen diese Einstellung nur clientseitig ist. - A hulladékszimuláció részletessége megszabja a kliens által megjelenített hulladékobjektumok mennyiségét. Súlyos mennyiségek izolált területeken alacsony FPS-t okozhatnak, így ez egy kliensoldali beállítás. - O nível de detalhe de sujeira determina o número de itens que irão aparecer no cliente. Quantidades excessivas em áreas locais podem aumentar o lag do FPS, então esta é uma opção somente para o cliente. - Počet zobrazených předmětů po použití zdravotnického materiálu ovlivňuje počet objektů, které budou zobrazeny klientovi v místě použití zdravotnického materiálu. Vyšší množství objektů může způsobovat poklesy FPS a proto je toto nastavení čistě na klientovi. - 医療廃棄物再現度は各クライアントでローカルに作成される、医療廃棄物への詳細度を決定できます。ローカルで多くのアイテムがあると FPS の低下を引き起こすため、クライアント側のみの設定です。 - - - Life time of litter objects - Время удаления мусора - Długość życia odpadków - Tiempo de vida de los restos médicos - Dauer des angezeigten Abfalls - Životnost pro odpadky - Tempo de vida dos objetos do lixo - Durée d'affichage des détritus - Szemétobjektumok élettartama - Tempo di vita delle barelle - 医療廃棄物の作成限界数を設定 - - - How long should litter objects stay? In seconds. -1 is forever. - Как долго мусор будет оставаться на земле? В секундах. -1 означает бесконечное время. - Ile czasu musi upłynąć, aby odpadki zaczęły znikać? W sekundach. -1 dla nieskończoności. - ¿Por cuánto tiempo deben permanecer los restos médicos? En segundos. -1 es para siempre. - Wie lange sollen Abfälle am Boden liegen (in Sekunden)? -1 ist für immer. - Za jak dlouho začnou odpadky mizet? V sekundách. -1 navždy. - Quanto tempo os objetos do lixo devem ficar? Em segundos. -1 é para sempre. - Combien de temps doivent rester affiché les détritus? En secondes. -1 pour tout le temps - Milyen sokáig legyenek jelen a szemétobjektumok (másodpercben)? A -1 végtelen időt jelent. - Per quanto devono restare le barelle? In secondi. -1 è permanente - 医療廃棄物オブジェクトが表示されつづける時間を設定しますか?-1 は永遠です。 - - - How long should PAK take to apply ? - - - How long should PAK take to apply ? Use 0 for default (based on damage) - Bandage (Basic) Bandage (Einfach) @@ -3164,70 +3442,6 @@ 完全医疗包扎的部位至痊愈 完全醫療包紮的部位至痊癒 - - Style of menu (Medical) - Styl menu medycznego - Style de menu (médical) - Menüstil (Medizin) - Вид меню (медицина) - Tipo de menú (Medico) - Styl menu (Zdravotní) - Estilo do menu (Médico) - Menü stílusa (Orvosi) - Stile del menù (medico) - メニューの表示形式 (治療) - 메뉴의 스타일 (의료) - 选单样式 (医疗) - 選單樣式 (醫療) - - - Select the type of menu you prefer; default 3d selections or radial. - Wybierz rodzaj menu, który preferujesz: domyślne pozycje 3D lub radialne - Sélectionne le type de menu préféré; par défaut la sélection 3D ou radiale - Wähle den Menüstil: Standard 3D-Auswahl oder kreisförmig. - Выберите тип меню: стандартный вариант (3D) или радиальный - Selecciona el tipo de menú que prefieres: selecciones 3d por defecto o radial. - Selecione o tipo de menu que você prefere; padrão seleções 3d ou radial. - Válaszd ki a neked megfelelő menüt: Alapértelmezett 3D válogatás, vagy kerek. - Zvolte typ menu: základní 3D výběr nebo kruhový - Seleziona il tipo di menù che preferisci: selezione (3D), radiale o disabilitata. - 好みに応じてメニューの表示形式を選んでください。標準では 3D 選択か円状です。 - 선호하는 종류의 메뉴를 고르세요; 기본 3d 선택형 혹은 다이얼형 - 选择你喜欢的选单样式; 预设为3D选项或放射状 - 選擇你喜歡的選單樣式; 預設為3D選項或放射狀 - - - Selections (3d) - Pozycje (3D) - Sélection (3D) - 3D-Auswahl - Стандартный (3D) - Selecciones (3d) - Seleção (3d) - Választékok (3D) - 3D výběr - Selezione (3D) - 選択 (3d) - 선택 (3d) - 选择 (3D) - 選擇 (3D) - - - Radial - Radialne - Radial - Kreisförmig - Радиальный - Radial - Radial - Kerek - Kruhový - Radiale - 円状 - 다이얼형 - 放射状 - 放射狀 - Treating... Behandeln... diff --git a/addons/medical_vitals/functions/fnc_handleUnitVitals.sqf b/addons/medical_vitals/functions/fnc_handleUnitVitals.sqf index a2f9109d48..2788b6b031 100644 --- a/addons/medical_vitals/functions/fnc_handleUnitVitals.sqf +++ b/addons/medical_vitals/functions/fnc_handleUnitVitals.sqf @@ -76,7 +76,7 @@ private _tourniquets = GET_TOURNIQUETS(_unit); _tourniquetPain = _tourniquetPain max (CBA_missionTime - _x - 120) * 0.001; }; } forEach _tourniquets; -[_unit, _tourniquetPain] call EFUNC(medical,adjustPainLevel); +[_unit, _tourniquetPain] call EFUNC(medical_status,adjustPainLevel); private _heartRate = [_unit, _deltaT, _syncValues] call FUNC(updateHeartRate); [_unit, _deltaT, _syncValues] call FUNC(updatePainSuppress); diff --git a/addons/medical_vitals/functions/fnc_updatePainSuppress.sqf b/addons/medical_vitals/functions/fnc_updatePainSuppress.sqf index 6a9d6f77fc..2bdab699ab 100644 --- a/addons/medical_vitals/functions/fnc_updatePainSuppress.sqf +++ b/addons/medical_vitals/functions/fnc_updatePainSuppress.sqf @@ -46,7 +46,7 @@ private _pain = GET_PAIN(_unit); _unit setVariable [QEGVAR(medical_status,pain), 0 max (_pain - _deltaT / PAIN_FADE_TIME), _syncValue]; // Handles simple medication -if (!EGVAR(medical,advancedMedication)) then { +if (isNil QEGVAR(medical_treatment,advancedMedication) || {!EGVAR(medical_treatment,advancedMedication)}) then { private _painSupress = _unit getVariable [VAR_PAIN_SUPP, 0]; _painSupress = _painSupress - _deltaT / PAIN_SUPPRESSION_FADE_TIME; _unit setVariable [VAR_PAIN_SUPP, 0 max _painSupress, _syncValue];