From e6c7758d3f9a01cee2a8cb59be1d572d909d8921 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Sun, 5 Apr 2015 01:57:24 -0500 Subject: [PATCH 001/256] Prototype - Show Mils on mk6 --- addons/mk6mortar/$PBOPREFIX$ | 1 + addons/mk6mortar/CfgEventHandlers.hpp | 10 +++ addons/mk6mortar/CfgMagazines.hpp | 3 + addons/mk6mortar/CfgVehicles.hpp | 21 +++++++ addons/mk6mortar/CfgWeapons.hpp | 3 + addons/mk6mortar/README.md | 10 +++ addons/mk6mortar/RscInGameUI.hpp | 34 ++++++++++ addons/mk6mortar/XEH_clientInit.sqf | 6 ++ addons/mk6mortar/XEH_preInit.sqf | 9 +++ addons/mk6mortar/config.cpp | 19 ++++++ .../mk6mortar/functions/fnc_handleFired.sqf | 29 +++++++++ .../fnc_handlePlayerVehicleChanged.sqf | 55 ++++++++++++++++ .../functions/fnc_turretDisplayLoaded.sqf | 62 +++++++++++++++++++ .../mk6mortar/functions/script_component.hpp | 1 + addons/mk6mortar/script_component.hpp | 12 ++++ addons/mk6mortar/stringtable.xml | 6 ++ 16 files changed, 281 insertions(+) create mode 100644 addons/mk6mortar/$PBOPREFIX$ create mode 100644 addons/mk6mortar/CfgEventHandlers.hpp create mode 100644 addons/mk6mortar/CfgMagazines.hpp create mode 100644 addons/mk6mortar/CfgVehicles.hpp create mode 100644 addons/mk6mortar/CfgWeapons.hpp create mode 100644 addons/mk6mortar/README.md create mode 100644 addons/mk6mortar/RscInGameUI.hpp create mode 100644 addons/mk6mortar/XEH_clientInit.sqf create mode 100644 addons/mk6mortar/XEH_preInit.sqf create mode 100644 addons/mk6mortar/config.cpp create mode 100644 addons/mk6mortar/functions/fnc_handleFired.sqf create mode 100644 addons/mk6mortar/functions/fnc_handlePlayerVehicleChanged.sqf create mode 100644 addons/mk6mortar/functions/fnc_turretDisplayLoaded.sqf create mode 100644 addons/mk6mortar/functions/script_component.hpp create mode 100644 addons/mk6mortar/script_component.hpp create mode 100644 addons/mk6mortar/stringtable.xml diff --git a/addons/mk6mortar/$PBOPREFIX$ b/addons/mk6mortar/$PBOPREFIX$ new file mode 100644 index 0000000000..a21eaf95f0 --- /dev/null +++ b/addons/mk6mortar/$PBOPREFIX$ @@ -0,0 +1 @@ +z\ace\Addons\mk6mortar \ No newline at end of file diff --git a/addons/mk6mortar/CfgEventHandlers.hpp b/addons/mk6mortar/CfgEventHandlers.hpp new file mode 100644 index 0000000000..3daad1425a --- /dev/null +++ b/addons/mk6mortar/CfgEventHandlers.hpp @@ -0,0 +1,10 @@ +class Extended_PreInit_EventHandlers { + class ADDON { + init = QUOTE(call COMPILE_FILE(XEH_preInit)); + }; +}; +class Extended_PostInit_EventHandlers { + class ADDON { + clientInit = QUOTE( call COMPILE_FILE(XEH_clientInit) ); + }; +}; diff --git a/addons/mk6mortar/CfgMagazines.hpp b/addons/mk6mortar/CfgMagazines.hpp new file mode 100644 index 0000000000..39f8bdd780 --- /dev/null +++ b/addons/mk6mortar/CfgMagazines.hpp @@ -0,0 +1,3 @@ +class CfgMagazines { + +}; diff --git a/addons/mk6mortar/CfgVehicles.hpp b/addons/mk6mortar/CfgVehicles.hpp new file mode 100644 index 0000000000..8399777054 --- /dev/null +++ b/addons/mk6mortar/CfgVehicles.hpp @@ -0,0 +1,21 @@ +class CfgVehicles { + class LandVehicle; + class StaticWeapon: LandVehicle { + class Turrets { + class MainTurret; + }; + }; + class StaticMortar: StaticWeapon { + class Turrets: Turrets { + class MainTurret: MainTurret { + }; + }; + }; + class Mortar_01_base_F: StaticMortar { + class Turrets: Turrets { + class MainTurret: MainTurret { + turretInfoType = "ACE_Mk6_RscWeaponRangeArtillery"; + }; + }; + }; +}; diff --git a/addons/mk6mortar/CfgWeapons.hpp b/addons/mk6mortar/CfgWeapons.hpp new file mode 100644 index 0000000000..9d03783519 --- /dev/null +++ b/addons/mk6mortar/CfgWeapons.hpp @@ -0,0 +1,3 @@ +class CfgWeapons { + +}; diff --git a/addons/mk6mortar/README.md b/addons/mk6mortar/README.md new file mode 100644 index 0000000000..84c7a6e984 --- /dev/null +++ b/addons/mk6mortar/README.md @@ -0,0 +1,10 @@ +ace_mk6mortar +========== + +Tweaks the mk6 mortar from Arma3 + +## Maintainers + +The people responsible for merging changes to this component or answering potential questions. + +- [PabstMirror](https://github.com/PabstMirror) diff --git a/addons/mk6mortar/RscInGameUI.hpp b/addons/mk6mortar/RscInGameUI.hpp new file mode 100644 index 0000000000..4082977a5c --- /dev/null +++ b/addons/mk6mortar/RscInGameUI.hpp @@ -0,0 +1,34 @@ +class RscControlsGroup; +class RscText; + +class RscInGameUI { + class RscWeaponRangeArtillery { + class CA_IGUI_elements_group: RscControlsGroup {}; + }; + class ACE_Mk6_RscWeaponRangeArtillery: RscWeaponRangeArtillery { + onLoad = QUOTE(uiNamespace setVariable [ARR_2('ACE_Mk6_RscWeaponRangeArtillery',(_this select 0))]; _this call FUNC(turretDisplayLoaded);); + controls[] = {"ACE_MILS_GROUP", "CA_IGUI_elements_group","CA_RangeElements_group"}; + class ACE_MILS_GROUP: CA_IGUI_elements_group { + idc = 80170; + class controls { + class CA_Elev_MILS: RscText { + idc = 80175; + style = 1; + sizeEx = "0.038*SafezoneH"; + colorText[] = {0.706,0.0745,0.0196,1}; + shadow = 0; + font = "EtelkaMonospacePro"; + text = "80.5"; + x = "36.8 * (0.01875 * SafezoneH)"; + y = "29.3 * (0.025 * SafezoneH)"; + w = "5.2 * (0.01875 * SafezoneH)"; + h = "1.2 * (0.025 * SafezoneH)"; + }; + class CA_Elev_Need_MILS: CA_Elev_MILS { + idc = 80176; + y = "30.8 * (0.025 * SafezoneH)"; + }; + }; + }; + }; +}; diff --git a/addons/mk6mortar/XEH_clientInit.sqf b/addons/mk6mortar/XEH_clientInit.sqf new file mode 100644 index 0000000000..36b39e58c4 --- /dev/null +++ b/addons/mk6mortar/XEH_clientInit.sqf @@ -0,0 +1,6 @@ +#include "script_component.hpp" + +if (!hasInterface) exitWith {}; + +["playerVehicleChanged", {_this call FUNC(handlePlayerVehicleChanged);}] call EFUNC(common,addEventHandler); + diff --git a/addons/mk6mortar/XEH_preInit.sqf b/addons/mk6mortar/XEH_preInit.sqf new file mode 100644 index 0000000000..ab2d8370d0 --- /dev/null +++ b/addons/mk6mortar/XEH_preInit.sqf @@ -0,0 +1,9 @@ +#include "script_component.hpp" + +ADDON = false; + +PREP(handleFired); +PREP(handlePlayerVehicleChanged); +PREP(turretDisplayLoaded); + +ADDON = true; diff --git a/addons/mk6mortar/config.cpp b/addons/mk6mortar/config.cpp new file mode 100644 index 0000000000..f7635d1fb6 --- /dev/null +++ b/addons/mk6mortar/config.cpp @@ -0,0 +1,19 @@ +#include "script_component.hpp" + +class CfgPatches { + class ADDON { + units[] = {}; + weapons[] = {}; + requiredVersion = REQUIRED_VERSION; + requiredAddons[] = {"ace_interaction"}; + author[] = {"PabstMirror"}; + authorUrl = "https://github.com/acemod"; + VERSION_CONFIG; + }; +}; + +#include "CfgEventHandlers.hpp" +#include "CfgMagazines.hpp" +#include "CfgVehicles.hpp" +#include "CfgWeapons.hpp" +#include "RscInGameUI.hpp" diff --git a/addons/mk6mortar/functions/fnc_handleFired.sqf b/addons/mk6mortar/functions/fnc_handleFired.sqf new file mode 100644 index 0000000000..7f1e00453d --- /dev/null +++ b/addons/mk6mortar/functions/fnc_handleFired.sqf @@ -0,0 +1,29 @@ +/* + * Author: PabstMirror + * + * Arguments: + * 0: mortar - Object the event handler is assigned to + * 1: weapon - Fired weapon + * 2: muzzle - Muzzle that was used + * 3: mode - Current mode of the fired weapon + * 4: ammo - Ammo used + * 5: magazine - magazine name which was used + * 6: projectile - Object of the projectile that was shot + * + * Return Value: + * Nothing + * + * Example: + * [clientFiredBIS-XEH] call ace_grenades_fnc_throwGrenade + * + * Public: No + */ +#include "script_component.hpp" + +disableSerialization; + +PARAMS_7(_vehicle,_weapon,_muzzle,_mode,_ammo,_magazine,_projectile); + + + + diff --git a/addons/mk6mortar/functions/fnc_handlePlayerVehicleChanged.sqf b/addons/mk6mortar/functions/fnc_handlePlayerVehicleChanged.sqf new file mode 100644 index 0000000000..a25bda21ff --- /dev/null +++ b/addons/mk6mortar/functions/fnc_handlePlayerVehicleChanged.sqf @@ -0,0 +1,55 @@ +/* + * Author: PabstMirror + * + * + * Arguments: + * + * Return Value: + * + * Example: + * + * Public: No + */ +#include "script_component.hpp" + +PARAMS_2(_player,_newVehicle); + +if (isNull _newVehicle) exitWith {}; +if (!(_newVehicle isKindOf "Mortar_01_base_F")) exitWith {}; + +[{ + PARAMS_2(_args,_pfID); + EXPLODE_1_PVT(_args,_veh); + + if ((vehicle ACE_player) != _veh) then { + [_pfID] call CBA_fnc_removePerFrameHandler; + } else { + _display = uiNamespace getVariable ["ACE_Mk6_RscWeaponRangeArtillery", displayNull]; + if (isNull _display) exitWith {systemChat "null";}; + + _hideRangefinder = false; + + _elevDeg = parseNumber ctrlText (_display displayCtrl 175); + if (true) then { + (_display displayCtrl 80175) ctrlSetText str round (_elevDeg * 6400 / 360); + hintSilent str (_elevDeg * 6400 / 360); + } else { + (_display displayCtrl 80175) ctrlSetText str _elevDeg; + }; + + if (_hideRangefinder) then { + (_display displayCtrl 80176) ctrlSetText ""; + } else { + _elevDeg = parseNumber ctrlText (_display displayCtrl 176); + if (_elevDeg <= 0) then { + (_display displayCtrl 80176) ctrlSetText (ctrlText (_display displayCtrl 176)); + } else { + if (true) then { + (_display displayCtrl 80176) ctrlSetText str round (_elevDeg * 6400 / 360); + } else { + (_display displayCtrl 80176) ctrlSetText str _elevDeg; + }; + }; + }; + }; +}, 0, [_newVehicle]] call CBA_fnc_addPerFrameHandler; \ No newline at end of file diff --git a/addons/mk6mortar/functions/fnc_turretDisplayLoaded.sqf b/addons/mk6mortar/functions/fnc_turretDisplayLoaded.sqf new file mode 100644 index 0000000000..dc3dda4038 --- /dev/null +++ b/addons/mk6mortar/functions/fnc_turretDisplayLoaded.sqf @@ -0,0 +1,62 @@ +/* + * Author: PabstMirror + * + * + * Arguments: + * + * Return Value: + * + * Example: + * + * Public: No + */ +#include "script_component.hpp" + +#define CTRL_CA_HEADING (configFile >> "RscInGameUI" >> "ACE_Mk6_RscWeaponRangeArtillery" >> "CA_IGUI_elements_group" >> "controls" >> "CA_Heading") +#define CTRL_CA_OPTICSPITCH (configFile >> "RscInGameUI" >> "ACE_Mk6_RscWeaponRangeArtillery" >> "CA_IGUI_elements_group" >> "controls" >> "CA_OPTICSPITCH") +#define CTRL_CA_OPTICSZOOM (configFile >> "RscInGameUI" >> "ACE_Mk6_RscWeaponRangeArtillery" >> "CA_IGUI_elements_group" >> "controls" >> "CA_OPTICSZOOM") +#define CTRL_CA_SOLUTION_TEXT (configFile >> "RscInGameUI" >> "ACE_Mk6_RscWeaponRangeArtillery" >> "CA_IGUI_elements_group" >> "controls" >> "CA_SOLUTION_TEXT") +#define CTRL_CA_DISTANCE_TEXT (configFile >> "RscInGameUI" >> "ACE_Mk6_RscWeaponRangeArtillery" >> "CA_IGUI_elements_group" >> "controls" >> "CA_DISTANCE_TEXT") +#define CTRL_CA_DISTANCE (configFile >> "RscInGameUI" >> "ACE_Mk6_RscWeaponRangeArtillery" >> "CA_IGUI_elements_group" >> "controls" >> "CA_DISTANCE") +#define CTRL_CA_TIME_TEXT (configFile >> "RscInGameUI" >> "ACE_Mk6_RscWeaponRangeArtillery" >> "CA_IGUI_elements_group" >> "controls" >> "CA_TIME_TEXT") +#define CTRL_CA_TIME (configFile >> "RscInGameUI" >> "ACE_Mk6_RscWeaponRangeArtillery" >> "CA_IGUI_elements_group" >> "controls" >> "CA_TIME") +#define CTRL_CA_ELEV_NEED_TEXT (configFile >> "RscInGameUI" >> "ACE_Mk6_RscWeaponRangeArtillery" >> "CA_IGUI_elements_group" >> "controls" >> "CA_ELEV_NEED_TEXT") +#define CTRL_CA_RANGEELEMENTS_GROUP (configFile >> "RscInGameUI" >> "ACE_Mk6_RscWeaponRangeArtillery" >> "CA_RangeElements_group") + +#define CTRL_CA_ELEV (configFile >> "RscInGameUI" >> "ACE_Mk6_RscWeaponRangeArtillery" >> "CA_IGUI_elements_group" >> "controls" >> "CA_ELEV") +#define CTRL_CA_ELEV_NEED (configFile >> "RscInGameUI" >> "ACE_Mk6_RscWeaponRangeArtillery" >> "CA_IGUI_elements_group" >> "controls" >> "CA_ELEV_NEED") + + +disableSerialization; + +// PARAMS_1(_display); +_display = uiNamespace getVariable ["ACE_Mk6_RscWeaponRangeArtillery", displayNull]; +if (isNull _display) exitWith {}; + +_hideRangefinder = true; + +_fnc_hideControl = { + PARAMS_2(_path,_hideCtrl); + _idc = getNumber (_path >> "IDC"); + _pos = []; + if (_hideCtrl) then { + _pos = [-9,-9,0,0]; + } else { + { + if (isNumber (_path >> _x)) then { + _pos pushBack (getNumber (_path >> _x)); + } else { + _pos pushBack (call compile (getText (_path >> _x))); + }; + } forEach ["x", "y", "w", "h"]; + }; + (_display displayCtrl _idc) ctrlSetPosition _pos; + (_display displayCtrl _idc) ctrlCommit 0; +}; + +{ + [_x, _hideRangefinder] call _fnc_hideControl; +} forEach [CTRL_CA_HEADING, CTRL_CA_OPTICSPITCH, CTRL_CA_OPTICSZOOM, CTRL_CA_SOLUTION_TEXT, CTRL_CA_DISTANCE_TEXT, CTRL_CA_DISTANCE, CTRL_CA_TIME_TEXT, CTRL_CA_TIME, CTRL_CA_ELEV_NEED_TEXT, CTRL_CA_RANGEELEMENTS_GROUP]; + +[CTRL_CA_ELEV, true] call _fnc_hideControl; +[CTRL_CA_ELEV_NEED, true] call _fnc_hideControl; diff --git a/addons/mk6mortar/functions/script_component.hpp b/addons/mk6mortar/functions/script_component.hpp new file mode 100644 index 0000000000..9980d4fc88 --- /dev/null +++ b/addons/mk6mortar/functions/script_component.hpp @@ -0,0 +1 @@ +#include "\z\ace\addons\mk6mortar\script_component.hpp" \ No newline at end of file diff --git a/addons/mk6mortar/script_component.hpp b/addons/mk6mortar/script_component.hpp new file mode 100644 index 0000000000..adf4a56946 --- /dev/null +++ b/addons/mk6mortar/script_component.hpp @@ -0,0 +1,12 @@ +#define COMPONENT mk6mortar +#include "\z\ace\Addons\main\script_mod.hpp" + +#ifdef DEBUG_ENABLED_MK6MORTAR + #define DEBUG_MODE_FULL +#endif + +#ifdef DEBUG_SETTINGS_MK6MORTAR + #define DEBUG_SETTINGS DEBUG_SETTINGS_MK6MORTAR +#endif + +#include "\z\ace\Addons\main\script_macros.hpp" \ No newline at end of file diff --git a/addons/mk6mortar/stringtable.xml b/addons/mk6mortar/stringtable.xml new file mode 100644 index 0000000000..0124da4007 --- /dev/null +++ b/addons/mk6mortar/stringtable.xml @@ -0,0 +1,6 @@ + + + + + + From dab4822876a8ef9e96a680447ed057d30fdb663f Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Sun, 5 Apr 2015 02:18:51 -0500 Subject: [PATCH 002/256] Settings / Module --- addons/inventory/config.cpp | 2 +- addons/mk6mortar/CfgVehicles.hpp | 26 +++++++++++++++++++ addons/mk6mortar/XEH_preInit.sqf | 1 + addons/mk6mortar/config.cpp | 19 ++++++++++++++ .../fnc_handlePlayerVehicleChanged.sqf | 9 +++---- addons/mk6mortar/functions/fnc_moduleInit.sqf | 25 ++++++++++++++++++ .../functions/fnc_turretDisplayLoaded.sqf | 5 ++-- addons/mk6mortar/stringtable.xml | 7 +++-- 8 files changed, 82 insertions(+), 12 deletions(-) create mode 100644 addons/mk6mortar/functions/fnc_moduleInit.sqf diff --git a/addons/inventory/config.cpp b/addons/inventory/config.cpp index c7b6649be6..83b4a08126 100644 --- a/addons/inventory/config.cpp +++ b/addons/inventory/config.cpp @@ -15,7 +15,7 @@ class CfgPatches { #include "RscDisplayInventory.hpp" class ACE_Settings { - class GVAR(inventoryDisplaySize) { + class GVAR(useMils) { value = 0; typeName = "SCALAR"; isClientSetable = 1; diff --git a/addons/mk6mortar/CfgVehicles.hpp b/addons/mk6mortar/CfgVehicles.hpp index 8399777054..26552e3234 100644 --- a/addons/mk6mortar/CfgVehicles.hpp +++ b/addons/mk6mortar/CfgVehicles.hpp @@ -18,4 +18,30 @@ class CfgVehicles { }; }; }; + + class Logic; + class Module_F: Logic { + class ModuleDescription {}; + }; + class GVAR(module): Module_F { + author = "$STR_ACE_Common_ACETeam"; + category = "ACE"; + displayName = "MK6 Settings"; + function = QFUNC(moduleInit); + scope = 2; + isGlobal = 0; + // icon = QUOTE(PATHTOF(UI\Icon_.paa)); + functionPriority = 0; + class Arguments { + class noComputer { + displayName = "No Computer"; + description = "Removes Computer and Rangefinder"; + typeName = "BOOL"; + defaultValue = 1; + }; + }; + class ModuleDescription: ModuleDescription { + description = ""; + }; + }; }; diff --git a/addons/mk6mortar/XEH_preInit.sqf b/addons/mk6mortar/XEH_preInit.sqf index ab2d8370d0..d3fcaafa5a 100644 --- a/addons/mk6mortar/XEH_preInit.sqf +++ b/addons/mk6mortar/XEH_preInit.sqf @@ -4,6 +4,7 @@ ADDON = false; PREP(handleFired); PREP(handlePlayerVehicleChanged); +PREP(moduleInit); PREP(turretDisplayLoaded); ADDON = true; diff --git a/addons/mk6mortar/config.cpp b/addons/mk6mortar/config.cpp index f7635d1fb6..9d12dd8bf1 100644 --- a/addons/mk6mortar/config.cpp +++ b/addons/mk6mortar/config.cpp @@ -17,3 +17,22 @@ class CfgPatches { #include "CfgVehicles.hpp" #include "CfgWeapons.hpp" #include "RscInGameUI.hpp" + +class ACE_Settings { + class GVAR(useMils) { + value = 1; + typeName = "BOOL"; + isClientSetable = 1; + displayName = "$STR_ACE_mk6mortar_useMils"; + }; + // class GVAR(airResistance) { + // value = 0; + // typeName = "BOOL"; + // isClientSetable = 0; + // }; + class GVAR(noComputer) { + value = 0; + typeName = "BOOL"; + isClientSetable = 0; + }; +}; diff --git a/addons/mk6mortar/functions/fnc_handlePlayerVehicleChanged.sqf b/addons/mk6mortar/functions/fnc_handlePlayerVehicleChanged.sqf index a25bda21ff..94ba2fda55 100644 --- a/addons/mk6mortar/functions/fnc_handlePlayerVehicleChanged.sqf +++ b/addons/mk6mortar/functions/fnc_handlePlayerVehicleChanged.sqf @@ -27,24 +27,21 @@ if (!(_newVehicle isKindOf "Mortar_01_base_F")) exitWith {}; _display = uiNamespace getVariable ["ACE_Mk6_RscWeaponRangeArtillery", displayNull]; if (isNull _display) exitWith {systemChat "null";}; - _hideRangefinder = false; - _elevDeg = parseNumber ctrlText (_display displayCtrl 175); - if (true) then { + if (GVAR(useMils)) then { (_display displayCtrl 80175) ctrlSetText str round (_elevDeg * 6400 / 360); - hintSilent str (_elevDeg * 6400 / 360); } else { (_display displayCtrl 80175) ctrlSetText str _elevDeg; }; - if (_hideRangefinder) then { + if (GVAR(noComputer)) then { (_display displayCtrl 80176) ctrlSetText ""; } else { _elevDeg = parseNumber ctrlText (_display displayCtrl 176); if (_elevDeg <= 0) then { (_display displayCtrl 80176) ctrlSetText (ctrlText (_display displayCtrl 176)); } else { - if (true) then { + if (GVAR(useMils)) then { (_display displayCtrl 80176) ctrlSetText str round (_elevDeg * 6400 / 360); } else { (_display displayCtrl 80176) ctrlSetText str _elevDeg; diff --git a/addons/mk6mortar/functions/fnc_moduleInit.sqf b/addons/mk6mortar/functions/fnc_moduleInit.sqf new file mode 100644 index 0000000000..22f19da2d0 --- /dev/null +++ b/addons/mk6mortar/functions/fnc_moduleInit.sqf @@ -0,0 +1,25 @@ +/* + * Author: PabstMirror + * + * + * Arguments: + * 0: The Module Logic Object + * 1: synced objects + * 2: Activated + * + * Return Value: + * None + * + * Example: + * + * + * Public: No + */ +#include "script_component.hpp" + +PARAMS_3(_logic,_syncedUnits,_activated); + +if (!_activated) exitWith {WARNING("Module - placed but not active");}; +if (!isServer) exitWith {}; + +[_logic, QGVAR(noComputer), "noComputer"] call EFUNC(common,readSettingFromModule); diff --git a/addons/mk6mortar/functions/fnc_turretDisplayLoaded.sqf b/addons/mk6mortar/functions/fnc_turretDisplayLoaded.sqf index dc3dda4038..345d87c2e9 100644 --- a/addons/mk6mortar/functions/fnc_turretDisplayLoaded.sqf +++ b/addons/mk6mortar/functions/fnc_turretDisplayLoaded.sqf @@ -33,8 +33,6 @@ disableSerialization; _display = uiNamespace getVariable ["ACE_Mk6_RscWeaponRangeArtillery", displayNull]; if (isNull _display) exitWith {}; -_hideRangefinder = true; - _fnc_hideControl = { PARAMS_2(_path,_hideCtrl); _idc = getNumber (_path >> "IDC"); @@ -55,8 +53,9 @@ _fnc_hideControl = { }; { - [_x, _hideRangefinder] call _fnc_hideControl; + [_x, GVAR(noComputer)] call _fnc_hideControl; } forEach [CTRL_CA_HEADING, CTRL_CA_OPTICSPITCH, CTRL_CA_OPTICSZOOM, CTRL_CA_SOLUTION_TEXT, CTRL_CA_DISTANCE_TEXT, CTRL_CA_DISTANCE, CTRL_CA_TIME_TEXT, CTRL_CA_TIME, CTRL_CA_ELEV_NEED_TEXT, CTRL_CA_RANGEELEMENTS_GROUP]; +//Always hide these, handled by the mil convertions in handlePlayerVehChanged [CTRL_CA_ELEV, true] call _fnc_hideControl; [CTRL_CA_ELEV_NEED, true] call _fnc_hideControl; diff --git a/addons/mk6mortar/stringtable.xml b/addons/mk6mortar/stringtable.xml index 0124da4007..d105660bcd 100644 --- a/addons/mk6mortar/stringtable.xml +++ b/addons/mk6mortar/stringtable.xml @@ -1,6 +1,9 @@  - + + + Mk6 Mortar: Show Angle in MILS + - + \ No newline at end of file From 518f2077fe14b3810631537137d4dd2e55a4694f Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Sun, 5 Apr 2015 02:27:13 -0500 Subject: [PATCH 003/256] Disable ArtyComputer --- .../mk6mortar/functions/fnc_handlePlayerVehicleChanged.sqf | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/addons/mk6mortar/functions/fnc_handlePlayerVehicleChanged.sqf b/addons/mk6mortar/functions/fnc_handlePlayerVehicleChanged.sqf index 94ba2fda55..c59a1d66a8 100644 --- a/addons/mk6mortar/functions/fnc_handlePlayerVehicleChanged.sqf +++ b/addons/mk6mortar/functions/fnc_handlePlayerVehicleChanged.sqf @@ -24,6 +24,11 @@ if (!(_newVehicle isKindOf "Mortar_01_base_F")) exitWith {}; if ((vehicle ACE_player) != _veh) then { [_pfID] call CBA_fnc_removePerFrameHandler; } else { + if (shownArtilleryComputer && GVAR(noComputer)) then { + //Don't like this solution + closeDialog 0; + [parseText "Computer Disabled"] call EFUNC(common,displayTextStructured); + }; _display = uiNamespace getVariable ["ACE_Mk6_RscWeaponRangeArtillery", displayNull]; if (isNull _display) exitWith {systemChat "null";}; From 1726b787f79c46931a6d4bd60b947dabb7148d4e Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Sun, 5 Apr 2015 03:02:24 -0500 Subject: [PATCH 004/256] AirRestitance/Wind Effects --- .../mk6mortar/functions/fnc_handleFired.sqf | 34 ++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/addons/mk6mortar/functions/fnc_handleFired.sqf b/addons/mk6mortar/functions/fnc_handleFired.sqf index 7f1e00453d..6fd9caa1a5 100644 --- a/addons/mk6mortar/functions/fnc_handleFired.sqf +++ b/addons/mk6mortar/functions/fnc_handleFired.sqf @@ -14,7 +14,7 @@ * Nothing * * Example: - * [clientFiredBIS-XEH] call ace_grenades_fnc_throwGrenade + * [clientFiredBIS-XEH] call ace_ * * Public: No */ @@ -24,6 +24,38 @@ disableSerialization; PARAMS_7(_vehicle,_weapon,_muzzle,_mode,_ammo,_magazine,_projectile); +// if (_bullet isKindOf "BulletBase") then { +[{ + private ["_deltaT", "_bulletVelocity", "_bulletSpeed", "_trueVelocity", "_trueSpeed", "_dragRef", "_accelRef", "_drag", "_accel"]; + PARAMS_2(_args,_pfID); + EXPLODE_3_PVT(_args,_shell,_airFriction,_time); + if (isNull _shell || {!alive _shell}) exitwith { + [_pfID] call cba_fnc_removePerFrameHandler; + }; + _deltaT = time - _time; + _args set[2, time]; + + _bulletVelocity = velocity _shell; + _bulletSpeed = vectorMagnitude _bulletVelocity; + + if (vectorMagnitude ACE_wind > 0) then { + _trueVelocity = _bulletVelocity vectorDiff ACE_wind; + _trueSpeed = vectorMagnitude _trueVelocity; + + // _dragRef = _deltaT * _airFriction * _bulletSpeed * _bulletSpeed; + // _accelRef = (vectorNormalized _bulletVelocity) vectorMultiply (_dragRef); + // _bulletVelocity = _bulletVelocity vectorDiff _accelRef; + + _drag = _deltaT * _airFriction * _trueSpeed; + _accel = _trueVelocity vectorMultiply (_drag); + + _bulletVelocity = _bulletVelocity vectorAdd _accel; + }; + _shell setVelocity _bulletVelocity; + // TODO expand with advanced ballistics functionality. + +}, 0, [_projectile, -0.0001, time]] call CBA_fnc_addPerFrameHandler; +// }; From e71378f9b3be2626bb7ea462340e45a7490c7636 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Sun, 5 Apr 2015 12:40:48 -0500 Subject: [PATCH 005/256] AirResit Module Setting / Charge Display ctrl --- addons/mk6mortar/CfgVehicles.hpp | 12 ++++++--- addons/mk6mortar/UI/ui_charges.paa | Bin 0 -> 22016 bytes addons/mk6mortar/config.cpp | 12 ++++----- .../mk6mortar/functions/fnc_handleFired.sqf | 6 +++++ .../fnc_handlePlayerVehicleChanged.sqf | 25 ++++++++++++++---- addons/mk6mortar/functions/fnc_moduleInit.sqf | 3 ++- .../functions/fnc_turretDisplayLoaded.sqf | 2 +- 7 files changed, 44 insertions(+), 16 deletions(-) create mode 100644 addons/mk6mortar/UI/ui_charges.paa diff --git a/addons/mk6mortar/CfgVehicles.hpp b/addons/mk6mortar/CfgVehicles.hpp index 26552e3234..0c6b540cdc 100644 --- a/addons/mk6mortar/CfgVehicles.hpp +++ b/addons/mk6mortar/CfgVehicles.hpp @@ -33,9 +33,15 @@ class CfgVehicles { // icon = QUOTE(PATHTOF(UI\Icon_.paa)); functionPriority = 0; class Arguments { - class noComputer { - displayName = "No Computer"; - description = "Removes Computer and Rangefinder"; + class disableComputerRangefinder { + displayName = "Remove MK6 Computer/Rangefinder"; + description = "Removes Computer and Rangefinder (these should be removed if you enable air resistance)"; + typeName = "BOOL"; + defaultValue = 1; + }; + class airResistanceEnabled { + displayName = "Air Resitance"; + description = "For Player Shots, Model Air Restiance and Wind Effects"; typeName = "BOOL"; defaultValue = 1; }; diff --git a/addons/mk6mortar/UI/ui_charges.paa b/addons/mk6mortar/UI/ui_charges.paa new file mode 100644 index 0000000000000000000000000000000000000000..7041c654e0465d059d89ec5854bdd42b1bbf73ce GIT binary patch literal 22016 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 EA0g|``Tzg` literal 0 HcmV?d00001 diff --git a/addons/mk6mortar/config.cpp b/addons/mk6mortar/config.cpp index 9d12dd8bf1..a902354777 100644 --- a/addons/mk6mortar/config.cpp +++ b/addons/mk6mortar/config.cpp @@ -25,12 +25,12 @@ class ACE_Settings { isClientSetable = 1; displayName = "$STR_ACE_mk6mortar_useMils"; }; - // class GVAR(airResistance) { - // value = 0; - // typeName = "BOOL"; - // isClientSetable = 0; - // }; - class GVAR(noComputer) { + class GVAR(airResistanceEnabled) { + value = 0; + typeName = "BOOL"; + isClientSetable = 0; + }; + class GVAR(disableComputerRangefinder) { value = 0; typeName = "BOOL"; isClientSetable = 0; diff --git a/addons/mk6mortar/functions/fnc_handleFired.sqf b/addons/mk6mortar/functions/fnc_handleFired.sqf index 6fd9caa1a5..41929110d7 100644 --- a/addons/mk6mortar/functions/fnc_handleFired.sqf +++ b/addons/mk6mortar/functions/fnc_handleFired.sqf @@ -24,6 +24,12 @@ disableSerialization; PARAMS_7(_vehicle,_weapon,_muzzle,_mode,_ammo,_magazine,_projectile); +if (!GVAR(airResistanceEnabled)) exitWith {}; + +if (_unit distance ACE_player > 3000) exitWith {false}; // Large enough distance to not simulate any wind deflection. +if (!GVAR(EnableForAI) && !([_unit] call EFUNC(common,isPlayer))) exitWith {false}; + + // if (_bullet isKindOf "BulletBase") then { [{ private ["_deltaT", "_bulletVelocity", "_bulletSpeed", "_trueVelocity", "_trueSpeed", "_dragRef", "_accelRef", "_drag", "_accel"]; diff --git a/addons/mk6mortar/functions/fnc_handlePlayerVehicleChanged.sqf b/addons/mk6mortar/functions/fnc_handlePlayerVehicleChanged.sqf index c59a1d66a8..e573e74f6a 100644 --- a/addons/mk6mortar/functions/fnc_handlePlayerVehicleChanged.sqf +++ b/addons/mk6mortar/functions/fnc_handlePlayerVehicleChanged.sqf @@ -17,15 +17,30 @@ PARAMS_2(_player,_newVehicle); if (isNull _newVehicle) exitWith {}; if (!(_newVehicle isKindOf "Mortar_01_base_F")) exitWith {}; + + +_chargeText = (findDisplay 46) ctrlCreate ["RscStructuredText", 80085]; + +_xPos = (profilenamespace getvariable ["IGUI_GRID_WEAPON_X", ((safezoneX + safezoneW) - (12.4 * (((safezoneW / safezoneH) min 1.2) / 40)) - 0.5 * (((safezoneW / safezoneH) min 1.2) / 40))]); +_yPos = 2.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (profilenamespace getvariable ["IGUI_GRID_WEAPON_Y", (safezoneY + 0.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25))]); +_wPos = 10 * (((safezoneW / safezoneH) min 1.2) / 40); +_hPos = 1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25); + +_chargeText ctrlSetPosition [_xPos, _yPos, _wPos, _hPos]; +_chargeText ctrlCommit 0; + [{ PARAMS_2(_args,_pfID); - EXPLODE_1_PVT(_args,_veh); + EXPLODE_2_PVT(_args,_veh,_chargeText); if ((vehicle ACE_player) != _veh) then { [_pfID] call CBA_fnc_removePerFrameHandler; + ctrlDelete _chargeText; } else { - if (shownArtilleryComputer && GVAR(noComputer)) then { - //Don't like this solution + _text = format ["%1: %2 ", "Charge", 1, QUOTE(PATHTOF(UI\ui_charges.paa))]; + _chargeText ctrlSetStructuredText parseText _text; + if (shownArtilleryComputer && GVAR(disableComputerRangefinder)) then { + //Don't like this solution, but it works closeDialog 0; [parseText "Computer Disabled"] call EFUNC(common,displayTextStructured); }; @@ -39,7 +54,7 @@ if (!(_newVehicle isKindOf "Mortar_01_base_F")) exitWith {}; (_display displayCtrl 80175) ctrlSetText str _elevDeg; }; - if (GVAR(noComputer)) then { + if (GVAR(disableComputerRangefinder)) then { (_display displayCtrl 80176) ctrlSetText ""; } else { _elevDeg = parseNumber ctrlText (_display displayCtrl 176); @@ -54,4 +69,4 @@ if (!(_newVehicle isKindOf "Mortar_01_base_F")) exitWith {}; }; }; }; -}, 0, [_newVehicle]] call CBA_fnc_addPerFrameHandler; \ No newline at end of file +}, 0, [_newVehicle, _chargeText]] call CBA_fnc_addPerFrameHandler; \ No newline at end of file diff --git a/addons/mk6mortar/functions/fnc_moduleInit.sqf b/addons/mk6mortar/functions/fnc_moduleInit.sqf index 22f19da2d0..81cf39a243 100644 --- a/addons/mk6mortar/functions/fnc_moduleInit.sqf +++ b/addons/mk6mortar/functions/fnc_moduleInit.sqf @@ -22,4 +22,5 @@ PARAMS_3(_logic,_syncedUnits,_activated); if (!_activated) exitWith {WARNING("Module - placed but not active");}; if (!isServer) exitWith {}; -[_logic, QGVAR(noComputer), "noComputer"] call EFUNC(common,readSettingFromModule); +[_logic, QGVAR(disableComputerRangefinder), "disableComputerRangefinder"] call EFUNC(common,readSettingFromModule); +[_logic, QGVAR(airResistanceEnabled), "airResistanceEnabled"] call EFUNC(common,readSettingFromModule); diff --git a/addons/mk6mortar/functions/fnc_turretDisplayLoaded.sqf b/addons/mk6mortar/functions/fnc_turretDisplayLoaded.sqf index 345d87c2e9..f47478133a 100644 --- a/addons/mk6mortar/functions/fnc_turretDisplayLoaded.sqf +++ b/addons/mk6mortar/functions/fnc_turretDisplayLoaded.sqf @@ -53,7 +53,7 @@ _fnc_hideControl = { }; { - [_x, GVAR(noComputer)] call _fnc_hideControl; + [_x, GVAR(disableComputerRangefinder)] call _fnc_hideControl; } forEach [CTRL_CA_HEADING, CTRL_CA_OPTICSPITCH, CTRL_CA_OPTICSZOOM, CTRL_CA_SOLUTION_TEXT, CTRL_CA_DISTANCE_TEXT, CTRL_CA_DISTANCE, CTRL_CA_TIME_TEXT, CTRL_CA_TIME, CTRL_CA_ELEV_NEED_TEXT, CTRL_CA_RANGEELEMENTS_GROUP]; //Always hide these, handled by the mil convertions in handlePlayerVehChanged From 0281897a3db12aa8867ef2ace37da767c13677c5 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Sun, 5 Apr 2015 14:34:39 -0500 Subject: [PATCH 006/256] Show Charge - Cleanup Settings --- addons/mk6mortar/CfgVehicles.hpp | 18 ++++++---- addons/mk6mortar/RscInGameUI.hpp | 24 ++++++++++--- addons/mk6mortar/config.cpp | 11 ++++-- .../fnc_handlePlayerVehicleChanged.sqf | 35 +++++++++++++++---- addons/mk6mortar/functions/fnc_moduleInit.sqf | 3 +- .../functions/fnc_turretDisplayLoaded.sqf | 9 +++-- 6 files changed, 77 insertions(+), 23 deletions(-) diff --git a/addons/mk6mortar/CfgVehicles.hpp b/addons/mk6mortar/CfgVehicles.hpp index 0c6b540cdc..9cfb17d364 100644 --- a/addons/mk6mortar/CfgVehicles.hpp +++ b/addons/mk6mortar/CfgVehicles.hpp @@ -33,18 +33,24 @@ class CfgVehicles { // icon = QUOTE(PATHTOF(UI\Icon_.paa)); functionPriority = 0; class Arguments { - class disableComputerRangefinder { - displayName = "Remove MK6 Computer/Rangefinder"; - description = "Removes Computer and Rangefinder (these should be removed if you enable air resistance)"; - typeName = "BOOL"; - defaultValue = 1; - }; class airResistanceEnabled { displayName = "Air Resitance"; description = "For Player Shots, Model Air Restiance and Wind Effects"; typeName = "BOOL"; defaultValue = 1; }; + class allowComputerRangefinder { + displayName = "Allow MK6 Computer/Rangefinder"; + description = "Show the Computer and Rangefinder (these should be removed if you enable air resistance)"; + typeName = "BOOL"; + defaultValue = 0; + }; + class allowCompass { + displayName = "Allow MK6 Compass"; + description = "Show the MK6 Digital Compass"; + typeName = "BOOL"; + defaultValue = 1; + }; }; class ModuleDescription: ModuleDescription { description = ""; diff --git a/addons/mk6mortar/RscInGameUI.hpp b/addons/mk6mortar/RscInGameUI.hpp index 4082977a5c..8de754bedd 100644 --- a/addons/mk6mortar/RscInGameUI.hpp +++ b/addons/mk6mortar/RscInGameUI.hpp @@ -11,6 +11,20 @@ class RscInGameUI { class ACE_MILS_GROUP: CA_IGUI_elements_group { idc = 80170; class controls { + class CA_Heading_MILS: RscText + { + idc = 80156; + style = 0; + colorText[] = {0.706,0.0745,0.0196,1}; + sizeEx = "0.028*SafezoneH"; + shadow = 0; + font = "EtelkaMonospacePro"; + text = "015"; + x = "25.3 * (0.01875 * SafezoneH)"; + y = "6.3 * (0.025 * SafezoneH)"; + w = "2.2 * (0.01875 * SafezoneH)"; + h = "1 * (0.025 * SafezoneH)"; + }; class CA_Elev_MILS: RscText { idc = 80175; style = 1; @@ -19,14 +33,14 @@ class RscInGameUI { shadow = 0; font = "EtelkaMonospacePro"; text = "80.5"; - x = "36.8 * (0.01875 * SafezoneH)"; - y = "29.3 * (0.025 * SafezoneH)"; - w = "5.2 * (0.01875 * SafezoneH)"; - h = "1.2 * (0.025 * SafezoneH)"; + x = "36.8 * (0.01875 * SafezoneH)"; + y = "29.3 * (0.025 * SafezoneH)"; + w = "5.2 * (0.01875 * SafezoneH)"; + h = "1.2 * (0.025 * SafezoneH)"; }; class CA_Elev_Need_MILS: CA_Elev_MILS { idc = 80176; - y = "30.8 * (0.025 * SafezoneH)"; + y = "30.8 * (0.025 * SafezoneH)"; }; }; }; diff --git a/addons/mk6mortar/config.cpp b/addons/mk6mortar/config.cpp index a902354777..e21fb1e6f9 100644 --- a/addons/mk6mortar/config.cpp +++ b/addons/mk6mortar/config.cpp @@ -25,13 +25,20 @@ class ACE_Settings { isClientSetable = 1; displayName = "$STR_ACE_mk6mortar_useMils"; }; + + //These settings effect gameplay difficutly: defaults will leave the mortar the same as vanilla class GVAR(airResistanceEnabled) { value = 0; typeName = "BOOL"; isClientSetable = 0; }; - class GVAR(disableComputerRangefinder) { - value = 0; + class GVAR(allowComputerRangefinder) { + value = 1; + typeName = "BOOL"; + isClientSetable = 0; + }; + class GVAR(allowCompass) { + value = 1; typeName = "BOOL"; isClientSetable = 0; }; diff --git a/addons/mk6mortar/functions/fnc_handlePlayerVehicleChanged.sqf b/addons/mk6mortar/functions/fnc_handlePlayerVehicleChanged.sqf index e573e74f6a..73f487fa62 100644 --- a/addons/mk6mortar/functions/fnc_handlePlayerVehicleChanged.sqf +++ b/addons/mk6mortar/functions/fnc_handlePlayerVehicleChanged.sqf @@ -29,24 +29,34 @@ _hPos = 1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25); _chargeText ctrlSetPosition [_xPos, _yPos, _wPos, _hPos]; _chargeText ctrlCommit 0; +_tubeWeaponName = (weapons _newVehicle) select 0; +_fireModes = getArray (configFile >> "CfgWeapons" >> _tubeWeaponName >> "modes"); + [{ PARAMS_2(_args,_pfID); - EXPLODE_2_PVT(_args,_veh,_chargeText); + EXPLODE_3_PVT(_args,_mortarVeh,_chargeText,_fireModes); - if ((vehicle ACE_player) != _veh) then { + if ((vehicle ACE_player) != _mortarVeh) then { [_pfID] call CBA_fnc_removePerFrameHandler; ctrlDelete _chargeText; } else { - _text = format ["%1: %2 ", "Charge", 1, QUOTE(PATHTOF(UI\ui_charges.paa))]; + + //Compute: 'charge' from weaponstate + _currentFireMode = (weaponState [_mortarVeh, [0]]) select 2; + _currentChargeMode = _fireModes find _currentFireMode; + + _text = format ["%1: %2 ", "Charge", _currentChargeMode, QUOTE(PATHTOF(UI\ui_charges.paa))]; _chargeText ctrlSetStructuredText parseText _text; - if (shownArtilleryComputer && GVAR(disableComputerRangefinder)) then { + if (shownArtilleryComputer && {!GVAR(allowComputerRangefinder)}) then { //Don't like this solution, but it works closeDialog 0; [parseText "Computer Disabled"] call EFUNC(common,displayTextStructured); }; + _display = uiNamespace getVariable ["ACE_Mk6_RscWeaponRangeArtillery", displayNull]; if (isNull _display) exitWith {systemChat "null";}; + //Update CurrentElevation Display: _elevDeg = parseNumber ctrlText (_display displayCtrl 175); if (GVAR(useMils)) then { (_display displayCtrl 80175) ctrlSetText str round (_elevDeg * 6400 / 360); @@ -54,7 +64,8 @@ _chargeText ctrlCommit 0; (_display displayCtrl 80175) ctrlSetText str _elevDeg; }; - if (GVAR(disableComputerRangefinder)) then { + //Update ElevationNeeded Display: + if (!GVAR(allowComputerRangefinder)) then { (_display displayCtrl 80176) ctrlSetText ""; } else { _elevDeg = parseNumber ctrlText (_display displayCtrl 176); @@ -68,5 +79,17 @@ _chargeText ctrlCommit 0; }; }; }; + + //Update Heading Display: + if (!GVAR(allowCompass)) then { + (_display displayCtrl 80156) ctrlSetText ""; + } else { + _elevDeg = parseNumber ctrlText (_display displayCtrl 156); + if (GVAR(useMils)) then { + (_display displayCtrl 80156) ctrlSetText str round (_elevDeg * 6400 / 360); + } else { + (_display displayCtrl 80156) ctrlSetText str _elevDeg; + }; + }; }; -}, 0, [_newVehicle, _chargeText]] call CBA_fnc_addPerFrameHandler; \ No newline at end of file +}, 0, [_newVehicle, _chargeText,_fireModes]] call CBA_fnc_addPerFrameHandler; \ No newline at end of file diff --git a/addons/mk6mortar/functions/fnc_moduleInit.sqf b/addons/mk6mortar/functions/fnc_moduleInit.sqf index 81cf39a243..e760e443a2 100644 --- a/addons/mk6mortar/functions/fnc_moduleInit.sqf +++ b/addons/mk6mortar/functions/fnc_moduleInit.sqf @@ -22,5 +22,6 @@ PARAMS_3(_logic,_syncedUnits,_activated); if (!_activated) exitWith {WARNING("Module - placed but not active");}; if (!isServer) exitWith {}; -[_logic, QGVAR(disableComputerRangefinder), "disableComputerRangefinder"] call EFUNC(common,readSettingFromModule); [_logic, QGVAR(airResistanceEnabled), "airResistanceEnabled"] call EFUNC(common,readSettingFromModule); +[_logic, QGVAR(allowComputerRangefinder), "allowComputerRangefinder"] call EFUNC(common,readSettingFromModule); +[_logic, QGVAR(allowCompass), "allowCompass"] call EFUNC(common,readSettingFromModule); diff --git a/addons/mk6mortar/functions/fnc_turretDisplayLoaded.sqf b/addons/mk6mortar/functions/fnc_turretDisplayLoaded.sqf index f47478133a..6a316743f1 100644 --- a/addons/mk6mortar/functions/fnc_turretDisplayLoaded.sqf +++ b/addons/mk6mortar/functions/fnc_turretDisplayLoaded.sqf @@ -12,7 +12,7 @@ */ #include "script_component.hpp" -#define CTRL_CA_HEADING (configFile >> "RscInGameUI" >> "ACE_Mk6_RscWeaponRangeArtillery" >> "CA_IGUI_elements_group" >> "controls" >> "CA_Heading") + #define CTRL_CA_OPTICSPITCH (configFile >> "RscInGameUI" >> "ACE_Mk6_RscWeaponRangeArtillery" >> "CA_IGUI_elements_group" >> "controls" >> "CA_OPTICSPITCH") #define CTRL_CA_OPTICSZOOM (configFile >> "RscInGameUI" >> "ACE_Mk6_RscWeaponRangeArtillery" >> "CA_IGUI_elements_group" >> "controls" >> "CA_OPTICSZOOM") #define CTRL_CA_SOLUTION_TEXT (configFile >> "RscInGameUI" >> "ACE_Mk6_RscWeaponRangeArtillery" >> "CA_IGUI_elements_group" >> "controls" >> "CA_SOLUTION_TEXT") @@ -23,6 +23,7 @@ #define CTRL_CA_ELEV_NEED_TEXT (configFile >> "RscInGameUI" >> "ACE_Mk6_RscWeaponRangeArtillery" >> "CA_IGUI_elements_group" >> "controls" >> "CA_ELEV_NEED_TEXT") #define CTRL_CA_RANGEELEMENTS_GROUP (configFile >> "RscInGameUI" >> "ACE_Mk6_RscWeaponRangeArtillery" >> "CA_RangeElements_group") +#define CTRL_CA_HEADING (configFile >> "RscInGameUI" >> "ACE_Mk6_RscWeaponRangeArtillery" >> "CA_IGUI_elements_group" >> "controls" >> "CA_Heading") #define CTRL_CA_ELEV (configFile >> "RscInGameUI" >> "ACE_Mk6_RscWeaponRangeArtillery" >> "CA_IGUI_elements_group" >> "controls" >> "CA_ELEV") #define CTRL_CA_ELEV_NEED (configFile >> "RscInGameUI" >> "ACE_Mk6_RscWeaponRangeArtillery" >> "CA_IGUI_elements_group" >> "controls" >> "CA_ELEV_NEED") @@ -54,8 +55,10 @@ _fnc_hideControl = { { [_x, GVAR(disableComputerRangefinder)] call _fnc_hideControl; -} forEach [CTRL_CA_HEADING, CTRL_CA_OPTICSPITCH, CTRL_CA_OPTICSZOOM, CTRL_CA_SOLUTION_TEXT, CTRL_CA_DISTANCE_TEXT, CTRL_CA_DISTANCE, CTRL_CA_TIME_TEXT, CTRL_CA_TIME, CTRL_CA_ELEV_NEED_TEXT, CTRL_CA_RANGEELEMENTS_GROUP]; +} forEach [CTRL_CA_OPTICSPITCH, CTRL_CA_OPTICSZOOM, CTRL_CA_SOLUTION_TEXT, CTRL_CA_DISTANCE_TEXT, CTRL_CA_DISTANCE, CTRL_CA_TIME_TEXT, CTRL_CA_TIME, CTRL_CA_ELEV_NEED_TEXT, CTRL_CA_RANGEELEMENTS_GROUP]; -//Always hide these, handled by the mil convertions in handlePlayerVehChanged +//Always hide these, handled by the mil convertions PFEH in handlePlayerVehChanged +[CTRL_CA_HEADING, true] call _fnc_hideControl; [CTRL_CA_ELEV, true] call _fnc_hideControl; [CTRL_CA_ELEV_NEED, true] call _fnc_hideControl; + From 34a86e0db3d688f0f3b3cc235a9b89f78710e2e5 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Sun, 5 Apr 2015 14:48:26 -0500 Subject: [PATCH 007/256] Fix Heading Mils --- addons/mk6mortar/CfgVehicles.hpp | 2 +- addons/mk6mortar/RscInGameUI.hpp | 9 ++++----- .../functions/fnc_handlePlayerVehicleChanged.sqf | 6 +++--- addons/mk6mortar/functions/fnc_turretDisplayLoaded.sqf | 2 +- 4 files changed, 9 insertions(+), 10 deletions(-) diff --git a/addons/mk6mortar/CfgVehicles.hpp b/addons/mk6mortar/CfgVehicles.hpp index 9cfb17d364..233a8be205 100644 --- a/addons/mk6mortar/CfgVehicles.hpp +++ b/addons/mk6mortar/CfgVehicles.hpp @@ -40,7 +40,7 @@ class CfgVehicles { defaultValue = 1; }; class allowComputerRangefinder { - displayName = "Allow MK6 Computer/Rangefinder"; + displayName = "Allow MK6 Computer"; description = "Show the Computer and Rangefinder (these should be removed if you enable air resistance)"; typeName = "BOOL"; defaultValue = 0; diff --git a/addons/mk6mortar/RscInGameUI.hpp b/addons/mk6mortar/RscInGameUI.hpp index 8de754bedd..3a3256e936 100644 --- a/addons/mk6mortar/RscInGameUI.hpp +++ b/addons/mk6mortar/RscInGameUI.hpp @@ -11,18 +11,17 @@ class RscInGameUI { class ACE_MILS_GROUP: CA_IGUI_elements_group { idc = 80170; class controls { - class CA_Heading_MILS: RscText - { + class CA_Heading_MILS: RscText { idc = 80156; - style = 0; + style = 2; colorText[] = {0.706,0.0745,0.0196,1}; sizeEx = "0.028*SafezoneH"; shadow = 0; font = "EtelkaMonospacePro"; text = "015"; - x = "25.3 * (0.01875 * SafezoneH)"; + x = "25.0 * (0.01875 * SafezoneH)"; y = "6.3 * (0.025 * SafezoneH)"; - w = "2.2 * (0.01875 * SafezoneH)"; + w = "3.3333 * (0.01875 * SafezoneH)"; h = "1 * (0.025 * SafezoneH)"; }; class CA_Elev_MILS: RscText { diff --git a/addons/mk6mortar/functions/fnc_handlePlayerVehicleChanged.sqf b/addons/mk6mortar/functions/fnc_handlePlayerVehicleChanged.sqf index 73f487fa62..f8a986cb25 100644 --- a/addons/mk6mortar/functions/fnc_handlePlayerVehicleChanged.sqf +++ b/addons/mk6mortar/functions/fnc_handlePlayerVehicleChanged.sqf @@ -84,11 +84,11 @@ _fireModes = getArray (configFile >> "CfgWeapons" >> _tubeWeaponName >> "modes") if (!GVAR(allowCompass)) then { (_display displayCtrl 80156) ctrlSetText ""; } else { - _elevDeg = parseNumber ctrlText (_display displayCtrl 156); + _rotationDegrees = ((getDir _mortarVeh) + (((-180 / PI) * (_mortarVeh animationPhase "mainTurret")) + 360)) % 360; if (GVAR(useMils)) then { - (_display displayCtrl 80156) ctrlSetText str round (_elevDeg * 6400 / 360); + (_display displayCtrl 80156) ctrlSetText str round (_rotationDegrees * 6400 / 360); } else { - (_display displayCtrl 80156) ctrlSetText str _elevDeg; + (_display displayCtrl 80156) ctrlSetText str _rotationDegrees; }; }; }; diff --git a/addons/mk6mortar/functions/fnc_turretDisplayLoaded.sqf b/addons/mk6mortar/functions/fnc_turretDisplayLoaded.sqf index 6a316743f1..860dea069a 100644 --- a/addons/mk6mortar/functions/fnc_turretDisplayLoaded.sqf +++ b/addons/mk6mortar/functions/fnc_turretDisplayLoaded.sqf @@ -54,7 +54,7 @@ _fnc_hideControl = { }; { - [_x, GVAR(disableComputerRangefinder)] call _fnc_hideControl; + [_x, (!GVAR(allowComputerRangefinder))] call _fnc_hideControl; } forEach [CTRL_CA_OPTICSPITCH, CTRL_CA_OPTICSZOOM, CTRL_CA_SOLUTION_TEXT, CTRL_CA_DISTANCE_TEXT, CTRL_CA_DISTANCE, CTRL_CA_TIME_TEXT, CTRL_CA_TIME, CTRL_CA_ELEV_NEED_TEXT, CTRL_CA_RANGEELEMENTS_GROUP]; //Always hide these, handled by the mil convertions PFEH in handlePlayerVehChanged From 3d9da5f142414f892607af1905bf4f78b6b32639 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Sun, 5 Apr 2015 15:00:59 -0500 Subject: [PATCH 008/256] Make Mils Toogle Self Action --- addons/mk6mortar/CfgVehicles.hpp | 10 +++++++++- addons/mk6mortar/XEH_preInit.sqf | 1 + addons/mk6mortar/config.cpp | 7 ------- .../fnc_handlePlayerVehicleChanged.sqf | 10 ++++++---- addons/mk6mortar/functions/fnc_toggleMils.sqf | 20 +++++++++++++++++++ 5 files changed, 36 insertions(+), 12 deletions(-) create mode 100644 addons/mk6mortar/functions/fnc_toggleMils.sqf diff --git a/addons/mk6mortar/CfgVehicles.hpp b/addons/mk6mortar/CfgVehicles.hpp index 233a8be205..ad7bf797f9 100644 --- a/addons/mk6mortar/CfgVehicles.hpp +++ b/addons/mk6mortar/CfgVehicles.hpp @@ -17,6 +17,14 @@ class CfgVehicles { turretInfoType = "ACE_Mk6_RscWeaponRangeArtillery"; }; }; + class ACE_SelfActions { + class GVAR(toggleMils) { + displayName = "Toggle MILS"; + condition = QUOTE(true); + statement = QUOTE(_this call FUNC(toggleMils)); + exceptions[] = {}; + }; + }; }; class Logic; @@ -44,7 +52,7 @@ class CfgVehicles { description = "Show the Computer and Rangefinder (these should be removed if you enable air resistance)"; typeName = "BOOL"; defaultValue = 0; - }; + }; class allowCompass { displayName = "Allow MK6 Compass"; description = "Show the MK6 Digital Compass"; diff --git a/addons/mk6mortar/XEH_preInit.sqf b/addons/mk6mortar/XEH_preInit.sqf index d3fcaafa5a..45a72e1528 100644 --- a/addons/mk6mortar/XEH_preInit.sqf +++ b/addons/mk6mortar/XEH_preInit.sqf @@ -5,6 +5,7 @@ ADDON = false; PREP(handleFired); PREP(handlePlayerVehicleChanged); PREP(moduleInit); +PREP(toggleMils); PREP(turretDisplayLoaded); ADDON = true; diff --git a/addons/mk6mortar/config.cpp b/addons/mk6mortar/config.cpp index e21fb1e6f9..cd849c9efd 100644 --- a/addons/mk6mortar/config.cpp +++ b/addons/mk6mortar/config.cpp @@ -19,13 +19,6 @@ class CfgPatches { #include "RscInGameUI.hpp" class ACE_Settings { - class GVAR(useMils) { - value = 1; - typeName = "BOOL"; - isClientSetable = 1; - displayName = "$STR_ACE_mk6mortar_useMils"; - }; - //These settings effect gameplay difficutly: defaults will leave the mortar the same as vanilla class GVAR(airResistanceEnabled) { value = 0; diff --git a/addons/mk6mortar/functions/fnc_handlePlayerVehicleChanged.sqf b/addons/mk6mortar/functions/fnc_handlePlayerVehicleChanged.sqf index f8a986cb25..6faeeaf415 100644 --- a/addons/mk6mortar/functions/fnc_handlePlayerVehicleChanged.sqf +++ b/addons/mk6mortar/functions/fnc_handlePlayerVehicleChanged.sqf @@ -41,6 +41,8 @@ _fireModes = getArray (configFile >> "CfgWeapons" >> _tubeWeaponName >> "modes") ctrlDelete _chargeText; } else { + _useMils = _mortarVeh getVariable [QGVAR(useMils), true]; + //Compute: 'charge' from weaponstate _currentFireMode = (weaponState [_mortarVeh, [0]]) select 2; _currentChargeMode = _fireModes find _currentFireMode; @@ -58,7 +60,7 @@ _fireModes = getArray (configFile >> "CfgWeapons" >> _tubeWeaponName >> "modes") //Update CurrentElevation Display: _elevDeg = parseNumber ctrlText (_display displayCtrl 175); - if (GVAR(useMils)) then { + if (_useMils) then { (_display displayCtrl 80175) ctrlSetText str round (_elevDeg * 6400 / 360); } else { (_display displayCtrl 80175) ctrlSetText str _elevDeg; @@ -72,7 +74,7 @@ _fireModes = getArray (configFile >> "CfgWeapons" >> _tubeWeaponName >> "modes") if (_elevDeg <= 0) then { (_display displayCtrl 80176) ctrlSetText (ctrlText (_display displayCtrl 176)); } else { - if (GVAR(useMils)) then { + if (_useMils) then { (_display displayCtrl 80176) ctrlSetText str round (_elevDeg * 6400 / 360); } else { (_display displayCtrl 80176) ctrlSetText str _elevDeg; @@ -85,10 +87,10 @@ _fireModes = getArray (configFile >> "CfgWeapons" >> _tubeWeaponName >> "modes") (_display displayCtrl 80156) ctrlSetText ""; } else { _rotationDegrees = ((getDir _mortarVeh) + (((-180 / PI) * (_mortarVeh animationPhase "mainTurret")) + 360)) % 360; - if (GVAR(useMils)) then { + if (_useMils) then { (_display displayCtrl 80156) ctrlSetText str round (_rotationDegrees * 6400 / 360); } else { - (_display displayCtrl 80156) ctrlSetText str _rotationDegrees; + (_display displayCtrl 80156) ctrlSetText (ctrlText (_display displayCtrl 156)); }; }; }; diff --git a/addons/mk6mortar/functions/fnc_toggleMils.sqf b/addons/mk6mortar/functions/fnc_toggleMils.sqf new file mode 100644 index 0000000000..98714836fc --- /dev/null +++ b/addons/mk6mortar/functions/fnc_toggleMils.sqf @@ -0,0 +1,20 @@ +/* + * Author: PabstMirror + * + * + * Arguments: + * + * Return Value: + * + * Example: + * + * Public: No + */ +#include "script_component.hpp" + +PARAMS_2(_mortarVeh,_unit); + +private "_currentSetting"; + +_currentSetting = _mortarVeh getVariable [QGVAR(useMils), true]; +_mortarVeh setVariable [QGVAR(useMils), (!_currentSetting)]; From 61a0ae1aec783270b39d5d0acd22028a107de925 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Sun, 5 Apr 2015 15:48:56 -0500 Subject: [PATCH 009/256] Rangetable Dialog --- addons/mk6mortar/CfgVehicles.hpp | 15 + addons/mk6mortar/RscInGameUI.hpp | 3 - addons/mk6mortar/RscRangeTable.hpp | 87 ++++++ addons/mk6mortar/UI/RangeTable_background.paa | Bin 0 -> 289652 bytes addons/mk6mortar/UI/icon_rangeTable.paa | Bin 0 -> 25789 bytes addons/mk6mortar/XEH_preInit.sqf | 3 + addons/mk6mortar/config.cpp | 11 + .../functions/fnc_rangeTableOpen.sqf | 42 +++ .../functions/fnc_rangeTablePageChange.sqf | 30 ++ .../fnc_rangeTablePreCalculatedValues.sqf | 285 ++++++++++++++++++ addons/mk6mortar/script_component.hpp | 4 +- 11 files changed, 476 insertions(+), 4 deletions(-) create mode 100644 addons/mk6mortar/RscRangeTable.hpp create mode 100644 addons/mk6mortar/UI/RangeTable_background.paa create mode 100644 addons/mk6mortar/UI/icon_rangeTable.paa create mode 100644 addons/mk6mortar/functions/fnc_rangeTableOpen.sqf create mode 100644 addons/mk6mortar/functions/fnc_rangeTablePageChange.sqf create mode 100644 addons/mk6mortar/functions/fnc_rangeTablePreCalculatedValues.sqf diff --git a/addons/mk6mortar/CfgVehicles.hpp b/addons/mk6mortar/CfgVehicles.hpp index ad7bf797f9..7c39aeafdd 100644 --- a/addons/mk6mortar/CfgVehicles.hpp +++ b/addons/mk6mortar/CfgVehicles.hpp @@ -1,4 +1,19 @@ class CfgVehicles { + class Man; + class CAManBase: Man { + class ACE_SelfActions { + class ACE_Equipment { + class GVAR(rangetable) { + displayName = "Open 82mm Rangetable"; + condition = QUOTE(true); + statement = QUOTE(call FUNC(rangeTableOpen)); + priority = 0; + icon = QUOTE(PATHTOF(UI\icon_rangeTable.paa)); + }; + }; + }; + }; + class LandVehicle; class StaticWeapon: LandVehicle { class Turrets { diff --git a/addons/mk6mortar/RscInGameUI.hpp b/addons/mk6mortar/RscInGameUI.hpp index 3a3256e936..102362216a 100644 --- a/addons/mk6mortar/RscInGameUI.hpp +++ b/addons/mk6mortar/RscInGameUI.hpp @@ -1,6 +1,3 @@ -class RscControlsGroup; -class RscText; - class RscInGameUI { class RscWeaponRangeArtillery { class CA_IGUI_elements_group: RscControlsGroup {}; diff --git a/addons/mk6mortar/RscRangeTable.hpp b/addons/mk6mortar/RscRangeTable.hpp new file mode 100644 index 0000000000..65598fd36d --- /dev/null +++ b/addons/mk6mortar/RscRangeTable.hpp @@ -0,0 +1,87 @@ +class ACE_82mm_RangeTable_Dialog +{ + idd = -1; + movingEnable = 1; + onLoad = "uiNamespace setVariable ['ACE_82mm_RangeTable_Dialog', _this select 0];"; + objects[] = {}; + + class ControlsBackground { + class TableBackground: RscPicture { + idc = -1; + text = QUOTE(PATHTOF(UI\RangeTable_background.paa)); + x = "18 *(safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "1 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "16.2634559672906 * (safeZoneH / 40)"; + h = "23 * ((safeZoneH / 1.2) / 25)"; + colorBackground[] = {1,1,1,1}; + }; + class ChargeBackground: RscText { + idc = -1; + x = "13 *(safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "1 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "5 * (safeZoneH / 40)"; + h = "5 * ((safeZoneH / 1.2) / 25)"; + colorBackground[] = {0,0,0,1}; + }; + }; + class controls { + class TheTable : RscListNBox { + idc = 20001; + // style = ST_CENTER + ST_MULTI + LB_TEXTURES; + // style = ST_LEFT + ST_MULTI + LB_TEXTURES; + // style = LB_MULTI + ST_LEFT; // Style + x = "18 *(safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "3.76 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "16.2634559672906 * (safeZoneH / 40)"; + h = "20.24 * ((safeZoneH / 1.2) / 25)"; + columns[] = {(10/792),(86/792),(172/792),(238/792),(329/792),(405/792),(462/792),(527/792),(588/792),(649/792),(710/792)}; + rowHeight = 0.015 * safeZoneH; + sizeEx = "0.014 * safeZoneH"; + font = "EtelkaMonospacePro"; + drawSideArrows = 1; + idcLeft = 14124; + idcRight = 412343243; + colorText[] = {0, 0, 0, 1}; + shadow = "0"; + // colorBorder[] = {1,0,0,1}; + // colorBackground[] = {1, 0, 0, 1}; + colorSelectBackground[] = {0, 0, 0, 0.025}; + colorSelectBackground2[] = {0, 0, 0, 0.025}; + colorScrollbar[] = {0.95,0,0.95,1}; + class ListScrollBar: ScrollBar{ + color[] = {0,0,0,0.6}; + }; + }; + class ChargeListBox: RscListbox { + idc = 1501; + style = ST_RIGHT; + x = "13 *(safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "1 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "5 * (safeZoneH / 40)"; + h = "5 * ((safeZoneH / 1.2) / 25)"; + onLBSelChanged = QUOTE(_this call FUNC(rangeTablePageChange)); + }; + class CloseBackground: RscText { + idc = -1; + x = "33.7634559672906 *(safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "1 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "0.5 * (safeZoneH / 40)"; + h = "0.5 * ((safeZoneH / 1.2) / 25)"; + colorBackground[] = {0,0,0,0.5}; + }; + class CloseActiveText: RscActiveText { + idc = -1; + style = 48; + color[] = {1,1,1,0.7}; + text = "A3\Ui_f\data\GUI\Rsc\RscDisplayArcadeMap\icon_exit_cross_ca.paa"; + x = "33.7634559672906 *(safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "1 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "0.5 * (safeZoneH / 40)"; + h = "0.5 * ((safeZoneH / 1.2) / 25)"; + colorText[] = {1,1,1,0.7}; + colorActive[] = {1,1,1,1}; + tooltip = "Close"; + onButtonClick = "closeDialog 0"; + }; + }; +}; \ No newline at end of file diff --git a/addons/mk6mortar/UI/RangeTable_background.paa b/addons/mk6mortar/UI/RangeTable_background.paa new file mode 100644 index 0000000000000000000000000000000000000000..a2a752ce6e563dad099d03be63140050cb06bb8d GIT binary patch literal 289652 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 literal 0 HcmV?d00001 diff --git a/addons/mk6mortar/UI/icon_rangeTable.paa b/addons/mk6mortar/UI/icon_rangeTable.paa new file mode 100644 index 0000000000000000000000000000000000000000..9273b849d735c0e83c02a483b9abec7b78ad947d GIT binary patch literal 25789 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 literal 0 HcmV?d00001 diff --git a/addons/mk6mortar/XEH_preInit.sqf b/addons/mk6mortar/XEH_preInit.sqf index 45a72e1528..eed38408ae 100644 --- a/addons/mk6mortar/XEH_preInit.sqf +++ b/addons/mk6mortar/XEH_preInit.sqf @@ -5,6 +5,9 @@ ADDON = false; PREP(handleFired); PREP(handlePlayerVehicleChanged); PREP(moduleInit); +PREP(rangeTableOpen); +PREP(rangeTablePageChange); +PREP(rangeTablePreCalculatedValues); PREP(toggleMils); PREP(turretDisplayLoaded); diff --git a/addons/mk6mortar/config.cpp b/addons/mk6mortar/config.cpp index cd849c9efd..5050bb2b32 100644 --- a/addons/mk6mortar/config.cpp +++ b/addons/mk6mortar/config.cpp @@ -16,7 +16,18 @@ class CfgPatches { #include "CfgMagazines.hpp" #include "CfgVehicles.hpp" #include "CfgWeapons.hpp" + +class RscText; +class RscListbox; +class RscListNBox; +class RscPicture; +class RscControlsGroup; +class ScrollBar; +class RscActiveText; + + #include "RscInGameUI.hpp" +#include "RscRangeTable.hpp" class ACE_Settings { //These settings effect gameplay difficutly: defaults will leave the mortar the same as vanilla diff --git a/addons/mk6mortar/functions/fnc_rangeTableOpen.sqf b/addons/mk6mortar/functions/fnc_rangeTableOpen.sqf new file mode 100644 index 0000000000..e3dbcffd1d --- /dev/null +++ b/addons/mk6mortar/functions/fnc_rangeTableOpen.sqf @@ -0,0 +1,42 @@ +/* + * Author: PabstMirror + * + * Arguments: + * Return Value: + * + * Example: + * + * Public: No + */ +#include "script_component.hpp" + +#define LIST_CHARGE ((uiNamespace getVariable "ACE_82mm_RangeTable_Dialog") displayCtrl 1501) + +_weaponName = "mortar_82mm"; + +if (dialog) exitWith {ERROR("Dialog Open");}; +createDialog "ACE_82mm_RangeTable_Dialog"; +if (isNull (uiNamespace getVariable ["ACE_82mm_RangeTable_Dialog", displayNull])) exitWith {ERROR("Dialog failed to open");}; + +//Get Magazine Types +_magazines = getArray (configFile >> "CfgWeapons" >> _weaponName >> "magazines"); + +//For now just get settings from first mag, all rounds have same flight characteristics: +if ((count _magazines) < 1) exitWith {ERROR("No Magazines for weapon");}; +_initSpeed = getNumber (configFile >> "CfgMagazines" >> (_magazines select 0) >> "initSpeed"); + +//Get Charge Modes +_fireModes = getArray (configFile >> "CfgWeapons" >> _weaponName >> "modes"); + +_muzzleVelocities = []; +{ + _showToPlayer = getNumber (configFile >> "CfgWeapons" >> _weaponName >> _x >> "showToPlayer"); + if (_showToPlayer == 1) then { + _artilleryCharge = getNumber (configFile >> "CfgWeapons" >> _weaponName >> _x >> "artilleryCharge"); + LIST_CHARGE lbAdd format ["%1: %2 [%3m/s]", "Charge", (count _muzzleVelocities), (_initSpeed * _artilleryCharge)]; + LIST_CHARGE lbSetData [(count _muzzleVelocities), str (_artilleryCharge * _initSpeed)]; + _muzzleVelocities pushBack _artilleryCharge; + }; +} forEach _fireModes; + +LIST_CHARGE lbSetCurSel 0; diff --git a/addons/mk6mortar/functions/fnc_rangeTablePageChange.sqf b/addons/mk6mortar/functions/fnc_rangeTablePageChange.sqf new file mode 100644 index 0000000000..c7f740ba15 --- /dev/null +++ b/addons/mk6mortar/functions/fnc_rangeTablePageChange.sqf @@ -0,0 +1,30 @@ +/* + * Author: PabstMirror + * + * + * Arguments: + * + * Return Value: + * + * Example: + * + * Public: No + */ +#include "script_component.hpp" + +#define RANGE_TABLE ((uiNamespace getVariable "ACE_82mm_RangeTable_Dialog") displayCtrl 20001) +#define LIST_CHARGE ((uiNamespace getVariable "ACE_82mm_RangeTable_Dialog") displayCtrl 1501) + +_listBoxData = LIST_CHARGE lbData (lbCurSel LIST_CHARGE); +if (isNil "_listBoxData" || {_listBoxData == ""}) exitWith {ERROR("lbCurSel out of bounds or no data");}; +_muzzleVelocity = parseNumber _listBoxData; + +_precalcArray = [_muzzleVelocity, MK6_82mm_AIR_FRICTION] call FUNC(rangeTablePreCalculatedValues); + +lnbClear RANGE_TABLE; +{ + RANGE_TABLE lnbAddRow _x; +} forEach _precalcArray; + +//put dummy line at end because scrolling is fucked and can't see last line +RANGE_TABLE lnbAddRow ["", "", "", "", "", "", "", "", "", "", ""]; diff --git a/addons/mk6mortar/functions/fnc_rangeTablePreCalculatedValues.sqf b/addons/mk6mortar/functions/fnc_rangeTablePreCalculatedValues.sqf new file mode 100644 index 0000000000..ff0f9b5407 --- /dev/null +++ b/addons/mk6mortar/functions/fnc_rangeTablePreCalculatedValues.sqf @@ -0,0 +1,285 @@ +/* + * Author: PabstMirror +Simple Lookup Table for various muzzle velocities and air frictions. +Use ACE_Artillery_fnc_dev_buildTable to build + * + * Arguments: + * 0: NUMBER - Muzzle Velocity +1: NUMBER - Air Friction + * Return Value: + * + * Example: + * + * Public: No + */ +#include "script_component.hpp" + +PARAMS_2(_muzzleVelocity,_airFriction); + +switch (true) do { + +case ((abs(_muzzleVelocity - 60) < 0.00001) && ((abs(_airFriction - -0.0001) < 0.00001))): { + [ + ["100","1455","16","12.0","2.4","0.3","-0.2","0.3","-0.3","-0.0","0.0"], + ["150","1379","26","11.8","1.6","0.3","-0.2","0.4","-0.4","-0.0","0.1"], + ["200","1296","39","11.6","1.2","0.4","-0.3","0.5","-0.5","-0.0","0.1"], + ["250","1204","57","11.2","1.0","0.4","-0.3","0.7","-0.7","-0.1","0.1"], + ["300","1089","88","10.6","0.8","0.4","-0.3","0.8","-0.8","-0.1","0.1"], + ["350","894","187","9.3","0.6","0.4","-0.3","0.9","-0.9","-0.1","0.1"] + ] + }; + +case ((abs(_muzzleVelocity - 120) < 0.00001) && ((abs(_airFriction - -0.0001) < 0.00001))): { + [ + ["200","1523","3","23.6","8.2","1.7","-1.6","0.5","-0.5","-0.2","0.2"], + ["250","1503","3","23.5","6.6","1.8","-1.6","0.6","-0.6","-0.2","0.2"], + ["300","1483","4","23.5","5.5","1.8","-1.6","0.7","-0.8","-0.3","0.3"], + ["350","1463","5","23.4","4.7","1.9","-1.7","0.9","-0.9","-0.4","0.3"], + ["400","1443","5","23.4","4.2","1.9","-1.7","1.0","-1.0","-0.4","0.4"], + ["450","1423","6","23.3","3.7","2.0","-1.7","1.1","-1.1","-0.5","0.4"], + ["500","1402","7","23.2","3.4","2.0","-1.8","1.2","-1.3","-0.5","0.5"], + ["550","1381","8","23.1","3.1","2.1","-1.8","1.4","-1.4","-0.6","0.5"], + ["600","1359","9","23.0","2.8","2.2","-1.9","1.5","-1.5","-0.6","0.6"], + ["650","1337","10","22.9","2.6","2.2","-1.9","1.6","-1.6","-0.7","0.7"], + ["700","1314","11","22.7","2.4","2.3","-2.0","1.7","-1.7","-0.7","0.7"], + ["750","1291","13","22.6","2.3","2.4","-2.0","1.9","-1.9","-0.8","0.8"], + ["800","1267","14","22.4","2.1","2.4","-2.1","2.0","-2.0","-0.8","0.8"], + ["850","1241","16","22.2","2.0","2.5","-2.1","2.1","-2.1","-0.9","0.9"], + ["900","1215","17","22.0","1.9","2.5","-2.2","2.2","-2.2","-0.9","0.9"], + ["950","1187","20","21.7","1.8","2.6","-2.3","2.3","-2.4","-1.0","1.0"], + ["1000","1158","23","21.5","1.7","2.6","-2.3","2.5","-2.5","-1.1","1.0"], + ["1050","1127","26","21.1","1.6","2.7","-2.4","2.6","-2.6","-1.1","1.1"], + ["1100","1092","30","20.8","1.5","2.7","-2.4","2.7","-2.8","-1.2","1.1"], + ["1150","1054","36","20.4","1.4","2.7","-2.4","2.9","-2.9","-1.2","1.2"], + ["1200","1011","45","19.8","1.3","2.7","-2.5","3.0","-3.0","-1.3","1.2"], + ["1250","957","59","19.1","1.2","2.7","-2.4","3.1","-3.1","-1.3","1.3"], + ["1300","876","94","18.0","1.1","2.6","-2.4","3.2","-3.3","-1.3","1.3"] + ] + }; + +case ((abs(_muzzleVelocity - 180) < 0.00001) && ((abs(_airFriction - -0.0001) < 0.00001))): { + [ + ["400","1523","1","34.0","11.7","4.9","-4.6","0.9","-0.9","-0.8","0.8"], + ["450","1513","1","34.0","10.5","4.9","-4.7","1.0","-1.0","-0.9","0.8"], + ["500","1504","2","34.0","9.4","5.0","-4.7","1.1","-1.1","-1.0","0.9"], + ["550","1494","2","33.9","8.6","5.1","-4.7","1.2","-1.2","-1.1","1.0"], + ["600","1484","2","33.9","7.9","5.1","-4.8","1.3","-1.4","-1.2","1.1"], + ["650","1474","2","33.9","7.3","5.2","-4.8","1.5","-1.5","-1.3","1.2"], + ["700","1464","2","33.8","6.8","5.2","-4.9","1.6","-1.6","-1.4","1.3"], + ["750","1454","2","33.8","6.3","5.3","-4.9","1.7","-1.7","-1.5","1.4"], + ["800","1444","3","33.7","6.0","5.4","-5.0","1.8","-1.8","-1.6","1.5"], + ["850","1433","3","33.7","5.6","5.4","-5.0","1.9","-1.9","-1.7","1.6"], + ["900","1423","3","33.6","5.3","5.5","-5.1","2.0","-2.0","-1.8","1.7"], + ["950","1413","3","33.6","5.0","5.6","-5.1","2.1","-2.1","-1.9","1.8"], + ["1000","1402","3","33.5","4.8","5.6","-5.2","2.2","-2.2","-2.0","1.9"], + ["1050","1392","4","33.4","4.6","5.7","-5.3","2.3","-2.4","-2.1","2.0"], + ["1100","1381","4","33.3","4.4","5.8","-5.3","2.5","-2.5","-2.2","2.1"], + ["1150","1370","4","33.3","4.2","5.8","-5.4","2.6","-2.6","-2.3","2.2"], + ["1200","1359","4","33.2","4.0","5.9","-5.5","2.7","-2.7","-2.4","2.3"], + ["1250","1348","5","33.1","3.9","6.0","-5.5","2.8","-2.8","-2.5","2.4"], + ["1300","1337","5","33.0","3.7","6.1","-5.6","2.9","-2.9","-2.6","2.5"], + ["1350","1326","5","32.9","3.6","6.1","-5.6","3.0","-3.0","-2.7","2.6"], + ["1400","1314","5","32.8","3.5","6.2","-5.7","3.1","-3.1","-2.8","2.7"], + ["1450","1302","6","32.7","3.3","6.3","-5.8","3.2","-3.2","-2.9","2.8"], + ["1500","1290","6","32.6","3.2","6.3","-5.9","3.3","-3.4","-3.1","2.9"], + ["1550","1278","6","32.5","3.1","6.4","-5.9","3.4","-3.5","-3.2","3.0"], + ["1600","1266","7","32.3","3.0","6.5","-6.0","3.5","-3.6","-3.3","3.1"], + ["1650","1253","7","32.2","2.9","6.6","-6.1","3.7","-3.7","-3.4","3.2"], + ["1700","1240","8","32.0","2.8","6.6","-6.1","3.8","-3.8","-3.5","3.3"], + ["1750","1227","8","31.9","2.8","6.7","-6.2","3.9","-3.9","-3.6","3.4"], + ["1800","1214","9","31.7","2.7","6.7","-6.3","4.0","-4.0","-3.7","3.5"], + ["1850","1200","9","31.6","2.6","6.8","-6.3","4.1","-4.1","-3.8","3.6"], + ["1900","1186","10","31.4","2.5","6.9","-6.4","4.2","-4.2","-3.9","3.7"], + ["1950","1171","10","31.2","2.4","6.9","-6.5","4.3","-4.3","-4.0","3.8"], + ["2000","1156","11","31.0","2.4","7.0","-6.5","4.4","-4.4","-4.1","3.9"], + ["2050","1141","12","30.8","2.3","7.0","-6.6","4.5","-4.6","-4.2","4.0"], + ["2100","1124","13","30.5","2.2","7.1","-6.6","4.7","-4.7","-4.3","4.1"], + ["2150","1108","14","30.3","2.2","7.1","-6.6","4.8","-4.8","-4.4","4.2"], + ["2200","1090","15","30.0","2.1","7.2","-6.7","4.9","-4.9","-4.5","4.3"], + ["2250","1071","17","29.7","2.0","7.2","-6.7","5.0","-5.0","-4.6","4.4"], + ["2300","1052","18","29.4","2.0","7.2","-6.8","5.1","-5.1","-4.7","4.5"], + ["2350","1030","20","29.0","1.9","7.2","-6.8","5.2","-5.2","-4.8","4.6"], + ["2400","1008","23","28.6","1.9","7.2","-6.8","5.3","-5.3","-4.9","4.7"], + ["2450","983","26","28.2","1.8","7.2","-6.8","5.4","-5.4","-5.0","4.8"], + ["2500","954","31","27.6","1.7","7.1","-6.8","5.6","-5.6","-5.1","4.9"], + ["2550","921","38","27.0","1.6","7.1","-6.7","5.7","-5.7","-5.2","4.9"], + ["2600","878","52","26.1","1.5","6.9","-6.6","5.8","-5.8","-5.2","5.0"] + ] + }; +case ((abs(_muzzleVelocity - 240) < 0.00001) && ((abs(_airFriction - -0.0001) < 0.00001))): { + [ + ["600","1526","1","43.3","15.3","9.5","-9.1","1.2","-1.2","-1.8","1.7"], + ["650","1519","1","43.3","14.1","9.5","-9.2","1.3","-1.3","-1.9","1.8"], + ["700","1513","1","43.3","13.2","9.6","-9.2","1.4","-1.4","-2.1","1.9"], + ["750","1507","1","43.2","12.3","9.6","-9.2","1.5","-1.5","-2.2","2.1"], + ["800","1500","1","43.2","11.5","9.7","-9.3","1.6","-1.6","-2.4","2.2"], + ["850","1494","1","43.2","10.9","9.7","-9.3","1.7","-1.7","-2.5","2.4"], + ["900","1488","1","43.2","10.3","9.8","-9.4","1.8","-1.8","-2.7","2.5"], + ["950","1481","1","43.1","9.8","9.9","-9.4","1.9","-1.9","-2.8","2.7"], + ["1000","1475","1","43.1","9.3","9.9","-9.5","2.0","-2.0","-3.0","2.8"], + ["1050","1468","1","43.1","8.9","10.0","-9.5","2.1","-2.1","-3.1","2.9"], + ["1100","1462","1","43.0","8.5","10.1","-9.6","2.2","-2.2","-3.3","3.1"], + ["1150","1455","1","43.0","8.1","10.1","-9.6","2.3","-2.3","-3.4","3.2"], + ["1200","1449","1","43.0","7.8","10.2","-9.7","2.4","-2.4","-3.6","3.4"], + ["1250","1442","2","42.9","7.5","10.3","-9.8","2.5","-2.5","-3.7","3.5"], + ["1300","1436","2","42.9","7.2","10.3","-9.8","2.6","-2.6","-3.9","3.6"], + ["1350","1429","2","42.8","6.9","10.4","-9.9","2.7","-2.7","-4.0","3.8"], + ["1400","1422","2","42.8","6.7","10.5","-10.0","2.8","-2.8","-4.2","3.9"], + ["1450","1416","2","42.7","6.5","10.5","-10.0","2.9","-2.9","-4.4","4.1"], + ["1500","1409","2","42.7","6.2","10.6","-10.1","3.0","-3.0","-4.5","4.2"], + ["1550","1402","2","42.6","6.0","10.7","-10.2","3.0","-3.1","-4.7","4.4"], + ["1600","1395","2","42.6","5.9","10.8","-10.2","3.1","-3.2","-4.8","4.5"], + ["1650","1388","2","42.5","5.7","10.8","-10.3","3.2","-3.3","-5.0","4.7"], + ["1700","1381","2","42.4","5.5","10.9","-10.4","3.3","-3.3","-5.1","4.8"], + ["1750","1374","2","42.4","5.4","11.0","-10.4","3.4","-3.4","-5.3","4.9"], + ["1800","1367","2","42.3","5.2","11.0","-10.5","3.5","-3.5","-5.4","5.1"], + ["1850","1360","3","42.2","5.1","11.1","-10.6","3.6","-3.6","-5.6","5.2"], + ["1900","1353","3","42.2","5.0","11.2","-10.6","3.7","-3.7","-5.8","5.4"], + ["1950","1346","3","42.1","4.8","11.3","-10.7","3.8","-3.8","-5.9","5.5"], + ["2000","1338","3","42.0","4.7","11.3","-10.8","3.9","-3.9","-6.1","5.7"], + ["2050","1331","3","41.9","4.6","11.4","-10.9","4.0","-4.0","-6.2","5.8"], + ["2100","1323","3","41.9","4.5","11.5","-10.9","4.1","-4.1","-6.4","6.0"], + ["2150","1316","3","41.8","4.4","11.6","-11.0","4.2","-4.2","-6.5","6.1"], + ["2200","1308","3","41.7","4.3","11.6","-11.1","4.3","-4.3","-6.7","6.3"], + ["2250","1301","3","41.6","4.2","11.7","-11.1","4.4","-4.4","-6.9","6.4"], + ["2300","1293","4","41.5","4.1","11.8","-11.2","4.5","-4.5","-7.0","6.6"], + ["2350","1285","4","41.4","4.0","11.9","-11.3","4.6","-4.6","-7.2","6.7"], + ["2400","1277","4","41.3","3.9","11.9","-11.3","4.7","-4.7","-7.3","6.9"], + ["2450","1269","4","41.2","3.8","12.0","-11.4","4.8","-4.8","-7.5","7.0"], + ["2500","1261","4","41.1","3.8","12.1","-11.5","4.9","-4.9","-7.7","7.1"], + ["2550","1253","4","41.0","3.7","12.1","-11.6","5.0","-5.0","-7.8","7.3"], + ["2600","1244","4","40.9","3.6","12.2","-11.6","5.1","-5.1","-8.0","7.4"], + ["2650","1236","5","40.7","3.5","12.3","-11.7","5.2","-5.2","-8.1","7.6"], + ["2700","1227","5","40.6","3.5","12.3","-11.8","5.3","-5.3","-8.3","7.7"], + ["2750","1219","5","40.5","3.4","12.4","-11.8","5.4","-5.4","-8.4","7.9"], + ["2800","1210","5","40.3","3.3","12.5","-11.9","5.5","-5.5","-8.6","8.0"], + ["2850","1201","5","40.2","3.3","12.5","-12.0","5.6","-5.6","-8.8","8.2"], + ["2900","1192","6","40.1","3.2","12.6","-12.0","5.7","-5.7","-8.9","8.3"], + ["2950","1182","6","39.9","3.1","12.6","-12.1","5.8","-5.8","-9.1","8.5"], + ["3000","1173","6","39.7","3.1","12.7","-12.2","5.9","-5.9","-9.2","8.6"], + ["3050","1163","6","39.6","3.0","12.7","-12.2","6.0","-6.0","-9.4","8.8"], + ["3100","1153","7","39.4","3.0","12.8","-12.3","6.1","-6.0","-9.5","8.9"], + ["3150","1143","7","39.2","2.9","12.8","-12.3","6.1","-6.2","-9.7","9.0"], + ["3200","1133","7","39.0","2.9","12.9","-12.4","6.3","-6.2","-9.8","9.2"], + ["3250","1122","8","38.8","2.8","12.9","-12.4","6.4","-6.3","-10.0","9.3"], + ["3300","1111","8","38.6","2.7","13.0","-12.5","6.4","-6.4","-10.2","9.5"], + ["3350","1100","9","38.4","2.7","13.0","-12.5","6.5","-6.5","-10.3","9.6"], + ["3400","1088","9","38.2","2.6","13.0","-12.5","6.6","-6.6","-10.5","9.8"], + ["3450","1076","10","38.0","2.6","13.0","-12.6","6.7","-6.7","-10.6","9.9"], + ["3500","1064","10","37.7","2.5","13.1","-12.6","6.9","-6.8","-10.7","10.0"], + ["3550","1051","11","37.4","2.5","13.1","-12.6","7.0","-6.9","-10.9","10.2"], + ["3600","1038","12","37.2","2.4","13.1","-12.6","7.0","-7.0","-11.0","10.3"], + ["3650","1024","13","36.9","2.4","13.1","-12.6","7.2","-7.1","-11.2","10.4"], + ["3700","1009","14","36.5","2.3","13.1","-12.6","7.2","-7.3","-11.3","10.5"], + ["3750","993","15","36.2","2.3","13.0","-12.6","7.4","-7.3","-11.4","10.7"], + ["3800","977","16","35.8","2.2","13.0","-12.6","7.5","-7.5","-11.6","10.8"], + ["3850","959","18","35.4","2.2","13.0","-12.6","7.6","-7.6","-11.7","10.9"], + ["3900","940","20","34.9","2.1","12.9","-12.5","7.7","-7.7","-11.8","11.0"], + ["3950","918","23","34.4","2.0","12.8","-12.4","7.8","-7.8","-11.9","11.1"], + ["4000","893","28","33.7","2.0","12.7","-12.3","7.9","-7.9","-12.0","11.2"], + ["4050","863","35","32.9","1.9","12.5","-12.1","8.0","-8.0","-12.0","11.2"], + ["4100","821","50","31.8","1.8","12.1","-11.8","8.2","-8.2","-12.0","11.2"] + ] + }; +case ((abs(_muzzleVelocity - 300) < 0.00001) && ((abs(_airFriction - -0.0001) < 0.00001))): { + [ + ["800","1527","0","51.4","18.2","15.0","-14.6","1.4","-1.4","-3.1","2.9"], + ["850","1522","1","51.4","17.2","15.0","-14.6","1.5","-1.5","-3.3","3.0"], + ["900","1517","1","51.4","16.2","15.0","-14.7","1.6","-1.6","-3.5","3.2"], + ["950","1513","1","51.4","15.4","15.1","-14.7","1.7","-1.6","-3.7","3.4"], + ["1000","1508","1","51.4","14.7","15.2","-14.8","1.7","-1.7","-3.9","3.6"], + ["1050","1503","1","51.3","14.0","15.2","-14.8","1.8","-1.8","-4.1","3.8"], + ["1100","1498","1","51.3","13.4","15.3","-14.8","1.9","-1.9","-4.3","3.9"], + ["1150","1494","1","51.3","12.8","15.3","-14.9","2.0","-2.0","-4.5","4.1"], + ["1200","1489","1","51.3","12.3","15.4","-14.9","2.1","-2.1","-4.7","4.3"], + ["1250","1484","1","51.2","11.8","15.5","-15.0","2.2","-2.2","-4.9","4.5"], + ["1300","1479","1","51.2","11.3","15.5","-15.0","2.3","-2.3","-5.1","4.7"], + ["1350","1475","1","51.2","10.9","15.6","-15.1","2.3","-2.3","-5.3","4.8"], + ["1400","1470","1","51.2","10.6","15.6","-15.1","2.4","-2.4","-5.5","5.0"], + ["1450","1465","1","51.1","10.2","15.7","-15.2","2.5","-2.5","-5.7","5.2"], + ["1500","1460","1","51.1","9.9","15.8","-15.3","2.6","-2.6","-5.9","5.4"], + ["1550","1455","1","51.1","9.5","15.8","-15.3","2.7","-2.7","-6.1","5.6"], + ["1600","1451","1","51.0","9.3","15.9","-15.4","2.8","-2.8","-6.3","5.8"], + ["1650","1446","1","51.0","9.0","16.0","-15.4","2.9","-2.9","-6.5","5.9"], + ["1700","1441","1","51.0","8.7","16.0","-15.5","3.0","-2.9","-6.7","6.1"], + ["1750","1436","1","50.9","8.5","16.1","-15.6","3.0","-3.0","-6.9","6.3"], + ["1800","1431","1","50.9","8.2","16.2","-15.6","3.1","-3.1","-7.1","6.5"], + ["1850","1426","1","50.8","8.0","16.2","-15.7","3.2","-3.2","-7.3","6.7"], + ["1900","1421","1","50.8","7.8","16.3","-15.8","3.3","-3.3","-7.5","6.9"], + ["1950","1416","1","50.7","7.6","16.4","-15.8","3.4","-3.4","-7.7","7.1"], + ["2000","1411","1","50.7","7.4","16.4","-15.9","3.5","-3.5","-7.9","7.2"], + ["2050","1406","1","50.7","7.3","16.5","-15.9","3.6","-3.5","-8.1","7.4"], + ["2100","1401","1","50.6","7.1","16.6","-16.0","3.6","-3.6","-8.3","7.6"], + ["2150","1396","1","50.6","6.9","16.6","-16.1","3.7","-3.7","-8.5","7.8"], + ["2200","1390","1","50.5","6.8","16.7","-16.1","3.8","-3.8","-8.7","8.0"], + ["2250","1385","2","50.5","6.6","16.8","-16.2","3.9","-3.9","-8.9","8.2"], + ["2300","1380","2","50.4","6.5","16.9","-16.3","4.0","-4.0","-9.1","8.3"], + ["2350","1375","2","50.3","6.3","16.9","-16.4","4.1","-4.1","-9.3","8.5"], + ["2400","1370","2","50.3","6.2","17.0","-16.4","4.2","-4.1","-9.5","8.7"], + ["2450","1364","2","50.2","6.1","17.1","-16.5","4.2","-4.2","-9.7","8.9"], + ["2500","1359","2","50.2","6.0","17.1","-16.6","4.3","-4.3","-9.9","9.1"], + ["2550","1354","2","50.1","5.8","17.2","-16.6","4.4","-4.4","-10.1","9.3"], + ["2600","1348","2","50.0","5.7","17.3","-16.7","4.5","-4.5","-10.3","9.5"], + ["2650","1343","2","50.0","5.6","17.3","-16.8","4.6","-4.6","-10.5","9.6"], + ["2700","1337","2","49.9","5.5","17.4","-16.8","4.7","-4.7","-10.7","9.8"], + ["2750","1332","2","49.8","5.4","17.5","-16.9","4.8","-4.7","-10.9","10.0"], + ["2800","1326","2","49.8","5.3","17.6","-17.0","4.8","-4.8","-11.1","10.2"], + ["2850","1321","2","49.7","5.2","17.6","-17.0","4.9","-4.9","-11.3","10.4"], + ["2900","1315","2","49.6","5.1","17.7","-17.1","5.0","-5.0","-11.5","10.6"], + ["2950","1309","2","49.5","5.0","17.8","-17.2","5.1","-5.1","-11.7","10.8"], + ["3000","1304","2","49.5","5.0","17.8","-17.3","5.2","-5.2","-11.9","10.9"], + ["3050","1298","2","49.4","4.9","17.9","-17.3","5.3","-5.2","-12.1","11.1"], + ["3100","1292","2","49.3","4.8","18.0","-17.4","5.3","-5.3","-12.3","11.3"], + ["3150","1286","3","49.2","4.7","18.0","-17.5","5.4","-5.4","-12.5","11.5"], + ["3200","1280","3","49.1","4.6","18.1","-17.5","5.5","-5.5","-12.7","11.7"], + ["3250","1274","3","49.0","4.6","18.2","-17.6","5.6","-5.6","-12.9","11.9"], + ["3300","1268","3","48.9","4.5","18.2","-17.7","5.7","-5.6","-13.1","12.1"], + ["3350","1262","3","48.8","4.4","18.3","-17.7","5.8","-5.7","-13.3","12.2"], + ["3400","1256","3","48.7","4.4","18.4","-17.8","5.9","-5.8","-13.5","12.4"], + ["3450","1250","3","48.6","4.3","18.4","-17.9","5.9","-5.9","-13.8","12.6"], + ["3500","1244","3","48.5","4.2","18.5","-17.9","6.0","-6.0","-14.0","12.8"], + ["3550","1237","3","48.4","4.2","18.6","-18.0","6.1","-6.1","-14.2","13.0"], + ["3600","1231","3","48.3","4.1","18.6","-18.1","6.2","-6.2","-14.4","13.2"], + ["3650","1224","3","48.2","4.0","18.7","-18.1","6.3","-6.3","-14.6","13.4"], + ["3700","1218","3","48.1","4.0","18.7","-18.2","6.4","-6.3","-14.8","13.5"], + ["3750","1211","4","48.0","3.9","18.8","-18.2","6.5","-6.4","-15.0","13.7"], + ["3800","1205","4","47.8","3.9","18.8","-18.3","6.5","-6.5","-15.2","13.9"], + ["3850","1198","4","47.7","3.8","18.9","-18.4","6.6","-6.6","-15.4","14.1"], + ["3900","1191","4","47.6","3.7","18.9","-18.4","6.7","-6.7","-15.6","14.3"], + ["3950","1184","4","47.5","3.7","19.0","-18.5","6.8","-6.8","-15.8","14.5"], + ["4000","1177","4","47.3","3.6","19.1","-18.5","6.9","-6.8","-16.0","14.7"], + ["4050","1170","4","47.2","3.6","19.1","-18.6","7.0","-6.9","-16.2","14.8"], + ["4100","1163","4","47.0","3.5","19.1","-18.6","7.1","-7.0","-16.4","15.0"], + ["4150","1155","5","46.9","3.5","19.2","-18.7","7.1","-7.1","-16.6","15.2"], + ["4200","1148","5","46.7","3.4","19.2","-18.7","7.2","-7.2","-16.8","15.4"], + ["4250","1140","5","46.6","3.4","19.3","-18.8","7.3","-7.3","-17.0","15.6"], + ["4300","1132","5","46.4","3.3","19.3","-18.8","7.4","-7.4","-17.2","15.7"], + ["4350","1124","5","46.2","3.3","19.3","-18.8","7.5","-7.5","-17.4","15.9"], + ["4400","1116","5","46.1","3.2","19.4","-18.9","7.6","-7.5","-17.6","16.1"], + ["4450","1108","6","45.9","3.2","19.4","-18.9","7.7","-7.6","-17.8","16.3"], + ["4500","1100","6","45.7","3.1","19.4","-19.0","7.8","-7.7","-17.9","16.4"], + ["4550","1091","6","45.5","3.1","19.4","-19.0","7.8","-7.8","-18.1","16.6"], + ["4600","1083","6","45.3","3.1","19.5","-19.0","7.9","-7.9","-18.3","16.8"], + ["4650","1074","7","45.1","3.0","19.5","-19.0","8.0","-8.0","-18.5","17.0"], + ["4700","1065","7","44.9","3.0","19.5","-19.1","8.1","-8.1","-18.7","17.1"], + ["4750","1055","7","44.6","2.9","19.5","-19.1","8.2","-8.2","-18.9","17.3"], + ["4800","1046","8","44.4","2.9","19.5","-19.1","8.3","-8.3","-19.1","17.5"], + ["4850","1036","8","44.2","2.8","19.5","-19.1","8.4","-8.3","-19.2","17.6"], + ["4900","1025","8","43.9","2.8","19.5","-19.1","8.5","-8.4","-19.4","17.8"], + ["4950","1015","9","43.6","2.7","19.5","-19.1","8.6","-8.5","-19.6","18.0"], + ["5000","1004","9","43.3","2.7","19.4","-19.1","8.7","-8.6","-19.8","18.1"], + ["5050","992","10","43.0","2.6","19.4","-19.0","8.8","-8.7","-19.9","18.3"], + ["5100","980","11","42.7","2.6","19.4","-19.0","8.9","-8.8","-20.1","18.4"], + ["5150","968","11","42.4","2.5","19.3","-18.9","9.0","-8.9","-20.2","18.6"], + ["5200","955","12","42.0","2.5","19.2","-18.9","9.1","-9.0","-20.4","18.7"], + ["5250","941","13","41.6","2.4","19.2","-18.8","9.1","-9.1","-20.6","18.8"], + ["5300","926","15","41.2","2.4","19.1","-18.8","9.2","-9.2","-20.7","19.0"], + ["5350","910","16","40.7","2.3","19.0","-18.6","9.4","-9.3","-20.8","19.1"], + ["5400","892","18","40.2","2.3","18.8","-18.5","9.5","-9.4","-20.9","19.2"], + ["5450","872","21","39.6","2.2","18.6","-18.3","9.6","-9.5","-21.0","19.3"], + ["5500","849","26","38.8","2.1","18.4","-18.1","9.7","-9.7","-21.1","19.3"], + ["5550","820","33","37.9","2.1","18.0","-17.8","9.8","-9.8","-21.1","19.4"] + ] + }; + default {systemChat "Error: MuzzleVelocity not found in LUT"; []}; +}; \ No newline at end of file diff --git a/addons/mk6mortar/script_component.hpp b/addons/mk6mortar/script_component.hpp index adf4a56946..cb74d552de 100644 --- a/addons/mk6mortar/script_component.hpp +++ b/addons/mk6mortar/script_component.hpp @@ -9,4 +9,6 @@ #define DEBUG_SETTINGS DEBUG_SETTINGS_MK6MORTAR #endif -#include "\z\ace\Addons\main\script_macros.hpp" \ No newline at end of file +#include "\z\ace\Addons\main\script_macros.hpp" + +#define MK6_82mm_AIR_FRICTION -0.0001 \ No newline at end of file From 3e77eb97371b4503a83d2e4becec60b4c2268eec Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Sun, 5 Apr 2015 16:28:12 -0500 Subject: [PATCH 010/256] Rangetable Builder and Prepcalc --- addons/mk6mortar/XEH_preInit.sqf | 7 + .../functions/fnc_dev_buildTable.sqf | 77 +++++ .../functions/fnc_dev_formatNumber.sqf | 83 +++++ .../fnc_dev_simulateCalcRangeTableLine.sqf | 81 +++++ .../fnc_dev_simulateFindSolution.sqf | 57 ++++ .../functions/fnc_dev_simulateShot.sqf | 78 +++++ .../fnc_rangeTablePreCalculatedValues.sqf | 319 ++++-------------- 7 files changed, 447 insertions(+), 255 deletions(-) create mode 100644 addons/mk6mortar/functions/fnc_dev_buildTable.sqf create mode 100644 addons/mk6mortar/functions/fnc_dev_formatNumber.sqf create mode 100644 addons/mk6mortar/functions/fnc_dev_simulateCalcRangeTableLine.sqf create mode 100644 addons/mk6mortar/functions/fnc_dev_simulateFindSolution.sqf create mode 100644 addons/mk6mortar/functions/fnc_dev_simulateShot.sqf diff --git a/addons/mk6mortar/XEH_preInit.sqf b/addons/mk6mortar/XEH_preInit.sqf index eed38408ae..186a595896 100644 --- a/addons/mk6mortar/XEH_preInit.sqf +++ b/addons/mk6mortar/XEH_preInit.sqf @@ -2,6 +2,13 @@ ADDON = false; + +PREP(dev_buildTable); +PREP(dev_formatNumber); +PREP(dev_simulateCalcRangeTableLine); +PREP(dev_simulateFindSolution); +PREP(dev_simulateShot); + PREP(handleFired); PREP(handlePlayerVehicleChanged); PREP(moduleInit); diff --git a/addons/mk6mortar/functions/fnc_dev_buildTable.sqf b/addons/mk6mortar/functions/fnc_dev_buildTable.sqf new file mode 100644 index 0000000000..d36aa61819 --- /dev/null +++ b/addons/mk6mortar/functions/fnc_dev_buildTable.sqf @@ -0,0 +1,77 @@ +/* +Name: AGM_Artillery_fnc_dev_buildTable + +Author: Pabst Mirror + +Description: + DEV function to build mortar tables, very cpu intensive (never used durring normal gameplay) + +Parameters: (normal BIS "Fired" EH stuff) + 0: NUMBER - Muzzle Velocity + 1: NUMBER - Air Friction + +Returns: + Data in clipboard + +Example: + [100, -0.0001] spawn AGM_Artillery_fnc_dev_buildTable; //spawn (scheduled) is slower + [100, -0.0001] call AGM_Artillery_fnc_dev_buildTable; //faster, but will lock while processing +*/ +#include "script_component.hpp" + +private ["_muzzleVelocity", "_airFriction", "_stillInRange", "_currentRange", "_increasePerRow", "_outputArray", "_rangeToHit", "_lineElevation", "_lineHeightElevation", "_lineTimeOfFlight", "_lineCrosswindDeg", "_lineHeadwindMeters", "_lineTailWindMeters", "_lineTempDec", "_lineTempInc", "_lineAirDensDec", "_lineAirDensInc", "_result", "_outputString"]; + +_muzzleVelocity = _this select 0; +_airFriction = _this select 1; +_stillInRange = true; +_currentRange = 100; +_increasePerRow = 50; +_outputArray = []; + + +//[_rangeToHit, _lineElevation, _lineHeightElevation, _lineTimeOfFlight, _lineCrosswindDeg, _lineHeadwindMeters, _lineTailWindMeters, _lineTempDec, _lineTempInc, _lineAirDensDec, _lineAirDensInc] + +while {_stillInRange} do { + _result = [_muzzleVelocity, _currentRange, _airFriction] call FUNC(dev_simulateCalcRangeTableLine); + if (_result isEqualTo []) then { + _stillInRange = false; + } else { + if ((_result select 1) < 86) then { + _outputArray pushBack [ + ([(_result select 0), "meters", false] call FUNC(dev_formatNumber)), + ([(_result select 1), "mil", true] call FUNC(dev_formatNumber)), + ([(_result select 2), "mil", true] call FUNC(dev_formatNumber)), + ([(_result select 3), "sec", false] call FUNC(dev_formatNumber)), + ([(_result select 4), "milPrecise", true] call FUNC(dev_formatNumber)), + ([(_result select 5), "metersprecise", false] call FUNC(dev_formatNumber)), + ([(_result select 6), "metersprecise", false] call FUNC(dev_formatNumber)), + ([(_result select 7), "metersprecise", false] call FUNC(dev_formatNumber)), + ([(_result select 8), "metersprecise", false] call FUNC(dev_formatNumber)), + ([(_result select 9), "metersprecise", false] call FUNC(dev_formatNumber)), + ([(_result select 10), "metersprecise", false] call FUNC(dev_formatNumber)) + ]; + }; + _currentRange = _currentRange + _increasePerRow; + }; + hint str _currentRange; +}; + +//handle floating point rounding errors +_outputString = format ["case ((abs(_muzzleVelocity - %1) < 0.00001) && ((abs(_airFriction - %2) < 0.00001))): { +[ +", _muzzleVelocity, _airFriction]; + +{ + if (_forEachIndex < ((count _outputArray) - 1)) then { + _outputString = _outputString + format ["%1, + ", _x]; + } else { + _outputString = _outputString + format ["%1 + ] + };", _x]; + }; +} forEach _outputArray; + +copyToClipboard _outputString; + +hint "done"; \ No newline at end of file diff --git a/addons/mk6mortar/functions/fnc_dev_formatNumber.sqf b/addons/mk6mortar/functions/fnc_dev_formatNumber.sqf new file mode 100644 index 0000000000..47e9fc7fbf --- /dev/null +++ b/addons/mk6mortar/functions/fnc_dev_formatNumber.sqf @@ -0,0 +1,83 @@ +/* +Name: AGM_Artillery_fnc_formatNumber + +Author: Pabst Mirror + +Description: + Converts numbers into nicely formated strings. + +Parameters: + 0: NUMBER - Input number + 1: STRING - Output type (see case statement) + 2: BOOL - If output type is mil, convert input type from deg->mil + +Returns: + STRING - Formatted number + +Example: + [45, "mil4", true] call AGM_Artillery_fnc_formatNumber = "0800" +*/ +#include "script_component.hpp" + +private ["_theNumber", "_inputType", "_convertToMils", "_decimalPlaces", "_integerPlaces", "_prefix", "_return"]; + +_theNumber = _this select 0; +_inputType = _this select 1; +_convertToMils = _this select 2; + +_decimalPlaces = -1; +_integerPlaces = -1; + +switch (toLower _inputType) do { +case ("meters"): { + _decimalPlaces = 0; + _integerPlaces = 1; + }; +case ("metersprecise"): { + _decimalPlaces = 1; + _integerPlaces = 1; + }; +case ("meters4"): { + _decimalPlaces = 0; + _integerPlaces = 4; + }; +case ("deg3precise"): { + _decimalPlaces = 2; + _integerPlaces = 3; + }; +case ("mil"): { + _decimalPlaces = 0; + _integerPlaces = 1; + if (_convertToMils) then { + _theNumber = _theNumber * (6400 / 360); + }; + }; +case ("mil4"): { + _decimalPlaces = 0; + _integerPlaces = 4; + if (_convertToMils) then { + _theNumber = _theNumber * (6400 / 360); + }; + }; +case ("milprecise"): { + _decimalPlaces = 1; + _integerPlaces = 1; + if (_convertToMils) then { + _theNumber = _theNumber * (6400 / 360); + }; + }; +case ("sec"): { + _decimalPlaces = 1; + _integerPlaces = 1; + }; + default {systemChat format ["badtype %1", _inputType];}; +}; + + +//CBA_fnc_formatNumber is stupid: [-9.58545, 1, 1, false] call CBA_fnc_formatNumber == "-9.-6" + +_prefix = if (_theNumber < 0) then {"-"} else {""}; + +_return = [abs (_theNumber), _integerPlaces, _decimalPlaces, false] call CBA_fnc_formatNumber; + +(_prefix + _return) diff --git a/addons/mk6mortar/functions/fnc_dev_simulateCalcRangeTableLine.sqf b/addons/mk6mortar/functions/fnc_dev_simulateCalcRangeTableLine.sqf new file mode 100644 index 0000000000..24ebd909ed --- /dev/null +++ b/addons/mk6mortar/functions/fnc_dev_simulateCalcRangeTableLine.sqf @@ -0,0 +1,81 @@ +/* +Name: AGM_Artillery_fnc_simulateCalcRangeTableLine + +Author: Pabst Mirror + +Description: + Builds a rangeTable line for a certian range, given muzzle velocity and air friction, returns [] if out of range. + +Parameters: + 0: NUMBER - Muzzle Velocity + 1: NUMBER - Air Friction + 2: NUMBER - Range To Hit + +Returns: + ARRAY - Range Table Line Data (see return line) + +Example: + [300, -0.0001, 3000] call AGM_Artillery_fnc_simulateCalcRangeTableLine +*/ +#include "script_component.hpp" + +#define TIME_STEP (1/50) + +private ["_startTime", "_muzzleVelocity", "_rangeToHit", "_airFriction", "_vacElevation", "_radicand", "_maxElev", "_minElev", "_error", "_solutionElevation", "_lastTestResult", "_numberOfAttempts", "_lineElevation", "_lineTimeOfFlight", "_lineHeightElevation", "_lineHeightTime", "_lineCrosswindDeg", "_lineHeadwindMeters", "_lineTailWindMeters", "_result"]; + +_startTime = diag_tickTime; + +_muzzleVelocity = _this select 0; +_rangeToHit = _this select 1; +_airFriction = _this select 2; + +//Run Binary search for correct elevation +_solution = [_rangeToHit, 0, _muzzleVelocity, _airFriction, TIME_STEP] call FUNC(dev_simulateFindSolution); +if (_solution isEqualTo []) exitWith {[]}; + +//Real Elevation +_lineElevation = _solution select 0; + +//Time Of Flight: +_lineTimeOfFlight = _solution select 1; + +//Height Adjustment for -100m (another binary search) +_solution = [_rangeToHit, -100, _muzzleVelocity, _airFriction, TIME_STEP] call FUNC(dev_simulateFindSolution); +if (_solution isEqualTo []) exitWith {[]};//should never be triggered (lower elevation easier to hit) + +_lineHeightElevation = ((_solution select 0) - _lineElevation); +// _lineHeightTime = (_lastTestResult select 1) - _lineTimeOfFlight; + +//Compute for 10x and divide to minimize rounding errors + +//Crosswind +_lastTestResult = [_lineElevation, _muzzleVelocity, _airFriction, 15, 1, 0, 10, 0, TIME_STEP] call FUNC(dev_simulateShot); +_lineCrosswindDeg = (_lastTestResult select 2) / 10; + +//Headwind: +_lastTestResult = [_lineElevation, _muzzleVelocity, _airFriction, 15, 1, -10, 0, 0, TIME_STEP] call FUNC(dev_simulateShot); +_lineHeadwindMeters = (_rangeToHit - (_lastTestResult select 0)) / 10; + +//TailWind: +_lastTestResult = [_lineElevation, _muzzleVelocity, _airFriction, 15, 1, 10, 0, 0, TIME_STEP] call FUNC(dev_simulateShot); +_lineTailWindMeters = (_rangeToHit - (_lastTestResult select 0)) / 10; + +//Air Temp Dec +_lastTestResult = [_lineElevation, _muzzleVelocity, _airFriction, (15 - 10), 1, 0, 0, 0, TIME_STEP] call FUNC(dev_simulateShot); +_lineTempDec = (_rangeToHit - (_lastTestResult select 0)) / 10; + +//Air Temp Inc +_lastTestResult = [_lineElevation, _muzzleVelocity, _airFriction, (15 + 10), 1, 0, 0, 0, TIME_STEP] call FUNC(dev_simulateShot); +_lineTempInc = (_rangeToHit - (_lastTestResult select 0)) / 10; + +//Air Density Dec +_lastTestResult = [_lineElevation, _muzzleVelocity, _airFriction, 15, 0.9, 0, 0, 0, TIME_STEP] call FUNC(dev_simulateShot); +_lineAirDensDec = (_rangeToHit - (_lastTestResult select 0)) / 10; + +//Air Density Inc +_lastTestResult = [_lineElevation, _muzzleVelocity, _airFriction, 15, 1.1, 0, 0, 0, TIME_STEP] call FUNC(dev_simulateShot); +_lineAirDensInc = (_rangeToHit - (_lastTestResult select 0)) / 10; + +// systemChat format ["debug: Range %1 - in %2 sec", _rangeToHit, (diag_tickTime - _startTime)]; + +[_rangeToHit, _lineElevation, _lineHeightElevation, _lineTimeOfFlight, _lineCrosswindDeg, _lineHeadwindMeters, _lineTailWindMeters, _lineTempDec, _lineTempInc, _lineAirDensDec, _lineAirDensInc] diff --git a/addons/mk6mortar/functions/fnc_dev_simulateFindSolution.sqf b/addons/mk6mortar/functions/fnc_dev_simulateFindSolution.sqf new file mode 100644 index 0000000000..ddeab4015f --- /dev/null +++ b/addons/mk6mortar/functions/fnc_dev_simulateFindSolution.sqf @@ -0,0 +1,57 @@ +/* +Name: FUNC(simulateFindSolution) + +Author: Pabst Mirror + +Description: + Converts numbers into nicely formated strings. + +Parameters: + 0: NUMBER - Range to Hit (Meters) + 1: NUMBER - Height To Hit (Meters) + 2: NUMBER - Muzzle Velocity (M/S) + 3: NUMBER - Air Friction + 4: NUMBER - Time Step (seconds) (eg 1/50 will simulate 50 cycles per second) + +Returns: + ARRAY - [NUMBER - Elevation In Degrees, NUMBER - Shot Durration] + +Example: + [_rangeToHit, _heightToHit, _muzzleVelocity, _airFriction, TIME_STEP] call FUNC(simulateFindSolution); +*/ +#include "script_component.hpp" + +private ["_rangeToHit", "_heightToHit", "_muzzleVelocity", "_airFriction", "_maxElev", "_minElev", "_error", "_solutionElevation", "_lastTestResult", "_numberOfAttempts"]; + +#define MAX_ATTEMPTS 22 + +_rangeToHit = _this select 0; +_heightToHit = _this select 1; +_muzzleVelocity = _this select 2; +_airFriction = _this select 3; +_timeStep = _this select 4; + +_maxElev = 90; +_minElev = 45; //todo - Low Angle Howitzers??? + +_error = 10000; +_solutionElevation = -1; +_lastTestResult = []; +_numberOfAttempts = 0; + +//(binary search) +while {(_numberOfAttempts < MAX_ATTEMPTS) && ((abs _error) > 0.2)} do { + _numberOfAttempts = _numberOfAttempts + 1; + _solutionElevation = (_maxElev + _minElev) / 2; + _lastTestResult = [_solutionElevation, _muzzleVelocity, _airFriction, 15, 1, 0, 0, _heightToHit, _timeStep] call FUNC(dev_simulateShot); + _error = _rangeToHit - (_lastTestResult select 0); + if (_error > 0) then { + _maxElev = _solutionElevation; //test range was short + } else { + _minElev = _solutionElevation; //test range was long + }; +}; +if (_numberOfAttempts >= MAX_ATTEMPTS) exitWith {[]}; + +//return the elevation and time required +[_solutionElevation, (_lastTestResult select 1)] diff --git a/addons/mk6mortar/functions/fnc_dev_simulateShot.sqf b/addons/mk6mortar/functions/fnc_dev_simulateShot.sqf new file mode 100644 index 0000000000..a6c3761acb --- /dev/null +++ b/addons/mk6mortar/functions/fnc_dev_simulateShot.sqf @@ -0,0 +1,78 @@ +/* +Name: simulateShot + +Author: Pabst Mirror + +Description: + Simulates the path of a fired shell. + +Parameters: + 0: NUMBER - Shot Angle (degrees) + 1: NUMBER - Muzzle Velocity (m/s) + 2: NUMBER - Air Friction + 3: NUMBER - Tempeture (degres celcius) + 4: NUMBER - Relative Air Denisty + 5: NUMBER - Tail Wind (m/s) + 6: NUMBER - Cross Wind (m/s) + 7: NUMBER - Height Of Target (M) + 8: NUMBER - Time Step (fraction of a second) + +Returns: + ARRAY - + NUMBER - Distance Traveld + NUMBER - Shot Time + NUMBER - Offset (degrees) + +Example: + [45, 180, -0.0001, 15, 1, 10, 0, 0, 1/50] call simulateShot; +*/ +#include "script_component.hpp" + +private ["_angleDeg", "_muzzleVelocity", "_airFriction", "_temp", "_relDensity", "_tailWind", "_crosswind", "_heightOfTarget", "_wind", "_gravity", "_timeStep", "_currentPos", "_currentVelocity", "_currentTime", "_lastPos", "_kCoefficent", "_aparentWind", "_changeInVelocity", "_linConversion", "_middlePos", "_middlePosOld", "_middleTotalTravelTime", "_offsetDeg"]; + +_angleDeg = _this select 0; +_muzzleVelocity = _this select 1; +_airFriction = _this select 2; +_temp = _this select 3; +_relDensity = _this select 4; +_tailWind = _this select 5; +_crosswind = _this select 6; +_heightOfTarget = _this select 7; +_timeStep = _this select 8; + +_wind = [_crosswind, _tailWind, 0]; +_gravity = [0,0,-9.8]; + +_currentPos = [0,0,0]; +_muzzleVelocity = _muzzleVelocity * (1 + ((((_temp + 273.13) / 288.13 - 1) / 2.5 + 1 ) - 1)); +_currentVelocity = [0, (_muzzleVelocity * cos _angleDeg), (_muzzleVelocity * sin _angleDeg)]; + +_currentTime = 0; +_lastPos = _currentPos; + +_kCoefficent = -1 * _relDensity * _airFriction; //save time in the loop and compute once + +while {((_currentVelocity select 2) > 0) || ((_currentPos select 2) >= _heightOfTarget)} do { + _lastPos = _currentPos; + + _aparentWind = _wind vectorDiff _currentVelocity; + _changeInVelocity = _gravity vectorAdd (_aparentWind vectorMultiply ((vectorMagnitude _aparentWind) * _kCoefficent)); + + _currentVelocity = _currentVelocity vectorAdd (_changeInVelocity vectorMultiply _timeStep); + + _currentPos = _currentPos vectorAdd (_currentVelocity vectorMultiply _timeStep); + _currentTime = _currentTime + _timeStep; +}; + +//Uses linearConversion to get a weighted average betwen points before and after dropping below target height +_linConversion = linearConversion [(_lastPos select 2), (_currentPos select 2), _heightOfTarget, 0, 1, true]; +_middlePos = (_lastPos vectorMultiply (1 - _linConversion)) vectorAdd (_currentPos vectorMultiply (_linConversion)); +// _middlePosOld = (_lastPos vectorAdd _currentPos) vectorMultiply 0.5; + +//Same to find travel time +_middleTotalTravelTime = _currentTime - (_timeStep * (1-_linConversion)); + +//Find shot offset (from crosswind), in degrees + _offsetDeg = (_middlePos select 0) aTan2 (_middlePos select 1); + +[(_middlePos select 1), _middleTotalTravelTime, _offsetDeg] diff --git a/addons/mk6mortar/functions/fnc_rangeTablePreCalculatedValues.sqf b/addons/mk6mortar/functions/fnc_rangeTablePreCalculatedValues.sqf index ff0f9b5407..d11b9efdeb 100644 --- a/addons/mk6mortar/functions/fnc_rangeTablePreCalculatedValues.sqf +++ b/addons/mk6mortar/functions/fnc_rangeTablePreCalculatedValues.sqf @@ -18,268 +18,77 @@ PARAMS_2(_muzzleVelocity,_airFriction); switch (true) do { -case ((abs(_muzzleVelocity - 60) < 0.00001) && ((abs(_airFriction - -0.0001) < 0.00001))): { +case ((abs(_muzzleVelocity - 70) < 0.00001) && ((abs(_airFriction - -0.0001) < 0.00001))): { [ - ["100","1455","16","12.0","2.4","0.3","-0.2","0.3","-0.3","-0.0","0.0"], - ["150","1379","26","11.8","1.6","0.3","-0.2","0.4","-0.4","-0.0","0.1"], - ["200","1296","39","11.6","1.2","0.4","-0.3","0.5","-0.5","-0.0","0.1"], - ["250","1204","57","11.2","1.0","0.4","-0.3","0.7","-0.7","-0.1","0.1"], - ["300","1089","88","10.6","0.8","0.4","-0.3","0.8","-0.8","-0.1","0.1"], - ["350","894","187","9.3","0.6","0.4","-0.3","0.9","-0.9","-0.1","0.1"] + ["100","1493","9","14.0","3.7","0.4","-0.3","0.3","-0.3","-0.0","0.0"], + ["150","1438","14","13.9","2.5","0.4","-0.4","0.4","-0.4","-0.1","0.0"], + ["200","1381","20","13.8","1.9","0.5","-0.4","0.5","-0.5","-0.1","0.1"], + ["250","1321","27","13.6","1.5","0.5","-0.4","0.7","-0.7","-0.1","0.1"], + ["300","1256","36","13.3","1.3","0.6","-0.5","0.8","-0.8","-0.1","0.1"], + ["350","1183","49","12.9","1.1","0.6","-0.5","0.9","-0.9","-0.1","0.1"], + ["400","1097","70","12.4","0.9","0.6","-0.5","1.1","-1.1","-0.2","0.1"], + ["450","979","113","11.6","0.8","0.6","-0.5","1.2","-1.2","-0.2","0.2"] ] }; -case ((abs(_muzzleVelocity - 120) < 0.00001) && ((abs(_airFriction - -0.0001) < 0.00001))): { +case ((abs(_muzzleVelocity - 200) < 0.00001) && ((abs(_airFriction - -0.0001) < 0.00001))): { [ - ["200","1523","3","23.6","8.2","1.7","-1.6","0.5","-0.5","-0.2","0.2"], - ["250","1503","3","23.5","6.6","1.8","-1.6","0.6","-0.6","-0.2","0.2"], - ["300","1483","4","23.5","5.5","1.8","-1.6","0.7","-0.8","-0.3","0.3"], - ["350","1463","5","23.4","4.7","1.9","-1.7","0.9","-0.9","-0.4","0.3"], - ["400","1443","5","23.4","4.2","1.9","-1.7","1.0","-1.0","-0.4","0.4"], - ["450","1423","6","23.3","3.7","2.0","-1.7","1.1","-1.1","-0.5","0.4"], - ["500","1402","7","23.2","3.4","2.0","-1.8","1.2","-1.3","-0.5","0.5"], - ["550","1381","8","23.1","3.1","2.1","-1.8","1.4","-1.4","-0.6","0.5"], - ["600","1359","9","23.0","2.8","2.2","-1.9","1.5","-1.5","-0.6","0.6"], - ["650","1337","10","22.9","2.6","2.2","-1.9","1.6","-1.6","-0.7","0.7"], - ["700","1314","11","22.7","2.4","2.3","-2.0","1.7","-1.7","-0.7","0.7"], - ["750","1291","13","22.6","2.3","2.4","-2.0","1.9","-1.9","-0.8","0.8"], - ["800","1267","14","22.4","2.1","2.4","-2.1","2.0","-2.0","-0.8","0.8"], - ["850","1241","16","22.2","2.0","2.5","-2.1","2.1","-2.1","-0.9","0.9"], - ["900","1215","17","22.0","1.9","2.5","-2.2","2.2","-2.2","-0.9","0.9"], - ["950","1187","20","21.7","1.8","2.6","-2.3","2.3","-2.4","-1.0","1.0"], - ["1000","1158","23","21.5","1.7","2.6","-2.3","2.5","-2.5","-1.1","1.0"], - ["1050","1127","26","21.1","1.6","2.7","-2.4","2.6","-2.6","-1.1","1.1"], - ["1100","1092","30","20.8","1.5","2.7","-2.4","2.7","-2.8","-1.2","1.1"], - ["1150","1054","36","20.4","1.4","2.7","-2.4","2.9","-2.9","-1.2","1.2"], - ["1200","1011","45","19.8","1.3","2.7","-2.5","3.0","-3.0","-1.3","1.2"], - ["1250","957","59","19.1","1.2","2.7","-2.4","3.1","-3.1","-1.3","1.3"], - ["1300","876","94","18.0","1.1","2.6","-2.4","3.2","-3.3","-1.3","1.3"] + ["450","1527","1","37.3","13.4","6.3","-6.0","1.0","-1.0","-1.0","1.0"], + ["500","1519","1","37.2","12.1","6.3","-6.0","1.1","-1.1","-1.1","1.1"], + ["550","1510","1","37.2","11.0","6.4","-6.0","1.2","-1.2","-1.3","1.2"], + ["600","1502","1","37.2","10.1","6.4","-6.1","1.3","-1.3","-1.4","1.3"], + ["650","1494","1","37.2","9.4","6.5","-6.1","1.4","-1.4","-1.5","1.4"], + ["700","1485","2","37.1","8.7","6.5","-6.2","1.5","-1.5","-1.6","1.5"], + ["750","1477","2","37.1","8.2","6.6","-6.2","1.6","-1.6","-1.7","1.6"], + ["800","1468","2","37.0","7.7","6.7","-6.3","1.7","-1.7","-1.8","1.8"], + ["850","1460","2","37.0","7.2","6.7","-6.3","1.8","-1.8","-2.0","1.9"], + ["900","1451","2","37.0","6.8","6.8","-6.4","1.9","-2.0","-2.1","2.0"], + ["950","1443","2","36.9","6.5","6.9","-6.4","2.0","-2.1","-2.2","2.1"], + ["1000","1434","2","36.9","6.2","6.9","-6.5","2.1","-2.2","-2.3","2.2"], + ["1050","1425","2","36.8","5.9","7.0","-6.6","2.2","-2.3","-2.5","2.3"], + ["1100","1417","3","36.8","5.6","7.1","-6.6","2.3","-2.4","-2.6","2.4"], + ["1150","1408","3","36.7","5.4","7.1","-6.7","2.5","-2.5","-2.7","2.5"], + ["1200","1399","3","36.6","5.2","7.2","-6.7","2.6","-2.6","-2.8","2.7"], + ["1250","1390","3","36.6","5.0","7.3","-6.8","2.7","-2.7","-2.9","2.8"], + ["1300","1381","3","36.5","4.8","7.4","-6.9","2.8","-2.8","-3.0","2.9"], + ["1350","1372","3","36.4","4.6","7.4","-6.9","2.9","-2.9","-3.2","3.0"], + ["1400","1362","4","36.4","4.4","7.5","-7.0","3.0","-3.0","-3.3","3.1"], + ["1450","1353","4","36.3","4.3","7.6","-7.1","3.1","-3.1","-3.4","3.2"], + ["1500","1344","4","36.2","4.2","7.7","-7.1","3.2","-3.2","-3.5","3.4"], + ["1550","1334","4","36.1","4.0","7.7","-7.2","3.3","-3.3","-3.7","3.5"], + ["1600","1324","4","36.0","3.9","7.8","-7.3","3.4","-3.4","-3.8","3.6"], + ["1650","1314","4","35.9","3.8","7.9","-7.3","3.5","-3.5","-3.9","3.7"], + ["1700","1304","5","35.8","3.7","7.9","-7.4","3.6","-3.6","-4.0","3.8"], + ["1750","1294","5","35.7","3.6","8.0","-7.5","3.7","-3.7","-4.2","3.9"], + ["1800","1284","5","35.6","3.5","8.1","-7.6","3.8","-3.9","-4.3","4.0"], + ["1850","1274","5","35.5","3.4","8.2","-7.6","3.9","-4.0","-4.4","4.2"], + ["1900","1263","6","35.4","3.3","8.2","-7.7","4.0","-4.1","-4.5","4.3"], + ["1950","1253","6","35.2","3.2","8.3","-7.8","4.1","-4.2","-4.7","4.4"], + ["2000","1242","6","35.1","3.1","8.4","-7.8","4.3","-4.3","-4.8","4.5"], + ["2050","1231","7","35.0","3.0","8.4","-7.9","4.4","-4.4","-4.9","4.7"], + ["2100","1219","7","34.8","2.9","8.5","-8.0","4.5","-4.5","-5.0","4.8"], + ["2150","1208","7","34.7","2.9","8.5","-8.0","4.6","-4.6","-5.2","4.9"], + ["2200","1196","8","34.5","2.8","8.6","-8.1","4.7","-4.7","-5.3","5.0"], + ["2250","1184","8","34.3","2.7","8.7","-8.2","4.8","-4.8","-5.4","5.1"], + ["2300","1171","9","34.2","2.7","8.7","-8.2","4.9","-4.9","-5.5","5.2"], + ["2350","1158","9","34.0","2.6","8.8","-8.3","5.0","-5.0","-5.7","5.4"], + ["2400","1145","10","33.8","2.5","8.8","-8.3","5.1","-5.1","-5.8","5.5"], + ["2450","1132","10","33.6","2.5","8.9","-8.4","5.2","-5.2","-5.9","5.6"], + ["2500","1118","11","33.3","2.4","8.9","-8.4","5.3","-5.3","-6.0","5.7"], + ["2550","1103","12","33.1","2.4","9.0","-8.5","5.4","-5.4","-6.1","5.8"], + ["2600","1088","13","32.8","2.3","9.0","-8.5","5.5","-5.5","-6.2","5.9"], + ["2650","1072","14","32.6","2.2","9.0","-8.6","5.6","-5.6","-6.4","6.0"], + ["2700","1056","15","32.3","2.2","9.0","-8.6","5.7","-5.8","-6.5","6.1"], + ["2750","1038","16","31.9","2.1","9.1","-8.6","5.9","-5.9","-6.6","6.3"], + ["2800","1020","18","31.6","2.1","9.1","-8.6","6.0","-6.0","-6.7","6.4"], + ["2850","1000","20","31.2","2.0","9.1","-8.6","6.1","-6.1","-6.8","6.5"], + ["2900","978","22","30.8","1.9","9.0","-8.6","6.2","-6.2","-6.9","6.5"], + ["2950","954","26","30.3","1.9","9.0","-8.6","6.3","-6.3","-7.0","6.6"], + ["3000","927","31","29.7","1.8","8.9","-8.5","6.4","-6.4","-7.1","6.7"], + ["3050","894","38","29.0","1.7","8.8","-8.4","6.5","-6.6","-7.2","6.8"], + ["3100","849","54","27.9","1.6","8.5","-8.3","6.6","-6.7","-7.2","6.8"] ] }; -case ((abs(_muzzleVelocity - 180) < 0.00001) && ((abs(_airFriction - -0.0001) < 0.00001))): { - [ - ["400","1523","1","34.0","11.7","4.9","-4.6","0.9","-0.9","-0.8","0.8"], - ["450","1513","1","34.0","10.5","4.9","-4.7","1.0","-1.0","-0.9","0.8"], - ["500","1504","2","34.0","9.4","5.0","-4.7","1.1","-1.1","-1.0","0.9"], - ["550","1494","2","33.9","8.6","5.1","-4.7","1.2","-1.2","-1.1","1.0"], - ["600","1484","2","33.9","7.9","5.1","-4.8","1.3","-1.4","-1.2","1.1"], - ["650","1474","2","33.9","7.3","5.2","-4.8","1.5","-1.5","-1.3","1.2"], - ["700","1464","2","33.8","6.8","5.2","-4.9","1.6","-1.6","-1.4","1.3"], - ["750","1454","2","33.8","6.3","5.3","-4.9","1.7","-1.7","-1.5","1.4"], - ["800","1444","3","33.7","6.0","5.4","-5.0","1.8","-1.8","-1.6","1.5"], - ["850","1433","3","33.7","5.6","5.4","-5.0","1.9","-1.9","-1.7","1.6"], - ["900","1423","3","33.6","5.3","5.5","-5.1","2.0","-2.0","-1.8","1.7"], - ["950","1413","3","33.6","5.0","5.6","-5.1","2.1","-2.1","-1.9","1.8"], - ["1000","1402","3","33.5","4.8","5.6","-5.2","2.2","-2.2","-2.0","1.9"], - ["1050","1392","4","33.4","4.6","5.7","-5.3","2.3","-2.4","-2.1","2.0"], - ["1100","1381","4","33.3","4.4","5.8","-5.3","2.5","-2.5","-2.2","2.1"], - ["1150","1370","4","33.3","4.2","5.8","-5.4","2.6","-2.6","-2.3","2.2"], - ["1200","1359","4","33.2","4.0","5.9","-5.5","2.7","-2.7","-2.4","2.3"], - ["1250","1348","5","33.1","3.9","6.0","-5.5","2.8","-2.8","-2.5","2.4"], - ["1300","1337","5","33.0","3.7","6.1","-5.6","2.9","-2.9","-2.6","2.5"], - ["1350","1326","5","32.9","3.6","6.1","-5.6","3.0","-3.0","-2.7","2.6"], - ["1400","1314","5","32.8","3.5","6.2","-5.7","3.1","-3.1","-2.8","2.7"], - ["1450","1302","6","32.7","3.3","6.3","-5.8","3.2","-3.2","-2.9","2.8"], - ["1500","1290","6","32.6","3.2","6.3","-5.9","3.3","-3.4","-3.1","2.9"], - ["1550","1278","6","32.5","3.1","6.4","-5.9","3.4","-3.5","-3.2","3.0"], - ["1600","1266","7","32.3","3.0","6.5","-6.0","3.5","-3.6","-3.3","3.1"], - ["1650","1253","7","32.2","2.9","6.6","-6.1","3.7","-3.7","-3.4","3.2"], - ["1700","1240","8","32.0","2.8","6.6","-6.1","3.8","-3.8","-3.5","3.3"], - ["1750","1227","8","31.9","2.8","6.7","-6.2","3.9","-3.9","-3.6","3.4"], - ["1800","1214","9","31.7","2.7","6.7","-6.3","4.0","-4.0","-3.7","3.5"], - ["1850","1200","9","31.6","2.6","6.8","-6.3","4.1","-4.1","-3.8","3.6"], - ["1900","1186","10","31.4","2.5","6.9","-6.4","4.2","-4.2","-3.9","3.7"], - ["1950","1171","10","31.2","2.4","6.9","-6.5","4.3","-4.3","-4.0","3.8"], - ["2000","1156","11","31.0","2.4","7.0","-6.5","4.4","-4.4","-4.1","3.9"], - ["2050","1141","12","30.8","2.3","7.0","-6.6","4.5","-4.6","-4.2","4.0"], - ["2100","1124","13","30.5","2.2","7.1","-6.6","4.7","-4.7","-4.3","4.1"], - ["2150","1108","14","30.3","2.2","7.1","-6.6","4.8","-4.8","-4.4","4.2"], - ["2200","1090","15","30.0","2.1","7.2","-6.7","4.9","-4.9","-4.5","4.3"], - ["2250","1071","17","29.7","2.0","7.2","-6.7","5.0","-5.0","-4.6","4.4"], - ["2300","1052","18","29.4","2.0","7.2","-6.8","5.1","-5.1","-4.7","4.5"], - ["2350","1030","20","29.0","1.9","7.2","-6.8","5.2","-5.2","-4.8","4.6"], - ["2400","1008","23","28.6","1.9","7.2","-6.8","5.3","-5.3","-4.9","4.7"], - ["2450","983","26","28.2","1.8","7.2","-6.8","5.4","-5.4","-5.0","4.8"], - ["2500","954","31","27.6","1.7","7.1","-6.8","5.6","-5.6","-5.1","4.9"], - ["2550","921","38","27.0","1.6","7.1","-6.7","5.7","-5.7","-5.2","4.9"], - ["2600","878","52","26.1","1.5","6.9","-6.6","5.8","-5.8","-5.2","5.0"] - ] - }; -case ((abs(_muzzleVelocity - 240) < 0.00001) && ((abs(_airFriction - -0.0001) < 0.00001))): { - [ - ["600","1526","1","43.3","15.3","9.5","-9.1","1.2","-1.2","-1.8","1.7"], - ["650","1519","1","43.3","14.1","9.5","-9.2","1.3","-1.3","-1.9","1.8"], - ["700","1513","1","43.3","13.2","9.6","-9.2","1.4","-1.4","-2.1","1.9"], - ["750","1507","1","43.2","12.3","9.6","-9.2","1.5","-1.5","-2.2","2.1"], - ["800","1500","1","43.2","11.5","9.7","-9.3","1.6","-1.6","-2.4","2.2"], - ["850","1494","1","43.2","10.9","9.7","-9.3","1.7","-1.7","-2.5","2.4"], - ["900","1488","1","43.2","10.3","9.8","-9.4","1.8","-1.8","-2.7","2.5"], - ["950","1481","1","43.1","9.8","9.9","-9.4","1.9","-1.9","-2.8","2.7"], - ["1000","1475","1","43.1","9.3","9.9","-9.5","2.0","-2.0","-3.0","2.8"], - ["1050","1468","1","43.1","8.9","10.0","-9.5","2.1","-2.1","-3.1","2.9"], - ["1100","1462","1","43.0","8.5","10.1","-9.6","2.2","-2.2","-3.3","3.1"], - ["1150","1455","1","43.0","8.1","10.1","-9.6","2.3","-2.3","-3.4","3.2"], - ["1200","1449","1","43.0","7.8","10.2","-9.7","2.4","-2.4","-3.6","3.4"], - ["1250","1442","2","42.9","7.5","10.3","-9.8","2.5","-2.5","-3.7","3.5"], - ["1300","1436","2","42.9","7.2","10.3","-9.8","2.6","-2.6","-3.9","3.6"], - ["1350","1429","2","42.8","6.9","10.4","-9.9","2.7","-2.7","-4.0","3.8"], - ["1400","1422","2","42.8","6.7","10.5","-10.0","2.8","-2.8","-4.2","3.9"], - ["1450","1416","2","42.7","6.5","10.5","-10.0","2.9","-2.9","-4.4","4.1"], - ["1500","1409","2","42.7","6.2","10.6","-10.1","3.0","-3.0","-4.5","4.2"], - ["1550","1402","2","42.6","6.0","10.7","-10.2","3.0","-3.1","-4.7","4.4"], - ["1600","1395","2","42.6","5.9","10.8","-10.2","3.1","-3.2","-4.8","4.5"], - ["1650","1388","2","42.5","5.7","10.8","-10.3","3.2","-3.3","-5.0","4.7"], - ["1700","1381","2","42.4","5.5","10.9","-10.4","3.3","-3.3","-5.1","4.8"], - ["1750","1374","2","42.4","5.4","11.0","-10.4","3.4","-3.4","-5.3","4.9"], - ["1800","1367","2","42.3","5.2","11.0","-10.5","3.5","-3.5","-5.4","5.1"], - ["1850","1360","3","42.2","5.1","11.1","-10.6","3.6","-3.6","-5.6","5.2"], - ["1900","1353","3","42.2","5.0","11.2","-10.6","3.7","-3.7","-5.8","5.4"], - ["1950","1346","3","42.1","4.8","11.3","-10.7","3.8","-3.8","-5.9","5.5"], - ["2000","1338","3","42.0","4.7","11.3","-10.8","3.9","-3.9","-6.1","5.7"], - ["2050","1331","3","41.9","4.6","11.4","-10.9","4.0","-4.0","-6.2","5.8"], - ["2100","1323","3","41.9","4.5","11.5","-10.9","4.1","-4.1","-6.4","6.0"], - ["2150","1316","3","41.8","4.4","11.6","-11.0","4.2","-4.2","-6.5","6.1"], - ["2200","1308","3","41.7","4.3","11.6","-11.1","4.3","-4.3","-6.7","6.3"], - ["2250","1301","3","41.6","4.2","11.7","-11.1","4.4","-4.4","-6.9","6.4"], - ["2300","1293","4","41.5","4.1","11.8","-11.2","4.5","-4.5","-7.0","6.6"], - ["2350","1285","4","41.4","4.0","11.9","-11.3","4.6","-4.6","-7.2","6.7"], - ["2400","1277","4","41.3","3.9","11.9","-11.3","4.7","-4.7","-7.3","6.9"], - ["2450","1269","4","41.2","3.8","12.0","-11.4","4.8","-4.8","-7.5","7.0"], - ["2500","1261","4","41.1","3.8","12.1","-11.5","4.9","-4.9","-7.7","7.1"], - ["2550","1253","4","41.0","3.7","12.1","-11.6","5.0","-5.0","-7.8","7.3"], - ["2600","1244","4","40.9","3.6","12.2","-11.6","5.1","-5.1","-8.0","7.4"], - ["2650","1236","5","40.7","3.5","12.3","-11.7","5.2","-5.2","-8.1","7.6"], - ["2700","1227","5","40.6","3.5","12.3","-11.8","5.3","-5.3","-8.3","7.7"], - ["2750","1219","5","40.5","3.4","12.4","-11.8","5.4","-5.4","-8.4","7.9"], - ["2800","1210","5","40.3","3.3","12.5","-11.9","5.5","-5.5","-8.6","8.0"], - ["2850","1201","5","40.2","3.3","12.5","-12.0","5.6","-5.6","-8.8","8.2"], - ["2900","1192","6","40.1","3.2","12.6","-12.0","5.7","-5.7","-8.9","8.3"], - ["2950","1182","6","39.9","3.1","12.6","-12.1","5.8","-5.8","-9.1","8.5"], - ["3000","1173","6","39.7","3.1","12.7","-12.2","5.9","-5.9","-9.2","8.6"], - ["3050","1163","6","39.6","3.0","12.7","-12.2","6.0","-6.0","-9.4","8.8"], - ["3100","1153","7","39.4","3.0","12.8","-12.3","6.1","-6.0","-9.5","8.9"], - ["3150","1143","7","39.2","2.9","12.8","-12.3","6.1","-6.2","-9.7","9.0"], - ["3200","1133","7","39.0","2.9","12.9","-12.4","6.3","-6.2","-9.8","9.2"], - ["3250","1122","8","38.8","2.8","12.9","-12.4","6.4","-6.3","-10.0","9.3"], - ["3300","1111","8","38.6","2.7","13.0","-12.5","6.4","-6.4","-10.2","9.5"], - ["3350","1100","9","38.4","2.7","13.0","-12.5","6.5","-6.5","-10.3","9.6"], - ["3400","1088","9","38.2","2.6","13.0","-12.5","6.6","-6.6","-10.5","9.8"], - ["3450","1076","10","38.0","2.6","13.0","-12.6","6.7","-6.7","-10.6","9.9"], - ["3500","1064","10","37.7","2.5","13.1","-12.6","6.9","-6.8","-10.7","10.0"], - ["3550","1051","11","37.4","2.5","13.1","-12.6","7.0","-6.9","-10.9","10.2"], - ["3600","1038","12","37.2","2.4","13.1","-12.6","7.0","-7.0","-11.0","10.3"], - ["3650","1024","13","36.9","2.4","13.1","-12.6","7.2","-7.1","-11.2","10.4"], - ["3700","1009","14","36.5","2.3","13.1","-12.6","7.2","-7.3","-11.3","10.5"], - ["3750","993","15","36.2","2.3","13.0","-12.6","7.4","-7.3","-11.4","10.7"], - ["3800","977","16","35.8","2.2","13.0","-12.6","7.5","-7.5","-11.6","10.8"], - ["3850","959","18","35.4","2.2","13.0","-12.6","7.6","-7.6","-11.7","10.9"], - ["3900","940","20","34.9","2.1","12.9","-12.5","7.7","-7.7","-11.8","11.0"], - ["3950","918","23","34.4","2.0","12.8","-12.4","7.8","-7.8","-11.9","11.1"], - ["4000","893","28","33.7","2.0","12.7","-12.3","7.9","-7.9","-12.0","11.2"], - ["4050","863","35","32.9","1.9","12.5","-12.1","8.0","-8.0","-12.0","11.2"], - ["4100","821","50","31.8","1.8","12.1","-11.8","8.2","-8.2","-12.0","11.2"] - ] - }; -case ((abs(_muzzleVelocity - 300) < 0.00001) && ((abs(_airFriction - -0.0001) < 0.00001))): { - [ - ["800","1527","0","51.4","18.2","15.0","-14.6","1.4","-1.4","-3.1","2.9"], - ["850","1522","1","51.4","17.2","15.0","-14.6","1.5","-1.5","-3.3","3.0"], - ["900","1517","1","51.4","16.2","15.0","-14.7","1.6","-1.6","-3.5","3.2"], - ["950","1513","1","51.4","15.4","15.1","-14.7","1.7","-1.6","-3.7","3.4"], - ["1000","1508","1","51.4","14.7","15.2","-14.8","1.7","-1.7","-3.9","3.6"], - ["1050","1503","1","51.3","14.0","15.2","-14.8","1.8","-1.8","-4.1","3.8"], - ["1100","1498","1","51.3","13.4","15.3","-14.8","1.9","-1.9","-4.3","3.9"], - ["1150","1494","1","51.3","12.8","15.3","-14.9","2.0","-2.0","-4.5","4.1"], - ["1200","1489","1","51.3","12.3","15.4","-14.9","2.1","-2.1","-4.7","4.3"], - ["1250","1484","1","51.2","11.8","15.5","-15.0","2.2","-2.2","-4.9","4.5"], - ["1300","1479","1","51.2","11.3","15.5","-15.0","2.3","-2.3","-5.1","4.7"], - ["1350","1475","1","51.2","10.9","15.6","-15.1","2.3","-2.3","-5.3","4.8"], - ["1400","1470","1","51.2","10.6","15.6","-15.1","2.4","-2.4","-5.5","5.0"], - ["1450","1465","1","51.1","10.2","15.7","-15.2","2.5","-2.5","-5.7","5.2"], - ["1500","1460","1","51.1","9.9","15.8","-15.3","2.6","-2.6","-5.9","5.4"], - ["1550","1455","1","51.1","9.5","15.8","-15.3","2.7","-2.7","-6.1","5.6"], - ["1600","1451","1","51.0","9.3","15.9","-15.4","2.8","-2.8","-6.3","5.8"], - ["1650","1446","1","51.0","9.0","16.0","-15.4","2.9","-2.9","-6.5","5.9"], - ["1700","1441","1","51.0","8.7","16.0","-15.5","3.0","-2.9","-6.7","6.1"], - ["1750","1436","1","50.9","8.5","16.1","-15.6","3.0","-3.0","-6.9","6.3"], - ["1800","1431","1","50.9","8.2","16.2","-15.6","3.1","-3.1","-7.1","6.5"], - ["1850","1426","1","50.8","8.0","16.2","-15.7","3.2","-3.2","-7.3","6.7"], - ["1900","1421","1","50.8","7.8","16.3","-15.8","3.3","-3.3","-7.5","6.9"], - ["1950","1416","1","50.7","7.6","16.4","-15.8","3.4","-3.4","-7.7","7.1"], - ["2000","1411","1","50.7","7.4","16.4","-15.9","3.5","-3.5","-7.9","7.2"], - ["2050","1406","1","50.7","7.3","16.5","-15.9","3.6","-3.5","-8.1","7.4"], - ["2100","1401","1","50.6","7.1","16.6","-16.0","3.6","-3.6","-8.3","7.6"], - ["2150","1396","1","50.6","6.9","16.6","-16.1","3.7","-3.7","-8.5","7.8"], - ["2200","1390","1","50.5","6.8","16.7","-16.1","3.8","-3.8","-8.7","8.0"], - ["2250","1385","2","50.5","6.6","16.8","-16.2","3.9","-3.9","-8.9","8.2"], - ["2300","1380","2","50.4","6.5","16.9","-16.3","4.0","-4.0","-9.1","8.3"], - ["2350","1375","2","50.3","6.3","16.9","-16.4","4.1","-4.1","-9.3","8.5"], - ["2400","1370","2","50.3","6.2","17.0","-16.4","4.2","-4.1","-9.5","8.7"], - ["2450","1364","2","50.2","6.1","17.1","-16.5","4.2","-4.2","-9.7","8.9"], - ["2500","1359","2","50.2","6.0","17.1","-16.6","4.3","-4.3","-9.9","9.1"], - ["2550","1354","2","50.1","5.8","17.2","-16.6","4.4","-4.4","-10.1","9.3"], - ["2600","1348","2","50.0","5.7","17.3","-16.7","4.5","-4.5","-10.3","9.5"], - ["2650","1343","2","50.0","5.6","17.3","-16.8","4.6","-4.6","-10.5","9.6"], - ["2700","1337","2","49.9","5.5","17.4","-16.8","4.7","-4.7","-10.7","9.8"], - ["2750","1332","2","49.8","5.4","17.5","-16.9","4.8","-4.7","-10.9","10.0"], - ["2800","1326","2","49.8","5.3","17.6","-17.0","4.8","-4.8","-11.1","10.2"], - ["2850","1321","2","49.7","5.2","17.6","-17.0","4.9","-4.9","-11.3","10.4"], - ["2900","1315","2","49.6","5.1","17.7","-17.1","5.0","-5.0","-11.5","10.6"], - ["2950","1309","2","49.5","5.0","17.8","-17.2","5.1","-5.1","-11.7","10.8"], - ["3000","1304","2","49.5","5.0","17.8","-17.3","5.2","-5.2","-11.9","10.9"], - ["3050","1298","2","49.4","4.9","17.9","-17.3","5.3","-5.2","-12.1","11.1"], - ["3100","1292","2","49.3","4.8","18.0","-17.4","5.3","-5.3","-12.3","11.3"], - ["3150","1286","3","49.2","4.7","18.0","-17.5","5.4","-5.4","-12.5","11.5"], - ["3200","1280","3","49.1","4.6","18.1","-17.5","5.5","-5.5","-12.7","11.7"], - ["3250","1274","3","49.0","4.6","18.2","-17.6","5.6","-5.6","-12.9","11.9"], - ["3300","1268","3","48.9","4.5","18.2","-17.7","5.7","-5.6","-13.1","12.1"], - ["3350","1262","3","48.8","4.4","18.3","-17.7","5.8","-5.7","-13.3","12.2"], - ["3400","1256","3","48.7","4.4","18.4","-17.8","5.9","-5.8","-13.5","12.4"], - ["3450","1250","3","48.6","4.3","18.4","-17.9","5.9","-5.9","-13.8","12.6"], - ["3500","1244","3","48.5","4.2","18.5","-17.9","6.0","-6.0","-14.0","12.8"], - ["3550","1237","3","48.4","4.2","18.6","-18.0","6.1","-6.1","-14.2","13.0"], - ["3600","1231","3","48.3","4.1","18.6","-18.1","6.2","-6.2","-14.4","13.2"], - ["3650","1224","3","48.2","4.0","18.7","-18.1","6.3","-6.3","-14.6","13.4"], - ["3700","1218","3","48.1","4.0","18.7","-18.2","6.4","-6.3","-14.8","13.5"], - ["3750","1211","4","48.0","3.9","18.8","-18.2","6.5","-6.4","-15.0","13.7"], - ["3800","1205","4","47.8","3.9","18.8","-18.3","6.5","-6.5","-15.2","13.9"], - ["3850","1198","4","47.7","3.8","18.9","-18.4","6.6","-6.6","-15.4","14.1"], - ["3900","1191","4","47.6","3.7","18.9","-18.4","6.7","-6.7","-15.6","14.3"], - ["3950","1184","4","47.5","3.7","19.0","-18.5","6.8","-6.8","-15.8","14.5"], - ["4000","1177","4","47.3","3.6","19.1","-18.5","6.9","-6.8","-16.0","14.7"], - ["4050","1170","4","47.2","3.6","19.1","-18.6","7.0","-6.9","-16.2","14.8"], - ["4100","1163","4","47.0","3.5","19.1","-18.6","7.1","-7.0","-16.4","15.0"], - ["4150","1155","5","46.9","3.5","19.2","-18.7","7.1","-7.1","-16.6","15.2"], - ["4200","1148","5","46.7","3.4","19.2","-18.7","7.2","-7.2","-16.8","15.4"], - ["4250","1140","5","46.6","3.4","19.3","-18.8","7.3","-7.3","-17.0","15.6"], - ["4300","1132","5","46.4","3.3","19.3","-18.8","7.4","-7.4","-17.2","15.7"], - ["4350","1124","5","46.2","3.3","19.3","-18.8","7.5","-7.5","-17.4","15.9"], - ["4400","1116","5","46.1","3.2","19.4","-18.9","7.6","-7.5","-17.6","16.1"], - ["4450","1108","6","45.9","3.2","19.4","-18.9","7.7","-7.6","-17.8","16.3"], - ["4500","1100","6","45.7","3.1","19.4","-19.0","7.8","-7.7","-17.9","16.4"], - ["4550","1091","6","45.5","3.1","19.4","-19.0","7.8","-7.8","-18.1","16.6"], - ["4600","1083","6","45.3","3.1","19.5","-19.0","7.9","-7.9","-18.3","16.8"], - ["4650","1074","7","45.1","3.0","19.5","-19.0","8.0","-8.0","-18.5","17.0"], - ["4700","1065","7","44.9","3.0","19.5","-19.1","8.1","-8.1","-18.7","17.1"], - ["4750","1055","7","44.6","2.9","19.5","-19.1","8.2","-8.2","-18.9","17.3"], - ["4800","1046","8","44.4","2.9","19.5","-19.1","8.3","-8.3","-19.1","17.5"], - ["4850","1036","8","44.2","2.8","19.5","-19.1","8.4","-8.3","-19.2","17.6"], - ["4900","1025","8","43.9","2.8","19.5","-19.1","8.5","-8.4","-19.4","17.8"], - ["4950","1015","9","43.6","2.7","19.5","-19.1","8.6","-8.5","-19.6","18.0"], - ["5000","1004","9","43.3","2.7","19.4","-19.1","8.7","-8.6","-19.8","18.1"], - ["5050","992","10","43.0","2.6","19.4","-19.0","8.8","-8.7","-19.9","18.3"], - ["5100","980","11","42.7","2.6","19.4","-19.0","8.9","-8.8","-20.1","18.4"], - ["5150","968","11","42.4","2.5","19.3","-18.9","9.0","-8.9","-20.2","18.6"], - ["5200","955","12","42.0","2.5","19.2","-18.9","9.1","-9.0","-20.4","18.7"], - ["5250","941","13","41.6","2.4","19.2","-18.8","9.1","-9.1","-20.6","18.8"], - ["5300","926","15","41.2","2.4","19.1","-18.8","9.2","-9.2","-20.7","19.0"], - ["5350","910","16","40.7","2.3","19.0","-18.6","9.4","-9.3","-20.8","19.1"], - ["5400","892","18","40.2","2.3","18.8","-18.5","9.5","-9.4","-20.9","19.2"], - ["5450","872","21","39.6","2.2","18.6","-18.3","9.6","-9.5","-21.0","19.3"], - ["5500","849","26","38.8","2.1","18.4","-18.1","9.7","-9.7","-21.1","19.3"], - ["5550","820","33","37.9","2.1","18.0","-17.8","9.8","-9.8","-21.1","19.4"] - ] - }; default {systemChat "Error: MuzzleVelocity not found in LUT"; []}; }; \ No newline at end of file From c768ef65b2970c078d3486593ba885d610df37e1 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Sun, 5 Apr 2015 17:07:55 -0500 Subject: [PATCH 011/256] Tweaking PowderEffects/AirRestitance --- .../fnc_dev_simulateCalcRangeTableLine.sqf | 14 +- .../functions/fnc_dev_simulateShot.sqf | 2 +- .../mk6mortar/functions/fnc_handleFired.sqf | 25 ++- .../fnc_rangeTablePreCalculatedValues.sqf | 146 +++++++++++------- addons/mk6mortar/script_component.hpp | 2 +- 5 files changed, 121 insertions(+), 68 deletions(-) diff --git a/addons/mk6mortar/functions/fnc_dev_simulateCalcRangeTableLine.sqf b/addons/mk6mortar/functions/fnc_dev_simulateCalcRangeTableLine.sqf index 24ebd909ed..b30c542930 100644 --- a/addons/mk6mortar/functions/fnc_dev_simulateCalcRangeTableLine.sqf +++ b/addons/mk6mortar/functions/fnc_dev_simulateCalcRangeTableLine.sqf @@ -4,19 +4,19 @@ Name: AGM_Artillery_fnc_simulateCalcRangeTableLine Author: Pabst Mirror Description: - Builds a rangeTable line for a certian range, given muzzle velocity and air friction, returns [] if out of range. +Builds a rangeTable line for a certian range, given muzzle velocity and air friction, returns [] if out of range. Parameters: - 0: NUMBER - Muzzle Velocity - 1: NUMBER - Air Friction - 2: NUMBER - Range To Hit +0: NUMBER - Muzzle Velocity +1: NUMBER - Air Friction +2: NUMBER - Range To Hit Returns: - ARRAY - Range Table Line Data (see return line) +ARRAY - Range Table Line Data (see return line) Example: - [300, -0.0001, 3000] call AGM_Artillery_fnc_simulateCalcRangeTableLine -*/ +[300, -0.0001, 3000] call AGM_Artillery_fnc_simulateCalcRangeTableLine + */ #include "script_component.hpp" #define TIME_STEP (1/50) diff --git a/addons/mk6mortar/functions/fnc_dev_simulateShot.sqf b/addons/mk6mortar/functions/fnc_dev_simulateShot.sqf index a6c3761acb..170d23321a 100644 --- a/addons/mk6mortar/functions/fnc_dev_simulateShot.sqf +++ b/addons/mk6mortar/functions/fnc_dev_simulateShot.sqf @@ -44,7 +44,7 @@ _wind = [_crosswind, _tailWind, 0]; _gravity = [0,0,-9.8]; _currentPos = [0,0,0]; -_muzzleVelocity = _muzzleVelocity * (1 + ((((_temp + 273.13) / 288.13 - 1) / 2.5 + 1 ) - 1)); +_muzzleVelocity = _muzzleVelocity * (((_temp + 273.13) / 288.13 - 1) / 30 + 1); _currentVelocity = [0, (_muzzleVelocity * cos _angleDeg), (_muzzleVelocity * sin _angleDeg)]; _currentTime = 0; diff --git a/addons/mk6mortar/functions/fnc_handleFired.sqf b/addons/mk6mortar/functions/fnc_handleFired.sqf index 41929110d7..ae20b62b64 100644 --- a/addons/mk6mortar/functions/fnc_handleFired.sqf +++ b/addons/mk6mortar/functions/fnc_handleFired.sqf @@ -29,6 +29,27 @@ if (!GVAR(airResistanceEnabled)) exitWith {}; if (_unit distance ACE_player > 3000) exitWith {false}; // Large enough distance to not simulate any wind deflection. if (!GVAR(EnableForAI) && !([_unit] call EFUNC(common,isPlayer))) exitWith {false}; +//Hack Until these are intergrated: +if (isNil QEGVAR(weather,currentRelativeDensity)) then { + EGVAR(weather,currentRelativeDensity) = 1; +}; +if (isNil QEGVAR(weather,currentTemperature)) then { + EGVAR(weather,currentTemperature) = 20; +}; + +//powder effects: +_temperature = EGVAR(weather,currentTemperature); +_newMuzzleVelocityCoefficent = (((_temperature + 273.13) / 288.13 - 1) / 30 + 1); +if (_newMuzzleVelocityCoefficent != 1) then { + _bulletVelocity = velocity _projectile; + systemChat format ["Start Vel: %1", _bulletVelocity]; + _bulletSpeed = vectorMagnitude _bulletVelocity; + _bulletVelocity = (vectorNormalized _bulletVelocity) vectorMultiply (_bulletSpeed * _newMuzzleVelocityCoefficent); + systemChat format ["New Vel: %1", _bulletVelocity]; + _projectile setVelocity _bulletVelocity; + _muzzleVelocity = _muzzleVelocity + _muzzleVelocityShift; +}; + // if (_bullet isKindOf "BulletBase") then { [{ @@ -54,7 +75,7 @@ if (!GVAR(EnableForAI) && !([_unit] call EFUNC(common,isPlayer))) exitWith {fals // _accelRef = (vectorNormalized _bulletVelocity) vectorMultiply (_dragRef); // _bulletVelocity = _bulletVelocity vectorDiff _accelRef; - _drag = _deltaT * _airFriction * _trueSpeed; + _drag = _deltaT * _airFriction * _trueSpeed * EGVAR(weather,currentRelativeDensity); _accel = _trueVelocity vectorMultiply (_drag); _bulletVelocity = _bulletVelocity vectorAdd _accel; @@ -62,6 +83,6 @@ if (!GVAR(EnableForAI) && !([_unit] call EFUNC(common,isPlayer))) exitWith {fals _shell setVelocity _bulletVelocity; // TODO expand with advanced ballistics functionality. -}, 0, [_projectile, -0.0001, time]] call CBA_fnc_addPerFrameHandler; +}, 0, [_projectile, MK6_82mm_AIR_FRICTION, time]] call CBA_fnc_addPerFrameHandler; // }; diff --git a/addons/mk6mortar/functions/fnc_rangeTablePreCalculatedValues.sqf b/addons/mk6mortar/functions/fnc_rangeTablePreCalculatedValues.sqf index d11b9efdeb..3479e8cfa7 100644 --- a/addons/mk6mortar/functions/fnc_rangeTablePreCalculatedValues.sqf +++ b/addons/mk6mortar/functions/fnc_rangeTablePreCalculatedValues.sqf @@ -30,65 +30,97 @@ case ((abs(_muzzleVelocity - 70) < 0.00001) && ((abs(_airFriction - -0.0001) < 0 ["450","979","113","11.6","0.8","0.6","-0.5","1.2","-1.2","-0.2","0.2"] ] }; - -case ((abs(_muzzleVelocity - 200) < 0.00001) && ((abs(_airFriction - -0.0001) < 0.00001))): { +case ((abs(_muzzleVelocity - 140) < 0.00001) && ((abs(_airFriction - -0.0001) < 0.00001))): { [ - ["450","1527","1","37.3","13.4","6.3","-6.0","1.0","-1.0","-1.0","1.0"], - ["500","1519","1","37.2","12.1","6.3","-6.0","1.1","-1.1","-1.1","1.1"], - ["550","1510","1","37.2","11.0","6.4","-6.0","1.2","-1.2","-1.3","1.2"], - ["600","1502","1","37.2","10.1","6.4","-6.1","1.3","-1.3","-1.4","1.3"], - ["650","1494","1","37.2","9.4","6.5","-6.1","1.4","-1.4","-1.5","1.4"], - ["700","1485","2","37.1","8.7","6.5","-6.2","1.5","-1.5","-1.6","1.5"], - ["750","1477","2","37.1","8.2","6.6","-6.2","1.6","-1.6","-1.7","1.6"], - ["800","1468","2","37.0","7.7","6.7","-6.3","1.7","-1.7","-1.8","1.8"], - ["850","1460","2","37.0","7.2","6.7","-6.3","1.8","-1.8","-2.0","1.9"], - ["900","1451","2","37.0","6.8","6.8","-6.4","1.9","-2.0","-2.1","2.0"], - ["950","1443","2","36.9","6.5","6.9","-6.4","2.0","-2.1","-2.2","2.1"], - ["1000","1434","2","36.9","6.2","6.9","-6.5","2.1","-2.2","-2.3","2.2"], - ["1050","1425","2","36.8","5.9","7.0","-6.6","2.2","-2.3","-2.5","2.3"], - ["1100","1417","3","36.8","5.6","7.1","-6.6","2.3","-2.4","-2.6","2.4"], - ["1150","1408","3","36.7","5.4","7.1","-6.7","2.5","-2.5","-2.7","2.5"], - ["1200","1399","3","36.6","5.2","7.2","-6.7","2.6","-2.6","-2.8","2.7"], - ["1250","1390","3","36.6","5.0","7.3","-6.8","2.7","-2.7","-2.9","2.8"], - ["1300","1381","3","36.5","4.8","7.4","-6.9","2.8","-2.8","-3.0","2.9"], - ["1350","1372","3","36.4","4.6","7.4","-6.9","2.9","-2.9","-3.2","3.0"], - ["1400","1362","4","36.4","4.4","7.5","-7.0","3.0","-3.0","-3.3","3.1"], - ["1450","1353","4","36.3","4.3","7.6","-7.1","3.1","-3.1","-3.4","3.2"], - ["1500","1344","4","36.2","4.2","7.7","-7.1","3.2","-3.2","-3.5","3.4"], - ["1550","1334","4","36.1","4.0","7.7","-7.2","3.3","-3.3","-3.7","3.5"], - ["1600","1324","4","36.0","3.9","7.8","-7.3","3.4","-3.4","-3.8","3.6"], - ["1650","1314","4","35.9","3.8","7.9","-7.3","3.5","-3.5","-3.9","3.7"], - ["1700","1304","5","35.8","3.7","7.9","-7.4","3.6","-3.6","-4.0","3.8"], - ["1750","1294","5","35.7","3.6","8.0","-7.5","3.7","-3.7","-4.2","3.9"], - ["1800","1284","5","35.6","3.5","8.1","-7.6","3.8","-3.9","-4.3","4.0"], - ["1850","1274","5","35.5","3.4","8.2","-7.6","3.9","-4.0","-4.4","4.2"], - ["1900","1263","6","35.4","3.3","8.2","-7.7","4.0","-4.1","-4.5","4.3"], - ["1950","1253","6","35.2","3.2","8.3","-7.8","4.1","-4.2","-4.7","4.4"], - ["2000","1242","6","35.1","3.1","8.4","-7.8","4.3","-4.3","-4.8","4.5"], - ["2050","1231","7","35.0","3.0","8.4","-7.9","4.4","-4.4","-4.9","4.7"], - ["2100","1219","7","34.8","2.9","8.5","-8.0","4.5","-4.5","-5.0","4.8"], - ["2150","1208","7","34.7","2.9","8.5","-8.0","4.6","-4.6","-5.2","4.9"], - ["2200","1196","8","34.5","2.8","8.6","-8.1","4.7","-4.7","-5.3","5.0"], - ["2250","1184","8","34.3","2.7","8.7","-8.2","4.8","-4.8","-5.4","5.1"], - ["2300","1171","9","34.2","2.7","8.7","-8.2","4.9","-4.9","-5.5","5.2"], - ["2350","1158","9","34.0","2.6","8.8","-8.3","5.0","-5.0","-5.7","5.4"], - ["2400","1145","10","33.8","2.5","8.8","-8.3","5.1","-5.1","-5.8","5.5"], - ["2450","1132","10","33.6","2.5","8.9","-8.4","5.2","-5.2","-5.9","5.6"], - ["2500","1118","11","33.3","2.4","8.9","-8.4","5.3","-5.3","-6.0","5.7"], - ["2550","1103","12","33.1","2.4","9.0","-8.5","5.4","-5.4","-6.1","5.8"], - ["2600","1088","13","32.8","2.3","9.0","-8.5","5.5","-5.5","-6.2","5.9"], - ["2650","1072","14","32.6","2.2","9.0","-8.6","5.6","-5.6","-6.4","6.0"], - ["2700","1056","15","32.3","2.2","9.0","-8.6","5.7","-5.8","-6.5","6.1"], - ["2750","1038","16","31.9","2.1","9.1","-8.6","5.9","-5.9","-6.6","6.3"], - ["2800","1020","18","31.6","2.1","9.1","-8.6","6.0","-6.0","-6.7","6.4"], - ["2850","1000","20","31.2","2.0","9.1","-8.6","6.1","-6.1","-6.8","6.5"], - ["2900","978","22","30.8","1.9","9.0","-8.6","6.2","-6.2","-6.9","6.5"], - ["2950","954","26","30.3","1.9","9.0","-8.6","6.3","-6.3","-7.0","6.6"], - ["3000","927","31","29.7","1.8","8.9","-8.5","6.4","-6.4","-7.1","6.7"], - ["3050","894","38","29.0","1.7","8.8","-8.4","6.5","-6.6","-7.2","6.8"], - ["3100","849","54","27.9","1.6","8.5","-8.3","6.6","-6.7","-7.2","6.8"] + ["250","1527","2","27.2","9.9","2.6","-2.4","0.6","-0.6","-0.3","0.3"], + ["300","1512","2","27.2","8.3","2.7","-2.4","0.7","-0.7","-0.4","0.4"], + ["350","1497","3","27.1","7.1","2.7","-2.5","0.8","-0.9","-0.5","0.4"], + ["400","1482","3","27.1","6.2","2.7","-2.5","1.0","-1.0","-0.5","0.5"], + ["450","1467","3","27.0","5.6","2.8","-2.5","1.1","-1.1","-0.6","0.6"], + ["500","1451","4","27.0","5.0","2.9","-2.6","1.2","-1.2","-0.6","0.6"], + ["550","1436","4","26.9","4.6","2.9","-2.6","1.3","-1.3","-0.7","0.7"], + ["600","1420","5","26.8","4.2","3.0","-2.7","1.4","-1.5","-0.8","0.8"], + ["650","1404","5","26.8","3.9","3.0","-2.7","1.6","-1.6","-0.9","0.8"], + ["700","1388","6","26.7","3.6","3.1","-2.8","1.7","-1.7","-0.9","0.9"], + ["750","1372","6","26.6","3.4","3.2","-2.8","1.8","-1.8","-1.0","1.0"], + ["800","1355","7","26.5","3.2","3.2","-2.9","1.9","-1.9","-1.1","1.1"], + ["850","1338","8","26.4","3.0","3.3","-2.9","2.0","-2.1","-1.1","1.1"], + ["900","1321","8","26.2","2.8","3.4","-3.0","2.2","-2.2","-1.2","1.2"], + ["950","1303","9","26.1","2.7","3.4","-3.1","2.3","-2.3","-1.3","1.2"], + ["1000","1285","10","26.0","2.6","3.5","-3.1","2.4","-2.4","-1.4","1.3"], + ["1050","1266","11","25.8","2.4","3.5","-3.2","2.5","-2.5","-1.4","1.4"], + ["1100","1247","12","25.7","2.3","3.6","-3.3","2.6","-2.7","-1.5","1.4"], + ["1150","1228","13","25.5","2.2","3.7","-3.3","2.7","-2.8","-1.6","1.5"], + ["1200","1207","14","25.3","2.1","3.7","-3.4","2.9","-2.9","-1.7","1.6"], + ["1250","1186","15","25.1","2.0","3.8","-3.4","3.0","-3.0","-1.7","1.7"], + ["1300","1163","17","24.8","1.9","3.8","-3.5","3.1","-3.1","-1.8","1.7"], + ["1350","1140","19","24.6","1.9","3.9","-3.5","3.2","-3.2","-1.9","1.8"], + ["1400","1115","21","24.3","1.8","3.9","-3.6","3.4","-3.4","-1.9","1.9"], + ["1450","1088","24","23.9","1.7","4.0","-3.6","3.5","-3.5","-2.0","1.9"], + ["1500","1060","27","23.6","1.6","4.0","-3.7","3.6","-3.6","-2.1","2.0"], + ["1550","1028","32","23.1","1.5","4.0","-3.7","3.7","-3.7","-2.1","2.1"], + ["1600","991","38","22.6","1.5","4.0","-3.7","3.8","-3.9","-2.2","2.1"], + ["1650","947","49","21.9","1.4","4.0","-3.7","3.9","-4.0","-2.3","2.2"], + ["1700","888","71","21.0","1.3","3.9","-3.6","4.1","-4.1","-2.3","2.2"] + ] + }; +case ((abs(_muzzleVelocity - 200) < 0.00001) && ((abs(_airFriction - -0.0001) < 0.00001))): { + [ + ["450","1527","1","37.3","13.4","6.3","-6.0","0.2","-0.2","-1.0","1.0"], + ["500","1519","1","37.2","12.1","6.3","-6.0","0.2","-0.2","-1.1","1.1"], + ["550","1510","1","37.2","11.0","6.4","-6.0","0.2","-0.2","-1.3","1.2"], + ["600","1502","1","37.2","10.1","6.4","-6.1","0.2","-0.2","-1.4","1.3"], + ["650","1494","1","37.2","9.4","6.5","-6.1","0.2","-0.3","-1.5","1.4"], + ["700","1485","2","37.1","8.7","6.5","-6.2","0.2","-0.3","-1.6","1.5"], + ["750","1477","2","37.1","8.2","6.6","-6.2","0.3","-0.3","-1.7","1.6"], + ["800","1468","2","37.0","7.7","6.7","-6.3","0.3","-0.3","-1.8","1.8"], + ["850","1460","2","37.0","7.2","6.7","-6.3","0.3","-0.3","-2.0","1.9"], + ["900","1451","2","37.0","6.8","6.8","-6.4","0.3","-0.3","-2.1","2.0"], + ["950","1443","2","36.9","6.5","6.9","-6.4","0.3","-0.4","-2.2","2.1"], + ["1000","1434","2","36.9","6.2","6.9","-6.5","0.4","-0.4","-2.3","2.2"], + ["1050","1425","2","36.8","5.9","7.0","-6.6","0.4","-0.4","-2.5","2.3"], + ["1100","1417","3","36.8","5.6","7.1","-6.6","0.4","-0.4","-2.6","2.4"], + ["1150","1408","3","36.7","5.4","7.1","-6.7","0.4","-0.4","-2.7","2.5"], + ["1200","1399","3","36.6","5.2","7.2","-6.7","0.4","-0.4","-2.8","2.7"], + ["1250","1390","3","36.6","5.0","7.3","-6.8","0.4","-0.4","-2.9","2.8"], + ["1300","1381","3","36.5","4.8","7.4","-6.9","0.5","-0.5","-3.0","2.9"], + ["1350","1372","3","36.4","4.6","7.4","-6.9","0.5","-0.5","-3.2","3.0"], + ["1400","1362","4","36.4","4.4","7.5","-7.0","0.5","-0.5","-3.3","3.1"], + ["1450","1353","4","36.3","4.3","7.6","-7.1","0.5","-0.5","-3.4","3.2"], + ["1500","1344","4","36.2","4.2","7.7","-7.1","0.5","-0.5","-3.5","3.4"], + ["1550","1334","4","36.1","4.0","7.7","-7.2","0.6","-0.5","-3.7","3.5"], + ["1600","1324","4","36.0","3.9","7.8","-7.3","0.6","-0.6","-3.8","3.6"], + ["1650","1314","4","35.9","3.8","7.9","-7.3","0.6","-0.6","-3.9","3.7"], + ["1700","1304","5","35.8","3.7","7.9","-7.4","0.6","-0.6","-4.0","3.8"], + ["1750","1294","5","35.7","3.6","8.0","-7.5","0.6","-0.6","-4.2","3.9"], + ["1800","1284","5","35.6","3.5","8.1","-7.6","0.6","-0.7","-4.3","4.0"], + ["1850","1274","5","35.5","3.4","8.2","-7.6","0.7","-0.7","-4.4","4.2"], + ["1900","1263","6","35.4","3.3","8.2","-7.7","0.7","-0.7","-4.5","4.3"], + ["1950","1253","6","35.2","3.2","8.3","-7.8","0.7","-0.7","-4.7","4.4"], + ["2000","1242","6","35.1","3.1","8.4","-7.8","0.7","-0.7","-4.8","4.5"], + ["2050","1231","7","35.0","3.0","8.4","-7.9","0.7","-0.7","-4.9","4.7"], + ["2100","1219","7","34.8","2.9","8.5","-8.0","0.8","-0.7","-5.0","4.8"], + ["2150","1208","7","34.7","2.9","8.5","-8.0","0.8","-0.8","-5.2","4.9"], + ["2200","1196","8","34.5","2.8","8.6","-8.1","0.8","-0.8","-5.3","5.0"], + ["2250","1184","8","34.3","2.7","8.7","-8.2","0.8","-0.8","-5.4","5.1"], + ["2300","1171","9","34.2","2.7","8.7","-8.2","0.8","-0.8","-5.5","5.2"], + ["2350","1158","9","34.0","2.6","8.8","-8.3","0.8","-0.8","-5.7","5.4"], + ["2400","1145","10","33.8","2.5","8.8","-8.3","0.9","-0.8","-5.8","5.5"], + ["2450","1132","10","33.6","2.5","8.9","-8.4","0.9","-0.9","-5.9","5.6"], + ["2500","1118","11","33.3","2.4","8.9","-8.4","0.9","-0.9","-6.0","5.7"], + ["2550","1103","12","33.1","2.4","9.0","-8.5","0.9","-0.9","-6.1","5.8"], + ["2600","1088","13","32.8","2.3","9.0","-8.5","0.9","-0.9","-6.2","5.9"], + ["2650","1072","14","32.6","2.2","9.0","-8.6","0.9","-0.9","-6.4","6.0"], + ["2700","1056","15","32.3","2.2","9.0","-8.6","0.9","-1.0","-6.5","6.1"], + ["2750","1038","16","31.9","2.1","9.1","-8.6","1.0","-1.0","-6.6","6.3"], + ["2800","1020","18","31.6","2.1","9.1","-8.6","1.0","-1.0","-6.7","6.4"], + ["2850","1000","20","31.2","2.0","9.1","-8.6","1.0","-1.0","-6.8","6.5"], + ["2900","978","22","30.8","1.9","9.0","-8.6","1.0","-1.0","-6.9","6.5"], + ["2950","954","26","30.3","1.9","9.0","-8.6","1.0","-1.1","-7.0","6.6"], + ["3000","927","31","29.7","1.8","8.9","-8.5","1.1","-1.1","-7.1","6.7"], + ["3050","894","38","29.0","1.7","8.8","-8.4","1.1","-1.1","-7.2","6.8"], + ["3100","849","54","27.9","1.6","8.5","-8.3","1.1","-1.1","-7.2","6.8"] ] }; - default {systemChat "Error: MuzzleVelocity not found in LUT"; []}; }; \ No newline at end of file diff --git a/addons/mk6mortar/script_component.hpp b/addons/mk6mortar/script_component.hpp index cb74d552de..98b9d705e0 100644 --- a/addons/mk6mortar/script_component.hpp +++ b/addons/mk6mortar/script_component.hpp @@ -11,4 +11,4 @@ #include "\z\ace\Addons\main\script_macros.hpp" -#define MK6_82mm_AIR_FRICTION -0.0001 \ No newline at end of file +#define MK6_82mm_AIR_FRICTION -0.000075 \ No newline at end of file From 5c5b8f656e726f68c5aff8917ec48d6239374f40 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Sun, 5 Apr 2015 17:37:11 -0500 Subject: [PATCH 012/256] Tweak Air to match known data --- .../functions/fnc_dev_simulateShot.sqf | 2 +- .../mk6mortar/functions/fnc_handleFired.sqf | 6 +- .../fnc_rangeTablePreCalculatedValues.sqf | 189 +++++++++--------- addons/mk6mortar/script_component.hpp | 2 +- 4 files changed, 101 insertions(+), 98 deletions(-) diff --git a/addons/mk6mortar/functions/fnc_dev_simulateShot.sqf b/addons/mk6mortar/functions/fnc_dev_simulateShot.sqf index 170d23321a..42ceef21fd 100644 --- a/addons/mk6mortar/functions/fnc_dev_simulateShot.sqf +++ b/addons/mk6mortar/functions/fnc_dev_simulateShot.sqf @@ -44,7 +44,7 @@ _wind = [_crosswind, _tailWind, 0]; _gravity = [0,0,-9.8]; _currentPos = [0,0,0]; -_muzzleVelocity = _muzzleVelocity * (((_temp + 273.13) / 288.13 - 1) / 30 + 1); +_muzzleVelocity = _muzzleVelocity * (((_temp + 273.13) / 288.13 - 1) / 40 + 1); _currentVelocity = [0, (_muzzleVelocity * cos _angleDeg), (_muzzleVelocity * sin _angleDeg)]; _currentTime = 0; diff --git a/addons/mk6mortar/functions/fnc_handleFired.sqf b/addons/mk6mortar/functions/fnc_handleFired.sqf index ae20b62b64..c57f7bc7fe 100644 --- a/addons/mk6mortar/functions/fnc_handleFired.sqf +++ b/addons/mk6mortar/functions/fnc_handleFired.sqf @@ -24,6 +24,7 @@ disableSerialization; PARAMS_7(_vehicle,_weapon,_muzzle,_mode,_ammo,_magazine,_projectile); + if (!GVAR(airResistanceEnabled)) exitWith {}; if (_unit distance ACE_player > 3000) exitWith {false}; // Large enough distance to not simulate any wind deflection. @@ -39,13 +40,12 @@ if (isNil QEGVAR(weather,currentTemperature)) then { //powder effects: _temperature = EGVAR(weather,currentTemperature); -_newMuzzleVelocityCoefficent = (((_temperature + 273.13) / 288.13 - 1) / 30 + 1); +_newMuzzleVelocityCoefficent = (((_temperature + 273.13) / 288.13 - 1) / 40 + 1); +systemChat str _newMuzzleVelocityCoefficent; if (_newMuzzleVelocityCoefficent != 1) then { _bulletVelocity = velocity _projectile; - systemChat format ["Start Vel: %1", _bulletVelocity]; _bulletSpeed = vectorMagnitude _bulletVelocity; _bulletVelocity = (vectorNormalized _bulletVelocity) vectorMultiply (_bulletSpeed * _newMuzzleVelocityCoefficent); - systemChat format ["New Vel: %1", _bulletVelocity]; _projectile setVelocity _bulletVelocity; _muzzleVelocity = _muzzleVelocity + _muzzleVelocityShift; }; diff --git a/addons/mk6mortar/functions/fnc_rangeTablePreCalculatedValues.sqf b/addons/mk6mortar/functions/fnc_rangeTablePreCalculatedValues.sqf index 3479e8cfa7..e836018b2e 100644 --- a/addons/mk6mortar/functions/fnc_rangeTablePreCalculatedValues.sqf +++ b/addons/mk6mortar/functions/fnc_rangeTablePreCalculatedValues.sqf @@ -20,107 +20,110 @@ switch (true) do { case ((abs(_muzzleVelocity - 70) < 0.00001) && ((abs(_airFriction - -0.0001) < 0.00001))): { [ - ["100","1493","9","14.0","3.7","0.4","-0.3","0.3","-0.3","-0.0","0.0"], - ["150","1438","14","13.9","2.5","0.4","-0.4","0.4","-0.4","-0.1","0.0"], - ["200","1381","20","13.8","1.9","0.5","-0.4","0.5","-0.5","-0.1","0.1"], - ["250","1321","27","13.6","1.5","0.5","-0.4","0.7","-0.7","-0.1","0.1"], - ["300","1256","36","13.3","1.3","0.6","-0.5","0.8","-0.8","-0.1","0.1"], - ["350","1183","49","12.9","1.1","0.6","-0.5","0.9","-0.9","-0.1","0.1"], - ["400","1097","70","12.4","0.9","0.6","-0.5","1.1","-1.1","-0.2","0.1"], - ["450","979","113","11.6","0.8","0.6","-0.5","1.2","-1.2","-0.2","0.2"] + ["100","1493","9","14.0","3.7","0.4","-0.3","0.0","-0.0","-0.0","0.0"], + ["150","1438","14","13.9","2.5","0.4","-0.4","0.0","-0.0","-0.1","0.0"], + ["200","1381","20","13.8","1.9","0.5","-0.4","0.0","-0.0","-0.1","0.1"], + ["250","1321","27","13.6","1.5","0.5","-0.4","0.1","-0.1","-0.1","0.1"], + ["300","1256","36","13.3","1.3","0.6","-0.5","0.1","-0.1","-0.1","0.1"], + ["350","1183","49","12.9","1.1","0.6","-0.5","0.1","-0.1","-0.1","0.1"], + ["400","1097","70","12.4","0.9","0.6","-0.5","0.1","-0.1","-0.2","0.1"], + ["450","979","113","11.6","0.8","0.6","-0.5","0.1","-0.1","-0.2","0.2"] ] }; case ((abs(_muzzleVelocity - 140) < 0.00001) && ((abs(_airFriction - -0.0001) < 0.00001))): { [ - ["250","1527","2","27.2","9.9","2.6","-2.4","0.6","-0.6","-0.3","0.3"], - ["300","1512","2","27.2","8.3","2.7","-2.4","0.7","-0.7","-0.4","0.4"], - ["350","1497","3","27.1","7.1","2.7","-2.5","0.8","-0.9","-0.5","0.4"], - ["400","1482","3","27.1","6.2","2.7","-2.5","1.0","-1.0","-0.5","0.5"], - ["450","1467","3","27.0","5.6","2.8","-2.5","1.1","-1.1","-0.6","0.6"], - ["500","1451","4","27.0","5.0","2.9","-2.6","1.2","-1.2","-0.6","0.6"], - ["550","1436","4","26.9","4.6","2.9","-2.6","1.3","-1.3","-0.7","0.7"], - ["600","1420","5","26.8","4.2","3.0","-2.7","1.4","-1.5","-0.8","0.8"], - ["650","1404","5","26.8","3.9","3.0","-2.7","1.6","-1.6","-0.9","0.8"], - ["700","1388","6","26.7","3.6","3.1","-2.8","1.7","-1.7","-0.9","0.9"], - ["750","1372","6","26.6","3.4","3.2","-2.8","1.8","-1.8","-1.0","1.0"], - ["800","1355","7","26.5","3.2","3.2","-2.9","1.9","-1.9","-1.1","1.1"], - ["850","1338","8","26.4","3.0","3.3","-2.9","2.0","-2.1","-1.1","1.1"], - ["900","1321","8","26.2","2.8","3.4","-3.0","2.2","-2.2","-1.2","1.2"], - ["950","1303","9","26.1","2.7","3.4","-3.1","2.3","-2.3","-1.3","1.2"], - ["1000","1285","10","26.0","2.6","3.5","-3.1","2.4","-2.4","-1.4","1.3"], - ["1050","1266","11","25.8","2.4","3.5","-3.2","2.5","-2.5","-1.4","1.4"], - ["1100","1247","12","25.7","2.3","3.6","-3.3","2.6","-2.7","-1.5","1.4"], - ["1150","1228","13","25.5","2.2","3.7","-3.3","2.7","-2.8","-1.6","1.5"], - ["1200","1207","14","25.3","2.1","3.7","-3.4","2.9","-2.9","-1.7","1.6"], - ["1250","1186","15","25.1","2.0","3.8","-3.4","3.0","-3.0","-1.7","1.7"], - ["1300","1163","17","24.8","1.9","3.8","-3.5","3.1","-3.1","-1.8","1.7"], - ["1350","1140","19","24.6","1.9","3.9","-3.5","3.2","-3.2","-1.9","1.8"], - ["1400","1115","21","24.3","1.8","3.9","-3.6","3.4","-3.4","-1.9","1.9"], - ["1450","1088","24","23.9","1.7","4.0","-3.6","3.5","-3.5","-2.0","1.9"], - ["1500","1060","27","23.6","1.6","4.0","-3.7","3.6","-3.6","-2.1","2.0"], - ["1550","1028","32","23.1","1.5","4.0","-3.7","3.7","-3.7","-2.1","2.1"], - ["1600","991","38","22.6","1.5","4.0","-3.7","3.8","-3.9","-2.2","2.1"], - ["1650","947","49","21.9","1.4","4.0","-3.7","3.9","-4.0","-2.3","2.2"], - ["1700","888","71","21.0","1.3","3.9","-3.6","4.1","-4.1","-2.3","2.2"] + ["250","1527","2","27.2","9.9","2.6","-2.4","0.1","-0.0","-0.3","0.3"], + ["300","1512","2","27.2","8.3","2.7","-2.4","0.1","-0.1","-0.4","0.4"], + ["350","1497","3","27.1","7.1","2.7","-2.5","0.1","-0.1","-0.5","0.4"], + ["400","1482","3","27.1","6.2","2.7","-2.5","0.1","-0.1","-0.5","0.5"], + ["450","1467","3","27.0","5.6","2.8","-2.5","0.1","-0.1","-0.6","0.6"], + ["500","1451","4","27.0","5.0","2.9","-2.6","0.1","-0.1","-0.6","0.6"], + ["550","1436","4","26.9","4.6","2.9","-2.6","0.1","-0.1","-0.7","0.7"], + ["600","1420","5","26.8","4.2","3.0","-2.7","0.1","-0.1","-0.8","0.8"], + ["650","1404","5","26.8","3.9","3.0","-2.7","0.1","-0.1","-0.9","0.8"], + ["700","1388","6","26.7","3.6","3.1","-2.8","0.1","-0.1","-0.9","0.9"], + ["750","1372","6","26.6","3.4","3.2","-2.8","0.2","-0.1","-1.0","1.0"], + ["800","1355","7","26.5","3.2","3.2","-2.9","0.2","-0.1","-1.1","1.1"], + ["850","1338","8","26.4","3.0","3.3","-2.9","0.2","-0.2","-1.1","1.1"], + ["900","1321","8","26.2","2.8","3.4","-3.0","0.2","-0.2","-1.2","1.2"], + ["950","1303","9","26.1","2.7","3.4","-3.1","0.2","-0.2","-1.3","1.2"], + ["1000","1285","10","26.0","2.6","3.5","-3.1","0.2","-0.2","-1.4","1.3"], + ["1050","1266","11","25.8","2.4","3.5","-3.2","0.2","-0.2","-1.4","1.4"], + ["1100","1247","12","25.7","2.3","3.6","-3.3","0.2","-0.2","-1.5","1.4"], + ["1150","1228","13","25.5","2.2","3.7","-3.3","0.2","-0.2","-1.6","1.5"], + ["1200","1207","14","25.3","2.1","3.7","-3.4","0.2","-0.3","-1.7","1.6"], + ["1250","1186","15","25.1","2.0","3.8","-3.4","0.2","-0.3","-1.7","1.7"], + ["1300","1163","17","24.8","1.9","3.8","-3.5","0.3","-0.3","-1.8","1.7"], + ["1350","1140","19","24.6","1.9","3.9","-3.5","0.3","-0.3","-1.9","1.8"], + ["1400","1115","21","24.3","1.8","3.9","-3.6","0.3","-0.3","-1.9","1.9"], + ["1450","1088","24","23.9","1.7","4.0","-3.6","0.3","-0.3","-2.0","1.9"], + ["1500","1060","27","23.6","1.6","4.0","-3.7","0.3","-0.3","-2.1","2.0"], + ["1550","1028","32","23.1","1.5","4.0","-3.7","0.3","-0.3","-2.1","2.1"], + ["1600","991","38","22.6","1.5","4.0","-3.7","0.3","-0.3","-2.2","2.1"], + ["1650","947","49","21.9","1.4","4.0","-3.7","0.3","-0.3","-2.3","2.2"], + ["1700","888","71","21.0","1.3","3.9","-3.6","0.3","-0.3","-2.3","2.2"] ] }; case ((abs(_muzzleVelocity - 200) < 0.00001) && ((abs(_airFriction - -0.0001) < 0.00001))): { [ - ["450","1527","1","37.3","13.4","6.3","-6.0","0.2","-0.2","-1.0","1.0"], - ["500","1519","1","37.2","12.1","6.3","-6.0","0.2","-0.2","-1.1","1.1"], - ["550","1510","1","37.2","11.0","6.4","-6.0","0.2","-0.2","-1.3","1.2"], - ["600","1502","1","37.2","10.1","6.4","-6.1","0.2","-0.2","-1.4","1.3"], - ["650","1494","1","37.2","9.4","6.5","-6.1","0.2","-0.3","-1.5","1.4"], - ["700","1485","2","37.1","8.7","6.5","-6.2","0.2","-0.3","-1.6","1.5"], - ["750","1477","2","37.1","8.2","6.6","-6.2","0.3","-0.3","-1.7","1.6"], - ["800","1468","2","37.0","7.7","6.7","-6.3","0.3","-0.3","-1.8","1.8"], - ["850","1460","2","37.0","7.2","6.7","-6.3","0.3","-0.3","-2.0","1.9"], - ["900","1451","2","37.0","6.8","6.8","-6.4","0.3","-0.3","-2.1","2.0"], - ["950","1443","2","36.9","6.5","6.9","-6.4","0.3","-0.4","-2.2","2.1"], - ["1000","1434","2","36.9","6.2","6.9","-6.5","0.4","-0.4","-2.3","2.2"], - ["1050","1425","2","36.8","5.9","7.0","-6.6","0.4","-0.4","-2.5","2.3"], - ["1100","1417","3","36.8","5.6","7.1","-6.6","0.4","-0.4","-2.6","2.4"], - ["1150","1408","3","36.7","5.4","7.1","-6.7","0.4","-0.4","-2.7","2.5"], - ["1200","1399","3","36.6","5.2","7.2","-6.7","0.4","-0.4","-2.8","2.7"], - ["1250","1390","3","36.6","5.0","7.3","-6.8","0.4","-0.4","-2.9","2.8"], - ["1300","1381","3","36.5","4.8","7.4","-6.9","0.5","-0.5","-3.0","2.9"], - ["1350","1372","3","36.4","4.6","7.4","-6.9","0.5","-0.5","-3.2","3.0"], - ["1400","1362","4","36.4","4.4","7.5","-7.0","0.5","-0.5","-3.3","3.1"], - ["1450","1353","4","36.3","4.3","7.6","-7.1","0.5","-0.5","-3.4","3.2"], - ["1500","1344","4","36.2","4.2","7.7","-7.1","0.5","-0.5","-3.5","3.4"], - ["1550","1334","4","36.1","4.0","7.7","-7.2","0.6","-0.5","-3.7","3.5"], - ["1600","1324","4","36.0","3.9","7.8","-7.3","0.6","-0.6","-3.8","3.6"], - ["1650","1314","4","35.9","3.8","7.9","-7.3","0.6","-0.6","-3.9","3.7"], - ["1700","1304","5","35.8","3.7","7.9","-7.4","0.6","-0.6","-4.0","3.8"], - ["1750","1294","5","35.7","3.6","8.0","-7.5","0.6","-0.6","-4.2","3.9"], - ["1800","1284","5","35.6","3.5","8.1","-7.6","0.6","-0.7","-4.3","4.0"], - ["1850","1274","5","35.5","3.4","8.2","-7.6","0.7","-0.7","-4.4","4.2"], - ["1900","1263","6","35.4","3.3","8.2","-7.7","0.7","-0.7","-4.5","4.3"], - ["1950","1253","6","35.2","3.2","8.3","-7.8","0.7","-0.7","-4.7","4.4"], - ["2000","1242","6","35.1","3.1","8.4","-7.8","0.7","-0.7","-4.8","4.5"], - ["2050","1231","7","35.0","3.0","8.4","-7.9","0.7","-0.7","-4.9","4.7"], - ["2100","1219","7","34.8","2.9","8.5","-8.0","0.8","-0.7","-5.0","4.8"], - ["2150","1208","7","34.7","2.9","8.5","-8.0","0.8","-0.8","-5.2","4.9"], - ["2200","1196","8","34.5","2.8","8.6","-8.1","0.8","-0.8","-5.3","5.0"], - ["2250","1184","8","34.3","2.7","8.7","-8.2","0.8","-0.8","-5.4","5.1"], - ["2300","1171","9","34.2","2.7","8.7","-8.2","0.8","-0.8","-5.5","5.2"], - ["2350","1158","9","34.0","2.6","8.8","-8.3","0.8","-0.8","-5.7","5.4"], - ["2400","1145","10","33.8","2.5","8.8","-8.3","0.9","-0.8","-5.8","5.5"], - ["2450","1132","10","33.6","2.5","8.9","-8.4","0.9","-0.9","-5.9","5.6"], - ["2500","1118","11","33.3","2.4","8.9","-8.4","0.9","-0.9","-6.0","5.7"], - ["2550","1103","12","33.1","2.4","9.0","-8.5","0.9","-0.9","-6.1","5.8"], - ["2600","1088","13","32.8","2.3","9.0","-8.5","0.9","-0.9","-6.2","5.9"], - ["2650","1072","14","32.6","2.2","9.0","-8.6","0.9","-0.9","-6.4","6.0"], - ["2700","1056","15","32.3","2.2","9.0","-8.6","0.9","-1.0","-6.5","6.1"], - ["2750","1038","16","31.9","2.1","9.1","-8.6","1.0","-1.0","-6.6","6.3"], - ["2800","1020","18","31.6","2.1","9.1","-8.6","1.0","-1.0","-6.7","6.4"], - ["2850","1000","20","31.2","2.0","9.1","-8.6","1.0","-1.0","-6.8","6.5"], - ["2900","978","22","30.8","1.9","9.0","-8.6","1.0","-1.0","-6.9","6.5"], - ["2950","954","26","30.3","1.9","9.0","-8.6","1.0","-1.1","-7.0","6.6"], - ["3000","927","31","29.7","1.8","8.9","-8.5","1.1","-1.1","-7.1","6.7"], - ["3050","894","38","29.0","1.7","8.8","-8.4","1.1","-1.1","-7.2","6.8"], - ["3100","849","54","27.9","1.6","8.5","-8.3","1.1","-1.1","-7.2","6.8"] + ["450","1527","1","37.3","13.4","6.3","-6.0","0.1","-0.1","-1.0","1.0"], + ["500","1519","1","37.2","12.1","6.3","-6.0","0.1","-0.1","-1.1","1.1"], + ["550","1510","1","37.2","11.0","6.4","-6.0","0.1","-0.1","-1.3","1.2"], + ["600","1502","1","37.2","10.1","6.4","-6.1","0.1","-0.1","-1.4","1.3"], + ["650","1494","1","37.2","9.4","6.5","-6.1","0.1","-0.1","-1.5","1.4"], + ["700","1485","2","37.1","8.7","6.5","-6.2","0.1","-0.1","-1.6","1.5"], + ["750","1477","2","37.1","8.2","6.6","-6.2","0.1","-0.1","-1.7","1.6"], + ["800","1468","2","37.0","7.7","6.7","-6.3","0.1","-0.1","-1.8","1.8"], + ["850","1460","2","37.0","7.2","6.7","-6.3","0.2","-0.1","-2.0","1.9"], + ["900","1451","2","37.0","6.8","6.8","-6.4","0.1","-0.2","-2.1","2.0"], + ["950","1443","2","36.9","6.5","6.9","-6.4","0.2","-0.2","-2.2","2.1"], + ["1000","1434","2","36.9","6.2","6.9","-6.5","0.2","-0.2","-2.3","2.2"], + ["1050","1425","2","36.8","5.9","7.0","-6.6","0.2","-0.2","-2.5","2.3"], + ["1100","1417","3","36.8","5.6","7.1","-6.6","0.2","-0.2","-2.6","2.4"], + ["1150","1408","3","36.7","5.4","7.1","-6.7","0.2","-0.2","-2.7","2.5"], + ["1200","1399","3","36.6","5.2","7.2","-6.7","0.2","-0.2","-2.8","2.7"], + ["1250","1390","3","36.6","5.0","7.3","-6.8","0.2","-0.2","-2.9","2.8"], + ["1300","1381","3","36.5","4.8","7.4","-6.9","0.2","-0.2","-3.0","2.9"], + ["1350","1372","3","36.4","4.6","7.4","-6.9","0.2","-0.2","-3.2","3.0"], + ["1400","1362","4","36.4","4.4","7.5","-7.0","0.2","-0.3","-3.3","3.1"], + ["1450","1353","4","36.3","4.3","7.6","-7.1","0.2","-0.3","-3.4","3.2"], + ["1500","1344","4","36.2","4.2","7.7","-7.1","0.3","-0.3","-3.5","3.4"], + ["1550","1334","4","36.1","4.0","7.7","-7.2","0.3","-0.3","-3.7","3.5"], + ["1600","1324","4","36.0","3.9","7.8","-7.3","0.3","-0.3","-3.8","3.6"], + ["1650","1314","4","35.9","3.8","7.9","-7.3","0.3","-0.3","-3.9","3.7"], + ["1700","1304","5","35.8","3.7","7.9","-7.4","0.3","-0.3","-4.0","3.8"], + ["1750","1294","5","35.7","3.6","8.0","-7.5","0.3","-0.3","-4.2","3.9"], + ["1800","1284","5","35.6","3.5","8.1","-7.6","0.3","-0.3","-4.3","4.0"], + ["1850","1274","5","35.5","3.4","8.2","-7.6","0.3","-0.3","-4.4","4.2"], + ["1900","1263","6","35.4","3.3","8.2","-7.7","0.3","-0.3","-4.5","4.3"], + ["1950","1253","6","35.2","3.2","8.3","-7.8","0.3","-0.4","-4.7","4.4"], + ["2000","1242","6","35.1","3.1","8.4","-7.8","0.4","-0.3","-4.8","4.5"], + ["2050","1231","7","35.0","3.0","8.4","-7.9","0.4","-0.4","-4.9","4.7"], + ["2100","1219","7","34.8","2.9","8.5","-8.0","0.4","-0.4","-5.0","4.8"], + ["2150","1208","7","34.7","2.9","8.5","-8.0","0.4","-0.4","-5.2","4.9"], + ["2200","1196","8","34.5","2.8","8.6","-8.1","0.4","-0.4","-5.3","5.0"], + ["2250","1184","8","34.3","2.7","8.7","-8.2","0.4","-0.4","-5.4","5.1"], + ["2300","1171","9","34.2","2.7","8.7","-8.2","0.4","-0.4","-5.5","5.2"], + ["2350","1158","9","34.0","2.6","8.8","-8.3","0.4","-0.4","-5.7","5.4"], + ["2400","1145","10","33.8","2.5","8.8","-8.3","0.4","-0.4","-5.8","5.5"], + ["2450","1132","10","33.6","2.5","8.9","-8.4","0.4","-0.4","-5.9","5.6"], + ["2500","1118","11","33.3","2.4","8.9","-8.4","0.5","-0.4","-6.0","5.7"], + ["2550","1103","12","33.1","2.4","9.0","-8.5","0.4","-0.5","-6.1","5.8"], + ["2600","1088","13","32.8","2.3","9.0","-8.5","0.5","-0.4","-6.2","5.9"], + ["2650","1072","14","32.6","2.2","9.0","-8.6","0.5","-0.5","-6.4","6.0"], + ["2700","1056","15","32.3","2.2","9.0","-8.6","0.5","-0.5","-6.5","6.1"], + ["2750","1038","16","31.9","2.1","9.1","-8.6","0.5","-0.5","-6.6","6.3"], + ["2800","1020","18","31.6","2.1","9.1","-8.6","0.5","-0.5","-6.7","6.4"], + ["2850","1000","20","31.2","2.0","9.1","-8.6","0.5","-0.5","-6.8","6.5"], + ["2900","978","22","30.8","1.9","9.0","-8.6","0.5","-0.5","-6.9","6.5"], + ["2950","954","26","30.3","1.9","9.0","-8.6","0.5","-0.5","-7.0","6.6"], + ["3000","927","31","29.7","1.8","8.9","-8.5","0.5","-0.5","-7.1","6.7"], + ["3050","894","38","29.0","1.7","8.8","-8.4","0.5","-0.6","-7.2","6.8"], + ["3100","849","54","27.9","1.6","8.5","-8.3","0.5","-0.6","-7.2","6.8"] ] }; - default {systemChat "Error: MuzzleVelocity not found in LUT"; []}; + default { + ERROR("MuzzleVelocity not found in LUT"); + [] + }; }; \ No newline at end of file diff --git a/addons/mk6mortar/script_component.hpp b/addons/mk6mortar/script_component.hpp index 98b9d705e0..cb74d552de 100644 --- a/addons/mk6mortar/script_component.hpp +++ b/addons/mk6mortar/script_component.hpp @@ -11,4 +11,4 @@ #include "\z\ace\Addons\main\script_macros.hpp" -#define MK6_82mm_AIR_FRICTION -0.000075 \ No newline at end of file +#define MK6_82mm_AIR_FRICTION -0.0001 \ No newline at end of file From a8b000c159e267b4156044ffbd61b05653ae8501 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Sun, 5 Apr 2015 17:50:07 -0500 Subject: [PATCH 013/256] Some Headers --- addons/mk6mortar/RscRangeTable.hpp | 7 +++---- addons/mk6mortar/XEH_clientInit.sqf | 1 - addons/mk6mortar/XEH_preInit.sqf | 1 - addons/mk6mortar/config.cpp | 3 +-- addons/mk6mortar/functions/fnc_handleFired.sqf | 16 ++++++++-------- .../functions/fnc_handlePlayerVehicleChanged.sqf | 9 +++++---- addons/mk6mortar/functions/fnc_moduleInit.sqf | 4 ++-- .../mk6mortar/functions/fnc_rangeTableOpen.sqf | 7 ++++++- .../functions/fnc_rangeTablePageChange.sqf | 5 ++++- .../fnc_rangeTablePreCalculatedValues.sqf | 11 +++++++---- addons/mk6mortar/functions/fnc_toggleMils.sqf | 6 +++++- .../functions/fnc_turretDisplayLoaded.sqf | 6 +++--- 12 files changed, 44 insertions(+), 32 deletions(-) diff --git a/addons/mk6mortar/RscRangeTable.hpp b/addons/mk6mortar/RscRangeTable.hpp index 65598fd36d..96516779ac 100644 --- a/addons/mk6mortar/RscRangeTable.hpp +++ b/addons/mk6mortar/RscRangeTable.hpp @@ -1,5 +1,4 @@ -class ACE_82mm_RangeTable_Dialog -{ +class ACE_82mm_RangeTable_Dialog { idd = -1; movingEnable = 1; onLoad = "uiNamespace setVariable ['ACE_82mm_RangeTable_Dialog', _this select 0];"; @@ -25,7 +24,7 @@ class ACE_82mm_RangeTable_Dialog }; }; class controls { - class TheTable : RscListNBox { + class TheTable: RscListNBox { idc = 20001; // style = ST_CENTER + ST_MULTI + LB_TEXTURES; // style = ST_LEFT + ST_MULTI + LB_TEXTURES; @@ -84,4 +83,4 @@ class ACE_82mm_RangeTable_Dialog onButtonClick = "closeDialog 0"; }; }; -}; \ No newline at end of file +}; diff --git a/addons/mk6mortar/XEH_clientInit.sqf b/addons/mk6mortar/XEH_clientInit.sqf index 36b39e58c4..973772c96a 100644 --- a/addons/mk6mortar/XEH_clientInit.sqf +++ b/addons/mk6mortar/XEH_clientInit.sqf @@ -3,4 +3,3 @@ if (!hasInterface) exitWith {}; ["playerVehicleChanged", {_this call FUNC(handlePlayerVehicleChanged);}] call EFUNC(common,addEventHandler); - diff --git a/addons/mk6mortar/XEH_preInit.sqf b/addons/mk6mortar/XEH_preInit.sqf index 186a595896..a60fcb9ce6 100644 --- a/addons/mk6mortar/XEH_preInit.sqf +++ b/addons/mk6mortar/XEH_preInit.sqf @@ -2,7 +2,6 @@ ADDON = false; - PREP(dev_buildTable); PREP(dev_formatNumber); PREP(dev_simulateCalcRangeTableLine); diff --git a/addons/mk6mortar/config.cpp b/addons/mk6mortar/config.cpp index 5050bb2b32..b39b036416 100644 --- a/addons/mk6mortar/config.cpp +++ b/addons/mk6mortar/config.cpp @@ -25,7 +25,6 @@ class RscControlsGroup; class ScrollBar; class RscActiveText; - #include "RscInGameUI.hpp" #include "RscRangeTable.hpp" @@ -40,7 +39,7 @@ class ACE_Settings { value = 1; typeName = "BOOL"; isClientSetable = 0; - }; + }; class GVAR(allowCompass) { value = 1; typeName = "BOOL"; diff --git a/addons/mk6mortar/functions/fnc_handleFired.sqf b/addons/mk6mortar/functions/fnc_handleFired.sqf index c57f7bc7fe..679b689d6d 100644 --- a/addons/mk6mortar/functions/fnc_handleFired.sqf +++ b/addons/mk6mortar/functions/fnc_handleFired.sqf @@ -1,5 +1,6 @@ /* * Author: PabstMirror + * Called when the mortar is fired. * * Arguments: * 0: mortar - Object the event handler is assigned to @@ -14,7 +15,7 @@ * Nothing * * Example: - * [clientFiredBIS-XEH] call ace_ + * [clientFiredBIS-XEH] call ace_mk6mortars_fnc_handleFired * * Public: No */ @@ -24,11 +25,14 @@ disableSerialization; PARAMS_7(_vehicle,_weapon,_muzzle,_mode,_ammo,_magazine,_projectile); - if (!GVAR(airResistanceEnabled)) exitWith {}; if (_unit distance ACE_player > 3000) exitWith {false}; // Large enough distance to not simulate any wind deflection. -if (!GVAR(EnableForAI) && !([_unit] call EFUNC(common,isPlayer))) exitWith {false}; + +//AI will have no clue how to use: +_shooterMan = gunner _vehicle; +if (!([_shooterMan] call EFUNC(common,isPlayer))) exitWith {false}; + //Hack Until these are intergrated: if (isNil QEGVAR(weather,currentRelativeDensity)) then { @@ -38,6 +42,7 @@ if (isNil QEGVAR(weather,currentTemperature)) then { EGVAR(weather,currentTemperature) = 20; }; + //powder effects: _temperature = EGVAR(weather,currentTemperature); _newMuzzleVelocityCoefficent = (((_temperature + 273.13) / 288.13 - 1) / 40 + 1); @@ -71,17 +76,12 @@ if (_newMuzzleVelocityCoefficent != 1) then { _trueVelocity = _bulletVelocity vectorDiff ACE_wind; _trueSpeed = vectorMagnitude _trueVelocity; - // _dragRef = _deltaT * _airFriction * _bulletSpeed * _bulletSpeed; - // _accelRef = (vectorNormalized _bulletVelocity) vectorMultiply (_dragRef); - // _bulletVelocity = _bulletVelocity vectorDiff _accelRef; - _drag = _deltaT * _airFriction * _trueSpeed * EGVAR(weather,currentRelativeDensity); _accel = _trueVelocity vectorMultiply (_drag); _bulletVelocity = _bulletVelocity vectorAdd _accel; }; _shell setVelocity _bulletVelocity; - // TODO expand with advanced ballistics functionality. }, 0, [_projectile, MK6_82mm_AIR_FRICTION, time]] call CBA_fnc_addPerFrameHandler; // }; diff --git a/addons/mk6mortar/functions/fnc_handlePlayerVehicleChanged.sqf b/addons/mk6mortar/functions/fnc_handlePlayerVehicleChanged.sqf index 6faeeaf415..705105eed5 100644 --- a/addons/mk6mortar/functions/fnc_handlePlayerVehicleChanged.sqf +++ b/addons/mk6mortar/functions/fnc_handlePlayerVehicleChanged.sqf @@ -1,10 +1,13 @@ /* * Author: PabstMirror - * + * Handles player getting into new vehicle. Loads PFEG for mortar display if it is a mortar. * * Arguments: + * 0:Player + * 1: New Vehicle * * Return Value: + * No * * Example: * @@ -17,8 +20,6 @@ PARAMS_2(_player,_newVehicle); if (isNull _newVehicle) exitWith {}; if (!(_newVehicle isKindOf "Mortar_01_base_F")) exitWith {}; - - _chargeText = (findDisplay 46) ctrlCreate ["RscStructuredText", 80085]; _xPos = (profilenamespace getvariable ["IGUI_GRID_WEAPON_X", ((safezoneX + safezoneW) - (12.4 * (((safezoneW / safezoneH) min 1.2) / 40)) - 0.5 * (((safezoneW / safezoneH) min 1.2) / 40))]); @@ -42,7 +43,7 @@ _fireModes = getArray (configFile >> "CfgWeapons" >> _tubeWeaponName >> "modes") } else { _useMils = _mortarVeh getVariable [QGVAR(useMils), true]; - + //Compute: 'charge' from weaponstate _currentFireMode = (weaponState [_mortarVeh, [0]]) select 2; _currentChargeMode = _fireModes find _currentFireMode; diff --git a/addons/mk6mortar/functions/fnc_moduleInit.sqf b/addons/mk6mortar/functions/fnc_moduleInit.sqf index e760e443a2..c7301c074b 100644 --- a/addons/mk6mortar/functions/fnc_moduleInit.sqf +++ b/addons/mk6mortar/functions/fnc_moduleInit.sqf @@ -1,6 +1,6 @@ /* * Author: PabstMirror - * + * Loads settings from the module. * * Arguments: * 0: The Module Logic Object @@ -11,7 +11,7 @@ * None * * Example: - * + * * * Public: No */ diff --git a/addons/mk6mortar/functions/fnc_rangeTableOpen.sqf b/addons/mk6mortar/functions/fnc_rangeTableOpen.sqf index e3dbcffd1d..5ad6736e84 100644 --- a/addons/mk6mortar/functions/fnc_rangeTableOpen.sqf +++ b/addons/mk6mortar/functions/fnc_rangeTableOpen.sqf @@ -1,16 +1,21 @@ /* * Author: PabstMirror + * Opens the rangetable and fills the charge listbox. * * Arguments: + * No + * * Return Value: + * No * * Example: * + * * Public: No */ #include "script_component.hpp" -#define LIST_CHARGE ((uiNamespace getVariable "ACE_82mm_RangeTable_Dialog") displayCtrl 1501) +#define LIST_CHARGE ((uiNamespace getVariable "ACE_82mm_RangeTable_Dialog") displayCtrl 1501) _weaponName = "mortar_82mm"; diff --git a/addons/mk6mortar/functions/fnc_rangeTablePageChange.sqf b/addons/mk6mortar/functions/fnc_rangeTablePageChange.sqf index c7f740ba15..eb28b80e6f 100644 --- a/addons/mk6mortar/functions/fnc_rangeTablePageChange.sqf +++ b/addons/mk6mortar/functions/fnc_rangeTablePageChange.sqf @@ -1,13 +1,16 @@ /* * Author: PabstMirror - * + * Called when listbox selection changes. Updates the rangetable with new values. * * Arguments: + * No * * Return Value: + * No * * Example: * + * * Public: No */ #include "script_component.hpp" diff --git a/addons/mk6mortar/functions/fnc_rangeTablePreCalculatedValues.sqf b/addons/mk6mortar/functions/fnc_rangeTablePreCalculatedValues.sqf index e836018b2e..5c8489941f 100644 --- a/addons/mk6mortar/functions/fnc_rangeTablePreCalculatedValues.sqf +++ b/addons/mk6mortar/functions/fnc_rangeTablePreCalculatedValues.sqf @@ -1,14 +1,17 @@ /* * Author: PabstMirror -Simple Lookup Table for various muzzle velocities and air frictions. -Use ACE_Artillery_fnc_dev_buildTable to build + * Simple Lookup Table for various muzzle velocities and air frictions. + * Use ace_mk6mortar_fnc_dev_buildTable to build * * Arguments: - * 0: NUMBER - Muzzle Velocity -1: NUMBER - Air Friction + * 0: Muzzle Velocity + * 1: Air Friction + * * Return Value: + * * * Example: + * * * Public: No */ diff --git a/addons/mk6mortar/functions/fnc_toggleMils.sqf b/addons/mk6mortar/functions/fnc_toggleMils.sqf index 98714836fc..923a553f43 100644 --- a/addons/mk6mortar/functions/fnc_toggleMils.sqf +++ b/addons/mk6mortar/functions/fnc_toggleMils.sqf @@ -1,12 +1,16 @@ /* * Author: PabstMirror - * + * Toggles the mortart to show mils or degrees * * Arguments: + * 0: Vehicle + * 1: Player * * Return Value: + * No * * Example: + * [mortar,bob] call ace_mk6mortar_fnc_toggleMils; * * Public: No */ diff --git a/addons/mk6mortar/functions/fnc_turretDisplayLoaded.sqf b/addons/mk6mortar/functions/fnc_turretDisplayLoaded.sqf index 860dea069a..dcce66f089 100644 --- a/addons/mk6mortar/functions/fnc_turretDisplayLoaded.sqf +++ b/addons/mk6mortar/functions/fnc_turretDisplayLoaded.sqf @@ -1,10 +1,12 @@ /* * Author: PabstMirror - * + * Called when the mk6's in game UI is loaded. Hides rangefinder data if it is disabled. * * Arguments: + * None * * Return Value: + * None * * Example: * @@ -12,7 +14,6 @@ */ #include "script_component.hpp" - #define CTRL_CA_OPTICSPITCH (configFile >> "RscInGameUI" >> "ACE_Mk6_RscWeaponRangeArtillery" >> "CA_IGUI_elements_group" >> "controls" >> "CA_OPTICSPITCH") #define CTRL_CA_OPTICSZOOM (configFile >> "RscInGameUI" >> "ACE_Mk6_RscWeaponRangeArtillery" >> "CA_IGUI_elements_group" >> "controls" >> "CA_OPTICSZOOM") #define CTRL_CA_SOLUTION_TEXT (configFile >> "RscInGameUI" >> "ACE_Mk6_RscWeaponRangeArtillery" >> "CA_IGUI_elements_group" >> "controls" >> "CA_SOLUTION_TEXT") @@ -27,7 +28,6 @@ #define CTRL_CA_ELEV (configFile >> "RscInGameUI" >> "ACE_Mk6_RscWeaponRangeArtillery" >> "CA_IGUI_elements_group" >> "controls" >> "CA_ELEV") #define CTRL_CA_ELEV_NEED (configFile >> "RscInGameUI" >> "ACE_Mk6_RscWeaponRangeArtillery" >> "CA_IGUI_elements_group" >> "controls" >> "CA_ELEV_NEED") - disableSerialization; // PARAMS_1(_display); From 2ada87e3ac09e4a2ae3db6a5257a60e349ee436e Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Sun, 5 Apr 2015 18:05:23 -0500 Subject: [PATCH 014/256] Rangetable Item --- addons/mk6mortar/CfgVehicles.hpp | 4 ++-- addons/mk6mortar/CfgWeapons.hpp | 12 +++++++++++ addons/mk6mortar/XEH_preInit.sqf | 1 + addons/mk6mortar/config.cpp | 2 +- .../functions/fnc_rangeTableCanUse.sqf | 21 +++++++++++++++++++ 5 files changed, 37 insertions(+), 3 deletions(-) create mode 100644 addons/mk6mortar/functions/fnc_rangeTableCanUse.sqf diff --git a/addons/mk6mortar/CfgVehicles.hpp b/addons/mk6mortar/CfgVehicles.hpp index 7c39aeafdd..b7d6ed9365 100644 --- a/addons/mk6mortar/CfgVehicles.hpp +++ b/addons/mk6mortar/CfgVehicles.hpp @@ -5,8 +5,8 @@ class CfgVehicles { class ACE_Equipment { class GVAR(rangetable) { displayName = "Open 82mm Rangetable"; - condition = QUOTE(true); - statement = QUOTE(call FUNC(rangeTableOpen)); + condition = QUOTE(_this call FUNC(rangeTableCanUse)); + statement = QUOTE(_this call FUNC(rangeTableOpen)); priority = 0; icon = QUOTE(PATHTOF(UI\icon_rangeTable.paa)); }; diff --git a/addons/mk6mortar/CfgWeapons.hpp b/addons/mk6mortar/CfgWeapons.hpp index 9d03783519..f628fe1717 100644 --- a/addons/mk6mortar/CfgWeapons.hpp +++ b/addons/mk6mortar/CfgWeapons.hpp @@ -1,3 +1,15 @@ class CfgWeapons { + class ACE_ItemCore; + class InventoryItem_Base_F; + class ACE_RangeTable_82mm: ACE_ItemCore { + author = "$STR_ACE_Common_ACETeam"; + scope = 2; + displayName = "82mm Rangetable"; + descriptionShort = "82mm Rangetable D"; + picture = QUOTE(PATHTOF(UI\icon_rangeTable.paa)); + class ItemInfo: InventoryItem_Base_F { + mass = 0.5; + }; + }; }; diff --git a/addons/mk6mortar/XEH_preInit.sqf b/addons/mk6mortar/XEH_preInit.sqf index a60fcb9ce6..9af89ccb35 100644 --- a/addons/mk6mortar/XEH_preInit.sqf +++ b/addons/mk6mortar/XEH_preInit.sqf @@ -11,6 +11,7 @@ PREP(dev_simulateShot); PREP(handleFired); PREP(handlePlayerVehicleChanged); PREP(moduleInit); +PREP(rangeTableCanUse); PREP(rangeTableOpen); PREP(rangeTablePageChange); PREP(rangeTablePreCalculatedValues); diff --git a/addons/mk6mortar/config.cpp b/addons/mk6mortar/config.cpp index b39b036416..a6e63c819b 100644 --- a/addons/mk6mortar/config.cpp +++ b/addons/mk6mortar/config.cpp @@ -3,7 +3,7 @@ class CfgPatches { class ADDON { units[] = {}; - weapons[] = {}; + weapons[] = {"ACE_RangeTable_82mm"}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_interaction"}; author[] = {"PabstMirror"}; diff --git a/addons/mk6mortar/functions/fnc_rangeTableCanUse.sqf b/addons/mk6mortar/functions/fnc_rangeTableCanUse.sqf new file mode 100644 index 0000000000..04ca9c3278 --- /dev/null +++ b/addons/mk6mortar/functions/fnc_rangeTableCanUse.sqf @@ -0,0 +1,21 @@ +/* + * Author: PabstMirror + * Can player open 82mm rangetable. + * + * Arguments: + * 0: Vehicle + * 1: Player + * + * Return Value: + * Can Open + * + * Example: + * [bob, bob] call ace_mk6mortar_fnc_rangeTableCanUse + * + * Public: No + */ +#include "script_component.hpp" + +PARAMS_2(_vehicle,_player); + +"ACE_RangeTable_82mm" in (items _player); \ No newline at end of file From d295ee6980914360bcd8e38ed19514461150616a Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Mon, 6 Apr 2015 01:05:28 -0500 Subject: [PATCH 015/256] Localization / Headers --- addons/mk6mortar/CfgEventHandlers.hpp | 7 ++ addons/mk6mortar/CfgVehicles.hpp | 3 +- addons/mk6mortar/CfgWeapons.hpp | 4 +- .../functions/fnc_dev_buildTable.sqf | 89 +++++++++---------- .../functions/fnc_dev_formatNumber.sqf | 76 ++++++++-------- .../fnc_dev_simulateFindSolution.sqf | 57 ++++++------ .../functions/fnc_dev_simulateShot.sqf | 63 ++++++------- .../mk6mortar/functions/fnc_handleFired.sqf | 28 +++--- .../fnc_handlePlayerVehicleChanged.sqf | 28 +++--- addons/mk6mortar/functions/fnc_moduleInit.sqf | 2 +- .../functions/fnc_rangeTableOpen.sqf | 4 +- .../functions/fnc_rangeTablePageChange.sqf | 2 +- .../fnc_rangeTablePreCalculatedValues.sqf | 2 +- .../functions/fnc_turretDisplayLoaded.sqf | 3 +- addons/mk6mortar/stringtable.xml | 15 +++- 15 files changed, 200 insertions(+), 183 deletions(-) diff --git a/addons/mk6mortar/CfgEventHandlers.hpp b/addons/mk6mortar/CfgEventHandlers.hpp index 3daad1425a..34c6ecc22c 100644 --- a/addons/mk6mortar/CfgEventHandlers.hpp +++ b/addons/mk6mortar/CfgEventHandlers.hpp @@ -8,3 +8,10 @@ class Extended_PostInit_EventHandlers { clientInit = QUOTE( call COMPILE_FILE(XEH_clientInit) ); }; }; +class Extended_FiredBIS_EventHandlers { + class Mortar_01_base_F { + class ADDON { + firedBIS = QUOTE(_this call FUNC(handleFired)); + }; + }; +}; diff --git a/addons/mk6mortar/CfgVehicles.hpp b/addons/mk6mortar/CfgVehicles.hpp index b7d6ed9365..a40cc68efb 100644 --- a/addons/mk6mortar/CfgVehicles.hpp +++ b/addons/mk6mortar/CfgVehicles.hpp @@ -4,11 +4,12 @@ class CfgVehicles { class ACE_SelfActions { class ACE_Equipment { class GVAR(rangetable) { - displayName = "Open 82mm Rangetable"; + displayName = "$STR_ACE_MK6MORTAR_rangetable_action"; condition = QUOTE(_this call FUNC(rangeTableCanUse)); statement = QUOTE(_this call FUNC(rangeTableOpen)); priority = 0; icon = QUOTE(PATHTOF(UI\icon_rangeTable.paa)); + exceptions[] = {"notOnMap", "isNotInside"}; }; }; }; diff --git a/addons/mk6mortar/CfgWeapons.hpp b/addons/mk6mortar/CfgWeapons.hpp index f628fe1717..7d5153e9ad 100644 --- a/addons/mk6mortar/CfgWeapons.hpp +++ b/addons/mk6mortar/CfgWeapons.hpp @@ -5,8 +5,8 @@ class CfgWeapons { class ACE_RangeTable_82mm: ACE_ItemCore { author = "$STR_ACE_Common_ACETeam"; scope = 2; - displayName = "82mm Rangetable"; - descriptionShort = "82mm Rangetable D"; + displayName = "$STR_ACE_MK6MORTAR_rangetable_name"; + descriptionShort = "$STR_ACE_MK6MORTAR_rangetable_description"; picture = QUOTE(PATHTOF(UI\icon_rangeTable.paa)); class ItemInfo: InventoryItem_Base_F { mass = 0.5; diff --git a/addons/mk6mortar/functions/fnc_dev_buildTable.sqf b/addons/mk6mortar/functions/fnc_dev_buildTable.sqf index d36aa61819..b659cd1512 100644 --- a/addons/mk6mortar/functions/fnc_dev_buildTable.sqf +++ b/addons/mk6mortar/functions/fnc_dev_buildTable.sqf @@ -1,24 +1,23 @@ /* -Name: AGM_Artillery_fnc_dev_buildTable - -Author: Pabst Mirror - -Description: - DEV function to build mortar tables, very cpu intensive (never used durring normal gameplay) - -Parameters: (normal BIS "Fired" EH stuff) - 0: NUMBER - Muzzle Velocity - 1: NUMBER - Air Friction - -Returns: - Data in clipboard - -Example: - [100, -0.0001] spawn AGM_Artillery_fnc_dev_buildTable; //spawn (scheduled) is slower - [100, -0.0001] call AGM_Artillery_fnc_dev_buildTable; //faster, but will lock while processing -*/ + * Author: PabstMirror + * DEV function to build mortar tables, very cpu intensive (never used durring normal gameplay) + * + * Arguments: + * 0: Muzzle Velocity + * 1: Air Friction + * + * Return Value: + * + * + * Example: + * [100, -0.0001] spawn ace_mk6mortar_fnc_dev_buildTable; //spawn (scheduled) is slower + * [100, -0.0001] call ace_mk6mortar_fnc_dev_buildTable; //faster, but will lock while processing + * + * Public: No + */ #include "script_component.hpp" + private ["_muzzleVelocity", "_airFriction", "_stillInRange", "_currentRange", "_increasePerRow", "_outputArray", "_rangeToHit", "_lineElevation", "_lineHeightElevation", "_lineTimeOfFlight", "_lineCrosswindDeg", "_lineHeadwindMeters", "_lineTailWindMeters", "_lineTempDec", "_lineTempInc", "_lineAirDensDec", "_lineAirDensInc", "_result", "_outputString"]; _muzzleVelocity = _this select 0; @@ -32,28 +31,28 @@ _outputArray = []; //[_rangeToHit, _lineElevation, _lineHeightElevation, _lineTimeOfFlight, _lineCrosswindDeg, _lineHeadwindMeters, _lineTailWindMeters, _lineTempDec, _lineTempInc, _lineAirDensDec, _lineAirDensInc] while {_stillInRange} do { - _result = [_muzzleVelocity, _currentRange, _airFriction] call FUNC(dev_simulateCalcRangeTableLine); - if (_result isEqualTo []) then { - _stillInRange = false; - } else { - if ((_result select 1) < 86) then { - _outputArray pushBack [ - ([(_result select 0), "meters", false] call FUNC(dev_formatNumber)), - ([(_result select 1), "mil", true] call FUNC(dev_formatNumber)), - ([(_result select 2), "mil", true] call FUNC(dev_formatNumber)), - ([(_result select 3), "sec", false] call FUNC(dev_formatNumber)), - ([(_result select 4), "milPrecise", true] call FUNC(dev_formatNumber)), - ([(_result select 5), "metersprecise", false] call FUNC(dev_formatNumber)), - ([(_result select 6), "metersprecise", false] call FUNC(dev_formatNumber)), - ([(_result select 7), "metersprecise", false] call FUNC(dev_formatNumber)), - ([(_result select 8), "metersprecise", false] call FUNC(dev_formatNumber)), - ([(_result select 9), "metersprecise", false] call FUNC(dev_formatNumber)), - ([(_result select 10), "metersprecise", false] call FUNC(dev_formatNumber)) - ]; + _result = [_muzzleVelocity, _currentRange, _airFriction] call FUNC(dev_simulateCalcRangeTableLine); + if (_result isEqualTo []) then { + _stillInRange = false; + } else { + if ((_result select 1) < 86) then { + _outputArray pushBack [ + ([(_result select 0), "meters", false] call FUNC(dev_formatNumber)), + ([(_result select 1), "mil", true] call FUNC(dev_formatNumber)), + ([(_result select 2), "mil", true] call FUNC(dev_formatNumber)), + ([(_result select 3), "sec", false] call FUNC(dev_formatNumber)), + ([(_result select 4), "milPrecise", true] call FUNC(dev_formatNumber)), + ([(_result select 5), "metersprecise", false] call FUNC(dev_formatNumber)), + ([(_result select 6), "metersprecise", false] call FUNC(dev_formatNumber)), + ([(_result select 7), "metersprecise", false] call FUNC(dev_formatNumber)), + ([(_result select 8), "metersprecise", false] call FUNC(dev_formatNumber)), + ([(_result select 9), "metersprecise", false] call FUNC(dev_formatNumber)), + ([(_result select 10), "metersprecise", false] call FUNC(dev_formatNumber)) + ]; + }; + _currentRange = _currentRange + _increasePerRow; }; - _currentRange = _currentRange + _increasePerRow; - }; - hint str _currentRange; + hintSilent str _currentRange; }; //handle floating point rounding errors @@ -62,14 +61,14 @@ _outputString = format ["case ((abs(_muzzleVelocity - %1) < 0.00001) && ((abs(_a ", _muzzleVelocity, _airFriction]; { - if (_forEachIndex < ((count _outputArray) - 1)) then { - _outputString = _outputString + format ["%1, + if (_forEachIndex < ((count _outputArray) - 1)) then { + _outputString = _outputString + format ["%1, ", _x]; - } else { - _outputString = _outputString + format ["%1 - ] + } else { + _outputString = _outputString + format ["%1 + ] };", _x]; - }; + }; } forEach _outputArray; copyToClipboard _outputString; diff --git a/addons/mk6mortar/functions/fnc_dev_formatNumber.sqf b/addons/mk6mortar/functions/fnc_dev_formatNumber.sqf index 47e9fc7fbf..a8ad155eec 100644 --- a/addons/mk6mortar/functions/fnc_dev_formatNumber.sqf +++ b/addons/mk6mortar/functions/fnc_dev_formatNumber.sqf @@ -4,19 +4,19 @@ Name: AGM_Artillery_fnc_formatNumber Author: Pabst Mirror Description: - Converts numbers into nicely formated strings. +Converts numbers into nicely formated strings. Parameters: - 0: NUMBER - Input number - 1: STRING - Output type (see case statement) - 2: BOOL - If output type is mil, convert input type from deg->mil +0: NUMBER - Input number +1: STRING - Output type (see case statement) +2: BOOL - If output type is mil, convert input type from deg->mil Returns: - STRING - Formatted number +STRING - Formatted number Example: - [45, "mil4", true] call AGM_Artillery_fnc_formatNumber = "0800" -*/ +[45, "mil4", true] call AGM_Artillery_fnc_formatNumber = "0800" + */ #include "script_component.hpp" private ["_theNumber", "_inputType", "_convertToMils", "_decimalPlaces", "_integerPlaces", "_prefix", "_return"]; @@ -30,47 +30,47 @@ _integerPlaces = -1; switch (toLower _inputType) do { case ("meters"): { - _decimalPlaces = 0; - _integerPlaces = 1; - }; + _decimalPlaces = 0; + _integerPlaces = 1; + }; case ("metersprecise"): { - _decimalPlaces = 1; - _integerPlaces = 1; - }; + _decimalPlaces = 1; + _integerPlaces = 1; + }; case ("meters4"): { - _decimalPlaces = 0; - _integerPlaces = 4; - }; + _decimalPlaces = 0; + _integerPlaces = 4; + }; case ("deg3precise"): { - _decimalPlaces = 2; - _integerPlaces = 3; - }; + _decimalPlaces = 2; + _integerPlaces = 3; + }; case ("mil"): { - _decimalPlaces = 0; - _integerPlaces = 1; - if (_convertToMils) then { - _theNumber = _theNumber * (6400 / 360); + _decimalPlaces = 0; + _integerPlaces = 1; + if (_convertToMils) then { + _theNumber = _theNumber * (6400 / 360); + }; }; - }; case ("mil4"): { - _decimalPlaces = 0; - _integerPlaces = 4; - if (_convertToMils) then { - _theNumber = _theNumber * (6400 / 360); + _decimalPlaces = 0; + _integerPlaces = 4; + if (_convertToMils) then { + _theNumber = _theNumber * (6400 / 360); + }; }; - }; case ("milprecise"): { - _decimalPlaces = 1; - _integerPlaces = 1; - if (_convertToMils) then { - _theNumber = _theNumber * (6400 / 360); + _decimalPlaces = 1; + _integerPlaces = 1; + if (_convertToMils) then { + _theNumber = _theNumber * (6400 / 360); + }; }; - }; case ("sec"): { - _decimalPlaces = 1; - _integerPlaces = 1; - }; - default {systemChat format ["badtype %1", _inputType];}; + _decimalPlaces = 1; + _integerPlaces = 1; + }; + default {systemChat format ["badtype %1", _inputType];}; }; diff --git a/addons/mk6mortar/functions/fnc_dev_simulateFindSolution.sqf b/addons/mk6mortar/functions/fnc_dev_simulateFindSolution.sqf index ddeab4015f..29a44e3a51 100644 --- a/addons/mk6mortar/functions/fnc_dev_simulateFindSolution.sqf +++ b/addons/mk6mortar/functions/fnc_dev_simulateFindSolution.sqf @@ -1,26 +1,25 @@ /* -Name: FUNC(simulateFindSolution) - -Author: Pabst Mirror - -Description: - Converts numbers into nicely formated strings. - -Parameters: - 0: NUMBER - Range to Hit (Meters) - 1: NUMBER - Height To Hit (Meters) - 2: NUMBER - Muzzle Velocity (M/S) - 3: NUMBER - Air Friction - 4: NUMBER - Time Step (seconds) (eg 1/50 will simulate 50 cycles per second) - -Returns: - ARRAY - [NUMBER - Elevation In Degrees, NUMBER - Shot Durration] - -Example: - [_rangeToHit, _heightToHit, _muzzleVelocity, _airFriction, TIME_STEP] call FUNC(simulateFindSolution); -*/ + * Author: PabstMirror + * DEV to find a firing solution for a given range + * + * Arguments: + * 0: Range to Hit (Meters) + * 1: Height To Hit (Meters) + * 2: Muzzle Velocity (M/S) + * 3: Air Friction + * 4: Time Step (seconds) (eg 1/50 will simulate 50 cycles per second) + * + * Return Value: + * ARRAY - [NUMBER - Elevation In Degrees, NUMBER - Shot Durration] + * + * Example: + * [_rangeToHit, _heightToHit, _muzzleVelocity, _airFriction, TIME_STEP] call FUNC(simulateFindSolution); + * + * Public: No + */ #include "script_component.hpp" + private ["_rangeToHit", "_heightToHit", "_muzzleVelocity", "_airFriction", "_maxElev", "_minElev", "_error", "_solutionElevation", "_lastTestResult", "_numberOfAttempts"]; #define MAX_ATTEMPTS 22 @@ -41,15 +40,15 @@ _numberOfAttempts = 0; //(binary search) while {(_numberOfAttempts < MAX_ATTEMPTS) && ((abs _error) > 0.2)} do { - _numberOfAttempts = _numberOfAttempts + 1; - _solutionElevation = (_maxElev + _minElev) / 2; - _lastTestResult = [_solutionElevation, _muzzleVelocity, _airFriction, 15, 1, 0, 0, _heightToHit, _timeStep] call FUNC(dev_simulateShot); - _error = _rangeToHit - (_lastTestResult select 0); - if (_error > 0) then { - _maxElev = _solutionElevation; //test range was short - } else { - _minElev = _solutionElevation; //test range was long - }; + _numberOfAttempts = _numberOfAttempts + 1; + _solutionElevation = (_maxElev + _minElev) / 2; + _lastTestResult = [_solutionElevation, _muzzleVelocity, _airFriction, 15, 1, 0, 0, _heightToHit, _timeStep] call FUNC(dev_simulateShot); + _error = _rangeToHit - (_lastTestResult select 0); + if (_error > 0) then { + _maxElev = _solutionElevation; //test range was short + } else { + _minElev = _solutionElevation; //test range was long + }; }; if (_numberOfAttempts >= MAX_ATTEMPTS) exitWith {[]}; diff --git a/addons/mk6mortar/functions/fnc_dev_simulateShot.sqf b/addons/mk6mortar/functions/fnc_dev_simulateShot.sqf index 42ceef21fd..de8471726c 100644 --- a/addons/mk6mortar/functions/fnc_dev_simulateShot.sqf +++ b/addons/mk6mortar/functions/fnc_dev_simulateShot.sqf @@ -1,31 +1,26 @@ /* -Name: simulateShot - -Author: Pabst Mirror - -Description: - Simulates the path of a fired shell. - -Parameters: - 0: NUMBER - Shot Angle (degrees) - 1: NUMBER - Muzzle Velocity (m/s) - 2: NUMBER - Air Friction - 3: NUMBER - Tempeture (degres celcius) - 4: NUMBER - Relative Air Denisty - 5: NUMBER - Tail Wind (m/s) - 6: NUMBER - Cross Wind (m/s) - 7: NUMBER - Height Of Target (M) - 8: NUMBER - Time Step (fraction of a second) - -Returns: - ARRAY - - NUMBER - Distance Traveld - NUMBER - Shot Time - NUMBER - Offset (degrees) - -Example: - [45, 180, -0.0001, 15, 1, 10, 0, 0, 1/50] call simulateShot; -*/ + * Author: PabstMirror + * DEV function to build mortar tables, very cpu intensive (never used durring normal gameplay) + * + * Arguments: + * 0: Shot Angle (degrees) + * 1: Muzzle Velocity (m/s) + * 2: Air Friction + * 3: Tempeture (degres celcius) + * 4: Relative Air Denisty + * 5: Tail Wind (m/s) + * 6: Cross Wind (m/s) + * 7: Height Of Target (M) + * 8: Time Step (fraction of a second) + * + * Return Value: + * [Distance Traveled, Shot Time, Offset (degrees)] + * + * Example: + * [45, 180, -0.0001, 15, 1, 10, 0, 0, 1/50] call ace_mk6mortar_fnc_dev_simulateShot; + * + * Public: No + */ #include "script_component.hpp" private ["_angleDeg", "_muzzleVelocity", "_airFriction", "_temp", "_relDensity", "_tailWind", "_crosswind", "_heightOfTarget", "_wind", "_gravity", "_timeStep", "_currentPos", "_currentVelocity", "_currentTime", "_lastPos", "_kCoefficent", "_aparentWind", "_changeInVelocity", "_linConversion", "_middlePos", "_middlePosOld", "_middleTotalTravelTime", "_offsetDeg"]; @@ -53,15 +48,15 @@ _lastPos = _currentPos; _kCoefficent = -1 * _relDensity * _airFriction; //save time in the loop and compute once while {((_currentVelocity select 2) > 0) || ((_currentPos select 2) >= _heightOfTarget)} do { - _lastPos = _currentPos; + _lastPos = _currentPos; - _aparentWind = _wind vectorDiff _currentVelocity; - _changeInVelocity = _gravity vectorAdd (_aparentWind vectorMultiply ((vectorMagnitude _aparentWind) * _kCoefficent)); + _aparentWind = _wind vectorDiff _currentVelocity; + _changeInVelocity = _gravity vectorAdd (_aparentWind vectorMultiply ((vectorMagnitude _aparentWind) * _kCoefficent)); - _currentVelocity = _currentVelocity vectorAdd (_changeInVelocity vectorMultiply _timeStep); + _currentVelocity = _currentVelocity vectorAdd (_changeInVelocity vectorMultiply _timeStep); - _currentPos = _currentPos vectorAdd (_currentVelocity vectorMultiply _timeStep); - _currentTime = _currentTime + _timeStep; + _currentPos = _currentPos vectorAdd (_currentVelocity vectorMultiply _timeStep); + _currentTime = _currentTime + _timeStep; }; //Uses linearConversion to get a weighted average betwen points before and after dropping below target height @@ -73,6 +68,6 @@ _middlePos = (_lastPos vectorMultiply (1 - _linConversion)) vectorAdd (_currentP _middleTotalTravelTime = _currentTime - (_timeStep * (1-_linConversion)); //Find shot offset (from crosswind), in degrees - _offsetDeg = (_middlePos select 0) aTan2 (_middlePos select 1); +_offsetDeg = (_middlePos select 0) aTan2 (_middlePos select 1); [(_middlePos select 1), _middleTotalTravelTime, _offsetDeg] diff --git a/addons/mk6mortar/functions/fnc_handleFired.sqf b/addons/mk6mortar/functions/fnc_handleFired.sqf index 679b689d6d..555abcbe6f 100644 --- a/addons/mk6mortar/functions/fnc_handleFired.sqf +++ b/addons/mk6mortar/functions/fnc_handleFired.sqf @@ -15,7 +15,7 @@ * Nothing * * Example: - * [clientFiredBIS-XEH] call ace_mk6mortars_fnc_handleFired + * [clientFiredBIS-XEH] call ace_mk6mortar_fnc_handleFired * * Public: No */ @@ -26,27 +26,29 @@ disableSerialization; PARAMS_7(_vehicle,_weapon,_muzzle,_mode,_ammo,_magazine,_projectile); if (!GVAR(airResistanceEnabled)) exitWith {}; - -if (_unit distance ACE_player > 3000) exitWith {false}; // Large enough distance to not simulate any wind deflection. +// Large enough distance to not simulate any wind deflection +if (_unit distance ACE_player > 8000) exitWith {false}; //AI will have no clue how to use: _shooterMan = gunner _vehicle; if (!([_shooterMan] call EFUNC(common,isPlayer))) exitWith {false}; +//Should be zero, just make sure: +_bisAirFriction = getNumber (configFile >> "CfgAmmo" >> _ammo >> "airFriction"); +if (_bisAirFriction != 0) exitWith {ERROR("Non zero base airFriction");}; //Hack Until these are intergrated: if (isNil QEGVAR(weather,currentRelativeDensity)) then { EGVAR(weather,currentRelativeDensity) = 1; }; if (isNil QEGVAR(weather,currentTemperature)) then { - EGVAR(weather,currentTemperature) = 20; + EGVAR(weather,currentTemperature) = 15; }; //powder effects: _temperature = EGVAR(weather,currentTemperature); _newMuzzleVelocityCoefficent = (((_temperature + 273.13) / 288.13 - 1) / 40 + 1); -systemChat str _newMuzzleVelocityCoefficent; if (_newMuzzleVelocityCoefficent != 1) then { _bulletVelocity = velocity _projectile; _bulletSpeed = vectorMagnitude _bulletVelocity; @@ -55,8 +57,8 @@ if (_newMuzzleVelocityCoefficent != 1) then { _muzzleVelocity = _muzzleVelocity + _muzzleVelocityShift; }; +systemChat format ["PFEH for %1", _ammo]; -// if (_bullet isKindOf "BulletBase") then { [{ private ["_deltaT", "_bulletVelocity", "_bulletSpeed", "_trueVelocity", "_trueSpeed", "_dragRef", "_accelRef", "_drag", "_accel"]; PARAMS_2(_args,_pfID); @@ -72,17 +74,13 @@ if (_newMuzzleVelocityCoefficent != 1) then { _bulletVelocity = velocity _shell; _bulletSpeed = vectorMagnitude _bulletVelocity; - if (vectorMagnitude ACE_wind > 0) then { - _trueVelocity = _bulletVelocity vectorDiff ACE_wind; - _trueSpeed = vectorMagnitude _trueVelocity; + _trueVelocity = _bulletVelocity vectorDiff ACE_wind; + _trueSpeed = vectorMagnitude _trueVelocity; - _drag = _deltaT * _airFriction * _trueSpeed * EGVAR(weather,currentRelativeDensity); - _accel = _trueVelocity vectorMultiply (_drag); + _drag = _deltaT * _airFriction * _trueSpeed * EGVAR(weather,currentRelativeDensity); + _accel = _trueVelocity vectorMultiply (_drag); + _bulletVelocity = _bulletVelocity vectorAdd _accel; - _bulletVelocity = _bulletVelocity vectorAdd _accel; - }; _shell setVelocity _bulletVelocity; }, 0, [_projectile, MK6_82mm_AIR_FRICTION, time]] call CBA_fnc_addPerFrameHandler; -// }; - diff --git a/addons/mk6mortar/functions/fnc_handlePlayerVehicleChanged.sqf b/addons/mk6mortar/functions/fnc_handlePlayerVehicleChanged.sqf index 705105eed5..8fa11b1cda 100644 --- a/addons/mk6mortar/functions/fnc_handlePlayerVehicleChanged.sqf +++ b/addons/mk6mortar/functions/fnc_handlePlayerVehicleChanged.sqf @@ -10,6 +10,7 @@ * No * * Example: + * [bob, mortar] call ace_mk6mortar_fnc_handlePlayerVehicleChanged; * * Public: No */ @@ -48,7 +49,7 @@ _fireModes = getArray (configFile >> "CfgWeapons" >> _tubeWeaponName >> "modes") _currentFireMode = (weaponState [_mortarVeh, [0]]) select 2; _currentChargeMode = _fireModes find _currentFireMode; - _text = format ["%1: %2 ", "Charge", _currentChargeMode, QUOTE(PATHTOF(UI\ui_charges.paa))]; + _text = format ["%1: %2 ", (localize "STR_ACE_MK6MORTAR_rangetable_charge"), _currentChargeMode, QUOTE(PATHTOF(UI\ui_charges.paa))]; _chargeText ctrlSetStructuredText parseText _text; if (shownArtilleryComputer && {!GVAR(allowComputerRangefinder)}) then { //Don't like this solution, but it works @@ -57,22 +58,29 @@ _fireModes = getArray (configFile >> "CfgWeapons" >> _tubeWeaponName >> "modes") }; _display = uiNamespace getVariable ["ACE_Mk6_RscWeaponRangeArtillery", displayNull]; - if (isNull _display) exitWith {systemChat "null";}; + if (isNull _display) exitWith {}; //It may be null for the first frame + + //Hud should hidden in 3rd person + _notGunnerView = cameraView != "GUNNER"; //Update CurrentElevation Display: - _elevDeg = parseNumber ctrlText (_display displayCtrl 175); - if (_useMils) then { - (_display displayCtrl 80175) ctrlSetText str round (_elevDeg * 6400 / 360); + if (_notGunnerView) then { + (_display displayCtrl 80175) ctrlSetText ""; } else { - (_display displayCtrl 80175) ctrlSetText str _elevDeg; + _elevDeg = parseNumber ctrlText (_display displayCtrl 175); + if (_useMils) then { + (_display displayCtrl 80175) ctrlSetText str round (_elevDeg * 6400 / 360); + } else { + (_display displayCtrl 80175) ctrlSetText str _elevDeg; + }; }; //Update ElevationNeeded Display: - if (!GVAR(allowComputerRangefinder)) then { + if (_notGunnerView || (!GVAR(allowComputerRangefinder))) then { (_display displayCtrl 80176) ctrlSetText ""; } else { _elevDeg = parseNumber ctrlText (_display displayCtrl 176); - if (_elevDeg <= 0) then { + if (_elevDeg <= 0) then { //Bad data means "----" out of range (_display displayCtrl 80176) ctrlSetText (ctrlText (_display displayCtrl 176)); } else { if (_useMils) then { @@ -84,7 +92,7 @@ _fireModes = getArray (configFile >> "CfgWeapons" >> _tubeWeaponName >> "modes") }; //Update Heading Display: - if (!GVAR(allowCompass)) then { + if (_notGunnerView || (!GVAR(allowCompass))) then { (_display displayCtrl 80156) ctrlSetText ""; } else { _rotationDegrees = ((getDir _mortarVeh) + (((-180 / PI) * (_mortarVeh animationPhase "mainTurret")) + 360)) % 360; @@ -95,4 +103,4 @@ _fireModes = getArray (configFile >> "CfgWeapons" >> _tubeWeaponName >> "modes") }; }; }; -}, 0, [_newVehicle, _chargeText,_fireModes]] call CBA_fnc_addPerFrameHandler; \ No newline at end of file +}, 0, [_newVehicle, _chargeText,_fireModes]] call CBA_fnc_addPerFrameHandler; diff --git a/addons/mk6mortar/functions/fnc_moduleInit.sqf b/addons/mk6mortar/functions/fnc_moduleInit.sqf index c7301c074b..75bab4cee9 100644 --- a/addons/mk6mortar/functions/fnc_moduleInit.sqf +++ b/addons/mk6mortar/functions/fnc_moduleInit.sqf @@ -11,7 +11,7 @@ * None * * Example: - * + * [fromModule] call ace_mk6mortar_fnc_moduleInit * * Public: No */ diff --git a/addons/mk6mortar/functions/fnc_rangeTableOpen.sqf b/addons/mk6mortar/functions/fnc_rangeTableOpen.sqf index 5ad6736e84..67d33c2727 100644 --- a/addons/mk6mortar/functions/fnc_rangeTableOpen.sqf +++ b/addons/mk6mortar/functions/fnc_rangeTableOpen.sqf @@ -9,7 +9,7 @@ * No * * Example: - * + * [] call ace_mk6mortar_fnc_rangeTableOpen * * Public: No */ @@ -38,7 +38,7 @@ _muzzleVelocities = []; _showToPlayer = getNumber (configFile >> "CfgWeapons" >> _weaponName >> _x >> "showToPlayer"); if (_showToPlayer == 1) then { _artilleryCharge = getNumber (configFile >> "CfgWeapons" >> _weaponName >> _x >> "artilleryCharge"); - LIST_CHARGE lbAdd format ["%1: %2 [%3m/s]", "Charge", (count _muzzleVelocities), (_initSpeed * _artilleryCharge)]; + LIST_CHARGE lbAdd format ["%1: %2", (localize "STR_ACE_MK6MORTAR_rangetable_charge"), (count _muzzleVelocities)]; LIST_CHARGE lbSetData [(count _muzzleVelocities), str (_artilleryCharge * _initSpeed)]; _muzzleVelocities pushBack _artilleryCharge; }; diff --git a/addons/mk6mortar/functions/fnc_rangeTablePageChange.sqf b/addons/mk6mortar/functions/fnc_rangeTablePageChange.sqf index eb28b80e6f..6846640f25 100644 --- a/addons/mk6mortar/functions/fnc_rangeTablePageChange.sqf +++ b/addons/mk6mortar/functions/fnc_rangeTablePageChange.sqf @@ -9,7 +9,7 @@ * No * * Example: - * + * [] call ace_mk6mortar_fnc_rangeTablePageChange * * Public: No */ diff --git a/addons/mk6mortar/functions/fnc_rangeTablePreCalculatedValues.sqf b/addons/mk6mortar/functions/fnc_rangeTablePreCalculatedValues.sqf index 5c8489941f..7c34b6389f 100644 --- a/addons/mk6mortar/functions/fnc_rangeTablePreCalculatedValues.sqf +++ b/addons/mk6mortar/functions/fnc_rangeTablePreCalculatedValues.sqf @@ -11,7 +11,7 @@ * * * Example: - * + * [200, 0] call ace_mk6mortar_fnc_rangeTablePreCalculatedValues * * Public: No */ diff --git a/addons/mk6mortar/functions/fnc_turretDisplayLoaded.sqf b/addons/mk6mortar/functions/fnc_turretDisplayLoaded.sqf index dcce66f089..4972265528 100644 --- a/addons/mk6mortar/functions/fnc_turretDisplayLoaded.sqf +++ b/addons/mk6mortar/functions/fnc_turretDisplayLoaded.sqf @@ -9,6 +9,7 @@ * None * * Example: + * [] call ace_mk6mortar_fnc_turretDisplayLoaded * * Public: No */ @@ -28,9 +29,9 @@ #define CTRL_CA_ELEV (configFile >> "RscInGameUI" >> "ACE_Mk6_RscWeaponRangeArtillery" >> "CA_IGUI_elements_group" >> "controls" >> "CA_ELEV") #define CTRL_CA_ELEV_NEED (configFile >> "RscInGameUI" >> "ACE_Mk6_RscWeaponRangeArtillery" >> "CA_IGUI_elements_group" >> "controls" >> "CA_ELEV_NEED") + disableSerialization; -// PARAMS_1(_display); _display = uiNamespace getVariable ["ACE_Mk6_RscWeaponRangeArtillery", displayNull]; if (isNull _display) exitWith {}; diff --git a/addons/mk6mortar/stringtable.xml b/addons/mk6mortar/stringtable.xml index d105660bcd..da61afb03b 100644 --- a/addons/mk6mortar/stringtable.xml +++ b/addons/mk6mortar/stringtable.xml @@ -1,9 +1,18 @@  - + - - Mk6 Mortar: Show Angle in MILS + + 82mm Rangetable + + + Range Table for the MK6 82mm Mortar + + + Open 82mm Rangetable + + + Charge \ No newline at end of file From b9341033d7bcd3eb422bf825726a991894d545ce Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Tue, 7 Apr 2015 19:19:08 -0500 Subject: [PATCH 016/256] Rangetable for vanilla ballistics --- addons/mk6mortar/RscRangeTable.hpp | 16 +- .../functions/fnc_dev_buildTable.sqf | 12 +- .../functions/fnc_rangeTablePageChange.sqf | 4 +- .../fnc_rangeTablePreCalculatedValues.sqf | 262 +++++++++++++----- 4 files changed, 220 insertions(+), 74 deletions(-) diff --git a/addons/mk6mortar/RscRangeTable.hpp b/addons/mk6mortar/RscRangeTable.hpp index 96516779ac..cb89b093e3 100644 --- a/addons/mk6mortar/RscRangeTable.hpp +++ b/addons/mk6mortar/RscRangeTable.hpp @@ -16,9 +16,9 @@ class ACE_82mm_RangeTable_Dialog { }; class ChargeBackground: RscText { idc = -1; - x = "13 *(safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + x = "14 *(safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; y = "1 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; - w = "5 * (safeZoneH / 40)"; + w = "4 * (safeZoneH / 40)"; h = "5 * ((safeZoneH / 1.2) / 25)"; colorBackground[] = {0,0,0,1}; }; @@ -54,16 +54,16 @@ class ACE_82mm_RangeTable_Dialog { class ChargeListBox: RscListbox { idc = 1501; style = ST_RIGHT; - x = "13 *(safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; - y = "1 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; - w = "5 * (safeZoneH / 40)"; + x = "14 *(safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "1 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "4 * (safeZoneH / 40)"; h = "5 * ((safeZoneH / 1.2) / 25)"; onLBSelChanged = QUOTE(_this call FUNC(rangeTablePageChange)); }; class CloseBackground: RscText { idc = -1; - x = "33.7634559672906 *(safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; - y = "1 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + x = "33.7634559672906 *(safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "1 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; w = "0.5 * (safeZoneH / 40)"; h = "0.5 * ((safeZoneH / 1.2) / 25)"; colorBackground[] = {0,0,0,0.5}; @@ -73,7 +73,7 @@ class ACE_82mm_RangeTable_Dialog { style = 48; color[] = {1,1,1,0.7}; text = "A3\Ui_f\data\GUI\Rsc\RscDisplayArcadeMap\icon_exit_cross_ca.paa"; - x = "33.7634559672906 *(safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + x = "33.7634559672906 *(safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; y = "1 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; w = "0.5 * (safeZoneH / 40)"; h = "0.5 * ((safeZoneH / 1.2) / 25)"; diff --git a/addons/mk6mortar/functions/fnc_dev_buildTable.sqf b/addons/mk6mortar/functions/fnc_dev_buildTable.sqf index b659cd1512..a795b96776 100644 --- a/addons/mk6mortar/functions/fnc_dev_buildTable.sqf +++ b/addons/mk6mortar/functions/fnc_dev_buildTable.sqf @@ -35,7 +35,16 @@ while {_stillInRange} do { if (_result isEqualTo []) then { _stillInRange = false; } else { - if ((_result select 1) < 86) then { + if (_airFriction == 0) then { + _result set [4, 0]; + _result set [5, 0]; + _result set [6, 0]; + _result set [7, 0]; + _result set [8, 0]; + _result set [9, 0]; + _result set [10, 0]; + }; + if ((_result select 1) < 88) then { _outputArray pushBack [ ([(_result select 0), "meters", false] call FUNC(dev_formatNumber)), ([(_result select 1), "mil", true] call FUNC(dev_formatNumber)), @@ -72,5 +81,6 @@ _outputString = format ["case ((abs(_muzzleVelocity - %1) < 0.00001) && ((abs(_a } forEach _outputArray; copyToClipboard _outputString; +rangeTableOutput = _outputString; hint "done"; \ No newline at end of file diff --git a/addons/mk6mortar/functions/fnc_rangeTablePageChange.sqf b/addons/mk6mortar/functions/fnc_rangeTablePageChange.sqf index 6846640f25..c9ee241b7a 100644 --- a/addons/mk6mortar/functions/fnc_rangeTablePageChange.sqf +++ b/addons/mk6mortar/functions/fnc_rangeTablePageChange.sqf @@ -22,7 +22,9 @@ _listBoxData = LIST_CHARGE lbData (lbCurSel LIST_CHARGE); if (isNil "_listBoxData" || {_listBoxData == ""}) exitWith {ERROR("lbCurSel out of bounds or no data");}; _muzzleVelocity = parseNumber _listBoxData; -_precalcArray = [_muzzleVelocity, MK6_82mm_AIR_FRICTION] call FUNC(rangeTablePreCalculatedValues); +_airFriction = if (GVAR(airResistanceEnabled)) then {MK6_82mm_AIR_FRICTION} else {0}; + +_precalcArray = [_muzzleVelocity, _airFriction] call FUNC(rangeTablePreCalculatedValues); lnbClear RANGE_TABLE; { diff --git a/addons/mk6mortar/functions/fnc_rangeTablePreCalculatedValues.sqf b/addons/mk6mortar/functions/fnc_rangeTablePreCalculatedValues.sqf index 7c34b6389f..6752a87542 100644 --- a/addons/mk6mortar/functions/fnc_rangeTablePreCalculatedValues.sqf +++ b/addons/mk6mortar/functions/fnc_rangeTablePreCalculatedValues.sqf @@ -26,8 +26,8 @@ case ((abs(_muzzleVelocity - 70) < 0.00001) && ((abs(_airFriction - -0.0001) < 0 ["100","1493","9","14.0","3.7","0.4","-0.3","0.0","-0.0","-0.0","0.0"], ["150","1438","14","13.9","2.5","0.4","-0.4","0.0","-0.0","-0.1","0.0"], ["200","1381","20","13.8","1.9","0.5","-0.4","0.0","-0.0","-0.1","0.1"], - ["250","1321","27","13.6","1.5","0.5","-0.4","0.1","-0.1","-0.1","0.1"], - ["300","1256","36","13.3","1.3","0.6","-0.5","0.1","-0.1","-0.1","0.1"], + ["250","1321","27","13.6","1.5","0.5","-0.4","0.0","-0.0","-0.1","0.1"], + ["300","1256","36","13.3","1.3","0.6","-0.5","0.0","-0.1","-0.1","0.1"], ["350","1183","49","12.9","1.1","0.6","-0.5","0.1","-0.1","-0.1","0.1"], ["400","1097","70","12.4","0.9","0.6","-0.5","0.1","-0.1","-0.2","0.1"], ["450","979","113","11.6","0.8","0.6","-0.5","0.1","-0.1","-0.2","0.2"] @@ -35,9 +35,9 @@ case ((abs(_muzzleVelocity - 70) < 0.00001) && ((abs(_airFriction - -0.0001) < 0 }; case ((abs(_muzzleVelocity - 140) < 0.00001) && ((abs(_airFriction - -0.0001) < 0.00001))): { [ - ["250","1527","2","27.2","9.9","2.6","-2.4","0.1","-0.0","-0.3","0.3"], - ["300","1512","2","27.2","8.3","2.7","-2.4","0.1","-0.1","-0.4","0.4"], - ["350","1497","3","27.1","7.1","2.7","-2.5","0.1","-0.1","-0.5","0.4"], + ["250","1527","2","27.2","9.9","2.6","-2.4","0.0","-0.0","-0.3","0.3"], + ["300","1512","2","27.2","8.3","2.7","-2.4","0.1","-0.0","-0.4","0.4"], + ["350","1497","3","27.1","7.1","2.7","-2.5","0.0","-0.1","-0.5","0.4"], ["400","1482","3","27.1","6.2","2.7","-2.5","0.1","-0.1","-0.5","0.5"], ["450","1467","3","27.0","5.6","2.8","-2.5","0.1","-0.1","-0.6","0.6"], ["500","1451","4","27.0","5.0","2.9","-2.6","0.1","-0.1","-0.6","0.6"], @@ -45,25 +45,25 @@ case ((abs(_muzzleVelocity - 140) < 0.00001) && ((abs(_airFriction - -0.0001) < ["600","1420","5","26.8","4.2","3.0","-2.7","0.1","-0.1","-0.8","0.8"], ["650","1404","5","26.8","3.9","3.0","-2.7","0.1","-0.1","-0.9","0.8"], ["700","1388","6","26.7","3.6","3.1","-2.8","0.1","-0.1","-0.9","0.9"], - ["750","1372","6","26.6","3.4","3.2","-2.8","0.2","-0.1","-1.0","1.0"], - ["800","1355","7","26.5","3.2","3.2","-2.9","0.2","-0.1","-1.1","1.1"], - ["850","1338","8","26.4","3.0","3.3","-2.9","0.2","-0.2","-1.1","1.1"], - ["900","1321","8","26.2","2.8","3.4","-3.0","0.2","-0.2","-1.2","1.2"], - ["950","1303","9","26.1","2.7","3.4","-3.1","0.2","-0.2","-1.3","1.2"], - ["1000","1285","10","26.0","2.6","3.5","-3.1","0.2","-0.2","-1.4","1.3"], - ["1050","1266","11","25.8","2.4","3.5","-3.2","0.2","-0.2","-1.4","1.4"], - ["1100","1247","12","25.7","2.3","3.6","-3.3","0.2","-0.2","-1.5","1.4"], + ["750","1372","6","26.6","3.4","3.2","-2.8","0.1","-0.1","-1.0","1.0"], + ["800","1355","7","26.5","3.2","3.2","-2.9","0.1","-0.1","-1.1","1.1"], + ["850","1338","8","26.4","3.0","3.3","-2.9","0.1","-0.1","-1.1","1.1"], + ["900","1321","8","26.2","2.8","3.4","-3.0","0.1","-0.1","-1.2","1.2"], + ["950","1303","9","26.1","2.7","3.4","-3.1","0.1","-0.2","-1.3","1.2"], + ["1000","1285","10","26.0","2.6","3.5","-3.1","0.2","-0.1","-1.4","1.3"], + ["1050","1266","11","25.8","2.4","3.5","-3.2","0.1","-0.2","-1.4","1.4"], + ["1100","1247","12","25.7","2.3","3.6","-3.3","0.1","-0.2","-1.5","1.4"], ["1150","1228","13","25.5","2.2","3.7","-3.3","0.2","-0.2","-1.6","1.5"], - ["1200","1207","14","25.3","2.1","3.7","-3.4","0.2","-0.3","-1.7","1.6"], - ["1250","1186","15","25.1","2.0","3.8","-3.4","0.2","-0.3","-1.7","1.7"], - ["1300","1163","17","24.8","1.9","3.8","-3.5","0.3","-0.3","-1.8","1.7"], - ["1350","1140","19","24.6","1.9","3.9","-3.5","0.3","-0.3","-1.9","1.8"], - ["1400","1115","21","24.3","1.8","3.9","-3.6","0.3","-0.3","-1.9","1.9"], - ["1450","1088","24","23.9","1.7","4.0","-3.6","0.3","-0.3","-2.0","1.9"], - ["1500","1060","27","23.6","1.6","4.0","-3.7","0.3","-0.3","-2.1","2.0"], - ["1550","1028","32","23.1","1.5","4.0","-3.7","0.3","-0.3","-2.1","2.1"], - ["1600","991","38","22.6","1.5","4.0","-3.7","0.3","-0.3","-2.2","2.1"], - ["1650","947","49","21.9","1.4","4.0","-3.7","0.3","-0.3","-2.3","2.2"], + ["1200","1207","14","25.3","2.1","3.7","-3.4","0.2","-0.2","-1.7","1.6"], + ["1250","1186","15","25.1","2.0","3.8","-3.4","0.2","-0.2","-1.7","1.7"], + ["1300","1163","17","24.8","1.9","3.8","-3.5","0.2","-0.2","-1.8","1.7"], + ["1350","1140","19","24.6","1.9","3.9","-3.5","0.2","-0.2","-1.9","1.8"], + ["1400","1115","21","24.3","1.8","3.9","-3.6","0.2","-0.2","-1.9","1.9"], + ["1450","1088","24","23.9","1.7","4.0","-3.6","0.2","-0.2","-2.0","1.9"], + ["1500","1060","27","23.6","1.6","4.0","-3.7","0.2","-0.2","-2.1","2.0"], + ["1550","1028","32","23.1","1.5","4.0","-3.7","0.2","-0.2","-2.1","2.1"], + ["1600","991","38","22.6","1.5","4.0","-3.7","0.2","-0.2","-2.2","2.1"], + ["1650","947","49","21.9","1.4","4.0","-3.7","0.2","-0.3","-2.3","2.2"], ["1700","888","71","21.0","1.3","3.9","-3.6","0.3","-0.3","-2.3","2.2"] ] }; @@ -77,52 +77,186 @@ case ((abs(_muzzleVelocity - 200) < 0.00001) && ((abs(_airFriction - -0.0001) < ["700","1485","2","37.1","8.7","6.5","-6.2","0.1","-0.1","-1.6","1.5"], ["750","1477","2","37.1","8.2","6.6","-6.2","0.1","-0.1","-1.7","1.6"], ["800","1468","2","37.0","7.7","6.7","-6.3","0.1","-0.1","-1.8","1.8"], - ["850","1460","2","37.0","7.2","6.7","-6.3","0.2","-0.1","-2.0","1.9"], - ["900","1451","2","37.0","6.8","6.8","-6.4","0.1","-0.2","-2.1","2.0"], - ["950","1443","2","36.9","6.5","6.9","-6.4","0.2","-0.2","-2.2","2.1"], - ["1000","1434","2","36.9","6.2","6.9","-6.5","0.2","-0.2","-2.3","2.2"], - ["1050","1425","2","36.8","5.9","7.0","-6.6","0.2","-0.2","-2.5","2.3"], - ["1100","1417","3","36.8","5.6","7.1","-6.6","0.2","-0.2","-2.6","2.4"], + ["850","1460","2","37.0","7.2","6.7","-6.3","0.1","-0.1","-2.0","1.9"], + ["900","1451","2","37.0","6.8","6.8","-6.4","0.1","-0.1","-2.1","2.0"], + ["950","1443","2","36.9","6.5","6.9","-6.4","0.1","-0.1","-2.2","2.1"], + ["1000","1434","2","36.9","6.2","6.9","-6.5","0.1","-0.1","-2.3","2.2"], + ["1050","1425","2","36.8","5.9","7.0","-6.6","0.1","-0.2","-2.5","2.3"], + ["1100","1417","3","36.8","5.6","7.1","-6.6","0.1","-0.2","-2.6","2.4"], ["1150","1408","3","36.7","5.4","7.1","-6.7","0.2","-0.2","-2.7","2.5"], ["1200","1399","3","36.6","5.2","7.2","-6.7","0.2","-0.2","-2.8","2.7"], ["1250","1390","3","36.6","5.0","7.3","-6.8","0.2","-0.2","-2.9","2.8"], ["1300","1381","3","36.5","4.8","7.4","-6.9","0.2","-0.2","-3.0","2.9"], ["1350","1372","3","36.4","4.6","7.4","-6.9","0.2","-0.2","-3.2","3.0"], - ["1400","1362","4","36.4","4.4","7.5","-7.0","0.2","-0.3","-3.3","3.1"], - ["1450","1353","4","36.3","4.3","7.6","-7.1","0.2","-0.3","-3.4","3.2"], - ["1500","1344","4","36.2","4.2","7.7","-7.1","0.3","-0.3","-3.5","3.4"], - ["1550","1334","4","36.1","4.0","7.7","-7.2","0.3","-0.3","-3.7","3.5"], - ["1600","1324","4","36.0","3.9","7.8","-7.3","0.3","-0.3","-3.8","3.6"], - ["1650","1314","4","35.9","3.8","7.9","-7.3","0.3","-0.3","-3.9","3.7"], - ["1700","1304","5","35.8","3.7","7.9","-7.4","0.3","-0.3","-4.0","3.8"], - ["1750","1294","5","35.7","3.6","8.0","-7.5","0.3","-0.3","-4.2","3.9"], - ["1800","1284","5","35.6","3.5","8.1","-7.6","0.3","-0.3","-4.3","4.0"], - ["1850","1274","5","35.5","3.4","8.2","-7.6","0.3","-0.3","-4.4","4.2"], - ["1900","1263","6","35.4","3.3","8.2","-7.7","0.3","-0.3","-4.5","4.3"], - ["1950","1253","6","35.2","3.2","8.3","-7.8","0.3","-0.4","-4.7","4.4"], - ["2000","1242","6","35.1","3.1","8.4","-7.8","0.4","-0.3","-4.8","4.5"], - ["2050","1231","7","35.0","3.0","8.4","-7.9","0.4","-0.4","-4.9","4.7"], - ["2100","1219","7","34.8","2.9","8.5","-8.0","0.4","-0.4","-5.0","4.8"], - ["2150","1208","7","34.7","2.9","8.5","-8.0","0.4","-0.4","-5.2","4.9"], - ["2200","1196","8","34.5","2.8","8.6","-8.1","0.4","-0.4","-5.3","5.0"], - ["2250","1184","8","34.3","2.7","8.7","-8.2","0.4","-0.4","-5.4","5.1"], - ["2300","1171","9","34.2","2.7","8.7","-8.2","0.4","-0.4","-5.5","5.2"], - ["2350","1158","9","34.0","2.6","8.8","-8.3","0.4","-0.4","-5.7","5.4"], - ["2400","1145","10","33.8","2.5","8.8","-8.3","0.4","-0.4","-5.8","5.5"], - ["2450","1132","10","33.6","2.5","8.9","-8.4","0.4","-0.4","-5.9","5.6"], - ["2500","1118","11","33.3","2.4","8.9","-8.4","0.5","-0.4","-6.0","5.7"], - ["2550","1103","12","33.1","2.4","9.0","-8.5","0.4","-0.5","-6.1","5.8"], - ["2600","1088","13","32.8","2.3","9.0","-8.5","0.5","-0.4","-6.2","5.9"], - ["2650","1072","14","32.6","2.2","9.0","-8.6","0.5","-0.5","-6.4","6.0"], - ["2700","1056","15","32.3","2.2","9.0","-8.6","0.5","-0.5","-6.5","6.1"], - ["2750","1038","16","31.9","2.1","9.1","-8.6","0.5","-0.5","-6.6","6.3"], - ["2800","1020","18","31.6","2.1","9.1","-8.6","0.5","-0.5","-6.7","6.4"], - ["2850","1000","20","31.2","2.0","9.1","-8.6","0.5","-0.5","-6.8","6.5"], - ["2900","978","22","30.8","1.9","9.0","-8.6","0.5","-0.5","-6.9","6.5"], - ["2950","954","26","30.3","1.9","9.0","-8.6","0.5","-0.5","-7.0","6.6"], - ["3000","927","31","29.7","1.8","8.9","-8.5","0.5","-0.5","-7.1","6.7"], - ["3050","894","38","29.0","1.7","8.8","-8.4","0.5","-0.6","-7.2","6.8"], - ["3100","849","54","27.9","1.6","8.5","-8.3","0.5","-0.6","-7.2","6.8"] + ["1400","1362","4","36.4","4.4","7.5","-7.0","0.2","-0.2","-3.3","3.1"], + ["1450","1353","4","36.3","4.3","7.6","-7.1","0.2","-0.2","-3.4","3.2"], + ["1500","1344","4","36.2","4.2","7.7","-7.1","0.2","-0.2","-3.5","3.4"], + ["1550","1334","4","36.1","4.0","7.7","-7.2","0.2","-0.2","-3.7","3.5"], + ["1600","1324","4","36.0","3.9","7.8","-7.3","0.2","-0.2","-3.8","3.6"], + ["1650","1314","4","35.9","3.8","7.9","-7.3","0.2","-0.2","-3.9","3.7"], + ["1700","1304","5","35.8","3.7","7.9","-7.4","0.2","-0.2","-4.0","3.8"], + ["1750","1294","5","35.7","3.6","8.0","-7.5","0.2","-0.2","-4.2","3.9"], + ["1800","1284","5","35.6","3.5","8.1","-7.6","0.2","-0.3","-4.3","4.0"], + ["1850","1274","5","35.5","3.4","8.2","-7.6","0.2","-0.3","-4.4","4.2"], + ["1900","1263","6","35.4","3.3","8.2","-7.7","0.2","-0.3","-4.5","4.3"], + ["1950","1253","6","35.2","3.2","8.3","-7.8","0.2","-0.3","-4.7","4.4"], + ["2000","1242","6","35.1","3.1","8.4","-7.8","0.3","-0.3","-4.8","4.5"], + ["2050","1231","7","35.0","3.0","8.4","-7.9","0.3","-0.3","-4.9","4.7"], + ["2100","1219","7","34.8","2.9","8.5","-8.0","0.3","-0.3","-5.0","4.8"], + ["2150","1208","7","34.7","2.9","8.5","-8.0","0.3","-0.3","-5.2","4.9"], + ["2200","1196","8","34.5","2.8","8.6","-8.1","0.3","-0.3","-5.3","5.0"], + ["2250","1184","8","34.3","2.7","8.7","-8.2","0.3","-0.3","-5.4","5.1"], + ["2300","1171","9","34.2","2.7","8.7","-8.2","0.3","-0.3","-5.5","5.2"], + ["2350","1158","9","34.0","2.6","8.8","-8.3","0.3","-0.3","-5.7","5.4"], + ["2400","1145","10","33.8","2.5","8.8","-8.3","0.3","-0.3","-5.8","5.5"], + ["2450","1132","10","33.6","2.5","8.9","-8.4","0.3","-0.3","-5.9","5.6"], + ["2500","1118","11","33.3","2.4","8.9","-8.4","0.3","-0.3","-6.0","5.7"], + ["2550","1103","12","33.1","2.4","9.0","-8.5","0.3","-0.3","-6.1","5.8"], + ["2600","1088","13","32.8","2.3","9.0","-8.5","0.4","-0.3","-6.2","5.9"], + ["2650","1072","14","32.6","2.2","9.0","-8.6","0.4","-0.4","-6.4","6.0"], + ["2700","1056","15","32.3","2.2","9.0","-8.6","0.3","-0.4","-6.5","6.1"], + ["2750","1038","16","31.9","2.1","9.1","-8.6","0.4","-0.4","-6.6","6.3"], + ["2800","1020","18","31.6","2.1","9.1","-8.6","0.4","-0.4","-6.7","6.4"], + ["2850","1000","20","31.2","2.0","9.1","-8.6","0.4","-0.4","-6.8","6.5"], + ["2900","978","22","30.8","1.9","9.0","-8.6","0.4","-0.4","-6.9","6.5"], + ["2950","954","26","30.3","1.9","9.0","-8.6","0.4","-0.4","-7.0","6.6"], + ["3000","927","31","29.7","1.8","8.9","-8.5","0.4","-0.4","-7.1","6.7"], + ["3050","894","38","29.0","1.7","8.8","-8.4","0.4","-0.4","-7.2","6.8"], + ["3100","849","54","27.9","1.6","8.5","-8.3","0.4","-0.4","-7.2","6.8"] + ] + }; + +case ((abs(_muzzleVelocity - 70) < 0.00001) && ((abs(_airFriction - 0) < 0.00001))): { + [ + ["100","1497","9","14.2","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["150","1445","14","14.1","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["200","1390","19","14.0","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["250","1333","26","13.8","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["300","1272","34","13.5","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["350","1204","45","13.2","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["400","1127","61","12.8","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["450","1028","91","12.1","0.0","0.0","0.0","0.0","0.0","0.0","0.0"] + ] + }; +case ((abs(_muzzleVelocity - 140) < 0.00001) && ((abs(_airFriction - 0) < 0.00001))): { + [ + ["150","1562","1","28.5","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["200","1549","1","28.5","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["250","1536","2","28.5","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["300","1523","2","28.5","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["350","1510","2","28.4","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["400","1497","3","28.4","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["450","1484","3","28.4","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["500","1471","3","28.3","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["550","1458","4","28.3","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["600","1445","4","28.2","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["650","1431","4","28.2","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["700","1418","5","28.1","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["750","1404","5","28.0","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["800","1390","6","27.9","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["850","1376","6","27.9","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["900","1362","6","27.8","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["950","1348","7","27.7","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["1000","1333","7","27.6","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["1050","1318","8","27.5","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["1100","1303","9","27.3","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["1150","1288","9","27.2","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["1200","1272","10","27.1","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["1250","1256","11","26.9","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["1300","1239","12","26.8","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["1350","1222","13","26.6","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["1400","1205","13","26.4","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["1450","1187","15","26.2","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["1500","1168","16","26.0","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["1550","1148","18","25.8","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["1600","1127","19","25.5","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["1650","1105","21","25.2","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["1700","1082","24","24.9","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["1750","1057","27","24.6","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["1800","1029","31","24.2","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["1850","997","37","23.7","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["1900","960","46","23.1","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["1950","912","63","22.3","0.0","0.0","0.0","0.0","0.0","0.0","0.0"] + ] + }; +case ((abs(_muzzleVelocity - 200) < 0.00001) && ((abs(_airFriction - 0) < 0.00001))): { + [ + ["300","1563","0","40.8","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["350","1556","1","40.8","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["400","1550","1","40.7","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["450","1544","1","40.7","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["500","1537","1","40.7","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["550","1531","1","40.7","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["600","1525","1","40.7","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["650","1519","1","40.7","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["700","1512","1","40.6","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["750","1506","1","40.6","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["800","1499","1","40.6","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["850","1493","1","40.6","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["900","1487","1","40.5","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["950","1480","1","40.5","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["1000","1474","2","40.5","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["1050","1467","2","40.5","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["1100","1461","2","40.4","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["1150","1454","2","40.4","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["1200","1448","2","40.3","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["1250","1441","2","40.3","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["1300","1435","2","40.3","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["1350","1428","2","40.2","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["1400","1422","2","40.2","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["1450","1415","2","40.1","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["1500","1408","2","40.1","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["1550","1402","3","40.0","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["1600","1395","3","40.0","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["1650","1388","3","39.9","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["1700","1381","3","39.9","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["1750","1374","3","39.8","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["1800","1367","3","39.7","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["1850","1360","3","39.7","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["1900","1353","3","39.6","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["1950","1346","4","39.5","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["2000","1339","4","39.5","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["2050","1332","4","39.4","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["2100","1325","4","39.3","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["2150","1317","4","39.2","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["2200","1310","4","39.2","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["2250","1302","4","39.1","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["2300","1295","5","39.0","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["2350","1287","5","38.9","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["2400","1280","5","38.8","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["2450","1272","5","38.7","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["2500","1264","5","38.6","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["2550","1256","5","38.5","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["2600","1248","6","38.4","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["2650","1240","6","38.3","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["2700","1232","6","38.2","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["2750","1223","6","38.0","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["2800","1215","7","37.9","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["2850","1206","7","37.8","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["2900","1197","7","37.6","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["2950","1188","7","37.5","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["3000","1179","8","37.4","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["3050","1170","8","37.2","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["3100","1160","8","37.1","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["3150","1151","9","36.9","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["3200","1141","9","36.7","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["3250","1131","10","36.5","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["3300","1120","10","36.3","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["3350","1109","11","36.2","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["3400","1098","11","35.9","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["3450","1087","12","35.7","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["3500","1075","13","35.5","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["3550","1062","14","35.2","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["3600","1049","15","35.0","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["3650","1036","16","34.7","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["3700","1021","17","34.4","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["3750","1006","19","34.1","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["3800","990","21","33.7","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["3850","971","24","33.3","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["3900","952","27","32.8","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["3950","929","32","32.2","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["4000","900","40","31.5","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["4050","861","56","30.5","0.0","0.0","0.0","0.0","0.0","0.0","0.0"] ] }; default { From 65d61ad1e3bc3d40780670849f26247931244e2e Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Tue, 7 Apr 2015 19:22:33 -0500 Subject: [PATCH 017/256] opps --- addons/inventory/config.cpp | 2 +- addons/mk6mortar/CfgMagazines.hpp | 3 --- addons/mk6mortar/config.cpp | 1 - addons/mk6mortar/functions/fnc_handleFired.sqf | 2 -- 4 files changed, 1 insertion(+), 7 deletions(-) delete mode 100644 addons/mk6mortar/CfgMagazines.hpp diff --git a/addons/inventory/config.cpp b/addons/inventory/config.cpp index 83b4a08126..c7b6649be6 100644 --- a/addons/inventory/config.cpp +++ b/addons/inventory/config.cpp @@ -15,7 +15,7 @@ class CfgPatches { #include "RscDisplayInventory.hpp" class ACE_Settings { - class GVAR(useMils) { + class GVAR(inventoryDisplaySize) { value = 0; typeName = "SCALAR"; isClientSetable = 1; diff --git a/addons/mk6mortar/CfgMagazines.hpp b/addons/mk6mortar/CfgMagazines.hpp deleted file mode 100644 index 39f8bdd780..0000000000 --- a/addons/mk6mortar/CfgMagazines.hpp +++ /dev/null @@ -1,3 +0,0 @@ -class CfgMagazines { - -}; diff --git a/addons/mk6mortar/config.cpp b/addons/mk6mortar/config.cpp index a6e63c819b..6751cea5fb 100644 --- a/addons/mk6mortar/config.cpp +++ b/addons/mk6mortar/config.cpp @@ -13,7 +13,6 @@ class CfgPatches { }; #include "CfgEventHandlers.hpp" -#include "CfgMagazines.hpp" #include "CfgVehicles.hpp" #include "CfgWeapons.hpp" diff --git a/addons/mk6mortar/functions/fnc_handleFired.sqf b/addons/mk6mortar/functions/fnc_handleFired.sqf index 555abcbe6f..491794ccc7 100644 --- a/addons/mk6mortar/functions/fnc_handleFired.sqf +++ b/addons/mk6mortar/functions/fnc_handleFired.sqf @@ -57,8 +57,6 @@ if (_newMuzzleVelocityCoefficent != 1) then { _muzzleVelocity = _muzzleVelocity + _muzzleVelocityShift; }; -systemChat format ["PFEH for %1", _ammo]; - [{ private ["_deltaT", "_bulletVelocity", "_bulletSpeed", "_trueVelocity", "_trueSpeed", "_dragRef", "_accelRef", "_drag", "_accel"]; PARAMS_2(_args,_pfID); From 71d609f8e052e5f0295317ab926df2c21ff7885f Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Tue, 7 Apr 2015 19:30:07 -0500 Subject: [PATCH 018/256] Private Variables --- addons/mk6mortar/functions/fnc_dev_formatNumber.sqf | 3 +-- addons/mk6mortar/functions/fnc_dev_simulateFindSolution.sqf | 1 - addons/mk6mortar/functions/fnc_dev_simulateShot.sqf | 2 +- addons/mk6mortar/functions/fnc_handleFired.sqf | 4 +++- addons/mk6mortar/functions/fnc_handlePlayerVehicleChanged.sqf | 2 ++ addons/mk6mortar/functions/fnc_rangeTableOpen.sqf | 2 ++ addons/mk6mortar/functions/fnc_rangeTablePageChange.sqf | 2 ++ addons/mk6mortar/functions/fnc_turretDisplayLoaded.sqf | 2 ++ 8 files changed, 13 insertions(+), 5 deletions(-) diff --git a/addons/mk6mortar/functions/fnc_dev_formatNumber.sqf b/addons/mk6mortar/functions/fnc_dev_formatNumber.sqf index a8ad155eec..84697bbf4a 100644 --- a/addons/mk6mortar/functions/fnc_dev_formatNumber.sqf +++ b/addons/mk6mortar/functions/fnc_dev_formatNumber.sqf @@ -73,8 +73,7 @@ case ("sec"): { default {systemChat format ["badtype %1", _inputType];}; }; - -//CBA_fnc_formatNumber is stupid: [-9.58545, 1, 1, false] call CBA_fnc_formatNumber == "-9.-6" +//CBA_fnc_formatNumber is silly: [-9.58545, 1, 1, false] call CBA_fnc_formatNumber == "-9.-6" _prefix = if (_theNumber < 0) then {"-"} else {""}; diff --git a/addons/mk6mortar/functions/fnc_dev_simulateFindSolution.sqf b/addons/mk6mortar/functions/fnc_dev_simulateFindSolution.sqf index 29a44e3a51..edffa1beb2 100644 --- a/addons/mk6mortar/functions/fnc_dev_simulateFindSolution.sqf +++ b/addons/mk6mortar/functions/fnc_dev_simulateFindSolution.sqf @@ -19,7 +19,6 @@ */ #include "script_component.hpp" - private ["_rangeToHit", "_heightToHit", "_muzzleVelocity", "_airFriction", "_maxElev", "_minElev", "_error", "_solutionElevation", "_lastTestResult", "_numberOfAttempts"]; #define MAX_ATTEMPTS 22 diff --git a/addons/mk6mortar/functions/fnc_dev_simulateShot.sqf b/addons/mk6mortar/functions/fnc_dev_simulateShot.sqf index de8471726c..0e53807a6b 100644 --- a/addons/mk6mortar/functions/fnc_dev_simulateShot.sqf +++ b/addons/mk6mortar/functions/fnc_dev_simulateShot.sqf @@ -23,7 +23,7 @@ */ #include "script_component.hpp" -private ["_angleDeg", "_muzzleVelocity", "_airFriction", "_temp", "_relDensity", "_tailWind", "_crosswind", "_heightOfTarget", "_wind", "_gravity", "_timeStep", "_currentPos", "_currentVelocity", "_currentTime", "_lastPos", "_kCoefficent", "_aparentWind", "_changeInVelocity", "_linConversion", "_middlePos", "_middlePosOld", "_middleTotalTravelTime", "_offsetDeg"]; +private ["_angleDeg", "_muzzleVelocity", "_airFriction", "_temp", "_relDensity", "_tailWind", "_crosswind", "_heightOfTarget", "_timeStep", "_wind", "_gravity", "_currentPos", "_currentVelocity", "_currentTime", "_lastPos", "_kCoefficent", "_aparentWind", "_changeInVelocity", "_linConversion", "_middlePos", "_middlePosOld", "_middleTotalTravelTime", "_offsetDeg"]; _angleDeg = _this select 0; _muzzleVelocity = _this select 1; diff --git a/addons/mk6mortar/functions/fnc_handleFired.sqf b/addons/mk6mortar/functions/fnc_handleFired.sqf index 491794ccc7..72c8aa4bff 100644 --- a/addons/mk6mortar/functions/fnc_handleFired.sqf +++ b/addons/mk6mortar/functions/fnc_handleFired.sqf @@ -21,13 +21,15 @@ */ #include "script_component.hpp" +private ["_unit", "_shooterMan", "_bisAirFriction", "_temperature", "_newMuzzleVelocityCoefficent", "_bulletVelocity", "_bulletSpeed", "_muzzleVelocity", "_muzzleVelocityShift"]; + disableSerialization; PARAMS_7(_vehicle,_weapon,_muzzle,_mode,_ammo,_magazine,_projectile); if (!GVAR(airResistanceEnabled)) exitWith {}; // Large enough distance to not simulate any wind deflection -if (_unit distance ACE_player > 8000) exitWith {false}; +if (_vehicle distance ACE_player > 8000) exitWith {false}; //AI will have no clue how to use: _shooterMan = gunner _vehicle; diff --git a/addons/mk6mortar/functions/fnc_handlePlayerVehicleChanged.sqf b/addons/mk6mortar/functions/fnc_handlePlayerVehicleChanged.sqf index 8fa11b1cda..91657fdbe2 100644 --- a/addons/mk6mortar/functions/fnc_handlePlayerVehicleChanged.sqf +++ b/addons/mk6mortar/functions/fnc_handlePlayerVehicleChanged.sqf @@ -16,6 +16,8 @@ */ #include "script_component.hpp" +private ["_chargeText", "_xPos", "_yPos", "_wPos", "_hPos", "_tubeWeaponName", "_fireModes"]; + PARAMS_2(_player,_newVehicle); if (isNull _newVehicle) exitWith {}; diff --git a/addons/mk6mortar/functions/fnc_rangeTableOpen.sqf b/addons/mk6mortar/functions/fnc_rangeTableOpen.sqf index 67d33c2727..c78b00e72d 100644 --- a/addons/mk6mortar/functions/fnc_rangeTableOpen.sqf +++ b/addons/mk6mortar/functions/fnc_rangeTableOpen.sqf @@ -17,6 +17,8 @@ #define LIST_CHARGE ((uiNamespace getVariable "ACE_82mm_RangeTable_Dialog") displayCtrl 1501) +private ["_weaponName", "_magazines", "_initSpeed", "_fireModes", "_muzzleVelocities", "_showToPlayer", "_artilleryCharge"]; + _weaponName = "mortar_82mm"; if (dialog) exitWith {ERROR("Dialog Open");}; diff --git a/addons/mk6mortar/functions/fnc_rangeTablePageChange.sqf b/addons/mk6mortar/functions/fnc_rangeTablePageChange.sqf index c9ee241b7a..c0cc40ccdc 100644 --- a/addons/mk6mortar/functions/fnc_rangeTablePageChange.sqf +++ b/addons/mk6mortar/functions/fnc_rangeTablePageChange.sqf @@ -18,6 +18,8 @@ #define RANGE_TABLE ((uiNamespace getVariable "ACE_82mm_RangeTable_Dialog") displayCtrl 20001) #define LIST_CHARGE ((uiNamespace getVariable "ACE_82mm_RangeTable_Dialog") displayCtrl 1501) +private ["_listBoxData", "_muzzleVelocity", "_airFriction", "_precalcArray"]; + _listBoxData = LIST_CHARGE lbData (lbCurSel LIST_CHARGE); if (isNil "_listBoxData" || {_listBoxData == ""}) exitWith {ERROR("lbCurSel out of bounds or no data");}; _muzzleVelocity = parseNumber _listBoxData; diff --git a/addons/mk6mortar/functions/fnc_turretDisplayLoaded.sqf b/addons/mk6mortar/functions/fnc_turretDisplayLoaded.sqf index 4972265528..c81ff32132 100644 --- a/addons/mk6mortar/functions/fnc_turretDisplayLoaded.sqf +++ b/addons/mk6mortar/functions/fnc_turretDisplayLoaded.sqf @@ -29,6 +29,7 @@ #define CTRL_CA_ELEV (configFile >> "RscInGameUI" >> "ACE_Mk6_RscWeaponRangeArtillery" >> "CA_IGUI_elements_group" >> "controls" >> "CA_ELEV") #define CTRL_CA_ELEV_NEED (configFile >> "RscInGameUI" >> "ACE_Mk6_RscWeaponRangeArtillery" >> "CA_IGUI_elements_group" >> "controls" >> "CA_ELEV_NEED") +private ["_display", "_fnc_hideControl"]; disableSerialization; @@ -36,6 +37,7 @@ _display = uiNamespace getVariable ["ACE_Mk6_RscWeaponRangeArtillery", displayNu if (isNull _display) exitWith {}; _fnc_hideControl = { + private "_idc"; PARAMS_2(_path,_hideCtrl); _idc = getNumber (_path >> "IDC"); _pos = []; From 656fa8868ad8242f7407d98223cd95a18017b879 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Tue, 7 Apr 2015 19:37:46 -0500 Subject: [PATCH 019/256] Module Icons --- addons/mk6mortar/CfgVehicles.hpp | 4 ++-- addons/mk6mortar/UI/Icon_Module_mk6_ca.paa | Bin 0 -> 5625 bytes extras/assets/icons/png/Icon_Module_mk6_ca.png | Bin 0 -> 21458 bytes 3 files changed, 2 insertions(+), 2 deletions(-) create mode 100644 addons/mk6mortar/UI/Icon_Module_mk6_ca.paa create mode 100644 extras/assets/icons/png/Icon_Module_mk6_ca.png diff --git a/addons/mk6mortar/CfgVehicles.hpp b/addons/mk6mortar/CfgVehicles.hpp index a40cc68efb..1c90842d5f 100644 --- a/addons/mk6mortar/CfgVehicles.hpp +++ b/addons/mk6mortar/CfgVehicles.hpp @@ -54,7 +54,7 @@ class CfgVehicles { function = QFUNC(moduleInit); scope = 2; isGlobal = 0; - // icon = QUOTE(PATHTOF(UI\Icon_.paa)); + icon = QUOTE(PATHTOF(UI\Icon_Module_mk6_ca.paa)); functionPriority = 0; class Arguments { class airResistanceEnabled { @@ -65,7 +65,7 @@ class CfgVehicles { }; class allowComputerRangefinder { displayName = "Allow MK6 Computer"; - description = "Show the Computer and Rangefinder (these should be removed if you enable air resistance)"; + description = "Show the Computer and Rangefinder (these NEED to be removed if you enable air resistance)"; typeName = "BOOL"; defaultValue = 0; }; diff --git a/addons/mk6mortar/UI/Icon_Module_mk6_ca.paa b/addons/mk6mortar/UI/Icon_Module_mk6_ca.paa new file mode 100644 index 0000000000000000000000000000000000000000..8abfb4bdd31d81bc3505d2d3c49bacdb83bc9645 GIT binary patch literal 5625 zcmd^@eMl5(7{DK8Yc=~2>&mcf#U&~-E{gr5FUJCPBk|%cvm!`M%F8W+2=2;uE~zl6 zmaQnsGAQVu>n@LDpf7eIsQ##+f-=`g2=oq)5`{jXWqRHjpLgGR7k5~054vrbf&K0K zywB%5&&)ex^ookIA68Y=lsNz(8jY?qxVEf{v5p7hin2B3j5F|J{C#u*lr@tf`h#CoAb0+#&$@9U58qenb{fQ!qH6Rm%<{#JchGK>C% z%n~T(2N!>3Y`wElb_n_cxc*1YuPH6cvwudHx33plFEM{c>OZP|dwsG$nE!%C9+U3Gpf z@yqqd|FE-f^RuSQ6#rP(|GhyMu`Hi%?EGu*uKxQcK2f|24p&9*gg!kbPPcd`ne}y0 zeB-XKUa{oVhFaq0kDV<&r5$M-|J+wv<0Vgh1I3$lplfa9PhW(%XyB)Z_kLFQ6Q^7K z3r~8sIcu7qP<)G*YQBi(D<&=)e)IS3@^Rl1JC|z{BHGJ^#0!k|6Wfpc-||!ZVD_!> z)Mj4ql>>WsE%I#T+}@%8o{K4=cy|uzp%Sf*Gu+Mi4sZuT02hyBf-~w=f z8o~to2k%gt4TkyxVtE@5DjOM|MdJnwuhF175AU__giK43f_@+EgCT z-^lb>zHRg+D?fX{Q~&ne_8hW5=lP+Q?yi;>#L4PQR(|r2{r`l2E7?f)ruVj2^&CCM z;~k%5+s4l<_MZXJNwSxxx8~#v_s@)nUh`%}0TxU4`mPB^4;^7U{kixl5I-_1VO_7Q z9;zcVYUsVc^Zo8pVwdXwqeweBpBUw5MXK|-TT1ws4Di z7W*tZFu%5_=FyIuH0_!)?`-R`CT_N{U2EK=J@(MJ2Hq#`s)Iga2X<7<=M8{$!H=)` Iv)}agGf;wi%>V!Z literal 0 HcmV?d00001 diff --git a/extras/assets/icons/png/Icon_Module_mk6_ca.png b/extras/assets/icons/png/Icon_Module_mk6_ca.png new file mode 100644 index 0000000000000000000000000000000000000000..26c2966551eb3d9df8ddf5c5a5a410543a641584 GIT binary patch literal 21458 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 z76 Date: Tue, 7 Apr 2015 19:41:48 -0500 Subject: [PATCH 020/256] Remove Dialog Check so it works inside veh --- addons/mk6mortar/functions/fnc_rangeTableOpen.sqf | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/addons/mk6mortar/functions/fnc_rangeTableOpen.sqf b/addons/mk6mortar/functions/fnc_rangeTableOpen.sqf index c78b00e72d..dfb53842ab 100644 --- a/addons/mk6mortar/functions/fnc_rangeTableOpen.sqf +++ b/addons/mk6mortar/functions/fnc_rangeTableOpen.sqf @@ -19,9 +19,8 @@ private ["_weaponName", "_magazines", "_initSpeed", "_fireModes", "_muzzleVelocities", "_showToPlayer", "_artilleryCharge"]; -_weaponName = "mortar_82mm"; +_weaponName = "mortar_82mm"; //todo: work on other weapons -if (dialog) exitWith {ERROR("Dialog Open");}; createDialog "ACE_82mm_RangeTable_Dialog"; if (isNull (uiNamespace getVariable ["ACE_82mm_RangeTable_Dialog", displayNull])) exitWith {ERROR("Dialog failed to open");}; From ce70c72cd6878e49f86d1b41081a6b048d892f61 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Tue, 7 Apr 2015 22:44:41 -0500 Subject: [PATCH 021/256] wip1 --- addons/interact_menu/config.cpp | 6 ++++++ addons/interact_menu/functions/fnc_keyDown.sqf | 9 ++++++++- addons/interact_menu/functions/fnc_renderIcon.sqf | 9 ++++++++- addons/interact_menu/functions/fnc_renderSelector.sqf | 9 ++++++++- 4 files changed, 30 insertions(+), 3 deletions(-) diff --git a/addons/interact_menu/config.cpp b/addons/interact_menu/config.cpp index 17900c2f6b..998098470e 100644 --- a/addons/interact_menu/config.cpp +++ b/addons/interact_menu/config.cpp @@ -22,5 +22,11 @@ class ACE_Settings { typeName = "BOOL"; isClientSetable = 1; displayName = "$STR_ACE_Interact_Menu_AlwaysUseCursorSelfInteraction"; + }; + class GVAR(cursorKeepCentered) { + value = 0; + typeName = "BOOL"; + isClientSetable = 1; + displayName = "Keep cursor centered"; }; }; diff --git a/addons/interact_menu/functions/fnc_keyDown.sqf b/addons/interact_menu/functions/fnc_keyDown.sqf index faa5b0f453..291c675260 100644 --- a/addons/interact_menu/functions/fnc_keyDown.sqf +++ b/addons/interact_menu/functions/fnc_keyDown.sqf @@ -39,8 +39,15 @@ if (GVAR(useCursorMenu)) then { // uiNamespace getVariable QGVAR(dlgCursorMenu); // uiNamespace getVariable QGVAR(cursorMenuOpened); ctrlEnable [91921, true]; + GVAR(cursorPos) = [0.5,0.5,0]; ((finddisplay 91919) displayctrl 91921) ctrlAddEventHandler ["MouseMoving", { - GVAR(cursorPos) = [_this select 1, _this select 2, 0]; + + if (GVAR(cursorKeepCentered)) then { + GVAR(cursorPos) = GVAR(cursorPos) vectorAdd [_this select 1, _this select 2, 0] vectorDiff [0.5, 0.5, 0]; + setMousePosition [0.5, 0.5]; + } else { + GVAR(cursorPos) = [_this select 1, _this select 2, 0]; + }; }]; setMousePosition [0.5, 0.5]; }; diff --git a/addons/interact_menu/functions/fnc_renderIcon.sqf b/addons/interact_menu/functions/fnc_renderIcon.sqf index 1cfc13923e..e48847cbb9 100644 --- a/addons/interact_menu/functions/fnc_renderIcon.sqf +++ b/addons/interact_menu/functions/fnc_renderIcon.sqf @@ -37,6 +37,13 @@ if(_icon == "") then { }; _text = format ["
%4", _icon, _color, _color, _text]; _ctrl ctrlSetStructuredText (parseText _text); -_ctrl ctrlSetPosition [(_sPos select 0)-(0.125*SafeZoneW), (_sPos select 1)-(0.0095*SafeZoneW), 0.25*SafeZoneW, 0.1*SafeZoneW]; +_pos = [(_sPos select 0)-(0.125*SafeZoneW), (_sPos select 1)-(0.0095*SafeZoneW), 0.25*SafeZoneW, 0.1*SafeZoneW]; + +if (uiNamespace getVariable [QGVAR(cursorMenuOpened),false]) then { + _pos set [0, ((_pos select 0) - (GVAR(cursorPos) select 0) + 0.5)]; + _pos set [1, ((_pos select 1) - (GVAR(cursorPos) select 1) + 0.5)]; +}; +_ctrl ctrlSetPosition _pos; + //_ctrl ctrlSetBackgroundColor [1, 0, 0, 0.1]; _ctrl ctrlCommit 0; diff --git a/addons/interact_menu/functions/fnc_renderSelector.sqf b/addons/interact_menu/functions/fnc_renderSelector.sqf index 44ed15e9c4..e397b40994 100644 --- a/addons/interact_menu/functions/fnc_renderSelector.sqf +++ b/addons/interact_menu/functions/fnc_renderSelector.sqf @@ -25,6 +25,13 @@ _ctrl = GVAR(iconCtrls) select GVAR(iconCount); GVAR(iconCount) = GVAR(iconCount) + 1; _ctrl ctrlSetStructuredText (parseText format ["", _icon]); -_ctrl ctrlSetPosition [(_sPos select 0)-(0.05*SafeZoneW), (_sPos select 1)-(0.014*SafeZoneW), 0.1*SafeZoneW, 0.035*SafeZoneW]; +_pos = [(_sPos select 0)-(0.05*SafeZoneW), (_sPos select 1)-(0.014*SafeZoneW), 0.1*SafeZoneW, 0.035*SafeZoneW]; + +if (uiNamespace getVariable [QGVAR(cursorMenuOpened),false]) then { + _pos set [0, ((_pos select 0) - (GVAR(cursorPos) select 0) + 0.5)]; + _pos set [1, ((_pos select 1) - (GVAR(cursorPos) select 1) + 0.5)]; +}; +_ctrl ctrlSetPosition _pos; + //_ctrl ctrlSetBackgroundColor [1, 0, 0, 0.1]; _ctrl ctrlCommit 0; From 03dbe8e6c5c8630e5cb6f64a5736c1cf596795e0 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Tue, 7 Apr 2015 22:57:58 -0500 Subject: [PATCH 022/256] Make it optional --- addons/interact_menu/functions/fnc_keyDown.sqf | 1 - addons/interact_menu/functions/fnc_renderIcon.sqf | 4 ++-- addons/interact_menu/functions/fnc_renderSelector.sqf | 4 ++-- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/addons/interact_menu/functions/fnc_keyDown.sqf b/addons/interact_menu/functions/fnc_keyDown.sqf index 291c675260..c488724a21 100644 --- a/addons/interact_menu/functions/fnc_keyDown.sqf +++ b/addons/interact_menu/functions/fnc_keyDown.sqf @@ -41,7 +41,6 @@ if (GVAR(useCursorMenu)) then { ctrlEnable [91921, true]; GVAR(cursorPos) = [0.5,0.5,0]; ((finddisplay 91919) displayctrl 91921) ctrlAddEventHandler ["MouseMoving", { - if (GVAR(cursorKeepCentered)) then { GVAR(cursorPos) = GVAR(cursorPos) vectorAdd [_this select 1, _this select 2, 0] vectorDiff [0.5, 0.5, 0]; setMousePosition [0.5, 0.5]; diff --git a/addons/interact_menu/functions/fnc_renderIcon.sqf b/addons/interact_menu/functions/fnc_renderIcon.sqf index e48847cbb9..6ed2a74a0a 100644 --- a/addons/interact_menu/functions/fnc_renderIcon.sqf +++ b/addons/interact_menu/functions/fnc_renderIcon.sqf @@ -18,7 +18,7 @@ */ #include "script_component.hpp" #define DEFAULT_ICON QUOTE(\z\ace\addons\interaction\ui\dot_ca.paa) -private ["_color", "_sPos", "_ctrl", "_icon"]; +private ["_color", "_sPos", "_ctrl", "_icon", "_pos"]; _text = _this select 0; _color = _this select 1; _sPos = _this select 2; @@ -39,7 +39,7 @@ _text = format ["
(count GVAR(iconCtrls))-1) then { GVAR(iconCtrls) pushBack ((findDisplay _displayNum) ctrlCreate ["RscStructuredText", 54021+GVAR(iconCount)]); }; -private "_ctrl"; +private ["_ctrl", "_pos"]; _ctrl = GVAR(iconCtrls) select GVAR(iconCount); GVAR(iconCount) = GVAR(iconCount) + 1; _ctrl ctrlSetStructuredText (parseText format ["", _icon]); _pos = [(_sPos select 0)-(0.05*SafeZoneW), (_sPos select 1)-(0.014*SafeZoneW), 0.1*SafeZoneW, 0.035*SafeZoneW]; -if (uiNamespace getVariable [QGVAR(cursorMenuOpened),false]) then { +if (GVAR(cursorKeepCentered) && {uiNamespace getVariable [QGVAR(cursorMenuOpened),false]}) then { _pos set [0, ((_pos select 0) - (GVAR(cursorPos) select 0) + 0.5)]; _pos set [1, ((_pos select 1) - (GVAR(cursorPos) select 1) + 0.5)]; }; From f0a97bd8553bcdfa56d45cd8e0a1cbbdae1550c0 Mon Sep 17 00:00:00 2001 From: VyMajoris Date: Thu, 9 Apr 2015 20:20:08 -0300 Subject: [PATCH 023/256] Added - Portuguese translation to Attach Failed --- addons/attach/stringtable.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/addons/attach/stringtable.xml b/addons/attach/stringtable.xml index 34e8883537..4241ddd644 100644 --- a/addons/attach/stringtable.xml +++ b/addons/attach/stringtable.xml @@ -174,6 +174,7 @@ Befestigen Fehlgeschlagen Присоединить Ошибка Error al acoplar + Erro ao anexar From ac5589c1c17ad708afb1de7ddcd090973e6d3c34 Mon Sep 17 00:00:00 2001 From: VyMajoris Date: Thu, 9 Apr 2015 20:30:09 -0300 Subject: [PATCH 024/256] Added - Portuguese translation to Captive surendering Need more context to translate STR_ACE_Captives_Zeus_OnlyAlive and STR_ACE_Captives_Zeus_OnlyInfentry. --- addons/captives/stringtable.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/addons/captives/stringtable.xml b/addons/captives/stringtable.xml index 32334811f3..ff8ff84a47 100644 --- a/addons/captives/stringtable.xml +++ b/addons/captives/stringtable.xml @@ -133,10 +133,12 @@ Surrender Kapitulieren + Render-se Stop Surrendering Den Kampf erneut aufnehmen + Parar de se render Only use on alive units @@ -149,6 +151,7 @@ Nothing under mouse Es wurde nichts ausgewählt + Nada debaixo do mouse From ae7af34a111ebf00f596c403c97a09e176d7013f Mon Sep 17 00:00:00 2001 From: VyMajoris Date: Thu, 9 Apr 2015 20:53:44 -0300 Subject: [PATCH 025/256] Added - Portuguese translation to common/Stringtable Everything translated. Even the banana. --- addons/common/stringtable.xml | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/addons/common/stringtable.xml b/addons/common/stringtable.xml index bcd2b149aa..e1ee265312 100644 --- a/addons/common/stringtable.xml +++ b/addons/common/stringtable.xml @@ -276,6 +276,7 @@ Désactiver Menu Commande Выключить командное меню Parancsnoki menü kikapcsolása + Desabilitar menu de comando Unknown @@ -285,6 +286,7 @@ Neznámý Неизвестно Ismeretlen + Desconhecido No Voice @@ -294,56 +296,71 @@ Žádný hlas Без голоса Nincs hang + Sem voz Akceptuj prośby Aceptar Peticiones Accept Requests + Aceitar Pedido Ignoruj prośby Rechazar Peticiones Decline Requests + Rejeitar pedido Akceptuj prośby wysłane przez innych graczy. Akceptacji wymagają między innymi akcje używania / współdzielenia wyposażenia, wykonywania określonych czynności. Acepta Peticiones de otros jugadores. Pueden ser solicitudes para usar / compartir equipamiento, realizar ciertas acciones. Accept Requests send by other players. These can be requests to use / share equipment, perform certain actions. + Aceitar pedidos enviados por outros jogadores. Podem ser pedidos para usar/ compartilhar equipamento, realizar certas ações. Ignoruj prośby wysłane przez innych graczy. Akceptacji wymagają między innymi akcje używania / współdzielenia wyposażenia, wykonywania określonych czynności. Rechazar Peticiones de otros jugadores. Pueden ser solicitudes para usar / compartir equipamiento, realizar ciertas acciones. Decline Requests send by other players. These can be requests to use / share equipment, perform certain actions. + Rejeita pedidos enviados por outros jogadores. Podem ser pedidos para usar/ compartilhar equipamento, realizar certas ações. Feedback icons + Ícones de Feedback Select the position of or disable the feedback icons on your screen. These icons will show to provide extra feedback on your character status and actions performed. + Selecione a posição ou disabilite a posição dos ícones de feedback na sua tela. Esses ícones irão aparecer para mostrar feedback extra do status do seu personagem e ações realizadas. Progress bar location + Local da barra de progresso Set the desired location of the progress bar on your screen. + Define o local desejado da barra de progresso na sua tela. Hint Background color + Cor do fundo da hint The color of the background from the ACE hints. + A cor de fundo das hints do ACE. Hint text font color + Cor do do texto da hint The color of the text font from the ACE hints. This color is the default color for all text displayed through the ACE Hint system, if the hint text has no other color specified. + A cor do texto das hints do ACE. Essa cor é a cor default para todos os texos exibidos pelo sistema de hints do ACE , caso o texto da hint não tem outra cor especificada. Banana + Banana A banana is an edible fruit, botanically a berry, produced by several kinds of large herbaceous flowering plants in the genus Musa. + A banana é uma fruta comestível, botanicamente uma baga, produzida por vários tipos de plantas herbáceas grandes do genero Musa. - \ No newline at end of file + From c1941f271938c9e89d5e1413b2f9c0df6bc03e89 Mon Sep 17 00:00:00 2001 From: VyMajoris Date: Thu, 9 Apr 2015 22:12:54 -0300 Subject: [PATCH 026/256] Added - Portuguese translation to common/Stringtable I see that the english description for the banana is from the Wikipedia. If wanted I can use the portuguese version from Wikipedia. --- addons/common/stringtable.xml | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/addons/common/stringtable.xml b/addons/common/stringtable.xml index bcd2b149aa..f8a25c6269 100644 --- a/addons/common/stringtable.xml +++ b/addons/common/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -276,6 +276,7 @@ Désactiver Menu Commande Выключить командное меню Parancsnoki menü kikapcsolása + Desabilitar menu de comando Unknown @@ -285,6 +286,7 @@ Neznámý Неизвестно Ismeretlen + Desconhecido No Voice @@ -294,56 +296,71 @@ Žádný hlas Без голоса Nincs hang + Sem voz Akceptuj prośby Aceptar Peticiones Accept Requests + Aceitar Pedido Ignoruj prośby Rechazar Peticiones Decline Requests + Rejeitar pedido Akceptuj prośby wysłane przez innych graczy. Akceptacji wymagają między innymi akcje używania / współdzielenia wyposażenia, wykonywania określonych czynności. Acepta Peticiones de otros jugadores. Pueden ser solicitudes para usar / compartir equipamiento, realizar ciertas acciones. Accept Requests send by other players. These can be requests to use / share equipment, perform certain actions. + Aceitar pedidos enviados por outros jogadores. Podem ser pedidos para usar/ compartilhar equipamento, realizar certas ações. Ignoruj prośby wysłane przez innych graczy. Akceptacji wymagają między innymi akcje używania / współdzielenia wyposażenia, wykonywania określonych czynności. Rechazar Peticiones de otros jugadores. Pueden ser solicitudes para usar / compartir equipamiento, realizar ciertas acciones. Decline Requests send by other players. These can be requests to use / share equipment, perform certain actions. + Rejeita pedidos enviados por outros jogadores. Podem ser pedidos para usar/ compartilhar equipamento, realizar certas ações. Feedback icons + Ícones de Feedback Select the position of or disable the feedback icons on your screen. These icons will show to provide extra feedback on your character status and actions performed. + Selecione a posição ou disabilite a posição dos ícones de feedback na sua tela. Esses ícones irão aparecer para mostrar feedback extra do status do seu personagem e ações realizadas. Progress bar location + Local da barra de progresso Set the desired location of the progress bar on your screen. + Define o local desejado da barra de progresso na sua tela. Hint Background color + Cor do fundo da hint The color of the background from the ACE hints. + A cor de fundo das hints do ACE. Hint text font color + Cor do do texto da hint The color of the text font from the ACE hints. This color is the default color for all text displayed through the ACE Hint system, if the hint text has no other color specified. + A cor do texto das hints do ACE. Essa cor é a cor default para todos os texos exibidos pelo sistema de hints do ACE , caso o texto da hint não tem outra cor especificada. Banana + Banana A banana is an edible fruit, botanically a berry, produced by several kinds of large herbaceous flowering plants in the genus Musa. + A banana é uma fruta comestível, botanicamente uma baga, produzida por vários tipos de plantas herbáceas grandes do genero Musa. - \ No newline at end of file + From f98b9c27c6a5ae4bf4821d9a46ec9a5e0ef122fc Mon Sep 17 00:00:00 2001 From: VyMajoris Date: Thu, 9 Apr 2015 22:16:14 -0300 Subject: [PATCH 027/256] Added - Portuguese translation to Captive surrendering I need more context on "STR_ACE_Captives_Zeus_OnlyInfentry" and "STR_ACE_Captives_Zeus_OnlyAlive" to translate. Are those texts talking to the player or is just a description for an action? --- addons/captives/stringtable.xml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/addons/captives/stringtable.xml b/addons/captives/stringtable.xml index 32334811f3..32e22a199d 100644 --- a/addons/captives/stringtable.xml +++ b/addons/captives/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -133,10 +133,12 @@ Surrender Kapitulieren + Render-se Stop Surrendering Den Kampf erneut aufnehmen + Parar de se render Only use on alive units @@ -149,6 +151,7 @@ Nothing under mouse Es wurde nichts ausgewählt + Nada debaixo do mouse From b8f2bd963627b715f4c62ebaff0efedc5d31202e Mon Sep 17 00:00:00 2001 From: VyMajoris Date: Thu, 9 Apr 2015 22:18:46 -0300 Subject: [PATCH 028/256] Added - Portuguese translation to cargo door Confused if it is a ramp or a door. Translated to as if it is a door. Should work. --- addons/aircraft/stringtable.xml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/addons/aircraft/stringtable.xml b/addons/aircraft/stringtable.xml index 4d1c49fff6..e89be5db84 100644 --- a/addons/aircraft/stringtable.xml +++ b/addons/aircraft/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -35,6 +35,7 @@ Otevřít nákladní prostor Rámpát kinyitni Открыть грузовой отсек + Abrir porta de carga Close Cargo Door @@ -45,6 +46,7 @@ Zavřít nákladní prostor Rámpát zárni Закрыть грузовой отсек + Fechar porta de carga From 0dbb4579c4857be862f48a8d070fe739bf289473 Mon Sep 17 00:00:00 2001 From: VyMajoris Date: Thu, 9 Apr 2015 22:25:37 -0300 Subject: [PATCH 029/256] Added - Portuguese translation Disposable --- addons/disposable/stringtable.xml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/addons/disposable/stringtable.xml b/addons/disposable/stringtable.xml index 8b6c032961..6a3f561b22 100644 --- a/addons/disposable/stringtable.xml +++ b/addons/disposable/stringtable.xml @@ -11,6 +11,7 @@ Lanzador utilizado Használt cső Отстрелянная труба + Tubo utilizado Used disposable rocket launcher @@ -21,6 +22,7 @@ Lanzador desechable utilizado Használt rakétavető Отстрелянная одноразовая пусковая установка + Lança foguetes descartável utilizado Preloaded Missile Dummy @@ -31,6 +33,7 @@ Preloaded Missile Dummy Preloaded Missile Dummy Заряженная ракетная пустышка + Preloaded Missile Dummy - \ No newline at end of file + From c8c183863c741a11c508134be201ee52471c87a4 Mon Sep 17 00:00:00 2001 From: VyMajoris Date: Thu, 9 Apr 2015 22:28:45 -0300 Subject: [PATCH 030/256] Changed - Dragging drop Portuguese Translation Changed from "Largar" to "Soltar". "Largar" seems a little to harsh when dealing with humans. "STR_ACE_Dragging_UnableToDrag" Commented code unchanged --- addons/dragging/stringtable.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/dragging/stringtable.xml b/addons/dragging/stringtable.xml index 1fca04fee1..eafa5e597f 100644 --- a/addons/dragging/stringtable.xml +++ b/addons/dragging/stringtable.xml @@ -22,7 +22,7 @@ Položit Lâcher Loslassen - Largar + Soltar Lascia Elengedés From 4198a942b3673f60cd03015155bddd395e80d2f1 Mon Sep 17 00:00:00 2001 From: VyMajoris Date: Thu, 9 Apr 2015 22:42:21 -0300 Subject: [PATCH 031/256] Added/Changed - explosives Portuguese Translation Added "Dead Man's Switch" and "Explosives_Pickup" PT translation and corrected some stuff. --- addons/explosives/stringtable.xml | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/addons/explosives/stringtable.xml b/addons/explosives/stringtable.xml index 57ef190460..d502053203 100644 --- a/addons/explosives/stringtable.xml +++ b/addons/explosives/stringtable.xml @@ -143,7 +143,7 @@ M57 Odpalovací Zařízení Detonatore M57 M57 Detonátor - M57 Dispositivo de Detonação + Dispositivo de Detonação M57 Взрыватель M57 @@ -251,7 +251,7 @@ Nahoru Sopra Fel - Cima + Para cima Поднять @@ -263,7 +263,7 @@ Dolu Sotto Le - Baixo + Para Baixo Опустить @@ -407,7 +407,7 @@ Nástražný drát Filo a Inciampo Botlódrót - Linha de tração + Fio de ativação Натяжной @@ -478,6 +478,7 @@ Czuwak Detonador de hombre muerto Dead Man's Switch + Detonador do homem morto Кнопка мертвеца @@ -488,10 +489,12 @@ Używany w celu zdalnej detonacji ładunków kiedy jego operator zostanie zabity. Utilizado para detonar explosivos remotamente al soltarlo. Robbanóanyagok távoli robbantásához + Usado para detonar remotamente o explosivo quando solto. Используется для дистанционного подрыва, после смерти оператора. Pick up + Pegar From be7a579f7d975888a762c509bcdd06c19f236c7d Mon Sep 17 00:00:00 2001 From: VyMajoris Date: Thu, 9 Apr 2015 22:50:35 -0300 Subject: [PATCH 032/256] Added - Portuguese translation to LaseTarget There is no way to translate Lase Target in a faithful way to portuguese. If "Marcar com laser" is too big, "Marcar Alvo" is a solid alternative for all intents and purposes... --- addons/fcs/stringtable.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/addons/fcs/stringtable.xml b/addons/fcs/stringtable.xml index 154d874f73..b816dc21ad 100644 --- a/addons/fcs/stringtable.xml +++ b/addons/fcs/stringtable.xml @@ -15,6 +15,7 @@ Marcar Alvo Designatore Laser --> + Marcar com laser / Medir Distância Подсветить цель / Измерить расстояние From c260ff89baccb33b5236330563d71f954f5d3044 Mon Sep 17 00:00:00 2001 From: VyMajoris Date: Thu, 9 Apr 2015 23:00:13 -0300 Subject: [PATCH 033/256] Added - Portuguese Translation to Interact_menu --- addons/interact_menu/stringtable.xml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/addons/interact_menu/stringtable.xml b/addons/interact_menu/stringtable.xml index 6e5ce8fdb2..1027daa358 100644 --- a/addons/interact_menu/stringtable.xml +++ b/addons/interact_menu/stringtable.xml @@ -4,18 +4,23 @@ Always display cursor for self interaction + Sempre mostrar cursor para interação pessoal Interact Key + Tecla de Interação Self Interaction Key + Tecla de Interação Pessoal Self Actions + Ações Pessoais Vehicle Actions + Ações de Veículos - \ No newline at end of file + From ec8e2707f81097f7fb8ef107dad00306d412d8a4 Mon Sep 17 00:00:00 2001 From: VyMajoris Date: Thu, 9 Apr 2015 23:05:47 -0300 Subject: [PATCH 034/256] Added - Portuguese translation to inventory --- addons/inventory/stringtable.xml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/addons/inventory/stringtable.xml b/addons/inventory/stringtable.xml index 9ca01373d1..e716041c15 100644 --- a/addons/inventory/stringtable.xml +++ b/addons/inventory/stringtable.xml @@ -4,9 +4,12 @@ Make Inventory Display Bigger + Aumentar o Tamanho da Tela do Inventário Normally inventory display is scaled by UI size. This allows scaling the Inventory UI size up, but doesn't increase font size allowing more rows displayed. + Normalmente o tamanho da tela do inventário é ditada pelo tamanho da UI. Isso permite aumentar o tamanho da tela de inventário, mas não aumenta o tamanho da fonte, permitindo que mais linhas sejam visualizadas. + - \ No newline at end of file + From f7166047dc3b12f6e3e621de3d709c095c2cc9c7 Mon Sep 17 00:00:00 2001 From: VyMajoris Date: Fri, 10 Apr 2015 05:01:11 -0300 Subject: [PATCH 035/256] Added - Portuguese translation to Kestrel ApproximateTemp --- addons/kestrel/stringtable.xml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/addons/kestrel/stringtable.xml b/addons/kestrel/stringtable.xml index 5f54fd6489..5478ccd69d 100644 --- a/addons/kestrel/stringtable.xml +++ b/addons/kestrel/stringtable.xml @@ -11,6 +11,7 @@ Odhadovaná teplota Hőmérséklet nagyábol Примерная температура + Temperatura Aproximada Kestrel 4500NV @@ -61,4 +62,4 @@ Закрыть Kestrel - \ No newline at end of file + From 37858ec430e769fb7384714fc3ac64f5ff74b588 Mon Sep 17 00:00:00 2001 From: VyMajoris Date: Fri, 10 Apr 2015 05:04:15 -0300 Subject: [PATCH 036/256] Added - Portuguese translation to laser_selfdesignate --- addons/laser_selfdesignate/stringtable.xml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/addons/laser_selfdesignate/stringtable.xml b/addons/laser_selfdesignate/stringtable.xml index 70f8912cfe..6af47505b3 100644 --- a/addons/laser_selfdesignate/stringtable.xml +++ b/addons/laser_selfdesignate/stringtable.xml @@ -4,9 +4,11 @@ Laser<br/>Designator On + Desiginador<br/>Laser Ligado Laser<br/>Designator Off + Desiginador<br/>Laser Desligado - \ No newline at end of file + From a0a0cfbfbd3b6facb8533530b71070a488321074 Mon Sep 17 00:00:00 2001 From: VyMajoris Date: Fri, 10 Apr 2015 05:07:44 -0300 Subject: [PATCH 037/256] Added - Portuguese translation to laserpointer --- addons/laserpointer/stringtable.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/addons/laserpointer/stringtable.xml b/addons/laserpointer/stringtable.xml index 87b36618a6..d34c9caa38 100644 --- a/addons/laserpointer/stringtable.xml +++ b/addons/laserpointer/stringtable.xml @@ -5,15 +5,18 @@ Laser Pointer (red) Laserpointer (rot) + Laser (vermelho) Laser Pointer (green) Laserpointer (grün) + Laser (verde) Emits visible light. Strahlt sichtbares Licht aus. + Emite luz visível From 599ae092da8c78f484f45fa57d3b763d8d682ee2 Mon Sep 17 00:00:00 2001 From: VyMajoris Date: Fri, 10 Apr 2015 05:09:43 -0300 Subject: [PATCH 038/256] Changed - added dot on description --- addons/laserpointer/stringtable.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/laserpointer/stringtable.xml b/addons/laserpointer/stringtable.xml index d34c9caa38..bd4a0cbba8 100644 --- a/addons/laserpointer/stringtable.xml +++ b/addons/laserpointer/stringtable.xml @@ -16,7 +16,7 @@ Emits visible light. Strahlt sichtbares Licht aus. - Emite luz visível + Emite luz visível. From baf015ff5ab72d7a6305df86650238b8bbb66280 Mon Sep 17 00:00:00 2001 From: VyMajoris Date: Fri, 10 Apr 2015 05:22:46 -0300 Subject: [PATCH 039/256] Added - Portuguese Translation to logistics_uavbattery The correct translation of "UAV" to Portuguese is indeed "VANT", but this term is not used as "UAV" is. In reality, most Portuguese speaking people knows what an "UAV" is but if you use the Portuguese translation they have no idea of what you are talking about. Another alternative is to use the word "Drone". Everyone knows what a drone its, however, I find that the "UAV" is more in terms with the authenticity aspect of ACE3, since it the military uses the word "UAV" instead of "Drone" Also, it seems that somebody wrote "UAV's" instead of "UAVs". If you intentd to use the plural, you should not use the Apostrophe. I am not correcting this since I am not sure if indeed this was intended for plural or not. --- addons/logistics_uavbattery/stringtable.xml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/addons/logistics_uavbattery/stringtable.xml b/addons/logistics_uavbattery/stringtable.xml index fbd9004290..6acb2b571d 100644 --- a/addons/logistics_uavbattery/stringtable.xml +++ b/addons/logistics_uavbattery/stringtable.xml @@ -10,7 +10,7 @@ Dron jest naładowany A drón fel van töltve Dron je nabitý - O VANT está cheio + O UAV está cheio Il drone è pieno БПЛА заполнен @@ -22,7 +22,7 @@ Potrzebujesz baterii UAV Szükséged van egy UAV akkumulátorra Potřebuješ UAV-Baterii - Você precisa de uma Bateria para VANT + Você precisa de uma Bateria para UAVs Hai bisogno di una Batteria UAV Требуется аккумулятор БПЛА @@ -46,8 +46,8 @@ Bateria UAV UAV akkumulátor UAV-Baterie - Bateria para VANT - Batteria UAV + Bateria para UAV + Batteria para UAVs Аккумулятор БПЛА @@ -58,7 +58,7 @@ Używana do naładowania UAV Hordozható UAV-ok működéséhez való akkumulátor Používané k dobíjení UAV - Usada para reabastecer VANT + Usada para reabastecer o UAV Usata per ricaricare la Batteria dell'UAV Используется для подзарядки БПЛА @@ -75,4 +75,4 @@ Подзаряжаем ... - \ No newline at end of file + From f0468fa7c8102d733a7b4e6bed25654e89bc324a Mon Sep 17 00:00:00 2001 From: Niko Lehtovirta Date: Fri, 10 Apr 2015 14:21:52 +0300 Subject: [PATCH 040/256] Changed spawn code on respawn to PFH format --- addons/respawn/functions/fnc_module.sqf | 18 +++-- .../respawn/functions/fnc_moveRallypoint.sqf | 65 ++++++++++--------- addons/respawn/functions/fnc_removeBody.sqf | 25 +++---- 3 files changed, 60 insertions(+), 48 deletions(-) diff --git a/addons/respawn/functions/fnc_module.sqf b/addons/respawn/functions/fnc_module.sqf index 6d03c1eda3..391209009f 100644 --- a/addons/respawn/functions/fnc_module.sqf +++ b/addons/respawn/functions/fnc_module.sqf @@ -33,15 +33,19 @@ GVAR(Module) = true; if (isServer) then { if (GVAR(RemoveDeadBodiesDisconnected)) then { _fnc_deleteDisconnected = { - _this spawn { - _unit = _this select 0; + [ + { + _unit = (_this select 0) select 0; - sleep 4; - - if (!alive _unit) then { + if (!alive _unit) then { deleteVehicle _unit; - }; - }; + + [_this select 0] call CBA_fnc_removePerFrameHandler; + }; + }, + 4, + [_this] + ] call CBA_fnc_addPerFrameHandler false }; diff --git a/addons/respawn/functions/fnc_moveRallypoint.sqf b/addons/respawn/functions/fnc_moveRallypoint.sqf index dcd4810844..28dcc54326 100644 --- a/addons/respawn/functions/fnc_moveRallypoint.sqf +++ b/addons/respawn/functions/fnc_moveRallypoint.sqf @@ -1,54 +1,59 @@ /* Name: ACE_Respawn_fnc_moveRallypoint - + Author(s): commy2 - + Description: Moves a rallypoint to the player's location - + Parameters: 0: OBJECT - unit 1: OBJECT - side - + Returns: VOID */ #include "script_component.hpp" -_this spawn { - _unit = _this select 0; - _side = _this select 1; +_unit = _this select 0; +_side = _this select 1; - // rallypoint names are defined in CfgVehicles.hpp +// rallypoint names are defined in CfgVehicles.hpp - _rallypoint = [ - objNull, - missionNamespace getVariable ["ACE_Rallypoint_West", objNull], - missionNamespace getVariable ["ACE_RallypointExit_East", objNull], - missionNamespace getVariable ["ACE_RallypointExit_Independent", objNull] - ] select ([west, east, independent] find _side) + 1; +_rallypoint = [ + objNull, + missionNamespace getVariable ["ACE_Rallypoint_West", objNull], + missionNamespace getVariable ["ACE_RallypointExit_East", objNull], + missionNamespace getVariable ["ACE_RallypointExit_Independent", objNull] +] select ([west, east, independent] find _side) + 1; - if (isNull _rallypoint) exitWith {}; +if (isNull _rallypoint) exitWith {}; - _position = getPosATL _unit; - _position = _position findEmptyPosition [0, 2, typeOf _rallypoint]; - if (count _position == 0) then {_position = getPosATL _unit}; +_position = getPosATL _unit; +_position = _position findEmptyPosition [0, 2, typeOf _rallypoint]; +if (count _position == 0) then {_position = getPosATL _unit}; - _position set [2, 0]; +_position set [2, 0]; - [localize "STR_ACE_Respawn_Deploy"] call EFUNC(common,displayTextStructured); +[localize "STR_ACE_Respawn_Deploy"] call EFUNC(common,displayTextStructured); - sleep 5; - _rallypoint setPosATL _position; - _unit reveal _rallypoint; +[{ + _args = _this select 0; + _rallypoint = _args select 0; + _unit = _args select 1; + _position = _args select 2; + _rallypoint = _args select 3; - /* - _marker = format ["AGM_RallyPoint_%1", _side]; - _marker setMarkerPos _position; - _marker setMarkerTextLocal format ["%1:%2", [date select 3, 2, 0] call CBA_fnc_FORMATNumber, [date select 4, 2, 0] call CBA_fnc_FORMATNumber]; - */ + _rallypoint setPosATL _position; + _unit reveal _rallypoint; - [localize "STR_ACE_Respawn_Deploy"] call EFUNC(common,displayTextStructured); -}; + /* + _marker = format ["AGM_RallyPoint_%1", _side]; + _marker setMarkerPos _position; + _marker setMarkerTextLocal format ["%1:%2", [date select 3, 2, 0] call CBA_fnc_FORMATNumber, [date select 4, 2, 0] call CBA_fnc_FORMATNumber]; + */ + + [localize "STR_ACE_Respawn_Deploy"] call EFUNC(common,displayTextStructured); +}, 5, [_rallypoint, _unit, _position, _rallypoint]] diff --git a/addons/respawn/functions/fnc_removeBody.sqf b/addons/respawn/functions/fnc_removeBody.sqf index 5c3ed14988..a17193aa1a 100644 --- a/addons/respawn/functions/fnc_removeBody.sqf +++ b/addons/respawn/functions/fnc_removeBody.sqf @@ -1,22 +1,22 @@ /* Name: ACE_Respawn_fnc_removeBody - + Author(s): bux578 - + Description: removes a given body - + Parameters: 0: OBJECT - body 1: BOOLEAN - forceRemove // not used atm - + Returns: VOID */ #include "script_component.hpp" - + private ["_body", "_forceRemove", "_bodyRemoveTimer"]; _body = _this select 0; @@ -29,9 +29,12 @@ if (_forceRemove) then { _bodyRemoveTimer = 2; }; -[_body, _bodyRemoveTimer] spawn { - sleep (_this select 1); - // hideBody takes ~20s till body is fully underground - // a better hideBody would make this more aesthetic - deleteVehicle (_this select 0); -}; +[{ + + _unit = (_this select 1) select 0; + // hideBody takes ~20s till body is fully underground + // a better hideBody would make this more aesthetic + deleteVehicle _unit; +}, +_bodyRemoveTime, +[_body]] call CBA_fnc_addPerFrameHandler \ No newline at end of file From 9f2f660b89aec6c342cb429643deba54b7d6dce3 Mon Sep 17 00:00:00 2001 From: Niko Lehtovirta Date: Fri, 10 Apr 2015 16:23:27 +0300 Subject: [PATCH 041/256] fixed PFH to use EFUNC(common,waitAndExecute) --- addons/respawn/functions/fnc_module.sqf | 33 +++++++++-------- .../respawn/functions/fnc_moveRallypoint.sqf | 36 ++++++++++--------- addons/respawn/functions/fnc_removeBody.sqf | 19 +++++----- 3 files changed, 45 insertions(+), 43 deletions(-) diff --git a/addons/respawn/functions/fnc_module.sqf b/addons/respawn/functions/fnc_module.sqf index 391209009f..57ebb91615 100644 --- a/addons/respawn/functions/fnc_module.sqf +++ b/addons/respawn/functions/fnc_module.sqf @@ -32,24 +32,23 @@ GVAR(Module) = true; if (isServer) then { if (GVAR(RemoveDeadBodiesDisconnected)) then { - _fnc_deleteDisconnected = { - [ - { - _unit = (_this select 0) select 0; + addMissionEventHandler ["HandleDisconnect", + { + [ + { + _unit = _this select 0; - if (!alive _unit) then { - deleteVehicle _unit; - - [_this select 0] call CBA_fnc_removePerFrameHandler; - }; - }, - 4, - [_this] - ] call CBA_fnc_addPerFrameHandler - false - }; - - addMissionEventHandler ["HandleDisconnect", _fnc_deleteDisconnected]; + if (!alive _unit) then { + deleteVehicle _unit; + }; + }, + _this, + 4, + 1 + ] call EFUNC(common,waitAndExecute); + false + } + ]; }; }; diff --git a/addons/respawn/functions/fnc_moveRallypoint.sqf b/addons/respawn/functions/fnc_moveRallypoint.sqf index 28dcc54326..96672fecd6 100644 --- a/addons/respawn/functions/fnc_moveRallypoint.sqf +++ b/addons/respawn/functions/fnc_moveRallypoint.sqf @@ -37,23 +37,25 @@ if (count _position == 0) then {_position = getPosATL _unit}; _position set [2, 0]; -[localize "STR_ACE_Respawn_Deploy"] call EFUNC(common,displayTextStructured); +[ + { + _rallypoint = _this select 0; + _unit = _this select 1; + _position = _this select 2; + _rallypoint = _this select 3; -[{ - _args = _this select 0; - _rallypoint = _args select 0; - _unit = _args select 1; - _position = _args select 2; - _rallypoint = _args select 3; + _rallypoint setPosATL _position; + _unit reveal _rallypoint; - _rallypoint setPosATL _position; - _unit reveal _rallypoint; + /* + _marker = format ["AGM_RallyPoint_%1", _side]; + _marker setMarkerPos _position; + _marker setMarkerTextLocal format ["%1:%2", [date select 3, 2, 0] call CBA_fnc_FORMATNumber, [date select 4, 2, 0] call CBA_fnc_FORMATNumber]; + */ - /* - _marker = format ["AGM_RallyPoint_%1", _side]; - _marker setMarkerPos _position; - _marker setMarkerTextLocal format ["%1:%2", [date select 3, 2, 0] call CBA_fnc_FORMATNumber, [date select 4, 2, 0] call CBA_fnc_FORMATNumber]; - */ - - [localize "STR_ACE_Respawn_Deploy"] call EFUNC(common,displayTextStructured); -}, 5, [_rallypoint, _unit, _position, _rallypoint]] + [localize "STR_ACE_Respawn_Deploy"] call EFUNC(common,displayTextStructured); + }, + [_rallypoint, _unit, _position, _rallypoint], + 5, + 1 +] call EFUNC(common,waitAndExecute); diff --git a/addons/respawn/functions/fnc_removeBody.sqf b/addons/respawn/functions/fnc_removeBody.sqf index a17193aa1a..4b7deaa6ce 100644 --- a/addons/respawn/functions/fnc_removeBody.sqf +++ b/addons/respawn/functions/fnc_removeBody.sqf @@ -29,12 +29,13 @@ if (_forceRemove) then { _bodyRemoveTimer = 2; }; -[{ - - _unit = (_this select 1) select 0; - // hideBody takes ~20s till body is fully underground - // a better hideBody would make this more aesthetic - deleteVehicle _unit; -}, -_bodyRemoveTime, -[_body]] call CBA_fnc_addPerFrameHandler \ No newline at end of file +[ + { + // hideBody takes ~20s till body is fully underground + // a better hideBody would make this more aesthetic + deleteVehicle _this; + }, + _body, + _bodyRemoveTimer, + 1 +] call EFUNC(common,waitAndExecute); From dac3047fcaf426a2e9a135dab304621fd195d833 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Fri, 10 Apr 2015 22:16:33 -0500 Subject: [PATCH 042/256] Use AllVehicles Instead of CAManBase --- addons/hearing/CfgEventHandlers.hpp | 4 ++-- addons/hearing/functions/fnc_firedNear.sqf | 24 +++++++++++----------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/addons/hearing/CfgEventHandlers.hpp b/addons/hearing/CfgEventHandlers.hpp index 94b1ab0703..cfe71fe01d 100644 --- a/addons/hearing/CfgEventHandlers.hpp +++ b/addons/hearing/CfgEventHandlers.hpp @@ -20,9 +20,9 @@ class Extended_Init_EventHandlers { }; class Extended_FiredNear_EventHandlers { - class CAManBase { + class AllVehicles { class GVAR(FiredNear) { - clientFiredNear = QUOTE( if (GVAR(enableCombatDeafness) && {_this select 0 == ACE_player}) then {_this call FUNC(firedNear)}; ); + clientFiredNear = QUOTE(_this call FUNC(firedNear);); }; }; }; diff --git a/addons/hearing/functions/fnc_firedNear.sqf b/addons/hearing/functions/fnc_firedNear.sqf index c66361801e..2351afe3c5 100644 --- a/addons/hearing/functions/fnc_firedNear.sqf +++ b/addons/hearing/functions/fnc_firedNear.sqf @@ -21,23 +21,23 @@ */ #include "script_component.hpp" -private ["_unit", "_firer", "_distance", "_weapon", "_muzzle", "_mode", "_ammo", "_silencer", "_audibleFireCoef", "_loudness", "_strength"]; +private ["_silencer", "_audibleFireCoef", "_loudness", "_strength"]; -_unit = _this select 0; -_firer = _this select 1; -_distance = (_this select 2) max 1; -_weapon = _this select 3; -_muzzle = _this select 4; -_mode = _this select 5; -_ammo = _this select 6; +PARAMS_7(_object,_firer,_distance,_weapon,_muzzle,_mode,_ammo); +//Only run if combatDeafness enabled: +if (!GVAR(enableCombatDeafness)) exitWith {}; +//Only run if firedNear object is player or player's vehicle: +if ((ACE_player != (_this select 0)) && {(vehicle ACE_player) != (_this select 0)}) exitWith {}; if (_weapon in ["Throw", "Put"]) exitWith {}; if (_unit != vehicle _unit && {!([_unit] call EFUNC(common,isTurnedOut))}) exitWith {}; +if (_distance < 1) then {_distance = 1;}; + _silencer = switch (_weapon) do { - case (primaryWeapon _firer) : {(primaryWeaponItems _firer) select 0}; - case (secondaryWeapon _firer) : {(secondaryWeaponItems _firer) select 0}; - case (handgunWeapon _firer) : {(handgunItems _firer) select 0}; +case (primaryWeapon _firer) : {(primaryWeaponItems _firer) select 0}; +case (secondaryWeapon _firer) : {(secondaryWeaponItems _firer) select 0}; +case (handgunWeapon _firer) : {(handgunItems _firer) select 0}; default {""}; }; @@ -56,4 +56,4 @@ _strength = _loudness - (_loudness/50 * _distance); // linear drop off if (_strength < 0.01) exitWith {}; -[{_this call FUNC(earRinging)}, [_unit, _strength], 0.2, 0] call EFUNC(common,waitAndExecute); +[{_this call FUNC(earRinging)}, [ACE_player, _strength], 0.2, 0] call EFUNC(common,waitAndExecute); From 0edcf03e1253d1ed1b7c5b4014a90e953aa1184e Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Fri, 10 Apr 2015 23:21:54 -0500 Subject: [PATCH 043/256] Handle Vehicle Attunation --- addons/hearing/XEH_postInit.sqf | 5 ++ addons/hearing/XEH_preInit.sqf | 1 + addons/hearing/functions/fnc_firedNear.sqf | 5 +- .../fnc_updatePlayerVehicleAttunation.sqf | 57 +++++++++++++++++++ 4 files changed, 66 insertions(+), 2 deletions(-) create mode 100644 addons/hearing/functions/fnc_updatePlayerVehicleAttunation.sqf diff --git a/addons/hearing/XEH_postInit.sqf b/addons/hearing/XEH_postInit.sqf index adb7827ce7..76656bf70b 100644 --- a/addons/hearing/XEH_postInit.sqf +++ b/addons/hearing/XEH_postInit.sqf @@ -5,3 +5,8 @@ GVAR(newStrength) = 0; // Spawn volume updating process [FUNC(updateVolume), 0.1, [] ] call CBA_fnc_addPerFrameHandler; + +GVAR(playerVehAttunation) = 1; + +["playerVehicleChanged", {_this call FUNC(updatePlayerVehicleAttunation);}] call EFUNC(common,addEventHandler); +["playerTurretChanged", {_this call FUNC(updatePlayerVehicleAttunation);}] call EFUNC(common,addEventHandler); diff --git a/addons/hearing/XEH_preInit.sqf b/addons/hearing/XEH_preInit.sqf index 0785a32aff..4ac4c779cd 100644 --- a/addons/hearing/XEH_preInit.sqf +++ b/addons/hearing/XEH_preInit.sqf @@ -10,6 +10,7 @@ PREP(hasEarPlugsIn); PREP(moduleHearing); PREP(putInEarPlugs); PREP(removeEarPlugs); +PREP(updatePlayerVehicleAttunation); PREP(updateVolume); ADDON = true; diff --git a/addons/hearing/functions/fnc_firedNear.sqf b/addons/hearing/functions/fnc_firedNear.sqf index 2351afe3c5..bd6a503528 100644 --- a/addons/hearing/functions/fnc_firedNear.sqf +++ b/addons/hearing/functions/fnc_firedNear.sqf @@ -30,7 +30,8 @@ if (!GVAR(enableCombatDeafness)) exitWith {}; //Only run if firedNear object is player or player's vehicle: if ((ACE_player != (_this select 0)) && {(vehicle ACE_player) != (_this select 0)}) exitWith {}; if (_weapon in ["Throw", "Put"]) exitWith {}; -if (_unit != vehicle _unit && {!([_unit] call EFUNC(common,isTurnedOut))}) exitWith {}; + +_attenuation = if ((ACE_player == (vehicle ACE_player)) || {isTurnedOut ACE_player}) then {1} else {GVAR(playerVehAttunation)}; if (_distance < 1) then {_distance = 1;}; @@ -52,7 +53,7 @@ _audibleFire = getNumber (configFile >> "CfgAmmo" >> _ammo >> "audibleFire"); //_audibleFireTime = getNumber (configFile >> "CfgAmmo" >> _ammo >> "audibleFireTime"); _loudness = _audibleFireCoef * _audibleFire / 64; -_strength = _loudness - (_loudness/50 * _distance); // linear drop off +_strength = _attenuation * (_loudness - (_loudness/50 * _distance)); // linear drop off if (_strength < 0.01) exitWith {}; diff --git a/addons/hearing/functions/fnc_updatePlayerVehicleAttunation.sqf b/addons/hearing/functions/fnc_updatePlayerVehicleAttunation.sqf new file mode 100644 index 0000000000..bb4899e998 --- /dev/null +++ b/addons/hearing/functions/fnc_updatePlayerVehicleAttunation.sqf @@ -0,0 +1,57 @@ +/* + * Author: PabstMirror + * Gets the sound attunation of a player to the outside. + * + * Arguments: + * 0: Unit (player) + * + * Return Value: + * Ammount that unit can hear outside + * + * Example: + * [] call ace_hearing_fnc_updatePlayerVehicleAttunation + * + * Public: No + */ +#include "script_component.hpp" + +_vehicle = vehicle ACE_player; + +if (isNull _vehicle) exitWith {}; + +_newAttenuation = -1; +if (ACE_player == _vehicle) then { + _newAttenuation = 1; +} else { + _effectType = ""; + _turretPath = [ACE_player] call EFUNC(common,getTurretIndex); + systemChat format ["_turretPath %1", _turretPath]; + _effectType = getText (configFile >> "CfgVehicles" >> (typeOf _vehicle) >> "attenuationEffectType"); + systemChat format ["Veh EffectType %1", _effectType]; + if (!(_turretPath isEqualTo [])) then { + _turretConfig = [(configFile >> "CfgVehicles" >> (typeOf _vehicle)), _turretPath] call EFUNC(common,getTurretConfigPath); + + if ((getNumber (_turretConfig >> "disableSoundAttenuation")) == 1) then { + _effectType = ""; + } else { + if (isText (_turretConfig >> "soundAttenuationTurret")) then { + _effectType = getText (_turretConfig >> "soundAttenuationTurret"); + }; + }; + }; + + _newAttenuation = switch (true) do { + case (_effectType == ""): {1}; + case (_effectType == "CarAttenuation"): {0.7}; + case (_effectType == "OpenCarAttenuation"): {1}; + case (_effectType == "TankAttenuation"): {0.1}; + case (_effectType == "HeliAttenuation"): {0.25}; + case (_effectType == "OpenHeliAttenuation"): {0.7}; + case (_effectType == "SemiOpenHeliAttenuation"): {0.5}; + case (_effectType == "HeliAttenuationGunner"): {0.75}; + case (_effectType == "HeliAttenuationRamp"): {0.75}; + default {1}; + }; +}; + +GVAR(playerVehAttunation) = _newAttenuation; From ae064359f6e096c32b785a03b0740044dc12fc19 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Fri, 10 Apr 2015 23:51:07 -0500 Subject: [PATCH 044/256] Remove Debug --- addons/hearing/XEH_postInit.sqf | 6 ++++-- addons/hearing/functions/fnc_firedNear.sqf | 8 ++++---- .../functions/fnc_updatePlayerVehicleAttunation.sqf | 5 ++--- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/addons/hearing/XEH_postInit.sqf b/addons/hearing/XEH_postInit.sqf index 76656bf70b..4dc22efd4f 100644 --- a/addons/hearing/XEH_postInit.sqf +++ b/addons/hearing/XEH_postInit.sqf @@ -1,12 +1,14 @@ #include "script_component.hpp" +if (!hasInterface) exitWith {}; + GVAR(currentDeafness) = 0; GVAR(newStrength) = 0; +GVAR(playerVehAttunation) = 1; // Spawn volume updating process [FUNC(updateVolume), 0.1, [] ] call CBA_fnc_addPerFrameHandler; -GVAR(playerVehAttunation) = 1; - +//Update veh attunation when player veh changes ["playerVehicleChanged", {_this call FUNC(updatePlayerVehicleAttunation);}] call EFUNC(common,addEventHandler); ["playerTurretChanged", {_this call FUNC(updatePlayerVehicleAttunation);}] call EFUNC(common,addEventHandler); diff --git a/addons/hearing/functions/fnc_firedNear.sqf b/addons/hearing/functions/fnc_firedNear.sqf index bd6a503528..7b50a44a14 100644 --- a/addons/hearing/functions/fnc_firedNear.sqf +++ b/addons/hearing/functions/fnc_firedNear.sqf @@ -21,17 +21,17 @@ */ #include "script_component.hpp" -private ["_silencer", "_audibleFireCoef", "_loudness", "_strength"]; +private ["_silencer", "_audibleFireCoef", "_loudness", "_strength", "_vehAttenuation"]; PARAMS_7(_object,_firer,_distance,_weapon,_muzzle,_mode,_ammo); //Only run if combatDeafness enabled: if (!GVAR(enableCombatDeafness)) exitWith {}; //Only run if firedNear object is player or player's vehicle: -if ((ACE_player != (_this select 0)) && {(vehicle ACE_player) != (_this select 0)}) exitWith {}; +if ((ACE_player != _object) && {(vehicle ACE_player) != _object}) exitWith {}; if (_weapon in ["Throw", "Put"]) exitWith {}; -_attenuation = if ((ACE_player == (vehicle ACE_player)) || {isTurnedOut ACE_player}) then {1} else {GVAR(playerVehAttunation)}; +_vehAttenuation = if ((ACE_player == (vehicle ACE_player)) || {isTurnedOut ACE_player}) then {1} else {GVAR(playerVehAttunation)}; if (_distance < 1) then {_distance = 1;}; @@ -53,7 +53,7 @@ _audibleFire = getNumber (configFile >> "CfgAmmo" >> _ammo >> "audibleFire"); //_audibleFireTime = getNumber (configFile >> "CfgAmmo" >> _ammo >> "audibleFireTime"); _loudness = _audibleFireCoef * _audibleFire / 64; -_strength = _attenuation * (_loudness - (_loudness/50 * _distance)); // linear drop off +_strength = _vehAttenuation * (_loudness - (_loudness/50 * _distance)); // linear drop off if (_strength < 0.01) exitWith {}; diff --git a/addons/hearing/functions/fnc_updatePlayerVehicleAttunation.sqf b/addons/hearing/functions/fnc_updatePlayerVehicleAttunation.sqf index bb4899e998..e03fc23d50 100644 --- a/addons/hearing/functions/fnc_updatePlayerVehicleAttunation.sqf +++ b/addons/hearing/functions/fnc_updatePlayerVehicleAttunation.sqf @@ -25,12 +25,11 @@ if (ACE_player == _vehicle) then { } else { _effectType = ""; _turretPath = [ACE_player] call EFUNC(common,getTurretIndex); - systemChat format ["_turretPath %1", _turretPath]; _effectType = getText (configFile >> "CfgVehicles" >> (typeOf _vehicle) >> "attenuationEffectType"); - systemChat format ["Veh EffectType %1", _effectType]; + if (!(_turretPath isEqualTo [])) then { _turretConfig = [(configFile >> "CfgVehicles" >> (typeOf _vehicle)), _turretPath] call EFUNC(common,getTurretConfigPath); - + if ((getNumber (_turretConfig >> "disableSoundAttenuation")) == 1) then { _effectType = ""; } else { From b5e5359795f7ba5648ff7a335b907993e9bd80e1 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Sat, 11 Apr 2015 00:35:18 -0500 Subject: [PATCH 045/256] CursorCentered - Localizations --- addons/interact_menu/config.cpp | 3 ++- addons/interact_menu/stringtable.xml | 8 +++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/addons/interact_menu/config.cpp b/addons/interact_menu/config.cpp index 998098470e..9f1036dab9 100644 --- a/addons/interact_menu/config.cpp +++ b/addons/interact_menu/config.cpp @@ -27,6 +27,7 @@ class ACE_Settings { value = 0; typeName = "BOOL"; isClientSetable = 1; - displayName = "Keep cursor centered"; + displayName = "$STR_ACE_Interact_cursorKeepCentered"; + description = "$STR_ACE_Interact_cursorKeepCenteredDescription"; }; }; diff --git a/addons/interact_menu/stringtable.xml b/addons/interact_menu/stringtable.xml index 6e5ce8fdb2..fa37437b42 100644 --- a/addons/interact_menu/stringtable.xml +++ b/addons/interact_menu/stringtable.xml @@ -1,5 +1,5 @@  - + @@ -17,5 +17,11 @@ Vehicle Actions + + Keep cursor centered + + + Keeps cursor centered and pans the option menu around. Useful if screen size is limited. + \ No newline at end of file From 31a989795296d2012329487a275b42b7ecb75e8b Mon Sep 17 00:00:00 2001 From: VyMajoris Date: Sat, 11 Apr 2015 03:07:15 -0300 Subject: [PATCH 046/256] Added - Portuguese translation to wirecutter --- addons/logistics_wirecutter/stringtable.xml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/addons/logistics_wirecutter/stringtable.xml b/addons/logistics_wirecutter/stringtable.xml index cf6e96c1aa..376476ef84 100644 --- a/addons/logistics_wirecutter/stringtable.xml +++ b/addons/logistics_wirecutter/stringtable.xml @@ -6,9 +6,11 @@ Wirecutter Drahtschneider Wirecutter + Cortador de Arame Wirecutter + Cortador de Arame Cut Fence @@ -47,4 +49,4 @@ Забор вырезан - \ No newline at end of file + From 9d326ce9a5f002bcbc9162c556595221ead9506b Mon Sep 17 00:00:00 2001 From: VyMajoris Date: Sat, 11 Apr 2015 03:10:39 -0300 Subject: [PATCH 047/256] Added - Portuguese translation to magazineRepack --- addons/magazinerepack/stringtable.xml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/addons/magazinerepack/stringtable.xml b/addons/magazinerepack/stringtable.xml index d8fd5ca177..b857e5e6f5 100644 --- a/addons/magazinerepack/stringtable.xml +++ b/addons/magazinerepack/stringtable.xml @@ -78,16 +78,19 @@ Repacking Finished Wiederverpacken Fertig Reembalaje Finalizado + Reorganização Terminada Repacking Interrupted Umpacken Unterbrochen Reempaque Interrupted + Reorganização Interrompida %1 Full and %2 Partial %1 Vollständigen und %2 Teilweisen %1 Total y %2 Parcial + %1 Total e %2 Parcial - \ No newline at end of file + From 4b50d760e9ed90a257cad4379329db478d9d39dd Mon Sep 17 00:00:00 2001 From: Niko Lehtovirta Date: Sat, 11 Apr 2015 20:36:38 +0300 Subject: [PATCH 048/256] fixed to use proper 4-space tabbing --- addons/respawn/functions/fnc_module.sqf | 24 +++++++------------ .../respawn/functions/fnc_moveRallypoint.sqf | 10 +++----- addons/respawn/functions/fnc_removeBody.sqf | 9 ++----- 3 files changed, 14 insertions(+), 29 deletions(-) diff --git a/addons/respawn/functions/fnc_module.sqf b/addons/respawn/functions/fnc_module.sqf index 57ebb91615..77e435349f 100644 --- a/addons/respawn/functions/fnc_module.sqf +++ b/addons/respawn/functions/fnc_module.sqf @@ -32,23 +32,17 @@ GVAR(Module) = true; if (isServer) then { if (GVAR(RemoveDeadBodiesDisconnected)) then { - addMissionEventHandler ["HandleDisconnect", - { - [ - { - _unit = _this select 0; + addMissionEventHandler ["HandleDisconnect", { + [{ + _unit = _this select 0; - if (!alive _unit) then { - deleteVehicle _unit; - }; + if (!alive _unit) then { + deleteVehicle _unit; + }; }, - _this, - 4, - 1 - ] call EFUNC(common,waitAndExecute); - false - } - ]; + _this, 4, 1] call EFUNC(common,waitAndExecute); + false + }]; }; }; diff --git a/addons/respawn/functions/fnc_moveRallypoint.sqf b/addons/respawn/functions/fnc_moveRallypoint.sqf index 96672fecd6..30802c5de2 100644 --- a/addons/respawn/functions/fnc_moveRallypoint.sqf +++ b/addons/respawn/functions/fnc_moveRallypoint.sqf @@ -37,8 +37,7 @@ if (count _position == 0) then {_position = getPosATL _unit}; _position set [2, 0]; -[ - { +[{ _rallypoint = _this select 0; _unit = _this select 1; _position = _this select 2; @@ -54,8 +53,5 @@ _position set [2, 0]; */ [localize "STR_ACE_Respawn_Deploy"] call EFUNC(common,displayTextStructured); - }, - [_rallypoint, _unit, _position, _rallypoint], - 5, - 1 -] call EFUNC(common,waitAndExecute); +}, +[_rallypoint, _unit, _position, _rallypoint], 5, 1] call EFUNC(common,waitAndExecute); diff --git a/addons/respawn/functions/fnc_removeBody.sqf b/addons/respawn/functions/fnc_removeBody.sqf index 4b7deaa6ce..e00f633e6c 100644 --- a/addons/respawn/functions/fnc_removeBody.sqf +++ b/addons/respawn/functions/fnc_removeBody.sqf @@ -29,13 +29,8 @@ if (_forceRemove) then { _bodyRemoveTimer = 2; }; -[ - { +[{ // hideBody takes ~20s till body is fully underground // a better hideBody would make this more aesthetic deleteVehicle _this; - }, - _body, - _bodyRemoveTimer, - 1 -] call EFUNC(common,waitAndExecute); +}, _body, _bodyRemoveTimer, 1] call EFUNC(common,waitAndExecute); From 722bbf9a78b21676f1a51ed6de0ef805ea2ff5ef Mon Sep 17 00:00:00 2001 From: licht-im-Norden87 Date: Sun, 12 Apr 2015 15:55:02 +0200 Subject: [PATCH 049/256] Create README_DE.md --- README_DE.md | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 README_DE.md diff --git a/README_DE.md b/README_DE.md new file mode 100644 index 0000000000..a24fefe3f1 --- /dev/null +++ b/README_DE.md @@ -0,0 +1,48 @@ +

+ +

+

+ + ACE version + + + ACE download + + + ACE issues + + + ACE license + +

+

Benötigt eine Aktuelle Version von CBA A3 | BIF thread

+ +**ACE3** ist ein Gemeinschaftsprojekt der Moddinggruppen von **ACE2**, **AGM** und **CSE** um den Realismus und die Spieltiefe von Arma 3 zu steigern. + +Da die MOD vollkommen als **open-source** Projekt gestaltet ist, steht es jedem frei Änderungen vorzuschlagen, oder seine eigene, modifizierte Version zu erstellen, solange diese ebenfalls der Öffentlichkeit zugänglich ist und mit GNU General Public License konformt geht. (Weitere Informationen ist der Lizenzdatei in diesem Projekt entnehmbar) + +Die Mod ist **modular gestaltet** — beinahe jede PBO kann entfernt werden, sodass jede Gemeinschaft ihre eigene, thus a team can maintain its own tailored version of ACE, which excludes a select number of components that they don't like, or which conflict with other add-ons. Components themselves, like e.g. the medical system, also include various customization options, allowing mission designers to tweak the overall experience. + +### Features +* Improved medical system +* Logistics system including cargo transport and vehicle maintenance +* Explosives system including different trigger types +* Captivity system +* Realistic names for vehicles and weapons +* Realistic ballistics including wind and humidity +* Backblast simulation +* A fire control system for armored vehicles and helicopters + ***and more...*** + +#### Guides & How-Tos +If you installed ACE3, but have trouble understanding how it all works, or where to start — see [Getting Started](https://github.com/acemod/ACE3/blob/master/documentation/user/getting-started.md). + +#### Contributing +If you want to help put with the ongoing development, you can do so by looking for possible bugs or by contributing new features. To contribute something to ACE, simply fork this repository and submit your pull requests for review by other collaborators. In the process, please add yourself to the author array of any .pbo you will be editing and the AUTHORS.txt file; including a valid email address. + +To report a bug, propose a feature, or suggest a change to the existing one — please, use our [Issue Tracker](https://github.com/acemod/ACE3/issues). + +#### Testing & Building +If you want to help us test the latest development changes, feel free to download our master branch, using either git — if familiar with the process — or directly, by following [this link](https://github.com/acemod/ACE3/archive/master.zip). + +To find out how to set up your development environment and build a version of ACE for testing, follow [these instructions](https://github.com/acemod/ACE3/blob/master/documentation/development/setting-up-the-development-environment.md). From e7e95b9b1ecb03c3dd399203d33f3504ae792b72 Mon Sep 17 00:00:00 2001 From: licht-im-Norden87 Date: Sun, 12 Apr 2015 16:03:11 +0200 Subject: [PATCH 050/256] Update README_DE.md --- README_DE.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/README_DE.md b/README_DE.md index a24fefe3f1..634b1bcfad 100644 --- a/README_DE.md +++ b/README_DE.md @@ -19,22 +19,22 @@ **ACE3** ist ein Gemeinschaftsprojekt der Moddinggruppen von **ACE2**, **AGM** und **CSE** um den Realismus und die Spieltiefe von Arma 3 zu steigern. -Da die MOD vollkommen als **open-source** Projekt gestaltet ist, steht es jedem frei Änderungen vorzuschlagen, oder seine eigene, modifizierte Version zu erstellen, solange diese ebenfalls der Öffentlichkeit zugänglich ist und mit GNU General Public License konformt geht. (Weitere Informationen ist der Lizenzdatei in diesem Projekt entnehmbar) +Da die MOD vollkommen als **open-source** Projekt gestaltet ist, steht es jedem frei Änderungen vorzuschlagen, oder seine eigene, modifizierte Version zu erstellen, solange diese ebenfalls der Öffentlichkeit zugänglich ist und mit GNU General Public License übereinstimmt. (Weitere Informationen ist der Lizenzdatei in diesem Projekt entnehmbar) -Die Mod ist **modular gestaltet** — beinahe jede PBO kann entfernt werden, sodass jede Gemeinschaft ihre eigene, thus a team can maintain its own tailored version of ACE, which excludes a select number of components that they don't like, or which conflict with other add-ons. Components themselves, like e.g. the medical system, also include various customization options, allowing mission designers to tweak the overall experience. +Die Mod ist **modular gestaltet** — beinahe jede PBO kann entfernt werden, sodass jede Gemeinschaft ihre eigene Version der Mod unterhalten kann. Dies kann zum Beispiel einige Funktionalitäten auschließen, da das Feature nicht gewünscht ist, oder es mit einer anderen MOD in Konflikt gerät etc. .Ebenfalls können viele Einstellungen vom Missionsersteller vorgenommen werden (u.a. am medizinischem System), sodass eine individuelle Erfahrung gewährleistet wird. ### Features -* Improved medical system -* Logistics system including cargo transport and vehicle maintenance -* Explosives system including different trigger types +* Verbessertes medizinisches System +* Logistik System: U.a. Transport und Fahrzeugreperatur +* Sprengstoffsystem mit unterschiedlichen Auslösern * Captivity system -* Realistic names for vehicles and weapons -* Realistic ballistics including wind and humidity -* Backblast simulation -* A fire control system for armored vehicles and helicopters +* Reale Namen für vanilla Fahrzeuge und Waffen +* Realistisches ballistisches Verhalten (Wind und Luftfeuchtigkeit) +* Simulation der Rückstrahlzone +* Ein Feuerleitsystem für gepanzerte Fahrzeuge und Hubschrauber ***and more...*** -#### Guides & How-Tos +#### Anleitungen If you installed ACE3, but have trouble understanding how it all works, or where to start — see [Getting Started](https://github.com/acemod/ACE3/blob/master/documentation/user/getting-started.md). #### Contributing From d834bfd5ba6a5308edcab7af69073cf73c00319e Mon Sep 17 00:00:00 2001 From: licht-im-Norden87 Date: Sun, 12 Apr 2015 16:05:58 +0200 Subject: [PATCH 051/256] Update README_DE.md --- README_DE.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README_DE.md b/README_DE.md index 634b1bcfad..002d0994ce 100644 --- a/README_DE.md +++ b/README_DE.md @@ -32,12 +32,12 @@ Die Mod ist **modular gestaltet** — beinahe jede PBO kann entfernt werden, so * Realistisches ballistisches Verhalten (Wind und Luftfeuchtigkeit) * Simulation der Rückstrahlzone * Ein Feuerleitsystem für gepanzerte Fahrzeuge und Hubschrauber - ***and more...*** + ***und viel mehr...*** #### Anleitungen -If you installed ACE3, but have trouble understanding how it all works, or where to start — see [Getting Started](https://github.com/acemod/ACE3/blob/master/documentation/user/getting-started.md). +Du hast ACE3 installiert, hast aber keine Ahnung was und wie alles funktioniert und wo sich was befindet? [Erste Schritte](https://github.com/acemod/ACE3/blob/master/documentation/user/getting-started.md). -#### Contributing +#### Mitwirken If you want to help put with the ongoing development, you can do so by looking for possible bugs or by contributing new features. To contribute something to ACE, simply fork this repository and submit your pull requests for review by other collaborators. In the process, please add yourself to the author array of any .pbo you will be editing and the AUTHORS.txt file; including a valid email address. To report a bug, propose a feature, or suggest a change to the existing one — please, use our [Issue Tracker](https://github.com/acemod/ACE3/issues). From 2933a8653f870e687095bc88d440b5f2d8230811 Mon Sep 17 00:00:00 2001 From: licht-im-Norden87 Date: Sun, 12 Apr 2015 16:12:57 +0200 Subject: [PATCH 052/256] Update README_DE.md --- README_DE.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README_DE.md b/README_DE.md index 002d0994ce..81e4300e06 100644 --- a/README_DE.md +++ b/README_DE.md @@ -32,15 +32,15 @@ Die Mod ist **modular gestaltet** — beinahe jede PBO kann entfernt werden, so * Realistisches ballistisches Verhalten (Wind und Luftfeuchtigkeit) * Simulation der Rückstrahlzone * Ein Feuerleitsystem für gepanzerte Fahrzeuge und Hubschrauber - ***und viel mehr...*** + ***und noch viel mehr...*** #### Anleitungen Du hast ACE3 installiert, hast aber keine Ahnung was und wie alles funktioniert und wo sich was befindet? [Erste Schritte](https://github.com/acemod/ACE3/blob/master/documentation/user/getting-started.md). #### Mitwirken -If you want to help put with the ongoing development, you can do so by looking for possible bugs or by contributing new features. To contribute something to ACE, simply fork this repository and submit your pull requests for review by other collaborators. In the process, please add yourself to the author array of any .pbo you will be editing and the AUTHORS.txt file; including a valid email address. +Wenn du bei der Entwicklung der MOD mithelfen möchtest, so kannst du dies tun, indem du nach BUGS Ausschau hältst, oder neue Funktionen vorschlägst. Um etwas Beizutragen, "Forke" einfach dieses Archiv (bzw. repository) und erstelle deine "Pull-Request", welche von anderen Entwicklern und Beiträgern überprüft wird. Bitte trage dich dabei in "AUTHORS.txt" mit deinem Nutzernamen und einer gütligen Email-Adresse ein. -To report a bug, propose a feature, or suggest a change to the existing one — please, use our [Issue Tracker](https://github.com/acemod/ACE3/issues). +Um einen Bug oder ein Feature zu melden bzw. ein bereits Bestehendes zu ändern - nutze unseren [Issue Tracker](https://github.com/acemod/ACE3/issues). #### Testing & Building If you want to help us test the latest development changes, feel free to download our master branch, using either git — if familiar with the process — or directly, by following [this link](https://github.com/acemod/ACE3/archive/master.zip). From 0ccdd7b650013dc7c3072c82e6a81d6c8152d849 Mon Sep 17 00:00:00 2001 From: licht-im-Norden87 Date: Sun, 12 Apr 2015 16:28:56 +0200 Subject: [PATCH 053/256] Update README_DE.md --- README_DE.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/README_DE.md b/README_DE.md index 81e4300e06..a8eee2aa46 100644 --- a/README_DE.md +++ b/README_DE.md @@ -17,7 +17,7 @@

Benötigt eine Aktuelle Version von CBA A3 | BIF thread

-**ACE3** ist ein Gemeinschaftsprojekt der Moddinggruppen von **ACE2**, **AGM** und **CSE** um den Realismus und die Spieltiefe von Arma 3 zu steigern. +**ACE3** ist ein Gemeinschaftsprojekt der sich zusammengeschlossenenModdinggruppen von **ACE2**, **AGM** und **CSE** mit dem Ziel den Realismus und die Spieltiefe von Arma 3 zu steigern. Da die MOD vollkommen als **open-source** Projekt gestaltet ist, steht es jedem frei Änderungen vorzuschlagen, oder seine eigene, modifizierte Version zu erstellen, solange diese ebenfalls der Öffentlichkeit zugänglich ist und mit GNU General Public License übereinstimmt. (Weitere Informationen ist der Lizenzdatei in diesem Projekt entnehmbar) @@ -26,10 +26,10 @@ Die Mod ist **modular gestaltet** — beinahe jede PBO kann entfernt werden, so ### Features * Verbessertes medizinisches System * Logistik System: U.a. Transport und Fahrzeugreperatur -* Sprengstoffsystem mit unterschiedlichen Auslösern -* Captivity system -* Reale Namen für vanilla Fahrzeuge und Waffen -* Realistisches ballistisches Verhalten (Wind und Luftfeuchtigkeit) +* Sprengstoffsystem mit unterschiedlichen Zündern +* Gefangenensystem +* Reale Namen für Arma 3 Fahrzeuge und Waffen +* Realistisches, ballistisches Verhalten (Wind und Luftfeuchtigkeit) * Simulation der Rückstrahlzone * Ein Feuerleitsystem für gepanzerte Fahrzeuge und Hubschrauber ***und noch viel mehr...*** @@ -38,11 +38,11 @@ Die Mod ist **modular gestaltet** — beinahe jede PBO kann entfernt werden, so Du hast ACE3 installiert, hast aber keine Ahnung was und wie alles funktioniert und wo sich was befindet? [Erste Schritte](https://github.com/acemod/ACE3/blob/master/documentation/user/getting-started.md). #### Mitwirken -Wenn du bei der Entwicklung der MOD mithelfen möchtest, so kannst du dies tun, indem du nach BUGS Ausschau hältst, oder neue Funktionen vorschlägst. Um etwas Beizutragen, "Forke" einfach dieses Archiv (bzw. repository) und erstelle deine "Pull-Request", welche von anderen Entwicklern und Beiträgern überprüft wird. Bitte trage dich dabei in "AUTHORS.txt" mit deinem Nutzernamen und einer gütligen Email-Adresse ein. +Wenn du bei der Entwicklung der MOD mithelfen möchtest, so kannst du dies tun, indem du nach Fehlern Ausschau hältst, oder neue Funktionen vorschlägst. Um etwas beizutragen, "Forke" einfach dieses Archiv (bzw. repository) und erstelle deine "Pull-Request", welche von anderen Entwicklern und Beiträgern überprüft wird. Bitte trage dich dabei in "AUTHORS.txt" mit deinem Nutzernamen und einer gütligen Email-Adresse ein. -Um einen Bug oder ein Feature zu melden bzw. ein bereits Bestehendes zu ändern - nutze unseren [Issue Tracker](https://github.com/acemod/ACE3/issues). +Um einen Fehler oder ein Feature zu melden bzw. ein bereits Bestehendes zu ändern - nutze unseren [Issue Tracker](https://github.com/acemod/ACE3/issues). #### Testing & Building -If you want to help us test the latest development changes, feel free to download our master branch, using either git — if familiar with the process — or directly, by following [this link](https://github.com/acemod/ACE3/archive/master.zip). +Wenn du die neusten Entwicklungen erleben und uns dabei helfen möchtest bestehende Fehler zu entdecken, lade dir einfach die "Master Branch" herunter. Entweder nutzt du Git - wenn die Schritte bekannt sind - oder du lädst es dir direkt über [diesen Link] herunter (https://github.com/acemod/ACE3/archive/master.zip). -To find out how to set up your development environment and build a version of ACE for testing, follow [these instructions](https://github.com/acemod/ACE3/blob/master/documentation/development/setting-up-the-development-environment.md). +Wie du deine eigene Entwicklungsumgebung und eine Testversion von ACE erstellst folge [dieser Anleitung](https://github.com/acemod/ACE3/blob/master/documentation/development/setting-up-the-development-environment.md). From 333ce76016e93c560aaf927246b2c1bfebb1aeb0 Mon Sep 17 00:00:00 2001 From: licht-im-Norden87 Date: Sun, 12 Apr 2015 16:29:07 +0200 Subject: [PATCH 054/256] Update README_DE.md --- README_DE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README_DE.md b/README_DE.md index a8eee2aa46..70093e1ad0 100644 --- a/README_DE.md +++ b/README_DE.md @@ -17,7 +17,7 @@

Benötigt eine Aktuelle Version von CBA A3 | BIF thread

-**ACE3** ist ein Gemeinschaftsprojekt der sich zusammengeschlossenenModdinggruppen von **ACE2**, **AGM** und **CSE** mit dem Ziel den Realismus und die Spieltiefe von Arma 3 zu steigern. +**ACE3** ist ein Gemeinschaftsprojekt der sich zusammengeschlossenen Moddinggruppen von **ACE2**, **AGM** und **CSE** mit dem Ziel den Realismus und die Spieltiefe von Arma 3 zu steigern. Da die MOD vollkommen als **open-source** Projekt gestaltet ist, steht es jedem frei Änderungen vorzuschlagen, oder seine eigene, modifizierte Version zu erstellen, solange diese ebenfalls der Öffentlichkeit zugänglich ist und mit GNU General Public License übereinstimmt. (Weitere Informationen ist der Lizenzdatei in diesem Projekt entnehmbar) From 97e6b4039370c86c952453be1c659159cbe060e0 Mon Sep 17 00:00:00 2001 From: licht-im-Norden87 Date: Sun, 12 Apr 2015 16:30:01 +0200 Subject: [PATCH 055/256] Update README_DE.md --- README_DE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README_DE.md b/README_DE.md index 70093e1ad0..54ff7a41fc 100644 --- a/README_DE.md +++ b/README_DE.md @@ -21,7 +21,7 @@ Da die MOD vollkommen als **open-source** Projekt gestaltet ist, steht es jedem frei Änderungen vorzuschlagen, oder seine eigene, modifizierte Version zu erstellen, solange diese ebenfalls der Öffentlichkeit zugänglich ist und mit GNU General Public License übereinstimmt. (Weitere Informationen ist der Lizenzdatei in diesem Projekt entnehmbar) -Die Mod ist **modular gestaltet** — beinahe jede PBO kann entfernt werden, sodass jede Gemeinschaft ihre eigene Version der Mod unterhalten kann. Dies kann zum Beispiel einige Funktionalitäten auschließen, da das Feature nicht gewünscht ist, oder es mit einer anderen MOD in Konflikt gerät etc. .Ebenfalls können viele Einstellungen vom Missionsersteller vorgenommen werden (u.a. am medizinischem System), sodass eine individuelle Erfahrung gewährleistet wird. +Die Mod ist **modular gestaltet** — beinahe jede PBO kann entfernt werden, sodass jede Gemeinschaft ihre eigene Version der Mod unterhalten kann. Dies kann zum Beispiel einige Funktionalitäten ausschließen, da das Feature nicht gewünscht ist, oder es mit einer anderen MOD in Konflikt gerät etc. .Ebenfalls können viele Einstellungen vom Missionsersteller vorgenommen werden (u.a. am medizinischem System), sodass eine individuelle Erfahrung gewährleistet wird. ### Features * Verbessertes medizinisches System From 9850426492ab2bcff0bd165bff1b5b582f65ace4 Mon Sep 17 00:00:00 2001 From: licht-im-Norden87 Date: Sun, 12 Apr 2015 16:30:34 +0200 Subject: [PATCH 056/256] Update README_DE.md --- README_DE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README_DE.md b/README_DE.md index 54ff7a41fc..9bd6d06c51 100644 --- a/README_DE.md +++ b/README_DE.md @@ -25,7 +25,7 @@ Die Mod ist **modular gestaltet** — beinahe jede PBO kann entfernt werden, so ### Features * Verbessertes medizinisches System -* Logistik System: U.a. Transport und Fahrzeugreperatur +* Logistik System: U.a. Transport und Fahrzeugreparatur * Sprengstoffsystem mit unterschiedlichen Zündern * Gefangenensystem * Reale Namen für Arma 3 Fahrzeuge und Waffen From 0abb4a50339ca68ddf2b5fb02c9d9285a16ceb09 Mon Sep 17 00:00:00 2001 From: licht-im-Norden87 Date: Sun, 12 Apr 2015 16:33:40 +0200 Subject: [PATCH 057/256] Update README_DE.md --- README_DE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README_DE.md b/README_DE.md index 9bd6d06c51..75269666c3 100644 --- a/README_DE.md +++ b/README_DE.md @@ -43,6 +43,6 @@ Wenn du bei der Entwicklung der MOD mithelfen möchtest, so kannst du dies tun, Um einen Fehler oder ein Feature zu melden bzw. ein bereits Bestehendes zu ändern - nutze unseren [Issue Tracker](https://github.com/acemod/ACE3/issues). #### Testing & Building -Wenn du die neusten Entwicklungen erleben und uns dabei helfen möchtest bestehende Fehler zu entdecken, lade dir einfach die "Master Branch" herunter. Entweder nutzt du Git - wenn die Schritte bekannt sind - oder du lädst es dir direkt über [diesen Link] herunter (https://github.com/acemod/ACE3/archive/master.zip). +Wenn du die neusten Entwicklungen erleben und uns dabei helfen möchtest bestehende Fehler zu entdecken, lade dir einfach die "Master Branch" herunter. Entweder nutzt du Git - wenn die Schritte bekannt sind - oder du lädst es dir direkt über [diesen Link] (https://github.com/acemod/ACE3/archive/master.zip) herunter. Wie du deine eigene Entwicklungsumgebung und eine Testversion von ACE erstellst folge [dieser Anleitung](https://github.com/acemod/ACE3/blob/master/documentation/development/setting-up-the-development-environment.md). From 0d3e744183a71bad210c4daf9d144030fb0c4911 Mon Sep 17 00:00:00 2001 From: licht-im-Norden87 Date: Sun, 12 Apr 2015 16:36:28 +0200 Subject: [PATCH 058/256] Update README_DE.md --- README_DE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README_DE.md b/README_DE.md index 75269666c3..0b5ca4d0ef 100644 --- a/README_DE.md +++ b/README_DE.md @@ -42,7 +42,7 @@ Wenn du bei der Entwicklung der MOD mithelfen möchtest, so kannst du dies tun, Um einen Fehler oder ein Feature zu melden bzw. ein bereits Bestehendes zu ändern - nutze unseren [Issue Tracker](https://github.com/acemod/ACE3/issues). -#### Testing & Building +#### Testen & MOD erstellen Wenn du die neusten Entwicklungen erleben und uns dabei helfen möchtest bestehende Fehler zu entdecken, lade dir einfach die "Master Branch" herunter. Entweder nutzt du Git - wenn die Schritte bekannt sind - oder du lädst es dir direkt über [diesen Link] (https://github.com/acemod/ACE3/archive/master.zip) herunter. Wie du deine eigene Entwicklungsumgebung und eine Testversion von ACE erstellst folge [dieser Anleitung](https://github.com/acemod/ACE3/blob/master/documentation/development/setting-up-the-development-environment.md). From 51bc7208bcc4c94638238163afe0f25e568127ae Mon Sep 17 00:00:00 2001 From: simon84 Date: Sun, 12 Apr 2015 20:52:15 +0200 Subject: [PATCH 059/256] German translation Some german translations and corrections --- addons/disarming/stringtable.xml | 13 +- addons/hearing/stringtable.xml | 1 - addons/medical/stringtable.xml | 2110 +++++++++++++------------ addons/microdagr/stringtable.xml | 353 +++-- addons/nametags/stringtable.xml | 175 +- addons/optionsmenu/stringtable.xml | 308 ++-- addons/overheating/stringtable.xml | 308 ++-- addons/winddeflection/stringtable.xml | 88 +- 8 files changed, 1710 insertions(+), 1646 deletions(-) diff --git a/addons/disarming/stringtable.xml b/addons/disarming/stringtable.xml index 845d0c286e..7915b08578 100644 --- a/addons/disarming/stringtable.xml +++ b/addons/disarming/stringtable.xml @@ -1,9 +1,10 @@  - + - - - Open Inventory - - + + + Open Inventory + Inventar öffner + + \ No newline at end of file diff --git a/addons/hearing/stringtable.xml b/addons/hearing/stringtable.xml index 61be5206bf..2209290c5e 100644 --- a/addons/hearing/stringtable.xml +++ b/addons/hearing/stringtable.xml @@ -99,7 +99,6 @@ Disable ear ringing - Deaktiviere Ohrfiepen Desactivar zumbido de oídos Отключить эффект баротравмы Knalltrauma deaktivieren diff --git a/addons/medical/stringtable.xml b/addons/medical/stringtable.xml index 2bba27f26c..2ebd93a050 100644 --- a/addons/medical/stringtable.xml +++ b/addons/medical/stringtable.xml @@ -1,1032 +1,1082 @@  + - - - Inject Atropine - Atropin injizieren - Inyectar Atropina - Ввести атропин - Aplikovat atropin - - - Inject Epinephrine - Epinephrine injizieren - Inyectar Epinefrina - Wtrzyknij adrenalinę - Aplikovat adrenalin - Ввести андреналил - Adrénaline - Adrenalin - Injetar Epinefrina - Inietta Epinefrina - - - Inject Morphine - Morphin injizieren - Inyectar Morfina - Wstrzyknij morfinę - Aplikovat morfin - Ввести морфин - Morphine - Morfium - Injetar Morfina - Inietta Morfina - - - Transfuse Blood - Bluttransfusion - Transfundir sangre - Przetocz krew - Transfúze krve - Перелить кровь - Transfusion - Infúzió - Transfundir Sangue - Effettua Trasfusione - - - Transfuse Plasma - Plasmatransfusion - Transfundir plasma - Перелить плазму - Transfúze plazmy - - - Transfuse Saline - Salzlösungtransfusion - Transfundir salino - Влить физраствор - Transfúze fyziologický roztoku - - - Apply Tourniquet - Aderpresse anwenden - Aplicar torniquete - Наложить жгут - Aplikovat škrtidlo - - - Bandage - Verbinden - Venda - Bandaż - Obvázat - Pansement - Benda - Kötözés - Atadura - Перевязать - - - Bandage Head - Kopf verbinden - Vendar la cabeza - Bandażuj głowę - Obvázat hlavu - Перевязать голову - Pansement Tête - Fej kötözése - Atar Cabeça - Benda la testa - - - Bandage Torso - Torso verbinden - Vendar el torso - Bandażuj tors - Obvázat hruď - Перевязать торс - Pansement Torse - Felsőtest kötözése - Atar Tronco - Benda il torso - - - Bandage Left Arm - Arm links verbinden - Vendar el brazo izquierdo - Bandażuj lewe ramię - Obvázat levou ruku - Перевязать левую руку - Pansement Bras Gauche - Bal kar kötözése - Atar Braço Esquerdo - Benda il braccio sinistro - - - Bandage Right Arm - Arm rechts verbinden - Vendar el brazo derecho - Bandażuj prawe ramię - Obvázat pravou ruku - Перевязать правую руку - Pansement Bras Droit - Jobb kar kötözése - Atar Braço Direito - Benda il braccio destro - - - Bandage Left Leg - Bein links verbinden - Vendar la pierna izquierda - Bandażuj lewą nogę - Obvázat levou nohu - Перевязать левую ногу - Pansement Jambe Gauche - Bal láb kötözése - Atar Perna Esquerda - Benda la gamba sinistra - - - Bandage Right Leg - Bein rechts verbinden - Vendar la pierna derecha - Bandażuj prawą nogę - Obvázat pravou nohu - Перевязать правую ногу - Pansement Jambe Droite - Jobb láb kötözése - Atar Perna Direita - Benda la gamba destra - - - Injecting Morphine ... - Morphin injizieren ... - Inyectando Morfina ... - Wstrzykiwanie morfiny ... - Aplikuji morfin ... - Введение морфина... - Injection de Morphine... - Morfium beadása... - Injetando Morfina ... - Inietto la morfina ... - - - Injecting Epinephrine ... - Epinephrin injizieren ... - Inyectando Epinefrina ... - Wstrzykiwanie adrenaliny ... - Aplikuji adrenalin ... - Введение андреналина ... - Injection d'Adrénaline ... - Adrenalin beadása... - Injetando Epinefrina ... - Inietto l'epinefrina ... - - - Injecting Atropine ... - Atropin injizieren ... - Inyectando Atropina ... - Введение атропина ... - Aplikuji atropin ... - - - Transfusing Blood ... - Bluttransfusion ... - Transfusión de sangre ... - Przetaczanie krwi ... - Probíhá transfúze krve ... - Переливание крови... - Transfusion Sanguine ... - Infúzió... - Transfundindo Sangue ... - Effettuo la trasfusione ... - - - Transfusing Saline ... - Sallösungtransfusion ... - Transfusión de salino ... - Вливание физраствора ... - Probíha transfúze fyziologický roztoku ... - - - Transfusing Plasma ... - Plasmatransfusion ... - Transfusión de plasma ... - Переливание плзмы ... - Probíha transfúze plazmy ... - - - Bandaging ... - Verbinden ... - Vendando ... - Bandażowanie ... - Obvazuji ... - Pansement ... - Sto applicando la benda ... - Bekötözés... - Atando ... - Перевязывание ... - - - Applying Tourniquet ... - Setze Aderpresse an ... - Aplicando torniquete ... - Наложение жгута ... - Aplikuji škrtidlo - - - Medical - Zdravotní - Médical - Sanitäter - Medico - Medyczne - Médico - Медик - Médico - - - Field Dressing - Notverband - Compresa de campaña - Бинтовая повязка - Obinadlo - - - Packing Bandage - Verband - Vendaje compresivo - Компресионный пакет - - - Elastic Bandage - Elastische Binde - Vendaje elástico - Давящая повязка - Elastické obinadlo - - - QuikClot - QuikClot - QuikClot - QuickClot - - - Check Pulse - Puls überprüfen - Comprobar pulso - Проверить пульс - Zkontrolovat pulz - - - Check Blood Pressure - Blutdruck überprüfen - Comprobar presión arterial - Проверить кровяное давление - Zkontrolovat krevní tlak - - - Triage Card - Verletztenanhängekarte - Tarjeta de triaje - Медкарта - - - Tourniquet - Aderpresse - Torniquete - Жгут - Škrtidlo - - - Remove Tourniquet - Entferne Aderpresse - Quitar torniquete - Снять жгут - Sundat škrtidlo - - - Give Blood IV (1000ml) - Gebe Blut IV (1000ml) - Dar Sangre IV (1000ml) - Дать кровь для в/в вливания (1000 мл) - - - Give Blood IV (500ml) - Gebe Blut IV (500ml) - Dar Sangre IV (500ml) - Дать кровь для в/в вливания (500 мл) - - - Give Blood IV (250ml) - Gebe Blut IV (250ml) - Dar Sangre IV (250ml) - Дать кровь для в/в вливания (250 мл) - - - Give Plasma IV (1000ml) - Gebe Plasma IV (1000ml) - Dar Plasma IV (1000ml) - Дать плазму для в/в вливания (1000 мл) - - - Give Plasma IV (500ml) - Gebe Plasma IV (500ml) - Dar Plasma IV (500ml) - Дать плазму для в/в вливания (500 мл) - - - Give Plasma IV (250ml) - Gebe Plasma IV (250ml) - Dar Plasma IV (250ml) - Дать плазму для в/в вливания (250 мл) - - - Give Saline IV (1000ml) - Dar Salino IV (1000ml) - Дать физраствор для в/в вливания (1000 мл) - - - Give Saline IV (500ml) - Dar Salino IV (500ml) - Дать физраствор для в/в вливания (500 мл) - - - Give Saline IV (250ml) - Dar Salino IV (250ml) - Дать физраствор для в/в вливания (250 мл) - - - Minor - Gering - Menor - Незначительные травмы - - - Delayed - Retrasado - Груз 300 - - - Immediate - Inmediato - Помощь отложена - - - Deceased - Fallecido - Груз 200 - - - None - Ninguno - Нет - - - Normal breathing - Normales Atmen - Дыхание в норме - Respiración normal - Respiration Normale - Normalny oddech - - - No breathing - Atmet nicht - Дыхания нет - No respira - Apnée - Brak oddechu - - - Difficult breathing - Schweres Atmen - Дыхание затруднено - Dificultad para respirar - Difficultée Respiratoire - Trudności z oddychaniem - - - Almost no breathing - Atmet beinahe nicht - Дыхания почти нет - Casi sin respiración - Respiration Faible - Prawie brak oddechu - - - Bleeding - Blutet - Кровотечение - Sangrando - Seignement - Krwawienie zewnętrzne - - - In Pain - Unter Schmerzen - Испытывает боль - Con dolor - A De La Douleur - W bólu - - - Lost a lot of Blood - Hat eine große Menge Blut verloren - Большая кровопотеря - Mucha sangre perdida - A Perdu Bcp de Sang - Stracił dużo krwi - - - Tourniquet [CAT] - Aderpresse [CAT] - Жгут - Torniquete [CAT] - Garot [CAT] - Opaska uciskowa [CAT] - - - Receiving IV [%1ml] - Wiederbeleben IV [%1ml] - Reciviendo IV [%1ml] - Принимается переливание [%1 мл] - - - Bandage (Basic) - Verband (Basis) - Повязка (обычная) - Vendaje (Básico) - Bandage (Standard) - Bandaż (jałowy) - - - Used to cover a wound - Verwendet um die Wunde zu schützen - Для перевязки ран - Utilizado para cubrir una herida - Utilisé Pour Couvrir Une Blessure - Używany w celu przykrycia i ochrony miejsca zranienia - - - A dressing, that is a particular material used to cover a wound, which is applied over the wound once bleeding has been stemmed. - Ein Verband, der aus einem besonderen Material besteht um die Wunde zu schützen, nachdem die Blutung gestoppt wurde. - Повязка, накладываемая поверх раны после остановки кровотечения. - Un apósito, material específico utilizado para cubrir una herida, se aplica sobre la herida una vez ha dejado de sangrar. - C'est un bandage, qui est fait d'un matériel spécial utiliser pour couvrir une blessure, qui peut etre appliquer des que le seignement as ete stopper. - Opatrunek materiałowy, używany do przykrywania ran, zakładany na ranę po zatamowaniu krwawienia. - - - Packing Bandage - Verband - Тампонирующая повязка - Vendaje compresivo - Bandage Mèche - Bandaż (uciskowy) - - - Used to pack medium to large wounds and stem the bleeding - Wird verwendet, um mittel bis große Wunden zu verbinden und die Blutung zu stoppen - Для тампонирования ран среднего и большого размера и остановки кровотечения. - Se utiliza para vendar heridas medianas o grandes y detener el sangrado - Utiliser pour remplire la cavité créé dans une blessure moyenne et grande. - Używany w celu opatrywania średnich i dużych ran oraz tamowania krwawienia. - - - A bandage used to pack the wound to stem bleeding and facilitate wound healing. Packing a wound is an option in large polytrauma injuries. - Повязка для тампонирования раны, остановки кровотечения и лучшего заживления. При тяжелых сочетанных ранениях возможно тампонирование раны. - Se utiliza para detener la hemorragia de una herida y favorecer su cicatrización. Se usa en grandes lesiones o politraumatismos. - Un bandage servent a etre inseré dans les blessure pour éponger le seignement et faciliter la guerrison. Ce bandage est une option pour soigner les lession de politrauma. - Opatrunek stosowany w celu zatrzymania krwawienia i osłony większych ran. - - - Bandage (Elastic) - Verband (Elastisch) - Повязка (давящая) - Vendaje (Elástico) - Bandage (Élastique) - Bandaż (elastyczny) - - - Bandage kit, Elastic - Verbandssatz, Elastisch - Давящая повязка - Kit de vendaje (Elástico) - Bandage Compressif Élastique - Zestaw bandaży elastycznych. - - - Allows an even compression and extra support to the injured area. - - - Ce bandage peut etre utiliser pour compresser la plaie afin de ralentire le seignement et assurer la tenue du bandage lors de mouvment. - Elastyczna opaska podtrzymująca opatrunek oraz usztywniająca okolice stawów. - Brinda una compresión uniforme y ofrece soporte extra a una zona lesionada - - - Tourniquet (CAT) - Aderpresse (CAT) - Жгут - Torniquete (CAT) - Garot (CAT) - Staza (typ. CAT) - - - Slows down blood loss when bleeding - Veringert den Blutverlust - Уменьшает кровопотерю при кровотечении. - Reduce la velocidad de pérdida de sangre - Ralentit le seignement - Zmniejsza ubytek krwi z kończyn w przypadku krwawienia. - - - A constricting device used to compress venous and arterial circulation in effect inhibiting or slowing blood flow and therefore decreasing loss of blood. - Жгут используется для прижатия сосудов, приводящего к остановке или значительному уменьшению кровотечения и сокращению кровопотери. - Dispositivo utilizado para eliminar el pulso distal y de ese modo controlar la pérdida de sangre - Un appareil servent a compresser les artères et veines afin de reduire la perte de sang. - Opaska zaciskowa CAT służy do tamowanie krwotoków w sytuacji zranienia kończyn z masywnym krwawieniem tętniczym lub żylnym. - - - Morphine autoinjector - Morphin Autoinjector - Морфин в пневмошприце - Morfina auto-inyectable - Auto-injecteur de Morphine - Autostrzykawka z morfiną - - - Used to combat moderate to severe pain experiences - Wird verwendet um moderate bis starke Schmärzen zu lindern. - Для снятия средних и сильных болевых ощущений. - Usado para combatir los estados dolorosos de moderados a severos - Utiliser pour contrer les douleurs modéré à severes. - Morfina. Ma silne działanie przeciwbólowe. - - - An analgesic used to combat moderate to severe pain experiences. - Анальгетик для снятия средних и сильных болевых ощущений. - Analgésico usado para combatir los estados dolorosos de moderados a severos. - Un Analgésique puissant servant a contrer les douleur modéré a severe. - Organiczny związek chemiczny z grupy alkaloidów. Ma silne działanie przeciwbólowe. - - - Atropin autoinjector - Атропин в пневмошприце - Atropina auto-inyectable - Auto-injecteur d'Atropine - Autostrzykawka AtroPen - - - Used in NBC scenarios - Применяется для защиты от ОМП - Usado en escenarios NBQ - Utiliser en cas d'attaque CBRN - Atropina. Stosowana jako lek rozkurczowy i środek rozszerzający źrenice. - - - A drug used by the Military in NBC scenarios. - Препарат, используемый в войсках для защиты от оружия массового поражения. - Medicamento usado por militares en escenarios NBQ - Médicament utilisé par l'armée en cas d'attaque CBRN - Atropina. Stosowana jako lek rozkurczowy i środek rozszerzający źrenice. Środek stosowany w przypadku zagrożeń NBC. - - - Epinephrine autoinjector - Адреналин в пневмошприце - Epinefrina auto-inyectable - Auto-injecteur d'épinéphrine - Autostrzykawka EpiPen - - - Increase heart rate and counter effects given by allergic reactions - Стимулирует работу сердца и купирует аллергические реакции. - Aumenta la frecuencia cardiaca y contraresta los efectos de las reacciones alérgicas - Augmente la Fréquance cadiaque et contré les effet d'une reaction Anaphylactique - Adrenalina. Zwiększa puls i przeciwdziała efektom wywołanym przez reakcje alergiczne - - - A drug that works on a sympathetic response to dilate the bronchi, increase heart rate and counter such effects given by allergic reactions (anaphylaxis). Used in sudden cardiac arrest scenarios with decreasing positive outcomes. - Препарат, вызывающий симпатическую реакцию, приводящую к расширению бронхов, увеличению частоты сердечных сокращений и купированию аллергических реакций (анафилактического шока). Применяется при остановке сердца с уменьшением вероятности благоприятного исхода. - Medicamento que dilata los bronquios, aumenta la frecuencia cardiaca y contrarresta los efectos de las reacciones alérgicas (anafilaxis). Se utiliza en caso de paros cardiacos repentinos. - Un medicament qui fonctione sur le systeme sympatique créan une dilatation des bronches, augmente la fréquance cardiaque et contre les effet d'une reaction alergique (anaphylaxie). Utiliser lors d'arret cardio-respiratoire pour augmenté les chances retrouver un ryhtme. - EpiPen z adrenaliną ma działanie sympatykomimetyczne, tj. pobudza receptory alfa- i beta-adrenergiczne. Pobudzenie układu współczulnego prowadzi do zwiększenia częstotliwości pracy serca, zwiększenia pojemności wyrzutowej serca i przyśpieszenia krążenia wieńcowego. Pobudzenie oskrzelowych receptorów beta-adrenergicznych wywołuje rozkurcz mięśni gładkich oskrzeli, co w efekcie zmniejsza towarzyszące oddychaniu świsty i duszności. - - - Plasma IV (1000ml) - Плазма для в/в вливания (1000 мл) - Plasma IV (1000ml) - Plasma Sanguin IV (1000ml) - Osocze IV (1000ml) - - - A volume-expanding blood supplement. - Дополнительный препарат, применяемый при возмещении объема крови. - Suplemento para expandir el volumen sanguíneo. - Supplement visant a remplacer les volume sanguin - Składnik krwi, używany do zwiększenia jej objętości. - - - A volume-expanding blood supplement. - Дополнительный препарат, применяемый при возмещении объема крови. - Suplemento para expandir el volumen sanguíneo. - Supplement visant a remplacer le volume sanguin et remplace les plaquettes. - Składnik krwi, używany do zwiększenia jej objętości. - - - Plasma IV (500ml) - Плазма для в/в вливания (500 мл) - Plasma IV (500ml) - Plasma Sanguin IV (500ml) - Osocze IV (500ml) - - - Plasma IV (250ml) - Плазма для в/в вливания (250 мл) - Plasma IV (250ml) - Plasma Sanguin (250ml) - Osocze IV (250ml) - - - Blood IV (1000ml) - Кровь для переливания (1000 мл) - Sangre IV (1000ml) - Cullot Sanguin IV (1000ml) - Krew IV (1000ml) - - - Blood IV, for restoring a patients blood (keep cold) - Пакет крови для возмещения объема потерянной крови (хранить в холодильнике) - Sangre intravenosa, para restarurar el volumen sanguíneo (mantener frío) - Cullot Sanguin IV, pour remplacer le volume sanguin (garder Réfrigeré) - Krew IV, używana do uzupełnienia krwi u pacjenta, trzymać w warunkach chłodniczych - - - O Negative infusion blood used in strict and rare events to replenish blood supply usually conducted in the transport phase of medical care. - Кровь I группы, резус-отрицательная, применяется по жизненным показаниям для возмещения объема потерянной крови на догоспитальном этапе оказания медицинской помощи. - Cullot Sanguin O- ,utiliser seulement lors de perte sanguine majeur afin de remplacer le volume sanguin perdu. Habituelment utiliser lors du transport ou dans un etablisement de soin. - Krew 0 Rh-, używana w rzadkich i szczególnych przypadkach do uzupełnienia krwi u pacjenta, zazwyczaj w trakcie fazie transportu rannej osoby do szpitala. - Utilice sólo durante gran pérdida de sangre para reemplazar el volumen de sangre perdida. Uso habitual durante el transporte de heridos. - - - Blood IV (500ml) - Кровь для переливания (500 мл) - Sangre IV (500ml) - Cullot Sanguin IV (500ml) - Krew IV (500ml) - - - Blood IV (250ml) - Кровь для переливания (250 мл) - Sangre IV (250ml) - Cullot Sanguin IV (250ml) - Krew IV (250ml) - - - Saline IV (1000ml) - Физраствор для в/в вливания (1000 мл) - Solución Salina IV (1000ml) - solution Saline 0.9% IV (1000ml) - Solanka 0,9% IV (1000ml) - - - Saline IV, for restoring a patients blood - Пакет физраствора для возмещения объема потерянной крови - Solución salina intravenosa, para restaurar el volumen sanguíneo - Solution Saline 0.9% IV, pour retablir temporairement la tention arteriel - Solanka 0,9%, podawana dożylnie (IV), używana w celu uzupełnienia krwi u pacjenta - - - A medical volume-replenishing agent introduced into the blood system through an IV infusion. - Пакет физиологического раствора для возмещения объема потерянной крови путем внутривенного вливания. - Suero fisiológico inoculado al torrente sanguíneo de forma intravenosa. - Un remplacment temporaire pour rétablir la tention artériel lors de perte sanguine, étant ajouter par intraveineuse - Używany w medycynie w formie płynu infuzyjnego jako środek nawadniający i uzupełniający niedobór elektrolitów, podawany dożylnie (IV). - - - Saline IV (500ml) - Физраствор для в/в вливания (500 мл) - Salino IV (500ml) - Solution Saline 0.9% IV (500ml) - Solanka 0,9% IV (500ml) - - - Saline IV (250ml) - Физраствор для в/в вливания (250 мл) - Salino IV (250ml) - Solution Saline 0.9% IV (250ml) - Solanka 0,9% IV (250ml) - - - Basic Field Dressing (QuikClot) - Первичный перевязочный пакет (QuikClot) - Vendaje básico (QuickClot) - Bandage Regulier (Coagulant) - Opatrunek QuikClot - - - QuikClot bandage - Гемостатический пакет QuikClot - Vendaje QuikClot - Bandage coagulant - Podstawowy opatrunek stosowany na rany - - - Hemostatic bandage with coagulant that stops bleeding. - - Un bandage servant a coaguler les seignements mineur à moyen. - Proszkowy opatrunek adsorbcyjny przeznaczony do tamowania zagrażających życiu krwawień średniej i dużej intensywności. - Vendaje hemostático con coagulante que detiene el sangrado. - - - Personal Aid Kit - Аптечка - Botiquín de primeros auxilios - Équipement de support Vitale - Apteczka osobista - - - Includes various treatment kit needed for stitching or advanced treatment - Содержит различные материалы и инструменты для зашивания ран и оказания специальной медпомощи. - Incluye material médico para tratamientos avanzados - Inclue du matériel medical pour les traitement avancé, tel les point de suture. - Zestaw środków medycznych do opatrywania ran i dodatkowego leczenia po-urazowego - - - - - - - - - Surgical Kit - Хирургический набор - Kit quirúrgico - - - Surgical Kit for in field advanced medical treatment - Набор для хирургической помощи в полевых условиях - Kit quirúrgico para el tratamiento avanzado en el campo de batalla - - - Surgical Kit for in field advanced medical treatment - Набор для хирургической помощи в полевых условиях - Kit quirúrgico para el tratamiento avanzado en el campo de batalla - - - Bodybag - Мешок для трупов - Bolsa para cadáveres - - - A bodybag for dead bodies - Мешок для упаковки трупов - Una bolsa para cadáveres - - - A bodybag for dead bodies - Мешок для упаковки трупов - Una bolsa para cadáveres - - - Blood Pressure - Артериальное давление - Presión arterial - - - Checking Blood Pressure.. - Проверка артериального давления... - Comprobando presión arterial... - - - You checked %1 - Вы осмотрели раненого %1 - Examinando a %1 - - - You find a blood pressure of %2/%3 - Артериальное давление %2/%3 - La presión arterial es %2/%3 - - - You find a low blood pressure - Давление низкое - La presión arterial es baja - - - You find a normal blood pressure - Давление нормальное - La presión arterial es normal - - - You find a high blood pressure - Давление высокое - La presión arterial es alta - - - You find no blood pressure - Давления нет - No hay presión arterial - - - You fail to find a blood pressure - Артериальное давление не определяется - No puedes encontrar presión arterial - - - Pulse - Пульс - Pulso - - - Checking Heart Rate.. - Проверка пульса... - Comprobando ritmo cardíaco... - - - You checked %1 - Вы осмотрели раненого %1 - Examinando a %1 - - - You find a Heart Rate of %2 - Пульс %2 уд./мин. - El ritmo cardíaco es de %2 - - - You find a weak Heart Rate - Пульс слабый - El ritmo cardíaco es débil - - - You find a strong Heart Rate - Пульс учащенный - El ritmo cardíaco está acelerado - - - You find a normal Heart Rate - Пульс в норме - El ritmo cardíaco es bueno - - - You find no Heart Rate - Пульс не прощупывается - No tiene ritmo cardíaco - - - Response - Реакция - Respuesta - - - You check response of patient - Вы проверяете реакцию раненого - Compruebas si el paciente reacciona - - - %1 is responsive - %1 реагирует на раздражители - %1 ha reaccionado - - - %1 is not responsive - %1 не реагирует - %1 no reacciona - - - You checked %1 - Вы осмотрели раненого %1 - Examinas a %1 - - - Bandaged - Повязка наложена - Vendado - - - You bandage %1 (%2) - Вы перевязали раненого %1 (%2) - Aplicas vendaje a %1 en %2 - - - %1 is bandaging you - %1 перевязывает вас - %1 te está vendando - - - You start stitching injures from %1 (%2) - Вы зашиваете ранения от %1 (%2) - Estás suturando heridas de %1 en %2 - - - Stitching - Наложение швов - Suturando - - - You treat the airway of %1 - Вы интубируете раненого %1 - Estás intubando a %1 - - - Airway - Дыхательные пути - Vías aéreas - - - %1 is treating your airway - %1 проводит вам интубацию - %1 te está intubando - - - Drag - Ziehen - Arrastrar - Ciągnij - Táhnout - Тащить - Tracter - Húzás - Arrastar - Trascina - - - Carry - Tragen - Cargar - Nieś - Nést - Нести - Porter - Cipelés - Carregar - Trasporta - - - Release - Loslassen - Soltar - Połóż - Položit - Отпустить - Déposer - Elenged - Largar - Lascia - - - Load Patient Into - Patient Einladen - Cargar el paciente en - Załaduj pacjenta - Naložit pacianta do - Погрузить пациента в - Embarquer le Patient - Sebesült berakása - Carregar Paciente Em - Carica paziente nel - - - Unload Patient - Patient Ausladen - Descargar el paciente - Wyładuj pacjenta - Vyložit pacienta - Выгрузить пациента - Débarquer le Patient - Sebesült kihúzása - Descarregar Paciente - Scarica il paziente - - - Unload patient - Descargar el paciente - Выгрузить пациента - - - Load patient - Cargar el paciente en - Погрузить пациента - - - Place body in bodybag - Colocar cuerpo en bolsa para cadáveres - Поместить тело в мешок - - - Placing body in bodybag - Colocando cuerpo en bolsa para cadáveres - Помещение тела в мешок ... - - - %1 has bandaged patient - %1 has vendado al paciente - %1 перевязал пациента - - - %1 used %2 - %1 usó %2 - %1 применил %2 - - - %1 has given an IV - %1 has puesto una IV - %1 провел переливание - - - %1 applied a tourniquet - %1 aplicado torniquete - %1 наложил жгут - - - + + + Inject Atropine + Atropin injizieren + Inyectar Atropina + Ввести атропин + Aplikovat atropin + + + Inject Epinephrine + Epinephrine injizieren + Inyectar Epinefrina + Wtrzyknij adrenalinę + Aplikovat adrenalin + Ввести андреналил + Adrénaline + Adrenalin + Injetar Epinefrina + Inietta Epinefrina + + + Inject Morphine + Morphin injizieren + Inyectar Morfina + Wstrzyknij morfinę + Aplikovat morfin + Ввести морфин + Morphine + Morfium + Injetar Morfina + Inietta Morfina + + + Transfuse Blood + Bluttransfusion + Transfundir sangre + Przetocz krew + Transfúze krve + Перелить кровь + Transfusion + Infúzió + Transfundir Sangue + Effettua Trasfusione + + + Transfuse Plasma + Plasmatransfusion + Transfundir plasma + Перелить плазму + Transfúze plazmy + + + Transfuse Saline + Salzlösungtransfusion + Transfundir salino + Влить физраствор + Transfúze fyziologický roztoku + + + Apply Tourniquet + Aderpresse anwenden + Aplicar torniquete + Наложить жгут + Aplikovat škrtidlo + + + Bandage + Verbinden + Venda + Bandaż + Obvázat + Pansement + Benda + Kötözés + Atadura + Перевязать + + + Bandage Head + Kopf verbinden + Vendar la cabeza + Bandażuj głowę + Obvázat hlavu + Перевязать голову + Pansement Tête + Fej kötözése + Atar Cabeça + Benda la testa + + + Bandage Torso + Torso verbinden + Vendar el torso + Bandażuj tors + Obvázat hruď + Перевязать торс + Pansement Torse + Felsőtest kötözése + Atar Tronco + Benda il torso + + + Bandage Left Arm + Arm links verbinden + Vendar el brazo izquierdo + Bandażuj lewe ramię + Obvázat levou ruku + Перевязать левую руку + Pansement Bras Gauche + Bal kar kötözése + Atar Braço Esquerdo + Benda il braccio sinistro + + + Bandage Right Arm + Arm rechts verbinden + Vendar el brazo derecho + Bandażuj prawe ramię + Obvázat pravou ruku + Перевязать правую руку + Pansement Bras Droit + Jobb kar kötözése + Atar Braço Direito + Benda il braccio destro + + + Bandage Left Leg + Bein links verbinden + Vendar la pierna izquierda + Bandażuj lewą nogę + Obvázat levou nohu + Перевязать левую ногу + Pansement Jambe Gauche + Bal láb kötözése + Atar Perna Esquerda + Benda la gamba sinistra + + + Bandage Right Leg + Bein rechts verbinden + Vendar la pierna derecha + Bandażuj prawą nogę + Obvázat pravou nohu + Перевязать правую ногу + Pansement Jambe Droite + Jobb láb kötözése + Atar Perna Direita + Benda la gamba destra + + + Injecting Morphine ... + Morphin injizieren ... + Inyectando Morfina ... + Wstrzykiwanie morfiny ... + Aplikuji morfin ... + Введение морфина... + Injection de Morphine... + Morfium beadása... + Injetando Morfina ... + Inietto la morfina ... + + + Injecting Epinephrine ... + Epinephrin injizieren ... + Inyectando Epinefrina ... + Wstrzykiwanie adrenaliny ... + Aplikuji adrenalin ... + Введение андреналина ... + Injection d'Adrénaline ... + Adrenalin beadása... + Injetando Epinefrina ... + Inietto l'epinefrina ... + + + Injecting Atropine ... + Atropin injizieren ... + Inyectando Atropina ... + Введение атропина ... + Aplikuji atropin ... + + + Transfusing Blood ... + Bluttransfusion ... + Transfusión de sangre ... + Przetaczanie krwi ... + Probíhá transfúze krve ... + Переливание крови... + Transfusion Sanguine ... + Infúzió... + Transfundindo Sangue ... + Effettuo la trasfusione ... + + + Transfusing Saline ... + Sallösungtransfusion ... + Transfusión de salino ... + Вливание физраствора ... + Probíha transfúze fyziologický roztoku ... + + + Transfusing Plasma ... + Plasmatransfusion ... + Transfusión de plasma ... + Переливание плзмы ... + Probíha transfúze plazmy ... + + + Bandaging ... + Verbinden ... + Vendando ... + Bandażowanie ... + Obvazuji ... + Pansement ... + Sto applicando la benda ... + Bekötözés... + Atando ... + Перевязывание ... + + + Applying Tourniquet ... + Setze Aderpresse an ... + Aplicando torniquete ... + Наложение жгута ... + Aplikuji škrtidlo + + + Medical + Zdravotní + Médical + Sanitäter + Medico + Medyczne + Médico + Медик + Médico + + + Field Dressing + Notverband + Compresa de campaña + Бинтовая повязка + Obinadlo + + + Packing Bandage + Verband + Vendaje compresivo + Компресионный пакет + + + Elastic Bandage + Elastische Binde + Vendaje elástico + Давящая повязка + Elastické obinadlo + + + QuikClot + QuikClot + QuikClot + QuickClot + + + Check Pulse + Puls überprüfen + Comprobar pulso + Проверить пульс + Zkontrolovat pulz + + + Check Blood Pressure + Blutdruck überprüfen + Comprobar presión arterial + Проверить кровяное давление + Zkontrolovat krevní tlak + + + Triage Card + Verletztenanhängekarte + Tarjeta de triaje + Медкарта + + + Tourniquet + Aderpresse + Torniquete + Жгут + Škrtidlo + + + Remove Tourniquet + Entferne Aderpresse + Quitar torniquete + Снять жгут + Sundat škrtidlo + + + Give Blood IV (1000ml) + Gebe Blutinfusion (1000ml) + Dar Sangre IV (1000ml) + Дать кровь для в/в вливания (1000 мл) + + + Give Blood IV (500ml) + Gebe Blutinfusion (500ml) + Dar Sangre IV (500ml) + Дать кровь для в/в вливания (500 мл) + + + Give Blood IV (250ml) + Gebe Blutinfusion (250ml) + Dar Sangre IV (250ml) + Дать кровь для в/в вливания (250 мл) + + + Give Plasma IV (1000ml) + Gebe Plasmainfusion (1000ml) + Dar Plasma IV (1000ml) + Дать плазму для в/в вливания (1000 мл) + + + Give Plasma IV (500ml) + Gebe Plasmainfusion (500ml) + Dar Plasma IV (500ml) + Дать плазму для в/в вливания (500 мл) + + + Give Plasma IV (250ml) + Gebe Plasmainfusion (250ml) + Dar Plasma IV (250ml) + Дать плазму для в/в вливания (250 мл) + + + Give Saline IV (1000ml) + Dar Salino IV (1000ml) + Дать физраствор для в/в вливания (1000 мл) + Gebe Kochsalzlösung (1000ml) + + + Give Saline IV (500ml) + Dar Salino IV (500ml) + Дать физраствор для в/в вливания (500 мл) + Gebe Kochsalzlösung (500ml) + + + Give Saline IV (250ml) + Dar Salino IV (250ml) + Дать физраствор для в/в вливания (250 мл) + Gebe Kochsalzlösung (250ml) + + + Minor + Minor + Menor + Незначительные травмы + + + Delayed + Retrasado + Груз 300 + Delayed + + + Immediate + Inmediato + Помощь отложена + Immediate + + + Deceased + Fallecido + Груз 200 + Deceased + + + None + Ninguno + Нет + Kein + + + Normal breathing + Normales Atmen + Дыхание в норме + Respiración normal + Respiration Normale + Normalny oddech + + + No breathing + Atmet nicht + Дыхания нет + No respira + Apnée + Brak oddechu + + + Difficult breathing + Schweres Atmen + Дыхание затруднено + Dificultad para respirar + Difficultée Respiratoire + Trudności z oddychaniem + + + Almost no breathing + Atmet beinahe nicht + Дыхания почти нет + Casi sin respiración + Respiration Faible + Prawie brak oddechu + + + Bleeding + Blutet + Кровотечение + Sangrando + Seignement + Krwawienie zewnętrzne + + + In Pain + Unter Schmerzen + Испытывает боль + Con dolor + A De La Douleur + W bólu + + + Lost a lot of Blood + Hat eine große Menge Blut verloren + Большая кровопотеря + Mucha sangre perdida + A Perdu Bcp de Sang + Stracił dużo krwi + + + Tourniquet [CAT] + Aderpresse [CAT] + Жгут + Torniquete [CAT] + Garot [CAT] + Opaska uciskowa [CAT] + + + Receiving IV [%1ml] + Erhalte IV [%1ml] + Reciviendo IV [%1ml] + Принимается переливание [%1 мл] + + + Bandage (Basic) + Verband (Basis) + Повязка (обычная) + Vendaje (Básico) + Bandage (Standard) + Bandaż (jałowy) + + + Used to cover a wound + Verwendet um die Wunde zu schützen + Для перевязки ран + Utilizado para cubrir una herida + Utilisé Pour Couvrir Une Blessure + Używany w celu przykrycia i ochrony miejsca zranienia + + + A dressing, that is a particular material used to cover a wound, which is applied over the wound once bleeding has been stemmed. + Ein Verband, der aus einem besonderen Material besteht um die Wunde zu schützen, nachdem die Blutung gestoppt wurde. + Повязка, накладываемая поверх раны после остановки кровотечения. + Un apósito, material específico utilizado para cubrir una herida, se aplica sobre la herida una vez ha dejado de sangrar. + C'est un bandage, qui est fait d'un matériel spécial utiliser pour couvrir une blessure, qui peut etre appliquer des que le seignement as ete stopper. + Opatrunek materiałowy, używany do przykrywania ran, zakładany na ranę po zatamowaniu krwawienia. + + + Packing Bandage + Verband + Тампонирующая повязка + Vendaje compresivo + Bandage Mèche + Bandaż (uciskowy) + + + Used to pack medium to large wounds and stem the bleeding + Wird verwendet, um mittel bis große Wunden zu verbinden und die Blutung zu stoppen + Для тампонирования ран среднего и большого размера и остановки кровотечения. + Se utiliza para vendar heridas medianas o grandes y detener el sangrado + Utiliser pour remplire la cavité créé dans une blessure moyenne et grande. + Używany w celu opatrywania średnich i dużych ran oraz tamowania krwawienia. + + + A bandage used to pack the wound to stem bleeding and facilitate wound healing. Packing a wound is an option in large polytrauma injuries. + Повязка для тампонирования раны, остановки кровотечения и лучшего заживления. При тяжелых сочетанных ранениях возможно тампонирование раны. + Se utiliza para detener la hemorragia de una herida y favorecer su cicatrización. Se usa en grandes lesiones o politraumatismos. + Un bandage servent a etre inseré dans les blessure pour éponger le seignement et faciliter la guerrison. Ce bandage est une option pour soigner les lession de politrauma. + Opatrunek stosowany w celu zatrzymania krwawienia i osłony większych ran. + + + Bandage (Elastic) + Verband (Elastisch) + Повязка (давящая) + Vendaje (Elástico) + Bandage (Élastique) + Bandaż (elastyczny) + + + Bandage kit, Elastic + Verbandssatz, Elastisch + Давящая повязка + Kit de vendaje (Elástico) + Bandage Compressif Élastique + Zestaw bandaży elastycznych. + + + Allows an even compression and extra support to the injured area. + + + Ce bandage peut etre utiliser pour compresser la plaie afin de ralentire le seignement et assurer la tenue du bandage lors de mouvment. + Elastyczna opaska podtrzymująca opatrunek oraz usztywniająca okolice stawów. + Brinda una compresión uniforme y ofrece soporte extra a una zona lesionada + + + Tourniquet (CAT) + Aderpresse (CAT) + Жгут + Torniquete (CAT) + Garot (CAT) + Staza (typ. CAT) + + + Slows down blood loss when bleeding + Veringert den Blutverlust + Уменьшает кровопотерю при кровотечении. + Reduce la velocidad de pérdida de sangre + Ralentit le seignement + Zmniejsza ubytek krwi z kończyn w przypadku krwawienia. + + + A constricting device used to compress venous and arterial circulation in effect inhibiting or slowing blood flow and therefore decreasing loss of blood. + Жгут используется для прижатия сосудов, приводящего к остановке или значительному уменьшению кровотечения и сокращению кровопотери. + Dispositivo utilizado para eliminar el pulso distal y de ese modo controlar la pérdida de sangre + Un appareil servent a compresser les artères et veines afin de reduire la perte de sang. + Opaska zaciskowa CAT służy do tamowanie krwotoków w sytuacji zranienia kończyn z masywnym krwawieniem tętniczym lub żylnym. + + + Morphine autoinjector + Morphin Autoinjector + Морфин в пневмошприце + Morfina auto-inyectable + Auto-injecteur de Morphine + Autostrzykawka z morfiną + + + Used to combat moderate to severe pain experiences + Wird verwendet um moderate bis starke Schmärzen zu lindern. + Для снятия средних и сильных болевых ощущений. + Usado para combatir los estados dolorosos de moderados a severos + Utiliser pour contrer les douleurs modéré à severes. + Morfina. Ma silne działanie przeciwbólowe. + + + An analgesic used to combat moderate to severe pain experiences. + Анальгетик для снятия средних и сильных болевых ощущений. + Analgésico usado para combatir los estados dolorosos de moderados a severos. + Un Analgésique puissant servant a contrer les douleur modéré a severe. + Organiczny związek chemiczny z grupy alkaloidów. Ma silne działanie przeciwbólowe. + + + Atropin autoinjector + Атропин в пневмошприце + Atropina auto-inyectable + Auto-injecteur d'Atropine + Autostrzykawka AtroPen + + + Used in NBC scenarios + Применяется для защиты от ОМП + Usado en escenarios NBQ + Utiliser en cas d'attaque CBRN + Atropina. Stosowana jako lek rozkurczowy i środek rozszerzający źrenice. + + + A drug used by the Military in NBC scenarios. + Препарат, используемый в войсках для защиты от оружия массового поражения. + Medicamento usado por militares en escenarios NBQ + Médicament utilisé par l'armée en cas d'attaque CBRN + Atropina. Stosowana jako lek rozkurczowy i środek rozszerzający źrenice. Środek stosowany w przypadku zagrożeń NBC. + + + Epinephrine autoinjector + Адреналин в пневмошприце + Epinefrina auto-inyectable + Auto-injecteur d'épinéphrine + Autostrzykawka EpiPen + + + Increase heart rate and counter effects given by allergic reactions + Стимулирует работу сердца и купирует аллергические реакции. + Aumenta la frecuencia cardiaca y contraresta los efectos de las reacciones alérgicas + Augmente la Fréquance cadiaque et contré les effet d'une reaction Anaphylactique + Adrenalina. Zwiększa puls i przeciwdziała efektom wywołanym przez reakcje alergiczne + + + A drug that works on a sympathetic response to dilate the bronchi, increase heart rate and counter such effects given by allergic reactions (anaphylaxis). Used in sudden cardiac arrest scenarios with decreasing positive outcomes. + Препарат, вызывающий симпатическую реакцию, приводящую к расширению бронхов, увеличению частоты сердечных сокращений и купированию аллергических реакций (анафилактического шока). Применяется при остановке сердца с уменьшением вероятности благоприятного исхода. + Medicamento que dilata los bronquios, aumenta la frecuencia cardiaca y contrarresta los efectos de las reacciones alérgicas (anafilaxis). Se utiliza en caso de paros cardiacos repentinos. + Un medicament qui fonctione sur le systeme sympatique créan une dilatation des bronches, augmente la fréquance cardiaque et contre les effet d'une reaction alergique (anaphylaxie). Utiliser lors d'arret cardio-respiratoire pour augmenté les chances retrouver un ryhtme. + EpiPen z adrenaliną ma działanie sympatykomimetyczne, tj. pobudza receptory alfa- i beta-adrenergiczne. Pobudzenie układu współczulnego prowadzi do zwiększenia częstotliwości pracy serca, zwiększenia pojemności wyrzutowej serca i przyśpieszenia krążenia wieńcowego. Pobudzenie oskrzelowych receptorów beta-adrenergicznych wywołuje rozkurcz mięśni gładkich oskrzeli, co w efekcie zmniejsza towarzyszące oddychaniu świsty i duszności. + + + Plasma IV (1000ml) + Плазма для в/в вливания (1000 мл) + Plasma IV (1000ml) + Plasma Sanguin IV (1000ml) + Osocze IV (1000ml) + + + A volume-expanding blood supplement. + Дополнительный препарат, применяемый при возмещении объема крови. + Suplemento para expandir el volumen sanguíneo. + Supplement visant a remplacer les volume sanguin + Składnik krwi, używany do zwiększenia jej objętości. + + + A volume-expanding blood supplement. + Дополнительный препарат, применяемый при возмещении объема крови. + Suplemento para expandir el volumen sanguíneo. + Supplement visant a remplacer le volume sanguin et remplace les plaquettes. + Składnik krwi, używany do zwiększenia jej objętości. + + + Plasma IV (500ml) + Плазма для в/в вливания (500 мл) + Plasma IV (500ml) + Plasma Sanguin IV (500ml) + Osocze IV (500ml) + + + Plasma IV (250ml) + Плазма для в/в вливания (250 мл) + Plasma IV (250ml) + Plasma Sanguin (250ml) + Osocze IV (250ml) + + + Blood IV (1000ml) + Кровь для переливания (1000 мл) + Sangre IV (1000ml) + Cullot Sanguin IV (1000ml) + Krew IV (1000ml) + + + Blood IV, for restoring a patients blood (keep cold) + Пакет крови для возмещения объема потерянной крови (хранить в холодильнике) + Sangre intravenosa, para restarurar el volumen sanguíneo (mantener frío) + Cullot Sanguin IV, pour remplacer le volume sanguin (garder Réfrigeré) + Krew IV, używana do uzupełnienia krwi u pacjenta, trzymać w warunkach chłodniczych + + + O Negative infusion blood used in strict and rare events to replenish blood supply usually conducted in the transport phase of medical care. + Кровь I группы, резус-отрицательная, применяется по жизненным показаниям для возмещения объема потерянной крови на догоспитальном этапе оказания медицинской помощи. + Cullot Sanguin O- ,utiliser seulement lors de perte sanguine majeur afin de remplacer le volume sanguin perdu. Habituelment utiliser lors du transport ou dans un etablisement de soin. + Krew 0 Rh-, używana w rzadkich i szczególnych przypadkach do uzupełnienia krwi u pacjenta, zazwyczaj w trakcie fazie transportu rannej osoby do szpitala. + Utilice sólo durante gran pérdida de sangre para reemplazar el volumen de sangre perdida. Uso habitual durante el transporte de heridos. + + + Blood IV (500ml) + Кровь для переливания (500 мл) + Sangre IV (500ml) + Cullot Sanguin IV (500ml) + Krew IV (500ml) + + + Blood IV (250ml) + Кровь для переливания (250 мл) + Sangre IV (250ml) + Cullot Sanguin IV (250ml) + Krew IV (250ml) + + + Saline IV (1000ml) + Физраствор для в/в вливания (1000 мл) + Solución Salina IV (1000ml) + solution Saline 0.9% IV (1000ml) + Solanka 0,9% IV (1000ml) + + + Saline IV, for restoring a patients blood + Пакет физраствора для возмещения объема потерянной крови + Solución salina intravenosa, para restaurar el volumen sanguíneo + Solution Saline 0.9% IV, pour retablir temporairement la tention arteriel + Solanka 0,9%, podawana dożylnie (IV), używana w celu uzupełnienia krwi u pacjenta + + + A medical volume-replenishing agent introduced into the blood system through an IV infusion. + Пакет физиологического раствора для возмещения объема потерянной крови путем внутривенного вливания. + Suero fisiológico inoculado al torrente sanguíneo de forma intravenosa. + Un remplacment temporaire pour rétablir la tention artériel lors de perte sanguine, étant ajouter par intraveineuse + Używany w medycynie w formie płynu infuzyjnego jako środek nawadniający i uzupełniający niedobór elektrolitów, podawany dożylnie (IV). + + + Saline IV (500ml) + Физраствор для в/в вливания (500 мл) + Salino IV (500ml) + Solution Saline 0.9% IV (500ml) + Solanka 0,9% IV (500ml) + Kochsalzlösung (500ml) + + + Saline IV (250ml) + Физраствор для в/в вливания (250 мл) + Salino IV (250ml) + Solution Saline 0.9% IV (250ml) + Solanka 0,9% IV (250ml) + Kochsalzlösung (250ml) + + + Basic Field Dressing (QuikClot) + Первичный перевязочный пакет (QuikClot) + Vendaje básico (QuickClot) + Bandage Regulier (Coagulant) + Opatrunek QuikClot + Kompresse (QuikClot) + + + QuikClot bandage + Гемостатический пакет QuikClot + Vendaje QuikClot + Bandage coagulant + Podstawowy opatrunek stosowany na rany + QuikClot Kompresse + + + Hemostatic bandage with coagulant that stops bleeding. + + Un bandage servant a coaguler les seignements mineur à moyen. + Proszkowy opatrunek adsorbcyjny przeznaczony do tamowania zagrażających życiu krwawień średniej i dużej intensywności. + Vendaje hemostático con coagulante que detiene el sangrado. + Eine gerinnungsfördernd Kompresse zu Blutstillung. + + + Personal Aid Kit + Аптечка + Botiquín de primeros auxilios + Équipement de support Vitale + Apteczka osobista + + + Includes various treatment kit needed for stitching or advanced treatment + Содержит различные материалы и инструменты для зашивания ран и оказания специальной медпомощи. + Incluye material médico para tratamientos avanzados + Inclue du matériel medical pour les traitement avancé, tel les point de suture. + Zestaw środków medycznych do opatrywania ran i dodatkowego leczenia po-urazowego + + + + + + + + + Surgical Kit + Хирургический набор + Kit quirúrgico + + + Surgical Kit for in field advanced medical treatment + Набор для хирургической помощи в полевых условиях + Kit quirúrgico para el tratamiento avanzado en el campo de batalla + + + Surgical Kit for in field advanced medical treatment + Набор для хирургической помощи в полевых условиях + Kit quirúrgico para el tratamiento avanzado en el campo de batalla + + + Bodybag + Мешок для трупов + Bolsa para cadáveres + Leichensack + + + A bodybag for dead bodies + Мешок для упаковки трупов + Una bolsa para cadáveres + Ein Sack für Leichen + + + A bodybag for dead bodies + Мешок для упаковки трупов + Una bolsa para cadáveres + Ein Sack zum Transport für Leichen + + + Blood Pressure + Артериальное давление + Presión arterial + Blutdruck + + + Checking Blood Pressure.. + Проверка артериального давления... + Comprobando presión arterial... + Messe Blutdruck ... + + + You checked %1 + Вы осмотрели раненого %1 + Examinando a %1 + + + You find a blood pressure of %2/%3 + Артериальное давление %2/%3 + La presión arterial es %2/%3 + Der Blutdruck beträgt %2/%3 + + + You find a low blood pressure + Давление низкое + La presión arterial es baja + Der Blutdruck ist niedrig + + + You find a normal blood pressure + Давление нормальное + La presión arterial es normal + Der Blutdruck ist normal + + + You find a high blood pressure + Давление высокое + La presión arterial es alta + Der Blutdruck ist hoch + + + You find no blood pressure + Давления нет + No hay presión arterial + Kein Blutdruck feststellbar + + + You fail to find a blood pressure + Артериальное давление не определяется + No puedes encontrar presión arterial + Du kannst keinen Blutdruck feststellen + + + Pulse + Пульс + Pulso + Puls + + + Checking Heart Rate.. + Проверка пульса... + Comprobando ritmo cardíaco... + + + You checked %1 + Вы осмотрели раненого %1 + Examinando a %1 + + + You find a Heart Rate of %2 + Пульс %2 уд./мин. + El ritmo cardíaco es de %2 + Herzfrequenz beträgt %2 + + + You find a weak Heart Rate + Пульс слабый + El ritmo cardíaco es débil + Der Herzfrequenz ist gering + + + You find a strong Heart Rate + Пульс учащенный + El ritmo cardíaco está acelerado + Die Herzfrequenz ist hoch + + + You find a normal Heart Rate + Пульс в норме + El ritmo cardíaco es bueno + Die Herzfrequenz ist normal + + + You find no Heart Rate + Пульс не прощупывается + No tiene ritmo cardíaco + Keine Herzfrequenz feststellbar + + + Response + Реакция + Respuesta + Ansprache + + + You check response of patient + Вы проверяете реакцию раненого + Compruebas si el paciente reacciona + Du überprüfst die Ansprache des Patienten + + + %1 is responsive + %1 реагирует на раздражители + %1 ha reaccionado + %1 ist ansprechbar + + + %1 is not responsive + %1 не реагирует + %1 no reacciona + %1 ist nicht ansprechbar + + + You checked %1 + Вы осмотрели раненого %1 + Examinas a %1 + + + Bandaged + Повязка наложена + Vendado + Verbunden + + + You bandage %1 (%2) + Вы перевязали раненого %1 (%2) + Aplicas vendaje a %1 en %2 + Du bandagierst %1 (%2) + + + %1 is bandaging you + %1 перевязывает вас + %1 te está vendando + %1 verbindet dich + + + You start stitching injures from %1 (%2) + Вы зашиваете ранения от %1 (%2) + Estás suturando heridas de %1 en %2 + Du nähst die Wunden von %1 (%2) + + + Stitching + Наложение швов + Suturando + Nähen + + + You treat the airway of %1 + Вы интубируете раненого %1 + Estás intubando a %1 + Du behandelst die Luftweg von %1 + + + Airway + Дыхательные пути + Vías aéreas + Luftweg + + + %1 is treating your airway + %1 проводит вам интубацию + %1 te está intubando + %1 behandelt deinen Luftweg + + + Drag + Ziehen + Arrastrar + Ciągnij + Táhnout + Тащить + Tracter + Húzás + Arrastar + Trascina + + + Carry + Tragen + Cargar + Nieś + Nést + Нести + Porter + Cipelés + Carregar + Trasporta + + + Release + Loslassen + Soltar + Połóż + Položit + Отпустить + Déposer + Elenged + Largar + Lascia + + + Load Patient Into + Patient einladen + Cargar el paciente en + Załaduj pacjenta + Naložit pacianta do + Погрузить пациента в + Embarquer le Patient + Sebesült berakása + Carregar Paciente Em + Carica paziente nel + + + Unload Patient + Patient ausladen + Descargar el paciente + Wyładuj pacjenta + Vyložit pacienta + Выгрузить пациента + Débarquer le Patient + Sebesült kihúzása + Descarregar Paciente + Scarica il paziente + + + Unload patient + Descargar el paciente + Выгрузить пациента + Patient ausladen + + + Load patient + Cargar el paciente en + Погрузить пациента + Patient einladen + + + Place body in bodybag + Colocar cuerpo en bolsa para cadáveres + Поместить тело в мешок + Körper in Leichesack verpacken + + + Placing body in bodybag + Colocando cuerpo en bolsa para cadáveres + Помещение тела в мешок ... + Verpacke Körper in Leichensack + + + %1 has bandaged patient + %1 has vendado al paciente + %1 перевязал пациента + %1 hat Patient bandagiert + + + %1 used %2 + %1 usó %2 + %1 применил %2 + %1 hat %2 genutzt + + + %1 has given an IV + %1 has puesto una IV + %1 провел переливание + %1 hat eine Infusion gegeben + + + %1 applied a tourniquet + %1 aplicado torniquete + %1 наложил жгут + %1 hat eine Aderpresse angelegt + + + \ No newline at end of file diff --git a/addons/microdagr/stringtable.xml b/addons/microdagr/stringtable.xml index 600570c24e..a02149a333 100644 --- a/addons/microdagr/stringtable.xml +++ b/addons/microdagr/stringtable.xml @@ -1,177 +1,180 @@  + - - - MicroDAGR GPS - MicroDAGR GPS - GPS MicroDAGR - MicroDAGR GPS - MicroDAGR GPS - - - MicroDAGR advanced GPS receiver - MicroDAGR - Fortgeschrittener GPS-Empfänger - Receptor avanzado GPS MicroDAGR - Многофункциональный GPS-приёмник. - - - Angular Unit: - Unidad angular: - Угловые единицы: - - - Mils - Mils - Mils - Тысячные - - - Show Waypoints On Map: - Zeige Wegpunkte auf Karte - Mostrar puntos de ruta en el mapa: - Показывать маршрутные точки на карте: - - - Degrees - Grad - Grados - Градусы - - - On - Zapnuto - Oui - Ein - - Wł. - Ativar - Вкл. - Encendido - - - Off - Vypnuto - Non - Aus - No - Wył. - Desativar - Выкл. - Apagado - - - Enter Grid Cords: - Introducir coordenadas de cuadrícula: - Введите координаты: - - - Name of [%1] - Name von [%1] - Nombre de [%1] - Название [%1] - - - MGRS-New - MGRS-NEU - Nuevo-MGRS - MGRS-Новая - - - WGD - WGD - WGD - WGD - - - Range: - Distancia - Reichweite: - Дистанция: - - - Compass Direction - Kompass Richtung - Dirección de la brújula - Азимут - - - Mark - Markiere - Marca - Отметка - - - Waypoints - Puntos de ruta - Wegpunkte - Машрутные точки - Waypointy - - - Connect To - Conectar a - Соединиться с - Verbinde zu - Připojit k - - - Settings - Einstellungen - Configuración - Настройки - Nastavení - - - SetWP - SetzeWP - Establecer PR - Установить МТ - Nastavit WP - - - Add - Hinzufügen - Añadir - Добавить - Přidat - - - Delete - Smazat - Supprimer - Löschen - Elimina - Usuń - Excluir - Удалить - Borrar - - - Toggle MicroDAGR Display Mode - Wechsle MircoDAGR Bildschirmmodus - Conmutar modo de pantalla del MicroDAGR - Сменить режим показа MicroDAGR - - - Show MicoDAGR - Zeige MicroDAGR - Mostrar MicroDAGR - Показать MicroDAGR - Ukázat MicroDAGR GPS - - - Configure MicroDAGR - Stelle MicroDAGR ein - Configurar MicroDAGR - Настроить MicroDAGR - Konfigurovat MicroDAGR GPS - - - Close MicroDAGR - Schließe MicroDAGR - Cerrar MicroDAGR - Закрыть MicroDAGR - Zavřít MicroDAGR GPS - - - + + + MicroDAGR GPS + MicroDAGR GPS + GPS MicroDAGR + MicroDAGR GPS + MicroDAGR GPS + + + MicroDAGR advanced GPS receiver + MicroDAGR - Fortgeschrittener GPS-Empfänger + Receptor avanzado GPS MicroDAGR + Многофункциональный GPS-приёмник. + + + Angular Unit: + Unidad angular: + Угловые единицы: + Winkeleinheit: + + + Mils + Mils + Mils + Тысячные + + + Show Waypoints On Map: + Zeige Wegpunkte auf Karte + Mostrar puntos de ruta en el mapa: + Показывать маршрутные точки на карте: + + + Degrees + Grad + Grados + Градусы + + + On + Zapnuto + Oui + Ein + + Wł. + Ativar + Вкл. + Encendido + + + Off + Vypnuto + Non + Aus + No + Wył. + Desativar + Выкл. + Apagado + + + Enter Grid Cords: + Introducir coordenadas de cuadrícula: + Введите координаты: + Gebe Koordinaten ein: + + + Name of [%1] + Name von [%1] + Nombre de [%1] + Название [%1] + + + MGRS-New + MGRS-NEU + Nuevo-MGRS + MGRS-Новая + + + WGD + WGD + WGD + WGD + + + Range: + Distancia + Reichweite: + Дистанция: + + + Compass Direction + Kompass Richtung + Dirección de la brújula + Азимут + + + Mark + Markiere + Marca + Отметка + + + Waypoints + Puntos de ruta + Wegpunkte + Машрутные точки + Waypointy + + + Connect To + Conectar a + Соединиться с + Verbinde zu + Připojit k + + + Settings + Einstellungen + Configuración + Настройки + Nastavení + + + SetWP + SetzeWP + Establecer PR + Установить МТ + Nastavit WP + + + Add + Hinzufügen + Añadir + Добавить + Přidat + + + Delete + Smazat + Supprimer + Löschen + Elimina + Usuń + Excluir + Удалить + Borrar + + + Toggle MicroDAGR Display Mode + Wechsle MircoDAGR Bildschirmmodus + Conmutar modo de pantalla del MicroDAGR + Сменить режим показа MicroDAGR + + + Show MicoDAGR + Zeige MicroDAGR + Mostrar MicroDAGR + Показать MicroDAGR + Ukázat MicroDAGR GPS + + + Configure MicroDAGR + Konfiguriere MicroDAGR + Configurar MicroDAGR + Настроить MicroDAGR + Konfigurovat MicroDAGR GPS + + + Close MicroDAGR + Schließe MicroDAGR + Cerrar MicroDAGR + Закрыть MicroDAGR + Zavřít MicroDAGR GPS + + + \ No newline at end of file diff --git a/addons/nametags/stringtable.xml b/addons/nametags/stringtable.xml index c61158103f..9ab1cc99d1 100644 --- a/addons/nametags/stringtable.xml +++ b/addons/nametags/stringtable.xml @@ -1,89 +1,90 @@  + - - - Show Names - Namen anzeigen - Mostrar nombres - Afficher noms - Zobrazit jména - Pokaż nazwy - Nevek mutatása - Показать имена - - - Show player names - Spielernamen anzeigen - Mostrar nombres de jugadores - Pokaż nazwy graczy - Afficher nom des joueurs - Játékosnevek mutatása - Zobrazit jména hráčů - Mostrar nomes de jogadores - Mostra i nomi dei giocatori - Показать имена игроков - - - Show player name only on cursor (requires player names) - Pokaż nazwę gracza tylko pod kursorem - Mostrar nombres solo en el cursor (requiere Mostrar nombres de jugadores) - Zeige Spielernamen nur an, wenn die Maus auf sie gerrichtet ist (benötigt Spielernamen) - Noms uniquement sous le curseur (si noms affichés) - Zobrazit jméno hráče jenom na kurzor (vyžaduje jména hráčů) - Mostra i nomi solo se puntati (richiede i nomi dei giocatori abilitati) - Mostrar nome de jogador somente no cursor (requer nome de jogadores) - Játékosok nevének mutatása (névcímke szükséges) - Показать имена игроков только под курсором (требует имен игроков) - - - Show player name only on keypress (requires player names) - Spielernamen nur auf Tastendruck anzeigen (benötigt Spielernamen) - Mostrar nombres solo al pulsar (requiere Mostrar nombres de jugadores) - Noms uniquement sur pression de la touche (si noms affichés) - Zobrazit jména hráčů jen na klávesu (vyžaduje jména hráčů) - Pokaż nazwę gracza tylko po przytrzymaniu klawisza - Játékosnevek mutatása gombnyomásra(névcíme szükséges) - Показать имена игроков только по нажатию клавиши (требует имен игроков) - - - Show player ranks (requires player names) - Spielerränge anzeigen (benötig Spielernamen) - Pokaż rangi graczy (wymaga nazw graczy) - Mostrar rango de los jugadores (requiere Mostrar nombres de jugadores) - Grade des joueurs (si noms affichés) - Zobrazit hodnosti hráčů (vyžaduje jména hráčů) - Mostra i gradi (richiede i nomi dei giocatori abilitati) - Mostrar patente de jogadores (requer nome de jogadores) - Játékosok rendfokozatának mutatása (névcímke szükséges) - Показать звания игроков (требует имен игроков) - - - Show vehicle crew info - Zeige Fahrzeugbesatzung - Mostrar tripulantes - Pokaż informacje o załodze pojazdu - Zobrazit info o posádce vozidla - Показать экипаж - - - Show name tags for AI units - Zeige KI-Namen - Mostrar etiquetas de nombre para unidades IA - Показывать именые метки ИИ - Zobrazit jména AI - - - Show SoundWaves (requires player names) - Zeigen Schallwellen (benötigt Spielernamen) - Mostrar onda sonora (requiere Mostrar nombres de jugadores) - Показывать звуковые волны (требует имен игроков) - Zobrazit SoundWaves (vyžaduje jména hráčů) - - - Default Nametag Color (Non Group Members) - Voreingestellte Namenfarbe (Spieler außerhalb der Gruppe) - Цвет меток игроков (не членов групп) - Color de etiquetas de nombre por defecto (No miembros de grupo) - - - + + + Show Names + Namen anzeigen + Mostrar nombres + Afficher noms + Zobrazit jména + Pokaż nazwy + Nevek mutatása + Показать имена + + + Show player names + Spielernamen anzeigen + Mostrar nombres de jugadores + Pokaż nazwy graczy + Afficher nom des joueurs + Játékosnevek mutatása + Zobrazit jména hráčů + Mostrar nomes de jogadores + Mostra i nomi dei giocatori + Показать имена игроков + + + Show player name only on cursor (requires player names) + Pokaż nazwę gracza tylko pod kursorem + Mostrar nombres solo en el cursor (requiere Mostrar nombres de jugadores) + Zeige Spielernamen nur an, wenn die Maus auf sie gerrichtet ist (benötigt Spielernamen) + Noms uniquement sous le curseur (si noms affichés) + Zobrazit jméno hráče jenom na kurzor (vyžaduje jména hráčů) + Mostra i nomi solo se puntati (richiede i nomi dei giocatori abilitati) + Mostrar nome de jogador somente no cursor (requer nome de jogadores) + Játékosok nevének mutatása (névcímke szükséges) + Показать имена игроков только под курсором (требует имен игроков) + + + Show player name only on keypress (requires player names) + Spielernamen nur auf Tastendruck anzeigen (benötigt Spielernamen) + Mostrar nombres solo al pulsar (requiere Mostrar nombres de jugadores) + Noms uniquement sur pression de la touche (si noms affichés) + Zobrazit jména hráčů jen na klávesu (vyžaduje jména hráčů) + Pokaż nazwę gracza tylko po przytrzymaniu klawisza + Játékosnevek mutatása gombnyomásra(névcíme szükséges) + Показать имена игроков только по нажатию клавиши (требует имен игроков) + + + Show player ranks (requires player names) + Spielerränge anzeigen (benötig Spielernamen) + Pokaż rangi graczy (wymaga nazw graczy) + Mostrar rango de los jugadores (requiere Mostrar nombres de jugadores) + Grade des joueurs (si noms affichés) + Zobrazit hodnosti hráčů (vyžaduje jména hráčů) + Mostra i gradi (richiede i nomi dei giocatori abilitati) + Mostrar patente de jogadores (requer nome de jogadores) + Játékosok rendfokozatának mutatása (névcímke szükséges) + Показать звания игроков (требует имен игроков) + + + Show vehicle crew info + Fahrzeugbesatzung anzeigen + Mostrar tripulantes + Pokaż informacje o załodze pojazdu + Zobrazit info o posádce vozidla + Показать экипаж + + + Show name tags for AI units + KI namen anzeigen + Mostrar etiquetas de nombre para unidades IA + Показывать именые метки ИИ + Zobrazit jména AI + + + Show SoundWaves (requires player names) + Schallwellen anzeigen (benötigt Spielernamen) + Mostrar onda sonora (requiere Mostrar nombres de jugadores) + Показывать звуковые волны (требует имен игроков) + Zobrazit SoundWaves (vyžaduje jména hráčů) + + + Default Nametag Color (Non Group Members) + Voreingestellte Namenfarbe (Spieler außerhalb der Gruppe) + Цвет меток игроков (не членов групп) + Color de etiquetas de nombre por defecto (No miembros de grupo) + + + \ No newline at end of file diff --git a/addons/optionsmenu/stringtable.xml b/addons/optionsmenu/stringtable.xml index 23fa52a52a..e5fd60134e 100644 --- a/addons/optionsmenu/stringtable.xml +++ b/addons/optionsmenu/stringtable.xml @@ -1,155 +1,157 @@  + - - - ACE Options - ACE Optionen - Opciones ACE - Opcje ACE - ACE Nastavení - ACE Options - ACE Настройки - Opções do ACE - ACE Opciók - Opzioni ACE - - - Fix Animation - Behebe Animation - Arreglar animación - Фикс анимации - Opravit animace - - - Reset All - Alles Zurücksetzen - Reiniciar todo - Полный сброс - Vyresetovat vše - - - Colors - Farben - Colores - Цвета - Barvy - - - Options - Optionen - Opciones - Opcje - Nastavení - Options - Настройки - Opções - Opciók - Opzioni - - - Values - Valores - Значения - Hodnoty - - - Yes - Ja - Si - Tak - Ano - Oui - Да - Igen - Sim - Si - - - No - Nein - No - Nie - Ne - Non - Нет - Nem - Não - No - - - Setting: - Nastavení: - Einstellung: - Установки: - Ajuste: - - - Export - Exportieren - Exportar - Экспорт - Exportovat - - - Open Export Menu - Öffne Exportmenü - Abrir menu d'exportación - Открыть меню экспорта - Otevřít exportovací menu - - - String input. - String input. - Introducir frase - Строчный ввод. - - - Array. Seperate elements by using ,. - Array. Teile unterschiedliche Elemente mit ,. - Matriz. Separa elementos usando ,. - Массив. Разделяйте элемены, используя запятую. - - - Number - Nummer - Numero - Число - Číslo - - - Uknown input type - Unbekannter Eingabetyp - Tipo de entrada desconocida - Неизвестный тип ввода - Neznámý vstup - - - Save input - Speichere Eingabe - Guardar entrada - Сохранить ввод - Uložit vstup - - - Include Client Settings - Beinhalte Client-Einstellungen - Incluir configuración de cliente - Включить настройки клиента - Zahrnout nastavení klienta - - - Exclude Client Settings - Schließe Client-Einstellungen aus - Excluir configuración de cliente - Исключить настройки клиента - Nezahrnout nastavení klienta - - - Settings exported to clipboard - Einstellungen in die Zwischenablage exportiert - Configuración exportada al portapapeles - Настройки экспортированы в буфер обмена - Nastevení exportována do schránky - - - + + + ACE Options + ACE Optionen + Opciones ACE + Opcje ACE + ACE Nastavení + ACE Options + ACE Настройки + Opções do ACE + ACE Opciók + Opzioni ACE + + + Fix Animation + Behebe Animation + Arreglar animación + Фикс анимации + Opravit animace + + + Reset All + Alles Zurücksetzen + Reiniciar todo + Полный сброс + Vyresetovat vše + + + Colors + Farben + Colores + Цвета + Barvy + + + Options + Optionen + Opciones + Opcje + Nastavení + Options + Настройки + Opções + Opciók + Opzioni + + + Values + Valores + Значения + Hodnoty + Werte + + + Yes + Ja + Si + Tak + Ano + Oui + Да + Igen + Sim + Si + + + No + Nein + No + Nie + Ne + Non + Нет + Nem + Não + No + + + Setting: + Nastavení: + Einstellung: + Установки: + Ajuste: + + + Export + Exportieren + Exportar + Экспорт + Exportovat + + + Open Export Menu + Öffne Exportmenü + Abrir menu d'exportación + Открыть меню экспорта + Otevřít exportovací menu + + + String input. + String input. + Introducir frase + Строчный ввод. + + + Array. Seperate elements by using ,. + Array. Teile unterschiedliche Elemente mit ,. + Matriz. Separa elementos usando ,. + Массив. Разделяйте элемены, используя запятую. + + + Number + Nummer + Numero + Число + Číslo + + + Uknown input type + Unbekannter Eingabetyp + Tipo de entrada desconocida + Неизвестный тип ввода + Neznámý vstup + + + Save input + Speichere Eingabe + Guardar entrada + Сохранить ввод + Uložit vstup + + + Include Client Settings + Client-Einstellungen einschließen + Incluir configuración de cliente + Включить настройки клиента + Zahrnout nastavení klienta + + + Exclude Client Settings + Client-Einstellungen ausschließen + Excluir configuración de cliente + Исключить настройки клиента + Nezahrnout nastavení klienta + + + Settings exported to clipboard + Einstellungen in die Zwischenablage exportiert + Configuración exportada al portapapeles + Настройки экспортированы в буфер обмена + Nastevení exportována do schránky + + + \ No newline at end of file diff --git a/addons/overheating/stringtable.xml b/addons/overheating/stringtable.xml index 558abeb406..0dfeffa559 100644 --- a/addons/overheating/stringtable.xml +++ b/addons/overheating/stringtable.xml @@ -1,155 +1,157 @@  + - - - Display text on jam - Zeige Text bei Ladehemmung - Mostrar texto al encasquillar - Показывать текст, когда клинит оружие - Zobrazit upozornění při zaseknutí - - - Display a notification whenever your weapon gets jammed - Zeige einen Hinweis wenn die Waffe eine Ladehemmung hat - Mostrar notificación cada vez que el arma se encasquille - Демонстровать уведомление, каждый раз, когда клинит Ваше оружие. - Zobrazí upozornění při zaseknutí zbraně - - - Spare barrel - Ersatzlauf - Cañón de repuesto - Zapasowa lufa - Náhradní hlaveň - Deuxième canon - Запасной ствол - Tartalék cső - Cano Reserva - Canna di ricambio - - - Use to swap barrel. - Benutzen, um Lauf zu wechseln. - Permite intercambiar el cañón - Umożliwia wymianę lufy - Používané k výměně hlavně - Utilisé pour changer de canon. - Используется для смены ствола. - Cső kicseréléséhez. - Use para trocar o cano/estriamento. - Usata per cambiare la canna. - - - Weapon jammed! - Ladehemmung! - Arma encasquillada! - Broń się zacięła! - Zbraň se zasekla! - Arme enrayée - Оружие заклинило! - Elakadt a fegyver! - Arma travada! - Arma inceppata! - - - Clear jam - Ladehemmung beheben - Desencasquillar el arma - Usuń zacięcie - Uvolnit zbraň - Désenrayer l'arme - Исправить клин оружия. - Hárítsd el az akadályt! - Destravar arma - Ripulisci l'arma - - - Jam cleared - Ladehemmung behoben - Arma desencasquillada - Zacięcie usunięte - Zbraň uvolněna - Arme désenrayée - Оружие исправлено - Akadály elhárítva! - Arma destravada - Arma pronta al fuoco - - - Swap barrel - Lauf wechseln - Cambiar el cañón - Wymień lufę - Vyměnit hlaveň - Changer de canon - Сменить ствол - Cserélj csövet! - Substituir cano - Sostiuisci la canna - - - Swapping barrel... - Lauf wird gewechselt... - Cambiando el cañón... - Wymienianie lufy... - Vyměňuji hlaveň ... - Changement du canon... - Смена ствола... - Cső cserélése... - Substituindo cano... - Sto sostituendo la canna ... - - - Swapped barrel - Lauf gewechselt - Cañón cambiado - Lufa wymieniona - Hlaveň vyměněna - Canon changé - Ствол сменен - Cső kicserélve! - Cano substituído - Canna sostituita - - - Check weapons temperature - Temperatur der Waffe prüfen - Verificar temperatura del arma - Sprawdź temperaturę broni - Vérifier la température de l'arme - Hőmérséklet ellenőrzése - Zjistit teplotu zbraně - Conferir temperatura da arma - Controlla la temperatura della canna - Проверить температуру оружия - - - Check weapon<br/>temperature - Verificar temperatura<br/>del arma - - - Checking temperature ... - Prüfe Temperatur ... - Verificando temperatura ... - Sprawdzanie temperatury ... - Vérification de la température ... - Hőmérséklet ellenőrzése... - Zjišťuju teplotu ... - Conferindo temperatura ... - Sto controllando la temperatura ... - Проверка температуры ... - - - Temperature - Temperatur - Temperatura - Temperatura - Température - Hőmérséklet - Teplota - Temperatura - Temperatura - Температура - - - + + + Display text on jam + Zeige Text bei Ladehemmung + Mostrar texto al encasquillar + Показывать текст, когда клинит оружие + Zobrazit upozornění při zaseknutí + + + Display a notification whenever your weapon gets jammed + Zeige einen Hinweis wenn die Waffe eine Ladehemmung hat + Mostrar notificación cada vez que el arma se encasquille + Демонстровать уведомление, каждый раз, когда клинит Ваше оружие. + Zobrazí upozornění při zaseknutí zbraně + + + Spare barrel + Ersatzlauf + Cañón de repuesto + Zapasowa lufa + Náhradní hlaveň + Deuxième canon + Запасной ствол + Tartalék cső + Cano Reserva + Canna di ricambio + + + Use to swap barrel. + Benutzen, um Lauf zu wechseln. + Permite intercambiar el cañón + Umożliwia wymianę lufy + Používané k výměně hlavně + Utilisé pour changer de canon. + Используется для смены ствола. + Cső kicseréléséhez. + Use para trocar o cano/estriamento. + Usata per cambiare la canna. + + + Weapon jammed! + Ladehemmung! + Arma encasquillada! + Broń się zacięła! + Zbraň se zasekla! + Arme enrayée + Оружие заклинило! + Elakadt a fegyver! + Arma travada! + Arma inceppata! + + + Clear jam + Ladehemmung beheben + Desencasquillar el arma + Usuń zacięcie + Uvolnit zbraň + Désenrayer l'arme + Исправить клин оружия. + Hárítsd el az akadályt! + Destravar arma + Ripulisci l'arma + + + Jam cleared + Ladehemmung behoben + Arma desencasquillada + Zacięcie usunięte + Zbraň uvolněna + Arme désenrayée + Оружие исправлено + Akadály elhárítva! + Arma destravada + Arma pronta al fuoco + + + Swap barrel + Lauf wechseln + Cambiar el cañón + Wymień lufę + Vyměnit hlaveň + Changer de canon + Сменить ствол + Cserélj csövet! + Substituir cano + Sostiuisci la canna + + + Swapping barrel... + Lauf wird gewechselt... + Cambiando el cañón... + Wymienianie lufy... + Vyměňuji hlaveň ... + Changement du canon... + Смена ствола... + Cső cserélése... + Substituindo cano... + Sto sostituendo la canna ... + + + Swapped barrel + Lauf gewechselt + Cañón cambiado + Lufa wymieniona + Hlaveň vyměněna + Canon changé + Ствол сменен + Cső kicserélve! + Cano substituído + Canna sostituita + + + Check weapons temperature + Temperatur der Waffe prüfen + Verificar temperatura del arma + Sprawdź temperaturę broni + Vérifier la température de l'arme + Hőmérséklet ellenőrzése + Zjistit teplotu zbraně + Conferir temperatura da arma + Controlla la temperatura della canna + Проверить температуру оружия + + + Check weapon<br/>temperature + Verificar temperatura<br/>del arma + Waffentemperatur<br/>prüfen + + + Checking temperature ... + Prüfe Temperatur ... + Verificando temperatura ... + Sprawdzanie temperatury ... + Vérification de la température ... + Hőmérséklet ellenőrzése... + Zjišťuju teplotu ... + Conferindo temperatura ... + Sto controllando la temperatura ... + Проверка температуры ... + + + Temperature + Temperatur + Temperatura + Temperatura + Température + Hőmérséklet + Teplota + Temperatura + Temperatura + Температура + + + \ No newline at end of file diff --git a/addons/winddeflection/stringtable.xml b/addons/winddeflection/stringtable.xml index 271332c943..e4efd815f0 100644 --- a/addons/winddeflection/stringtable.xml +++ b/addons/winddeflection/stringtable.xml @@ -1,42 +1,48 @@ - + + - - - - Wind Information - Informacje o wietrze - Información del viento - Ветер - Informace o větru - - - Direction: %1 - Kierunek: %1 - Dirección: %1 - Направление: %1 - Směr: %1 - - - Speed: %1 m/s - Prędkość: %1 - Velocidad: %1 m/s - Скорость: %1 м/с - Rychlost: %1 m/s - - - Weather Information - Informacje o pogodzie - Información Meteorológica - Погода - Informace o počasí - - - Humidity: %1% - Wilgotność: %1 - Humedad: %1% - Влажность: %1% - Vlhkost: %1% - - - - + + + + Wind Information + Informacje o wietrze + Información del viento + Ветер + Informace o větru + Windinformation + + + Direction: %1 + Kierunek: %1 + Dirección: %1 + Направление: %1 + Směr: %1 + Richtung:%1 + + + Speed: %1 m/s + Prędkość: %1 + Velocidad: %1 m/s + Скорость: %1 м/с + Rychlost: %1 m/s + Geschwindigkeit: %1 m/s + + + Weather Information + Informacje o pogodzie + Información Meteorológica + Погода + Informace o počasí + Wetterinformation + + + Humidity: %1% + Wilgotność: %1 + Humedad: %1% + Влажность: %1% + Vlhkost: %1% + Luftfeuchtigkeit: %1% + + + + \ No newline at end of file From 576431083393375e67bf6794e278ec3c64b402e3 Mon Sep 17 00:00:00 2001 From: bux578 Date: Thu, 16 Apr 2015 21:58:39 +0200 Subject: [PATCH 060/256] german translation double checked by bw medic --- addons/medical/stringtable.xml | 46 ++++++++++++++++++++++++++-------- 1 file changed, 35 insertions(+), 11 deletions(-) diff --git a/addons/medical/stringtable.xml b/addons/medical/stringtable.xml index 9f651e90b7..6cdcde292e 100644 --- a/addons/medical/stringtable.xml +++ b/addons/medical/stringtable.xml @@ -72,7 +72,7 @@ Apply Tourniquet - Aderpresse anwenden + Tourniquet anwenden Aplicar torniquete Aplikovat škrtidlo Załóż stazę @@ -247,7 +247,7 @@ Applying Tourniquet ... - Setze Aderpresse an ... + Setze Tourniquet an ... Aplicando torniquete ... Aplikuji škrtidlo Zakładanie stazy ... @@ -334,7 +334,7 @@ Triage Card - Verletztenanhängekarte + Triagekarte Tarjeta de triaje Медкарта Karta segregacyjna @@ -345,7 +345,7 @@ Tourniquet - Aderpresse + Tourniquet Torniquete Жгут Škrtidlo @@ -356,7 +356,7 @@ Remove Tourniquet - Aderpresse entfernen + Tourniquet entfernen Quitar torniquete Снять жгут Sundat škrtidlo @@ -598,7 +598,7 @@ Tourniquet [CAT] - Aderpresse [CAT] + Tourniquet [CAT] Жгут Torniquete [CAT] Garrot [CAT] @@ -661,7 +661,7 @@ Used to pack medium to large wounds and stem the bleeding - Verwendet, um mittlere bis große Wunden abzudecken und Blutungen zu stoppen + Wird verwendet, um mittlere bis große Wunden abzudecken und Blutungen zu stoppen Для тампонирования ран среднего и большого размера и остановки кровотечения. Se utiliza para vendar heridas medianas o grandes y detener el sangrado Utilisé pour remplir la cavité créée dans une blessure de taille moyenne à grande. @@ -677,6 +677,7 @@ Opatrunek stosowany w celu zatrzymania krwawienia i osłony większych ran. Egy kötszerfajta, melyet a sebek nyomására használnak a vérzés elállítása és sebgyógyulás érdekében. A nyomókötés egy lehetőség nagyobb polytraumatikus sérülések esetén. Un bendaggio usato per bendare ferite con emorragie e facilitare la guarigione. Bendare una ferita è una opzione su ferite di vario tipo. + Ein Verband, um die Wunde abzudecken und die Wundheilung zu fördern. Wunden abdecken ist eine Option bei größeren Polytraumen Bandage (Elastic) @@ -701,7 +702,7 @@ Allows an even compression and extra support to the injured area. - + Ermöglicht eine gleichmäßige Kompression und zusätzliche Unterstützung für den verletzten Bereich. Давящая повязка обеспечивает равномерное сжатие и дополнительную поддержку поврежденной области Ce bandage peut être utilisé pour compresser la plaie afin de ralentir le saignement et assurer la tenue du bandage lors de mouvement. Elastyczna opaska podtrzymująca opatrunek oraz usztywniająca okolice stawów. @@ -711,7 +712,7 @@ Tourniquet (CAT) - Aderpresse (CAT) + Tourniquet [CAT] Жгут Torniquete (CAT) Garrot (CAT) @@ -819,7 +820,7 @@ Aumenta la frecuencia cardiaca y contraresta los efectos de las reacciones alérgicas Augmente la fréquence cadiaque et annule les effets d'une réaction anaphylactique Adrenalina. Zwiększa puls i przeciwdziała efektom wywołanym przez reakcje alergiczne - Steigert die Herzfrequenz, um den Effekt von allergischen Reaktionen zu bekämpfen + Steigert die Herzfrequenz und bekämpft Symptome von allergischen Reaktionen. Növeli a szívverést és ellenzi az allergiás reakciók hatásait Aumenta il battito cardiaco e combatte gli effetti di reazioni allergiche. @@ -830,6 +831,7 @@ Medicament qui fonctionne sur le système nerveux sympathique créant une dilatation des bronches, augmente la fréquence cardiaque et annule les effets d'une réaction allergique (anaphylaxie). Utilisé lors d'arrêt cardio-respiratoire pour augmenter les chances de retrouver un pouls. EpiPen z adrenaliną ma działanie sympatykomimetyczne, tj. pobudza receptory alfa- i beta-adrenergiczne. Pobudzenie układu współczulnego prowadzi do zwiększenia częstotliwości pracy serca, zwiększenia pojemności wyrzutowej serca i przyśpieszenia krążenia wieńcowego. Pobudzenie oskrzelowych receptorów beta-adrenergicznych wywołuje rozkurcz mięśni gładkich oskrzeli, co w efekcie zmniejsza towarzyszące oddychaniu świsty i duszności. Una sostanza che permette di dilatare i bronchi, aumentare il battito cardiaco e combattere effetti di reazioni allergiche. Usato anche in casi di arresto cardiaco. + Ein Medikament, dass die Bronchien erweitert, die Herzfrequenz erhöht und Symptome von allergischen Reaktionen(Anaphylaxie) bekämpft. Wird bei plötzlichem Herzstillstand verabreicht. Plasma IV (1000ml) @@ -849,6 +851,7 @@ Składnik krwi, używany do zwiększenia jej objętości. Egy térfogatnövelő vérkiegészítmény. Aiuta ad aumentare il volume sanguigno. + Volumenerweiterungsmittel (künstliches Blutvolumen) A volume-expanding blood supplement. @@ -858,6 +861,7 @@ Składnik krwi, używany do zwiększenia jej objętości. Egy térfogatnövelő vérkiegészítmény. Aiuta ad aumentare il volume sanguigno. + Volumenerweiterungsmittel (künstliches Blutvolumen) Plasma IV (500ml) @@ -897,6 +901,7 @@ Krew IV, używana do uzupełnienia krwi u pacjenta, trzymać w warunkach chłodniczych Vér-infúzió, intravénás bejuttatásra egy páciensnek (hidegen tárolandó) Sangue usato per ripristinare pazienti in cui si è verificata una perdita di sangue (conservare al fresco) + Blut IV, Bluthaushalt des Patienten wiederherstellen. (Kühl halten) O Negative infusion blood used in strict and rare events to replenish blood supply usually conducted in the transport phase of medical care. @@ -904,6 +909,7 @@ Krew 0 Rh-, używana w rzadkich i szczególnych przypadkach do uzupełnienia krwi u pacjenta, zazwyczaj w trakcie fazie transportu rannej osoby do szpitala. Utilice sólo durante gran pérdida de sangre para reemplazar el volumen de sangre perdida. Uso habitual durante el transporte de heridos. Sangue 0 negativo usato per ripristinare sangue in pazienti in cui si è verificata una perdita di sangue. + O Negative Blutinfusion wird nur in seltenen Fällen verwendet, um den Bluthaushalt des Patienten zu ergänzen. Wird in der Regel wärend der Transportphase durchgeführt. Blood IV (500ml) @@ -943,6 +949,7 @@ Solanka 0,9%, podawana dożylnie (IV), używana w celu uzupełnienia krwi u pacjenta 0,9%-os sósvíz-infúzió, a páciens vérmennyiségének helyreállítására Soluzione salina, usata per ripristinare sangue nei pazienti. + Kochsalzlösung, ein medizinisches Volumenersatzmittel A medical volume-replenishing agent introduced into the blood system through an IV infusion. @@ -952,6 +959,7 @@ Używany w medycynie w formie płynu infuzyjnego jako środek nawadniający i uzupełniający niedobór elektrolitów, podawany dożylnie (IV). Egy orvosi térfogat-helyreállító készítmény, melyet intravénás módon lehet a szervezetbe juttatni. Una soluzione medica per ripristinare il volume del sangue introdotta tramite trasfusione IV. + Ein medizinisches Volumenersatzmittel, dass durch einen intravenösen Zugang in den Blutkreislauf verabreicht wird. Saline IV (500ml) @@ -1128,6 +1136,7 @@ La Presión Arterial es %2/%3 A vérnyomás %2/%3 Hai riscontrato una pressione di %2/%3 + Der Blutdruck liegt bei %2/%3 You find a low blood pressure @@ -1317,6 +1326,7 @@ Zabandażowano Bekötözve Bendato + verbunden You bandage %1 (%2) @@ -1326,6 +1336,7 @@ Bandażujesz %1 (%2) Bekötözöd %1-t (%2) Stai bendando %1 (%2) + Du verbindest %1 (%2) %1 is bandaging you @@ -1335,6 +1346,7 @@ %1 bandażuje Ciebie %1 bekötöz téged %1 ti sta bendando + %1 verbindet dich You start stitching injures from %1 (%2) @@ -1344,6 +1356,7 @@ Zszywasz rany %1 (%2) Elkezded összevarni %1 sérüléseit (%2) Stai suturando le ferite di %1 (%2) + Du nähst die Wunde von %1 (%2) Stitching @@ -1353,6 +1366,7 @@ Szycie Összevarrás Suturando + Nähen You treat the airway of %1 @@ -1362,6 +1376,7 @@ Udrażniasz drogi oddechowe %1 Kezeled %1 légútját Controlli le vie respiratorie di %1 + Du behandelst die Atemwege von %1 Airway @@ -1381,6 +1396,7 @@ %1 udrażnia Twoje drogi oddechowe %1 kezeli a légútadat %1 ti sta trattando le vie respiratorie + %1 behandelt deine Atemwege Drag @@ -1450,6 +1466,7 @@ Débarquer le Patient Sebesült kihúzása Scarica il paziente + Patient Ausladen Load patient @@ -1459,6 +1476,7 @@ Embarquer le Patient Sebesült berakása Carica il paziente + Patient Einladen Place body in bodybag @@ -1468,6 +1486,7 @@ Mettre le corps dans la housse mortuaire Test hullazsákba helyezése Metti il corpo nella sacca per cadaveri + Platziere Körper in Leichensack Placing body in bodybag @@ -1477,6 +1496,7 @@ Placement du corps dans la housse Test hullazsákba helyezése ... Stai mettendo il corpo nella sacca + Platziere Körper in Leichensack %1 has bandaged patient @@ -1486,6 +1506,7 @@ %1 a pansé le patient %1 bekötözte a pácienst %1 ha bendato il paziente + %1 hat den Patienten verbunden %1 used %2 @@ -1495,6 +1516,7 @@ %1 utilise %2 %1 használta a %2-t %1 ha usato %2 + %1 benutzt %2 %1 has given an IV @@ -1504,6 +1526,7 @@ %1 a administré une IV %1 infúziót adott %1 ha somministrato una IV + %1 hat eine Infusion verabreicht %1 applied a tourniquet @@ -1513,6 +1536,7 @@ %1 a appliqué un garrot %1 felhelyezett egy érszorítót %1 ha applicato un laccio emostatico + %1 hat einen Tourniquet angelegt Heavily wounded @@ -1611,4 +1635,4 @@ Aberración cromática - + \ No newline at end of file From c18284d964c87b88fc6fdbe6aaec230ba50ef6d1 Mon Sep 17 00:00:00 2001 From: simon84 Date: Thu, 16 Apr 2015 22:04:24 +0200 Subject: [PATCH 061/256] German translation --- addons/medical/stringtable.xml | 4 ++-- addons/microdagr/stringtable.xml | 2 +- addons/nametags/stringtable.xml | 4 ++-- addons/optionsmenu/stringtable.xml | 6 +++--- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/addons/medical/stringtable.xml b/addons/medical/stringtable.xml index 2ebd93a050..18412dd752 100644 --- a/addons/medical/stringtable.xml +++ b/addons/medical/stringtable.xml @@ -897,13 +897,13 @@ Response Реакция Respuesta - Ansprache + Ansprechbarkeit You check response of patient Вы проверяете реакцию раненого Compruebas si el paciente reacciona - Du überprüfst die Ansprache des Patienten + Du überprüfst die Ansprachbarkeit des Patienten %1 is responsive diff --git a/addons/microdagr/stringtable.xml b/addons/microdagr/stringtable.xml index a02149a333..f5238138c8 100644 --- a/addons/microdagr/stringtable.xml +++ b/addons/microdagr/stringtable.xml @@ -88,7 +88,7 @@ Range: Distancia - Reichweite: + Entfernung: Дистанция: diff --git a/addons/nametags/stringtable.xml b/addons/nametags/stringtable.xml index 9ab1cc99d1..d939549304 100644 --- a/addons/nametags/stringtable.xml +++ b/addons/nametags/stringtable.xml @@ -28,7 +28,7 @@ Show player name only on cursor (requires player names) Pokaż nazwę gracza tylko pod kursorem Mostrar nombres solo en el cursor (requiere Mostrar nombres de jugadores) - Zeige Spielernamen nur an, wenn die Maus auf sie gerrichtet ist (benötigt Spielernamen) + Zeige Spielernamen nur an, wenn die Maus auf sie gerichtet ist (benötigt Spielernamen) Noms uniquement sous le curseur (si noms affichés) Zobrazit jméno hráče jenom na kurzor (vyžaduje jména hráčů) Mostra i nomi solo se puntati (richiede i nomi dei giocatori abilitati) @@ -68,7 +68,7 @@ Show name tags for AI units - KI namen anzeigen + KI Namen anzeigen Mostrar etiquetas de nombre para unidades IA Показывать именые метки ИИ Zobrazit jména AI diff --git a/addons/optionsmenu/stringtable.xml b/addons/optionsmenu/stringtable.xml index e5fd60134e..3ab6640c1a 100644 --- a/addons/optionsmenu/stringtable.xml +++ b/addons/optionsmenu/stringtable.xml @@ -23,7 +23,7 @@ Reset All - Alles Zurücksetzen + Alles zurücksetzen Reiniciar todo Полный сброс Vyresetovat vše @@ -101,7 +101,7 @@ String input. - String input. + Zeichenketteneingabe. Introducir frase Строчный ввод. @@ -113,7 +113,7 @@ Number - Nummer + Zahl Numero Число Číslo From e7f9bc09df139fc4f749c58a402ae9275bed351e Mon Sep 17 00:00:00 2001 From: simon84 Date: Thu, 16 Apr 2015 22:52:49 +0200 Subject: [PATCH 062/256] German translations Conflicts: addons/disarming/stringtable.xml addons/hearing/stringtable.xml addons/medical/stringtable.xml addons/microdagr/stringtable.xml addons/nametags/stringtable.xml addons/optionsmenu/stringtable.xml addons/overheating/stringtable.xml addons/winddeflection/stringtable.xml --- addons/medical/stringtable.xml | 2 -- addons/winddeflection/stringtable.xml | 4 ---- 2 files changed, 6 deletions(-) diff --git a/addons/medical/stringtable.xml b/addons/medical/stringtable.xml index 3f00c07d88..c0f34ebfb1 100644 --- a/addons/medical/stringtable.xml +++ b/addons/medical/stringtable.xml @@ -1353,7 +1353,6 @@ Suturando Nähen Sutures - Suturando Szycie Összevarrás Suturando @@ -1364,7 +1363,6 @@ Estás intubando a %1 Du behandelst den Atemweg von %1 Vous traitez les voies respiratoires de %1 - Estás intubando a %1 Udrażniasz drogi oddechowe %1 Kezeled %1 légútját Controlli le vie respiratorie di %1 diff --git a/addons/winddeflection/stringtable.xml b/addons/winddeflection/stringtable.xml index cb5421b1b3..f510214a5f 100644 --- a/addons/winddeflection/stringtable.xml +++ b/addons/winddeflection/stringtable.xml @@ -1,8 +1,4 @@  -<<<<<<< HEAD - -======= ->>>>>>> acemod/master From ff0fb12ca35ac1167bfac736ea6539fab7d24c23 Mon Sep 17 00:00:00 2001 From: simon84 Date: Thu, 16 Apr 2015 23:05:48 +0200 Subject: [PATCH 063/256] minor FCS changes (privatized variables, unnecessary counters) - added some variables to the private statement - removed an iteration counter, which was only used for debugging --- addons/fcs/functions/fnc_getAngle.sqf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/addons/fcs/functions/fnc_getAngle.sqf b/addons/fcs/functions/fnc_getAngle.sqf index 03024d8b98..2ec9215bea 100644 --- a/addons/fcs/functions/fnc_getAngle.sqf +++ b/addons/fcs/functions/fnc_getAngle.sqf @@ -19,7 +19,7 @@ #include "script_component.hpp" #define PRECISION 0.1 -private ["_distance","_angleTarget","_maxElev","_initSpeed","_airFriction","_timeToLive","_timeToLive","_simulationStep","_angle","_posTargetX","_posTargetY","_posX","_posY","_velocityX","_velocityY","_velocityMagnitude"]; +private ["_distance","_angleTarget","_maxElev","_initSpeed","_airFriction","_timeToLive","_timeToLive","_simulationStep","_angle","_posTargetX","_posTargetY","_posX","_posY","_velocityX","_velocityY","_velocityMagnitude","_angle1","_angle2","_f1","_f2","_temp"]; _distance = _this select 0; _angleTarget = _this select 1; @@ -73,7 +73,7 @@ if ((_this + [_maxElev]) call FUNC(traceBullet) < 0) exitWith {_maxElev - _angle // Newton Method / Secand Method _angle1 = _angleTarget; _angle2 = _maxElev; -_it2 = 0; +//_it2 = 0; _f1 = (_this + [_angle1]) call FUNC(traceBullet); if ((abs _f1) <= PRECISION) exitWith {0}; @@ -83,7 +83,7 @@ while {(abs _f1) > PRECISION} do { _angle1 = _angle2; _angle2 = _temp; _f1 = _f2; - _it2 = _it2+1; + //_it2 = _it2+1; }; //player globalChat format ["it1: %1 | _angle1: %2 | it2: %3 | _angle2: %4",_it1, _angle-_angleTarget, _it2, _angle2-_angleTarget]; From 079d2666dd47cb6397374e965a506f3614e970bb Mon Sep 17 00:00:00 2001 From: Bracconiere Date: Fri, 17 Apr 2015 02:39:15 +0300 Subject: [PATCH 064/256] Testing, 1-2 --- README.md | 41 ++++++++++++++++++++++++++--------------- 1 file changed, 26 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index 3ec6fe0683..7e7a477834 100644 --- a/README.md +++ b/README.md @@ -1,27 +1,36 @@

- +

+ + ACE3 Wiki + - ACE version + ACE3 Version - ACE download + ACE3 Download - ACE issues + ACE3 Issues - ACE license + ACE3 License

-

Requires the latest version of CBA A3 | BIF thread

+

Requires the latest version of CBA A3 | BIF thread | Facebook | YouTube | Twitter

**ACE3** is a joint effort by the teams behind **ACE2**, **AGM** and **CSE** to improve the realism and authenticity of Arma 3. -This mod is entirely **open-source**, and everyone is free to propose changes or maintain their own, customized version as long as they make their changes open to the public in accordance with the GNU General Public License (for more information check the license file attached to this project). +The project is entirely **open-source**. Feel free to propose changes or maintain their own, customized version as long as they make their changes open to the public in accordance with the GNU General Public License (for more information check the license file attached to this project). -The mod is **built modularly** — almost any PBO can be removed, thus a team can maintain its own tailored version of ACE, which excludes a select number of components that they don't like, or which conflict with other add-ons. Components themselves, like e.g. the medical system, also include various customization options, allowing mission designers to tweak the overall experience. +The mod is **built modularly**, so almost any PBO can be removed. This way, a team can maintain its own tailored version of ACE that might exclude any components they don't need, or those possibly conflicting with other add-ons. Modules themselves, e.g. the medical system, also include various customization options, allowing mission designers to tweak the overall experience. ### Features * Improved medical system @@ -31,18 +40,20 @@ The mod is **built modularly** — almost any PBO can be removed, thus a team ca * Realistic names for vehicles and weapons * Realistic ballistics including wind and humidity * Backblast simulation -* A fire control system for armored vehicles and helicopters +* A fire control system for armored vehicles and helicopters ***and more...*** #### Guides & How-Tos -If you installed ACE3, but have trouble understanding how it all works, or where to start — see [Getting Started](https://github.com/acemod/ACE3/blob/master/documentation/user/getting-started.md). +If you installed ACE3 but have trouble understanding how it all works, or where to start, read this article: +* [Getting Started](https://github.com/acemod/ACE3/blob/master/documentation/user/getting-started.md) #### Contributing -If you want to help put with the ongoing development, you can do so by looking for possible bugs or by contributing new features. To contribute something to ACE, simply fork this repository and submit your pull requests for review by other collaborators. In the process, please add yourself to the author array of any .pbo you will be editing and the AUTHORS.txt file; including a valid email address. +You can help out with the ongoing development by looking for potential bugs in the existing code, or by contributing new features. To contribute something to ACE, simply fork this repository and submit your pull requests for review by other collaborators. In the process, please add yourself to the author array of any PBO you will be editing and the [AUTHORS.txt](https://github.com/acemod/ACE3/blob/master/AUTHORS.txt) file; including a valid email address. -To report a bug, propose a feature, or suggest a change to the existing one — please, use our [Issue Tracker](https://github.com/acemod/ACE3/issues). See [this link](http://ace3mod.com/wiki/user/how-to-report-an-issue.html) for details. +Please, use our [Issue Tracker](https://github.com/acemod/ACE3/issues) to report a bug, propose a feature, or suggest a change to the existing set. See also: +* [How to report an issue](http://ace3mod.com/wiki/user/how-to-report-an-issue.html) +* [How to make a feature request](http://ace3mod.com/wiki/user/how-to-make-a-feature-request.html) #### Testing & Building -If you want to help us test the latest development changes, feel free to download our master branch, using either git — if familiar with the process — or directly, by following [this link](https://github.com/acemod/ACE3/archive/master.zip). - -To find out how to set up your development environment and build a version of ACE for testing, follow [these instructions](https://github.com/acemod/ACE3/blob/master/documentation/development/setting-up-the-development-environment.md). +If you want to help us test the latest development changes, first download our master branch directly ([link](https://github.com/acemod/ACE3/archive/master.zip)), or using [git commands](https://help.github.com/articles/fetching-a-remote/), then create a test build: +* [Setting Up The Development Environment](https://github.com/acemod/ACE3/blob/master/documentation/development/setting-up-the-development-environment.md) — step-by-step instructions on how to properly setup and build a version of ACE for testing purposes. From 2a99448fac5d8168f8d48d31157b5ce1e35798b3 Mon Sep 17 00:00:00 2001 From: Bracconiere Date: Fri, 17 Apr 2015 03:53:43 +0300 Subject: [PATCH 065/256] 3-4... --- README.md | 51 ++++++++++++++++++++++++++++----------------------- 1 file changed, 28 insertions(+), 23 deletions(-) diff --git a/README.md b/README.md index 7e7a477834..f37927c77c 100644 --- a/README.md +++ b/README.md @@ -8,52 +8,57 @@ alt="ACE3 Wiki" /> - ACE3 Version - - + ACE3 Download ACE3 Issues + + BIF Thread + ACE3 License

-

Requires the latest version of CBA A3 | BIF thread | Facebook | YouTube | Twitter

+

Requires the latest version of CBA A3. Visit us on Facebook | YouTube | Twitter

**ACE3** is a joint effort by the teams behind **ACE2**, **AGM** and **CSE** to improve the realism and authenticity of Arma 3. -The project is entirely **open-source**. Feel free to propose changes or maintain their own, customized version as long as they make their changes open to the public in accordance with the GNU General Public License (for more information check the license file attached to this project). +The project is entirely **open-source** and all contributions are welcome. Feel free to maintain your own custom version, so long as the changes you make are open to the public in accordance with the GNU General Public License: +* [`LICENSE`](https://github.com/acemod/ACE3/blob/master/LICENSE) -The mod is **built modularly**, so almost any PBO can be removed. This way, a team can maintain its own tailored version of ACE that might exclude any components they don't need, or those possibly conflicting with other add-ons. Modules themselves, e.g. the medical system, also include various customization options, allowing mission designers to tweak the overall experience. +The mod is **built modularly**, so almost any included PBO can be easily removed from the configuration. This way, a team can maintain its own tailored version of ACE by simply excluding any components they don't need, or those that might possibly conflict with other add-ons. Modules themselves, e.g. the medical system, also include various customization options, allowing mission designers to tweak the overall experience. ### Features -* Improved medical system -* Logistics system including cargo transport and vehicle maintenance -* Explosives system including different trigger types -* Captivity system -* Realistic names for vehicles and weapons -* Realistic ballistics including wind and humidity -* Backblast simulation -* A fire control system for armored vehicles and helicopters - ***and more...*** +* Improved medical system +* Logistics system including cargo transport and vehicle maintenance +* Explosives system including different trigger types +* Captivity system +* Realistic names for vehicles and weapons +* Realistic ballistics including wind and humidity +* Backblast simulation +* A fire control system for armored vehicles and helicopters
+ ***and more...*** -#### Guides & How-Tos -If you installed ACE3 but have trouble understanding how it all works, or where to start, read this article: -* [Getting Started](https://github.com/acemod/ACE3/blob/master/documentation/user/getting-started.md) +#### Guides & how-tos +If you installed ACE3 but have trouble understanding how it all works, or where to start, read this: +* [Getting started](https://github.com/acemod/ACE3/blob/master/documentation/user/getting-started.md) #### Contributing -You can help out with the ongoing development by looking for potential bugs in the existing code, or by contributing new features. To contribute something to ACE, simply fork this repository and submit your pull requests for review by other collaborators. In the process, please add yourself to the author array of any PBO you will be editing and the [AUTHORS.txt](https://github.com/acemod/ACE3/blob/master/AUTHORS.txt) file; including a valid email address. +You can help out with the ongoing development by looking for potential bugs in our code base, or by contributing new features. To contribute something to ACE, simply fork this repository and submit your pull requests for review by other collaborators. Remember to add yourself to the author array of any PBO you will be editing and the [`AUTHORS.txt`](https://github.com/acemod/ACE3/blob/master/AUTHORS.txt) file; including a valid email address. -Please, use our [Issue Tracker](https://github.com/acemod/ACE3/issues) to report a bug, propose a feature, or suggest a change to the existing set. See also: +Please, use our [Issue Tracker](https://github.com/acemod/ACE3/issues) to report a bug, propose a feature, or suggest changes to the existing ones. See also: * [How to report an issue](http://ace3mod.com/wiki/user/how-to-report-an-issue.html) * [How to make a feature request](http://ace3mod.com/wiki/user/how-to-make-a-feature-request.html) -#### Testing & Building -If you want to help us test the latest development changes, first download our master branch directly ([link](https://github.com/acemod/ACE3/archive/master.zip)), or using [git commands](https://help.github.com/articles/fetching-a-remote/), then create a test build: -* [Setting Up The Development Environment](https://github.com/acemod/ACE3/blob/master/documentation/development/setting-up-the-development-environment.md) — step-by-step instructions on how to properly setup and build a version of ACE for testing purposes. +#### Testing & building +To help us test the latest development changes, first, download our master branch ([directly](https://github.com/acemod/ACE3/archive/master.zip), or with [git commands](https://help.github.com/articles/fetching-a-remote/)), then assemble a local test build: +* [Setting up the development environment](https://github.com/acemod/ACE3/blob/master/documentation/development/setting-up-the-development-environment.md) — step-by-step instructions on how to properly setup and build a version of ACE for testing purposes. From c2588583b138afff53a86c414529f1629b928ea8 Mon Sep 17 00:00:00 2001 From: Bracconiere Date: Fri, 17 Apr 2015 04:08:58 +0300 Subject: [PATCH 066/256] And just one more --- README.md | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index f37927c77c..9dadd57060 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,8 @@

+ height="96" />

- - ACE3 Wiki - ACE3 Version @@ -46,11 +42,11 @@ The mod is **built modularly**, so almost any included PBO can be easily removed * Realistic ballistics including wind and humidity * Backblast simulation * A fire control system for armored vehicles and helicopters
- ***and more...*** +***and more...*** #### Guides & how-tos -If you installed ACE3 but have trouble understanding how it all works, or where to start, read this: -* [Getting started](https://github.com/acemod/ACE3/blob/master/documentation/user/getting-started.md) +If you installed ACE3 but have trouble understanding how it all works, or where to start, read this first: +* [Getting started](https://github.com/acemod/ACE3/blob/master/documentation/user/getting-started.md) #### Contributing You can help out with the ongoing development by looking for potential bugs in our code base, or by contributing new features. To contribute something to ACE, simply fork this repository and submit your pull requests for review by other collaborators. Remember to add yourself to the author array of any PBO you will be editing and the [`AUTHORS.txt`](https://github.com/acemod/ACE3/blob/master/AUTHORS.txt) file; including a valid email address. @@ -60,5 +56,5 @@ Please, use our [Issue Tracker](https://github.com/acemod/ACE3/issues) to report * [How to make a feature request](http://ace3mod.com/wiki/user/how-to-make-a-feature-request.html) #### Testing & building -To help us test the latest development changes, first, download our master branch ([directly](https://github.com/acemod/ACE3/archive/master.zip), or with [git commands](https://help.github.com/articles/fetching-a-remote/)), then assemble a local test build: -* [Setting up the development environment](https://github.com/acemod/ACE3/blob/master/documentation/development/setting-up-the-development-environment.md) — step-by-step instructions on how to properly setup and build a version of ACE for testing purposes. +To help us test the latest development changes, download our master branch ([directly](https://github.com/acemod/ACE3/archive/master.zip), or with [git commands](https://help.github.com/articles/fetching-a-remote/)), then assemble a test build: +* [Setting up the development environment](https://github.com/acemod/ACE3/blob/master/documentation/development/setting-up-the-development-environment.md) – step-by-step instructions on how to properly setup and build a version of ACE for testing purposes. From 1dfd6651545e800799b39da6f2df070a1efe9d8a Mon Sep 17 00:00:00 2001 From: Bracconiere Date: Fri, 17 Apr 2015 04:24:25 +0300 Subject: [PATCH 067/256] Upscaling the logo +Reddit link --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 9dadd57060..82a7910fc6 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@

+ height="112" />

@@ -24,7 +24,7 @@ alt="ACE3 License" />

-

Requires the latest version of CBA A3. Visit us on Facebook | YouTube | Twitter

+

Requires the latest version of CBA A3. Visit us on Facebook | YouTube | Twitter | Reddit

**ACE3** is a joint effort by the teams behind **ACE2**, **AGM** and **CSE** to improve the realism and authenticity of Arma 3. From 90965449225968a1cb94dd32441a147b97dd2507 Mon Sep 17 00:00:00 2001 From: Bracconiere Date: Fri, 17 Apr 2015 04:30:24 +0300 Subject: [PATCH 068/256] Backblast AREA --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 82a7910fc6..1be9e994c1 100644 --- a/README.md +++ b/README.md @@ -31,7 +31,7 @@ The project is entirely **open-source** and all contributions are welcome. Feel free to maintain your own custom version, so long as the changes you make are open to the public in accordance with the GNU General Public License: * [`LICENSE`](https://github.com/acemod/ACE3/blob/master/LICENSE) -The mod is **built modularly**, so almost any included PBO can be easily removed from the configuration. This way, a team can maintain its own tailored version of ACE by simply excluding any components they don't need, or those that might possibly conflict with other add-ons. Modules themselves, e.g. the medical system, also include various customization options, allowing mission designers to tweak the overall experience. +The mod is **built modularly**, so almost any included PBO can be easily removed from the configuration. This way, a team can maintain its own tailored version of ACE by simply excluding any components they don't need, or those possibly in conflict with other add-ons. Modules themselves, e.g. the medical system, also include various customization options, allowing mission designers to tweak the overall experience. ### Features * Improved medical system @@ -40,7 +40,7 @@ The mod is **built modularly**, so almost any included PBO can be easily removed * Captivity system * Realistic names for vehicles and weapons * Realistic ballistics including wind and humidity -* Backblast simulation +* Backblast area simulation * A fire control system for armored vehicles and helicopters
***and more...*** From 00f2389fc00aaff1aa8ff6de3baac07ac82c9363 Mon Sep 17 00:00:00 2001 From: Bracconiere Date: Fri, 17 Apr 2015 04:33:49 +0300 Subject: [PATCH 069/256] less is more --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1be9e994c1..b0cfaf11d3 100644 --- a/README.md +++ b/README.md @@ -56,5 +56,5 @@ Please, use our [Issue Tracker](https://github.com/acemod/ACE3/issues) to report * [How to make a feature request](http://ace3mod.com/wiki/user/how-to-make-a-feature-request.html) #### Testing & building -To help us test the latest development changes, download our master branch ([directly](https://github.com/acemod/ACE3/archive/master.zip), or with [git commands](https://help.github.com/articles/fetching-a-remote/)), then assemble a test build: +To help us test the latest development changes, download our master branch ([directly](https://github.com/acemod/ACE3/archive/master.zip), or [with git](https://help.github.com/articles/fetching-a-remote/)), then assemble a test build: * [Setting up the development environment](https://github.com/acemod/ACE3/blob/master/documentation/development/setting-up-the-development-environment.md) – step-by-step instructions on how to properly setup and build a version of ACE for testing purposes. From 27ad0c3a286cbfd1e66a5eb32febe137ae550d2c Mon Sep 17 00:00:00 2001 From: Bracconiere Date: Fri, 17 Apr 2015 05:26:13 +0300 Subject: [PATCH 070/256] HTML5 strict --- README.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index b0cfaf11d3..1ef1c359e5 100644 --- a/README.md +++ b/README.md @@ -1,27 +1,27 @@

+ height="112">

ACE3 Version + alt="ACE version"> ACE3 Download + alt="ACE download"> ACE3 Issues + alt="ACE issues"> BIF Thread + alt="BIF thread"> ACE3 License + alt="ACE license">

Requires the latest version of CBA A3. Visit us on Facebook | YouTube | Twitter | Reddit

@@ -41,7 +41,7 @@ The mod is **built modularly**, so almost any included PBO can be easily removed * Realistic names for vehicles and weapons * Realistic ballistics including wind and humidity * Backblast area simulation -* A fire control system for armored vehicles and helicopters
+* A fire control system for armored vehicles and helicopters
***and more...*** #### Guides & how-tos From 9de834e15664677684c82e880755019ce97f27c0 Mon Sep 17 00:00:00 2001 From: esteldunedain Date: Fri, 17 Apr 2015 00:04:27 -0300 Subject: [PATCH 071/256] Prototype of simplified diagnosis for basic medical. The left gui is completely scraped. Instead, the medical interaction points are color coded to reflect theier damage (bleeding rate). --- addons/medical/ACE_Medical_Actions.hpp | 6 ++++++ addons/medical/ACE_Medical_SelfActions.hpp | 6 ++++++ addons/medical/XEH_preInit.sqf | 1 + addons/medical/functions/fnc_displayPatientInformation.sqf | 2 ++ 4 files changed, 15 insertions(+) diff --git a/addons/medical/ACE_Medical_Actions.hpp b/addons/medical/ACE_Medical_Actions.hpp index 036dd5e9d9..38f376623c 100644 --- a/addons/medical/ACE_Medical_Actions.hpp +++ b/addons/medical/ACE_Medical_Actions.hpp @@ -3,6 +3,7 @@ class ACE_Head { displayName = "$STR_ACE_Interaction_Head"; runOnHover = 1; statement = QUOTE([ARR_3(_target, true, 0)] call DFUNC(displayPatientInformation)); + modifierFunction = QUOTE([ARR_4(_target,_player,0,_this select 3)] call FUNC(modifyMedicalAction)); EXCEPTIONS icon = PATHTOF(UI\icons\medical_cross.paa); distance = MEDICAL_ACTION_DISTANCE; @@ -74,6 +75,7 @@ class ACE_Torso { displayName = "$STR_ACE_Interaction_Torso"; runOnHover = 1; statement = QUOTE([ARR_3(_target, true, 1)] call DFUNC(displayPatientInformation)); + modifierFunction = QUOTE([ARR_4(_target,_player,1,_this select 3)] call FUNC(modifyMedicalAction)); EXCEPTIONS icon = PATHTOF(UI\icons\medical_cross.paa); distance = MEDICAL_ACTION_DISTANCE; @@ -173,6 +175,7 @@ class ACE_ArmLeft { displayName = "$STR_ACE_Interaction_ArmLeft"; runOnHover = 1; statement = QUOTE([ARR_3(_target, true, 2)] call DFUNC(displayPatientInformation)); + modifierFunction = QUOTE([ARR_4(_target,_player,2,_this select 3)] call FUNC(modifyMedicalAction)); EXCEPTIONS icon = PATHTOF(UI\icons\medical_cross.paa); distance = MEDICAL_ACTION_DISTANCE; @@ -329,6 +332,7 @@ class ACE_ArmRight { displayName = "$STR_ACE_Interaction_ArmRight"; runOnHover = 1; statement = QUOTE([ARR_3(_target, true, 3)] call DFUNC(displayPatientInformation)); + modifierFunction = QUOTE([ARR_4(_target,_player,3,_this select 3)] call FUNC(modifyMedicalAction)); EXCEPTIONS icon = PATHTOF(UI\icons\medical_cross.paa); distance = MEDICAL_ACTION_DISTANCE; @@ -482,6 +486,7 @@ class ACE_LegLeft { displayName = "$STR_ACE_Interaction_LegLeft"; runOnHover = 1; statement = QUOTE([ARR_3(_target, true, 4)] call DFUNC(displayPatientInformation)); + modifierFunction = QUOTE([ARR_4(_target,_player,4,_this select 3)] call FUNC(modifyMedicalAction)); EXCEPTIONS icon = PATHTOF(UI\icons\medical_cross.paa); distance = MEDICAL_ACTION_DISTANCE; @@ -623,6 +628,7 @@ class ACE_LegRight { displayName = "$STR_ACE_Interaction_LegRight"; runOnHover = 1; statement = QUOTE([ARR_3(_target, true, 5)] call DFUNC(displayPatientInformation)); + modifierFunction = QUOTE([ARR_4(_target,_player,5,_this select 3)] call FUNC(modifyMedicalAction)); EXCEPTIONS icon = PATHTOF(UI\icons\medical_cross.paa); distance = MEDICAL_ACTION_DISTANCE; diff --git a/addons/medical/ACE_Medical_SelfActions.hpp b/addons/medical/ACE_Medical_SelfActions.hpp index c2a60898f4..f08dab9598 100644 --- a/addons/medical/ACE_Medical_SelfActions.hpp +++ b/addons/medical/ACE_Medical_SelfActions.hpp @@ -11,6 +11,7 @@ class Medical { icon = PATHTOF(UI\icons\medical_cross.paa); exceptions[] = {"isNotInside"}; statement = QUOTE([ARR_3(_target, true, 0)] call DFUNC(displayPatientInformation)); + modifierFunction = QUOTE([ARR_4(_target,_player,0,_this select 3)] call FUNC(modifyMedicalAction)); runOnHover = 1; class Bandage { @@ -78,6 +79,7 @@ class Medical { runOnHover = 1; exceptions[] = {"isNotInside"}; statement = QUOTE([ARR_3(_target, true, 1)] call DFUNC(displayPatientInformation)); + modifierFunction = QUOTE([ARR_4(_target,_player,1,_this select 3)] call FUNC(modifyMedicalAction)); showDisabled = 1; priority = 2; hotkey = ""; @@ -146,6 +148,7 @@ class Medical { runOnHover = 1; exceptions[] = {"isNotInside"}; statement = QUOTE([ARR_3(_target, true, 2)] call DFUNC(displayPatientInformation)); + modifierFunction = QUOTE([ARR_4(_target,_player,2,_this select 3)] call FUNC(modifyMedicalAction)); icon = PATHTOF(UI\icons\medical_cross.paa); class Bandage { @@ -246,6 +249,7 @@ class Medical { runOnHover = 1; exceptions[] = {"isNotInside"}; statement = QUOTE([ARR_3(_target, true, 3)] call DFUNC(displayPatientInformation)); + modifierFunction = QUOTE([ARR_4(_target,_player,3,_this select 3)] call FUNC(modifyMedicalAction)); icon = PATHTOF(UI\icons\medical_cross.paa); class Bandage { @@ -342,6 +346,7 @@ class Medical { runOnHover = 1; exceptions[] = {"isNotInside"}; statement = QUOTE([ARR_3(_target, true, 4)] call DFUNC(displayPatientInformation)); + modifierFunction = QUOTE([ARR_4(_target,_player,4,_this select 3)] call FUNC(modifyMedicalAction)); icon = PATHTOF(UI\icons\medical_cross.paa); class Bandage { @@ -427,6 +432,7 @@ class Medical { runOnHover = 1; exceptions[] = {"isNotInside"}; statement = QUOTE([ARR_3(_target, true, 5)] call DFUNC(displayPatientInformation)); + modifierFunction = QUOTE([ARR_4(_target,_player,5,_this select 3)] call FUNC(modifyMedicalAction)); icon = PATHTOF(UI\icons\medical_cross.paa); class Bandage { diff --git a/addons/medical/XEH_preInit.sqf b/addons/medical/XEH_preInit.sqf index f15b4ec109..a27bc5ccb1 100644 --- a/addons/medical/XEH_preInit.sqf +++ b/addons/medical/XEH_preInit.sqf @@ -56,6 +56,7 @@ PREP(isInMedicalVehicle); PREP(isMedic); PREP(isMedicalVehicle); PREP(itemCheck); +PREP(modifyMedicalAction); PREP(onMedicationUsage); PREP(onWoundUpdateRequest); PREP(onPropagateWound); diff --git a/addons/medical/functions/fnc_displayPatientInformation.sqf b/addons/medical/functions/fnc_displayPatientInformation.sqf index ecd2218c2b..65c98c4b85 100644 --- a/addons/medical/functions/fnc_displayPatientInformation.sqf +++ b/addons/medical/functions/fnc_displayPatientInformation.sqf @@ -14,6 +14,8 @@ #include "script_component.hpp" +// Exit for basic medical +if (GVAR(level) < 2) exitWith {}; private ["_target", "_show", "_selectionN"]; _target = _this select 0; _show = if (count _this > 1) then {_this select 1} else {true}; From f6ecfefe539b0b73861b36aa50ac765997360f4e Mon Sep 17 00:00:00 2001 From: Bracconiere Date: Fri, 17 Apr 2015 06:41:48 +0300 Subject: [PATCH 072/256] Up-to-date feature list --- README.md | 44 ++++++++++++++++++++++++++++++++++---------- 1 file changed, 34 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 1ef1c359e5..9fa736a49a 100644 --- a/README.md +++ b/README.md @@ -33,18 +33,42 @@ The project is entirely **open-source** and all contributions are welcome. Feel The mod is **built modularly**, so almost any included PBO can be easily removed from the configuration. This way, a team can maintain its own tailored version of ACE by simply excluding any components they don't need, or those possibly in conflict with other add-ons. Modules themselves, e.g. the medical system, also include various customization options, allowing mission designers to tweak the overall experience. -### Features -* Improved medical system -* Logistics system including cargo transport and vehicle maintenance -* Explosives system including different trigger types +### Core features +* Brand new 3D interaction/action system +* Performance and reliability framework +* Focus on modularity and customization +* New flexible client and server settings & configuration +* Improved medical system with various levels (Basic/Advanced) focus on gameplay/realism +* Proper & consistent network-synced weather +* Wind and weather-based ballistics * Captivity system -* Realistic names for vehicles and weapons -* Realistic ballistics including wind and humidity -* Backblast area simulation -* A fire control system for armored vehicles and helicopters
-***and more...*** +* Explosives system, including different trigger types +* Map screen improvements – marker placement and map tools +* Advanced missile guidance and laser designation -#### Guides & how-tos +#### Additional features +* Carrying and dragging +* Realistic names for vehicles and weapons +A fire control system (FCS) for armored vehicles and helicopters +* Realistic ballistics/FCS calculated in C/C++ extensions +* Backblast area and overpressure simulation +* Disposable launchers +* Realistic G-forces +* Vehicle locking +* Realistic night and thermal vision modes +* Magazine repacking +* Realistic weapon overheating mechanic +* Combat deafness (temporary loss of hearing) simulation +* Improved ragdoll physics +* Improved interactions for AARs and ammo bearers +* Adjustable sniper scopes +* No idle animation with lowered weapon +* No talking player avatar +* Jumping over obstacles, climbing over walls and cutting down fences +* Vector, MicroDAGR and Kestrel devices
+***and much more...*** + +### Guides & how-tos If you installed ACE3 but have trouble understanding how it all works, or where to start, read this first: * [Getting started](https://github.com/acemod/ACE3/blob/master/documentation/user/getting-started.md) From 0167d98894fdcb02045f8babf68a203d75fe8098 Mon Sep 17 00:00:00 2001 From: Bracconiere Date: Fri, 17 Apr 2015 06:52:40 +0300 Subject: [PATCH 073/256] missing bullet --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 9fa736a49a..22e6e71592 100644 --- a/README.md +++ b/README.md @@ -38,7 +38,7 @@ The mod is **built modularly**, so almost any included PBO can be easily removed * Performance and reliability framework * Focus on modularity and customization * New flexible client and server settings & configuration -* Improved medical system with various levels (Basic/Advanced) focus on gameplay/realism +* Improved medical system with various levels (basic/advanced) focus on gameplay/realism * Proper & consistent network-synced weather * Wind and weather-based ballistics * Captivity system @@ -49,7 +49,7 @@ The mod is **built modularly**, so almost any included PBO can be easily removed #### Additional features * Carrying and dragging * Realistic names for vehicles and weapons -A fire control system (FCS) for armored vehicles and helicopters +* A fire control system (FCS) for armored vehicles and helicopters * Realistic ballistics/FCS calculated in C/C++ extensions * Backblast area and overpressure simulation * Disposable launchers From 6b4da61fa4b5b7d43ad8be9dda8768db8e4fbf49 Mon Sep 17 00:00:00 2001 From: Bracconiere Date: Fri, 17 Apr 2015 06:57:13 +0300 Subject: [PATCH 074/256] Embedded the license link --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index 22e6e71592..29729c97ab 100644 --- a/README.md +++ b/README.md @@ -28,8 +28,7 @@ **ACE3** is a joint effort by the teams behind **ACE2**, **AGM** and **CSE** to improve the realism and authenticity of Arma 3. -The project is entirely **open-source** and all contributions are welcome. Feel free to maintain your own custom version, so long as the changes you make are open to the public in accordance with the GNU General Public License: -* [`LICENSE`](https://github.com/acemod/ACE3/blob/master/LICENSE) +The project is entirely **open-source** and all contributions are welcome. Feel free to maintain your own custom version, so long as the changes you make are open to the public in accordance with the GNU General Public License ([GPLv2](https://github.com/acemod/ACE3/blob/master/LICENSE)). The mod is **built modularly**, so almost any included PBO can be easily removed from the configuration. This way, a team can maintain its own tailored version of ACE by simply excluding any components they don't need, or those possibly in conflict with other add-ons. Modules themselves, e.g. the medical system, also include various customization options, allowing mission designers to tweak the overall experience. From b94b6fad536b6d5e307a98f1a02bed60b3f6e40c Mon Sep 17 00:00:00 2001 From: Bracconiere Date: Fri, 17 Apr 2015 07:27:24 +0300 Subject: [PATCH 075/256] Wiki links to site not repo --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 29729c97ab..4ed84011bf 100644 --- a/README.md +++ b/README.md @@ -69,7 +69,7 @@ The mod is **built modularly**, so almost any included PBO can be easily removed ### Guides & how-tos If you installed ACE3 but have trouble understanding how it all works, or where to start, read this first: -* [Getting started](https://github.com/acemod/ACE3/blob/master/documentation/user/getting-started.md) +* [Getting started](http://ace3mod.com/wiki/user/getting-started.html) #### Contributing You can help out with the ongoing development by looking for potential bugs in our code base, or by contributing new features. To contribute something to ACE, simply fork this repository and submit your pull requests for review by other collaborators. Remember to add yourself to the author array of any PBO you will be editing and the [`AUTHORS.txt`](https://github.com/acemod/ACE3/blob/master/AUTHORS.txt) file; including a valid email address. @@ -80,4 +80,4 @@ Please, use our [Issue Tracker](https://github.com/acemod/ACE3/issues) to report #### Testing & building To help us test the latest development changes, download our master branch ([directly](https://github.com/acemod/ACE3/archive/master.zip), or [with git](https://help.github.com/articles/fetching-a-remote/)), then assemble a test build: -* [Setting up the development environment](https://github.com/acemod/ACE3/blob/master/documentation/development/setting-up-the-development-environment.md) – step-by-step instructions on how to properly setup and build a version of ACE for testing purposes. +* [Setting up the development environment](http://ace3mod.com/wiki/development/setting-up-the-development-environment.html) – step-by-step instructions on how to properly setup and build a version of ACE for testing purposes. From 9f2dd6161364416d0f4564da3ca047cf1788329f Mon Sep 17 00:00:00 2001 From: simon84 Date: Fri, 17 Apr 2015 20:22:49 +0200 Subject: [PATCH 076/256] Revert "minor FCS changes (privatized variables, unnecessary counters)" This reverts commit ff0fb12ca35ac1167bfac736ea6539fab7d24c23. --- addons/fcs/functions/fnc_getAngle.sqf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/addons/fcs/functions/fnc_getAngle.sqf b/addons/fcs/functions/fnc_getAngle.sqf index 2ec9215bea..03024d8b98 100644 --- a/addons/fcs/functions/fnc_getAngle.sqf +++ b/addons/fcs/functions/fnc_getAngle.sqf @@ -19,7 +19,7 @@ #include "script_component.hpp" #define PRECISION 0.1 -private ["_distance","_angleTarget","_maxElev","_initSpeed","_airFriction","_timeToLive","_timeToLive","_simulationStep","_angle","_posTargetX","_posTargetY","_posX","_posY","_velocityX","_velocityY","_velocityMagnitude","_angle1","_angle2","_f1","_f2","_temp"]; +private ["_distance","_angleTarget","_maxElev","_initSpeed","_airFriction","_timeToLive","_timeToLive","_simulationStep","_angle","_posTargetX","_posTargetY","_posX","_posY","_velocityX","_velocityY","_velocityMagnitude"]; _distance = _this select 0; _angleTarget = _this select 1; @@ -73,7 +73,7 @@ if ((_this + [_maxElev]) call FUNC(traceBullet) < 0) exitWith {_maxElev - _angle // Newton Method / Secand Method _angle1 = _angleTarget; _angle2 = _maxElev; -//_it2 = 0; +_it2 = 0; _f1 = (_this + [_angle1]) call FUNC(traceBullet); if ((abs _f1) <= PRECISION) exitWith {0}; @@ -83,7 +83,7 @@ while {(abs _f1) > PRECISION} do { _angle1 = _angle2; _angle2 = _temp; _f1 = _f2; - //_it2 = _it2+1; + _it2 = _it2+1; }; //player globalChat format ["it1: %1 | _angle1: %2 | it2: %3 | _angle2: %4",_it1, _angle-_angleTarget, _it2, _angle2-_angleTarget]; From 4597da5c6c35f9969dac8d45b0e3b2b358ff012a Mon Sep 17 00:00:00 2001 From: simon84 Date: Fri, 17 Apr 2015 20:23:26 +0200 Subject: [PATCH 077/256] Revert "Revert "minor FCS changes (privatized variables, unnecessary counters)"" This reverts commit 9f2dd6161364416d0f4564da3ca047cf1788329f. --- addons/fcs/functions/fnc_getAngle.sqf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/addons/fcs/functions/fnc_getAngle.sqf b/addons/fcs/functions/fnc_getAngle.sqf index 03024d8b98..2ec9215bea 100644 --- a/addons/fcs/functions/fnc_getAngle.sqf +++ b/addons/fcs/functions/fnc_getAngle.sqf @@ -19,7 +19,7 @@ #include "script_component.hpp" #define PRECISION 0.1 -private ["_distance","_angleTarget","_maxElev","_initSpeed","_airFriction","_timeToLive","_timeToLive","_simulationStep","_angle","_posTargetX","_posTargetY","_posX","_posY","_velocityX","_velocityY","_velocityMagnitude"]; +private ["_distance","_angleTarget","_maxElev","_initSpeed","_airFriction","_timeToLive","_timeToLive","_simulationStep","_angle","_posTargetX","_posTargetY","_posX","_posY","_velocityX","_velocityY","_velocityMagnitude","_angle1","_angle2","_f1","_f2","_temp"]; _distance = _this select 0; _angleTarget = _this select 1; @@ -73,7 +73,7 @@ if ((_this + [_maxElev]) call FUNC(traceBullet) < 0) exitWith {_maxElev - _angle // Newton Method / Secand Method _angle1 = _angleTarget; _angle2 = _maxElev; -_it2 = 0; +//_it2 = 0; _f1 = (_this + [_angle1]) call FUNC(traceBullet); if ((abs _f1) <= PRECISION) exitWith {0}; @@ -83,7 +83,7 @@ while {(abs _f1) > PRECISION} do { _angle1 = _angle2; _angle2 = _temp; _f1 = _f2; - _it2 = _it2+1; + //_it2 = _it2+1; }; //player globalChat format ["it1: %1 | _angle1: %2 | it2: %3 | _angle2: %4",_it1, _angle-_angleTarget, _it2, _angle2-_angleTarget]; From 25e017c30ba8b25cfbd1b16517d9c0e838237b04 Mon Sep 17 00:00:00 2001 From: simon84 Date: Fri, 17 Apr 2015 20:46:13 +0200 Subject: [PATCH 078/256] Revert "Revert "Revert "minor FCS changes (privatized variables, unnecessary counters)""" This reverts commit 4597da5c6c35f9969dac8d45b0e3b2b358ff012a. --- addons/fcs/functions/fnc_getAngle.sqf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/addons/fcs/functions/fnc_getAngle.sqf b/addons/fcs/functions/fnc_getAngle.sqf index 2ec9215bea..03024d8b98 100644 --- a/addons/fcs/functions/fnc_getAngle.sqf +++ b/addons/fcs/functions/fnc_getAngle.sqf @@ -19,7 +19,7 @@ #include "script_component.hpp" #define PRECISION 0.1 -private ["_distance","_angleTarget","_maxElev","_initSpeed","_airFriction","_timeToLive","_timeToLive","_simulationStep","_angle","_posTargetX","_posTargetY","_posX","_posY","_velocityX","_velocityY","_velocityMagnitude","_angle1","_angle2","_f1","_f2","_temp"]; +private ["_distance","_angleTarget","_maxElev","_initSpeed","_airFriction","_timeToLive","_timeToLive","_simulationStep","_angle","_posTargetX","_posTargetY","_posX","_posY","_velocityX","_velocityY","_velocityMagnitude"]; _distance = _this select 0; _angleTarget = _this select 1; @@ -73,7 +73,7 @@ if ((_this + [_maxElev]) call FUNC(traceBullet) < 0) exitWith {_maxElev - _angle // Newton Method / Secand Method _angle1 = _angleTarget; _angle2 = _maxElev; -//_it2 = 0; +_it2 = 0; _f1 = (_this + [_angle1]) call FUNC(traceBullet); if ((abs _f1) <= PRECISION) exitWith {0}; @@ -83,7 +83,7 @@ while {(abs _f1) > PRECISION} do { _angle1 = _angle2; _angle2 = _temp; _f1 = _f2; - //_it2 = _it2+1; + _it2 = _it2+1; }; //player globalChat format ["it1: %1 | _angle1: %2 | it2: %3 | _angle2: %4",_it1, _angle-_angleTarget, _it2, _angle2-_angleTarget]; From 1d208b4efc698e5592df655568ee8c6b459a7897 Mon Sep 17 00:00:00 2001 From: esteldunedain Date: Fri, 17 Apr 2015 19:36:03 -0300 Subject: [PATCH 079/256] Modify Function for medical actions --- .../functions/fnc_modifyMedicalAction.sqf | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 addons/medical/functions/fnc_modifyMedicalAction.sqf diff --git a/addons/medical/functions/fnc_modifyMedicalAction.sqf b/addons/medical/functions/fnc_modifyMedicalAction.sqf new file mode 100644 index 0000000000..c7deb07c09 --- /dev/null +++ b/addons/medical/functions/fnc_modifyMedicalAction.sqf @@ -0,0 +1,33 @@ +/* + * Author: esteldunedain + * Modify the visuals of a medical action point. + * On Basic medical: modify the icon color based on damage on that body part. + * + * Arguments: + * 0: The Patient Unit + * 1: The Diagnosing Unit + * 2: Selection Number + * 3: The action to modify + * + * ReturnValue: + * nil + * + * Public: No + */ + +#include "script_component.hpp" + +// Quit for the advanced medical system +if (GVAR(level) >= 2) exitWith {}; + +EXPLODE_4_PVT(_this,_target,_player,_selectionN,_actionData); + +private ["_pointDamage"]; +_pointDamage = _target getHitPointDamage (["HitHead", "HitBody", "HitLeftArm", "HitRightArm", "HitLeftLeg", "HitRightLeg"] select _selectionN); + +if (_pointDamage >= 0.8) exitWith { + _actionData set [2, QUOTE(PATHTOF(UI\icons\medical_crossRed.paa))]; +}; +if (_pointDamage > 0) exitWith { + _actionData set [2, QUOTE(PATHTOF(UI\icons\medical_crossYellow.paa))]; +}; From cce9e1f04cf41c7800c1204663b44786f5dab19c Mon Sep 17 00:00:00 2001 From: esteldunedain Date: Fri, 17 Apr 2015 19:38:03 -0300 Subject: [PATCH 080/256] Simple diagnose --- addons/medical/ACE_Medical_Actions.hpp | 6 +++ addons/medical/ACE_Medical_Treatments.hpp | 16 +++---- addons/medical/XEH_preInit.sqf | 2 + .../medical/functions/fnc_actionDiagnose.sqf | 22 ++++++++++ .../functions/fnc_actionDiagnoseLocal.sqf | 42 +++++++++++++++++++ 5 files changed, 77 insertions(+), 11 deletions(-) create mode 100644 addons/medical/functions/fnc_actionDiagnose.sqf create mode 100644 addons/medical/functions/fnc_actionDiagnoseLocal.sqf diff --git a/addons/medical/ACE_Medical_Actions.hpp b/addons/medical/ACE_Medical_Actions.hpp index 38f376623c..1c4c1c2f9d 100644 --- a/addons/medical/ACE_Medical_Actions.hpp +++ b/addons/medical/ACE_Medical_Actions.hpp @@ -70,6 +70,12 @@ class ACE_Head { statement = QUOTE([ARR_4(_player, _target, 'head', 'CheckResponse')] call DFUNC(treatment)); EXCEPTIONS }; + class Diagnose: CheckPulse { + displayName = "Diagnose"; + condition = QUOTE([ARR_4(_player, _target, 'head', 'Diagnose')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'head', 'Diagnose')] call DFUNC(treatment)); + EXCEPTIONS + }; }; class ACE_Torso { displayName = "$STR_ACE_Interaction_Torso"; diff --git a/addons/medical/ACE_Medical_Treatments.hpp b/addons/medical/ACE_Medical_Treatments.hpp index 5b5e0b6abd..03b9def612 100644 --- a/addons/medical/ACE_Medical_Treatments.hpp +++ b/addons/medical/ACE_Medical_Treatments.hpp @@ -71,14 +71,14 @@ class ACE_Medical_Actions { itemConsumed = 1; litter[] = {}; }; - class CheckPulse: Bandage { - displayName = ""; - displayNameProgress = ""; + class Diagnose: Bandage { + displayName = "Diagnose"; + displayNameProgress = "Diagnosing..."; treatmentLocations[] = {"All"}; requiredMedic = 0; - treatmentTime = 2; + treatmentTime = 1; items[] = {}; - callbackSuccess = QUOTE(DFUNC(actionCheckPulse)); + callbackSuccess = QUOTE(DFUNC(actionDiagnose)); callbackFailure = ""; callbackProgress = ""; animationPatient = ""; @@ -86,12 +86,6 @@ class ACE_Medical_Actions { itemConsumed = 0; litter[] = {}; }; - class CheckBloodPressure: CheckPulse { - callbackSuccess = QUOTE(DFUNC(actionCheckBloodPressure)); - }; - class CheckResponse: CheckPulse { - callbackSuccess = QUOTE(DFUNC(actionCheckResponse)); - }; }; class Advanced { diff --git a/addons/medical/XEH_preInit.sqf b/addons/medical/XEH_preInit.sqf index a27bc5ccb1..c1ae7666f3 100644 --- a/addons/medical/XEH_preInit.sqf +++ b/addons/medical/XEH_preInit.sqf @@ -7,6 +7,8 @@ PREP(actionCheckBloodPressureLocal); PREP(actionCheckPulse); PREP(actionCheckPulseLocal); PREP(actionCheckResponse); +PREP(actionDiagnose); +PREP(actionDiagnoseLocal); PREP(actionPlaceInBodyBag); PREP(actionRemoveTourniquet); PREP(actionLoadUnit); diff --git a/addons/medical/functions/fnc_actionDiagnose.sqf b/addons/medical/functions/fnc_actionDiagnose.sqf new file mode 100644 index 0000000000..ff1b05346c --- /dev/null +++ b/addons/medical/functions/fnc_actionDiagnose.sqf @@ -0,0 +1,22 @@ +/* +* Author: Glowbal +* Action for diagnosing in basic medical +* +* Arguments: +* 0: The medic +* 1: The patient +* +* Return Value: +* NONE +* +* Public: No +*/ + +#include "script_component.hpp" + +systemChat "actionDiagnose"; + +private ["_caller","_target","_title","_content"]; +_caller = _this select 0; +_target = _this select 1; +[[_caller, _target], QUOTE(DFUNC(actionDiagnoseLocal)), _target] call EFUNC(common,execRemoteFnc); /* TODO Replace by event system */ diff --git a/addons/medical/functions/fnc_actionDiagnoseLocal.sqf b/addons/medical/functions/fnc_actionDiagnoseLocal.sqf new file mode 100644 index 0000000000..6428db9f24 --- /dev/null +++ b/addons/medical/functions/fnc_actionDiagnoseLocal.sqf @@ -0,0 +1,42 @@ +/* + * Author: Glowbal + * Local callback for checking the pulse of a patient + * + * Arguments: + * 0: The medic + * 1: The patient + * + * Return Value: + * NONE + * + * Public: No + */ + +#include "script_component.hpp" + +systemChat "actionDiagnoseLocal"; + +_caller = _this select 0; +_unit = _this select 1; + +_genericMessages = ["Patient %1 is %2. %3. %4"]; + +_genericMessages pushBack ([_unit] call EFUNC(common,getName)); +if (alive _unit) then { + _genericMessages pushback "alive"; +} else { + _genericMessages pushback "dead"; +}; +if (_target getvariable[QGVAR(hasLostBlood), false]) then { + _genericMessages pushback "He's lost some blood"; +} else { + _genericMessages pushback "He hasn't lost blood"; +; + +if (_target getvariable[QGVAR(hasPain), false]) then { + _genericMessages pushback localize "He is in pain"; +} else { + _genericMessages pushback localize "He is not in pain"; +}; + +["displayTextStructured", [_caller], [format _genericMessages, 1.5, _caller]] call EFUNC(common,targetEvent); From a5c3e86cd3a119859bddb2fee42ffc5d100dcc93 Mon Sep 17 00:00:00 2001 From: esteldunedain Date: Fri, 17 Apr 2015 20:00:43 -0300 Subject: [PATCH 081/256] Fixes --- .../medical/functions/fnc_actionDiagnose.sqf | 2 -- .../functions/fnc_actionDiagnoseLocal.sqf | 18 ++++++++---------- 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/addons/medical/functions/fnc_actionDiagnose.sqf b/addons/medical/functions/fnc_actionDiagnose.sqf index ff1b05346c..7ac4bfd5a5 100644 --- a/addons/medical/functions/fnc_actionDiagnose.sqf +++ b/addons/medical/functions/fnc_actionDiagnose.sqf @@ -14,8 +14,6 @@ #include "script_component.hpp" -systemChat "actionDiagnose"; - private ["_caller","_target","_title","_content"]; _caller = _this select 0; _target = _this select 1; diff --git a/addons/medical/functions/fnc_actionDiagnoseLocal.sqf b/addons/medical/functions/fnc_actionDiagnoseLocal.sqf index 6428db9f24..58c50638bf 100644 --- a/addons/medical/functions/fnc_actionDiagnoseLocal.sqf +++ b/addons/medical/functions/fnc_actionDiagnoseLocal.sqf @@ -14,12 +14,10 @@ #include "script_component.hpp" -systemChat "actionDiagnoseLocal"; - _caller = _this select 0; _unit = _this select 1; -_genericMessages = ["Patient %1 is %2. %3. %4"]; +_genericMessages = ["Patient %1
is %2.
%3.
%4"]; _genericMessages pushBack ([_unit] call EFUNC(common,getName)); if (alive _unit) then { @@ -31,12 +29,12 @@ if (_target getvariable[QGVAR(hasLostBlood), false]) then { _genericMessages pushback "He's lost some blood"; } else { _genericMessages pushback "He hasn't lost blood"; -; - -if (_target getvariable[QGVAR(hasPain), false]) then { - _genericMessages pushback localize "He is in pain"; -} else { - _genericMessages pushback localize "He is not in pain"; }; -["displayTextStructured", [_caller], [format _genericMessages, 1.5, _caller]] call EFUNC(common,targetEvent); +if (_target getvariable[QGVAR(hasPain), false]) then { + _genericMessages pushback "He is in pain"; +} else { + _genericMessages pushback "He is not in pain"; +}; +diag_log _genericMessages; +["displayTextStructured", [_caller], [format _genericMessages, 3.0, _caller]] call EFUNC(common,targetEvent); From 15720dce31e95e18afdd69b3f53de10970f169bf Mon Sep 17 00:00:00 2001 From: esteldunedain Date: Fri, 17 Apr 2015 20:08:30 -0300 Subject: [PATCH 082/256] Yellow and Red medical crosses --- addons/medical/ui/icons/medical_crossRed.paa | Bin 0 -> 2897 bytes addons/medical/ui/icons/medical_crossYellow.paa | Bin 0 -> 2897 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 addons/medical/ui/icons/medical_crossRed.paa create mode 100644 addons/medical/ui/icons/medical_crossYellow.paa diff --git a/addons/medical/ui/icons/medical_crossRed.paa b/addons/medical/ui/icons/medical_crossRed.paa new file mode 100644 index 0000000000000000000000000000000000000000..5a0c8e9f9cc2e54a4794234bb325084cb65c853b GIT binary patch literal 2897 zcmeHJy-vh140dUU3WnUm-UmTyE2MS-F@O+{!^XxlMY{Lk8M1LhB=b25wvUp63B^e=X(N9zWQ_ zJg>yh#B-?q36B}+Cp(RzXD9X}>o7N3U(2Eg^V#e4v-?l+DEr-YrjB*eKNMHAlAbcT zk?@%7*yXTO>$QAG4-#HK=LTf<*qppx>0g<;6lh@G`CXS8?4zC=m9<1iS|xXp-g`S% Sx88F>1r&$3dA$zLE72R7Mdi2v literal 0 HcmV?d00001 diff --git a/addons/medical/ui/icons/medical_crossYellow.paa b/addons/medical/ui/icons/medical_crossYellow.paa new file mode 100644 index 0000000000000000000000000000000000000000..74ddefd8379c7624c39de30280df92300364822d GIT binary patch literal 2897 zcmeHJ%}T^D5T3O?6g_k=-uFR-wg~M-@t}y0$h-txKgvwF(^ zx__*XtE!5a;)_7{c{vbw{FmVma#oL>b5rq$9dRH1tGz>^xc@EwB?>W~V>o*LKhu-t z&(3pt-YvrZ@&5gE{^4{kcG2#a6azNk;77qvHt3aLm}YA(4C!S%&m2%J+c Ng3&v#*Kvc1UIFa|^X&it literal 0 HcmV?d00001 From 0a9972d7e05054b1aacef09dd00f486f39dae361 Mon Sep 17 00:00:00 2001 From: Bracconiere Date: Sat, 18 Apr 2015 04:54:07 +0300 Subject: [PATCH 083/256] Wiki/Shortcuts MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. Switched places of Shortcut and PBO table columns 2. Combined Shift, Win and Tab keys with their respective unicode symbols (⇧, ⊞, ↹) 3. Key combinations are bound by the plus sign (+) 4. Renamed entries: * Command> Action * Interaction Menu (Selft)> Self-interaction menu * Safe Mode> Safety toggle * Main Gun> Primary weapon * Clear jam> Clear firearm malfunction * Wipe Goggles> Wipe off goggles * Tap Shoulder> Tap on the shoulder * Ammo> Ammunition 5. Added common prefix to sets of keys for visual grouping (NVG, Scope, Vector, FCS) 6. Proper PBO names are tagged as code --- documentation/user/shourtcuts.md | 390 +++++++++++++++---------------- 1 file changed, 195 insertions(+), 195 deletions(-) diff --git a/documentation/user/shourtcuts.md b/documentation/user/shourtcuts.md index d44dc54886..0e6444c645 100644 --- a/documentation/user/shourtcuts.md +++ b/documentation/user/shourtcuts.md @@ -7,198 +7,198 @@ parent: wiki --- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PBOCommandShortcut
ACE_InteractionInteraction MenuWin_Left
ACE_InteractionInteraction Menu (Self)Ctrl Win_Left
ACE_InteractionOpen / Close DoorCtrl Space
ACE_InteractionTap ShoulderCtrl T
ACE_LogisticsModifier KeyCtrl_Left
ACE_GogglesWipe GogglesCtrl Shift T
ACE_GrenadesSwitch Grenade Mode8
ACE_NameTagsShow NamesCtrl_Left
ACE_NightVisionIncrease NVG BrightnessAlt Page Up
ACE_NightVisionDecrease NVG BrightnessAlt Page Down
ACE_OverheatingClear jamShift R
ACE_ParachuteShow AltimeterO
ACE_ReloadCheck AmmoCtrl R
ACE_SafeModeSafe Mode`(en) | ^(de)
ACE_ScopesAdjust Elevation UpPage Up
ACE_ScopesAdjust Elevation DownPage Down
ACE_ScopesAdjust Windage LeftCtrl Page Up
ACE_ScopesAdjust Windage RightCtrl Page Down
ACE_VectorVector - Azimuth KeyTab
ACE_VectorVector - Distance KeyR
ACE_VehiclesSpeed LimiterDel
ACE_WeaponSelectSelect Pistol1
ACE_WeaponSelectSelect Rifle2
ACE_WeaponSelectSelect Grenade Launcher3
ACE_WeaponSelectSelect Binoculars5
ACE_WeaponSelectSelect Frag Grenade6
ACE_WeaponSelectSelect Non-Frag Grenade7
ACE_WeaponSelectHolster Weapon0
ACE_WeaponSelectEngine on2
ACE_WeaponSelectEngine off1
ACE_WeaponSelectSelect Main Gun3
ACE_WeaponSelectSelect Machine Gun4
ACE_WeaponSelectSelect Missiles5
ACE_WeaponSelectFire Smoke Launcher9
ACE_FireControlSsystemLase Target / Measure DistanceTab
ACE_FireControlSsystemAdjust FCS Range (Up)Page Up
ACE_FireControlSsystemAdjust FCS Range (Down)Page Down
\ No newline at end of file + + + Shortcut + Action + PBO + + + + + ⊞ Win + Interaction menu + ACE_Interaction + + + Ctrl+⊞ Win + Self-interaction menu + ACE_Interaction + + + Ctrl+Space + Open/close door + ACE_Interaction + + + Ctrl+T + Tap on the shoulder + ACE_Interaction + + + Ctrl + Modifier key + ACE_Logistics + + + Ctrl+⇧ Shift+T + Wipe off goggles + ACE_Goggles + + + 8 + Switch grenade mode + ACE_Grenades + + + Ctrl + Show names + ACE_NameTags + + + Alt+Page Up + NVG: Increase brightness + ACE_NightVision + + + Alt+Page Down + NVG: Decrease brightness + ACE_NightVision + + + ⇧ Shift+R + Clear firearm malfunction + ACE_Overheating + + + O + Altimeter + ACE_Parachute + + + Ctrl+R + Check ammunition + ACE_Reload + + + ` + Safety toggle + ACE_SafeMode + + + Page Up + Scope: Elevation up + ACE_Scopes + + + Page Down + Scope: Elevation down + ACE_Scopes + + + Ctrl+Page Up + Scope: Windage left + ACE_Scopes + + + Ctrl+Page Down + Scope: Windage right + ACE_Scopes + + + Tab ↹ + Vector: Azimuth key + ACE_Vector + + + R + Vector: Distance key + ACE_Vector + + + Del + Speed limiter + ACE_Vehicles + + + 1 + Pistol + ACE_WeaponSelect + + + 2 + Rifle + ACE_WeaponSelect + + + 3 + Grenade launcher + ACE_WeaponSelect + + + 5 + Binoculars + ACE_WeaponSelect + + + 6 + Frag grenade + ACE_WeaponSelect + + + 7 + Non-frag grenade + ACE_WeaponSelect + + + 0 + Holster weapon + ACE_WeaponSelect + + + 2 + Engine on + ACE_WeaponSelect + + + 1 + Engine off + ACE_WeaponSelect + + + 3 + Primary weapon + ACE_WeaponSelect + + + 4 + Machine gun + ACE_WeaponSelect + + + 5 + Missiles + ACE_WeaponSelect + + + 9 + Fire smoke launcher + ACE_WeaponSelect + + + Tab ↹ + FCS: Lase target (measure distance) + ACE_FireControlSsystem + + + Page Up + FCS: Range up + ACE_FireControlSsystem + + + Page Down + FCS: Range down + ACE_FireControlSsystem + + + From 6c3ca2c347cc537449f6ac607977bd41d6d31bb3 Mon Sep 17 00:00:00 2001 From: Bracconiere Date: Sat, 18 Apr 2015 05:45:15 +0300 Subject: [PATCH 084/256] WIP note --- documentation/user/getting-started.md | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/documentation/user/getting-started.md b/documentation/user/getting-started.md index 5a9c3f6917..7f7d7ade2e 100644 --- a/documentation/user/getting-started.md +++ b/documentation/user/getting-started.md @@ -1,20 +1,20 @@ --- layout: wiki -title: Getting Started +title: Getting started group: user order: 0 parent: wiki --- +
+
Note:
+

This page is currently under construction. Please, come back later.

+
+ From cfb6d9eeea90797b1a8f8aa9259799f9b861339d Mon Sep 17 00:00:00 2001 From: Bracconiere Date: Sat, 18 Apr 2015 07:21:16 +0300 Subject: [PATCH 085/256] Wiki/Feats Minor rewrite to improve the flow by minimizing repetitive wording. --- .../user/how-to-make-a-feature-request.md | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/documentation/user/how-to-make-a-feature-request.md b/documentation/user/how-to-make-a-feature-request.md index bfc5401f38..408a531fbb 100644 --- a/documentation/user/how-to-make-a-feature-request.md +++ b/documentation/user/how-to-make-a-feature-request.md @@ -6,19 +6,17 @@ order: 11 parent: wiki --- -### Before requesting +### Background +ACE2, AGM and CSE had a lot of features implemented or planned. All of them are or have been evaluated for inclusion in ACE3 itself, and we'd like to port the majority of them eventually. However, due to time constraints, we have managed to finish only a fraction of the job so far. -ACE 2, AGM and CSE had a lot of features implemented or planned. All of them are or have been evaluated for inclusion in ACE3 itself, and we'd like to port the majority of them eventually. However, due to time constraints, we have only managed to do a fraction of the job so far. - -There's really no point on making feature requests for anything included or planned for inclusion in ACE2, AGM or CSE. The majority of those things are been considered for porting or rewritting already. +Please refrain from making requests for any planned or existing features from either ACE2, AGM or CSE. Most of them are already being or have been considered for porting or a rewrite.
-
Please note:
-

Due to the pace at which development is taking place, we are establishing a feature request embargo during the first week weeks prior and posterior to the first release. Feel free to add feature requests as described below, but don't expect them to be evaluated or discussed yet. Any dev activity on the feature request thread is highly unlikely during that period.

+
Note:
+

Due to our current work load, in the period of weeks prior and posterior to the first release, new feature requests are under embargo. Feel free to submit yours now, but don't expect them to be considered just yet. Any treatment or attention by developers towards the feature request thread is highly unlikely during this time.

### Requesting a feature +In order to avoid duplicates and keep the issue tracker organized, we have created a common Issue for feature request. Any and all relevant requests should be submitted there, where they will also get discussed and evaluated. Before adding a new one, make sure to check the previous entries from the thread and do a quick search for similar suggestions; please don't reiterate requests for features that had already been accepted for inclusion, or those which were disregarded earlier. -In order not to spam the issue tracker with duplicated requests, we have have created a single Issue for feature request. Any and all requests should be done there, where they will get discussed and evaluated. Before posting a new one, please make sure to check the previous entries on the thread and make a quick search; please don't reiterate requests that had already been either accepted for inclusion or disregarded. - -Accepted feature requests may be moved to a separate issue by moderators for further discussion. +Following their approval, feature requests may be moved by moderators to a separate issue for further discussion. From a2eececf080c93393730127c1a3d238cf162521b Mon Sep 17 00:00:00 2001 From: Bracconiere Date: Sat, 18 Apr 2015 07:29:21 +0300 Subject: [PATCH 086/256] Using actual title for the link to #414 --- documentation/user/how-to-make-a-feature-request.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/documentation/user/how-to-make-a-feature-request.md b/documentation/user/how-to-make-a-feature-request.md index 408a531fbb..7b0c52478d 100644 --- a/documentation/user/how-to-make-a-feature-request.md +++ b/documentation/user/how-to-make-a-feature-request.md @@ -17,6 +17,6 @@ Please refrain from making requests for any planned or existing features from ei ### Requesting a feature -In order to avoid duplicates and keep the issue tracker organized, we have created a common Issue for feature request. Any and all relevant requests should be submitted there, where they will also get discussed and evaluated. Before adding a new one, make sure to check the previous entries from the thread and do a quick search for similar suggestions; please don't reiterate requests for features that had already been accepted for inclusion, or those which were disregarded earlier. +In order to avoid duplicates and keep the issue tracker organized, we have created a common issue for ACE 3 Feature requests. Any and all relevant requests should be submitted there, where they will also get discussed and evaluated. Before adding a new one, make sure to check the previous entries from the thread and do a quick search for similar suggestions; please don't reiterate requests for features that had already been accepted for inclusion, or those which were disregarded earlier. Following their approval, feature requests may be moved by moderators to a separate issue for further discussion. From e7472344435aad9c18026abd8406810d901faeec Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Mon, 20 Apr 2015 02:17:47 -0500 Subject: [PATCH 087/256] Cleanup Spelling --- addons/hearing/CfgEventHandlers.hpp | 1 - addons/hearing/XEH_postInit.sqf | 6 ++--- addons/hearing/XEH_preInit.sqf | 2 +- ...sqf => fnc_updatePlayerVehAttenuation.sqf} | 27 +++++++------------ 4 files changed, 13 insertions(+), 23 deletions(-) rename addons/hearing/functions/{fnc_updatePlayerVehicleAttunation.sqf => fnc_updatePlayerVehAttenuation.sqf} (57%) diff --git a/addons/hearing/CfgEventHandlers.hpp b/addons/hearing/CfgEventHandlers.hpp index cfe71fe01d..ce968ed2ca 100644 --- a/addons/hearing/CfgEventHandlers.hpp +++ b/addons/hearing/CfgEventHandlers.hpp @@ -1,4 +1,3 @@ - class Extended_PreInit_EventHandlers { class ADDON { init = QUOTE(call COMPILE_FILE(XEH_preInit) ); diff --git a/addons/hearing/XEH_postInit.sqf b/addons/hearing/XEH_postInit.sqf index 4dc22efd4f..7b584f8397 100644 --- a/addons/hearing/XEH_postInit.sqf +++ b/addons/hearing/XEH_postInit.sqf @@ -4,11 +4,11 @@ if (!hasInterface) exitWith {}; GVAR(currentDeafness) = 0; GVAR(newStrength) = 0; -GVAR(playerVehAttunation) = 1; +GVAR(playerVehAttenuation) = 1; // Spawn volume updating process [FUNC(updateVolume), 0.1, [] ] call CBA_fnc_addPerFrameHandler; //Update veh attunation when player veh changes -["playerVehicleChanged", {_this call FUNC(updatePlayerVehicleAttunation);}] call EFUNC(common,addEventHandler); -["playerTurretChanged", {_this call FUNC(updatePlayerVehicleAttunation);}] call EFUNC(common,addEventHandler); +["playerVehicleChanged", {_this call FUNC(updatePlayerVehAttenuation);}] call EFUNC(common,addEventHandler); +["playerTurretChanged", {_this call FUNC(updatePlayerVehAttenuation);}] call EFUNC(common,addEventHandler); diff --git a/addons/hearing/XEH_preInit.sqf b/addons/hearing/XEH_preInit.sqf index 4ac4c779cd..16b9f35f80 100644 --- a/addons/hearing/XEH_preInit.sqf +++ b/addons/hearing/XEH_preInit.sqf @@ -10,7 +10,7 @@ PREP(hasEarPlugsIn); PREP(moduleHearing); PREP(putInEarPlugs); PREP(removeEarPlugs); -PREP(updatePlayerVehicleAttunation); +PREP(updatePlayerVehAttenuation); PREP(updateVolume); ADDON = true; diff --git a/addons/hearing/functions/fnc_updatePlayerVehicleAttunation.sqf b/addons/hearing/functions/fnc_updatePlayerVehAttenuation.sqf similarity index 57% rename from addons/hearing/functions/fnc_updatePlayerVehicleAttunation.sqf rename to addons/hearing/functions/fnc_updatePlayerVehAttenuation.sqf index e03fc23d50..15f3121c38 100644 --- a/addons/hearing/functions/fnc_updatePlayerVehicleAttunation.sqf +++ b/addons/hearing/functions/fnc_updatePlayerVehAttenuation.sqf @@ -1,15 +1,15 @@ /* * Author: PabstMirror - * Gets the sound attunation of a player to the outside. + * Gets the sound attenuation of a player to the outside. * * Arguments: - * 0: Unit (player) + * None * * Return Value: * Ammount that unit can hear outside * * Example: - * [] call ace_hearing_fnc_updatePlayerVehicleAttunation + * [] call ace_hearing_fnc_updatePlayerVehAttenuation * * Public: No */ @@ -19,10 +19,8 @@ _vehicle = vehicle ACE_player; if (isNull _vehicle) exitWith {}; -_newAttenuation = -1; -if (ACE_player == _vehicle) then { - _newAttenuation = 1; -} else { +_newAttenuation = 1; +if (ACE_player != _vehicle) then { _effectType = ""; _turretPath = [ACE_player] call EFUNC(common,getTurretIndex); _effectType = getText (configFile >> "CfgVehicles" >> (typeOf _vehicle) >> "attenuationEffectType"); @@ -38,19 +36,12 @@ if (ACE_player == _vehicle) then { }; }; }; - _newAttenuation = switch (true) do { - case (_effectType == ""): {1}; - case (_effectType == "CarAttenuation"): {0.7}; - case (_effectType == "OpenCarAttenuation"): {1}; - case (_effectType == "TankAttenuation"): {0.1}; - case (_effectType == "HeliAttenuation"): {0.25}; - case (_effectType == "OpenHeliAttenuation"): {0.7}; - case (_effectType == "SemiOpenHeliAttenuation"): {0.5}; - case (_effectType == "HeliAttenuationGunner"): {0.75}; - case (_effectType == "HeliAttenuationRamp"): {0.75}; default {1}; }; }; -GVAR(playerVehAttunation) = _newAttenuation; +TRACE_2("New vehicle attenuation",_vehicle,_newAttenuation); + +GVAR(playerVehAttenuation) = _newAttenuation; + From 822bd22c977e80566697ce9eead4424dbba291fb Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Mon, 20 Apr 2015 02:18:46 -0500 Subject: [PATCH 088/256] gj git --- addons/hearing/functions/fnc_firedNear.sqf | 11 ++++------- .../functions/fnc_updatePlayerVehAttenuation.sqf | 12 +++++++++++- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/addons/hearing/functions/fnc_firedNear.sqf b/addons/hearing/functions/fnc_firedNear.sqf index 7b50a44a14..6a603c3c3a 100644 --- a/addons/hearing/functions/fnc_firedNear.sqf +++ b/addons/hearing/functions/fnc_firedNear.sqf @@ -31,26 +31,23 @@ if (!GVAR(enableCombatDeafness)) exitWith {}; if ((ACE_player != _object) && {(vehicle ACE_player) != _object}) exitWith {}; if (_weapon in ["Throw", "Put"]) exitWith {}; -_vehAttenuation = if ((ACE_player == (vehicle ACE_player)) || {isTurnedOut ACE_player}) then {1} else {GVAR(playerVehAttunation)}; +_vehAttenuation = if ((ACE_player == (vehicle ACE_player)) || {isTurnedOut ACE_player}) then {1} else {GVAR(playerVehAttenuation)}; if (_distance < 1) then {_distance = 1;}; _silencer = switch (_weapon) do { -case (primaryWeapon _firer) : {(primaryWeaponItems _firer) select 0}; -case (secondaryWeapon _firer) : {(secondaryWeaponItems _firer) select 0}; -case (handgunWeapon _firer) : {(handgunItems _firer) select 0}; + case (primaryWeapon _firer) : {(primaryWeaponItems _firer) select 0}; + case (secondaryWeapon _firer) : {(secondaryWeaponItems _firer) select 0}; + case (handgunWeapon _firer) : {(handgunItems _firer) select 0}; default {""}; }; _audibleFireCoef = 1; -//_audibleFireTimeCoef = 1; if (_silencer != "") then { _audibleFireCoef = getNumber (configFile >> "CfgWeapons" >> _silencer >> "ItemInfo" >> "AmmoCoef" >> "audibleFire"); - //_audibleFireTimeCoef = getNumber (configFile >> "CfgWeapons" >> _silencer >> "ItemInfo" >> "AmmoCoef" >> "audibleFireTime"); }; _audibleFire = getNumber (configFile >> "CfgAmmo" >> _ammo >> "audibleFire"); -//_audibleFireTime = getNumber (configFile >> "CfgAmmo" >> _ammo >> "audibleFireTime"); _loudness = _audibleFireCoef * _audibleFire / 64; _strength = _vehAttenuation * (_loudness - (_loudness/50 * _distance)); // linear drop off diff --git a/addons/hearing/functions/fnc_updatePlayerVehAttenuation.sqf b/addons/hearing/functions/fnc_updatePlayerVehAttenuation.sqf index 15f3121c38..a7285d5e2b 100644 --- a/addons/hearing/functions/fnc_updatePlayerVehAttenuation.sqf +++ b/addons/hearing/functions/fnc_updatePlayerVehAttenuation.sqf @@ -36,7 +36,18 @@ if (ACE_player != _vehicle) then { }; }; }; + _newAttenuation = switch (true) do { + case (_effectType == ""): {1}; + case (_effectType == "CarAttenuation"): {0.5}; + case (_effectType == "RHS_CarAttenuation"): {0.5}; + case (_effectType == "OpenCarAttenuation"): {1}; + case (_effectType == "TankAttenuation"): {0.1}; + case (_effectType == "HeliAttenuation"): {0.3}; + case (_effectType == "OpenHeliAttenuation"): {0.9}; + case (_effectType == "SemiOpenHeliAttenuation"): {0.6}; + case (_effectType == "HeliAttenuationGunner"): {0.85}; + case (_effectType == "HeliAttenuationRamp"): {0.85}; default {1}; }; }; @@ -44,4 +55,3 @@ if (ACE_player != _vehicle) then { TRACE_2("New vehicle attenuation",_vehicle,_newAttenuation); GVAR(playerVehAttenuation) = _newAttenuation; - From 08caf0c695ce5c88fb46e66b3049e47c08f0b3d1 Mon Sep 17 00:00:00 2001 From: ruPaladin Date: Mon, 20 Apr 2015 15:18:17 +0300 Subject: [PATCH 089/256] Updated russian translation (medical) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Перевел как смог, вероятно данная настройка будет в ACE3 Настройки. Нужно проверить влезет ли туда. Если влезет, то подкорректировать перевод. Правки строго приветствуются. --- addons/medical/stringtable.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/addons/medical/stringtable.xml b/addons/medical/stringtable.xml index e85283c471..52eff9a897 100644 --- a/addons/medical/stringtable.xml +++ b/addons/medical/stringtable.xml @@ -4,10 +4,12 @@ Litter Simulation Detail Detale zużytych medykamentów + Количество мусора от медицины 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. + Устанавливает количество мусора, который появляется после использования мед. препаратов. Большое количество мусора может уменьшить производительность, поэтому данная настройка локальна для клиента. Inject Atropine From 7b790ffb1a63224be21026b81965763c6b8abfd8 Mon Sep 17 00:00:00 2001 From: Glowbal Date: Mon, 20 Apr 2015 22:48:11 +0200 Subject: [PATCH 090/256] staged work --- addons/frag/functions/fnc_doSpall.sqf | 42 ++-- addons/frag/functions/fnc_fired.sqf | 12 +- addons/frag/functions/fnc_frago.sqf | 48 ++--- addons/modules/XEH_preInit.sqf | 2 + addons/modules/config.cpp | 3 + .../functions/fnc_bi_moduleProjectile.sqf | 189 ++++++++++++++++++ 6 files changed, 245 insertions(+), 51 deletions(-) create mode 100644 addons/modules/functions/fnc_bi_moduleProjectile.sqf diff --git a/addons/frag/functions/fnc_doSpall.sqf b/addons/frag/functions/fnc_doSpall.sqf index 761490fa90..cb54cb776b 100644 --- a/addons/frag/functions/fnc_doSpall.sqf +++ b/addons/frag/functions/fnc_doSpall.sqf @@ -3,11 +3,11 @@ #ifdef DEBUG_MODE_FULL GVAR(traceFrags) = true; #endif -// player sideChat "WAAAAAAAAAAAAAAAAAAAAA"; -private ["_params", "_initialData", "_hpData", "_roundType", "_round", "_object", "_caliber", "_explosive", - "_idh", "_alive", "_exit", "_vm", "_velocity", "_unitDir", "_oldVelocity", "_curVelocity", "_diff", "_polar", - "_pos", "_spallPos", "_i", "_pos1", "_pos2", "_blah", "_data", "_spallPolar", "_c", "_warn", "_m", "_k", - "_gC", "_shellType", "_fragPower", "_spread", "_spallCount", "_elev", "_dir", "_vel", "_spallFragVect", +// ACE_player sideChat "WAAAAAAAAAAAAAAAAAAAAA"; +private ["_params", "_initialData", "_hpData", "_roundType", "_round", "_object", "_caliber", "_explosive", + "_idh", "_alive", "_exit", "_vm", "_velocity", "_unitDir", "_oldVelocity", "_curVelocity", "_diff", "_polar", + "_pos", "_spallPos", "_i", "_pos1", "_pos2", "_blah", "_data", "_spallPolar", "_c", "_warn", "_m", "_k", + "_gC", "_shellType", "_fragPower", "_spread", "_spallCount", "_elev", "_dir", "_vel", "_spallFragVect", "_fragment"]; @@ -40,21 +40,21 @@ if(!alive _round && (_initialData select 6) == 1) then { }; if(_alive || {_caliber >= 2.5} || {(_explosive > 0 && {_idh >= 1})}) then { - // player sideChat format["BBBB"]; + // ACE_player sideChat format["BBBB"]; _exit = false; _vm = 1; _velocity = _initialData select 5; - + _oldVelocity = _velocity call BIS_fnc_magnitude; _curVelocity = (velocity _round) call BIS_fnc_magnitude; - + if(alive _round) then { _diff = _velocity vectorDiff (velocity _round); _polar = _diff call CBA_fnc_vect2polar; - // player sideChat format["polar: %1", _polar]; + // ACE_player sideChat format["polar: %1", _polar]; if((abs(_polar select 1) > 45 || abs(_polar select 2) > 45)) then { if(_caliber < 2.5) then { - // player sideChat format["exit!"]; + // ACE_player sideChat format["exit!"]; _exit = true; } else { _vm = 1-(_curVelocity/_oldVelocity); @@ -78,20 +78,20 @@ if(_alive || {_caliber >= 2.5} || {(_explosive > 0 && {_idh >= 1})}) then { ]; // _blah = [_object, "FIRE"] intersect [_object worldToModel (ASLtoATL _pos1), _object worldToModel (ASLtoATL _pos2)]; // diag_log text format["b: %1", _blah]; - + // _data = [nil, nil, nil, 1, [[ASLtoATL _pos1, 1], [ASLtoATL _pos2, 1]]]; // NOU_TRACES set[(count NOU_TRACES), _data]; - + if(!lineIntersects [_pos1, _pos2]) exitWith { - // player sideChat format["FOUND!"]; + // ACE_player sideChat format["FOUND!"]; _spallPos = _pos2; }; }; if(!isNil "_spallPos") then { _spallPolar = _velocity call CBA_fnc_vect2polar; - + if(_explosive > 0) then { - // player sideChat format["EXPLOSIVE!"]; + // ACE_player sideChat format["EXPLOSIVE!"]; _warn = false; _c = getNumber(configFile >> "CfgAmmo" >> _roundType >> "ACE_frag_CHARGE"); if(_c == 0) then { _c = 1; _warn = true;}; @@ -109,7 +109,7 @@ if(_alive || {_caliber >= 2.5} || {(_explosive > 0 && {_idh >= 1})}) then { _fragPower = (((_m/_c)+_k)^-(1/2))*_gC; _spallPolar set[0, _fragPower*0.66]; }; - + _fragTypes = [ "ACE_frag_spall_small", "ACE_frag_spall_small", "ACE_frag_spall_small", "ACE_frag_spall_small","ACE_frag_spall_medium","ACE_frag_spall_medium","ACE_frag_spall_medium", @@ -117,7 +117,7 @@ if(_alive || {_caliber >= 2.5} || {(_explosive > 0 && {_idh >= 1})}) then { "ACE_frag_spall_huge" ]; - + // diag_log text format["SPALL POWER: %1", _spallPolar select 0]; _spread = 15+(random 25); _spallCount = 5+(random 10); @@ -130,14 +130,14 @@ if(_alive || {_caliber >= 2.5} || {(_explosive > 0 && {_idh >= 1})}) then { _dir = _dir % 360; _vel = (_spallPolar select 0)*0.33*_vm; _vel = (_vel-(_vel*0.25))+(random (_vel*0.5)); - + _spallFragVect = [_vel, _dir, _elev] call CBA_fnc_polar2vect; _fragType = round (random ((count _fragTypes)-1)); _fragment = (_fragTypes select _fragType) createVehicleLocal [0,0,10000]; _fragment setPosASL _spallPos; _fragment setVelocity _spallFragVect; if(GVAR(traceFrags)) then { - [player, _fragment, [1,0.5,0,1]] call FUNC(addTrack); + [ACE_player, _fragment, [1,0.5,0,1]] call FUNC(addTrack); }; }; _spread = 5+(random 5); @@ -151,14 +151,14 @@ if(_alive || {_caliber >= 2.5} || {(_explosive > 0 && {_idh >= 1})}) then { _dir = _dir % 360; _vel = (_spallPolar select 0)*0.55*_vm; _vel = (_vel-(_vel*0.25))+(random (_vel*0.5)); - + _spallFragVect = [_vel, _dir, _elev] call CBA_fnc_polar2vect; _fragType = round (random ((count _fragTypes)-1)); _fragment = (_fragTypes select _fragType) createVehicleLocal [0,0,10000]; _fragment setPosASL _spallPos; _fragment setVelocity _spallFragVect; if(GVAR(traceFrags)) then { - [player, _fragment, [1,0,0,1]] call FUNC(addTrack); + [ACE_player, _fragment, [1,0,0,1]] call FUNC(addTrack); }; }; }; diff --git a/addons/frag/functions/fnc_fired.sqf b/addons/frag/functions/fnc_fired.sqf index e7d7d09682..3d60ce27f4 100644 --- a/addons/frag/functions/fnc_fired.sqf +++ b/addons/frag/functions/fnc_fired.sqf @@ -11,10 +11,10 @@ if(_round in GVAR(blackList)) exitWith { }; _doFragTrack = false; -if(_gun == player) then { +if(_gun == ACE_player) then { _doFragTrack = true; } else { - if((gunner _gun) == player) then { + if((gunner _gun) == ACE_player) then { _doFragTrack = true; } else { if(local _gun && {!(isPlayer (gunner _gun))} && {!(isPlayer _gun)}) then { @@ -28,14 +28,14 @@ if(_doSpall) then { GVAR(spallHPData) = []; }; if(GVAR(spallIsTrackingCount) > 5) then { - // player sideChat "LIMT!"; + // ACE_player sideChat "LIMT!"; _doSpall = false; } else { GVAR(spallIsTrackingCount) = GVAR(spallIsTrackingCount) + 1; }; }; -// player sideChat format["c: %1", GVAR(spallIsTrackingCount)]; -[player, _round, [1,0,0,1]] call nou_fnc_addTrack; +// ACE_player sideChat format["c: %1", GVAR(spallIsTrackingCount)]; +[ACE_player, _round, [1,0,0,1]] call FUNC(addTrack); if(_doFragTrack && alive _round) then { GVAR(trackedObjects) pushBack _round; _spallTrack = []; @@ -44,5 +44,5 @@ if(_doFragTrack && alive _round) then { if(_doSpall) then { [_round, 2, _spallTrack, _spallTrackID] call FUNC(spallTrack); }; - // player sideChat "WTF2"; + // ACE_player sideChat "WTF2"; }; diff --git a/addons/frag/functions/fnc_frago.sqf b/addons/frag/functions/fnc_frago.sqf index 1b737dc70d..a396de04e8 100644 --- a/addons/frag/functions/fnc_frago.sqf +++ b/addons/frag/functions/fnc_frago.sqf @@ -9,14 +9,14 @@ if(!isServer) exitWith { }; // _startTime = diag_tickTime; -private ["_round", "_lastPos", "_lastVel", "_shellType", "_gun", "_fragTypes", "_warn", "_atlPos", "_isArmed", - "_fuseDist", "_indirectHitRange", "_fragRange", "_c", "_m", "_k", "_gC", "_fragPower", "_fragPowerRandom", - "_manObjects", "_objects", "_crew", "_fragCount", "_fragArcs", "_doRandom", "_target", "_boundingBox", - "_targetPos", "_distance", "_add", "_bbX", "_bbY", "_bbZ", "_cubic", "_targetVel", "_baseVec", "_dir", - "_currentCount", "_count", "_vecVar", "_i", "_vec", "_fp", "_vel", "_fragType", "_fragObj", "_randomCount", +private ["_round", "_lastPos", "_lastVel", "_shellType", "_gun", "_fragTypes", "_warn", "_atlPos", "_isArmed", + "_fuseDist", "_indirectHitRange", "_fragRange", "_c", "_m", "_k", "_gC", "_fragPower", "_fragPowerRandom", + "_manObjects", "_objects", "_crew", "_fragCount", "_fragArcs", "_doRandom", "_target", "_boundingBox", + "_targetPos", "_distance", "_add", "_bbX", "_bbY", "_bbZ", "_cubic", "_targetVel", "_baseVec", "_dir", + "_currentCount", "_count", "_vecVar", "_i", "_vec", "_fp", "_vel", "_fragType", "_fragObj", "_randomCount", "_sectorSize", "_sectorOffset", "_randomDir"]; - - + + _round = _this select 0; _lastPos = _this select 1; _lastVel = _this select 2; @@ -108,8 +108,8 @@ _fragArcs = []; _fragArcs set[360, 0]; #ifdef DEBUG_MODE_FULL - player sideChat format["_fragRange: %1", _fragRange]; - player sideChat format["_objects: %1", _objects]; + ACE_player sideChat format["_fragRange: %1", _fragRange]; + ACE_player sideChat format["_objects: %1", _objects]; #endif _doRandom = false; if(_isArmed && (count _objects) > 0) then { @@ -127,16 +127,16 @@ if(_isArmed && (count _objects) > 0) then { _cubic = _bbX*_bbY*_bbZ; if(_cubic > 1) then { _doRandom = true; - + _targetVel = (velocity _target); - - + + _targetPos set[0, (_targetPos select 0)+((_targetVel select 0)*(_distance/_fragPower))]; _targetPos set[1, (_targetPos select 1)+((_targetVel select 1)*(_distance/_fragPower))]; _targetPos set[2, (_targetPos select 2)+_add]; - + _baseVec = _lastPos vectorFromTo _targetPos; - + _dir = floor(_baseVec call CBA_fnc_vectDir); _currentCount = _fragArcs select _dir; if(isNil "_currentCount") then { @@ -153,18 +153,18 @@ if(_isArmed && (count _objects) > 0) then { }; for "_i" from 1 to _count do { _vec = +_baseVec; - + _vec set[0, (_vec select 0)-(_vecVar/2)+(random _vecVar)]; _vec set[1, (_vec select 1)-(_vecVar/2)+(random _vecVar)]; _vec set[2, (_vec select 2)-(_vecVar/2)+(random _vecVar)]; - + _fp = (_fragPower-(random (_fragPowerRandom))); _vel = [ (_vec select 0)*_fp, (_vec select 1)*_fp, (_vec select 2)*_fp ]; - + _fragType = round (random ((count _fragTypes)-1)); _fragObj = (_fragTypes select _fragType) createVehicleLocal [0,0,10000]; // diag_log text format["fp: %1 %2", _fp, typeOf _fragObj]; @@ -176,7 +176,7 @@ if(_isArmed && (count _objects) > 0) then { GVAR(traceFrags) = true; #endif if(GVAR(traceFrags)) then { - [player, _fragObj, [1,0,0,1]] call FUNC(addTrack); + [ACE_player, _fragObj, [1,0,0,1]] call FUNC(addTrack); }; _fragCount = _fragCount + 1; _currentCount = _currentCount + 1; @@ -198,15 +198,15 @@ if(_isArmed && (count _objects) > 0) then { _sectorOffset = 360 * (_i - 1) / (_randomCount max 1); _randomDir = random(_sectorSize); _vec = [cos(_sectorOffset + _randomDir), sin(_sectorOffset + _randomDir), sin(30 - (random 45))]; - + _fp = (_fragPower-(random (_fragPowerRandom))); - + _vel = [ (_vec select 0)*_fp, (_vec select 1)*_fp, (_vec select 2)*_fp ]; - + _fragType = round (random ((count _fragTypes)-1)); _fragObj = (_fragTypes select _fragType) createVehicleLocal [0,0,10000]; _fragObj setPosASL _lastPos; @@ -217,14 +217,14 @@ if(_isArmed && (count _objects) > 0) then { GVAR(traceFrags) = true; #endif if(GVAR(traceFrags)) then { - [player, _fragObj, [1,0.5,0,1]] call FUNC(addTrack); + [ACE_player, _fragObj, [1,0.5,0,1]] call FUNC(addTrack); }; _fragCount = _fragCount + 1; }; }; }; // #ifdef DEBUG_MODE_FULL - // player sideChat format["total frags: %1", GVAR(TOTALFRAGS)]; - // player sideChat format["tracks: %1", (count GVAR(trackedObjects))]; + // ACE_player sideChat format["total frags: %1", GVAR(TOTALFRAGS)]; + // ACE_player sideChat format["tracks: %1", (count GVAR(trackedObjects))]; // #endif // _endTime = diag_tickTime; diff --git a/addons/modules/XEH_preInit.sqf b/addons/modules/XEH_preInit.sqf index a8b9bd061e..dfbbe2c2b9 100644 --- a/addons/modules/XEH_preInit.sqf +++ b/addons/modules/XEH_preInit.sqf @@ -3,6 +3,8 @@ ADDON = false; PREP(moduleInit); +PREP(bi_moduleProjectile); + GVAR(moduleInitCollection) = []; ADDON = true; diff --git a/addons/modules/config.cpp b/addons/modules/config.cpp index bffcec4faf..4fc3b8b60d 100644 --- a/addons/modules/config.cpp +++ b/addons/modules/config.cpp @@ -23,6 +23,9 @@ class CfgVehicles { init = QUOTE(_this call DFUNC(moduleInit)); }; }; + class ModuleOrdnance_F: Module_F { + function = "ace_modules_fnc_bi_moduleProjectile"; + }; }; #include "CfgEventHandlers.hpp" diff --git a/addons/modules/functions/fnc_bi_moduleProjectile.sqf b/addons/modules/functions/fnc_bi_moduleProjectile.sqf new file mode 100644 index 0000000000..65fc13bd6a --- /dev/null +++ b/addons/modules/functions/fnc_bi_moduleProjectile.sqf @@ -0,0 +1,189 @@ +/* + * Author: Bohemia Interactive + * Module function for spawning projectiles + * Used by Curator artillery modules etc + * + * Arguments: + * 0: The logic object + * + * Return Value: + * nil + * + * Public: No + */ + +_fnc_scriptNameParentTemp = if !(isnil '_fnc_scriptName') then {_fnc_scriptName} else {'BIS_fnc_moduleProjectile'}; +private ['_fnc_scriptNameParent']; +_fnc_scriptNameParent = _fnc_scriptNameParentTemp; +_fnc_scriptNameParentTemp = nil; + +private ['_fnc_scriptName']; +_fnc_scriptName = 'BIS_fnc_moduleProjectile'; +scriptname _fnc_scriptName; + +private ["_logic", "_units", "_activated"]; +_logic = _this select 0; +_units = _this select 1; +_activated = _this select 2; + +if ({local _x} count (objectcurators _logic) > 0) then { + //--- Reveal the circle to curators + _logic hideobject false; + _logic setpos position _logic; +}; +if !(isserver) exitwith {}; + +if (_activated) then { + _ammo = _logic getvariable ["type",gettext (configfile >> "cfgvehicles" >> typeof _logic >> "ammo")]; + if (_ammo != "") then { + _cfgAmmo = configfile >> "cfgammo" >> _ammo; + //if !(isclass _cfgAmmo) exitwith {["CfgAmmo class '%1' not found.",_ammo] call bis_fnc_error;}; + _dirVar = _fnc_scriptname + typeof _logic; + _logic setdir (missionnamespace getvariable [_dirVar,direction _logic]); //--- Restore custom direction + _pos = getposatl _logic; + _posAmmo = +_pos; + _posAmmo set [2,0]; + _dir = direction _logic; + _simulation = tolower gettext (configfile >> "cfgammo" >> _ammo >> "simulation"); + _altitude = 0; + _velocity = []; + _attach = false; + _radio = ""; + _delay = 60; + _sound = ""; + _soundSourceClass = ""; + _hint = []; + _shakeStrength = 0; + _shakeRadius = 0; + switch (_simulation) do { + case "shotshell": { + _altitude = 1000; + _velocity = [0,0,-100]; + _radio = "SentGenIncoming"; + _sounds = if (getnumber (_cfgAmmo >> "hit") < 200) then {["mortar1","mortar2"]} else {["shell1","shell2","shell3","shell4"]}; + _sound = _sounds call bis_fnc_selectrandom; + _hint = ["Curator","PlaceOrdnance"]; + _shakeStrength = 0.01; + _shakeRadius = 300; + }; + case "shotsubmunitions": { + _posAmmo = [_posAmmo,500,_dir + 180] call bis_fnc_relpos; + _altitude = 1000 - ((getterrainheightasl _posAmmo) - (getterrainheightasl _pos)); + _posAmmo set [2,_altitude]; + _velocity = [sin _dir * 68,cos _dir * 68,-100]; + _radio = "SentGenIncoming"; + _hint = ["Curator","PlaceOrdnance"]; + _shakeStrength = 0.02; + _shakeRadius = 500; + }; + case "shotilluminating": { + _altitude = 66; + _velocity = [wind select 0,wind select 1,30]; + _sound = "SN_Flare_Fired_4"; + _soundSourceClass = "SoundFlareLoop_F"; + }; + case "shotnvgmarker"; + case "shotsmokex": { + _altitude = 0; + _velocity = [0,0,0]; + _attach = true; + }; + default {["Ammo simulation '%1' is not supported",_simulation] call bis_fnc_error;}; + }; + _fnc_playRadio = { + if (_radio != "") then { + _entities = (getposatl _logic) nearentities ["All",100]; + _sides = []; + { + if (isplayer _x) then { + _side = side group _x; + if (_side in [east,west,resistance,civilian]) then { + //--- Play radio (only if it wasn't played recently) + if (time > _x getvariable ["BIS_fnc_moduleProjectile_radio",-_delay]) then { + [[_side,_radio,"side"],"bis_fnc_sayMessage",_x] call bis_fnc_mp; + _x setvariable ["BIS_fnc_moduleProjectile_radio",time + _delay]; + }; + }; + }; + } foreach _entities; + }; + }; + if (count _hint > 0) then { + [[_hint,nil,nil,nil,nil,nil,nil,true],"bis_fnc_advHint",objectcurators _logic] call bis_fnc_mp; + }; + if (count _velocity == 3) then { + _altitude = (_logic getvariable ["altitude",_altitude]) call bis_fnc_parsenumber; + _radio = _logic getvariable ["radio",_radio]; + + //--- Create projectile + _posAmmo set [2,_altitude]; + _projectile = createvehicle [_ammo,_posAmmo,[],0,"none"]; + _projectile setpos _posAmmo; + _projectile setvelocity _velocity; + if (_attach) then {_projectile attachto [_logic,[0,0,_altitude]];}; + + // This is our addition to this function + [ACE_player, "", "", "", _ammo, "", _projectile] call ace_frag_fnc_fired; + + //--- Play sound + if (_sound != "") then {[[_logic,_sound,"say3D"],"bis_fnc_sayMessage"] call bis_fnc_mp;}; + + //--- Create sound source + _soundSource = if (_soundSourceClass != "") then {createSoundSource [_soundSourceClass,_pos,[],0]} else {objnull}; + + //--- Play radio warning + [] call _fnc_playRadio; + + //--- Update + if (_attach) then { + waituntil { + _soundSource setposatl getposatl _projectile; + sleep 1; + isnull _projectile || isnull _logic + }; + } else { + waituntil { + _soundSource setposatl getposatl _projectile; + + if (getposatl _logic distance _pos > 0 || direction _logic != _dir) then { + _posNew = getposasl _logic; + _dirDiff = direction _logic - _dir; + _posNew = [_posNew,[getposasl _projectile,_pos] call bis_fnc_distance2d,direction _logic + 180] call bis_fnc_relpos; + _posNew set [2,getposasl _projectile select 2]; + _projectile setvelocity ([velocity _projectile,-_dirDiff] call bis_fnc_rotatevector2d); + _projectile setposasl _posNew; + _pos = getposatl _logic; + _dir = direction _logic; + missionnamespace setvariable [_dirVar,_dir]; + }; + sleep 0.1; + isnull _projectile || isnull _logic + }; + }; + deletevehicle _projectile; + deletevehicle _soundSource; + if (count objectcurators _logic > 0) then { + + //--- Delete curator spawned logic + if (_shakeStrength > 0) then { + if (_simulation == "shotsubmunitions") then {sleep 0.5;}; + [[_shakeStrength,0.7,[position _logic,_shakeRadius]],"bis_fnc_shakeCuratorCamera"] call bis_fnc_mp; + }; + deletevehicle _logic; + } else { + + //--- Repeat to achieve permanent effect + _repeat = _logic getvariable ["repeat",0] > 0; + if (_repeat) then { + [_logic,_units,_activated] call bis_fnc_moduleprojectile; + } else { + deletevehicle _logic; + }; + }; + } else { + deletevehicle _logic; + }; + } else { + ["Cannot create projectile, 'ammo' config attribute is missing in %1",typeof _logic] call bis_fnc_error; + }; +}; From 24c32d8e3fd0b142a6633a8f45411f9f2196d774 Mon Sep 17 00:00:00 2001 From: Glowbal Date: Mon, 20 Apr 2015 23:18:53 +0200 Subject: [PATCH 091/256] added configuration --- addons/frag/CfgAmmo.hpp | 90 ++++++++++++------- addons/frag/XEH_pre_Init.sqf | 3 + addons/frag/functions/fnc_fired.sqf | 2 +- .../functions/fnc_bi_moduleProjectile.sqf | 2 +- 4 files changed, 64 insertions(+), 33 deletions(-) diff --git a/addons/frag/CfgAmmo.hpp b/addons/frag/CfgAmmo.hpp index 8ad76e6ae8..61cd0ccfd0 100644 --- a/addons/frag/CfgAmmo.hpp +++ b/addons/frag/CfgAmmo.hpp @@ -19,7 +19,7 @@ class CfgAmmo { airFriction = 0.04; laserLock = 0; }; - + class GrenadeBase; class Grenade; class GrenadeHand: Grenade { @@ -42,24 +42,24 @@ class CfgAmmo { class SmokeShell: GrenadeHand { ACE_FRAG_SKIP = 1; }; - + class RocketBase; //class R_Hydra_HE: RocketBase { // ACE_FRAG_SKIP = 1; //}; - + //class R_57mm_HE: RocketBase { // ACE_FRAG_SKIP = 1; //}; - + class R_80mm_HE: RocketBase { ACE_FRAG_SKIP = 1; }; - + //class R_S8T_AT: RocketBase { // ACE_FRAG_SKIP = 1; //}; - + class BombCore; class Bo_Mk82: BombCore { ACE_FRAG_CLASSES[] = {"ACE_frag_large", "ACE_frag_large", "ACE_frag_large_HD", "ACE_frag_large", "ACE_frag_huge", "ACE_frag_huge_HD", "ACE_frag_huge"}; @@ -68,13 +68,13 @@ class CfgAmmo { ACE_FRAG_GURNEY_C = 2320; ACE_FRAG_GURNEY_K = 1/2; }; - - + + class G_40mm_HE: GrenadeBase { ACE_FRAG_SKIP = 0; ACE_FRAG_FORCE = 1; }; - + class ACE_G_40mm_HEDP: G_40mm_HE { }; class ACE_G_40mm_HE: ACE_G_40mm_HEDP { @@ -86,19 +86,47 @@ class CfgAmmo { ACE_FRAG_SKIP = 0; ACE_FRAG_FORCE = 1; }; - + + // curator ammo entries + class Sh_82mm_AMOS; + class ModuleOrdnanceMortar_F_Ammo: Sh_82mm_AMOS { + ACE_FRAG_CLASSES[] = {"ACE_frag_medium", "ACE_frag_medium_HD"}; + ACE_FRAG_METAL = 800; + ACE_FRAG_CHARGE = 4200; + ACE_FRAG_GURNEY_C = 2320; + ACE_FRAG_GURNEY_K = 1/2; + }; + + class Sh_155mm_AMOS; + class ModuleOrdnanceHowitzer_F_ammo: Sh_155mm_AMOS { + ACE_FRAG_CLASSES[] = {"ACE_frag_large", "ACE_frag_large", "ACE_frag_large_HD", "ACE_frag_large", "ACE_frag_huge", "ACE_frag_huge_HD", "ACE_frag_huge"}; + ACE_FRAG_METAL = 1950; + ACE_FRAG_CHARGE = 15800; + ACE_FRAG_GURNEY_C = 2320; + ACE_FRAG_GURNEY_K = 1/2; + }; + + //class R_230mm_HE; + //class ModuleOrdnanceRocket_F_ammo: R_230mm_HE { + //}; + + //class R_230mm_fly; + //class ModuleOrdnanceRocket_F_subammo: R_230mm_fly { + //}; + // end of curator ammo entries + //class R_SMAW_HEDP; //class R_MEEWS_HEDP : R_SMAW_HEDP { // ACE_FRAG_FORCE = 1; // ACE_FRAG_MULTIPLIER = 1.2; //}; - + //class MissileBase; //class M_Hellfire_AT: MissileBase { // ACE_FRAG_FORCE = 1; // ACE_FRAG_MULTIPLIER = 1.75; //}; - + /* class B_762x51_Ball; class ACE_frag_base: B_762x51_Ball { ////TODO: B_762x45_Ball no longer exists, is this a valid replacement? @@ -253,51 +281,51 @@ class CfgAmmo { bulletFly8[] = {"A3\sounds_f\weapons\hits\bullet_by_8.wav",1,1,35}; bulletFly[] = {"bulletFly1",0.166,"bulletFly2",0.166,"bulletFly3",0.166,"bulletFly4",0.166,"bulletFly5",0.166,"bulletFly6",0.167,"bulletFly7",0.166,"bulletFly8",0.167}; supersonicCrackNear[] = {"A3\sounds_f\weapons\hits\sscrack1.wav",1,1,35}; - supersonicCrackFar[] = {"A3\sounds_f\weapons\hits\sscrack2.wav",1,1,135}; + supersonicCrackFar[] = {"A3\sounds_f\weapons\hits\sscrack2.wav",1,1,135}; }; */ - + class B_65x39_Caseless; class ACE_frag_base: B_65x39_Caseless { timeToLive = 12; typicalSpeed = 1500; deflecting = 65; }; - + class ACE_frag_tiny: ACE_frag_base { hit = 6; airFriction = BASE_DRAG; caliber = 0.75; }; - + class ACE_frag_tiny_HD: ACE_frag_base { hit = 6; airFriction = BASE_DRAG_HD; caliber = 0.75; }; - + class ACE_frag_small: ACE_frag_base { hit = 12; airFriction = BASE_DRAG*0.9; }; - + class ACE_frag_small_HD: ACE_frag_base { hit = 12; airFriction = BASE_DRAG_HD*0.9; }; - + class ACE_frag_medium: ACE_frag_base { hit = 14; airFriction = BASE_DRAG*0.75; caliber = 1.2; }; - + class ACE_frag_medium_HD: ACE_frag_base { hit = 14; airFriction = BASE_DRAG_HD*0.75; caliber = 1.2; }; - + class ACE_frag_large: ACE_frag_base { hit = 28; indirectHit = 2; @@ -305,19 +333,19 @@ class CfgAmmo { airFriction = BASE_DRAG*0.65; caliber = 2; explosive = 0; - + }; - + class ACE_frag_large_HD: ACE_frag_large { hit = 28; indirectHit = 2; indirectHitRange = 0.25; airFriction = BASE_DRAG_HD*0.65; caliber = 2; - - + + }; - + class ACE_frag_huge: ACE_frag_large { hit = 40; indirectHit = 4; @@ -325,7 +353,7 @@ class CfgAmmo { airFriction = BASE_DRAG*0.5; caliber = 2.8; }; - + class ACE_frag_huge_HD: ACE_frag_large { hit = 40; indirectHit = 4; @@ -333,19 +361,19 @@ class CfgAmmo { airFriction = BASE_DRAG_HD*0.5; caliber = 2.8; }; - + class ACE_frag_spall_small: ACE_frag_small { timeToLive = 0.1; }; - + class ACE_frag_spall_medium: ACE_frag_medium { timeToLive = 0.15; }; - + class ACE_frag_spall_large: ACE_frag_large { timeToLive = 0.25; }; - + class ACE_frag_spall_huge: ACE_frag_huge { timeToLive = 0.3; }; diff --git a/addons/frag/XEH_pre_Init.sqf b/addons/frag/XEH_pre_Init.sqf index 5b3aa36b18..5fb261cc05 100644 --- a/addons/frag/XEH_pre_Init.sqf +++ b/addons/frag/XEH_pre_Init.sqf @@ -26,6 +26,9 @@ GVAR(tracesStarted) = false; GVAR(traceID) = -1; GVAR(autoTrace) = true; +// TODO setting +GVAR(enabled) = true; + // * Other Shit */ PREP(frag_trace); diff --git a/addons/frag/functions/fnc_fired.sqf b/addons/frag/functions/fnc_fired.sqf index 3d60ce27f4..ee8c283142 100644 --- a/addons/frag/functions/fnc_fired.sqf +++ b/addons/frag/functions/fnc_fired.sqf @@ -1,6 +1,6 @@ #include "script_component.hpp" private ["_gun", "_type", "_round", "_doFragTrack", "_doSpall"]; -if !(isNil QGVAR(enabled) && {GVAR(enabled)}) exitWith {}; +if !(!isNil QGVAR(enabled) && {GVAR(enabled)}) exitWith {}; _gun = _this select 0; _type = _this select 4; diff --git a/addons/modules/functions/fnc_bi_moduleProjectile.sqf b/addons/modules/functions/fnc_bi_moduleProjectile.sqf index 65fc13bd6a..7c0932cd59 100644 --- a/addons/modules/functions/fnc_bi_moduleProjectile.sqf +++ b/addons/modules/functions/fnc_bi_moduleProjectile.sqf @@ -123,7 +123,7 @@ if (_activated) then { if (_attach) then {_projectile attachto [_logic,[0,0,_altitude]];}; // This is our addition to this function - [ACE_player, "", "", "", _ammo, "", _projectile] call ace_frag_fnc_fired; + [_logic, "", "", "", _ammo, "", _projectile] call ace_frag_fnc_fired; //--- Play sound if (_sound != "") then {[[_logic,_sound,"say3D"],"bis_fnc_sayMessage"] call bis_fnc_mp;}; From fb93e9e9bc93f0f6a1dd56b343bf47fcfd519dcc Mon Sep 17 00:00:00 2001 From: Glowbal Date: Mon, 20 Apr 2015 23:38:50 +0200 Subject: [PATCH 092/256] wrapped track in debug define --- addons/frag/functions/fnc_fired.sqf | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/addons/frag/functions/fnc_fired.sqf b/addons/frag/functions/fnc_fired.sqf index ee8c283142..85f5f45c0a 100644 --- a/addons/frag/functions/fnc_fired.sqf +++ b/addons/frag/functions/fnc_fired.sqf @@ -35,7 +35,11 @@ if(_doSpall) then { }; }; // ACE_player sideChat format["c: %1", GVAR(spallIsTrackingCount)]; + +#ifdef DEBUG_MODE_FULL [ACE_player, _round, [1,0,0,1]] call FUNC(addTrack); +#endif + if(_doFragTrack && alive _round) then { GVAR(trackedObjects) pushBack _round; _spallTrack = []; From 4543bab7fb582b947fd246412613eda9d5a06d9a Mon Sep 17 00:00:00 2001 From: Glowbal Date: Mon, 20 Apr 2015 23:41:22 +0200 Subject: [PATCH 093/256] added nil check for function ace_frag_fnc_fired --- addons/modules/functions/fnc_bi_moduleProjectile.sqf | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/addons/modules/functions/fnc_bi_moduleProjectile.sqf b/addons/modules/functions/fnc_bi_moduleProjectile.sqf index 7c0932cd59..6273da2704 100644 --- a/addons/modules/functions/fnc_bi_moduleProjectile.sqf +++ b/addons/modules/functions/fnc_bi_moduleProjectile.sqf @@ -123,7 +123,9 @@ if (_activated) then { if (_attach) then {_projectile attachto [_logic,[0,0,_altitude]];}; // This is our addition to this function - [_logic, "", "", "", _ammo, "", _projectile] call ace_frag_fnc_fired; + if (!isnil "ace_frag_fnc_fired") then { + [_logic, "", "", "", _ammo, "", _projectile] call ace_frag_fnc_fired; + }; //--- Play sound if (_sound != "") then {[[_logic,_sound,"say3D"],"bis_fnc_sayMessage"] call bis_fnc_mp;}; From 166c8147cf6a95e38a26e41bbb3cd59710a819a9 Mon Sep 17 00:00:00 2001 From: Glowbal Date: Mon, 20 Apr 2015 23:55:23 +0200 Subject: [PATCH 094/256] Using ace_frag_fnc_addManualTrack instead of fired function --- addons/modules/functions/fnc_bi_moduleProjectile.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/modules/functions/fnc_bi_moduleProjectile.sqf b/addons/modules/functions/fnc_bi_moduleProjectile.sqf index 6273da2704..56e3eb9883 100644 --- a/addons/modules/functions/fnc_bi_moduleProjectile.sqf +++ b/addons/modules/functions/fnc_bi_moduleProjectile.sqf @@ -123,8 +123,8 @@ if (_activated) then { if (_attach) then {_projectile attachto [_logic,[0,0,_altitude]];}; // This is our addition to this function - if (!isnil "ace_frag_fnc_fired") then { - [_logic, "", "", "", _ammo, "", _projectile] call ace_frag_fnc_fired; + if (!isnil "ace_frag_fnc_addManualTrack") then { + [_projectile] call ace_frag_fnc_addManualTrack }; //--- Play sound From 1063d4bb2c04da3aae3e97847298a03a11b611c9 Mon Sep 17 00:00:00 2001 From: Grzegorz Sikora Date: Wed, 22 Apr 2015 13:17:43 +0200 Subject: [PATCH 095/256] PL translation --- addons/ballistics/stringtable.xml | 5 ++++- addons/interact_menu/stringtable.xml | 6 ++++++ addons/realisticnames/stringtable.xml | 17 ++++++++++++++++- 3 files changed, 26 insertions(+), 2 deletions(-) diff --git a/addons/ballistics/stringtable.xml b/addons/ballistics/stringtable.xml index 2f89e12d00..87e412bce1 100644 --- a/addons/ballistics/stringtable.xml +++ b/addons/ballistics/stringtable.xml @@ -1,4 +1,5 @@  + @@ -982,6 +983,7 @@ 6.5mm Creedmor 30Rnd Mag + Magazynek 6,5mm Creedmor 30rd 6.5mm CM @@ -992,6 +994,7 @@ Caliber: 6.5mm Creedmor<br />Rounds: 30<br />Used in: MXM + Kaliber: 6,5mm Creedmor<br />Pociski: 30<br />Używany w: MXM .338 10Rnd Mag (300gr Sierra MatchKing HPBT) @@ -1078,4 +1081,4 @@ Калибр: 12,7x99 мм (A-MAX)<br />Патронов: 5 - + \ No newline at end of file diff --git a/addons/interact_menu/stringtable.xml b/addons/interact_menu/stringtable.xml index 55d67788f4..984acd92be 100644 --- a/addons/interact_menu/stringtable.xml +++ b/addons/interact_menu/stringtable.xml @@ -1,4 +1,5 @@  + @@ -17,6 +18,7 @@ Mostrar siempre el cursor para la interacción Toujours afficher le curseur pour les interactions Mostra sempre il cursore per le interazioni + Zawsze wyświetlaj kursor dla interakcji Display interaction menus as lists @@ -73,15 +75,19 @@ Interaction - Text Max + Interakcja - Tekst max Interaction - Text Min + Interakcja - Tekst min Interaction - Shadow Max + Interakcja - Cień max Interaction - Shadow Min + Interakcja - Cień min \ No newline at end of file diff --git a/addons/realisticnames/stringtable.xml b/addons/realisticnames/stringtable.xml index 1fcf116d1e..507fd9b5a2 100644 --- a/addons/realisticnames/stringtable.xml +++ b/addons/realisticnames/stringtable.xml @@ -1,4 +1,5 @@  + @@ -1515,6 +1516,7 @@ SG 556 7.62 mm SG 556 7.62 mm SG 556 7.62 мм + SG 556 7,62 mm SG 556 7.62 mm (Black) @@ -1522,6 +1524,7 @@ SG 556 7.62 mm (Noir) SG 556 7.62 mm (Negro) SG 556 7.62 мм (черный) + SG 556 7,62 mm (czarny) SG 556 7.62 mm (Khaki) @@ -1529,6 +1532,7 @@ SG 556 7.62 mm (Kaki) SG 556 7.62 mm (Caqui) SG 556 7.62 мм (хаки) + SG 556 7,62 mm (khaki) SG 556 7.62 mm (Sand) @@ -1536,6 +1540,7 @@ SG 556 7.62 mm (Beige) SG 556 7.62 mm (Arena) SG 556 7.62 мм (песочный) + SG 556 7,62 mm (piaskowy) SG 556 7.62 mm (Camo) @@ -1543,6 +1548,7 @@ SG 556 7.62 mm (Camo) SG 556 7.62 mm (Camuflaje) SG 556 7.62 мм (камо) + SG 556 7,62 mm (kamuflaż) SG 556 7.62 mm (Woodland) @@ -1550,6 +1556,7 @@ SG 556 7.62 mm (Woodland) SG 556 7.62 mm (Bosque) SG 556 7.62 мм (лесной) + SG 556 7,62 mm (leśny) SG 556 7.62 mm (provisional) spotter @@ -1557,6 +1564,7 @@ SG 556 7.62 mm (provisoire) Observateur SG 556 7.62 mm (provisional) observador SG 556 7.62 мм (provisional) корректировщик + SG 556 7,62 mm (prowizoryczny) obserwator TODO: ASP-1 Kir 12.7 mm @@ -1613,6 +1621,7 @@ M14 7.62 mm M14 7.62 mm M14 7.62 мм + M14 7,62 mm M14 7.62 mm (Camo) @@ -1620,6 +1629,7 @@ M14 7.62 mm (Camo) M14 7.62 mm (Camuflaje) M14 7.62 мм (Камо) + M14 7,62 mm (kamuflaż) M14 7.62 mm (Olive) @@ -1627,6 +1637,7 @@ M14 7.62 mm (Olive) M14 7.62 mm (Oliva) M14 7.62 мм (Олива) + M14 7,62 mm (oliwkowy) TODO: Navid 9.3 mm @@ -1655,6 +1666,7 @@ LWMMG .338 LWMMG .338 LWMMG .338 + LWMMG .338 LWMMG .338 (MTP) @@ -1662,6 +1674,7 @@ LWMMG .338 (MTP) LWMMG .338 (MTP) LWMMG .338 (MTP) + LWMMG .338 (MTP) LWMMG .338 (Black) @@ -1669,6 +1682,7 @@ LWMMG .338 (Noir) LWMMG .338 (Negro) LWMMG .338 (Черный) + LWMMG .338 (czarny) LWMMG .338 (Sand) @@ -1676,6 +1690,7 @@ SPMG .338 (Beige) LWMMG .338 (Arena) LWMMG .338 (Песочный) + LWMMG .338 (piaskowy) - + \ No newline at end of file From 24efbf731d2fe322f236c4e5f7f538dce7fb5286 Mon Sep 17 00:00:00 2001 From: KoffeinFlummi Date: Thu, 23 Apr 2015 15:46:50 +0200 Subject: [PATCH 096/256] Convert frag config entry names to lowercase --- addons/frag/CfgAmmo.hpp | 86 +++++++++---------- addons/frag/functions/fnc_trackFragRound.sqf | 4 +- .../framework/fragmentation-configuration.md | 20 ++--- 3 files changed, 55 insertions(+), 55 deletions(-) diff --git a/addons/frag/CfgAmmo.hpp b/addons/frag/CfgAmmo.hpp index 94b4e5dbb6..9d34861098 100644 --- a/addons/frag/CfgAmmo.hpp +++ b/addons/frag/CfgAmmo.hpp @@ -6,15 +6,15 @@ class CfgAmmo { //class ace_arty_105mm_m1_m782_time; //class ace_arty_105mm_m1_m782_prox: ace_arty_105mm_m1_m782_time {}; //class ace_arty_105mm_m1_m782_delay: ace_arty_105mm_m1_m782_prox { - // ACE_FRAG_SKIP = 1; + // GVAR(skip) = 1; //}; class Bo_GBU12_LGB; class Nou_GBU12 : Bo_GBU12_LGB { - ACE_FRAG_CLASSES[] = {"ACE_frag_large", "ACE_frag_large", "ACE_frag_large_HD", "ACE_frag_large", "ACE_frag_huge", "ACE_frag_huge_HD", "ACE_frag_huge"}; - ACE_FRAG_METAL = 140000; - ACE_FRAG_CHARGE = 87000; - ACE_FRAG_GURNEY_C = 2320; - ACE_FRAG_GURNEY_K = 1/2; + GVAR(classes)[] = {"ACE_frag_large", "ACE_frag_large", "ACE_frag_large_HD", "ACE_frag_large", "ACE_frag_huge", "ACE_frag_huge_HD", "ACE_frag_huge"}; + GVAR(metal) = 140000; + GVAR(charge) = 87000; + GVAR(gurney_c) = 2320; + GVAR(gurney_k) = 1/2; sideAirFriction = 0.04; airFriction = 0.04; laserLock = 0; @@ -23,90 +23,90 @@ class CfgAmmo { class GrenadeBase; class Grenade; class GrenadeHand: Grenade { - ACE_FRAG_SKIP = 0; - ACE_FRAG_FORCE = 1; + GVAR(skip) = 0; + GVAR(force) = 1; // This is a good high-drag frag type for grenades. - ACE_FRAG_CLASSES[] = {"ACE_frag_tiny_HD"}; + GVAR(classes)[] = {"ACE_frag_tiny_HD"}; /* These values are based on the M67 Grenade, should be tweaked for individual grenades. */ - ACE_FRAG_METAL = 210; // metal in grams - ACE_FRAG_CHARGE = 185; // explosive in grams - ACE_FRAG_GURNEY_C = 2843; // Gurney velocity constant for explosive type. See: http://en.wikipedia.org/wiki/Gurney_equations - ACE_FRAG_GURNEY_K = 3/5; // Gurney shape factor, in this case a sphere. See: http://en.wikipedia.org/wiki/Gurney_equations + GVAR(metal) = 210; // metal in grams + GVAR(charge) = 185; // explosive in grams + GVAR(gurney_c) = 2843; // Gurney velocity constant for explosive type. See: http://en.wikipedia.org/wiki/Gurney_equations + GVAR(gurney_k) = 3/5; // Gurney shape factor, in this case a sphere. See: http://en.wikipedia.org/wiki/Gurney_equations }; class GrenadeHand_stone: GrenadeHand { - ACE_FRAG_SKIP = 1; + GVAR(skip) = 1; }; class SmokeShell: GrenadeHand { - ACE_FRAG_SKIP = 1; + GVAR(skip) = 1; }; class RocketBase; //class R_Hydra_HE: RocketBase { - // ACE_FRAG_SKIP = 1; + // GVAR(skip) = 1; //}; //class R_57mm_HE: RocketBase { - // ACE_FRAG_SKIP = 1; + // GVAR(skip) = 1; //}; class R_80mm_HE: RocketBase { - ACE_FRAG_SKIP = 1; + GVAR(skip) = 1; }; //class R_S8T_AT: RocketBase { - // ACE_FRAG_SKIP = 1; + // GVAR(skip) = 1; //}; class BombCore; class Bo_Mk82: BombCore { - ACE_FRAG_CLASSES[] = {"ACE_frag_large", "ACE_frag_large", "ACE_frag_large_HD", "ACE_frag_large", "ACE_frag_huge", "ACE_frag_huge_HD", "ACE_frag_huge"}; - ACE_FRAG_METAL = 140000; - ACE_FRAG_CHARGE = 87000; - ACE_FRAG_GURNEY_C = 2320; - ACE_FRAG_GURNEY_K = 1/2; + GVAR(classes)[] = {"ACE_frag_large", "ACE_frag_large", "ACE_frag_large_HD", "ACE_frag_large", "ACE_frag_huge", "ACE_frag_huge_HD", "ACE_frag_huge"}; + GVAR(metal) = 140000; + GVAR(charge) = 87000; + GVAR(gurney_c) = 2320; + GVAR(gurney_k) = 1/2; }; class G_40mm_HE: GrenadeBase { - ACE_FRAG_SKIP = 0; - ACE_FRAG_FORCE = 1; + GVAR(skip) = 0; + GVAR(force) = 1; }; class ACE_G_40mm_HEDP: G_40mm_HE { - ACE_FRAG_CLASSES[] = {"ACE_frag_tiny_HD"}; - ACE_FRAG_METAL = 200; - ACE_FRAG_CHARGE = 45; - ACE_FRAG_GURNEY_C = 2830; - ACE_FRAG_GURNEY_K = 3/5; + GVAR(classes)[] = {"ACE_frag_tiny_HD"}; + GVAR(metal) = 200; + GVAR(charge) = 45; + GVAR(gurney_c) = 2830; + GVAR(gurney_k) = 3/5; }; class ACE_G_40mm_HE: ACE_G_40mm_HEDP { - ACE_FRAG_CLASSES[] = {"ACE_frag_tiny_HD"}; - ACE_FRAG_METAL = 200; - ACE_FRAG_CHARGE = 32; - ACE_FRAG_GURNEY_C = 2700; - ACE_FRAG_GURNEY_K = 3/5; + GVAR(classes)[] = {"ACE_frag_tiny_HD"}; + GVAR(metal) = 200; + GVAR(charge) = 32; + GVAR(gurney_c) = 2700; + GVAR(gurney_k) = 3/5; }; class ACE_G_40mm_Practice: ACE_G_40mm_HE { - ACE_FRAG_SKIP = 1; + GVAR(skip) = 1; }; class ACE_G40mm_HE_VOG25P: G_40mm_HE { - ACE_FRAG_SKIP = 0; - ACE_FRAG_FORCE = 1; + GVAR(skip) = 0; + GVAR(force) = 1; }; //class R_SMAW_HEDP; //class R_MEEWS_HEDP : R_SMAW_HEDP { - // ACE_FRAG_FORCE = 1; - // ACE_FRAG_MULTIPLIER = 1.2; + // GVAR(force) = 1; + // GVAR(multiplier) = 1.2; //}; //class MissileBase; //class M_Hellfire_AT: MissileBase { - // ACE_FRAG_FORCE = 1; - // ACE_FRAG_MULTIPLIER = 1.75; + // GVAR(force) = 1; + // GVAR(multiplier) = 1.75; //}; /* diff --git a/addons/frag/functions/fnc_trackFragRound.sqf b/addons/frag/functions/fnc_trackFragRound.sqf index 586bbc0166..4358448188 100644 --- a/addons/frag/functions/fnc_trackFragRound.sqf +++ b/addons/frag/functions/fnc_trackFragRound.sqf @@ -15,11 +15,11 @@ if (!alive _round) then { [_this select 1] call cba_fnc_removePerFrameHandler; if(_time != time && {_round in GVAR(trackedObjects)} && {!(_round in GVAR(blackList))}) then { GVAR(trackedObjects) = GVAR(trackedObjects) - [_round]; - _skip = getNumber (configFile >> "CfgAmmo" >> _type >> "ACE_FRAG_SKIP"); + _skip = getNumber (configFile >> "CfgAmmo" >> _type >> QGVAR(skip)); if(_skip == 0) then { _explosive = getNumber (configFile >> "CfgAmmo" >> _type >> "explosive"); _indirectRange = getNumber (configFile >> "CfgAmmo" >> _type >> "indirectHitRange"); - _force = getNumber (configFile >> "CfgAmmo" >> _type >> "ACE_FRAG_FORCE"); + _force = getNumber (configFile >> "CfgAmmo" >> _type >> QGVAR(force)); _fragPower = getNumber(configFile >> "CfgAmmo" >> _type >> "indirecthit")*(sqrt(_indirectRange)); if((_explosive > 0.5 && {_indirectRange >= 4.5} && {_fragPower >= 35}) || {_force == 1} ) then { [QGVAR(frag_eh), _params] call ace_common_fnc_serverEvent; diff --git a/documentation/framework/fragmentation-configuration.md b/documentation/framework/fragmentation-configuration.md index 1372b2b69a..c8a64b2db4 100644 --- a/documentation/framework/fragmentation-configuration.md +++ b/documentation/framework/fragmentation-configuration.md @@ -15,15 +15,15 @@ The system for the end-developer is easy to use, and only requires minimal resea Below is an example set of explosives configuration properties for sys_frag (in this case an M67 hand grenade): ```c++ -ACE_FRAG_METAL = 210; // metal in grams -ACE_FRAG_CHARGE = 185; // explosive in grams -ACE_FRAG_GURNEY_C = 2843; // Gurney velocity constant for explosive type. See: http://en.wikipedia.org/wiki/Gurney_equations -ACE_FRAG_GURNEY_K = 3/5; // Gurney shape factor, in this case a sphere. See: http://en.wikipedia.org/wiki/Gurney_equations +ace_frag_metal = 210; // metal in grams +ace_frag_charge = 185; // explosive in grams +ace_frag_gurney_c = 2843; // Gurney velocity constant for explosive type. See: http://en.wikipedia.org/wiki/Gurney_equations +ace_frag_gurney_k = 3/5; // Gurney shape factor, in this case a sphere. See: http://en.wikipedia.org/wiki/Gurney_equations ``` -`ACE_FRAG_METAL` is the amount of metal being fragmented (generally taken as the entire weight of the warhead, though in some cases you might want to only include the fragmentation jacket or body. `ACE_FRAG_CHARGE` is the amount of explosive filler in the warhead. `ACE_FRAG_METAL` and `ACE_FRAG_CHARGE` are dimensionless values, as long as they are both in the same unit (for example kg/kg g/g lbs/lbs). +`ace_frag_metal` is the amount of metal being fragmented (generally taken as the entire weight of the warhead, though in some cases you might want to only include the fragmentation jacket or body. `ace_frag_charge` is the amount of explosive filler in the warhead. `ace_frag_metal` and `ace_frag_charge` are dimensionless values, as long as they are both in the same unit (for example kg/kg g/g lbs/lbs). -`ACE_FRAG_GURNEY_C` is the Gurney constant for explosive force. You can find a list of common explosive types below. If you can not find it here, or want more accurate numbers, just google the type of explosive and Gurney constant and you can find substantial information. This is *NOT* the detonation velocity of the explosive, do not confuse them! +`ace_frag_gurney_c` is the Gurney constant for explosive force. You can find a list of common explosive types below. If you can not find it here, or want more accurate numbers, just google the type of explosive and Gurney constant and you can find substantial information. This is *NOT* the detonation velocity of the explosive, do not confuse them! | Type | Speed | |------------------|----------| @@ -42,7 +42,7 @@ ACE_FRAG_GURNEY_K = 3/5; // Gurney shape factor, in this case a sphere. See: ht |Tritonal | 2320 m/s | -`ACE_FRAG_GURNEY_K` is the shape factor for the explosive configuration. You should choose it based on the general configuration of explosives/metal in the warhead. Most grenades for example are a sphere. Artillery and aircraft bombs are a cylinder. Mines generally a flat plate. Below is a list of the three common shapes and their factors. +`ace_frag_gurney_k` is the shape factor for the explosive configuration. You should choose it based on the general configuration of explosives/metal in the warhead. Most grenades for example are a sphere. Artillery and aircraft bombs are a cylinder. Mines generally a flat plate. Below is a list of the three common shapes and their factors. ``` Sphere = 3/5 @@ -52,7 +52,7 @@ Plate = 3/5 There are other configurations but these are the most common. If you are interested in others check out the wikipedia link given above. Most of these will not correctly function in sys_frag though due to additional variables for the equation. -In addition to these variables there are different types of fragmentation fragments to choose from, and they can be defined in the config value `ACE_FRAG_CLASSES[]`. Below are a list of the types. +In addition to these variables there are different types of fragmentation fragments to choose from, and they can be defined in the config value `ace_frag_classes[]`. Below are a list of the types. ``` ACE_frag_tiny @@ -71,6 +71,6 @@ The tinier the piece of fragmentation the shorter the distance of travel. The `_ The final information needed is a couple of entries for forcing or ignoring fragmentation for this ammo. -If you set `ACE_FRAG_SKIP` to 1 then you will skip fragmentation for ammo of this type. This is useful for things that might cause high network load, such as FFAR rockets, or possibly even 40mm grenades from AGLs. Experimentation under network conditions is required. +If you set `ace_frag_skip` to 1 then you will skip fragmentation for ammo of this type. This is useful for things that might cause high network load, such as FFAR rockets, or possibly even 40mm grenades from AGLs. Experimentation under network conditions is required. -If you set `ACE_FRAG_FORCE` to 1 it will force the fragmentation system to use frag on this ammo, ignoring sys_frags internal qualifications based on hit values. +If you set `ace_frag_force` to 1 it will force the fragmentation system to use frag on this ammo, ignoring sys_frags internal qualifications based on hit values. From 381b8c2431c600a6441a168504a51cd4726ad937 Mon Sep 17 00:00:00 2001 From: Glowbal Date: Thu, 23 Apr 2015 20:46:28 +0200 Subject: [PATCH 097/256] first draft of medical system feature documentation --- documentation/feature/medical-system.md | 71 +++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 documentation/feature/medical-system.md diff --git a/documentation/feature/medical-system.md b/documentation/feature/medical-system.md new file mode 100644 index 0000000000..2824b35b3d --- /dev/null +++ b/documentation/feature/medical-system.md @@ -0,0 +1,71 @@ +--- +layout: wiki +title: Medical System +group: feature +order: 4 +parent: wiki +--- + +## 1. Overview +ACE provide users with a more realistic medical system and comes in both a basic and advanced version. This page will detail the differences between both systems and what they do. It is split into two parts; basic and advanced. Both versions have overlapse but each have their unique characteristics. + + +### Basic Medical +ACE's basic medical system is quite a bit more complex than Arma's default system, but not really difficult to grasp. ACE basic medical is a mixture between the ACE2 and AGM medical systems. + +The four main elements that basic medical introduces are: + +* damage divided into different zones (head, body, left & right arm, left & right leg) +* bleeding +* unconsciousness +* pain + +All interactions in the medical system are done with the interaction menu. Non-medics can - by default - not perform all actions, and their actions take more time as when performed by trained medics. + + +#### How it works + +When hit, units start to lose blood depending on the severity of their wounds. Once the level of blood falls below a certain treshold, the unit will fall unconscious and eventually die. Units will also fall unconscious when sustaining large amounts of damage at once. + +To stop the bleeding, the combat life saver needs to bandage every wounded limb. Unconscious units can be "woken up" with Epipens. Should a unit have lost a lot of blood, it might be necessary to replace the lost blood with a blood bag before being able to wake unconscious units up. + +Should a unit be in pain, materializing itself with a chromatic aberration screen effect, he can be given morphine. + +### Advanced Medical +The advanced medical system provides a more complex and detailed medical simulation and is based off the CSE/CMS medical system. It focuses on a more realistic model for injuries and treatment, thus resulting in a more important and prominent role for combat medics, and a bigger incentive to not get shot. + +The system behind advanced medical is designed to attempt to mimic important parts of the human body, as well as react to any injuries sustained and treatments applied in a realistic manner. The available treatments and supplies in advanced medical are based of the Tactical Combat Casualty Care (TCCC) guidelines, which are the same guidelines used by real-life combat medics around the world. + +Besides the 4 elements introduced by basic medical, advanced introduces the following: + +* More detailed wound system +* Accurate blood loss based upon sustained injuries +* Vitals, including heart rate and blood pressure +* Cardiac Arrest +* Various treatment methods such as CPR, different kinds of IVs and tourniquets +* A basic medication simulation + +#### How it works + +Same as with basic, when hit an injury is sustained. Different though is that the type of injury and the severity of it are based upon how the damage was done and what caused it. This affects both blood loss and immediate consequences, such as being knocked out or being killed right away. When a player has sustained an injury, this will be indicated by flashing red of the screen; this means the player is bleeding. + +##### Stopping bleeding +In order to stop the bleeding, all injuries on every bodypart requires treatment. This is done by either applying a tourniquet to legs or arms as a temporarly solution, or by using bandages to stop the bleeding as a more permament fix. + +##### Vitals +While a unit is bleeding however, the blood volume decreases which will result in a change of vitals. Depending on the factors such as current blood volume, the blood loss rate, medication used, the blood pressure will start to drop. To counter this drop, also based upon the previously mentioned factors and others, the heart rate will adjust accordingly to attempt to keep blood pressure at safe levels. This means that for any patient it is required to keep an eye on the vitals. This is done through the interacction system by selecting check pulse or blood pressure on either the arms or head. + +##### Medication +To stabalize the vitals and to counter for example pain, a player/medic can use medication. Advanced medical has 3 different medications available: +* Morphine +* Atropine +* Epinephrine + +Morphine is used to alleviate large amounts of pain. Has an effect similar to Heroin due to its opiate properties. Must only ever be given once, and only when bleeding has been reduced to a minimum. Morphine must never be given to a casualty with a low heart rate, as it can stop the heart. + +Epinephrine is used to increase heart rate and blood pressure and alleviate unconsciousness. Epinephrine is a synthetic form of Adrenaline, which is naturally produced in the body. It can also be applied to counter-act the effects of Atropine. Be careful though, as it may only be given once. + +_Epinephrine must never be given to a casualty with a high heart rate or blood pressure._ + +Atropine is a vagolytic and anticholinergic drug which in low dosages reduces heart rate but in high dosages increases it, countering effects of organophosphate poisoning (in NBC scenarios; anticholinesterase poisoning) and symptomatic bradycardia (in post-ROSC care and resuscitative medicine). + From 4f7141b6165ce83c16414b67f14ebde8e6f97d67 Mon Sep 17 00:00:00 2001 From: Glowbal Date: Thu, 23 Apr 2015 20:48:28 +0200 Subject: [PATCH 098/256] adjusted headers --- documentation/feature/medical-system.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/documentation/feature/medical-system.md b/documentation/feature/medical-system.md index 2824b35b3d..45a83da925 100644 --- a/documentation/feature/medical-system.md +++ b/documentation/feature/medical-system.md @@ -10,7 +10,7 @@ parent: wiki ACE provide users with a more realistic medical system and comes in both a basic and advanced version. This page will detail the differences between both systems and what they do. It is split into two parts; basic and advanced. Both versions have overlapse but each have their unique characteristics. -### Basic Medical +## Basic Medical ACE's basic medical system is quite a bit more complex than Arma's default system, but not really difficult to grasp. ACE basic medical is a mixture between the ACE2 and AGM medical systems. The four main elements that basic medical introduces are: @@ -23,7 +23,7 @@ The four main elements that basic medical introduces are: All interactions in the medical system are done with the interaction menu. Non-medics can - by default - not perform all actions, and their actions take more time as when performed by trained medics. -#### How it works +### How it works When hit, units start to lose blood depending on the severity of their wounds. Once the level of blood falls below a certain treshold, the unit will fall unconscious and eventually die. Units will also fall unconscious when sustaining large amounts of damage at once. @@ -31,7 +31,7 @@ To stop the bleeding, the combat life saver needs to bandage every wounded limb. Should a unit be in pain, materializing itself with a chromatic aberration screen effect, he can be given morphine. -### Advanced Medical +## Advanced Medical The advanced medical system provides a more complex and detailed medical simulation and is based off the CSE/CMS medical system. It focuses on a more realistic model for injuries and treatment, thus resulting in a more important and prominent role for combat medics, and a bigger incentive to not get shot. The system behind advanced medical is designed to attempt to mimic important parts of the human body, as well as react to any injuries sustained and treatments applied in a realistic manner. The available treatments and supplies in advanced medical are based of the Tactical Combat Casualty Care (TCCC) guidelines, which are the same guidelines used by real-life combat medics around the world. @@ -45,7 +45,7 @@ Besides the 4 elements introduced by basic medical, advanced introduces the foll * Various treatment methods such as CPR, different kinds of IVs and tourniquets * A basic medication simulation -#### How it works +### How it works Same as with basic, when hit an injury is sustained. Different though is that the type of injury and the severity of it are based upon how the damage was done and what caused it. This affects both blood loss and immediate consequences, such as being knocked out or being killed right away. When a player has sustained an injury, this will be indicated by flashing red of the screen; this means the player is bleeding. From 0391408159e53adca24d6adb9c15dbbfb426db83 Mon Sep 17 00:00:00 2001 From: Glowbal Date: Thu, 23 Apr 2015 20:49:05 +0200 Subject: [PATCH 099/256] added chapter numbering --- documentation/feature/medical-system.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/documentation/feature/medical-system.md b/documentation/feature/medical-system.md index 45a83da925..33a7c4c322 100644 --- a/documentation/feature/medical-system.md +++ b/documentation/feature/medical-system.md @@ -10,7 +10,7 @@ parent: wiki ACE provide users with a more realistic medical system and comes in both a basic and advanced version. This page will detail the differences between both systems and what they do. It is split into two parts; basic and advanced. Both versions have overlapse but each have their unique characteristics. -## Basic Medical +## 2. Basic Medical ACE's basic medical system is quite a bit more complex than Arma's default system, but not really difficult to grasp. ACE basic medical is a mixture between the ACE2 and AGM medical systems. The four main elements that basic medical introduces are: @@ -31,7 +31,7 @@ To stop the bleeding, the combat life saver needs to bandage every wounded limb. Should a unit be in pain, materializing itself with a chromatic aberration screen effect, he can be given morphine. -## Advanced Medical +## 3. Advanced Medical The advanced medical system provides a more complex and detailed medical simulation and is based off the CSE/CMS medical system. It focuses on a more realistic model for injuries and treatment, thus resulting in a more important and prominent role for combat medics, and a bigger incentive to not get shot. The system behind advanced medical is designed to attempt to mimic important parts of the human body, as well as react to any injuries sustained and treatments applied in a realistic manner. The available treatments and supplies in advanced medical are based of the Tactical Combat Casualty Care (TCCC) guidelines, which are the same guidelines used by real-life combat medics around the world. From 79cce947040d7dc3a7c2ab32ae0241b11d5ef881 Mon Sep 17 00:00:00 2001 From: Grzegorz Sikora Date: Wed, 22 Apr 2015 13:17:43 +0200 Subject: [PATCH 100/256] PL translation --- addons/ballistics/stringtable.xml | 5 ++++- addons/interact_menu/stringtable.xml | 6 ++++++ addons/realisticnames/stringtable.xml | 17 ++++++++++++++++- 3 files changed, 26 insertions(+), 2 deletions(-) diff --git a/addons/ballistics/stringtable.xml b/addons/ballistics/stringtable.xml index 49b39c0af6..d06e87a7b9 100644 --- a/addons/ballistics/stringtable.xml +++ b/addons/ballistics/stringtable.xml @@ -1,4 +1,5 @@  + @@ -990,6 +991,7 @@ 6.5mm Creedmor 30Rnd Mag + Magazynek 6,5mm Creedmor 30rd 6.5mm CM @@ -1000,6 +1002,7 @@ Caliber: 6.5mm Creedmor<br />Rounds: 30<br />Used in: MXM + Kaliber: 6,5mm Creedmor<br />Pociski: 30<br />Używany w: MXM .338 10Rnd Mag (300gr Sierra MatchKing HPBT) @@ -1104,4 +1107,4 @@ Калибр: 12,7x99 мм (A-MAX)<br />Патронов: 5 - + \ No newline at end of file diff --git a/addons/interact_menu/stringtable.xml b/addons/interact_menu/stringtable.xml index 55d67788f4..984acd92be 100644 --- a/addons/interact_menu/stringtable.xml +++ b/addons/interact_menu/stringtable.xml @@ -1,4 +1,5 @@  + @@ -17,6 +18,7 @@ Mostrar siempre el cursor para la interacción Toujours afficher le curseur pour les interactions Mostra sempre il cursore per le interazioni + Zawsze wyświetlaj kursor dla interakcji Display interaction menus as lists @@ -73,15 +75,19 @@ Interaction - Text Max + Interakcja - Tekst max Interaction - Text Min + Interakcja - Tekst min Interaction - Shadow Max + Interakcja - Cień max Interaction - Shadow Min + Interakcja - Cień min \ No newline at end of file diff --git a/addons/realisticnames/stringtable.xml b/addons/realisticnames/stringtable.xml index 1fcf116d1e..507fd9b5a2 100644 --- a/addons/realisticnames/stringtable.xml +++ b/addons/realisticnames/stringtable.xml @@ -1,4 +1,5 @@  + @@ -1515,6 +1516,7 @@ SG 556 7.62 mm SG 556 7.62 mm SG 556 7.62 мм + SG 556 7,62 mm SG 556 7.62 mm (Black) @@ -1522,6 +1524,7 @@ SG 556 7.62 mm (Noir) SG 556 7.62 mm (Negro) SG 556 7.62 мм (черный) + SG 556 7,62 mm (czarny) SG 556 7.62 mm (Khaki) @@ -1529,6 +1532,7 @@ SG 556 7.62 mm (Kaki) SG 556 7.62 mm (Caqui) SG 556 7.62 мм (хаки) + SG 556 7,62 mm (khaki) SG 556 7.62 mm (Sand) @@ -1536,6 +1540,7 @@ SG 556 7.62 mm (Beige) SG 556 7.62 mm (Arena) SG 556 7.62 мм (песочный) + SG 556 7,62 mm (piaskowy) SG 556 7.62 mm (Camo) @@ -1543,6 +1548,7 @@ SG 556 7.62 mm (Camo) SG 556 7.62 mm (Camuflaje) SG 556 7.62 мм (камо) + SG 556 7,62 mm (kamuflaż) SG 556 7.62 mm (Woodland) @@ -1550,6 +1556,7 @@ SG 556 7.62 mm (Woodland) SG 556 7.62 mm (Bosque) SG 556 7.62 мм (лесной) + SG 556 7,62 mm (leśny) SG 556 7.62 mm (provisional) spotter @@ -1557,6 +1564,7 @@ SG 556 7.62 mm (provisoire) Observateur SG 556 7.62 mm (provisional) observador SG 556 7.62 мм (provisional) корректировщик + SG 556 7,62 mm (prowizoryczny) obserwator TODO: ASP-1 Kir 12.7 mm @@ -1613,6 +1621,7 @@ M14 7.62 mm M14 7.62 mm M14 7.62 мм + M14 7,62 mm M14 7.62 mm (Camo) @@ -1620,6 +1629,7 @@ M14 7.62 mm (Camo) M14 7.62 mm (Camuflaje) M14 7.62 мм (Камо) + M14 7,62 mm (kamuflaż) M14 7.62 mm (Olive) @@ -1627,6 +1637,7 @@ M14 7.62 mm (Olive) M14 7.62 mm (Oliva) M14 7.62 мм (Олива) + M14 7,62 mm (oliwkowy) TODO: Navid 9.3 mm @@ -1655,6 +1666,7 @@ LWMMG .338 LWMMG .338 LWMMG .338 + LWMMG .338 LWMMG .338 (MTP) @@ -1662,6 +1674,7 @@ LWMMG .338 (MTP) LWMMG .338 (MTP) LWMMG .338 (MTP) + LWMMG .338 (MTP) LWMMG .338 (Black) @@ -1669,6 +1682,7 @@ LWMMG .338 (Noir) LWMMG .338 (Negro) LWMMG .338 (Черный) + LWMMG .338 (czarny) LWMMG .338 (Sand) @@ -1676,6 +1690,7 @@ SPMG .338 (Beige) LWMMG .338 (Arena) LWMMG .338 (Песочный) + LWMMG .338 (piaskowy) - + \ No newline at end of file From 3b9b09a7afeeddefbc63420543e78881932c25ea Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Fri, 24 Apr 2015 13:26:09 -0500 Subject: [PATCH 101/256] UpdateFiringTable-ChangesFromWeather --- addons/mk6mortar/RscRangeTable.hpp | 3 +- addons/mk6mortar/UI/RangeTable_background.paa | Bin 289652 -> 342488 bytes .../functions/fnc_dev_buildTable.sqf | 11 +- .../functions/fnc_dev_formatNumber.sqf | 4 +- .../fnc_dev_simulateCalcRangeTableLine.sqf | 10 +- .../fnc_dev_simulateFindSolution.sqf | 2 +- .../mk6mortar/functions/fnc_handleFired.sqf | 27 +- .../fnc_rangeTablePreCalculatedValues.sqf | 445 +++++++++--------- 8 files changed, 254 insertions(+), 248 deletions(-) diff --git a/addons/mk6mortar/RscRangeTable.hpp b/addons/mk6mortar/RscRangeTable.hpp index cb89b093e3..6bf0e51619 100644 --- a/addons/mk6mortar/RscRangeTable.hpp +++ b/addons/mk6mortar/RscRangeTable.hpp @@ -33,7 +33,8 @@ class ACE_82mm_RangeTable_Dialog { y = "3.76 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; w = "16.2634559672906 * (safeZoneH / 40)"; h = "20.24 * ((safeZoneH / 1.2) / 25)"; - columns[] = {(10/792),(86/792),(172/792),(238/792),(329/792),(405/792),(462/792),(527/792),(588/792),(649/792),(710/792)}; + columns[] = {(10/867),(86/867),(171/867),(238/867),(320/867),(405/867), + (485/867),(546/867),(607/867),(668/867),(729/867),(790/867)}; rowHeight = 0.015 * safeZoneH; sizeEx = "0.014 * safeZoneH"; font = "EtelkaMonospacePro"; diff --git a/addons/mk6mortar/UI/RangeTable_background.paa b/addons/mk6mortar/UI/RangeTable_background.paa index a2a752ce6e563dad099d03be63140050cb06bb8d..bf4b5ee04405312e94420ebebc7a0ba5fee08640 100644 GIT binary patch literal 342488 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 z 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 diff --git a/addons/mk6mortar/functions/fnc_dev_buildTable.sqf b/addons/mk6mortar/functions/fnc_dev_buildTable.sqf index a795b96776..7a60e91e68 100644 --- a/addons/mk6mortar/functions/fnc_dev_buildTable.sqf +++ b/addons/mk6mortar/functions/fnc_dev_buildTable.sqf @@ -28,7 +28,7 @@ _increasePerRow = 50; _outputArray = []; -//[_rangeToHit, _lineElevation, _lineHeightElevation, _lineTimeOfFlight, _lineCrosswindDeg, _lineHeadwindMeters, _lineTailWindMeters, _lineTempDec, _lineTempInc, _lineAirDensDec, _lineAirDensInc] +//[_rangeToHit, _lineElevation, _lineHeightElevation, _lineHeightTimeDelta, _lineTimeOfFlight, _lineCrosswindDeg, _lineHeadwindMeters, _lineTailWindMeters, _lineTempDec, _lineTempInc, _lineAirDensDec, _lineAirDensInc] while {_stillInRange} do { _result = [_muzzleVelocity, _currentRange, _airFriction] call FUNC(dev_simulateCalcRangeTableLine); @@ -50,13 +50,14 @@ while {_stillInRange} do { ([(_result select 1), "mil", true] call FUNC(dev_formatNumber)), ([(_result select 2), "mil", true] call FUNC(dev_formatNumber)), ([(_result select 3), "sec", false] call FUNC(dev_formatNumber)), - ([(_result select 4), "milPrecise", true] call FUNC(dev_formatNumber)), - ([(_result select 5), "metersprecise", false] call FUNC(dev_formatNumber)), + ([(_result select 4), "sec", false] call FUNC(dev_formatNumber)), + ([(_result select 5), "milPrecise", true] call FUNC(dev_formatNumber)), ([(_result select 6), "metersprecise", false] call FUNC(dev_formatNumber)), ([(_result select 7), "metersprecise", false] call FUNC(dev_formatNumber)), ([(_result select 8), "metersprecise", false] call FUNC(dev_formatNumber)), ([(_result select 9), "metersprecise", false] call FUNC(dev_formatNumber)), - ([(_result select 10), "metersprecise", false] call FUNC(dev_formatNumber)) + ([(_result select 10), "metersprecise", false] call FUNC(dev_formatNumber)), + ([(_result select 11), "metersprecise", false] call FUNC(dev_formatNumber)) ]; }; _currentRange = _currentRange + _increasePerRow; @@ -65,7 +66,7 @@ while {_stillInRange} do { }; //handle floating point rounding errors -_outputString = format ["case ((abs(_muzzleVelocity - %1) < 0.00001) && ((abs(_airFriction - %2) < 0.00001))): { +_outputString = format ["case ((abs(_muzzleVelocity - %1) < 0.00001) && {(abs(_airFriction - %2) < 0.00001)}): { [ ", _muzzleVelocity, _airFriction]; diff --git a/addons/mk6mortar/functions/fnc_dev_formatNumber.sqf b/addons/mk6mortar/functions/fnc_dev_formatNumber.sqf index 84697bbf4a..f89c3a1b8f 100644 --- a/addons/mk6mortar/functions/fnc_dev_formatNumber.sqf +++ b/addons/mk6mortar/functions/fnc_dev_formatNumber.sqf @@ -1,6 +1,4 @@ /* -Name: AGM_Artillery_fnc_formatNumber - Author: Pabst Mirror Description: @@ -15,7 +13,7 @@ Returns: STRING - Formatted number Example: -[45, "mil4", true] call AGM_Artillery_fnc_formatNumber = "0800" +[45, "mil4", true] call ace_mk6mortar_fnc_dev_formatNumber = "0800" */ #include "script_component.hpp" diff --git a/addons/mk6mortar/functions/fnc_dev_simulateCalcRangeTableLine.sqf b/addons/mk6mortar/functions/fnc_dev_simulateCalcRangeTableLine.sqf index b30c542930..d1e0a8dd05 100644 --- a/addons/mk6mortar/functions/fnc_dev_simulateCalcRangeTableLine.sqf +++ b/addons/mk6mortar/functions/fnc_dev_simulateCalcRangeTableLine.sqf @@ -1,6 +1,4 @@ /* -Name: AGM_Artillery_fnc_simulateCalcRangeTableLine - Author: Pabst Mirror Description: @@ -15,13 +13,13 @@ Returns: ARRAY - Range Table Line Data (see return line) Example: -[300, -0.0001, 3000] call AGM_Artillery_fnc_simulateCalcRangeTableLine +[300, -0.0001, 3000] call ace_mk6mortar_fnc_simulateCalcRangeTableLine */ #include "script_component.hpp" #define TIME_STEP (1/50) -private ["_startTime", "_muzzleVelocity", "_rangeToHit", "_airFriction", "_vacElevation", "_radicand", "_maxElev", "_minElev", "_error", "_solutionElevation", "_lastTestResult", "_numberOfAttempts", "_lineElevation", "_lineTimeOfFlight", "_lineHeightElevation", "_lineHeightTime", "_lineCrosswindDeg", "_lineHeadwindMeters", "_lineTailWindMeters", "_result"]; +private ["_startTime", "_muzzleVelocity", "_rangeToHit", "_airFriction", "_vacElevation", "_radicand", "_maxElev", "_minElev", "_error", "_solutionElevation", "_lastTestResult", "_numberOfAttempts", "_lineElevation", "_lineTimeOfFlight", "_lineHeightElevation", "_lineHeightTimeDelta", "_lineCrosswindDeg", "_lineHeadwindMeters", "_lineTailWindMeters", "_result"]; _startTime = diag_tickTime; @@ -44,7 +42,7 @@ _solution = [_rangeToHit, -100, _muzzleVelocity, _airFriction, TIME_STEP] call F if (_solution isEqualTo []) exitWith {[]};//should never be triggered (lower elevation easier to hit) _lineHeightElevation = ((_solution select 0) - _lineElevation); -// _lineHeightTime = (_lastTestResult select 1) - _lineTimeOfFlight; +_lineHeightTimeDelta = (_solution select 1) - _lineTimeOfFlight; //Compute for 10x and divide to minimize rounding errors @@ -78,4 +76,4 @@ _lineAirDensInc = (_rangeToHit - (_lastTestResult select 0)) / 10; // systemChat format ["debug: Range %1 - in %2 sec", _rangeToHit, (diag_tickTime - _startTime)]; -[_rangeToHit, _lineElevation, _lineHeightElevation, _lineTimeOfFlight, _lineCrosswindDeg, _lineHeadwindMeters, _lineTailWindMeters, _lineTempDec, _lineTempInc, _lineAirDensDec, _lineAirDensInc] +[_rangeToHit, _lineElevation, _lineHeightElevation, _lineHeightTimeDelta, _lineTimeOfFlight, _lineCrosswindDeg, _lineHeadwindMeters, _lineTailWindMeters, _lineTempDec, _lineTempInc, _lineAirDensDec, _lineAirDensInc] diff --git a/addons/mk6mortar/functions/fnc_dev_simulateFindSolution.sqf b/addons/mk6mortar/functions/fnc_dev_simulateFindSolution.sqf index edffa1beb2..a45c415b40 100644 --- a/addons/mk6mortar/functions/fnc_dev_simulateFindSolution.sqf +++ b/addons/mk6mortar/functions/fnc_dev_simulateFindSolution.sqf @@ -38,7 +38,7 @@ _lastTestResult = []; _numberOfAttempts = 0; //(binary search) -while {(_numberOfAttempts < MAX_ATTEMPTS) && ((abs _error) > 0.2)} do { +while {(_numberOfAttempts < MAX_ATTEMPTS) && {(abs _error) > 0.2}} do { _numberOfAttempts = _numberOfAttempts + 1; _solutionElevation = (_maxElev + _minElev) / 2; _lastTestResult = [_solutionElevation, _muzzleVelocity, _airFriction, 15, 1, 0, 0, _heightToHit, _timeStep] call FUNC(dev_simulateShot); diff --git a/addons/mk6mortar/functions/fnc_handleFired.sqf b/addons/mk6mortar/functions/fnc_handleFired.sqf index 72c8aa4bff..e2b440c520 100644 --- a/addons/mk6mortar/functions/fnc_handleFired.sqf +++ b/addons/mk6mortar/functions/fnc_handleFired.sqf @@ -21,7 +21,7 @@ */ #include "script_component.hpp" -private ["_unit", "_shooterMan", "_bisAirFriction", "_temperature", "_newMuzzleVelocityCoefficent", "_bulletVelocity", "_bulletSpeed", "_muzzleVelocity", "_muzzleVelocityShift"]; +private ["_shooterMan", "_bisAirFriction", "_temperature", "_newMuzzleVelocityCoefficent", "_bulletVelocity", "_bulletSpeed", "_muzzleVelocity", "_muzzleVelocityShift"]; disableSerialization; @@ -39,17 +39,19 @@ if (!([_shooterMan] call EFUNC(common,isPlayer))) exitWith {false}; _bisAirFriction = getNumber (configFile >> "CfgAmmo" >> _ammo >> "airFriction"); if (_bisAirFriction != 0) exitWith {ERROR("Non zero base airFriction");}; -//Hack Until these are intergrated: -if (isNil QEGVAR(weather,currentRelativeDensity)) then { - EGVAR(weather,currentRelativeDensity) = 1; -}; -if (isNil QEGVAR(weather,currentTemperature)) then { - EGVAR(weather,currentTemperature) = 15; -}; +//Calculate air density: +_altitude = (getPosASL _vehicle) select 2; +#define GET_TEMPERATURE_AT_HEIGHT(h) (EGVAR(weather,currentTemperature) - 0.0065 * (h)) +_temperature = GET_TEMPERATURE_AT_HEIGHT(_altitude); +_pressure = _altitude call EFUNC(weather,calculateBarometricPressure); +_relativeHumidity = EGVAR(weather,currentHumidity); +_airDensity = [_temperature, _pressure, _relativeHumidity] call EFUNC(weather,calculateAirDensity); +_relativeDensity = _airDensity / 1.225; + +TRACE_5("FiredWeather",_temperature,_pressure,_relativeHumidity,_airDensity,_relativeDensity); //powder effects: -_temperature = EGVAR(weather,currentTemperature); _newMuzzleVelocityCoefficent = (((_temperature + 273.13) / 288.13 - 1) / 40 + 1); if (_newMuzzleVelocityCoefficent != 1) then { _bulletVelocity = velocity _projectile; @@ -59,10 +61,11 @@ if (_newMuzzleVelocityCoefficent != 1) then { _muzzleVelocity = _muzzleVelocity + _muzzleVelocityShift; }; + [{ private ["_deltaT", "_bulletVelocity", "_bulletSpeed", "_trueVelocity", "_trueSpeed", "_dragRef", "_accelRef", "_drag", "_accel"]; PARAMS_2(_args,_pfID); - EXPLODE_3_PVT(_args,_shell,_airFriction,_time); + EXPLODE_4_PVT(_args,_shell,_airFriction,_time,_relativeDensity); if (isNull _shell || {!alive _shell}) exitwith { [_pfID] call cba_fnc_removePerFrameHandler; @@ -77,10 +80,10 @@ if (_newMuzzleVelocityCoefficent != 1) then { _trueVelocity = _bulletVelocity vectorDiff ACE_wind; _trueSpeed = vectorMagnitude _trueVelocity; - _drag = _deltaT * _airFriction * _trueSpeed * EGVAR(weather,currentRelativeDensity); + _drag = _deltaT * _airFriction * _trueSpeed * _relativeDensity; _accel = _trueVelocity vectorMultiply (_drag); _bulletVelocity = _bulletVelocity vectorAdd _accel; _shell setVelocity _bulletVelocity; -}, 0, [_projectile, MK6_82mm_AIR_FRICTION, time]] call CBA_fnc_addPerFrameHandler; +}, 0, [_projectile, MK6_82mm_AIR_FRICTION, time, _relativeDensity]] call CBA_fnc_addPerFrameHandler; diff --git a/addons/mk6mortar/functions/fnc_rangeTablePreCalculatedValues.sqf b/addons/mk6mortar/functions/fnc_rangeTablePreCalculatedValues.sqf index 6752a87542..d775b87365 100644 --- a/addons/mk6mortar/functions/fnc_rangeTablePreCalculatedValues.sqf +++ b/addons/mk6mortar/functions/fnc_rangeTablePreCalculatedValues.sqf @@ -21,242 +21,247 @@ PARAMS_2(_muzzleVelocity,_airFriction); switch (true) do { -case ((abs(_muzzleVelocity - 70) < 0.00001) && ((abs(_airFriction - -0.0001) < 0.00001))): { +case ((abs(_muzzleVelocity - 70) < 0.00001) && {(abs(_airFriction - -0.0001) < 0.00001)}): { [ - ["100","1493","9","14.0","3.7","0.4","-0.3","0.0","-0.0","-0.0","0.0"], - ["150","1438","14","13.9","2.5","0.4","-0.4","0.0","-0.0","-0.1","0.0"], - ["200","1381","20","13.8","1.9","0.5","-0.4","0.0","-0.0","-0.1","0.1"], - ["250","1321","27","13.6","1.5","0.5","-0.4","0.0","-0.0","-0.1","0.1"], - ["300","1256","36","13.3","1.3","0.6","-0.5","0.0","-0.1","-0.1","0.1"], - ["350","1183","49","12.9","1.1","0.6","-0.5","0.1","-0.1","-0.1","0.1"], - ["400","1097","70","12.4","0.9","0.6","-0.5","0.1","-0.1","-0.2","0.1"], - ["450","979","113","11.6","0.8","0.6","-0.5","0.1","-0.1","-0.2","0.2"] + ["100","1493","9","1.4","14.0","3.7","0.4","-0.3","0.0","-0.0","-0.0","0.0"], + ["150","1438","14","1.4","13.9","2.5","0.4","-0.4","0.0","-0.0","-0.1","0.0"], + ["200","1381","20","1.4","13.8","1.9","0.5","-0.4","0.0","-0.0","-0.1","0.1"], + ["250","1321","27","1.5","13.6","1.5","0.5","-0.4","0.0","-0.0","-0.1","0.1"], + ["300","1256","36","1.6","13.3","1.3","0.6","-0.5","0.0","-0.1","-0.1","0.1"], + ["350","1183","49","1.7","12.9","1.1","0.6","-0.5","0.1","-0.1","-0.1","0.1"], + ["400","1097","70","1.9","12.4","0.9","0.6","-0.5","0.1","-0.1","-0.2","0.1"], + ["450","979","113","2.3","11.6","0.8","0.6","-0.5","0.1","-0.1","-0.2","0.2"] ] }; -case ((abs(_muzzleVelocity - 140) < 0.00001) && ((abs(_airFriction - -0.0001) < 0.00001))): { +case ((abs(_muzzleVelocity - 140) < 0.00001) && {(abs(_airFriction - -0.0001) < 0.00001)}): { [ - ["250","1527","2","27.2","9.9","2.6","-2.4","0.0","-0.0","-0.3","0.3"], - ["300","1512","2","27.2","8.3","2.7","-2.4","0.1","-0.0","-0.4","0.4"], - ["350","1497","3","27.1","7.1","2.7","-2.5","0.0","-0.1","-0.5","0.4"], - ["400","1482","3","27.1","6.2","2.7","-2.5","0.1","-0.1","-0.5","0.5"], - ["450","1467","3","27.0","5.6","2.8","-2.5","0.1","-0.1","-0.6","0.6"], - ["500","1451","4","27.0","5.0","2.9","-2.6","0.1","-0.1","-0.6","0.6"], - ["550","1436","4","26.9","4.6","2.9","-2.6","0.1","-0.1","-0.7","0.7"], - ["600","1420","5","26.8","4.2","3.0","-2.7","0.1","-0.1","-0.8","0.8"], - ["650","1404","5","26.8","3.9","3.0","-2.7","0.1","-0.1","-0.9","0.8"], - ["700","1388","6","26.7","3.6","3.1","-2.8","0.1","-0.1","-0.9","0.9"], - ["750","1372","6","26.6","3.4","3.2","-2.8","0.1","-0.1","-1.0","1.0"], - ["800","1355","7","26.5","3.2","3.2","-2.9","0.1","-0.1","-1.1","1.1"], - ["850","1338","8","26.4","3.0","3.3","-2.9","0.1","-0.1","-1.1","1.1"], - ["900","1321","8","26.2","2.8","3.4","-3.0","0.1","-0.1","-1.2","1.2"], - ["950","1303","9","26.1","2.7","3.4","-3.1","0.1","-0.2","-1.3","1.2"], - ["1000","1285","10","26.0","2.6","3.5","-3.1","0.2","-0.1","-1.4","1.3"], - ["1050","1266","11","25.8","2.4","3.5","-3.2","0.1","-0.2","-1.4","1.4"], - ["1100","1247","12","25.7","2.3","3.6","-3.3","0.1","-0.2","-1.5","1.4"], - ["1150","1228","13","25.5","2.2","3.7","-3.3","0.2","-0.2","-1.6","1.5"], - ["1200","1207","14","25.3","2.1","3.7","-3.4","0.2","-0.2","-1.7","1.6"], - ["1250","1186","15","25.1","2.0","3.8","-3.4","0.2","-0.2","-1.7","1.7"], - ["1300","1163","17","24.8","1.9","3.8","-3.5","0.2","-0.2","-1.8","1.7"], - ["1350","1140","19","24.6","1.9","3.9","-3.5","0.2","-0.2","-1.9","1.8"], - ["1400","1115","21","24.3","1.8","3.9","-3.6","0.2","-0.2","-1.9","1.9"], - ["1450","1088","24","23.9","1.7","4.0","-3.6","0.2","-0.2","-2.0","1.9"], - ["1500","1060","27","23.6","1.6","4.0","-3.7","0.2","-0.2","-2.1","2.0"], - ["1550","1028","32","23.1","1.5","4.0","-3.7","0.2","-0.2","-2.1","2.1"], - ["1600","991","38","22.6","1.5","4.0","-3.7","0.2","-0.2","-2.2","2.1"], - ["1650","947","49","21.9","1.4","4.0","-3.7","0.2","-0.3","-2.3","2.2"], - ["1700","888","71","21.0","1.3","3.9","-3.6","0.3","-0.3","-2.3","2.2"] + ["150","1556","1","0.8","27.2","16.3","2.5","-2.4","0.0","-0.0","-0.2","0.2"], + ["200","1541","1","0.8","27.2","12.3","2.5","-2.4","0.0","-0.0","-0.3","0.2"], + ["250","1527","2","0.8","27.2","9.9","2.6","-2.4","0.0","-0.0","-0.3","0.3"], + ["300","1512","2","0.8","27.2","8.3","2.7","-2.4","0.1","-0.0","-0.4","0.4"], + ["350","1497","3","0.8","27.1","7.1","2.7","-2.5","0.0","-0.1","-0.5","0.4"], + ["400","1482","3","0.8","27.1","6.2","2.7","-2.5","0.1","-0.1","-0.5","0.5"], + ["450","1467","3","0.8","27.0","5.6","2.8","-2.5","0.1","-0.1","-0.6","0.6"], + ["500","1451","4","0.8","27.0","5.0","2.9","-2.6","0.1","-0.1","-0.6","0.6"], + ["550","1436","4","0.8","26.9","4.6","2.9","-2.6","0.1","-0.1","-0.7","0.7"], + ["600","1420","5","0.8","26.8","4.2","3.0","-2.7","0.1","-0.1","-0.8","0.8"], + ["650","1404","5","0.8","26.8","3.9","3.0","-2.7","0.1","-0.1","-0.9","0.8"], + ["700","1388","6","0.8","26.7","3.6","3.1","-2.8","0.1","-0.1","-0.9","0.9"], + ["750","1372","6","0.8","26.6","3.4","3.2","-2.8","0.1","-0.1","-1.0","1.0"], + ["800","1355","7","0.8","26.5","3.2","3.2","-2.9","0.1","-0.1","-1.1","1.1"], + ["850","1338","8","0.8","26.4","3.0","3.3","-2.9","0.1","-0.1","-1.1","1.1"], + ["900","1321","8","0.8","26.2","2.8","3.4","-3.0","0.1","-0.1","-1.2","1.2"], + ["950","1303","9","0.9","26.1","2.7","3.4","-3.1","0.1","-0.2","-1.3","1.2"], + ["1000","1285","10","0.9","26.0","2.6","3.5","-3.1","0.2","-0.1","-1.4","1.3"], + ["1050","1266","11","0.9","25.8","2.4","3.5","-3.2","0.1","-0.2","-1.4","1.4"], + ["1100","1247","12","0.9","25.7","2.3","3.6","-3.3","0.1","-0.2","-1.5","1.4"], + ["1150","1228","13","0.9","25.5","2.2","3.7","-3.3","0.2","-0.2","-1.6","1.5"], + ["1200","1207","14","1.0","25.3","2.1","3.7","-3.4","0.2","-0.2","-1.7","1.6"], + ["1250","1186","15","1.0","25.1","2.0","3.8","-3.4","0.2","-0.2","-1.7","1.7"], + ["1300","1163","17","1.0","24.8","1.9","3.8","-3.5","0.2","-0.2","-1.8","1.7"], + ["1350","1140","19","1.0","24.6","1.9","3.9","-3.5","0.2","-0.2","-1.9","1.8"], + ["1400","1115","21","1.1","24.3","1.8","3.9","-3.6","0.2","-0.2","-1.9","1.9"], + ["1450","1088","24","1.1","23.9","1.7","4.0","-3.6","0.2","-0.2","-2.0","1.9"], + ["1500","1060","27","1.2","23.6","1.6","4.0","-3.7","0.2","-0.2","-2.1","2.0"], + ["1550","1028","32","1.3","23.1","1.5","4.0","-3.7","0.2","-0.2","-2.1","2.1"], + ["1600","991","38","1.4","22.6","1.5","4.0","-3.7","0.2","-0.2","-2.2","2.1"], + ["1650","947","49","1.7","21.9","1.4","4.0","-3.7","0.2","-0.3","-2.3","2.2"], + ["1700","888","71","2.1","21.0","1.3","3.9","-3.6","0.3","-0.3","-2.3","2.2"] ] }; -case ((abs(_muzzleVelocity - 200) < 0.00001) && ((abs(_airFriction - -0.0001) < 0.00001))): { +case ((abs(_muzzleVelocity - 200) < 0.00001) && {(abs(_airFriction - -0.0001) < 0.00001)}): { [ - ["450","1527","1","37.3","13.4","6.3","-6.0","0.1","-0.1","-1.0","1.0"], - ["500","1519","1","37.2","12.1","6.3","-6.0","0.1","-0.1","-1.1","1.1"], - ["550","1510","1","37.2","11.0","6.4","-6.0","0.1","-0.1","-1.3","1.2"], - ["600","1502","1","37.2","10.1","6.4","-6.1","0.1","-0.1","-1.4","1.3"], - ["650","1494","1","37.2","9.4","6.5","-6.1","0.1","-0.1","-1.5","1.4"], - ["700","1485","2","37.1","8.7","6.5","-6.2","0.1","-0.1","-1.6","1.5"], - ["750","1477","2","37.1","8.2","6.6","-6.2","0.1","-0.1","-1.7","1.6"], - ["800","1468","2","37.0","7.7","6.7","-6.3","0.1","-0.1","-1.8","1.8"], - ["850","1460","2","37.0","7.2","6.7","-6.3","0.1","-0.1","-2.0","1.9"], - ["900","1451","2","37.0","6.8","6.8","-6.4","0.1","-0.1","-2.1","2.0"], - ["950","1443","2","36.9","6.5","6.9","-6.4","0.1","-0.1","-2.2","2.1"], - ["1000","1434","2","36.9","6.2","6.9","-6.5","0.1","-0.1","-2.3","2.2"], - ["1050","1425","2","36.8","5.9","7.0","-6.6","0.1","-0.2","-2.5","2.3"], - ["1100","1417","3","36.8","5.6","7.1","-6.6","0.1","-0.2","-2.6","2.4"], - ["1150","1408","3","36.7","5.4","7.1","-6.7","0.2","-0.2","-2.7","2.5"], - ["1200","1399","3","36.6","5.2","7.2","-6.7","0.2","-0.2","-2.8","2.7"], - ["1250","1390","3","36.6","5.0","7.3","-6.8","0.2","-0.2","-2.9","2.8"], - ["1300","1381","3","36.5","4.8","7.4","-6.9","0.2","-0.2","-3.0","2.9"], - ["1350","1372","3","36.4","4.6","7.4","-6.9","0.2","-0.2","-3.2","3.0"], - ["1400","1362","4","36.4","4.4","7.5","-7.0","0.2","-0.2","-3.3","3.1"], - ["1450","1353","4","36.3","4.3","7.6","-7.1","0.2","-0.2","-3.4","3.2"], - ["1500","1344","4","36.2","4.2","7.7","-7.1","0.2","-0.2","-3.5","3.4"], - ["1550","1334","4","36.1","4.0","7.7","-7.2","0.2","-0.2","-3.7","3.5"], - ["1600","1324","4","36.0","3.9","7.8","-7.3","0.2","-0.2","-3.8","3.6"], - ["1650","1314","4","35.9","3.8","7.9","-7.3","0.2","-0.2","-3.9","3.7"], - ["1700","1304","5","35.8","3.7","7.9","-7.4","0.2","-0.2","-4.0","3.8"], - ["1750","1294","5","35.7","3.6","8.0","-7.5","0.2","-0.2","-4.2","3.9"], - ["1800","1284","5","35.6","3.5","8.1","-7.6","0.2","-0.3","-4.3","4.0"], - ["1850","1274","5","35.5","3.4","8.2","-7.6","0.2","-0.3","-4.4","4.2"], - ["1900","1263","6","35.4","3.3","8.2","-7.7","0.2","-0.3","-4.5","4.3"], - ["1950","1253","6","35.2","3.2","8.3","-7.8","0.2","-0.3","-4.7","4.4"], - ["2000","1242","6","35.1","3.1","8.4","-7.8","0.3","-0.3","-4.8","4.5"], - ["2050","1231","7","35.0","3.0","8.4","-7.9","0.3","-0.3","-4.9","4.7"], - ["2100","1219","7","34.8","2.9","8.5","-8.0","0.3","-0.3","-5.0","4.8"], - ["2150","1208","7","34.7","2.9","8.5","-8.0","0.3","-0.3","-5.2","4.9"], - ["2200","1196","8","34.5","2.8","8.6","-8.1","0.3","-0.3","-5.3","5.0"], - ["2250","1184","8","34.3","2.7","8.7","-8.2","0.3","-0.3","-5.4","5.1"], - ["2300","1171","9","34.2","2.7","8.7","-8.2","0.3","-0.3","-5.5","5.2"], - ["2350","1158","9","34.0","2.6","8.8","-8.3","0.3","-0.3","-5.7","5.4"], - ["2400","1145","10","33.8","2.5","8.8","-8.3","0.3","-0.3","-5.8","5.5"], - ["2450","1132","10","33.6","2.5","8.9","-8.4","0.3","-0.3","-5.9","5.6"], - ["2500","1118","11","33.3","2.4","8.9","-8.4","0.3","-0.3","-6.0","5.7"], - ["2550","1103","12","33.1","2.4","9.0","-8.5","0.3","-0.3","-6.1","5.8"], - ["2600","1088","13","32.8","2.3","9.0","-8.5","0.4","-0.3","-6.2","5.9"], - ["2650","1072","14","32.6","2.2","9.0","-8.6","0.4","-0.4","-6.4","6.0"], - ["2700","1056","15","32.3","2.2","9.0","-8.6","0.3","-0.4","-6.5","6.1"], - ["2750","1038","16","31.9","2.1","9.1","-8.6","0.4","-0.4","-6.6","6.3"], - ["2800","1020","18","31.6","2.1","9.1","-8.6","0.4","-0.4","-6.7","6.4"], - ["2850","1000","20","31.2","2.0","9.1","-8.6","0.4","-0.4","-6.8","6.5"], - ["2900","978","22","30.8","1.9","9.0","-8.6","0.4","-0.4","-6.9","6.5"], - ["2950","954","26","30.3","1.9","9.0","-8.6","0.4","-0.4","-7.0","6.6"], - ["3000","927","31","29.7","1.8","8.9","-8.5","0.4","-0.4","-7.1","6.7"], - ["3050","894","38","29.0","1.7","8.8","-8.4","0.4","-0.4","-7.2","6.8"], - ["3100","849","54","27.9","1.6","8.5","-8.3","0.4","-0.4","-7.2","6.8"] + ["250","1559","1","0.6","37.3","23.8","6.1","-5.9","0.0","-0.0","-0.6","0.5"], + ["300","1551","1","0.6","37.3","20.0","6.1","-5.9","0.1","-0.0","-0.7","0.7"], + ["350","1543","1","0.6","37.3","17.2","6.2","-5.9","0.0","-0.1","-0.8","0.7"], + ["400","1535","1","0.6","37.3","15.1","6.2","-5.9","0.1","-0.0","-0.9","0.9"], + ["450","1527","1","0.6","37.3","13.4","6.3","-6.0","0.1","-0.1","-1.0","1.0"], + ["500","1519","1","0.6","37.2","12.1","6.3","-6.0","0.1","-0.1","-1.1","1.1"], + ["550","1510","1","0.6","37.2","11.0","6.4","-6.0","0.1","-0.1","-1.3","1.2"], + ["600","1502","1","0.6","37.2","10.1","6.4","-6.1","0.1","-0.1","-1.4","1.3"], + ["650","1494","1","0.6","37.2","9.4","6.5","-6.1","0.1","-0.1","-1.5","1.4"], + ["700","1485","2","0.6","37.1","8.7","6.5","-6.2","0.1","-0.1","-1.6","1.5"], + ["750","1477","2","0.6","37.1","8.2","6.6","-6.2","0.1","-0.1","-1.7","1.6"], + ["800","1468","2","0.6","37.0","7.7","6.7","-6.3","0.1","-0.1","-1.8","1.8"], + ["850","1460","2","0.6","37.0","7.2","6.7","-6.3","0.1","-0.1","-2.0","1.9"], + ["900","1451","2","0.6","37.0","6.8","6.8","-6.4","0.1","-0.1","-2.1","2.0"], + ["950","1443","2","0.6","36.9","6.5","6.9","-6.4","0.1","-0.1","-2.2","2.1"], + ["1000","1434","2","0.6","36.9","6.2","6.9","-6.5","0.1","-0.1","-2.3","2.2"], + ["1050","1425","2","0.6","36.8","5.9","7.0","-6.6","0.1","-0.2","-2.5","2.3"], + ["1100","1417","3","0.6","36.8","5.6","7.1","-6.6","0.1","-0.2","-2.6","2.4"], + ["1150","1408","3","0.6","36.7","5.4","7.1","-6.7","0.2","-0.2","-2.7","2.5"], + ["1200","1399","3","0.6","36.6","5.2","7.2","-6.7","0.2","-0.2","-2.8","2.7"], + ["1250","1390","3","0.6","36.6","5.0","7.3","-6.8","0.2","-0.2","-2.9","2.8"], + ["1300","1381","3","0.6","36.5","4.8","7.4","-6.9","0.2","-0.2","-3.0","2.9"], + ["1350","1372","3","0.6","36.4","4.6","7.4","-6.9","0.2","-0.2","-3.2","3.0"], + ["1400","1362","4","0.6","36.4","4.4","7.5","-7.0","0.2","-0.2","-3.3","3.1"], + ["1450","1353","4","0.6","36.3","4.3","7.6","-7.1","0.2","-0.2","-3.4","3.2"], + ["1500","1344","4","0.6","36.2","4.2","7.7","-7.1","0.2","-0.2","-3.5","3.4"], + ["1550","1334","4","0.6","36.1","4.0","7.7","-7.2","0.2","-0.2","-3.7","3.5"], + ["1600","1324","4","0.6","36.0","3.9","7.8","-7.3","0.2","-0.2","-3.8","3.6"], + ["1650","1314","4","0.7","35.9","3.8","7.9","-7.3","0.2","-0.2","-3.9","3.7"], + ["1700","1304","5","0.7","35.8","3.7","7.9","-7.4","0.2","-0.2","-4.0","3.8"], + ["1750","1294","5","0.7","35.7","3.6","8.0","-7.5","0.2","-0.2","-4.2","3.9"], + ["1800","1284","5","0.7","35.6","3.5","8.1","-7.6","0.2","-0.3","-4.3","4.0"], + ["1850","1274","5","0.7","35.5","3.4","8.2","-7.6","0.2","-0.3","-4.4","4.2"], + ["1900","1263","6","0.7","35.4","3.3","8.2","-7.7","0.2","-0.3","-4.5","4.3"], + ["1950","1253","6","0.7","35.2","3.2","8.3","-7.8","0.2","-0.3","-4.7","4.4"], + ["2000","1242","6","0.7","35.1","3.1","8.4","-7.8","0.3","-0.3","-4.8","4.5"], + ["2050","1231","7","0.7","35.0","3.0","8.4","-7.9","0.3","-0.3","-4.9","4.7"], + ["2100","1219","7","0.7","34.8","2.9","8.5","-8.0","0.3","-0.3","-5.0","4.8"], + ["2150","1208","7","0.7","34.7","2.9","8.5","-8.0","0.3","-0.3","-5.2","4.9"], + ["2200","1196","8","0.7","34.5","2.8","8.6","-8.1","0.3","-0.3","-5.3","5.0"], + ["2250","1184","8","0.7","34.3","2.7","8.7","-8.2","0.3","-0.3","-5.4","5.1"], + ["2300","1171","9","0.8","34.2","2.7","8.7","-8.2","0.3","-0.3","-5.5","5.2"], + ["2350","1158","9","0.8","34.0","2.6","8.8","-8.3","0.3","-0.3","-5.7","5.4"], + ["2400","1145","10","0.8","33.8","2.5","8.8","-8.3","0.3","-0.3","-5.8","5.5"], + ["2450","1132","10","0.8","33.6","2.5","8.9","-8.4","0.3","-0.3","-5.9","5.6"], + ["2500","1118","11","0.8","33.3","2.4","8.9","-8.4","0.3","-0.3","-6.0","5.7"], + ["2550","1103","12","0.8","33.1","2.4","9.0","-8.5","0.3","-0.3","-6.1","5.8"], + ["2600","1088","13","0.9","32.8","2.3","9.0","-8.5","0.4","-0.3","-6.2","5.9"], + ["2650","1072","14","0.9","32.6","2.2","9.0","-8.6","0.4","-0.4","-6.4","6.0"], + ["2700","1056","15","0.9","32.3","2.2","9.0","-8.6","0.3","-0.4","-6.5","6.1"], + ["2750","1038","16","1.0","31.9","2.1","9.1","-8.6","0.4","-0.4","-6.6","6.3"], + ["2800","1020","18","1.0","31.6","2.1","9.1","-8.6","0.4","-0.4","-6.7","6.4"], + ["2850","1000","20","1.1","31.2","2.0","9.1","-8.6","0.4","-0.4","-6.8","6.5"], + ["2900","978","22","1.1","30.8","1.9","9.0","-8.6","0.4","-0.4","-6.9","6.5"], + ["2950","954","26","1.2","30.3","1.9","9.0","-8.6","0.4","-0.4","-7.0","6.6"], + ["3000","927","31","1.4","29.7","1.8","8.9","-8.5","0.4","-0.4","-7.1","6.7"], + ["3050","894","38","1.6","29.0","1.7","8.8","-8.4","0.4","-0.4","-7.2","6.8"], + ["3100","849","54","2.0","27.9","1.6","8.5","-8.3","0.4","-0.4","-7.2","6.8"] ] }; - -case ((abs(_muzzleVelocity - 70) < 0.00001) && ((abs(_airFriction - 0) < 0.00001))): { +case ((abs(_muzzleVelocity - 70) < 0.00001) && {(abs(_airFriction - 0) < 0.00001)}): { [ - ["100","1497","9","14.2","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["150","1445","14","14.1","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["200","1390","19","14.0","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["250","1333","26","13.8","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["300","1272","34","13.5","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["350","1204","45","13.2","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["400","1127","61","12.8","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["450","1028","91","12.1","0.0","0.0","0.0","0.0","0.0","0.0","0.0"] + ["100","1497","9","1.3","0.0","0.0","0.0","0.0","0.0","0.0","0.0","-0.0"], + ["150","1445","14","1.3","0.0","0.0","0.0","0.0","0.0","0.0","0.0","-0.0"], + ["200","1390","19","1.4","0.0","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["250","1333","26","1.4","0.0","0.0","0.0","0.0","0.0","0.0","0.0","-0.0"], + ["300","1272","34","1.5","0.0","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["350","1204","45","1.6","0.0","0.0","0.0","0.0","0.0","0.0","0.0","-0.0"], + ["400","1127","61","1.8","0.0","0.0","0.0","0.0","0.0","0.0","0.0","-0.0"], + ["450","1028","91","2.1","0.0","0.0","0.0","0.0","0.0","0.0","0.0","0.0"] ] }; -case ((abs(_muzzleVelocity - 140) < 0.00001) && ((abs(_airFriction - 0) < 0.00001))): { +case ((abs(_muzzleVelocity - 140) < 0.00001) && {(abs(_airFriction - 0) < 0.00001)}): { [ - ["150","1562","1","28.5","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["200","1549","1","28.5","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["250","1536","2","28.5","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["300","1523","2","28.5","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["350","1510","2","28.4","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["400","1497","3","28.4","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["450","1484","3","28.4","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["500","1471","3","28.3","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["550","1458","4","28.3","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["600","1445","4","28.2","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["650","1431","4","28.2","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["700","1418","5","28.1","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["750","1404","5","28.0","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["800","1390","6","27.9","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["850","1376","6","27.9","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["900","1362","6","27.8","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["950","1348","7","27.7","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["1000","1333","7","27.6","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["1050","1318","8","27.5","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["1100","1303","9","27.3","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["1150","1288","9","27.2","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["1200","1272","10","27.1","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["1250","1256","11","26.9","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["1300","1239","12","26.8","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["1350","1222","13","26.6","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["1400","1205","13","26.4","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["1450","1187","15","26.2","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["1500","1168","16","26.0","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["1550","1148","18","25.8","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["1600","1127","19","25.5","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["1650","1105","21","25.2","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["1700","1082","24","24.9","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["1750","1057","27","24.6","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["1800","1029","31","24.2","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["1850","997","37","23.7","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["1900","960","46","23.1","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["1950","912","63","22.3","0.0","0.0","0.0","0.0","0.0","0.0","0.0"] + ["150","1562","1","0.7","0.0","0.0","0.0","0.0","0.0","0.0","0.0","-0.0"], + ["200","1549","1","0.7","0.0","0.0","0.0","0.0","0.0","0.0","0.0","-0.0"], + ["250","1536","2","0.7","0.0","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["300","1523","2","0.7","0.0","0.0","0.0","0.0","0.0","0.0","0.0","-0.0"], + ["350","1510","2","0.7","0.0","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["400","1497","3","0.7","0.0","0.0","0.0","0.0","0.0","0.0","0.0","-0.0"], + ["450","1484","3","0.7","0.0","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["500","1471","3","0.7","0.0","0.0","0.0","0.0","0.0","0.0","0.0","-0.0"], + ["550","1458","4","0.7","0.0","0.0","0.0","0.0","0.0","0.0","0.0","-0.0"], + ["600","1445","4","0.7","0.0","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["650","1431","4","0.7","0.0","0.0","0.0","0.0","0.0","0.0","0.0","-0.0"], + ["700","1418","5","0.7","0.0","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["750","1404","5","0.7","0.0","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["800","1390","6","0.7","0.0","0.0","0.0","0.0","0.0","0.0","0.0","-0.0"], + ["850","1376","6","0.7","0.0","0.0","0.0","0.0","0.0","0.0","0.0","-0.0"], + ["900","1362","6","0.8","0.0","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["950","1348","7","0.8","0.0","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["1000","1333","7","0.8","0.0","0.0","0.0","0.0","0.0","0.0","0.0","-0.0"], + ["1050","1318","8","0.8","0.0","0.0","0.0","0.0","0.0","0.0","0.0","-0.0"], + ["1100","1303","9","0.8","0.0","0.0","0.0","0.0","0.0","0.0","0.0","-0.0"], + ["1150","1288","9","0.8","0.0","0.0","0.0","0.0","0.0","0.0","0.0","-0.0"], + ["1200","1272","10","0.8","0.0","0.0","0.0","0.0","0.0","0.0","0.0","-0.0"], + ["1250","1256","11","0.8","0.0","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["1300","1239","12","0.8","0.0","0.0","0.0","0.0","0.0","0.0","0.0","-0.0"], + ["1350","1222","13","0.9","0.0","0.0","0.0","0.0","0.0","0.0","0.0","-0.0"], + ["1400","1205","13","0.9","0.0","0.0","0.0","0.0","0.0","0.0","0.0","-0.0"], + ["1450","1187","15","0.9","0.0","0.0","0.0","0.0","0.0","0.0","0.0","-0.0"], + ["1500","1168","16","0.9","0.0","0.0","0.0","0.0","0.0","0.0","0.0","-0.0"], + ["1550","1148","18","1.0","0.0","0.0","0.0","0.0","0.0","0.0","0.0","-0.0"], + ["1600","1127","19","1.0","0.0","0.0","0.0","0.0","0.0","0.0","0.0","-0.0"], + ["1650","1105","21","1.1","0.0","0.0","0.0","0.0","0.0","0.0","0.0","-0.0"], + ["1700","1082","24","1.1","0.0","0.0","0.0","0.0","0.0","0.0","0.0","-0.0"], + ["1750","1057","27","1.2","0.0","0.0","0.0","0.0","0.0","0.0","0.0","-0.0"], + ["1800","1029","31","1.3","0.0","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["1850","997","37","1.4","0.0","0.0","0.0","0.0","0.0","0.0","0.0","-0.0"], + ["1900","960","46","1.6","0.0","0.0","0.0","0.0","0.0","0.0","0.0","-0.0"], + ["1950","912","63","1.9","0.0","0.0","0.0","0.0","0.0","0.0","0.0","-0.0"] ] }; -case ((abs(_muzzleVelocity - 200) < 0.00001) && ((abs(_airFriction - 0) < 0.00001))): { +case ((abs(_muzzleVelocity - 200) < 0.00001) && {(abs(_airFriction - 0) < 0.00001)}): { [ - ["300","1563","0","40.8","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["350","1556","1","40.8","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["400","1550","1","40.7","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["450","1544","1","40.7","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["500","1537","1","40.7","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["550","1531","1","40.7","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["600","1525","1","40.7","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["650","1519","1","40.7","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["700","1512","1","40.6","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["750","1506","1","40.6","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["800","1499","1","40.6","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["850","1493","1","40.6","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["900","1487","1","40.5","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["950","1480","1","40.5","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["1000","1474","2","40.5","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["1050","1467","2","40.5","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["1100","1461","2","40.4","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["1150","1454","2","40.4","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["1200","1448","2","40.3","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["1250","1441","2","40.3","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["1300","1435","2","40.3","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["1350","1428","2","40.2","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["1400","1422","2","40.2","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["1450","1415","2","40.1","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["1500","1408","2","40.1","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["1550","1402","3","40.0","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["1600","1395","3","40.0","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["1650","1388","3","39.9","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["1700","1381","3","39.9","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["1750","1374","3","39.8","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["1800","1367","3","39.7","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["1850","1360","3","39.7","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["1900","1353","3","39.6","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["1950","1346","4","39.5","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["2000","1339","4","39.5","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["2050","1332","4","39.4","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["2100","1325","4","39.3","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["2150","1317","4","39.2","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["2200","1310","4","39.2","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["2250","1302","4","39.1","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["2300","1295","5","39.0","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["2350","1287","5","38.9","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["2400","1280","5","38.8","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["2450","1272","5","38.7","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["2500","1264","5","38.6","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["2550","1256","5","38.5","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["2600","1248","6","38.4","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["2650","1240","6","38.3","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["2700","1232","6","38.2","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["2750","1223","6","38.0","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["2800","1215","7","37.9","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["2850","1206","7","37.8","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["2900","1197","7","37.6","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["2950","1188","7","37.5","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["3000","1179","8","37.4","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["3050","1170","8","37.2","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["3100","1160","8","37.1","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["3150","1151","9","36.9","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["3200","1141","9","36.7","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["3250","1131","10","36.5","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["3300","1120","10","36.3","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["3350","1109","11","36.2","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["3400","1098","11","35.9","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["3450","1087","12","35.7","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["3500","1075","13","35.5","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["3550","1062","14","35.2","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["3600","1049","15","35.0","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["3650","1036","16","34.7","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["3700","1021","17","34.4","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["3750","1006","19","34.1","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["3800","990","21","33.7","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["3850","971","24","33.3","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["3900","952","27","32.8","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["3950","929","32","32.2","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["4000","900","40","31.5","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], - ["4050","861","56","30.5","0.0","0.0","0.0","0.0","0.0","0.0","0.0"] + ["300","1563","0","0.5","0.0","0.0","0.0","0.0","0.0","0.0","0.0","-0.0"], + ["350","1556","1","0.5","0.0","0.0","0.0","0.0","0.0","0.0","0.0","-0.0"], + ["400","1550","1","0.5","0.0","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["450","1544","1","0.5","0.0","0.0","0.0","0.0","0.0","0.0","0.0","-0.0"], + ["500","1537","1","0.5","0.0","0.0","0.0","0.0","0.0","0.0","0.0","-0.0"], + ["550","1531","1","0.5","0.0","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["600","1525","1","0.5","0.0","0.0","0.0","0.0","0.0","0.0","0.0","-0.0"], + ["650","1519","1","0.5","0.0","0.0","0.0","0.0","0.0","0.0","0.0","-0.0"], + ["700","1512","1","0.5","0.0","0.0","0.0","0.0","0.0","0.0","0.0","-0.0"], + ["750","1506","1","0.5","0.0","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["800","1499","1","0.5","0.0","0.0","0.0","0.0","0.0","0.0","0.0","-0.0"], + ["850","1493","1","0.5","0.0","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["900","1487","1","0.5","0.0","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["950","1480","1","0.5","0.0","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["1000","1474","2","0.5","0.0","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["1050","1467","2","0.5","0.0","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["1100","1461","2","0.5","0.0","0.0","0.0","0.0","0.0","0.0","0.0","-0.0"], + ["1150","1454","2","0.5","0.0","0.0","0.0","0.0","0.0","0.0","0.0","-0.0"], + ["1200","1448","2","0.5","0.0","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["1250","1441","2","0.5","0.0","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["1300","1435","2","0.5","0.0","0.0","0.0","0.0","0.0","0.0","0.0","-0.0"], + ["1350","1428","2","0.5","0.0","0.0","0.0","0.0","0.0","0.0","0.0","-0.0"], + ["1400","1422","2","0.5","0.0","0.0","0.0","0.0","0.0","0.0","0.0","-0.0"], + ["1450","1415","2","0.5","0.0","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["1500","1408","2","0.5","0.0","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["1550","1402","3","0.5","0.0","0.0","0.0","0.0","0.0","0.0","0.0","-0.0"], + ["1600","1395","3","0.5","0.0","0.0","0.0","0.0","0.0","0.0","0.0","-0.0"], + ["1650","1388","3","0.5","0.0","0.0","0.0","0.0","0.0","0.0","0.0","-0.0"], + ["1700","1381","3","0.5","0.0","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["1750","1374","3","0.5","0.0","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["1800","1367","3","0.5","0.0","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["1850","1360","3","0.5","0.0","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["1900","1353","3","0.5","0.0","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["1950","1346","4","0.5","0.0","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["2000","1339","4","0.5","0.0","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["2050","1332","4","0.5","0.0","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["2100","1325","4","0.6","0.0","0.0","0.0","0.0","0.0","0.0","0.0","-0.0"], + ["2150","1317","4","0.6","0.0","0.0","0.0","0.0","0.0","0.0","0.0","-0.0"], + ["2200","1310","4","0.6","0.0","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["2250","1302","4","0.6","0.0","0.0","0.0","0.0","0.0","0.0","0.0","-0.0"], + ["2300","1295","5","0.6","0.0","0.0","0.0","0.0","0.0","0.0","0.0","-0.0"], + ["2350","1287","5","0.6","0.0","0.0","0.0","0.0","0.0","0.0","0.0","-0.0"], + ["2400","1280","5","0.6","0.0","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["2450","1272","5","0.6","0.0","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["2500","1264","5","0.6","0.0","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["2550","1256","5","0.6","0.0","0.0","0.0","0.0","0.0","0.0","0.0","-0.0"], + ["2600","1248","6","0.6","0.0","0.0","0.0","0.0","0.0","0.0","0.0","-0.0"], + ["2650","1240","6","0.6","0.0","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["2700","1232","6","0.6","0.0","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["2750","1223","6","0.6","0.0","0.0","0.0","0.0","0.0","0.0","0.0","-0.0"], + ["2800","1215","7","0.6","0.0","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["2850","1206","7","0.6","0.0","0.0","0.0","0.0","0.0","0.0","0.0","-0.0"], + ["2900","1197","7","0.6","0.0","0.0","0.0","0.0","0.0","0.0","0.0","-0.0"], + ["2950","1188","7","0.7","0.0","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["3000","1179","8","0.7","0.0","0.0","0.0","0.0","0.0","0.0","0.0","-0.0"], + ["3050","1170","8","0.7","0.0","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["3100","1160","8","0.7","0.0","0.0","0.0","0.0","0.0","0.0","0.0","-0.0"], + ["3150","1151","9","0.7","0.0","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["3200","1141","9","0.7","0.0","0.0","0.0","0.0","0.0","0.0","0.0","-0.0"], + ["3250","1131","10","0.7","0.0","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["3300","1120","10","0.7","0.0","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["3350","1109","11","0.8","0.0","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["3400","1098","11","0.8","0.0","0.0","0.0","0.0","0.0","0.0","0.0","-0.0"], + ["3450","1087","12","0.8","0.0","0.0","0.0","0.0","0.0","0.0","0.0","-0.0"], + ["3500","1075","13","0.8","0.0","0.0","0.0","0.0","0.0","0.0","0.0","-0.0"], + ["3550","1062","14","0.8","0.0","0.0","0.0","0.0","0.0","0.0","0.0","-0.0"], + ["3600","1049","15","0.9","0.0","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["3650","1036","16","0.9","0.0","0.0","0.0","0.0","0.0","0.0","0.0","-0.0"], + ["3700","1021","17","0.9","0.0","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["3750","1006","19","1.0","0.0","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["3800","990","21","1.1","0.0","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["3850","971","24","1.1","0.0","0.0","0.0","0.0","0.0","0.0","0.0","-0.0"], + ["3900","952","27","1.2","0.0","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["3950","929","32","1.4","0.0","0.0","0.0","0.0","0.0","0.0","0.0","0.0"], + ["4000","900","40","1.6","0.0","0.0","0.0","0.0","0.0","0.0","0.0","-0.0"], + ["4050","861","56","2.1","0.0","0.0","0.0","0.0","0.0","0.0","0.0","0.0"] ] }; default { From 732e7cc28faf3f6ee28fa9e17f263befb27a1fce Mon Sep 17 00:00:00 2001 From: ViperMaul Date: Fri, 24 Apr 2015 14:43:30 -0700 Subject: [PATCH 102/256] remove obsolete PBOs and their signatures during the build process. --- tools/make.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/tools/make.py b/tools/make.py index c7dfd2e4fb..b4a1dfdbde 100644 --- a/tools/make.py +++ b/tools/make.py @@ -449,6 +449,13 @@ def build_signature_file(file_name): return True else: return False + + +def check_for_obsolete_pbos(addonspath, file): + module = file[4:-4] + if not os.path.exists(os.path.join(addonspath, module)): + return True + return False ############################################################################### @@ -759,6 +766,14 @@ See the make.cfg file for additional build options. key = os.path.join(private_key_path, key_name + ".biprivatekey") + # Remove any obsolete files. + obsolete_check_path = os.path.join(module_root, release_dir, project,"addons") + for file in os.listdir(obsolete_check_path): + if (file.endswith(".pbo") and os.path.isfile(os.path.join(obsolete_check_path,file))): + if check_for_obsolete_pbos(module_root, file): + fileName = os.path.splitext(file)[0] + print_yellow("Removing obsolete file => " + file)) + purge(obsolete_check_path,fileName+"\..",fileName+".*") # For each module, prep files and then build. print_blue("\nBuilding...") From 97a4bab70cea0070f12fe87e9c154fdd0c81f87c Mon Sep 17 00:00:00 2001 From: ViperMaul Date: Fri, 24 Apr 2015 14:44:57 -0700 Subject: [PATCH 103/256] Fixed a typo --- tools/make.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/make.py b/tools/make.py index b4a1dfdbde..752238cdc5 100644 --- a/tools/make.py +++ b/tools/make.py @@ -772,7 +772,7 @@ See the make.cfg file for additional build options. if (file.endswith(".pbo") and os.path.isfile(os.path.join(obsolete_check_path,file))): if check_for_obsolete_pbos(module_root, file): fileName = os.path.splitext(file)[0] - print_yellow("Removing obsolete file => " + file)) + print_yellow("Removing obsolete file => " + file) purge(obsolete_check_path,fileName+"\..",fileName+".*") # For each module, prep files and then build. From 4c9b94912a686ec1a0c6d191e9ed3d736f95e826 Mon Sep 17 00:00:00 2001 From: ViperMaul Date: Fri, 24 Apr 2015 14:46:47 -0700 Subject: [PATCH 104/256] Adding notification --- tools/make.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/make.py b/tools/make.py index 752238cdc5..903f72d023 100644 --- a/tools/make.py +++ b/tools/make.py @@ -767,6 +767,7 @@ See the make.cfg file for additional build options. key = os.path.join(private_key_path, key_name + ".biprivatekey") # Remove any obsolete files. + print_blue("\nChecking for obsolete files...") obsolete_check_path = os.path.join(module_root, release_dir, project,"addons") for file in os.listdir(obsolete_check_path): if (file.endswith(".pbo") and os.path.isfile(os.path.join(obsolete_check_path,file))): From e6062d577a6a6d38e3277fcc468f49c29af92874 Mon Sep 17 00:00:00 2001 From: ViperMaul Date: Fri, 24 Apr 2015 15:08:19 -0700 Subject: [PATCH 105/256] Moving some notices around. --- tools/make.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/tools/make.py b/tools/make.py index 903f72d023..382f8dd776 100644 --- a/tools/make.py +++ b/tools/make.py @@ -309,12 +309,12 @@ def copy_important_files(source_dir,destination_dir): "logo_ace3_ca.paa" ] - print_yellow ("source_dir: " + source_dir) - print_yellow("destination_dir: " + destination_dir) - #copy importantFiles try: print_blue("\nSearching for important files in " + source_dir) + print("Source_dir: " + source_dir) + print("Destination_dir: " + destination_dir) + for file in importantFiles: print_green("Copying file => " + os.path.join(source_dir,file)) shutil.copyfile(os.path.join(source_dir,file),os.path.join(destination_dir,file)) @@ -1060,8 +1060,6 @@ See the make.cfg file for additional build options. except: print_error("ERROR: Could not delete pboProject temp files.") - print_green("\nDone.") - copy_important_files(module_root_parent,os.path.join(release_dir, "@ace")) cleanup_optionals(optionals_modules) @@ -1103,6 +1101,9 @@ See the make.cfg file for additional build options. shutil.copytree(os.path.join(module_root, release_dir, project), os.path.join(a3_path, project)) except: print_error("Could not copy files. Is Arma 3 running?") + + print_green("\nDone.") + if __name__ == "__main__": main(sys.argv) From d7d0f00592eb515edae5dac841b5102cced17af8 Mon Sep 17 00:00:00 2001 From: commy2 Date: Sat, 25 Apr 2015 05:51:44 +0200 Subject: [PATCH 106/256] tweaking recoil --- addons/recoil/CfgRecoils.hpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/addons/recoil/CfgRecoils.hpp b/addons/recoil/CfgRecoils.hpp index 56a28f1dc1..76bad23fb1 100644 --- a/addons/recoil/CfgRecoils.hpp +++ b/addons/recoil/CfgRecoils.hpp @@ -1,8 +1,8 @@ -#define KICKBACK 1.6 +#define KICKBACK 1.4 #define MUZZLETEMP 1 -#define MUZZLEPERM 0.1 +#define MUZZLEPERM 0.4 #define MUZZLECLIMB_POS 1 #define MUZZLERIGHT_POS 0.4 @@ -70,7 +70,7 @@ class CfgRecoils { class recoil_sw: recoil_default { muzzleOuter[] = {0.3*MUZZLERIGHT_POS,0.8*MUZZLECLIMB_POS,0.5*MUZZLERIGHT_MAG,0.2*MUZZLECLIMB_MAG}; kickBack[] = {0.02*KICKBACK,0.04*KICKBACK}; - temporary = 0.005*MUZZLETEMP; + temporary = 0.01*MUZZLETEMP; //0.005*MUZZLETEMP; }; class recoil_mxm: recoil_default { @@ -178,13 +178,13 @@ class CfgRecoils { class recoil_mk200: recoil_default { muzzleOuter[] = {0.4*MUZZLERIGHT_POS,0.6*MUZZLECLIMB_POS,0.6*MUZZLERIGHT_MAG,0.2*MUZZLECLIMB_MAG}; kickBack[] = {0.03*KICKBACK,0.06*KICKBACK}; - temporary = 0.005*MUZZLETEMP; + temporary = 0.01*MUZZLETEMP; //0.005*MUZZLETEMP; }; class recoil_zafir: recoil_default { muzzleOuter[] = {0.5*MUZZLERIGHT_POS,1*MUZZLECLIMB_POS,0.7*MUZZLERIGHT_MAG,0.3*MUZZLECLIMB_MAG}; kickBack[] = {0.02*KICKBACK,0.08*KICKBACK}; - temporary = 0.005*MUZZLETEMP; + temporary = 0.01*MUZZLETEMP; //0.005*MUZZLETEMP; }; class recoil_m320: recoil_default { @@ -244,12 +244,12 @@ class CfgRecoils { class recoil_mmg_01: recoil_default { muzzleOuter[] = {0.6*MUZZLERIGHT_POS,1.5*MUZZLECLIMB_POS,0.8*MUZZLERIGHT_MAG,0.3*MUZZLECLIMB_MAG}; kickBack[] = {0.02*KICKBACK,0.08*KICKBACK}; - temporary = 0.005*MUZZLETEMP; + temporary = 0.01*MUZZLETEMP; //0.005*MUZZLETEMP; }; class recoil_mmg_02: recoil_default { muzzleOuter[] = {0.5*MUZZLERIGHT_POS,1.5*MUZZLECLIMB_POS,0.6*MUZZLERIGHT_MAG,0.4*MUZZLECLIMB_MAG}; kickBack[] = {0.04*KICKBACK,0.08*KICKBACK}; - temporary = 0.005*MUZZLETEMP; + temporary = 0.01*MUZZLETEMP; //0.005*MUZZLETEMP; }; }; From 12280bbcadf3ef46682aab21a12a9769208eb5da Mon Sep 17 00:00:00 2001 From: commy2 Date: Sat, 25 Apr 2015 07:21:11 +0200 Subject: [PATCH 107/256] revive tmr camshake --- addons/recoil/CfgEventHandlers.hpp | 14 ++++ addons/recoil/CfgMoves.hpp | 85 ++++++++++++++++++++ addons/recoil/CfgRecoils.hpp | 4 +- addons/recoil/XEH_preInit.sqf | 8 ++ addons/recoil/config.cpp | 8 ++ addons/recoil/functions/fnc_camshake.sqf | 63 +++++++++++++++ addons/recoil/functions/script_component.hpp | 1 + 7 files changed, 181 insertions(+), 2 deletions(-) create mode 100644 addons/recoil/CfgEventHandlers.hpp create mode 100644 addons/recoil/CfgMoves.hpp create mode 100644 addons/recoil/XEH_preInit.sqf create mode 100644 addons/recoil/functions/fnc_camshake.sqf create mode 100644 addons/recoil/functions/script_component.hpp diff --git a/addons/recoil/CfgEventHandlers.hpp b/addons/recoil/CfgEventHandlers.hpp new file mode 100644 index 0000000000..60fc3892fc --- /dev/null +++ b/addons/recoil/CfgEventHandlers.hpp @@ -0,0 +1,14 @@ + +class Extended_PreInit_EventHandlers { + class ADDON { + init = QUOTE(call COMPILE_FILE(XEH_preInit)); + }; +}; + +class Extended_FiredBIS_EventHandlers { + class CAManBase { + class ADDON { + clientFiredBIS = QUOTE(if (_this select 0 == ACE_player) then {_this call FUNC(camshake)};); + }; + }; +}; diff --git a/addons/recoil/CfgMoves.hpp b/addons/recoil/CfgMoves.hpp new file mode 100644 index 0000000000..ecad382cb5 --- /dev/null +++ b/addons/recoil/CfgMoves.hpp @@ -0,0 +1,85 @@ + +// Completely disable BI's camshake on fire. +#define ACE_CAMSHAKEFIRE_BASE 0 +#define ACE_CAMSHAKEFIRE_LESS 0 +#define ACE_CAMSHAKEFIRE_MORE 0 + +// Go through all modes that have a camshakefire defined and change it to ours. +class CfgMovesBasic { + class Default { + camShakeFire = ACE_CAMSHAKEFIRE_NORMAL; + }; +}; + +class CfgMovesMaleSdr: CfgMovesBasic { + class States { + class AmovPercMstpSlowWrflDnon; + class AmovPknlMstpSlowWrflDnon: AmovPercMstpSlowWrflDnon { + camShakeFire = ACE_CAMSHAKEFIRE_LESS; + }; + + class AmovPercMstpSrasWrflDnon; + class AmovPpneMstpSrasWrflDnon: AmovPercMstpSrasWrflDnon { + camShakeFire = ACE_CAMSHAKEFIRE_LESS; + }; + + class AmovPknlMstpSrasWlnrDnon: Default { + camShakeFire = ACE_CAMSHAKEFIRE_LESS; + }; + + class AmovPknlMrunSlowWrflDf; + class AmovPknlMtacSlowWrflDf: AmovPknlMrunSlowWrflDf { + camShakeFire = ACE_CAMSHAKEFIRE_MORE; + }; + + class AmovPknlMrunSlowWrflDfl; + class AmovPknlMtacSlowWrflDfl: AmovPknlMrunSlowWrflDfl { + camShakeFire = ACE_CAMSHAKEFIRE_MORE; + }; + + class AmovPknlMrunSlowWrflDl; + class AmovPknlMtacSlowWrflDl: AmovPknlMrunSlowWrflDl { + camShakeFire = ACE_CAMSHAKEFIRE_MORE; + }; + + class AmovPknlMrunSlowWrflDbl; + class AmovPknlMtacSlowWrflDbl: AmovPknlMrunSlowWrflDbl { + camShakeFire = ACE_CAMSHAKEFIRE_MORE; + }; + + class AmovPknlMrunSlowWrflDb; + class AmovPknlMtacSlowWrflDb: AmovPknlMrunSlowWrflDb { + camShakeFire = ACE_CAMSHAKEFIRE_MORE; + }; + + class AmovPknlMrunSlowWrflDbr; + class AmovPknlMtacSlowWrflDbr: AmovPknlMrunSlowWrflDbr { + camShakeFire = ACE_CAMSHAKEFIRE_MORE; + }; + + class AmovPknlMrunSlowWrflDr; + class AmovPknlMtacSlowWrflDr: AmovPknlMrunSlowWrflDr { + camShakeFire = ACE_CAMSHAKEFIRE_MORE; + }; + + class AmovPknlMrunSlowWrflDfr; + class AmovPknlMtacSlowWrflDfr: AmovPknlMrunSlowWrflDfr { + camShakeFire = ACE_CAMSHAKEFIRE_MORE; + }; + + class AmovPknlMstpSrasWrflDnon; + class AmovPknlMwlkSrasWrflDf: AmovPknlMstpSrasWrflDnon { + camShakeFire = ACE_CAMSHAKEFIRE_NORMAL; + }; + + class AmovPknlMrunSrasWrflDf; + class AmovPknlMtacSrasWrflDf: AmovPknlMrunSrasWrflDf { + camShakeFire = ACE_CAMSHAKEFIRE_MORE; + }; + + class AmovPknlMwlkSrasWpstDf; + class AmovPknlMtacSrasWpstDf: AmovPknlMwlkSrasWpstDf { + camShakeFire = ACE_CAMSHAKEFIRE_MORE; + }; + }; +}; diff --git a/addons/recoil/CfgRecoils.hpp b/addons/recoil/CfgRecoils.hpp index 76bad23fb1..4b473919d5 100644 --- a/addons/recoil/CfgRecoils.hpp +++ b/addons/recoil/CfgRecoils.hpp @@ -1,11 +1,11 @@ #define KICKBACK 1.4 -#define MUZZLETEMP 1 +#define MUZZLETEMP 1.2 #define MUZZLEPERM 0.4 #define MUZZLECLIMB_POS 1 -#define MUZZLERIGHT_POS 0.4 +#define MUZZLERIGHT_POS 0.2 #define MUZZLECLIMB_MAG 1 #define MUZZLERIGHT_MAG 1 diff --git a/addons/recoil/XEH_preInit.sqf b/addons/recoil/XEH_preInit.sqf new file mode 100644 index 0000000000..f6d04886c1 --- /dev/null +++ b/addons/recoil/XEH_preInit.sqf @@ -0,0 +1,8 @@ +// by commy2 +#include "script_component.hpp" + +ADDON = false; + +PREP(camshake); + +ADDON = true; diff --git a/addons/recoil/config.cpp b/addons/recoil/config.cpp index 1e2ce69fae..5b8002bc37 100644 --- a/addons/recoil/config.cpp +++ b/addons/recoil/config.cpp @@ -12,4 +12,12 @@ class CfgPatches { }; }; +#include "CfgEventHandlers.hpp" + +#include "CfgMoves.hpp" #include "CfgRecoils.hpp" + +class CfgCameraShake { + // What does this do, really? It seems like the engine no longer respects it. + defaultCaliberCoefWeaponFire = 0; +}; diff --git a/addons/recoil/functions/fnc_camshake.sqf b/addons/recoil/functions/fnc_camshake.sqf new file mode 100644 index 0000000000..737582b1cb --- /dev/null +++ b/addons/recoil/functions/fnc_camshake.sqf @@ -0,0 +1,63 @@ +// TMR: Small Arms - Recoil initialization and functions +// (C) 2013 Ryan Schultz. See LICENSE. +// Edited prefixes for compatability in AGM_Realism by KoffeinFlummi +// Edited by commy2 +#include "script_component.hpp" + +#define BASE_POWER 0.40 +#define BASE_TIME 0.19 +#define BASE_FREQ 13 +#define RECOIL_COEF 40 + +private ["_unit", "_weapon", "_muzzle"]; + +_unit = _this select 0; +_weapon = _this select 1; +_muzzle = _this select 2; + +if (toLower _weapon in ["throw", "put"]) exitWith {}; + +private ["_powerMod", "_timeMod", "_freqMod"]; + +_powerMod = ([0, -0.1, -0.1, 0, -0.2] select (["STAND", "CROUCH", "PRONE", "UNDEFINED", ""] find stance _unit)) + ([0, -1, 0, -1] select (["INTERNAL", "EXTERNAL", "GUNNER", "GROUP"] find cameraView)); +_timeMod = 0; +_freqMod = 0; + +// to get camshake read kickback +private ["_config", "_recoil"]; + +_config = configFile >> "CfgWeapons" >> _weapon; +_recoil = if (_muzzle == _weapon) then { + getText (_config >> "recoil") +} else { + getText (_config >> _muzzle >> "recoil") +}; + +_recoil = getArray (configFile >> "CfgRecoils" >> _recoil >> "kickBack"); +if (count _recoil < 2) then { + _recoil = [0, 0]; +}; + +// parse numbers +_recoil set [0, call compile format ["%1", _recoil select 0]]; +_recoil set [1, call compile format ["%1", _recoil select 1]]; + +private "_powerCoef"; +_powerCoef = RECOIL_COEF * linearConversion [0, 1, random 1, _recoil select 0, _recoil select 1, false]; + +if (isWeaponRested _unit) then {_powerMod = _powerMod - 0.07}; +if (isWeaponDeployed _unit) then {_powerMod = _powerMod - 0.11}; + +private "_camshake"; +_camshake = [ + _powerCoef * (BASE_POWER + _powerMod) max 0, + BASE_TIME + _timeMod max 0, + BASE_FREQ + _freqMod max 0 +]; + +/* + systemChat str _camshake; + copyToClipboard format ["addCamShake %1;", _camshake]; +*/ + +addCamShake _camshake; diff --git a/addons/recoil/functions/script_component.hpp b/addons/recoil/functions/script_component.hpp new file mode 100644 index 0000000000..d66ac7aec3 --- /dev/null +++ b/addons/recoil/functions/script_component.hpp @@ -0,0 +1 @@ +#include "\z\ace\addons\overpressure\script_component.hpp" \ No newline at end of file From d414e5a3a19c11878552591c180dd477a9e1f05f Mon Sep 17 00:00:00 2001 From: ulteq Date: Sat, 25 Apr 2015 12:08:31 +0200 Subject: [PATCH 108/256] Removed unused define --- addons/advanced_ballistics/script_component.hpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/addons/advanced_ballistics/script_component.hpp b/addons/advanced_ballistics/script_component.hpp index 70c2f47990..3334bb3207 100644 --- a/addons/advanced_ballistics/script_component.hpp +++ b/addons/advanced_ballistics/script_component.hpp @@ -1,8 +1,6 @@ #define COMPONENT advanced_ballistics #include "\z\ace\addons\main\script_mod.hpp" -#define USE_ADVANCEDBALLISTICS_DLL - #ifdef DEBUG_ENABLED_ADVANCEDBALLISTICS #define DEBUG_MODE_FULL #endif From 1415adc2bde1b418c3581c63166a590e6536ea40 Mon Sep 17 00:00:00 2001 From: Glowbal Date: Sat, 25 Apr 2015 12:35:07 +0200 Subject: [PATCH 109/256] removed local diagnose action. Added localization --- addons/medical/XEH_preInit.sqf | 1 - .../medical/functions/fnc_actionDiagnose.sqf | 23 ++++++++++- .../functions/fnc_actionDiagnoseLocal.sqf | 40 ------------------- addons/medical/stringtable.xml | 22 ++++++++++ 4 files changed, 44 insertions(+), 42 deletions(-) delete mode 100644 addons/medical/functions/fnc_actionDiagnoseLocal.sqf diff --git a/addons/medical/XEH_preInit.sqf b/addons/medical/XEH_preInit.sqf index c9c149d2a6..b6deca4033 100644 --- a/addons/medical/XEH_preInit.sqf +++ b/addons/medical/XEH_preInit.sqf @@ -8,7 +8,6 @@ PREP(actionCheckPulse); PREP(actionCheckPulseLocal); PREP(actionCheckResponse); PREP(actionDiagnose); -PREP(actionDiagnoseLocal); PREP(actionPlaceInBodyBag); PREP(actionRemoveTourniquet); PREP(actionLoadUnit); diff --git a/addons/medical/functions/fnc_actionDiagnose.sqf b/addons/medical/functions/fnc_actionDiagnose.sqf index 7ac4bfd5a5..234cc6d303 100644 --- a/addons/medical/functions/fnc_actionDiagnose.sqf +++ b/addons/medical/functions/fnc_actionDiagnose.sqf @@ -17,4 +17,25 @@ private ["_caller","_target","_title","_content"]; _caller = _this select 0; _target = _this select 1; -[[_caller, _target], QUOTE(DFUNC(actionDiagnoseLocal)), _target] call EFUNC(common,execRemoteFnc); /* TODO Replace by event system */ + +_genericMessages = ["STR_ACE_MEDICAL_diagnoseMessage"]; + +_genericMessages pushBack ([_target] call EFUNC(common,getName)); +if (alive _target) then { + _genericMessages pushback "STR_ACE_MEDICAL_diagnoseAlive"; +} else { + _genericMessages pushback "STR_ACE_MEDICAL_diagnoseDead"; +}; +if (_target getvariable[QGVAR(hasLostBlood), false]) then { + _genericMessages pushback "STR_ACE_MEDICAL_lostBlood"; +} else { + _genericMessages pushback "STR_ACE_MEDICAL_noBloodloss"; +}; + +if (_target getvariable[QGVAR(hasPain), false]) then { + _genericMessages pushback "STR_ACE_MEDICAL_inPain"; +} else { + _genericMessages pushback "STR_ACE_MEDICAL_noPain"; +}; + +["displayTextStructured", [_caller], [_genericMessages, 3.0, _caller]] call EFUNC(common,targetEvent); diff --git a/addons/medical/functions/fnc_actionDiagnoseLocal.sqf b/addons/medical/functions/fnc_actionDiagnoseLocal.sqf deleted file mode 100644 index 58c50638bf..0000000000 --- a/addons/medical/functions/fnc_actionDiagnoseLocal.sqf +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Author: Glowbal - * Local callback for checking the pulse of a patient - * - * Arguments: - * 0: The medic - * 1: The patient - * - * Return Value: - * NONE - * - * Public: No - */ - -#include "script_component.hpp" - -_caller = _this select 0; -_unit = _this select 1; - -_genericMessages = ["Patient %1
is %2.
%3.
%4"]; - -_genericMessages pushBack ([_unit] call EFUNC(common,getName)); -if (alive _unit) then { - _genericMessages pushback "alive"; -} else { - _genericMessages pushback "dead"; -}; -if (_target getvariable[QGVAR(hasLostBlood), false]) then { - _genericMessages pushback "He's lost some blood"; -} else { - _genericMessages pushback "He hasn't lost blood"; -}; - -if (_target getvariable[QGVAR(hasPain), false]) then { - _genericMessages pushback "He is in pain"; -} else { - _genericMessages pushback "He is not in pain"; -}; -diag_log _genericMessages; -["displayTextStructured", [_caller], [format _genericMessages, 3.0, _caller]] call EFUNC(common,targetEvent); diff --git a/addons/medical/stringtable.xml b/addons/medical/stringtable.xml index 53c587bec0..9220eb6671 100644 --- a/addons/medical/stringtable.xml +++ b/addons/medical/stringtable.xml @@ -1322,6 +1322,28 @@ Megnézted %1-t Hai controllato %1 + + Patient %1<br/>is %2.<br/>%3.<br/>%4 + + + alive + + + dead + + + He's lost some blood + + + He hasn't lost blood + + + He is in pain + + + He is not in pain + + Bandaged Bandé From 2d14ae61f98ef0094450a2ea484aa1b8a51f7fa4 Mon Sep 17 00:00:00 2001 From: ulteq Date: Sat, 25 Apr 2015 12:36:04 +0200 Subject: [PATCH 110/256] Simplified muzzle velocity shift calculation: *Also added some missing privates --- .../functions/fnc_handleFired.sqf | 30 ++++--------------- 1 file changed, 5 insertions(+), 25 deletions(-) diff --git a/addons/advanced_ballistics/functions/fnc_handleFired.sqf b/addons/advanced_ballistics/functions/fnc_handleFired.sqf index dcf051d570..6d8324355d 100644 --- a/addons/advanced_ballistics/functions/fnc_handleFired.sqf +++ b/addons/advanced_ballistics/functions/fnc_handleFired.sqf @@ -19,7 +19,7 @@ */ #include "script_component.hpp" -private ["_unit", "_weapon", "_mode", "_ammo", "_magazine", "_caliber", "_bullet", "_abort", "_index", "_opticsName", "_opticType", "_bulletTraceVisible", "_temperature", "_barometricPressure", "_atmosphereModel", "_bulletMass", "_bulletLength", "_airFriction", "_dragModel", "_muzzleVelocity", "_muzzleVelocityCoef", "_muzzleAccessory", "_initSpeedCoef", "_muzzleVelocityShift", "_bulletVelocity", "_bulletSpeed", "_bulletLength", "_barrelTwist", "_twistDirection", "_stabilityFactor", "_transonicStabilityCoef"]; +private ["_unit", "_weapon", "_mode", "_ammo", "_magazine", "_caliber", "_bullet", "_abort", "_index", "_opticsName", "_opticType", "_bulletTraceVisible", "_temperature", "_barometricPressure", "_atmosphereModel", "_bulletMass", "_bulletLength", "_airFriction", "_dragModel", "_muzzleVelocity", "_muzzleVelocityShift", "_bulletVelocity", "_bulletSpeed", "_bulletLength", "_barrelTwist", "_twistDirection", "_stabilityFactor", "_transonicStabilityCoef", "_ballisticCoefficients", "_velocityBoundaries"]; _unit = _this select 0; _weapon = _this select 1; _mode = _this select 3; @@ -52,32 +52,14 @@ if (_abort || !(GVAR(extensionAvailable))) exitWith { }; _airFriction = getNumber(configFile >> "cfgAmmo" >> _ammo >> "airFriction"); -_muzzleVelocity = getNumber(configFile >> "cfgMagazines" >> _magazine >> "initSpeed"); -_muzzleVelocityCoef = getNumber(configFile >> "cfgWeapons" >> _weapon >> "initSpeed"); -if (_muzzleVelocityCoef > 0) then { - _muzzleVelocity = _muzzleVelocityCoef; -}; -if (_muzzleVelocityCoef < 0) then { - _muzzleVelocity = _muzzleVelocity * (-1 * _muzzleVelocityCoef); -}; -_muzzleAccessory = ""; -switch (currentWeapon _unit) do { - case primaryWeapon _unit: { _muzzleAccessory = (primaryWeaponItems _unit) select 0; }; - case handgunWeapon _unit: { _muzzleAccessory = (handgunItems _unit) select 0; }; -}; - -if (_muzzleAccessory != "" && isNumber(configFile >> "cfgWeapons" >> _muzzleAccessory >> "ItemInfo" >> "MagazineCoef" >> "initSpeed")) then { - _initSpeedCoef = getNumber(configFile >> "cfgWeapons" >> _muzzleAccessory >> "ItemInfo" >> "MagazineCoef" >> "initSpeed"); - _muzzleVelocity = _muzzleVelocity * _initSpeedCoef; -}; +_bulletVelocity = velocity _bullet; +_muzzleVelocity = vectorMagnitude _bulletVelocity; if (GVAR(barrelLengthInfluenceEnabled)) then { _muzzleVelocityShift = [_ammo, _weapon, _muzzleVelocity] call FUNC(calculateBarrelLengthVelocityShift); if (_muzzleVelocityShift != 0) then { - _bulletVelocity = velocity _bullet; - _bulletSpeed = vectorMagnitude _bulletVelocity; - _bulletVelocity = _bulletVelocity vectorAdd ((vectorNormalized _bulletVelocity) vectorMultiply (_muzzleVelocityShift * (_bulletSpeed / _muzzleVelocity))); + _bulletVelocity = _bulletVelocity vectorAdd ((vectorNormalized _bulletVelocity) vectorMultiply (_muzzleVelocityShift)); _bullet setVelocity _bulletVelocity; _muzzleVelocity = _muzzleVelocity + _muzzleVelocityShift; }; @@ -87,9 +69,7 @@ if (GVAR(ammoTemperatureEnabled)) then { _temperature = GET_TEMPERATURE_AT_HEIGHT((getPosASL _unit) select 2); _muzzleVelocityShift = [_ammo, _temperature] call FUNC(calculateAmmoTemperatureVelocityShift); if (_muzzleVelocityShift != 0) then { - _bulletVelocity = velocity _bullet; - _bulletSpeed = vectorMagnitude _bulletVelocity; - _bulletVelocity = _bulletVelocity vectorAdd ((vectorNormalized _bulletVelocity) vectorMultiply (_muzzleVelocityShift * (_bulletSpeed / _muzzleVelocity))); + _bulletVelocity = _bulletVelocity vectorAdd ((vectorNormalized _bulletVelocity) vectorMultiply (_muzzleVelocityShift)); _bullet setVelocity _bulletVelocity; _muzzleVelocity = _muzzleVelocity + _muzzleVelocityShift; }; From 6799903e4b1e18dadb2b73c28af39a7e78472d46 Mon Sep 17 00:00:00 2001 From: Glowbal Date: Sat, 25 Apr 2015 12:45:04 +0200 Subject: [PATCH 111/256] Also display different color for advanced --- .../functions/fnc_modifyMedicalAction.sqf | 29 ++++++++++++------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/addons/medical/functions/fnc_modifyMedicalAction.sqf b/addons/medical/functions/fnc_modifyMedicalAction.sqf index c7deb07c09..66398a2590 100644 --- a/addons/medical/functions/fnc_modifyMedicalAction.sqf +++ b/addons/medical/functions/fnc_modifyMedicalAction.sqf @@ -17,17 +17,24 @@ #include "script_component.hpp" -// Quit for the advanced medical system -if (GVAR(level) >= 2) exitWith {}; - EXPLODE_4_PVT(_this,_target,_player,_selectionN,_actionData); +if (GVAR(level) < 2) exitwith { + private ["_pointDamage"]; + _pointDamage = _target getHitPointDamage (["HitHead", "HitBody", "HitLeftArm", "HitRightArm", "HitLeftLeg", "HitRightLeg"] select _selectionN); -private ["_pointDamage"]; -_pointDamage = _target getHitPointDamage (["HitHead", "HitBody", "HitLeftArm", "HitRightArm", "HitLeftLeg", "HitRightLeg"] select _selectionN); + if (_pointDamage >= 0.8) exitWith { + _actionData set [2, QUOTE(PATHTOF(UI\icons\medical_crossRed.paa))]; + }; + if (_pointDamage > 0) exitWith { + _actionData set [2, QUOTE(PATHTOF(UI\icons\medical_crossYellow.paa))]; + }; +}; -if (_pointDamage >= 0.8) exitWith { - _actionData set [2, QUOTE(PATHTOF(UI\icons\medical_crossRed.paa))]; -}; -if (_pointDamage > 0) exitWith { - _actionData set [2, QUOTE(PATHTOF(UI\icons\medical_crossYellow.paa))]; -}; +private ["_openWounds", "_amountOf"]; +_openWounds = _target getvariable [QGVAR(openWounds), []]; +{ + _amountOf = _x select 3; + if (_amountOf > 0 && {(_selectionN == (_x select 2))}) exitwith { + _actionData set [2, QUOTE(PATHTOF(UI\icons\medical_crossRed.paa))]; + }; +}foreach _openWounds; From c8badaec5d194f7683aa15f72de026f967eb88fc Mon Sep 17 00:00:00 2001 From: Glowbal Date: Sat, 25 Apr 2015 12:58:54 +0200 Subject: [PATCH 112/256] Adjusted medical doc based on Jaynus comments --- documentation/feature/medical-system.md | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/documentation/feature/medical-system.md b/documentation/feature/medical-system.md index 33a7c4c322..3d756b70c8 100644 --- a/documentation/feature/medical-system.md +++ b/documentation/feature/medical-system.md @@ -7,7 +7,7 @@ parent: wiki --- ## 1. Overview -ACE provide users with a more realistic medical system and comes in both a basic and advanced version. This page will detail the differences between both systems and what they do. It is split into two parts; basic and advanced. Both versions have overlapse but each have their unique characteristics. +ACE provide users with a more realistic medical system and comes in both a basic and advanced version. This page will detail the differences between both systems and what they do. It is split into two parts; basic and advanced. Both versions have overlap but each have their own unique characteristics. ## 2. Basic Medical @@ -20,12 +20,12 @@ The four main elements that basic medical introduces are: * unconsciousness * pain -All interactions in the medical system are done with the interaction menu. Non-medics can - by default - not perform all actions, and their actions take more time as when performed by trained medics. +All interactions in the medical system are done with the interaction menu. Non-medics can - by default - not perform all actions, and their actions take more time as when performed by trained medics. These actions are using epinephrine and blood IVs. ### How it works -When hit, units start to lose blood depending on the severity of their wounds. Once the level of blood falls below a certain treshold, the unit will fall unconscious and eventually die. Units will also fall unconscious when sustaining large amounts of damage at once. +When hit, units start to lose blood depending on the severity of their wounds. Once the level of blood falls below a certain threshold, the unit will fall unconscious and eventually die. Units will also fall unconscious when sustaining large amounts of damage at once. To stop the bleeding, the combat life saver needs to bandage every wounded limb. Unconscious units can be "woken up" with Epipens. Should a unit have lost a lot of blood, it might be necessary to replace the lost blood with a blood bag before being able to wake unconscious units up. @@ -34,7 +34,7 @@ Should a unit be in pain, materializing itself with a chromatic aberration scree ## 3. Advanced Medical The advanced medical system provides a more complex and detailed medical simulation and is based off the CSE/CMS medical system. It focuses on a more realistic model for injuries and treatment, thus resulting in a more important and prominent role for combat medics, and a bigger incentive to not get shot. -The system behind advanced medical is designed to attempt to mimic important parts of the human body, as well as react to any injuries sustained and treatments applied in a realistic manner. The available treatments and supplies in advanced medical are based of the Tactical Combat Casualty Care (TCCC) guidelines, which are the same guidelines used by real-life combat medics around the world. +The system behind advanced medical is designed to attempt to mimic important parts of the human body, as well as react to any injuries sustained and treatments applied in a realistic manner. The available treatments and supplies in advanced medical are based off the Tactical Combat Casualty Care (TCCC) guidelines, which are the same guidelines used by real-life combat medics around the world. Besides the 4 elements introduced by basic medical, advanced introduces the following: @@ -53,19 +53,18 @@ Same as with basic, when hit an injury is sustained. Different though is that th In order to stop the bleeding, all injuries on every bodypart requires treatment. This is done by either applying a tourniquet to legs or arms as a temporarly solution, or by using bandages to stop the bleeding as a more permament fix. ##### Vitals -While a unit is bleeding however, the blood volume decreases which will result in a change of vitals. Depending on the factors such as current blood volume, the blood loss rate, medication used, the blood pressure will start to drop. To counter this drop, also based upon the previously mentioned factors and others, the heart rate will adjust accordingly to attempt to keep blood pressure at safe levels. This means that for any patient it is required to keep an eye on the vitals. This is done through the interacction system by selecting check pulse or blood pressure on either the arms or head. +While a unit is bleeding however, the blood volume decreases which will result in a change of vitals. Depending on the factors such as current blood volume, the blood loss rate, medication used, the blood pressure will start to drop. To counter this drop, also based upon the previously mentioned factors and others, the heart rate will adjust accordingly to attempt to keep blood pressure at safe levels. This means that for any patient it is required to keep an eye on the vitals. This is done through the interaction system by selecting check pulse or blood pressure on either the arms or head. ##### Medication To stabalize the vitals and to counter for example pain, a player/medic can use medication. Advanced medical has 3 different medications available: -* Morphine * Atropine +* Morphine * Epinephrine +Atropine is a vagolytic and anticholinergic drug which in low dosages reduces heart rate but in high dosages increases it, countering effects of organophosphate poisoning (in NBC scenarios; anticholinesterase poisoning) and symptomatic bradycardia (in post-ROSC care and resuscitative medicine). + Morphine is used to alleviate large amounts of pain. Has an effect similar to Heroin due to its opiate properties. Must only ever be given once, and only when bleeding has been reduced to a minimum. Morphine must never be given to a casualty with a low heart rate, as it can stop the heart. Epinephrine is used to increase heart rate and blood pressure and alleviate unconsciousness. Epinephrine is a synthetic form of Adrenaline, which is naturally produced in the body. It can also be applied to counter-act the effects of Atropine. Be careful though, as it may only be given once. _Epinephrine must never be given to a casualty with a high heart rate or blood pressure._ - -Atropine is a vagolytic and anticholinergic drug which in low dosages reduces heart rate but in high dosages increases it, countering effects of organophosphate poisoning (in NBC scenarios; anticholinesterase poisoning) and symptomatic bradycardia (in post-ROSC care and resuscitative medicine). - From d8eee168aa1f49959e6d0939343e92d52b615197 Mon Sep 17 00:00:00 2001 From: ulteq Date: Sat, 25 Apr 2015 12:59:26 +0200 Subject: [PATCH 113/256] Improved onlyActiveForLocalPlayers abort condition check: *Fixed alwaysSimulateForSnipers abort condition --- .../functions/fnc_handleFired.sqf | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/addons/advanced_ballistics/functions/fnc_handleFired.sqf b/addons/advanced_ballistics/functions/fnc_handleFired.sqf index 6d8324355d..3741254267 100644 --- a/addons/advanced_ballistics/functions/fnc_handleFired.sqf +++ b/addons/advanced_ballistics/functions/fnc_handleFired.sqf @@ -35,18 +35,21 @@ if (!([_unit] call EFUNC(common,isPlayer))) exitWith {}; if (underwater _unit) exitWith {}; if (!(_ammo isKindOf "BulletBase")) exitWith {}; if (_unit distance ACE_player > GVAR(simulationRadius)) exitWith {}; -if (GVAR(onlyActiveForLocalPlayers) && _unit != ACE_player) then { _abort = true; }; +if (GVAR(onlyActiveForLocalPlayers) && !(local _unit)) then { + if (GVAR(alwaysSimulateForSnipers)) then { + // The shooter is non local + if (currentWeapon _unit == primaryWeapon _unit && count primaryWeaponItems _unit > 2) then { + _opticsName = (primaryWeaponItems _unit) select 2; + _opticType = getNumber(configFile >> "cfgWeapons" >> _opticsName >> "ItemInfo" >> "opticType"); + _abort = _opticType != 2; // We only abort if the non local shooter is not a sniper + }; + } else { + _abort = true; + }; +}; //if (!GVAR(vehicleGunnerEnabled) && !(_unit isKindOf "Man")) then { _abort = true; }; // TODO: We currently do not have firedEHs on vehicles if (GVAR(disabledInFullAutoMode) && getNumber(configFile >> "cfgWeapons" >> _weapon >> _mode >> "autoFire") == 1) then { _abort = true; }; -if (_abort && alwaysSimulateForSnipers) then { - // The shooter is non local - if (currentWeapon _unit == primaryWeapon _unit && count primaryWeaponItems _unit > 2) then { - _opticsName = (primaryWeaponItems _unit) select 2; - _opticType = getNumber(configFile >> "cfgWeapons" >> _opticsName >> "ItemInfo" >> "opticType"); - _abort = _opticType != 2; // We only abort if the non local shooter is not a sniper - }; -}; if (_abort || !(GVAR(extensionAvailable))) exitWith { [_bullet, getNumber(configFile >> "cfgAmmo" >> _ammo >> "airFriction")] call EFUNC(winddeflection,updateTrajectoryPFH); }; From b053a641d9ca58d4e048b7a458253ad7dd03db99 Mon Sep 17 00:00:00 2001 From: ulteq Date: Sat, 25 Apr 2015 13:15:54 +0200 Subject: [PATCH 114/256] Improved bullet trace visibility check --- .../functions/fnc_handleFired.sqf | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/addons/advanced_ballistics/functions/fnc_handleFired.sqf b/addons/advanced_ballistics/functions/fnc_handleFired.sqf index 3741254267..8d8d77a812 100644 --- a/addons/advanced_ballistics/functions/fnc_handleFired.sqf +++ b/addons/advanced_ballistics/functions/fnc_handleFired.sqf @@ -79,10 +79,16 @@ if (GVAR(ammoTemperatureEnabled)) then { }; _bulletTraceVisible = false; -if (GVAR(bulletTraceEnabled) && cameraView == "GUNNER" && currentWeapon ACE_player == primaryWeapon ACE_player && count primaryWeaponItems ACE_player > 2) then { - _opticsName = (primaryWeaponItems ACE_player) select 2; - _opticType = getNumber(configFile >> "cfgWeapons" >> _opticsName >> "ItemInfo" >> "opticType"); - _bulletTraceVisible = (_opticType == 2 || currentWeapon ACE_player in ["ACE_Vector", "Binocular", "Rangefinder", "Laserdesignator"]); +if (GVAR(bulletTraceEnabled) && cameraView == "GUNNER") then { + if (currentWeapon ACE_player in ["ACE_Vector", "Binocular", "Rangefinder", "Laserdesignator"]) then { + _bulletTraceVisible = true; + } else { + if (currentWeapon ACE_player == primaryWeapon ACE_player && count primaryWeaponItems ACE_player > 2) then { + _opticsName = (primaryWeaponItems ACE_player) select 2; + _opticType = getNumber(configFile >> "cfgWeapons" >> _opticsName >> "ItemInfo" >> "opticType"); + _bulletTraceVisible = _opticType == 2; + }; + }; }; _caliber = getNumber(configFile >> "cfgAmmo" >> _ammo >> "ACE_caliber"); From 73b17efa2f147991633789dea22edee8153ece27 Mon Sep 17 00:00:00 2001 From: commy2 Date: Sat, 25 Apr 2015 13:28:21 +0200 Subject: [PATCH 115/256] cache ctrlSetStructedText parseText --- addons/interact_menu/XEH_clientInit.sqf | 2 ++ addons/interact_menu/XEH_preInit.sqf | 1 + .../functions/fnc_ctrlSetParsedTextCached.sqf | 13 +++++++++++++ addons/interact_menu/functions/fnc_renderIcon.sqf | 6 +++--- 4 files changed, 19 insertions(+), 3 deletions(-) create mode 100644 addons/interact_menu/functions/fnc_ctrlSetParsedTextCached.sqf diff --git a/addons/interact_menu/XEH_clientInit.sqf b/addons/interact_menu/XEH_clientInit.sqf index b8a8fc899b..faabf773f4 100644 --- a/addons/interact_menu/XEH_clientInit.sqf +++ b/addons/interact_menu/XEH_clientInit.sqf @@ -3,6 +3,8 @@ if (!hasInterface) exitWith {}; +GVAR(ParsedTextCached) = []; + //Setup text/shadow color matrix [] call FUNC(setupTextColors); ["SettingChanged", { diff --git a/addons/interact_menu/XEH_preInit.sqf b/addons/interact_menu/XEH_preInit.sqf index 65d5dd4305..7e86646b79 100644 --- a/addons/interact_menu/XEH_preInit.sqf +++ b/addons/interact_menu/XEH_preInit.sqf @@ -8,6 +8,7 @@ PREP(compileMenu); PREP(compileMenuSelfAction); PREP(collectActiveActionTree); PREP(createAction); +PREP(ctrlSetParsedTextCached); PREP(findActionNode); PREP(handlePlayerChanged); PREP(isSubPath); diff --git a/addons/interact_menu/functions/fnc_ctrlSetParsedTextCached.sqf b/addons/interact_menu/functions/fnc_ctrlSetParsedTextCached.sqf new file mode 100644 index 0000000000..16ff9311de --- /dev/null +++ b/addons/interact_menu/functions/fnc_ctrlSetParsedTextCached.sqf @@ -0,0 +1,13 @@ +// by commy2 +#include "script_component.hpp" + +private ["_ctrl", "_index", "_text"]; + +_ctrl = _this select 0; +_index = _this select 1; +_text = _this select 2; + +if (_text != ARR_SELECT(GVAR(ParsedTextCached),_index,"")) then { + GVAR(ParsedTextCached) set [_index, _text]; + _ctrl ctrlSetStructuredText parseText _text; +}; diff --git a/addons/interact_menu/functions/fnc_renderIcon.sqf b/addons/interact_menu/functions/fnc_renderIcon.sqf index 9107b6d998..ccfe67ac77 100644 --- a/addons/interact_menu/functions/fnc_renderIcon.sqf +++ b/addons/interact_menu/functions/fnc_renderIcon.sqf @@ -33,12 +33,12 @@ if(_icon == "") then { }; _text = if (GVAR(UseListMenu)) then { - format ["%5", _icon, _iconColor, _textColor, _shadowColor, _text] + format ["%5", _icon, _iconColor, _textColor, _shadowColor, _text] } else { - format ["
%5", _icon, _iconColor, _textColor, _shadowColor, "ace_breakLine" callExtension _text]; + format ["
%5", _icon, _iconColor, _textColor, _shadowColor, "ace_breakLine" callExtension _text]; }; -_ctrl ctrlSetStructuredText (parseText _text); +[_ctrl, GVAR(iconCount), _text] call FUNC(ctrlSetParsedTextCached); _text = if (GVAR(UseListMenu)) then { _ctrl ctrlSetPosition [(_sPos select 0)-(0.0095*SafeZoneW), (_sPos select 1)-(0.0095*SafeZoneW), 0.20*SafeZoneW, 0.035*SafeZoneW]; } else { From eca7657ffacddc3c2fddc3b72019be5e08452781 Mon Sep 17 00:00:00 2001 From: ulteq Date: Sat, 25 Apr 2015 13:34:47 +0200 Subject: [PATCH 116/256] Removed a bunch of obsolete code: *Obsolete, as of: https://github.com/acemod/ACE3/commit/6fdaf4c400c9e66c944afe0d291f56cb96d72d71 --- addons/advanced_ballistics/XEH_postInit.sqf | 10 --- .../functions/fnc_handleFired.sqf | 28 ++++--- .../functions/fnc_calculate_range_card.sqf | 2 +- .../functions/fnc_calculate_solution.sqf | 78 +++++++++---------- .../fnc_calculate_target_solution.sqf | 2 +- addons/atragmx/functions/fnc_parse_input.sqf | 4 +- addons/atragmx/functions/fnc_update_gun.sqf | 2 +- .../functions/fnc_update_gun_ammo_data.sqf | 2 +- 8 files changed, 54 insertions(+), 74 deletions(-) diff --git a/addons/advanced_ballistics/XEH_postInit.sqf b/addons/advanced_ballistics/XEH_postInit.sqf index 8d9f47764c..3f0e101d3b 100644 --- a/addons/advanced_ballistics/XEH_postInit.sqf +++ b/addons/advanced_ballistics/XEH_postInit.sqf @@ -20,16 +20,6 @@ GVAR(WindInfoStart) = time; GVAR(Protractor) = false; GVAR(ProtractorStart) = time; -// Those are only used in the pure sqf version (extension free PFH) -GVAR(SimulationPrecision) = 2; -GVAR(WindEnabled) = true; -GVAR(SpinDriftEnabled) = true; -GVAR(CoriolisEnabled) = true; -GVAR(EoetvoesEnabled) = true; -GVAR(AdvancedAirDragEnabled) = true; -GVAR(TransonicRegionEnabled) = true; -GVAR(AtmosphericDensitySimulationEnabled) = true; - GVAR(currentGrid) = 0; GVAR(INIT_MESSAGE_ENABLED) = false; diff --git a/addons/advanced_ballistics/functions/fnc_handleFired.sqf b/addons/advanced_ballistics/functions/fnc_handleFired.sqf index 8d8d77a812..c21ac6af1f 100644 --- a/addons/advanced_ballistics/functions/fnc_handleFired.sqf +++ b/addons/advanced_ballistics/functions/fnc_handleFired.sqf @@ -120,23 +120,21 @@ _dragModel = 1; _ballisticCoefficients = []; _velocityBoundaries = []; _atmosphereModel = "ICAO"; -if (GVAR(AdvancedAirDragEnabled)) then { - if (isNumber(configFile >> "cfgAmmo" >> _ammo >> "ACE_dragModel")) then { - _dragModel = getNumber(configFile >> "cfgAmmo" >> _ammo >> "ACE_dragModel"); - if (!(_dragModel in [1, 2, 5, 6, 7, 8])) then { - _dragModel = 1; - }; - }; - if (isArray(configFile >> "cfgAmmo" >> _ammo >> "ACE_ballisticCoefficients")) then { - _ballisticCoefficients = getArray(configFile >> "cfgAmmo" >> _ammo >> "ACE_ballisticCoefficients"); - }; - if (isArray(configFile >> "cfgAmmo" >> _ammo >> "ACE_velocityBoundaries")) then { - _velocityBoundaries = getArray(configFile >> "cfgAmmo" >> _ammo >> "ACE_velocityBoundaries"); - }; - if (isText(configFile >> "cfgAmmo" >> _ammo >> "ACE_standardAtmosphere")) then { - _atmosphereModel = getText(configFile >> "cfgAmmo" >> _ammo >> "ACE_standardAtmosphere"); +if (isNumber(configFile >> "cfgAmmo" >> _ammo >> "ACE_dragModel")) then { + _dragModel = getNumber(configFile >> "cfgAmmo" >> _ammo >> "ACE_dragModel"); + if (!(_dragModel in [1, 2, 5, 6, 7, 8])) then { + _dragModel = 1; }; }; +if (isArray(configFile >> "cfgAmmo" >> _ammo >> "ACE_ballisticCoefficients")) then { + _ballisticCoefficients = getArray(configFile >> "cfgAmmo" >> _ammo >> "ACE_ballisticCoefficients"); +}; +if (isArray(configFile >> "cfgAmmo" >> _ammo >> "ACE_velocityBoundaries")) then { + _velocityBoundaries = getArray(configFile >> "cfgAmmo" >> _ammo >> "ACE_velocityBoundaries"); +}; +if (isText(configFile >> "cfgAmmo" >> _ammo >> "ACE_standardAtmosphere")) then { + _atmosphereModel = getText(configFile >> "cfgAmmo" >> _ammo >> "ACE_standardAtmosphere"); +}; GVAR(currentbulletID) = (GVAR(currentbulletID) + 1) % 10000; diff --git a/addons/atragmx/functions/fnc_calculate_range_card.sqf b/addons/atragmx/functions/fnc_calculate_range_card.sqf index f3f27f7d3e..cfaf7441f8 100644 --- a/addons/atragmx/functions/fnc_calculate_range_card.sqf +++ b/addons/atragmx/functions/fnc_calculate_range_card.sqf @@ -54,7 +54,7 @@ if (!GVAR(atmosphereModeTBH)) then { private ["_bulletLength", "_stabilityFactor"]; _bulletLength = 1.8; _stabilityFactor = 1.5; -if ((missionNamespace getVariable [QEGVAR(advanced_ballistics,enabled), false]) && (missionNamespace getVariable [QEGVAR(advanced_ballistics,SpinDriftEnabled), false])) then { +if (missionNamespace getVariable [QEGVAR(advanced_ballistics,enabled), false]) then { if (_bulletDiameter > 0 && _bulletLength > 0 && _bulletMass > 0 && _barrelTwist > 0) then { _stabilityFactor = [_bulletDiameter / 10 / 2.54, _bulletLength, _bulletMass * 15.4323584, _barrelTwist / 2.54, _muzzleVelocity, _temperature, _barometricPressure] call EFUNC(advanced_ballistics,calculateStabilityFactor); }; diff --git a/addons/atragmx/functions/fnc_calculate_solution.sqf b/addons/atragmx/functions/fnc_calculate_solution.sqf index f90b299ce9..2049398a9c 100644 --- a/addons/atragmx/functions/fnc_calculate_solution.sqf +++ b/addons/atragmx/functions/fnc_calculate_solution.sqf @@ -106,7 +106,7 @@ private ["_wind1", "_wind2", "_windDrift"]; _wind1 = [cos(270 - _windDirection * 30) * _windSpeed1, sin(270 - _windDirection * 30) * _windSpeed1, 0]; _wind2 = [cos(270 - _windDirection * 30) * _windSpeed2, sin(270 - _windDirection * 30) * _windSpeed2, 0]; _windDrift = 0; -if ((missionNamespace getVariable [QEGVAR(advanced_ballistics,enabled), false]) && (missionNamespace getVariable [QEGVAR(advanced_ballistics,AdvancedAirDragEnabled), false])) then { +if (missionNamespace getVariable [QEGVAR(advanced_ballistics,enabled), false]) then { _bc = [_bc, _temperature, _barometricPressure, _relativeHumidity, _atmosphereModel] call EFUNC(advanced_ballistics,calculateAtmosphericCorrection); }; @@ -117,7 +117,7 @@ _speedAverage = 0; private ["_eoetvoesMultiplier"]; _eoetvoesMultiplier = 0; -if (missionNamespace getVariable [QEGVAR(advanced_ballistics,EoetvoesEnabled), false]) then { +if (missionNamespace getVariable [QEGVAR(advanced_ballistics,enabled), false]) then { _eoetvoesMultiplier = 2 * (0.0000729 * _muzzleVelocity / -9.80665) * cos(_latitude) * sin(_directionOfFire); }; @@ -142,14 +142,12 @@ while {_TOF < 15 && (_bulletPos select 1) < _targetRange} do { _trueSpeed = vectorMagnitude _trueVelocity; if (missionNamespace getVariable [QEGVAR(advanced_ballistics,enabled), false]) then { - if (missionNamespace getVariable [QEGVAR(advanced_ballistics,AdvancedAirDragEnabled), false]) then { - _drag = if (missionNamespace getVariable [QEGVAR(advanced_ballistics,extensionAvailable), false]) then { - parseNumber(("ace_advanced_ballistics" callExtension format["retard:%1:%2:%3", _dragModel, _bc, _trueSpeed])) - } else { - ([_dragModel, _bc, _trueSpeed] call EFUNC(advanced_ballistics,calculateRetardation)) - }; - _bulletAccel = (vectorNormalized _trueVelocity) vectorMultiply (-1 * _drag); + _drag = if (missionNamespace getVariable [QEGVAR(advanced_ballistics,extensionAvailable), false]) then { + parseNumber(("ace_advanced_ballistics" callExtension format["retard:%1:%2:%3", _dragModel, _bc, _trueSpeed])) + } else { + ([_dragModel, _bc, _trueSpeed] call EFUNC(advanced_ballistics,calculateRetardation)) }; + _bulletAccel = (vectorNormalized _trueVelocity) vectorMultiply (-1 * _drag); } else { _bulletAccel = _trueVelocity vectorMultiply (_trueSpeed * _airFriction); }; @@ -177,23 +175,20 @@ while {_TOF < 15 && (_bulletPos select 1) < _targetRange} do { _kineticEnergy = _kineticEnergy * 0.737562149; if ((missionNamespace getVariable [QEGVAR(advanced_ballistics,enabled), false]) && (_bulletPos select 1) > 0) then { - if (missionNamespace getVariable [QEGVAR(advanced_ballistics,CoriolisEnabled), false]) then { - _horizontalDeflection = 0.0000729 * ((_bulletPos select 1) ^ 2) * sin(_latitude) / _speedAverage; - _horizontalCoriolis = - atan(_horizontalDeflection / (_bulletPos select 1)); - _windage1 = _windage1 + _horizontalCoriolis; - _windage2 = _windage2 + _horizontalCoriolis; - }; - if (missionNamespace getVariable [QEGVAR(advanced_ballistics,EoetvoesEnabled), false]) then { - _verticalDeflection = (_bulletPos select 2) * _eoetvoesMultiplier; - _verticalCoriolis = - atan(_verticalDeflection / (_bulletPos select 1)); - _elevation = _elevation + _verticalCoriolis; - }; - if (missionNamespace getVariable [QEGVAR(advanced_ballistics,SpinDriftEnabled), false]) then { - _spinDeflection = _twistDirection * 0.0254 * 1.25 * (_stabilityFactor + 1.2) * _TOF ^ 1.83; - _spinDrift = - atan(_spinDeflection / (_bulletPos select 1)); - _windage1 = _windage1 + _spinDrift; - _windage2 = _windage2 + _spinDrift; - }; + // Coriolis + _horizontalDeflection = 0.0000729 * ((_bulletPos select 1) ^ 2) * sin(_latitude) / _speedAverage; + _horizontalCoriolis = - atan(_horizontalDeflection / (_bulletPos select 1)); + _windage1 = _windage1 + _horizontalCoriolis; + _windage2 = _windage2 + _horizontalCoriolis; + // Eoetvoes + _verticalDeflection = (_bulletPos select 2) * _eoetvoesMultiplier; + _verticalCoriolis = - atan(_verticalDeflection / (_bulletPos select 1)); + _elevation = _elevation + _verticalCoriolis; + // Spin drift + _spinDeflection = _twistDirection * 0.0254 * 1.25 * (_stabilityFactor + 1.2) * _TOF ^ 1.83; + _spinDrift = - atan(_spinDeflection / (_bulletPos select 1)); + _windage1 = _windage1 + _spinDrift; + _windage2 = _windage2 + _spinDrift; }; GVAR(rangeCardData) set [_n, [_range, _elevation * 60, [_windage1 * 60, _windage2 * 60], _lead, _TOF, _bulletSpeed, _kineticEnergy]]; @@ -217,23 +212,20 @@ _kineticEnergy = 0.5 * (_bulletMass / 1000 * (_bulletSpeed ^ 2)); _kineticEnergy = _kineticEnergy * 0.737562149; if ((missionNamespace getVariable [QEGVAR(advanced_ballistics,enabled), false]) && (_bulletPos select 1) > 0) then { - if (missionNamespace getVariable [QEGVAR(advanced_ballistics,CoriolisEnabled), false]) then { - _horizontalDeflection = 0.0000729 * ((_bulletPos select 1) ^ 2) * sin(_latitude) / _speedAverage; - _horizontalCoriolis = - atan(_horizontalDeflection / (_bulletPos select 1)); - _windage1 = _windage1 + _horizontalCoriolis; - _windage2 = _windage2 + _horizontalCoriolis; - }; - if (missionNamespace getVariable [QEGVAR(advanced_ballistics,EoetvoesEnabled), false]) then { - _verticalDeflection = (_bulletPos select 2) * _eoetvoesMultiplier; - _verticalCoriolis = - atan(_verticalDeflection / (_bulletPos select 1)); - _elevation = _elevation + _verticalCoriolis; - }; - if (missionNamespace getVariable [QEGVAR(advanced_ballistics,SpinDriftEnabled), false]) then { - _spinDeflection = _twistDirection * 0.0254 * 1.25 * (_stabilityFactor + 1.2) * _TOF ^ 1.83; - _spinDrift = - atan(_spinDeflection / (_bulletPos select 1)); - _windage1 = _windage1 + _spinDrift; - _windage2 = _windage2 + _spinDrift; - }; + // Coriolis + _horizontalDeflection = 0.0000729 * ((_bulletPos select 1) ^ 2) * sin(_latitude) / _speedAverage; + _horizontalCoriolis = - atan(_horizontalDeflection / (_bulletPos select 1)); + _windage1 = _windage1 + _horizontalCoriolis; + _windage2 = _windage2 + _horizontalCoriolis; + // Eoetvoes + _verticalDeflection = (_bulletPos select 2) * _eoetvoesMultiplier; + _verticalCoriolis = - atan(_verticalDeflection / (_bulletPos select 1)); + _elevation = _elevation + _verticalCoriolis; + // Spin drift + _spinDeflection = _twistDirection * 0.0254 * 1.25 * (_stabilityFactor + 1.2) * _TOF ^ 1.83; + _spinDrift = - atan(_spinDeflection / (_bulletPos select 1)); + _windage1 = _windage1 + _spinDrift; + _windage2 = _windage2 + _spinDrift; }; [_elevation * 60, [_windage1 * 60, _windage2 * 60], _lead, _TOF, _bulletSpeed, _kineticEnergy, _verticalCoriolis * 60, _horizontalCoriolis * 60, _spinDrift * 60] diff --git a/addons/atragmx/functions/fnc_calculate_target_solution.sqf b/addons/atragmx/functions/fnc_calculate_target_solution.sqf index 641551fca1..677c4bb793 100644 --- a/addons/atragmx/functions/fnc_calculate_target_solution.sqf +++ b/addons/atragmx/functions/fnc_calculate_target_solution.sqf @@ -54,7 +54,7 @@ if (!GVAR(atmosphereModeTBH)) then { private ["_bulletLength", "_stabilityFactor"]; _bulletLength = 1.8; _stabilityFactor = 1.5; -if ((missionNamespace getVariable [QEGVAR(advanced_ballistics,enabled), false]) && (missionNamespace getVariable [QEGVAR(advanced_ballistics,SpinDriftEnabled), false])) then { +if (missionNamespace getVariable [QEGVAR(advanced_ballistics,enabled), false]) then { if (_bulletDiameter > 0 && _bulletLength > 0 && _bulletMass > 0 && _barrelTwist > 0) then { _stabilityFactor = [_bulletDiameter / 10 / 2.54, _bulletLength, _bulletMass * 15.4323584, _barrelTwist / 2.54, _muzzleVelocity, _temperature, _barometricPressure] call EFUNC(advanced_ballistics,calculateStabilityFactor); }; diff --git a/addons/atragmx/functions/fnc_parse_input.sqf b/addons/atragmx/functions/fnc_parse_input.sqf index 504c45fb28..2534c2a319 100644 --- a/addons/atragmx/functions/fnc_parse_input.sqf +++ b/addons/atragmx/functions/fnc_parse_input.sqf @@ -60,7 +60,7 @@ private ["_boreHeight", "_bulletMass", "_bulletDiameter", "_airFriction", "_rifl _boreHeight = parseNumber(ctrlText 120000); _bulletMass = parseNumber(ctrlText 120010); _bulletDiameter = parseNumber(ctrlText 120020); -if ((missionNamespace getVariable [QEGVAR(advanced_ballistics,enabled), false]) && (missionNamespace getVariable [QEGVAR(advanced_ballistics,AdvancedAirDragEnabled), false])) then { +if (missionNamespace getVariable [QEGVAR(advanced_ballistics,enabled), false]) then { _airFriction = 0.1 max parseNumber(ctrlText 120030) min 2; } else { _airFriction = parseNumber(ctrlText 120030) / -1000; @@ -87,7 +87,7 @@ GVAR(workingMemory) set [5, _boreHeight]; GVAR(workingMemory) set [12, _bulletMass]; GVAR(workingMemory) set [13, _bulletDiameter]; GVAR(workingMemory) set [14, _rifleTwist]; -if ((missionNamespace getVariable [QEGVAR(advanced_ballistics,enabled), false]) && (missionNamespace getVariable [QEGVAR(advanced_ballistics,AdvancedAirDragEnabled), false])) then { +if (missionNamespace getVariable [QEGVAR(advanced_ballistics,enabled), false]) then { GVAR(workingMemory) set [15, _airFriction]; } else { GVAR(workingMemory) set [4, _airFriction]; diff --git a/addons/atragmx/functions/fnc_update_gun.sqf b/addons/atragmx/functions/fnc_update_gun.sqf index 4ca7338e57..aa1f8c44bf 100644 --- a/addons/atragmx/functions/fnc_update_gun.sqf +++ b/addons/atragmx/functions/fnc_update_gun.sqf @@ -26,7 +26,7 @@ if (GVAR(currentUnit) != 2) then { } else { ctrlSetText [110, Str(Round(GVAR(workingMemory) select 12))]; }; -if ((missionNamespace getVariable [QEGVAR(advanced_ballistics,enabled), false]) && (missionNamespace getVariable [QEGVAR(advanced_ballistics,AdvancedAirDragEnabled), false])) then { +if (missionNamespace getVariable [QEGVAR(advanced_ballistics,enabled), false]) then { ctrlSetText [120, Str(Round((GVAR(workingMemory) select 15) * 1000) / 1000)]; } else { ctrlSetText [120, Str(Round((GVAR(workingMemory) select 4) * -1000 * 1000) / 1000)]; diff --git a/addons/atragmx/functions/fnc_update_gun_ammo_data.sqf b/addons/atragmx/functions/fnc_update_gun_ammo_data.sqf index 4ccae287e7..b11b214500 100644 --- a/addons/atragmx/functions/fnc_update_gun_ammo_data.sqf +++ b/addons/atragmx/functions/fnc_update_gun_ammo_data.sqf @@ -32,7 +32,7 @@ if (GVAR(currentUnit) != 2) then { } else { ctrlSetText [120020, Str(Round((GVAR(workingMemory) select 13) * 1000) / 1000)]; }; -if ((missionNamespace getVariable [QEGVAR(advanced_ballistics,enabled), false]) && (missionNamespace getVariable [QEGVAR(advanced_ballistics,AdvancedAirDragEnabled), false])) then { +if (missionNamespace getVariable [QEGVAR(advanced_ballistics,enabled), false]) then { ctrlSetText [120030, Str(Round((GVAR(workingMemory) select 15) * 1000) / 1000)]; } else { ctrlSetText [120030, Str(Round((GVAR(workingMemory) select 4) * -1000 * 1000) / 1000)]; From b7763331d6379f0bea32decee6ce49f34090127d Mon Sep 17 00:00:00 2001 From: commy2 Date: Sat, 25 Apr 2015 14:34:09 +0200 Subject: [PATCH 117/256] the index --- addons/interact_menu/functions/fnc_renderIcon.sqf | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/addons/interact_menu/functions/fnc_renderIcon.sqf b/addons/interact_menu/functions/fnc_renderIcon.sqf index ccfe67ac77..443328fbc9 100644 --- a/addons/interact_menu/functions/fnc_renderIcon.sqf +++ b/addons/interact_menu/functions/fnc_renderIcon.sqf @@ -27,7 +27,6 @@ if(GVAR(iconCount) > (count GVAR(iconCtrls))-1) then { GVAR(iconCtrls) pushBack ((findDisplay _displayNum) ctrlCreate ["RscStructuredText", 54021+GVAR(iconCount)]); }; _ctrl = GVAR(iconCtrls) select GVAR(iconCount); -GVAR(iconCount) = GVAR(iconCount) + 1; if(_icon == "") then { _icon = DEFAULT_ICON; }; @@ -38,8 +37,11 @@ _text = if (GVAR(UseListMenu)) then { format ["
%5", _icon, _iconColor, _textColor, _shadowColor, "ace_breakLine" callExtension _text]; }; +//_ctrl ctrlSetStructuredText parseText _text; [_ctrl, GVAR(iconCount), _text] call FUNC(ctrlSetParsedTextCached); -_text = if (GVAR(UseListMenu)) then { +GVAR(iconCount) = GVAR(iconCount) + 1; + +if (GVAR(UseListMenu)) then { _ctrl ctrlSetPosition [(_sPos select 0)-(0.0095*SafeZoneW), (_sPos select 1)-(0.0095*SafeZoneW), 0.20*SafeZoneW, 0.035*SafeZoneW]; } else { _ctrl ctrlSetPosition [(_sPos select 0)-(0.0750*SafeZoneW), (_sPos select 1)-(0.0095*SafeZoneW), 0.15*SafeZoneW, 0.100*SafeZoneW]; From f3d360d3d88c5aeaa7bf51b1fb11d1953a5ab4f3 Mon Sep 17 00:00:00 2001 From: Grzegorz Date: Sat, 25 Apr 2015 14:36:42 +0200 Subject: [PATCH 118/256] Update stringtable.xml --- addons/ballistics/stringtable.xml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/addons/ballistics/stringtable.xml b/addons/ballistics/stringtable.xml index 87e412bce1..48394f898f 100644 --- a/addons/ballistics/stringtable.xml +++ b/addons/ballistics/stringtable.xml @@ -1,5 +1,4 @@  - @@ -1081,4 +1080,4 @@ Калибр: 12,7x99 мм (A-MAX)<br />Патронов: 5
- \ No newline at end of file + From a7e1d1c1c8a011330dfbbaf76e50366c959b1ee8 Mon Sep 17 00:00:00 2001 From: Grzegorz Date: Sat, 25 Apr 2015 14:36:53 +0200 Subject: [PATCH 119/256] Update stringtable.xml --- addons/interact_menu/stringtable.xml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/addons/interact_menu/stringtable.xml b/addons/interact_menu/stringtable.xml index 984acd92be..1335432f28 100644 --- a/addons/interact_menu/stringtable.xml +++ b/addons/interact_menu/stringtable.xml @@ -1,5 +1,4 @@  - @@ -90,4 +89,4 @@ Interakcja - Cień min - \ No newline at end of file + From 3427bc5bbb9a9dd9bfbb65f06a08be99af4bbf67 Mon Sep 17 00:00:00 2001 From: Grzegorz Date: Sat, 25 Apr 2015 14:37:03 +0200 Subject: [PATCH 120/256] Update stringtable.xml --- addons/realisticnames/stringtable.xml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/addons/realisticnames/stringtable.xml b/addons/realisticnames/stringtable.xml index 507fd9b5a2..fd63a74c41 100644 --- a/addons/realisticnames/stringtable.xml +++ b/addons/realisticnames/stringtable.xml @@ -1,5 +1,4 @@  - @@ -1693,4 +1692,4 @@ LWMMG .338 (piaskowy) - \ No newline at end of file + From fc49814689556120588c207050a672f85a726d66 Mon Sep 17 00:00:00 2001 From: esteldunedain Date: Sat, 25 Apr 2015 10:52:52 -0300 Subject: [PATCH 121/256] Use FUNC(ctrlSetParsedTextCached) for the selector too. Eliminates glitches --- addons/interact_menu/functions/fnc_renderSelector.sqf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/addons/interact_menu/functions/fnc_renderSelector.sqf b/addons/interact_menu/functions/fnc_renderSelector.sqf index 5afcf63cc6..7d5a3359f7 100644 --- a/addons/interact_menu/functions/fnc_renderSelector.sqf +++ b/addons/interact_menu/functions/fnc_renderSelector.sqf @@ -22,14 +22,14 @@ if(GVAR(iconCount) > (count GVAR(iconCtrls))-1) then { private "_ctrl"; _ctrl = GVAR(iconCtrls) select GVAR(iconCount); -GVAR(iconCount) = GVAR(iconCount) + 1; if (GVAR(UseListMenu)) then { - _ctrl ctrlSetStructuredText (parseText format ["", _icon]); + [_ctrl, GVAR(iconCount), format ["", _icon]] call FUNC(ctrlSetParsedTextCached); _ctrl ctrlSetPosition [(_sPos select 0)-(0.014*SafeZoneW), (_sPos select 1)-(0.014*SafeZoneW), 0.05*SafeZoneW, 0.035*SafeZoneW]; } else { - _ctrl ctrlSetStructuredText (parseText format ["", _icon]); + [_ctrl, GVAR(iconCount), format ["", _icon]] call FUNC(ctrlSetParsedTextCached); _ctrl ctrlSetPosition [(_sPos select 0)-(0.050*SafeZoneW), (_sPos select 1)-(0.014*SafeZoneW), 0.1*SafeZoneW, 0.035*SafeZoneW]; }; //_ctrl ctrlSetBackgroundColor [1, 0, 0, 0.1]; +GVAR(iconCount) = GVAR(iconCount) + 1; _ctrl ctrlCommit 0; From 4a8153b75713ee51b6030338b5a1f3558b81bb12 Mon Sep 17 00:00:00 2001 From: ulteq Date: Sat, 25 Apr 2015 17:19:43 +0200 Subject: [PATCH 122/256] Replaced EXPLODE_4_PVT macro inside of ABs PFH --- addons/advanced_ballistics/functions/fnc_handleFired.sqf | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/addons/advanced_ballistics/functions/fnc_handleFired.sqf b/addons/advanced_ballistics/functions/fnc_handleFired.sqf index c21ac6af1f..b6aae2c740 100644 --- a/addons/advanced_ballistics/functions/fnc_handleFired.sqf +++ b/addons/advanced_ballistics/functions/fnc_handleFired.sqf @@ -141,8 +141,12 @@ GVAR(currentbulletID) = (GVAR(currentbulletID) + 1) % 10000; "ace_advanced_ballistics" callExtension format["new:%1:%2:%3:%4:%5:%6:%7:%8:%9:%10:%11:%12:%13:%14:%15:%16:%17:%18", GVAR(currentbulletID), _airFriction, _ballisticCoefficients, _velocityBoundaries, _atmosphereModel, _dragModel, _stabilityFactor, _twistDirection, _muzzleVelocity, _transonicStabilityCoef, getPosASL _bullet, EGVAR(weather,Latitude), EGVAR(weather,currentTemperature), EGVAR(weather,Altitude), EGVAR(weather,currentHumidity), overcast, floor(time), time - floor(time)]; [{ - private ["_index", "_bullet", "_caliber", "_bulletTraceVisible", "_bulletVelocity", "_bulletPosition"]; - EXPLODE_4_PVT(_this select 0,_bullet,_caliber,_bulletTraceVisible,_index); + private ["_args", "_index", "_bullet", "_caliber", "_bulletTraceVisible", "_bulletVelocity", "_bulletPosition"]; + _args = _this select 0; + _bullet = _args select 0; + _caliber = _args select 1; + _bulletTraceVisible = _args select 2; + _index = _args select 3; _bulletVelocity = velocity _bullet; _bulletPosition = getPosASL _bullet; From f0477b8e955260dd2e357e25cb9251eb81de6361 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Sat, 25 Apr 2015 10:25:04 -0500 Subject: [PATCH 123/256] Make PARAM/Explode_X faster skips the IS_ARRAY check normaly found in EXPLODE_1_SYS --- addons/main/script_macros.hpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/addons/main/script_macros.hpp b/addons/main/script_macros.hpp index fce9ec526a..d4b6739918 100644 --- a/addons/main/script_macros.hpp +++ b/addons/main/script_macros.hpp @@ -1,6 +1,11 @@ #include "\x\cba\addons\main\script_macros_common.hpp" #include "\x\cba\addons\xeh\script_xeh.hpp" +//Faster Array Unwraping (skips the IS_ARRAY check normaly found in EXPLODE_1_SYS) +#undef EXPLODE_2_SYS +#define EXPLODE_1_SYS_FAST(ARRAY,A) A =(ARRAY) select 0 +#define EXPLODE_2_SYS(ARRAY,A,B) EXPLODE_1_SYS_FAST(ARRAY,A); B = (ARRAY) select 1 + // Default versioning level #define DEFAULT_VERSIONING_LEVEL 2 From 71df545d528cdd85e61e32f0a59e027a8e76dae7 Mon Sep 17 00:00:00 2001 From: ulteq Date: Sat, 25 Apr 2015 18:30:58 +0200 Subject: [PATCH 124/256] Improved the Mk248 muzzle velocity shift table --- addons/ballistics/CfgAmmo.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/ballistics/CfgAmmo.hpp b/addons/ballistics/CfgAmmo.hpp index c2d6f0147a..7a9a0c2acb 100644 --- a/addons/ballistics/CfgAmmo.hpp +++ b/addons/ballistics/CfgAmmo.hpp @@ -337,7 +337,7 @@ class CfgAmmo { ACE_caliber=0.308; ACE_bulletLength=1.353; ACE_bulletMass=190; - ACE_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + ACE_ammoTempMuzzleVelocityShifts[]={-5.3, -5.1, -4.6, -4.2, -3.4, -2.6, -1.4, -0.3, 1.4, 3.0, 5.2}; ACE_ballisticCoefficients[]={0.268}; ACE_velocityBoundaries[]={}; ACE_standardAtmosphere="ICAO"; @@ -353,7 +353,7 @@ class CfgAmmo { ACE_caliber=0.308; ACE_bulletLength=1.489; ACE_bulletMass=220; - ACE_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + ACE_ammoTempMuzzleVelocityShifts[]={-5.3, -5.1, -4.6, -4.2, -3.4, -2.6, -1.4, -0.3, 1.4, 3.0, 5.2}; ACE_ballisticCoefficients[]={0.310}; ACE_velocityBoundaries[]={}; ACE_standardAtmosphere="ICAO"; From 78eba4e703648b88dc7c5511cd888e894d558c56 Mon Sep 17 00:00:00 2001 From: ulteq Date: Sat, 25 Apr 2015 18:56:55 +0200 Subject: [PATCH 125/256] Moved weather randomization back to postInit --- addons/weather/XEH_postInit.sqf | 5 +++++ addons/weather/XEH_postServerInit.sqf | 5 ----- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/addons/weather/XEH_postInit.sqf b/addons/weather/XEH_postInit.sqf index 05cd29c093..1427ff59b1 100644 --- a/addons/weather/XEH_postInit.sqf +++ b/addons/weather/XEH_postInit.sqf @@ -1,5 +1,10 @@ #include "script_component.hpp" +// Randomization +GVAR(temperatureShift) = 3 - random 6; +GVAR(badWeatherShift) = (random 1) ^ 2 * 10; +GVAR(humidityShift) = (5 - random 10) / 100; + GVAR(wind_period_start_time) = time; GVAR(rain_period_start_time) = time; diff --git a/addons/weather/XEH_postServerInit.sqf b/addons/weather/XEH_postServerInit.sqf index 67d536b996..076b538806 100644 --- a/addons/weather/XEH_postServerInit.sqf +++ b/addons/weather/XEH_postServerInit.sqf @@ -1,10 +1,5 @@ #include "script_component.hpp" -// Randomization -GVAR(temperatureShift) = 3 - random 6; -GVAR(badWeatherShift) = (random 1) ^ 2 * 10; -GVAR(humidityShift) = (5 - random 10) / 100; - // Rain GVAR(rain_next_period) = -1; GVAR(rain_period_count) = 0; From 94400f2b16a7797534d1fdae0ef5fcf4cb2b0908 Mon Sep 17 00:00:00 2001 From: Felix Wiegand Date: Sat, 25 Apr 2015 19:56:42 +0200 Subject: [PATCH 126/256] Change year in LICENSE --- LICENSE | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LICENSE b/LICENSE index 0f013a10b9..b76b90e8fb 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ -Copyright (C) 2014 Felix "KoffeinFlummi" Wiegand +Copyright (C) 2015 Felix "KoffeinFlummi" Wiegand This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by From e873aa19436def16c636920253e8429b8b325c8b Mon Sep 17 00:00:00 2001 From: ulteq Date: Sat, 25 Apr 2015 20:29:27 +0200 Subject: [PATCH 127/256] Removed unused config entries --- optionals/compat_rh_m4/CfgWeapons.hpp | 30 +-------------------------- 1 file changed, 1 insertion(+), 29 deletions(-) diff --git a/optionals/compat_rh_m4/CfgWeapons.hpp b/optionals/compat_rh_m4/CfgWeapons.hpp index 132859f778..df99cf6779 100644 --- a/optionals/compat_rh_m4/CfgWeapons.hpp +++ b/optionals/compat_rh_m4/CfgWeapons.hpp @@ -1,35 +1,7 @@ -class Mode_SemiAuto; -class Mode_Burst; -class Mode_FullAuto; -class SlotInfo; -class MuzzleSlot; -class CowsSlot; -class PointerSlot; -class UnderBarrelSlot; -class asdg_SlotInfo; -class asdg_FrontSideRail; -class asdg_OpticRail; -class asdg_OpticRail1913; -class asdg_OpticRail1913_short; -class asdg_MuzzleSlot_556; -class asdg_MuzzleSlot_762; -class asdg_MuzzleSlot_9MM; -class asdg_UnderSlot; class CfgWeapons { - class Rifle; - class UGL_F; - class Rifle_Base_F: Rifle - { - }; - class ItemCore; - class ItemInfo; - class InventoryItem_Base_F; - class InventoryMuzzleItem_Base_F; - class InventoryOpticsItem_Base_F; - class InventoryFlashLightItem_Base_F; - class Zasleh2; + class Rifle_Base_F; class RH_ar10: Rifle_Base_F { ACE_barrelTwist=11.25; From 8c8d02334535da6c1331183b043e916944535206 Mon Sep 17 00:00:00 2001 From: ulteq Date: Sat, 25 Apr 2015 20:29:45 +0200 Subject: [PATCH 128/256] Fixed compat_rh_m4 module component name --- optionals/compat_rh_m4/script_component.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/optionals/compat_rh_m4/script_component.hpp b/optionals/compat_rh_m4/script_component.hpp index 4ab887e889..167c926dd7 100644 --- a/optionals/compat_rh_m4/script_component.hpp +++ b/optionals/compat_rh_m4/script_component.hpp @@ -1,4 +1,4 @@ -#define COMPONENT rh_m4_comp +#define COMPONENT RH_m4_cfg_comp #include "\z\ace\addons\main\script_mod.hpp" From bccf07cafbda72a4b8d32298badfc392aba82c70 Mon Sep 17 00:00:00 2001 From: ulteq Date: Sat, 25 Apr 2015 20:30:03 +0200 Subject: [PATCH 129/256] Fixes: https://github.com/acemod/ACE3/issues/855 --- optionals/compat_rh_m4/CfgWeapons.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/optionals/compat_rh_m4/CfgWeapons.hpp b/optionals/compat_rh_m4/CfgWeapons.hpp index df99cf6779..69536e9302 100644 --- a/optionals/compat_rh_m4/CfgWeapons.hpp +++ b/optionals/compat_rh_m4/CfgWeapons.hpp @@ -77,7 +77,7 @@ class CfgWeapons ACE_barrelTwist=7; ACE_barrelLength=20; }; - class RH_M16A4 : Rifle_Base_F + class RH_M16A4 : RH_M4_ris { ACE_barrelTwist=7; ACE_barrelLength=20; From ca6a5595574d59d3543c2777ff12474c9ac7637a Mon Sep 17 00:00:00 2001 From: ulteq Date: Sat, 25 Apr 2015 21:18:09 +0200 Subject: [PATCH 130/256] Fixed a typo --- addons/interact_menu/functions/fnc_ctrlSetParsedTextCached.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/interact_menu/functions/fnc_ctrlSetParsedTextCached.sqf b/addons/interact_menu/functions/fnc_ctrlSetParsedTextCached.sqf index 16ff9311de..c68f233b9b 100644 --- a/addons/interact_menu/functions/fnc_ctrlSetParsedTextCached.sqf +++ b/addons/interact_menu/functions/fnc_ctrlSetParsedTextCached.sqf @@ -7,7 +7,7 @@ _ctrl = _this select 0; _index = _this select 1; _text = _this select 2; -if (_text != ARR_SELECT(GVAR(ParsedTextCached),_index,"")) then { +if (_text != Str(ARR_SELECT(GVAR(ParsedTextCached),_index,""))) then { GVAR(ParsedTextCached) set [_index, _text]; _ctrl ctrlSetStructuredText parseText _text; }; From 11d86248a760f938d56b8d164c3d2f128a7ae106 Mon Sep 17 00:00:00 2001 From: Glowbal Date: Sat, 25 Apr 2015 22:20:28 +0200 Subject: [PATCH 131/256] Reorganised module and settings #809 --- addons/medical/ACE_Settings.hpp | 4 + addons/medical/CfgVehicles.hpp | 155 +++++++++--------- addons/medical/XEH_preInit.sqf | 3 +- addons/medical/functions/fnc_handleDamage.sqf | 2 +- ... => fnc_moduleAdvancedMedicalSettings.sqf} | 11 +- .../functions/fnc_moduleMedicalSettings.sqf | 8 +- .../functions/fnc_moduleReviveSettings.sqf | 27 +++ addons/medical/functions/fnc_setDead.sqf | 2 +- 8 files changed, 123 insertions(+), 89 deletions(-) rename addons/medical/functions/{fnc_moduleTreatmentConfiguration.sqf => fnc_moduleAdvancedMedicalSettings.sqf} (64%) create mode 100644 addons/medical/functions/fnc_moduleReviveSettings.sqf diff --git a/addons/medical/ACE_Settings.hpp b/addons/medical/ACE_Settings.hpp index e7f60a14e8..26fa87e706 100644 --- a/addons/medical/ACE_Settings.hpp +++ b/addons/medical/ACE_Settings.hpp @@ -59,6 +59,10 @@ class ACE_Settings { typeName = "BOOL"; value = 0; }; + class GVAR(enableRevive) { + typeName = "BOOL"; + value = 0; + }; class GVAR(maxReviveTime) { typeName = "SCALAR"; value = 120; diff --git a/addons/medical/CfgVehicles.hpp b/addons/medical/CfgVehicles.hpp index 2b1f7c9468..2de90e77d0 100644 --- a/addons/medical/CfgVehicles.hpp +++ b/addons/medical/CfgVehicles.hpp @@ -37,47 +37,38 @@ class CfgVehicles { }; }; }; - class enableFor { - displayName = "Enabled for"; - description = "Select what units the medical system will be enabled for (Adv only)"; + class medicSetting { + displayName = "Medics setting"; + description = "What is the level of detail prefered for medics?"; typeName = "NUMBER"; class values { - class playableUnits { - name = "Players only."; + class disable { + name = "Disable medics"; value = 0; + }; + class normal { + name = "Normal"; + value = 1; default = 1; }; - class playableUnitsAndAI { - name = "Players and AI"; - value = 1; + class full { + name = "Advanced"; + value = 2; }; }; }; - // TODO Disabled until the features are implemented - /*class enableAirway { - displayName = "Enable Airway"; - description = "Enable Advanced medical Airway (Adv only)"; - typeName = "BOOL"; - defaultValue = 0; - }; - class enableFractures { - displayName = "Enable Fractures"; - description = "Enable Advanced medical Fractures (Adv only)"; - typeName = "BOOL"; - defaultValue = 0; - };*/ - class enableAdvancedWounds { - displayName = "Enable Advanced wounds"; - description = "Allow reopening of bandaged wounds? (Adv only)"; - typeName = "BOOL"; - defaultValue = 0; - }; - class enableVehicleCrashes { - displayName = "Vehicle Crashes"; - description = "Do units take damage from a vehicle crash?"; + class allowLitterCreation { + displayName = "Enable Litter"; + description = "Enable litter being created upon treatment"; typeName = "BOOL"; defaultValue = 1; }; + class litterCleanUpDelay { + displayName = "Life time of litter objects"; + description = "How long should litter objects stay? In seconds. -1 is forever."; + typeName = "NUMBER"; + defaultValue = 1800; + }; class enableScreams { displayName = "Enable Screams"; description = "Enable screaming by injuried units"; @@ -141,80 +132,58 @@ class CfgVehicles { }; }; - class ACE_moduleTreatmentSettings: ACE_Module { + class ACE_moduleAdvancedMedicalSettings: ACE_Module { scope = 2; - displayName = "Treatment Settings [ACE]"; + displayName = "Advanced Medical Settings [ACE]"; icon = QUOTE(PATHTOF(UI\Icon_Module_Medical_ca.paa)); category = "ACE_medical"; - function = QUOTE(FUNC(moduleTreatmentConfiguration)); + function = QUOTE(FUNC(moduleAdvancedMedicalSettings)); functionPriority = 10; isGlobal = 2; isTriggerActivated = 0; isDisposable = 0; author = "$STR_ACE_Common_ACETeam"; class Arguments { - class medicSetting { - displayName = "Medics setting"; - description = "What is the level of detail prefered for medics?"; + class enableFor { + displayName = "Enabled for"; + description = "Select what units the advanced medical system will be enabled for"; typeName = "NUMBER"; class values { - class disable { - name = "Disable medics"; + class playableUnits { + name = "Players only."; value = 0; - }; - class normal { - name = "Normal"; - value = 1; default = 1; }; - class full { - name = "Advanced"; - value = 2; + class playableUnitsAndAI { + name = "Players and AI"; + value = 1; }; }; }; - class maxReviveTime { - displayName = "Max Revive time"; - description = "Max amount of seconds a unit can spend in revive state"; - typeName = "NUMBER"; - defaultValue = 120; + class enableAdvancedWounds { + displayName = "Enable Advanced wounds"; + description = "Allow reopening of bandaged wounds?"; + typeName = "BOOL"; + defaultValue = 0; }; - class amountOfReviveLives { - displayName = "Max Revive lives"; - description = "Max amount of lives a unit. 0 or -1 is disabled."; - typeName = "NUMBER"; - defaultValue = -1; - }; - class enableOverdosing { - displayName = "Enable Overdosing"; - description = "Enable overdosing of medications"; + class enableVehicleCrashes { + displayName = "Vehicle Crashes"; + description = "Do units take damage from a vehicle crash?"; typeName = "BOOL"; defaultValue = 1; }; - class allowLitterCreation { - displayName = "Enable Litter"; - description = "Enable litter being created upon treatment"; - typeName = "BOOL"; - defaultValue = 1; - }; - class litterCleanUpDelay { - displayName = "Life time of litter objects"; - description = "How long should litter objects stay? In seconds. -1 is forever."; - typeName = "NUMBER"; - defaultValue = 1800; - }; class medicSetting_PAK { - displayName = "Allow PAK (Adv)"; + displayName = "Allow PAK"; description = "Who can use the PAK for full heal?"; typeName = "NUMBER"; class values { class anyone { name = "Anyone"; value = 0; }; class Medic { name = "Medics only"; value = 1; default = 1; }; - class Special { name = "Doctors only (Adv)"; value = 2; }; + class Special { name = "Doctors only"; value = 2; }; }; }; class consumeItem_PAK { - displayName = "Remove PAK on use (Adv)"; + displayName = "Remove PAK on use"; description = "Should PAK be removed on usage?"; typeName = "NUMBER"; class values { @@ -223,7 +192,7 @@ class CfgVehicles { }; }; class useLocation_PAK { - displayName = "Locations PAK (Adv)"; + displayName = "Locations PAK"; description = "Where can the personal aid kit be used?"; typeName = "NUMBER"; class values { @@ -254,6 +223,42 @@ class CfgVehicles { }; }; + + class ACE_moduleReviveSettings: ACE_Module { + scope = 2; + displayName = "Revive Settings [ACE]"; + icon = QUOTE(PATHTOF(UI\Icon_Module_Medical_ca.paa)); + category = "ACE_medical"; + function = QUOTE(DFUNC(moduleReviveSettings)); + functionPriority = 1; + isGlobal = 1; + isTriggerActivated = 0; + author = "$STR_ACE_Common_ACETeam"; + class Arguments { + class enableRevive { + displayName = "Enable Revive"; + description = "Enable a basic revive system"; + typeName = "BOOL"; + defaultValue = 0; + }; + class maxReviveTime { + displayName = "Max Revive time"; + description = "Max amount of seconds a unit can spend in revive state"; + typeName = "NUMBER"; + defaultValue = 120; + }; + class amountOfReviveLives { + displayName = "Max Revive lives"; + description = "Max amount of lives a unit. 0 or -1 is disabled."; + typeName = "NUMBER"; + defaultValue = -1; + }; + }; + class ModuleDescription { + description = "Provides a medical system for both players and AI."; + sync[] = {}; + }; + }; class ACE_moduleAssignMedicRoles: Module_F { scope = 2; displayName = "Set Medic Class [ACE]"; diff --git a/addons/medical/XEH_preInit.sqf b/addons/medical/XEH_preInit.sqf index b6deca4033..051f7da266 100644 --- a/addons/medical/XEH_preInit.sqf +++ b/addons/medical/XEH_preInit.sqf @@ -92,10 +92,11 @@ PREP(displayPatientInformation); PREP(displayTriageCard); PREP(dropDownTriageCard); PREP(moduleMedicalSettings); +PREP(moduleAdvancedMedicalSettings); +PREP(moduleReviveSettings); PREP(moduleAssignMedicRoles); PREP(moduleAssignMedicalVehicle); PREP(moduleAssignMedicalFacility); -PREP(moduleTreatmentConfiguration); PREP(copyDeadBody); PREP(requestWoundSync); PREP(unconsciousPFH); diff --git a/addons/medical/functions/fnc_handleDamage.sqf b/addons/medical/functions/fnc_handleDamage.sqf index c13818bbcd..956b4f95aa 100644 --- a/addons/medical/functions/fnc_handleDamage.sqf +++ b/addons/medical/functions/fnc_handleDamage.sqf @@ -76,7 +76,7 @@ if (GVAR(level) >= 2) then { }; [_unit] call FUNC(addToInjuredCollection); -if ((_unit getVariable [QGVAR(preventInstaDeath), GVAR(preventInstaDeath)]) && {_damageReturn >= 0.9} && {_selection in ["", "head", "body"]}) exitWith { +if (((_unit getVariable [QGVAR(enableRevive), GVAR(enableRevive)])) && {_damageReturn >= 0.9} && {_selection in ["", "head", "body"]}) exitWith { if (vehicle _unit != _unit and {damage _vehicle >= 1}) then { // @todo // [_unit] call FUNC(unload); diff --git a/addons/medical/functions/fnc_moduleTreatmentConfiguration.sqf b/addons/medical/functions/fnc_moduleAdvancedMedicalSettings.sqf similarity index 64% rename from addons/medical/functions/fnc_moduleTreatmentConfiguration.sqf rename to addons/medical/functions/fnc_moduleAdvancedMedicalSettings.sqf index 5d88fa0f0a..cf884e0ab0 100644 --- a/addons/medical/functions/fnc_moduleTreatmentConfiguration.sqf +++ b/addons/medical/functions/fnc_moduleAdvancedMedicalSettings.sqf @@ -22,12 +22,11 @@ _activated = _this select 2; if !(_activated) exitWith {}; -[_logic, QGVAR(medicSetting), "medicSetting"] call EFUNC(common,readSettingFromModule); -[_logic, QGVAR(maxReviveTime), "maxReviveTime"] call EFUNC(common,readSettingFromModule); -[_logic, QGVAR(amountOfReviveLives), "amountOfReviveLives"] call EFUNC(common,readSettingFromModule); -[_logic, QGVAR(enableOverdosing), "enableOverdosing"] call EFUNC(common,readSettingFromModule); -[_logic, QGVAR(allowLitterCreation), "allowLitterCreation"] call EFUNC(common,readSettingFromModule); -[_logic, QGVAR(litterCleanUpDelay), "litterCleanUpDelay"] call EFUNC(common,readSettingFromModule); +[_logic, QGVAR(enableFor), "enableFor"] call EFUNC(common,readSettingFromModule); +[_logic, QGVAR(enableAdvancedWounds), "enableAdvancedWounds"] call EFUNC(common,readSettingFromModule); +// TODO disabled until implemented +// [_logic, QGVAR(enableAirway), "enableAirway"] call EFUNC(common,readSettingFromModule); +// [_logic, QGVAR(enableFractures), "enableFractures"] 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); diff --git a/addons/medical/functions/fnc_moduleMedicalSettings.sqf b/addons/medical/functions/fnc_moduleMedicalSettings.sqf index 34dd063a4d..0d514aee27 100644 --- a/addons/medical/functions/fnc_moduleMedicalSettings.sqf +++ b/addons/medical/functions/fnc_moduleMedicalSettings.sqf @@ -23,11 +23,9 @@ _activated = _this select 2; if !(_activated) exitWith {}; [_logic, QGVAR(level), "level"] call EFUNC(common,readSettingFromModule); -[_logic, QGVAR(enableFor), "enableFor"] call EFUNC(common,readSettingFromModule); -// TODO disabled until implemented -// [_logic, QGVAR(enableAirway), "enableAirway"] call EFUNC(common,readSettingFromModule); -// [_logic, QGVAR(enableFractures), "enableFractures"] call EFUNC(common,readSettingFromModule); -[_logic, QGVAR(enableAdvancedWounds), "enableAdvancedWounds"] call EFUNC(common,readSettingFromModule); +[_logic, QGVAR(medicSetting), "medicSetting"] call EFUNC(common,readSettingFromModule); +[_logic, QGVAR(allowLitterCreation), "allowLitterCreation"] call EFUNC(common,readSettingFromModule); +[_logic, QGVAR(litterCleanUpDelay), "litterCleanUpDelay"] call EFUNC(common,readSettingFromModule); [_logic, QGVAR(enableScreams), "enableScreams"] call EFUNC(common,readSettingFromModule); [_logic, QGVAR(playerDamageThreshold), "playerDamageThreshold"] call EFUNC(common,readSettingFromModule); [_logic, QGVAR(AIDamageThreshold), "AIDamageThreshold"] call EFUNC(common,readSettingFromModule); diff --git a/addons/medical/functions/fnc_moduleReviveSettings.sqf b/addons/medical/functions/fnc_moduleReviveSettings.sqf new file mode 100644 index 0000000000..c96b1eb67c --- /dev/null +++ b/addons/medical/functions/fnc_moduleReviveSettings.sqf @@ -0,0 +1,27 @@ +/* + * Author: Glowbal + * Module for adjusting the medical revive settings + * + * Arguments: + * 0: The module logic + * 1: units + * 2: activated + * + * Return Value: + * None + * + * Public: No + */ + +#include "script_component.hpp" + +private ["_logic", "_units", "_activated"]; +_logic = _this select 0; +_units = _this select 1; +_activated = _this select 2; + +if !(_activated) exitWith {}; + +[_logic, QGVAR(maxReviveTime), "maxReviveTime"] call EFUNC(common,readSettingFromModule); +[_logic, QGVAR(amountOfReviveLives), "amountOfReviveLives"] call EFUNC(common,readSettingFromModule); +[_logic, QGVAR(enableRevive), "enableRevive"] call EFUNC(common,readSettingFromModule); diff --git a/addons/medical/functions/fnc_setDead.sqf b/addons/medical/functions/fnc_setDead.sqf index 334a2d8b97..428d6674ab 100644 --- a/addons/medical/functions/fnc_setDead.sqf +++ b/addons/medical/functions/fnc_setDead.sqf @@ -26,7 +26,7 @@ if (!local _unit) exitwith { false; }; -if ((_unit getVariable [QGVAR(preventInstaDeath), GVAR(preventInstaDeath)]) && !_force) exitwith { +if ((_unit getVariable [QGVAR(enableRevive), GVAR(enableRevive)]) && !_force) exitwith { if (_unit getvariable [QGVAR(inReviveState), false]) exitwith { if (GVAR(amountOfReviveLives) > 0) then { _lifesLeft = _unit getvariable[QGVAR(amountOfReviveLives), GVAR(amountOfReviveLives)]; From 898d6c74a82c9d6aa3a1f3f85b640e90580af953 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Sat, 25 Apr 2015 16:02:59 -0500 Subject: [PATCH 132/256] #854 - No canInteractWith check for Ace_MainAction Was preventing subactions from showing. --- addons/interact_menu/functions/fnc_compileMenu.sqf | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/addons/interact_menu/functions/fnc_compileMenu.sqf b/addons/interact_menu/functions/fnc_compileMenu.sqf index 7983c493e1..bd2023a90d 100644 --- a/addons/interact_menu/functions/fnc_compileMenu.sqf +++ b/addons/interact_menu/functions/fnc_compileMenu.sqf @@ -53,7 +53,9 @@ _recurseFnc = { if (_condition == "") then {_condition = "true"}; // Add canInteract (including exceptions) and canInteractWith to condition - _condition = _condition + format [QUOTE( && {[ARR_3(ACE_player, _target, %1)] call EFUNC(common,canInteractWith)} ), getArray (_entryCfg >> "exceptions")]; + if ((configName _entryCfg) != "ACE_MainActions") then { + _condition = _condition + format [QUOTE( && {[ARR_3(ACE_player, _target, %1)] call EFUNC(common,canInteractWith)} ), getArray (_entryCfg >> "exceptions")]; + }; _insertChildren = compile (getText (_entryCfg >> "insertChildren")); _modifierFunction = compile (getText (_entryCfg >> "modifierFunction")); From ca980379c8dfb6e41b50221fd4e6ca519bb42593 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Sat, 25 Apr 2015 16:03:21 -0500 Subject: [PATCH 133/256] Minor captive cleanup --- addons/captives/CfgVehicles.hpp | 9 ++------- addons/captives/functions/fnc_doEscortCaptive.sqf | 10 ++++------ 2 files changed, 6 insertions(+), 13 deletions(-) diff --git a/addons/captives/CfgVehicles.hpp b/addons/captives/CfgVehicles.hpp index 10b2d0285f..1e2eb3f201 100644 --- a/addons/captives/CfgVehicles.hpp +++ b/addons/captives/CfgVehicles.hpp @@ -101,25 +101,20 @@ class CfgVehicles { #define MACRO_LOADUNLOADCAPTIVE \ class ACE_Actions { \ class ACE_MainActions { \ - selection = ""; \ - class ACE_LoadCaptive { \ + class GVAR(LoadCaptive) { \ displayName = "$STR_ACE_Captives_LoadCaptive"; \ distance = 4; \ condition = QUOTE([ARR_3(_player, objNull, _target)] call FUNC(canLoadCaptive)); \ statement = QUOTE([ARR_3(_player, objNull, _target)] call FUNC(doLoadCaptive)); \ exceptions[] = {"isNotEscorting"}; \ - showDisabled = 0; \ priority = 1.2; \ - hotkey = "L"; \ }; \ - class ACE_UnloadCaptive { \ + class GVAR(UnloadCaptive) { \ displayName = "$STR_ACE_Captives_UnloadCaptive"; \ distance = 4; \ condition = QUOTE([ARR_2(_player, _target)] call FUNC(canUnloadCaptive)); \ statement = QUOTE([ARR_2(_player, _target)] call FUNC(doUnloadCaptive)); \ - showDisabled = 0; \ priority = 1.2; \ - hotkey = "C"; \ }; \ }; \ }; diff --git a/addons/captives/functions/fnc_doEscortCaptive.sqf b/addons/captives/functions/fnc_doEscortCaptive.sqf index 08f44a1437..b8758065d8 100644 --- a/addons/captives/functions/fnc_doEscortCaptive.sqf +++ b/addons/captives/functions/fnc_doEscortCaptive.sqf @@ -22,7 +22,7 @@ PARAMS_3(_unit,_target,_state); if (_state) then { if (_unit getVariable [QGVAR(isEscorting), false]) exitWith {}; - [_unit, _target] call EFUNC(common,claim); + [_unit, _target, false] call EFUNC(common,claim); _unit setVariable [QGVAR(isEscorting), true, true]; _target attachTo [_unit, [0, 1, 0]]; @@ -34,8 +34,7 @@ if (_state) then { {[(_this select 0), ((_this select 0) getVariable [QGVAR(escortedUnit), objNull]), false] call FUNC(doEscortCaptive);}, nil, 20, false, true, "", QUOTE(!isNull (GETVAR(_target,QGVAR(escortedUnit),objNull)))]; - private "_escortFnc"; - _escortFnc = { + [{ EXPLODE_3_PVT((_this select 0),_unit,_target,_actionID); if (_unit getVariable [QGVAR(isEscorting), false]) then { if (!alive _target || {!alive _unit} || {!canStand _target} || {!canStand _unit} || {_target getVariable ["ACE_isUnconscious", false]} || {_unit getVariable ["ACE_isUnconscious", false]} || {!isNull (attachedTo _unit)}) then { @@ -45,13 +44,12 @@ if (_state) then { if (!(_unit getVariable [QGVAR(isEscorting), false])) then { [(_this select 1)] call cba_fnc_removePerFrameHandler; - [objNull, _target] call EFUNC(common,claim); + [objNull, _target, false] call EFUNC(common,claim); detach _target; _unit removeAction _actionID; _unit setVariable [QGVAR(escortedUnit), objNull, true]; }; - }; - [_escortFnc, 0, [_unit, _target, _actionID]] call CBA_fnc_addPerFrameHandler; + }, 0, [_unit, _target, _actionID]] call CBA_fnc_addPerFrameHandler; } else { _unit setVariable [QGVAR(isEscorting), false, true]; From 772ac6056bcb7e0a3c6a62ebdc1b92b7d3dcfbe7 Mon Sep 17 00:00:00 2001 From: KoffeinFlummi Date: Sat, 25 Apr 2015 23:21:52 +0200 Subject: [PATCH 134/256] Move german README to documentation/ --- README_DE.md => documentation/README_DE.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename README_DE.md => documentation/README_DE.md (100%) diff --git a/README_DE.md b/documentation/README_DE.md similarity index 100% rename from README_DE.md rename to documentation/README_DE.md From 986d2ee1686ec82678f43c0567f4c29b50d61b4b Mon Sep 17 00:00:00 2001 From: commy2 Date: Sat, 25 Apr 2015 23:41:20 +0200 Subject: [PATCH 135/256] fix c&p error --- addons/recoil/functions/script_component.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/recoil/functions/script_component.hpp b/addons/recoil/functions/script_component.hpp index d66ac7aec3..24cb1ba776 100644 --- a/addons/recoil/functions/script_component.hpp +++ b/addons/recoil/functions/script_component.hpp @@ -1 +1 @@ -#include "\z\ace\addons\overpressure\script_component.hpp" \ No newline at end of file +#include "\z\ace\addons\recoil\script_component.hpp" \ No newline at end of file From 9ac662ea7cebeff18ef1a442095b120486dd71ea Mon Sep 17 00:00:00 2001 From: KoffeinFlummi Date: Sun, 26 Apr 2015 00:01:48 +0200 Subject: [PATCH 136/256] Lowercase curator ammo frag entries --- addons/frag/CfgAmmo.hpp | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/addons/frag/CfgAmmo.hpp b/addons/frag/CfgAmmo.hpp index 14b1a1ab69..3cfb27dfaf 100644 --- a/addons/frag/CfgAmmo.hpp +++ b/addons/frag/CfgAmmo.hpp @@ -100,20 +100,20 @@ class CfgAmmo { // curator ammo entries class Sh_82mm_AMOS; class ModuleOrdnanceMortar_F_Ammo: Sh_82mm_AMOS { - ACE_FRAG_CLASSES[] = {"ACE_frag_medium", "ACE_frag_medium_HD"}; - ACE_FRAG_METAL = 800; - ACE_FRAG_CHARGE = 4200; - ACE_FRAG_GURNEY_C = 2320; - ACE_FRAG_GURNEY_K = 1/2; + GVAR(classes)[] = {"ACE_frag_medium", "ACE_frag_medium_HD"}; + GVAR(metal) = 800; + GVAR(charge) = 4200; + GVAR(gurney_c) = 2320; + GVAR(gurney_k) = 1/2; }; class Sh_155mm_AMOS; class ModuleOrdnanceHowitzer_F_ammo: Sh_155mm_AMOS { - ACE_FRAG_CLASSES[] = {"ACE_frag_large", "ACE_frag_large", "ACE_frag_large_HD", "ACE_frag_large", "ACE_frag_huge", "ACE_frag_huge_HD", "ACE_frag_huge"}; - ACE_FRAG_METAL = 1950; - ACE_FRAG_CHARGE = 15800; - ACE_FRAG_GURNEY_C = 2320; - ACE_FRAG_GURNEY_K = 1/2; + GVAR(classes)[] = {"ACE_frag_large", "ACE_frag_large", "ACE_frag_large_HD", "ACE_frag_large", "ACE_frag_huge", "ACE_frag_huge_HD", "ACE_frag_huge"}; + GVAR(metal) = 1950; + GVAR(charge) = 15800; + GVAR(gurney_c) = 2320; + GVAR(gurney_k) = 1/2; }; //class R_230mm_HE; From 4e6c6a46d7ac7e9085bc7f0ee1e9dd19997125a1 Mon Sep 17 00:00:00 2001 From: bux578 Date: Sun, 26 Apr 2015 07:51:13 +0200 Subject: [PATCH 137/256] add vector21 to getting started --- documentation/user/getting-started.md | 85 ++++++++++++++++++++++++--- 1 file changed, 77 insertions(+), 8 deletions(-) diff --git a/documentation/user/getting-started.md b/documentation/user/getting-started.md index 7f7d7ade2e..f224b44e3a 100644 --- a/documentation/user/getting-started.md +++ b/documentation/user/getting-started.md @@ -8,13 +8,82 @@ parent: wiki
Note:
-

This page is currently under construction. Please, come back later.

+

This page is currently under construction.

- +Downloaded ACE3 and have no idea where to start? This page serves as a document to help new players get started with things like the medical system, or how to adjust your scope. + +### Table of contents +1. [Vector 21](#vector-21) + +### Vector 21 +*Part of: ace_vector* + +ACE3 adds a realistic depiction of the Vector 21 rangefinder to the game. Unlike other rangefinders, it doesn't just magically show you the range to your target, but in exchange allows you to do alot of things with it that the other choices in Arma do not offer. The Vector's functions include, but are not limited to: + +- Distance to a target +- Azimuth to a target +- Horizontal and vertical distance to a target +- Distance between 2 targets +- Angle between 2 targets +- Switching between feet and meters +- Switching between degrees and mils +... + +The Vector is controlled with 2 keys: the azimuth key and the range key; Tab and R by default. First you bring it up like every other binocular in the game and then, while looking through it you can access all the different functions. + +The Vector 21 rangefinder has the following usage modes: + 1. Slope distance + 2. Azimuth + 3. Slope distance & Azimuth + 4. Horizontal distance and height difference + 5. Azimuth & Inclination + 6. Distance between two points + 7. Horizontal & vertical distance between two points + 8. Horizontal distance & azimuth between two points + 9. Fall of shot + +#### 1. Slope distance +Measuring Slope distance + +Press and hold the "Distance" key until the red pointing circle appears. Sight the circle on the object and release the key. + +#### 2. Azimuth +Measuring Azimuth + +Press and hold the "Azimuth" key until the red pointing circle appears. Sight the circle on the object and release the key. + +#### 3. Slope distance and Azimuth +Measuring Slope distance and Azimuth + +Press and hold both the "Distance" and "Azimuth" key until the red pointing circle appears. Sight the circle on the object and release both keys. + +#### 4. Horizontal distance and height difference +Measuring Horizontal distance and height difference + +Tap the "Distance" key once then press and hold it until the red pointing circle appears. Sight the circle on the object and release the key. + +#### 5. Azimuth and Inclination +Measuring Azimuth and Inclination + +Tap the "Azimuth" key once then press and hold it until the red pointing circle appears. Sight the circle on the object and release the key. + +#### 6. Distance between two points +Measuring Distance between two points + +Press and hold the "Distance" key until the red pointing circle appears. Sight the circle on the first object and tap the "Azimuth" key while further holding the "Distance" key. The first measurement is confirmed ("1-P" = first point). Sight the second object and release the "Distance" key. + +#### 7. Horizontal and vertical distance between two points +Measuring Horizontal and vertical distance between two points + +Tap the "Distance" key once then press and hold it until the red pointing circle appears. Sight the circle on the object and tap the "Azimuth" key once. The first measurement is confirmed ("1-P" = first point). Sight the second object and release the "Distance" key. + +#### 8. Horizontal distance and azimuth between two points +Measuring Horizontal distance and azimuth between two points + +Press and hold the "Azimuth" key until the red pointing circle appears. Sight the circle on the first object and tap the "Distance" key while further holding the "Azimuth" key. The first measurement is confirmed ("1-P" = first point). Sight the second object and release the "Azimuth" key. + +#### 9. Fall of shot +Measuring Fall of shot + +Tap the "Azimuth" key once then press and hold it until the red pointing circle appears. Sight the circle on the object and tap the "Distance" key while further holding the "Azimuth" key. The first measurement is confirmed ("1-P" = first point). Sight the Fall of shot and release the "Azimuth" key. The left digits display the left (`L`)/right (`r`) correction value in meter and the right digits display the longer (`A` = add)/shorter (`d` = drop) correction value in meter. If the "Distance" key is tapped the height correction values will be displayed (`UP` and `dn`). From 1c5c432392d340a8ce24efa8c74829deb3bf4b72 Mon Sep 17 00:00:00 2001 From: bux578 Date: Sun, 26 Apr 2015 08:00:16 +0200 Subject: [PATCH 138/256] fix vector list --- documentation/user/getting-started.md | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/documentation/user/getting-started.md b/documentation/user/getting-started.md index f224b44e3a..012f307445 100644 --- a/documentation/user/getting-started.md +++ b/documentation/user/getting-started.md @@ -33,15 +33,16 @@ ACE3 adds a realistic depiction of the Vector 21 rangefinder to the game. Unlike The Vector is controlled with 2 keys: the azimuth key and the range key; Tab and R by default. First you bring it up like every other binocular in the game and then, while looking through it you can access all the different functions. The Vector 21 rangefinder has the following usage modes: - 1. Slope distance - 2. Azimuth - 3. Slope distance & Azimuth - 4. Horizontal distance and height difference - 5. Azimuth & Inclination - 6. Distance between two points - 7. Horizontal & vertical distance between two points - 8. Horizontal distance & azimuth between two points - 9. Fall of shot + +1. Slope distance +2. Azimuth +3. Slope distance & Azimuth +4. Horizontal distance and height difference +5. Azimuth & Inclination +6. Distance between two points +7. Horizontal & vertical distance between two points +8. Horizontal distance & azimuth between two points +9. Fall of shot #### 1. Slope distance Measuring Slope distance From 523cb49ff158aa912296e8cc8f7a4a553e0ecfa6 Mon Sep 17 00:00:00 2001 From: VyMajoris Date: Sun, 26 Apr 2015 03:09:16 -0300 Subject: [PATCH 139/256] Added - Portuguese translation to lots of things. Also fixed a typo the english key for STR_ACE_microdagr_configure. --- addons/disposable/stringtable.xml | 72 +- addons/dragging/stringtable.xml | 91 +- addons/explosives/stringtable.xml | 10 +- addons/frag/stringtable.xml | 35 +- addons/grenades/stringtable.xml | 488 ++--- addons/interaction/stringtable.xml | 1326 ++++++------- addons/logistics_uavbattery/stringtable.xml | 150 +- addons/maptools/stringtable.xml | 289 +-- addons/markers/stringtable.xml | 23 +- addons/medical/stringtable.xml | 1925 ++++++++++--------- addons/microdagr/stringtable.xml | 232 ++- addons/movement/stringtable.xml | 86 +- addons/nametags/stringtable.xml | 160 +- addons/nightvision/stringtable.xml | 249 +-- addons/optionsmenu/stringtable.xml | 221 ++- addons/overheating/stringtable.xml | 306 +-- addons/parachute/stringtable.xml | 88 +- addons/realisticnames/stringtable.xml | 83 +- addons/reload/stringtable.xml | 84 +- addons/reloadlaunchers/stringtable.xml | 8 +- addons/respawn/stringtable.xml | 42 +- addons/safemode/stringtable.xml | 80 +- addons/switchunits/stringtable.xml | 40 +- addons/vehiclelock/stringtable.xml | 235 +-- addons/weaponselect/stringtable.xml | 502 ++--- addons/wep_javelin/stringtable.xml | 8 +- addons/winddeflection/stringtable.xml | 69 +- 27 files changed, 3584 insertions(+), 3318 deletions(-) diff --git a/addons/disposable/stringtable.xml b/addons/disposable/stringtable.xml index 6a3f561b22..1213a561c7 100644 --- a/addons/disposable/stringtable.xml +++ b/addons/disposable/stringtable.xml @@ -1,39 +1,39 @@  - - - Used Tube - Benutze Einwegwaffe - Tube utilisé - Použitý odpalovač - Zużyta tuba - Lanzador utilizado - Használt cső - Отстрелянная труба - Tubo utilizado - - - Used disposable rocket launcher - Benutzter Einweg-Raketenwerfer - Lance-roquette à usage unique utilisé - Použitý raketomet - Zużyta tuba granatnika jednorazowego użytku - Lanzador desechable utilizado - Használt rakétavető - Отстрелянная одноразовая пусковая установка - Lança foguetes descartável utilizado - - - Preloaded Missile Dummy - Preloaded Missile Dummy - Preloaded Missile Dummy - Preloaded Missile Dummy - Preloaded Missile Dummy - Preloaded Missile Dummy - Preloaded Missile Dummy - Заряженная ракетная пустышка - Preloaded Missile Dummy - - - + + + Used Tube + Benutze Einwegwaffe + Tube utilisé + Použitý odpalovač + Zużyta tuba + Lanzador utilizado + Használt cső + Отстрелянная труба + Tubo utilizado + + + Used disposable rocket launcher + Benutzter Einweg-Raketenwerfer + Lance-roquette à usage unique utilisé + Použitý raketomet + Zużyta tuba granatnika jednorazowego użytku + Lanzador desechable utilizado + Használt rakétavető + Отстрелянная одноразовая пусковая установка + Lança foguetes descartável utilizado + + + Preloaded Missile Dummy + Preloaded Missile Dummy + Preloaded Missile Dummy + Preloaded Missile Dummy + Preloaded Missile Dummy + Preloaded Missile Dummy + Preloaded Missile Dummy + Заряженная ракетная пустышка + Míssel dummy pré-carregado + + + \ No newline at end of file diff --git a/addons/dragging/stringtable.xml b/addons/dragging/stringtable.xml index eafa5e597f..e3449f5fca 100644 --- a/addons/dragging/stringtable.xml +++ b/addons/dragging/stringtable.xml @@ -1,35 +1,35 @@ - + - - - Drag - Тащить - Arrastrar - Ciągnij - Táhnout - Tracter - Ziehen - Arrastar - Trascina - Húzás - - - Release - Отпустить - Soltar - Puść - Položit - Lâcher - Loslassen - Soltar - Lascia - Elengedés - - - Item to heavy - Gegenstand zu schwer - - - - Carry - Tragen - Portar - Nieś - Porter - Nést - Carregar - Trascina - Felvesz - Нести - - - + O item é muito pesado + + + Carry + Tragen + Portar + Nieś + Porter + Nést + Carregar + Trascina + Felvesz + Нести + + + \ No newline at end of file diff --git a/addons/explosives/stringtable.xml b/addons/explosives/stringtable.xml index d502053203..c4b84dd538 100644 --- a/addons/explosives/stringtable.xml +++ b/addons/explosives/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -251,7 +251,7 @@ Nahoru Sopra Fel - Para cima + Para Cima Поднять @@ -280,7 +280,7 @@ Detonate Menu - "Zünden"-Menü + "Zünden"-Menü Menú de detonación Menu detonowania Menu de mise à feu @@ -292,7 +292,7 @@ Place Menu - "Platzieren"-Menü + "Platzieren"-Menü Menú de colocación Menu umieszczania Menu Placement @@ -497,4 +497,4 @@ Pegar - + \ No newline at end of file diff --git a/addons/frag/stringtable.xml b/addons/frag/stringtable.xml index f3562ee5b1..ddfe28f85e 100644 --- a/addons/frag/stringtable.xml +++ b/addons/frag/stringtable.xml @@ -1,18 +1,19 @@ - + - - - -(Æ) Disable Fragmentation -(Æ) Zakázat fragmentaci granátů -(Æ) Weapons: Keine Schrapnelle -(Æ) Wyłącz głowice fragmentacyjne -(Æ) Выключить разлёт осколков -(Æ) Disable Fragmentation -(Æ) Disable Fragmentation -(Æ) Disable Fragmentation -(Æ) Disable Fragmentation - - - - + + + + (Æ) Disable Fragmentation + (Æ) Zakázat fragmentaci granátů + (Æ) Weapons: Keine Schrapnelle + (Æ) Wyłącz głowice fragmentacyjne + (Æ) Выключить разлёт осколков + (Æ) Disable Fragmentation + (Æ) Disable Fragmentation + (Æ) Disable Fragmentation + (Æ) Disable Fragmentation + (Æ) Disabilitar Fragmentação + + + + \ No newline at end of file diff --git a/addons/grenades/stringtable.xml b/addons/grenades/stringtable.xml index 1129d44271..25cd997294 100644 --- a/addons/grenades/stringtable.xml +++ b/addons/grenades/stringtable.xml @@ -1,246 +1,246 @@ - + - - - Switch Grenade Mode - Granaten-Modus wechseln - Cambiar modo de granada - Tryb rzutu granatem - Změnit styl hodu granátu - Changer type de lancer de grenade - Сменить режим броска гранаты - Gránátdobás mód váltás - Cambia tipo di granata - Alternar Modo de Granada - - - Normal Throw - Normaler Wurf - Lanzamiento normal - Normalny rzut - Normální - Lancer Normal - Нормальный бросок - Normál dobás - Lancio normale - Arremesso Normal - - - High Throw - Hoher Wurf - Lanzamiento alto - Rzut lobem - Vysoko - Lancer Haut - Высокий бросок - Magas dobás - Lancio verso l'alto - Arremesso Alto - - - Precise Throw - Präziser Wurf - Lanzamiento preciso - Precyzyjny rzut - Přesně - Lancer Précis - Точный бросок - Pontos dobás - Lancio preciso - Arremesso Preciso - - - Roll Grenade - Granate rollen - Rodar granada - Po ziemi - Po zemi - Lancer Roulé - Катить гранату - Gurítás - Fai rotolare la granata - Rolar Granada - - - Drop Grenade - Granate fallenlassen - Soltar granada - Upuść granat - Upustit granát - Lâcher la grenade - Бросить себе под ноги - Ejtés - Lascia la granata - Largar Granada - - - M84 Stun Grenade - M84 Blendgranate - Granada aturdidora M84 - M84 Grenade Incapacitante - Granat hukowy M84 - M84 Omračující granát - M84 светозвуковая граната - M84 Villanógránát - Granata Stordente M84 - M84 granada de atordoamento - - - Also known as flashbang. Causes immediate flash blindness, deafness, tinnitus, and inner ear disturbance. - Verursacht temporäre Blind- und Taubheit. - Produce de manera inmediata ceguera, sordera, tinitus y afecta el oído interior. - Les grenades incapacitantes servent à désorienter ou distraire une menace pendant quelques secondes. - Granat ogłusza, nie zabijając przeciwnika. Detonacja daje efekt oślepiającego błysku i głośnego huku. - Omračující granát je taktická nesmrtící zbraň používaná při záchraně rukojmí a zvládání davu. - Граната XM84 (M84) - не летального действия, и предназначена для отвлечения и временного вывода из строя, либо дезориентации противника. Основное использование нашла при освобождении заложников, захвате преступников и террористов, а также проведении диверсионных миссий. - Eldobás után felrobban és éles hang, valamint fényhatással zavarja össze a környezetében tartózkodókat. - Anche conosciuta come flashbang. Causa accecamento immediato, sensazioni di sposatezza, mancanza d'equilibrio e disturbi al timpano. - Um tipo de granada não-letal destinado a confundir, desorientar e distrair uma potencial ameaça. - - - M127A1 Hand Held Signal (White) - M127A1 Leuchtmittel (Weiß) - M127A1 Světlice (Bílá) - M127A1 Jelzőrakéta (Fehér) - M127A1 Bengala (Bianco) - Flara ręczna sygnałowa M127A1 (biała) - M127A1 Sinalizador (Branco) - M127A1 Фальшфейер (Белый) - Bengala M127A1 (Blanca) - M127A1 Feux à main (Blanc) - - - M127A1 Hand Held Signal (Red) - M127A1 Leuchtmittel (Rot) - M127A1 Světlice (Červená) - M127A1 Jelzőrakéta (Piros) - M127A1 Bengala (Rosso) - Flara ręczna sygnałowa M127A1 (czerwona) - M127A1 Sinalizador (Vermelho) - M127A1 Фальшфейер (Красный) - Bengala M127A1 (Roja) - M127A1 Feux à main (Rouge) - - - M127A1 Hand Held Signal (Green) - M127A1 Leuchtmittel (Grün) - M127A1 Světlice (Zelená) - M127A1 Jelzőrakéta (Zöld) - M127A1 Bengala (Verde) - Flara ręczna sygnałowa M127A1 (zielona) - M127A1 Sinalizador (Verde) - M127A1 Фальшфейер (Зелёный) - Bengala M127A1 (Verde) - M127A1 Feux à main (Vert) - - - M127A1 Hand Held Signal (Yellow) - M127A1 Leuchtmittel (Gelb) - M127A1 Světlice (Žlutá) - M127A1 Jelzőrakéta (Sárga) - M127A1 Bengala (Giallo) - Flara ręczna sygnałowa M127A1 (żółta) - M127A1 Sinalizador (Amarelo) - M127A1 Фальшфейер (Жёлтые) - Bengala M127A1 (Amarilla) - M127A1 Feux à main (Jaune) - - - White Hand Flare - Weiße Leuchtkugel, wird wie eine Granate geworfen. - Světlice (Bílá) - Jelzőrakéta (Fehér) - Bengala (Bianco) - Flara ręczna (biała) - Sinalizador (Branco) - Фальшфейер (Белый) - Bengala (Blanca) - Feux à main (Blanc) - - - Red Hand Flare - Rote Leuchtkugel, wird wie eine Granate geworfen. - Světlice (Červená) - Jelzőrakéta (Piros) - Bengala (Rosso) - Flara ręczna (czerwona) - Sinalizador (Vermelho) - Фальшфейер (Красный) - Bengala (Roja) - Feux à main (Rouge) - - - Green Hand Flare - Grüne Leuchtkugel, wird wie eine Granate geworfen. - Světlice (Zelená) - Jelzőrakéta (Zöld) - Bengala (Verde) - Flara ręczna (zielona) - Sinalizador (Verde) - Фальшфейер (Зелёный) - Bengala (Verde) - Feux à main (Vert) - - - Yellow Hand Flare - Gelbe Leuchtkugel, wird wie eine Granate geworfen. - Světlice Žlutá - Jelzőrakéta (Sárga) - Bengala (Giallo) - Flara ręczna (żółta) - Sinalizador (Amarelo) - Фальшфейер (Жёлтые) - Bengala (Amarilla) - Feux à main (Jaune) - - - M127A1 (White) - M127A1 (Weiß) - M127A1 (Bílá) - M127A1 (Blanc) - M127A1 (Fehér) - M127A1 (Bianco) - M127A1 (biała) - M127A1 (Branco) - M127A1 (Белый) - M127A1 (Blanca) - - - M127A1 (Red) - M127A1 (Rot) - M127A1 (Červená) - M127A1 (Rouge) - M127A1 (Piros) - M127A1 (Rosso) - M127A1 (czerwona) - M127A1 (Vermelho) - M127A1 (Красный) - M127A1 (Roja) - - - M127A1 (Green) - M127A1 (Grün) - M127A1 (Zelená) - M127A1 (Vert) - M127A1 (Zöld) - M127A1 (Verde) - M127A1 (zielona) - M127A1 (Verde) - M127A1 (Зелёный) - M127A1 (Verde) - - - M127A1 (Yellow) - M127A1 (Gelb) - M127A1 (Žlutá) - M127A1 (Jaune) - M127A1 (Sárga) - M127A1 (Giallo) - M127A1 (żółta) - M127A1 (Amarelo) - M127A1 (Жёлтые) - M127A1 (Amarilla) - - - + + + Switch Grenade Mode + Granaten-Modus wechseln + Cambiar modo de granada + Tryb rzutu granatem + Změnit styl hodu granátu + Changer type de lancer de grenade + Сменить режим броска гранаты + Gránátdobás mód váltás + Cambia tipo di granata + Alternar Modo de Granada + + + Normal Throw + Normaler Wurf + Lanzamiento normal + Normalny rzut + Normální + Lancer Normal + Нормальный бросок + Normál dobás + Lancio normale + Arremesso Normal + + + High Throw + Hoher Wurf + Lanzamiento alto + Rzut lobem + Vysoko + Lancer Haut + Высокий бросок + Magas dobás + Lancio verso l'alto + Arremesso Alto + + + Precise Throw + Präziser Wurf + Lanzamiento preciso + Precyzyjny rzut + Přesně + Lancer Précis + Точный бросок + Pontos dobás + Lancio preciso + Arremesso Preciso + + + Roll Grenade + Granate rollen + Rodar granada + Po ziemi + Po zemi + Lancer Roulé + Катить гранату + Gurítás + Fai rotolare la granata + Rolar Granada + + + Drop Grenade + Granate fallenlassen + Soltar granada + Upuść granat + Upustit granát + Lâcher la grenade + Бросить себе под ноги + Ejtés + Lascia la granata + Largar Granada + + + M84 Stun Grenade + M84 Blendgranate + Granada aturdidora M84 + M84 Grenade Incapacitante + Granat hukowy M84 + M84 Omračující granát + M84 светозвуковая граната + M84 Villanógránát + Granata Stordente M84 + M84 granada de atordoamento + + + Also known as flashbang. Causes immediate flash blindness, deafness, tinnitus, and inner ear disturbance. + Verursacht temporäre Blind- und Taubheit. + Produce de manera inmediata ceguera, sordera, tinitus y afecta el oído interior. + Les grenades incapacitantes servent à désorienter ou distraire une menace pendant quelques secondes. + Granat ogłusza, nie zabijając przeciwnika. Detonacja daje efekt oślepiającego błysku i głośnego huku. + Omračující granát je taktická nesmrtící zbraň používaná při záchraně rukojmí a zvládání davu. + Граната XM84 (M84) - не летального действия, и предназначена для отвлечения и временного вывода из строя, либо дезориентации противника. Основное использование нашла при освобождении заложников, захвате преступников и террористов, а также проведении диверсионных миссий. + Eldobás után felrobban és éles hang, valamint fényhatással zavarja össze a környezetében tartózkodókat. + Anche conosciuta come flashbang. Causa accecamento immediato, sensazioni di sposatezza, mancanza d'equilibrio e disturbi al timpano. + Também conhecida como flashbang. Causa uma clarão imediato, cegueira, surdez, zumbido e distúrbio no tímpano. + + + M127A1 Hand Held Signal (White) + M127A1 Leuchtmittel (Weiß) + M127A1 Světlice (Bílá) + M127A1 Jelzőrakéta (Fehér) + M127A1 Bengala (Bianco) + Flara ręczna sygnałowa M127A1 (biała) + Sinalizador de Mão M127A1 (Branco) + M127A1 Фальшфейер (Белый) + Bengala M127A1 (Blanca) + M127A1 Feux à main (Blanc) + + + M127A1 Hand Held Signal (Red) + M127A1 Leuchtmittel (Rot) + M127A1 Světlice (Červená) + M127A1 Jelzőrakéta (Piros) + M127A1 Bengala (Rosso) + Flara ręczna sygnałowa M127A1 (czerwona) + Sinalizador de Mão M127A1 (Vermelho) + M127A1 Фальшфейер (Красный) + Bengala M127A1 (Roja) + M127A1 Feux à main (Rouge) + + + M127A1 Hand Held Signal (Green) + M127A1 Leuchtmittel (Grün) + M127A1 Světlice (Zelená) + M127A1 Jelzőrakéta (Zöld) + M127A1 Bengala (Verde) + Flara ręczna sygnałowa M127A1 (zielona) + Sinalizador de Mão M127A1 (Verde) + M127A1 Фальшфейер (Зелёный) + Bengala M127A1 (Verde) + M127A1 Feux à main (Vert) + + + M127A1 Hand Held Signal (Yellow) + M127A1 Leuchtmittel (Gelb) + M127A1 Světlice (Žlutá) + M127A1 Jelzőrakéta (Sárga) + M127A1 Bengala (Giallo) + Flara ręczna sygnałowa M127A1 (żółta) + Sinalizador de Mão M127A1 (Amarelo) + M127A1 Фальшфейер (Жёлтые) + Bengala M127A1 (Amarilla) + M127A1 Feux à main (Jaune) + + + White Hand Flare + Weiße Leuchtkugel, wird wie eine Granate geworfen. + Světlice (Bílá) + Jelzőrakéta (Fehér) + Bengala (Bianco) + Flara ręczna (biała) + Sinalizador de Mão (Branco) + Фальшфейер (Белый) + Bengala (Blanca) + Feux à main (Blanc) + + + Red Hand Flare + Rote Leuchtkugel, wird wie eine Granate geworfen. + Světlice (Červená) + Jelzőrakéta (Piros) + Bengala (Rosso) + Flara ręczna (czerwona) + Sinalizador de Mão (Vermelho) + Фальшфейер (Красный) + Bengala (Roja) + Feux à main (Rouge) + + + Green Hand Flare + Grüne Leuchtkugel, wird wie eine Granate geworfen. + Světlice (Zelená) + Jelzőrakéta (Zöld) + Bengala (Verde) + Flara ręczna (zielona) + Sinalizador de Mão (Verde) + Фальшфейер (Зелёный) + Bengala (Verde) + Feux à main (Vert) + + + Yellow Hand Flare + Gelbe Leuchtkugel, wird wie eine Granate geworfen. + Světlice Žlutá + Jelzőrakéta (Sárga) + Bengala (Giallo) + Flara ręczna (żółta) + Sinalizador de Mão (Amarelo) + Фальшфейер (Жёлтые) + Bengala (Amarilla) + Feux à main (Jaune) + + + M127A1 (White) + M127A1 (Weiß) + M127A1 (Bílá) + M127A1 (Blanc) + M127A1 (Fehér) + M127A1 (Bianco) + M127A1 (biała) + M127A1 (Branco) + M127A1 (Белый) + M127A1 (Blanca) + + + M127A1 (Red) + M127A1 (Rot) + M127A1 (Červená) + M127A1 (Rouge) + M127A1 (Piros) + M127A1 (Rosso) + M127A1 (czerwona) + M127A1 (Vermelho) + M127A1 (Красный) + M127A1 (Roja) + + + M127A1 (Green) + M127A1 (Grün) + M127A1 (Zelená) + M127A1 (Vert) + M127A1 (Zöld) + M127A1 (Verde) + M127A1 (zielona) + M127A1 (Verde) + M127A1 (Зелёный) + M127A1 (Verde) + + + M127A1 (Yellow) + M127A1 (Gelb) + M127A1 (Žlutá) + M127A1 (Jaune) + M127A1 (Sárga) + M127A1 (Giallo) + M127A1 (żółta) + M127A1 (Amarelo) + M127A1 (Жёлтые) + M127A1 (Amarilla) + + + \ No newline at end of file diff --git a/addons/interaction/stringtable.xml b/addons/interaction/stringtable.xml index dcd87056e2..93d3b2bd09 100644 --- a/addons/interaction/stringtable.xml +++ b/addons/interaction/stringtable.xml @@ -1,660 +1,672 @@  - - - Interactions - - - Torso - - - Head - - - Left Arm - - - Right Arm - - - Left Leg - - - Right Leg - - - Weapon - - - Interaction Menu - Interaktionsmenü - Menú de interacción - Menu interakcji - Menu interakce - Menu d'interaction - Меню взаимодействия - Interakció - Menu de Interação - Menù Interattivo - - - Interaction Menu (Self) - Interaktionsmenü (Selbst) - Menú de interacción (Propia) - Menu interakcji (na siebie) - Menu interakce (vlastní) - Menu d'interaction (Perso) - Меню взаимодействия (с собой) - Interakció (saját) - Menu de Interação (Individual) - Menù Interattivo (Individuale) - - - Open / Close Door - Tür öffnen / schließen - Abrir / Cerrar puerta - Otwórz / Zamknij drzwi - Otevřít / Zavřít dveře - Ouvrir / Fermer Portes - Открыть / Закрыть двери - Ajtó nyitás / zárás - Abrir / Fechar Porta - Apri / Chiudi la porta - - - Lock Door - Tür sperren - Bloquear puerta - Verrouiller Porte - Blocca la porta - Заблокировать дверь - Trancar Porta - Ajtó bezárása - Zablokuj drzwi - Zamknout dveře - - - Unlock Door - Tür entsperren - Desbloquear puerta - Déverrouiller Porte - Sblocca la porta - Разблокировать дверь - Destrancar Porta - Zár kinyitása - Odblokuj drzwi - Odemknout dveře - - - Locked Door - Tür gesperrt - Puerta bloqueada - Porte Verrouillée - Porta bloccata - Дверь заблокирована - Porta Trancada - Zárt ajtó - Zablokowano drzwi - Zamčené dveře - - - Unlocked Door - Tür entsperrt - Puerta desbloqueada - Porte Déverrouillée - Porta sbloccata - Дверь разблокирована - Porta Destrancada - Nyitott ajtó - Odblokowano drzwi - Odemčené dveře - - - Join group - Gruppe beitreten - Unirse al grupo - Dołącz do grupy - Přidat se do skupiny - Rejoindre Groupe - Вступить в группу - Csatlakozás - Unir-se ao grupo - Unisciti alla squadra - - - Leave Group - Gruppe verlassen - Dejar grupo - Opuść grupę - Odejít ze skupiny - Quitter Groupe - Выйти из группы - Csoport elhagyása - Deixar grupo - Lascia la squadra - - - Become Leader - Grp.-führung übern. - Asumir el liderazgo - Przejmij dowodzenie - Stát se velitelem - Devenir Leader - Стать лидером - Vezetés átvétele - Tornar-se Líder - Prendi il comando - - - DANCE! - TANZEN! - BAILAR! - TAŃCZ! - TANČIT! - Danse! - ТАНЦЕВАТЬ! - TÁNC! - DANCE! - Balla! - - - Stop Dancing - Tanzen abbrechen - Dejar de bailar - Przestań tańczyć - Přestat tancovat - Arrêter de danser - Прекратить танцевать - Tánc abbahagyása - Parar de dançar - Smetti di ballare - - - << Back - << Zurück - << Atrás - << Wstecz - << Zpět - << Retour - << Назад - << Vissza - << Voltar - << Indietro - - - Gestures - Gesten - Gestos - Gesty - Gesta - Signaux - Жесты - Kézjelek - Gestos - Segnali gestuali - - - Attack - Angreifen - Atacar - Do ataku - Zaútočit - Attaquer - Атаковать - Támadás - Atacar - Attaccare - - - Advance - Vordringen - Avanzar - Naprzód - Postoupit - Avancer - Продвигаться - Előre - Avançar - Avanzare - - - Go - Los - Adelante - Szybko - Jít - Aller - Идти - Mozgás - Mover-se - Muoversi - - - Follow - Folgen - Seguirme - Za mną - Následovat - Suivre - Следовать - Utánam - Seguir - Seguire - - - Point - Zeigen - Señalar - Wskazać - Ukázat - Pointer - Точка - Mutat - Apontar - Puntare a - - - Up - Aufstehen - Arriba - Do góry - Vztyk - Debout - Вверх - Fel - Acima - Alzarsi - - - Cover - Deckung - Cubrirse - Do osłony - Krýt se - A couvert - Укрыться - Fedezékbe - Proteger-se - Copertura - - - Cease Fire - Feuer einstellen - Alto el fuego - Wstrzymać ogień - Zastavit palbu - Halte au feu - Прекратить огонь - Tüzet szüntess - Cessar Fogo - Cessare il Fuoco - - - Freeze - Keine Bewegung - Alto - Stać - Stát - Halte - Замереть - Állj - Alto - Fermi - - - Hi - Hallo - Hola - Witaj - Ahoj - Salut - Привет - Szeva - Olá - Ciao - - - Yes - Ja - Si - Tak - Ano - Oui - Да - Igen - Sim - Si - - - No - Nein - No - Nie - Ne - Non - Нет - Nem - Não - No - - - Put weapon on back - Waffe wegstecken - Arma a la espalda - Umieść broń na plecach - Dát zbraň na záda - Arme à la bretelle - Повесить оружие на спину - Fegyvert hátra - Colocar arma nas costas - Metti l'arma in spalla - - - Tap Shoulder - Auf Schulter klopfen - Tocar el hombro - Klepnij w ramię - Poklepat na rameno - Taper sur l'épaule - Похлопать по плечу - Vállveregetés - Tocar ombro - Dai un colpetto - - - You were tapped on the RIGHT shoulder - Te tocaron el hombro DERECHO - Dir wurde auf die Schulter geklopft - On te tape sur l'épaule - Zostałeś klepnięty po ramieniu - Vállonveregettek - Někdo tě poklepal na rameno - Вас похлопали по плечу - Você foi tocado no ombro - Ti è stato dato un colpetto sulla spalla - - - You were tapped on the LEFT shoulder. - Te tocaron el hombro IZQUIERDO. - Dir wurde auf die Schulter geklopft - On te tape sur l'épaule. - Zostałeś klepnięty po ramieniu - Vállonveregettek - Někdo tě poklepal na rameno. - Вас похлопали по плечу - Você foi tocado no ombro. - Ti è stato dato un colpetto sulla spalla - - - Cancel - Abbrechen - Cancelar - Anuluj - Annuler - Zrušit - Annulla - Отменить - Cancelar - Mégse - - - Select - Wählen - Seleccionar - Wybierz - Sélectionner - Zvolit - Seleziona - Выбрать - Selecionar - Kiválaszt - - - Go Away! - Geh Weg! - Aléjate! - Odejdź! - Jděte pryč! - Allez-vous-en! - Уходите отсюда! - Tűnés! - Vá Embora! - Via di qui! - - - Get Down! - Auf Den Boden! - Al suelo! - Padnij! - K zemi! - A terre! - A földre! - Ложись! - Abaixe-se! - A Terra! - - - Team<br/>Management - Team<br/>Management - Gestión<br/>de equipo - Gestion<br/>d'équipe - Zarządzanie<br/>oddziałem - Správa<br/>týmu - Управление<br/>группой - Gerenciamento<br/>de Equipe - Organizzazione<br/>Squadra - Csapat<br/>kezelés - - - Red - Rot - Rojo - Rouge - Czerwony - Červený - Красный - Vermelha - Rosso - Piros - - - Green - Grün - Verde - Vert - Zielony - Zelený - Зеленый - Verde - Verde - Zöld - - - Blue - Blau - Azul - Bleu - Niebieski - Modrý - Синий - Azul - Blu - Kék - - - Yellow - Gelb - Amarillo - Jaune - Żółty - Žlutý - Желтый - Amarela - Giallo - Sárga - - - Join Team<br/>Red - Team Rot<br/>beitreten - Unirse al<br/>equipo rojo - Rejoindre<br/>Rouge - Dołącz do drużyny<br/>czerwonej - Připojit do<br/>Červeného Týmu - Присоединиться<br/>к красной группе - Unir-se à<br/>Equipe Vermelha - Entra nella<br/>Squadra Rossa - Csatlakozás a<br/>piros csapathoz - - - Join Team<br/>Green - Team Grün<br/>beitreten - Unirse al<br/>equipo verde - Rejoindre<br/>Verte - Dołącz do<br/>drużyny zielonej - Připojit do<br/>Zeleného Týmu - Присоединиться<br/>к зеленой группе - Unir-se à<br/>Equipe Verde - Entra nella<br/>Squadra Verde - Csatlakozás a<br/>zöld csapathoz - - - Join Team<br/>Blue - Team Blau<br/>beitreten - Unirse al<br/>equipo azul - Rejoindre<br/>Bleue - Dołącz do<br/>drużyny niebieskiej - Připojit do<br/>Modrého Týmu - Присоединиться<br/>к синей группе - Unir-se à<br/>Equipe Azul - Entra nella<br/>Squadra Blu - Csatlakozás a<br/>kék csapathoz - - - Join Team<br/>Yellow - Team Gelb<br/>beitreten - Unirse al<br/>equipo amarillo - Rejoindre<br/>Jaune - Dołącz do<br/>drużyny żółtej - Připojit do<br/>Žlutého Týmu - Присоединиться<br/>к желтой группе - Unir-se à<br/>Equipe Amarela - Entra nella<br/>Squadra Gialla - Csatlakozás a<br/>sárga csapathoz - - - You joined Team %1 - Du bist Team %1 beigetreten - Te has unido al equipo %1 - Tu as rejoint l'équipe %1 - Dołączyłeś do drużyny %1 - Připojil ses do Týmu %1 - Вы присоединились к группе %1 - Você uniu-se à Equipe %1 - Sei entrato nella Squadra %1 - Csatlakoztál a %1 csapathoz - - - Leave Team - Team verlassen - Dejar equipo - Quitter l'équipe - Opuść drużynę - Opustit tým - Покинуть группу - Deixar Equipe - Lascia la Squadra - Csapat elhagyása - - - You left the Team - Du hast das Team verlassen - Has dejado el equipo - Tu as quitté l'équipe - Opuściłeś drużynę - Opustil si tým - Вы покинули группу - Você deixou a Equipe - Hai lasciato la squadra - Elhagytad a csapatot - - - Pardon - Begnadigen - Perdonar - Przebacz - Pardon - Pardon - Извините - Perdão - Perdona - Megbocsátás - - - Scroll - Scrollen - Przewiń - Défilement - Desplazar - Пролистать - Rolar - Scorri - Görgetés - Otáčení - - - Modifier Key - Modifikator - Modyfikator - Modifier la touche - Tecla modificadora - клавиша-модификатор - Tecla Modificadora - Modifica Tasto - Módosító billentyű - Modifikátor - - - Not in Range - Außer Reichweite - Hors de portée. - Fuera de rango - Слишком далеко - Fora do Alcançe - Hatótávolságon kívül - Poza zasięgiem - Mimo dosah - - - Equipment - Ausrüstung - Equipamiento - Équipment - Ekwipunek - Vybavení - Felszerelés - Снаряжение - - - Push - Schieben - Empujar - Pousser - Pchnij - Odstrčit - Tolás - Толкать - - - Interact - Interagiere - Interakce - Взаимодействовать - Interakcja - Interactuar - - - Passengers - - - + + + Interactions + Interaçãoes + + + Torso + Torso + + + Head + Cabeça + + + Left Arm + Braço Esquerdo + + + Right Arm + Braço Direito + + + Left Leg + Perna Esquerda + + + Right Leg + Perna Direita + + + Weapon + Arma + + + Interaction Menu + Interaktionsmenü + Menú de interacción + Menu interakcji + Menu interakce + Menu d'interaction + Меню взаимодействия + Interakció + Menu de Interação + Menù Interattivo + + + Interaction Menu (Self) + Interaktionsmenü (Selbst) + Menú de interacción (Propia) + Menu interakcji (na siebie) + Menu interakce (vlastní) + Menu d'interaction (Perso) + Меню взаимодействия (с собой) + Interakció (saját) + Menu de Interação (Individual) + Menù Interattivo (Individuale) + + + Open / Close Door + Tür öffnen / schließen + Abrir / Cerrar puerta + Otwórz / Zamknij drzwi + Otevřít / Zavřít dveře + Ouvrir / Fermer Portes + Открыть / Закрыть двери + Ajtó nyitás / zárás + Abrir / Fechar Porta + Apri / Chiudi la porta + + + Lock Door + Tür sperren + Bloquear puerta + Verrouiller Porte + Blocca la porta + Заблокировать дверь + Trancar Porta + Ajtó bezárása + Zablokuj drzwi + Zamknout dveře + + + Unlock Door + Tür entsperren + Desbloquear puerta + Déverrouiller Porte + Sblocca la porta + Разблокировать дверь + Destrancar Porta + Zár kinyitása + Odblokuj drzwi + Odemknout dveře + + + Locked Door + Tür gesperrt + Puerta bloqueada + Porte Verrouillée + Porta bloccata + Дверь заблокирована + Porta Trancada + Zárt ajtó + Zablokowano drzwi + Zamčené dveře + + + Unlocked Door + Tür entsperrt + Puerta desbloqueada + Porte Déverrouillée + Porta sbloccata + Дверь разблокирована + Porta Destrancada + Nyitott ajtó + Odblokowano drzwi + Odemčené dveře + + + Join group + Gruppe beitreten + Unirse al grupo + Dołącz do grupy + Přidat se do skupiny + Rejoindre Groupe + Вступить в группу + Csatlakozás + Unir-se ao grupo + Unisciti alla squadra + + + Leave Group + Gruppe verlassen + Dejar grupo + Opuść grupę + Odejít ze skupiny + Quitter Groupe + Выйти из группы + Csoport elhagyása + Deixar grupo + Lascia la squadra + + + Become Leader + Grp.-führung übern. + Asumir el liderazgo + Przejmij dowodzenie + Stát se velitelem + Devenir Leader + Стать лидером + Vezetés átvétele + Tornar-se Líder + Prendi il comando + + + DANCE! + TANZEN! + BAILAR! + TAŃCZ! + TANČIT! + Danse! + ТАНЦЕВАТЬ! + TÁNC! + DANCE! + Balla! + + + Stop Dancing + Tanzen abbrechen + Dejar de bailar + Przestań tańczyć + Přestat tancovat + Arrêter de danser + Прекратить танцевать + Tánc abbahagyása + Parar de dançar + Smetti di ballare + + + << Back + << Zurück + << Atrás + << Wstecz + << Zpět + << Retour + << Назад + << Vissza + << Voltar + << Indietro + + + Gestures + Gesten + Gestos + Gesty + Gesta + Signaux + Жесты + Kézjelek + Gestos + Segnali gestuali + + + Attack + Angreifen + Atacar + Do ataku + Zaútočit + Attaquer + Атаковать + Támadás + Atacar + Attaccare + + + Advance + Vordringen + Avanzar + Naprzód + Postoupit + Avancer + Продвигаться + Előre + Avançar + Avanzare + + + Go + Los + Adelante + Szybko + Jít + Aller + Идти + Mozgás + Mover-se + Muoversi + + + Follow + Folgen + Seguirme + Za mną + Následovat + Suivre + Следовать + Utánam + Seguir + Seguire + + + Point + Zeigen + Señalar + Wskazać + Ukázat + Pointer + Точка + Mutat + Apontar + Puntare a + + + Up + Aufstehen + Arriba + Do góry + Vztyk + Debout + Вверх + Fel + Acima + Alzarsi + + + Cover + Deckung + Cubrirse + Do osłony + Krýt se + A couvert + Укрыться + Fedezékbe + Proteger-se + Copertura + + + Cease Fire + Feuer einstellen + Alto el fuego + Wstrzymać ogień + Zastavit palbu + Halte au feu + Прекратить огонь + Tüzet szüntess + Cessar Fogo + Cessare il Fuoco + + + Freeze + Keine Bewegung + Alto + Stać + Stát + Halte + Замереть + Állj + Alto + Fermi + + + Hi + Hallo + Hola + Witaj + Ahoj + Salut + Привет + Szeva + Olá + Ciao + + + Yes + Ja + Si + Tak + Ano + Oui + Да + Igen + Sim + Si + + + No + Nein + No + Nie + Ne + Non + Нет + Nem + Não + No + + + Put weapon on back + Waffe wegstecken + Arma a la espalda + Umieść broń na plecach + Dát zbraň na záda + Arme à la bretelle + Повесить оружие на спину + Fegyvert hátra + Colocar arma nas costas + Metti l'arma in spalla + + + Tap Shoulder + Auf Schulter klopfen + Tocar el hombro + Klepnij w ramię + Poklepat na rameno + Taper sur l'épaule + Похлопать по плечу + Vállveregetés + Tocar ombro + Dai un colpetto + + + You were tapped on the RIGHT shoulder + Te tocaron el hombro DERECHO + Dir wurde auf die Schulter geklopft + On te tape sur l'épaule + Zostałeś klepnięty po ramieniu + Vállonveregettek + Někdo tě poklepal na rameno + Вас похлопали по плечу + Você foi tocado no ombro + Ti è stato dato un colpetto sulla spalla + + + You were tapped on the LEFT shoulder. + Te tocaron el hombro IZQUIERDO. + Dir wurde auf die Schulter geklopft + On te tape sur l'épaule. + Zostałeś klepnięty po ramieniu + Vállonveregettek + Někdo tě poklepal na rameno. + Вас похлопали по плечу + Você foi tocado no ombro. + Ti è stato dato un colpetto sulla spalla + + + Cancel + Abbrechen + Cancelar + Anuluj + Annuler + Zrušit + Annulla + Отменить + Cancelar + Mégse + + + Select + Wählen + Seleccionar + Wybierz + Sélectionner + Zvolit + Seleziona + Выбрать + Selecionar + Kiválaszt + + + Go Away! + Geh Weg! + Aléjate! + Odejdź! + Jděte pryč! + Allez-vous-en! + Уходите отсюда! + Tűnés! + Vá Embora! + Via di qui! + + + Get Down! + Auf Den Boden! + Al suelo! + Padnij! + K zemi! + A terre! + A földre! + Ложись! + Abaixe-se! + A Terra! + + + Team<br/>Management + Team<br/>Management + Gestión<br/>de equipo + Gestion<br/>d'équipe + Zarządzanie<br/>oddziałem + Správa<br/>týmu + Управление<br/>группой + Gerenciamento<br/>de Equipe + Organizzazione<br/>Squadra + Csapat<br/>kezelés + + + Red + Rot + Rojo + Rouge + Czerwony + Červený + Красный + Vermelha + Rosso + Piros + + + Green + Grün + Verde + Vert + Zielony + Zelený + Зеленый + Verde + Verde + Zöld + + + Blue + Blau + Azul + Bleu + Niebieski + Modrý + Синий + Azul + Blu + Kék + + + Yellow + Gelb + Amarillo + Jaune + Żółty + Žlutý + Желтый + Amarela + Giallo + Sárga + + + Join Team<br/>Red + Team Rot<br/>beitreten + Unirse al<br/>equipo rojo + Rejoindre<br/>Rouge + Dołącz do drużyny<br/>czerwonej + Připojit do<br/>Červeného Týmu + Присоединиться<br/>к красной группе + Unir-se à<br/>Equipe Vermelha + Entra nella<br/>Squadra Rossa + Csatlakozás a<br/>piros csapathoz + + + Join Team<br/>Green + Team Grün<br/>beitreten + Unirse al<br/>equipo verde + Rejoindre<br/>Verte + Dołącz do<br/>drużyny zielonej + Připojit do<br/>Zeleného Týmu + Присоединиться<br/>к зеленой группе + Unir-se à<br/>Equipe Verde + Entra nella<br/>Squadra Verde + Csatlakozás a<br/>zöld csapathoz + + + Join Team<br/>Blue + Team Blau<br/>beitreten + Unirse al<br/>equipo azul + Rejoindre<br/>Bleue + Dołącz do<br/>drużyny niebieskiej + Připojit do<br/>Modrého Týmu + Присоединиться<br/>к синей группе + Unir-se à<br/>Equipe Azul + Entra nella<br/>Squadra Blu + Csatlakozás a<br/>kék csapathoz + + + Join Team<br/>Yellow + Team Gelb<br/>beitreten + Unirse al<br/>equipo amarillo + Rejoindre<br/>Jaune + Dołącz do<br/>drużyny żółtej + Připojit do<br/>Žlutého Týmu + Присоединиться<br/>к желтой группе + Unir-se à<br/>Equipe Amarela + Entra nella<br/>Squadra Gialla + Csatlakozás a<br/>sárga csapathoz + + + You joined Team %1 + Du bist Team %1 beigetreten + Te has unido al equipo %1 + Tu as rejoint l'équipe %1 + Dołączyłeś do drużyny %1 + Připojil ses do Týmu %1 + Вы присоединились к группе %1 + Você uniu-se à Equipe %1 + Sei entrato nella Squadra %1 + Csatlakoztál a %1 csapathoz + + + Leave Team + Team verlassen + Dejar equipo + Quitter l'équipe + Opuść drużynę + Opustit tým + Покинуть группу + Deixar Equipe + Lascia la Squadra + Csapat elhagyása + + + You left the Team + Du hast das Team verlassen + Has dejado el equipo + Tu as quitté l'équipe + Opuściłeś drużynę + Opustil si tým + Вы покинули группу + Você deixou a Equipe + Hai lasciato la squadra + Elhagytad a csapatot + + + Pardon + Begnadigen + Perdonar + Przebacz + Pardon + Pardon + Извините + Perdão + Perdona + Megbocsátás + + + Scroll + Scrollen + Przewiń + Défilement + Desplazar + Пролистать + Rolar + Scorri + Görgetés + Otáčení + + + Modifier Key + Modifikator + Modyfikator + Modifier la touche + Tecla modificadora + клавиша-модификатор + Tecla Modificadora + Modifica Tasto + Módosító billentyű + Modifikátor + + + Not in Range + Außer Reichweite + Hors de portée. + Fuera de rango + Слишком далеко + Fora do Alcançe + Hatótávolságon kívül + Poza zasięgiem + Mimo dosah + + + Equipment + Ausrüstung + Equipamiento + Équipment + Ekwipunek + Vybavení + Felszerelés + Снаряжение + Equipamento + + + Push + Schieben + Empujar + Pousser + Pchnij + Odstrčit + Tolás + Толкать + Empurrar + + + Interact + Interagiere + Interakce + Взаимодействовать + Interakcja + Interactuar + Interagir + + + Passengers + Passageiros + + + \ No newline at end of file diff --git a/addons/logistics_uavbattery/stringtable.xml b/addons/logistics_uavbattery/stringtable.xml index 6acb2b571d..ca7ef55840 100644 --- a/addons/logistics_uavbattery/stringtable.xml +++ b/addons/logistics_uavbattery/stringtable.xml @@ -1,78 +1,78 @@  - - - Drone is full - Drohne ist voll - El VANT está lleno - L'UAV est chargé - Dron jest naładowany - A drón fel van töltve - Dron je nabitý - O UAV está cheio - Il drone è pieno - БПЛА заполнен - - - You need a UAV Battery - Du brauchst eine UAV-Batterie - Necesitas una batería para VANT - Pas de batterie UAV - Potrzebujesz baterii UAV - Szükséged van egy UAV akkumulátorra - Potřebuješ UAV-Baterii - Você precisa de uma Bateria para UAVs - Hai bisogno di una Batteria UAV - Требуется аккумулятор БПЛА - - - Recharge - Aufladen - Recargar - Recharger - Naładuj - Feltöltés - Dobít - Recarregar - Ricarica - Подзарядить - - - UAV Battery - UAV-Batterie - Batería para VANT - Batterie UAV - Bateria UAV - UAV akkumulátor - UAV-Baterie - Bateria para UAV - Batteria para UAVs - Аккумулятор БПЛА - - - Used to refuel Carried UAV's - Verwendet zum Aufladen von tragbaren UAV's - Usada para reabastecer el VANT - Utilisée pour recharger l'UAV - Używana do naładowania UAV - Hordozható UAV-ok működéséhez való akkumulátor - Používané k dobíjení UAV - Usada para reabastecer o UAV - Usata per ricaricare la Batteria dell'UAV - Используется для подзарядки БПЛА - - - Recharging ... - Aufladen ... - Recargando ... - Rechargement ... - Ładowanie ... - Akku feltöltése ... - Dobíjení ... - Recarregando ... - In ricarica ... - Подзаряжаем ... - - - + + + Drone is full + Drohne ist voll + El VANT está lleno + L'UAV est chargé + Dron jest naładowany + A drón fel van töltve + Dron je nabitý + O UAV está cheio + Il drone è pieno + БПЛА заполнен + + + You need a UAV Battery + Du brauchst eine UAV-Batterie + Necesitas una batería para VANT + Pas de batterie UAV + Potrzebujesz baterii UAV + Szükséged van egy UAV akkumulátorra + Potřebuješ UAV-Baterii + Você precisa de uma bateria para UAVs + Hai bisogno di una Batteria UAV + Требуется аккумулятор БПЛА + + + Recharge + Aufladen + Recargar + Recharger + Naładuj + Feltöltés + Dobít + Recarregar + Ricarica + Подзарядить + + + UAV Battery + UAV-Batterie + Batería para VANT + Batterie UAV + Bateria UAV + UAV akkumulátor + UAV-Baterie + Bateria para UAV + Batteria para UAVs + Аккумулятор БПЛА + + + Used to refuel Carried UAV's + Verwendet zum Aufladen von tragbaren UAV's + Usada para reabastecer el VANT + Utilisée pour recharger l'UAV + Używana do naładowania UAV + Hordozható UAV-ok működéséhez való akkumulátor + Používané k dobíjení UAV + Usada para reabastecer o UAV + Usata per ricaricare la Batteria dell'UAV + Используется для подзарядки БПЛА + + + Recharging ... + Aufladen ... + Recargando ... + Rechargement ... + Ładowanie ... + Akku feltöltése ... + Dobíjení ... + Recarregando ... + In ricarica ... + Подзаряжаем ... + + + \ No newline at end of file diff --git a/addons/maptools/stringtable.xml b/addons/maptools/stringtable.xml index 5dd4578976..c5b7bba44c 100644 --- a/addons/maptools/stringtable.xml +++ b/addons/maptools/stringtable.xml @@ -1,148 +1,149 @@  - - - Map Tools - Herramientas de mapa - Outils de navigation - Narzędzia nawigacyjne - Kartenwerkzeug - Pomůcky k Mapě - Strumenti Cartografici - Ferramentas de Mapa - Térképészeti eszközök - Инструменты карты - - - The Map Tools allow you to measure distances and angles on the map. - Las herramientas de mapa permiten medir distancias y ángulos en el mapa. - Les outils de navigation permettent de mesurer des distances et des angles sur la carte. - Narzędzia nawigacyjne pozwalają na mierzenie odległości i kątów na mapie. - Das Kartenwerkzeug erlaubt es dir, Distanzen und Winkel zu messen. - Pomůcky k mapě slouží k měření vzdáleností a úhlů na mapě. - Gli Strumenti Cartografici ti consentono di misurare distanze ed angoli sulla mappa. - As Ferramentas de Mapa permitem que você meça distâncias e ângulos no mapa. - A térképészeti eszközökkel távolságokat és szögeket tud mérni a térképen. - Картографические инструменты позволяют измерять расстояния и углы на карте. - - - Map Tools - Herramientas de mapa - Outils de navigation - Narzędzia nawigacyjne - Kartenwerkzeug - Pomůcky k Mapě - Strumenti Cartografici - Ferramentas de Mapa - Térképészeti eszközök - Инструменты карты - - - Hide Map Tool - Verstecke Kartenwerkzeug - Ocultar herr. de mapa - Ranger les outils - Nascondi Strumenti Cartografici - Ocultar Ferramenta de Mapa - Térképészeti eszközök elrejtése - Ukryj narzędzia nawigacyjne - Schovat pomůcku k mapě - Скрыть инструменты - - - Show Normal Map Tool - Zeige Kartenwerkzeug (normal) - Mostrar herr. de mapa normal - Montrer outils normaux - Visualizza Strumenti Cartografici standard - Mostrar Ferramenta de Mapa Padrão - Térképészeti eszköz megjelenítése (normál méret) - Pokaż normalne narzędzia nawigacyjne - Zobrazit normální pomůcku k mapě - Показать инструменты (средн. размер) - - - Show Small Map Tool - Zeige Kartenwerkzeug (klein) - Mostrar herr. de mapa pequeñas - Montrer petits outils - Visualizza Strumenti Cartografici piccoli - Mostrar Ferramenta de Mapa Pequena - Térképészeti eszköz megjelenítése (kicsinyített) - Pokaż pomniejszone narzędzia nawigacyjne - Zobrazit malou pomůcku k mapě - Показать инструменты (малый размер) - - - Align Map Tool to North - Kartenwerkzeug nach Norden ausrichten - Alinear herr. de mapa al norte - Aligner au nord - Allinea gli Strumenti Cartografici con il Nord - Alinhar Ferramenta de Mapa com o Norte - Térképészeti eszköz Északhoz állítása - Wyrównaj linijkę do północy - Srovnat pomůcku k mapě na sever - Выровнять инструменты на север - - - Align Map Tool to Compass - Kartenwerkzeug am Kompass ausrichten - Alinear herr. de mapa a la brújula - Aligner sur la boussole - Allinea gli Strumenti Cartografici con la bussola - Alinhar Ferramenta de Mapa com a Bússola - Térképészeti eszköz iránytűhöz állítása - Wyrównaj linijkę do kompasu - Srovnat pomůcku k mapě ke kompasu - Выровнять инструменты по компасу - - - Show GPS on Map - Zeige GPS auf der Karte - Mostrar el GPS sobre el mapa - Ranger le GPS - Visualizza il GPS sulla mappa - Mostrar GPS no Mapa - GPS megjelnítése a térképen - Pokaż GPS na mapie - Zobrazit GPS na mapě - Показать GPS на карте - - - Hide GPS on Map - Verstecke GPS auf der Karte - Ocultar el GPS del mapa - Montrer le GPS - Nascondi il GPS sulla mappa - Ocultar GPS no Mapa - GPS elrejtése térképről - Ukryj GPS na mapie - Schovat GPS na mapě - Скрыть GPS на карте - - - Copy Map - Karte kopieren - Copiar mapa - Скопировать карту - Kopiuj oznaczenia mapy - Copier la carte - Zkopírovat mapu - Copiare Carta - Térkép másolása - Copiar Mapa - - - Direction: %1° - Drehung: %1° - Direction: %1° - Směr: %1° - Kierunek: %1° - Dirección: %1° - Irány: %1 - Направление:%1 - - + + + Map Tools + Herramientas de mapa + Outils de navigation + Narzędzia nawigacyjne + Kartenwerkzeug + Pomůcky k Mapě + Strumenti Cartografici + Ferramentas de Mapa + Térképészeti eszközök + Инструменты карты + + + The Map Tools allow you to measure distances and angles on the map. + Las herramientas de mapa permiten medir distancias y ángulos en el mapa. + Les outils de navigation permettent de mesurer des distances et des angles sur la carte. + Narzędzia nawigacyjne pozwalają na mierzenie odległości i kątów na mapie. + Das Kartenwerkzeug erlaubt es dir, Distanzen und Winkel zu messen. + Pomůcky k mapě slouží k měření vzdáleností a úhlů na mapě. + Gli Strumenti Cartografici ti consentono di misurare distanze ed angoli sulla mappa. + As Ferramentas de Mapa permitem que você meça distâncias e ângulos no mapa. + A térképészeti eszközökkel távolságokat és szögeket tud mérni a térképen. + Картографические инструменты позволяют измерять расстояния и углы на карте. + + + Map Tools + Herramientas de mapa + Outils de navigation + Narzędzia nawigacyjne + Kartenwerkzeug + Pomůcky k Mapě + Strumenti Cartografici + Ferramentas de Mapa + Térképészeti eszközök + Инструменты карты + + + Hide Map Tool + Verstecke Kartenwerkzeug + Ocultar herr. de mapa + Ranger les outils + Nascondi Strumenti Cartografici + Ocultar Ferramenta de Mapa + Térképészeti eszközök elrejtése + Ukryj narzędzia nawigacyjne + Schovat pomůcku k mapě + Скрыть инструменты + + + Show Normal Map Tool + Zeige Kartenwerkzeug (normal) + Mostrar herr. de mapa normal + Montrer outils normaux + Visualizza Strumenti Cartografici standard + Mostrar Ferramenta de Mapa Padrão + Térképészeti eszköz megjelenítése (normál méret) + Pokaż normalne narzędzia nawigacyjne + Zobrazit normální pomůcku k mapě + Показать инструменты (средн. размер) + + + Show Small Map Tool + Zeige Kartenwerkzeug (klein) + Mostrar herr. de mapa pequeñas + Montrer petits outils + Visualizza Strumenti Cartografici piccoli + Mostrar Ferramenta de Mapa Pequena + Térképészeti eszköz megjelenítése (kicsinyített) + Pokaż pomniejszone narzędzia nawigacyjne + Zobrazit malou pomůcku k mapě + Показать инструменты (малый размер) + + + Align Map Tool to North + Kartenwerkzeug nach Norden ausrichten + Alinear herr. de mapa al norte + Aligner au nord + Allinea gli Strumenti Cartografici con il Nord + Alinhar Ferramenta de Mapa com o Norte + Térképészeti eszköz Északhoz állítása + Wyrównaj linijkę do północy + Srovnat pomůcku k mapě na sever + Выровнять инструменты на север + + + Align Map Tool to Compass + Kartenwerkzeug am Kompass ausrichten + Alinear herr. de mapa a la brújula + Aligner sur la boussole + Allinea gli Strumenti Cartografici con la bussola + Alinhar Ferramenta de Mapa com a Bússola + Térképészeti eszköz iránytűhöz állítása + Wyrównaj linijkę do kompasu + Srovnat pomůcku k mapě ke kompasu + Выровнять инструменты по компасу + + + Show GPS on Map + Zeige GPS auf der Karte + Mostrar el GPS sobre el mapa + Ranger le GPS + Visualizza il GPS sulla mappa + Mostrar GPS no Mapa + GPS megjelnítése a térképen + Pokaż GPS na mapie + Zobrazit GPS na mapě + Показать GPS на карте + + + Hide GPS on Map + Verstecke GPS auf der Karte + Ocultar el GPS del mapa + Montrer le GPS + Nascondi il GPS sulla mappa + Ocultar GPS no Mapa + GPS elrejtése térképről + Ukryj GPS na mapie + Schovat GPS na mapě + Скрыть GPS на карте + + + Copy Map + Karte kopieren + Copiar mapa + Скопировать карту + Kopiuj oznaczenia mapy + Copier la carte + Zkopírovat mapu + Copiare Carta + Térkép másolása + Copiar Mapa + + + Direction: %1° + Drehung: %1° + Direction: %1° + Směr: %1° + Kierunek: %1° + Dirección: %1° + Irány: %1 + Направление:%1 + Direção: %1 + + \ No newline at end of file diff --git a/addons/markers/stringtable.xml b/addons/markers/stringtable.xml index ea6d72990a..6ef49b923a 100644 --- a/addons/markers/stringtable.xml +++ b/addons/markers/stringtable.xml @@ -1,15 +1,16 @@  - - - Direction: %1° - Drehung: %1° - Direction: %1° - Směr: %1° - Kierunek: %1° - Dirección: %1° - Направление: %1 - - + + + Direction: %1° + Drehung: %1° + Direction: %1° + Směr: %1° + Kierunek: %1° + Dirección: %1° + Направление: %1 + Direção %1 + + \ No newline at end of file diff --git a/addons/medical/stringtable.xml b/addons/medical/stringtable.xml index ec01d3b626..49d06048d9 100644 --- a/addons/medical/stringtable.xml +++ b/addons/medical/stringtable.xml @@ -1,904 +1,1029 @@  - - - - Inject Atropine - - - Inject Epinephrine - Epinephrine injizieren - Inyectar Epinefrina - Wtrzyknij adrenalinę - Aplikovat Adrenalin - Ввести андреналил - Adrénaline - Adrenalin - Injetar Epinefrina - Inietta Epinefrina - - - Inject Morphine - Morphin injizieren - Inyectar Morfina - Wstrzyknij morfinę - Aplikovat Morfin - Ввести морфин - Morphine - Morfium - Injetar Morfina - Inietta Morfina - - - Transfuse Blood - Bluttransfusion - Transfundir sangre - Przetocz krew - Transfúze krve - Перелить кровь - Transfusion - Infúzió - Transfundir Sangue - Effettua Trasfusione - - - Transfuse Plasma - - - Transfuse Saline - - - Apply Tourniquet - - - Bandage - Verbinden - Venda - Bandaż - Obvázat - Pansement - Benda - Kötözés - Atadura - Перевязать - - - Bandage Head - Kopf verbinden - Vendar la cabeza - Bandażuj głowę - Obvázat hlavu - Перевязать голову - Pansement Tête - Fej kötözése - Atar Cabeça - Benda la testa - - - Bandage Torso - Torso verbinden - Vendar el torso - Bandażuj tors - Obvázat hruď - Перевязать торс - Pansement Torse - Felsőtest kötözése - Atar Tronco - Benda il torso - - - Bandage Left Arm - Arm links verbinden - Vendar el brazo izquierdo - Bandażuj lewe ramię - Obvázat levou ruku - Перевязать левую руку - Pansement Bras Gauche - Bal kar kötözése - Atar Braço Esquerdo - Benda il braccio sinistro - - - Bandage Right Arm - Arm rechts verbinden - Vendar el brazo derecho - Bandażuj prawe ramię - Obvázat pravou ruku - Перевязать правую руку - Pansement Bras Droit - Jobb kar kötözése - Atar Braço Direito - Benda il braccio destro - - - Bandage Left Leg - Bein links verbinden - Vendar la pierna izquierda - Bandażuj lewą nogę - Obvázat levou nohu - Перевязать левую ногу - Pansement Jambe Gauche - Bal láb kötözése - Atar Perna Esquerda - Benda la gamba sinistra - - - Bandage Right Leg - Bein rechts verbinden - Vendar la pierna derecha - Bandażuj prawą nogę - Obvázat pravou nohu - Перевязать правую ногу - Pansement Jambe Droite - Jobb láb kötözése - Atar Perna Direita - Benda la gamba destra - - - Injecting Morphine ... - Morphin injizieren ... - Inyectando Morfina ... - Wstrzykiwanie morfiny ... - Aplikuju Morfin ... - Введение морфина... - Injection de Morphine... - Morfium beadása... - Injetando Morfina ... - Inietto la morfina ... - - - Injecting Epinephrine ... - Epinephrine injizieren ... - Inyectando Epinefrina ... - Wstrzykiwanie adrenaliny ... - Aplikuju Adrenalin ... - Введение андреналина - Injection d'Adrénaline ... - Adrenalin beadása... - Injetando Epinefrina ... - Inietto l'epinefrina ... - - - Injecting Atropine ... - - - Transfusing Blood ... - Bluttransfusion ... - Realizando transfusión ... - Przetaczanie krwi ... - Probíhá transfúze krve ... - Переливание крови... - Transfusion Sanguine ... - Infúzió... - Transfundindo Sangue ... - Effettuo la trasfusione ... - - - Transfusing Saline ... - - - Transfusing Plasma ... - - - Bandaging ... - Verbinden ... - Vendando ... - Bandażowanie ... - Obvazuji ... - Pansement ... - Sto applicando la benda ... - Bekötözés... - Atando ... - Перевязывание.... - - - Applying Tourniquet ... - - - Medical - Zdravotní - Médical - Sanitäter - Medico - Medyczne - Médico - Медик - Médico - - - Field Dressing - - - Packing Bandage - - - Elastic Bandage - - - QuikClot - - - Check Pulse - - - Check Blood Pressure - - - Triage Card - - - Tourniquet - - - Remove Tourniquet - - - Give Blood IV (1000ml) - - - Give Blood IV (500ml) - - - Give Blood IV (250ml) - - - Give Plasma IV (1000ml) - - - Give Plasma IV (500ml) - - - Give Plasma IV (250ml) - - - Give Saline IV (1000ml) - - - Give Saline IV (500ml) - - - Give Saline IV (250ml) - - - - - Minor - - - Delayed - - - Immediate - - - Deceased - - - None - - - Normal breathing - Дыхание в норме - Respiración normal - Respiration Normale - Normalny oddech - - - No breathing - Дыхания нет - No respira - Apnée - Brak oddechu - - - Difficult breathing - Дыхание затруднено - Dificultad para respirar - Difficultée Respiratoire - Trudności z oddychaniem - - - Almost no breathing - Дыхания почти нет - Casi sin respirar - Respiration Faible - Prawie brak oddechu - - - Bleeding - Кровотечение - Sangrando - Seignement - Krwawienie zewnętrzne - - - In Pain - Испытывает боль - Con Dolor - A De La Douleur - W bólu - - - Lost a lot of Blood - Большая кровопотеря - Mucha Sangre perdida - A Perdu Bcp de Sang - Stracił dużo krwi - - - Tourniquet [CAT] - Жгут - Torniquete [CAT] - Garot [CAT] - Opaska uciskowa [CAT] - - - Receiving IV [%1ml] - - - - - Bandage (Basic) - Повязка (обычная) - Vendaje (Básico) - Bandage (Standard) - Bandaż (jałowy) - - - Used to cover a wound - Для перевязки ран - Utilizado para cubrir una herida - Utilisé Pour Couvrir Une Blessure - Używany w celu przykrycia i ochrony miejsca zranienia - - - A dressing, that is a particular material used to cover a wound, which is applied over the wound once bleeding has been stemmed. - Повязка, накладываемая поверх раны после остановки кровотечения. - Un apósito, material específico utilizado para cubrir una herida, se aplica sobre la herida una vez ha dejado de sangrar. - C'est un bandage, qui est fait d'un matériel spécial utiliser pour couvrir une blessure, qui peut etre appliquer des que le seignement as ete stopper. - Opatrunek materiałowy, używany do przykrywania ran, zakładany na ranę po zatamowaniu krwawienia. - - - Packing Bandage - Тампонирующая повязка - Vendaje Compresivo - Bandage Mèche - Bandaż (uciskowy) - - - Used to pack medium to large wounds and stem the bleeding - Для тампонирования ран среднего и большого размера и остановки кровотечения. - Se utiliza para vendar heridas medianas y grandes y detener el sangrado - Utiliser pour remplire la cavité créé dans une blessure moyenne et grande. - Używany w celu opatrywania średnich i dużych ran oraz tamowania krwawienia. - - - A bandage used to pack the wound to stem bleeding and facilitate wound healing. Packing a wound is an option in large polytrauma injuries. - Повязка для тампонирования раны, остановки кровотечения и лучшего заживления. При тяжелых сочетанных ранениях возможно тампонирование раны. - Se utiliza para detener la hemorragia de una herida y favorecer su cicatrización. Se usa en grandes lesiones o politraumatismos. - Un bandage servent a etre inseré dans les blessure pour éponger le seignement et faciliter la guerrison. Ce bandage est une option pour soigner les lession de politrauma. - Opatrunek stosowany w celu zatrzymania krwawienia i osłony większych ran. - - - Bandage (Elastic) - Повязка (давящая) - Vendaje (Elástico) - Bandage (Élastique) - Bandaż (elastyczny) - - - Bandage kit, Elastic - Давящая повязка - Vendaje (Elástico) - Bandage Compressif Élastique - Zestaw bandaży elastycznych. - - - - - Ce bandage peut etre utiliser pour compresser la plaie afin de ralentire le seignement et assurer la tenue du bandage lors de mouvment. - Elastyczna opaska podtrzymująca opatrunek oraz usztywniająca okolice stawów. - Brinda una compresión uniforme y ofrece soporte extra a una zona lesionada - - - Tourniquet (CAT) - Жгут - Torniquete (CAT) - Garot (CAT) - Staza (typ. CAT) - - - Slows down blood loss when bleeding - Уменьшает кровопотерю при кровотечении. - Reduce la velocidad de pérdida de sangre - Ralentit le seignement - Zmniejsza ubytek krwi z kończyn w przypadku krwawienia. - - - A constricting device used to compress venous and arterial circulation in effect inhibiting or slowing blood flow and therefore decreasing loss of blood. - Жгут используется для прижатия сосудов, приводящего к остановке или значительному уменьшению кровотечения и сокращению кровопотери. - Dispositivo utilizado para eliminar el pulso distal y de ese modo controlar la pérdida de sangre - Un appareil servent a compresser les artères et veines afin de reduire la perte de sang. - Opaska zaciskowa CAT służy do tamowanie krwotoków w sytuacji zranienia kończyn z masywnym krwawieniem tętniczym lub żylnym. - - - Morphine autoinjector - Морфин в автоматическом шприце - Morfina auto-inyectable - Auto-injecteur de Morphine - Autostrzykawka z morfiną - - - Used to combat moderate to severe pain experiences - Для снятия средних и сильных болевых ощущений. - Usado para combatir los estados dolorosos moderados a severos - Utiliser pour contrer les douleurs modéré à severes. - Morfina. Ma silne działanie przeciwbólowe. - - - An analgesic used to combat moderate to severe pain experiences. - Анальгетик для снятия средних и сильных болевых ощущений. - Analgésico usado para combatir los estados dolorosos de moderado a severo. - Un Analgésique puissant servant a contrer les douleur modéré a severe. - Organiczny związek chemiczny z grupy alkaloidów. Ma silne działanie przeciwbólowe. - - - Atropin autoinjector - Атропин в автоматическом шприце - Atropina auto-inyectable - Auto-injecteur d'Atropine - Autostrzykawka AtroPen - - - Used in NBC scenarios - Применяется для защиты от ОМП - Usado en escenarios NBQ - Utiliser en cas d'attaque CBRN - Atropina. Stosowana jako lek rozkurczowy i środek rozszerzający źrenice. - - - A drug used by the Military in NBC scenarios. - Препарат, используемый в войсках для защиты от оружия массового поражения. - Medicamento usado por Militares en escenarios NBQ - Médicament utilisé par l'armée en cas d'attaque CBRN - Atropina. Stosowana jako lek rozkurczowy i środek rozszerzający źrenice. Środek stosowany w przypadku zagrożeń NBC. - - - Epinephrine autoinjector - Адреналин в автоматическом шприце - Epinefrina auto-inyectable - Auto-injecteur d'épinéphrine - Autostrzykawka EpiPen - - - Increase heart rate and counter effects given by allergic reactions - Стимулирует работу сердца и купирует аллергические реакции. - Aumenta la frecuencia cardiaca y contraresta los efectos de las reacciones alérgicas - Augmente la Fréquance cadiaque et contré les effet d'une reaction Anaphylactique - Adrenalina. Zwiększa puls i przeciwdziała efektom wywołanym przez reakcje alergiczne - - - A drug that works on a sympathetic response to dilate the bronchi, increase heart rate and counter such effects given by allergic reactions (anaphylaxis). Used in sudden cardiac arrest scenarios with decreasing positive outcomes. - Препарат, вызывающий симпатическую реакцию, приводящую к расширению бронхов, увеличению частоты сердечных сокращений и купированию аллергических реакций (анафилактического шока). Применяется при остановке сердца с уменьшением вероятности благоприятного исхода. - Medicamento que dilata los bronquios, aumenta la frecuencia cardiaca y contrarresta los efectos de las reacciones alérgicas (anafilaxis). Se utiliza en caso de paros cardiacos repentinos. - Un medicament qui fonctione sur le systeme sympatique créan une dilatation des bronches, augmente la fréquance cardiaque et contre les effet d'une reaction alergique (anaphylaxie). Utiliser lors d'arret cardio-respiratoire pour augmenté les chances retrouver un ryhtme. - EpiPen z adrenaliną ma działanie sympatykomimetyczne, tj. pobudza receptory alfa- i beta-adrenergiczne. Pobudzenie układu współczulnego prowadzi do zwiększenia częstotliwości pracy serca, zwiększenia pojemności wyrzutowej serca i przyśpieszenia krążenia wieńcowego. Pobudzenie oskrzelowych receptorów beta-adrenergicznych wywołuje rozkurcz mięśni gładkich oskrzeli, co w efekcie zmniejsza towarzyszące oddychaniu świsty i duszności. - - - Plasma IV (1000ml) - Плазма для в/в вливания (1000 мл) - Plasma Intravenoso (1000ml) - Plasma Sanguin IV (1000ml) - Osocze IV (1000ml) - - - A volume-expanding blood supplement. - Дополнительный препарат, применяемый при возмещении объема крови. - Suplemento para expandir el volumen sanguíneo. - Supplement visant a remplacer les volume sanguin - Składnik krwi, używany do zwiększenia jej objętości. - - - A volume-expanding blood supplement. - Дополнительный препарат, применяемый при возмещении объема крови. - Suplemento para expandir el volumen sanguíneo. - Supplement visant a remplacer le volume sanguin et remplace les plaquettes. - Składnik krwi, używany do zwiększenia jej objętości. - - - Plasma IV (500ml) - Плазма для в/в вливания (500 мл) - Plasma Intravenoso (500ml) - Plasma Sanguin IV (500ml) - Osocze IV (500ml) - - - Plasma IV (250ml) - Плазма для в/в вливания (250 мл) - Plasma Intravenoso (250ml) - Plasma Sanguin (250ml) - Osocze IV (250ml) - - - Blood IV (1000ml) - Кровь для переливания (1000 мл) - Sangre Intravenosa (1000ml) - Cullot Sanguin IV (1000ml) - Krew IV (1000ml) - - - Blood IV, for restoring a patients blood (keep cold) - Пакет крови для возмещения объема потерянной крови (хранить в холодильнике) - Sangre Intravenosa, para restarurar el volumen sanguíneo (mantener frío) - Cullot Sanguin IV, pour remplacer le volume sanguin (garder Réfrigeré) - Krew IV, używana do uzupełnienia krwi u pacjenta, trzymać w warunkach chłodniczych - - - O Negative infusion blood used in strict and rare events to replenish blood supply usually conducted in the transport phase of medical care. - Кровь I группы, резус-отрицательная, применяется по жизненным показаниям для возмещения объема потерянной крови на догоспитальном этапе оказания медицинской помощи. - Cullot Sanguin O- ,utiliser seulement lors de perte sanguine majeur afin de remplacer le volume sanguin perdu. Habituelment utiliser lors du transport ou dans un etablisement de soin. - Krew 0 Rh-, używana w rzadkich i szczególnych przypadkach do uzupełnienia krwi u pacjenta, zazwyczaj w trakcie fazie transportu rannej osoby do szpitala. - Utilice sólo durante gran pérdida de sangre para reemplazar el volumen de sangre perdido. Uso habitual durante el transporte de heridos. - - - Blood IV (500ml) - Кровь для переливания (500 мл) - Sangre Intravenosa (500ml) - Cullot Sanguin IV (500ml) - Krew IV (500ml) - - - Blood IV (250ml) - Кровь для переливания (250 мл) - Sangre Intravenosa (250ml) - Cullot Sanguin IV (250ml) - Krew IV (250ml) - - - Saline IV (1000ml) - Физраствор для в/в вливания (1000 мл) - Solución Salina Intravenosa (1000ml) - solution Saline 0.9% IV (1000ml) - Solanka 0,9% IV (1000ml) - - - Saline IV, for restoring a patients blood - Пакет физраствора для возмещения объема потерянной крови - Solución Salina Intravenosa, para restaurar el volumen sanguíneo - Solution Saline 0.9% IV, pour retablir temporairement la tention arteriel - Solanka 0,9%, podawana dożylnie (IV), używana w celu uzupełnienia krwi u pacjenta - - - A medical volume-replenishing agent introduced into the blood system through an IV infusion. - Пакет физиологического раствора для возмещения объема потерянной крови путем внутривенного вливания. - Suero fisiológico inoculado al torrente sanguíneo de forma intravenosa. - Un remplacment temporaire pour rétablir la tention artériel lors de perte sanguine, étant ajouter par intraveineuse - Używany w medycynie w formie płynu infuzyjnego jako środek nawadniający i uzupełniający niedobór elektrolitów, podawany dożylnie (IV). - - - Saline IV (500ml) - Физраствор для в/в вливания (500 мл) - Solución Salina Intravenosa (500ml) - Solution Saline 0.9% IV (500ml) - Solanka 0,9% IV (500ml) - - - Saline IV (250ml) - Физраствор для в/в вливания (250 мл) - Solución Salina Intravenosa (250ml) - Solution Saline 0.9% IV (250ml) - Solanka 0,9% IV (250ml) - - - Basic Field Dressing (QuikClot) - Первичный перевязочный пакет (QuikClot) - Vendaje Básico (Coagulante) - Bandage Regulier (Coagulant) - Opatrunek QuikClot - - - QuikClot bandage - Гемостатический пакет QuikClot - Venda Coagulante - Bandage coagulant - Podstawowy opatrunek stosowany na rany - - - - - Un bandage servant a coaguler les seignements mineur à moyen. - Proszkowy opatrunek adsorbcyjny przeznaczony do tamowania zagrażających życiu krwawień średniej i dużej intensywności. - Vendaje Hemostático con coagulante que detiene el sangrado. - - - Personal Aid Kit - Аптечка - Kit de Soporte Vital Avanzado - Équipement de support Vitale - Apteczka osobista - - - Includes various treatment kit needed for stitching or advanced treatment - Содержит различные материалы и инструменты для зашивания ран и оказания специальной медпомощи. - Incluye material médico para tratamientos avanzados - Inclue du matériel medical pour les traitement avancé, tel les point de suture. - Zestaw środków medycznych do opatrywania ran i dodatkowego leczenia po-urazowego - - - - - - - - - Surgical Kit - Хирургический набор - Kit Quirúrgico - - - Surgical Kit for in field advanced medical treatment - Набор для хирургической помощи в полевых условиях - Kit Quirúrgico para el tratamiento avanzado en el campo de batalla - - - Surgical Kit for in field advanced medical treatment - Набор для хирургической помощи в полевых условиях - Kit Quirúrgico para el tratamiento avanzado en el campo de batalla - - - Bodybag - Мешок для трупов - Bolsa para cadáveres - - - A bodybag for dead bodies - Мешок для упаковки трупов - Bolsa para cadáveres - - - A bodybag for dead bodies - Мешок для упаковки трупов - Bolsa para cadáveres - - - - - Blood Pressure - Артериальное давление - Presión Arterial - - - Checking Blood Pressure.. - Проверка артериального давления... - Comprobando Presión Arterial... - - - You checked %1 - Вы осмотрели раненого %1 - Examinando a %1 - - - You find a blood pressure of %2/%3 - Артериальное давление %2/%3 - La Presión Arterial es %2/%3 - - - You find a low blood pressure - Давление низкое - La Presión Arterial es baja - - - You find a normal blood pressure - Давление нормальное - La Presión Arterial es normal - - - You find a high blood pressure - Давление высокое - La Presión Arterial es alta - - - You find no blood pressure - Давления нет - No hay Presión Arterial - - - You fail to find a blood pressure - Артериальное давление не определяется - No puedes encontrar Presión Arterial - - - Pulse - Пульс - Pulso - - - Checking Heart Rate.. - Проверка пульса... - Comprobando Pulso... - - - You checked %1 - Вы осмотрели раненого %1 - Examinando a %1 - - - You find a Heart Rate of %2 - Пульс %2 уд./мин. - El Pulso es %2 - - - You find a weak Heart Rate - Пульс слабый - El Pulso es débil - - - You find a strong Heart Rate - Пульс учащенный - El Pulso está acelerado - - - You find a normal Heart Rate - Пульс в норме - El Pulso es bueno - - - You find no Heart Rate - Пульс не прощупывается - No tiene Pulso - - - Response - Реакция - Reacciona - - - You check response of patient - Вы проверяете реакцию раненого - Compruebas si el paciente reacciona - - - %1 is responsive - %1 реагирует на раздражители - %1 ha reaccionado - - - %1 is not responsive - %1 не реагирует - %1 no reacciona - - - You checked %1 - Вы осмотрели раненого %1 - Examinas a %1 - - - Bandaged - Повязка наложена - Vendado - - - You bandage %1 (%2) - Вы перевязали раненого %1 (%2) - Aplicas vendaje a %1 en %2 - - - %1 is bandaging you - %1 перевязывает вас - %1 te está vendando - - - You start stitching injures from %1 (%2) - Вы зашиваете ранения от %1 (%2) - Estás suturando heridas de %1 en %2 - - - Stitching - Наложение швов - Suturando - - - You treat the airway of %1 - Вы интубируете раненого %1 - Estás intubando a %1 - - - Airway - Дыхательные пути - Vías Aéreas - - - %1 is treating your airway - %1 проводит вам интубацию - %1 te está intubando - - - Drag - Ziehen - Arrastrar - Ciągnij - Táhnout - Тащить - Tracter - Húzás - Arrastar - Trascina - - - Carry - Tragen - Cargar - Nieś - Nést - Нести - Porter - Cipelés - Carregar - Trasporta - - - Release - Loslassen - Soltar - Połóż - Položit - Отпустить - Déposer - Elenged - Largar - Lascia - - - Load Patient Into - Patient Einladen - Cargar el paciente en - Załaduj pacjenta - Naložit pacianta do - Погрузить пациента в - Embarquer le Patient - Sebesült berakása - Carregar Paciente Em - Carica paziente nel - - - Unload Patient - Patient Ausladen - Descargar el paciente - Wyładuj pacjenta - Vyložit pacienta - Выгрузить пациента - Débarquer le Patient - Sebesült kihúzása - Descarregar Paciente - Scarica il paziente - - - Unload patient - - - Load patient - - - Place body in bodybag - - - Placing body in bodybag - - - - - %1 has bandaged patient - - - %1 used %2 - - - %1 has given an IV - - - %1 applied a tourniquet - - - + + + + Inject Atropine + Injetar Atropina + + + Inject Epinephrine + Epinephrine injizieren + Inyectar Epinefrina + Wtrzyknij adrenalinę + Aplikovat Adrenalin + Ввести андреналил + Adrénaline + Adrenalin + Injetar Epinefrina + Inietta Epinefrina + + + Inject Morphine + Morphin injizieren + Inyectar Morfina + Wstrzyknij morfinę + Aplikovat Morfin + Ввести морфин + Morphine + Morfium + Injetar Morfina + Inietta Morfina + + + Transfuse Blood + Bluttransfusion + Transfundir sangre + Przetocz krew + Transfúze krve + Перелить кровь + Transfusion + Infúzió + Transfundir Sangue + Effettua Trasfusione + + + Transfuse Plasma + Transfundir Plasma + + + Transfuse Saline + Transfundir Soro + + + Apply Tourniquet + Aplicar Torniquete + + + Bandage + Verbinden + Venda + Bandaż + Obvázat + Pansement + Benda + Kötözés + Atadura + Перевязать + + + Bandage Head + Kopf verbinden + Vendar la cabeza + Bandażuj głowę + Obvázat hlavu + Перевязать голову + Pansement Tête + Fej kötözése + Atar Cabeça + Benda la testa + + + Bandage Torso + Torso verbinden + Vendar el torso + Bandażuj tors + Obvázat hruď + Перевязать торс + Pansement Torse + Felsőtest kötözése + Atar Tronco + Benda il torso + + + Bandage Left Arm + Arm links verbinden + Vendar el brazo izquierdo + Bandażuj lewe ramię + Obvázat levou ruku + Перевязать левую руку + Pansement Bras Gauche + Bal kar kötözése + Atar Braço Esquerdo + Benda il braccio sinistro + + + Bandage Right Arm + Arm rechts verbinden + Vendar el brazo derecho + Bandażuj prawe ramię + Obvázat pravou ruku + Перевязать правую руку + Pansement Bras Droit + Jobb kar kötözése + Atar Braço Direito + Benda il braccio destro + + + Bandage Left Leg + Bein links verbinden + Vendar la pierna izquierda + Bandażuj lewą nogę + Obvázat levou nohu + Перевязать левую ногу + Pansement Jambe Gauche + Bal láb kötözése + Atar Perna Esquerda + Benda la gamba sinistra + + + Bandage Right Leg + Bein rechts verbinden + Vendar la pierna derecha + Bandażuj prawą nogę + Obvázat pravou nohu + Перевязать правую ногу + Pansement Jambe Droite + Jobb láb kötözése + Atar Perna Direita + Benda la gamba destra + + + Injecting Morphine ... + Morphin injizieren ... + Inyectando Morfina ... + Wstrzykiwanie morfiny ... + Aplikuju Morfin ... + Введение морфина... + Injection de Morphine... + Morfium beadása... + Injetando Morfina ... + Inietto la morfina ... + + + Injecting Epinephrine ... + Epinephrine injizieren ... + Inyectando Epinefrina ... + Wstrzykiwanie adrenaliny ... + Aplikuju Adrenalin ... + Введение андреналина + Injection d'Adrénaline ... + Adrenalin beadása... + Injetando Epinefrina ... + Inietto l'epinefrina ... + + + Injecting Atropine ... + Injetando Atropina + + + Transfusing Blood ... + Bluttransfusion ... + Realizando transfusión ... + Przetaczanie krwi ... + Probíhá transfúze krve ... + Переливание крови... + Transfusion Sanguine ... + Infúzió... + Transfundindo Sangue ... + Effettuo la trasfusione ... + + + Transfusing Saline ... + Transfundindo Soro... + + + Transfusing Plasma ... + Transfundindo Plasma... + + + Bandaging ... + Verbinden ... + Vendando ... + Bandażowanie ... + Obvazuji ... + Pansement ... + Sto applicando la benda ... + Bekötözés... + Atando ... + Перевязывание.... + + + Applying Tourniquet ... + Applicando Torniquete + + + Medical + Zdravotní + Médical + Sanitäter + Medico + Medyczne + Médico + Медик + Médico + + + Field Dressing + Curativo de Campo + + + Packing Bandage + Bandagem de Compressão + + + Elastic Bandage + Bandagem Elástica + + + QuikClot + QuikClot + + + Check Pulse + Checar Pulso + + + Check Blood Pressure + Chegar Pressão Sanguínea + + + Triage Card + Cartão de Triagem + + + Tourniquet + Torniquete + + + Remove Tourniquet + Remover Torniquete + + + Give Blood IV (1000ml) + Administrar Sangue IV (1000ml) + + + Give Blood IV (500ml) + Administrar Sangue IV (500ml) + + + Give Blood IV (250ml) + Administrar Sangue IV (250ml) + + + Give Plasma IV (1000ml) + Administrar Plasma IV (1000ml) + + + Give Plasma IV (500ml) + Administrar Plasma IV (500ml) + + + Give Plasma IV (250ml) + Administrar Plasma IV (250ml) + + + Give Saline IV (1000ml) + Administrar Soro IV (1000ml) + + + Give Saline IV (500ml) + Administrar Soro IV (500ml) + + + Give Saline IV (250ml) + Administrar Soro IV (250ml) + + + + + Minor + Leve + + + Delayed + Atrasado + + + Immediate + Imediato + + + Deceased + Falecido + + + None + Nenhum + + + Normal breathing + Дыхание в норме + Respiración normal + Respiration Normale + Normalny oddech + Respiração normal + + + No breathing + Дыхания нет + No respira + Apnée + Brak oddechu + Não respira + + + Difficult breathing + Дыхание затруднено + Dificultad para respirar + Difficultée Respiratoire + Trudności z oddychaniem + Dificuldade para respirar + + + Almost no breathing + Дыхания почти нет + Casi sin respirar + Respiration Faible + Prawie brak oddechu + Quase não respira + + + Bleeding + Кровотечение + Sangrando + Seignement + Krwawienie zewnętrzne + Sangrando + + + In Pain + Испытывает боль + Con Dolor + A De La Douleur + W bólu + Com dor + + + Lost a lot of Blood + Большая кровопотеря + Mucha Sangre perdida + A Perdu Bcp de Sang + Stracił dużo krwi + Perdeu muito sangue + + + Tourniquet [CAT] + Жгут + Torniquete [CAT] + Garot [CAT] + Opaska uciskowa [CAT] + Torniquete [CAT] + + + Receiving IV [%1ml] + Recebendo IV [%1ml] + + + + + Bandage (Basic) + Повязка (обычная) + Vendaje (Básico) + Bandage (Standard) + Bandaż (jałowy) + Bandagem(Básico) + + + Used to cover a wound + Для перевязки ран + Utilizado para cubrir una herida + Utilisé Pour Couvrir Une Blessure + Używany w celu przykrycia i ochrony miejsca zranienia + Usado para cobrir um ferimento + + + A dressing, that is a particular material used to cover a wound, which is applied over the wound once bleeding has been stemmed. + Повязка, накладываемая поверх раны после остановки кровотечения. + Un apósito, material específico utilizado para cubrir una herida, se aplica sobre la herida una vez ha dejado de sangrar. + C'est un bandage, qui est fait d'un matériel spécial utiliser pour couvrir une blessure, qui peut etre appliquer des que le seignement as ete stopper. + Opatrunek materiałowy, używany do przykrywania ran, zakładany na ranę po zatamowaniu krwawienia. + Uma curativo, material específico para cobrir um ferimento que é aplicado assim que o sangramento é estancando. + + + Packing Bandage + Тампонирующая повязка + Vendaje Compresivo + Bandage Mèche + Bandaż (uciskowy) + Bandagem de Compressão + + + Used to pack medium to large wounds and stem the bleeding + Для тампонирования ран среднего и большого размера и остановки кровотечения. + Se utiliza para vendar heridas medianas y grandes y detener el sangrado + Utiliser pour remplire la cavité créé dans une blessure moyenne et grande. + Używany w celu opatrywania średnich i dużych ran oraz tamowania krwawienia. + Usado para o preenchimento de cavidades geradas por ferimentos médios e grandes e estancar o sangramento. + + + A bandage used to pack the wound to stem bleeding and facilitate wound healing. Packing a wound is an option in large polytrauma injuries. + Повязка для тампонирования раны, остановки кровотечения и лучшего заживления. При тяжелых сочетанных ранениях возможно тампонирование раны. + Se utiliza para detener la hemorragia de una herida y favorecer su cicatrización. Se usa en grandes lesiones o politraumatismos. + Un bandage servent a etre inseré dans les blessure pour éponger le seignement et faciliter la guerrison. Ce bandage est une option pour soigner les lession de politrauma. + Opatrunek stosowany w celu zatrzymania krwawienia i osłony większych ran. + Uma bandagem usada para preencher o ferimento para estancar o sangramento e facilitar a cicatrização. Preenchimento de feridas é uma opção em ferimentos de politrauma grandes. + + + Bandage (Elastic) + Повязка (давящая) + Vendaje (Elástico) + Bandage (Élastique) + Bandaż (elastyczny) + Bandagem (Elástica) + + + Bandage kit, Elastic + Давящая повязка + Vendaje (Elástico) + Bandage Compressif Élastique + Zestaw bandaży elastycznych. + Kit de Bandagem, Elástica + + + + + Ce bandage peut etre utiliser pour compresser la plaie afin de ralentire le seignement et assurer la tenue du bandage lors de mouvment. + Elastyczna opaska podtrzymująca opatrunek oraz usztywniająca okolice stawów. + Brinda una compresión uniforme y ofrece soporte extra a una zona lesionada + Esta bandagem pode ser utilizada para comprimir o ferimento e diminuir o sangramento e garantir que o ferimento não abra em movimento. + + + Tourniquet (CAT) + Жгут + Torniquete (CAT) + Garot (CAT) + Staza (typ. CAT) + Torniquete (CAT) + + + Slows down blood loss when bleeding + Уменьшает кровопотерю при кровотечении. + Reduce la velocidad de pérdida de sangre + Ralentit le seignement + Zmniejsza ubytek krwi z kończyn w przypadku krwawienia. + Reduz a velocidade da perda de sangue + + + A constricting device used to compress venous and arterial circulation in effect inhibiting or slowing blood flow and therefore decreasing loss of blood. + Жгут используется для прижатия сосудов, приводящего к остановке или значительному уменьшению кровотечения и сокращению кровопотери. + Dispositivo utilizado para eliminar el pulso distal y de ese modo controlar la pérdida de sangre + Un appareil servent a compresser les artères et veines afin de reduire la perte de sang. + Opaska zaciskowa CAT służy do tamowanie krwotoków w sytuacji zranienia kończyn z masywnym krwawieniem tętniczym lub żylnym. + A aparelho que comprime as artérias e veias para diminuir a perda de sangue. + + + Morphine autoinjector + Морфин в автоматическом шприце + Morfina auto-inyectable + Auto-injecteur de Morphine + Autostrzykawka z morfiną + Auto-injetor de morfina + + + Used to combat moderate to severe pain experiences + Для снятия средних и сильных болевых ощущений. + Usado para combatir los estados dolorosos moderados a severos + Utiliser pour contrer les douleurs modéré à severes. + Morfina. Ma silne działanie przeciwbólowe. + Usado para combater dores moderadas e severas + + + An analgesic used to combat moderate to severe pain experiences. + Анальгетик для снятия средних и сильных болевых ощущений. + Analgésico usado para combatir los estados dolorosos de moderado a severo. + Un Analgésique puissant servant a contrer les douleur modéré a severe. + Organiczny związek chemiczny z grupy alkaloidów. Ma silne działanie przeciwbólowe. + Um analgésico usado para combater dores moderadas e fortes. + + + Atropin autoinjector + Атропин в автоматическом шприце + Atropina auto-inyectable + Auto-injecteur d'Atropine + Autostrzykawka AtroPen + Auto-injetor de Atropina + + + Used in NBC scenarios + Применяется для защиты от ОМП + Usado en escenarios NBQ + Utiliser en cas d'attaque CBRN + Atropina. Stosowana jako lek rozkurczowy i środek rozszerzający źrenice. + Usado em casos de ataque QBRN + + + A drug used by the Military in NBC scenarios. + Препарат, используемый в войсках для защиты от оружия массового поражения. + Medicamento usado por Militares en escenarios NBQ + Médicament utilisé par l'armée en cas d'attaque CBRN + Atropina. Stosowana jako lek rozkurczowy i środek rozszerzający źrenice. Środek stosowany w przypadku zagrożeń NBC. + Uma droga usada por militares em casos de ataque QBRN. + + + Epinephrine autoinjector + Адреналин в автоматическом шприце + Epinefrina auto-inyectable + Auto-injecteur d'épinéphrine + Autostrzykawka EpiPen + Auto-injetor de epinefrina + + + Increase heart rate and counter effects given by allergic reactions + Стимулирует работу сердца и купирует аллергические реакции. + Aumenta la frecuencia cardiaca y contraresta los efectos de las reacciones alérgicas + Augmente la Fréquance cadiaque et contré les effet d'une reaction Anaphylactique + Adrenalina. Zwiększa puls i przeciwdziała efektom wywołanym przez reakcje alergiczne + Aumenta a frequência cardíaca e combate efeitos causados por reações alérgicas + + + A drug that works on a sympathetic response to dilate the bronchi, increase heart rate and counter such effects given by allergic reactions (anaphylaxis). Used in sudden cardiac arrest scenarios with decreasing positive outcomes. + Препарат, вызывающий симпатическую реакцию, приводящую к расширению бронхов, увеличению частоты сердечных сокращений и купированию аллергических реакций (анафилактического шока). Применяется при остановке сердца с уменьшением вероятности благоприятного исхода. + Medicamento que dilata los bronquios, aumenta la frecuencia cardiaca y contrarresta los efectos de las reacciones alérgicas (anafilaxis). Se utiliza en caso de paros cardiacos repentinos. + Un medicament qui fonctione sur le systeme sympatique créan une dilatation des bronches, augmente la fréquance cardiaque et contre les effet d'une reaction alergique (anaphylaxie). Utiliser lors d'arret cardio-respiratoire pour augmenté les chances retrouver un ryhtme. + EpiPen z adrenaliną ma działanie sympatykomimetyczne, tj. pobudza receptory alfa- i beta-adrenergiczne. Pobudzenie układu współczulnego prowadzi do zwiększenia częstotliwości pracy serca, zwiększenia pojemności wyrzutowej serca i przyśpieszenia krążenia wieńcowego. Pobudzenie oskrzelowych receptorów beta-adrenergicznych wywołuje rozkurcz mięśni gładkich oskrzeli, co w efekcie zmniejsza towarzyszące oddychaniu świsty i duszności. + Uma droga trabalha dilatando os bronquios, aumentando a frequência cardíaca e combate efeitos de reações alérgicas(anáfilaticas). Usado em casos de parada cardiaca com poucas changes de recuperação. + + + Plasma IV (1000ml) + Плазма для в/в вливания (1000 мл) + Plasma Intravenoso (1000ml) + Plasma Sanguin IV (1000ml) + Osocze IV (1000ml) + Plasma IV (1000ml) + + + A volume-expanding blood supplement. + Дополнительный препарат, применяемый при возмещении объема крови. + Suplemento para expandir el volumen sanguíneo. + Supplement visant a remplacer les volume sanguin + Składnik krwi, używany do zwiększenia jej objętości. + Suplemento para expandir o volume sanguíneo. + + + A volume-expanding blood supplement. + Дополнительный препарат, применяемый при возмещении объема крови. + Suplemento para expandir el volumen sanguíneo. + Supplement visant a remplacer le volume sanguin et remplace les plaquettes. + Składnik krwi, używany do zwiększenia jej objętości. + Suplemento para expandir o volume sanguíneo. + + + Plasma IV (500ml) + Плазма для в/в вливания (500 мл) + Plasma Intravenoso (500ml) + Plasma Sanguin IV (500ml) + Osocze IV (500ml) + Plasma IV (500ml) + + + Plasma IV (250ml) + Плазма для в/в вливания (250 мл) + Plasma Intravenoso (250ml) + Plasma Sanguin (250ml) + Osocze IV (250ml) + Plasma IV (250ml) + + + Blood IV (1000ml) + Кровь для переливания (1000 мл) + Sangre Intravenosa (1000ml) + Cullot Sanguin IV (1000ml) + Krew IV (1000ml) + Sangue IV (1000ml) + + + Blood IV, for restoring a patients blood (keep cold) + Пакет крови для возмещения объема потерянной крови (хранить в холодильнике) + Sangre Intravenosa, para restarurar el volumen sanguíneo (mantener frío) + Cullot Sanguin IV, pour remplacer le volume sanguin (garder Réfrigeré) + Krew IV, używana do uzupełnienia krwi u pacjenta, trzymać w warunkach chłodniczych + Sangue intravenoso, para restaurar o volume sanguinio do paciente.(Manter frio) + + + O Negative infusion blood used in strict and rare events to replenish blood supply usually conducted in the transport phase of medical care. + Кровь I группы, резус-отрицательная, применяется по жизненным показаниям для возмещения объема потерянной крови на догоспитальном этапе оказания медицинской помощи. + Cullot Sanguin O- ,utiliser seulement lors de perte sanguine majeur afin de remplacer le volume sanguin perdu. Habituelment utiliser lors du transport ou dans un etablisement de soin. + Krew 0 Rh-, używana w rzadkich i szczególnych przypadkach do uzupełnienia krwi u pacjenta, zazwyczaj w trakcie fazie transportu rannej osoby do szpitala. + Utilice sólo durante gran pérdida de sangre para reemplazar el volumen de sangre perdido. Uso habitual durante el transporte de heridos. + Sangue O- , utilizado em casos raros para rapidamente repor o sangue. Uso habitual ocorre durante o transporte ou em estações de tratamento. + + + Blood IV (500ml) + Кровь для переливания (500 мл) + Sangre Intravenosa (500ml) + Cullot Sanguin IV (500ml) + Krew IV (500ml) + Sangue IV (500ml) + + + Blood IV (250ml) + Кровь для переливания (250 мл) + Sangre Intravenosa (250ml) + Cullot Sanguin IV (250ml) + Krew IV (250ml) + Sangue IV (250ml) + + + Saline IV (1000ml) + Физраствор для в/в вливания (1000 мл) + Solución Salina Intravenosa (1000ml) + solution Saline 0.9% IV (1000ml) + Solanka 0,9% IV (1000ml) + Soro IV (1000ml) + + + Saline IV, for restoring a patients blood + Пакет физраствора для возмещения объема потерянной крови + Solución Salina Intravenosa, para restaurar el volumen sanguíneo + Solution Saline 0.9% IV, pour retablir temporairement la tention arteriel + Solanka 0,9%, podawana dożylnie (IV), używana w celu uzupełnienia krwi u pacjenta + Solução Salina Intravenosa 0.9%, para restaurar o volume de sangue temporariamente. + + + A medical volume-replenishing agent introduced into the blood system through an IV infusion. + Пакет физиологического раствора для возмещения объема потерянной крови путем внутривенного вливания. + Suero fisiológico inoculado al torrente sanguíneo de forma intravenosa. + Un remplacment temporaire pour rétablir la tention artériel lors de perte sanguine, étant ajouter par intraveineuse + Używany w medycynie w formie płynu infuzyjnego jako środek nawadniający i uzupełniający niedobór elektrolitów, podawany dożylnie (IV). + Uma reposição temporaria para restaurar a pressão arterial perdida por perda de sangue. + + + Saline IV (500ml) + Физраствор для в/в вливания (500 мл) + Solución Salina Intravenosa (500ml) + Solution Saline 0.9% IV (500ml) + Solanka 0,9% IV (500ml) + Soro IV (1000ml) + + + Saline IV (250ml) + Физраствор для в/в вливания (250 мл) + Solución Salina Intravenosa (250ml) + Solution Saline 0.9% IV (250ml) + Solanka 0,9% IV (250ml) + Soro IV (1000ml) + + + Basic Field Dressing (QuikClot) + Первичный перевязочный пакет (QuikClot) + Vendaje Básico (Coagulante) + Bandage Regulier (Coagulant) + Opatrunek QuikClot + Bandagem básica (Coagulante) + + + QuikClot bandage + Гемостатический пакет QuikClot + Venda Coagulante + Bandage coagulant + Podstawowy opatrunek stosowany na rany + Bandagem com agente coagulante + + + + + Un bandage servant a coaguler les seignements mineur à moyen. + Proszkowy opatrunek adsorbcyjny przeznaczony do tamowania zagrażających życiu krwawień średniej i dużej intensywności. + Vendaje Hemostático con coagulante que detiene el sangrado. + Bandagem Hemostática com coagulante que controla hemorragia médias e grandes com risco de vida. + + + Personal Aid Kit + Аптечка + Kit de Soporte Vital Avanzado + Équipement de support Vitale + Apteczka osobista + Kit De Primeiros Socorros Pessoal + + + Includes various treatment kit needed for stitching or advanced treatment + Содержит различные материалы и инструменты для зашивания ран и оказания специальной медпомощи. + Incluye material médico para tratamientos avanzados + Inclue du matériel medical pour les traitement avancé, tel les point de suture. + Zestaw środków medycznych do opatrywania ran i dodatkowego leczenia po-urazowego + Inclui vários tratamentos materiais para custura e tratamento avançado + + + + + + + + + Surgical Kit + Хирургический набор + Kit Quirúrgico + Kit Cirurgico + + + Surgical Kit for in field advanced medical treatment + Набор для хирургической помощи в полевых условиях + Kit Quirúrgico para el tratamiento avanzado en el campo de batalla + Kit Cirurgico para uso de tratamento médico avançado em campo + + + Surgical Kit for in field advanced medical treatment + Набор для хирургической помощи в полевых условиях + Kit Quirúrgico para el tratamiento avanzado en el campo de batalla + Kit Cirurgico para uso de tratamento médico avançado em campo. + + + Bodybag + Мешок для трупов + Bolsa para cadáveres + Saco para cadáver + + + A bodybag for dead bodies + Мешок для упаковки трупов + Bolsa para cadáveres + Um saco para corpos mortos + + + A bodybag for dead bodies + Мешок для упаковки трупов + Bolsa para cadáveres + Um saco para corpos mortos. + + + + + Blood Pressure + Артериальное давление + Presión Arterial + Pressão Arterial + + + Checking Blood Pressure.. + Проверка артериального давления... + Comprobando Presión Arterial... + Aferindo Pressão Arterial... + + + You checked %1 + Вы осмотрели раненого %1 + Examinando a %1 + Você aferiu o paciente %1 + + + You find a blood pressure of %2/%3 + Артериальное давление %2/%3 + La Presión Arterial es %2/%3 + A Pressão Arterial é de %2/%3 + + + You find a low blood pressure + Давление низкое + La Presión Arterial es baja + Pressão Arterial baixa + + + You find a normal blood pressure + Давление нормальное + La Presión Arterial es normal + Pressão Arterial normal + + + You find a high blood pressure + Давление высокое + La Presión Arterial es alta + Pressão Arterial Alta + + + You find no blood pressure + Давления нет + No hay Presión Arterial + Sem Pressão Arterial + + + You fail to find a blood pressure + Артериальное давление не определяется + No puedes encontrar Presión Arterial + Você falhou em aferir a Pressão Arterial + + + Pulse + Пульс + Pulso + Pulso + + + Checking Heart Rate.. + Проверка пульса... + Comprobando Pulso... + Aferindo Pulso... + + + You checked %1 + Вы осмотрели раненого %1 + Examinando a %1 + Você aferiu o paciente %1 + + + You find a Heart Rate of %2 + Пульс %2 уд./мин. + El Pulso es %2 + A Freqüência Cardíaca é de %2 + + + You find a weak Heart Rate + Пульс слабый + El Pulso es débil + Freqüência Cardíaca baixa + + + You find a strong Heart Rate + Пульс учащенный + El Pulso está acelerado + Freqüência Cardíaca normal + + + You find a normal Heart Rate + Пульс в норме + El Pulso es bueno + Freqüência Cardíaca alta + + + You find no Heart Rate + Пульс не прощупывается + No tiene Pulso + Sem Freqüência Cardíaca + + + Response + Реакция + Reacciona + Reação + + + You check response of patient + Вы проверяете реакцию раненого + Compruebas si el paciente reacciona + Aferindo se o paciente tem reação... + + + %1 is responsive + %1 реагирует на раздражители + %1 ha reaccionado + %1 está respondendo + + + %1 is not responsive + %1 не реагирует + %1 no reacciona + %1 não está respondendo + + + You checked %1 + Вы осмотрели раненого %1 + Examinas a %1 + Você aferiu o paciente %1 + + + Bandaged + Повязка наложена + Vendado + Enfaixado + + + You bandage %1 (%2) + Вы перевязали раненого %1 (%2) + Aplicas vendaje a %1 en %2 + Você aplica bandagem no paciente %1 (%2) + + + %1 is bandaging you + %1 перевязывает вас + %1 te está vendando + %1 está aplicando uma bandagem em você + + + You start stitching injures from %1 (%2) + Вы зашиваете ранения от %1 (%2) + Estás suturando heridas de %1 en %2 + Você começa a suturar os ferimentos do %1 (%2) + + + Stitching + Наложение швов + Suturando + Suturando... + + + You treat the airway of %1 + Вы интубируете раненого %1 + Estás intubando a %1 + Você entuba o %1 + + + Airway + Дыхательные пути + Vías Aéreas + Vias Aéreas + + + %1 is treating your airway + %1 проводит вам интубацию + %1 te está intubando + %1 está te entubando + + + Drag + Ziehen + Arrastrar + Ciągnij + Táhnout + Тащить + Tracter + Húzás + Arrastar + Trascina + + + Carry + Tragen + Cargar + Nieś + Nést + Нести + Porter + Cipelés + Carregar + Trasporta + + + Release + Loslassen + Soltar + Połóż + Položit + Отпустить + Déposer + Elenged + Soltar + Lascia + + + Load Patient Into + Patient Einladen + Cargar el paciente en + Załaduj pacjenta + Naložit pacianta do + Погрузить пациента в + Embarquer le Patient + Sebesült berakása + Carregar Paciente Em + Carica paziente nel + + + Unload Patient + Patient Ausladen + Descargar el paciente + Wyładuj pacjenta + Vyložit pacienta + Выгрузить пациента + Débarquer le Patient + Sebesült kihúzása + Descarregar Paciente + Scarica il paziente + + + Unload patient + Descarregar Paciente + + + Load patient + Carregar Paciente Em + + + Place body in bodybag + Colocar corpo dentro do saco para cadáver + + + Placing body in bodybag + Colocando corpo dentro do saco para cadáver... + + + + + %1 has bandaged patient + %1 aplicou bandagem no paciente + + + %1 used %2 + %1 usou %2 + + + %1 has given an IV + %1 aplicou um intravenoso + + + %1 applied a tourniquet + %1 aplicou um torniquete + + + \ No newline at end of file diff --git a/addons/microdagr/stringtable.xml b/addons/microdagr/stringtable.xml index 772a7a172f..8fadcc32f6 100644 --- a/addons/microdagr/stringtable.xml +++ b/addons/microdagr/stringtable.xml @@ -1,109 +1,131 @@  - - - MicroDAGR GPS - - - MicroDAGR advanced GPS receiver - - - Angular Unit: - - - Mils - - - Show Waypoints On Map: - - - Degrees - - - On - Zapnuto - Oui - Ein - - Wł. - Ativar - Вкл. - - - - Off - Vypnuto - Non - Aus - No - Wył. - Desativar - Выкл. - No - - - Enter Grid Cords: - - - Name of [%1] - - - MGRS-New - - - WGD - - - Range: - Reichweite: - - - Compass Direction - - - Mark - - - Waypoints - Wegpunkte - - - Connect To - - - Settings - Einstellungen - Configuración - - - SetWP - - - Add - - - Delete - Smazat - Supprimer - Löschen - Elimina - Usuń - Excluir - Удалить - Suprimir - - - Toggle MicroDAGR Display Mode - - - Show MicoDAGR - - - Configure MicroDAGR - - - Close MicroDAGR - - + + + MicroDAGR GPS + GPS MicroDAGR + + + MicroDAGR advanced GPS receiver + Recepitor GPS avançado MicroDAGR + + + Angular Unit: + Unidade Angular: + + + Mils + Mils: + + + Show Waypoints On Map: + Mostrar Waypoints no mapa: + + + Degrees + Graus + + + On + Zapnuto + Oui + Ein + + Wł. + Ativar + Вкл. + + + + Off + Vypnuto + Non + Aus + No + Wył. + Desativar + Выкл. + No + + + Enter Grid Cords: + Digite as Ccords. do Grid + + + Name of [%1] + Nome do [%1] + + + MGRS-New + MGRS-Novo + + + WGD + WGD + + + Range: + Reichweite: + Distância: + + + Compass Direction + Direção na bússula + + + Mark + Marca + + + Waypoints + Wegpunkte + Waypoints + + + Connect To + Conectar à + + + Settings + Einstellungen + Configuración + Opções + + + SetWP + Definir WP + + + Add + Adicionar + + + Delete + Smazat + Supprimer + Löschen + Elimina + Usuń + Excluir + Удалить + Suprimir + + + Toggle MicroDAGR Display Mode + Alternar Modo de Display do MicroDAGR + + + Show MicroDAGR + Mostrar MicroDAGR + + + Configure MicroDAGR + Configurar MicroDAGR + + + Close MicroDAGR + Fechar MicroDAGR + + \ No newline at end of file diff --git a/addons/movement/stringtable.xml b/addons/movement/stringtable.xml index d31896acaa..5206139e7f 100644 --- a/addons/movement/stringtable.xml +++ b/addons/movement/stringtable.xml @@ -1,46 +1,48 @@  - - - Show weight in lb - Zeige Gewicht in Pfund - Mostrar peso en libras - Afficher le poids en lb - Pokaż ciężar w funtach - Zobrazit váhu v lb - Mostra peso in libbre - Mostrar peso em libras - Súly megjelenítése fontban. - Показать вес в фунтах - - - Weight: - Gewicht: - Peso: - Poids: - Waga: - Váha: - Peso: - Peso: - Súly: - Вес: - - - Climb - Klettern - Wspinaczka - Trepar - Vylézt - Подняться - - - Can't climb here - Kann hier nicht klettern - Nie możesz wspiąć się tutaj - No se puede trepar aquí - Zde není možné vylézt - Не можете подняться здесь - - + + + Show weight in lb + Zeige Gewicht in Pfund + Mostrar peso en libras + Afficher le poids en lb + Pokaż ciężar w funtach + Zobrazit váhu v lb + Mostra peso in libbre + Mostrar peso em libras + Súly megjelenítése fontban. + Показать вес в фунтах + + + Weight: + Gewicht: + Peso: + Poids: + Waga: + Váha: + Peso: + Peso: + Súly: + Вес: + + + Climb + Klettern + Wspinaczka + Trepar + Vylézt + Подняться + Subir + + + Can't climb here + Kann hier nicht klettern + Nie możesz wspiąć się tutaj + No se puede trepar aquí + Zde není možné vylézt + Не можете подняться здесь + Não se pode subir aqui + + \ No newline at end of file diff --git a/addons/nametags/stringtable.xml b/addons/nametags/stringtable.xml index 622df44aca..12c07fd800 100644 --- a/addons/nametags/stringtable.xml +++ b/addons/nametags/stringtable.xml @@ -1,81 +1,87 @@  - - - Show Names - Namen anzeigen - Mostrar nombres - Afficher noms - Zobrazit jména - Pokaż nazwy - Nevek mutatása - Показать имена - - - Show player names - Spielernamen anzeigen - Mostrar nombres de jugadores - Pokaż nazwy graczy - Afficher nom des joueurs - Játékosnevek mutatása - Zobrazit jména hráčů - Mostrar nomes de jogadores - Mostra i nomi dei giocatori - Показать имена игроков - - - Show player name only on cursor (requires player names) - Pokaż nazwę gracza tylko pod kursorem - Mostrar nombres solo en el cursor (requiere Mostrar nombres de jugadores) - Zeige Spielernamen nur an, wenn die Maus auf sie gerrichtet ist (benötigt Spielernamen) - Noms uniquement sous le curseur (si noms affichés) - Zobrazit jméno hráče jenom na kurzor (vyžaduje jména hráčů) - Mostra i nomi solo se puntati (richiede i nomi dei giocatori abilitati) - Mostrar nome de jogador somente no cursor (requer nome de jogadores) - Játékosok nevének mutatása (névcímke szükséges) - Показать имена игроков только под курсором (требует имен игроков) - - - Show player name only on keypress (requires player names) - Spielernamen nur auf Tastendruck anzeigen (benötigt Spielernamen) - Mostrar nombres solo al pulsar (requiere Mostrar nombres de jugadores) - Noms uniquement sur pression de la touche (si noms affichés) - Zobrazit jména hráčů jen na klávesu (vyžaduje jména hráčů) - Pokaż nazwę gracza tylko po przytrzymaniu klawisza - Játékosnevek mutatása gombnyomásra(névcíme szükséges) - Показать имена игроков только по нажатию клавиши (требует имен игроков) - - - Show player ranks (requires player names) - Spielerränge anzeigen (benötig Spielernamen) - Pokaż rangi graczy (wymaga nazw graczy) - Mostrar rango de los jugadores (requiere Mostrar nombres de jugadores) - Grade des joueurs (si noms affichés) - Zobrazit hodnosti hráčů (vyžaduje jména hráčů) - Mostra i gradi (richiede i nomi dei giocatori abilitati) - Mostrar patente de jogadores (requer nome de jogadores) - Játékosok rendfokozatának mutatása (névcímke szükséges) - Показать звания игроков (требует имен игроков) - - - Show vehicle crew info - Zeige Fahrzeugbesatzung - Mostrar tripulantes - Pokaż informacje o załodze pojazdu - Zobrazit info o posádce vozidla - Показать экипаж - - - Show name tags for AI units - - - Show SoundWaves (requires player names) - Zeigen Schallwelle (benötigt spielernamen) - Mostrar onda sonora (requiere Mostrar nombres de jugadores) - - - Default Nametag Color (Non Group Members) - - + + + Show Names + Namen anzeigen + Mostrar nombres + Afficher noms + Zobrazit jména + Pokaż nazwy + Nevek mutatása + Показать имена + Mostrar nomes + + + Show player names + Spielernamen anzeigen + Mostrar nombres de jugadores + Pokaż nazwy graczy + Afficher nom des joueurs + Játékosnevek mutatása + Zobrazit jména hráčů + Mostrar nomes de jogadores + Mostra i nomi dei giocatori + Показать имена игроков + + + Show player name only on cursor (requires player names) + Pokaż nazwę gracza tylko pod kursorem + Mostrar nombres solo en el cursor (requiere Mostrar nombres de jugadores) + Zeige Spielernamen nur an, wenn die Maus auf sie gerrichtet ist (benötigt Spielernamen) + Noms uniquement sous le curseur (si noms affichés) + Zobrazit jméno hráče jenom na kurzor (vyžaduje jména hráčů) + Mostra i nomi solo se puntati (richiede i nomi dei giocatori abilitati) + Mostrar nome de jogador somente no cursor (requer nome de jogadores) + Játékosok nevének mutatása (névcímke szükséges) + Показать имена игроков только под курсором (требует имен игроков) + + + Show player name only on keypress (requires player names) + Spielernamen nur auf Tastendruck anzeigen (benötigt Spielernamen) + Mostrar nombres solo al pulsar (requiere Mostrar nombres de jugadores) + Noms uniquement sur pression de la touche (si noms affichés) + Zobrazit jména hráčů jen na klávesu (vyžaduje jména hráčů) + Pokaż nazwę gracza tylko po przytrzymaniu klawisza + Játékosnevek mutatása gombnyomásra(névcíme szükséges) + Показать имена игроков только по нажатию клавиши (требует имен игроков) + Mostrar nomes somente ao pressionar teclar (requer nome de jogadores) + + + Show player ranks (requires player names) + Spielerränge anzeigen (benötig Spielernamen) + Pokaż rangi graczy (wymaga nazw graczy) + Mostrar rango de los jugadores (requiere Mostrar nombres de jugadores) + Grade des joueurs (si noms affichés) + Zobrazit hodnosti hráčů (vyžaduje jména hráčů) + Mostra i gradi (richiede i nomi dei giocatori abilitati) + Mostrar patente de jogadores (requer nome de jogadores) + Játékosok rendfokozatának mutatása (névcímke szükséges) + Показать звания игроков (требует имен игроков) + + + Show vehicle crew info + Zeige Fahrzeugbesatzung + Mostrar tripulantes + Pokaż informacje o załodze pojazdu + Zobrazit info o posádce vozidla + Показать экипаж + Mostrar tripulantes + + + Show name tags for AI units + Mostrar nomes para unidades de IA + + + Show SoundWaves (requires player names) + Zeigen Schallwelle (benötigt spielernamen) + Mostrar onda sonora (requiere Mostrar nombres de jugadores) + Mostrar onda sonora (requer nome de jogadores) + + + Default Nametag Color (Non Group Members) + Cor padrão do nome (unidades fora do grupo) + + \ No newline at end of file diff --git a/addons/nightvision/stringtable.xml b/addons/nightvision/stringtable.xml index 16ead016da..9aeb75583e 100644 --- a/addons/nightvision/stringtable.xml +++ b/addons/nightvision/stringtable.xml @@ -1,127 +1,128 @@  - - - NV Goggles (Gen1) - Noktovizor (Gen1) - JVN (Gen1) - NS-Brille (Gen1) - Occhiali notturni (Gen1) - Gogle noktowizyjne (Gen1) - Óculos de visão noturna (Gen1) - ПНВ (Gen1) - Sistema de visión nocturna (Gen1) - - - NV Goggles (Gen2) - Noktovizor (Gen2) - JVN (Gen2) - NS-Brille (Gen2) - Occhiali notturni (Gen2) - Gogle noktowizyjne (Gen2) - Óculos de visão noturna (Gen2) - ПНВ (Gen2) - Sistema de visión nocturna (Gen2) - - - NV Goggles (Gen3) - Noktovizor (Gen3) - JVN (Gen3) - NS-Brille (Gen3) - Occhiali notturni (Gen3) - Gogle noktowizyjne (Gen3) - Óculos de visão noturna (Gen3) - ПНВ (Gen3) - Sistema de visión nocturna (Gen3) - - - NV Goggles (Gen3, Brown) - Noktovizor (Gen3, hnědý) - JVN (Gen3, marron) - NS-Brille (Gen3, Braun) - Occhiali notturni (Gen3, marroni) - Gogle noktowizyjne (Gen3, brązowe) - Óculos de visão noturna (Gen3, marrons) - ПНВ (Gen3, коричневый) - Sistema de visión nocturna (Gen3, marrón) - - - NV Goggles (Gen3, Green) - Noktovizor (Gen3, zelený) - JVN (Gen3, vertes) - NS-Brille (Gen3, Grün) - Occhiali notturni (Gen3, verdi) - Gogle noktowizyjne (Gen3, zielone) - Óculos de visão noturna (Gen3, verdes) - ПНВ (Gen3, зеленый) - Sistema de visión nocturna (Gen3, verde) - - - NV Goggles (Gen3, Black) - Noktovizor (Gen3, černý) - JVN (Gen3, noires) - NS-Brille (Gen3, Schwarz) - Occhiali notturni (Gen3, neri) - Gogle noktowizyjne (Gen3, czarne) - Óculos de visão noturna (Gen3, pretos) - ПНВ (Gen3, черный) - Sistema de visión nocturna (Gen3, negro) - - - NV Goggles (Gen4) - Noktovizor (Gen4) - JVN (Gen4) - NS-Brille (Gen4) - Occhiali notturni (Gen4) - Gogle noktowizyjne (Gen4) - Óculos de visão noturna (Gen4) - ПНВ (Gen4) - Sistema de visión nocturna (Gen4) - - - NV Goggles (Wide) - NS-Brille (Weitwinkel) - Sistema de visión nocturna (Panorámicas) - Gogle noktowizyjne (panoramiczne) - Noktovizor (Široký) - ПНВ (Широкий) - - - Brightness: %1 - Helligkeit: %1 - Brillo: %1 - Czułość: %1 - Zvýšení: %1 - Luminosité : %1 - Контраст: - Fényerő: %1 - Luminosidade: %1 - Luminosità: %1 - - - Increase NVG Brightness - Nachtsichtgerätshelligkeit erhöhen - Aumentar el brillo de las NVG - Zwiększ czułość noktowizji - Zvýšení jasu noktovizoru - Augmenter la luminosité des JVN - Увеличить яркость ПНВ - Fényerő növelése - Aumentar Luminosidade do EVN - Aumenta la luminosità dell'NVG - - - Decrease NVG Brightness - Nachtsichtgerätshelligkeit verringern - Disminuir el brillo de las NVG - Zmniejsz czułość noktowizji - Snížení jasu noktovizoru - Baisser la luminosité des JVN - Уменьшить яркость ПНВ - Fényerő csökkentése - Diminuir Luminosidade do EVN - Riduci la luminosità dell'NVG - - - + + + NV Goggles (Gen1) + Noktovizor (Gen1) + JVN (Gen1) + NS-Brille (Gen1) + Occhiali notturni (Gen1) + Gogle noktowizyjne (Gen1) + Óculos de visão noturna (Gen1) + ПНВ (Gen1) + Sistema de visión nocturna (Gen1) + + + NV Goggles (Gen2) + Noktovizor (Gen2) + JVN (Gen2) + NS-Brille (Gen2) + Occhiali notturni (Gen2) + Gogle noktowizyjne (Gen2) + Óculos de visão noturna (Gen2) + ПНВ (Gen2) + Sistema de visión nocturna (Gen2) + + + NV Goggles (Gen3) + Noktovizor (Gen3) + JVN (Gen3) + NS-Brille (Gen3) + Occhiali notturni (Gen3) + Gogle noktowizyjne (Gen3) + Óculos de visão noturna (Gen3) + ПНВ (Gen3) + Sistema de visión nocturna (Gen3) + + + NV Goggles (Gen3, Brown) + Noktovizor (Gen3, hnědý) + JVN (Gen3, marron) + NS-Brille (Gen3, Braun) + Occhiali notturni (Gen3, marroni) + Gogle noktowizyjne (Gen3, brązowe) + Óculos de visão noturna (Gen3, marrons) + ПНВ (Gen3, коричневый) + Sistema de visión nocturna (Gen3, marrón) + + + NV Goggles (Gen3, Green) + Noktovizor (Gen3, zelený) + JVN (Gen3, vertes) + NS-Brille (Gen3, Grün) + Occhiali notturni (Gen3, verdi) + Gogle noktowizyjne (Gen3, zielone) + Óculos de visão noturna (Gen3, verdes) + ПНВ (Gen3, зеленый) + Sistema de visión nocturna (Gen3, verde) + + + NV Goggles (Gen3, Black) + Noktovizor (Gen3, černý) + JVN (Gen3, noires) + NS-Brille (Gen3, Schwarz) + Occhiali notturni (Gen3, neri) + Gogle noktowizyjne (Gen3, czarne) + Óculos de visão noturna (Gen3, pretos) + ПНВ (Gen3, черный) + Sistema de visión nocturna (Gen3, negro) + + + NV Goggles (Gen4) + Noktovizor (Gen4) + JVN (Gen4) + NS-Brille (Gen4) + Occhiali notturni (Gen4) + Gogle noktowizyjne (Gen4) + Óculos de visão noturna (Gen4) + ПНВ (Gen4) + Sistema de visión nocturna (Gen4) + + + NV Goggles (Wide) + NS-Brille (Weitwinkel) + Sistema de visión nocturna (Panorámicas) + Gogle noktowizyjne (panoramiczne) + Noktovizor (Široký) + ПНВ (Широкий) + Óculos de visão noturna (Panorâmico) + + + Brightness: %1 + Helligkeit: %1 + Brillo: %1 + Czułość: %1 + Zvýšení: %1 + Luminosité : %1 + Контраст: + Fényerő: %1 + Luminosidade: %1 + Luminosità: %1 + + + Increase NVG Brightness + Nachtsichtgerätshelligkeit erhöhen + Aumentar el brillo de las NVG + Zwiększ czułość noktowizji + Zvýšení jasu noktovizoru + Augmenter la luminosité des JVN + Увеличить яркость ПНВ + Fényerő növelése + Aumentar Luminosidade do EVN + Aumenta la luminosità dell'NVG + + + Decrease NVG Brightness + Nachtsichtgerätshelligkeit verringern + Disminuir el brillo de las NVG + Zmniejsz czułość noktowizji + Snížení jasu noktovizoru + Baisser la luminosité des JVN + Уменьшить яркость ПНВ + Fényerő csökkentése + Diminuir Luminosidade do EVN + Riduci la luminosità dell'NVG + + + \ No newline at end of file diff --git a/addons/optionsmenu/stringtable.xml b/addons/optionsmenu/stringtable.xml index 76407da435..facc3e8248 100644 --- a/addons/optionsmenu/stringtable.xml +++ b/addons/optionsmenu/stringtable.xml @@ -1,107 +1,122 @@  - - - ACE Options - ACE Optionen - Opciones ACE - Opcje ACE - ACE Nastavení - ACE Options - ACE Настройки - Opções do ACE - ACE Opciók - Opzioni ACE - - - Fix Animation - - - Reset All - Rücksetzen - - - Colors - Farben - цвета - Colors - - - Options - Optionen - Opciones - Opcje - Nastavení - Options - Настройки - Opções - Opciók - Opzioni - - - Values - - - Yes - Ja - Si - Tak - Ano - Oui - Да - Igen - Sim - Si - - - No - Nein - No - Nie - Ne - Non - Нет - Nem - Não - No - - - Setting: - Nastavení: - Einstellung: - Yстановки: - Ajuste: - - - Export - - - Open Export Menu - - - String input. - - - Array. Seperate elements by using ,. - - - Number - - - Uknown input type - - - Save input - - - Include Client Settings - - - Exclude Client Settings - - - Settings exported to clipboard - - + + + ACE Options + ACE Optionen + Opciones ACE + Opcje ACE + ACE Nastavení + ACE Options + ACE Настройки + Opções do ACE + ACE Opciók + Opzioni ACE + + + Fix Animation + Arrumar Animação + + + Reset All + Rücksetzen + Resetar Tudo + + + Colors + Farben + цвета + Colors + Cores + + + Options + Optionen + Opciones + Opcje + Nastavení + Options + Настройки + Opções + Opciók + Opzioni + + + Values + Valores + + + Yes + Ja + Si + Tak + Ano + Oui + Да + Igen + Sim + Si + + + No + Nein + No + Nie + Ne + Non + Нет + Nem + Não + No + + + Setting: + Nastavení: + Einstellung: + Yстановки: + Ajuste: + Opção: + + + Export + Exportar + + + Open Export Menu + Abrir menu de exportação + + + String input. + Input de String + + + Array. Seperate elements by using ,. + Vetor. Separe elementos usando *,*. + + + Number + Número + + + Uknown input type + Tipo desonhecido de input + + + Save input + Salvar input + + + Include Client Settings + Incluir opções do cliente + + + Exclude Client Settings + Excluir opções do cliente + + + Settings exported to clipboard + Opções exportadas para o clipboard. + + \ No newline at end of file diff --git a/addons/overheating/stringtable.xml b/addons/overheating/stringtable.xml index 5d2c9595df..dea35406bd 100644 --- a/addons/overheating/stringtable.xml +++ b/addons/overheating/stringtable.xml @@ -1,156 +1,158 @@  - - - Display text on jam - - - Display a notification whenever your weapon gets jammed - - - Spare barrel - Ersatzlauf - Cañón de repuesto - Zapasowa lufa - Náhradní hlaveň - Deuxième canon - Запасной ствол - Tartalék cső - Cano Reserva - Canna di ricambio - - - Use to swap barrel. - Benutzen, um Lauf zu wechseln. - Permite intercambiar el cañón - Umożliwia wymianę lufy - Používané k výměně hlavně - Utilisé pour changer de canon. - Используется для смены ствола. - Cső kicseréléséhez. - Use para trocar o cano/estriamento. - Usata per cambiare la canna. - - - Weapon jammed! - Ladehemmung! - Arma encasquillada! - Broń się zacięła! - Zbraň se zasekla! - Arme enrayée - Оружие заклинило! - Elakadt a fegyver! - Arma travada! - Arma inceppata! - - - Clear jam - Ladehemmung beheben - Desencasquillar el arma - Usuń zacięcie - Uvolnit zbraň - Désenrayer l'arme - Исправить клин оружия. - Hárítsd el az akadályt! - Destravar arma - Ripulisci l'arma - - - Jam cleared - Ladehemmung behoben - Arma desencasquillada - Zacięcie usunięte - Zbraň uvolněna - Arme désenrayée - Оружие исправлено - Akadály elhárítva! - Arma destravada - Arma pronta al fuoco - - - Swap barrel - Lauf wechseln - Cambiar el cañón - Wymień lufę - Vyměnit hlaveň - Changer de canon - Сменить ствол - Cserélj csövet! - Substituir cano - Sostiuisci la canna - - - Swapping barrel... - Lauf wird gewechselt... - Cambiando el cañón... - Wymienianie lufy... - Vyměňuji hlaveň ... - Changement du canon... - Смена ствола... - Cső cserélése... - Substituindo cano... - Sto sostituendo la canna ... - - - Swapped barrel - Lauf gewechselt - Cañón cambiado - Lufa wymieniona - Hlaveň vyměněna - Canon changé - Ствол сменен - Cső kicserélve! - Cano substituído - Canna sostituita - - - Check weapons temperature - Temperatur der Waffe prüfen - Verificar temperatura del arma - Sprawdź temperaturę broni - Vérifier la température de l'arme - Hőmérséklet ellenőrzése - Zjistit teplotu zbraně - Conferir temperatura da arma - Controlla la temperatura della canna - Проверить температуру оружия - - - Check<br/>temperature - Temperatur<br/>prüfen - Verificar<br/>temperatura - Sprawdź<br/>temperaturę - Vérifier la<br/>température - Hőmérséklet<br/>ellenőrzése - Zjistit<br/>teplotu - Conferir<br/>temperatura - Controlla la<br/>temperatura - Проверить<br/>температуру - - - Checking temperature ... - Prüfe Temperatur ... - Verificando temperatura ... - Sprawdzanie temperatury ... - Vérification de la température ... - Hőmérséklet ellenőrzése... - Zjišťuju teplotu ... - Conferindo temperatura ... - Sto controllando la temperatura ... - Проверка температуры ... - - - Temperature - Temperatur - Temperatura - Temperatura - Température - Hőmérséklet - Teplota - Temperatura - Temperatura - Температура - - + + + Display text on jam + Mostrar texto quando trava acontecer + + + Display a notification whenever your weapon gets jammed + Mostra uma notificação quando sua arma sofre um travamento. + + + Spare barrel + Ersatzlauf + Cañón de repuesto + Zapasowa lufa + Náhradní hlaveň + Deuxième canon + Запасной ствол + Tartalék cső + Cano Reserva + Canna di ricambio + + + Use to swap barrel. + Benutzen, um Lauf zu wechseln. + Permite intercambiar el cañón + Umożliwia wymianę lufy + Používané k výměně hlavně + Utilisé pour changer de canon. + Используется для смены ствола. + Cső kicseréléséhez. + Use para trocar o cano/estriamento. + Usata per cambiare la canna. + + + Weapon jammed! + Ladehemmung! + Arma encasquillada! + Broń się zacięła! + Zbraň se zasekla! + Arme enrayée + Оружие заклинило! + Elakadt a fegyver! + Arma travada! + Arma inceppata! + + + Clear jam + Ladehemmung beheben + Desencasquillar el arma + Usuń zacięcie + Uvolnit zbraň + Désenrayer l'arme + Исправить клин оружия. + Hárítsd el az akadályt! + Destravar arma + Ripulisci l'arma + + + Jam cleared + Ladehemmung behoben + Arma desencasquillada + Zacięcie usunięte + Zbraň uvolněna + Arme désenrayée + Оружие исправлено + Akadály elhárítva! + Arma destravada + Arma pronta al fuoco + + + Swap barrel + Lauf wechseln + Cambiar el cañón + Wymień lufę + Vyměnit hlaveň + Changer de canon + Сменить ствол + Cserélj csövet! + Substituir cano + Sostiuisci la canna + + + Swapping barrel... + Lauf wird gewechselt... + Cambiando el cañón... + Wymienianie lufy... + Vyměňuji hlaveň ... + Changement du canon... + Смена ствола... + Cső cserélése... + Substituindo cano... + Sto sostituendo la canna ... + + + Swapped barrel + Lauf gewechselt + Cañón cambiado + Lufa wymieniona + Hlaveň vyměněna + Canon changé + Ствол сменен + Cső kicserélve! + Cano substituído + Canna sostituita + + + Check weapons temperature + Temperatur der Waffe prüfen + Verificar temperatura del arma + Sprawdź temperaturę broni + Vérifier la température de l'arme + Hőmérséklet ellenőrzése + Zjistit teplotu zbraně + Conferir temperatura da arma + Controlla la temperatura della canna + Проверить температуру оружия + + + Check<br/>temperature + Temperatur<br/>prüfen + Verificar<br/>temperatura + Sprawdź<br/>temperaturę + Vérifier la<br/>température + Hőmérséklet<br/>ellenőrzése + Zjistit<br/>teplotu + Conferir<br/>temperatura + Controlla la<br/>temperatura + Проверить<br/>температуру + + + Checking temperature ... + Prüfe Temperatur ... + Verificando temperatura ... + Sprawdzanie temperatury ... + Vérification de la température ... + Hőmérséklet ellenőrzése... + Zjišťuju teplotu ... + Conferindo temperatura ... + Sto controllando la temperatura ... + Проверка температуры ... + + + Temperature + Temperatur + Temperatura + Temperatura + Température + Hőmérséklet + Teplota + Temperatura + Temperatura + Температура + + \ No newline at end of file diff --git a/addons/parachute/stringtable.xml b/addons/parachute/stringtable.xml index f97b389eeb..7d3c278fd8 100644 --- a/addons/parachute/stringtable.xml +++ b/addons/parachute/stringtable.xml @@ -1,46 +1,50 @@  - - - Altimeter - Altimètre - Höhenmesser - Výškoměr - Wysokościomierz - Altímetro - Magasságmérő - Высотомер - - - Altimeter Watch - Montre altimètre - Höhenmesser - Hodinky s výškoměrem - Zegarek z wysokościomierzem - Reloj altímetro - Magasságmérő - Часы с высотомером - - - Used to show height, descent rate and the time. - Affiche la hauteur, le taux de descente et l'heure. - Zeigt Höhe, Fallgeschwindigkeit und Uhrzeit. - Používané k zjištění výšky, rychlosti sestupu a času. - Używany przez spadochroniarzy, pokazuje wysokość, prędkość opadania oraz czas. - Utilizado para mostrar altura, tasa de descenso y hora. - Mutatja a magasságot, zuhanás sebességét és az időt. - Используется для определения высоты, скорости снижения и времени. - - - Non-Steerable Parachute - Ungelenkter Fallschirm - Paracaídas no dirigible - Parachute non manœuvrable - Niesterowalny spadochron - Neříditelný padák - Irányithatatlan ejtőernyő - Неуправляемый парашют - - + + + Altimeter + Altimètre + Höhenmesser + Výškoměr + Wysokościomierz + Altímetro + Magasságmérő + Высотомер + Altímetro + + + Altimeter Watch + Montre altimètre + Höhenmesser + Hodinky s výškoměrem + Zegarek z wysokościomierzem + Reloj altímetro + Magasságmérő + Часы с высотомером + Relógio Altímetro + + + Used to show height, descent rate and the time. + Affiche la hauteur, le taux de descente et l'heure. + Zeigt Höhe, Fallgeschwindigkeit und Uhrzeit. + Používané k zjištění výšky, rychlosti sestupu a času. + Używany przez spadochroniarzy, pokazuje wysokość, prędkość opadania oraz czas. + Utilizado para mostrar altura, tasa de descenso y hora. + Mutatja a magasságot, zuhanás sebességét és az időt. + Используется для определения высоты, скорости снижения и времени. + Usado para mostrar altura, taxa de descida e o tempo. + + + Non-Steerable Parachute + Ungelenkter Fallschirm + Paracaídas no dirigible + Parachute non manœuvrable + Niesterowalny spadochron + Neříditelný padák + Irányithatatlan ejtőernyő + Неуправляемый парашют + Para-querdas não controlável + + \ No newline at end of file diff --git a/addons/realisticnames/stringtable.xml b/addons/realisticnames/stringtable.xml index 9ccd7752d2..93c2050661 100644 --- a/addons/realisticnames/stringtable.xml +++ b/addons/realisticnames/stringtable.xml @@ -725,6 +725,7 @@ CH-47I Chinook (nieuzbrojony) CH-47I Chinook (невооруженный) CH-47I Chinook (Neozbrojený) + CH-47I Chinook (Desarmado) A-10D Thunderbolt II @@ -878,7 +879,7 @@ M183 Demoliční nálož M183 Charge de Démolition M183 Комплектный подрывной заряд - M183 Sacola de Demolição + Sacola de Demolição M183 M183 romboló töltet M183 Demolition Charge Assembly @@ -890,7 +891,7 @@ M112 Výbušná nálož Pétard M112 M112 подрывной заряд - M112 Carga de Demolição + Carga de Demolição M112 M112 romboló töltet M112 Demolition Block @@ -902,7 +903,7 @@ M67 Granát M67 Grenade à fragmentation M67 ручная осколочная граната - M67 Granada de fragmentação + Granada de fragmentação M67 M67 repeszgránát M67 Granata a frammentazione @@ -914,7 +915,7 @@ M83 Kouřový Granát (Bílý) M83 Grenade fumigène (Blanche) M83 дымовой гранаты (Белый) - M83 Granada de fumaça (Branca) + Granada de fumaça (Branca) M83 M83 füstgránát (Fehér) M83 Granata fumogena (Bianco) @@ -926,7 +927,7 @@ M18 Kouřový Granát (Modrý) M18 Grenade fumigène (Bleue) M18 дымовой гранаты (Синий) - M18 Granada de fumaça (Azul) + Granada de fumaça (Azul) M18 M18 füstgránát (Kék) M18 Granata fumogena (Blu) @@ -938,7 +939,7 @@ M18 Kouřový Granát (Zelený) M18 Grenade fumigène (Verte) M18 дымовой гранаты (Зелёный) - M18 Granada de fumaça (Verde) + Granada de fumaça (Verde) M18 M18 füstgránát (Zöld) M18 Granata fumogena (Verde) @@ -950,7 +951,7 @@ M18 Kouřový Granát (Oranžový) M18 Grenade fumigène (Orange) M18 дымовой гранаты (Оранжевый) - M18 Granada de fumaça (Laranja) + Granada de fumaça (Laranja) M18 M18 füstgránát (Narancssárga) M18 Granata fumogena (Arancione) @@ -962,7 +963,7 @@ M18 Kouřový Granát (Fialový) M18 Grenade fumigène (Pourpre) M18 дымовой гранаты (Пурпурный) - M18 Granada de fumaça (Roxa) + Granada de fumaça (Roxa) M18 M18 füstgránát (Lila) M18 Granata fumogena (Viola) @@ -974,7 +975,7 @@ M18 Kouřový Granát (Červený) M18 Grenade fumigène (Rouge) M18 дымовой гранаты (Красный) - M18 Granada de fumaça (Vermelha) + Granada de fumaça (Vermelha) M18 M18 füstgránát (Piros) M18 Granata fumogena (Rosso) @@ -986,7 +987,7 @@ M18 Kouřový Granát (Žlutý) M18 Grenade fumigène (Jaune) M183 дымовой гранаты (Жёлтые) - M18 Granada de fumaça (Amarela) + Granada de fumaça (Amarela) M18 M18 füstgránát (Sárga) M18 Granata fumogena (Giallo) @@ -998,7 +999,7 @@ M15 Protitanková Mina M15 Mine antichar M15 противотанковая мина - M15 Mina anticarro + Mina anti-tanqueM15 M15 harckocsiakna M15 Mine anticarro @@ -1010,7 +1011,7 @@ VS-50 Protipěchotní Mina VS-50 Mine antipersonnel à pression VS-50 Противопехотная мина - VS-50 Mina antipessoal + Mina antipessoal VS-50 VS-50 gyalogsági taposóakna VS-50 Mine antiuomo @@ -1022,7 +1023,7 @@ M26 Šrapnelová Mina M26 Mine antipersonnel bondissante M26 Противопехотная мина - M26 Mina saltadora antipessoal + Mina saltadora antipessoal M26 M26 gyalogsági ugróakna M26 Mine saltanti antiuomo @@ -1034,187 +1035,230 @@ PMR-3 Nástražná Mina PMR-3 Mine antipersonnel à traction PMR-3 Противопехотная мина - PMR-3 Mina antipessoal (armadilha) + Mina antipessoal (armadilha) PMR-3 PMR-3 botlódrótos gyalogsági akna PMR-3 Mine antiuomo P99 P99 + P99 MP-443 Grach MP-443 Grach + MP-443 Grach ACP-C2 ACP-C2 + ACP-C2 FNX-45 Tactical FNX-45 Tactical + FNX-45 Tactical Chiappa Rhino 60DS Chiappa Rhino 60DS + Chiappa Rhino 60DS Taurus Judge Taurus Judge + Taurus Judge NLAW NLAW + NLAW RPG-32 RPG-32 + RPG-32 Mini-Spike (AA) Mini-Spike (AA) + Mini-Spike (AA) Mini-Spike (AT) Mini-Spike (AT) + Mini-Spike (AT) MX MX + MX MX (Black) MX (Black) + MX (Preto) MXC MXC + MXC MXC (Black) MXC (Black) + MXC (Preto) MX 3GL MX 3GL + MX 3GL MX 3GL (Black) MX 3GL (Black) + MX 3GL (Preto) MX LSW MX LSW + MX LSW MX LSW (Black) MX LSW (Black) + MX LSW (Preto) MXM MXM + MXM MXM (Black) MXM (Black) + MXM (Preto) KT2002 Katiba KT2002 Katiba + KT2002 Katiba KT2002C Katiba KT2002C Katiba + KT2002C Katiba KT2002 Katiba KGL KT2002 Katiba KGL + KT2002 Katiba KGL F2000 (Camo) F2000 (Camo) + F2000 (Camo) F2000 F2000 + F2000 F2000 Tactical (Camo) F2000 Tactical (Camo) + F2000 Tactical (Camo) F2000 Tactical F2000 Tactical + F2000 Tactical F2000 EGLM (Camo) F2000 EGLM (Camo) + F2000 EGLM (Camo) F2000 EGLM F2000 EGLM + F2000 EGLM TAR-21 TAR-21 + TAR-21 CTAR-21 CTAR-21 + CTAR-21 TAR-21 EGLM TAR-21 EGLM + TAR-21 EGLM Vector SMG Vector SMG + Vector SMG Scorpion Evo 3 A1 Scorpion Evo 3 A1 + Scorpion Evo 3 A1 CPW CPW + CPW RFB SDAR RFB SDAR + RFB SDAR Stoner 99 LMG Stoner 99 LMG + Stoner 99 LMG Negev NG7 Negev NG7 + Negev NG7 Mk14 Mod 1 EBR Mk14 Mod 1 EBR + Mk14 Mod 1 EBR GM6 Lynx GM6 Lynx + GM6 Lynx GM6 Lynx (Camo) GM6 Lynx (Camo) + GM6 Lynx (Camo) M200 Intervention M200 Intervention + M200 Intervention M200 Intervention (Camo) M200 Intervention (Camo) + M200 Intervention (Camo) VS-121 VS-121 + VS-121 - TODO: MAR-10 .338 @@ -1227,7 +1271,6 @@ TODO: MAR-10 .338 (Sand) - TODO: Mk-I EMR 7.62 mm @@ -1249,7 +1292,6 @@ TODO: NATO DMR (provisional) spotter - TODO: ASP-1 Kir 12.7 mm @@ -1259,7 +1301,6 @@ TODO: ASP-1 Kir 12.7 mm (Tan) - TODO: Cyrus 9.3 mm @@ -1272,7 +1313,6 @@ TODO: Cyrus 9.3 mm (Tan) - TODO: Mk14 7.62 mm @@ -1282,7 +1322,6 @@ TODO: Mk14 7.62 mm (Olive) - TODO: Navid 9.3 mm @@ -1292,7 +1331,6 @@ TODO: Navid 9.3 mm (Tan) - TODO: SPMG .338 @@ -1305,6 +1343,5 @@ TODO: SPMG .338 (Sand) - - + \ No newline at end of file diff --git a/addons/reload/stringtable.xml b/addons/reload/stringtable.xml index 40f36c6549..a1deb3d5d3 100644 --- a/addons/reload/stringtable.xml +++ b/addons/reload/stringtable.xml @@ -1,42 +1,46 @@ - + - - - Check ammo on weapon reload - - - Check the ammo in your new magazine on magazine reload. - - - Check Ammo - Munition prüfen - Verificar munición - Sprawdź amunicję - Vérifier Munitions - Lőszerellenőrzés - Zkontrolovat Munici - Controlla le munizioni - Conferir munições - Kонтроль Боеприпасы - - - Ammo - Munition - Munición - Amunicja - Munitions - Lőszer - Munice - Munizioni - Munições - Боеприпасы - - - Link belt - - - Linking belt... - - - + + + Check ammo on weapon reload + Conferir munição ao recarregar a arma + + + Check the ammo in your new magazine on magazine reload. + Confere a munição no seu novo carregador ao recarregar a arma + + + Check Ammo + Munition prüfen + Verificar munición + Sprawdź amunicję + Vérifier Munitions + Lőszerellenőrzés + Zkontrolovat Munici + Controlla le munizioni + Conferir munições + Kонтроль Боеприпасы + + + Ammo + Munition + Munición + Amunicja + Munitions + Lőszer + Munice + Munizioni + Munições + Боеприпасы + + + Link belt + Ligar cintos de munição + + + Linking belt... + Ligando cintos... + + + \ No newline at end of file diff --git a/addons/reloadlaunchers/stringtable.xml b/addons/reloadlaunchers/stringtable.xml index 6677153419..ba241c0a63 100644 --- a/addons/reloadlaunchers/stringtable.xml +++ b/addons/reloadlaunchers/stringtable.xml @@ -5,20 +5,22 @@ Load launcher Panzerabwehr laden + Recarregar lançador Loading launcher ... Panzerabwehr wird geladen ... + Recarregando lançador... Launcher loaded Panzerabwehr geladen + Lançador Carregado - Load %1 Lade %1 + Recarregar %1 - - + \ No newline at end of file diff --git a/addons/respawn/stringtable.xml b/addons/respawn/stringtable.xml index 59a9b2b31c..aa823960f0 100644 --- a/addons/respawn/stringtable.xml +++ b/addons/respawn/stringtable.xml @@ -1,21 +1,25 @@  - - - Deploy in 5 seconds ... - Wird in 5 Sekunden errichtet ... - - - Rallypoint deployed - Rallypoint errichtet - - - Teleported to Base - Zur Basis teleportiert - - - Teleported to Rallypoint - Zum Rallypoint teleportiert - - - + + + Deploy in 5 seconds ... + Wird in 5 Sekunden errichtet ... + Será posicionado em 5 segundos ... + + + Rallypoint deployed + Rallypoint errichtet + Rallypoints posicionado + + + Teleported to Base + Zur Basis teleportiert + Teletransportado para a Base + + + Teleported to Rallypoint + Zum Rallypoint teleportiert + Teletransportado para o Rallypoints + + + \ No newline at end of file diff --git a/addons/safemode/stringtable.xml b/addons/safemode/stringtable.xml index 9684babfdf..1697a7a5bc 100644 --- a/addons/safemode/stringtable.xml +++ b/addons/safemode/stringtable.xml @@ -1,42 +1,46 @@  - - - Safe Mode - Waffe sichern - Seguro puesto - Bezpiecznik - Pojistka - Veszélytelenités - Предохранитель - - - Take off Safety - Waffe entsichern - Quitar seguro - Zwolnij bezpiecznik - Uvolnit pojistku - Veszélyesités - Снять с предохранителя - - - Put on Safety - Waffe gesichert - Poner seguro - Zabezpiecz broń - Přepnout pojistku - Veszélytelenitve - Поставить на предохранитель - - - Took off Safety - Waffe entsichert - Seguro quitado - Odbezpieczono broń - Odstranit pojistku - veszélyes - Снят с предохранителя - - + + + Safe Mode + Waffe sichern + Seguro puesto + Bezpiecznik + Pojistka + Veszélytelenités + Предохранитель + Modo de segurança + + + Take off Safety + Waffe entsichern + Quitar seguro + Zwolnij bezpiecznik + Uvolnit pojistku + Veszélyesités + Снять с предохранителя + Tirar segurança + + + Put on Safety + Waffe gesichert + Poner seguro + Zabezpiecz broń + Přepnout pojistku + Veszélytelenitve + Поставить на предохранитель + Colocar Segurança + + + Took off Safety + Waffe entsichert + Seguro quitado + Odbezpieczono broń + Odstranit pojistku + veszélyes + Снят с предохранителя + Tirou Segurança + + \ No newline at end of file diff --git a/addons/switchunits/stringtable.xml b/addons/switchunits/stringtable.xml index 842bf89127..c4a12ac744 100644 --- a/addons/switchunits/stringtable.xml +++ b/addons/switchunits/stringtable.xml @@ -1,21 +1,23 @@  - - - Switched unit - Einheit gewechselt - Юнит переключен - Prohozená jednotka - Przełącz jednostkę - Cambiado de unidad - - - This unit is too close to the enemy. - Diese Einheit ist zu nah am Feind. - Юнит слишком близок к противнику - Tato jednotka je moc blízko k nepříteli. - Ta jednostka jest zbyt blisko przeciwnika. - Esta unidad está demasiado cerca del enemigo. - - - + + + Switched unit + Einheit gewechselt + Юнит переключен + Prohozená jednotka + Przełącz jednostkę + Cambiado de unidad + Trocado de unidade + + + This unit is too close to the enemy. + Diese Einheit ist zu nah am Feind. + Юнит слишком близок к противнику + Tato jednotka je moc blízko k nepříteli. + Ta jednostka jest zbyt blisko przeciwnika. + Esta unidad está demasiado cerca del enemigo. + Essa unidade está muito perta do inimigo. + + + \ No newline at end of file diff --git a/addons/vehiclelock/stringtable.xml b/addons/vehiclelock/stringtable.xml index 580283dcab..20d17bd79b 100644 --- a/addons/vehiclelock/stringtable.xml +++ b/addons/vehiclelock/stringtable.xml @@ -1,116 +1,127 @@  - - - Unlock Vehicle - Fahrzeug aufschließen - Vehículo abierto - Déverrouiller le véhicule - Odblokuj pojazd - Odemknout vozidlo - Jármű nyitása - Открыть машину - - - Lock Vehicle - Fahrzeug abschließen - Vehículo cerrado - Verrouiller le véhicule - Zablokuj pojazd - Zamknout vozidlo - Jármű zárása - Закрыть машину - - - Lockpick Vehicle - Fahrzeug knacken - Forzar vehículo - Crocheter le véhicule - Otwórz zamek - Vypáčit vozidlo - Jármű feltörése - Взломать замок - - - Picking Lock.... - Schloss knacken... - Forzando cierre... - Crochetage... - Otwieranie zamka... - Páčim vozidlo... - Feltörés... - Взламываем замок... - - - A custom key that will open a specific vehicle. - Ein Schlüssel der ein bestimmtes Fahrzeug aufschließt. - Una llave concreta abrirá un vehículo concreto. - Une clé propre à un seul véhicule. - Unikatowy klucz który otworzy konkretny pojazd. - Vlastní klíč, který otevře konkrétní vozidlo. - Kulcs egy járműhez - Ключ от конкретной машины. - - - A Master Key will open any lock, no matter what! - Ein Generalschlüssel der jedes Schloss öffnet... - Una llave maestra abrirá cualquier cierre, no importa cual! - Un passe-partout qui ouvrira n'importe quelle serrure. - Uniwersalny klucz który otworzy każdy zamek. - Hlavní klíč otevře libovolný zámek, bez vyjímek! - Általános kulcs minden járműhez - Универсальный ключ, открывающий любой замок. - - - A lockpick set that can pick the locks of most vehicles. - Ein Dietrich der die meisten Fahrzeugschlösser knacken kann... - Un set de ganzúas puede abrir la mayoría de cerraduras de vehículos. - Un crochet qui ouvrira la plupart des véhicules. - Zestaw wytrychów dzięki któremu można otworzyć zamki w większości pojazdów. - Sada paklíčů, která dokáže odemknout zámky u většiny vozidel. - Álkulcs melyik minden járműt nyitni tud - Набор отмычек, которым можно взломать почти любую машину. - - - A key that should open most WEST vehicles. - Ein Schlüssel der die meisten westlichen Fahrzeuge öffnen sollte... - Una llave que puede abrir la mayoría de vehículos occidentales. - Une clé qui ouvrira la plupart des véhicules WEST. - Klucz który powinien otworzyć większość pojazdów ZACHODU. - Klíč který by měl otevřít většinou Západních vozidel. - Általános kulcs WEST járművekhez - Ключ для открытия большинства машин Запада. - - - A key that should open most EAST vehicle. - Ein Schlüssel der die meisten östlichen Fahrzeuge öffnen sollte... - Una llave que puede abrir la mayoría de vehículos orientales. - Une clé qui ouvrira la plupart des véhicules EAST. - Klucz który powinien otworzyć większość pojazdów WSCHODU. - Általános kulcs EAST járművekhez - Klíč který by měl otevřít vetšinu Východních vozidel. - Ключ для открытия большинства машин Востока. - - - A key that should open most INDEP vehicle. - Ein Schlüssel der die meisten Fahrzeuge der Aufständischen öffnen sollte... - Una llave que puede abrir la mayoría de vehículos independientes. - Une clé qui ouvrira la plupart des véhicules INDEP. - Klucz który powinien otworzyć większość pojazdów INDFOR. - Általános kulcs INDEPENDENT járművekhez - Klíč který by měl otevřít většinu Nezávislých vozidel. - Ключ для открытия большинства машин Независимых. - - - A key that should open most CIV vehicle. - Ein Schlüssel der die meisten zivilen Fahrzeuge öffnen sollte... - Una llave que puede abrir la mayoría de vehículos civiles. - Une clé qui ouvrira la plupart des véhicules CIV. - Klucz który powinien otworzyć większość pojazdów CYWILNYCH. - Klíč který by měl otevřít většinu Civilních vozidel. - Általános kulcs CIVILIAN járművekhez - Ключ для открытия большинства машин Гражданских. - - + + + Unlock Vehicle + Fahrzeug aufschließen + Vehículo abierto + Déverrouiller le véhicule + Odblokuj pojazd + Odemknout vozidlo + Jármű nyitása + Открыть машину + Destravar veículo + + + Lock Vehicle + Fahrzeug abschließen + Vehículo cerrado + Verrouiller le véhicule + Zablokuj pojazd + Zamknout vozidlo + Jármű zárása + Закрыть машину + Travar Veículo + + + Lockpick Vehicle + Fahrzeug knacken + Forzar vehículo + Crocheter le véhicule + Otwórz zamek + Vypáčit vozidlo + Jármű feltörése + Взломать замок + Usar mixa no Veículo + + + Picking Lock.... + Schloss knacken... + Forzando cierre... + Crochetage... + Otwieranie zamka... + Páčim vozidlo... + Feltörés... + Взламываем замок... + Usando Mixa... + + + A custom key that will open a specific vehicle. + Ein Schlüssel der ein bestimmtes Fahrzeug aufschließt. + Una llave concreta abrirá un vehículo concreto. + Une clé propre à un seul véhicule. + Unikatowy klucz który otworzy konkretny pojazd. + Vlastní klíč, který otevře konkrétní vozidlo. + Kulcs egy járműhez + Ключ от конкретной машины. + Uma chave específica que abre um veículo específico. + + + A Master Key will open any lock, no matter what! + Ein Generalschlüssel der jedes Schloss öffnet... + Una llave maestra abrirá cualquier cierre, no importa cual! + Un passe-partout qui ouvrira n'importe quelle serrure. + Uniwersalny klucz który otworzy każdy zamek. + Hlavní klíč otevře libovolný zámek, bez vyjímek! + Általános kulcs minden járműhez + Универсальный ключ, открывающий любой замок. + Uma chave mestre irá abrir qualquer fechadura, não importa qual! + + + A lockpick set that can pick the locks of most vehicles. + Ein Dietrich der die meisten Fahrzeugschlösser knacken kann... + Un set de ganzúas puede abrir la mayoría de cerraduras de vehículos. + Un crochet qui ouvrira la plupart des véhicules. + Zestaw wytrychów dzięki któremu można otworzyć zamki w większości pojazdów. + Sada paklíčů, která dokáže odemknout zámky u většiny vozidel. + Álkulcs melyik minden járműt nyitni tud + Набор отмычек, которым можно взломать почти любую машину. + Um set de chave mixas que pode abrir a maioria dos veículos. + + + A key that should open most WEST vehicles. + Ein Schlüssel der die meisten westlichen Fahrzeuge öffnen sollte... + Una llave que puede abrir la mayoría de vehículos occidentales. + Une clé qui ouvrira la plupart des véhicules WEST. + Klucz który powinien otworzyć większość pojazdów ZACHODU. + Klíč který by měl otevřít většinou Západních vozidel. + Általános kulcs WEST járművekhez + Ключ для открытия большинства машин Запада. + Uma chave que abre a maioria dos veículos ocidentais + + + A key that should open most EAST vehicle. + Ein Schlüssel der die meisten östlichen Fahrzeuge öffnen sollte... + Una llave que puede abrir la mayoría de vehículos orientales. + Une clé qui ouvrira la plupart des véhicules EAST. + Klucz który powinien otworzyć większość pojazdów WSCHODU. + Általános kulcs EAST járművekhez + Klíč který by měl otevřít vetšinu Východních vozidel. + Ключ для открытия большинства машин Востока. + Uma chave que abre a maioria dos veículos orientais + + + A key that should open most INDEP vehicle. + Ein Schlüssel der die meisten Fahrzeuge der Aufständischen öffnen sollte... + Una llave que puede abrir la mayoría de vehículos independientes. + Une clé qui ouvrira la plupart des véhicules INDEP. + Klucz który powinien otworzyć większość pojazdów INDFOR. + Általános kulcs INDEPENDENT járművekhez + Klíč který by měl otevřít většinu Nezávislých vozidel. + Ключ для открытия большинства машин Независимых. + Uma chave que abre a maioria dos veículos independentes + + + A key that should open most CIV vehicle. + Ein Schlüssel der die meisten zivilen Fahrzeuge öffnen sollte... + Una llave que puede abrir la mayoría de vehículos civiles. + Une clé qui ouvrira la plupart des véhicules CIV. + Klucz który powinien otworzyć większość pojazdów CYWILNYCH. + Klíč který by měl otevřít většinu Civilních vozidel. + Általános kulcs CIVILIAN járművekhez + Ключ для открытия большинства машин Гражданских. + Uma chave que abre a maioria dos veículos civis. + + \ No newline at end of file diff --git a/addons/weaponselect/stringtable.xml b/addons/weaponselect/stringtable.xml index 3a39d59396..684168f2f2 100644 --- a/addons/weaponselect/stringtable.xml +++ b/addons/weaponselect/stringtable.xml @@ -1,254 +1,256 @@  - - - Display text on grenade throw - - - Display a hint or text on grenade throw. - - - Select Pistol - Pistole auswählen - Seleccionar pistola - Wybierz pistolet - Zvolit příruční zbraň - Выбрать пистолет - Sélectionner Pistolet - Pisztoly Kiválasztása - Selecionar Pistola - Seleziona la Pistola - - - Select Rifle - Gewehr auswählen - Seleccionar fusil - Wybierz karabin - Zvolit hlavní zbraň - Выбрать автомат - Sélectionner Fusil - Puska Kiválasztása - Selecionar Rifle - Seleziona il Fucile - - - Select Launcher - Raketenwerfer auswählen - Seleccionar lanzador - Wybierz wyrzutnię - Zvolit Raketomet - Выбрать гранатомет - Sélectionner Lanceur - Rakétavető Kiválasztása - Selecionar Lançador - Seleziona il Lanciatore - - - Select Grenade Launcher - Granatwerfer auswählen - Seleccionar lanzador de granadas - Wybierz granatnik - Zvolit Granátomet - Выбрать подствольный гранатомет - Sélectionner Lance-grenades - Gránátvető Kiválasztása - Selecionar Lança-Granadas - Seleziona il Lanciagranate - - - Select Binoculars - Fernglas auswählen - Seleccionar prismáticos - Wybierz lornetkę - Zvolit Dalekohled - Выбрать бинокль - Sélectionner Jumelles - Távcső Kiválasztása - Selecionar Binóculos - Seleziona il Binocolo - - - Holster Weapon - Waffe holstern - Enfundar el arma - Schowaj broń - Schovat zbraň - Убрать оружие - Arme à la bretelle - Fegyvert tokba - Guardar Arma - Nascondi l'arma - - - Engine on - Motor an - Encender motor - Włącz silnik - Moteur allumé - Motor indítása - Zapnout motor - Ligar Motor - Motore acceso - Включить двигатель - - - Engine off - Motor aus - Apagar motor - Wyłącz silnik - Moteur éteint - Motor leállítása - Vypnout motor - Desligar Motor - Motore spento - Выключить двигатель - - - Select Main Gun - Hauptgeschütz auswählen - Seleccionar arma principal - Wybierz główną broń - Sélectionner l'Arme Principale - Elsődleges Fegyver Kiválasztása - Zvolit Hlavní Zbraň - Selecionar Arma Principal - Seleziona Arma Primaria - Выбрать основное оружие - - - Select Machine Gun - Maschinengewehr auswählen - Seleccionar ametralladora - Wybierz karabin maszynowy - Sélectionner Mitrailleuse - Géppuska Kiválasztása - Zvolit Kulomet - Selecionar Metralhadora - Seleziona Mitragliatrice - Выбрать пулемёт - - - Select Missiles - Raketen auswählen - Seleccionar misiles - Wybierz rakiety - Sélectionner Missiles - Rakéták Kiválasztása - Zvolit Rakety - Selecionar Mísseis - Seleziona Missili - Выбрать ракеты - - - Grenade %1 - Granate %1 - Granada %1 - Granat %1 - Granát %1 - Gránát Kiválasztása - Граната %1 - - - Ready Grenade - Granate nehmen - Granada lista - Przygotuj granat - Odjistit granát - Kész Gránát - Подготовить гранату - - - Select Frag Grenade - Explosive Granate auswählen - Seleccionar granada de fragmenación - Wybierz granat odłamkowy - Sélectionner grenade à fragmentation - Repeszgránát Kiválasztása - Zvolit Výbušný Granát - Selecionar Granada de Fragmentação - Seleziona Granata a Frammentazione - Выбрать осколочную гранату - - - Select Non-Frag Grenade - Nichtexplosive Granate auswählen - Seleccionar granada de no fragmentación - Wybierz granat nieodłamkowy - Sélectionner grenade non-léthale - Nem Robbanó Gránát Kiválasztása - Zvolit Ne-Výbušný Granát - Selecionar Granada - Seleziona Altre Granate - Выбрать гранату - - - Throw Selected Grenade - Gewählte Granate werfen - Arrojar granada seleccionada - Rzuć wybrany granat - Lancer la grenade sélectionnée - Kiválasztott Gránát Eldobása - Hodit Zvolený Granát - Lançar Granada Selecionada - Lancia la Granata Selezionata - Бросить выбранную гранату - - - No grenades left - Keine Granaten übrig - No quedan granadas - Plus de grenades - Brak granatów - Žádné granáty - Nincs több gránát - Гранат не осталось - - - No frags left - Keine explosiven Granaten übrig - Sin granadas de fragmentación - Brak granatów odłamkowych - Plus de grenades à fragmentation - Nincs több repeszgránát - Už nejsou granáty - Não há granadas de fragmentação restantes - Nessuna granata a frammentazione rimanente - Осколочныких гранат нет - - - No misc. grenades left - Keine nichtexplosiven Granaten übrig - Sin granadas de varias - Brak granatów nieodłamkowych - Plus de grenades non-léthales - Nincs több egyéb gránát - Už nejsou žádné ostatní granáty - Não há outras granadas restantes - Nessun'altra granata rimanente. - Невзрывоопасные гранаты закончились - - - No grenade selected - Keine Granate ausgewählt - Granada no seleccionada - Nie wybrano żadnego granatu - Aucune grenade sélectionnée - Nincs kiválasztva gránát - Není zvolen žádný granát - Nenhuma granada selecionada - Nessuna granata selezionata - Нет выбранной гранаты - - - Fire Smoke Launcher - Rauchwand abfeuern - Disparar lanzador de humo - Kouřový odpalovač - Tirer le lance-pots fumigènes - Wystrzel granat dymny - Füst kilövése - Запустить дымовую завесу - - + + + Display text on grenade throw + Mostrat texto ao lançar granada + + + Display a hint or text on grenade throw. + Mostra um hint ou texto ao lançar uma granada + + + Select Pistol + Pistole auswählen + Seleccionar pistola + Wybierz pistolet + Zvolit příruční zbraň + Выбрать пистолет + Sélectionner Pistolet + Pisztoly Kiválasztása + Selecionar Pistola + Seleziona la Pistola + + + Select Rifle + Gewehr auswählen + Seleccionar fusil + Wybierz karabin + Zvolit hlavní zbraň + Выбрать автомат + Sélectionner Fusil + Puska Kiválasztása + Selecionar Rifle + Seleziona il Fucile + + + Select Launcher + Raketenwerfer auswählen + Seleccionar lanzador + Wybierz wyrzutnię + Zvolit Raketomet + Выбрать гранатомет + Sélectionner Lanceur + Rakétavető Kiválasztása + Selecionar Lançador + Seleziona il Lanciatore + + + Select Grenade Launcher + Granatwerfer auswählen + Seleccionar lanzador de granadas + Wybierz granatnik + Zvolit Granátomet + Выбрать подствольный гранатомет + Sélectionner Lance-grenades + Gránátvető Kiválasztása + Selecionar Lança-Granadas + Seleziona il Lanciagranate + + + Select Binoculars + Fernglas auswählen + Seleccionar prismáticos + Wybierz lornetkę + Zvolit Dalekohled + Выбрать бинокль + Sélectionner Jumelles + Távcső Kiválasztása + Selecionar Binóculos + Seleziona il Binocolo + + + Holster Weapon + Waffe holstern + Enfundar el arma + Schowaj broń + Schovat zbraň + Убрать оружие + Arme à la bretelle + Fegyvert tokba + Guardar Arma + Nascondi l'arma + + + Engine on + Motor an + Encender motor + Włącz silnik + Moteur allumé + Motor indítása + Zapnout motor + Ligar Motor + Motore acceso + Включить двигатель + + + Engine off + Motor aus + Apagar motor + Wyłącz silnik + Moteur éteint + Motor leállítása + Vypnout motor + Desligar Motor + Motore spento + Выключить двигатель + + + Select Main Gun + Hauptgeschütz auswählen + Seleccionar arma principal + Wybierz główną broń + Sélectionner l'Arme Principale + Elsődleges Fegyver Kiválasztása + Zvolit Hlavní Zbraň + Selecionar Arma Principal + Seleziona Arma Primaria + Выбрать основное оружие + + + Select Machine Gun + Maschinengewehr auswählen + Seleccionar ametralladora + Wybierz karabin maszynowy + Sélectionner Mitrailleuse + Géppuska Kiválasztása + Zvolit Kulomet + Selecionar Metralhadora + Seleziona Mitragliatrice + Выбрать пулемёт + + + Select Missiles + Raketen auswählen + Seleccionar misiles + Wybierz rakiety + Sélectionner Missiles + Rakéták Kiválasztása + Zvolit Rakety + Selecionar Mísseis + Seleziona Missili + Выбрать ракеты + + + Grenade %1 + Granate %1 + Granada %1 + Granat %1 + Granát %1 + Gránát Kiválasztása + Граната %1 + + + Ready Grenade + Granate nehmen + Granada lista + Przygotuj granat + Odjistit granát + Kész Gránát + Подготовить гранату + + + Select Frag Grenade + Explosive Granate auswählen + Seleccionar granada de fragmenación + Wybierz granat odłamkowy + Sélectionner grenade à fragmentation + Repeszgránát Kiválasztása + Zvolit Výbušný Granát + Selecionar Granada de Fragmentação + Seleziona Granata a Frammentazione + Выбрать осколочную гранату + + + Select Non-Frag Grenade + Nichtexplosive Granate auswählen + Seleccionar granada de no fragmentación + Wybierz granat nieodłamkowy + Sélectionner grenade non-léthale + Nem Robbanó Gránát Kiválasztása + Zvolit Ne-Výbušný Granát + Selecionar Granada + Seleziona Altre Granate + Выбрать гранату + + + Throw Selected Grenade + Gewählte Granate werfen + Arrojar granada seleccionada + Rzuć wybrany granat + Lancer la grenade sélectionnée + Kiválasztott Gránát Eldobása + Hodit Zvolený Granát + Lançar Granada Selecionada + Lancia la Granata Selezionata + Бросить выбранную гранату + + + No grenades left + Keine Granaten übrig + No quedan granadas + Plus de grenades + Brak granatów + Žádné granáty + Nincs több gránát + Гранат не осталось + + + No frags left + Keine explosiven Granaten übrig + Sin granadas de fragmentación + Brak granatów odłamkowych + Plus de grenades à fragmentation + Nincs több repeszgránát + Už nejsou granáty + Não há granadas de fragmentação restantes + Nessuna granata a frammentazione rimanente + Осколочныких гранат нет + + + No misc. grenades left + Keine nichtexplosiven Granaten übrig + Sin granadas de varias + Brak granatów nieodłamkowych + Plus de grenades non-léthales + Nincs több egyéb gránát + Už nejsou žádné ostatní granáty + Não há outras granadas restantes + Nessun'altra granata rimanente. + Невзрывоопасные гранаты закончились + + + No grenade selected + Keine Granate ausgewählt + Granada no seleccionada + Nie wybrano żadnego granatu + Aucune grenade sélectionnée + Nincs kiválasztva gránát + Není zvolen žádný granát + Nenhuma granada selecionada + Nessuna granata selezionata + Нет выбранной гранаты + + + Fire Smoke Launcher + Rauchwand abfeuern + Disparar lanzador de humo + Kouřový odpalovač + Tirer le lance-pots fumigènes + Wystrzel granat dymny + Füst kilövése + Запустить дымовую завесу + + \ No newline at end of file diff --git a/addons/wep_javelin/stringtable.xml b/addons/wep_javelin/stringtable.xml index 4068d6f0a6..9e35165cb2 100644 --- a/addons/wep_javelin/stringtable.xml +++ b/addons/wep_javelin/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -10,8 +10,9 @@ Lock Target (Hold) Lock Target (Hold) Lock Target (Hold) + Travar Alvo(Segurar) - + Cycle Fire Mode Cycle Fire Mode Cycle Fire Mode @@ -19,6 +20,7 @@ Cycle Fire Mode Cycle Fire Mode Cycle Fire Mode + Alterar Modo de Disparo - + \ No newline at end of file diff --git a/addons/winddeflection/stringtable.xml b/addons/winddeflection/stringtable.xml index b52100046f..85470214c5 100644 --- a/addons/winddeflection/stringtable.xml +++ b/addons/winddeflection/stringtable.xml @@ -1,32 +1,37 @@ - - - - - - Wind Information - Informacje o wietrze - Información del viento - - - Direction: %1 - Kierunek: %1 - Dirección: %1 - - - Speed: %1 m/s - Prędkość: %1 - Velocidad: %1 m/s - - - Weather Information - Informacje o pogodzie - Información Meteorológica - - - Humidity: %1% - Wilgotność: %1 - Humedad: %1% - - - - + + + + + + Wind Information + Informacje o wietrze + Información del viento + Informação do vento + + + Direction: %1 + Kierunek: %1 + Dirección: %1 + Direção: %1 + + + Speed: %1 m/s + Prędkość: %1 + Velocidad: %1 m/s + Velocidade: %1 m/s + + + Weather Information + Informacje o pogodzie + Información Meteorológica + Informação Meteorológica + + + Humidity: %1% + Wilgotność: %1 + Humedad: %1% + Humidade: %1% + + + + \ No newline at end of file From ba89bc8faa2ef596cc881aeba3350ec7a19acd3c Mon Sep 17 00:00:00 2001 From: VyMajoris Date: Sun, 26 Apr 2015 03:15:25 -0300 Subject: [PATCH 140/256] Added - Myself to AUTHORS.txt --- AUTHORS.txt | 1 + addons/common/stringtable.xml | 728 +++++++++++++++++----------------- 2 files changed, 365 insertions(+), 364 deletions(-) diff --git a/AUTHORS.txt b/AUTHORS.txt index b931d774ac..1241015ae9 100644 --- a/AUTHORS.txt +++ b/AUTHORS.txt @@ -65,3 +65,4 @@ simon84 Tonic Tourorist Valentin Torikian +VyMajoris(W-Cephei) diff --git a/addons/common/stringtable.xml b/addons/common/stringtable.xml index f8a25c6269..28de0b430e 100644 --- a/addons/common/stringtable.xml +++ b/addons/common/stringtable.xml @@ -1,366 +1,366 @@ - + - - - ACE-Team - ACE-Team - ACE-Team - ACE-Team - ACE-Team - ACE-Team - Команда ACE - ACE-Team - ACE-Team - ACE-Team - - - Save - Speichern - Guardar - Zapisz - Uložit - Sauvegarder - Сохранить - Salvar - Mentés - Salva - - - Cancel - Abbrechen - Cancelar - Anuluj - Zrušit - Annuler - Отмена - Cancelar - Mégse - Annulla - - - ACE Options - ACE Optionen - Opciones ACE - Opcje ACE - ACE Nastavení - ACE Options - ACE Настройки - Opções do ACE - ACE Opciók - Opzioni ACE - - - - N - N - N - N - S - N - С - N - É - N - - - NNE - NNO - NNE - NNE - SSV - NNE - ССВ - NNE - ÉÉK - NNE - - - NE - NO - NE - NE - SV - NE - СВ - NE - ÉK - NE - - - ENE - ONO - ENE - ENE - VSV - ENE - ВСВ - LNE - KÉK - ENE - - - E - O - E - E - V - E - В - L - K - E - - - ESE - OSO - ESE - ESE - VJV - ESE - ВЮВ - LSE - KDK - ESE - - - SE - SO - SE - SE - JV - SE - ЮВ - SE - DK - SE - - - SSE - SSO - SSE - SSE - JJV - SSE - ЮЮВ - SSE - DDK - SSE - - - S - S - S - S - J - S - Ю - S - D - S - - - SSW - SSW - SSO - SSW - JJZ - SSO - ЮЮЗ - SSO - DDNy - SSO - - - SW - SW - SO - SW - JZ - SO - ЮЗ - SO - DNy - SO - - - WSW - WSW - OSO - WSW - ZJZ - OSO - ЗЮЗ - OSO - NyDNy - OSO - - - W - W - O - W - Z - O - З - O - Ny - O - - - WNW - WNW - ONO - WNW - ZSZ - ONO - ЗСЗ - ONO - NyÉNy - ONO - - - NW - NW - NO - NW - SZ - NO - СЗ - NO - ÉNy - NO - - - NNW - NNW - NNO - NNW - SSZ - NNO - ССЗ - NNO - ÉÉNy - NNO - - - Action cancelled. - Aktion abgebrochen. - Acción cancelada. - Przerwano czynność - Akce přerušena - Action annulée. - Действие отменено. - Ação cancelada. - Művelet megszakítva. - Azione cancellata. - - - [ACE] Miscellaneous Items - [ACE] Verschiedenes - [ACE] Objetos varios - [ACE] Różne przedmioty - [ACE] Ostatní předměty - [ACE] Objets divers - [ACE] Различные предметы - [ACE] Itens diversos - [ACE] Egyéb tárgyak - [ACE] Oggetti vari - - - Disable Command Menu - Befehlsmenü ausschalten - Desactivar menú de mando - Wyłącz menu dowodzenia - Vypnout velící menu - Désactiver Menu Commande - Выключить командное меню - Parancsnoki menü kikapcsolása - Desabilitar menu de comando - - - Unknown - Unbekannt - Desconocido - Nieznany - Neznámý - Неизвестно - Ismeretlen - Desconhecido - - - No Voice - Keine Stimme - Sin voz - Brak głosu - Žádný hlas - Без голоса - Nincs hang - Sem voz - - - Akceptuj prośby - Aceptar Peticiones - Accept Requests - Aceitar Pedido - - - Ignoruj prośby - Rechazar Peticiones - Decline Requests - Rejeitar pedido - - - Akceptuj prośby wysłane przez innych graczy. Akceptacji wymagają między innymi akcje używania / współdzielenia wyposażenia, wykonywania określonych czynności. - Acepta Peticiones de otros jugadores. Pueden ser solicitudes para usar / compartir equipamiento, realizar ciertas acciones. - Accept Requests send by other players. These can be requests to use / share equipment, perform certain actions. - Aceitar pedidos enviados por outros jogadores. Podem ser pedidos para usar/ compartilhar equipamento, realizar certas ações. - - - Ignoruj prośby wysłane przez innych graczy. Akceptacji wymagają między innymi akcje używania / współdzielenia wyposażenia, wykonywania określonych czynności. - Rechazar Peticiones de otros jugadores. Pueden ser solicitudes para usar / compartir equipamiento, realizar ciertas acciones. - Decline Requests send by other players. These can be requests to use / share equipment, perform certain actions. - Rejeita pedidos enviados por outros jogadores. Podem ser pedidos para usar/ compartilhar equipamento, realizar certas ações. - - - Feedback icons - Ícones de Feedback - - - Select the position of or disable the feedback icons on your screen. These icons will show to provide extra feedback on your character status and actions performed. - Selecione a posição ou disabilite a posição dos ícones de feedback na sua tela. Esses ícones irão aparecer para mostrar feedback extra do status do seu personagem e ações realizadas. - - - Progress bar location - Local da barra de progresso - - - Set the desired location of the progress bar on your screen. - Define o local desejado da barra de progresso na sua tela. - - - Hint Background color - Cor do fundo da hint - - - The color of the background from the ACE hints. - A cor de fundo das hints do ACE. - - - Hint text font color - Cor do do texto da hint - - - The color of the text font from the ACE hints. This color is the default color for all text displayed through the ACE Hint system, if the hint text has no other color specified. - A cor do texto das hints do ACE. Essa cor é a cor default para todos os texos exibidos pelo sistema de hints do ACE , caso o texto da hint não tem outra cor especificada. - - - Banana - Banana - - - A banana is an edible fruit, botanically a berry, produced by several kinds of large herbaceous flowering plants in the genus Musa. - A banana é uma fruta comestível, botanicamente uma baga, produzida por vários tipos de plantas herbáceas grandes do genero Musa. - - - + + + ACE-Team + ACE-Team + ACE-Team + ACE-Team + ACE-Team + ACE-Team + Команда ACE + ACE-Team + ACE-Team + ACE-Team + + + Save + Speichern + Guardar + Zapisz + Uložit + Sauvegarder + Сохранить + Salvar + Mentés + Salva + + + Cancel + Abbrechen + Cancelar + Anuluj + Zrušit + Annuler + Отмена + Cancelar + Mégse + Annulla + + + ACE Options + ACE Optionen + Opciones ACE + Opcje ACE + ACE Nastavení + ACE Options + ACE Настройки + Opções do ACE + ACE Opciók + Opzioni ACE + + + + N + N + N + N + S + N + С + N + É + N + + + NNE + NNO + NNE + NNE + SSV + NNE + ССВ + NNE + ÉÉK + NNE + + + NE + NO + NE + NE + SV + NE + СВ + NE + ÉK + NE + + + ENE + ONO + ENE + ENE + VSV + ENE + ВСВ + LNE + KÉK + ENE + + + E + O + E + E + V + E + В + L + K + E + + + ESE + OSO + ESE + ESE + VJV + ESE + ВЮВ + LSE + KDK + ESE + + + SE + SO + SE + SE + JV + SE + ЮВ + SE + DK + SE + + + SSE + SSO + SSE + SSE + JJV + SSE + ЮЮВ + SSE + DDK + SSE + + + S + S + S + S + J + S + Ю + S + D + S + + + SSW + SSW + SSO + SSW + JJZ + SSO + ЮЮЗ + SSO + DDNy + SSO + + + SW + SW + SO + SW + JZ + SO + ЮЗ + SO + DNy + SO + + + WSW + WSW + OSO + WSW + ZJZ + OSO + ЗЮЗ + OSO + NyDNy + OSO + + + W + W + O + W + Z + O + З + O + Ny + O + + + WNW + WNW + ONO + WNW + ZSZ + ONO + ЗСЗ + ONO + NyÉNy + ONO + + + NW + NW + NO + NW + SZ + NO + СЗ + NO + ÉNy + NO + + + NNW + NNW + NNO + NNW + SSZ + NNO + ССЗ + NNO + ÉÉNy + NNO + + + Action cancelled. + Aktion abgebrochen. + Acción cancelada. + Przerwano czynność + Akce přerušena + Action annulée. + Действие отменено. + Ação cancelada. + Művelet megszakítva. + Azione cancellata. + + + [ACE] Miscellaneous Items + [ACE] Verschiedenes + [ACE] Objetos varios + [ACE] Różne przedmioty + [ACE] Ostatní předměty + [ACE] Objets divers + [ACE] Различные предметы + [ACE] Itens diversos + [ACE] Egyéb tárgyak + [ACE] Oggetti vari + + + Disable Command Menu + Befehlsmenü ausschalten + Desactivar menú de mando + Wyłącz menu dowodzenia + Vypnout velící menu + Désactiver Menu Commande + Выключить командное меню + Parancsnoki menü kikapcsolása + Desabilitar menu de comando + + + Unknown + Unbekannt + Desconocido + Nieznany + Neznámý + Неизвестно + Ismeretlen + Desconhecido + + + No Voice + Keine Stimme + Sin voz + Brak głosu + Žádný hlas + Без голоса + Nincs hang + Sem voz + + + Akceptuj prośby + Aceptar Peticiones + Accept Requests + Aceitar Pedido + + + Ignoruj prośby + Rechazar Peticiones + Decline Requests + Rejeitar pedido + + + Akceptuj prośby wysłane przez innych graczy. Akceptacji wymagają między innymi akcje używania / współdzielenia wyposażenia, wykonywania określonych czynności. + Acepta Peticiones de otros jugadores. Pueden ser solicitudes para usar / compartir equipamiento, realizar ciertas acciones. + Accept Requests send by other players. These can be requests to use / share equipment, perform certain actions. + Aceitar pedidos enviados por outros jogadores. Podem ser pedidos para usar/ compartilhar equipamento, realizar certas ações. + + + Ignoruj prośby wysłane przez innych graczy. Akceptacji wymagają między innymi akcje używania / współdzielenia wyposażenia, wykonywania określonych czynności. + Rechazar Peticiones de otros jugadores. Pueden ser solicitudes para usar / compartir equipamiento, realizar ciertas acciones. + Decline Requests send by other players. These can be requests to use / share equipment, perform certain actions. + Rejeita pedidos enviados por outros jogadores. Podem ser pedidos para usar/ compartilhar equipamento, realizar certas ações. + + + Feedback icons + Ícones de Feedback + + + Select the position of or disable the feedback icons on your screen. These icons will show to provide extra feedback on your character status and actions performed. + Selecione a posição ou disabilite a posição dos ícones de feedback na sua tela. Esses ícones irão aparecer para mostrar feedback extra do status do seu personagem e ações realizadas. + + + Progress bar location + Local da barra de progresso + + + Set the desired location of the progress bar on your screen. + Define o local desejado da barra de progresso na sua tela. + + + Hint Background color + Cor do fundo da hint + + + The color of the background from the ACE hints. + A cor de fundo das hints do ACE. + + + Hint text font color + Cor do do texto da hint + + + The color of the text font from the ACE hints. This color is the default color for all text displayed through the ACE Hint system, if the hint text has no other color specified. + A cor do texto das hints do ACE. Essa cor é a cor default para todos os texos exibidos pelo sistema de hints do ACE, caso o texto da hint não tem outra cor especificada. + + + Banana + Banana + + + A banana is an edible fruit, botanically a berry, produced by several kinds of large herbaceous flowering plants in the genus Musa. + A banana é uma fruta comestível, botanicamente uma baga, produzida por vários tipos de plantas herbáceas grandes do genero Musa. + + + \ No newline at end of file From 5ed7cee6fd1e25f7aeaaf79fbeed3b293d85b264 Mon Sep 17 00:00:00 2001 From: ulteq Date: Sun, 26 Apr 2015 09:22:04 +0200 Subject: [PATCH 141/256] Fixed a copy&paste typo --- addons/ballistics/CfgAmmo.hpp | 1 - 1 file changed, 1 deletion(-) diff --git a/addons/ballistics/CfgAmmo.hpp b/addons/ballistics/CfgAmmo.hpp index 7a9a0c2acb..02df51e891 100644 --- a/addons/ballistics/CfgAmmo.hpp +++ b/addons/ballistics/CfgAmmo.hpp @@ -572,7 +572,6 @@ class CfgAmmo { ACE_caliber=0.366; ACE_bulletLength=1.350; ACE_bulletMass=230; - ACE_transonicStabilityCoef=1; ACE_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; ACE_ballisticCoefficients[]={0.368}; ACE_velocityBoundaries[]={}; From ad6176832dff967cd815c2a3f62addd438440a37 Mon Sep 17 00:00:00 2001 From: ulteq Date: Sun, 26 Apr 2015 09:26:01 +0200 Subject: [PATCH 142/256] Completed the CfgWeapon and CfgAmmo config entries --- documentation/development/ace3-config-entries.md | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/documentation/development/ace3-config-entries.md b/documentation/development/ace3-config-entries.md index cc0104a8b1..78f8022856 100644 --- a/documentation/development/ace3-config-entries.md +++ b/documentation/development/ace3-config-entries.md @@ -46,17 +46,20 @@ ace_gforcecoef ace_protection ace_scopeadjust_horizontal ace_scopeadjust_vertical +ace_scopeadjust_increment ace_isusedlauncher ace_attachable ace_range ace_detonator +ace_barrelTwist +ace_twistDirection +ace_barrelLength ``` ### CfgAmmo ```c++ -ace_bulletmass ace_recoil_shakemultiplier ace_frag_skip ace_frag_force @@ -68,6 +71,17 @@ ace_frag_gurney_k ace_explodeondefuse ace_explosive ace_fcs_airburst +ace_caliber +ace_bulletlength +ace_bulletmass +ace_transonicstabilitycoef +ace_ammotempmuzzlevelocityshifts +ace_ballisticcoefficients +ace_velocityboundaries +ace_standardatmosphere +ace_dragmodel +ace_muzzlevelocities +ace_barrellengths ``` From 171cea998e630cc76bf969ecad64cc20faec1244 Mon Sep 17 00:00:00 2001 From: bux578 Date: Sun, 26 Apr 2015 09:36:51 +0200 Subject: [PATCH 143/256] add most of the translations --- addons/medical/ACE_Medical_Actions.hpp | 12 +++---- addons/medical/ACE_Medical_Treatments.hpp | 34 +++++++++++-------- .../fnc_actionCheckBloodPressureLocal.sqf | 10 +++--- .../functions/fnc_actionCheckPulseLocal.sqf | 8 ++--- .../fnc_displayPatientInformation.sqf | 3 +- .../functions/fnc_displayTriageCard.sqf | 2 +- addons/medical/ui/RscTitles.hpp | 2 +- addons/medical/ui/triagecard.hpp | 2 +- 8 files changed, 40 insertions(+), 33 deletions(-) diff --git a/addons/medical/ACE_Medical_Actions.hpp b/addons/medical/ACE_Medical_Actions.hpp index a7b76fef44..70e286f7d8 100644 --- a/addons/medical/ACE_Medical_Actions.hpp +++ b/addons/medical/ACE_Medical_Actions.hpp @@ -66,13 +66,13 @@ class ACE_Head { EXCEPTIONS }; class CheckResponse: CheckPulse { - displayName = "Check Response"; + displayName = "$STR_ACE_MEDICAL_CHECK_RESPONSE"; condition = QUOTE([ARR_4(_player, _target, 'head', 'CheckResponse')] call DFUNC(canTreatCached)); statement = QUOTE([ARR_4(_player, _target, 'head', 'CheckResponse')] call DFUNC(treatment)); EXCEPTIONS }; class Diagnose: CheckPulse { - displayName = "Diagnose"; + displayName = "$STR_ACE_MEDICAL_ACTIONS_Diagnose"; condition = QUOTE([ARR_4(_player, _target, 'head', 'Diagnose')] call DFUNC(canTreatCached)); statement = QUOTE([ARR_4(_player, _target, 'head', 'Diagnose')] call DFUNC(treatment)); EXCEPTIONS @@ -111,7 +111,7 @@ class ACE_Torso { enableInside = 1; }; class TriageCard { - displayName = "Triage Card"; + displayName = "$STR_ACE_MEDICAL_ACTIONS_TriageCard"; distance = 2.0; condition = "true"; statement = QUOTE([ARR_2(_target, true)] call DFUNC(displayTriageCard)); @@ -158,21 +158,21 @@ class ACE_Torso { icon = PATHTOF(UI\icons\bandage.paa); }; class SurgicalKit: fieldDressing { - displayName = "Use Surgical Kit"; + displayName = "$STR_ACE_MEDICAL_USE_SURGICALKIT"; condition = QUOTE([ARR_4(_player, _target, 'body', 'SurgicalKit')] call DFUNC(canTreatCached)); statement = QUOTE([ARR_4(_player, _target, 'body', 'SurgicalKit')] call DFUNC(treatment)); EXCEPTIONS icon = PATHTOF(UI\icons\surgicalKit.paa); }; class PersonalAidKit: fieldDressing { - displayName = "Use Personal Aid Kit"; + displayName = "$STR_ACE_MEDICAL_USE_AID_KIT"; condition = QUOTE([ARR_4(_player, _target, 'body', 'PersonalAidKit')] call DFUNC(canTreatCached)); statement = QUOTE([ARR_4(_player, _target, 'body', 'PersonalAidKit')] call DFUNC(treatment)); EXCEPTIONS icon = ""; }; class CPR: fieldDressing { - displayName = "CPR"; + displayName = "$STR_ACE_MEDICAL_ACTIONS_CPR"; condition = QUOTE([ARR_4(_player, _target, 'body', 'CPR')] call DFUNC(canTreatCached)); statement = QUOTE([ARR_4(_player, _target, 'body', 'CPR')] call DFUNC(treatment)); EXCEPTIONS diff --git a/addons/medical/ACE_Medical_Treatments.hpp b/addons/medical/ACE_Medical_Treatments.hpp index 03b9def612..23141be6ba 100644 --- a/addons/medical/ACE_Medical_Treatments.hpp +++ b/addons/medical/ACE_Medical_Treatments.hpp @@ -72,8 +72,8 @@ class ACE_Medical_Actions { litter[] = {}; }; class Diagnose: Bandage { - displayName = "Diagnose"; - displayNameProgress = "Diagnosing..."; + displayName = "$STR_ACE_MEDICAL_ACTIONS_Diagnose"; + displayNameProgress = "$STR_ACE_MEDICAL_ACTIONS_Diagnosing"; treatmentLocations[] = {"All"}; requiredMedic = 0; treatmentTime = 1; @@ -250,8 +250,8 @@ class ACE_Medical_Actions { condition = QUOTE([ARR_2(_this select 1, _this select 2)] call FUNC(hasTourniquetAppliedTo)); }; class CPR: fieldDressing { - displayName = "CPR"; - displayNameProgress = "Performing CPR"; + displayName = "$STR_ACE_MEDICAL_ACTIONS_CPR"; + displayNameProgress = "$STR_ACE_MEDICAL_ACTIONS_PerformingCPR"; treatmentLocations[] = {"All"}; requiredMedic = 0; treatmentTime = 15; @@ -297,7 +297,7 @@ class ACE_Medical_Advanced { // Source: Scarle // Also called scrapes, they occur when the skin is rubbed away by friction against another rough surface (e.g. rope burns and skinned knees). class Abrasion { - name = "Scrape"; + name = "$STR_ACE_Medical_Wounds_Abrasion"; selections[] = {"All"}; bleedingRate = 0.0001; pain = 0.01; @@ -321,23 +321,29 @@ class ACE_Medical_Advanced { // Occur when an entire structure or part of it is forcibly pulled away, such as the loss of a permanent tooth or an ear lobe. Explosions, gunshots, and animal bites may cause avulsions. class Avulsions { - name = "Avulsion"; + name = "$STR_ACE_Medical_Wounds_Avulsion"; selections[] = {"All"}; bleedingRate = 0.01; pain = 0.3; causes[] = {"explosive", "vehiclecrash", "grenade", "shell", "bullet", "backblast", "bite"}; minDamage = 0.2; class Minor { + name = "Fisch"; + displayName = "Fisch2"; minDamage = 0.2; maxDamage = 0.3; bleedingRate = 0.01; }; class Medium { + name = "Fisch"; + displayName = "Fisch2"; minDamage = 0.3; maxDamage = 0.6; bleedingRate = 0.02; }; class Large { + name = "Fisch"; + displayName = "Fisch2"; minDamage = 0.5; bleedingRate = 0.05; }; @@ -345,11 +351,11 @@ class ACE_Medical_Advanced { // Also called bruises, these are the result of a forceful trauma that injures an internal structure without breaking the skin. Blows to the chest, abdomen, or head with a blunt instrument (e.g. a football or a fist) can cause contusions. class Contusion { - name = "Bruise"; + name = "$STR_ACE_Medical_Wounds_Contusion"; selections[] = {"All"}; bleedingRate = 0.0; pain = 0.05; - causes[] = {"bullet", "backblast", "punch","vehiclecrash","falling"}; + causes[] = {"bullet", "backblast", "punch", "vehiclecrash", "falling"}; minDamage = 0.01; maxDamage = 0.1; class Minor { @@ -368,7 +374,7 @@ class ACE_Medical_Advanced { // Occur when a heavy object falls onto a person, splitting the skin and shattering or tearing underlying structures. class CrushWound { - name = "Crushed tissue"; + name = "$STR_ACE_Medical_Wounds_Crush"; selections[] = {"All"}; bleedingRate = 0.01; pain = 0.1; @@ -392,7 +398,7 @@ class ACE_Medical_Advanced { // Slicing wounds made with a sharp instrument, leaving even edges. They may be as minimal as a paper cut or as significant as a surgical incision. class Cut { - name = "Cut"; + name = "$STR_ACE_Medical_Wounds_Cut"; selections[] = {"All"}; bleedingRate = 0.01; pain = 0.075; @@ -416,7 +422,7 @@ class ACE_Medical_Advanced { // Also called tears, these are separating wounds that produce ragged edges. They are produced by a tremendous force against the body, either from an internal source as in childbirth, or from an external source like a punch. class Laceration { - name = "Tear"; + name = "$STR_ACE_Medical_Wounds_Laceration"; selections[] = {"All"}; bleedingRate = 0.01; pain = 0.075; @@ -440,7 +446,7 @@ class ACE_Medical_Advanced { // Also called velocity wounds, they are caused by an object entering the body at a high speed, typically a bullet or small peices of shrapnel. class velocityWound { - name = "Velocity Wound"; + name = "$STR_ACE_Medical_Wounds_VelocityWound"; selections[] = {"All"}; bleedingRate = 0.01; pain = 0.2; @@ -463,7 +469,7 @@ class ACE_Medical_Advanced { // Deep, narrow wounds produced by sharp objects such as nails, knives, and broken glass. class punctureWound { - name = "Puncture Wound"; + name = "$STR_ACE_Medical_Wounds_PunctureWound"; selections[] = {"All"}; bleedingRate = 0.01; pain = 0.075; @@ -487,7 +493,7 @@ class ACE_Medical_Advanced { }; class fractures { class Femur { - name = "Broken Femur"; + name = "$STR_ACE_Medical_Wounds_Femur"; selections[] = {"Head", "Torso"}; pain = 0.2; causes[] = {"Bullet", "VehicleCrash", "Backblast", "Explosive", "Shell", "Grenade"}; diff --git a/addons/medical/functions/fnc_actionCheckBloodPressureLocal.sqf b/addons/medical/functions/fnc_actionCheckBloodPressureLocal.sqf index 28ed10c83c..a9228d1760 100644 --- a/addons/medical/functions/fnc_actionCheckBloodPressureLocal.sqf +++ b/addons/medical/functions/fnc_actionCheckBloodPressureLocal.sqf @@ -33,20 +33,20 @@ if ([_caller] call FUNC(isMedic)) then { } else { if (_bloodPressureHigh > 20) then { _output = "STR_ACE_MEDICAL_CHECK_BLOODPRESSURE_OUTPUT_2"; - _logOutPut = "Low"; + _logOutPut = localize "STR_ACE_MEDICAL_CHECK_BLOODPRESSURE_LOW"; if (_bloodPressureHigh > 100) then { _output = "STR_ACE_MEDICAL_CHECK_BLOODPRESSURE_OUTPUT_3"; - _logOutPut = "Normal"; + _logOutPut = localize "STR_ACE_MEDICAL_CHECK_BLOODPRESSURE_NORMAL"; if (_bloodPressureHigh > 160) then { _output = "STR_ACE_MEDICAL_CHECK_BLOODPRESSURE_OUTPUT_4"; - _logOutPut = "High"; + _logOutPut = localize "STR_ACE_MEDICAL_CHECK_BLOODPRESSURE_HIGH"; }; }; } else { if (random(10) > 3) then { _output = "STR_ACE_MEDICAL_CHECK_BLOODPRESSURE_OUTPUT_5"; - _logOutPut = "No Blood Pressure"; + _logOutPut = localize "STR_ACE_MEDICAL_CHECK_BLOODPRESSURE_NOBLOODPRESSURE"; } else { _output = "STR_ACE_MEDICAL_CHECK_BLOODPRESSURE_OUTPUT_6"; }; @@ -56,5 +56,5 @@ if ([_caller] call FUNC(isMedic)) then { ["displayTextStructured", [_caller], [[_output, [_target] call EFUNC(common,getName), round(_bloodPressureHigh),round(_bloodPressureLow)], 1.75, _caller]] call EFUNC(common,targetEvent); if (_logOutPut != "") then { - [_target,"activity", "%1 checked Blood Pressure: %2", [[_caller] call EFUNC(common,getName), _logOutPut]] call FUNC(addToLog); + [_target,"activity", localize "STR_ACE_MEDICAL_CHECK_BLOODPRESSURE_LOG", [[_caller] call EFUNC(common,getName), _logOutPut]] call FUNC(addToLog); }; diff --git a/addons/medical/functions/fnc_actionCheckPulseLocal.sqf b/addons/medical/functions/fnc_actionCheckPulseLocal.sqf index 73d1d07190..dcb098c925 100644 --- a/addons/medical/functions/fnc_actionCheckPulseLocal.sqf +++ b/addons/medical/functions/fnc_actionCheckPulseLocal.sqf @@ -33,14 +33,14 @@ if (_heartRate > 1.0) then { } else { // non medical personel will only find a pulse/HR _heartRateOutput = "STR_ACE_MEDICAL_CHECK_PULSE_OUTPUT_2"; - _logOutPut = "Weak"; + _logOutPut = localize "STR_ACE_MEDICAL_CHECK_PULSE_WEAK"; if (_heartRate > 60) then { if (_heartRate > 100) then { _heartRateOutput = "STR_ACE_MEDICAL_CHECK_PULSE_OUTPUT_3"; - _logOutPut = "Strong"; + _logOutPut = localize "STR_ACE_MEDICAL_CHECK_PULSE_STRONG"; } else { _heartRateOutput = "STR_ACE_MEDICAL_CHECK_PULSE_OUTPUT_4"; - _logOutPut = "Normal"; + _logOutPut = localize "STR_ACE_MEDICAL_CHECK_PULSE_NORMAL"; }; }; }; @@ -49,5 +49,5 @@ if (_heartRate > 1.0) then { ["displayTextStructured", [_caller], [[_heartRateOutput, [_unit] call EFUNC(common,getName), round(_heartRate)], 1.5, _caller]] call EFUNC(common,targetEvent); if (_logOutPut != "") then { - [_unit,"activity","%1 checked Heart Rate: %2",[[_caller] call EFUNC(common,getName),_logOutPut]] call FUNC(addToLog); + [_unit,"activity", localize "STR_ACE_MEDICAL_CHECK_PULSE_LOG",[[_caller] call EFUNC(common,getName),_logOutPut]] call FUNC(addToLog); }; diff --git a/addons/medical/functions/fnc_displayPatientInformation.sqf b/addons/medical/functions/fnc_displayPatientInformation.sqf index 65c98c4b85..b861437481 100644 --- a/addons/medical/functions/fnc_displayPatientInformation.sqf +++ b/addons/medical/functions/fnc_displayPatientInformation.sqf @@ -186,7 +186,8 @@ if (_show) then { _lbCtrl lbSetColor [_foreachIndex + _amountOfGeneric, _x select 1]; }foreach _allInjuryTexts; if (count _allInjuryTexts == 0) then { - _lbCtrl lbAdd "No injuries on this bodypart.."; + //_lbCtrl lbAdd "No injuries on this bodypart.."; + _lbCtrl lbAdd (localize "STR_ACE_Medical_NoInjuriesBodypart"); }; _logCtrl = (_display displayCtrl 302); diff --git a/addons/medical/functions/fnc_displayTriageCard.sqf b/addons/medical/functions/fnc_displayTriageCard.sqf index 5feb209b44..8e9660a3d5 100644 --- a/addons/medical/functions/fnc_displayTriageCard.sqf +++ b/addons/medical/functions/fnc_displayTriageCard.sqf @@ -58,7 +58,7 @@ if (_show) then { }foreach _log; if (count _triageCardTexts == 0) then { - _lbCtrl lbAdd "No entries on this triage card.."; + _lbCtrl lbAdd (localize "STR_ACE_MEDICAL_TriageCard_NoEntry"); }; { _lbCtrl lbAdd _x; diff --git a/addons/medical/ui/RscTitles.hpp b/addons/medical/ui/RscTitles.hpp index 1962daec80..dece0e0a8d 100644 --- a/addons/medical/ui/RscTitles.hpp +++ b/addons/medical/ui/RscTitles.hpp @@ -60,7 +60,7 @@ class Rsctitles { font = "PuristaMedium"; colorText[] = {0.95, 0.95, 0.95, 0.75}; colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])", "(profilenamespace getvariable ['GUI_BCG_RGB_A',0.9])"}; - text = "INJURIES"; + text = "$STR_ACE_Medical_Injuries"; }; class InjuryList: ACE_gui_listBoxBase { idc = 200; diff --git a/addons/medical/ui/triagecard.hpp b/addons/medical/ui/triagecard.hpp index f1b98f1e2d..a93440d13a 100644 --- a/addons/medical/ui/triagecard.hpp +++ b/addons/medical/ui/triagecard.hpp @@ -49,7 +49,7 @@ class GVAR(triageCard) { font = "PuristaMedium"; colorText[] = {0,0,0,1}; colorBackground[] = {0,0,0,0}; - text = "TRIAGE CARD"; + text = "$STR_ACE_MEDICAL_ACTIONS_TriageCard"; }; class TriageList: ACE_gui_listBoxBase { idc = 200; From 0aa2b31dd4c7849bba6e55eff433fb055f441536 Mon Sep 17 00:00:00 2001 From: bux578 Date: Sun, 26 Apr 2015 09:37:02 +0200 Subject: [PATCH 144/256] gj git --- addons/medical/stringtable.xml | 134 +++++++++++++++++++++++++++++---- 1 file changed, 121 insertions(+), 13 deletions(-) diff --git a/addons/medical/stringtable.xml b/addons/medical/stringtable.xml index 7ff4d9d4b3..e82da7ac91 100644 --- a/addons/medical/stringtable.xml +++ b/addons/medical/stringtable.xml @@ -1,6 +1,14 @@  + + Injuries + Verletzungen + + + No injuries on this bodypart ... + Körperteil nicht verletzt ... + Litter Simulation Detail Detale zużytych medykamentów @@ -356,6 +364,10 @@ Orvosi lap Triage Card + + No entries on this triage card. + Keine Einträge auf der Triagekarte + Tourniquet Aderpresse @@ -378,6 +390,22 @@ Érszorító leszedése Rimuovi laccio emostatico + + Diagnose + Diagnose + + + Diagnosing ... + Diagnostizieren ... + + + CPR + HLW + + + Performing CPR ... + HLW durchführen ... + Give Blood IV (1000ml) Bluttransfusion IV (1000ml) @@ -446,7 +474,7 @@ Give Saline IV (1000ml) - Kochsaltzlösung IV (1000ml) + Kochsalzlösung IV (1000ml) Dar Salino IV (1000ml) Перелить пакет физраствора (1000 мл) Podaj sól fizjologiczną IV (1000ml) @@ -457,7 +485,7 @@ Give Saline IV (500ml) - Kochsaltzlösung IV (500ml) + Kochsalzlösung IV (500ml) Dar Salino IV (500ml) Перелить пакет физраствора (500 мл) Podaj sól fizjologiczną IV (500ml) @@ -468,7 +496,7 @@ Give Saline IV (250ml) - Kochsaltzlösung IV (250ml) + Kochsalzlösung IV (250ml) Dar Salino IV (250ml) Перелить пакет физраствора (250 мл) Podaj sól fizjologiczną IV (250ml) @@ -1038,12 +1066,12 @@ Include vario materiale medico per trattamenti avanzati. - - - - + Personal Aid Kit for in field stitching or advanced treatment W znacznym stopniu poprawia stan pacjenta - + + + Use Personal Aid Kit + Verbandpäckchen benutzen Surgical Kit @@ -1075,6 +1103,10 @@ Sebészeti készlet komplex orvosi feladatok terepen való ellátására Kit chirurgico per trattamenti avanzati sul campo. + + Use Surgical Kit + Operationsset benutzen + Bodybag Housse mortuaire @@ -1125,6 +1157,10 @@ Vérnyomás megmérése... Controllando la pressione sanguigna.. + + %1 checked Blood Pressure: %2 + %1 kontrollierte Blutdruck: %2 + You checked %1 Vous diagnostiquez %1 @@ -1194,6 +1230,22 @@ Nem sikerült a vérnyomás megmérése Manca strumento per misurare pressione sanguigna + + Low + Niedrig + + + Normal + Normal + + + High + Hoch + + + No Blood Pressure + Kein Blutdruck + Pulse Пульс @@ -1205,14 +1257,14 @@ Polso - Checking Heart Rate.. + Checking Heart Rate ... Vérification du rythme cardiaque ... Проверка пульса ... - Comprobando ritmo cardíaco... - Sprawdzanie tętna... - Kontrolliere Herzfrequenz + Comprobando ritmo cardíaco ... + Sprawdzanie tętna ... + Kontrolliere Herzfrequenz ... Szívverés-szám mérése... - Controllando il battito cardiaco.. + Controllando il battito cardiaco ... You checked %1 @@ -1224,6 +1276,22 @@ A %1 ellenőrizve Hai diagnosticato %1 + + %1 checked Heart Rate: %2 + %1 kontrollierte Herzfrequenz: %2 + + + Weak + Schwach + + + Normal + Normal + + + Strong + Stark + You find a Heart Rate of %2 Rythme carquiaque de %2 @@ -1659,5 +1727,45 @@ Aberración cromática Aberration chromatique + + Scrape + Kratzer + + + Avulsion + Avulsion + + + Bruise + Prellung + + + Crushed tissue + Quetschverletzung + + + Cut + Schnittwunde + + + Tear + Riss + + + Velocity Wound + Ballistisches Trauma + + + Puncture Wound + Stichwunde + + + Puncture Wound + Stichwunde + + + Broken Femur + Gebrochener Oberschenkelknochen + From dec47dade8028ac1c8b8a7330b42a7282c6f32ae Mon Sep 17 00:00:00 2001 From: bux578 Date: Sun, 26 Apr 2015 09:38:56 +0200 Subject: [PATCH 145/256] ups, remove test code --- addons/medical/ACE_Medical_Treatments.hpp | 6 ------ 1 file changed, 6 deletions(-) diff --git a/addons/medical/ACE_Medical_Treatments.hpp b/addons/medical/ACE_Medical_Treatments.hpp index 23141be6ba..1f32bd60b8 100644 --- a/addons/medical/ACE_Medical_Treatments.hpp +++ b/addons/medical/ACE_Medical_Treatments.hpp @@ -328,22 +328,16 @@ class ACE_Medical_Advanced { causes[] = {"explosive", "vehiclecrash", "grenade", "shell", "bullet", "backblast", "bite"}; minDamage = 0.2; class Minor { - name = "Fisch"; - displayName = "Fisch2"; minDamage = 0.2; maxDamage = 0.3; bleedingRate = 0.01; }; class Medium { - name = "Fisch"; - displayName = "Fisch2"; minDamage = 0.3; maxDamage = 0.6; bleedingRate = 0.02; }; class Large { - name = "Fisch"; - displayName = "Fisch2"; minDamage = 0.5; bleedingRate = 0.05; }; From fc08ebb0a5ac482fe684b8e634d8e1d5015d6bf3 Mon Sep 17 00:00:00 2001 From: Glowbal Date: Sun, 26 Apr 2015 11:19:25 +0200 Subject: [PATCH 146/256] added "isNotInside" exception to unload --- addons/medical/CfgVehicles.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/medical/CfgVehicles.hpp b/addons/medical/CfgVehicles.hpp index 2de90e77d0..339abe5a42 100644 --- a/addons/medical/CfgVehicles.hpp +++ b/addons/medical/CfgVehicles.hpp @@ -467,7 +467,7 @@ class CfgVehicles { showDisabled = 0; priority = 2; icon = PATHTOF(UI\icons\medical_cross.paa); - exceptions[] = {"isNotDragging", "isNotCarrying"}; + exceptions[] = {"isNotDragging", "isNotCarrying", "isNotInside"}; }; }; }; From b2dd065429b97952e6f6449c67050e9ab8bb991a Mon Sep 17 00:00:00 2001 From: bux578 Date: Sun, 26 Apr 2015 12:27:06 +0200 Subject: [PATCH 147/256] remove comment --- addons/medical/functions/fnc_displayPatientInformation.sqf | 1 - 1 file changed, 1 deletion(-) diff --git a/addons/medical/functions/fnc_displayPatientInformation.sqf b/addons/medical/functions/fnc_displayPatientInformation.sqf index b861437481..1fc1051efa 100644 --- a/addons/medical/functions/fnc_displayPatientInformation.sqf +++ b/addons/medical/functions/fnc_displayPatientInformation.sqf @@ -186,7 +186,6 @@ if (_show) then { _lbCtrl lbSetColor [_foreachIndex + _amountOfGeneric, _x select 1]; }foreach _allInjuryTexts; if (count _allInjuryTexts == 0) then { - //_lbCtrl lbAdd "No injuries on this bodypart.."; _lbCtrl lbAdd (localize "STR_ACE_Medical_NoInjuriesBodypart"); }; From f96deadd20cc5528044353eb518e5f84898d8bbb Mon Sep 17 00:00:00 2001 From: commy2 Date: Sun, 26 Apr 2015 12:41:15 +0200 Subject: [PATCH 148/256] imenu: remove shadow, fix caching --- .../interact_menu/functions/fnc_ctrlSetParsedTextCached.sqf | 2 +- addons/interact_menu/functions/fnc_keyDown.sqf | 1 + addons/interact_menu/functions/fnc_render.sqf | 1 + addons/interact_menu/functions/fnc_renderIcon.sqf | 4 ++-- 4 files changed, 5 insertions(+), 3 deletions(-) diff --git a/addons/interact_menu/functions/fnc_ctrlSetParsedTextCached.sqf b/addons/interact_menu/functions/fnc_ctrlSetParsedTextCached.sqf index c68f233b9b..f538807ffe 100644 --- a/addons/interact_menu/functions/fnc_ctrlSetParsedTextCached.sqf +++ b/addons/interact_menu/functions/fnc_ctrlSetParsedTextCached.sqf @@ -7,7 +7,7 @@ _ctrl = _this select 0; _index = _this select 1; _text = _this select 2; -if (_text != Str(ARR_SELECT(GVAR(ParsedTextCached),_index,""))) then { +if (_text != ARR_SELECT(GVAR(ParsedTextCached),_index,"-1")) then { GVAR(ParsedTextCached) set [_index, _text]; _ctrl ctrlSetStructuredText parseText _text; }; diff --git a/addons/interact_menu/functions/fnc_keyDown.sqf b/addons/interact_menu/functions/fnc_keyDown.sqf index 1bd4d04474..37e5bc3797 100644 --- a/addons/interact_menu/functions/fnc_keyDown.sqf +++ b/addons/interact_menu/functions/fnc_keyDown.sqf @@ -30,6 +30,7 @@ if (_menuType == 0) then { GVAR(keyDownTime) = diag_tickTime; GVAR(openedMenuType) = _menuType; GVAR(lastTimeSearchedActions) = -1000; +GVAR(ParsedTextCached) = []; GVAR(useCursorMenu) = (vehicle ACE_player != ACE_player) || visibleMap || diff --git a/addons/interact_menu/functions/fnc_render.sqf b/addons/interact_menu/functions/fnc_render.sqf index b9afa75616..0c0635f8a4 100644 --- a/addons/interact_menu/functions/fnc_render.sqf +++ b/addons/interact_menu/functions/fnc_render.sqf @@ -77,6 +77,7 @@ if (GVAR(openedMenuType) >= 0) then { GVAR(startHoverTime) = diag_tickTime; GVAR(lastPath) = _hoverPath; GVAR(expanded) = false; + GVAR(ParsedTextCached) = []; } else { if(!GVAR(expanded) && diag_tickTime-GVAR(startHoverTime) > 0.25) then { GVAR(expanded) = true; diff --git a/addons/interact_menu/functions/fnc_renderIcon.sqf b/addons/interact_menu/functions/fnc_renderIcon.sqf index 443328fbc9..32e8aa1a63 100644 --- a/addons/interact_menu/functions/fnc_renderIcon.sqf +++ b/addons/interact_menu/functions/fnc_renderIcon.sqf @@ -32,9 +32,9 @@ if(_icon == "") then { }; _text = if (GVAR(UseListMenu)) then { - format ["%5", _icon, _iconColor, _textColor, _shadowColor, _text] + format ["%5", _icon, _iconColor, _textColor, _shadowColor, _text] } else { - format ["
%5", _icon, _iconColor, _textColor, _shadowColor, "ace_breakLine" callExtension _text]; + format ["
%5", _icon, _iconColor, _textColor, _shadowColor, "ace_breakLine" callExtension _text]; }; //_ctrl ctrlSetStructuredText parseText _text; From b3c461b9da6924b7dd7c6fa4bd8fe9a1f72cde93 Mon Sep 17 00:00:00 2001 From: bux578 Date: Sun, 26 Apr 2015 14:02:14 +0200 Subject: [PATCH 149/256] last few translations --- addons/medical/ACE_Medical_Treatments.hpp | 24 +++++ addons/medical/stringtable.xml | 106 +++++++++++++++++++++- 2 files changed, 127 insertions(+), 3 deletions(-) diff --git a/addons/medical/ACE_Medical_Treatments.hpp b/addons/medical/ACE_Medical_Treatments.hpp index 1f32bd60b8..85bcab9616 100644 --- a/addons/medical/ACE_Medical_Treatments.hpp +++ b/addons/medical/ACE_Medical_Treatments.hpp @@ -304,16 +304,19 @@ class ACE_Medical_Advanced { causes[] = {"falling", "ropeburn", "vehiclecrash", "unknown"}; minDamage = 0.01; class Minor { + name = "$STR_ACE_Medical_Wounds_Abrasion_Minor"; minDamage = 0.01; maxDamage = 0.2; bleedingRate = 0.0001; }; class Medium { + name = "$STR_ACE_Medical_Wounds_Abrasion_Medium"; minDamage = 0.2; maxDamage = 0.3; bleedingRate = 0.00015; }; class Large { + name = "$STR_ACE_Medical_Wounds_Abrasion_Large"; minDamage = 0.3; bleedingRate = 0.0002; }; @@ -328,16 +331,19 @@ class ACE_Medical_Advanced { causes[] = {"explosive", "vehiclecrash", "grenade", "shell", "bullet", "backblast", "bite"}; minDamage = 0.2; class Minor { + name = "$STR_ACE_Medical_Wounds_Avulsion_Minor"; minDamage = 0.2; maxDamage = 0.3; bleedingRate = 0.01; }; class Medium { + name = "$STR_ACE_Medical_Wounds_Avulsion_Medium"; minDamage = 0.3; maxDamage = 0.6; bleedingRate = 0.02; }; class Large { + name = "$STR_ACE_Medical_Wounds_Avulsion_Large"; minDamage = 0.5; bleedingRate = 0.05; }; @@ -353,14 +359,17 @@ class ACE_Medical_Advanced { minDamage = 0.01; maxDamage = 0.1; class Minor { + name = "$STR_ACE_Medical_Wounds_Contusion_Minor"; minDamage = 0.01; maxDamage = 0.1; }; class Medium { + name = "$STR_ACE_Medical_Wounds_Contusion_Medium"; minDamage = 0.1; maxDamage = 0.15; }; class Large { + name = "$STR_ACE_Medical_Wounds_Contusion_Large"; minDamage = 0.15; maxDamage = 0.2; }; @@ -375,16 +384,19 @@ class ACE_Medical_Advanced { causes[] = {"falling", "vehiclecrash", "punch", "unknown"}; minDamage = 0.1; class Minor { + name = "$STR_ACE_Medical_Wounds_Crush_Minor"; minDamage = 0.1; maxDamage = 0.45; bleedingRate = 0.005; }; class Medium { + name = "$STR_ACE_Medical_Wounds_Crush_Medium"; minDamage = 0.4; maxDamage = 0.7; bleedingRate = 0.007; }; class Large { + name = "$STR_ACE_Medical_Wounds_Crush_Large"; minDamage = 0.6; bleedingRate = 0.0095; }; @@ -399,16 +411,19 @@ class ACE_Medical_Advanced { causes[] = {"vehiclecrash", "grenade", "explosive", "shell", "backblast", "stab", "unknown"}; minDamage = 0.1; class Minor { + name = "$STR_ACE_Medical_Wounds_Cut_Minor"; minDamage = 0.1; maxDamage = 0.3; bleedingRate = 0.005; }; class Medium { + name = "$STR_ACE_Medical_Wounds_Cut_Medium"; minDamage = 0.3; maxDamage = 0.65; bleedingRate = 0.02; }; class Large { + name = "$STR_ACE_Medical_Wounds_Cut_Large"; minDamage = 0.65; bleedingRate = 0.05; }; @@ -423,16 +438,19 @@ class ACE_Medical_Advanced { causes[] = {"vehiclecrash", "punch"}; minDamage = 0.01; class Minor { + name = "$STR_ACE_Medical_Wounds_Laceration_Minor"; minDamage = 0.1; maxDamage = 0.5; bleedingRate = 0.005; }; class Medium { + name = "$STR_ACE_Medical_Wounds_Laceration_Medium"; minDamage = 0.5; maxDamage = 0.7; bleedingRate = 0.01; }; class Large { + name = "$STR_ACE_Medical_Wounds_Laceration_Large"; minDamage = 0.7; bleedingRate = 0.03; }; @@ -447,15 +465,18 @@ class ACE_Medical_Advanced { causes[] = {"bullet", "grenade","explosive", "shell", "unknown"}; minDamage = 0.15; class Minor { + name = "$STR_ACE_Medical_Wounds_VelocityWound_Minor"; minDamage = 0.15; maxDamage = 0.3; bleedingRate = 0.025; }; class Medium { + name = "$STR_ACE_Medical_Wounds_VelocityWound_Medium"; minDamage = 0.3; bleedingRate = 0.05; }; class Large { + name = "$STR_ACE_Medical_Wounds_VelocityWound_Large"; minDamage = 0.75; bleedingRate = 0.1; }; @@ -470,16 +491,19 @@ class ACE_Medical_Advanced { causes[] = {"stab", "grenade"}; minDamage = 0.01; class Minor { + name = "$STR_ACE_Medical_Wounds_PunctureWound_Minor"; minDamage = 0.01; maxDamage = 0.5; bleedingRate = 0.01; }; class Medium { + name = "$STR_ACE_Medical_Wounds_PunctureWound_Medium"; minDamage = 0.5; maxDamage = 0.75; bleedingRate = 0.03; }; class Large { + name = "$STR_ACE_Medical_Wounds_PunctureWound_Large"; minDamage = 0.65; bleedingRate = 0.08; }; diff --git a/addons/medical/stringtable.xml b/addons/medical/stringtable.xml index e82da7ac91..ea4214ec78 100644 --- a/addons/medical/stringtable.xml +++ b/addons/medical/stringtable.xml @@ -1731,38 +1731,138 @@ Scrape Kratzer + + Minor Scrape + Kleiner Kratzer + + + Medium Scrape + Mittlerer Kratzer + + + Large Scrape + Großer Kratzer + + Avulsion Avulsion + + Minor Avulsion + Kleine Avulsion + + + Medium Avulsion + Mittlere Avulsion + + + Large Avulsion + Große Avulsion + + Bruise Prellung + + Minor Bruise + Kleine Prellung + + + Medium Bruise + Mittlere Prellung + + + Large Bruise + Große Prellung + + Crushed tissue Quetschverletzung + + Minor crushed tissue + Kleine Quetschverletzung + + + Medium crushed tissue + Mittlere Quetschverletzung + + + Large crushed tissue + Große Quetschverletzung + + Cut Schnittwunde + + Small Cut + Kleine Schnittwunde + + + Medium Cut + Mittlere Schnittwunde + + + Large Cut + Große Schnittwunde + + Tear Riss + + Small Tear + Kleiner Riss + + + Medium Tear + Mittlerer Riss + + + Large Tear + Großer Riss + + Velocity Wound Ballistisches Trauma + + Smal Velocity Wound + Kleines Ballistisches Trauma + + + Medium Velocity Wound + Mittleres Ballistisches Trauma + + + Large Velocity Wound + Großes Ballistisches Trauma + + Puncture Wound Stichwunde - - Puncture Wound - Stichwunde + + Minor Puncture Wound + Kleine Stichwunde + + Medium Puncture Wound + Mittlere Stichwunde + + + Large Puncture Wound + Große Stichwunde + + Broken Femur Gebrochener Oberschenkelknochen From 6cc4f48eb211c87a5872747348b49a709f9b89ed Mon Sep 17 00:00:00 2001 From: bux578 Date: Sun, 26 Apr 2015 14:19:28 +0200 Subject: [PATCH 150/256] Uppercase Injuries --- addons/medical/stringtable.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/medical/stringtable.xml b/addons/medical/stringtable.xml index ea4214ec78..2cc967d861 100644 --- a/addons/medical/stringtable.xml +++ b/addons/medical/stringtable.xml @@ -2,8 +2,8 @@ - Injuries - Verletzungen + INJURIES + VERLETZUNGEN No injuries on this bodypart ... From 769953d8c164c6c83ba374ba67c86e90e1c22484 Mon Sep 17 00:00:00 2001 From: Simon Reuter Date: Sun, 26 Apr 2015 14:46:04 +0200 Subject: [PATCH 151/256] Update AUTHORS.txt Added email address. --- AUTHORS.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AUTHORS.txt b/AUTHORS.txt index 2f16aea49c..aa88fce008 100644 --- a/AUTHORS.txt +++ b/AUTHORS.txt @@ -69,7 +69,7 @@ Raspu86 Riccardo Petricca Robert Boklahánics ramius86 -simon84 +simon84 Sniperwolf572 Tachi Tonic From 28a8fbc4fe96d911e2a9f9d72c86ad2ab3c020ff Mon Sep 17 00:00:00 2001 From: bux578 Date: Sun, 26 Apr 2015 15:36:47 +0200 Subject: [PATCH 152/256] fix vector name it's the vector 21 not the vector IV --- addons/vector/stringtable.xml | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/addons/vector/stringtable.xml b/addons/vector/stringtable.xml index 05289d189f..edef7a7bea 100644 --- a/addons/vector/stringtable.xml +++ b/addons/vector/stringtable.xml @@ -1,18 +1,17 @@  - - Vector IV - Vector IV - Vector IV - Vector IV - Vector IV - Vector IV - Vector IV - Vector IV - Vector IV - Vector IV + Vector 21 + Vector 21 + Vector 21 + Vector 21 + Vector 21 + Vector 21 + Vector 21 + Vector 21 + Vector 21 + Vector 21 Rangefinder From 8976b6983de4b3c01cf54200b3eb6451d541cc1b Mon Sep 17 00:00:00 2001 From: commy2 Date: Sun, 26 Apr 2015 16:47:36 +0200 Subject: [PATCH 153/256] mute unconsious units --- addons/medical/functions/fnc_setUnconscious.sqf | 5 ++++- addons/medical/functions/fnc_unconsciousPFH.sqf | 4 ++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/addons/medical/functions/fnc_setUnconscious.sqf b/addons/medical/functions/fnc_setUnconscious.sqf index c5809f8c8e..86f9425d23 100644 --- a/addons/medical/functions/fnc_setUnconscious.sqf +++ b/addons/medical/functions/fnc_setUnconscious.sqf @@ -26,7 +26,7 @@ if !(_set) exitwith { _unit setvariable ["ACE_isUnconscious", false, true]; }; -if !(!(isNull _unit) && {(_unit isKindOf "CaManBase") && ([_unit] call EFUNC(common,isAwake))}) exitwith{}; +if !(!(isNull _unit) && {(_unit isKindOf "CAManBase") && ([_unit] call EFUNC(common,isAwake))}) exitwith{}; if (!local _unit) exitwith { [[_unit], QUOTE(DFUNC(setUnconscious)), _unit, false] call EFUNC(common,execRemoteFnc); /* TODO Replace by event system */ @@ -86,4 +86,7 @@ _startingTime = time; [DFUNC(unconsciousPFH), 0.1, [_unit,_animState, _originalPos, _startingTime, _minWaitingTime, false, vehicle _unit isKindOf "ParachuteBase"] ] call CBA_fnc_addPerFrameHandler; +// unconscious can't talk +[_unit, "isUnconscious"] call EFUNC(common,muteUnit); + ["medical_onUnconscious", [_unit, true]] call EFUNC(common,globalEvent); diff --git a/addons/medical/functions/fnc_unconsciousPFH.sqf b/addons/medical/functions/fnc_unconsciousPFH.sqf index 1d7558e5fc..fc60c2bb02 100644 --- a/addons/medical/functions/fnc_unconsciousPFH.sqf +++ b/addons/medical/functions/fnc_unconsciousPFH.sqf @@ -31,6 +31,8 @@ if (!alive _unit) exitwith { [_unit, false] call EFUNC(common,disableAI); //_unit setUnitPos _originalPos; _unit setUnconscious false; + + [_unit, "isUnconscious"] call EFUNC(common,unmuteUnit); ["medical_onUnconscious", [_unit, false]] call EFUNC(common,globalEvent); [(_this select 1)] call cba_fnc_removePerFrameHandler; @@ -71,6 +73,8 @@ if !(_unit getvariable ["ACE_isUnconscious",false]) exitwith { _unit setUnconscious false; + [_unit, "isUnconscious"] call EFUNC(common,unmuteUnit); + // ensure this statement runs only once _args set [5, true]; }; From d6f2ac95dd13cfb3092df4d46e4ad536333fca9c Mon Sep 17 00:00:00 2001 From: commy2 Date: Sun, 26 Apr 2015 17:04:49 +0200 Subject: [PATCH 154/256] fix ace ammo box doesn't show up in zeus --- addons/ballistics/CfgVehicles.hpp | 2 +- addons/ballistics/config.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/ballistics/CfgVehicles.hpp b/addons/ballistics/CfgVehicles.hpp index 89f5c26652..c43782d024 100644 --- a/addons/ballistics/CfgVehicles.hpp +++ b/addons/ballistics/CfgVehicles.hpp @@ -9,7 +9,7 @@ class CfgVehicles { //hitPart = "systemChat str _this"; }; }; - + class NATO_Box_Base; class Box_NATO_Wps_F: NATO_Box_Base { class TransportMagazines { diff --git a/addons/ballistics/config.cpp b/addons/ballistics/config.cpp index 8ea75e4460..66ff7d188e 100644 --- a/addons/ballistics/config.cpp +++ b/addons/ballistics/config.cpp @@ -2,7 +2,7 @@ class CfgPatches { class ADDON { - units[] = {"ACE_TargetWall"}; + units[] = {"ACE_TargetWall","ACE_Box_Ammo"}; weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_common"}; From 90f1d1f3fa3c0f799745ef828bae13be8957d4a1 Mon Sep 17 00:00:00 2001 From: commy2 Date: Sun, 26 Apr 2015 17:25:56 +0200 Subject: [PATCH 155/256] those damn mine detectors, also fix advanced medical box not showing up in zeus --- addons/medical/CfgWeapons.hpp | 8 -------- addons/medical/config.cpp | 2 +- 2 files changed, 1 insertion(+), 9 deletions(-) diff --git a/addons/medical/CfgWeapons.hpp b/addons/medical/CfgWeapons.hpp index 8fd58e2571..262c7b4b48 100644 --- a/addons/medical/CfgWeapons.hpp +++ b/addons/medical/CfgWeapons.hpp @@ -35,7 +35,6 @@ class CfgWeapons { scope = 2; value = 1; count = 1; - type = 16; displayName = $STR_ACE_MEDICAL_PACKING_BANDAGE_DISPLAY; picture = QUOTE(PATHTOF(ui\items\packingBandage_x_ca.paa)); model = QUOTE(PATHTOF(data\packingbandage.p3d)); @@ -49,7 +48,6 @@ class CfgWeapons { scope = 2; value = 1; count = 1; - type = 16; displayName = $STR_ACE_MEDICAL_BANDAGE_ELASTIC_DISPLAY; picture = QUOTE(PATHTOF(ui\items\elasticBandage_x_ca.paa)); model = "\A3\Structures_F_EPA\Items\Medical\Bandage_F.p3d"; @@ -63,7 +61,6 @@ class CfgWeapons { scope = 2; value = 1; count = 1; - type = 16; displayName = $STR_ACE_MEDICAL_TOURNIQUET_DISPLAY; picture = QUOTE(PATHTOF(ui\items\tourniquet_x_ca.paa)); model = QUOTE(PATHTOF(data\tourniquet.p3d)); @@ -77,7 +74,6 @@ class CfgWeapons { scope = 2; value = 1; count = 1; - type = 16; displayName = $STR_ACE_MEDICAL_MORPHINE_DISPLAY; picture = QUOTE(PATHTOF(ui\items\morphine_x_ca.paa)); model = QUOTE(PATHTOF(data\morphine.p3d)); @@ -91,7 +87,6 @@ class CfgWeapons { scope = 2; value = 1; count = 1; - type = 16; displayName = $STR_ACE_MEDICAL_ATROPINE_DISPLAY; picture = QUOTE(PATHTOF(ui\items\atropine_x_ca.paa)); model = QUOTE(PATHTOF(data\atropine.p3d)); @@ -106,7 +101,6 @@ class CfgWeapons { scope = 2; value = 1; count = 1; - type = 16; displayName = $STR_ACE_MEDICAL_EPINEPHRINE_DISPLAY; picture = QUOTE(PATHTOF(ui\items\epinephrine_x_ca.paa)); model = QUOTE(PATHTOF(data\epinephrine.p3d)); @@ -193,7 +187,6 @@ class CfgWeapons { scope = 2; value = 1; count = 1; - type = 16; displayName = $STR_ACE_MEDICAL_QUIKCLOT_DISPLAY; picture = QUOTE(PATHTOF(ui\items\quickclot_x_ca.paa)); descriptionShort = $STR_ACE_MEDICAL_QUIKCLOT_DESC_SHORT; @@ -206,7 +199,6 @@ class CfgWeapons { scope = 2; value = 1; count = 1; - type = 16; displayName = $STR_ACE_MEDICAL_AID_KIT_DISPLAY; picture = QUOTE(PATHTOF(ui\items\personal_aid_kit_x_ca.paa)); descriptionShort = $STR_ACE_MEDICAL_AID_KIT_DESC_SHORT; diff --git a/addons/medical/config.cpp b/addons/medical/config.cpp index 4dca8bdeca..de99778c11 100644 --- a/addons/medical/config.cpp +++ b/addons/medical/config.cpp @@ -2,7 +2,7 @@ class CfgPatches { class ADDON { - units[] = {"ACE_medicalSupplyCrate", "ACE_fieldDressingItem", "ACE_packingBandageItem", "ACE_elasticBandageItem", "ACE_tourniquetItem", "ACE_morphineItem", "ACE_atropineItem", "ACE_epinephrineItem", "ACE_plasmaIVItem", "ACE_bloodIVItem", "ACE_salineIVItem", "ACE_quikclotItem", "ACE_personalAidKitItem", "ACE_surgicalKitItem", "ACE_bodyBagItem", "ACE_bodyBagObject"}; + units[] = {"ACE_medicalSupplyCrate", "ACE_medicalSupplyCrate_advanced", "ACE_fieldDressingItem", "ACE_packingBandageItem", "ACE_elasticBandageItem", "ACE_tourniquetItem", "ACE_morphineItem", "ACE_atropineItem", "ACE_epinephrineItem", "ACE_plasmaIVItem", "ACE_bloodIVItem", "ACE_salineIVItem", "ACE_quikclotItem", "ACE_personalAidKitItem", "ACE_surgicalKitItem", "ACE_bodyBagItem", "ACE_bodyBagObject"}; weapons[] = {"ACE_fieldDressing", "ACE_packingBandage", "ACE_elasticBandage", "ACE_tourniquet", "ACE_morphine", "ACE_atropine", "ACE_epinephrine", "ACE_plasmaIV", "ACE_plasmaIV_500", "ACE_plasmaIV_250", "ACE_bloodIV", "ACE_bloodIV_500", "ACE_bloodIV_250", "ACE_salineIV", "ACE_salineIV_500", "ACE_salineIV_250", "ACE_quikclot", "ACE_personalAidKit", "ACE_surgicalKit", "ACE_bodyBag"}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_interaction","ace_modules"}; From 7319a3dbc6c360f1f0274232224a6a10e99e467a Mon Sep 17 00:00:00 2001 From: commy2 Date: Sun, 26 Apr 2015 17:38:48 +0200 Subject: [PATCH 156/256] remove obsolete config entries --- addons/medical/CfgWeapons.hpp | 22 ---------------------- 1 file changed, 22 deletions(-) diff --git a/addons/medical/CfgWeapons.hpp b/addons/medical/CfgWeapons.hpp index 262c7b4b48..8c45b6906c 100644 --- a/addons/medical/CfgWeapons.hpp +++ b/addons/medical/CfgWeapons.hpp @@ -33,8 +33,6 @@ class CfgWeapons { }; class ACE_packingBandage: ACE_ItemCore { scope = 2; - value = 1; - count = 1; displayName = $STR_ACE_MEDICAL_PACKING_BANDAGE_DISPLAY; picture = QUOTE(PATHTOF(ui\items\packingBandage_x_ca.paa)); model = QUOTE(PATHTOF(data\packingbandage.p3d)); @@ -46,8 +44,6 @@ class CfgWeapons { }; class ACE_elasticBandage: ACE_ItemCore { scope = 2; - value = 1; - count = 1; displayName = $STR_ACE_MEDICAL_BANDAGE_ELASTIC_DISPLAY; picture = QUOTE(PATHTOF(ui\items\elasticBandage_x_ca.paa)); model = "\A3\Structures_F_EPA\Items\Medical\Bandage_F.p3d"; @@ -59,8 +55,6 @@ class CfgWeapons { }; class ACE_tourniquet: ACE_ItemCore { scope = 2; - value = 1; - count = 1; displayName = $STR_ACE_MEDICAL_TOURNIQUET_DISPLAY; picture = QUOTE(PATHTOF(ui\items\tourniquet_x_ca.paa)); model = QUOTE(PATHTOF(data\tourniquet.p3d)); @@ -72,8 +66,6 @@ class CfgWeapons { }; class ACE_morphine: ACE_ItemCore { scope = 2; - value = 1; - count = 1; displayName = $STR_ACE_MEDICAL_MORPHINE_DISPLAY; picture = QUOTE(PATHTOF(ui\items\morphine_x_ca.paa)); model = QUOTE(PATHTOF(data\morphine.p3d)); @@ -85,8 +77,6 @@ class CfgWeapons { }; class ACE_atropine: ACE_ItemCore { scope = 2; - value = 1; - count = 1; displayName = $STR_ACE_MEDICAL_ATROPINE_DISPLAY; picture = QUOTE(PATHTOF(ui\items\atropine_x_ca.paa)); model = QUOTE(PATHTOF(data\atropine.p3d)); @@ -99,8 +89,6 @@ class CfgWeapons { }; class ACE_epinephrine: ACE_ItemCore { scope = 2; - value = 1; - count = 1; displayName = $STR_ACE_MEDICAL_EPINEPHRINE_DISPLAY; picture = QUOTE(PATHTOF(ui\items\epinephrine_x_ca.paa)); model = QUOTE(PATHTOF(data\epinephrine.p3d)); @@ -112,8 +100,6 @@ class CfgWeapons { }; class ACE_plasmaIV: ACE_ItemCore { scope = 2; - value = 1; - count = 1; displayName = $STR_ACE_MEDICAL_PLASMA_IV; picture = QUOTE(PATHTOF(ui\items\plasmaIV_x_ca.paa)); descriptionShort = $STR_ACE_MEDICAL_PLASMA_IV_DESC_SHORT; @@ -136,8 +122,6 @@ class CfgWeapons { }; class ACE_bloodIV: ACE_ItemCore { scope = 2; - value = 1; - count = 1; model = "\A3\Structures_F_EPA\Items\Medical\BloodBag_F.p3d"; displayName = $STR_ACE_MEDICAL_BLOOD_IV; picture = QUOTE(PATHTOF(ui\items\bloodIV_x_ca.paa)); @@ -161,8 +145,6 @@ class CfgWeapons { }; class ACE_salineIV: ACE_ItemCore { scope = 2; - value = 1; - count = 1; displayName = $STR_ACE_MEDICAL_SALINE_IV; picture = QUOTE(PATHTOF(ui\items\salineIV_x_ca.paa)); descriptionShort = $STR_ACE_MEDICAL_SALINE_IV_DESC_SHORT; @@ -185,8 +167,6 @@ class CfgWeapons { }; class ACE_quikclot: ACE_ItemCore { scope = 2; - value = 1; - count = 1; displayName = $STR_ACE_MEDICAL_QUIKCLOT_DISPLAY; picture = QUOTE(PATHTOF(ui\items\quickclot_x_ca.paa)); descriptionShort = $STR_ACE_MEDICAL_QUIKCLOT_DESC_SHORT; @@ -197,8 +177,6 @@ class CfgWeapons { }; class ACE_personalAidKit: ACE_ItemCore { scope = 2; - value = 1; - count = 1; displayName = $STR_ACE_MEDICAL_AID_KIT_DISPLAY; picture = QUOTE(PATHTOF(ui\items\personal_aid_kit_x_ca.paa)); descriptionShort = $STR_ACE_MEDICAL_AID_KIT_DESC_SHORT; From 5320f4c6b70a0b73dc6514381207d3a54790fc30 Mon Sep 17 00:00:00 2001 From: commy2 Date: Sun, 26 Apr 2015 19:33:08 +0200 Subject: [PATCH 157/256] fix broken parse text cache in some cases --- addons/interact_menu/functions/fnc_ctrlSetParsedTextCached.sqf | 2 ++ addons/interact_menu/functions/fnc_render.sqf | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/addons/interact_menu/functions/fnc_ctrlSetParsedTextCached.sqf b/addons/interact_menu/functions/fnc_ctrlSetParsedTextCached.sqf index f538807ffe..b5d6a4e967 100644 --- a/addons/interact_menu/functions/fnc_ctrlSetParsedTextCached.sqf +++ b/addons/interact_menu/functions/fnc_ctrlSetParsedTextCached.sqf @@ -7,6 +7,8 @@ _ctrl = _this select 0; _index = _this select 1; _text = _this select 2; +//systemChat str (_text != ARR_SELECT(GVAR(ParsedTextCached),_index,"-1")); + if (_text != ARR_SELECT(GVAR(ParsedTextCached),_index,"-1")) then { GVAR(ParsedTextCached) set [_index, _text]; _ctrl ctrlSetStructuredText parseText _text; diff --git a/addons/interact_menu/functions/fnc_render.sqf b/addons/interact_menu/functions/fnc_render.sqf index 0c0635f8a4..01a550eb91 100644 --- a/addons/interact_menu/functions/fnc_render.sqf +++ b/addons/interact_menu/functions/fnc_render.sqf @@ -77,7 +77,6 @@ if (GVAR(openedMenuType) >= 0) then { GVAR(startHoverTime) = diag_tickTime; GVAR(lastPath) = _hoverPath; GVAR(expanded) = false; - GVAR(ParsedTextCached) = []; } else { if(!GVAR(expanded) && diag_tickTime-GVAR(startHoverTime) > 0.25) then { GVAR(expanded) = true; @@ -120,6 +119,7 @@ if(!_foundTarget && GVAR(actionSelected)) then { }; for "_i" from GVAR(iconCount) to (count GVAR(iconCtrls))-1 do { ctrlDelete (GVAR(iconCtrls) select _i); + GVAR(ParsedTextCached) set [_i, ""]; }; GVAR(iconCtrls) resize GVAR(iconCount); GVAR(iconCount) = 0; From 384ff3c9b0e5dafd84bacffbf51c3299216fbe25 Mon Sep 17 00:00:00 2001 From: Felix Wiegand Date: Sun, 26 Apr 2015 20:12:11 +0200 Subject: [PATCH 158/256] Add biprivatekeys to gitignore ... just in case. --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 76f95dcd10..f05646fb8a 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ release/* texHeaders.bin *.swp *.swo +*.biprivatekey From f5d73318471ef08c835ea95ec477a8361d4043e3 Mon Sep 17 00:00:00 2001 From: commy2 Date: Sun, 26 Apr 2015 20:57:55 +0200 Subject: [PATCH 159/256] no team management on the dead or unconscious units, fix #803 --- addons/interaction/CfgVehicles.hpp | 40 +++++++++---------- addons/interaction/XEH_preInit.sqf | 2 + .../functions/fnc_canJoinGroup.sqf | 12 ++++++ .../interaction/functions/fnc_canJoinTeam.sqf | 12 ++++++ 4 files changed, 46 insertions(+), 20 deletions(-) create mode 100644 addons/interaction/functions/fnc_canJoinGroup.sqf create mode 100644 addons/interaction/functions/fnc_canJoinTeam.sqf diff --git a/addons/interaction/CfgVehicles.hpp b/addons/interaction/CfgVehicles.hpp index 0408192919..f6f39808b9 100644 --- a/addons/interaction/CfgVehicles.hpp +++ b/addons/interaction/CfgVehicles.hpp @@ -35,7 +35,7 @@ class CfgVehicles { class ACE_TeamManagement { displayName = "$STR_ACE_Interaction_TeamManagement"; - condition = QUOTE(alive _target && {!isPlayer _target} && {_target in units group _player} && {GVAR(EnableTeamManagement)}); + condition = QUOTE([ARR_2(_player,_target)] call DFUNC(canJoinTeam) && {GVAR(EnableTeamManagement)}); statement = ""; showDisabled = 0; priority = 3.2; @@ -44,7 +44,7 @@ class CfgVehicles { class ACE_JoinTeamRed { displayName = "$STR_ACE_Interaction_JoinTeamRed"; - condition = QUOTE(alive _target && {!isPlayer _target} && {_target in units group _player}); + condition = QUOTE([ARR_2(_player,_target)] call DFUNC(canJoinTeam)); statement = QUOTE([ARR_2(_target,'RED')] call DFUNC(joinTeam)); showDisabled = 1; icon = PATHTOF(UI\team\team_red_ca.paa); @@ -53,7 +53,7 @@ class CfgVehicles { }; class ACE_JoinTeamGreen { displayName = "$STR_ACE_Interaction_JoinTeamGreen"; - condition = QUOTE(alive _target && {!isPlayer _target} && {_target in units group _player}); + condition = QUOTE([ARR_2(_player,_target)] call DFUNC(canJoinTeam)); statement = QUOTE([ARR_2(_target,'GREEN')] call DFUNC(joinTeam)); showDisabled = 1; icon = PATHTOF(UI\team\team_green_ca.paa); @@ -62,7 +62,7 @@ class CfgVehicles { }; class ACE_JoinTeamBlue { displayName = "$STR_ACE_Interaction_JoinTeamBlue"; - condition = QUOTE(alive _target && {!isPlayer _target} && {_target in units group _player}); + condition = QUOTE([ARR_2(_player,_target)] call DFUNC(canJoinTeam)); statement = QUOTE([ARR_2(_target,'BLUE')] call DFUNC(joinTeam)); showDisabled = 1; icon = PATHTOF(UI\team\team_blue_ca.paa); @@ -71,7 +71,7 @@ class CfgVehicles { }; class ACE_JoinTeamYellow { displayName = "$STR_ACE_Interaction_JoinTeamYellow"; - condition = QUOTE(alive _target && {!isPlayer _target} && {_target in units group _player}); + condition = QUOTE([ARR_2(_player,_target)] call DFUNC(canJoinTeam)); statement = QUOTE([ARR_2(_target,'YELLOW')] call DFUNC(joinTeam)); showDisabled = 1; icon = PATHTOF(UI\team\team_yellow_ca.paa); @@ -81,7 +81,7 @@ class CfgVehicles { class ACE_LeaveTeam { displayName = "$STR_ACE_Interaction_LeaveTeam"; - condition = QUOTE(alive _target && {!isPlayer _target} && {_target in units group _player} && {assignedTeam _player != 'MAIN'}); + condition = QUOTE([ARR_2(_player,_target)] call DFUNC(canJoinTeam) && {assignedTeam _player != 'MAIN'}); statement = QUOTE([ARR_2(_target,'MAIN')] call DFUNC(joinTeam)); showDisabled = 1; icon = PATHTOF(UI\team\team_white_ca.paa); @@ -92,8 +92,8 @@ class CfgVehicles { class ACE_JoinGroup { displayName = "$STR_ACE_Interaction_JoinGroup"; - condition = QUOTE(side group _player == side group _target && {group _player != group _target}); - statement = QUOTE([_player] joinSilent group _target;); + condition = QUOTE([ARR_2(_player,_target)] call DFUNC(canJoinGroup)); + statement = QUOTE([_player] joinSilent group _target); showDisabled = 0; priority = 2.6; icon = PATHTOF(UI\team\team_management_ca.paa); @@ -223,7 +223,7 @@ class CfgVehicles { displayName = "$STR_ACE_Interaction_JoinTeamBlue"; condition = QUOTE(true); exceptions[] = {"isNotInside"}; - statement = QUOTE([ARR_2(_player,'BLUE')] call FUNC(joinTeam)); + statement = QUOTE([ARR_2(_player,'BLUE')] call DFUNC(joinTeam)); showDisabled = 1; priority = 2.2; icon = PATHTOF(UI\team\team_blue_ca.paa); @@ -233,7 +233,7 @@ class CfgVehicles { displayName = "$STR_ACE_Interaction_JoinTeamYellow"; condition = QUOTE(true); exceptions[] = {"isNotInside"}; - statement = QUOTE([ARR_2(_player,'YELLOW')] call FUNC(joinTeam)); + statement = QUOTE([ARR_2(_player,'YELLOW')] call DFUNC(joinTeam)); showDisabled = 1; priority = 2.1; icon = PATHTOF(UI\team\team_yellow_ca.paa); @@ -244,7 +244,7 @@ class CfgVehicles { displayName = "$STR_ACE_Interaction_LeaveTeam"; condition = QUOTE(assignedTeam _player != 'MAIN'); exceptions[] = {"isNotInside"}; - statement = QUOTE([ARR_2(_player,'MAIN')] call FUNC(joinTeam)); + statement = QUOTE([ARR_2(_player,'MAIN')] call DFUNC(joinTeam)); showDisabled = 1; priority = 2.5; icon = PATHTOF(UI\team\team_white_ca.paa); @@ -252,9 +252,9 @@ class CfgVehicles { }; class ACE_BecomeLeader { displayName = "$STR_ACE_Interaction_BecomeLeader"; - condition = QUOTE(_this call FUNC(canBecomeLeader)); + condition = QUOTE(_this call DFUNC(canBecomeLeader)); exceptions[] = {"isNotInside"}; - statement = QUOTE(_this call FUNC(doBecomeLeader)); + statement = QUOTE(_this call DFUNC(doBecomeLeader)); showDisabled = 1; priority = 1.0; icon = PATHTOF(UI\team\team_white_ca.paa); @@ -405,7 +405,7 @@ class CfgVehicles { displayName = "$STR_ACE_Interaction_Passengers"; condition = "true"; statement = ""; - insertChildren = QUOTE(_this call FUNC(addPassengersActions)); + insertChildren = QUOTE(_this call DFUNC(addPassengersActions)); }; }; }; @@ -423,7 +423,7 @@ class CfgVehicles { displayName = "$STR_ACE_Interaction_Passengers"; condition = "true"; statement = ""; - insertChildren = QUOTE(_this call FUNC(addPassengersActions)); + insertChildren = QUOTE(_this call DFUNC(addPassengersActions)); }; }; }; @@ -443,7 +443,7 @@ class CfgVehicles { displayName = "$STR_ACE_Interaction_Passengers"; condition = "true"; statement = ""; - insertChildren = QUOTE(_this call FUNC(addPassengersActions)); + insertChildren = QUOTE(_this call DFUNC(addPassengersActions)); }; }; }; @@ -461,7 +461,7 @@ class CfgVehicles { displayName = "$STR_ACE_Interaction_Passengers"; condition = "true"; statement = ""; - insertChildren = QUOTE(_this call FUNC(addPassengersActions)); + insertChildren = QUOTE(_this call DFUNC(addPassengersActions)); }; }; }; @@ -479,7 +479,7 @@ class CfgVehicles { displayName = "$STR_ACE_Interaction_Push"; distance = 6; condition = QUOTE(getMass _target < 1000 && {alive _target}); - statement = QUOTE([ARR_2(_target, [ARR_3(2 * (vectorDir _player select 0), 2 * (vectorDir _player select 1), 0.5)])] call FUNC(push);); + statement = QUOTE([ARR_2(_target, [ARR_3(2 * (vectorDir _player select 0), 2 * (vectorDir _player select 1), 0.5)])] call DFUNC(push);); showDisabled = 0; priority = -1; }; @@ -490,7 +490,7 @@ class CfgVehicles { displayName = "$STR_ACE_Interaction_Passengers"; condition = "true"; statement = ""; - insertChildren = QUOTE(_this call FUNC(addPassengersActions)); + insertChildren = QUOTE(_this call DFUNC(addPassengersActions)); }; }; }; @@ -509,7 +509,7 @@ class CfgVehicles { displayName = "$STR_ACE_Interaction_Passengers"; condition = "true"; statement = ""; - insertChildren = QUOTE(_this call FUNC(addPassengersActions)); + insertChildren = QUOTE(_this call DFUNC(addPassengersActions)); }; }; }; diff --git a/addons/interaction/XEH_preInit.sqf b/addons/interaction/XEH_preInit.sqf index 6f10a4e834..34c225c8f0 100644 --- a/addons/interaction/XEH_preInit.sqf +++ b/addons/interaction/XEH_preInit.sqf @@ -8,6 +8,8 @@ PREP(addSelectableItem); PREP(applyButtons); PREP(canBecomeLeader); PREP(canInteractWithCivilian); +PREP(canJoinGroup); +PREP(canJoinTeam); PREP(canTapShoulder); PREP(doBecomeLeader); PREP(getDoor); diff --git a/addons/interaction/functions/fnc_canJoinGroup.sqf b/addons/interaction/functions/fnc_canJoinGroup.sqf new file mode 100644 index 0000000000..d299524925 --- /dev/null +++ b/addons/interaction/functions/fnc_canJoinGroup.sqf @@ -0,0 +1,12 @@ +// by commy2 +#include "script_component.hpp" + +private ["_unit", "_target"]; + +_unit = _this select 0; +_target = _this select 1; + +alive _target +&& {!(_target getVariable ["ACE_isUnconscious", false])} +&& {side group _unit == side group _target} +&& {group _unit != group _target} diff --git a/addons/interaction/functions/fnc_canJoinTeam.sqf b/addons/interaction/functions/fnc_canJoinTeam.sqf new file mode 100644 index 0000000000..45f96393a9 --- /dev/null +++ b/addons/interaction/functions/fnc_canJoinTeam.sqf @@ -0,0 +1,12 @@ +// by commy2 +#include "script_component.hpp" + +private ["_unit", "_target"]; + +_unit = _this select 0; +_target = _this select 1; + +alive _target +&& {!(_target getVariable ["ACE_isUnconscious", false])} +&& {!([_target] call EFUNC(common,isPlayer))} +&& {_target in units group _unit} From b472292b20e9d032fb3f92a80d0e0659b01e48e8 Mon Sep 17 00:00:00 2001 From: KoffeinFlummi Date: Sun, 26 Apr 2015 21:05:41 +0200 Subject: [PATCH 160/256] Remove tabler comments. sed is awesome. --- addons/advanced_ballistics/stringtable.xml | 1 - addons/atragmx/stringtable.xml | 1 - addons/flashsuppressors/stringtable.xml | 1 - addons/goggles/stringtable.xml | 1 - addons/grenades/stringtable.xml | 1 - addons/magazinerepack/stringtable.xml | 1 - addons/map/stringtable.xml | 1 - addons/medical/stringtable.xml | 1 - addons/missileguidance/stringtable.xml | 1 - addons/mk6mortar/stringtable.xml | 1 - addons/nametags/stringtable.xml | 1 - addons/optics/stringtable.xml | 1 - addons/optionsmenu/stringtable.xml | 1 - addons/overheating/stringtable.xml | 1 - addons/parachute/stringtable.xml | 1 - addons/reloadlaunchers/stringtable.xml | 1 - addons/vehicles/stringtable.xml | 1 - 17 files changed, 17 deletions(-) diff --git a/addons/advanced_ballistics/stringtable.xml b/addons/advanced_ballistics/stringtable.xml index cd6b75cf97..dbf2784f21 100644 --- a/addons/advanced_ballistics/stringtable.xml +++ b/addons/advanced_ballistics/stringtable.xml @@ -1,5 +1,4 @@  - diff --git a/addons/atragmx/stringtable.xml b/addons/atragmx/stringtable.xml index dd8fe236a7..f3825c405a 100644 --- a/addons/atragmx/stringtable.xml +++ b/addons/atragmx/stringtable.xml @@ -1,5 +1,4 @@  - diff --git a/addons/flashsuppressors/stringtable.xml b/addons/flashsuppressors/stringtable.xml index d3185fc2b0..e312f2d5c1 100644 --- a/addons/flashsuppressors/stringtable.xml +++ b/addons/flashsuppressors/stringtable.xml @@ -1,5 +1,4 @@  - diff --git a/addons/goggles/stringtable.xml b/addons/goggles/stringtable.xml index 16fd227b11..ce337760d7 100644 --- a/addons/goggles/stringtable.xml +++ b/addons/goggles/stringtable.xml @@ -1,5 +1,4 @@  - diff --git a/addons/grenades/stringtable.xml b/addons/grenades/stringtable.xml index 7f8321d6c6..c1ff10143d 100644 --- a/addons/grenades/stringtable.xml +++ b/addons/grenades/stringtable.xml @@ -1,5 +1,4 @@  - diff --git a/addons/magazinerepack/stringtable.xml b/addons/magazinerepack/stringtable.xml index 9ea10924ac..4bdfecbd78 100644 --- a/addons/magazinerepack/stringtable.xml +++ b/addons/magazinerepack/stringtable.xml @@ -1,5 +1,4 @@  - diff --git a/addons/map/stringtable.xml b/addons/map/stringtable.xml index e3e2a6fe93..4423bbcfb4 100644 --- a/addons/map/stringtable.xml +++ b/addons/map/stringtable.xml @@ -1,5 +1,4 @@  - diff --git a/addons/medical/stringtable.xml b/addons/medical/stringtable.xml index 7608824af1..b4e1c425b1 100644 --- a/addons/medical/stringtable.xml +++ b/addons/medical/stringtable.xml @@ -1,5 +1,4 @@  - diff --git a/addons/missileguidance/stringtable.xml b/addons/missileguidance/stringtable.xml index 59a80df0dc..e0923981f3 100644 --- a/addons/missileguidance/stringtable.xml +++ b/addons/missileguidance/stringtable.xml @@ -1,5 +1,4 @@  - diff --git a/addons/mk6mortar/stringtable.xml b/addons/mk6mortar/stringtable.xml index da61afb03b..19d68d8eb1 100644 --- a/addons/mk6mortar/stringtable.xml +++ b/addons/mk6mortar/stringtable.xml @@ -1,5 +1,4 @@  - diff --git a/addons/nametags/stringtable.xml b/addons/nametags/stringtable.xml index ab3119a4e0..7c435cd6fd 100644 --- a/addons/nametags/stringtable.xml +++ b/addons/nametags/stringtable.xml @@ -1,5 +1,4 @@  - diff --git a/addons/optics/stringtable.xml b/addons/optics/stringtable.xml index 28530ecf1e..56216f2cb1 100644 --- a/addons/optics/stringtable.xml +++ b/addons/optics/stringtable.xml @@ -1,5 +1,4 @@  - diff --git a/addons/optionsmenu/stringtable.xml b/addons/optionsmenu/stringtable.xml index f5ba573f32..cdbdcf72a0 100644 --- a/addons/optionsmenu/stringtable.xml +++ b/addons/optionsmenu/stringtable.xml @@ -1,5 +1,4 @@  - diff --git a/addons/overheating/stringtable.xml b/addons/overheating/stringtable.xml index 8f37ca097d..865b7a8242 100644 --- a/addons/overheating/stringtable.xml +++ b/addons/overheating/stringtable.xml @@ -1,5 +1,4 @@  - diff --git a/addons/parachute/stringtable.xml b/addons/parachute/stringtable.xml index a1de714331..c0a63755b1 100644 --- a/addons/parachute/stringtable.xml +++ b/addons/parachute/stringtable.xml @@ -1,5 +1,4 @@  - diff --git a/addons/reloadlaunchers/stringtable.xml b/addons/reloadlaunchers/stringtable.xml index 7716050334..bb949040d0 100644 --- a/addons/reloadlaunchers/stringtable.xml +++ b/addons/reloadlaunchers/stringtable.xml @@ -1,5 +1,4 @@  - diff --git a/addons/vehicles/stringtable.xml b/addons/vehicles/stringtable.xml index 2312ce6027..603f2563dc 100644 --- a/addons/vehicles/stringtable.xml +++ b/addons/vehicles/stringtable.xml @@ -1,5 +1,4 @@  - From a148ded254c85143ce47b4795183ad9b972ce326 Mon Sep 17 00:00:00 2001 From: ulteq Date: Sun, 26 Apr 2015 21:15:04 +0200 Subject: [PATCH 161/256] Added an e-mail address --- AUTHORS.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AUTHORS.txt b/AUTHORS.txt index 5c273e18df..724cfae6c1 100644 --- a/AUTHORS.txt +++ b/AUTHORS.txt @@ -17,7 +17,7 @@ Janus Kieran NouberNou PabstMirror -Ruthberg +Ruthberg tpM ViperMaul VKing From 227f4827f23963d98f62f4228236f0d4f8ef0e8d Mon Sep 17 00:00:00 2001 From: ulteq Date: Sun, 26 Apr 2015 21:28:16 +0200 Subject: [PATCH 162/256] Added advanced_ballistics and weather shortcuts --- documentation/user/shourtcuts.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/documentation/user/shourtcuts.md b/documentation/user/shourtcuts.md index 0e6444c645..66e12ae76f 100644 --- a/documentation/user/shourtcuts.md +++ b/documentation/user/shourtcuts.md @@ -15,6 +15,11 @@ parent: wiki + + Ctrl+⇧ Shift+K + Show Protractor + ACE_Advanced_Ballistics + ⊞ Win Interaction menu @@ -200,5 +205,10 @@ parent: wiki FCS: Range down ACE_FireControlSsystem + + ⇧ Shift+K + Show Wind Info + ACE_Weather + From 58395b166beb3be5ab3a8b012ae140bc8f065a44 Mon Sep 17 00:00:00 2001 From: ulteq Date: Sun, 26 Apr 2015 21:29:43 +0200 Subject: [PATCH 163/256] Fixed a typo --- documentation/user/{shourtcuts.md => shortcuts.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename documentation/user/{shourtcuts.md => shortcuts.md} (100%) diff --git a/documentation/user/shourtcuts.md b/documentation/user/shortcuts.md similarity index 100% rename from documentation/user/shourtcuts.md rename to documentation/user/shortcuts.md From 9bd32f5797620e91474d155708de0511ae0ce3d2 Mon Sep 17 00:00:00 2001 From: ulteq Date: Sun, 26 Apr 2015 22:33:11 +0200 Subject: [PATCH 164/256] Fixed an incorrect module setting description --- addons/winddeflection/ACE_Settings.hpp | 2 +- addons/winddeflection/CfgVehicles.hpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/winddeflection/ACE_Settings.hpp b/addons/winddeflection/ACE_Settings.hpp index b10b78db0c..0a0cac6b34 100644 --- a/addons/winddeflection/ACE_Settings.hpp +++ b/addons/winddeflection/ACE_Settings.hpp @@ -19,7 +19,7 @@ class ACE_Settings { }; class GVAR(simulationRadius) { displayName = "Simulation Radius"; - description = "Defines the radius (in meters) in which advanced ballistics are applied"; + description = "Defines the radius around the player (in meters) at which projectiles are wind deflected"; typeName = "SCALAR"; value = 3000; }; diff --git a/addons/winddeflection/CfgVehicles.hpp b/addons/winddeflection/CfgVehicles.hpp index 76ac0c13d3..1c24c0a386 100644 --- a/addons/winddeflection/CfgVehicles.hpp +++ b/addons/winddeflection/CfgVehicles.hpp @@ -31,7 +31,7 @@ class CfgVehicles { }; class simulationRadius { displayName = "Simulation Radius"; - description = "Defines the radius (in meters) in which advanced ballistics are applied"; + description = "Defines the radius around the player (in meters) at which projectiles are wind deflected"; typeName = "NUMBER"; defaultValue = 3000; }; From 0f47d8bfb2bf26d76cae710aed2f1ceb600ddd71 Mon Sep 17 00:00:00 2001 From: Grzegorz Sikora Date: Wed, 22 Apr 2015 13:17:43 +0200 Subject: [PATCH 165/256] PL translation --- addons/ballistics/stringtable.xml | 1 + addons/interact_menu/stringtable.xml | 1 + addons/realisticnames/stringtable.xml | 1 + 3 files changed, 3 insertions(+) diff --git a/addons/ballistics/stringtable.xml b/addons/ballistics/stringtable.xml index 4dc27fd2fc..cc1861e420 100644 --- a/addons/ballistics/stringtable.xml +++ b/addons/ballistics/stringtable.xml @@ -1,4 +1,5 @@  + diff --git a/addons/interact_menu/stringtable.xml b/addons/interact_menu/stringtable.xml index 1335432f28..94c31a1814 100644 --- a/addons/interact_menu/stringtable.xml +++ b/addons/interact_menu/stringtable.xml @@ -1,4 +1,5 @@  + diff --git a/addons/realisticnames/stringtable.xml b/addons/realisticnames/stringtable.xml index 02995def8c..8f8d793568 100644 --- a/addons/realisticnames/stringtable.xml +++ b/addons/realisticnames/stringtable.xml @@ -1,4 +1,5 @@  + From af2dc6270506cd18edad5c41b08b3418a989a0d7 Mon Sep 17 00:00:00 2001 From: ulteq Date: Sun, 26 Apr 2015 22:44:18 +0200 Subject: [PATCH 166/256] Improved a module setting description --- addons/advanced_ballistics/ACE_Settings.hpp | 2 +- addons/advanced_ballistics/CfgVehicles.hpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/advanced_ballistics/ACE_Settings.hpp b/addons/advanced_ballistics/ACE_Settings.hpp index d1462b144f..67bc51511e 100644 --- a/addons/advanced_ballistics/ACE_Settings.hpp +++ b/addons/advanced_ballistics/ACE_Settings.hpp @@ -57,7 +57,7 @@ class ACE_Settings { }; class GVAR(simulationRadius) { displayName = "Simulation Radius"; - description = "Defines the radius (in meters) in which advanced ballistics are applied"; + description = "Defines the radius around the player (in meters) at which advanced ballistics are applied to projectiles"; typeName = "SCALAR"; value = 3000; }; diff --git a/addons/advanced_ballistics/CfgVehicles.hpp b/addons/advanced_ballistics/CfgVehicles.hpp index 8e6e40e21e..fda4b9a8ff 100644 --- a/addons/advanced_ballistics/CfgVehicles.hpp +++ b/addons/advanced_ballistics/CfgVehicles.hpp @@ -69,7 +69,7 @@ class CfgVehicles { }; class simulationRadius { displayName = "Simulation Radius"; - description = "Defines the radius (in meters) in which advanced ballistics are applied"; + description = "Defines the radius around the player (in meters) at which advanced ballistics are applied to projectiles"; typeName = "NUMBER"; defaultValue = 3000; }; From 9c322d5a226efd179178a5dc0df5f4a091a250df Mon Sep 17 00:00:00 2001 From: ulteq Date: Sun, 26 Apr 2015 22:50:47 +0200 Subject: [PATCH 167/256] Added module descriptions for advanced ballistics and wind deflection --- documentation/missionmaker/modules.md | 100 ++++++++++++++++++++------ 1 file changed, 77 insertions(+), 23 deletions(-) diff --git a/documentation/missionmaker/modules.md b/documentation/missionmaker/modules.md index 0b0f13f8d6..239f1db789 100644 --- a/documentation/missionmaker/modules.md +++ b/documentation/missionmaker/modules.md @@ -11,8 +11,42 @@ parent: wiki ## 1. Modules -### 1.1 BlueForceTracking -*Part of: ACE_Map* +### 1.1 Advanced Ballistics +*Part of: ace_advanced_ballistics* + +This module allows to enable advanced external- and internal ballistics. + +**Settings:** + +1. **Advanced Ballistics (Boolean)
** +Enables advanced ballistics.
+`Default value: No` +2. **Always Enabled For Snipers (Boolean)
** +Always enables advanced ballistics when high power optics are used.
+`Default value: Yes` +3. **Disabled In FullAuto Mode (Boolean)
** +Disables the advanced ballistics during full auto fire.
+`Default value: No` +4. **Disabled For Non Local Players (Boolean)
** +Disables the advanced ballistics for bullets coming from other players (enable this if you encounter frame drops during heavy firefights in multiplayer).
+`Default value: Yes` +5. **Enable Ammo Temperature Simulation (Boolean)
** +Muzzle velocity varies with ammo temperature.
+`Default value: Yes` +6. **Enable Barrel Length Simulation (Boolean)
** +Muzzle velocity varies with barrel length.
+`Default value: Yes` +7. **Enable Bullet Trace Effect (Boolean)
** +Enables a bullet trace effect to high caliber bullets (only visible when looking through high power optics).
+8. **Simulation Interval (Number)
** +Defines the interval between every calculation step.
+`Default value: 0.05` +9. **Simulation Radius (Number)
** +Defines the radius around the player (in meters) at which advanced ballistics are applied to projectiles.
+`Default value: 3000` + +### 1.2 BlueForceTracking +*Part of: ace_map* When adding the "BlueForceTracking" module to your mission it adds map markers to every group on the players side and refreshes them in certain configurable interval (in seconds). The module takes the group type into account and uses the proper NATO icon for each marker. @@ -25,8 +59,8 @@ How often the markers should be refreshed (in seconds).
Hide markers for "AI only" groups.
`Default value: No` -### 1.2 Check PBOs -*Part of: ACE_Core* +### 1.3 Check PBOs +*Part of: ace_core* If you are worried that players haven't updated ACE or other mods to the version you're using on the server, you can place the "Check PBOs" module on your map. You can choose one of three posible actions that are being executed when a player joins that has a wrong version of ACE or an other mod: @@ -61,8 +95,8 @@ Example 3: @JSRS + @Blastcore-A3:
[TBD, "warfxpe","blastcore_vep"] ``` -### 1.3 Explosive System -*Part of: ACE_Explosive* +### 1.4 Explosive System +*Part of: ace_explosive* The "Explosive System" module lets you tweak the settings for the new explosive system that ACE introduces. @@ -75,17 +109,17 @@ Require explosive specialists to disable explosives.
Increase the time it takes to complete actions for non-specialists.
`Default value: Yes` -### 1.4 Fatigue System (deprecated) +### 1.5 Fatigue System (deprecated) **Warning:** *This module is deprecated and only in there not to break older missions that have used this module. It will be removed in a future update. It serves no purpose.* -### 1.5 Friendly Fire Messages -*Part of: ACE_Respawn* +### 1.6 Friendly Fire Messages +*Part of: ace_respawn* The "Friendly Fire Messages" module triggers a message when a player kills a friendly or civilian unit. This module isn't needed on servers with a low difficulty setting. -### 1.6 Interaction -*Part of: ACE_Interaction* +### 1.7 Interaction +*Part of: ace_interaction* This module allows you to tweak the settings for player names tags. @@ -95,8 +129,8 @@ This module allows you to tweak the settings for player names tags. Sets the distance (in meters) at which player name tags become visible.
`Default value: 5` -### 1.7 Medical System -*Part of: ACE_Medical* +### 1.8 Medical System +*Part of: ace_medical* When using the medical system ACE offers you probably want to fine tune some aspects of the wounding, healing or gameplay mechanics and fit them to your needs. The "Medical System" module offers a lot of settings to do just that. @@ -133,16 +167,16 @@ Use one bandage to heal the entire body.
Allow all players to use chat while unconcious? Admin can always use the chat regardless.
`Default value: No` -### 1.8 Rallypoint System -*Part of: ACE_Respawn* +### 1.9 Rallypoint System +*Part of: ace_respawn* This module was introduced with 0.94 and enables Mission Makers to specificly enable units to move a rallypoint. Every unit that is synced with that module is able to move a rallypoint. **Note:** It's important to mention that this doesn't work for player who join during a mission (JIP = Join in progress). That's something we can't change because that's the way Bohemia has implemented their module framework. To enable JIP players to move rally points have a look at [3.1 ACE Rallypoints](#31-ace-rallypoints). -### 1.9 Repair System -*Part of: ACE_Logistics* +### 1.10 Repair System +*Part of: ace_logistics* Placing the "Repair System" module makes it possible to define the time it takes for certain repair actions. @@ -161,8 +195,8 @@ Time to replace a track (in seconds).
Limits the amount of damage that can be repaired. 0 = Repair all damage, 1 = Cannot repair any damage.
`Default value: 0` -### 1.10 Respawn System -*Part of: ACE_Respawn* +### 1.11 Respawn System +*Part of: ace_respawn* The "Respawn System" module enables players to respawn with the gear they had before dying and to remove bodies of players after a configurable interval (in seconds). @@ -172,8 +206,8 @@ The "Respawn System" module enables players to respawn with the gear they had be Respawn with the gear a player had just before his death.
`Default value: No` -### 1.11 SwitchUnits System -*Part of: ACE_SwitchUnits* +### 1.12 SwitchUnits System +*Part of: ace_switchunits* The [SwitchUnits System](#32-ace-switchunits) enables players to control certain AI units on the map. @@ -199,8 +233,28 @@ The safe zone around players from a different team (in meters)
`Default value: 200` -### 1.12 LSD Vehicles -*Part of: ACE_Core* +### 1.13 LSD Vehicles +*Part of: ace_core* + +### 1.14 Wind Deflection +*Part of: ace_winddeflection* + +This module allows you to define when wind deflection is active. + +**Settings:** + +1. **Wind Deflection (Boolean)
** +Enables wind deflection.
+`Default value: Yes` +2. **Vehicle Enabled (Boolean)
** +Enables wind deflection for static/vehicle gunners.
+`Default value: Yes` +3. **Simulation Interval (Number)
** +Defines the interval between every calculation step.
+`Default value: 0.05` +4. **Simulation Radius (Number)
** +Defines the radius around the player (in meters) at which projectiles are wind deflected.
+`Default value: 3000` And then there's the "LSD Vehicles" module … it does 'something' to all vehicles synced to that module. http://youtu.be/X3e0LTexEok From a272258500b93ce183a343f1917ba59a49a1a170 Mon Sep 17 00:00:00 2001 From: Grzegorz Sikora Date: Sun, 26 Apr 2015 22:59:20 +0200 Subject: [PATCH 168/256] PL translation --- addons/medical/stringtable.xml | 70 +++++++++++++++++++++++++----- addons/mk6mortar/stringtable.xml | 33 ++++++++------ addons/overheating/stringtable.xml | 1 - 3 files changed, 79 insertions(+), 25 deletions(-) diff --git a/addons/medical/stringtable.xml b/addons/medical/stringtable.xml index e930016187..ee014c5dc3 100644 --- a/addons/medical/stringtable.xml +++ b/addons/medical/stringtable.xml @@ -1,13 +1,16 @@  + INJURIES VERLETZUNGEN + OBRAŻENIA No injuries on this bodypart ... Körperteil nicht verletzt ... + Brak obrażeń na tej części ciała ... Litter Simulation Detail @@ -367,6 +370,7 @@ No entries on this triage card. Keine Einträge auf der Triagekarte + Brak wpisów na tej karcie segregacyjnej. Tourniquet @@ -393,18 +397,22 @@ Diagnose Diagnose + Diagnoza Diagnosing ... Diagnostizieren ... + Diagnozowanie ... CPR HLW + RKO Performing CPR ... HLW durchführen ... + Wykonywanie RKO... Give Blood IV (1000ml) @@ -1080,6 +1088,7 @@ Use Personal Aid Kit Verbandpäckchen benutzen + Użyj apteczki osobistej Surgical Kit @@ -1114,6 +1123,7 @@ Use Surgical Kit Operationsset benutzen + Zszyj rany Bodybag @@ -1168,6 +1178,7 @@ %1 checked Blood Pressure: %2 %1 kontrollierte Blutdruck: %2 + %1 zbadał ciśnienie krwi: %2 You checked %1 @@ -1242,18 +1253,22 @@ Low Niedrig + Niskie Normal Normal + Normalne High Hoch + Wysokie No Blood Pressure Kein Blutdruck + Brak ciśnienia krwi Pulse @@ -1288,18 +1303,22 @@ %1 checked Heart Rate: %2 %1 kontrollierte Herzfrequenz: %2 + %1 zbadał tętno: %2 Weak Schwach + Słabe Normal Normal + Normalne Strong Stark + Silne You find a Heart Rate of %2 @@ -1403,26 +1422,32 @@ Patient %1<br/>is %2.<br/>%3.<br/>%4 + Pacjent %1<br/>jest %2.<br/>%3.<br/>%4 alive + żywy dead + martwy He's lost some blood + Stracił trochę krwi He hasn't lost blood + Nie krwawił He is in pain + Jest w bólu He is not in pain + Nie jest w bólu - Bandaged Bandé @@ -1754,142 +1779,167 @@ Scrape Kratzer + Draśnięcie Minor Scrape Kleiner Kratzer + Pomniejsze draśnięcie Medium Scrape Mittlerer Kratzer + Średnie draśnięcie Large Scrape Großer Kratzer + Duże draśnięcie - Avulsion Avulsion + Rana płatowa Minor Avulsion Kleine Avulsion + Pomniejsza rana płatowa Medium Avulsion Mittlere Avulsion + Średnia rana płatowa Large Avulsion Große Avulsion + Duża rana płatowa - Bruise Prellung + Stłuczenie Minor Bruise Kleine Prellung + Pomniejsze stłuczenie Medium Bruise Mittlere Prellung + Średnie stłuczenie Large Bruise Große Prellung + Duże stłuczenie - Crushed tissue Quetschverletzung + Zgniecienie tkanek miękkich Minor crushed tissue Kleine Quetschverletzung + Pomniejsze zgniecienie tkanek miękkich Medium crushed tissue Mittlere Quetschverletzung + Średnie zgniecienie tkanek miękkich Large crushed tissue Große Quetschverletzung + Duże zgniecienie tkanek miękkich - Cut Schnittwunde + Rana cięta Small Cut Kleine Schnittwunde + Pomniejsza rana cięta Medium Cut Mittlere Schnittwunde + Średnia rana cięta Large Cut Große Schnittwunde + Duża rana cięta - Tear Riss + Rozerwanie skóry Small Tear Kleiner Riss + Pomniejsze rozerwanie skóry Medium Tear Mittlerer Riss + Średnie rozerwanie skóry Large Tear Großer Riss + Duże rozerwanie skóry - Velocity Wound Ballistisches Trauma + Rana postrzałowa Smal Velocity Wound Kleines Ballistisches Trauma + Pomniejsza rana postrzałowa Medium Velocity Wound Mittleres Ballistisches Trauma + Średnia rana postrzałowa Large Velocity Wound Großes Ballistisches Trauma + Duża rana postrzałowa - Puncture Wound Stichwunde + Rana kłuta Minor Puncture Wound Kleine Stichwunde + Pomniejsza rana kłuta Medium Puncture Wound Mittlere Stichwunde + Średnia rana kłuta Large Puncture Wound Große Stichwunde + Duża rana kłuta - Broken Femur Gebrochener Oberschenkelknochen + Zkłamana kość udowa - +
\ No newline at end of file diff --git a/addons/mk6mortar/stringtable.xml b/addons/mk6mortar/stringtable.xml index 19d68d8eb1..978a2de9e5 100644 --- a/addons/mk6mortar/stringtable.xml +++ b/addons/mk6mortar/stringtable.xml @@ -1,17 +1,22 @@  + - - - 82mm Rangetable - - - Range Table for the MK6 82mm Mortar - - - Open 82mm Rangetable - - - Charge - - + + + 82mm Rangetable + Tabela strzelnicza 82mm + + + Range Table for the MK6 82mm Mortar + Tabela strzelnicza dla moździerza 82mm MK6 + + + Open 82mm Rangetable + Otwórz tabelę strzelniczą 82mm + + + Charge + Ładunek + + \ No newline at end of file diff --git a/addons/overheating/stringtable.xml b/addons/overheating/stringtable.xml index 865b7a8242..a92f88cf44 100644 --- a/addons/overheating/stringtable.xml +++ b/addons/overheating/stringtable.xml @@ -130,7 +130,6 @@ Проверить температуру оружия
- Waffentemperatur<br/>prüfen Check weapon temperature Verificar temperatura del arma Sprawdź temperaturę broni From cfd9c6b3e9e57f4a956cfc96e2b772fca75ce903 Mon Sep 17 00:00:00 2001 From: Grzegorz Date: Sun, 26 Apr 2015 23:01:02 +0200 Subject: [PATCH 169/256] Update stringtable.xml --- addons/ballistics/stringtable.xml | 1 - 1 file changed, 1 deletion(-) diff --git a/addons/ballistics/stringtable.xml b/addons/ballistics/stringtable.xml index cc1861e420..4dc27fd2fc 100644 --- a/addons/ballistics/stringtable.xml +++ b/addons/ballistics/stringtable.xml @@ -1,5 +1,4 @@  - From 5add444026ef9651e8abd5289b6592074145de7f Mon Sep 17 00:00:00 2001 From: Grzegorz Date: Sun, 26 Apr 2015 23:01:10 +0200 Subject: [PATCH 170/256] Update stringtable.xml --- addons/interact_menu/stringtable.xml | 1 - 1 file changed, 1 deletion(-) diff --git a/addons/interact_menu/stringtable.xml b/addons/interact_menu/stringtable.xml index 94c31a1814..1335432f28 100644 --- a/addons/interact_menu/stringtable.xml +++ b/addons/interact_menu/stringtable.xml @@ -1,5 +1,4 @@  - From 78329110a146c6d0ceea75dd73aa91278734c290 Mon Sep 17 00:00:00 2001 From: Grzegorz Date: Sun, 26 Apr 2015 23:01:18 +0200 Subject: [PATCH 171/256] Update stringtable.xml --- addons/medical/stringtable.xml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/addons/medical/stringtable.xml b/addons/medical/stringtable.xml index ee014c5dc3..0deb282cd8 100644 --- a/addons/medical/stringtable.xml +++ b/addons/medical/stringtable.xml @@ -1,5 +1,4 @@  - @@ -1942,4 +1941,4 @@ Zkłamana kość udowa - \ No newline at end of file + From 3d5f7b1bf0b5261def26636059cfec7977557868 Mon Sep 17 00:00:00 2001 From: Grzegorz Date: Sun, 26 Apr 2015 23:01:31 +0200 Subject: [PATCH 172/256] Update stringtable.xml --- addons/mk6mortar/stringtable.xml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/addons/mk6mortar/stringtable.xml b/addons/mk6mortar/stringtable.xml index 978a2de9e5..189b5054d3 100644 --- a/addons/mk6mortar/stringtable.xml +++ b/addons/mk6mortar/stringtable.xml @@ -1,5 +1,4 @@  - @@ -19,4 +18,4 @@ Ładunek - \ No newline at end of file + From 3b9019e363ba86e2d1c6c680fa6ac1c8501886cd Mon Sep 17 00:00:00 2001 From: Grzegorz Date: Sun, 26 Apr 2015 23:01:42 +0200 Subject: [PATCH 173/256] Update stringtable.xml --- addons/realisticnames/stringtable.xml | 1 - 1 file changed, 1 deletion(-) diff --git a/addons/realisticnames/stringtable.xml b/addons/realisticnames/stringtable.xml index 8f8d793568..02995def8c 100644 --- a/addons/realisticnames/stringtable.xml +++ b/addons/realisticnames/stringtable.xml @@ -1,5 +1,4 @@  - From 882bfd711b9a70a84af8e04ba018db202ec71d3b Mon Sep 17 00:00:00 2001 From: Brisse89 Date: Sun, 26 Apr 2015 23:50:03 +0200 Subject: [PATCH 174/256] Update AUTHORS.txt Added myself, including e-mail (only made two minor contributions so far though) --- AUTHORS.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS.txt b/AUTHORS.txt index 724cfae6c1..dc8fb27130 100644 --- a/AUTHORS.txt +++ b/AUTHORS.txt @@ -33,6 +33,7 @@ Aggr094 Anthariel BlackQwar Brakoviejo +Brisse Clon1998 Codingboy Crusty From d64783fca12e7b4bc154c790e106d8135a517ca9 Mon Sep 17 00:00:00 2001 From: commy2 Date: Mon, 27 Apr 2015 02:40:04 +0200 Subject: [PATCH 175/256] remove the calibers from the weapon names --- addons/realisticnames/stringtable.xml | 308 +++++++++++++------------- 1 file changed, 154 insertions(+), 154 deletions(-) diff --git a/addons/realisticnames/stringtable.xml b/addons/realisticnames/stringtable.xml index 02995def8c..88088f5368 100644 --- a/addons/realisticnames/stringtable.xml +++ b/addons/realisticnames/stringtable.xml @@ -1482,214 +1482,214 @@ VS-121 - TODO: MAR-10 .338 - TODO: MAR-10 .338 - MAR-10 .338 - TODO: MAR-10 .338 - TODO: MAR-10 .338 + MAR-10 + MAR-10 + MAR-10 + MAR-10 + MAR-10 - TODO: MAR-10 .338 (Black) - TODO: MAR-10 .338 (Black) - MAR-10 .338 (Noir) - TODO: MAR-10 .338 (Negro) - TODO: MAR-10 .338 (черный) + MAR-10 (Black) + MAR-10 (Black) + MAR-10 (Noir) + MAR-10 (Negro) + MAR-10 (черный) - TODO: MAR-10 .338 (Camo) - TODO: MAR-10 .338 (Camo) - MAR-10 .338 (Camo) - TODO: MAR-10 .338 (Camuflaje) - TODO: MAR-10 .338 (камо) + MAR-10 (Camo) + MAR-10 (Camo) + MAR-10 (Camo) + MAR-10 (Camuflaje) + MAR-10 (камо) - TODO: MAR-10 .338 (Sand) - TODO: MAR-10 .338 (Sand) - MAR-10 .338 (Beige) - TODO: MAR-10 .338 (Arena) - TODO: MAR-10 .338 (песочный) + MAR-10 (Sand) + MAR-10 (Sand) + MAR-10 (Beige) + MAR-10 (Arena) + MAR-10 (песочный) - SG 556 7.62 mm - SG 556 7.62 mm - SG 556 7.62 mm - SG 556 7.62 mm - SG 556 7.62 мм - SG 556 7,62 mm + SG 556 + SG 556 + SG 556 + SG 556 + SG 556 + SG 556 - SG 556 7.62 mm (Black) - SG 556 7.62 mm (Black) - SG 556 7.62 mm (Noir) - SG 556 7.62 mm (Negro) - SG 556 7.62 мм (черный) - SG 556 7,62 mm (czarny) + SG 556 (Black) + SG 556 (Black) + SG 556 (Noir) + SG 556 (Negro) + SG 556 (черный) + SG 556 (czarny) - SG 556 7.62 mm (Khaki) - SG 556 7.62 mm (Khaki) - SG 556 7.62 mm (Kaki) - SG 556 7.62 mm (Caqui) - SG 556 7.62 мм (хаки) - SG 556 7,62 mm (khaki) + SG 556 (Khaki) + SG 556 (Khaki) + SG 556 (Kaki) + SG 556 (Caqui) + SG 556 (хаки) + SG 556 (khaki) - SG 556 7.62 mm (Sand) - SG 556 7.62 mm (Sand) - SG 556 7.62 mm (Beige) - SG 556 7.62 mm (Arena) - SG 556 7.62 мм (песочный) - SG 556 7,62 mm (piaskowy) + SG 556 (Sand) + SG 556 (Sand) + SG 556 (Beige) + SG 556 (Arena) + SG 556 (песочный) + SG 556 (piaskowy) - SG 556 7.62 mm (Camo) - SG 556 7.62 mm (Camo) - SG 556 7.62 mm (Camo) - SG 556 7.62 mm (Camuflaje) - SG 556 7.62 мм (камо) - SG 556 7,62 mm (kamuflaż) + SG 556 (Camo) + SG 556 (Camo) + SG 556 (Camo) + SG 556 (Camuflaje) + SG 556 (камо) + SG 556 (kamuflaż) - SG 556 7.62 mm (Woodland) - SG 556 7.62 mm (Woodland) - SG 556 7.62 mm (Woodland) - SG 556 7.62 mm (Bosque) - SG 556 7.62 мм (лесной) - SG 556 7,62 mm (leśny) + SG 556 (Woodland) + SG 556 (Woodland) + SG 556 (Woodland) + SG 556 (Bosque) + SG 556 (лесной) + SG 556 (leśny) - SG 556 7.62 mm (provisional) spotter - SG 556 7.62 mm (provisional) spotter - SG 556 7.62 mm (provisoire) Observateur - SG 556 7.62 mm (provisional) observador - SG 556 7.62 мм (provisional) корректировщик - SG 556 7,62 mm (prowizoryczny) obserwator + SG 556 (provisional) spotter + SG 556 (provisional) spotter + SG 556 (provisoire) Observateur + SG 556 (provisional) observador + SG 556 (provisional) корректировщик + SG 556 (prowizoryczny) obserwator - TODO: ASP-1 Kir 12.7 mm - TODO: ASP-1 Kir 12.7 mm - ASP-1 Kir 12.7 mm - TODO: ASP-1 Kir 12.7 mm - TODO: ASP-1 Kir 12.7 мм + ASP-1 Kir + ASP-1 Kir + ASP-1 Kir + ASP-1 Kir + ASP-1 Kir - TODO: ASP-1 Kir 12.7 mm (Black) - TODO: ASP-1 Kir 12.7 mm (Black) - ASP-1 Kir 12.7 mm (Noir) - TODO: ASP-1 Kir 12.7 mm (Negro) - TODO: ASP-1 Kir 12.7 мм (черный) + ASP-1 Kir (Black) + ASP-1 Kir (Black) + ASP-1 Kir (Noir) + ASP-1 Kir (Negro) + ASP-1 Kir (черный) - TODO: ASP-1 Kir 12.7 mm (Tan) - TODO: ASP-1 Kir 12.7 mm (Tan) - ASP-1 Kir 12.7 mm (Tan) - TODO: ASP-1 Kir 12.7 mm (Tan) - TODO: ASP-1 Kir 12.7 мм (бронзовый) + ASP-1 Kir (Tan) + ASP-1 Kir (Tan) + ASP-1 Kir (Tan) + ASP-1 Kir (Tan) + ASP-1 Kir (бронзовый) - TODO: Cyrus 9.3 mm - TODO: Cyrus 9.3 mm - Cyrus 9.3 mm - TODO: Cyrus 9.3 mm - TODO: Cyrus 9.3 мм + Cyrus + Cyrus + Cyrus + Cyrus + Cyrus - TODO: Cyrus 9.3 mm (Black) - TODO: Cyrus 9.3 mm (Black) - Cyrus 9.3 mm (Noir) - TODO: Cyrus 9.3 mm (Negro) - TODO: Cyrus 9.3 мм (черный) + Cyrus (Black) + Cyrus (Black) + Cyrus (Noir) + Cyrus (Negro) + Cyrus (черный) - TODO: Cyrus 9.3 mm (Hex) - TODO: Cyrus 9.3 mm (Hex) - Cyrus 9.3 mm (Hex) - TODO: Cyrus 9.3 mm (Hex) - TODO: Cyrus 9.3 мм (гекс) + Cyrus (Hex) + Cyrus (Hex) + Cyrus (Hex) + Cyrus (Hex) + Cyrus (гекс) - TODO: Cyrus 9.3 mm (Tan) - TODO: Cyrus 9.3 mm (Tan) - Cyrus 9.3 mm (Tan) - TODO: Cyrus 9.3 mm (Tan) - TODO: Cyrus 9.3 мм (бронза) + Cyrus (Tan) + Cyrus (Tan) + Cyrus (Tan) + Cyrus (Tan) + Cyrus (бронза) - M14 7.62 mm - M14 7.62 mm - M14 7.62 mm - M14 7.62 mm - M14 7.62 мм - M14 7,62 mm + M14 + M14 + M14 + M14 + M14 + M14 - M14 7.62 mm (Camo) - M14 7.62 mm (Camo) - M14 7.62 mm (Camo) - M14 7.62 mm (Camuflaje) - M14 7.62 мм (Камо) - M14 7,62 mm (kamuflaż) + M14 (Camo) + M14 (Camo) + M14 (Camo) + M14 (Camuflaje) + M14 (Камо) + M14 (kamuflaż) - M14 7.62 mm (Olive) - M14 7.62 mm (Olive) - M14 7.62 mm (Olive) - M14 7.62 mm (Oliva) - M14 7.62 мм (Олива) - M14 7,62 mm (oliwkowy) + M14 (Olive) + M14 (Olive) + M14 (Olive) + M14 (Oliva) + M14 (Олива) + M14 (oliwkowy) - TODO: Navid 9.3 mm - TODO: Navid 9.3 mm - Navid 9.3 mm - TODO: Navid 9.3 mm - TODO: Navid 9.3 мм + Navid + Navid + Navid + Navid + Navid - TODO: Navid 9.3 mm (Hex) - TODO: Navid 9.3 mm (Hex) - Navid 9.3 mm (Hex) - TODO: Navid 9.3 mm (Hex) - TODO: Navid 9.3 мм (гекс) + Navid (Hex) + Navid (Hex) + Navid (Hex) + Navid (Hex) + Navid (гекс) - TODO: Navid 9.3 mm (Tan) - TODO: Navid 9.3 mm (Tan) - Navid 9.3 mm (Tan) - TODO: Navid 9.3 mm (Tan) - TODO: Navid 9.3 мм (бронза) + Navid (Tan) + Navid (Tan) + Navid (Tan) + Navid (Tan) + Navid (бронза) - LWMMG .338 - LWMMG .338 - LWMMG .338 - LWMMG .338 - LWMMG .338 - LWMMG .338 + LWMMG + LWMMG + LWMMG + LWMMG + LWMMG + LWMMG - LWMMG .338 (MTP) - LWMMG .338 (MTP) - LWMMG .338 (MTP) - LWMMG .338 (MTP) - LWMMG .338 (MTP) - LWMMG .338 (MTP) + LWMMG (MTP) + LWMMG (MTP) + LWMMG (MTP) + LWMMG (MTP) + LWMMG (MTP) + LWMMG (MTP) - LWMMG .338 (Black) - LWMMG .338 (Black) - LWMMG .338 (Noir) - LWMMG .338 (Negro) - LWMMG .338 (Черный) - LWMMG .338 (czarny) + LWMMG (Black) + LWMMG (Black) + LWMMG (Noir) + LWMMG (Negro) + LWMMG (Черный) + LWMMG (czarny) - LWMMG .338 (Sand) - LWMMG .338 (Sand) - SPMG .338 (Beige) - LWMMG .338 (Arena) - LWMMG .338 (Песочный) - LWMMG .338 (piaskowy) + LWMMG (Sand) + LWMMG (Sand) + SPMG (Beige) + LWMMG (Arena) + LWMMG (Песочный) + LWMMG (piaskowy) From db553644aa840f9d2ae89cb879d9ea6d85d3035b Mon Sep 17 00:00:00 2001 From: Brisse89 Date: Mon, 27 Apr 2015 10:24:42 +0200 Subject: [PATCH 176/256] Update stringtable.xml Is this okay? MAR-10 -> Noreen Bad news EMR-1 -> SIG 762 Navid -> HK 122 --- addons/realisticnames/stringtable.xml | 154 +++++++++++++------------- 1 file changed, 77 insertions(+), 77 deletions(-) diff --git a/addons/realisticnames/stringtable.xml b/addons/realisticnames/stringtable.xml index 88088f5368..ac642790d2 100644 --- a/addons/realisticnames/stringtable.xml +++ b/addons/realisticnames/stringtable.xml @@ -1482,88 +1482,88 @@ VS-121 - MAR-10 - MAR-10 - MAR-10 - MAR-10 - MAR-10 + Noreen Bad News + Noreen Bad News + Noreen Bad News + Noreen Bad News + Noreen Bad News - MAR-10 (Black) - MAR-10 (Black) - MAR-10 (Noir) - MAR-10 (Negro) - MAR-10 (черный) + Noreen Bad News (Black) + Noreen Bad News (Black) + Noreen Bad News (Noir) + Noreen Bad News (Negro) + Noreen Bad News (черный) - MAR-10 (Camo) - MAR-10 (Camo) - MAR-10 (Camo) - MAR-10 (Camuflaje) - MAR-10 (камо) + Noreen Bad News (Camo) + Noreen Bad News (Camo) + Noreen Bad News (Camo) + Noreen Bad News (Camuflaje) + Noreen Bad News (камо) - MAR-10 (Sand) - MAR-10 (Sand) - MAR-10 (Beige) - MAR-10 (Arena) - MAR-10 (песочный) + Noreen Bad News (Sand) + Noreen Bad News (Sand) + Noreen Bad News (Beige) + Noreen Bad News (Arena) + Noreen Bad News (песочный) - SG 556 - SG 556 - SG 556 - SG 556 - SG 556 - SG 556 + SIG 762 + SIG 762 + SIG 762 + SIG 762 + SIG 762 + SIG 762 - SG 556 (Black) - SG 556 (Black) - SG 556 (Noir) - SG 556 (Negro) - SG 556 (черный) - SG 556 (czarny) + SIG 762 (Black) + SIG 762 (Black) + SIG 762 (Noir) + SIG 762 (Negro) + SIG 762 (черный) + SIG 762 (czarny) - SG 556 (Khaki) - SG 556 (Khaki) - SG 556 (Kaki) - SG 556 (Caqui) - SG 556 (хаки) - SG 556 (khaki) + SIG 762 (Khaki) + SIG 762 (Khaki) + SIG 762 (Kaki) + SIG 762 (Caqui) + SIG 762 (хаки) + SIG 762 (khaki) - SG 556 (Sand) - SG 556 (Sand) - SG 556 (Beige) - SG 556 (Arena) - SG 556 (песочный) - SG 556 (piaskowy) + SIG 762 (Sand) + SIG 762 (Sand) + SIG 762 (Beige) + SIG 762 (Arena) + SIG 762 (песочный) + SIG 762 (piaskowy) - SG 556 (Camo) - SG 556 (Camo) - SG 556 (Camo) - SG 556 (Camuflaje) - SG 556 (камо) - SG 556 (kamuflaż) + SIG 762 (Camo) + SIG 762 (Camo) + SIG 762 (Camo) + SIG 762 (Camuflaje) + SIG 762 (камо) + SIG 762 (kamuflaż) - SG 556 (Woodland) - SG 556 (Woodland) - SG 556 (Woodland) - SG 556 (Bosque) - SG 556 (лесной) - SG 556 (leśny) + SIG 762 (Woodland) + SIG 762 (Woodland) + SIG 762 (Woodland) + SIG 762 (Bosque) + SIG 762 (лесной) + SIG 762 (leśny) - SG 556 (provisional) spotter - SG 556 (provisional) spotter - SG 556 (provisoire) Observateur - SG 556 (provisional) observador - SG 556 (provisional) корректировщик - SG 556 (prowizoryczny) obserwator + SIG 762 (provisional) spotter + SIG 762 (provisional) spotter + SIG 762 (provisoire) Observateur + SIG 762 (provisional) observador + SIG 762 (provisional) корректировщик + SIG 762 (prowizoryczny) obserwator ASP-1 Kir @@ -1639,25 +1639,25 @@ M14 (oliwkowy) - Navid - Navid - Navid - Navid - Navid + HK 122 + HK 122 + HK 122 + HK 122 + HK 122 - Navid (Hex) - Navid (Hex) - Navid (Hex) - Navid (Hex) - Navid (гекс) + HK 122 (Hex) + HK 122 (Hex) + HK 122 (Hex) + HK 122 (Hex) + HK 122 (гекс) - Navid (Tan) - Navid (Tan) - Navid (Tan) - Navid (Tan) - Navid (бронза) + HK 122 (Tan) + HK 122 (Tan) + HK 122 (Tan) + HK 122 (Tan) + HK 122 (бронза) LWMMG From d6f757e096d3aff809afbed7e4ccb55a33e6d300 Mon Sep 17 00:00:00 2001 From: ulteq Date: Mon, 27 Apr 2015 11:04:12 +0200 Subject: [PATCH 177/256] Enabled scope adjustments for the Khalia (old) optic --- addons/scopes/CfgWeapons.hpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/addons/scopes/CfgWeapons.hpp b/addons/scopes/CfgWeapons.hpp index 6ca522ced7..526282a1b6 100644 --- a/addons/scopes/CfgWeapons.hpp +++ b/addons/scopes/CfgWeapons.hpp @@ -71,4 +71,18 @@ class CfgWeapons { }; }; }; + + class optic_KHS_old : ItemCore { + ACE_ScopeAdjust_Vertical[] = { -4, 30 }; + ACE_ScopeAdjust_Horizontal[] = { -6, 6 }; + ACE_ScopeAdjust_Increment = 0.1; + class ItemInfo : InventoryOpticsItem_Base_F { + class OpticsModes { + class KHS { + discreteDistance[] = { 100 }; + discreteDistanceInitIndex = 0; + }; + }; + }; + }; }; From b0876ca39449973c2110883cade7a46d6cb2c621 Mon Sep 17 00:00:00 2001 From: ulteq Date: Mon, 27 Apr 2015 11:06:16 +0200 Subject: [PATCH 178/256] Enables: https://github.com/acemod/ACE3/commit/d64783fca12e7b4bc154c790e106d8135a517ca9 --- addons/realisticnames/CfgWeapons.hpp | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/addons/realisticnames/CfgWeapons.hpp b/addons/realisticnames/CfgWeapons.hpp index 3cbe03f465..8eb3c04577 100644 --- a/addons/realisticnames/CfgWeapons.hpp +++ b/addons/realisticnames/CfgWeapons.hpp @@ -193,7 +193,7 @@ class CfgWeapons { }; // marksmen marksman - /*class DMR_02_base_F: Rifle_Long_Base_F { + class DMR_02_base_F: Rifle_Long_Base_F { displayName = "$STR_ACE_RealisticNames_DMR_02"; //MAR-10 .338"; }; @@ -208,7 +208,6 @@ class CfgWeapons { class srifle_DMR_02_sniper_F: srifle_DMR_02_F { displayName = "$STR_ACE_RealisticNames_srifle_DMR_02_sniper"; //MAR-10 .338 (Sand)"; }; - */ class DMR_03_base_F: Rifle_Long_Base_F { displayName = "$STR_ACE_RealisticNames_DMR_03"; //Mk-I EMR 7.62 mm"; }; @@ -236,7 +235,6 @@ class CfgWeapons { class srifle_DMR_03_spotter_F: srifle_DMR_03_F { displayName = "$STR_ACE_RealisticNames_srifle_DMR_03_spotter"; //NATO DMR (provisional) spotter"; }; - /* class DMR_04_base_F: Rifle_Long_Base_F { displayName = "$STR_ACE_RealisticNames_DMR_04"; //ASP-1 Kir 12.7 mm"; }; @@ -264,7 +262,6 @@ class CfgWeapons { class srifle_DMR_05_tan_f: srifle_DMR_05_blk_F { displayName = "$STR_ACE_RealisticNames_srifle_DMR_05_tan"; //Cyrus 9.3 mm (Tan)"; }; - */ class DMR_06_base_F: Rifle_Long_Base_F { displayName = "$STR_ACE_RealisticNames_DMR_06"; //Mk14 7.62 mm"; }; @@ -278,7 +275,6 @@ class CfgWeapons { }; // marksmen mgs - /* class MMG_01_base_F: Rifle_Long_Base_F { displayName = "$STR_ACE_RealisticNames_MMG_01"; //Navid 9.3 mm"; }; @@ -290,7 +286,6 @@ class CfgWeapons { class MMG_01_tan_F: MMG_01_hex_F { displayName = "$STR_ACE_RealisticNames_MMG_01_tan"; //Navid 9.3 mm (Tan)"; }; - */ class MMG_02_base_F: Rifle_Long_Base_F { displayName = "$STR_ACE_RealisticNames_MMG_02"; //SPMG .338"; }; From 33397593213ab5c7198b0b8e03e30cc650125db6 Mon Sep 17 00:00:00 2001 From: Brisse89 Date: Mon, 27 Apr 2015 11:58:39 +0200 Subject: [PATCH 179/256] Update stringtable.xml Is this better? SIG 762 -> SIG 556 HK 122 -> HK 121 --- addons/realisticnames/stringtable.xml | 114 +++++++++++++------------- 1 file changed, 57 insertions(+), 57 deletions(-) diff --git a/addons/realisticnames/stringtable.xml b/addons/realisticnames/stringtable.xml index ac642790d2..78e518941b 100644 --- a/addons/realisticnames/stringtable.xml +++ b/addons/realisticnames/stringtable.xml @@ -1510,60 +1510,60 @@ Noreen Bad News (песочный) - SIG 762 - SIG 762 - SIG 762 - SIG 762 - SIG 762 - SIG 762 + SIG 556 + SIG 556 + SIG 556 + SIG 556 + SIG 556 + SIG 556 - SIG 762 (Black) - SIG 762 (Black) - SIG 762 (Noir) - SIG 762 (Negro) - SIG 762 (черный) - SIG 762 (czarny) + SIG 556 (Black) + SIG 556 (Black) + SIG 556 (Noir) + SIG 556 (Negro) + SIG 556 (черный) + SIG 556 (czarny) - SIG 762 (Khaki) - SIG 762 (Khaki) - SIG 762 (Kaki) - SIG 762 (Caqui) - SIG 762 (хаки) - SIG 762 (khaki) + SIG 556 (Khaki) + SIG 556 (Khaki) + SIG 556 (Kaki) + SIG 556 (Caqui) + SIG 556 (хаки) + SIG 556 (khaki) - SIG 762 (Sand) - SIG 762 (Sand) - SIG 762 (Beige) - SIG 762 (Arena) - SIG 762 (песочный) - SIG 762 (piaskowy) + SIG 556 (Sand) + SIG 556 (Sand) + SIG 556 (Beige) + SIG 556 (Arena) + SIG 556 (песочный) + SIG 556 (piaskowy) - SIG 762 (Camo) - SIG 762 (Camo) - SIG 762 (Camo) - SIG 762 (Camuflaje) - SIG 762 (камо) - SIG 762 (kamuflaż) + SIG 556 (Camo) + SIG 556 (Camo) + SIG 556 (Camo) + SIG 556 (Camuflaje) + SIG 556 (камо) + SIG 556 (kamuflaż) - SIG 762 (Woodland) - SIG 762 (Woodland) - SIG 762 (Woodland) - SIG 762 (Bosque) - SIG 762 (лесной) - SIG 762 (leśny) + SIG 556 (Woodland) + SIG 556 (Woodland) + SIG 556 (Woodland) + SIG 556 (Bosque) + SIG 556 (лесной) + SIG 556 (leśny) - SIG 762 (provisional) spotter - SIG 762 (provisional) spotter - SIG 762 (provisoire) Observateur - SIG 762 (provisional) observador - SIG 762 (provisional) корректировщик - SIG 762 (prowizoryczny) obserwator + SIG 556 (provisional) spotter + SIG 556 (provisional) spotter + SIG 556 (provisoire) Observateur + SIG 556 (provisional) observador + SIG 556 (provisional) корректировщик + SIG 556 (prowizoryczny) obserwator ASP-1 Kir @@ -1639,25 +1639,25 @@ M14 (oliwkowy) - HK 122 - HK 122 - HK 122 - HK 122 - HK 122 + HK 121 + HK 121 + HK 121 + HK 121 + HK 121 - HK 122 (Hex) - HK 122 (Hex) - HK 122 (Hex) - HK 122 (Hex) - HK 122 (гекс) + HK 121 (Hex) + HK 121 (Hex) + HK 121 (Hex) + HK 121 (Hex) + HK 121 (гекс) - HK 122 (Tan) - HK 122 (Tan) - HK 122 (Tan) - HK 122 (Tan) - HK 122 (бронза) + HK 121 (Tan) + HK 121 (Tan) + HK 121 (Tan) + HK 121 (Tan) + HK 121 (бронза) LWMMG From faa17d0e56c73428900223738f17dab808fad653 Mon Sep 17 00:00:00 2001 From: Brisse89 Date: Mon, 27 Apr 2015 12:13:09 +0200 Subject: [PATCH 180/256] Update stringtable.xml Noreen Bad News -> Noreen "Bad News" ULR --- addons/realisticnames/stringtable.xml | 40 +++++++++++++-------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/addons/realisticnames/stringtable.xml b/addons/realisticnames/stringtable.xml index 78e518941b..2a929e8266 100644 --- a/addons/realisticnames/stringtable.xml +++ b/addons/realisticnames/stringtable.xml @@ -1482,32 +1482,32 @@ VS-121 - Noreen Bad News - Noreen Bad News - Noreen Bad News - Noreen Bad News - Noreen Bad News + Noreen "Bad News" ULR + Noreen "Bad News" ULR + Noreen "Bad News" ULR + Noreen "Bad News" ULR + Noreen "Bad News" ULR - Noreen Bad News (Black) - Noreen Bad News (Black) - Noreen Bad News (Noir) - Noreen Bad News (Negro) - Noreen Bad News (черный) + Noreen "Bad News" ULR (Black) + Noreen "Bad News" ULR (Black) + Noreen "Bad News" ULR (Noir) + Noreen "Bad News" ULR (Negro) + Noreen "Bad News" ULR (черный) - Noreen Bad News (Camo) - Noreen Bad News (Camo) - Noreen Bad News (Camo) - Noreen Bad News (Camuflaje) - Noreen Bad News (камо) + Noreen "Bad News" ULR (Camo) + Noreen "Bad News" ULR (Camo) + Noreen "Bad News" ULR (Camo) + Noreen "Bad News" ULR (Camuflaje) + Noreen "Bad News" ULR (камо) - Noreen Bad News (Sand) - Noreen Bad News (Sand) - Noreen Bad News (Beige) - Noreen Bad News (Arena) - Noreen Bad News (песочный) + Noreen "Bad News" ULR (Sand) + Noreen "Bad News" ULR (Sand) + Noreen "Bad News" ULR (Beige) + Noreen "Bad News" ULR (Arena) + Noreen "Bad News" ULR (песочный) SIG 556 From ecaa23ada2fb4fdf8b1a3ef4144098d7fa32189f Mon Sep 17 00:00:00 2001 From: Brisse89 Date: Mon, 27 Apr 2015 12:17:36 +0200 Subject: [PATCH 181/256] Update stringtable.xml Removed the space in HK121 --- addons/realisticnames/stringtable.xml | 30 +++++++++++++-------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/addons/realisticnames/stringtable.xml b/addons/realisticnames/stringtable.xml index 2a929e8266..5e9aaa701d 100644 --- a/addons/realisticnames/stringtable.xml +++ b/addons/realisticnames/stringtable.xml @@ -1639,25 +1639,25 @@ M14 (oliwkowy) - HK 121 - HK 121 - HK 121 - HK 121 - HK 121 + HK121 + HK121 + HK121 + HK121 + HK121 - HK 121 (Hex) - HK 121 (Hex) - HK 121 (Hex) - HK 121 (Hex) - HK 121 (гекс) + HK121 (Hex) + HK121 (Hex) + HK121 (Hex) + HK121 (Hex) + HK121 (гекс) - HK 121 (Tan) - HK 121 (Tan) - HK 121 (Tan) - HK 121 (Tan) - HK 121 (бронза) + HK121 (Tan) + HK121 (Tan) + HK121 (Tan) + HK121 (Tan) + HK121 (бронза) LWMMG From 3c91f6abe3990876af27d0c05ee00115a90c320e Mon Sep 17 00:00:00 2001 From: ulteq Date: Mon, 27 Apr 2015 12:28:56 +0200 Subject: [PATCH 182/256] Added ace/module settings for ace_weather: *enableServerController // weather propagation on the server *useACEWeather // disable ace weather *syncRain *syncWind *syncMisc --- addons/weather/ACE_Settings.hpp | 32 +++++ addons/weather/CfgVehicles.hpp | 46 ++++++++ addons/weather/UI/Icon_Module_Wind_ca.paa | Bin 0 -> 5625 bytes addons/weather/XEH_postServerInit.sqf | 1 - addons/weather/XEH_preInit.sqf | 10 +- addons/weather/config.cpp | 4 +- .../functions/fnc_initModuleSettings.sqf | 34 ++++++ .../functions/fnc_serverController.sqf | 110 +++--------------- .../functions/fnc_updateAceWeather.sqf | 105 +++++++++++++++++ 9 files changed, 240 insertions(+), 102 deletions(-) create mode 100644 addons/weather/ACE_Settings.hpp create mode 100644 addons/weather/CfgVehicles.hpp create mode 100644 addons/weather/UI/Icon_Module_Wind_ca.paa create mode 100644 addons/weather/functions/fnc_initModuleSettings.sqf create mode 100644 addons/weather/functions/fnc_updateAceWeather.sqf diff --git a/addons/weather/ACE_Settings.hpp b/addons/weather/ACE_Settings.hpp new file mode 100644 index 0000000000..14e36983f8 --- /dev/null +++ b/addons/weather/ACE_Settings.hpp @@ -0,0 +1,32 @@ +class ACE_Settings { + class GVAR(enableServerController) { + displayName = "Weather propagation"; + description = "Enables sever side weather propagation"; + typeName = "BOOL"; + value = 1; + }; + class GVAR(useACEWeather) { + displayName = "ACE Weather"; + description = "Overrides the default weather (editor, mission settings) with ACE weather (map based)"; + typeName = "BOOL"; + value = 1; + }; + class GVAR(syncRain) { + displayName = "Sync Rain"; + description = "Synchronizes rain"; + typeName = "BOOL"; + value = 1; + }; + class GVAR(syncWind) { + displayName = "Sync Wind"; + description = "Synchronizes wind"; + typeName = "BOOL"; + value = 1; + }; + class GVAR(syncMisc) { + displayName = "Sync Misc"; + description = "Synchronizes lightnings, rainbow, fog, ..."; + typeName = "BOOL"; + value = 1; + }; +}; diff --git a/addons/weather/CfgVehicles.hpp b/addons/weather/CfgVehicles.hpp new file mode 100644 index 0000000000..7a794bdda0 --- /dev/null +++ b/addons/weather/CfgVehicles.hpp @@ -0,0 +1,46 @@ +class CfgVehicles { + class ACE_Module; + class GVAR(ModuleSettings): ACE_Module { + scope = 2; + displayName = "Weather"; + icon = QUOTE(PATHTOF(UI\Icon_Module_Wind_ca.paa)); + category = "ACE"; + function = QUOTE(DFUNC(initModuleSettings)); + functionPriority = 1; + isGlobal = 1; + isTriggerActivated = 0; + author = "$STR_ACE_Common_ACETeam"; + class Arguments { + class enableServerController { + displayName = "Weather propagation"; + description = "Enables sever side weather propagation"; + typeName = "BOOL"; + defaultValue = 1; + }; + class useACEWeather { + displayName = "ACE Weather"; + description = "Overrides the default weather (editor, mission settings) with ACE weather (map based)"; + typeName = "BOOL"; + defaultValue = 1; + }; + class syncRain { + displayName = "Sync Rain"; + description = "Synchronizes rain"; + typeName = "BOOL"; + defaultValue = 1; + }; + class syncWind { + displayName = "Sync Wind"; + description = "Synchronizes wind"; + typeName = "BOOL"; + defaultValue = 1; + }; + class syncMisc { + displayName = "Sync Misc"; + description = "Synchronizes lightnings, rainbow, fog, ..."; + typeName = "BOOL"; + defaultValue = 1; + }; + }; + }; +}; diff --git a/addons/weather/UI/Icon_Module_Wind_ca.paa b/addons/weather/UI/Icon_Module_Wind_ca.paa new file mode 100644 index 0000000000000000000000000000000000000000..176fe700a792c16d3cf86ed7ae32e8660b8345dd GIT binary patch literal 5625 zcmd^@UuaWT7{I^A*w#MOPU~VueCR;xgKoK9rOkDgiW3oJ*j8qdQin|Tw3@4Z zD0^_mlodxO8GG_YSCk&`L7L$}abPE9(wUC=p!lSQ7FYiy+~xLKE7h5cQJ4 z{pEi5`=9fjdl%a+EscAdTJ|;i0U(`DcX8g|*h*~ULEO@~tC_eAzr>$4H@6vhZsE7T z2H?9|fbUlTOyYNLhXDpa4H|N8BZGAIf7#LI1W*ipHWFRnk?`p;^=us+=%%zxheyy@5V ze7s#u(b6IM+o96sU9?`9F*$!~Cs|K&J-*!+vZv$H z-)unh<=WJXUxE$oGQZ1Hc035B%kLy2(Z4Vy^Nm-p|EGVl(;Hs!bUO7P&ki#*z-1Sj zZ$Y%$ensJMdlf%naKo#L7M~uk&YP}pOzy#6k=e62fM zen{=Nvv6)e?YCn4oBbEd`Tw?Y00IDhutu@LBB|@5%{YTQX7$H#ut;)xjgaT8Y@@-d zIB~zMn)fa*8ObkAxoM^!m1V>ljikKxai-<5k82@4_A2^vw(0noV##e1#RL5rDUbf* z7;_&>3@h?uf}NMknqjd+bqa$OimHz>`u(|Fu{xmW&%N%o?_5{5o!r0q^K!bM_0);_ zSij*WiCw%YIL96@l51~h4A*>iTIOSnZ#&(57vj&ySht$L^)vRiEe+!zOZ%F=EXw*+ zJ#X!VdxIp-$6nQQY_8COPv>{1SXOhL zoaP5cSWgo>yjAEQ0rQhsvRvv%-iiFaxc(0`?Fk-tcO&cTF%2w3mw6hX9`!>?^0L48 z^zSH7OXg`%maR&tq}QU4Ht%1%?{>Ew%EQJ7=lZrE85e3-4h=pCmjA&7Z@IF2^4FhR ZV}kv-qGCQTeP}!!Jo44F_?a>S@E;o-Cz}8O literal 0 HcmV?d00001 diff --git a/addons/weather/XEH_postServerInit.sqf b/addons/weather/XEH_postServerInit.sqf index 076b538806..9941cb20b4 100644 --- a/addons/weather/XEH_postServerInit.sqf +++ b/addons/weather/XEH_postServerInit.sqf @@ -9,7 +9,6 @@ GVAR(rain_current_range) = -1+(random 2); // Wind call FUNC(initWind); -GVAR(overcast_multiplier) = 1; GVAR(serverUpdateInterval) = 60; [FUNC(serverController), GVAR(serverUpdateInterval)] call cba_fnc_addPerFrameHandler; diff --git a/addons/weather/XEH_preInit.sqf b/addons/weather/XEH_preInit.sqf index 401ae155c1..0f49226432 100644 --- a/addons/weather/XEH_preInit.sqf +++ b/addons/weather/XEH_preInit.sqf @@ -8,21 +8,15 @@ PREP(calculateBarometricPressure); PREP(displayWindInfo); PREP(getMapData); PREP(getWind); +PREP(initModuleSettings); PREP(initWind); PREP(serverController); +PREP(updateAceWeather); PREP(updateHumidity); PREP(updateRain); PREP(updateTemperature); PREP(updateWind); -// Control server side weather propagation -GVAR(enableServerController) = true; - -// Control client side weather effects -GVAR(syncRain) = true; -GVAR(syncWind) = true; // Wind, Gusts, Waves -GVAR(syncMisc) = true; // Lightnings, Rainbow, Fog - // Make sure this data is read before client/server postInit call FUNC(getMapData); diff --git a/addons/weather/config.cpp b/addons/weather/config.cpp index 13e5a0cab2..39cf223518 100644 --- a/addons/weather/config.cpp +++ b/addons/weather/config.cpp @@ -3,7 +3,7 @@ class CfgPatches { class ADDON { units[] = {}; - weapons[] = {};// "ACE_Kestrel4500" }; + weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_common"}; author[] = {"q1184", "Rocko", "esteldunedain","Ruthberg"}; @@ -14,3 +14,5 @@ class CfgPatches { #include "CfgEventhandlers.hpp" #include "CfgWorlds.hpp" #include "RscTitles.hpp" +#include "CfgVehicles.hpp" +#include "ACE_Settings.hpp" \ No newline at end of file diff --git a/addons/weather/functions/fnc_initModuleSettings.sqf b/addons/weather/functions/fnc_initModuleSettings.sqf new file mode 100644 index 0000000000..29bfb7e16d --- /dev/null +++ b/addons/weather/functions/fnc_initModuleSettings.sqf @@ -0,0 +1,34 @@ +/* + * Author: Glowbal, Ruthberg + * Module for adjusting the wind deflection settings + * + * Arguments: + * 0: The module logic + * 1: units + * 2: activated + * + * Return Value: + * None + * + * Public: No + */ + +#include "script_component.hpp" + +private ["_logic", "_units", "_activated"]; +_logic = _this select 0; +_units = _this select 1; +_activated = _this select 2; + +if !(_activated) exitWith {}; + +// Control server side weather propagation +[_logic, QGVAR(enableServerController), "enableServerController"] call EFUNC(common,readSettingFromModule); + +// Overrides the default weather (editor, mission settings) with ACE weather (map based) +[_logic, QGVAR(useACEWeather), "useACEWeather"] call EFUNC(common,readSettingFromModule); + +// Control client side weather effects +[_logic, QGVAR(syncRain), "syncRain"] call EFUNC(common,readSettingFromModule); +[_logic, QGVAR(syncWind), "syncWind"] call EFUNC(common,readSettingFromModule); // Wind, Gusts, Waves +[_logic, QGVAR(syncMisc), "syncMisc"] call EFUNC(common,readSettingFromModule); // Lightnings, Rainbow, Fog diff --git a/addons/weather/functions/fnc_serverController.sqf b/addons/weather/functions/fnc_serverController.sqf index a9ceca3815..d5878fd1aa 100644 --- a/addons/weather/functions/fnc_serverController.sqf +++ b/addons/weather/functions/fnc_serverController.sqf @@ -1,7 +1,7 @@ /* - * Author: ACE2 Team, esteldunedain, ruthberg + * Author: Ruthberg * - * Calculate the wind and rain evolution on the server. Broadcasts the current and next values to the clients + * Gather weather parameters and broadcast them to the clients * * Argument: * None @@ -13,95 +13,21 @@ if (!GVAR(enableServerController)) exitWith {}; -private ["_lastRain", "_rainOverCast", "_transitionTime", "_windDirectionVariance", "_windSpeed", "_windSpeedChange", "_windMaxDiff", "_windMinDiff", "_windDirection", "_windDirectionChange", "_ratioMin", "_ratioMax"]; - -// Rain simulation -if (GVAR(syncRain) && GVAR(rain_period_count) > GVAR(rain_next_period)) then { - - GVAR(rain_next_period) = ceil((1 + (random 10)) / GVAR(overcast_multiplier)); - GVAR(rain_period_count) = 0; - - _lastRain = GVAR(current_rain); - - if (overcast >= 0.7) then { - _rainOverCast = (overcast - 0.7) / 0.3; - if (GVAR(current_rain) == 0) then { - // Initialize rain with a random strength depending on the current overcast value - GVAR(current_rain) = 0.25 + (random 0.25) + (random 0.5) * _rainOverCast; - }; - - GVAR(current_rain) = GVAR(current_rain) + GVAR(current_rain) * ((_rainOverCast * GVAR(overcast_multiplier)) / 8) * GVAR(rain_current_range); - GVAR(current_rain) = 0.01 max GVAR(current_rain) min 1; - - GVAR(rain_current_range) = -1 + (random 2); - } else { - _rainOverCast = 1; - - GVAR(current_rain) = 0; +if (GVAR(useACEWeather)) then { + // Use location based real world weather data + [] call FUNC(updateAceWeather); +} else { + // Simply replicate the server weather on the clients + if (GVAR(syncRain)) then { + ACE_RAIN_PARAMS = [rain, rain, GVAR(serverUpdateInterval)]; + publicVariable "ACE_RAIN_PARAMS"; + }; + if (GVAR(syncWind)) then { + ACE_WIND_PARAMS = [wind call CBA_fnc_vectDir, 0, wind, 0, GVAR(serverUpdateInterval)]; + publicVariable "ACE_WIND_PARAMS"; + }; + if (GVAR(syncMisc)) then { + ACE_MISC_PARAMS = [lightnings, rainbow, fogParams, GVAR(temperatureShift), GVAR(badWeatherShift), GVAR(humidityShift)]; + publicVariable "ACE_MISC_PARAMS"; }; - - _transitionTime = 1 + (_rainOverCast * 5) + (random (_rainOverCast * 20)); - - ACE_RAIN_PARAMS = [_lastRain, GVAR(current_rain), _transitionTime]; - TRACE_4("",_lastRain,_rainOverCast,_transitionTime,overcast); - - GVAR(rain_period_start_time) = time; - publicVariable "ACE_RAIN_PARAMS"; }; - -// Wind simulation -if (GVAR(syncWind) && GVAR(wind_period_count) > GVAR(wind_next_period)) then { - - GVAR(wind_next_period) = ceil((2 + (random 5)) / GVAR(overcast_multiplier)); - GVAR(wind_period_count) = 0; - - _windDirectionVariance = (90 - (random 180)) * (overcast ^ 2); - _windDirection = (360 + GVAR(wind_direction_reference) + _windDirectionVariance) % 360; - _windDirectionChange = _windDirection - GVAR(current_wind_direction); - if (_windDirectionChange > 180) then { - _windDirectionChange = _windDirectionChange - 360; - }; - if (_windDirectionChange < -180) then { - _windDirectionChange = 360 + _windDirectionChange; - }; - - _windMaxDiff = GVAR(mean_wind_speed) - GVAR(max_wind_speed); - _windMinDiff = GVAR(min_wind_speed) - GVAR(mean_wind_speed); - - _ratioMax = (random 1) ^ 2; - _ratioMin = (random 1) ^ 2; - - _windSpeed = GVAR(current_wind_speed); - _windSpeedChange = 0; - if ((random 1) < (0.3 max overcast)) then { - _windSpeed = GVAR(mean_wind_speed) + _windMaxDiff * _ratioMax + _windMinDiff * _ratioMin; - _windSpeedChange = _windSpeed - GVAR(current_wind_speed); - }; - - _transitionTime = GVAR(wind_next_period) * GVAR(serverUpdateInterval); - - TRACE_5("dirCur/dirNew/spdCur/spdNew/period",GVAR(current_wind_direction),_windDirection,GVAR(current_wind_speed),_windSpeed,_transitionTime); - - ACE_WIND_PARAMS = [GVAR(current_wind_direction), - _windDirectionChange, - GVAR(current_wind_speed), - _windSpeedChange, - _transitionTime]; - - GVAR(current_wind_direction) = _windDirection; - GVAR(current_wind_speed) = _windSpeed; - - GVAR(wind_period_start_time) = time; - publicVariable "ACE_WIND_PARAMS"; -}; - - -if (GVAR(syncMisc)) then { - ACE_MISC_PARAMS = [lightnings, rainbow, fogParams, GVAR(temperatureShift), GVAR(badWeatherShift), GVAR(humidityShift)]; - publicVariable "ACE_MISC_PARAMS"; -}; - -GVAR(rain_period_count) = GVAR(rain_period_count) + 1; -GVAR(wind_period_count) = GVAR(wind_period_count) + 1; - -GVAR(overcast_multiplier) = 1 max (2* overcast) min 2; // 0 (@ overcast 0), 2 (@ overcast 1) \ No newline at end of file diff --git a/addons/weather/functions/fnc_updateAceWeather.sqf b/addons/weather/functions/fnc_updateAceWeather.sqf new file mode 100644 index 0000000000..8ed0bb0d10 --- /dev/null +++ b/addons/weather/functions/fnc_updateAceWeather.sqf @@ -0,0 +1,105 @@ +/* + * Author: ACE2 Team, esteldunedain, ruthberg + * + * Updates the wind and rain evolution on the server. Broadcasts the current and next values to the clients + * + * Argument: + * None + * + * Return value: + * None + */ +#include "script_component.hpp" + +private ["_overcastMultiplier", "_lastRain", "_rainOverCast", "_transitionTime", "_windDirectionVariance", "_windSpeed", "_windSpeedChange", "_windMaxDiff", "_windMinDiff", "_windDirection", "_windDirectionChange", "_ratioMin", "_ratioMax"]; + +_overcastMultiplier = 1 max (2* overcast) min 2; // 0 (@ overcast 0), 2 (@ overcast 1) + +// Rain simulation +if (GVAR(syncRain) && GVAR(rain_period_count) > GVAR(rain_next_period)) then { + + GVAR(rain_next_period) = ceil((1 + (random 10)) / _overcastMultiplier); + GVAR(rain_period_count) = 0; + + _lastRain = GVAR(current_rain); + + if (overcast >= 0.7) then { + _rainOverCast = (overcast - 0.7) / 0.3; + if (GVAR(current_rain) == 0) then { + // Initialize rain with a random strength depending on the current overcast value + GVAR(current_rain) = 0.25 + (random 0.25) + (random 0.5) * _rainOverCast; + }; + + GVAR(current_rain) = GVAR(current_rain) + GVAR(current_rain) * ((_rainOverCast * _overcastMultiplier) / 8) * GVAR(rain_current_range); + GVAR(current_rain) = 0.01 max GVAR(current_rain) min 1; + + GVAR(rain_current_range) = -1 + (random 2); + } else { + _rainOverCast = 1; + + GVAR(current_rain) = 0; + }; + + _transitionTime = 1 + (_rainOverCast * 5) + (random (_rainOverCast * 20)); + + ACE_RAIN_PARAMS = [_lastRain, GVAR(current_rain), _transitionTime]; + TRACE_4("",_lastRain,_rainOverCast,_transitionTime,overcast); + + GVAR(rain_period_start_time) = time; + publicVariable "ACE_RAIN_PARAMS"; +}; + +// Wind simulation +if (GVAR(syncWind) && GVAR(wind_period_count) > GVAR(wind_next_period)) then { + + GVAR(wind_next_period) = ceil((2 + (random 5)) / _overcastMultiplier); + GVAR(wind_period_count) = 0; + + _windDirectionVariance = (90 - (random 180)) * (overcast ^ 2); + _windDirection = (360 + GVAR(wind_direction_reference) + _windDirectionVariance) % 360; + _windDirectionChange = _windDirection - GVAR(current_wind_direction); + if (_windDirectionChange > 180) then { + _windDirectionChange = _windDirectionChange - 360; + }; + if (_windDirectionChange < -180) then { + _windDirectionChange = 360 + _windDirectionChange; + }; + + _windMaxDiff = GVAR(mean_wind_speed) - GVAR(max_wind_speed); + _windMinDiff = GVAR(min_wind_speed) - GVAR(mean_wind_speed); + + _ratioMax = (random 1) ^ 2; + _ratioMin = (random 1) ^ 2; + + _windSpeed = GVAR(current_wind_speed); + _windSpeedChange = 0; + if ((random 1) < (0.3 max overcast)) then { + _windSpeed = GVAR(mean_wind_speed) + _windMaxDiff * _ratioMax + _windMinDiff * _ratioMin; + _windSpeedChange = _windSpeed - GVAR(current_wind_speed); + }; + + _transitionTime = GVAR(wind_next_period) * GVAR(serverUpdateInterval); + + TRACE_5("dirCur/dirNew/spdCur/spdNew/period",GVAR(current_wind_direction),_windDirection,GVAR(current_wind_speed),_windSpeed,_transitionTime); + + ACE_WIND_PARAMS = [GVAR(current_wind_direction), + _windDirectionChange, + GVAR(current_wind_speed), + _windSpeedChange, + _transitionTime]; + + GVAR(current_wind_direction) = _windDirection; + GVAR(current_wind_speed) = _windSpeed; + + GVAR(wind_period_start_time) = time; + publicVariable "ACE_WIND_PARAMS"; +}; + + +if (GVAR(syncMisc)) then { + ACE_MISC_PARAMS = [lightnings, rainbow, fogParams, GVAR(temperatureShift), GVAR(badWeatherShift), GVAR(humidityShift)]; + publicVariable "ACE_MISC_PARAMS"; +}; + +GVAR(rain_period_count) = GVAR(rain_period_count) + 1; +GVAR(wind_period_count) = GVAR(wind_period_count) + 1; \ No newline at end of file From 04d3a31b5bda2348408dd455ecd07eaf1f7bc32c Mon Sep 17 00:00:00 2001 From: ulteq Date: Mon, 27 Apr 2015 12:34:21 +0200 Subject: [PATCH 183/256] Fixed a typo --- addons/weather/functions/fnc_serverController.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/weather/functions/fnc_serverController.sqf b/addons/weather/functions/fnc_serverController.sqf index d5878fd1aa..2cbdeb581e 100644 --- a/addons/weather/functions/fnc_serverController.sqf +++ b/addons/weather/functions/fnc_serverController.sqf @@ -23,7 +23,7 @@ if (GVAR(useACEWeather)) then { publicVariable "ACE_RAIN_PARAMS"; }; if (GVAR(syncWind)) then { - ACE_WIND_PARAMS = [wind call CBA_fnc_vectDir, 0, wind, 0, GVAR(serverUpdateInterval)]; + ACE_WIND_PARAMS = [wind call CBA_fnc_vectDir, 0, vectorMagnitude wind, 0, GVAR(serverUpdateInterval)]; publicVariable "ACE_WIND_PARAMS"; }; if (GVAR(syncMisc)) then { From 1b5756d33c3a6d09452aa08a361d47bfa7784520 Mon Sep 17 00:00:00 2001 From: ulteq Date: Mon, 27 Apr 2015 12:47:26 +0200 Subject: [PATCH 184/256] Added weather update interval module setting --- addons/weather/ACE_Settings.hpp | 6 ++++++ addons/weather/CfgVehicles.hpp | 6 ++++++ addons/weather/XEH_postServerInit.sqf | 2 -- addons/weather/functions/fnc_initModuleSettings.sqf | 5 +++++ 4 files changed, 17 insertions(+), 2 deletions(-) diff --git a/addons/weather/ACE_Settings.hpp b/addons/weather/ACE_Settings.hpp index 14e36983f8..d4b5a716cf 100644 --- a/addons/weather/ACE_Settings.hpp +++ b/addons/weather/ACE_Settings.hpp @@ -29,4 +29,10 @@ class ACE_Settings { typeName = "BOOL"; value = 1; }; + class GVAR(serverUpdateInterval) { + displayName = "Update Interval"; + description = "Defines the interval (seconds) between weather updates"; + typeName = "SCALAR"; + value = 60; + }; }; diff --git a/addons/weather/CfgVehicles.hpp b/addons/weather/CfgVehicles.hpp index 7a794bdda0..3de925e446 100644 --- a/addons/weather/CfgVehicles.hpp +++ b/addons/weather/CfgVehicles.hpp @@ -41,6 +41,12 @@ class CfgVehicles { typeName = "BOOL"; defaultValue = 1; }; + class serverUpdateInterval { + displayName = "Update Interval"; + description = "Defines the interval (seconds) between weather updates"; + typeName = "NUMBER"; + defaultValue = 60; + }; }; }; }; diff --git a/addons/weather/XEH_postServerInit.sqf b/addons/weather/XEH_postServerInit.sqf index 9941cb20b4..5704212b79 100644 --- a/addons/weather/XEH_postServerInit.sqf +++ b/addons/weather/XEH_postServerInit.sqf @@ -9,6 +9,4 @@ GVAR(rain_current_range) = -1+(random 2); // Wind call FUNC(initWind); -GVAR(serverUpdateInterval) = 60; - [FUNC(serverController), GVAR(serverUpdateInterval)] call cba_fnc_addPerFrameHandler; diff --git a/addons/weather/functions/fnc_initModuleSettings.sqf b/addons/weather/functions/fnc_initModuleSettings.sqf index 29bfb7e16d..eb0eaafc31 100644 --- a/addons/weather/functions/fnc_initModuleSettings.sqf +++ b/addons/weather/functions/fnc_initModuleSettings.sqf @@ -32,3 +32,8 @@ if !(_activated) exitWith {}; [_logic, QGVAR(syncRain), "syncRain"] call EFUNC(common,readSettingFromModule); [_logic, QGVAR(syncWind), "syncWind"] call EFUNC(common,readSettingFromModule); // Wind, Gusts, Waves [_logic, QGVAR(syncMisc), "syncMisc"] call EFUNC(common,readSettingFromModule); // Lightnings, Rainbow, Fog + +// Server weather update interval +[_logic, QGVAR(serverUpdateInterval), "serverUpdateInterval"] call EFUNC(common,readSettingFromModule); + +GVAR(serverUpdateInterval) = 1 max GVAR(serverUpdateInterval) min 600; \ No newline at end of file From a13cc6b886c923b65bf6282bf0d21b40cc79fb16 Mon Sep 17 00:00:00 2001 From: ulteq Date: Mon, 27 Apr 2015 12:58:55 +0200 Subject: [PATCH 185/256] Added weather module setting documentation --- documentation/missionmaker/modules.md | 28 ++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/documentation/missionmaker/modules.md b/documentation/missionmaker/modules.md index 239f1db789..186e99ece4 100644 --- a/documentation/missionmaker/modules.md +++ b/documentation/missionmaker/modules.md @@ -236,7 +236,33 @@ The safe zone around players from a different team (in meters)
### 1.13 LSD Vehicles *Part of: ace_core* -### 1.14 Wind Deflection +### 1.14 Weather +*Part of: ace_weather* + +This module allows you to customize the weather settings. + +**Settings:** + +1. **Weather propagation (Boolean)
** +Enables sever side weather propagation.
+`Default value: Yes` +2. **ACE Weather (Boolean)
** +Overrides the default weather (editor, mission settings) with ACE weather (map based).
+`Default value: Yes` +3. **Sync Rain (Boolean)
** +Synchronizes rain.
+`Default value: Yes` +3. **Sync Wind (Boolean)
** +Synchronizes wind.
+`Default value: Yes` +3. **Sync Misc (Boolean)
** +Synchronizes lightnings, rainbow, fog, ...
+`Default value: Yes` +4. **Update Interval (Number)
** +Defines the interval (seconds) between weather updates.
+`Default value: 60` + +### 1.15 Wind Deflection *Part of: ace_winddeflection* This module allows you to define when wind deflection is active. From 4ebdd88369dcb736618cdb0eef28ba31e5cbda98 Mon Sep 17 00:00:00 2001 From: Brisse89 Date: Mon, 27 Apr 2015 13:55:50 +0200 Subject: [PATCH 186/256] Less fictional weapon names ACP-C2 -> Custom Covert II KT2002 Katiba -> KH2002 Khaybar --- addons/realisticnames/stringtable.xml | 64 +++++++++++++-------------- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/addons/realisticnames/stringtable.xml b/addons/realisticnames/stringtable.xml index 5e9aaa701d..e3ebea3236 100644 --- a/addons/realisticnames/stringtable.xml +++ b/addons/realisticnames/stringtable.xml @@ -1062,14 +1062,14 @@ МР-443 "Грач"
- ACP-C2 - ACP-C2 - ACP-C2 - ACP-C2 - ACP-C2 - ACP-C2 - ACP-C2 - ACP-C2 + Custom Covert II + Custom Covert II + Custom Covert II + Custom Covert II + Custom Covert II + Custom Covert II + Custom Covert II + Custom Covert II FNX-45 Tactical @@ -1242,34 +1242,34 @@ MXM (черный) - KT2002 Katiba - KT2002 Katiba - KT2002 Katiba - KT2002 Katiba - KT2002 Katiba - KT2002 Katiba - KT2002 Katiba - KT2002 Катиба + KH2002 Khaybar + KH2002 Khaybar + KH2002 Khaybar + KH2002 Khaybar + KH2002 Khaybar + KH2002 Khaybar + KH2002 Khaybar + KH2002 Хайбаре - KT2002C Katiba - KT2002C Katiba - KT2002C Katiba - KT2002C Katiba - KT2002C Katiba - KT2002C Katiba - KT2002C Katiba - KT2002C Катиба + KH2002C Khaybar + KH2002C Khaybar + KH2002C Khaybar + KH2002C Khaybar + KH2002C Khaybar + KH2002C Khaybar + KH2002C Khaybar + KH2002C Хайбаре - KT2002 Katiba KGL - KT2002 Katiba KGL - KT2002 Katiba KGL - KT2002 Katiba KGL - KT2002 Katiba KGL - KT2002 Katiba KGL - KT2002 Katiba KGL - KT2002 Катиба KGL + KH2002 Khaybar KGL + KH2002 Khaybar KGL + KH2002 Khaybar KGL + KH2002 Khaybar KGL + KH2002 Khaybar KGL + KH2002 Khaybar KGL + KH2002 Khaybar KGL + KH2002 Хайбаре KGL F2000 (Camo) From 26bd75084d36b71558bfd5ca9487a4ad45867f10 Mon Sep 17 00:00:00 2001 From: Brisse89 Date: Mon, 27 Apr 2015 14:56:57 +0200 Subject: [PATCH 187/256] Update stringtable.xml Khaybar -> Sama --- addons/realisticnames/stringtable.xml | 48 +++++++++++++-------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/addons/realisticnames/stringtable.xml b/addons/realisticnames/stringtable.xml index e3ebea3236..2966251ec6 100644 --- a/addons/realisticnames/stringtable.xml +++ b/addons/realisticnames/stringtable.xml @@ -1242,34 +1242,34 @@ MXM (черный) - KH2002 Khaybar - KH2002 Khaybar - KH2002 Khaybar - KH2002 Khaybar - KH2002 Khaybar - KH2002 Khaybar - KH2002 Khaybar - KH2002 Хайбаре + KH2002 Sama + KH2002 Sama + KH2002 Sama + KH2002 Sama + KH2002 Sama + KH2002 Sama + KH2002 Sama + KH2002 Сама - KH2002C Khaybar - KH2002C Khaybar - KH2002C Khaybar - KH2002C Khaybar - KH2002C Khaybar - KH2002C Khaybar - KH2002C Khaybar - KH2002C Хайбаре + KH2002C Sama + KH2002C Sama + KH2002C Sama + KH2002C Sama + KH2002C Sama + KH2002C Sama + KH2002C Sama + KH2002C Сама - KH2002 Khaybar KGL - KH2002 Khaybar KGL - KH2002 Khaybar KGL - KH2002 Khaybar KGL - KH2002 Khaybar KGL - KH2002 Khaybar KGL - KH2002 Khaybar KGL - KH2002 Хайбаре KGL + KH2002 Sama KGL + KH2002 Sama KGL + KH2002 Sama KGL + KH2002 Sama KGL + KH2002 Sama KGL + KH2002 Sama KGL + KH2002 Sama KGL + KH2002 Сама KGL F2000 (Camo) From 40c3bf0f819a6121f3c3706aa6d37cca53801efd Mon Sep 17 00:00:00 2001 From: ulteq Date: Mon, 27 Apr 2015 15:16:42 +0200 Subject: [PATCH 188/256] Added RHS AFRF/USAF compatibility config --- optionals/compat_rhs_afrf3/CfgAmmo.hpp | 125 ++++++++++++++++++ optionals/compat_rhs_afrf3/CfgWeapons.hpp | 58 ++++++++ optionals/compat_rhs_afrf3/config.cpp | 15 +++ .../compat_rhs_afrf3/script_component.hpp | 5 + optionals/compat_rhs_usf3/CfgAmmo.hpp | 97 ++++++++++++++ optionals/compat_rhs_usf3/CfgWeapons.hpp | 73 ++++++++++ optionals/compat_rhs_usf3/config.cpp | 15 +++ .../compat_rhs_usf3/script_component.hpp | 5 + 8 files changed, 393 insertions(+) create mode 100644 optionals/compat_rhs_afrf3/CfgAmmo.hpp create mode 100644 optionals/compat_rhs_afrf3/CfgWeapons.hpp create mode 100644 optionals/compat_rhs_afrf3/config.cpp create mode 100644 optionals/compat_rhs_afrf3/script_component.hpp create mode 100644 optionals/compat_rhs_usf3/CfgAmmo.hpp create mode 100644 optionals/compat_rhs_usf3/CfgWeapons.hpp create mode 100644 optionals/compat_rhs_usf3/config.cpp create mode 100644 optionals/compat_rhs_usf3/script_component.hpp diff --git a/optionals/compat_rhs_afrf3/CfgAmmo.hpp b/optionals/compat_rhs_afrf3/CfgAmmo.hpp new file mode 100644 index 0000000000..fec7eca805 --- /dev/null +++ b/optionals/compat_rhs_afrf3/CfgAmmo.hpp @@ -0,0 +1,125 @@ + +class CfgAmmo +{ + class BulletBase; + class B_556x45_Ball; + class rhs_B_545x39_Ball: B_556x45_Ball + { + ACE_caliber=0.220; + ACE_bulletLength=0.85; + ACE_bulletMass=52.9; + ACE_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + ACE_ballisticCoefficients[]={0.168}; + ACE_velocityBoundaries[]={}; + ACE_standardAtmosphere="ASM"; + ACE_dragModel=7; + ACE_muzzleVelocities[]={780, 880, 920}; + ACE_barrelLengths[]={10, 16.3, 20}; + }; + class rhs_B_545x39_Ball_Tracer_Green: rhs_B_545x39_Ball + { + ACE_caliber=0.220; + ACE_bulletLength=0.85; + ACE_bulletMass=49.8; + ACE_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + ACE_ballisticCoefficients[]={0.168}; + ACE_velocityBoundaries[]={}; + ACE_standardAtmosphere="ASM"; + ACE_dragModel=7; + ACE_muzzleVelocities[]={785, 883, 925}; + ACE_barrelLengths[]={10, 16.3, 20}; + }; + class B_762x51_Ball; + class rhs_B_762x54_Ball: B_762x51_Ball + { + ACE_caliber=0.312; + ACE_bulletLength=1.14; + ACE_bulletMass=152; + ACE_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + ACE_ballisticCoefficients[]={0.4}; + ACE_velocityBoundaries[]={}; + ACE_standardAtmosphere="ICAO"; + ACE_dragModel=1; + ACE_muzzleVelocities[]={700, 800, 820, 833}; + ACE_barrelLengths[]={16, 20, 24, 26}; + }; + class rhs_B_762x54_Ball_Tracer_Green: B_762x51_Ball + { + ACE_caliber=0.312; + ACE_bulletLength=1.14; + ACE_bulletMass=149; + ACE_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + ACE_ballisticCoefficients[]={0.395}; + ACE_velocityBoundaries[]={}; + ACE_standardAtmosphere="ICAO"; + ACE_dragModel=1; + ACE_muzzleVelocities[]={680, 750, 798, 800}; + ACE_barrelLengths[]={16, 20, 24, 26}; + }; + class rhs_B_762x54_7N1_Ball: rhs_B_762x54_Ball + { + ACE_caliber=0.312; + ACE_bulletLength=1.14; + ACE_bulletMass=152; + ACE_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + ACE_ballisticCoefficients[]={0.4}; + ACE_velocityBoundaries[]={}; + ACE_standardAtmosphere="ICAO"; + ACE_dragModel=1; + ACE_muzzleVelocities[]={700, 800, 820, 833}; + ACE_barrelLengths[]={16, 20, 24, 26}; + }; + class rhs_B_762x39_Ball: B_762x51_Ball + { + ACE_caliber=0.308; + ACE_bulletLength=1.14; + ACE_bulletMass=123; + ACE_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + ACE_ballisticCoefficients[]={0.275}; + ACE_velocityBoundaries[]={}; + ACE_standardAtmosphere="ICAO"; + ACE_dragModel=1; + ACE_muzzleVelocities[]={650, 716, 750}; + ACE_barrelLengths[]={10, 16.3, 20}; + }; + class rhs_B_762x39_Tracer: rhs_B_762x39_Ball + { + ACE_caliber=0.308; + ACE_bulletLength=1.14; + ACE_bulletMass=117; + ACE_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + ACE_ballisticCoefficients[]={0.275}; + ACE_velocityBoundaries[]={}; + ACE_standardAtmosphere="ICAO"; + ACE_dragModel=1; + ACE_muzzleVelocities[]={650, 716, 750}; + ACE_barrelLengths[]={10, 16.3, 20}; + }; + class B_9x21_Ball; + class rhs_B_9x19_7N21: B_9x21_Ball + { + ACE_caliber=0.355; + ACE_bulletLength=0.610; + ACE_bulletMass=80.2; + ACE_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619}; + ACE_ballisticCoefficients[]={0.14}; + ACE_velocityBoundaries[]={}; + ACE_standardAtmosphere="ASM"; + ACE_dragModel=1; + ACE_muzzleVelocities[]={445, 460, 480}; + ACE_barrelLengths[]={4, 5, 9}; + }; + class rhs_B_9x18_57N181S: B_9x21_Ball + { + ACE_caliber=0.365; + ACE_bulletLength=0.610; + ACE_bulletMass=92.6; + ACE_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619}; + ACE_ballisticCoefficients[]={0.125}; + ACE_velocityBoundaries[]={}; + ACE_standardAtmosphere="ICAO"; + ACE_dragModel=1; + ACE_muzzleVelocities[]={298, 330, 350}; + ACE_barrelLengths[]={3.8, 5, 9}; + }; +}; \ No newline at end of file diff --git a/optionals/compat_rhs_afrf3/CfgWeapons.hpp b/optionals/compat_rhs_afrf3/CfgWeapons.hpp new file mode 100644 index 0000000000..1d9e9f23a1 --- /dev/null +++ b/optionals/compat_rhs_afrf3/CfgWeapons.hpp @@ -0,0 +1,58 @@ + +class CfgWeapons +{ + class hgun_Rook40_F; + class rhs_weap_pya: hgun_Rook40_F + { + ACE_barrelTwist=10; + ACE_barrelLength=4.4; + }; + class Pistol_Base_F; + class rhs_weap_makarov_pmm: rhs_weap_pya + { + ACE_barrelTwist=9.45; + ACE_barrelLength=3.68; + }; + class rhs_weap_ak74m_Base_F; + class rhs_weap_ak74m: rhs_weap_ak74m_Base_F + { + ACE_barrelTwist=7.87; + ACE_barrelLength=16.3; + }; + class rhs_weap_akm: rhs_weap_ak74m + { + ACE_barrelTwist=7.87; + ACE_barrelLength=16.3; + }; + class rhs_weap_aks74u: rhs_weap_aks74 + { + ACE_barrelTwist=6.3; + ACE_barrelLength=8.3; + }; + class rhs_weap_svd: rhs_weap_ak74m + { + ACE_barrelTwist=9.4; + ACE_barrelLength=24.4; + }; + class rhs_weap_svds: rhs_weap_svdp + { + ACE_barrelTwist=9.4; + ACE_barrelLength=22.2; + }; + class rhs_pkp_base; + class rhs_weap_pkp: rhs_pkp_base + { + ACE_barrelTwist=9.45; + ACE_barrelLength=25.9; + }; + class rhs_weap_pkm: rhs_weap_pkp + { + ACE_barrelTwist=9.45; + ACE_barrelLength=25.4; + }; + class rhs_weap_rpk74m: rhs_weap_pkp + { + ACE_barrelTwist=7.68; + ACE_barrelLength=23.2; + }; +}; \ No newline at end of file diff --git a/optionals/compat_rhs_afrf3/config.cpp b/optionals/compat_rhs_afrf3/config.cpp new file mode 100644 index 0000000000..8b7f9d5ca4 --- /dev/null +++ b/optionals/compat_rhs_afrf3/config.cpp @@ -0,0 +1,15 @@ +#include "script_component.hpp" + +class CfgPatches { + class ADDON { + units[] = {}; + weapons[] = {}; + requiredVersion = REQUIRED_VERSION; + requiredAddons[] = {"rhs_c_weapons"}; + author[]={"Ruthberg"}; + VERSION_CONFIG; + }; +}; + +#include "CfgAmmo.hpp" +#include "CfgWeapons.hpp" diff --git a/optionals/compat_rhs_afrf3/script_component.hpp b/optionals/compat_rhs_afrf3/script_component.hpp new file mode 100644 index 0000000000..edf3963b1f --- /dev/null +++ b/optionals/compat_rhs_afrf3/script_component.hpp @@ -0,0 +1,5 @@ +#define COMPONENT rhs_c_weapons_comp + +#include "\z\ace\addons\main\script_mod.hpp" + +#include "\z\ace\addons\main\script_macros.hpp" diff --git a/optionals/compat_rhs_usf3/CfgAmmo.hpp b/optionals/compat_rhs_usf3/CfgAmmo.hpp new file mode 100644 index 0000000000..bf12ca3313 --- /dev/null +++ b/optionals/compat_rhs_usf3/CfgAmmo.hpp @@ -0,0 +1,97 @@ + +class CfgAmmo +{ + class BulletBase; + class rhsusf_B_300winmag: BulletBase + { + ACE_caliber=0.308; + ACE_bulletLength=1.489; + ACE_bulletMass=220; + ACE_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + ACE_ballisticCoefficients[]={0.310}; + ACE_velocityBoundaries[]={}; + ACE_standardAtmosphere="ICAO"; + ACE_dragModel=7; + ACE_muzzleVelocities[]={847, 867, 877}; + ACE_barrelLengths[]={20, 24, 26}; + }; + class B_556x45_Ball; + class rhs_ammo_556x45_Mk318_Ball: B_556x45_Ball + { + ACE_caliber=0.224; + ACE_bulletLength=0.906; + ACE_bulletMass=62; + ACE_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + ACE_ballisticCoefficients[]={0.307}; + ACE_velocityBoundaries[]={}; + ACE_standardAtmosphere="ASM"; + ACE_dragModel=1; + ACE_muzzleVelocities[]={780, 886, 950}; + ACE_barrelLengths[]={10, 15.5, 20}; + }; + class rhs_ammo_556x45_Mk262_Ball: B_556x45_Ball + { + ACE_caliber=0.224; + ACE_bulletLength=0.906; + ACE_bulletMass=77; + ACE_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + ACE_ballisticCoefficients[]={0.361}; + ACE_velocityBoundaries[]={}; + ACE_standardAtmosphere="ASM"; + ACE_dragModel=1; + ACE_muzzleVelocities[]={624, 816, 832, 838}; + ACE_barrelLengths[]={7.5, 14.5, 18, 20}; + }; + class rhs_ammo_762x51_M80_Ball: BulletBase + { + ACE_caliber=0.308; + ACE_bulletLength=1.14; + ACE_bulletMass=146; + ACE_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + ACE_ballisticCoefficients[]={0.2}; + ACE_velocityBoundaries[]={}; + ACE_standardAtmosphere="ICAO"; + ACE_dragModel=7; + ACE_muzzleVelocities[]={700, 800, 820, 833, 845}; + ACE_barrelLengths[]={10, 16, 20, 24, 26}; + }; + class rhs_ammo_762x51_M118_Special_Ball: rhs_ammo_762x51_M80_Ball + { + ACE_caliber=0.308; + ACE_bulletLength=1.24; + ACE_bulletMass=175; + ACE_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + ACE_ballisticCoefficients[]={0.243}; + ACE_velocityBoundaries[]={}; + ACE_standardAtmosphere="ICAO"; + ACE_dragModel=7; + ACE_muzzleVelocities[]={750, 780, 790, 794}; + ACE_barrelLengths[]={16, 20, 24, 26}; + }; + class rhs_ammo_762x51_M993_Ball: rhs_ammo_762x51_M80_Ball + { + ACE_caliber=0.308; + ACE_bulletLength=1.24; + ACE_bulletMass=127; + ACE_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + ACE_ballisticCoefficients[]={0.377}; + ACE_velocityBoundaries[]={}; + ACE_standardAtmosphere="ICAO"; + ACE_dragModel=1; + ACE_muzzleVelocities[]={875, 910, 930}; + ACE_barrelLengths[]={13, 16, 20}; + }; + class rhs_ammo_45ACP_MHP: BulletBase + { + ACE_caliber=0.452; + ACE_bulletLength=0.68; + ACE_bulletMass=230; + ACE_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619}; + ACE_ballisticCoefficients[]={0.195}; + ACE_velocityBoundaries[]={}; + ACE_standardAtmosphere="ASM"; + ACE_dragModel=1; + ACE_muzzleVelocities[]={230, 250, 285}; + ACE_barrelLengths[]={4, 5, 9}; + }; +}; \ No newline at end of file diff --git a/optionals/compat_rhs_usf3/CfgWeapons.hpp b/optionals/compat_rhs_usf3/CfgWeapons.hpp new file mode 100644 index 0000000000..c6b4d08653 --- /dev/null +++ b/optionals/compat_rhs_usf3/CfgWeapons.hpp @@ -0,0 +1,73 @@ + +class CfgWeapons +{ + class Pistol_Base_F; + class Rifle_Base_F; + class srifle_EBR_F; + class rhs_weap_XM2010_Base_F: Rifle_Base_F + { + ACE_barrelTwist=10; + ACE_barrelLength=24; + }; + class arifle_MX_Base_F; + class rhs_weap_m4_Base: arifle_MX_Base_F + { + ACE_barrelTwist=7; + ACE_barrelLength=14.5; + }; + class rhs_weap_mk18: rhs_weap_m4a1 + { + ACE_barrelTwist=7; + ACE_barrelLength=10.3; + }; + class rhs_weap_m16a4: rhs_weap_m4_Base + { + ACE_barrelTwist=7; + ACE_barrelLength=20; + }; + class rhs_M249_base; + class rhs_weap_m249_pip: rhs_M249_base + { + ACE_barrelTwist=7; + ACE_barrelLength=16.3; + }; + class weap_m240_base; + class rhs_weap_m240B: weap_m240_base + { + ACE_barrelTwist=12; + ACE_barrelLength=24.8; + }; + class rhs_weap_m14ebrri: srifle_EBR_F + { + ACE_barrelTwist=12; + ACE_barrelLength=22; + }; + class rhs_weap_sr25: rhs_weap_m14ebrri + { + ACE_barrelTwist=11.25; + ACE_barrelLength=24; + }; + class rhs_weap_sr25_ec: rhs_weap_sr25 + { + ACE_barrelTwist=11.25; + ACE_barrelLength=20; + }; + class rhs_weap_M590_5RD: Rifle_Base_F + { + ACE_barrelTwist=0; + ACE_twistDirection=0; + ACE_barrelLength=18.5; + }; + class rhs_weap_M590_8RD: rhs_weap_M590_5RD + { + ACE_barrelTwist=0; + ACE_twistDirection=0; + ACE_barrelLength=20; + }; + class hgun_ACPC2_F; + class rhsusf_weap_m1911a1: hgun_ACPC2_F + { + ACE_barrelTwist=16; + ACE_barrelLength=5; + }; +}; \ No newline at end of file diff --git a/optionals/compat_rhs_usf3/config.cpp b/optionals/compat_rhs_usf3/config.cpp new file mode 100644 index 0000000000..bc4d264697 --- /dev/null +++ b/optionals/compat_rhs_usf3/config.cpp @@ -0,0 +1,15 @@ +#include "script_component.hpp" + +class CfgPatches { + class ADDON { + units[] = {}; + weapons[] = {}; + requiredVersion = REQUIRED_VERSION; + requiredAddons[] = {"rhsusf_c_weapons"}; + author[]={"Ruthberg"}; + VERSION_CONFIG; + }; +}; + +#include "CfgAmmo.hpp" +#include "CfgWeapons.hpp" diff --git a/optionals/compat_rhs_usf3/script_component.hpp b/optionals/compat_rhs_usf3/script_component.hpp new file mode 100644 index 0000000000..c0a5bbf1f4 --- /dev/null +++ b/optionals/compat_rhs_usf3/script_component.hpp @@ -0,0 +1,5 @@ +#define COMPONENT rhsusf_c_weapons_comp + +#include "\z\ace\addons\main\script_mod.hpp" + +#include "\z\ace\addons\main\script_macros.hpp" From e6e87651346ccd3468172d250e3c059282ab14ca Mon Sep 17 00:00:00 2001 From: Dimas Date: Mon, 27 Apr 2015 15:27:51 +0200 Subject: [PATCH 189/256] Update AUTHORS.txt Added myself --- AUTHORS.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS.txt b/AUTHORS.txt index dc8fb27130..17ae9dd7c0 100644 --- a/AUTHORS.txt +++ b/AUTHORS.txt @@ -84,3 +84,4 @@ Asgar Serran Kavinsky Coren OnkelDisMaster +Dimaslg From 44932e4fec78b9e480f4997636328084d5852728 Mon Sep 17 00:00:00 2001 From: ulteq Date: Mon, 27 Apr 2015 15:46:49 +0200 Subject: [PATCH 190/256] Added missing base classes --- optionals/compat_rhs_afrf3/CfgWeapons.hpp | 2 ++ optionals/compat_rhs_usf3/CfgWeapons.hpp | 1 + 2 files changed, 3 insertions(+) diff --git a/optionals/compat_rhs_afrf3/CfgWeapons.hpp b/optionals/compat_rhs_afrf3/CfgWeapons.hpp index 1d9e9f23a1..ea10b518d7 100644 --- a/optionals/compat_rhs_afrf3/CfgWeapons.hpp +++ b/optionals/compat_rhs_afrf3/CfgWeapons.hpp @@ -24,6 +24,7 @@ class CfgWeapons ACE_barrelTwist=7.87; ACE_barrelLength=16.3; }; + class rhs_weap_aks74; class rhs_weap_aks74u: rhs_weap_aks74 { ACE_barrelTwist=6.3; @@ -34,6 +35,7 @@ class CfgWeapons ACE_barrelTwist=9.4; ACE_barrelLength=24.4; }; + class rhs_weap_svdp; class rhs_weap_svds: rhs_weap_svdp { ACE_barrelTwist=9.4; diff --git a/optionals/compat_rhs_usf3/CfgWeapons.hpp b/optionals/compat_rhs_usf3/CfgWeapons.hpp index c6b4d08653..ab1ae0029a 100644 --- a/optionals/compat_rhs_usf3/CfgWeapons.hpp +++ b/optionals/compat_rhs_usf3/CfgWeapons.hpp @@ -15,6 +15,7 @@ class CfgWeapons ACE_barrelTwist=7; ACE_barrelLength=14.5; }; + class rhs_weap_m4a1; class rhs_weap_mk18: rhs_weap_m4a1 { ACE_barrelTwist=7; From 0f4a95fddd9274455159bae11f3e80ccd9f5b015 Mon Sep 17 00:00:00 2001 From: ulteq Date: Mon, 27 Apr 2015 15:48:53 +0200 Subject: [PATCH 191/256] Replaced TABs with Spaces --- optionals/compat_rhs_afrf3/CfgAmmo.hpp | 62 ++++++++-------- optionals/compat_rhs_afrf3/CfgWeapons.hpp | 68 +++++++++--------- optionals/compat_rhs_usf3/CfgAmmo.hpp | 46 ++++++------ optionals/compat_rhs_usf3/CfgWeapons.hpp | 86 +++++++++++------------ 4 files changed, 131 insertions(+), 131 deletions(-) diff --git a/optionals/compat_rhs_afrf3/CfgAmmo.hpp b/optionals/compat_rhs_afrf3/CfgAmmo.hpp index fec7eca805..323634f02c 100644 --- a/optionals/compat_rhs_afrf3/CfgAmmo.hpp +++ b/optionals/compat_rhs_afrf3/CfgAmmo.hpp @@ -1,10 +1,10 @@ class CfgAmmo { - class BulletBase; - class B_556x45_Ball; - class rhs_B_545x39_Ball: B_556x45_Ball - { + class BulletBase; + class B_556x45_Ball; + class rhs_B_545x39_Ball: B_556x45_Ball + { ACE_caliber=0.220; ACE_bulletLength=0.85; ACE_bulletMass=52.9; @@ -15,9 +15,9 @@ class CfgAmmo ACE_dragModel=7; ACE_muzzleVelocities[]={780, 880, 920}; ACE_barrelLengths[]={10, 16.3, 20}; - }; - class rhs_B_545x39_Ball_Tracer_Green: rhs_B_545x39_Ball - { + }; + class rhs_B_545x39_Ball_Tracer_Green: rhs_B_545x39_Ball + { ACE_caliber=0.220; ACE_bulletLength=0.85; ACE_bulletMass=49.8; @@ -28,10 +28,10 @@ class CfgAmmo ACE_dragModel=7; ACE_muzzleVelocities[]={785, 883, 925}; ACE_barrelLengths[]={10, 16.3, 20}; - }; - class B_762x51_Ball; - class rhs_B_762x54_Ball: B_762x51_Ball - { + }; + class B_762x51_Ball; + class rhs_B_762x54_Ball: B_762x51_Ball + { ACE_caliber=0.312; ACE_bulletLength=1.14; ACE_bulletMass=152; @@ -42,9 +42,9 @@ class CfgAmmo ACE_dragModel=1; ACE_muzzleVelocities[]={700, 800, 820, 833}; ACE_barrelLengths[]={16, 20, 24, 26}; - }; - class rhs_B_762x54_Ball_Tracer_Green: B_762x51_Ball - { + }; + class rhs_B_762x54_Ball_Tracer_Green: B_762x51_Ball + { ACE_caliber=0.312; ACE_bulletLength=1.14; ACE_bulletMass=149; @@ -55,9 +55,9 @@ class CfgAmmo ACE_dragModel=1; ACE_muzzleVelocities[]={680, 750, 798, 800}; ACE_barrelLengths[]={16, 20, 24, 26}; - }; - class rhs_B_762x54_7N1_Ball: rhs_B_762x54_Ball - { + }; + class rhs_B_762x54_7N1_Ball: rhs_B_762x54_Ball + { ACE_caliber=0.312; ACE_bulletLength=1.14; ACE_bulletMass=152; @@ -68,9 +68,9 @@ class CfgAmmo ACE_dragModel=1; ACE_muzzleVelocities[]={700, 800, 820, 833}; ACE_barrelLengths[]={16, 20, 24, 26}; - }; - class rhs_B_762x39_Ball: B_762x51_Ball - { + }; + class rhs_B_762x39_Ball: B_762x51_Ball + { ACE_caliber=0.308; ACE_bulletLength=1.14; ACE_bulletMass=123; @@ -81,9 +81,9 @@ class CfgAmmo ACE_dragModel=1; ACE_muzzleVelocities[]={650, 716, 750}; ACE_barrelLengths[]={10, 16.3, 20}; - }; - class rhs_B_762x39_Tracer: rhs_B_762x39_Ball - { + }; + class rhs_B_762x39_Tracer: rhs_B_762x39_Ball + { ACE_caliber=0.308; ACE_bulletLength=1.14; ACE_bulletMass=117; @@ -94,10 +94,10 @@ class CfgAmmo ACE_dragModel=1; ACE_muzzleVelocities[]={650, 716, 750}; ACE_barrelLengths[]={10, 16.3, 20}; - }; - class B_9x21_Ball; - class rhs_B_9x19_7N21: B_9x21_Ball - { + }; + class B_9x21_Ball; + class rhs_B_9x19_7N21: B_9x21_Ball + { ACE_caliber=0.355; ACE_bulletLength=0.610; ACE_bulletMass=80.2; @@ -108,9 +108,9 @@ class CfgAmmo ACE_dragModel=1; ACE_muzzleVelocities[]={445, 460, 480}; ACE_barrelLengths[]={4, 5, 9}; - }; - class rhs_B_9x18_57N181S: B_9x21_Ball - { + }; + class rhs_B_9x18_57N181S: B_9x21_Ball + { ACE_caliber=0.365; ACE_bulletLength=0.610; ACE_bulletMass=92.6; @@ -121,5 +121,5 @@ class CfgAmmo ACE_dragModel=1; ACE_muzzleVelocities[]={298, 330, 350}; ACE_barrelLengths[]={3.8, 5, 9}; - }; + }; }; \ No newline at end of file diff --git a/optionals/compat_rhs_afrf3/CfgWeapons.hpp b/optionals/compat_rhs_afrf3/CfgWeapons.hpp index ea10b518d7..880b9f791f 100644 --- a/optionals/compat_rhs_afrf3/CfgWeapons.hpp +++ b/optionals/compat_rhs_afrf3/CfgWeapons.hpp @@ -1,60 +1,60 @@ class CfgWeapons { - class hgun_Rook40_F; - class rhs_weap_pya: hgun_Rook40_F - { + class hgun_Rook40_F; + class rhs_weap_pya: hgun_Rook40_F + { ACE_barrelTwist=10; ACE_barrelLength=4.4; - }; - class Pistol_Base_F; - class rhs_weap_makarov_pmm: rhs_weap_pya - { + }; + class Pistol_Base_F; + class rhs_weap_makarov_pmm: rhs_weap_pya + { ACE_barrelTwist=9.45; ACE_barrelLength=3.68; - }; - class rhs_weap_ak74m_Base_F; - class rhs_weap_ak74m: rhs_weap_ak74m_Base_F - { + }; + class rhs_weap_ak74m_Base_F; + class rhs_weap_ak74m: rhs_weap_ak74m_Base_F + { ACE_barrelTwist=7.87; ACE_barrelLength=16.3; - }; - class rhs_weap_akm: rhs_weap_ak74m - { + }; + class rhs_weap_akm: rhs_weap_ak74m + { ACE_barrelTwist=7.87; ACE_barrelLength=16.3; - }; + }; class rhs_weap_aks74; - class rhs_weap_aks74u: rhs_weap_aks74 - { + class rhs_weap_aks74u: rhs_weap_aks74 + { ACE_barrelTwist=6.3; ACE_barrelLength=8.3; - }; - class rhs_weap_svd: rhs_weap_ak74m - { + }; + class rhs_weap_svd: rhs_weap_ak74m + { ACE_barrelTwist=9.4; ACE_barrelLength=24.4; - }; + }; class rhs_weap_svdp; - class rhs_weap_svds: rhs_weap_svdp - { + class rhs_weap_svds: rhs_weap_svdp + { ACE_barrelTwist=9.4; ACE_barrelLength=22.2; - }; - class rhs_pkp_base; - class rhs_weap_pkp: rhs_pkp_base - { + }; + class rhs_pkp_base; + class rhs_weap_pkp: rhs_pkp_base + { ACE_barrelTwist=9.45; ACE_barrelLength=25.9; - }; - class rhs_weap_pkm: rhs_weap_pkp - { + }; + class rhs_weap_pkm: rhs_weap_pkp + { ACE_barrelTwist=9.45; ACE_barrelLength=25.4; - }; - class rhs_weap_rpk74m: rhs_weap_pkp - { + }; + class rhs_weap_rpk74m: rhs_weap_pkp + { ACE_barrelTwist=7.68; ACE_barrelLength=23.2; - }; + }; }; \ No newline at end of file diff --git a/optionals/compat_rhs_usf3/CfgAmmo.hpp b/optionals/compat_rhs_usf3/CfgAmmo.hpp index bf12ca3313..68a8c8f7fd 100644 --- a/optionals/compat_rhs_usf3/CfgAmmo.hpp +++ b/optionals/compat_rhs_usf3/CfgAmmo.hpp @@ -1,9 +1,9 @@ class CfgAmmo { - class BulletBase; - class rhsusf_B_300winmag: BulletBase - { + class BulletBase; + class rhsusf_B_300winmag: BulletBase + { ACE_caliber=0.308; ACE_bulletLength=1.489; ACE_bulletMass=220; @@ -14,10 +14,10 @@ class CfgAmmo ACE_dragModel=7; ACE_muzzleVelocities[]={847, 867, 877}; ACE_barrelLengths[]={20, 24, 26}; - }; - class B_556x45_Ball; - class rhs_ammo_556x45_Mk318_Ball: B_556x45_Ball - { + }; + class B_556x45_Ball; + class rhs_ammo_556x45_Mk318_Ball: B_556x45_Ball + { ACE_caliber=0.224; ACE_bulletLength=0.906; ACE_bulletMass=62; @@ -28,9 +28,9 @@ class CfgAmmo ACE_dragModel=1; ACE_muzzleVelocities[]={780, 886, 950}; ACE_barrelLengths[]={10, 15.5, 20}; - }; - class rhs_ammo_556x45_Mk262_Ball: B_556x45_Ball - { + }; + class rhs_ammo_556x45_Mk262_Ball: B_556x45_Ball + { ACE_caliber=0.224; ACE_bulletLength=0.906; ACE_bulletMass=77; @@ -41,9 +41,9 @@ class CfgAmmo ACE_dragModel=1; ACE_muzzleVelocities[]={624, 816, 832, 838}; ACE_barrelLengths[]={7.5, 14.5, 18, 20}; - }; - class rhs_ammo_762x51_M80_Ball: BulletBase - { + }; + class rhs_ammo_762x51_M80_Ball: BulletBase + { ACE_caliber=0.308; ACE_bulletLength=1.14; ACE_bulletMass=146; @@ -54,9 +54,9 @@ class CfgAmmo ACE_dragModel=7; ACE_muzzleVelocities[]={700, 800, 820, 833, 845}; ACE_barrelLengths[]={10, 16, 20, 24, 26}; - }; - class rhs_ammo_762x51_M118_Special_Ball: rhs_ammo_762x51_M80_Ball - { + }; + class rhs_ammo_762x51_M118_Special_Ball: rhs_ammo_762x51_M80_Ball + { ACE_caliber=0.308; ACE_bulletLength=1.24; ACE_bulletMass=175; @@ -67,9 +67,9 @@ class CfgAmmo ACE_dragModel=7; ACE_muzzleVelocities[]={750, 780, 790, 794}; ACE_barrelLengths[]={16, 20, 24, 26}; - }; - class rhs_ammo_762x51_M993_Ball: rhs_ammo_762x51_M80_Ball - { + }; + class rhs_ammo_762x51_M993_Ball: rhs_ammo_762x51_M80_Ball + { ACE_caliber=0.308; ACE_bulletLength=1.24; ACE_bulletMass=127; @@ -80,9 +80,9 @@ class CfgAmmo ACE_dragModel=1; ACE_muzzleVelocities[]={875, 910, 930}; ACE_barrelLengths[]={13, 16, 20}; - }; - class rhs_ammo_45ACP_MHP: BulletBase - { + }; + class rhs_ammo_45ACP_MHP: BulletBase + { ACE_caliber=0.452; ACE_bulletLength=0.68; ACE_bulletMass=230; @@ -93,5 +93,5 @@ class CfgAmmo ACE_dragModel=1; ACE_muzzleVelocities[]={230, 250, 285}; ACE_barrelLengths[]={4, 5, 9}; - }; + }; }; \ No newline at end of file diff --git a/optionals/compat_rhs_usf3/CfgWeapons.hpp b/optionals/compat_rhs_usf3/CfgWeapons.hpp index ab1ae0029a..054cfe16df 100644 --- a/optionals/compat_rhs_usf3/CfgWeapons.hpp +++ b/optionals/compat_rhs_usf3/CfgWeapons.hpp @@ -1,74 +1,74 @@ class CfgWeapons { - class Pistol_Base_F; - class Rifle_Base_F; - class srifle_EBR_F; - class rhs_weap_XM2010_Base_F: Rifle_Base_F - { + class Pistol_Base_F; + class Rifle_Base_F; + class srifle_EBR_F; + class rhs_weap_XM2010_Base_F: Rifle_Base_F + { ACE_barrelTwist=10; ACE_barrelLength=24; - }; - class arifle_MX_Base_F; - class rhs_weap_m4_Base: arifle_MX_Base_F - { + }; + class arifle_MX_Base_F; + class rhs_weap_m4_Base: arifle_MX_Base_F + { ACE_barrelTwist=7; ACE_barrelLength=14.5; - }; + }; class rhs_weap_m4a1; - class rhs_weap_mk18: rhs_weap_m4a1 - { + class rhs_weap_mk18: rhs_weap_m4a1 + { ACE_barrelTwist=7; ACE_barrelLength=10.3; - }; - class rhs_weap_m16a4: rhs_weap_m4_Base - { + }; + class rhs_weap_m16a4: rhs_weap_m4_Base + { ACE_barrelTwist=7; ACE_barrelLength=20; - }; - class rhs_M249_base; - class rhs_weap_m249_pip: rhs_M249_base - { + }; + class rhs_M249_base; + class rhs_weap_m249_pip: rhs_M249_base + { ACE_barrelTwist=7; ACE_barrelLength=16.3; - }; - class weap_m240_base; - class rhs_weap_m240B: weap_m240_base - { + }; + class weap_m240_base; + class rhs_weap_m240B: weap_m240_base + { ACE_barrelTwist=12; ACE_barrelLength=24.8; - }; - class rhs_weap_m14ebrri: srifle_EBR_F - { + }; + class rhs_weap_m14ebrri: srifle_EBR_F + { ACE_barrelTwist=12; ACE_barrelLength=22; - }; - class rhs_weap_sr25: rhs_weap_m14ebrri - { + }; + class rhs_weap_sr25: rhs_weap_m14ebrri + { ACE_barrelTwist=11.25; ACE_barrelLength=24; - }; - class rhs_weap_sr25_ec: rhs_weap_sr25 - { + }; + class rhs_weap_sr25_ec: rhs_weap_sr25 + { ACE_barrelTwist=11.25; ACE_barrelLength=20; - }; - class rhs_weap_M590_5RD: Rifle_Base_F - { + }; + class rhs_weap_M590_5RD: Rifle_Base_F + { ACE_barrelTwist=0; ACE_twistDirection=0; ACE_barrelLength=18.5; - }; - class rhs_weap_M590_8RD: rhs_weap_M590_5RD - { + }; + class rhs_weap_M590_8RD: rhs_weap_M590_5RD + { ACE_barrelTwist=0; ACE_twistDirection=0; ACE_barrelLength=20; - }; - class hgun_ACPC2_F; - class rhsusf_weap_m1911a1: hgun_ACPC2_F - { + }; + class hgun_ACPC2_F; + class rhsusf_weap_m1911a1: hgun_ACPC2_F + { ACE_barrelTwist=16; ACE_barrelLength=5; - }; + }; }; \ No newline at end of file From e8dec708bcebc0d185eea4b811d12b47fd9e21c7 Mon Sep 17 00:00:00 2001 From: Josuan Albin Date: Mon, 27 Apr 2015 16:18:28 +0200 Subject: [PATCH 192/256] Some french entries and a german duplicate Added some french entries and removed a german duplicate --- addons/interact_menu/stringtable.xml | 6 +++++- addons/overheating/stringtable.xml | 1 - 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/addons/interact_menu/stringtable.xml b/addons/interact_menu/stringtable.xml index 1335432f28..48ee00f475 100644 --- a/addons/interact_menu/stringtable.xml +++ b/addons/interact_menu/stringtable.xml @@ -75,18 +75,22 @@ Interaction - Text Max Interakcja - Tekst max + Interaction -Texte Max Interaction - Text Min Interakcja - Tekst min + Interaction - Texte Min Interaction - Shadow Max Interakcja - Cień max + Interaction - Ombre Max Interaction - Shadow Min Interakcja - Cień min + Interaction - Ombre Min
-
+
\ No newline at end of file diff --git a/addons/overheating/stringtable.xml b/addons/overheating/stringtable.xml index 865b7a8242..557bd6c915 100644 --- a/addons/overheating/stringtable.xml +++ b/addons/overheating/stringtable.xml @@ -138,7 +138,6 @@ Vérifier la température Fegyverhő ellenőrzése Проверить температуру оружия - Waffentemperatur prüfen
Checking temperature ... From e4db44d73c46a15cfb8e882d593035c0094349d8 Mon Sep 17 00:00:00 2001 From: Glowbal Date: Mon, 27 Apr 2015 16:36:00 +0200 Subject: [PATCH 193/256] adjusted damage parsing --- addons/medical/functions/fnc_handleDamage.sqf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/addons/medical/functions/fnc_handleDamage.sqf b/addons/medical/functions/fnc_handleDamage.sqf index 956b4f95aa..70b219a8a4 100644 --- a/addons/medical/functions/fnc_handleDamage.sqf +++ b/addons/medical/functions/fnc_handleDamage.sqf @@ -63,14 +63,14 @@ if (GVAR(level) >= 2) then { }; }; - if ((_minLethalDamage <= _newDamage) && {[_unit, [_selection] call FUNC(selectionNameToNumber), _newDamage] call FUNC(determineIfFatal)} && {_selection in ["", "head", "body"]}) then { + if ([_unit, [_selection] call FUNC(selectionNameToNumber), _newDamage] call FUNC(determineIfFatal)) then { if ([_unit] call FUNC(setDead)) then { _damageReturn = 1; } else { - _damageReturn = 0.89; + _damageReturn = _damageReturn min 0.89; }; } else { - _damageReturn = 0.89; + _damageReturn = _damageReturn min 0.89; }; }; }; From 450e324f7b27adbe8475fc882dd6c5b32f93c164 Mon Sep 17 00:00:00 2001 From: Glowbal Date: Mon, 27 Apr 2015 16:42:12 +0200 Subject: [PATCH 194/256] adjusted damage handling (adv medical) --- addons/medical/functions/fnc_handleDamage.sqf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/addons/medical/functions/fnc_handleDamage.sqf b/addons/medical/functions/fnc_handleDamage.sqf index 70b219a8a4..a8dddcadc8 100644 --- a/addons/medical/functions/fnc_handleDamage.sqf +++ b/addons/medical/functions/fnc_handleDamage.sqf @@ -47,7 +47,7 @@ if (GVAR(level) >= 2) then { }; _newDamage = _this call FUNC(handleDamage_caching); - if (_damageReturn > 0.9) then { + //if (_damageReturn > 0.9) then { _typeOfDamage = [_projectile] call FUNC(getTypeOfDamage); @@ -63,7 +63,7 @@ if (GVAR(level) >= 2) then { }; }; - if ([_unit, [_selection] call FUNC(selectionNameToNumber), _newDamage] call FUNC(determineIfFatal)) then { + if ((_minLethalDamage <= _newDamage) && {[_unit, [_selection] call FUNC(selectionNameToNumber), _newDamage] call FUNC(determineIfFatal)}) then { if ([_unit] call FUNC(setDead)) then { _damageReturn = 1; } else { @@ -72,7 +72,7 @@ if (GVAR(level) >= 2) then { } else { _damageReturn = _damageReturn min 0.89; }; - }; + //}; }; [_unit] call FUNC(addToInjuredCollection); From e4f6a7b2fc601e75ad26bce70f2bde98c7df44a7 Mon Sep 17 00:00:00 2001 From: ulteq Date: Mon, 27 Apr 2015 17:35:03 +0200 Subject: [PATCH 195/256] Added scope configs to the RHS compatibility modules --- optionals/compat_rhs_afrf3/CfgWeapons.hpp | 7 +++++++ optionals/compat_rhs_usf3/CfgWeapons.hpp | 12 ++++++++++++ 2 files changed, 19 insertions(+) diff --git a/optionals/compat_rhs_afrf3/CfgWeapons.hpp b/optionals/compat_rhs_afrf3/CfgWeapons.hpp index 880b9f791f..49573b164a 100644 --- a/optionals/compat_rhs_afrf3/CfgWeapons.hpp +++ b/optionals/compat_rhs_afrf3/CfgWeapons.hpp @@ -57,4 +57,11 @@ class CfgWeapons ACE_barrelTwist=7.68; ACE_barrelLength=23.2; }; + + class rhs_acc_sniper_base; + class rhs_acc_pso1m2: rhs_acc_sniper_base { + ACE_ScopeAdjust_Vertical[] = { 0, 0 }; + ACE_ScopeAdjust_Horizontal[] = { -10, 10 }; + ACE_ScopeAdjust_Increment = 0.5; + }; }; \ No newline at end of file diff --git a/optionals/compat_rhs_usf3/CfgWeapons.hpp b/optionals/compat_rhs_usf3/CfgWeapons.hpp index 054cfe16df..a9791cd6b8 100644 --- a/optionals/compat_rhs_usf3/CfgWeapons.hpp +++ b/optionals/compat_rhs_usf3/CfgWeapons.hpp @@ -71,4 +71,16 @@ class CfgWeapons ACE_barrelTwist=16; ACE_barrelLength=5; }; + + class rhsusf_acc_sniper_base; + class rhsusf_acc_LEUPOLDMK4: rhsusf_acc_sniper_base { + ACE_ScopeAdjust_Vertical[] = { -4, 30 }; + ACE_ScopeAdjust_Horizontal[] = { -6, 6 }; + ACE_ScopeAdjust_Increment = 0.1; + }; + class rhsusf_acc_LEUPOLDMK4_2: rhsusf_acc_sniper_base { + ACE_ScopeAdjust_Vertical[] = { -4, 30 }; + ACE_ScopeAdjust_Horizontal[] = { -6, 6 }; + ACE_ScopeAdjust_Increment = 0.1; + }; }; \ No newline at end of file From fa6a2566e3d415e28852c947dd07ee80e174a493 Mon Sep 17 00:00:00 2001 From: ulteq Date: Mon, 27 Apr 2015 17:48:06 +0200 Subject: [PATCH 196/256] Fixed a syntax error --- addons/atragmx/RscTitles.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/atragmx/RscTitles.hpp b/addons/atragmx/RscTitles.hpp index 76f06744dc..4ae08c20aa 100644 --- a/addons/atragmx/RscTitles.hpp +++ b/addons/atragmx/RscTitles.hpp @@ -760,7 +760,7 @@ class ATragMX_Display { y=0.265*safezoneH+safezoneY+0.35; strings[]={"Height","Width"}; values[]={1,0}; - onToolBoxSelChanged="GVAR(rangeAssistUseTargetHeight)=((_this select 1)==0)"; + onToolBoxSelChanged=QUOTE(GVAR(rangeAssistUseTargetHeight) = ((_this select 1) == 0)); }; class TEXT_TARGET_RANGE_ASSIST_TARGET_SIZE: TEXT_TARGET_RANGE_ASSIST_MEASUREMENT_METHOD { idc=7003; From 59aba3fb34e33ed5b47fede1d3e4a3f6fb2489a5 Mon Sep 17 00:00:00 2001 From: ruPaladin Date: Mon, 27 Apr 2015 19:33:22 +0300 Subject: [PATCH 197/256] Update stringtable.xml --- addons/medical/stringtable.xml | 68 +++++++++++++++++++++++++++++----- 1 file changed, 59 insertions(+), 9 deletions(-) diff --git a/addons/medical/stringtable.xml b/addons/medical/stringtable.xml index e930016187..ec6b3aa374 100644 --- a/addons/medical/stringtable.xml +++ b/addons/medical/stringtable.xml @@ -4,10 +4,12 @@ INJURIES VERLETZUNGEN + ТРАВМЫ No injuries on this bodypart ... Körperteil nicht verletzt ... + Данная часть тела не повреждена ... Litter Simulation Detail @@ -367,6 +369,7 @@ No entries on this triage card. Keine Einträge auf der Triagekarte + Нет записей. Tourniquet @@ -393,18 +396,22 @@ Diagnose Diagnose + Диагностика Diagnosing ... Diagnostizieren ... + Диагностика ... CPR HLW + Сердечно-легочная реанимация Performing CPR ... HLW durchführen ... + Сердечно-легочная реанимация ... Give Blood IV (1000ml) @@ -1076,10 +1083,12 @@ Personal Aid Kit for in field stitching or advanced treatment W znacznym stopniu poprawia stan pacjenta + Полевая аптчека для продвинутого лечения и зашивания ран Use Personal Aid Kit Verbandpäckchen benutzen + Использовать аптечку Surgical Kit @@ -1114,6 +1123,7 @@ Use Surgical Kit Operationsset benutzen + Использовать хирургический набор Bodybag @@ -1168,6 +1178,7 @@ %1 checked Blood Pressure: %2 %1 kontrollierte Blutdruck: %2 + %1 проверил артериальное давление: %2 You checked %1 @@ -1242,18 +1253,22 @@ Low Niedrig + Низкое Normal Normal + Нормальное High Hoch + Высокое No Blood Pressure Kein Blutdruck + Артериальное давление отсутствует Pulse @@ -1288,18 +1303,22 @@ %1 checked Heart Rate: %2 %1 kontrollierte Herzfrequenz: %2 + %1 проверил пульс: %2 Weak Schwach + Слабый Normal Normal + Нормальный Strong Stark + Сильный You find a Heart Rate of %2 @@ -1403,26 +1422,32 @@ Patient %1<br/>is %2.<br/>%3.<br/>%4 + Пациент %1<br/>%2.<br/>%3.<br/>%4 alive + жив dead + мертв He's lost some blood + Есть кровопотеря He hasn't lost blood + Нет кровопотери He is in pain + Испытывает боль He is not in pain + Не испытывает боли - Bandaged Bandé @@ -1754,142 +1779,167 @@ Scrape Kratzer + Ссадина Minor Scrape Kleiner Kratzer + Малая ссадина Medium Scrape Mittlerer Kratzer + Средняя ссадина Large Scrape Großer Kratzer + Большая ссадина - Avulsion Avulsion + Рваная рана Minor Avulsion Kleine Avulsion + Малая рваная рана Medium Avulsion Mittlere Avulsion + Средняя рваная рана Large Avulsion Große Avulsion + Большая рваная рана - Bruise Prellung + Ушиб Minor Bruise Kleine Prellung + Малый ушиб Medium Bruise Mittlere Prellung + Средний ушиб Large Bruise Große Prellung + Большой ушиб - Crushed tissue Quetschverletzung + Компресионная травма Minor crushed tissue Kleine Quetschverletzung + Малая компрессионная травма Medium crushed tissue Mittlere Quetschverletzung + Средняя компрессионная травма Large crushed tissue Große Quetschverletzung + Большая компрессионная травма - Cut Schnittwunde + Резаная рана Small Cut Kleine Schnittwunde + Малая резаная рана Medium Cut Mittlere Schnittwunde + Средняя резаная рана Large Cut Große Schnittwunde + Большая резаная рана - Tear Riss + Рваная рана Small Tear Kleiner Riss + Малая рваная рана Medium Tear Mittlerer Riss + Средняя рваная рана Large Tear Großer Riss + Большая рваная рана - Velocity Wound Ballistisches Trauma + Огнестрельная рана Smal Velocity Wound Kleines Ballistisches Trauma + Малая огнестрельная рана Medium Velocity Wound Mittleres Ballistisches Trauma + Средняя огнестрельная рана Large Velocity Wound Großes Ballistisches Trauma + Большая огнестрельная рана - Puncture Wound Stichwunde + Колотая рана Minor Puncture Wound Kleine Stichwunde + Малая колотая рана Medium Puncture Wound Mittlere Stichwunde + Средняя колотая рана Large Puncture Wound Große Stichwunde + Большая колотая рана - Broken Femur Gebrochener Oberschenkelknochen + Перелом
From ebbcb8e5e704b811d923a2fdf1644804a6d18c94 Mon Sep 17 00:00:00 2001 From: ulteq Date: Mon, 27 Apr 2015 19:28:46 +0200 Subject: [PATCH 198/256] Fixed a rarely occurring calculation error. --- extensions/advanced_ballistics/AdvancedBallistics.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/extensions/advanced_ballistics/AdvancedBallistics.cpp b/extensions/advanced_ballistics/AdvancedBallistics.cpp index 4bc9a28933..e62a564dca 100644 --- a/extensions/advanced_ballistics/AdvancedBallistics.cpp +++ b/extensions/advanced_ballistics/AdvancedBallistics.cpp @@ -461,7 +461,7 @@ void __stdcall RVExtension(char *output, int outputSize, const char *function) if (gridHeight > position[2]) { double angle = atan((gridHeight - position[2]) / 100); - windAttenuation *= pow(cos(angle), 2); + windAttenuation *= pow(abs(cos(angle)), 2); } } } @@ -476,7 +476,7 @@ void __stdcall RVExtension(char *output, int outputSize, const char *function) if (heightAGL > 0 && heightAGL < 20) { double roughnessLength = calculateRoughnessLength(windSourceObstacles[0], windSourceObstacles[1]); - windAttenuation *= (log(heightAGL / roughnessLength) / log(20 / roughnessLength)); + windAttenuation *= abs(log(heightAGL / roughnessLength) / log(20 / roughnessLength)); } } From 7e0fa18ce73457313afe5c6d08d50a82c34697cb Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Mon, 27 Apr 2015 16:07:31 -0500 Subject: [PATCH 199/256] #770 - Hopefully fix LOS check on flashbang --- addons/grenades/CfgAmmo.hpp | 2 +- addons/grenades/functions/fnc_flashbangExplosionEH.sqf | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/grenades/CfgAmmo.hpp b/addons/grenades/CfgAmmo.hpp index 0f86230784..0c74f33940 100644 --- a/addons/grenades/CfgAmmo.hpp +++ b/addons/grenades/CfgAmmo.hpp @@ -82,7 +82,7 @@ class CfgAmmo { SmokeShellSoundHit3[] = {"A3\Sounds_F\weapons\smokeshell\smoke_3",1.25893,1,100}; SmokeShellSoundLoop1[] = {"A3\Sounds_F\weapons\smokeshell\smoke_loop1",0.125893,1,70}; SmokeShellSoundLoop2[] = {"A3\Sounds_F\weapons\smokeshell\smoke_loop2",0.125893,1,70}; - timeToLive = 60; + timeToLive = 6; fuseDistance = 2.3; model = PATHTOF(models\ACE_m84_thrown.p3d); }; diff --git a/addons/grenades/functions/fnc_flashbangExplosionEH.sqf b/addons/grenades/functions/fnc_flashbangExplosionEH.sqf index 67fb2ded9c..9be24bcc47 100644 --- a/addons/grenades/functions/fnc_flashbangExplosionEH.sqf +++ b/addons/grenades/functions/fnc_flashbangExplosionEH.sqf @@ -56,7 +56,7 @@ _affected = _grenade nearEntities ["CAManBase", 20]; }; } forEach [[0,0,0], [0,0,0.2], [0.1, 0.1, 0.1], [-0.1, -0.1, 0.1]]; TRACE_1("Line of sight count (out of 4)",_losCount); - if (_losCount == 0) then { + if (_losCount <= 1) then { _strength = _strength / 10; }; From 22d569e5ab6a60459a4cb1fc4311f3a4d913e4a5 Mon Sep 17 00:00:00 2001 From: Grzegorz Sikora Date: Tue, 28 Apr 2015 00:29:48 +0200 Subject: [PATCH 200/256] README PL --- documentation/README_PL.md | 84 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 documentation/README_PL.md diff --git a/documentation/README_PL.md b/documentation/README_PL.md new file mode 100644 index 0000000000..6d3dc203cd --- /dev/null +++ b/documentation/README_PL.md @@ -0,0 +1,84 @@ +

+ +

+

+ + ACE version + + + ACE download + + + ACE issues + + + BIF thread + + + ACE license + +

+

Wymaga najnowszej wersji CBA A3. Odwied nas na Facebook | YouTube | Twitter | Reddit

+ + +**ACE3** to efekt wsplnego wysiku grup moderw odpowiedzialnych za **ACE2**, **AGM** oraz **CSE** w celu zwikszenia realizmu i autentycznoci Arma 3. + +Projekt ten jest cakowicie **otwarty rdowo** i wszelki wkad w rozwj jest mile widziany. Moesz bez przeszkd prowadzi swoj wasn dostosowan wersj, o ile zmiany jakie wprowadzisz bd otwarte dla publiki zgodnie z GNU General Public License ([GPLv2](https://github.com/acemod/ACE3/blob/master/LICENSE)). + +Modyfikacja ta jest **budowana moduowo**, dziki temu prawie kady dostarczony plik PBO moe zosta atwo usunity z konfiguracji. Dziki temu, grupa moe prowadzi wasn, dostosowan do siebie, wersj ACE wyczajc elementy, ktrych nie potrzebuj, lub ktre po prostu nie dziaaj z innymi addonami. Moduy same w sobie np. system medyczny, posiadaj wiele moliwoci konfiguracji, pozwalajc mission designerom dostosowa oglne dowiadczenie z gry. + +### Gwne cechy +* Cakowicie nowy system akcji/interakcji 3D +* Wydajna i niezawodna struktura +* Skupienie na moduowoci i customizacji +* Elastyczny system ustawie i konfiguracji opcji u klienta i serwera +* Ulepszony system medyczny z rnymi stopniami zaawansowania (podstawowy/rozszerzony) skupiony na grywalnoci i realizmowi +* Prawidowa i spjna synchronizowana pogoda +* Balistyka oparta na warunkach pogodowych i wietrze +* Moliwo brania jecw +* Rozszerzony system adunkw wybuchowych, wczajc w to uycie rnego rodzaju zapalnikw +* Ulepszenia mapy - stawianie markerw i przybory mapy +* Zaawansowane naprowadzanie rakiet i wskazywanie laserem + +#### Dodatkowe cechy +* Przeciganie i przenoszenie +* Realistyczne nazwy pojazdw i broni +* System kontroli ognia (SKO) dla pojazdw opancerzonych oraz migowcw +* Realistyczna balistyka/SKO obliczana w rozszerzeniach C/C++ +* Symulacja strefy backblastu i podcinienia +* Jednorazowe wyrzutnie +* Realistyczne siy G +* Zamykanie pojazdw na kluczyk +* Realistyczne tryby termowizji oraz noktowizji +* Przepakowywanie magazynkw +* Realistyczna mechanika przegrzewania broni +* Symulacja guchoty bitewnej (tymczasowej utraty suchu) +* Ulepszona fizyka ragdoll +* Ulepszona interakcja dla asystentw i amunicyjnych +* Regulowane celowniki snajperskie +* Usunite animacje bezczynnoci z opuszczon broni +* Usunite gosy awatara gracza +* Skakanie przez przeszkody, wspinanie si na ciany i przecinanie potw +* Urzdzenia Vector, MicroDAGR, Kestrel
+***i wiele wiele wicej...*** + +### Poradniki i instrukcje +Jeeli zainstalowae ACE3 lecz masz problem ze zrozumieniem jak to wszystko dziaa, lub gdzie zacz, zacznij od przeczytania tego: +* [Wprowadzenie](http://ace3mod.com/wiki/user/getting-started.html) + +#### Wsppraca +Moesz pomc w rozwoju addonu szukajc potencjalnych bugw w naszym kodzie, lub zgaszajc nowe funkcje. Aby wnie swj wkad do ACE, po prostu zforkuj to repozytorium na swoje konto GitHub i zgo swoje pull requesty do przegldu przez innych wsppracownikw. Pamitaj, aby doda siebie do listy autorw kadego PBO jakie edytujesz oraz do pliku ['AUTHORS.txt'](https://github.com/acemod/ACE3/blob/master/AUTHORS.txt) dodajc take swj adres e-mail. + +Uywaj naszego [Issue Tracker-a](https://github.com/acemod/ACE3/issues) aby zgasza bugi, proponowa nowe funkcje lub sugerowa zmiany do aktualnie istniejcych. Zobacz take: +* [Jak zgosi bug-a](http://ace3mod.com/wiki/user/how-to-report-an-issue.html) +* [Jak zgosi feature request-a](http://ace3mod.com/wiki/user/how-to-make-a-feature-request.html) + +#### Testowanie i budowanie +Aby pomc nam w testowaniu najnowszych zmian rozwojowych, pobierz nasz master branch ([bezporednio](https://github.com/acemod/ACE3/archive/master.zip), lub [korzystajc z git](https://help.github.com/articles/fetching-a-remote/)), a nastpnie z testowego build-a: +* [Konfiguracja rodowiska do testw](http://ace3mod.com/wiki/development/setting-up-the-development-environment.html) intrukcja krok-po-kroku jak poprawnie ustawi i zbudowa wersj ACE do celw testowych. \ No newline at end of file From e874e4329f054eb57353f5488fd79457410df748 Mon Sep 17 00:00:00 2001 From: Grzegorz Sikora Date: Tue, 28 Apr 2015 00:32:03 +0200 Subject: [PATCH 201/256] PL readme --- documentation/README_PL.md | 70 +++++++++++++++++++------------------- 1 file changed, 35 insertions(+), 35 deletions(-) diff --git a/documentation/README_PL.md b/documentation/README_PL.md index 6d3dc203cd..d156185908 100644 --- a/documentation/README_PL.md +++ b/documentation/README_PL.md @@ -24,61 +24,61 @@ alt="ACE license">

-

Wymaga najnowszej wersji CBA A3. Odwied nas na Facebook | YouTube | Twitter | Reddit

+

Wymaga najnowszej wersji CBA A3. Odwiedź nas na Facebook | YouTube | Twitter | Reddit

-**ACE3** to efekt wsplnego wysiku grup moderw odpowiedzialnych za **ACE2**, **AGM** oraz **CSE** w celu zwikszenia realizmu i autentycznoci Arma 3. +**ACE3** to efekt wspólnego wysiłku grup moderów odpowiedzialnych za **ACE2**, **AGM** oraz **CSE** w celu zwiększenia realizmu i autentyczności Arma 3. -Projekt ten jest cakowicie **otwarty rdowo** i wszelki wkad w rozwj jest mile widziany. Moesz bez przeszkd prowadzi swoj wasn dostosowan wersj, o ile zmiany jakie wprowadzisz bd otwarte dla publiki zgodnie z GNU General Public License ([GPLv2](https://github.com/acemod/ACE3/blob/master/LICENSE)). +Projekt ten jest całkowicie **otwarty źródłowo** i wszelki wkład w rozwój jest mile widziany. Możesz bez przeszkód prowadzić swoją własną dostosowaną wersję, o ile zmiany jakie wprowadzisz będą otwarte dla publiki zgodnie z GNU General Public License ([GPLv2](https://github.com/acemod/ACE3/blob/master/LICENSE)). -Modyfikacja ta jest **budowana moduowo**, dziki temu prawie kady dostarczony plik PBO moe zosta atwo usunity z konfiguracji. Dziki temu, grupa moe prowadzi wasn, dostosowan do siebie, wersj ACE wyczajc elementy, ktrych nie potrzebuj, lub ktre po prostu nie dziaaj z innymi addonami. Moduy same w sobie np. system medyczny, posiadaj wiele moliwoci konfiguracji, pozwalajc mission designerom dostosowa oglne dowiadczenie z gry. +Modyfikacja ta jest **budowana modułowo**, dzięki temu prawie każdy dostarczony plik PBO może zostać łatwo usunięty z konfiguracji. Dzięki temu, grupa może prowadzić własną, dostosowaną do siebie, wersję ACE wyłączając elementy, których nie potrzebują, lub które po prostu nie działają z innymi addonami. Moduły same w sobie np. system medyczny, posiadają wiele możliwości konfiguracji, pozwalając mission designerom dostosować ogólne doświadczenie z gry. -### Gwne cechy -* Cakowicie nowy system akcji/interakcji 3D +### Główne cechy +* Całkowicie nowy system akcji/interakcji 3D * Wydajna i niezawodna struktura -* Skupienie na moduowoci i customizacji -* Elastyczny system ustawie i konfiguracji opcji u klienta i serwera -* Ulepszony system medyczny z rnymi stopniami zaawansowania (podstawowy/rozszerzony) skupiony na grywalnoci i realizmowi -* Prawidowa i spjna synchronizowana pogoda +* Skupienie na modułowości i customizacji +* Elastyczny system ustawień i konfiguracji opcji u klienta i serwera +* Ulepszony system medyczny z różnymi stopniami zaawansowania (podstawowy/rozszerzony) skupiony na grywalności i realizmowi +* Prawidłowa i spójna synchronizowana pogoda * Balistyka oparta na warunkach pogodowych i wietrze -* Moliwo brania jecw -* Rozszerzony system adunkw wybuchowych, wczajc w to uycie rnego rodzaju zapalnikw -* Ulepszenia mapy - stawianie markerw i przybory mapy +* Możliwość brania jeńców +* Rozszerzony system ładunków wybuchowych, włączając w to użycie różnego rodzaju zapalników +* Ulepszenia mapy - stawianie markerów i przybory mapy * Zaawansowane naprowadzanie rakiet i wskazywanie laserem #### Dodatkowe cechy -* Przeciganie i przenoszenie -* Realistyczne nazwy pojazdw i broni -* System kontroli ognia (SKO) dla pojazdw opancerzonych oraz migowcw +* Przeciąganie i przenoszenie +* Realistyczne nazwy pojazdów i broni +* System kontroli ognia (SKO) dla pojazdów opancerzonych oraz śmigłowców * Realistyczna balistyka/SKO obliczana w rozszerzeniach C/C++ -* Symulacja strefy backblastu i podcinienia +* Symulacja strefy backblastu i podciśnienia * Jednorazowe wyrzutnie -* Realistyczne siy G -* Zamykanie pojazdw na kluczyk +* Realistyczne siły G +* Zamykanie pojazdów na kluczyk * Realistyczne tryby termowizji oraz noktowizji -* Przepakowywanie magazynkw +* Przepakowywanie magazynków * Realistyczna mechanika przegrzewania broni -* Symulacja guchoty bitewnej (tymczasowej utraty suchu) +* Symulacja głuchoty bitewnej (tymczasowej utraty słuchu) * Ulepszona fizyka ragdoll -* Ulepszona interakcja dla asystentw i amunicyjnych +* Ulepszona interakcja dla asystentów i amunicyjnych * Regulowane celowniki snajperskie -* Usunite animacje bezczynnoci z opuszczon broni -* Usunite gosy awatara gracza -* Skakanie przez przeszkody, wspinanie si na ciany i przecinanie potw -* Urzdzenia Vector, MicroDAGR, Kestrel
-***i wiele wiele wicej...*** +* Usunięte animacje bezczynności z opuszczoną bronią +* Usunięte głosy awatara gracza +* Skakanie przez przeszkody, wspinanie się na ściany i przecinanie płotów +* Urządzenia Vector, MicroDAGR, Kestrel
+***i wiele wiele więcej...*** ### Poradniki i instrukcje -Jeeli zainstalowae ACE3 lecz masz problem ze zrozumieniem jak to wszystko dziaa, lub gdzie zacz, zacznij od przeczytania tego: +Jeżeli zainstalowałeś ACE3 lecz masz problem ze zrozumieniem jak to wszystko działa, lub gdzie zacząć, zacznij od przeczytania tego: * [Wprowadzenie](http://ace3mod.com/wiki/user/getting-started.html) -#### Wsppraca -Moesz pomc w rozwoju addonu szukajc potencjalnych bugw w naszym kodzie, lub zgaszajc nowe funkcje. Aby wnie swj wkad do ACE, po prostu zforkuj to repozytorium na swoje konto GitHub i zgo swoje pull requesty do przegldu przez innych wsppracownikw. Pamitaj, aby doda siebie do listy autorw kadego PBO jakie edytujesz oraz do pliku ['AUTHORS.txt'](https://github.com/acemod/ACE3/blob/master/AUTHORS.txt) dodajc take swj adres e-mail. +#### Współpraca +Możesz pomóc w rozwoju addonu szukając potencjalnych bugów w naszym kodzie, lub zgłaszając nowe funkcje. Aby wnieść swój wkład do ACE, po prostu zforkuj to repozytorium na swoje konto GitHub i zgłoś swoje pull requesty do przeglądu przez innych współpracowników. Pamiętaj, aby dodać siebie do listy autorów każdego PBO jakie edytujesz oraz do pliku ['AUTHORS.txt'](https://github.com/acemod/ACE3/blob/master/AUTHORS.txt) dodając także swój adres e-mail. -Uywaj naszego [Issue Tracker-a](https://github.com/acemod/ACE3/issues) aby zgasza bugi, proponowa nowe funkcje lub sugerowa zmiany do aktualnie istniejcych. Zobacz take: -* [Jak zgosi bug-a](http://ace3mod.com/wiki/user/how-to-report-an-issue.html) -* [Jak zgosi feature request-a](http://ace3mod.com/wiki/user/how-to-make-a-feature-request.html) +Używaj naszego [Issue Tracker-a](https://github.com/acemod/ACE3/issues) aby zgłaszać bugi, proponować nowe funkcje lub sugerować zmiany do aktualnie istniejących. Zobacz także: +* [Jak zgłosić bug-a](http://ace3mod.com/wiki/user/how-to-report-an-issue.html) +* [Jak zgłosić feature request-a](http://ace3mod.com/wiki/user/how-to-make-a-feature-request.html) #### Testowanie i budowanie -Aby pomc nam w testowaniu najnowszych zmian rozwojowych, pobierz nasz master branch ([bezporednio](https://github.com/acemod/ACE3/archive/master.zip), lub [korzystajc z git](https://help.github.com/articles/fetching-a-remote/)), a nastpnie z testowego build-a: -* [Konfiguracja rodowiska do testw](http://ace3mod.com/wiki/development/setting-up-the-development-environment.html) intrukcja krok-po-kroku jak poprawnie ustawi i zbudowa wersj ACE do celw testowych. \ No newline at end of file +Aby pomóc nam w testowaniu najnowszych zmian rozwojowych, pobierz nasz master branch ([bezpośrednio](https://github.com/acemod/ACE3/archive/master.zip), lub [korzystając z git](https://help.github.com/articles/fetching-a-remote/)), a następnie złóż testowego build-a: +* [Konfiguracja środowiska do testów](http://ace3mod.com/wiki/development/setting-up-the-development-environment.html) – intrukcja krok-po-kroku jak poprawnie ustawić i zbudować wersję ACE do celów testowych. \ No newline at end of file From 8ac6f61fcf6cf863f034373a5e205f155edcd595 Mon Sep 17 00:00:00 2001 From: simon84 Date: Tue, 28 Apr 2015 00:36:37 +0200 Subject: [PATCH 202/256] added some translations added some translations --- addons/ballistics/stringtable.xml | 82 +++++++++++++++++++++++++- addons/interact_menu/stringtable.xml | 5 ++ addons/medical/stringtable.xml | 10 +++- addons/missileguidance/stringtable.xml | 1 + addons/mk6mortar/stringtable.xml | 32 +++++----- addons/optionsmenu/stringtable.xml | 3 +- addons/realisticnames/stringtable.xml | 30 +++++++++- 7 files changed, 144 insertions(+), 19 deletions(-) diff --git a/addons/ballistics/stringtable.xml b/addons/ballistics/stringtable.xml index 4dc27fd2fc..0cd0ea0df2 100644 --- a/addons/ballistics/stringtable.xml +++ b/addons/ballistics/stringtable.xml @@ -574,6 +574,7 @@ Chargeur 9x19mm 16Cps Cargador de 16 balas de 9x19mm Магазин из 16-ти 9х19 мм + 9x19mm 20-Schuss-Magazin
9x19mm @@ -581,6 +582,7 @@ 9x19mm 9x19mm 9х19 мм + 9x19mm 9x19mm 30Rnd Mag @@ -588,6 +590,7 @@ 9x19mm 30Cps Cargador de 16 balas de 9x19mm Магазин из 16-ти 9х19 мм + 9x19mm 30-Schuss-Magazin 9x19mm 30Rnd Mag @@ -595,6 +598,7 @@ 9x19mm 30Cps Cargador de 30 balas de 9x19mm Магазин из 30-ти 9х19 мм + 9x19mm 30-Schuss-Magazin 9x19mm @@ -602,6 +606,7 @@ 9x19mm 9x19mm 9х19 мм + 9x19mm 9x19mm 30Rnd Mag @@ -609,6 +614,7 @@ 9x19mm 30Cps Cargador de 30 balas de 9x19mm Магазин из 30-ти 9х19 мм + 9x19mm 30-Schuss-Magazin 7.62x54mm 10Rnd Tracer IR-DIM Mag @@ -616,6 +622,7 @@ Chargeur 7.62x54mm 10Rnd Traçante IR-DIM Cargador de 10 balas trazadoras IR-DIM de 7.62x54mm Магазин из 10-ти 7,62 мм ИК-трассирующих + 7,62x54 10-Schuss-Magazin IR-DIM Leuchtspur 7.62mm IR-DIM @@ -623,6 +630,7 @@ 7.62mm IR-DIM 7.62mm IR-DIM 7,62 мм ИК-трассирующие + 7,62x54 IR-DIM 7.62x54mm 10Rnd Tracer IR-DIM Mag @@ -630,6 +638,7 @@ Chargeur 7.62x54mm 10Cps Traçante IR-DIM Cargador de 10 balas trazadoras IR-DIM de 7.62x54mm Магазин из 10-ти 7,62 мм ИК-трассирующих + 7,62x54 10-Schuss-Magazin IR-DIM Leuchtspur 6.5mm 100Rnd Tracer IR-DIM Mag @@ -637,6 +646,7 @@ Chargeur 6.5mm 100Rnd Traçante IR-DIM Cargador de 100 balas trazadoras IR-DIM de 6.5mm Магазин из 100 6,5 мм ИК-трассирующих + 6,5mm 100-Schuss-Magazin IR-DIM Leuchtspur 6.5mm IR-DIM @@ -644,6 +654,7 @@ 6.5mm IR-DIM 6.5mm IR-DIM 6,5 мм ИК-трассирующие + 6,5mm IR-DIM 6.5mm 100Rnd Tracer IR-DIM Mag<br />Rounds: 100<br />Used in: MX LSW @@ -651,6 +662,7 @@ Chargeur 6.5mm 100Rnd Traçante IR-DIM Cargador de 100 balas trazadoras IR-DIM de 6.5mm Магазин из 100 6,5 мм ИК-трассирующих + 6,5mm 100-Schuss-Magazin IR-DIM Leuchtspur<br />Schuss: 100<br />Verwendet für: MXLSW 6.5mm 200Rnd Tracer IR-DIM Belt @@ -658,6 +670,7 @@ Bande 6.5mm 200Rnd Traçante IR-DIM Cinta de 200 balas trazadoras IR-DIM de 6.5mm Магазин из 200-т 6,5 мм ИК-трассирующих + 6,5mm 200-Schuss-Gurt IR-DIM Leuchtspur 6.5mm IR-DIM @@ -665,6 +678,7 @@ 6.5mm IR-DIM 6.5mm IR-DIM 6,5 мм ИК-трассирующие + 6,5mm IR-DIM 6.5mm 200Rnd Tracer IR-DIM Belt<br />Rounds: 200<br />Used in: Stoner 99 LMG @@ -672,6 +686,7 @@ Bande 6.5mm 200Cps Traçante IR-DIM Cinta de 200 balas trazadoras IR-DIM de 6.5mm Магазин из 200-т 6,5 мм ИК-трассирующих + 6,5mm 200-Schuss-Gurt IR-DIM Leuchtspur<br />Schuss: 200<br />Verwendet für: Stoner 99 LMG 5.56mm 30Rnd Mag (Mk262) @@ -679,6 +694,7 @@ 5.56mm 30Cps (Mk262) Cargador de 30 balas de 5.56mm (Mk262) Магазин из 30-ти 5.56 мм Mk262 + 5,56mm 30-Schuss-Magazin (Mk262) 5.56mm Mk262 @@ -686,6 +702,7 @@ 5.56mm Mk262 5.56mm Mk262 5,56 мм Mk262 + 5,56mm Mk262 Caliber: 5.56x45 mm NATO (Mk262)<br />Rounds: 30 @@ -693,6 +710,7 @@ Calibre: 5.56x45 mm NATO (Mk262)<br />Cartouches: 30 Calibre: 5.56x45 mm NATO (Mk262)<br />Balas: 30 Калибр: 5,56x45 мм NATO (Mk262)<br />Патронов: 30 + Kaliber: 5,56x45mm NATO (Mk262)<br />Schuss: 30 5.56mm 30Rnd Mag (Mk318) @@ -700,6 +718,7 @@ 5.56mm 30Cps (Mk318) Cargador de 30 balas de 5.56mm (Mk318) Магазин из 30-ти 5.56 мм (Mk318) + 5,56mm 30-Schuss-Magazin (Mk318) 5.56mm Mk318 @@ -707,6 +726,7 @@ 5.56mm Mk318 5.56mm Mk318 5.56 мм Mk318 + 5,56mm Mk318 Caliber: 5.56x45 mm NATO (Mk318)<br />Rounds: 30 @@ -714,6 +734,7 @@ Calibre: 5.56x45 mm NATO (Mk318)<br />Cartouches: 30 Calibre: 5.56x45 mm NATO (Mk318)<br />Balas: 30 Калибр: 5,56x45 мм NATO (Mk318)<br />Патронов: 30 + Kaliber: 5,56x45mm NATO (Mk318)<br />Schuss: 30 5.56mm 30Rnd Mag (M995 AP) @@ -721,6 +742,7 @@ 5.56mm 30Cps (M995 AP) Cargador de 30 balas de 5.56mm (M995 AP) Магазин из 30-ти 5.56 мм (M995 AP) + 5,56mm 30-Schuss-Magazin (M995AP) 5.56mm AP @@ -728,6 +750,7 @@ 5.56mm AP 5.56mm AP 5.56 мм AP + 5,56mm AP Caliber: 5.56x45 mm NATO (M995 AP)<br />Rounds: 30 @@ -735,6 +758,7 @@ Calibre: 5.56x45 mm NATO (M995 AP)<br />Cartouches: 30 Calibre: 5.56x45 mm NATO (M995 AP)<br />Balas: 30 Калибр: 5,56x45 мм NATO (M995 AP)<br />Патронов: 30 + Kaliber: 5,56x45mm NATO (M995 AP)<br />Schuss: 30 7.62mm 10Rnd Mag (M118LR) @@ -742,6 +766,7 @@ 7.62mm 10Cps (M118LR) Cargador de 10 balas de 7.62mm (M118LR) Магазин из 10-ти 7,62 мм (M118LR) + 7,62mm 10-Schuss-Magazin (M118LR) 7.62mm M118LR @@ -749,6 +774,7 @@ 7.62mm M118LR 7.62mm (M118LR) 7,62 мм M118LR + 7,62mm M118LR Caliber: 7.62x51 mm NATO (M118LR)<br />Rounds: 10 @@ -756,6 +782,7 @@ Calibre: 7.62x51 mm NATO (M118LR)<br />Cartouches: 10 Calibre: 7.62x51 mm NATO (M118LR)<br />Balas: 10 Калибр: 7,62x51 мм NATO (M118LR)<br />Патронов: 10 + Kaliber: 7,62x51mm NATO (M118LR)<br />Schuss: 10 7.62mm 20Rnd Mag (M118LR) @@ -763,6 +790,7 @@ 7.62mm 20Cps (M118LR) Cargador de 20 balas de 7.62mm (M118LR) Магазин из 20-ти 7,62 мм (M118LR) + 7,62mm 20-Schuss-Magazin (M118LR) 7.62mm M118LR @@ -770,6 +798,7 @@ 7.62mm M118LR 7.62mm (M118LR) 7,62 мм M118LR + 7,62mm M118LR Caliber: 7.62x51 mm NATO (M118LR)<br />Rounds: 20 @@ -777,6 +806,7 @@ Calibre: 7.62x51 mm NATO (M118LR)<br />Cartouches: 20 Calibre: 7.62x51 mm NATO (M118LR)<br />Balas: 20 Калибр: 7,62x51 мм NATO (M118LR)<br />Патронов: 20 + Kaliber: 7,62x51mm NATO (M118LR)<br />Schuss: 20 7.62mm 10Rnd Mag (Mk316 Mod 0) @@ -784,6 +814,7 @@ 7.62mm 10Cps (Mk316 Mod 0) Cargador de 10 balas de 7.62mm (Mk316 Mod 0) Магазин из 10-ти 7,62 мм (Mk316 Mod 0) + 7,62mm 10-Schuss-Magazin (Mk316 Mod 0) 7.62mm Mk316 @@ -791,6 +822,7 @@ 7.62mm Mk316 7.62mm Mk316 7,62 мм Mk316 + 7.62mm Mk316 Caliber: 7.62x51 mm NATO (Mk316 Mod 0)<br />Rounds: 10 @@ -798,6 +830,7 @@ Calibre: 7.62x51 mm NATO (Mk316 Mod 0)<br />Cartouches: 10 Calibre: 7.62x51 mm NATO (Mk316 Mod 0)<br />Balas: 10 Калибр: 7,62x51 мм NATO (Mk316 Mod 0)<br />Патронов: 10 + Kaliber: 7.62x51 mm NATO (Mk316 Mod 0)<br />Schuss: 10 7.62mm 20Rnd Mag (Mk316 Mod 0) @@ -805,6 +838,7 @@ 7.62mm 20Cps (Mk316 Mod 0) Cargador de 20 balas de 7.62mm (Mk316 Mod 0) Магазин из 20-ти 7,62 мм (Mk316 Mod 0) + 7.62mm 20-Schuss-Magazin (Mk316 Mod 0) 7.62mm Mk316 @@ -812,6 +846,7 @@ 7.62mm Mk316 7.62mm Mk316 7,62 мм Mk316 + 7.62mm Mk316 Caliber: 7.62x51 mm NATO (Mk316 Mod 0)<br />Rounds: 20 @@ -819,6 +854,7 @@ Calibre: 7.62x51 mm NATO (Mk316 Mod 0)<br />Cartouches: 20 Calibre: 7.62x51 mm NATO (Mk316 Mod 0)<br />Balas: 20 Калибр: 7,62x51 мм NATO (Mk316 Mod 0)<br />Патронов: 20 + Kaliber: 7.62x51 mm NATO (Mk316 Mod 0)<br />Schuss: 20 7.62mm 10Rnd Mag (Mk319 Mod 0) @@ -826,6 +862,7 @@ 7.62mm 10Cps (Mk319 Mod 0) Cargador de 10 balas de 7.62mm (Mk319 Mod 0) Магазин из 10-ти 7,62 мм (Mk319 Mod 0) + 7,62mm 10-Schuss-Magazin (Mk319 Mod 0) 7.62mm Mk319 @@ -833,6 +870,7 @@ 7.62mm Mk319 7.62mm Mk319 7,62mm Mk319 + 7.62mm Mk319 Caliber: 7.62x51 mm NATO (Mk319 Mod 0)<br />Rounds: 10 @@ -840,6 +878,7 @@ Calibre: 7.62x51 mm NATO (Mk319 Mod 0)<br />Cartouches: 10 Calibre: 7.62x51 mm NATO (Mk319 Mod 0)<br />Balas: 10 Калибр: 7,62x51 мм NATO (Mk319 Mod 0)<br />Патронов: 10 + Kaliber: 7.62x51 mm NATO (Mk319 Mod 0)<br />Schuss: 10 7.62mm 20Rnd Mag (Mk319 Mod 0) @@ -847,6 +886,7 @@ 7.62mm 20Cps (Mk319 Mod 0) Cargador de 20 balas de 7.62mm (Mk319 Mod 0) Магазин из 20-ти 7,62 мм (Mk319 Mod 0) + 7,62mm 20-Schuss-Magazin (Mk319 Mod 0) 7.62mm Mk319 @@ -854,6 +894,7 @@ 7.62mm Mk319 7.62mm Mk319 7,62 мм Mk319 + 7.62mm Mk319 Caliber: 7.62x51 mm NATO (Mk319 Mod 0)<br />Rounds: 20 @@ -861,6 +902,7 @@ Calibre: 7.62x51 mm NATO (Mk319 Mod 0)<br />Cartouches: 20 Calibre: 7.62x51 mm NATO (Mk319 Mod 0)<br />Balas: 20 Калибр: 7,62x51 мм NATO (Mk319 Mod 0)<br />Патронов: 20 + Kaliber: 7.62x51 mm NATO (Mk319 Mod 0)<br />Schuss: 20 7.62mm 10Rnd Mag (M993 AP) @@ -868,6 +910,7 @@ 7.62mm 10Cps (M993 AP) Cargador de 10 balas de 7.62mm (M993 AP) Магазин из 10-ти 7,62 мм (M993 AP) + 7,62mm 10-Schuss-Magazin (M993 AP) 7.62mm AP @@ -875,6 +918,7 @@ 7.62mm AP 7.62mm AP 7,62mm AP + 7,62mm AP Caliber: 7.62x51 mm NATO (M993 AP)<br />Rounds: 10 @@ -882,6 +926,7 @@ Calibre: 7.62x51 mm NATO (M993 AP)<br />Cartouches: 10 Calibre: 7.62x51 mm NATO (M993 AP)<br />Balas: 10 Калибр: 7,62x51 мм NATO (M993 AP)<br />Патронов: 10 + Kaliber: 7.62x51 mm NATO (M993 AP)<br />Schuss: 10 7.62mm 20Rnd Mag (M993 AP) @@ -889,6 +934,7 @@ 7.62mm 20Cps (M993 AP) Cargador de 20 balas de 7.62mm (M993 AP) Магазин из 20-ти 7,62 мм (M993 AP) + 7,62mm 20-Schuss-Magazin (M993 AP) 7.62mm AP @@ -896,6 +942,7 @@ 7.62mm AP 7.62mm AP 7,62 мм AP + 7,62mm AP Caliber: 7.62x51 mm NATO (M993 AP)<br />Rounds: 20 @@ -903,13 +950,15 @@ Calibre: 7.62x51 mm NATO (M993 AP)<br />Cartouches: 20 Calibre: 7.62x51 mm NATO (M993 AP)<br />Balas: 20 Калибр: 7,62x51 мм NATO (M993 AP)<br />Патронов: 20 - + Kaliber: 7.62x51 mm NATO (M993 AP)<br />Schuss: 20 +
7.62mm 20Rnd Mag (Mk248 Mod 0) Magazynek 7,62mm 20rd (Mk248 Mod 0) 7.62mm 20Cps (Mk248 Mod 0) Cargador de 20 balas de 7.62mm (Mk248 Mod 0) Магазин из 20-ти 7,62 мм (Mk248 Mod 0) + 7,62mm 20-Schuss-Magazin (Mk248 Mod 0) 7.62mm (Mk248 Mod 0) @@ -917,6 +966,7 @@ 7.62mm (Mk248 Mod 0) 7.62mm (Mk248 Mod 0) 7,62 мм (Mk248 Mod 0) + 7,62mm (Mk248 Mod 0) Caliber: 7.62x67 mm NATO (Mk248 Mod 0)<br />Rounds: 20 @@ -924,6 +974,7 @@ Calibre: 7.62x67mm NATO (Mk248 Mod 0)<br />Cartouches: 20 Calibre: 7.62x67 mm NATO (Mk248 Mod 0)<br />Balas: 20 Калибр: 7,62x67 мм NATO (Mk248 Mod 0)<br />Патронов: 20 + Kaliber: 7.62x51 mm NATO (Mk248 Mod 0)<br />Schuss: 20 7.62mm 20Rnd Mag (Mk248 Mod 1) @@ -931,6 +982,7 @@ 7.62mm 20Cps (Mk248 Mod 1) Cargador de 20 balas de 7.62mm (Mk248 Mod 1) Магазин из 20-ти 7,62 мм (Mk248 Mod 1) + 7,62mm 20-Schuss-Magazin (Mk248 Mod 1) 7.62mm (Mk248 Mod 1) @@ -938,6 +990,7 @@ 7.62mm (Mk248 Mod 1) 7.62mm (Mk248 Mod 1) 7,62 мм (Mk248 Mod 1) + 7,62mm (Mk248 Mod 1) Caliber: 7.62x67 mm NATO (Mk248 Mod 1)<br />Rounds: 20 @@ -945,6 +998,7 @@ Calibre: 7.62x67mm NATO (Mk248 Mod 1)<br />Cartouches: 20 Calibre: 7.62x67 mm NATO (Mk248 Mod 1)<br />Balas: 20 Калибр: 7,62x67 мм NATO (Mk248 Mod 1)<br />Патронов: 20 + Kaliber: 7.62x51 mm NATO (Mk248 Mod 1)<br />Schuss: 20 7.62mm 20Rnd Mag (Berger Hybrid OTM) @@ -952,6 +1006,7 @@ 7.62 20Cps (Berger Hybrid OTM) Cargador de 20 balas de 7.62mm (Berger Hybrid OTM) Магазин из 20-ти 7,62 мм (Berger Hybrid OTM) + 7,62mm 20-Schuss-Magazin (Berger Hybrid OTM) 7.62mm (OTM) @@ -959,6 +1014,7 @@ 7.62mm (OTM) 7.62mm (OTM) 7,62 мм (OTM) + 7,62mm (OTM) Caliber: 7.62x67 mm NATO (Berger Hybrid OTM)<br />Rounds: 20 @@ -966,6 +1022,7 @@ Calibre: 7.62x67mm NATO (Berger Hybrid OTM)<br />Cartouches: 20 Calibre: 7.62x67 mm NATO (Berger Hybrid OTM)<br />Balas: 20 Калибр: 7,62x67 мм NATO (Berger Hybrid OTM)<br />Патронов: 20 + Kaliber: 7.62x67 mm NATO (Berger Hybrid OTM)<br />Schuss: 20 6.5x47mm 30Rnd Mag (HPBT Scenar) @@ -973,6 +1030,7 @@ Cargador de 30 balas de 6.5x47mm (HPBT Scenar) Magazynek 6,5x47 mm 30rd (HPBT Scenar) Магазин из 30-ти 6,5x47 мм (HPBT Scenar) + 6,5x47mm 30-Schuss-Magazin (HPBT Scenar) 6.5mm Lapua @@ -980,6 +1038,7 @@ 6.5mm Lapua 6,5mm Lapua 6,5 мм Lapua + 6,5 Lapua Caliber: 6.5x47mm (HPBT Scenar)<br />Rounds: 30<br />Used in: MXM @@ -987,10 +1046,12 @@ Calibre: 6.5x47mm (HPBT Scenar)<br />Balas: 30 Kaliber: 6,5x47 mm (HPBT Scenar)<br />Pociski: 30 Калибр: 6,5x47 мм (HPBT Scenar)<br />Патронов: 30 + Kaliber: 6,5x47 mm (HPBT Scenar)<br />Schuss: 30<br />Verwendet für: MXM 6.5mm Creedmor 30Rnd Mag Magazynek 6,5mm Creedmor 30rd + 6,5mm Creedmor 30-Schuss-Magazin 6.5mm CM @@ -998,10 +1059,12 @@ 6.5mm CM 6,5mm CM 6,5 мм CM + 6,5mm CM Caliber: 6.5mm Creedmor<br />Rounds: 30<br />Used in: MXM Kaliber: 6,5mm Creedmor<br />Pociski: 30<br />Używany w: MXM + Kaliber: 6,5x47 mm Creedmor<br />Schuss: 30<br />Verwendet für: MXM .338 10Rnd Mag (300gr Sierra MatchKing HPBT) @@ -1009,6 +1072,7 @@ Cargador de 10 balas de 8.6x70mm (300gr Sierra MatchKing HPBT) Magazynek .338 10rd (300gr Sierra MatchKing HPBT) Магазин из 10-ти .338 (300 гран Sierra MatchKing HPBT) + .338 10-Schuss-Magazin (300gr Sierra MatchKing HPBT) .338 (HPBT) @@ -1016,6 +1080,7 @@ .338 (HPBT) .338 (HPBT) .338 (HPBT) + .338 (HPBT) Caliber: 8.6x70mm (300gr Sierra MatchKing HPBT)<br />Rounds: 10 @@ -1023,6 +1088,7 @@ Calibre: 8.6x70mm (300gr Sierra MatchKing HPBT)<br />Balas: 10 Kaliber: 8,6x70 mm (300gr Sierra MatchKing HPBT)<br />Pociski: 10 Калибр: .338 (300 гран Sierra MatchKing HPBT)<br />Патронов: 10 + Kaliber: 8,6x70 mm (300gr Sierra MatchKing HPBT)<br />Schuss: 10 .338 10Rnd Mag (API526) @@ -1030,6 +1096,7 @@ Cargador de 10 balas de .338 (API526) Magazynek .338 10rd (API526) Магазин из 10-ти .338 (API526) + .338 10-Schuss-Magazin (API526) .338 AP @@ -1037,6 +1104,7 @@ .338 AP .338 AP .338 бронебойные + .338 (AP) Caliber: 8.6x70mm (API526)<br />Rounds: 10 @@ -1044,6 +1112,7 @@ Calibre: 8.6x70mm (API526)<br />Balas: 10 Kaliber: 8,6x70 mm (API526)<br />Pociski: 10 Калибр: .338 (API526)<br />Патронов: 10 + Kaliber: 8,6x70 mm (API526)<br />Schuss: 10 12.7x99mm 5Rnd Mag @@ -1051,6 +1120,7 @@ Cargador de 5 balas de 12.7x99mm Magazynek 12,7x99 mm 5rd Магазин из 5-ти 12,7x99 мм + 12,7x99mm 5-Schuss-Magazin 12.7mm @@ -1058,6 +1128,7 @@ 12.7mm 12,7mm 12,7 мм + 12,7mm Caliber: 12.7x99mm<br />Rounds: 5 @@ -1065,24 +1136,28 @@ Calibre: 12.7x99mm<br />Balas: 5 Kaliber: 12,7x99 mm<br />Pociski: 5 Калибр: 12,7x99 мм<br />Патронов: 5 + Kaliber: 12,7x99mm<br />Schuss: 5 12.7x99mm API 5Rnd Mag 12.7x99mm API 5Cps Cargador de 5 balas de 12.7x99mm API Magazynek 12,7x99mm API 5rd + 12,7x99mm 5-Schuss-Magazin (API) 12.7mm API 12.7mm API 12.7mm API 12,7mm API + 12,7mm API Caliber: 12.7x99mm API<br />Rounds: 5 Calibre: 12.7x99mm API<br />Cartouches: 5 Calibre: 12.7x99mm API<br />Balas: 5 Kaliber: 12,7x99 mm API<br />Pociski: 5 + Kaliber:12,7x99mm API<br />Schuss: 5 12.7x99mm 5Rnd Mag (AMAX) @@ -1090,6 +1165,7 @@ Cargador de 5 balas de 12.7x99mm (AMAX) Magazynek 12,7x99 mm 5rd (AMAX) Магазин из 5-ти 12,7x99 мм (A-MAX) + 12,7x99mm 5-Schuss-Magazin (AMAX) 12.7mm @@ -1097,6 +1173,7 @@ 12.7mm 12,7mm 12,7 мм + 12,7mm Caliber: 12.7x99mm (AMAX)<br />Rounds: 5 @@ -1104,6 +1181,7 @@ Calibre: 12.7x99mm (AMAX)<br />Balas: 5 Kaliber: 12,7x99 mm (AMAX)<br />Pociski: 5 Калибр: 12,7x99 мм (A-MAX)<br />Патронов: 5 + Kaliber:12,7x99mm (AMAX)<br />Schuss: 5
-
+
\ No newline at end of file diff --git a/addons/interact_menu/stringtable.xml b/addons/interact_menu/stringtable.xml index 48ee00f475..8b4a594026 100644 --- a/addons/interact_menu/stringtable.xml +++ b/addons/interact_menu/stringtable.xml @@ -18,6 +18,7 @@ Toujours afficher le curseur pour les interactions Mostra sempre il cursore per le interazioni Zawsze wyświetlaj kursor dla interakcji + Immer den Cursor für Fremd-Interaktionen anzeigen
Display interaction menus as lists @@ -76,21 +77,25 @@ Interaction - Text Max Interakcja - Tekst max Interaction -Texte Max + Interaktionstextfarbe Max Interaction - Text Min Interakcja - Tekst min Interaction - Texte Min + Interaktionstextfarbe Min Interaction - Shadow Max Interakcja - Cień max Interaction - Ombre Max + Interaktionstextschatten Max Interaction - Shadow Min Interakcja - Cień min Interaction - Ombre Min + Interaktionstextschatten Min
\ No newline at end of file diff --git a/addons/medical/stringtable.xml b/addons/medical/stringtable.xml index ec6b3aa374..491511092e 100644 --- a/addons/medical/stringtable.xml +++ b/addons/medical/stringtable.xml @@ -1084,6 +1084,7 @@ Personal Aid Kit for in field stitching or advanced treatment W znacznym stopniu poprawia stan pacjenta Полевая аптчека для продвинутого лечения и зашивания ран + Persönliches Verbandspäckchen zum ambulanten Nähen und fortgeschrittener Behandlung.
Use Personal Aid Kit @@ -1423,30 +1424,37 @@ Patient %1<br/>is %2.<br/>%3.<br/>%4 Пациент %1<br/>%2.<br/>%3.<br/>%4 + Patient %1<br/>ist %2.<br/>%3.<br/>%4 alive жив + lebendig dead мертв + tot He's lost some blood Есть кровопотеря + Er hat etwas Blut verloren He hasn't lost blood Нет кровопотери + Er hat kein Blut verloren He is in pain Испытывает боль + Er hat Schmerzen He is not in pain Не испытывает боли + Er hat keine Schmerzen Bandaged @@ -1942,4 +1950,4 @@ Перелом
-
+
\ No newline at end of file diff --git a/addons/missileguidance/stringtable.xml b/addons/missileguidance/stringtable.xml index e0923981f3..791e7c1c30 100644 --- a/addons/missileguidance/stringtable.xml +++ b/addons/missileguidance/stringtable.xml @@ -17,6 +17,7 @@ Advanced missile guidance, or AMG, provides multiple enhancements to missile locking and firing. It is also a framework required for missile weapon types. Zaawansowane namierzanie rakiet, lub ZNR, dostarcza wiele poprawek do systemu namierzania rakiet oraz dodaje nowe tryby strzału. Jest to wymagana opcja dla broni rakietowych. Guía de misiles avanzada, o AMG en sus siglas en inglés, ofrece múltiples mejoras en el fijado y disparo de misiles. Es también un framework requerido para armas de tipo misil. + Das Erweiterte Raketenlenksystem, auch AMG genannt, bietet viele Verbesserungen zum Aufschalten und Feuern mittels gelenkten Raketen.
Hydra-70 DAGR Missile diff --git a/addons/mk6mortar/stringtable.xml b/addons/mk6mortar/stringtable.xml index 19d68d8eb1..465585b9f0 100644 --- a/addons/mk6mortar/stringtable.xml +++ b/addons/mk6mortar/stringtable.xml @@ -1,17 +1,21 @@  - - - 82mm Rangetable - - - Range Table for the MK6 82mm Mortar - - - Open 82mm Rangetable - - - Charge - - + + + 82mm Rangetable + 82mm Distanztabelle + + + Range Table for the MK6 82mm Mortar + Distanztabelle für den Mk6 82mm Mortar + + + Open 82mm Rangetable + Öffne 82mm Distanztabelle + + + Charge + Ladung + + \ No newline at end of file diff --git a/addons/optionsmenu/stringtable.xml b/addons/optionsmenu/stringtable.xml index cdbdcf72a0..8a86563690 100644 --- a/addons/optionsmenu/stringtable.xml +++ b/addons/optionsmenu/stringtable.xml @@ -218,6 +218,7 @@ Menu option: taille de l'UI Skalowanie UI menu ustawień Opción de escalado del menú UI + UI Skalierung
-
+
\ No newline at end of file diff --git a/addons/realisticnames/stringtable.xml b/addons/realisticnames/stringtable.xml index 5e9aaa701d..2d189568f8 100644 --- a/addons/realisticnames/stringtable.xml +++ b/addons/realisticnames/stringtable.xml @@ -1487,6 +1487,7 @@ Noreen "Bad News" ULR Noreen "Bad News" ULR Noreen "Bad News" ULR + Noreen "Bad News" ULR
Noreen "Bad News" ULR (Black) @@ -1494,6 +1495,7 @@ Noreen "Bad News" ULR (Noir) Noreen "Bad News" ULR (Negro) Noreen "Bad News" ULR (черный) + Noreen "Bad News" ULR (Schwarz) Noreen "Bad News" ULR (Camo) @@ -1501,6 +1503,7 @@ Noreen "Bad News" ULR (Camo) Noreen "Bad News" ULR (Camuflaje) Noreen "Bad News" ULR (камо) + Noreen "Bad News" ULR (Camo) Noreen "Bad News" ULR (Sand) @@ -1508,6 +1511,7 @@ Noreen "Bad News" ULR (Beige) Noreen "Bad News" ULR (Arena) Noreen "Bad News" ULR (песочный) + Noreen "Bad News" ULR (Sand) SIG 556 @@ -1516,6 +1520,7 @@ SIG 556 SIG 556 SIG 556 + SIG 556 SIG 556 (Black) @@ -1524,6 +1529,7 @@ SIG 556 (Negro) SIG 556 (черный) SIG 556 (czarny) + SIG 556 (Schwarz) SIG 556 (Khaki) @@ -1532,6 +1538,7 @@ SIG 556 (Caqui) SIG 556 (хаки) SIG 556 (khaki) + SIG 556 (Khaki) SIG 556 (Sand) @@ -1540,6 +1547,7 @@ SIG 556 (Arena) SIG 556 (песочный) SIG 556 (piaskowy) + SIG 556 (Sand) SIG 556 (Camo) @@ -1548,6 +1556,7 @@ SIG 556 (Camuflaje) SIG 556 (камо) SIG 556 (kamuflaż) + SIG 556 (Camo) SIG 556 (Woodland) @@ -1556,6 +1565,7 @@ SIG 556 (Bosque) SIG 556 (лесной) SIG 556 (leśny) + SIG 556 (Woodland) SIG 556 (provisional) spotter @@ -1564,6 +1574,7 @@ SIG 556 (provisional) observador SIG 556 (provisional) корректировщик SIG 556 (prowizoryczny) obserwator + SIG 556 (provisorisch) Beobachter ASP-1 Kir @@ -1571,6 +1582,7 @@ ASP-1 Kir ASP-1 Kir ASP-1 Kir + ASP-1 Kir ASP-1 Kir (Black) @@ -1578,6 +1590,7 @@ ASP-1 Kir (Noir) ASP-1 Kir (Negro) ASP-1 Kir (черный) + ASP-1 Kir (Schwarz) ASP-1 Kir (Tan) @@ -1585,6 +1598,7 @@ ASP-1 Kir (Tan) ASP-1 Kir (Tan) ASP-1 Kir (бронзовый) + ASP-1 Kir (Hellbraun) Cyrus @@ -1592,6 +1606,7 @@ Cyrus Cyrus Cyrus + Cyrus Cyrus (Black) @@ -1599,6 +1614,7 @@ Cyrus (Noir) Cyrus (Negro) Cyrus (черный) + Cyrus (Schwarz) Cyrus (Hex) @@ -1606,6 +1622,7 @@ Cyrus (Hex) Cyrus (Hex) Cyrus (гекс) + Cyrus (Hex) Cyrus (Tan) @@ -1613,6 +1630,7 @@ Cyrus (Tan) Cyrus (Tan) Cyrus (бронза) + Cyrus (Hellbraun) M14 @@ -1621,6 +1639,7 @@ M14 M14 M14 + M14 M14 (Camo) @@ -1629,6 +1648,7 @@ M14 (Camuflaje) M14 (Камо) M14 (kamuflaż) + M14 (Camo) M14 (Olive) @@ -1637,6 +1657,7 @@ M14 (Oliva) M14 (Олива) M14 (oliwkowy) + M14 (Olive) HK121 @@ -1644,6 +1665,7 @@ HK121 HK121 HK121 + HK121 HK121 (Hex) @@ -1651,6 +1673,7 @@ HK121 (Hex) HK121 (Hex) HK121 (гекс) + HK121 (Hex) HK121 (Tan) @@ -1658,6 +1681,7 @@ HK121 (Tan) HK121 (Tan) HK121 (бронза) + HK121 (Hellbraun) LWMMG @@ -1666,6 +1690,7 @@ LWMMG LWMMG LWMMG + LWMMG LWMMG (MTP) @@ -1674,6 +1699,7 @@ LWMMG (MTP) LWMMG (MTP) LWMMG (MTP) + LWMMG (MTP) LWMMG (Black) @@ -1682,6 +1708,7 @@ LWMMG (Negro) LWMMG (Черный) LWMMG (czarny) + LWMMG (Schwarz) LWMMG (Sand) @@ -1690,6 +1717,7 @@ LWMMG (Arena) LWMMG (Песочный) LWMMG (piaskowy) + LWMMG (Sand)
-
+
\ No newline at end of file From f8b8d7dd165eae627550c949e4b78def6af1bf99 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Tue, 28 Apr 2015 00:08:28 -0500 Subject: [PATCH 203/256] Set Lock on postInit so spawned vehicles are set --- addons/vehiclelock/CfgEventHandlers.hpp | 23 ++++++++ addons/vehiclelock/CfgVehicles.hpp | 57 ++++++++++++------- addons/vehiclelock/XEH_preInit.sqf | 1 + addons/vehiclelock/config.cpp | 4 ++ .../functions/fnc_handleVehicleInitPost.sqf | 39 +++++++++++++ .../vehiclelock/functions/fnc_moduleInit.sqf | 23 +------- .../functions/fnc_onOpenInventory.sqf | 2 +- 7 files changed, 105 insertions(+), 44 deletions(-) create mode 100644 addons/vehiclelock/functions/fnc_handleVehicleInitPost.sqf diff --git a/addons/vehiclelock/CfgEventHandlers.hpp b/addons/vehiclelock/CfgEventHandlers.hpp index cf704d000c..85db25d4a0 100644 --- a/addons/vehiclelock/CfgEventHandlers.hpp +++ b/addons/vehiclelock/CfgEventHandlers.hpp @@ -15,3 +15,26 @@ class Extended_InventoryOpened_EventHandlers { }; }; }; +class Extended_InitPost_EventHandlers { + class CAManBase { + class ADDON { + serverInit = QUOTE(_this call FUNC(handleUnitInitPost)); + }; + }; + class Car { + class ADDON { + serverInit = QUOTE(_this call FUNC(handleVehicleInitPost)); + }; + }; + class Tank { + class ADDON { + serverInit = QUOTE(_this call FUNC(handleVehicleInitPost)); + }; + }; + class Helicopter { + class ADDON { + serverInit = QUOTE(_this call FUNC(handleVehicleInitPost)); + }; + }; +}; + diff --git a/addons/vehiclelock/CfgVehicles.hpp b/addons/vehiclelock/CfgVehicles.hpp index 65ad0568d6..94bcf34317 100644 --- a/addons/vehiclelock/CfgVehicles.hpp +++ b/addons/vehiclelock/CfgVehicles.hpp @@ -1,50 +1,65 @@ #define MACRO_LOCK_ACTIONS \ - class ACE_MainActions { \ + class ACE_SelfActions { \ class ACE_unlockVehicle { \ displayName = "$STR_ACE_Vehicle_Action_UnLock"; \ - distance = 4; \ condition = QUOTE(([ARR_2(_player, _target)] call FUNC(hasKeyForVehicle)) && {(locked _target) in [ARR_2(2,3)]}); \ statement = QUOTE([ARR_3('VehicleLock_SetVehicleLock', [_target], [ARR_2(_target,false)])] call EFUNC(common,targetEvent)); \ - showDisabled = 0; \ priority = 0.3; \ icon = QUOTE(PATHTOF(UI\key_menuIcon_ca.paa)); \ }; \ class ACE_lockVehicle { \ displayName = "$STR_ACE_Vehicle_Action_Lock"; \ - distance = 4; \ condition = QUOTE(([ARR_2(_player, _target)] call FUNC(hasKeyForVehicle)) && {(locked _target) in [ARR_2(0,1)]}); \ statement = QUOTE([ARR_3('VehicleLock_SetVehicleLock', [_target], [ARR_2(_target,true)])] call EFUNC(common,targetEvent)); \ - showDisabled = 0; \ priority = 0.2; \ icon = QUOTE(PATHTOF(UI\key_menuIcon_ca.paa)); \ }; \ class ACE_lockpickVehicle { \ displayName = "$STR_ACE_Vehicle_Action_Lockpick"; \ - distance = 4; \ condition = QUOTE([ARR_3(_player, _target, 'canLockpick')] call FUNC(lockpick)); \ statement = QUOTE([ARR_3(_player, _target, 'startLockpick')] call FUNC(lockpick)); \ - showDisabled = 0; \ priority = 0.1; \ }; \ + }; \ + class ACE_Actions { \ + class ACE_MainActions { \ + class ACE_unlockVehicle { \ + displayName = "$STR_ACE_Vehicle_Action_UnLock"; \ + distance = 4; \ + condition = QUOTE(([ARR_2(_player, _target)] call FUNC(hasKeyForVehicle)) && {(locked _target) in [ARR_2(2,3)]}); \ + statement = QUOTE([ARR_3('VehicleLock_SetVehicleLock', [_target], [ARR_2(_target,false)])] call EFUNC(common,targetEvent)); \ + priority = 0.3; \ + icon = QUOTE(PATHTOF(UI\key_menuIcon_ca.paa)); \ + }; \ + class ACE_lockVehicle { \ + displayName = "$STR_ACE_Vehicle_Action_Lock"; \ + distance = 4; \ + condition = QUOTE(([ARR_2(_player, _target)] call FUNC(hasKeyForVehicle)) && {(locked _target) in [ARR_2(0,1)]}); \ + statement = QUOTE([ARR_3('VehicleLock_SetVehicleLock', [_target], [ARR_2(_target,true)])] call EFUNC(common,targetEvent)); \ + priority = 0.2; \ + icon = QUOTE(PATHTOF(UI\key_menuIcon_ca.paa)); \ + }; \ + class ACE_lockpickVehicle { \ + displayName = "$STR_ACE_Vehicle_Action_Lockpick"; \ + distance = 4; \ + condition = QUOTE([ARR_3(_player, _target, 'canLockpick')] call FUNC(lockpick)); \ + statement = QUOTE([ARR_3(_player, _target, 'startLockpick')] call FUNC(lockpick)); \ + priority = 0.1; \ + }; \ + }; \ }; class CfgVehicles { class LandVehicle; class Car: LandVehicle { - class ACE_Actions { - MACRO_LOCK_ACTIONS - }; + MACRO_LOCK_ACTIONS }; class Tank: LandVehicle { - class ACE_Actions { - MACRO_LOCK_ACTIONS - }; + MACRO_LOCK_ACTIONS }; class Air; class Helicopter: Air { - class ACE_Actions { - MACRO_LOCK_ACTIONS - }; + MACRO_LOCK_ACTIONS }; class Logic; @@ -55,7 +70,7 @@ class CfgVehicles { author = "$STR_ACE_Common_ACETeam"; category = "ACE"; displayName = "Vehicle Lock Setup"; - function = QUOTE(DFUNC(moduleInit)); + function = QFUNC(moduleInit); scope = 2; isGlobal = 0; icon = QUOTE(PATHTOF(UI\Icon_Module_VehicleLock_ca.paa)); @@ -67,9 +82,9 @@ class CfgVehicles { typeName = "BOOL"; defaultValue = 0; }; - class SetLockState { - displayName = "Set Lock State"; // Argument label - description = "Set lock state for all vehicles on map at start"; // Tooltip description + class VehicleStartingLockState { + displayName = "Vehicle Starting Lock State"; // Argument label + description = "Set lock state for all vehicles (removes ambiguous lock states)"; // Tooltip description typeName = "NUMBER"; // Value type, can be "NUMBER", "STRING" or "BOOL" class values { class None {name = "As Is"; value = 0; default = 1;}; @@ -93,7 +108,7 @@ class CfgVehicles { author = "$STR_ACE_Common_ACETeam"; category = "ACE"; displayName = "Vehicle Key Assign"; - function = QUOTE(DFUNC(moduleSync)); + function = QFUNC(moduleSync); scope = 2; isGlobal = 0; icon = QUOTE(PATHTOF(UI\Icon_Module_VehicleKey_ca.paa)); diff --git a/addons/vehiclelock/XEH_preInit.sqf b/addons/vehiclelock/XEH_preInit.sqf index bdab28fc75..18a7062c24 100644 --- a/addons/vehiclelock/XEH_preInit.sqf +++ b/addons/vehiclelock/XEH_preInit.sqf @@ -4,6 +4,7 @@ ADDON = false; PREP(addKeyForVehicle); PREP(getVehicleSideKey); +PREP(handleVehicleInitPost); PREP(hasKeyForVehicle); PREP(lockpick); PREP(moduleInit); diff --git a/addons/vehiclelock/config.cpp b/addons/vehiclelock/config.cpp index 248a1e7ca0..608a892b45 100644 --- a/addons/vehiclelock/config.cpp +++ b/addons/vehiclelock/config.cpp @@ -20,6 +20,10 @@ class ACE_Settings { class GVAR(LockVehicleInventory) { value = 0; typeName = "BOOL"; + }; + class GVAR(VehicleStartingLockState) { + value = -1; + typeName = "SCALAR"; }; }; diff --git a/addons/vehiclelock/functions/fnc_handleVehicleInitPost.sqf b/addons/vehiclelock/functions/fnc_handleVehicleInitPost.sqf new file mode 100644 index 0000000000..df875b1859 --- /dev/null +++ b/addons/vehiclelock/functions/fnc_handleVehicleInitPost.sqf @@ -0,0 +1,39 @@ +/* + * Author: PabstMirror + * Function for sync module. Assigns keys for all synced vehicles to any players that are synced. + * + * Arguments: + * 0: Vehicle + * + * Return Value: + * None + * + * Example: + * [car] call ACE_VehicleLock_fnc_handleVehicleInitPost + * + * Public: No + */ +#include "script_component.hpp" + +PARAMS_1(_vehicle); + +if (!isServer) exitWith {}; +if (GVAR(VehicleStartingLockState) == -1) exitWith {}; + +[{ + private ["_lock"]; + PARAMS_1(_vehicle); + if ((_vehicle isKindOf "Car") || {_vehicle isKindOf "Tank"} || {_vehicle isKindOf "Helicopter"}) then { + //set lock state (eliminates the ambigious 1-"Default" and 3-"Locked for Player" states) + _lock = switch (GVAR(VehicleStartingLockState)) do { + case (0): {(locked _vehicle) in [2, 3]}; + case (1):{true}; + case (2):{false}; + }; + if (((_lock) && {(locked _vehicle) != 2}) || {(!_lock) && {(locked _vehicle) != 0}}) then { + TRACE_3("Setting Lock State",_lock,(typeOf _vehicle),_vehicle); + ["VehicleLock_SetVehicleLock", [_vehicle], [_vehicle, _lock]] call EFUNC(common,targetEvent); + }; + }; + //Delay call until mission start (so everyone has the eventHandler's installed) +}, [_vehicle], 0.25, 0.25] call EFUNC(common,waitAndExecute); \ No newline at end of file diff --git a/addons/vehiclelock/functions/fnc_moduleInit.sqf b/addons/vehiclelock/functions/fnc_moduleInit.sqf index c26e8aacbd..510b8ec7be 100644 --- a/addons/vehiclelock/functions/fnc_moduleInit.sqf +++ b/addons/vehiclelock/functions/fnc_moduleInit.sqf @@ -17,8 +17,6 @@ */ #include "script_component.hpp" -private ["_sideKeysAssignment", "_setLockState", "_lock"]; - PARAMS_3(_logic,_syncedUnits,_activated); if (!_activated) exitWith {WARNING("Vehicle Lock Init Module - placed but not active");}; @@ -27,23 +25,4 @@ if (!isServer) exitWith {}; //Set the GVAR for default lockpick strength [_logic, QGVAR(DefaultLockpickStrength), "DefaultLockpickStrength"] call EFUNC(common,readSettingFromModule); [_logic, QGVAR(LockVehicleInventory), "LockVehicleInventory"] call EFUNC(common,readSettingFromModule); - -_setLockState = _logic getVariable["SetLockState", 0]; -[{ - PARAMS_1(_setLockState); - { - if ((_x isKindOf "Car") || {_x isKindOf "Tank"} || {_x isKindOf "Helicopter"}) then { - //set lock state (eliminates the ambigious 1-"Default" and 3-"Locked for Player" states) - _lock = switch (_setLockState) do { - case (0): {(locked _x) in [2, 3]}; - case (1):{true}; - case (2):{false}; - }; - if (((_lock) && {(locked _x) != 2}) || {(!_lock) && {(locked _x) != 0}}) then { - TRACE_3("Setting Lock State", _lock, (typeOf _x), _x); - ["VehicleLock_SetVehicleLock", [_x], [_x, _lock]] call EFUNC(common,targetEvent); - }; - }; - } forEach vehicles; - //Delay call until mission start (so everyone has the eventHandler's installed) -}, [_setLockState], 0.25, 0.25] call EFUNC(common,waitAndExecute); +[_logic, QGVAR(VehicleStartingLockState), "VehicleStartingLockState"] call EFUNC(common,readSettingFromModule); diff --git a/addons/vehiclelock/functions/fnc_onOpenInventory.sqf b/addons/vehiclelock/functions/fnc_onOpenInventory.sqf index 65c3068dce..8199f4b850 100644 --- a/addons/vehiclelock/functions/fnc_onOpenInventory.sqf +++ b/addons/vehiclelock/functions/fnc_onOpenInventory.sqf @@ -34,7 +34,7 @@ if (GVAR(LockVehicleInventory) && //if setting not enabled playSound "ACE_Sound_Click"; //don't open the vehicles inventory _handeled = true; - //Just opens a dummy groundContainer + //Just opens a dummy groundContainer (so the player can still see their own inventory) ACE_player action ["Gear", objNull]; }; From 1d434949de5bc25952c725ddeeb90a8f1f1a0a08 Mon Sep 17 00:00:00 2001 From: NukeDev Date: Tue, 28 Apr 2015 17:46:35 +0200 Subject: [PATCH 204/256] Some Italian Translation's Changes --- addons/common/stringtable.xml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/addons/common/stringtable.xml b/addons/common/stringtable.xml index de10a60893..49cdba1583 100644 --- a/addons/common/stringtable.xml +++ b/addons/common/stringtable.xml @@ -380,7 +380,7 @@ Set the desired location of the progress bar on your screen. Setze die gewünschte Position der Fortschrittsanzeige fest. Seleccionar la ubicación deseada de la barra de progreso en tu pantalla - Modifica la posizione su schermo della barra di avanzamento. + Modifica la posizione della barra di avanzamernto sullo schermo Установите желаемое положение строки состояния на экране. Ustaw pożądaną lokalizację paska postępu na ekranie Appliquer la position de la barre de progression sur l'écran @@ -391,7 +391,7 @@ Hint Background color Hintergrundfarbe der Hinweise Color de fondo de las notificaciones - Sfondo dei Suggerimenti + Colore di sfondo dei Suggerimenti Цвет фона всплывающих подсказок Kolor tła powiadomień Notification: couleur de l'arrière plan @@ -413,7 +413,7 @@ Hint text font color Textfarbe der Hinweise Color del texto de las notificaciones - Testo dei Suggerimenti + Il colore del Testo dei Suggerimenti Цвет шрифта всплывающих подсказок Kolor tekstu powiadomień Notification: couleur du texte @@ -424,7 +424,7 @@ The color of the text font from the ACE hints. This color is the default color for all text displayed through the ACE Hint system, if the hint text has no other color specified. Wähle die Textfarbe für ACE-Hinweise. Die gewählte Farbe wird als Standartfarbe der Hinweise angezeigt, wenn der Hinweis selbst keine spezifische Farbe hat. El color del texto de las notificaciones del ACE. Este es el color predeterminado para todo el texto que se muestra a través del sistema de notificaciones del ACE, si el texto de notificación no tiene otro color especificado. - Il colore del testo dei suggerimenti dell'ACE. Questo è il colore standard per tutti i caratteri mostrati dal sistema di suggerimenti dell'ACE, se questo non è altrimenti specificato. + Il colore del testo dei suggerimenti dell'ACE. Questo è il colore standard per tutti i caratteri mostrati dal sistema di suggerimenti dell'ACE, se il colore del testo non è specificato. Цвет шрифта текста всплывающих подсказок АСЕ. Этот цвет является стандартным для всего текста, транслирующегося через систему подсказок АСЕ, если не установлено другого цвета для текста подсказок. Kolor tekstu dla powiadomień ACE. Ten kolor jest domyślnym dla wszystkich tekstów wyświetlanych poprzez System Powiadomień ACE, jeżeli dla powiadomienia nie określono innego koloru. Notification ACE: couleur du texte. C'est la couleur par défaut de tout texte affiché dans les notifications ACE, si aucune couleur n'est spécifiée pour les notifications @@ -447,7 +447,7 @@ Die Bananen (Musa) sind eine Pflanzengattung in der Familie der Bananengewächse (Musaceae) innerhalb der Einkeimblättrigen Pflanzen (Monokotyledonen). Una banana es una fruta comestible, botanicamente una baya, producida por varios tipos de grandes plantas herbáceas del género Musa. Banán je protáhlé ovoce a plod banánovníku (epigeická bobule). - Una banana è un frutto commestibile, nello specifico una bacca cuoiosa, prodotto da un gran numero di grandi pianti erbacee dotate di fiori, della famiglia delle Musaceae. + Una banana è un frutto commestibile, nello specifico una bacca cuoiosa, prodotta da un gran numero di grandi piante erbacee dotate di fiori, della famiglia delle Musaceae. Банан - это съедобный фрукт, ягода с ботанической точки зрения, произрастающий на нескольких видах травянистых растениях рода Банан (Musa). A banán egy ehető gyümölcs, technikai szempontból bogyótermés, melyet több fürtvirágzatú növény termel a Musa rendszertani nemzetségben. Rodzaj roślin z rodziny bananowatych, obejmujący około 80 gatunków.<br />Przedstawiciele są typowymi przedstawicielami flory międzyzwrotnikowej Azji, Afryki i Australii.<br />Część gatunków dostarcza jadalnych owoców. Słowo banan pochodzi prawdopodobnie od arabskiego słowa banan, co oznacza palec, lub afrykańskiego języka wolof, w którym rośliny te określa się mianem banaana. From b5524fb3eee275106a0b85b0638f6fc7a7cc9575 Mon Sep 17 00:00:00 2001 From: Josuan Albin Date: Tue, 28 Apr 2015 18:00:09 +0200 Subject: [PATCH 205/256] French pass MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fixed ramp in /aircraft * added aragmx entry * added multiple medical entries * translated missileguidance * completed mk6mortar * changed Sanitaire to Médical in realisticnames also fixed some typos in there and had to rename some of the explosives (weren't fitting in boxes in game) * added myself to contributors --- AUTHORS.txt | 1 + addons/aircraft/stringtable.xml | 6 +- addons/atragmx/stringtable.xml | 3 +- addons/dragging/stringtable.xml | 4 +- addons/explosives/stringtable.xml | 6 +- addons/medical/stringtable.xml | 79 +++++++++++++++++++++++--- addons/missileguidance/stringtable.xml | 3 +- addons/mk6mortar/stringtable.xml | 7 ++- addons/realisticnames/stringtable.xml | 24 ++++---- 9 files changed, 101 insertions(+), 32 deletions(-) diff --git a/AUTHORS.txt b/AUTHORS.txt index 17ae9dd7c0..415598e188 100644 --- a/AUTHORS.txt +++ b/AUTHORS.txt @@ -30,6 +30,7 @@ ACCtomeek Adanteh aeroson Aggr094 +Alganthe Anthariel BlackQwar Brakoviejo diff --git a/addons/aircraft/stringtable.xml b/addons/aircraft/stringtable.xml index 57fecc2a44..3a67e11449 100644 --- a/addons/aircraft/stringtable.xml +++ b/addons/aircraft/stringtable.xml @@ -29,7 +29,7 @@ Open Cargo Door Laderampe öffnen Abrir compuerta de carga - Ourvir rampe cargo + Ourvir la rampe Otwórz drzwi ładowni Otevřít nákladní prostor Rakodórámpa nyitása @@ -40,7 +40,7 @@ Close Cargo Door Laderampe schließen Cerrar compuerta de carga - Fermer rampe cargo + Fermer la rampe Zamknij drzwi ładowni Zavřít nákladní prostor Rakodórámpa zárása @@ -48,4 +48,4 @@ Chiudi la porta del cargo - + \ No newline at end of file diff --git a/addons/atragmx/stringtable.xml b/addons/atragmx/stringtable.xml index f3825c405a..f6bafa7762 100644 --- a/addons/atragmx/stringtable.xml +++ b/addons/atragmx/stringtable.xml @@ -27,6 +27,7 @@ Защищенный КПК с ATragMX PDA rugerizada con ATragMX Robuster PDA mit ATragMX + PDA robuste avec ATragMX Open ATragMX @@ -37,4 +38,4 @@ ATragMX öffnen - + \ No newline at end of file diff --git a/addons/dragging/stringtable.xml b/addons/dragging/stringtable.xml index 521ab87006..b53816e796 100644 --- a/addons/dragging/stringtable.xml +++ b/addons/dragging/stringtable.xml @@ -7,7 +7,7 @@ Arrastrar Ciągnij Táhnout - Tracter + Trainer Ziehen Arrastar Trascina @@ -50,4 +50,4 @@ Нести - + \ No newline at end of file diff --git a/addons/explosives/stringtable.xml b/addons/explosives/stringtable.xml index 8e941b1f2a..c6e386468c 100644 --- a/addons/explosives/stringtable.xml +++ b/addons/explosives/stringtable.xml @@ -42,7 +42,7 @@ Sprengstoffcode: %1 Código del explosivo: %1 Kod ładunku: %1 - Code explosif: %1 + Code de l'explosif: %1 Kód výbušniny: %1 Robbanóanyag kódja: %1 Código do explosivo: %1 @@ -222,7 +222,7 @@ Löschen Borrar Usuń - Désamorçé + Effacer Čistý Libera Törlés @@ -502,4 +502,4 @@ Raccogli - + \ No newline at end of file diff --git a/addons/medical/stringtable.xml b/addons/medical/stringtable.xml index 9f1c9e4b4d..ed8568a717 100644 --- a/addons/medical/stringtable.xml +++ b/addons/medical/stringtable.xml @@ -5,23 +5,27 @@ INJURIES VERLETZUNGEN ТРАВМЫ + BLESSURES No injuries on this bodypart ... Körperteil nicht verletzt ... Данная часть тела не повреждена ... + Aucune blessures sur cette partie du corps Litter Simulation Detail Detale zużytych medykamentów Detalle de simulación de basura Количество мусора от медицины + Niveau de simulation des détritus 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. Устанавливает количество мусора, который появляется после использования мед. препаратов. Большое количество мусора может уменьшить производительность, поэтому данная настройка локальна для клиента. + Le nieau de simulation des détritus règle la quantité de déchets qui vont être créer localement dans le client. Des quantitées excessive dans certaines zones locales aurait pu causer des chutes D'IPS, donc c'est une option client uniquement. Inject Atropine @@ -53,7 +57,7 @@ Wstrzyknij morfinę Aplikovat morfin Ввести морфин - Morphine + Injecter de la morphine Morfium beadása Injetar Morfina Inietta Morfina @@ -340,7 +344,7 @@ Проверить пульс Zkontrolovat pulz Sprawdź tętno - Vérifier les pulsations + Vérifier le pouls Pulzus ellenőrzése Controlla il polso @@ -370,6 +374,7 @@ No entries on this triage card. Keine Einträge auf der Triagekarte Нет записей. + Aucune entrée sur cette carte de triage Tourniquet @@ -378,7 +383,7 @@ Жгут Škrtidlo Staza - Garrot + Tourniquet Érszorító Laccio emostatico @@ -389,7 +394,7 @@ Снять жгут Sundat škrtidlo Zdejmij stazę - Enlever le garrot + Enlever le Tourniquet Érszorító leszedése Rimuovi laccio emostatico @@ -397,21 +402,25 @@ Diagnose Diagnose Диагностика + Diagnostiquer Diagnosing ... Diagnostizieren ... Диагностика ... + Diagnostic en cours CPR HLW Сердечно-легочная реанимация + RPC Performing CPR ... HLW durchführen ... Сердечно-легочная реанимация ... + RPC en cours Give Blood IV (1000ml) @@ -518,7 +527,7 @@ Menor Несрочная помощь Normalny - Léger + Mineur Minimální Enyhe Minore @@ -649,7 +658,7 @@ Tourniquet [CAT] Жгут Torniquete [CAT] - Garrot [CAT] + Tourniquet [CAT] Staza [typ. CAT] Škrtidlo [CAT] Érszorító [CAT] @@ -763,7 +772,7 @@ Tourniquet [CAT] Жгут Torniquete (CAT) - Garrot (CAT) + Tourniquet (CAT) Staza (typ. CAT) Škrtidlo (CAT) Érszorító (CAT) @@ -1064,7 +1073,7 @@ Personal Aid Kit Аптечка Botiquín de primeros auxilios - Équipement de support vital + Trousse de premiers soins Apteczka osobista Persönliches Verbandpäckchen Elsősegélycsomag @@ -1085,11 +1094,13 @@ W znacznym stopniu poprawia stan pacjenta Полевая аптчека для продвинутого лечения и зашивания ран Persönliches Verbandspäckchen zum ambulanten Nähen und fortgeschrittener Behandlung. + Trousse de premiers soins pour coudre sur le terrain et traitements avancés. Use Personal Aid Kit Verbandpäckchen benutzen Использовать аптечку + Utiliser la Trousse de premier soins Surgical Kit @@ -1125,6 +1136,7 @@ Use Surgical Kit Operationsset benutzen Использовать хирургический набор + Utiliser la trousse chirugicale Bodybag @@ -1180,6 +1192,7 @@ %1 checked Blood Pressure: %2 %1 kontrollierte Blutdruck: %2 %1 проверил артериальное давление: %2 + %1 à vérifié la tension: %2 You checked %1 @@ -1255,21 +1268,25 @@ Low Niedrig Низкое + Faible Normal Normal Нормальное + Normale High Hoch Высокое + Haute No Blood Pressure Kein Blutdruck Артериальное давление отсутствует + Aucune tension Pulse @@ -1305,25 +1322,29 @@ %1 checked Heart Rate: %2 %1 kontrollierte Herzfrequenz: %2 %1 проверил пульс: %2 + %1 à vérifié le rythme cardiaque: %2 Weak Schwach Слабый + Faible Normal Normal Нормальный + Normal Strong Stark Сильный + Fort You find a Heart Rate of %2 - Rythme carquiaque de %2 + Rythme cardiaque de %2 Пульс %2 уд./мин. El ritmo cardíaco es de %2 Wyczuwasz tętno o wartości %2 @@ -1425,36 +1446,43 @@ Patient %1<br/>is %2.<br/>%3.<br/>%4 Пациент %1<br/>%2.<br/>%3.<br/>%4 Patient %1<br/>ist %2.<br/>%3.<br/>%4 + Patient %1<br/>est %2.<br/>%3.<br/> alive жив lebendig + vivant dead мертв tot + mort He's lost some blood Есть кровопотеря Er hat etwas Blut verloren + Il à perdu du sang He hasn't lost blood Нет кровопотери Er hat kein Blut verloren + il n'a pas perdu de sang He is in pain Испытывает боль Er hat Schmerzen + il souffre He is not in pain Не испытывает боли Er hat keine Schmerzen + Il ne souffre pas Bandaged @@ -1788,182 +1816,215 @@ Scrape Kratzer Ссадина + Eraflure Minor Scrape Kleiner Kratzer Малая ссадина + Eraflure Mineure Medium Scrape Mittlerer Kratzer Средняя ссадина + Moyenne Eraflure Large Scrape Großer Kratzer Большая ссадина + Large Eraflure Avulsion Avulsion Рваная рана + Avulsion Minor Avulsion Kleine Avulsion Малая рваная рана + Avulsion Mineure Medium Avulsion Mittlere Avulsion Средняя рваная рана + Avulsion Moyenne Large Avulsion Große Avulsion Большая рваная рана + Large Avulsion Bruise Prellung Ушиб + Hématome Minor Bruise Kleine Prellung Малый ушиб + Hématome Mineur Medium Bruise Mittlere Prellung Средний ушиб + Hématome Moyen Large Bruise Große Prellung Большой ушиб + Large Hématome Crushed tissue Quetschverletzung Компресионная травма + Tissu écrasé Minor crushed tissue Kleine Quetschverletzung Малая компрессионная травма + Tissu écrasé Mineur Medium crushed tissue Mittlere Quetschverletzung Средняя компрессионная травма + Tissu écrasé Moyen Large crushed tissue Große Quetschverletzung Большая компрессионная травма + Tissu écrasé Large Cut Schnittwunde Резаная рана + Coupure Small Cut Kleine Schnittwunde Малая резаная рана Pomniejsza rana cięta + Petite Coupure Medium Cut Mittlere Schnittwunde Средняя резаная рана Średnia rana cięta + Moyenne Coupure Large Cut Große Schnittwunde Большая резаная рана Duża rana cięta + Large Coupure Tear Riss Рваная рана Rozerwanie skóry + Déchirure Small Tear Kleiner Riss Малая рваная рана Pomniejsze rozerwanie skóry + Petite Déchirure Medium Tear Mittlerer Riss Средняя рваная рана Średnie rozerwanie skóry + Moyenne Déchirure Large Tear Großer Riss Большая рваная рана Duże rozerwanie skóry + Large Déchirure Velocity Wound Ballistisches Trauma Огнестрельная рана Rana postrzałowa + Blessure de vélocité Smal Velocity Wound Kleines Ballistisches Trauma Малая огнестрельная рана Pomniejsza rana postrzałowa + Petite Bessure de vélocité Medium Velocity Wound Mittleres Ballistisches Trauma Средняя огнестрельная рана Średnia rana postrzałowa + Moyenne Blessure de vélocité Large Velocity Wound Großes Ballistisches Trauma Большая огнестрельная рана Duża rana postrzałowa + Large Blessure de vélocité Puncture Wound Stichwunde Колотая рана Rana kłuta + Blessure de perforation Minor Puncture Wound Kleine Stichwunde Малая колотая рана Pomniejsza rana kłuta + Blessure de perforation Mineure Medium Puncture Wound Mittlere Stichwunde Средняя колотая рана Średnia rana kłuta + Blessure de perforation Moyenne Large Puncture Wound Große Stichwunde Большая колотая рана Duża rana kłuta + Large Blessure de perforation Broken Femur Gebrochener Oberschenkelknochen Перелом Zkłamana kość udowa + Femur Cassé \ No newline at end of file diff --git a/addons/missileguidance/stringtable.xml b/addons/missileguidance/stringtable.xml index 791e7c1c30..6840f11e42 100644 --- a/addons/missileguidance/stringtable.xml +++ b/addons/missileguidance/stringtable.xml @@ -18,6 +18,7 @@ Zaawansowane namierzanie rakiet, lub ZNR, dostarcza wiele poprawek do systemu namierzania rakiet oraz dodaje nowe tryby strzału. Jest to wymagana opcja dla broni rakietowych. Guía de misiles avanzada, o AMG en sus siglas en inglés, ofrece múltiples mejoras en el fijado y disparo de misiles. Es también un framework requerido para armas de tipo misil. Das Erweiterte Raketenlenksystem, auch AMG genannt, bietet viele Verbesserungen zum Aufschalten und Feuern mittels gelenkten Raketen. + Le guidage avancé de missile, ou AMG en anglais, apporte de multiple améliorations au verouillage et au tir de missiles. C'est aussi un framework requis pour tout arme de type missile. Hydra-70 DAGR Missile @@ -46,7 +47,7 @@ Hydra-70 DAGR Laser Guided Missile - Missile à guidage Hydra-70 DAGR + Missile à guidage laser Hydra-70 DAGR Laserowo naprowadzana rakieta Hydra-70 DAGR Hydra-70 DAGR lasergelenkte Rakete Hydra-70 DAGR laserem naváděná střela diff --git a/addons/mk6mortar/stringtable.xml b/addons/mk6mortar/stringtable.xml index 45e2112562..fb330ff0e3 100644 --- a/addons/mk6mortar/stringtable.xml +++ b/addons/mk6mortar/stringtable.xml @@ -5,20 +5,25 @@ 82mm Rangetable 82mm Distanztabelle Tabela strzelnicza 82mm + table de tir 82mm Range Table for the MK6 82mm Mortar Distanztabelle für den Mk6 82mm Mortar Tabela strzelnicza dla moździerza 82mm MK6 + Table de tir pour le mortier MK6 82mm Open 82mm Rangetable Öffne 82mm Distanztabelle Otwórz tabelę strzelniczą 82mm + ouvrir la table de tir 82mm Charge - Ładunek + Ladung + Charge + Ładunek diff --git a/addons/realisticnames/stringtable.xml b/addons/realisticnames/stringtable.xml index 02f84cbb24..0a072d023e 100644 --- a/addons/realisticnames/stringtable.xml +++ b/addons/realisticnames/stringtable.xml @@ -305,7 +305,7 @@ HEMTT médico HEMTT Medyczny HEMTT Zdravotnický - HEMTT Sanitaire + HEMTT Médical HEMTT Медицинский HEMTT Médico HEMTT (egészségügyi) @@ -485,7 +485,7 @@ KamAZ médico KamAZ Medyczny KAMAZ Zdravotnický - KamAZ Sanitaire + KamAZ Médical КамАЗ Медицинский KamAZ Médico KamAZ (egészségügyi) @@ -665,7 +665,7 @@ Typhoon médico Typhoon Medyczny Typhoon zdravotnický - Typhoon Sanitaire + Typhoon Médical Тайфун Медицинский Typhoon Médico Typhoon (egészségügyi) @@ -726,7 +726,7 @@ CH-47I Chinook (nieuzbrojony) CH-47I Chinook (невооруженный) CH-47I Chinook (neozbrojený) - CH-47I Chinook (Neozbrojený) + CH-47I Chinook (non-armé) CH-47I Chinook (fegyvertelen) @@ -867,7 +867,7 @@ M18A1 Claymore Mina kierunkowa M18A1 Claymore Mina Claymore M18A1 - M18A1 Claymore Mine antipersonnel à effet dirigé + M18A1 Claymore M18A1 Клеймор M18A1 Claymore M18A1 Claymore akna @@ -891,7 +891,7 @@ Bloque de demolición M112 Ładunek burzący M112 Výbušná nálož M112 - Pétard M112 + M112 Block de Démolition M112 подрывной заряд M112 Carga de Demolição M112 romboló tömb @@ -1011,7 +1011,7 @@ Mina antipersona VS-50 Mina przeciwpiechotna VS-50 Protipěchotní mina VS-50 - VS-50 Mine antipersonnel à pression + VS-50 Mine AP VS-50 Противопехотная мина VS-50 Mina antipessoal VS-50 gyalogsági taposóakna @@ -1023,7 +1023,7 @@ Mina antipersona M26 Mina przeciwpiechotna M26 Šrapnelová mina M26 - M26 Mine antipersonnel bondissante + M26 Mine AP bondissante M26 Противопехотная мина M26 Mina saltadora antipessoal M26 gyalogsági ugróakna @@ -1035,7 +1035,7 @@ Mina antipersona de alambre PMR-3 Mina przeciwpiechotna PMR-3 Nástražná mina PMR-3 - PMR-3 Mine antipersonnel à traction + PMR-3 Mine AP à traction PMR-3 Противопехотная мина PMR-3 Mina antipessoal (armadilha) PMR-3 botlódrótos gyalogsági akna @@ -1136,7 +1136,7 @@ Mini-Spike (PALR) Mini-Spike (PT) Mini-Spike (AT) - Mini-Spike (AT) + Mini-Spike (AC) Mini-Spike (Tankelhárító) Mini-Spike (AT) Mini-Spike (AT) @@ -1156,7 +1156,7 @@ MX (Schwarz) MX (Czarny) MX (černý) - MX ( Noir) + MX (Noir) MX (Fekete) MX (Negro) MX (черный) @@ -1196,7 +1196,7 @@ MX 3GL (Schwarz) MX 3GL (Czarny) MX 3GL (černý) - MX 3 GL (Noir) + MX 3GL (Noir) MX 3GL (Fekete) MX 3GL (Negro) MX 3GL (черный) From bcda77c5c7882caef9d199995ca5ce99a94dbf9b Mon Sep 17 00:00:00 2001 From: Grzegorz Sikora Date: Tue, 28 Apr 2015 18:03:35 +0200 Subject: [PATCH 206/256] PL translation --- addons/medical/stringtable.xml | 43 +++++++++++++++++++++++++++ addons/realisticnames/stringtable.xml | 15 ++++++++++ 2 files changed, 58 insertions(+) diff --git a/addons/medical/stringtable.xml b/addons/medical/stringtable.xml index 9f1c9e4b4d..4191c00c2e 100644 --- a/addons/medical/stringtable.xml +++ b/addons/medical/stringtable.xml @@ -1,15 +1,18 @@  + INJURIES VERLETZUNGEN ТРАВМЫ + OBRAŻENIA No injuries on this bodypart ... Körperteil nicht verletzt ... Данная часть тела не повреждена ... + Brak obrażeń na tej części ciała ... Litter Simulation Detail @@ -370,6 +373,7 @@ No entries on this triage card. Keine Einträge auf der Triagekarte Нет записей. + Brak wpisów w tej karcie segregacyjnej. Tourniquet @@ -397,21 +401,25 @@ Diagnose Diagnose Диагностика + Diagnoza Diagnosing ... Diagnostizieren ... Диагностика ... + Diagnozowanie ... CPR HLW Сердечно-легочная реанимация + RKO Performing CPR ... HLW durchführen ... Сердечно-легочная реанимация ... + Przeprowadzanie RKO ... Give Blood IV (1000ml) @@ -1090,6 +1098,7 @@ Use Personal Aid Kit Verbandpäckchen benutzen Использовать аптечку + Użyj apteczki osobistej Surgical Kit @@ -1125,6 +1134,7 @@ Use Surgical Kit Operationsset benutzen Использовать хирургический набор + Zszyj rany Bodybag @@ -1180,6 +1190,7 @@ %1 checked Blood Pressure: %2 %1 kontrollierte Blutdruck: %2 %1 проверил артериальное давление: %2 + %1 sprawdził ciśnienie krwi: %2 You checked %1 @@ -1255,21 +1266,25 @@ Low Niedrig Низкое + Niskie Normal Normal Нормальное + Normalne High Hoch Высокое + Wysokie No Blood Pressure Kein Blutdruck Артериальное давление отсутствует + Brak ciśnienia krwi Pulse @@ -1305,21 +1320,25 @@ %1 checked Heart Rate: %2 %1 kontrollierte Herzfrequenz: %2 %1 проверил пульс: %2 + %1 sprawdził tętno: %2 Weak Schwach Слабый + Słabe Normal Normal Нормальный + Normalne Strong Stark Сильный + Silne You find a Heart Rate of %2 @@ -1425,36 +1444,43 @@ Patient %1<br/>is %2.<br/>%3.<br/>%4 Пациент %1<br/>%2.<br/>%3.<br/>%4 Patient %1<br/>ist %2.<br/>%3.<br/>%4 + Pacjent %1<br/>jest %2.<br/>%3.<br/>%4 alive жив lebendig + żywy dead мертв tot + martwy He's lost some blood Есть кровопотеря Er hat etwas Blut verloren + Stracił trochę krwi He hasn't lost blood Нет кровопотери Er hat kein Blut verloren + Nie stracił krwi He is in pain Испытывает боль Er hat Schmerzen + Odczuwa ból He is not in pain Не испытывает боли Er hat keine Schmerzen + Nie odczuwa bólu Bandaged @@ -1788,86 +1814,103 @@ Scrape Kratzer Ссадина + Draśnięcie Minor Scrape Kleiner Kratzer Малая ссадина + Pomniejsze draśnięcie Medium Scrape Mittlerer Kratzer Средняя ссадина + Średnie draśnięcie Large Scrape Großer Kratzer Большая ссадина + Duże draśnięcie Avulsion Avulsion Рваная рана + Rana płatowa Minor Avulsion Kleine Avulsion Малая рваная рана + Pomniejsza rana płatowa Medium Avulsion Mittlere Avulsion Средняя рваная рана + Średnia rana płatowa Large Avulsion Große Avulsion Большая рваная рана + Duża rana płatowa Bruise Prellung Ушиб + Stłuczenie Minor Bruise Kleine Prellung Малый ушиб + Pomniejsze stłuczenie Medium Bruise Mittlere Prellung Средний ушиб + Średnie stłuczenie Large Bruise Große Prellung Большой ушиб + Duże stłuczenie Crushed tissue Quetschverletzung Компресионная травма + Zgniecienie tkanek miękkich Minor crushed tissue Kleine Quetschverletzung Малая компрессионная травма + Pomniejsze zgniecienie tkanek miękkich Medium crushed tissue Mittlere Quetschverletzung Средняя компрессионная травма + Średnie zgniecienie tkanek miękkich Large crushed tissue Große Quetschverletzung Большая компрессионная травма + Duże zgniecienie tkanek miękkich Cut Schnittwunde Резаная рана + Rana cięta Small Cut diff --git a/addons/realisticnames/stringtable.xml b/addons/realisticnames/stringtable.xml index 02f84cbb24..b3176de9e3 100644 --- a/addons/realisticnames/stringtable.xml +++ b/addons/realisticnames/stringtable.xml @@ -1,4 +1,5 @@  + @@ -1488,6 +1489,7 @@ Noreen "Bad News" ULR Noreen "Bad News" ULR Noreen "Bad News" ULR + Noreen "Bad News" ULR Noreen "Bad News" ULR (Black) @@ -1496,6 +1498,7 @@ Noreen "Bad News" ULR (Negro) Noreen "Bad News" ULR (черный) Noreen "Bad News" ULR (Schwarz) + Noreen "Bad News" ULR (czarny) Noreen "Bad News" ULR (Camo) @@ -1504,6 +1507,7 @@ Noreen "Bad News" ULR (Camuflaje) Noreen "Bad News" ULR (камо) Noreen "Bad News" ULR (Camo) + Noreen "Bad News" ULR (kamuflaż) Noreen "Bad News" ULR (Sand) @@ -1512,6 +1516,7 @@ Noreen "Bad News" ULR (Arena) Noreen "Bad News" ULR (песочный) Noreen "Bad News" ULR (Sand) + Noreen "Bad News" ULR (piaskowy) SIG 556 @@ -1583,6 +1588,7 @@ ASP-1 Kir ASP-1 Kir ASP-1 Kir + ASP-1 Kir ASP-1 Kir (Black) @@ -1591,6 +1597,7 @@ ASP-1 Kir (Negro) ASP-1 Kir (черный) ASP-1 Kir (Schwarz) + ASP-1 Kir (czarny) ASP-1 Kir (Tan) @@ -1599,6 +1606,7 @@ ASP-1 Kir (Tan) ASP-1 Kir (бронзовый) ASP-1 Kir (Hellbraun) + ASP-1 Kir (Tan) Cyrus @@ -1607,6 +1615,7 @@ Cyrus Cyrus Cyrus + Cyrus Cyrus (Black) @@ -1615,6 +1624,7 @@ Cyrus (Negro) Cyrus (черный) Cyrus (Schwarz) + Cyrus (czarny) Cyrus (Hex) @@ -1623,6 +1633,7 @@ Cyrus (Hex) Cyrus (гекс) Cyrus (Hex) + Cyrus (hex) Cyrus (Tan) @@ -1631,6 +1642,7 @@ Cyrus (Tan) Cyrus (бронза) Cyrus (Hellbraun) + Cyrus (podpalany) M14 @@ -1666,6 +1678,7 @@ HK121 HK121 HK121 + HK121 HK121 (Hex) @@ -1674,6 +1687,7 @@ HK121 (Hex) HK121 (гекс) HK121 (Hex) + HK121 (hex) HK121 (Tan) @@ -1682,6 +1696,7 @@ HK121 (Tan) HK121 (бронза) HK121 (Hellbraun) + HK121 (podpalany) LWMMG From b88618563d90394e8a369fe47738924c322801b3 Mon Sep 17 00:00:00 2001 From: Grzegorz Date: Tue, 28 Apr 2015 18:05:27 +0200 Subject: [PATCH 207/256] Update stringtable.xml --- addons/medical/stringtable.xml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/addons/medical/stringtable.xml b/addons/medical/stringtable.xml index 4191c00c2e..4072521c4c 100644 --- a/addons/medical/stringtable.xml +++ b/addons/medical/stringtable.xml @@ -1,5 +1,4 @@  - @@ -2009,4 +2008,4 @@ Zkłamana kość udowa - \ No newline at end of file + From feeb897fb6d906f44c5fb060760112e6348946e7 Mon Sep 17 00:00:00 2001 From: Grzegorz Date: Tue, 28 Apr 2015 18:05:43 +0200 Subject: [PATCH 208/256] Update stringtable.xml --- addons/realisticnames/stringtable.xml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/addons/realisticnames/stringtable.xml b/addons/realisticnames/stringtable.xml index b3176de9e3..e448743e8b 100644 --- a/addons/realisticnames/stringtable.xml +++ b/addons/realisticnames/stringtable.xml @@ -1,5 +1,4 @@  - @@ -1735,4 +1734,4 @@ LWMMG (Sand) - \ No newline at end of file + From db82df62146a9bdc5f2150284a21e0f590287714 Mon Sep 17 00:00:00 2001 From: NukeDev Date: Tue, 28 Apr 2015 18:10:35 +0200 Subject: [PATCH 209/256] Italian's Translation's Changes v2 --- addons/explosives/stringtable.xml | 5 +++-- addons/fcs/stringtable.xml | 3 ++- addons/interact_menu/stringtable.xml | 4 ++++ addons/kestrel4500/stringtable.xml | 1 + addons/laserpointer/stringtable.xml | 2 ++ addons/logistics_wirecutter/stringtable.xml | 4 +++- addons/medical/stringtable.xml | 24 ++++++++++----------- 7 files changed, 27 insertions(+), 16 deletions(-) diff --git a/addons/explosives/stringtable.xml b/addons/explosives/stringtable.xml index 8e941b1f2a..04b1f1982e 100644 --- a/addons/explosives/stringtable.xml +++ b/addons/explosives/stringtable.xml @@ -478,6 +478,7 @@ Detonador de hombre muerto Dead Man's Switch Кнопка мертвеца + Detonatore a rilascio Used to remotely trigger explosives when released. @@ -488,7 +489,7 @@ Utilizado para detonar explosivos remotamente al soltarlo. Robbanóanyagok távoli robbantásához való, elengedéskor gyújt. Используется для дистанционного подрыва, после смерти оператора. - Usato per attivare esplosivi quando rilasciato + Usato per attivare esplosivi al momento del rilascio Pick up @@ -502,4 +503,4 @@ Raccogli - + \ No newline at end of file diff --git a/addons/fcs/stringtable.xml b/addons/fcs/stringtable.xml index 857f511fca..16ed66e078 100644 --- a/addons/fcs/stringtable.xml +++ b/addons/fcs/stringtable.xml @@ -10,6 +10,7 @@ Iluminar objetivo / Medir distancia Подсветить цель / Замерить расстояние Célpont lézerezése / Távolság Bemérése + Misura la distanza Zeroed To @@ -72,4 +73,4 @@ СУО обнулен. - + \ No newline at end of file diff --git a/addons/interact_menu/stringtable.xml b/addons/interact_menu/stringtable.xml index 48ee00f475..8fb98889b1 100644 --- a/addons/interact_menu/stringtable.xml +++ b/addons/interact_menu/stringtable.xml @@ -76,21 +76,25 @@ Interaction - Text Max Interakcja - Tekst max Interaction -Texte Max + Interazioni - Testo Massimo Interaction - Text Min Interakcja - Tekst min Interaction - Texte Min + Interazioni - Testo Minimo Interaction - Shadow Max Interakcja - Cień max Interaction - Ombre Max + Interazioni - Ombra Massima Interaction - Shadow Min Interakcja - Cień min Interaction - Ombre Min + Interazioni - Ombra Minima \ No newline at end of file diff --git a/addons/kestrel4500/stringtable.xml b/addons/kestrel4500/stringtable.xml index 2703e34e9f..be46058016 100644 --- a/addons/kestrel4500/stringtable.xml +++ b/addons/kestrel4500/stringtable.xml @@ -20,6 +20,7 @@ Station météo portable Kestrel 4500 Kestrel 4500 Pocket Weather Tracker Kestrel 4500 Taschenwettermessgerät + Kestrel 4500 Indicatore Meteorologico Tascabile Open Kestrel 4500 diff --git a/addons/laserpointer/stringtable.xml b/addons/laserpointer/stringtable.xml index 8fa38e24dd..eb35821ac1 100644 --- a/addons/laserpointer/stringtable.xml +++ b/addons/laserpointer/stringtable.xml @@ -53,6 +53,7 @@ Лазер Laser Laser + Laser IR Laser @@ -61,6 +62,7 @@ ИК-лазер Laser IR Laser IR + Laser IR Switch Laser / IR Laser diff --git a/addons/logistics_wirecutter/stringtable.xml b/addons/logistics_wirecutter/stringtable.xml index 129075f001..f0149f2454 100644 --- a/addons/logistics_wirecutter/stringtable.xml +++ b/addons/logistics_wirecutter/stringtable.xml @@ -10,6 +10,7 @@ Štípací kleště Nożyce do cięcia drutu Drótvágó + Pinze da Taglio Wirecutter @@ -20,6 +21,7 @@ Służą do cięcia drutu i płotów Pince coupante Drótok, huzalok, és kábelek vágására alkalmas olló. + Pinze da Taglio Cut Fence @@ -58,4 +60,4 @@ Забор разрезан - + \ No newline at end of file diff --git a/addons/medical/stringtable.xml b/addons/medical/stringtable.xml index e930016187..8bcd17cef7 100644 --- a/addons/medical/stringtable.xml +++ b/addons/medical/stringtable.xml @@ -4,22 +4,26 @@ INJURIES VERLETZUNGEN + LESIONI No injuries on this bodypart ... Körperteil nicht verletzt ... + Non ci sono lesioni in questa parte del corpo ... Litter Simulation Detail Detale zużytych medykamentów Detalle de simulación de basura Количество мусора от медицины + Dettagli Simulazione Rifiuti 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 livello di dettagli della simulazione dei rifiuti indica il numero di rifiuti che verranno creati localmente nel client. La creazione di troppi rifiuti in aree locali potrebbe causare lag e calo di FPS. Questo è un settaggio client. Inject Atropine @@ -367,6 +371,7 @@ No entries on this triage card. Keine Einträge auf der Triagekarte + Nessuna voce sulla Triage Card Tourniquet @@ -393,18 +398,22 @@ Diagnose Diagnose + Diagnosi Diagnosing ... Diagnostizieren ... + Diagnosi in corso... CPR HLW + RCP Performing CPR ... HLW durchführen ... + Eseguendo RCP... Give Blood IV (1000ml) @@ -688,7 +697,7 @@ Bandage fait d'un matériel spécial utilisé pour couvrir une blessure, qui peut etre appliqué dès que le saignement a été stoppé. Opatrunek materiałowy, używany do przykrywania ran, zakładany na ranę po zatamowaniu krwawienia. Egy különleges anyagú kötszer sebek betakarására, amelyet a vérzés elállítása után helyeznek fel. - Una benda apposta, utilizzata per coprire una ferita, la quale è applicato sopra di essa una volta fermata l'emorragia. + Una benda apposita, utilizzata per coprire una ferita, la quale è applicata sopra di essa una volta fermata l'emorragia. Packing Bandage @@ -717,7 +726,7 @@ Bandage servant à recouvrir les blessures pour arrêter les hémmoragies et faciliter la guérisson. Recouvrir une blessure est optionnel dans le cas de blessures polytraumatiques Opatrunek stosowany w celu zatrzymania krwawienia i osłony większych ran. Egy kötszerfajta, melyet a sebek nyomására használnak a vérzés elállítása és sebgyógyulás érdekében. A nyomókötés egy lehetőség nagyobb polytraumatikus sérülések esetén. - Un bendaggio usato per bendare ferite con emorragie e facilitare la guarigione. Bendare una ferita è una opzione su ferite di vario tipo. + Un bendaggio usato per coprire la ferita, fermare il sanguinamento e facilitarne la guarigione. Questa tecnica è opzionale su ferite multiple. Ein Verband, um die Wunde abzudecken und die Wundheilung zu fördern. Wunden abdecken ist eine Option bei größeren Polytraumen @@ -1422,7 +1431,6 @@ He is not in pain - Bandaged Bandé @@ -1767,7 +1775,6 @@ Large Scrape Großer Kratzer - Avulsion Avulsion @@ -1784,7 +1791,6 @@ Large Avulsion Große Avulsion - Bruise Prellung @@ -1801,7 +1807,6 @@ Large Bruise Große Prellung - Crushed tissue Quetschverletzung @@ -1818,7 +1823,6 @@ Large crushed tissue Große Quetschverletzung - Cut Schnittwunde @@ -1835,7 +1839,6 @@ Large Cut Große Schnittwunde - Tear Riss @@ -1852,7 +1855,6 @@ Large Tear Großer Riss - Velocity Wound Ballistisches Trauma @@ -1869,7 +1871,6 @@ Large Velocity Wound Großes Ballistisches Trauma - Puncture Wound Stichwunde @@ -1886,10 +1887,9 @@ Large Puncture Wound Große Stichwunde - Broken Femur Gebrochener Oberschenkelknochen - + \ No newline at end of file From 67a4b7ea3010bb4bfe60a7832de509f319b96db7 Mon Sep 17 00:00:00 2001 From: NukeDev Date: Tue, 28 Apr 2015 18:12:05 +0200 Subject: [PATCH 210/256] Authors.txt --- AUTHORS.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS.txt b/AUTHORS.txt index 17ae9dd7c0..20528a2381 100644 --- a/AUTHORS.txt +++ b/AUTHORS.txt @@ -49,6 +49,7 @@ Ghost GieNkoV gpgpgpgp Grzegorz +Gianmarco Varriale (TeamNuke) Hamburger SV Harakhti havena From 908c204893b1435ffdf33b234ecf2da814cb1a9c Mon Sep 17 00:00:00 2001 From: ulteq Date: Tue, 28 Apr 2015 18:24:24 +0200 Subject: [PATCH 211/256] Replaced Tabs with Spaces --- addons/mk6mortar/stringtable.xml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/addons/mk6mortar/stringtable.xml b/addons/mk6mortar/stringtable.xml index fb330ff0e3..1dfdd1b470 100644 --- a/addons/mk6mortar/stringtable.xml +++ b/addons/mk6mortar/stringtable.xml @@ -5,25 +5,25 @@ 82mm Rangetable 82mm Distanztabelle Tabela strzelnicza 82mm - table de tir 82mm + table de tir 82mm Range Table for the MK6 82mm Mortar Distanztabelle für den Mk6 82mm Mortar Tabela strzelnicza dla moździerza 82mm MK6 - Table de tir pour le mortier MK6 82mm + Table de tir pour le mortier MK6 82mm Open 82mm Rangetable Öffne 82mm Distanztabelle Otwórz tabelę strzelniczą 82mm - ouvrir la table de tir 82mm + ouvrir la table de tir 82mm Charge Ladung - Charge - Ładunek + Charge + Ładunek From d0c7a378411dd26d56f7905615c1871b1a9e3090 Mon Sep 17 00:00:00 2001 From: ulteq Date: Tue, 28 Apr 2015 18:31:14 +0200 Subject: [PATCH 212/256] Minor stringtable fix --- addons/overheating/stringtable.xml | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/addons/overheating/stringtable.xml b/addons/overheating/stringtable.xml index 4bb91688fa..9699c67ede 100644 --- a/addons/overheating/stringtable.xml +++ b/addons/overheating/stringtable.xml @@ -94,15 +94,15 @@ Sostiuisci la canna - Swapping barrel... - Lauf wird gewechselt... - Cambiando el cañón... - Wymienianie lufy... + Swapping barrel ... + Lauf wird gewechselt ... + Cambiando el cañón ... + Wymienianie lufy ... Vyměňuji hlaveň ... - Changement du canon... + Changement du canon ... Смена ствола ... - Cső kicserélése folyamatban... - Substituindo cano... + Cső kicserélése folyamatban ... + Substituindo cano ... Sto sostituendo la canna ... @@ -118,7 +118,7 @@ Canna sostituita - Check weapons temperature + Check weapon temperature Temperatur der Waffe prüfen Verificar temperatura del arma Sprawdź temperaturę broni @@ -131,6 +131,7 @@ Check weapon temperature + Waffentemperatur prüfen Verificar temperatura del arma Sprawdź temperaturę broni Zkontrolovat teplotu zbraně From a24466093045acb38a77b862927b094bd773d348 Mon Sep 17 00:00:00 2001 From: simon84 Date: Tue, 28 Apr 2015 19:25:45 +0200 Subject: [PATCH 213/256] German translation fixes Unified some translations in "ballistics" e.g. unit mm, Schuss->Patronen, decimal seperator --- addons/ballistics/stringtable.xml | 110 +++++++++++++++--------------- 1 file changed, 55 insertions(+), 55 deletions(-) diff --git a/addons/ballistics/stringtable.xml b/addons/ballistics/stringtable.xml index 0cd0ea0df2..3c63557f03 100644 --- a/addons/ballistics/stringtable.xml +++ b/addons/ballistics/stringtable.xml @@ -5,7 +5,7 @@ 6.5mm 30Rnd Tracer IR-DIM Mag 6,5 mm Nyomjelző IR-DIM 30-as Tár - 6,5 mm 30-Schuss-Magazin Leuchtspur IR-DIM + 6,5mm 30-Schuss-Magazin Leuchtspur IR-DIM Cargador de 30 balas trazadoras IR-DIM de 6,5mm Ch. 6,5mm 30Cps Traçantes IR-DIM Magazynek 6,5mm 30rd Smugacz IR-DIM @@ -29,7 +29,7 @@ Caliber: 6.5x39 mm Tracer IR-DIM<br />Rounds: 30<br />Used in: MX/C/M/SW/3GL Kaliber: 6,5x39 mm Nyomjelző IR-DIM<br />Lövedékek: 30<br />Használható: MX/C/M/SW/3GL - Kaliber: 6,5x39 mm Leuchtspur IR-DIM<br />Patronen: 30<br />Eingesetzt von: MX/C/M/SW/3GL + Kaliber: 6,5x39mm Leuchtspur IR-DIM<br />Patronen: 30<br />Eingesetzt von: MX/C/M/SW/3GL Calibre: 6,5x39 mm Trazadoras IR-DIM<br />Balas: 30<br />Se usa en: MX/C/M/SW/3GL Calibre: 6,5x39 mm Traçantes IR-DIM<br />Cartouches: 30<br />Utilisé dans: MX/C/M/SW/3GL Kaliber: 6,5x39 mm Smugacz IR-DIM<br />Pociski: 30<br />Używane w: MX/C/M/SW/3GL @@ -41,7 +41,7 @@ 6.5mm 30Rnd SD Mag 6,5 mm Halk 30-as Tár - 6,5 mm 30-Schuss-Magazin SD + 6,5mm 30-Schuss-Magazin SD Cargador de 30 balas SD de 6,5mm Ch. 6,5mm 30Cps SD Magazynek 6,5mm 30rd SD @@ -65,7 +65,7 @@ Caliber: 6.5x39 mm SD<br />Rounds: 30<br />Used in: MX/C/M/SW/3GL Kaliber: 6,5x39 mm Halk<br />Lövedékek: 30<br />Használható: MX/C/M/SW/3GL - Kaliber: 6,5x39 mm SD<br />Patronen: 30<br />Eingesetzt von: MX/C/M/SW/3GL + Kaliber: 6,5x39mm SD<br />Patronen: 30<br />Eingesetzt von: MX/C/M/SW/3GL Calibre: 6,5x39 mm SD<br />Balas: 30<br />Se usa en: MX/C/M/SW/3GL Calibre: 6,5x39 mm SD<br />Cartouches: 30<br />Utilisé dans: MX/C/M/SW/3GL Kaliber: 6,5x39 mm SD<br />Pociski: 30<br />Używane w: MX/C/M/SW/3GL @@ -77,7 +77,7 @@ 6.5mm 30Rnd AP Mag 6,5 mm Páncéltörő 30-as Tár - 6,5 mm 30-Schuss-Magazin AP + 6,5mm 30-Schuss-Magazin AP Cargador de 30 balas AP de 6,5mm Ch. 6,5mm 30Cps AP Magazynek 6,5mm 30rd AP @@ -101,7 +101,7 @@ Caliber: 6.5x39 mm AP<br />Rounds: 30<br />Used in: MX/C/M/SW/3GL Kaliber: 6,5x39 mm Páncéltörő<br />Lövedékek: 30<br />Használható: MX/C/M/SW/3GL - Kaliber: 6,5x39 mm AP<br />Patronen: 30<br />Eingesetzt von: MX/C/M/SW/3GL + Kaliber: 6,5x39mm AP<br />Patronen: 30<br />Eingesetzt von: MX/C/M/SW/3GL Calibre: 6,5x39 mm AP<br />Balas: 30<br />Se usa en: MX/C/M/SW/3GL Calibre: 6,5x39 mm AP<br />Cartouches: 30<br />Utilisé dans: MX/C/M/SW/3GL Kaliber: 6,5x39 mm AP<br />Pociski: 30<br />Używane w: MX/C/M/SW/3GL @@ -114,7 +114,7 @@ 6.5mm 30Rnd Tracer IR-DIM Mag 6,5mm IR-DIM Nyomjelző 30-as Tár - 6,5 mm 30-Schuss-Magazin Leuchtspur IR-DIM + 6,5mm 30-Schuss-Magazin Leuchtspur IR-DIM Cargador de 30 balas trazadoras IR-DIM de 6,5mm Ch. 6,5mm 30Cps Traçantes IR-DIM Magazynek 6,5mm 30rd Smugacz IR-DIM @@ -138,7 +138,7 @@ Caliber: 6.5x39 mm Tracer IR-DIM<br />Rounds: 30<br />Used in: Katiba Kaliber: 6,5x39 mm Nyomjelző IR-DIM<br />Lövedékek: 30<br />Használható: Katiba - Kaliber: 6,5x39 mm Leuchtspur IR-DIM<br />Patronen: 30<br />Eingesetzt von: Katiba + Kaliber: 6,5x39mm Leuchtspur IR-DIM<br />Patronen: 30<br />Eingesetzt von: Katiba Calibre: 6,5x39 mm Trazadoras IR-DIM<br />Balas: 30<br />Se usa en: Katiba Calibre: 6,5x39 mm Traçantes IR-DIM<br />Cartouches: 30<br />Utilisé dans: Katiba Kaliber: 6,5x39 mm Smugacz IR-DIM<br />Pociski: 30<br />Używane w: Katiba @@ -150,7 +150,7 @@ 6.5mm 30Rnd SD Mag 6,5 mm Halk 30-as Tár - 6,5 mm 30-Schuss-Magazin SD + 6,5mm 30-Schuss-Magazin SD Cargador de 30 balas SD de 6,5mm Ch. 6,5mm 30Cps SD Magazynek 6,5mm 30rd SD @@ -174,7 +174,7 @@ Caliber: 6.5x39 mm SD<br />Rounds: 30<br />Used in: Katiba Kaliber: 6,5x39 mm Halk<br />Lövedékek: 30<br />Használható: Katiba - Kaliber: 6,5x39 mm SD<br />Patronen: 30<br />Eingesetzt von: Katiba + Kaliber: 6,5x39mm SD<br />Patronen: 30<br />Eingesetzt von: Katiba Calibre: 6,5x39 mm SD<br />Balas: 30<br />Se usa en: Katiba Calibre: 6,5x39 mm SD<br />Cartouches: 30<br />Utilisé dans: Katiba Kaliber: 6,5x39 mm SD<br />Naboje: 30<br />Używane w: Katiba @@ -186,7 +186,7 @@ 6.5mm 30Rnd AP Mag 6,5 mm Páncéltörő 30-as Tár - 6,5 mm 30-Schuss-Magazin AP + 6,5mm 30-Schuss-Magazin AP Cargador de 30 balas AP de 6,5mm Ch. 6,5mm 30Cps AP Magazynek 6,5mm 30rd AP @@ -210,7 +210,7 @@ Caliber: 6.5x39 mm AP<br />Rounds: 30<br />Used in: Katiba Kaliber: 6,5x39 mm Páncéltörő<br />Lövedékek: 30<br />Használható: Katiba - Kaliber: 6,5x39 mm AP<br />Patronen: 30<br />Eingesetzt von: Katiba + Kaliber: 6,5x39mm AP<br />Patronen: 30<br />Eingesetzt von: Katiba Calibre: 6,5x39 mm AP<br />Balas: 30<br />Se usa en: Katiba Calibre: 6,5x39 mm AP<br />Cartouches: 30<br />Utilisé dans: Katiba Kaliber: 6,5x39 mm AP<br />Pociski: 30<br />Używane w: Katiba @@ -223,7 +223,7 @@ 5.56mm 30rnd Tracer IR-DIM Mag 5,56 mm Nyomjelző IR-DIM 30-as Tár - 5,56 mm 30-Schuss-Magazin Leuchtspur IR-DIM + 5,56mm 30-Schuss-Magazin Leuchtspur IR-DIM Cargador de 30 balas trazadoras IR-DIM de 5,56mm Ch. 5,56mm 30Cps Traçantes IR-DIM Magazynek 5,56mm 30rd Smugacz IR-DIM @@ -247,7 +247,7 @@ Caliber: 5.56x45 mm Tracer IR-DIM<br />Rounds: 30<br />Used in: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR Kaliber: 5,56x45 mm Nyomjelző IR-DIM<br />Lövedékek: 30<br />Használható: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR - Kaliber: 5,56x45 mm Leuchtspur IR-DIM<br />Patronen: 30<br />Eingesetzt von: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR + Kaliber: 5,56x45mm Leuchtspur IR-DIM<br />Patronen: 30<br />Eingesetzt von: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR Calibre: 5,56x45 mm Trazadoras IR-DIM<br />Balas: 30<br />Se usa en: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR Calibre: 5,56x45 mm Traçantes IR-DIM<br />Cartouches: 30<br />Utilisé dans: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR Kaliber: 5,56x45 mm Smugacz IR-DIM<br />Pociski: 30<br />Używane w: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR @@ -260,7 +260,7 @@ 7.62mm 20rnd Tracer Mag 7,62 mm Nyomjelző IR-DIM 20-as Tár - 7,62 mm 20-Schuss-Magazin Leuchtspur + 7,62mm 20-Schuss-Magazin Leuchtspur Cargador de 20 balas trazadores de 7,62mm Ch. 7,62mm 20Cps Traçantes Magazynek 7,62mm 20rd Smugacz @@ -284,7 +284,7 @@ Caliber: 7.62x51 mm Tracer<br />Rounds: 20<br />Used in: Mk18 ABR Kaliber: 7,62x51 mm Nyomjelző<br />Lövedékek: 20<br />Használható: Mk18 ABR - Kaliber: 7,62x51 mm Leuchtspur<br />Patronen: 20<br />Eingesetzt von: EBR + Kaliber: 7,62x51mm Leuchtspur<br />Patronen: 20<br />Eingesetzt von: EBR Calibre: 7,62x51 mm Trazadora<br />Balas: 20<br />Se usa en: Mk18 ABR Calibre: 7,62x51 mm Traçantes<br />Cartouches: 20<br />Utilisé dans: EBR Kaliber: 7,62x51 mm Smugacz<br />Pociski: 20<br />Używane w: Mk18 ABR @@ -320,7 +320,7 @@ Caliber: 7.62x51 mm Tracer IR-DIM<br />Rounds: 20<br />Used in: Mk18 ABR Kaliber: 7,62x51 mm Nyomjelző IR-DIM<br />Lövedékek: 20<br />Használható: Mk18 ABR - Kaliber: 7,62x51 mm Leuchtspur IR-DIM<br />Patronen: 20<br />Eingesetzt von: EBR + Kaliber: 7,62x51mm Leuchtspur IR-DIM<br />Patronen: 20<br />Eingesetzt von: EBR Calibre: 7,62x51 mm Trazadoras IR-DIM<br />Balas: 20<br />Se usa en: Mk18 ABR Calibre: 7,62x51 mm Traçantes IR-DIM<br />Cartouches: 20<br />Utilisé dans: EBR Kaliber: 7,62x51 mm Smugacz IR-DIM<br />Pociski: 20<br />Używane w: Mk18 ABR @@ -332,7 +332,7 @@ 7.62mm 20Rnd SD Mag 7,62 mm Halk 20-as Tár - 7,62 mm 20-Schuss-Magazin SD + 7,62mm 20-Schuss-Magazin SD Cargador de 20 balas SD de 7,62mm Ch. 7,62mm 20Cps SD Magazynek 7,62mm 20rd SD @@ -356,7 +356,7 @@ Caliber: 7.62x51 mm SD<br />Rounds: 20<br />Used in: Mk18 ABR Kaliber: 7,62x51 mm Halk<br />Lövedékek: 20<br />Használható: Mk18 ABR - Kaliber: 7,62x51 mm SD<br />Patronen: 20<br />Eingesetzt von: EBR + Kaliber: 7,62x51mm SD<br />Patronen: 20<br />Eingesetzt von: EBR Calibre: 7,62x51 mm SD<br />Balas: 20<br />Se usa en: Mk18 ABR Calibre: 7,62x51 mm SD<br />Cartouches: 20<br />Utilisé dans: EBR Kaliber: 7,62x51 mm SD<br />Pociski: 20<br />Używane w: Mk18 ABR @@ -385,7 +385,7 @@ Caliber: .338 Norma Magnum Tracer<br />Rounds: 130<br />Used in: SPMG - Kaliber: .338 Norma Magnum Leuchtspur<br />Schuss: 130<br />Verwendet für: SPMG + Kaliber: .338 Norma Magnum Leuchtspur<br />Patronen: 130<br />Eingesetzt von: SPMG Kaliber: .338 Norma Magnum Smugacz<br />Pociski: 130<br />Używany w: SPMG Calibre: .338 Norma Magnum Traçante<br />Cartouches: 130<br />Utilisé dans: SPMG Calibre: .338 Norma Magnum trazadora<br />Balas: 130<br />Se usa en: SPMG @@ -410,7 +410,7 @@ Caliber: .338 Norma Magnum Tracer IR-DIM<br />Rounds: 130<br />Used in: SPMG - Kaliber: .338 Norma Magnum Leuchtspur IR-DIM<br />Schuss: 130<br />Verwendet für: SPMG + Kaliber: .338 Norma Magnum Leuchtspur IR-DIM<br />Patronen: 130<br />Eingesetzt von: SPMG Kaliber: .338 Norma Magnum Smugacz IR-DIM<br />Pociski: 130<br />Używany w: SPMG Calibre: .338 Norma Magnum Traçante IR-DIM<br />Cartouches: 130<br />Utilisé dans: SPMG Calibre: .338 Norma Magnum trazadora IR-DIM<br />Balas: 130<br />Se usa en: SPMG @@ -435,7 +435,7 @@ Caliber: .338 Norma Magnum AP<br />Rounds: 130<br />Used in: SPMG - Kaliber: .338 Norma Magnum Hartkern<br />Schuss: 130<br />Verwendet für: SPMG + Kaliber: .338 Norma Magnum Hartkern<br />Patronen: 130<br />Eingesetzt von: SPMG Kaliber: .338 Norma Magnum AP<br />Pociski: 130<br />Używane w: SPMG Calibre: .338 Norma Magnum AP<br />Cartouches: 130<br />Utilisé dans: SPMG Calibre: .338 Norma Magnum AP<br />Balas: 130<br />Se usa en: SPMG @@ -461,7 +461,7 @@ Caliber: 9.3x64mm Tracer<br />Rounds: 10<br />Used in: Cyrus - Kaliber: 9,3x64mm Leuchtspur<br />Schuss: 10<br />Verwendet für: Cyrus + Kaliber: 9,3x64mm Leuchtspur<br />Patronen: 10<br />Eingesetzt von: Cyrus Kaliber: 9,3x64 mm Smugacz<br />Pociski: 10<br />Używany w: Cyrus Calibre: 9.3x64mm Traçante<br />Cartouches: 10<br />Utilisé dans: Cyrus Calibre: 9.3x64mm trazadora<br />Balas: 10<br />Se usa en: Cyrus @@ -486,7 +486,7 @@ Caliber: 9.3x64mm Tracer IR-DIM<br />Rounds: 10<br />Used in: Cyrus - Kaliber: 9,3x64mm Leuchtspur IR-DIM<br />Schuss: 10<br />Verwendet für: Cyrus + Kaliber: 9,3x64mm Leuchtspur IR-DIM<br />Patronen: 10<br />Eingesetzt von: Cyrus Kaliber: 9,3x64 mm Smugacz IR-DIM<br />Pociski: 10<br />Używany w: Cyrus Calibre: 9.3x64mm Traçante IR-DIM<br />Cartouches: 10<br />Utilisé dans: Cyrus Calibre: 9.3x64mm trazadora IR-DIM<br />Balas: 10<br />Se usa en: Cyrus @@ -512,7 +512,7 @@ Caliber: 9.3x64mm Tracer<br />Rounds: 150<br />Used in: Navid - Kaliber: 9,3x64mm Leuchtspur<br />Schuss: 150<br />Verwendet für: Navid + Kaliber: 9,3x64mm Leuchtspur<br />Patronen: 150<br />Eingesetzt von: Navid Kaliber: 9,3x64 mm Smugacz<br />Pociski: 150<br />Używane w: Navid Calibre: 9.3x64mm Traçante<br />Cartouches: 150<br />Utilisé dans: Navid Calibre: 9.3x64mm trazadora<br />Balas: 150<br />Se usa en: Navid @@ -537,7 +537,7 @@ Caliber: 9.3x64mm Tracer IR-DIM<br />Rounds: 150<br />Used in: Navid - Kaliber: 9,3x64mm Leuchtspur IR-DIM<br />Schuss: 150<br />Verwendet für: Navid + Kaliber: 9,3x64mm Leuchtspur IR-DIM<br />Patronen: 150<br />Eingesetzt von: Navid Kaliber: 9,3x64 mm Smugacz IR-DIM<br />Pociski: 150<br />Używane w: Navid Calibre: 9.3x64mm Traçante IR-DIM<br />Cartouches: 150<br />Utilisé dans: Navid Calibre: 9.3x64mm trazadora IR-DIM<br />Balas: 150<br />Se usa en: Navid @@ -562,7 +562,7 @@ Caliber: 9.3x64mm AP<br />Rounds: 150<br />Used in: Navid - Kaliber: 9,3x64mm Hartkern<br />Schuss: 150<br />Verwendet für: Navid + Kaliber: 9,3x64mm Hartkern<br />Patronen: 150<br />Eingesetzt von: Navid Kaliber: 9,3x64 mm AP<br />Pociski: 150<br />Używane w: Navid Calibre: 9.3x64mm AP<br />Cartouches: 150<br />Utilisé dans: Navid Calibre: 9.3x64mm AP<br />Balas: 150<br />Se usa en: Navid @@ -622,7 +622,7 @@ Chargeur 7.62x54mm 10Rnd Traçante IR-DIM Cargador de 10 balas trazadoras IR-DIM de 7.62x54mm Магазин из 10-ти 7,62 мм ИК-трассирующих - 7,62x54 10-Schuss-Magazin IR-DIM Leuchtspur + 7,62x54mm 10-Schuss-Magazin IR-DIM Leuchtspur 7.62mm IR-DIM @@ -630,7 +630,7 @@ 7.62mm IR-DIM 7.62mm IR-DIM 7,62 мм ИК-трассирующие - 7,62x54 IR-DIM + 7,62x54mm IR-DIM 7.62x54mm 10Rnd Tracer IR-DIM Mag @@ -638,7 +638,7 @@ Chargeur 7.62x54mm 10Cps Traçante IR-DIM Cargador de 10 balas trazadoras IR-DIM de 7.62x54mm Магазин из 10-ти 7,62 мм ИК-трассирующих - 7,62x54 10-Schuss-Magazin IR-DIM Leuchtspur + 7,62x54mm 10-Schuss-Magazin IR-DIM Leuchtspur 6.5mm 100Rnd Tracer IR-DIM Mag @@ -662,7 +662,7 @@ Chargeur 6.5mm 100Rnd Traçante IR-DIM Cargador de 100 balas trazadoras IR-DIM de 6.5mm Магазин из 100 6,5 мм ИК-трассирующих - 6,5mm 100-Schuss-Magazin IR-DIM Leuchtspur<br />Schuss: 100<br />Verwendet für: MXLSW + 6,5mm 100-Schuss-Magazin IR-DIM Leuchtspur<br />Patronen: 100<br />Eingesetzt von: MXLSW 6.5mm 200Rnd Tracer IR-DIM Belt @@ -686,7 +686,7 @@ Bande 6.5mm 200Cps Traçante IR-DIM Cinta de 200 balas trazadoras IR-DIM de 6.5mm Магазин из 200-т 6,5 мм ИК-трассирующих - 6,5mm 200-Schuss-Gurt IR-DIM Leuchtspur<br />Schuss: 200<br />Verwendet für: Stoner 99 LMG + 6,5mm 200-Schuss-Gurt IR-DIM Leuchtspur<br />Patronen: 200<br />Eingesetzt von: Stoner 99 LMG 5.56mm 30Rnd Mag (Mk262) @@ -734,7 +734,7 @@ Calibre: 5.56x45 mm NATO (Mk318)<br />Cartouches: 30 Calibre: 5.56x45 mm NATO (Mk318)<br />Balas: 30 Калибр: 5,56x45 мм NATO (Mk318)<br />Патронов: 30 - Kaliber: 5,56x45mm NATO (Mk318)<br />Schuss: 30 + Kaliber: 5,56x45mm NATO (Mk318)<br />Patronen: 30 5.56mm 30Rnd Mag (M995 AP) @@ -758,7 +758,7 @@ Calibre: 5.56x45 mm NATO (M995 AP)<br />Cartouches: 30 Calibre: 5.56x45 mm NATO (M995 AP)<br />Balas: 30 Калибр: 5,56x45 мм NATO (M995 AP)<br />Патронов: 30 - Kaliber: 5,56x45mm NATO (M995 AP)<br />Schuss: 30 + Kaliber: 5,56x45mm NATO (M995 AP)<br />Patronen: 30 7.62mm 10Rnd Mag (M118LR) @@ -782,7 +782,7 @@ Calibre: 7.62x51 mm NATO (M118LR)<br />Cartouches: 10 Calibre: 7.62x51 mm NATO (M118LR)<br />Balas: 10 Калибр: 7,62x51 мм NATO (M118LR)<br />Патронов: 10 - Kaliber: 7,62x51mm NATO (M118LR)<br />Schuss: 10 + Kaliber: 7,62x51mm NATO (M118LR)<br />Patronen: 10 7.62mm 20Rnd Mag (M118LR) @@ -806,7 +806,7 @@ Calibre: 7.62x51 mm NATO (M118LR)<br />Cartouches: 20 Calibre: 7.62x51 mm NATO (M118LR)<br />Balas: 20 Калибр: 7,62x51 мм NATO (M118LR)<br />Патронов: 20 - Kaliber: 7,62x51mm NATO (M118LR)<br />Schuss: 20 + Kaliber: 7,62x51mm NATO (M118LR)<br />Patronen: 20 7.62mm 10Rnd Mag (Mk316 Mod 0) @@ -830,7 +830,7 @@ Calibre: 7.62x51 mm NATO (Mk316 Mod 0)<br />Cartouches: 10 Calibre: 7.62x51 mm NATO (Mk316 Mod 0)<br />Balas: 10 Калибр: 7,62x51 мм NATO (Mk316 Mod 0)<br />Патронов: 10 - Kaliber: 7.62x51 mm NATO (Mk316 Mod 0)<br />Schuss: 10 + Kaliber: 7.62x51 mm NATO (Mk316 Mod 0)<br />Patronen: 10 7.62mm 20Rnd Mag (Mk316 Mod 0) @@ -854,7 +854,7 @@ Calibre: 7.62x51 mm NATO (Mk316 Mod 0)<br />Cartouches: 20 Calibre: 7.62x51 mm NATO (Mk316 Mod 0)<br />Balas: 20 Калибр: 7,62x51 мм NATO (Mk316 Mod 0)<br />Патронов: 20 - Kaliber: 7.62x51 mm NATO (Mk316 Mod 0)<br />Schuss: 20 + Kaliber: 7.62x51 mm NATO (Mk316 Mod 0)<br />Patronen: 20 7.62mm 10Rnd Mag (Mk319 Mod 0) @@ -870,7 +870,7 @@ 7.62mm Mk319 7.62mm Mk319 7,62mm Mk319 - 7.62mm Mk319 + 7,62mm Mk319 Caliber: 7.62x51 mm NATO (Mk319 Mod 0)<br />Rounds: 10 @@ -878,7 +878,7 @@ Calibre: 7.62x51 mm NATO (Mk319 Mod 0)<br />Cartouches: 10 Calibre: 7.62x51 mm NATO (Mk319 Mod 0)<br />Balas: 10 Калибр: 7,62x51 мм NATO (Mk319 Mod 0)<br />Патронов: 10 - Kaliber: 7.62x51 mm NATO (Mk319 Mod 0)<br />Schuss: 10 + Kaliber: 7,62x51mm NATO (Mk319 Mod 0)<br />Patronen: 10 7.62mm 20Rnd Mag (Mk319 Mod 0) @@ -894,7 +894,7 @@ 7.62mm Mk319 7.62mm Mk319 7,62 мм Mk319 - 7.62mm Mk319 + 7,62mm Mk319 Caliber: 7.62x51 mm NATO (Mk319 Mod 0)<br />Rounds: 20 @@ -902,7 +902,7 @@ Calibre: 7.62x51 mm NATO (Mk319 Mod 0)<br />Cartouches: 20 Calibre: 7.62x51 mm NATO (Mk319 Mod 0)<br />Balas: 20 Калибр: 7,62x51 мм NATO (Mk319 Mod 0)<br />Патронов: 20 - Kaliber: 7.62x51 mm NATO (Mk319 Mod 0)<br />Schuss: 20 + Kaliber: 7,62x51mm NATO (Mk319 Mod 0)<br />Patronen: 20 7.62mm 10Rnd Mag (M993 AP) @@ -926,7 +926,7 @@ Calibre: 7.62x51 mm NATO (M993 AP)<br />Cartouches: 10 Calibre: 7.62x51 mm NATO (M993 AP)<br />Balas: 10 Калибр: 7,62x51 мм NATO (M993 AP)<br />Патронов: 10 - Kaliber: 7.62x51 mm NATO (M993 AP)<br />Schuss: 10 + Kaliber: 7,62x51mm NATO (M993 AP)<br />Patronen: 10 7.62mm 20Rnd Mag (M993 AP) @@ -950,7 +950,7 @@ Calibre: 7.62x51 mm NATO (M993 AP)<br />Cartouches: 20 Calibre: 7.62x51 mm NATO (M993 AP)<br />Balas: 20 Калибр: 7,62x51 мм NATO (M993 AP)<br />Патронов: 20 - Kaliber: 7.62x51 mm NATO (M993 AP)<br />Schuss: 20 + Kaliber: 7,62x51mm NATO (M993 AP)<br />Patronen: 20 7.62mm 20Rnd Mag (Mk248 Mod 0) @@ -974,7 +974,7 @@ Calibre: 7.62x67mm NATO (Mk248 Mod 0)<br />Cartouches: 20 Calibre: 7.62x67 mm NATO (Mk248 Mod 0)<br />Balas: 20 Калибр: 7,62x67 мм NATO (Mk248 Mod 0)<br />Патронов: 20 - Kaliber: 7.62x51 mm NATO (Mk248 Mod 0)<br />Schuss: 20 + Kaliber: 7,62x51mm NATO (Mk248 Mod 0)<br />Patronen: 20 7.62mm 20Rnd Mag (Mk248 Mod 1) @@ -998,7 +998,7 @@ Calibre: 7.62x67mm NATO (Mk248 Mod 1)<br />Cartouches: 20 Calibre: 7.62x67 mm NATO (Mk248 Mod 1)<br />Balas: 20 Калибр: 7,62x67 мм NATO (Mk248 Mod 1)<br />Патронов: 20 - Kaliber: 7.62x51 mm NATO (Mk248 Mod 1)<br />Schuss: 20 + Kaliber: 7.62x51mm NATO (Mk248 Mod 1)<br />Patronen: 20 7.62mm 20Rnd Mag (Berger Hybrid OTM) @@ -1022,7 +1022,7 @@ Calibre: 7.62x67mm NATO (Berger Hybrid OTM)<br />Cartouches: 20 Calibre: 7.62x67 mm NATO (Berger Hybrid OTM)<br />Balas: 20 Калибр: 7,62x67 мм NATO (Berger Hybrid OTM)<br />Патронов: 20 - Kaliber: 7.62x67 mm NATO (Berger Hybrid OTM)<br />Schuss: 20 + Kaliber: 7.62x67mm NATO (Berger Hybrid OTM)<br />Patronen: 20 6.5x47mm 30Rnd Mag (HPBT Scenar) @@ -1038,7 +1038,7 @@ 6.5mm Lapua 6,5mm Lapua 6,5 мм Lapua - 6,5 Lapua + 6,5mm Lapua Caliber: 6.5x47mm (HPBT Scenar)<br />Rounds: 30<br />Used in: MXM @@ -1046,7 +1046,7 @@ Calibre: 6.5x47mm (HPBT Scenar)<br />Balas: 30 Kaliber: 6,5x47 mm (HPBT Scenar)<br />Pociski: 30 Калибр: 6,5x47 мм (HPBT Scenar)<br />Патронов: 30 - Kaliber: 6,5x47 mm (HPBT Scenar)<br />Schuss: 30<br />Verwendet für: MXM + Kaliber: 6,5x47mm (HPBT Scenar)<br />Patronen: 30<br />Eingesetzt von: MXM 6.5mm Creedmor 30Rnd Mag @@ -1064,7 +1064,7 @@ Caliber: 6.5mm Creedmor<br />Rounds: 30<br />Used in: MXM Kaliber: 6,5mm Creedmor<br />Pociski: 30<br />Używany w: MXM - Kaliber: 6,5x47 mm Creedmor<br />Schuss: 30<br />Verwendet für: MXM + Kaliber: 6,5x47mm Creedmor<br />Patronen: 30<br />Eingesetzt von: MXM .338 10Rnd Mag (300gr Sierra MatchKing HPBT) @@ -1088,7 +1088,7 @@ Calibre: 8.6x70mm (300gr Sierra MatchKing HPBT)<br />Balas: 10 Kaliber: 8,6x70 mm (300gr Sierra MatchKing HPBT)<br />Pociski: 10 Калибр: .338 (300 гран Sierra MatchKing HPBT)<br />Патронов: 10 - Kaliber: 8,6x70 mm (300gr Sierra MatchKing HPBT)<br />Schuss: 10 + Kaliber: 8,6x70mm (300gr Sierra MatchKing HPBT)<br />Patronen: 10 .338 10Rnd Mag (API526) @@ -1112,7 +1112,7 @@ Calibre: 8.6x70mm (API526)<br />Balas: 10 Kaliber: 8,6x70 mm (API526)<br />Pociski: 10 Калибр: .338 (API526)<br />Патронов: 10 - Kaliber: 8,6x70 mm (API526)<br />Schuss: 10 + Kaliber: 8,6x70mm (API526)<br />Patronen: 10 12.7x99mm 5Rnd Mag @@ -1136,7 +1136,7 @@ Calibre: 12.7x99mm<br />Balas: 5 Kaliber: 12,7x99 mm<br />Pociski: 5 Калибр: 12,7x99 мм<br />Патронов: 5 - Kaliber: 12,7x99mm<br />Schuss: 5 + Kaliber: 12,7x99mm<br />Patronen: 5 12.7x99mm API 5Rnd Mag @@ -1157,7 +1157,7 @@ Calibre: 12.7x99mm API<br />Cartouches: 5 Calibre: 12.7x99mm API<br />Balas: 5 Kaliber: 12,7x99 mm API<br />Pociski: 5 - Kaliber:12,7x99mm API<br />Schuss: 5 + Kaliber:12,7x99mm API<br />Patronen: 5 12.7x99mm 5Rnd Mag (AMAX) @@ -1181,7 +1181,7 @@ Calibre: 12.7x99mm (AMAX)<br />Balas: 5 Kaliber: 12,7x99 mm (AMAX)<br />Pociski: 5 Калибр: 12,7x99 мм (A-MAX)<br />Патронов: 5 - Kaliber:12,7x99mm (AMAX)<br />Schuss: 5 + Kaliber:12,7x99mm (AMAX)<br />Patronen: 5 \ No newline at end of file From c38fe384e3c53094b98bdf53a51655279a203b9c Mon Sep 17 00:00:00 2001 From: Glowbal Date: Tue, 28 Apr 2015 19:30:35 +0200 Subject: [PATCH 214/256] added default values for getvar's --- addons/medical/functions/fnc_handleUnitVitals.sqf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/addons/medical/functions/fnc_handleUnitVitals.sqf b/addons/medical/functions/fnc_handleUnitVitals.sqf index 411f64b49e..b806d1358f 100644 --- a/addons/medical/functions/fnc_handleUnitVitals.sqf +++ b/addons/medical/functions/fnc_handleUnitVitals.sqf @@ -66,13 +66,13 @@ if (_painStatus > 0) then { if (GVAR(level) == 1) then { // reduce pain - if (_unit getVariable [QGVAR(pain), 0] > 0) then { - _unit setVariable [QGVAR(pain), ((_unit getVariable QGVAR(pain)) - 0.001 * _interval) max 0, _syncValues]; + if (_painStatus > 0) then { + _unit setVariable [QGVAR(pain), (_painStatus - 0.001 * _interval) max 0, _syncValues]; }; // reduce painkillers if (_unit getVariable [QGVAR(morphine), 0] > 0) then { - _unit setVariable [QGVAR(morphine), ((_unit getVariable QGVAR(morphine)) - 0.0015 * _interval) max 0, _syncValues]; + _unit setVariable [QGVAR(morphine), ((_unit getVariable [QGVAR(morphine), 0]) - 0.0015 * _interval) max 0, _syncValues]; }; // bleeding From 76393f31db563c98d1701a4f20d77130bb199802 Mon Sep 17 00:00:00 2001 From: ulteq Date: Tue, 28 Apr 2015 19:31:38 +0200 Subject: [PATCH 215/256] Fixes: https://github.com/acemod/ACE3/issues/896 --- addons/recoil/functions/fnc_camshake.sqf | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/addons/recoil/functions/fnc_camshake.sqf b/addons/recoil/functions/fnc_camshake.sqf index 737582b1cb..176d761b2b 100644 --- a/addons/recoil/functions/fnc_camshake.sqf +++ b/addons/recoil/functions/fnc_camshake.sqf @@ -33,8 +33,13 @@ _recoil = if (_muzzle == _weapon) then { getText (_config >> _muzzle >> "recoil") }; -_recoil = getArray (configFile >> "CfgRecoils" >> _recoil >> "kickBack"); -if (count _recoil < 2) then { +if (isClass (configFile >> "CfgRecoils" >> _recoil)) then { + _recoil = getArray (configFile >> "CfgRecoils" >> _recoil >> "kickBack"); + if (count _recoil < 2) then { + _recoil = [0, 0]; + }; +} else { + systemChat "noclass"; _recoil = [0, 0]; }; From e759989d33e8ae6fe0792b05cbf458e07b9bc36d Mon Sep 17 00:00:00 2001 From: ulteq Date: Tue, 28 Apr 2015 19:33:00 +0200 Subject: [PATCH 216/256] Removed debug output --- addons/recoil/functions/fnc_camshake.sqf | 1 - 1 file changed, 1 deletion(-) diff --git a/addons/recoil/functions/fnc_camshake.sqf b/addons/recoil/functions/fnc_camshake.sqf index 176d761b2b..806d48760b 100644 --- a/addons/recoil/functions/fnc_camshake.sqf +++ b/addons/recoil/functions/fnc_camshake.sqf @@ -39,7 +39,6 @@ if (isClass (configFile >> "CfgRecoils" >> _recoil)) then { _recoil = [0, 0]; }; } else { - systemChat "noclass"; _recoil = [0, 0]; }; From b119c85c57fd16dc81548e5bc9d4952c2207b26d Mon Sep 17 00:00:00 2001 From: simon84 Date: Tue, 28 Apr 2015 19:36:31 +0200 Subject: [PATCH 217/256] found some errors --- addons/ballistics/stringtable.xml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/addons/ballistics/stringtable.xml b/addons/ballistics/stringtable.xml index 3c63557f03..b17cc307a9 100644 --- a/addons/ballistics/stringtable.xml +++ b/addons/ballistics/stringtable.xml @@ -296,7 +296,7 @@ 7.62mm 20rnd Tracer IR-DIM Mag 7,62 mm Nyomjelző IR-DIM 20-as Tár - 7,62 mm 20-Schuss-Magazin Leuchtspur IR-DIM + 7,62mm 20-Schuss-Magazin Leuchtspur IR-DIM Cargador de 20 balas trazadoras IR-DIM de 7,62mm Ch. 7,62mm 20Cps Traçantes IR-DIM Magazynek 7,62mm 20rd Smugacz IR-DIM @@ -710,7 +710,7 @@ Calibre: 5.56x45 mm NATO (Mk262)<br />Cartouches: 30 Calibre: 5.56x45 mm NATO (Mk262)<br />Balas: 30 Калибр: 5,56x45 мм NATO (Mk262)<br />Патронов: 30 - Kaliber: 5,56x45mm NATO (Mk262)<br />Schuss: 30 + Kaliber: 5,56x45mm NATO (Mk262)<br />Patronen: 30 5.56mm 30Rnd Mag (Mk318) @@ -822,7 +822,7 @@ 7.62mm Mk316 7.62mm Mk316 7,62 мм Mk316 - 7.62mm Mk316 + 7,62mm Mk316 Caliber: 7.62x51 mm NATO (Mk316 Mod 0)<br />Rounds: 10 @@ -830,7 +830,7 @@ Calibre: 7.62x51 mm NATO (Mk316 Mod 0)<br />Cartouches: 10 Calibre: 7.62x51 mm NATO (Mk316 Mod 0)<br />Balas: 10 Калибр: 7,62x51 мм NATO (Mk316 Mod 0)<br />Патронов: 10 - Kaliber: 7.62x51 mm NATO (Mk316 Mod 0)<br />Patronen: 10 + Kaliber: 7,62x51mm NATO (Mk316 Mod 0)<br />Patronen: 10 7.62mm 20Rnd Mag (Mk316 Mod 0) @@ -838,7 +838,7 @@ 7.62mm 20Cps (Mk316 Mod 0) Cargador de 20 balas de 7.62mm (Mk316 Mod 0) Магазин из 20-ти 7,62 мм (Mk316 Mod 0) - 7.62mm 20-Schuss-Magazin (Mk316 Mod 0) + 7,62mm 20-Schuss-Magazin (Mk316 Mod 0) 7.62mm Mk316 @@ -846,7 +846,7 @@ 7.62mm Mk316 7.62mm Mk316 7,62 мм Mk316 - 7.62mm Mk316 + 7,62mm Mk316 Caliber: 7.62x51 mm NATO (Mk316 Mod 0)<br />Rounds: 20 @@ -854,7 +854,7 @@ Calibre: 7.62x51 mm NATO (Mk316 Mod 0)<br />Cartouches: 20 Calibre: 7.62x51 mm NATO (Mk316 Mod 0)<br />Balas: 20 Калибр: 7,62x51 мм NATO (Mk316 Mod 0)<br />Патронов: 20 - Kaliber: 7.62x51 mm NATO (Mk316 Mod 0)<br />Patronen: 20 + Kaliber: 7,62x51mm NATO (Mk316 Mod 0)<br />Patronen: 20 7.62mm 10Rnd Mag (Mk319 Mod 0) @@ -998,7 +998,7 @@ Calibre: 7.62x67mm NATO (Mk248 Mod 1)<br />Cartouches: 20 Calibre: 7.62x67 mm NATO (Mk248 Mod 1)<br />Balas: 20 Калибр: 7,62x67 мм NATO (Mk248 Mod 1)<br />Патронов: 20 - Kaliber: 7.62x51mm NATO (Mk248 Mod 1)<br />Patronen: 20 + Kaliber: 7,62x51mm NATO (Mk248 Mod 1)<br />Patronen: 20 7.62mm 20Rnd Mag (Berger Hybrid OTM) @@ -1022,7 +1022,7 @@ Calibre: 7.62x67mm NATO (Berger Hybrid OTM)<br />Cartouches: 20 Calibre: 7.62x67 mm NATO (Berger Hybrid OTM)<br />Balas: 20 Калибр: 7,62x67 мм NATO (Berger Hybrid OTM)<br />Патронов: 20 - Kaliber: 7.62x67mm NATO (Berger Hybrid OTM)<br />Patronen: 20 + Kaliber: 7,62x67mm NATO (Berger Hybrid OTM)<br />Patronen: 20 6.5x47mm 30Rnd Mag (HPBT Scenar) From 85ce5e3729f7db0663cae5220e885dc211701ce8 Mon Sep 17 00:00:00 2001 From: ulteq Date: Tue, 28 Apr 2015 19:43:36 +0200 Subject: [PATCH 218/256] Unified spacing --- addons/ballistics/stringtable.xml | 356 +++++++++++++++--------------- 1 file changed, 178 insertions(+), 178 deletions(-) diff --git a/addons/ballistics/stringtable.xml b/addons/ballistics/stringtable.xml index 3c63557f03..1bb970b8a4 100644 --- a/addons/ballistics/stringtable.xml +++ b/addons/ballistics/stringtable.xml @@ -4,7 +4,7 @@ 6.5mm 30Rnd Tracer IR-DIM Mag - 6,5 mm Nyomjelző IR-DIM 30-as Tár + 6,5mm Nyomjelző IR-DIM 30-as Tár 6,5mm 30-Schuss-Magazin Leuchtspur IR-DIM Cargador de 30 balas trazadoras IR-DIM de 6,5mm Ch. 6,5mm 30Cps Traçantes IR-DIM @@ -16,31 +16,31 @@ 6.5mm IR-DIM - 6,5 mm IR-DIM + 6,5mm IR-DIM 6,5mm IR-DIM 6,5mm IR-DIM 6,5mm IR-DIM 6,5mm IR-DIM 6.5mm IR-DIM 6,5mm IR-DIM - 6.5 IR-DIM + 6.5mm IR-DIM 6,5 мм ИК-трассирующие - Caliber: 6.5x39 mm Tracer IR-DIM<br />Rounds: 30<br />Used in: MX/C/M/SW/3GL - Kaliber: 6,5x39 mm Nyomjelző IR-DIM<br />Lövedékek: 30<br />Használható: MX/C/M/SW/3GL + Caliber: 6.5x39mm Tracer IR-DIM<br />Rounds: 30<br />Used in: MX/C/M/SW/3GL + Kaliber: 6,5x39mm Nyomjelző IR-DIM<br />Lövedékek: 30<br />Használható: MX/C/M/SW/3GL Kaliber: 6,5x39mm Leuchtspur IR-DIM<br />Patronen: 30<br />Eingesetzt von: MX/C/M/SW/3GL - Calibre: 6,5x39 mm Trazadoras IR-DIM<br />Balas: 30<br />Se usa en: MX/C/M/SW/3GL - Calibre: 6,5x39 mm Traçantes IR-DIM<br />Cartouches: 30<br />Utilisé dans: MX/C/M/SW/3GL - Kaliber: 6,5x39 mm Smugacz IR-DIM<br />Pociski: 30<br />Używane w: MX/C/M/SW/3GL - Ráže: 6.5x39 mm Svítící IR-DIM<br />Munice: 30<br />Použití: MX/C/M/SW/3GL - Calibre: 6,5x39 mm Traçante IR-DIM<br />Projéteis: 30<br />Usado em: MX/C/M/SW/3GL - Calibro: 6.5x39 mm Traccianti IR-DIM <br />Munizioni: 30<br />In uso su: MX/C/M/SW/3GL + Calibre: 6,5x39mm Trazadoras IR-DIM<br />Balas: 30<br />Se usa en: MX/C/M/SW/3GL + Calibre: 6,5x39mm Traçantes IR-DIM<br />Cartouches: 30<br />Utilisé dans: MX/C/M/SW/3GL + Kaliber: 6,5x39mm Smugacz IR-DIM<br />Pociski: 30<br />Używane w: MX/C/M/SW/3GL + Ráže: 6.5x39mm Svítící IR-DIM<br />Munice: 30<br />Použití: MX/C/M/SW/3GL + Calibre: 6,5x39mm Traçante IR-DIM<br />Projéteis: 30<br />Usado em: MX/C/M/SW/3GL + Calibro: 6.5x39mm Traccianti IR-DIM <br />Munizioni: 30<br />In uso su: MX/C/M/SW/3GL Калибр: 6,5x39 мм ИК-трассирующие<br />Патронов: 30<br />Используются с: MX/C/M/SW/3GL 6.5mm 30Rnd SD Mag - 6,5 mm Halk 30-as Tár + 6,5mm Halk 30-as Tár 6,5mm 30-Schuss-Magazin SD Cargador de 30 balas SD de 6,5mm Ch. 6,5mm 30Cps SD @@ -52,7 +52,7 @@ 6.5mm SD - 6,5 mm Halk + 6,5mm Halk 6,5mm SD 6,5mm SD 6,5mm SD @@ -63,20 +63,20 @@ 6,5 мм дозвуковые - Caliber: 6.5x39 mm SD<br />Rounds: 30<br />Used in: MX/C/M/SW/3GL - Kaliber: 6,5x39 mm Halk<br />Lövedékek: 30<br />Használható: MX/C/M/SW/3GL + Caliber: 6.5x39mm SD<br />Rounds: 30<br />Used in: MX/C/M/SW/3GL + Kaliber: 6,5x39mm Halk<br />Lövedékek: 30<br />Használható: MX/C/M/SW/3GL Kaliber: 6,5x39mm SD<br />Patronen: 30<br />Eingesetzt von: MX/C/M/SW/3GL - Calibre: 6,5x39 mm SD<br />Balas: 30<br />Se usa en: MX/C/M/SW/3GL - Calibre: 6,5x39 mm SD<br />Cartouches: 30<br />Utilisé dans: MX/C/M/SW/3GL - Kaliber: 6,5x39 mm SD<br />Pociski: 30<br />Używane w: MX/C/M/SW/3GL - Ráže: 6.5x39 mm SD<br />Munice: 30<br />Použití: MX/C/M/SW/3GL - Calibre: 6,5x39 mm SD<br />Projéteis: 30<br />Usado em: MX/C/M/SW/3GL - Calibro: 6.5x39 mm Sil.<br />Munizioni: 30<br />In uso su: MX/C/M/SW/3GL + Calibre: 6,5x39mm SD<br />Balas: 30<br />Se usa en: MX/C/M/SW/3GL + Calibre: 6,5x39mm SD<br />Cartouches: 30<br />Utilisé dans: MX/C/M/SW/3GL + Kaliber: 6,5x39mm SD<br />Pociski: 30<br />Używane w: MX/C/M/SW/3GL + Ráže: 6.5x39mm SD<br />Munice: 30<br />Použití: MX/C/M/SW/3GL + Calibre: 6,5x39mm SD<br />Projéteis: 30<br />Usado em: MX/C/M/SW/3GL + Calibro: 6.5x39mm Sil.<br />Munizioni: 30<br />In uso su: MX/C/M/SW/3GL Калибр: 6,5x39 мм дозвуковые<br />Патронов: 30<br />Используются с: MX/C/M/SW/3GL 6.5mm 30Rnd AP Mag - 6,5 mm Páncéltörő 30-as Tár + 6,5mm Páncéltörő 30-as Tár 6,5mm 30-Schuss-Magazin AP Cargador de 30 balas AP de 6,5mm Ch. 6,5mm 30Cps AP @@ -88,7 +88,7 @@ 6.5mm AP - 6,5 mm Páncéltörő + 6,5mm Páncéltörő 6,5mm AP 6,5mm AP 6,5mm AP @@ -99,15 +99,15 @@ 6,5 мм бронебойные - Caliber: 6.5x39 mm AP<br />Rounds: 30<br />Used in: MX/C/M/SW/3GL - Kaliber: 6,5x39 mm Páncéltörő<br />Lövedékek: 30<br />Használható: MX/C/M/SW/3GL + Caliber: 6.5x39mm AP<br />Rounds: 30<br />Used in: MX/C/M/SW/3GL + Kaliber: 6,5x39mm Páncéltörő<br />Lövedékek: 30<br />Használható: MX/C/M/SW/3GL Kaliber: 6,5x39mm AP<br />Patronen: 30<br />Eingesetzt von: MX/C/M/SW/3GL - Calibre: 6,5x39 mm AP<br />Balas: 30<br />Se usa en: MX/C/M/SW/3GL - Calibre: 6,5x39 mm AP<br />Cartouches: 30<br />Utilisé dans: MX/C/M/SW/3GL - Kaliber: 6,5x39 mm AP<br />Pociski: 30<br />Używane w: MX/C/M/SW/3GL - Ráže: 6.5x39 mm AP<br />Munice: 30<br />Použití: MX/C/M/SW/3GL - Calibre: 6,5x39 mm AP<br />Projéteis: 30<br />Usado em: MX/C/M/SW/3GL - Calibro: 6.5x39 mm AP<br />Munizioni: 30<br />In uso su: MX/C/M/SW/3GL + Calibre: 6,5x39mm AP<br />Balas: 30<br />Se usa en: MX/C/M/SW/3GL + Calibre: 6,5x39mm AP<br />Cartouches: 30<br />Utilisé dans: MX/C/M/SW/3GL + Kaliber: 6,5x39mm AP<br />Pociski: 30<br />Używane w: MX/C/M/SW/3GL + Ráže: 6.5x39mm AP<br />Munice: 30<br />Použití: MX/C/M/SW/3GL + Calibre: 6,5x39mm AP<br />Projéteis: 30<br />Usado em: MX/C/M/SW/3GL + Calibro: 6.5x39mm AP<br />Munizioni: 30<br />In uso su: MX/C/M/SW/3GL Калибр: 6,5x39 мм бронебойные<br />Патронов: 30<br />Используются с: MX/C/M/SW/3GL @@ -136,20 +136,20 @@ 6,5 мм ИК-трассирующие - Caliber: 6.5x39 mm Tracer IR-DIM<br />Rounds: 30<br />Used in: Katiba - Kaliber: 6,5x39 mm Nyomjelző IR-DIM<br />Lövedékek: 30<br />Használható: Katiba + Caliber: 6.5x39mm Tracer IR-DIM<br />Rounds: 30<br />Used in: Katiba + Kaliber: 6,5x39mm Nyomjelző IR-DIM<br />Lövedékek: 30<br />Használható: Katiba Kaliber: 6,5x39mm Leuchtspur IR-DIM<br />Patronen: 30<br />Eingesetzt von: Katiba - Calibre: 6,5x39 mm Trazadoras IR-DIM<br />Balas: 30<br />Se usa en: Katiba - Calibre: 6,5x39 mm Traçantes IR-DIM<br />Cartouches: 30<br />Utilisé dans: Katiba - Kaliber: 6,5x39 mm Smugacz IR-DIM<br />Pociski: 30<br />Używane w: Katiba - Ráže: 6.5x39 mm Svítící IR-DIM<br />Munice: 30<br />Použití: Katiba - Calibre: 6,5x39 mm Traçante IR-DIM<br />Projéteis: 30<br />Usado em: Katiba - Calibro: 6.5x39 mm Tracciant IR-DIM<br />Munizioni: 30<br />In uso su: Katiba + Calibre: 6,5x39mm Trazadoras IR-DIM<br />Balas: 30<br />Se usa en: Katiba + Calibre: 6,5x39mm Traçantes IR-DIM<br />Cartouches: 30<br />Utilisé dans: Katiba + Kaliber: 6,5x39mm Smugacz IR-DIM<br />Pociski: 30<br />Używane w: Katiba + Ráže: 6.5x39mm Svítící IR-DIM<br />Munice: 30<br />Použití: Katiba + Calibre: 6,5x39mm Traçante IR-DIM<br />Projéteis: 30<br />Usado em: Katiba + Calibro: 6.5x39mm Tracciant IR-DIM<br />Munizioni: 30<br />In uso su: Katiba Калибр: 6,5x39 мм ИК-трассирующие<br />Патронов: 30<br />Используются с: Katiba 6.5mm 30Rnd SD Mag - 6,5 mm Halk 30-as Tár + 6,5mm Halk 30-as Tár 6,5mm 30-Schuss-Magazin SD Cargador de 30 balas SD de 6,5mm Ch. 6,5mm 30Cps SD @@ -161,7 +161,7 @@ 6.5mm SD - 6,5 mm Halk + 6,5mm Halk 6,5mm SD 6,5mm SD 6,5mm SD @@ -172,20 +172,20 @@ 6,5 мм дозвуковые - Caliber: 6.5x39 mm SD<br />Rounds: 30<br />Used in: Katiba - Kaliber: 6,5x39 mm Halk<br />Lövedékek: 30<br />Használható: Katiba + Caliber: 6.5x39mm SD<br />Rounds: 30<br />Used in: Katiba + Kaliber: 6,5x39mm Halk<br />Lövedékek: 30<br />Használható: Katiba Kaliber: 6,5x39mm SD<br />Patronen: 30<br />Eingesetzt von: Katiba - Calibre: 6,5x39 mm SD<br />Balas: 30<br />Se usa en: Katiba - Calibre: 6,5x39 mm SD<br />Cartouches: 30<br />Utilisé dans: Katiba - Kaliber: 6,5x39 mm SD<br />Naboje: 30<br />Używane w: Katiba - Ráže: 6.5x39 mm SD<br />Munice: 30<br />Použití: Katiba - Calibre: 6,5x39 mm SD<br />Projéteis: 30<br />Usado em: Katiba - Calibro: 6.5x39 mm Sil.<br />Munizioni: 30<br />In uso su: Katiba + Calibre: 6,5x39mm SD<br />Balas: 30<br />Se usa en: Katiba + Calibre: 6,5x39mm SD<br />Cartouches: 30<br />Utilisé dans: Katiba + Kaliber: 6,5x39mm SD<br />Naboje: 30<br />Używane w: Katiba + Ráže: 6.5x39mm SD<br />Munice: 30<br />Použití: Katiba + Calibre: 6,5x39mm SD<br />Projéteis: 30<br />Usado em: Katiba + Calibro: 6.5x39mm Sil.<br />Munizioni: 30<br />In uso su: Katiba Калибр: 6,5x39 мм дозвуковые<br />Патронов: 30<br />Используются с: Katiba 6.5mm 30Rnd AP Mag - 6,5 mm Páncéltörő 30-as Tár + 6,5mm Páncéltörő 30-as Tár 6,5mm 30-Schuss-Magazin AP Cargador de 30 balas AP de 6,5mm Ch. 6,5mm 30Cps AP @@ -197,7 +197,7 @@ 6.5mm AP - 6,5 mm Páncéltörő + 6,5mm Páncéltörő 6,5mm AP 6,5mm AP 6,5mm AP @@ -208,21 +208,21 @@ 6,5 мм бронебойные - Caliber: 6.5x39 mm AP<br />Rounds: 30<br />Used in: Katiba - Kaliber: 6,5x39 mm Páncéltörő<br />Lövedékek: 30<br />Használható: Katiba + Caliber: 6.5x39mm AP<br />Rounds: 30<br />Used in: Katiba + Kaliber: 6,5x39mm Páncéltörő<br />Lövedékek: 30<br />Használható: Katiba Kaliber: 6,5x39mm AP<br />Patronen: 30<br />Eingesetzt von: Katiba - Calibre: 6,5x39 mm AP<br />Balas: 30<br />Se usa en: Katiba - Calibre: 6,5x39 mm AP<br />Cartouches: 30<br />Utilisé dans: Katiba - Kaliber: 6,5x39 mm AP<br />Pociski: 30<br />Używane w: Katiba - Ráže: 6.5x39 mm AP<br />Munice: 30<br />Použití: Katiba - Calibre: 6,5x39 mm AP<br />Projéteis: 30<br />Usado em: Katiba - Calibro: 6.5x39 mm AP<br />Munizioni: 30<br />In uso su: Katiba + Calibre: 6,5x39mm AP<br />Balas: 30<br />Se usa en: Katiba + Calibre: 6,5x39mm AP<br />Cartouches: 30<br />Utilisé dans: Katiba + Kaliber: 6,5x39mm AP<br />Pociski: 30<br />Używane w: Katiba + Ráže: 6.5x39mm AP<br />Munice: 30<br />Použití: Katiba + Calibre: 6,5x39mm AP<br />Projéteis: 30<br />Usado em: Katiba + Calibro: 6.5x39mm AP<br />Munizioni: 30<br />In uso su: Katiba Калибр: 6,5x39 мм бронебойные<br />Патронов: 30<br />Используются с: Katiba 5.56mm 30rnd Tracer IR-DIM Mag - 5,56 mm Nyomjelző IR-DIM 30-as Tár + 5,56mm Nyomjelző IR-DIM 30-as Tár 5,56mm 30-Schuss-Magazin Leuchtspur IR-DIM Cargador de 30 balas trazadoras IR-DIM de 5,56mm Ch. 5,56mm 30Cps Traçantes IR-DIM @@ -234,7 +234,7 @@ 5.56mm IR-DIM - 5,56 mm IR-DIM + 5,56mm IR-DIM 5,56mm IR-DIM 5,56mm IR-DIM 5,56mm IR-DIM @@ -245,21 +245,21 @@ 5,56 мм ИК-трассирующие - Caliber: 5.56x45 mm Tracer IR-DIM<br />Rounds: 30<br />Used in: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR - Kaliber: 5,56x45 mm Nyomjelző IR-DIM<br />Lövedékek: 30<br />Használható: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR + Caliber: 5.56x45mm Tracer IR-DIM<br />Rounds: 30<br />Used in: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR + Kaliber: 5,56x45mm Nyomjelző IR-DIM<br />Lövedékek: 30<br />Használható: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR Kaliber: 5,56x45mm Leuchtspur IR-DIM<br />Patronen: 30<br />Eingesetzt von: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR - Calibre: 5,56x45 mm Trazadoras IR-DIM<br />Balas: 30<br />Se usa en: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR - Calibre: 5,56x45 mm Traçantes IR-DIM<br />Cartouches: 30<br />Utilisé dans: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR - Kaliber: 5,56x45 mm Smugacz IR-DIM<br />Pociski: 30<br />Używane w: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR - Ráže: 5.56x45 mm Svítící IR-DIM<br />Munice: 30<br />Použití: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR - Calibre: 5,56x45 mm Traçante IR-DIM<br />Projéteis: 30<br />Usado em: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR - Calibro: 5.56x45 mm Traccianti IR-DIM<br />Munizioni: 30<br />In uso su: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR + Calibre: 5,56x45mm Trazadoras IR-DIM<br />Balas: 30<br />Se usa en: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR + Calibre: 5,56x45mm Traçantes IR-DIM<br />Cartouches: 30<br />Utilisé dans: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR + Kaliber: 5,56x45mm Smugacz IR-DIM<br />Pociski: 30<br />Używane w: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR + Ráže: 5.56x45mm Svítící IR-DIM<br />Munice: 30<br />Použití: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR + Calibre: 5,56x45mm Traçante IR-DIM<br />Projéteis: 30<br />Usado em: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR + Calibro: 5.56x45mm Traccianti IR-DIM<br />Munizioni: 30<br />In uso su: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR Калибр: 5,56x45 мм ИК-трассирующие<br />Патронов: 30<br />Используются с: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR 7.62mm 20rnd Tracer Mag - 7,62 mm Nyomjelző IR-DIM 20-as Tár + 7,62mm Nyomjelző IR-DIM 20-as Tár 7,62mm 20-Schuss-Magazin Leuchtspur Cargador de 20 balas trazadores de 7,62mm Ch. 7,62mm 20Cps Traçantes @@ -271,7 +271,7 @@ 7.62mm Tracer - 7,62 mm Nyomjelző + 7,62mm Nyomjelző 7,62mm Leuchtspur 7,62mm trazadora 7,62mm Traçantes @@ -282,21 +282,21 @@ 7,62 мм трассирущие - Caliber: 7.62x51 mm Tracer<br />Rounds: 20<br />Used in: Mk18 ABR - Kaliber: 7,62x51 mm Nyomjelző<br />Lövedékek: 20<br />Használható: Mk18 ABR + Caliber: 7.62x51mm Tracer<br />Rounds: 20<br />Used in: Mk18 ABR + Kaliber: 7,62x51mm Nyomjelző<br />Lövedékek: 20<br />Használható: Mk18 ABR Kaliber: 7,62x51mm Leuchtspur<br />Patronen: 20<br />Eingesetzt von: EBR - Calibre: 7,62x51 mm Trazadora<br />Balas: 20<br />Se usa en: Mk18 ABR - Calibre: 7,62x51 mm Traçantes<br />Cartouches: 20<br />Utilisé dans: EBR - Kaliber: 7,62x51 mm Smugacz<br />Pociski: 20<br />Używane w: Mk18 ABR - Ráže: 7.62x51 mm Svítící<br />Munice: 20<br />Použití: Mk18 ABR - Calibre: 7,62x51 mm Traçante<br />Projéteis: 20<br />Usado em: Mk18 ABR - Calibro: 7.62x51 mm Traccianti<br />Munizioni: 20<br />In uso su: Mk18 ABR + Calibre: 7,62x51mm Trazadora<br />Balas: 20<br />Se usa en: Mk18 ABR + Calibre: 7,62x51mm Traçantes<br />Cartouches: 20<br />Utilisé dans: EBR + Kaliber: 7,62x51mm Smugacz<br />Pociski: 20<br />Używane w: Mk18 ABR + Ráže: 7.62x51mm Svítící<br />Munice: 20<br />Použití: Mk18 ABR + Calibre: 7,62x51mm Traçante<br />Projéteis: 20<br />Usado em: Mk18 ABR + Calibro: 7.62x51mm Traccianti<br />Munizioni: 20<br />In uso su: Mk18 ABR Калибр: 7,62x51 мм трассирующие<br />Патронов: 20<br />Используются с: Mk18 ABR 7.62mm 20rnd Tracer IR-DIM Mag - 7,62 mm Nyomjelző IR-DIM 20-as Tár - 7,62 mm 20-Schuss-Magazin Leuchtspur IR-DIM + 7,62mm Nyomjelző IR-DIM 20-as Tár + 7,62mm 20-Schuss-Magazin Leuchtspur IR-DIM Cargador de 20 balas trazadoras IR-DIM de 7,62mm Ch. 7,62mm 20Cps Traçantes IR-DIM Magazynek 7,62mm 20rd Smugacz IR-DIM @@ -307,7 +307,7 @@ 7.62mm IR-DIM - 7,62 mm IR-DIM + 7,62mm IR-DIM 7,62mm IR-DIM 7,62mm IR-DIM 7,62mm IR-DIM @@ -318,20 +318,20 @@ 7,62 мм ИК-трассирующие - Caliber: 7.62x51 mm Tracer IR-DIM<br />Rounds: 20<br />Used in: Mk18 ABR - Kaliber: 7,62x51 mm Nyomjelző IR-DIM<br />Lövedékek: 20<br />Használható: Mk18 ABR + Caliber: 7.62x51mm Tracer IR-DIM<br />Rounds: 20<br />Used in: Mk18 ABR + Kaliber: 7,62x51mm Nyomjelző IR-DIM<br />Lövedékek: 20<br />Használható: Mk18 ABR Kaliber: 7,62x51mm Leuchtspur IR-DIM<br />Patronen: 20<br />Eingesetzt von: EBR - Calibre: 7,62x51 mm Trazadoras IR-DIM<br />Balas: 20<br />Se usa en: Mk18 ABR - Calibre: 7,62x51 mm Traçantes IR-DIM<br />Cartouches: 20<br />Utilisé dans: EBR - Kaliber: 7,62x51 mm Smugacz IR-DIM<br />Pociski: 20<br />Używane w: Mk18 ABR - Ráže: 7.62x51 mm Svítící IR-DIM<br />Munice: 20<br />Použití: Mk18 ABR - Calibre: 7,62x51 mm Traçante IR-DIM<br />Projéteis: 20<br />Usado em: Mk18 ABR - Calibro: 7.62x51 mm Traccianti IR-DIM<br />Munizioni: 20<br />In uso su: Mk18 ABR + Calibre: 7,62x51mm Trazadoras IR-DIM<br />Balas: 20<br />Se usa en: Mk18 ABR + Calibre: 7,62x51mm Traçantes IR-DIM<br />Cartouches: 20<br />Utilisé dans: EBR + Kaliber: 7,62x51mm Smugacz IR-DIM<br />Pociski: 20<br />Używane w: Mk18 ABR + Ráže: 7.62x51mm Svítící IR-DIM<br />Munice: 20<br />Použití: Mk18 ABR + Calibre: 7,62x51mm Traçante IR-DIM<br />Projéteis: 20<br />Usado em: Mk18 ABR + Calibro: 7.62x51mm Traccianti IR-DIM<br />Munizioni: 20<br />In uso su: Mk18 ABR Калибр: 7,62x51 мм ИК-трассирующие<br />Патронов: 20<br />Используются с: Mk18 ABR 7.62mm 20Rnd SD Mag - 7,62 mm Halk 20-as Tár + 7,62mm Halk 20-as Tár 7,62mm 20-Schuss-Magazin SD Cargador de 20 balas SD de 7,62mm Ch. 7,62mm 20Cps SD @@ -343,7 +343,7 @@ 7.62mm SD - 7,62 mm Halk + 7,62mm Halk 7,62mm SD 7,62mm SD 7,62mm SD @@ -354,15 +354,15 @@ 7,62 мм дозвуковые - Caliber: 7.62x51 mm SD<br />Rounds: 20<br />Used in: Mk18 ABR - Kaliber: 7,62x51 mm Halk<br />Lövedékek: 20<br />Használható: Mk18 ABR + Caliber: 7.62x51mm SD<br />Rounds: 20<br />Used in: Mk18 ABR + Kaliber: 7,62x51mm Halk<br />Lövedékek: 20<br />Használható: Mk18 ABR Kaliber: 7,62x51mm SD<br />Patronen: 20<br />Eingesetzt von: EBR - Calibre: 7,62x51 mm SD<br />Balas: 20<br />Se usa en: Mk18 ABR - Calibre: 7,62x51 mm SD<br />Cartouches: 20<br />Utilisé dans: EBR - Kaliber: 7,62x51 mm SD<br />Pociski: 20<br />Używane w: Mk18 ABR - Ráže: 7.62x51 mm SD<br />Munice: 20<br />Použití: Mk18 ABR - Calibre: 7,62x51 mm SD<br />Projéteis: 20<br />Usado em: Mk18 ABR - Calibro: 7.62x51 mm Sil.<br />Munizioni: 20<br />In uso su: Mk18 ABR + Calibre: 7,62x51mm SD<br />Balas: 20<br />Se usa en: Mk18 ABR + Calibre: 7,62x51mm SD<br />Cartouches: 20<br />Utilisé dans: EBR + Kaliber: 7,62x51mm SD<br />Pociski: 20<br />Używane w: Mk18 ABR + Ráže: 7.62x51mm SD<br />Munice: 20<br />Použití: Mk18 ABR + Calibre: 7,62x51mm SD<br />Projéteis: 20<br />Usado em: Mk18 ABR + Calibro: 7.62x51mm Sil.<br />Munizioni: 20<br />In uso su: Mk18 ABR Калибр: 7,62x51 мм дозвуковые<br />Патронов: 20<br />Используются с: Mk18 ABR @@ -462,7 +462,7 @@ Caliber: 9.3x64mm Tracer<br />Rounds: 10<br />Used in: Cyrus Kaliber: 9,3x64mm Leuchtspur<br />Patronen: 10<br />Eingesetzt von: Cyrus - Kaliber: 9,3x64 mm Smugacz<br />Pociski: 10<br />Używany w: Cyrus + Kaliber: 9,3x64mm Smugacz<br />Pociski: 10<br />Używany w: Cyrus Calibre: 9.3x64mm Traçante<br />Cartouches: 10<br />Utilisé dans: Cyrus Calibre: 9.3x64mm trazadora<br />Balas: 10<br />Se usa en: Cyrus Калибр: 9,3x64 мм трассирующие<br />Патронов: 10<br />Используются с: Cyrus @@ -487,7 +487,7 @@ Caliber: 9.3x64mm Tracer IR-DIM<br />Rounds: 10<br />Used in: Cyrus Kaliber: 9,3x64mm Leuchtspur IR-DIM<br />Patronen: 10<br />Eingesetzt von: Cyrus - Kaliber: 9,3x64 mm Smugacz IR-DIM<br />Pociski: 10<br />Używany w: Cyrus + Kaliber: 9,3x64mm Smugacz IR-DIM<br />Pociski: 10<br />Używany w: Cyrus Calibre: 9.3x64mm Traçante IR-DIM<br />Cartouches: 10<br />Utilisé dans: Cyrus Calibre: 9.3x64mm trazadora IR-DIM<br />Balas: 10<br />Se usa en: Cyrus Калибр: 9,3x64 мм ИК-трассирующие<br />Патронов: 10<br />Используются с: Cyrus @@ -513,7 +513,7 @@ Caliber: 9.3x64mm Tracer<br />Rounds: 150<br />Used in: Navid Kaliber: 9,3x64mm Leuchtspur<br />Patronen: 150<br />Eingesetzt von: Navid - Kaliber: 9,3x64 mm Smugacz<br />Pociski: 150<br />Używane w: Navid + Kaliber: 9,3x64mm Smugacz<br />Pociski: 150<br />Używane w: Navid Calibre: 9.3x64mm Traçante<br />Cartouches: 150<br />Utilisé dans: Navid Calibre: 9.3x64mm trazadora<br />Balas: 150<br />Se usa en: Navid Калибр: 9,3x64 мм трассирующие<br />Патронов: 150<br />Используются с: Навид @@ -538,7 +538,7 @@ Caliber: 9.3x64mm Tracer IR-DIM<br />Rounds: 150<br />Used in: Navid Kaliber: 9,3x64mm Leuchtspur IR-DIM<br />Patronen: 150<br />Eingesetzt von: Navid - Kaliber: 9,3x64 mm Smugacz IR-DIM<br />Pociski: 150<br />Używane w: Navid + Kaliber: 9,3x64mm Smugacz IR-DIM<br />Pociski: 150<br />Używane w: Navid Calibre: 9.3x64mm Traçante IR-DIM<br />Cartouches: 150<br />Utilisé dans: Navid Calibre: 9.3x64mm trazadora IR-DIM<br />Balas: 150<br />Se usa en: Navid Калибр: 9,3x64 мм ИК-трассирующие<br />Патронов: 150<br />Используются с: Навид @@ -563,7 +563,7 @@ Caliber: 9.3x64mm AP<br />Rounds: 150<br />Used in: Navid Kaliber: 9,3x64mm Hartkern<br />Patronen: 150<br />Eingesetzt von: Navid - Kaliber: 9,3x64 mm AP<br />Pociski: 150<br />Używane w: Navid + Kaliber: 9,3x64mm AP<br />Pociski: 150<br />Używane w: Navid Calibre: 9.3x64mm AP<br />Cartouches: 150<br />Utilisé dans: Navid Calibre: 9.3x64mm AP<br />Balas: 150<br />Se usa en: Navid Калибр: 9,3x64 мм бронебойные<br />Патронов: 150<br />Используются с: Навид @@ -618,7 +618,7 @@ 7.62x54mm 10Rnd Tracer IR-DIM Mag - Magazynek 7,62x54 mm 10rd Smugacz IR-DIM + Magazynek 7,62x54mm 10rd Smugacz IR-DIM Chargeur 7.62x54mm 10Rnd Traçante IR-DIM Cargador de 10 balas trazadoras IR-DIM de 7.62x54mm Магазин из 10-ти 7,62 мм ИК-трассирующих @@ -634,7 +634,7 @@ 7.62x54mm 10Rnd Tracer IR-DIM Mag - Magazynek 7,62x54 mm 10rd Smugacz IR-DIM + Magazynek 7,62x54mm 10rd Smugacz IR-DIM Chargeur 7.62x54mm 10Cps Traçante IR-DIM Cargador de 10 balas trazadoras IR-DIM de 7.62x54mm Магазин из 10-ти 7,62 мм ИК-трассирующих @@ -705,10 +705,10 @@ 5,56mm Mk262 - Caliber: 5.56x45 mm NATO (Mk262)<br />Rounds: 30 - Kaliber: 5,56x45 mm NATO (Mk262)<br />Pociski: 30 - Calibre: 5.56x45 mm NATO (Mk262)<br />Cartouches: 30 - Calibre: 5.56x45 mm NATO (Mk262)<br />Balas: 30 + Caliber: 5.56x45mm NATO (Mk262)<br />Rounds: 30 + Kaliber: 5,56x45mm NATO (Mk262)<br />Pociski: 30 + Calibre: 5.56x45mm NATO (Mk262)<br />Cartouches: 30 + Calibre: 5.56x45mm NATO (Mk262)<br />Balas: 30 Калибр: 5,56x45 мм NATO (Mk262)<br />Патронов: 30 Kaliber: 5,56x45mm NATO (Mk262)<br />Schuss: 30 @@ -729,10 +729,10 @@ 5,56mm Mk318 - Caliber: 5.56x45 mm NATO (Mk318)<br />Rounds: 30 - Kaliber: 5,56x45 mm NATO (Mk318)<br />Pociski: 30 - Calibre: 5.56x45 mm NATO (Mk318)<br />Cartouches: 30 - Calibre: 5.56x45 mm NATO (Mk318)<br />Balas: 30 + Caliber: 5.56x45mm NATO (Mk318)<br />Rounds: 30 + Kaliber: 5,56x45mm NATO (Mk318)<br />Pociski: 30 + Calibre: 5.56x45mm NATO (Mk318)<br />Cartouches: 30 + Calibre: 5.56x45mm NATO (Mk318)<br />Balas: 30 Калибр: 5,56x45 мм NATO (Mk318)<br />Патронов: 30 Kaliber: 5,56x45mm NATO (Mk318)<br />Patronen: 30 @@ -753,10 +753,10 @@ 5,56mm AP - Caliber: 5.56x45 mm NATO (M995 AP)<br />Rounds: 30 - Kaliber: 5,56x45 mm NATO (M995 AP)<br />Pociski: 30 - Calibre: 5.56x45 mm NATO (M995 AP)<br />Cartouches: 30 - Calibre: 5.56x45 mm NATO (M995 AP)<br />Balas: 30 + Caliber: 5.56x45mm NATO (M995 AP)<br />Rounds: 30 + Kaliber: 5,56x45mm NATO (M995 AP)<br />Pociski: 30 + Calibre: 5.56x45mm NATO (M995 AP)<br />Cartouches: 30 + Calibre: 5.56x45mm NATO (M995 AP)<br />Balas: 30 Калибр: 5,56x45 мм NATO (M995 AP)<br />Патронов: 30 Kaliber: 5,56x45mm NATO (M995 AP)<br />Patronen: 30 @@ -777,10 +777,10 @@ 7,62mm M118LR - Caliber: 7.62x51 mm NATO (M118LR)<br />Rounds: 10 - Kaliber: 7,62x51 mm NATO (M118LR)<br />Pociski: 10 - Calibre: 7.62x51 mm NATO (M118LR)<br />Cartouches: 10 - Calibre: 7.62x51 mm NATO (M118LR)<br />Balas: 10 + Caliber: 7.62x51mm NATO (M118LR)<br />Rounds: 10 + Kaliber: 7,62x51mm NATO (M118LR)<br />Pociski: 10 + Calibre: 7.62x51mm NATO (M118LR)<br />Cartouches: 10 + Calibre: 7.62x51mm NATO (M118LR)<br />Balas: 10 Калибр: 7,62x51 мм NATO (M118LR)<br />Патронов: 10 Kaliber: 7,62x51mm NATO (M118LR)<br />Patronen: 10 @@ -801,10 +801,10 @@ 7,62mm M118LR - Caliber: 7.62x51 mm NATO (M118LR)<br />Rounds: 20 - Kaliber: 7,62x51 mm NATO (M118LR)<br />Pociski: 20 - Calibre: 7.62x51 mm NATO (M118LR)<br />Cartouches: 20 - Calibre: 7.62x51 mm NATO (M118LR)<br />Balas: 20 + Caliber: 7.62x51mm NATO (M118LR)<br />Rounds: 20 + Kaliber: 7,62x51mm NATO (M118LR)<br />Pociski: 20 + Calibre: 7.62x51mm NATO (M118LR)<br />Cartouches: 20 + Calibre: 7.62x51mm NATO (M118LR)<br />Balas: 20 Калибр: 7,62x51 мм NATO (M118LR)<br />Патронов: 20 Kaliber: 7,62x51mm NATO (M118LR)<br />Patronen: 20 @@ -825,12 +825,12 @@ 7.62mm Mk316 - Caliber: 7.62x51 mm NATO (Mk316 Mod 0)<br />Rounds: 10 - Kaliber: 7,62x51 mm NATO (Mk316 Mod 0)<br />Pociski: 10 - Calibre: 7.62x51 mm NATO (Mk316 Mod 0)<br />Cartouches: 10 - Calibre: 7.62x51 mm NATO (Mk316 Mod 0)<br />Balas: 10 + Caliber: 7.62x51mm NATO (Mk316 Mod 0)<br />Rounds: 10 + Kaliber: 7,62x51mm NATO (Mk316 Mod 0)<br />Pociski: 10 + Calibre: 7.62x51mm NATO (Mk316 Mod 0)<br />Cartouches: 10 + Calibre: 7.62x51mm NATO (Mk316 Mod 0)<br />Balas: 10 Калибр: 7,62x51 мм NATO (Mk316 Mod 0)<br />Патронов: 10 - Kaliber: 7.62x51 mm NATO (Mk316 Mod 0)<br />Patronen: 10 + Kaliber: 7.62x51mm NATO (Mk316 Mod 0)<br />Patronen: 10 7.62mm 20Rnd Mag (Mk316 Mod 0) @@ -849,12 +849,12 @@ 7.62mm Mk316 - Caliber: 7.62x51 mm NATO (Mk316 Mod 0)<br />Rounds: 20 - Kaliber: 7,62x51 mm NATO (Mk316 Mod 0)<br />Pociski: 20 - Calibre: 7.62x51 mm NATO (Mk316 Mod 0)<br />Cartouches: 20 - Calibre: 7.62x51 mm NATO (Mk316 Mod 0)<br />Balas: 20 + Caliber: 7.62x51mm NATO (Mk316 Mod 0)<br />Rounds: 20 + Kaliber: 7,62x51mm NATO (Mk316 Mod 0)<br />Pociski: 20 + Calibre: 7.62x51mm NATO (Mk316 Mod 0)<br />Cartouches: 20 + Calibre: 7.62x51mm NATO (Mk316 Mod 0)<br />Balas: 20 Калибр: 7,62x51 мм NATO (Mk316 Mod 0)<br />Патронов: 20 - Kaliber: 7.62x51 mm NATO (Mk316 Mod 0)<br />Patronen: 20 + Kaliber: 7.62x51mm NATO (Mk316 Mod 0)<br />Patronen: 20 7.62mm 10Rnd Mag (Mk319 Mod 0) @@ -873,10 +873,10 @@ 7,62mm Mk319 - Caliber: 7.62x51 mm NATO (Mk319 Mod 0)<br />Rounds: 10 - Kaliber: 7,62x51 mm NATO (Mk319 Mod 0)<br />Pociski: 10 - Calibre: 7.62x51 mm NATO (Mk319 Mod 0)<br />Cartouches: 10 - Calibre: 7.62x51 mm NATO (Mk319 Mod 0)<br />Balas: 10 + Caliber: 7.62x51mm NATO (Mk319 Mod 0)<br />Rounds: 10 + Kaliber: 7,62x51mm NATO (Mk319 Mod 0)<br />Pociski: 10 + Calibre: 7.62x51mm NATO (Mk319 Mod 0)<br />Cartouches: 10 + Calibre: 7.62x51mm NATO (Mk319 Mod 0)<br />Balas: 10 Калибр: 7,62x51 мм NATO (Mk319 Mod 0)<br />Патронов: 10 Kaliber: 7,62x51mm NATO (Mk319 Mod 0)<br />Patronen: 10 @@ -897,10 +897,10 @@ 7,62mm Mk319 - Caliber: 7.62x51 mm NATO (Mk319 Mod 0)<br />Rounds: 20 - Kaliber: 7,62x51 mm NATO (Mk319 Mod 0)<br />Pociski: 20 - Calibre: 7.62x51 mm NATO (Mk319 Mod 0)<br />Cartouches: 20 - Calibre: 7.62x51 mm NATO (Mk319 Mod 0)<br />Balas: 20 + Caliber: 7.62x51mm NATO (Mk319 Mod 0)<br />Rounds: 20 + Kaliber: 7,62x51mm NATO (Mk319 Mod 0)<br />Pociski: 20 + Calibre: 7.62x51mm NATO (Mk319 Mod 0)<br />Cartouches: 20 + Calibre: 7.62x51mm NATO (Mk319 Mod 0)<br />Balas: 20 Калибр: 7,62x51 мм NATO (Mk319 Mod 0)<br />Патронов: 20 Kaliber: 7,62x51mm NATO (Mk319 Mod 0)<br />Patronen: 20 @@ -921,10 +921,10 @@ 7,62mm AP - Caliber: 7.62x51 mm NATO (M993 AP)<br />Rounds: 10 - Kaliber: 7,62x51 mm NATO (M993 AP)<br />Pociski: 10 - Calibre: 7.62x51 mm NATO (M993 AP)<br />Cartouches: 10 - Calibre: 7.62x51 mm NATO (M993 AP)<br />Balas: 10 + Caliber: 7.62x51mm NATO (M993 AP)<br />Rounds: 10 + Kaliber: 7,62x51mm NATO (M993 AP)<br />Pociski: 10 + Calibre: 7.62x51mm NATO (M993 AP)<br />Cartouches: 10 + Calibre: 7.62x51mm NATO (M993 AP)<br />Balas: 10 Калибр: 7,62x51 мм NATO (M993 AP)<br />Патронов: 10 Kaliber: 7,62x51mm NATO (M993 AP)<br />Patronen: 10 @@ -945,10 +945,10 @@ 7,62mm AP - Caliber: 7.62x51 mm NATO (M993 AP)<br />Rounds: 20 - Kaliber: 7,62x51 mm NATO (M993 AP)<br />Pociski: 20 - Calibre: 7.62x51 mm NATO (M993 AP)<br />Cartouches: 20 - Calibre: 7.62x51 mm NATO (M993 AP)<br />Balas: 20 + Caliber: 7.62x51mm NATO (M993 AP)<br />Rounds: 20 + Kaliber: 7,62x51mm NATO (M993 AP)<br />Pociski: 20 + Calibre: 7.62x51mm NATO (M993 AP)<br />Cartouches: 20 + Calibre: 7.62x51mm NATO (M993 AP)<br />Balas: 20 Калибр: 7,62x51 мм NATO (M993 AP)<br />Патронов: 20 Kaliber: 7,62x51mm NATO (M993 AP)<br />Patronen: 20 @@ -969,10 +969,10 @@ 7,62mm (Mk248 Mod 0) - Caliber: 7.62x67 mm NATO (Mk248 Mod 0)<br />Rounds: 20 - Kaliber: 7,62x67 mm NATO (Mk248 Mod 0)<br />Pociski: 20 + Caliber: 7.62x67mm NATO (Mk248 Mod 0)<br />Rounds: 20 + Kaliber: 7,62x67mm NATO (Mk248 Mod 0)<br />Pociski: 20 Calibre: 7.62x67mm NATO (Mk248 Mod 0)<br />Cartouches: 20 - Calibre: 7.62x67 mm NATO (Mk248 Mod 0)<br />Balas: 20 + Calibre: 7.62x67mm NATO (Mk248 Mod 0)<br />Balas: 20 Калибр: 7,62x67 мм NATO (Mk248 Mod 0)<br />Патронов: 20 Kaliber: 7,62x51mm NATO (Mk248 Mod 0)<br />Patronen: 20 @@ -993,10 +993,10 @@ 7,62mm (Mk248 Mod 1) - Caliber: 7.62x67 mm NATO (Mk248 Mod 1)<br />Rounds: 20 - Kaliber: 7,62x67 mm NATO (Mk248 Mod 1)<br />Pociski: 20 + Caliber: 7.62x67mm NATO (Mk248 Mod 1)<br />Rounds: 20 + Kaliber: 7,62x67mm NATO (Mk248 Mod 1)<br />Pociski: 20 Calibre: 7.62x67mm NATO (Mk248 Mod 1)<br />Cartouches: 20 - Calibre: 7.62x67 mm NATO (Mk248 Mod 1)<br />Balas: 20 + Calibre: 7.62x67mm NATO (Mk248 Mod 1)<br />Balas: 20 Калибр: 7,62x67 мм NATO (Mk248 Mod 1)<br />Патронов: 20 Kaliber: 7.62x51mm NATO (Mk248 Mod 1)<br />Patronen: 20 @@ -1017,10 +1017,10 @@ 7,62mm (OTM) - Caliber: 7.62x67 mm NATO (Berger Hybrid OTM)<br />Rounds: 20 - Kaliber: 7,62x67 mm NATO (Berger Hybrid OTM)<br />Pociski: 20 + Caliber: 7.62x67mm NATO (Berger Hybrid OTM)<br />Rounds: 20 + Kaliber: 7,62x67mm NATO (Berger Hybrid OTM)<br />Pociski: 20 Calibre: 7.62x67mm NATO (Berger Hybrid OTM)<br />Cartouches: 20 - Calibre: 7.62x67 mm NATO (Berger Hybrid OTM)<br />Balas: 20 + Calibre: 7.62x67mm NATO (Berger Hybrid OTM)<br />Balas: 20 Калибр: 7,62x67 мм NATO (Berger Hybrid OTM)<br />Патронов: 20 Kaliber: 7.62x67mm NATO (Berger Hybrid OTM)<br />Patronen: 20 @@ -1028,7 +1028,7 @@ 6.5x47mm 30Rnd Mag (HPBT Scenar) 6.5x47mm 30Cps (HPBT Scenar) Cargador de 30 balas de 6.5x47mm (HPBT Scenar) - Magazynek 6,5x47 mm 30rd (HPBT Scenar) + Magazynek 6,5x47mm 30rd (HPBT Scenar) Магазин из 30-ти 6,5x47 мм (HPBT Scenar) 6,5x47mm 30-Schuss-Magazin (HPBT Scenar) @@ -1044,7 +1044,7 @@ Caliber: 6.5x47mm (HPBT Scenar)<br />Rounds: 30<br />Used in: MXM Calibre: 6.5x47mm (HPBT Scenar)<br />Cartouches: 30 Calibre: 6.5x47mm (HPBT Scenar)<br />Balas: 30 - Kaliber: 6,5x47 mm (HPBT Scenar)<br />Pociski: 30 + Kaliber: 6,5x47mm (HPBT Scenar)<br />Pociski: 30 Калибр: 6,5x47 мм (HPBT Scenar)<br />Патронов: 30 Kaliber: 6,5x47mm (HPBT Scenar)<br />Patronen: 30<br />Eingesetzt von: MXM @@ -1075,18 +1075,18 @@ .338 10-Schuss-Magazin (300gr Sierra MatchKing HPBT) - .338 (HPBT) - .338 (HPBT) - .338 (HPBT) - .338 (HPBT) - .338 (HPBT) - .338 (HPBT) + .338 HPBT + .338 HPBT + .338 HPBT + .338 HPBT + .338 HPBT + .338 HPBT Caliber: 8.6x70mm (300gr Sierra MatchKing HPBT)<br />Rounds: 10 Calibre: 8.6x70mm (300gr Sierra MatchKing HPBT)<br />Cartouches: 10 Calibre: 8.6x70mm (300gr Sierra MatchKing HPBT)<br />Balas: 10 - Kaliber: 8,6x70 mm (300gr Sierra MatchKing HPBT)<br />Pociski: 10 + Kaliber: 8,6x70mm (300gr Sierra MatchKing HPBT)<br />Pociski: 10 Калибр: .338 (300 гран Sierra MatchKing HPBT)<br />Патронов: 10 Kaliber: 8,6x70mm (300gr Sierra MatchKing HPBT)<br />Patronen: 10 @@ -1104,13 +1104,13 @@ .338 AP .338 AP .338 бронебойные - .338 (AP) + .338 AP Caliber: 8.6x70mm (API526)<br />Rounds: 10 Calibre: 8.6x70mm (API526)<br />Cartouches: 10 Calibre: 8.6x70mm (API526)<br />Balas: 10 - Kaliber: 8,6x70 mm (API526)<br />Pociski: 10 + Kaliber: 8,6x70mm (API526)<br />Pociski: 10 Калибр: .338 (API526)<br />Патронов: 10 Kaliber: 8,6x70mm (API526)<br />Patronen: 10 @@ -1118,7 +1118,7 @@ 12.7x99mm 5Rnd Mag 12.7x99mm 5Cps Cargador de 5 balas de 12.7x99mm - Magazynek 12,7x99 mm 5rd + Magazynek 12,7x99mm 5rd Магазин из 5-ти 12,7x99 мм 12,7x99mm 5-Schuss-Magazin @@ -1134,7 +1134,7 @@ Caliber: 12.7x99mm<br />Rounds: 5 Calibre: 12.7x99mm<br />Cartouches: 5 Calibre: 12.7x99mm<br />Balas: 5 - Kaliber: 12,7x99 mm<br />Pociski: 5 + Kaliber: 12,7x99mm<br />Pociski: 5 Калибр: 12,7x99 мм<br />Патронов: 5 Kaliber: 12,7x99mm<br />Patronen: 5 @@ -1156,14 +1156,14 @@ Caliber: 12.7x99mm API<br />Rounds: 5 Calibre: 12.7x99mm API<br />Cartouches: 5 Calibre: 12.7x99mm API<br />Balas: 5 - Kaliber: 12,7x99 mm API<br />Pociski: 5 + Kaliber: 12,7x99mm API<br />Pociski: 5 Kaliber:12,7x99mm API<br />Patronen: 5 12.7x99mm 5Rnd Mag (AMAX) 12.7x99mm 5Rnd Mag (AMAX) Cargador de 5 balas de 12.7x99mm (AMAX) - Magazynek 12,7x99 mm 5rd (AMAX) + Magazynek 12,7x99mm 5rd (AMAX) Магазин из 5-ти 12,7x99 мм (A-MAX) 12,7x99mm 5-Schuss-Magazin (AMAX) @@ -1179,7 +1179,7 @@ Caliber: 12.7x99mm (AMAX)<br />Rounds: 5 Calibre: 12.7x99mm (AMAX)<br />Cartouches: 5 Calibre: 12.7x99mm (AMAX)<br />Balas: 5 - Kaliber: 12,7x99 mm (AMAX)<br />Pociski: 5 + Kaliber: 12,7x99mm (AMAX)<br />Pociski: 5 Калибр: 12,7x99 мм (A-MAX)<br />Патронов: 5 Kaliber:12,7x99mm (AMAX)<br />Patronen: 5 From 621e1513a0902f3cadda9e2f9ee834a4b1c86af0 Mon Sep 17 00:00:00 2001 From: bux578 Date: Tue, 28 Apr 2015 20:24:59 +0200 Subject: [PATCH 219/256] ballistic stringtable fixes --- addons/ballistics/stringtable.xml | 106 +++++++++++++++--------------- 1 file changed, 53 insertions(+), 53 deletions(-) diff --git a/addons/ballistics/stringtable.xml b/addons/ballistics/stringtable.xml index 87ebafc831..f885a79691 100644 --- a/addons/ballistics/stringtable.xml +++ b/addons/ballistics/stringtable.xml @@ -5,7 +5,7 @@ 6.5mm 30Rnd Tracer IR-DIM Mag 6,5mm Nyomjelző IR-DIM 30-as Tár - 6,5mm 30-Schuss-Magazin Leuchtspur IR-DIM + 6,5mm 30-Patronen-Magazin Leuchtspur IR-DIM Cargador de 30 balas trazadoras IR-DIM de 6,5mm Ch. 6,5mm 30Cps Traçantes IR-DIM Magazynek 6,5mm 30rd Smugacz IR-DIM @@ -41,7 +41,7 @@ 6.5mm 30Rnd SD Mag 6,5mm Halk 30-as Tár - 6,5mm 30-Schuss-Magazin SD + 6,5mm 30-Patronen-Magazin SD Cargador de 30 balas SD de 6,5mm Ch. 6,5mm 30Cps SD Magazynek 6,5mm 30rd SD @@ -77,7 +77,7 @@ 6.5mm 30Rnd AP Mag 6,5mm Páncéltörő 30-as Tár - 6,5mm 30-Schuss-Magazin AP + 6,5mm 30-Patronen-Magazin AP Cargador de 30 balas AP de 6,5mm Ch. 6,5mm 30Cps AP Magazynek 6,5mm 30rd AP @@ -114,7 +114,7 @@ 6.5mm 30Rnd Tracer IR-DIM Mag 6,5mm IR-DIM Nyomjelző 30-as Tár - 6,5mm 30-Schuss-Magazin Leuchtspur IR-DIM + 6,5mm 30-Patronen-Magazin Leuchtspur IR-DIM Cargador de 30 balas trazadoras IR-DIM de 6,5mm Ch. 6,5mm 30Cps Traçantes IR-DIM Magazynek 6,5mm 30rd Smugacz IR-DIM @@ -150,7 +150,7 @@ 6.5mm 30Rnd SD Mag 6,5mm Halk 30-as Tár - 6,5mm 30-Schuss-Magazin SD + 6,5mm 30-Patronen-Magazin SD Cargador de 30 balas SD de 6,5mm Ch. 6,5mm 30Cps SD Magazynek 6,5mm 30rd SD @@ -186,7 +186,7 @@ 6.5mm 30Rnd AP Mag 6,5mm Páncéltörő 30-as Tár - 6,5mm 30-Schuss-Magazin AP + 6,5mm 30-Patronen-Magazin AP Cargador de 30 balas AP de 6,5mm Ch. 6,5mm 30Cps AP Magazynek 6,5mm 30rd AP @@ -223,7 +223,7 @@ 5.56mm 30rnd Tracer IR-DIM Mag 5,56mm Nyomjelző IR-DIM 30-as Tár - 5,56mm 30-Schuss-Magazin Leuchtspur IR-DIM + 5,56mm 30-Patronen-Magazin Leuchtspur IR-DIM Cargador de 30 balas trazadoras IR-DIM de 5,56mm Ch. 5,56mm 30Cps Traçantes IR-DIM Magazynek 5,56mm 30rd Smugacz IR-DIM @@ -260,7 +260,7 @@ 7.62mm 20rnd Tracer Mag 7,62mm Nyomjelző IR-DIM 20-as Tár - 7,62mm 20-Schuss-Magazin Leuchtspur + 7,62mm 20-Patronen-Magazin Leuchtspur Cargador de 20 balas trazadores de 7,62mm Ch. 7,62mm 20Cps Traçantes Magazynek 7,62mm 20rd Smugacz @@ -296,7 +296,7 @@ 7.62mm 20rnd Tracer IR-DIM Mag 7,62mm Nyomjelző IR-DIM 20-as Tár - 7,62mm 20-Schuss-Magazin Leuchtspur IR-DIM + 7,62mm 20-Patronen-Magazin Leuchtspur IR-DIM Cargador de 20 balas trazadoras IR-DIM de 7,62mm Ch. 7,62mm 20Cps Traçantes IR-DIM Magazynek 7,62mm 20rd Smugacz IR-DIM @@ -332,7 +332,7 @@ 7.62mm 20Rnd SD Mag 7,62mm Halk 20-as Tár - 7,62mm 20-Schuss-Magazin SD + 7,62mm 20-Patronen-Magazin SD Cargador de 20 balas SD de 7,62mm Ch. 7,62mm 20Cps SD Magazynek 7,62mm 20rd SD @@ -368,7 +368,7 @@ .338 NM 130Rnd Tracer Belt - .338 NM 130-Schuss-Gurt Leuchtspur + .338 NM 130-Patronen-Gurt Leuchtspur Taśma .338 NM 130rd Smugacz Bande .338 NM 130Cps Traçante Cinta de 130 balas trazadoras de .338 NM @@ -393,7 +393,7 @@ .338 NM 130Rnd IR-DIM Belt - .338 NM 130-Schuss-Gurt Leuchtspur IR-DIM + .338 NM 130-Patronen-Gurt Leuchtspur IR-DIM Taśma .338 NM 130rd IR-DIM Bande .338 NM 130Cps IR-DIM Cinta de 130 balas IR-DIM de .338 NM @@ -418,7 +418,7 @@ .338 NM 130Rnd AP Belt - .338 NM 130-Schuss-Gurt Hartkern + .338 NM 130-Patronen-Gurt Hartkern Taśma .338 NM 130rd AP Bande .338 NM 130Cps AP Cinta de 130 balas AP de .338 NM @@ -444,7 +444,7 @@ 9.3mm 10Rnd Tracer Mag - 9,3mm 10-Schuss-Magazin Leuchtspur + 9,3mm 10-Patronen-Magazin Leuchtspur Magazynek 9.3mm 10rd Smugacz Chargeur 9.3mm 10Cps Traçante Cargador de 10 balas trazadoras de 9.3mm @@ -469,7 +469,7 @@ 9.3mm 10Rnd Tracer IR-DIM Mag - 9,3mm 10-Schuss-Magazin Leuchtspur IR-DIM + 9,3mm 10-Patronen-Magazin Leuchtspur IR-DIM Magazynek 9,3mm 10rd Smugacz IR-DIM Chargeur 9.3mm 10Cps Traçante IR-DIM Cargador de 10 balas trazadoras IR-DIM de 9.3mm @@ -495,7 +495,7 @@ 9.3mm 150Rnd Tracer Belt - 9,3mm 150-Schuss-Gurt Leuchtspur + 9,3mm 150-Patronen-Gurt Leuchtspur Taśma 9,3mm 150rd Smugacz Bande 9.3mm 150Cps Traçante Cinta de 150 balas trazadoras de 9.3mm @@ -520,7 +520,7 @@ 9.3mm 150Rnd Tracer IR-DIM Belt - 9,3mm 150-Schuss-Gurt Leuchtspur IR-DIM + 9,3mm 150-Patronen-Gurt Leuchtspur IR-DIM Taśma 9,3mm 150rd Smugacz IR-DIM Bande 9.3mm 150Cps Traçante IR-DIM Cinta de 150 balas trazadoras IR-DIM de 9.3mm @@ -545,7 +545,7 @@ 9.3mm 150Rnd AP Belt - 9,3mm 150-Schuss-Gurt Hartkern + 9,3mm 150-Patronen-Gurt Hartkern Taśma 9,3mm 150rd AP Bande 9.3mm 150Cps AP Cinta de 150 balas AP de 9.3mm @@ -574,7 +574,7 @@ Chargeur 9x19mm 16Cps Cargador de 16 balas de 9x19mm Магазин из 16-ти 9х19 мм - 9x19mm 20-Schuss-Magazin + 9x19mm 20-Patronen-Magazin 9x19mm @@ -590,7 +590,7 @@ 9x19mm 30Cps Cargador de 16 balas de 9x19mm Магазин из 16-ти 9х19 мм - 9x19mm 30-Schuss-Magazin + 9x19mm 30-Patronen-Magazin 9x19mm 30Rnd Mag @@ -598,7 +598,7 @@ 9x19mm 30Cps Cargador de 30 balas de 9x19mm Магазин из 30-ти 9х19 мм - 9x19mm 30-Schuss-Magazin + 9x19mm 30-Patronen-Magazin 9x19mm @@ -614,7 +614,7 @@ 9x19mm 30Cps Cargador de 30 balas de 9x19mm Магазин из 30-ти 9х19 мм - 9x19mm 30-Schuss-Magazin + 9x19mm 30-Patronen-Magazin 7.62x54mm 10Rnd Tracer IR-DIM Mag @@ -622,7 +622,7 @@ Chargeur 7.62x54mm 10Rnd Traçante IR-DIM Cargador de 10 balas trazadoras IR-DIM de 7.62x54mm Магазин из 10-ти 7,62 мм ИК-трассирующих - 7,62x54mm 10-Schuss-Magazin IR-DIM Leuchtspur + 7,62x54mm 10-Patronen-Magazin IR-DIM Leuchtspur 7.62mm IR-DIM @@ -638,7 +638,7 @@ Chargeur 7.62x54mm 10Cps Traçante IR-DIM Cargador de 10 balas trazadoras IR-DIM de 7.62x54mm Магазин из 10-ти 7,62 мм ИК-трассирующих - 7,62x54mm 10-Schuss-Magazin IR-DIM Leuchtspur + 7,62x54mm 10-Patronen-Magazin IR-DIM Leuchtspur 6.5mm 100Rnd Tracer IR-DIM Mag @@ -646,7 +646,7 @@ Chargeur 6.5mm 100Rnd Traçante IR-DIM Cargador de 100 balas trazadoras IR-DIM de 6.5mm Магазин из 100 6,5 мм ИК-трассирующих - 6,5mm 100-Schuss-Magazin IR-DIM Leuchtspur + 6,5mm 100-Patronen-Magazin IR-DIM Leuchtspur 6.5mm IR-DIM @@ -662,7 +662,7 @@ Chargeur 6.5mm 100Rnd Traçante IR-DIM Cargador de 100 balas trazadoras IR-DIM de 6.5mm Магазин из 100 6,5 мм ИК-трассирующих - 6,5mm 100-Schuss-Magazin IR-DIM Leuchtspur<br />Patronen: 100<br />Eingesetzt von: MXLSW + 6,5mm 100-Patronen-Magazin IR-DIM Leuchtspur<br />Patronen: 100<br />Eingesetzt von: MXLSW 6.5mm 200Rnd Tracer IR-DIM Belt @@ -670,7 +670,7 @@ Bande 6.5mm 200Rnd Traçante IR-DIM Cinta de 200 balas trazadoras IR-DIM de 6.5mm Магазин из 200-т 6,5 мм ИК-трассирующих - 6,5mm 200-Schuss-Gurt IR-DIM Leuchtspur + 6,5mm 200-Patronen-Gurt IR-DIM Leuchtspur 6.5mm IR-DIM @@ -686,7 +686,7 @@ Bande 6.5mm 200Cps Traçante IR-DIM Cinta de 200 balas trazadoras IR-DIM de 6.5mm Магазин из 200-т 6,5 мм ИК-трассирующих - 6,5mm 200-Schuss-Gurt IR-DIM Leuchtspur<br />Patronen: 200<br />Eingesetzt von: Stoner 99 LMG + 6,5mm 200-Patronen-Gurt IR-DIM Leuchtspur<br />Patronen: 200<br />Eingesetzt von: Stoner 99 LMG 5.56mm 30Rnd Mag (Mk262) @@ -694,7 +694,7 @@ 5.56mm 30Cps (Mk262) Cargador de 30 balas de 5.56mm (Mk262) Магазин из 30-ти 5.56 мм Mk262 - 5,56mm 30-Schuss-Magazin (Mk262) + 5,56mm 30-Patronen-Magazin (Mk262) 5.56mm Mk262 @@ -718,7 +718,7 @@ 5.56mm 30Cps (Mk318) Cargador de 30 balas de 5.56mm (Mk318) Магазин из 30-ти 5.56 мм (Mk318) - 5,56mm 30-Schuss-Magazin (Mk318) + 5,56mm 30-Patronen-Magazin (Mk318) 5.56mm Mk318 @@ -742,7 +742,7 @@ 5.56mm 30Cps (M995 AP) Cargador de 30 balas de 5.56mm (M995 AP) Магазин из 30-ти 5.56 мм (M995 AP) - 5,56mm 30-Schuss-Magazin (M995AP) + 5,56mm 30-Patronen-Magazin (M995AP) 5.56mm AP @@ -766,7 +766,7 @@ 7.62mm 10Cps (M118LR) Cargador de 10 balas de 7.62mm (M118LR) Магазин из 10-ти 7,62 мм (M118LR) - 7,62mm 10-Schuss-Magazin (M118LR) + 7,62mm 10-Patronen-Magazin (M118LR) 7.62mm M118LR @@ -790,7 +790,7 @@ 7.62mm 20Cps (M118LR) Cargador de 20 balas de 7.62mm (M118LR) Магазин из 20-ти 7,62 мм (M118LR) - 7,62mm 20-Schuss-Magazin (M118LR) + 7,62mm 20-Patronen-Magazin (M118LR) 7.62mm M118LR @@ -814,7 +814,7 @@ 7.62mm 10Cps (Mk316 Mod 0) Cargador de 10 balas de 7.62mm (Mk316 Mod 0) Магазин из 10-ти 7,62 мм (Mk316 Mod 0) - 7,62mm 10-Schuss-Magazin (Mk316 Mod 0) + 7,62mm 10-Patronen-Magazin (Mk316 Mod 0) 7.62mm Mk316 @@ -838,7 +838,7 @@ 7.62mm 20Cps (Mk316 Mod 0) Cargador de 20 balas de 7.62mm (Mk316 Mod 0) Магазин из 20-ти 7,62 мм (Mk316 Mod 0) - 7,62mm 20-Schuss-Magazin (Mk316 Mod 0) + 7,62mm 20-Patronen-Magazin (Mk316 Mod 0) 7.62mm Mk316 @@ -862,7 +862,7 @@ 7.62mm 10Cps (Mk319 Mod 0) Cargador de 10 balas de 7.62mm (Mk319 Mod 0) Магазин из 10-ти 7,62 мм (Mk319 Mod 0) - 7,62mm 10-Schuss-Magazin (Mk319 Mod 0) + 7,62mm 10-Patronen-Magazin (Mk319 Mod 0) 7.62mm Mk319 @@ -886,7 +886,7 @@ 7.62mm 20Cps (Mk319 Mod 0) Cargador de 20 balas de 7.62mm (Mk319 Mod 0) Магазин из 20-ти 7,62 мм (Mk319 Mod 0) - 7,62mm 20-Schuss-Magazin (Mk319 Mod 0) + 7,62mm 20-Patronen-Magazin (Mk319 Mod 0) 7.62mm Mk319 @@ -910,7 +910,7 @@ 7.62mm 10Cps (M993 AP) Cargador de 10 balas de 7.62mm (M993 AP) Магазин из 10-ти 7,62 мм (M993 AP) - 7,62mm 10-Schuss-Magazin (M993 AP) + 7,62mm 10-Patronen-Magazin (M993 AP) 7.62mm AP @@ -934,7 +934,7 @@ 7.62mm 20Cps (M993 AP) Cargador de 20 balas de 7.62mm (M993 AP) Магазин из 20-ти 7,62 мм (M993 AP) - 7,62mm 20-Schuss-Magazin (M993 AP) + 7,62mm 20-Patronen-Magazin (M993 AP) 7.62mm AP @@ -958,7 +958,7 @@ 7.62mm 20Cps (Mk248 Mod 0) Cargador de 20 balas de 7.62mm (Mk248 Mod 0) Магазин из 20-ти 7,62 мм (Mk248 Mod 0) - 7,62mm 20-Schuss-Magazin (Mk248 Mod 0) + 7,62mm 20-Patronen-Magazin (Mk248 Mod 0) 7.62mm (Mk248 Mod 0) @@ -982,7 +982,7 @@ 7.62mm 20Cps (Mk248 Mod 1) Cargador de 20 balas de 7.62mm (Mk248 Mod 1) Магазин из 20-ти 7,62 мм (Mk248 Mod 1) - 7,62mm 20-Schuss-Magazin (Mk248 Mod 1) + 7,62mm 20-Patronen-Magazin (Mk248 Mod 1) 7.62mm (Mk248 Mod 1) @@ -1006,7 +1006,7 @@ 7.62 20Cps (Berger Hybrid OTM) Cargador de 20 balas de 7.62mm (Berger Hybrid OTM) Магазин из 20-ти 7,62 мм (Berger Hybrid OTM) - 7,62mm 20-Schuss-Magazin (Berger Hybrid OTM) + 7,62mm 20-Patronen-Magazin (Berger Hybrid OTM) 7.62mm (OTM) @@ -1030,7 +1030,7 @@ Cargador de 30 balas de 6.5x47mm (HPBT Scenar) Magazynek 6,5x47mm 30rd (HPBT Scenar) Магазин из 30-ти 6,5x47 мм (HPBT Scenar) - 6,5x47mm 30-Schuss-Magazin (HPBT Scenar) + 6,5x47mm 30-Patronen-Magazin (HPBT Scenar) 6.5mm Lapua @@ -1051,7 +1051,7 @@ 6.5mm Creedmor 30Rnd Mag Magazynek 6,5mm Creedmor 30rd - 6,5mm Creedmor 30-Schuss-Magazin + 6,5mm Creedmor 30-Patronen-Magazin 6.5mm CM @@ -1062,8 +1062,8 @@ 6,5mm CM - Caliber: 6.5mm Creedmor<br />Rounds: 30<br />Used in: MXM - Kaliber: 6,5mm Creedmor<br />Pociski: 30<br />Używany w: MXM + Caliber: 6.5x47mm Creedmor<br />Rounds: 30<br />Used in: MXM + Kaliber: 6,5x47mm Creedmor<br />Pociski: 30<br />Używany w: MXM Kaliber: 6,5x47mm Creedmor<br />Patronen: 30<br />Eingesetzt von: MXM @@ -1072,7 +1072,7 @@ Cargador de 10 balas de 8.6x70mm (300gr Sierra MatchKing HPBT) Magazynek .338 10rd (300gr Sierra MatchKing HPBT) Магазин из 10-ти .338 (300 гран Sierra MatchKing HPBT) - .338 10-Schuss-Magazin (300gr Sierra MatchKing HPBT) + .338 10-Patronen-Magazin (300gr Sierra MatchKing HPBT) .338 HPBT @@ -1087,7 +1087,7 @@ Calibre: 8.6x70mm (300gr Sierra MatchKing HPBT)<br />Cartouches: 10 Calibre: 8.6x70mm (300gr Sierra MatchKing HPBT)<br />Balas: 10 Kaliber: 8,6x70mm (300gr Sierra MatchKing HPBT)<br />Pociski: 10 - Калибр: .338 (300 гран Sierra MatchKing HPBT)<br />Патронов: 10 + Калибр: 8,6x70mm (300 гран Sierra MatchKing HPBT)<br />Патронов: 10 Kaliber: 8,6x70mm (300gr Sierra MatchKing HPBT)<br />Patronen: 10 @@ -1096,7 +1096,7 @@ Cargador de 10 balas de .338 (API526) Magazynek .338 10rd (API526) Магазин из 10-ти .338 (API526) - .338 10-Schuss-Magazin (API526) + .338 10-Patronen-Magazin (API526) .338 AP @@ -1111,7 +1111,7 @@ Calibre: 8.6x70mm (API526)<br />Cartouches: 10 Calibre: 8.6x70mm (API526)<br />Balas: 10 Kaliber: 8,6x70mm (API526)<br />Pociski: 10 - Калибр: .338 (API526)<br />Патронов: 10 + Калибр: 8,6x70mm (API526)<br />Патронов: 10 Kaliber: 8,6x70mm (API526)<br />Patronen: 10 @@ -1120,7 +1120,7 @@ Cargador de 5 balas de 12.7x99mm Magazynek 12,7x99mm 5rd Магазин из 5-ти 12,7x99 мм - 12,7x99mm 5-Schuss-Magazin + 12,7x99mm 5-Patronen-Magazin 12.7mm @@ -1143,7 +1143,7 @@ 12.7x99mm API 5Cps Cargador de 5 balas de 12.7x99mm API Magazynek 12,7x99mm API 5rd - 12,7x99mm 5-Schuss-Magazin (API) + 12,7x99mm 5-Patronen-Magazin (API) 12.7mm API @@ -1165,7 +1165,7 @@ Cargador de 5 balas de 12.7x99mm (AMAX) Magazynek 12,7x99mm 5rd (AMAX) Магазин из 5-ти 12,7x99 мм (A-MAX) - 12,7x99mm 5-Schuss-Magazin (AMAX) + 12,7x99mm 5-Patronen-Magazin (AMAX) 12.7mm From 270f9f3662478ce55ab33b03fabae57a3a18a905 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Tue, 28 Apr 2015 13:26:52 -0500 Subject: [PATCH 220/256] Fix init order problem --- addons/vehiclelock/config.cpp | 2 +- .../vehiclelock/functions/fnc_handleVehicleInitPost.sqf | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/addons/vehiclelock/config.cpp b/addons/vehiclelock/config.cpp index 608a892b45..76d5817d8d 100644 --- a/addons/vehiclelock/config.cpp +++ b/addons/vehiclelock/config.cpp @@ -7,7 +7,7 @@ class CfgPatches { requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_interaction"}; author[] = {"PabstMirror"}; - authorUrl = "https://github.com/PabstMirror/"; + authorUrl = "https://github.com/acemod/ACE3"; VERSION_CONFIG; }; }; diff --git a/addons/vehiclelock/functions/fnc_handleVehicleInitPost.sqf b/addons/vehiclelock/functions/fnc_handleVehicleInitPost.sqf index df875b1859..5a2bc3f7bd 100644 --- a/addons/vehiclelock/functions/fnc_handleVehicleInitPost.sqf +++ b/addons/vehiclelock/functions/fnc_handleVehicleInitPost.sqf @@ -1,6 +1,7 @@ /* * Author: PabstMirror - * Function for sync module. Assigns keys for all synced vehicles to any players that are synced. + * For every lockable vehicle, sets the starting lock state to a sane value. + * Only run if the InitModule is placed. * * Arguments: * 0: Vehicle @@ -18,9 +19,10 @@ PARAMS_1(_vehicle); if (!isServer) exitWith {}; -if (GVAR(VehicleStartingLockState) == -1) exitWith {}; [{ + //If the module wasn't placed, just exit (needs to be in wait because objectInitEH is before moduleInit) + if (GVAR(VehicleStartingLockState) == -1) exitWith {}; private ["_lock"]; PARAMS_1(_vehicle); if ((_vehicle isKindOf "Car") || {_vehicle isKindOf "Tank"} || {_vehicle isKindOf "Helicopter"}) then { @@ -36,4 +38,4 @@ if (GVAR(VehicleStartingLockState) == -1) exitWith {}; }; }; //Delay call until mission start (so everyone has the eventHandler's installed) -}, [_vehicle], 0.25, 0.25] call EFUNC(common,waitAndExecute); \ No newline at end of file +}, [_vehicle], 0.25, 0.25] call EFUNC(common,waitAndExecute); From 9e0932eb5692a1a68f635dcf078cb6f12c985011 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Tue, 28 Apr 2015 13:31:47 -0500 Subject: [PATCH 221/256] Opps --- addons/vehiclelock/CfgEventHandlers.hpp | 6 ------ 1 file changed, 6 deletions(-) diff --git a/addons/vehiclelock/CfgEventHandlers.hpp b/addons/vehiclelock/CfgEventHandlers.hpp index 85db25d4a0..6fbbd5c243 100644 --- a/addons/vehiclelock/CfgEventHandlers.hpp +++ b/addons/vehiclelock/CfgEventHandlers.hpp @@ -16,11 +16,6 @@ class Extended_InventoryOpened_EventHandlers { }; }; class Extended_InitPost_EventHandlers { - class CAManBase { - class ADDON { - serverInit = QUOTE(_this call FUNC(handleUnitInitPost)); - }; - }; class Car { class ADDON { serverInit = QUOTE(_this call FUNC(handleVehicleInitPost)); @@ -37,4 +32,3 @@ class Extended_InitPost_EventHandlers { }; }; }; - From 95d83554da56d1018ad080ff33f3c71fd2a276c7 Mon Sep 17 00:00:00 2001 From: Glowbal Date: Tue, 28 Apr 2015 20:32:02 +0200 Subject: [PATCH 222/256] Added local treatment through remoteExec for basic --- addons/medical/XEH_preInit.sqf | 2 ++ .../functions/fnc_treatmentBasic_bloodbag.sqf | 7 ++--- .../fnc_treatmentBasic_bloodbagLocal.sqf | 21 +++++++++++++++ .../functions/fnc_treatmentBasic_morphine.sqf | 11 ++------ .../fnc_treatmentBasic_morphineLocal.sqf | 27 +++++++++++++++++++ 5 files changed, 54 insertions(+), 14 deletions(-) create mode 100644 addons/medical/functions/fnc_treatmentBasic_bloodbagLocal.sqf create mode 100644 addons/medical/functions/fnc_treatmentBasic_morphineLocal.sqf diff --git a/addons/medical/XEH_preInit.sqf b/addons/medical/XEH_preInit.sqf index 051f7da266..4f4ff5bc30 100644 --- a/addons/medical/XEH_preInit.sqf +++ b/addons/medical/XEH_preInit.sqf @@ -80,8 +80,10 @@ PREP(treatmentAdvanced_medication); PREP(treatmentAdvanced_medicationLocal); PREP(treatmentBasic_bandage); PREP(treatmentBasic_bloodbag); +PREP(treatmentBasic_bloodbagLocal); PREP(treatmentBasic_epipen); PREP(treatmentBasic_morphine); +PREP(treatmentBasic_morphineLocal); PREP(treatmentIV); PREP(treatmentIVLocal); PREP(treatmentTourniquet); diff --git a/addons/medical/functions/fnc_treatmentBasic_bloodbag.sqf b/addons/medical/functions/fnc_treatmentBasic_bloodbag.sqf index 57563ad8fc..9d2c12280d 100644 --- a/addons/medical/functions/fnc_treatmentBasic_bloodbag.sqf +++ b/addons/medical/functions/fnc_treatmentBasic_bloodbag.sqf @@ -15,12 +15,9 @@ */ #include "script_component.hpp" -#define BLOODBAGHEAL 70 -private ["_caller", "_target","_className","_blood"]; +private ["_caller", "_target"]; _caller = _this select 0; _target = _this select 1; -_className = _this select 3; -_blood = ((_target getVariable [QGVAR(bloodVolume), 100]) + BLOODBAGHEAL) min 100; -_target setVariable [QGVAR(bloodVolume), _blood, true]; +[[_target], QUOTE(DFUNC(treatmentBasic_bloodbagLocal)), _target] call EFUNC(common,execRemoteFnc); /* TODO Replace by event system */ diff --git a/addons/medical/functions/fnc_treatmentBasic_bloodbagLocal.sqf b/addons/medical/functions/fnc_treatmentBasic_bloodbagLocal.sqf new file mode 100644 index 0000000000..9bbe04b35f --- /dev/null +++ b/addons/medical/functions/fnc_treatmentBasic_bloodbagLocal.sqf @@ -0,0 +1,21 @@ +/* + * Author: KoffeinFlummi + * Local callback when the bloodbag treatment is complete + * + * Arguments: + * 0: The patient + * + * Return Value: + * nil + * + * Public: No + */ + +#include "script_component.hpp" +#define BLOODBAGHEAL 70 + +private ["_target","_blood"]; +_target = _this select 0; + +_blood = ((_target getVariable [QGVAR(bloodVolume), 100]) + BLOODBAGHEAL) min 100; +_target setVariable [QGVAR(bloodVolume), _blood, true]; diff --git a/addons/medical/functions/fnc_treatmentBasic_morphine.sqf b/addons/medical/functions/fnc_treatmentBasic_morphine.sqf index d8d793d0bc..048b314781 100644 --- a/addons/medical/functions/fnc_treatmentBasic_morphine.sqf +++ b/addons/medical/functions/fnc_treatmentBasic_morphine.sqf @@ -17,15 +17,8 @@ #include "script_component.hpp" #define MORPHINEHEAL 0.4 -private ["_caller", "_target","_className","_blood","_morphine","_pain"]; +private ["_caller", "_target"]; _caller = _this select 0; _target = _this select 1; -_className = _this select 3; -// reduce pain, pain sensitivity -_morphine = ((_target getVariable [QGVAR(morphine), 0]) + MORPHINEHEAL) min 1; -_target setVariable [QGVAR(morphine), _morphine, true]; -_pain = ((_target getVariable [QGVAR(pain), 0]) - MORPHINEHEAL) max 0; -_target setVariable [QGVAR(pain), _pain, true]; - -// @todo overdose +[[_target], QUOTE(DFUNC(treatmentBasic_morphineLocal)), _target] call EFUNC(common,execRemoteFnc); /* TODO Replace by event system */ diff --git a/addons/medical/functions/fnc_treatmentBasic_morphineLocal.sqf b/addons/medical/functions/fnc_treatmentBasic_morphineLocal.sqf new file mode 100644 index 0000000000..9dddf743e2 --- /dev/null +++ b/addons/medical/functions/fnc_treatmentBasic_morphineLocal.sqf @@ -0,0 +1,27 @@ +/* + * Author: KoffeinFlummi + * Local callback when the morphine treatment is complete + * + * Arguments: + * 0: The medic + * 1: The patient + * + * Return Value: + * nil + * + * Public: No + */ + +#include "script_component.hpp" +#define MORPHINEHEAL 0.4 + +private ["_target", "_morphine", "_pain"]; +_target = _this select 0; + +// reduce pain, pain sensitivity +_morphine = ((_target getVariable [QGVAR(morphine), 0]) + MORPHINEHEAL) min 1; +_target setVariable [QGVAR(morphine), _morphine, true]; +_pain = ((_target getVariable [QGVAR(pain), 0]) - MORPHINEHEAL) max 0; +_target setVariable [QGVAR(pain), _pain, true]; + +// @todo overdose From ebbb88deffa078b057a1e62413f4a1c7c8053e81 Mon Sep 17 00:00:00 2001 From: Glowbal Date: Tue, 28 Apr 2015 20:32:29 +0200 Subject: [PATCH 223/256] Join in progress players will now be initialized --- addons/medical/XEH_postInit.sqf | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/addons/medical/XEH_postInit.sqf b/addons/medical/XEH_postInit.sqf index 526990709b..1819178432 100644 --- a/addons/medical/XEH_postInit.sqf +++ b/addons/medical/XEH_postInit.sqf @@ -266,6 +266,10 @@ if (USE_WOUND_EVENT_SYNC) then { [ACE_player] call FUNC(itemCheck); }] call EFUNC(common,addEventHandler); - // Networked litter [QGVAR(createLitter), FUNC(handleCreateLitter), GVAR(litterCleanUpDelay)] call EFUNC(common,addSyncedEventHandler); + +["PlayerJip", { + diag_log format["[ACE] JIP Medical init for player"]; + [player] call FUNC(init); +}] call FUNC(addEventHandler); From c06caa72092b41185646e83964e3523536b03d54 Mon Sep 17 00:00:00 2001 From: Glowbal Date: Tue, 28 Apr 2015 20:33:01 +0200 Subject: [PATCH 224/256] Only add JIP event for player clients --- addons/medical/XEH_postInit.sqf | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/addons/medical/XEH_postInit.sqf b/addons/medical/XEH_postInit.sqf index 1819178432..a3eb468442 100644 --- a/addons/medical/XEH_postInit.sqf +++ b/addons/medical/XEH_postInit.sqf @@ -269,7 +269,9 @@ if (USE_WOUND_EVENT_SYNC) then { // Networked litter [QGVAR(createLitter), FUNC(handleCreateLitter), GVAR(litterCleanUpDelay)] call EFUNC(common,addSyncedEventHandler); -["PlayerJip", { - diag_log format["[ACE] JIP Medical init for player"]; - [player] call FUNC(init); -}] call FUNC(addEventHandler); +if (hasInterface) then { + ["PlayerJip", { + diag_log format["[ACE] JIP Medical init for player"]; + [player] call FUNC(init); + }] call FUNC(addEventHandler); +}; From f606c248540bc03f12d28bb6306ef440fc13e625 Mon Sep 17 00:00:00 2001 From: Glowbal Date: Tue, 28 Apr 2015 20:47:11 +0200 Subject: [PATCH 225/256] fixes #901 --- .../medical/functions/fnc_actionDiagnose.sqf | 8 ++++++-- .../fnc_displayPatientInformation.sqf | 2 +- .../medical/functions/fnc_handleUnitVitals.sqf | 18 ++++++++++++------ addons/medical/functions/fnc_init.sqf | 2 +- .../fnc_treatmentAdvanced_fullHealLocal.sqf | 2 +- addons/medical/stringtable.xml | 3 +++ 6 files changed, 24 insertions(+), 11 deletions(-) diff --git a/addons/medical/functions/fnc_actionDiagnose.sqf b/addons/medical/functions/fnc_actionDiagnose.sqf index 234cc6d303..886fa4752b 100644 --- a/addons/medical/functions/fnc_actionDiagnose.sqf +++ b/addons/medical/functions/fnc_actionDiagnose.sqf @@ -26,8 +26,12 @@ if (alive _target) then { } else { _genericMessages pushback "STR_ACE_MEDICAL_diagnoseDead"; }; -if (_target getvariable[QGVAR(hasLostBlood), false]) then { - _genericMessages pushback "STR_ACE_MEDICAL_lostBlood"; +if (_target getvariable[QGVAR(hasLostBlood), 0] > 0) then { + if (_target getvariable[QGVAR(hasLostBlood), 0] > 1) then { + _genericMessages pushback "STR_ACE_MEDICAL_lostBloodALot"; + } else { + _genericMessages pushback "STR_ACE_MEDICAL_lostBlood"; + }; } else { _genericMessages pushback "STR_ACE_MEDICAL_noBloodloss"; }; diff --git a/addons/medical/functions/fnc_displayPatientInformation.sqf b/addons/medical/functions/fnc_displayPatientInformation.sqf index 1fc1051efa..a62bfcacbc 100644 --- a/addons/medical/functions/fnc_displayPatientInformation.sqf +++ b/addons/medical/functions/fnc_displayPatientInformation.sqf @@ -57,7 +57,7 @@ if (_show) then { if (_target getvariable[QGVAR(isBleeding), false]) then { _genericMessages pushback [localize "STR_ACE_MEDICAL_STATUS_BLEEDING", [1, 0.1, 0.1, 1]]; }; - if (_target getvariable[QGVAR(hasLostBlood), false]) then { + if (_target getvariable[QGVAR(hasLostBlood), 0] > 1) then { _genericMessages pushback [localize "STR_ACE_MEDICAL_STATUS_LOST_BLOOD", [1, 0.1, 0.1, 1]]; }; diff --git a/addons/medical/functions/fnc_handleUnitVitals.sqf b/addons/medical/functions/fnc_handleUnitVitals.sqf index b806d1358f..e04b35955e 100644 --- a/addons/medical/functions/fnc_handleUnitVitals.sqf +++ b/addons/medical/functions/fnc_handleUnitVitals.sqf @@ -33,13 +33,19 @@ _bloodVolume = _bloodVolume max 0; _unit setvariable [QGVAR(bloodVolume), _bloodVolume, _syncValues]; // Set variables for synchronizing information across the net -if (_bloodVolume < 90) then { - if !(_unit getvariable [QGVAR(hasLostBlood), false]) then { - _unit setvariable [QGVAR(hasLostBlood), true, true]; - }; +if (_bloodVolume < 100) then { + if ((_bloodVolume < 90 && (GVAR(level) == 2)) || _bloodVolume <= 30) then { + if (_unit getvariable [QGVAR(hasLostBlood), 0] != 2) then { + _unit setvariable [QGVAR(hasLostBlood), 2, true]; + }; + } else { + if (_unit getvariable [QGVAR(hasLostBlood), 0] != 1) then { + _unit setvariable [QGVAR(hasLostBlood), 1, true]; + }; + } } else { - if (_unit getvariable [QGVAR(hasLostBlood),false]) then { - _unit setvariable [QGVAR(hasLostBlood), false, true]; + if (_unit getvariable [QGVAR(hasLostBlood), 0] != 0) then { + _unit setvariable [QGVAR(hasLostBlood), 0, true]; }; }; diff --git a/addons/medical/functions/fnc_init.sqf b/addons/medical/functions/fnc_init.sqf index d01a63b3a5..80e8d9ba19 100644 --- a/addons/medical/functions/fnc_init.sqf +++ b/addons/medical/functions/fnc_init.sqf @@ -60,7 +60,7 @@ _unit setvariable [QGVAR(airwayCollapsed), false]; _unit setvariable [QGVAR(addedToUnitLoop), false, true]; _unit setvariable [QGVAR(inCardiacArrest), false, true]; _unit setVariable ["ACE_isUnconscious", false, true]; -_unit setvariable [QGVAR(hasLostBlood), false, true]; +_unit setvariable [QGVAR(hasLostBlood), 0, true]; _unit setvariable [QGVAR(isBleeding), false, true]; _unit setvariable [QGVAR(hasPain), false, true]; _unit setvariable [QGVAR(amountOfReviveLives), GVAR(amountOfReviveLives), true]; diff --git a/addons/medical/functions/fnc_treatmentAdvanced_fullHealLocal.sqf b/addons/medical/functions/fnc_treatmentAdvanced_fullHealLocal.sqf index 77f6d7f44c..e385c5f7c0 100644 --- a/addons/medical/functions/fnc_treatmentAdvanced_fullHealLocal.sqf +++ b/addons/medical/functions/fnc_treatmentAdvanced_fullHealLocal.sqf @@ -55,7 +55,7 @@ if (alive _target) exitwith { _target setvariable [QGVAR(inCardiacArrest), false, true]; _target setvariable [QGVAR(inReviveState), false, true]; _target setVariable ["ACE_isUnconscious", false, true]; - _target setvariable [QGVAR(hasLostBlood), false, true]; + _target setvariable [QGVAR(hasLostBlood), 0, true]; _target setvariable [QGVAR(isBleeding), false, true]; _target setvariable [QGVAR(hasPain), false, true]; diff --git a/addons/medical/stringtable.xml b/addons/medical/stringtable.xml index 52baf9bbe3..7d3c2a6db4 100644 --- a/addons/medical/stringtable.xml +++ b/addons/medical/stringtable.xml @@ -1497,6 +1497,9 @@ Il à perdu du sang Stracił trochę krwi + + He's lost a lot of blood + He hasn't lost blood Нет кровопотери From 1512e4c367ceb1f214d8d7473fd0d291522b81ef Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Tue, 28 Apr 2015 14:09:26 -0500 Subject: [PATCH 226/256] isClientSettable spelling --- addons/interact_menu/config.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/interact_menu/config.cpp b/addons/interact_menu/config.cpp index ad58d8433e..36172d734f 100644 --- a/addons/interact_menu/config.cpp +++ b/addons/interact_menu/config.cpp @@ -28,7 +28,7 @@ class ACE_Settings { class GVAR(cursorKeepCentered) { value = 0; typeName = "BOOL"; - isClientSetable = 1; + isClientSettable = 1; displayName = "$STR_ACE_Interact_cursorKeepCentered"; description = "$STR_ACE_Interact_cursorKeepCenteredDescription"; }; From a854b90b00b5854e0604d7cb639cb572acb76bea Mon Sep 17 00:00:00 2001 From: Glowbal Date: Tue, 28 Apr 2015 22:19:30 +0200 Subject: [PATCH 227/256] Increased level at which a lot of blood message gets shown in basic medical --- addons/medical/functions/fnc_handleUnitVitals.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/medical/functions/fnc_handleUnitVitals.sqf b/addons/medical/functions/fnc_handleUnitVitals.sqf index e04b35955e..0e01ef654c 100644 --- a/addons/medical/functions/fnc_handleUnitVitals.sqf +++ b/addons/medical/functions/fnc_handleUnitVitals.sqf @@ -34,7 +34,7 @@ _unit setvariable [QGVAR(bloodVolume), _bloodVolume, _syncValues]; // Set variables for synchronizing information across the net if (_bloodVolume < 100) then { - if ((_bloodVolume < 90 && (GVAR(level) == 2)) || _bloodVolume <= 30) then { + if ((_bloodVolume < 90 && (GVAR(level) == 2)) || _bloodVolume <= 45) then { if (_unit getvariable [QGVAR(hasLostBlood), 0] != 2) then { _unit setvariable [QGVAR(hasLostBlood), 2, true]; }; From 414a50fb9b9376dc671706dbfe58190c62bf4ca4 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Tue, 28 Apr 2015 15:40:36 -0500 Subject: [PATCH 228/256] Fix Dragging StanceChange Anim --- addons/dragging/CfgMovesBasic.hpp | 8 ++++++++ addons/dragging/config.cpp | 1 + 2 files changed, 9 insertions(+) create mode 100644 addons/dragging/CfgMovesBasic.hpp diff --git a/addons/dragging/CfgMovesBasic.hpp b/addons/dragging/CfgMovesBasic.hpp new file mode 100644 index 0000000000..de15271416 --- /dev/null +++ b/addons/dragging/CfgMovesBasic.hpp @@ -0,0 +1,8 @@ +class CfgMovesBasic { + class Actions { + class MoveWithInjuredManDragger; + class MoveWithInjuredManDraggerRfl: MoveWithInjuredManDragger { + Up = "amovpercmstpsraswrfldnon"; + }; + }; +}; diff --git a/addons/dragging/config.cpp b/addons/dragging/config.cpp index c58aab607e..cc843d4a68 100644 --- a/addons/dragging/config.cpp +++ b/addons/dragging/config.cpp @@ -14,3 +14,4 @@ class CfgPatches { #include "CfgEventHandlers.hpp" #include "CfgVehicles.hpp" +#include "CfgMovesBasic.hpp" From a80e11d025913233efc852399b9e7d953a873510 Mon Sep 17 00:00:00 2001 From: ulteq Date: Wed, 29 Apr 2015 01:33:26 +0200 Subject: [PATCH 229/256] Fixed some 7.62 tracer magazines: *Made use of the ACE_20Rnd_762x51_Mag_Tracer magazine *Fixed ACE_10Rnd_762x54_Tracer_mag (inheritance, stringtable, tracersEvery) --- addons/ballistics/CfgMagazines.hpp | 3 ++- addons/ballistics/CfgVehicles.hpp | 4 ++++ addons/ballistics/CfgWeapons.hpp | 3 +++ addons/ballistics/stringtable.xml | 32 +++++++++++++++--------------- 4 files changed, 25 insertions(+), 17 deletions(-) diff --git a/addons/ballistics/CfgMagazines.hpp b/addons/ballistics/CfgMagazines.hpp index 9ead13c962..32121e4e87 100644 --- a/addons/ballistics/CfgMagazines.hpp +++ b/addons/ballistics/CfgMagazines.hpp @@ -322,13 +322,14 @@ class CfgMagazines { class 10Rnd_762x54_Mag: 10Rnd_762x51_Mag { initSpeed = 800; }; - class ACE_10Rnd_762x54_Tracer_mag: 16Rnd_9x21_Mag { + class ACE_10Rnd_762x54_Tracer_mag: 10Rnd_762x54_Mag { author = "$STR_ACE_Common_ACETeam"; ammo = "ACE_762x54_Ball_7T2"; displayName = "$STR_ACE_10Rnd_762x54_Tracer_mag_Name"; displayNameShort = "$STR_ACE_10Rnd_762x54_Tracer_mag_NameShort"; descriptionShort = "$STR_ACE_10Rnd_762x54_Tracer_mag_Description"; initSpeed = 800; + tracersEvery = 1; }; class 150Rnd_762x54_Box: 150Rnd_762x51_Box { diff --git a/addons/ballistics/CfgVehicles.hpp b/addons/ballistics/CfgVehicles.hpp index c43782d024..82e7fef5e3 100644 --- a/addons/ballistics/CfgVehicles.hpp +++ b/addons/ballistics/CfgVehicles.hpp @@ -42,6 +42,7 @@ class CfgVehicles { MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mk316_Mod_0_Mag,4); MACRO_ADDMAGAZINE(ACE_10Rnd_762x51_Mk319_Mod_0_Mag,4); MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mk319_Mod_0_Mag,4); + MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mag_Tracer,4); MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mag_Tracer_Dim,4); MACRO_ADDMAGAZINE(ACE_10Rnd_338_300gr_HPBT_Mag,4); MACRO_ADDMAGAZINE(ACE_10Rnd_338_API526_Mag,4); @@ -59,6 +60,7 @@ class CfgVehicles { MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mk316_Mod_0_Mag,4); MACRO_ADDMAGAZINE(ACE_10Rnd_762x51_Mk319_Mod_0_Mag,4); MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mk319_Mod_0_Mag,4); + MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mag_Tracer,4); MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mag_Tracer_Dim,4); MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mag_SD,3); MACRO_ADDMAGAZINE(ACE_10Rnd_762x51_M993_AP_Mag,4); @@ -82,6 +84,7 @@ class CfgVehicles { MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mk316_Mod_0_Mag,4); MACRO_ADDMAGAZINE(ACE_10Rnd_762x51_Mk319_Mod_0_Mag,4); MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mk319_Mod_0_Mag,4); + MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mag_Tracer,4); MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mag_Tracer_Dim,4); }; }; @@ -200,6 +203,7 @@ class CfgVehicles { MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mk316_Mod_0_Mag,4); MACRO_ADDMAGAZINE(ACE_10Rnd_762x51_Mk319_Mod_0_Mag,4); MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mk319_Mod_0_Mag,4); + MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mag_Tracer,4); MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mag_Tracer_Dim,4); MACRO_ADDMAGAZINE(ACE_20Rnd_762x67_Mk248_Mod_0_Mag,4); MACRO_ADDMAGAZINE(ACE_20Rnd_762x67_Mk248_Mod_1_Mag,4); diff --git a/addons/ballistics/CfgWeapons.hpp b/addons/ballistics/CfgWeapons.hpp index 7e647d2605..0f9dbcfbe4 100644 --- a/addons/ballistics/CfgWeapons.hpp +++ b/addons/ballistics/CfgWeapons.hpp @@ -509,6 +509,7 @@ class CfgWeapons { class srifle_EBR_F: EBR_base_F { magazines[] = { "20Rnd_762x51_Mag", + "ACE_20Rnd_762x51_Mag_Tracer", "ACE_20Rnd_762x51_Mag_Tracer_Dim", "ACE_20Rnd_762x51_Mk316_Mod_0_Mag", "ACE_20Rnd_762x51_M118LR_Mag", @@ -560,6 +561,7 @@ class CfgWeapons { class srifle_DMR_03_F: DMR_03_base_F { magazines[] = { "20Rnd_762x51_Mag", + "ACE_20Rnd_762x51_Mag_Tracer", "ACE_20Rnd_762x51_Mag_Tracer_Dim", "ACE_20Rnd_762x51_Mk316_Mod_0_Mag", "ACE_20Rnd_762x51_M118LR_Mag", @@ -584,6 +586,7 @@ class CfgWeapons { class srifle_DMR_06_camo_F: DMR_06_base_F { magazines[] = { "20Rnd_762x51_Mag", + "ACE_20Rnd_762x51_Mag_Tracer", "ACE_20Rnd_762x51_Mag_Tracer_Dim", "ACE_20Rnd_762x51_Mk316_Mod_0_Mag", "ACE_20Rnd_762x51_M118LR_Mag", diff --git a/addons/ballistics/stringtable.xml b/addons/ballistics/stringtable.xml index f885a79691..dc9df9db34 100644 --- a/addons/ballistics/stringtable.xml +++ b/addons/ballistics/stringtable.xml @@ -617,28 +617,28 @@ 9x19mm 30-Patronen-Magazin - 7.62x54mm 10Rnd Tracer IR-DIM Mag - Magazynek 7,62x54mm 10rd Smugacz IR-DIM - Chargeur 7.62x54mm 10Rnd Traçante IR-DIM - Cargador de 10 balas trazadoras IR-DIM de 7.62x54mm + 7.62x54mm 10Rnd Tracer Mag + Magazynek 7,62x54mm 10rd Smugacz + Chargeur 7.62x54mm 10Rnd Traçante + Cargador de 10 balas trazadoras de 7.62x54mm Магазин из 10-ти 7,62 мм ИК-трассирующих - 7,62x54mm 10-Patronen-Magazin IR-DIM Leuchtspur + 7,62x54mm 10-Patronen-Magazin Leuchtspur - 7.62mm IR-DIM - 7,62mm IR-DIM - 7.62mm IR-DIM - 7.62mm IR-DIM - 7,62 мм ИК-трассирующие - 7,62x54mm IR-DIM + 7.62mm + 7,62mm + 7.62mm + 7.62mm + 7,62 мм + 7,62x54mm - 7.62x54mm 10Rnd Tracer IR-DIM Mag - Magazynek 7,62x54mm 10rd Smugacz IR-DIM - Chargeur 7.62x54mm 10Cps Traçante IR-DIM - Cargador de 10 balas trazadoras IR-DIM de 7.62x54mm + 7.62x54mm 10Rnd Tracer Mag + Magazynek 7,62x54mm 10rd Smugacz + Chargeur 7.62x54mm 10Cps Traçante + Cargador de 10 balas trazadoras de 7.62x54mm Магазин из 10-ти 7,62 мм ИК-трассирующих - 7,62x54mm 10-Patronen-Magazin IR-DIM Leuchtspur + 7,62x54mm 10-Patronen-Magazin Leuchtspur 6.5mm 100Rnd Tracer IR-DIM Mag From 3eb2bdfc8467aa7432312466a1bfb4bac9a52924 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Tue, 28 Apr 2015 21:17:29 -0500 Subject: [PATCH 230/256] Display Name Progress Text --- addons/medical/ACE_Medical_Treatments.hpp | 8 +++++--- addons/medical/stringtable.xml | 3 +++ 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/addons/medical/ACE_Medical_Treatments.hpp b/addons/medical/ACE_Medical_Treatments.hpp index 85bcab9616..fced8c93bf 100644 --- a/addons/medical/ACE_Medical_Treatments.hpp +++ b/addons/medical/ACE_Medical_Treatments.hpp @@ -196,7 +196,7 @@ class ACE_Medical_Actions { }; class SurgicalKit: fieldDressing { displayName = ""; - displayNameProgress = ""; + displayNameProgress = "$STR_ACE_Medical_TreatmentAction"; items[] = {"ACE_surgicalKit"}; treatmentLocations[] = {QGVAR(useLocation_SurgicalKit)}; requiredMedic = QGVAR(medicSetting_SurgicalKit); @@ -208,7 +208,7 @@ class ACE_Medical_Actions { }; class PersonalAidKit: fieldDressing { displayName = ""; - displayNameProgress = ""; + displayNameProgress = "$STR_ACE_Medical_TreatmentAction"; items[] = {"ACE_personalAidKit"}; treatmentLocations[] = {QGVAR(useLocation_PAK)}; requiredMedic = QGVAR(medicSetting_PAK); @@ -225,7 +225,7 @@ class ACE_Medical_Actions { }; class CheckPulse: fieldDressing { displayName = ""; - displayNameProgress = ""; + displayNameProgress = "$STR_ACE_MEDICAL_CHECK_PULSE_CONTENT"; treatmentLocations[] = {"All"}; requiredMedic = 0; treatmentTime = 2; @@ -240,9 +240,11 @@ class ACE_Medical_Actions { }; class CheckBloodPressure: CheckPulse { callbackSuccess = QUOTE(DFUNC(actionCheckBloodPressure)); + displayNameProgress = "$STR_ACE_MEDICAL_CHECK_BLOODPRESSURE_CONTENT"; }; class CheckResponse: CheckPulse { callbackSuccess = QUOTE(DFUNC(actionCheckResponse)); + displayNameProgress = "$STR_ACE_MEDICAL_CHECK_RESPONSE_CONTENT"; }; class RemoveTourniquet: CheckPulse { treatmentTime = 2.5; diff --git a/addons/medical/stringtable.xml b/addons/medical/stringtable.xml index 7d3c2a6db4..dda25fd5ad 100644 --- a/addons/medical/stringtable.xml +++ b/addons/medical/stringtable.xml @@ -2080,5 +2080,8 @@ Zkłamana kość udowa Femur Cassé + + Treating... + \ No newline at end of file From 409851dd8ce9faeb352d7f88f6fdc2762e90ea3a Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Tue, 28 Apr 2015 23:57:11 -0500 Subject: [PATCH 231/256] Attach the real explosive --- addons/explosives/functions/fnc_onLanded.sqf | 9 ++++++++- .../explosives/functions/fnc_placeExplosive.sqf | 15 ++++++++++++--- addons/explosives/functions/fnc_startTimer.sqf | 1 + addons/explosives/functions/fnc_triggerType.sqf | 5 ++++- addons/explosives/script_component.hpp | 2 ++ 5 files changed, 27 insertions(+), 5 deletions(-) diff --git a/addons/explosives/functions/fnc_onLanded.sqf b/addons/explosives/functions/fnc_onLanded.sqf index 59487e651c..f2ed729b1a 100644 --- a/addons/explosives/functions/fnc_onLanded.sqf +++ b/addons/explosives/functions/fnc_onLanded.sqf @@ -1,7 +1,10 @@ /* * Author: Garth 'L-H' de Wet + * Handles the "EpeContactStart" event when placing the explosive. * * Arguments: + * 0: Explosive Placing Object + * 1: Colliding Object * * Return Value: * None @@ -14,19 +17,23 @@ #include "script_component.hpp" EXPLODE_2_PVT(_this,_explosive,_hitTarget); +TRACE_2("Explosive EpeContactStart",_explosive,_hitTarget); + if ((_explosive getVariable [QGVAR(Handled), false])) exitWith {}; _explosive setVariable [QGVAR(Handled), true]; if (!isNull _hitTarget && {_hitTarget isKindOf "AllVehicles"}) then { + TRACE_1("Attaching to",_hitTarget); _explosive attachTo [_hitTarget]; private "_dir"; - _dir = _setup getVariable [QGVAR(Direction), 0]; + _dir = _explosive getVariable [QGVAR(Direction), 0]; _dir = _dir - (getDir _hitTarget); [[_explosive, _dir, 0], QFUNC(setPosition)] call EFUNC(common,execRemoteFnc); } else { [{ EXPLODE_2_PVT(_this,_player,_explosive); private "_pos"; + _pos = getPosASL _explosive; if (surfaceIsWater _pos) then { _pos = getPosASL _explosive; _explosive setPosASL _pos; diff --git a/addons/explosives/functions/fnc_placeExplosive.sqf b/addons/explosives/functions/fnc_placeExplosive.sqf index 228e8eef23..4bed019d47 100644 --- a/addons/explosives/functions/fnc_placeExplosive.sqf +++ b/addons/explosives/functions/fnc_placeExplosive.sqf @@ -21,10 +21,14 @@ * Public: Yes */ #include "script_component.hpp" -private ["_ammo", "_explosive"]; +private ["_ammo", "_explosive", "_attachedTo", "_expPos", "_magazineTrigger"]; EXPLODE_6_PVT(_this,_unit,_pos,_dir,_magazineClass,_triggerConfig,_triggerSpecificVars); -if (count _this > 6) then { - deleteVehicle (_this select 6); +DEFAULT_PARAM(6,_setupPlaceholderObject,objNull); + +_attachedTo = objNull; +if (!isNull _setupPlaceholderObject) then { + _attachedTo = attachedTo _setupPlaceholderObject; + deleteVehicle _setupPlaceholderObject; }; if (isNil "_triggerConfig") exitWith { @@ -57,6 +61,11 @@ _expPos = getPosATL _explosive; _defuseHelper setPosATL (((getPosATL _defuseHelper) vectorAdd (_pos vectorDiff _expPos))); _explosive setPosATL _pos; +if (!isNull _attachedTo) then { + TRACE_1("Attaching Live Explosive",_attachedTo); + _explosive attachTo [_attachedTo]; +}; + if (isText(_triggerConfig >> "onPlace") && {[_unit,_explosive,_magazineClass,_triggerSpecificVars] call compile (getText (_triggerConfig >> "onPlace"))}) exitWith {_explosive}; [[_explosive, _dir, getNumber (_magazineTrigger >> "pitch")], QFUNC(setPosition)] call EFUNC(common,execRemoteFnc); diff --git a/addons/explosives/functions/fnc_startTimer.sqf b/addons/explosives/functions/fnc_startTimer.sqf index 13da62ec29..9d2ca0aee4 100644 --- a/addons/explosives/functions/fnc_startTimer.sqf +++ b/addons/explosives/functions/fnc_startTimer.sqf @@ -19,6 +19,7 @@ EXPLODE_2_PVT(_this,_explosive,_delay); [{ + private ["_explosive"]; _explosive = _this; if (!isNull _explosive) then { [_explosive, -1, [_explosive, 0]] call FUNC(detonateExplosive); diff --git a/addons/explosives/functions/fnc_triggerType.sqf b/addons/explosives/functions/fnc_triggerType.sqf index fc6a0b90c1..f9d8790a56 100644 --- a/addons/explosives/functions/fnc_triggerType.sqf +++ b/addons/explosives/functions/fnc_triggerType.sqf @@ -14,7 +14,10 @@ * Public: Yes */ #include "script_component.hpp" -private "_result"; + +private["_result", "_config", "_count", "_index", "_supports"]; +// IGNORE_PRIVATE_WARNING(_supports); + _result = []; _config = getArray (ConfigFile >> "CfgMagazines" >> (_this select 0) >> "ACE_Triggers" >> "SupportedTriggers"); _count = count _config; diff --git a/addons/explosives/script_component.hpp b/addons/explosives/script_component.hpp index 60c7e88d06..5ff12b8ba3 100644 --- a/addons/explosives/script_component.hpp +++ b/addons/explosives/script_component.hpp @@ -1,6 +1,8 @@ #define COMPONENT explosives #include "\z\ace\addons\main\script_mod.hpp" +// #define DEBUG_MODE_FULL + #ifdef DEBUG_ENABLED_EXPLOSIVES #define DEBUG_MODE_FULL #endif From e56838be36be55723dae18375b6e0abc79d031c4 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Wed, 29 Apr 2015 00:05:02 -0500 Subject: [PATCH 232/256] Private Variables --- addons/explosives/XEH_postInit.sqf | 2 +- addons/explosives/functions/fnc_addCellphoneIED.sqf | 6 +++++- addons/explosives/functions/fnc_addClacker.sqf | 2 +- .../explosives/functions/fnc_addDetonateActions.sqf | 2 +- .../explosives/functions/fnc_addExplosiveActions.sqf | 2 +- .../functions/fnc_addTransmitterActions.sqf | 2 +- addons/explosives/functions/fnc_addTriggerActions.sqf | 3 +-- addons/explosives/functions/fnc_canDefuse.sqf | 2 +- addons/explosives/functions/fnc_detonateExplosive.sqf | 11 ++++++----- addons/explosives/functions/fnc_dialPhone.sqf | 2 +- addons/explosives/functions/fnc_getDetonators.sqf | 2 ++ .../explosives/functions/fnc_getPlacedExplosives.sqf | 2 ++ addons/explosives/functions/fnc_hasExplosives.sqf | 2 ++ .../explosives/functions/fnc_hasPlacedExplosives.sqf | 2 ++ addons/explosives/functions/fnc_module.sqf | 3 +++ addons/explosives/functions/fnc_place_Approve.sqf | 2 +- addons/explosives/functions/fnc_setupExplosive.sqf | 2 +- addons/explosives/functions/fnc_startDefuse.sqf | 5 ++++- 18 files changed, 36 insertions(+), 18 deletions(-) diff --git a/addons/explosives/XEH_postInit.sqf b/addons/explosives/XEH_postInit.sqf index a4a55f8609..998f73ccaf 100644 --- a/addons/explosives/XEH_postInit.sqf +++ b/addons/explosives/XEH_postInit.sqf @@ -37,7 +37,7 @@ player addEventHandler ["Killed", { } count _deadman; }]; player addEventHandler ["Take", { - private ["_item", "_getter", "_giver", "_config"]; + private ["_item", "_getter", "_giver", "_config", "_detonators"]; _item = _this select 2; _getter = _this select 0; _giver = _this select 1; diff --git a/addons/explosives/functions/fnc_addCellphoneIED.sqf b/addons/explosives/functions/fnc_addCellphoneIED.sqf index 3be21df559..953476861b 100644 --- a/addons/explosives/functions/fnc_addCellphoneIED.sqf +++ b/addons/explosives/functions/fnc_addCellphoneIED.sqf @@ -17,7 +17,11 @@ * Public: No */ #include "script_component.hpp" + EXPLODE_4_PVT(_this,_unit,_explosive,_magazineClass,_extra); + +private["_config", "_detonators", "_hasRequired", "_requiredItems", "_code", "_count", "_codeSet"]; + // Config is the last item in the list of passed in items. _config = (_this select 3) select (count (_this select 3) - 1); @@ -29,7 +33,7 @@ _detonators = [_unit] call FUNC(getDetonators); _hasRequired = false; }; } count _requiredItems; -private ["_code", "_count", "_codeSet"]; + _codeSet = false; while {!_codeSet} do { _code = str(round (random 9999)); diff --git a/addons/explosives/functions/fnc_addClacker.sqf b/addons/explosives/functions/fnc_addClacker.sqf index 7e3529f931..b25c1e1bcd 100644 --- a/addons/explosives/functions/fnc_addClacker.sqf +++ b/addons/explosives/functions/fnc_addClacker.sqf @@ -17,7 +17,7 @@ * Public: Yes */ #include "script_component.hpp" -private ["_clacker", "_config", "_requiredItems", "_hasRequired"]; +private ["_clacker", "_config", "_requiredItems", "_hasRequired", "_detonators"]; EXPLODE_3_PVT(_this,_unit,_explosive,_magazineClass); // Config is the last item in the list of passed in items. _config = (_this select 3) select (count (_this select 3) - 1); diff --git a/addons/explosives/functions/fnc_addDetonateActions.sqf b/addons/explosives/functions/fnc_addDetonateActions.sqf index 5081040233..5c94649608 100644 --- a/addons/explosives/functions/fnc_addDetonateActions.sqf +++ b/addons/explosives/functions/fnc_addDetonateActions.sqf @@ -15,7 +15,7 @@ * Public: No */ #include "script_component.hpp" -private ["_result", "_item", "_children"]; +private ["_result", "_item", "_children", "_range", "_required"]; EXPLODE_2_PVT(_this,_unit,_detonator); _range = GetNumber (ConfigFile >> "CfgWeapons" >> _detonator >> "ACE_Range"); diff --git a/addons/explosives/functions/fnc_addExplosiveActions.sqf b/addons/explosives/functions/fnc_addExplosiveActions.sqf index 29a2eed608..214b41602c 100644 --- a/addons/explosives/functions/fnc_addExplosiveActions.sqf +++ b/addons/explosives/functions/fnc_addExplosiveActions.sqf @@ -11,7 +11,7 @@ * Public: No */ #include "script_component.hpp" -private ["_mags", "_item", "_index", "_children"]; +private ["_mags", "_item", "_index", "_children", "_itemCount", "_list"]; EXPLODE_1_PVT(_this,_unit); diff --git a/addons/explosives/functions/fnc_addTransmitterActions.sqf b/addons/explosives/functions/fnc_addTransmitterActions.sqf index 6408eb2ec7..abaa57decc 100644 --- a/addons/explosives/functions/fnc_addTransmitterActions.sqf +++ b/addons/explosives/functions/fnc_addTransmitterActions.sqf @@ -14,7 +14,7 @@ * Public: No */ #include "script_component.hpp" -private ["_items", "_unit", "_children", "_config"]; +private ["_unit", "_children", "_config", "_detonators"]; _unit = _this select 0; _detonators = [_unit] call FUNC(getDetonators); _children = []; diff --git a/addons/explosives/functions/fnc_addTriggerActions.sqf b/addons/explosives/functions/fnc_addTriggerActions.sqf index e9c2dca0e6..6f4ece163c 100644 --- a/addons/explosives/functions/fnc_addTriggerActions.sqf +++ b/addons/explosives/functions/fnc_addTriggerActions.sqf @@ -15,8 +15,7 @@ * Public: No */ #include "script_component.hpp" -private ["_hasRequiredItems","_triggerTypes", "_children", - "_detonators", "_required", "_magTriggers"]; +private ["_hasRequiredItems","_triggerTypes", "_children", "_detonators", "_required", "_magTriggers"]; EXPLODE_2_PVT(_this,_magazine,_explosive); _detonators = [ACE_player] call FUNC(getDetonators); diff --git a/addons/explosives/functions/fnc_canDefuse.sqf b/addons/explosives/functions/fnc_canDefuse.sqf index cd04564a9f..ef4bd10a83 100644 --- a/addons/explosives/functions/fnc_canDefuse.sqf +++ b/addons/explosives/functions/fnc_canDefuse.sqf @@ -14,7 +14,7 @@ * Public: Yes */ #include "script_component.hpp" -private ["_specialist"]; +private ["_isSpecialist"]; EXPLODE_2_PVT(_this,_unit,_target); if (isNull(_target getVariable [QGVAR(Explosive),objNull])) exitWith { deleteVehicle _target; diff --git a/addons/explosives/functions/fnc_detonateExplosive.sqf b/addons/explosives/functions/fnc_detonateExplosive.sqf index f05a265c3a..e4dfc2f7fc 100644 --- a/addons/explosives/functions/fnc_detonateExplosive.sqf +++ b/addons/explosives/functions/fnc_detonateExplosive.sqf @@ -19,7 +19,7 @@ * Public: Yes */ #include "script_component.hpp" -private ["_result", "_ignoreRange", "_helper"]; +private ["_result", "_ignoreRange", "_helper", "_pos"]; EXPLODE_3_PVT(_this,_unit,_range,_item); _ignoreRange = (_range == -1); _result = true; @@ -46,10 +46,11 @@ if (getNumber (ConfigFile >> "CfgAmmo" >> typeof (_item select 0) >> "TriggerWhe }; }; [{ - _explosive = _this; - if (!isNull _explosive) then { - _explosive setDamage 1; - }; + private ["_explosive"]; + _explosive = _this; + if (!isNull _explosive) then { + _explosive setDamage 1; + }; }, _item select 0, _item select 1, 0] call EFUNC(common,waitAndExecute); _result diff --git a/addons/explosives/functions/fnc_dialPhone.sqf b/addons/explosives/functions/fnc_dialPhone.sqf index f00fa8a970..aa163b027f 100644 --- a/addons/explosives/functions/fnc_dialPhone.sqf +++ b/addons/explosives/functions/fnc_dialPhone.sqf @@ -15,7 +15,7 @@ * Public: Yes */ #include "script_component.hpp" -private ["_arr", "_ran", "_i","_speedDial"]; +private ["_arr", "_ran", "_i"]; EXPLODE_2_PVT(_this,_unit,_code); if (_unit getVariable [QGVAR(Dialing),false]) exitWith {}; if !(alive _unit) exitWith {}; diff --git a/addons/explosives/functions/fnc_getDetonators.sqf b/addons/explosives/functions/fnc_getDetonators.sqf index 26bde9b190..9df13c266a 100644 --- a/addons/explosives/functions/fnc_getDetonators.sqf +++ b/addons/explosives/functions/fnc_getDetonators.sqf @@ -14,6 +14,8 @@ * Public: Yes */ #include "script_component.hpp" +// IGNORE_PRIVATE_WARNING(_detonators); + private ["_unit", "_items", "_result", "_config"]; _unit = _this select 0; _items = (items _unit); diff --git a/addons/explosives/functions/fnc_getPlacedExplosives.sqf b/addons/explosives/functions/fnc_getPlacedExplosives.sqf index 1164972047..0c2080923a 100644 --- a/addons/explosives/functions/fnc_getPlacedExplosives.sqf +++ b/addons/explosives/functions/fnc_getPlacedExplosives.sqf @@ -16,6 +16,8 @@ * Public: Yes */ #include "script_component.hpp" +// IGNORE_PRIVATE_WARNING(_allExplosives,_deadmanExplosives); + private ["_unit", "_clackerList", "_adjustedList", "_list", "_filter"]; _unit = _this select 0; _filter = nil; diff --git a/addons/explosives/functions/fnc_hasExplosives.sqf b/addons/explosives/functions/fnc_hasExplosives.sqf index 794cebc57d..bd790bd12f 100644 --- a/addons/explosives/functions/fnc_hasExplosives.sqf +++ b/addons/explosives/functions/fnc_hasExplosives.sqf @@ -14,6 +14,8 @@ * Public: Yes */ #include "script_component.hpp" +// IGNORE_PRIVATE_WARNING(_hasExplosives); + private ["_unit", "_result", "_magazines"]; _result = false; _unit = _this select 0; diff --git a/addons/explosives/functions/fnc_hasPlacedExplosives.sqf b/addons/explosives/functions/fnc_hasPlacedExplosives.sqf index 4a6ccc9de8..174bc07fbc 100644 --- a/addons/explosives/functions/fnc_hasPlacedExplosives.sqf +++ b/addons/explosives/functions/fnc_hasPlacedExplosives.sqf @@ -14,4 +14,6 @@ * Public: Yes */ #include "script_component.hpp" +// IGNORE_PRIVATE_WARNING(_hasPlacedExplosives); + (count (_this call FUNC(getPlacedExplosives)) > 0) diff --git a/addons/explosives/functions/fnc_module.sqf b/addons/explosives/functions/fnc_module.sqf index 3e522e9a70..4080b41bde 100644 --- a/addons/explosives/functions/fnc_module.sqf +++ b/addons/explosives/functions/fnc_module.sqf @@ -15,6 +15,9 @@ */ #include "script_component.hpp" if !(isServer) exitWith {}; + +private["_activated", "_logic"]; + _logic = _this select 0; _activated = _this select 2; diff --git a/addons/explosives/functions/fnc_place_Approve.sqf b/addons/explosives/functions/fnc_place_Approve.sqf index 0082a9bd6a..f133dbb080 100644 --- a/addons/explosives/functions/fnc_place_Approve.sqf +++ b/addons/explosives/functions/fnc_place_Approve.sqf @@ -19,7 +19,7 @@ if (GVAR(pfeh_running)) then { [QGVAR(Placement),"OnEachFrame"] call CALLSTACK(BIS_fnc_removeStackedEventHandler); GVAR(pfeh_running) = false; }; -private ["_mag", "_setup", "_player"]; +private ["_setup", "_player", "_dir"]; _setup = GVAR(Setup); GVAR(Setup) = objNull; [GVAR(placer), "ACE_Explosives", false] call EFUNC(Common,setForceWalkStatus); diff --git a/addons/explosives/functions/fnc_setupExplosive.sqf b/addons/explosives/functions/fnc_setupExplosive.sqf index ea3a086274..a0aad3d1ab 100644 --- a/addons/explosives/functions/fnc_setupExplosive.sqf +++ b/addons/explosives/functions/fnc_setupExplosive.sqf @@ -28,7 +28,7 @@ GVAR(Setup) setVariable [QGVAR(class), _class, true]; GVAR(TweakedAngle) = 180; [QGVAR(Placement),"OnEachFrame", { - private "_player"; + private ["_player", "_pos"]; _player = ACE_player; if (GVAR(placer) != _player) exitWith { call FUNC(place_Cancel); diff --git a/addons/explosives/functions/fnc_startDefuse.sqf b/addons/explosives/functions/fnc_startDefuse.sqf index 7eacdd33e1..d3631fdb5f 100644 --- a/addons/explosives/functions/fnc_startDefuse.sqf +++ b/addons/explosives/functions/fnc_startDefuse.sqf @@ -16,11 +16,14 @@ */ #include "script_component.hpp" EXPLODE_2_PVT(_this,_unit,_target); + +private["_actionToPlay"]; + _target = attachedTo (_target); _fnc_DefuseTime = { EXPLODE_2_PVT(_this,_specialist,_target); - + private ["_defuseTime"]; _defuseTime = 5; if (isNumber(ConfigFile >> "CfgAmmo" >> typeOf (_target) >> "ACE_DefuseTime")) then { _defuseTime = getNumber(ConfigFile >> "CfgAmmo" >> typeOf (_target) >> "ACE_DefuseTime"); From d7d43ce3b1c922b647f9eaa4cd0fe53f8b2911bb Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Wed, 29 Apr 2015 01:26:13 -0500 Subject: [PATCH 233/256] #828 - Private Variables for Interact Menu --- addons/interact_menu/XEH_clientInit.sqf | 2 +- addons/interact_menu/functions/fnc_compileMenu.sqf | 3 +-- addons/interact_menu/functions/fnc_compileMenuSelfAction.sqf | 4 ++-- addons/interact_menu/functions/fnc_createAction.sqf | 1 + addons/interact_menu/functions/fnc_findActionNode.sqf | 2 +- addons/interact_menu/functions/fnc_removeActionFromClass.sqf | 2 +- addons/interact_menu/functions/fnc_render.sqf | 2 +- addons/interact_menu/functions/fnc_renderActionPoints.sqf | 2 +- addons/interact_menu/functions/fnc_renderBaseMenu.sqf | 2 +- addons/interact_menu/functions/fnc_renderIcon.sqf | 2 +- addons/interact_menu/functions/fnc_renderMenu.sqf | 2 +- addons/interact_menu/functions/fnc_renderSelector.sqf | 3 ++- addons/interact_menu/functions/fnc_setupTextColors.sqf | 2 +- addons/interact_menu/functions/fnc_splitPath.sqf | 2 +- addons/interact_menu/script_component.hpp | 2 ++ 15 files changed, 18 insertions(+), 15 deletions(-) diff --git a/addons/interact_menu/XEH_clientInit.sqf b/addons/interact_menu/XEH_clientInit.sqf index faabf773f4..5714b77e16 100644 --- a/addons/interact_menu/XEH_clientInit.sqf +++ b/addons/interact_menu/XEH_clientInit.sqf @@ -8,7 +8,7 @@ GVAR(ParsedTextCached) = []; //Setup text/shadow color matrix [] call FUNC(setupTextColors); ["SettingChanged", { - PARAMS_2(_name,_value); + PARAMS_1(_name); if ((_name == QGVAR(colorTextMax)) || {_name == QGVAR(colorTextMin)} || {_name == QGVAR(colorShadowMax)} || {_name == QGVAR(colorShadowMin)}) then { [] call FUNC(setupTextColors); }; diff --git a/addons/interact_menu/functions/fnc_compileMenu.sqf b/addons/interact_menu/functions/fnc_compileMenu.sqf index bd2023a90d..f5296ec9cf 100644 --- a/addons/interact_menu/functions/fnc_compileMenu.sqf +++ b/addons/interact_menu/functions/fnc_compileMenu.sqf @@ -26,8 +26,7 @@ if !(isNil {missionNamespace getVariable [_actionsVarName, nil]}) exitWith {}; private "_recurseFnc"; _recurseFnc = { - private ["_actions", "_displayName", "_distance", "_icon", "_statement", "_selection", "_condition", "_showDisabled", - "_enableInside", "_canCollapse", "_runOnHover", "_children", "_entry", "_entryCfg", "_insertChildren", "_modifierFunction"]; + private ["_actions", "_displayName", "_distance", "_icon", "_statement", "_selection", "_condition", "_showDisabled", "_enableInside", "_canCollapse", "_runOnHover", "_children", "_entry", "_entryCfg", "_insertChildren", "_modifierFunction", "_i"]; EXPLODE_1_PVT(_this,_actionsCfg); _actions = []; diff --git a/addons/interact_menu/functions/fnc_compileMenuSelfAction.sqf b/addons/interact_menu/functions/fnc_compileMenuSelfAction.sqf index 0258b3dc8a..e4c449ce80 100644 --- a/addons/interact_menu/functions/fnc_compileMenuSelfAction.sqf +++ b/addons/interact_menu/functions/fnc_compileMenuSelfAction.sqf @@ -14,7 +14,7 @@ EXPLODE_1_PVT(_this,_target); -private ["_objectType","_actionsVarName"]; +private ["_objectType","_actionsVarName", "_canCollapse", "_children", "_enableInside", "_entry", "_entryCfg", "_i", "_insertChildren", "_modifierFunction", "_runOnHover"]; _objectType = _target; if (typeName _target == "OBJECT") then { _objectType = typeOf _target; @@ -26,7 +26,7 @@ if !(isNil {missionNamespace getVariable [_actionsVarName, nil]}) exitWith {}; private "_recurseFnc"; _recurseFnc = { - private ["_actions", "_displayName", "_distance", "_icon", "_statement", "_selection", "_condition", "_showDisabled", + private ["_actions", "_displayName", "_icon", "_statement", "_condition", "_showDisabled", "_enableInside", "_canCollapse", "_runOnHover", "_children", "_entry", "_entryCfg", "_insertChildren", "_modifierFunction"]; EXPLODE_1_PVT(_this,_actionsCfg); _actions = []; diff --git a/addons/interact_menu/functions/fnc_createAction.sqf b/addons/interact_menu/functions/fnc_createAction.sqf index fb3f05b7b5..a7d939722e 100644 --- a/addons/interact_menu/functions/fnc_createAction.sqf +++ b/addons/interact_menu/functions/fnc_createAction.sqf @@ -28,6 +28,7 @@ EXPLODE_5_PVT(_this,_actionName,_displayName,_icon,_statement,_condition); +// IGNORE_PRIVATE_WARNING(_target); private ["_insertChildren","_customParams","_position","_distance","_params", "_modifierFunction"]; _insertChildren = if (count _this > 5) then { diff --git a/addons/interact_menu/functions/fnc_findActionNode.sqf b/addons/interact_menu/functions/fnc_findActionNode.sqf index 4027b7a852..b8639754d2 100644 --- a/addons/interact_menu/functions/fnc_findActionNode.sqf +++ b/addons/interact_menu/functions/fnc_findActionNode.sqf @@ -19,7 +19,7 @@ EXPLODE_2_PVT(_this,_actionTreeList,_parentPath); -private ["_parentNode", "_foundParentNode", "_fnc_findFolder"]; +private ["_parentNode", "_foundParentNode", "_fnc_findFolder", "_actionTree"]; // Hack to make this work on the root node too if (count _parentPath == 0) exitWith { diff --git a/addons/interact_menu/functions/fnc_removeActionFromClass.sqf b/addons/interact_menu/functions/fnc_removeActionFromClass.sqf index 898228d6d8..c407273258 100644 --- a/addons/interact_menu/functions/fnc_removeActionFromClass.sqf +++ b/addons/interact_menu/functions/fnc_removeActionFromClass.sqf @@ -19,7 +19,7 @@ EXPLODE_3_PVT(_this,_objectType,_typeNum,_fullPath); -private ["_res","_varName","_actionTrees"]; +private ["_res","_varName","_actionTrees", "_actionIndex", "_parentLevel", "_parentNode"]; _res = _fullPath call FUNC(splitPath); EXPLODE_2_PVT(_res,_parentPath,_actionName); diff --git a/addons/interact_menu/functions/fnc_render.sqf b/addons/interact_menu/functions/fnc_render.sqf index 01a550eb91..06c155ac54 100644 --- a/addons/interact_menu/functions/fnc_render.sqf +++ b/addons/interact_menu/functions/fnc_render.sqf @@ -14,7 +14,7 @@ BEGIN_COUNTER(fnc_render); -private ["_cursorPos1", "_cursorPos2", "_cursorVec", "_p1", "_p2", "_p", "_v", "_cp", "_forEachIndex", "_renderTargets", "_x", "_cursorScreenPos", "_closestDistance", "_closestSelection", "_pos", "_sPos", "_disSq", "_closest", "_cTime", "_delta", "_foundTarget", "_misMatch", "_hoverPath", "_i"]; +private ["_cursorPos1", "_cursorPos2", "_p1", "_p2", "_forEachIndex", "_x", "_cursorScreenPos", "_closestDistance", "_closestSelection", "_sPos", "_disSq", "_closest", "_cTime", "_delta", "_foundTarget", "_misMatch", "_hoverPath", "_i", "_actionData", "_player", "_target"]; _foundTarget = false; _cursorPos1 = positionCameraToWorld [0, 0, 0]; _cursorPos2 = positionCameraToWorld [0, 0, 2]; diff --git a/addons/interact_menu/functions/fnc_renderActionPoints.sqf b/addons/interact_menu/functions/fnc_renderActionPoints.sqf index 78d5418e5a..8e6cb7d390 100644 --- a/addons/interact_menu/functions/fnc_renderActionPoints.sqf +++ b/addons/interact_menu/functions/fnc_renderActionPoints.sqf @@ -14,7 +14,7 @@ GVAR(currentOptions) = []; -private ["_player","_numInteractObjects","_numInteractions","_actionsVarName","_classActions","_objectActions","_target","_player","_action","_actionData","_active","_cameraPos","_cameraDir"]; +private ["_player","_numInteractObjects","_numInteractions","_actionsVarName","_classActions","_target","_player","_action","_cameraPos","_cameraDir", "_lambda", "_nearestObjects", "_pos"]; _player = ACE_player; _fnc_renderNearbyActions = { diff --git a/addons/interact_menu/functions/fnc_renderBaseMenu.sqf b/addons/interact_menu/functions/fnc_renderBaseMenu.sqf index a5214ddcbe..8df24f9e55 100644 --- a/addons/interact_menu/functions/fnc_renderBaseMenu.sqf +++ b/addons/interact_menu/functions/fnc_renderBaseMenu.sqf @@ -16,7 +16,7 @@ BEGIN_COUNTER(fnc_renderBaseMenu) -private ["_distance","_pos","_weaponDir","_ref","_cameraPos","_sPos","_activeActionTree"]; +private ["_distance","_pos","_weaponDir","_ref","_sPos","_activeActionTree", "_line"]; EXPLODE_2_PVT(_this,_object,_baseActionNode); EXPLODE_1_PVT(_baseActionNode,_actionData); diff --git a/addons/interact_menu/functions/fnc_renderIcon.sqf b/addons/interact_menu/functions/fnc_renderIcon.sqf index ec56c5a653..642464028d 100644 --- a/addons/interact_menu/functions/fnc_renderIcon.sqf +++ b/addons/interact_menu/functions/fnc_renderIcon.sqf @@ -17,7 +17,7 @@ */ #include "script_component.hpp" #define DEFAULT_ICON QUOTE(\z\ace\addons\interaction\ui\dot_ca.paa) -private ["_ctrl", "_pos"]; +private ["_ctrl", "_pos", "_displayNum"]; PARAMS_6(_text,_icon,_sPos,_textColor,_shadowColor,_iconColor); //systemChat format ["Icon %1 - %2,%3", _text, _sPos select 0, _sPos select 1]; diff --git a/addons/interact_menu/functions/fnc_renderMenu.sqf b/addons/interact_menu/functions/fnc_renderMenu.sqf index e80e9d41ab..a050374786 100644 --- a/addons/interact_menu/functions/fnc_renderMenu.sqf +++ b/addons/interact_menu/functions/fnc_renderMenu.sqf @@ -15,7 +15,7 @@ */ #include "script_component.hpp" -private ["_menuInSelectedPath", "_path", "_menuDepth", "_currentRenderDepth", "_x", "_offset", "_newPos", "_forEachIndex"]; +private ["_menuInSelectedPath", "_path", "_menuDepth", "_x", "_offset", "_newPos", "_forEachIndex", "_player", "_pos", "_shadowColor", "_target", "_textColor"]; EXPLODE_4_PVT(_this,_parentPath,_action,_sPos,_angles); EXPLODE_3_PVT(_action,_actionData,_activeChildren,_actionObject); diff --git a/addons/interact_menu/functions/fnc_renderSelector.sqf b/addons/interact_menu/functions/fnc_renderSelector.sqf index ca2f06d63f..569fa79198 100644 --- a/addons/interact_menu/functions/fnc_renderSelector.sqf +++ b/addons/interact_menu/functions/fnc_renderSelector.sqf @@ -15,12 +15,13 @@ EXPLODE_2_PVT(_this,_sPos,_icon); +private ["_displayNum", "_ctrl", "_pos"]; + if(GVAR(iconCount) > (count GVAR(iconCtrls))-1) then { _displayNum = [[46, 12] select visibleMap,91919] select (uiNamespace getVariable [QGVAR(cursorMenuOpened),false]); GVAR(iconCtrls) pushBack ((findDisplay _displayNum) ctrlCreate ["RscStructuredText", 54021+GVAR(iconCount)]); }; -private ["_ctrl", "_pos"]; _ctrl = GVAR(iconCtrls) select GVAR(iconCount); GVAR(iconCount) = GVAR(iconCount) + 1; diff --git a/addons/interact_menu/functions/fnc_setupTextColors.sqf b/addons/interact_menu/functions/fnc_setupTextColors.sqf index 5df9c589da..58f9995985 100644 --- a/addons/interact_menu/functions/fnc_setupTextColors.sqf +++ b/addons/interact_menu/functions/fnc_setupTextColors.sqf @@ -12,7 +12,7 @@ */ #include "script_component.hpp" -private ["_mixColor", "_rowT", "_rowS", "_menuDepth", "_pathCount", "_menuInSelectedPath", "_color", "_path"]; +private ["_mixColor", "_rowT", "_rowS", "_menuDepth", "_pathCount"]; //Mixes 2 colors (number arrays) and makes a color string "#AARRGGBB" for structured text _mixColor = { diff --git a/addons/interact_menu/functions/fnc_splitPath.sqf b/addons/interact_menu/functions/fnc_splitPath.sqf index 935e947b30..790ae83466 100644 --- a/addons/interact_menu/functions/fnc_splitPath.sqf +++ b/addons/interact_menu/functions/fnc_splitPath.sqf @@ -13,7 +13,7 @@ */ #include "script_component.hpp" -private ["_parentPath","_actionName"]; +private ["_parentPath","_actionName", "_i"]; _parentPath = []; for [{_i = 0},{_i < (count _this) - 1},{_i = _i + 1}] do { _parentPath pushBack (_this select _i); diff --git a/addons/interact_menu/script_component.hpp b/addons/interact_menu/script_component.hpp index a086b02613..3117065ca2 100644 --- a/addons/interact_menu/script_component.hpp +++ b/addons/interact_menu/script_component.hpp @@ -1,6 +1,8 @@ #define COMPONENT interact_menu #include "\z\ace\addons\main\script_mod.hpp" +// #define DEBUG_MODE_FULL + #ifdef DEBUG_ENABLED_INTERACT_MENU #define DEBUG_MODE_FULL #endif From f83f8dad0ee2b200ccfa372b8523a1b80901b3a3 Mon Sep 17 00:00:00 2001 From: ulteq Date: Wed, 29 Apr 2015 09:27:49 +0200 Subject: [PATCH 234/256] Fixes: https://github.com/acemod/ACE3/issues/904 --- addons/scopes/functions/fnc_adjustScope.sqf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/addons/scopes/functions/fnc_adjustScope.sqf b/addons/scopes/functions/fnc_adjustScope.sqf index d13ff57ffc..31b85f309e 100644 --- a/addons/scopes/functions/fnc_adjustScope.sqf +++ b/addons/scopes/functions/fnc_adjustScope.sqf @@ -17,6 +17,7 @@ PARAMS_3(_unit,_turretAndDirection,_majorStep); if (!(_unit isKindOf "Man")) exitWith {false}; +if (currentMuzzle _unit != currentWeapon _unit) exitWith {false}; private ["_weaponIndex", "_zeroing", "_optic", "_increment", "_maxVertical", "_maxHorizontal", "_elevation", "_windage", "_zero", "_adjustment"]; @@ -37,7 +38,7 @@ _increment = getNumber (configFile >> "CfgWeapons" >> _optic >> "ACE_ScopeAdjust _maxVertical = getArray (configFile >> "CfgWeapons" >> _optic >> "ACE_ScopeAdjust_Vertical"); _maxHorizontal = getArray (configFile >> "CfgWeapons" >> _optic >> "ACE_ScopeAdjust_Horizontal"); -if ((count _maxHorizontal < 2) or (count _maxVertical < 2)) exitWith {false}; +if ((_increment == 0) or (count _maxHorizontal < 2) or (count _maxVertical < 2)) exitWith {false}; _zeroing = _adjustment select _weaponIndex; _elevation = _zeroing select 0; From 47d4446520a7c5f635fef4715ddd38514a42b3d0 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Wed, 29 Apr 2015 02:34:47 -0500 Subject: [PATCH 235/256] Don't check intersection if distance < 1m Related to #869 --- addons/interact_menu/functions/fnc_renderBaseMenu.sqf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/addons/interact_menu/functions/fnc_renderBaseMenu.sqf b/addons/interact_menu/functions/fnc_renderBaseMenu.sqf index 8df24f9e55..841303bcdf 100644 --- a/addons/interact_menu/functions/fnc_renderBaseMenu.sqf +++ b/addons/interact_menu/functions/fnc_renderBaseMenu.sqf @@ -50,11 +50,12 @@ if (GVAR(openedMenuType) == 0 && vehicle ACE_player == ACE_player && if (_actualDistance > _distance) exitWith {true}; - if (_distance > 1.0) exitWith { + if (_actualDistance > 1.0) exitWith { // If distance to action is greater than 1.0 m, check LOS _line = [_headPos call EFUNC(common,positionToASL), _pos call EFUNC(common,positionToASL), _object, ACE_player]; lineIntersects _line }; + false }) exitWith {false}; // Exit if the action is behind you From 95536f0a94c36c7cb43e0e1ec9d263cfb995981e Mon Sep 17 00:00:00 2001 From: bux578 Date: Wed, 29 Apr 2015 10:10:30 +0200 Subject: [PATCH 236/256] update authors.txt --- AUTHORS.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AUTHORS.txt b/AUTHORS.txt index d0f248e72f..7bae4a67d5 100644 --- a/AUTHORS.txt +++ b/AUTHORS.txt @@ -43,7 +43,7 @@ evromalarkey Falke75 Ferenczi Ferenzi -Filip Basara (Logo) +Filip Basara FreeZbe geraldbolso1899 Ghost From cfbf3bd0535526df08579ce2e90803a286aa3b07 Mon Sep 17 00:00:00 2001 From: Bla1337 Date: Wed, 29 Apr 2015 11:20:21 +0300 Subject: [PATCH 237/256] Localization update --- addons/ballistics/stringtable.xml | 38 +++++++------- addons/interact_menu/stringtable.xml | 1 + addons/interaction/stringtable.xml | 10 ++-- addons/medical/stringtable.xml | 4 +- addons/missileguidance/stringtable.xml | 1 + addons/mk6mortar/stringtable.xml | 4 ++ addons/optics/stringtable.xml | 4 +- addons/optionsmenu/stringtable.xml | 1 + addons/overheating/stringtable.xml | 2 +- addons/realisticnames/stringtable.xml | 68 +++++++++++++------------- addons/reloadlaunchers/stringtable.xml | 2 +- addons/weaponselect/stringtable.xml | 4 +- 12 files changed, 75 insertions(+), 64 deletions(-) diff --git a/addons/ballistics/stringtable.xml b/addons/ballistics/stringtable.xml index dc9df9db34..bbc0f8e30f 100644 --- a/addons/ballistics/stringtable.xml +++ b/addons/ballistics/stringtable.xml @@ -741,7 +741,7 @@ Magazynek 5,56mm 30rd (M995 AP) 5.56mm 30Cps (M995 AP) Cargador de 30 balas de 5.56mm (M995 AP) - Магазин из 30-ти 5.56 мм (M995 AP) + Магазин из 30-ти 5.56 мм (M995 бронебойные) 5,56mm 30-Patronen-Magazin (M995AP) @@ -749,7 +749,7 @@ 5,56mm AP 5.56mm AP 5.56mm AP - 5.56 мм AP + 5.56 мм бронебойные 5,56mm AP @@ -757,7 +757,7 @@ Kaliber: 5,56x45mm NATO (M995 AP)<br />Pociski: 30 Calibre: 5.56x45mm NATO (M995 AP)<br />Cartouches: 30 Calibre: 5.56x45mm NATO (M995 AP)<br />Balas: 30 - Калибр: 5,56x45 мм NATO (M995 AP)<br />Патронов: 30 + Калибр: 5,56x45 мм NATO (M995 бронебойные)<br />Патронов: 30 Kaliber: 5,56x45mm NATO (M995 AP)<br />Patronen: 30 @@ -869,7 +869,7 @@ 7,62mm Mk319 7.62mm Mk319 7.62mm Mk319 - 7,62mm Mk319 + 7,62 мм Mk319 7,62mm Mk319 @@ -909,7 +909,7 @@ Magazynek 7,62mm 10rd (M993 AP) 7.62mm 10Cps (M993 AP) Cargador de 10 balas de 7.62mm (M993 AP) - Магазин из 10-ти 7,62 мм (M993 AP) + Магазин из 10-ти 7,62 мм (M993 бронебойные) 7,62mm 10-Patronen-Magazin (M993 AP) @@ -917,7 +917,7 @@ 7,62mm AP 7.62mm AP 7.62mm AP - 7,62mm AP + 7,62mm бронебойные 7,62mm AP @@ -925,7 +925,7 @@ Kaliber: 7,62x51mm NATO (M993 AP)<br />Pociski: 10 Calibre: 7.62x51mm NATO (M993 AP)<br />Cartouches: 10 Calibre: 7.62x51mm NATO (M993 AP)<br />Balas: 10 - Калибр: 7,62x51 мм NATO (M993 AP)<br />Патронов: 10 + Калибр: 7,62x51 мм NATO (M993 бронебойные)<br />Патронов: 10 Kaliber: 7,62x51mm NATO (M993 AP)<br />Patronen: 10 @@ -933,7 +933,7 @@ Magazynek 7,62mm 20rd (M993 AP) 7.62mm 20Cps (M993 AP) Cargador de 20 balas de 7.62mm (M993 AP) - Магазин из 20-ти 7,62 мм (M993 AP) + Магазин из 20-ти 7,62 мм (M993 бронебойные) 7,62mm 20-Patronen-Magazin (M993 AP) @@ -941,7 +941,7 @@ 7,62mm AP 7.62mm AP 7.62mm AP - 7,62 мм AP + 7,62 мм бронебойные 7,62mm AP @@ -949,7 +949,7 @@ Kaliber: 7,62x51mm NATO (M993 AP)<br />Pociski: 20 Calibre: 7.62x51mm NATO (M993 AP)<br />Cartouches: 20 Calibre: 7.62x51mm NATO (M993 AP)<br />Balas: 20 - Калибр: 7,62x51 мм NATO (M993 AP)<br />Патронов: 20 + Калибр: 7,62x51 мм NATO (M993 бронебойные)<br />Патронов: 20 Kaliber: 7,62x51mm NATO (M993 AP)<br />Patronen: 20 @@ -1029,7 +1029,7 @@ 6.5x47mm 30Cps (HPBT Scenar) Cargador de 30 balas de 6.5x47mm (HPBT Scenar) Magazynek 6,5x47mm 30rd (HPBT Scenar) - Магазин из 30-ти 6,5x47 мм (HPBT Scenar) + Магазин из 30-ти 6,5x47 мм (экспансивные Scenar) 6,5x47mm 30-Patronen-Magazin (HPBT Scenar) @@ -1045,12 +1045,13 @@ Calibre: 6.5x47mm (HPBT Scenar)<br />Cartouches: 30 Calibre: 6.5x47mm (HPBT Scenar)<br />Balas: 30 Kaliber: 6,5x47mm (HPBT Scenar)<br />Pociski: 30 - Калибр: 6,5x47 мм (HPBT Scenar)<br />Патронов: 30 + Калибр: 6,5x47 мм (экспансивные Scenar)<br />Патронов: 30 Kaliber: 6,5x47mm (HPBT Scenar)<br />Patronen: 30<br />Eingesetzt von: MXM 6.5mm Creedmor 30Rnd Mag Magazynek 6,5mm Creedmor 30rd + Магазин из 30-ти 6,5 мм Creedmor 6,5mm Creedmor 30-Patronen-Magazin @@ -1071,7 +1072,7 @@ .338 10 Cps (300gr Sierra MatchKing HPBT) Cargador de 10 balas de 8.6x70mm (300gr Sierra MatchKing HPBT) Magazynek .338 10rd (300gr Sierra MatchKing HPBT) - Магазин из 10-ти .338 (300 гран Sierra MatchKing HPBT) + Магазин из 10-ти .338 (300 гран Sierra MatchKing экспансивные) .338 10-Patronen-Magazin (300gr Sierra MatchKing HPBT) @@ -1079,7 +1080,7 @@ .338 HPBT .338 HPBT .338 HPBT - .338 HPBT + .338 экспансивные .338 HPBT @@ -1087,7 +1088,7 @@ Calibre: 8.6x70mm (300gr Sierra MatchKing HPBT)<br />Cartouches: 10 Calibre: 8.6x70mm (300gr Sierra MatchKing HPBT)<br />Balas: 10 Kaliber: 8,6x70mm (300gr Sierra MatchKing HPBT)<br />Pociski: 10 - Калибр: 8,6x70mm (300 гран Sierra MatchKing HPBT)<br />Патронов: 10 + Калибр: 8,6x70mm (300 гран Sierra MatchKing экспансивные)<br />Патронов: 10 Kaliber: 8,6x70mm (300gr Sierra MatchKing HPBT)<br />Patronen: 10 @@ -1103,7 +1104,7 @@ .338 AP .338 AP .338 AP - .338 бронебойные + .338 AP .338 AP @@ -1111,7 +1112,7 @@ Calibre: 8.6x70mm (API526)<br />Cartouches: 10 Calibre: 8.6x70mm (API526)<br />Balas: 10 Kaliber: 8,6x70mm (API526)<br />Pociski: 10 - Калибр: 8,6x70mm (API526)<br />Патронов: 10 + Калибр: 8,6x70 мм (API526)<br />Патронов: 10 Kaliber: 8,6x70mm (API526)<br />Patronen: 10 @@ -1143,6 +1144,7 @@ 12.7x99mm API 5Cps Cargador de 5 balas de 12.7x99mm API Magazynek 12,7x99mm API 5rd + Магазин из 5-ти 12,7x99 мм (бронебойно-зажигательные) 12,7x99mm 5-Patronen-Magazin (API) @@ -1150,6 +1152,7 @@ 12.7mm API 12.7mm API 12,7mm API + 12.7 мм бронебойно-зажигательные 12,7mm API @@ -1157,6 +1160,7 @@ Calibre: 12.7x99mm API<br />Cartouches: 5 Calibre: 12.7x99mm API<br />Balas: 5 Kaliber: 12,7x99mm API<br />Pociski: 5 + Калибр: 12,7x99 мм бронебойно-зажигательные<br />Патронов: 5 Kaliber:12,7x99mm API<br />Patronen: 5 diff --git a/addons/interact_menu/stringtable.xml b/addons/interact_menu/stringtable.xml index a5df7723b4..e31534427b 100644 --- a/addons/interact_menu/stringtable.xml +++ b/addons/interact_menu/stringtable.xml @@ -18,6 +18,7 @@ Toujours afficher le curseur pour les interactions Mostra sempre il cursore per le interazioni Zawsze wyświetlaj kursor dla interakcji + Показывать курсор (взаимодействие) Immer den Cursor für Fremd-Interaktionen anzeigen diff --git a/addons/interaction/stringtable.xml b/addons/interaction/stringtable.xml index 38902f80cf..2be029aec0 100644 --- a/addons/interaction/stringtable.xml +++ b/addons/interaction/stringtable.xml @@ -552,7 +552,7 @@ Jaune Żółty Žlutý - Желтый + Жёлтый Amarela Giallo Sárga @@ -564,7 +564,7 @@ Rejoindre<br/>Rouge Dołącz do drużyny<br/>czerwonej Připojit do<br/>Červeného týmu - Присоединиться<br/>к красной группе + Присоединиться<br/>к Красной группе Unir-se à<br/>Equipe Vermelha Entra nella<br/>Squadra Rossa Csatlakozás a<br/>piros csapathoz @@ -576,7 +576,7 @@ Rejoindre<br/>Vert Dołącz do<br/>drużyny zielonej Připojit do<br/>Zeleného týmu - Присоединиться<br/>к зеленой группе + Присоединиться<br/>к Зеленой группе Unir-se à<br/>Equipe Verde Entra nella<br/>Squadra Verde Csatlakozás a<br/>zöld csapathoz @@ -588,7 +588,7 @@ Rejoindre<br/>Bleu Dołącz do<br/>drużyny niebieskiej Připojit do<br/>Modrého týmu - Присоединиться<br/>к синей группе + Присоединиться<br/>к Синей группе Unir-se à<br/>Equipe Azul Entra nella<br/>Squadra Blu Csatlakozás a<br/>kék csapathoz @@ -600,7 +600,7 @@ Rejoindre<br/>Jaune Dołącz do<br/>drużyny żółtej Připojit do<br/>Žlutého týmu - Присоединиться<br/>к желтой группе + Присоединиться<br/>к Жёлтой группе Unir-se à<br/>Equipe Amarela Entra nella<br/>Squadra Gialla Csatlakozás a<br/>sárga csapathoz diff --git a/addons/medical/stringtable.xml b/addons/medical/stringtable.xml index 52baf9bbe3..85c56227a7 100644 --- a/addons/medical/stringtable.xml +++ b/addons/medical/stringtable.xml @@ -1485,7 +1485,7 @@ dead - мертв + мёртв tot mort martwy @@ -1721,7 +1721,7 @@ %1 has given an IV %1 has puesto una IV - %1 провел переливание + %1 провёл переливание %1 hat eine Infusion verabreicht %1 podał IV %1 a administré une IV diff --git a/addons/missileguidance/stringtable.xml b/addons/missileguidance/stringtable.xml index 6840f11e42..15a87c31ba 100644 --- a/addons/missileguidance/stringtable.xml +++ b/addons/missileguidance/stringtable.xml @@ -17,6 +17,7 @@ Advanced missile guidance, or AMG, provides multiple enhancements to missile locking and firing. It is also a framework required for missile weapon types. Zaawansowane namierzanie rakiet, lub ZNR, dostarcza wiele poprawek do systemu namierzania rakiet oraz dodaje nowe tryby strzału. Jest to wymagana opcja dla broni rakietowych. Guía de misiles avanzada, o AMG en sus siglas en inglés, ofrece múltiples mejoras en el fijado y disparo de misiles. Es también un framework requerido para armas de tipo misil. + Продвинутое наведение ракет, или ПНР, обеспечивает множество усовершествований для наведения и стрельбы ракет. Также, это система, необходимая для всех ракетных типов оружия. Das Erweiterte Raketenlenksystem, auch AMG genannt, bietet viele Verbesserungen zum Aufschalten und Feuern mittels gelenkten Raketen. Le guidage avancé de missile, ou AMG en anglais, apporte de multiple améliorations au verouillage et au tir de missiles. C'est aussi un framework requis pour tout arme de type missile. diff --git a/addons/mk6mortar/stringtable.xml b/addons/mk6mortar/stringtable.xml index 1dfdd1b470..fe08d320e5 100644 --- a/addons/mk6mortar/stringtable.xml +++ b/addons/mk6mortar/stringtable.xml @@ -6,24 +6,28 @@ 82mm Distanztabelle Tabela strzelnicza 82mm table de tir 82mm + 82 мм Таблица дальностей и прицелов Range Table for the MK6 82mm Mortar Distanztabelle für den Mk6 82mm Mortar Tabela strzelnicza dla moździerza 82mm MK6 Table de tir pour le mortier MK6 82mm + Таблица дальностей и прицелов для MK6 82 мм мортиры Open 82mm Rangetable Öffne 82mm Distanztabelle Otwórz tabelę strzelniczą 82mm ouvrir la table de tir 82mm + Открыть 82 мм Таблицу дальностей и прицелов Charge Ladung Charge Ładunek + Зарядить diff --git a/addons/optics/stringtable.xml b/addons/optics/stringtable.xml index 56216f2cb1..f9964c4310 100644 --- a/addons/optics/stringtable.xml +++ b/addons/optics/stringtable.xml @@ -57,7 +57,7 @@ MRCO (2D) MRCO (2D) MRCO (2D) - Прицел MRCO (2D) + MRCO (2D) MRCO (2D) MRCO (2D) @@ -69,7 +69,7 @@ MRCO (PIP) MRCO (PIP) MRCO (PIP) - Прицел MRCO (PIP) + MRCO (PIP) MRCO (PIP) MRCO (PIP) diff --git a/addons/optionsmenu/stringtable.xml b/addons/optionsmenu/stringtable.xml index 8a86563690..1beec5d7df 100644 --- a/addons/optionsmenu/stringtable.xml +++ b/addons/optionsmenu/stringtable.xml @@ -218,6 +218,7 @@ Menu option: taille de l'UI Skalowanie UI menu ustawień Opción de escalado del menú UI + Размер интерфейса меню настройки UI Skalierung diff --git a/addons/overheating/stringtable.xml b/addons/overheating/stringtable.xml index 9699c67ede..d21d2ad884 100644 --- a/addons/overheating/stringtable.xml +++ b/addons/overheating/stringtable.xml @@ -112,7 +112,7 @@ Lufa wymieniona Hlaveň vyměněna Canon changé - Ствол сменен + Ствол сменён Cső kicserélve Cano substituído Canna sostituita diff --git a/addons/realisticnames/stringtable.xml b/addons/realisticnames/stringtable.xml index 37e7b28700..cc99277d48 100644 --- a/addons/realisticnames/stringtable.xml +++ b/addons/realisticnames/stringtable.xml @@ -138,7 +138,7 @@ M-ATV (CKM) M-ATV (TK) M-ATV (HMG) - M-ATV (Пулемет) + M-ATV (Пулемёт) M-ATV (HMG) M-ATV (nehézgéppuska) M-ATV (HMG) @@ -150,7 +150,7 @@ M-ATV (GMG) M-ATV (Granátomet) M-ATV (GMG) - M-ATV (Гранатомет) + M-ATV (Гранатомёт) M-ATV (GMG) M-ATV (gránátgéppuska) M-ATV (GMG) @@ -366,7 +366,7 @@ Fennek (CKM) Fennek (TK) Fennek (HMG) - Феннек (Пулемет) + Феннек (Пулемёт) Fennek (HMG) Fennek (nehézgéppuska) Fennek (HMG) @@ -378,7 +378,7 @@ Fennek (GMG) Fennek (granátomet) Fennek (GMG) - Феннек (Гранатомет) + Феннек (Гранатомёт) Fennek (GMG) Fennek (gránátgéppuska) Fennek (GMG) @@ -438,7 +438,7 @@ KamAZ Transportowy (zakryty) KAMAZ Valník (krytý) KamAZ Transport (bâché) - КамАЗ Траспортный (Крытый) + КамАЗ Траспортный (крытый) KamAZ Transporte (coberto) KamAZ szállítójármű (ponyvás) KamAZ da trasporto (coperto) @@ -510,7 +510,7 @@ Punisher (CKM) Punisher (TK) Punisher (HMG) - Kаратель (Пулемет) + Kаратель (Пулемёт) Punisher (HMG) Punisher (nehézgéppuska) Punisher (HMG) @@ -522,7 +522,7 @@ Punisher (GMG) Punisher (granátomet) Punisher (GMG) - Kаратель (Гранатомет) + Kаратель (Гранатомёт) Punisher (GMG) Punisher (gránátgéppuska) Punisher (GMG) @@ -534,7 +534,7 @@ T100 Black Eagle T100 Black Eagle T100 Black Eagle - T100 Черный Орел + T100 Чёрный Орел T100 Black Eagle T100 Fekete Sas T100 Black Eagle @@ -606,7 +606,7 @@ Typhoon Transportowy (przykryty) Typhoon valník (krytý) Typhoon Transport (bâché) - Тайфун Транспортный (kрытый) + Тайфун Транспортный (крытый) Typhoon Transporte (coberto) Typhoon szállítójármű (ponyvás) Typhoon da trasporto (coperto) @@ -988,7 +988,7 @@ Granat dymny M18 (Żółty) M18 Kouřový Granát (žlutý) M18 Grenade fumigène (Jaune) - M183 дымовая граната (Жёлтые) + M183 дымовая граната (Жёлтый) M18 Granada de fumaça (Amarela) M18 füstgránát (Sárga) M18 Granata fumogena (Giallo) @@ -1159,7 +1159,7 @@ MX (Noir) MX (Fekete) MX (Negro) - MX (черный) + MX (Чёрный) MXC @@ -1179,7 +1179,7 @@ MXC (Noir) MXC (Fekete) MXC (Negro) - MXC (черный) + MXC (Чёрный) MX 3GL @@ -1199,7 +1199,7 @@ MX 3GL (Noir) MX 3GL (Fekete) MX 3GL (Negro) - MX 3GL (черный) + MX 3GL (Чёрный) MX LSW @@ -1219,7 +1219,7 @@ MX LSW (Noir) MX LSW (Fekete) MX LSW (Negro) - MX LSW (черный) + MX LSW (Чёрный) MXM @@ -1239,7 +1239,7 @@ MXM (Noir) MXM (Fekete) MXM (Negro) - MXM (черный) + MXM (Чёрный) KH2002 Sama @@ -1279,7 +1279,7 @@ F2000 (Camo) F2000 (Terepmintás) F2000 (Camuflaje) - F2000 (камо) + F2000 (Камо) F2000 @@ -1299,7 +1299,7 @@ F2000 Tactical (Camo) F2000 Tactical (Terepmintás) F2000 Tactical (Camuflaje) - F2000 Tactical (камо) + F2000 Tactical (Камо) F2000 Tactical @@ -1319,7 +1319,7 @@ F2000 EGLM (Camo) F2000 EGLM (Terepmintás) F2000 EGLM (Camuflaje) - F2000 EGLM (камо) + F2000 EGLM (Камо) F2000 EGLM @@ -1495,7 +1495,7 @@ Noreen "Bad News" ULR (Black) Noreen "Bad News" ULR (Noir) Noreen "Bad News" ULR (Negro) - Noreen "Bad News" ULR (черный) + Noreen "Bad News" ULR (Чёрный) Noreen "Bad News" ULR (Schwarz) Noreen "Bad News" ULR (czarny) @@ -1504,7 +1504,7 @@ Noreen "Bad News" ULR (Camo) Noreen "Bad News" ULR (Camo) Noreen "Bad News" ULR (Camuflaje) - Noreen "Bad News" ULR (камо) + Noreen "Bad News" ULR (Камо) Noreen "Bad News" ULR (Camo) Noreen "Bad News" ULR (kamuflaż) @@ -1513,7 +1513,7 @@ Noreen "Bad News" ULR (Sand) Noreen "Bad News" ULR (Beige) Noreen "Bad News" ULR (Arena) - Noreen "Bad News" ULR (песочный) + Noreen "Bad News" ULR (Песочный) Noreen "Bad News" ULR (Sand) Noreen "Bad News" ULR (piaskowy) @@ -1531,7 +1531,7 @@ SIG 556 (Black) SIG 556 (Noir) SIG 556 (Negro) - SIG 556 (черный) + SIG 556 (Чёрный) SIG 556 (czarny) SIG 556 (Schwarz) @@ -1540,7 +1540,7 @@ SIG 556 (Khaki) SIG 556 (Kaki) SIG 556 (Caqui) - SIG 556 (хаки) + SIG 556 (Хаки) SIG 556 (khaki) SIG 556 (Khaki) @@ -1549,7 +1549,7 @@ SIG 556 (Sand) SIG 556 (Beige) SIG 556 (Arena) - SIG 556 (песочный) + SIG 556 (Песочный) SIG 556 (piaskowy) SIG 556 (Sand) @@ -1558,7 +1558,7 @@ SIG 556 (Camo) SIG 556 (Camo) SIG 556 (Camuflaje) - SIG 556 (камо) + SIG 556 (Камо) SIG 556 (kamuflaż) SIG 556 (Camo) @@ -1567,7 +1567,7 @@ SIG 556 (Woodland) SIG 556 (Woodland) SIG 556 (Bosque) - SIG 556 (лесной) + SIG 556 (Лесной) SIG 556 (leśny) SIG 556 (Woodland) @@ -1594,7 +1594,7 @@ ASP-1 Kir (Black) ASP-1 Kir (Noir) ASP-1 Kir (Negro) - ASP-1 Kir (черный) + ASP-1 Kir (Чёрный) ASP-1 Kir (Schwarz) ASP-1 Kir (czarny) @@ -1603,7 +1603,7 @@ ASP-1 Kir (Tan) ASP-1 Kir (Tan) ASP-1 Kir (Tan) - ASP-1 Kir (бронзовый) + ASP-1 Kir (Бронзовый) ASP-1 Kir (Hellbraun) ASP-1 Kir (Tan) @@ -1621,7 +1621,7 @@ Cyrus (Black) Cyrus (Noir) Cyrus (Negro) - Cyrus (черный) + Cyrus (Чёрный) Cyrus (Schwarz) Cyrus (czarny) @@ -1630,7 +1630,7 @@ Cyrus (Hex) Cyrus (Hex) Cyrus (Hex) - Cyrus (гекс) + Cyrus (Гекс) Cyrus (Hex) Cyrus (hex) @@ -1639,7 +1639,7 @@ Cyrus (Tan) Cyrus (Tan) Cyrus (Tan) - Cyrus (бронза) + Cyrus (Бронза) Cyrus (Hellbraun) Cyrus (podpalany) @@ -1684,7 +1684,7 @@ HK121 (Hex) HK121 (Hex) HK121 (Hex) - HK121 (гекс) + HK121 (Гекс) HK121 (Hex) HK121 (hex) @@ -1693,7 +1693,7 @@ HK121 (Tan) HK121 (Tan) HK121 (Tan) - HK121 (бронза) + HK121 (Бронза) HK121 (Hellbraun) HK121 (podpalany) @@ -1720,7 +1720,7 @@ LWMMG (Black) LWMMG (Noir) LWMMG (Negro) - LWMMG (Черный) + LWMMG (Чёрный) LWMMG (czarny) LWMMG (Schwarz) diff --git a/addons/reloadlaunchers/stringtable.xml b/addons/reloadlaunchers/stringtable.xml index bb949040d0..3a73918745 100644 --- a/addons/reloadlaunchers/stringtable.xml +++ b/addons/reloadlaunchers/stringtable.xml @@ -28,7 +28,7 @@ Lanceur chargé Panzerabwehr geladen Lanzador cargado - ПУ заряжено + ПУ заряжена Odpalovač nabit Wyrzutnia załadowana Kilövő betöltve diff --git a/addons/weaponselect/stringtable.xml b/addons/weaponselect/stringtable.xml index 6e06025620..a30b18f5dd 100644 --- a/addons/weaponselect/stringtable.xml +++ b/addons/weaponselect/stringtable.xml @@ -53,7 +53,7 @@ Seleccionar lanzador Wybierz wyrzutnię Zvolit Raketomet - Выбрать гранатомет + Выбрать гранатомёт Sélectionner Lanceur Rakétavető Kiválasztása Selecionar Lançador @@ -65,7 +65,7 @@ Seleccionar lanzador de granadas Wybierz granatnik Zvolit Granátomet - Выбрать подствольный гранатомет + Выбрать подствольный гранатомёт Sélectionner Lance-grenades Gránátvető Kiválasztása Selecionar Lança-Granadas From 7ca35bf823094c3d35c6820709958c7b9e263269 Mon Sep 17 00:00:00 2001 From: Glowbal Date: Wed, 29 Apr 2015 10:44:10 +0200 Subject: [PATCH 238/256] prevent multiple detonators of same type to be displayed #835 As per @CorruptedHeart suggestion. > Just needs a > if (getNumber (_config >> "ACE_Detonator") == 1 && {!(_x in _result)}) then { --- addons/explosives/functions/fnc_getDetonators.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/explosives/functions/fnc_getDetonators.sqf b/addons/explosives/functions/fnc_getDetonators.sqf index 26bde9b190..01a4d0129e 100644 --- a/addons/explosives/functions/fnc_getDetonators.sqf +++ b/addons/explosives/functions/fnc_getDetonators.sqf @@ -21,7 +21,7 @@ _result = []; { _config = ConfigFile >> "CfgWeapons" >> _x; - if (getNumber (_config >> "ACE_Detonator") == 1) then { + if (getNumber (_config >> "ACE_Detonator") == 1 && {!(_x in _result)}) then { _result pushBack _x; }; } forEach _items; From 87d1f7c2819a01c595290e4345fe94904d08093b Mon Sep 17 00:00:00 2001 From: ulteq Date: Wed, 29 Apr 2015 12:24:56 +0200 Subject: [PATCH 239/256] Fixes: https://github.com/acemod/ACE3/pull/909#issuecomment-97377112 --- addons/explosives/functions/fnc_detonateExplosive.sqf | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/addons/explosives/functions/fnc_detonateExplosive.sqf b/addons/explosives/functions/fnc_detonateExplosive.sqf index e4dfc2f7fc..f79f38ae1e 100644 --- a/addons/explosives/functions/fnc_detonateExplosive.sqf +++ b/addons/explosives/functions/fnc_detonateExplosive.sqf @@ -19,19 +19,13 @@ * Public: Yes */ #include "script_component.hpp" -private ["_result", "_ignoreRange", "_helper", "_pos"]; +private ["_result", "_ignoreRange", "_pos"]; EXPLODE_3_PVT(_this,_unit,_range,_item); _ignoreRange = (_range == -1); _result = true; if (!_ignoreRange && {(_unit distance (_item select 0)) > _range}) exitWith {false}; -_helper = (attachedTo (_item select 0)); -if (!isNull(_helper)) then { - detach (_item select 0); - deleteVehicle _helper; -}; - if (getNumber (ConfigFile >> "CfgAmmo" >> typeof (_item select 0) >> "TriggerWhenDestroyed") == 0) then { private ["_exp", "_previousExp"]; _previousExp = _item select 0; From cec16d6a44f1c8b74e54732286711fe437c66f1b Mon Sep 17 00:00:00 2001 From: KoffeinFlummi Date: Wed, 29 Apr 2015 12:58:02 +0200 Subject: [PATCH 240/256] 3 > 2 --- tools/stringtableduplicates.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/stringtableduplicates.py b/tools/stringtableduplicates.py index b9b4920059..49f5bcb743 100755 --- a/tools/stringtableduplicates.py +++ b/tools/stringtableduplicates.py @@ -34,7 +34,7 @@ def check_module(projectpath, module): diff = len(entries) - len(list(set(entries))) duplicates += diff if diff > 0: - print key.getAttribute("ID") + print(key.getAttribute("ID")) return duplicates From d149db61e8ca98384a19e7b1381c9bc2f68452a5 Mon Sep 17 00:00:00 2001 From: commy2 Date: Wed, 29 Apr 2015 13:01:08 +0200 Subject: [PATCH 241/256] ace insignia, #906 --- addons/common/CfgUnitInsignia.hpp | 9 +++++++++ addons/common/config.cpp | 1 + addons/common/data/ace3logo_ca.paa | Bin 0 -> 22016 bytes 3 files changed, 10 insertions(+) create mode 100644 addons/common/CfgUnitInsignia.hpp create mode 100644 addons/common/data/ace3logo_ca.paa diff --git a/addons/common/CfgUnitInsignia.hpp b/addons/common/CfgUnitInsignia.hpp new file mode 100644 index 0000000000..c12c17c0c0 --- /dev/null +++ b/addons/common/CfgUnitInsignia.hpp @@ -0,0 +1,9 @@ + +class CfgUnitInsignia { + class ACE_insignia { + displayName = "ACE 3"; + author = "kripto202"; + texture = PATHTOF(data\ace3logo_ca.paa); + textureVehicle = ""; + }; +}; diff --git a/addons/common/config.cpp b/addons/common/config.cpp index 16bd13fc0c..27647f8d00 100644 --- a/addons/common/config.cpp +++ b/addons/common/config.cpp @@ -22,6 +22,7 @@ class CfgPatches { #include "CfgActions.hpp" #include "CfgMoves.hpp" #include "CfgVoice.hpp" +#include "CfgUnitInsignia.hpp" class ACE_Rsc_Display_Base { idd = -1; diff --git a/addons/common/data/ace3logo_ca.paa b/addons/common/data/ace3logo_ca.paa new file mode 100644 index 0000000000000000000000000000000000000000..d3e6e20c7b3d08d692565170b06d6824e09d82c3 GIT binary patch literal 22016 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 B%1ZzM literal 0 HcmV?d00001 From dfbc9b74fd692a7c149b70896d9e8f15388581ae Mon Sep 17 00:00:00 2001 From: Glowbal Date: Wed, 29 Apr 2015 15:14:37 +0200 Subject: [PATCH 242/256] Added arsenalScope #913 --- addons/common/CfgWeapons.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/common/CfgWeapons.hpp b/addons/common/CfgWeapons.hpp index cf8c06798e..59bb8f6b9a 100644 --- a/addons/common/CfgWeapons.hpp +++ b/addons/common/CfgWeapons.hpp @@ -15,7 +15,7 @@ class CfgWeapons { class ACE_FakePrimaryWeapon: Rifle_Base_F { scope = 2; scopeCurator = 1; - + scopeArsenal = 1; displayName = ""; model = "\A3\Weapons_f\empty"; picture = ""; From 5ec6bea71d8acc13834ae9c30c40be19c3221594 Mon Sep 17 00:00:00 2001 From: FreeZbe Date: Wed, 29 Apr 2015 16:19:23 +0200 Subject: [PATCH 243/256] French: update stringtable --- addons/interact_menu/stringtable.xml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/addons/interact_menu/stringtable.xml b/addons/interact_menu/stringtable.xml index a5df7723b4..cc447c082e 100644 --- a/addons/interact_menu/stringtable.xml +++ b/addons/interact_menu/stringtable.xml @@ -76,7 +76,7 @@ Interaction - Text Max Interakcja - Tekst max - Interaction -Texte Max + Interaction - Texte Max Interaktionstextfarbe Max Interazioni - Testo Massimo @@ -103,9 +103,11 @@ Keep cursor centered + Garder le curseur au centre Keeps cursor centered and pans the option menu around. Useful if screen size is limited. + Garde le curseur au milieu et dispose le menu des options autour. Utile si la taille de l'écran est limitée. - \ No newline at end of file + From ca7aeece904ad04cf1d5aaaa39506d950e213402 Mon Sep 17 00:00:00 2001 From: FreeZbe Date: Wed, 29 Apr 2015 16:28:59 +0200 Subject: [PATCH 244/256] French: update stringtable --- addons/ballistics/stringtable.xml | 88 ++++++++++++++++--------------- 1 file changed, 45 insertions(+), 43 deletions(-) diff --git a/addons/ballistics/stringtable.xml b/addons/ballistics/stringtable.xml index dc9df9db34..83ddf4bec1 100644 --- a/addons/ballistics/stringtable.xml +++ b/addons/ballistics/stringtable.xml @@ -31,7 +31,7 @@ Kaliber: 6,5x39mm Nyomjelző IR-DIM<br />Lövedékek: 30<br />Használható: MX/C/M/SW/3GL Kaliber: 6,5x39mm Leuchtspur IR-DIM<br />Patronen: 30<br />Eingesetzt von: MX/C/M/SW/3GL Calibre: 6,5x39mm Trazadoras IR-DIM<br />Balas: 30<br />Se usa en: MX/C/M/SW/3GL - Calibre: 6,5x39mm Traçantes IR-DIM<br />Cartouches: 30<br />Utilisé dans: MX/C/M/SW/3GL + Calibre: 6,5x39mm Traçantes IR-DIM<br />Cartouches: 30<br />Utilisé avec: MX/C/M/SW/3GL Kaliber: 6,5x39mm Smugacz IR-DIM<br />Pociski: 30<br />Używane w: MX/C/M/SW/3GL Ráže: 6.5x39mm Svítící IR-DIM<br />Munice: 30<br />Použití: MX/C/M/SW/3GL Calibre: 6,5x39mm Traçante IR-DIM<br />Projéteis: 30<br />Usado em: MX/C/M/SW/3GL @@ -67,7 +67,7 @@ Kaliber: 6,5x39mm Halk<br />Lövedékek: 30<br />Használható: MX/C/M/SW/3GL Kaliber: 6,5x39mm SD<br />Patronen: 30<br />Eingesetzt von: MX/C/M/SW/3GL Calibre: 6,5x39mm SD<br />Balas: 30<br />Se usa en: MX/C/M/SW/3GL - Calibre: 6,5x39mm SD<br />Cartouches: 30<br />Utilisé dans: MX/C/M/SW/3GL + Calibre: 6,5x39mm SD<br />Cartouches: 30<br />Utilisé avec: MX/C/M/SW/3GL Kaliber: 6,5x39mm SD<br />Pociski: 30<br />Używane w: MX/C/M/SW/3GL Ráže: 6.5x39mm SD<br />Munice: 30<br />Použití: MX/C/M/SW/3GL Calibre: 6,5x39mm SD<br />Projéteis: 30<br />Usado em: MX/C/M/SW/3GL @@ -103,7 +103,7 @@ Kaliber: 6,5x39mm Páncéltörő<br />Lövedékek: 30<br />Használható: MX/C/M/SW/3GL Kaliber: 6,5x39mm AP<br />Patronen: 30<br />Eingesetzt von: MX/C/M/SW/3GL Calibre: 6,5x39mm AP<br />Balas: 30<br />Se usa en: MX/C/M/SW/3GL - Calibre: 6,5x39mm AP<br />Cartouches: 30<br />Utilisé dans: MX/C/M/SW/3GL + Calibre: 6,5x39mm AP<br />Cartouches: 30<br />Utilisé avec: MX/C/M/SW/3GL Kaliber: 6,5x39mm AP<br />Pociski: 30<br />Używane w: MX/C/M/SW/3GL Ráže: 6.5x39mm AP<br />Munice: 30<br />Použití: MX/C/M/SW/3GL Calibre: 6,5x39mm AP<br />Projéteis: 30<br />Usado em: MX/C/M/SW/3GL @@ -140,7 +140,7 @@ Kaliber: 6,5x39mm Nyomjelző IR-DIM<br />Lövedékek: 30<br />Használható: Katiba Kaliber: 6,5x39mm Leuchtspur IR-DIM<br />Patronen: 30<br />Eingesetzt von: Katiba Calibre: 6,5x39mm Trazadoras IR-DIM<br />Balas: 30<br />Se usa en: Katiba - Calibre: 6,5x39mm Traçantes IR-DIM<br />Cartouches: 30<br />Utilisé dans: Katiba + Calibre: 6,5x39mm Traçantes IR-DIM<br />Cartouches: 30<br />Utilisé avec: Katiba Kaliber: 6,5x39mm Smugacz IR-DIM<br />Pociski: 30<br />Używane w: Katiba Ráže: 6.5x39mm Svítící IR-DIM<br />Munice: 30<br />Použití: Katiba Calibre: 6,5x39mm Traçante IR-DIM<br />Projéteis: 30<br />Usado em: Katiba @@ -176,7 +176,7 @@ Kaliber: 6,5x39mm Halk<br />Lövedékek: 30<br />Használható: Katiba Kaliber: 6,5x39mm SD<br />Patronen: 30<br />Eingesetzt von: Katiba Calibre: 6,5x39mm SD<br />Balas: 30<br />Se usa en: Katiba - Calibre: 6,5x39mm SD<br />Cartouches: 30<br />Utilisé dans: Katiba + Calibre: 6,5x39mm SD<br />Cartouches: 30<br />Utilisé avec: Katiba Kaliber: 6,5x39mm SD<br />Naboje: 30<br />Używane w: Katiba Ráže: 6.5x39mm SD<br />Munice: 30<br />Použití: Katiba Calibre: 6,5x39mm SD<br />Projéteis: 30<br />Usado em: Katiba @@ -212,7 +212,7 @@ Kaliber: 6,5x39mm Páncéltörő<br />Lövedékek: 30<br />Használható: Katiba Kaliber: 6,5x39mm AP<br />Patronen: 30<br />Eingesetzt von: Katiba Calibre: 6,5x39mm AP<br />Balas: 30<br />Se usa en: Katiba - Calibre: 6,5x39mm AP<br />Cartouches: 30<br />Utilisé dans: Katiba + Calibre: 6,5x39mm AP<br />Cartouches: 30<br />Utilisé avec: Katiba Kaliber: 6,5x39mm AP<br />Pociski: 30<br />Używane w: Katiba Ráže: 6.5x39mm AP<br />Munice: 30<br />Použití: Katiba Calibre: 6,5x39mm AP<br />Projéteis: 30<br />Usado em: Katiba @@ -249,7 +249,7 @@ Kaliber: 5,56x45mm Nyomjelző IR-DIM<br />Lövedékek: 30<br />Használható: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR Kaliber: 5,56x45mm Leuchtspur IR-DIM<br />Patronen: 30<br />Eingesetzt von: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR Calibre: 5,56x45mm Trazadoras IR-DIM<br />Balas: 30<br />Se usa en: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR - Calibre: 5,56x45mm Traçantes IR-DIM<br />Cartouches: 30<br />Utilisé dans: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR + Calibre: 5,56x45mm Traçantes IR-DIM<br />Cartouches: 30<br />Utilisé avec: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR Kaliber: 5,56x45mm Smugacz IR-DIM<br />Pociski: 30<br />Używane w: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR Ráže: 5.56x45mm Svítící IR-DIM<br />Munice: 30<br />Použití: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR Calibre: 5,56x45mm Traçante IR-DIM<br />Projéteis: 30<br />Usado em: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR @@ -286,7 +286,7 @@ Kaliber: 7,62x51mm Nyomjelző<br />Lövedékek: 20<br />Használható: Mk18 ABR Kaliber: 7,62x51mm Leuchtspur<br />Patronen: 20<br />Eingesetzt von: EBR Calibre: 7,62x51mm Trazadora<br />Balas: 20<br />Se usa en: Mk18 ABR - Calibre: 7,62x51mm Traçantes<br />Cartouches: 20<br />Utilisé dans: EBR + Calibre: 7,62x51mm Traçantes<br />Cartouches: 20<br />Utilisé avec: EBR Kaliber: 7,62x51mm Smugacz<br />Pociski: 20<br />Używane w: Mk18 ABR Ráže: 7.62x51mm Svítící<br />Munice: 20<br />Použití: Mk18 ABR Calibre: 7,62x51mm Traçante<br />Projéteis: 20<br />Usado em: Mk18 ABR @@ -322,7 +322,7 @@ Kaliber: 7,62x51mm Nyomjelző IR-DIM<br />Lövedékek: 20<br />Használható: Mk18 ABR Kaliber: 7,62x51mm Leuchtspur IR-DIM<br />Patronen: 20<br />Eingesetzt von: EBR Calibre: 7,62x51mm Trazadoras IR-DIM<br />Balas: 20<br />Se usa en: Mk18 ABR - Calibre: 7,62x51mm Traçantes IR-DIM<br />Cartouches: 20<br />Utilisé dans: EBR + Calibre: 7,62x51mm Traçantes IR-DIM<br />Cartouches: 20<br />Utilisé avec: EBR Kaliber: 7,62x51mm Smugacz IR-DIM<br />Pociski: 20<br />Używane w: Mk18 ABR Ráže: 7.62x51mm Svítící IR-DIM<br />Munice: 20<br />Použití: Mk18 ABR Calibre: 7,62x51mm Traçante IR-DIM<br />Projéteis: 20<br />Usado em: Mk18 ABR @@ -358,7 +358,7 @@ Kaliber: 7,62x51mm Halk<br />Lövedékek: 20<br />Használható: Mk18 ABR Kaliber: 7,62x51mm SD<br />Patronen: 20<br />Eingesetzt von: EBR Calibre: 7,62x51mm SD<br />Balas: 20<br />Se usa en: Mk18 ABR - Calibre: 7,62x51mm SD<br />Cartouches: 20<br />Utilisé dans: EBR + Calibre: 7,62x51mm SD<br />Cartouches: 20<br />Utilisé avec: EBR Kaliber: 7,62x51mm SD<br />Pociski: 20<br />Używane w: Mk18 ABR Ráže: 7.62x51mm SD<br />Munice: 20<br />Použití: Mk18 ABR Calibre: 7,62x51mm SD<br />Projéteis: 20<br />Usado em: Mk18 ABR @@ -387,7 +387,7 @@ Caliber: .338 Norma Magnum Tracer<br />Rounds: 130<br />Used in: SPMG Kaliber: .338 Norma Magnum Leuchtspur<br />Patronen: 130<br />Eingesetzt von: SPMG Kaliber: .338 Norma Magnum Smugacz<br />Pociski: 130<br />Używany w: SPMG - Calibre: .338 Norma Magnum Traçante<br />Cartouches: 130<br />Utilisé dans: SPMG + Calibre: .338 Norma Magnum Traçante<br />Cartouches: 130<br />Utilisé avec: SPMG Calibre: .338 Norma Magnum trazadora<br />Balas: 130<br />Se usa en: SPMG Калибр: .338 Norma Magnum трассирующие<br />Патронов: 130<br />Используются в: SPMG @@ -412,7 +412,7 @@ Caliber: .338 Norma Magnum Tracer IR-DIM<br />Rounds: 130<br />Used in: SPMG Kaliber: .338 Norma Magnum Leuchtspur IR-DIM<br />Patronen: 130<br />Eingesetzt von: SPMG Kaliber: .338 Norma Magnum Smugacz IR-DIM<br />Pociski: 130<br />Używany w: SPMG - Calibre: .338 Norma Magnum Traçante IR-DIM<br />Cartouches: 130<br />Utilisé dans: SPMG + Calibre: .338 Norma Magnum Traçante IR-DIM<br />Cartouches: 130<br />Utilisé avec: SPMG Calibre: .338 Norma Magnum trazadora IR-DIM<br />Balas: 130<br />Se usa en: SPMG Калибр: .338 Norma Magnum ИК-трассирующие<br />Патронов: 130<br />Используются с: SPMG @@ -437,7 +437,7 @@ Caliber: .338 Norma Magnum AP<br />Rounds: 130<br />Used in: SPMG Kaliber: .338 Norma Magnum Hartkern<br />Patronen: 130<br />Eingesetzt von: SPMG Kaliber: .338 Norma Magnum AP<br />Pociski: 130<br />Używane w: SPMG - Calibre: .338 Norma Magnum AP<br />Cartouches: 130<br />Utilisé dans: SPMG + Calibre: .338 Norma Magnum AP<br />Cartouches: 130<br />Utilisé avec: SPMG Calibre: .338 Norma Magnum AP<br />Balas: 130<br />Se usa en: SPMG Калибр: .338 Norma Magnum бронебойные<br />Патронов: 130<br />Используются с: SPMG @@ -463,7 +463,7 @@ Caliber: 9.3x64mm Tracer<br />Rounds: 10<br />Used in: Cyrus Kaliber: 9,3x64mm Leuchtspur<br />Patronen: 10<br />Eingesetzt von: Cyrus Kaliber: 9,3x64mm Smugacz<br />Pociski: 10<br />Używany w: Cyrus - Calibre: 9.3x64mm Traçante<br />Cartouches: 10<br />Utilisé dans: Cyrus + Calibre: 9.3x64mm Traçante<br />Cartouches: 10<br />Utilisé avec: Cyrus Calibre: 9.3x64mm trazadora<br />Balas: 10<br />Se usa en: Cyrus Калибр: 9,3x64 мм трассирующие<br />Патронов: 10<br />Используются с: Cyrus @@ -488,7 +488,7 @@ Caliber: 9.3x64mm Tracer IR-DIM<br />Rounds: 10<br />Used in: Cyrus Kaliber: 9,3x64mm Leuchtspur IR-DIM<br />Patronen: 10<br />Eingesetzt von: Cyrus Kaliber: 9,3x64mm Smugacz IR-DIM<br />Pociski: 10<br />Używany w: Cyrus - Calibre: 9.3x64mm Traçante IR-DIM<br />Cartouches: 10<br />Utilisé dans: Cyrus + Calibre: 9.3x64mm Traçante IR-DIM<br />Cartouches: 10<br />Utilisé avec: Cyrus Calibre: 9.3x64mm trazadora IR-DIM<br />Balas: 10<br />Se usa en: Cyrus Калибр: 9,3x64 мм ИК-трассирующие<br />Патронов: 10<br />Используются с: Cyrus @@ -514,7 +514,7 @@ Caliber: 9.3x64mm Tracer<br />Rounds: 150<br />Used in: Navid Kaliber: 9,3x64mm Leuchtspur<br />Patronen: 150<br />Eingesetzt von: Navid Kaliber: 9,3x64mm Smugacz<br />Pociski: 150<br />Używane w: Navid - Calibre: 9.3x64mm Traçante<br />Cartouches: 150<br />Utilisé dans: Navid + Calibre: 9.3x64mm Traçante<br />Cartouches: 150<br />Utilisé avec: Navid Calibre: 9.3x64mm trazadora<br />Balas: 150<br />Se usa en: Navid Калибр: 9,3x64 мм трассирующие<br />Патронов: 150<br />Используются с: Навид @@ -539,7 +539,7 @@ Caliber: 9.3x64mm Tracer IR-DIM<br />Rounds: 150<br />Used in: Navid Kaliber: 9,3x64mm Leuchtspur IR-DIM<br />Patronen: 150<br />Eingesetzt von: Navid Kaliber: 9,3x64mm Smugacz IR-DIM<br />Pociski: 150<br />Używane w: Navid - Calibre: 9.3x64mm Traçante IR-DIM<br />Cartouches: 150<br />Utilisé dans: Navid + Calibre: 9.3x64mm Traçante IR-DIM<br />Cartouches: 150<br />Utilisé avec: Navid Calibre: 9.3x64mm trazadora IR-DIM<br />Balas: 150<br />Se usa en: Navid Калибр: 9,3x64 мм ИК-трассирующие<br />Патронов: 150<br />Используются с: Навид @@ -564,7 +564,7 @@ Caliber: 9.3x64mm AP<br />Rounds: 150<br />Used in: Navid Kaliber: 9,3x64mm Hartkern<br />Patronen: 150<br />Eingesetzt von: Navid Kaliber: 9,3x64mm AP<br />Pociski: 150<br />Używane w: Navid - Calibre: 9.3x64mm AP<br />Cartouches: 150<br />Utilisé dans: Navid + Calibre: 9.3x64mm AP<br />Cartouches: 150<br />Utilisé avec: Navid Calibre: 9.3x64mm AP<br />Balas: 150<br />Se usa en: Navid Калибр: 9,3x64 мм бронебойные<br />Патронов: 150<br />Используются с: Навид @@ -587,7 +587,7 @@ 9x19mm 30Rnd Mag Magazynek 9x19mm 16rd - 9x19mm 30Cps + Chargeur 9x19mm 30Cps Cargador de 16 balas de 9x19mm Магазин из 16-ти 9х19 мм 9x19mm 30-Patronen-Magazin @@ -595,7 +595,7 @@ 9x19mm 30Rnd Mag Magazynek 9x19mm 30rd - 9x19mm 30Cps + Chargeur 9x19mm 30Cps Cargador de 30 balas de 9x19mm Магазин из 30-ти 9х19 мм 9x19mm 30-Patronen-Magazin @@ -611,7 +611,7 @@ 9x19mm 30Rnd Mag Magazynek 9x19mm 30rd - 9x19mm 30Cps + Chargeur 9x19mm 30Cps Cargador de 30 balas de 9x19mm Магазин из 30-ти 9х19 мм 9x19mm 30-Patronen-Magazin @@ -659,7 +659,7 @@ 6.5mm 100Rnd Tracer IR-DIM Mag<br />Rounds: 100<br />Used in: MX LSW Magazynek 6,5mm 100rd Smugacz IR-DIM - Chargeur 6.5mm 100Rnd Traçante IR-DIM + Chargeur 6.5mm 100Rnd Traçante IR-DIM<br />Cartouches: 100<br />Utilisé avec: MX LSW Cargador de 100 balas trazadoras IR-DIM de 6.5mm Магазин из 100 6,5 мм ИК-трассирующих 6,5mm 100-Patronen-Magazin IR-DIM Leuchtspur<br />Patronen: 100<br />Eingesetzt von: MXLSW @@ -683,7 +683,7 @@ 6.5mm 200Rnd Tracer IR-DIM Belt<br />Rounds: 200<br />Used in: Stoner 99 LMG Magazynek 6,5mm 200rd Smugacz IR-DIM - Bande 6.5mm 200Cps Traçante IR-DIM + Bande 6.5mm 200Cps Traçante IR-DIM<br />Cartouches: 200<br />Utilisé avec: Stoner 99 LMG Cinta de 200 balas trazadoras IR-DIM de 6.5mm Магазин из 200-т 6,5 мм ИК-трассирующих 6,5mm 200-Patronen-Gurt IR-DIM Leuchtspur<br />Patronen: 200<br />Eingesetzt von: Stoner 99 LMG @@ -715,7 +715,7 @@ 5.56mm 30Rnd Mag (Mk318) Magazynek 5,56mm 30rd (Mk318) - 5.56mm 30Cps (Mk318) + Chargeur 5.56mm 30Cps (Mk318) Cargador de 30 balas de 5.56mm (Mk318) Магазин из 30-ти 5.56 мм (Mk318) 5,56mm 30-Patronen-Magazin (Mk318) @@ -739,7 +739,7 @@ 5.56mm 30Rnd Mag (M995 AP) Magazynek 5,56mm 30rd (M995 AP) - 5.56mm 30Cps (M995 AP) + Chargeur 5.56mm 30Cps (M995 AP) Cargador de 30 balas de 5.56mm (M995 AP) Магазин из 30-ти 5.56 мм (M995 AP) 5,56mm 30-Patronen-Magazin (M995AP) @@ -763,7 +763,7 @@ 7.62mm 10Rnd Mag (M118LR) Magazynek 7,62mm 10rd (M118LR) - 7.62mm 10Cps (M118LR) + Chargeur 7.62mm 10Cps (M118LR) Cargador de 10 balas de 7.62mm (M118LR) Магазин из 10-ти 7,62 мм (M118LR) 7,62mm 10-Patronen-Magazin (M118LR) @@ -787,7 +787,7 @@ 7.62mm 20Rnd Mag (M118LR) Magazynek 7,62mm 20rd (M118LR) - 7.62mm 20Cps (M118LR) + Chargeur 7.62mm 20Cps (M118LR) Cargador de 20 balas de 7.62mm (M118LR) Магазин из 20-ти 7,62 мм (M118LR) 7,62mm 20-Patronen-Magazin (M118LR) @@ -811,7 +811,7 @@ 7.62mm 10Rnd Mag (Mk316 Mod 0) Magazynek 7,62mm 10rd (Mk316 Mod 0) - 7.62mm 10Cps (Mk316 Mod 0) + Chargeur 7.62mm 10Cps (Mk316 Mod 0) Cargador de 10 balas de 7.62mm (Mk316 Mod 0) Магазин из 10-ти 7,62 мм (Mk316 Mod 0) 7,62mm 10-Patronen-Magazin (Mk316 Mod 0) @@ -835,7 +835,7 @@ 7.62mm 20Rnd Mag (Mk316 Mod 0) Magazynek 7,62mm 20rd (Mk316 Mod 0) - 7.62mm 20Cps (Mk316 Mod 0) + Chargeur 7.62mm 20Cps (Mk316 Mod 0) Cargador de 20 balas de 7.62mm (Mk316 Mod 0) Магазин из 20-ти 7,62 мм (Mk316 Mod 0) 7,62mm 20-Patronen-Magazin (Mk316 Mod 0) @@ -859,7 +859,7 @@ 7.62mm 10Rnd Mag (Mk319 Mod 0) Magazynek 7,62mm 10rd (Mk319 Mod 0) - 7.62mm 10Cps (Mk319 Mod 0) + Chargeur 7.62mm 10Cps (Mk319 Mod 0) Cargador de 10 balas de 7.62mm (Mk319 Mod 0) Магазин из 10-ти 7,62 мм (Mk319 Mod 0) 7,62mm 10-Patronen-Magazin (Mk319 Mod 0) @@ -883,7 +883,7 @@ 7.62mm 20Rnd Mag (Mk319 Mod 0) Magazynek 7,62mm 20rd (Mk319 Mod 0) - 7.62mm 20Cps (Mk319 Mod 0) + Chargeur 7.62mm 20Cps (Mk319 Mod 0) Cargador de 20 balas de 7.62mm (Mk319 Mod 0) Магазин из 20-ти 7,62 мм (Mk319 Mod 0) 7,62mm 20-Patronen-Magazin (Mk319 Mod 0) @@ -907,7 +907,7 @@ 7.62mm 10Rnd Mag (M993 AP) Magazynek 7,62mm 10rd (M993 AP) - 7.62mm 10Cps (M993 AP) + Chargeur 7.62mm 10Cps (M993 AP) Cargador de 10 balas de 7.62mm (M993 AP) Магазин из 10-ти 7,62 мм (M993 AP) 7,62mm 10-Patronen-Magazin (M993 AP) @@ -931,7 +931,7 @@ 7.62mm 20Rnd Mag (M993 AP) Magazynek 7,62mm 20rd (M993 AP) - 7.62mm 20Cps (M993 AP) + Chargeur 7.62mm 20Cps (M993 AP) Cargador de 20 balas de 7.62mm (M993 AP) Магазин из 20-ти 7,62 мм (M993 AP) 7,62mm 20-Patronen-Magazin (M993 AP) @@ -955,7 +955,7 @@ 7.62mm 20Rnd Mag (Mk248 Mod 0) Magazynek 7,62mm 20rd (Mk248 Mod 0) - 7.62mm 20Cps (Mk248 Mod 0) + Chargeur 7.62mm 20Cps (Mk248 Mod 0) Cargador de 20 balas de 7.62mm (Mk248 Mod 0) Магазин из 20-ти 7,62 мм (Mk248 Mod 0) 7,62mm 20-Patronen-Magazin (Mk248 Mod 0) @@ -979,7 +979,7 @@ 7.62mm 20Rnd Mag (Mk248 Mod 1) Magazynek 7,62mm 20rd (Mk248 Mod 1) - 7.62mm 20Cps (Mk248 Mod 1) + Chargeur 7.62mm 20Cps (Mk248 Mod 1) Cargador de 20 balas de 7.62mm (Mk248 Mod 1) Магазин из 20-ти 7,62 мм (Mk248 Mod 1) 7,62mm 20-Patronen-Magazin (Mk248 Mod 1) @@ -1003,7 +1003,7 @@ 7.62mm 20Rnd Mag (Berger Hybrid OTM) Magazynek 7,62mm 20rd (Berger Hybrid OTM) - 7.62 20Cps (Berger Hybrid OTM) + Chargeur 7.62 20Cps (Berger Hybrid OTM) Cargador de 20 balas de 7.62mm (Berger Hybrid OTM) Магазин из 20-ти 7,62 мм (Berger Hybrid OTM) 7,62mm 20-Patronen-Magazin (Berger Hybrid OTM) @@ -1026,7 +1026,7 @@ 6.5x47mm 30Rnd Mag (HPBT Scenar) - 6.5x47mm 30Cps (HPBT Scenar) + Chargeur 6.5x47mm 30Cps (HPBT Scenar) Cargador de 30 balas de 6.5x47mm (HPBT Scenar) Magazynek 6,5x47mm 30rd (HPBT Scenar) Магазин из 30-ти 6,5x47 мм (HPBT Scenar) @@ -1052,6 +1052,7 @@ 6.5mm Creedmor 30Rnd Mag Magazynek 6,5mm Creedmor 30rd 6,5mm Creedmor 30-Patronen-Magazin + Chargeur 6.5mm Creedmor 30Cps 6.5mm CM @@ -1065,10 +1066,11 @@ Caliber: 6.5x47mm Creedmor<br />Rounds: 30<br />Used in: MXM Kaliber: 6,5x47mm Creedmor<br />Pociski: 30<br />Używany w: MXM Kaliber: 6,5x47mm Creedmor<br />Patronen: 30<br />Eingesetzt von: MXM + Calibre: 6.5x47mm Creedmor <br />Cartouches: 30<br />Utilisé avec: MXM .338 10Rnd Mag (300gr Sierra MatchKing HPBT) - .338 10 Cps (300gr Sierra MatchKing HPBT) + Chargeur .338 10 Cps (300gr Sierra MatchKing HPBT) Cargador de 10 balas de 8.6x70mm (300gr Sierra MatchKing HPBT) Magazynek .338 10rd (300gr Sierra MatchKing HPBT) Магазин из 10-ти .338 (300 гран Sierra MatchKing HPBT) @@ -1092,7 +1094,7 @@ .338 10Rnd Mag (API526) - .338 10Cps (API526) + Chargeur .338 10Cps (API526) Cargador de 10 balas de .338 (API526) Magazynek .338 10rd (API526) Магазин из 10-ти .338 (API526) @@ -1116,7 +1118,7 @@ 12.7x99mm 5Rnd Mag - 12.7x99mm 5Cps + Chargeur 12.7x99mm 5Cps Cargador de 5 balas de 12.7x99mm Magazynek 12,7x99mm 5rd Магазин из 5-ти 12,7x99 мм @@ -1140,7 +1142,7 @@ 12.7x99mm API 5Rnd Mag - 12.7x99mm API 5Cps + Chargeur 12.7x99mm API 5Cps Cargador de 5 balas de 12.7x99mm API Magazynek 12,7x99mm API 5rd 12,7x99mm 5-Patronen-Magazin (API) @@ -1161,7 +1163,7 @@ 12.7x99mm 5Rnd Mag (AMAX) - 12.7x99mm 5Rnd Mag (AMAX) + Chargeur 12.7x99mm 5Rnd Mag (AMAX) Cargador de 5 balas de 12.7x99mm (AMAX) Magazynek 12,7x99mm 5rd (AMAX) Магазин из 5-ти 12,7x99 мм (A-MAX) @@ -1184,4 +1186,4 @@ Kaliber:12,7x99mm (AMAX)<br />Patronen: 5 - \ No newline at end of file + From 989332831f582e8dc351960730a6bfdc909e59b0 Mon Sep 17 00:00:00 2001 From: ulteq Date: Wed, 29 Apr 2015 17:42:37 +0200 Subject: [PATCH 245/256] Added frag configs for 82mm and 155mm shells --- addons/frag/CfgAmmo.hpp | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/addons/frag/CfgAmmo.hpp b/addons/frag/CfgAmmo.hpp index 3cfb27dfaf..3db80f0395 100644 --- a/addons/frag/CfgAmmo.hpp +++ b/addons/frag/CfgAmmo.hpp @@ -98,7 +98,14 @@ class CfgAmmo { }; // curator ammo entries - class Sh_82mm_AMOS; + class ShellBase; + class Sh_82mm_AMOS : ShellBase { + // Source: http://www.arsenal-bg.com/defense_police/mortar_bombs_82mm.htm + GVAR(metal) = 3200; + GVAR(charge) = 420; + GVAR(gurney_c) = 1906; + GVAR(gurney_k) = 1/2; + }; class ModuleOrdnanceMortar_F_Ammo: Sh_82mm_AMOS { GVAR(classes)[] = {"ACE_frag_medium", "ACE_frag_medium_HD"}; GVAR(metal) = 800; @@ -107,7 +114,14 @@ class CfgAmmo { GVAR(gurney_k) = 1/2; }; - class Sh_155mm_AMOS; + class Sh_155mm_AMOS: ShellBase { + // Source: http://www.globalsecurity.org/military/systems/munitions/m795.htm + GVAR(classes)[] = {"ACE_frag_large", "ACE_frag_large", "ACE_frag_large_HD", "ACE_frag_large", "ACE_frag_huge", "ACE_frag_huge_HD", "ACE_frag_huge"}; + GVAR(metal) = 36000; + GVAR(charge) = 9979; + GVAR(gurney_c) = 1906; + GVAR(gurney_k) = 1/2; + }; class ModuleOrdnanceHowitzer_F_ammo: Sh_155mm_AMOS { GVAR(classes)[] = {"ACE_frag_large", "ACE_frag_large", "ACE_frag_large_HD", "ACE_frag_large", "ACE_frag_huge", "ACE_frag_huge_HD", "ACE_frag_huge"}; GVAR(metal) = 1950; From 00dc0ef01eedc4e6abc0f87e2f3667cade66cb35 Mon Sep 17 00:00:00 2001 From: ulteq Date: Wed, 29 Apr 2015 17:48:19 +0200 Subject: [PATCH 246/256] Added frag classes array for 82mm shell --- addons/frag/CfgAmmo.hpp | 1 + 1 file changed, 1 insertion(+) diff --git a/addons/frag/CfgAmmo.hpp b/addons/frag/CfgAmmo.hpp index 3db80f0395..726c7e5b57 100644 --- a/addons/frag/CfgAmmo.hpp +++ b/addons/frag/CfgAmmo.hpp @@ -101,6 +101,7 @@ class CfgAmmo { class ShellBase; class Sh_82mm_AMOS : ShellBase { // Source: http://www.arsenal-bg.com/defense_police/mortar_bombs_82mm.htm + GVAR(classes)[] = {"ACE_frag_medium", "ACE_frag_medium_HD"}; GVAR(metal) = 3200; GVAR(charge) = 420; GVAR(gurney_c) = 1906; From 608af39a675b7ef68e859da743954aee3eb12ab2 Mon Sep 17 00:00:00 2001 From: ulteq Date: Wed, 29 Apr 2015 21:22:07 +0200 Subject: [PATCH 247/256] Added proper dummy object cleanup code --- addons/explosives/functions/fnc_detonateExplosive.sqf | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/addons/explosives/functions/fnc_detonateExplosive.sqf b/addons/explosives/functions/fnc_detonateExplosive.sqf index f79f38ae1e..917c874af6 100644 --- a/addons/explosives/functions/fnc_detonateExplosive.sqf +++ b/addons/explosives/functions/fnc_detonateExplosive.sqf @@ -19,13 +19,19 @@ * Public: Yes */ #include "script_component.hpp" -private ["_result", "_ignoreRange", "_pos"]; +private ["_result", "_ignoreRange", "_helpers", "_pos"]; EXPLODE_3_PVT(_this,_unit,_range,_item); _ignoreRange = (_range == -1); _result = true; if (!_ignoreRange && {(_unit distance (_item select 0)) > _range}) exitWith {false}; +_helpers = attachedObjects (_item select 0); +{ + detach _x; + deleteVehicle _x; +} forEach _helpers; + if (getNumber (ConfigFile >> "CfgAmmo" >> typeof (_item select 0) >> "TriggerWhenDestroyed") == 0) then { private ["_exp", "_previousExp"]; _previousExp = _item select 0; From 87465b8b102d374f4465cd79520d4e4ad6fae487 Mon Sep 17 00:00:00 2001 From: Glowbal Date: Wed, 29 Apr 2015 21:49:24 +0200 Subject: [PATCH 248/256] fixes #829 --- addons/medical/functions/fnc_handleDamage.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/medical/functions/fnc_handleDamage.sqf b/addons/medical/functions/fnc_handleDamage.sqf index a8dddcadc8..a989513580 100644 --- a/addons/medical/functions/fnc_handleDamage.sqf +++ b/addons/medical/functions/fnc_handleDamage.sqf @@ -63,7 +63,7 @@ if (GVAR(level) >= 2) then { }; }; - if ((_minLethalDamage <= _newDamage) && {[_unit, [_selection] call FUNC(selectionNameToNumber), _newDamage] call FUNC(determineIfFatal)}) then { + if ((_minLethalDamage <= _newDamage) && {[_unit, [_selection] call FUNC(selectionNameToNumber), _newDamage] call FUNC(determineIfFatal)} || !alive vehicle _unit) then { if ([_unit] call FUNC(setDead)) then { _damageReturn = 1; } else { From fce91279b575c09251e739a133feae95bb175ea1 Mon Sep 17 00:00:00 2001 From: bux578 Date: Wed, 29 Apr 2015 22:04:17 +0200 Subject: [PATCH 249/256] add ace3 and banana insignia `[this,"ACE_insignia_logo"] call BIS_fnc_setUnitInsignia;` and `[this,"ACE_insignia_banana"] call BIS_fnc_setUnitInsignia;` --- addons/common/CfgUnitInsignia.hpp | 14 ++++++++++---- addons/common/data/ace3logo_ca.paa | Bin 22016 -> 0 bytes addons/common/data/insignia_ace3logo_ca.paa | Bin 0 -> 33382 bytes addons/common/data/insignia_banana_ca.paa | Bin 0 -> 36279 bytes 4 files changed, 10 insertions(+), 4 deletions(-) delete mode 100644 addons/common/data/ace3logo_ca.paa create mode 100644 addons/common/data/insignia_ace3logo_ca.paa create mode 100644 addons/common/data/insignia_banana_ca.paa diff --git a/addons/common/CfgUnitInsignia.hpp b/addons/common/CfgUnitInsignia.hpp index c12c17c0c0..aba82823c9 100644 --- a/addons/common/CfgUnitInsignia.hpp +++ b/addons/common/CfgUnitInsignia.hpp @@ -1,9 +1,15 @@ class CfgUnitInsignia { - class ACE_insignia { - displayName = "ACE 3"; - author = "kripto202"; - texture = PATHTOF(data\ace3logo_ca.paa); + class ACE_insignia_logo { + displayName = "ACE3"; + author = "$STR_ACE_Common_ACETeam"; + texture = PATHTOF(data\Insignia_ace3logo_ca.paa); + textureVehicle = ""; + }; + class ACE_insignia_banana { + displayName = "ABE3"; + author = "$STR_ACE_Common_ACETeam"; + texture = PATHTOF(data\insignia_banana_ca.paa); textureVehicle = ""; }; }; diff --git a/addons/common/data/ace3logo_ca.paa b/addons/common/data/ace3logo_ca.paa deleted file mode 100644 index d3e6e20c7b3d08d692565170b06d6824e09d82c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22016 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 B%1ZzM diff --git a/addons/common/data/insignia_ace3logo_ca.paa b/addons/common/data/insignia_ace3logo_ca.paa new file mode 100644 index 0000000000000000000000000000000000000000..04640aa187fdd60644c9daebc8e9547f13ada719 GIT binary patch literal 33382 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 YK%SXr3*fJL@+Gc0)8PZ6pELJA0B578h5!Hn literal 0 HcmV?d00001 diff --git a/addons/common/data/insignia_banana_ca.paa b/addons/common/data/insignia_banana_ca.paa new file mode 100644 index 0000000000000000000000000000000000000000..5302ac07adaa39707d5841de87990bac5d244160 GIT binary patch literal 36279 zcmeFa3s@7^_9#AkCV?P?1T4phRx$z1%mjg0QP4mFR9mnrr9`NWJVNyx<)~PXZLJ9j z38nRItyJ4uA7It`uC3JC@DQrjTC^|J`al62tk$6QL6u47uF)pi-*?YF=Y046|F_@$ zbv`95_GD((W3RoQdxYE*Po(CgKQS>?fMHnjw))Zc;JnmvJj}tt!%w6>HHL=~{O93k z#*CSugWs+2e?%gNrM!$`qhH6crxs(_GfOb+9r*um9_1L?Jpv2G4q#j=hS3-%zxTzz zq+l~jp2hU?X(`yYNiiwd;UxGmRUMOzZ5~pFZOwibYo(I0E;G>v9}CUIOG7jm?Z%Fp zC3C41OhCqzVVyGg3Y}>}0mHD26;T;01RN(Z8Ia%P&%dgjai;cBTxljwzbIUu6->Ob z*o>I9LR(ZYq2DnXA$W>sS&49A_Go%*VzGkKU__<5cN3@fpp48Q0?q1~6X`*sw4erb z#GwoKASx~BF#2hqbs*)yh-O*f{;iL&NH{I?qC9rrf?CRi;E#Q5i{61hPS4(?-p_pS zs|Rh(4(dg{AMGo+fBnM1ZSy@Ss8}FJ-Ce(KW;7U@HsVDgWg(_zhUqZIBh~4sI%1lk zKbm@RBJIOP{SMituivtAH0=IvA95#Hn4MF!}hc0z~l3~ zlFS9S5?<}8op!PJAM=Q=q#sN3^|xZC8At)P)so8{Xj~fn^x~lBFkE|5ub(L=pPA=6-!XGu*-} zKWAl!OaxkR7aLqE4)}$8VI`HOZ{5Q69b78V?qiJCA?SnUOvZzlKStC;oV2Y=&=B{hU_np01ARrQ|TJ_j- z*#s`l?<=h!6XighOpV-h4yC{K%qm9nC`w&x+{L53NqxEZ>Tn)AQJULuBbIRtLRII_ zou$}dVygP*OR@|6Z=JIJ3wD3WpA}6{I(WjxldV}+7<6eV!^+Wx!Kb$I*BVV5H%E#o z4FbaN7}xwhWx{}oL$^xa2MNgl2{Fai6XH_^FAe|OMU%xZC+DK6&w0OH?0Dkam1ABs zYx$me8dl{7?U(0acEoZ@Haku^vs9iGm1Jj5x@~Zh_P_`;iOZl zyDhvFTobYx`~|v_Uf7X8g@5EJ^uodW`cUj3_?u_*FJd0W^97w(7&Zxs4O)8VWbAulhko%6*9;H|WS6$T7c7<`s19mNW ziP#+<;NMhj1?1bY>R+;5KP~p%tU*r2_KVH*(x)iouK_$%Yl3qq?{| z5nA`D-nJ-G-CjiWlUA>>m1>m#;6Wk`+hL$Xq@z1za)_$D-OkF&(m`RrA(ORiu zPSl!m^w@@VW`##<=nhh$SBJcRi`NXS#PlNyYRH?yXd;k#$ERk-5sVV@XWeB?7}{uh z^}HKhF__Vat%u4OO)Aoq`v1a{RFw8saoi+$lo=(Plejy>Utt=g=QqSElS8(Wnk?k# zJ+%*nr{K=V-wuV-g_Y{7uN1Exbj@M*Upl8qG-PSVuiOoXnIO8O>D*k33$AgMtK7l% zGIL|8vQE-$K+oF6@I`bW6=94+LZmw@Wf>WiDV`wON;cJh#y>-6Ys}D^O2&bqgOBu| zL8YMbq}0Var5kGr;)tAFy)tauLo5iXZ z7)J`)8o23iyj*rAjk~q_Dlhk&)LUcE&*1Mfg|;nkWGHxwO7*t3Wg{pDuL9zJJ(37d zhT;rIKc!4^7#neVnS(JQRDU^Ow~CeHcQ%{kH|otZN`eB3h}VoSb2qm>ujmPm(Ce9c z2~Nh;OFHCaQrtujBDxFARnY-d8CEoZbO6q9w(Nw1jfb;md&c)Jno+pkE zD-!v6lkR-2AxQ`vXmT~nO7jd8DMtvAs-Dtvz{Y5F7_JB;$;hu>bN{f+eU#%isl{S3 zFW?z&$@BvAu3whWj+rnsm3NQj!EKvmljmIG6dIC z#Hi{ew4;;)cZ( z&)Z7b{;@QR@V4s{s8eoK9GR@vDeJS0P6>80ELv$I4HEpI&MI2(K^>`2t;LWhCnw^D z)_u})t$^b$$`cY=TY0=$iNZ7<$z?YPMw?O;)uc4d6jEuVsGPzv#)8pnGL>%2)&hI% z*_ohcrWpvd|Ld0Tc}g5kid}N`DC1D0yUkZDj7E;XvSiiZ@MurUM{E2Ct~xkd+zWzD zbh@Uh3-pX-AH9v z3Hos9>xrP9(VCIzJNf$>4>t9o(%eWvZhYfecNJq!4Nw7@Bb~@EO6dtXU=(9Hz-TTP z!{r%RC3*4HJPR+_Zb?SLoL8fQ-5nBe?0+d^gp(ZF-g!f%2xt;eOxV# zWJ))kNR~b9=h_+14L4rgIcGFo zknqx&R(8(W$xfzWVg@4oixk`%`C#KVNx@<->L8xexi*jABc4$zG5LSLLE!jFQD9m zDkc77mT%!Po~l0d<^Es!TW*>3!zNgtFuy$|^!}jrwKE3P7TK7LE3567J`Tf{->Jcm8Yf{G=bj$)Nk6QN-9 zk>g6ek=M{&Nx9vQ8$7Qo)vs*Zk`50b>`MAa#@Ux97AhP^1B*K~U0_Y>s}4^2>#=2j z7Yn5o(ew=yFtkh(7R}TLk@T}aWhu=OZ4&>9`Y_sKCbMI;GsmQ?R+%Jd|7_*Qj6;lK zzi!#YXo6Aa;>3?AlaA;(x4&dUiqe8P%cZzbID#=1prJ=%;wcZhAZO|#aI#E0aTR68 zn+$HgSAqa}jYAU8M!>@BzxvIeDNx3TlTxxis0Vd~QVJ!@88(IJ_vVnhcz&6= zXp{*_em2%6u08+aO!h9vtytNWR192=5LDkDO}B;#X~ztMnNAiP4IF8HFN|_)>_Z$& zfN3G)HZG1yDI3?#n1-OvO;jkOjazl+Dy4}v%t4hgpTUIK=RR*(571 z&B}u(7Iw;h?kF~@UsX8b{KaS9K9(wqel>suT)_fUaCK341C^$w3hnZ!jt^+|oN$x+ z?Y23yA6cH|4t#N@J7DqQq_C5JeU7`1>gTmhjdA1~N|?HmCel*ZSeT`B4{QRv1|&u! z2h*_Q-0CZv-eI(osQopxW+qIo35!R5q_T{kHYP@;l@C_(5Z;4tSV_sVhUP-~+ z(!xTehwSu_mYL${1j>|xill}tN>e~KEEVbZ!Y_D@>wtU+lQPtW#=lgWOPjG&G#V+B zr8YwZVaS;{QE?D36ZJ+^s>`KYw@PE;q8)L<!oFOJXje{xMQVaTOTaky(L9WACB0&83wRE}-P=!CF9 znE@|hOa@`|?WWeB7BgEJE;#YV1ezU(N46au_7Oi@-#qGfO2sV=P2H&C##O|3Qtn67 zLa$*Im(qPvF6@~|Ya;M!SweJx(t|5{$cE!N6HihNc)N@cs|pz|w9ufZ*a+O&A+HiL z?AHjbw2CN}!2Dj%wn=aH*15xPa@W7(*i#F$adPj7=sI?Yu(vI~VszBV4*}2TV2%pN ztcCl)1B}4%Uxd?-gzkKCrsvmnoT&JstfbRa1_rJ(h8?6Z%}4K8b_}AE3uMo_b13&f z6l0Q-npmXR@NqT2dZxc7tGTz56fYglSR#%M3sGq%qmPa*mh!WrqctcoJ(&OPz#^My zJt!5D!0FP7twU%nP9_8}YzWCsur|I-nF#R4s=^WyC@r`^c?ipbMHfjE!~rxrn`mwg zj@@0(IO52CTBSo8v^l9$HhbqR&%j&D+&`>))bJMSO4aM7$chW!KCyGomjdac`(lgv zP0Ng?Z%<#k{gK+*zjnUpa=$(w?8oDOeMV(oqK9S3E^aWYO!G-o%;dioGIeK9iUO6a zR;b`2ojohh%z*WNDEBv&qYllEy4%iJ%2pf{(57>+^i}MevlK*i%%E*5ZTvIS9;Y0o zAjY$_^$RHTpr()mv5ho0zFlsm*+D4nV5eO4n9?K>8aEPTm|p)ZZ#Eo|73%DW;f!Ko zw951}`YOJBF=N6&_2f~e229W?cg{)a`U-pU+o*9JQ5@%=78VxfuVf{HW3v}$4(vPt zC_e3$EDgg4K2<`p<1w`P?2xfv99zcS;keC{F3Rq*ugquIe8xSf*)R*aLR$t?$t@dH zrlY2EGRcIiv@=&XD|zOPn!flkiv2qnGR~jhodq~=9jl>1Sx2^QTG3v?G>DJJQj|kl zV3AF$1j}0BvL-d=oy90tjhbcpA&mCxqDjD~6oTk!lI7)54h7M9yIo$?Ou6w6vf)Fq zPzk!I(QvjIO2_!AMgL>aX>eljR-o8;Xh*%Hn8|{nw{?fpS=&6e69*~dWba;Z@Y5Q@eX4; zN1C)sw;`>dX=xFRtbn`(d3&qj=HneLgaY4|sH*3z8lP=I!|O7^)Mv zd3{+F@Btmue0Z3*N@^Cygo5=g2~SsXS*fwxmC2}+G_|3(_eM+Hh$OX-Wft9hg{eC@SFhM?VGmo}&8S33 zp8WBk6t^nS;Ut7Wh~tE9J;&zPf7h~!=P)Y~hu1p0*gIi4fAwS+iS36yubIzKY2{LhB(P<;#!on)YetFmN^Bw^np!7`BS9exGL{QGT(vCHedL2JUkj&X z*GMmUEEcNlsq!Rp-lAs8@h&)idEh+5T0&}cv`Gt^Uy-e&HA95OPMoaDHDuAOL6Q7- zv8sW!(Ki`x(9q@zS~CIM@rwAG#k`?Z6uj1`vJ|E*)9|68!I~d-@Dt&i(I5AxO?VtT zn@swU0KG*zVrkO^L0a4AvVu9V(q1U=4-h6OHRnOScbtnFdF3mrLE0>XdpC$i(>AH` zYiEh{v)3Y1c5R*%^c=ccGkx7~lb_JgwPenXBT*}OG+9Z|sMEDY1BM$TIj&f()0Hag z1G|zWo99ozt8|PL5MAx^v={PdwvKFQnfzQHl_IW|fjp}kK3kr?U0KH3ox%P(D_Azd zw6;!}FkuzwWvra6JVVJC7Qzvg%x)F8_}wEFjCNi3;O|u0<3o>Zq%|(0x@G4U#dxYN z_yAe2__7#6xDXPYSd}1V8n6v9>y`CI)wjvyQgDFtYn+l^u~66#NjeO#qKSsALKXWM zt?3(T4IxUivhq5vDNGhjbR*(DuKp?bvk<4-Ek5&lc9SgXqfxI@DSn&OQruzj z!`|!JIcMC*qi)TO))tJ0OG@ zm6un_)W1s*F<=IL`eo24SVzC=o2oRkHbW=ME7e(*EGFPK$ZpJ=F@%cZ2jX-P z0I&NdT8B{|1JOl?rR10C2l^d|Nei(WP*((Zl`=g_kfNT6hCHUBFd#q- zp(_QcEjNGiiBeN8G&(QHML~XpX-7Bi96wk)l(K|Gk*7rGX*M6Mx)I>NfHE6Dd;sGJ zMKLSJ_MtsUt)m@f3eU{wXqt^6SsilL-x*7r*5R_O(!xf{vRgnJ$dt!Nw~&qrNb7E1 zP~Z*=tD_xps0%{7(vUP8MCLeDTmQxrfa+L}q)-Yzog(FOSOQhQsMAHJIP%_7*3V4u zk(>{(6)NlBvpXe{yw(6E8wld66Gi{!dp)g?xR!!`5%x2yTACUki1Oj9UX% zKg7QlPsixGwL}OJryK$5yG*F)={&b%aQG{fqYTW1oPV773+;Ai$Cx(2k~?pg<_2Ra zm!<|Q-SKv^Y+Yd~r5Pq{pKh17OfE>K%g)OJXiXL@0ZrR8w`^&m99oPhk`Ad}U;XH< z2KHzJ+c+&dl725NfvzhMDe5f3M6i$IE4KG7ISe>H<&Kas9*M1`;7(XoE5#1Pb)vz8 zqbN;2a;}%fJZ_^Lrl(HO>@I2za?g;HDRl`|jOFb9lB-I#KoH3(>c($XDNSDqQxDe2 z_MUv}5z6v(jm)Tnw94~65^nMfFDNxjg^@i)lRAo0A#N*$*lWLpXd&Z3Xie{|T1Kl_ zw(*A2VV(SDDq{*!lv(l&RM|7lZ6T?60%azeNmB>;sp46%|G=WKH8mM2M*#$8q#L$f zzM$K)%zbK?8SFrUe7{ae*GXtEf|3eZ(cyvjnTU~qp;c<&Xw58zIgY{hDU+=Va?}1C zePX?2e_LNHP-)(AVzRJROc)qP3pp=dNV&zt7(e7-v^!Ux&7(C6qGP&lJqA`qQJ6A_ z_GC#L>Ex^S$w&;UN1-`@_8hI)L%Aj8V+KNqO&X=>r9$gc1(&}aLbGMF ze@vASsk1Eo(sn7jB@!c0$0WdnQ`J$V<<)VQH0iIIPj7ag3M$4)<&sb7sk|{-{rBvOyPSP<1;dn~@jGdq+(bM=OPjdcQi zrCoX}H(FVr61kGB+Xd@vmcTf_Mml$LuF|9s_BspI9h3KNrA+CBA6akUW3I*u3?$j*p;9_K5W0!6XVh9_5A8M zs_Tkz6EpJYeOv``wZn}ykZl-bxOR=IFCnuhTdF9q$(vnGt$0xN20l0^nwXb0X*erM zNx_Xb6^7$sbT3jC+zT~J7?9ppJN>PsPE{v@)<5=W9SiO@;U{{?m#VFkQ4C~ z=3k(+2;y>+Eq8%B=_FU~)?Zd?B!c4k&9aF@D5`Ewo20wy6)WwSL$puVAu)JZMP$SB zTtg{k8b)-;8k>*&2>uiDKk!i-!rsBS)BnC6yXmrklPx_B7wQ5TBdK!=bfF4EgNKJ-3wI^Y9t#bgq<`{ zY!=b+arHuK167ZVY9{5)Ca2^^t9~Mw(xKQo45yi0-7$M!GehA1)For5d_((BZZvQ)iS+P*lWs~Oa#W6l|I+_lP?!!AO#QwIub-llW_k_Chj$M-C zjS<5AZ8fqH6ej1h+MTjeU1KA~EgMZEDXx=4>TZ21*2ixkqxq0=zc7_#<1n;!=e~FM z?0wCA>NWSNjLZ(%kb`?8(jW~UVo3+|d2q znpTw-o4Z4=O2KOP0zm}k?!;qzF9((q9ag4{f3L@%T{|d3 z=|S+@O-M3>Zvc-o@5K7`pz~M^fBQtCFgtg4 zV_~!-8>DQ5?Ca9PbebKCq*jbjmf6WU3X={^%o(vai$hxWsNWOjBg{gjWg0aM7j?pmtB`u2&a zH7`NLu&p;q`Mp4B=gOr=7A#l*Zf!_;x|lMp$E&w@$|mM3NB<+s5|Y}zkmS~_dp{av zA^{?|Z@lp_cs&rfWl~Ce+dz?3zEeH+KB|5C{Os&@kC}Oq<8&ee&2BH7A05rGD#(gv z=^Cw40-Y1mW!Q;>K^XEM{=I?G6p~e%$&_PA0XnI-LqKQpT%4*eoZJ(9e0@HZTxQNk z*di&y^9OVV6M3!R7)};wx~rx7d@DG`WQwH~^7UldorIH=yZtoD=99_BDk=qUl1d3% z_Wl!wK)UV?1!*!envcQ2*dSZbT$sm{%@zkpQQ9L#8x0F26DQ_oU$;OWij8<3OoVf- z37`)`iCe4pFX?Bkiq({cVsfO}le+OfiozLdUYyxEd}e2v1{0041@aZvpqZDf` zfF#f+~6{z4=|FK=kZ^BF@{Rc+AI~|#(`a-PoASZ z8}_$}yTBTjbdn7hMu?l0?!Gmor!(&@SRcM2nznD)3K7QSYgtkp*(3YwN(JU=#f6*; z>sxiPD?}H9p`FLuKG7|z6`$Gr=$WIFnv!0xiS1|oJ~X|mVc50^D?zda_@vNgzjz*L zk3>{NaG%u{g&z2nCP$WHO-~^1&a#|dh_OQWpVqcy;soUwYciu#rG-|&8pEY1bzGzc z+p6a%)7SsNC@t3P+A#U0I@(mIs9%fUfv86-4DsQ5)e&|JKXww@;uwe+iU2f`} zCch-?C&~rolMfC)_(H-?58f8HGaPajL1b{& zL<4OK#*5}-I3X1@YceDQAuvdq)*IZlc{w=1YZEHL^)t z^C-`R>J~A9qq7*JUH*!G2+i%TPKuWK5fi>jS)tP4NILHGHI#)^(51BLV}n>xtzI5c3e&v`gRQI&RkeBt?KF~?rEp1fhXgW@LOX<)KXs%*jSPPmDcg;Vr zean5cJV@~w`B>?TGjD|2upBU40z=ar5JYxZ`lb&G-X7D@k6OVmj&Vx^(JU!h~x#Gao6$&N@mxf zIgA5Rrm2fIf;K`?Z(cnP^tiq-s$cnsHlPrr$q6YZWzY5xV6HJGn&PM=G%%jBDtMrN0Fsvv}R4LLvAWY6`GDE@I2(r z*JXnA*d>}hv`KhV7oSkTC;#jA-JOaij-)~2GjDL`SU7hE`E{@0vQU?p(IkY z!nEA)J88ve`q`Foqj~E6y+k0bS$H3v0RPh3;sH<^31)9N7AyJ zUB&@HP;PF{M3p%L0&W9C(4%iMCI?Y-J5`iWMQd~+>A@fGD^Y58g<7>}r^8AzCMd;_ z6+OY{lA9|MhcYHH8a8{$TYUU(oW?i~3O?F*#Q^ppP3ylsqH2gp7lbM`4dM3up;w>i zhhC@#>#}yFrG;_p(rEDgLUbRIcOp+RY&x2@(Q%j2;-T}NP?~m!G}hp4n+M&2@~rP5 zQi4y+F@!Hsm`X)AxIHUJ(+RCrt%IUXrI1)zGAHqu1O9-fk<|`K!3MqljOAFjTVYyn zu*4?o5*T(Y3YHdaXFLNZ8l(`?MmCpG#F*Bb=Aw^nw2Oc6f!7bkGWEg7V<=OqsRX@J zGWc7l(pw%Azd$C?VW_V5<_ci$fUB8GO>C&ngAUzYF^!K9>~B}Dhk@YuBQm@(4zv;( z1c_hvn-EM6CT<$CJLOocme`XKMLR-6?5V$ujiTz(szb0GDw#Y?no0xS`((shV;Xlq zdIrjH6q?=WvnxB20hQTc#XfiR#hE?BXO1#i$V83O)5q2l+z?g;8c9Rg4sO|c`2$)j zmzV0K2%$96v?RoB%B3t=({@aXm+P9#W_MOfaowzt^zNJ2oqQnu#-Z(fK^XB9iPf19 zZcE16DCfMd z!9K>mTe1@Jkalttksq~Lo8EsK!>p`Fax>dJx3soP{DGM>jB`}t(o%^RNlh-yI%F)EU!bV2x zM#3;as3XP=ogh8qx&CGC&RCu*dRPChx8DhqCw z0bO^)D$vooX!!oijC)|N6i-FPq+n4sJ>%Wp4blrF&4?lVgbaA zk1mygmjY|S$azi+ zhcRp@nzkurze@YayHHi5DSFl)BHHnR)zTEz{v9cw!kT7bEedVCI3eL4cGjV+Bm@n~ zVo`W=LG0FT5!mr?%!3J1S0Cyne!M#i3~wlS#IRn+?Yv8#D3e^+r^F`hXFhKpu8}IV zS))Gjfc}@1l^5C=i##A2EC-@qF-Iiz)6GWBi>2Eb?bGq?$7og;V!uG`Ne2(%+Yc&K zj`3*N+eJ#gAgSi_#AZO}-J;iI$eKk0f{VArr!tn%v_6!wY(3u7A8V&Ia-znS1~s1y zYlqn=J+L^D)(G%(6>_`}Oq?dNw>^*hB`QT8RNP>ggJJPJG06iOl-|29eR+| zr?m3TNm>2&F#~nW&@aPVC^w=*(%*e#{I!S!>lXHJoE32B%bnY>J6}qEwBovOj3nmW zoc|@q0?rEURqdT^N=JNXxfn;kwlZ4j;Lm!M$yvsbbV*KDBdiRi;xIj>-E+G`&X~Fl zFX7JR8By;tTwzdrGt8)KH47;fI}3%+egaZt7&^52@(btfpOoz5kz?B2dYr@oo@EU znFC^qqv`Xnd>PBV4TETG4f7?`jS@7U_G{^nN65=*O9Yu$NU=|a+S?OaA-9|CG?ycl zr7ZmVA(_Cgo1pm=eBDsp0kmRT_iYg0nA#$l06UL99h3MC(-5qw$)rtc(vl^RW-uJN zr=~*bE?1Dra)=8SDl~GbAND<3ULM3kE#iSiz|7&M9q8zXOO`Nh311MB!bvLCLaD$u zNtCA1N;5Kb&^5p~;=^^NXz(x6B_O%h4FN^J94d~iIyS4Tw&;w)F_y@C(iZ>dwaB`7 zR?%?wt;r|*p$J8YyTjg$a@tK_N(8s;X~nlJyD9DTVr|{;3ww!o)6D{SW=H zP+`sOnwIzll!DO)Qy-0|q3kBIZNf$=)ayNszMZjoAd?&y6yU# z@<4|!UL#c|N(~m`QtJK*z4a7KH&NQr_F+AyO3a_Edt*Au#uHf=L`#EQ>49I&x~O1P z=+1fWsoOzKEy2nJJ(D6eO7qIWq>Uv_jWS%fUcu?~6SI^Mv9z5hzzru!O{3J$x~G5B zy31cdqApn0NwZ}Cw4&Fjn3VX(#;UaPpDLvNQmr`YC`8)%yBZh`4hp6nR)ZR;h@d>F zE~`|4HIc(g`_L$5c>Ac&Ay~D}d`jxy$d}YV26UQ2uehv&B{vunif5`5w^8-jA+_I8 zVVJys1N2{Hsoe3Ds_bd#r1;ElzUT6a;Ev(OGn31qV(}{s-@;6)Exp4nRH za=bM@EjS)@%jbz3Xf~^VdG>M2R347iFsvoq9un4?ODA7%4%NLGfrTkFQ30;MjlVg{ zRsQIykA|EvDUncoucagj@-UjqP+IEP1)|p2fCigFLm5wSn4T$%Kb(};B@fqzFU-~r zVb#x;>nKeqkt$j!@3Vno<)Uc%^zE_7p83H&i_NG29dn&H@yeGm+|DRXs=^^3cadf4 z>!Vvi^uqD1fCRd1mpl)C;N3y}P?bJ6PsPUT7Sil^$hxK6xxh5&ipOnLH5?drp zaZnE`*im2XK|dS&Ki1olGl9}*K|Q$3O#2g)rJLk~O!D~pr}a4?d z0?7qXVo)7-_DR)shKv7TR3a=q(B^}Lj7b`bVljE2I{CCAWlxLJn7X1X1!1=zxuSHV z7(*Dr&6@PR-|JDHc%aY#Oi8Rn@EisVR*EjVaLPlgf$HO@UO*HbCqD;I@I|Ch-e71liKQc?kuHDZz|kmp$r|6 zwu&d@m^Kecyohf2L%>VhzXC%Q@4oh^sb6H>EOd`ul6WqnD`}bd?0Mei-=to$|H>y2 zg@fNzr`_PyiviIQ|2V#uC&G?vl2Z`tz(>RuKcEV&rG>Ws{+ENDZ5 zcq{~v)7Mjs14kL(4d2F_3(xEvTSl>=B2n7kH~poy@6Q)zsSG9Ixm@6_%7&ckNNutvyU?)zy-ih^B8~{k=hS zmhUp`;s&I?+Q;ON*WWD(R~4WNGKh4f`B$o6S{3bg3;WwICUJQBLBvqtRKL0Nsf*85r9i)2Oas=HQ~+ZOv-Qa) zWJV+VHGRBEt%$EjY2Ozb>u*g}L)+B1r?U&|QK|@jCGyK>40gx1ja8KRuuP6JTT|f7q-|znS#lF78 z_zF08R?HN>FY!I-Qyf)cx(j^#%gCHUV+%js_Fx>c3zF6XFDyF*4VrLxVUEkl z%*)Cuov@PU=ZwfbE2m}Z_4@LqZ{Fu`P_Zbjmor;cmxoWk_{BQlZWMWZets@@1;hDk z@T&v^Ul`E1mv6jj=6f&+XuNrF{XZ6c|9JEL_w?DCosoI`wNHHWe_^&L&4m(`UV1Lf zhThnhrr)DI|F?|H%}J9@&+Ye)L*+QVaOS27UN|E&iewa9YQ6BDm7=r+;MbtG+8OVT z*$J7nCo>DLy`1}G+ZQ}(IJ@hMq=LNxjozoSIV;urvm*k$u+b?X_4$pUH}7Au#t5)p zpA++G1KYgJ44oQLWLSbw?7iO~o!)=6=gY`EoFw1!*k&*Nc>XU_{kX~t^YXEJOh%O# zUYJd#<$n2Vp9k>aq+91NH+f-Re_UO@ZDD5b{f~fBPtAS&=&23wf!uT@1&D=z z&i~&S@Sn;T&o5>7`FX#69c-XVwd(GzU0#@9AK37h-hUY0#&it#!n}Ow@7#H29DASN zk$ZniZJk@tkAo}^e^k4s(9uv!=jC59l%0J&Tnxp9_pe}gDNc}mF~nE zF6c@FgUSax8)c5cVkCKo&#>Il!u*F|HuRkTcKoOK|93w>BeN^%`-azcdg({OdjDzl zFVzpj<9olG=!G*fH>quRKhVlA)K0lFW+}_>5uiOje<0WE<#(kzI>7GZx6KtrpZXoY zi=82NQkuN{w7b%sBW;xIVR(^z;YcrB%mxYM)ki^>%_Hw`PO6$R zdop+KKEKo3eoRdeBH#Q>Z%e1Y9`>+4Pj~k3WOhE_U%E5qLiO^8;bn?u$_p0*zcH-Q zcfDd~p~x=);ofmOq_(Y%y29LU?)qVl1^Z8qLB!%u{r?-o{&W6|(k^yhR=M(1`^{wF^q;tD=4U zt#FdGuJmDjoSw}~hL=CQK4(G~`Q|eZFN)gJ=fSv~UJnIjUbq-KS!Jc^sa_Zg7iG)z zLmsjZP-Y;G4c>8`f0`Q+)vhQKx*>Ce)_yqT%x*p(pDGFn2=v*b{8?UF@SlIe|7&`P z(x$4nal`Ho+;zW&((ar}&z-y~!TYUh*Ty7d(-nGQn@iB&KY(~hAE!GH#5X5;$9aA? zRjz-C-%YJ@o80IfPj7o(tt%bo^Y5x%o$_ffEMM&%w>gW|O?i*_*85^7K?cCK1i;ij z7p!=Ezxu~%*rg}T%VUoF#}2W-*#80Sz0&=^{K^0SIXxb+)lTb##^*6}{z`vxeEtjG zvy9+>Lua{xheEOK@Z*}n9NbmVPe446W_%Iy5b6?E^7+UKv-32dfbf(i* zgBa%Jef}8RI_0e|ZuIlP&W_Z9q3yo)#pW7K>!7+9`;xmBC@F>KN~fz5!lEDW`@~)$ z91mdcmHy;EPl10X|Kr=*?lol=IX5S@t_t(bcRTpkn6)&|OGTsWaatT8?B|7fetRNc zCm)7kbFz+y;h1kl@`qt&%OamWZ--4=z`iT=jvJlNtNr}L^j;XQ-$vn7xfkZ+Km2+> zr1kzz6&x2yM-O?J-~ZSF(_iu@|Nn)&FXXcl0^mz~YNJl4<1TycxyR|~=z~+d^tL%4 zr%!|>_~v`Dt0E~2((T^ybZ4^^!%?so=H($~y%Avp{hw#Z$-(Rh%5`~pK9uzP`ChwM=>M=h zc(3#?=<%Dt{ImJ-+c4bk|BdT?(E-L?ZSg3;hP=oB-}JBDRV1o|t$@5(rneoCMMbSV z;)U(5RM6jiyU%@!RJ-izi%>r8h3&5DB&fFajo**g;69jN&;NGwk>L-{Puu&jy~uAm z!5`l7Vy7)hdO>GRYUXYy>O_ZSiNdB?EvjzvI6h_}L;B3%&f}=f7S*F~0fZd=1|unc?5h|&mhNL`pOAIWit zlcM2xAP->w3H|@f|Naa9KcLrrPNuzo=RDuTj33j9etbV6%*)@-77Sbc<`JL$Z|I)A z82bHv>$jo%?Gt+Jb&>b{_j*pZwJcn?)eCF7Pw@3WzIg9|uBCkb&S(FbyEi3WfP{|s z{GNl4)2DLu6TNVavmJIq9ojeQ9G~C29)ZshkgX@a|Ng=AcLD#y!XChX`u|>9@Sp!| z{(H~yjtg(!UBgrBtfH!kTVlwzYWG3@=>VX3Q=cC?UKsA8&;G!f>va_x7O<**S$SfF{Tt z*o1GR#@eD5W>=^cwwew67=Lga=zr+UxDWmN^8ercd__BSo!*|=d9OV)D=W)O|6=C_ zIk@vaeb3ix1W5dR@ma9vTMA#tefl5r@#;3~gZXcFRwv=gQs4ZxL%zt0&1W85zcXXC zKkgeZ2Ky1h`#SHq(J3Uw;4pY$KK=`vJLw{ShHle!?$b5)sq}TXd+r1N{i*-GwBSGg zU40kA-D}T%j@SRC5BY<9{vA5Uef|LW2V~T+-^J&g8y4^J@rRH9H3ii?BoB}uP)VD- z{Ht+AI@e#>x!()lix;lwBlp6^U@w9_YW2c)S92=yko?(QL?#Slah_$+6zTSluZSWK z-b#3A{of1rpZL%D|C3V6T+&z{NVHL z%dZvs<|pL$As+a^9<06%E!Eu(zWO|#zmz@bck$pw@!NdyV1C@T6jah&xsum^ncKO@B78z17g4eC9Rc=#zVmGALe z(c!Zfd3a&G?V)^6y7Qy$r|Ta+Kb{=v(+?0Ya8kBlg?AkC%jCe-*9yIGvCDQ4Xzg2% zjF6wo$|}?i{u%aCTjqwiVP6@9BrPIyCIR@(RO@cixkSi#4Es zqpS1<-mBEOo>v!I39%P0hI|i-UQ_CYd49pQee?I8{!eV&^I$yPxo?-k7jNRncQ1;! z`No}(s|T(w^{qd}E*##Z_TYNeu1d8bFE6hHd(svK|M*SoAU^yj|9@lXzm|8{wpkd~ z`hfofyL4UvKKb=kpOa;cz6j03AP>`^Uc9sslc(2%z0fwRv#A9(rPAm6j@ArBAkHmuqdSM&z zAK0I_wd4NFw)ptqpZo`c{dW8-{`2*Jf8FM>J~$uN1N6V@r^?7Q=-_1;KKt|LL0 z2tRXYnP>Q{=N4u|K4)TC2lQ*fA;qBno5W#10589I{qUEpMxVc54DntNhrf8odH$zU zH(q}j-oqqDdf{r<=Sioa{~tC9g9DcRi~&*&NV&&IGlE9p#F?)6@n<9K;UcnH4NpXsA8KVGWyo{eEE_?HSoe^&U% zU(C7zeZKr_A}7AmNWIA06Yg0TYheCHx9W4f{8Y4El$BZoeEtSse}aqOdT9NqvBTAU z>qoKkQYxk^&C#&j9ez{40L{*Kxkz>#_PreEj9>zqh_0H_OXW zzCR%I?$#PFoZJmBHUI(f!uV z;4;_1`pp_}PhaGgrM$%Fqqt>k$M&h}BOpL$SRUs56|f1?5`Y7L=D2moHK+LX$8CuV zSb{ytzqj<>dhc`o;HLbSy!Ylm|AhY)Jx(D*>g74?d2Uu1T@b~-rd^Deb^c@`cU+?#?@cX|ruETWv^5;GNPmAH?ZcxjRsP|rf za`)k+-^0HjU)#e^({ba_ldwkCE*U(zduukFUl7<(J7X-gS@UKS#^&nhb;J0*u*$2j zEE9j&v?{N*s<&#-dGY7lmMkw@y&%TJd-axIvF9a0BJ<$fs`t4g_gAj8HfO4N zXpqkgNq0t(xv|5kpypyBYSw8=oOc4CHjy0xz;07*MG{N|F6!^<;HXjezGYlvh7e(g1FY`K1}{F~R?Qbk9}d$Sp$r2L@r}DW?bl>} zKDQg@!Q&SO8^e zcmV9>^qcW#ceWcJ`}8AUSxT|9auOn%d}SxaAn(JqRc}4D^xj*YK;Q9Y@DG<2{W16- zlv-OnAKWMi%R||gu93USb4ZFsLYc-hMH_tlw;#l?cYu3d{41T!_GuW_;DtwZo2B`4Z=>sk3R(1hYl|0CWVh zt}TflfiiSkGX9`i&@7v=S->qD$`A^yK*nA-n;MJd(OM}oOgfs+;fH-;gu%H<2IwH^%+lO@b``WIO8h!s+^i} zq=5kc`e2(bt)XF5Y;S4uZ~A41CD^HHg}th)%NDlD@|Z)#9*;z{?~JE4w<_Jo^V>sK z?(g{FRu4~GnHJ}cY3159=RcSA+YwK58g2`!v-ORFJ#&V> zv?Qg(3fqj(_e_q*BhG)&Yfg(a>|^!XjY`*glJBzRe~|4A9i^|q&md+q|No2RlkkHO z<-toXdgcGJZws|2-}AaX&})T0$ip_+?vmHwz{M?_5965Dy3=ooZrP!W2-zf&@x8`< z#^YHn$OGGM`*F%bm>(vbO{rnJmNsBr?mtRlD(`2t$M4127PJULLkT4|5wDC{Yfaq1x({Y?asgDwo$V z@>Lke4AW5_6@OySqCL2mMrP1|!7%YgA8=H~$B5^NA?$}d3X4iA*JGp*AaNSV- zfZYJYTc`y6UXlMx7K6iK&I)XajP-EG>W|RrOZfj^A4J$0Vf9NY_!gzUZdSk!5fQz;3T)q2l}O`>Mb{gn#jp;dofjg^Md4*vT>y5&Ip%Q z^_jFMSMc>8wwvPfh#QNdtLn9e{l|$V1TiIBoFGOyrs}#fK#ASg8?` zrClMFO8;y7a@_zMxxxZ-Y}O&|&_SLH8)K?ZOrDzLX%k~RaK7c;lJ=iJdwT4Qd`urS zX=O>`e#2t;&H*Zv4S&C8PvNL`H7D>>89(W?R3dLgJB^y9=m)Mhq#ZE z-|*SGI=Z`G3e`kLu%NqwoE!UcHZ7c;gXz(z~3N=44xrIty;b5 z*M-{G{JyP%v%a@rEnCmOu)6qLGSxI&_H|&C(HR^@K_ByCiKpU$Hc*@2j?Q*MY8%a! zLqpGYeK;4}nvhFQS&BlI@C`;I+z$wOh4y+~=5>ACXnXO;8RDd+iHS+E(5R5-C)9=1 Qj6 Date: Wed, 29 Apr 2015 22:04:46 +0200 Subject: [PATCH 250/256] fixes #838 --- addons/medical/ACE_Settings.hpp | 3 ++- addons/medical/CfgVehicles.hpp | 7 ++++++- addons/medical/functions/fnc_handleDamage.sqf | 2 +- addons/medical/functions/fnc_setDead.sqf | 5 +++-- 4 files changed, 12 insertions(+), 5 deletions(-) diff --git a/addons/medical/ACE_Settings.hpp b/addons/medical/ACE_Settings.hpp index 26fa87e706..1d87803f43 100644 --- a/addons/medical/ACE_Settings.hpp +++ b/addons/medical/ACE_Settings.hpp @@ -60,8 +60,9 @@ class ACE_Settings { value = 0; }; class GVAR(enableRevive) { - typeName = "BOOL"; + typeName = "SCALAR"; value = 0; + values[] = {"Disabled", "Players only", "Players and AI"}; }; class GVAR(maxReviveTime) { typeName = "SCALAR"; diff --git a/addons/medical/CfgVehicles.hpp b/addons/medical/CfgVehicles.hpp index 339abe5a42..f28322baf7 100644 --- a/addons/medical/CfgVehicles.hpp +++ b/addons/medical/CfgVehicles.hpp @@ -238,8 +238,13 @@ class CfgVehicles { class enableRevive { displayName = "Enable Revive"; description = "Enable a basic revive system"; - typeName = "BOOL"; + typeName = "NUMBER"; defaultValue = 0; + class values { + class disable { name = "Disabled"; value = 0; default = 1;}; + class playerOnly { name = "Player only"; value = 1; }; + class playerAndAI { name = "Player & AI"; value = 2; }; + }; }; class maxReviveTime { displayName = "Max Revive time"; diff --git a/addons/medical/functions/fnc_handleDamage.sqf b/addons/medical/functions/fnc_handleDamage.sqf index a989513580..db799b45ab 100644 --- a/addons/medical/functions/fnc_handleDamage.sqf +++ b/addons/medical/functions/fnc_handleDamage.sqf @@ -76,7 +76,7 @@ if (GVAR(level) >= 2) then { }; [_unit] call FUNC(addToInjuredCollection); -if (((_unit getVariable [QGVAR(enableRevive), GVAR(enableRevive)])) && {_damageReturn >= 0.9} && {_selection in ["", "head", "body"]}) exitWith { +if (((_unit getVariable [QGVAR(enableRevive), GVAR(enableRevive)]) > 0) && {_damageReturn >= 0.9} && {_selection in ["", "head", "body"]}) exitWith { if (vehicle _unit != _unit and {damage _vehicle >= 1}) then { // @todo // [_unit] call FUNC(unload); diff --git a/addons/medical/functions/fnc_setDead.sqf b/addons/medical/functions/fnc_setDead.sqf index 428d6674ab..9d8498cd04 100644 --- a/addons/medical/functions/fnc_setDead.sqf +++ b/addons/medical/functions/fnc_setDead.sqf @@ -13,7 +13,7 @@ #include "script_component.hpp" -private ["_unit", "_force"]; +private ["_unit", "_force", "_reviveVal"]; _unit = _this select 0; _force = false; if (count _this >= 2) then { @@ -26,7 +26,8 @@ if (!local _unit) exitwith { false; }; -if ((_unit getVariable [QGVAR(enableRevive), GVAR(enableRevive)]) && !_force) exitwith { +_reviveVal = _unit getVariable [QGVAR(enableRevive), GVAR(enableRevive)]; +if (((_reviveVal == 1 && {[_unit] call EFUNC(common,isPlayer)} || _reviveVal == 2)) && !_force) exitwith { if (_unit getvariable [QGVAR(inReviveState), false]) exitwith { if (GVAR(amountOfReviveLives) > 0) then { _lifesLeft = _unit getvariable[QGVAR(amountOfReviveLives), GVAR(amountOfReviveLives)]; From aaa8171457ff1300f5a22d8bd6feab017541ad7c Mon Sep 17 00:00:00 2001 From: Glowbal Date: Wed, 29 Apr 2015 22:54:58 +0200 Subject: [PATCH 251/256] Implemented prevent instant death #839 --- addons/medical/functions/fnc_handleDamage.sqf | 53 +++++++++++-------- 1 file changed, 31 insertions(+), 22 deletions(-) diff --git a/addons/medical/functions/fnc_handleDamage.sqf b/addons/medical/functions/fnc_handleDamage.sqf index db799b45ab..546a6c44b0 100644 --- a/addons/medical/functions/fnc_handleDamage.sqf +++ b/addons/medical/functions/fnc_handleDamage.sqf @@ -37,45 +37,54 @@ if !(_selection in (GVAR(SELECTIONS) + [""])) exitWith {0}; _damageReturn = _damage; if (GVAR(level) < 2) then { _damageReturn = _this call FUNC(handleDamage_basic); -}; - -if (GVAR(level) >= 2) then { +} else { if !([_unit] call FUNC(hasMedicalEnabled)) exitwith { // Because of the config changes, we cannot properly disable the medical system for a unit. // lets use basic for the time being.. _damageReturn = _this call FUNC(handleDamage_basic); }; _newDamage = _this call FUNC(handleDamage_caching); + _typeOfDamage = [_projectile] call FUNC(getTypeOfDamage); - //if (_damageReturn > 0.9) then { + _typeIndex = (GVAR(allAvailableDamageTypes) find _typeOfDamage); + _minLethalDamage = 0.01; + if (_typeIndex >= 0) then { + _minLethalDamage = GVAR(minLethalDamages) select _typeIndex; + }; - _typeOfDamage = [_projectile] call FUNC(getTypeOfDamage); - - _typeIndex = (GVAR(allAvailableDamageTypes) find _typeOfDamage); - _minLethalDamage = 0.01; - if (_typeIndex >= 0) then { - _minLethalDamage = GVAR(minLethalDamages) select _typeIndex; + if (vehicle _unit != _unit && {!(vehicle _unit isKindOf "StaticWeapon")} && {isNull _source} && {_projectile == ""} && {_selection == ""}) then { + if (GVAR(enableVehicleCrashes)) then { + _selection = GVAR(SELECTIONS) select (floor(random(count GVAR(SELECTIONS)))); }; + }; - if (vehicle _unit != _unit && {!(vehicle _unit isKindOf "StaticWeapon")} && {isNull _source} && {_projectile == ""} && {_selection == ""}) then { - if (GVAR(enableVehicleCrashes)) then { - _selection = GVAR(SELECTIONS) select (floor(random(count GVAR(SELECTIONS)))); - }; + if ((_minLethalDamage <= _newDamage) && {[_unit, [_selection] call FUNC(selectionNameToNumber), _newDamage] call FUNC(determineIfFatal)} || !alive vehicle _unit) then { + if ((_unit getVariable [QGVAR(preventInstaDeath), GVAR(preventInstaDeath)])) exitwith { + _damageReturn = 0.9; }; - - if ((_minLethalDamage <= _newDamage) && {[_unit, [_selection] call FUNC(selectionNameToNumber), _newDamage] call FUNC(determineIfFatal)} || !alive vehicle _unit) then { - if ([_unit] call FUNC(setDead)) then { - _damageReturn = 1; - } else { - _damageReturn = _damageReturn min 0.89; - }; + if ({[_unit] call FUNC(setDead)}) then { + _damageReturn = 1; } else { _damageReturn = _damageReturn min 0.89; }; - //}; + } else { + _damageReturn = _damageReturn min 0.89; + }; }; [_unit] call FUNC(addToInjuredCollection); +if (_unit getVariable [QGVAR(preventInstaDeath), GVAR(preventInstaDeath)]) exitWith { + if (_damageReturn >= 0.9 && {_selection in ["", "head", "body"]}) exitWith { + if (_unit getvariable ["ACE_isUnconscious", false]) exitwith { + [_unit] call FUNC(setDead); + 0.89 + }; + [{ [_this select 0, true] call FUNC(setUnconscious); }, [_unit]] call EFUNC(common,execNextFrame); + 0.89 + }; + _damageReturn min 0.89; +}; + if (((_unit getVariable [QGVAR(enableRevive), GVAR(enableRevive)]) > 0) && {_damageReturn >= 0.9} && {_selection in ["", "head", "body"]}) exitWith { if (vehicle _unit != _unit and {damage _vehicle >= 1}) then { // @todo From 581c64f66faa324cb1ec0382aae51401f65438ab Mon Sep 17 00:00:00 2001 From: Glowbal Date: Wed, 29 Apr 2015 23:12:47 +0200 Subject: [PATCH 252/256] Implemented unloading from vehicles #740 --- addons/interaction/CfgVehicles.hpp | 36 ++++++++++++++++++++++++++++++ addons/medical/CfgVehicles.hpp | 2 +- 2 files changed, 37 insertions(+), 1 deletion(-) diff --git a/addons/interaction/CfgVehicles.hpp b/addons/interaction/CfgVehicles.hpp index f6f39808b9..96165d63e3 100644 --- a/addons/interaction/CfgVehicles.hpp +++ b/addons/interaction/CfgVehicles.hpp @@ -398,6 +398,12 @@ class CfgVehicles { selection = ""; distance = 10; condition = "true"; + class ACE_Passengers { + displayName = "$STR_ACE_Interaction_Passengers"; + condition = "true"; + statement = ""; + insertChildren = QUOTE(_this call DFUNC(addPassengersActions)); + }; }; }; class ACE_SelfActions { @@ -416,6 +422,12 @@ class CfgVehicles { selection = ""; distance = 10; condition = "true"; + class ACE_Passengers { + displayName = "$STR_ACE_Interaction_Passengers"; + condition = "true"; + statement = ""; + insertChildren = QUOTE(_this call DFUNC(addPassengersActions)); + }; }; }; class ACE_SelfActions { @@ -436,6 +448,12 @@ class CfgVehicles { selection = ""; distance = 10; condition = "true"; + class ACE_Passengers { + displayName = "$STR_ACE_Interaction_Passengers"; + condition = "true"; + statement = ""; + insertChildren = QUOTE(_this call DFUNC(addPassengersActions)); + }; }; }; class ACE_SelfActions { @@ -454,6 +472,12 @@ class CfgVehicles { selection = ""; distance = 10; condition = "true"; + class ACE_Passengers { + displayName = "$STR_ACE_Interaction_Passengers"; + condition = "true"; + statement = ""; + insertChildren = QUOTE(_this call DFUNC(addPassengersActions)); + }; }; }; class ACE_SelfActions { @@ -483,6 +507,12 @@ class CfgVehicles { showDisabled = 0; priority = -1; }; + class ACE_Passengers { + displayName = "$STR_ACE_Interaction_Passengers"; + condition = "true"; + statement = ""; + insertChildren = QUOTE(_this call DFUNC(addPassengersActions)); + }; }; }; class ACE_SelfActions { @@ -502,6 +532,12 @@ class CfgVehicles { selection = "gunnerview"; distance = 2; condition = "true"; + class ACE_Passengers { + displayName = "$STR_ACE_Interaction_Passengers"; + condition = "true"; + statement = ""; + insertChildren = QUOTE(_this call DFUNC(addPassengersActions)); + }; }; }; class ACE_SelfActions { diff --git a/addons/medical/CfgVehicles.hpp b/addons/medical/CfgVehicles.hpp index f28322baf7..179daae742 100644 --- a/addons/medical/CfgVehicles.hpp +++ b/addons/medical/CfgVehicles.hpp @@ -446,7 +446,7 @@ class CfgVehicles { displayName = "$STR_ACE_MEDICAL_ACTIONS_Medical"; runOnHover = 1; exceptions[] = {"isNotInside"}; - condition = QUOTE(vehicle _target != _target); + condition = QUOTE(vehicle _target != _target && vehicle _target == vehicle _player); statement = QUOTE([ARR_3(_target, true, 0)] call DFUNC(displayPatientInformation)); icon = PATHTOF(UI\icons\medical_cross.paa); From a39e869728e1c0cff4a94e3f87882d292a869b28 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Wed, 29 Apr 2015 16:44:47 -0500 Subject: [PATCH 253/256] Fix extra {} wraped Error position: Error if: Type code, expected Bool File z\ace\addons\medical\functions\fnc_handleDamage.sqf, line 50 --- addons/medical/functions/fnc_handleDamage.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/medical/functions/fnc_handleDamage.sqf b/addons/medical/functions/fnc_handleDamage.sqf index 546a6c44b0..0a39bea055 100644 --- a/addons/medical/functions/fnc_handleDamage.sqf +++ b/addons/medical/functions/fnc_handleDamage.sqf @@ -62,7 +62,7 @@ if (GVAR(level) < 2) then { if ((_unit getVariable [QGVAR(preventInstaDeath), GVAR(preventInstaDeath)])) exitwith { _damageReturn = 0.9; }; - if ({[_unit] call FUNC(setDead)}) then { + if ([_unit] call FUNC(setDead)) then { _damageReturn = 1; } else { _damageReturn = _damageReturn min 0.89; From 5fef446c0031fb6609462f19cbf9c419a9915f9d Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Wed, 29 Apr 2015 16:53:09 -0500 Subject: [PATCH 254/256] EFUNC for dragging calls --- addons/medical/functions/fnc_actionLoadUnit.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/medical/functions/fnc_actionLoadUnit.sqf b/addons/medical/functions/fnc_actionLoadUnit.sqf index 990467521a..34df6aa085 100644 --- a/addons/medical/functions/fnc_actionLoadUnit.sqf +++ b/addons/medical/functions/fnc_actionLoadUnit.sqf @@ -23,10 +23,10 @@ if ([_target] call EFUNC(common,isAwake)) exitwith { ["displayTextStructured", [_caller], [["This person (%1) is awake and cannot be loaded", [_target] call EFUNC(common,getName)], 1.5, _caller]] call EFUNC(common,targetEvent); }; if ([_target] call FUNC(isBeingCarried)) then { - [_caller, _target] call FUNC(dropObject_carry); + [_caller, _target] call EFUNC(dragging,dropObject_carry); }; if ([_target] call FUNC(isBeingDragged)) then { - [_caller, _target] call FUNC(dropObject); + [_caller, _target] call EFUNC(dragging,dropObject); }; _vehicle = [_caller, _target] call EFUNC(common,loadPerson); From f90834eeaba6e5b2df2b3aeb3d9b79f0212cd893 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Wed, 29 Apr 2015 16:57:24 -0500 Subject: [PATCH 255/256] Unused --- addons/medical/functions/fnc_actionLoadUnit.sqf | 6 ------ 1 file changed, 6 deletions(-) diff --git a/addons/medical/functions/fnc_actionLoadUnit.sqf b/addons/medical/functions/fnc_actionLoadUnit.sqf index 34df6aa085..34f93fb11d 100644 --- a/addons/medical/functions/fnc_actionLoadUnit.sqf +++ b/addons/medical/functions/fnc_actionLoadUnit.sqf @@ -30,9 +30,3 @@ if ([_target] call FUNC(isBeingDragged)) then { }; _vehicle = [_caller, _target] call EFUNC(common,loadPerson); -if (!isNull _vehicle) then { - if (!isnil QGVAR(DROP_ADDACTION)) then { - _caller removeAction GVAR(DROP_ADDACTION); - GVAR(DROP_ADDACTION) = nil; - }; -}; From 8e54e6ec13ff59e7014f954b51db43e5652b9232 Mon Sep 17 00:00:00 2001 From: commy2 Date: Thu, 30 Apr 2015 00:53:49 +0200 Subject: [PATCH 256/256] fix setFWS locality issues, fix #892 --- addons/common/CfgEventHandlers.hpp | 2 +- addons/common/functions/fnc_resetAllDefaults.sqf | 1 + addons/common/functions/fnc_setForceWalkStatus.sqf | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/addons/common/CfgEventHandlers.hpp b/addons/common/CfgEventHandlers.hpp index ce0938f063..bea7b6e7bc 100644 --- a/addons/common/CfgEventHandlers.hpp +++ b/addons/common/CfgEventHandlers.hpp @@ -24,7 +24,7 @@ class Extended_InitPost_EventHandlers { init = QUOTE(if (local (_this select 0)) then {_this call FUNC(setName)};); }; class GVAR(forceWalk) { - init = QUOTE(if (local (_this select 0)) then {_this call FUNC(applyForceWalkStatus);};); + init = QUOTE(_this call FUNC(applyForceWalkStatus)); }; class GVAR(muteUnit) { init = QUOTE(_this call FUNC(muteUnitHandleInitPost)); diff --git a/addons/common/functions/fnc_resetAllDefaults.sqf b/addons/common/functions/fnc_resetAllDefaults.sqf index 63e6764d01..64a8e39fa6 100644 --- a/addons/common/functions/fnc_resetAllDefaults.sqf +++ b/addons/common/functions/fnc_resetAllDefaults.sqf @@ -37,3 +37,4 @@ if (isPlayer _unit) then { }; }foreach ([_unit] call FUNC(getAllDefinedSetVariables)); +_unit setVariable ["ACE_forceWalkStatusNumber", 0, true]; diff --git a/addons/common/functions/fnc_setForceWalkStatus.sqf b/addons/common/functions/fnc_setForceWalkStatus.sqf index 52b674015f..477f76297d 100644 --- a/addons/common/functions/fnc_setForceWalkStatus.sqf +++ b/addons/common/functions/fnc_setForceWalkStatus.sqf @@ -50,4 +50,4 @@ _bitmaskNumber = _forceWalkReasonsBooleans call FUNC(toBitmask); _unit setVariable ["ACE_forceWalkStatusNumber", _bitmaskNumber, true]; // actually apply the forceWalk command globaly -[[_unit], QUOTE(FUNC(applyForceWalkStatus)), _unit] call FUNC(execRemoteFnc); +[[_unit], QUOTE(FUNC(applyForceWalkStatus)), 2] call FUNC(execRemoteFnc);