From a7bd05ddd35f5350fec6695c28033158d72a1383 Mon Sep 17 00:00:00 2001 From: mharis001 <34453221+mharis001@users.noreply.github.com> Date: Sat, 22 Feb 2020 15:31:14 -0500 Subject: [PATCH] Medical - Add fracture chance setting (#7396) --- addons/main/script_mod.hpp | 2 +- addons/medical/initSettings.sqf | 13 +- addons/medical/stringtable.xml | 128 +----------------- .../functions/fnc_woundsHandlerSQF.sqf | 21 ++- 4 files changed, 34 insertions(+), 130 deletions(-) diff --git a/addons/main/script_mod.hpp b/addons/main/script_mod.hpp index 3cfe2f7d8fd..73971e09707 100644 --- a/addons/main/script_mod.hpp +++ b/addons/main/script_mod.hpp @@ -11,7 +11,7 @@ // MINIMAL required version for the Mod. Components can specify others.. #define REQUIRED_VERSION 1.96 -#define REQUIRED_CBA_VERSION {3,12,2} +#define REQUIRED_CBA_VERSION {3,14,0} #ifdef COMPONENT_BEAUTIFIED #define COMPONENT_NAME QUOTE(ACE3 - COMPONENT_BEAUTIFIED) diff --git a/addons/medical/initSettings.sqf b/addons/medical/initSettings.sqf index 6eaed9623a7..bb2459c2578 100644 --- a/addons/medical/initSettings.sqf +++ b/addons/medical/initSettings.sqf @@ -5,7 +5,7 @@ LSTRING(Category), [[0, 1, 2], [ELSTRING(common,Disabled), LSTRING(Limping_LimpOnOpenWounds), LSTRING(Limping_LimpRequiresStitching)], 1], true, - {[QGVAR(limping), _this] call EFUNC(common,cbaSettings_settingChanged)}, + {}, true ] call CBA_settings_fnc_init; @@ -16,7 +16,16 @@ LSTRING(Category), [[0, 1, 2], [ELSTRING(common,Disabled), LSTRING(Fractures_SplintHealsFully), LSTRING(Fractures_SplintHasEffects)], 1], true, - {[QGVAR(fractures), _this] call EFUNC(common,cbaSettings_settingChanged)}, + {}, + true +] call CBA_settings_fnc_init; + +[ + QGVAR(fractureChance), + "SLIDER", + [LSTRING(FractureChance_DisplayName), LSTRING(FractureChance_Description)], + LSTRING(Category), + [0, 1, 0.8, 2, true], true ] call CBA_settings_fnc_init; diff --git a/addons/medical/stringtable.xml b/addons/medical/stringtable.xml index ee21f208142..c0bd142b291 100644 --- a/addons/medical/stringtable.xml +++ b/addons/medical/stringtable.xml @@ -32,7 +32,7 @@ Posibilidad de recuperar la conciencia - The probablity that a unit with stable vitals will wake up from unconsciousness (checked every 15 seconds). + The probability that a person with stable vitals will wake up from unconsciousness (checked every 15 seconds). Wahrscheinlichkeit, dass eine bewusstlose Person mit stabilen Vitalwerten wieder aufwacht (Überprüfung alle 15 Sekunden) 容体が安定しているユニットが気絶する確率を決定できます。(15 秒毎に確認) Вероятность, что стабилизированный юнит очнется от потери сознания (Проверяется каждые 15 сек) @@ -163,85 +163,11 @@ Las férulas sanan, pero no pueden correr Schienen heilen, aber ermöglichen kein Sprinten - - Remote Controlled AI - Ferngesteuerte KI-Einheiten - IA controlada remotamente - IA controlada remotamente - Zdalnie sterowane AI - Vzdáleně ovládané AI - IA contrôlées à distance - Távvezérelt AI - Зевса считать ботом - IA Controllate in Remoto - 遠隔操作された AI - 인공지능 원격조종 - 遥控AI - 遙控AI + + Fracture Chance - - Treat remote controlled units as AI not players? - Legt fest, ob ferngesteuerte Einheiten als KI anstatt als Spieler behandelt werden sollen. - ¿Tratar unidades remotamente controladas como IA? - Tratar unidades remotamente controladas como IA? - Traktuj jednostki zdalnie sterowane (przez Zeusa) jako AI, nie jako graczy? - Ošetřit vzdáleně ovládané jednotky jako AI, ne jako hráče? - Définit si les unités contrôlées à distance sont traitées comme des IA, et non comme des joueurs. - Távvezérelt egységek AI-ként, nem játékosként való kezelése? - Обрабатывать дистанционно управляемых юнитов как ботов, а не как игроков? - Considera le unità controllate in remoto come IA e non come giocatori? - 遠隔操作された AI を非プレイヤーとして扱いますか? - 원격 조작하는 AI는 비 플레이어로 취급합니까? - 以医疗AI的方式医疗被遥控的单位 - 以醫療AI的方式醫療被遙控的單位 - - - Prevent instant death - Откл. мгновенную смерть - Wyłącz natychmiastową śmierć - Prevenir muerte instantánea - Verhindere direkten Tod - Zabránit okamžité smrti - Previnir morte instantânea - Empêcher la mort instantanée - Azonnali halál kiiktatása - Previeni morte istantanea - 即死の防止 - 즉사 방지 - 防止当场死亡 - 防止當場死亡 - - - Have a unit move to unconscious instead of death - Бойцы теряют сознание вместо того, чтобы умирать - Spraw, aby jednostka została przeniesiona do stanu nieprzytomności zamiast ginąć na miejscu od śmiertelnych obrażeń - Mover una unidad a inconsciente en vez de a muerta - Lässt eine Einheit bewusstlos werden anstatt zu sterben - Jednotka upadne do bezvědomí namísto smrti - Fazer a unidade ficar inconsciente invés de morrer - Force une unité à perdre connaissance, au lieu de mourir sur le coup. - Egy egység kerüljön eszméletlen állapotba a halott helyett - Imposta un'unità come incosciente invece di morta - ユニットの即死を防止する為に気絶へ移行させます - 인원의 즉사를 방지코자 즉사 대신 기절시킵니다 - 伤者最严重只会立即进入昏迷,而非立即死亡 - 傷者最嚴重只會無意識,而非立即死亡 - - - Provides a medical system for both players and AI. - Включает медицинскую систему как для игроков, так и для ботов. - Moduł ten dostarcza system medyczny dla graczy oraz AI. - Proporciona un sistema médico para jugadores e IA. - Aktiviert ein Sanitätssystem für Spieler und KI. - Poskytuje zdravotní systém pro hráče a AI. - Proporciona o sistema médico para os jogadores e a IA. - Fournit un système médical aussi bien pour les joueurs que pour les IA. - Egy orvosi rendszert ad játékosok és AI-k számára. - Fornisce un sistema medico sia per giocatori che IA. - プレイヤーと AI の両方へ医療システムを提供します。 - 의료 시스템을 플레이어 및 인공지능에게 제공합니다. - 医疗系统将同时对玩家与AI发生作用 - 醫療系統將同時對玩家與AI發生作用 + + The probability of a fracture causing wound resulting in a fracture. Enabled for @@ -339,50 +265,6 @@ 设定人员是否会因为载具冲撞别的物件而产生伤害? 設定人員是否會因為載具衝撞別的物件而產生傷害? - - Heal hitpoints - Heile Trefferpunkte - Lecz hitpointy - Curar puntos de vida - Исцелять части тела - Curar hitpoints - Léčit hitponty - Cura Hitpoints - Guérir les blessures - ヒットポイントの回復 - 체력 회복 - 完整治疗 - 完整治療 - - - Heal fully bandaged hitpoints - Heile verbundene Trefferpunkte - Po bandażowaniu ulecz hitpointy, usuwając z nich ślady krwi i przywracając im pełną sprawność. - Curar miembros totalmente vendados - Исцелять полностью перебинтованные части тела - Curar totalmente hitpoints enfaixados - Heal fully bandaged hitpoints - Cura Hitpoints completamente bendati - Les plaies entièrement bandées seront guéries. - 包帯によりヒットポイントを完全に回復します。 - 붕대를 감아서 체력을 회복 - 繃帶是否會完整恢復生命值 - - - Configure the treatment settings from ACE Basic Medical - Behandlungseinstellungen der Standard ACE-Medizin konfigurieren - Configure las opciones de tratamiento del sistema médico básico de ACE - Skonfiguruj ustawienia leczenia podstawowego systemu medycznego ACE - Configurer les paramètres de traitement à partir de "ACE médical basique". - Configura le impostazioni trattamenti per ACE Medical di base - Configura as opções de tratamento do sistema médico básico do ACE - Настройка лечения в базовой медицинской системе ACE - ACE ベーシック医療による設定で、治療を設定します。 - ACE 기본 의료에 대한 치료 설정 수정 - 设定ACE基本医疗的规则 - 設定ACE基本醫療的規則 - Nastavit nastavení léčby z ACE Zdravotnické Základní - Anytime Jederzeit diff --git a/addons/medical_damage/functions/fnc_woundsHandlerSQF.sqf b/addons/medical_damage/functions/fnc_woundsHandlerSQF.sqf index ee07f8508ea..93472f1d7ae 100644 --- a/addons/medical_damage/functions/fnc_woundsHandlerSQF.sqf +++ b/addons/medical_damage/functions/fnc_woundsHandlerSQF.sqf @@ -131,15 +131,28 @@ private _bodyPartVisParams = [_unit, false, false, false, false]; // params arra #endif switch (true) do { - case (_causeFracture && {EGVAR(medical,fractures) > 0} && {_bodyPartNToAdd > 1} && {_woundDamage > FRACTURE_DAMAGE_THRESHOLD}): { - TRACE_1("limb fracture",_bodyPartNToAdd); + case ( + _causeFracture + && {EGVAR(medical,fractures) > 0} + && {_bodyPartNToAdd > 1} + && {_woundDamage > FRACTURE_DAMAGE_THRESHOLD} + && {random 1 < EGVAR(medical,fractureChance)} + ): { private _fractures = GET_FRACTURES(_unit); _fractures set [_bodyPartNToAdd, 1]; _unit setVariable [VAR_FRACTURES, _fractures, true]; - [QEGVAR(medical,fracture), [_unit, _bodyPartNToAdd]] call CBA_fnc_localEvent; // local event for fracture + + [QEGVAR(medical,fracture), [_unit, _bodyPartNToAdd]] call CBA_fnc_localEvent; + TRACE_1("Limb fracture",_bodyPartNToAdd); + _updateDamageEffects = true; }; - case (_causeLimping && {EGVAR(medical,limping) > 0} && {_bodyPartNToAdd > 3} && {_woundDamage > LIMPING_DAMAGE_THRESHOLD}): { + case ( + _causeLimping + && {EGVAR(medical,limping) > 0} + && {_bodyPartNToAdd > 3} + && {_woundDamage > LIMPING_DAMAGE_THRESHOLD} + ): { _updateDamageEffects = true; }; };