From e6c7758d3f9a01cee2a8cb59be1d572d909d8921 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Sun, 5 Apr 2015 01:57:24 -0500 Subject: [PATCH 001/177] 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/177] 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/177] 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/177] 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/177] 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/177] 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/177] 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/177] 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/177] 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/177] 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/177] 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/177] 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/177] 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/177] 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/177] 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/177] 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/177] 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/177] 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/177] 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/177] 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 f0468fa7c8102d733a7b4e6bed25654e89bc324a Mon Sep 17 00:00:00 2001 From: Niko Lehtovirta Date: Fri, 10 Apr 2015 14:21:52 +0300 Subject: [PATCH 021/177] 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 022/177] 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 023/177] 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 024/177] 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 025/177] 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 4b50d760e9ed90a257cad4379329db478d9d39dd Mon Sep 17 00:00:00 2001 From: Niko Lehtovirta Date: Sat, 11 Apr 2015 20:36:38 +0300 Subject: [PATCH 026/177] 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 027/177] 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 028/177] 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 029/177] 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 030/177] 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 031/177] 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 032/177] 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 033/177] 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 034/177] 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 035/177] 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 036/177] 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 037/177] 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 038/177] 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 039/177] 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 040/177] 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 041/177] 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 042/177] 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 043/177] 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 044/177] 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 045/177] 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 046/177] 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 047/177] 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 048/177] 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 f6ecfefe539b0b73861b36aa50ac765997360f4e Mon Sep 17 00:00:00 2001 From: Bracconiere Date: Fri, 17 Apr 2015 06:41:48 +0300 Subject: [PATCH 049/177] 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 050/177] 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 051/177] 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 052/177] 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 053/177] 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 054/177] 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 055/177] 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 0a9972d7e05054b1aacef09dd00f486f39dae361 Mon Sep 17 00:00:00 2001 From: Bracconiere Date: Sat, 18 Apr 2015 04:54:07 +0300 Subject: [PATCH 056/177] 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 057/177] 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 058/177] 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 059/177] 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 060/177] 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 061/177] 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 062/177] 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 063/177] 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 064/177] 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 065/177] 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 066/177] 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 067/177] 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 068/177] 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 069/177] 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 070/177] 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 071/177] 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 072/177] 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 073/177] 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 074/177] 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 075/177] 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 076/177] 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 077/177] 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 078/177] 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 079/177] 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 080/177] 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 c8badaec5d194f7683aa15f72de026f967eb88fc Mon Sep 17 00:00:00 2001 From: Glowbal Date: Sat, 25 Apr 2015 12:58:54 +0200 Subject: [PATCH 081/177] 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 73b17efa2f147991633789dea22edee8153ece27 Mon Sep 17 00:00:00 2001 From: commy2 Date: Sat, 25 Apr 2015 13:28:21 +0200 Subject: [PATCH 082/177] 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 b7763331d6379f0bea32decee6ce49f34090127d Mon Sep 17 00:00:00 2001 From: commy2 Date: Sat, 25 Apr 2015 14:34:09 +0200 Subject: [PATCH 083/177] 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 084/177] 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 085/177] 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 086/177] 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 087/177] 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 088/177] 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 089/177] 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 090/177] 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 091/177] 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 092/177] 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 093/177] 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 094/177] 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 095/177] 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 096/177] 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 898d6c74a82c9d6aa3a1f3f85b640e90580af953 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Sat, 25 Apr 2015 16:02:59 -0500 Subject: [PATCH 097/177] #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 098/177] 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 099/177] 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 100/177] 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 101/177] 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 102/177] 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 103/177] 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 5ed7cee6fd1e25f7aeaaf79fbeed3b293d85b264 Mon Sep 17 00:00:00 2001 From: ulteq Date: Sun, 26 Apr 2015 09:22:04 +0200 Subject: [PATCH 104/177] 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 105/177] 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 106/177] 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 107/177] 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 108/177] 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 b2dd065429b97952e6f6449c67050e9ab8bb991a Mon Sep 17 00:00:00 2001 From: bux578 Date: Sun, 26 Apr 2015 12:27:06 +0200 Subject: [PATCH 109/177] 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 110/177] 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 111/177] 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 112/177] 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 113/177] 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 114/177] 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 115/177] 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 116/177] 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 117/177] 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 118/177] 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 119/177] 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 120/177] 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 121/177] 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 122/177] 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 123/177] 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 124/177] 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 125/177] 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 126/177] 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 127/177] 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 128/177] 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 129/177] 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 130/177] 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 131/177] 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 132/177] 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 133/177] 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 134/177] 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 135/177] 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 136/177] 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 137/177] 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 138/177] 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 139/177] 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 140/177] 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 141/177] 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 142/177] 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 143/177] 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 144/177] 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 145/177] 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 146/177] 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 147/177] 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 148/177] 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 149/177] 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 150/177] 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 151/177] 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 152/177] 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 153/177] 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 154/177] 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 e4f6a7b2fc601e75ad26bce70f2bde98c7df44a7 Mon Sep 17 00:00:00 2001 From: ulteq Date: Mon, 27 Apr 2015 17:35:03 +0200 Subject: [PATCH 155/177] 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 156/177] 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 157/177] 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 158/177] 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 159/177] #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 160/177] 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 161/177] 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 162/177] 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 1d434949de5bc25952c725ddeeb90a8f1f1a0a08 Mon Sep 17 00:00:00 2001 From: NukeDev Date: Tue, 28 Apr 2015 17:46:35 +0200 Subject: [PATCH 163/177] 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 164/177] 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 165/177] 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 166/177] 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 167/177] 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 168/177] 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 169/177] 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 170/177] 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 171/177] 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 172/177] 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 76393f31db563c98d1701a4f20d77130bb199802 Mon Sep 17 00:00:00 2001 From: ulteq Date: Tue, 28 Apr 2015 19:31:38 +0200 Subject: [PATCH 173/177] 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 174/177] 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 175/177] 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 176/177] 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 177/177] 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