From b4b8860cf01ef60cd38cead22018d75a7ab68af9 Mon Sep 17 00:00:00 2001 From: A Man Date: Mon, 6 Apr 2020 20:03:14 +0200 Subject: [PATCH] Update Painkillers and Antibiotics - Painkillers are in different pill counts available now, same as antibiotics - the strings of painkillers and antibiotics have the pill count displayed in the name --- .../Configs/CfgLoot/Groups/Medical.hpp | 13 +- .../CfgMagazines/Medical/Antibiotic.hpp | 9 +- .../Configs/CfgMagazines/Medical/Medical.hpp | 22 +- .../CfgMagazines/Medical/Painkiller.hpp | 115 ++++++++++ .../Category/MedicalSupplies.hpp | 2 +- .../actions/player_combinePainkiller.sqf | 29 +++ SQF/dayz_code/actions/player_useMeds.sqf | 10 +- SQF/dayz_code/compile/fn_damageActions.sqf | 9 +- SQF/dayz_code/init/compiles.sqf | 1 + SQF/dayz_code/medical/painkiller.sqf | 67 +++--- SQF/dayz_code/medical/setup_functions_med.sqf | 86 ++++---- SQF/dayz_code/stringtable.xml | 197 +++++++++++++++++- 12 files changed, 456 insertions(+), 104 deletions(-) create mode 100644 SQF/dayz_code/Configs/CfgMagazines/Medical/Painkiller.hpp create mode 100644 SQF/dayz_code/actions/player_combinePainkiller.sqf diff --git a/SQF/dayz_code/Configs/CfgLoot/Groups/Medical.hpp b/SQF/dayz_code/Configs/CfgLoot/Groups/Medical.hpp index 71f00f267..35233e310 100644 --- a/SQF/dayz_code/Configs/CfgLoot/Groups/Medical.hpp +++ b/SQF/dayz_code/Configs/CfgLoot/Groups/Medical.hpp @@ -1,7 +1,7 @@ MedicalLow[] = { + {Loot_GROUP, 3, Painkillers}, {Loot_MAGAZINE, 5, ItemBandage}, - {Loot_MAGAZINE, 3, ItemPainkiller}, {Loot_MAGAZINE, 3, ItemMorphine}, {Loot_MAGAZINE, 1, ItemEpinephrine}, {Loot_MAGAZINE, 2, ItemAntibacterialWipe}, @@ -23,6 +23,17 @@ MedicalBox[] = {Loot_GROUP, 1, MedicalLow} }; +Painkillers[] = +{ + {Loot_MAGAZINE, 1, ItemPainkiller}, + {Loot_MAGAZINE, 1, ItemPainkiller6}, + {Loot_MAGAZINE, 2, ItemPainkiller5}, + {Loot_MAGAZINE, 3, ItemPainkiller4}, + {Loot_MAGAZINE, 4, ItemPainkiller3}, + {Loot_MAGAZINE, 5, ItemPainkiller2}, + {Loot_MAGAZINE, 6, ItemPainkiller1} +}; + Antibiotics[] = { {Loot_MAGAZINE, 1, ItemAntibiotic3}, diff --git a/SQF/dayz_code/Configs/CfgMagazines/Medical/Antibiotic.hpp b/SQF/dayz_code/Configs/CfgMagazines/Medical/Antibiotic.hpp index 3b5ed435f..f90f46687 100644 --- a/SQF/dayz_code/Configs/CfgMagazines/Medical/Antibiotic.hpp +++ b/SQF/dayz_code/Configs/CfgMagazines/Medical/Antibiotic.hpp @@ -6,7 +6,7 @@ class ItemAntibiotic_base : CA_Magazine model = "\dayz_equip\models\med_antibiotic_gear.p3d"; picture = "\dayz_equip\textures\equip_antibiotics_ca.paa"; - displayName = $STR_EQUIP_NAME_17; + displayName = $STR_EQUIP_NAME_17; }; class ItemAntibiotic : ItemAntibiotic_base @@ -37,6 +37,7 @@ class ItemAntibiotic : ItemAntibiotic_base class ItemAntibiotic6 : ItemAntibiotic { + displayName = $STR_EQUIP_NAME_ANTIBIOTICS_6; descriptionShort = $STR_EQUIP_DESC_48; class medical @@ -48,6 +49,7 @@ class ItemAntibiotic6 : ItemAntibiotic class ItemAntibiotic5 : ItemAntibiotic { + displayName = $STR_EQUIP_NAME_ANTIBIOTICS_5; descriptionShort = $STR_EQUIP_DESC_49; class medical @@ -59,6 +61,7 @@ class ItemAntibiotic5 : ItemAntibiotic class ItemAntibiotic4 : ItemAntibiotic { + displayName = $STR_EQUIP_NAME_ANTIBIOTICS_4; descriptionShort = $STR_EQUIP_DESC_50; class medical @@ -70,6 +73,7 @@ class ItemAntibiotic4 : ItemAntibiotic class ItemAntibiotic3 : ItemAntibiotic { + displayName = $STR_EQUIP_NAME_ANTIBIOTICS_3; descriptionShort = $STR_EQUIP_DESC_51; class medical @@ -81,6 +85,7 @@ class ItemAntibiotic3 : ItemAntibiotic class ItemAntibiotic2 : ItemAntibiotic { + displayName = $STR_EQUIP_NAME_ANTIBIOTICS_2; descriptionShort = $STR_EQUIP_DESC_52; class medical @@ -92,6 +97,7 @@ class ItemAntibiotic2 : ItemAntibiotic class ItemAntibiotic1 : ItemAntibiotic { + displayName = $STR_EQUIP_NAME_ANTIBIOTICS_1; descriptionShort = $STR_EQUIP_DESC_53; class medical @@ -104,5 +110,6 @@ class ItemAntibiotic1 : ItemAntibiotic class ItemAntibioticEmpty : ItemAntibiotic_base { scope = public; + displayName = $STR_EQUIP_NAME_ANTIBIOTICS_EMPTY; descriptionShort = $STR_EQUIP_DESC_54; }; \ No newline at end of file diff --git a/SQF/dayz_code/Configs/CfgMagazines/Medical/Medical.hpp b/SQF/dayz_code/Configs/CfgMagazines/Medical/Medical.hpp index d258f1158..3459913d7 100644 --- a/SQF/dayz_code/Configs/CfgMagazines/Medical/Medical.hpp +++ b/SQF/dayz_code/Configs/CfgMagazines/Medical/Medical.hpp @@ -1,5 +1,6 @@ #include "BloodBags.hpp" #include "Antibiotic.hpp" +#include "Painkiller.hpp" class ItemAntibacterialWipe : CA_Magazine { @@ -64,27 +65,6 @@ class ItemSepsisBandage : CA_Magazine }; }; -class ItemPainkiller : CA_Magazine -{ - scope = public; - count = 1; - type = WeaponSlotItem; - - model = "\dayz_equip\models\med_painkiller_gear.p3d"; - picture = "\dayz_equip\textures\equip_painkiller_ca.paa"; - displayName = $STR_EQUIP_NAME_18; - descriptionShort = $STR_EQUIP_DESC_18; - - class ItemActions - { - class Use - { - text = $STR_TAKE_PAINKILLER; - script = "spawn player_useMeds;"; - }; - }; -}; - class ItemEpinephrine : CA_Magazine { scope = public; diff --git a/SQF/dayz_code/Configs/CfgMagazines/Medical/Painkiller.hpp b/SQF/dayz_code/Configs/CfgMagazines/Medical/Painkiller.hpp new file mode 100644 index 000000000..23638d07a --- /dev/null +++ b/SQF/dayz_code/Configs/CfgMagazines/Medical/Painkiller.hpp @@ -0,0 +1,115 @@ +class ItemPainkiller : CA_Magazine +{ + scope = public; + count = 1; + type = WeaponSlotItem; + + model = "\dayz_equip\models\med_painkiller_gear.p3d"; + picture = "\dayz_equip\textures\equip_painkiller_ca.paa"; + displayName = $STR_EQUIP_NAME_18; + descriptionShort = $STR_EQUIP_DESC_18; + + class medical + { + chance = 1.10; //100% + amount = -1; + qtyRemaining = "ItemPainkiller6"; + }; + + class ItemActions + { + class Use + { + text = $STR_TAKE_PAINKILLER; + script = "spawn player_useMeds;"; + }; + class Combine { + text = $STR_ANTIBIOTICS_COMBINE; + script = "spawn player_combinePainkiller;"; + }; + }; +}; + +class ItemPainkiller6 : ItemPainkiller +{ + displayName = $STR_EQUIP_NAME_PAINKILLER_6; + descriptionShort = $STR_EQUIP_DESC_PAINKILLER_6; + + class medical + { + amount = 6; + qtyRemaining = "ItemPainkiller5"; + }; +}; + +class ItemPainkiller5 : ItemPainkiller +{ + displayName = $STR_EQUIP_NAME_PAINKILLER_5; + descriptionShort = $STR_EQUIP_DESC_PAINKILLER_5; + + class medical + { + amount = 5; + qtyRemaining = "ItemPainkiller4"; + }; +}; + +class ItemPainkiller4 : ItemPainkiller +{ + displayName = $STR_EQUIP_NAME_PAINKILLER_4; + descriptionShort = $STR_EQUIP_DESC_PAINKILLER_4; + + class medical + { + amount = 4; + qtyRemaining = "ItemPainkiller3"; + }; +}; + +class ItemPainkiller3 : ItemPainkiller +{ + displayName = $STR_EQUIP_NAME_PAINKILLER_3; + descriptionShort = $STR_EQUIP_DESC_PAINKILLER_3; + + class medical + { + amount = 3; + qtyRemaining = "ItemPainkiller2"; + }; +}; + +class ItemPainkiller2 : ItemPainkiller +{ + displayName = $STR_EQUIP_NAME_PAINKILLER_2; + descriptionShort = $STR_EQUIP_DESC_PAINKILLER_2; + + class medical + { + amount = 2; + qtyRemaining = "ItemPainkiller1"; + }; +}; + +class ItemPainkiller1 : ItemPainkiller +{ + displayName = $STR_EQUIP_NAME_PAINKILLER_1; + descriptionShort = $STR_EQUIP_DESC_PAINKILLER_1; + + class medical + { + amount = 1; + qtyRemaining = "ItemPainkillerEmpty"; + }; +}; + +class ItemPainkillerEmpty : CA_Magazine +{ + scope = public; + displayName = $STR_EQUIP_NAME_PAINKILLER_EMPTY; + descriptionShort = $STR_EQUIP_DESC_PAINKILLER_EMPTY; + count = 1; + type = WeaponSlotItem; + + model = "\dayz_equip\models\med_painkiller_gear.p3d"; + picture = "\dayz_equip\textures\equip_painkiller_ca.paa"; +}; \ No newline at end of file diff --git a/SQF/dayz_code/Configs/CfgServerTrader/Category/MedicalSupplies.hpp b/SQF/dayz_code/Configs/CfgServerTrader/Category/MedicalSupplies.hpp index d6eef998d..4f11f9d20 100644 --- a/SQF/dayz_code/Configs/CfgServerTrader/Category/MedicalSupplies.hpp +++ b/SQF/dayz_code/Configs/CfgServerTrader/Category/MedicalSupplies.hpp @@ -19,7 +19,7 @@ class Category_33 { class ItemHeatPack {type = "trade_items";buy[] = {1,"ItemSilverBar10oz"};sell[] = {5,"ItemSilverBar"};}; class ItemMorphine {type = "trade_items";buy[] = {1,"ItemSilverBar10oz"};sell[] = {5,"ItemSilverBar"};}; class equip_woodensplint {type = "trade_items";buy[] = {-2,"ItemSilverBar"};sell[] = {5,"ItemSilverBar"};}; - class ItemPainkiller {type = "trade_items";buy[] = {1,"ItemSilverBar10oz"};sell[] = {5,"ItemSilverBar"};}; + class ItemPainkiller {type = "trade_items";buy[] = {2,"ItemGoldBar"};sell[] = {1,"ItemGoldBar"};}; class equip_gauze {type = "trade_items";buy[] = {2,"ItemSilverBar"};sell[] = {1,"ItemSilverBar"};}; class equip_gauzepackaged {type = "trade_items";buy[] = {4,"ItemSilverBar"};sell[] = {2,"ItemSilverBar"};}; class equip_rag {type = "trade_items";buy[] = {2,"ItemSilverBar"};sell[] = {1,"ItemSilverBar"};}; diff --git a/SQF/dayz_code/actions/player_combinePainkiller.sqf b/SQF/dayz_code/actions/player_combinePainkiller.sqf new file mode 100644 index 000000000..3c41f24db --- /dev/null +++ b/SQF/dayz_code/actions/player_combinePainkiller.sqf @@ -0,0 +1,29 @@ +if (dayz_actionInProgress) exitWith { localize "str_player_actionslimit" call dayz_rollingMessages; }; +dayz_actionInProgress = true; + +private ["_total", "_full", "_remain", "_amount"]; + +_total = 0; +{ + if (configName inheritsFrom (configfile >> "CfgMagazines" >> _x) == "ItemPainkiller") then { + _amount = getNumber(configFile >> "CfgMagazines" >> _x >> "medical" >> "amount"); + if(_amount > 0) then { + _total = _total + _amount; + player removeMagazine _x; + }; + }; +} count (magazines player); + +_full = floor(_total / 6); +_remain = _total % 6; + +for "_i" from 1 to _full do +{ + player addMagazine "ItemPainkiller6"; +}; + +if(_remain > 0 ) then { + player addMagazine "ItemPainkiller" + str(_remain); +}; + +dayz_actionInProgress = false; diff --git a/SQF/dayz_code/actions/player_useMeds.sqf b/SQF/dayz_code/actions/player_useMeds.sqf index 4aa724333..b42ec5e28 100644 --- a/SQF/dayz_code/actions/player_useMeds.sqf +++ b/SQF/dayz_code/actions/player_useMeds.sqf @@ -16,13 +16,19 @@ if (!_hasmeditem) exitWith {format[localize "str_player_31",_text,localize "str_ call { if (_item == "ItemBandage") exitWith {[0,0,0,[player,"ItemBandage"]] execVM "\z\addons\dayz_code\medical\bandage.sqf";}; if (_item == "ItemMorphine") exitWith {[0,0,0,[player,"ItemMorphine"]] execVM "\z\addons\dayz_code\medical\brokeBones.sqf";}; - if (_item == "ItemPainkiller") exitWith {[0,0,0,[player]] execVM "\z\addons\dayz_code\medical\painkiller.sqf";}; - if (_item == "ItemAntibiotic") exitWith {[player,"ItemAntibiotic"] execVM "\z\addons\dayz_code\medical\antibiotics.sqf";}; + if (_item == "ItemPainkiller") exitWith {[player,"ItemPainkiller"] execVM "\z\addons\dayz_code\medical\painkiller.sqf";}; + if (_item == "ItemPainkiller6") exitWith {[player,"ItemPainkiller6"] execVM "\z\addons\dayz_code\medical\painkiller.sqf";}; + if (_item == "ItemPainkiller5") exitWith {[player,"ItemPainkiller5"] execVM "\z\addons\dayz_code\medical\painkiller.sqf";}; + if (_item == "ItemPainkiller4") exitWith {[player,"ItemPainkiller4"] execVM "\z\addons\dayz_code\medical\painkiller.sqf";}; + if (_item == "ItemPainkiller3") exitWith {[player,"ItemPainkiller3"] execVM "\z\addons\dayz_code\medical\painkiller.sqf";}; + if (_item == "ItemPainkiller2") exitWith {[player,"ItemPainkiller2"] execVM "\z\addons\dayz_code\medical\painkiller.sqf";}; + if (_item == "ItemPainkiller1") exitWith {[player,"ItemPainkiller1"] execVM "\z\addons\dayz_code\medical\painkiller.sqf";}; if (_item == "ItemBloodbag") exitWith {[player,"ItemBloodbag"] execVM "\z\addons\dayz_code\medical\selfbloodbag.sqf";}; if (_item == "ItemAntibacterialWipe") exitWith {[0,0,0,[player]] execVM "\z\addons\dayz_code\medical\wipes.sqf";}; if (_item == "ItemHeatPack") exitWith {player removeMagazine "ItemHeatPack"; r_player_warming_heatpack = [true, diag_tickTime]; localize "str_player_27" call dayz_rollingMessages;}; //dayz_temperatur = (dayz_temperatur + 5) min dayz_temperaturmax; if (_item == "equip_woodensplint") exitWith {[0,0,0,[player,"equip_woodensplint"]] execVM "\z\addons\dayz_code\medical\brokeBones.sqf";}; if (_item == "ItemSepsisBandage") exitWith {[0,0,0,[player,"ItemSepsisBandage"]] execVM "\z\addons\dayz_code\medical\bandage.sqf";}; + if (_item == "ItemAntibiotic") exitWith {[player,"ItemAntibiotic"] execVM "\z\addons\dayz_code\medical\antibiotics.sqf";}; if (_item == "ItemAntibiotic1") exitWith {[player,"ItemAntibiotic1"] execVM "\z\addons\dayz_code\medical\antibiotics.sqf";}; if (_item == "ItemAntibiotic2") exitWith {[player,"ItemAntibiotic2"] execVM "\z\addons\dayz_code\medical\antibiotics.sqf";}; if (_item == "ItemAntibiotic3") exitWith {[player,"ItemAntibiotic3"] execVM "\z\addons\dayz_code\medical\antibiotics.sqf";}; diff --git a/SQF/dayz_code/compile/fn_damageActions.sqf b/SQF/dayz_code/compile/fn_damageActions.sqf index 902d4b222..fe78e4582 100644 --- a/SQF/dayz_code/compile/fn_damageActions.sqf +++ b/SQF/dayz_code/compile/fn_damageActions.sqf @@ -8,7 +8,7 @@ scriptName "Functions\misc\fn_damageActions.sqf"; - [] call fnc_usec_damageActions; ************************************************************/ -private ["_hasABWipes","_dragged","_menClose","_hasPatient","_vehicle","_inVehicle","_isClose","_assignedRole","_driver","_action","_turret","_weapons","_weaponName","_crew","_unconscious_crew","_patients","_vehType","_unit","_antibiotics","_bloodBags","_unconscious","_lowBlood","_injured","_hasSepsis","_inPain","_legsBroke","_armsBroke","_infected","_hasBandage","_hasSepsisBandage","_hasEpi","_hasMorphine","_hasSplint","_hasPainkillers","_hasAntibiotics","_hasBloodBag","_vehClose","_action1","_action2","_action3","_playerMagazines","_isFriendly"]; +private ["_hasABWipes","_dragged","_menClose","_hasPatient","_vehicle","_inVehicle","_isClose","_assignedRole","_driver","_action","_turret","_weapons","_weaponName","_crew","_unconscious_crew","_patients","_vehType","_unit","_antibiotics","_bloodBags","_unconscious","_lowBlood","_injured","_hasSepsis","_inPain","_legsBroke","_armsBroke","_infected","_hasBandage","_hasSepsisBandage","_hasEpi","_hasMorphine","_hasSplint","_hasPainkillers","_hasAntibiotics","_hasBloodBag","_vehClose","_action1","_action2","_action3","_playerMagazines","_isFriendly","_action4","_painkillers"]; _menClose = cursorTarget; _hasPatient = alive _menClose; @@ -76,7 +76,7 @@ if (_inVehicle) then { }; //Check if patients _crew = crew _vehicle; - if (count _crew > 0 && !r_player_unconscious) then { + if (count _crew > 0 && {!r_player_unconscious}) then { _unconscious_crew = []; { if (_x getVariable "NORRN_unconscious") then { @@ -118,7 +118,8 @@ if (isPlayer cursorTarget) then { player reveal _unit; //Arrays - _antibiotics =["ItemAntibiotic","ItemAntibiotic1","ItemAntibiotic2","ItemAntibiotic3","ItemAntibiotic4","ItemAntibiotic5","ItemAntibiotic6"]; + _antibiotics = ["ItemAntibiotic","ItemAntibiotic1","ItemAntibiotic2","ItemAntibiotic3","ItemAntibiotic4","ItemAntibiotic5","ItemAntibiotic6"]; + _painkillers = ["ItemPainkiller","ItemPainkiller1","ItemPainkiller2","ItemPainkiller3","ItemPainkiller4","ItemPainkiller5","ItemPainkiller6"]; _bloodBags = ["bloodBagANEG","bloodBagAPOS","bloodBagBNEG","bloodBagBPOS","bloodBagABNEG","bloodBagABPOS","bloodBagONEG","bloodBagOPOS","wholeBloodBagANEG","wholeBloodBagAPOS","wholeBloodBagBNEG","wholeBloodBagBPOS","wholeBloodBagABNEG","wholeBloodBagABPOS","wholeBloodBagONEG","wholeBloodBagOPOS"]; //Var checks @@ -139,7 +140,7 @@ if (isPlayer cursorTarget) then { _hasEpi = "ItemEpinephrine" in _playerMagazines; _hasMorphine = "ItemMorphine" in _playerMagazines; _hasSplint = "equip_woodensplint" in _playerMagazines; - _hasPainkillers = "ItemPainkiller" in _playerMagazines; + _hasPainkillers = Array_Any(_playerMagazines, {_this in _painkillers}); _hasAntibiotics = Array_Any(_playerMagazines, {_this in _antibiotics}); _hasABWipes = "ItemAntibacterialWipe" in _playerMagazines; if (dayz_classicBloodBagSystem) then { diff --git a/SQF/dayz_code/init/compiles.sqf b/SQF/dayz_code/init/compiles.sqf index e963c5943..a91bada38 100644 --- a/SQF/dayz_code/init/compiles.sqf +++ b/SQF/dayz_code/init/compiles.sqf @@ -117,6 +117,7 @@ if (!isDedicated) then { //player_sleep = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_sleep.sqf"; player_combineMag = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_combineMags.sqf"; player_combineAntibiotics = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_combineAntibiotics.sqf"; + player_combinePainkiller = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_combinePainkiller.sqf"; player_combineMatches = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_combineMatches.sqf"; player_createquiver = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_createQuiver.sqf"; player_fillquiver = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_fillQuiver.sqf"; diff --git a/SQF/dayz_code/medical/painkiller.sqf b/SQF/dayz_code/medical/painkiller.sqf index 8d720564a..fc9234320 100644 --- a/SQF/dayz_code/medical/painkiller.sqf +++ b/SQF/dayz_code/medical/painkiller.sqf @@ -1,27 +1,46 @@ -private "_unit"; +private ["_unit","_medsUsed"]; -_unit = (_this select 3) select 0; - -call fnc_usec_medic_removeActions; -r_action = false; -player removeMagazine "ItemPainkiller"; - -if (vehicle player == player) then { - //not in a vehicle - player playActionNow "Gear"; -}; - -if (_unit == player) then { - //Self Healing - [player,player] call player_medPainkiller; - localize "str_actions_medical_painkillers_self" call dayz_rollingMessages; +if (count _this > 2) then { + _unit = (_this select 3) select 0; + _medsUsed = nil; } else { - // Heal another player - PVDZ_send = [_unit,"Painkiller",[_unit,player]]; - publicVariableServer "PVDZ_send"; - - // Give humanity - 20 call player_humanityChange; - - format [localize "str_actions_medical_painkillers_give",(name _unit)] call dayz_rollingMessages; + _unit = _this select 0; + _medsUsed = _this select 1; +}; + +if (isNil "_medsUsed") then { + { + if (_x in magazines player) exitWith { + // Set painkillers if not defined (used when giving to somebody) + _medsUsed = _x; + }; + } count ["ItemPainkiller","ItemPainkiller1","ItemPainkiller2","ItemPainkiller3","ItemPainkiller4","ItemPainkiller5","ItemPainkiller6"]; +}; + +if !(isNil "_medsUsed") then { + //Remove one table from the box. + [_medsUsed,"medical"] call dayz_reduceItems; + + call fnc_usec_medic_removeActions; + r_action = false; + + if (vehicle player == player) then { + //not in a vehicle + player playActionNow "Gear"; + }; + + if (_unit == player) then { + //Self Healing + [player,player] call player_medPainkiller; + localize "str_actions_medical_painkillers_self" call dayz_rollingMessages; + } else { + // Heal another player + PVDZ_send = [_unit,"Painkiller",[_unit,player]]; + publicVariableServer "PVDZ_send"; + + // Give humanity + 20 call player_humanityChange; + + format [localize "str_actions_medical_painkillers_give",(name _unit)] call dayz_rollingMessages; + }; }; diff --git a/SQF/dayz_code/medical/setup_functions_med.sqf b/SQF/dayz_code/medical/setup_functions_med.sqf index 2d794b245..b8f9ad26b 100644 --- a/SQF/dayz_code/medical/setup_functions_med.sqf +++ b/SQF/dayz_code/medical/setup_functions_med.sqf @@ -311,52 +311,52 @@ fnc_usec_damageBleed = { [0,0,0]; }; - while {1 == 1} do { - scopeName "main"; - waitUntil {(vehicle _unit == _unit)}; + while {1 == 1} do { + scopeName "main"; + waitUntil {(vehicle _unit == _unit)}; - if ((dayz_bleedingeffect == 2) or (dayz_bleedingeffect == 3)) then { - //Blood partical - _point = "Logic" createVehicleLocal getPosATL _unit; - _source = "#particlesource" createVehicleLocal getPosATL _unit; - _source setParticleParams - /* Sprite */ [["\Ca\Data\ParticleEffects\Universal\Universal", 16, 13, 1],"", // File,Ntieth,Index,Count,Loop(Bool) - /* Type */ "Billboard", - /* TimmerPer */ 1, - /* Lifetime */ 0.2, - /* Position */ [0,0,0], - /* MoveVelocity */ [0,0,0.5], - /* Simulation */ 1,0.32,0.1,0.05, //rotationVel,weight,volume,rubbing - /* Scale */ [0.05,0.25], - /* Color */ [[0.2,0.01,0.01,1],[0.2,0.01,0.01,0]], - /* AnimSpeed */ [0.1], - /* randDirPeriod */ 0, - /* randDirIntesity */ 0, - /* onTimerScript */ "", - /* DestroyScript */ "", - /* Follow */ _point]; - _source setParticleRandom [2, [0, 0, 0], [0.0, 0.0, 0.0], 0, 0.5, [0, 0, 0, 0.1], 0, 0, 10]; - _source setDropInterval 0.02; - _point attachTo [_unit,_modelPos,_wound]; - }; - - uiSleep 5; - - while {((_unit getVariable["USEC_injured",true]) && {alive _unit})} do { - scopeName "loop"; - if (vehicle _unit != _unit) then { - BreakOut "loop"; - }; - uiSleep 1; - }; - deleteVehicle _source; - deleteVehicle _point; - - if (!(_unit getVariable["USEC_injured",false])) then { - BreakOut "main"; - }; + if ((dayz_bleedingeffect == 2) or (dayz_bleedingeffect == 3)) then { + //Blood partical + _point = "Logic" createVehicleLocal getPosATL _unit; + _source = "#particlesource" createVehicleLocal getPosATL _unit; + _source setParticleParams + /* Sprite */ [["\Ca\Data\ParticleEffects\Universal\Universal", 16, 13, 1],"", // File,Ntieth,Index,Count,Loop(Bool) + /* Type */ "Billboard", + /* TimmerPer */ 1, + /* Lifetime */ 0.2, + /* Position */ [0,0,0], + /* MoveVelocity */ [0,0,0.5], + /* Simulation */ 1,0.32,0.1,0.05, //rotationVel,weight,volume,rubbing + /* Scale */ [0.05,0.25], + /* Color */ [[0.2,0.01,0.01,1],[0.2,0.01,0.01,0]], + /* AnimSpeed */ [0.1], + /* randDirPeriod */ 0, + /* randDirIntesity */ 0, + /* onTimerScript */ "", + /* DestroyScript */ "", + /* Follow */ _point]; + _source setParticleRandom [2, [0, 0, 0], [0.0, 0.0, 0.0], 0, 0.5, [0, 0, 0, 0.1], 0, 0, 10]; + _source setDropInterval 0.02; + _point attachTo [_unit,_modelPos,_wound]; }; + uiSleep 5; + + while {((_unit getVariable["USEC_injured",true]) && {alive _unit})} do { + scopeName "loop"; + if (vehicle _unit != _unit) then { + BreakOut "loop"; + }; + uiSleep 1; + }; deleteVehicle _source; deleteVehicle _point; + + if (!(_unit getVariable["USEC_injured",false])) then { + BreakOut "main"; + }; + }; + + deleteVehicle _source; + deleteVehicle _point; }; diff --git a/SQF/dayz_code/stringtable.xml b/SQF/dayz_code/stringtable.xml index c3ba3b5dd..b7ebd2d66 100644 --- a/SQF/dayz_code/stringtable.xml +++ b/SQF/dayz_code/stringtable.xml @@ -3591,9 +3591,65 @@ Antibiotiques Antibiotika + + Antibiotics (6 left) + Antibiotikum (6 übrig) + Антибиотики (6 izquierda) + Antibióticos (6 restante) + Antibiotiques (6 reste) + Antibiotika (6 zbývající) + + + Antibiotics (5 left) + Antibiotikum (5 übrig) + Антибиотики (5 izquierda) + Antibióticos (5 restante) + Antibiotiques (5 reste) + Antibiotika (5 zbývající) + + + Antibiotics (4 left) + Antibiotikum (4 übrig) + Антибиотики (4 izquierda) + Antibióticos (4 restante) + Antibiotiques (4 reste) + Antibiotika (4 zbývající) + + + Antibiotics (3 left) + Antibiotikum (3 übrig) + Антибиотики (3 izquierda) + Antibióticos (3 restante) + Antibiotiques (3 reste) + Antibiotika (3 zbývající) + + + Antibiotics (2 left) + Antibiotikum (2 übrig) + Антибиотики (2 izquierda) + Antibióticos (2 restante) + Antibiotiques (2 reste) + Antibiotika (2 zbývající) + + + Antibiotics (1 left) + Antibiotikum (1 übrig) + Антибиотики (1 izquierda) + Antibióticos (1 restante) + Antibiotiques (1 reste) + Antibiotika (1 zbývající) + + + Antibiotics (empty) + Antibiotikum (leer) + Антибиотики (пустой) + Antibióticos (vacio) + Antibiotiques (vide) + Antibiotika (prázdný) + Azithromycin is a broad spectrum antibiotic used to treat or prevent certain bacterial infections. - Azithromycin ist ein Breitbandantibiotikum, das zur Behandlung oder Prophylaxe verschiedener bakterieller Infektionen verwendet werden kann. + Azithromycin ist ein Breitbandantibiotikum, das zur Behandlung verschiedener bakterieller Infektionen verwendet wird. Азитромицин это многоцелевой антибиотик, использующийся для лечения бактериальных инфекций. La azitromicina es un antibiótico de amplio espectro usado para tratar o prevenir ciertas infecciones bacteriales. L'azithromycine est un antibiotique à large spectre permettant le traitement des infections bactériennes. @@ -3602,32 +3658,50 @@ Azithromycin is a broad spectrum antibiotic used to treat or prevent certain bacterial infections. 6 Remaining. Азитромицин это многоцелевой антибиотик, использующийся для лечения бактериальных инфекций. Осталось 6 таблеток. - Azithromycin ist ein Breitbandantibiotikum, das zur Behandlung oder Prophylaxe verschiedener bakterieller Infektionen verwendet werden kann. 6 Stück übrig. + Azithromycin ist ein Breitbandantibiotikum, das zur Behandlung verschiedener bakterieller Infektionen verwendet wird. (6 übrig) + La azitromicina es un antibiótico de amplio espectro usado para tratar o prevenir ciertas infecciones bacteriales. (6 restante) + L'azithromycine est un antibiotique à large spectre permettant le traitement des infections bactériennes. (6 reste) + Azithromycin je širokospektré antibiotikum používané k léčbě nebo prevenci před infekcí či bakteriemi. (6 zbývající) Azithromycin is a broad spectrum antibiotic used to treat or prevent certain bacterial infections. 5 Remaining. Азитромицин это многоцелевой антибиотик, использующийся для лечения бактериальных инфекций. Осталось 5 таблеток. - Azithromycin ist ein Breitbandantibiotikum, das zur Behandlung oder Prophylaxe verschiedener bakterieller Infektionen verwendet werden kann. 5 Stück übrig. + Azithromycin ist ein Breitbandantibiotikum, das zur Behandlung verschiedener bakterieller Infektionen verwendet wird. (5 übrig) + La azitromicina es un antibiótico de amplio espectro usado para tratar o prevenir ciertas infecciones bacteriales. (5 restante) + L'azithromycine est un antibiotique à large spectre permettant le traitement des infections bactériennes. (5 reste) + Azithromycin je širokospektré antibiotikum používané k léčbě nebo prevenci před infekcí či bakteriemi. (5 zbývající) Azithromycin is a broad spectrum antibiotic used to treat or prevent certain bacterial infections. 4 Remaining. Азитромицин это многоцелевой антибиотик, использующийся для лечения бактериальных инфекций. Осталось 4 таблетки. - Azithromycin ist ein Breitbandantibiotikum, das zur Behandlung oder Prophylaxe verschiedener bakterieller Infektionen verwendet werden kann. 4 Stück übrig. + Azithromycin ist ein Breitbandantibiotikum, das zur Behandlung verschiedener bakterieller Infektionen verwendet wird. (4 übrig) + La azitromicina es un antibiótico de amplio espectro usado para tratar o prevenir ciertas infecciones bacteriales. (4 restante) + L'azithromycine est un antibiotique à large spectre permettant le traitement des infections bactériennes. (4 reste) + Azithromycin je širokospektré antibiotikum používané k léčbě nebo prevenci před infekcí či bakteriemi. (4 zbývající) Azithromycin is a broad spectrum antibiotic used to treat or prevent certain bacterial infections. 3 Remaining. Азитромицин это многоцелевой антибиотик, использующийся для лечения бактериальных инфекций. Осталось 3 таблетки. - Azithromycin ist ein Breitbandantibiotikum, das zur Behandlung oder Prophylaxe verschiedener bakterieller Infektionen verwendet werden kann. 3 Stück übrig. + Azithromycin ist ein Breitbandantibiotikum, das zur Behandlung verschiedener bakterieller Infektionen verwendet wird. (3 übrig) + La azitromicina es un antibiótico de amplio espectro usado para tratar o prevenir ciertas infecciones bacteriales. (3 restante) + L'azithromycine est un antibiotique à large spectre permettant le traitement des infections bactériennes. (3 reste) + Azithromycin je širokospektré antibiotikum používané k léčbě nebo prevenci před infekcí či bakteriemi. (3 zbývající) Azithromycin is a broad spectrum antibiotic used to treat or prevent certain bacterial infections. 2 Remaining. Азитромицин это многоцелевой антибиотик, использующийся для лечения бактериальных инфекций. Осталось 2 таблетки. - Azithromycin ist ein Breitbandantibiotikum, das zur Behandlung oder Prophylaxe verschiedener bakterieller Infektionen verwendet werden kann. 2 Stück übrig. + Azithromycin ist ein Breitbandantibiotikum, das zur Behandlung verschiedener bakterieller Infektionen verwendet wird. (2 übrig) + La azitromicina es un antibiótico de amplio espectro usado para tratar o prevenir ciertas infecciones bacteriales. (2 restante) + L'azithromycine est un antibiotique à large spectre permettant le traitement des infections bactériennes. (2 reste) + Azithromycin je širokospektré antibiotikum používané k léčbě nebo prevenci před infekcí či bakteriemi. (2 zbývající) Azithromycin is a broad spectrum antibiotic used to treat or prevent certain bacterial infections. 1 Remaining. Азитромицин это многоцелевой антибиотик, использующийся для лечения бактериальных инфекций. Осталась 1 таблетка. - Azithromycin ist ein Breitbandantibiotikum, das zur Behandlung oder Prophylaxe verschiedener bakterieller Infektionen verwendet werden kann. 1 Stück übrig. + Azithromycin ist ein Breitbandantibiotikum, das zur Behandlung verschiedener bakterieller Infektionen verwendet wird. (1 übrig) + La azitromicina es un antibiótico de amplio espectro usado para tratar o prevenir ciertas infecciones bacteriales. (1 restante) + L'azithromycine est un antibiotique à large spectre permettant le traitement des infections bactériennes. (1 reste) + Azithromycin je širokospektré antibiotikum používané k léčbě nebo prevenci před infekcí či bakteriemi. (1 zbývající) Empty box of Azithromycin. @@ -3642,6 +3716,67 @@ Antalgiques Prášky proti bolesti + + Painkillers (6 left) + Schmerzmittel (6 übrig) + Болеутоляющее (6 izquierda) + Analgésicos (6 restante) + Antalgiques (6 reste) + Prášky proti bolesti (6 zbývající) + + + Painkillers (5 left) + Schmerzmittel (5 übrig) + Болеутоляющее (5 izquierda) + Analgésicos (5 restante) + Antalgiques (5 reste) + Prášky proti bolesti (5 zbývající) + + + Painkillers (4 left) + Schmerzmittel (4 übrig) + Болеутоляющее (4 izquierda) + Analgésicos (4 restante) + Antalgiques (4 reste) + Prášky proti bolesti (4 zbývající) + + + Painkillers (3 left) + Schmerzmittel (3 übrig) + Болеутоляющее (3 izquierda) + Analgésicos (3 restante) + Antalgiques (3 reste) + Prášky proti bolesti (3 zbývající) + + + Painkillers (2 left) + Schmerzmittel (2 übrig) + Болеутоляющее (2 izquierda) + Analgésicos (2 restante) + Antalgiques (2 reste) + Prášky proti bolesti (2 zbývající) + + + Painkillers (1 left) + Schmerzmittel (1 übrig) + Болеутоляющее (1 izquierda) + Analgésicos (1 restante) + Antalgiques (1 reste) + Prášky proti bolesti (1 zbývající) + + + Painkillers (empty) + Schmerzmittel (leer) + Болеутоляющее (пустой) + Analgésicos (vacio) + Antalgiques (vide) + Prášky proti bolesti (prázdný) + + + Empty box of Painkillers. + Пустая коробка азитромицина. + Leere Schachtel Schmerzmittel. + A moderate painkiller suitable for regular use of relief of pain and inflammation caused by moderate wounds. Ein Schmerzmittel zum Stillen von Schmerzen und Entzündungen durch mittelschwere Wunden. @@ -3650,6 +3785,54 @@ Un antidouleur léger permettant de soulager les petites blessures de tous les jours. Klasické prášky proti bolesti pro běžné používání proti aktuální bolesti, například migréně. + + A moderate painkiller suitable for regular use of relief of pain and inflammation caused by moderate wounds. (6 left) + Ein Schmerzmittel zum Stillen von Schmerzen und Entzündungen durch mittelschwere Wunden. (6 übrig) + Слабое болеутоляющее отлично подходит для подавления боли от небольших ранений. (6 izquierda) + Un analgésico moderado adecuado para uso regular de alivio del dolor y la inflamación causada por heridas moderadas. (6 restante) + Un antidouleur léger permettant de soulager les petites blessures de tous les jours. (6 reste) + Klasické prášky proti bolesti pro běžné používání proti aktuální bolesti, například migréně. (6 zbývající) + + + A moderate painkiller suitable for regular use of relief of pain and inflammation caused by moderate wounds. (5 left) + Ein Schmerzmittel zum Stillen von Schmerzen und Entzündungen durch mittelschwere Wunden. (5 übrig) + Слабое болеутоляющее отлично подходит для подавления боли от небольших ранений. (5 izquierda) + Un analgésico moderado adecuado para uso regular de alivio del dolor y la inflamación causada por heridas moderadas. (5 restante) + Un antidouleur léger permettant de soulager les petites blessures de tous les jours. (5 reste) + Klasické prášky proti bolesti pro běžné používání proti aktuální bolesti, například migréně. (5 zbývající) + + + A moderate painkiller suitable for regular use of relief of pain and inflammation caused by moderate wounds. (4 left) + Ein Schmerzmittel zum Stillen von Schmerzen und Entzündungen durch mittelschwere Wunden. (4 übrig) + Слабое болеутоляющее отлично подходит для подавления боли от небольших ранений. (4 izquierda) + Un analgésico moderado adecuado para uso regular de alivio del dolor y la inflamación causada por heridas moderadas. (4 restante) + Un antidouleur léger permettant de soulager les petites blessures de tous les jours. (4 reste) + Klasické prášky proti bolesti pro běžné používání proti aktuální bolesti, například migréně. (4 zbývající) + + + A moderate painkiller suitable for regular use of relief of pain and inflammation caused by moderate wounds. (3 left) + Ein Schmerzmittel zum Stillen von Schmerzen und Entzündungen durch mittelschwere Wunden. (3 übrig) + Слабое болеутоляющее отлично подходит для подавления боли от небольших ранений. (3 izquierda) + Un analgésico moderado adecuado para uso regular de alivio del dolor y la inflamación causada por heridas moderadas. (3 restante) + Un antidouleur léger permettant de soulager les petites blessures de tous les jours. (3 reste) + Klasické prášky proti bolesti pro běžné používání proti aktuální bolesti, například migréně. (3 zbývající) + + + A moderate painkiller suitable for regular use of relief of pain and inflammation caused by moderate wounds. (2 left) + Ein Schmerzmittel zum Stillen von Schmerzen und Entzündungen durch mittelschwere Wunden. (2 übrig) + Слабое болеутоляющее отлично подходит для подавления боли от небольших ранений. (2 izquierda) + Un analgésico moderado adecuado para uso regular de alivio del dolor y la inflamación causada por heridas moderadas. (2 restante) + Un antidouleur léger permettant de soulager les petites blessures de tous les jours. (2 reste) + Klasické prášky proti bolesti pro běžné používání proti aktuální bolesti, například migréně. (2 zbývající) + + + A moderate painkiller suitable for regular use of relief of pain and inflammation caused by moderate wounds. (1 left) + Ein Schmerzmittel zum Stillen von Schmerzen und Entzündungen durch mittelschwere Wunden. (1 übrig) + Слабое болеутоляющее отлично подходит для подавления боли от небольших ранений. (1 izquierda) + Un analgésico moderado adecuado para uso regular de alivio del dolor y la inflamación causada por heridas moderadas. (1 restante) + Un antidouleur léger permettant de soulager les petites blessures de tous les jours. (1 reste) + Klasické prášky proti bolesti pro běžné používání proti aktuální bolesti, například migréně. (1 zbývající) + Sepsis Bandage Antiseptische Bandage