From d7bdb48547492d3b2a2fbfb7de04b4b0d0e73a01 Mon Sep 17 00:00:00 2001 From: Clon1998 <ps.patti1998@gmail.com> Date: Fri, 10 Apr 2015 01:15:20 +0200 Subject: [PATCH 001/109] Update stringtable.xml --- addons/interaction/stringtable.xml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/addons/interaction/stringtable.xml b/addons/interaction/stringtable.xml index dcd87056e2..6e82383964 100644 --- a/addons/interaction/stringtable.xml +++ b/addons/interaction/stringtable.xml @@ -4,27 +4,35 @@ <Package name="Interaction"> <Key ID="STR_ACE_Interaction_MainAction"> <English>Interactions</English> + <German>Interaktionen</German> </Key> <Key ID="STR_ACE_Interaction_Torso"> <English>Torso</English> + <German>Körper</German> </Key> <Key ID="STR_ACE_Interaction_Head"> <English>Head</English> + <German>Kopf</German> </Key> <Key ID="STR_ACE_Interaction_ArmLeft"> <English>Left Arm</English> + <German>Linker Arm</German> </Key> <Key ID="STR_ACE_Interaction_ArmRight"> <English>Right Arm</English> + <German>Rechter Arm</German> </Key> <Key ID="STR_ACE_Interaction_LegLeft"> <English>Left Leg</English> + <German>Linker Arm</German> </Key> <Key ID="STR_ACE_Interaction_LegRight"> <English>Right Leg</English> + <German>Rechter Arm</German> </Key> <Key ID="STR_ACE_Interaction_Weapon"> <English>Weapon</English> + <German>Waffe</German> </Key> <Key ID="STR_ACE_Interaction_InteractionMenu"> <English>Interaction Menu</English> @@ -655,6 +663,7 @@ </Key> <Key ID="STR_ACE_Interaction_Passengers"> <English>Passengers</English> + <German>Passagiere</German> </Key> </Package> </Project> From f94b4befef50ef1c4c82c64ec762e19fc72161be Mon Sep 17 00:00:00 2001 From: commy2 <commy-2@gmx.de> Date: Mon, 13 Apr 2015 13:04:23 +0200 Subject: [PATCH 002/109] initial commit --- addons/respawn/CfgVehicles.hpp | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/addons/respawn/CfgVehicles.hpp b/addons/respawn/CfgVehicles.hpp index f6b8fc64c2..4b763074c2 100644 --- a/addons/respawn/CfgVehicles.hpp +++ b/addons/respawn/CfgVehicles.hpp @@ -69,7 +69,9 @@ class CfgVehicles { }; // static - class ACE_Rallypoint_West : Flag_NATO_F { + class ACE_Rallypoint_West: Flag_NATO_F { + XEH_ENABLED; + author = "$STR_ACE_Common_ACETeam"; displayName = "Rallypoint West Base"; vehicleClass = QGVAR(Rallypoints); @@ -94,7 +96,9 @@ class CfgVehicles { }; }; - class ACE_Rallypoint_East : Flag_CSAT_F { + class ACE_Rallypoint_East: Flag_CSAT_F { + XEH_ENABLED; + author = "$STR_ACE_Common_ACETeam"; displayName = "Rallypoint East Base"; vehicleClass = QGVAR(Rallypoints); @@ -119,7 +123,9 @@ class CfgVehicles { }; }; - class ACE_Rallypoint_Independent : Flag_AAF_F { + class ACE_Rallypoint_Independent: Flag_AAF_F { + XEH_ENABLED; + author = "$STR_ACE_Common_ACETeam"; displayName = "Rallypoint Independent Base"; vehicleClass = QGVAR(Rallypoints); @@ -145,7 +151,9 @@ class CfgVehicles { }; // moveable - class ACE_RallypointExit_West : Flag_NATO_F { + class ACE_RallypointExit_West: Flag_NATO_F { + XEH_ENABLED; + author = "$STR_ACE_Common_ACETeam"; displayName = "Rallypoint West"; vehicleClass = QGVAR(Rallypoints); @@ -170,7 +178,9 @@ class CfgVehicles { }; }; - class ACE_RallypointExit_East : Flag_CSAT_F { + class ACE_RallypointExit_East: Flag_CSAT_F { + XEH_ENABLED; + author = "$STR_ACE_Common_ACETeam"; displayName = "Rallypoint East"; vehicleClass = QGVAR(Rallypoints); @@ -195,7 +205,9 @@ class CfgVehicles { }; }; - class ACE_RallypointExit_Independent : Flag_AAF_F { + class ACE_RallypointExit_Independent: Flag_AAF_F { + XEH_ENABLED; + author = "$STR_ACE_Common_ACETeam"; displayName = "Rallypoint Independent"; vehicleClass = QGVAR(Rallypoints); From 4cdf61ab9eb0bfe89b8c40fb0da390c638229a57 Mon Sep 17 00:00:00 2001 From: commy2 <commy-2@gmx.de> Date: Wed, 15 Apr 2015 01:50:58 +0200 Subject: [PATCH 003/109] fix misc issues with rallypoints --- addons/respawn/CfgEventHandlers.hpp | 43 ++- addons/respawn/CfgVehicles.hpp | 330 ++++++++---------- .../respawn/functions/fnc_moveRallypoint.sqf | 6 +- addons/respawn/functions/fnc_restoreGear.sqf | 14 + .../functions/fnc_teleportToRallypoint.sqf | 23 +- 5 files changed, 210 insertions(+), 206 deletions(-) diff --git a/addons/respawn/CfgEventHandlers.hpp b/addons/respawn/CfgEventHandlers.hpp index c4a50615d1..7b00950931 100644 --- a/addons/respawn/CfgEventHandlers.hpp +++ b/addons/respawn/CfgEventHandlers.hpp @@ -6,15 +6,54 @@ class Extended_PreInit_EventHandlers { class Extended_Killed_EventHandlers { class CAManBase { - class GVAR(HandleGear) { + class ADDON { killed = QUOTE(_this call FUNC(handleKilled)); }; }; }; + class Extended_Respawn_EventHandlers { class CAManBase { - class GVAR(HandleGear) { + class ADDON { respawn = QUOTE(_this call FUNC(handleRespawn)); }; }; }; + +class Extended_Init_EventHandlers { + class ACE_Rallypoint_West { + class ADDON { + init = QUOTE((_this select 0) setFlagTexture '\A3\Data_F\Flags\Flag_nato_CO.paa'; _this call FUNC(initRallypoint)); + }; + }; + + class ACE_Rallypoint_East { + class ADDON { + init = QUOTE((_this select 0) setFlagTexture '\A3\Data_F\Flags\Flag_CSAT_CO.paa'; _this call FUNC(initRallypoint)); + }; + }; + + class ACE_Rallypoint_Independent { + class ADDON { + init = QUOTE((_this select 0) setFlagTexture '\A3\Data_F\Flags\Flag_AAF_CO.paa'; _this call FUNC(initRallypoint)); + }; + }; + + class ACE_Rallypoint_West_Base { + class ADDON { + init = QUOTE((_this select 0) setFlagTexture '\A3\Data_F\Flags\Flag_nato_CO.paa'; _this call FUNC(initRallypoint)); + }; + }; + + class ACE_Rallypoint_East_Base { + class ADDON { + init = QUOTE((_this select 0) setFlagTexture '\A3\Data_F\Flags\Flag_CSAT_CO.paa'; _this call FUNC(initRallypoint)); + }; + }; + + class ACE_Rallypoint_Independent_Base { + class ADDON { + init = QUOTE((_this select 0) setFlagTexture '\A3\Data_F\Flags\Flag_AAF_CO.paa'; _this call FUNC(initRallypoint)); + }; + }; +}; diff --git a/addons/respawn/CfgVehicles.hpp b/addons/respawn/CfgVehicles.hpp index 4b763074c2..c8ca4f9216 100644 --- a/addons/respawn/CfgVehicles.hpp +++ b/addons/respawn/CfgVehicles.hpp @@ -1,6 +1,6 @@ class CfgVehicles { class Module_F; - class ACE_ModuleRespawn : Module_F { + class ACE_ModuleRespawn: Module_F { author = "$STR_ACE_Common_ACETeam"; category = "ACE"; displayName = "Respawn System"; @@ -8,20 +8,24 @@ class CfgVehicles { scope = 2; isGlobal = 1; icon = QUOTE(PATHTOF(UI\Icon_Module_Respawn_ca.paa)); + class Arguments { class SavePreDeathGear { displayName = "Save Gear?"; description = "Respawn with the gear a soldier had just before his death?"; typeName = "BOOL"; + class values { class Yes { name = "Yes"; value = 1; }; class No { default = 1; name = "No"; value = 0; }; }; }; + class RemoveDeadBodiesDisconnected { displayName = "Remove bodies?"; description = "Remove player bodies after disconnect?"; typeName = "BOOL"; + class values { class Yes { default = 1; name = "Yes"; value = 1; }; class No { name = "No"; value = 0; }; @@ -30,7 +34,7 @@ class CfgVehicles { }; }; - class ACE_ModuleFriendlyFire : Module_F { + class ACE_ModuleFriendlyFire: Module_F { author = "$STR_ACE_Common_ACETeam"; category = "ACE"; displayName = "Friendly Fire Messages"; @@ -38,11 +42,11 @@ class CfgVehicles { scope = 2; isGlobal = 1; icon = QUOTE(PATHTOF(UI\Icon_Module_FriendlyFire_ca.paa)); - class Arguments { - }; + + class Arguments {}; }; - class ACE_ModuleRallypoint : Module_F { + class ACE_ModuleRallypoint: Module_F { author = "$STR_ACE_Common_ACETeam"; category = "ACE"; displayName = "Rallypoint System"; @@ -50,186 +54,8 @@ class CfgVehicles { scope = 2; isGlobal = 1; icon = QUOTE(PATHTOF(UI\Icon_Module_Rallypoint_ca.paa)); - class Arguments { - }; - }; - // rallypoints - class FlagCarrier; - class Flag_NATO_F : FlagCarrier { - class ACE_Actions; - }; - - class Flag_CSAT_F : FlagCarrier { - class ACE_Actions; - }; - - class Flag_AAF_F : FlagCarrier { - class ACE_Actions; - }; - - // static - class ACE_Rallypoint_West: Flag_NATO_F { - XEH_ENABLED; - - author = "$STR_ACE_Common_ACETeam"; - displayName = "Rallypoint West Base"; - vehicleClass = QGVAR(Rallypoints); - - class EventHandlers { - init = QUOTE((_this select 0) setFlagTexture '\A3\Data_F\Flags\Flag_nato_CO.paa'; _this call FUNC(initRallypoint)); - }; - class ACE_Actions : ACE_Actions { - class ACE_MainActions { - distance = 5; - condition = "true"; - selection = ""; - class ACE_Teleport { - displayName = "Teleport to Rallypoint"; - distance = 4; - condition = QUOTE(side group _player == west); - statement = QUOTE([ARR_3(_player, side group _player, false)] call FUNC(teleportToRallypoint)); - showDisabled = 1; - priority = 1; - }; - }; - }; - }; - - class ACE_Rallypoint_East: Flag_CSAT_F { - XEH_ENABLED; - - author = "$STR_ACE_Common_ACETeam"; - displayName = "Rallypoint East Base"; - vehicleClass = QGVAR(Rallypoints); - - class EventHandlers { - init = QUOTE((_this select 0) setFlagTexture '\A3\Data_F\Flags\Flag_CSAT_CO.paa'; _this call FUNC(initRallypoint)); - }; - class ACE_Actions : ACE_Actions { - class ACE_MainActions { - distance = 5; - condition = "true"; - selection = ""; - class ACE_Teleport { - displayName = "Teleport to Rallypoint"; - distance = 4; - condition = QUOTE(side group _player == east); - statement = QUOTE([ARR_3(_player, side group _player, false)] call FUNC(teleportToRallypoint)); - showDisabled = 1; - priority = 1; - }; - }; - }; - }; - - class ACE_Rallypoint_Independent: Flag_AAF_F { - XEH_ENABLED; - - author = "$STR_ACE_Common_ACETeam"; - displayName = "Rallypoint Independent Base"; - vehicleClass = QGVAR(Rallypoints); - - class EventHandlers { - init = QUOTE((_this select 0) setFlagTexture '\A3\Data_F\Flags\Flag_AAF_CO.paa'; _this call FUNC(initRallypoint)); - }; - class ACE_Actions : ACE_Actions { - class ACE_MainActions { - distance = 5; - condition = "true"; - selection = ""; - class ACE_Teleport { - displayName = "Teleport to Rallypoint"; - distance = 4; - condition = QUOTE(side group _player == independent); - statement = QUOTE([ARR_3(_player, side group _player, false)] call FUNC(teleportToRallypoint)); - showDisabled = 1; - priority = 1; - }; - }; - }; - }; - - // moveable - class ACE_RallypointExit_West: Flag_NATO_F { - XEH_ENABLED; - - author = "$STR_ACE_Common_ACETeam"; - displayName = "Rallypoint West"; - vehicleClass = QGVAR(Rallypoints); - - class EventHandlers { - init = QUOTE((_this select 0) setFlagTexture '\A3\Data_F\Flags\Flag_nato_CO.paa'; _this call FUNC(initRallypoint)); - }; - class ACE_Actions : ACE_Actions { - class ACE_MainActions { - distance = 5; - condition = "true"; - selection = ""; - class ACE_Teleport { - displayName = "Teleport to Base"; - distance = 4; - condition = QUOTE(side group _player == west); - statement = QUOTE([ARR_3(_player, side group _player, true)] call FUNC(teleportToRallypoint)); - showDisabled = 1; - priority = 1; - }; - }; - }; - }; - - class ACE_RallypointExit_East: Flag_CSAT_F { - XEH_ENABLED; - - author = "$STR_ACE_Common_ACETeam"; - displayName = "Rallypoint East"; - vehicleClass = QGVAR(Rallypoints); - - class EventHandlers { - init = QUOTE((_this select 0) setFlagTexture '\A3\Data_F\Flags\Flag_CSAT_CO.paa'; _this call FUNC(initRallypoint)); - }; - class ACE_Actions : ACE_Actions { - class ACE_MainActions { - distance = 5; - condition = "true"; - selection = ""; - class ACE_Teleport { - displayName = "Teleport to Base"; - distance = 4; - condition = QUOTE(side group _player == east); - statement = QUOTE([ARR_3(_player, side group _player, true)] call FUNC(teleportToRallypoint)); - showDisabled = 1; - priority = 1; - }; - }; - }; - }; - - class ACE_RallypointExit_Independent: Flag_AAF_F { - XEH_ENABLED; - - author = "$STR_ACE_Common_ACETeam"; - displayName = "Rallypoint Independent"; - vehicleClass = QGVAR(Rallypoints); - - class EventHandlers { - init = QUOTE((_this select 0) setFlagTexture '\A3\Data_F\Flags\Flag_AAF_CO.paa'; _this call FUNC(initRallypoint)); - }; - class ACE_Actions : ACE_Actions { - class ACE_MainActions { - distance = 5; - condition = "true"; - selection = ""; - class ACE_Teleport { - displayName = "Teleport to Base"; - distance = 4; - condition = QUOTE(side group _player == independent); - statement = QUOTE([ARR_3(_player, side group _player, true)] call FUNC(teleportToRallypoint)); - showDisabled = 1; - priority = 1; - }; - }; - }; + class Arguments {}; }; // team leader @@ -245,4 +71,140 @@ class CfgVehicles { }; }; }; + + // rallypoints + class FlagCarrier; + class Flag_NATO_F: FlagCarrier { + class ACE_Actions; + }; + + class Flag_CSAT_F: FlagCarrier { + class ACE_Actions; + }; + + class Flag_AAF_F: FlagCarrier { + class ACE_Actions; + }; + + // static + class ACE_Rallypoint_West_Base: Flag_NATO_F { + XEH_ENABLED; + + author = "$STR_ACE_Common_ACETeam"; + displayName = "Rallypoint West Base"; + vehicleClass = QGVAR(Rallypoints); + + class ACE_Actions: ACE_Actions { + class ACE_Teleport { + displayName = "$STR_ACE_Respawn_TeleportedToRallypoint"; + distance = 4; + condition = QUOTE(side group _player == west); + statement = QUOTE([ARR_3(_player,side group _player,'ACE_Rallypoint_West')] call FUNC(teleportToRallypoint)); + position[] = {0,0,-1}; + showDisabled = 1; + priority = 1; + }; + }; + }; + + class ACE_Rallypoint_East_Base: Flag_CSAT_F { + XEH_ENABLED; + + author = "$STR_ACE_Common_ACETeam"; + displayName = "Rallypoint East Base"; + vehicleClass = QGVAR(Rallypoints); + + class ACE_Actions: ACE_Actions { + class ACE_Teleport { + displayName = "$STR_ACE_Respawn_TeleportedToRallypoint"; + distance = 4; + condition = QUOTE(side group _player == east); + statement = QUOTE([ARR_3(_player,side group _player,'ACE_Rallypoint_East')] call FUNC(teleportToRallypoint)); + position[] = {0,0,-1}; + showDisabled = 1; + priority = 1; + }; + }; + }; + + class ACE_Rallypoint_Independent_Base: Flag_AAF_F { + XEH_ENABLED; + + author = "$STR_ACE_Common_ACETeam"; + displayName = "Rallypoint Independent Base"; + vehicleClass = QGVAR(Rallypoints); + + class ACE_Actions: ACE_Actions { + class ACE_Teleport { + displayName = "$STR_ACE_Respawn_TeleportedToRallypoint"; + distance = 4; + condition = QUOTE(side group _player == independent); + statement = QUOTE([ARR_3(_player,side group _player,'ACE_Rallypoint_Independent')] call FUNC(teleportToRallypoint)); + position[] = {0,0,-1}; + showDisabled = 1; + priority = 1; + }; + }; + }; + + // moveable + class ACE_Rallypoint_West: Flag_NATO_F { + XEH_ENABLED; + + author = "$STR_ACE_Common_ACETeam"; + displayName = "Rallypoint West"; + vehicleClass = QGVAR(Rallypoints); + + class ACE_Actions: ACE_Actions { + class ACE_Teleport { + displayName = "$STR_ACE_Respawn_TeleportedToBase"; + distance = 4; + condition = QUOTE(side group _player == west); + statement = QUOTE([ARR_3(_player,side group _player,'ACE_Rallypoint_West_Base')] call FUNC(teleportToRallypoint)); + position[] = {0,0,-1}; + showDisabled = 1; + priority = 1; + }; + }; + }; + + class ACE_Rallypoint_East: Flag_CSAT_F { + XEH_ENABLED; + + author = "$STR_ACE_Common_ACETeam"; + displayName = "Rallypoint East"; + vehicleClass = QGVAR(Rallypoints); + + class ACE_Actions: ACE_Actions { + class ACE_Teleport { + displayName = "$STR_ACE_Respawn_TeleportedToBase"; + distance = 4; + condition = QUOTE(side group _player == east); + statement = QUOTE([ARR_3(_player,side group _player,'ACE_Rallypoint_East_Base')] call FUNC(teleportToRallypoint)); + position[] = {0,0,-1}; + showDisabled = 1; + priority = 1; + }; + }; + }; + + class ACE_Rallypoint_Independent: Flag_AAF_F { + XEH_ENABLED; + + author = "$STR_ACE_Common_ACETeam"; + displayName = "Rallypoint Independent"; + vehicleClass = QGVAR(Rallypoints); + + class ACE_Actions: ACE_Actions { + class ACE_Teleport { + displayName = "$STR_ACE_Respawn_TeleportedToBase"; + distance = 4; + condition = QUOTE(side group _player == independent); + statement = QUOTE([ARR_3(_player,side group _player,'ACE_Rallypoint_Independent_Base')] call FUNC(teleportToRallypoint)); + position[] = {0,0,-1}; + showDisabled = 1; + priority = 1; + }; + }; + }; }; diff --git a/addons/respawn/functions/fnc_moveRallypoint.sqf b/addons/respawn/functions/fnc_moveRallypoint.sqf index dcd4810844..d937363310 100644 --- a/addons/respawn/functions/fnc_moveRallypoint.sqf +++ b/addons/respawn/functions/fnc_moveRallypoint.sqf @@ -26,8 +26,8 @@ _this spawn { _rallypoint = [ objNull, missionNamespace getVariable ["ACE_Rallypoint_West", objNull], - missionNamespace getVariable ["ACE_RallypointExit_East", objNull], - missionNamespace getVariable ["ACE_RallypointExit_Independent", objNull] + missionNamespace getVariable ["ACE_Rallypoint_East", objNull], + missionNamespace getVariable ["ACE_Rallypoint_Independent", objNull] ] select ([west, east, independent] find _side) + 1; if (isNull _rallypoint) exitWith {}; @@ -50,5 +50,5 @@ _this spawn { _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); + [localize "STR_ACE_Respawn_Deployed"] call EFUNC(common,displayTextStructured); }; diff --git a/addons/respawn/functions/fnc_restoreGear.sqf b/addons/respawn/functions/fnc_restoreGear.sqf index 18afba344b..5a00e3425c 100644 --- a/addons/respawn/functions/fnc_restoreGear.sqf +++ b/addons/respawn/functions/fnc_restoreGear.sqf @@ -76,6 +76,8 @@ if (_goggles != "") then { _unit addItemToVest _x; }forEach _vestitems; +private "_flagRemoveDummyBag"; +_flagRemoveDummyBag = false; if(format["%1", _backpack] != "") then { _unit addBackpack _backpack; @@ -87,6 +89,12 @@ if(format["%1", _backpack] != "") then { { _unit addItemToBackpack _x; } forEach _backpackitems; + +} else { + // dummy backpack to ensure mags being loaded + _unit addBackpack "B_Kitbag_Base"; + + _flagRemoveDummyBag = true; }; @@ -138,6 +146,12 @@ if (_handgunweapon != "") then { }; +// remove dummy bagpack +if (_flagRemoveDummyBag) then { + removeBackpack _unit; +}; + + _assignedItems = _assignedItems - [_binocular]; // items diff --git a/addons/respawn/functions/fnc_teleportToRallypoint.sqf b/addons/respawn/functions/fnc_teleportToRallypoint.sqf index 8d898441ee..82a1d68e05 100644 --- a/addons/respawn/functions/fnc_teleportToRallypoint.sqf +++ b/addons/respawn/functions/fnc_teleportToRallypoint.sqf @@ -18,30 +18,19 @@ #include "script_component.hpp" -private ["_unit", "_side", "_toBase", "_rallypoint"]; +private ["_unit", "_side", "_rallypoint", "_toBase"]; _unit = _this select 0; _side = _this select 1; -_toBase = _this select 2; +_rallypoint = _this select 2; // rallypoint names are defined in CfgVehicles.hpp -_rallypoint = ([ - [ - objNull, - missionNamespace getVariable ["ACE_RallypointExit_West", objNull], - missionNamespace getVariable ["ACE_RallypointExit_East", objNull], - missionNamespace getVariable ["ACE_RallypointExit_Independent", objNull] - ], - [ - objNull, - missionNamespace getVariable ["ACE_Rallypoint_West", objNull], - missionNamespace getVariable ["ACE_Rallypoint_East", objNull], - missionNamespace getVariable ["ACE_Rallypoint_Independent", objNull] - ] -] select _toBase) select ([west, east, independent] find _side) + 1; +_toBase = _rallypoint find "_Base" != -1; + +_rallypoint = missionNamespace getVariable [_rallypoint, objNull], if (isNull _rallypoint) exitWith {}; -_unit setPosASL (getPosASL _rallypoint); +_unit setPosASL getPosASL _rallypoint; [[localize "STR_ACE_Respawn_TeleportedToRallypoint", localize "STR_ACE_Respawn_TeleportedToBase"] select _toBase] call EFUNC(common,displayTextStructured); From 2940d1f83cc521b9f89835f57f263709f7dfe3b2 Mon Sep 17 00:00:00 2001 From: commy2 <commy-2@gmx.de> Date: Wed, 15 Apr 2015 03:10:17 +0200 Subject: [PATCH 004/109] base rallypoints create a respawn marker if none is present in the mission --- addons/respawn/CfgEventHandlers.hpp | 14 ++++++++------ addons/respawn/functions/fnc_initRallypoint.sqf | 7 ++++++- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/addons/respawn/CfgEventHandlers.hpp b/addons/respawn/CfgEventHandlers.hpp index 7b00950931..9ff7a2bae8 100644 --- a/addons/respawn/CfgEventHandlers.hpp +++ b/addons/respawn/CfgEventHandlers.hpp @@ -23,37 +23,39 @@ class Extended_Respawn_EventHandlers { class Extended_Init_EventHandlers { class ACE_Rallypoint_West { class ADDON { - init = QUOTE((_this select 0) setFlagTexture '\A3\Data_F\Flags\Flag_nato_CO.paa'; _this call FUNC(initRallypoint)); + init = QUOTE((_this select 0) setFlagTexture '\A3\Data_F\Flags\Flag_nato_CO.paa'; [ARR_2(_this select 0,'')] call FUNC(initRallypoint)); }; }; class ACE_Rallypoint_East { class ADDON { - init = QUOTE((_this select 0) setFlagTexture '\A3\Data_F\Flags\Flag_CSAT_CO.paa'; _this call FUNC(initRallypoint)); + init = QUOTE((_this select 0) setFlagTexture '\A3\Data_F\Flags\Flag_CSAT_CO.paa'; [ARR_2(_this select 0,'')] call FUNC(initRallypoint)); }; }; class ACE_Rallypoint_Independent { class ADDON { - init = QUOTE((_this select 0) setFlagTexture '\A3\Data_F\Flags\Flag_AAF_CO.paa'; _this call FUNC(initRallypoint)); + init = QUOTE((_this select 0) setFlagTexture '\A3\Data_F\Flags\Flag_AAF_CO.paa'; [ARR_2(_this select 0,'')] call FUNC(initRallypoint)); }; }; class ACE_Rallypoint_West_Base { class ADDON { - init = QUOTE((_this select 0) setFlagTexture '\A3\Data_F\Flags\Flag_nato_CO.paa'; _this call FUNC(initRallypoint)); + init = QUOTE((_this select 0) setFlagTexture '\A3\Data_F\Flags\Flag_nato_CO.paa'; [ARR_2(_this select 0,'respawn_west')] call FUNC(initRallypoint)); }; }; class ACE_Rallypoint_East_Base { class ADDON { - init = QUOTE((_this select 0) setFlagTexture '\A3\Data_F\Flags\Flag_CSAT_CO.paa'; _this call FUNC(initRallypoint)); + init = QUOTE((_this select 0) setFlagTexture '\A3\Data_F\Flags\Flag_CSAT_CO.paa'; [ARR_2(_this select 0,'respawn_east')] call FUNC(initRallypoint)); }; }; class ACE_Rallypoint_Independent_Base { class ADDON { - init = QUOTE((_this select 0) setFlagTexture '\A3\Data_F\Flags\Flag_AAF_CO.paa'; _this call FUNC(initRallypoint)); + init = QUOTE((_this select 0) setFlagTexture '\A3\Data_F\Flags\Flag_AAF_CO.paa'; [ARR_2(_this select 0,'respawn_guerrila')] call FUNC(initRallypoint)); }; }; + + //respawn_civilian }; diff --git a/addons/respawn/functions/fnc_initRallypoint.sqf b/addons/respawn/functions/fnc_initRallypoint.sqf index cb4d55146f..c266026e11 100644 --- a/addons/respawn/functions/fnc_initRallypoint.sqf +++ b/addons/respawn/functions/fnc_initRallypoint.sqf @@ -16,9 +16,10 @@ #include "script_component.hpp" -private ["_rallypoint", "_name"]; +private ["_rallypoint", "_respawnMarker", "_name"]; _rallypoint = _this select 0; +_respawnMarker = _this select 1; if (!local _rallypoint) exitWith {}; @@ -31,3 +32,7 @@ if (isNil _name) then { deleteVehicle _rallypoint; diag_log text "[ACE] Respawn: ERROR Multiple Rallypoints of same type."; }; + +if (isServer && {_respawnMarker != ""} && {!(_respawnMarker in allMapMarkers)}) then { + createMarker [_respawnMarker, _rallypoint]; +}; From 91c8c89e87d9ef08efb30d1faf98b6fa542e5a72 Mon Sep 17 00:00:00 2001 From: PabstMirror <elephantisaterriblemascot@gmail.com> Date: Tue, 14 Apr 2015 20:47:07 -0500 Subject: [PATCH 005/109] Only sync A3 VON status over network --- .../nametags/functions/fnc_initIsSpeaking.sqf | 49 ++++++++----------- 1 file changed, 21 insertions(+), 28 deletions(-) diff --git a/addons/nametags/functions/fnc_initIsSpeaking.sqf b/addons/nametags/functions/fnc_initIsSpeaking.sqf index 56c5cfc2f1..95403e0894 100644 --- a/addons/nametags/functions/fnc_initIsSpeaking.sqf +++ b/addons/nametags/functions/fnc_initIsSpeaking.sqf @@ -20,8 +20,8 @@ if (isServer) then { //If someone disconnects while speaking, reset their variable addMissionEventHandler ["HandleDisconnect", { PARAMS_1(_disconnectedPlayer); - if (_disconnectedPlayer getVariable [QGVAR(isSpeaking), false]) then { - _disconnectedPlayer setVariable [QGVAR(isSpeaking), false, true]; + if (_disconnectedPlayer getVariable [QGVAR(isSpeakingInGame), false]) then { + _disconnectedPlayer setVariable [QGVAR(isSpeakingInGame), false, true]; }; }]; }; @@ -31,46 +31,39 @@ if (!hasInterface) exitWith {}; ["playerChanged", { //When player changes, make sure to reset old unit's variable PARAMS_2(_newUnit,_oldUnit); - if (_oldUnit getVariable [QGVAR(isSpeaking), false]) then { - _oldUnit setVariable [QGVAR(isSpeaking), false, true]; + if ((!isNull _oldUnit) && {_oldUnit getVariable [QGVAR(isSpeakingInGame), false]}) then { + _oldUnit setVariable [QGVAR(isSpeakingInGame), false, true]; }; }] call EFUNC(common,addEventHandler); +//PFEH to watch the internal VON icon +//Note: class RscDisplayVoiceChat {idd = 55}; //only present when talking +[{ + _oldSetting = ACE_player getVariable [QGVAR(isSpeakingInGame), false]; + _newSetting = (!(isNull findDisplay 55)); + if (!(_oldSetting isEqualTo _newSetting)) then { + ACE_player setVariable [QGVAR(isSpeakingInGame), _newSetting, true]; + }; +} , 0.1, []] call CBA_fnc_addPerFrameHandler; -//For performance, chose different code paths at mission start based on installed mods (once, instead of checking each time) -_pfEHCode = switch (true) do { + +DFUNC(isSpeaking) = switch (true) do { case (isClass (configFile >> "cfgPatches" >> "acre_api")): { { - _oldSetting = ACE_player getVariable [QGVAR(isSpeaking), false]; - _newSetting = ([ACE_player] call acre_api_fnc_isSpeaking) || ([ACE_player] call acre_api_fnc_isBroadcasting) || {!(isNull findDisplay 55)}; - if (!(_oldSetting isEqualTo _newSetting)) then { - ACE_player setVariable [QGVAR(isSpeaking), _newSetting, true]; - }; + PARAMS_1(_unit); + (_unit getVariable [QGVAR(isSpeakingInGame), false]) || ([_unit] call acre_api_fnc_isSpeaking) || ([ACE_player] call acre_api_fnc_isBroadcasting) }; }; case (isClass (configFile >> "cfgPatches" >> "task_force_radio")): { - //Note: TFAR has a TFAR_fnc_isSpeaking function, but it has a fairly costly `callExtension` - //I think it's much faster to use the internal "tf_isSpeaking" variable - //If we don't care about the built-in VON, we could switch this to a pure event driven system { - _oldSetting = ACE_player getVariable [QGVAR(isSpeaking), false]; - _newSetting = (ACE_player getVariable ["tf_isSpeaking", false]) || {!(isNull findDisplay 55)}; - if (!(_oldSetting isEqualTo _newSetting)) then { - ACE_player setVariable [QGVAR(isSpeaking), _newSetting, true]; - }; + PARAMS_1(_unit); + (_unit getVariable [QGVAR(isSpeakingInGame), false]) || (_unit getVariable ["tf_isSpeaking", false]) }; }; default { - //Note: class RscDisplayVoiceChat {idd = 55}; //only present when talking { - _oldSetting = ACE_player getVariable [QGVAR(isSpeaking), false]; - _newSetting = (!(isNull findDisplay 55)); - if (!(_oldSetting isEqualTo _newSetting)) then { - ACE_player setVariable [QGVAR(isSpeaking), _newSetting, true]; - }; + PARAMS_1(_unit); + (_unit getVariable [QGVAR(isSpeakingInGame), false]) }; }; }; - -//Is 0.05sec precision enough?? -[_pfEHCode, 0.05, []] call CBA_fnc_addPerFrameHandler; From 00b9e2d72ca7584268b78636d49a842ab39ebab5 Mon Sep 17 00:00:00 2001 From: PabstMirror <elephantisaterriblemascot@gmail.com> Date: Tue, 14 Apr 2015 20:49:44 -0500 Subject: [PATCH 006/109] draw3d --- addons/nametags/XEH_postInit.sqf | 1 + addons/nametags/XEH_preInit.sqf | 2 -- addons/nametags/functions/fnc_onDraw3d.sqf | 10 +++++----- 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/addons/nametags/XEH_postInit.sqf b/addons/nametags/XEH_postInit.sqf index ab3cd03391..1df20e45e7 100644 --- a/addons/nametags/XEH_postInit.sqf +++ b/addons/nametags/XEH_postInit.sqf @@ -5,6 +5,7 @@ if (!hasInterface) exitWith {}; +GVAR(ShowNamesTime) = -10; // Add keybinds ["ACE3", QGVAR(showNameTags), localize "STR_ACE_NameTags_ShowNames", diff --git a/addons/nametags/XEH_preInit.sqf b/addons/nametags/XEH_preInit.sqf index 80c06cff1f..9fae94fd08 100644 --- a/addons/nametags/XEH_preInit.sqf +++ b/addons/nametags/XEH_preInit.sqf @@ -12,6 +12,4 @@ PREP(onDraw3d); PREP(onMouseZChanged); PREP(setText); -GVAR(ShowNamesTime) = -10; - ADDON = true; diff --git a/addons/nametags/functions/fnc_onDraw3d.sqf b/addons/nametags/functions/fnc_onDraw3d.sqf index 8aa503d377..d35cef0d67 100644 --- a/addons/nametags/functions/fnc_onDraw3d.sqf +++ b/addons/nametags/functions/fnc_onDraw3d.sqf @@ -50,9 +50,9 @@ if ((GVAR(showPlayerNames) in [2,4]) && {_onKeyPressAlphaMax > 0}) then { _alpha = _alpha min _onKeyPressAlphaMax; _icon = ICON_NONE; if (GVAR(showSoundWaves) == 2) then { //icon will be drawn below, so only show name here - _icon = if ((_target getVariable [QGVAR(isSpeaking), false]) && {(vehicle _target) == _target}) then {ICON_NAME} else {_defaultIcon}; + _icon = if (([_target] call FUNC(isSpeaking)) && {(vehicle _target) == _target}) then {ICON_NAME} else {_defaultIcon}; } else { - _icon = if ((_target getVariable [QGVAR(isSpeaking), false]) && {(vehicle _target) == _target} && {GVAR(showSoundWaves) > 0}) then {ICON_NAME_SPEAK} else {_defaultIcon}; + _icon = if (([_target] call FUNC(isSpeaking)) && {(vehicle _target) == _target} && {GVAR(showSoundWaves) > 0}) then {ICON_NAME_SPEAK} else {_defaultIcon}; }; [_player, _target, _alpha, _distance * 0.026, _icon] call FUNC(drawNameTagIcon); @@ -77,10 +77,10 @@ if (((GVAR(showPlayerNames) in [1,3]) && {_onKeyPressAlphaMax > 0}) || {GVAR(sho _icon = ICON_NONE; if ((GVAR(showPlayerNames) in [1,3]) && {_onKeyPressAlphaMax > 0}) then { - if ((_target getVariable [QGVAR(isSpeaking), false]) && {(vehicle _target) == _target} && {GVAR(showSoundWaves) > 0}) then {_icon = ICON_NAME_SPEAK;} else {_icon = _defaultIcon}; + if (([_target] call FUNC(isSpeaking)) && {(vehicle _target) == _target} && {GVAR(showSoundWaves) > 0}) then {_icon = ICON_NAME_SPEAK;} else {_icon = _defaultIcon}; } else { //showSoundWaves must be 2, only draw speak icon - if ((_target getVariable [QGVAR(isSpeaking), false]) && {(vehicle _target) == _target}) then {_icon = ICON_SPEAK;}; + if (([_target] call FUNC(isSpeaking)) && {(vehicle _target) == _target}) then {_icon = ICON_SPEAK;}; }; if ((_icon != ICON_NONE) && @@ -96,7 +96,7 @@ if (((GVAR(showPlayerNames) in [1,3]) && {_onKeyPressAlphaMax > 0}) || {GVAR(sho _alpha = ((1 - 0.2 * (_distance - GVAR(PlayerNamesViewDistance))) min (1 - 0.15 * (_projDist * 5 - _distance - 3)) min 1) * GVAR(PlayerNamesMaxAlpha); - if ((GVAR(showSoundWaves) == 2) && {(_target getVariable [QGVAR(isSpeaking), false]) && {(vehicle _target) == _target}}) then { + if ((GVAR(showSoundWaves) == 2) && {([_target] call FUNC(isSpeaking)) && {(vehicle _target) == _target}}) then { _alpha = 1; } else { _alpha = _alpha min _onKeyPressAlphaMax; From 1f51a3fc8ac5fd27275621244c300dd997d318b5 Mon Sep 17 00:00:00 2001 From: PabstMirror <elephantisaterriblemascot@gmail.com> Date: Tue, 14 Apr 2015 23:10:05 -0500 Subject: [PATCH 007/109] Never use this func anywhere --- addons/nametags/XEH_preInit.sqf | 1 - .../nametags/functions/fnc_onMouseZChanged.sqf | 18 ------------------ 2 files changed, 19 deletions(-) delete mode 100644 addons/nametags/functions/fnc_onMouseZChanged.sqf diff --git a/addons/nametags/XEH_preInit.sqf b/addons/nametags/XEH_preInit.sqf index 9fae94fd08..f3c9a97cba 100644 --- a/addons/nametags/XEH_preInit.sqf +++ b/addons/nametags/XEH_preInit.sqf @@ -9,7 +9,6 @@ PREP(getVehicleData); PREP(initIsSpeaking); PREP(moduleNameTags); PREP(onDraw3d); -PREP(onMouseZChanged); PREP(setText); ADDON = true; diff --git a/addons/nametags/functions/fnc_onMouseZChanged.sqf b/addons/nametags/functions/fnc_onMouseZChanged.sqf deleted file mode 100644 index 8892f201bc..0000000000 --- a/addons/nametags/functions/fnc_onMouseZChanged.sqf +++ /dev/null @@ -1,18 +0,0 @@ -/* - Author: aeroson - - Description: - Callback for mouse wheel change - - Parameters: - None - - Returns: - Nothing -*/ - -#include "script_component.hpp" - -if(call FUNC(canShow)) then { - call FUNC(doShow); -}; From 6c4e50a98de7a6186ef2d82c5ac0aa07b9e71359 Mon Sep 17 00:00:00 2001 From: commy2 <commy-2@gmx.de> Date: Wed, 15 Apr 2015 08:31:40 +0200 Subject: [PATCH 008/109] localized names for rallypoints, auto assign slot of group leader at the start of the mission as JIP persistant rallypoint mover slot --- addons/respawn/CfgEventHandlers.hpp | 9 ++++ addons/respawn/CfgVehicles.hpp | 12 ++--- addons/respawn/XEH_preInit.sqf | 1 + .../functions/fnc_handleInitPostServer.sqf | 54 +++++++++++++++++++ .../respawn/functions/fnc_handleRespawn.sqf | 5 ++ addons/respawn/stringtable.xml | 24 +++++++++ 6 files changed, 99 insertions(+), 6 deletions(-) create mode 100644 addons/respawn/functions/fnc_handleInitPostServer.sqf diff --git a/addons/respawn/CfgEventHandlers.hpp b/addons/respawn/CfgEventHandlers.hpp index 9ff7a2bae8..6d7356a607 100644 --- a/addons/respawn/CfgEventHandlers.hpp +++ b/addons/respawn/CfgEventHandlers.hpp @@ -59,3 +59,12 @@ class Extended_Init_EventHandlers { //respawn_civilian }; + +// auto assign rallypoint leader +class Extended_InitPost_EventHandlers { + class CAManBase { + class ADDON { + init = QUOTE(_this call FUNC(handleInitPostServer)); + }; + }; +}; diff --git a/addons/respawn/CfgVehicles.hpp b/addons/respawn/CfgVehicles.hpp index c8ca4f9216..28e33c6b3e 100644 --- a/addons/respawn/CfgVehicles.hpp +++ b/addons/respawn/CfgVehicles.hpp @@ -91,7 +91,7 @@ class CfgVehicles { XEH_ENABLED; author = "$STR_ACE_Common_ACETeam"; - displayName = "Rallypoint West Base"; + displayName = "$STR_ACE_Respawn_RallypointWestBase"; vehicleClass = QGVAR(Rallypoints); class ACE_Actions: ACE_Actions { @@ -111,7 +111,7 @@ class CfgVehicles { XEH_ENABLED; author = "$STR_ACE_Common_ACETeam"; - displayName = "Rallypoint East Base"; + displayName = "$STR_ACE_Respawn_RallypointEastBase"; vehicleClass = QGVAR(Rallypoints); class ACE_Actions: ACE_Actions { @@ -131,7 +131,7 @@ class CfgVehicles { XEH_ENABLED; author = "$STR_ACE_Common_ACETeam"; - displayName = "Rallypoint Independent Base"; + displayName = "$STR_ACE_Respawn_RallypointIndependentBase"; vehicleClass = QGVAR(Rallypoints); class ACE_Actions: ACE_Actions { @@ -152,7 +152,7 @@ class CfgVehicles { XEH_ENABLED; author = "$STR_ACE_Common_ACETeam"; - displayName = "Rallypoint West"; + displayName = "STR_ACE_Respawn_RallypointWest"; vehicleClass = QGVAR(Rallypoints); class ACE_Actions: ACE_Actions { @@ -172,7 +172,7 @@ class CfgVehicles { XEH_ENABLED; author = "$STR_ACE_Common_ACETeam"; - displayName = "Rallypoint East"; + displayName = "STR_ACE_Respawn_RallypointEast"; vehicleClass = QGVAR(Rallypoints); class ACE_Actions: ACE_Actions { @@ -192,7 +192,7 @@ class CfgVehicles { XEH_ENABLED; author = "$STR_ACE_Common_ACETeam"; - displayName = "Rallypoint Independent"; + displayName = "STR_ACE_Respawn_RallypointIndependent"; vehicleClass = QGVAR(Rallypoints); class ACE_Actions: ACE_Actions { diff --git a/addons/respawn/XEH_preInit.sqf b/addons/respawn/XEH_preInit.sqf index f57e1f3714..8b3f309126 100644 --- a/addons/respawn/XEH_preInit.sqf +++ b/addons/respawn/XEH_preInit.sqf @@ -5,6 +5,7 @@ ADDON = false; PREP(canMoveRallypoint); PREP(handleKilled); PREP(handleRespawn); +PREP(handleInitPostServer); PREP(initRallypoint); PREP(module); PREP(moduleFriendlyFire); diff --git a/addons/respawn/functions/fnc_handleInitPostServer.sqf b/addons/respawn/functions/fnc_handleInitPostServer.sqf new file mode 100644 index 0000000000..c83354b24e --- /dev/null +++ b/addons/respawn/functions/fnc_handleInitPostServer.sqf @@ -0,0 +1,54 @@ +// by commy2 +// execute on server only! +#include "script_component.hpp" + +private "_unit"; + +_unit = _this select 0; + +private ["_group0", "_rallypoint"]; + +_group0 = group _unit; // _group is a reserved veriable and shouldn't be used + +_rallypoint = [ + objNull, + missionNamespace getVariable ["ACE_Rallypoint_West", objNull], + missionNamespace getVariable ["ACE_Rallypoint_East", objNull], + missionNamespace getVariable ["ACE_Rallypoint_Independent", objNull] +] select ([west, east, independent] find side _group0) + 1; + +// exit if no moveable rallypoint is placed for that side +if (isNull _rallypoint) exitWith {}; + +// find leader +private "_leaderVarName"; +_leaderVarName = _group0 getVariable [QGVAR(leaderVarName), ""]; + +// exit if group already has a playable slot assigned as rallypoint leader +if (_leaderVarName != "") exitWith { + // assign JIP unit as rallypoint leader + if (str _unit == _leaderVarName) then { + _unit setVariable ["ACE_canMoveRallypoint", true, true]; + }; +}; + +// treat group leader +_unit = leader _group0; + +_leaderVarName = vehicleVarName _unit; + +if (_leaderVarName == "") then { + private "_leaderID"; + _leaderID = GETGVAR(NextLeaderID,0); + + _leaderVarName = format [QGVAR(Rallypoint_Leader_%1), _leaderID]; + + _unit setVehicleVarName _leaderVarName; + + GVAR(NextLeaderID) = _leaderID + 1; +}; + +// prevent group from getting multiple leaders; use this to assign rallypoint moving ability on JIP +_group0 setVariable [QGVAR(leaderVarName), _leaderVarName]; + +_unit setVariable ["ACE_canMoveRallypoint", true, true]; diff --git a/addons/respawn/functions/fnc_handleRespawn.sqf b/addons/respawn/functions/fnc_handleRespawn.sqf index a9fe3293ac..33a0ec09e5 100644 --- a/addons/respawn/functions/fnc_handleRespawn.sqf +++ b/addons/respawn/functions/fnc_handleRespawn.sqf @@ -25,3 +25,8 @@ _respawnedUnit = _this select 0; if (GVAR(SavePreDeathGear)) then { [_respawnedUnit, GVAR(unitGear)] call FUNC(restoreGear); }; + +// fix for setVariable public being lost on respawn for machines that JIP after the command was broadcasted +if (_respawnedUnit getVariable ["ACE_canMoveRallypoint", false]) then { + _respawnedUnit setVariable ["ACE_canMoveRallypoint", true, true]; +}; diff --git a/addons/respawn/stringtable.xml b/addons/respawn/stringtable.xml index 2aa4360275..958bc9b56f 100644 --- a/addons/respawn/stringtable.xml +++ b/addons/respawn/stringtable.xml @@ -37,5 +37,29 @@ <Polish>Przeteleportowano do punktu zbiórki</Polish> <Czech>Odteleportován na rallypoint</Czech> </Key> + <Key ID="STR_ACE_Respawn_RallypointWestBase"> + <English>Rallypoint West (Base)</English> + <German>Sammelpunkt West (Basis)</German> + </Key> + <Key ID="STR_ACE_Respawn_RallypointEastBase"> + <English>Rallypoint East (Base)</English> + <German>Sammelpunkt Ost (Basis)</German> + </Key> + <Key ID="STR_ACE_Respawn_RallypointIndependentBase"> + <English>Rallypoint Independent (Base)</English> + <German>Sammelpunkt Widerstand (Basis)</German> + </Key> + <Key ID="STR_ACE_Respawn_RallypointWest"> + <English>Rallypoint West</English> + <German>Sammelpunkt West</German> + </Key> + <Key ID="STR_ACE_Respawn_RallypointEast"> + <English>Rallypoint East</English> + <German>Sammelpunkt Ost</German> + </Key> + <Key ID="STR_ACE_Respawn_RallypointIndependent"> + <English>Rallypoint Independent</English> + <German>Sammelpunkt Widerstand</German> + </Key> </Package> </Project> From 09289fbf48098ffe23ba0bde1065472d2ce814cc Mon Sep 17 00:00:00 2001 From: commy2 <commy-2@gmx.de> Date: Wed, 15 Apr 2015 08:34:30 +0200 Subject: [PATCH 009/109] only on server though --- addons/respawn/CfgEventHandlers.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/respawn/CfgEventHandlers.hpp b/addons/respawn/CfgEventHandlers.hpp index 6d7356a607..58aa8995ee 100644 --- a/addons/respawn/CfgEventHandlers.hpp +++ b/addons/respawn/CfgEventHandlers.hpp @@ -64,7 +64,7 @@ class Extended_Init_EventHandlers { class Extended_InitPost_EventHandlers { class CAManBase { class ADDON { - init = QUOTE(_this call FUNC(handleInitPostServer)); + serverInit = QUOTE(_this call FUNC(handleInitPostServer)); }; }; }; From af3fdf9b91c04a3164fc5b60f11f8a0bf396c4bf Mon Sep 17 00:00:00 2001 From: Marco <ramius86@users.noreply.github.com> Date: Wed, 15 Apr 2015 10:28:09 +0200 Subject: [PATCH 010/109] Update stringtable.xml Italian translation --- addons/medical/stringtable.xml | 148 +++++++++++++++++++++++++++++++-- 1 file changed, 143 insertions(+), 5 deletions(-) diff --git a/addons/medical/stringtable.xml b/addons/medical/stringtable.xml index 65b663708b..a2db83b09b 100644 --- a/addons/medical/stringtable.xml +++ b/addons/medical/stringtable.xml @@ -10,6 +10,7 @@ <Polish>Wstrzyknij atropinę</Polish> <French>Injecter de l'atropine</French> <Russian>Ввести атропин</Russian> + <Italian>Inietta atropina</Italian> </Key> <Key ID="STR_ACE_Medical_Inject_Epinephrine"> <English>Inject Epinephrine</English> @@ -21,7 +22,7 @@ <Russian>Ввести адреналин</Russian> <Hungarian>Adrenalin</Hungarian> <Portuguese>Injetar Epinefrina</Portuguese> - <Italian>Inietta Epinefrina</Italian> + <Italian>Inietta epinefrina</Italian> </Key> <Key ID="STR_ACE_Medical_Inject_Morphine"> <English>Inject Morphine</English> @@ -45,7 +46,7 @@ <French>Transfusion</French> <Hungarian>Infúzió</Hungarian> <Portuguese>Transfundir Sangue</Portuguese> - <Italian>Effettua Trasfusione</Italian> + <Italian>Effettua trasfusione di sangue</Italian> </Key> <Key ID="STR_ACE_Medical_Transfuse_Plasma"> <English>Transfuse Plasma</English> @@ -55,6 +56,7 @@ <Polish>Przetocz osocze</Polish> <French>Transfuser du Plasma</French> <Russian>Перелить плазму</Russian> + <Italian>Effettua trasfusione di plasma</Italian> </Key> <Key ID="STR_ACE_Medical_Transfuse_Saline"> <English>Transfuse Saline</English> @@ -64,6 +66,7 @@ <Polish>Przetocz solankę</Polish> <French>Transfuser de la Saline</French> <Russian>Перелить физраствор</Russian> + <Italian>Effettua trasfusione di soluzione salina</Italian> </Key> <Key ID="STR_ACE_Medical_Apply_Tourniquet"> <English>Apply Tourniquet</English> @@ -72,6 +75,7 @@ <Czech>Aplikovat škrtidlo</Czech> <Polish>Załóż stazę</Polish> <French>Appliquer un garrot</French> + <Italian>Applica laccio emostatico</Italian> </Key> <Key ID="STR_ACE_Medical_Bandage"> <English>Bandage</English> @@ -189,6 +193,7 @@ <Polish>Wstrzykiwanie atropiny ...</Polish> <French>Injection d'Atropine ...</French> <Russian>Введение атропина...</Russian> + <Italian>Inietto l'atropina ...</Italian> </Key> <Key ID="STR_ACE_Medical_Transfusing_Blood"> <English>Transfusing Blood ...</English> @@ -200,7 +205,7 @@ <French>Transfusion Sanguine ...</French> <Hungarian>Infúzió...</Hungarian> <Portuguese>Transfundindo Sangue ...</Portuguese> - <Italian>Effettuo la trasfusione ...</Italian> + <Italian>Effettuo la trasfusione di sangue ...</Italian> </Key> <Key ID="STR_ACE_Medical_Transfusing_Saline"> <English>Transfusing Saline ...</English> @@ -210,6 +215,7 @@ <Polish>Przetaczanie solanki ...</Polish> <French>Transfusion de saline ...</French> <Russian>Переливание физраствора...</Russian> + <Italian>Effettuo la rasfusione di salina</Italian> </Key> <Key ID="STR_ACE_Medical_Transfusing_Plasma"> <English>Transfusing Plasma ...</English> @@ -219,6 +225,7 @@ <Polish>Przetaczanie osocza ...</Polish> <French>Transfusion de Plasma ...</French> <Russian>Переливание плазмы...</Russian> + <Italian>Effettu la trasfusione di plasma ...</Italian> </Key> <Key ID="STR_ACE_Medical_Bandaging"> <English>Bandaging ...</English> @@ -240,6 +247,7 @@ <Polish>Zakładanie stazy ...</Polish> <French>Mise en place du Garrot ...</French> <Russian>Наложение жгута...</Russian> + <Italian>Sto applicando il laccio emostatico ...</Italian> </Key> <Key ID="STR_ACE_MEDICAL_ACTIONS_Medical"> <English>Medical</English> @@ -260,6 +268,7 @@ <Czech>Obinadlo</Czech> <Polish>Bandaż jałowy</Polish> <French>Bandage rapide</French> + <Italian>Bendaggio rapido</Italian> </Key> <Key ID="STR_ACE_MEDICAL_ACTIONS_PackingBandage"> <English>Packing Bandage</English> @@ -267,6 +276,7 @@ <Spanish>Vendaje compresivo</Spanish> <Russian>Компресионный пакет</Russian> <Polish>Bandaż uciskowy</Polish> + <Italian>Bendaggio compressivo</Italian> </Key> <Key ID="STR_ACE_MEDICAL_ACTIONS_ElasticBandage"> <English>Elastic Bandage</English> @@ -276,6 +286,7 @@ <Czech>Elastické obinadlo</Czech> <Polish>Bandaż elastyczny</Polish> <French>Pansement élastique</French> + <Italian>Bendaggio elastico</Italian> </Key> <Key ID="STR_ACE_MEDICAL_ACTIONS_QuikClot"> <English>QuikClot</English> @@ -285,6 +296,7 @@ <Polish>Opatrunek QuikClot</Polish> <Czech>QuikClot</Czech> <French>Hémostatique</French> + <Italian>QuikClot(polvere emostatica)</Italian> </Key> <Key ID="STR_ACE_MEDICAL_ACTIONS_CheckPulse"> <English>Check Pulse</English> @@ -294,6 +306,7 @@ <Czech>Zkontrolovat pulz</Czech> <Polish>Sprawdź tętno</Polish> <French>Vérifier les pulsations</French> + <Italian>Controlla il polso</Italian> </Key> <Key ID="STR_ACE_MEDICAL_ACTIONS_CheckBloodPressure"> <English>Check Blood Pressure</English> @@ -303,6 +316,7 @@ <Czech>Zkontrolovat krevní tlak</Czech> <Polish>Sprawdź ciśnienie krwi</Polish> <French>Vérification de la Tension</French> + <Italian>Controlla pressionsa sanguigna</Italian> </Key> <Key ID="STR_ACE_MEDICAL_ACTIONS_TriageCard"> <English>Triage Card</English> @@ -312,6 +326,7 @@ <Polish>Karta segregacyjna</Polish> <Czech>Karta Triage</Czech> <French>Carte de Triage</French> + <Italian>Triage Card</Italian> </Key> <Key ID="STR_ACE_MEDICAL_ACTIONS_Tourniquet"> <English>Tourniquet</English> @@ -321,6 +336,7 @@ <Czech>Škrtidlo</Czech> <Polish>Staza</Polish> <French>Garrot</French> + <Italian>Laccio emostatico</Italian> </Key> <Key ID="STR_ACE_MEDICAL_ACTIONS_RemoveTourniquet"> <English>Remove Tourniquet</English> @@ -330,6 +346,7 @@ <Czech>Sundat škrtidlo</Czech> <Polish>Zdejmij stazę</Polish> <French>Enlever le Garrot</French> + <Italian>Rimuovi laccio emostatico</Italian> </Key> <Key ID="STR_ACE_MEDICAL_ACTIONS_Blood4_1000"> <English>Give Blood IV (1000ml)</English> @@ -339,6 +356,7 @@ <Polish>Podaj krew IV (1000ml)</Polish> <French>Administrer du Sang en IV (1000ml)</French> <Czech>Podat krev. transfúzi (1000ml)</Czech> + <Italian>Effettua trasfusione sangue IV (1000ml)</Italian> </Key> <Key ID="STR_ACE_MEDICAL_ACTIONS_Blood4_500"> <English>Give Blood IV (500ml)</English> @@ -348,6 +366,7 @@ <Polish>Podaj krew IV (500ml)</Polish> <French>Administrer du Sang en IV (500ml)</French> <Czech>Podat krev. transfúzi (500ml) </Czech> + <Italian>Effettua trasfusione sangue IV (500ml)</Italian> </Key> <Key ID="STR_ACE_MEDICAL_ACTIONS_Blood4_250"> <English>Give Blood IV (250ml)</English> @@ -357,6 +376,7 @@ <Polish>Podaj krew IV (250ml)</Polish> <French>Administrer du Sang en IV (250ml)</French> <Czech>Podat krev. transfúzi (250ml)</Czech> + <Italian>Effettua trasfusione sangue IV (250ml)</Italian> </Key> <Key ID="STR_ACE_MEDICAL_ACTIONS_Plasma4_1000"> <English>Give Plasma IV (1000ml)</English> @@ -366,6 +386,7 @@ <Polish>Podaj osocze IV (1000ml)</Polish> <French>Administrer du Plasma en IV (1000ml)</French> <Czech>Podat plazmu (1000ml)</Czech> + <Italian>Effettua trasfusione plasma IV (1000ml)</Italian> </Key> <Key ID="STR_ACE_MEDICAL_ACTIONS_Plasma4_500"> <English>Give Plasma IV (500ml)</English> @@ -375,6 +396,7 @@ <Polish>Podaj osocze IV (500ml)</Polish> <French>Administrer du Plasma en IV (500ml)</French> <Czech>Podat plazmu (500ml)</Czech> + <Italian>Effettua trasfusione plasma IV (500ml)</Italian> </Key> <Key ID="STR_ACE_MEDICAL_ACTIONS_Plasma4_250"> <English>Give Plasma IV (250ml)</English> @@ -384,6 +406,7 @@ <Polish>Podaj osocze IV (250ml)</Polish> <French>Administrer du Plasma en IV (250ml)</French> <Czech>Podat plazmu (250ml)</Czech> + <Italian>Effettua trasfusione plasma IV (250ml)</Italian> </Key> <Key ID="STR_ACE_MEDICAL_ACTIONS_Saline4_1000"> <English>Give Saline IV (1000ml)</English> @@ -393,6 +416,7 @@ <Polish>Podaj solankę IV (1000ml)</Polish> <French>Administrer de la Solution Saline en IV (1000ml)</French> <Czech>Podaz fyz. roztok (1000ml)</Czech> + <Italian>Effettua trasfusione salina IV (1000ml)</Italian> </Key> <Key ID="STR_ACE_MEDICAL_ACTIONS_Saline4_500"> <English>Give Saline IV (500ml)</English> @@ -402,6 +426,7 @@ <Polish>Podaj solankę IV (500ml)</Polish> <French>Administrer de la Solution Saline en IV (500ml)</French> <Czech>Podaz fyz. roztok (500ml)</Czech> + <Italian>Effettua trasfusione salina IV (500ml)</Italian> </Key> <Key ID="STR_ACE_MEDICAL_ACTIONS_Saline4_250"> <English>Give Saline IV (250ml)</English> @@ -411,6 +436,7 @@ <Polish>Podaj solankę IV (250ml)</Polish> <French>Administrer de la Solution Saline en IV (250ml)</French> <Czech>Podaz fyz. roztok (250ml)</Czech> + <Italian>Effettua trasfusione salina IV (250ml)</Italian> </Key> <Key ID="STR_ACE_MEDICAL_TRIAGE_STATUS_MINOR"> <English>Minor</English> @@ -420,6 +446,7 @@ <Polish>Normalny</Polish> <French>Mineur</French> <Czech>Minimální</Czech> + <Italian>Minore</Italian> </Key> <Key ID="STR_ACE_MEDICAL_TRIAGE_STATUS_DELAYED"> <English>Delayed</English> @@ -429,6 +456,7 @@ <French>Différé</French> <German>Verzögert</German> <Czech>Odložitelný</Czech> + <Italian>Differito</Italian> </Key> <Key ID="STR_ACE_MEDICAL_TRIAGE_STATUS_IMMEDIATE"> <English>Immediate</English> @@ -438,6 +466,7 @@ <French>Urgence Immédiate</French> <German>Sofort</German> <Czech>Okamžiý</Czech> + <Italian>Immediata</Italian> </Key> <Key ID="STR_ACE_MEDICAL_TRIAGE_STATUS_DECEASED"> <English>Deceased</English> @@ -447,6 +476,7 @@ <French>Décédé</French> <German>Verstorben</German> <Czech>Mrtvý</Czech> + <Italian>Deceduto</Italian> </Key> <Key ID="STR_ACE_MEDICAL_TRIAGE_STATUS_NONE"> <English>None</English> @@ -456,6 +486,7 @@ <French>Aucun</French> <German>Keine</German> <Czech>Nic</Czech> + <Italian>Nessuna</Italian> </Key> <Key ID="STR_ACE_MEDICAL_NORMAL_BREATHING"> <English>Normal breathing</English> @@ -465,6 +496,7 @@ <Polish>Normalny oddech</Polish> <German>Normale Atmung</German> <Czech>Dýchá normálně</Czech> + <Italian>Respiro normale</Italian> </Key> <Key ID="STR_ACE_MEDICAL_NO_BREATHING"> <English>No breathing</English> @@ -474,6 +506,7 @@ <French>Aucune Respiration</French> <Polish>Brak oddechu</Polish> <Czech>Nedýchá</Czech> + <Italian>Mancanza di respiro</Italian> </Key> <Key ID="STR_ACE_MEDICAL_DIFFICULT_BREATHING"> <English>Difficult breathing</English> @@ -483,6 +516,7 @@ <Polish>Trudności z oddychaniem</Polish> <German>Schwere Atmung</German> <Czech>Dýchá s obtížemi</Czech> + <Italian>Difficoltà a respirare</Italian> </Key> <Key ID="STR_ACE_MEDICAL_ALMOST_NO_BREATHING"> <English>Almost no breathing</English> @@ -492,6 +526,7 @@ <French>Respiration Faible</French> <Polish>Prawie brak oddechu</Polish> <Czech>Skoro nedýchá</Czech> + <Italian>Respira a fatica</Italian> </Key> <Key ID="STR_ACE_MEDICAL_STATUS_BLEEDING"> <English>Bleeding</English> @@ -501,6 +536,7 @@ <French>Saignement</French> <Polish>Krwawienie zewnętrzne</Polish> <Czech>Krvácí</Czech> + <Italian>Sanguinando</Italian> </Key> <Key ID="STR_ACE_MEDICAL_STATUS_PAIN"> <English>In Pain</English> @@ -510,6 +546,7 @@ <French>Ressent de la Douleur</French> <Polish>W bólu</Polish> <Czech>V bolestech</Czech> + <Italian>Con dolore</Italian> </Key> <Key ID="STR_ACE_MEDICAL_STATUS_LOST_BLOOD"> <English>Lost a lot of Blood</English> @@ -519,6 +556,7 @@ <French>A Perdu Bcp de Sang</French> <Polish>Stracił dużo krwi</Polish> <Czech>Ztratil hodně krve</Czech> + <Italian>Ha perso parecchio sangue</Italian> </Key> <Key ID="STR_ACE_MEDICAL_STATUS_TOURNIQUET_APPLIED"> <English>Tourniquet [CAT]</English> @@ -528,6 +566,7 @@ <French>Garrot [CAT]</French> <Polish>Staza [typ. CAT]</Polish> <Czech>Škrtidlo [CAT]</Czech> + <Italian>Laccio emostatico [CAT]</Italian> </Key> <Key ID="STR_ACE_MEDICAL_receivingIvVolume"> <English>Receiving IV [%1ml]</English> @@ -537,6 +576,7 @@ <Polish>Otrzymywanie IV [%1ml]</Polish> <French>Transfusion en IV [%1ml]</French> <Czech>Přijímání transfúze [%1ml]</Czech> + <Italian>Ricevendo IV [%1ml]</Italian> </Key> <Key ID="STR_ACE_MEDICAL_BANDAGE_BASIC_DISPLAY"> <English>Bandage (Basic)</English> @@ -546,6 +586,7 @@ <French>Bandage (Standard)</French> <Polish>Bandaż (jałowy)</Polish> <Czech>Bandáž (standartní)</Czech> + <Italian>Bendaggio (base)</Italian> </Key> <Key ID="STR_ACE_MEDICAL_BANDAGE_BASIC_DESC_SHORT"> <English>Used to cover a wound</English> @@ -554,6 +595,7 @@ <French>Utilisé Pour Couvrir Une Blessure</French> <Polish>Używany w celu przykrycia i ochrony miejsca zranienia</Polish> <German>Verwendet, um Wunden abzudecken</German> + <Italian>Usato per coprire una ferita</Italian> </Key> <Key ID="STR_ACE_MEDICAL_BANDAGE_BASIC_DESC_USE"> <English>A dressing, that is a particular material used to cover a wound, which is applied over the wound once bleeding has been stemmed.</English> @@ -562,6 +604,7 @@ <Spanish>Un apósito, material específico utilizado para cubrir una herida, se aplica sobre la herida una vez ha dejado de sangrar.</Spanish> <French>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é.</French> <Polish>Opatrunek materiałowy, używany do przykrywania ran, zakładany na ranę po zatamowaniu krwawienia.</Polish> + <Italian>Una benda apposta, utilizzata per coprire una ferita, la quale è applicato sopra di essa una volta fermata l'emorragia.</Italian> </Key> <Key ID="STR_ACE_MEDICAL_PACKING_BANDAGE_DISPLAY"> <English>Packing Bandage</English> @@ -570,6 +613,7 @@ <Spanish>Vendaje compresivo</Spanish> <French>Bandage Mèche</French> <Polish>Bandaż (uciskowy)</Polish> + <Italian>Bendaggio compressivo</Italian> </Key> <Key ID="STR_ACE_MEDICAL_PACKING_BANDAGE_DESC_SHORT"> <English>Used to pack medium to large wounds and stem the bleeding</English> @@ -578,6 +622,7 @@ <Spanish>Se utiliza para vendar heridas medianas o grandes y detener el sangrado</Spanish> <French>Utilisé pour remplir la cavité créée dans une blessure de taille moyenne à grande.</French> <Polish>Używany w celu opatrywania średnich i dużych ran oraz tamowania krwawienia.</Polish> + <Italian>Usato su medie o larghe ferite per fermare emorragie.</Italian> </Key> <Key ID="STR_ACE_MEDICAL_PACKING_BANDAGE_DESC_USE"> <English>A bandage used to pack the wound to stem bleeding and facilitate wound healing. Packing a wound is an option in large polytrauma injuries.</English> @@ -585,6 +630,7 @@ <Spanish>Se utiliza para detener la hemorragia de una herida y favorecer su cicatrización. Se usa en grandes lesiones o politraumatismos.</Spanish> <French>Bandage pouvant être inseré dans les blessures pour éponger le saignement et faciliter la guerrison. Ce bandage est optionnel pour soigner les lésions polytraumatique.</French> <Polish>Opatrunek stosowany w celu zatrzymania krwawienia i osłony większych ran.</Polish> + <Italian>Un bendaggio usato per bendare ferite con emorragie e facilitare la guarigione. Bendare una ferita è una opzione su ferite di vario tipo.</Italian> </Key> <Key ID="STR_ACE_MEDICAL_BANDAGE_ELASTIC_DISPLAY"> <English>Bandage (Elastic)</English> @@ -594,6 +640,7 @@ <French>Bandage (Élastique)</French> <Polish>Bandaż (elastyczny)</Polish> <Czech>Bandáž (elastická)</Czech> + <Italian>Benda (Elastica)</Italian> </Key> <Key ID="STR_ACE_MEDICAL_BANDAGE_ELASTIC_DESC_SHORT"> <English>Bandage kit, Elastic</English> @@ -602,6 +649,7 @@ <Spanish>Kit de vendaje (Elástico)</Spanish> <French>Bandage Compressif Élastique</French> <Polish>Zestaw bandaży elastycznych.</Polish> + <Italian>Kit bendaggio, elastico</Italian> </Key> <Key ID="STR_ACE_MEDICAL_BANDAGE_ELASTIC_DESC_USE"> <English>Allows an even compression and extra support to the injured area.</English> @@ -610,6 +658,7 @@ <French>Ce bandage peut être utilisé pour compresser la plaie afin de ralentir le saignement et assurer la tenue du bandage lors de mouvement.</French> <Polish>Elastyczna opaska podtrzymująca opatrunek oraz usztywniająca okolice stawów.</Polish> <Spanish>Brinda una compresión uniforme y ofrece soporte extra a una zona lesionada</Spanish> + <Italian>Permette di comprimevere e aiutare la zone ferita.</Italian> </Key> <Key ID="STR_ACE_MEDICAL_TOURNIQUET_DISPLAY"> <English>Tourniquet (CAT)</English> @@ -619,6 +668,7 @@ <French>Garrot (CAT)</French> <Polish>Staza (typ. CAT)</Polish> <Czech>Škrtidlo (CAT)</Czech> + <Italian>Laccio emostatico (CAT)</Italian> </Key> <Key ID="STR_ACE_MEDICAL_TOURNIQUET_DESC_SHORT"> <English>Slows down blood loss when bleeding</English> @@ -627,6 +677,7 @@ <French>Ralentit le saignement</French> <Polish>Zmniejsza ubytek krwi z kończyn w przypadku krwawienia.</Polish> <German>Verringert den Blutverlust während einer Blutung</German> + <Italian>Rallenta la perdita di sangue in caso di sanguinamento</Italian> </Key> <Key ID="STR_ACE_MEDICAL_TOURNIQUET_DESC_USE"> <English>A constricting device used to compress venous and arterial circulation in effect inhibiting or slowing blood flow and therefore decreasing loss of blood.</English> @@ -635,6 +686,7 @@ <French>Un dispositif permettant de compresser les artères et veines afin de réduire la perte de sang.</French> <Polish>Opaska uciskowa CAT służy do tamowanie krwotoków w sytuacji zranienia kończyn z masywnym krwawieniem tętniczym lub żylnym.</Polish> <German>Ein Gerät, das Druck auf Venen und Arterien ausübt und so den Blutfluss verringert.</German> + <Italian>Un laccio emostatico usato per comprimere le vene e arterie per bloccare o rallentare la circolazione del sangue e quindi rallentare dissanguamenti.</Italian> </Key> <Key ID="STR_ACE_MEDICAL_MORPHINE_DISPLAY"> <English>Morphine autoinjector</English> @@ -644,6 +696,7 @@ <French>Auto-injecteur de Morphine</French> <Polish>Autostrzykawka z morfiną</Polish> <Czech>Autoinjektor morfin</Czech> + <Italian>Autoiniettore di morfina</Italian> </Key> <Key ID="STR_ACE_MEDICAL_MORPHINE_DESC_SHORT"> <English>Used to combat moderate to severe pain experiences</English> @@ -652,6 +705,7 @@ <Spanish>Usado para combatir los estados dolorosos de moderados a severos</Spanish> <French>Utilisé pour réduire les douleurs modérées à sévères.</French> <Polish>Morfina. Ma silne działanie przeciwbólowe.</Polish> + <Italian>Usato per combattere il dolore.</Italian> </Key> <Key ID="STR_ACE_MEDICAL_MORPHINE_DESC_USE"> <English>An analgesic used to combat moderate to severe pain experiences.</English> @@ -660,6 +714,7 @@ <French>Un Analgésique puissant servant à réduire les douleurs modérées à sévères.</French> <Polish>Organiczny związek chemiczny z grupy alkaloidów. Ma silne działanie przeciwbólowe.</Polish> <German>Ein Schmerzmittel um mäßige bis starke Schmerzen zu behandeln</German> + <Italian>Un analgesico usato per combattere il dolore.</Italian> </Key> <Key ID="STR_ACE_MEDICAL_ATROPINE_DISPLAY"> <English>Atropin autoinjector</English> @@ -669,6 +724,7 @@ <Polish>Autostrzykawka AtroPen</Polish> <German>Atropin Autoinjektor</German> <Czech>Autoinjektor atropin</Czech> + <Italian>Autoiniettore di Atropina</Italian> </Key> <Key ID="STR_ACE_MEDICAL_ATROPINE_DESC_SHORT"> <English>Used in NBC scenarios</English> @@ -677,6 +733,7 @@ <French>Utilisé en cas d'attaque CBRN</French> <Polish>Atropina. Stosowana jako lek rozkurczowy i środek rozszerzający źrenice.</Polish> <German>Verwendet bei ABC Kontamination</German> + <Italian>Usato in situazioni con gas nervino.</Italian> </Key> <Key ID="STR_ACE_MEDICAL_ATROPINE_DESC_USE"> <English>A drug used by the Military in NBC scenarios.</English> @@ -685,6 +742,7 @@ <French>Médicament utilisé par l'armée en cas d'attaque CBRN</French> <Polish>Atropina. Stosowana jako lek rozkurczowy i środek rozszerzający źrenice. Środek stosowany w przypadku zagrożeń NBC.</Polish> <German>Ein Medikament, das vom Militär bei ABC Kontamination verwendet wird.</German> + <Italian>E' un farmaco usato in ambito militare in scenari con presenza di gas nervino.</Italian> </Key> <Key ID="STR_ACE_MEDICAL_EPINEPHRINE_DISPLAY"> <English>Epinephrine autoinjector</English> @@ -694,6 +752,7 @@ <Polish>Autostrzykawka EpiPen</Polish> <German>Epiniphrin Autoinjektor</German> <Czech>Autoinjektor adrenalin</Czech> + <Italian>Autoiniettore di Epinefrina</Italian> </Key> <Key ID="STR_ACE_MEDICAL_EPINEPHRINE_DESC_SHORT"> <English>Increase heart rate and counter effects given by allergic reactions</English> @@ -702,6 +761,7 @@ <French>Augmente la fréquence cadiaque et annule les effets d'une réaction anaphylactique</French> <Polish>Adrenalina. Zwiększa puls i przeciwdziała efektom wywołanym przez reakcje alergiczne</Polish> <German>Steigert die Herzfrequenz, um den Effekt von allergischen Reaktionen zu bekämpfen</German> + <Italian>Aumenta il battito cardiaco e combatte gli effetti di reazioni allergiche.</Italian> </Key> <Key ID="STR_ACE_MEDICAL_EPINEPHRINE_DESC_USE"> <English>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.</English> @@ -709,6 +769,7 @@ <Spanish>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.</Spanish> <French>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.</French> <Polish>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.</Polish> + <Italian>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.</Italian> </Key> <Key ID="STR_ACE_MEDICAL_PLASMA_IV"> <English>Plasma IV (1000ml)</English> @@ -717,6 +778,7 @@ <French>Plasma Sanguin IV (1000ml)</French> <Polish>Osocze IV (1000ml)</Polish> <German>Plasma IV (1000ml)</German> + <Italian>Plasma IV (1000ml)</Italian> </Key> <Key ID="STR_ACE_MEDICAL_PLASMA_IV_DESC_SHORT"> <English>A volume-expanding blood supplement.</English> @@ -724,6 +786,7 @@ <Spanish>Suplemento para expandir el volumen sanguíneo.</Spanish> <French>Supplément visant à remplacer les volumes sanguin</French> <Polish>Składnik krwi, używany do zwiększenia jej objętości.</Polish> + <Italian>Aiuta ad aumentare il volume sanguigno.</Italian> </Key> <Key ID="STR_ACE_MEDICAL_PLASMA_IV_DESC_USE"> <English>A volume-expanding blood supplement.</English> @@ -731,6 +794,7 @@ <Spanish>Suplemento para expandir el volumen sanguíneo.</Spanish> <French>Supplément visant à remplacer le volume sanguin et remplace les plaquettes.</French> <Polish>Składnik krwi, używany do zwiększenia jej objętości.</Polish> + <Italian>Aiuta ad aumentare il volume sanguigno.</Italian> </Key> <Key ID="STR_ACE_MEDICAL_PLASMA_IV_500"> <English>Plasma IV (500ml)</English> @@ -739,6 +803,7 @@ <French>Plasma Sanguin IV (500ml)</French> <Polish>Osocze IV (500ml)</Polish> <German>Plasma IV (500ml)</German> + <Italian>Plasma IV (500ml)</Italian> </Key> <Key ID="STR_ACE_MEDICAL_PLASMA_IV_250"> <English>Plasma IV (250ml)</English> @@ -747,6 +812,7 @@ <French>Plasma Sanguin (250ml)</French> <Polish>Osocze IV (250ml)</Polish> <German>Plasma IV (250ml)</German> + <Italian>Plasma IV (250ml)</Italian> </Key> <Key ID="STR_ACE_MEDICAL_BLOOD_IV"> <English>Blood IV (1000ml)</English> @@ -755,6 +821,7 @@ <French>Cullot Sanguin IV (1000ml)</French> <Polish>Krew IV (1000ml)</Polish> <German>Blut IV (1000ml)</German> + <Italian>Sangue IV (1000ml)</Italian> </Key> <Key ID="STR_ACE_MEDICAL_BLOOD_IV_DESC_SHORT"> <English>Blood IV, for restoring a patients blood (keep cold)</English> @@ -762,12 +829,14 @@ <Spanish>Sangre intravenosa, para restarurar el volumen sanguíneo (mantener frío)</Spanish> <French>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. </French> <Polish>Krew IV, używana do uzupełnienia krwi u pacjenta, trzymać w warunkach chłodniczych</Polish> + <Italian>Sangue usato per ripristinare pazienti in cui si è verificata una perdita di sangue (conservare al fresco)</Italian> </Key> <Key ID="STR_ACE_MEDICAL_BLOOD_IV_DESC_USE"> <English>O Negative infusion blood used in strict and rare events to replenish blood supply usually conducted in the transport phase of medical care.</English> <Russian>Кровь I группы, резус-отрицательная, применяется по жизненным показаниям для возмещения объема потерянной крови на догоспитальном этапе оказания медицинской помощи.</Russian> <Polish>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.</Polish> <Spanish>Utilice sólo durante gran pérdida de sangre para reemplazar el volumen de sangre perdida. Uso habitual durante el transporte de heridos.</Spanish> + <Italian>Sangue 0 negativo usato per ripristinare sangue in pazienti in cui si è verificata una perdita di sangue.</Italian> </Key> <Key ID="STR_ACE_MEDICAL_BLOOD_IV_500"> <English>Blood IV (500ml)</English> @@ -776,6 +845,7 @@ <French>Cullot Sanguin IV (500ml)</French> <Polish>Krew IV (500ml)</Polish> <German>Blut IV (500ml)</German> + <Italian>Sangue IV (500ml)</Italian> </Key> <Key ID="STR_ACE_MEDICAL_BLOOD_IV_250"> <English>Blood IV (250ml)</English> @@ -784,6 +854,7 @@ <French>Cullot Sanguin IV (250ml)</French> <Polish>Krew IV (250ml)</Polish> <German>Blut IV (250ml)</German> + <Italian>Samgue IV (250ml)</Italian> </Key> <Key ID="STR_ACE_MEDICAL_SALINE_IV"> <English>Saline IV (1000ml)</English> @@ -792,6 +863,7 @@ <French>Solution Saline 0.9% IV (1000ml)</French> <Polish>Solanka 0,9% IV (1000ml)</Polish> <German>Kochsalzlösung (1000ml)</German> + <Italian>Soluzione salina IV (1000ml)</Italian> </Key> <Key ID="STR_ACE_MEDICAL_SALINE_IV_DESC_SHORT"> <English>Saline IV, for restoring a patients blood</English> @@ -799,6 +871,7 @@ <Spanish>Solución salina intravenosa, para restaurar el volumen sanguíneo</Spanish> <French>Solution Saline 0.9% IV, pour rétablir temporairement la tension artérielle</French> <Polish>Solanka 0,9%, podawana dożylnie (IV), używana w celu uzupełnienia krwi u pacjenta</Polish> + <Italian>Soluzione salina, usata per ripristinare sangue nei pazienti.</Italian> </Key> <Key ID="STR_ACE_MEDICAL_SALINE_IV_DESC_USE"> <English>A medical volume-replenishing agent introduced into the blood system through an IV infusion.</English> @@ -806,6 +879,7 @@ <Spanish>Suero fisiológico inoculado al torrente sanguíneo de forma intravenosa.</Spanish> <French>Un remplacement temporaire pour rétablir la tension artérielle lors de perte sanguine, administré par intra-veineuse</French> <Polish>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).</Polish> + <Italian>Una soluzione medica per ripristinare il volume del sangue introdotta tramite trasfusione IV.</Italian> </Key> <Key ID="STR_ACE_MEDICAL_SALINE_IV_500"> <English>Saline IV (500ml)</English> @@ -814,6 +888,7 @@ <French>Solution Saline 0.9% IV (500ml)</French> <Polish>Solanka 0,9% IV (500ml)</Polish> <German>Kochsalzlösung (500ml)</German> + <Italian>Soluzione salina IV (500ml)</Italian> </Key> <Key ID="STR_ACE_MEDICAL_SALINE_IV_250"> <English>Saline IV (250ml)</English> @@ -822,6 +897,7 @@ <French>Solution Saline 0.9% IV (250ml)</French> <Polish>Solanka 0,9% IV (250ml)</Polish> <German>Kochsalzlösung (250ml)</German> + <Italian>Soluzione salina IV (250ml)</Italian> </Key> <Key ID="STR_ACE_MEDICAL_QUIKCLOT_DISPLAY"> <English>Basic Field Dressing (QuikClot)</English> @@ -830,6 +906,7 @@ <French>Bandage Regulier (Coagulant)</French> <Polish>Podstawowy pakiet opatrunkowy (QuikClot)</Polish> <German>Verbandpäckchen(Gerinnungsmittel)</German> + <Italian>Bendaggio emostatico (QuikClot)</Italian> </Key> <Key ID="STR_ACE_MEDICAL_QUIKCLOT_DESC_SHORT"> <English>QuikClot bandage</English> @@ -838,6 +915,7 @@ <French>Bandage coagulant</French> <Polish>Hemostatyczny pakiet QuikClot. Podstawowy opatrunek stosowany na rany.</Polish> <German>Bandage mit Gerinnungsmittel</German> + <Italian>Bendaggio emostatico (QuikClot)</Italian> </Key> <Key ID="STR_ACE_MEDICAL_QUIKCLOT_DESC_USE"> <English>Hemostatic bandage with coagulant that stops bleeding.</English> @@ -846,6 +924,7 @@ <Polish>Proszkowy opatrunek adsorpcyjny przeznaczony do tamowania zagrażających życiu krwawień średniej i dużej intensywności.</Polish> <Spanish>Vendaje hemostático con coagulante que detiene el sangrado.</Spanish> <German>Verband mit Gerinnungsmittel, um starke Blutung zu behandeln.</German> + <Italian>Bendaggio emostatico con coagulante che permette di arrestare perdite di sangue</Italian> </Key> <Key ID="STR_ACE_MEDICAL_AID_KIT_DISPLAY"> <English>Personal Aid Kit</English> @@ -854,6 +933,7 @@ <French>Équipement de support vital</French> <Polish>Apteczka osobista</Polish> <German>Persönliches Verbandpäckchen</German> + <Italian>Pronto soccorso personale</Italian> </Key> <Key ID="STR_ACE_MEDICAL_AID_KIT_DESC_SHORT"> <English>Includes various treatment kit needed for stitching or advanced treatment</English> @@ -862,6 +942,7 @@ <French>Inclue du matériel medical pour les traitements avancés, tel les points de suture.</French> <Polish>Zestaw środków medycznych do opatrywania ran i dodatkowego leczenia po-urazowego</Polish> <German>Beinhaltet medizinisches Material für fortgeschrittene Behandlung und zum Nähen.</German> + <Italian>Include vario materiale medico per trattamenti avanzati.</Italian> </Key> <Key ID="STR_ACE_MEDICAL_AID_KIT_DESC_USE"> <English></English> @@ -869,6 +950,7 @@ <French></French> <Spanish></Spanish> <Polish>W znacznym stopniu poprawia stan pacjenta</Polish> + <Italian></Italian> </Key> <Key ID="STR_ACE_MEDICAL_SURGICALKIT_DISPLAY"> <English>Surgical Kit</English> @@ -877,6 +959,7 @@ <Spanish>Kit quirúrgico</Spanish> <Polish>Zestaw do szycia ran</Polish> <German>Operationsset</German> + <Italian>Kit chirurgico</Italian> </Key> <Key ID="STR_ACE_MEDICAL_SURGICALKIT_DESC_SHORT"> <English>Surgical Kit for in field advanced medical treatment</English> @@ -885,6 +968,7 @@ <Spanish>Kit quirúrgico para el tratamiento avanzado en el campo de batalla</Spanish> <Polish>Zestaw pozwalający na zszywanie ran w polu</Polish> <German>Operationsset für fortgeschrittene medizinische Feldversorgung</German> + <Italian>Kit chirurgico per trattamenti avanzati sul campo.</Italian> </Key> <Key ID="STR_ACE_MEDICAL_SURGICALKIT_DESC_USE"> <English>Surgical Kit for in field advanced medical treatment</English> @@ -893,6 +977,7 @@ <Polish>Zestaw pozwalający na zszywanie ran w polu</Polish> <German>Operationsset für fortgeschrittene medizinische Feldversorgung</German> <French>Trousse chirurgicale pour le traitement sur le terrain</French> + <Italian>Kit chirurgico per trattamenti avanzati sul campo.</Italian> </Key> <Key ID="STR_ACE_MEDICAL_BODYBAG_DISPLAY"> <English>Bodybag</English> @@ -901,6 +986,7 @@ <Spanish>Bolsa para cadáveres</Spanish> <Polish>Worek na zwłoki</Polish> <German>Leichensack</German> + <Italian>Sacca per corpi</Italian> </Key> <Key ID="STR_ACE_MEDICAL_BODYBAG_DESC_SHORT"> <English>A bodybag for dead bodies</English> @@ -909,6 +995,7 @@ <Spanish>Una bolsa para cadáveres</Spanish> <Polish>Worek do pakowania zwłok</Polish> <German>Ein Leichensack für Tote</German> + <Italian>Una sacca nera per trasportare cadaveri.</Italian> </Key> <Key ID="STR_ACE_MEDICAL_BODYBAG_DESC_USE"> <English>A bodybag for dead bodies</English> @@ -917,6 +1004,7 @@ <Spanish>Una bolsa para cadáveres</Spanish> <Polish>Worek do pakowania zwłok</Polish> <German>Ein Leichensack für Tote</German> + <Italian>Una sacca nera per trasportare cadaveri.</Italian> </Key> <Key ID="STR_ACE_MEDICAL_CHECK_BLOODPRESSURE"> <English>Blood Pressure</English> @@ -925,6 +1013,7 @@ <Spanish>Presión arterial</Spanish> <Polish>Ciśnienie krwi</Polish> <German>Blutdruck</German> + <Italian>Pressione sanguigna</Italian> </Key> <Key ID="STR_ACE_MEDICAL_CHECK_BLOODPRESSURE_CONTENT"> <English>Checking Blood Pressure..</English> @@ -933,6 +1022,7 @@ <Spanish>Comprobando presión arterial...</Spanish> <Polish>Sprawdzanie ciśnienia krwi...</Polish> <German>Blutdruck kontrollieren...</German> + <Italian>Controllando la pressione sanguigna..</Italian> </Key> <Key ID="STR_ACE_MEDICAL_CHECK_BLOODPRESSURE_CHECKED_MEDIC"> <English>You checked %1</English> @@ -941,6 +1031,7 @@ <Spanish>Examinando a %1</Spanish> <Polish>Zbadałeś %1</Polish> <German>Kontrolliert %1</German> + <Italian>Hai diagnosticato %1</Italian> </Key> <Key ID="STR_ACE_MEDICAL_CHECK_BLOODPRESSURE_OUTPUT_1"> <English>You find a blood pressure of %2/%3</English> @@ -948,6 +1039,7 @@ <Russian>Артериальное давление %2/%3</Russian> <Spanish>La Presión Arterial es %2/%3</Spanish> <Polish>Wyczuwasz ciśnienie krwi o wartości %2/%3</Polish> + <Italian>Hai riscontrato una pressione di %2/%3</Italian> </Key> <Key ID="STR_ACE_MEDICAL_CHECK_BLOODPRESSURE_OUTPUT_2"> <English>You find a low blood pressure</English> @@ -956,6 +1048,7 @@ <Spanish>La presión arterial es baja</Spanish> <Polish>Wyczuwasz niskie ciśnienie krwi</Polish> <German>Blutdruck ist niedrig</German> + <Italian>La pressione sanguigna è bassa</Italian> </Key> <Key ID="STR_ACE_MEDICAL_CHECK_BLOODPRESSURE_OUTPUT_3"> <English>You find a normal blood pressure</English> @@ -964,6 +1057,7 @@ <Spanish>La presión arterial es normal</Spanish> <Polish>Wyczuwasz normalne ciśnienie krwi</Polish> <German>Blutdruck ist normal</German> + <Italian>La pressione sanguigna è normale</Italian> </Key> <Key ID="STR_ACE_MEDICAL_CHECK_BLOODPRESSURE_OUTPUT_4"> <English>You find a high blood pressure</English> @@ -972,6 +1066,7 @@ <Spanish>La presión arterial es alta</Spanish> <Polish>Wyczuwasz wysokie ciśnienie krwi</Polish> <German>Blutdruck ist hoch</German> + <Italian>La pressione sanguigna è alta</Italian> </Key> <Key ID="STR_ACE_MEDICAL_CHECK_BLOODPRESSURE_OUTPUT_5"> <English>You find no blood pressure</English> @@ -980,6 +1075,7 @@ <Spanish>No hay presión arterial</Spanish> <Polish>Nie wyczuwasz ciśnienia krwi</Polish> <German>Patient hat keinen Blutdruck</German> + <Italian>La pressione sanguigna è assente</Italian> </Key> <Key ID="STR_ACE_MEDICAL_CHECK_BLOODPRESSURE_OUTPUT_6"> <English>You fail to find a blood pressure</English> @@ -988,6 +1084,7 @@ <Spanish>No puedes encontrar presión arterial</Spanish> <Polish>Nie udało Ci się sprawdzić ciśnienia krwi</Polish> <German>Blutdruck konnte nicht gefunden werden</German> + <Italian>Manca strumento per misurare pressione sanguigna</Italian> </Key> <Key ID="STR_ACE_MEDICAL_CHECK_PULSE"> <English>Pulse</English> @@ -996,6 +1093,7 @@ <Spanish>Pulso</Spanish> <Polish>Tętno</Polish> <German>Puls</German> + <Italian>Polso</Italian> </Key> <Key ID="STR_ACE_MEDICAL_CHECK_PULSE_CONTENT"> <English>Checking Heart Rate..</English> @@ -1004,6 +1102,7 @@ <Spanish>Comprobando ritmo cardíaco...</Spanish> <Polish>Sprawdzanie tętna...</Polish> <German>Kontrolliere Herzfrequenz</German> + <Italian>Controllando il battito cardiaco..</Italian> </Key> <Key ID="STR_ACE_MEDICAL_CHECK_PULSE_CHECKED_MEDIC"> <English>You checked %1</English> @@ -1012,6 +1111,7 @@ <Spanish>Examinando a %1</Spanish> <Polish>Zbadałeś %1</Polish> <German>Kontrolliertt %1</German> + <Italian>Hai diagnosticato %1</Italian> </Key> <Key ID="STR_ACE_MEDICAL_CHECK_PULSE_OUTPUT_1"> <English>You find a Heart Rate of %2</English> @@ -1020,6 +1120,7 @@ <Spanish>El ritmo cardíaco es de %2</Spanish> <Polish>Wyczuwasz tętno o wartości %2</Polish> <German>Herzfrequenz ist %2</German> + <Italian>Il battito cardiaco è %2</Italian> </Key> <Key ID="STR_ACE_MEDICAL_CHECK_PULSE_OUTPUT_2"> <English>You find a weak Heart Rate</English> @@ -1028,6 +1129,7 @@ <Spanish>El ritmo cardíaco es débil</Spanish> <Polish>Wyczuwasz słabe tętno</Polish> <German>Schwacher Puls</German> + <Italian>Hai riscontrato un debole battito cardiaco</Italian> </Key> <Key ID="STR_ACE_MEDICAL_CHECK_PULSE_OUTPUT_3"> <English>You find a strong Heart Rate</English> @@ -1036,6 +1138,7 @@ <Spanish>El ritmo cardíaco está acelerado</Spanish> <Polish>Wyczuwasz silne tętno</Polish> <German>Starker Puls</German> + <Italian>Hai riscontrato un forte battito cardiaco</Italian> </Key> <Key ID="STR_ACE_MEDICAL_CHECK_PULSE_OUTPUT_4"> <English>You find a normal Heart Rate</English> @@ -1044,6 +1147,7 @@ <Spanish>El ritmo cardíaco es bueno</Spanish> <Polish>Wyczuwasz normalne tętno</Polish> <German>Normaler Puls</German> + <Italian>Hai riscontrato un normale battito cardiaco</Italian> </Key> <Key ID="STR_ACE_MEDICAL_CHECK_PULSE_OUTPUT_5"> <English>You find no Heart Rate</English> @@ -1052,6 +1156,7 @@ <Spanish>No tiene ritmo cardíaco</Spanish> <Polish>Wyczuwasz brak tętna</Polish> <German>Kein Puls gefunden</German> + <Italian>Hai riscontrato una assenza di battito cardiaco</Italian> </Key> <Key ID="STR_ACE_MEDICAL_CHECK_RESPONSE"> <English>Response</English> @@ -1060,6 +1165,7 @@ <Spanish>Respuesta</Spanish> <Polish>Przytomność</Polish> <German>Ansprechbarkeit</German> + <Italian>Risposta</Italian> </Key> <Key ID="STR_ACE_MEDICAL_CHECK_RESPONSE_CONTENT"> <English>You check response of patient</English> @@ -1068,6 +1174,7 @@ <Spanish>Compruebas si el paciente reacciona</Spanish> <Polish>Sprawdzasz przytomność pacjenta</Polish> <German>Du prüfst ob der Patient ansprechbar ist</German> + <Italian>Controlli la risposta del paziente</Italian> </Key> <Key ID="STR_ACE_MEDICAL_CHECK_REPONSE_RESPONSIVE"> <English>%1 is responsive</English> @@ -1076,6 +1183,7 @@ <Spanish>%1 ha reaccionado</Spanish> <Polish>%1 jest przytomny</Polish> <German>%1 ist anprechbar</German> + <Italian>%1 e' cosciente</Italian> </Key> <Key ID="STR_ACE_MEDICAL_CHECK_REPONSE_UNRESPONSIVE"> <English>%1 is not responsive</English> @@ -1084,6 +1192,7 @@ <Spanish>%1 no reacciona</Spanish> <Polish>%1 jest nieprzytomny</Polish> <German>%1 ist nicht ansprechbar</German> + <Italian>%1 e' incosciente</Italian> </Key> <Key ID="STR_ACE_MEDICAL_CHECK_REPONSE_YOU_CHECKED"> <English>You checked %1</English> @@ -1092,6 +1201,7 @@ <Spanish>Examinas a %1</Spanish> <Polish>Zbadałeś %1</Polish> <German>Du versucht %1 anzusprechen</German> + <Italian>Hai controllato %1</Italian> </Key> <Key ID="STR_ACE_MEDICAL_BANDAGED"> <English>Bandaged</English> @@ -1099,6 +1209,7 @@ <Russian>Повязка наложена</Russian> <Spanish>Vendado</Spanish> <Polish>Zabandażowano</Polish> + <Italian>Bendato</Italian> </Key> <Key ID="STR_ACE_MEDICAL_APPLY_BANDAGE"> <English>You bandage %1 (%2)</English> @@ -1106,6 +1217,7 @@ <Russian>Вы перевязали раненого %1 (%2)</Russian> <Spanish>Aplicas vendaje a %1 en %2</Spanish> <Polish>Bandażujesz %1 (%2)</Polish> + <Italian>Stai bendando %1 (%2)</Italian> </Key> <Key ID="STR_ACE_MEDICAL_IS_BANDAGING_YOU"> <English>%1 is bandaging you</English> @@ -1113,6 +1225,7 @@ <Russian>%1 перевязывает вас</Russian> <Spanish>%1 te está vendando</Spanish> <Polish>%1 bandażuje Ciebie</Polish> + <Italian>%1 ti sta bendando</Italian> </Key> <Key ID="STR_ACE_MEDICAL_START_STITCHING_INJURIES"> <English>You start stitching injures from %1 (%2)</English> @@ -1120,6 +1233,7 @@ <French>Vous suturez %1 (%2)</French> <Spanish>Estás suturando heridas de %1 en %2</Spanish> <Polish>Zszywasz rany %1 (%2)</Polish> + <Italian>Stai suturando le ferite di %1 (%2)</Italian> </Key> <Key ID="STR_ACE_MEDICAL_STITCHING"> <English>Stitching</English> @@ -1127,6 +1241,7 @@ <French>Sutures</French> <Spanish>Suturando</Spanish> <Polish>Szycie</Polish> + <Italian>Suturando</Italian> </Key> <Key ID="STR_ACE_MEDICAL_YOU_TREAT_AIRWAY"> <English>You treat the airway of %1</English> @@ -1134,6 +1249,7 @@ <French>Vous traitez les voies respiratoires de %1</French> <Spanish>Estás intubando a %1</Spanish> <Polish>Udrażniasz drogi oddechowe %1</Polish> + <Italian>Controlli le vie respiratorie di %1</Italian> </Key> <Key ID="STR_ACE_MEDICAL_AIRWAY"> <English>Airway</English> @@ -1142,6 +1258,7 @@ <Polish>Drogi oddechowe</Polish> <German>Atemwege</German> <French>Voies respiratoires</French> + <Italian>Vie respiratorie</Italian> </Key> <Key ID="STR_ACE_MEDICAL_IS_TREATING_YOUR_AIRWAY"> <English>%1 is treating your airway</English> @@ -1149,6 +1266,7 @@ <French>%1 traite vos voies respiratoires</French> <Spanish>%1 te está intubando</Spanish> <Polish>%1 udrażnia Twoje drogi oddechowe</Polish> + <Italian>%1 ti sta trattando le vie respiratorie</Italian> </Key> <Key ID="STR_ACE_MEDICAL_DRAG"> <English>Drag</English> @@ -1184,7 +1302,7 @@ <French>Déposer</French> <Hungarian>Elenged</Hungarian> <Portuguese>Largar</Portuguese> - <Italian>Lascia</Italian> + <ItalianRrilascia</Italian> </Key> <Key ID="STR_ACE_MEDICAL_LOAD"> <English>Load Patient Into</English> @@ -1216,6 +1334,7 @@ <Russian>Выгрузить пациента</Russian> <Polish>Wyładuj pacjenta</Polish> <French>Débarquer le Patient</French> + <Italian>Scarica il paziente</Italian> </Key> <Key ID="STR_ACE_Medical_LoadPatient"> <English>Load patient</English> @@ -1223,6 +1342,7 @@ <Russian>Погрузить пациента</Russian> <Polish>Załaduj pacjenta</Polish> <French>Embarquer le Patient</French> + <Italian>Carica il paziente</Italian> </Key> <Key ID="STR_ACE_MEDICAL_PlaceInBodyBag"> <English>Place body in bodybag</English> @@ -1230,6 +1350,7 @@ <Russian>Поместить тело в мешок для трупов</Russian> <Polish>Zapakuj ciało do worka na zwłoki</Polish> <French>Mettre le corps dans la housse mortuaire</French> + <Italian>Metti il corpo nella sacca per cadaveri</Italian> </Key> <Key ID="STR_ACE_MEDICAL_PlacingInBodyBag"> <English>Placing body in bodybag</English> @@ -1237,6 +1358,7 @@ <Russian>Упаковка тела</Russian> <Polish>Pakowanie ciała do worka na zwłoki</Polish> <French>Placement du corps dans la housse</French> + <Italian>Stai mettendo il corpo nella sacca</Italian> </Key> <Key ID="STR_ACE_MEDICAL_ACTIVITY_bandagedPatient"> <English>%1 has bandaged patient</English> @@ -1244,6 +1366,7 @@ <Russian>%1 перевязал пациента</Russian> <Polish>%1 zabandażował pacjenta</Polish> <French>%1 a pansé le patient</French> + <Italian>%1 ha bendato il paziente</Italian> </Key> <Key ID="STR_ACE_MEDICAL_ACTIVITY_usedItem"> <English>%1 used %2</English> @@ -1251,6 +1374,7 @@ <Russian>%1 использовал %2</Russian> <Polish>%1 użył %2</Polish> <French>%1 utilise %2</French> + <Italian>%1 ha usato %2</Italian> </Key> <Key ID="STR_ACE_MEDICAL_ACTIVITY_gaveIV"> <English>%1 has given an IV</English> @@ -1258,6 +1382,7 @@ <Russian>%1 провел переливание</Russian> <Polish>%1 podał IV</Polish> <French>%1 a administré une IV</French> + <Italian>%1 ha somministrato una IV</Italian> </Key> <Key ID="STR_ACE_MEDICAL_ACTIVITY_appliedTourniquet"> <English>%1 applied a tourniquet</English> @@ -1265,66 +1390,79 @@ <Russian>%1 наложил жгут</Russian> <Polish>%1 założył stazę</Polish> <French>%1 a appliqué un garrot</French> + <Italian>%1 ha applicato un laccio emostatico</Italian> </Key> <Key ID="STR_ACE_Medical_HeavilyWounded"> <English>Heavily wounded</English> <German>Schwer verwundet:</German> <Polish>Ciężko ranny</Polish> + <Italian>Gravemente ferito</Italian> </Key> <Key ID="STR_ACE_Medical_LightlyWounded"> <English>Lightly wounded</English> <German>Leicht verwundet:</German> <Polish>Lekko ranny</Polish> + <Italian>Leggermente ferito</Italian> </Key> <Key ID="STR_ACE_Medical_VeryLightlyWounded"> <English>Very lightly wounded</English> <German>Sehr leicht verwundet:</German> <Polish>B. lekko ranny</Polish> + <Italian>Ferito lievemente</Italian> </Key> <Key ID="STR_ACE_Medical_Head"> <English>Head</English> <German>Kopf</German> <Polish>Głowa</Polish> + <Italian>Testa</Italian> </Key> <Key ID="STR_ACE_Medical_Torso"> <English>Torso</English> <German>Torso</German> <Polish>Tors</Polish> + <Italian>Torso</Italian> </Key> <Key ID="STR_ACE_Medical_LeftArm"> <English>Left Arm</English> <German>Linker Arm</German> <Polish>Lewe ramię</Polish> + <Italian>Braccio sinistro</Italian> </Key> <Key ID="STR_ACE_Medical_RightArm"> <English>Right Arm</English> <German>Rechter Arm</German> <Polish>Prawe ramię</Polish> + <Italian>Braccio destro</Italian> </Key> <Key ID="STR_ACE_Medical_LeftLeg"> <English>Left Leg</English> <German>Linkes Bein</German> <Polish>Lewa noga</Polish> + <Italian>Gamba sinistra</Italian> </Key> <Key ID="STR_ACE_Medical_RightLeg"> <English>Right Leg</English> <German>Rechtes Bein</German> <Polish>Prawa noga</Polish> + <Italian>Gamba destra</Italian> </Key> <Key ID="STR_ACE_Medical_painEffectType"> <English>Pain Effect Type</English> <German>Schmerzeffekt-Typ</German> <Polish>Rodzaj efektu bólu</Polish> + <Italian>Pain Effect Type</Italian> </Key> <Key ID="STR_ACE_Medical_painEffect_Flash"> <English>Colour Flashing</English> <German>Farbblinken</German> <Polish>Pulsujące kolory</Polish> + <Italian>Colore lampeggiante</Italian> </Key> <Key ID="STR_ACE_Medical_painEffect_Chroma"> <English>Chromatic Aberration</English> <German>Chromatische Aberration</German> <Polish>Aberracja chromatyczna</Polish> + <Italian>Aberrazione cromatica</Italian> </Key> </Package> -</Project> \ No newline at end of file +</Project> From f328d302e1defcfb2bf619de9cf40c106da1f910 Mon Sep 17 00:00:00 2001 From: Marco <ramius86@users.noreply.github.com> Date: Wed, 15 Apr 2015 10:42:25 +0200 Subject: [PATCH 011/109] Update stringtable.xml Italian translation --- addons/captives/stringtable.xml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/addons/captives/stringtable.xml b/addons/captives/stringtable.xml index 292da895f3..f5812b2bf7 100644 --- a/addons/captives/stringtable.xml +++ b/addons/captives/stringtable.xml @@ -71,6 +71,7 @@ <Hungarian>Fogoly berakása</Hungarian> <Russian>Загрузить пленного</Russian> <Portuguese>Embarcar Prisioneiro</Portuguese> + <Italian>Carica il prigioniero</Italian> </Key> <Key ID="STR_ACE_Captives_UnloadCaptive"> <English>Unload Captive</English> @@ -82,6 +83,7 @@ <Hungarian>Fogoly kivevése</Hungarian> <Russian>Выгрузить пленного</Russian> <Portuguese>Desembarcar Prisioneiro</Portuguese> + <Italian>Scarica il prigioniero</Italian> </Key> <Key ID="STR_ACE_Captives_CableTie"> <English>Cable Tie</English> @@ -128,6 +130,7 @@ <Hungarian>Motozás</Hungarian> <Russian>Обыскать человека</Russian> <Portuguese>Revistar</Portuguese> + <Italian>Perquisisci la persona/Italian> </Key> <Key ID="STR_ACE_Captives_StartSurrendering"> <English>Surrender</English> @@ -137,6 +140,7 @@ <Czech>Vzdát se</Czech> <Polish>Poddaj się</Polish> <Russian>Сдаться в плен</Russian> + <Italian>Arreso</Italian> </Key> <Key ID="STR_ACE_Captives_StopSurrendering"> <English>Stop Surrendering</English> @@ -146,6 +150,7 @@ <Czech>Přestat se vzdávat</Czech> <Polish>Podejmij walkę ponownie</Polish> <Russian>Отменить сдачу в плен</Russian> + <Italian>Annulla la resa</Italian> </Key> <Key ID="STR_ACE_Captives_Zeus_OnlyAlive"> <English>Only use on alive units</English> @@ -155,6 +160,7 @@ <Czech>Použitelné jen na živé jednotky</Czech> <Polish>Używaj tylko na żywych jednostkach</Polish> <Russian>Применимо только к живым юнитам</Russian> + <Italian>Si può fare solo su persone vive</Italian> </Key> <Key ID="STR_ACE_Captives_Zeus_OnlyInfantry"> <English>Only use on dismounted inf</English> @@ -164,6 +170,7 @@ <Czech>Použitelné jen na pěsích jednotkách</Czech> <Polish>Używaj tylko na piechocie poza wszelkimi pojazdami</Polish> <Russian>Применимо только к пехоте вне техники</Russian> + <Italian>Si può usare solo su fanteria a piedi</Italian> </Key> <Key ID="STR_ACE_Captives_Zeus_NothingSelected"> <English>Nothing under mouse</English> @@ -173,6 +180,7 @@ <Czech>Nic není vybráno</Czech> <Polish>Nie ma nic pod kursorem</Polish> <Russian>Ничего не выделено</Russian> + <Italian>Niente selezionato</Italian> </Key> </Package> </Project> From aaee9c72c1270ebdf73fe6e8ae4cf58203c60a5e Mon Sep 17 00:00:00 2001 From: Marco <ramius86@users.noreply.github.com> Date: Wed, 15 Apr 2015 10:44:13 +0200 Subject: [PATCH 012/109] Update stringtable.xml Italian translation --- addons/disarming/stringtable.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/addons/disarming/stringtable.xml b/addons/disarming/stringtable.xml index e6820dbf16..67a7bb0d76 100644 --- a/addons/disarming/stringtable.xml +++ b/addons/disarming/stringtable.xml @@ -6,6 +6,7 @@ <German>Öffne Inventar</German> <Polish>Otwórz ekwipunek</Polish> <Czech>Otevřít inventář</Czech> + <Italian>Apri l'inventario</Italian> </Key> </Package> </Project> From c9e452a000c515a7b1f17fdb0740e92bc34da038 Mon Sep 17 00:00:00 2001 From: Marco <ramius86@users.noreply.github.com> Date: Wed, 15 Apr 2015 10:48:52 +0200 Subject: [PATCH 013/109] Update stringtable.xml Italian --- addons/disposable/stringtable.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/addons/disposable/stringtable.xml b/addons/disposable/stringtable.xml index 86c4b2d8e8..f94c872948 100644 --- a/addons/disposable/stringtable.xml +++ b/addons/disposable/stringtable.xml @@ -10,6 +10,7 @@ <Spanish>Lanzador utilizado</Spanish> <Hungarian>Használt cső</Hungarian> <Russian>Отстрелянная труба</Russian> + <Italian>Tubo utilizzato</Italian> </Key> <Key ID="STR_ACE_Disposable_UsedTubeDescription"> <English>Used disposable rocket launcher</English> @@ -20,6 +21,7 @@ <Spanish>Lanzador desechable utilizado</Spanish> <Hungarian>Használt rakétavető</Hungarian> <Russian>Отстрелянная одноразовая пусковая установка</Russian> + <Italian>Lanciarazzi monouso utilizzato</Italian> </Key> <Key ID="STR_ACE_Disposable_PreloadedMissileDummy"> <English>Preloaded Missile Dummy</English> @@ -30,6 +32,7 @@ <Spanish>Preloaded Missile Dummy</Spanish> <Hungarian>Preloaded Missile Dummy</Hungarian> <Russian>Заряженная ракетная пустышка</Russian> + <Italian>Missile stupido precaricato</Italian> </Key> </Package> </Project> From 45fec0409d0a04adc480d54f1bb03d3490caaf0e Mon Sep 17 00:00:00 2001 From: Marco <ramius86@users.noreply.github.com> Date: Wed, 15 Apr 2015 10:51:26 +0200 Subject: [PATCH 014/109] Update stringtable.xml Italian --- addons/explosives/stringtable.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/addons/explosives/stringtable.xml b/addons/explosives/stringtable.xml index 44dde34452..626b23596a 100644 --- a/addons/explosives/stringtable.xml +++ b/addons/explosives/stringtable.xml @@ -48,6 +48,7 @@ <Hungarian>Robbanóanyag kódja: %1</Hungarian> <Portuguese>Código do explosivo: %1</Portuguese> <Russian>Код подрыва: %1</Russian> + <Italian>Codice esplosivo: %1</Italian> </Key> <Key ID="STR_ACE_Explosives_PlaceAction"> <English>Place</English> @@ -488,6 +489,7 @@ <Spanish>Utilizado para detonar explosivos remotamente al soltarlo.</Spanish> <Hungarian>Robbanóanyagok távoli robbantásához</Hungarian> <Russian>Используется для дистанционного подрыва, после смерти оператора.</Russian> + <Italian>Usato per attivare esplosivi quando rilasciato</Italian> </Key> <Key ID="STR_ACE_Explosives_Pickup"> <English>Pick up</English> @@ -496,6 +498,7 @@ <Czech>Sebrat</Czech> <Polish>Podnieś</Polish> <French>Ramasser</French> + <Italian>Raccogli</Italian> </Key> </Package> </Project> From b28ef3d22dcfc01c1ed305d23a6bf5ef26d6e4b8 Mon Sep 17 00:00:00 2001 From: Marco <ramius86@users.noreply.github.com> Date: Wed, 15 Apr 2015 10:52:40 +0200 Subject: [PATCH 015/109] Update stringtable.xml Italian --- addons/fcs/stringtable.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/addons/fcs/stringtable.xml b/addons/fcs/stringtable.xml index 1f1b0d3acf..69b81c6779 100644 --- a/addons/fcs/stringtable.xml +++ b/addons/fcs/stringtable.xml @@ -9,6 +9,7 @@ <Czech>Označit cíl / Změřit vzdálenost</Czech> <Spanish>Iluminar objetivo / Medir distancia</Spanish> <Russian>Подсветить цель / Замерить расстояние</Russian> + <Italian>Illumina l'obiettivo / Misura la distanza</Italian> </Key> <Key ID="STR_ACE_FCS_ZeroedTo"> <English>Zeroed To</English> From eceb7595234592383f4be2cfbb206c946bb22424 Mon Sep 17 00:00:00 2001 From: Marco <ramius86@users.noreply.github.com> Date: Wed, 15 Apr 2015 10:53:35 +0200 Subject: [PATCH 016/109] Update stringtable.xml Italian --- addons/frag/stringtable.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/addons/frag/stringtable.xml b/addons/frag/stringtable.xml index 3fa60aacf7..25d4f04a9a 100644 --- a/addons/frag/stringtable.xml +++ b/addons/frag/stringtable.xml @@ -9,6 +9,7 @@ <Polish>Wyłącz fragmentację odłamków</Polish> <Russian>Выключить разлёт осколков</Russian> <French>Désactive la fragmentation</French> + <Italian>Disattiva la frammentazione</Italian> </Key> </Package> </Project> From 9a8dd905f21008463b8e1b84d1b1c5a4d8fd74f5 Mon Sep 17 00:00:00 2001 From: Marco <ramius86@users.noreply.github.com> Date: Wed, 15 Apr 2015 10:56:39 +0200 Subject: [PATCH 017/109] Update stringtable.xml --- addons/hearing/stringtable.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/addons/hearing/stringtable.xml b/addons/hearing/stringtable.xml index a29915d5f8..da0f44a43c 100644 --- a/addons/hearing/stringtable.xml +++ b/addons/hearing/stringtable.xml @@ -105,6 +105,7 @@ <German>Knalltrauma deaktivieren</German> <Czech>Vypnout pískání v uších</Czech> <Polish>Wyłącz dzwonienie w uszach</Polish> + <Italian>Disabilita il ronzio</Italian> </Key> </Package> </Project> From 544894a05ee382835b472b3c26191e71b573dfd4 Mon Sep 17 00:00:00 2001 From: Marco <ramius86@users.noreply.github.com> Date: Wed, 15 Apr 2015 10:59:44 +0200 Subject: [PATCH 018/109] Update stringtable.xml Italian --- addons/interact_menu/stringtable.xml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/addons/interact_menu/stringtable.xml b/addons/interact_menu/stringtable.xml index dddf90a4de..f403cf32a8 100644 --- a/addons/interact_menu/stringtable.xml +++ b/addons/interact_menu/stringtable.xml @@ -9,10 +9,12 @@ <Czech>Zobrazit kurzor v menu pro vlastní interakci</Czech> <Polish>Zawsze wyświetlaj kursor dla własnej interakcji</Polish> <French>Toujours afficher le curseur pour les interactions sur soi-même</French> + <Italian>Mostra sempre il cursore per le auto interazioni</Italian> </Key> <Key ID="STR_ACE_Interact_Menu_UseListMenu"> <English>Display interaction menus as lists</English> <Spanish>Mostrar los menus de interacción como listas</Spanish> + <Italian>Mostra il menù di interazione come lista</Italian> </Key> <Key ID="STR_ACE_Interact_Menu_InteractKey"> <English>Interact Key</English> @@ -22,6 +24,7 @@ <Czech>Klávesa pro interakci</Czech> <Polish>Klawisz interakcji</Polish> <French>Touche d'interaction</French> + <Italian>Tasto interazione</Italian> </Key> <Key ID="STR_ACE_Interact_Menu_SelfInteractKey"> <English>Self Interaction Key</English> @@ -31,6 +34,7 @@ <Czech>Klávesa pro vlastní interakci</Czech> <Polish>Klawisz własnej interakcji</Polish> <French>Touche d'interaction personnelle</French> + <Italian>Tasto per auto interazioni</Italian> </Key> <Key ID="STR_ACE_Interact_Menu_SelfActionsRoot"> <English>Self Actions</English> @@ -40,6 +44,7 @@ <Czech>Vlastní akce</Czech> <Polish>Własne akcje</Polish> <French>Interaction personnelle</French> + <Italian>Auto interazioni</Italian> </Key> <Key ID="STR_ACE_Interact_Menu_VehicleActionsRoot"> <English>Vehicle Actions</English> @@ -49,6 +54,7 @@ <Czech>Interakce s vozidly</Czech> <Polish>Akcje pojazdu</Polish> <French>Interaction véhicule</French> + <Italian>Interazioni con veicoli</Italian> </Key> </Package> </Project> From 6e7c1ce9d2b8e0858bbf0828bd1a4797b938f3cb Mon Sep 17 00:00:00 2001 From: Marco <ramius86@users.noreply.github.com> Date: Wed, 15 Apr 2015 11:04:18 +0200 Subject: [PATCH 019/109] Update stringtable.xml Ita --- addons/interaction/stringtable.xml | 31 +++++++++++++++++++++++------- 1 file changed, 24 insertions(+), 7 deletions(-) diff --git a/addons/interaction/stringtable.xml b/addons/interaction/stringtable.xml index b7379026ef..ce18f514f4 100644 --- a/addons/interaction/stringtable.xml +++ b/addons/interaction/stringtable.xml @@ -9,6 +9,7 @@ <Polish>Interakcje</Polish> <French>Interactions</French> <Russian>Взаимодействия</Russian> + <Italian>Interazioni</Italian> </Key> <Key ID="STR_ACE_Interaction_Torso"> <English>Torso</English> @@ -18,6 +19,7 @@ <Polish>Tors</Polish> <French>Torse</French> <Russian>Торс</Russian> + <Italian>Torso</Italian> </Key> <Key ID="STR_ACE_Interaction_Head"> <English>Head</English> @@ -27,6 +29,7 @@ <Polish>Głowa</Polish> <French>Tête</French> <Russian>Голова</Russian> + <Italian>Testa</Italian> </Key> <Key ID="STR_ACE_Interaction_ArmLeft"> <English>Left Arm</English> @@ -36,6 +39,7 @@ <Polish>Lewe ramię</Polish> <French>Bras gauche</French> <Russian>Левая рука</Russian> + <Italian>Braccio sinistro</Italian> </Key> <Key ID="STR_ACE_Interaction_ArmRight"> <English>Right Arm</English> @@ -45,6 +49,7 @@ <Polish>Prawe ramię</Polish> <French>Bras droit</French> <Russian>Правая рука</Russian> + <Italian>Braccio destro</Italian> </Key> <Key ID="STR_ACE_Interaction_LegLeft"> <English>Left Leg</English> @@ -54,6 +59,7 @@ <Polish>Lewa noga</Polish> <French>Jambe gauche</French> <Russian>Левая нога</Russian> + <Italian>Gamba sinistra</Italian> </Key> <Key ID="STR_ACE_Interaction_LegRight"> <English>Right Leg</English> @@ -63,6 +69,7 @@ <Polish>Prawa noga</Polish> <French>Jambe droite</French> <Russian>Правая нога</Russian> + <Italian>Gamba destra</Italian> </Key> <Key ID="STR_ACE_Interaction_Weapon"> <English>Weapon</English> @@ -72,6 +79,7 @@ <Polish>Broń</Polish> <French>Arme</French> <Russian>Оружие</Russian> + <Italian>Arma</Italian> </Key> <Key ID="STR_ACE_Interaction_InteractionMenu"> <English>Interaction Menu</English> @@ -83,7 +91,7 @@ <Russian>Меню взаимодействия</Russian> <Hungarian>Interakció</Hungarian> <Portuguese>Menu de Interação</Portuguese> - <Italian>Menù Interattivo</Italian> + <Italian>Menù interazione</Italian> </Key> <Key ID="STR_ACE_Interaction_InteractionMenuSelf"> <English>Interaction Menu (Self)</English> @@ -95,7 +103,7 @@ <Russian>Меню взаимодействия (с собой)</Russian> <Hungarian>Interakció (saját) </Hungarian> <Portuguese>Menu de Interação (Individual)</Portuguese> - <Italian>Menù Interattivo (Individuale)</Italian> + <Italian>Menù interazione (Individuale)</Italian> </Key> <Key ID="STR_ACE_Interaction_OpenDoor"> <English>Open / Close Door</English> @@ -203,7 +211,7 @@ <Russian>ТАНЦЕВАТЬ!</Russian> <Hungarian>TÁNC!</Hungarian> <Portuguese>DANCE!</Portuguese> - <Italian>Balla!</Italian> + <Italian>DANZA!</Italian> </Key> <Key ID="STR_ACE_Interaction_StopDancing"> <English>Stop Dancing</English> @@ -541,21 +549,25 @@ <English>Join Red</English> <Spanish>Unirse al rojo</Spanish> <French>Rejoindre Rouge</French> + <Italian>Unisciti al team rosso</Italian> </Key> <Key ID="STR_ACE_Interaction_JoinTeamGreen"> <English>Join Green</English> <Spanish>Unirse al verde</Spanish> <French>Rejoindre Verte</French> + <Italian>Unisciti al team verde</Italian> </Key> <Key ID="STR_ACE_Interaction_JoinTeamBlue"> <English>Join Blue</English> <Spanish>Unirse al azul</Spanish> <French>Rejoindre Bleue</French> + <Italian>Unisciti al team blu</Italian> </Key> <Key ID="STR_ACE_Interaction_JoinTeamYellow"> <English>Join Yellow</English> <Spanish>Unirse al amarillo</Spanish> <French>Rejoindre Jaune</French> + <Italian>Unisciti al team giallo</Italian> </Key> <Key ID="STR_ACE_Interaction_JoinedTeam"> <English>You joined Team %1</English> @@ -566,7 +578,7 @@ <Czech>Připojil ses do %1 týmu</Czech> <Russian>Вы присоединились к группе %1</Russian> <Portuguese>Você uniu-se à Equipe %1</Portuguese> - <Italian>Sei entrato nella Squadra %1</Italian> + <Italian>Sei entrato nella team %1</Italian> <Hungarian>Csatlakoztál a %1 csapathoz</Hungarian> </Key> <Key ID="STR_ACE_Interaction_LeaveTeam"> @@ -578,7 +590,7 @@ <Czech>Opustit tým</Czech> <Russian>Покинуть группу</Russian> <Portuguese>Deixar Equipe</Portuguese> - <Italian>Lascia la Squadra</Italian> + <Italian>Lascia il team</Italian> <Hungarian>Csapat elhagyása</Hungarian> </Key> <Key ID="STR_ACE_Interaction_LeftTeam"> @@ -590,7 +602,7 @@ <Czech>Opustil si tým</Czech> <Russian>Вы покинули группу</Russian> <Portuguese>Você deixou a Equipe</Portuguese> - <Italian>Hai lasciato la squadra</Italian> + <Italian>Hai lasciato il team</Italian> <Hungarian>Elhagytad a csapatot</Hungarian> </Key> <Key ID="STR_ACE_Interaction_Pardon"> @@ -625,7 +637,7 @@ <Spanish>Tecla modificadora</Spanish> <Russian>Клавиша-модификатор</Russian> <Portuguese>Tecla Modificadora</Portuguese> - <Italian>Modifica Tasto</Italian> + <Italian>Modifica tasto</Italian> <Hungarian>Módosító billentyű</Hungarian> <Czech>Modifikátor</Czech> </Key> @@ -639,6 +651,7 @@ <Hungarian>Hatótávolságon kívül</Hungarian> <Polish>Poza zasięgiem</Polish> <Czech>Mimo dosah</Czech> + <Italian>Non in raggio</Italian> </Key> <Key ID="STR_ACE_Interaction_Equipment"> <English>Equipment</English> @@ -649,6 +662,7 @@ <Czech>Vybavení</Czech> <Hungarian>Felszerelés</Hungarian> <Russian>Снаряжение</Russian> + <Italian>Equipaggiamento</Italian> </Key> <Key ID="STR_ACE_Interaction_Push"> <English>Push</English> @@ -659,6 +673,7 @@ <Czech>Odstrčit</Czech> <Hungarian>Tolás</Hungarian> <Russian>Толкать</Russian> + <Italian>Spingi</Italian> </Key> <Key ID="STR_ACE_Interaction_Interact"> <English>Interact</English> @@ -668,6 +683,7 @@ <Russian>Взаимодействовать</Russian> <Polish>Interakcja</Polish> <Spanish>Interactuar</Spanish> + <Italian>Interagisci</Italian> </Key> <Key ID="STR_ACE_Interaction_Passengers"> <English>Passengers</English> @@ -677,6 +693,7 @@ <Czech>Pasažéři</Czech> <Polish>Pasażerowie</Polish> <French>Passagers</French> + <Italian>Passeggeri</Italian> </Key> </Package> </Project> From 5c7b8247c53ad1f7f708319f420bf7e14cf13db2 Mon Sep 17 00:00:00 2001 From: Marco <ramius86@users.noreply.github.com> Date: Wed, 15 Apr 2015 11:05:57 +0200 Subject: [PATCH 020/109] Update stringtable.xml Italian --- addons/inventory/stringtable.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/addons/inventory/stringtable.xml b/addons/inventory/stringtable.xml index 0702f677fa..64784c2a96 100644 --- a/addons/inventory/stringtable.xml +++ b/addons/inventory/stringtable.xml @@ -9,6 +9,7 @@ <Czech>Zvětšit zobrazení inventáře</Czech> <Polish>Powiększ UI ekwipunku</Polish> <French>Agrandir la taille d'affichage de l'inventaire</French> + <Italian>Ingrandisci il menù inventario</Italian> </Key> <Key ID="STR_ACE_Inventory_SettingDescription"> <English>Normally inventory display is scaled by UI size. This allows scaling the Inventory UI size up, but doesn't increase font size allowing more rows displayed.</English> @@ -18,6 +19,7 @@ <Czech>Normálně se velikost invetáře škáluje s velikostí UI. Toto nastavení dovoluje škálování velikost inventáře ale nežvětšuje velikost fontu. To dovoluje zobrazení více řad v inventáři.</Czech> <Polish>Ekwipunek skalowany jest poprzez rozmiar UI. Ta opcja pozwala powiększyć rozmiar UI ekwipunku, lecz nie zwiększa rozmiaru fontu pozwalając na wyświetlanie większej ilości wierszy.</Polish> <French>L'inventaire est normalement affiché en fonction de la taille de l'UI. Cette option permet d'agrandir l'affichage de l'inventaire, mais n'a aucun effet sur la taille des polices permettant d'afficher plus de ligne</French> + <Italian>Normalmente il menù inventario è scalato in base alle dimensioni interfaccia. Questa opzione di permette di ingrandirlo ulteriormente ma senza aumentare la dimensione del testo.</Italian> </Key> </Package> </Project> From d1936d8e1be428ae29c47e9a43121f60b4190486 Mon Sep 17 00:00:00 2001 From: Marco <ramius86@users.noreply.github.com> Date: Wed, 15 Apr 2015 11:06:42 +0200 Subject: [PATCH 021/109] Update stringtable.xml Italian --- addons/javelin/stringtable.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/addons/javelin/stringtable.xml b/addons/javelin/stringtable.xml index f0e933ad0d..3c53402de2 100644 --- a/addons/javelin/stringtable.xml +++ b/addons/javelin/stringtable.xml @@ -8,6 +8,7 @@ <Czech>Zamknout cíl(držet)</Czech> <Polish>Namierz cel (przytrzymaj)</Polish> <French>Verrouiller cible (maintenir)</French> + <Italian>Aggangia il bersagio</Italian> </Key> <Key ID="STR_ACE_JAVELIN_CycleFireMode"> <English>Cycle Fire Mode</English> @@ -16,6 +17,7 @@ <Czech>Cyklování režimů palby</Czech> <Polish>Przełącz tryb ognia</Polish> <French>Cycle mode de tir</French> + <Italian>Alterna le modalità di fuoco</Italian> </Key> </Package> </Project> From 8c0f52e6153b83c7e32a2f9c13f41286e90162a2 Mon Sep 17 00:00:00 2001 From: Marco <ramius86@users.noreply.github.com> Date: Wed, 15 Apr 2015 11:08:04 +0200 Subject: [PATCH 022/109] Update stringtable.xml Italian --- addons/kestrel4500/stringtable.xml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/addons/kestrel4500/stringtable.xml b/addons/kestrel4500/stringtable.xml index 310884f989..0008da266a 100644 --- a/addons/kestrel4500/stringtable.xml +++ b/addons/kestrel4500/stringtable.xml @@ -21,22 +21,27 @@ <Key ID="STR_ACE_Kestrel4500_OpenKestrel"> <English>Open Kestrel 4500</English> <Polish>Otwórz Kestrel 4500</Polish> + <Italian>Accendi Kestrel 4500</Italian> </Key> <Key ID="STR_ACE_Kestrel4500_ShowKestrel"> <English>Show Kestrel 4500</English> <Polish>Pokaż Kestrel 4500</Polish> + <Italian>Mostra Kestrel 4500</Italian> </Key> <Key ID="STR_ACE_Kestrel4500_HideKestrel"> <English>Hide Kestrel 4500</English> <Polish>Ukryj Kestrel 4500</Polish> + <Italian>Nascondi Kestrel 4500</Italian> </Key> <Key ID="STR_ACE_Kestrel4500_KestrelDialogKey"> <English>Open Kestrel 4500</English> <Polish>Otwórz Kestrel 4500</Polish> + <Italian>Accendi Kestrel 4500</Italian> </Key> <Key ID="STR_ACE_Kestrel4500_DisplayKestrelKey"> <English>Show Kestrel 4500</English> <Polish>Pokaż Kestrel 4500</Polish> + <Italian>Mostra Kestrel 4500</Italian> </Key> </Package> -</Project> \ No newline at end of file +</Project> From 96be1baddcdb820418a42e1d3d0465c0c0f65b74 Mon Sep 17 00:00:00 2001 From: Marco <ramius86@users.noreply.github.com> Date: Wed, 15 Apr 2015 11:08:43 +0200 Subject: [PATCH 023/109] Update stringtable.xml Italian --- addons/laser_selfdesignate/stringtable.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/addons/laser_selfdesignate/stringtable.xml b/addons/laser_selfdesignate/stringtable.xml index 4fda0c031e..628c78b57d 100644 --- a/addons/laser_selfdesignate/stringtable.xml +++ b/addons/laser_selfdesignate/stringtable.xml @@ -9,6 +9,7 @@ <Czech>Laserový značkovač zapnut</Czech> <Polish>Desygnator laserowy wł.</Polish> <French>Désignateur Laser Allumé</French> + <Italian>Designatore laser acceso</Italian> </Key> <Key ID="STR_ACE_Laser_SelfDesignate_DesignatorOff"> <English>Laser Designator Off</English> @@ -18,6 +19,7 @@ <Czech>Laserový značkovat vypnut</Czech> <Polish>Desygnator laserowy wył.</Polish> <French>Désignateur Laser Éteint</French> + <Italian>Designatore laser spento</Italian> </Key> </Package> </Project> From f931c1a42ce4c445f94e25dc3e5e787c9203c7b3 Mon Sep 17 00:00:00 2001 From: Marco <ramius86@users.noreply.github.com> Date: Wed, 15 Apr 2015 11:10:05 +0200 Subject: [PATCH 024/109] Update stringtable.xml Italian --- addons/laserpointer/stringtable.xml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/addons/laserpointer/stringtable.xml b/addons/laserpointer/stringtable.xml index d53ab478e0..a3429a1fbf 100644 --- a/addons/laserpointer/stringtable.xml +++ b/addons/laserpointer/stringtable.xml @@ -9,6 +9,7 @@ <Russian>Лазерный прицел (красный)</Russian> <Czech>Laserové ukazovátko (červené)</Czech> <Polish>Wskaźnik laserowy (czerwony)</Polish> + <Italian>Puntatore laser (rosso)</Italian> </Key> <Key ID="STR_ACE_Laserpointer_green"> <English>Laser Pointer (green)</English> @@ -17,6 +18,7 @@ <Russian>Лазерный прицел (зелёный)</Russian> <Czech>Laserové ukazovátko (zelené)</Czech> <Polish>Wskaźnik laserowy (zielony)</Polish> + <Italian>Puntatore laser (verde)</Italian> </Key> <Key ID="STR_ACE_Laserpointer_Description"> <English>Emits visible light. </English> @@ -25,6 +27,7 @@ <Russian>Испускает узкий пучок видимого света.</Russian> <Czech>Vyzařuje viditelné světlo.</Czech> <Polish>Wydziela widzialne światło.</Polish> + <Italian>Emette luce visibile</Italian> </Key> <Key ID="STR_ACE_Laserpointer_useLaser"> <English><t color='#9cf953'>Use: </t>Turn Laser ON/OFF</English> @@ -51,6 +54,7 @@ <English>Switch Laser / IR Laser</English> <German>Umschalten Laser / IR-Laser</German> <Polish>Przełącz Laser / Laser IR</Polish> + <Italian>Alterna Laser / IR Laser</Italian> </Key> </Package> -</Project> \ No newline at end of file +</Project> From 5238647021d5d42bdb6206df8df4d95f06cd8735 Mon Sep 17 00:00:00 2001 From: Marco <ramius86@users.noreply.github.com> Date: Wed, 15 Apr 2015 11:12:15 +0200 Subject: [PATCH 025/109] Update stringtable.xml Italian --- addons/magazinerepack/stringtable.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/addons/magazinerepack/stringtable.xml b/addons/magazinerepack/stringtable.xml index a524b015f9..c98f009f80 100644 --- a/addons/magazinerepack/stringtable.xml +++ b/addons/magazinerepack/stringtable.xml @@ -81,6 +81,7 @@ <Russian>Перепаковка завершена</Russian> <Czech>Páskování dokončeno</Czech> <Polish>Przepakowywanie zakończone</Polish> + <Italian>Riempi caricatore</Italian> </Key> <Key ID="STR_ACE_MagazineRepack_RepackInterrupted"> <English>Repacking Interrupted</English> @@ -90,6 +91,7 @@ <Russian>Перепаковка прервана</Russian> <Czech>Páskování přerušeno</Czech> <Polish>Przepakowywanie przerwane</Polish> + <Italian>Riempimento interrotto</Italian> </Key> <Key ID="STR_ACE_MagazineRepack_RepackedMagazinesCount"> <English>%1 Full and %2 Partial</English> @@ -99,6 +101,7 @@ <Russian>%1 полных и %2 неполных</Russian> <Czech>%1 plný a %2 částečně</Czech> <Polish>Pełnych: %1.<br />Częściowo pełnych: %2.</Polish> + <Italian>%1 pieno e %2 parziale</Italian> </Key> </Package> </Project> From cb2e1c5116d03c1e9644e4b1df5d9c80ab2f2f63 Mon Sep 17 00:00:00 2001 From: Marco <ramius86@users.noreply.github.com> Date: Wed, 15 Apr 2015 11:13:19 +0200 Subject: [PATCH 026/109] Update stringtable.xml Italian --- addons/maptools/stringtable.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/addons/maptools/stringtable.xml b/addons/maptools/stringtable.xml index f2bc71e324..74c5773027 100644 --- a/addons/maptools/stringtable.xml +++ b/addons/maptools/stringtable.xml @@ -142,6 +142,7 @@ <Spanish>Dirección: %1°</Spanish> <Hungarian>Irány: %1</Hungarian> <Russian>Направление: %1°</Russian> + <Italian>Direzione : %1°</Italian> </Key> </Package> </Project> From 924cd80e6045ef4f681815c7fe5547b463792594 Mon Sep 17 00:00:00 2001 From: Marco <ramius86@users.noreply.github.com> Date: Wed, 15 Apr 2015 11:13:47 +0200 Subject: [PATCH 027/109] Update stringtable.xml ITalian --- addons/markers/stringtable.xml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/addons/markers/stringtable.xml b/addons/markers/stringtable.xml index 65da73a026..60a357611d 100644 --- a/addons/markers/stringtable.xml +++ b/addons/markers/stringtable.xml @@ -10,6 +10,7 @@ <Polish>Kierunek: %1°</Polish> <Spanish>Dirección: %1°</Spanish> <Russian>Направление: %1°</Russian> + <Italian>Direzione: %1°</Italian> </Key> </Package> -</Project> \ No newline at end of file +</Project> From 47f8161855f05fd15704947719944b37eae06340 Mon Sep 17 00:00:00 2001 From: Marco <ramius86@users.noreply.github.com> Date: Wed, 15 Apr 2015 11:18:22 +0200 Subject: [PATCH 028/109] Update stringtable.xml Italian --- addons/microdagr/stringtable.xml | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/addons/microdagr/stringtable.xml b/addons/microdagr/stringtable.xml index 12962ea1ac..ec92773357 100644 --- a/addons/microdagr/stringtable.xml +++ b/addons/microdagr/stringtable.xml @@ -10,6 +10,7 @@ <Czech>MicroDAGR GPS</Czech> <Polish>MicroDAGR GPS</Polish> <French>MicroDAGR GPS</French> + <Italian>MicroDAGR GPS</Italian> </Key> <Key ID="STR_ACE_microdagr_itemDescription"> <English>MicroDAGR advanced GPS receiver</English> @@ -19,6 +20,7 @@ <Polish>Zaawansowany odbiornik GPS MicroDAGR</Polish> <French>Récepteur GPS MicroDAGR</French> <Czech>MicroDAGR pokročílá GPS příjímač</Czech> + <Italian>MicroDAGR ricevitore GPS avanzato</Italian> </Key> <Key ID="STR_ACE_microdagr_settingUseMils"> <English>Angular Unit:</English> @@ -28,6 +30,7 @@ <French>Unité angulaire</French> <German>Winkeleinheit:</German> <Czech>Úhlová jednotka:</Czech> + <Italian>Unità angolare:</Italian> </Key> <Key ID="STR_ACE_microdagr_settingMils"> <English>Mils</English> @@ -37,6 +40,7 @@ <Polish>Tysiączne</Polish> <French>Mils</French> <Czech>Mils</Czech> + <Italian>Miglia</Italian> </Key> <Key ID="STR_ACE_microdagr_settingShowWP"> <English>Show Waypoints On Map:</English> @@ -46,6 +50,7 @@ <Polish>Pokaż PT na mapie:</Polish> <French>Montrer points de passage sur la carte</French> <Czech>Ukázat waypointy na mapě:</Czech> + <Italian>Mostra waypoint sulla mappa:</Italian> </Key> <Key ID="STR_ACE_microdagr_settingDegrees"> <English>Degrees</English> @@ -55,13 +60,14 @@ <Polish>Stopnie</Polish> <French>Degrés</French> <Czech>Stupně</Czech> + <Italian>Gradi</Italian> </Key> <Key ID="STR_ACE_microdagr_settingOn"> <English>On</English> <Czech>Zapnuto</Czech> <French>Allumé</French> <German>Ein</German> - <Italian>Sì</Italian> + <Italian>Acceso</Italian> <Polish>Wł.</Polish> <Portuguese>Ativar</Portuguese> <Russian>Вкл.</Russian> @@ -72,7 +78,7 @@ <Czech>Vypnuto</Czech> <French>Eteint</French> <German>Aus</German> - <Italian>No</Italian> + <Italian>Spento</Italian> <Polish>Wył.</Polish> <Portuguese>Desativar</Portuguese> <Russian>Выкл.</Russian> @@ -86,6 +92,7 @@ <French>Entrer coordonnées</French> <German>Koordinaten eingeben:</German> <Czech>Napiš souřadnice:</Czech> + <Italian>Introduci griglia coordinate:</Italian> </Key> <Key ID="STR_ACE_microdagr_wpEnterName"> <English>Name of [%1]</English> @@ -95,6 +102,7 @@ <Polish>Nazwa [%1]</Polish> <French>Nom de %1</French> <Czech>Název [%1]</Czech> + <Italian>Nome di [%1]</Italian> </Key> <Key ID="STR_ACE_microdagr_controlMGRS"> <English>MGRS-New</English> @@ -104,6 +112,7 @@ <Polish>MGRS-Nowy</Polish> <French>Info-MGRS</French> <Czech>MGRS-Nový</Czech> + <Italian>Nuovo MGRS</Italian> </Key> <Key ID="STR_ACE_microdagr_controlWGD"> <English>WGD</English> @@ -113,6 +122,7 @@ <Polish>WGD</Polish> <French>WGD</French> <Czech>WGD</Czech> + <Italian>WGD</Italian> </Key> <Key ID="STR_ACE_microdagr_controlRange"> <English>Range:</English> @@ -122,6 +132,7 @@ <Polish>Dystans:</Polish> <French>Distance:</French> <Czech>Vzdálenost:</Czech> + <Italian>Distanza:</Italian> </Key> <Key ID="STR_ACE_microdagr_compasDirection"> <English>Compass Direction</English> @@ -131,6 +142,7 @@ <Polish>Azymut</Polish> <French>Azimut</French> <Czech>Azimut:</Czech> + <Italian>Azimut</Italian> </Key> <Key ID="STR_ACE_microdagr_menuMark"> <English>Mark</English> @@ -140,6 +152,7 @@ <Polish>Oznacz</Polish> <French>Marque</French> <Czech>Označit</Czech> + <Italian>Marca</Italian> </Key> <Key ID="STR_ACE_microdagr_menuWaypoints"> <English>Waypoints</English> @@ -149,6 +162,7 @@ <Czech>Waypointy</Czech> <Polish>Punkty trasy</Polish> <French>Point de passage</French> + <Italian>waypoints</Italian> </Key> <Key ID="STR_ACE_microdagr_menuConnectTo"> <English>Connect To</English> @@ -158,6 +172,7 @@ <Czech>Připojit k</Czech> <Polish>Podłącz do</Polish> <French>Connecter</French> + <Italian>Collega a </Italian> </Key> <Key ID="STR_ACE_microdagr_menuSettings"> <English>Settings</English> @@ -167,6 +182,7 @@ <Russian>Настройки</Russian> <Czech>Nastavení</Czech> <Polish>Ustawienia</Polish> + <Italian>Impostaizoni</Italian> </Key> <Key ID="STR_ACE_microdagr_waypointsSet"> <English>SetWP</English> @@ -176,6 +192,7 @@ <Czech>Nastavit WP</Czech> <Polish>UstawPT</Polish> <French>Définir point de passage</French> + <Italian>Definisci WayPoints</Italian> </Key> <Key ID="STR_ACE_microdagr_waypointsAdd"> <English>Add</English> @@ -185,6 +202,7 @@ <Czech>Přidat</Czech> <Polish>Dodaj</Polish> <French>Ajouter</French> + <Italian>Aggiungi</Italian> </Key> <Key ID="STR_ACE_microdagr_waypointsDelete"> <English>Delete</English> @@ -205,6 +223,7 @@ <Polish>Przełącz GUI MicroDAGR</Polish> <French>Basculer le mode d'affichage MicroDAGR</French> <Czech>Přepnout zobrazení MircroDAGRu</Czech> + <Italian>Alterna modalità display MicroDAGR</Italian> </Key> <Key ID="STR_ACE_microdagr_show"> <English>Show MicoDAGR</English> @@ -214,6 +233,7 @@ <Czech>Ukázat MicroDAGR GPS</Czech> <Polish>Pokaż<br />MicroDAGR</Polish> <French>Afficher MicroDAGR</French> + <Italian>Mostra MicroDAGR</Italian> </Key> <Key ID="STR_ACE_microdagr_configure"> <English>Configure MicroDAGR</English> @@ -223,6 +243,7 @@ <Czech>Konfigurovat MicroDAGR GPS</Czech> <Polish>Konfiguruj<br />MicroDAGR</Polish> <French>Configurer MicroDAGR</French> + <Italian>ConfiguraMicroDAGR</Italian> </Key> <Key ID="STR_ACE_microdagr_closeUnit"> <English>Close MicroDAGR</English> @@ -232,6 +253,7 @@ <Czech>Zavřít MicroDAGR GPS</Czech> <Polish>Zamknij<br />MicroDAGR</Polish> <French>Fermer MicroDAGR</French> + <Italian>Chiudi MicroDAGR</Italian> </Key> </Package> -</Project> \ No newline at end of file +</Project> From 76ff1da57a52bd2195eb7cd60b5b070c9ed0c1aa Mon Sep 17 00:00:00 2001 From: Marco <ramius86@users.noreply.github.com> Date: Wed, 15 Apr 2015 11:19:54 +0200 Subject: [PATCH 029/109] Update stringtable.xml Italian --- addons/missileguidance/stringtable.xml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/addons/missileguidance/stringtable.xml b/addons/missileguidance/stringtable.xml index 16c9a7ec74..921ad84701 100644 --- a/addons/missileguidance/stringtable.xml +++ b/addons/missileguidance/stringtable.xml @@ -8,7 +8,7 @@ <Polish>Zaawansowane naprowadzanie rakiet</Polish> <German>Erweiterte Raketenlenkung</German> <Czech>Pokročilé řízení střel</Czech> - <Italian>Avanzato Missile Guidance</Italian> + <Italian>Guida missili avanzata</Italian> <Portuguese>Avançado Missile Guidance</Portuguese> <Hungarian>Részletes rakéta irányító</Hungarian> <Russian>Расширенный ракетой</Russian> @@ -20,7 +20,7 @@ <Polish>Hydra-70 DAGR</Polish> <German>Hydra-70 DAGR Rackete</German> <Czech>Hydra-70 DAGR</Czech> - <Italian></Italian> + <Italian>Missile Hydra-70 DAGR</Italian> <Portuguese></Portuguese> <Hungarian></Hungarian> <Russian></Russian> @@ -32,7 +32,7 @@ <Polish>DAGR</Polish> <German>DAGR</German> <Czech>DAGR</Czech> - <Italian></Italian> + <Italian>DAGR</Italian> <Portuguese></Portuguese> <Hungarian></Hungarian> <Russian></Russian> @@ -44,7 +44,7 @@ <Polish>Laserowo naprowadzana rakieta Hydra-70 DAGR</Polish> <German>Hydra-70 Lasergelenkte DAGR Rakete</German> <Czech>Hydra-70 DAGR laserem naváděná střela</Czech> - <Italian></Italian> + <Italian>Hydra-70 DAGR missile guida laser</Italian> <Portuguese></Portuguese> <Hungarian></Hungarian> <Russian></Russian> @@ -56,7 +56,7 @@ <Polish>Hellfire II AGM-114K</Polish> <German>Hellfire II AGM-114K</German> <Czech>Hellfire II AGM-114K</Czech> - <Italian></Italian> + <Italian>Missile Hellfire II AGM-114K</Italian> <Portuguese></Portuguese> <Hungarian></Hungarian> <Russian></Russian> @@ -68,7 +68,7 @@ <Polish>AGM-114K</Polish> <German>AGM-114K</German> <Czech>AGM-114K</Czech> - <Italian></Italian> + <Italian>AGM-114K</Italian> <Portuguese></Portuguese> <Hungarian></Hungarian> <Russian></Russian> @@ -80,7 +80,7 @@ <Polish>Laserowo naprowadzana rakieta Hellfire II AGM-114K</Polish> <German>Hellfire II AGM-114K Lasergelenkte Rakete</German> <Czech>Hellfire II AGM-114K laserem naváděná střela</Czech> - <Italian></Italian> + <Italian>Missile guida laser Hellfire II AGM-114K</Italian> <Portuguese></Portuguese> <Hungarian></Hungarian> <Russian></Russian> From bc62891122bbfb465604bcf53e8f8fcdaa8f6e5d Mon Sep 17 00:00:00 2001 From: Marco <ramius86@users.noreply.github.com> Date: Wed, 15 Apr 2015 11:24:20 +0200 Subject: [PATCH 030/109] Update stringtable.xml Italian --- addons/movement/stringtable.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/addons/movement/stringtable.xml b/addons/movement/stringtable.xml index 9de9e9033f..0672c593f6 100644 --- a/addons/movement/stringtable.xml +++ b/addons/movement/stringtable.xml @@ -33,6 +33,7 @@ <Spanish>Trepar</Spanish> <Czech>Vylézt</Czech> <Russian>Подняться</Russian> + <Italian>Arrampicati</Italian> </Key> <Key ID="STR_ACE_Movement_CanNotClimb"> <English>Can't climb here</English> @@ -42,6 +43,7 @@ <Spanish>No se puede trepar aquí</Spanish> <Czech>Zde není možné vylézt</Czech> <Russian>Не можете подняться здесь</Russian> + <Italian>Non puoi arrampicarti qui</Italian> </Key> </Package> </Project> From bf8f9b48182ddcc02c485bf1dad7cee1da407dd7 Mon Sep 17 00:00:00 2001 From: commy2 <commy-2@gmx.de> Date: Wed, 15 Apr 2015 15:34:01 +0200 Subject: [PATCH 031/109] all I need is a $ --- addons/respawn/CfgVehicles.hpp | 6 +++--- addons/respawn/functions/fnc_handleInitPostServer.sqf | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/addons/respawn/CfgVehicles.hpp b/addons/respawn/CfgVehicles.hpp index 28e33c6b3e..56d2058d2c 100644 --- a/addons/respawn/CfgVehicles.hpp +++ b/addons/respawn/CfgVehicles.hpp @@ -152,7 +152,7 @@ class CfgVehicles { XEH_ENABLED; author = "$STR_ACE_Common_ACETeam"; - displayName = "STR_ACE_Respawn_RallypointWest"; + displayName = "$STR_ACE_Respawn_RallypointWest"; vehicleClass = QGVAR(Rallypoints); class ACE_Actions: ACE_Actions { @@ -172,7 +172,7 @@ class CfgVehicles { XEH_ENABLED; author = "$STR_ACE_Common_ACETeam"; - displayName = "STR_ACE_Respawn_RallypointEast"; + displayName = "$STR_ACE_Respawn_RallypointEast"; vehicleClass = QGVAR(Rallypoints); class ACE_Actions: ACE_Actions { @@ -192,7 +192,7 @@ class CfgVehicles { XEH_ENABLED; author = "$STR_ACE_Common_ACETeam"; - displayName = "STR_ACE_Respawn_RallypointIndependent"; + displayName = "$STR_ACE_Respawn_RallypointIndependent"; vehicleClass = QGVAR(Rallypoints); class ACE_Actions: ACE_Actions { diff --git a/addons/respawn/functions/fnc_handleInitPostServer.sqf b/addons/respawn/functions/fnc_handleInitPostServer.sqf index c83354b24e..f8a0479717 100644 --- a/addons/respawn/functions/fnc_handleInitPostServer.sqf +++ b/addons/respawn/functions/fnc_handleInitPostServer.sqf @@ -41,7 +41,7 @@ if (_leaderVarName == "") then { private "_leaderID"; _leaderID = GETGVAR(NextLeaderID,0); - _leaderVarName = format [QGVAR(Rallypoint_Leader_%1), _leaderID]; + _leaderVarName = format [QUOTE(ACE_Rallypoint_Leader_%1), _leaderID]; _unit setVehicleVarName _leaderVarName; From 9c1b40f5a36bb20435a488ca343c25377b02134e Mon Sep 17 00:00:00 2001 From: commy2 <commy-2@gmx.de> Date: Wed, 15 Apr 2015 16:40:20 +0200 Subject: [PATCH 032/109] preparing for improved positions of action points --- addons/respawn/CfgVehicles.hpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/addons/respawn/CfgVehicles.hpp b/addons/respawn/CfgVehicles.hpp index 56d2058d2c..384376b00c 100644 --- a/addons/respawn/CfgVehicles.hpp +++ b/addons/respawn/CfgVehicles.hpp @@ -100,7 +100,7 @@ class CfgVehicles { distance = 4; condition = QUOTE(side group _player == west); statement = QUOTE([ARR_3(_player,side group _player,'ACE_Rallypoint_West')] call FUNC(teleportToRallypoint)); - position[] = {0,0,-1}; + position = "[0,0,-1]"; showDisabled = 1; priority = 1; }; @@ -120,7 +120,7 @@ class CfgVehicles { distance = 4; condition = QUOTE(side group _player == east); statement = QUOTE([ARR_3(_player,side group _player,'ACE_Rallypoint_East')] call FUNC(teleportToRallypoint)); - position[] = {0,0,-1}; + position = "[0,0,-1]"; showDisabled = 1; priority = 1; }; @@ -140,7 +140,7 @@ class CfgVehicles { distance = 4; condition = QUOTE(side group _player == independent); statement = QUOTE([ARR_3(_player,side group _player,'ACE_Rallypoint_Independent')] call FUNC(teleportToRallypoint)); - position[] = {0,0,-1}; + position = "[0,0,-1]"; showDisabled = 1; priority = 1; }; @@ -161,7 +161,7 @@ class CfgVehicles { distance = 4; condition = QUOTE(side group _player == west); statement = QUOTE([ARR_3(_player,side group _player,'ACE_Rallypoint_West_Base')] call FUNC(teleportToRallypoint)); - position[] = {0,0,-1}; + position = "[0,0,-1]"; showDisabled = 1; priority = 1; }; @@ -181,7 +181,7 @@ class CfgVehicles { distance = 4; condition = QUOTE(side group _player == east); statement = QUOTE([ARR_3(_player,side group _player,'ACE_Rallypoint_East_Base')] call FUNC(teleportToRallypoint)); - position[] = {0,0,-1}; + position = "[0,0,-1]"; showDisabled = 1; priority = 1; }; @@ -201,7 +201,7 @@ class CfgVehicles { distance = 4; condition = QUOTE(side group _player == independent); statement = QUOTE([ARR_3(_player,side group _player,'ACE_Rallypoint_Independent_Base')] call FUNC(teleportToRallypoint)); - position[] = {0,0,-1}; + position = "[0,0,-1]"; showDisabled = 1; priority = 1; }; From 0d28a890e1229ad8b1aa29559fc671f58151e07f Mon Sep 17 00:00:00 2001 From: jaynus <jaynus@gmail.com> Date: Wed, 15 Apr 2015 08:19:21 -0700 Subject: [PATCH 033/109] Fixes: Cycle fire mode on Titan was not working. Closes #603 --- addons/javelin/functions/fnc_showFireMode.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/javelin/functions/fnc_showFireMode.sqf b/addons/javelin/functions/fnc_showFireMode.sqf index 35dff9dbd3..88374548c0 100644 --- a/addons/javelin/functions/fnc_showFireMode.sqf +++ b/addons/javelin/functions/fnc_showFireMode.sqf @@ -4,8 +4,8 @@ TRACE_1("enter", _this); private["_player", "_currentFireMode"]; -_currentFireMode = ACE_player getVariable["ace_missileguidance_attackProfile", "TOP"]; -if(_currentFireMode == "TOP") then { +_currentFireMode = ACE_player getVariable["ace_missileguidance_attackProfile", "JAV_TOP"]; +if(_currentFireMode == "JAV_TOP") then { __JavelinIGUITop ctrlSetTextColor __ColorGreen; __JavelinIGUIDir ctrlSetTextColor __ColorGray; } else { From 6fca6017591acf97b16e162fc7ee4336be202fc7 Mon Sep 17 00:00:00 2001 From: ruPaladin <happyworm24@rambler.ru> Date: Wed, 15 Apr 2015 18:24:57 +0300 Subject: [PATCH 034/109] Kestrel 4500NV translation to Russian --- addons/kestrel4500/stringtable.xml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/addons/kestrel4500/stringtable.xml b/addons/kestrel4500/stringtable.xml index e9a72d82a8..3a0e18b9e5 100644 --- a/addons/kestrel4500/stringtable.xml +++ b/addons/kestrel4500/stringtable.xml @@ -17,27 +17,33 @@ <Key ID="STR_ACE_Kestrel_Description"> <English>Kestrel 4500 Pocket Weather Tracker</English> <Polish>Anemomentr skrzydełkowy Kestrel 4500</Polish> + <Russian>Карманная метеостанция Kestrel 4500NV</Russian> </Key> <Key ID="STR_ACE_Kestrel4500_OpenKestrel"> <English>Open Kestrel 4500</English> <Polish>Otwórz Kestrel 4500</Polish> <Hungarian>Kestrel 4500 elővétele</Hungarian> + <Russian>Открыть Kestrel 4500NV</Russian> </Key> <Key ID="STR_ACE_Kestrel4500_ShowKestrel"> <English>Show Kestrel 4500</English> <Polish>Pokaż Kestrel 4500</Polish> + <Russian>Показать Kestrel 4500NV</Russian> </Key> <Key ID="STR_ACE_Kestrel4500_HideKestrel"> <English>Hide Kestrel 4500</English> <Polish>Ukryj Kestrel 4500</Polish> + <Russian>Убрать Kestrel 4500NV</Russian> </Key> <Key ID="STR_ACE_Kestrel4500_KestrelDialogKey"> <English>Open Kestrel 4500</English> <Polish>Otwórz Kestrel 4500</Polish> + <Russian>Открыть Kestrel 4500NV</Russian> </Key> <Key ID="STR_ACE_Kestrel4500_DisplayKestrelKey"> <English>Show Kestrel 4500</English> <Polish>Pokaż Kestrel 4500</Polish> + <Russian>Показать Kestrel 4500NV</Russian> </Key> </Package> </Project> From 64504a95156916f222e8b822414c66912ce287b7 Mon Sep 17 00:00:00 2001 From: ruPaladin <happyworm24@rambler.ru> Date: Wed, 15 Apr 2015 18:27:28 +0300 Subject: [PATCH 035/109] addons/interact_menu translation to Russian --- addons/interact_menu/stringtable.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/addons/interact_menu/stringtable.xml b/addons/interact_menu/stringtable.xml index eb03f86355..8960f99e60 100644 --- a/addons/interact_menu/stringtable.xml +++ b/addons/interact_menu/stringtable.xml @@ -14,6 +14,7 @@ <Key ID="STR_ACE_Interact_Menu_UseListMenu"> <English>Display interaction menus as lists</English> <Spanish>Mostrar los menus de interacción como listas</Spanish> + <Russian>Показывать меню взаимодействия в виде списка</Russian> </Key> <Key ID="STR_ACE_Interact_Menu_InteractKey"> <English>Interact Key</English> From 9caba1e3a33aefefec4c8f6ecf179aea54a93331 Mon Sep 17 00:00:00 2001 From: ruPaladin <happyworm24@rambler.ru> Date: Wed, 15 Apr 2015 18:29:38 +0300 Subject: [PATCH 036/109] addons/weather/ translation to Russian --- addons/weather/stringtable.xml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/addons/weather/stringtable.xml b/addons/weather/stringtable.xml index 4827751c6b..85b1e96383 100644 --- a/addons/weather/stringtable.xml +++ b/addons/weather/stringtable.xml @@ -5,6 +5,7 @@ <Key ID="STR_ACE_Weather_WindInfoKey"> <English>Show Wind Info</English> <Polish>Pokaż inf. o wietrze</Polish> + <Russian>Показать информацию о погоде</Russian> </Key> </Package> -</Project> \ No newline at end of file +</Project> From ad67fca8f4f8066e2ff898cda58003f4273dc8b1 Mon Sep 17 00:00:00 2001 From: Marco <ramius86@users.noreply.github.com> Date: Wed, 15 Apr 2015 17:45:48 +0200 Subject: [PATCH 037/109] Update stringtable.xml --- addons/interaction/stringtable.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/interaction/stringtable.xml b/addons/interaction/stringtable.xml index ce18f514f4..dd63efef07 100644 --- a/addons/interaction/stringtable.xml +++ b/addons/interaction/stringtable.xml @@ -578,7 +578,7 @@ <Czech>Připojil ses do %1 týmu</Czech> <Russian>Вы присоединились к группе %1</Russian> <Portuguese>Você uniu-se à Equipe %1</Portuguese> - <Italian>Sei entrato nella team %1</Italian> + <Italian>Sei entrato nel team %1</Italian> <Hungarian>Csatlakoztál a %1 csapathoz</Hungarian> </Key> <Key ID="STR_ACE_Interaction_LeaveTeam"> From ead2b1f06447d2494c17d6813a7802fb7b23ffca Mon Sep 17 00:00:00 2001 From: Marco <ramius86@users.noreply.github.com> Date: Wed, 15 Apr 2015 17:52:12 +0200 Subject: [PATCH 038/109] Update AUTHORS.txt --- AUTHORS.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS.txt b/AUTHORS.txt index 34feb3838f..e2930ee461 100644 --- a/AUTHORS.txt +++ b/AUTHORS.txt @@ -67,6 +67,7 @@ rakowozz Raspu86 Riccardo Petricca <petriccarcc@gmail.com> Robert Boklahánics <bokirobi@gmail.com> +ramius86 <pasini86@hotmail.com> simon84 Sniperwolf572 <tenga6@gmail.com> Tonic From a3965424b9fdce9d7c1aa509331589727604fd93 Mon Sep 17 00:00:00 2001 From: ruPaladin <happyworm24@rambler.ru> Date: Wed, 15 Apr 2015 19:09:10 +0300 Subject: [PATCH 039/109] addons/medical translation to Russian --- addons/medical/stringtable.xml | 37 +++++++++++++++++++++++----------- 1 file changed, 25 insertions(+), 12 deletions(-) diff --git a/addons/medical/stringtable.xml b/addons/medical/stringtable.xml index 8547a36eae..ea69c1c722 100644 --- a/addons/medical/stringtable.xml +++ b/addons/medical/stringtable.xml @@ -74,6 +74,7 @@ <Czech>Aplikovat škrtidlo</Czech> <Polish>Załóż stazę</Polish> <French>Appliquer un garrot</French> + <Russian>Наложить жгут</Russian> </Key> <Key ID="STR_ACE_Medical_Bandage"> <English>Bandage</English> @@ -165,7 +166,7 @@ <Spanish>Inyectando Morfina ...</Spanish> <Polish>Wstrzykiwanie morfiny ...</Polish> <Czech>Aplikuji morfin ...</Czech> - <Russian>Введение морфина...</Russian> + <Russian>Введение морфина ...</Russian> <French>Injection de Morphine...</French> <Hungarian>Morfium beadása ...</Hungarian> <Portuguese>Injetando Morfina ...</Portuguese> @@ -177,7 +178,7 @@ <Spanish>Inyectando Epinefrina ...</Spanish> <Polish>Wstrzykiwanie adrenaliny ...</Polish> <Czech>Aplikuji adrenalin ...</Czech> - <Russian>Введение адреналина...</Russian> + <Russian>Введение адреналина ...</Russian> <French>Injection d'Adrénaline ...</French> <Hungarian>Epinefrin beadása ...</Hungarian> <Portuguese>Injetando Epinefrina ...</Portuguese> @@ -190,7 +191,7 @@ <Czech>Aplikuji atropin ...</Czech> <Polish>Wstrzykiwanie atropiny ...</Polish> <French>Injection d'Atropine ...</French> - <Russian>Введение атропина...</Russian> + <Russian>Введение атропина ...</Russian> <Hungarian>Atropin beadása ...</Hungarian> </Key> <Key ID="STR_ACE_Medical_Transfusing_Blood"> @@ -199,7 +200,7 @@ <Spanish>Transfusión de sangre ...</Spanish> <Polish>Przetaczanie krwi ...</Polish> <Czech>Probíhá transfúze krve ...</Czech> - <Russian>Переливание крови...</Russian> + <Russian>Переливание крови ...</Russian> <French>Transfusion Sanguine ...</French> <Hungarian>Infúzió vérrel ...</Hungarian> <Portuguese>Transfundindo Sangue ...</Portuguese> @@ -212,7 +213,7 @@ <Czech>Probíha transfúze fyziologický roztoku ...</Czech> <Polish>Przetaczanie solanki ...</Polish> <French>Transfusion de saline ...</French> - <Russian>Переливание физраствора...</Russian> + <Russian>Переливание физраствора ...</Russian> <Hungarian>Infúzió sós vizzel ...</Hungarian> </Key> <Key ID="STR_ACE_Medical_Transfusing_Plasma"> @@ -222,7 +223,7 @@ <Czech>Probíha transfúze plazmy ...</Czech> <Polish>Przetaczanie osocza ...</Polish> <French>Transfusion de Plasma ...</French> - <Russian>Переливание плазмы...</Russian> + <Russian>Переливание плазмы ...</Russian> <Hungarian>Infúzió vérplazmával ...</Hungarian> </Key> <Key ID="STR_ACE_Medical_Bandaging"> @@ -235,7 +236,7 @@ <Italian>Sto applicando la benda ...</Italian> <Hungarian>Bekötözés ...</Hungarian> <Portuguese>Atando ...</Portuguese> - <Russian>Перевязывание...</Russian> + <Russian>Перевязывание ...</Russian> </Key> <Key ID="STR_ACE_Medical_Applying_Tourniquet"> <English>Applying Tourniquet ...</English> @@ -244,7 +245,7 @@ <Czech>Aplikuji škrtidlo</Czech> <Polish>Zakładanie stazy ...</Polish> <French>Mise en place du Garrot ...</French> - <Russian>Наложение жгута...</Russian> + <Russian>Наложение жгута ...</Russian> <Hungarian>Érszorító felhelyezése ...</Hungarian> </Key> <Key ID="STR_ACE_MEDICAL_ACTIONS_Medical"> @@ -1014,7 +1015,7 @@ <Key ID="STR_ACE_MEDICAL_CHECK_BLOODPRESSURE_CONTENT"> <English>Checking Blood Pressure..</English> <French>Mesure de la tension ...</French> - <Russian>Проверка артериального давления...</Russian> + <Russian>Проверка артериального давления ...</Russian> <Spanish>Comprobando presión arterial...</Spanish> <Polish>Sprawdzanie ciśnienia krwi...</Polish> <German>Blutdruck kontrollieren...</German> @@ -1093,7 +1094,7 @@ <Key ID="STR_ACE_MEDICAL_CHECK_PULSE_CONTENT"> <English>Checking Heart Rate..</English> <French>Vérification du rythme cardiaque ...</French> - <Russian>Проверка пульса...</Russian> + <Russian>Проверка пульса ...</Russian> <Spanish>Comprobando ritmo cardíaco...</Spanish> <Polish>Sprawdzanie tętna...</Polish> <German>Kontrolliere Herzfrequenz</German> @@ -1182,7 +1183,7 @@ </Key> <Key ID="STR_ACE_MEDICAL_CHECK_REPONSE_UNRESPONSIVE"> <English>%1 is not responsive</English> - <Russian>%1 не реагирует</Russian> + <Russian>%1 не реагирует на раздражители</Russian> <French>%1 est inconscient</French> <Spanish>%1 no reacciona</Spanish> <Polish>%1 jest nieprzytomny</Polish> @@ -1350,7 +1351,7 @@ <Key ID="STR_ACE_MEDICAL_PlacingInBodyBag"> <English>Placing body in bodybag</English> <Spanish>Colocando cuerpo en bolsa para cadáveres</Spanish> - <Russian>Упаковка тела</Russian> + <Russian>Упаковка тела ...</Russian> <Polish>Pakowanie ciała do worka na zwłoki</Polish> <French>Placement du corps dans la housse</French> <Hungarian>Test hullazsákba helyezése ...</Hungarian> @@ -1391,61 +1392,73 @@ <English>Heavily wounded</English> <German>Schwer verwundet:</German> <Polish>Ciężko ranny</Polish> + <Russian>Сильно ранен</Russian> </Key> <Key ID="STR_ACE_Medical_LightlyWounded"> <English>Lightly wounded</English> <German>Leicht verwundet:</German> <Polish>Lekko ranny</Polish> + <Russian>Легко ранен</Russian> </Key> <Key ID="STR_ACE_Medical_VeryLightlyWounded"> <English>Very lightly wounded</English> <German>Sehr leicht verwundet:</German> <Polish>B. lekko ranny</Polish> + <Russian>Очень легко ранен</Russian> </Key> <Key ID="STR_ACE_Medical_Head"> <English>Head</English> <German>Kopf</German> <Polish>Głowa</Polish> + <Russian>Голова</Russian> </Key> <Key ID="STR_ACE_Medical_Torso"> <English>Torso</English> <German>Torso</German> <Polish>Tors</Polish> + <Russian>Торс</Russian> </Key> <Key ID="STR_ACE_Medical_LeftArm"> <English>Left Arm</English> <German>Linker Arm</German> <Polish>Lewe ramię</Polish> + <Russian>Левая рука</Russian> </Key> <Key ID="STR_ACE_Medical_RightArm"> <English>Right Arm</English> <German>Rechter Arm</German> <Polish>Prawe ramię</Polish> + <Russian>Правая рука</Russian> </Key> <Key ID="STR_ACE_Medical_LeftLeg"> <English>Left Leg</English> <German>Linkes Bein</German> <Polish>Lewa noga</Polish> + <Russian>Левая нога</Russian> </Key> <Key ID="STR_ACE_Medical_RightLeg"> <English>Right Leg</English> <German>Rechtes Bein</German> <Polish>Prawa noga</Polish> + <Russian>Правая нога</Russian> </Key> <Key ID="STR_ACE_Medical_painEffectType"> <English>Pain Effect Type</English> <German>Schmerzeffekt-Typ</German> <Polish>Rodzaj efektu bólu</Polish> + <Russian>Вид боли</Russian> </Key> <Key ID="STR_ACE_Medical_painEffect_Flash"> <English>Colour Flashing</English> <German>Farbblinken</German> <Polish>Pulsujące kolory</Polish> + <Russian>Разноцветные вспышки</Russian> </Key> <Key ID="STR_ACE_Medical_painEffect_Chroma"> <English>Chromatic Aberration</English> <German>Chromatische Aberration</German> <Polish>Aberracja chromatyczna</Polish> + <Russian>Хроматическая аберрация</Russian> </Key> </Package> </Project> From c793df48486e6f59867bfa5aadeea9f8580f77fe Mon Sep 17 00:00:00 2001 From: jaynus <jaynus@gmail.com> Date: Wed, 15 Apr 2015 09:10:00 -0700 Subject: [PATCH 040/109] Changed: Safety mode on Titan, it now doesnt show as unloaded Fixed: Some TOP shots would miss, Fixed: Lock constraints would show on fast weapon switch. --- addons/javelin/CfgEventhandlers.hpp | 6 ++ addons/javelin/RscInGameUI.hpp | 2 +- addons/javelin/XEH_pre_init.sqf | 1 + addons/javelin/functions/fnc_onFired.sqf | 18 ++++++ addons/javelin/functions/fnc_onOpticDraw.sqf | 58 +++++++++++++------ addons/javelin/functions/fnc_onOpticLoad.sqf | 3 +- .../javelin/functions/fnc_onOpticUnload.sqf | 20 +++++++ .../functions/fnc_attackProfile_JAV_TOP.sqf | 5 +- 8 files changed, 92 insertions(+), 21 deletions(-) create mode 100644 addons/javelin/functions/fnc_onFired.sqf create mode 100644 addons/javelin/functions/fnc_onOpticUnload.sqf diff --git a/addons/javelin/CfgEventhandlers.hpp b/addons/javelin/CfgEventhandlers.hpp index 2c44a05e3a..ae7f95b232 100644 --- a/addons/javelin/CfgEventhandlers.hpp +++ b/addons/javelin/CfgEventhandlers.hpp @@ -9,4 +9,10 @@ class Extended_PostInit_EventHandlers { init = QUOTE(call COMPILE_FILE(XEH_post_init)); clientInit = QUOTE(call COMPILE_FILE(XEH_clientInit)); }; +}; + +class Extended_FiredBIS_EventHandlers { + class All { + ADDON = QUOTE(_this call FUNC(onFired)); + }; }; \ No newline at end of file diff --git a/addons/javelin/RscInGameUI.hpp b/addons/javelin/RscInGameUI.hpp index 8b33c95c01..d845c1d00b 100644 --- a/addons/javelin/RscInGameUI.hpp +++ b/addons/javelin/RscInGameUI.hpp @@ -14,7 +14,7 @@ class RscInGameUI { idd = 300; controls[] = { "ACE_javelin_elements_group", "ACE_Targeting" }; //, "ACE_TargetingConstrains", "ACE_TargetingGate", "ACE_TargetingLines"}; onLoad = QUOTE(_this call FUNC(onOpticLoad)); - onUnload = "uiNameSpace setVariable ['ACE_RscOptics_javelin',nil];uiNameSpace setVariable ['ACE_RscOptics_javelin_PFH',nil];"; + onUnload = QUOTE(_this call FUNC(onOpticUnload)); class ACE_javelin_elements_group: RscControlsGroup { diff --git a/addons/javelin/XEH_pre_init.sqf b/addons/javelin/XEH_pre_init.sqf index 2b2e980191..1accd4a8f4 100644 --- a/addons/javelin/XEH_pre_init.sqf +++ b/addons/javelin/XEH_pre_init.sqf @@ -6,6 +6,7 @@ PREP(lockKeyUp); PREP(cycleFireMode); PREP(showFireMode); +PREP(onFired); PREP(onOpticLoad); PREP(onOpticDraw); diff --git a/addons/javelin/functions/fnc_onFired.sqf b/addons/javelin/functions/fnc_onFired.sqf new file mode 100644 index 0000000000..fde0f94365 --- /dev/null +++ b/addons/javelin/functions/fnc_onFired.sqf @@ -0,0 +1,18 @@ +//#define DEBUG_MODE_FULL +#include "script_component.hpp" + +PARAMS_7(_shooter,_weapon,_muzzle,_mode,_ammo,_magazine,_projectile); + +// Bail on not missile +if(! (_weapon in ["launch_Titan_short_F"]) ) exitWith { false }; + +_pfh_handle = uiNamespace getVariable ["ACE_RscOptics_javelin_PFH", nil]; +if(!isNil "_pfh_handle") then { + //[_pfh_handle] call cba_fnc_removePerFrameHandler; + //uiNamespace setVariable["ACE_RscOptics_javelin_PFH", nil]; + + __JavelinIGUITargeting ctrlShow false; + __JavelinIGUITargetingGate ctrlShow false; + __JavelinIGUITargetingLines ctrlShow false; + __JavelinIGUITargetingConstraints ctrlShow false; +}; \ No newline at end of file diff --git a/addons/javelin/functions/fnc_onOpticDraw.sqf b/addons/javelin/functions/fnc_onOpticDraw.sqf index 85877f1f16..3a64a36802 100644 --- a/addons/javelin/functions/fnc_onOpticDraw.sqf +++ b/addons/javelin/functions/fnc_onOpticDraw.sqf @@ -11,18 +11,6 @@ TRACE_1("enter", _this); private["_isJavelin", "_args", "_lastTick", "_runTime", "_soundTime", "_lockTime", "_newTarget", "_currentTarget", "_range", "_pos", "_targetArray"]; -if( ! ([ (configFile >> "CfgWeapons" >> (currentWeapon (vehicle ACE_player)) ), "launch_Titan_base"] call EFUNC(common,inheritsFrom)) - || { (vehicle ACE_player) != ACE_player } - ) exitWith { - __JavelinIGUITargeting ctrlShow false; - __JavelinIGUITargetingGate ctrlShow false; - __JavelinIGUITargetingLines ctrlShow false; - __JavelinIGUITargetingConstraints ctrlShow false; - - [(_this select 1)] call cba_fnc_removePerFrameHandler; - uiNamespace setVariable["ACE_RscOptics_javelin_PFH", nil]; -}; - // Reset arguments if we havnt rendered in over a second _args = uiNamespace getVariable[QGVAR(arguments), [] ]; if( (count _args) > 0) then { @@ -40,6 +28,21 @@ _runTime = _args select 2; _lockTime = _args select 3; _soundTime = _args select 4; _randomLockInterval = _args select 5; +_fireDisabledEH = _args select 6; + +if( ! ([ (configFile >> "CfgWeapons" >> (currentWeapon (vehicle ACE_player)) ), "launch_Titan_base"] call EFUNC(common,inheritsFrom)) + || { (vehicle ACE_player) != ACE_player } + ) exitWith { + __JavelinIGUITargeting ctrlShow false; + __JavelinIGUITargetingGate ctrlShow false; + __JavelinIGUITargetingLines ctrlShow false; + __JavelinIGUITargetingConstraints ctrlShow false; + + _fireDisabledEH = [_fireDisabledEH] call FUNC(enableFire); + + [(_this select 1)] call cba_fnc_removePerFrameHandler; + uiNamespace setVariable["ACE_RscOptics_javelin_PFH", nil]; +}; // Find a target within the optic range _newTarget = objNull; @@ -106,6 +109,27 @@ if((call CBA_fnc_getFoV) select 1 > 9) then { __JavelinIGUIWFOV ctrlSetTextColor __ColorGreen; }; +FUNC(disableFire) = { + _firedEH = _this select 0; + + if(_firedEH < 0) then { + _firedEH = [ACE_player, "DefaultAction", {true}, { + _canFire = ACE_player getVariable["ace_missileguidance_target", nil]; + if(!isNil "_canFire") exitWith { false }; + true + }] call EFUNC(common,addActionEventHandler); + }; + _firedEH +}; +FUNC(enableFire) = { + _firedEH = _this select 0; + + if(_firedEH > 0) then { + [ACE_player, "DefaultAction", _firedEH] call EFUNC(common,removeActionEventHandler); + }; + -1 +}; + if (isNull _newTarget) then { // No targets found _currentTarget = objNull; @@ -120,8 +144,7 @@ if (isNull _newTarget) then { ACE_player setVariable ["ace_missileguidance_target",nil, false]; // Disallow fire - if (ACE_player ammo (currentWeapon ACE_player) > 0) then { ACE_player setWeaponReloadingTime [player, (currentWeapon ACE_player), 0.2]; }; - + _fireDisabledEH = [_fireDisabledEH] call FUNC(disableFire); } else { if (_newTarget distance ACE_player < 2500 && {(call CBA_fnc_getFoV) select 1 > 9} @@ -176,7 +199,7 @@ if (isNull _newTarget) then { ACE_player setVariable["ace_missileguidance_target", _currentTarget, false]; // Allow fire - ACE_player setWeaponReloadingTime [player, (currentWeapon ACE_player), 0]; + _fireDisabledEH = [_fireDisabledEH] call FUNC(enableFire); if(diag_tickTime > _soundTime) then { playSound "ACE_Javelin_Locked"; @@ -217,7 +240,7 @@ if (isNull _newTarget) then { _soundTime = diag_tickTime + 0.25; }; // Disallow fire - if (ACE_player ammo (currentWeapon ACE_player) > 0) then { ACE_player setWeaponReloadingTime [player, (currentWeapon ACE_player), 0.2]; }; + _fireDisabledEH = [_fireDisabledEH] call FUNC(disableFire); }; }; } else { @@ -234,7 +257,7 @@ if (isNull _newTarget) then { ACE_player setVariable ["ace_missileguidance_target",nil, false]; // Disallow fire - if (ACE_player ammo (currentWeapon ACE_player) > 0) then { ACE_player setWeaponReloadingTime [player, (currentWeapon ACE_player), 0.2]; }; + _fireDisabledEH = [_fireDisabledEH] call FUNC(disableFire); }; }; @@ -246,5 +269,6 @@ _args set[1, _currentTarget]; _args set[2, _runTime]; _args set[3, _lockTime]; _args set[4, _soundTime]; +_args set[6, _fireDisabledEH]; uiNamespace setVariable[QGVAR(arguments), _args ]; \ No newline at end of file diff --git a/addons/javelin/functions/fnc_onOpticLoad.sqf b/addons/javelin/functions/fnc_onOpticLoad.sqf index d38e1c3305..a2b2692859 100644 --- a/addons/javelin/functions/fnc_onOpticLoad.sqf +++ b/addons/javelin/functions/fnc_onOpticLoad.sqf @@ -25,7 +25,8 @@ uiNameSpace setVariable [QGVAR(arguments), 0, // Run Time 0, // Lock Time 0, // Sound timer - (random __LOCKONTIMERANDOM) // random lock time addition + (random __LOCKONTIMERANDOM), // random lock time addition + -1 ] ]; diff --git a/addons/javelin/functions/fnc_onOpticUnload.sqf b/addons/javelin/functions/fnc_onOpticUnload.sqf new file mode 100644 index 0000000000..38acc1cd1c --- /dev/null +++ b/addons/javelin/functions/fnc_onOpticUnload.sqf @@ -0,0 +1,20 @@ +//#define DEBUG_MODE_FULL +#include "script_component.hpp" +TRACE_1("enter", _this); + +uiNameSpace setVariable ['ACE_RscOptics_javelin',nil]; + +_pfh = uiNamespace getVariable["ACE_RscOptics_javelin_PFH", nil ]; +if(!isNil "_pfh") then { + [_pfh] call CBA_fnc_removePerFrameHandler; + uiNameSpace setVariable ['ACE_RscOptics_javelin_PFH',nil]; +}; + +_args = uiNamespace getVariable[QGVAR(arguments), nil ]; +if(!isNil "_args") then { + _disableFireEH = _args select 6; + if(_disableFireEH > 0) then { + [ACE_player, "DefaultAction", _disableFireEH] call EFUNC(common,removeActionEventHandler); + }; + uiNameSpace setVariable [QGVAR(arguments),nil]; +}; diff --git a/addons/missileguidance/functions/fnc_attackProfile_JAV_TOP.sqf b/addons/missileguidance/functions/fnc_attackProfile_JAV_TOP.sqf index dc8b9b8e9d..fd86c2bf03 100644 --- a/addons/missileguidance/functions/fnc_attackProfile_JAV_TOP.sqf +++ b/addons/missileguidance/functions/fnc_attackProfile_JAV_TOP.sqf @@ -58,10 +58,11 @@ switch( (_state select 0) ) do { case STAGE_COAST: { TRACE_1("STAGE_COAST",""); TRACE_1("", ((ASLToATL _projectilePos) select 2) - (( ASLToATL _seekerTargetPos) select 2) ); - if(_distanceShooterToTarget < 1250 || _distanceToTarget < ( ((ASLToATL _projectilePos) select 2) - (( ASLToATL _seekerTargetPos) select 2) ) * 1.5) then { + if(_distanceToTarget < ( ((ASLToATL _projectilePos) select 2) - (( ASLToATL _seekerTargetPos) select 2) ) * 1.5) then { _state set[0, STAGE_TERMINAL]; + } else { + _returnTargetPos = _seekerTargetPos vectorAdd [0,0,(_projectilePos select 2)]; }; - _returnTargetPos = _seekerTargetPos vectorAdd [0,0,(_projectilePos select 2)]; }; case STAGE_TERMINAL: { TRACE_1("STAGE_TERMINAL",""); From 5923f246fdec8806f542b480fc05084c637833ca Mon Sep 17 00:00:00 2001 From: jaynus <jaynus@gmail.com> Date: Wed, 15 Apr 2015 09:25:19 -0700 Subject: [PATCH 041/109] Fixed: only exit on shooter. --- addons/javelin/functions/fnc_onFired.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/javelin/functions/fnc_onFired.sqf b/addons/javelin/functions/fnc_onFired.sqf index fde0f94365..e873e5cf3e 100644 --- a/addons/javelin/functions/fnc_onFired.sqf +++ b/addons/javelin/functions/fnc_onFired.sqf @@ -4,7 +4,7 @@ PARAMS_7(_shooter,_weapon,_muzzle,_mode,_ammo,_magazine,_projectile); // Bail on not missile -if(! (_weapon in ["launch_Titan_short_F"]) ) exitWith { false }; +if( _shooter != ACE_player || { ! (_weapon in ["launch_Titan_short_F"]) } ) exitWith { false }; _pfh_handle = uiNamespace getVariable ["ACE_RscOptics_javelin_PFH", nil]; if(!isNil "_pfh_handle") then { From 6ea38a9946a8fd2201989a4ffb568177e7b55e78 Mon Sep 17 00:00:00 2001 From: PabstMirror <elephantisaterriblemascot@gmail.com> Date: Wed, 15 Apr 2015 11:34:27 -0500 Subject: [PATCH 042/109] Only check A3 VON if no radio mods running --- .../nametags/functions/fnc_initIsSpeaking.sqf | 49 ++++++++++--------- 1 file changed, 25 insertions(+), 24 deletions(-) diff --git a/addons/nametags/functions/fnc_initIsSpeaking.sqf b/addons/nametags/functions/fnc_initIsSpeaking.sqf index 95403e0894..d8ffda756c 100644 --- a/addons/nametags/functions/fnc_initIsSpeaking.sqf +++ b/addons/nametags/functions/fnc_initIsSpeaking.sqf @@ -36,32 +36,33 @@ if (!hasInterface) exitWith {}; }; }] call EFUNC(common,addEventHandler); -//PFEH to watch the internal VON icon -//Note: class RscDisplayVoiceChat {idd = 55}; //only present when talking -[{ - _oldSetting = ACE_player getVariable [QGVAR(isSpeakingInGame), false]; - _newSetting = (!(isNull findDisplay 55)); - if (!(_oldSetting isEqualTo _newSetting)) then { - ACE_player setVariable [QGVAR(isSpeakingInGame), _newSetting, true]; - }; -} , 0.1, []] call CBA_fnc_addPerFrameHandler; +if (isClass (configFile >> "cfgPatches" >> "acre_api")) then { + diag_log text format ["[ACE_nametags] - ACRE Detected"]; + DFUNC(isSpeaking) = { + PARAMS_1(_unit); + ([_unit] call acre_api_fnc_isSpeaking) || ([ACE_player] call acre_api_fnc_isBroadcasting) + }; +} else { + if (isClass (configFile >> "cfgPatches" >> "task_force_radio")) then { + diag_log text format ["[ACE_nametags] - TFR Detected"]; + DFUNC(isSpeaking) = { + PARAMS_1(_unit); + (_unit getVariable ["tf_isSpeaking", false]) + }; + } else { + //No Radio Mod - Start a PFEH to watch the internal VON icon + //Note: class RscDisplayVoiceChat {idd = 55} - only present when talking -DFUNC(isSpeaking) = switch (true) do { -case (isClass (configFile >> "cfgPatches" >> "acre_api")): { - { - PARAMS_1(_unit); - (_unit getVariable [QGVAR(isSpeakingInGame), false]) || ([_unit] call acre_api_fnc_isSpeaking) || ([ACE_player] call acre_api_fnc_isBroadcasting) - }; - }; -case (isClass (configFile >> "cfgPatches" >> "task_force_radio")): { - { - PARAMS_1(_unit); - (_unit getVariable [QGVAR(isSpeakingInGame), false]) || (_unit getVariable ["tf_isSpeaking", false]) - }; - }; - default { - { + [{ + _oldSetting = ACE_player getVariable [QGVAR(isSpeakingInGame), false]; + _newSetting = (!(isNull findDisplay 55)); + if (!(_oldSetting isEqualTo _newSetting)) then { + ACE_player setVariable [QGVAR(isSpeakingInGame), _newSetting, true]; + }; + } , 0.1, []] call CBA_fnc_addPerFrameHandler; + + DFUNC(isSpeaking) = { PARAMS_1(_unit); (_unit getVariable [QGVAR(isSpeakingInGame), false]) }; From e84689a7718eb6b4f17a8f5c0a61184867c62961 Mon Sep 17 00:00:00 2001 From: PabstMirror <elephantisaterriblemascot@gmail.com> Date: Wed, 15 Apr 2015 11:46:01 -0500 Subject: [PATCH 043/109] #544 - Change ERROR warning to debug trace --- addons/captives/functions/fnc_setHandcuffed.sqf | 17 ++++++++--------- .../captives/functions/fnc_setSurrendered.sqf | 3 +-- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/addons/captives/functions/fnc_setHandcuffed.sqf b/addons/captives/functions/fnc_setHandcuffed.sqf index e992339186..5f134ab03b 100644 --- a/addons/captives/functions/fnc_setHandcuffed.sqf +++ b/addons/captives/functions/fnc_setHandcuffed.sqf @@ -29,11 +29,11 @@ if ((_unit getVariable [QGVAR(isHandcuffed), false]) isEqualTo _state) exitWith if (_state) then { _unit setVariable [QGVAR(isHandcuffed), true, true]; [_unit, QGVAR(Handcuffed), true] call EFUNC(common,setCaptivityStatus); - + if (_unit getVariable [QGVAR(isSurrendering), false]) then { //If surrendering, stop [_unit, false] call FUNC(setSurrendered); }; - + //Set unit cargoIndex (will be -1 if dismounted) _unit setVariable [QGVAR(CargoIndex), ((vehicle _unit) getCargoIndex _unit), true]; @@ -47,30 +47,29 @@ if (_state) then { if (_unit getVariable [QGVAR(isHandcuffed), false] && {vehicle _unit == _unit}) then { [_unit] call EFUNC(common,fixLoweredRifleAnimation); [_unit, "ACE_AmovPercMstpScapWnonDnon", 1] call EFUNC(common,doAnimation); - + //Adds an animation changed eh //If we get a change in animation then redo the animation (handles people vaulting to break the animation chain) _animChangedEHID = _unit addEventHandler ["AnimChanged", { PARAMS_2(_unit,_newAnimation); if ((_newAnimation != "ACE_AmovPercMstpSsurWnonDnon") && {!(_unit getVariable ["ACE_isUnconscious", false])}) then { - ERROR("Handcuff animation interrupted"); - // systemChat format ["debug %2: new %1", _newAnimation, time]; + TRACE_1("Handcuff animation interrupted",_newAnimation); [_unit, "ACE_AmovPercMstpScapWnonDnon", 1] call EFUNC(common,doAnimation); }; }]; _unit setVariable [QGVAR(handcuffAnimEHID), _animChangedEHID]; - + }; }, [_unit], 0.01, 0] call EFUNC(common,waitAndExecute); } else { _unit setVariable [QGVAR(isHandcuffed), false, true]; [_unit, QGVAR(Handcuffed), false] call EFUNC(common,setCaptivityStatus); - - //remove AnimChanged EH + + //remove AnimChanged EH _animChangedEHID = _unit getVariable [QGVAR(handcuffAnimEHID), -1]; _unit removeEventHandler ["AnimChanged", _animChangedEHID]; _unit setVariable [QGVAR(handcuffAnimEHID), -1]; - + if (((vehicle _unit) == _unit) && {!(_unit getVariable ["ACE_isUnconscious", false])}) then { //Break out of hands up animation loop [_unit, "ACE_AmovPercMstpScapWnonDnon_AmovPercMstpSnonWnonDnon", 2] call EFUNC(common,doAnimation); diff --git a/addons/captives/functions/fnc_setSurrendered.sqf b/addons/captives/functions/fnc_setSurrendered.sqf index 30f9105511..d774e7f6e0 100644 --- a/addons/captives/functions/fnc_setSurrendered.sqf +++ b/addons/captives/functions/fnc_setSurrendered.sqf @@ -51,8 +51,7 @@ if (_state) then { _animChangedEHID = _unit addEventHandler ["AnimChanged", { PARAMS_2(_unit,_newAnimation); if ((_newAnimation != "ACE_AmovPercMstpSsurWnonDnon") && {!(_unit getVariable ["ACE_isUnconscious", false])}) then { - ERROR("Surrender animation interrupted"); - // systemChat format ["debug %2: new %1", _newAnimation, time]; + TRACE_1("Surrender animation interrupted",_newAnimation); [_unit, "ACE_AmovPercMstpSsurWnonDnon", 1] call EFUNC(common,doAnimation); }; }]; From 252fb671190fc8412983502d8f387109add299a9 Mon Sep 17 00:00:00 2001 From: ruPaladin <happyworm24@rambler.ru> Date: Wed, 15 Apr 2015 19:50:32 +0300 Subject: [PATCH 044/109] Update stringtable.xml --- addons/explosives/stringtable.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/addons/explosives/stringtable.xml b/addons/explosives/stringtable.xml index 05410e621e..c34b6d3cc6 100644 --- a/addons/explosives/stringtable.xml +++ b/addons/explosives/stringtable.xml @@ -497,6 +497,7 @@ <Polish>Podnieś</Polish> <French>Ramasser</French> <Hungarian>Felszedés</Hungarian> + <Russian>Поднять</Russian> </Key> </Package> </Project> From d8eb564c654e56335e04f4e520163eba14010964 Mon Sep 17 00:00:00 2001 From: ruPaladin <happyworm24@rambler.ru> Date: Wed, 15 Apr 2015 19:52:29 +0300 Subject: [PATCH 045/109] Update stringtable.xml --- addons/overheating/stringtable.xml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/addons/overheating/stringtable.xml b/addons/overheating/stringtable.xml index 3aaeebdb00..4bb91688fa 100644 --- a/addons/overheating/stringtable.xml +++ b/addons/overheating/stringtable.xml @@ -15,7 +15,7 @@ <English>Display a notification whenever your weapon gets jammed</English> <German>Zeige einen Hinweis, wenn die Waffe eine Ladehemmung hat.</German> <Spanish>Mostrar notificación cada vez que el arma se encasquille</Spanish> - <Russian>Демонстровать уведомление, каждый раз, когда клинит Ваше оружие.</Russian> + <Russian>Показывать уведомление каждый раз, когда клинит Ваше оружие.</Russian> <Czech>Zobrazí upozornění při zaseknutí zbraně</Czech> <Polish>Wyświetl powiadomienie za każdym razem, kiedy Twoja broń ulegnie zacięciu</Polish> <French>Affiche une notification lors d'un enrayement</French> @@ -100,7 +100,7 @@ <Polish>Wymienianie lufy...</Polish> <Czech>Vyměňuji hlaveň ...</Czech> <French>Changement du canon...</French> - <Russian>Смена ствола...</Russian> + <Russian>Смена ствола ...</Russian> <Hungarian>Cső kicserélése folyamatban...</Hungarian> <Portuguese>Substituindo cano...</Portuguese> <Italian>Sto sostituendo la canna ...</Italian> @@ -136,6 +136,7 @@ <Czech>Zkontrolovat teplotu zbraně</Czech> <French>Vérifier la température</French> <Hungarian>Fegyverhő ellenőrzése</Hungarian> + <Russian>Проверить температуру оружия</Russian> </Key> <Key ID="STR_ACE_Overheating_CheckingTemperature"> <English>Checking temperature ...</English> From 7051152d934770e858d505c6db534ef1510dfa5e Mon Sep 17 00:00:00 2001 From: ruPaladin <happyworm24@rambler.ru> Date: Wed, 15 Apr 2015 19:53:42 +0300 Subject: [PATCH 046/109] Update stringtable.xml --- addons/disarming/stringtable.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/addons/disarming/stringtable.xml b/addons/disarming/stringtable.xml index 508c9f1d3d..ee121d0480 100644 --- a/addons/disarming/stringtable.xml +++ b/addons/disarming/stringtable.xml @@ -7,6 +7,7 @@ <Polish>Otwórz ekwipunek</Polish> <Czech>Otevřít inventář</Czech> <Spanish>Abrir inventario</Spanish> + <Russian>Открыть инвентарь</Russian> </Key> </Package> </Project> From 64d6bbaf2607016b80d027e10a8bb8b435ba5ec6 Mon Sep 17 00:00:00 2001 From: ulteq <ulteq@web.de> Date: Wed, 15 Apr 2015 18:55:20 +0200 Subject: [PATCH 047/109] Fixed an incorrect BC in an ATragMX gun profile --- addons/atragmx/XEH_postInit.sqf | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/addons/atragmx/XEH_postInit.sqf b/addons/atragmx/XEH_postInit.sqf index 31c526fab7..61bbf8b845 100644 --- a/addons/atragmx/XEH_postInit.sqf +++ b/addons/atragmx/XEH_postInit.sqf @@ -6,16 +6,16 @@ if (count (profileNamespace getVariable ["ACE_ATragMX_gunList", []]) > 0) then { GVAR(gunList) = profileNamespace getVariable "ACE_ATragMX_gunList"; } else { // Profile Name, Muzzle Velocity, Zero Range, Scope Base Angle, AirFriction, Bore Height, Scope Unit, Elevation Scope Step, Windage Scope Step, Maximum Elevation, Dialed Elevation, Dialed Windage, Mass, Ammo Class Name, Magazine Class Name, BC, Drag Model, Atmosphere Model - GVAR(gunList) = [["12.7x108mm" , 820, 100, 0.0659, -0.0008600, 3.81, 0, 0.338, 0.338, 120, 0, 0, 48.28, "B_127x108_Ball" , "5Rnd_127x108_Mag" , 0.700, 1, "ASM" ], - ["12.7x99mm" , 880, 100, 0.0607, -0.0008600, 3.81, 0, 0.338, 0.338, 120, 0, 0, 41.92, "B_127x99_Ball" , "5Rnd_mas_127x99_Stanag" , 0.670, 1, "ASM" ], - ["12.7x54mm" , 290, 100, 0.3913, -0.0014000, 3.81, 0, 0.338, 0.338, 120, 0, 0, 61.56, "B_127x54_Ball" , "10Rnd_127x54_Mag" , 1.050, 1, "ASM" ], - ["10.4x77mm" , 910, 100, 0.0572, -0.0004800, 3.81, 0, 0.338, 0.338, 120, 0, 0, 27.15, "B_408_Ball" , "7Rnd_408_Mag" , 0.970, 1, "ASM" ], - ["9.3×64mm" , 870, 100, 0.0632, -0.0007500, 3.81, 0, 0.338, 0.338, 120, 0, 0, 16.20, "B_93x64_Ball" , "10Rnd_93x64_DMR_05_Mag" , 0.368, 1, "ASM" ], - ["8.6×70mm" , 915, 100, 0.0572, -0.0006100, 3.81, 0, 0.338, 0.338, 120, 0, 0, 16.20, "B_338_Ball" , "10Rnd_338_Mag" , 0.322, 7, "ICAO"], - ["7.62x51mm" , 850, 100, 0.0639, -0.0010000, 3.81, 0, 0.338, 0.338, 120, 0, 0, 9.460, "B_762x51_Ball" , "20Rnd_762x51_Mag" , 0.393, 1, "ICAO"], - ["6.5x39mm" , 800, 100, 0.0689, -0.0009000, 3.81, 0, 0.338, 0.338, 120, 0, 0, 7.776, "B_65x39_Caseless", "30Rnd_65x39_caseless_mag", 0.263, 1, "ICAO"], - ["5.56x45mm" , 920, 100, 0.0584, -0.0012650, 3.81, 0, 0.338, 0.338, 120, 0, 0, 4.000, "B_556x45_Ball" , "30Rnd_556x45_Stanag" , 0.304, 1, "ASM" ], - ["5.56x45mm Mk262" , 850, 100, 0.0643, -0.0011250, 3.81, 0, 0.338, 0.338, 120, 0, 0, 4.990, "RH_556x45_Mk262" , "RH_30Rnd_556x45_Mk262" , 0.361, 1, "ASM" ]]; + GVAR(gunList) = [["12.7x108mm" , 820, 100, 0.0659, -0.0008600, 3.81, 0, 0.338, 0.338, 120, 0, 0, 48.28, "B_127x108_Ball" , "5Rnd_127x108_Mag" , 0.630, 1, "ASM" ], + ["12.7x99mm" , 880, 100, 0.0607, -0.0008600, 3.81, 0, 0.338, 0.338, 120, 0, 0, 41.92, "B_127x99_Ball" , "5Rnd_mas_127x99_Stanag" , 0.670, 1, "ASM" ], + ["12.7x54mm" , 290, 100, 0.3913, -0.0014000, 3.81, 0, 0.338, 0.338, 120, 0, 0, 61.56, "B_127x54_Ball" , "10Rnd_127x54_Mag" , 1.050, 1, "ASM" ], + ["10.4x77mm" , 910, 100, 0.0572, -0.0004800, 3.81, 0, 0.338, 0.338, 120, 0, 0, 27.15, "B_408_Ball" , "7Rnd_408_Mag" , 0.970, 1, "ASM" ], + ["9.3×64mm" , 870, 100, 0.0632, -0.0007500, 3.81, 0, 0.338, 0.338, 120, 0, 0, 16.20, "B_93x64_Ball" , "10Rnd_93x64_DMR_05_Mag" , 0.368, 1, "ASM" ], + ["8.6×70mm" , 915, 100, 0.0572, -0.0006100, 3.81, 0, 0.338, 0.338, 120, 0, 0, 16.20, "B_338_Ball" , "10Rnd_338_Mag" , 0.322, 7, "ICAO"], + ["7.62x51mm" , 850, 100, 0.0639, -0.0010000, 3.81, 0, 0.338, 0.338, 120, 0, 0, 9.460, "B_762x51_Ball" , "20Rnd_762x51_Mag" , 0.393, 1, "ICAO"], + ["6.5x39mm" , 800, 100, 0.0689, -0.0009000, 3.81, 0, 0.338, 0.338, 120, 0, 0, 7.776, "B_65x39_Caseless" , "30Rnd_65x39_caseless_mag" , 0.263, 1, "ICAO"], + ["5.56x45mm" , 920, 100, 0.0584, -0.0012650, 3.81, 0, 0.338, 0.338, 120, 0, 0, 4.000, "B_556x45_Ball" , "30Rnd_556x45_Stanag" , 0.304, 1, "ASM" ], + ["5.56x45mm Mk262" , 850, 100, 0.0643, -0.0011250, 3.81, 0, 0.338, 0.338, 120, 0, 0, 4.990, "ACE_556x45_Ball_Mk262" , "ACE_30Rnd_556x45_Stanag_Mk262_mag", 0.361, 1, "ASM" ]]; profileNamespace setVariable ["ACE_ATragMX_gunList", GVAR(gunList)]; }; From ea2281616ea1675c8e632877dc098f8c5dd8eb6a Mon Sep 17 00:00:00 2001 From: jaynus <jaynus@gmail.com> Date: Wed, 15 Apr 2015 09:55:40 -0700 Subject: [PATCH 048/109] Enable all variants of Titan. Can now vanilla-lock in cadet mode. --- addons/javelin/CfgWeapons.hpp | 3 +++ addons/javelin/functions/fnc_onFired.sqf | 4 +++- addons/javelin/functions/fnc_onOpticDraw.sqf | 4 +--- addons/missileguidance/CfgAmmo.hpp | 4 ++++ addons/missileguidance/functions/fnc_onFired.sqf | 5 ++--- 5 files changed, 13 insertions(+), 7 deletions(-) diff --git a/addons/javelin/CfgWeapons.hpp b/addons/javelin/CfgWeapons.hpp index cef967e32e..4e7091c653 100644 --- a/addons/javelin/CfgWeapons.hpp +++ b/addons/javelin/CfgWeapons.hpp @@ -8,6 +8,9 @@ class CfgWeapons { weaponInfoType = "ACE_RscOptics_javelin"; modelOptics = PATHTOF(data\reticle_titan.p3d); + canLock = 1; + + lockingTargetSound[] = {"",0,1}; lockedTargetSound[] = {"",0,1}; }; diff --git a/addons/javelin/functions/fnc_onFired.sqf b/addons/javelin/functions/fnc_onFired.sqf index e873e5cf3e..04a023c9d8 100644 --- a/addons/javelin/functions/fnc_onFired.sqf +++ b/addons/javelin/functions/fnc_onFired.sqf @@ -4,7 +4,9 @@ PARAMS_7(_shooter,_weapon,_muzzle,_mode,_ammo,_magazine,_projectile); // Bail on not missile -if( _shooter != ACE_player || { ! (_weapon in ["launch_Titan_short_F"]) } ) exitWith { false }; +if( _shooter != ACE_player) exitWith { false }; + +if( ! ([ (configFile >> "CfgWeapons" >> (currentWeapon (vehicle ACE_player)) ), "launch_Titan_base"] call EFUNC(common,inheritsFrom)) ) exitWith { }; _pfh_handle = uiNamespace getVariable ["ACE_RscOptics_javelin_PFH", nil]; if(!isNil "_pfh_handle") then { diff --git a/addons/javelin/functions/fnc_onOpticDraw.sqf b/addons/javelin/functions/fnc_onOpticDraw.sqf index 3a64a36802..358b68ebc1 100644 --- a/addons/javelin/functions/fnc_onOpticDraw.sqf +++ b/addons/javelin/functions/fnc_onOpticDraw.sqf @@ -30,9 +30,7 @@ _soundTime = _args select 4; _randomLockInterval = _args select 5; _fireDisabledEH = _args select 6; -if( ! ([ (configFile >> "CfgWeapons" >> (currentWeapon (vehicle ACE_player)) ), "launch_Titan_base"] call EFUNC(common,inheritsFrom)) - || { (vehicle ACE_player) != ACE_player } - ) exitWith { +if( ! ([ (configFile >> "CfgWeapons" >> (currentWeapon (vehicle ACE_player)) ), "launch_Titan_base"] call EFUNC(common,inheritsFrom)) ) exitWith { __JavelinIGUITargeting ctrlShow false; __JavelinIGUITargetingGate ctrlShow false; __JavelinIGUITargetingLines ctrlShow false; diff --git a/addons/missileguidance/CfgAmmo.hpp b/addons/missileguidance/CfgAmmo.hpp index a05ecee9bc..3b74c87065 100644 --- a/addons/missileguidance/CfgAmmo.hpp +++ b/addons/missileguidance/CfgAmmo.hpp @@ -50,6 +50,8 @@ class CfgAmmo { //maxDeflection = 0.5; //incDeflection = 0.005; + canVanillaLock = 0; // Can this default vanilla lock? Only applicable to non-cadet mode + // Guidance type for munitions defaultSeekerType = "SALH"; seekerTypes[] = { "SALH", "LIDAR", "SARH", "Optic", "Thermal", "GPS", "SACLOS", "MCLOS" }; @@ -120,6 +122,8 @@ class CfgAmmo { //maxDeflection = 0.5; //incDeflection = 0.005; + canVanillaLock = 0; + // Guidance type for munitions defaultSeekerType = "Optic"; seekerTypes[] = { "Optic" }; diff --git a/addons/missileguidance/functions/fnc_onFired.sqf b/addons/missileguidance/functions/fnc_onFired.sqf index 186a622417..ad713d8884 100644 --- a/addons/missileguidance/functions/fnc_onFired.sqf +++ b/addons/missileguidance/functions/fnc_onFired.sqf @@ -41,15 +41,14 @@ if ( isNil "_lockMode" || { ! ( _lockMode in (getArray (_config >> "seekerLockMo // If we didn't get a target, try to fall back on tab locking if(isNil "_target") then { - if(!isPlayer _shooter) then { // This was an AI shot, lets still guide it on the AI target _target = _shooter getVariable[QGVAR(vanilla_target), nil]; TRACE_1("Detected AI Shooter!", _target); } else { _canUseLock = getNumber (_config >> "canVanillaLock"); - if(_canUseLock > 0) then { - // @TODO: Get vanilla target + // @TODO: Get vanilla target + if(_canUseLock > 0 || cadetMode) then { _vanillaTarget = cursorTarget; TRACE_1("Using Vanilla Locking", _vanillaTarget); From 3773238e25ef2ac717e0e1b9e1db3c95c3f5be1d Mon Sep 17 00:00:00 2001 From: ruPaladin <happyworm24@rambler.ru> Date: Wed, 15 Apr 2015 19:56:34 +0300 Subject: [PATCH 049/109] Update stringtable.xml --- addons/atragmx/stringtable.xml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/addons/atragmx/stringtable.xml b/addons/atragmx/stringtable.xml index 6b6a921c2a..1468632a9b 100644 --- a/addons/atragmx/stringtable.xml +++ b/addons/atragmx/stringtable.xml @@ -17,14 +17,17 @@ <Key ID="STR_ACE_ATragMX_OpenATragMXDialog"> <English>Open ATragMX</English> <Polish>Otwórz ATragMX</Polish> + <Russian>Открыть ATragMX</Russian> </Key> <Key ID="STR_ACE_ATragMX_Description"> <English>Rugged PDA with ATragMX</English> <Polish>Przenośny PDA z kalkulatorem balistycznym ATragMX</Polish> + <Russian>Защищенный КПК с ATragMX</Russian> </Key> <Key ID="STR_ACE_ATragMX_ATragMXDialogKey"> <English>Open ATragMX</English> <Polish>Otwórz ATragMX</Polish> + <Russian>Открыть ATragMX</Russian> </Key> </Package> -</Project> \ No newline at end of file +</Project> From e0c34f22bf59230174df93142f3f0b102a9ab4bb Mon Sep 17 00:00:00 2001 From: ulteq <ulteq@web.de> Date: Wed, 15 Apr 2015 18:59:11 +0200 Subject: [PATCH 050/109] Added ACE_338_Ball_API526 and updated some airFriction values --- addons/ballistics/CfgAmmo.hpp | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/addons/ballistics/CfgAmmo.hpp b/addons/ballistics/CfgAmmo.hpp index 87f3a99df1..8e75e6ce03 100644 --- a/addons/ballistics/CfgAmmo.hpp +++ b/addons/ballistics/CfgAmmo.hpp @@ -502,8 +502,6 @@ class CfgAmmo { class ACE_338_Ball : B_338_Ball { airFriction=-0.000526; caliber=1.55; - deflecting=12; - hit=20; typicalSpeed=826; ACE_caliber=0.338; ACE_bulletLength=1.70; @@ -516,6 +514,21 @@ class CfgAmmo { ACE_muzzleVelocities[]={800, 820, 826, 830}; ACE_barrelLengths[]={20, 24, 26.5, 28}; }; + class ACE_338_Ball_API526 : B_338_Ball { + airFriction=-0.000526; + caliber=2.4; + typicalSpeed=826; + ACE_caliber=0.338; + ACE_bulletLength=1.535; + ACE_bulletMass=253; + 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.290}; + ACE_velocityBoundaries[]={}; + ACE_standardAtmosphere="ICAO"; + ACE_dragModel=7; + ACE_muzzleVelocities[]={880, 915, 925}; + ACE_barrelLengths[]={20, 26, 28}; + }; class B_127x54_Ball : BulletBase { airFriction=-0.00014; typicalSpeed=300; @@ -545,6 +558,8 @@ class CfgAmmo { ACE_barrelLengths[]={29}; }; class ACE_127x99_Ball_AMAX : B_127x99_Ball { + airFriction=-0.000374; + typicalSpeed=860; ACE_caliber=0.510; ACE_bulletLength=2.540; ACE_bulletMass=750; @@ -557,6 +572,7 @@ class CfgAmmo { ACE_barrelLengths[]={29}; }; class B_127x108_Ball : BulletBase { + airFriction=-0.00064; typicalSpeed=820; ACE_caliber=0.511; ACE_bulletLength=2.520; From f8061922f7d4857e52c93bacb6c1b51de57aa002 Mon Sep 17 00:00:00 2001 From: ulteq <ulteq@web.de> Date: Wed, 15 Apr 2015 18:59:41 +0200 Subject: [PATCH 051/109] Added ACE_10Rnd_338_API526_Mag, ACE_5Rnd_127x99_Mag, ACE_5Rnd_127x99_AMAX_Mag --- addons/ballistics/CfgMagazines.hpp | 27 ++++++++++++++++++ addons/ballistics/CfgVehicles.hpp | 16 +++++++++++ addons/ballistics/stringtable.xml | 46 ++++++++++++++++++------------ 3 files changed, 71 insertions(+), 18 deletions(-) diff --git a/addons/ballistics/CfgMagazines.hpp b/addons/ballistics/CfgMagazines.hpp index de3f80fd83..7a97b3609e 100644 --- a/addons/ballistics/CfgMagazines.hpp +++ b/addons/ballistics/CfgMagazines.hpp @@ -171,6 +171,33 @@ class CfgMagazines { descriptionShort = "$STR_ACE_10Rnd_338_300gr_HPBT_Mag_Description"; initSpeed = 800; }; + class ACE_10Rnd_338_API526_Mag: 10Rnd_338_Mag { + author = "$STR_ACE_Common_ACETeam"; + ammo = "ACE_338_Ball_API526"; + displayName = "$STR_ACE_10Rnd_338_API526_Mag_Name"; + displayNameShort = "$STR_ACE_10Rnd_338_API526_Mag_NameShort"; + descriptionShort = "$STR_ACE_10Rnd_338_API526_Mag_Description"; + initSpeed = 880; + }; + + class 5Rnd_127x108_Mag; + class ACE_5Rnd_127x99_Mag: 5Rnd_127x108_Mag { + author = "$STR_ACE_Common_ACETeam"; + ammo = "B_127x99_Ball"; + displayName = "$STR_ACE_5Rnd_127x99_Mag_Name"; + displayNameShort = "$STR_ACE_5Rnd_127x99_Mag_NameShort"; + descriptionShort = "$STR_ACE_5Rnd_127x99_Mag_Description"; + initSpeed = 853; + }; + class ACE_5Rnd_127x99_AMAX_Mag: 5Rnd_127x108_Mag { + author = "$STR_ACE_Common_ACETeam"; + ammo = "ACE_127x99_Ball_AMAX"; + displayName = "$STR_ACE_5Rnd_127x99_AMAX_Mag_Name"; + displayNameShort = "$STR_ACE_5Rnd_127x99_AMAX_Mag_NameShort"; + descriptionShort = "$STR_ACE_5Rnd_127x99_AMAX_Mag_Description"; + initSpeed = 860; + }; + class 30Rnd_9x21_Mag: CA_Magazine { initSpeed = 450; diff --git a/addons/ballistics/CfgVehicles.hpp b/addons/ballistics/CfgVehicles.hpp index 7c32774f9f..81252df0f2 100644 --- a/addons/ballistics/CfgVehicles.hpp +++ b/addons/ballistics/CfgVehicles.hpp @@ -23,6 +23,10 @@ class CfgVehicles { MACRO_ADDMAGAZINE(ACE_100Rnd_65x39_caseless_mag_Tracer_Dim,4); MACRO_ADDMAGAZINE(ACE_200Rnd_65x39_cased_Box_Tracer_Dim,4); MACRO_ADDMAGAZINE(ACE_30Rnd_556x45_Stanag_Tracer_Dim,1); + MACRO_ADDMAGAZINE(ACE_10Rnd_338_300gr_HPBT_Mag,4); + MACRO_ADDMAGAZINE(ACE_10Rnd_338_API526_Mag,4); + MACRO_ADDMAGAZINE(ACE_5Rnd_127x99_Mag,4); + MACRO_ADDMAGAZINE(ACE_5Rnd_127x99_AMAX_Mag,4); }; }; @@ -32,6 +36,10 @@ class CfgVehicles { MACRO_ADDMAGAZINE(ACE_10Rnd_762x51_M118LR_Mag,4); MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_M118LR_Mag,4); MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mag_Tracer_Dim,4); + MACRO_ADDMAGAZINE(ACE_10Rnd_338_300gr_HPBT_Mag,4); + MACRO_ADDMAGAZINE(ACE_10Rnd_338_API526_Mag,4); + MACRO_ADDMAGAZINE(ACE_5Rnd_127x99_Mag,4); + MACRO_ADDMAGAZINE(ACE_5Rnd_127x99_AMAX_Mag,4); }; }; @@ -41,6 +49,10 @@ class CfgVehicles { MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_M118LR_Mag,6); MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mag_Tracer_Dim,4); MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mag_SD,3); + MACRO_ADDMAGAZINE(ACE_10Rnd_338_300gr_HPBT_Mag,4); + MACRO_ADDMAGAZINE(ACE_10Rnd_338_API526_Mag,4); + MACRO_ADDMAGAZINE(ACE_5Rnd_127x99_Mag,4); + MACRO_ADDMAGAZINE(ACE_5Rnd_127x99_AMAX_Mag,4); }; }; @@ -159,6 +171,10 @@ class CfgVehicles { MACRO_ADDMAGAZINE(ACE_100Rnd_65x39_caseless_mag_Tracer_Dim,4); MACRO_ADDMAGAZINE(ACE_200Rnd_65x39_cased_Box_Tracer_Dim,4); MACRO_ADDMAGAZINE(ACE_30Rnd_65x47_Scenar_mag,4); + MACRO_ADDMAGAZINE(ACE_10Rnd_338_300gr_HPBT_Mag,4); + MACRO_ADDMAGAZINE(ACE_10Rnd_338_API526_Mag,4); + MACRO_ADDMAGAZINE(ACE_5Rnd_127x99_Mag,4); + MACRO_ADDMAGAZINE(ACE_5Rnd_127x99_AMAX_Mag,4);I a }; }; }; diff --git a/addons/ballistics/stringtable.xml b/addons/ballistics/stringtable.xml index 41070fa3dd..0b39dcb9d3 100644 --- a/addons/ballistics/stringtable.xml +++ b/addons/ballistics/stringtable.xml @@ -438,23 +438,6 @@ <Italian>Calibro: 7.62x51 mm AP<br />Munizioni: 20<br />In uso su: Mk18 ABR</Italian> <Russian>Калибр: 7.62x51 мм дозвуковые<br />Патронов: 20<br />Применимы в: Mk18 ABR</Russian> </Key> - <!-- .338 Lapua Magnum --> - <Key ID="STR_ACE_10Rnd_338_Mag_APName"> - <English>.338 LM 10Rnd AP Mag</English> - <German>.338 LM 10-Schuss-Magazin Hartkern</German> - <Polish>Magazynek .338 LM 10rd AP</Polish> - </Key> - <Key ID="STR_ACE_10Rnd_338_Mag_APNameShort"> - <English>.338 LM AP</English> - <German>.338 LM AP</German> - <Polish>.338 LM AP</Polish> - <Czech>.338 LM AP</Czech> - </Key> - <Key ID="STR_ACE_10Rnd_338_Mag_APDescription"> - <English>Caliber: .338 Lapua Magnum AP<br />Rounds: 10<br />Used in: MAR-10</English> - <German>Kaliber: .338 Lapua Magnum Hartkern<br />Schuss: 10<br />Verwendet für: MAR-10</German> - <Polish>Kaliber: .338 Lapua Magnum AP<br />Pociski: 10<br />Używany w: MAR-10</Polish> - </Key> <!-- .338 Norma Magnum --> <Key ID="STR_ACE_130Rnd_338_Mag_TracerName"> <English>.338 NM 130Rnd Tracer Belt</English> @@ -756,7 +739,7 @@ <English>Caliber: 6.5x47mm (HPBT Scenar)<br />Rounds: 30</English> </Key> <Key ID="STR_ACE_10Rnd_338_300gr_HPBT_Mag_Name"> - <English>8.6x70mm 10Rnd Mag (300gr Sierra MatchKing HPBT)</English> + <English>.338 10Rnd Mag (300gr Sierra MatchKing HPBT)</English> </Key> <Key ID="STR_ACE_10Rnd_338_300gr_HPBT_Mag_NameShort"> <English>.338 (HPBT)</English> @@ -764,5 +747,32 @@ <Key ID="STR_ACE_10Rnd_338_300gr_HPBT_Mag_Description"> <English>Caliber: 8.6x70mm (300gr Sierra MatchKing HPBT)<br />Rounds: 10</English> </Key> + <Key ID="STR_ACE_10Rnd_338_API526_Mag_Name"> + <English>.338 10Rnd Mag (API526)</English> + </Key> + <Key ID="STR_ACE_10Rnd_338_API526_Mag_NameShort"> + <English>.338 AP</English> + </Key> + <Key ID="STR_ACE_10Rnd_338_API526_Mag_Description"> + <English>Caliber: 8.6x70mm (API526)<br />Rounds: 10</English> + </Key> + <Key ID="STR_ACE_5Rnd_127x99_Mag_Name"> + <English>12.7x99mm 5Rnd Mag</English> + </Key> + <Key ID="STR_ACE_5Rnd_127x99_Mag_NameShort"> + <English>12.7mm</English> + </Key> + <Key ID="STR_ACE_5Rnd_127x99_Mag_Description"> + <English>Caliber: 12.7x99mm<br />Rounds: 5</English> + </Key> + <Key ID="STR_ACE_5Rnd_127x99_AMAX_Mag_Name"> + <English>12.7x99mm 5Rnd Mag (AMAX)</English> + </Key> + <Key ID="STR_ACE_5Rnd_127x99_AMAX_Mag_NameShort"> + <English>12.7mm</English> + </Key> + <Key ID="STR_ACE_5Rnd_127x99_AMAX_Mag_Description"> + <English>Caliber: 12.7x99mm (AMAX)<br />Rounds: 5</English> + </Key> </Package> </Project> From 92031cc3542a4809b0ad14a8f4142bb4941ce9ec Mon Sep 17 00:00:00 2001 From: ruPaladin <happyworm24@rambler.ru> Date: Wed, 15 Apr 2015 19:59:45 +0300 Subject: [PATCH 052/109] Update stringtable.xml --- addons/laserpointer/stringtable.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/addons/laserpointer/stringtable.xml b/addons/laserpointer/stringtable.xml index 5d7aa03c67..eb328e5997 100644 --- a/addons/laserpointer/stringtable.xml +++ b/addons/laserpointer/stringtable.xml @@ -47,16 +47,19 @@ <English>Laser</English> <German>Laser</German> <Polish>Laser</Polish> + <Russian>Лазер</Russian> </Key> <Key ID="STR_ACE_Laserpointer_IRLaser"> <English>IR Laser</English> <German>IR-Laser</German> <Polish>Laser IR</Polish> + <Russian>ИК-лазер</Russian> </Key> <Key ID="STR_ACE_Laserpointer_switchLaserLight"> <English>Switch Laser / IR Laser</English> <German>Umschalten Laser / IR-Laser</German> <Polish>Przełącz Laser / Laser IR</Polish> + <Russian>Изменить режим Лазер / ИК-лазер</Russian> </Key> </Package> </Project> From 0c4734637b1679b2b591cbf3f77167aca7408944 Mon Sep 17 00:00:00 2001 From: ulteq <ulteq@web.de> Date: Wed, 15 Apr 2015 19:00:14 +0200 Subject: [PATCH 053/109] Fixed the GM6 barrel length and updated the magazines array --- addons/ballistics/CfgWeapons.hpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/addons/ballistics/CfgWeapons.hpp b/addons/ballistics/CfgWeapons.hpp index d5b6ad448f..add91d0fa2 100644 --- a/addons/ballistics/CfgWeapons.hpp +++ b/addons/ballistics/CfgWeapons.hpp @@ -522,14 +522,21 @@ class CfgWeapons { ACE_barrelLength=29; }; class srifle_GM6_F: GM6_base_F { + magazines[] = { + "5Rnd_127x108_Mag", + "5Rnd_127x108_APDS_Mag", + "ACE_5Rnd_127x99_Mag", + "ACE_5Rnd_127x99_AMAX_Mag" + }; initSpeed = -1.0; ACE_barrelTwist=15; - ACE_barrelLength=43.3; + ACE_barrelLength=36.6; }; class srifle_DMR_02_F: DMR_02_base_F { magazines[] = { "10Rnd_338_Mag", "ACE_10Rnd_338_300gr_HPBT_Mag", + "ACE_10Rnd_338_API526_Mag", "ACE_20Rnd_762x67_Mk248_Mod_0_Mag", "ACE_20Rnd_762x67_Mk248_Mod_1_Mag", "ACE_20Rnd_762x67_Berger_Hybrid_OTM_Mag" From fe72eef3da65a7a9c368b438f3ae37a4b51f2535 Mon Sep 17 00:00:00 2001 From: ruPaladin <happyworm24@rambler.ru> Date: Wed, 15 Apr 2015 20:02:41 +0300 Subject: [PATCH 054/109] Update stringtable.xml --- addons/advanced_ballistics/stringtable.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/addons/advanced_ballistics/stringtable.xml b/addons/advanced_ballistics/stringtable.xml index f19aa1e672..b0a6e97f34 100644 --- a/addons/advanced_ballistics/stringtable.xml +++ b/addons/advanced_ballistics/stringtable.xml @@ -6,11 +6,13 @@ <English>Show Wind Info</English> <Polish>Pokaż inf. o wietrze</Polish> <Italian>Mostra indicazioni del vento</Italian> + <Russian>Показать информацию о ветре</Russian> </Key> <Key ID="STR_ACE_AdvancedBallistics_ProtractorKey"> <English>Show Protractor</English> <Polish>Pokaż kątomierz</Polish> <Italian>Mostra il rapportatore</Italian> + <Russian>Показать транспортир</Russian> </Key> </Package> </Project> From 396bd3954e2b70797aa7eacc510c20cd1766413a Mon Sep 17 00:00:00 2001 From: ulteq <ulteq@web.de> Date: Wed, 15 Apr 2015 19:04:41 +0200 Subject: [PATCH 055/109] Fixed a typo --- addons/ballistics/CfgVehicles.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/ballistics/CfgVehicles.hpp b/addons/ballistics/CfgVehicles.hpp index 81252df0f2..9dd4a7083d 100644 --- a/addons/ballistics/CfgVehicles.hpp +++ b/addons/ballistics/CfgVehicles.hpp @@ -174,7 +174,7 @@ class CfgVehicles { MACRO_ADDMAGAZINE(ACE_10Rnd_338_300gr_HPBT_Mag,4); MACRO_ADDMAGAZINE(ACE_10Rnd_338_API526_Mag,4); MACRO_ADDMAGAZINE(ACE_5Rnd_127x99_Mag,4); - MACRO_ADDMAGAZINE(ACE_5Rnd_127x99_AMAX_Mag,4);I a + MACRO_ADDMAGAZINE(ACE_5Rnd_127x99_AMAX_Mag,4); }; }; }; From 26d53d255f2267e434c0a5fd316de3c17ad6d0ee Mon Sep 17 00:00:00 2001 From: ruPaladin <happyworm24@rambler.ru> Date: Wed, 15 Apr 2015 20:08:39 +0300 Subject: [PATCH 056/109] Update stringtable.xml --- addons/scopes/stringtable.xml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/addons/scopes/stringtable.xml b/addons/scopes/stringtable.xml index 9e070efa73..16d6b60c4c 100644 --- a/addons/scopes/stringtable.xml +++ b/addons/scopes/stringtable.xml @@ -4,38 +4,47 @@ <Key ID="STR_ACE_Scopes_AdjustUpMinor"> <English>Minor adjustment up</English> <Polish>Zerowanie powoli w górę</Polish> + <Russian>Малая корректировка ВВЕРХ</Russian> </Key> <Key ID="STR_ACE_Scopes_AdjustDownMinor"> <English>Minor adjustment down</English> <Polish>Zerowanie powoli w dół</Polish> + <Russian>Малая корректировка ВНИЗ</Russian> </Key> <Key ID="STR_ACE_Scopes_AdjustRightMinor"> <English>Minor adjustment right</English> <Polish>Zerowanie powoli w prawo</Polish> + <Russian>Малая корректировка ВПРАВО</Russian> </Key> <Key ID="STR_ACE_Scopes_AdjustLeftMinor"> <English>Minor adjustment left</English> <Polish>Zerowanie powoli w lewo</Polish> + <Russian>Малая корректировка ВЛЕВО</Russian> </Key> <Key ID="STR_ACE_Scopes_AdjustUpMajor"> <English>Major adjustment up</English> <Polish>Zerowanie w górę</Polish> + <Russian>Большая корректировка ВВЕРХ</Russian> </Key> <Key ID="STR_ACE_Scopes_AdjustDownMajor"> <English>Major adjustment down</English> <Polish>Zerowanie w dół</Polish> + <Russian>Большая корректировка ВНИЗ</Russian> </Key> <Key ID="STR_ACE_Scopes_AdjustRightMajor"> <English>Major adjustment right</English> <Polish>Zerowanie w prawo</Polish> + <Russian>Большая корректировка ВПРАВО</Russian> </Key> <Key ID="STR_ACE_Scopes_AdjustLeftMajor"> <English>Major adjustment left</English> <Polish>Zerowanie w lewo</Polish> + <Russian>Большая корректировка ВЛЕВО</Russian> </Key> <Key ID="STR_ACE_Scopes_AdjustZero"> <English>Set zero adjustment</English> <Polish>Zresetuj wyzerowanie</Polish> + <Russian>Сбросить корректировку</Russian> </Key> </Package> </Project> From 25b7f779f14d0ae0ffd885b340182337225b9bc8 Mon Sep 17 00:00:00 2001 From: jaynus <jaynus@gmail.com> Date: Wed, 15 Apr 2015 10:11:13 -0700 Subject: [PATCH 057/109] Difficulty magic. --- addons/javelin/functions/fnc_onOpticDraw.sqf | 4 ++-- addons/javelin/functions/fnc_onOpticUnload.sqf | 2 +- addons/missileguidance/functions/fnc_onFired.sqf | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/addons/javelin/functions/fnc_onOpticDraw.sqf b/addons/javelin/functions/fnc_onOpticDraw.sqf index 358b68ebc1..13669b9d2e 100644 --- a/addons/javelin/functions/fnc_onOpticDraw.sqf +++ b/addons/javelin/functions/fnc_onOpticDraw.sqf @@ -110,7 +110,7 @@ if((call CBA_fnc_getFoV) select 1 > 9) then { FUNC(disableFire) = { _firedEH = _this select 0; - if(_firedEH < 0) then { + if(_firedEH < 0 && difficulty > 0) then { _firedEH = [ACE_player, "DefaultAction", {true}, { _canFire = ACE_player getVariable["ace_missileguidance_target", nil]; if(!isNil "_canFire") exitWith { false }; @@ -122,7 +122,7 @@ FUNC(disableFire) = { FUNC(enableFire) = { _firedEH = _this select 0; - if(_firedEH > 0) then { + if(_firedEH > 0 && difficulty > 0) then { [ACE_player, "DefaultAction", _firedEH] call EFUNC(common,removeActionEventHandler); }; -1 diff --git a/addons/javelin/functions/fnc_onOpticUnload.sqf b/addons/javelin/functions/fnc_onOpticUnload.sqf index 38acc1cd1c..4086c02766 100644 --- a/addons/javelin/functions/fnc_onOpticUnload.sqf +++ b/addons/javelin/functions/fnc_onOpticUnload.sqf @@ -13,7 +13,7 @@ if(!isNil "_pfh") then { _args = uiNamespace getVariable[QGVAR(arguments), nil ]; if(!isNil "_args") then { _disableFireEH = _args select 6; - if(_disableFireEH > 0) then { + if(_disableFireEH > 0 && difficulty > 0) then { [ACE_player, "DefaultAction", _disableFireEH] call EFUNC(common,removeActionEventHandler); }; uiNameSpace setVariable [QGVAR(arguments),nil]; diff --git a/addons/missileguidance/functions/fnc_onFired.sqf b/addons/missileguidance/functions/fnc_onFired.sqf index ad713d8884..dd96821692 100644 --- a/addons/missileguidance/functions/fnc_onFired.sqf +++ b/addons/missileguidance/functions/fnc_onFired.sqf @@ -48,7 +48,7 @@ if(isNil "_target") then { } else { _canUseLock = getNumber (_config >> "canVanillaLock"); // @TODO: Get vanilla target - if(_canUseLock > 0 || cadetMode) then { + if(_canUseLock > 0 || difficulty < 1) then { _vanillaTarget = cursorTarget; TRACE_1("Using Vanilla Locking", _vanillaTarget); From 18be5276a9171e1b85b18a67240ea620eee05b0c Mon Sep 17 00:00:00 2001 From: commy2 <commy-2@gmx.de> Date: Wed, 15 Apr 2015 19:18:42 +0200 Subject: [PATCH 058/109] rally point moved eh, markers at rallypoint positions --- addons/respawn/CfgEventHandlers.hpp | 7 +++ addons/respawn/XEH_postInit.sqf | 5 +++ addons/respawn/XEH_preInit.sqf | 2 + .../functions/fnc_handlePlayerChanged.sqf | 44 +++++++++++++++++++ .../respawn/functions/fnc_initRallypoint.sqf | 44 ++++++++++++++++--- .../respawn/functions/fnc_moveRallypoint.sqf | 8 ++-- .../functions/fnc_updateRallypoint.sqf | 17 +++++++ 7 files changed, 115 insertions(+), 12 deletions(-) create mode 100644 addons/respawn/XEH_postInit.sqf create mode 100644 addons/respawn/functions/fnc_handlePlayerChanged.sqf create mode 100644 addons/respawn/functions/fnc_updateRallypoint.sqf diff --git a/addons/respawn/CfgEventHandlers.hpp b/addons/respawn/CfgEventHandlers.hpp index 58aa8995ee..46ebd08657 100644 --- a/addons/respawn/CfgEventHandlers.hpp +++ b/addons/respawn/CfgEventHandlers.hpp @@ -1,9 +1,16 @@ + class Extended_PreInit_EventHandlers { class ADDON { init = QUOTE(call COMPILE_FILE(XEH_preInit)); }; }; +class Extended_PostInit_EventHandlers { + class ADDON { + init = QUOTE(call COMPILE_FILE(XEH_postInit)); + }; +}; + class Extended_Killed_EventHandlers { class CAManBase { class ADDON { diff --git a/addons/respawn/XEH_postInit.sqf b/addons/respawn/XEH_postInit.sqf new file mode 100644 index 0000000000..ada5765e86 --- /dev/null +++ b/addons/respawn/XEH_postInit.sqf @@ -0,0 +1,5 @@ +// by commy2 +#include "script_component.hpp" + +["rallypointMoved", {_this call FUNC(updateRallypoint)}] call EFUNC(common,addEventhandler); +["playerChanged", {_this call FUNC(handlePlayerChanged)}] call EFUNC(common,addEventhandler); // hide enemy rallypoint markers diff --git a/addons/respawn/XEH_preInit.sqf b/addons/respawn/XEH_preInit.sqf index 8b3f309126..dd116f108c 100644 --- a/addons/respawn/XEH_preInit.sqf +++ b/addons/respawn/XEH_preInit.sqf @@ -4,6 +4,7 @@ ADDON = false; PREP(canMoveRallypoint); PREP(handleKilled); +PREP(handlePlayerChanged); PREP(handleRespawn); PREP(handleInitPostServer); PREP(initRallypoint); @@ -16,5 +17,6 @@ PREP(removeDisconnectedPlayer); PREP(restoreGear); PREP(showFriendlyFireMessage); PREP(teleportToRallypoint); +PREP(updateRallypoint); ADDON = true; diff --git a/addons/respawn/functions/fnc_handlePlayerChanged.sqf b/addons/respawn/functions/fnc_handlePlayerChanged.sqf new file mode 100644 index 0000000000..db699066bc --- /dev/null +++ b/addons/respawn/functions/fnc_handlePlayerChanged.sqf @@ -0,0 +1,44 @@ +// by commy2 +#include "script_component.hpp" + +private "_newUnit"; + +_newUnit = _this select 0; + +switch (side group _newUnit) do { + case (west): { + ((missionNamespace getVariable ["ACE_Rallypoint_West", objNull]) getVariable [QGVAR(marker), ""]) setMarkerAlphaLocal 1; + ((missionNamespace getVariable ["ACE_Rallypoint_East", objNull]) getVariable [QGVAR(marker), ""]) setMarkerAlphaLocal 0; + ((missionNamespace getVariable ["ACE_Rallypoint_Independent", objNull]) getVariable [QGVAR(marker), ""]) setMarkerAlphaLocal 0; + ((missionNamespace getVariable ["ACE_Rallypoint_West_Base", objNull]) getVariable [QGVAR(marker), ""]) setMarkerAlphaLocal 1; + ((missionNamespace getVariable ["ACE_Rallypoint_East_Base", objNull]) getVariable [QGVAR(marker), ""]) setMarkerAlphaLocal 0; + ((missionNamespace getVariable ["ACE_Rallypoint_Independent_Base", objNull]) getVariable [QGVAR(marker), ""]) setMarkerAlphaLocal 0; + }; + + case (east): { + ((missionNamespace getVariable ["ACE_Rallypoint_West", objNull]) getVariable [QGVAR(marker), ""]) setMarkerAlphaLocal 0; + ((missionNamespace getVariable ["ACE_Rallypoint_East", objNull]) getVariable [QGVAR(marker), ""]) setMarkerAlphaLocal 1; + ((missionNamespace getVariable ["ACE_Rallypoint_Independent", objNull]) getVariable [QGVAR(marker), ""]) setMarkerAlphaLocal 0; + ((missionNamespace getVariable ["ACE_Rallypoint_West_Base", objNull]) getVariable [QGVAR(marker), ""]) setMarkerAlphaLocal 0; + ((missionNamespace getVariable ["ACE_Rallypoint_East_Base", objNull]) getVariable [QGVAR(marker), ""]) setMarkerAlphaLocal 1; + ((missionNamespace getVariable ["ACE_Rallypoint_Independent_Base", objNull]) getVariable [QGVAR(marker), ""]) setMarkerAlphaLocal 0; + }; + + case (independent): { + ((missionNamespace getVariable ["ACE_Rallypoint_West", objNull]) getVariable [QGVAR(marker), ""]) setMarkerAlphaLocal 0; + ((missionNamespace getVariable ["ACE_Rallypoint_East", objNull]) getVariable [QGVAR(marker), ""]) setMarkerAlphaLocal 0; + ((missionNamespace getVariable ["ACE_Rallypoint_Independent", objNull]) getVariable [QGVAR(marker), ""]) setMarkerAlphaLocal 1; + ((missionNamespace getVariable ["ACE_Rallypoint_West_Base", objNull]) getVariable [QGVAR(marker), ""]) setMarkerAlphaLocal 0; + ((missionNamespace getVariable ["ACE_Rallypoint_East_Base", objNull]) getVariable [QGVAR(marker), ""]) setMarkerAlphaLocal 0; + ((missionNamespace getVariable ["ACE_Rallypoint_Independent_Base", objNull]) getVariable [QGVAR(marker), ""]) setMarkerAlphaLocal 1; + }; + + default { + ((missionNamespace getVariable ["ACE_Rallypoint_West", objNull]) getVariable [QGVAR(marker), ""]) setMarkerAlphaLocal 0; + ((missionNamespace getVariable ["ACE_Rallypoint_East", objNull]) getVariable [QGVAR(marker), ""]) setMarkerAlphaLocal 0; + ((missionNamespace getVariable ["ACE_Rallypoint_Independent", objNull]) getVariable [QGVAR(marker), ""]) setMarkerAlphaLocal 0; + ((missionNamespace getVariable ["ACE_Rallypoint_West_Base", objNull]) getVariable [QGVAR(marker), ""]) setMarkerAlphaLocal 0; + ((missionNamespace getVariable ["ACE_Rallypoint_East_Base", objNull]) getVariable [QGVAR(marker), ""]) setMarkerAlphaLocal 0; + ((missionNamespace getVariable ["ACE_Rallypoint_Independent_Base", objNull]) getVariable [QGVAR(marker), ""]) setMarkerAlphaLocal 0; + }; +}; diff --git a/addons/respawn/functions/fnc_initRallypoint.sqf b/addons/respawn/functions/fnc_initRallypoint.sqf index c266026e11..81058614ed 100644 --- a/addons/respawn/functions/fnc_initRallypoint.sqf +++ b/addons/respawn/functions/fnc_initRallypoint.sqf @@ -16,23 +16,53 @@ #include "script_component.hpp" -private ["_rallypoint", "_respawnMarker", "_name"]; +private ["_rallypoint", "_respawnMarker", "_side"]; _rallypoint = _this select 0; _respawnMarker = _this select 1; +_side = _this select 2; -if (!local _rallypoint) exitWith {}; - +private "_name"; _name = typeOf _rallypoint; +// init visible marker +if (hasInterface) then { + private ["_marker", "_type"]; + + _marker = format ["ACE_Marker_%1", _name]; + + // exit if it already exist + if (_marker in allMapMarkers) exitWith {}; + + _marker = createMarkerLocal [_marker, getPosASL _rallypoint]; + _type = ["selector_selectedFriendly", "selector_selectedEnemy"] select (_respawnMarker == ""); + + _marker setMarkerTypeLocal _type; + _marker setMarkerAlphaLocal ([0,1] select (_side == playerSide)); // playerSide to guarantee init + + private "_markerDate"; + _markerDate = _rallypoint getVariable [QGVAR(markerDate), ""]; + + _marker setMarkerTextLocal _markerDate; + + _rallypoint setVariable [QGVAR(marker), _marker]; +}; + +if (!isServer) exitWith {}; + if (isNil _name) then { missionNamespace setVariable [_name, _rallypoint]; publicVariable _name; + + _rallypoint setVariable [QGVAR(side), _side, true]; + + if (_respawnMarker != "" && {!(_respawnMarker in allMapMarkers)}) then { + createMarker [_respawnMarker, _rallypoint]; + }; + + ["rallypointMoved", [_rallypoint, _side]] call EFUNC(common,globalEvent); + } else { deleteVehicle _rallypoint; diag_log text "[ACE] Respawn: ERROR Multiple Rallypoints of same type."; }; - -if (isServer && {_respawnMarker != ""} && {!(_respawnMarker in allMapMarkers)}) then { - createMarker [_respawnMarker, _rallypoint]; -}; diff --git a/addons/respawn/functions/fnc_moveRallypoint.sqf b/addons/respawn/functions/fnc_moveRallypoint.sqf index d937363310..2b008bf122 100644 --- a/addons/respawn/functions/fnc_moveRallypoint.sqf +++ b/addons/respawn/functions/fnc_moveRallypoint.sqf @@ -44,11 +44,9 @@ _this spawn { _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]; - */ + _rallypoint setVariable [QGVAR(markerDate), format ["%1:%2", date select 3, date select 4], true]; + + ["rallypointMoved", [_rallypoint, _side]] call EFUNC(common,globalEvent); [localize "STR_ACE_Respawn_Deployed"] call EFUNC(common,displayTextStructured); }; diff --git a/addons/respawn/functions/fnc_updateRallypoint.sqf b/addons/respawn/functions/fnc_updateRallypoint.sqf new file mode 100644 index 0000000000..2510a58a30 --- /dev/null +++ b/addons/respawn/functions/fnc_updateRallypoint.sqf @@ -0,0 +1,17 @@ +// by commy2 +#include "script_component.hpp" + +private ["_rallypoint", "_side"]; + +_rallypoint = _this select 0; +_side = _this select 1; + +if (!hasInterface) exitWith {}; + +private ["_marker", "_markerDate"]; + +_marker = _rallypoint getVariable [QGVAR(marker), ""]; +_markerDate = _rallypoint getVariable [QGVAR(markerDate), ""]; + +_marker setMarkerPosLocal getPosASL _rallypoint; +_marker setMarkerTextLocal _markerDate; From ae198fa307d1acce77c3440a22167b6583369092 Mon Sep 17 00:00:00 2001 From: jaynus <jaynus@gmail.com> Date: Wed, 15 Apr 2015 10:32:52 -0700 Subject: [PATCH 059/109] documentation matching re-orginization. --- documentation/feature/javelin.md | 10 ++++++++++ documentation/features/feature-list.md | 20 +++++++++++++++++++ documentation/features/titan-javelin-usage.md | 10 ++++++++++ .../framework/advanced-missile-guidance.md | 10 ++++++++++ .../fragmentation-configuration.md | 2 +- 5 files changed, 51 insertions(+), 1 deletion(-) create mode 100644 documentation/feature/javelin.md create mode 100644 documentation/features/feature-list.md create mode 100644 documentation/features/titan-javelin-usage.md create mode 100644 documentation/framework/advanced-missile-guidance.md rename documentation/{development => framework}/fragmentation-configuration.md (99%) diff --git a/documentation/feature/javelin.md b/documentation/feature/javelin.md new file mode 100644 index 0000000000..eecfa8844a --- /dev/null +++ b/documentation/feature/javelin.md @@ -0,0 +1,10 @@ +--- +layout: wiki +title: Javelin/Titan Locking and Firing +group: feature +order: 5 +parent: wiki +--- + +## 1. Overview +Blah blah blah \ No newline at end of file diff --git a/documentation/features/feature-list.md b/documentation/features/feature-list.md new file mode 100644 index 0000000000..9edc405ba2 --- /dev/null +++ b/documentation/features/feature-list.md @@ -0,0 +1,20 @@ +--- +layout: wiki +title: Features Documentation +group: features +order: 0 +parent: wiki +--- + + +**This page will get updated soon.** + + +## Table of Contents + + 1. [][[Advanced Missile Guidanced Framework|WikiLink]] + 2. [yy](#yy) + 3. [zz](#zz) + + +## What ACE3 has to offer diff --git a/documentation/features/titan-javelin-usage.md b/documentation/features/titan-javelin-usage.md new file mode 100644 index 0000000000..8115e6812b --- /dev/null +++ b/documentation/features/titan-javelin-usage.md @@ -0,0 +1,10 @@ +--- +layout: wiki +title: ACE Titan and Javelin +group: features +order: 0 +parent: wiki +--- + + +**This page will get updated soon.** diff --git a/documentation/framework/advanced-missile-guidance.md b/documentation/framework/advanced-missile-guidance.md new file mode 100644 index 0000000000..e67bfbe0f3 --- /dev/null +++ b/documentation/framework/advanced-missile-guidance.md @@ -0,0 +1,10 @@ +--- +layout: wiki +title: Advanced Missile Guidance +group: framework +order: 5 +parent: wiki +--- + +## 1. Overview +Blah blah blah \ No newline at end of file diff --git a/documentation/development/fragmentation-configuration.md b/documentation/framework/fragmentation-configuration.md similarity index 99% rename from documentation/development/fragmentation-configuration.md rename to documentation/framework/fragmentation-configuration.md index 17ff36fa13..1372b2b69a 100644 --- a/documentation/development/fragmentation-configuration.md +++ b/documentation/framework/fragmentation-configuration.md @@ -1,7 +1,7 @@ --- layout: wiki title: Fragmentation Configuration -group: development +group: framework parent: wiki order: 7 --- From 3cff85e85d74a438f6dd4dfffae7641e8e54c83a Mon Sep 17 00:00:00 2001 From: ulteq <ulteq@web.de> Date: Wed, 15 Apr 2015 19:51:34 +0200 Subject: [PATCH 060/109] Added Mk319 Mod 0 ammo and magazines --- addons/ballistics/CfgAmmo.hpp | 20 +++++++++++++-- addons/ballistics/CfgMagazines.hpp | 19 +++++++++++++- addons/ballistics/CfgVehicles.hpp | 11 +++++++- addons/ballistics/CfgWeapons.hpp | 3 +++ addons/ballistics/stringtable.xml | 40 ++++++++++++++++++++++++------ 5 files changed, 81 insertions(+), 12 deletions(-) diff --git a/addons/ballistics/CfgAmmo.hpp b/addons/ballistics/CfgAmmo.hpp index 8e75e6ce03..a0fa47c452 100644 --- a/addons/ballistics/CfgAmmo.hpp +++ b/addons/ballistics/CfgAmmo.hpp @@ -148,7 +148,7 @@ class CfgAmmo { class B_762x51_Ball : BulletBase { airFriction=-0.001035; typicalSpeed=833; - hit=14; + hit=9; ACE_caliber=0.308; ACE_bulletLength=1.14; ACE_bulletMass=146; @@ -180,6 +180,22 @@ class CfgAmmo { ACE_muzzleVelocities[]={750, 780, 790, 794}; ACE_barrelLengths[]={16, 20, 24, 26}; }; + class ACE_762x51_Ball_Mk319_Mod_0 : B_762x51_Ball { + airFriction=-0.0014; + caliber=0.85; + hit=14; + typicalSpeed=890; + ACE_caliber=0.308; + ACE_bulletLength=1.24; + ACE_bulletMass=130; + 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.277}; + ACE_velocityBoundaries[]={}; + ACE_standardAtmosphere="ICAO"; + ACE_dragModel=1; + ACE_muzzleVelocities[]={838, 892, 910}; + ACE_barrelLengths[]={13, 16, 20}; + }; class ACE_762x67_Ball_Mk248_Mod_0 : B_762x51_Ball { airFriction=-0.000830; @@ -234,7 +250,7 @@ class CfgAmmo { class ACE_762x51_Ball_Subsonic : B_762x51_Ball { airFriction=-0.000535; caliber=0.5; - hit=16; + hit=6; typicalSpeed=790; ACE_caliber=0.308; ACE_bulletLength=1.340; diff --git a/addons/ballistics/CfgMagazines.hpp b/addons/ballistics/CfgMagazines.hpp index 7a97b3609e..ef36fcca78 100644 --- a/addons/ballistics/CfgMagazines.hpp +++ b/addons/ballistics/CfgMagazines.hpp @@ -117,12 +117,21 @@ class CfgMagazines { class ACE_10Rnd_762x51_M118LR_Mag: 10Rnd_762x51_Mag { author = "$STR_ACE_Common_ACETeam"; ammo = "ACE_762x51_Ball_M118LR"; - count=10; + count = 10; displayName = "$STR_ACE_10Rnd_762x51_M118LR_Mag_Name"; displayNameShort = "$STR_ACE_10Rnd_762x51_M118LR_Mag_NameShort"; descriptionShort = "$STR_ACE_10Rnd_762x51_M118LR_Mag_Description"; initSpeed = 780; }; + class ACE_10Rnd_762x51_Mk319_Mod_0_Mag: 10Rnd_762x51_Mag { + author = "$STR_ACE_Common_ACETeam"; + ammo = "ACE_762x51_Ball_Mk319_Mod_0"; + count = 10; + displayName = "$STR_ACE_10Rnd_762x51_Mk319_Mod_0_Mag_Name"; + displayNameShort = "$STR_ACE_10Rnd_762x51_Mk319_Mod_0_Mag_NameShort"; + descriptionShort = "$STR_ACE_10Rnd_762x51_Mk319_Mod_0_Mag_Description"; + initSpeed = 900; + }; class ACE_20Rnd_762x51_M118LR_Mag: 20Rnd_762x51_Mag { author = "$STR_ACE_Common_ACETeam"; ammo = "ACE_762x51_Ball_M118LR"; @@ -131,6 +140,14 @@ class CfgMagazines { descriptionShort = "$STR_ACE_20Rnd_762x51_M118LR_Mag_Description"; initSpeed = 780; }; + class ACE_20Rnd_762x51_Mk319_Mod_0_Mag: 20Rnd_762x51_Mag { + author = "$STR_ACE_Common_ACETeam"; + ammo = "ACE_762x51_Ball_Mk319_Mod_0"; + displayName = "$STR_ACE_20Rnd_762x51_Mk319_Mod_0_Mag_Name"; + displayNameShort = "$STR_ACE_20Rnd_762x51_Mk319_Mod_0_Mag_NameShort"; + descriptionShort = "$STR_ACE_20Rnd_762x51_Mk319_Mod_0_Mag_Description"; + initSpeed = 900; + }; class ACE_20Rnd_762x67_Mk248_Mod_0_Mag: 20Rnd_762x51_Mag { author = "$STR_ACE_Common_ACETeam"; ammo = "ACE_762x67_Ball_Mk248_Mod_0"; diff --git a/addons/ballistics/CfgVehicles.hpp b/addons/ballistics/CfgVehicles.hpp index 9dd4a7083d..f992f8cc8b 100644 --- a/addons/ballistics/CfgVehicles.hpp +++ b/addons/ballistics/CfgVehicles.hpp @@ -35,6 +35,8 @@ class CfgVehicles { MACRO_ADDMAGAZINE(ACE_30Rnd_65x47_Scenar_mag,4); MACRO_ADDMAGAZINE(ACE_10Rnd_762x51_M118LR_Mag,4); MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_M118LR_Mag,4); + MACRO_ADDMAGAZINE(ACE_10Rnd_762x51_Mk319_Mod_0_Mag,4); + MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mk319_Mod_0_Mag,4); MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mag_Tracer_Dim,4); MACRO_ADDMAGAZINE(ACE_10Rnd_338_300gr_HPBT_Mag,4); MACRO_ADDMAGAZINE(ACE_10Rnd_338_API526_Mag,4); @@ -46,7 +48,9 @@ class CfgVehicles { class Box_NATO_Support_F: NATO_Box_Base { class TransportMagazines { MACRO_ADDMAGAZINE(ACE_10Rnd_762x51_M118LR_Mag,4); - MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_M118LR_Mag,6); + MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_M118LR_Mag,4); + MACRO_ADDMAGAZINE(ACE_10Rnd_762x51_Mk319_Mod_0_Mag,4); + MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mk319_Mod_0_Mag,4); MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mag_Tracer_Dim,4); MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mag_SD,3); MACRO_ADDMAGAZINE(ACE_10Rnd_338_300gr_HPBT_Mag,4); @@ -62,6 +66,8 @@ class CfgVehicles { MACRO_ADDMAGAZINE(ACE_30Rnd_65x47_Scenar_mag,4); MACRO_ADDMAGAZINE(ACE_10Rnd_762x51_M118LR_Mag,4); MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_M118LR_Mag,4); + MACRO_ADDMAGAZINE(ACE_10Rnd_762x51_Mk319_Mod_0_Mag,4); + MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mk319_Mod_0_Mag,4); MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mag_Tracer_Dim,4); }; }; @@ -157,7 +163,10 @@ class CfgVehicles { class ACE_Box_Misc: Box_NATO_Support_F { class TransportMagazines { MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mag_SD,4); + MACRO_ADDMAGAZINE(ACE_10Rnd_762x51_M118LR_Mag,4); MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_M118LR_Mag,4); + MACRO_ADDMAGAZINE(ACE_10Rnd_762x51_Mk319_Mod_0_Mag,4); + MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mk319_Mod_0_Mag,4); MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mag_Tracer_Dim,4); MACRO_ADDMAGAZINE(ACE_20Rnd_762x67_Mk248_Mod_0_Mag,4); MACRO_ADDMAGAZINE(ACE_20Rnd_762x67_Mk248_Mod_1_Mag,4); diff --git a/addons/ballistics/CfgWeapons.hpp b/addons/ballistics/CfgWeapons.hpp index add91d0fa2..dad5356755 100644 --- a/addons/ballistics/CfgWeapons.hpp +++ b/addons/ballistics/CfgWeapons.hpp @@ -503,6 +503,7 @@ class CfgWeapons { "20Rnd_762x51_Mag", "ACE_20Rnd_762x51_Mag_Tracer_Dim", "ACE_20Rnd_762x51_M118LR_Mag", + "ACE_20Rnd_762x51_Mk319_Mod_0_Mag", "ACE_20Rnd_762x51_Mag_SD" }; initSpeed = -0.9724; @@ -550,6 +551,7 @@ class CfgWeapons { "20Rnd_762x51_Mag", "ACE_20Rnd_762x51_Mag_Tracer_Dim", "ACE_20Rnd_762x51_M118LR_Mag", + "ACE_20Rnd_762x51_Mk319_Mod_0_Mag", "ACE_20Rnd_762x51_Mag_SD" }; initSpeed = -0.9843; @@ -571,6 +573,7 @@ class CfgWeapons { "20Rnd_762x51_Mag", "ACE_20Rnd_762x51_Mag_Tracer_Dim", "ACE_20Rnd_762x51_M118LR_Mag", + "ACE_20Rnd_762x51_Mk319_Mod_0_Mag", "ACE_20Rnd_762x51_Mag_SD" }; initSpeed = -0.9916; diff --git a/addons/ballistics/stringtable.xml b/addons/ballistics/stringtable.xml index 0b39dcb9d3..4786555236 100644 --- a/addons/ballistics/stringtable.xml +++ b/addons/ballistics/stringtable.xml @@ -650,8 +650,8 @@ <Polish>Magazynek 5,56mm 30rd Mk262</Polish> </Key> <Key ID="STR_ACE_30Rnd_556x45_Stanag_Mk262_mag_NameShort"> - <English>5.56mm (Mk262)</English> - <Polish>5,56mm (Mk262)</Polish> + <English>5.56mm Mk262</English> + <Polish>5,56mm Mk262</Polish> </Key> <Key ID="STR_ACE_30Rnd_556x45_Stanag_Mk262_mag_Description"> <English>Caliber: 5.56x45 mm NATO (Mk262)<br />Rounds: 30</English> @@ -662,8 +662,8 @@ <Polish>Magazynek 5,56mm 30rd Mk318</Polish> </Key> <Key ID="STR_ACE_30Rnd_556x45_Stanag_Mk318_mag_NameShort"> - <English>5.56mm (Mk318)</English> - <Polish>5,56mm (Mk318)</Polish> + <English>5.56mm Mk318</English> + <Polish>5,56mm Mk318</Polish> </Key> <Key ID="STR_ACE_30Rnd_556x45_Stanag_Mk318_mag_Description"> <English>Caliber: 5.56x45 mm NATO (Mk318)<br />Rounds: 30</English> @@ -674,8 +674,8 @@ <Polish>Magazynek 7,62mm 10rd (M118LR)</Polish> </Key> <Key ID="STR_ACE_10Rnd_762x51_M118LR_Mag_NameShort"> - <English>7.62mm (M118LR)</English> - <Polish>7,62mm (M118LR)</Polish> + <English>7.62mm M118LR</English> + <Polish>7,62mm M118LR</Polish> </Key> <Key ID="STR_ACE_10Rnd_762x51_M118LR_Mag_Description"> <English>Caliber: 7.62x51 mm NATO (M118LR)<br />Rounds: 10</English> @@ -686,13 +686,37 @@ <Polish>Magazynek 7,62mm 20rd (M118LR)</Polish> </Key> <Key ID="STR_ACE_20Rnd_762x51_M118LR_Mag_NameShort"> - <English>7.62mm (M118LR)</English> - <Polish>7,62mm (M118LR)</Polish> + <English>7.62mm M118LR</English> + <Polish>7,62mm M118LR</Polish> </Key> <Key ID="STR_ACE_20Rnd_762x51_M118LR_Mag_Description"> <English>Caliber: 7.62x51 mm NATO (M118LR)<br />Rounds: 20</English> <Polish>Kaliber: 7,62x51 mm NATO (M118LR)<br />Pociski: 20</Polish> </Key> + <Key ID="STR_ACE_10Rnd_762x51_Mk319_Mod_0_Mag_Name"> + <English>7.62mm 10Rnd Mag (Mk319 Mod 0)</English> + <Polish>Magazynek 7,62mm 10rd (Mk319 Mod 0)</Polish> + </Key> + <Key ID="STR_ACE_10Rnd_762x51_Mk319_Mod_0_Mag_NameShort"> + <English>7.62mm Mk319</English> + <Polish>7,62mm Mk319</Polish> + </Key> + <Key ID="STR_ACE_10Rnd_762x51_Mk319_Mod_0_Mag_Description"> + <English>Caliber: 7.62x51 mm NATO (Mk319 Mod 0)<br />Rounds: 10</English> + <Polish>Kaliber: 7,62x51 mm NATO (Mk319 Mod 0)<br />Pociski: 10</Polish> + </Key> + <Key ID="STR_ACE_20Rnd_762x51_Mk319_Mod_0_Mag_Name"> + <English>7.62mm 20Rnd Mag (Mk319 Mod 0)</English> + <Polish>Magazynek 7,62mm 20rd (Mk319 Mod 0)</Polish> + </Key> + <Key ID="STR_ACE_20Rnd_762x51_Mk319_Mod_0_Mag_NameShort"> + <English>7.62mm Mk319</English> + <Polish>7,62mm Mk319</Polish> + </Key> + <Key ID="STR_ACE_20Rnd_762x51_Mk319_Mod_0_Mag_Description"> + <English>Caliber: 7.62x51 mm NATO (Mk319 Mod 0)<br />Rounds: 20</English> + <Polish>Kaliber: 7,62x51 mm NATO (Mk319 Mod 0)<br />Pociski: 20</Polish> + </Key> <Key ID="STR_ACE_20Rnd_762x67_Mk248_Mod_0_Mag_Name"> <English>7.62mm 20Rnd Mag (Mk248 Mod 0)</English> <Polish>Magazynek 7,62mm 20rd (Mk248 Mod 0)</Polish> From e54d8dc827f05362d3b25b34a56ea48c97bd0355 Mon Sep 17 00:00:00 2001 From: PabstMirror <elephantisaterriblemascot@gmail.com> Date: Wed, 15 Apr 2015 12:55:16 -0500 Subject: [PATCH 061/109] ProgressBar - Fixed Alignment --- addons/common/ProgressScreen.hpp | 135 ++++++++++---------- addons/common/functions/fnc_progressBar.sqf | 19 +-- 2 files changed, 76 insertions(+), 78 deletions(-) diff --git a/addons/common/ProgressScreen.hpp b/addons/common/ProgressScreen.hpp index 751d48af9f..df07e5ca2f 100644 --- a/addons/common/ProgressScreen.hpp +++ b/addons/common/ProgressScreen.hpp @@ -1,77 +1,74 @@ - class GVAR(ProgressBar_Dialog) { - idd = -1; - movingEnable = false; - onLoad = QUOTE(uiNamespace setVariable [ARR_2(QUOTE(QGVAR(ctrlProgressBar)),(_this select 0) displayCtrl 1)]; uiNamespace setVariable [ARR_2(QUOTE(QGVAR(ctrlProgressBarTitle)),(_this select 0) displayCtrl 2)];); - objects[] = {}; + idd = -1; + movingEnable = false; + onLoad = QUOTE(uiNamespace setVariable [ARR_2(QUOTE(QGVAR(ctrlProgressBar)),(_this select 0) displayCtrl 1)]; uiNamespace setVariable [ARR_2(QUOTE(QGVAR(ctrlProgressBarTitle)),(_this select 0) displayCtrl 2)];); + objects[] = {}; - class controlsBackground { - class Background { - idc = -1; - moving = 0; - font = "TahomaB"; - text = ""; - sizeEx = 0; - lineSpacing = 0; - access = 0; - type = 0; - style = 0; - size = 1; - colorBackground[] = {0, 0, 0, 0.0}; - colorText[] = {0, 0, 0, 0}; - x = "safezoneX"; - y = "safezoneY"; - w = "safezoneW"; - h = "safezoneH"; + class controlsBackground { + class Background { + idc = -1; + moving = 0; + font = "TahomaB"; + text = ""; + sizeEx = 0; + lineSpacing = 0; + access = 0; + type = 0; + style = 0; + size = 1; + colorBackground[] = {0, 0, 0, 0.0}; + colorText[] = {0, 0, 0, 0}; + x = "safezoneX"; + y = "safezoneY"; + w = "safezoneW"; + h = "safezoneH"; + }; + class Progress: ACE_gui_RscProgress { + idc = 1; + x = "1.2 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "0.1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + w = "37.8 * (((safezoneW / safezoneH) min 1.2) / 40)"; + h = ".8 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + colorFrame[] = {0,0,0,0.0}; + colorBar[] = {0.27,0.5,0.31,0.8}; + texture = "#(argb,8,8,3)color(1,1,1,0.7)"; + }; + class Title_Bar : ACE_gui_staticBase { + idc = 2; + style = 0x22; + colorBackground[] = {0, 0, 0, 0}; + colorText[] = {1, 1, 1, 1}; + x = "1 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "0 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + w = "38 * (((safezoneW / safezoneH) min 1.2) / 40)"; + h = "1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + }; }; - - class Progress: ACE_gui_RscProgress { - idc = 1; - x = "1 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; - y = "0.1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; - w = "38 * (((safezoneW / safezoneH) min 1.2) / 40)"; - h = ".8 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; - colorFrame[] = {0,0,0,0.0}; - colorBar[] = {0.27,0.5,0.31,0.8}; - texture = "#(argb,8,8,3)color(1,1,1,0.7)"; - }; - - class Title_Bar : ACE_gui_staticBase { - idc = 2; - style = 0x22; - colorBackground[] = {0, 0, 0, 0}; - colorText[] = {1, 1, 1, 1}; - x = "1 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; - y = "0 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; - w = "38 * (((safezoneW / safezoneH) min 1.2) / 40)"; - h = "1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; - }; - }; }; class GVAR(DisableMouse_Dialog) { - idd = -1; - movingEnable = false; - onLoad = QUOTE(uiNamespace setVariable [ARR_2(QUOTE(QGVAR(dlgDisableMouse)),_this select 0)];); - objects[] = {}; - class controlsBackground { - class Background { - idc = -1; - moving = 0; - font = "TahomaB"; - text = ""; - sizeEx = 0; - lineSpacing = 0; - access = 0; - type = 0; - style = 0; - size = 1; - colorBackground[] = {0, 0, 0, 0};//0.5 - colorText[] = {0, 0, 0, 0}; - x = "safezoneX"; - y = "safezoneY"; - w = "safezoneW"; - h = "safezoneH"; + idd = -1; + movingEnable = false; + onLoad = QUOTE(uiNamespace setVariable [ARR_2(QUOTE(QGVAR(dlgDisableMouse)),_this select 0)];); + objects[] = {}; + class controlsBackground { + class Background { + idc = -1; + moving = 0; + font = "TahomaB"; + text = ""; + sizeEx = 0; + lineSpacing = 0; + access = 0; + type = 0; + style = 0; + size = 1; + colorBackground[] = {0, 0, 0, 0};//0.5 + colorText[] = {0, 0, 0, 0}; + x = "safezoneX"; + y = "safezoneY"; + w = "safezoneW"; + h = "safezoneH"; + }; }; - }; }; diff --git a/addons/common/functions/fnc_progressBar.sqf b/addons/common/functions/fnc_progressBar.sqf index 3191a57d72..03c56398c4 100644 --- a/addons/common/functions/fnc_progressBar.sqf +++ b/addons/common/functions/fnc_progressBar.sqf @@ -26,7 +26,7 @@ PARAMS_4(_totalTime,_args,_onFinish,_onFail); DEFAULT_PARAM(4,_localizedTitle,""); DEFAULT_PARAM(5,_condition,{true}); DEFAULT_PARAM(6,_exceptions,[]); -private ["_player", "_perFrameFunction"]; +private ["_player", "_perFrameFunction", "_ctrlPos"]; _player = ACE_player; @@ -35,14 +35,15 @@ closeDialog 0; createDialog QGVAR(ProgressBar_Dialog); (uiNamespace getVariable QGVAR(ctrlProgressBarTitle)) ctrlSetText _localizedTitle; -if (GVAR(SettingProgressBarLocation) == 1) then { - private "_ctrlPos"; - _ctrlPos = [1 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2), 29 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2), 38 * (((safezoneW / safezoneH) min 1.2) / 40), 0.8 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)]; - (uiNamespace getVariable QGVAR(ctrlProgressBar)) ctrlSetPosition _ctrlPos; - (uiNamespace getVariable QGVAR(ctrlProgressBarTitle)) ctrlSetPosition _ctrlPos; - (uiNamespace getVariable QGVAR(ctrlProgressBar)) ctrlCommit 0; - (uiNamespace getVariable QGVAR(ctrlProgressBarTitle)) ctrlCommit 0; -}; +//Adjust position based on user setting: +_ctrlPos = ctrlPosition (uiNamespace getVariable QGVAR(ctrlProgressBarTitle)); +_ctrlPos set [1, ((0 + 29 * GVAR(SettingProgressBarLocation)) * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2))]; +(uiNamespace getVariable QGVAR(ctrlProgressBarTitle)) ctrlSetPosition _ctrlPos; +(uiNamespace getVariable QGVAR(ctrlProgressBarTitle)) ctrlCommit 0; +_ctrlPos = ctrlPosition (uiNamespace getVariable QGVAR(ctrlProgressBar)); +_ctrlPos set [1, ((0.1 + 29 * GVAR(SettingProgressBarLocation)) * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2))]; +(uiNamespace getVariable QGVAR(ctrlProgressBar)) ctrlSetPosition _ctrlPos; +(uiNamespace getVariable QGVAR(ctrlProgressBar)) ctrlCommit 0; _perFrameFunction = { From 1a117a58932989057b63994d8b7e3406467f7748 Mon Sep 17 00:00:00 2001 From: jaynus <jaynus@gmail.com> Date: Wed, 15 Apr 2015 11:04:37 -0700 Subject: [PATCH 062/109] AMG documentation update. --- .../framework/advanced-missile-guidance.md | 101 +++++++++++++++++- 1 file changed, 99 insertions(+), 2 deletions(-) diff --git a/documentation/framework/advanced-missile-guidance.md b/documentation/framework/advanced-missile-guidance.md index e67bfbe0f3..3029b7b3bd 100644 --- a/documentation/framework/advanced-missile-guidance.md +++ b/documentation/framework/advanced-missile-guidance.md @@ -6,5 +6,102 @@ order: 5 parent: wiki --- -## 1. Overview -Blah blah blah \ No newline at end of file +# 1. Overview + +The ACE Advanced Missile Guidance Framework provides a setup of configuration settings, functions and a execution framework for addon makers to integrate with the missile guidance and targeting mechanisms of ACE. It also provides for mod makers to create their own custom guidance methods within the framework. + +The framework provides all the functionality needed for guidance; from laser locking, target specification and selection, to handling the fired events and tracking and steering the vehicle based on provided parameters. This way, all that needs to be defined in addons is the appropriate CfgAmmo entries for the missile. + +The framework also provides addon makers and scripters with the ability to configure custom seeker types and attack profiles, which are defined below. This allows for complete control of the guidance, locking and flight of a missile at the discretion of the addon maker. + +ACE3 provides a full suite of base concepts and guidance for the majority of modern missile weaponry avialable today; these includes all basic types of seekers (SALH/SACLOS/Optic/Thermal/etc) - as well as the different common attack profiles utilized with guided munitions (such as top-down attacks). + +Finally, flight profiles and mechanics for realistic missile simulations are also implemented; allowing for lock-steering bump guidance flight such as with the M47 Dragon or GBU steering fins, or finely tuned direct flight guidance which is currently avialable with other missile types. + +# 2. Details + +The framework is broken up into 3 major components: Locking Types, Seeker Types and Attack Profiles. In combination, these components build out the entire process of launching, locking and going terminal flight against targets. + +### Components + +##### 1. Locking Types +Locking types provide the basic functionality of targeting which will be based to a seeker type, providing target aquisition for seekers. This provides the basic functionality for providing pre-determined targets for a seeker, or allowing the seeker to perform its own target aquisition and locking. Additionally, the seeker may reference back into the locking type in order to re-perform target aquisition. + +##### 2. Seeker Types +Each seeker is generally assumed to be the logic for the seeker head unit within any given munition. Seekers within this framework provide the basic targeting functionality for the entire framework. The locking type will provide a generic target to the seeker, or the seeker may aquire a target on its own. The seeker then provides a target, either an object or a ASL position, which is then passed further into the framework. This target (or position) should be the actual current target position for the missiles flight. Seekers are required to perform all limitations and checks within their systems, although various limitations have been provided in this framework such as LOS FOV, laser guidance, etc. + +##### 3. Attack Profiles + +An attack profile adjusts the current target flight location to create the actual flight path of the missile. The attack profile is provided with all parameters of the system, including the returned target of the seeker. Using this information, the attack profile then will adjust the *direct flight target position* to specifically direct where and how the missile shall flight. + +## How it all ties together + +The system is executed in a linear series of calls to each step of the process, and feeding back the return from that step to the next step. Execution is conducted using Locking->Seeker->Profile, iteratively every frame of execution. Flight times are adjusted to accTime values and FPS lag, giving consistent flight. + +On each step of execution, a target specification array [targetObj, targetPos] is passed to the locking type, which then will return a possible modified target array. Next, this modified data is passed to the seeker type - which then, in turn, returns a position vector to the current "seeked" target position (ASL). Last, this target position is passed to the attack profile, who then returns an "adjusted attack position (ASL)", which is the location the missile should *currently* be homing on for flight. + +In the simplest sense, the entire system provides the flight trajectory of the missile homing directly on the "adjusted attack position"; thus, an attack profile would ajust this position to direct the missile. For example, Top down attacks return the adjusted attack position high above the target, until entering their terminal stages, which then changes the position to be directly ontop of the target - thus "walking the missile" along its flight path and to the kill. + +# 2. Adding AMG to a missile + +## Enabling guidance on Ammo Types +``` +class CfgAmmo { + class MissileBase; + class MyMissileType : MissileBase { + // Turn off arma crosshair-guidance + manualControl = 0; + + // Begin ACE guidance Configs + class ace_missileguidance { + enabled = 1; + + minDeflection = 0.00025; // Minium flap deflection for guidance + maxDeflection = 0.001; // Maximum flap deflection for guidance + incDeflection = 0.0005; // The incrmeent in which deflection adjusts. + + canVanillaLock = 0; // Can this default vanilla lock? Only applicable to non-cadet modes. All 'recruit' games use vanilla locking + + // Seeker type and settings for munitions + defaultSeekerType = "SALH"; + seekerTypes[] = { "SALH", "LIDAR", "SARH", "Optic", "Thermal", "GPS", "SACLOS", "MCLOS" }; + + defaultSeekerLockMode = "LOAL"; + seekerLockModes[] = { "LOAL", "LOBL" }; + + seekerAngle = 90; // Angle in front of the missile which can be searched + seekerAccuracy = 1; // seeker accuracy multiplier + + seekerMinRange = 1; + seekerMaxRange = 2500; // Range from the missile which the seeker can visually search + + // Attack profile type selection + defaultAttackProfile = "LIN"; + attackProfiles[] = { "LIN", "DIR", "MID", "HI" }; + }; +``` + +# 2. Creating your own custom seekers and attack profiles + +## Adding seeker types and attack profiles + +``` +class ace_missileguidance_attackProfiles{ + class MyAttackProfile { + name = ""; + visualName = ""; + description = ""; + + functionName = "my_fnc_doAttackProfile"; + }; +}; +class ace_missileguidance_seekerTypes { + class MySeekerType { + name = ""; + visualName = ""; + description = ""; + + functionName = "my_fnc_doSeekerType"; + }; +}; +``` \ No newline at end of file From bc5b9bdfe90ec202de318099019fa5d9ea90e724 Mon Sep 17 00:00:00 2001 From: FreeZbe <FreeZbe@users.noreply.github.com> Date: Wed, 15 Apr 2015 20:11:08 +0200 Subject: [PATCH 063/109] French : update / fix strintable --- addons/interaction/stringtable.xml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/addons/interaction/stringtable.xml b/addons/interaction/stringtable.xml index 680c0409c1..0c10336309 100644 --- a/addons/interaction/stringtable.xml +++ b/addons/interaction/stringtable.xml @@ -33,6 +33,7 @@ </Key> <Key ID="STR_ACE_Interaction_ArmLeft"> <English>Left Arm</English> + <French>Bras gauche</French> <German>Linker Arm</German> <Spanish>Brazo izquierdo</Spanish> <Czech>Levá paže</Czech> @@ -194,7 +195,7 @@ <Spanish>Asumir el liderazgo</Spanish> <Polish>Przejmij dowodzenie</Polish> <Czech>Stát se velitelem</Czech> - <French>Devenir Leader</French> + <French>Devenir Chef de groupe</French> <Russian>Стать лидером</Russian> <Hungarian>Vezetés átvétele</Hungarian> <Portuguese>Tornar-se Líder</Portuguese> @@ -564,7 +565,7 @@ <English>Join Team<br/>Green</English> <German>Team Grün<br/>beitreten</German> <Spanish>Unirse al<br/>equipo verde</Spanish> - <French>Rejoindre<br/>Verte</French> + <French>Rejoindre<br/>Vert</French> <Polish>Dołącz do<br/>drużyny zielonej</Polish> <Czech>Připojit do<br/>Zeleného týmu</Czech> <Russian>Присоединиться<br/>к зеленой группе</Russian> @@ -576,7 +577,7 @@ <English>Join Team<br/>Blue</English> <German>Team Blau<br/>beitreten</German> <Spanish>Unirse al<br/>equipo azul</Spanish> - <French>Rejoindre<br/>Bleue</French> + <French>Rejoindre<br/>Bleu</French> <Polish>Dołącz do<br/>drużyny niebieskiej</Polish> <Czech>Připojit do<br/>Modrého týmu</Czech> <Russian>Присоединиться<br/>к синей группе</Russian> From 3a062a4ff93cd6a5391505438e6287e0ce7db49d Mon Sep 17 00:00:00 2001 From: ulteq <ulteq@web.de> Date: Wed, 15 Apr 2015 20:33:11 +0200 Subject: [PATCH 064/109] Fixed incorrect Mk319 Mod 0 BC/airFriction --- addons/atragmx/XEH_postInit.sqf | 2 +- addons/ballistics/CfgAmmo.hpp | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/addons/atragmx/XEH_postInit.sqf b/addons/atragmx/XEH_postInit.sqf index 61bbf8b845..664bc76ba4 100644 --- a/addons/atragmx/XEH_postInit.sqf +++ b/addons/atragmx/XEH_postInit.sqf @@ -12,7 +12,7 @@ if (count (profileNamespace getVariable ["ACE_ATragMX_gunList", []]) > 0) then { ["10.4x77mm" , 910, 100, 0.0572, -0.0004800, 3.81, 0, 0.338, 0.338, 120, 0, 0, 27.15, "B_408_Ball" , "7Rnd_408_Mag" , 0.970, 1, "ASM" ], ["9.3×64mm" , 870, 100, 0.0632, -0.0007500, 3.81, 0, 0.338, 0.338, 120, 0, 0, 16.20, "B_93x64_Ball" , "10Rnd_93x64_DMR_05_Mag" , 0.368, 1, "ASM" ], ["8.6×70mm" , 915, 100, 0.0572, -0.0006100, 3.81, 0, 0.338, 0.338, 120, 0, 0, 16.20, "B_338_Ball" , "10Rnd_338_Mag" , 0.322, 7, "ICAO"], - ["7.62x51mm" , 850, 100, 0.0639, -0.0010000, 3.81, 0, 0.338, 0.338, 120, 0, 0, 9.460, "B_762x51_Ball" , "20Rnd_762x51_Mag" , 0.393, 1, "ICAO"], + ["7.62x51mm" , 820, 100, 0.0639, -0.0010000, 3.81, 0, 0.338, 0.338, 120, 0, 0, 9.460, "B_762x51_Ball" , "20Rnd_762x51_Mag" , 0.393, 1, "ICAO"], ["6.5x39mm" , 800, 100, 0.0689, -0.0009000, 3.81, 0, 0.338, 0.338, 120, 0, 0, 7.776, "B_65x39_Caseless" , "30Rnd_65x39_caseless_mag" , 0.263, 1, "ICAO"], ["5.56x45mm" , 920, 100, 0.0584, -0.0012650, 3.81, 0, 0.338, 0.338, 120, 0, 0, 4.000, "B_556x45_Ball" , "30Rnd_556x45_Stanag" , 0.304, 1, "ASM" ], ["5.56x45mm Mk262" , 850, 100, 0.0643, -0.0011250, 3.81, 0, 0.338, 0.338, 120, 0, 0, 4.990, "ACE_556x45_Ball_Mk262" , "ACE_30Rnd_556x45_Stanag_Mk262_mag", 0.361, 1, "ASM" ]]; diff --git a/addons/ballistics/CfgAmmo.hpp b/addons/ballistics/CfgAmmo.hpp index a0fa47c452..dfcd18aa52 100644 --- a/addons/ballistics/CfgAmmo.hpp +++ b/addons/ballistics/CfgAmmo.hpp @@ -181,7 +181,7 @@ class CfgAmmo { ACE_barrelLengths[]={16, 20, 24, 26}; }; class ACE_762x51_Ball_Mk319_Mod_0 : B_762x51_Ball { - airFriction=-0.0014; + airFriction=-0.00103; caliber=0.85; hit=14; typicalSpeed=890; @@ -189,7 +189,7 @@ class CfgAmmo { ACE_bulletLength=1.24; ACE_bulletMass=130; 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.277}; + ACE_ballisticCoefficients[]={0.377}; ACE_velocityBoundaries[]={}; ACE_standardAtmosphere="ICAO"; ACE_dragModel=1; From d68cc8f40e86e04996cc9977f677aca6e56fe0da Mon Sep 17 00:00:00 2001 From: commy2 <commy-2@gmx.de> Date: Wed, 15 Apr 2015 20:50:03 +0200 Subject: [PATCH 065/109] sync rallypoint marker on jip --- addons/respawn/CfgEventHandlers.hpp | 16 +++++----- .../respawn/functions/fnc_initRallypoint.sqf | 30 +++++++++++-------- .../respawn/functions/fnc_moveRallypoint.sqf | 2 +- .../functions/fnc_updateRallypoint.sqf | 5 ++-- 4 files changed, 29 insertions(+), 24 deletions(-) diff --git a/addons/respawn/CfgEventHandlers.hpp b/addons/respawn/CfgEventHandlers.hpp index 46ebd08657..00b6f01cea 100644 --- a/addons/respawn/CfgEventHandlers.hpp +++ b/addons/respawn/CfgEventHandlers.hpp @@ -30,45 +30,43 @@ class Extended_Respawn_EventHandlers { class Extended_Init_EventHandlers { class ACE_Rallypoint_West { class ADDON { - init = QUOTE((_this select 0) setFlagTexture '\A3\Data_F\Flags\Flag_nato_CO.paa'; [ARR_2(_this select 0,'')] call FUNC(initRallypoint)); + init = QUOTE((_this select 0) setFlagTexture '\A3\Data_F\Flags\Flag_nato_CO.paa'; [ARR_3(_this select 0,'',west)] call FUNC(initRallypoint)); }; }; class ACE_Rallypoint_East { class ADDON { - init = QUOTE((_this select 0) setFlagTexture '\A3\Data_F\Flags\Flag_CSAT_CO.paa'; [ARR_2(_this select 0,'')] call FUNC(initRallypoint)); + init = QUOTE((_this select 0) setFlagTexture '\A3\Data_F\Flags\Flag_CSAT_CO.paa'; [ARR_3(_this select 0,'',east)] call FUNC(initRallypoint)); }; }; class ACE_Rallypoint_Independent { class ADDON { - init = QUOTE((_this select 0) setFlagTexture '\A3\Data_F\Flags\Flag_AAF_CO.paa'; [ARR_2(_this select 0,'')] call FUNC(initRallypoint)); + init = QUOTE((_this select 0) setFlagTexture '\A3\Data_F\Flags\Flag_AAF_CO.paa'; [ARR_3(_this select 0,'',independent)] call FUNC(initRallypoint)); }; }; class ACE_Rallypoint_West_Base { class ADDON { - init = QUOTE((_this select 0) setFlagTexture '\A3\Data_F\Flags\Flag_nato_CO.paa'; [ARR_2(_this select 0,'respawn_west')] call FUNC(initRallypoint)); + init = QUOTE((_this select 0) setFlagTexture '\A3\Data_F\Flags\Flag_nato_CO.paa'; [ARR_3(_this select 0,'respawn_west',west)] call FUNC(initRallypoint)); }; }; class ACE_Rallypoint_East_Base { class ADDON { - init = QUOTE((_this select 0) setFlagTexture '\A3\Data_F\Flags\Flag_CSAT_CO.paa'; [ARR_2(_this select 0,'respawn_east')] call FUNC(initRallypoint)); + init = QUOTE((_this select 0) setFlagTexture '\A3\Data_F\Flags\Flag_CSAT_CO.paa'; [ARR_3(_this select 0,'respawn_east',east)] call FUNC(initRallypoint)); }; }; class ACE_Rallypoint_Independent_Base { class ADDON { - init = QUOTE((_this select 0) setFlagTexture '\A3\Data_F\Flags\Flag_AAF_CO.paa'; [ARR_2(_this select 0,'respawn_guerrila')] call FUNC(initRallypoint)); + init = QUOTE((_this select 0) setFlagTexture '\A3\Data_F\Flags\Flag_AAF_CO.paa'; [ARR_3(_this select 0,'respawn_guerrila',independent)] call FUNC(initRallypoint)); //respawn_civilian }; }; - - //respawn_civilian }; -// auto assign rallypoint leader class Extended_InitPost_EventHandlers { + // auto assign rallypoint leader class CAManBase { class ADDON { serverInit = QUOTE(_this call FUNC(handleInitPostServer)); diff --git a/addons/respawn/functions/fnc_initRallypoint.sqf b/addons/respawn/functions/fnc_initRallypoint.sqf index 81058614ed..44671b7c45 100644 --- a/addons/respawn/functions/fnc_initRallypoint.sqf +++ b/addons/respawn/functions/fnc_initRallypoint.sqf @@ -27,25 +27,31 @@ _name = typeOf _rallypoint; // init visible marker if (hasInterface) then { - private ["_marker", "_type"]; + // fix init having wrong position, vars etc. + [_rallypoint, _respawnMarker, _side, _name] spawn { + _rallypoint = _this select 0; + _respawnMarker = _this select 1; + _side = _this select 2; + _name = _this select 3; - _marker = format ["ACE_Marker_%1", _name]; + _marker = format ["ACE_Marker_%1", _name]; - // exit if it already exist - if (_marker in allMapMarkers) exitWith {}; + // exit if it already exist + if (_marker in allMapMarkers) exitWith {}; - _marker = createMarkerLocal [_marker, getPosASL _rallypoint]; - _type = ["selector_selectedFriendly", "selector_selectedEnemy"] select (_respawnMarker == ""); + _marker = createMarkerLocal [_marker, getPosASL _rallypoint]; + _type = ["selector_selectedFriendly", "selector_selectedEnemy"] select (_respawnMarker == ""); - _marker setMarkerTypeLocal _type; - _marker setMarkerAlphaLocal ([0,1] select (_side == playerSide)); // playerSide to guarantee init + _marker setMarkerTypeLocal _type; + _marker setMarkerAlphaLocal ([0,1] select (_side == playerSide)); // playerSide to guarantee init - private "_markerDate"; - _markerDate = _rallypoint getVariable [QGVAR(markerDate), ""]; + private "_markerDate"; + _markerDate = _rallypoint getVariable [QGVAR(markerDate), ""]; - _marker setMarkerTextLocal _markerDate; + _marker setMarkerTextLocal _markerDate; - _rallypoint setVariable [QGVAR(marker), _marker]; + _rallypoint setVariable [QGVAR(marker), _marker]; + }; }; if (!isServer) exitWith {}; diff --git a/addons/respawn/functions/fnc_moveRallypoint.sqf b/addons/respawn/functions/fnc_moveRallypoint.sqf index 2b008bf122..62d2742ef9 100644 --- a/addons/respawn/functions/fnc_moveRallypoint.sqf +++ b/addons/respawn/functions/fnc_moveRallypoint.sqf @@ -46,7 +46,7 @@ _this spawn { _rallypoint setVariable [QGVAR(markerDate), format ["%1:%2", date select 3, date select 4], true]; - ["rallypointMoved", [_rallypoint, _side]] call EFUNC(common,globalEvent); + ["rallypointMoved", [_rallypoint, _side, _position]] call EFUNC(common,globalEvent); [localize "STR_ACE_Respawn_Deployed"] call EFUNC(common,displayTextStructured); }; diff --git a/addons/respawn/functions/fnc_updateRallypoint.sqf b/addons/respawn/functions/fnc_updateRallypoint.sqf index 2510a58a30..248955155a 100644 --- a/addons/respawn/functions/fnc_updateRallypoint.sqf +++ b/addons/respawn/functions/fnc_updateRallypoint.sqf @@ -1,10 +1,11 @@ // by commy2 #include "script_component.hpp" -private ["_rallypoint", "_side"]; +private ["_rallypoint", "_side", "_position"]; _rallypoint = _this select 0; _side = _this select 1; +_position = _this select 2; if (!hasInterface) exitWith {}; @@ -13,5 +14,5 @@ private ["_marker", "_markerDate"]; _marker = _rallypoint getVariable [QGVAR(marker), ""]; _markerDate = _rallypoint getVariable [QGVAR(markerDate), ""]; -_marker setMarkerPosLocal getPosASL _rallypoint; +_marker setMarkerPosLocal _position; _marker setMarkerTextLocal _markerDate; From fa14befe63774c4e2e6d16b6b85cc299e02f8f27 Mon Sep 17 00:00:00 2001 From: Clon1998 <ps.patti1998@gmail.com> Date: Wed, 15 Apr 2015 20:51:29 +0200 Subject: [PATCH 066/109] Update AUTHORS.txt Added my self to the # CONTRIBUTORS --- AUTHORS.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS.txt b/AUTHORS.txt index e2930ee461..fa47b6a427 100644 --- a/AUTHORS.txt +++ b/AUTHORS.txt @@ -33,6 +33,7 @@ Aggr094 <bastards4glory@gmail.com> Anthariel <Contact@storm-simulation.com> BlackQwar Brakoviejo +Clon1998 <ps.patti1998@gmail.com> Codingboy Crusty eRazeri From 550c32e801ff7e2a0483db52ddcad052ccd4d1ef Mon Sep 17 00:00:00 2001 From: FreeZbe <FreeZbe@users.noreply.github.com> Date: Wed, 15 Apr 2015 20:53:41 +0200 Subject: [PATCH 067/109] French : update stringtable --- addons/ballistics/stringtable.xml | 88 ++++++++++++++++++++++++++++++- 1 file changed, 86 insertions(+), 2 deletions(-) diff --git a/addons/ballistics/stringtable.xml b/addons/ballistics/stringtable.xml index 4786555236..d47bec4c63 100644 --- a/addons/ballistics/stringtable.xml +++ b/addons/ballistics/stringtable.xml @@ -443,360 +443,444 @@ <English>.338 NM 130Rnd Tracer Belt</English> <German>.338 NM 130-Schuss-Gurt Leuchtspur</German> <Polish>Taśma .338 NM 130rd Smugacz</Polish> + <French>Bande .338 NM 130Cps Traçante</French> </Key> <Key ID="STR_ACE_130Rnd_338_Mag_TracerNameShort"> <English>.338 NM Tracer</English> <German>.338 NM Leuchtspur</German> <Polish>.338 NM Tracer</Polish> <Czech>.338 NM Svítící</Czech> + <French>.338 NM Traçante</French> </Key> <Key ID="STR_ACE_130Rnd_338_Mag_TracerDescription"> <English>Caliber: .338 Norma Magnum Tracer<br />Rounds: 130<br />Used in: SPMG</English> <German>Kaliber: .338 Norma Magnum Leuchtspur<br />Schuss: 130<br />Verwendet für: SPMG</German> <Polish>Kaliber: .338 Norma Magnum Smugacz<br />Pociski: 130<br />Używany w: SPMG</Polish> + <French>Calibre: .338 Norma Magnum Traçante<br />Cartouches: 130<br />Utilisé dans: SPMG</French> </Key> <Key ID="STR_ACE_130Rnd_338_Mag_Tracer_DimName"> <English>.338 NM 130Rnd IR-DIM Belt</English> <German>.338 NM 130-Schuss-Gurt Leuchtspur IR-DIM</German> <Polish>Taśma .338 NM 130rd IR-DIM</Polish> + <French>Bande .338 NM 130Cps IR-DIM</French> </Key> <Key ID="STR_ACE_130Rnd_338_Mag_Tracer_DimNameShort"> <English>.338 NM IR-DIM</English> <German>.338 LM IR-DIM</German> <Polish>.338 NM IR-DIM</Polish> <Czech>.338 NM IR-DIM</Czech> + <French>.338 NM IR-DIM</French> </Key> <Key ID="STR_ACE_130Rnd_338_Mag_Tracer_DimDescription"> <English>Caliber: .338 Norma Magnum Tracer IR-DIM<br />Rounds: 130<br />Used in: SPMG</English> <German>Kaliber: .338 Norma Magnum Leuchtspur IR-DIM<br />Schuss: 130<br />Verwendet für: SPMG</German> <Polish>Kaliber: .338 Norma Magnum Smugacz IR-DIM<br />Pociski: 130<br />Używany w: SPMG</Polish> + <French>Calibre: .338 Norma Magnum Traçante IR-DIM<br />Cartouches: 130<br />Utilisé dans: SPMG</French> </Key> <Key ID="STR_ACE_130Rnd_338_Mag_APName"> <English>.338 NM 130Rnd AP Belt</English> <German>.338 NM 130-Schuss-Gurt Hartkern</German> <Polish>Taśma .338 NM 130rd AP</Polish> + <French>Bande .338 NM 130Cps AP</French> </Key> <Key ID="STR_ACE_130Rnd_338_Mag_APNameShort"> <English>.338 NM AP</English> <German>.338 NM AP</German> <Polish>.338 NM AP</Polish> <Czech>.338 NM AP</Czech> + <French>.338 NM AP</French> </Key> <Key ID="STR_ACE_130Rnd_338_Mag_APDescription"> <English>Caliber: .338 Norma Magnum AP<br />Rounds: 130<br />Used in: SPMG</English> <German>Kaliber: .338 Norma Magnum Hartkern<br />Schuss: 130<br />Verwendet für: SPMG</German> <Polish>Kaliber: .338 Norma Magnum AP<br />Pociski: 130<br />Używane w: SPMG</Polish> + <French>Calibre: .338 Norma Magnum AP<br />Cartouches: 130<br />Utilisé dans: SPMG</French> </Key> <!-- 9.3x64mm 10Rnd --> <Key ID="STR_ACE_10Rnd_93x64_DMR_05_Mag_TracerName"> <English>9.3mm 10Rnd Tracer Mag</English> <German>9,3mm 10-Schuss-Magazin Leuchtspur</German> <Polish>Magazynek 9.3mm 10rd Smugacz</Polish> + <French>Chargeur 9.3mm 10Cps Traçante</French> </Key> <Key ID="STR_ACE_10Rnd_93x64_DMR_05_Mag_TracerNameShort"> <English>9.3mm Tracer</English> <German>9,3mm Leuchtspur</German> <Polish>9,3mm Smugacz</Polish> <Czech>9.3mm Svítící</Czech> + <French>9.3mm Traçante</French> </Key> <Key ID="STR_ACE_10Rnd_93x64_DMR_05_Mag_TracerDescription"> <English>Caliber: 9.3x64mm Tracer<br />Rounds: 10<br />Used in: Cyrus</English> <German>Kaliber: 9,3x64mm Leuchtspur<br />Schuss: 10<br />Verwendet für: Cyrus</German> <Polish>Kaliber: 9,3x64 mm Smugacz<br />Pociski: 10<br />Używany w: Cyrus</Polish> + <French>Calibre: 9.3x64mm Traçante<br />Cartouches: 10<br />Utilisé dans: Cyrus</French> </Key> <Key ID="STR_ACE_10Rnd_93x64_DMR_05_Mag_Tracer_DimName"> <English>9.3mm 10Rnd Tracer IR-DIM Mag</English> <German>9,3mm 10-Schuss-Magazin Leuchtspur IR-DIM</German> <Polish>Magazynek 9,3mm 10rd Smugacz IR-DIM</Polish> + <French>Chargeur 9.3mm 10Cps Traçante IR-DIM</French> </Key> <Key ID="STR_ACE_10Rnd_93x64_DMR_05_Mag_Tracer_DimNameShort"> <English>9.3mm IR-DIM</English> <German>9,3mm IR-DIM</German> <Polish>9,3mm IR-DIM</Polish> <Czech>9.3mm IR-DIM</Czech> + <French>9.3mm IR-DIM</French> </Key> <Key ID="STR_ACE_10Rnd_93x64_DMR_05_Mag_Tracer_DimDescription"> <English>Caliber: 9.3x64mm Tracer IR-DIM<br />Rounds: 10<br />Used in: Cyrus</English> <German>Kaliber: 9,3x64mm Leuchtspur IR-DIM<br />Schuss: 10<br />Verwendet für: Cyrus</German> <Polish>Kaliber: 9,3x64 mm Smugacz IR-DIM<br />Pociski: 10<br />Używany w: Cyrus</Polish> + <French>Calibre: 9.3x64mm Traçante IR-DIM<br />Cartouches: 10<br />Utilisé dans: Cyrus</French> </Key> <Key ID="STR_ACE_10Rnd_93x64_DMR_05_Mag_APName"> <English>9.3mm 10Rnd AP Mag</English> <German>9,3mm 10-Schuss-Magazin Hartkern</German> <Polish>Magazynek 9,3mm 10rd AP</Polish> + <French>Chargeur 9.3mm 10Cps AP</French> </Key> <Key ID="STR_ACE_10Rnd_93x64_DMR_05_Mag_APNameShort"> <English>9.3mm AP</English> <German>9,3mm AP</German> <Polish>9,3mm AP</Polish> <Czech>9.3mm AP</Czech> + <French>9.3mm AP</French> </Key> <Key ID="STR_ACE_10Rnd_93x64_DMR_05_Mag_APDescription"> <English>Caliber: 9.3x64mm AP<br />Rounds: 10<br />Used in: Cyrus</English> <German>Kaliber: 9,3x64mm Hartkern<br />Schuss: 10<br />Verwendet für: Cyrus</German> <Polish>Kaliber: 9,3x64 mm AP<br />Pociski: 10<br />Używany w: Cyrus</Polish> + <French>Calibre: 9.3x64mm AP<br />Cartouches: 10<br />Utilisé dans: Cyrus</French> </Key> <!-- 9.3x64mm 150Rnd Belt--> <Key ID="STR_ACE_150Rnd_93x64_Mag_TracerName"> <English>9.3mm 150Rnd Tracer Belt</English> <German>9,3mm 150-Schuss-Gurt Leuchtspur</German> <Polish>Taśma 9,3mm 150rd Smugacz</Polish> + <French>Bande 9.3mm 150Cps Traçante</French> </Key> <Key ID="STR_ACE_150Rnd_93x64_Mag_TracerNameShort"> <English>9.3mm Tracer</English> <German>9,3mm Leuchtspur</German> <Polish>9,3mm Smugacz</Polish> <Czech>9.3mm Svítící</Czech> + <French>9.3mm Traçante</French> </Key> <Key ID="STR_ACE_150Rnd_93x64_Mag_TracerDescription"> <English>Caliber: 9.3x64mm Tracer<br />Rounds: 150<br />Used in: Navid</English> <German>Kaliber: 9,3x64mm Leuchtspur<br />Schuss: 150<br />Verwendet für: Navid</German> <Polish>Kaliber: 9,3x64 mm Smugacz<br />Pociski: 150<br />Używane w: Navid</Polish> + <French>Calibre: 9.3x64mm Traçante<br />Cartouches: 150<br />Utilisé dans: Navid</French> </Key> <Key ID="STR_ACE_150Rnd_93x64_Mag_Tracer_DimName"> <English>9.3mm 150Rnd Tracer IR-DIM Belt</English> <German>9,3mm 150-Schuss-Gurt Leuchtspur IR-DIM</German> <Polish>Taśma 9,3mm 150rd Smugacz IR-DIM</Polish> + <French>Bande 9.3mm 150Cps Traçante IR-DIM</French> </Key> <Key ID="STR_ACE_150Rnd_93x64_Mag_Tracer_DimNameShort"> <English>9.3mm IR-DIM</English> <German>9,3mm IR-DIM</German> <Polish>9,3mm IR-DIM</Polish> <Czech>9.3mm IR-DIM</Czech> + <French>9.3mm IR-DIM</French> </Key> <Key ID="STR_ACE_150Rnd_93x64_Mag_Tracer_DimDescription"> <English>Caliber: 9.3x64mm Tracer IR-DIM<br />Rounds: 150<br />Used in: Navid</English> <German>Kaliber: 9,3x64mm Leuchtspur IR-DIM<br />Schuss: 150<br />Verwendet für: Navid</German> <Polish>Kaliber: 9,3x64 mm Smugacz IR-DIM<br />Pociski: 150<br />Używane w: Navid</Polish> + <French>Calibre: 9.3x64mm Traçante IR-DIM<br />Cartouches: 150<br />Utilisé dans: Navid</French> </Key> <Key ID="STR_ACE_150Rnd_93x64_Mag_APName"> <English>9.3mm 150Rnd AP Belt</English> <German>9,3mm 150-Schuss-Gurt Hartkern</German> <Polish>Taśma 9,3mm 150rd AP</Polish> + <French>Bande 9.3mm 150Cps AP</French> </Key> <Key ID="STR_ACE_150Rnd_93x64_Mag_APNameShort"> <English>9.3mm AP</English> <German>9,3mm AP</German> <Polish>9,3mm AP</Polish> <Czech>9.3mm AP</Czech> + <French>9.3mm AP</French> </Key> <Key ID="STR_ACE_150Rnd_93x64_Mag_APDescription"> <English>Caliber: 9.3x64mm AP<br />Rounds: 150<br />Used in: Navid</English> <German>Kaliber: 9,3x64mm Hartkern<br />Schuss: 150<br />Verwendet für: Navid</German> <Polish>Kaliber: 9,3x64 mm AP<br />Pociski: 150<br />Używane w: Navid</Polish> + <French>Calibre: 9.3x64mm AP<br />Cartouches: 150<br />Utilisé dans: Navid</French> </Key> <Key ID="STR_ACE_16Rnd_9x19_mag_Name"> <English>9x19mm 16Rnd Mag</English> <Polish>Magazynek 9x19mm 16rd</Polish> + <French>Chargeur 9x19mm 16Cps</French> </Key> <Key ID="STR_ACE_16Rnd_9x19_mag_NameShort"> <English>9x19mm</English> <Polish>9x19mm</Polish> + <French>9x19mm</French> </Key> <Key ID="STR_ACE_16Rnd_9x19_mag_Description"> - <English>9x19mm 16Rnd Mag</English> + <English>9x19mm 30Rnd Mag</English> <Polish>Magazynek 9x19mm 16rd</Polish> + <French>9x19mm 30Cps</French> </Key> <Key ID="STR_ACE_30Rnd_9x19_mag_Name"> <English>9x19mm 30Rnd Mag</English> <Polish>Magazynek 9x19mm 30rd</Polish> + <French>9x19mm 30Cps</French> </Key> <Key ID="STR_ACE_30Rnd_9x19_mag_NameShort"> <English>9x19mm</English> <Polish>9x19mm</Polish> + <French>9x19mm</French> </Key> <Key ID="STR_ACE_30Rnd_9x19_mag_Description"> <English>9x19mm 30Rnd Mag</English> <Polish>Magazynek 9x19mm 30rd</Polish> + <French>9x19mm 30Cps</French> </Key> <Key ID="STR_ACE_10Rnd_762x54_Tracer_mag_Name"> <English>7.62x54mm 10Rnd Tracer IR-DIM Mag</English> <Polish>Magazynek 7,62x54 mm 10rd Smugacz IR-DIM</Polish> + <French>Chargeur 7.62x54mm 10Rnd Traçante IR-DIM</French> </Key> <Key ID="STR_ACE_10Rnd_762x54_Tracer_mag_NameShort"> <English>7.62mm IR-DIM</English> <Polish>7,62mm IR-DIM</Polish> + <French>7.62mm IR-DIM</French> </Key> <Key ID="STR_ACE_10Rnd_762x54_Tracer_mag_Description"> <English>7.62x54mm 10Rnd Tracer IR-DIM Mag</English> <Polish>Magazynek 7,62x54 mm 10rd Smugacz IR-DIM</Polish> + <French>Chargeur 7.62x54mm 10Cps Traçante IR-DIM</French> </Key> <Key ID="STR_ACE_100Rnd_65x39_caseless_mag_Tracer_DimName"> <English>6.5mm 100Rnd Tracer IR-DIM Mag</English> <Polish>Magazynek 6,5mm 100rd Smugacz IR-DIM</Polish> + <French>Chargeur 6.5mm 100Rnd Traçante IR-DIM</French> </Key> <Key ID="STR_ACE_100Rnd_65x39_caseless_mag_Tracer_DimNameShort"> <English>6.5mm IR-DIM</English> <Polish>6,5mm IR-DIM</Polish> + <French>6.5mm IR-DIM</French> </Key> <Key ID="STR_ACE_100Rnd_65x39_caseless_mag_Tracer_DimDescription"> <English>6.5mm 100Rnd Tracer IR-DIM Mag</English> <Polish>Magazynek 6,5mm 100rd Smugacz IR-DIM</Polish> + <French>Chargeur 6.5mm 100Rnd Traçante IR-DIM</French> </Key> <Key ID="STR_ACE_200Rnd_65x39_cased_Box_Tracer_DimName"> <English>6.5mm 200Rnd Tracer IR-DIM Belt</English> <Polish>Magazynek 6,5mm 200rd Smugacz IR-DIM</Polish> + <French>Bande 6.5mm 200Rnd Traçante IR-DIM</French> </Key> <Key ID="STR_ACE_200Rnd_65x39_cased_Box_Tracer_DimNameShort"> <English>6.5mm IR-DIM</English> <Polish>6,5mm IR-DIM</Polish> + <French>6.5mm IR-DIM</French> </Key> <Key ID="STR_ACE_200Rnd_65x39_cased_Box_Tracer_DimDescription"> <English>6.5mm 200Rnd Tracer IR-DIM Belt</English> <Polish>Magazynek 6,5mm 200rd Smugacz IR-DIM</Polish> + <French>Bande 6.5mm 200Cps Traçante IR-DIM</French> </Key> <Key ID="STR_ACE_30Rnd_556x45_Stanag_Mk262_mag_Name"> <English>5.56mm 30Rnd Mag (Mk262)</English> <Polish>Magazynek 5,56mm 30rd Mk262</Polish> + <French>5.56mm 30Cps (Mk262)</French> </Key> <Key ID="STR_ACE_30Rnd_556x45_Stanag_Mk262_mag_NameShort"> <English>5.56mm Mk262</English> <Polish>5,56mm Mk262</Polish> + <French>5.56mm Mk262</French> </Key> <Key ID="STR_ACE_30Rnd_556x45_Stanag_Mk262_mag_Description"> <English>Caliber: 5.56x45 mm NATO (Mk262)<br />Rounds: 30</English> <Polish>Kaliber: 5,56x45 mm NATO (Mk262)<br />Pociski: 30</Polish> + <French>Calibre: 5.56x45 mm NATO (Mk262)<br />Cartouches: 30</French> </Key> <Key ID="STR_ACE_30Rnd_556x45_Stanag_Mk318_mag_Name"> <English>5.56mm 30Rnd Mag (Mk318)</English> <Polish>Magazynek 5,56mm 30rd Mk318</Polish> + <French>5.56mm 30Cps (Mk318)</French> </Key> <Key ID="STR_ACE_30Rnd_556x45_Stanag_Mk318_mag_NameShort"> <English>5.56mm Mk318</English> <Polish>5,56mm Mk318</Polish> + <French>5.56mm Mk318</French> </Key> <Key ID="STR_ACE_30Rnd_556x45_Stanag_Mk318_mag_Description"> <English>Caliber: 5.56x45 mm NATO (Mk318)<br />Rounds: 30</English> <Polish>Kaliber: 5,56x45 mm NATO (Mk318)<br />Pociski: 30</Polish> + <French>Calibre: 5.56x45 mm NATO (Mk318)<br />Cartouches: 30</French> </Key> <Key ID="STR_ACE_10Rnd_762x51_M118LR_Mag_Name"> <English>7.62mm 10Rnd Mag (M118LR)</English> <Polish>Magazynek 7,62mm 10rd (M118LR)</Polish> + <French>7.62mm 10Cps (M118LR)</French> </Key> <Key ID="STR_ACE_10Rnd_762x51_M118LR_Mag_NameShort"> <English>7.62mm M118LR</English> <Polish>7,62mm M118LR</Polish> + <French>7.62mm M118LR</French> </Key> <Key ID="STR_ACE_10Rnd_762x51_M118LR_Mag_Description"> <English>Caliber: 7.62x51 mm NATO (M118LR)<br />Rounds: 10</English> <Polish>Kaliber: 7,62x51 mm NATO (M118LR)<br />Pociski: 10</Polish> + <French>Calibre: 7.62x51 mm NATO (M118LR)<br />Cartouches: 10</French> </Key> <Key ID="STR_ACE_20Rnd_762x51_M118LR_Mag_Name"> <English>7.62mm 20Rnd Mag (M118LR)</English> <Polish>Magazynek 7,62mm 20rd (M118LR)</Polish> + <French>7.62mm 20Cps (M118LR)</French> </Key> <Key ID="STR_ACE_20Rnd_762x51_M118LR_Mag_NameShort"> <English>7.62mm M118LR</English> <Polish>7,62mm M118LR</Polish> + <French>7.62mm M118LR</French> </Key> <Key ID="STR_ACE_20Rnd_762x51_M118LR_Mag_Description"> <English>Caliber: 7.62x51 mm NATO (M118LR)<br />Rounds: 20</English> <Polish>Kaliber: 7,62x51 mm NATO (M118LR)<br />Pociski: 20</Polish> + <French>Calibre: 7.62x51 mm NATO (M118LR)<br />Cartouches: 20</French> </Key> <Key ID="STR_ACE_10Rnd_762x51_Mk319_Mod_0_Mag_Name"> <English>7.62mm 10Rnd Mag (Mk319 Mod 0)</English> <Polish>Magazynek 7,62mm 10rd (Mk319 Mod 0)</Polish> + <French>7.62mm 10Cps (Mk319 Mod 0)</French> </Key> <Key ID="STR_ACE_10Rnd_762x51_Mk319_Mod_0_Mag_NameShort"> <English>7.62mm Mk319</English> <Polish>7,62mm Mk319</Polish> + <French>7.62mm Mk319</French> </Key> <Key ID="STR_ACE_10Rnd_762x51_Mk319_Mod_0_Mag_Description"> <English>Caliber: 7.62x51 mm NATO (Mk319 Mod 0)<br />Rounds: 10</English> <Polish>Kaliber: 7,62x51 mm NATO (Mk319 Mod 0)<br />Pociski: 10</Polish> + <French>Calibre: 7.62x51 mm NATO (Mk319 Mod 0)<br />Cartouches: 10</French> </Key> <Key ID="STR_ACE_20Rnd_762x51_Mk319_Mod_0_Mag_Name"> <English>7.62mm 20Rnd Mag (Mk319 Mod 0)</English> <Polish>Magazynek 7,62mm 20rd (Mk319 Mod 0)</Polish> + <French>7.62mm 20Cps (Mk319 Mod 0)</French> </Key> <Key ID="STR_ACE_20Rnd_762x51_Mk319_Mod_0_Mag_NameShort"> <English>7.62mm Mk319</English> <Polish>7,62mm Mk319</Polish> + <French>7.62mm Mk319</French> </Key> <Key ID="STR_ACE_20Rnd_762x51_Mk319_Mod_0_Mag_Description"> <English>Caliber: 7.62x51 mm NATO (Mk319 Mod 0)<br />Rounds: 20</English> <Polish>Kaliber: 7,62x51 mm NATO (Mk319 Mod 0)<br />Pociski: 20</Polish> + <French>Calibre: 7.62x51 mm NATO (Mk319 Mod 0)<br />Cartouches: 20</French> </Key> <Key ID="STR_ACE_20Rnd_762x67_Mk248_Mod_0_Mag_Name"> <English>7.62mm 20Rnd Mag (Mk248 Mod 0)</English> <Polish>Magazynek 7,62mm 20rd (Mk248 Mod 0)</Polish> + <French>7.62mm 20Cps (Mk248 Mod 0)</French> </Key> <Key ID="STR_ACE_20Rnd_762x67_Mk248_Mod_0_Mag_NameShort"> <English>7.62mm (Mk248 Mod 0)</English> <Polish>7,62mm (Mk248 Mod 0)</Polish> + <French>7.62mm (Mk248 Mod 0)</French> </Key> <Key ID="STR_ACE_20Rnd_762x67_Mk248_Mod_0_Mag_Description"> <English>Caliber: 7.62x67 mm NATO (Mk248 Mod 0)<br />Rounds: 20</English> - <Polish>Kaliber: 7,62x51 mm NATO (Mk248 Mod 0)<br />Pociski: 20</Polish> + <Polish>Kaliber: 7,62x67 mm NATO (Mk248 Mod 0)<br />Pociski: 20</Polish> + <French>Calibre: 7.62x67mm NATO (Mk248 Mod 0)<br />Cartouches: 20</French> </Key> <Key ID="STR_ACE_20Rnd_762x67_Mk248_Mod_1_Mag_Name"> <English>7.62mm 20Rnd Mag (Mk248 Mod 1)</English> <Polish>Magazynek 7,62mm 20rd (Mk248 Mod 1)</Polish> + <French>7.62mm 20Cps (Mk248 Mod 1)</French> </Key> <Key ID="STR_ACE_20Rnd_762x67_Mk248_Mod_1_Mag_NameShort"> <English>7.62mm (Mk248 Mod 1)</English> <Polish>7,62mm (Mk248 Mod 1)</Polish> + <French>7.62mm (Mk248 Mod 1)</French> </Key> <Key ID="STR_ACE_20Rnd_762x67_Mk248_Mod_1_Mag_Description"> <English>Caliber: 7.62x67 mm NATO (Mk248 Mod 1)<br />Rounds: 20</English> <Polish>Kaliber: 7,62x67 mm NATO (Mk248 Mod 1)<br />Pociski: 20</Polish> + <French>Calibre: 7.62x67mm NATO (Mk248 Mod 1)<br />Cartouches: 20</French> </Key> <Key ID="STR_ACE_20Rnd_762x67_Berger_Hybrid_OTM_Mag_Name"> <English>7.62mm 20Rnd Mag (Berger Hybrid OTM)</English> <Polish>Magazynek 7,62mm 20rd (Berger Hybrid OTM)</Polish> + <French>7.62 20Cps (Berger Hybrid OTM)</French> </Key> <Key ID="STR_ACE_20Rnd_762x67_Berger_Hybrid_OTM_Mag_NameShort"> <English>7.62mm (OTM)</English> <Polish>7,62mm (OTM)</Polish> + <French>7.62mm (OTM)</French> </Key> <Key ID="STR_ACE_20Rnd_762x67_Berger_Hybrid_OTM_Mag_Description"> <English>Caliber: 7.62x67 mm NATO (Berger Hybrid OTM)<br />Rounds: 20</English> <Polish>Kaliber: 7,62x67 mm NATO (Berger Hybrid OTM)<br />Pociski: 20</Polish> + <French>Calibre: 7.62x67mm NATO (Berger Hybrid OTM)<br />Cartouches: 20</French> </Key> <Key ID="STR_ACE_30Rnd_65x47_Scenar_mag_Name"> <English>6.5x47mm 30Rnd Mag (HPBT Scenar)</English> + <French>6.5x47mm 30Cps (HPBT Scenar)</French> </Key> <Key ID="STR_ACE_30Rnd_65x47_Scenar_mag_NameShort"> <English>6.5mm Scenar</English> + <French>6.5mm Scenar</French> </Key> <Key ID="STR_ACE_30Rnd_65x47_Scenar_mag_Description"> <English>Caliber: 6.5x47mm (HPBT Scenar)<br />Rounds: 30</English> + <French>Calibre: 6.5x47mm (HPBT Scenar)<br />Cartouches: 30</French> </Key> <Key ID="STR_ACE_10Rnd_338_300gr_HPBT_Mag_Name"> <English>.338 10Rnd Mag (300gr Sierra MatchKing HPBT)</English> + <French>.338 10 Cps (300gr Sierra MatchKing HPBT)</French> </Key> <Key ID="STR_ACE_10Rnd_338_300gr_HPBT_Mag_NameShort"> <English>.338 (HPBT)</English> + <French>.338 (HPBT)</French> </Key> <Key ID="STR_ACE_10Rnd_338_300gr_HPBT_Mag_Description"> <English>Caliber: 8.6x70mm (300gr Sierra MatchKing HPBT)<br />Rounds: 10</English> + <French>Calibre: 8.6x70mm (300gr Sierra MatchKing HPBT)<br />Cartouches: 10</French> </Key> <Key ID="STR_ACE_10Rnd_338_API526_Mag_Name"> <English>.338 10Rnd Mag (API526)</English> + <French>.338 10Cps (API526)</French> </Key> <Key ID="STR_ACE_10Rnd_338_API526_Mag_NameShort"> <English>.338 AP</English> + <French>.338 AP</French> </Key> <Key ID="STR_ACE_10Rnd_338_API526_Mag_Description"> <English>Caliber: 8.6x70mm (API526)<br />Rounds: 10</English> + <French>Calibre: 8.6x70mm (API526)<br />Cartouches: 10</French> </Key> <Key ID="STR_ACE_5Rnd_127x99_Mag_Name"> <English>12.7x99mm 5Rnd Mag</English> + <French>12.7x99mm 5Cps</French> </Key> <Key ID="STR_ACE_5Rnd_127x99_Mag_NameShort"> <English>12.7mm</English> + <French>12.7mm</French> </Key> <Key ID="STR_ACE_5Rnd_127x99_Mag_Description"> <English>Caliber: 12.7x99mm<br />Rounds: 5</English> + <French>Calibre: 12.7x99mm<br />Cartouches: 5</French> </Key> <Key ID="STR_ACE_5Rnd_127x99_AMAX_Mag_Name"> <English>12.7x99mm 5Rnd Mag (AMAX)</English> + <French>12.7x99mm 5Rnd Mag (AMAX)</French> </Key> <Key ID="STR_ACE_5Rnd_127x99_AMAX_Mag_NameShort"> <English>12.7mm</English> + <French>12.7mm</French> </Key> <Key ID="STR_ACE_5Rnd_127x99_AMAX_Mag_Description"> <English>Caliber: 12.7x99mm (AMAX)<br />Rounds: 5</English> + <French>Calibre: 12.7x99mm (AMAX)<br />Cartouches: 5</French> </Key> </Package> </Project> From 5bcb0ec4930cf08f0d9bfeb3e4874edfc1dccadf Mon Sep 17 00:00:00 2001 From: jaynus <jaynus@gmail.com> Date: Wed, 15 Apr 2015 12:09:47 -0700 Subject: [PATCH 068/109] Forgot to set terminal on short-range attacks. Fixes #630 --- .../functions/fnc_attackProfile_JAV_TOP.sqf | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/addons/missileguidance/functions/fnc_attackProfile_JAV_TOP.sqf b/addons/missileguidance/functions/fnc_attackProfile_JAV_TOP.sqf index fd86c2bf03..6b15a3e20a 100644 --- a/addons/missileguidance/functions/fnc_attackProfile_JAV_TOP.sqf +++ b/addons/missileguidance/functions/fnc_attackProfile_JAV_TOP.sqf @@ -48,9 +48,12 @@ switch( (_state select 0) ) do { _cruisAlt = 140 * (_distanceShooterToTarget/1250); TRACE_1("_cruisAlt", _cruisAlt); }; - if( ((ASLToATL _projectilePos) select 2) - ((ASLToATL _seekerTargetPos) select 2) >= _cruisAlt) then { - _state set[0, STAGE_COAST]; + if(_cruisAlt < 140) then { + _state set[0, STAGE_TERMINAL]; + } else { + _state set[0, STAGE_COAST]; + }; } else { _returnTargetPos = _seekerTargetPos vectorAdd [0,0,_distanceToTarget*2]; }; From c0dbf10971277d1ced73550ba1df852622f11b4f Mon Sep 17 00:00:00 2001 From: FreeZbe <FreeZbe@users.noreply.github.com> Date: Wed, 15 Apr 2015 21:14:00 +0200 Subject: [PATCH 069/109] French : update stringtable --- addons/kestrel4500/stringtable.xml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/addons/kestrel4500/stringtable.xml b/addons/kestrel4500/stringtable.xml index 3a0e18b9e5..bd9133f625 100644 --- a/addons/kestrel4500/stringtable.xml +++ b/addons/kestrel4500/stringtable.xml @@ -18,32 +18,38 @@ <English>Kestrel 4500 Pocket Weather Tracker</English> <Polish>Anemomentr skrzydełkowy Kestrel 4500</Polish> <Russian>Карманная метеостанция Kestrel 4500NV</Russian> + <French>Station météo portable Kestrel 4500</French> </Key> <Key ID="STR_ACE_Kestrel4500_OpenKestrel"> <English>Open Kestrel 4500</English> <Polish>Otwórz Kestrel 4500</Polish> <Hungarian>Kestrel 4500 elővétele</Hungarian> <Russian>Открыть Kestrel 4500NV</Russian> + <French>Ouvrir Kestrel 4500</French> </Key> <Key ID="STR_ACE_Kestrel4500_ShowKestrel"> <English>Show Kestrel 4500</English> <Polish>Pokaż Kestrel 4500</Polish> <Russian>Показать Kestrel 4500NV</Russian> + <French>Afficher Kestrel 4500</French> </Key> <Key ID="STR_ACE_Kestrel4500_HideKestrel"> <English>Hide Kestrel 4500</English> <Polish>Ukryj Kestrel 4500</Polish> <Russian>Убрать Kestrel 4500NV</Russian> + <French>Cacher Kestrel 4500</French> </Key> <Key ID="STR_ACE_Kestrel4500_KestrelDialogKey"> <English>Open Kestrel 4500</English> <Polish>Otwórz Kestrel 4500</Polish> <Russian>Открыть Kestrel 4500NV</Russian> + <French>Ouvrir Kestrel 4500</French> </Key> <Key ID="STR_ACE_Kestrel4500_DisplayKestrelKey"> <English>Show Kestrel 4500</English> <Polish>Pokaż Kestrel 4500</Polish> <Russian>Показать Kestrel 4500NV</Russian> + <French>Afficher Kestrel 4500</French> </Key> </Package> </Project> From df61f5c995df9227e4be9ad3150dda395b44e9ae Mon Sep 17 00:00:00 2001 From: FreeZbe <FreeZbe@users.noreply.github.com> Date: Wed, 15 Apr 2015 21:15:57 +0200 Subject: [PATCH 070/109] French : update stringtable --- addons/interact_menu/stringtable.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/addons/interact_menu/stringtable.xml b/addons/interact_menu/stringtable.xml index 8960f99e60..4a763e4fa9 100644 --- a/addons/interact_menu/stringtable.xml +++ b/addons/interact_menu/stringtable.xml @@ -15,6 +15,7 @@ <English>Display interaction menus as lists</English> <Spanish>Mostrar los menus de interacción como listas</Spanish> <Russian>Показывать меню взаимодействия в виде списка</Russian> + <French>Afficher le menu d'interaction au format liste</French> </Key> <Key ID="STR_ACE_Interact_Menu_InteractKey"> <English>Interact Key</English> From 56f6c60e1af394dfeb3b51c22f151ccb91964d6f Mon Sep 17 00:00:00 2001 From: FreeZbe <FreeZbe@users.noreply.github.com> Date: Wed, 15 Apr 2015 21:17:35 +0200 Subject: [PATCH 071/109] French : update stringtable --- addons/weather/stringtable.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/addons/weather/stringtable.xml b/addons/weather/stringtable.xml index 85b1e96383..46a0653269 100644 --- a/addons/weather/stringtable.xml +++ b/addons/weather/stringtable.xml @@ -6,6 +6,7 @@ <English>Show Wind Info</English> <Polish>Pokaż inf. o wietrze</Polish> <Russian>Показать информацию о погоде</Russian> + <French>Afficher information du vent</French> </Key> </Package> </Project> From 18c65108c3421e23ef96caec1d0e160937cd95ff Mon Sep 17 00:00:00 2001 From: FreeZbe <FreeZbe@users.noreply.github.com> Date: Wed, 15 Apr 2015 21:24:24 +0200 Subject: [PATCH 072/109] French : update stringtable --- addons/laserpointer/stringtable.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/addons/laserpointer/stringtable.xml b/addons/laserpointer/stringtable.xml index eb328e5997..cf4dd742b0 100644 --- a/addons/laserpointer/stringtable.xml +++ b/addons/laserpointer/stringtable.xml @@ -48,18 +48,21 @@ <German>Laser</German> <Polish>Laser</Polish> <Russian>Лазер</Russian> + <French>Laser</French> </Key> <Key ID="STR_ACE_Laserpointer_IRLaser"> <English>IR Laser</English> <German>IR-Laser</German> <Polish>Laser IR</Polish> <Russian>ИК-лазер</Russian> + <French>Laser IR</French> </Key> <Key ID="STR_ACE_Laserpointer_switchLaserLight"> <English>Switch Laser / IR Laser</English> <German>Umschalten Laser / IR-Laser</German> <Polish>Przełącz Laser / Laser IR</Polish> <Russian>Изменить режим Лазер / ИК-лазер</Russian> + <French>Changer Laser / Laser IR</French> </Key> </Package> </Project> From 10cf02e8569dc4305daa7aca8b496198b82f3534 Mon Sep 17 00:00:00 2001 From: jaynus <jaynus@gmail.com> Date: Wed, 15 Apr 2015 12:25:57 -0700 Subject: [PATCH 073/109] Slower climb phase.Refs #630 --- .../missileguidance/functions/fnc_attackProfile_JAV_DIR.sqf | 4 ++-- .../missileguidance/functions/fnc_attackProfile_JAV_TOP.sqf | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/addons/missileguidance/functions/fnc_attackProfile_JAV_DIR.sqf b/addons/missileguidance/functions/fnc_attackProfile_JAV_DIR.sqf index 822afd7f1b..ecb469527a 100644 --- a/addons/missileguidance/functions/fnc_attackProfile_JAV_DIR.sqf +++ b/addons/missileguidance/functions/fnc_attackProfile_JAV_DIR.sqf @@ -48,12 +48,12 @@ switch( (_state select 0) ) do { if( ((ASLToATL _projectilePos) select 2) - ((ASLToATL _seekerTargetPos) select 2) >= _cruisAlt) then { _state set[0, STAGE_TERMINAL]; } else { - _returnTargetPos = _seekerTargetPos vectorAdd [0,0,_distanceToTarget*2]; + _returnTargetPos = _seekerTargetPos vectorAdd [0,0,_distanceToTarget*1.5]; }; }; case STAGE_TERMINAL: { TRACE_1("STAGE_TERMINAL",""); - //_returnTargetPos = _seekerTargetPos vectorAdd [0,0,_distanceToTarget * 0.02]; + _returnTargetPos = _seekerTargetPos vectorAdd [0,0,_distanceToTarget * 0.002]; }; }; diff --git a/addons/missileguidance/functions/fnc_attackProfile_JAV_TOP.sqf b/addons/missileguidance/functions/fnc_attackProfile_JAV_TOP.sqf index 6b15a3e20a..c5933e6df9 100644 --- a/addons/missileguidance/functions/fnc_attackProfile_JAV_TOP.sqf +++ b/addons/missileguidance/functions/fnc_attackProfile_JAV_TOP.sqf @@ -55,7 +55,7 @@ switch( (_state select 0) ) do { _state set[0, STAGE_COAST]; }; } else { - _returnTargetPos = _seekerTargetPos vectorAdd [0,0,_distanceToTarget*2]; + _returnTargetPos = _seekerTargetPos vectorAdd [0,0,_distanceToTarget*1.5]; }; }; case STAGE_COAST: { @@ -70,6 +70,7 @@ switch( (_state select 0) ) do { case STAGE_TERMINAL: { TRACE_1("STAGE_TERMINAL",""); //_returnTargetPos = _seekerTargetPos vectorAdd [0,0,_distanceToTarget * 0.02]; + _returnTargetPos = _seekerTargetPos vectorAdd [0,0,_distanceToTarget * 0.002]; }; }; From 5a7ad8217064ab3333c49f918668ac646972fb3a Mon Sep 17 00:00:00 2001 From: FreeZbe <FreeZbe@users.noreply.github.com> Date: Wed, 15 Apr 2015 21:26:12 +0200 Subject: [PATCH 074/109] French : update stringtable --- addons/advanced_ballistics/stringtable.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/addons/advanced_ballistics/stringtable.xml b/addons/advanced_ballistics/stringtable.xml index b0a6e97f34..badba32960 100644 --- a/addons/advanced_ballistics/stringtable.xml +++ b/addons/advanced_ballistics/stringtable.xml @@ -7,12 +7,14 @@ <Polish>Pokaż inf. o wietrze</Polish> <Italian>Mostra indicazioni del vento</Italian> <Russian>Показать информацию о ветре</Russian> + <French>Afficher les info du vent</French> </Key> <Key ID="STR_ACE_AdvancedBallistics_ProtractorKey"> <English>Show Protractor</English> <Polish>Pokaż kątomierz</Polish> <Italian>Mostra il rapportatore</Italian> <Russian>Показать транспортир</Russian> + <French>Afficher le rapporteur</French> </Key> </Package> </Project> From 6f6d080dbdea800fc81015978669acb2841ddcfa Mon Sep 17 00:00:00 2001 From: commy2 <commy-2@gmx.de> Date: Wed, 15 Apr 2015 22:16:54 +0200 Subject: [PATCH 075/109] port inject sound --- addons/medical/sounds/Inject.ogg | Bin 0 -> 30817 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 addons/medical/sounds/Inject.ogg diff --git a/addons/medical/sounds/Inject.ogg b/addons/medical/sounds/Inject.ogg new file mode 100644 index 0000000000000000000000000000000000000000..8418078e0f65f738b3bc5ded07cb9b17e8711ced GIT binary patch literal 30817 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 literal 0 HcmV?d00001 From fb3ba51fe535fcb657b9d4d969fe4ea6f8aca597 Mon Sep 17 00:00:00 2001 From: commy2 <commy-2@gmx.de> Date: Wed, 15 Apr 2015 22:19:43 +0200 Subject: [PATCH 076/109] port alternative wirecutter sound --- addons/logistics_wirecutter/sound/wirecut.ogg | Bin 0 -> 5488 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 addons/logistics_wirecutter/sound/wirecut.ogg diff --git a/addons/logistics_wirecutter/sound/wirecut.ogg b/addons/logistics_wirecutter/sound/wirecut.ogg new file mode 100644 index 0000000000000000000000000000000000000000..902488c1df6ea5076598a31c3df9f62a78975eaa GIT binary patch literal 5488 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 literal 0 HcmV?d00001 From 60c54733cc70ff25e2a6260c37b4d076423d14ce Mon Sep 17 00:00:00 2001 From: ulteq <ulteq@web.de> Date: Wed, 15 Apr 2015 22:49:47 +0200 Subject: [PATCH 077/109] Polished the ammo classes some more --- addons/ballistics/CfgAmmo.hpp | 127 +++++++++++++++++----------------- 1 file changed, 62 insertions(+), 65 deletions(-) diff --git a/addons/ballistics/CfgAmmo.hpp b/addons/ballistics/CfgAmmo.hpp index dfcd18aa52..1a783de813 100644 --- a/addons/ballistics/CfgAmmo.hpp +++ b/addons/ballistics/CfgAmmo.hpp @@ -85,7 +85,7 @@ class CfgAmmo { 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_standardAtmosphere="ICAO"; ACE_dragModel=7; ACE_muzzleVelocities[]={780, 880, 920}; ACE_barrelLengths[]={10, 16.3, 20}; @@ -103,13 +103,13 @@ class CfgAmmo { 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_standardAtmosphere="ICAO"; ACE_dragModel=7; ACE_muzzleVelocities[]={785, 883, 925}; ACE_barrelLengths[]={10, 16.3, 20}; }; class B_65x39_Caseless : BulletBase { - airFriction=-0.000772; + airFriction=-0.000785; typicalSpeed=800; ACE_caliber=0.264; ACE_bulletLength=1.295; @@ -142,8 +142,8 @@ class CfgAmmo { ACE_velocityBoundaries[]={}; ACE_standardAtmosphere="ICAO"; ACE_dragModel=7; - ACE_muzzleVelocities[]={760, 790, 820, 830}; - ACE_barrelLengths[]={16, 20, 24, 26}; + ACE_muzzleVelocities[]={730, 760, 790, 820, 830}; + ACE_barrelLengths[]={10, 16, 20, 24, 26}; }; class B_762x51_Ball : BulletBase { airFriction=-0.001035; @@ -173,10 +173,10 @@ class CfgAmmo { 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.505, 0.496, 0.485, 0.485, 0.485}; - ACE_velocityBoundaries[]={853, 549, 549, 549}; + ACE_ballisticCoefficients[]={0.243}; + ACE_velocityBoundaries[]={}; ACE_standardAtmosphere="ICAO"; - ACE_dragModel=1; + ACE_dragModel=7; ACE_muzzleVelocities[]={750, 780, 790, 794}; ACE_barrelLengths[]={16, 20, 24, 26}; }; @@ -196,57 +196,6 @@ class CfgAmmo { ACE_muzzleVelocities[]={838, 892, 910}; ACE_barrelLengths[]={13, 16, 20}; }; - class ACE_762x67_Ball_Mk248_Mod_0 : B_762x51_Ball - { - airFriction=-0.000830; - caliber=1.08; - hit=17; - typicalSpeed=900; - 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_ballisticCoefficients[]={0.268}; - ACE_velocityBoundaries[]={}; - ACE_standardAtmosphere="ICAO"; - ACE_dragModel=7; - ACE_muzzleVelocities[]={865, 900, 924}; - ACE_barrelLengths[]={20, 24, 26}; - }; - class ACE_762x67_Ball_Mk248_Mod_1 : B_762x51_Ball - { - airFriction=-0.000815; - caliber=1.12; - hit=18; - typicalSpeed=867; - 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 ACE_762x67_Ball_Berger_Hybrid_OTM : B_762x51_Ball - { - airFriction=-0.00076; - caliber=1.15; - hit=19; - typicalSpeed=853; - ACE_caliber=0.308; - ACE_bulletLength=1.602; - ACE_bulletMass=230; - 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[]={}; - ACE_standardAtmosphere="ICAO"; - ACE_dragModel=7; - ACE_muzzleVelocities[]={800, 853, 884}; - ACE_barrelLengths[]={20, 24, 26}; - }; class ACE_762x51_Ball_Subsonic : B_762x51_Ball { airFriction=-0.000535; caliber=0.5; @@ -263,6 +212,54 @@ class CfgAmmo { ACE_muzzleVelocities[]={305, 325, 335, 340}; ACE_barrelLengths[]={16, 20, 24, 26}; }; + class ACE_762x67_Ball_Mk248_Mod_0 : B_762x51_Ball { + airFriction=-0.000830; + caliber=1.08; + hit=17; + typicalSpeed=900; + 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_ballisticCoefficients[]={0.268}; + ACE_velocityBoundaries[]={}; + ACE_standardAtmosphere="ICAO"; + ACE_dragModel=7; + ACE_muzzleVelocities[]={865, 900, 924}; + ACE_barrelLengths[]={20, 24, 26}; + }; + class ACE_762x67_Ball_Mk248_Mod_1 : B_762x51_Ball { + airFriction=-0.000815; + caliber=1.12; + hit=18; + typicalSpeed=867; + 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 ACE_762x67_Ball_Berger_Hybrid_OTM : B_762x51_Ball { + airFriction=-0.00076; + caliber=1.15; + hit=19; + typicalSpeed=853; + ACE_caliber=0.308; + ACE_bulletLength=1.602; + ACE_bulletMass=230; + 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[]={}; + ACE_standardAtmosphere="ICAO"; + ACE_dragModel=7; + ACE_muzzleVelocities[]={800, 853, 884}; + ACE_barrelLengths[]={20, 24, 26}; + }; class B_762x54_Ball : BulletBase { airFriction=-0.001023; typicalSpeed=820; @@ -366,7 +363,7 @@ class CfgAmmo { 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.17}; ACE_velocityBoundaries[]={}; - ACE_standardAtmosphere="ASM"; + ACE_standardAtmosphere="ICAO"; ACE_dragModel=1; ACE_muzzleVelocities[]={440, 460, 480}; ACE_barrelLengths[]={4, 5, 9}; @@ -381,7 +378,7 @@ class CfgAmmo { 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="ASM"; + ACE_standardAtmosphere="ICAO"; ACE_dragModel=1; ACE_muzzleVelocities[]={298, 330, 350}; ACE_barrelLengths[]={3.8, 5, 9}; @@ -411,7 +408,7 @@ class CfgAmmo { 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.189}; ACE_velocityBoundaries[]={}; - ACE_standardAtmosphere="ASM"; + ACE_standardAtmosphere="ICAO"; ACE_dragModel=1; ACE_muzzleVelocities[]={360, 400, 430}; ACE_barrelLengths[]={4, 4.61, 9}; @@ -488,7 +485,7 @@ class CfgAmmo { ACE_barrelLengths[]={29}; }; class B_338_Ball : BulletBase { - airFriction=-0.00061 + airFriction=-0.000606 typicalSpeed=915; ACE_caliber=0.338; ACE_bulletLength=1.558; @@ -516,7 +513,7 @@ class CfgAmmo { ACE_barrelLengths[]={20, 24, 26}; }; class ACE_338_Ball : B_338_Ball { - airFriction=-0.000526; + airFriction=-0.000535; caliber=1.55; typicalSpeed=826; ACE_caliber=0.338; @@ -531,7 +528,7 @@ class CfgAmmo { ACE_barrelLengths[]={20, 24, 26.5, 28}; }; class ACE_338_Ball_API526 : B_338_Ball { - airFriction=-0.000526; + airFriction=-0.000673; caliber=2.4; typicalSpeed=826; ACE_caliber=0.338; From 25e1fd2df3ef15953ed9ccf5c51ccad5f46c0367 Mon Sep 17 00:00:00 2001 From: ulteq <ulteq@web.de> Date: Wed, 15 Apr 2015 22:50:04 +0200 Subject: [PATCH 078/109] Completely overworked the ATragMX gun list --- addons/atragmx/XEH_postInit.sqf | 42 +++++++++++++++++++++++++-------- 1 file changed, 32 insertions(+), 10 deletions(-) diff --git a/addons/atragmx/XEH_postInit.sqf b/addons/atragmx/XEH_postInit.sqf index 664bc76ba4..9d769d84a3 100644 --- a/addons/atragmx/XEH_postInit.sqf +++ b/addons/atragmx/XEH_postInit.sqf @@ -6,16 +6,38 @@ if (count (profileNamespace getVariable ["ACE_ATragMX_gunList", []]) > 0) then { GVAR(gunList) = profileNamespace getVariable "ACE_ATragMX_gunList"; } else { // Profile Name, Muzzle Velocity, Zero Range, Scope Base Angle, AirFriction, Bore Height, Scope Unit, Elevation Scope Step, Windage Scope Step, Maximum Elevation, Dialed Elevation, Dialed Windage, Mass, Ammo Class Name, Magazine Class Name, BC, Drag Model, Atmosphere Model - GVAR(gunList) = [["12.7x108mm" , 820, 100, 0.0659, -0.0008600, 3.81, 0, 0.338, 0.338, 120, 0, 0, 48.28, "B_127x108_Ball" , "5Rnd_127x108_Mag" , 0.630, 1, "ASM" ], - ["12.7x99mm" , 880, 100, 0.0607, -0.0008600, 3.81, 0, 0.338, 0.338, 120, 0, 0, 41.92, "B_127x99_Ball" , "5Rnd_mas_127x99_Stanag" , 0.670, 1, "ASM" ], - ["12.7x54mm" , 290, 100, 0.3913, -0.0014000, 3.81, 0, 0.338, 0.338, 120, 0, 0, 61.56, "B_127x54_Ball" , "10Rnd_127x54_Mag" , 1.050, 1, "ASM" ], - ["10.4x77mm" , 910, 100, 0.0572, -0.0004800, 3.81, 0, 0.338, 0.338, 120, 0, 0, 27.15, "B_408_Ball" , "7Rnd_408_Mag" , 0.970, 1, "ASM" ], - ["9.3×64mm" , 870, 100, 0.0632, -0.0007500, 3.81, 0, 0.338, 0.338, 120, 0, 0, 16.20, "B_93x64_Ball" , "10Rnd_93x64_DMR_05_Mag" , 0.368, 1, "ASM" ], - ["8.6×70mm" , 915, 100, 0.0572, -0.0006100, 3.81, 0, 0.338, 0.338, 120, 0, 0, 16.20, "B_338_Ball" , "10Rnd_338_Mag" , 0.322, 7, "ICAO"], - ["7.62x51mm" , 820, 100, 0.0639, -0.0010000, 3.81, 0, 0.338, 0.338, 120, 0, 0, 9.460, "B_762x51_Ball" , "20Rnd_762x51_Mag" , 0.393, 1, "ICAO"], - ["6.5x39mm" , 800, 100, 0.0689, -0.0009000, 3.81, 0, 0.338, 0.338, 120, 0, 0, 7.776, "B_65x39_Caseless" , "30Rnd_65x39_caseless_mag" , 0.263, 1, "ICAO"], - ["5.56x45mm" , 920, 100, 0.0584, -0.0012650, 3.81, 0, 0.338, 0.338, 120, 0, 0, 4.000, "B_556x45_Ball" , "30Rnd_556x45_Stanag" , 0.304, 1, "ASM" ], - ["5.56x45mm Mk262" , 850, 100, 0.0643, -0.0011250, 3.81, 0, 0.338, 0.338, 120, 0, 0, 4.990, "ACE_556x45_Ball_Mk262" , "ACE_30Rnd_556x45_Stanag_Mk262_mag", 0.361, 1, "ASM" ]]; + GVAR(gunList) = [["12.7x108mm" , 820, 100, 0.0659, -0.0008600, 3.81, 0, 0.338, 0.338, 120, 0, 0, 48.28, "B_127x108_Ball" , "5Rnd_127x108_Mag" , 0.630, 1, "ASM" ], + + ["12.7x99mm AMAX" , 860, 100, 0.0612, -0.0008600, 3.81, 0, 0.338, 0.338, 120, 0, 0, 48.60, "B_127x99_Ball" , "5Rnd_mas_127x99_Stanag" , 1.050, 1, "ASM" ], + ["12.7x99mm" , 853, 100, 0.0623, -0.0008600, 3.81, 0, 0.338, 0.338, 120, 0, 0, 41.92, "B_127x99_Ball" , "5Rnd_mas_127x99_Stanag" , 0.670, 1, "ASM" ], + + ["12.7x54mm" , 300, 100, 0.3394, -0.0014000, 3.81, 0, 0.338, 0.338, 120, 0, 0, 48.60, "B_127x54_Ball" , "10Rnd_127x54_Mag" , 1.050, 1, "ASM" ], + + [".408 Chey Tac" , 910, 100, 0.0569, -0.0004800, 3.81, 0, 0.338, 0.338, 120, 0, 0, 27.15, "B_408_Ball" , "7Rnd_408_Mag" , 0.970, 1, "ASM" ], + + ["9.3×64mm" , 870, 100, 0.0619, -0.0007500, 3.81, 0, 0.338, 0.338, 120, 0, 0, 14.90, "B_93x64_Ball" , "10Rnd_93x64_DMR_05_Mag" , 0.368, 1, "ASM" ], + + [".338LM 250gr" , 880, 100, 0.0598, -0.0006060, 3.81, 0, 0.338, 0.338, 120, 0, 0, 16.20, "B_338_Ball" , "10Rnd_338_Mag" , 0.322, 7, "ICAO"], + [".338LM 300gr" , 800, 100, 0.0677, -0.0005350, 3.81, 0, 0.338, 0.338, 120, 0, 0, 19.44, "ACE_338_Ball" , "ACE_10Rnd_338_300gr_HPBT_Mag" , 0.381, 7, "ICAO"], + [".338LM API526" , 880, 100, 0.0601, -0.0006730, 3.81, 0, 0.338, 0.338, 120, 0, 0, 16.39, "ACE_338_Ball_API526" , "ACE_10Rnd_338_API526_Mag" , 0.290, 7, "ICAO"], + + [".300WM Mk248 Mod 0", 900, 100, 0.0584, -0.0008300, 3.81, 0, 0.338, 0.338, 120, 0, 0, 13.31, "ACE_762x67_Ball_Mk248_Mod_0" , "ACE_20Rnd_762x67_Mk248_Mod_0_Mag" , 0.268, 7, "ICAO"], + [".300WM Mk248 Mod 1", 867, 100, 0.0611, -0.0008150, 3.81, 0, 0.338, 0.338, 120, 0, 0, 14.26, "ACE_762x67_Ball_Mk248_Mod_1" , "ACE_20Rnd_762x67_Mk248_Mod_1_Mag" , 0.310, 7, "ICAO"], + [".300WM Berger OTM" , 853, 100, 0.0622, -0.0007600, 3.81, 0, 0.338, 0.338, 120, 0, 0, 14.90, "ACE_762x67_Ball_Berger_Hybrid_OTM", "ACE_20Rnd_762x67_Berger_Hybrid_OTM_Mag", 0.368, 7, "ICAO"], + + ["7.62x54mmR" , 800, 100, 0.0692, -0.0010230, 3.81, 0, 0.338, 0.338, 120, 0, 0, 9.849, "B_762x54_Ball" , "10Rnd_762x54_Mag" , 0.400, 1, "ICAO"], + + ["7.62x51mm M80" , 810, 100, 0.0679, -0.0010350, 3.81, 0, 0.338, 0.338, 120, 0, 0, 9.525, "B_762x51_Ball" , "20Rnd_762x51_Mag" , 0.200, 7, "ICAO"], + ["7.62x51mm M118LR" , 820, 100, 0.0662, -0.0008525, 3.81, 0, 0.338, 0.338, 120, 0, 0, 11.34, "ACE_762x51_Ball_M118LR" , "ACE_20Rnd_762x51_M118LR_Mag" , 0.243, 7, "ICAO"], + ["7.62x51mm Mk319" , 820, 100, 0.0670, -0.0010300, 3.81, 0, 0.338, 0.338, 120, 0, 0, 8.424, "ACE_762x51_Ball_Mk319_Mod_0" , "ACE_20Rnd_762x51_Mk319_Mod_0_Mag" , 0.377, 1, "ICAO"], + ["7.62x51mm Subsonic", 320, 100, 0.3060, -0.0004910, 3.81, 0, 0.338, 0.338, 120, 0, 0, 12.96, "ACE_762x51_Ball_Subsonic" , "ACE_20Rnd_762x51_Mag_SD" , 0.235, 7, "ICAO"], + + ["6.5x39mm" , 800, 100, 0.0683, -0.0007850, 3.81, 0, 0.338, 0.338, 120, 0, 0, 7.970, "B_65x39_Caseless" , "30Rnd_65x39_caseless_mag" , 0.263, 7, "ICAO"], + ["6.5x47mm Lapua" , 800, 100, 0.0682, -0.0007710, 3.81, 0, 0.338, 0.338, 120, 0, 0, 9.007, "ACE_65x47_Ball_Scenar" , "ACE_30Rnd_65x47_Scenar_mag" , 0.290, 7, "ICAO"], + + ["5.56x45mm M855" , 870, 100, 0.0626, -0.0012650, 3.81, 0, 0.338, 0.338, 120, 0, 0, 4.018, "B_556x45_Ball" , "30Rnd_556x45_Stanag" , 0.151, 7, "ASM" ], + ["5.56x45mm Mk262" , 820, 100, 0.0671, -0.0011250, 3.81, 0, 0.338, 0.338, 120, 0, 0, 4.990, "ACE_556x45_Ball_Mk262" , "ACE_30Rnd_556x45_Stanag_Mk262_mag" , 0.361, 1, "ASM" ], + ["5.56x45mm Mk318" , 880, 100, 0.0616, -0.0011200, 3.81, 0, 0.338, 0.338, 120, 0, 0, 4.018, "ACE_556x45_Ball_Mk318" , "ACE_30Rnd_556x45_Stanag_Mk318_mag" , 0.307, 1, "ASM" ]]; profileNamespace setVariable ["ACE_ATragMX_gunList", GVAR(gunList)]; }; From dd09cc4d0691d2f9c53492c1d6c717a151ce3866 Mon Sep 17 00:00:00 2001 From: Tachii <zaveruha007@gmail.com> Date: Thu, 16 Apr 2015 00:57:15 +0300 Subject: [PATCH 079/109] Update fnc_createAction.sqf typo --- addons/interact_menu/functions/fnc_createAction.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/interact_menu/functions/fnc_createAction.sqf b/addons/interact_menu/functions/fnc_createAction.sqf index 172bbea3a4..0b0030a1b4 100644 --- a/addons/interact_menu/functions/fnc_createAction.sqf +++ b/addons/interact_menu/functions/fnc_createAction.sqf @@ -19,7 +19,7 @@ * Action <ARRAY> * * Example: - * [VulcanPinch","Vulcan Pinch","",{_target setDamage 1;},{true},{},[parameters], [0,0,0], 100] call ace_interact_menu_fnc_createAction; + * ["VulcanPinch","Vulcan Pinch","",{_target setDamage 1;},{true},{},[parameters], [0,0,0], 100] call ace_interact_menu_fnc_createAction; * * Public: No */ From 361efe41474cbe60a67389286a0c45acd6e06a4c Mon Sep 17 00:00:00 2001 From: PabstMirror <elephantisaterriblemascot@gmail.com> Date: Wed, 15 Apr 2015 17:03:59 -0500 Subject: [PATCH 080/109] Missing NoVoice words Protocol bin\config.bin/ACE_RadioProtocolNoRadio/: Missing word RallyUp / UnderFireE --- addons/common/CfgVoice.hpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/addons/common/CfgVoice.hpp b/addons/common/CfgVoice.hpp index 9c53338e6e..1fb0f5d2b6 100644 --- a/addons/common/CfgVoice.hpp +++ b/addons/common/CfgVoice.hpp @@ -199,6 +199,8 @@ class ACE_RadioProtocolNoRadio: RadioProtocolBase { Ready[] = {}; Waiting[] = {}; StandingBy[] = {}; + RallyUp[] = {}; + UnderFireE[] = {}; /*IAmReady[] = {}; ReadyForOrders[] = {}; AwaitingOrders[] = {};*/ From c0c5af295799b8788c8cc5fee1b7bebf49da8993 Mon Sep 17 00:00:00 2001 From: PabstMirror <elephantisaterriblemascot@gmail.com> Date: Wed, 15 Apr 2015 17:07:06 -0500 Subject: [PATCH 081/109] ballistics - fix ubc --- addons/ballistics/CfgAmmo.hpp | 4 ++-- addons/ballistics/CfgMagazines.hpp | 2 +- addons/ballistics/CfgWeapons.hpp | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/addons/ballistics/CfgAmmo.hpp b/addons/ballistics/CfgAmmo.hpp index 1a783de813..d82f336952 100644 --- a/addons/ballistics/CfgAmmo.hpp +++ b/addons/ballistics/CfgAmmo.hpp @@ -260,7 +260,7 @@ class CfgAmmo { ACE_muzzleVelocities[]={800, 853, 884}; ACE_barrelLengths[]={20, 24, 26}; }; - class B_762x54_Ball : BulletBase { + class B_762x54_Ball: B_762x51_Ball { airFriction=-0.001023; typicalSpeed=820; ACE_caliber=0.312; @@ -485,7 +485,7 @@ class CfgAmmo { ACE_barrelLengths[]={29}; }; class B_338_Ball : BulletBase { - airFriction=-0.000606 + airFriction=-0.000606; typicalSpeed=915; ACE_caliber=0.338; ACE_bulletLength=1.558; diff --git a/addons/ballistics/CfgMagazines.hpp b/addons/ballistics/CfgMagazines.hpp index ef36fcca78..9ce3ad3eb0 100644 --- a/addons/ballistics/CfgMagazines.hpp +++ b/addons/ballistics/CfgMagazines.hpp @@ -244,7 +244,7 @@ class CfgMagazines { initSpeed = 250; }; - class 30Rnd_45ACP_Mag_SMG_01_Tracer_Green: CA_Magazine { + class 30Rnd_45ACP_Mag_SMG_01_Tracer_Green: 30Rnd_45ACP_Mag_SMG_01 { initSpeed = 250; }; diff --git a/addons/ballistics/CfgWeapons.hpp b/addons/ballistics/CfgWeapons.hpp index dad5356755..26b07303c0 100644 --- a/addons/ballistics/CfgWeapons.hpp +++ b/addons/ballistics/CfgWeapons.hpp @@ -422,7 +422,7 @@ class CfgWeapons { ACE_barrelTwist=7; ACE_barrelLength=18.1; }; - class arifle_TRG21_GL_F: Tavor_base_F { + class arifle_TRG21_GL_F: arifle_TRG21_F { magazines[] = { "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Red", From 0076be6a86e3890e0315c31a7d0a849d34dd1502 Mon Sep 17 00:00:00 2001 From: PabstMirror <elephantisaterriblemascot@gmail.com> Date: Wed, 15 Apr 2015 17:08:35 -0500 Subject: [PATCH 082/109] Fix stringtables --- addons/captives/stringtable.xml | 2 +- addons/medical/stringtable.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/captives/stringtable.xml b/addons/captives/stringtable.xml index 54e5b26554..fec8e703b1 100644 --- a/addons/captives/stringtable.xml +++ b/addons/captives/stringtable.xml @@ -130,7 +130,7 @@ <Hungarian>Motozás</Hungarian> <Russian>Обыскать человека</Russian> <Portuguese>Revistar</Portuguese> - <Italian>Perquisisci la persona/Italian> + <Italian>Perquisisci la persona</Italian> </Key> <Key ID="STR_ACE_Captives_StartSurrendering"> <English>Surrender</English> diff --git a/addons/medical/stringtable.xml b/addons/medical/stringtable.xml index d6b277463e..c9043b5b09 100644 --- a/addons/medical/stringtable.xml +++ b/addons/medical/stringtable.xml @@ -1416,7 +1416,7 @@ <French>Déposer</French> <Hungarian>Elengedés</Hungarian> <Portuguese>Largar</Portuguese> - <ItalianRrilascia</Italian> + <Italian>Rrilascia</Italian> </Key> <Key ID="STR_ACE_MEDICAL_LOAD"> <English>Load Patient Into</English> From 0f4b7d0977f5d738f1e4fcc35aa1acadfbecdb70 Mon Sep 17 00:00:00 2001 From: Glowbal <thomasskooi@live.nl> Date: Thu, 16 Apr 2015 00:14:05 +0200 Subject: [PATCH 083/109] fixes #347 Please?? --- addons/medical/functions/fnc_treatmentTourniquet.sqf | 2 +- addons/medical/functions/fnc_treatmentTourniquetLocal.sqf | 4 +--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/addons/medical/functions/fnc_treatmentTourniquet.sqf b/addons/medical/functions/fnc_treatmentTourniquet.sqf index cff9458426..da50c5c1bf 100644 --- a/addons/medical/functions/fnc_treatmentTourniquet.sqf +++ b/addons/medical/functions/fnc_treatmentTourniquet.sqf @@ -40,7 +40,7 @@ if ((_tourniquets select _part) > 0) exitwith { }; _removeItem = _items select 0; -[[_target, _removeItem], QUOTE(DFUNC(treatmentTourniquetLocal)), _target] call EFUNC(common,execRemoteFnc); /* TODO Replace by event system */ +[[_target, _removeItem, _selectionName], QUOTE(DFUNC(treatmentTourniquetLocal)), _target] call EFUNC(common,execRemoteFnc); /* TODO Replace by event system */ [_target, _removeItem] call FUNC(addToTriageCard); [_target, "activity", "STR_ACE_MEDICAL_ACTIVITY_appliedTourniquet", [[_caller] call EFUNC(common,getName)]] call FUNC(addToLog); diff --git a/addons/medical/functions/fnc_treatmentTourniquetLocal.sqf b/addons/medical/functions/fnc_treatmentTourniquetLocal.sqf index 064761aea0..3b1a351bab 100644 --- a/addons/medical/functions/fnc_treatmentTourniquetLocal.sqf +++ b/addons/medical/functions/fnc_treatmentTourniquetLocal.sqf @@ -16,12 +16,10 @@ private ["_target", "_tourniquetItem", "_part", "_tourniquets", "_applyingTo"]; _target = _this select 0; _tourniquetItem = _this select 1; +_selectionName = _this select 2; -//[_target,"treatment",format["%1 applied a tourniquet on %2",[_caller] call EFUNC(common,getName),_selectionName]] call FUNC(addActivityToLog); -//[_target,_removeItem] call FUNC(addToTriageList); [_target] call FUNC(addToInjuredCollection); - _part = [_selectionName] call FUNC(selectionNameToNumber); // Place a tourniquet on the bodypart From 59ae4623ff49d438b57a0294c68bc60508938983 Mon Sep 17 00:00:00 2001 From: Glowbal <thomasskooi@live.nl> Date: Thu, 16 Apr 2015 00:17:17 +0200 Subject: [PATCH 084/109] Derp --- addons/medical/functions/fnc_treatmentTourniquetLocal.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/medical/functions/fnc_treatmentTourniquetLocal.sqf b/addons/medical/functions/fnc_treatmentTourniquetLocal.sqf index 3b1a351bab..289f852a06 100644 --- a/addons/medical/functions/fnc_treatmentTourniquetLocal.sqf +++ b/addons/medical/functions/fnc_treatmentTourniquetLocal.sqf @@ -13,7 +13,7 @@ */ #include "script_component.hpp" -private ["_target", "_tourniquetItem", "_part", "_tourniquets", "_applyingTo"]; +private ["_target", "_tourniquetItem", "_part", "_tourniquets", "_applyingTo", "_selectionName"]; _target = _this select 0; _tourniquetItem = _this select 1; _selectionName = _this select 2; From 4169351b1ab2e1c8f2889e49054a568bdad37e25 Mon Sep 17 00:00:00 2001 From: commy2 <commy-2@gmx.de> Date: Thu, 16 Apr 2015 02:00:37 +0200 Subject: [PATCH 085/109] fix addActionEH didn't work after respawn --- addons/common/functions/fnc_addActionEventHandler.sqf | 8 ++++++-- addons/common/functions/fnc_removeActionEventHandler.sqf | 6 ++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/addons/common/functions/fnc_addActionEventHandler.sqf b/addons/common/functions/fnc_addActionEventHandler.sqf index a75b1537d1..a0e9d24f2c 100644 --- a/addons/common/functions/fnc_addActionEventHandler.sqf +++ b/addons/common/functions/fnc_addActionEventHandler.sqf @@ -31,7 +31,11 @@ if (typeName _statement == "STRING") then { _name = format ["ACE_Action_%1", _action]; -_actionsVar = _unit getVariable [_name, [-1, [-1, [], []]]]; +_actionsVar = _unit getVariable [_name, [-1, [-1, [], []], objNull]]; + +if (_unit != _actionsVar select 2) then { // check if the unit is still valid, fixes respawn issues + _actionsVar = [-1, [-1, [], []], objNull]; +}; _actionID = _actionsVar select 0; _actions = _actionsVar select 1; @@ -65,6 +69,6 @@ if (_actionID == -1) then { _actionID = _unit addAction _addAction; }; -_unit setVariable [_name, [_actionID, [_id, _actionIDs, _actions]], false]; +_unit setVariable [_name, [_actionID, [_id, _actionIDs, _actions], _unit], false]; _id diff --git a/addons/common/functions/fnc_removeActionEventHandler.sqf b/addons/common/functions/fnc_removeActionEventHandler.sqf index 7d92b3de75..2bcc970ab0 100644 --- a/addons/common/functions/fnc_removeActionEventHandler.sqf +++ b/addons/common/functions/fnc_removeActionEventHandler.sqf @@ -23,7 +23,7 @@ if (_id == -1) exitWith {}; _name = format ["ACE_Action_%1", _action]; -_actionsVar = _unit getVariable [_name, [-1, [-1, [], []]]]; +_actionsVar = _unit getVariable [_name, [-1, [-1, [], []], objNull]]; _actionID = _actionsVar select 0; _actions = _actionsVar select 1; @@ -32,6 +32,8 @@ _currentID = _actions select 0; _actionIDs = _actions select 1; _actions = _actions select 2; +if (_unit != _actionsVar select 2) exitWith {}; + _id = _actionIDs find _id; if (_id == -1) exitWith {}; @@ -47,4 +49,4 @@ if (count _actions == 0) then { _actionID = -1; }; -_unit setVariable [_name, [_actionID, [_currentID, _actionIDs, _actions]], false]; +_unit setVariable [_name, [_actionID, [_currentID, _actionIDs, _actions], _unit], false]; From b2625c43e7f1aaa172627f16e587bd215eb10a97 Mon Sep 17 00:00:00 2001 From: PabstMirror <elephantisaterriblemascot@gmail.com> Date: Wed, 15 Apr 2015 20:30:05 -0500 Subject: [PATCH 086/109] #644 - Extra Space in macro --- .../laser_selfdesignate/functions/fnc_laserHudDesignateOff.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/laser_selfdesignate/functions/fnc_laserHudDesignateOff.sqf b/addons/laser_selfdesignate/functions/fnc_laserHudDesignateOff.sqf index f8ff2ca0f5..aa46c383bd 100644 --- a/addons/laser_selfdesignate/functions/fnc_laserHudDesignateOff.sqf +++ b/addons/laser_selfdesignate/functions/fnc_laserHudDesignateOff.sqf @@ -13,7 +13,7 @@ #include "script_component.hpp" if( (count _this) > 2) then { - EXPLODE_3_PVT(_this,_shooter,_laserUuid, _localLaserTarget); + EXPLODE_3_PVT(_this,_shooter,_laserUuid,_localLaserTarget); [_laserUuid] call EFUNC(laser,laserOff); // @TODO: Nou gets to field all tickets about missing lasers. From 9c9136ae91bf511d3290fe2022a06f58b40f148e Mon Sep 17 00:00:00 2001 From: PabstMirror <elephantisaterriblemascot@gmail.com> Date: Thu, 16 Apr 2015 02:54:50 -0500 Subject: [PATCH 087/109] Stringtable cleanup --- addons/explosives/stringtable.xml | 1 - addons/javelin/stringtable.xml | 1 - 2 files changed, 2 deletions(-) diff --git a/addons/explosives/stringtable.xml b/addons/explosives/stringtable.xml index c8d46aad30..d0b61d0814 100644 --- a/addons/explosives/stringtable.xml +++ b/addons/explosives/stringtable.xml @@ -44,7 +44,6 @@ <Polish>Kod ładunku: %1</Polish> <French>Code explosif: %1</French> <Czech>Kód výbušniny: %1</Czech> - <Italian>Codice dell'esplosivo : %1</Italian> <Hungarian>Robbanóanyag kódja: %1</Hungarian> <Portuguese>Código do explosivo: %1</Portuguese> <Russian>Код подрыва: %1</Russian> diff --git a/addons/javelin/stringtable.xml b/addons/javelin/stringtable.xml index 819bb0f46d..0290abafed 100644 --- a/addons/javelin/stringtable.xml +++ b/addons/javelin/stringtable.xml @@ -1,4 +1,3 @@ -<<<<<<< HEAD <?xml version="1.0" encoding="utf-8"?> <Project name="ACE"> <Package name="WEP_JAVELIN"> From aa724129d1720c45eb8e3249c0b865001ea2a407 Mon Sep 17 00:00:00 2001 From: ulteq <ulteq@web.de> Date: Thu, 16 Apr 2015 10:51:33 +0200 Subject: [PATCH 088/109] Tuned down the default timeToLive value. --- addons/ballistics/CfgAmmo.hpp | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/addons/ballistics/CfgAmmo.hpp b/addons/ballistics/CfgAmmo.hpp index d82f336952..76a3970063 100644 --- a/addons/ballistics/CfgAmmo.hpp +++ b/addons/ballistics/CfgAmmo.hpp @@ -3,21 +3,20 @@ class CfgAmmo { class BulletCore; class BulletBase: BulletCore { - // Default: 6 | More is good, but too much is bad (especially with wind deflection / advanced ballistics) - timeToLive = 10; + timeToLive=6; }; class B_20mm : BulletBase { - timeToLive = 30; + timeToLive=30; }; class B_25mm : BulletBase { - timeToLive = 30; + timeToLive=30; }; class B_35mm_AA : BulletBase { - timeToLive = 30; + timeToLive=30; }; class B_30mm_AP : BulletBase { - timeToLive = 30; + timeToLive=30; }; class B_556x45_Ball : BulletBase { @@ -458,6 +457,7 @@ class CfgAmmo { ACE_barrelLengths[]={20, 24.41, 26}; }; class B_408_Ball : BulletBase { + timeToLive=10; airFriction=-0.000395; typicalSpeed=910; ACE_caliber=0.408; @@ -473,6 +473,7 @@ class CfgAmmo { ACE_barrelLengths[]={29}; }; class ACE_106x83mm_Ball : B_408_Ball { + timeToLive=10; ACE_caliber=0.416; ACE_bulletLength=2.089; ACE_bulletMass=398; @@ -485,6 +486,7 @@ class CfgAmmo { ACE_barrelLengths[]={29}; }; class B_338_Ball : BulletBase { + timeToLive=10; airFriction=-0.000606; typicalSpeed=915; ACE_caliber=0.338; @@ -513,6 +515,7 @@ class CfgAmmo { ACE_barrelLengths[]={20, 24, 26}; }; class ACE_338_Ball : B_338_Ball { + timeToLive=10; airFriction=-0.000535; caliber=1.55; typicalSpeed=826; @@ -528,6 +531,7 @@ class CfgAmmo { ACE_barrelLengths[]={20, 24, 26.5, 28}; }; class ACE_338_Ball_API526 : B_338_Ball { + timeToLive=10; airFriction=-0.000673; caliber=2.4; typicalSpeed=826; @@ -557,6 +561,7 @@ class CfgAmmo { ACE_barrelLengths[]={17.2}; }; class B_127x99_Ball : BulletBase { + timeToLive=10; airFriction=-0.0006; typicalSpeed=853; ACE_caliber=0.510; @@ -571,6 +576,7 @@ class CfgAmmo { ACE_barrelLengths[]={29}; }; class ACE_127x99_Ball_AMAX : B_127x99_Ball { + timeToLive=10; airFriction=-0.000374; typicalSpeed=860; ACE_caliber=0.510; @@ -585,6 +591,7 @@ class CfgAmmo { ACE_barrelLengths[]={29}; }; class B_127x108_Ball : BulletBase { + timeToLive=10; airFriction=-0.00064; typicalSpeed=820; ACE_caliber=0.511; From e00dd1c2f21f23958f4cbf9081d1a942f55b9565 Mon Sep 17 00:00:00 2001 From: ruPaladin <happyworm24@rambler.ru> Date: Thu, 16 Apr 2015 14:10:48 +0300 Subject: [PATCH 089/109] addons/realisticnames translation to Russian --- addons/realisticnames/stringtable.xml | 72 +++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) diff --git a/addons/realisticnames/stringtable.xml b/addons/realisticnames/stringtable.xml index a39736c902..2b02d7f5b7 100644 --- a/addons/realisticnames/stringtable.xml +++ b/addons/realisticnames/stringtable.xml @@ -1049,6 +1049,7 @@ <French>P99</French> <Hungarian>P99</Hungarian> <Spanish>P99</Spanish> + <Russian>P99</Russian> </Key> <Key ID="STR_ACE_RealisticNames_hgun_Rook40_Name"> <English>MP-443 Grach</English> @@ -1058,6 +1059,7 @@ <French>MP-443 Grach</French> <Hungarian>MP-443 Grach</Hungarian> <Spanish>MP-443 Grach</Spanish> + <Russian>МР-443 "Грач"</Russian> </Key> <Key ID="STR_ACE_RealisticNames_hgun_ACPC2_Name"> <English>ACP-C2</English> @@ -1067,6 +1069,7 @@ <French>ACP-C2</French> <Hungarian>ACP-C2</Hungarian> <Spanish>ACP-C2</Spanish> + <Russian>ACP-C2</Russian> </Key> <Key ID="STR_ACE_RealisticNames_hgun_Pistol_heavy_01_Name"> <English>FNX-45 Tactical</English> @@ -1076,6 +1079,7 @@ <French>FNX-45 Tactical</French> <Hungarian>FNX-45 Tactical</Hungarian> <Spanish>FNX-45 Tactical</Spanish> + <Russian>FNX-45 Tactical</Russian> </Key> <Key ID="STR_ACE_RealisticNames_hgun_Pistol_heavy_02_Name"> <English>Chiappa Rhino 60DS</English> @@ -1085,6 +1089,7 @@ <French>Chiappa Rhino 60DS</French> <Hungarian>Chiappa Rhino 6DS</Hungarian> <Spanish>Chiappa Rhino 60DS</Spanish> + <Russian>Chiappa Rhino 60DS</Russian> </Key> <Key ID="STR_ACE_RealisticNames_hgun_Pistol_Signal_Name"> <English>Taurus Judge</English> @@ -1094,6 +1099,7 @@ <French>Taurus Judge</French> <Hungarian>Taurus Judge</Hungarian> <Spanish>Taurus Judge</Spanish> + <Russian>Taurus Judge</Russian> </Key> <Key ID="STR_ACE_RealisticNames_launch_NLAW_Name"> <English>NLAW</English> @@ -1103,6 +1109,7 @@ <French>NLAW</French> <Hungarian>NLAW</Hungarian> <Spanish>NLAW</Spanish> + <Russian>NLAW</Russian> </Key> <Key ID="STR_ACE_RealisticNames_launch_RPG32_Name"> <English>RPG-32</English> @@ -1112,6 +1119,7 @@ <French>RPG-32</French> <Hungarian>RPG-32</Hungarian> <Spanish>RPG-32</Spanish> + <Russian>РПГ-32</Russian> </Key> <Key ID="STR_ACE_RealisticNames_launch_Titan_Name"> <English>Mini-Spike (AA)</English> @@ -1121,6 +1129,7 @@ <French>Mini-Spike (AA)</French> <Hungarian>Mini-Spike (Repülő-elhárító)</Hungarian> <Spanish>Mini-Spike (AA)</Spanish> + <Russian>Mini-Spike (AA)</Russian> </Key> <Key ID="STR_ACE_RealisticNames_launch_Titan_short_Name"> <English>Mini-Spike (AT)</English> @@ -1130,6 +1139,7 @@ <French>Mini-Spike (AT)</French> <Hungarian>Mini-Spike (Tankelhárító)</Hungarian> <Spanish>Mini-Spike (AT)</Spanish> + <Russian>Mini-Spike (AT)</Russian> </Key> <Key ID="STR_ACE_RealisticNames_arifle_MX_Name"> <English>MX</English> @@ -1139,6 +1149,7 @@ <French>MX</French> <Hungarian>MX</Hungarian> <Spanish>MX</Spanish> + <Russian>MX</Russian> </Key> <Key ID="STR_ACE_RealisticNames_arifle_MX_Black_Name"> <English>MX (Black)</English> @@ -1148,6 +1159,7 @@ <French>MX ( Noir)</French> <Hungarian>MX (Fekete)</Hungarian> <Spanish>MX (Negro)</Spanish> + <Russian>MX (черный)</Russian> </Key> <Key ID="STR_ACE_RealisticNames_arifle_MXC_Name"> <English>MXC</English> @@ -1157,6 +1169,7 @@ <French>MXC</French> <Hungarian>MXC</Hungarian> <Spanish>MXC</Spanish> + <Russian>MXC</Russian> </Key> <Key ID="STR_ACE_RealisticNames_arifle_MXC_Black_Name"> <English>MXC (Black)</English> @@ -1166,6 +1179,7 @@ <French>MXC (Noir)</French> <Hungarian>MXC (Fekete)</Hungarian> <Spanish>MXC (Negro)</Spanish> + <Russian>MXC (черный)</Russian> </Key> <Key ID="STR_ACE_RealisticNames_arifle_MX_GL_Name"> <English>MX 3GL</English> @@ -1175,6 +1189,7 @@ <French>MX 3GL</French> <Hungarian>MX 3GL</Hungarian> <Spanish>MX 3GL</Spanish> + <Russian>MX 3GL</Russian> </Key> <Key ID="STR_ACE_RealisticNames_arifle_MX_GL_Black_Name"> <English>MX 3GL (Black)</English> @@ -1184,6 +1199,7 @@ <French>MX 3 GL (Noir)</French> <Hungarian>MX 3GL (Fekete)</Hungarian> <Spanish>MX 3GL (Negro)</Spanish> + <Russian>MX 3GL (черный)</Russian> </Key> <Key ID="STR_ACE_RealisticNames_arifle_MX_SW_Name"> <English>MX LSW</English> @@ -1193,6 +1209,7 @@ <French>MX LSW</French> <Hungarian>MX LSW</Hungarian> <Spanish>MX LSW</Spanish> + <Russian>MX LSW</Russian> </Key> <Key ID="STR_ACE_RealisticNames_arifle_MX_SW_Black_Name"> <English>MX LSW (Black)</English> @@ -1202,6 +1219,7 @@ <French>MX LSW (Noir)</French> <Hungarian>MX LSW (Fekete)</Hungarian> <Spanish>MX LSW (Negro)</Spanish> + <Russian>MX LSW (черный)</Russian> </Key> <Key ID="STR_ACE_RealisticNames_arifle_MXM_Name"> <English>MXM</English> @@ -1211,6 +1229,7 @@ <French>MXM</French> <Hungarian>MXM</Hungarian> <Spanish>MXM</Spanish> + <Russian>MXM</Russian> </Key> <Key ID="STR_ACE_RealisticNames_arifle_MXM_Black_Name"> <English>MXM (Black)</English> @@ -1220,6 +1239,7 @@ <French>MXM (Noir)</French> <Hungarian>MXM (Fekete)</Hungarian> <Spanish>MXM (Negro)</Spanish> + <Russian>MXM (черный)</Russian> </Key> <Key ID="STR_ACE_RealisticNames_arifle_Katiba_Name"> <English>KT2002 Katiba</English> @@ -1229,6 +1249,7 @@ <French>KT2002 Katiba</French> <Hungarian>KT2002 Katiba</Hungarian> <Spanish>KT2002 Katiba</Spanish> + <Russian>KT2002 Катиба</Russian> </Key> <Key ID="STR_ACE_RealisticNames_arifle_Katiba_C_Name"> <English>KT2002C Katiba</English> @@ -1238,6 +1259,7 @@ <French>KT2002C Katiba</French> <Hungarian>KT2002C Katiba</Hungarian> <Spanish>KT2002C Katiba</Spanish> + <Russian>KT2002C Катиба</Russian> </Key> <Key ID="STR_ACE_RealisticNames_arifle_Katiba_GL_Name"> <English>KT2002 Katiba KGL</English> @@ -1247,6 +1269,7 @@ <French>KT2002 Katiba KGL</French> <Hungarian>KT2002 Katiba KGL</Hungarian> <Spanish>KT2002 Katiba KGL</Spanish> + <Russian>KT2002 Катиба KGL</Russian> </Key> <Key ID="STR_ACE_RealisticNames_arifle_Mk20_Name"> <English>F2000 (Camo)</English> @@ -1256,6 +1279,7 @@ <French>F2000 (Camo)</French> <Hungarian>F2000 (Terepmintás)</Hungarian> <Spanish>F2000 (Camuflaje)</Spanish> + <Russian>F2000 (камо)</Russian> </Key> <Key ID="STR_ACE_RealisticNames_arifle_Mk20_plain_Name"> <English>F2000</English> @@ -1265,6 +1289,7 @@ <French>F2000</French> <Hungarian>F2000</Hungarian> <Spanish>F2000</Spanish> + <Russian>F2000</Russian> </Key> <Key ID="STR_ACE_RealisticNames_arifle_Mk20C_Name"> <English>F2000 Tactical (Camo)</English> @@ -1274,6 +1299,7 @@ <French>F2000 Tactical (Camo)</French> <Hungarian>F2000 Tactical (Terepmintás)</Hungarian> <Spanish>F2000 Tactical (Camuflaje)</Spanish> + <Russian>F2000 Tactical (камо)</Russian> </Key> <Key ID="STR_ACE_RealisticNames_arifle_Mk20C_plain_Name"> <English>F2000 Tactical</English> @@ -1283,6 +1309,7 @@ <French>F2000 Tactical</French> <Hungarian>F2000 Tactical</Hungarian> <Spanish>F2000 Tactical</Spanish> + <Russian>F2000 Tactical</Russian> </Key> <Key ID="STR_ACE_RealisticNames_arifle_Mk20_GL_Name"> <English>F2000 EGLM (Camo)</English> @@ -1292,6 +1319,7 @@ <French>F2000 EGLM (Camo)</French> <Hungarian>F2000 EGLM (Terepmintás)</Hungarian> <Spanish>F2000 EGLM (Camuflaje)</Spanish> + <Russian>F2000 EGLM (камо)</Russian> </Key> <Key ID="STR_ACE_RealisticNames_arifle_Mk20_GL_plain_Name"> <English>F2000 EGLM</English> @@ -1301,6 +1329,7 @@ <French>F2000 EGLM</French> <Hungarian>F2000 EGLM</Hungarian> <Spanish>F2000 EGLM</Spanish> + <Russian>F2000 EGLM</Russian> </Key> <Key ID="STR_ACE_RealisticNames_arifle_TRG21_Name"> <English>TAR-21</English> @@ -1310,6 +1339,7 @@ <French>TAR-21</French> <Hungarian>TAR-21</Hungarian> <Spanish>TAR-21</Spanish> + <Russian>TAR-21</Russian> </Key> <Key ID="STR_ACE_RealisticNames_arifle_TRG20_Name"> <English>CTAR-21</English> @@ -1319,6 +1349,7 @@ <French>CTAR-21</French> <Hungarian>CTAR-21</Hungarian> <Spanish>CTAR-21</Spanish> + <Russian>CTAR-21</Russian> </Key> <Key ID="STR_ACE_RealisticNames_arifle_TRG21_GL_Name"> <English>TAR-21 EGLM</English> @@ -1328,6 +1359,7 @@ <French>TAR-21 EGLM</French> <Hungarian>TAR-21 EGLM</Hungarian> <Spanish>TAR-21 EGLM</Spanish> + <Russian>TAR-21 EGLM</Russian> </Key> <Key ID="STR_ACE_RealisticNames_SMG_01_Name"> <English>Vector SMG</English> @@ -1337,6 +1369,7 @@ <French>Vector SMG</French> <Hungarian>Vector SMG</Hungarian> <Spanish>Vector SMG</Spanish> + <Russian>Vector SMG</Russian> </Key> <Key ID="STR_ACE_RealisticNames_SMG_02_Name"> <English>Scorpion Evo 3 A1</English> @@ -1346,6 +1379,7 @@ <French>Scorpion Evo 3 A1</French> <Hungarian>Scorpion Evo 3 A1</Hungarian> <Spanish>Scorpion Evo 3 A1</Spanish> + <Russian>Scorpion Evo 3 A1</Russian> </Key> <Key ID="STR_ACE_RealisticNames_hgun_PDW2000_Name"> <English>CPW</English> @@ -1355,6 +1389,7 @@ <French>CPW</French> <Hungarian>CPW</Hungarian> <Spanish>CPW</Spanish> + <Russian>CPW</Russian> </Key> <Key ID="STR_ACE_RealisticNames_arifle_SDAR_Name"> <English>RFB SDAR</English> @@ -1364,6 +1399,7 @@ <French>RFB SDAR</French> <Hungarian>RFB SDAR</Hungarian> <Spanish>RFB SDAR</Spanish> + <Russian>RFB SDAR</Russian> </Key> <Key ID="STR_ACE_RealisticNames_LMG_Mk200_Name"> <English>Stoner 99 LMG</English> @@ -1373,6 +1409,7 @@ <French>Stoner 99 LMG</French> <Hungarian>Stoner 99 Könnyűgéppuska</Hungarian> <Spanish>Stoner 99 LMG</Spanish> + <Russian>Stoner 99 LMG</Russian> </Key> <Key ID="STR_ACE_RealisticNames_LMG_Zafir_Name"> <English>Negev NG7</English> @@ -1382,6 +1419,7 @@ <French>Negev NG7</French> <Hungarian>Negev NG7</Hungarian> <Spanish>Negev NG7</Spanish> + <Russian>Negev NG7</Russian> </Key> <Key ID="STR_ACE_RealisticNames_srifle_EBR_Name"> <English>Mk14 Mod 1 EBR</English> @@ -1391,6 +1429,7 @@ <French>Mk 14 Mod 1 EBR</French> <Hungarian>Mk14 Mod 1 EBR</Hungarian> <Spanish>Mk14 Mod 1 EBR</Spanish> + <Russian>Mk14 Mod 1 EBR</Russian> </Key> <Key ID="STR_ACE_RealisticNames_srifle_GM6_Name"> <English>GM6 Lynx</English> @@ -1400,6 +1439,7 @@ <French>GM6 Lynx</French> <Hungarian>GM6 Gepárd</Hungarian> <Spanish>GM6 Lynx</Spanish> + <Russian>GM6 Lynx</Russian> </Key> <Key ID="STR_ACE_RealisticNames_srifle_GM6_camo_Name"> <English>GM6 Lynx (Camo)</English> @@ -1409,6 +1449,7 @@ <French>GM6 Lynx (Camo)</French> <Hungarian>GM6 Gepárd (Terepmintás)</Hungarian> <Spanish>GM6 Lynx (Camuflaje)</Spanish> + <Russian>GM6 Lynx (камо)</Russian> </Key> <Key ID="STR_ACE_RealisticNames_srifle_LRR_Name"> <English>M200 Intervention</English> @@ -1418,6 +1459,7 @@ <French>M200 Intervention</French> <Hungarian>M200 Intervention</Hungarian> <Spanish>M200 Intervention</Spanish> + <Russian>M200 Intervention</Russian> </Key> <Key ID="STR_ACE_RealisticNames_srifle_LRR_camo_Name"> <English>M200 Intervention (Camo)</English> @@ -1427,6 +1469,7 @@ <French>M200 Intervention (Camo)</French> <Hungarian>M200 Intervention (Terepmintás)</Hungarian> <Spanish>M200 Intervention (Camuflaje)</Spanish> + <Russian>M200 Intervention (камо)</Russian> </Key> <Key ID="STR_ACE_RealisticNames_srifle_DMR_01_Name"> <English>VS-121</English> @@ -1436,174 +1479,203 @@ <French>VS-121</French> <Hungarian>VS-121</Hungarian> <Spanish>VS-121</Spanish> + <Russian>VS-121</Russian> </Key> <Key ID="STR_ACE_RealisticNames_DMR_02"> <English>TODO: MAR-10 .338</English> <Czech>TODO: MAR-10 .338</Czech> <French>MAR-10 .338</French> <Spanish>TODO: MAR-10 .338</Spanish> + <Russian>TODO: MAR-10 .338</Russian> </Key> <Key ID="STR_ACE_RealisticNames_srifle_DMR_02"> <English>TODO: MAR-10 .338 (Black)</English> <Czech>TODO: MAR-10 .338 (Black)</Czech> <French>MAR-10 .338 (Noir)</French> <Spanish>TODO: MAR-10 .338 (Negro)</Spanish> + <Russian>TODO: MAR-10 .338 (черный)</Russian> </Key> <Key ID="STR_ACE_RealisticNames_srifle_DMR_02_camo"> <English>TODO: MAR-10 .338 (Camo)</English> <Czech>TODO: MAR-10 .338 (Camo)</Czech> <French>MAR-10 .338 (Camo)</French> <Spanish>TODO: MAR-10 .338 (Camuflaje)</Spanish> + <Russian>TODO: MAR-10 .338 (камо)</Russian> </Key> <Key ID="STR_ACE_RealisticNames_srifle_DMR_02_sniper"> <English>TODO: MAR-10 .338 (Sand)</English> <Czech>TODO: MAR-10 .338 (Sand)</Czech> <French>MAR-10 .338 (Beige)</French> <Spanish>TODO: MAR-10 .338 (Arena)</Spanish> + <Russian>TODO: MAR-10 .338 (песочный)</Russian> </Key> <Key ID="STR_ACE_RealisticNames_DMR_03"> <English>TODO: Mk-I EMR 7.62 mm</English> <Czech>TODO: Mk-I EMR 7.62 mm</Czech> <French>Mk-l EMR 7.62 mm</French> <Spanish>TODO: Mk-I EMR 7.62 mm</Spanish> + <Russian>TODO: Mk-I EMR 7.62 мм</Russian> </Key> <Key ID="STR_ACE_RealisticNames_srifle_DMR_03"> <English>TODO: Mk-I EMR 7.62 mm (Black)</English> <Czech>TODO: Mk-I EMR 7.62 mm (Black)</Czech> <French>Mk-l EMR 7.62 mm (Noir)</French> <Spanish>TODO: Mk-I EMR 7.62 mm (Negro)</Spanish> + <Russian>TODO: Mk-I EMR 7.62 мм (черный)</Russian> </Key> <Key ID="STR_ACE_RealisticNames_srifle_DMR_03_khaki"> <English>TODO: Mk-I EMR 7.62 mm (Khaki)</English> <Czech>TODO: Mk-I EMR 7.62 mm (Khaki)</Czech> <French>Mk-l EMR 7.62 mm (Kaki)</French> <Spanish>TODO: Mk-I EMR 7.62 mm (Caqui)</Spanish> + <Russian>TODO: Mk-I EMR 7.62 мм (хаки)</Russian> </Key> <Key ID="STR_ACE_RealisticNames_srifle_DMR_03_tan"> <English>TODO: Mk-I EMR 7.62 mm (Sand)</English> <Czech>TODO: Mk-I EMR 7.62 mm (Sand)</Czech> <French>Mk-l EMR 7.62 mm (Beige)</French> <Spanish>TODO: Mk-I EMR 7.62 mm (Arena)</Spanish> + <Russian>TODO: Mk-I EMR 7.62 мм (песочный)</Russian> </Key> <Key ID="STR_ACE_RealisticNames_srifle_DMR_03_multicam"> <English>TODO: Mk-I EMR 7.62 mm (Camo)</English> <Czech>TODO: Mk-I EMR 7.62 mm (Camo)</Czech> <French>Mk-l EMR 7.62 mm (Camo)</French> <Spanish>TODO: Mk-I EMR 7.62 mm (Camuflaje)</Spanish> + <Russian>TODO: Mk-I EMR 7.62 мм (камо)</Russian> </Key> <Key ID="STR_ACE_RealisticNames_srifle_DMR_03_woodland"> <English>TODO: Mk-I EMR 7.62 mm (Woodland)</English> <Czech>TODO: Mk-I EMR 7.62 mm (Woodland)</Czech> <French>Mk-l EMR 7.62 mm (Woodland)</French> <Spanish>TODO: Mk-I EMR 7.62 mm (Bosque)</Spanish> + <Russian>TODO: Mk-I EMR 7.62 мм (лесной)</Russian> </Key> <Key ID="STR_ACE_RealisticNames_srifle_DMR_03_spotter"> <English>TODO: NATO DMR (provisional) spotter</English> <Czech>TODO: NATO DMR (provisional) spotter</Czech> <French>NATO DMR (provisoire) Observateur</French> <Spanish>TODO: NATO DMR (provisional) observador</Spanish> + <Russian>TODO: NATO DMR (provisional) корректировщик</Russian> </Key> <Key ID="STR_ACE_RealisticNames_DMR_04"> <English>TODO: ASP-1 Kir 12.7 mm</English> <Czech>TODO: ASP-1 Kir 12.7 mm</Czech> <French>ASP-1 Kir 12.7 mm</French> <Spanish>TODO: ASP-1 Kir 12.7 mm</Spanish> + <Russian>TODO: ASP-1 Kir 12.7 мм</Russian> </Key> <Key ID="STR_ACE_RealisticNames_srifle_DMR_04"> <English>TODO: ASP-1 Kir 12.7 mm (Black)</English> <Czech>TODO: ASP-1 Kir 12.7 mm (Black)</Czech> <French>ASP-1 Kir 12.7 mm (Noir)</French> <Spanish>TODO: ASP-1 Kir 12.7 mm (Negro)</Spanish> + <Russian>TODO: ASP-1 Kir 12.7 мм (черный)</Russian> </Key> <Key ID="STR_ACE_RealisticNames_srifle_DMR_04_Tan"> <English>TODO: ASP-1 Kir 12.7 mm (Tan)</English> <Czech>TODO: ASP-1 Kir 12.7 mm (Tan)</Czech> <French>ASP-1 Kir 12.7 mm (Tan)</French> <Spanish>TODO: ASP-1 Kir 12.7 mm (Tan)</Spanish> + <Russian>TODO: ASP-1 Kir 12.7 мм (бронзовый)</Russian> </Key> <Key ID="STR_ACE_RealisticNames_DMR_05"> <English>TODO: Cyrus 9.3 mm</English> <Czech>TODO: Cyrus 9.3 mm</Czech> <French>Cyrus 9.3 mm</French> <Spanish>TODO: Cyrus 9.3 mm</Spanish> + <Russian>TODO: Cyrus 9.3 мм</Russian> </Key> <Key ID="STR_ACE_RealisticNames_srifle_DMR_05_blk"> <English>TODO: Cyrus 9.3 mm (Black)</English> <Czech>TODO: Cyrus 9.3 mm (Black)</Czech> <French>Cyrus 9.3 mm (Noir)</French> <Spanish>TODO: Cyrus 9.3 mm (Negro)</Spanish> + <Russian>TODO: Cyrus 9.3 мм (черный)</Russian> </Key> <Key ID="STR_ACE_RealisticNames_srifle_DMR_05_hex"> <English>TODO: Cyrus 9.3 mm (Hex)</English> <Czech>TODO: Cyrus 9.3 mm (Hex)</Czech> <French>Cyrus 9.3 mm (Hex)</French> <Spanish>TODO: Cyrus 9.3 mm (Hex)</Spanish> + <Russian>TODO: Cyrus 9.3 мм (гекс)</Russian> </Key> <Key ID="STR_ACE_RealisticNames_srifle_DMR_05_tan"> <English>TODO: Cyrus 9.3 mm (Tan)</English> <Czech>TODO: Cyrus 9.3 mm (Tan)</Czech> <French>Cyrus 9.3 mm (Tan)</French> <Spanish>TODO: Cyrus 9.3 mm (Tan)</Spanish> + <Russian>TODO: Cyrus 9.3 мм (бронза)</Russian> </Key> <Key ID="STR_ACE_RealisticNames_DMR_06"> <English>TODO: Mk14 7.62 mm</English> <Czech>TODO: Mk14 7.62 mm</Czech> <French>Mk 14 7.62 mm</French> <Spanish>TODO: Mk14 7.62 mm</Spanish> + <Russian>TODO: Mk14 7.62 мм</Russian> </Key> <Key ID="STR_ACE_RealisticNames_srifle_DMR_06_camo"> <English>TODO: Mk14 7.62 mm (Camo)</English> <Czech>TODO: Mk14 7.62 mm (Camo)</Czech> <French>Mk 14 7.62 mm (Camo)</French> <Spanish>TODO: Mk14 7.62 mm (Camuflaje)</Spanish> + <Russian>TODO: Mk14 7.62 мм (камо)</Russian> </Key> <Key ID="STR_ACE_RealisticNames_srifle_DMR_06_olive"> <English>TODO: Mk14 7.62 mm (Olive)</English> <Czech>TODO: Mk14 7.62 mm (Olive)</Czech> <French>Mk 14 7.62 mm (Olive)</French> <Spanish>TODO: Mk14 7.62 mm (Oliva)</Spanish> + <Russian>TODO: Mk14 7.62 мм (олива)</Russian> </Key> <Key ID="STR_ACE_RealisticNames_MMG_01"> <English>TODO: Navid 9.3 mm</English> <Czech>TODO: Navid 9.3 mm</Czech> <French>Navid 9.3 mm</French> <Spanish>TODO: Navid 9.3 mm</Spanish> + <Russian>TODO: Navid 9.3 мм</Russian> </Key> <Key ID="STR_ACE_RealisticNames_MMG_01_hex"> <English>TODO: Navid 9.3 mm (Hex)</English> <Czech>TODO: Navid 9.3 mm (Hex)</Czech> <French>Navid 9.3 mm (Hex)</French> <Spanish>TODO: Navid 9.3 mm (Hex)</Spanish> + <Russian>TODO: Navid 9.3 мм (гекс)</Russian> </Key> <Key ID="STR_ACE_RealisticNames_MMG_01_tan"> <English>TODO: Navid 9.3 mm (Tan)</English> <Czech>TODO: Navid 9.3 mm (Tan)</Czech> <French>Navid 9.3 mm (Tan)</French> <Spanish>TODO: Navid 9.3 mm (Tan)</Spanish> + <Russian>TODO: Navid 9.3 мм (бронза)</Russian> </Key> <Key ID="STR_ACE_RealisticNames_MMG_02"> <English>TODO: SPMG .338</English> <Czech>TODO: SPMG .338</Czech> <French>SPMG .338</French> <Spanish>TODO: SPMG .338</Spanish> + <Russian>TODO: SPMG .338</Russian> </Key> <Key ID="STR_ACE_RealisticNames_MMG_02_camo"> <English>TODO: SPMG .338 (MTP)</English> <Czech>TODO: SPMG .338 (MTP)</Czech> <French>SPMG .338 (MTP)</French> <Spanish>TODO: SPMG .338 (MTP)</Spanish> + <Russian>TODO: SPMG .338 (MTP)</Russian> </Key> <Key ID="STR_ACE_RealisticNames_MMG_02_black"> <English>TODO: SPMG .338 (Black)</English> <Czech>TODO: SPMG .338 (Black)</Czech> <French>SPMG .338 (Noir)</French> <Spanish>TODO: SPMG .338 (Negro)</Spanish> + <Russian>TODO: SPMG .338 (черный)</Russian> </Key> <Key ID="STR_ACE_RealisticNames_MMG_02_sand"> <English>TODO: SPMG .338 (Sand)</English> <Czech>TODO: SPMG .338 (Sand)</Czech> <French>SPMG .338 (Beige)</French> <Spanish>TODO: SPMG .338 (Arena)</Spanish> + <Russian>TODO: SPMG .338 (песочный)</Russian> </Key> </Package> </Project> From 15240ac87c62468c9466bd09c5a33f83396e3528 Mon Sep 17 00:00:00 2001 From: ulteq <ulteq@web.de> Date: Thu, 16 Apr 2015 13:42:28 +0200 Subject: [PATCH 090/109] Minor code change in the extension detection logic --- addons/advanced_ballistics/XEH_postInit.sqf | 5 +++-- addons/advanced_ballistics/script_component.hpp | 2 ++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/addons/advanced_ballistics/XEH_postInit.sqf b/addons/advanced_ballistics/XEH_postInit.sqf index 783a5be569..41615696ac 100644 --- a/addons/advanced_ballistics/XEH_postInit.sqf +++ b/addons/advanced_ballistics/XEH_postInit.sqf @@ -33,9 +33,10 @@ GVAR(AtmosphericDensitySimulationEnabled) = true; GVAR(currentGrid) = 0; GVAR(INIT_MESSAGE_ENABLED) = false; -GVAR(extensionAvailable) = "ace_advanced_ballistics" callExtension "version" == "1.0"; +GVAR(extensionVersion) = ("ace_advanced_ballistics" callExtension "version"); +GVAR(extensionAvailable) = (GVAR(extensionVersion) == EXTENSION_REQUIRED_VERSION); if (!GVAR(extensionAvailable)) exitWith { - if ("ace_advanced_ballistics" callExtension "version" == "") then { + if (GVAR(extensionVersion) == "") then { diag_log text "[ACE] ERROR: ace_advanced_ballistics.dll is missing"; } else { diag_log text "[ACE] ERROR: ace_advanced_ballistics.dll is incompatible"; diff --git a/addons/advanced_ballistics/script_component.hpp b/addons/advanced_ballistics/script_component.hpp index 273afa2f49..70c2f47990 100644 --- a/addons/advanced_ballistics/script_component.hpp +++ b/addons/advanced_ballistics/script_component.hpp @@ -24,3 +24,5 @@ #define STD_AIR_DENSITY_ICAO 1.22498 #define STD_AIR_DENSITY_ASM 1.20885 #define GET_TEMPERATURE_AT_HEIGHT(h) (EGVAR(weather,currentTemperature) - 0.0065 * (h)) + +#define EXTENSION_REQUIRED_VERSION "1.0" From ca3293aa1a33e00aed3f83c4db5dca0295794ade Mon Sep 17 00:00:00 2001 From: ulteq <ulteq@web.de> Date: Thu, 16 Apr 2015 13:43:41 +0200 Subject: [PATCH 091/109] Added ACE_Box_Ammo (WIP): *TODO: Define a model --- addons/ballistics/CfgVehicles.hpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/addons/ballistics/CfgVehicles.hpp b/addons/ballistics/CfgVehicles.hpp index f992f8cc8b..4ea9fc87a2 100644 --- a/addons/ballistics/CfgVehicles.hpp +++ b/addons/ballistics/CfgVehicles.hpp @@ -160,7 +160,12 @@ class CfgVehicles { }; }; - class ACE_Box_Misc: Box_NATO_Support_F { + class ACE_Box_Ammo: NATO_Box_Base { + scope = 2; + accuracy = 1000; + displayName = "[ACE] Ammo Supply Crate"; + // TODO: model = "..."; + author = "$STR_ACE_Common_ACETeam"; class TransportMagazines { MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mag_SD,4); MACRO_ADDMAGAZINE(ACE_10Rnd_762x51_M118LR_Mag,4); From d6cadb593acff5c104c014eb812b1f348411fbf0 Mon Sep 17 00:00:00 2001 From: ulteq <ulteq@web.de> Date: Thu, 16 Apr 2015 13:44:54 +0200 Subject: [PATCH 092/109] Enabled the ATragMX to use the advanced ballistics extension --- addons/atragmx/functions/fnc_calculate_solution.sqf | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/addons/atragmx/functions/fnc_calculate_solution.sqf b/addons/atragmx/functions/fnc_calculate_solution.sqf index 90263a608c..4e7f5981c1 100644 --- a/addons/atragmx/functions/fnc_calculate_solution.sqf +++ b/addons/atragmx/functions/fnc_calculate_solution.sqf @@ -109,8 +109,12 @@ while {_TOF < 15 && (_bulletPos select 1) < _targetRange} do { if (missionNamespace getVariable [QEGVAR(advanced_ballistics,enabled), false]) then { if (missionNamespace getVariable [QEGVAR(advanced_ballistics,AdvancedAirDragEnabled), false]) then { private ["_drag"]; - _drag = -1 * ([_dragModel, _bc, _trueSpeed] call EFUNC(advanced_ballistics,calculateRetardation)); - _bulletAccel = (vectorNormalized _trueVelocity) vectorMultiply (_drag); + _drag = if (missionNamespace getVariable [QEGVAR(advanced_ballistics,extensionAvailable), false]) then { + parseNumber(("ace_advanced_ballistics" callExtension format["retard:%1:%2:%3", _dragModel, _bc, _trueSpeed])) + } else { + ([_dragModel, _bc, _trueSpeed] call EFUNC(advanced_ballistics,calculateRetardation)) + }; + _bulletAccel = (vectorNormalized _trueVelocity) vectorMultiply (-1 * _drag); }; } else { _bulletAccel = _trueVelocity vectorMultiply (_trueSpeed * _airFriction); From 55d9f7a3da2a1fde95146d321e9bdc0a1f70a90c Mon Sep 17 00:00:00 2001 From: ulteq <ulteq@web.de> Date: Thu, 16 Apr 2015 13:46:32 +0200 Subject: [PATCH 093/109] The previous GUI state is now restored when you open the ATragMX --- .../atragmx/functions/fnc_create_dialog.sqf | 20 +++++++++------- addons/atragmx/functions/fnc_init.sqf | 10 ++++++++ .../functions/fnc_show_add_new_gun.sqf | 2 ++ .../atragmx/functions/fnc_show_gun_list.sqf | 10 +++++++- .../atragmx/functions/fnc_show_main_page.sqf | 2 ++ .../atragmx/functions/fnc_show_range_card.sqf | 2 ++ .../functions/fnc_show_range_card_setup.sqf | 10 ++++++++ .../fnc_show_target_range_assist.sqf | 17 +++++++++++++ .../fnc_show_target_speed_assist.sqf | 24 +++++++++++++++++++ .../fnc_show_target_speed_assist_timer.sqf | 2 ++ .../fnc_target_speed_assist_timer.sqf | 2 -- .../atragmx/functions/fnc_toggle_gun_list.sqf | 6 ----- .../functions/fnc_toggle_range_card.sqf | 2 -- .../functions/fnc_toggle_range_card_setup.sqf | 10 +------- .../fnc_toggle_target_range_assist.sqf | 15 ------------ .../fnc_toggle_target_speed_assist.sqf | 22 ----------------- .../functions/fnc_update_target_selection.sqf | 2 -- .../functions/fnc_update_unit_selection.sqf | 2 -- addons/atragmx/script_component.hpp | 4 +++- 19 files changed, 94 insertions(+), 70 deletions(-) diff --git a/addons/atragmx/functions/fnc_create_dialog.sqf b/addons/atragmx/functions/fnc_create_dialog.sqf index 01cdcba184..8dc0f3e34f 100644 --- a/addons/atragmx/functions/fnc_create_dialog.sqf +++ b/addons/atragmx/functions/fnc_create_dialog.sqf @@ -23,15 +23,19 @@ createDialog 'ATragMX_Display'; call FUNC(update_target_selection); -true call FUNC(show_main_page); +GVAR(showMainPage) call FUNC(show_main_page); -false call FUNC(show_add_new_gun); -false call FUNC(show_gun_list); -false call FUNC(show_range_card); -false call FUNC(show_range_card_setup); -false call FUNC(show_target_range_assist); -false call FUNC(show_target_speed_assist); -false call FUNC(show_target_speed_assist_timer); +GVAR(showAddNewGun) call FUNC(show_add_new_gun); +GVAR(showGunList) call FUNC(show_gun_list); +GVAR(showRangeCard) call FUNC(show_range_card); +if (GVAR(showRangeCard)) then { + ctrlSetFocus (_dsp displayCtrl 5001); + [] call FUNC(update_range_card); +}; +GVAR(showRangeCardSetup) call FUNC(show_range_card_setup); +GVAR(showTargetRangeAssist) call FUNC(show_target_range_assist); +GVAR(showTargetSpeedAssist) call FUNC(show_target_speed_assist); +GVAR(showTargetSpeedAssistTimer) call FUNC(show_target_speed_assist_timer); { lbAdd [6000, _x select 0]; diff --git a/addons/atragmx/functions/fnc_init.sqf b/addons/atragmx/functions/fnc_init.sqf index 3f46a71fe2..267c04ea6f 100644 --- a/addons/atragmx/functions/fnc_init.sqf +++ b/addons/atragmx/functions/fnc_init.sqf @@ -56,3 +56,13 @@ GVAR(windageOutput) = [0, 0, 0, 0]; GVAR(leadOutput) = [0, 0, 0, 0]; GVAR(tofOutput) = [0, 0, 0, 0]; GVAR(velocityOutput) = [0, 0, 0, 0]; + +GVAR(showMainPage) = true; +GVAR(showAddNewGun) = false; +GVAR(showGunList) = false; +GVAR(showRangeCard) = false; +GVAR(showRangeCardSetup) = false; +GVAR(showTargetRangeAssist) = false; +GVAR(showTargetSpeedAssist) = false; +GVAR(showTargetSpeedAssistTimer) = false; + diff --git a/addons/atragmx/functions/fnc_show_add_new_gun.sqf b/addons/atragmx/functions/fnc_show_add_new_gun.sqf index 12815194dd..b1fd1deb44 100644 --- a/addons/atragmx/functions/fnc_show_add_new_gun.sqf +++ b/addons/atragmx/functions/fnc_show_add_new_gun.sqf @@ -15,4 +15,6 @@ */ #include "script_component.hpp" +GVAR(showAddNewGun) = _this; + {ctrlShow [_x, _this]} forEach [11000, 11001, 11002, 11003]; \ No newline at end of file diff --git a/addons/atragmx/functions/fnc_show_gun_list.sqf b/addons/atragmx/functions/fnc_show_gun_list.sqf index c34784e27a..8834f755f0 100644 --- a/addons/atragmx/functions/fnc_show_gun_list.sqf +++ b/addons/atragmx/functions/fnc_show_gun_list.sqf @@ -15,4 +15,12 @@ */ #include "script_component.hpp" -{ctrlShow [_x, _this]} forEach [6000, 6001, 6002, 6003, 6004, 6005, 6006, 6007]; \ No newline at end of file +GVAR(showGunList) = _this; + +{ctrlShow [_x, _this]} forEach [6000, 6001, 6002, 6003, 6004, 6005, 6006, 6007]; + +if (_this) then { + ctrlSetFocus (_dsp displayCtrl 6002); + + lbSetCurSel [6000, (GVAR(currentGun) select GVAR(currentTarget))]; +}; diff --git a/addons/atragmx/functions/fnc_show_main_page.sqf b/addons/atragmx/functions/fnc_show_main_page.sqf index 5eaf5eb560..941c7559c8 100644 --- a/addons/atragmx/functions/fnc_show_main_page.sqf +++ b/addons/atragmx/functions/fnc_show_main_page.sqf @@ -15,5 +15,7 @@ */ #include "script_component.hpp" +GVAR(showMainPage) = _this; + {ctrlShow [_x, _this]} forEach [10, 100, 11, 110, 12, 120, 13, 130, 14, 140, 20, 200, 21, 210, 22, 220, 30, 300, 31, 310, 32, 320, 33, 330, 34, 340, 40, 400, 401, 402, 403, 41, 410, 411, 412, 42, 420, 500, 501, 502, 503, 600, 601, 602, 603, 1000, 2000, 3000, 4000, 4001, 4002, 4003, 4004, 4005, 4006, 4007, 4008]; diff --git a/addons/atragmx/functions/fnc_show_range_card.sqf b/addons/atragmx/functions/fnc_show_range_card.sqf index 655630f6c5..5728d18546 100644 --- a/addons/atragmx/functions/fnc_show_range_card.sqf +++ b/addons/atragmx/functions/fnc_show_range_card.sqf @@ -15,4 +15,6 @@ */ #include "script_component.hpp" +GVAR(showRangeCard) = _this; + {ctrlShow [_x, _this]} forEach [5000, 5001, 5002, 5003, 5004, 5005, 5006, 5007]; diff --git a/addons/atragmx/functions/fnc_show_range_card_setup.sqf b/addons/atragmx/functions/fnc_show_range_card_setup.sqf index 3ed8cb5184..e9afe41cc5 100644 --- a/addons/atragmx/functions/fnc_show_range_card_setup.sqf +++ b/addons/atragmx/functions/fnc_show_range_card_setup.sqf @@ -15,4 +15,14 @@ */ #include "script_component.hpp" +GVAR(showRangeCardSetup) = _this; + {ctrlShow [_x, _this]} forEach [10000, 10001, 10002, 10003, 10004, 10005, 10006, 10007, 10008, 10009]; + +if (_this) then { + ctrlSetFocus (_dsp displayCtrl 10006); + + ctrlSetText [10003, Str(Round(GVAR(rangeCardStartRange)))]; + ctrlSetText [10004, Str(Round(GVAR(rangeCardEndRange)))]; + ctrlSetText [10005, Str(Round(GVAR(rangeCardIncrement)))]; +}; diff --git a/addons/atragmx/functions/fnc_show_target_range_assist.sqf b/addons/atragmx/functions/fnc_show_target_range_assist.sqf index 964e5f93d0..e3ca0a2626 100644 --- a/addons/atragmx/functions/fnc_show_target_range_assist.sqf +++ b/addons/atragmx/functions/fnc_show_target_range_assist.sqf @@ -15,4 +15,21 @@ */ #include "script_component.hpp" +GVAR(showTargetRangeAssist) = _this; + {ctrlShow [_x, _this]} forEach [7000, 7001, 7002, 7003, 7004, 7005, 7006, 7007, 7008, 7009, 7010, 7011, 7012, 7013, 7014, 7015, 7016, 7017, 7018, 7019, 7020]; + +if (_this) then { + ctrlSetFocus (_dsp displayCtrl 7018); + + ctrlSetText [7012, Str(parseNumber(ctrlText 320))]; + ctrlSetText [7013, Str(parseNumber(ctrlText 340))]; + + if (GVAR(currentUnit) != 2) then + { + ctrlSetText [7016, "Yards"]; + } else + { + ctrlSetText [7016, "Meters"]; + }; +}; \ No newline at end of file diff --git a/addons/atragmx/functions/fnc_show_target_speed_assist.sqf b/addons/atragmx/functions/fnc_show_target_speed_assist.sqf index ce1e8588b9..90425e26db 100644 --- a/addons/atragmx/functions/fnc_show_target_speed_assist.sqf +++ b/addons/atragmx/functions/fnc_show_target_speed_assist.sqf @@ -15,4 +15,28 @@ */ #include "script_component.hpp" +GVAR(showTargetSpeedAssist) = _this; + {ctrlShow [_x, _this]} forEach [8000, 8001, 8002, 8003, 8004, 8005, 8006, 8007, 8008, 8009, 8010, 8011, 8012, 8013, 8014, 8015]; + +if (_this) then { + ctrlSetFocus (_dsp displayCtrl 8012); + + ctrlSetText [8004, Str(Round((GVAR(targetRange) select GVAR(currentTarget))))]; + + if (GVAR(currentUnit) != 2) then + { + ctrlSetText [8008, "Yards"]; + } else + { + ctrlSetText [8008, "Meters"]; + }; + + if (GVAR(currentUnit) != 1) then + { + ctrlSetText [8011, "m/s"]; + } else + { + ctrlSetText [8011, "mph"]; + }; +}; diff --git a/addons/atragmx/functions/fnc_show_target_speed_assist_timer.sqf b/addons/atragmx/functions/fnc_show_target_speed_assist_timer.sqf index 5b809b7ca9..8f2ff0c83e 100644 --- a/addons/atragmx/functions/fnc_show_target_speed_assist_timer.sqf +++ b/addons/atragmx/functions/fnc_show_target_speed_assist_timer.sqf @@ -15,4 +15,6 @@ */ #include "script_component.hpp" +GVAR(showTargetSpeedAssistTimer) = _this; + {ctrlShow [_x, _this]} forEach [9000, 9001, 9002]; diff --git a/addons/atragmx/functions/fnc_target_speed_assist_timer.sqf b/addons/atragmx/functions/fnc_target_speed_assist_timer.sqf index 90acd1a84f..d8414ba692 100644 --- a/addons/atragmx/functions/fnc_target_speed_assist_timer.sqf +++ b/addons/atragmx/functions/fnc_target_speed_assist_timer.sqf @@ -15,8 +15,6 @@ */ #include "script_component.hpp" -#define _dsp (uiNamespace getVariable "ATragMX_Display") - if !(ctrlVisible 9000) then { false call FUNC(show_target_speed_assist); diff --git a/addons/atragmx/functions/fnc_toggle_gun_list.sqf b/addons/atragmx/functions/fnc_toggle_gun_list.sqf index 4e24e4cb77..cd4acb1f76 100644 --- a/addons/atragmx/functions/fnc_toggle_gun_list.sqf +++ b/addons/atragmx/functions/fnc_toggle_gun_list.sqf @@ -15,8 +15,6 @@ */ #include "script_component.hpp" -#define _dsp (uiNamespace getVariable "ATragMX_Display") - if (ctrlVisible 6000) then { false call FUNC(show_gun_list); @@ -29,8 +27,4 @@ if (ctrlVisible 6000) then { false call FUNC(show_main_page); true call FUNC(show_gun_list); - - ctrlSetFocus (_dsp displayCtrl 6002); - - lbSetCurSel [6000, (GVAR(currentGun) select GVAR(currentTarget))]; }; diff --git a/addons/atragmx/functions/fnc_toggle_range_card.sqf b/addons/atragmx/functions/fnc_toggle_range_card.sqf index 6a5c386de7..6a75ea5445 100644 --- a/addons/atragmx/functions/fnc_toggle_range_card.sqf +++ b/addons/atragmx/functions/fnc_toggle_range_card.sqf @@ -15,8 +15,6 @@ */ #include "script_component.hpp" -#define _dsp (uiNamespace getVariable "ATragMX_Display") - if (ctrlVisible 5006) then { false call FUNC(show_range_card); diff --git a/addons/atragmx/functions/fnc_toggle_range_card_setup.sqf b/addons/atragmx/functions/fnc_toggle_range_card_setup.sqf index 28534c9dd9..71da18349b 100644 --- a/addons/atragmx/functions/fnc_toggle_range_card_setup.sqf +++ b/addons/atragmx/functions/fnc_toggle_range_card_setup.sqf @@ -3,7 +3,7 @@ * Toggles the range card setup screen on/off * * Arguments: - * Nothing + * Apply new range card settings <BOOL> * * Return Value: * Nothing @@ -15,8 +15,6 @@ */ #include "script_component.hpp" -#define _dsp (uiNamespace getVariable "ATragMX_Display") - if (ctrlVisible 10000) then { false call FUNC(show_range_card_setup); @@ -35,10 +33,4 @@ if (ctrlVisible 10000) then { false call FUNC(show_range_card); true call FUNC(show_range_card_setup); - - ctrlSetFocus (_dsp displayCtrl 10006); - - ctrlSetText [10003, Str(Round(GVAR(rangeCardStartRange)))]; - ctrlSetText [10004, Str(Round(GVAR(rangeCardEndRange)))]; - ctrlSetText [10005, Str(Round(GVAR(rangeCardIncrement)))]; }; diff --git a/addons/atragmx/functions/fnc_toggle_target_range_assist.sqf b/addons/atragmx/functions/fnc_toggle_target_range_assist.sqf index 352a6d0e1f..04e9307ded 100644 --- a/addons/atragmx/functions/fnc_toggle_target_range_assist.sqf +++ b/addons/atragmx/functions/fnc_toggle_target_range_assist.sqf @@ -15,8 +15,6 @@ */ #include "script_component.hpp" -#define _dsp (uiNamespace getVariable "ATragMX_Display") - if (ctrlVisible 7000) then { false call FUNC(show_target_range_assist); @@ -31,17 +29,4 @@ if (ctrlVisible 7000) then { false call FUNC(show_main_page); true call FUNC(show_target_range_assist); - - ctrlSetFocus (_dsp displayCtrl 7018); - - ctrlSetText [7012, Str(parseNumber(ctrlText 320))]; - ctrlSetText [7013, Str(parseNumber(ctrlText 340))]; - - if (GVAR(currentUnit) != 2) then - { - ctrlSetText [7016, "Yards"]; - } else - { - ctrlSetText [7016, "Meters"]; - }; }; diff --git a/addons/atragmx/functions/fnc_toggle_target_speed_assist.sqf b/addons/atragmx/functions/fnc_toggle_target_speed_assist.sqf index 0bda7ad019..66ffaa5d07 100644 --- a/addons/atragmx/functions/fnc_toggle_target_speed_assist.sqf +++ b/addons/atragmx/functions/fnc_toggle_target_speed_assist.sqf @@ -15,8 +15,6 @@ */ #include "script_component.hpp" -#define _dsp (uiNamespace getVariable "ATragMX_Display") - if (ctrlVisible 8000) then { false call FUNC(show_target_speed_assist); @@ -31,24 +29,4 @@ if (ctrlVisible 8000) then { false call FUNC(show_main_page); true call FUNC(show_target_speed_assist); - - ctrlSetFocus (_dsp displayCtrl 8012); - - ctrlSetText [8004, Str(Round((GVAR(targetRange) select GVAR(currentTarget))))]; - - if (GVAR(currentUnit) != 2) then - { - ctrlSetText [8008, "Yards"]; - } else - { - ctrlSetText [8008, "Meters"]; - }; - - if (GVAR(currentUnit) != 1) then - { - ctrlSetText [8011, "m/s"]; - } else - { - ctrlSetText [8011, "mph"]; - }; }; diff --git a/addons/atragmx/functions/fnc_update_target_selection.sqf b/addons/atragmx/functions/fnc_update_target_selection.sqf index d48412def0..476c22d658 100644 --- a/addons/atragmx/functions/fnc_update_target_selection.sqf +++ b/addons/atragmx/functions/fnc_update_target_selection.sqf @@ -15,8 +15,6 @@ */ #include "script_component.hpp" -#define _dsp (uiNamespace getVariable "ATragMX_Display") - (_dsp displayCtrl 500) ctrlEnable true; (_dsp displayCtrl 501) ctrlEnable true; (_dsp displayCtrl 502) ctrlEnable true; diff --git a/addons/atragmx/functions/fnc_update_unit_selection.sqf b/addons/atragmx/functions/fnc_update_unit_selection.sqf index dacc228032..f6a51c5cfc 100644 --- a/addons/atragmx/functions/fnc_update_unit_selection.sqf +++ b/addons/atragmx/functions/fnc_update_unit_selection.sqf @@ -15,8 +15,6 @@ */ #include "script_component.hpp" -#define _dsp (uiNamespace getVariable "ATragMX_Display") - (_dsp displayCtrl 600) ctrlEnable true; (_dsp displayCtrl 601) ctrlEnable true; (_dsp displayCtrl 602) ctrlEnable true; diff --git a/addons/atragmx/script_component.hpp b/addons/atragmx/script_component.hpp index 062df59d19..014524c6dd 100644 --- a/addons/atragmx/script_component.hpp +++ b/addons/atragmx/script_component.hpp @@ -9,4 +9,6 @@ #define DEBUG_SETTINGS DEBUG_SETTINGS_ATRAGMX #endif -#include "\z\ace\addons\main\script_macros.hpp" \ No newline at end of file +#include "\z\ace\addons\main\script_macros.hpp" + +#define _dsp (uiNamespace getVariable "ATragMX_Display") From 4ff68eabd440e779a6612d7a629fbceab8c709c1 Mon Sep 17 00:00:00 2001 From: Coren4 <coren4@gmail.com> Date: Thu, 16 Apr 2015 14:59:19 +0200 Subject: [PATCH 094/109] Update stringtable.xml --- addons/interact_menu/stringtable.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/addons/interact_menu/stringtable.xml b/addons/interact_menu/stringtable.xml index ede985d6b3..98cac6116a 100644 --- a/addons/interact_menu/stringtable.xml +++ b/addons/interact_menu/stringtable.xml @@ -18,6 +18,7 @@ <Russian>Показывать меню взаимодействия в виде списка</Russian> <French>Afficher le menu d'interaction au format liste</French> <Italian>Mostra il menù di interazione come lista</Italian> + <Polish>Wyświetlaj menu interakcji jako listę</Polish> </Key> <Key ID="STR_ACE_Interact_Menu_InteractKey"> <English>Interact Key</English> From dca11e523b1c313ffadb2afee16e38de136b1b1d Mon Sep 17 00:00:00 2001 From: Tachii <zaveruha007@gmail.com> Date: Thu, 16 Apr 2015 18:08:58 +0300 Subject: [PATCH 095/109] Update stringtable.xml --- addons/attach/stringtable.xml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/addons/attach/stringtable.xml b/addons/attach/stringtable.xml index e950d6ea59..db98c4fffc 100644 --- a/addons/attach/stringtable.xml +++ b/addons/attach/stringtable.xml @@ -11,7 +11,7 @@ <Portuguese>Acoplar item >></Portuguese> <Italian>Attacca l'oggetto >></Italian> <Hungarian>Tárgy hozzácsatolása >></Hungarian> - <Russian>Добавить приспособления</Russian> + <Russian>Прикрепить предмет</Russian> </Key> <Key ID="STR_ACE_Attach_Attach"> <English>Attach</English> @@ -23,7 +23,7 @@ <Portuguese>Acoplar</Portuguese> <Italian>Attacca</Italian> <Hungarian>Hozzácsatolás</Hungarian> - <Russian>Присоединить</Russian> + <Russian>Прикрепить</Russian> </Key> <Key ID="STR_ACE_Attach_Detach"> <English>Detach item</English> @@ -47,7 +47,7 @@ <Portuguese>Marcador IV Acoplado</Portuguese> <Italian>Strobo IR attaccata</Italian> <Hungarian>Infravörös jeladó hozzácsatolva</Hungarian> - <Russian>ИК-маяк присоединён</Russian> + <Russian>ИК-маяк прикреплён</Russian> </Key> <Key ID="STR_ACE_Attach_IrStrobe_Detached"> <English>IR Strobe Detached</English> @@ -71,7 +71,7 @@ <Portuguese>Granada IV Acoplada</Portuguese> <Italian>Granata IR attaccata</Italian> <Hungarian>Infravörös gránát hozzácsatolva</Hungarian> - <Russian>ИК-граната присоединена</Russian> + <Russian>ИК-граната прикреплена</Russian> </Key> <Key ID="STR_ACE_Attach_IrGrenade_Detached"> <English>IR Grenade Detached</English> @@ -95,7 +95,7 @@ <Portuguese>Chemlight Acoplada</Portuguese> <Italian>Chemlight attaccata</Italian> <Hungarian>Chemlight hozzácsatolva</Hungarian> - <Russian>Химсвет присоединён</Russian> + <Russian>Химсвет прикреплён</Russian> </Key> <Key ID="STR_ACE_Attach_Chemlight_Detached"> <English>Chemlight Detached</English> From def2f9c28ee3b87c7a5618ea7802a99d3b2bb745 Mon Sep 17 00:00:00 2001 From: Tachii <zaveruha007@gmail.com> Date: Thu, 16 Apr 2015 18:13:53 +0300 Subject: [PATCH 096/109] Update stringtable.xml --- addons/captives/stringtable.xml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/addons/captives/stringtable.xml b/addons/captives/stringtable.xml index fec8e703b1..5683eaf0d3 100644 --- a/addons/captives/stringtable.xml +++ b/addons/captives/stringtable.xml @@ -95,7 +95,7 @@ <Portuguese>Algema Plástica</Portuguese> <Italian>Fascietta</Italian> <Hungarian>Gyorskötöző</Hungarian> - <Russian>Кабельная стяжка</Russian> + <Russian>Пластиковые наручники</Russian> </Key> <Key ID="STR_ACE_Captives_CableTieDescription"> <English>Cable ties that allow you to restrain prisoners.</English> @@ -107,7 +107,7 @@ <Portuguese>A algema plástica permite que você contenha prisioneiros.</Portuguese> <Italian>Fascietta che ti consente di arrestare i prigionieri.</Italian> <Hungarian>Gyorskötöző, emberek foglyulejtéséhez használható.</Hungarian> - <Russian>Кабельные стяжки позволяют связывать пленников.</Russian> + <Russian>Пластиковые наручники позволяют связывать пленников.</Russian> </Key> <Key ID="STR_ACE_Captives_FriskMenuHeader"> <English>Inventory of frisked person</English> @@ -117,7 +117,7 @@ <Hungarian>Motozott személy felszerelése</Hungarian> <Czech>Inventář prohledávané osoby</Czech> <Polish>Ekwipunek rewidowanej osoby</Polish> - <Russian>Инвентарь обысканных лиц</Russian> + <Russian>Инвентарь обысканного человека</Russian> <Portuguese>Inventário da pessoa revistada</Portuguese> </Key> <Key ID="STR_ACE_Captives_FriskPerson"> @@ -139,7 +139,7 @@ <Spanish>Rendirse</Spanish> <Czech>Vzdát se</Czech> <Polish>Poddaj się</Polish> - <Russian>Сдаться в плен</Russian> + <Russian>Сдаться</Russian> <Hungarian>Megadás</Hungarian> <Italian>Arreso</Italian> </Key> @@ -150,7 +150,7 @@ <Spanish>Dejar de rendirse</Spanish> <Czech>Přestat se vzdávat</Czech> <Polish>Podejmij walkę ponownie</Polish> - <Russian>Отменить сдачу в плен</Russian> + <Russian>Прекратить сдачу в плен</Russian> <Hungarian>Megadás abbahagyása</Hungarian> <Italian>Annulla la resa</Italian> </Key> From 184d7c85065fe1ae2a3669a0880548dd1c2cc05f Mon Sep 17 00:00:00 2001 From: jaynus <jaynus@gmail.com> Date: Thu, 16 Apr 2015 08:18:30 -0700 Subject: [PATCH 097/109] Tool addition. Search for missing private declarations by file. --- tools/search_privates.py | 80 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 tools/search_privates.py diff --git a/tools/search_privates.py b/tools/search_privates.py new file mode 100644 index 0000000000..61ac155e64 --- /dev/null +++ b/tools/search_privates.py @@ -0,0 +1,80 @@ +#!/usr/bin/env python3 + +import fnmatch +import os +import re +import ntpath +from pyparsing import * + + + + +def check_privates(filepath): + + def pushClosing(t): + closingStack.append(closing.expr) + closing << Literal( closingFor[t[0]] ) + + def popClosing(): + closing << closingStack.pop() + + with open(filepath, 'r') as file: + content = file.read() + + priv_use = [] + priv_use = [] + priv_declared = [] + + # Regex search privates + srch = re.compile('(?<![_a-zA-Z])(_[a-zA-Z]*?)[ ,\}\]\)";]') + priv_use = srch.findall(content) + priv_use = sorted(set(priv_use)) + + # Private declaration search + srch = re.compile('private.*') + priv_srch_declared = srch.findall(content) + priv_srch_declared = sorted(set(priv_srch_declared)) + + priv_dec_str = ''.join(priv_srch_declared) + + srch = re.compile('"(.+?)"') + priv_split = srch.findall(priv_dec_str) + priv_split = sorted(set(priv_split)) + priv_declared += priv_split; + + if '_this' in priv_declared: priv_declared.remove('_this') + if '_this' in priv_use: priv_use.remove('_this') + + if '_x' in priv_declared: priv_declared.remove('_x') + if '_x' in priv_use: priv_use.remove('_x') + + if '_forEachIndex' in priv_declared: priv_declared.remove('_forEachIndex') + if '_forEachIndex' in priv_use: priv_use.remove('_forEachIndex') + + missing = [] + for s in priv_use: + if s not in priv_declared: + if s not in missing: + missing.append(s) + + if len(missing) > 0: + print filepath + for bad_priv in missing: + print '\t' + bad_priv + +def main(): + + print("#########################") + print("# Search your Privates #") + print("#########################") + + sqf_list = [] + for root, dirnames, filenames in os.walk('../addons'): + for filename in fnmatch.filter(filenames, '*.sqf'): + sqf_list.append(os.path.join(root, filename)) + + for filename in sqf_list: + check_privates(filename) + +if __name__ == "__main__": + main() \ No newline at end of file From 2466d83cac6f5e55b860fe9ce2e3876227d0deee Mon Sep 17 00:00:00 2001 From: Tachii <zaveruha007@gmail.com> Date: Thu, 16 Apr 2015 18:19:11 +0300 Subject: [PATCH 098/109] Update stringtable.xml --- addons/common/stringtable.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/common/stringtable.xml b/addons/common/stringtable.xml index ade58c3742..d9ee389166 100644 --- a/addons/common/stringtable.xml +++ b/addons/common/stringtable.xml @@ -403,7 +403,7 @@ <German>Die Hintergrundfarbe der ACE-Hinweise.</German> <Spanish>El color de fondo de las notificaciones del ACE</Spanish> <Italian>Il colore di sfondo dei suggerimenti dell'ACE.</Italian> - <Russian>Цвет фона всплывающий подсказок АСЕ.</Russian> + <Russian>Цвет фона всплывающих подсказок АСЕ.</Russian> <Polish>Kolor tła dla powiadomień ACE</Polish> <French>Notifications ACE: couleur de l'arrière plan</French> <Czech>Barva pozadí ACE nápověd.</Czech> From f5078020fbf358ea888fede1f68a0f0a858200db Mon Sep 17 00:00:00 2001 From: Tachii <zaveruha007@gmail.com> Date: Thu, 16 Apr 2015 18:20:40 +0300 Subject: [PATCH 099/109] Update AUTHORS.txt https://github.com/acemod/ACE3/blob/master/addons/movement/config.cpp I want to be famous! --- AUTHORS.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS.txt b/AUTHORS.txt index fa47b6a427..52238dc8ac 100644 --- a/AUTHORS.txt +++ b/AUTHORS.txt @@ -81,3 +81,4 @@ BlackPixxel Asgar Serran <piechottaf@web.de> Kavinsky <nmunozfernandez@gmail.com> Coren <coren4@gmail.com> +Tachi <zaveruha007@gmail.com> From e6f29cfdb1e5dc12d1f56f127c5ebf70267092de Mon Sep 17 00:00:00 2001 From: Tachii <zaveruha007@gmail.com> Date: Thu, 16 Apr 2015 18:23:00 +0300 Subject: [PATCH 100/109] Update AUTHORS.txt --- AUTHORS.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AUTHORS.txt b/AUTHORS.txt index 52238dc8ac..2f16aea49c 100644 --- a/AUTHORS.txt +++ b/AUTHORS.txt @@ -71,6 +71,7 @@ Robert Boklahánics <bokirobi@gmail.com> ramius86 <pasini86@hotmail.com> simon84 Sniperwolf572 <tenga6@gmail.com> +Tachi <zaveruha007@gmail.com> Tonic Tourorist <tourorist@gmail.com> Valentin Torikian <valentin.torikian@gmail.com> @@ -81,4 +82,3 @@ BlackPixxel Asgar Serran <piechottaf@web.de> Kavinsky <nmunozfernandez@gmail.com> Coren <coren4@gmail.com> -Tachi <zaveruha007@gmail.com> From defe46b7695fbaa4852ff9d6c7cd17f8a13c0988 Mon Sep 17 00:00:00 2001 From: ulteq <ulteq@web.de> Date: Thu, 16 Apr 2015 17:30:50 +0200 Subject: [PATCH 101/109] Added new PFH abort condition (velocity < 100 m/s) --- .../functions/fnc_handleFired.sqf | 16 +++++++++------- .../functions/fnc_updateTrajectoryPFH.sqf | 18 +++++++++--------- 2 files changed, 18 insertions(+), 16 deletions(-) diff --git a/addons/advanced_ballistics/functions/fnc_handleFired.sqf b/addons/advanced_ballistics/functions/fnc_handleFired.sqf index d628f012ee..a36f576bd6 100644 --- a/addons/advanced_ballistics/functions/fnc_handleFired.sqf +++ b/addons/advanced_ballistics/functions/fnc_handleFired.sqf @@ -158,15 +158,17 @@ if (GVAR(AdvancedAirDragEnabled)) then { [{ private ["_index", "_bullet", "_caliber", "_bulletTraceVisible", "_bulletVelocity", "_bulletPosition"]; EXPLODE_4_PVT(_this select 0,_bullet,_caliber,_bulletTraceVisible,_index); - - if (!alive _bullet) exitWith { - [_this select 1] call cba_fnc_removePerFrameHandler; - }; - + _bulletVelocity = velocity _bullet; _bulletPosition = getPosASL _bullet; - - if (_bulletTraceVisible && vectorMagnitude _bulletVelocity > 600) then { + + _bulletSpeed = vectorMagnitude _bulletVelocity; + + if (!alive _bullet || _bulletSpeed < 100) exitWith { + [_this select 1] call cba_fnc_removePerFrameHandler; + }; + + if (_bulletTraceVisible && _bulletSpeed > 600) then { drop ["\A3\data_f\ParticleEffects\Universal\Refract","","Billboard",1,0.1,getPos _bullet,[0,0,0],0,1.275,1,0,[0.4*_caliber,0.2*_caliber],[[0,0,0,0.6],[0,0,0,0.4]],[1,0],0,0,"","",""]; }; diff --git a/addons/winddeflection/functions/fnc_updateTrajectoryPFH.sqf b/addons/winddeflection/functions/fnc_updateTrajectoryPFH.sqf index 9859f330dd..42bac3eac8 100644 --- a/addons/winddeflection/functions/fnc_updateTrajectoryPFH.sqf +++ b/addons/winddeflection/functions/fnc_updateTrajectoryPFH.sqf @@ -22,17 +22,17 @@ _bullet = _args select 0; _airFriction = _args select 1; _time = _args select 2; - - if (!alive _bullet) exitwith { - [_this select 1] call cba_fnc_removePerFrameHandler; - }; - - _deltaT = time - _time; - _args set[2, time]; - + _bulletVelocity = velocity _bullet; _bulletSpeed = vectorMagnitude _bulletVelocity; - + + if (!alive _bullet || _bulletSpeed < 100) exitwith { + [_this select 1] call cba_fnc_removePerFrameHandler; + }; + + _deltaT = time - _time; + _args set[2, time]; + if (vectorMagnitude ACE_wind > 0) then { _trueVelocity = _bulletVelocity vectorDiff ACE_wind; _trueSpeed = vectorMagnitude _trueVelocity; From fe7596d28d4be75267a888d877a736b11cd02605 Mon Sep 17 00:00:00 2001 From: jaynus <jaynus@gmail.com> Date: Thu, 16 Apr 2015 08:46:11 -0700 Subject: [PATCH 102/109] handles CBA PARAMS_ and EXPLODE_ --- tools/search_privates.py | 48 ++++++++++++++++++++++++++++------------ 1 file changed, 34 insertions(+), 14 deletions(-) diff --git a/tools/search_privates.py b/tools/search_privates.py index 61ac155e64..20b8f49ab1 100644 --- a/tools/search_privates.py +++ b/tools/search_privates.py @@ -4,11 +4,38 @@ import fnmatch import os import re import ntpath -from pyparsing import * +import sys +import argparse +def get_private_declare(content): + priv_declared = [] + + srch = re.compile('private.*') + priv_srch_declared = srch.findall(content) + priv_srch_declared = sorted(set(priv_srch_declared)) + + priv_dec_str = ''.join(priv_srch_declared) + + srch = re.compile('') + priv_split = srch.findall(priv_dec_str) + priv_split = sorted(set(priv_split)) + priv_declared += priv_split; + + srch = re.compile('PARAMS_[0-9].*|EXPLODE_PVT_[0-9].*') + priv_srch_declared = srch.findall(content) + priv_srch_declared = sorted(set(priv_srch_declared)) + + priv_dec_str = ''.join(priv_srch_declared) + + srch = re.compile('(?<![_a-zA-Z])(_[a-zA-Z]*?)[ ,\}\]\)";]') + priv_split = srch.findall(priv_dec_str) + priv_split = sorted(set(priv_split)) - - + priv_declared += priv_split; + + + return priv_declared + def check_privates(filepath): def pushClosing(t): @@ -23,7 +50,7 @@ def check_privates(filepath): priv_use = [] priv_use = [] - priv_declared = [] + # Regex search privates srch = re.compile('(?<![_a-zA-Z])(_[a-zA-Z]*?)[ ,\}\]\)";]') @@ -31,16 +58,7 @@ def check_privates(filepath): priv_use = sorted(set(priv_use)) # Private declaration search - srch = re.compile('private.*') - priv_srch_declared = srch.findall(content) - priv_srch_declared = sorted(set(priv_srch_declared)) - - priv_dec_str = ''.join(priv_srch_declared) - - srch = re.compile('"(.+?)"') - priv_split = srch.findall(priv_dec_str) - priv_split = sorted(set(priv_split)) - priv_declared += priv_split; + priv_declared = get_private_declare(content) if '_this' in priv_declared: priv_declared.remove('_this') if '_this' in priv_use: priv_use.remove('_this') @@ -50,6 +68,8 @@ def check_privates(filepath): if '_forEachIndex' in priv_declared: priv_declared.remove('_forEachIndex') if '_forEachIndex' in priv_use: priv_use.remove('_forEachIndex') + if '_foreachIndex' in priv_declared: priv_declared.remove('_foreachIndex') + if '_foreachIndex' in priv_use: priv_use.remove('_foreachIndex') missing = [] for s in priv_use: From 5117595eccca4725a68b075e8502641ac433d3da Mon Sep 17 00:00:00 2001 From: ulteq <ulteq@web.de> Date: Thu, 16 Apr 2015 17:52:21 +0200 Subject: [PATCH 103/109] Minor performance improvement --- addons/advanced_ballistics/functions/fnc_handleFired.sqf | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/addons/advanced_ballistics/functions/fnc_handleFired.sqf b/addons/advanced_ballistics/functions/fnc_handleFired.sqf index a36f576bd6..182166d3af 100644 --- a/addons/advanced_ballistics/functions/fnc_handleFired.sqf +++ b/addons/advanced_ballistics/functions/fnc_handleFired.sqf @@ -95,12 +95,11 @@ if (GVAR(ammoTemperatureEnabled)) then { }; }; -// TODO: Make _bulletTraceVisible global and toggle it with events _bulletTraceVisible = false; -if (GVAR(bulletTraceEnabled) && currentWeapon ACE_player == primaryWeapon ACE_player && count primaryWeaponItems ACE_player > 2) then { +if (GVAR(bulletTraceEnabled) && cameraView == "GUNNER" && currentWeapon ACE_player == primaryWeapon ACE_player && count primaryWeaponItems ACE_player > 2) then { _opticsName = (primaryWeaponItems ACE_player) select 2; _opticType = getNumber(configFile >> "cfgWeapons" >> _opticsName >> "ItemInfo" >> "opticType"); - _bulletTraceVisible = (_opticType == 2 || currentWeapon ACE_player in ["ACE_Vector", "Binocular", "Rangefinder", "Laserdesignator"]) && cameraView == "GUNNER"; + _bulletTraceVisible = (_opticType == 2 || currentWeapon ACE_player in ["ACE_Vector", "Binocular", "Rangefinder", "Laserdesignator"]); }; _caliber = getNumber(configFile >> "cfgAmmo" >> _ammo >> "ACE_caliber"); From b50c615e2c2a962476101e26e1d11bb61bcca89b Mon Sep 17 00:00:00 2001 From: jaynus <jaynus@gmail.com> Date: Thu, 16 Apr 2015 09:00:22 -0700 Subject: [PATCH 104/109] Updated for module-specific command line argument. --- tools/search_privates.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/tools/search_privates.py b/tools/search_privates.py index 20b8f49ab1..eccde2fc26 100644 --- a/tools/search_privates.py +++ b/tools/search_privates.py @@ -21,7 +21,7 @@ def get_private_declare(content): priv_split = sorted(set(priv_split)) priv_declared += priv_split; - srch = re.compile('PARAMS_[0-9].*|EXPLODE_PVT_[0-9].*') + srch = re.compile('PARAMS_[0-9].*|EXPLODE_[0-9]_PVT.*') priv_srch_declared = srch.findall(content) priv_srch_declared = sorted(set(priv_srch_declared)) @@ -89,7 +89,12 @@ def main(): print("#########################") sqf_list = [] - for root, dirnames, filenames in os.walk('../addons'): + + parser = argparse.ArgumentParser() + parser.add_argument('-m','--module', help='only search specified module addon folder', required=False, default=".") + args = parser.parse_args() + + for root, dirnames, filenames in os.walk('../addons' + '/' + args.module): for filename in fnmatch.filter(filenames, '*.sqf'): sqf_list.append(os.path.join(root, filename)) From e35d3dab49c3a15b3606022e15c045d8c54800a8 Mon Sep 17 00:00:00 2001 From: ulteq <ulteq@web.de> Date: Thu, 16 Apr 2015 18:14:32 +0200 Subject: [PATCH 105/109] Overworked the ATragMX target slot logic: *Added missing privates *Solutions are now automatically calculated on target/gun selection --- addons/atragmx/RscTitles.hpp | 16 +++++----- addons/atragmx/XEH_preInit.sqf | 1 + .../functions/fnc_calculate_range_card.sqf | 22 +++++++------- .../fnc_calculate_scope_base_angle.sqf | 1 + .../fnc_calculate_target_solution.sqf | 23 +++++++------- addons/atragmx/functions/fnc_change_gun.sqf | 12 ++++---- .../functions/fnc_change_target_slot.sqf | 26 ++++++++++++++++ .../functions/fnc_cycle_scope_unit.sqf | 2 +- addons/atragmx/functions/fnc_init.sqf | 12 ++++---- addons/atragmx/functions/fnc_parse_input.sqf | 28 ++++++++--------- .../fnc_reset_relative_click_memory.sqf | 4 +-- addons/atragmx/functions/fnc_save_gun.sqf | 2 +- .../atragmx/functions/fnc_show_gun_list.sqf | 2 +- .../functions/fnc_update_atmosphere.sqf | 8 ++--- addons/atragmx/functions/fnc_update_gun.sqf | 22 +++++++------- .../functions/fnc_update_range_card.sqf | 8 ++--- .../fnc_update_relative_click_memory.sqf | 4 +-- .../atragmx/functions/fnc_update_result.sqf | 10 +++---- .../functions/fnc_update_scope_unit.sqf | 4 +-- .../functions/fnc_update_zero_range.sqf | 30 +++++++++---------- 20 files changed, 133 insertions(+), 104 deletions(-) create mode 100644 addons/atragmx/functions/fnc_change_target_slot.sqf diff --git a/addons/atragmx/RscTitles.hpp b/addons/atragmx/RscTitles.hpp index 8c0a647839..b60ff03fdc 100644 --- a/addons/atragmx/RscTitles.hpp +++ b/addons/atragmx/RscTitles.hpp @@ -230,12 +230,12 @@ class ATragMX_Display { w=0.03; h=0.03; colorBackground[]={0,0,0,0.0}; - action=QUOTE(((GVAR(currentGun) select GVAR(currentTarget)) + (count GVAR(gunList)) - 1) % (count GVAR(gunList)) call FUNC(change_gun)); + action=QUOTE((GVAR(currentGun) + (count GVAR(gunList)) - 1) % (count GVAR(gunList)) call FUNC(change_gun)); }; class BOTTOM: TOP { idc=-1; y=0.265*safezoneH+safezoneY+0.955; - action=QUOTE(((GVAR(currentGun) select GVAR(currentTarget)) + (count GVAR(gunList)) + 1) % (count GVAR(gunList)) call FUNC(change_gun)); + action=QUOTE((GVAR(currentGun) + (count GVAR(gunList)) + 1) % (count GVAR(gunList)) call FUNC(change_gun)); }; class LEFT: ATragMX_RscButton { idc=-1; @@ -244,12 +244,12 @@ class ATragMX_Display { w=0.05; h=0.03; colorBackground[]={0,0,0,0}; - action=QUOTE(call FUNC(parse_input); GVAR(currentTarget) = (4 + GVAR(currentTarget) - 1) % 4; call FUNC(update_target_selection)); + action=QUOTE(((4 + GVAR(currentTarget) - 1) % 4) call FUNC(change_target_slot)); }; class RIGHT: LEFT { idc=-1; x=0.55*safezoneW+safezoneX+0.2725; - action=QUOTE(call FUNC(parse_input); GVAR(currentTarget) = (4 + GVAR(currentTarget) + 1) % 4; call FUNC(update_target_selection)); + action=QUOTE(((4 + GVAR(currentTarget) + 1) % 4) call FUNC(change_target_slot)); }; class TOP_LEFT: ATragMX_RscButton { idc=-1; @@ -420,25 +420,25 @@ class ATragMX_Display { colorBackgroundDisabled[]={0,0,0,1}; colorBackgroundActive[]={0,0,0,0}; text="A"; - action=QUOTE(call FUNC(parse_input); GVAR(currentTarget)=0; call FUNC(update_target_selection)); + action=QUOTE(0 call FUNC(change_target_slot)); }; class TEXT_TARGET_B: TEXT_TARGET_A { idc=501; x=0.550*safezoneW+safezoneX+0.2281; text="B"; - action=QUOTE(call FUNC(parse_input); GVAR(currentTarget)=1; call FUNC(update_target_selection)); + action=QUOTE(1 call FUNC(change_target_slot)); }; class TEXT_TARGET_C: TEXT_TARGET_B { idc=502; x=0.550*safezoneW+safezoneX+0.2512; text="C"; - action=QUOTE(call FUNC(parse_input); GVAR(currentTarget)=2; call FUNC(update_target_selection)); + action=QUOTE(2 call FUNC(change_target_slot)); }; class TEXT_TARGET_D: TEXT_TARGET_B { idc=503; x=0.550*safezoneW+safezoneX+0.2743; text="D"; - action=QUOTE(call FUNC(parse_input); GVAR(currentTarget)=3; call FUNC(update_target_selection)); + action=QUOTE(3 call FUNC(change_target_slot)); }; class TEXT_TARGET: TEXT_GUN { diff --git a/addons/atragmx/XEH_preInit.sqf b/addons/atragmx/XEH_preInit.sqf index 91024d05a3..0224fc3e9c 100644 --- a/addons/atragmx/XEH_preInit.sqf +++ b/addons/atragmx/XEH_preInit.sqf @@ -11,6 +11,7 @@ PREP(calculate_target_solution); PREP(calculate_target_speed_assist); PREP(can_show); PREP(change_gun); +PREP(change_target_slot); PREP(create_dialog); PREP(cycle_range_card_columns); PREP(cycle_scope_unit); diff --git a/addons/atragmx/functions/fnc_calculate_range_card.sqf b/addons/atragmx/functions/fnc_calculate_range_card.sqf index 05625a53f6..aecd6496af 100644 --- a/addons/atragmx/functions/fnc_calculate_range_card.sqf +++ b/addons/atragmx/functions/fnc_calculate_range_card.sqf @@ -18,21 +18,21 @@ [] call FUNC(parse_input); private ["_scopeBaseAngle"]; -_scopeBaseAngle = ((GVAR(workingMemory) select GVAR(currentTarget)) select 3); +_scopeBaseAngle = (GVAR(workingMemory) select 3); private ["_bulletMass", "_boreHeight", "_airFriction", "_muzzleVelocity", "_bc", "_dragModel", "_atmosphereModel"]; -_bulletMass = (GVAR(workingMemory) select GVAR(currentTarget)) select 12; -_boreHeight = (GVAR(workingMemory) select GVAR(currentTarget)) select 5; -_airFriction = (GVAR(workingMemory) select GVAR(currentTarget)) select 4; -_muzzleVelocity = (GVAR(workingMemory) select GVAR(currentTarget)) select 1; -_bc = (GVAR(workingMemory) select GVAR(currentTarget)) select 15; -_dragModel = (GVAR(workingMemory) select GVAR(currentTarget)) select 16; -_atmosphereModel = (GVAR(workingMemory) select GVAR(currentTarget)) select 17; +_bulletMass = GVAR(workingMemory) select 12; +_boreHeight = GVAR(workingMemory) select 5; +_airFriction = GVAR(workingMemory) select 4; +_muzzleVelocity = GVAR(workingMemory) select 1; +_bc = GVAR(workingMemory) select 15; +_dragModel = GVAR(workingMemory) select 16; +_atmosphereModel = GVAR(workingMemory) select 17; private ["_temperature", "_barometricPressure", "_relativeHumidity"]; -_temperature = (GVAR(temperature) select GVAR(currentTarget)); -_barometricPressure = (GVAR(barometricPressure) select GVAR(currentTarget)); -_relativeHumidity = (GVAR(relativeHumidity) select GVAR(currentTarget)); +_temperature = GVAR(temperature); +_barometricPressure = GVAR(barometricPressure); +_relativeHumidity = GVAR(relativeHumidity); if (GVAR(currentUnit) == 1) then { _temperature = (_temperature - 32) / 1.8; diff --git a/addons/atragmx/functions/fnc_calculate_scope_base_angle.sqf b/addons/atragmx/functions/fnc_calculate_scope_base_angle.sqf index 4822b08b37..17370c82b2 100644 --- a/addons/atragmx/functions/fnc_calculate_scope_base_angle.sqf +++ b/addons/atragmx/functions/fnc_calculate_scope_base_angle.sqf @@ -34,6 +34,7 @@ _temperature = 15; _barometricPressure = 1013.25; _relativeHumidity = 0; +private ["_result"]; _result = [_scopeBaseAngle, _bulletMass, _boreHeight, _airFriction, _muzzleVelocity, _temperature, _barometricPressure, _relativeHumidity, 1000, 0, 0, 0, 0, _zeroRange, _airFriction, 1, "ICAO", false] call FUNC(calculate_solution); _scopeBaseAngle + (_result select 0) / 60 diff --git a/addons/atragmx/functions/fnc_calculate_target_solution.sqf b/addons/atragmx/functions/fnc_calculate_target_solution.sqf index 57783d9cca..3f4c92c191 100644 --- a/addons/atragmx/functions/fnc_calculate_target_solution.sqf +++ b/addons/atragmx/functions/fnc_calculate_target_solution.sqf @@ -18,21 +18,21 @@ [] call FUNC(parse_input); private ["_scopeBaseAngle"]; -_scopeBaseAngle = ((GVAR(workingMemory) select GVAR(currentTarget)) select 3); +_scopeBaseAngle = (GVAR(workingMemory) select 3); private ["_bulletMass", "_boreHeight", "_airFriction", "_muzzleVelocity", "_bc", "_dragModel", "_atmosphereModel"]; -_bulletMass = (GVAR(workingMemory) select GVAR(currentTarget)) select 12; -_boreHeight = (GVAR(workingMemory) select GVAR(currentTarget)) select 5; -_airFriction = (GVAR(workingMemory) select GVAR(currentTarget)) select 4; -_muzzleVelocity = (GVAR(workingMemory) select GVAR(currentTarget)) select 1; -_bc = (GVAR(workingMemory) select GVAR(currentTarget)) select 15; -_dragModel = (GVAR(workingMemory) select GVAR(currentTarget)) select 16; -_atmosphereModel = (GVAR(workingMemory) select GVAR(currentTarget)) select 17; +_bulletMass = GVAR(workingMemory) select 12; +_boreHeight = GVAR(workingMemory) select 5; +_airFriction = GVAR(workingMemory) select 4; +_muzzleVelocity = GVAR(workingMemory) select 1; +_bc = GVAR(workingMemory) select 15; +_dragModel = GVAR(workingMemory) select 16; +_atmosphereModel = GVAR(workingMemory) select 17; private ["_temperature", "_barometricPressure", "_relativeHumidity"]; -_temperature = (GVAR(temperature) select GVAR(currentTarget)); -_barometricPressure = (GVAR(barometricPressure) select GVAR(currentTarget)); -_relativeHumidity = (GVAR(relativeHumidity) select GVAR(currentTarget)); +_temperature = GVAR(temperature); +_barometricPressure = GVAR(barometricPressure); +_relativeHumidity = GVAR(relativeHumidity); if (GVAR(currentUnit) == 1) then { _temperature = (_temperature - 32) / 1.8; @@ -55,6 +55,7 @@ if (GVAR(currentUnit) == 1) then _targetSpeed = _targetSpeed / 2.23693629; }; +private ["_result"]; _result = [_scopeBaseAngle, _bulletMass, _boreHeight, _airFriction, _muzzleVelocity, _temperature, _barometricPressure, _relativeHumidity, 1000, _windSpeed, _windDirection, _inclinationAngle, _targetSpeed, _targetRange, _bc, _dragModel, _atmosphereModel, false] call FUNC(calculate_solution); diff --git a/addons/atragmx/functions/fnc_change_gun.sqf b/addons/atragmx/functions/fnc_change_gun.sqf index 259441d51d..520e4e85be 100644 --- a/addons/atragmx/functions/fnc_change_gun.sqf +++ b/addons/atragmx/functions/fnc_change_gun.sqf @@ -17,14 +17,14 @@ if (_this < 0 || _this > (count GVAR(gunList)) - 1) exitWith {}; -GVAR(workingMemory) set [GVAR(currentTarget), +(GVAR(gunList) select _this)]; -GVAR(currentGun) set [GVAR(currentTarget), _this]; +GVAR(workingMemory) = +(GVAR(gunList) select _this); +GVAR(currentGun) = _this; -lbSetCurSel [6000, (GVAR(currentGun) select GVAR(currentTarget))]; +lbSetCurSel [6000, GVAR(currentGun)]; -if ((GVAR(scopeUnits) select (GVAR(currentScopeUnit) select GVAR(currentTarget))) != "Clicks") then +if ((GVAR(scopeUnits) select GVAR(currentScopeUnit)) != "Clicks") then { - GVAR(currentScopeUnit) set [GVAR(currentTarget), (GVAR(workingMemory) select GVAR(currentTarget)) select 6]; + GVAR(currentScopeUnit) = GVAR(workingMemory) select 6; }; [] call FUNC(update_gun); @@ -35,4 +35,4 @@ GVAR(leadOutput) set [GVAR(currentTarget), 0]; GVAR(tofOutput) set [GVAR(currentTarget), 0]; GVAR(velocityOutput) set [GVAR(currentTarget), 0]; -[] call FUNC(update_result); +[] call FUNC(calculate_target_solution); diff --git a/addons/atragmx/functions/fnc_change_target_slot.sqf b/addons/atragmx/functions/fnc_change_target_slot.sqf new file mode 100644 index 0000000000..6e6951c6bf --- /dev/null +++ b/addons/atragmx/functions/fnc_change_target_slot.sqf @@ -0,0 +1,26 @@ +/* + * Author: Ruthberg + * Selects a target slot (A, B, C or D) + * + * Arguments: + * target <NUMBER> + * + * Return Value: + * Nothing + * + * Example: + * 2 call ace_atragmx_fnc_change_target_slot + * + * Public: No + */ +#include "script_component.hpp" + +private ["_target"]; +_target = 0 max _this min 3; + +call FUNC(parse_input); + +GVAR(currentTarget) = _target; +call FUNC(update_target_selection); + +call FUNC(calculate_target_solution); diff --git a/addons/atragmx/functions/fnc_cycle_scope_unit.sqf b/addons/atragmx/functions/fnc_cycle_scope_unit.sqf index 99704220d4..36f704bd2d 100644 --- a/addons/atragmx/functions/fnc_cycle_scope_unit.sqf +++ b/addons/atragmx/functions/fnc_cycle_scope_unit.sqf @@ -17,7 +17,7 @@ [] call FUNC(parse_input); -GVAR(currentScopeUnit) set [GVAR(currentTarget), ((GVAR(currentScopeUnit) select GVAR(currentTarget)) + 1) % (count GVAR(scopeUnits))]; +GVAR(currentScopeUnit) = (GVAR(currentScopeUnit) + 1) % (count GVAR(scopeUnits)); [] call FUNC(update_scope_unit); [] call FUNC(update_result); diff --git a/addons/atragmx/functions/fnc_init.sqf b/addons/atragmx/functions/fnc_init.sqf index 267c04ea6f..8fda3570fa 100644 --- a/addons/atragmx/functions/fnc_init.sqf +++ b/addons/atragmx/functions/fnc_init.sqf @@ -15,7 +15,7 @@ */ #include "script_component.hpp" -GVAR(workingMemory) = [+(GVAR(gunList) select 0), +(GVAR(gunList) select 0), +(GVAR(gunList) select 0), +(GVAR(gunList) select 0)]; +GVAR(workingMemory) = +(GVAR(gunList) select 0); GVAR(scopeUnits) = ["MILs", "TMOA", "SMOA", "Clicks"]; @@ -37,13 +37,13 @@ GVAR(speedAssistNumTicksUnit) = 0; GVAR(speedAssistTimer) = true; GVAR(currentUnit) = 2; -GVAR(currentGun) = [0, 0, 0, 0]; +GVAR(currentGun) = 0; GVAR(currentTarget) = 0; -GVAR(currentScopeUnit) = [0, 0, 0, 0]; +GVAR(currentScopeUnit) = 0; -GVAR(temperature) = [15, 15, 15, 15]; -GVAR(barometricPressure) = [1013.25, 1013.25, 1013.25, 1013.25]; -GVAR(relativeHumidity) = [0.5, 0.5, 0.5, 0.5]; +GVAR(temperature) = 15; +GVAR(barometricPressure) = 1013.25; +GVAR(relativeHumidity) = 0.5; GVAR(windSpeed) = [0, 0, 0, 0]; GVAR(windDirection) = [12, 12, 12, 12]; diff --git a/addons/atragmx/functions/fnc_parse_input.sqf b/addons/atragmx/functions/fnc_parse_input.sqf index 4a525dcad8..7d364cbdfc 100644 --- a/addons/atragmx/functions/fnc_parse_input.sqf +++ b/addons/atragmx/functions/fnc_parse_input.sqf @@ -15,9 +15,9 @@ */ #include "script_component.hpp" -GVAR(temperature) set [GVAR(currentTarget), parseNumber(ctrlText 200)]; -GVAR(barometricPressure) set [GVAR(currentTarget), 0 max parseNumber(ctrlText 210)]; -GVAR(relativeHumidity) set [GVAR(currentTarget), (0 max parseNumber(ctrlText 220) min 100) / 100]; +GVAR(temperature) = parseNumber(ctrlText 200); +GVAR(barometricPressure) = 0 max parseNumber(ctrlText 210); +GVAR(relativeHumidity) = (0 max parseNumber(ctrlText 220) min 100) / 100; GVAR(windSpeed) set [GVAR(currentTarget), 0 max abs(parseNumber(ctrlText 300)) min 50]; GVAR(windDirection) set [GVAR(currentTarget), 1 max Round(parseNumber(ctrlText 310)) min 12]; @@ -44,20 +44,20 @@ _boreHeight = 0.1 max _boreHeight min 10; _bulletMass = 1 max _bulletMass min 100; _muzzleVelocity = 100 max _muzzleVelocity min 1400; -(GVAR(workingMemory) select GVAR(currentTarget)) set [5, _boreHeight]; -(GVAR(workingMemory) select GVAR(currentTarget)) set [12, _bulletMass]; +GVAR(workingMemory) set [5, _boreHeight]; +GVAR(workingMemory) set [12, _bulletMass]; if ((missionNamespace getVariable [QEGVAR(advanced_ballistics,enabled), false]) && (missionNamespace getVariable [QEGVAR(advanced_ballistics,AdvancedAirDragEnabled), false])) then { - (GVAR(workingMemory) select GVAR(currentTarget)) set [15, _airFriction]; + GVAR(workingMemory) set [15, _airFriction]; } else { - (GVAR(workingMemory) select GVAR(currentTarget)) set [4, _airFriction]; + GVAR(workingMemory) set [4, _airFriction]; }; -(GVAR(workingMemory) select GVAR(currentTarget)) set [1, _muzzleVelocity]; +GVAR(workingMemory) set [1, _muzzleVelocity]; -private ["_elevationCur", "_elevationCur", "_elevationScopeStep", "_windageScopeStep"]; +private ["_elevationCur", "_windageCur", "_elevationScopeStep", "_windageScopeStep"]; _elevationCur = parseNumber(ctrlText 402); _windageCur = parseNumber(ctrlText 412); -switch ((GVAR(currentScopeUnit) select GVAR(currentTarget))) do +switch (GVAR(currentScopeUnit)) do { case 0: { @@ -73,16 +73,16 @@ switch ((GVAR(currentScopeUnit) select GVAR(currentTarget))) do case 3: { - _elevationScopeStep = ((GVAR(workingMemory) select GVAR(currentTarget)) select 7); - _windageScopeStep = ((GVAR(workingMemory) select GVAR(currentTarget)) select 8); + _elevationScopeStep = (GVAR(workingMemory) select 7); + _windageScopeStep = (GVAR(workingMemory) select 8); _elevationCur = _elevationCur * _elevationScopeStep; _windageCur = _windageCur * _windageScopeStep; }; }; -(GVAR(workingMemory) select GVAR(currentTarget)) set [10, _elevationCur]; -(GVAR(workingMemory) select GVAR(currentTarget)) set [11, _windageCur]; +GVAR(workingMemory) set [10, _elevationCur]; +GVAR(workingMemory) set [11, _windageCur]; [] call FUNC(update_gun); [] call FUNC(update_atmosphere); diff --git a/addons/atragmx/functions/fnc_reset_relative_click_memory.sqf b/addons/atragmx/functions/fnc_reset_relative_click_memory.sqf index 1a20af7452..96d638dc1a 100644 --- a/addons/atragmx/functions/fnc_reset_relative_click_memory.sqf +++ b/addons/atragmx/functions/fnc_reset_relative_click_memory.sqf @@ -15,7 +15,7 @@ */ #include "script_component.hpp" -(GVAR(workingMemory) select GVAR(currentTarget)) set [10, 0]; -(GVAR(workingMemory) select GVAR(currentTarget)) set [11, 0]; +GVAR(workingMemory) set [10, 0]; +GVAR(workingMemory) set [11, 0]; [] call FUNC(update_result); diff --git a/addons/atragmx/functions/fnc_save_gun.sqf b/addons/atragmx/functions/fnc_save_gun.sqf index d797939991..4b42f2027f 100644 --- a/addons/atragmx/functions/fnc_save_gun.sqf +++ b/addons/atragmx/functions/fnc_save_gun.sqf @@ -18,7 +18,7 @@ private ["_index"]; _index = 0 max (lbCurSel 6000); -GVAR(gunList) set [_index, +(GVAR(workingMemory) select GVAR(currentTarget))]; +GVAR(gunList) set [_index, +GVAR(workingMemory)]; lbClear 6000; { diff --git a/addons/atragmx/functions/fnc_show_gun_list.sqf b/addons/atragmx/functions/fnc_show_gun_list.sqf index 8834f755f0..e51aaba13b 100644 --- a/addons/atragmx/functions/fnc_show_gun_list.sqf +++ b/addons/atragmx/functions/fnc_show_gun_list.sqf @@ -22,5 +22,5 @@ GVAR(showGunList) = _this; if (_this) then { ctrlSetFocus (_dsp displayCtrl 6002); - lbSetCurSel [6000, (GVAR(currentGun) select GVAR(currentTarget))]; + lbSetCurSel [6000, GVAR(currentGun)]; }; diff --git a/addons/atragmx/functions/fnc_update_atmosphere.sqf b/addons/atragmx/functions/fnc_update_atmosphere.sqf index 91f1831b04..68a60f72e9 100644 --- a/addons/atragmx/functions/fnc_update_atmosphere.sqf +++ b/addons/atragmx/functions/fnc_update_atmosphere.sqf @@ -15,10 +15,10 @@ */ #include "script_component.hpp" -ctrlSetText [200, Str(Round((GVAR(temperature) select GVAR(currentTarget)) * 10) / 10)]; +ctrlSetText [200, Str(Round(GVAR(temperature) * 10) / 10)]; if (GVAR(currentUnit) == 1) then { - ctrlSetText [210, Str(Round((GVAR(barometricPressure) select GVAR(currentTarget)) * 100) / 100)]; + ctrlSetText [210, Str(Round(GVAR(barometricPressure) * 100) / 100)]; } else { - ctrlSetText [210, Str(Round(GVAR(barometricPressure) select GVAR(currentTarget)))]; + ctrlSetText [210, Str(Round(GVAR(barometricPressure)))]; }; -ctrlSetText [220, Str(Round((GVAR(relativeHumidity) select GVAR(currentTarget)) * 100 * 10) / 10)]; +ctrlSetText [220, Str(Round(GVAR(relativeHumidity) * 100 * 10) / 10)]; diff --git a/addons/atragmx/functions/fnc_update_gun.sqf b/addons/atragmx/functions/fnc_update_gun.sqf index cd80e5f122..1e12439878 100644 --- a/addons/atragmx/functions/fnc_update_gun.sqf +++ b/addons/atragmx/functions/fnc_update_gun.sqf @@ -15,39 +15,39 @@ */ #include "script_component.hpp" -ctrlSetText [1000, (GVAR(workingMemory) select GVAR(currentTarget)) select 0]; +ctrlSetText [1000, GVAR(workingMemory) select 0]; if (GVAR(currentUnit) == 1) then { - ctrlSetText [ 100, Str(Round(((GVAR(workingMemory) select GVAR(currentTarget)) select 5) / 2.54 * 100) / 100)]; + ctrlSetText [ 100, Str(Round((GVAR(workingMemory) select 5) / 2.54 * 100) / 100)]; } else { - ctrlSetText [ 100, Str(Round(((GVAR(workingMemory) select GVAR(currentTarget)) select 5) * 100) / 100)]; + ctrlSetText [ 100, Str(Round((GVAR(workingMemory) select 5) * 100) / 100)]; }; if (GVAR(currentUnit) == 1) then { - ctrlSetText [ 110, Str(Round(((GVAR(workingMemory) select GVAR(currentTarget)) select 12) * 15.4323584))]; + ctrlSetText [ 110, Str(Round((GVAR(workingMemory) select 12) * 15.4323584))]; } else { - ctrlSetText [ 110, Str(Round((GVAR(workingMemory) select GVAR(currentTarget)) select 12))]; + ctrlSetText [ 110, Str(Round(GVAR(workingMemory) select 12))]; }; if ((missionNamespace getVariable [QEGVAR(advanced_ballistics,enabled), false]) && (missionNamespace getVariable [QEGVAR(advanced_ballistics,AdvancedAirDragEnabled), false])) then { - ctrlSetText [ 120, Str(Round(((GVAR(workingMemory) select GVAR(currentTarget)) select 15) * 1000) / 1000)]; + ctrlSetText [ 120, Str(Round((GVAR(workingMemory) select 15) * 1000) / 1000)]; } else { - ctrlSetText [ 120, Str(Round(((GVAR(workingMemory) select GVAR(currentTarget)) select 4) * -1000 * 1000) / 1000)]; + ctrlSetText [ 120, Str(Round((GVAR(workingMemory) select 4) * -1000 * 1000) / 1000)]; }; if (GVAR(currentUnit) == 1) then { - ctrlSetText [130, Str(Round(((GVAR(workingMemory) select GVAR(currentTarget)) select 1) * 3.2808399))]; + ctrlSetText [130, Str(Round((GVAR(workingMemory) select 1) * 3.2808399))]; } else { - ctrlSetText [130, Str(Round((GVAR(workingMemory) select GVAR(currentTarget)) select 1))]; + ctrlSetText [130, Str(Round(GVAR(workingMemory) select 1))]; }; if (GVAR(currentUnit) == 2) then { - ctrlSetText [140, Str(Round((GVAR(workingMemory) select GVAR(currentTarget)) select 2))]; + ctrlSetText [140, Str(Round(GVAR(workingMemory) select 2))]; } else { - ctrlSetText [140, Str(Round(((GVAR(workingMemory) select GVAR(currentTarget)) select 2) * 1.0936133))]; + ctrlSetText [140, Str(Round((GVAR(workingMemory) select 2) * 1.0936133))]; }; [] call FUNC(update_scope_unit); diff --git a/addons/atragmx/functions/fnc_update_range_card.sqf b/addons/atragmx/functions/fnc_update_range_card.sqf index 546c38d24c..358a74ce5d 100644 --- a/addons/atragmx/functions/fnc_update_range_card.sqf +++ b/addons/atragmx/functions/fnc_update_range_card.sqf @@ -15,7 +15,7 @@ */ #include "script_component.hpp" -private ["_range", "_elevation", "_windage", "_lead", "_TOF", "_velocity", "_kineticEnergy", "_rangeOutput", "_elevationOutput", "_windageOutput", "_lastColumnOutput"]; +private ["_range", "_elevation", "_windage", "_elevationScopeStep", "_windageScopeStep", "_lead", "_TOF", "_velocity", "_kineticEnergy", "_rangeOutput", "_elevationOutput", "_windageOutput", "_lastColumnOutput"]; _lastColumnOutput = ""; ctrlSetText [5006, (GVAR(rangeCardLastColumns) select GVAR(rangeCardCurrentColumn))]; @@ -39,7 +39,7 @@ lnbClear 5007; _velocity = _x select 5; _kineticEnergy = _x select 6; - switch ((GVAR(currentScopeUnit) select GVAR(currentTarget))) do + switch (GVAR(currentScopeUnit)) do { case 0: { @@ -55,8 +55,8 @@ lnbClear 5007; case 3: { - _elevationScopeStep = ((GVAR(workingMemory) select GVAR(currentTarget)) select 7); - _windageScopeStep = ((GVAR(workingMemory) select GVAR(currentTarget)) select 8); + _elevationScopeStep = (GVAR(workingMemory) select 7); + _windageScopeStep = (GVAR(workingMemory) select 8); _elevation = Round(_elevation / _elevationScopeStep); _windage = Round(_windage / _windageScopeStep); diff --git a/addons/atragmx/functions/fnc_update_relative_click_memory.sqf b/addons/atragmx/functions/fnc_update_relative_click_memory.sqf index 378124ad4f..1d5add83db 100644 --- a/addons/atragmx/functions/fnc_update_relative_click_memory.sqf +++ b/addons/atragmx/functions/fnc_update_relative_click_memory.sqf @@ -15,7 +15,7 @@ */ #include "script_component.hpp" -(GVAR(workingMemory) select GVAR(currentTarget)) set [10, (GVAR(elevationOutput) select GVAR(currentTarget))]; -(GVAR(workingMemory) select GVAR(currentTarget)) set [11, (GVAR(windageOutput) select GVAR(currentTarget))]; +GVAR(workingMemory) set [10, (GVAR(elevationOutput) select GVAR(currentTarget))]; +GVAR(workingMemory) set [11, (GVAR(windageOutput) select GVAR(currentTarget))]; [] call FUNC(update_result); diff --git a/addons/atragmx/functions/fnc_update_result.sqf b/addons/atragmx/functions/fnc_update_result.sqf index 11ff8a314e..addd1034b2 100644 --- a/addons/atragmx/functions/fnc_update_result.sqf +++ b/addons/atragmx/functions/fnc_update_result.sqf @@ -19,15 +19,15 @@ private ["_elevationAbs", "_elevationRel", "_elevationCur", "_windageAbs", "_win _elevationAbs = (GVAR(elevationOutput) select GVAR(currentTarget)); _windageAbs = (GVAR(windageOutput) select GVAR(currentTarget)); -_elevationCur = (GVAR(workingMemory) select GVAR(currentTarget)) select 10; -_windageCur = (GVAR(workingMemory) select GVAR(currentTarget)) select 11; +_elevationCur = GVAR(workingMemory) select 10; +_windageCur = GVAR(workingMemory) select 11; _elevationRel = _elevationAbs - _elevationCur; _windageRel = _windageAbs - _windageCur; _lead = (GVAR(leadOutput) select GVAR(currentTarget)); -switch ((GVAR(currentScopeUnit) select GVAR(currentTarget))) do +switch (GVAR(currentScopeUnit)) do { case 0: { @@ -55,8 +55,8 @@ switch ((GVAR(currentScopeUnit) select GVAR(currentTarget))) do case 3: { - _elevationScopeStep = ((GVAR(workingMemory) select GVAR(currentTarget)) select 7); - _windageScopeStep = ((GVAR(workingMemory) select GVAR(currentTarget)) select 8); + _elevationScopeStep = (GVAR(workingMemory) select 7); + _windageScopeStep = (GVAR(workingMemory) select 8); _elevationAbs = Round(_elevationAbs / _elevationScopeStep); _windageAbs = Round(_windageAbs / _windageScopeStep); diff --git a/addons/atragmx/functions/fnc_update_scope_unit.sqf b/addons/atragmx/functions/fnc_update_scope_unit.sqf index 2a4435c376..55bb703eee 100644 --- a/addons/atragmx/functions/fnc_update_scope_unit.sqf +++ b/addons/atragmx/functions/fnc_update_scope_unit.sqf @@ -15,5 +15,5 @@ */ #include "script_component.hpp" -ctrlSetText [2000, GVAR(scopeUnits) select (GVAR(currentScopeUnit) select GVAR(currentTarget))]; -ctrlSetText [5000, GVAR(scopeUnits) select (GVAR(currentScopeUnit) select GVAR(currentTarget))]; +ctrlSetText [2000, GVAR(scopeUnits) select GVAR(currentScopeUnit)]; +ctrlSetText [5000, GVAR(scopeUnits) select GVAR(currentScopeUnit)]; diff --git a/addons/atragmx/functions/fnc_update_zero_range.sqf b/addons/atragmx/functions/fnc_update_zero_range.sqf index 15e65c38a6..e7f0c2c301 100644 --- a/addons/atragmx/functions/fnc_update_zero_range.sqf +++ b/addons/atragmx/functions/fnc_update_zero_range.sqf @@ -16,16 +16,16 @@ #include "script_component.hpp" private ["_scopeBaseAngle"]; -_scopeBaseAngle = ((GVAR(workingMemory) select GVAR(currentTarget)) select 3); +_scopeBaseAngle = (GVAR(workingMemory) select 3); private ["_bulletMass", "_boreHeight", "_airFriction", "_muzzleVelocity", "_bc", "_dragModel", "_atmosphereModel"]; -_bulletMass = (GVAR(workingMemory) select GVAR(currentTarget)) select 12; -_boreHeight = (GVAR(workingMemory) select GVAR(currentTarget)) select 5; -_airFriction = (GVAR(workingMemory) select GVAR(currentTarget)) select 4; -_muzzleVelocity = (GVAR(workingMemory) select GVAR(currentTarget)) select 1; -_bc = (GVAR(workingMemory) select GVAR(currentTarget)) select 15; -_dragModel = (GVAR(workingMemory) select GVAR(currentTarget)) select 16; -_atmosphereModel = (GVAR(workingMemory) select GVAR(currentTarget)) select 17; +_bulletMass = GVAR(workingMemory) select 12; +_boreHeight = GVAR(workingMemory) select 5; +_airFriction = GVAR(workingMemory) select 4; +_muzzleVelocity = GVAR(workingMemory) select 1; +_bc = GVAR(workingMemory) select 15; +_dragModel = GVAR(workingMemory) select 16; +_atmosphereModel = GVAR(workingMemory) select 17; private ["_zeroRange"]; _zeroRange = Round(parseNumber(ctrlText 140)); @@ -34,14 +34,14 @@ if (GVAR(currentUnit) != 2) then _zeroRange = _zeroRange / 1.0936133; }; if (_zeroRange < 10) exitWith { - (GVAR(workingMemory) select GVAR(currentTarget)) set [2, _zeroRange]; - (GVAR(workingMemory) select GVAR(currentTarget)) set [3, 0]; + GVAR(workingMemory) set [2, _zeroRange]; + GVAR(workingMemory) set [3, 0]; }; private ["_temperature", "_barometricPressure", "_relativeHumidity"]; -_temperature = (GVAR(temperature) select GVAR(currentTarget)); -_barometricPressure = (GVAR(barometricPressure) select GVAR(currentTarget)); -_relativeHumidity = (GVAR(relativeHumidity) select GVAR(currentTarget)); +_temperature = GVAR(temperature); +_barometricPressure = GVAR(barometricPressure); +_relativeHumidity = GVAR(relativeHumidity); if (GVAR(currentUnit) == 1) then { _temperature = (_temperature - 32) / 1.8; @@ -51,5 +51,5 @@ if (GVAR(currentUnit) == 1) then private ["_result"]; _result = [_scopeBaseAngle, _bulletMass, _boreHeight, _airFriction, _muzzleVelocity, _temperature, _barometricPressure, _relativeHumidity, 1000, 0, 0, 0, 0, _zeroRange, _bc, _dragModel, _atmosphereModel, false] call FUNC(calculate_solution); -(GVAR(workingMemory) select GVAR(currentTarget)) set [2, _zeroRange]; -(GVAR(workingMemory) select GVAR(currentTarget)) set [3, _scopeBaseAngle + (_result select 0) / 60]; +GVAR(workingMemory) set [2, _zeroRange]; +GVAR(workingMemory) set [3, _scopeBaseAngle + (_result select 0) / 60]; From 4e4dee18df3ad25dbf73578308011939578b6231 Mon Sep 17 00:00:00 2001 From: ulteq <ulteq@web.de> Date: Thu, 16 Apr 2015 18:21:19 +0200 Subject: [PATCH 106/109] Added missing privates / Removed unused privates --- addons/advanced_ballistics/functions/fnc_handleFired.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/advanced_ballistics/functions/fnc_handleFired.sqf b/addons/advanced_ballistics/functions/fnc_handleFired.sqf index 182166d3af..baa3a871fa 100644 --- a/addons/advanced_ballistics/functions/fnc_handleFired.sqf +++ b/addons/advanced_ballistics/functions/fnc_handleFired.sqf @@ -19,7 +19,7 @@ */ #include "script_component.hpp" -private ["_unit", "_weapon", "_mode", "_ammo", "_magazine", "_caliber", "_bullet", "_abort", "_index", "_opticsName", "_opticType", "_bulletTraceVisible", "_temperature", "_barometricPressure", "_atmosphereModel", "_bulletMass", "_bulletLength", "_bulletTranslation", "_airFriction", "_dragModel", "_velocityBoundaryData", "_muzzleVelocity", "_muzzleVelocityCoef", "_muzzleVelocityShift", "_bulletVelocity", "_bulletSpeed", "_bulletLength", "_bulletWeight", "_barrelTwist", "_twistDirection", "_stabilityFactor", "_transonicStabilityCoef", "_ACE_Elevation", "_ACE_Windage", "_ID"]; +private ["_unit", "_weapon", "_mode", "_ammo", "_magazine", "_caliber", "_bullet", "_abort", "_index", "_opticsName", "_opticType", "_bulletTraceVisible", "_temperature", "_barometricPressure", "_atmosphereModel", "_bulletMass", "_bulletLength", "_airFriction", "_dragModel", "_muzzleVelocity", "_muzzleVelocityCoef", "_muzzleAccessory", "_initSpeedCoef", "_muzzleVelocityShift", "_bulletVelocity", "_bulletSpeed", "_bulletLength", "_bulletWeight", "_barrelTwist", "_twistDirection", "_stabilityFactor", "_transonicStabilityCoef"]; _unit = _this select 0; _weapon = _this select 1; _mode = _this select 3; @@ -191,7 +191,7 @@ if (GVAR(AdvancedAirDragEnabled)) then { if ((GVAR(bulletDatabaseOccupiedIndices) pushBack _index) == 0) then { [{ - private ["_bulletDatabaseEntry", "_bullet", "_caliber", "_muzzleVelocity", "_frames", "_speed", "_airFriction", "_airFrictionRef", "_dragModel", "_atmosphereModel", "_ballisticCoefficient", "_ballisticCoefficients", "_velocityBoundaries", "_airDensity", "_stabilityFactor", "_transonicStabilityCoef", "_twistDirection", "_unit", "_bulletTraceVisible", "_index", "_temperature", "_humidity", "_deltaT", "_TOF", "_bulletPosition", "_bulletVelocity", "_bulletSpeed", "_trueVelocity", "_trueSpeed", "_bulletSpeedAvg", "_wind", "_drag", "_dragRef", "_vect", "_accel", "_accelRef", "_centripetalAccel", "_pressure", "_pressureDeviation", "_windSourceObstacle", "_windSourceTerrain", "_height", "_roughnessLength"]; + private ["_bulletDatabaseEntry", "_bullet", "_caliber", "_muzzleVelocity", "_frames", "_speed", "_airFriction", "_airFrictionRef", "_dragModel", "_atmosphereModel", "_ballisticCoefficient", "_ballisticCoefficients", "_velocityBoundaries", "_airDensity", "_stabilityFactor", "_transonicStabilityCoef", "_twistDirection", "_unit", "_bulletTraceVisible", "_index", "_temperature", "_humidity", "_deltaT", "_TOF", "_bulletPosition", "_bulletVelocity", "_bulletSpeed", "_trueVelocity", "_trueSpeed", "_bulletSpeedAvg", "_wind", "_drag", "_dragRef", "_vect", "_accel", "_accelRef", "_centripetalAccel", "_pressure", "_pressureDeviation", "_windSourceObstacle", "_windSourceTerrain", "_height", "_roughnessLength", "_bulletDir", "_horizontalDeflection", "_horizontalDeflectionPartial", "_spinDrift", "_spinDriftPartial"]; { _bulletDatabaseEntry = (GVAR(bulletDatabase) select _x); From 4c749a30cf29e529a537b82c3926116b97e5ef4f Mon Sep 17 00:00:00 2001 From: jaynus <jaynus@gmail.com> Date: Thu, 16 Apr 2015 09:22:11 -0700 Subject: [PATCH 107/109] ignore leading numbers search_privates --- tools/search_privates.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/search_privates.py b/tools/search_privates.py index eccde2fc26..8276bef848 100644 --- a/tools/search_privates.py +++ b/tools/search_privates.py @@ -27,7 +27,7 @@ def get_private_declare(content): priv_dec_str = ''.join(priv_srch_declared) - srch = re.compile('(?<![_a-zA-Z])(_[a-zA-Z]*?)[ ,\}\]\)";]') + srch = re.compile('(?<![_a-zA-Z0-9])(_[a-zA-Z]*?)[ ,\}\]\)";]') priv_split = srch.findall(priv_dec_str) priv_split = sorted(set(priv_split)) From d82d9984d82173be00b4a08585c376c0e1f1884b Mon Sep 17 00:00:00 2001 From: ulteq <ulteq@web.de> Date: Thu, 16 Apr 2015 18:29:23 +0200 Subject: [PATCH 108/109] Added missing parentheses --- tools/search_privates.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tools/search_privates.py b/tools/search_privates.py index 8276bef848..fa4801771d 100644 --- a/tools/search_privates.py +++ b/tools/search_privates.py @@ -78,9 +78,9 @@ def check_privates(filepath): missing.append(s) if len(missing) > 0: - print filepath + print (filepath) for bad_priv in missing: - print '\t' + bad_priv + print ('\t' + bad_priv) def main(): @@ -102,4 +102,4 @@ def main(): check_privates(filename) if __name__ == "__main__": - main() \ No newline at end of file + main() From 9d87f08aa629a677c3d515c26b21feb18d0622e8 Mon Sep 17 00:00:00 2001 From: jaynus <jaynus@gmail.com> Date: Thu, 16 Apr 2015 09:48:21 -0700 Subject: [PATCH 109/109] Regex's kill kids. --- tools/search_privates.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/search_privates.py b/tools/search_privates.py index 8276bef848..eef6535e46 100644 --- a/tools/search_privates.py +++ b/tools/search_privates.py @@ -16,7 +16,7 @@ def get_private_declare(content): priv_dec_str = ''.join(priv_srch_declared) - srch = re.compile('') + srch = re.compile('(?<![_a-zA-Z0-9])(_[a-zA-Z]*?)[ ,\}\]\)";]') priv_split = srch.findall(priv_dec_str) priv_split = sorted(set(priv_split)) priv_declared += priv_split;