diff --git a/addons/assets/CfgMagazines.hpp b/addons/assets/CfgMagazines.hpp index 7f113578..5ede8c16 100644 --- a/addons/assets/CfgMagazines.hpp +++ b/addons/assets/CfgMagazines.hpp @@ -126,17 +126,6 @@ class CfgMagazines { scope = 2; }; - class CLASS(cenestinBottle): CLASS(FakeMagazine) { - CLASSACE(isMedicalItem) = 1; - count = 15; - descriptionShort = CSTRING(CenestinBottle_Description); - displayName = CSTRING(CenestinBottle_DisplayName); - mass = 2; - model = "\a3\structures_f_epa\Items\Medical\VitaminBottle_F.p3d"; - picture = QPATHTOF(data\icons\cenestinbottle.paa); - scope = 2; - }; - class CLASS(lighter): CLASS(FakeMagazine) { CLASSACE(disableRepacking) = 1; count = 100; @@ -430,18 +419,29 @@ class CfgMagazines { scope = 2; }; - class CLASS(waterJerryCan_Full): CLASS(FakeMagazine) { + class CLASS(waterJerryCan_Purified): CLASS(FakeMagazine) { + CLASSACE(disableRepacking) = 1; + count = 20; + descriptionShort = CSTRING(JerryCanWaterFullPure_Description); + displayName = CSTRING(JerryCanWaterFullPure_DisplayName); + mass = 150; + model = "\a3\structures_f\Items\Vessels\CanisterFuel_F.p3d"; + picture = QPATHTOF(data\icons\canisterwater.paa); + scope = 2; + }; + + class CLASS(waterJerryCan_Clean): CLASS(FakeMagazine) { CLASSACE(disableRepacking) = 1; count = 20; - descriptionShort = CSTRING(JerryCanWaterFull_Description); - displayName = CSTRING(JerryCanWaterFull_DisplayName); + descriptionShort = CSTRING(JerryCanWaterFullClean_Description); + displayName = CSTRING(JerryCanWaterFullClean_DisplayName); mass = 150; model = "\a3\structures_f\Items\Vessels\CanisterFuel_F.p3d"; picture = QPATHTOF(data\icons\canisterwater.paa); scope = 2; }; - class CLASS(waterJerryCan_FullDirty): CLASS(FakeMagazine) { + class CLASS(waterJerryCan_Dirty): CLASS(FakeMagazine) { CLASSACE(disableRepacking) = 1; count = 20; descriptionShort = CSTRING(JerryCanWaterFullDirty_Description); diff --git a/addons/assets/CfgWeapons.hpp b/addons/assets/CfgWeapons.hpp index b8758b78..88a26d42 100644 --- a/addons/assets/CfgWeapons.hpp +++ b/addons/assets/CfgWeapons.hpp @@ -746,18 +746,6 @@ class CfgWeapons { }; }; - class CLASS(rope): CLASS(ItemCore) { - displayName = CSTRING(Rope_DisplayName); - descriptionShort = CSTRING(Rope_Description); - picture = QPATHTOF(data\icons\rope.paa); - scope = 2; - scopeCurator = 2; - - class ItemInfo: CBA_MiscItem_ItemInfo { - mass = 15; - }; - }; - class CLASS(needleThread): CLASS(ItemCore) { displayName = CSTRING(NeedleThread_DisplayName); descriptionShort = CSTRING(NeedleThread_Description); diff --git a/addons/assets/script_component.hpp b/addons/assets/script_component.hpp index 0fd27c76..1852bb31 100644 --- a/addons/assets/script_component.hpp +++ b/addons/assets/script_component.hpp @@ -91,7 +91,6 @@ QCLASS(randomMedication), \ QCLASS(rawFish), \ QCLASS(rawMeat), \ - QCLASS(rope), \ QCLASS(ruby), \ QCLASS(sapphire), \ QCLASS(sledgehammer), \ diff --git a/addons/assets/stringtable.xml b/addons/assets/stringtable.xml index d9072d57..b3cd3f1d 100644 --- a/addons/assets/stringtable.xml +++ b/addons/assets/stringtable.xml @@ -129,38 +129,6 @@ 加合百服包装 Caffetin paketi - - Contains Cenestin pills - Obsahuje tablety Cenestinu - Contient des pilules Cenestin - Contiene píldoras Cenestin - Contiene pillole Cenestin - Zawiera tabletki Cenestin - Contém comprimidos de Cenestin - Содержит таблетки Ценестин - Enthält Cenestin-Pillen - Cenestin 알약 함유 - Cenestin錠剤が含まれています - 含有結合雌激素藥片 - 含有结合雌激素药片 - Cenestin hapları içerir - - - Cenestin bottle - Láhev Cenestinu - Flacon de Cenestin - Botella de Cenestin - Flacone di Cenestin - Butelka Cenestin - Frasco de Cenestin - Бутылка Ценестина - Cenestin Flasche - Cenestin 병 - Cenestinボトル - 結合雌激素瓶 - 结合雌激素瓶 - Cenestin şişesi - - makes wood collection easy<br/> - Tool - usnadňuje těžbu dřeva<br/> - Nářadí @@ -3178,100 +3146,132 @@ Demir Parçası - An empty Jerrycan used for water collection... - Prázdný kanystr používaný ke sběru vody... - Un jerrican vide utilisé pour la collecte d'eau... - Un bidón vacío usado para recolectar agua... - Un Jerrycan vuoto utilizzato per la raccolta dell'acqua... - Pusty kanister używany do zbierania wody... - Um Jerrycan vazio usado para coleta de água... - Пустой канистра, используемый для сбора воды... - Ein leerer Kanister zur Wassersammlung... - 물 수집에 사용되는 빈 제리캔... - 水を集めるために使用される空のジェリカン... - 用於收集水的空油桶... - 用于收集水的空油桶... - Su toplamak için kullanılan boş bir Jerrycan... + An empty water canister... + Prázdný kanystr na vodu... + Un bidon d'eau vide... + Un bidón de agua vacío... + Una tanica d'acqua vuota... + Pusty kanister na wodę... + Um galão de água vazio... + Пустая канистра для воды... + Ein leerer Wasserkanister... + 비어 있는 물통... + 空の水筒... + 一個空的水罐... + 一个空的水罐... + Boş bir su bidonu... - Water (Empty) - Voda (Prázdný) - Eau (Vide) - Agua (Vacío) - Acqua (Vuoto) - Woda (Pusty) - Água (Vazio) - Вода (Пустой) - Wasser (Leer) - 물 (비어 있음) - 水(空) - 水 (空) - 水 (空) - Su (Boş) + Water Canister (Empty) + Kanystr na vodu (Prázdný) + Bidon d'eau (Vide) + Bidón de agua (Vacío) + Tanica d'acqua (Vuota) + Kanister na wodę (Pusty) + Galão de água (Vazio) + Канистра для воды (Пустая) + Wasserkanister (Leer) + 물통 (비어 있음) + 水筒 (空) + 水罐 (空) + 水罐 (空) + Su Bidonu (Boş) + + + This water canister is filled with boiled water. It's free from biological contaminants, but might still contain radiation + Tento kanystr na vodu je naplněn převařenou vodou. Je zbaven biologických nečistot, ale může stále obsahovat radiaci + Ce bidon d'eau est rempli d'eau bouillie. Il est exempt de contaminants biologiques, mais peut encore contenir des radiations + Este bidón de agua está lleno de agua hervida. Está libre de contaminantes biológicos, pero aún podría contener radiación + Questa tanica d'eau è riempita con acqua bollita. È priva di contaminanti biologici, ma potrebbe contenere ancora radiazioni + Ten kanister jest napełniony przegotowaną wodą. Jest wolny od zanieczyszczeń biologicznych, ale może nadal zawierać promieniowanie + Este galão de água está cheio de água fervida. Está livre de contaminantes biológicos, mas ainda pode conter radiação + Эта канистра заполнена кипяченой водой. Она очищена от биологических загрязнений, но все еще может содержать радиацию + Dieser Wasserkanister ist mit abgekochtem Wasser gefüllt. Er ist frei von biologischen Verunreinigungen, kann aber noch Strahlung enthalten + 이 물통은 끓인 물로 채워져 있습니다. 생물학적 오염 물질은 없지만, 여전히 방사능이 남아있을 수 있습니다 + この水筒には沸騰させた水が入っています。生物学的汚染物質は含まれていませんが、放射能が残っている可能性があります + 這個水罐裝滿了煮沸的水。不含生物污染物,但可能仍含有輻射 + 这个水罐装满了煮沸的水。不含生物污染物,但可能仍含有辐射 + Bu su bidonu kaynatılmış suyla doludur. Biyolojik kirleticilerden arındırılmıştır ancak hala radyasyon içerebilir + + + Water Canister (Clean) (5Gal / 20L) + Kanystr na vodu (Čistá) (5 gal / 20 l) + Bidon d'eau (Propre) (5 Gal / 20 L) + Bidón de agua (Limpia) (5 Gal / 20 L) + Tanica d'acqua (Pulita) (5 Gal / 20 L) + Kanister na wodę (Czysta) (5 Gal / 20 L) + Galão de água (Limpa) (5 Gal / 20 L) + Канистра для воды (Чистая) (5 гал. / 20 л) + Wasserkanister (Sauber) (5 Gal / 20 L) + 물통 (깨끗함) (5갈론 / 20L) + 水筒 (きれいな水) (5Gal / 20L) + 水罐 (乾淨) (5加侖 / 20公升) + 水罐 (干净) (5加仑 / 20升) + Su Bidonu (Temiz) (5 Gal / 20 L) - Full of dirty water - Plný špinavé vody - Plein d'eau sale - Lleno de agua sucia - Pieno d'acqua sporca - Pełna brudnej wody - Cheio de água suja - Полный грязной воды - Voll mit schmutzigem Wasser - 더러운 물로 가득 - 汚れた水でいっぱい - 裝滿髒水 - 装满脏水 - Kirli su dolu + This water canister contains water straight from the environment, it has a foul strong odor... + Tento kanystr na vodu obsahuje vodu přímo z přírody, má silný odporný zápach... + Ce bidon d'eau contient de l'eau provenant directement de l'environnement, elle a une forte odeur nauséabonde... + Este bidón de agua contiene agua extraída directamente del entorno, tiene un olor fuerte y desagradable... + Questa tanica d'eau contiene acqua proveniente direttamente dall'ambiente, ha un forte odore sgradevole... + Ten kanister zawiera wodę prosto ze środowiska, ma silny, nieprzyjemny zapach... + Este galão de água contém água direto do ambiente, tem un odor forte e desagradável... + Эта канистра содержит воду прямиком из окружающей среды, у нее сильный неприятный запах... + Dieser Wasserkanister enthält Wasser direkt aus der Umwelt, es hat einen starken, üblen Geruch... + 이 물통에는 자연에서 바로 길어온 물이 들어있으며, 지독하고 강한 악취가 납니다... + この水筒には環境から直接採取した水が入っており、ひどい悪臭がします... + 這個水罐裝著直接採集自自然環境的水,散發著強烈的惡臭... + 这个水罐装着直接采集自自然环境的水,散发着强烈恶臭... + Bu su bidonu doğrudan doğadan alınan su içermektedir, çok kötü ve ağır bir kokusu var... - Water 'Dirty' (5Gal / 20L) - Voda 'Špinavá' (5 galonů / 20L) - Eau 'Sale' (5 gallons / 20L) - Agua 'Sucia' (5 galones / 20L) - Acqua 'Sporco' (5 galloni / 20L) - Woda 'Brudna' (5 galonów / 20L) - Água 'Suja' (5 galões / 20L) - Вода 'Грязная' (5 галлонов / 20 л) - Wasser 'Schmutzig' (5 Gallonen / 20L) - 물 '더러운' (5갤런 / 20L) - 水「汚れた」(5ガロン/ 20L) - 髒水 (5加侖 / 20升) - 脏水 (5加仑 / 20升) - Su 'Kirli' (5 Galon / 20L) - - - Full of water - Plný vody - Plein d'eau - Lleno de agua - Pieno d'acqua - Pełna wody - Cheio de água - Полный воды - Voll mit Wasser - 물이 가득 - 水がいっぱい - 裝滿水 - 装满水 - Su dolu - - - Water (5Gal / 20L) - Voda (5 galonů / 20L) - Eau (5 gallons / 20L) - Agua (5 galones / 20L) - Acqua (5 galloni / 20L) - Woda (5 galonów / 20L) - Água (5 galões / 20L) - Вода (5 галлонов / 20 л) - Wasser (5 Gallonen / 20L) - 물 (5갤런 / 20L) - 水(5ガロン/ 20L) - 水 (5加侖 / 20升) - 水 (5加仑 / 20升) - Su (5 Galon / 20L) + Water Canister (Dirty) (5Gal / 20L) + Kanystr na vodu (Znečištěná) (5 gal / 20 l) + Bidon d'eau (Sale) (5 Gal / 20 L) + Bidón de agua (Sucia) (5 Gal / 20 L) + Tanica d'acqua (Sulla) (5 Gal / 20 L) + Kanister na wodę (Brudna) (5 Gal / 20 L) + Galão de água (Suja) (5 Gal / 20 L) + Канистра для воды (Грязная) (5 гал. / 20 л) + Wasserkanister (Schmutzig) (5 Gal / 20 L) + 물통 (오염됨) (5갈론 / 20L) + 水筒 (汚水) (5Gal / 20L) + 水罐 (髒污) (5加侖 / 20公升) + 水罐 (脏污) (5加仑 / 20升) + Su Bidonu (Kirli) (5 Gal / 20 L) + + + This water canister holds water that's been treated with purification tablets, removing all traces of radiation and biological contaminants + Tento kanystr na vodu obsahuje vodu, která byla ošetřena tabletami na čištění vody, což odstranilo veškeré stopy radiace a biologických nečistot + Ce bidon d'eau contient de l'eau traitée avec des pastilles de purification, éliminant toute trace de radiation et de contaminants biologiques + Este bidón de agua contiene agua tratada con pastillas de purificación, eliminando todo rastro de radiación y contaminantes biológicos + Questa tanica d'acqua contiene acqua trattata con pastiglie purificanti, che rimuovono ogni traccia di radiazioni e contaminanti biologici + Ten kanister zawiera wodę uzdatnioną tabletkami oczyszczającymi, co usunęło wszelkie ślady promieniowania i zanieczyszczeń biologicznych + Este galão de água contém água tratada com pastilhas de purificação, removendo todos os vestígios de radiação e contaminantes biológicos + Эта канистра содержит воду, обработанную таблетками для очистки, что удалило все следы радиации и biological загрязнений + Dieser Wasserkanister enthält Wasser, das mit Reinigungstabletten behandelt wurde, wodurch alle Spuren von Strahlung und biologischen Verunreinigungen entfernt wurden + 이 물통에는 정수 알약으로 처리된 물이 들어있어, 모든 방사능과 생물학적 오염 물질 흔적이 제거되었습니다 + この水筒には浄水タブレットで処理された水が入っており、放射能や生物学的汚染物質の形跡がすべて取り除かれています + 這個水罐裝著經過淨水片處理的水,去除了所有輻射和生物污染物的痕跡 + 这个水罐装着经过净水片处理的水, Express了所有辐射和生物污染物的痕迹 + Bu su bidonu, arındırma tabletleri ile işlenmiş, tüm radyasyon ve biyolojik kirletici izlerinden arındırılmış su içermektedir + + + Water Canister (Purified) (5Gal / 20L) + Kanystr na vodu (Purifikovaná) (5 gal / 20 l) + Bidon d'eau (Purifiée) (5 Gal / 20 L) + Bidón de agua (Purificada) (5 Gal / 20 L) + Tanica d'acqua (Purificata) (5 Gal / 20 L) + Kanister na wodę (Oczyszczona) (5 Gal / 20 L) + Galão de água (Purificada) (5 Gal / 20 L) + Канистра для воды (Очищенная) (5 гал. / 20 л) + Wasserkanister (Gereinigt) (5 Gal / 20 L) + 물통 (정수됨) (5갈론 / 20L) + 水筒 (浄化水) (5Gal / 20L) + 水罐 (已過濾) (5加侖 / 20公升) + 水罐 (已过滤) (5加仑 / 20升) + Su Bidonu (Arıtılmış) (5 Gal / 20 L) An empty Jerrycan used for fuel collection...<br/> - Fuel item <br/> - Empty @@ -4073,38 +4073,6 @@ 大米 Pirinç - - small bit of rope <br/> - Crafting item - kousek lana <br/> - Předmět pro výrobu - petit morceau de corde <br/> - Objet d'artisanat - pequeño trozo de cuerda <br/> - Objeto de artesanía - piccolo pezzo di corda <br/> - Oggetto per il crafting - mały kawałek liny <br/> - Przedmiot do tworzenia - pequeno pedaço de corda <br/> - Item de criação - небольшой кусок верёвки <br/> - Предмет для крафта - kleines Stück Seil <br/> - Handwerksgegenstand - 작은 밧줄 조각 <br/> - 제작 아이템 - 少しのロー <br/> - クラフトアイテム - 一小段繩子<br/> - 製作物品 - 一小段绳子<br/> - 制作物品 - küçük bir parça ip <br/> - El işi öğesi - - - Rope - Lano - Corde - Cuerda - Corda - Lina - Corda - Верёвка - Seil - 밧줄 - ロープ - 繩子 - 绳子 - İp - rotor repair kit used for aircraft repairs sada na opravu rotoru používaná při opravách letadel diff --git a/addons/audio/CfgSounds.hpp b/addons/audio/CfgSounds.hpp index e578d05c..3f690c29 100644 --- a/addons/audio/CfgSounds.hpp +++ b/addons/audio/CfgSounds.hpp @@ -380,17 +380,6 @@ class CfgSounds { MACRO_SOUNDS(geiger09,geiger); MACRO_SOUNDS(geiger10,geiger); - // Generator - MACRO_SOUNDS(dieselRunning,generator); - MACRO_SOUNDS(dieselStart,generator); - MACRO_SOUNDS(dieselStop,generator); - MACRO_SOUNDS(kvaRunning,generator); - MACRO_SOUNDS(kvaStart,generator); - MACRO_SOUNDS(kvaStop,generator); - MACRO_SOUNDS(petrolRunning,generator); - MACRO_SOUNDS(petrolStart,generator); - MACRO_SOUNDS(petrolStop,generator); - // Green Mountain MACRO_SOUNDS(gmBeep,greenmountain); MACRO_SOUNDS(gmChatter,greenmountain); diff --git a/addons/audio/sounds/generator/dieselRunning.ogg b/addons/audio/sounds/generator/dieselRunning.ogg deleted file mode 100644 index 962d0f0a..00000000 Binary files a/addons/audio/sounds/generator/dieselRunning.ogg and /dev/null differ diff --git a/addons/audio/sounds/generator/dieselStart.ogg b/addons/audio/sounds/generator/dieselStart.ogg deleted file mode 100644 index b557e825..00000000 Binary files a/addons/audio/sounds/generator/dieselStart.ogg and /dev/null differ diff --git a/addons/audio/sounds/generator/dieselStop.ogg b/addons/audio/sounds/generator/dieselStop.ogg deleted file mode 100644 index eface267..00000000 Binary files a/addons/audio/sounds/generator/dieselStop.ogg and /dev/null differ diff --git a/addons/audio/sounds/generator/kvaRunning.ogg b/addons/audio/sounds/generator/kvaRunning.ogg deleted file mode 100644 index 5588ecfa..00000000 Binary files a/addons/audio/sounds/generator/kvaRunning.ogg and /dev/null differ diff --git a/addons/audio/sounds/generator/kvaStart.ogg b/addons/audio/sounds/generator/kvaStart.ogg deleted file mode 100644 index 88a8ab40..00000000 Binary files a/addons/audio/sounds/generator/kvaStart.ogg and /dev/null differ diff --git a/addons/audio/sounds/generator/kvaStop.ogg b/addons/audio/sounds/generator/kvaStop.ogg deleted file mode 100644 index 0ac01a01..00000000 Binary files a/addons/audio/sounds/generator/kvaStop.ogg and /dev/null differ diff --git a/addons/audio/sounds/generator/petrolRunning.ogg b/addons/audio/sounds/generator/petrolRunning.ogg deleted file mode 100644 index 6d860566..00000000 Binary files a/addons/audio/sounds/generator/petrolRunning.ogg and /dev/null differ diff --git a/addons/audio/sounds/generator/petrolStart.ogg b/addons/audio/sounds/generator/petrolStart.ogg deleted file mode 100644 index 0f2f34c9..00000000 Binary files a/addons/audio/sounds/generator/petrolStart.ogg and /dev/null differ diff --git a/addons/audio/sounds/generator/petrolStop.ogg b/addons/audio/sounds/generator/petrolStop.ogg deleted file mode 100644 index aadcf04d..00000000 Binary files a/addons/audio/sounds/generator/petrolStop.ogg and /dev/null differ diff --git a/addons/cooking/functions/fnc_parseData.sqf b/addons/cooking/functions/fnc_parseData.sqf index 4ddd4848..a6555f25 100644 --- a/addons/cooking/functions/fnc_parseData.sqf +++ b/addons/cooking/functions/fnc_parseData.sqf @@ -24,7 +24,7 @@ GVAR(cookingRecipes) = []; } forEach _requiredItems; private _cookingTime = getNumber (_x >> "cookingTime"); private _outputCount = getNumber (_x >> "outputCount"); - private _toBeReplaced = getArray (_x >> "toBeReplaced"); + private _code = getText (_x >> "code"); private _audio = getText (_x >> "audio"); private _outputXP = getNumber (_x >> "outputXP"); private _requiredXP = getNumber (_x >> "requiredXP"); @@ -35,7 +35,7 @@ GVAR(cookingRecipes) = []; _requiredItems, // Index 1: Required items _cookingTime, // Index 2: Cooking time _outputCount, // Index 3: Output quantity - _toBeReplaced, // Index 4: Items to replace + _code, // Index 4: Code to run on completion _audio, // Index 5: Cooking sound _outputXP, // Index 6: XP awarded _requiredXP, // Index 7: Minimum XP required diff --git a/addons/cooking/functions/fnc_processRecipe.sqf b/addons/cooking/functions/fnc_processRecipe.sqf index b6950cfa..3fc7fc4c 100644 --- a/addons/cooking/functions/fnc_processRecipe.sqf +++ b/addons/cooking/functions/fnc_processRecipe.sqf @@ -26,7 +26,7 @@ private _outputItem = _recipe select 0; private _requiredItems = _recipe select 1; private _cookingTime = _recipe select 2; private _outputCount = _recipe select 3; -private _toBeReplaced = _recipe select 4; +private _code = _recipe select 4; private _audio = _recipe select 5; private _outputXP = _recipe select 6; private _requiredXP = _recipe select 7; @@ -75,7 +75,7 @@ private _currentStep = 0; [{ params ["_args", "_handle"]; - _args params ["_requiredItems", "_outputItem", "_outputCount", "_toBeReplaced", "_outputXP", "_cookingMethod", "_dialog", "_cookInterrupt", "_totalSteps", "_currentStep", "_displayName", "_progressBar", "_soundSource"]; + _args params ["_requiredItems", "_outputItem", "_outputCount", "_code", "_outputXP", "_cookingMethod", "_dialog", "_cookInterrupt", "_totalSteps", "_currentStep", "_displayName", "_progressBar", "_soundSource"]; if (!(player getVariable [QGVAR(isCooking), false]) || !alive player) exitWith { player setVariable [QGVAR(isCooking), nil]; @@ -111,15 +111,7 @@ private _currentStep = 0; [player, _outputItem, true] call CBA_fnc_addItem; }; - if (count _toBeReplaced > 0) then { - private _itemToReplace = _toBeReplaced select 0; - private _chance = _toBeReplaced select 1; - private _replacementItem = _toBeReplaced select 2; - if ([_chance] call EFUNC(common,rollChance)) then { - [player, _itemToReplace] call CBA_fnc_removeItem; - [player, _replacementItem, true] call CBA_fnc_addItem; - }; - }; + if (_code isNotEqualTo "") then {call compile _code}; private _currentXP = player getVariable [QGVAR(xp), MACRO_PLAYER_DEFAULTS_LOW]; player setVariable [QGVAR(xp), _currentXP + _outputXP, true]; @@ -140,7 +132,7 @@ private _currentStep = 0; [_handle] call CBA_fnc_removePerFrameHandler; }; }, 0.5, [ - _requiredItems, _outputItem, _outputCount, _toBeReplaced, _outputXP, _cookingMethod, + _requiredItems, _outputItem, _outputCount, _code, _outputXP, _cookingMethod, _dialog, _cookInterrupt, _totalSteps, _currentStep, _displayName, _progressBar, _soundSource ]] call CBA_fnc_addPerFrameHandler; diff --git a/addons/crafting/functions/fnc_parseData.sqf b/addons/crafting/functions/fnc_parseData.sqf index e1085b42..a0398774 100644 --- a/addons/crafting/functions/fnc_parseData.sqf +++ b/addons/crafting/functions/fnc_parseData.sqf @@ -24,7 +24,7 @@ GVAR(craftingRecipes) = []; } forEach _requiredItems; private _craftingTime = getNumber (_x >> "craftingTime"); private _outputCount = getNumber (_x >> "outputCount"); - private _toBeReplaced = getArray (_x >> "toBeReplaced"); + private _code = getText (_x >> "code"); private _audio = getText (_x >> "audio"); private _outputXP = getNumber (_x >> "outputXP"); // XP awarded upon completion private _requiredXP = getNumber (_x >> "requiredXP"); // Minimum XP required @@ -34,7 +34,7 @@ GVAR(craftingRecipes) = []; _requiredItems, // Index 1: Required items _craftingTime, // Index 2: Crafting time _outputCount, // Index 3: Output quantity - _toBeReplaced, // Index 4: Items to replace + _code, // Index 4: Code to run on completion _audio, // Index 5: Crafting sound _outputXP, // Index 6: XP awarded upon completion _requiredXP // Index 7: Minimum XP required diff --git a/addons/crafting/functions/fnc_processItems.sqf b/addons/crafting/functions/fnc_processItems.sqf index fc1aeb68..eb24c7a5 100644 --- a/addons/crafting/functions/fnc_processItems.sqf +++ b/addons/crafting/functions/fnc_processItems.sqf @@ -26,7 +26,7 @@ private _outputItem = _recipe select 0; private _requiredItems = _recipe select 1; private _craftingTime = _recipe select 2; private _outputCount = _recipe select 3; -private _toBeReplaced = _recipe select 4; +private _code = _recipe select 4; private _audio = _recipe select 5; private _outputXP = _recipe select 6; @@ -68,7 +68,7 @@ private _currentStep = 0; [{ params ["_args", "_handle"]; - _args params ["_requiredItems", "_outputItem", "_outputCount", "_toBeReplaced", "_outputXP", "_dialog", "_craftInterrupt", "_totalSteps", "_currentStep", "_displayName", "_progressBar", "_soundSource"]; + _args params ["_requiredItems", "_outputItem", "_outputCount", "_code", "_outputXP", "_dialog", "_craftInterrupt", "_totalSteps", "_currentStep", "_displayName", "_progressBar", "_soundSource"]; if (!(player getVariable [QGVAR(isCrafting), false]) || !alive player) exitWith { player setVariable [QGVAR(isCrafting), nil]; @@ -104,15 +104,7 @@ private _currentStep = 0; [player, _outputItem, true] call CBA_fnc_addItem; }; - if (count _toBeReplaced > 0) then { - private _itemToReplace = _toBeReplaced select 0; - private _chance = _toBeReplaced select 1; - private _replacementItem = _toBeReplaced select 2; - if ([_chance] call EFUNC(common,rollChance)) then { - [player, _itemToReplace] call CBA_fnc_removeItem; - [player, _replacementItem, true] call CBA_fnc_addItem; - }; - }; + if (_code isNotEqualTo "") then {call compile _code}; private _currentXP = player getVariable [QGVAR(xp), MACRO_PLAYER_DEFAULTS_LOW]; player setVariable [QGVAR(xp), _currentXP + _outputXP, true]; @@ -134,6 +126,6 @@ private _currentStep = 0; [_handle] call CBA_fnc_removePerFrameHandler; }; }, 0.5, [ - _requiredItems, _outputItem, _outputCount, _toBeReplaced, _outputXP, + _requiredItems, _outputItem, _outputCount, _code, _outputXP, _dialog, _craftInterrupt, _totalSteps, _currentStep, _displayName, _progressBar, _soundSource ]] call CBA_fnc_addPerFrameHandler; diff --git a/addons/hydrology/XEH_PREP.hpp b/addons/hydrology/XEH_PREP.hpp index ac4ec1bc..b00eee1a 100644 --- a/addons/hydrology/XEH_PREP.hpp +++ b/addons/hydrology/XEH_PREP.hpp @@ -3,3 +3,4 @@ PREP(drinkFromSource); PREP(icon); PREP(parseData); PREP(processFill); +PREP(purifyWater); diff --git a/addons/hydrology/functions/fnc_purifyWater.sqf b/addons/hydrology/functions/fnc_purifyWater.sqf new file mode 100644 index 00000000..9caf2de9 --- /dev/null +++ b/addons/hydrology/functions/fnc_purifyWater.sqf @@ -0,0 +1,67 @@ +#include "..\script_component.hpp" +/* + * Author: TenuredCLOUD + * Water purification tablet usage + * Decrements water tablets based on water sources in inventory + * + * Arguments: + * None + * + * Return Value: + * None + * + * Example: + * [] call misery_hydrology_fnc_purifyWater; + * + * Public: No +*/ + +if (!([[QCLASS(pureTablets)]] call EFUNC(common,hasItem))) exitWith { + [QEGVAR(common,tileText), localize LSTRING(NoPurificationTablets)] call CBA_fnc_localEvent; +}; + +private _containerData = [ + [QCLASS(waterJerryCan_Dirty), QCLASS(waterJerryCan_Purified), 10], + [QCLASS(waterJerryCan_Clean), QCLASS(waterJerryCan_Purified), 10], + [QCLASS(canteen_Dirty), QCLASS(canteen_Purified), 2], + [QCLASS(canteen_Clean), QCLASS(canteen_Purified), 2], + [QCLASS(waterBottle_Dirty), QCLASS(waterBottle_Purified), 1], + [QCLASS(waterBottle_Clean), QCLASS(waterBottle_Purified), 1] +]; + +private _targetContainer = []; + +{ + _x params ["_inputClass", "_purifiedClass", "_reqTablets"]; + if ([[_inputClass]] call EFUNC(common,hasItem)) exitWith { + _targetContainer = _x; + }; +} forEach _containerData; + +if (_targetContainer isEqualTo []) exitWith { + [QEGVAR(common,tileText), localize LSTRING(NoContainersNeedPurification)] call CBA_fnc_localEvent; +}; + +_targetContainer params ["_inputClass", "_purifiedClass", "_reqTablets"]; + +[QCLASS(pureTablets)] call EFUNC(common,countMagazinesAmmo) params ["_count", "_capacity"]; + +if (_count < _reqTablets) exitWith { + [QEGVAR(common,tileText), format [localize LSTRING(NotEnoughTablets), _reqTablets, [(_targetContainer select 0)] call EFUNC(common,getItemData) select 0, _count]] call CBA_fnc_localEvent; +}; + +[_inputClass] call EFUNC(common,countMagazinesAmmo) params ["_lastVolume"]; + +[player, _inputClass] call CBA_fnc_removeItem; + +[player, _purifiedClass, _lastVolume, true] call CBA_fnc_addMagazine; + +if (_reqTablets >= 10) then { + [player, QCLASS(pureTablets)] call CBA_fnc_removeItem; + [QEGVAR(common,tileText), format [localize LSTRING(UsedAllTablets), [(_targetContainer select 0)] call EFUNC(common,getItemData) select 0]] call CBA_fnc_localEvent; +} else { + for "_i" from 1 to _reqTablets do { + [QCLASS(pureTablets)] call EFUNC(common,itemDecrement); + }; + [QEGVAR(common,tileText), format [localize LSTRING(TabletsUsedCount), [(_targetContainer select 0)] call EFUNC(common,getItemData) select 0, _reqTablets]] call CBA_fnc_localEvent; +}; diff --git a/addons/hydrology/stringtable.xml b/addons/hydrology/stringtable.xml index 966b37b3..495d5850 100644 --- a/addons/hydrology/stringtable.xml +++ b/addons/hydrology/stringtable.xml @@ -129,6 +129,22 @@ 您没有那个容器... Bu kaba sahip değilsiniz... + + You don't have any containers that need chemical purification... + Nemáte žádné nádoby, které by vyžadovaly chemické čištění... + Vous n'avez aucun récipient nécessitant une purification chimique... + No tienes ningún recipiente que requiera purificación química... + Non hai contenitori que richiedano una purificazione chimica... + Nie masz żadnych pojemników, které wymagają chemicznego oczyszczania... + Você não tem nenhum recipiente que precise de purificação química... + У вас нет контейнеров, требующих химической очистки... + Du hast keine Behälter, die eine chemische Reinigung erfordern... + 화학적 정수가 필요한 용기가 없습니다... + 化学的浄化が必要な容器がありません... + 你沒有任何需要化學過濾的容器... + 你没有任何需要化学过滤的容器... + Kimyasal arındırma gerektiren herhangi bir kabınız yok... + No matching container found. Nenalezen žádný odpovídající kontejner. @@ -145,6 +161,38 @@ 找不到匹配的容器。 Eşleşen kap bulunamadı. + + You don't have any purification tablets... + Nemáte žádné tablety na čištění vody... + Vous n'avez pas de pastilles de purification... + No tienes pastillas de purificación... + Non hai pastiglie purificanti... + Nie masz żadnych tabletek oczyszczających... + Você não tem nenhuma pastilha de purificação... + У вас нет таблеток для очистки воды... + Du hast keine Reinigungstabletten... + 정수 알약이 없습니다... + 浄水タブレットを持っていません... + 你沒有任何淨水片... + 你没有任何净水片... + Hiç arındırma tabletiniz yok... + + + You need %1 tablets to purify %2, but you only have %3... + K vyčištění %2 potřebujete %1 tablet, ale máte pouze %3... + Vous avez besoin de %1 pastilles pour purifier %2, mais vous n'en avez que %3... + Necesitas %1 pastillas para purificar %2, pero solo tienes %3... + Hai bisogno di %1 pastiglie per purificare %2, ma ne hai solo %3... + Potrzebujesz %1 tabletek, aby oczyścić %2, ale masz tylko %3... + Você precisa de %1 pastilhas para purificar %2, mas só tem %3... + Вам нужно %1 табл. для очистки %2, но у вас есть только %3... + Du benötigst %1 Tabletten, um %2 zu reinigen, aber du hast nur %3... + %2을(를) 정수하려면 알약 %1개가 필요하지만, %3개만 가지고 있습니다... + %2の浄化にはタブレットが%1個必要ですが、%3個しか持っていません... + 你需要 %1 片淨水片來過濾 %2,但你只有 %3 片... + 你需要 %1 片净水片来过滤 %2,但你只有 %3 片... + %2 nesnesini arındırmak için %1 tablete ihtiyacınız var, ancak sizde sadece %3 tane var... + What container would you like to fill? Který kontejner chcete naplnit? @@ -161,5 +209,37 @@ 您想填充哪个容器? Hangi kabı doldurmak istersiniz? + + %1 purified, used %2 tablet(s)... + %1 vyčištěno, použito %2 tablet... + %1 purifié, %2 pastille(s) utilisée(s)... + %1 purificado, se usó %2 pastilla(s)... + %1 purificato, usato %2 pastiglia/e... + Oczyszczono %1, zużyto %2 tabletek... + %1 purificado, usado(s) %2 pastilha(s)... + %1 очищено, использовано табл.: %2... + %1 gereinigt, %2 Tablette(n) verwendet... + %1 정수 완료, 알약 %2개 사용됨... + %1を浄化しました、タブレットを%2個使用... + %1 已過濾,使用了 %2 片淨水片... + %1 已过滤,使用了 %2 片净水片... + %1 arındırıldı, %2 tablet kullanıldı... + + + You used a whole pack of tablets to purify %1... + K vyčištění %1 jste použili celé balení tablet... + Vous avez utilisé une boîte entière de pastilles pour purifier %1... + Usaste un paquete entero de pastillas para purificar %1... + Hai usato un intero pacchetto di pastiglie per purificare %1... + Zużyłeś całe opakowanie tabletek, aby oczyścić %1... + Você usou um pacote inteiro de pastilhas para purificar %1... + Вы использовали целую упаковку таблеток для очистки %1... + Du hast eine ganze Packung Tabletten verwendet, um %1 zu reinigen... + %1을(를) 정수하기 위해 알약 한 팩을 모두 사용했습니다... + %1の浄化にタブレットを1パック丸ごと使用しました... + 你使用了整包淨水片來過濾 %1... + 你使用了整包净水片来过滤 %1... + %1 nesnesini arındırmak için bütün bir paket tablet kullandınız... + diff --git a/addons/main/script_version.hpp b/addons/main/script_version.hpp index ba1ec461..5b813bd4 100644 --- a/addons/main/script_version.hpp +++ b/addons/main/script_version.hpp @@ -1,4 +1,4 @@ #define MAJOR 2 #define MINOR 0 #define PATCH 0 -#define BUILD 0 +#define BUILD 1