From 41c89aa1a614ee9870ad8fbf33a756a6e311d9db Mon Sep 17 00:00:00 2001 From: LorenLuke Date: Thu, 1 Aug 2019 01:25:39 -0700 Subject: [PATCH 001/194] Fixes A-10 Cannon Dispersion Changes A-10 Cannon Dispersion to realistic levels. --- addons/aircraft/CfgWeapons.hpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/addons/aircraft/CfgWeapons.hpp b/addons/aircraft/CfgWeapons.hpp index 5543925b5b..bf89ff2d25 100644 --- a/addons/aircraft/CfgWeapons.hpp +++ b/addons/aircraft/CfgWeapons.hpp @@ -16,8 +16,15 @@ class CfgWeapons { magazineReloadTime = 0.1; }; - // bigger mag for comanche class CannonCore; + // Fix attrocious A-10 Cannon Dispersion + class Gatling_30mm_Plane_CAS_01_F : CannonCore { + class LowROF : Mode_FullAuto { + burst = 1; + reloadtime = 0.015; + dispersion = 0.0028; //0.279508497 = 0.25 * sqrt(0.8^-1); (80%, 5mil. https://en.wikipedia.org/wiki/GAU-8_Avenger#Accuracy) - Luke + }; + // bigger mag for comanche class gatling_20mm: CannonCore { magazines[] += {"ACE_500Rnd_20mm_shells_Comanche"}; From b485078e53d06932413085f895c66c2a5c30de06 Mon Sep 17 00:00:00 2001 From: LorenLuke Date: Thu, 1 Aug 2019 01:28:33 -0700 Subject: [PATCH 002/194] Adds Missing Close Brace Adds Missing Close Brace --- addons/aircraft/CfgWeapons.hpp | 1 + 1 file changed, 1 insertion(+) diff --git a/addons/aircraft/CfgWeapons.hpp b/addons/aircraft/CfgWeapons.hpp index bf89ff2d25..905fa35847 100644 --- a/addons/aircraft/CfgWeapons.hpp +++ b/addons/aircraft/CfgWeapons.hpp @@ -23,6 +23,7 @@ class CfgWeapons { burst = 1; reloadtime = 0.015; dispersion = 0.0028; //0.279508497 = 0.25 * sqrt(0.8^-1); (80%, 5mil. https://en.wikipedia.org/wiki/GAU-8_Avenger#Accuracy) - Luke + }; }; // bigger mag for comanche class gatling_20mm: CannonCore { From 09b66294c29174bad7f9b292713bb9892033df6a Mon Sep 17 00:00:00 2001 From: LorenLuke Date: Thu, 1 Aug 2019 02:19:11 -0700 Subject: [PATCH 003/194] Adjusts 30mm cannon projectiles Adjust 30mm cannon projectile damage. Adds AP projectile. Adds Combat Mix Projectile Capability. --- addons/aircraft/CfgAmmo.hpp | 29 +++++++++++++++++++++++++---- 1 file changed, 25 insertions(+), 4 deletions(-) diff --git a/addons/aircraft/CfgAmmo.hpp b/addons/aircraft/CfgAmmo.hpp index 0da9c7760f..7d091244eb 100644 --- a/addons/aircraft/CfgAmmo.hpp +++ b/addons/aircraft/CfgAmmo.hpp @@ -39,9 +39,9 @@ class CfgAmmo { // also adjust tracer, "muh lightshow"; also adjust splash damage radius class Gatling_30mm_HE_Plane_CAS_01_F: BulletBase { - hit = 80; // default: 180 + hit = 40; // default: 180 indirectHit = 12; // default: 4 - indirectHitRange = 3; // default: 3 + indirectHitRange = 4; // default: 3 caliber = 1.4; // default: 5 deflecting = 3; // default: 5 fuseDistance = 3; // default: 10 @@ -51,8 +51,29 @@ class CfgAmmo { // adjust damage and splash damage, closer to bluefor gatling with same caliber class Cannon_30mm_HE_Plane_CAS_02_F: Gatling_30mm_HE_Plane_CAS_01_F { - hit = 70; // default: 150 - indirectHit = 11; // default: 4 + hit = 65; // default: 150 + indirectHit = 10; // default: 4 indirectHitRange = 3; // default: 3 }; + + // adjust damage and splash damage, AP Rounds + class Cannon_30mm_HE_Plane_CAS_03_F: Gatling_30mm_HE_Plane_CAS_01_F { + hit = 75; // default: 150 + indirectHit = 1; // default: 4 + indirectHitRange = 0.25; // default: 3 + deflecting = 5 + }; + + + class SubmunitionBase; + class ACE_30mm_mix : SubmunitionBase { + simulation = "shotSubmunitions"; + submunitionAmmo[] = {"Gatling_30mm_HE_Plane_CAS_03_F",0.8,"Cannon_30mm_HE_Plane_CAS_01_F",0.2}; + weaponType = "cannon"; + model = "\A3\Weapons_f\empty"; + triggerTime = 0.005; + }; + + + }; From 539c4a7a1053fbd8999decc924c45b8ed146944b Mon Sep 17 00:00:00 2001 From: LorenLuke Date: Thu, 1 Aug 2019 02:21:28 -0700 Subject: [PATCH 004/194] Adds Combat Mix Magazine --- addons/aircraft/CfgMagazines.hpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/addons/aircraft/CfgMagazines.hpp b/addons/aircraft/CfgMagazines.hpp index 19797b53d8..e3393eadc3 100644 --- a/addons/aircraft/CfgMagazines.hpp +++ b/addons/aircraft/CfgMagazines.hpp @@ -4,6 +4,11 @@ class CfgMagazines { class 1000Rnd_Gatling_30mm_Plane_CAS_01_F: VehicleMagazine { count = 1170; }; + + class ACE_1000Rnd_Gatling_30mm_Plane_CAS_CM: VehicleMagazine { + count = 1170; + ammo = "ACE_30mm_mix"; + }; // an extended magazine for the comanche class 300Rnd_20mm_shells; From a41640d41157fd488798d2d293de17b858144152 Mon Sep 17 00:00:00 2001 From: LorenLuke Date: Thu, 1 Aug 2019 02:27:12 -0700 Subject: [PATCH 005/194] Added missing semicolon --- addons/aircraft/CfgAmmo.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/aircraft/CfgAmmo.hpp b/addons/aircraft/CfgAmmo.hpp index 7d091244eb..b3223a31a8 100644 --- a/addons/aircraft/CfgAmmo.hpp +++ b/addons/aircraft/CfgAmmo.hpp @@ -61,7 +61,7 @@ class CfgAmmo { hit = 75; // default: 150 indirectHit = 1; // default: 4 indirectHitRange = 0.25; // default: 3 - deflecting = 5 + deflecting = 5; }; From d5146a9b3b81fcd2811a1d15976b644851f8b2e8 Mon Sep 17 00:00:00 2001 From: LorenLuke Date: Thu, 1 Aug 2019 14:46:35 -0700 Subject: [PATCH 006/194] Removes Whitespace from CfgWeapons --- addons/aircraft/CfgWeapons.hpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/addons/aircraft/CfgWeapons.hpp b/addons/aircraft/CfgWeapons.hpp index 905fa35847..c60fd340bd 100644 --- a/addons/aircraft/CfgWeapons.hpp +++ b/addons/aircraft/CfgWeapons.hpp @@ -2,7 +2,7 @@ class Mode_FullAuto; class CfgWeapons { class RocketPods; - class ACE_AIR_SAFETY : RocketPods { + class ACE_AIR_SAFETY: RocketPods { CanLock = 0; displayName = "SAFE"; displayNameMagazine = "SAFE"; @@ -18,8 +18,8 @@ class CfgWeapons { class CannonCore; // Fix attrocious A-10 Cannon Dispersion - class Gatling_30mm_Plane_CAS_01_F : CannonCore { - class LowROF : Mode_FullAuto { + class Gatling_30mm_Plane_CAS_01_F: CannonCore { + class LowROF: Mode_FullAuto { burst = 1; reloadtime = 0.015; dispersion = 0.0028; //0.279508497 = 0.25 * sqrt(0.8^-1); (80%, 5mil. https://en.wikipedia.org/wiki/GAU-8_Avenger#Accuracy) - Luke From 0eee72e393b66c2d695885551174449a3bf51465 Mon Sep 17 00:00:00 2001 From: LorenLuke Date: Thu, 1 Aug 2019 14:47:45 -0700 Subject: [PATCH 007/194] Removes Whitespace from CfgAmmo --- addons/aircraft/CfgAmmo.hpp | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/addons/aircraft/CfgAmmo.hpp b/addons/aircraft/CfgAmmo.hpp index b3223a31a8..ebbea6cf03 100644 --- a/addons/aircraft/CfgAmmo.hpp +++ b/addons/aircraft/CfgAmmo.hpp @@ -1,6 +1,6 @@ class CfgAmmo { class BulletBase; - class B_20mm : BulletBase { + class B_20mm: BulletBase { hit = 80; indirectHit = 12; indirectHitRange = 2; //2; @@ -15,8 +15,8 @@ class CfgAmmo { model = "\A3\Weapons_f\Data\bullettracer\tracer_red"; }; - class ACE_20mm_HE : B_20mm {}; - class ACE_20mm_AP : B_20mm { + class ACE_20mm_HE: B_20mm {}; + class ACE_20mm_AP: B_20mm { hit = 50; indirectHit = 12; indirectHitRange = 0.3; //2; @@ -64,16 +64,12 @@ class CfgAmmo { deflecting = 5; }; - class SubmunitionBase; - class ACE_30mm_mix : SubmunitionBase { + class ACE_30mm_mix: SubmunitionBase { simulation = "shotSubmunitions"; submunitionAmmo[] = {"Gatling_30mm_HE_Plane_CAS_03_F",0.8,"Cannon_30mm_HE_Plane_CAS_01_F",0.2}; weaponType = "cannon"; model = "\A3\Weapons_f\empty"; triggerTime = 0.005; }; - - - }; From 135643d604584ba24e07dd8c3b9ec39d310f776b Mon Sep 17 00:00:00 2001 From: LorenLuke Date: Thu, 1 Aug 2019 16:24:47 -0700 Subject: [PATCH 008/194] Adds Combat Mix Magazine to cannon Magazines --- addons/aircraft/CfgWeapons.hpp | 1 + 1 file changed, 1 insertion(+) diff --git a/addons/aircraft/CfgWeapons.hpp b/addons/aircraft/CfgWeapons.hpp index c60fd340bd..cd72629d65 100644 --- a/addons/aircraft/CfgWeapons.hpp +++ b/addons/aircraft/CfgWeapons.hpp @@ -23,6 +23,7 @@ class CfgWeapons { burst = 1; reloadtime = 0.015; dispersion = 0.0028; //0.279508497 = 0.25 * sqrt(0.8^-1); (80%, 5mil. https://en.wikipedia.org/wiki/GAU-8_Avenger#Accuracy) - Luke + magazines[] = {"1000Rnd_Gatling_30mm_Plane_CAS_01_F", "ACE_1000Rnd_Gatling_30mm_Plane_CAS_CM"}; }; }; // bigger mag for comanche From 113eb70c5595a67f93cb58029a9860ac6ca3593a Mon Sep 17 00:00:00 2001 From: LorenLuke Date: Sun, 4 Aug 2019 03:36:40 -0700 Subject: [PATCH 009/194] Progress commit --- addons/aircraft/CfgAmmo.hpp | 52 +++++++++++++++++++++----------- addons/aircraft/CfgMagazines.hpp | 20 ++++++++++-- addons/aircraft/CfgWeapons.hpp | 9 ++++-- 3 files changed, 57 insertions(+), 24 deletions(-) diff --git a/addons/aircraft/CfgAmmo.hpp b/addons/aircraft/CfgAmmo.hpp index ebbea6cf03..73c376320d 100644 --- a/addons/aircraft/CfgAmmo.hpp +++ b/addons/aircraft/CfgAmmo.hpp @@ -39,7 +39,7 @@ class CfgAmmo { // also adjust tracer, "muh lightshow"; also adjust splash damage radius class Gatling_30mm_HE_Plane_CAS_01_F: BulletBase { - hit = 40; // default: 180 + hit = 70; // default: 180 indirectHit = 12; // default: 4 indirectHitRange = 4; // default: 3 caliber = 1.4; // default: 5 @@ -48,28 +48,44 @@ class CfgAmmo { tracerStartTime = 0.02; // default: 0.1 timeToLive = 40; // default: 6 }; - - // adjust damage and splash damage, closer to bluefor gatling with same caliber - class Cannon_30mm_HE_Plane_CAS_02_F: Gatling_30mm_HE_Plane_CAS_01_F { - hit = 65; // default: 150 - indirectHit = 10; // default: 4 - indirectHitRange = 3; // default: 3 - }; - + // adjust damage and splash damage, AP Rounds - class Cannon_30mm_HE_Plane_CAS_03_F: Gatling_30mm_HE_Plane_CAS_01_F { - hit = 75; // default: 150 - indirectHit = 1; // default: 4 - indirectHitRange = 0.25; // default: 3 + class ACE_Gatling_30mm_AP_Plane_CAS_01_F: Gatling_30mm_HE_Plane_CAS_01_F { + explosive = 0.05; // default: 0.4 + hit = 110; // default: 180 + indirectHit = 2.5; // default: 4 + indirectHitRange = 1; // default: 3 + fuseDistance = 0.2; // default: 10 deflecting = 5; }; - class SubmunitionBase; - class ACE_30mm_mix: SubmunitionBase { - simulation = "shotSubmunitions"; - submunitionAmmo[] = {"Gatling_30mm_HE_Plane_CAS_03_F",0.8,"Cannon_30mm_HE_Plane_CAS_01_F",0.2}; + // adds submunition logic, enabling multiple rounds per frame + class ACE_Gatling_30mm_Sub_HEI: SubmunitionBullet { + submunitionAmmo = "Gatling_30mm_HE_Plane_CAS_01_F"; weaponType = "cannon"; - model = "\A3\Weapons_f\empty"; + submunitionConeType[] = {"poissondisccenter", 3}; + submunitionConeAngle = 0.056; // in degrees, 0.055 ~= 0.001 mils minute, but present + model = "\A3\Weapons_f\Data\bullettracer\tracer_red.p3d"; triggerTime = 0.005; + }; + + class ACE_Gatling_30mm_Sub_AP: ACE_Gatling_30mm_Sub_HEI { + submunitionAmmo = "ACE_Gatling_30mm_AP_Plane_CAS_01_F"; + }; + + class ACE_Gatling_30mm_Sub_CM41: ACE_Gatling_30mm_Sub_HEI { + submunitionAmmo[] = {"ACE_Gatling_30mm_AP_Plane_CAS_01_F",0.8,"Cannon_30mm_HE_Plane_CAS_01_F",0.2}; + }; + + class ACE_Gatling_30mm_Sub_CM51: ACE_Gatling_30mm_Sub_HEI { + submunitionAmmo[] = {"ACE_Gatling_30mm_AP_Plane_CAS_01_F",0.83,"Cannon_30mm_HE_Plane_CAS_01_F",0.17}; + }; + + + // adjust damage and splash damage, closer to bluefor gatling with same caliber + class Cannon_30mm_HE_Plane_CAS_02_F: Gatling_30mm_HE_Plane_CAS_01_F { + hit = 70; // default: 150 + indirectHit = 11; // default: 4 + indirectHitRange = 3; // default: 3 }; }; diff --git a/addons/aircraft/CfgMagazines.hpp b/addons/aircraft/CfgMagazines.hpp index e3393eadc3..5b387e529b 100644 --- a/addons/aircraft/CfgMagazines.hpp +++ b/addons/aircraft/CfgMagazines.hpp @@ -2,12 +2,26 @@ class CfgMagazines { // shoot helper object to tripple rof class VehicleMagazine; class 1000Rnd_Gatling_30mm_Plane_CAS_01_F: VehicleMagazine { + ammo = "ACE_Gatling_30mm_Sub_HEI"; count = 1170; }; + + class ACE_1000Rnd_Gatling_30mm_Plane_CAS_AP: 1000Rnd_Gatling_30mm_Plane_CAS_01_F { + ammo = "ACE_Gatling_30mm_Sub_AP"; + displayName = "30mm DU Armor Piercing"; + displayNameShort = "30mm DUAP"; + }; - class ACE_1000Rnd_Gatling_30mm_Plane_CAS_CM: VehicleMagazine { - count = 1170; - ammo = "ACE_30mm_mix"; + class ACE_1000Rnd_Gatling_30mm_Plane_CAS_CM41: 1000Rnd_Gatling_30mm_Plane_CAS_01_F { + ammo = "ACE_Gatling_30mm_Sub_CM41"; + displayName = "30mm Combat Mix 4:1 DU:HEI"; + displayNameShort = "30mm 4:1 DU:HEI"; + }; + + class ACE_1000Rnd_Gatling_30mm_Plane_CAS_CM51: 1000Rnd_Gatling_30mm_Plane_CAS_01_F { + ammo = "ACE_Gatling_30mm_Sub_CM51"; + displayName = "30mm Combat Mix 5:1 DU:HEI"; + displayNameShort = "30mm 5:1 DU:HEI"; }; // an extended magazine for the comanche diff --git a/addons/aircraft/CfgWeapons.hpp b/addons/aircraft/CfgWeapons.hpp index c60fd340bd..86cfdda598 100644 --- a/addons/aircraft/CfgWeapons.hpp +++ b/addons/aircraft/CfgWeapons.hpp @@ -17,12 +17,15 @@ class CfgWeapons { }; class CannonCore; - // Fix attrocious A-10 Cannon Dispersion + // Fix attrocious A-10 Cannon Dispersion; Add high ROF capability class Gatling_30mm_Plane_CAS_01_F: CannonCore { + magazines[] += {"ACE_1000Rnd_Gatling_30mm_Plane_CAS_AP","ACE_1000Rnd_Gatling_30mm_Plane_CAS_CM41","ACE_1000Rnd_Gatling_30mm_Plane_CAS_CM51"}; class LowROF: Mode_FullAuto { + multiplier = 3; burst = 1; - reloadtime = 0.015; - dispersion = 0.0028; //0.279508497 = 0.25 * sqrt(0.8^-1); (80%, 5mil. https://en.wikipedia.org/wiki/GAU-8_Avenger#Accuracy) - Luke + burstRangeMax = 1; + reloadtime = 0.046; + dispersion = 0.0046; //Ammo has 0.001 dispersion; 0.559016994 = 0.5 * sqrt(0.8^-1); (80%, 5mil. https://en.wikipedia.org/wiki/GAU-8_Avenger#Accuracy) - Luke }; }; // bigger mag for comanche From 06fded2ed8485acc68fcf8f94987e4598721fe1d Mon Sep 17 00:00:00 2001 From: LorenLuke Date: Sun, 4 Aug 2019 03:49:23 -0700 Subject: [PATCH 010/194] Removes Tabs --- addons/aircraft/CfgAmmo.hpp | 24 ++++++++++++------------ addons/aircraft/CfgMagazines.hpp | 18 +++++++++--------- addons/aircraft/CfgWeapons.hpp | 6 +++--- 3 files changed, 24 insertions(+), 24 deletions(-) diff --git a/addons/aircraft/CfgAmmo.hpp b/addons/aircraft/CfgAmmo.hpp index 73c376320d..4886e08618 100644 --- a/addons/aircraft/CfgAmmo.hpp +++ b/addons/aircraft/CfgAmmo.hpp @@ -48,31 +48,31 @@ class CfgAmmo { tracerStartTime = 0.02; // default: 0.1 timeToLive = 40; // default: 6 }; - + // adjust damage and splash damage, AP Rounds class ACE_Gatling_30mm_AP_Plane_CAS_01_F: Gatling_30mm_HE_Plane_CAS_01_F { explosive = 0.05; // default: 0.4 - hit = 110; // default: 180 + hit = 110; // default: 180 indirectHit = 2.5; // default: 4 indirectHitRange = 1; // default: 3 - fuseDistance = 0.2; // default: 10 + fuseDistance = 0.2; // default: 10 deflecting = 5; }; - // adds submunition logic, enabling multiple rounds per frame - class ACE_Gatling_30mm_Sub_HEI: SubmunitionBullet { + // adds submunition logic, enabling multiple rounds per frame + class ACE_Gatling_30mm_Sub_HEI: SubmunitionBullet { submunitionAmmo = "Gatling_30mm_HE_Plane_CAS_01_F"; weaponType = "cannon"; - submunitionConeType[] = {"poissondisccenter", 3}; - submunitionConeAngle = 0.056; // in degrees, 0.055 ~= 0.001 mils minute, but present + submunitionConeType[] = {"poissondisccenter", 3}; + submunitionConeAngle = 0.056; // in degrees, 0.055 ~= 0.001 mils minute, but present model = "\A3\Weapons_f\Data\bullettracer\tracer_red.p3d"; triggerTime = 0.005; - }; + }; - class ACE_Gatling_30mm_Sub_AP: ACE_Gatling_30mm_Sub_HEI { - submunitionAmmo = "ACE_Gatling_30mm_AP_Plane_CAS_01_F"; - }; - + class ACE_Gatling_30mm_Sub_AP: ACE_Gatling_30mm_Sub_HEI { + submunitionAmmo = "ACE_Gatling_30mm_AP_Plane_CAS_01_F"; + }; + class ACE_Gatling_30mm_Sub_CM41: ACE_Gatling_30mm_Sub_HEI { submunitionAmmo[] = {"ACE_Gatling_30mm_AP_Plane_CAS_01_F",0.8,"Cannon_30mm_HE_Plane_CAS_01_F",0.2}; }; diff --git a/addons/aircraft/CfgMagazines.hpp b/addons/aircraft/CfgMagazines.hpp index 5b387e529b..a19e203f1e 100644 --- a/addons/aircraft/CfgMagazines.hpp +++ b/addons/aircraft/CfgMagazines.hpp @@ -2,26 +2,26 @@ class CfgMagazines { // shoot helper object to tripple rof class VehicleMagazine; class 1000Rnd_Gatling_30mm_Plane_CAS_01_F: VehicleMagazine { - ammo = "ACE_Gatling_30mm_Sub_HEI"; + ammo = "ACE_Gatling_30mm_Sub_HEI"; count = 1170; }; class ACE_1000Rnd_Gatling_30mm_Plane_CAS_AP: 1000Rnd_Gatling_30mm_Plane_CAS_01_F { ammo = "ACE_Gatling_30mm_Sub_AP"; - displayName = "30mm DU Armor Piercing"; - displayNameShort = "30mm DUAP"; + displayName = "30mm DU Armor Piercing"; + displayNameShort = "30mm DUAP"; }; class ACE_1000Rnd_Gatling_30mm_Plane_CAS_CM41: 1000Rnd_Gatling_30mm_Plane_CAS_01_F { ammo = "ACE_Gatling_30mm_Sub_CM41"; - displayName = "30mm Combat Mix 4:1 DU:HEI"; - displayNameShort = "30mm 4:1 DU:HEI"; + displayName = "30mm Combat Mix 4:1 DU:HEI"; + displayNameShort = "30mm 4:1 DU:HEI"; }; - - class ACE_1000Rnd_Gatling_30mm_Plane_CAS_CM51: 1000Rnd_Gatling_30mm_Plane_CAS_01_F { + + class ACE_1000Rnd_Gatling_30mm_Plane_CAS_CM51: 1000Rnd_Gatling_30mm_Plane_CAS_01_F { ammo = "ACE_Gatling_30mm_Sub_CM51"; - displayName = "30mm Combat Mix 5:1 DU:HEI"; - displayNameShort = "30mm 5:1 DU:HEI"; + displayName = "30mm Combat Mix 5:1 DU:HEI"; + displayNameShort = "30mm 5:1 DU:HEI"; }; // an extended magazine for the comanche diff --git a/addons/aircraft/CfgWeapons.hpp b/addons/aircraft/CfgWeapons.hpp index 5711435c31..c1cbe4d163 100644 --- a/addons/aircraft/CfgWeapons.hpp +++ b/addons/aircraft/CfgWeapons.hpp @@ -19,11 +19,11 @@ class CfgWeapons { class CannonCore; // Fix attrocious A-10 Cannon Dispersion; Add high ROF capability class Gatling_30mm_Plane_CAS_01_F: CannonCore { - magazines[] += {"ACE_1000Rnd_Gatling_30mm_Plane_CAS_AP","ACE_1000Rnd_Gatling_30mm_Plane_CAS_CM41","ACE_1000Rnd_Gatling_30mm_Plane_CAS_CM51"}; + magazines[] += {"ACE_1000Rnd_Gatling_30mm_Plane_CAS_AP","ACE_1000Rnd_Gatling_30mm_Plane_CAS_CM41","ACE_1000Rnd_Gatling_30mm_Plane_CAS_CM51"}; class LowROF: Mode_FullAuto { - multiplier = 3; + multiplier = 3; burst = 1; - burstRangeMax = 1; + burstRangeMax = 1; reloadtime = 0.015; dispersion = 0.0028; //0.279508497 = 0.25 * sqrt(0.8^-1); (80%, 5mil. https://en.wikipedia.org/wiki/GAU-8_Avenger#Accuracy) - Luke magazines[] = {"1000Rnd_Gatling_30mm_Plane_CAS_01_F", "ACE_1000Rnd_Gatling_30mm_Plane_CAS_CM"}; From 8e46e0d131aea530048a8a2aae058a512bf78fec Mon Sep 17 00:00:00 2001 From: LorenLuke Date: Sun, 4 Aug 2019 03:52:04 -0700 Subject: [PATCH 011/194] Fixes accidental late-night reversion --- addons/aircraft/CfgAmmo.hpp | 10 +++++----- addons/aircraft/CfgMagazines.hpp | 14 +++++++------- addons/aircraft/CfgWeapons.hpp | 10 +++++----- 3 files changed, 17 insertions(+), 17 deletions(-) diff --git a/addons/aircraft/CfgAmmo.hpp b/addons/aircraft/CfgAmmo.hpp index 4886e08618..ffb3fab3e4 100644 --- a/addons/aircraft/CfgAmmo.hpp +++ b/addons/aircraft/CfgAmmo.hpp @@ -52,10 +52,10 @@ class CfgAmmo { // adjust damage and splash damage, AP Rounds class ACE_Gatling_30mm_AP_Plane_CAS_01_F: Gatling_30mm_HE_Plane_CAS_01_F { explosive = 0.05; // default: 0.4 - hit = 110; // default: 180 + hit = 110; // default: 180 indirectHit = 2.5; // default: 4 indirectHitRange = 1; // default: 3 - fuseDistance = 0.2; // default: 10 + fuseDistance = 0.2; // default: 10 deflecting = 5; }; @@ -63,14 +63,14 @@ class CfgAmmo { class ACE_Gatling_30mm_Sub_HEI: SubmunitionBullet { submunitionAmmo = "Gatling_30mm_HE_Plane_CAS_01_F"; weaponType = "cannon"; - submunitionConeType[] = {"poissondisccenter", 3}; - submunitionConeAngle = 0.056; // in degrees, 0.055 ~= 0.001 mils minute, but present + submunitionConeType[] = {"poissondisccenter", 3}; + submunitionConeAngle = 0.056; // in degrees, 0.055 ~= 0.001 mils minute, but present model = "\A3\Weapons_f\Data\bullettracer\tracer_red.p3d"; triggerTime = 0.005; }; class ACE_Gatling_30mm_Sub_AP: ACE_Gatling_30mm_Sub_HEI { - submunitionAmmo = "ACE_Gatling_30mm_AP_Plane_CAS_01_F"; + submunitionAmmo = "ACE_Gatling_30mm_AP_Plane_CAS_01_F"; }; class ACE_Gatling_30mm_Sub_CM41: ACE_Gatling_30mm_Sub_HEI { diff --git a/addons/aircraft/CfgMagazines.hpp b/addons/aircraft/CfgMagazines.hpp index a19e203f1e..2325cd402f 100644 --- a/addons/aircraft/CfgMagazines.hpp +++ b/addons/aircraft/CfgMagazines.hpp @@ -2,26 +2,26 @@ class CfgMagazines { // shoot helper object to tripple rof class VehicleMagazine; class 1000Rnd_Gatling_30mm_Plane_CAS_01_F: VehicleMagazine { - ammo = "ACE_Gatling_30mm_Sub_HEI"; + ammo = "ACE_Gatling_30mm_Sub_HEI"; count = 1170; }; class ACE_1000Rnd_Gatling_30mm_Plane_CAS_AP: 1000Rnd_Gatling_30mm_Plane_CAS_01_F { ammo = "ACE_Gatling_30mm_Sub_AP"; - displayName = "30mm DU Armor Piercing"; - displayNameShort = "30mm DUAP"; + displayName = "30mm DU Armor Piercing"; + displayNameShort = "30mm DUAP"; }; class ACE_1000Rnd_Gatling_30mm_Plane_CAS_CM41: 1000Rnd_Gatling_30mm_Plane_CAS_01_F { ammo = "ACE_Gatling_30mm_Sub_CM41"; - displayName = "30mm Combat Mix 4:1 DU:HEI"; - displayNameShort = "30mm 4:1 DU:HEI"; + displayName = "30mm Combat Mix 4:1 DU:HEI"; + displayNameShort = "30mm 4:1 DU:HEI"; }; class ACE_1000Rnd_Gatling_30mm_Plane_CAS_CM51: 1000Rnd_Gatling_30mm_Plane_CAS_01_F { ammo = "ACE_Gatling_30mm_Sub_CM51"; - displayName = "30mm Combat Mix 5:1 DU:HEI"; - displayNameShort = "30mm 5:1 DU:HEI"; + displayName = "30mm Combat Mix 5:1 DU:HEI"; + displayNameShort = "30mm 5:1 DU:HEI"; }; // an extended magazine for the comanche diff --git a/addons/aircraft/CfgWeapons.hpp b/addons/aircraft/CfgWeapons.hpp index c1cbe4d163..78669c5409 100644 --- a/addons/aircraft/CfgWeapons.hpp +++ b/addons/aircraft/CfgWeapons.hpp @@ -19,13 +19,13 @@ class CfgWeapons { class CannonCore; // Fix attrocious A-10 Cannon Dispersion; Add high ROF capability class Gatling_30mm_Plane_CAS_01_F: CannonCore { - magazines[] += {"ACE_1000Rnd_Gatling_30mm_Plane_CAS_AP","ACE_1000Rnd_Gatling_30mm_Plane_CAS_CM41","ACE_1000Rnd_Gatling_30mm_Plane_CAS_CM51"}; + magazines[] += {"ACE_1000Rnd_Gatling_30mm_Plane_CAS_AP","ACE_1000Rnd_Gatling_30mm_Plane_CAS_CM41","ACE_1000Rnd_Gatling_30mm_Plane_CAS_CM51"}; class LowROF: Mode_FullAuto { - multiplier = 3; + multiplier = 3; burst = 1; - burstRangeMax = 1; - reloadtime = 0.015; - dispersion = 0.0028; //0.279508497 = 0.25 * sqrt(0.8^-1); (80%, 5mil. https://en.wikipedia.org/wiki/GAU-8_Avenger#Accuracy) - Luke + burstRangeMax = 1; + reloadtime = 0.046; + dispersion = 0.0046; //0.279508497 = 0.25 * sqrt(0.8^-1); (80%, 5mil. https://en.wikipedia.org/wiki/GAU-8_Avenger#Accuracy) - Luke magazines[] = {"1000Rnd_Gatling_30mm_Plane_CAS_01_F", "ACE_1000Rnd_Gatling_30mm_Plane_CAS_CM"}; }; From e2c6dee3d94f7d291ad39312c7257f25b83d563f Mon Sep 17 00:00:00 2001 From: LorenLuke Date: Sun, 4 Aug 2019 12:35:37 -0700 Subject: [PATCH 012/194] Fixes deafness issue --- addons/aircraft/CfgAmmo.hpp | 1 + 1 file changed, 1 insertion(+) diff --git a/addons/aircraft/CfgAmmo.hpp b/addons/aircraft/CfgAmmo.hpp index ffb3fab3e4..f2eb9cf3b3 100644 --- a/addons/aircraft/CfgAmmo.hpp +++ b/addons/aircraft/CfgAmmo.hpp @@ -67,6 +67,7 @@ class CfgAmmo { submunitionConeAngle = 0.056; // in degrees, 0.055 ~= 0.001 mils minute, but present model = "\A3\Weapons_f\Data\bullettracer\tracer_red.p3d"; triggerTime = 0.005; + ACE_caliber = 1.4; }; class ACE_Gatling_30mm_Sub_AP: ACE_Gatling_30mm_Sub_HEI { From 6b67c5e36537305868baad60617f7a0977cc947a Mon Sep 17 00:00:00 2001 From: LorenLuke Date: Sun, 4 Aug 2019 20:38:13 -0700 Subject: [PATCH 013/194] Adds stringtable entries --- addons/aircraft/stringtable.xml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/addons/aircraft/stringtable.xml b/addons/aircraft/stringtable.xml index 0c52397242..1ea8ac977d 100644 --- a/addons/aircraft/stringtable.xml +++ b/addons/aircraft/stringtable.xml @@ -49,5 +49,23 @@ 關閉貨艙門 关闭货舱门 + + 30mm DU Armor Piercing + + + 30mm AP + + + 30mm Combat Mix 4:1 DU:HEI + + + 30mm CM 4:1 + + + 30mm Combat Mix 5:1 DU:HEI + + + 30mm CM 5:1 + From 344662e76c67de9750fc5ddb33e4f853e4d63b3c Mon Sep 17 00:00:00 2001 From: LorenLuke Date: Sun, 4 Aug 2019 20:45:05 -0700 Subject: [PATCH 014/194] Adds stringtable magazine values --- addons/aircraft/CfgMagazines.hpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/addons/aircraft/CfgMagazines.hpp b/addons/aircraft/CfgMagazines.hpp index 2325cd402f..b42580b5ed 100644 --- a/addons/aircraft/CfgMagazines.hpp +++ b/addons/aircraft/CfgMagazines.hpp @@ -8,20 +8,20 @@ class CfgMagazines { class ACE_1000Rnd_Gatling_30mm_Plane_CAS_AP: 1000Rnd_Gatling_30mm_Plane_CAS_01_F { ammo = "ACE_Gatling_30mm_Sub_AP"; - displayName = "30mm DU Armor Piercing"; - displayNameShort = "30mm DUAP"; + displayName = CSTRING(GatlingDescriptionAP); + displayNameShort = CSTRING(GatlingDescriptionShortAP); }; class ACE_1000Rnd_Gatling_30mm_Plane_CAS_CM41: 1000Rnd_Gatling_30mm_Plane_CAS_01_F { ammo = "ACE_Gatling_30mm_Sub_CM41"; - displayName = "30mm Combat Mix 4:1 DU:HEI"; - displayNameShort = "30mm 4:1 DU:HEI"; + displayName = CSTRING(GatlingDescriptionCM41); + displayNameShort = CSTRING(GatlingDescriptionShortCM41); }; class ACE_1000Rnd_Gatling_30mm_Plane_CAS_CM51: 1000Rnd_Gatling_30mm_Plane_CAS_01_F { ammo = "ACE_Gatling_30mm_Sub_CM51"; - displayName = "30mm Combat Mix 5:1 DU:HEI"; - displayNameShort = "30mm 5:1 DU:HEI"; + displayName = CSTRING(GatlingDescriptionCM51); + displayNameShort = CSTRING(GatlingDescriptionShortCM51); }; // an extended magazine for the comanche From 92e0d55ef0c3e24cd5a81daaa31f8f5a4f954a36 Mon Sep 17 00:00:00 2001 From: LorenLuke Date: Mon, 5 Aug 2019 11:10:15 -0700 Subject: [PATCH 015/194] Add caliber and deflecting values for AP rounds --- addons/aircraft/CfgAmmo.hpp | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/addons/aircraft/CfgAmmo.hpp b/addons/aircraft/CfgAmmo.hpp index f2eb9cf3b3..01bb46e4a8 100644 --- a/addons/aircraft/CfgAmmo.hpp +++ b/addons/aircraft/CfgAmmo.hpp @@ -51,23 +51,25 @@ class CfgAmmo { // adjust damage and splash damage, AP Rounds class ACE_Gatling_30mm_AP_Plane_CAS_01_F: Gatling_30mm_HE_Plane_CAS_01_F { - explosive = 0.05; // default: 0.4 - hit = 110; // default: 180 - indirectHit = 2.5; // default: 4 - indirectHitRange = 1; // default: 3 - fuseDistance = 0.2; // default: 10 - deflecting = 5; + explosive = 0.05; // default: 0.4 + caliber = 5; // default: 5 + deflecting = 8; // default: 5 + hit = 110; // default: 180 + indirectHit = 2.5; // default: 4 + indirectHitRange = 1; // default: 3 + fuseDistance = 0.2; // default: 10 + deflecting = 5; }; // adds submunition logic, enabling multiple rounds per frame class ACE_Gatling_30mm_Sub_HEI: SubmunitionBullet { - submunitionAmmo = "Gatling_30mm_HE_Plane_CAS_01_F"; - weaponType = "cannon"; - submunitionConeType[] = {"poissondisccenter", 3}; - submunitionConeAngle = 0.056; // in degrees, 0.055 ~= 0.001 mils minute, but present - model = "\A3\Weapons_f\Data\bullettracer\tracer_red.p3d"; - triggerTime = 0.005; - ACE_caliber = 1.4; + submunitionAmmo = "Gatling_30mm_HE_Plane_CAS_01_F"; + weaponType = "cannon"; + submunitionConeType[] = {"poissondisccenter", 3}; + submunitionConeAngle = 0.056; // in degrees, 0.055 ~= 0.001 mils minute, but present + model = "\A3\Weapons_f\Data\bullettracer\tracer_red.p3d"; + triggerTime = 0.005; + ACE_caliber = 1.4; }; class ACE_Gatling_30mm_Sub_AP: ACE_Gatling_30mm_Sub_HEI { From e6b843f2d2ad277bec28cfa986c4d7e4a77c2d45 Mon Sep 17 00:00:00 2001 From: LorenLuke Date: Mon, 5 Aug 2019 12:56:19 -0700 Subject: [PATCH 016/194] Fixes double deflecting definition --- addons/aircraft/CfgAmmo.hpp | 1 - 1 file changed, 1 deletion(-) diff --git a/addons/aircraft/CfgAmmo.hpp b/addons/aircraft/CfgAmmo.hpp index 01bb46e4a8..06d4245641 100644 --- a/addons/aircraft/CfgAmmo.hpp +++ b/addons/aircraft/CfgAmmo.hpp @@ -58,7 +58,6 @@ class CfgAmmo { indirectHit = 2.5; // default: 4 indirectHitRange = 1; // default: 3 fuseDistance = 0.2; // default: 10 - deflecting = 5; }; // adds submunition logic, enabling multiple rounds per frame From 15c65c577972e3189e8593fb13536d77475ef1e9 Mon Sep 17 00:00:00 2001 From: LorenLuke Date: Thu, 8 Aug 2019 12:17:00 -0700 Subject: [PATCH 017/194] Adds HEI magazine. Configs default "1000Rnd_Gatling_30mm_Plane_CAS_01_F" magazine as CM5:1. Keeps "ACE_1000Rnd_Gatling_30mm_Plane_CAS_CM51" for legacy reasons. --- addons/aircraft/CfgMagazines.hpp | 10 +++++++++- addons/aircraft/stringtable.xml | 8 +++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/addons/aircraft/CfgMagazines.hpp b/addons/aircraft/CfgMagazines.hpp index b42580b5ed..f269a320ba 100644 --- a/addons/aircraft/CfgMagazines.hpp +++ b/addons/aircraft/CfgMagazines.hpp @@ -2,10 +2,18 @@ class CfgMagazines { // shoot helper object to tripple rof class VehicleMagazine; class 1000Rnd_Gatling_30mm_Plane_CAS_01_F: VehicleMagazine { - ammo = "ACE_Gatling_30mm_Sub_HEI"; + ammo = "ACE_Gatling_30mm_Sub_CM51"; + displayName = CSTRING(GatlingDescriptionCM51); + displayNameShort = CSTRING(GatlingDescriptionShortCM51); count = 1170; }; + class 1000Rnd_Gatling_30mm_Plane_CAS_HEI: VehicleMagazine { + ammo = "ACE_Gatling_30mm_Sub_HEI"; + displayName = CSTRING(GatlingDescriptionHEI); + displayNameShort = CSTRING(GatlingDescriptionShortHEI); + }; + class ACE_1000Rnd_Gatling_30mm_Plane_CAS_AP: 1000Rnd_Gatling_30mm_Plane_CAS_01_F { ammo = "ACE_Gatling_30mm_Sub_AP"; displayName = CSTRING(GatlingDescriptionAP); diff --git a/addons/aircraft/stringtable.xml b/addons/aircraft/stringtable.xml index 1ea8ac977d..cc8cd46943 100644 --- a/addons/aircraft/stringtable.xml +++ b/addons/aircraft/stringtable.xml @@ -49,11 +49,17 @@ 關閉貨艙門 关闭货舱门 + + 30mm High-Explosive Incendiary + + + 30mm HEI + 30mm DU Armor Piercing - 30mm AP + 30mm DU AP 30mm Combat Mix 4:1 DU:HEI From 6f96ca1a6437fc2c0a9fae1f2ff938172ae748d6 Mon Sep 17 00:00:00 2001 From: LorenLuke Date: Sat, 31 Aug 2019 15:13:38 -0700 Subject: [PATCH 018/194] Added missing magazine and ammunition definitions. --- addons/aircraft/CfgAmmo.hpp | 3 +++ addons/aircraft/CfgWeapons.hpp | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/addons/aircraft/CfgAmmo.hpp b/addons/aircraft/CfgAmmo.hpp index 06d4245641..25a36d8ef8 100644 --- a/addons/aircraft/CfgAmmo.hpp +++ b/addons/aircraft/CfgAmmo.hpp @@ -73,14 +73,17 @@ class CfgAmmo { class ACE_Gatling_30mm_Sub_AP: ACE_Gatling_30mm_Sub_HEI { submunitionAmmo = "ACE_Gatling_30mm_AP_Plane_CAS_01_F"; + ACE_caliber = 1.4; }; class ACE_Gatling_30mm_Sub_CM41: ACE_Gatling_30mm_Sub_HEI { submunitionAmmo[] = {"ACE_Gatling_30mm_AP_Plane_CAS_01_F",0.8,"Cannon_30mm_HE_Plane_CAS_01_F",0.2}; + ACE_caliber = 1.4; }; class ACE_Gatling_30mm_Sub_CM51: ACE_Gatling_30mm_Sub_HEI { submunitionAmmo[] = {"ACE_Gatling_30mm_AP_Plane_CAS_01_F",0.83,"Cannon_30mm_HE_Plane_CAS_01_F",0.17}; + ACE_caliber = 1.4; }; diff --git a/addons/aircraft/CfgWeapons.hpp b/addons/aircraft/CfgWeapons.hpp index 78669c5409..3a91b11dbe 100644 --- a/addons/aircraft/CfgWeapons.hpp +++ b/addons/aircraft/CfgWeapons.hpp @@ -19,7 +19,7 @@ class CfgWeapons { class CannonCore; // Fix attrocious A-10 Cannon Dispersion; Add high ROF capability class Gatling_30mm_Plane_CAS_01_F: CannonCore { - magazines[] += {"ACE_1000Rnd_Gatling_30mm_Plane_CAS_AP","ACE_1000Rnd_Gatling_30mm_Plane_CAS_CM41","ACE_1000Rnd_Gatling_30mm_Plane_CAS_CM51"}; + magazines[] += {"ACE_1000Rnd_Gatling_30mm_Plane_CAS_AP","ACE_1000Rnd_Gatling_30mm_Plane_CAS_CM41","ACE_1000Rnd_Gatling_30mm_Plane_CAS_HEI"}; class LowROF: Mode_FullAuto { multiplier = 3; burst = 1; From 2487d6c8ff4897f2cba2a059997b266643b080b9 Mon Sep 17 00:00:00 2001 From: LorenLuke Date: Wed, 4 Sep 2019 18:22:43 -0700 Subject: [PATCH 019/194] Removes tabs in CfgAmmo --- addons/aircraft/CfgAmmo.hpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/addons/aircraft/CfgAmmo.hpp b/addons/aircraft/CfgAmmo.hpp index 25a36d8ef8..dd93606d8a 100644 --- a/addons/aircraft/CfgAmmo.hpp +++ b/addons/aircraft/CfgAmmo.hpp @@ -73,17 +73,17 @@ class CfgAmmo { class ACE_Gatling_30mm_Sub_AP: ACE_Gatling_30mm_Sub_HEI { submunitionAmmo = "ACE_Gatling_30mm_AP_Plane_CAS_01_F"; - ACE_caliber = 1.4; + ACE_caliber = 1.4; }; class ACE_Gatling_30mm_Sub_CM41: ACE_Gatling_30mm_Sub_HEI { submunitionAmmo[] = {"ACE_Gatling_30mm_AP_Plane_CAS_01_F",0.8,"Cannon_30mm_HE_Plane_CAS_01_F",0.2}; - ACE_caliber = 1.4; + ACE_caliber = 1.4; }; class ACE_Gatling_30mm_Sub_CM51: ACE_Gatling_30mm_Sub_HEI { submunitionAmmo[] = {"ACE_Gatling_30mm_AP_Plane_CAS_01_F",0.83,"Cannon_30mm_HE_Plane_CAS_01_F",0.17}; - ACE_caliber = 1.4; + ACE_caliber = 1.4; }; From 153805a138f11f9d6145575fd5d50de87d1ee816 Mon Sep 17 00:00:00 2001 From: LorenLuke Date: Thu, 2 Jan 2020 16:15:47 -0800 Subject: [PATCH 020/194] Fixes Typo Review Ready. --- addons/aircraft/CfgMagazines.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/aircraft/CfgMagazines.hpp b/addons/aircraft/CfgMagazines.hpp index f269a320ba..7b6844ebe4 100644 --- a/addons/aircraft/CfgMagazines.hpp +++ b/addons/aircraft/CfgMagazines.hpp @@ -8,7 +8,7 @@ class CfgMagazines { count = 1170; }; - class 1000Rnd_Gatling_30mm_Plane_CAS_HEI: VehicleMagazine { + class ACE_1000Rnd_Gatling_30mm_Plane_CAS_HEI: VehicleMagazine { ammo = "ACE_Gatling_30mm_Sub_HEI"; displayName = CSTRING(GatlingDescriptionHEI); displayNameShort = CSTRING(GatlingDescriptionShortHEI); From 602341b535008c3dca60e5958fecb014874b899b Mon Sep 17 00:00:00 2001 From: LorenLuke Date: Sat, 31 Aug 2019 15:13:38 -0700 Subject: [PATCH 021/194] Added missing magazine and ammunition definitions. --- addons/aircraft/CfgAmmo.hpp | 3 +++ addons/aircraft/CfgMagazines.hpp | 2 +- addons/aircraft/CfgWeapons.hpp | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/addons/aircraft/CfgAmmo.hpp b/addons/aircraft/CfgAmmo.hpp index 06d4245641..25a36d8ef8 100644 --- a/addons/aircraft/CfgAmmo.hpp +++ b/addons/aircraft/CfgAmmo.hpp @@ -73,14 +73,17 @@ class CfgAmmo { class ACE_Gatling_30mm_Sub_AP: ACE_Gatling_30mm_Sub_HEI { submunitionAmmo = "ACE_Gatling_30mm_AP_Plane_CAS_01_F"; + ACE_caliber = 1.4; }; class ACE_Gatling_30mm_Sub_CM41: ACE_Gatling_30mm_Sub_HEI { submunitionAmmo[] = {"ACE_Gatling_30mm_AP_Plane_CAS_01_F",0.8,"Cannon_30mm_HE_Plane_CAS_01_F",0.2}; + ACE_caliber = 1.4; }; class ACE_Gatling_30mm_Sub_CM51: ACE_Gatling_30mm_Sub_HEI { submunitionAmmo[] = {"ACE_Gatling_30mm_AP_Plane_CAS_01_F",0.83,"Cannon_30mm_HE_Plane_CAS_01_F",0.17}; + ACE_caliber = 1.4; }; diff --git a/addons/aircraft/CfgMagazines.hpp b/addons/aircraft/CfgMagazines.hpp index f269a320ba..d08a460bb8 100644 --- a/addons/aircraft/CfgMagazines.hpp +++ b/addons/aircraft/CfgMagazines.hpp @@ -8,7 +8,7 @@ class CfgMagazines { count = 1170; }; - class 1000Rnd_Gatling_30mm_Plane_CAS_HEI: VehicleMagazine { + class ACE_1000Rnd_Gatling_30mm_Plane_CAS_HEI: 1000Rnd_Gatling_30mm_Plane_CAS_01_F { ammo = "ACE_Gatling_30mm_Sub_HEI"; displayName = CSTRING(GatlingDescriptionHEI); displayNameShort = CSTRING(GatlingDescriptionShortHEI); diff --git a/addons/aircraft/CfgWeapons.hpp b/addons/aircraft/CfgWeapons.hpp index 78669c5409..3a91b11dbe 100644 --- a/addons/aircraft/CfgWeapons.hpp +++ b/addons/aircraft/CfgWeapons.hpp @@ -19,7 +19,7 @@ class CfgWeapons { class CannonCore; // Fix attrocious A-10 Cannon Dispersion; Add high ROF capability class Gatling_30mm_Plane_CAS_01_F: CannonCore { - magazines[] += {"ACE_1000Rnd_Gatling_30mm_Plane_CAS_AP","ACE_1000Rnd_Gatling_30mm_Plane_CAS_CM41","ACE_1000Rnd_Gatling_30mm_Plane_CAS_CM51"}; + magazines[] += {"ACE_1000Rnd_Gatling_30mm_Plane_CAS_AP","ACE_1000Rnd_Gatling_30mm_Plane_CAS_CM41","ACE_1000Rnd_Gatling_30mm_Plane_CAS_HEI"}; class LowROF: Mode_FullAuto { multiplier = 3; burst = 1; From 77ce88e1ac72c77bd069068eb7041f613de47884 Mon Sep 17 00:00:00 2001 From: Toni Vicente Date: Fri, 3 Jan 2020 04:56:02 +0100 Subject: [PATCH 022/194] Update spanish translation (#7366) * Update spanish translation Added spanish translation entries * Update spanish translation Added spanish translation entries Co-authored-by: PabstMirror --- addons/artillerytables/stringtable.xml | 4 +++ addons/cargo/stringtable.xml | 10 ++++++ addons/chemlights/stringtable.xml | 45 ++++++++++++++++++++++++ addons/fastroping/stringtable.xml | 1 + addons/gforces/stringtable.xml | 1 + addons/goggles/stringtable.xml | 6 ++++ addons/interact_menu/stringtable.xml | 1 + addons/interaction/stringtable.xml | 6 ++++ addons/medical/stringtable.xml | 14 ++++++++ addons/medical_ai/stringtable.xml | 2 ++ addons/medical_blood/stringtable.xml | 7 ++++ addons/medical_damage/stringtable.xml | 9 +++++ addons/medical_feedback/stringtable.xml | 5 +++ addons/medical_gui/stringtable.xml | 17 +++++++++ addons/medical_status/stringtable.xml | 3 ++ addons/medical_treatment/stringtable.xml | 6 ++++ addons/minedetector/stringtable.xml | 8 +++++ addons/nametags/stringtable.xml | 2 ++ addons/nightvision/stringtable.xml | 9 +++++ addons/parachute/stringtable.xml | 2 ++ addons/realisticnames/stringtable.xml | 4 +++ addons/repair/stringtable.xml | 12 +++++++ 22 files changed, 174 insertions(+) diff --git a/addons/artillerytables/stringtable.xml b/addons/artillerytables/stringtable.xml index be76bd17ce..5039c21b19 100644 --- a/addons/artillerytables/stringtable.xml +++ b/addons/artillerytables/stringtable.xml @@ -9,6 +9,7 @@ 火砲射程 Table de tir d'artillerie Tabela de Artilharia + Tabla de dsitancias de artillería Universal Artillery Rangetable @@ -18,6 +19,7 @@ 汎用の火砲用射程表 Table de tir universelle pour l'artillerie. Tabela de Artilharia Universal + Tabla de dsitancias universal de artillería Air Resistance @@ -59,6 +61,7 @@ 砲撃コンピュータ無効化 Désactiver l'ordinateur de tir Computador de Artilharia Desabilitado + Computador de artillería deshabilitado Disable the vanilla artillery computers @@ -68,6 +71,7 @@ ゲームの砲撃コンピュータを無効化します。 Désactive l'ordinateur de tir vanilla. Desabilitar o computador de artilharia padrão + Deshabilita el computador de artillería por defecto de Arma3 diff --git a/addons/cargo/stringtable.xml b/addons/cargo/stringtable.xml index ba4a660250..be8f02a6ca 100644 --- a/addons/cargo/stringtable.xml +++ b/addons/cargo/stringtable.xml @@ -241,6 +241,7 @@ Espaço de Carga Espace de stockage Nákladový prostor + Espacio de carga The cargo space available in this vehicle/container @@ -255,6 +256,7 @@ O espaço de carga disponível nesse veículo/contâiner L'espace de stockage disponible dans ce véhicule/container. Nákladový prostor dostupný v tomto vozidle/kontejneru + El espacio de carga disponible en este vehículo/contenedor Cargo Size @@ -269,6 +271,7 @@ Tamanho da Carga Encombrement fret Velikost nákladu + Tamaño de carga The cargo space required to hold this object (-1 for unloadable) @@ -283,6 +286,7 @@ O Espaço de carga necessário para carregar esse objeto (-1 para que não seja carregável) Définit l'espace de stockage nécessaire à l'embarquement de cet objet (-1 pour le rendre non transportable). Nákladový prostor požadovný pro naložení tohoto objektu (-1 pro nenaložitelné) + Espacio de carga requerido para guardar este objeto (-1 para no descargable) Airdrop @@ -297,6 +301,7 @@ Десантирование груза Lançamento Aéreo Výsadek + Lanzamiento aéreo Unlevel Flight @@ -311,6 +316,7 @@ Неподходящее положение Desnivelar Vôo Let není vyrovnaný + Vuelo no nivelado Paradrop Time Coefficient @@ -325,6 +331,7 @@ Коэффициент времени десантирования Fator de Tempo para soltar a carga Koeficient času nákladního výsadku + Coeficiente de tiempo para lanzamiento Modifier for how long it takes to paradrop a cargo item. @@ -339,6 +346,7 @@ Модификатор времени, необходимого для десантирования груза Coeficiente de quanto tempo leva para soltar uma carga de paraquedas Upravuje jak dlouho výsadek trvá pro náklad. + Modificador de tiempo de lanzamiento en paracaídas de un objeto cargado Load Time Coefficient @@ -351,6 +359,7 @@ Coefficient du temps de chargement 裝載時間係數 Koeficient času nákládání + Coeficiente de tiempo para cargar Modifies how long it takes to load/unload items.\nTime, in seconds, is the size of the item multiplied by this value. @@ -363,6 +372,7 @@ Modifie le temps nécessaire pour charger/décharger des objets.\nLe temps, en secondes, est calculé en multipliant la taille de l'élément par ce coefficient. 修改要花多長時間來裝載/卸載物品。\n時間,以秒為單位,而物品的大小數值與這個係數成比。 Upravuje jak dlouho nakládají/vykládání trvá.\nVýsledkem je čas v sekundách - velikost objektu vynásobená touto hodnotou. + Modifica el tiempo de carga/descarga de objetos.\n El Tiempo en segundos, es el tamño del objeto multiplicado por este valor. diff --git a/addons/chemlights/stringtable.xml b/addons/chemlights/stringtable.xml index a2ad14c149..b0c7d29f9f 100644 --- a/addons/chemlights/stringtable.xml +++ b/addons/chemlights/stringtable.xml @@ -14,6 +14,7 @@ Химсвет Bastões de Luz Chemická světla + Luces químicas Prepare %1 @@ -28,6 +29,7 @@ Приготовить %1 Preparar %1 Připravit %1 + Preparar %1 %1<br/>Prepared @@ -42,6 +44,7 @@ %1<br/>Приготовлен %1<br/>Preparado %1<br/>Připraveno + %1<br/>Preparado No inventory space @@ -72,6 +75,7 @@ [ACE] Химсвет [ACE] Bastões de Luz [ACE] Chemická světla + [ACE] Luces químicas Chemlight (Orange) @@ -86,6 +90,7 @@ Химсвет (Оранжевый) Bastão de Luz (Laranja) Chemické světlo (Oranžové) + Luz química (naranja) Orange Light @@ -100,6 +105,7 @@ Оранжевый свет Luz Laranja Oranžové světlo + Luz naranja Type: Light - Orange<br />Rounds: 1<br />Used in: Hand @@ -114,6 +120,7 @@ Тип: Свет - Оранжевый<br />1 штука<br />В руках Tipo: Luz - Laranja<br/>Usos: 1<br/>Usado em: Mão Typ: Světlo - Oranžové<br/>Počet použití: 1<br/>Použít v ruce + Tipo: Luz - Naranja<br />Cantidad: 1<br />Usado en: Mano Chemlight (White) @@ -128,6 +135,7 @@ Химсвет (Белый) Bastão de Luz (Branco) Chemické světlo (Bílé) + Luz química (Blanca) White Light @@ -142,6 +150,7 @@ Белый свет Luz Branca Bílé světlo + Luz blanca Type: Light - White<br />Rounds: 1<br />Used in: Hand @@ -156,6 +165,7 @@ Тип: Свет - Белый<br />1 штука<br />В руках Tipo: Luz - Branco<br/>Usos: 1<br/>Usado em: Mão Typ: Světlo - Bílé<br/>Počet použití: 1<br/>Použít v ruce + Tipo: Luz - Blanca<br />Cantidad: 1<br />Usado en: Mano Chemlight (Hi Red) @@ -170,6 +180,7 @@ Химсвет (Ярко-Красный) Bastão de Luz (Vermelho Forte) Chemické světlo (Červené jasné) + Luz química (Roja Hi) Red Hi Light @@ -184,6 +195,7 @@ Яркий Красный свет Luz forte vermelha Červené jasné světlo + Luz roja Hi Type: Light - Red Hi (30 minute)<br />Rounds: 1<br />Used in: Hand @@ -198,6 +210,7 @@ Тип: Свет - Ярко-Красный (30 минут)<br />1 штука<br />В руках Tipo: Luz - Vermelho Forte (30 minutos)<br/>Usos: 1<br/>Usado em: Mão Typ: Světlo - Červené jasné<br/>Počet použití: 1<br/>Použít v ruce + Tipo: Luz - Roja Hi (30 minutos)<br />Cantidad: 1<br />Usado en: Mano Chemlight (Hi Yellow) @@ -212,6 +225,7 @@ Химсвет (Ярко-Желтый) Bastão de Luz (Amarelo Forte) Chemické světlo (Žluté jasné) + Luz química (Amarilla Hi) Yellow Hi Light @@ -226,6 +240,7 @@ Яркий Желтый свет Luz forte amarela Žluté jasné světlo + Luz amarilla Hi Type: Light - Yellow Hi (30 minute)<br />Rounds: 1<br />Used in: Hand @@ -240,6 +255,7 @@ Тип: Свет - Ярко-Желтый (30 минут)<br />1 штука<br />В руках Tipo: Luz - Amarelo Forte (30 minutos)<br/>Usos: 1<br/>Usado em: Mão Typ: Světlo - Žluté jasné<br/>Počet použití: 1<br/>Použít v ruce + Tipo: Luz - Amarilla Hi (30 minutos)<br />Cantidad: 1<br />Usado en: Mano Chemlight (Hi White) @@ -254,6 +270,7 @@ Химсвет (Ярко-Белый) Bastão de Luz (Branco Forte) Chemické světlo (Bílé jasné) + Luz química (Blanca Hi) White Hi Light @@ -268,6 +285,7 @@ Яркий Белый свет Luz forte branca Bílé jasné světlo + Luz blanca Hi Type: Light - White Hi (30 minute)<br />Rounds: 1<br />Used in: Hand @@ -282,6 +300,7 @@ Тип: Свет - Ярко-Белый (30 минут)<br />1 штука<br />В руках Tipo: Luz - Branco Forte (30 minutos)<br/>Usos: 1<br/>Usado em: Mão Typ: Světlo - Bílé jasné<br/>Počet použití: 1<br/>Použít v ruce + Tipo: Luz - Blanca Hi (30 minutos)<br />Cantidad: 1<br />Usado en: Mano Chemlight (Hi Blue) @@ -294,6 +313,7 @@ Bastão de Luz (Azul Forte) 螢光棒(超亮藍色) Chemické světlo (Modré jasné) + Luz química (Azul Hi) Blue Hi Light @@ -306,6 +326,7 @@ Luz forte azul 超亮藍色光 Modré jasné světlo + Luz azul Hi Type: Light - Blue Hi (30 minute)<br />Rounds: 1<br />Used in: Hand @@ -318,6 +339,7 @@ Tipo: Luz - Azul Forte (30 minutos)<br/>Usos: 1<br/>Usado em: Mão 類型: 光 - 超亮藍色 (30分鐘)<br />發數: 1<br />使用於: 手 Typ: Světlo - Modré jasné<br/>Počet použití: 1<br/>Použít v ruce + Tipo: Luz - Azul Hi (30 minutos)<br />Cantidad: 1<br />Usado en: Mano Chemlight (Hi Green) @@ -330,6 +352,7 @@ Bastão de Luz (Verde Forte) 螢光棒(超亮綠色) Chemické světlo (Zelené jasné) + Luz química (Verde Hi) Green Hi Light @@ -342,6 +365,7 @@ Luz forte verde 超亮綠色光 Zelené jasné světlo + Luz verde Hi Type: Light - Green Hi (30 minute)<br />Rounds: 1<br />Used in: Hand @@ -354,6 +378,7 @@ Tipo: Luz - Verde Forte (30 minutos)<br/>Usos: 1<br/>Usado em: Mão 類型: 光 - 超亮綠色 (30分鐘)<br />發數: 1<br />使用於: 手 Typ: Světlo - Zelené jasné<br/>Počet použití: 1<br/>Použít v ruce + Tipo: Luz - Verde Hi (30 minutos)<br />Cantidad: 1<br />Usado en: Mano Chemlight (Ultra-Hi Orange) @@ -366,6 +391,7 @@ Bastão de Luz (Laranja Ultra Forte) 螢光棒(極亮橘色) Chemické světlo (Oranžové velmi jasné) + Luz química (Naranja Ultra-Hi) Orange Ultra-Hi Light @@ -378,6 +404,7 @@ Luz ultra forte laranja 極亮橘色光 Oranžové velmi jasné světlo + Luz naranja Ultra-Hi Type: Light - Orange Ultra-Hi (5 minute)<br />Rounds: 1<br />Used in: Hand @@ -390,6 +417,7 @@ Tipo: Luz - Laranja Ultra Forte (5 minutos)<br/>Usos: 1<br/>Usado em: Mão 類型: 光 - 極亮橘色 (5分鐘)<br />發數: 1<br />使用於: 手 Typ: Světlo - Oranžové velmi jasné<br/>Počet použití: 1<br/>Použít v ruce + Tipo: Luz - Naranja Ultra-Hi (5 minutos)<br />Cantidad: 1<br />Usado en: Mano Chemlight (IR) @@ -404,6 +432,7 @@ Химсвет (Инфракрасный) Bastão de Luz (IV) Chemické světlo (Infračervené) + Luz química (IR) IR Light @@ -418,6 +447,7 @@ Инфракрасный свет Bastão de luz infravermelho Infračervené světlo + Luz IR Type: Light - Infrared<br />Rounds: 1<br />Used in: Hand @@ -432,6 +462,7 @@ Тип: Свет - Инфракрасный<br />1 штука<br />В руках Tipo: Luz - Infravermelho<br/>Usos: 1<br/>Usado em: Mão Typ: Světlo - Infračervené<br/>Počet použití: 1<br/>Použít v ruce + Tipo: Luz infra-roja<br />Cantidad: 1<br />Usado en: Mano Chemlight Shield (Empty) @@ -446,6 +477,7 @@ Контейнер для Химсвета (Пуст) Estojo de Luz (Vazio) Clona na chemické světlo + Protector de luz química (Vacía) Shield for chemlights. Combine with chemlight to prepare reading light. @@ -460,6 +492,7 @@ Защитный контейнер для Химсвета. Объедините с Химсветом, чтобы подготовить Свет для чтения Estojo para os bastões de luz. Combine com o bastão de luz para preparar luz de leitura. Clona na chemické světlo. Při vložení chemického světla vznikne praktické světlo na čtení. + Protector para luz química. Combina con luz química para preparar una luz de lectura Chemlight Shield (Green) @@ -474,6 +507,7 @@ Контейнер для Химсвета (Зел) Estojo de Luz (Verde) Clona s vloženým chemickým světlem (Zelené) + Protector de luz química (Verde) Green reading light. @@ -488,6 +522,7 @@ Ночник из Химсвета (Зеленый) Luz de leitura verde. Zelené světlo na čtení. + Luz de lectura verde Chemlight Shield (Red) @@ -502,6 +537,7 @@ Контейнер для Химсвета (Красн) Estojo de Luz (Vermelho) Clona s vloženým chemickým světlem (Červené) + Protector de luz química (Roja) Red reading light. @@ -516,6 +552,7 @@ Ночник из Химсвета (Красный) Luz de leitura vermelha. Červené světlo na čtení. + Luz de lectura roja Chemlight Shield (Blue) @@ -530,6 +567,7 @@ Контейнер для Химсвета (Син) Estojo de Luz (Azul) Clona s vloženým chemickým světlem (Modré) + Protector de luz química (Azul) Blue reading light. @@ -544,6 +582,7 @@ Ночник из Химсвета (Синий) Luz de leitura azul. Modré světlo na čtení. + Luz de lectura azul Chemlight Shield (Yellow) @@ -558,6 +597,7 @@ Контейнер для Химсвета (Желт) Estojo de Luz (Amarelo) Clona s vloženým chemickým světlem (Žluté) + Protector de luz química (Amarilla) Yellow reading light. @@ -572,6 +612,7 @@ Ночник из Химсвета (Желтый) Luz de leitura amarela. Žluté světlo na čtení. + Luz de lectura amarilla Chemlight Shield (Orange) @@ -586,6 +627,7 @@ Контейнер для Химсвета (Оранж) Estojo de Luz (Laranja) Clona s vloženým chemickým světlem (Oranžové) + Protector de luz química (Naranja) Orange reading light. @@ -600,6 +642,7 @@ Ночник из Химсвета (Оранжевый) Luz de leitura laranja. Oranžové světlo na čtení. + Luz de lectura naranja Chemlight Shield (White) @@ -614,6 +657,7 @@ Контейнер для Химсвета (Белый) Estojo de Luz (Branco) Clona s vloženým chemickým světlem (Bílé) + Protector de luz química (Blanca) White reading light. @@ -628,6 +672,7 @@ Ночник из Химсвета (Белый) Luz de leitura branca. Bílé světlo na čtení. + Luz de lectura blanca diff --git a/addons/fastroping/stringtable.xml b/addons/fastroping/stringtable.xml index 8e3d7c5f53..3b82b7c432 100644 --- a/addons/fastroping/stringtable.xml +++ b/addons/fastroping/stringtable.xml @@ -59,6 +59,7 @@ Recolher o sistema de descida rápida Désactiver le système d'aérocordage Odložit systém slaňování + Recoger sistema de fast roping Deploy ropes diff --git a/addons/gforces/stringtable.xml b/addons/gforces/stringtable.xml index 538af162fb..708f8806d9 100644 --- a/addons/gforces/stringtable.xml +++ b/addons/gforces/stringtable.xml @@ -43,6 +43,7 @@ Уменьшение перегрузок Redução de Força-G Redukce G Force + Reducción de fuerzas G diff --git a/addons/goggles/stringtable.xml b/addons/goggles/stringtable.xml index 4f24ff1ec0..45cceb03f5 100644 --- a/addons/goggles/stringtable.xml +++ b/addons/goggles/stringtable.xml @@ -14,6 +14,7 @@ Óculos Lunettes Brýle + Gafas ACE Goggles @@ -28,6 +29,7 @@ ACE Óculos ACE Lunettes ACE Brýle + [ACE] Gafas Show Goggle Effects in Third Person @@ -74,6 +76,7 @@ 護目鏡效果 Efeitos de Óculos Efekty brýlí + Efectos de gafas Tint @@ -88,6 +91,7 @@ 染色 Cor Zabarvení + Tinte Tint + Effects @@ -102,6 +106,7 @@ 染色 + 影響 Cor + Efeitos Zabarvení + Efekty + Tinte + efectos Show Wipe Goggles self interaction @@ -112,6 +117,7 @@ 在自我互動中顯示擦拭護目鏡的動作 Afficher l'interaction "Essuyer les lunettes" Mostra a auto-interação de limpar os óculos + Mostrar limpiar gafas en menú de auto-interacción diff --git a/addons/interact_menu/stringtable.xml b/addons/interact_menu/stringtable.xml index c74a7ea17b..297512d80c 100644 --- a/addons/interact_menu/stringtable.xml +++ b/addons/interact_menu/stringtable.xml @@ -458,6 +458,7 @@ Cor do Seletor Couleur du sélecteur Barva selektoru + Selector de color diff --git a/addons/interaction/stringtable.xml b/addons/interaction/stringtable.xml index 3f5e9fb7b7..560aba17c5 100644 --- a/addons/interaction/stringtable.xml +++ b/addons/interaction/stringtable.xml @@ -14,6 +14,7 @@ Interação Interaction Interakce + Interacción Interactions @@ -857,6 +858,7 @@ Virar Tourner Otočit + Voltear Interact @@ -967,6 +969,7 @@ Desativar avaliação negativa Désactiver la notation négative Vypnout negativní hodnocení + Deshabilitar valoración negativa Should players receive negative rating? When enabled players are only receiving positive ratings which prevents friendly AI fire when destroying friendly equipment or killing team members. @@ -981,6 +984,7 @@ Jogadores devem receber uma avaliação negativa? Quando ativado, os jogadores estão recebendo avaliações positivas, prevenindo que IA amigável atire quando destruir algum equipamento aliado ou matar membros de equipe. Définit si les joueurs peuvent recevoir une note négative. Si l'option est activée, les joueurs obtiennent des notes positives exclusivement.\nCela permet d'éviter que les unités IA ne fassent du tir ami lorsque des joueurs détruisent de l'équipement allié, ou tuent des membres de l'équipe. Měli by hráči obdržet negativní hodnocení? Pokud ne, hráči obdrží pouze pozitivní hodnocení, což zabrání přátelské AI střílet na hráče pokud hráči ničí přátelské vybavení nebo zabíjejí vlastní tým. + ¿Deben los jugadores recibir una calificación negativa? Cuando los jugadores habilitados solo reciben calificaciones positivas, lo que evita el fuego amistoso de la IA al destruir equipamiento amigo o matar a los miembros del equipo. Team management allows color allocation for team members, taking team command and joining/leaving teams. @@ -1116,6 +1120,7 @@ Retirar Corpo Retirer le corps Vytáhnout tělo + Sacar cuerpo Smash windshield @@ -1129,6 +1134,7 @@ Sfonda il parabrezza Quebrar pára-brisa 踹開擋風玻璃 + Romper parabrisas diff --git a/addons/medical/stringtable.xml b/addons/medical/stringtable.xml index c12987ac63..f810b49280 100644 --- a/addons/medical/stringtable.xml +++ b/addons/medical/stringtable.xml @@ -27,6 +27,7 @@ 從無意識中甦醒機率 Chance di rialzarsi Pravděpodobnost probuzení se z bezvědomí + Posibilidad de recuperar la conciencia The probablity that a unit with stable vitals will wake up from unconsciousness (checked every 15 seconds). @@ -38,6 +39,7 @@ 生命跡象穩定的單位從無意識狀態中甦醒的機率(每十五秒確認一次) La probabilità che un'unità con i segni vitali stabili si risvegli dall'incoscienza (controllata ogni 15 secondi). Pravděpodobnost, že se jednotka se stabilními životními známkami probudí z bezvědomí (zkoušeno každých 15 vteřin). + La probabilidad de que una unidad estabilizada recupere la conciencia y se levante (se comprueba cada 15 segundos) Epinephrine Increases Wake Up Chance @@ -47,6 +49,7 @@ L'epinefrina aumenta la possibilità di rialzarsi Epinefrin zvyšuje šanci na probuzení Epinefrina Aumenta a chance de acordar + Epinefrina, aumenta la posibilidad de despertar Increases how often spontaneous wake up checks happen when patient has Epinephrine in their system. @@ -56,6 +59,7 @@ Aumenta la frequenza dei controlli al risveglio spontaneo quando il paziente ha l'Epinefrina nel suo corpo Zvyšuje jak často je proveden test na probuzení z bezvědomí pokud má pacient Epinefrin ve svém krevním oběhu. Aumenta o quão frequentemente checagens de acordar acontecem quando o paciente possui epinefrina no seu sistema + Incrementa con que frecuencia se comprueba el despertar cuando el paciente tiene epinefrina en su sistema Limping @@ -66,6 +70,7 @@ 跛腳 Zoppicare Kulhání + Cojera Controls whether open or bandaged wounds cause a person to limp. @@ -75,6 +80,7 @@ Controlla se le ferite aperte o bendate fanno zoppicare una persona. Nastavuje zda otevřená nebo zavázaná zranění způsobují kulhání. Controla se ferimentos abertos ou enfaixados causam a pessoa a mancar + Controla si las heridas abiertas o vendadas hacen que una persona cojee. Limp on Open Wounds @@ -85,6 +91,7 @@ 傷口裂開時跛腳 Zoppo per via delle ferite aperte Kulhat s otevřeným zraněním + Cojera en heridas abiertas Limp on Open or Bandaged Wounds @@ -95,6 +102,7 @@ 使裂開或者包紮過的傷口讓人跛腳 Zoppicare su ferite aperte o bendate Kulhat s otevřeným i zavázaným zraněním + Cojera en heridas abiertas o vendadas Fractures @@ -105,6 +113,7 @@ 骨折 Fratture Zlomeniny + Fracturas Controls the effect of using splints to treat fractures.\nWhen disabled, injuries will not cause fractures. @@ -114,6 +123,7 @@ Controlla l'effetto dell'utilizzo di stecche per curare le fratture. Quando disabilitato, le lesioni non causano fratture. Nastavuje efekt dlahy při léčení zlomenin.\nPokud je tato možnost vypnuta, zranění nebudou způsobovat zlomeniny. Controla o efeito de uso de talas para tratar fraturas. \nQunado desabilitado, ferimentos não causam fraturas. + Controla el efecto del uso de férulas para tratar fracturas. \n Cuando está desactivado, las lesiones no causan fracturas. Splints Fully Heal Fractures @@ -124,6 +134,7 @@ 固定板完全治癒骨折 Le gessature curano al massimo le fratture Dlahy kompletně léčí zlomeniny + Férulas sanan completamente las fracturas Splints Heal, but Cannot Sprint @@ -134,6 +145,7 @@ 固定版能治癒骨折,但無法奔跑 Le gessature curano, ma non puoi correre Dlahy léčí, ale zněmožňují sprintování + Las férulas sanan, pero no pueden correr Remote Controlled AI @@ -431,6 +443,7 @@ Ouvrir le couvercle Abrir Tampa Otevřít víko + Abrir tapa Close lid @@ -445,6 +458,7 @@ Fermer le couvercle Fechar Tampa Zavřít víko + Cerrar tapa diff --git a/addons/medical_ai/stringtable.xml b/addons/medical_ai/stringtable.xml index 42c54a2e47..9dab7da713 100644 --- a/addons/medical_ai/stringtable.xml +++ b/addons/medical_ai/stringtable.xml @@ -11,6 +11,7 @@ AI醫療兵 Medico AI Zdravotnická AI + Médico para IA AI will respond to injury and unconsciousness @@ -22,6 +23,7 @@ AI對於受傷及無意識單位會有所反應 L'intelligenza artificiale risponderà a lesioni e perdita di coscienza UI reaguje na zranění a bezvědomí + La IA responderá a heridas e inconsciencia Only Server and HC diff --git a/addons/medical_blood/stringtable.xml b/addons/medical_blood/stringtable.xml index 1427b3b070..4a64e9d9c8 100644 --- a/addons/medical_blood/stringtable.xml +++ b/addons/medical_blood/stringtable.xml @@ -28,6 +28,7 @@ Разрешить капли крови Permitir gotas de sangue Povolit kapky krve + Habilitar manchas de sangre Enables the creation of blood drops when units are bleeding or take damage. @@ -37,6 +38,7 @@ Permitir a criação de gotas de sangue quando as unidades recebem ferimentos ou estão sangrando. 啟用出血效果當單位失血或受傷的時候。 Povoluje vytváření kapek krve na zemi když jednotka krvácí nebo utrpí zranění. + Habilita la creación de sangrecuando la unidad está sangrando o recibe daño Max Blood Objects @@ -47,6 +49,7 @@ 最大血跡數 Oggetti Sangue al Massimo Maximum objektů krve + Máxima cantidad de objetos de sangre Sets the maximum number of blood drop objects which can be spawned, excessive amounts can cause FPS lag. @@ -57,6 +60,7 @@ 設定最大可存在的血跡數量。太極端的數量會導致幀數低落或卡頓 Imposta il numero massimo di gocce di sangue che possono essere depositate, quantità eccessive possono causare del lag di FPS. Nastavuje maximum objektů krve na zemi, příliš mnoho může způsobit pokles FPS + Fija el límite de objetos de sangre que aparecerán, cantidades excesivas pueden causar caídas de FPS Blood Lifetime @@ -67,6 +71,7 @@ 血跡時長 Vita del sangue Životnost krve + Duración de la sangre Controls the lifetime of blood drop objects. @@ -77,6 +82,7 @@ 控制血跡在地上的時長 Controlla la durata degli oggetti con gocce di sangue. Nastavuje jak dlouho objekty krve na zemi vydrží. + Controla el tiempo de vida que tendrán los objetos de sangre Only Players @@ -91,6 +97,7 @@ Только игроки Apenas Jogadores Pouze hráči + Solo jugadores diff --git a/addons/medical_damage/stringtable.xml b/addons/medical_damage/stringtable.xml index 8d9aa5a354..728d33f5cb 100644 --- a/addons/medical_damage/stringtable.xml +++ b/addons/medical_damage/stringtable.xml @@ -10,6 +10,7 @@ 玩家重擊承受量 Soglia danni critici del giocatore Kritická míra poškození pro hráče + Límite de daño crítico al jugador Sets the amount of damage a player can receive before going unconscious. @@ -20,6 +21,7 @@ 設定玩家在無意識前能承受多少傷害。 Imposta la quantità di danno che un giocatore può ricevere prima di perdere conoscenza. Nastavuje kolik poškození hráč může obdržet než upadne do bezvědomí. + Fijar la cantidad de daño que un jugador puede recivir antes de caer inconsciente AI Critical Damage Threshold @@ -30,6 +32,7 @@ AI重擊承受量 Soglia dei danni critici dell AI Kritická míra poškození pro AI + Límite de daño crítico de la IA Sets the amount of damage an AI unit can receive before going unconscious. @@ -40,6 +43,7 @@ 設定AI在無意識之前能承受多少傷害 Imposta la quantità di danno che un'unità AI può ricevere prima di perdere conoscenza. Nastavuje kolik poškození AI může obdržet než upadne do bezvědomí. + Fijar la cantidad de daño que la IA puede recivir antes de caer inconsciente Scrape @@ -529,6 +533,7 @@ Fonte del danno fatale Zdroj smrtelné škody Fonte de Dano Fatal + Origen de daño fatal Determines what damage can be fatal @@ -538,6 +543,7 @@ Détermine le type de blessures pouvant être fatales. Nastavuje jaké poškození může být smrtelné Determina qual dano pode ser fatal + Determina qué daño puede ser fatal Only large hits to vital organs @@ -547,6 +553,7 @@ Solo grandi colpi agli organi vitali Pouze zásahy do životně důležitých orgánů Apenas danos largos a órgãos vitais + Solo grandes heridas en organos vitales Sum of trauma @@ -556,6 +563,7 @@ Somma dei traumi Celkové množství úrazů Soma do trauma + Suma de traumatismos Either @@ -565,6 +573,7 @@ o Kterýkoliv ze dvou Ou + Ambos diff --git a/addons/medical_feedback/stringtable.xml b/addons/medical_feedback/stringtable.xml index e81106aa33..dae2f8f2a8 100644 --- a/addons/medical_feedback/stringtable.xml +++ b/addons/medical_feedback/stringtable.xml @@ -11,6 +11,7 @@ 視覺回饋 Commenti Zpětná vazba + Reacción Pain Effect Type @@ -36,6 +37,7 @@ 選擇哪一個視覺效果用於回饋疼痛 Seleziona il tipo di effetto del dolore usato. Nastavuje který efekt bolesti bude používán. + Selecciona el tipo de efecto de dolor White Flashing @@ -47,6 +49,7 @@ 白光閃爍 Bianco lampeggiante Blikání bílé barvy + Destello blanco Pulsing Blur @@ -58,6 +61,7 @@ 脈動模糊 Sfocatura pulsante Pulzující rozmazání + Enborronamiento pulsante Chromatic Aberration @@ -83,6 +87,7 @@ Solo elevato effetto di dolore Pouze efekt vysoké bolesti Apenas efeito de dor alta + Solo efecto de dolor fuerte diff --git a/addons/medical_gui/stringtable.xml b/addons/medical_gui/stringtable.xml index 5a40f2770b..5c47eb31bb 100644 --- a/addons/medical_gui/stringtable.xml +++ b/addons/medical_gui/stringtable.xml @@ -10,6 +10,7 @@ 界面 GUI GUI + Interfaz gráfica Enable Medical Actions @@ -21,6 +22,7 @@ 啟用醫療行為 Attivare azioni mediche Povolit zdravotnické akce + Habilitar acciones médicas Enables medical actions for the Interaction Menu and selects their style. @@ -32,6 +34,7 @@ 為互動選單啟用醫療行為以及選擇其風格。 Abilita le azioni mediche per il Menu Interazione e seleziona il loro stile. Povolit zdravotnické akce pro menu interakcí a vybrat jejich styl. + Habilita acciones médicas para el menú de interacción y selecciona su estilo. Selections (3D) @@ -75,6 +78,7 @@ 啟用自我醫療行為 Abilitare le azioni di automedicazione Povolit zdravotnické vlastní akce + Habilitar las acciones médicas en uno mismo Enables medical actions for the Self Interaction Menu. @@ -86,6 +90,7 @@ 為自我互動選單啟用醫療行為。 Abilita il menu per le interazioni mediche personali Povoluje zdravotnické akce v menu vlastních interakcí. + Activa las acciones médicas para el menú de interacción personal Enable Medical Menu @@ -97,6 +102,7 @@ 啟用醫療選單 Abilita il menu medico Povolit Zdravotnické menu + Activar menú médico Enables the use of the Medical Menu through the keybind or interaction menu. @@ -108,6 +114,7 @@ 啟用以互動選單或者按鍵綁定所呼出的高效醫療選單 Abilita l'uso del Menu Medico attraverso il menu tastiera o il menu di interazione. Povoluje používání Zdravotnického menu klávesovou zkratku nebo skrze menu interakcí. + Activa el uso del menú médico a través de la tecla o del menú de interacción Reopen Medical Menu @@ -119,6 +126,7 @@ 醫療選單二度開啟 Riaprire il menù medico Znovu otevřít Zdravotnické menu + Reabrir menú médico Reopen the Medical Menu after successful treatment. @@ -130,6 +138,7 @@ 當治療完成後二度打開醫療選單 Riaprire il menu medico dopo il trattamento con successo. Otevře Zdravotnické menu po úspěšném dokončení zdravotnické akce. + Reabrir menú médico después de completar un tratamiento Maximum Distance @@ -141,6 +150,7 @@ 最大醫療距離 Massima distanza Maximální vzdálenost + Distancia máxima Maximum distance from which the Medical Menu can be opened. @@ -152,6 +162,7 @@ 設定距離多遠以內可以對目標使用醫療選單 Distanza massima da cui si può aprire il Menu Medico. Maximální vzdálenost ze které je možné otevřít Zdravotnické menu. + Distancia máxima desde el paciente para que el menú pueda ser abierto Medical @@ -871,6 +882,7 @@ 骨折 Frattura Zlomené + Fracturada Splint Applied @@ -881,6 +893,7 @@ 已使用固定板 Gessatura applicata Dlaha aplikována + Tablilla aplicada @@ -893,6 +906,7 @@ 輕微失血 Ha perso un po' di sangue Ztratil trochu krve + Algo de sangre perdida Lost a lot of blood @@ -920,6 +934,7 @@ 極大量失血中 Ha perso una grande quantità di sangue Ztratil velké množství krve + Perdida gran cantidad de sangre Lost a fatal amount of blood @@ -931,6 +946,7 @@ 致命性失血中 Ha perso una quantità fatale di sangue Vykrvácel + Perdida una cantidad fatal de sangre Tourniquet [CAT] @@ -986,6 +1002,7 @@ Parziale %1 Parciální %1 Parcial%1 + Parcial %1 diff --git a/addons/medical_status/stringtable.xml b/addons/medical_status/stringtable.xml index 06373da4b4..1a7d3b41d3 100644 --- a/addons/medical_status/stringtable.xml +++ b/addons/medical_status/stringtable.xml @@ -11,6 +11,7 @@ 狀態 Stato Stav + Estado Bleeding Coefficient @@ -86,6 +87,7 @@ 點滴輸血流量 IV Portata della trasfusione Rychlost IV transfuze + IV Flujo de transfusión Controls how quickly fluid flows out of IV Bags. The IV Bag volume change is calculated as:\ntime interval (s) * iv change per second (4.1667 mL/s) * flow rate (this coefficient). @@ -97,6 +99,7 @@ 控制從點滴輸入人體的液體流量多快。點滴的體積更改是以\n時間間隔(單位秒)乘上點滴每秒速度(4.1667毫升/秒)乘上流量(該係數)。 Controlla la velocità con cui il fluido esce dalle sacche per flebo. La variazione di volume delle sacche IV è calcolata come:\intervallo di tempo (s) * variazione iv al secondo (4,1667 mL/s) * portata (questo coefficiente). Nastavuje jak rychle tekutiny vytékají z IV sáčku. Zbývající objem IV sáčku je vypočítáván následovně:\nčasový interval (s) * změna iv za sekundu (4,1667 mL/s) * rychlost toku (tento koeficient). + Controla la rapidez con que fluye el líquido de las bolsas intravenosas. El cambio de volumen de la bolsa IV se calcula como: \n intervalo (s) de tiempo * cambio iv por segundo (4.1667 mL/s) * velocidad de flujo (este coeficiente). diff --git a/addons/medical_treatment/stringtable.xml b/addons/medical_treatment/stringtable.xml index 4fa21c928a..70a02489fa 100644 --- a/addons/medical_treatment/stringtable.xml +++ b/addons/medical_treatment/stringtable.xml @@ -2260,6 +2260,7 @@ 套上固定板 Applica gessatura Aplikovat dlahu + Aplicar férula Applying Splint... @@ -2270,6 +2271,7 @@ 套用固定板中... Applicazione gessatura Aplikuji dlahu... + Aplicando férula... Diagnose @@ -2489,6 +2491,7 @@ 輕微 Minimo Minimální + Mínimo Delayed @@ -2628,6 +2631,7 @@ 中度疼痛中 Con un dolore leggero V mírných bolestech + Con dolor leve In pain @@ -2655,6 +2659,7 @@ 嚴重疼痛中 Con un forte dolore Ve velkých bolestech + Con dolor severo Tourniquet [CAT] @@ -3703,6 +3708,7 @@ %1 ha applicato una gessatura %1 použil dlahu %1 は添え木を当てた + %1 aplicada una férula %1 used Personal Aid Kit diff --git a/addons/minedetector/stringtable.xml b/addons/minedetector/stringtable.xml index c7b0a446eb..06353cdf3e 100644 --- a/addons/minedetector/stringtable.xml +++ b/addons/minedetector/stringtable.xml @@ -14,6 +14,7 @@ 金属探测器 金屬探測器 Detector de Metais + Detector de metales Metal detector @@ -28,6 +29,7 @@ 金属探测器 金屬探測器 Detector de Metais + Detector de metales Activate @@ -42,6 +44,7 @@ 启用探测器 啟用探測器 Ativar + Activar Deactivate @@ -56,6 +59,7 @@ 停用探测器 停用探測器 Desativar + Desactivar Connect Headphones @@ -70,6 +74,7 @@ 连接耳机 連接耳機 Conectar fones de ouvido + Conectar auriculares Disconnect Headphones @@ -84,6 +89,7 @@ 断开耳机 斷開耳機 Desconectar fones de ouvido + Desconectar auriculares Headphones Connected @@ -98,6 +104,7 @@ 已连接耳机 已連接耳機 Fones de ouvido conectados + Auriculares conectados Headphones Disconnected @@ -112,6 +119,7 @@ 已断开耳机 已斷開耳機 Fones de ouvido conectados + Auriculares desconectados diff --git a/addons/nametags/stringtable.xml b/addons/nametags/stringtable.xml index bcb19f2b49..156f225ec4 100644 --- a/addons/nametags/stringtable.xml +++ b/addons/nametags/stringtable.xml @@ -142,6 +142,7 @@ Затухание на границе экрана Ocultar na borda da tela Zeslábnout poblíž okrajů obrazovky + Difuminar en el borde de pantalla Show player ranks (requires player names) @@ -362,6 +363,7 @@ Transparência da etiqueta de nome Transparence des noms Průhlednost jmenovek + Transparencia de etiquetas de jugadores Nametags Size diff --git a/addons/nightvision/stringtable.xml b/addons/nightvision/stringtable.xml index d7eb4d4879..c5316b3437 100644 --- a/addons/nightvision/stringtable.xml +++ b/addons/nightvision/stringtable.xml @@ -262,6 +262,7 @@ Степень размытия ПНВ Escala de Névoa na NVG Míra mlhy pro noktovizor + Escala de niebla NVG Fog is used to limit visibility. @@ -275,6 +276,7 @@ Туман используется для ограничения видимости Névoa é usada para limitar visibilidade. Mlha je použita pro omezení dohledu. + Niebla es usada para limitar la visibilidad NVG Effect Scale @@ -288,6 +290,7 @@ Степень эффектов ПНВ Intensidade de efeito da Visão Noturna Míra efektu pro noktovizor + Escala del efecto NVG Blur and brightness effects [Setting to 0 will disable ALL nightvision effects] @@ -301,6 +304,7 @@ Эффекты размытия и яркости [Установка на 0 отключит ВСЕ эффекты ПНВ] Efeitos de borrão e brilho [Definir 0 desativa TODOS os efeitos da Visão Noturna] Rozostření a jas [Nastavení na 0 vypne VŠECHNY efekty nočního vidění] + Efectos de emborronado y brillo [Configuración a 0 deshabilita todos los efectos de visión nocturna] Aim Down Sights Blur @@ -314,6 +318,7 @@ Размытие при опущеном прицеле Borrão ao mirar Rozostření při použití mířidel + Emborronado al mirar NVG Noise Scale @@ -327,6 +332,7 @@ Степень шума ПНВ Intensidade de Ruído/Efeito Granulado Míra šumu pro noktovizor + Escala de ruido/granulado NVG Image noise intensity when wearing NVGs @@ -340,6 +346,7 @@ Интенсивность шума при использовании ПНВ Intensidade de Ruído de Imagem ao utilizar Visão Noturna Intezita šumu při používání noktovizoru + Intensidad de ruido de la imagen cuando se usa NVG Shutter Effects @@ -353,6 +360,7 @@ Эффекты затвора Efeito de Obturador Efekt závěrky + Efecto de obturador Rolling shutter effect from muzzle flashes @@ -366,6 +374,7 @@ Эффект затвора при вспышках выстрелов Efeito de rolamento de Obturador de flashes de focinho Efekt závěrky z důsledku výšlehu při střelbě + Efecto obturador por los fogonazos de la boca del cañón diff --git a/addons/parachute/stringtable.xml b/addons/parachute/stringtable.xml index f9fd3a91ac..dabd7d18c9 100644 --- a/addons/parachute/stringtable.xml +++ b/addons/parachute/stringtable.xml @@ -109,6 +109,7 @@ Esconder Altímetro de queda livre Masquer l'altimètre en chute libre Schovat výškoměr v GUI při volném pádu + Ocultar altímetro de caída libre Hides the altitude and speed shown while free falling or parachuting. @@ -122,6 +123,7 @@ Esconde a altitude e velocidade enquanto estiver em queda livre ou saltando de paraquedas. Cache l'altitude et la vitesse affichées, lors d'une chute libre ou d'un parachutage. Schová výšku a rychlost v GUI při volném pádu a při použití padáku. + Oculta la altitud y la velocidad que se muestran en caída libre o en paracaídas. diff --git a/addons/realisticnames/stringtable.xml b/addons/realisticnames/stringtable.xml index 432b27311c..b3626f4411 100644 --- a/addons/realisticnames/stringtable.xml +++ b/addons/realisticnames/stringtable.xml @@ -669,6 +669,7 @@ KamAZ MRL KamAZ LRM KamAZ MRL (raketové dělostřelectvo) + KamAZ MRL Karatel @@ -1287,6 +1288,7 @@ V40 Mini-Grenade V40迷你手榴彈 V40 Mini-Granát + Mini Granada V40 M83 Smoke Grenade (White) @@ -1685,6 +1687,7 @@ Metis-M (Brązowy) Metis-M (Marrom) Metis-M (hnědý) + Metis-M (Marrón) Metis-M (Green) @@ -1698,6 +1701,7 @@ Metis-M (Zielony) Metis-M (Verde) Metis-M (zelený) + Metis-M (Verde) MX diff --git a/addons/repair/stringtable.xml b/addons/repair/stringtable.xml index 119172c913..88c5645931 100644 --- a/addons/repair/stringtable.xml +++ b/addons/repair/stringtable.xml @@ -1141,6 +1141,7 @@ Somente engenheiro avançado Ing. avancés uniquement Pouze pokročilý inženýr + Solo ingeniero avanzado Allow Wheel @@ -1471,6 +1472,7 @@ Engenheiro Avançado Ing. avancé Pokročilý Inženýr + Ingeniero avanzado Assign one or multiple units as an engineer @@ -1825,6 +1827,7 @@ Requisiti di riparazione vari Požadavky pro částečnou opravu Requerimentos para reparo miscelâneo + Requisitos de objetos misceláneos de reparación Items required to repair a specific vehicle component or remove/replace tracks. @@ -1833,6 +1836,7 @@ Outils nécessaires pour la réparation d'un équipement spécifique du véhicule, et pour le démontage ou le remplacement des chenilles. Předměty potřebné k provedení opravy konkrétní části vozidla nebo sundání/výměny pásů. Items necessários para reparar uma peça específica ou remover/substituir lagarta. + Objetos necesarios para reparar un componente específico del vehículo o quitar/reemplazar las orugas. Elementi necessari per riparare un componente specifico del veicolo o per rimuovere/sostituire i cingoli @@ -1843,6 +1847,7 @@ Requisiti per la riparazione completa Požadavky pro plnou opravu Requerimentos de Reparo Completo + Requisitos para reparación completa Items required to perform a full vehicle repair. @@ -1851,6 +1856,7 @@ Outils nécessaires pour effectuer une réparation complète des véhicules. Předměty potřebné k provedení plné opravy vozidla. Itens requeridos para realizar um reparo veicular completo. + Objetos requeridos para una reparación completa Elementi necessari per eseguire una riparazione completa del veicolo. @@ -1880,6 +1886,7 @@ Esteiras Reservas Chenilles de rechange Náhradní pásy + Orugas de repuesto Number of spare tracks in cargo. @@ -1893,6 +1900,7 @@ Número de esteiras reservas na Carga Nombre de chenilles de rechange dans la cargaison. Počet náhradních pásů v nákladovém prostoru vozidla. + Número de orugas de repuesto en la carga Spare Wheels @@ -1906,6 +1914,7 @@ Pneus Reservas Roues de secours Náhradní kola + Ruedas de repuesto Number of spare wheels in cargo. @@ -1919,6 +1928,7 @@ Número de pneus reservas na Carga Nombre de roues de secours dans la cargaison. Počet náhradních kol v nákladovém prostoru vozidla. + Número de ruedas de repuesto en la carga Auto shut off engine on repair @@ -1932,6 +1942,7 @@ Desligar motor automaticamente enquanto reparar Arrêt auto du moteur lors d'une réparation Automaticky vypnout motor při opravách + Apagar el motor automáticamente al reparar Automatically shut off the engine when doing repairs. @@ -1945,6 +1956,7 @@ Automaticamente desliga o motor quando iniciar o reparo do veículo. Coupe automatiquement le moteur lorsque des réparations sont effectuées. Automaticky vypne motor při zahájení oprav. + Apagar el motor automáticamente al efectuar una reparación From fc13775786a73f926f1a917f5334ee2ee04c44fc Mon Sep 17 00:00:00 2001 From: Brandon Danyluk Date: Thu, 2 Jan 2020 20:57:30 -0700 Subject: [PATCH 023/194] Update CSW RHS compat for new Mk-19 ammo type (#7354) * Update RHS compat for new Mk-19 ammo type * Formatting fix --- optionals/compat_rhs_usf3/CfgMagazineGroups.hpp | 4 ++++ optionals/compat_rhs_usf3/CfgMagazines.hpp | 9 +++++++++ 2 files changed, 13 insertions(+) diff --git a/optionals/compat_rhs_usf3/CfgMagazineGroups.hpp b/optionals/compat_rhs_usf3/CfgMagazineGroups.hpp index 44d29c1f8a..333aacbcfe 100644 --- a/optionals/compat_rhs_usf3/CfgMagazineGroups.hpp +++ b/optionals/compat_rhs_usf3/CfgMagazineGroups.hpp @@ -16,6 +16,10 @@ class ace_csw_groups { RHS_48Rnd_40mm_MK19_M430I = 1; RHS_96Rnd_40mm_MK19_M430I = 1; }; + class GVAR(48Rnd_40mm_MK19_M430A1) { + RHS_48Rnd_40mm_MK19_M430A1 = 1; + RHS_96Rnd_40mm_MK19_M430A1 = 1; + }; class GVAR(48Rnd_40mm_MK19_M1001) { RHS_48Rnd_40mm_MK19_M1001 = 1; RHS_96Rnd_40mm_MK19_M1001 = 1; diff --git a/optionals/compat_rhs_usf3/CfgMagazines.hpp b/optionals/compat_rhs_usf3/CfgMagazines.hpp index 2dd486d3eb..7bc33accc7 100644 --- a/optionals/compat_rhs_usf3/CfgMagazines.hpp +++ b/optionals/compat_rhs_usf3/CfgMagazines.hpp @@ -204,6 +204,15 @@ class cfgMagazines { model = "\A3\Structures_F_EPB\Items\Military\Ammobox_rounds_F.p3d"; // ammo can instead of any special model so no one gets especially confused over what it is picture = QPATHTOEF(csw,UI\ammoBox_50bmg_ca.paa); }; + class RHS_48Rnd_40mm_MK19_M430A1; + class GVAR(48Rnd_40mm_MK19_M430A1): RHS_48Rnd_40mm_MK19_M430A1 { + scope = 2; + type = 256; + count = 48; + mass = 40; + model = "\A3\Structures_F_EPB\Items\Military\Ammobox_rounds_F.p3d"; // ammo can instead of any special model so no one gets especially confused over what it is + picture = QPATHTOEF(csw,UI\ammoBox_50bmg_ca.paa); + }; class RHS_48Rnd_40mm_MK19_M1001; class GVAR(48Rnd_40mm_MK19_M1001): RHS_48Rnd_40mm_MK19_M1001 { scope = 2; From 1aec991f54cd6e3de79a3a971f139f6e3ad3d4ed Mon Sep 17 00:00:00 2001 From: classic Date: Sat, 4 Jan 2020 01:07:52 +0900 Subject: [PATCH 024/194] Update Japanese translation (#7371) * Update Japanese translation * Update Japanese translation * Update Japanese translation * Update Japanese translation * Update Japanese translation * Update Japanese translation * Update Japanese translation --- addons/common/stringtable.xml | 4 ++++ addons/csw/stringtable.xml | 10 +++++----- addons/fastroping/stringtable.xml | 1 + addons/medical_gui/stringtable.xml | 12 ++++++------ addons/medical_treatment/stringtable.xml | 3 ++- addons/quickmount/stringtable.xml | 1 + addons/switchunits/stringtable.xml | 1 + 7 files changed, 20 insertions(+), 12 deletions(-) diff --git a/addons/common/stringtable.xml b/addons/common/stringtable.xml index 15e0f5a6b4..de946b15bc 100644 --- a/addons/common/stringtable.xml +++ b/addons/common/stringtable.xml @@ -467,6 +467,7 @@ Définit l'action à effectuer si un joueur n'a pas les bons PBOs. 設定當玩家有錯誤的PBO檔案時要如何處置。 Nastavuje jakou akci provést pokud hráč nemá správné PBO. + プレイヤーが不正規の PBO を所持している場合の動作を決定します。 Check PBO All @@ -488,6 +489,7 @@ Vérifie tous les addons, même ceux qui ne sont pas liés à ACE. 檢查全部的插件而非只有ACE。 Zkontrolovat všechny addony a ne jenom ACE. + ACE のみならず、全てのアドオンを検査します。 Check PBO Whitelist @@ -509,6 +511,7 @@ Permet de définir une liste d'addons autorisés systématiquement. 定義哪些插件是允許使用的。 Nastavte seznam addonů, které jsou povolené. + 許可するアドオンを定義します。 Feedback icons @@ -1354,6 +1357,7 @@ Affiche l'action dans le menu d'interaction personnel. 在自我互動選單內顯示動作 Mostra a ação no menu de auto-interação + セルフ インタラクションに動作を表示 diff --git a/addons/csw/stringtable.xml b/addons/csw/stringtable.xml index 65e43483a3..2c79784a9d 100644 --- a/addons/csw/stringtable.xml +++ b/addons/csw/stringtable.xml @@ -504,7 +504,7 @@ [CSW] M2 Gun Bag [CSW] Bolsa de Arma - M2 [CSW] Sac M2 - [CSW] M2 バッグ + [CSW] M2 ガン バッグ [CSW] M2槍械袋 [CSW] M2 Gun Bag [CSW] M2 zbraň v pouzdře @@ -513,7 +513,7 @@ [CSW] MK19 Gun Bag [CSW] Bolsa de Arma - MK19 [CSW] Sac MK19 - [CSW] Mk19 バッグ + [CSW] Mk19 ガン バッグ [CSW] Mk19槍械袋 [CSW] MK19 Gun Bag [CSW] MK19 zbraň v pouzdře @@ -531,7 +531,7 @@ [CSW] DSHK Gun Bag [CSW] Bolsa de Arma - DSHK [CSW] Sac DSHK - [CSW] DShK バッグ + [CSW] DShK ガン バッグ [CSW]DShK 槍械袋 [CSW] DSHK Gun Bag [CSW] DSHK zbraň v pouzdře @@ -549,7 +549,7 @@ [CSW] NSV Gun Bag [CSW] Bolsa de Arma - NSV [CSW] Sac NSV - [CSW] NSV バッグ + [CSW] NSV ガン バッグ [CSW] NSV 槍械袋 [CSW] NSV Gun Bag [CSW] NSV zbraň v pouzdře @@ -558,7 +558,7 @@ [CSW] KORD Gun Bag [CSW] Bolsa de Arma - KORD [CSW] Sac KORD - [CSW] KORD バッグ + [CSW] KORD ガン バッグ [CSW] KORD 槍械袋 [CSW] KORD Gun Bag [CSW] KORD zbraň v pouzdře diff --git a/addons/fastroping/stringtable.xml b/addons/fastroping/stringtable.xml index 3b82b7c432..b221d4a9ac 100644 --- a/addons/fastroping/stringtable.xml +++ b/addons/fastroping/stringtable.xml @@ -298,6 +298,7 @@ Fast-roping Aérocordage 快速繩降 + ファスト ロープ Require rope item to deploy diff --git a/addons/medical_gui/stringtable.xml b/addons/medical_gui/stringtable.xml index 5c47eb31bb..98bf47c42d 100644 --- a/addons/medical_gui/stringtable.xml +++ b/addons/medical_gui/stringtable.xml @@ -868,7 +868,7 @@ Perdeu muito sangue Ztratil hodně krve Perso molto Sangue - 大量失血している + 大量失血した 많은 피를 흘림 大量失血 大量失血 @@ -887,7 +887,7 @@ Splint Applied Наложена шина - 添え木が当てている + 添え木を当てている Attelle appliquée Tala Aplicada 已使用固定板 @@ -899,7 +899,7 @@ Lost some blood Hat etwas Blut verloren - いくらか失血している + いくらか失血した Небольшая кровопотеря A perdu un peu de sang Perdeu um pouco de Sangue @@ -919,7 +919,7 @@ Sok vért vesztett Ha perso parecchio sangue Perdeu muito sangue - 大量失血している + 大量失血した 많은 양의 혈액을 잃음 大量失血中 大量失血中 @@ -927,7 +927,7 @@ Lost a large amount of blood Hat eine sehr große Menge Blut verloren - かなり酷く大量失血している + かなり酷く大量失血した Огромная кровопотеря A perdu une grande quantité de sang Perdeu uma quantidade grande de sangue @@ -939,7 +939,7 @@ Lost a fatal amount of blood Hat eine kritische Menge an Blut verloren - 致命的な程失血している + 致命的な程失血した Фатальная кровопотеря Exsanguination Perdeu uma quantidade fatal de sangue diff --git a/addons/medical_treatment/stringtable.xml b/addons/medical_treatment/stringtable.xml index 70a02489fa..e483ff9f12 100644 --- a/addons/medical_treatment/stringtable.xml +++ b/addons/medical_treatment/stringtable.xml @@ -112,6 +112,7 @@ Controls whether fully bandaged body parts are healed. + 全ての傷に対して包帯を巻いた部分を治癒するかどうかを決定します。 Locations Boost Training @@ -442,7 +443,7 @@ Remove Only - 削除 + 削除のみ Retirer uniquement Удалять Apenas Remover diff --git a/addons/quickmount/stringtable.xml b/addons/quickmount/stringtable.xml index 5d392c58a7..1aa32dde1d 100644 --- a/addons/quickmount/stringtable.xml +++ b/addons/quickmount/stringtable.xml @@ -62,6 +62,7 @@ Cette option permet d'entrer rapidement dans les véhicules que vous regardez. 這個選項允許你能快速進入你直視的載具 Esta opção permite entrada rápida para o veículo que você está olhando + この機能により直接見ている車両へすぐさま搭乗できます。 Distance diff --git a/addons/switchunits/stringtable.xml b/addons/switchunits/stringtable.xml index 6d328672de..9de6840393 100644 --- a/addons/switchunits/stringtable.xml +++ b/addons/switchunits/stringtable.xml @@ -68,6 +68,7 @@ 啟用陣營切換 Povolit změnu strany Habilita troca de time + 陣営切り替えを有効化 Switch to West? From 97d8be94ce64a57c6db6e19a7caf09db299f19a2 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Fri, 3 Jan 2020 11:24:05 -0600 Subject: [PATCH 025/194] Goggles - Skip rain effects on snow maps (#7373) * Goggles - Skip rain effects on snow maps * Update XEH_postInit.sqf --- addons/goggles/XEH_postInit.sqf | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/addons/goggles/XEH_postInit.sqf b/addons/goggles/XEH_postInit.sqf index 7e4c038ae5..a128c36ad7 100644 --- a/addons/goggles/XEH_postInit.sqf +++ b/addons/goggles/XEH_postInit.sqf @@ -133,12 +133,16 @@ if (!hasInterface) exitWith {}; }] call CBA_fnc_addEventHandler; + // Handle "rain is snow" maps like CUP's Chernarus Winter + private _rainSpeed = getNumber (configFile >> "CfgWorlds" >> worldName >> "RainParticles" >> "dropSpeed"); + GVAR(mapHasRain) = _rainSpeed > 10; // CAWorld default is 25, Chernarus_Winter is 1 + // goggles effects main PFH [{ BEGIN_COUNTER(goggles); // rain - call FUNC(applyRainEffect); + if (GVAR(mapHasRain)) then FUNC(applyRainEffect); // auto remove effects under water if (GVAR(EffectsActive) && {underwater ACE_player} && {[goggles ACE_player] call FUNC(isDivingGoggles)}) then { From e00cb539116b559250b09130fcdca935a4bde575 Mon Sep 17 00:00:00 2001 From: mharis001 <34453221+mharis001@users.noreply.github.com> Date: Sat, 4 Jan 2020 07:33:49 -0500 Subject: [PATCH 026/194] Fix incorrect reopening chance for QuikClot on large abrasions (#7383) --- addons/medical_treatment/ACE_Medical_Treatment.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/medical_treatment/ACE_Medical_Treatment.hpp b/addons/medical_treatment/ACE_Medical_Treatment.hpp index 1c357ec564..1c84e6be0e 100644 --- a/addons/medical_treatment/ACE_Medical_Treatment.hpp +++ b/addons/medical_treatment/ACE_Medical_Treatment.hpp @@ -440,7 +440,7 @@ class ADDON { }; class AbrasionLarge: Abrasion { effectiveness = 0.7; - reopeningChance = 5; + reopeningChance = 0.5; }; class Avulsion: Abrasion { From 62fccd6ff03b77803dc4a811ffda89e27c8bd3c9 Mon Sep 17 00:00:00 2001 From: mharis001 <34453221+mharis001@users.noreply.github.com> Date: Sat, 4 Jan 2020 07:42:51 -0500 Subject: [PATCH 027/194] Medical Treatment - Add self PAK setting (#7382) --- .../ACE_Medical_Treatment_Actions.hpp | 1 + addons/medical_treatment/initSettings.sqf | 9 +++++++++ addons/medical_treatment/stringtable.xml | 18 ++++++++++++------ 3 files changed, 22 insertions(+), 6 deletions(-) diff --git a/addons/medical_treatment/ACE_Medical_Treatment_Actions.hpp b/addons/medical_treatment/ACE_Medical_Treatment_Actions.hpp index 74f02397c6..1799d4f583 100644 --- a/addons/medical_treatment/ACE_Medical_Treatment_Actions.hpp +++ b/addons/medical_treatment/ACE_Medical_Treatment_Actions.hpp @@ -298,6 +298,7 @@ class GVAR(actions) { condition = QUOTE(_patient call EFUNC(medical_status,isInStableCondition)); items[] = {"ACE_personalAidKit"}; treatmentLocations = QGVAR(locationPAK); + allowSelfTreatment = QGVAR(allowSelfPAK); medicRequired = QGVAR(medicPAK); treatmentTime = QFUNC(getHealTime); callbackSuccess = QFUNC(fullHeal); diff --git a/addons/medical_treatment/initSettings.sqf b/addons/medical_treatment/initSettings.sqf index a5da520e89..a4f8191563 100644 --- a/addons/medical_treatment/initSettings.sqf +++ b/addons/medical_treatment/initSettings.sqf @@ -118,6 +118,15 @@ true ] call CBA_settings_fnc_init; +[ + QGVAR(allowSelfPAK), + "LIST", + [LSTRING(AllowSelfPAK_DisplayName), LSTRING(AllowSelfPAK_Description)], + [ELSTRING(medical,Category), LSTRING(SubCategory_Treatment)], + [[0, 1], [ELSTRING(common,No), ELSTRING(common,Yes)], 0], + true +] call CBA_settings_fnc_init; + [ QGVAR(timeCoefficientPAK), "SLIDER", diff --git a/addons/medical_treatment/stringtable.xml b/addons/medical_treatment/stringtable.xml index e483ff9f12..e9df8c966b 100644 --- a/addons/medical_treatment/stringtable.xml +++ b/addons/medical_treatment/stringtable.xml @@ -195,7 +195,7 @@ 允許使用腎上腺素 - Training level required to use Epinephrine. + Training level required to use epinephrine. アドレナリンの使用に訓練レベルを必要とさせます。 Définit quelle qualification médicale est requise pour pouvoir utiliser l'épinéphrine. Уровень подготовки, необходимый для использования Адреналина. @@ -220,7 +220,7 @@ 腎上腺素使用地點 - Controls where Epinephrine can be used. + Controls where epinephrine can be used. アドレナリンが使える場所を決定します。 Définit où l'épinéphrine peut être utilisée. Контролирует, где можно использовать Адреналин. @@ -301,6 +301,12 @@ Controlla se un PAK deve essere consumato dopo l'uso. Nastavuje zda má být osobní lékárnička (PAK) spotřebována po použití. + + Self PAK Usage + + + Enables the use of PAKs to heal oneself. + Time Coefficient PAK 応急処置キットの時間係数 @@ -332,7 +338,7 @@ Povolit sešívací sadu - Training level required to use a Surgical Kit. + Training level required to use a surgical kit. 縫合キットの使用に訓練レベルを必要とさせます。 Définit quelle qualification médicale est requise pour pouvoir utiliser une trousse chirurgicale. Уровень медицинской подготовки, необходимый для использования Хирургического набора. @@ -352,7 +358,7 @@ Nastavuje kde může být sešívací sada použita - Controls where a Surgical Kit can be used. + Controls where a surgical kit can be used. 縫合キットが使える場所を決定します。 Définit où la trousse chirurgicale peut être utilisée. Контролирует, где можно использовать Хирургический набор @@ -372,7 +378,7 @@ Spotřebuj sešívací sadu - Controls whether a Surgical Kit should be consumed after use. + Controls whether a surgical kit should be consumed after use. 縫合キットの使用後に消費するかどうかを決定します。 Définit si la trousse chirurgicale doit être à usage unique. Контролирует, следует ли израсходовать Хирургический набор после использования. @@ -410,7 +416,7 @@ Samoaplikace IV transfuze - Enables the use of IV Transfusions on oneself. + Enables the use of IV transfusions on oneself. Erlaube Bluttransfusionen an sich selbst zu benutzen Позволяет использовать внутривенные переливания на себе 自らに対して IV 輸血を可能にします。 From 2d1f166f5a15d4ec369b5b6233ec553df87866b9 Mon Sep 17 00:00:00 2001 From: mharis001 Date: Sat, 4 Jan 2020 15:43:51 -0500 Subject: [PATCH 028/194] Medical - Combine advancedBandages and woundReopening settings --- .../functions/fnc_updateInjuryList.sqf | 63 ++++++++----------- .../functions/fnc_bandageLocal.sqf | 4 +- .../functions/fnc_canBandage.sqf | 2 +- .../functions/fnc_getBandageTime.sqf | 7 ++- addons/medical_treatment/initSettings.sqf | 19 ++---- addons/medical_treatment/stringtable.xml | 61 +++++++----------- 6 files changed, 59 insertions(+), 97 deletions(-) diff --git a/addons/medical_gui/functions/fnc_updateInjuryList.sqf b/addons/medical_gui/functions/fnc_updateInjuryList.sqf index de5b22df3e..ef18624254 100644 --- a/addons/medical_gui/functions/fnc_updateInjuryList.sqf +++ b/addons/medical_gui/functions/fnc_updateInjuryList.sqf @@ -104,45 +104,34 @@ if (_totalIvVolume >= 1) then { // Add entries for open, bandaged, and stitched wounds private _woundEntries = []; -private _fnc_getWoundDescription = { - private _classIndex = _woundClassID / 10; - private _category = _woundClassID % 10; - private _className = EGVAR(medical_damage,woundsData) select _classIndex select 6; - private _suffix = ["Minor", "Medium", "Large"] select _category; - private _woundName = localize format [ELSTRING(medical_damage,%1_%2), _className, _suffix]; - if (_amountOf >= 1) then { - format ["%1x %2", ceil _amountOf, _woundName]; - } else { - format [localize LSTRING(PartialX), _woundName]; - }; +private _fnc_processWounds = { + params ["_wounds", "_format", "_color"]; + + { + _x params ["_woundClassID", "_bodyPartN", "_amountOf"]; + + if (_selectionN == _bodyPartN && {_amountOf > 0}) then { + private _classIndex = _woundClassID / 10; + private _category = _woundClassID % 10; + + private _className = EGVAR(medical_damage,woundsData) select _classIndex select 6; + private _suffix = ["Minor", "Medium", "Large"] select _category; + private _woundName = localize format [ELSTRING(medical_damage,%1_%2), _className, _suffix]; + + private _woundDescription = if (_amountOf >= 1) then { + format ["%1x %2", ceil _amountOf, _woundName] + } else { + format [localize LSTRING(PartialX), _woundName] + }; + + _woundEntries pushBack [format [_format, _woundDescription], _color]; + }; + } forEach _wounds; }; -{ - _x params ["_woundClassID", "_bodyPartN", "_amountOf"]; - if (_selectionN == _bodyPartN) then { - if (_amountOf > 0) then { - _woundEntries pushBack [call _fnc_getWoundDescription, [1, 1, 1, 1]]; - } else { - if !(EGVAR(medical_treatment,advancedBandages) && {EGVAR(medical_treatment,woundReopening)}) then { - _woundEntries pushBack [format ["[B] %1", call _fnc_getWoundDescription], [0.7, 0.7, 0.7, 1]]; - }; - }; - }; -} forEach GET_OPEN_WOUNDS(_target); - -{ - _x params ["_woundClassID", "_bodyPartN", "_amountOf"]; - if (_selectionN == _bodyPartN && {_amountOf > 0}) then { - _woundEntries pushBack [format ["[B] %1", call _fnc_getWoundDescription], [0.88, 0.7, 0.65, 1]]; - }; -} forEach GET_BANDAGED_WOUNDS(_target); - -{ - _x params ["_woundClassID", "_bodyPartN", "_amountOf"]; - if (_selectionN == _bodyPartN && {_amountOf > 0}) then { - _woundEntries pushBack [format ["[S] %1", call _fnc_getWoundDescription], [0.7, 0.7, 0.7, 1]]; - }; -} forEach GET_STITCHED_WOUNDS(_target); +[GET_OPEN_WOUNDS(_target), "%1", [1, 1, 1, 1]] call _fnc_processWounds; +[GET_BANDAGED_WOUNDS(_target), "[B] %1", [0.88, 0.7, 0.65, 1]] call _fnc_processWounds; +[GET_STITCHED_WOUNDS(_target), "[S] %1", [0.7, 0.7, 0.7, 1]] call _fnc_processWounds; // Handle no wound entries if (_woundEntries isEqualTo []) then { diff --git a/addons/medical_treatment/functions/fnc_bandageLocal.sqf b/addons/medical_treatment/functions/fnc_bandageLocal.sqf index 30de3e1995..61f1d695b5 100644 --- a/addons/medical_treatment/functions/fnc_bandageLocal.sqf +++ b/addons/medical_treatment/functions/fnc_bandageLocal.sqf @@ -46,12 +46,12 @@ _patient setVariable [VAR_OPEN_WOUNDS, _openWounds, true]; [_patient] call EFUNC(medical_status,updateWoundBloodLoss); // Handle the reopening of bandaged wounds -if (_impact > 0 && {GVAR(advancedBandages) && {GVAR(woundReopening)}}) then { +if (_impact > 0 && {GVAR(advancedBandages) == 2}) then { [_patient, _impact, _partIndex, _woundIndex, _wound, _bandage] call FUNC(handleBandageOpening); }; // Check if we fixed limping from this treatment -if ((EGVAR(medical,limping) == 1) && {_partIndex > 3} && {_amountOf <= 0} && {_patient getVariable [QEGVAR(medical,isLimping), false]}) then { +if (EGVAR(medical,limping) == 1 && {_partIndex > 3} && {_amountOf <= 0} && {_patient getVariable [QEGVAR(medical,isLimping), false]}) then { [_patient] call EFUNC(medical_engine,updateDamageEffects); }; diff --git a/addons/medical_treatment/functions/fnc_canBandage.sqf b/addons/medical_treatment/functions/fnc_canBandage.sqf index f60836f38c..0908e469b2 100644 --- a/addons/medical_treatment/functions/fnc_canBandage.sqf +++ b/addons/medical_treatment/functions/fnc_canBandage.sqf @@ -22,7 +22,7 @@ params ["_medic", "_patient", "_bodyPart", "_bandage"]; // Bandage type and bandage setting XNOR to show only active actions -if ((_bandage == "BasicBandage") isEqualTo GVAR(advancedBandages)) exitWith {false}; +if ((_bandage == "BasicBandage") isEqualTo (GVAR(advancedBandages) != 0)) exitWith {false}; private _index = ALL_BODY_PARTS find toLower _bodyPart; private _canBandage = false; diff --git a/addons/medical_treatment/functions/fnc_getBandageTime.sqf b/addons/medical_treatment/functions/fnc_getBandageTime.sqf index d66a8515ae..8a6248e3b5 100644 --- a/addons/medical_treatment/functions/fnc_getBandageTime.sqf +++ b/addons/medical_treatment/functions/fnc_getBandageTime.sqf @@ -28,7 +28,7 @@ _targetWound params ["_wound", "_woundIndex", "_effectiveness"]; TRACE_3("findMostEffectiveWound",_wound,_woundIndex,_effectiveness); // Everything is patched up on this body part already -if (_wound isEqualTo EMPTY_WOUND) exitWith { 0 }; +if (_wound isEqualTo EMPTY_WOUND) exitWith {0}; _wound params ["_classID", "", "_amountOf", "_bloodloss", "_damage"]; private _category = (_classID % 10); @@ -37,8 +37,9 @@ private _category = (_classID % 10); private _bandageTime = [BANDAGE_TIME_S, BANDAGE_TIME_M, BANDAGE_TIME_L] select _category; // Scale bandage time based on amount left and effectiveness (less time if only a little wound left) -if (GVAR(advancedBandages)) then { // basicBandage will have a very high effectiveness and can be ignored - _bandageTime = _bandageTime * (linearConversion [0, _effectiveness, _amountOf, 0.666, 1, true]); +// Basic bandage treatment will have a very high effectiveness and can be ignored +if (GVAR(advancedBandages) != 0) then { + _bandageTime = _bandageTime * linearConversion [0, _effectiveness, _amountOf, 0.666, 1, true]; }; // Medics are more practised at applying bandages diff --git a/addons/medical_treatment/initSettings.sqf b/addons/medical_treatment/initSettings.sqf index a4f8191563..f847c6d0d9 100644 --- a/addons/medical_treatment/initSettings.sqf +++ b/addons/medical_treatment/initSettings.sqf @@ -7,15 +7,6 @@ true ] call CBA_settings_fnc_init; -[ - QGVAR(advancedBandages), - "CHECKBOX", - [LSTRING(AdvancedBandages_DisplayName), LSTRING(AdvancedBandages_Description)], - [ELSTRING(medical,Category), LSTRING(SubCategory_Treatment)], - true, - true -] call CBA_settings_fnc_init; - [ QGVAR(advancedMedication), "CHECKBOX", @@ -25,14 +16,12 @@ true ] call CBA_settings_fnc_init; -// todo: verify that this setting does not require a restart -// todo: this setting requires advanced bandages to be enabled, they should be independent [ - QGVAR(woundReopening), - "CHECKBOX", - [LSTRING(WoundReopening_DisplayName), LSTRING(WoundReopening_Description)], + QGVAR(advancedBandages), + "LIST", + [LSTRING(AdvancedBandages_DisplayName), LSTRING(AdvancedBandages_Description)], [ELSTRING(medical,Category), LSTRING(SubCategory_Treatment)], - false, + [[0, 1, 2], [ELSTRING(common,Disabled), ELSTRING(common,Enabled), LSTRING(AdvancedBandages_EnabledCanReopen)], 1], true ] call CBA_settings_fnc_init; diff --git a/addons/medical_treatment/stringtable.xml b/addons/medical_treatment/stringtable.xml index e9df8c966b..072fc663f1 100644 --- a/addons/medical_treatment/stringtable.xml +++ b/addons/medical_treatment/stringtable.xml @@ -43,27 +43,6 @@ Abilita le azioni di controllo del polso, controllo della pressione sanguigna e controllo della risposta al trattamento invece dell'azione generica Diagnose.\ Se disabilitata, l'azione di RCP sarà mostrata solo quando l'esecuzione della RCP è appropriata.\Le azioni abilitate da questa impostazione sono necessarie per determinare se una persona è in stato di incoscienza o in arresto cardiaco. Povoluje kontrolu srdečního tepu, krevního tlaku a reakce pacienta namísto univerzální diagnózy.\nKdyž je tato možnost vypnuta, CPR akce bude dostupná pouze pokud je vhodné ji provést.\nAkce které tato možnost zapíná jsou nutné k určení zda je pacient v bezvědomí nebo má srdeční zástavu. - - Advanced Bandages - Erweiterte Bandagen - アドバンスド包帯 - Расширенная Перевязка - Pansements avancés - Ataduras Avançadas - 進階包紮 - Bendaggi avanzati - Pokročilé obvazy - - - Enables treatment actions for different bandage types instead of the generic Bandage action. - 有効化すると通常の包帯動作に代わり、様々な種類がある包帯で治療ができます。 - Active différents types de bandages, à choisir judicieusement en fonction des plaies. - Включает действия для разных типов повязок, вместо общего действия «Перевязка». - Ativa o uso de tipos diferentes de ataduras ao invés de apenas a atadura básica. - 啟用不同繃帶的可用行為而非一般包紮動作。 - Permette azioni di trattamento per diversi tipi di bendaggio al posto del bendaggio generico. - Povoluje specifické obvazy s různými vlastnostmi namísto jednoho univerzálního obvazu. - Advanced Medication Erweiterte Medikamente @@ -83,25 +62,29 @@ 是否擴展藥物管控使其更深度化。並且,啟用腺苷以及阿托品的使用次數 Povoluje hlubší a rozšířené zacházení s léčivy. Také aktivuje Adenosin a Atropin. - - Wound Reopening - 創傷再開放 - Réouverture des plaies - Повторное открытие ран - Reabrir Feridas - 傷口再度裂開 - Riapertura della ferita - Znovuotevření ran + + Advanced Bandages + Erweiterte Bandagen + アドバンスド包帯 + Расширенная Перевязка + Pansements avancés + Ataduras Avançadas + 進階包紮 + Bendaggi avanzati + Pokročilé obvazy - - Enables the reopening of bandaged wounds. Requires Advanced Bandages to be enabled. - 有効化すると治療をした創傷を再開放します。アドバンスド包帯を有効化している必要があります。 - Permet la réouverture des plaies pansées.\nNécessite que l'option "pansements avancés" soit activée. - Разрешает повторное открытие перевязанных ран. Требуются опция «Расширенная Перевязка». - Permite que ferimentos atados possam reabrir. Requer Ataduras Avançadas para funcionar. - 啟用包紮過的傷口是否會再度裂開。需要啟用「進階包紮」之功能。 - Povoluje znovuotevírání obvázaných zranění. Vyžaduje zapnuté Pokročilé obvazy. - Permette la riapertura delle ferite fasciate. Richiede l'abilitazione di Bende Avanzate. + + Enables treatment actions for different bandage types instead of the generic Bandage action.\nAdditionally, the reopening of bandaged wounds can also be enabled. + 有効化すると通常の包帯動作に代わり、様々な種類がある包帯で治療ができます。 + Active différents types de bandages, à choisir judicieusement en fonction des plaies. + Включает действия для разных типов повязок, вместо общего действия «Перевязка». + Ativa o uso de tipos diferentes de ataduras ao invés de apenas a atadura básica. + 啟用不同繃帶的可用行為而非一般包紮動作。 + Permette azioni di trattamento per diversi tipi di bendaggio al posto del bendaggio generico. + Povoluje specifické obvazy s různými vlastnostmi namísto jednoho univerzálního obvazu. + + + Enabled & Can Reopen Clear Trauma After Bandage From 770860fe1a270778c0faeeba95595b66599b4b84 Mon Sep 17 00:00:00 2001 From: mharis001 <34453221+mharis001@users.noreply.github.com> Date: Sun, 5 Jan 2020 03:29:57 -0500 Subject: [PATCH 029/194] Improve German translation Co-Authored-By: Jo David --- addons/medical_treatment/stringtable.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/medical_treatment/stringtable.xml b/addons/medical_treatment/stringtable.xml index 072fc663f1..c9f16be555 100644 --- a/addons/medical_treatment/stringtable.xml +++ b/addons/medical_treatment/stringtable.xml @@ -45,7 +45,7 @@ Advanced Medication - Erweiterte Medikamente + Erweiterte Medikation アドバンスド医薬品 Расширенные Лекарства Médication avancée From ddbc0221f69290bbcaaefa75e9b578ccb3178e43 Mon Sep 17 00:00:00 2001 From: Taha <37743192+Fatal53@users.noreply.github.com> Date: Sun, 5 Jan 2020 20:37:48 +0300 Subject: [PATCH 030/194] Turkish Traslations (#7390) --- addons/advanced_ballistics/stringtable.xml | 4 ++ addons/advanced_throwing/stringtable.xml | 1 + addons/ai/stringtable.xml | 2 + addons/aircraft/stringtable.xml | 2 + addons/arsenal/stringtable.xml | 8 ++++ addons/atragmx/stringtable.xml | 3 ++ addons/attach/stringtable.xml | 6 +++ addons/captives/stringtable.xml | 11 +++++ addons/cargo/stringtable.xml | 9 ++++ addons/common/stringtable.xml | 14 ++++++ addons/dagr/stringtable.xml | 3 ++ addons/disarming/stringtable.xml | 1 + addons/dogtags/stringtable.xml | 4 ++ addons/dragging/stringtable.xml | 5 ++ addons/dragon/stringtable.xml | 3 ++ addons/explosives/stringtable.xml | 25 ++++++++++ addons/fastroping/stringtable.xml | 13 ++++++ addons/flashlights/stringtable.xml | 9 ++++ addons/flashsuppressors/stringtable.xml | 7 +++ addons/gestures/stringtable.xml | 12 +++++ addons/gforces/stringtable.xml | 2 + addons/goggles/stringtable.xml | 7 +++ addons/grenades/stringtable.xml | 3 ++ addons/gunbag/stringtable.xml | 6 +++ addons/hearing/stringtable.xml | 7 +++ addons/hellfire/stringtable.xml | 1 + addons/interact_menu/stringtable.xml | 7 +++ addons/interaction/stringtable.xml | 52 +++++++++++++++++++++ addons/inventory/stringtable.xml | 7 +++ addons/javelin/stringtable.xml | 1 + addons/kestrel4500/stringtable.xml | 6 +++ addons/laserpointer/stringtable.xml | 3 ++ addons/logistics_wirecutter/stringtable.xml | 4 ++ addons/map/stringtable.xml | 1 + addons/map_gestures/stringtable.xml | 7 +++ addons/maptools/stringtable.xml | 11 +++++ addons/markers/stringtable.xml | 7 +++ addons/maverick/stringtable.xml | 9 ++++ addons/minedetector/stringtable.xml | 7 +++ addons/movement/stringtable.xml | 3 ++ addons/mx2a/stringtable.xml | 2 + addons/nametags/stringtable.xml | 1 + addons/nightvision/stringtable.xml | 1 + addons/noradio/stringtable.xml | 1 + addons/optics/stringtable.xml | 10 ++++ addons/optionsmenu/stringtable.xml | 6 +++ addons/parachute/stringtable.xml | 6 +++ addons/pylons/stringtable.xml | 1 + addons/quickmount/stringtable.xml | 5 ++ addons/rangecard/stringtable.xml | 6 +++ addons/refuel/stringtable.xml | 16 +++++++ addons/reload/stringtable.xml | 2 + addons/reloadlaunchers/stringtable.xml | 4 ++ addons/repair/stringtable.xml | 43 +++++++++++++++++ addons/respawn/stringtable.xml | 7 +++ addons/safemode/stringtable.xml | 3 ++ addons/sandbag/stringtable.xml | 8 ++++ addons/scopes/stringtable.xml | 1 + addons/slideshow/stringtable.xml | 5 ++ addons/spectator/stringtable.xml | 16 +++++++ addons/spottingscope/stringtable.xml | 3 ++ addons/tacticalladder/stringtable.xml | 6 +++ addons/tagging/stringtable.xml | 11 +++++ addons/trenches/stringtable.xml | 14 ++++++ addons/tripod/stringtable.xml | 5 ++ addons/ui/stringtable.xml | 2 + addons/vector/stringtable.xml | 5 ++ addons/vehiclelock/stringtable.xml | 5 ++ addons/vehicles/stringtable.xml | 4 ++ addons/viewdistance/stringtable.xml | 9 ++++ addons/weaponselect/stringtable.xml | 6 +++ addons/weather/stringtable.xml | 2 + addons/winddeflection/stringtable.xml | 4 ++ addons/yardage450/stringtable.xml | 1 + addons/zeus/stringtable.xml | 49 +++++++++++++++++++ 75 files changed, 563 insertions(+) diff --git a/addons/advanced_ballistics/stringtable.xml b/addons/advanced_ballistics/stringtable.xml index 47f7549191..be10999e87 100644 --- a/addons/advanced_ballistics/stringtable.xml +++ b/addons/advanced_ballistics/stringtable.xml @@ -16,6 +16,7 @@ 바람의 정보를 표시 顯示風況 显示风况 + Rüzgar bilgilerini göster Show Protractor @@ -48,6 +49,7 @@ 고급 탄도학 先進彈道系統 先进弹道系统 + Gelişmiş Balistik Advanced Ballistics @@ -64,6 +66,7 @@ 고급 탄도학 先進彈道系統 先进弹道系统 + Gelişmiş Balistik Enables advanced ballistics @@ -80,6 +83,7 @@ 고급 탄도학을 적용합니다 啟用先進彈道系統 启用先进弹道系统 + Gelişmiş balistiği etkinleştir Enable Muzzle Velocity Variation diff --git a/addons/advanced_throwing/stringtable.xml b/addons/advanced_throwing/stringtable.xml index cd86b9db1e..56944cebeb 100644 --- a/addons/advanced_throwing/stringtable.xml +++ b/addons/advanced_throwing/stringtable.xml @@ -14,6 +14,7 @@ 进阶投掷 Arremesso Avançado Pokročilé házení + Gelişmiş Fırlatma Allows changing advanced throwing behaviour. diff --git a/addons/ai/stringtable.xml b/addons/ai/stringtable.xml index f680c2a10f..e69238ca43 100644 --- a/addons/ai/stringtable.xml +++ b/addons/ai/stringtable.xml @@ -15,6 +15,7 @@ Posição inválida fornecida. Posición inválida proporcionada Pozice není validní. + Geçersiz Konum No units provided. @@ -60,6 +61,7 @@ Nenhuma construção encontrada. No se ha encontrado ningún edificio. Nenalezena žádná budova. + Bir yapı bulunamadı diff --git a/addons/aircraft/stringtable.xml b/addons/aircraft/stringtable.xml index 731a4223e6..f084bb2716 100644 --- a/addons/aircraft/stringtable.xml +++ b/addons/aircraft/stringtable.xml @@ -33,6 +33,7 @@ 화물칸 개방 開啟貨艙門 开启货舱门 + Kargo kapısını aç Close Cargo Door @@ -49,6 +50,7 @@ 화물칸 폐쇄 關閉貨艙門 关闭货舱门 + Kargo kapısını kapat 30mm High-Explosive Incendiary diff --git a/addons/arsenal/stringtable.xml b/addons/arsenal/stringtable.xml index a7ed34578e..00fed0e0b6 100644 --- a/addons/arsenal/stringtable.xml +++ b/addons/arsenal/stringtable.xml @@ -14,6 +14,7 @@ Спрятать Ocultar Skrýt + Gizle Hide interface @@ -28,6 +29,7 @@ Скрыть интерфейс Oculta a Interface Skrýt rozhraní + Arayüzü gizle Loadouts @@ -42,6 +44,7 @@ Комплекты Loadouts Sady vybavení + Dışa aktar Export @@ -84,6 +87,7 @@ Закрыть Fechar Zavřít + Kapat No virtual item available @@ -112,6 +116,7 @@ Сохранить Salvar Uložit + Kaydet Save the current loadout @@ -151,6 +156,7 @@ Переименовать Renomear Přejmenovat + Yeniden adlandır Rename the selected loadout @@ -179,6 +185,7 @@ Загрузить Carregar Nahrát + Yükle Load the selected loadout @@ -207,6 +214,7 @@ Удалить Apagar Smazat + Sil Delete the selected loadout diff --git a/addons/atragmx/stringtable.xml b/addons/atragmx/stringtable.xml index 4c11ea8add..fbb46a8ba4 100644 --- a/addons/atragmx/stringtable.xml +++ b/addons/atragmx/stringtable.xml @@ -16,6 +16,7 @@ ATragMX ATragMX ATragMX + ATragMX Open ATragMX @@ -32,6 +33,7 @@ ATragMX 열기 開啟ATragMX 开启ATragMX + ATragMX'i aç Rugged PDA with ATragMX @@ -64,6 +66,7 @@ ATragMX 열기 開啟ATragMX 开启ATragMX + ATragMX'i aç diff --git a/addons/attach/stringtable.xml b/addons/attach/stringtable.xml index 8e0768e1fe..33c7b47221 100644 --- a/addons/attach/stringtable.xml +++ b/addons/attach/stringtable.xml @@ -16,6 +16,7 @@ 물건 부착 附掛裝備>> 附挂装备>> + Eşyayı bağla Attach @@ -32,6 +33,7 @@ 부착 附掛 附挂 + Bağla Detach item @@ -48,6 +50,7 @@ 분리 取下裝備 取下装备 + Eşyayı sök IR Strobe Attached @@ -160,6 +163,7 @@ 넣을 공간이 없음 無可用空間 无可用空间 + Envanter de alan yok IR Strobe @@ -208,6 +212,7 @@ 두기 放置 放置 + Yerleştir Cancel @@ -240,6 +245,7 @@ 부착 실패 附掛失敗 附挂失败 + Bağlama başarısız %1<br/>Attached diff --git a/addons/captives/stringtable.xml b/addons/captives/stringtable.xml index 25adb1e83a..a5371f2dce 100644 --- a/addons/captives/stringtable.xml +++ b/addons/captives/stringtable.xml @@ -14,6 +14,7 @@ Prisioneiros Prisonniers Zajatci + Tutsaklar Take Prisoner @@ -30,6 +31,7 @@ 포박하기 逮捕俘虜 逮捕俘虏 + Kelepçele Free Prisoner @@ -46,6 +48,7 @@ 풀어주기 釋放俘虜 释放俘虏 + Serbest bırak Escort Prisoner @@ -62,6 +65,7 @@ 포로 호송하기 護送俘虜 护送俘虏 + Tutsağı Taşı Release Prisoner @@ -78,6 +82,7 @@ 포로 풀어주기 停止護送俘虜 停止护送俘虏 + Taşımayı bırak You need to take him as prisoner first! @@ -94,6 +99,7 @@ 먼저 포로로 만들어야합니다! 你必須先逮捕他! 你必须先逮捕他! + Önce onu tutuklamalısın! Load Captive @@ -110,6 +116,7 @@ 포로 태우기 將俘虜放入載具 将俘虏放入载具 + Tutukluyu bindir/yükle Unload Captive @@ -126,6 +133,7 @@ 포로 내리기 將俘虜帶出載具 将俘虏带出载具 + Tutukluyu indir/boşalt Cable Tie @@ -142,6 +150,7 @@ 케이블 타이 束線帶 束线带 + Kelepçe Cable ties that allow you to restrain prisoners. @@ -174,6 +183,7 @@ 투항 投降 投降 + Teslim ol Stop Surrendering @@ -190,6 +200,7 @@ 투항하는것을 멈춤 停止投降 停止投降 + Teslim olmayı durdur Make Unit Surrender diff --git a/addons/cargo/stringtable.xml b/addons/cargo/stringtable.xml index be8f02a6ca..0e87caf185 100644 --- a/addons/cargo/stringtable.xml +++ b/addons/cargo/stringtable.xml @@ -15,6 +15,7 @@ 싣기 裝載 装载 + Yükle Unload @@ -30,6 +31,7 @@ 내리기 卸載 卸载 + Boşalt Cargo @@ -45,6 +47,7 @@ 화물 貨物 货物 + Kargo Cargo Menu @@ -60,6 +63,7 @@ 화물 메뉴 貨物選單 货物选单 + Kargo Menüsü Cargo space left: %1 @@ -120,6 +124,7 @@ 화물 설정 貨物設定 货物设定 + Kargo Ayarları Configure the cargo module settings @@ -182,6 +187,7 @@ 화물 싣기 裝載貨物中 装载货物中 + Kargo Yükleniyor Unloading Cargo @@ -197,6 +203,7 @@ 화물 내리기 卸載貨物中 卸载货物中 + Kargo Boşaltılıyor %1<br/>could not be loaded @@ -242,6 +249,7 @@ Espace de stockage Nákladový prostor Espacio de carga + Kargo Alanı The cargo space available in this vehicle/container @@ -272,6 +280,7 @@ Encombrement fret Velikost nákladu Tamaño de carga + Kargo Boyutu The cargo space required to hold this object (-1 for unloadable) diff --git a/addons/common/stringtable.xml b/addons/common/stringtable.xml index de946b15bc..1407a74461 100644 --- a/addons/common/stringtable.xml +++ b/addons/common/stringtable.xml @@ -46,6 +46,7 @@ アドバンスド 고급 進階 + Gelişmiş Save @@ -62,6 +63,7 @@ 저장 儲存 储存 + Kaydet Cancel @@ -94,6 +96,7 @@ ACE 옵션 ACE設定選項 ACE设定选项 + ACE Ayarları @@ -111,6 +114,7 @@ + K NNE @@ -143,6 +147,7 @@ 북동 東北 东北 + KD ENE @@ -175,6 +180,7 @@ + D ESE @@ -207,6 +213,7 @@ 남동 東南 东南 + GD SSE @@ -239,6 +246,7 @@ + G SSW @@ -271,6 +279,7 @@ 남서 西南 西南 + GB WSW @@ -303,6 +312,7 @@ 西 西 + B WNW @@ -335,6 +345,7 @@ 북서 西北 西北 + KB NNW @@ -415,6 +426,7 @@ 알 수 없음 未知的 未知的 + Bilinmeyen Normal @@ -430,6 +442,7 @@ 通常 보통 普通 + Normal No Voice @@ -446,6 +459,7 @@ 무음 無語音 没声音 + Ses yok Check PBO Action diff --git a/addons/dagr/stringtable.xml b/addons/dagr/stringtable.xml index 032221aa40..aa22633a7c 100644 --- a/addons/dagr/stringtable.xml +++ b/addons/dagr/stringtable.xml @@ -15,6 +15,7 @@ DAGR 軍用GPS接收器 军用GPS接收器 + DAGR Configure DAGR @@ -30,6 +31,7 @@ DAGR 설정 設定軍用GPS接收器 设定军用GPS接收器 + DAGR'ı yapılandır Toggle DAGR @@ -45,6 +47,7 @@ DAGR 토글 切換軍用GPS接收器 切换军用GPS接收器 + DAGR'yi aç / kapat Defense Advanced GPS Receiver diff --git a/addons/disarming/stringtable.xml b/addons/disarming/stringtable.xml index 30f9fa4b85..9cc9dca680 100644 --- a/addons/disarming/stringtable.xml +++ b/addons/disarming/stringtable.xml @@ -16,6 +16,7 @@ 소지품 열기 開啟裝備 开启装备 + Envanteri Aç diff --git a/addons/dogtags/stringtable.xml b/addons/dogtags/stringtable.xml index 9096902141..6dca808936 100644 --- a/addons/dogtags/stringtable.xml +++ b/addons/dogtags/stringtable.xml @@ -15,6 +15,7 @@ 兵籍牌 Dog Tag Placa de identidad + Künye Check Dog Tag @@ -30,6 +31,7 @@ 检查兵籍牌 Verificar Dog Tag Verificar placa de identidad + Künyeyi Kontrol Et Check @@ -45,6 +47,7 @@ 检查 Verificar Verificar + Kontrol Et Take @@ -60,6 +63,7 @@ 拿取 Pegar Tomar + Al Dogtag taken from %1... diff --git a/addons/dragging/stringtable.xml b/addons/dragging/stringtable.xml index db62a63a66..3d04a24bde 100644 --- a/addons/dragging/stringtable.xml +++ b/addons/dragging/stringtable.xml @@ -16,6 +16,7 @@ 끌기 拖拉 拖拉 + Sürükle Release @@ -32,6 +33,7 @@ 놓기 放開 放开 + Bırak Drag/Release Object @@ -48,6 +50,7 @@ 물건 끌기/놓기 拖拉/放開物品 拖拉/放开物品 + Objeyi Sürükle/Bırak Item too heavy @@ -64,6 +67,7 @@ 물체가 너무 무겁습니다 此物品過重 此物品过重 + Eşya çok ağır Carry @@ -80,6 +84,7 @@ 업기 背起 背起 + Taşı Raise/Lower diff --git a/addons/dragon/stringtable.xml b/addons/dragon/stringtable.xml index 768b5c0173..8b36c43e4f 100644 --- a/addons/dragon/stringtable.xml +++ b/addons/dragon/stringtable.xml @@ -9,6 +9,7 @@ [CSW] M47龍式 [CSW] M47 Super-Dragon [CSW] M47 Super-Dragon + [CSW] M47 Super-Dragon M47 Super-Dragon @@ -18,6 +19,7 @@ M47 龍式 M47 Super-Dragon M47 Super-Dragon + M47 Super-Dragon Attach Sight @@ -45,6 +47,7 @@ SU-36/P 日間瞄具 SU-36/P Daysight SU-36/P denní puškohled + SU-36/P Daysight A light, cheap sight used for daytime operations. Contains the guidance computer for the whole system diff --git a/addons/explosives/stringtable.xml b/addons/explosives/stringtable.xml index 1c86548701..14bc5f6f95 100644 --- a/addons/explosives/stringtable.xml +++ b/addons/explosives/stringtable.xml @@ -16,6 +16,7 @@ 폭발물 炸药 炸藥 + Patlayıcılar Place @@ -32,6 +33,7 @@ 설치 放置 放置 + Yerleştir Detonate @@ -48,6 +50,7 @@ 폭파 引爆 引爆 + Patlat Detonate All @@ -63,6 +66,7 @@ 모두 폭파 引爆全部 引爆全部 + Hepsini Patlat Explosive code: %1 @@ -79,6 +83,7 @@ 폭파 코드: %1 炸药代码: %1 炸藥代號: %1 + Patlayıcı Kodu: %1 Place @@ -95,6 +100,7 @@ 설치 放置 放置 + Yerleştir Attach @@ -111,6 +117,7 @@ 부착 连接 連接 + Bağla Blocked @@ -126,6 +133,7 @@ 막힘 断开 斷開 + Bloke Edilmiş Cancel @@ -158,6 +166,7 @@ 회전 旋转 旋轉 + Döndür Turn On Thor III @@ -206,6 +215,7 @@ 휴대전화 手机 手機 + Cep Telefonu Used to remotely trigger explosives @@ -238,6 +248,7 @@ M57 격발기 M57 引爆装置 M57 引爆裝置 + M57 Ateşleme Cihazı Used to remotely trigger explosives @@ -270,6 +281,7 @@ M152 격발기 M152 引爆装置 M152 引爆裝置 + M152 Ateşleme Cihazı M152 RAMS @@ -350,6 +362,7 @@ 삭제 清除 清除 + Temiz Dial @@ -382,6 +395,7 @@ + Yukarı Down @@ -398,6 +412,7 @@ 아래 + Aşağı Cancel @@ -494,6 +509,7 @@ 타이머 计时器 計時器 + Zamanlayıcı Time: %1m %2s @@ -510,6 +526,7 @@ 시간: %1분 %2초 时间: %1分%2秒 時間: %1分%2秒 + Süre: %1m %2s Set Time @@ -526,6 +543,7 @@ 시간 설정 设定时间 設定時間 + Süreyi Ayarla Select a Trigger @@ -542,6 +560,7 @@ 작동방식 선택 选择一个触发器 選擇一個觸發器 + Tetikleyici seç Select @@ -558,6 +577,7 @@ 선택 选择 選擇 + Seç Pressure Plate @@ -574,6 +594,7 @@ 압력식 压力盘 壓力盤 + Basınç Plakası Tripwire @@ -590,6 +611,7 @@ 인계철선 绊线 絆線 + Telli tuzak IR Sensor @@ -606,6 +628,7 @@ 적외선 센서 红外线感应器 紅外線感應器 + IR Sensörü No triggers available for %1 @@ -718,6 +741,7 @@ 줍기 捡起 撿起 + Al Explosive System @@ -734,6 +758,7 @@ 폭발물 시스템 炸药系统 炸藥系統 + Patlayıcı Sistemi Require specialists? diff --git a/addons/fastroping/stringtable.xml b/addons/fastroping/stringtable.xml index b221d4a9ac..eed04740f9 100644 --- a/addons/fastroping/stringtable.xml +++ b/addons/fastroping/stringtable.xml @@ -75,6 +75,7 @@ 줄 배치 部属绳索 部屬繩索 + Halatları sal Fast rope @@ -90,6 +91,7 @@ 강하하기 快速绳降 快速繩降 + Halatla in Cut ropes @@ -105,6 +107,7 @@ 줄 자르기 剪掉绳索 剪掉繩索 + Halatı Kes Equip helicopter with FRIES @@ -161,6 +164,7 @@ 部屬12公尺長之繩索 Dispiegamento corde 12m Připravit 12m lana + 12m halat sal Deploy 15m ropes @@ -173,6 +177,7 @@ 部屬15公尺長之繩索 Dispiegamento corde 15m Připravit 15m lana + 15m halat sal Deploy 18m ropes @@ -185,6 +190,7 @@ 部屬18公尺長之繩索 Dispiegamento corde 18m Připravit 18m lana + 18m halat sal Deploy 27m ropes @@ -197,6 +203,7 @@ 部屬27公尺長之繩索 Dispiegamento corde 27m Připravit 27m lana + 27m halat sal Deploy 36m ropes @@ -209,6 +216,7 @@ 部屬36公尺長之繩索 Dispiegamento corde 36m Připravit 36m lana + 36m halat sal [ACE] Ropes Supply crate @@ -245,6 +253,7 @@ 繩索(12.2公尺長) Corda da 12.2 metri Lano 12.2 metrů + 12.2 metre halat Rope 15.2 meters @@ -257,6 +266,7 @@ 繩索(15.2公尺長) Corda da 15.2 metri Lano 15.2 metrů + 15.2 metre halat Rope 18.3 meters @@ -269,6 +279,7 @@ 繩索(18.3公尺長) Corda da 18.3 metri Lano 18.3 metrů + 18.3 metre halat Rope 27.4 meters @@ -281,6 +292,7 @@ 繩索(27.4公尺長) Corda da 27.4 metri Lano 27.4 metrů + 27.4 metre halat Rope 36.6 meters @@ -293,6 +305,7 @@ 繩索(36.6公尺長) Corda da 36.6 metri Lano 36.6 metrů + 36.6 metre halat Fast-roping diff --git a/addons/flashlights/stringtable.xml b/addons/flashlights/stringtable.xml index 550a276948..3af3ec375e 100644 --- a/addons/flashlights/stringtable.xml +++ b/addons/flashlights/stringtable.xml @@ -15,6 +15,7 @@ Fulton MX-991 Fulton MX-991手电筒 Fulton MX-991 + Fulton MX-991 Flashlight with red filter. For use on map. @@ -30,6 +31,7 @@ 빨간색 필터가 달린 손전등입니다. 지도를 비출때 씁니다. 拥有红色滤光片的手电筒。用来照亮地图。 擁有紅色濾光片的手電筒。用來照亮地圖。 + Kırmızı filtreli el feneri. Harita üzerin de kullanım için. Maglite XL50 @@ -45,6 +47,7 @@ Maglite XL50 Maglite XL50手电筒 Maglite XL50 + Maglite XL50 White mini flashlight. For use on map. @@ -60,6 +63,7 @@ 하얀색 조그마한 손전등. 지도를 비출때 씁니다. 白色的迷你手电筒。用来照亮地图。 白色的迷你手電筒。用來照亮地圖。 + Beyaz küçük el feneri. Harita üzerin de kullanım için. KSF-1 @@ -75,6 +79,7 @@ KSF-1 KSF-1手电筒 KSF-1 + KSF-1 Flashlight with red filter. For use on map. @@ -90,6 +95,7 @@ 빨간색 필터가 달린 손전등입니다. 지도를 비출때 씁니다. 拥有红色滤光片的手电筒。用来照亮地图。 擁有紅色濾光片的手電筒。用來照亮地圖。 + Kırmızı filtreli el feneri. Harita üzerin de kullanım için. Map light color @@ -103,6 +109,7 @@ Цвет подсветки карты Cor da lanterna no mapa Barva svítilny na mapě + Harita ışık rengi Maglite ML300L @@ -113,6 +120,7 @@ Maglite ML300L Maglite ML300L マグライト ML300L + Maglite ML300L Powerful LED flashlight. @@ -123,6 +131,7 @@ Silná LED svítilna. Puissante lampe torche à LED. 協力な LED のフラッシュライト。 + Güçlü LED el feneri diff --git a/addons/flashsuppressors/stringtable.xml b/addons/flashsuppressors/stringtable.xml index cc5ef3ad4e..03b30aeeba 100644 --- a/addons/flashsuppressors/stringtable.xml +++ b/addons/flashsuppressors/stringtable.xml @@ -16,6 +16,7 @@ 소염기 (6.5 mm) 消光器 (6.5 mm) 消光器 (6.5 毫米) + Flash Suppressor (6.5 mm) Flash Suppressor (7.62 mm) @@ -32,6 +33,7 @@ 소염기 (7.62 mm) 消光器 (7.62 mm) 消光器 (7.62 毫米) + Flash Suppressor (7.62 mm) Flash Suppressor (5.56 mm) @@ -48,6 +50,7 @@ 소염기 (5.56 mm) 消光器 (5.56 mm) 消光器 (5.56 毫米) + Flash Suppressor (5.56 mm) Flash Suppressor (.45 ACP) @@ -64,6 +67,7 @@ 소염기 (.45 ACP) 消光器 (.45 ACP) 消光器 (.45 ACP) + Flash Suppressor (.45 ACP) Flash Suppressor (9 mm) @@ -80,6 +84,7 @@ 소염기 (9 mm) 消光器 (9 mm) 消光器 (9 毫米) + Flash Suppressor (9 mm) Flash Suppressor (.338) @@ -96,6 +101,7 @@ 소염기 (.338) 消光器 (.338) 消光器 (.338) + Flash Suppressor (.338) Flash Suppressor (9.3 mm) @@ -112,6 +118,7 @@ 소염기 (9.3 mm) 消光器 (9.3 mm) 消光器 (9.3 毫米) + Flash Suppressor (9.3 mm) diff --git a/addons/gestures/stringtable.xml b/addons/gestures/stringtable.xml index cb2b609e05..e7733270f8 100644 --- a/addons/gestures/stringtable.xml +++ b/addons/gestures/stringtable.xml @@ -16,6 +16,7 @@ ACE 수신호 ACE 手势 ACE 手勢 + ACE Hareketleri ACE Gestures @@ -32,6 +33,7 @@ ACE 수신호 ACE 手势 ACE 手勢 + ACE Hareketleri Gestures @@ -48,6 +50,7 @@ 수신호 手势 手勢 + Hareketler Advance @@ -80,6 +83,7 @@ 이동 出发 出發 + Git Follow @@ -96,6 +100,7 @@ 따라올것 跟进 跟進 + Takip Et Up @@ -128,6 +133,7 @@ 사격 중지 停火 停火 + Ateşi durdur Stop @@ -143,6 +149,7 @@ 멈춰 停止 停止 + Dur Freeze @@ -159,6 +166,7 @@ 정지 不准动 不准動 + Don Cover @@ -190,6 +198,7 @@ 집결 集合 集合 + Toplan Move forward @@ -220,6 +229,7 @@ 교전할것 交战 交戰 + Tut Point @@ -250,6 +260,7 @@ 기다려 停住 停住 + Dur Warning @@ -265,6 +276,7 @@ 주의 警告 警告 + Uyarı Show Gestures On Interaction Menu diff --git a/addons/gforces/stringtable.xml b/addons/gforces/stringtable.xml index 708f8806d9..c6a37eac6e 100644 --- a/addons/gforces/stringtable.xml +++ b/addons/gforces/stringtable.xml @@ -15,6 +15,7 @@ Effetti forza G G力影响 G力影響 + G-Kuvveti Efekti Only Aircraft @@ -30,6 +31,7 @@ Solo Aerei 只有战斗机 只有戰鬥機 + Sadece Uçaklar G-force reduction diff --git a/addons/goggles/stringtable.xml b/addons/goggles/stringtable.xml index 45cceb03f5..5f5d8b3153 100644 --- a/addons/goggles/stringtable.xml +++ b/addons/goggles/stringtable.xml @@ -15,6 +15,7 @@ Lunettes Brýle Gafas + Gözlük ACE Goggles @@ -30,6 +31,7 @@ ACE Lunettes ACE Brýle [ACE] Gafas + ACE Gözlük Show Goggle Effects in Third Person @@ -46,6 +48,7 @@ 3인칭시에도 고글 효과를 보이게 합니다 在第三人称视角显示护目镜效果 在第三人稱視角顯示護目鏡效果 + Gözlük efektlerini 3. şahıs görünümün de göster Wipe Goggles @@ -62,6 +65,7 @@ 고글 닦기 擦拭护目镜 擦拭護目鏡 + Gözlük Camlarını Sil Goggle Effects @@ -77,6 +81,7 @@ Efeitos de Óculos Efekty brýlí Efectos de gafas + Gözlük efektleri Tint @@ -92,6 +97,7 @@ Cor Zabarvení Tinte + Ton Tint + Effects @@ -107,6 +113,7 @@ Cor + Efeitos Zabarvení + Efekty Tinte + efectos + Ton + Efektler Show Wipe Goggles self interaction diff --git a/addons/grenades/stringtable.xml b/addons/grenades/stringtable.xml index 0f914ef71d..23f643cc2e 100644 --- a/addons/grenades/stringtable.xml +++ b/addons/grenades/stringtable.xml @@ -16,6 +16,7 @@ 투척 종류 전환 切换投掷模式 切換投擲模式 + Bomba fırlatma modunu değiştir Normal Throw @@ -32,6 +33,7 @@ 일반 던지기 普通投掷 普通投擲 + Normal Fırlatma High Throw @@ -48,6 +50,7 @@ 높이 던지기 高抛 高拋 + Yüksek Fırlatma Precise Throw diff --git a/addons/gunbag/stringtable.xml b/addons/gunbag/stringtable.xml index ec5c0f9e86..3647cf9f5a 100644 --- a/addons/gunbag/stringtable.xml +++ b/addons/gunbag/stringtable.xml @@ -14,6 +14,7 @@ 枪袋 槍袋 Bolsa de Arma + Silah Çantası Gunbag (Tan) @@ -28,6 +29,7 @@ 枪袋 (黄褐色) 槍袋 (黃褐色) Bolsa de Arma (Bege) + Silah Çantası (Tan) Put weapon into gunbag @@ -42,6 +44,7 @@ 将武器放置枪袋 將武器放置槍袋 Colocar arma na Bosla de Arma + Silahını silah çantasına koy Get weapon out of gunbag @@ -56,6 +59,7 @@ 将武器拿出枪袋 將武器拿出槍袋 Retirar arma da Bolsa de Arma + Silahını silah çantasından çıkart Status @@ -70,6 +74,7 @@ 状态 狀態 Status + Kontrol Et Gunbag Empty @@ -84,6 +89,7 @@ 枪袋为空 槍袋為空 Bolsa de Arma Vazia + Silah Çantası Boş diff --git a/addons/hearing/stringtable.xml b/addons/hearing/stringtable.xml index 019a0a3678..7fd9889f5b 100644 --- a/addons/hearing/stringtable.xml +++ b/addons/hearing/stringtable.xml @@ -16,6 +16,7 @@ 귀마개 耳塞 耳塞 + Kulak Tıkacı Protective Earplugs allow the wearer to be near loud weaponry without damage to his hearing. @@ -48,6 +49,7 @@ 귀마개 착용 塞入耳塞 塞入耳塞 + Kulak Tıkacı Tak Earplugs out @@ -64,6 +66,7 @@ 귀마개 뺌 取出耳塞 取出耳塞 + Kulak Tıkacını Çıkart Earplugs in @@ -80,6 +83,7 @@ 귀마개 착용 耳塞已塞入 耳塞已塞入 + Kulak Tıkacı Takıldı Earplugs out @@ -96,6 +100,7 @@ 귀마개 뺌 耳塞已取出 耳塞已取出 + Kulak Tıkacı Çıkartıldı You have no earplugs @@ -112,6 +117,7 @@ 귀마개가 없습니다 你没有耳塞 你沒有耳塞 + Kulak Tıkacın Yok No inventory space @@ -128,6 +134,7 @@ 넣을 공간이 없습니다 无可用空间 無可用空間 + Envanterin de alan yok Disable ear ringing diff --git a/addons/hellfire/stringtable.xml b/addons/hellfire/stringtable.xml index 4342f6eae4..a7c6c790eb 100644 --- a/addons/hellfire/stringtable.xml +++ b/addons/hellfire/stringtable.xml @@ -14,6 +14,7 @@ Definir modo de Hellfire Définir mode Hellfire Nastavit režim Hellfire + Hellfire modunu ayarla diff --git a/addons/interact_menu/stringtable.xml b/addons/interact_menu/stringtable.xml index 297512d80c..f4a50f32ed 100644 --- a/addons/interact_menu/stringtable.xml +++ b/addons/interact_menu/stringtable.xml @@ -64,6 +64,7 @@ 상호작용 키 互动键 互動鍵 + Etkileşim Tuşu Self Interaction Key @@ -80,6 +81,7 @@ 자기상호작용 키 自我互动键 自我互動鍵 + Kendi Etkileşim Tuşu Self Actions @@ -96,6 +98,7 @@ 자기 동작 自我动作 自我動作 + Kendi Etkileşimim Vehicle Actions @@ -112,6 +115,7 @@ 차량 동작 载具动作 載具動作 + Araç Etkileşimi Zeus Actions @@ -128,6 +132,7 @@ Zeus 동작 宙斯操作 宙斯操作 + Zeus Etkileşimi Interaction - Text Max @@ -352,6 +357,7 @@ 화면 흐리게 模糊画面 模糊畫面 + Bulanık Ekran Black @@ -368,6 +374,7 @@ 까맣게 黑色 黑色 + Siyah Show actions for buildings diff --git a/addons/interaction/stringtable.xml b/addons/interaction/stringtable.xml index 560aba17c5..a2f9c29e4c 100644 --- a/addons/interaction/stringtable.xml +++ b/addons/interaction/stringtable.xml @@ -15,6 +15,7 @@ Interaction Interakce Interacción + Etkileşim Interactions @@ -31,6 +32,7 @@ 상호작용 互动 互動 + Etkileşim Torso @@ -47,6 +49,7 @@ 몸통 身体 身體 + Gövde Head @@ -63,6 +66,7 @@ 머리 头部 頭部 + Kafa Left Arm @@ -79,6 +83,7 @@ 왼쪽 팔 左手 左手 + Sol Kol Right Arm @@ -95,6 +100,7 @@ 오른쪽 팔 右手 右手 + Sağ Kol Left Leg @@ -111,6 +117,7 @@ 왼쪽 다리 左脚 左腳 + Sol Bacak Right Leg @@ -127,6 +134,7 @@ 오른쪽 다리 右脚 右腳 + Sağ Bacak Weapon @@ -143,6 +151,7 @@ 무기 武器 武器 + Silah Interaction Menu @@ -159,6 +168,7 @@ 상호작용 메뉴 互动选单 互動選單 + Etkileim Menüsü Interaction Menu (Self) @@ -175,6 +185,7 @@ 상호작용 메뉴(자신) 互动选单 (自我) 互動選單 (自我) + Etkileşim Menüsü(Şahsi) Open / Close Door @@ -191,6 +202,7 @@ 문 열기 / 닫기 打开/关上 门 打開/關上 門 + Kapıyı Aç/Kapat Lock Door @@ -207,6 +219,7 @@ 문 잠그기 锁门 鎖門 + Kapıyı Kilitle Unlock Door @@ -223,6 +236,7 @@ 잠긴문 열기 解锁门 解鎖門 + Kapının Kilidini Aç Locked Door @@ -239,6 +253,7 @@ 잠긴 문 门已上锁 門已上鎖 + Kilitli Kapı Unlocked Door @@ -255,6 +270,7 @@ 열린 문 门未上锁 門未上鎖 + Kilidi Açık Kapı Join group @@ -271,6 +287,7 @@ 그룹 참여 加入小队 加入小隊 + Gruba katıl Leave Group @@ -287,6 +304,7 @@ 그룹 나가기 离开小队 離開小隊 + Gruptan ayrıl Become Leader @@ -303,6 +321,7 @@ 리더 되기 成为队长 成為隊長 + Lider ol DANCE! @@ -319,6 +338,7 @@ 춤추기! 跳舞 跳舞 + DANS! Stop Dancing @@ -351,6 +371,7 @@ <<뒤로 <<返回 <<返回 + << Geri Put weapon on back @@ -383,6 +404,7 @@ 어깨 치기 轻拍肩膀 輕拍肩膀 + Omuzuna Dokun You were tapped on the RIGHT shoulder @@ -447,6 +469,7 @@ 선택 选择 選擇 + Seç Go Away! @@ -463,6 +486,7 @@ 저리 가! 走开! 走開! + Git! Get Down! @@ -479,6 +503,7 @@ 엎드려! 趴下! 趴下! + Yat! Get Out @@ -510,6 +535,7 @@ 팀 설정 小队管理 小隊管理 + Takım Yönetimi Red @@ -526,6 +552,7 @@ 빨강 红色 紅色 + Kırmızı Green @@ -542,6 +569,7 @@ 초록 绿色 綠色 + Yeşil Blue @@ -558,6 +586,7 @@ 파랑 蓝色 藍色 + Mavi Yellow @@ -574,6 +603,7 @@ 노랑 黄色 黃色 + Sarı Assign Red @@ -590,6 +620,7 @@ 빨강에 등록 指派为红组 指派為紅組 + Kırmızıya Ata Assign Green @@ -606,6 +637,7 @@ 초록에 등록 指派为绿组 指派為綠組 + Yeşile Ata Assign Blue @@ -622,6 +654,7 @@ 파랑이 등록 指派为蓝组 指派為藍組 + Maviye Ata Assign Yellow @@ -638,6 +671,7 @@ 노랑에 등록 指派为黄组 指派為黃組 + Sarıya Ata Join Red @@ -654,6 +688,7 @@ 빨강에 참여 加入红组 加入紅組 + Kırmızıya Katıl Join Green @@ -670,6 +705,7 @@ 초록에 참여 加入绿组 加入綠組 + Yeşile Katıl Join Blue @@ -686,6 +722,7 @@ 파랑에 참여 加入蓝组 加入藍組 + Maviye Katıl Join Yellow @@ -702,6 +739,7 @@ 노랑에 참여 加入黄组 加入黃組 + Sarıya Katıl You joined Team %1 @@ -718,6 +756,7 @@ 당신은 %1팀에 참여했습니다 你已加入%1组 你已加入%1組 + Takıma katıldın %1 Leave Team @@ -734,6 +773,7 @@ 팀 나가기 离开小队 離開小隊 + Takımdan Ayrıl You left the Team @@ -750,6 +790,7 @@ 팀을 나갔습니다 你已离开小队 你已離開小隊 + Takımdan Ayrıldın Pardon @@ -766,6 +807,7 @@ 허용 原谅 原諒 + Pardon Scroll @@ -782,6 +824,7 @@ 스크롤 滚动 滾動 + Kaydırma Modifier Key @@ -814,6 +857,7 @@ 범위 내에 없습니다 不在范围内 不在範圍內 + Menzilde Değil Equipment @@ -830,6 +874,7 @@ 장비 装备 裝備 + Ekipmanlar Push @@ -859,6 +904,7 @@ Tourner Otočit Voltear + Döndür Interact @@ -875,6 +921,7 @@ 상호작용 互动 互動 + Etkileşim Passengers @@ -891,6 +938,7 @@ 승객 乘客 乘客 + Yolcular Open @@ -907,6 +955,7 @@ 열기 打开 打開 + Interaction System @@ -923,6 +972,7 @@ 상호작용 시스템 互动系统 互動系統 + Etkileşim Sistemi Enable Team Management @@ -1016,6 +1066,7 @@ 켜기 开启 開啟 + Turn off @@ -1031,6 +1082,7 @@ 끄기 关闭 關閉 + Kapat Pass magazine diff --git a/addons/inventory/stringtable.xml b/addons/inventory/stringtable.xml index 183e7b27b1..65ab39ae21 100644 --- a/addons/inventory/stringtable.xml +++ b/addons/inventory/stringtable.xml @@ -47,6 +47,7 @@ 가방 背包 背包 + Çantalar Headgear @@ -62,6 +63,7 @@ 헬멧 头盔 頭盔 + Kasklar Glasses @@ -77,6 +79,7 @@ 안경 眼镜 眼鏡 + Gözlükler Uniforms @@ -92,6 +95,7 @@ 복장 服装 服裝 + Üniformalar Vests @@ -107,6 +111,7 @@ 조끼 背心 背心 + Yelekler Grenades @@ -122,6 +127,7 @@ 수류탄 手榴弹 手榴彈 + Bombalar Medical @@ -137,6 +143,7 @@ 의료 医疗 醫療 + Sağlık diff --git a/addons/javelin/stringtable.xml b/addons/javelin/stringtable.xml index e9ad7af06e..e8e1a2a747 100644 --- a/addons/javelin/stringtable.xml +++ b/addons/javelin/stringtable.xml @@ -16,6 +16,7 @@ 표적 획득 (누르기) 锁定目标 (按住) 鎖定目標 (按住) + Hedefe Kilitlen(Basılı Tut) diff --git a/addons/kestrel4500/stringtable.xml b/addons/kestrel4500/stringtable.xml index f83c875d57..d84c505430 100644 --- a/addons/kestrel4500/stringtable.xml +++ b/addons/kestrel4500/stringtable.xml @@ -16,6 +16,7 @@ Kestrel 4500NV 猎隼4500测风仪 獵隼4500測風儀 + Kestrel 4500NV Kestrel 4500 Pocket Weather Tracker @@ -48,6 +49,7 @@ Kestrel 4500 열기 开启猎隼4500测风仪 開啟獵隼4500測風儀 + Aç Kestrel 4500 Show Kestrel 4500 @@ -64,6 +66,7 @@ Kestrel 4500 보이기 显示猎隼4500测风仪 顯示獵隼4500測風儀 + Göster Kestrel 4500 Hide Kestrel 4500 @@ -80,6 +83,7 @@ Kestrel 4500 숨기기 隐藏猎隼4500测风仪 隱藏獵隼4500測風儀 + Gizle Kestrel 4500 Open Kestrel 4500 @@ -96,6 +100,7 @@ Kestrel 4500 열기 开启猎隼4500测风仪 開啟獵隼4500測風儀 + Aç Kestrel 4500 Show Kestrel 4500 @@ -112,6 +117,7 @@ Kestrel 4500 숨기기 显示猎隼4500测风仪 顯示獵隼4500測風儀 + Göster Kestrel 4500 diff --git a/addons/laserpointer/stringtable.xml b/addons/laserpointer/stringtable.xml index 4645ad13b7..e884cb4ec2 100644 --- a/addons/laserpointer/stringtable.xml +++ b/addons/laserpointer/stringtable.xml @@ -96,6 +96,7 @@ 레이저 雷射 雷射 + Lazer IR Laser @@ -112,6 +113,7 @@ 적외선 레이저 红外线雷射 紅外線雷射 + IR Lazer Switch Laser / IR Laser @@ -128,6 +130,7 @@ 레이저 / 적외선 레이저 전환 切换雷射/红外线雷射 切換雷射/紅外線雷射 + Değiştir Lazer/IR Lazer diff --git a/addons/logistics_wirecutter/stringtable.xml b/addons/logistics_wirecutter/stringtable.xml index dd4ce0dd2e..4bc8930655 100644 --- a/addons/logistics_wirecutter/stringtable.xml +++ b/addons/logistics_wirecutter/stringtable.xml @@ -16,6 +16,7 @@ 절단기 剪铁丝网钳 剪鐵絲網鉗 + Tel Makası Wirecutter @@ -32,6 +33,7 @@ 절단기 剪铁丝网钳 剪鐵絲網鉗 + Tel Makası Cut Fence @@ -48,6 +50,7 @@ 철조망 자르기 剪断护栏 剪斷護欄 + Çiti/Teli Kes Cutting Fences / Wires... @@ -64,6 +67,7 @@ 철망/철조망 자르는중... 剪断护栏/刺网中... 剪斷護欄/刺網中... + Kesiliyor Çit/Tel Fence cut diff --git a/addons/map/stringtable.xml b/addons/map/stringtable.xml index cb271d7042..84a583548c 100644 --- a/addons/map/stringtable.xml +++ b/addons/map/stringtable.xml @@ -413,6 +413,7 @@ 끄기 关闭 關閉 + Kapali Increase Brightness diff --git a/addons/map_gestures/stringtable.xml b/addons/map_gestures/stringtable.xml index e28be1e8bf..b568cd2619 100644 --- a/addons/map_gestures/stringtable.xml +++ b/addons/map_gestures/stringtable.xml @@ -15,6 +15,7 @@ 지도 신호 地图标识器 地圖指示器 + Harita Hareketleri Enabled @@ -30,6 +31,7 @@ 켜기 启用 啟用 + Etkin Enables the Map Gestures. @@ -45,6 +47,7 @@ 지도 신호 활성화 启用地图标识器 啟用地圖指示器 + Harita hareketlerini etkinleştir. Map Gesture Max Range @@ -60,6 +63,7 @@ 지도 신호 최대 거리 地图标识器最大范围 地圖指示器最大範圍 + Harita Hareketi Max Uzaklık Max range between players to show the map gesture indicator [default: 7 meters] @@ -180,6 +184,7 @@ 기본 색상 预设颜色 預設顏色 + Varsayılan Renk Fallback Color value when there is no group setting. [Module: leave blank to not force on clients] @@ -240,6 +245,7 @@ 색상 颜色 顏色 + Renk Color value for group members of groups synced with this module. @@ -285,6 +291,7 @@ 지도 신호 地图标识器 地圖指示器 + Harita Hareketleri diff --git a/addons/maptools/stringtable.xml b/addons/maptools/stringtable.xml index 395a16c2a9..e614812a55 100644 --- a/addons/maptools/stringtable.xml +++ b/addons/maptools/stringtable.xml @@ -16,6 +16,7 @@ 독도용 도구 地图工具 地圖工具 + Harita Araçları The Map Tools allow you to measure distances and angles on the map. @@ -48,6 +49,7 @@ 독도용 도구 地图工具 地圖工具 + Harita Araçları Hide Map Tool @@ -64,6 +66,7 @@ 독도용 도구 숨기기 隐藏地图工具 隱藏地圖工具 + Harita Aracını gizle Show Normal Map Tool @@ -80,6 +83,7 @@ 보통 독도용 도구로 보기 显示地图工具 顯示地圖工具 + Normal Harita Aracını Göster Show Small Map Tool @@ -96,6 +100,7 @@ 작은 독도용 도구로 보기 显示小的地图工具 顯示小的地圖工具 + Küçük Harita Aracını Göster Align Map Tool to North @@ -112,6 +117,7 @@ 독도용 도구를 북쪽으로 정렬 地图工具对准北方 地圖工具對準北方 + Harita Aracını Kuzeye Hizala Align Map Tool to Compass @@ -128,6 +134,7 @@ 독도용 도구를 나침반에 정렬 地图工具对准指北针 地圖工具對準指北針 + Harita Aracını Pusulaya Hizala Show GPS on Map @@ -144,6 +151,7 @@ GPS를 지도상에 꺼내기 在地图上显示GPS 在地圖上顯示GPS + Harita da GPS Göster Hide GPS on Map @@ -160,6 +168,7 @@ GPS를 지도상에서 숨기기 在地图上隐藏GPS 在地圖上隱藏GPS + Harita da GPS'i Gizle Direction: %1° @@ -176,6 +185,7 @@ 방위: %1° 方位: %1° 方位: %1° + Yön: %1° Rotate Map Tools Key @@ -190,6 +200,7 @@ 選轉地圖工具的按鍵 Tecla para girar Ferramentas de Mapa Klávesa pro otáčení pomůcky k mapě + Harita Aracının Yönünü Değiştirme Tuşu Modifier key to allow rotating map tools diff --git a/addons/markers/stringtable.xml b/addons/markers/stringtable.xml index 0c754018a8..8dc3d77ae2 100644 --- a/addons/markers/stringtable.xml +++ b/addons/markers/stringtable.xml @@ -16,6 +16,7 @@ 방위: %1° 方位: %1° 方位: %1° + Yön: %1° Markers @@ -72,6 +73,7 @@ Ninguém Personne Nikdo + Hiçkimse All players @@ -86,6 +88,7 @@ Todos jogadores Tous les joueurs Všichni hráči + Bütün Oyuncular Admins @@ -100,6 +103,7 @@ Admins Admins Administrátoři + Adminler Group leaders @@ -114,6 +118,7 @@ Líderes de grupo Chefs de groupe Velitelé jednotek + Grup Liderleri Group leaders and Admins @@ -128,6 +133,7 @@ Líderes de grupo e Admins Chefs de groupe et Admins Velitelé jednotek a Administrátoři + Grup Liderleri Ve Adminler Creator @@ -140,6 +146,7 @@ Créateur Creatore Tvůrce + Yaratıcı diff --git a/addons/maverick/stringtable.xml b/addons/maverick/stringtable.xml index 14b521e238..45d50ef5a8 100644 --- a/addons/maverick/stringtable.xml +++ b/addons/maverick/stringtable.xml @@ -15,6 +15,7 @@ AGM-65 Maverick L, Míssil Anti Chão Guiado a Laser AGM-65L Maverick, Missile Air-Sol à Guidage Laser AGM-65 Maverick L, Laserem naváděná střela vzduch-země + AGM-65 Maverick L, Laser Guided Anti-Ground-Missile AGM-65 Maverick L [ACE] @@ -29,6 +30,7 @@ AGM-65 Maverick L [ACE] 1x AGM-65L Maverick [ACE] AGM-65 Maverick L [ACE] + AGM-65 Maverick L [ACE] 2x AGM-65 Maverick L [ACE] @@ -43,6 +45,7 @@ 2x AGM-65 Maverick L [ACE] 2x AGM-65L Maverick [ACE] 2x AGM-65 Maverick L [ACE] + 2x AGM-65 Maverick L [ACE] 3x AGM-65 Maverick L [ACE] @@ -57,6 +60,7 @@ 3x AGM-65 Maverick L [ACE] 3x AGM-65L Maverick [ACE] 3x AGM-65 Maverick L [ACE] + 3x AGM-65 Maverick L [ACE] Laser Guided @@ -71,6 +75,7 @@ Guiado a laser Guidage Laser Laserem naváděná + Lazer Güdümlü Kh-25ML, Laser Guided Air-to-Ground-Missile @@ -85,6 +90,7 @@ Kh-25ML, Míssil Ar para Chão Guiado a Laser Kh-25ML, Missile Air-Sol à Guidage Laser Kh-25ML, Laserem naváděná střela vzduch-země + Kh-25ML, Laser Guided Air-to-Ground-Missile 1x Kh-25ML [ACE] @@ -99,6 +105,7 @@ 1x Kh-25ML [ACE] 1x Kh-25ML [ACE] 1x Kh-25ML [ACE] + 1x Kh-25ML [ACE] @@ -115,6 +122,7 @@ AGM-65 Maverick L AGM-65L Maverick AGM-65 Maverick L + AGM-65 Maverick L Kh-25ML @@ -129,6 +137,7 @@ Kh-25ML Kh-25ML Kh-25ML + Kh-25ML diff --git a/addons/minedetector/stringtable.xml b/addons/minedetector/stringtable.xml index 06353cdf3e..9d75a6b4c5 100644 --- a/addons/minedetector/stringtable.xml +++ b/addons/minedetector/stringtable.xml @@ -15,6 +15,7 @@ 金屬探測器 Detector de Metais Detector de metales + Metal Dedektör Metal detector @@ -30,6 +31,7 @@ 金屬探測器 Detector de Metais Detector de metales + Metal Dedektör Activate @@ -45,6 +47,7 @@ 啟用探測器 Ativar Activar + Aktif Deactivate @@ -75,6 +78,7 @@ 連接耳機 Conectar fones de ouvido Conectar auriculares + Kulaklığını Bağla Disconnect Headphones @@ -90,6 +94,7 @@ 斷開耳機 Desconectar fones de ouvido Desconectar auriculares + Kulaklığının Bağlantısını Kes Headphones Connected @@ -105,6 +110,7 @@ 已連接耳機 Fones de ouvido conectados Auriculares conectados + Kulaklık Bağlandı Headphones Disconnected @@ -120,6 +126,7 @@ 已斷開耳機 Fones de ouvido conectados Auriculares desconectados + Kulaklık Çıkartıldı diff --git a/addons/movement/stringtable.xml b/addons/movement/stringtable.xml index 38790f655b..544e7914a7 100644 --- a/addons/movement/stringtable.xml +++ b/addons/movement/stringtable.xml @@ -16,6 +16,7 @@ 무게를 파운드(lb)로 보여줍니다 使用磅来显示重量 使用磅來顯示重量 + Ağırlığı lb olarak göster Climb @@ -32,6 +33,7 @@ 오르기 攀爬 攀爬 + Tırman Can't climb here @@ -48,6 +50,7 @@ 这里无法攀爬 這裡無法攀爬 여기는 올라갈 수 없다 + Buraya tırmanamazsın diff --git a/addons/mx2a/stringtable.xml b/addons/mx2a/stringtable.xml index 099a8e7703..0836523fde 100644 --- a/addons/mx2a/stringtable.xml +++ b/addons/mx2a/stringtable.xml @@ -16,6 +16,7 @@ MX-2A MX-2A(热成像) MX-2A + MX-2A Thermal imaging device @@ -32,6 +33,7 @@ 열영상 장치 热成像装置 熱成像裝置 + Termal Görüntüleme Aracı diff --git a/addons/nametags/stringtable.xml b/addons/nametags/stringtable.xml index 156f225ec4..d5af46f037 100644 --- a/addons/nametags/stringtable.xml +++ b/addons/nametags/stringtable.xml @@ -64,6 +64,7 @@ 플레이어 이름 표시 显示玩家名字 顯示玩家名稱 + Oyuncu isimlerini göster Show player names and set their activation. Default: Enabled diff --git a/addons/nightvision/stringtable.xml b/addons/nightvision/stringtable.xml index c5316b3437..e0df9849c7 100644 --- a/addons/nightvision/stringtable.xml +++ b/addons/nightvision/stringtable.xml @@ -13,6 +13,7 @@ ACE ПНВ ACE Visão Noturna ACE Noční vidění + ACE Gece Görüşü NV Goggles (Gen1) diff --git a/addons/noradio/stringtable.xml b/addons/noradio/stringtable.xml index 30a2b0b722..53744279e4 100644 --- a/addons/noradio/stringtable.xml +++ b/addons/noradio/stringtable.xml @@ -13,6 +13,7 @@ Silenciar Jogador Joueur en sourdine Ztlumit hráče + Oyuncuyu Sustur Mutes the controlled player avatar. diff --git a/addons/optics/stringtable.xml b/addons/optics/stringtable.xml index 377cca28bc..58763da8d6 100644 --- a/addons/optics/stringtable.xml +++ b/addons/optics/stringtable.xml @@ -16,6 +16,7 @@ RCO (2D) 步枪战斗光学瞄准镜(2D) 步槍戰鬥光學瞄準鏡(2D) + RCO (2D) RCO (PIP) @@ -32,6 +33,7 @@ RCO (PIP) 步枪战斗光学瞄准镜(拟真版) 步槍戰鬥光學瞄準鏡(擬真版) + RCO (PIP) ARCO (2D) @@ -48,6 +50,7 @@ ARCO (2D) 先进步枪战斗光学瞄准镜(2D) 先進步槍戰鬥光學瞄準鏡(2D) + ARCO (2D) ARCO (PIP) @@ -64,6 +67,7 @@ ARCO (PIP) 先进步枪战斗光学瞄准镜(拟真版) 先進步槍戰鬥光學瞄準鏡(擬真版) + ARCO (PIP) MRCO (2D) @@ -80,6 +84,7 @@ MRCO (2D) 多距离战斗瞄准镜(2D) 多距離戰鬥瞄準鏡(2D) + MRCO (2D) MRCO (PIP) @@ -96,6 +101,7 @@ MRCO (PIP) 多距离战斗瞄准镜(拟真版) 多距離戰鬥瞄準鏡(擬真版) + MRCO (PIP) MOS (2D) @@ -112,6 +118,7 @@ MOS (2D) 精准光学瞄准镜(2D) 精準光學瞄準鏡(2D) + MOS (2D) MOS (PIP) @@ -128,6 +135,7 @@ MOS (PIP) 精准光学瞄准镜(拟真版) 精準光學瞄準鏡(擬真版) + MOS (PIP) LRPS (2D) @@ -144,6 +152,7 @@ LRPS (2D) 长距离精确瞄准镜(2D) 長距離精確瞄準鏡(2D) + LRPS (2D) LRPS (PIP) @@ -160,6 +169,7 @@ LRPS (PIP) 长距离精确瞄准镜(拟真版) 長距離精確瞄準鏡(擬真版) + LRPS (PIP) diff --git a/addons/optionsmenu/stringtable.xml b/addons/optionsmenu/stringtable.xml index ad63752eba..5620ca3a9c 100644 --- a/addons/optionsmenu/stringtable.xml +++ b/addons/optionsmenu/stringtable.xml @@ -80,6 +80,7 @@ ACE 새소식 ACE新闻 ACE新聞 + ACE Haberler Show News on Main Menu @@ -96,6 +97,7 @@ 메인메뉴에 새소식을 표시합니다 显示新闻消息于主选单 顯示新聞消息於主選單 + Ana Menü de Haberleri Göster ACE Logistics @@ -111,6 +113,7 @@ ACE 보급 ACE 后勤设定 ACE 後勤設定 + ACE Lojistik Hide @@ -127,6 +130,7 @@ 숨기기 隐藏 隱藏 + Gizle Top right, downwards @@ -207,6 +211,7 @@ 상단 上方 上方 + Üst Bottom @@ -223,6 +228,7 @@ 하단 下方 下方 + Alt diff --git a/addons/parachute/stringtable.xml b/addons/parachute/stringtable.xml index dabd7d18c9..08fb33854c 100644 --- a/addons/parachute/stringtable.xml +++ b/addons/parachute/stringtable.xml @@ -16,6 +16,7 @@ 고도계 高度计 高度計 + Altimetre Altimeter Watch @@ -32,6 +33,7 @@ 고도계 시계 高度计手表 高度計手錶 + Altimetre Saati Used to show height, descent rate and the time. @@ -64,6 +66,7 @@ 비-조종 낙하산 非可操控降落伞 非可操控降落傘 + Yönlendirilemez Paraşüt Cut Parachute @@ -80,6 +83,7 @@ 낙하산 자르기 剪断降落伞 剪斷降落傘 + Paraşütü Kes Reserve Parachute @@ -96,6 +100,7 @@ 예비 낙하산 备用降落伞 備用降落傘 + Yedek Paraşüt Hide Freefall Altimeter @@ -110,6 +115,7 @@ Masquer l'altimètre en chute libre Schovat výškoměr v GUI při volném pádu Ocultar altímetro de caída libre + Serbest Düşüş Altimetresini Gizle Hides the altitude and speed shown while free falling or parachuting. diff --git a/addons/pylons/stringtable.xml b/addons/pylons/stringtable.xml index 9bcbe6310a..1e83e51274 100644 --- a/addons/pylons/stringtable.xml +++ b/addons/pylons/stringtable.xml @@ -70,6 +70,7 @@ <пусто> <vazio> <prázdné> + <boş> Pylons that are colored red will have to be manually rearmed. diff --git a/addons/quickmount/stringtable.xml b/addons/quickmount/stringtable.xml index 1aa32dde1d..a967cdef95 100644 --- a/addons/quickmount/stringtable.xml +++ b/addons/quickmount/stringtable.xml @@ -56,6 +56,7 @@ Veículo cheio Véhicule plein Vozidlo je plné + Araç Dolu This option allows quick entry into the vehicle you are directly looking at. @@ -77,6 +78,7 @@ Distância Distance Vzdálenost + Mesafe Maximum distance to check for vehicles. @@ -105,6 +107,7 @@ Veículo Trancado Véhicule verrouillé Vozidlo je zamčeno + Araç Kilitli Maximum Speed (km/h) @@ -119,6 +122,7 @@ Velocidade Máxima (km/h) Vitesse maximale (km/h) Maximální rychlost (km/h) + Yüksek Hız (km/h) Maximum vehicle speed (km/h) allowed for player entry @@ -173,6 +177,7 @@ 換座位 Changer de place Změnit sedadlo + Koltuk Değiştir diff --git a/addons/rangecard/stringtable.xml b/addons/rangecard/stringtable.xml index 2674b949aa..b11dbc72fd 100644 --- a/addons/rangecard/stringtable.xml +++ b/addons/rangecard/stringtable.xml @@ -16,6 +16,7 @@ 사거리표 弹道射表 彈道射表 + Menzil Kartı 50 METER increments -- MRAD/MRAD (reticle/turrets) @@ -48,6 +49,7 @@ 사거리표 열기 开启弹道射表 開啟彈道射表 + Menzil Kartını Aç Open Range Card Copy @@ -64,6 +66,7 @@ 복제 사거리표 열기 开启弹道射表副本 開啟彈道射表副本 + Menzil Kartının Kopyasını Aç Open Range Card @@ -80,6 +83,7 @@ 사거리표 열기 开启弹道射表 開啟彈道射表 + Menzil Kartını Aç Open Range Card Copy @@ -96,6 +100,7 @@ 복제 사거리표 열기 开启弹道射表副本 開啟彈道射表副本 + Menzil Kartının Kopyasını Aç Copy Range Card @@ -112,6 +117,7 @@ 사거리표 복제 复制弹道射表 複製彈道射表 + Menzil Kartını Kopyala diff --git a/addons/refuel/stringtable.xml b/addons/refuel/stringtable.xml index 0bedf641c7..de2ef33b68 100644 --- a/addons/refuel/stringtable.xml +++ b/addons/refuel/stringtable.xml @@ -15,6 +15,7 @@ 재급유 설정 加油设定 加油設定 + Yakıt Doldurma Ayarları Flow Rate @@ -30,6 +31,7 @@ 주유량 油料流量 油料流量 + Doldurma Hızı How fast should a vehicle be refueled? @@ -60,6 +62,7 @@ 재급유 加油 加油 + Yakıt Doldurma Take fuel nozzle @@ -75,6 +78,7 @@ 주유기 획득 拿取燃料喷嘴 拿取燃料噴嘴 + Yakıt Pompasını Al Taking fuel nozzle... @@ -90,6 +94,7 @@ 주유기 획득중... 拿取燃料喷嘴中... 拿取燃料噴嘴中... + Yakıt Pompası Alınıyor... Connect fuel nozzle @@ -105,6 +110,7 @@ 주유기 꼽기 连接燃料喷嘴 連接燃料噴嘴 + Yakıt Pompasını Bağla Connecting fuel nozzle... @@ -120,6 +126,7 @@ 주유기 꼽는중... 连结燃料喷嘴中... 連結燃料噴嘴中... + Yakıt Pompası Bağlanıyor... Disconnect fuel nozzle @@ -135,6 +142,7 @@ 주유기 뽑기 断开燃料喷嘴 斷開燃料噴嘴 + Yakıt Pompası Çıkar Connect @@ -150,6 +158,7 @@ 꼽기 连结 連結 + Bağlan Check remaining fuel @@ -165,6 +174,7 @@ 남은 연료 확인 检查剩余燃料 檢查剩餘燃料 + Kalan yakıtı kontrol et Checking remaining fuel... @@ -180,6 +190,7 @@ 남은 연료 확인중... 检查剩余燃料中... 檢查剩餘燃料中... + Kalan Yakıt Kontrol Ediliyor... There are %1 liters left. @@ -195,6 +206,7 @@ %1 리터 남음 剩下%1公升的燃料。 剩下%1公升的燃料。 + %1 litre kaldı. There is no fuel left. @@ -210,6 +222,7 @@ 연료 없음. 没有剩余的燃料 沒有剩餘的燃料 + Yakıt Kalmadı Cancel @@ -240,6 +253,7 @@ 실패 失败 失敗 + Başarısız Stop fueling @@ -255,6 +269,7 @@ 그만 재급유하기 停止加油 停止加油 + Yakıt Doldurmayı Durdur Start fueling @@ -270,6 +285,7 @@ 재급유 시작 开始加油 開始加油 + Yakıt Doldurmayı Başlat Couldn't turn on fuel nozzle diff --git a/addons/reload/stringtable.xml b/addons/reload/stringtable.xml index b3d0ef9193..9d2ce50264 100644 --- a/addons/reload/stringtable.xml +++ b/addons/reload/stringtable.xml @@ -68,6 +68,7 @@ 장탄수 확인 检查弹药 檢查彈藥 + Cephaneni Kontrol Et Ammo @@ -84,6 +85,7 @@ 장탄수 弹药 彈藥 + Cephane Link belt diff --git a/addons/reloadlaunchers/stringtable.xml b/addons/reloadlaunchers/stringtable.xml index fc3a445d17..3dacbe6cbe 100644 --- a/addons/reloadlaunchers/stringtable.xml +++ b/addons/reloadlaunchers/stringtable.xml @@ -16,6 +16,7 @@ 무기 재장전 装载发射器 裝載發射器 + Fırlatıcıyı Yükle Loading launcher... @@ -32,6 +33,7 @@ 무기 재장전중... 装载发射器中... 裝載發射器中... + Fırlatıcı Yükleniyor... Launcher loaded @@ -48,6 +50,7 @@ 무기 재장전됨 发射器装载完毕 發射器裝載完畢 + Fırlatıcı Yüklendi Load %1 @@ -64,6 +67,7 @@ %1 장전 装载%1 裝載%1 + %1 Yüklendi diff --git a/addons/repair/stringtable.xml b/addons/repair/stringtable.xml index 88c5645931..8e19eb1481 100644 --- a/addons/repair/stringtable.xml +++ b/addons/repair/stringtable.xml @@ -16,6 +16,7 @@ 예비 궤도 备用履带 備用履帶 + Yedek Parça Spare Wheel @@ -32,6 +33,7 @@ 예비 바퀴 备用轮胎 備用輪胎 + Yedek Tekerlek Change Wheel @@ -48,6 +50,7 @@ 바퀴 교체 更换轮胎 更換輪胎 + Tekerleği Değiştir Replacing Wheel... @@ -63,6 +66,7 @@ 바퀴 교체중... 更换轮胎中... 更換輪胎中... + Tekerlek Takılıyor Wheel replaced @@ -78,6 +82,7 @@ 바퀴 교체됨 轮胎更换完毕 輪胎更換完畢 + Tekerlek Takıldı Remove Wheel @@ -94,6 +99,7 @@ 바퀴 제거 卸下轮胎 卸下輪胎 + Tekerleği Sök Removing Wheel... @@ -109,6 +115,7 @@ 바퀴 제거중... 卸下轮胎中... 卸下輪胎中... + Tekerlek Sökülüyor Wheel removed @@ -124,6 +131,7 @@ 바퀴 제거됨 轮胎卸下完毕 輪胎卸下完畢 + Tekerlek Söküldü Change Track @@ -139,6 +147,7 @@ 궤도 교체 更换履带 更換履帶 + Parçayı Değiştir Replacing Track... @@ -154,6 +163,7 @@ 궤도 교체중... 更换履带中... 更換履帶中... + Parça Değişiyor... Track replaced @@ -169,6 +179,7 @@ 궤도 교체됨 履带更换完毕 履帶更換完畢 + Parça Değişti Remove Track @@ -184,6 +195,7 @@ 궤도 제거 卸下履带 卸下履帶 + Parçayı Sök Removing Track... @@ -199,6 +211,7 @@ 궤도 제거중... 卸下履带中... 卸下履帶中... + Parça Sökülüyor... Track removed @@ -214,6 +227,7 @@ 궤도 제거됨 履带卸下完毕 履帶卸下完畢 + Parça Söküldü Full Repair @@ -244,6 +258,7 @@ 차량 수리중... 维修载具中... 維修載具中... + Tamir Ediliyor... Full Repair Locations @@ -350,6 +365,7 @@ 수리 维修 維修 + Tamir Display text on repair @@ -396,6 +412,7 @@ 수리중... 维修中... 維修中... + Tamir Ediliyor... Repairing %1... @@ -412,6 +429,7 @@ %1 수리중... 维修%1中... 維修%1中... + Tamir Ediliyor %1... Repaired %1 @@ -428,6 +446,7 @@ %1 수리됨 已维修%1 已維修%1 + Tamir Edildi %1 Fully repaired part @@ -504,6 +523,7 @@ 몸체 车身 車身 + Vücut Hull @@ -520,6 +540,7 @@ 선체 车壳 車殼 + Gövde Engine @@ -536,6 +557,7 @@ 엔진 引擎 引擎 + Motor Left Horizontal Stabilizer @@ -597,6 +619,7 @@ 연료 탱크 油箱 油箱 + Yakıt Tankeri Transmission @@ -612,6 +635,7 @@ 변속기 变速箱 變速箱 + Vites Gear @@ -627,6 +651,7 @@ 기어 齿轮 齒輪 + Vites Starter @@ -642,6 +667,7 @@ 점화기 发动机 發動機 + Marş Tail @@ -657,6 +683,7 @@ 꼬리 尾翼 尾翼 + Kuyruk Pitot Tube @@ -672,6 +699,7 @@ 동압관 空速管 空速管 + Pilot Tüpü Static Port @@ -702,6 +730,7 @@ 탄약 弹药 彈藥 + Cephane Turret @@ -718,6 +747,7 @@ 포탑 炮塔 砲塔 + Taret Gun @@ -734,6 +764,7 @@ + Silah Commander Turret @@ -750,6 +781,7 @@ 지휘관 포탑 指挥官 炮塔 指揮官 砲塔 + Komutan Tareti Commander Gun @@ -766,6 +798,7 @@ 지휘관 포 指挥官 枪 指揮官 槍 + Komutan Silahı Missiles @@ -781,6 +814,7 @@ 미사일 导弹 導彈 + Füzeler Left Track @@ -973,6 +1007,7 @@ 주 로터 主旋翼 主旋翼 + Ana Rotor Tail Rotor @@ -989,6 +1024,7 @@ 꼬리 로터 尾桨 尾槳 + Arka Rotor Winch @@ -1004,6 +1040,7 @@ 윈치 绞盘 絞盤 + Vinç Glass (right) @@ -1020,6 +1057,7 @@ 유리 (오른쪽) 玻璃 (右) 玻璃 (右) + Cam(Sağ) Glass (left) @@ -1036,6 +1074,7 @@ 유리 (왼쪽) 玻璃 (左) 玻璃 (左) + Cam (sol) Glass @@ -1052,6 +1091,7 @@ 유리 玻璃 玻璃 + Cam ERA @@ -1112,6 +1152,7 @@ 모두 任何人 任何人 + Herkes Engineer only @@ -1127,6 +1168,7 @@ 오직 정비공만 只有工兵 只有工兵 + Sadece Mühendis Advanced Engineer only @@ -1142,6 +1184,7 @@ Ing. avancés uniquement Pouze pokročilý inženýr Solo ingeniero avanzado + Sadece Gelişmiş Mühendis Allow Wheel diff --git a/addons/respawn/stringtable.xml b/addons/respawn/stringtable.xml index f0b9bc289e..bdebf51d89 100644 --- a/addons/respawn/stringtable.xml +++ b/addons/respawn/stringtable.xml @@ -13,6 +13,7 @@ Ressurgimento Réapparition Znovuzrození + Yeniden Doğma Deploy in 5 seconds... @@ -61,6 +62,7 @@ 기지로 순간이동 传送至基地 傳送至基地 + Üsse Işınlan Teleport to Rallypoint @@ -93,6 +95,7 @@ 기지로 순간이동함 已传送至基地 已傳送至基地 + Üsse Işınlan Teleported to Rallypoint @@ -237,6 +240,7 @@ 장비를 저장합니까? 储存装备? 儲存裝備? + Kıyafetleri Kaydet? Respawn with the gear a soldier had just before his death? @@ -269,6 +273,7 @@ 시체를 제거합니까? 删除尸体? 刪除屍體? + Bedeni Sil ? Remove player bodies after disconnect? @@ -298,6 +303,7 @@ Tempo para remover corpo Minuterie enlèvement corps Časovač odstranění mrtvol + Bedenin Silinme Süresi This module enables you to configure ACE functionality specific to respawns. @@ -407,6 +413,7 @@ ACE 재배치 ACE 重生 ACE 重生 + ACE Yeniden Doğma diff --git a/addons/safemode/stringtable.xml b/addons/safemode/stringtable.xml index 98e9483fc3..9cabffca46 100644 --- a/addons/safemode/stringtable.xml +++ b/addons/safemode/stringtable.xml @@ -16,6 +16,7 @@ 안전 모드 保险模式 保險模式 + Emniyet Modu Take off Safety @@ -48,6 +49,7 @@ 안전장치 적용 关保险 關保險 + Emniyete alındı Took off Safety @@ -64,6 +66,7 @@ 안전장치 해제됨 已开保险 已開保險 + Emniyetten çıkartıldı diff --git a/addons/sandbag/stringtable.xml b/addons/sandbag/stringtable.xml index 8fc4f24a9b..fc6dc8cc2e 100644 --- a/addons/sandbag/stringtable.xml +++ b/addons/sandbag/stringtable.xml @@ -16,6 +16,7 @@ 모래주머니 沙包 沙包 + Kum Torbası Sandbag (empty) @@ -32,6 +33,7 @@ 모래주머니(비어있음) 沙包 (空) 沙包 (空) + Kum Torbası (Boş) Cannot build here @@ -48,6 +50,7 @@ 여기에 지을 수 없습니다 无法放置在此 無法放置在此 + Buraya inşa edilemez Pick up Sandbag @@ -64,6 +67,7 @@ 모래주머니 줍기 捡起沙包 撿起沙包 + Kum torbasını al Carry Sandbag @@ -80,6 +84,7 @@ 모래주머니 옮기기 搬运沙包 搬運沙包 + Kum torbasını taşı End Carrying @@ -96,6 +101,7 @@ 그만 옮기기 停止搬运 停止搬運 + Taşımayı bitir Drop Sandbag @@ -176,6 +182,7 @@ 모래주머니 상자 沙包箱 沙包箱 + Kum Torbası Kutusu Here is no sand @@ -208,6 +215,7 @@ 돌리기 旋转 旋轉 + Yönlendir diff --git a/addons/scopes/stringtable.xml b/addons/scopes/stringtable.xml index 87a1d8851f..e390350aab 100644 --- a/addons/scopes/stringtable.xml +++ b/addons/scopes/stringtable.xml @@ -14,6 +14,7 @@ Прицелы Mira Telescópica Puškohledy + Dürbünler Enable ACE Scope adjustment diff --git a/addons/slideshow/stringtable.xml b/addons/slideshow/stringtable.xml index 422e278825..02dd20c94d 100644 --- a/addons/slideshow/stringtable.xml +++ b/addons/slideshow/stringtable.xml @@ -16,6 +16,7 @@ 슬라이드 쇼 幻燈片 幻灯片 + Slayt This module allows you to set up slide-shows on different objects. One module per image list. Only objects with hiddenSelection 0 are supported. @@ -48,6 +49,7 @@ 물체 物件 物件 + Objeler Object names (can also be synchronized objects) slide-show will be displayed on, separated by commas if multiple. @@ -80,6 +82,7 @@ 조종 장치 控制器 控制器 + Kontroller Controller object names, separated by commas if multiple. @@ -112,6 +115,7 @@ 사진 圖片 图片 + Resimler List of images that will be used for the slide-show, separated by commas, with full path correctly formatted (eg. images\image.paa). @@ -236,6 +240,7 @@ 슬라이드 幻燈片 幻灯片 + Slaytlar diff --git a/addons/spectator/stringtable.xml b/addons/spectator/stringtable.xml index a05f1eca08..3006147b00 100644 --- a/addons/spectator/stringtable.xml +++ b/addons/spectator/stringtable.xml @@ -57,6 +57,7 @@ Разрешить для ИИ IA Ativado AI povoleno + AI Etkin Make AI viewable in spectator @@ -86,6 +87,7 @@ 카메라 모드 摄影机模式 攝影機模式 + Kamera Modları Camera modes that can be used @@ -116,6 +118,7 @@ 모두 所有 所有 + Hepsi 1PP and 3PP @@ -131,6 +134,7 @@ 一人称と三人称 第一人稱與第三人稱 第一人称与第三人称 + 1PP ve 3PP Vision modes @@ -146,6 +150,7 @@ 시야 모드 视觉模式 視覺模式 + Görüş Modları Vision modes that can be used @@ -176,6 +181,7 @@ 야간투시경 夜视 夜視 + Geçe Görüşü Thermal imaging @@ -191,6 +197,7 @@ 열화상 热成像 熱成像 + Termal Görüş Max Follow Distance @@ -227,6 +234,7 @@ 정비공 工兵 工兵 + Mühendis Free @@ -242,6 +250,7 @@ 자유 自由模式 自由模式 + Serbest Normal @@ -257,6 +266,7 @@ 정상 正常 正常 + Normal Night @@ -272,6 +282,7 @@ 야간 夜视 夜視 + Gece Thermal @@ -287,6 +298,7 @@ 열상 热成像 熱成像 + Termal @@ -316,6 +328,7 @@ Осколки Projéteis Projektily + Mermiler Next Unit @@ -331,6 +344,7 @@ 다음 인원 下个单位 下個單位 + Sonraki Takım Previous Unit @@ -346,6 +360,7 @@ 이전 인원 上个单位 上個單位 + Önceki Takım Vision Mode @@ -360,6 +375,7 @@ Режим видения Modo de Visão Režim sledování + Görüş Modu Slow Speed diff --git a/addons/spottingscope/stringtable.xml b/addons/spottingscope/stringtable.xml index 6803249597..1eb19396b6 100644 --- a/addons/spottingscope/stringtable.xml +++ b/addons/spottingscope/stringtable.xml @@ -16,6 +16,7 @@ 감적 망원경 观测镜 觀測鏡 + Gözcü Dürbünü Pick up Spotting Scope @@ -32,6 +33,7 @@ 감적 망원경 줍기 捡起观测镜 撿起觀測鏡 + Gözcü Dürbününü al Place Spotting Scope @@ -48,6 +50,7 @@ 감적 망원경 배치 放置观测镜 放置觀測鏡 + Gözcü Dürbününü Yerleştir diff --git a/addons/tacticalladder/stringtable.xml b/addons/tacticalladder/stringtable.xml index d5e40bb994..190616685e 100644 --- a/addons/tacticalladder/stringtable.xml +++ b/addons/tacticalladder/stringtable.xml @@ -16,6 +16,7 @@ 로프 사다리 伸缩梯子 伸縮梯子 + Katlanabilir Merdiven Deploy ladder @@ -32,6 +33,7 @@ 사다리 배치 布署梯子 佈署梯子 + Merdiveni Konuşlandır Drop ladder @@ -48,6 +50,7 @@ 사다리 놓기 降下梯子 降下梯子 + Merdiveni Bırak Extend @@ -63,6 +66,7 @@ 늘리기 伸长梯子 伸長梯子 + Uzat +Ctrl tilt @@ -94,6 +98,7 @@ 사다리 위치 梯子位置 梯子位置 + Merdiveni Taşı Pickup ladder @@ -110,6 +115,7 @@ 사다리 줍기 捡起梯子 撿起梯子 + Merdiveni Al diff --git a/addons/tagging/stringtable.xml b/addons/tagging/stringtable.xml index b0e06553be..e91567e55e 100644 --- a/addons/tagging/stringtable.xml +++ b/addons/tagging/stringtable.xml @@ -70,6 +70,7 @@ 上次最後使用 Último usado Naposledy použitý + Son Kullanan Random X @@ -84,6 +85,7 @@ 隨機X標記 Aleatório X Náhodné X + Rasgele X Random @@ -98,6 +100,7 @@ 隨機 Aleatório Náhodný + Rasgele Tag @@ -128,6 +131,7 @@ 검정 X 黑色X标记 黑色X標記 + X Siyah X red @@ -143,6 +147,7 @@ 빨간 X 红色X标记 紅色X標記 + X Red X green @@ -158,6 +163,7 @@ 초록 X 绿色X标记 綠色X標記 + X Yeşil X blue @@ -173,6 +179,7 @@ 파랑 X 蓝色X标记 藍色X標記 + X Mavi Spray Paint (Black) @@ -188,6 +195,7 @@ 검정 스프레이 黑色喷漆 黑色噴漆 + Sprey Boya (Siyah) Spray Paint (Red) @@ -203,6 +211,7 @@ 빨강 스프레이 红色喷漆 紅色噴漆 + Sprey Boya (Kırmızı) Spray Paint (Green) @@ -218,6 +227,7 @@ 초록 스프레이 绿色喷漆 綠色噴漆 + Sprey Boya (Yeşil) Spray Paint (Blue) @@ -233,6 +243,7 @@ 파랑 스프레이 蓝色喷漆 藍色噴漆 + Sprey Boya (Mavi) A can of spray paint for tagging walls. diff --git a/addons/trenches/stringtable.xml b/addons/trenches/stringtable.xml index 46f0d7f196..8369dd6d07 100644 --- a/addons/trenches/stringtable.xml +++ b/addons/trenches/stringtable.xml @@ -15,6 +15,7 @@ 야전삽 战备锹 戰備鍬 + Kürek Entrenching Tool @@ -30,6 +31,7 @@ 야전용 삽. 군인들의 영원한 친구 战备锹 戰備鍬 + Kürek Envelope - Small @@ -45,6 +47,7 @@ 掩体 - 小 掩體 - 小 Obálka - Malá + Zarf - Küçük Small Personal Trench @@ -60,6 +63,7 @@ 소형 개인참호 小型个人掩体 小型個人掩體 + Küçük Kişisel Siper Dig Small Trench @@ -75,6 +79,7 @@ 소형참호 파기 盖小掩体 蓋小掩體 + Küçük Siper Envelope - Big @@ -90,6 +95,7 @@ 掩体 - 大 掩體 - 大 Obálka - Velká + Zarf - Büyük Large Personal Trench @@ -105,6 +111,7 @@ 대형 참호 大型个人掩体 大型個人掩體 + Geniş Kişisel Siper Dig Big Trench @@ -120,6 +127,7 @@ 대형참호 파기 盖大掩体 蓋大掩體 + Büyük Siper Confirm Dig @@ -135,6 +143,7 @@ 여기에 파기 确认开工 確認開工 + Kazmayı Onayla Cancel Dig @@ -166,6 +175,7 @@ 돌리기 旋转 旋轉 + Yönlendir Digging Trench @@ -181,6 +191,7 @@ 참호 파는중 正在盖掩体中 正在蓋掩體中 + Siper Kazılıyor Continue Digging Trench @@ -195,6 +206,7 @@ Continuando a Scavare la Trincea 继续盖掩体 繼續蓋掩體 + Kazmaya Devam Et Remove Trench @@ -209,6 +221,7 @@ Rimuovi Trincea 移除掩体 移除掩體 + Siperi Kaldır Removing Trench @@ -223,6 +236,7 @@ Rimuovendo la Trincea 移除掩体中 移除掩體中 + Siper Kaldırılıyor diff --git a/addons/tripod/stringtable.xml b/addons/tripod/stringtable.xml index 78c13b640b..e39915462a 100644 --- a/addons/tripod/stringtable.xml +++ b/addons/tripod/stringtable.xml @@ -32,6 +32,7 @@ SSWT 키트 배치 放置狙击手专用三脚架 放置狙擊手專用三腳架 + Yerleştir SSWT Kit Pick up SSWT Kit @@ -48,6 +49,7 @@ SSWT 키트 줍기 捡起狙击手专用三脚架 撿起狙擊手專用三腳架 + Al SSWT Kit Adjust SSWT Kit @@ -64,6 +66,7 @@ SSWT 키트 조절 调整狙击手专用三脚架 調整狙擊手專用三腳架 + Ayarla SSWT Kit Done @@ -80,6 +83,7 @@ 완료 完成 完成 + Bitti adjust @@ -96,6 +100,7 @@ 조절 调整 調整 + Ayarlamak diff --git a/addons/ui/stringtable.xml b/addons/ui/stringtable.xml index 5e3bbad4f3..e3e58819d0 100644 --- a/addons/ui/stringtable.xml +++ b/addons/ui/stringtable.xml @@ -15,6 +15,7 @@ 使用者介面 使用者介面 Interfaz de usuario + Kullanıcı Arayüzü User Interface @@ -30,6 +31,7 @@ 使用者介面 使用者介面 Interfaz de usuario + Kullanıcı Arayüzü This module allows toggling visible user interface parts. diff --git a/addons/vector/stringtable.xml b/addons/vector/stringtable.xml index a0f60986df..19fb076b07 100644 --- a/addons/vector/stringtable.xml +++ b/addons/vector/stringtable.xml @@ -16,6 +16,7 @@ Vector 21 Nite Vector 21 Nite Vector 21 Nite + Vector 21 Nite Vector 21 @@ -32,6 +33,7 @@ Vector 21 Vector 21 Vector 21 + Vector 21 Rangefinder @@ -48,6 +50,7 @@ 거리측정기 测距仪 測距儀 + Menzil Bulucu Vector - Azimuth Key @@ -64,6 +67,7 @@ Vector - 방위각 키 Vector - 方位按键 Vector - 方位按鍵 + Vector - Azimuth Key Vector - Distance Key @@ -80,6 +84,7 @@ Vector - 거리 키 Vector - 距离按键 Vector - 距離按鍵 + Vector - Distance Key diff --git a/addons/vehiclelock/stringtable.xml b/addons/vehiclelock/stringtable.xml index cc0bb52711..7f893f0618 100644 --- a/addons/vehiclelock/stringtable.xml +++ b/addons/vehiclelock/stringtable.xml @@ -14,6 +14,7 @@ ACE Trancar Veículos ACE Verrouillage véhicule ACE Zamykání Vozidel + ACE Araç Kilidi Unlock Vehicle @@ -30,6 +31,7 @@ 차량 잠금열기 载具解锁 載具解鎖 + Araç Kilidini Aç Lock Vehicle @@ -46,6 +48,7 @@ 차량 잠그기 载具上锁 載具上鎖 + Aracı Kilitle Lockpick Vehicle @@ -62,6 +65,7 @@ 차량 문따기 解锁载具 解鎖載具 + Aracı Maymuncukla Picking Lock... @@ -78,6 +82,7 @@ 문따는중... 解锁中... 解鎖中... + Maymuncuklanıyor... A custom key that will open a specific vehicle. diff --git a/addons/vehicles/stringtable.xml b/addons/vehicles/stringtable.xml index 2dcd2596a3..bb60255ba9 100644 --- a/addons/vehicles/stringtable.xml +++ b/addons/vehicles/stringtable.xml @@ -16,6 +16,7 @@ 속도 제한기 켜짐 启用速度限制 啟用速度限制 + Hız Sabitleyeciı Açık Speed Limiter off @@ -32,6 +33,7 @@ 속도 제한기 꺼짐 停用速度限制 停用速度限制 + Hız Sabitleyeci Kapalı Speed Limit @@ -45,6 +47,7 @@ Rychlostní omezení 速限 Vitesse limite + Hız Limiti Speed Limiter @@ -61,6 +64,7 @@ 속도 제한기 速度限制器 速度限制器 + Hız Sabitleyici Increase Speed Limit diff --git a/addons/viewdistance/stringtable.xml b/addons/viewdistance/stringtable.xml index b1f19386d9..b30285c9ad 100644 --- a/addons/viewdistance/stringtable.xml +++ b/addons/viewdistance/stringtable.xml @@ -16,6 +16,7 @@ 시야 제한기 视野距离限制器 視野距離限制器 + Görüş Uzaklığı Sınırlayıcısı Allows limiting maximum view distance that can be set by players. @@ -256,6 +257,7 @@ 끄기 关闭 關閉 + Kapalı Very Low @@ -272,6 +274,7 @@ 매우 낮음 非常低 非常低 + Çok Düşük Low @@ -288,6 +291,7 @@ 낮음 + Düşük Medium @@ -304,6 +308,7 @@ 중간 + Orta High @@ -320,6 +325,7 @@ 높음 + Yüksek Very High @@ -336,6 +342,7 @@ 매우 높음 非常高 非常高 + Çok Yüksek FoV Based @@ -367,6 +374,7 @@ 시야: 视野距离: 視野距離: + Görüş Uzaklığı: Object View Distance is @@ -415,6 +423,7 @@ 영상 설정 影像设定 影像設定 + Grafik Ayarları diff --git a/addons/weaponselect/stringtable.xml b/addons/weaponselect/stringtable.xml index 5a30d4209e..d31c3fde91 100644 --- a/addons/weaponselect/stringtable.xml +++ b/addons/weaponselect/stringtable.xml @@ -48,6 +48,7 @@ 권총 선택 选择手枪 選擇手槍 + Tabancayı Seç Select Rifle @@ -64,6 +65,7 @@ 소총 선택 选择步枪 選擇步槍 + Tüfeği Seç Select Launcher @@ -80,6 +82,7 @@ 발사기 선택 选择发射器 選擇發射器 + Fırlatılabiliri Seç Select Grenade Launcher @@ -96,6 +99,7 @@ 유탄발사기 선택 选择榴弹发射器 選擇榴彈發射器 + Bombaatarı Seç Select Binoculars @@ -144,6 +148,7 @@ 엔진 켜기 引擎发动 引擎發動 + Motor Açık Engine off @@ -160,6 +165,7 @@ 엔진 끄기 引擎熄火 引擎熄火 + Motor Kapalı Select Main Gun diff --git a/addons/weather/stringtable.xml b/addons/weather/stringtable.xml index ce10183f85..29bb7f5fff 100644 --- a/addons/weather/stringtable.xml +++ b/addons/weather/stringtable.xml @@ -48,6 +48,7 @@ 기후 天气 天氣 + Hava Durumu Multiplayer synchronized ACE weather module @@ -80,6 +81,7 @@ ACE 기후 ACE 天气 ACE 天氣 + ACE Hava Durumu Expands the existing weather by temperature, humidity and air pressure. diff --git a/addons/winddeflection/stringtable.xml b/addons/winddeflection/stringtable.xml index 86209375b4..6fd18fe336 100644 --- a/addons/winddeflection/stringtable.xml +++ b/addons/winddeflection/stringtable.xml @@ -16,6 +16,7 @@ 바람 정보 风力资讯 風力資訊 + Rüzgar Bilgisi Direction: %1 @@ -32,6 +33,7 @@ 방향: %1 风向: %1 風向: %1 + Yön: %1 Speed: %1 m/s @@ -48,6 +50,7 @@ 풍속: %1 m/s 风速: %1 m/s 風速: %1 m/s + Hız: %1 m/s Weather Information @@ -64,6 +67,7 @@ 기상 정보 天气资讯 天氣資訊 + Hava Durumu Bilgisi Humidity: %1% diff --git a/addons/yardage450/stringtable.xml b/addons/yardage450/stringtable.xml index e42731aa6f..6d25855737 100644 --- a/addons/yardage450/stringtable.xml +++ b/addons/yardage450/stringtable.xml @@ -16,6 +16,7 @@ Yardage 450 Yardage 450 Yardage 450 + Yardage 450 Laser Rangefinder diff --git a/addons/zeus/stringtable.xml b/addons/zeus/stringtable.xml index 4e091b03e6..ec4e942e53 100644 --- a/addons/zeus/stringtable.xml +++ b/addons/zeus/stringtable.xml @@ -14,6 +14,7 @@ Zeus Zeus Zeus + Zeus Zeus Settings @@ -30,6 +31,7 @@ Zeus 설정 宙斯设定 宙斯設定 + Zeus Ayarları Provides control over various aspects of Zeus. @@ -94,6 +96,7 @@ Zeus 독수리 宙斯鹰眼模式 宙斯鷹眼模式 + Zeus Kartalı Spawn an eagle that follows the Zeus camera. @@ -126,6 +129,7 @@ 바람 소리 风声 風聲 + Rüzgar sesi Play wind sounds when Zeus remote controls a unit. @@ -254,6 +258,7 @@ 포로 토글 切换俘虏 切換俘虜 + Tutuklamayı Aç/Kapat Defend Area @@ -317,6 +322,7 @@ Adicionar Objetos Přidat objekty Ajouter des objets + Obje Ekle Remove Objects @@ -331,6 +337,7 @@ Удалить объекты Remover Objetos Odebrat objekty + Objeyi Kaldır All Curators @@ -397,6 +404,7 @@ AI技巧设定 AI技巧設定 Habilidade Global da IA + Genel AI Yetenekleri General Skill @@ -411,6 +419,7 @@ 总体技巧 總體技巧 Habilidade Geral + Genel Yetenekler Changes: general, commanding, courage @@ -579,6 +588,7 @@ 小队阵营 小隊陣營 Lado do Grupo + Tarafı Değiştir Patrol Area @@ -593,6 +603,7 @@ 巡逻区域 巡邏區域 Patrulhar Área + Devriye ayarla Toggle Surrender @@ -609,6 +620,7 @@ 항복 토글 切换投降 切換投降 + Teslim olmayı Aç/Kapat Add/Remove FRIES @@ -623,6 +635,7 @@ Добавить/Удалить FRIES Adicionar/Remover FRIES Přidat/Odebrat FRIES (slaňování) + Ekle/Kaldır FRIES %1 is not fastrope compatible. @@ -666,6 +679,7 @@ 傳送玩家 Teleportar Jogadores Teletransportadores + Oyuncuları Işınla Player @@ -681,6 +695,7 @@ 玩家 Jogador Player + Oyuncu Teleport selected player to module position @@ -709,6 +724,7 @@ 传送小队 傳送小隊 Teleportar Grupo + Grubu ışınla Teleports all units in group @@ -740,6 +756,7 @@ 기절 토글 切换昏迷 切換昏迷 + Bayıltmayı Aç/Kapat Search Area @@ -755,6 +772,7 @@ 搜索區域 Procurar Área Área de búsqueda + Bölgeyi Ara Search Nearby Building @@ -830,6 +848,7 @@ Alternar Simulação Activar simulación Přepnout simulaci objektu + Similasyonu Aç/Kapat Add Spare Wheel @@ -845,6 +864,7 @@ 예비 바퀴 추가 增加备用轮胎 增加備用輪胎 + Tekerlek Ekle Add Spare Track @@ -860,6 +880,7 @@ 예비 궤도 추가 增加备用履带 增加備用履帶 + Yedek Parça Ekle Unit must be alive @@ -1014,6 +1035,7 @@ 대상에 배치하기 放置在一个单位上 放置在一個單位上 + Bir birim yerleştir Requires an addon that is not present @@ -1043,6 +1065,7 @@ Nikdo Aucun + Hiçbiri Players @@ -1056,6 +1079,7 @@ 玩家 Hráči Joueurs + Oyuncular Players and AI @@ -1069,6 +1093,7 @@ 玩家與AI Hráči a AI Joueurs et IA + Oyuncular ve AI Add Objects to Curator @@ -1113,6 +1138,7 @@ 货物: 貨物: Carga: + Kargo: Select cargo to unload @@ -1197,6 +1223,7 @@ Добавить весь Арсенал Adicionar Arsenal Completo Přidat plný arzenál + Arsenal Ekle Remove Arsenal @@ -1211,6 +1238,7 @@ Убрать Арсенал Remover Arsenal Odebrat arzenál + Arsenali Kaldır Load into Cargo @@ -1253,6 +1281,7 @@ Приборы ночного видения Equipamento de Visão Noturna Noktovizory - vybavení + Gece Görüşü Ekipmanı Add or remove NVGs from units @@ -1308,6 +1337,7 @@ Выбранная группа Grupo Selecionado Vybraná skupina + Seçilen Grup Toggle Flashlights @@ -1323,6 +1353,7 @@ Alternar Lanternas Alternar linternas Přepnout svítilny + Feneriı Aç/Kapat Flashlights @@ -1338,6 +1369,7 @@ Lanternas Linternas Svítilny + Fenerler Add Gear @@ -1465,6 +1497,7 @@ Teleportar Teletransporte Teleportovat + Işınla Un-garrison Group @@ -1495,6 +1528,7 @@ Nenhum jogador encontrado Игроки не найдены No se encontraron jugadores + Kullanıcı bulunamadı Assign Repair Vehicle @@ -1543,6 +1577,7 @@ Definir como engenheiro Назначить инженера Asignar Ingeniero + Mühendis yap Engineer Skill @@ -1559,6 +1594,7 @@ Habilidade do engenheiro Инженерное мастерство Habilidad de Ingeniero + Mühendislik yeteneği Full Heal @@ -1575,6 +1611,7 @@ Cura completa Полное исцеление Totalmente curado + Full Can Suicide Bomber @@ -1607,6 +1644,7 @@ Explodir em: Сторона активации Lado de activación + Aktivasyon tarafı Activation Radius @@ -1623,6 +1661,7 @@ Raio de ativação Радиус активации Radio de activación + Aktivasyon yarıçapı Explosion Size @@ -1639,6 +1678,7 @@ Tamanho da Explosão Размер взрыва Tamaño de Explosión + Patlama boyutu Auto Seek @@ -1655,6 +1695,7 @@ Buscar alvos automaticamente Автоматический поиск Búsqueda automática + Otomatik arama Unit will actively try to find and move towards nearby units of the activation side. The range of Auto Seek is based on the unit's spot distance skill with a minimum of 100 meters. @@ -1687,6 +1728,7 @@ A unidade já é um suicida Единица уже является террористом-смертником La unidad ya es un terrorista suicida + Kişi zaten bir intihar bombacısı Add full ACE Arsenal @@ -1701,6 +1743,7 @@ Añadir ACE Arsenal completo Přidat plný ACE Arzenál Ajouter arsenal ACE complet + ACE Arsenal ekle Remove ACE Arsenal @@ -1715,6 +1758,7 @@ Eliminar ACE Arsenal Odebrat plný ACE Arzenál Retirer un arsenal ACE + ACE Arsenali sil Create Zeus @@ -1728,6 +1772,7 @@ 新增宙斯 Vytvořit Zeuse Créer Zeus + Zeus oluştur Delete Zeus @@ -1741,6 +1786,7 @@ 刪除宙斯 Smazat Zeuse Supprimer Zeus + Zeus sil "%1" menu @@ -1753,6 +1799,7 @@ 選單 %1 "%1" menu Menu "%1" + "%1" menü Paradrop Cargo @@ -1765,6 +1812,7 @@ Paradrop Cargo Výsadek nákladu Paralargage de cargaison + Paraşüt Kargosu No cargo loaded @@ -1778,6 +1826,7 @@ Nessun carico caricato Žádný náklad není naložen Aucune cargaison chargée + Kargo yüklenmedi From 0616e397a33d5db40ef4ee0fbb974c0a6721d435 Mon Sep 17 00:00:00 2001 From: Jo David Date: Mon, 6 Jan 2020 07:19:19 +0100 Subject: [PATCH 031/194] Add section about looking for existing translation PRs, don't let them leave our homepage --- .../wiki/development/how-to-translate-ace3.md | 31 ++++++++++--------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/docs/wiki/development/how-to-translate-ace3.md b/docs/wiki/development/how-to-translate-ace3.md index 6ceb41a01f..55e460dcbb 100644 --- a/docs/wiki/development/how-to-translate-ace3.md +++ b/docs/wiki/development/how-to-translate-ace3.md @@ -9,23 +9,24 @@ order: 20 This page describes in short how you can help translating ACE3 into your language. -1. If you don't already have a GitHub account create one at [http://github.com](http://github.com) -2. Open the ACE3 repository at [https://github.com/acemod/ACE3](https://github.com/acemod/ACE3) -3. In the top right corner press the `Fork` button -4. You are being redirected to your personal fork, a version that is hosted on your GitHub account (it says "yourUsername/ACE3") -5. Clone that fork to your PC (There are a lot of tools and tutorials how to do this (e.g. [GitHub for Windows](https://windows.github.com))) -6. Download [tabler](https://github.com/bux578/tabler/releases) and extract it somewhere -7. Open the tabler.exe and in the menu click "File > Open language files" -8. Point tabler to the cloned ACE3 directory -9. Start translating -10. When done go to the menu and click "File > Save language files" -11. Commit your changes to your local cloned repository -12. Sync (Push) your commit(s) to your fork -13. Create a Pull Request for your changes +1. If you don't already have a GitHub account create one at [http://github.com](http://github.com){:target="_blank"} +1. Open the ACE3 repository at [https://github.com/acemod/ACE3](https://github.com/acemod/ACE3){:target="_blank"} +1. Take a look at the [open translation pull requests](https://github.com/acemod/ACE3/pulls?q=is%3Aopen+is%3Apr+label%3Aarea%2Ftranslations){:target="_blank"} to see if someone is already translating ACE3 into your language +1. In the top right corner press the `Fork` button +1. You are being redirected to your personal fork, a version that is hosted on your GitHub account (it says "yourUsername/ACE3") +1. Clone that fork to your PC (There are a lot of tools and tutorials how to do this (e.g. [GitHub for Windows](https://windows.github.com){:target="_blank"})) +1. Download [tabler](https://github.com/bux578/tabler/releases){:target="_blank"} and extract it somewhere +1. Open the tabler.exe and in the menu click "File > Open language files" +1. Point tabler to the cloned ACE3 directory +1. Start translating +1. When done go to the menu and click "File > Save language files" +1. Commit your changes to your local cloned repository +1. Sync (Push) your commit(s) to your fork +1. Create a Pull Request for your changes (The last three steps require some git knowledge, but there are a lot of tutorials out there) -[GitHub for Windows help](https://windows.github.com/help.html) +[GitHub for Windows help](https://windows.github.com/help.html){:target="_blank"} #### Community Translation Guides -**Spanish:** [https://gist.github.com/Legolasindar/bf8a3b09cb835f72501f](https://gist.github.com/Legolasindar/bf8a3b09cb835f72501f) +**Spanish:** [https://gist.github.com/Legolasindar/bf8a3b09cb835f72501f](https://gist.github.com/Legolasindar/bf8a3b09cb835f72501f){:target="_blank"} From 35d99ddc7e85fe47c8f6f714878f3595edc9271b Mon Sep 17 00:00:00 2001 From: diwako Date: Tue, 7 Jan 2020 20:35:22 +0100 Subject: [PATCH 032/194] Fix suppression for basic medication --- addons/medical_vitals/functions/fnc_updatePainSuppress.sqf | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/addons/medical_vitals/functions/fnc_updatePainSuppress.sqf b/addons/medical_vitals/functions/fnc_updatePainSuppress.sqf index 1015549d62..98906746e2 100644 --- a/addons/medical_vitals/functions/fnc_updatePainSuppress.sqf +++ b/addons/medical_vitals/functions/fnc_updatePainSuppress.sqf @@ -20,15 +20,16 @@ params ["_unit", "_painSupressAdjustment", "_deltaT", "_syncValue"]; -_unit setVariable [VAR_PAIN_SUPP, 0 max _painSupressAdjustment, _syncValue]; - // Handle continuous pain reduction private _pain = GET_PAIN(_unit); _unit setVariable [VAR_PAIN, 0 max (_pain - _deltaT / PAIN_FADE_TIME), _syncValue]; -// Handles simple medication if (isNil QEGVAR(medical_treatment,advancedMedication) || {!EGVAR(medical_treatment,advancedMedication)}) then { + // Handles simple medication private _painSupress = _unit getVariable [VAR_PAIN_SUPP, 0]; _painSupress = _painSupress - _deltaT / PAIN_SUPPRESSION_FADE_TIME; _unit setVariable [VAR_PAIN_SUPP, 0 max _painSupress, _syncValue]; +} else { + // Handle advanced medication + _unit setVariable [VAR_PAIN_SUPP, 0 max _painSupressAdjustment, _syncValue]; }; From e908345eaeaf7fdaf4a7b7fab98d1e1d6fc98391 Mon Sep 17 00:00:00 2001 From: Keewayz <40567461+Keewayz@users.noreply.github.com> Date: Tue, 7 Jan 2020 20:53:02 +0100 Subject: [PATCH 033/194] Additions to Polish Translation (#7374) * Addition to Polish translation *added missing polish translation up to adv_ballistic, adv_fatigue, ballistics, common, cookoff, explosives, grenades, medical_statemachine, medical_treatment, rearm, spectator, switchunits, weather * Next Addition to Polish translation #some missing stuff * Apply Code Review Suggestions Co-Authored-By: Filip Maciejewski Co-authored-by: PabstMirror Co-authored-by: Filip Maciejewski --- addons/advanced_ballistics/stringtable.xml | 2 +- addons/advanced_fatigue/stringtable.xml | 2 + addons/artillerytables/stringtable.xml | 4 ++ addons/ballistics/stringtable.xml | 29 +++++++++ addons/common/stringtable.xml | 6 ++ addons/cookoff/stringtable.xml | 2 + addons/csw/stringtable.xml | 62 +++++++++++++++++++ addons/dragon/stringtable.xml | 7 +++ addons/explosives/stringtable.xml | 2 + addons/grenades/stringtable.xml | 1 + addons/medical/stringtable.xml | 12 ++++ addons/medical_ai/stringtable.xml | 2 + addons/medical_blood/stringtable.xml | 5 ++ addons/medical_damage/stringtable.xml | 9 +++ addons/medical_feedback/stringtable.xml | 5 ++ addons/medical_gui/stringtable.xml | 19 +++++- addons/medical_statemachine/stringtable.xml | 9 +++ addons/medical_status/stringtable.xml | 3 + addons/medical_treatment/stringtable.xml | 67 +++++++++++++++++++-- addons/rearm/stringtable.xml | 2 + addons/repair/stringtable.xml | 4 ++ addons/spectator/stringtable.xml | 2 + addons/switchunits/stringtable.xml | 1 + addons/vehicles/stringtable.xml | 2 + addons/weather/stringtable.xml | 2 + optionals/tracers/stringtable.xml | 17 ++++++ 26 files changed, 270 insertions(+), 8 deletions(-) diff --git a/addons/advanced_ballistics/stringtable.xml b/addons/advanced_ballistics/stringtable.xml index be10999e87..e14c4e7a0f 100644 --- a/addons/advanced_ballistics/stringtable.xml +++ b/addons/advanced_ballistics/stringtable.xml @@ -20,7 +20,7 @@ Show Protractor - Pokaż kątomierz + Pokaż protraktor Mostra il rapportatore Показать транспортир Afficher le rapporteur diff --git a/addons/advanced_fatigue/stringtable.xml b/addons/advanced_fatigue/stringtable.xml index 00c9df3f73..f81e7f191e 100644 --- a/addons/advanced_fatigue/stringtable.xml +++ b/addons/advanced_fatigue/stringtable.xml @@ -231,6 +231,7 @@ Automaticky schovat lištu výdrže Fondu automatique de la barre d'endurance 自動的にスタミナバーを非表示 + Chowaj pasek wytrzymałości automatycznie Barra de stamina some automaticamente @@ -241,6 +242,7 @@ Upravuje průhlednost lišty v závislosti na současném stavu výdrže Règle la transparence de la barre en fonction de l'état d'endurance. スタミナの状態に応じて、自動的にバーの透明度を調整します。 + Dostosowuje przezroczystość paska na podstawie stanu wytrzymałości. Ajusta a transparência da barra baseado no status da stamina diff --git a/addons/artillerytables/stringtable.xml b/addons/artillerytables/stringtable.xml index 5039c21b19..f0627f840d 100644 --- a/addons/artillerytables/stringtable.xml +++ b/addons/artillerytables/stringtable.xml @@ -7,6 +7,7 @@ Tavola balistica per artigliria Dělostřelecké tabulky střelby 火砲射程 + Tabela Strzelnicza Table de tir d'artillerie Tabela de Artilharia Tabla de dsitancias de artillería @@ -17,6 +18,7 @@ Tavola balistica universale per artiglieria Univerzální dělostřelecká tabulka střelby 汎用の火砲用射程表 + Uniwersalna Tabela Strzelnicza Table de tir universelle pour l'artillerie. Tabela de Artilharia Universal Tabla de dsitancias universal de artillería @@ -59,6 +61,7 @@ Computer artiglieria disattivato Zakázat používání dělostřeleckého počítače 砲撃コンピュータ無効化 + Wyłączony Komputer Artyleryjski Désactiver l'ordinateur de tir Computador de Artilharia Desabilitado Computador de artillería deshabilitado @@ -69,6 +72,7 @@ Disattiva il computer artiglieria vanilla Zakázat používání dělostřeleckého počítače základní hry ゲームの砲撃コンピュータを無効化します。 + Wyłącza komputer artyleryjski wprowadzony w vanili Désactive l'ordinateur de tir vanilla. Desabilitar o computador de artilharia padrão Deshabilita el computador de artillería por defecto de Arma3 diff --git a/addons/ballistics/stringtable.xml b/addons/ballistics/stringtable.xml index 8f40170566..358a798495 100644 --- a/addons/ballistics/stringtable.xml +++ b/addons/ballistics/stringtable.xml @@ -9,6 +9,7 @@ #00 バックショット Chevrotine #00 #00 Broky velké + #00 Śrut #00 Chumbo @@ -18,6 +19,7 @@ #00 バックショット Chevrotine #00 #00 Broky velké - kalibr 8.38 mm + #00 Śrut #00 Chumbo @@ -27,6 +29,7 @@ #0 バックショット Chevrotine #0 #0 Broky velké + #0 Śrut #0 Chumbo @@ -36,6 +39,7 @@ #0 バックショット Chevrotine #0 #0 Broky velké - kalibr 8.1 mm + #0 Śrut #0 Chumbo @@ -45,6 +49,7 @@ #1 バックショット Chevrotine #1 #1 Broky velké + #1 Śrut #1 Chumbo @@ -54,6 +59,7 @@ #1 バックショット Chevrotine #1 #1 Broky velké - kalibr 7.6 mm + #1 Śrut #1 Chumbo @@ -63,6 +69,7 @@ #2 バックショット Chevrotine #2 #2 Broky velké + #2 Śrut #2 Chumbo @@ -72,6 +79,7 @@ #2 バックショット Chevrotine #2 #2 Broky velké - kalibr 6.9 mm + #2 Śrut #2 Chumbo @@ -81,6 +89,7 @@ #3 バックショット Chevrotine #3 #3 Broky velké + #3 Śrut #3 Chumbo @@ -90,6 +99,7 @@ #3 バックショット Chevrotine #3 #3 Broky velké - kalibr 6.4 mm + #3 Śrut #3 Chumbo @@ -99,6 +109,7 @@ #4 バックショット Chevrotine #4 #4 Broky velké + #4 Śrut #4 Chumbo @@ -108,6 +119,7 @@ #4 バックショット Chevrotine #4 #4 Broky velké - kalibr 6.1 mm + #4 Śrut #4 Chumbo @@ -117,6 +129,7 @@ #7 バックショット Grenaille No.4 #7 Broky malé + #7 Śrut Drobny #7 Birdshot @@ -125,6 +138,7 @@ #7 バックショット Grenaille No.4 #7 Broky malé - kalibr 2.54 mm + #7 Śrut Drobny (Birdshot) 12 Gauge 2Rnd #00 Buckshot @@ -133,6 +147,7 @@ 12 ゲージ 2 発入り #00 バックショット 2 balles cal. 12 Chevrotine #00 2x #00 Broky velké (kalibr 8.38 mm) + 12 Gauge 2 naboje #00 Śrut Chumbo #00 Calibre Doze 2 Tiros @@ -142,6 +157,7 @@ 12 ゲージ 2 発入り #0 バックショット 2 balles cal. 12 Chevrotine #0 2x #0 Broky velké (kalibr 8.1 mm) + 12 Gauge 2 naboje #0 Śrut Chumbo #0 Calibre Doze 2 Tiros @@ -151,6 +167,7 @@ 12 ゲージ 2 発入り #1 バックショット 2 balles cal. 12 Chevrotine #1 2x #1 Broky velké (kalibr 7.6 mm) + 12 Gauge 2 naboje #1 Śrut Chumbo #1 Calibre Doze 2 Tiros @@ -160,6 +177,7 @@ 12 ゲージ 2 発入り #2 バックショット 2 balles cal. 12 Chevrotine #2 2x #2 Broky velké (kalibr 6.9 mm) + 12 Gauge 2 naboje #2 Śrut Chumbo #2 Calibre Doze 2 Tiros @@ -169,6 +187,7 @@ 12 ゲージ 2 発入り #3 バックショット 2 balles cal. 12 Chevrotine #3 2x #3 Broky velké (kalibr 6.4 mm) + 12 Gauge 2 naboje #3 Śrut Chumbo #3 Calibre Doze 2 Tiros @@ -178,6 +197,7 @@ 12 ゲージ 2 発入り #4 バックショット 2 balles cal. 12 Chevrotine #4 2x #4 Broky velké (kalibr 6.1 mm) + 12 Gauge 2 naboje #4 Śrut Chumbo #4 Calibre Doze 2 Tiros @@ -187,6 +207,7 @@ 12 ゲージ 2 発入り #7 バックショット 2 balles cal. 12 Grenaille No.4 2x #7 Broky malé (kalibr 2.54 mm) + 12 Gauge 2 naboje #7 Śrut Chumbo #7 Calibre Doze 2 Tiros @@ -196,6 +217,7 @@ 12 ゲージ 6 発入り #00 バックショット 6 balles cal. 12 Chevrotine #00 6x #00 Broky velké (kalibr 8.38 mm) + 12 Gauge 6 naboi #00 Śrut Chumbo #00 Calibre Doze 6 Tiros @@ -205,6 +227,7 @@ 12 ゲージ 6 発入り #0 バックショット 6 balles cal. 12 Chevrotine #0 6x #0 Broky velké (kalibr 8.1 mm) + 12 Gauge 6 naboi #0 Śrut Chumbo #0 Calibre Doze 6 Tiros @@ -214,6 +237,7 @@ 12 ゲージ 6 発入り #1 バックショット 6 balles cal. 12 Chevrotine #1 6x #1 Broky velké (kalibr 7.6 mm) + 12 Gauge 6 naboi #1 Śrut Chumbo #1 Calibre Doze 6 Tiros @@ -223,6 +247,7 @@ 12 ゲージ 6 発入り #2 バックショット 6 balles cal. 12 Chevrotine #2 6x #2 Broky velké (kalibr 6.9 mm) + 12 Gauge 6 naboi #2 Śrut Chumbo #2 Calibre Doze 6 Tiros @@ -232,6 +257,7 @@ 12 ゲージ 6 発入り #3 バックショット 6 balles cal. 12 Chevrotine #3 6x #3 Broky velké (kalibr 6.4 mm) + 12 Gauge 6 naboi #3 Śrut Chumbo #3 Calibre Doze 6 Tiros @@ -241,6 +267,7 @@ 12 ゲージ 6 発入り #4 バックショット 6 balles cal. 12 Chevrotine #4 6x #4 Broky velké (kalibr 6.1 mm) + 12 Gauge 6 naboi #4 Śrut Chumbo #4 Calibre Doze 6 Tiros @@ -250,6 +277,7 @@ 12 ゲージ 6 発入り #7 バックショット 6 balles cal. 12 Grenaille No.4 6x #7 Broky malé (kalibr 2.54 mm) + 12 Gauge 6 naboi #7 Śrut 12 Gauge 15Rnd #00 Buckshot @@ -258,6 +286,7 @@ 12 ゲージ 15 発入り #00 バックショット 15 balles cal. 12 Chevrotine #00 15x #00 Broky velké (kalibr 8.38 mm) + 12 Gauge 15 naboi #00 Śrut Chumbo #00 Calibre Doze 15 Tiros diff --git a/addons/common/stringtable.xml b/addons/common/stringtable.xml index 1407a74461..b12f9f4c82 100644 --- a/addons/common/stringtable.xml +++ b/addons/common/stringtable.xml @@ -481,6 +481,7 @@ Définit l'action à effectuer si un joueur n'a pas les bons PBOs. 設定當玩家有錯誤的PBO檔案時要如何處置。 Nastavuje jakou akci provést pokud hráč nemá správné PBO. + Określa akcję, która ma być podjęta, jeśli gracz nie ma właściwych PBO. プレイヤーが不正規の PBO を所持している場合の動作を決定します。 @@ -503,6 +504,7 @@ Vérifie tous les addons, même ceux qui ne sont pas liés à ACE. 檢查全部的插件而非只有ACE。 Zkontrolovat všechny addony a ne jenom ACE. + Sprawdź wszystkie dodatki, nie tylko ACE. ACE のみならず、全てのアドオンを検査します。 @@ -525,6 +527,7 @@ Permet de définir une liste d'addons autorisés systématiquement. 定義哪些插件是允許使用的。 Nastavte seznam addonů, které jsou povolené. + Zdefiniuj listę niezależnie od dozwolonych dodatków. 許可するアドオンを定義します。 @@ -1011,6 +1014,7 @@ 一直 Sempre Vždy + Zawsze Anywhere @@ -1100,6 +1104,7 @@ 確認 Conferma Potvrdit + Potwierdź Never @@ -1112,6 +1117,7 @@ 從不 Mai Nikdy + Nigdy Vehicles only diff --git a/addons/cookoff/stringtable.xml b/addons/cookoff/stringtable.xml index 445b3167d4..45bf17620f 100644 --- a/addons/cookoff/stringtable.xml +++ b/addons/cookoff/stringtable.xml @@ -25,6 +25,7 @@ 傷害控制及炮塔效果 Manovrabilità danneggiata ed effetti torretta Poškodit ovládání a efekty věže + Obsługa obrażeń i efekty wieży Changes damage handling for cook off and turret explosion effects @@ -36,6 +37,7 @@ 更改殉爆以及炮塔爆炸之傷害控制 Modifica la gestione dei danni per gli effetti di esplosione della torretta e danneggiamenti Změní poškození ovládání a efekty výbuchu veže + Zmienia obsługę obrażeń podczas samozapłonu i eksplozji wieży Wreck (Turret) diff --git a/addons/csw/stringtable.xml b/addons/csw/stringtable.xml index 2c79784a9d..33fd652cf7 100644 --- a/addons/csw/stringtable.xml +++ b/addons/csw/stringtable.xml @@ -9,6 +9,7 @@ 班組支援武器 Armi servite dall'equipaggio Posádkou obsluhované zbraně (CSW) + Broń ciężka (CSW) Place Tripod @@ -18,6 +19,7 @@ 設置三腳架 Piazza bipode Položit trojnožku + Rozłóż Trójnóg Disassemble @@ -81,6 +83,7 @@ 聯結至 %1 Collega %1 Spojit %1 + Połącz %1 Advanced assembly @@ -90,6 +93,7 @@ 進階組裝 Montaggio avanzato Pokročilé skládání + Zaawansowane składanie Use ace for Assemble/Disassemble of supported static weapons. Loaded ammo is reduced to a single magazine. @@ -99,6 +103,7 @@ 使用ACE來組裝/拆解固定型武器。上膛的限制為單個彈匣。 Utilizzare ace per l'Assemblaggio/smontaggio di armi statiche supportate. Le munizioni cariche sono ridotte ad un solo caricatore. Použít ACE pro složení/rozložení podporovaných statických zbraní. Nabitá munice je snížená na jeden zásobník. + Użyj ACE do składania/rozkładania broni statycznych. Załadowana amunicja zostaje zredukowana do jednego magazynku. Save extra ammo @@ -108,6 +113,7 @@ 保存額外彈藥 Risparmiare munizioni extra Uložit munici navíc. + Zapisz dodatkową amunicje Store extra magazines next to static weapon @@ -117,6 +123,7 @@ 在固定型武器旁存放額外彈匣 Conservare i caricatori extra accanto all'arma statica Ukládat munici navíc vedle statické zbraně. + Dodatkowe magazynki przechowuj obok broni statycznej Ammo handling @@ -126,6 +133,7 @@ 彈藥處理 Gestione delle munizioni Manipulace s municí + Obsługa amunicji Allow loading and unloading magazines @@ -135,6 +143,7 @@ 允許裝填或卸載彈匣 Permettere il carico e lo scarico dei caricatori Povolit nabíjení a vybíjení zásobníků. + Zezwalaj na ładowanie i rozładowywanie magazynków Interaction Time Coefficent @@ -144,6 +153,7 @@ 互動時間係數 Coefficente per il tempo di interazione Koeficient času interakce + Współczynnik czasu interakcji Scales time required to assemble and reload static weapons @@ -153,6 +163,7 @@ 設置組裝及裝填組裝固定型武器 Tempo necessario per assemblare e ricaricare le armi statiche Škáluje čas potřebný ke skládání a přebíjení statických zbraní. + Definiuje czas potrzebny do złożenia i przeładowania broni statycznej Drag tripods after deploying @@ -162,6 +173,7 @@ 在佈置三腳架後拖拉 Trascinare i treppiedi dopo lo schieramento Tahat trojnožku po položení + Przeciągnij statyw po rozmieszczeniu After deploying a tripod, start dragging it to a precise location @@ -171,6 +183,7 @@ 在部署三腳架後,開始拖動它使其在你所要的精準位置 Dopo aver posizionato un treppiede, iniziate a trascinarlo in una posizione precisa Po položení trojnožky začít automaticky tahání pro lepší polohu. + Po rozłożeniu trójnogu zacznij od przeciągania go w określone miejsce Pickup Tripod @@ -180,6 +193,7 @@ 撿起三腳架 Recupero treppiede Složit trojnožku + Podnieś Trójnóg Mount Weapon @@ -189,6 +203,7 @@ 裝載武器 Montare l'arma Připevnit zbraň + Zamontuj Broń Disassembling Gun... @@ -198,6 +213,7 @@ 拆裝武器中... Smontaggio arma... Rozkládám zbraň... + Rozkładanie Broni... Assembling Gun... @@ -207,6 +223,7 @@ 組裝武器中... Montaggio arma... Skládám zbraň... + Składanie Broni... Picking Up Tripod... @@ -216,6 +233,7 @@ 撿起三腳架... Recupero treppiede... Zvedám trojnožku... + Podnoszenie Trójnogu... Placing Tripod... @@ -225,6 +243,7 @@ 部署三腳架... Piazzare treppiede... Pokládám trojnožku... + Rozmieszczanie Trójnogu... Enable CSW @@ -234,6 +253,7 @@ 啟用CSW(班用支援武器) Attiva CSW Povolit posádkou obsluhované zbraně (CSW) + Włącz CSW Enables Crew Served ability on this weapon @@ -243,6 +263,7 @@ 對此武器啟用班組支援能力 Abilita l'abilità dell'equipaggio su quest'arma Zapne CSW funkce na této zbrani + Włącza opcje systemu CSW na tej broni Enabled and Leave Weapon Empty @@ -252,6 +273,7 @@ 啟用並不裝填武器 Abilitato e lascia l'arma vuota Povolit a nechat zbraň prázdnou + Włącz i pozostaw broń pustą Tripod @@ -274,6 +296,7 @@ [CSW] 固定型 "迷你長釘"導彈發射器(對地) [CSW] Static Mini-Spike Launcher (AT) [CSW] Statický raketomet Mini-Spike (protitankový) + [CSW] Mini-Spike Przeciwpancerny pocisk rakietowy [CSW] Static Mini-Spike Launcher (AA) @@ -283,6 +306,7 @@ [CSW] 固定型 "迷你長釘"導彈發射器(對空) [CSW] Static Mini-Spike Launcher (AA) [CSW] Statický raketomet Mini-Spike (protiletadlový) + [CSW] Mini-Spike Przeciwlotniczy pocisk rakietowy [CSW] Static XM312 Gun @@ -292,6 +316,7 @@ [CSW] 固定型 XM312重機槍 [CSW] Static XM312 Gun [CSW] Statická zbraň XM312 + [CSW] Statyczny karabin maszynowy XM312 [CSW] Static XM312 Gun (Autonomous) @@ -301,6 +326,7 @@ [CSW] 固定型 XM312重機槍(自主型) [CSW] Static XM312 Gun (Autonomo) [CSW] Statická zbraň XM312 (autonomická) + [CSW] Statyczny karabin maszynowy XM312 (Dron) [CSW] Static XM307 Gun @@ -310,6 +336,7 @@ [CSW] 固定型XM307榴彈機槍 [CSW] Static XM307 Gun [CSW] Statická zbraň XM307 + [CSW] Statyczny granatnik automatyczny XM307 [CSW] Static XM307 Gun (Autonomous) @@ -319,6 +346,7 @@ [CSW] 固定型 XM307榴彈機槍(自主型) [CSW] Static XM307 Gun (Autonomo) [CSW] Statická zbraň XM307 (autonomická) + [CSW] Statyczny granatnik automatyczny XM307 (Dron) [CSW] 12.7x108mm HMG Belt @@ -328,6 +356,7 @@ [CSW]12.7x108毫米 重機槍彈鏈 [CSW] 12.7x108mm HMG Belt [CSW] Pás 12.7×108mm pro těžký kulomet + [CSW] Taśma 12.7x108mm CKM [CSW] 12.7x99mm HMG Belt @@ -337,6 +366,7 @@ [CSW]12.7x99毫米 重機槍彈鏈 [CSW] 12.7x99mm HMG Belt [CSW] Pás 12.7×99mm pro těžký kulomet + [CSW] Taśma 12.7x99mm CKM [CSW] 12.7x99mm Tracer HMG Belt (Red) @@ -346,6 +376,7 @@ [CSW] 12.7x99毫米 重機槍曳光彈鏈(紅色) [CSW] 12.7x99mm Tracer HMG Belt (Red) [CSW] Pás 12.7×99mm pro těžký kulomet (červená stopovka) + [CSW] Taśma 12.7x99mm CKM Smugowa (Czerwona) [CSW] 12.7x99mm Tracer HMG Belt (Green) @@ -355,6 +386,7 @@ [CSW] 12.7x99毫米 重機槍曳光彈鏈(綠色) [CSW] 12.7x99mm Tracer HMG Belt (Green) [CSW] Pás 12.7×99mm pro těžký kulomet (zelená stopovka) + [CSW] Taśma 12.7x99mm CKM Smugowa (Zielona) [CSW] 12.7x99mm Tracer HMG Belt (Yellow) @@ -364,6 +396,7 @@ [CSW] 12.7x99毫米 重機槍曳光彈鏈(黃色) [CSW] 12.7x99mm Tracer HMG Belt (Yellow) [CSW] Pás 12.7×99mm pro těžký kulomet (žlutá stopovka) + [CSW] Taśma 12.7x99mm CKM Smugowa (Żółta) [CSW] 20mm Grenade GMG Belt @@ -373,6 +406,7 @@ [CSW]20毫米 榴彈 榴彈機槍彈鏈 [CSW] 20mm Grenade GMG Belt [CSW] Pás 20mm granátů pro granátomet + [CSW] Taśma 20mm do granatnika M3 Tripod @@ -382,6 +416,7 @@ M3 三腳架 M3 Tripod M3 trojnožka + Trójnóg M3 [CSW] 6P57 Deployable Tripod @@ -391,6 +426,7 @@ [CSW] 6P57 部署型三腳架 [CSW] 6P57 Deployable Tripod [CSW] 6P57 trojnožka + [CSW] Trójnóg Rozkładany 6P57 [CSW] 6P57 Deployable Tripod (Low) @@ -400,6 +436,7 @@ [CSW] 6P57 部署型(低位) [CSW] 6P57 Deployable Tripod (Low) [CSW] 6P57 trojnožka (nízká) + [CSW] Trójnóg Rozkładany 6P57 (Niski) [CSW] M220 Deployable Tripod @@ -409,6 +446,7 @@ [CSW] M220 部署型三腳架 [CSW] M220 Deployable Tripod [CSW] M220 trojnožka + [CSW] Trójnóg Rozkładany M220 [CSW] SAG-30 Deployable Tripod @@ -418,6 +456,7 @@ [CSW] SAG-30 部署型三腳架 [CSW] SAG-30 Deployable Tripod [CSW] SAG-30 trojnožka + [CSW] Trójnóg Rozkładany SAG-30 6P57 Tripod @@ -427,6 +466,7 @@ 6P57 三腳架 6P57 Tripod 6P57 trojnožka + Trójnóg 6P57 SAG-30 Tripod @@ -436,6 +476,7 @@ SAG-30 三腳架 SAG-30 Tripod SAG-30 trojnožka + Trójnóg SAG-30 M220 Tripod @@ -445,6 +486,7 @@ M220 三腳架 M220 Tripod M220 trojnožka + Trójnóg M220 [CSW] M3 Deployable Tripod @@ -454,6 +496,7 @@ [CSW] M3 部屬型三腳架 [CSW] M3 Deployable Tripod [CSW] M3 trojnožka + [CSW] Trójnóg Rozkładany M3 [CSW] M3 Deployable Tripod (Low) @@ -463,6 +506,7 @@ [CSW] M3 部署型三腳架(低位) [CSW] M3 Deployable Tripod (Low) [CSW] M3 trojnožka (nízká) + [CSW] Trójnóg Rozkładany M3 (Niski) [CSW] Mortar Baseplate @@ -472,6 +516,7 @@ [CSW] 迫擊炮基座 [CSW] Mortar Baseplate [CSW] Podstavec pro minomet + [CSW] Podstawa Moździerza Mortar Baseplate @@ -481,6 +526,7 @@ 迫擊炮基座 Mortar Baseplate Podstavec pro minomet + Podstawa Moździerza [CSW] Mk6 Mortar Tube @@ -490,6 +536,7 @@ [CSW] Mk6 迫擊炮炮管 [CSW] Mk6 Mortar Tube [CSW] Minomet Mk6 hlaveň + [CSW] Rura Moździerza Mk6 [CSW] M252 Tube Bag @@ -499,6 +546,7 @@ [CSW] M252 炮管袋 [CSW] M252 Tube Bag [CSW] M252 minometná hlaveň v pouzdře + [CSW] Torba na M252 [CSW] M2 Gun Bag @@ -508,6 +556,7 @@ [CSW] M2槍械袋 [CSW] M2 Gun Bag [CSW] M2 zbraň v pouzdře + [CSW] Torba na M2 [CSW] MK19 Gun Bag @@ -517,6 +566,7 @@ [CSW] Mk19槍械袋 [CSW] MK19 Gun Bag [CSW] MK19 zbraň v pouzdře + [CSW] Torba na MK19 [CSW] BGM-71 TOW Launcher Bag @@ -526,6 +576,7 @@ [CSW] BGM-71 拖式飛彈發射器袋 [CSW] BGM-71 TOW Launcher Bag [CSW] BGM-71 TOW raketomet v pouzdře + [CSW] Torba na BGM-71 TOW [CSW] DSHK Gun Bag @@ -535,6 +586,7 @@ [CSW]DShK 槍械袋 [CSW] DSHK Gun Bag [CSW] DSHK zbraň v pouzdře + [CSW] Torba na DSzK [CSW] 2B14 Tube Bag @@ -544,6 +596,7 @@ [CSW] 2B14 炮管袋 [CSW] 2B14 Tube Bag [CSW] 2B14 minometná hlaveň v pouzdře + [CSW] Torba na 2B14 [CSW] NSV Gun Bag @@ -553,6 +606,7 @@ [CSW] NSV 槍械袋 [CSW] NSV Gun Bag [CSW] NSV zbraň v pouzdře + [CSW] Torba na NSV [CSW] KORD Gun Bag @@ -562,6 +616,7 @@ [CSW] KORD 槍械袋 [CSW] KORD Gun Bag [CSW] KORD zbraň v pouzdře + [CSW] Torba na KORD [CSW] AGS-30 Gun Bag @@ -571,6 +626,7 @@ [CSW] AGS-30 槍械袋 [CSW] AGS-30 Gun Bag [CSW] ASG-30 zbraň v pouzdře + [CSW] Torba na AGS-30 [CSW] 9k115 Metis Launcher Bag @@ -580,6 +636,7 @@ [CSW] 9k115 麥士蒂索人發射器袋 [CSW] 9k115 Metis Launcher Bag [CSW] 9k115 Metis raketomet v pouzdře + [CSW] Torba na 9k115 Metis [CSW] 9m113 Kornet Launcher @@ -589,6 +646,7 @@ [CSW] 9M113 短號發射器 [CSW] 9m113 Kornet Launcher [CSW] 9m113 Kornet raketomet + [CSW] Wyrzutnia 9m113 Kornet SPG-9 Tripod @@ -598,6 +656,7 @@ SPG-9 三腳架 SPG-9 Tripod SPG-9 trojnožka + Trójnóg SPG-9 [CSW] SPG-9 Deployable Tripod @@ -607,6 +666,7 @@ [CSW] SPG-9 部署型三腳架 [CSW] SPG-9 Deployable Tripod [CSW] SPG-9 trojnožka + [CSW] Trójnóg rozkładany SPG-9 [CSW] SPG-9 Launcher Bag @@ -616,6 +676,7 @@ [CSW] SPG-9 發射器袋 [CSW] SPG-9 Launcher Bag [CSW] SPG-9 raketomet v pouzdře + [CSW] Torba na SPG-9 [CSW] SPG-9M Launcher Bag @@ -625,6 +686,7 @@ [CSW] SPG-9M 發射器袋 [CSW] SPG-9M Launcher Bag [CSW] SPG-9M raketomet v pouzdře + [CSW] Torba na SPG-9M diff --git a/addons/dragon/stringtable.xml b/addons/dragon/stringtable.xml index 8b36c43e4f..e94ac1f806 100644 --- a/addons/dragon/stringtable.xml +++ b/addons/dragon/stringtable.xml @@ -9,6 +9,7 @@ [CSW] M47龍式 [CSW] M47 Super-Dragon [CSW] M47 Super-Dragon + [CSW] M47 Super-Dragon [CSW] M47 Super-Dragon @@ -19,6 +20,7 @@ M47 龍式 M47 Super-Dragon M47 Super-Dragon + M47 Super-Dragon M47 Super-Dragon @@ -29,6 +31,7 @@ 裝上瞄具 Monta mirino Připojit puškohled + Dołącz Optykę Detach Sight @@ -38,6 +41,7 @@ 拆下瞄具 Smonta mirino Odpojit puškohled + Odczep Optykę SU-36/P Daysight @@ -47,6 +51,7 @@ SU-36/P 日間瞄具 SU-36/P Daysight SU-36/P denní puškohled + SU-36/P Celownik dzienny SU-36/P Daysight @@ -57,6 +62,7 @@ 一個輕量,便宜適合日間行動使用的廉價瞄具。內含全套制導電腦系統 Una luce,un mirino usato per le operazioni diurne.Contiene il computer di guida per l'intero sistema Lehký a levný puškohled pro použití za denního světla. Obsahuje navigační počítač pro celý systém. + Lekki, tani celownik używany do działania w trakcie dnia. Zawiera komputer naprowadząjący dla całego systemu A Wire-Guided SACLOS missile with a unique flight characteristic @@ -66,6 +72,7 @@ 一個有線制導半自動指令型飛彈並有著獨特的飛航動作 Un missile SACLOS filo-guidato con uniche caratterische di volo Drátem naváděná SACLOS raketa s unikátními letovými vlastnostmi + Naprowadzany przewodowo rakietowy pocisk SACLOS o unikalnej charakterystyce lotu diff --git a/addons/explosives/stringtable.xml b/addons/explosives/stringtable.xml index 14bc5f6f95..bfecfc87f7 100644 --- a/addons/explosives/stringtable.xml +++ b/addons/explosives/stringtable.xml @@ -1075,6 +1075,7 @@ 是EOD è EOD Je specilista na výbušniny (EOD) + Jest EOD Controls whether the unit is an explosive specialist. @@ -1084,6 +1085,7 @@ 控制該單位是否是爆裂物處置專家 Controlla se l'unità è uno specialista di esplosivi. Určuje jestli je jednotka specialista na výbušniny. + Kontroluje, czy jednostka jest specjalistą od materiałów wybuchowych. diff --git a/addons/grenades/stringtable.xml b/addons/grenades/stringtable.xml index 23f643cc2e..36d91ae72a 100644 --- a/addons/grenades/stringtable.xml +++ b/addons/grenades/stringtable.xml @@ -155,6 +155,7 @@ CTS 7290 9- Flash bang Grenade CTS 7290 9 ranný oslepující granát CTS 7290 9-bang 閃光手榴弾 + CTS 7290 9-bang Granat Hukowy CTS 7290 9-bang Grenade incapacitante Granada de Luz CTS 7290 9-Explosões diff --git a/addons/medical/stringtable.xml b/addons/medical/stringtable.xml index f810b49280..76e90a1ea6 100644 --- a/addons/medical/stringtable.xml +++ b/addons/medical/stringtable.xml @@ -27,6 +27,7 @@ 從無意識中甦醒機率 Chance di rialzarsi Pravděpodobnost probuzení se z bezvědomí + Szansa na wybudzenie nieprzytomnego Posibilidad de recuperar la conciencia @@ -39,6 +40,7 @@ 生命跡象穩定的單位從無意識狀態中甦醒的機率(每十五秒確認一次) La probabilità che un'unità con i segni vitali stabili si risvegli dall'incoscienza (controllata ogni 15 secondi). Pravděpodobnost, že se jednotka se stabilními životními známkami probudí z bezvědomí (zkoušeno každých 15 vteřin). + Prawdopodobieństwo, że jednostka ze stabilnymi parametrami życiowymi obudzi się z nieprzytomności (sprawdzane co 15 sekund). La probabilidad de que una unidad estabilizada recupere la conciencia y se levante (se comprueba cada 15 segundos) @@ -48,6 +50,7 @@ L'épinéphrine augmente les chances de réveil L'epinefrina aumenta la possibilità di rialzarsi Epinefrin zvyšuje šanci na probuzení + Szansa na wybudzenie po użyciu Epinefryny Epinefrina Aumenta a chance de acordar Epinefrina, aumenta la posibilidad de despertar @@ -58,6 +61,7 @@ Augmente la probabilité qu'un patient inconscient se réveille spontanément lorsqu'il a de l'épinéphrine dans son système sanguin. Aumenta la frequenza dei controlli al risveglio spontaneo quando il paziente ha l'Epinefrina nel suo corpo Zvyšuje jak často je proveden test na probuzení z bezvědomí pokud má pacient Epinefrin ve svém krevním oběhu. + Zwiększa częstotliwość spontanicznych wybudzeń, gdy pacjent ma epinefrynę w swoim organizmie. Aumenta o quão frequentemente checagens de acordar acontecem quando o paciente possui epinefrina no seu sistema Incrementa con que frecuencia se comprueba el despertar cuando el paciente tiene epinefrina en su sistema @@ -70,6 +74,7 @@ 跛腳 Zoppicare Kulhání + Kuśtykanie Cojera @@ -79,6 +84,7 @@ Permet de définir si les plaies ouvertes ou pansées font boiter une personne. Controlla se le ferite aperte o bendate fanno zoppicare una persona. Nastavuje zda otevřená nebo zavázaná zranění způsobují kulhání. + Kontroluje, czy otwarte lub zabandażowane rany powodują utykanie jednostki. Controla se ferimentos abertos ou enfaixados causam a pessoa a mancar Controla si las heridas abiertas o vendadas hacen que una persona cojee. @@ -91,6 +97,7 @@ 傷口裂開時跛腳 Zoppo per via delle ferite aperte Kulhat s otevřeným zraněním + Kuśtykanie przy otwartych ranach Cojera en heridas abiertas @@ -102,6 +109,7 @@ 使裂開或者包紮過的傷口讓人跛腳 Zoppicare su ferite aperte o bendate Kulhat s otevřeným i zavázaným zraněním + Kuśtykanie przy otwartych ranach lub zabandażowanych ranach Cojera en heridas abiertas o vendadas @@ -113,6 +121,7 @@ 骨折 Fratture Zlomeniny + Złamania Fracturas @@ -122,6 +131,7 @@ Permet de définir le niveau d'efficacité des attelles pour le traitement des fractures.\nSi l'option est désactivée, les blessures ne causent pas de fractures. Controlla l'effetto dell'utilizzo di stecche per curare le fratture. Quando disabilitato, le lesioni non causano fratture. Nastavuje efekt dlahy při léčení zlomenin.\nPokud je tato možnost vypnuta, zranění nebudou způsobovat zlomeniny. + Kontroluje efekt użycia szyn do leczenia złamań.\n Po wyłączeniu obrażenia nie powodują złamań. Controla o efeito de uso de talas para tratar fraturas. \nQunado desabilitado, ferimentos não causam fraturas. Controla el efecto del uso de férulas para tratar fracturas. \n Cuando está desactivado, las lesiones no causan fracturas. @@ -134,6 +144,7 @@ 固定板完全治癒骨折 Le gessature curano al massimo le fratture Dlahy kompletně léčí zlomeniny + Szyny leczą zupełnie złamania Férulas sanan completamente las fracturas @@ -145,6 +156,7 @@ 固定版能治癒骨折,但無法奔跑 Le gessature curano, ma non puoi correre Dlahy léčí, ale zněmožňují sprintování + Szyny leczą, ale uniemożliwiają sprint Las férulas sanan, pero no pueden correr diff --git a/addons/medical_ai/stringtable.xml b/addons/medical_ai/stringtable.xml index 9dab7da713..63d2b9ed22 100644 --- a/addons/medical_ai/stringtable.xml +++ b/addons/medical_ai/stringtable.xml @@ -11,6 +11,7 @@ AI醫療兵 Medico AI Zdravotnická AI + Medyk AI Médico para IA @@ -23,6 +24,7 @@ AI對於受傷及無意識單位會有所反應 L'intelligenza artificiale risponderà a lesioni e perdita di coscienza UI reaguje na zranění a bezvědomí + AI zareaguje na obrażenia i utratę przytomności La IA responderá a heridas e inconsciencia diff --git a/addons/medical_blood/stringtable.xml b/addons/medical_blood/stringtable.xml index 4a64e9d9c8..ac21aeb331 100644 --- a/addons/medical_blood/stringtable.xml +++ b/addons/medical_blood/stringtable.xml @@ -38,6 +38,7 @@ Permitir a criação de gotas de sangue quando as unidades recebem ferimentos ou estão sangrando. 啟用出血效果當單位失血或受傷的時候。 Povoluje vytváření kapek krve na zemi když jednotka krvácí nebo utrpí zranění. + Umożliwia tworzenie śladów krwi, gdy jednostki krwawią lub otrzymują obrażenia. Habilita la creación de sangrecuando la unidad está sangrando o recibe daño @@ -49,6 +50,7 @@ 最大血跡數 Oggetti Sangue al Massimo Maximum objektů krve + Maksymalna ilość śladów krwi Máxima cantidad de objetos de sangre @@ -60,6 +62,7 @@ 設定最大可存在的血跡數量。太極端的數量會導致幀數低落或卡頓 Imposta il numero massimo di gocce di sangue che possono essere depositate, quantità eccessive possono causare del lag di FPS. Nastavuje maximum objektů krve na zemi, příliš mnoho může způsobit pokles FPS + Definiuje maksymalną ilość śladów krwi, które mogą zostać stworzone, nadmierne ilości mogą powodować spadki FPS. Fija el límite de objetos de sangre que aparecerán, cantidades excesivas pueden causar caídas de FPS @@ -71,6 +74,7 @@ 血跡時長 Vita del sangue Životnost krve + Czas trwania śladów krwi Duración de la sangre @@ -82,6 +86,7 @@ 控制血跡在地上的時長 Controlla la durata degli oggetti con gocce di sangue. Nastavuje jak dlouho objekty krve na zemi vydrží. + Kontroluje czas trwania śladów krwi. Controla el tiempo de vida que tendrán los objetos de sangre diff --git a/addons/medical_damage/stringtable.xml b/addons/medical_damage/stringtable.xml index 728d33f5cb..19e3ce0d07 100644 --- a/addons/medical_damage/stringtable.xml +++ b/addons/medical_damage/stringtable.xml @@ -10,6 +10,7 @@ 玩家重擊承受量 Soglia danni critici del giocatore Kritická míra poškození pro hráče + Próg Obrażeń Krytycznych Gracza Límite de daño crítico al jugador @@ -21,6 +22,7 @@ 設定玩家在無意識前能承受多少傷害。 Imposta la quantità di danno che un giocatore può ricevere prima di perdere conoscenza. Nastavuje kolik poškození hráč může obdržet než upadne do bezvědomí. + Definiuje ilość obrażeń jaką może przyjąć gracz przed straceniem przytomności. Fijar la cantidad de daño que un jugador puede recivir antes de caer inconsciente @@ -32,6 +34,7 @@ AI重擊承受量 Soglia dei danni critici dell AI Kritická míra poškození pro AI + Próg Obrażeń Krytycznych AI Límite de daño crítico de la IA @@ -43,6 +46,7 @@ 設定AI在無意識之前能承受多少傷害 Imposta la quantità di danno che un'unità AI può ricevere prima di perdere conoscenza. Nastavuje kolik poškození AI může obdržet než upadne do bezvědomí. + Definiuje ilość obrażeń jaką może przyjąć AI przed straceniem przytomności Fijar la cantidad de daño que la IA puede recivir antes de caer inconsciente @@ -532,6 +536,7 @@ Cause de blessure mortelle Fonte del danno fatale Zdroj smrtelné škody + Źródło obrażeń krytycznych Fonte de Dano Fatal Origen de daño fatal @@ -542,6 +547,7 @@ Determina quali danni possono essere fatali Détermine le type de blessures pouvant être fatales. Nastavuje jaké poškození může být smrtelné + Określa jakie obrażenia mogą być śmiertelne Determina qual dano pode ser fatal Determina qué daño puede ser fatal @@ -552,6 +558,7 @@ Grosses blessures sur organes vitaux Solo grandi colpi agli organi vitali Pouze zásahy do životně důležitých orgánů + Tylko duże trafienia w ważne narządy Apenas danos largos a órgãos vitais Solo grandes heridas en organos vitales @@ -562,6 +569,7 @@ Somme des traumatismes Somma dei traumi Celkové množství úrazů + Wiele Urazów Soma do trauma Suma de traumatismos @@ -572,6 +580,7 @@ Les deux o Kterýkoliv ze dvou + Zarówno Ou Ambos diff --git a/addons/medical_feedback/stringtable.xml b/addons/medical_feedback/stringtable.xml index dae2f8f2a8..d132c6903d 100644 --- a/addons/medical_feedback/stringtable.xml +++ b/addons/medical_feedback/stringtable.xml @@ -11,6 +11,7 @@ 視覺回饋 Commenti Zpětná vazba + Informacje Zwrotne Reacción @@ -37,6 +38,7 @@ 選擇哪一個視覺效果用於回饋疼痛 Seleziona il tipo di effetto del dolore usato. Nastavuje který efekt bolesti bude používán. + Wybiera rodzaj efektu bólu. Selecciona el tipo de efecto de dolor @@ -49,6 +51,7 @@ 白光閃爍 Bianco lampeggiante Blikání bílé barvy + Miganie na biało Destello blanco @@ -61,6 +64,7 @@ 脈動模糊 Sfocatura pulsante Pulzující rozmazání + Pulsujące rozmycie Enborronamiento pulsante @@ -86,6 +90,7 @@ Juste un fort effet douloureux Solo elevato effetto di dolore Pouze efekt vysoké bolesti + Tylko efekt mocnego bólu Apenas efeito de dor alta Solo efecto de dolor fuerte diff --git a/addons/medical_gui/stringtable.xml b/addons/medical_gui/stringtable.xml index 98bf47c42d..bc0d0bc7c7 100644 --- a/addons/medical_gui/stringtable.xml +++ b/addons/medical_gui/stringtable.xml @@ -10,6 +10,7 @@ 界面 GUI GUI + Graficzny Interfejs Użytkownika Interfaz gráfica @@ -22,6 +23,7 @@ 啟用醫療行為 Attivare azioni mediche Povolit zdravotnické akce + Włącza opcje medyczne Habilitar acciones médicas @@ -34,6 +36,7 @@ 為互動選單啟用醫療行為以及選擇其風格。 Abilita le azioni mediche per il Menu Interazione e seleziona il loro stile. Povolit zdravotnické akce pro menu interakcí a vybrat jejich styl. + Umożliwia akcje medyczne w menu interakcji i wybiera ich styl. Habilita acciones médicas para el menú de interacción y selecciona su estilo. @@ -78,6 +81,7 @@ 啟用自我醫療行為 Abilitare le azioni di automedicazione Povolit zdravotnické vlastní akce + Włącza akcje medyczne na sobie Habilitar las acciones médicas en uno mismo @@ -90,6 +94,7 @@ 為自我互動選單啟用醫療行為。 Abilita il menu per le interazioni mediche personali Povoluje zdravotnické akce v menu vlastních interakcí. + Umożliwia działania medyczne w menu własnej interakcji. Activa las acciones médicas para el menú de interacción personal @@ -102,6 +107,7 @@ 啟用醫療選單 Abilita il menu medico Povolit Zdravotnické menu + Włącz Menu Medyczne Activar menú médico @@ -114,6 +120,7 @@ 啟用以互動選單或者按鍵綁定所呼出的高效醫療選單 Abilita l'uso del Menu Medico attraverso il menu tastiera o il menu di interazione. Povoluje používání Zdravotnického menu klávesovou zkratku nebo skrze menu interakcí. + Umożliwia korzystanie z menu medycznego poprzez skrót lub menu interakcji. Activa el uso del menú médico a través de la tecla o del menú de interacción @@ -126,6 +133,7 @@ 醫療選單二度開啟 Riaprire il menù medico Znovu otevřít Zdravotnické menu + Otwiera ponownie menu medyczne Reabrir menú médico @@ -138,6 +146,7 @@ 當治療完成後二度打開醫療選單 Riaprire il menu medico dopo il trattamento con successo. Otevře Zdravotnické menu po úspěšném dokončení zdravotnické akce. + Otwiera ponownie menu medyczne po udanym leczeniu. Reabrir menú médico después de completar un tratamiento @@ -150,6 +159,7 @@ 最大醫療距離 Massima distanza Maximální vzdálenost + Maksymalny dystans Distancia máxima @@ -162,6 +172,7 @@ 設定距離多遠以內可以對目標使用醫療選單 Distanza massima da cui si può aprire il Menu Medico. Maximální vzdálenost ze které je možné otevřít Zdravotnické menu. + Maksymalny dystans w którym menu medyczne może zostać otwarte. Distancia máxima desde el paciente para que el menú pueda ser abierto @@ -882,6 +893,7 @@ 骨折 Frattura Zlomené + Złamanie Fracturada @@ -893,6 +905,7 @@ 已使用固定板 Gessatura applicata Dlaha aplikována + Szyna założona Tablilla aplicada @@ -906,6 +919,7 @@ 輕微失血 Ha perso un po' di sangue Ztratil trochu krve + Stracił trochę krwi Algo de sangre perdida @@ -934,6 +948,7 @@ 極大量失血中 Ha perso una grande quantità di sangue Ztratil velké množství krve + Stracił dużą ilość krwi Perdida gran cantidad de sangre @@ -946,6 +961,7 @@ 致命性失血中 Ha perso una quantità fatale di sangue Vykrvácel + Stracił krytyczną ilość krwi Perdida una cantidad fatal de sangre @@ -954,7 +970,7 @@ Жгут Torniquete [CAT] Garrot [CAT] - Opaska uciskowa [CAT] + Staza Taktyczna [CAT] Torniquete [CAT] Škrtidlo [CAT] Laccio Emostatico [CAT] @@ -1001,6 +1017,7 @@ Partiel %1 Parziale %1 Parciální %1 + Częściowe %1 Parcial%1 Parcial %1 diff --git a/addons/medical_statemachine/stringtable.xml b/addons/medical_statemachine/stringtable.xml index ff0328edbe..ad82b9954e 100644 --- a/addons/medical_statemachine/stringtable.xml +++ b/addons/medical_statemachine/stringtable.xml @@ -11,6 +11,7 @@ 狀態 Stato Stavy + Stany Player Fatal Injuries @@ -19,6 +20,7 @@ 玩家致命傷 Décès si blessure mortelle (joueurs) Smrtelná zranění hráčů + Śmiertelne Obrażenia Gracza Lesioni mortali del giocatore @@ -28,6 +30,7 @@ 控制當玩家受致命傷時是否能救起。致命傷是指對頭部或身體造成可觀傷害所造成的。 Définit si les joueurs décèdent en cas de blessure mortelle. Une blessure mortelle est causée par un dommage important à la tête ou au torse. Nastavuje zda hráči mohou utrpět smrtelné zranění. Smrtelné zranění je utrpěto významným poškozením hlavy nebo těla. + Definiuje, kiedy gracze mogą otrzymać śmiertelne obrażenia. Śmiertelne obrażenia są spowodowane znacznym uszkodzeniem głowy lub torsu. Controlla quando i giocatori possono ricevere infortuni mortali. Una lesione mortale è causata da un danno significativo alla testa o al corpo. @@ -37,6 +40,7 @@ AI致命傷 Décès si blessure mortelle (IA) Smrtelná zranění AI + Śmiertelne obrażenia AI. AI Lesioni mortali @@ -46,6 +50,7 @@ 控制當AI受致命傷時是否能救起。致命傷是指對頭部或身體造成可觀傷害所造成的。\n當設置為"總是"時,這會使其與"AI 瞬間死亡"同一個效果,在AI受到致命傷時瞬間死亡。\n備註:選了"總是"以外的選項的話必須開啟「AI無意識」的選項。 Définit si les unités IA décèdent en cas de blessure mortelle. Une blessure mortelle est causée par un dommage important à la tête ou au torse.\nSi réglé sur "Toujours", cela produit effectivement un comportement de "Mort instantanée" car les unités IA mourront immédiatement de toute blessure mortelle.\nNOTE : Tout mode autre que "Toujours" nécessite l'activation de l'option "Inconscience IA". Nastavuje zda AI může utrpět smrtelné zranění. Smrtelné zranění je utrpěto významným poškozením hlavy nebo těla.\nPokud je tato možnost nastavena na "Vždy", efektivně nastává stav "Povolit okamžitou smrt AI", protože AI okamžitě zemře při jakémkoliv smrtelném zranění.\nPOZNÁMKA: Jakýkoliv jiný stav než "Vždy" potřebuje zapnutou možnost "Bezvědomí AI". + Definiuje, kiedy AI może otrzymać śmiertelne obrażenia. Śmiertelne obrażenia są spowodowane znacznym uszkodzeniem głowy lub torsu.\n Ustawienie "Zawsze" powoduje "Natychmiastową śmierć AI", ponieważ AI natychmiast umiera z powodu śmiertelnych obrażeń.\n UWAGA: Każdy inny tryb niż "Zawsze" wymaga włączenia nieprzytomności AI. Controlla quando l'IA può ricevere ferite mortali. Una lesione mortale è causata da un danno significativo alla testa o al corpo. Se impostato su "Sempre", questo produce efficacemente il comportamento "Morte istantanea AI", poiché l'IA morirà immediatamente a causa di qualsiasi lesione mortale.\NOTA: Qualsiasi modalità diversa da "Sempre" richiede l'attivazione dell'Incoscienza AI. @@ -71,6 +76,7 @@ 控制AI是否能進入無意識狀態而非立刻原地死亡。\n這個選項會與「AI致命傷」的選項聯動,使單位心搏停止的話必須先讓其無意識。\n然而,兩個設定分開之原因是使單位能因從非致命傷的攻擊情況下進入生命危險的狀態。\n簡單來說,你想要讓AI單位有心搏停止可能的話,該選項必須啟用。 Définit si les unités IA peuvent perdre connaissance au lieu de mourir immédiatement.\nCe paramètre fonctionne conjointement avec l'option "Décès si blessure mortelle (IA)" car, pour qu'une unité IA subisse un arrêt cardiaque, elle doit également pouvoir perdre connaissance.\nCependant, ces paramètres sont séparés car les unités peuvent s'évanouir suite à des signes vitaux critiques résultant de blessures non mortelles.\nEn résumé, cela signifie que ce paramètre doit absolument être activé pour qu'une unité IA puisse entrer en état d'arrêt cardiaque. Nastavuje zda AI může upadnout do bezvědomí namísto okamžité smrti.\nToto nastavení funguje společně s "Smrtelná zranění AI" protože srdeční zástava potřebuje možnost upadnout do bezvědomí.\nTyto možnosti jsou separované, protože jednotky mohou upadnout do bezvědomí kvůli kritickému stavu způsobenému ne smrtelnými zraněními.\nV podstatě to znamená, že pokud chcete zapnout srdeční zástavu pro AI, tato možnost musí být zapnutá. + Definiuje, czy AI może stracić przytomność zamiast natychmiast zginąć.\n Ta opcja działa razem z ustawieniem "Śmiertelne urazy AI", ponieważ przejście do zatrzymania akcji serca wymaga, aby jednostka mogła stracić przytomność.\n Jednak te ustawienia są rozdzielone, ponieważ jednostki mogą stracić przytomność z powodu krytycznych czynności życiowych powstałych w wyniku urazów innych niż śmiertelne.\n W istocie oznacza to, że aby umożliwić zatrzymanie akcji serca dla jednostek AI, to ustawienie musi być włączone. Controlla se l'IA può perdere i sensi invece di morire immediatamente. Questa impostazione funziona insieme all'impostazione "AI Fatal Injuries" poiché, per andare in arresto cardiaco, è necessario che l'unità sia in grado di perdere i sensi. Tuttavia, queste impostazioni sono separate perché le unità possono perdere i sensi da segni vitali critici derivanti da lesioni non mortali. @@ -83,6 +89,7 @@ 心搏停止時間 Tempo d'arresto cardiaco Délka srdeční zástavy + Czas Zatrzymania Akcji Serca Controls how long it takes to die from cardiac arrest. @@ -93,6 +100,7 @@ 控制心搏停止後多久死亡 Controlla quanto tempo ci vuole per morire di arresto cardiaco. Nastavuje po jak dlouhé době pacient zemře kvůli srdeční zástavě. + Definiuje czas potrzebny na śmierć z powodu zatrzymania akcji serca. In Cardiac Arrest @@ -104,6 +112,7 @@ 心搏停止中 In arresto cardiaco V srdeční zástavě + Zatrzymanie Akcji Serca diff --git a/addons/medical_status/stringtable.xml b/addons/medical_status/stringtable.xml index 1a7d3b41d3..d33b703366 100644 --- a/addons/medical_status/stringtable.xml +++ b/addons/medical_status/stringtable.xml @@ -11,6 +11,7 @@ 狀態 Stato Stav + Status Estado @@ -87,6 +88,7 @@ 點滴輸血流量 IV Portata della trasfusione Rychlost IV transfuze + Natężenie Przepływu Transfuzji IV IV Flujo de transfusión @@ -99,6 +101,7 @@ 控制從點滴輸入人體的液體流量多快。點滴的體積更改是以\n時間間隔(單位秒)乘上點滴每秒速度(4.1667毫升/秒)乘上流量(該係數)。 Controlla la velocità con cui il fluido esce dalle sacche per flebo. La variazione di volume delle sacche IV è calcolata come:\intervallo di tempo (s) * variazione iv al secondo (4,1667 mL/s) * portata (questo coefficiente). Nastavuje jak rychle tekutiny vytékají z IV sáčku. Zbývající objem IV sáčku je vypočítáván následovně:\nčasový interval (s) * změna iv za sekundu (4,1667 mL/s) * rychlost toku (tento koeficient). + Kontroluje, jak szybko płyn wypływa z worków IV. Zmiana objętości worka IV jest obliczana jako:\n przedział czasowy * zmiana iv na sekundę (4,1667 mL/s) * natężenie przepływu (ten współczynnik). Controla la rapidez con que fluye el líquido de las bolsas intravenosas. El cambio de volumen de la bolsa IV se calcula como: \n intervalo (s) de tiempo * cambio iv por segundo (4.1667 mL/s) * velocidad de flujo (este coeficiente). diff --git a/addons/medical_treatment/stringtable.xml b/addons/medical_treatment/stringtable.xml index e9df8c966b..0ead66fb7f 100644 --- a/addons/medical_treatment/stringtable.xml +++ b/addons/medical_treatment/stringtable.xml @@ -11,6 +11,7 @@ 治療 Trattamento Léčba + Leczenie Litter @@ -21,6 +22,7 @@ 醫療用廢棄物 Spazzatura Odpadky + Śmieci Advanced Diagnose @@ -32,6 +34,7 @@ 進階診斷 Diagnosi avanzata Pokročilá diagnóza + Zaawansowana Diagnoza Enables the Check Pulse, Check Blood Pressure, and Check Response treatment actions instead of the generic Diagnose action.\nWhen disabled, the CPR action will only be shown when performing CPR is appropriate.\nThe actions this setting enables are needed to determine whether a person is unconscious or in cardiac arrest. @@ -42,6 +45,7 @@ 啟用檢查脈搏、血壓以及病患反應的動作而非一般的診斷動作。\n當停用時,CPR只會在需要時出現。\n當這個選項啟用時必須診斷病患是否無意識或者心搏停止。 Abilita le azioni di controllo del polso, controllo della pressione sanguigna e controllo della risposta al trattamento invece dell'azione generica Diagnose.\ Se disabilitata, l'azione di RCP sarà mostrata solo quando l'esecuzione della RCP è appropriata.\Le azioni abilitate da questa impostazione sono necessarie per determinare se una persona è in stato di incoscienza o in arresto cardiaco. Povoluje kontrolu srdečního tepu, krevního tlaku a reakce pacienta namísto univerzální diagnózy.\nKdyž je tato možnost vypnuta, CPR akce bude dostupná pouze pokud je vhodné ji provést.\nAkce které tato možnost zapíná jsou nutné k určení zda je pacient v bezvědomí nebo má srdeční zástavu. + Włącza opcje sprawdzania Pulsu, Ciśnienia Tętniczego Krwi i Reakcje Na Ból, zamiast bardziej ogólnej akcji Diagnozuj.\n Po wyłączeniu tej opcji akcja RKO będzie wyświetlana tylko wtedy, gdy jej wykonanie będzie odpowiednie.\n Opcja, która włącza to ustawienie jest potrzebna do ustalenia, czy osoba jest nieprzytomna lub ma zatrzymanie krążenia. Advanced Bandages @@ -53,6 +57,7 @@ 進階包紮 Bendaggi avanzati Pokročilé obvazy + Zaawansowane Bandaże Enables treatment actions for different bandage types instead of the generic Bandage action. @@ -63,6 +68,7 @@ 啟用不同繃帶的可用行為而非一般包紮動作。 Permette azioni di trattamento per diversi tipi di bendaggio al posto del bendaggio generico. Povoluje specifické obvazy s různými vlastnostmi namísto jednoho univerzálního obvazu. + Umożliwia wybranie konkretnego rodzaju bandaża zamiast ogólnej akcji bandażowania. Advanced Medication @@ -92,6 +98,7 @@ 傷口再度裂開 Riapertura della ferita Znovuotevření ran + Ponowne Otwarcie Ran Enables the reopening of bandaged wounds. Requires Advanced Bandages to be enabled. @@ -101,6 +108,7 @@ Permite que ferimentos atados possam reabrir. Requer Ataduras Avançadas para funcionar. 啟用包紮過的傷口是否會再度裂開。需要啟用「進階包紮」之功能。 Povoluje znovuotevírání obvázaných zranění. Vyžaduje zapnuté Pokročilé obvazy. + Umożliwia ponowne otwarcie się zabandażowanych ran. Wymaga włączenia opcji Zaawansowane Bandaże. Permette la riapertura delle ferite fasciate. Richiede l'abilitazione di Bende Avanzate. @@ -138,6 +146,7 @@ 在醫療設施或者載具旁時增加醫療能力。未受訓練的將會成為醫療兵,醫療兵將會成為軍醫。 Aumentare la formazione medica quando si è in veicoli o strutture mediche. Se non addestrato diventa medico, il medico diventa dottore. Zvyšuje zdravotnickou úroveň v zdravotnických objektech a vozidlech. Nevycvičení se stávají mediky a medici se stávají doktory. + Zwiększ wyszkolenie medyczne w pojazdach lub obiektach medycznych. Niewytrenowana jednostka zostaje medykiem, medyk zostaje lekarzem. Allow Shared Equipment @@ -148,6 +157,7 @@ 允許共享設備 Consentire la condivisione di attrezzature Povolit sdílení vybavení + Zezwalaj na współdzielenie sprzętu Controls whether medical equipment can be shared between the patient and the medic. @@ -158,6 +168,7 @@ 控制是否病患與醫療兵之間能否共享醫療物資 Controlla se le attrezzature mediche possono essere condivise tra il paziente e il medico. Nastavuje zda jak je zdravotnické vybavení sdíleno mezi medikem a pacientem. + Kontroluje, czy sprzęt medyczny ma być dzielony między pacjentem a medykiem. Patient's Equipment First @@ -168,6 +179,7 @@ 優先使用患者的醫療物資 L'attrezzatura del paziente prima di tutto Prvně pacientovo vybavení + Najpierw sprzęt pacjenta Medic's Equipment First @@ -178,12 +190,13 @@ 優先使用醫療兵的醫療物資 Prima le attrezzature mediche Prvně medikovo vybavení + Najpierw sprzęt medyka Allow Epinephrine Erlaube Epiniphrin Permitir Epinefrina - Ograniczenia adrenaliny + Ograniczenia użycia adrenaliny Épinéphrine autorisée pour Permette epinefrina Povolit epinefrin @@ -203,12 +216,13 @@ 要受過何種程度的醫療訓練才可以使用腎上腺素 Livello di addestramento richiesto per usare l'Epinefrina. Úroveň výcviku pro použití epinefrinu + Poziom wyszkolenia wymagany do korzystania z epinefryny. Locations Epinephrine Orte für Epiniphrin Ubicaciones epinefrina - Ograniczenia adrenaliny + Miejsca użycia epinefryny Lieux épinéphrine Ubicazione epinefrina Oblast pro použití epinefrinu @@ -228,11 +242,12 @@ 控制何處能使用腎上腺素 Controlli dove si può usare l'Epinefrina. Nastavuje kde může být epinefrin použit + Kontroluje, gdzie można stosować epinefrynę. Allow PAK Использование Аптечки - Ustawienie apteczek osobistych + Ograniczenia użycia apteczek osobistych Permitir EPA Erlaube Erste-Hilfe-Set Povolit osobní lékárničky (PAK) @@ -254,11 +269,12 @@ 要受過何種程度的醫療訓練才可以使用個人急救包 Livello di formazione richiesto per l'utilizzo di un PAK. Úroveň výcviku pro použití osobní lékárničky (PAK). + Poziom wyszkolenia wymagany do korzystania z apteczek osobistych. Locations PAK Места использования Аптечки - Ograniczenie apteczek osobistych + Miejsca użycia apteczek osobistych Ubicaciones del EPA Orte für Erste-Hilfe-Set Oblast k použití PAK @@ -280,6 +296,7 @@ 控制何處能使用個人急救包 Controlla dove può essere usato un PAK. Nastavuje kde může být osobní lékárnička (PAK) použita. + Kontroluje, gdzie można korzystać z apteczek osobistych. Consume PAK @@ -290,6 +307,7 @@ 個人急救包為消耗品 Consumare PAK Spotřebuj osobní lékárničku (PAK) + Zużycie apteczek osobistych Controls whether a PAK should be consumed after use. @@ -300,6 +318,7 @@ 設定個人急救包是否為消耗品 Controlla se un PAK deve essere consumato dopo l'uso. Nastavuje zda má být osobní lékárnička (PAK) spotřebována po použití. + Kontroluje, czy apteczka osobista powinna być zużyta po użyciu. Self PAK Usage @@ -316,6 +335,7 @@ 個人急救包的時間係數 Coefficiente temporale PAK Časový koeficient pro osobní lékárničku (PAK) + Współczynnik czasu apteczek osobistych Modifies how long a PAK takes to apply.\nThe treatment time is based on the total body part damage multiplied by this coefficient, with a minimum of 10 seconds. @@ -326,6 +346,7 @@ 修改個人急救包要使用多久才能完成。\n醫療時間是依照全身的肢體狀況並乘上該係數而決定的,至少十秒。 Il tempo di trattamento si basa sul danno totale della parte del corpo moltiplicato per questo coefficiente, con un minimo di 10 secondi. Upravuje jak dlouho trvá léčba pomocí osobní lékárničky (PAK).\nDoba léčby závisí na celkovém poškození částí těla vynásobeném tímto koeficientem, přičemž minimum je 10 vteřin. + Zmienia czas potrzebny na zastosowanie apteczki osobistej.\n Czas leczenia jest oparty na całkowitym uszkodzeniu części ciała pomnożonym przez ten współczynnik, wynosi minimum 10 sekund. Allow Surgical Kit @@ -336,6 +357,7 @@ 允許使用手術包 Permettere il kit chirurgico Povolit sešívací sadu + Ograniczenia Użycia Zestawu Chirurgicznego Training level required to use a surgical kit. @@ -346,6 +368,7 @@ 要受過多少程度的醫療訓練才能使用手術包。 Livello di formazione richiesto per l'utilizzo di un kit chirurgico. Úroveň výcviku pro použití sešívací sady. + Poziom wyszkolenia wymagany do korzystania z Zestawu Chirurgicznego. Locations Surgical Kit @@ -356,6 +379,7 @@ 手術包使用地點 Luoghi Kit chirurgico Nastavuje kde může být sešívací sada použita + Miejsca użycia Zestawu Chirurgicznego Controls where a surgical kit can be used. @@ -366,6 +390,7 @@ 控制何處能使用手術包 Controlla dove può essere usato un kit chirurgico. Nastavuje zda má být sešívací sada spotřebována po použití. + Kontroluje, gdzie można użyć Zestawu Chirurgicznego. Consume Surgical Kit @@ -376,6 +401,7 @@ 手術包為消耗品 Consumare Kit Chirurgico Spotřebuj sešívací sadu + Zużycie Zestawów Chirurgicznych Controls whether a surgical kit should be consumed after use. @@ -386,6 +412,7 @@ 設定手術包是否為消耗品 Controlla se un kit chirurgico deve essere consumato dopo l'uso. Nastavuje + Kontroluje, czy Zestaw Chirurgiczny powinien być zużyty po użyciu. Self Stitching @@ -395,6 +422,7 @@ 自我縫合 Auto cucitura Samo-zašívání + Zszywanie własnych ran Enables the use of surgical kits to stitch oneself. @@ -403,6 +431,7 @@ 縫合キットを使い自らを縫合できるようにします。 啟用是否能自己使用手術包來縫合自己的傷口。 Umožňuje použití sešívací sady na sebe sama. + Umożliwia użycie Zestawu Chirurgicznego na sobie. Permette l'uso di kit chirurgici per ricucirsi. @@ -435,6 +464,7 @@ 轉換原版物品 Converti oggetti vanilla Přeměnit zdravotnické předměty ze základní hry + Konwertuj przedmioty z vanili Controls whether vanilla medical items are converted to ACE Medical items, removed only, or ignored. @@ -446,6 +476,7 @@ 控制是否轉換原版的醫療物資成ACE的醫療物資,或者單純移除或無視。 Controlla se gli articoli medicali vanilla vengono convertiti in articoli medicali ACE, rimossi o ignorati. Nastavuje zda zdravotnické předměty ze základní hry budou přeměněny na ACE předměty, odstraněny nebo ignorovány. + Kontroluje, czy podstawowe przedmioty medyczne z Arma są konwertowane na przedmioty medyczne ACE, tylko usuwane lub ignorowane. Remove Only @@ -456,6 +487,7 @@ 單純移除 Rimuovere solo Pouze odstranit + Tylko Usuwaj Enable Litter @@ -480,6 +512,7 @@ 啟用醫療後剩下的醫療用廢棄物。 Permette la creazione di rifiuti al momento del trattamento. Umožňuje vytvořit odpadky při léčbě. + Umożliwia tworzenie śmieci po przeprowadzaniu zabiegu. Max Litter Objects @@ -490,6 +523,7 @@ 最大醫療用廢棄物數量 Numero massimo di oggetti spazzatura Maximum odpadků + Maksymalna Ilość Śmieci Sets the maximum number of litter objects which can be spawned, excessive amounts can cause FPS lag. @@ -500,6 +534,7 @@ 設定最大可以產生的醫療用廢棄物數量,極端的數量的話可能導致幀數下降。 Imposta il numero massimo di rifiuti che possono essere generati, quantità eccessive possono causare un ritardo FPS. Nastavuje maximum odpadků, které se mohou objevit. Vysoká hodnota m§že negativně ovlivnit FPS. + Definiuje maksymalną liczbę śmieci, które mogą zostać stworzone, nadmierne ilości mogą powodować spadki FPS. Litter Lifetime @@ -510,6 +545,7 @@ 醫療用廢棄物時長 Tempo spazzatura Životnost odpadků + Czas trwania Śmieci Controls the lifetime of litter objects, in seconds. -1 is forever. @@ -520,6 +556,7 @@ 控制醫療用廢棄物的時長,以秒為單位。設定為-1則是永不刪除。 Controlla la durata di vita degli oggetti spazzatura, in pochi secondi. -1 è per sempre. Nastavuje za jak dlouho zdravotnické odpadky zmizí. -1 je navždy. + Kontroluje czas trwania śmieci w sekundach. -1 pozostawia je na zawsze. Anyone @@ -546,6 +583,7 @@ 醫療兵 Medici Medikové + Medycy Doctors @@ -556,6 +594,7 @@ 軍醫 Dottori Doktoři + Doktorzy Medical Facilities @@ -566,6 +605,7 @@ 醫療設施 Strutture mediche Zdravotnické zařízení + Obiekty Medyczne Vehicles & Facilities @@ -576,6 +616,7 @@ 車輛 %amp; 設施 Zdravotnická zařízení a vozidla Veicoli e strutture + Pojazdy i Obiekty CPR Success Chance @@ -604,6 +645,7 @@ Rengainer obligatoirement Fondina richiesta Vyžadováno schování zbraně + Wymagana broń w kaburze Controls whether weapons must be holstered / lowered in order to perform medical actions.\nExcept Exam options allow examination actions (checking pulse, blood pressure, response) at all times regardless of this setting. @@ -611,6 +653,7 @@ 控制是否要先放下或把武器放入武器套才能做出醫療行為。\n除了診斷 - 允許未放下或未放入的情況下進行一連串的診斷(檢查脈搏,血壓,反應)。 Définit si les armes doivent être rengainées ou abaissées avant de pouvoir effectuer des actes médicaux.\nLes options "sauf examens" autorisent les examens (vérification du pouls, de la tension artérielle, de l'état de conscience) en toutes circonstances. Nastavuje zda musí být zbraň schovaná/snížená pro provádění zdravotnických úkonů.\nKromě Diagnózy - Umožňuje diagnostické akce (kontrola srdečního tepu, tlaku krve a reakci pacienta) vždy bez ohledu na nastavení schování zbraně. + Kontroluje, czy broń musi być schowana/opuszczona w celu wykonania leczenia pacjenta.\n Za wyjątkiem diagnozowania - umożliwia wykonywanie czynności kontrolnych (sprawdzanie tętna, ciśnienia krwi, reakcji) przez cały czas, niezależnie od ustawienia Wymagana broń w kaburze. Controlla se le armi devono essere tenute nella fondina / abbassate per poter eseguire le azioni mediche.\Except Exam - Permette azioni di esame (controllo del polso, della pressione sanguigna, della risposta) in ogni momento indipendentemente dall'impostazione della fondina richiesta. @@ -620,6 +663,7 @@ Abaisser ou rengainer Abbassato o con fondina Snížena nebo Schována + Opuszczona lub w kaburze Lowered or Holstered (Except Exam) @@ -628,6 +672,7 @@ Abaisser ou rengainer (sauf examens) Abbassato o con la fondina (eccetto l'esame) Snížena nebo Schována (kromě Diagnózy) + Opuszczona lub w kaburze (oprócz diagnozowania) Holstered Only @@ -636,6 +681,7 @@ Rengainer seulement Solo con la fondina Pouze Schována + Tylko w Kaburze Holstered Only (Except Exam) @@ -644,6 +690,7 @@ Rengainer seulement (sauf examens) Solo fondina (eccetto esame) Pouze Schována (kromě Diagnózy) + Tylko w Kaburze (oprócz diagnozowania) [ACE] Medical Supply Crate (Basic) @@ -1001,7 +1048,7 @@ Жгут Torniquete (CAT) Garrot (CAT) - Staza (typ. CAT) + Staza taktyczna (CAT) Škrtidlo (CAT) Érszorító (CAT) Laccio emostatico (CAT) @@ -1052,6 +1099,7 @@ 固定板 Gessatura Dlaha + Szyna Stabilizes a fractured limb @@ -1062,6 +1110,7 @@ 固定骨折的部位 Stabilizza un arto fratturato Znehybňuje zlomenou končetinu + Stabilizuje złamaną kończynę Morphine autoinjector @@ -2267,6 +2316,7 @@ 套上固定板 Applica gessatura Aplikovat dlahu + Załóż szynę Aplicar férula @@ -2278,6 +2328,7 @@ 套用固定板中... Applicazione gessatura Aplikuji dlahu... + Zakładanie szyny Aplicando férula... @@ -2498,6 +2549,7 @@ 輕微 Minimo Minimální + Minimalny Mínimo @@ -2638,6 +2690,7 @@ 中度疼痛中 Con un dolore leggero V mírných bolestech + W łagodnym bólu Con dolor leve @@ -2666,6 +2719,7 @@ 嚴重疼痛中 Con un forte dolore Ve velkých bolestech + W silnym bólu Con dolor severo @@ -3715,6 +3769,7 @@ %1 ha applicato una gessatura %1 použil dlahu %1 は添え木を当てた + %1 założył szynę %1 aplicada una férula @@ -3830,7 +3885,7 @@ There is no tourniquet on this body part! An diesem Körperteil befindet sich kein Tourniquet! - Na tej części ciała nie ma stazy! + Na tej kończynie nie ma stazy! No hay torniquete en esta parte del cuerpo! Нет жгута на этой части тела! Não existe nenhum torniquete nesta parte do corpo! diff --git a/addons/rearm/stringtable.xml b/addons/rearm/stringtable.xml index 860913d4b4..713d8a13d3 100644 --- a/addons/rearm/stringtable.xml +++ b/addons/rearm/stringtable.xml @@ -652,6 +652,7 @@ 整裝距離 Distanza di riarmo Přezbrojovací vzdálenost + Odległość przezbrojenia The maximum distance a vehicle can be rearmed at @@ -662,6 +663,7 @@ 與載具之最大可整裝距離 La distanza massima a cui un veicolo può essere riarmato Maximální vzdálenost na jakou může být vozidlo přezbrojeno + Maksymalna odległość na jakiej pojazd może zostać przezbrojony diff --git a/addons/repair/stringtable.xml b/addons/repair/stringtable.xml index 8e19eb1481..d47734e258 100644 --- a/addons/repair/stringtable.xml +++ b/addons/repair/stringtable.xml @@ -1869,6 +1869,7 @@ Exigences pour réparations diverses Requisiti di riparazione vari Požadavky pro částečnou opravu + Rózne wymagania do naprawy Requerimentos para reparo miscelâneo Requisitos de objetos misceláneos de reparación @@ -1878,6 +1879,7 @@ 是否需要物品來修復一些特別載具部位或者移除/替換履帶 Outils nécessaires pour la réparation d'un équipement spécifique du véhicule, et pour le démontage ou le remplacement des chenilles. Předměty potřebné k provedení opravy konkrétní části vozidla nebo sundání/výměny pásů. + Przedmioty wymagane do naprawy określonego elementu pojazdu lub usunięcia/wymiany gąsienicy. Items necessários para reparar uma peça específica ou remover/substituir lagarta. Objetos necesarios para reparar un componente específico del vehículo o quitar/reemplazar las orugas. Elementi necessari per riparare un componente specifico del veicolo o per rimuovere/sostituire i cingoli @@ -1889,6 +1891,7 @@ Exigences pour réparations complètes Requisiti per la riparazione completa Požadavky pro plnou opravu + Wymagania pełnej naprawy Requerimentos de Reparo Completo Requisitos para reparación completa @@ -1898,6 +1901,7 @@ 是否需要物品來完整修復載具 Outils nécessaires pour effectuer une réparation complète des véhicules. Předměty potřebné k provedení plné opravy vozidla. + Przedmioty wymagane do przeprowadzenia pełnej naprawy pojazdu. Itens requeridos para realizar um reparo veicular completo. Objetos requeridos para una reparación completa Elementi necessari per eseguire una riparazione completa del veicolo. diff --git a/addons/spectator/stringtable.xml b/addons/spectator/stringtable.xml index 3006147b00..f97ce9cf3b 100644 --- a/addons/spectator/stringtable.xml +++ b/addons/spectator/stringtable.xml @@ -208,6 +208,7 @@ Distance maximale de suivi Distanza massima per seguire Maximální vzdálenost sledování objektu + Maksymalna odległość śledzenia Maximum distance the follow camera can be from the target @@ -218,6 +219,7 @@ Distanza massima che la telecamera seguente può percorrere dall'obiettivo Distance maximale à laquelle la caméra de suivi peut se trouver par rapport à la cible. Maximální vzdálenost při které může kamera sledovat cíl + Maksymalna odległość na jakiej kamera może podążać od celu diff --git a/addons/switchunits/stringtable.xml b/addons/switchunits/stringtable.xml index 9de6840393..2e9dc44521 100644 --- a/addons/switchunits/stringtable.xml +++ b/addons/switchunits/stringtable.xml @@ -67,6 +67,7 @@ Permettre le changement de camp 啟用陣營切換 Povolit změnu strany + Włącz zmiane strony Habilita troca de time 陣営切り替えを有効化 diff --git a/addons/vehicles/stringtable.xml b/addons/vehicles/stringtable.xml index bb60255ba9..ad517df6b0 100644 --- a/addons/vehicles/stringtable.xml +++ b/addons/vehicles/stringtable.xml @@ -102,6 +102,7 @@ Vypni automatické vypnutí motoru 關閉引擎自動熄火 Désactiver l'arrêt automatique du moteur + Wyłącz automatyczne wyłączanie silnika Disattivare lo spegnimento automatico del motore @@ -115,6 +116,7 @@ 避免離開載具時自動熄火。 Impedire lo spegnimento automatico del motore quando si esce dai veicoli. Empêche l'arrêt automatique du moteur à la sortie des véhicules. + Zapobiegaj automatycznemu wyłączaniu silnika podczas wychodzenia z pojazdu. Hide Eject Action diff --git a/addons/weather/stringtable.xml b/addons/weather/stringtable.xml index 29bb7f5fff..575223bf5c 100644 --- a/addons/weather/stringtable.xml +++ b/addons/weather/stringtable.xml @@ -163,6 +163,7 @@ Controllare la temperatura dell'aria Zkontrolovat teplotu vzduchu 気温を確認 + Sprawdź temperaturę powietrza Vérifier la température Checar a temperatura do ar @@ -172,6 +173,7 @@ Mostra Controlla l'azione della temperatura dell'aria Ukázat akci kontroly teploty vzduchu 気温の確認動作を表示 + Pokaż akcje sprawdzającą temperaturę powietrza Afficher l'interaction "Vérifier la température" Mostrar a ação "Checar a temperatura do ar" diff --git a/optionals/tracers/stringtable.xml b/optionals/tracers/stringtable.xml index 7969117cc3..b778fc4b72 100644 --- a/optionals/tracers/stringtable.xml +++ b/optionals/tracers/stringtable.xml @@ -376,6 +376,7 @@ Калибр: 6.5x39 мм, трассер Зеленый<br />Патронов: 200<br />Используется в: Mk200 Calibri: 6.5x39 mm Traccianti - Verdi<br />Colpi: 200<br />Usati In: Mk200 Kalibr: 6.5×39 mm Stopovka - Zelená<br />Nábojů: 200<br />Použito v: Mk200 + Kaliber: 6.5x39 mm Smugowa - Zielona<br />Sztuk: 200<br />Używana w: Mk200 Caliber: 6.5x39 mm Tracejante - Verde<br/>Balas: 200<br/>Usado em: Mk200 @@ -384,6 +385,7 @@ Короб 200 патр. 6.5 мм трассирующих (Красный) 6.5 mm 200Colpi Caricatore Maggiorato Tracciante (rossi) 6.5 mm 200 ranný pás, stopovka (Červená) + 6.5 mm Magazynek pudełkowy 200szt. Smugowa (Czerwona) Caixa de Cinto 6.5 mm 200 Balas Tracejantes (Vermelho) @@ -392,6 +394,7 @@ Калибр: 6.5x39 мм, трассер Красный<br />Патронов: 200<br />Используется в: Mk200 Calibro: 6.5x39 mm Traccianti - Rossi<br />Colpi: 200<br />Usati in: Mk200 Kalibr: 6.5×39 mm Stopovka - Červená<br />Nábojů: 200<br />Použito v: Mk200 + Kaliber: 6.5x39 mm Smugowa - Czerwona<br />Sztuk: 200<br />Używana w: Mk200 Caliber: 6.5x39 mm Tracejante - Vermelho<br/>Balas: 200<br/>Usado em: Mk200 @@ -400,6 +403,7 @@ Магазин 20 патр. 7.62 мм трассирующих (Зеленый) 7.62 mm 20Colpi Traccianti (verdi) Caricatore 7.62 mm 20 ranný zásobník, stopovka (Zelená) + 7.62 mm Magazynek 20szt. Smugowa (Zielona) Magazine 7.62 mm 20 Balas Tracejantes (verdes) @@ -408,6 +412,7 @@ Калибр: 7.62x51 mm NATO, трассер Зеленый<br />Патронов: 20<br />Используется в: Mk18 ABR, Mk-I EMR, Mk14, SPAR-17 Calibro: 7.62x51 mm NATO Traccianti - Verdi<br />Colpi: 20<br />Usati in: Mk18 ABR, Mk-I EMR, Mk14, SPAR-17 Kalibr: 7.62×51 mm NATO Stopovka - Zelená<br />Nábojů: 20<br />Použito v: Mk18 ABR, Mk-I EMR, Mk14, SPAR-17 + Kaliber: 7.62x51 mm NATO Smugowa - Zielona<br />Sztuk: 20<br />Używana w: Mk18 ABR, Mk-I EMR, Mk14, SPAR-17 Calibre: 7.62x51 mm NATO Tracejante - Verde<br/>Balas: 20<br/>Usado em: Mk18 ABR, Mk-I EMR, Mk14, SPAR-17 @@ -416,6 +421,7 @@ Магазин 20 патр. 7.62 мм трассирующих (Желтый) 7.62 mm 20Colpi Traccianti (Gialli) Caricatori 7.62 mm 20 ranný zásobník, stopovka (Žlutá) + 7.62 mm Magazynek 20szt. Smugowa (Żółta) Magazine 7.62 mm 20 Balas Tracejantes (Amarelo) @@ -424,6 +430,7 @@ Калибр: 7.62x51 mm NATO, трассер Желтый<br />Патронов: 20<br />Используется в: Mk18 ABR, Mk-I EMR, Mk14, SPAR-17 Calibro: 7.62x51 mm NATO Traccianti - Gialli<br />Colpi: 20<br />Usati in: Mk18 ABR, Mk-I EMR, Mk14, SPAR-17 Kalibr: 7.62×51 mm NATO Stopovka - Žlutá<br />Nábojů: 20<br />Použito v: Mk18 ABR, Mk-I EMR, Mk14, SPAR-17 + Kaliber: 7.62x51 mm NATO Smugowa - Żółta<br />Sztuk: 20<br />Używana w: Mk18 ABR, Mk-I EMR, Mk14, SPAR-17 Calibre: 7.62x51 mm NATO Tracejante - Amarelo<br/>Balas: 20<br/>Usado em: Mk18 ABR, Mk-I EMR, Mk14, SPAR-17 @@ -432,6 +439,7 @@ Короб 150 патр. 7.62 мм TE4 (Красный) 7.62mm 150Colpi Caricatore Maggiorato Misti (rossi) 7.62 mm 150 ranný pás, částečná stopovka (Červená) + 7.62 mm Magazynek pudełkowy 150szt. Mieszana (Czerwona) Caixa 7.62mm 150 Balas Misturadas (Vermelho) @@ -440,6 +448,7 @@ Короб 150 патр. 7.62 мм TE4 (Желтый) 7.62mm 150Colpi Caricatore Maggiorato Misti (Gialli) 7.62 mm 150 ranný pás, částečná stopovka (Žlutá) + 7.62 mm Magazynek pudełkowy 150szt. Mieszana (Żółta) Caixa 7.62mm 150 Balas Misturadas (Amarelo) @@ -448,6 +457,7 @@ Короб 150 патр. 7.62 мм трассирующих (Красный) 7.62mm 150Colpi Caricatore Maggiorato (Rossi) 7.62 mm 150 ranný pás, stopovka (Červená) + 7.62mm Magazynek pudełkowy 150szt. Smugowa (Czerwona) Caixa 7.62mm 150 Balas Misturadas (Vermelho) @@ -456,6 +466,7 @@ Калибр: 7.62x51 mm NATO, трассер Красный<br />Патронов: 150<br />Используется в: Zafir Calibro: 7.62x54 mm Traccianti - Rossi<br />Colpi: 150<br />Usati in: Zafir Kalibr: 7.62×54 mm Stopovka - Červená<br />Nábojů: 150<br />Použito v: Zafir + Kaliber: 7.62x54 mm Smugowa - Czerwona<br />Sztuk: 150<br />Używana w: Zafir Calibre: 7.62x54 mm Tracejante - Vermelho<br/>Balas: 150<br/>Usado em:Zafir @@ -464,6 +475,7 @@ Короб 150 патр. 7.62 мм трассирующих (Желтый) 7.62mm 150Colpi Caricatore Maggiorato Traccianti (gialli) 7.62 mm 150 ranný pás, stopovka (Žlutá) + 7.62 mm Magazynek pudełkowy 150szt. Smugowa (Żółta) Caixa 7.62mm 150 Balas Tracejantes (Amarelo) @@ -472,6 +484,7 @@ Калибр: 7.62x51 mm NATO, трассер Желтый<br />Патронов: 150<br />Используется в: Zafir Calibro: 7.62x54 mm Traccianti - Gialli<br />Colpi: 150<br />Usati in: Zafir Kalibr: 7.62×54 mm Stopovka - Žlutá<br />Nábojů: 150<br />Použito v: Zafir + Kaliber: 7.62x54 mm Smugowa - Żółta<br />Sztuk: 150<br />Używana w: Zafir Calibre: 7.62x54 mm Tracejante - Amarelo<br/>Balas: 150<br/>Usado em:Zafir @@ -480,6 +493,7 @@ Лента 150 патр. 9.3 мм TE4 (Желтый) 9.3mm 150Colpi Caricatore Maggiorato (Giallo) 9.3 mm 150 ranný pás, částečná stopovka (Žlutá) + 9.3 mm Taśma 150szt. Mieszana (Żółta) Cinto 9.3mm 150 Balas Misturadas (Amarelo) @@ -488,6 +502,7 @@ Лента 150 патр. 9.3 мм TE4 (Красный) 9.3mm 150Colpi Caricatore Maggiorato (Rosso) 9.3 mm 150 ranný pás, částečná stopovka (Červená) + 9.3 mm Taśma 150szt. Mieszana (Czerwona) Cinto 9.3mm 150 Balas Misturadas (Vermelho) @@ -496,6 +511,7 @@ Лента 130 патр. .338 NM TE4 (Желтый) .338 NM 130Colpi Caricatore a nastro Misto (giallo) .338 NM 130 ranný pás, částečná stopovka (Žlutá) + .338 NM Taśma 130szt. Mieszana (Żółta) Cinto .338 NM Misturado (Amarelo) @@ -504,6 +520,7 @@ Лента 130 патр. .338 NM TE4 (Зеленый) .338 NM 130Colpi Caricatore a nastro Misto (Verde) .338 NM 130 ranný pás, částečná stopovka (Zelená) + .338 NM Taśma 130szt. Mieszana (Zielona) Cinto .338 NM 130 Balas Misturados (Verde) From 941d46b3342f6c84138078dd16d30b0954ac7d81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Dahlgren?= Date: Wed, 8 Jan 2020 00:25:52 +0100 Subject: [PATCH 034/194] Cook Off - Change Cook Off events to global and add to events docs --- addons/cookoff/functions/fnc_cookOff.sqf | 2 +- addons/cookoff/functions/fnc_cookOffBox.sqf | 2 +- addons/cookoff/functions/fnc_engineFire.sqf | 2 +- docs/wiki/framework/events-framework.md | 7 +++++++ 4 files changed, 10 insertions(+), 3 deletions(-) diff --git a/addons/cookoff/functions/fnc_cookOff.sqf b/addons/cookoff/functions/fnc_cookOff.sqf index c19f968c47..51f35ea813 100644 --- a/addons/cookoff/functions/fnc_cookOff.sqf +++ b/addons/cookoff/functions/fnc_cookOff.sqf @@ -21,7 +21,7 @@ if (_vehicle getVariable [QGVAR(isCookingOff), false]) exitWith {}; _vehicle setVariable [QGVAR(isCookingOff), true]; if (local _vehicle) then { - [QGVAR(cookOff), _vehicle] call CBA_fnc_remoteEvent; + [QGVAR(cookOff), _vehicle] call CBA_fnc_globalEvent; }; [{ diff --git a/addons/cookoff/functions/fnc_cookOffBox.sqf b/addons/cookoff/functions/fnc_cookOffBox.sqf index 8f6ef7f2f0..28e3a91108 100644 --- a/addons/cookoff/functions/fnc_cookOffBox.sqf +++ b/addons/cookoff/functions/fnc_cookOffBox.sqf @@ -21,7 +21,7 @@ if (_box getVariable [QGVAR(isCookingOff), false]) exitWith {}; _box setVariable [QGVAR(isCookingOff), true]; if (local _box) then { - [QGVAR(cookOffBox), _box] call CBA_fnc_remoteEvent; + [QGVAR(cookOffBox), _box] call CBA_fnc_globalEvent; }; [{ diff --git a/addons/cookoff/functions/fnc_engineFire.sqf b/addons/cookoff/functions/fnc_engineFire.sqf index 6ed6920b7c..f5ad3e1cf9 100644 --- a/addons/cookoff/functions/fnc_engineFire.sqf +++ b/addons/cookoff/functions/fnc_engineFire.sqf @@ -21,7 +21,7 @@ if (_vehicle getVariable [QGVAR(isEngineSmoking), false]) exitWith {}; _vehicle setVariable [QGVAR(isEngineSmoking), true]; if (local _vehicle) then { - [QGVAR(engineFire), _vehicle] call CBA_fnc_remoteEvent; + [QGVAR(engineFire), _vehicle] call CBA_fnc_globalEvent; }; private _offset = getArray (_vehicle call CBA_fnc_getObjectConfig >> QGVAR(engineSmokeOffset)); diff --git a/docs/wiki/framework/events-framework.md b/docs/wiki/framework/events-framework.md index f4f0cf9fae..5c7a164d30 100644 --- a/docs/wiki/framework/events-framework.md +++ b/docs/wiki/framework/events-framework.md @@ -97,6 +97,13 @@ MenuType: 0 = Interaction, 1 = Self Interaction |`ace_refuel_tick` | [_source, _target, _amount] | Local | Listen | Amount of fuel transferred in a tick |`ace_refuel_stopped` | [_source, _target] | Local | Listen | Refueling has stopped +### 2.10 Cook Off (`ace_cookoff`) + +| Event Key | Parameters | Locality | Type | Description | +|----------|---------|---------|---------|---------|---------| +|`ace_cookoff_cookOff` | [_vehicle] | Global | Listen | Vehicle cook off has started +|`ace_cookoff_cookOffBox` | [_box] | Global | Listen | Ammo box cook off has started +|`ace_cookoff_engineFire` | [_vehicle] | Global | Listen | Engine fire has started ## 3. Usage Also Reference [CBA Events System](https://github.com/CBATeam/CBA_A3/wiki/Custom-Events-System){:target="_blank"} documentation. From 05e99c5154971af6e3e52705abdc3a7ddb10f9d5 Mon Sep 17 00:00:00 2001 From: Italiandrache Date: Thu, 9 Jan 2020 06:02:41 +0100 Subject: [PATCH 035/194] Changed: Updated italian translation (#7405) * Updated italian translation * Minor corrections * Some corrections * Other corrections * Minor translation --- addons/advanced_fatigue/stringtable.xml | 4 ++-- addons/common/stringtable.xml | 1 + addons/csw/stringtable.xml | 2 +- addons/medical/stringtable.xml | 2 +- addons/medical_blood/stringtable.xml | 9 ++++---- addons/medical_treatment/stringtable.xml | 26 ++++++++++++++++-------- addons/quickmount/stringtable.xml | 1 + 7 files changed, 28 insertions(+), 17 deletions(-) diff --git a/addons/advanced_fatigue/stringtable.xml b/addons/advanced_fatigue/stringtable.xml index f81e7f191e..ad2307690f 100644 --- a/addons/advanced_fatigue/stringtable.xml +++ b/addons/advanced_fatigue/stringtable.xml @@ -227,7 +227,7 @@ Fade Stamina bar automatically Blende Ausdauerleiste automatisch aus 體力條自動淡去 - Dissolvenza automatica della barra di resistenza + Dissolvenza automatica della barra della stamina Automaticky schovat lištu výdrže Fondu automatique de la barre d'endurance 自動的にスタミナバーを非表示 @@ -238,7 +238,7 @@ Adjusts transparency of the bar based on stamina status. Passt die Transparenz der Ausdauerleiste abhängig vom Ausdauerstatus an. 依照目前的體力程度調整體力條之透明度 - Regola la trasparenza della barra in base allo stato di resistenza. + Regola la trasparenza della barra in base allo stato di affaticamento. Upravuje průhlednost lišty v závislosti na současném stavu výdrže Règle la transparence de la barre en fonction de l'état d'endurance. スタミナの状態に応じて、自動的にバーの透明度を調整します。 diff --git a/addons/common/stringtable.xml b/addons/common/stringtable.xml index b12f9f4c82..ada9f99252 100644 --- a/addons/common/stringtable.xml +++ b/addons/common/stringtable.xml @@ -1378,6 +1378,7 @@ 在自我互動選單內顯示動作 Mostra a ação no menu de auto-interação セルフ インタラクションに動作を表示 + Mostra le azioni nel menu di interazione con se stessi diff --git a/addons/csw/stringtable.xml b/addons/csw/stringtable.xml index 33fd652cf7..aa67131518 100644 --- a/addons/csw/stringtable.xml +++ b/addons/csw/stringtable.xml @@ -17,7 +17,7 @@ Placer le trépied 三脚を設置 設置三腳架 - Piazza bipode + Piazza treppiede Položit trojnožku Rozłóż Trójnóg diff --git a/addons/medical/stringtable.xml b/addons/medical/stringtable.xml index 76e90a1ea6..dbe0dd1ff9 100644 --- a/addons/medical/stringtable.xml +++ b/addons/medical/stringtable.xml @@ -265,7 +265,7 @@ Selecione quais unidades o sistema médico avançado será habilitado Sélectionne pour quelles unités les soins avancés seront actifs. Kiválasztható, mely egységek számára legyen engedélyezve a fejlett orvosi rendszer - Seleziona per quali unità verrà abilitato i sistema medico avanzato + Seleziona per quali unità verrà abilitato il sistema medico avanzato 選択されたユニットが、アドバンスド医療が使えるようになります 어느 인원에게 고급 의료 시스템을 적용시킬지 선택하십시요. 选择进阶医疗系统影响的对象 diff --git a/addons/medical_blood/stringtable.xml b/addons/medical_blood/stringtable.xml index ac21aeb331..028d88fddd 100644 --- a/addons/medical_blood/stringtable.xml +++ b/addons/medical_blood/stringtable.xml @@ -40,6 +40,7 @@ Povoluje vytváření kapek krve na zemi když jednotka krvácí nebo utrpí zranění. Umożliwia tworzenie śladów krwi, gdy jednostki krwawią lub otrzymują obrażenia. Habilita la creación de sangrecuando la unidad está sangrando o recibe daño + Abilita la creazione di chiazze di sangue quando un'unità sta sanguinando o viene ferita. Max Blood Objects @@ -48,7 +49,7 @@ Макс. кол-во капель крови Limite de objetos de sangue 最大血跡數 - Oggetti Sangue al Massimo + Massimo numero di chiazze di sangue Maximum objektů krve Maksymalna ilość śladów krwi Máxima cantidad de objetos de sangre @@ -60,7 +61,7 @@ Задает макс. количество создаваемых объектов капель крови. Чрезмерное количество может вызвать задержку FPS Define o limite máximo de objetos de gota de sangue que podem ser criados, quantidades excessivas podem causar lag de FPS. 設定最大可存在的血跡數量。太極端的數量會導致幀數低落或卡頓 - Imposta il numero massimo di gocce di sangue che possono essere depositate, quantità eccessive possono causare del lag di FPS. + Imposta il numero massimo di chiazze di sangue che possono essere depositate, quantità eccessive possono causare del lag di FPS. Nastavuje maximum objektů krve na zemi, příliš mnoho může způsobit pokles FPS Definiuje maksymalną ilość śladów krwi, które mogą zostać stworzone, nadmierne ilości mogą powodować spadki FPS. Fija el límite de objetos de sangre que aparecerán, cantidades excesivas pueden causar caídas de FPS @@ -72,7 +73,7 @@ Время жизни капель крови Duração do Sangue 血跡時長 - Vita del sangue + Durata del sangue Životnost krve Czas trwania śladów krwi Duración de la sangre @@ -84,7 +85,7 @@ Управляет временем жизни объектов капель крови. Controla o tempo de vida que um objeto de gota de sangue tem. 控制血跡在地上的時長 - Controlla la durata degli oggetti con gocce di sangue. + Controlla la durata delle chiazze di sangue. Nastavuje jak dlouho objekty krve na zemi vydrží. Kontroluje czas trwania śladów krwi. Controla el tiempo de vida que tendrán los objetos de sangre diff --git a/addons/medical_treatment/stringtable.xml b/addons/medical_treatment/stringtable.xml index 0ead66fb7f..7fd3506d9c 100644 --- a/addons/medical_treatment/stringtable.xml +++ b/addons/medical_treatment/stringtable.xml @@ -20,7 +20,7 @@ Медицинский мусор Lixo 醫療用廢棄物 - Spazzatura + Rifiuti Odpadky Śmieci @@ -79,6 +79,7 @@ Medicação Avançada 進階醫療用品 Pokročilé léky + Medicazione avanzata Enables extended, more in-depth medication handling. Also, enables the use of Adenosine. @@ -88,6 +89,7 @@ Ativa a manipulação avançada de medicações. Também permite o uso de Adenosina e Atropina. 是否擴展藥物管控使其更深度化。並且,啟用腺苷以及阿托品的使用次數 Povoluje hlubší a rozšířené zacházení s léčivy. Také aktivuje Adenosin a Atropin. + Abilita una gestione della medicazione più estesa e approfondita. Permette inoltre l'utilizzo dell'Adenosina. Wound Reopening @@ -96,7 +98,7 @@ Повторное открытие ран Reabrir Feridas 傷口再度裂開 - Riapertura della ferita + Riapertura delle ferite Znovuotevření ran Ponowne Otwarcie Ran @@ -117,10 +119,12 @@ 包紮即痊癒 Guérir les blessures pansées Vyčistit úraz po obvázání + Rimozione ferite bendate Controls whether fully bandaged body parts are healed. 全ての傷に対して包帯を巻いた部分を治癒するかどうかを決定します。 + Controlla se le parti del corpo completamente bendate sono guarite. Locations Boost Training @@ -322,9 +326,11 @@ Self PAK Usage + Utilizzo del kit di pronto soccorso su se stessi Enables the use of PAKs to heal oneself. + Abilita l'utilizzo del kit di pronto soccorso su se stessi. Time Coefficient PAK @@ -443,6 +449,7 @@ Autotransfusão de IV 自我注射點滴 Samoaplikace IV transfuze + Trasfusione endovena su se stessi Enables the use of IV transfusions on oneself. @@ -453,6 +460,7 @@ Permite utilizar bolsas de IV para transfusão em si mesmo 啟用是否能對自己注射點滴 Umožňuje aplikovat IV transfuze na sama sebe. + Abilita la trasfusione in endovena su se stessi. Convert Vanilla Items @@ -499,7 +507,7 @@ Permitir Lixo Médico Activer les détritus Szemét engedélyezése - Abilita Barella + Abilita rifiuti 廃棄物の有効化 啟用醫療用廢棄物 @@ -521,7 +529,7 @@ Макс. кол-во мусора Máximo de Objetos de Lixo 最大醫療用廢棄物數量 - Numero massimo di oggetti spazzatura + Numero massimo di rifiuti Maximum odpadků Maksymalna Ilość Śmieci @@ -532,7 +540,7 @@ Устанавливает максимальное количество создаваемых объектов мусора. Чрезмерное значение может вызвать задержку FPS. Define o limite máximo de objetos de lixo que podem ser criados, quantidade excessivas podem causar lag de FPS. 設定最大可以產生的醫療用廢棄物數量,極端的數量的話可能導致幀數下降。 - Imposta il numero massimo di rifiuti che possono essere generati, quantità eccessive possono causare un ritardo FPS. + Imposta il numero massimo di rifiuti che possono essere generati, quantità eccessive possono diminuire gli FPS. Nastavuje maximum odpadků, které se mohou objevit. Vysoká hodnota m§že negativně ovlivnit FPS. Definiuje maksymalną liczbę śmieci, które mogą zostać stworzone, nadmierne ilości mogą powodować spadki FPS. @@ -543,7 +551,7 @@ Время жизни мусора Duração de Lixo 醫療用廢棄物時長 - Tempo spazzatura + Tempo rifiuti Životnost odpadků Czas trwania Śmieci @@ -554,7 +562,7 @@ Управляет временем жизни объектов мусора в секундах. -1 означает Навсегда. Controla o tempo de vida de objetos de lixo criados em segundos. -1 é para sempre. 控制醫療用廢棄物的時長,以秒為單位。設定為-1則是永不刪除。 - Controlla la durata di vita degli oggetti spazzatura, in pochi secondi. -1 è per sempre. + Controlla la durata di vita dei rifiuti in secondi. -1 è per sempre. Nastavuje za jak dlouho zdravotnické odpadky zmizí. -1 je navždy. Kontroluje czas trwania śmieci w sekundach. -1 pozostawia je na zawsze. @@ -3226,7 +3234,7 @@ %1 jest przytomny %1 ist anprechbar %1 reakcióképes - %1 e' cosciente + %1 è cosciente %1 está respondendo %1 odpovídá %1 は反応あり @@ -3242,7 +3250,7 @@ %1 jest nieprzytomny %1 ist nicht ansprechbar %1 nem reagál - %1 e' incosciente + %1 non risponde %1 não está respondendo %1 neodpovídá %1 の反応なし diff --git a/addons/quickmount/stringtable.xml b/addons/quickmount/stringtable.xml index a967cdef95..635bd3590d 100644 --- a/addons/quickmount/stringtable.xml +++ b/addons/quickmount/stringtable.xml @@ -64,6 +64,7 @@ 這個選項允許你能快速進入你直視的載具 Esta opção permite entrada rápida para o veículo que você está olhando この機能により直接見ている車両へすぐさま搭乗できます。 + Questa opzione permette l'entrata rapida nel veicolo che si sta guardando. Distance From 91c40e44070d609fba10bfb3455992e7fe7289e0 Mon Sep 17 00:00:00 2001 From: Jo David Date: Thu, 9 Jan 2020 07:35:57 +0100 Subject: [PATCH 036/194] Changed: German translation for Medical Rewrite (#7430) * Changes to be committed: Updated german stringtables for new med_rewrite * Changes to be committed: Updated german stringtables for new med_rewrite * Update addons/medical/stringtable.xml Co-Authored-By: Jo David * Update addons/medical/stringtable.xml Co-Authored-By: Jo David * Update addons/medical/stringtable.xml Co-Authored-By: Jo David * Update addons/medical_blood/stringtable.xml Co-Authored-By: Jo David * Update addons/medical_blood/stringtable.xml Co-Authored-By: Jo David * Update addons/medical_damage/stringtable.xml Co-Authored-By: Jo David * Update addons/medical_damage/stringtable.xml Co-Authored-By: Jo David * Update addons/medical_damage/stringtable.xml Co-Authored-By: Jo David * Update addons/medical_blood/stringtable.xml Co-Authored-By: Jo David * Update addons/medical_blood/stringtable.xml Co-Authored-By: Jo David * Update addons/medical_blood/stringtable.xml Co-Authored-By: Jo David * Update addons/medical_damage/stringtable.xml Co-Authored-By: Jo David * Update addons/medical_damage/stringtable.xml Co-Authored-By: Jo David * Update addons/medical_damage/stringtable.xml Co-Authored-By: Jo David * Update addons/medical_damage/stringtable.xml Co-Authored-By: Jo David * Update addons/medical_feedback/stringtable.xml Co-Authored-By: Jo David * Update addons/medical_statemachine/stringtable.xml Co-Authored-By: Jo David * Update addons/medical_statemachine/stringtable.xml Co-Authored-By: Jo David * Update addons/medical_statemachine/stringtable.xml Co-Authored-By: Jo David * Update addons/medical_treatment/stringtable.xml Co-Authored-By: Jo David * Update addons/medical_treatment/stringtable.xml Co-Authored-By: Jo David * Update addons/medical_treatment/stringtable.xml Co-Authored-By: Jo David * Update addons/medical_treatment/stringtable.xml Co-Authored-By: Jo David * Update addons/medical_treatment/stringtable.xml Co-Authored-By: Jo David * Update addons/medical_damage/stringtable.xml Co-Authored-By: Jo David * Update addons/medical_statemachine/stringtable.xml Co-Authored-By: Jo David * Update addons/medical_statemachine/stringtable.xml Co-Authored-By: Jo David * Update addons/medical_treatment/stringtable.xml Co-Authored-By: Jo David * Update addons/medical_treatment/stringtable.xml Co-Authored-By: Jo David * Update addons/medical_treatment/stringtable.xml Co-Authored-By: Jo David * Update addons/medical_treatment/stringtable.xml Co-Authored-By: Jo David * Update addons/medical_treatment/stringtable.xml Co-Authored-By: Jo David * Update addons/medical_treatment/stringtable.xml Co-Authored-By: Jo David * Update addons/medical_treatment/stringtable.xml Co-Authored-By: Jo David * Update addons/medical_treatment/stringtable.xml Co-Authored-By: Jo David * Update addons/medical_treatment/stringtable.xml Co-Authored-By: Jo David * Update addons/medical/stringtable.xml Co-Authored-By: Jo David * Update addons/medical_treatment/stringtable.xml Co-Authored-By: Jo David * Update addons/medical_treatment/stringtable.xml Co-Authored-By: Jo David * Update addons/medical_treatment/stringtable.xml Co-Authored-By: Jo David * Update addons/medical_treatment/stringtable.xml Co-Authored-By: Jo David * Update addons/medical_treatment/stringtable.xml Co-Authored-By: Jo David * Update addons/medical_treatment/stringtable.xml Co-Authored-By: Jo David * Update addons/medical_treatment/stringtable.xml Co-Authored-By: Jo David * Update addons/medical_treatment/stringtable.xml Co-Authored-By: Jo David * Update addons/medical_treatment/stringtable.xml Co-Authored-By: Jo David * Update addons/medical_treatment/stringtable.xml Co-Authored-By: Jo David * Update addons/medical_treatment/stringtable.xml Co-Authored-By: Jo David * Update addons/medical_treatment/stringtable.xml Co-Authored-By: Jo David * Update addons/medical_treatment/stringtable.xml Co-Authored-By: Jo David * Update addons/medical_treatment/stringtable.xml Co-Authored-By: Jo David * Update addons/medical_treatment/stringtable.xml Co-Authored-By: Jo David * Update addons/medical_treatment/stringtable.xml Co-Authored-By: Jo David * Update addons/medical_treatment/stringtable.xml Co-Authored-By: Jo David * Update addons/medical_treatment/stringtable.xml Co-Authored-By: Jo David * Update addons/medical_treatment/stringtable.xml Co-Authored-By: Jo David * Update addons/medical_treatment/stringtable.xml Co-Authored-By: Jo David * Update addons/medical_treatment/stringtable.xml Co-Authored-By: Jo David * Update addons/medical_treatment/stringtable.xml Co-Authored-By: Jo David * Update addons/medical_treatment/stringtable.xml Co-Authored-By: Jo David * Update addons/medical_treatment/stringtable.xml Co-Authored-By: Jo David * Update stringtable.xml Stell ein * Update stringtable.xml * Update stringtable.xml * Update stringtable.xml * Update stringtable.xml * Update addons/medical/stringtable.xml Co-Authored-By: Jo David * Update addons/medical_blood/stringtable.xml Co-Authored-By: Jo David * Update addons/medical_blood/stringtable.xml Co-Authored-By: Jo David * Update addons/medical/stringtable.xml Co-Authored-By: Jo David * Update addons/medical_blood/stringtable.xml Co-Authored-By: Jo David * Update addons/medical_treatment/stringtable.xml Co-Authored-By: Jo David * Update addons/medical_treatment/stringtable.xml Co-Authored-By: Jo David * Update addons/medical_treatment/stringtable.xml Co-Authored-By: Jo David * Update addons/medical_treatment/stringtable.xml Co-Authored-By: Jo David * Update addons/medical_treatment/stringtable.xml Co-Authored-By: Jo David * Update addons/medical_statemachine/stringtable.xml Co-Authored-By: Jo David * Update addons/medical_damage/stringtable.xml Co-Authored-By: Jo David * Update addons/medical_treatment/stringtable.xml Co-Authored-By: Jo David * Update addons/medical_treatment/stringtable.xml Co-Authored-By: Jo David * Update addons/medical_treatment/stringtable.xml Co-Authored-By: Jo David * Update addons/medical_treatment/stringtable.xml Co-Authored-By: Jo David * Update addons/medical_treatment/stringtable.xml Co-Authored-By: Jo David * Update addons/medical_treatment/stringtable.xml Co-Authored-By: Jo David * Update addons/medical_treatment/stringtable.xml Co-Authored-By: Jo David * Update addons/medical_treatment/stringtable.xml Co-Authored-By: Jo David * Update stringtable.xml added a missing string * Update stringtable.xml * Update stringtable.xml * remove and merge duplicate keys Co-authored-by: padddyyy <50599448+padddyyy@users.noreply.github.com> --- addons/medical/stringtable.xml | 14 ++++- addons/medical_blood/stringtable.xml | 5 ++ addons/medical_damage/stringtable.xml | 9 +++ addons/medical_feedback/stringtable.xml | 2 + addons/medical_gui/stringtable.xml | 2 + addons/medical_statemachine/stringtable.xml | 5 ++ addons/medical_treatment/stringtable.xml | 62 +++++++++++++++++++-- 7 files changed, 93 insertions(+), 6 deletions(-) diff --git a/addons/medical/stringtable.xml b/addons/medical/stringtable.xml index dbe0dd1ff9..1b3db93cbb 100644 --- a/addons/medical/stringtable.xml +++ b/addons/medical/stringtable.xml @@ -19,7 +19,7 @@ Unconscious Wake Up Chance - Wahrscheinlichkeit aufzuwachen + Wahrscheinlichkeit um aufzuwachen 気絶から覚醒の可能性 Шанс очнуться при потере сознания Chance de reprendre connaissance @@ -32,7 +32,7 @@ The probablity that a unit with stable vitals will wake up from unconsciousness (checked every 15 seconds). - Wahrscheinlichkeit, dass eine bewusstlose Person mit stabilen Vitalwerten wieder aufwacht ()Überprüfung alle 15 Sekunden) + Wahrscheinlichkeit, dass eine bewusstlose Person mit stabilen Vitalwerten wieder aufwacht (Überprüfung alle 15 Sekunden) 容体が安定しているユニットが気絶する確率を決定できます。(15 秒毎に確認) Вероятность, что стабилизированный юнит очнется от потери сознания (Проверяется каждые 15 сек) La probabilité qu'une unité en état stable puisse reprendre conscience spontanément (état vérifié toutes les 15 secondes). @@ -53,6 +53,7 @@ Szansa na wybudzenie po użyciu Epinefryny Epinefrina Aumenta a chance de acordar Epinefrina, aumenta la posibilidad de despertar + Epinephrin erhöht die Aufwachwahrscheinlichkeit Increases how often spontaneous wake up checks happen when patient has Epinephrine in their system. @@ -64,6 +65,7 @@ Zwiększa częstotliwość spontanicznych wybudzeń, gdy pacjent ma epinefrynę w swoim organizmie. Aumenta o quão frequentemente checagens de acordar acontecem quando o paciente possui epinefrina no seu sistema Incrementa con que frecuencia se comprueba el despertar cuando el paciente tiene epinefrina en su sistema + Erhöht wie oft Aufwachprüfungen passieren, wenn ein Patient Epinephrin im Blutkreislauf hat. Limping @@ -76,6 +78,7 @@ Kulhání Kuśtykanie Cojera + Humpeln Controls whether open or bandaged wounds cause a person to limp. @@ -87,6 +90,7 @@ Kontroluje, czy otwarte lub zabandażowane rany powodują utykanie jednostki. Controla se ferimentos abertos ou enfaixados causam a pessoa a mancar Controla si las heridas abiertas o vendadas hacen que una persona cojee. + Stellt ein, ob offene oder bandagierte Wunden eine Person zum Humpeln bringen. Limp on Open Wounds @@ -99,6 +103,7 @@ Kulhat s otevřeným zraněním Kuśtykanie przy otwartych ranach Cojera en heridas abiertas + Humpeln bei offenen Wunden Limp on Open or Bandaged Wounds @@ -111,6 +116,7 @@ Kulhat s otevřeným i zavázaným zraněním Kuśtykanie przy otwartych ranach lub zabandażowanych ranach Cojera en heridas abiertas o vendadas + Humpeln bei offenen oder bandagierten Wunden Fractures @@ -123,6 +129,7 @@ Zlomeniny Złamania Fracturas + Brüche Controls the effect of using splints to treat fractures.\nWhen disabled, injuries will not cause fractures. @@ -134,6 +141,7 @@ Kontroluje efekt użycia szyn do leczenia złamań.\n Po wyłączeniu obrażenia nie powodują złamań. Controla o efeito de uso de talas para tratar fraturas. \nQunado desabilitado, ferimentos não causam fraturas. Controla el efecto del uso de férulas para tratar fracturas. \n Cuando está desactivado, las lesiones no causan fracturas. + Kontrolliert den Effekt wenn Schienen verwendet werden, um Knochenbrüche zu behandeln.\nWenn diese Einstellung nicht aktiviert ist, verursachen Verletzungen keine Knochenbrüche. Splints Fully Heal Fractures @@ -146,6 +154,7 @@ Dlahy kompletně léčí zlomeniny Szyny leczą zupełnie złamania Férulas sanan completamente las fracturas + Schienen heilen Knochenbrüche vollständig Splints Heal, but Cannot Sprint @@ -158,6 +167,7 @@ Dlahy léčí, ale zněmožňují sprintování Szyny leczą, ale uniemożliwiają sprint Las férulas sanan, pero no pueden correr + Schienen heilen, aber ermöglichen kein Sprinten Remote Controlled AI diff --git a/addons/medical_blood/stringtable.xml b/addons/medical_blood/stringtable.xml index 028d88fddd..758dda8577 100644 --- a/addons/medical_blood/stringtable.xml +++ b/addons/medical_blood/stringtable.xml @@ -41,6 +41,7 @@ Umożliwia tworzenie śladów krwi, gdy jednostki krwawią lub otrzymują obrażenia. Habilita la creación de sangrecuando la unidad está sangrando o recibe daño Abilita la creazione di chiazze di sangue quando un'unità sta sanguinando o viene ferita. + Ermöglicht das Erstellen von Blutstropfen, wenn Einheiten am Bluten sind oder Schaden nehmen. Max Blood Objects @@ -53,6 +54,7 @@ Maximum objektů krve Maksymalna ilość śladów krwi Máxima cantidad de objetos de sangre + Maximale Anzahl an Blutstropfen-Objekten Sets the maximum number of blood drop objects which can be spawned, excessive amounts can cause FPS lag. @@ -65,6 +67,7 @@ Nastavuje maximum objektů krve na zemi, příliš mnoho může způsobit pokles FPS Definiuje maksymalną ilość śladów krwi, które mogą zostać stworzone, nadmierne ilości mogą powodować spadki FPS. Fija el límite de objetos de sangre que aparecerán, cantidades excesivas pueden causar caídas de FPS + Legt die maximale Anzahl an Blutstropfen-Objekten fest, die erscheinen können. Eine zu hoch eingestellte Anzahl kann Lags verursachen. Blood Lifetime @@ -77,6 +80,7 @@ Životnost krve Czas trwania śladów krwi Duración de la sangre + Anzeigedauer der Blutstropfen Controls the lifetime of blood drop objects. @@ -89,6 +93,7 @@ Nastavuje jak dlouho objekty krve na zemi vydrží. Kontroluje czas trwania śladów krwi. Controla el tiempo de vida que tendrán los objetos de sangre + Kontrolliert die Anzeigedauer der Blutstropfen-Objekte. Only Players diff --git a/addons/medical_damage/stringtable.xml b/addons/medical_damage/stringtable.xml index 19e3ce0d07..a23ae5bb3a 100644 --- a/addons/medical_damage/stringtable.xml +++ b/addons/medical_damage/stringtable.xml @@ -12,6 +12,7 @@ Kritická míra poškození pro hráče Próg Obrażeń Krytycznych Gracza Límite de daño crítico al jugador + Schwelle für kritischen Spielerschaden Sets the amount of damage a player can receive before going unconscious. @@ -24,6 +25,7 @@ Nastavuje kolik poškození hráč může obdržet než upadne do bezvědomí. Definiuje ilość obrażeń jaką może przyjąć gracz przed straceniem przytomności. Fijar la cantidad de daño que un jugador puede recivir antes de caer inconsciente + Legt die Höhe des Schadens fest, den ein Spieler erhalten kann, bevor er ohnmächtig wird. AI Critical Damage Threshold @@ -36,6 +38,7 @@ Kritická míra poškození pro AI Próg Obrażeń Krytycznych AI Límite de daño crítico de la IA + Schwelle für kritischen KI-Schaden Sets the amount of damage an AI unit can receive before going unconscious. @@ -48,6 +51,7 @@ Nastavuje kolik poškození AI může obdržet než upadne do bezvědomí. Definiuje ilość obrażeń jaką może przyjąć AI przed straceniem przytomności Fijar la cantidad de daño que la IA puede recivir antes de caer inconsciente + Legt die Höhe des Schadens fest, den eine KI-Einheit erhalten kann, bevor sie ohnmächtig wird. Scrape @@ -539,6 +543,7 @@ Źródło obrażeń krytycznych Fonte de Dano Fatal Origen de daño fatal + Quelle für tödlichen Schaden Determines what damage can be fatal @@ -550,6 +555,7 @@ Określa jakie obrażenia mogą być śmiertelne Determina qual dano pode ser fatal Determina qué daño puede ser fatal + Bestimmt welcher Schaden tödlich ist. Only large hits to vital organs @@ -561,6 +567,7 @@ Tylko duże trafienia w ważne narządy Apenas danos largos a órgãos vitais Solo grandes heridas en organos vitales + Nur schwere Treffer an lebenswichtigen Organen Sum of trauma @@ -572,6 +579,7 @@ Wiele Urazów Soma do trauma Suma de traumatismos + Summe aller Traumata Either @@ -583,6 +591,7 @@ Zarówno Ou Ambos + Beide diff --git a/addons/medical_feedback/stringtable.xml b/addons/medical_feedback/stringtable.xml index d132c6903d..a504411883 100644 --- a/addons/medical_feedback/stringtable.xml +++ b/addons/medical_feedback/stringtable.xml @@ -40,6 +40,7 @@ Nastavuje který efekt bolesti bude používán. Wybiera rodzaj efektu bólu. Selecciona el tipo de efecto de dolor + Wählt den zu benutzenden Schmerzeffekt aus. White Flashing @@ -93,6 +94,7 @@ Tylko efekt mocnego bólu Apenas efeito de dor alta Solo efecto de dolor fuerte + Nur bei starken Schmerzen diff --git a/addons/medical_gui/stringtable.xml b/addons/medical_gui/stringtable.xml index bc0d0bc7c7..e6d8bc87f7 100644 --- a/addons/medical_gui/stringtable.xml +++ b/addons/medical_gui/stringtable.xml @@ -12,6 +12,7 @@ GUI Graficzny Interfejs Użytkownika Interfaz gráfica + Graphische Benutzeroberfläche Enable Medical Actions @@ -1020,6 +1021,7 @@ Częściowe %1 Parcial%1 Parcial %1 + Partiell %1 diff --git a/addons/medical_statemachine/stringtable.xml b/addons/medical_statemachine/stringtable.xml index ad82b9954e..c1d6aabd2c 100644 --- a/addons/medical_statemachine/stringtable.xml +++ b/addons/medical_statemachine/stringtable.xml @@ -22,6 +22,7 @@ Smrtelná zranění hráčů Śmiertelne Obrażenia Gracza Lesioni mortali del giocatore + Tödliche Spielerverletzungen Controls when players can receive fatal injuries. A fatal injury is caused by significant damage to the head or body. @@ -32,6 +33,7 @@ Nastavuje zda hráči mohou utrpět smrtelné zranění. Smrtelné zranění je utrpěto významným poškozením hlavy nebo těla. Definiuje, kiedy gracze mogą otrzymać śmiertelne obrażenia. Śmiertelne obrażenia są spowodowane znacznym uszkodzeniem głowy lub torsu. Controlla quando i giocatori possono ricevere infortuni mortali. Una lesione mortale è causata da un danno significativo alla testa o al corpo. + Legt fest, wann Spieler tödliche Verletzungen erleiden können. Eine tödliche Verletzung wird bei erheblichem Schaden an Kopf oder Torso verursacht. AI Fatal Injuries @@ -42,6 +44,7 @@ Smrtelná zranění AI Śmiertelne obrażenia AI. AI Lesioni mortali + Tödliche KI-Verletzungen Controls when AI can receive fatal injuries. A fatal injury is caused by significant damage to the head or body.\nWhen set to "Always", this effectively produces "AI Instant Death" behaviour as AI will immediately die from any fatal injury.\nNOTE: Any mode other than "Always" requires AI Unconsciousness to be enabled. @@ -52,6 +55,7 @@ Nastavuje zda AI může utrpět smrtelné zranění. Smrtelné zranění je utrpěto významným poškozením hlavy nebo těla.\nPokud je tato možnost nastavena na "Vždy", efektivně nastává stav "Povolit okamžitou smrt AI", protože AI okamžitě zemře při jakémkoliv smrtelném zranění.\nPOZNÁMKA: Jakýkoliv jiný stav než "Vždy" potřebuje zapnutou možnost "Bezvědomí AI". Definiuje, kiedy AI może otrzymać śmiertelne obrażenia. Śmiertelne obrażenia są spowodowane znacznym uszkodzeniem głowy lub torsu.\n Ustawienie "Zawsze" powoduje "Natychmiastową śmierć AI", ponieważ AI natychmiast umiera z powodu śmiertelnych obrażeń.\n UWAGA: Każdy inny tryb niż "Zawsze" wymaga włączenia nieprzytomności AI. Controlla quando l'IA può ricevere ferite mortali. Una lesione mortale è causata da un danno significativo alla testa o al corpo. Se impostato su "Sempre", questo produce efficacemente il comportamento "Morte istantanea AI", poiché l'IA morirà immediatamente a causa di qualsiasi lesione mortale.\NOTA: Qualsiasi modalità diversa da "Sempre" richiede l'attivazione dell'Incoscienza AI. + Legt fest, wann KI-Einheiten tödliche Verletzungen erleiden können. Eine tödliche Verletzung wird bei erheblichem Schaden an Kopf oder Körper verursacht.\nWenn "Immer" eingestellt ist, erzeugt diese Einstellung das "KI Sofort-Tod" Verhalten. KI-Einheiten sterben sofort durch jede tödliche Verletzung.\nBEACHTE: Eine andere Einstellung als "Immer" bedingt, dass "KI-Bewusstlosigkeit" verwendet wird. AI Unconsciousness @@ -78,6 +82,7 @@ Nastavuje zda AI může upadnout do bezvědomí namísto okamžité smrti.\nToto nastavení funguje společně s "Smrtelná zranění AI" protože srdeční zástava potřebuje možnost upadnout do bezvědomí.\nTyto možnosti jsou separované, protože jednotky mohou upadnout do bezvědomí kvůli kritickému stavu způsobenému ne smrtelnými zraněními.\nV podstatě to znamená, že pokud chcete zapnout srdeční zástavu pro AI, tato možnost musí být zapnutá. Definiuje, czy AI może stracić przytomność zamiast natychmiast zginąć.\n Ta opcja działa razem z ustawieniem "Śmiertelne urazy AI", ponieważ przejście do zatrzymania akcji serca wymaga, aby jednostka mogła stracić przytomność.\n Jednak te ustawienia są rozdzielone, ponieważ jednostki mogą stracić przytomność z powodu krytycznych czynności życiowych powstałych w wyniku urazów innych niż śmiertelne.\n W istocie oznacza to, że aby umożliwić zatrzymanie akcji serca dla jednostek AI, to ustawienie musi być włączone. Controlla se l'IA può perdere i sensi invece di morire immediatamente. Questa impostazione funziona insieme all'impostazione "AI Fatal Injuries" poiché, per andare in arresto cardiaco, è necessario che l'unità sia in grado di perdere i sensi. Tuttavia, queste impostazioni sono separate perché le unità possono perdere i sensi da segni vitali critici derivanti da lesioni non mortali. + Kontrolliert, ob KI bewusstlos werden kann anstatt sofort zu sterben.\nDiese Einstellung funktioniert zusammen mit der Einstellung "Tödliche KI-Verletzungen". Denn wenn eine Einheit einen Herzstillstand erleiden soll, muss diese auch in der Lage sein, bewusstlos zu werden.\nDennoch sind diese beiden Einstellungen voneinander getrennt, da Einheiten auch durch kritische Vitalwerte bewusstlos werden können, die durch nicht tödliche Verletzungen aufgetreten sind.\nZusammengefasst bedeutet das, dass wenn KI-Einheiten einen Herzstillstand erleiden sollen, diese Einstellung aktiviert sein muss. Cardiac Arrest Time diff --git a/addons/medical_treatment/stringtable.xml b/addons/medical_treatment/stringtable.xml index 7fd3506d9c..6899affb8b 100644 --- a/addons/medical_treatment/stringtable.xml +++ b/addons/medical_treatment/stringtable.xml @@ -23,6 +23,7 @@ Rifiuti Odpadky Śmieci + Abfall Advanced Diagnose @@ -46,6 +47,7 @@ Abilita le azioni di controllo del polso, controllo della pressione sanguigna e controllo della risposta al trattamento invece dell'azione generica Diagnose.\ Se disabilitata, l'azione di RCP sarà mostrata solo quando l'esecuzione della RCP è appropriata.\Le azioni abilitate da questa impostazione sono necessarie per determinare se una persona è in stato di incoscienza o in arresto cardiaco. Povoluje kontrolu srdečního tepu, krevního tlaku a reakce pacienta namísto univerzální diagnózy.\nKdyž je tato možnost vypnuta, CPR akce bude dostupná pouze pokud je vhodné ji provést.\nAkce které tato možnost zapíná jsou nutné k určení zda je pacient v bezvědomí nebo má srdeční zástavu. Włącza opcje sprawdzania Pulsu, Ciśnienia Tętniczego Krwi i Reakcje Na Ból, zamiast bardziej ogólnej akcji Diagnozuj.\n Po wyłączeniu tej opcji akcja RKO będzie wyświetlana tylko wtedy, gdy jej wykonanie będzie odpowiednie.\n Opcja, która włącza to ustawienie jest potrzebna do ustalenia, czy osoba jest nieprzytomna lub ma zatrzymanie krążenia. + Ermöglicht die 'Überprüfe Puls', 'Überprüfe Blutdruck' und 'Überprüfe Reaktionen' Behandlungsaktionen anstatt der einfachen 'Diagnose' Behandlungsaktion.\nWenn diese Einstellung nicht aktiviert ist, wird die "HLW"-Aktion nur angezeigt, wenn die Anwendung von HLW angemessen ist.\nDie Aktionen, die das Aktivieren dieser Einstellung ermöglicht, werden benötigt um zu bestimmen, ob eine Person bewusstlos ist oder einen Herzstillstand erleidet. Advanced Bandages @@ -61,6 +63,7 @@ Enables treatment actions for different bandage types instead of the generic Bandage action. + Ermöglicht Behandlungsaktionen für verschiedene Bandagentypen anstelle der gewöhnlichen Bandageaktionen. 有効化すると通常の包帯動作に代わり、様々な種類がある包帯で治療ができます。 Active différents types de bandages, à choisir judicieusement en fonction des plaies. Включает действия для разных типов повязок, вместо общего действия «Перевязка». @@ -90,6 +93,7 @@ 是否擴展藥物管控使其更深度化。並且,啟用腺苷以及阿托品的使用次數 Povoluje hlubší a rozšířené zacházení s léčivy. Také aktivuje Adenosin a Atropin. Abilita una gestione della medicazione più estesa e approfondita. Permette inoltre l'utilizzo dell'Adenosina. + Ermöglicht erweiterte, mehr tiefgründigere Anwendung von Medikationen. Ebenso ermöglicht es die Benutzung von Adenosin. Wound Reopening @@ -101,6 +105,7 @@ Riapertura delle ferite Znovuotevření ran Ponowne Otwarcie Ran + Wunden Wiederöffnung Enables the reopening of bandaged wounds. Requires Advanced Bandages to be enabled. @@ -112,6 +117,7 @@ Povoluje znovuotevírání obvázaných zranění. Vyžaduje zapnuté Pokročilé obvazy. Umożliwia ponowne otwarcie się zabandażowanych ran. Wymaga włączenia opcji Zaawansowane Bandaże. Permette la riapertura delle ferite fasciate. Richiede l'abilitazione di Bende Avanzate. + Ermöglicht das Wiederöffnen von bandagierten Wunden. Benötigt, dass 'Erweiterte Bandagen' aktiviert ist. Clear Trauma After Bandage @@ -120,11 +126,13 @@ Guérir les blessures pansées Vyčistit úraz po obvázání Rimozione ferite bendate + Entferne Trauma nach Bandagierung. Controls whether fully bandaged body parts are healed. 全ての傷に対して包帯を巻いた部分を治癒するかどうかを決定します。 Controlla se le parti del corpo completamente bendate sono guarite. + Kontrolliert, ob voll bandagierte Körperteile geheilt werden. Locations Boost Training @@ -151,6 +159,7 @@ Aumentare la formazione medica quando si è in veicoli o strutture mediche. Se non addestrato diventa medico, il medico diventa dottore. Zvyšuje zdravotnickou úroveň v zdravotnických objektech a vozidlech. Nevycvičení se stávají mediky a medici se stávají doktory. Zwiększ wyszkolenie medyczne w pojazdach lub obiektach medycznych. Niewytrenowana jednostka zostaje medykiem, medyk zostaje lekarzem. + Verbessere 'Fähigkeiten-Level' in medizinischen Fahrzeugen oder Einrichtungen. Untrainiert wird zu Sanitäter, Sanitäter wird zu Arzt. Allow Shared Equipment @@ -162,6 +171,7 @@ Consentire la condivisione di attrezzature Povolit sdílení vybavení Zezwalaj na współdzielenie sprzętu + Erlaube geteilte Ausrüstung Controls whether medical equipment can be shared between the patient and the medic. @@ -173,6 +183,7 @@ Controlla se le attrezzature mediche possono essere condivise tra il paziente e il medico. Nastavuje zda jak je zdravotnické vybavení sdíleno mezi medikem a pacientem. Kontroluje, czy sprzęt medyczny ma być dzielony między pacjentem a medykiem. + Legt fest, ob medizinische Ausrüstung zwischen Patient und Sanitäter geteilt werden kann. Patient's Equipment First @@ -184,6 +195,7 @@ L'attrezzatura del paziente prima di tutto Prvně pacientovo vybavení Najpierw sprzęt pacjenta + Ausrüstung des Patienten zuerst Medic's Equipment First @@ -195,6 +207,7 @@ Prima le attrezzature mediche Prvně medikovo vybavení Najpierw sprzęt medyka + Ausrüstung des Sanitäters zuerst Allow Epinephrine @@ -221,6 +234,7 @@ Livello di addestramento richiesto per usare l'Epinefrina. Úroveň výcviku pro použití epinefrinu Poziom wyszkolenia wymagany do korzystania z epinefryny. + 'Fähigkeiten-Level', das benötigt wird, um Epinephrin zu nutzen. Locations Epinephrine @@ -247,6 +261,7 @@ Controlli dove si può usare l'Epinefrina. Nastavuje kde může být epinefrin použit Kontroluje, gdzie można stosować epinefrynę. + Legt fest, wo Epinephrin genutzt werden kann. Allow PAK @@ -274,6 +289,7 @@ Livello di formazione richiesto per l'utilizzo di un PAK. Úroveň výcviku pro použití osobní lékárničky (PAK). Poziom wyszkolenia wymagany do korzystania z apteczek osobistych. + 'Fähigkeiten-Level', das benötigt wird, um ein Erste-Hilfe-Set zu nutzen. Locations PAK @@ -301,6 +317,7 @@ Controlla dove può essere usato un PAK. Nastavuje kde může být osobní lékárnička (PAK) použita. Kontroluje, gdzie można korzystać z apteczek osobistych. + Kontrolliert, wo ein Erste-Hilfe-Set benutzt werden kann. Consume PAK @@ -312,6 +329,7 @@ Consumare PAK Spotřebuj osobní lékárničku (PAK) Zużycie apteczek osobistych + Verbrauche Erste-Hilfe-Set Controls whether a PAK should be consumed after use. @@ -323,14 +341,17 @@ Controlla se un PAK deve essere consumato dopo l'uso. Nastavuje zda má být osobní lékárnička (PAK) spotřebována po použití. Kontroluje, czy apteczka osobista powinna być zużyta po użyciu. - - - Self PAK Usage - Utilizzo del kit di pronto soccorso su se stessi + Kontrolliert, ob ein Erste-Hilfe-Set nach der Benutzung verbraucht werden soll. Enables the use of PAKs to heal oneself. Abilita l'utilizzo del kit di pronto soccorso su se stessi. + Erlaubt die Benutzung des Erste-Hilfe-Sets, um sich selbst zu heilen. + + + Self PAK Usage + Utilizzo del kit di pronto soccorso su se stessi + Erste-Hilfe-Set Selbstanwendung Time Coefficient PAK @@ -342,6 +363,7 @@ Coefficiente temporale PAK Časový koeficient pro osobní lékárničku (PAK) Współczynnik czasu apteczek osobistych + Zeit-Koeffizient Erste-Hilfe-Set Modifies how long a PAK takes to apply.\nThe treatment time is based on the total body part damage multiplied by this coefficient, with a minimum of 10 seconds. @@ -353,6 +375,7 @@ Il tempo di trattamento si basa sul danno totale della parte del corpo moltiplicato per questo coefficiente, con un minimo di 10 secondi. Upravuje jak dlouho trvá léčba pomocí osobní lékárničky (PAK).\nDoba léčby závisí na celkovém poškození částí těla vynásobeném tímto koeficientem, přičemž minimum je 10 vteřin. Zmienia czas potrzebny na zastosowanie apteczki osobistej.\n Czas leczenia jest oparty na całkowitym uszkodzeniu części ciała pomnożonym przez ten współczynnik, wynosi minimum 10 sekund. + Modifiziert, wie lange ein Erste-Hilfe-Set für die Anwendung benötigt.\nDie Behandlungszeit basiert auf der Anzahl des Gesamtkörperschadens multipliziert mit diesem Koeffizienten, mit einen Minimum von 10 Sekunden. Allow Surgical Kit @@ -364,6 +387,7 @@ Permettere il kit chirurgico Povolit sešívací sadu Ograniczenia Użycia Zestawu Chirurgicznego + Erlaube Operations-Set Training level required to use a surgical kit. @@ -375,6 +399,7 @@ Livello di formazione richiesto per l'utilizzo di un kit chirurgico. Úroveň výcviku pro použití sešívací sady. Poziom wyszkolenia wymagany do korzystania z Zestawu Chirurgicznego. + 'Fähigkeiten-Level', das benötigt wird um ein Operations-Set zu nutzen. Locations Surgical Kit @@ -386,6 +411,7 @@ Luoghi Kit chirurgico Nastavuje kde může být sešívací sada použita Miejsca użycia Zestawu Chirurgicznego + Orte für Operations-Set Controls where a surgical kit can be used. @@ -397,6 +423,7 @@ Controlla dove può essere usato un kit chirurgico. Nastavuje zda má být sešívací sada spotřebována po použití. Kontroluje, gdzie można użyć Zestawu Chirurgicznego. + Legt fest, wo ein Operations-Set genutzt werden kann. Consume Surgical Kit @@ -408,6 +435,7 @@ Consumare Kit Chirurgico Spotřebuj sešívací sadu Zużycie Zestawów Chirurgicznych + Verbrauche Operations-Set Controls whether a surgical kit should be consumed after use. @@ -419,6 +447,7 @@ Controlla se un kit chirurgico deve essere consumato dopo l'uso. Nastavuje Kontroluje, czy Zestaw Chirurgiczny powinien być zużyty po użyciu. + Legt fest, ob ein Operations-Set nach der Anwendung verbraucht werden soll. Self Stitching @@ -429,6 +458,7 @@ Auto cucitura Samo-zašívání Zszywanie własnych ran + Selbstnähen Enables the use of surgical kits to stitch oneself. @@ -439,6 +469,7 @@ Umožňuje použití sešívací sady na sebe sama. Umożliwia użycie Zestawu Chirurgicznego na sobie. Permette l'uso di kit chirurgici per ricucirsi. + Ermöglicht die Benutzung des Operations-Sets, um sich selbst zu nähen. Self IV Transfusion @@ -496,6 +527,7 @@ Rimuovere solo Pouze odstranit Tylko Usuwaj + Nur Entfernen Enable Litter @@ -521,6 +553,7 @@ Permette la creazione di rifiuti al momento del trattamento. Umožňuje vytvořit odpadky při léčbě. Umożliwia tworzenie śmieci po przeprowadzaniu zabiegu. + Ermöglicht das Produzieren von Abfall während einer Behandlung. Max Litter Objects @@ -532,6 +565,7 @@ Numero massimo di rifiuti Maximum odpadků Maksymalna Ilość Śmieci + Maximale Anzahl an Abfall-Objekten Sets the maximum number of litter objects which can be spawned, excessive amounts can cause FPS lag. @@ -543,6 +577,7 @@ Imposta il numero massimo di rifiuti che possono essere generati, quantità eccessive possono diminuire gli FPS. Nastavuje maximum odpadků, které se mohou objevit. Vysoká hodnota m§že negativně ovlivnit FPS. Definiuje maksymalną liczbę śmieci, które mogą zostać stworzone, nadmierne ilości mogą powodować spadki FPS. + Bestimmt die maximal Anzahl an Abfall-Objekten, die erstellt werden können. Eine zu hohe Anzahl kann Lag verursachen. Litter Lifetime @@ -554,6 +589,7 @@ Tempo rifiuti Životnost odpadků Czas trwania Śmieci + Abfall Anzeigedauer Controls the lifetime of litter objects, in seconds. -1 is forever. @@ -565,6 +601,7 @@ Controlla la durata di vita dei rifiuti in secondi. -1 è per sempre. Nastavuje za jak dlouho zdravotnické odpadky zmizí. -1 je navždy. Kontroluje czas trwania śmieci w sekundach. -1 pozostawia je na zawsze. + Kontrolliert die Anzeigedauer von Abfall-Objekten in Sekunden. -1 ist für immer. Anyone @@ -592,6 +629,7 @@ Medici Medikové Medycy + Sanitäter Doctors @@ -603,6 +641,7 @@ Dottori Doktoři Doktorzy + Ärzte Medical Facilities @@ -614,6 +653,7 @@ Strutture mediche Zdravotnické zařízení Obiekty Medyczne + Medizinische Einrichtungen Vehicles & Facilities @@ -625,6 +665,7 @@ Zdravotnická zařízení a vozidla Veicoli e strutture Pojazdy i Obiekty + Fahrzeuge und Einrichtungen CPR Success Chance @@ -635,6 +676,7 @@ 心肺復甦術成功率 Pravděpodobnost úspěchu CPR Possibilità di successo della RCP + HLW Erfolgsrate Probability that CPR will be successful in restoring heart rhythm. @@ -645,6 +687,7 @@ 心肺復甦術恢復心率的機率。 Pravděpodobnost, že CPR obnoví srdeční tep. E' probabile che la rianimazione RCP abbia successo nel ripristinare il ritmo cardiaco. + Wahrscheinlichkeit, dass HLW bei der Wiederherstellung des Herzrhythmus erfolgreich sein wird. Holster Required @@ -654,6 +697,7 @@ Fondina richiesta Vyžadováno schování zbraně Wymagana broń w kaburze + Holstern benötigt Controls whether weapons must be holstered / lowered in order to perform medical actions.\nExcept Exam options allow examination actions (checking pulse, blood pressure, response) at all times regardless of this setting. @@ -663,6 +707,7 @@ Nastavuje zda musí být zbraň schovaná/snížená pro provádění zdravotnických úkonů.\nKromě Diagnózy - Umožňuje diagnostické akce (kontrola srdečního tepu, tlaku krve a reakci pacienta) vždy bez ohledu na nastavení schování zbraně. Kontroluje, czy broń musi być schowana/opuszczona w celu wykonania leczenia pacjenta.\n Za wyjątkiem diagnozowania - umożliwia wykonywanie czynności kontrolnych (sprawdzanie tętna, ciśnienia krwi, reakcji) przez cały czas, niezależnie od ustawienia Wymagana broń w kaburze. Controlla se le armi devono essere tenute nella fondina / abbassate per poter eseguire le azioni mediche.\Except Exam - Permette azioni di esame (controllo del polso, della pressione sanguigna, della risposta) in ogni momento indipendentemente dall'impostazione della fondina richiesta. + Kontrolliert, ob Waffen geholstert/gesenkt werden müssen, um medizinische Aktionen durchzuführen.\nAusgenommen die eingestellten Untersuchungsoptionen erlauben Diagnose-Aktionen (Überprüfung von Puls, Blutdruck, Reaktion) jederzeit. Lowered or Holstered @@ -672,6 +717,7 @@ Abbassato o con fondina Snížena nebo Schována Opuszczona lub w kaburze + Gesenkt oder Geholstert Lowered or Holstered (Except Exam) @@ -681,6 +727,7 @@ Abbassato o con la fondina (eccetto l'esame) Snížena nebo Schována (kromě Diagnózy) Opuszczona lub w kaburze (oprócz diagnozowania) + Gesenkt oder Geholstert (Ausnahme Untersuchung) Holstered Only @@ -690,6 +737,7 @@ Solo con la fondina Pouze Schována Tylko w Kaburze + Nur geholstert Holstered Only (Except Exam) @@ -699,6 +747,7 @@ Solo fondina (eccetto esame) Pouze Schována (kromě Diagnózy) Tylko w Kaburze (oprócz diagnozowania) + Nur geholstert (Ausnahme Untersuchung) [ACE] Medical Supply Crate (Basic) @@ -1108,6 +1157,7 @@ Gessatura Dlaha Szyna + Schiene Stabilizes a fractured limb @@ -1119,6 +1169,7 @@ Stabilizza un arto fratturato Znehybňuje zlomenou končetinu Stabilizuje złamaną kończynę + Stabilisiere einen Bruch Morphine autoinjector @@ -2326,6 +2377,7 @@ Aplikovat dlahu Załóż szynę Aplicar férula + Schiene anlegen Applying Splint... @@ -2338,6 +2390,7 @@ Aplikuji dlahu... Zakładanie szyny Aplicando férula... + Lege Schiene an ... Diagnose @@ -3779,6 +3832,7 @@ %1 は添え木を当てた %1 założył szynę %1 aplicada una férula + %1 hat eine Schiene angelegt %1 used Personal Aid Kit From 016d0d6d20857ff8eacddc46396acb81998afaea Mon Sep 17 00:00:00 2001 From: Jo David Date: Thu, 9 Jan 2020 07:39:11 +0100 Subject: [PATCH 037/194] Use Head and Torso wording instead of Head and Body (#7399) * Use Head and Torso wording instead of Head and Body title * Update addons/medical_statemachine/stringtable.xml Co-Authored-By: classic * Update addons/medical_statemachine/stringtable.xml Co-Authored-By: classic * fix indentation * change italian translation Co-authored-by: classic --- addons/medical_statemachine/stringtable.xml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/addons/medical_statemachine/stringtable.xml b/addons/medical_statemachine/stringtable.xml index c1d6aabd2c..8675dcddea 100644 --- a/addons/medical_statemachine/stringtable.xml +++ b/addons/medical_statemachine/stringtable.xml @@ -25,14 +25,14 @@ Tödliche Spielerverletzungen - Controls when players can receive fatal injuries. A fatal injury is caused by significant damage to the head or body. - Controla quando os jogadores podem receber lesões fatais. Uma lesão fatal é causada por um dano significante na cabeça ou corpo. - プレイヤーが致命傷を受けた時の挙動を管理できます。頭部や胴体に受ける大きなダメージは致命傷になります。 + Controls when players can receive fatal injuries. A fatal injury is caused by significant damage to the head or torso. + Controla quando os jogadores podem receber lesões fatais. Uma lesão fatal é causada por um dano significante na cabeça ou tronco. + プレイヤーが致命傷を受けた時の挙動を管理できます。頭部や胸部に受ける大きなダメージは致命傷になります。 控制當玩家受致命傷時是否能救起。致命傷是指對頭部或身體造成可觀傷害所造成的。 Définit si les joueurs décèdent en cas de blessure mortelle. Une blessure mortelle est causée par un dommage important à la tête ou au torse. - Nastavuje zda hráči mohou utrpět smrtelné zranění. Smrtelné zranění je utrpěto významným poškozením hlavy nebo těla. + Nastavuje zda hráči mohou utrpět smrtelné zranění. Smrtelné zranění je utrpěto významným poškozením hlavy nebo trupu. + Controlla quando i giocatori possono ricevere infortuni mortali. Una lesione mortale è causata da un danno significativo alla testa o al busto. Definiuje, kiedy gracze mogą otrzymać śmiertelne obrażenia. Śmiertelne obrażenia są spowodowane znacznym uszkodzeniem głowy lub torsu. - Controlla quando i giocatori possono ricevere infortuni mortali. Una lesione mortale è causata da un danno significativo alla testa o al corpo. Legt fest, wann Spieler tödliche Verletzungen erleiden können. Eine tödliche Verletzung wird bei erheblichem Schaden an Kopf oder Torso verursacht. @@ -47,14 +47,14 @@ Tödliche KI-Verletzungen - Controls when AI can receive fatal injuries. A fatal injury is caused by significant damage to the head or body.\nWhen set to "Always", this effectively produces "AI Instant Death" behaviour as AI will immediately die from any fatal injury.\nNOTE: Any mode other than "Always" requires AI Unconsciousness to be enabled. - Controla quando a IA pode receber lesões fatais. Uma lesão fatal é causada por um dano significante na cabeça ou corpo.\nQuando definido para "Sempre", isso efetivamente causa a "Morte Instantânea da IA", pois a IA irá imediatamente morrer para qualquer lesão fatal.\nNOTA: Qualquer opção além de "Sempre" requer que Inconsciência de IA esteja ativada. - AI が致命傷を受けた時の挙動を管理できます。頭部や胴体に受ける大きなダメージは致命傷になります。\n"常に"に設定されていると、いかなる致命傷でも "AI の即死" 効果が生まれます。\n注: "常に"以外のモードでは AI の無意識化を有効化させる必要があります。 + Controls when AI can receive fatal injuries. A fatal injury is caused by significant damage to the head or troso.\nWhen set to "Always", this effectively produces "AI Instant Death" behaviour as AI will immediately die from any fatal injury.\nNOTE: Any mode other than "Always" requires AI Unconsciousness to be enabled. + Controla quando a IA pode receber lesões fatais. Uma lesão fatal é causada por um dano significante na cabeça ou tronco.\nQuando definido para "Sempre", isso efetivamente causa a "Morte Instantânea da IA", pois a IA irá imediatamente morrer para qualquer lesão fatal.\nNOTA: Qualquer opção além de "Sempre" requer que Inconsciência de IA esteja ativada. + AI が致命傷を受けた時の挙動を管理できます。頭部や胸部に受ける大きなダメージは致命傷になります。\n"常に"に設定されていると、いかなる致命傷でも "AI の即死" 効果が生まれます。\n注: "常に"以外のモードでは AI の無意識化を有効化させる必要があります。 控制當AI受致命傷時是否能救起。致命傷是指對頭部或身體造成可觀傷害所造成的。\n當設置為"總是"時,這會使其與"AI 瞬間死亡"同一個效果,在AI受到致命傷時瞬間死亡。\n備註:選了"總是"以外的選項的話必須開啟「AI無意識」的選項。 Définit si les unités IA décèdent en cas de blessure mortelle. Une blessure mortelle est causée par un dommage important à la tête ou au torse.\nSi réglé sur "Toujours", cela produit effectivement un comportement de "Mort instantanée" car les unités IA mourront immédiatement de toute blessure mortelle.\nNOTE : Tout mode autre que "Toujours" nécessite l'activation de l'option "Inconscience IA". - Nastavuje zda AI může utrpět smrtelné zranění. Smrtelné zranění je utrpěto významným poškozením hlavy nebo těla.\nPokud je tato možnost nastavena na "Vždy", efektivně nastává stav "Povolit okamžitou smrt AI", protože AI okamžitě zemře při jakémkoliv smrtelném zranění.\nPOZNÁMKA: Jakýkoliv jiný stav než "Vždy" potřebuje zapnutou možnost "Bezvědomí AI". + Nastavuje zda AI může utrpět smrtelné zranění. Smrtelné zranění je utrpěto významným poškozením hlavy nebo trupu.\nPokud je tato možnost nastavena na "Vždy", efektivně nastává stav "Povolit okamžitou smrt AI", protože AI okamžitě zemře při jakémkoliv smrtelném zranění.\nPOZNÁMKA: Jakýkoliv jiný stav než "Vždy" potřebuje zapnutou možnost "Bezvědomí AI". + Controlla quando l'IA può ricevere ferite mortali. Una lesione mortale è causata da un danno significativo alla testa o al torso.\nSe impostato su "Sempre", questo produce efficacemente il comportamento "Morte istantanea AI", poiché l'IA morirà immediatamente a causa di qualsiasi lesione mortale.\nNOTA: Qualsiasi modalità diversa da "Sempre" richiede l'attivazione dell'Incoscienza AI. Definiuje, kiedy AI może otrzymać śmiertelne obrażenia. Śmiertelne obrażenia są spowodowane znacznym uszkodzeniem głowy lub torsu.\n Ustawienie "Zawsze" powoduje "Natychmiastową śmierć AI", ponieważ AI natychmiast umiera z powodu śmiertelnych obrażeń.\n UWAGA: Każdy inny tryb niż "Zawsze" wymaga włączenia nieprzytomności AI. - Controlla quando l'IA può ricevere ferite mortali. Una lesione mortale è causata da un danno significativo alla testa o al corpo. Se impostato su "Sempre", questo produce efficacemente il comportamento "Morte istantanea AI", poiché l'IA morirà immediatamente a causa di qualsiasi lesione mortale.\NOTA: Qualsiasi modalità diversa da "Sempre" richiede l'attivazione dell'Incoscienza AI. Legt fest, wann KI-Einheiten tödliche Verletzungen erleiden können. Eine tödliche Verletzung wird bei erheblichem Schaden an Kopf oder Körper verursacht.\nWenn "Immer" eingestellt ist, erzeugt diese Einstellung das "KI Sofort-Tod" Verhalten. KI-Einheiten sterben sofort durch jede tödliche Verletzung.\nBEACHTE: Eine andere Einstellung als "Immer" bedingt, dass "KI-Bewusstlosigkeit" verwendet wird. From 34c24dbc765cc7e852657c996f5b84a45f43c542 Mon Sep 17 00:00:00 2001 From: jonpas Date: Thu, 9 Jan 2020 07:40:53 +0100 Subject: [PATCH 038/194] Medical Treatment - Fix Checking Pulse progress bar text (#7406) --- addons/medical_treatment/stringtable.xml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/addons/medical_treatment/stringtable.xml b/addons/medical_treatment/stringtable.xml index 6899affb8b..7aabb9b326 100644 --- a/addons/medical_treatment/stringtable.xml +++ b/addons/medical_treatment/stringtable.xml @@ -3056,17 +3056,17 @@ 脈搏 - Checking Heart Rate... + Checking Pulse... Vérification du pouls... Проверка пульса... - Comprobando ritmo cardíaco... + Comprobando pulso... Sprawdzanie tętna... - Kontrolliere Herzfrequenz... + Kontrolliere Puls... Szívverés-szám mérése... - Controllando il battito cardiaco... - Aferindo Pulso... - Kontroluji srdeční tep... - 心拍数を測定しています・・・ + Controllando il polso... + Checando Pulso... + Kontroluji puls... + 脈拍数を測定しています・・・ 맥박 확인중... 检查心跳中... 檢查心跳中... From 9833bfd37d7b9d8b24cb74409e26fef428e8173c Mon Sep 17 00:00:00 2001 From: dfr1238 <48888992+dfr1238@users.noreply.github.com> Date: Thu, 9 Jan 2020 23:38:11 +0800 Subject: [PATCH 039/194] Update tchinese string (#7433) Update tchinese on aircraft,medical_treatment --- addons/aircraft/stringtable.xml | 8 ++++++++ addons/medical_treatment/stringtable.xml | 3 +++ 2 files changed, 11 insertions(+) diff --git a/addons/aircraft/stringtable.xml b/addons/aircraft/stringtable.xml index f084bb2716..156d7b7fa5 100644 --- a/addons/aircraft/stringtable.xml +++ b/addons/aircraft/stringtable.xml @@ -54,27 +54,35 @@ 30mm High-Explosive Incendiary + 30毫米高爆燃燒彈 30mm HEI + 30毫米高爆燃燒 30mm DU Armor Piercing + 30毫米貧化鈾穿甲彈 30mm DU AP + 30毫米貧鈾穿甲 30mm Combat Mix 4:1 DU:HEI + 30毫米戰鬥混合彈4:1 穿甲:高爆 30mm CM 4:1 + 30毫米 穿高混合 4:1 30mm Combat Mix 5:1 DU:HEI + 30毫米戰鬥混合彈5:1 穿甲:高爆 30mm CM 5:1 + 30毫米 穿高混合 5:1 diff --git a/addons/medical_treatment/stringtable.xml b/addons/medical_treatment/stringtable.xml index 7aabb9b326..bd74ba274d 100644 --- a/addons/medical_treatment/stringtable.xml +++ b/addons/medical_treatment/stringtable.xml @@ -133,6 +133,7 @@ 全ての傷に対して包帯を巻いた部分を治癒するかどうかを決定します。 Controlla se le parti del corpo completamente bendate sono guarite. Kontrolliert, ob voll bandagierte Körperteile geheilt werden. + 控制說當傷口處理好的時候是否直接痊癒。 Locations Boost Training @@ -347,11 +348,13 @@ Enables the use of PAKs to heal oneself. Abilita l'utilizzo del kit di pronto soccorso su se stessi. Erlaubt die Benutzung des Erste-Hilfe-Sets, um sich selbst zu heilen. + 啟用個人急救包能對自己使用。 Self PAK Usage Utilizzo del kit di pronto soccorso su se stessi Erste-Hilfe-Set Selbstanwendung + 自我使用急救包 Time Coefficient PAK From 36a6c9c2b3cb529c2c6362a06b7de09347cab3eb Mon Sep 17 00:00:00 2001 From: Elgin675 Date: Thu, 9 Jan 2020 19:36:51 +0100 Subject: [PATCH 040/194] Translations: French (#7414) * Add french translation of 'ClearTraumaAfterBandage_Description' key * Add french translation of 'GatlingDescriptions' keys * Add french translation of 'AllowSelfPAK' keys * Update french translation on medical_treatment module - AdvancedDiagnose_Description - AdvancedMedication_Description - LitterCleanupDelay_Description * Fix french translation on medical_treatment module - 'AllowLitterCreation_Description' key - 'LitterCleanupDelay_Description' key Co-authored-by: PabstMirror --- addons/aircraft/stringtable.xml | 8 ++++++++ addons/medical_treatment/stringtable.xml | 11 +++++++---- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/addons/aircraft/stringtable.xml b/addons/aircraft/stringtable.xml index 156d7b7fa5..6b59b5a0c3 100644 --- a/addons/aircraft/stringtable.xml +++ b/addons/aircraft/stringtable.xml @@ -55,34 +55,42 @@ 30mm High-Explosive Incendiary 30毫米高爆燃燒彈 + 30 mm High-Explosive Incendiary 30mm HEI 30毫米高爆燃燒 + 30 mm HEI 30mm DU Armor Piercing 30毫米貧化鈾穿甲彈 + 30 mm UA Armor Piercing 30mm DU AP 30毫米貧鈾穿甲 + 30 mm UA AP 30mm Combat Mix 4:1 DU:HEI 30毫米戰鬥混合彈4:1 穿甲:高爆 + 30 mm Mix de Combat 4:1 UA:HEI 30mm CM 4:1 30毫米 穿高混合 4:1 + 30 mm MdC 4:1 30mm Combat Mix 5:1 DU:HEI 30毫米戰鬥混合彈5:1 穿甲:高爆 + 30 mm Mix de Combat 5:1 UA:HEI 30mm CM 5:1 30毫米 穿高混合 5:1 + 30 mm MdC 5:1 diff --git a/addons/medical_treatment/stringtable.xml b/addons/medical_treatment/stringtable.xml index bd74ba274d..da40310af6 100644 --- a/addons/medical_treatment/stringtable.xml +++ b/addons/medical_treatment/stringtable.xml @@ -40,7 +40,7 @@ Enables the Check Pulse, Check Blood Pressure, and Check Response treatment actions instead of the generic Diagnose action.\nWhen disabled, the CPR action will only be shown when performing CPR is appropriate.\nThe actions this setting enables are needed to determine whether a person is unconscious or in cardiac arrest. 有効化すると通常の診断動作に代わり、心拍や血圧測定、反応を確認できます。 - Permet un diagnostic avancé, en permettant la vérification du pouls, de la pression sanguine, ainsi que la réponse du patient aux traitements. + Active le diagnostic avancé, permettant la vérification du pouls, de la pression sanguine, ainsi que la réponse du patient aux traitements.\nSi l'option est désactivée, l'action de RCP ne sera visible que si elle est effectivement appropriée.\nLe diagnostic avancé est indispensable pour différencier une personne inconsciente d'une personne en arrêt cardiaque. Включает действия «Проверить пульс», «Проверить давление» и «Проверить реакцию» вместо общего действия «Диагностика». Ativa as opções de Verificar Pulso, Verificar Pressão Sanguínea e Verificar Resposta, ao invés do diagnóstico geral. 啟用檢查脈搏、血壓以及病患反應的動作而非一般的診斷動作。\n當停用時,CPR只會在需要時出現。\n當這個選項啟用時必須診斷病患是否無意識或者心搏停止。 @@ -88,7 +88,7 @@ Enables extended, more in-depth medication handling. Also, enables the use of Adenosine. Устанавливает расширенное использование лекарств 有効化するともっと多くの多様な機能を持つ医薬品を使えます。また、アデノシンとアトロピンが利用可能になります。 - Permet une manipulation étendue et plus appronfondie des médicaments.\nEn outre, permet l'utilisation d'adénosine et d'atropine. + Permet une manipulation étendue et plus approfondie des médicaments.\nEn outre, permet l'utilisation d'adénosine. Ativa a manipulação avançada de medicações. Também permite o uso de Adenosina e Atropina. 是否擴展藥物管控使其更深度化。並且,啟用腺苷以及阿托品的使用次數 Povoluje hlubší a rozšířené zacházení s léčivy. Také aktivuje Adenosin a Atropin. @@ -131,6 +131,7 @@ Controls whether fully bandaged body parts are healed. 全ての傷に対して包帯を巻いた部分を治癒するかどうかを決定します。 + Définit s'il faut guérir les parties du corps entièrement bandées. Controlla se le parti del corpo completamente bendate sono guarite. Kontrolliert, ob voll bandagierte Körperteile geheilt werden. 控制說當傷口處理好的時候是否直接痊癒。 @@ -349,12 +350,14 @@ Abilita l'utilizzo del kit di pronto soccorso su se stessi. Erlaubt die Benutzung des Erste-Hilfe-Sets, um sich selbst zu heilen. 啟用個人急救包能對自己使用。 + Définit si le joueur peut utiliser la trousse sanitaire pour se soigner lui-même. Self PAK Usage Utilizzo del kit di pronto soccorso su se stessi Erste-Hilfe-Set Selbstanwendung 自我使用急救包 + Utilisation de la trousse sanitaire sur soi-même Time Coefficient PAK @@ -549,7 +552,7 @@ Enables the creation of litter upon treatment. 治療後に廃棄物の生成を有効化します。 - Permet de laisser des détritus (emballages, pansements usagés...) suite à un traitement. + Active la généreration de détritus (emballages, pansements usagés...) suite à un traitement. Разрешает создание медицинского мусора при лечении. Permite a criação de lixo médico durante o tratamento. 啟用醫療後剩下的醫療用廢棄物。 @@ -597,7 +600,7 @@ Controls the lifetime of litter objects, in seconds. -1 is forever. 廃棄物の寿命を秒で決定できます。-1 で永遠です。 - Définit la durée d'affichage des détritus. + Définit la durée d'affichage des détritus, en secondes. Durée illimitée : -1. Управляет временем жизни объектов мусора в секундах. -1 означает Навсегда. Controla o tempo de vida de objetos de lixo criados em segundos. -1 é para sempre. 控制醫療用廢棄物的時長,以秒為單位。設定為-1則是永不刪除。 From 028a0cb3f09d2d99bd1c5d7706f702574bb87811 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Brostr=C3=B6m=2EA=20=7C=20Evul?= Date: Thu, 9 Jan 2020 21:40:34 +0100 Subject: [PATCH 041/194] Changed: Scripted calls to putInEarPlugs/joinTeam won't show hint (#7400) * Added ability to suppress hint message * Adjustments based on request --- addons/hearing/CfgVehicles.hpp | 4 ++-- .../hearing/functions/fnc_putInEarplugs.sqf | 9 ++++++--- .../hearing/functions/fnc_removeEarplugs.sqf | 9 ++++++--- addons/interaction/CfgVehicles.hpp | 20 +++++++++---------- addons/interaction/functions/fnc_joinTeam.sqf | 10 ++++++---- 5 files changed, 30 insertions(+), 22 deletions(-) diff --git a/addons/hearing/CfgVehicles.hpp b/addons/hearing/CfgVehicles.hpp index 48fb79277e..27ca5fbe2f 100644 --- a/addons/hearing/CfgVehicles.hpp +++ b/addons/hearing/CfgVehicles.hpp @@ -7,7 +7,7 @@ class CfgVehicles { displayName = CSTRING(EarPlugs_On); condition = QUOTE(GVAR(EnableCombatDeafness) && {!([_player] call FUNC(hasEarPlugsIn)) && {'ACE_EarPlugs' in items _player}}); exceptions[] = {"isNotSwimming", "isNotInside", "isNotSitting"}; - statement = QUOTE( [_player] call FUNC(putInEarPlugs) ); + statement = QUOTE( [_player, true] call FUNC(putInEarPlugs) ); showDisabled = 0; icon = QPATHTOF(UI\ACE_earplugs_x_ca.paa); }; @@ -15,7 +15,7 @@ class CfgVehicles { displayName = CSTRING(EarPlugs_Off); condition = QUOTE( GVAR(EnableCombatDeafness) && {[_player] call FUNC(hasEarPlugsIn)}); exceptions[] = {"isNotSwimming", "isNotInside", "isNotSitting"}; - statement = QUOTE( [_player] call FUNC(removeEarPlugs) ); + statement = QUOTE( [_player, true] call FUNC(removeEarPlugs) ); showDisabled = 0; icon = QPATHTOF(UI\ACE_earplugs_x_ca.paa); }; diff --git a/addons/hearing/functions/fnc_putInEarplugs.sqf b/addons/hearing/functions/fnc_putInEarplugs.sqf index 954dc4dee1..25584130e4 100644 --- a/addons/hearing/functions/fnc_putInEarplugs.sqf +++ b/addons/hearing/functions/fnc_putInEarplugs.sqf @@ -5,17 +5,18 @@ * * Arguments: * 0: Unit (player) + * 1: Display hint (default: false) * * Return Value: * None * * Example: - * [ace_player] call ace_hearing_fnc_putInEarplugs + * [ace_player, false] call ace_hearing_fnc_putInEarplugs * * Public: No */ -params ["_player"]; +params ["_player", ["_displayHint", false, [false]]]; if (!GVAR(EnableCombatDeafness)) exitWith {}; @@ -24,7 +25,9 @@ _player removeItem "ACE_EarPlugs"; _player setVariable ["ACE_hasEarPlugsIn", true, true]; -[localize LSTRING(EarPlugs_Are_On)] call EFUNC(common,displayTextStructured); +if (_displayHint) then { + [localize LSTRING(EarPlugs_Are_On)] call EFUNC(common,displayTextStructured); +}; //Force an immediate fast volume update: [[true]] call FUNC(updateVolume); diff --git a/addons/hearing/functions/fnc_removeEarplugs.sqf b/addons/hearing/functions/fnc_removeEarplugs.sqf index 9af41f6d8b..5e8064e767 100644 --- a/addons/hearing/functions/fnc_removeEarplugs.sqf +++ b/addons/hearing/functions/fnc_removeEarplugs.sqf @@ -5,17 +5,18 @@ * * Arguments: * 0: Unit (player) + * 1: Display hint (default false) * * Return Value: * None * * Example: - * [ace_player] call ace_hearing_fnc_removeEarplugs + * [ace_player, false] call ace_hearing_fnc_removeEarplugs * * Public: No */ -params ["_player"]; +params ["_player", ["_displayHint", false, [false]]]; if (!GVAR(EnableCombatDeafness)) exitWith {}; @@ -28,7 +29,9 @@ _player addItem "ACE_EarPlugs"; _player setVariable ["ACE_hasEarPlugsIn", false, true]; -[localize LSTRING(EarPlugs_Are_Off)] call EFUNC(common,displayTextStructured); +if (_displayHint) then { + [localize LSTRING(EarPlugs_Are_Off)] call EFUNC(common,displayTextStructured); +}; //Force an immediate fast volume update: [[true]] call FUNC(updateVolume); diff --git a/addons/interaction/CfgVehicles.hpp b/addons/interaction/CfgVehicles.hpp index 7a49f43a95..b654b7020e 100644 --- a/addons/interaction/CfgVehicles.hpp +++ b/addons/interaction/CfgVehicles.hpp @@ -79,7 +79,7 @@ class CfgVehicles { class ACE_AssignTeamRed { displayName = CSTRING(AssignTeamRed); condition = QUOTE([ARR_2(_player,_target)] call DFUNC(canJoinTeam)); - statement = QUOTE([ARR_2(_target,'RED')] call DFUNC(joinTeam)); + statement = QUOTE([ARR_3(_target,'RED',true)] call DFUNC(joinTeam)); exceptions[] = {"isNotSwimming"}; showDisabled = 1; icon = QPATHTOF(UI\team\team_red_ca.paa); @@ -87,7 +87,7 @@ class CfgVehicles { class ACE_AssignTeamGreen { displayName = CSTRING(AssignTeamGreen); condition = QUOTE([ARR_2(_player,_target)] call DFUNC(canJoinTeam)); - statement = QUOTE([ARR_2(_target,'GREEN')] call DFUNC(joinTeam)); + statement = QUOTE([ARR_3(_target,'GREEN',true)] call DFUNC(joinTeam)); exceptions[] = {"isNotSwimming"}; showDisabled = 1; icon = QPATHTOF(UI\team\team_green_ca.paa); @@ -95,7 +95,7 @@ class CfgVehicles { class ACE_AssignTeamBlue { displayName = CSTRING(AssignTeamBlue); condition = QUOTE([ARR_2(_player,_target)] call DFUNC(canJoinTeam)); - statement = QUOTE([ARR_2(_target,'BLUE')] call DFUNC(joinTeam)); + statement = QUOTE([ARR_3(_target,'BLUE',true)] call DFUNC(joinTeam)); exceptions[] = {"isNotSwimming"}; showDisabled = 1; icon = QPATHTOF(UI\team\team_blue_ca.paa); @@ -103,7 +103,7 @@ class CfgVehicles { class ACE_AssignTeamYellow { displayName = CSTRING(AssignTeamYellow); condition = QUOTE([ARR_2(_player,_target)] call DFUNC(canJoinTeam)); - statement = QUOTE([ARR_2(_target,'YELLOW')] call DFUNC(joinTeam)); + statement = QUOTE([ARR_3(_target,'YELLOW',true)] call DFUNC(joinTeam)); exceptions[] = {"isNotSwimming"}; showDisabled = 1; icon = QPATHTOF(UI\team\team_yellow_ca.paa); @@ -111,7 +111,7 @@ class CfgVehicles { class ACE_UnassignTeam { displayName = CSTRING(LeaveTeam); condition = QUOTE([ARR_2(_player,_target)] call DFUNC(canJoinTeam) && {assignedTeam _target != 'MAIN'}); - statement = QUOTE([ARR_2(_target,'MAIN')] call DFUNC(joinTeam)); + statement = QUOTE([ARR_3(_target,'MAIN',true)] call DFUNC(joinTeam)); exceptions[] = {"isNotSwimming"}; showDisabled = 1; icon = QPATHTOF(UI\team\team_white_ca.paa); @@ -251,7 +251,7 @@ class CfgVehicles { displayName = CSTRING(JoinTeamRed); condition = QUOTE(true); exceptions[] = {"isNotSwimming", "isNotInside", "isNotSitting", "isNotOnLadder", "isNotRefueling"}; - statement = QUOTE([ARR_2(_player,'RED')] call DFUNC(joinTeam)); + statement = QUOTE([ARR_3(_player,'RED',true)] call DFUNC(joinTeam)); showDisabled = 1; icon = QPATHTOF(UI\team\team_red_ca.paa); }; @@ -259,7 +259,7 @@ class CfgVehicles { displayName = CSTRING(JoinTeamGreen); condition = QUOTE(true); exceptions[] = {"isNotSwimming", "isNotInside", "isNotSitting", "isNotOnLadder", "isNotRefueling"}; - statement = QUOTE([ARR_2(_player,'GREEN')] call DFUNC(joinTeam)); + statement = QUOTE([ARR_3(_player,'GREEN',true)] call DFUNC(joinTeam)); showDisabled = 1; icon = QPATHTOF(UI\team\team_green_ca.paa); }; @@ -267,7 +267,7 @@ class CfgVehicles { displayName = CSTRING(JoinTeamBlue); condition = QUOTE(true); exceptions[] = {"isNotSwimming", "isNotInside", "isNotSitting", "isNotOnLadder", "isNotRefueling"}; - statement = QUOTE([ARR_2(_player,'BLUE')] call DFUNC(joinTeam)); + statement = QUOTE([ARR_3(_player,'BLUE',true)] call DFUNC(joinTeam)); showDisabled = 1; icon = QPATHTOF(UI\team\team_blue_ca.paa); }; @@ -275,7 +275,7 @@ class CfgVehicles { displayName = CSTRING(JoinTeamYellow); condition = QUOTE(true); exceptions[] = {"isNotSwimming", "isNotInside", "isNotSitting", "isNotOnLadder", "isNotRefueling"}; - statement = QUOTE([ARR_2(_player,'YELLOW')] call DFUNC(joinTeam)); + statement = QUOTE([ARR_3(_player,'YELLOW',true)] call DFUNC(joinTeam)); showDisabled = 1; icon = QPATHTOF(UI\team\team_yellow_ca.paa); }; @@ -283,7 +283,7 @@ class CfgVehicles { displayName = CSTRING(LeaveTeam); condition = QUOTE(assignedTeam _player != 'MAIN'); exceptions[] = {"isNotSwimming", "isNotInside", "isNotSitting", "isNotOnLadder", "isNotRefueling"}; - statement = QUOTE([ARR_2(_player,'MAIN')] call DFUNC(joinTeam)); + statement = QUOTE([ARR_3(_player,'MAIN',true)] call DFUNC(joinTeam)); showDisabled = 1; icon = QPATHTOF(UI\team\team_white_ca.paa); }; diff --git a/addons/interaction/functions/fnc_joinTeam.sqf b/addons/interaction/functions/fnc_joinTeam.sqf index 92e06b4217..06a1ea9f72 100644 --- a/addons/interaction/functions/fnc_joinTeam.sqf +++ b/addons/interaction/functions/fnc_joinTeam.sqf @@ -6,17 +6,18 @@ * Arguments: * 0: Unit * 1: Team + * 2: Display hint (default: false) * * Return Value: * None * * Example: - * [player, "YELLOW"] call ace_interaction_fnc_joinTeam + * [player, "YELLOW", false] call ace_interaction_fnc_joinTeam * * Public: No */ -params ["_unit", "_team"]; +params ["_unit", "_team", ["_displayHint", false, [false]]]; ["CBA_teamColorChanged", [_unit, _team]] call CBA_fnc_globalEvent; @@ -30,6 +31,7 @@ if (_unit == ACE_player) then { _team = localize format [LSTRING(Team%1), _team]; _message = format [localize LSTRING(JoinedTeam), _team]; }; - - [_message] call EFUNC(common,displayTextStructured); + if (_displayHint) then { + [_message] call EFUNC(common,displayTextStructured); + }; }; From 8f1bf259e330dcc3d478ae2ff91e169f09bc6beb Mon Sep 17 00:00:00 2001 From: Dedmen Miller Date: Thu, 9 Jan 2020 21:42:54 +0100 Subject: [PATCH 042/194] Fixed: RHS Compatibility - Remove scope adjust from ACOG Scopes (#7375) * Remove scope adjust from RHS ACOG Scopes * Set RHS ACOG ScopeAdjust to zero For ACE Arsenal stats --- optionals/compat_rhs_usf3/CfgWeapons.hpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/optionals/compat_rhs_usf3/CfgWeapons.hpp b/optionals/compat_rhs_usf3/CfgWeapons.hpp index ab6a083f1a..4f8aaede1d 100644 --- a/optionals/compat_rhs_usf3/CfgWeapons.hpp +++ b/optionals/compat_rhs_usf3/CfgWeapons.hpp @@ -156,6 +156,13 @@ class CfgWeapons { }; }; }; + // ACOG is a sniper scope for some reason, but we don't want scope adjust + class rhsusf_acc_ACOG: rhsusf_acc_sniper_base { + ACE_ScopeAdjust_Vertical[] = { 0, 0 }; + ACE_ScopeAdjust_Horizontal[] = { 0, 0 }; + ACE_ScopeAdjust_VerticalIncrement = 0; + ACE_ScopeAdjust_HorizontalIncrement = 0; + }; class rhsusf_acc_LEUPOLDMK4: rhsusf_acc_sniper_base { ACE_ScopeHeightAboveRail = 2.62567; }; From 3daf78441b87fb7d2995859f4e05699d19d5492d Mon Sep 17 00:00:00 2001 From: jonpas Date: Thu, 9 Jan 2020 21:44:55 +0100 Subject: [PATCH 043/194] Medical - Fix epinephrine wake-up chance boost string (#7407) Co-authored-by: PabstMirror --- addons/medical/stringtable.xml | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/addons/medical/stringtable.xml b/addons/medical/stringtable.xml index 1b3db93cbb..39e46925e7 100644 --- a/addons/medical/stringtable.xml +++ b/addons/medical/stringtable.xml @@ -44,16 +44,7 @@ La probabilidad de que una unidad estabilizada recupere la conciencia y se levante (se comprueba cada 15 segundos) - Epinephrine Increases Wake Up Chance - アドレナリンで覚醒確率上昇 - 腎上腺素甦醒機率增加 - L'épinéphrine augmente les chances de réveil - L'epinefrina aumenta la possibilità di rialzarsi - Epinefrin zvyšuje šanci na probuzení - Szansa na wybudzenie po użyciu Epinefryny - Epinefrina Aumenta a chance de acordar - Epinefrina, aumenta la posibilidad de despertar - Epinephrin erhöht die Aufwachwahrscheinlichkeit + Epinephrine Wake Up Chance Boost Increases how often spontaneous wake up checks happen when patient has Epinephrine in their system. From 57932ce04faccfd9dcbfd46d765a684eb401af32 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Thu, 9 Jan 2020 14:51:07 -0600 Subject: [PATCH 044/194] restore strings lost in merge --- addons/medical_treatment/stringtable.xml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/addons/medical_treatment/stringtable.xml b/addons/medical_treatment/stringtable.xml index 74a06998c5..23a3eeff17 100644 --- a/addons/medical_treatment/stringtable.xml +++ b/addons/medical_treatment/stringtable.xml @@ -58,15 +58,18 @@ Medicação Avançada 進階醫療用品 Pokročilé léky + Medicazione avanzata Enables extended, more in-depth medication handling. Also, enables the use of Adenosine. Устанавливает расширенное использование лекарств 有効化するともっと多くの多様な機能を持つ医薬品を使えます。また、アデノシンとアトロピンが利用可能になります。 - Permet une manipulation étendue et plus appronfondie des médicaments.\nEn outre, permet l'utilisation d'adénosine et d'atropine. + Permet une manipulation étendue et plus approfondie des médicaments.\nEn outre, permet l'utilisation d'adénosine. Ativa a manipulação avançada de medicações. Também permite o uso de Adenosina e Atropina. 是否擴展藥物管控使其更深度化。並且,啟用腺苷以及阿托品的使用次數 Povoluje hlubší a rozšířené zacházení s léčivy. Také aktivuje Adenosin a Atropin. + Abilita una gestione della medicazione più estesa e approfondita. Permette inoltre l'utilizzo dell'Adenosina. + Ermöglicht erweiterte, mehr tiefgründigere Anwendung von Medikationen. Ebenso ermöglicht es die Benutzung von Adenosin. Advanced Bandages @@ -82,6 +85,7 @@ Enables treatment actions for different bandage types instead of the generic Bandage action.\nAdditionally, the reopening of bandaged wounds can also be enabled. + Ermöglicht Behandlungsaktionen für verschiedene Bandagentypen anstelle der gewöhnlichen Bandageaktionen. 有効化すると通常の包帯動作に代わり、様々な種類がある包帯で治療ができます。 Active différents types de bandages, à choisir judicieusement en fonction des plaies. Включает действия для разных типов повязок, вместо общего действия «Перевязка». @@ -90,7 +94,6 @@ Permette azioni di trattamento per diversi tipi di bendaggio al posto del bendaggio generico. Povoluje specifické obvazy s různými vlastnostmi namísto jednoho univerzálního obvazu. Umożliwia wybranie konkretnego rodzaju bandaża zamiast ogólnej akcji bandażowania. - Ermöglicht Behandlungsaktionen für verschiedene Bandagentypen anstelle der gewöhnlichen Bandageaktionen. Enabled & Can Reopen From daa8a05ab88f5070585e7c6ade7071b0a065215a Mon Sep 17 00:00:00 2001 From: Elgin675 Date: Fri, 10 Jan 2020 05:29:26 +0100 Subject: [PATCH 045/194] Translations: fix medical_treatment order introduce on #7430 (#7435) Moves `AllowSelfPAK_Description` below the display name. --- addons/medical_treatment/stringtable.xml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/addons/medical_treatment/stringtable.xml b/addons/medical_treatment/stringtable.xml index da40310af6..ae8334dbc6 100644 --- a/addons/medical_treatment/stringtable.xml +++ b/addons/medical_treatment/stringtable.xml @@ -345,13 +345,6 @@ Kontroluje, czy apteczka osobista powinna być zużyta po użyciu. Kontrolliert, ob ein Erste-Hilfe-Set nach der Benutzung verbraucht werden soll. - - Enables the use of PAKs to heal oneself. - Abilita l'utilizzo del kit di pronto soccorso su se stessi. - Erlaubt die Benutzung des Erste-Hilfe-Sets, um sich selbst zu heilen. - 啟用個人急救包能對自己使用。 - Définit si le joueur peut utiliser la trousse sanitaire pour se soigner lui-même. - Self PAK Usage Utilizzo del kit di pronto soccorso su se stessi @@ -359,6 +352,13 @@ 自我使用急救包 Utilisation de la trousse sanitaire sur soi-même + + Enables the use of PAKs to heal oneself. + Abilita l'utilizzo del kit di pronto soccorso su se stessi. + Erlaubt die Benutzung des Erste-Hilfe-Sets, um sich selbst zu heilen. + 啟用個人急救包能對自己使用。 + Définit si le joueur peut utiliser la trousse sanitaire pour se soigner lui-même. + Time Coefficient PAK 応急処置キットの時間係数 From 9d525f8b429d0158470f587902511554fa9fe0d9 Mon Sep 17 00:00:00 2001 From: AgentPiTi <59421365+AgentPiTi@users.noreply.github.com> Date: Fri, 10 Jan 2020 05:56:13 +0100 Subject: [PATCH 046/194] Polish Translations (#7410) * PL Translations Done some of new Polish translations * Fix doubles * Apply suggestions from code review Co-Authored-By: Filip Maciejewski Co-authored-by: PabstMirror Co-authored-by: Filip Maciejewski --- addons/fastroping/stringtable.xml | 1 + addons/medical_treatment/stringtable.xml | 19 ++++++++++++++----- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/addons/fastroping/stringtable.xml b/addons/fastroping/stringtable.xml index eed04740f9..2fc2a8b699 100644 --- a/addons/fastroping/stringtable.xml +++ b/addons/fastroping/stringtable.xml @@ -312,6 +312,7 @@ Aérocordage 快速繩降 ファスト ロープ + Zjazd na linach Require rope item to deploy diff --git a/addons/medical_treatment/stringtable.xml b/addons/medical_treatment/stringtable.xml index ae8334dbc6..8c82f99e5d 100644 --- a/addons/medical_treatment/stringtable.xml +++ b/addons/medical_treatment/stringtable.xml @@ -82,6 +82,7 @@ Medicação Avançada 進階醫療用品 Pokročilé léky + Zaawansowane leki Medicazione avanzata @@ -125,12 +126,14 @@ 包紮即痊癒 Guérir les blessures pansées Vyčistit úraz po obvázání + Usuń uraz po zabandażowaniu Rimozione ferite bendate Entferne Trauma nach Bandagierung. Controls whether fully bandaged body parts are healed. 全ての傷に対して包帯を巻いた部分を治癒するかどうかを決定します。 + Kontroluje czy w pełni zabandażowane części ciała są uleczone. Définit s'il faut guérir les parties du corps entièrement bandées. Controlla se le parti del corpo completamente bendate sono guarite. Kontrolliert, ob voll bandagierte Körperteile geheilt werden. @@ -351,6 +354,7 @@ Erste-Hilfe-Set Selbstanwendung 自我使用急救包 Utilisation de la trousse sanitaire sur soi-même + Używanie apteczki osobistej na sobie Enables the use of PAKs to heal oneself. @@ -358,6 +362,7 @@ Erlaubt die Benutzung des Erste-Hilfe-Sets, um sich selbst zu heilen. 啟用個人急救包能對自己使用。 Définit si le joueur peut utiliser la trousse sanitaire pour se soigner lui-même. + Pozwala na użycie apteczki osobistej na sobie Time Coefficient PAK @@ -486,6 +491,7 @@ Autotransfusão de IV 自我注射點滴 Samoaplikace IV transfuze + Samotransfuzja IV Trasfusione endovena su se stessi @@ -497,6 +503,7 @@ Permite utilizar bolsas de IV para transfusão em si mesmo 啟用是否能對自己注射點滴 Umožňuje aplikovat IV transfuze na sama sebe. + Pozwala przetoczyć płyny IV samemu sobie Abilita la trasfusione in endovena su se stessi. @@ -682,6 +689,7 @@ 心肺復甦術成功率 Pravděpodobnost úspěchu CPR Possibilità di successo della RCP + Szansa powodzenia RKO HLW Erfolgsrate @@ -693,6 +701,7 @@ 心肺復甦術恢復心率的機率。 Pravděpodobnost, že CPR obnoví srdeční tep. E' probabile che la rianimazione RCP abbia successo nel ripristinare il ritmo cardiaco. + Prawdopodobieństwo przwyrócenia akcji serca poprzez wykonanie RKO Wahrscheinlichkeit, dass HLW bei der Wiederherstellung des Herzrhythmus erfolgreich sein wird. @@ -2623,7 +2632,7 @@ Delayed Retrasado Срочная помощь - Opóźniony + Pomoc Odroczona Peut attendre Verzögert Odložitelný @@ -2639,7 +2648,7 @@ Immediate Inmediato Неотложная помощь - Natychmiastowy + Pomoc Natychmiastowa Urgent Sofort Okamžitý @@ -2655,7 +2664,7 @@ Deceased Fallecido Труп - Nie żyje + Denat Décédé Verstorben Mrtvý @@ -2671,7 +2680,7 @@ None Ninguno Отсутствует - Brak + Brak klasyfikacji Pas de fiche Keine Nic @@ -2795,7 +2804,7 @@ Жгут Torniquete [CAT] Garrot [CAT] - Staza [typ. CAT] + Staza [CAT] Škrtidlo [CAT] Érszorító [CAT] Laccio emostatico [CAT] From edb53084b3554ae065c38c2687c5852599d2a830 Mon Sep 17 00:00:00 2001 From: Patryk Zachnik Date: Fri, 10 Jan 2020 06:14:45 +0100 Subject: [PATCH 047/194] Polish Translation (#7397) * Polish Translation Updated Polish Translation * remove dupes * Update stringtable.xml Co-authored-by: PabstMirror --- addons/common/stringtable.xml | 1 + addons/quickmount/stringtable.xml | 1 + 2 files changed, 2 insertions(+) diff --git a/addons/common/stringtable.xml b/addons/common/stringtable.xml index ada9f99252..7423698e33 100644 --- a/addons/common/stringtable.xml +++ b/addons/common/stringtable.xml @@ -1376,6 +1376,7 @@ Show the action in the self-interaction menu Affiche l'action dans le menu d'interaction personnel. 在自我互動選單內顯示動作 + Pokaż akcje w menu interakcji własnej Mostra a ação no menu de auto-interação セルフ インタラクションに動作を表示 Mostra le azioni nel menu di interazione con se stessi diff --git a/addons/quickmount/stringtable.xml b/addons/quickmount/stringtable.xml index 635bd3590d..b6d7078034 100644 --- a/addons/quickmount/stringtable.xml +++ b/addons/quickmount/stringtable.xml @@ -62,6 +62,7 @@ This option allows quick entry into the vehicle you are directly looking at. Cette option permet d'entrer rapidement dans les véhicules que vous regardez. 這個選項允許你能快速進入你直視的載具 + Ta opcja umożliwia szybkie wsiadanie do pojazdu na który patrzysz. Esta opção permite entrada rápida para o veículo que você está olhando この機能により直接見ている車両へすぐさま搭乗できます。 Questa opzione permette l'entrata rapida nel veicolo che si sta guardando. From 4fd927ff6be67972de8a13555f02afe46058e20f Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Fri, 10 Jan 2020 09:51:14 -0600 Subject: [PATCH 048/194] remove array from cookoff doc event --- docs/wiki/framework/events-framework.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/wiki/framework/events-framework.md b/docs/wiki/framework/events-framework.md index 5c7a164d30..30feada6cf 100644 --- a/docs/wiki/framework/events-framework.md +++ b/docs/wiki/framework/events-framework.md @@ -101,9 +101,9 @@ MenuType: 0 = Interaction, 1 = Self Interaction | Event Key | Parameters | Locality | Type | Description | |----------|---------|---------|---------|---------|---------| -|`ace_cookoff_cookOff` | [_vehicle] | Global | Listen | Vehicle cook off has started -|`ace_cookoff_cookOffBox` | [_box] | Global | Listen | Ammo box cook off has started -|`ace_cookoff_engineFire` | [_vehicle] | Global | Listen | Engine fire has started +|`ace_cookoff_cookOff` | _vehicle | Global | Listen | Vehicle cook off has started +|`ace_cookoff_cookOffBox` | _box | Global | Listen | Ammo box cook off has started +|`ace_cookoff_engineFire` | _vehicle | Global | Listen | Engine fire has started ## 3. Usage Also Reference [CBA Events System](https://github.com/CBATeam/CBA_A3/wiki/Custom-Events-System){:target="_blank"} documentation. From d5e2eb3a1752de177599bb15a3071420b2697f0a Mon Sep 17 00:00:00 2001 From: SimichRE <41232841+SimichRE@users.noreply.github.com> Date: Fri, 10 Jan 2020 18:54:30 +0300 Subject: [PATCH 049/194] Translation: Russian Added missing translation to Russian --- addons/advanced_fatigue/stringtable.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/addons/advanced_fatigue/stringtable.xml b/addons/advanced_fatigue/stringtable.xml index ad2307690f..9c2da6390e 100644 --- a/addons/advanced_fatigue/stringtable.xml +++ b/addons/advanced_fatigue/stringtable.xml @@ -225,6 +225,7 @@ Fade Stamina bar automatically + Скрыть шкалу усталости автоматически Blende Ausdauerleiste automatisch aus 體力條自動淡去 Dissolvenza automatica della barra della stamina @@ -236,6 +237,7 @@ Adjusts transparency of the bar based on stamina status. + Регулирует прозрачность шкалы в зависимости от статуса выносливости. Passt die Transparenz der Ausdauerleiste abhängig vom Ausdauerstatus an. 依照目前的體力程度調整體力條之透明度 Regola la trasparenza della barra in base allo stato di affaticamento. From ea3f400fc1143c69e064954a1d7c0bc78d700bee Mon Sep 17 00:00:00 2001 From: commy2 Date: Fri, 10 Jan 2020 22:12:34 +0100 Subject: [PATCH 050/194] add function to throw current weapon --- addons/hitreactions/XEH_PREP.hpp | 1 + .../functions/fnc_throwWeapon.sqf | 42 +++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 addons/hitreactions/functions/fnc_throwWeapon.sqf diff --git a/addons/hitreactions/XEH_PREP.hpp b/addons/hitreactions/XEH_PREP.hpp index 7701b8ef19..7d037789ca 100644 --- a/addons/hitreactions/XEH_PREP.hpp +++ b/addons/hitreactions/XEH_PREP.hpp @@ -1,3 +1,4 @@ +PREP(throwWeapon); PREP(fallDown); PREP(getRandomAnimation); diff --git a/addons/hitreactions/functions/fnc_throwWeapon.sqf b/addons/hitreactions/functions/fnc_throwWeapon.sqf new file mode 100644 index 0000000000..0ea8b84811 --- /dev/null +++ b/addons/hitreactions/functions/fnc_throwWeapon.sqf @@ -0,0 +1,42 @@ +#include "script_component.hpp" +/* + * Author: commy2 + * Makes the unit throw their currently selected weapon. + * + * Arguments: + * 0: unit + * + * Return Value: + * Weapon Holder + * + * Example: + * player call ACE_hitreactions_fnc_throwWeapon + * + * Public: No + */ + +#define THROW_VELOCITY 1.5 +#define THROW_TORQUE 0.2 + +params ["_unit"]; +private _weapon = currentWeapon _unit; +if (_weapon isEqualTo "") exitWith {objNull}; + +private _data = weaponsItems _unit select {_x select 0 == _weapon} select 0; + +private _holder = createVehicle ["WeaponHolderSimulated", [0,0,0], [], 0, "CAN_COLLIDE"]; +_holder addWeaponWithAttachmentsCargoGlobal [_data, 1]; + +private _vDir = _unit weaponDirection _weapon; +private _vLat = vectorNormalized (_vDir vectorCrossProduct [0,0,1]); +private _vUp = _vLat vectorCrossProduct _vDir; + +private _position = _unit modelToWorldWorld (_unit selectionPosition "RightHand") vectorAdd (_vLat vectorMultiply 0.59); +private _velocity = vectorNormalized (_vDir vectorAdd (_vUp vectorMultiply 2)) vectorMultiply THROW_VELOCITY vectorAdd velocity _unit; + +_unit removeWeapon _weapon; +_holder setPosWorld _position; +_holder setVectorDirAndUp [_vUp, _vLat]; +_holder setVelocity _velocity; +_holder addTorque (call CBA_fnc_randomVector3D vectorMultiply THROW_TORQUE); +_holder // return From b736928259a69ec368fad9ea81765c07decc754a Mon Sep 17 00:00:00 2001 From: commy2 Date: Fri, 10 Jan 2020 22:12:59 +0100 Subject: [PATCH 051/194] add function to throw current weapon --- addons/hitreactions/functions/fnc_throwWeapon.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/hitreactions/functions/fnc_throwWeapon.sqf b/addons/hitreactions/functions/fnc_throwWeapon.sqf index 0ea8b84811..aacc1c7591 100644 --- a/addons/hitreactions/functions/fnc_throwWeapon.sqf +++ b/addons/hitreactions/functions/fnc_throwWeapon.sqf @@ -1,7 +1,7 @@ #include "script_component.hpp" /* * Author: commy2 - * Makes the unit throw their currently selected weapon. + * Makes the unit throw their currently selected weapon. Unit must be local. * * Arguments: * 0: unit From c97bd2fb013ecc812bda9fcb25e348816251d116 Mon Sep 17 00:00:00 2001 From: commy2 Date: Sat, 11 Jan 2020 02:58:40 +0100 Subject: [PATCH 052/194] Update addons/hitreactions/functions/fnc_throwWeapon.sqf Co-Authored-By: jonpas --- addons/hitreactions/functions/fnc_throwWeapon.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/hitreactions/functions/fnc_throwWeapon.sqf b/addons/hitreactions/functions/fnc_throwWeapon.sqf index aacc1c7591..484be0a04a 100644 --- a/addons/hitreactions/functions/fnc_throwWeapon.sqf +++ b/addons/hitreactions/functions/fnc_throwWeapon.sqf @@ -4,7 +4,7 @@ * Makes the unit throw their currently selected weapon. Unit must be local. * * Arguments: - * 0: unit + * 0: Unit * * Return Value: * Weapon Holder From bd2dc7367bb465b1a7b7008db5756a6227825a8c Mon Sep 17 00:00:00 2001 From: commy2 Date: Sat, 11 Jan 2020 02:58:51 +0100 Subject: [PATCH 053/194] Update addons/hitreactions/functions/fnc_throwWeapon.sqf Co-Authored-By: jonpas --- addons/hitreactions/functions/fnc_throwWeapon.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/hitreactions/functions/fnc_throwWeapon.sqf b/addons/hitreactions/functions/fnc_throwWeapon.sqf index 484be0a04a..65e86f12cb 100644 --- a/addons/hitreactions/functions/fnc_throwWeapon.sqf +++ b/addons/hitreactions/functions/fnc_throwWeapon.sqf @@ -10,7 +10,7 @@ * Weapon Holder * * Example: - * player call ACE_hitreactions_fnc_throwWeapon + * player call ace_hitreactions_fnc_throwWeapon * * Public: No */ From 518006e864110ecc6ff46969fe241fe73028f1d7 Mon Sep 17 00:00:00 2001 From: commy2 Date: Sat, 11 Jan 2020 03:01:33 +0100 Subject: [PATCH 054/194] Update addons/hitreactions/functions/fnc_throwWeapon.sqf Co-Authored-By: jonpas --- addons/hitreactions/functions/fnc_throwWeapon.sqf | 1 + 1 file changed, 1 insertion(+) diff --git a/addons/hitreactions/functions/fnc_throwWeapon.sqf b/addons/hitreactions/functions/fnc_throwWeapon.sqf index 65e86f12cb..0eddf9d582 100644 --- a/addons/hitreactions/functions/fnc_throwWeapon.sqf +++ b/addons/hitreactions/functions/fnc_throwWeapon.sqf @@ -19,6 +19,7 @@ #define THROW_TORQUE 0.2 params ["_unit"]; + private _weapon = currentWeapon _unit; if (_weapon isEqualTo "") exitWith {objNull}; From 12cb0993cf1b3e9957633d05f8825bcbb8059a62 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Fri, 10 Jan 2020 23:14:55 -0600 Subject: [PATCH 055/194] Aircraft - Fix ACE_Gatling_30mm_Sub class --- addons/aircraft/CfgAmmo.hpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/addons/aircraft/CfgAmmo.hpp b/addons/aircraft/CfgAmmo.hpp index dd93606d8a..99f80d5d72 100644 --- a/addons/aircraft/CfgAmmo.hpp +++ b/addons/aircraft/CfgAmmo.hpp @@ -48,7 +48,7 @@ class CfgAmmo { tracerStartTime = 0.02; // default: 0.1 timeToLive = 40; // default: 6 }; - + // adjust damage and splash damage, AP Rounds class ACE_Gatling_30mm_AP_Plane_CAS_01_F: Gatling_30mm_HE_Plane_CAS_01_F { explosive = 0.05; // default: 0.4 @@ -75,14 +75,14 @@ class CfgAmmo { submunitionAmmo = "ACE_Gatling_30mm_AP_Plane_CAS_01_F"; ACE_caliber = 1.4; }; - + class ACE_Gatling_30mm_Sub_CM41: ACE_Gatling_30mm_Sub_HEI { - submunitionAmmo[] = {"ACE_Gatling_30mm_AP_Plane_CAS_01_F",0.8,"Cannon_30mm_HE_Plane_CAS_01_F",0.2}; + submunitionAmmo[] = {"ACE_Gatling_30mm_AP_Plane_CAS_01_F",0.8,"Gatling_30mm_HE_Plane_CAS_01_F",0.2}; ACE_caliber = 1.4; }; class ACE_Gatling_30mm_Sub_CM51: ACE_Gatling_30mm_Sub_HEI { - submunitionAmmo[] = {"ACE_Gatling_30mm_AP_Plane_CAS_01_F",0.83,"Cannon_30mm_HE_Plane_CAS_01_F",0.17}; + submunitionAmmo[] = {"ACE_Gatling_30mm_AP_Plane_CAS_01_F",0.83,"Gatling_30mm_HE_Plane_CAS_01_F",0.17}; ACE_caliber = 1.4; }; From 4bfa882eb7c8f3d4d3146ff0c2a9185dec602958 Mon Sep 17 00:00:00 2001 From: AgentPiTi <59421365+AgentPiTi@users.noreply.github.com> Date: Sat, 11 Jan 2020 16:49:30 +0100 Subject: [PATCH 056/194] Polish Translations (#7449) * PL Translations Done some of new Polish translations * Fix doubles * Apply suggestions from code review Co-Authored-By: Filip Maciejewski * Polish Translations Missing polish translations Co-authored-by: PabstMirror Co-authored-by: Filip Maciejewski --- addons/aircraft/stringtable.xml | 8 ++++++++ addons/medical/stringtable.xml | 1 + addons/medical_treatment/stringtable.xml | 1 + 3 files changed, 10 insertions(+) diff --git a/addons/aircraft/stringtable.xml b/addons/aircraft/stringtable.xml index 6b59b5a0c3..17a073f16b 100644 --- a/addons/aircraft/stringtable.xml +++ b/addons/aircraft/stringtable.xml @@ -56,41 +56,49 @@ 30mm High-Explosive Incendiary 30毫米高爆燃燒彈 30 mm High-Explosive Incendiary + 30mm Odłamkowo-Burzące - Zapalające 30mm HEI 30毫米高爆燃燒 30 mm HEI + 30mm OB-Z 30mm DU Armor Piercing 30毫米貧化鈾穿甲彈 30 mm UA Armor Piercing + 30mm Zubożony Uran - Przebijające 30mm DU AP 30毫米貧鈾穿甲 30 mm UA AP + 30mm ZU-P 30mm Combat Mix 4:1 DU:HEI 30毫米戰鬥混合彈4:1 穿甲:高爆 30 mm Mix de Combat 4:1 UA:HEI + 30mm Mieszanka bojowa 4:1 ZU:OB-Z 30mm CM 4:1 30毫米 穿高混合 4:1 30 mm MdC 4:1 + 30mm MB 4:1 30mm Combat Mix 5:1 DU:HEI 30毫米戰鬥混合彈5:1 穿甲:高爆 30 mm Mix de Combat 5:1 UA:HEI + 30mm Mieszanka bojowa 5:1 ZU:OB-Z 30mm CM 5:1 30毫米 穿高混合 5:1 30 mm MdC 5:1 + 30mm MB 5:1 diff --git a/addons/medical/stringtable.xml b/addons/medical/stringtable.xml index 39e46925e7..15dd72de10 100644 --- a/addons/medical/stringtable.xml +++ b/addons/medical/stringtable.xml @@ -45,6 +45,7 @@ Epinephrine Wake Up Chance Boost + Zwiększenie szansy na wybudzenie po podaniu epinefryny Increases how often spontaneous wake up checks happen when patient has Epinephrine in their system. diff --git a/addons/medical_treatment/stringtable.xml b/addons/medical_treatment/stringtable.xml index 8c82f99e5d..836ca909e5 100644 --- a/addons/medical_treatment/stringtable.xml +++ b/addons/medical_treatment/stringtable.xml @@ -95,6 +95,7 @@ Povoluje hlubší a rozšířené zacházení s léčivy. Také aktivuje Adenosin a Atropin. Abilita una gestione della medicazione più estesa e approfondita. Permette inoltre l'utilizzo dell'Adenosina. Ermöglicht erweiterte, mehr tiefgründigere Anwendung von Medikationen. Ebenso ermöglicht es die Benutzung von Adenosin. + Pozwala na zaawansowane uzycie leków. Pozwala na używanie Adenozyny. Wound Reopening From 245a60fbbc8d9c6b7bb7592381df7ef784717e02 Mon Sep 17 00:00:00 2001 From: Jo David Date: Sat, 11 Jan 2020 17:08:35 +0100 Subject: [PATCH 057/194] Changed: Spanish translations updated (#7432) * Updated spanish traslation * Updated spanish traslation * Updated spanish traslation * Updated spanish traslation * Updated spanish traslation * Spanish traslation updated * Spanish traslation updated * Spanish traslation updated * Spanish translation updated * Spanish traslation updated * Spanish traslation updated * Spanish traslation updated * Spanish translation updated * Spanish translation updated * Merge patch-12 * Laser - Spanish translation updated * Logistics_uavbattery - Spanish translation updated * Apply suggestions from code review Co-Authored-By: Ferran Obon Co-authored-by: ArgA-Maxtor Co-authored-by: PabstMirror Co-authored-by: Ferran Obon --- addons/artillerytables/stringtable.xml | 8 +++---- addons/ballistics/stringtable.xml | 5 ++++ addons/captives/stringtable.xml | 4 ++++ addons/common/stringtable.xml | 10 ++++++++ addons/csw/stringtable.xml | 26 +++++++++++++++++++-- addons/fastroping/stringtable.xml | 22 +++++++++++++---- addons/finger/stringtable.xml | 3 ++- addons/flashlights/stringtable.xml | 3 +++ addons/gforces/stringtable.xml | 2 +- addons/gunbag/stringtable.xml | 6 +++++ addons/hellfire/stringtable.xml | 1 + addons/hitreactions/stringtable.xml | 1 + addons/hot/stringtable.xml | 21 +++++++++++++++++ addons/huntir/stringtable.xml | 2 +- addons/laser/stringtable.xml | 1 + addons/logistics_uavbattery/stringtable.xml | 2 +- 16 files changed, 103 insertions(+), 14 deletions(-) diff --git a/addons/artillerytables/stringtable.xml b/addons/artillerytables/stringtable.xml index f0627f840d..6b8f5c59c2 100644 --- a/addons/artillerytables/stringtable.xml +++ b/addons/artillerytables/stringtable.xml @@ -10,7 +10,7 @@ Tabela Strzelnicza Table de tir d'artillerie Tabela de Artilharia - Tabla de dsitancias de artillería + Tabla de distancias de artillería Universal Artillery Rangetable @@ -21,7 +21,7 @@ Uniwersalna Tabela Strzelnicza Table de tir universelle pour l'artillerie. Tabela de Artilharia Universal - Tabla de dsitancias universal de artillería + Tabla de distancias universal de artillería Air Resistance @@ -64,7 +64,7 @@ Wyłączony Komputer Artyleryjski Désactiver l'ordinateur de tir Computador de Artilharia Desabilitado - Computador de artillería deshabilitado + Computadora de artillería deshabilitada Disable the vanilla artillery computers @@ -75,7 +75,7 @@ Wyłącza komputer artyleryjski wprowadzony w vanili Désactive l'ordinateur de tir vanilla. Desabilitar o computador de artilharia padrão - Deshabilita el computador de artillería por defecto de Arma3 + Deshabilita la computadora de artillería por defecto de Arma 3 diff --git a/addons/ballistics/stringtable.xml b/addons/ballistics/stringtable.xml index 358a798495..d54bed0ee3 100644 --- a/addons/ballistics/stringtable.xml +++ b/addons/ballistics/stringtable.xml @@ -2581,6 +2581,7 @@ Barrel Twist Pas du canon Stoupání vývrtu hlavně + Estriado del cañón Barrel length @@ -2594,6 +2595,7 @@ Длина ствола Comprimento do cano Délka hlavně + Longitud del cañón Ballistic coefficient @@ -2607,6 +2609,7 @@ Баллистический коэффициент Coeficiente balístico Balistický koeficient + Coheficiente de balística Bullet mass @@ -2620,6 +2623,7 @@ Масса пули Massa do projétil Váha projektilu + Masa de la bala Muzzle velocity @@ -2633,6 +2637,7 @@ Начальная скорость Velocidade de Saída Úsťová rychlost + Velocidad inicial diff --git a/addons/captives/stringtable.xml b/addons/captives/stringtable.xml index a5371f2dce..2751dc68ef 100644 --- a/addons/captives/stringtable.xml +++ b/addons/captives/stringtable.xml @@ -15,6 +15,7 @@ Prisonniers Zajatci Tutsaklar + Prisioneros Take Prisoner @@ -433,6 +434,7 @@ Requer rendição da IA Requiert la reddition de l'IA Vyžadovat, aby se AI prvně vzdala + Requiere la rendición de la IA Require AI to surrender before they can be arrested @@ -447,6 +449,7 @@ Requer que a IA se renda antes que seja presa Requiert la capitulation des unités IA avant qu'elles ne puissent être arrêtées. Vyžadovat, aby se AI prvně vzdala před umožněním zajetí + Requiere la rendición de la IA antes de poder arrestarlas Sets the unit under the cursor captive. @@ -461,6 +464,7 @@ Torna a unidade sob o cursor um prisioneiro Capture l'unité sous le curseur. Nastaví jednotku pod kurzorem jako zajatce. + Establece a la unidad bajo el cursor como prisionera diff --git a/addons/common/stringtable.xml b/addons/common/stringtable.xml index 7423698e33..384f1f1360 100644 --- a/addons/common/stringtable.xml +++ b/addons/common/stringtable.xml @@ -483,6 +483,7 @@ Nastavuje jakou akci provést pokud hráč nemá správné PBO. Określa akcję, która ma być podjęta, jeśli gracz nie ma właściwych PBO. プレイヤーが不正規の PBO を所持している場合の動作を決定します。 + Define la accion a tomar si un jugador no tiene el PBO correcto Check PBO All @@ -506,6 +507,7 @@ Zkontrolovat všechny addony a ne jenom ACE. Sprawdź wszystkie dodatki, nie tylko ACE. ACE のみならず、全てのアドオンを検査します。 + Comprueba todos los complementos, no sólo los de ACE Check PBO Whitelist @@ -529,6 +531,7 @@ Nastavte seznam addonů, které jsou povolené. Zdefiniuj listę niezależnie od dozwolonych dodatków. 許可するアドオンを定義します。 + Comprueba la lista de PBOs permitidos Feedback icons @@ -671,6 +674,7 @@ Luz da lanterna/laser da arma persistente Rémanence du pointeur laser/de la lampe torche Perzistentní laser/baterka na zbrani + Punto láser/Linterna persistente en arma Enable gunlight after weapon switch or vehicle enter/exit if it was previously enabled. @@ -685,6 +689,7 @@ Ativa a luz da arma ao trocar de arma, entrar/sair de um veículo. Caso tenha sido acesa anteriormente. Si le pointeur laser/la lampe torche est allumé(e), cette option permet de le/la réallumer automatiquement après un changement d'arme, ou après une entrée/sortie d'un véhicule. Pokud jsou zaplé, zapíná laser/baterku po přepnutí zbraně nebo po nástupu/výstupu z vozidla. + Habilita la luz en el arma después de cambiarla o tras la entrada/salida de un vehículo si estaba préviamente habilitada Banana @@ -1299,6 +1304,7 @@ Permite diminuir volume da música Permission d'abaisser la musique Povolit snížení hlasitosti hudby + Permitir reducir el volumen de la música Allow ACE scripts to turn down the music. @@ -1313,6 +1319,7 @@ Permite que Scripts do ACE diminuam o volume da música. Autorise les scripts ACE à baisser le volume de la musique. Povolit ACE skriptům snížit hlasitost hudby + Permitir a los scripts de ACE reducir el volumen la música Flag (ACE - Black) @@ -1326,6 +1333,7 @@ Bandeira (ACE - Preto) Drapeau (ACE - Noir) Vlajka (ACE - Černá) + Bandera (ACE - Negra) Flag (ACE - White) @@ -1339,6 +1347,7 @@ Bandeira (ACE - Branco) Drapeau (ACE - Blanc) Vlajka (ACE - Bílá) + Bandera (ACE - Blanca) Players only @@ -1380,6 +1389,7 @@ Mostra a ação no menu de auto-interação セルフ インタラクションに動作を表示 Mostra le azioni nel menu di interazione con se stessi + Mostrar la acción en el menú de interacción propio diff --git a/addons/csw/stringtable.xml b/addons/csw/stringtable.xml index aa67131518..34820dd5c6 100644 --- a/addons/csw/stringtable.xml +++ b/addons/csw/stringtable.xml @@ -10,6 +10,7 @@ Armi servite dall'equipaggio Posádkou obsluhované zbraně (CSW) Broń ciężka (CSW) + Armas provistas por la tripulación Place Tripod @@ -20,6 +21,7 @@ Piazza treppiede Položit trojnožku Rozłóż Trójnóg + Colocar trípode Disassemble @@ -50,7 +52,7 @@ Load %1 Lade %1 - Load %1 + Cargar %1 Nabít %1 Charger %1 Załaduj %1 @@ -64,7 +66,7 @@ Unload %1 Entlade %1 - Unload %1 + Descargar %1 Vytáhnout zásobník z %1 Décharger %1 Rozładuj %1 @@ -84,6 +86,7 @@ Collega %1 Spojit %1 Połącz %1 + Conectar %1 Advanced assembly @@ -94,6 +97,7 @@ Montaggio avanzato Pokročilé skládání Zaawansowane składanie + Ensamblado avanzado Use ace for Assemble/Disassemble of supported static weapons. Loaded ammo is reduced to a single magazine. @@ -104,6 +108,7 @@ Utilizzare ace per l'Assemblaggio/smontaggio di armi statiche supportate. Le munizioni cariche sono ridotte ad un solo caricatore. Použít ACE pro složení/rozložení podporovaných statických zbraní. Nabitá munice je snížená na jeden zásobník. Użyj ACE do składania/rozkładania broni statycznych. Załadowana amunicja zostaje zredukowana do jednego magazynku. + Usar el ACE para el ensamblado/desamblado de armas estáticas soportadas. La munición cargada es reducida a un sólo cargador Save extra ammo @@ -114,6 +119,7 @@ Risparmiare munizioni extra Uložit munici navíc. Zapisz dodatkową amunicje + Guardar munición extra Store extra magazines next to static weapon @@ -124,6 +130,7 @@ Conservare i caricatori extra accanto all'arma statica Ukládat munici navíc vedle statické zbraně. Dodatkowe magazynki przechowuj obok broni statycznej + Almacenar cargadores extra junto al arma estática Ammo handling @@ -134,6 +141,7 @@ Gestione delle munizioni Manipulace s municí Obsługa amunicji + Manejo de munición Allow loading and unloading magazines @@ -144,6 +152,7 @@ Permettere il carico e lo scarico dei caricatori Povolit nabíjení a vybíjení zásobníků. Zezwalaj na ładowanie i rozładowywanie magazynków + Permitir la carga y descarga de cargadores Interaction Time Coefficent @@ -154,6 +163,7 @@ Coefficente per il tempo di interazione Koeficient času interakce Współczynnik czasu interakcji + Coheficiente de tiempo de interacción Scales time required to assemble and reload static weapons @@ -164,6 +174,7 @@ Tempo necessario per assemblare e ricaricare le armi statiche Škáluje čas potřebný ke skládání a přebíjení statických zbraní. Definiuje czas potrzebny do złożenia i przeładowania broni statycznej + Escala el tiempo requerida para ensamblar y recargar el arma estática Drag tripods after deploying @@ -174,6 +185,7 @@ Trascinare i treppiedi dopo lo schieramento Tahat trojnožku po položení Przeciągnij statyw po rozmieszczeniu + Arrastrar trípodes despues de desplegarlos After deploying a tripod, start dragging it to a precise location @@ -184,6 +196,7 @@ Dopo aver posizionato un treppiede, iniziate a trascinarlo in una posizione precisa Po položení trojnožky začít automaticky tahání pro lepší polohu. Po rozłożeniu trójnogu zacznij od przeciągania go w określone miejsce + Después de desplegar un trípode, comenzar a arrastrarlo hacia la ubicación precisa Pickup Tripod @@ -194,6 +207,7 @@ Recupero treppiede Složit trojnožku Podnieś Trójnóg + Recoger trípode Mount Weapon @@ -204,6 +218,7 @@ Montare l'arma Připevnit zbraň Zamontuj Broń + Montar arma Disassembling Gun... @@ -214,6 +229,7 @@ Smontaggio arma... Rozkládám zbraň... Rozkładanie Broni... + Desensamblando arma... Assembling Gun... @@ -224,6 +240,7 @@ Montaggio arma... Skládám zbraň... Składanie Broni... + Ensamblando arma... Picking Up Tripod... @@ -234,6 +251,7 @@ Recupero treppiede... Zvedám trojnožku... Podnoszenie Trójnogu... + Recogiendo trípode... Placing Tripod... @@ -244,6 +262,7 @@ Piazzare treppiede... Pokládám trojnožku... Rozmieszczanie Trójnogu... + Ubicando trípode... Enable CSW @@ -254,6 +273,7 @@ Attiva CSW Povolit posádkou obsluhované zbraně (CSW) Włącz CSW + Habilitar CSW Enables Crew Served ability on this weapon @@ -264,6 +284,7 @@ Abilita l'abilità dell'equipaggio su quest'arma Zapne CSW funkce na této zbrani Włącza opcje systemu CSW na tej broni + Activa la habilidad de tripulación en esta arma Enabled and Leave Weapon Empty @@ -274,6 +295,7 @@ Abilitato e lascia l'arma vuota Povolit a nechat zbraň prázdnou Włącz i pozostaw broń pustą + Habilitar y dejar el arma vacía Tripod diff --git a/addons/fastroping/stringtable.xml b/addons/fastroping/stringtable.xml index 2fc2a8b699..a8aba2fab8 100644 --- a/addons/fastroping/stringtable.xml +++ b/addons/fastroping/stringtable.xml @@ -21,7 +21,7 @@ Rüstet kompatible Helikopter mit einem Fast Rope Insertion Extraction System aus. Wyposaża kompatybilne helikoptery w zestaw Fast Rope Insertion Extraction System. Équipe les hélicoptères compatibles avec un FRIES (Fast Rope Insertion Extraction System). - Equipar helicoptero compatible con un Sistema de Inserción Extracción Fast Rope. + Equipar helicoptero compatible con un Sistema de Inserción/Extracción Rápida por Cuerda. Equipagga l'elicottero compatibile con il Fast Rope Insertion Extraction System Vybavit kompatibilní vrtulníky systémem Fast Rope Insertion Extraction (FRIES). Equipa um helicóptero compatível com o Fast Rope Insertion Exctraction System. @@ -36,7 +36,7 @@ Bereite "Fast Roping"-System vor Przygotuj system zjazdu na linach Préparer le système d'aérocordage - Preparar el sistema fast roping + Preparar el sistema de Cuerda Rápida Prepara le corde Připravit systém slaňování Prepara sistema de descida rápida @@ -59,7 +59,7 @@ Recolher o sistema de descida rápida Désactiver le système d'aérocordage Odložit systém slaňování - Recoger sistema de fast roping + Recoger sistema de Cuerda Rápida Deploy ropes @@ -129,7 +129,7 @@ Rüstet den ausgewählten Helicopter mit einem Fast Rope Insertion Extraction System aus Wyposaża wybrany helikopter w zestaw Fast Rope Insertion Extraction System Équipe l'hélicoptère sélectionné avec un Fast Rope Insertion Extraction System (système d'aérocordage). - Equipa el helicoptero seleccionado con un Sistema de Inserción Extracción Fast Rope + Equipa el helicoptero seleccionado con un Sistema de Inserción/Extracción Rápida por Cuerda Equipaggia l'elicottero selezionato con il Fast Rope Insertion Extraction System Vybavit vybraný vrtulník systémem Fast Rope Insertion Extraction (FRIES) Equipa um helicóptero selecionado com um sistema de Fast Rope Insertion Extraction System @@ -165,6 +165,7 @@ Dispiegamento corde 12m Připravit 12m lana 12m halat sal + Desplegar cuerdas de 12m Deploy 15m ropes @@ -178,6 +179,7 @@ Dispiegamento corde 15m Připravit 15m lana 15m halat sal + Desplegar cuerdas de 15m Deploy 18m ropes @@ -191,6 +193,7 @@ Dispiegamento corde 18m Připravit 18m lana 18m halat sal + Desplegar cuerdas de 18m Deploy 27m ropes @@ -204,6 +207,7 @@ Dispiegamento corde 27m Připravit 27m lana 27m halat sal + Desplegar cuerdas de 27m Deploy 36m ropes @@ -217,6 +221,7 @@ Dispiegamento corde 36m Připravit 36m lana 36m halat sal + Desplegar cuerdas de 36m [ACE] Ropes Supply crate @@ -229,6 +234,7 @@ [ACE] 繩索補充箱 [ACE] Cassa Corde [ACE] Bedna s lany + [ACE] Caja de suministros - cuerdas Used to do deploy ropes from a compatibile helicopter @@ -241,6 +247,7 @@ 在可相容的直升機上部屬繩索 Utilizzato per distribuire corde da un elicottero compatibile Používané na přípravu lan na slaňování z kompatibilních helikoptér + Usar para desplegar cuerdas desde helicopteros compatibles Rope 12.2 meters @@ -254,6 +261,7 @@ Corda da 12.2 metri Lano 12.2 metrů 12.2 metre halat + Cuerda de 12.2 metros Rope 15.2 meters @@ -267,6 +275,7 @@ Corda da 15.2 metri Lano 15.2 metrů 15.2 metre halat + Cuerda de 15.2 metros Rope 18.3 meters @@ -280,6 +289,7 @@ Corda da 18.3 metri Lano 18.3 metrů 18.3 metre halat + Cuerda de 18.3 metros Rope 27.4 meters @@ -293,6 +303,7 @@ Corda da 27.4 metri Lano 27.4 metrů 27.4 metre halat + Cuerda de 27.4 metros Rope 36.6 meters @@ -306,12 +317,14 @@ Corda da 36.6 metri Lano 36.6 metrů 36.6 metre halat + Cuerda 36.6 metros Fast-roping Aérocordage 快速繩降 ファスト ロープ + Cuerdas rápidas Zjazd na linach @@ -325,6 +338,7 @@ 需要繩索來部屬 Richiede una corda per il dispigamento Požadovat předmět lana pro slaňování + Requiere una cuerda para desplegar diff --git a/addons/finger/stringtable.xml b/addons/finger/stringtable.xml index 5601ca7f95..4b6fcd4dc5 100644 --- a/addons/finger/stringtable.xml +++ b/addons/finger/stringtable.xml @@ -14,6 +14,7 @@ Указание пальцем Apontando Ukazování + Señalando Pointing Enabled @@ -23,13 +24,13 @@ Mutatás engedélyezése Apontamento ativado Указание пальцем включено - Señalado habilitado Ukazování povoleno Puntamento abilitato 指差しを有効 가리키기 활성화 指向系统启动 指向系統啟動 + Señalado permitido Points, and shows a virtual marker of where you are looking to nearby units. Can be held down. diff --git a/addons/flashlights/stringtable.xml b/addons/flashlights/stringtable.xml index 3af3ec375e..16bb045e5a 100644 --- a/addons/flashlights/stringtable.xml +++ b/addons/flashlights/stringtable.xml @@ -110,6 +110,7 @@ Cor da lanterna no mapa Barva svítilny na mapě Harita ışık rengi + Color de luz sobre el mapa Maglite ML300L @@ -121,6 +122,7 @@ Maglite ML300L マグライト ML300L Maglite ML300L + Maglite ML300L Powerful LED flashlight. @@ -132,6 +134,7 @@ Puissante lampe torche à LED. 協力な LED のフラッシュライト。 Güçlü LED el feneri + Linterna LED potente diff --git a/addons/gforces/stringtable.xml b/addons/gforces/stringtable.xml index c6a37eac6e..9b96462ffc 100644 --- a/addons/gforces/stringtable.xml +++ b/addons/gforces/stringtable.xml @@ -4,7 +4,7 @@ Gforces Effects Effekte der G-Kräfte - Efectos Gforces + Efectos de fuerza G G Force efekty Efeitos da Força G Effets de force gravitationnelle diff --git a/addons/gunbag/stringtable.xml b/addons/gunbag/stringtable.xml index 3647cf9f5a..5363a3108e 100644 --- a/addons/gunbag/stringtable.xml +++ b/addons/gunbag/stringtable.xml @@ -15,6 +15,7 @@ 槍袋 Bolsa de Arma Silah Çantası + Funda de arma Gunbag (Tan) @@ -30,6 +31,7 @@ 槍袋 (黃褐色) Bolsa de Arma (Bege) Silah Çantası (Tan) + Funda de arma (Tan) Put weapon into gunbag @@ -45,6 +47,7 @@ 將武器放置槍袋 Colocar arma na Bosla de Arma Silahını silah çantasına koy + Poner el arma en la funda Get weapon out of gunbag @@ -60,6 +63,7 @@ 將武器拿出槍袋 Retirar arma da Bolsa de Arma Silahını silah çantasından çıkart + Sacar el arma de la funda Status @@ -75,6 +79,7 @@ 狀態 Status Kontrol Et + Estado Gunbag Empty @@ -90,6 +95,7 @@ 槍袋為空 Bolsa de Arma Vazia Silah Çantası Boş + Funda de arma vacía diff --git a/addons/hellfire/stringtable.xml b/addons/hellfire/stringtable.xml index a7c6c790eb..44072d96ea 100644 --- a/addons/hellfire/stringtable.xml +++ b/addons/hellfire/stringtable.xml @@ -15,6 +15,7 @@ Définir mode Hellfire Nastavit režim Hellfire Hellfire modunu ayarla + Ajustar modo Hellfire diff --git a/addons/hitreactions/stringtable.xml b/addons/hitreactions/stringtable.xml index 7ad02b78b0..9adc51498e 100644 --- a/addons/hitreactions/stringtable.xml +++ b/addons/hitreactions/stringtable.xml @@ -14,6 +14,7 @@ Dano Mínimo para ativar queda Dommages minimaux pour déclencher la chute Minimum škody pro aktivaci spadnutí + Daño mínimo para provocar la caída diff --git a/addons/hot/stringtable.xml b/addons/hot/stringtable.xml index 7540272417..dcaa1ac2d7 100644 --- a/addons/hot/stringtable.xml +++ b/addons/hot/stringtable.xml @@ -12,6 +12,7 @@ 有線制導 Filoguidé Drátem naváděné + Guiado por cable Semi-automatic command to line of sight @@ -24,6 +25,7 @@ 視線內半自動指令 Contrôle semi-automatique par contact visuel (SACLOS) Poloautomatický povelový systém dalkového navedení pro záměrné cíle (SACLOS) + Control semi-automático por línea de visión Wire-Guided Missile @@ -36,6 +38,7 @@ 有線制導飛彈 Missile filoguidé Drátem naváděná střela + Misil guiado por cable HOT Missile @@ -48,6 +51,7 @@ 高次音速(HOT)飛彈 Missile HOT HOT Střela + Misil HOT HOT 1 @@ -60,6 +64,7 @@ HOT 1 HOT 1 HOT 1 + HOT 1 HOT 2 @@ -72,6 +77,7 @@ HOT 2 HOT 2 HOT 2 + HOT 2 HOT 2MP @@ -84,6 +90,7 @@ HOT 2MP HOT 2MP HOT 2MP + HOT 2MP HOT 3 @@ -96,6 +103,7 @@ HOT 3 HOT 3 HOT 3 + HOT 3 Wire-Guided Missile (Anti-Personnel) @@ -108,6 +116,7 @@ 有線制導飛彈(反步兵) Missile filoguidé (antipersonnel) Drátem naváděná střela (protipěchotní) + Misil guiado por cable (Antipersona) 1x HOT 1 [ACE] @@ -120,6 +129,7 @@ 1x HOT 1 [ACE] 1x HOT 1 [ACE] 1x HOT 1 [ACE] + 1x HOT 1 [ACE] 3x HOT 1 [ACE] @@ -132,6 +142,7 @@ 3x HOT 1 [ACE] 3x HOT 1 [ACE] 3x HOT 1 [ACE] + 3x HOT 1 [ACE] 4x HOT 1 [ACE] @@ -144,6 +155,7 @@ 4x HOT 1 [ACE] 4x HOT 1 [ACE] 4x HOT 1 [ACE] + 4x HOT 1 [ACE] 1x HOT 2 [ACE] @@ -156,6 +168,7 @@ 1x HOT 2 [ACE] 1x HOT 2 [ACE] 1x HOT 2 [ACE] + 1x HOT 2 [ACE] 3x HOT 2 [ACE] @@ -168,6 +181,7 @@ 3x HOT 2 [ACE] 3x HOT 2 [ACE] 3x HOT 2 [ACE] + 3x HOT 2 [ACE] 4x HOT 2 [ACE] @@ -180,6 +194,7 @@ 4x HOT 2 [ACE] 4x HOT 2 [ACE] 4x HOT 2 [ACE] + 4x HOT 2 [ACE] 1x HOT 2MP [ACE] @@ -192,6 +207,7 @@ 1x HOT 2MP [ACE] 1x HOT 2MP [ACE] 1x HOT 2MP [ACE] + 1x HOT 2MP [ACE] 3x HOT 2MP [ACE] @@ -204,6 +220,7 @@ 3x HOT 2MP [ACE] 3x HOT 2MP [ACE] 3x HOT 2MP [ACE] + 3x HOT 2MP [ACE] 4x HOT 2MP [ACE] @@ -216,6 +233,7 @@ 4x HOT 2MP [ACE] 4x HOT 2MP [ACE] 4x HOT 2MP [ACE] + 4x HOT 2MP [ACE] 1x HOT 3 [ACE] @@ -228,6 +246,7 @@ 1x HOT 3 [ACE] 1x HOT 3 [ACE] 1x HOT 3 [ACE] + 1x HOT 3 [ACE] 4x HOT 3 [ACE] @@ -240,6 +259,7 @@ 4x HOT 3 [ACE] 4x HOT 3 [ACE] 4x HOT 3 [ACE] + 4x HOT 3 [ACE] 3x HOT 3 [ACE] @@ -252,6 +272,7 @@ 3x HOT 3 [ACE] 3x HOT 3 [ACE] 3x HOT 3 [ACE] + 3x HOT 3 [ACE] diff --git a/addons/huntir/stringtable.xml b/addons/huntir/stringtable.xml index 4b89e95841..455220a406 100644 --- a/addons/huntir/stringtable.xml +++ b/addons/huntir/stringtable.xml @@ -244,7 +244,7 @@ Esc - Exit help ESC - Hilfe verlassen - Esc - Salit de ayuda + Esc - Salir del menú de ayuda Esc - Ukončit pomoc Esc - Выйти из помощи Esc - Chiudi aiuto diff --git a/addons/laser/stringtable.xml b/addons/laser/stringtable.xml index ce18a034ed..43a06bb65b 100644 --- a/addons/laser/stringtable.xml +++ b/addons/laser/stringtable.xml @@ -14,6 +14,7 @@ Число симуляций рассеивания лазерного луча Contador da Simulação de Dispersão de Laser Počet simulace disperze laseru + Número de dispersión en la simulación del láser Laser Code diff --git a/addons/logistics_uavbattery/stringtable.xml b/addons/logistics_uavbattery/stringtable.xml index 4c8ce04428..f61883d111 100644 --- a/addons/logistics_uavbattery/stringtable.xml +++ b/addons/logistics_uavbattery/stringtable.xml @@ -68,7 +68,7 @@ Used to refuel Carried UAV's Verwendet zum Aufladen von tragbaren UAVs - Usada para reabastecer el VANT + Usada para reabastecer el VANT transportado Utilisée pour alimenter un drone en énergie. Używana do naładowania baterii przenośnego UAV Hordozható UAV-k feltöltéséhez való akkumulátor From 353feb6400d7f122857046335a8ede1ec023b324 Mon Sep 17 00:00:00 2001 From: commy2 Date: Sat, 11 Jan 2020 19:29:33 +0100 Subject: [PATCH 058/194] don't drop if inside a vehicle --- addons/hitreactions/XEH_PREP.hpp | 2 +- addons/hitreactions/functions/fnc_throwWeapon.sqf | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/addons/hitreactions/XEH_PREP.hpp b/addons/hitreactions/XEH_PREP.hpp index 7d037789ca..53f2d60eb6 100644 --- a/addons/hitreactions/XEH_PREP.hpp +++ b/addons/hitreactions/XEH_PREP.hpp @@ -1,4 +1,4 @@ -PREP(throwWeapon); PREP(fallDown); PREP(getRandomAnimation); +PREP(throwWeapon); diff --git a/addons/hitreactions/functions/fnc_throwWeapon.sqf b/addons/hitreactions/functions/fnc_throwWeapon.sqf index aacc1c7591..5a2938ed07 100644 --- a/addons/hitreactions/functions/fnc_throwWeapon.sqf +++ b/addons/hitreactions/functions/fnc_throwWeapon.sqf @@ -1,7 +1,8 @@ #include "script_component.hpp" /* * Author: commy2 - * Makes the unit throw their currently selected weapon. Unit must be local. + * Makes the unit throw their currently selected weapon. + * Unit must be local and not inside a vehicle or attached to another object. * * Arguments: * 0: unit @@ -20,7 +21,7 @@ params ["_unit"]; private _weapon = currentWeapon _unit; -if (_weapon isEqualTo "") exitWith {objNull}; +if (!isNull objectParent _unit || _weapon isEqualTo "") exitWith {objNull}; private _data = weaponsItems _unit select {_x select 0 == _weapon} select 0; From 3a65a73e945480b342d1a5c7cbb244114a6ba3d0 Mon Sep 17 00:00:00 2001 From: jonpas Date: Sat, 11 Jan 2020 19:48:13 +0100 Subject: [PATCH 059/194] Tools - Run Release Drafter only on original ACE3 repository (#7450) --- .github/workflows/release-drafter.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/release-drafter.yml b/.github/workflows/release-drafter.yml index 59af4476a2..fa0dbe292a 100644 --- a/.github/workflows/release-drafter.yml +++ b/.github/workflows/release-drafter.yml @@ -10,6 +10,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Release Drafter + if: github.repository == 'acemod/ACE3' uses: release-drafter/release-drafter@v5 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} From ad579bf5e44b9f804c41d87d345e06ea7ce6d87b Mon Sep 17 00:00:00 2001 From: Filip Maciejewski Date: Mon, 13 Jan 2020 18:34:42 +0100 Subject: [PATCH 060/194] Fix missing earplug actions (#7464) Fix bug introduced in #7400 --- addons/hearing/CfgVehicles.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/hearing/CfgVehicles.hpp b/addons/hearing/CfgVehicles.hpp index 27ca5fbe2f..729e14a436 100644 --- a/addons/hearing/CfgVehicles.hpp +++ b/addons/hearing/CfgVehicles.hpp @@ -7,7 +7,7 @@ class CfgVehicles { displayName = CSTRING(EarPlugs_On); condition = QUOTE(GVAR(EnableCombatDeafness) && {!([_player] call FUNC(hasEarPlugsIn)) && {'ACE_EarPlugs' in items _player}}); exceptions[] = {"isNotSwimming", "isNotInside", "isNotSitting"}; - statement = QUOTE( [_player, true] call FUNC(putInEarPlugs) ); + statement = QUOTE( ARR_2([_player, true]) call FUNC(putInEarPlugs) ); showDisabled = 0; icon = QPATHTOF(UI\ACE_earplugs_x_ca.paa); }; @@ -15,7 +15,7 @@ class CfgVehicles { displayName = CSTRING(EarPlugs_Off); condition = QUOTE( GVAR(EnableCombatDeafness) && {[_player] call FUNC(hasEarPlugsIn)}); exceptions[] = {"isNotSwimming", "isNotInside", "isNotSitting"}; - statement = QUOTE( [_player, true] call FUNC(removeEarPlugs) ); + statement = QUOTE( ARR_2([_player, true]) call FUNC(removeEarPlugs) ); showDisabled = 0; icon = QPATHTOF(UI\ACE_earplugs_x_ca.paa); }; From 3ba441509d9e24b601727fbe00a6b5d4fd4a6109 Mon Sep 17 00:00:00 2001 From: SimichRE <41232841+SimichRE@users.noreply.github.com> Date: Tue, 14 Jan 2020 08:31:33 +0300 Subject: [PATCH 061/194] Russian translation (#7442) * Translation: Russian Added missing translation to Russian * Update stringtable.xml * Update stringtable.xml * Update stringtable.xml * Update stringtable.xml --- addons/medical_damage/stringtable.xml | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/addons/medical_damage/stringtable.xml b/addons/medical_damage/stringtable.xml index a23ae5bb3a..9b67c9f2ad 100644 --- a/addons/medical_damage/stringtable.xml +++ b/addons/medical_damage/stringtable.xml @@ -192,7 +192,7 @@ Minor Bruise Kleine Prellung Minima Contusione - Малый ушиб + Слабый ушиб Petit hématome Pomniejsze stłuczenie Contusión menor @@ -222,7 +222,7 @@ Large Bruise Große Prellung Alta Contusione - Большой ушиб + Сильный ушиб Grand hématome Duże stłuczenie Contusión severa @@ -237,7 +237,7 @@ Crushed tissue Quetschverletzung Tessuto Schiacciato - Компресионная травма + Компрессионная травма Tissu écrasé Zgniecienie tkanek miękkich Tejido triturado @@ -252,7 +252,7 @@ Minor crushed tissue Kleine Quetschverletzung Minimo Tessuto Schiacciato - Малая компрессионная травма + Слабая компрессионная травма Tissu légèrement écrasé Pomniejsze zgniecienie tkanek miękkich Tejido triturado menor @@ -267,7 +267,7 @@ Medium crushed tissue Mittlere Quetschverletzung Medio Tessuto Schiacciato - Средняя компрессионная травма + Умеренная компрессионная травма Tissu moyennement écrasé Średnie zgniecienie tkanek miękkich Tejido triturado medio @@ -282,7 +282,7 @@ Large crushed tissue Große Quetschverletzung Alto Tessuto Schiacciato - Большая компрессионная травма + Сильная компрессионная травма Tissu fortement écrasé Duże zgniecienie tkanek miękkich Tejido triturado severo @@ -297,7 +297,7 @@ Cut Schnittwunde Taglio - Резаная рана + Порез Coupure Rana cięta Corte @@ -312,7 +312,7 @@ Small Cut Kleine Schnittwunde Piccolo Taglio - Малая резаная рана + Мелкий порез Pomniejsza rana cięta Corte menor Kis vágás @@ -327,7 +327,7 @@ Medium Cut Mittlere Schnittwunde Medio Taglio - Средняя резаная рана + Средний порез Średnia rana cięta Corte mediano Közepes vágás @@ -342,7 +342,7 @@ Large Cut Große Schnittwunde Grande Taglio - Большая резаная рана + Сильный порез Duża rana cięta Corte severo Nagy vágás @@ -535,6 +535,7 @@ Fatal Damage Source + Причина смертельного урона 致命傷の原因 致命傷來源 Cause de blessure mortelle @@ -547,6 +548,7 @@ Determines what damage can be fatal + Определяет какой урон будет смертельным 致命傷となるダメージの種類を決定します。 決定何種傷害為致命 Determina quali danni possono essere fatali @@ -559,6 +561,7 @@ Only large hits to vital organs + Только серьезные попадания в жизненно важные органы 重要器官に大きなダメージを受けた時のみ 只有重要器官之重傷 Grosses blessures sur organes vitaux @@ -571,6 +574,7 @@ Sum of trauma + Совокупность травмы 外傷の数 外部創傷累計 Somme des traumatismes @@ -583,6 +587,7 @@ Either + Оба 両方 兩者都是 Les deux From 273d4ac1610740f1f7b9d80387d8d88a2acdce3a Mon Sep 17 00:00:00 2001 From: Elgin675 Date: Tue, 14 Jan 2020 06:32:24 +0100 Subject: [PATCH 062/194] fix translations: removes Blood_IV "keep cold" (#7457) * fix translations: removes the words "keep cold" from `Blood_IV` keys * Update addons/medical_treatment/stringtable.xml Co-Authored-By: Jo David Co-authored-by: Jo David --- addons/medical_treatment/stringtable.xml | 28 ++++++++++++------------ 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/addons/medical_treatment/stringtable.xml b/addons/medical_treatment/stringtable.xml index 836ca909e5..325051f093 100644 --- a/addons/medical_treatment/stringtable.xml +++ b/addons/medical_treatment/stringtable.xml @@ -1473,20 +1473,20 @@ 點滴 (血液 1000毫升) - Blood IV, for restoring a patients blood (keep cold) - Пакет крови для возмещения объёма потерянной крови (хранить в холодильнике) - Sangre intravenosa, para restarurar el volumen sanguíneo (mantener frío) - Culot sanguin pour transfustion IV, restaure le sang d'un patient (à conserver au froid). - Krew IV, używana do uzupełnienia krwi u pacjenta, trzymać w warunkach chłodniczych. - Vér-infúzió, intravénás bejuttatásra egy páciensnek (hidegen tárolandó) - Sangue usato per ripristinare pazienti in cui si è verificata una perdita di sangue (conservare al fresco) - Blut IV, Bluthaushalt des Patienten wiederherstellen. (Kühl halten) - Sangue intravenoso, para restaurar o volume sanguinio do paciente.(Manter frio) - Krevní transfuze pro doplnění pacientovi krve (skladujte v chladu) - 血液 IV は、患者へ血液を補給します。(要低温保存) - 혈액 IV, 환자에게 혈액을 공급합니다. (차갑게 할것) - 血液, 用于补充伤者流失的血液 (需冷藏) - 血液, 用於補充傷者流失的血液 (需冷藏) + Blood IV, for restoring a patients blood + Пакет крови для возмещения объёма потерянной крови + Sangre intravenosa, para restarurar el volumen sanguíneo + Culot sanguin pour transfustion IV, restaure le sang d'un patient. + Krew IV, używana do uzupełnienia krwi u pacjenta. + Vér-infúzió, intravénás bejuttatásra egy páciensnek + Sangue usato per ripristinare pazienti in cui si è verificata una perdita di sangue + Blut IV, um den Bluthaushalt des Patienten wiederherzustellen. + Sangue intravenoso, para restaurar o volume sanguinio do paciente. + Krevní transfuze pro doplnění pacientovi krve + 血液 IV は、患者へ血液を補給します。 + 혈액 IV, 환자에게 혈액을 공급합니다. + 血液, 用于补充伤者流失的血液 + 血液, 用於補充傷者流失的血液 O Negative infusion blood used in strict and rare events to replenish blood supply usually conducted in the transport phase of medical care. From aee506db996bfe50bb1511f58d1be28dd7cc0171 Mon Sep 17 00:00:00 2001 From: dfr1238 <48888992+dfr1238@users.noreply.github.com> Date: Tue, 14 Jan 2020 13:32:46 +0800 Subject: [PATCH 063/194] Update tchinese (#7461) --- addons/medical/stringtable.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/addons/medical/stringtable.xml b/addons/medical/stringtable.xml index 15dd72de10..f4300f37a4 100644 --- a/addons/medical/stringtable.xml +++ b/addons/medical/stringtable.xml @@ -46,6 +46,7 @@ Epinephrine Wake Up Chance Boost Zwiększenie szansy na wybudzenie po podaniu epinefryny + 腎上腺素甦醒率加成 Increases how often spontaneous wake up checks happen when patient has Epinephrine in their system. From db2900eeb92545ba7b914e72e119c19ad5b67e70 Mon Sep 17 00:00:00 2001 From: diwako Date: Thu, 16 Jan 2020 00:28:02 +0100 Subject: [PATCH 064/194] Add setting for blood transfusion medic level --- .../medical_treatment/ACE_Medical_Treatment_Actions.hpp | 2 +- addons/medical_treatment/initSettings.sqf | 9 +++++++++ addons/medical_treatment/stringtable.xml | 8 ++++++++ 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/addons/medical_treatment/ACE_Medical_Treatment_Actions.hpp b/addons/medical_treatment/ACE_Medical_Treatment_Actions.hpp index 1799d4f583..dd792efa0d 100644 --- a/addons/medical_treatment/ACE_Medical_Treatment_Actions.hpp +++ b/addons/medical_treatment/ACE_Medical_Treatment_Actions.hpp @@ -147,7 +147,7 @@ class GVAR(actions) { allowedSelections[] = {"LeftArm", "RightArm", "LeftLeg", "RightLeg"}; allowSelfTreatment = QGVAR(allowSelfIV); category = "advanced"; - medicRequired = 1; + medicRequired = QGVAR(medicIV); treatmentTime = 12; items[] = {"ACE_bloodIV"}; condition = ""; diff --git a/addons/medical_treatment/initSettings.sqf b/addons/medical_treatment/initSettings.sqf index a4f8191563..f6daf26e5f 100644 --- a/addons/medical_treatment/initSettings.sqf +++ b/addons/medical_treatment/initSettings.sqf @@ -181,6 +181,15 @@ true ] call CBA_settings_fnc_init; +[ + QGVAR(medicIV), + "LIST", + [LSTRING(MedicIV_DisplayName), LSTRING(MedicIV_Description)], + [ELSTRING(medical,Category), LSTRING(SubCategory_Treatment)], + [[0, 1, 2], [LSTRING(Anyone), LSTRING(Medics), LSTRING(Doctors)], 1], + true +] call CBA_settings_fnc_init; + [ QGVAR(cprSuccessChance), "SLIDER", diff --git a/addons/medical_treatment/stringtable.xml b/addons/medical_treatment/stringtable.xml index 325051f093..4453c024e2 100644 --- a/addons/medical_treatment/stringtable.xml +++ b/addons/medical_treatment/stringtable.xml @@ -507,6 +507,14 @@ Pozwala przetoczyć płyny IV samemu sobie Abilita la trasfusione in endovena su se stessi. + + Allow IV Transfusion + Erlaube Bluttransfusionen + + + Training level required to transfuse IVs. + 'Fähigkeiten-Level', das benötigt wird, um Blut zu transfunieren. + Convert Vanilla Items Standard Arma-Equipment in ACE-Items umwandeln From b442f60e89fc82db4588ecae4552304db95d6c69 Mon Sep 17 00:00:00 2001 From: Filip Maciejewski Date: Thu, 16 Jan 2020 14:10:36 +0100 Subject: [PATCH 065/194] Add polish translations --- addons/medical_treatment/stringtable.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/addons/medical_treatment/stringtable.xml b/addons/medical_treatment/stringtable.xml index 4453c024e2..7c42e61e21 100644 --- a/addons/medical_treatment/stringtable.xml +++ b/addons/medical_treatment/stringtable.xml @@ -510,10 +510,12 @@ Allow IV Transfusion Erlaube Bluttransfusionen + Zezwalaj na przetaczanie płynów IV Training level required to transfuse IVs. 'Fähigkeiten-Level', das benötigt wird, um Blut zu transfunieren. + Poziom wyszkolenia potrzebny aby móc przetaczać płyny IV. Convert Vanilla Items From c6147da1b8de1308ef8fcbc4ac4a65291c6d217f Mon Sep 17 00:00:00 2001 From: diwako Date: Thu, 16 Jan 2020 19:24:39 +0100 Subject: [PATCH 066/194] Fix spelling Move setting above allowSelfIV --- addons/medical_treatment/initSettings.sqf | 18 +++++++++--------- addons/medical_treatment/stringtable.xml | 2 +- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/addons/medical_treatment/initSettings.sqf b/addons/medical_treatment/initSettings.sqf index f6daf26e5f..636e0330e7 100644 --- a/addons/medical_treatment/initSettings.sqf +++ b/addons/medical_treatment/initSettings.sqf @@ -172,15 +172,6 @@ true ] call CBA_settings_fnc_init; -[ - QGVAR(allowSelfIV), - "LIST", - [LSTRING(AllowSelfIV_DisplayName), LSTRING(AllowSelfIV_Description)], - [ELSTRING(medical,Category), LSTRING(SubCategory_Treatment)], - [[0, 1], [ELSTRING(common,No), ELSTRING(common,Yes)], 1], - true -] call CBA_settings_fnc_init; - [ QGVAR(medicIV), "LIST", @@ -190,6 +181,15 @@ true ] call CBA_settings_fnc_init; +[ + QGVAR(allowSelfIV), + "LIST", + [LSTRING(AllowSelfIV_DisplayName), LSTRING(AllowSelfIV_Description)], + [ELSTRING(medical,Category), LSTRING(SubCategory_Treatment)], + [[0, 1], [ELSTRING(common,No), ELSTRING(common,Yes)], 1], + true +] call CBA_settings_fnc_init; + [ QGVAR(cprSuccessChance), "SLIDER", diff --git a/addons/medical_treatment/stringtable.xml b/addons/medical_treatment/stringtable.xml index 7c42e61e21..e5d2736646 100644 --- a/addons/medical_treatment/stringtable.xml +++ b/addons/medical_treatment/stringtable.xml @@ -514,7 +514,7 @@ Training level required to transfuse IVs. - 'Fähigkeiten-Level', das benötigt wird, um Blut zu transfunieren. + 'Fähigkeiten-Level', das benötigt wird, um Blut zu transfundieren. Poziom wyszkolenia potrzebny aby móc przetaczać płyny IV. From d8f18c685b89e07730be1b9bff70dc6010ce2ee5 Mon Sep 17 00:00:00 2001 From: Taha <37743192+Fatal53@users.noreply.github.com> Date: Fri, 17 Jan 2020 06:14:23 +0300 Subject: [PATCH 067/194] Turkish Language Update (#7446) * Fatal * Fatal * Fatal Turkish Language Update * Fatal * Update AUTHORS.txt * Fatal Fix * Update AUTHORS.txt * Update * Delete stringtable.xml * Update stringtable.xml * Delete stringtable.xml * Revert "Delete stringtable.xml" This reverts commit 704c1e838c863b476cc438c108da5210a3d41a01. * Update stringtable.xml * Fix Co-authored-by: PabstMirror --- addons/advanced_ballistics/stringtable.xml | 5 + addons/advanced_fatigue/stringtable.xml | 4 + addons/advanced_throwing/stringtable.xml | 8 + addons/ai/stringtable.xml | 1 + addons/artillerytables/stringtable.xml | 5 + addons/attach/stringtable.xml | 11 + addons/captives/stringtable.xml | 7 +- addons/cargo/stringtable.xml | 2 + addons/chemlights/stringtable.xml | 10 + addons/common/stringtable.xml | 8 + addons/csw/stringtable.xml | 40 +++ addons/disposable/stringtable.xml | 2 + addons/dogtags/stringtable.xml | 1 + addons/dragging/stringtable.xml | 1 + addons/explosives/stringtable.xml | 12 + addons/fastroping/stringtable.xml | 1 + addons/gestures/stringtable.xml | 7 + addons/goggles/stringtable.xml | 1 + addons/grenades/stringtable.xml | 3 + addons/hitreactions/stringtable.xml | 1 + addons/hot/stringtable.xml | 20 ++ addons/interact_menu/stringtable.xml | 2 +- addons/interaction/stringtable.xml | 13 +- addons/inventory/stringtable.xml | 2 + addons/kestrel4500/stringtable.xml | 1 + addons/laser/stringtable.xml | 1 + addons/laserpointer/stringtable.xml | 5 + addons/logistics_uavbattery/stringtable.xml | 3 + addons/map/stringtable.xml | 2 + addons/map_gestures/stringtable.xml | 3 + addons/maptools/stringtable.xml | 1 + addons/markers/stringtable.xml | 1 + addons/medical/stringtable.xml | 1 + addons/medical_ai/stringtable.xml | 2 + addons/medical_blood/stringtable.xml | 8 + addons/medical_damage/stringtable.xml | 33 +++ addons/medical_feedback/stringtable.xml | 9 + addons/medical_gui/stringtable.xml | 35 +++ addons/medical_statemachine/stringtable.xml | 5 + addons/medical_status/stringtable.xml | 4 + addons/microdagr/stringtable.xml | 3 + addons/minedetector/stringtable.xml | 1 + addons/missileguidance/stringtable.xml | 9 + addons/missionmodules/stringtable.xml | 8 + addons/mk6mortar/stringtable.xml | 6 + addons/nametags/stringtable.xml | 3 + addons/nightvision/stringtable.xml | 10 + addons/nlaw/stringtable.xml | 2 + addons/optionsmenu/stringtable.xml | 4 + addons/parachute/stringtable.xml | 2 + addons/quickmount/stringtable.xml | 4 + addons/realisticnames/stringtable.xml | 260 ++++++++++++++++++++ addons/refuel/stringtable.xml | 6 + addons/repair/stringtable.xml | 12 + addons/sandbag/stringtable.xml | 1 + addons/spectator/stringtable.xml | 4 + addons/switchunits/stringtable.xml | 7 + addons/tagging/stringtable.xml | 3 + addons/trenches/stringtable.xml | 1 + addons/tripod/stringtable.xml | 1 + addons/ui/stringtable.xml | 24 ++ addons/vector/stringtable.xml | 4 +- addons/vehicles/stringtable.xml | 4 + addons/viewdistance/stringtable.xml | 11 + addons/weaponselect/stringtable.xml | 14 ++ addons/weather/stringtable.xml | 9 + addons/winddeflection/stringtable.xml | 6 + addons/yardage450/stringtable.xml | 2 + 68 files changed, 696 insertions(+), 6 deletions(-) diff --git a/addons/advanced_ballistics/stringtable.xml b/addons/advanced_ballistics/stringtable.xml index e14c4e7a0f..069ab20a0b 100644 --- a/addons/advanced_ballistics/stringtable.xml +++ b/addons/advanced_ballistics/stringtable.xml @@ -33,6 +33,7 @@ 각도기 표시 顯示量角器 显示量角器 + Açı Ölçeri Göster Advanced Ballistics @@ -98,6 +99,7 @@ Вкл. вариацию начальной скорости Ativar Variação de Velocidade no Freio de boca Povoluje variantu rychlosti ústí + Namlu Hızı Değişimini Etkinleştir Simulates slight variations in muzzle velocity between each shot @@ -128,6 +130,7 @@ 탄약 온도 구현 적용 啟用彈藥溫度模擬系統 启用弹药温度模拟系统 + Cephane Sıcaklık Simülasyonunu Etkinleştir Muzzle velocity varies with ammo temperature @@ -256,6 +259,7 @@ 구현 범위 模擬半徑 模拟半径 + Similasyon Yarıçapı Defines the radius around the player (in meters) at which advanced ballistics are applied to projectiles @@ -288,6 +292,7 @@ 이 모듈은 고급 탄도학을 적용시킵니다 - 이는 발사체의 궤적이 기온, 대기압, 습도, 중력, 탄환의 종류와 어느 무기에서 발사되는지에 따라 영향을 받습니다. 該模塊實現先進的彈道仿真 - 這意味著子彈的軌跡是由空氣溫度、大氣壓力、濕度、重力、彈藥類型以及射擊的武器所影響 该模块实现先进的弹道仿真 - 这意味着子弹的轨迹是由空气温度、大气压力、湿度、重力、弹药类型以及射击的武器所影响 + Bu modül gelişmiş balistik simülasyonunu etkinleştirir - yani mermilerin gidişatını hava sıcaklığı, atmosfer basıncı, nem, yerçekimi, mühimmat türü ve ateşlendiği silah gibi durumlar etkiler. diff --git a/addons/advanced_fatigue/stringtable.xml b/addons/advanced_fatigue/stringtable.xml index 9c2da6390e..31b7fad37f 100644 --- a/addons/advanced_fatigue/stringtable.xml +++ b/addons/advanced_fatigue/stringtable.xml @@ -14,6 +14,7 @@ ACE Продвинутая усталость ACE Fadiga Avançada ACE Pokročilá únava + ACE Gelişmiş Yorgunluk Performance Factor @@ -28,6 +29,7 @@ Фактор производительности Fator de Performance Faktor výkonu + Performans Faktörü Influences the overall performance of all players with no custom factor. Higher means better. @@ -70,6 +72,7 @@ Фактор восстановления Fator de Recuperação Faktor zotavení + Kurtarma Faktörü Changes how fast the player recovers when resting. Higher is faster. @@ -234,6 +237,7 @@ 自動的にスタミナバーを非表示 Chowaj pasek wytrzymałości automatycznie Barra de stamina some automaticamente + Dayanıklılık çubuğunu otomatik olarak soldur Adjusts transparency of the bar based on stamina status. diff --git a/addons/advanced_throwing/stringtable.xml b/addons/advanced_throwing/stringtable.xml index 56944cebeb..e6aac8533f 100644 --- a/addons/advanced_throwing/stringtable.xml +++ b/addons/advanced_throwing/stringtable.xml @@ -43,6 +43,7 @@ 启用进阶投掷 Ativa o Arremesso Avançado Povolit pokročilé házení + Gelişmiş Fırlatmayı Etkinleştir Enables advanced throwing system. @@ -57,6 +58,7 @@ 启用进阶投掷系统 Ativa o sistema de Arremesso Avançado. Umožňuje pokročilý systém házení. + Gelişmiş fırlatma sistemini etkinleştirir. Show Throw Arc @@ -71,6 +73,7 @@ 显示投掷轨道 Mostrar o Arco de Arremesso Zobrazit oblouk vrhu + Atış Yayını Göster Enables visualization of the throw arc (where throwable will fly). @@ -239,6 +242,7 @@ 投掷 Arremessar Hodit + At (Scroll) Change Mode @@ -253,6 +257,7 @@ (滚轮) 变更模式 (Roda do Mouse) Alternar modo (Scrollovat) Změnit mód + (Tekerlek) Modu Değiştir (Scroll) Extend @@ -267,6 +272,7 @@ (滚轮) 延长 (Roda do Mouse) Extender (Scrollovat) Oddálit + (Tekerlek) Uzat (Click) Cook @@ -281,6 +287,7 @@ (点击) 提早拉开引信 (Clique) Cozinhar (Klik) Odjistit + (Tıkla) Cook Pick Up @@ -295,6 +302,7 @@ 捡取 Pegar Zvednout + Al diff --git a/addons/ai/stringtable.xml b/addons/ai/stringtable.xml index e69238ca43..36f1d68e46 100644 --- a/addons/ai/stringtable.xml +++ b/addons/ai/stringtable.xml @@ -31,6 +31,7 @@ Nenhuma unidade fornecida. No hay unidades proporcionadas. Nejsou k dispozici žádné jednotky. + Hiçbir Birim Bulunamadı There aren't enough positions to place all units. diff --git a/addons/artillerytables/stringtable.xml b/addons/artillerytables/stringtable.xml index 6b8f5c59c2..feb44537c5 100644 --- a/addons/artillerytables/stringtable.xml +++ b/addons/artillerytables/stringtable.xml @@ -11,6 +11,7 @@ Table de tir d'artillerie Tabela de Artilharia Tabla de distancias de artillería + Topçu Menzil Tablosu Universal Artillery Rangetable @@ -38,6 +39,7 @@ 공기저항 空气阻力 空氣阻力 + Hava Direnci For Player Shots, Model Air Resistance and Wind Effects @@ -54,6 +56,7 @@ 플레이어 사격시 공기저항과 바람에 영향을 받습니다 设定由玩家射击的迫击炮,将会受到空气阻力与风力的影响 設定由玩家射擊的迫擊砲,將會受到空氣阻力與風力的影響 + Oyuncu atışları, hava direnci ve rüzgar efektleri için Artillery Computer Disabled @@ -65,6 +68,7 @@ Désactiver l'ordinateur de tir Computador de Artilharia Desabilitado Computadora de artillería deshabilitada + Topçu Bilgisayarı Devre Dışı Disable the vanilla artillery computers @@ -76,6 +80,7 @@ Désactive l'ordinateur de tir vanilla. Desabilitar o computador de artilharia padrão Deshabilita la computadora de artillería por defecto de Arma 3 + Topçu bilgisayarını devre dışı bırak diff --git a/addons/attach/stringtable.xml b/addons/attach/stringtable.xml index 33c7b47221..44af699017 100644 --- a/addons/attach/stringtable.xml +++ b/addons/attach/stringtable.xml @@ -67,6 +67,7 @@ 적외선 스트로브 부착됨 已附掛紅外線頻閃器 已附挂红外线频闪器 + IR Strobe Bağlandı IR Strobe Detached @@ -83,6 +84,7 @@ 적외선 스트로브 분리됨 已取下紅外線頻閃器 已取下红外线频闪器 + IR Strobe Söküldü IR Grenade Attached @@ -99,6 +101,7 @@ 적외선 수류탄 부착됨 已附掛紅外線手榴彈 已附挂红外线手榴弹 + IR Bombası Bağlandı IR Grenade Detached @@ -115,6 +118,7 @@ 적외선 수류탄 분리됨 已取下紅外線手榴彈 已取下红外线手榴弹 + IR Bombası Söküldü Chemlight Attached @@ -131,6 +135,7 @@ 켐라이트 부착됨 已附掛螢光棒 已附挂萤光棒 + Işık Çubuğu Bağlandı Chemlight Detached @@ -147,6 +152,7 @@ 켐라이트 분리됨 已取下螢光棒 已取下萤光棒 + Işık Çubuğu Söküldü No inventory space @@ -180,6 +186,7 @@ 적외선 스트로브 紅外線頻閃器 红外线频闪器 + IR Stroboskop IR Strobe allows you to signal your position through a pulsating beacon only visible with NVGs. @@ -196,6 +203,7 @@ 적외선 스트로브는 자신의 위치를 반짝이면서 표시합니다. 이는 야간투시경으로 밖에 보지 못합니다. 紅外線閃頻器,藉由紅外線閃頻信號來辨識你的位置,僅能使用夜視系統來辨識紅外線信號 红外线闪频器,藉由红外线闪频信号来辨识你的位置,仅能使用夜视系统来辨识红外线信号 + IR Stroboskop, yalnızca gece görüşlerinden gözükebilen titreşimli bir ışık aracılığıyla konumunuzu gösterir. Place @@ -229,6 +237,7 @@ 취소 取消 取消 + Iptal Attach Failed @@ -262,6 +271,7 @@ %1<br/>부착됨 %1<br/>已附掛 %1<br/>已附挂 + %1<br/>Bağlandı %1<br/>Detached @@ -278,6 +288,7 @@ %1<br/>분리됨 %1<br/>已取下 %1<br/>已取下 + %1<br/>Söküldü diff --git a/addons/captives/stringtable.xml b/addons/captives/stringtable.xml index 2751dc68ef..d3bc173add 100644 --- a/addons/captives/stringtable.xml +++ b/addons/captives/stringtable.xml @@ -117,7 +117,7 @@ 포로 태우기 將俘虜放入載具 将俘虏放入载具 - Tutukluyu bindir/yükle + Tutukluyu bindir Unload Captive @@ -134,7 +134,7 @@ 포로 내리기 將俘虜帶出載具 将俘虏带出载具 - Tutukluyu indir/boşalt + Tutukluyu indir Cable Tie @@ -168,6 +168,7 @@ 케이블 타이는 포로를 구류시킬때 씁니다. 束線帶可以綁住俘虜 束线带可以绑住俘虏 + Kişilerin ellerini bağlamanız için kablo sağlar. Surrender @@ -218,6 +219,7 @@ 투항시키기 使單位投降 使单位投降 + Birimi Kelepçele Sync a unit to make them surrender. @@ -280,6 +282,7 @@ 포박 설정 俘虜設定 俘虏设定 + Tutsak Ayarları Controls settings for surrender and cable ties diff --git a/addons/cargo/stringtable.xml b/addons/cargo/stringtable.xml index 0e87caf185..29d0b5c02c 100644 --- a/addons/cargo/stringtable.xml +++ b/addons/cargo/stringtable.xml @@ -79,6 +79,7 @@ 선적 공간 남음: %1 貨物剩餘空間: %1 货物剩余空间: %1 + Kargo Alanı Kaldı: %1 Enable Cargo @@ -94,6 +95,7 @@ 화물 활성화 啟用貨物裝載 启用货物装载 + Kargoyu Etkinleştir Enable the load in cargo module diff --git a/addons/chemlights/stringtable.xml b/addons/chemlights/stringtable.xml index b0c7d29f9f..6152fdce31 100644 --- a/addons/chemlights/stringtable.xml +++ b/addons/chemlights/stringtable.xml @@ -15,6 +15,7 @@ Bastões de Luz Chemická světla Luces químicas + Işık Çubukları Prepare %1 @@ -61,6 +62,7 @@ 소지품 공간이 없음 已無存放空間 已无存放空间 + Envanter de alan yok [ACE] Chemlights @@ -91,6 +93,7 @@ Bastão de Luz (Laranja) Chemické světlo (Oranžové) Luz química (naranja) + Işık Çubuğu (Turuncu) Orange Light @@ -106,6 +109,7 @@ Luz Laranja Oranžové světlo Luz naranja + Turuncu Işık Type: Light - Orange<br />Rounds: 1<br />Used in: Hand @@ -136,6 +140,7 @@ Bastão de Luz (Branco) Chemické světlo (Bílé) Luz química (Blanca) + Işık Çubuğu (Beyaz) White Light @@ -151,6 +156,7 @@ Luz Branca Bílé světlo Luz blanca + Beyaz Işık Type: Light - White<br />Rounds: 1<br />Used in: Hand @@ -181,6 +187,7 @@ Bastão de Luz (Vermelho Forte) Chemické světlo (Červené jasné) Luz química (Roja Hi) + Işık Çubuğu (Kırmızı) Red Hi Light @@ -196,6 +203,7 @@ Luz forte vermelha Červené jasné světlo Luz roja Hi + Kırmızı Işık Type: Light - Red Hi (30 minute)<br />Rounds: 1<br />Used in: Hand @@ -226,6 +234,7 @@ Bastão de Luz (Amarelo Forte) Chemické světlo (Žluté jasné) Luz química (Amarilla Hi) + Işık Çubuğu (Sarı) Yellow Hi Light @@ -241,6 +250,7 @@ Luz forte amarela Žluté jasné světlo Luz amarilla Hi + Sarı Işık Type: Light - Yellow Hi (30 minute)<br />Rounds: 1<br />Used in: Hand diff --git a/addons/common/stringtable.xml b/addons/common/stringtable.xml index 384f1f1360..64912becff 100644 --- a/addons/common/stringtable.xml +++ b/addons/common/stringtable.xml @@ -31,6 +31,7 @@ ACE-Team ACE-製作團隊 ACE-制作团队 + ACE-Takımı Advanced @@ -80,6 +81,7 @@ 취소 取消 取消 + Iptal ACE Options @@ -394,6 +396,7 @@ [ACE] 기타 물품. [ACE] 雜項 [ACE] 杂项 + [ACE] Çeşitli Nesneler Disable Command Menu @@ -410,6 +413,7 @@ 지휘 메뉴 종료 關閉命令選單 关闭命令选单 + Komut Menüsünü Devre Dışı Bırak Unknown @@ -1333,6 +1337,7 @@ Bandeira (ACE - Preto) Drapeau (ACE - Noir) Vlajka (ACE - Černá) + Bayrak (ACE- Siyah) Bandera (ACE - Negra) @@ -1347,6 +1352,7 @@ Bandeira (ACE - Branco) Drapeau (ACE - Blanc) Vlajka (ACE - Bílá) + Bayrak (ACE - Beyaz) Bandera (ACE - Blanca) @@ -1364,6 +1370,7 @@ 플레이어만 只限玩家 只限玩家 + Sadece oyuncular Players and AI @@ -1380,6 +1387,7 @@ 플레이어 및 인공지능 玩家与AI 玩家與AI + Oyuncular ve AI Show the action in the self-interaction menu diff --git a/addons/csw/stringtable.xml b/addons/csw/stringtable.xml index 34820dd5c6..1beb050c2d 100644 --- a/addons/csw/stringtable.xml +++ b/addons/csw/stringtable.xml @@ -318,6 +318,7 @@ [CSW] 固定型 "迷你長釘"導彈發射器(對地) [CSW] Static Mini-Spike Launcher (AT) [CSW] Statický raketomet Mini-Spike (protitankový) + [CSW] Static Mini-Spike Launcher (AT) [CSW] Mini-Spike Przeciwpancerny pocisk rakietowy @@ -328,6 +329,7 @@ [CSW] 固定型 "迷你長釘"導彈發射器(對空) [CSW] Static Mini-Spike Launcher (AA) [CSW] Statický raketomet Mini-Spike (protiletadlový) + [CSW] Static Mini-Spike Launcher (AA) [CSW] Mini-Spike Przeciwlotniczy pocisk rakietowy @@ -338,6 +340,7 @@ [CSW] 固定型 XM312重機槍 [CSW] Static XM312 Gun [CSW] Statická zbraň XM312 + [CSW] Static XM312 Gun [CSW] Statyczny karabin maszynowy XM312 @@ -348,6 +351,7 @@ [CSW] 固定型 XM312重機槍(自主型) [CSW] Static XM312 Gun (Autonomo) [CSW] Statická zbraň XM312 (autonomická) + [CSW] Static XM312 Gun (Autonomous) [CSW] Statyczny karabin maszynowy XM312 (Dron) @@ -358,6 +362,7 @@ [CSW] 固定型XM307榴彈機槍 [CSW] Static XM307 Gun [CSW] Statická zbraň XM307 + [CSW] Static XM307 Gun [CSW] Statyczny granatnik automatyczny XM307 @@ -368,6 +373,7 @@ [CSW] 固定型 XM307榴彈機槍(自主型) [CSW] Static XM307 Gun (Autonomo) [CSW] Statická zbraň XM307 (autonomická) + [CSW] Static XM307 Gun (Autonomous) [CSW] Statyczny granatnik automatyczny XM307 (Dron) @@ -378,6 +384,7 @@ [CSW]12.7x108毫米 重機槍彈鏈 [CSW] 12.7x108mm HMG Belt [CSW] Pás 12.7×108mm pro těžký kulomet + [CSW] 12.7x108mm HMG Belt [CSW] Taśma 12.7x108mm CKM @@ -388,6 +395,7 @@ [CSW]12.7x99毫米 重機槍彈鏈 [CSW] 12.7x99mm HMG Belt [CSW] Pás 12.7×99mm pro těžký kulomet + [CSW] 12.7x99mm HMG Belt [CSW] Taśma 12.7x99mm CKM @@ -398,6 +406,7 @@ [CSW] 12.7x99毫米 重機槍曳光彈鏈(紅色) [CSW] 12.7x99mm Tracer HMG Belt (Red) [CSW] Pás 12.7×99mm pro těžký kulomet (červená stopovka) + [CSW] 12.7x99mm Tracer HMG Belt (Red) [CSW] Taśma 12.7x99mm CKM Smugowa (Czerwona) @@ -408,6 +417,7 @@ [CSW] 12.7x99毫米 重機槍曳光彈鏈(綠色) [CSW] 12.7x99mm Tracer HMG Belt (Green) [CSW] Pás 12.7×99mm pro těžký kulomet (zelená stopovka) + [CSW] 12.7x99mm Tracer HMG Belt (Green) [CSW] Taśma 12.7x99mm CKM Smugowa (Zielona) @@ -418,6 +428,7 @@ [CSW] 12.7x99毫米 重機槍曳光彈鏈(黃色) [CSW] 12.7x99mm Tracer HMG Belt (Yellow) [CSW] Pás 12.7×99mm pro těžký kulomet (žlutá stopovka) + [CSW] 12.7x99mm Tracer HMG Belt (Yellow) [CSW] Taśma 12.7x99mm CKM Smugowa (Żółta) @@ -428,6 +439,7 @@ [CSW]20毫米 榴彈 榴彈機槍彈鏈 [CSW] 20mm Grenade GMG Belt [CSW] Pás 20mm granátů pro granátomet + [CSW] 20mm Grenade GMG Belt [CSW] Taśma 20mm do granatnika @@ -438,6 +450,7 @@ M3 三腳架 M3 Tripod M3 trojnožka + M3 Tripod Trójnóg M3 @@ -448,6 +461,7 @@ [CSW] 6P57 部署型三腳架 [CSW] 6P57 Deployable Tripod [CSW] 6P57 trojnožka + [CSW] 6P57 Deployable Tripod [CSW] Trójnóg Rozkładany 6P57 @@ -458,6 +472,7 @@ [CSW] 6P57 部署型(低位) [CSW] 6P57 Deployable Tripod (Low) [CSW] 6P57 trojnožka (nízká) + [CSW] 6P57 Deployable Tripod (Low) [CSW] Trójnóg Rozkładany 6P57 (Niski) @@ -468,6 +483,7 @@ [CSW] M220 部署型三腳架 [CSW] M220 Deployable Tripod [CSW] M220 trojnožka + [CSW] M220 Deployable Tripod [CSW] Trójnóg Rozkładany M220 @@ -478,6 +494,7 @@ [CSW] SAG-30 部署型三腳架 [CSW] SAG-30 Deployable Tripod [CSW] SAG-30 trojnožka + [CSW] SAG-30 Deployable Tripod [CSW] Trójnóg Rozkładany SAG-30 @@ -488,6 +505,7 @@ 6P57 三腳架 6P57 Tripod 6P57 trojnožka + 6P57 Tripod Trójnóg 6P57 @@ -498,6 +516,7 @@ SAG-30 三腳架 SAG-30 Tripod SAG-30 trojnožka + SAG-30 Tripod Trójnóg SAG-30 @@ -508,6 +527,7 @@ M220 三腳架 M220 Tripod M220 trojnožka + M220 Tripod Trójnóg M220 @@ -518,6 +538,7 @@ [CSW] M3 部屬型三腳架 [CSW] M3 Deployable Tripod [CSW] M3 trojnožka + [CSW] M3 Deployable Tripod [CSW] Trójnóg Rozkładany M3 @@ -528,6 +549,7 @@ [CSW] M3 部署型三腳架(低位) [CSW] M3 Deployable Tripod (Low) [CSW] M3 trojnožka (nízká) + [CSW] M3 Deployable Tripod (Low) [CSW] Trójnóg Rozkładany M3 (Niski) @@ -538,6 +560,7 @@ [CSW] 迫擊炮基座 [CSW] Mortar Baseplate [CSW] Podstavec pro minomet + [CSW] Mortar Baseplate [CSW] Podstawa Moździerza @@ -548,6 +571,7 @@ 迫擊炮基座 Mortar Baseplate Podstavec pro minomet + Mortar Baseplate Podstawa Moździerza @@ -558,6 +582,7 @@ [CSW] Mk6 迫擊炮炮管 [CSW] Mk6 Mortar Tube [CSW] Minomet Mk6 hlaveň + [CSW] Mk6 Mortar Tube [CSW] Rura Moździerza Mk6 @@ -568,6 +593,7 @@ [CSW] M252 炮管袋 [CSW] M252 Tube Bag [CSW] M252 minometná hlaveň v pouzdře + [CSW] M252 Tube Bag [CSW] Torba na M252 @@ -578,6 +604,7 @@ [CSW] M2槍械袋 [CSW] M2 Gun Bag [CSW] M2 zbraň v pouzdře + [CSW] M2 Gun Bag [CSW] Torba na M2 @@ -588,6 +615,7 @@ [CSW] Mk19槍械袋 [CSW] MK19 Gun Bag [CSW] MK19 zbraň v pouzdře + [CSW] MK19 Gun Bag [CSW] Torba na MK19 @@ -598,6 +626,7 @@ [CSW] BGM-71 拖式飛彈發射器袋 [CSW] BGM-71 TOW Launcher Bag [CSW] BGM-71 TOW raketomet v pouzdře + [CSW] BGM-71 TOW Launcher Bag [CSW] Torba na BGM-71 TOW @@ -608,6 +637,7 @@ [CSW]DShK 槍械袋 [CSW] DSHK Gun Bag [CSW] DSHK zbraň v pouzdře + [CSW] DSHK Gun Bag [CSW] Torba na DSzK @@ -618,6 +648,7 @@ [CSW] 2B14 炮管袋 [CSW] 2B14 Tube Bag [CSW] 2B14 minometná hlaveň v pouzdře + [CSW] 2B14 Tube Bag [CSW] Torba na 2B14 @@ -628,6 +659,7 @@ [CSW] NSV 槍械袋 [CSW] NSV Gun Bag [CSW] NSV zbraň v pouzdře + [CSW] NSV Gun Bag [CSW] Torba na NSV @@ -638,6 +670,7 @@ [CSW] KORD 槍械袋 [CSW] KORD Gun Bag [CSW] KORD zbraň v pouzdře + [CSW] KORD Gun Bag [CSW] Torba na KORD @@ -648,6 +681,7 @@ [CSW] AGS-30 槍械袋 [CSW] AGS-30 Gun Bag [CSW] ASG-30 zbraň v pouzdře + [CSW] AGS-30 Gun Bag [CSW] Torba na AGS-30 @@ -658,6 +692,7 @@ [CSW] 9k115 麥士蒂索人發射器袋 [CSW] 9k115 Metis Launcher Bag [CSW] 9k115 Metis raketomet v pouzdře + [CSW] 9k115 Metis Launcher Bag [CSW] Torba na 9k115 Metis @@ -668,6 +703,7 @@ [CSW] 9M113 短號發射器 [CSW] 9m113 Kornet Launcher [CSW] 9m113 Kornet raketomet + [CSW] 9m113 Kornet Launcher [CSW] Wyrzutnia 9m113 Kornet @@ -678,6 +714,7 @@ SPG-9 三腳架 SPG-9 Tripod SPG-9 trojnožka + SPG-9 Tripod Trójnóg SPG-9 @@ -688,6 +725,7 @@ [CSW] SPG-9 部署型三腳架 [CSW] SPG-9 Deployable Tripod [CSW] SPG-9 trojnožka + [CSW] SPG-9 Deployable Tripod [CSW] Trójnóg rozkładany SPG-9 @@ -698,6 +736,7 @@ [CSW] SPG-9 發射器袋 [CSW] SPG-9 Launcher Bag [CSW] SPG-9 raketomet v pouzdře + [CSW] SPG-9 Launcher Bag [CSW] Torba na SPG-9 @@ -708,6 +747,7 @@ [CSW] SPG-9M 發射器袋 [CSW] SPG-9M Launcher Bag [CSW] SPG-9M raketomet v pouzdře + [CSW] SPG-9M Launcher Bag [CSW] Torba na SPG-9M diff --git a/addons/disposable/stringtable.xml b/addons/disposable/stringtable.xml index 01b5b2a649..b0148a47a6 100644 --- a/addons/disposable/stringtable.xml +++ b/addons/disposable/stringtable.xml @@ -16,6 +16,7 @@ 사용함 使用過的火箭筒 使用过的火箭筒 + Kullanılmış Tüp Used disposable rocket launcher @@ -32,6 +33,7 @@ 사용한 일회용 발사관 使用過的一次性火箭發射器 使用过的一次性火箭发射器 + Tek Kullanımlık Roket Atar Preloaded Missile Dummy diff --git a/addons/dogtags/stringtable.xml b/addons/dogtags/stringtable.xml index 6dca808936..d32205351b 100644 --- a/addons/dogtags/stringtable.xml +++ b/addons/dogtags/stringtable.xml @@ -79,6 +79,7 @@ 从%1身上拿取兵籍牌... Dogtag pego de %1... Tomado placa de identidad de %1... + Künye %1 kişisinden alındı Somebody else has already taken the dogtag... diff --git a/addons/dragging/stringtable.xml b/addons/dragging/stringtable.xml index 3d04a24bde..ca9a9d45e5 100644 --- a/addons/dragging/stringtable.xml +++ b/addons/dragging/stringtable.xml @@ -100,6 +100,7 @@ 높이기/낮추기 提高/下降 提高/下降 + Yukarı/Aşağı diff --git a/addons/explosives/stringtable.xml b/addons/explosives/stringtable.xml index bfecfc87f7..ff550043ed 100644 --- a/addons/explosives/stringtable.xml +++ b/addons/explosives/stringtable.xml @@ -150,6 +150,7 @@ 취소 取消 取消 + Iptal Rotate @@ -183,6 +184,7 @@ Thor III 켜기 开启索尔三型 開啟索爾三型 + Thor III ü aç Turn Off Thor III @@ -199,6 +201,7 @@ Thor III 끄기 关闭索尔三型 關閉索爾三型 + Thor III ü kapat Cellphone @@ -265,6 +268,7 @@ 원격으로 폭발물을 폭파시킬때 씁니다. 用于远端引爆炸药 用於遠端引爆炸藥 + Patlayıcıları uzaktan tetiklemek için kullanılır M152 Firing Device @@ -298,6 +302,7 @@ M152 RAMS M152 远端炸药引爆系统 M152 遠端炸藥引爆系統 + M152 RAMS Defusal Kit @@ -314,6 +319,7 @@ 해체 장비 拆弹工具 拆彈工具 + Imha Kiti Allows defusing of explosives @@ -330,6 +336,7 @@ 폭발물을 해체할 수 있게 해줍니다 可以用来拆除炸弹 可以用來拆除炸彈 + Patlayıcıların etkisiz hale gelmesini sağlar. Add to Speed Dial @@ -429,6 +436,7 @@ 취소 取消 取消 + Iptal Detonate Menu @@ -445,6 +453,7 @@ 폭파 메뉴 引爆选单 引爆選單 + Patlatma Menüsü Place Menu @@ -461,6 +470,7 @@ 설치 메뉴 放置选单 放置選單 + Yerleştirme Menüsü Defuse @@ -477,6 +487,7 @@ 해체 拆除 拆除 + Imha Defusing Explosive... @@ -493,6 +504,7 @@ 폭발물 해체중... 炸弹拆除中... 炸彈拆除中... + Patlayıcı Imha Ediliyor... Timer diff --git a/addons/fastroping/stringtable.xml b/addons/fastroping/stringtable.xml index a8aba2fab8..761c61dc87 100644 --- a/addons/fastroping/stringtable.xml +++ b/addons/fastroping/stringtable.xml @@ -234,6 +234,7 @@ [ACE] 繩索補充箱 [ACE] Cassa Corde [ACE] Bedna s lany + [ACE] Halat Sandığı [ACE] Caja de suministros - cuerdas diff --git a/addons/gestures/stringtable.xml b/addons/gestures/stringtable.xml index e7733270f8..1c631c4e43 100644 --- a/addons/gestures/stringtable.xml +++ b/addons/gestures/stringtable.xml @@ -117,6 +117,7 @@ 起立 起立 + Yukarı Cease Fire @@ -214,6 +215,7 @@ 앞으로 이동 往前走 往前走 + Ileri Git Engage @@ -245,6 +247,7 @@ 가리키기 指出 指出 + Nokta Hold @@ -292,6 +295,7 @@ 수신호를 상호작용 메뉴에서 보여줍니다 显示手势互动选单 顯示手勢互動選單 + Hareketleri Etkileşim Menüsünde Göster Show gestures on the self interaction menu, or just use keybinds, or disable completely @@ -307,6 +311,7 @@ 수신호를 상호작용 메뉴에서 보여주거나 혹은 단축키를 지정하거나 아니면 아예 사용하지 않습니다. 显示手势选项在自己的互动选单上,或只利用键盘来使用手势,或完全禁用 顯示手勢選項在自己的互動選單上,或只利用鍵盤來使用手勢,或完全禁用 + Kendi kendine etkileşim menüsünde hareketleri göster veya sadece tuş atamaları kullan veya tamamen devre dışı bırak. Just Keybinds @@ -322,6 +327,7 @@ 오직 단축키만 只利用键盘 只利用鍵盤 + Sadece Tuş Atamaları Keybinds + Interaction Menu @@ -337,6 +343,7 @@ 단축키및 상호작용 메뉴 键盘 + 互动选单 鍵盤 + 互動選單 + Tuş Atamaları + Etkileşim Menüsü diff --git a/addons/goggles/stringtable.xml b/addons/goggles/stringtable.xml index 5f5d8b3153..19eadab410 100644 --- a/addons/goggles/stringtable.xml +++ b/addons/goggles/stringtable.xml @@ -125,6 +125,7 @@ Afficher l'interaction "Essuyer les lunettes" Mostra a auto-interação de limpar os óculos Mostrar limpiar gafas en menú de auto-interacción + Kendi etkileşim menüsün de gözlük camlarını silmeyi göster diff --git a/addons/grenades/stringtable.xml b/addons/grenades/stringtable.xml index 36d91ae72a..f34a807796 100644 --- a/addons/grenades/stringtable.xml +++ b/addons/grenades/stringtable.xml @@ -83,6 +83,7 @@ 굴려넣기 地面滚抛 地面滾拋 + Bombayı Yuvarla Drop Grenade @@ -99,6 +100,7 @@ 떨어뜨리기 下丢投掷 下丟投擲 + Bombayı Yere Bırak M84 Stun Grenade @@ -131,6 +133,7 @@ M84 M84 M84 + M84 Also known as flashbang. Causes immediate flash blindness, deafness, tinnitus, and inner ear disturbance. diff --git a/addons/hitreactions/stringtable.xml b/addons/hitreactions/stringtable.xml index 9adc51498e..8e654e3ad2 100644 --- a/addons/hitreactions/stringtable.xml +++ b/addons/hitreactions/stringtable.xml @@ -14,6 +14,7 @@ Dano Mínimo para ativar queda Dommages minimaux pour déclencher la chute Minimum škody pro aktivaci spadnutí + Düşmeyi tetikleyen min hasar Daño mínimo para provocar la caída diff --git a/addons/hot/stringtable.xml b/addons/hot/stringtable.xml index dcaa1ac2d7..833cbe787f 100644 --- a/addons/hot/stringtable.xml +++ b/addons/hot/stringtable.xml @@ -12,6 +12,7 @@ 有線制導 Filoguidé Drátem naváděné + Tel-Güdümlü Guiado por cable @@ -38,6 +39,7 @@ 有線制導飛彈 Missile filoguidé Drátem naváděná střela + Tel Güdümlü Füze Misil guiado por cable @@ -51,6 +53,7 @@ 高次音速(HOT)飛彈 Missile HOT HOT Střela + HOT Missile Misil HOT @@ -64,6 +67,7 @@ HOT 1 HOT 1 HOT 1 + HOT 1 HOT 1 @@ -77,6 +81,7 @@ HOT 2 HOT 2 HOT 2 + HOT 2 HOT 2 @@ -90,6 +95,7 @@ HOT 2MP HOT 2MP HOT 2MP + HOT 2MP HOT 2MP @@ -103,6 +109,7 @@ HOT 3 HOT 3 HOT 3 + HOT 3 HOT 3 @@ -116,6 +123,7 @@ 有線制導飛彈(反步兵) Missile filoguidé (antipersonnel) Drátem naváděná střela (protipěchotní) + Tel Güdümlü Füze (Anti-Personelı) Misil guiado por cable (Antipersona) @@ -129,6 +137,7 @@ 1x HOT 1 [ACE] 1x HOT 1 [ACE] 1x HOT 1 [ACE] + 1x HOT 1 [ACE] 1x HOT 1 [ACE] @@ -142,6 +151,7 @@ 3x HOT 1 [ACE] 3x HOT 1 [ACE] 3x HOT 1 [ACE] + 3x HOT 1 [ACE] 3x HOT 1 [ACE] @@ -155,6 +165,7 @@ 4x HOT 1 [ACE] 4x HOT 1 [ACE] 4x HOT 1 [ACE] + 4x HOT 1 [ACE] 4x HOT 1 [ACE] @@ -168,6 +179,7 @@ 1x HOT 2 [ACE] 1x HOT 2 [ACE] 1x HOT 2 [ACE] + 1x HOT 2 [ACE] 1x HOT 2 [ACE] @@ -181,6 +193,7 @@ 3x HOT 2 [ACE] 3x HOT 2 [ACE] 3x HOT 2 [ACE] + 3x HOT 2 [ACE] 3x HOT 2 [ACE] @@ -194,6 +207,7 @@ 4x HOT 2 [ACE] 4x HOT 2 [ACE] 4x HOT 2 [ACE] + 4x HOT 2 [ACE] 4x HOT 2 [ACE] @@ -207,6 +221,7 @@ 1x HOT 2MP [ACE] 1x HOT 2MP [ACE] 1x HOT 2MP [ACE] + 1x HOT 2MP [ACE] 1x HOT 2MP [ACE] @@ -220,6 +235,7 @@ 3x HOT 2MP [ACE] 3x HOT 2MP [ACE] 3x HOT 2MP [ACE] + 3x HOT 2MP [ACE] 3x HOT 2MP [ACE] @@ -233,6 +249,7 @@ 4x HOT 2MP [ACE] 4x HOT 2MP [ACE] 4x HOT 2MP [ACE] + 4x HOT 2MP [ACE] 4x HOT 2MP [ACE] @@ -246,6 +263,7 @@ 1x HOT 3 [ACE] 1x HOT 3 [ACE] 1x HOT 3 [ACE] + 1x HOT 3 [ACE] 1x HOT 3 [ACE] @@ -259,6 +277,7 @@ 4x HOT 3 [ACE] 4x HOT 3 [ACE] 4x HOT 3 [ACE] + 4x HOT 3 [ACE] 4x HOT 3 [ACE] @@ -272,6 +291,7 @@ 3x HOT 3 [ACE] 3x HOT 3 [ACE] 3x HOT 3 [ACE] + 3x HOT 3 [ACE] 3x HOT 3 [ACE] diff --git a/addons/interact_menu/stringtable.xml b/addons/interact_menu/stringtable.xml index f4a50f32ed..ab4c9f89f1 100644 --- a/addons/interact_menu/stringtable.xml +++ b/addons/interact_menu/stringtable.xml @@ -81,7 +81,7 @@ 자기상호작용 키 自我互动键 自我互動鍵 - Kendi Etkileşim Tuşu + Kendi Etkileşimim Tuşu Self Actions diff --git a/addons/interaction/stringtable.xml b/addons/interaction/stringtable.xml index a2f9c29e4c..022eaa7cfc 100644 --- a/addons/interaction/stringtable.xml +++ b/addons/interaction/stringtable.xml @@ -32,7 +32,7 @@ 상호작용 互动 互動 - Etkileşim + Etkileşimler Torso @@ -355,6 +355,7 @@ 춤 멈추기 停止跳舞 停止跳舞 + Dans Etmeyi Durdur << Back @@ -388,6 +389,7 @@ 등에 무기 메기 将武器放到背后 將武器放到背後 + Silahı arkaya koy Tap Shoulder @@ -421,6 +423,7 @@ 누군가 오른쪽 어깨를 쳤다 你的右肩膀被轻拍了一下 你的右肩膀被輕拍了一下 + Birisi Sağ Omuzuna Dokundu You were tapped on the LEFT shoulder. @@ -437,6 +440,7 @@ 누군가 왼쪽 어깨를 쳤다 你的左肩膀被轻拍了一下 你的左肩膀被輕拍了一下 + Birisi Sol Omuzuna Dokundu Cancel @@ -453,6 +457,7 @@ 취소 取消 取消 + Iptal Select @@ -519,6 +524,7 @@ 出去 出去 Saia! + Dışarı Team Management @@ -891,6 +897,7 @@ 밀기 + Ittir Flip @@ -989,6 +996,7 @@ 팀 설정 활성화 启用小队管理 啟用小隊管理 + Takım Yönetimini Etkinleştir Should players be allowed to use the Team Management Menu? Default: Yes @@ -1005,6 +1013,7 @@ 플레이어들이 팀 설정하는 것을 허락합니까? 기본설정: 예 允许玩家使用小队管理选单? 预设: 是 允許玩家使用小隊管理選單? 預設: 是 + Oyuncuların Takım Yönetimi Menüsünü kullanmalarına izin verilmeli mi? Varsayılan: Evet Disable negative rating @@ -1113,6 +1122,7 @@ 주무기 탄창 给予主武器弹匣 給予主武器彈匣 + Birincil Şarjörü Pistol magazine @@ -1128,6 +1138,7 @@ 부무기 탄창 给予手枪弹匣 給予手槍彈匣 + Tabanca Şarjörü %1 passed you a %2 magazine. diff --git a/addons/inventory/stringtable.xml b/addons/inventory/stringtable.xml index 65ab39ae21..e5ed300836 100644 --- a/addons/inventory/stringtable.xml +++ b/addons/inventory/stringtable.xml @@ -16,6 +16,7 @@ 소지품 화면을 더 크게 합니다 使物品显示清单更大 使物品顯示清單更大 + Envanter Görüntüsünü Daha Büyük Yap 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. @@ -32,6 +33,7 @@ 보통 소지품 화면은 사용자 인터페이스 크기에 비례합니다. 이 항목은 소지품의 사용자 인터페이스를 확대를 가능케하면서 글씨는 그대로 냅두게 해줍니다. 一般来说,物品清单尺寸是由使用者介面来决定的。此选项能让你的物品显示清单更大但不会增加字体大小,此举可增加更多能被显示的描述行数! 一般來說,物品清單尺寸是由使用者介面來決定的。此選項能讓你的物品顯示清單更大但不會增加字體大小,此舉可增加更多能被顯示的描述行數! + Normalde envanter görüntüleme, kullanıcı arayüzü boyutuna göre ölçeklenir. Bu, Envanter kullanıcı arayüzü boyutunu büyütmeye izin verir, ancak daha fazla satır görüntülenmesine izin vermek için yazı tipi boyutunu büyütmez. Backpacks diff --git a/addons/kestrel4500/stringtable.xml b/addons/kestrel4500/stringtable.xml index d84c505430..1ce5294745 100644 --- a/addons/kestrel4500/stringtable.xml +++ b/addons/kestrel4500/stringtable.xml @@ -33,6 +33,7 @@ Kestrel 4500 휴대형 기상 관측기 猎隼4500掌上型天气追踪仪 獵隼4500掌上型天氣追蹤儀 + Kestrel 4500 Cep Hava Durumu Izleyicisi Open Kestrel 4500 diff --git a/addons/laser/stringtable.xml b/addons/laser/stringtable.xml index 43a06bb65b..9863f0b15b 100644 --- a/addons/laser/stringtable.xml +++ b/addons/laser/stringtable.xml @@ -31,6 +31,7 @@ 레이저 코드 雷射码 雷射碼 + Lazer Kod Laser - Cycle Code Up diff --git a/addons/laserpointer/stringtable.xml b/addons/laserpointer/stringtable.xml index e884cb4ec2..9418705ceb 100644 --- a/addons/laserpointer/stringtable.xml +++ b/addons/laserpointer/stringtable.xml @@ -16,6 +16,7 @@ 레이저 지시기 雷射指示器 雷射指示器 + Lazer Işaretleyici Laser Pointer (red) @@ -32,6 +33,7 @@ 레이저 지시기 (빨강) 雷射指示器 (红色) 雷射指示器 (紅色) + Lazer Işaretleyici (Kırmızı) Laser Pointer (green) @@ -48,6 +50,7 @@ 레이저 지시기 (초록) 雷射指示器 (绿色) 雷射指示器 (綠色) + Lazer Işaretleyici (Yeşil) Emits visible light. @@ -64,6 +67,7 @@ 밝은 곳에서도 보임 发射出可见光 發射出可見光 + Görünür ışık yayar. <t color='#9cf953'>Use: </t>Turn Laser ON/OFF @@ -80,6 +84,7 @@ <t color='#9cf953'>사용키: </t>레이저 켜기/끄기 <t color='#9cf953'>使用: </t>雷射开启/关闭 <t color='#9cf953'>使用: </t>雷射開啟/關閉 + <t color='#9cf953'>Use: </t>Turn Laser ON/OFF Laser diff --git a/addons/logistics_uavbattery/stringtable.xml b/addons/logistics_uavbattery/stringtable.xml index f61883d111..fc945deb0d 100644 --- a/addons/logistics_uavbattery/stringtable.xml +++ b/addons/logistics_uavbattery/stringtable.xml @@ -16,6 +16,7 @@ 무인기 충전완료 无人载具电池已充满 無人載具電池已充滿 + IHA Dolu You need a UAV Battery @@ -48,6 +49,7 @@ 재충전 充电 充電 + Şarj UAV Battery @@ -96,6 +98,7 @@ 充电中... 充電中... 충전중... + Şarj Oluyor diff --git a/addons/map/stringtable.xml b/addons/map/stringtable.xml index 84a583548c..70193f2cfc 100644 --- a/addons/map/stringtable.xml +++ b/addons/map/stringtable.xml @@ -33,6 +33,7 @@ 지도에 조명 地图照明 地圖照明 + Harita aydınlatması Simulate map lighting based on ambient lighting and player's items? @@ -94,6 +95,7 @@ 지도 흔들림 地图震动 地圖震動 + Harita sarsıntısı Make map shake when walking? diff --git a/addons/map_gestures/stringtable.xml b/addons/map_gestures/stringtable.xml index b568cd2619..ae0e3edd7f 100644 --- a/addons/map_gestures/stringtable.xml +++ b/addons/map_gestures/stringtable.xml @@ -94,6 +94,7 @@ 갱신 간격 更新间隔 更新間隔 + Güncelleme aralığı Time between data updates. @@ -109,6 +110,7 @@ 데이터 갱신 간격 定义每次更新数据的时间. 定義每次更新數據的時間 + Veri güncellemeleri arasındaki zaman. Name Text Color @@ -124,6 +126,7 @@ 글 색상 명칭 名称文字颜色 名稱文字顏色 + Isim Metin Rengi Color of the name tag text besides the map gestures mark. diff --git a/addons/maptools/stringtable.xml b/addons/maptools/stringtable.xml index e614812a55..694f1029c0 100644 --- a/addons/maptools/stringtable.xml +++ b/addons/maptools/stringtable.xml @@ -33,6 +33,7 @@ 독도용 도구는 지도상에서 거리나 각도를 잴 수 있게 해줍니다. 地图工具能够让你在地图上测量距离与角度 地圖工具能夠讓你在地圖上測量距離與角度 + Harita Araçları, haritadaki mesafeleri ve açıları ölçmenize olanak tanır. Map Tools diff --git a/addons/markers/stringtable.xml b/addons/markers/stringtable.xml index 8dc3d77ae2..6c1c937fe9 100644 --- a/addons/markers/stringtable.xml +++ b/addons/markers/stringtable.xml @@ -31,6 +31,7 @@ Marcadores Marqueurs Značky + Işaretleyiciler Allow moving markers for diff --git a/addons/medical/stringtable.xml b/addons/medical/stringtable.xml index f4300f37a4..ee21f20814 100644 --- a/addons/medical/stringtable.xml +++ b/addons/medical/stringtable.xml @@ -16,6 +16,7 @@ ACE 의료 ACE 医疗系统 ACE 醫療系統 + ACE Medikal Unconscious Wake Up Chance diff --git a/addons/medical_ai/stringtable.xml b/addons/medical_ai/stringtable.xml index 63d2b9ed22..e8b73e56b3 100644 --- a/addons/medical_ai/stringtable.xml +++ b/addons/medical_ai/stringtable.xml @@ -13,6 +13,7 @@ Zdravotnická AI Medyk AI Médico para IA + Medikal AI AI will respond to injury and unconsciousness @@ -41,6 +42,7 @@ 서버와 헤드리스만 Apenas Servidor e HC Pouze Server a HC + Sadece Sunucu ve HC de diff --git a/addons/medical_blood/stringtable.xml b/addons/medical_blood/stringtable.xml index 758dda8577..79f8f7ba75 100644 --- a/addons/medical_blood/stringtable.xml +++ b/addons/medical_blood/stringtable.xml @@ -14,6 +14,7 @@ 혈흔 血痕 血跡 + Kan Enable Blood Drops @@ -29,6 +30,7 @@ Permitir gotas de sangue Povolit kapky krve Habilitar manchas de sangre + Kan Damlalarıı Etkinleştir Enables the creation of blood drops when units are bleeding or take damage. @@ -40,6 +42,7 @@ Povoluje vytváření kapek krve na zemi když jednotka krvácí nebo utrpí zranění. Umożliwia tworzenie śladów krwi, gdy jednostki krwawią lub otrzymują obrażenia. Habilita la creación de sangrecuando la unidad está sangrando o recibe daño + Kişiler kanarken veya hasar alırken kan damlası oluşumunu sağlar. Abilita la creazione di chiazze di sangue quando un'unità sta sanguinando o viene ferita. Ermöglicht das Erstellen von Blutstropfen, wenn Einheiten am Bluten sind oder Schaden nehmen. @@ -54,6 +57,7 @@ Maximum objektů krve Maksymalna ilość śladów krwi Máxima cantidad de objetos de sangre + Maksimum Kan Objeleri Maximale Anzahl an Blutstropfen-Objekten @@ -67,6 +71,7 @@ Nastavuje maximum objektů krve na zemi, příliš mnoho může způsobit pokles FPS Definiuje maksymalną ilość śladów krwi, które mogą zostać stworzone, nadmierne ilości mogą powodować spadki FPS. Fija el límite de objetos de sangre que aparecerán, cantidades excesivas pueden causar caídas de FPS + Ortaya çıkabilecek maksimum kan damlası sayısını ayarlar, aşırı miktarlar FPS düşmesine neden olabilir. Legt die maximale Anzahl an Blutstropfen-Objekten fest, die erscheinen können. Eine zu hoch eingestellte Anzahl kann Lags verursachen. @@ -80,6 +85,7 @@ Životnost krve Czas trwania śladów krwi Duración de la sangre + Kan Ömrü Anzeigedauer der Blutstropfen @@ -93,6 +99,7 @@ Nastavuje jak dlouho objekty krve na zemi vydrží. Kontroluje czas trwania śladów krwi. Controla el tiempo de vida que tendrán los objetos de sangre + Kan objelerinin silinme süresini belirler. Kontrolliert die Anzeigedauer der Blutstropfen-Objekte. @@ -109,6 +116,7 @@ Apenas Jogadores Pouze hráči Solo jugadores + Sadece Oyuncular diff --git a/addons/medical_damage/stringtable.xml b/addons/medical_damage/stringtable.xml index 9b67c9f2ad..5b6407167d 100644 --- a/addons/medical_damage/stringtable.xml +++ b/addons/medical_damage/stringtable.xml @@ -25,6 +25,7 @@ Nastavuje kolik poškození hráč může obdržet než upadne do bezvědomí. Definiuje ilość obrażeń jaką może przyjąć gracz przed straceniem przytomności. Fijar la cantidad de daño que un jugador puede recivir antes de caer inconsciente + Bir oyuncunun bayılmadan önce alabileceği hasar miktarını belirler. Legt die Höhe des Schadens fest, den ein Spieler erhalten kann, bevor er ohnmächtig wird. @@ -67,6 +68,7 @@ 擦り傷 긁힘 擦傷 + Sıyrık Minor Scrape @@ -82,6 +84,7 @@ 小さな擦り傷 조금 긁힘 小擦傷 + Küçük Sıyrık Medium Scrape @@ -97,6 +100,7 @@ 中くらいの擦り傷 꽤 긁힘 中度擦傷 + Orta Sıyrık Large Scrape @@ -112,6 +116,7 @@ 大きな擦り傷 심하게 긁힘 嚴重擦傷 + Büyük Sıyrık Avulsion @@ -127,6 +132,7 @@ 剥離傷 떨어져나감 撕除傷 + Kopma Minor Avulsion @@ -142,6 +148,7 @@ 小さな剥離傷 조금 떨어져나감 小撕除傷 + Küçük Kopuk Medium Avulsion @@ -157,6 +164,7 @@ 中くらいの剥離傷 꽤 떨어져나감 中度撕除傷 + Orta Kopuk Large Avulsion @@ -172,6 +180,7 @@ 大きな剥離傷 크게 떨어져나감 嚴重撕除傷 + Büyük Kopuk Bruise @@ -187,6 +196,7 @@ 打ち傷 挫傷 + Yara Minor Bruise @@ -202,6 +212,7 @@ 小さな打ち傷 조금 멍듬 小挫傷 + Küçük Yara Medium Bruise @@ -217,6 +228,7 @@ 中くらいの打ち傷 꽤 멍듬 中度挫傷 + Orta Yara Large Bruise @@ -232,6 +244,7 @@ 大きな打撲傷 심하게 멍듬 嚴重挫傷 + Büyük Yara Crushed tissue @@ -247,6 +260,7 @@ 圧挫傷 뭉개짐 壓迫傷 + Ezilmiş Doku Minor crushed tissue @@ -262,6 +276,7 @@ 小さな圧挫傷 조금 뭉개짐 小壓迫傷 + Küçük Ezilmiş Doku Medium crushed tissue @@ -277,6 +292,7 @@ 中くらいの圧挫傷 꽤 뭉개짐 中度壓迫傷 + Orta Ezilmiş Doku Large crushed tissue @@ -292,6 +308,7 @@ 大きな圧挫傷 심하게 뭉개짐 嚴重壓迫傷 + Büyük Ezilmiş Doku Cut @@ -307,6 +324,7 @@ 切り傷 베임 割傷 + Kesik Small Cut @@ -322,6 +340,7 @@ 小さな切り傷 조금 베임 小割傷 + Küçük Kesik Medium Cut @@ -337,6 +356,7 @@ 中くらいの切り傷 꽤 베임 中度割傷 + Orta Kesik Large Cut @@ -352,6 +372,7 @@ 大きな切り傷 심하게 베임 嚴重割傷 + Büyük Kesik Tear @@ -427,6 +448,7 @@ 銃創 총상 槍傷 + Hız Yarası Small Velocity Wound @@ -442,6 +464,7 @@ 小さな銃創 소형 총상 小槍傷 + Küçük Hız Yarası Medium Velocity Wound @@ -457,6 +480,7 @@ 中くらいの銃創 중형 총상 中度槍傷 + Orta Hız Yarası Large Velocity Wound @@ -472,6 +496,7 @@ 大きな銃創 대형 총상 嚴重槍傷 + Büyük Hız Yarası Puncture Wound @@ -487,6 +512,7 @@ 刺し傷 관통상 刺傷 + Delinme Yarası Minor Puncture Wound @@ -502,6 +528,7 @@ 小さな刺し傷 소형 관통상 小刺傷 + Küçük Delinme Yarası Medium Puncture Wound @@ -517,6 +544,7 @@ 中くらいの刺し傷 중형 관통상 中度刺傷 + Orta Delinme Yarası Large Puncture Wound @@ -532,6 +560,7 @@ 大きな刺し傷 대형 관통상 嚴重刺傷 + Büyük Delinme Yarası Fatal Damage Source @@ -544,6 +573,7 @@ Źródło obrażeń krytycznych Fonte de Dano Fatal Origen de daño fatal + Ölümcül Hasar Kaynağı Quelle für tödlichen Schaden @@ -557,6 +587,7 @@ Określa jakie obrażenia mogą być śmiertelne Determina qual dano pode ser fatal Determina qué daño puede ser fatal + Hangi hasarın ölümcül olabileceğini belirler Bestimmt welcher Schaden tödlich ist. @@ -570,6 +601,7 @@ Tylko duże trafienia w ważne narządy Apenas danos largos a órgãos vitais Solo grandes heridas en organos vitales + Sadece hayati organlara büyük vuruşlar Nur schwere Treffer an lebenswichtigen Organen @@ -596,6 +628,7 @@ Zarówno Ou Ambos + Ikisinden biri Beide diff --git a/addons/medical_feedback/stringtable.xml b/addons/medical_feedback/stringtable.xml index a504411883..d5177eb699 100644 --- a/addons/medical_feedback/stringtable.xml +++ b/addons/medical_feedback/stringtable.xml @@ -13,6 +13,7 @@ Zpětná vazba Informacje Zwrotne Reacción + Geri Bildirim Pain Effect Type @@ -28,6 +29,7 @@ 痛み効果の種類 고통 효과 종류 疼痛效果類型 + Ağrı Etkisi Türü Selects the used pain effect type. @@ -40,6 +42,7 @@ Nastavuje který efekt bolesti bude používán. Wybiera rodzaj efektu bólu. Selecciona el tipo de efecto de dolor + Kullanılan ağrı efekti tipini seçer. Wählt den zu benutzenden Schmerzeffekt aus. @@ -54,6 +57,7 @@ Blikání bílé barvy Miganie na biało Destello blanco + Beyaz Yanıp Sönüyor Pulsing Blur @@ -67,6 +71,7 @@ Pulzující rozmazání Pulsujące rozmycie Enborronamiento pulsante + Titreşimli Bulanıklık Chromatic Aberration @@ -83,6 +88,7 @@ 색수차 色差 色差 + Renk sapmaları Only high pain effect @@ -94,6 +100,7 @@ Tylko efekt mocnego bólu Apenas efeito de dor alta Solo efecto de dolor fuerte + Sadece yüksek ağrı etkisi Nur bei starken Schmerzen @@ -112,6 +119,7 @@ 비명 활성화 启用尖叫 啟用尖叫 + Çığlıkları Etkinleştir Enable screaming by injured units @@ -128,6 +136,7 @@ 부상당한 인원이 소리지르는것을 활성화합니다 启用伤者的尖叫声 啟用傷者的尖叫聲 + Yaralı birimler tarafından çığlık atmayı etkinleştir diff --git a/addons/medical_gui/stringtable.xml b/addons/medical_gui/stringtable.xml index e6d8bc87f7..90353ee906 100644 --- a/addons/medical_gui/stringtable.xml +++ b/addons/medical_gui/stringtable.xml @@ -12,6 +12,7 @@ GUI Graficzny Interfejs Użytkownika Interfaz gráfica + GUI Graphische Benutzeroberfläche @@ -26,6 +27,7 @@ Povolit zdravotnické akce Włącza opcje medyczne Habilitar acciones médicas + Medikal hareketleri etkinleştir Enables medical actions for the Interaction Menu and selects their style. @@ -55,6 +57,7 @@ 선택 (3d) 选择 (3D) 選擇 (3D) + Seçimler (3D) Radial @@ -71,6 +74,7 @@ 다이얼형 放射状 放射狀 + Radyal Enable Medical Self Actions @@ -84,6 +88,7 @@ Povolit zdravotnické vlastní akce Włącza akcje medyczne na sobie Habilitar las acciones médicas en uno mismo + Kendine Tıbbi Müdahele Etmeyi Etkinleştir Enables medical actions for the Self Interaction Menu. @@ -110,6 +115,7 @@ Povolit Zdravotnické menu Włącz Menu Medyczne Activar menú médico + Medikal Menüyü Etkinleştir Enables the use of the Medical Menu through the keybind or interaction menu. @@ -191,6 +197,7 @@ 치료 医疗 醫療 + Medikal Medical Menu @@ -206,6 +213,7 @@ 의료 메뉴 医疗选单 醫療選單 + Medikal Menü Open Medical Menu @@ -221,6 +229,7 @@ 의료 메뉴 열기 开起医疗选单 開起醫療選單 + Medikal Menüyü Aç Load Patient @@ -237,6 +246,7 @@ 환자 싣기 将伤者放入 將傷者放入 + Kişiyi Bindir Unload Patient @@ -253,6 +263,7 @@ 환자 내리기 将伤者背出 將傷者背出 + Kişiyi Indir EXAMINE & TREATMENT @@ -283,6 +294,7 @@ 상태 状态 狀態 + DURUM OVERVIEW @@ -298,6 +310,7 @@ 개요 概述 概述 + GENEL BAKIŞ ACTIVITY LOG @@ -313,6 +326,7 @@ 활동 로그 医疗纪录 醫療紀錄 + AKTIVITE GÜNLÜĞÜ QUICK VIEW @@ -328,6 +342,7 @@ 퀵 뷰 快速检查 快速檢查 + HIZLI GÖRÜNÜM INJURIES @@ -344,6 +359,7 @@ 부상 受伤 受傷 + YARALANMALARI View Triage Card @@ -359,6 +375,7 @@ 부상자 카드 보기 查看诊断卡 查看診斷卡 + Triyaj Kartını Görüntüle Examine Patient @@ -374,6 +391,7 @@ 환자 검사하기 检查伤者 檢查傷者 + Hastayı Incele Bandage / Fractures @@ -389,6 +407,7 @@ 붕대 / 골절 绷带 / 骨折 繃帶 / 骨折 + Bandaj / Kırıklar Medication @@ -449,6 +468,7 @@ 끌기 / 들기 拖 / 背 拖 / 背 + Sürükle / Taşı Toggle (Self) @@ -479,6 +499,7 @@ 머리 头部 頭部 + Kafa Torso @@ -494,6 +515,7 @@ 몸통 身体 身體 + Gövde Left Arm @@ -509,6 +531,7 @@ 왼쪽 팔 左手 左手 + Sol Kol Right Arm @@ -524,6 +547,7 @@ 오른쪽 팔 右手 右手 + Sağ Kol Left Leg @@ -539,6 +563,7 @@ 왼쪽 다리 左脚 左腳 + Sol Bacak Right Leg @@ -554,6 +579,7 @@ 오른쪽 다리 右脚 右腳 + Sağ Bacak Select Head @@ -569,6 +595,7 @@ 머리 선택 选择头部 選擇頭部 + Kafayı Seç Select Torso @@ -584,6 +611,7 @@ 몸통 선택 选择身体 選擇身體 + Gövdeyi Seç Select Left Arm @@ -599,6 +627,7 @@ 왼쪽 팔 선택 选择左手 選擇左手 + Sol Kolu Seç Select Right Arm @@ -614,6 +643,7 @@ 오른쪽 팔 선택 选择右手 選擇右手 + Sağ Kolu Seç Select Left Leg @@ -629,6 +659,7 @@ 왼쪽 다리 선택 选择左脚 選擇左腳 + Sol Bacağı Seç Select Right Leg @@ -644,6 +675,7 @@ 오른쪽 다리 선택 选择右脚 選擇右腳 + Sağ Bacağı Seç Small @@ -659,6 +691,7 @@ + Küçük Medium @@ -674,6 +707,7 @@ + Orta Large @@ -689,6 +723,7 @@ + Büyük There are %2 %1 Open Wounds diff --git a/addons/medical_statemachine/stringtable.xml b/addons/medical_statemachine/stringtable.xml index 8675dcddea..e0797bfa84 100644 --- a/addons/medical_statemachine/stringtable.xml +++ b/addons/medical_statemachine/stringtable.xml @@ -22,6 +22,7 @@ Smrtelná zranění hráčů Śmiertelne Obrażenia Gracza Lesioni mortali del giocatore + Oyuncu Ölümcül Yaralanmaları Tödliche Spielerverletzungen @@ -30,6 +31,7 @@ プレイヤーが致命傷を受けた時の挙動を管理できます。頭部や胸部に受ける大きなダメージは致命傷になります。 控制當玩家受致命傷時是否能救起。致命傷是指對頭部或身體造成可觀傷害所造成的。 Définit si les joueurs décèdent en cas de blessure mortelle. Une blessure mortelle est causée par un dommage important à la tête ou au torse. + Oyuncuların ölümcül yaralanmaları ne zaman alabileceğini kontrol eder. Ölümcül bir yaralanma, kafaya veya vücuda önemli hasar verir. Nastavuje zda hráči mohou utrpět smrtelné zranění. Smrtelné zranění je utrpěto významným poškozením hlavy nebo trupu. Controlla quando i giocatori possono ricevere infortuni mortali. Una lesione mortale è causata da un danno significativo alla testa o al busto. Definiuje, kiedy gracze mogą otrzymać śmiertelne obrażenia. Śmiertelne obrażenia są spowodowane znacznym uszkodzeniem głowy lub torsu. @@ -44,6 +46,7 @@ Smrtelná zranění AI Śmiertelne obrażenia AI. AI Lesioni mortali + AI Ölümcül Yaralanmaları Tödliche KI-Verletzungen @@ -52,6 +55,7 @@ AI が致命傷を受けた時の挙動を管理できます。頭部や胸部に受ける大きなダメージは致命傷になります。\n"常に"に設定されていると、いかなる致命傷でも "AI の即死" 効果が生まれます。\n注: "常に"以外のモードでは AI の無意識化を有効化させる必要があります。 控制當AI受致命傷時是否能救起。致命傷是指對頭部或身體造成可觀傷害所造成的。\n當設置為"總是"時,這會使其與"AI 瞬間死亡"同一個效果,在AI受到致命傷時瞬間死亡。\n備註:選了"總是"以外的選項的話必須開啟「AI無意識」的選項。 Définit si les unités IA décèdent en cas de blessure mortelle. Une blessure mortelle est causée par un dommage important à la tête ou au torse.\nSi réglé sur "Toujours", cela produit effectivement un comportement de "Mort instantanée" car les unités IA mourront immédiatement de toute blessure mortelle.\nNOTE : Tout mode autre que "Toujours" nécessite l'activation de l'option "Inconscience IA". + AI'nın ölümcül yaralanmaları ne zaman alabileceğini kontrol eder. Ölümcül bir yaralanma, kafa veya vücudun önemli hasar görmesinden kaynaklanır. \"Her zaman" olarak ayarlandığında, AI herhangi bir ölümcül yaralanmadan hemen öleceği için bu etkili bir şekilde "AI Anında Ölüm" davranışı üretir.\ NOT: "Her zaman" "Yapay Zeka Bilinci'nin etkinleştirilmesini gerektirir. Nastavuje zda AI může utrpět smrtelné zranění. Smrtelné zranění je utrpěto významným poškozením hlavy nebo trupu.\nPokud je tato možnost nastavena na "Vždy", efektivně nastává stav "Povolit okamžitou smrt AI", protože AI okamžitě zemře při jakémkoliv smrtelném zranění.\nPOZNÁMKA: Jakýkoliv jiný stav než "Vždy" potřebuje zapnutou možnost "Bezvědomí AI". Controlla quando l'IA può ricevere ferite mortali. Una lesione mortale è causata da un danno significativo alla testa o al torso.\nSe impostato su "Sempre", questo produce efficacemente il comportamento "Morte istantanea AI", poiché l'IA morirà immediatamente a causa di qualsiasi lesione mortale.\nNOTA: Qualsiasi modalità diversa da "Sempre" richiede l'attivazione dell'Incoscienza AI. Definiuje, kiedy AI może otrzymać śmiertelne obrażenia. Śmiertelne obrażenia są spowodowane znacznym uszkodzeniem głowy lub torsu.\n Ustawienie "Zawsze" powoduje "Natychmiastową śmierć AI", ponieważ AI natychmiast umiera z powodu śmiertelnych obrażeń.\n UWAGA: Każdy inny tryb niż "Zawsze" wymaga włączenia nieprzytomności AI. @@ -72,6 +76,7 @@ 인공지능 기절 AI无意识 AI無意識 + Yapay Zeka Bilinci Controls whether AI can go unconscious instead of immediately dying.\nThis setting works together with the "AI Fatal Injuries" setting since, going into cardiac arrest requires that the unit is able to go unconscious.\nHowever, these settings are separated because units can go unconscious from critical vitals resulting from non-fatal injuries.\nIn essence, this means that in order to enable cardiac arrest for AI units, this setting must be enabled. diff --git a/addons/medical_status/stringtable.xml b/addons/medical_status/stringtable.xml index d33b703366..b16a05e700 100644 --- a/addons/medical_status/stringtable.xml +++ b/addons/medical_status/stringtable.xml @@ -13,6 +13,7 @@ Stav Status Estado + Durum Bleeding Coefficient @@ -29,6 +30,7 @@ 출혈 계수 流血系数 流血係數 + Kanama Katsayısı Coefficient for controlling the bleeding speed. @@ -45,6 +47,7 @@ 출혈의 속도를 계수만큼 변경합니다 修改流血速度 修改流血速度 + Kanama hızını kontrol etme katsayısı. Pain Coefficient @@ -61,6 +64,7 @@ 고통 계수 疼痛系数 疼痛係數 + Ağrı Katsayısı Coefficient for controlling the intensity of pain adjustments. diff --git a/addons/microdagr/stringtable.xml b/addons/microdagr/stringtable.xml index 42235acb93..458c87188f 100644 --- a/addons/microdagr/stringtable.xml +++ b/addons/microdagr/stringtable.xml @@ -16,6 +16,7 @@ MicroDAGR GPS 微型军用GPS接收器 微型軍用GPS接收器 + MicroDAGR GPS MicroDAGR advanced GPS receiver @@ -112,6 +113,7 @@ 켜기 开启 開啟 + Açık Off @@ -128,6 +130,7 @@ 끄기 关闭 關閉 + Kapalı Enter Grid Cords: diff --git a/addons/minedetector/stringtable.xml b/addons/minedetector/stringtable.xml index 9d75a6b4c5..7dec7d1a80 100644 --- a/addons/minedetector/stringtable.xml +++ b/addons/minedetector/stringtable.xml @@ -63,6 +63,7 @@ 停用探測器 Desativar Desactivar + Aktif Değil Connect Headphones diff --git a/addons/missileguidance/stringtable.xml b/addons/missileguidance/stringtable.xml index 3e2cf06854..939f44d31c 100644 --- a/addons/missileguidance/stringtable.xml +++ b/addons/missileguidance/stringtable.xml @@ -64,6 +64,7 @@ DAGR 直接攻击制导火箭弹 直接攻擊導引飛彈 + DAGR Hydra-70 DAGR Laser Guided Missile @@ -80,6 +81,7 @@ Hydra-70 DAGR 레이저 유도 미사일 九头蛇-70mm 制导航空火箭弹 九頭蛇-70 直接攻擊雷射導引飛彈 + Hydra-70 DAGR Laser Guided Missile Hellfire II AGM-114K Missile @@ -96,6 +98,7 @@ Hellfire II AGM-114K 미사일 地狱火II型AGM-114K空地制导破甲弹 地獄火II型 AGM-114K 導彈 + Hellfire II AGM-114K Missile AGM-114K @@ -112,6 +115,7 @@ AGM-114K AGM-114K制导破甲弹 AGM-114K + AGM-114K Hellfire II AGM-114K Laser Guided Missile @@ -128,6 +132,7 @@ Hellfire II AGM-114K 레이저 유도 미사일 地狱火II型AGM-114K空地制导破甲弹 地獄火II型 AGM-114K 雷射導引飛彈 + Hellfire II AGM-114K Laser Guided Missile Off @@ -144,6 +149,7 @@ 끄기 关闭 關閉 + Kapalı Player Only @@ -160,6 +166,7 @@ 오직 플레이어만 只有玩家 只有玩家 + Sadece Oyuncular Player and AI @@ -176,6 +183,7 @@ 玩家和AI 玩家和AI 플레이어와 AI + Oyuncular ve AI Cycle Fire Mode @@ -192,6 +200,7 @@ 발사 방식 순환 循环切换开火模式 循環切換開火模式 + Ateşleme Modunu Değiştir diff --git a/addons/missionmodules/stringtable.xml b/addons/missionmodules/stringtable.xml index a70cf06776..62f8e0ad41 100644 --- a/addons/missionmodules/stringtable.xml +++ b/addons/missionmodules/stringtable.xml @@ -16,6 +16,7 @@ ACE 미션 모듈 ACE 任务模块 ACE 任務模塊 + ACE Görev Modülleri Ambiance Sounds @@ -32,6 +33,7 @@ 환경 효과음 环境声音 環境聲音 + Ortam Sesleri Sounds @@ -48,6 +50,7 @@ 효과음 声音 聲音 + Sesler Class names of the ambiance sounds to be played. Seperated by ',' @@ -79,6 +82,7 @@ 최소 거리 最小距离 最小距離 + Minimum Mesafe Used for calculating a random position and sets the minimal distance between the players and the played sound file(s) @@ -111,6 +115,7 @@ 최대 거리 最大距离 最大距離 + Maksimum Mesafe Used for calculating a random position and sets the maximum distance between the players and the played sound file(s) @@ -143,6 +148,7 @@ 최소 지연 最小延迟 最小延遲 + Minimum Gecikme Minimal delay between sounds played @@ -175,6 +181,7 @@ 최대 지연 最大延迟 最大延遲 + Maksimum Gecikme Maximum delay between sounds played @@ -207,6 +214,7 @@ 플레이어 따라가기 跟随玩家 跟隨玩家 + Oyuncuları Takip Et Follow players. If set to false, loop will play sounds only nearby logic position. diff --git a/addons/mk6mortar/stringtable.xml b/addons/mk6mortar/stringtable.xml index 3e1b55c41b..a6157e7f7b 100644 --- a/addons/mk6mortar/stringtable.xml +++ b/addons/mk6mortar/stringtable.xml @@ -16,6 +16,7 @@ 82mm 사거리표 82mm迫击炮射表 82毫米迫擊炮射表 + 82mm Menzil Tablosu Range Table for the Mk6 82mm Mortar @@ -48,6 +49,7 @@ 82mm 사거리표 열기 开启82mm迫击炮射表 開啟82毫米迫擊炮射表 + 82mm Menzil Tablosunu Aç Charge @@ -64,6 +66,7 @@ 장약 装药 裝藥 + Yükle Mk6 Mortar @@ -77,6 +80,7 @@ Миномет Mk6 Morteiro Mk6 Minomet Mk6 + Mk6 Mortar Mk6 Settings @@ -93,6 +97,7 @@ Mk6 설정 MK6设定 MK6設定 + Mk6 Ayarları Air Resistance @@ -109,6 +114,7 @@ 공기저항 空气阻力 空氣阻力 + Hava Direnci For Player Shots, Model Air Resistance and Wind Effects diff --git a/addons/nametags/stringtable.xml b/addons/nametags/stringtable.xml index d5af46f037..bc318d673f 100644 --- a/addons/nametags/stringtable.xml +++ b/addons/nametags/stringtable.xml @@ -16,6 +16,7 @@ 이름표 玩家名字 玩家名稱 + Isım Etiketleri This module allows you to customize settings and range of Name Tags. @@ -32,6 +33,7 @@ 이 모듈은 당신이 이름표의 범위를 임의로 수정할 수 있게 해줍니다. 这个模块允许您设定名字和显示范围等设定 這個模塊允許您設定名稱和顯示範圍等設定 + Bu modül, Isim Etiketleri ayarlarını ve aralığını özelleştirmenizi sağlar. Show Names @@ -48,6 +50,7 @@ 이름 표시 显示名字 顯示名稱 + Isimleri Göster Show player names diff --git a/addons/nightvision/stringtable.xml b/addons/nightvision/stringtable.xml index e0df9849c7..a0f02ef1ca 100644 --- a/addons/nightvision/stringtable.xml +++ b/addons/nightvision/stringtable.xml @@ -30,6 +30,7 @@ 야투경 (1세대) 夜视镜 (初代) 夜視鏡 (初代) + GG Gözlüğü (1. Jen) NV Goggles (Gen2) @@ -46,6 +47,7 @@ 야투경 (2세대) 夜视镜 (二代) 夜視鏡 (二代) + GG Gözlüğü (2. Jen) NV Goggles (Gen3) @@ -62,6 +64,7 @@ 야투경 (3세대) 夜视镜 (三代) 夜視鏡 (三代) + GG Gözlüğü (3. Jen) NV Goggles (Gen3, Brown) @@ -78,6 +81,7 @@ 야투경 (3세대, 갈색) 夜视镜 (三代, 棕色) 夜視鏡 (三代, 棕色) + GG Gözlüğü (3. Jen Kahverengi) NV Goggles (Gen3, Green) @@ -94,6 +98,7 @@ 야투경 (3세대, 녹색) 夜视镜 (三代, 绿色) 夜視鏡 (三代, 綠色) + GG Gözlüğü (3. Jen Yeşil) NV Goggles (Gen3, Black) @@ -110,6 +115,7 @@ 야투경 (3세대, 검정색) 夜视镜 (三代, 黑色) 夜視鏡 (三代, 黑色) + GG Gözlüğü (3. Jen Siyah) NV Goggles (Gen4) @@ -126,6 +132,7 @@ 야투경 (4세대) 夜视镜 (四代) 夜視鏡 (四代) + GG Gözlüğü (4. Jen) NV Goggles (Wide) @@ -142,6 +149,7 @@ 야투경 (넓음) 夜视镜 (宽版) 夜視鏡 (寬版) + GG Gözlüğü (Geniş) Brightness: %1 @@ -158,6 +166,7 @@ 밝기: %1 亮度: %1 亮度: %1 + Parlaklık: %1 Increase NVG Brightness @@ -205,6 +214,7 @@ 야간투시경 夜视 夜視 + Gece Görüşü Settings for night vision. diff --git a/addons/nlaw/stringtable.xml b/addons/nlaw/stringtable.xml index 92d5ba526b..c8bbf1a459 100644 --- a/addons/nlaw/stringtable.xml +++ b/addons/nlaw/stringtable.xml @@ -14,6 +14,7 @@ NLAW Rastrear Alvo (Segurar) NLAW suivre la cible (maintenir) NLAW sledování cíle (držet) + NLAW Track Target (Basılı Tut) Direct Attack @@ -28,6 +29,7 @@ Ataque Direto Attaque directe Přímý útok + Doğrudan Saldırı Overfly Top Attack diff --git a/addons/optionsmenu/stringtable.xml b/addons/optionsmenu/stringtable.xml index 5620ca3a9c..7bf5135a51 100644 --- a/addons/optionsmenu/stringtable.xml +++ b/addons/optionsmenu/stringtable.xml @@ -16,6 +16,7 @@ 디버그를 클립보드로 复制除错讯息至剪贴簿 複製除錯訊息至剪貼簿 + Panoya Hata Ayıkla Sends debug information to RPT and clipboard. @@ -32,6 +33,7 @@ 디버그 정보를 보고하기 및 클립보드에 복사하기 위해 보냅니다. 复制除错讯息至剪贴簿与RPT报告档中。 複製除錯訊息至剪貼簿與RPT報告檔中 + Hata ayıklama bilgilerini RPT ve panoya gönderir. Headbug Fix @@ -48,6 +50,7 @@ 헤드버그 수정 修复动作BUG 修復動作BUG + Animasyon Düzeltme Resets your animation state. @@ -64,6 +67,7 @@ 자신의 동작 상태 초기화 当ACE发生动作BUG时,点此修复。 當ACE發生動作BUG時,點此修復 + Animasyon durumunuzu sıfırlar. ACE News diff --git a/addons/parachute/stringtable.xml b/addons/parachute/stringtable.xml index 08fb33854c..f5c1015425 100644 --- a/addons/parachute/stringtable.xml +++ b/addons/parachute/stringtable.xml @@ -50,6 +50,7 @@ 높이와, 하강속도 그리고 시간을 보여줍니다. 用于显示高度,下降率和时间。 用於顯示高度,下降率和時間 + Yüksekliği, alçalma hızını ve zamanı göstermek için kullanılır. Non-Steerable Parachute @@ -130,6 +131,7 @@ Cache l'altitude et la vitesse affichées, lors d'une chute libre ou d'un parachutage. Schová výšku a rychlost v GUI při volném pádu a při použití padáku. Oculta la altitud y la velocidad que se muestran en caída libre o en paracaídas. + Serbest düşme veya paraşütle atlama sırasında gösterilen yüksekliği ve hızı gizler. diff --git a/addons/quickmount/stringtable.xml b/addons/quickmount/stringtable.xml index b6d7078034..1945dae8a6 100644 --- a/addons/quickmount/stringtable.xml +++ b/addons/quickmount/stringtable.xml @@ -95,6 +95,7 @@ Distância máxima para checar por veículos. Distance de vérification maximale des véhicules. Maximální vzdálenost od vozidel. + Araçların kontrol edilmesi için maksimum mesafe. Vehicle Locked @@ -139,6 +140,7 @@ Velocidade máxima que o veículo pode estar para permitr entrada rápida. Définit la vitesse maximale que peut avoir un véhicule en mouvement pour qu'un joueur réussisse à y entrer. Maximální rychlost vozidla (km/h) při které hráči mohou nastoupit do vozidla + Oyuncu binmesi için izin verilen maksimum araç hızı (km / s) Prioritize Seat @@ -153,6 +155,7 @@ Priorizar Assento Place prioritaire Priorita sedadel + Koltuğa Öncelik Ver Seat priority on entry @@ -167,6 +170,7 @@ Define qual o assento que vai priorizar a Entrada Rápida Définit à quel poste s'asseoir en priorité lors de l'embarquement. Priorita sedadla při nástupu + Araça binerken koltuk önceliği Change seat diff --git a/addons/realisticnames/stringtable.xml b/addons/realisticnames/stringtable.xml index b3626f4411..408fd43299 100644 --- a/addons/realisticnames/stringtable.xml +++ b/addons/realisticnames/stringtable.xml @@ -16,6 +16,7 @@ XM312 XM312重機槍 XM312重机枪 + XM312 XM312A @@ -32,6 +33,7 @@ XM312A XM312A重機槍 XM312A重机枪 + XM312A XM312 (High) @@ -48,6 +50,7 @@ XM312 (높음) XM312重機槍 (高射腳架) XM312重机枪 (高射脚架) + XM312 (Yüksek) XM307 @@ -64,6 +67,7 @@ XM307 XM307榴彈機槍 XM307榴弹机枪 + XM307 XM307A @@ -80,6 +84,7 @@ XM307A XM307A榴彈機槍 XM307A榴弹机枪 + XM307A XM307 (High) @@ -96,6 +101,7 @@ XM307 (높음) XM307榴彈機槍 (高射腳架) XM307榴弹机枪 (高射脚架) + XM307 (Yüksek) Mini-Spike Launcher (AT) @@ -112,6 +118,7 @@ Mini-Spike Launcher (대전차) "迷你長釘"導彈發射器 (反坦克) "迷你长钉"导弹发射器 (反坦克) + Mini-Spike Launcher (AT) Mini-Spike Launcher (AA) @@ -128,6 +135,7 @@ Mini-Spike Launcher (대공) "迷你長釘"導彈發射器 (防空) "迷你长钉"导弹发射器 (防空) + Mini-Spike Launcher (AA) YABHON-R3 @@ -144,6 +152,7 @@ YABHON-R3 "亞伯罕-R3型"空中無人載具 "亚伯罕-R3型"空中无人载具 + YABHON-R3 YABHON-R3 (CAS) @@ -160,6 +169,7 @@ YABHON-R3 (근접지원) "亞伯罕-R3型"空中無人載具 (近空支援) "亚伯罕-R3型"空中无人载具 (近空支援) + YABHON-R3 (CAS) M-ATV @@ -176,6 +186,7 @@ M-ATV 防地雷反伏擊全地形車 防地雷反伏击全地形车 + M-ATV M-ATV (HMG) @@ -192,6 +203,7 @@ M-ATV (HMG) 防地雷反伏擊全地形車 (重機槍) 防地雷反伏击全地形车 (重机枪) + M-ATV (HMG) M-ATV (GMG) @@ -208,6 +220,7 @@ M-ATV (GMG) 防地雷反伏擊全地形車 (榴彈機槍) 防地雷反伏击全地形车 (榴弹机枪) + M-ATV (GMG) Merkava Mk IV M @@ -224,6 +237,7 @@ Merkava Mk IV M "梅卡瓦4代"主戰坦克 "梅卡瓦4代"主战坦克 + Merkava Mk IV M Merkava Mk IV LIC @@ -240,6 +254,7 @@ Merkava Mk IV LIC "梅卡瓦4代"主戰坦克 城市版 "梅卡瓦4代"主战坦克 城市版 + Merkava Mk IV LIC Sholef @@ -256,6 +271,7 @@ Sholef "神槍"自走炮 "神枪"自走炮 + Sholef Seara @@ -272,6 +288,7 @@ Seara "希拉"多管火箭車 "希拉"多管火箭车 + Seara Namer @@ -288,6 +305,7 @@ Namer "花豹"裝甲運兵車 "花豹"装甲运兵车 + Namer Bardelas @@ -304,6 +322,7 @@ Bardelas "布萊德斯"防空車 "布莱德斯"防空车 + Bardelas Badger IFV @@ -320,6 +339,7 @@ Badger IFV "蜜獾"步兵戰車 "蜜獾"步兵战车 + Badger IFV Nemmera @@ -336,6 +356,7 @@ Nemmera "雌豹"戰鬥工程車 "雌豹"战斗工程车 + Nemmera HEMTT Transport @@ -352,6 +373,7 @@ HEMTT 수송 重型增程機動戰術卡車 (運輸) 重型增程机动战术卡车 (运输) + HEMTT Nakil HEMTT Transport (covered) @@ -368,6 +390,7 @@ HEMTT 수송 (덮개) 重型增程機動戰術卡車 (運輸, 棚布) 重型增程机动战术卡车 (运输, 棚布) + HEMTT Nakil (Kapalı) HEMTT @@ -384,6 +407,7 @@ HEMTT 重型增程機動戰術卡車 重型增程机动战术卡车 + HEMTT HEMTT Container @@ -400,6 +424,7 @@ HEMTT 컨테이너 重型增程機動戰術卡車 (貨櫃) 重型增程机动战术卡车 (货柜) + HEMTT Konteynır HEMTT Medical @@ -416,6 +441,7 @@ HEMTT 의료 重型增程機動戰術卡車 (醫療) 重型增程机动战术卡车 (医疗) + HEMTT Medikal HEMTT Ammo @@ -432,6 +458,7 @@ HEMTT 탄약 重型增程機動戰術卡車 (彈藥) 重型增程机动战术卡车 (弹药) + HEMTT Cephane HEMTT Fuel @@ -448,6 +475,7 @@ HEMTT 연료 重型增程機動戰術卡車 (燃油) 重型增程机动战术卡车 (燃油) + HEMTT Yakıt HEMTT Repair @@ -464,6 +492,7 @@ HEMTT 수리 重型增程機動戰術卡車 (維修) 重型增程机动战术卡车 (维修) + HEMTT Tamir Fennek @@ -480,6 +509,7 @@ Fennek "非洲小狐"防地雷反伏擊車 "非洲小狐"防地雷反伏击车 + Fennek Fennek (HMG) @@ -496,6 +526,7 @@ Fennek (HMG) "非洲小狐"防地雷反伏擊車 (重機槍) "非洲小狐"防地雷反伏击车 (重机枪) + Fennek (HMG) Fennek (GMG) @@ -512,6 +543,7 @@ Fennek (GMG) "非洲小狐"防地雷反伏擊車 (榴彈機槍) "非洲小狐"防地雷反伏击车 (榴弹机枪) + Fennek (GMG) Leopard 2SG @@ -528,6 +560,7 @@ Leopard 2SG "豹2型新加坡版"主戰坦克 "豹2型新加坡版"主战坦克 + Leopard 2SG FV510 Warrior @@ -544,6 +577,7 @@ FV510 Warrior FV510"戰士"步兵戰車 FV510"战士"步兵战车 + FV510 Warrior Pandur II @@ -560,6 +594,7 @@ Pandur II "潘德2型"裝甲運兵車 "潘德2型"装甲运兵车 + Pandur II KamAZ Transport @@ -576,6 +611,7 @@ KamAZ 수송 "卡瑪斯"卡車 (運輸) "卡玛斯"卡车 (运输) + KamAZ Nakil KamAZ Transport (covered) @@ -592,6 +628,7 @@ KamAZ 수송 (덮개) "卡瑪斯"卡車 (運輸, 棚布) "卡玛斯"卡车 (运输, 棚布) + KamAZ Nakil (Kapalı) KamAZ Ammo @@ -608,6 +645,7 @@ KamAZ 탄약 "卡瑪斯"卡車 (彈藥) "卡玛斯"卡车 (弹药) + KamAZ Cephane KamAZ Fuel @@ -624,6 +662,7 @@ KamAZ 연료 "卡瑪斯"卡車 (燃油) "卡玛斯"卡车 (燃油) + KamAZ Yakıt KamAZ Repair @@ -640,6 +679,7 @@ KamAZ 수리 "卡瑪斯"卡車 (維修) "卡玛斯"卡车 (维修) + KamAZ Tamir KamAZ Medical @@ -656,6 +696,7 @@ KamAZ 의료 "卡瑪斯"卡車 (醫療) "卡玛斯"卡车 (医疗) + KamAZ Medikal KamAZ MRL @@ -670,6 +711,7 @@ KamAZ LRM KamAZ MRL (raketové dělostřelectvo) KamAZ MRL + KamAZ Karatel @@ -686,6 +728,7 @@ Karatel "懲罰者"防地雷反伏擊車 "惩罚者"防地雷反伏击车 + Karatel Karatel (HMG) @@ -702,6 +745,7 @@ Karatel (HMG) "懲罰者"防地雷反伏擊車 (重機槍) "惩罚者"防地雷反伏击车 (重机枪) + Karatel (HMG) Karatel (GMG) @@ -718,6 +762,7 @@ Karatel (GMG) "懲罰者"防地雷反伏擊車 (榴彈機槍) "惩罚者"防地雷反伏击车 (榴弹机枪) + Karatel (GMG) T100 Black Eagle @@ -734,6 +779,7 @@ T100 Black Eagle T100"黑鷹"主戰坦克 T100"黑鹰"主战坦克 + T100 Black Eagle 2S9 Sochor @@ -750,6 +796,7 @@ 2S9 Sochor 2S9"薩克爾"自走砲 2S9"萨克尔"自走炮 + 2S9 Sochor BM-2T Stalker @@ -766,6 +813,7 @@ BM-2T Stalker BM-2T"潛行者"步兵戰車 BM-2T"潜行者"步兵战车 + BM-2T Stalker ZSU-35 Tigris @@ -782,6 +830,7 @@ ZSU-35 Tigris ZSU-35"虎式"防空車 ZSU-35"虎式"防空车 + ZSU-35 Tigris Otokar ARMA @@ -798,6 +847,7 @@ Otokar ARMA "奧托卡-阿爾默"裝甲運兵車 "奥托卡-阿尔默"装甲运兵车 + Otokar ARMA Typhoon Transport @@ -814,6 +864,7 @@ Typhoon 수송 "颱風"卡車 (運輸) "台风"卡车 (运输) + Typhoon Nakil Typhoon Transport (covered) @@ -830,6 +881,7 @@ Typhoon 수송 (덮개) "颱風"卡車 (運輸, 棚布) "台风"卡车 (运输, 棚布) + Typhoon Nakil (Kapalı) Typhoon Device @@ -846,6 +898,7 @@ Typhoon 장치 "颱風"卡車 (精密設備) "台风"卡车 (精密设备) + Typhoon Cihaz Typhoon Ammo @@ -862,6 +915,7 @@ Typhoon 탄약 "颱風"卡車 (彈藥) "台风"卡车 (弹药) + Typhoon Cephane Typhoon Fuel @@ -878,6 +932,7 @@ Typhoon 연료 "颱風"卡車 (燃油) "台风"卡车 (燃油) + Typhoon Yakıt Typhoon Repair @@ -894,6 +949,7 @@ Typhoon 수리 "颱風"卡車 (維修) "台风"卡车 (维修) + Typhoon Tamir Typhoon Medical @@ -910,6 +966,7 @@ Typhoon 의료 "颱風"卡車 (醫療) "台风"卡车 (医疗) + Typhoon Medikal RAH-66 Comanche @@ -926,6 +983,7 @@ RAH-66 Comanche RAH-66"卡曼契"攻擊直升機 RAH-66"卡曼契"攻击直升机 + RAH-66 Comanche MH-6 Little Bird @@ -942,6 +1000,7 @@ MH-6 Little Bird MH-6"小鳥"運輸直升機 MH-6"小鸟"运输直升机 + MH-6 Little Bird AH-6 Little Bird @@ -958,6 +1017,7 @@ AH-6 Little Bird AH-6"小鳥"武裝直升機 AH-6"小鸟"武装直升机 + AH-6 Little Bird CH-47I Chinook @@ -974,6 +1034,7 @@ CH-47I Chinook CH-47I"契努克"運輸直升機 CH-47I"契努克"运输直升机 + CH-47I Chinook CH-47I Chinook (unarmed) @@ -990,6 +1051,7 @@ CH-47I Chinook (비무장) CH-47I"契努克"運輸直升機 (無武裝) CH-47I"契努克"运输直升机 (无武装) + CH-47I Chinook (silahsız) A-10D Thunderbolt II @@ -1006,6 +1068,7 @@ A-10D Thunderbolt II A-10D"雷霆二式"攻擊機 A-10D"雷霆二式"攻击机 + A-10D Thunderbolt II AW159 Wildcat @@ -1022,6 +1085,7 @@ AW159 Wildcat AW159"野貓"直升機 AW159"野猫"直升机 + AW159 Wildcat AW159 Wildcat (unarmed) @@ -1038,6 +1102,7 @@ AW159 Wildcat (비무장) AW159"野貓"直升機 (無武裝) AW159"野猫"直升机 (无武装) + AW159 Wildcat (silahsız) AW101 Merlin @@ -1054,6 +1119,7 @@ AW101 Merlin AW101"灰背隼"運輸直升機 AW101"灰背隼"运输直升机 + AW101 Merlin L-159 ALCA @@ -1070,6 +1136,7 @@ L-159 ALCA L-159先進輕型戰鬥機 L-159先进轻型战斗机 + L-159 ALCA L-159 ALCA (CAS) @@ -1086,6 +1153,7 @@ L-159 ALCA (근접지원) L-159先進輕型戰鬥機 (近空支援) L-159先进轻型战斗机 (近空支援) + L-159 ALCA (CAS) L-159 ALCA (AA) @@ -1102,6 +1170,7 @@ L-159 ALCA (대공) L-159先進輕型戰鬥機 (空對空) L-159先进轻型战斗机 (空对空) + L-159 ALCA (AA) JAS 39 Gripen @@ -1117,6 +1186,7 @@ JAS 39 그리펜 JAS 39 獅鷲戰鬥機 JAS 39 狮鹫战斗机 + JAS 39 Gripen Ka-60 Kasatka @@ -1133,6 +1203,7 @@ Ka-60 Kasatka Ka-60"逆戟鯨"直升機 Ka-60"逆戟鲸"直升机 + Ka-60 Kasatka Ka-60 Kasatka (Black & White) @@ -1148,6 +1219,7 @@ Ka-60 Kasatka (검정 및 하양) Ka-60"逆戟鯨"直升機 (黑&白) Ka-60"逆戟鲸"直升机 (黑&白) + Ka-60 Kasatka (Siyah & Beyaz) Ka-60 Kasatka (unarmed) @@ -1164,6 +1236,7 @@ Ka-60 Kasatka (비무장) Ka-60"逆戟鯨"直升機 (無武裝) Ka-60"逆戟鲸"直升机 (无武装) + Ka-60 Kasatka (Silahsız) Yak-130 @@ -1180,6 +1253,7 @@ Yak-130 Yak-130"手套"攻擊機 Yak-130"手套"攻击机 + Yak-130 MD 500 @@ -1196,6 +1270,7 @@ MD 500 MD 500"防衛者"直升機 MD 500"防卫者"直升机 + MD 500 M4A1 SLAM @@ -1212,6 +1287,7 @@ M4A1 SLAM M4A1指向性反裝甲地雷 M4A1指向性反装甲地雷 + M4A1 SLAM M18A1 Claymore @@ -1228,6 +1304,7 @@ M18A1 클레이모어 M18A1"闊刀"地雷 M18A1"阔刀"地雷 + M18A1 Claymore M183 Demolition Charge Assembly @@ -1289,6 +1366,7 @@ V40迷你手榴彈 V40 Mini-Granát Mini Granada V40 + V40 Mini-El Bombası M83 Smoke Grenade (White) @@ -1305,6 +1383,7 @@ M83 연막탄 (하양) M83煙霧彈 (白色) M83烟雾弹 (白色) + M83 Sis Bombası (Beyaz) M18 Smoke Grenade (Blue) @@ -1321,6 +1400,7 @@ M18 연막탄 (파랑) M18煙霧彈 (藍色) M18烟雾弹 (蓝色) + M83 Sis Bombası (Mavi) M18 Smoke Grenade (Green) @@ -1337,6 +1417,7 @@ M18 연막탄 (초록) M18煙霧彈 (綠色) M18烟雾弹 (绿色) + M83 Sis Bombası (Yeşil) M18 Smoke Grenade (Orange) @@ -1353,6 +1434,7 @@ M18 연막탄 (주황) M18煙霧彈 (橘色) M18烟雾弹 (橘色) + M83 Sis Bombası (Turuncu) M18 Smoke Grenade (Purple) @@ -1369,6 +1451,7 @@ M18 연막탄 (보라) M18煙霧彈 (紫色) M18烟雾弹 (紫色) + M83 Sis Bombası (Mor) M18 Smoke Grenade (Red) @@ -1385,6 +1468,7 @@ M18 연막탄 (빨강) M18煙霧彈 (紅色) M18烟雾弹 (红色) + M83 Sis Bombası (Kırmızı) M18 Smoke Grenade (Yellow) @@ -1401,6 +1485,7 @@ M18 연막탄 (노랑) M18煙霧彈 (黃色) M18烟雾弹 (黄色) + M83 Sis Bombası (Sarı) M15 Anti-Tank Mine @@ -1417,6 +1502,7 @@ M15 대전차지뢰 M15反坦克地雷 M15反坦克地雷 + M15 Anti-Tank Mayını VS-50 Anti-Personnel Mine @@ -1433,6 +1519,7 @@ VS-50 대인지뢰 VS-50反人員地雷 VS-50反人员地雷 + VS-50 Anti-Personel Mayını M26 Anti-Personnel Bounding Mine @@ -1481,6 +1568,7 @@ P99 P99手槍 P99手枪 + P99 MP-443 Grach @@ -1497,6 +1585,7 @@ MP-443 Grach MP-443"烏鴉"手槍 MP-443"乌鸦"手枪 + MP-443 Grach Custom Covert II @@ -1513,6 +1602,7 @@ Custom Covert II 特裝隱蔽Ⅱ型手槍 特装隐蔽Ⅱ型手枪 + Custom Covert II FNX-45 Tactical @@ -1563,6 +1653,7 @@ Chiappa Rhino 60DS 齊亞帕"犀牛"60DS左輪手槍 齐亚帕"犀牛"60DS左轮手枪 + Chiappa Rhino 60DS Taurus Judge @@ -1579,6 +1670,7 @@ Taurus Judge 金牛座"法官"信號槍 金牛座"法官"信号枪 + Taurus Judge NLAW @@ -1595,6 +1687,7 @@ NLAW 次世代輕型反坦克導彈發射器 次世代轻型反坦克导弹发射器 + NLAW RPG-32 @@ -1645,6 +1738,7 @@ Mini-Spike (대공) "迷你長釘"導彈發射器 (防空) "迷你长钉"导弹发射器 (防空) + Mini-Spike (AA) Mini-Spike (AT) @@ -1661,6 +1755,7 @@ Mini-Spike (대전차) "迷你長釘"導彈發射器 (反坦克) "迷你长钉"导弹发射器 (反坦克) + Mini-Spike (AT) Metis-M @@ -1674,6 +1769,7 @@ Metis-M Metis-M Metis-M + Metis-M Metis-M (Brown) @@ -1688,6 +1784,7 @@ Metis-M (Marrom) Metis-M (hnědý) Metis-M (Marrón) + Metis-M (Kahverengi) Metis-M (Green) @@ -1702,6 +1799,7 @@ Metis-M (Verde) Metis-M (zelený) Metis-M (Verde) + Metis-M (Yeşil) MX @@ -1718,6 +1816,7 @@ MX MX突擊步槍 MX突击步枪 + MX MX (Black) @@ -1734,6 +1833,7 @@ MX (검정) MX突擊步槍 (黑色) MX突击步枪 (黑色) + MX (Siyah) MXC @@ -1750,6 +1850,7 @@ MXC MXC卡賓步槍 MXC卡宾步枪 + MXC MXC (Black) @@ -1766,6 +1867,7 @@ MXC (검정) MXC卡賓步槍 (黑色) MXC卡宾步枪 (黑色) + MXC (Siyah) MX 3GL @@ -1782,6 +1884,7 @@ MX 3GL MX突擊步槍 (3連裝榴彈) MX突击步枪 (3连装榴弹) + MX 3GL MX 3GL (Black) @@ -1798,6 +1901,7 @@ MX 3GL (검정) MX突擊步槍 (3連裝榴彈-黑色) MX突击步枪 (3连装榴弹-黑色) + MX 3GL (Siyah) MX LSW @@ -1814,6 +1918,7 @@ MX LSW MX輕型機槍 MX轻型机枪 + MX LSW MX LSW (Black) @@ -1830,6 +1935,7 @@ MX LSW (검정) MX輕型機槍 (黑色) MX轻型机枪 (黑色) + MX LSW (Siyah) MXM @@ -1846,6 +1952,7 @@ MXM MXM精準步槍 MXM精准步枪 + MXM MXM (Black) @@ -1862,6 +1969,7 @@ MXM (검정) MXM精準步槍 (黑色) MXM精准步枪 (黑色) + MXM (Siyah) KH2002 Sama @@ -1878,6 +1986,7 @@ KH2002 Sama KH2002"海白爾"突擊步槍 KH2002"海白尔"突击步枪 + KH2002 Sama KH2002C Sama @@ -1894,6 +2003,7 @@ KH2002C Sama KH2002C"海白爾"卡賓步槍 KH2002C"海白尔"卡宾步枪 + KH2002C Sama KH2002 Sama KGL @@ -1910,6 +2020,7 @@ KH2002 Sama KGL KH2002"海白爾"突擊步槍 (榴彈) KH2002"海白尔"突击步枪 (榴弹) + KH2002 Sama KGL F2000 (Camo) @@ -1926,6 +2037,7 @@ F2000 (위장) F2000突擊步槍 (迷彩) F2000突击步枪 (迷彩) + F2000 (Kamuflaj) F2000 @@ -1942,6 +2054,7 @@ F2000 F2000突擊步槍 F2000突击步枪 + F2000 F2000 Tactical (Camo) @@ -1958,6 +2071,7 @@ F2000 Tactical (위장) F2000戰術型突擊步槍 (迷彩) F2000战术型突击步枪 (迷彩) + F2000 Tactical (Kamuflaj) F2000 Tactical @@ -1974,6 +2088,7 @@ F2000 Tactical F2000戰術型突擊步槍 F2000战术型突击步枪 + F2000 Tactical F2000 EGLM (Camo) @@ -1990,6 +2105,7 @@ F2000 EGLM (위장) F2000突擊步槍 (榴彈-迷彩) F2000突击步枪 (榴弹-迷彩) + F2000 EGLM (Kamuflaj) F2000 EGLM @@ -2006,6 +2122,7 @@ F2000 EGLM F2000突擊步槍 (榴彈) F2000突击步枪 (榴弹) + F2000 EGLM TAR-21 @@ -2022,6 +2139,7 @@ TAR-21 TAR-21突擊步槍 TAR-21突击步枪 + TAR-21 CTAR-21 @@ -2038,6 +2156,7 @@ CTAR-21 CTAR-21卡賓步槍 CTAR-21卡宾步枪 + CTAR-21 GTAR-21 EGLM @@ -2054,6 +2173,7 @@ GTAR-21 EGLM GTAR-21突擊步槍 (榴彈) GTAR-21突击步枪 (榴弹) + GTAR-21 EGLM Vector SMG @@ -2070,6 +2190,7 @@ Vector SMG "維克特"衝鋒槍 "维克特"冲锋枪 + Vector SMG Scorpion Evo 3 A1 @@ -2086,6 +2207,7 @@ Scorpion Evo 3 A1 "蠍式"Evo 3 A1衝鋒槍 "蝎式"Evo 3 A1冲锋枪 + Scorpion Evo 3 A1 CPW @@ -2102,6 +2224,7 @@ CPW 緊湊型個人衝鋒槍 紧凑型个人冲锋枪 + CPW RFB SDAR @@ -2118,6 +2241,7 @@ RFB SDAR 犢牛式水陸兩用步槍 犊牛式水陆两用步枪 + RFB SDAR Stoner 99 LMG @@ -2134,6 +2258,7 @@ Stoner 99 LMG 斯通納99輕機槍 斯通纳99轻机枪 + Stoner 99 LMG Negev NG7 @@ -2150,6 +2275,7 @@ Negev NG7 內蓋夫NG7機槍 内盖夫NG7机枪 + Negev NG7 Mk14 Mod 1 EBR @@ -2166,6 +2292,7 @@ Mk14 Mod 1 EBR Mk14一型增強型戰鬥步槍 Mk14一型增强型战斗步枪 + Mk14 Mod 1 EBR GM6 Lynx @@ -2182,6 +2309,7 @@ GM6 Lynx GM6"天貓"反器材狙擊步槍 GM6"天猫"反器材狙击步枪 + GM6 Lynx GM6 Lynx (Camo) @@ -2198,6 +2326,7 @@ GM6 Lynx (위장) GM6"天貓"反器材狙擊步槍 (迷彩) GM6"天猫"反器材狙击步枪 (迷彩) + GM6 Lynx (Kamufulaj) M200 Intervention @@ -2214,6 +2343,7 @@ M200 Intervention M200干預型狙擊步槍 M200干预型狙击步枪 + M200 Intervention M200 Intervention (Camo) @@ -2230,6 +2360,7 @@ M200 Intervention (위장) M200干預型狙擊步槍 (迷彩) M200干预型狙击步枪 (迷彩) + M200 Intervention (kamuflaj) VS-121 @@ -2246,6 +2377,7 @@ VS-121 VS-121狙擊步槍 VS-121狙击步枪 + VS-121 Noreen "Bad News" ULR @@ -2262,6 +2394,7 @@ Noreen "Bad News" ULR 諾琳"壞消息"極距狙擊步槍 诺琳"坏消息"极距狙击步枪 + Noreen "Bad News" ULR Noreen "Bad News" ULR (Black) @@ -2278,6 +2411,7 @@ Noreen "Bad News" ULR (검정) 諾琳"壞消息"極距狙擊步槍 (黑色) 诺琳"坏消息"极距狙击步枪 (黑色) + Noreen "Bad News" ULR (Siyah) Noreen "Bad News" ULR (Camo) @@ -2294,6 +2428,7 @@ Noreen "Bad News" ULR (위장) 諾琳"壞消息"極距狙擊步槍 (迷彩) 诺琳"坏消息"极距狙击步枪 (迷彩) + Noreen "Bad News" ULR (Kamufulaj) Noreen "Bad News" ULR (Sand) @@ -2310,6 +2445,7 @@ Noreen "Bad News" ULR (모래) 諾琳"壞消息"極距狙擊步槍 (沙色) 诺琳"坏消息"极距狙击步枪 (沙色) + Noreen "Bad News" ULR (Çöl) SIG 556 @@ -2326,6 +2462,7 @@ SIG 556 SIG 556精準步槍 SIG 556精准步枪 + SIG 556 SIG 556 (Black) @@ -2342,6 +2479,7 @@ SIG 556 (검정) SIG 556精準步槍 (黑色) SIG 556精准步枪 (黑色) + SIG 556 (Siyah) SIG 556 (Khaki) @@ -2358,6 +2496,7 @@ SIG 556 (카키) SIG 556精準步槍 (卡其色) SIG 556精准步枪 (卡其色) + SIG 556 (Haki) SIG 556 (Sand) @@ -2374,6 +2513,7 @@ SIG 556 (모래) SIG 556精準步槍 (沙色) SIG 556精准步枪 (沙色) + SIG 556 (Kum) SIG 556 (Camo) @@ -2390,6 +2530,7 @@ SIG 556 (위장) SIG 556精準步槍 (迷彩) SIG 556精准步枪 (迷彩) + SIG 556 (Kamufulaj) SIG 556 (Woodland) @@ -2406,6 +2547,7 @@ SIG 556 (우드랜드) SIG 556精準步槍 (森林迷彩) SIG 556精准步枪 (森林迷彩) + SIG 556 (Orman) ASP-1 Kir @@ -2422,6 +2564,7 @@ ASP-1 キール ASP-1"基爾"消音狙擊步槍 ASP-1"基尔"消音狙击步枪 + ASP-1 Kir ASP-1 Kir (Black) @@ -2438,6 +2581,7 @@ ASP-1 Kir (검정) ASP-1"基爾"消音狙擊步槍 (黑色) ASP-1"基尔"消音狙击步枪 (黑色) + ASP-1 Kir (Siyah) ASP-1 Kir (Tan) @@ -2454,6 +2598,7 @@ ASP-1 Kir (황갈) ASP-1"基爾"消音狙擊步槍 (黃褐色) ASP-1"基尔"消音狙击步枪 (黄褐色) + ASP-1 Kir (Tan) Cyrus @@ -2470,6 +2615,7 @@ Cyrus "居鲁士"狙擊步槍 "居鲁士"狙击步枪 + Cyrus Cyrus (Black) @@ -2486,6 +2632,7 @@ Cyrus (검정) "居鲁士"狙擊步槍 (黑色) "居鲁士"狙击步枪 (黑色) + Cyrus (Siyah) Cyrus (Hex) @@ -2502,6 +2649,7 @@ Cyrus (육각) "居鲁士"狙擊步槍 (數位蜂巢迷彩) "居鲁士"狙击步枪 (数位蜂巢迷彩) + Cyrus (Hex) Cyrus (Tan) @@ -2518,6 +2666,7 @@ Cyrus (황갈) "居鲁士"狙擊步槍 (黃褐色) "居鲁士"狙击步枪 (黄褐色) + Cyrus (Tan) M14 @@ -2534,6 +2683,7 @@ M14 M14精準步槍 M14精准步枪 + M14 M14 (Camo) @@ -2550,6 +2700,7 @@ M14 (위장) M14精準步槍 (迷彩) M14精准步枪 (迷彩) + M14 (Kamufulaj) M14 (Olive) @@ -2566,6 +2717,7 @@ M14 (올리브) M14精準步槍 (橄欖色) M14精准步枪 (橄榄色) + M14 (Zeytin Yeşili) HK121 @@ -2582,6 +2734,7 @@ HK121 HK121中型機槍 HK121中型机枪 + HK121 HK121 (Hex) @@ -2598,6 +2751,7 @@ HK121 (육각) HK121中型機槍 (數位蜂巢迷彩) HK121中型机枪 (数位蜂巢迷彩) + HK121 (Hex) HK121 (Tan) @@ -2614,6 +2768,7 @@ HK121 (황갈) HK121機槍 (黃褐色) HK121机枪 (黄褐色) + HK121 (Tan) LWMMG @@ -2630,6 +2785,7 @@ LWMMG 輕量化中型機槍 轻量化中型机枪 + LWMMG LWMMG (MTP) @@ -2646,6 +2802,7 @@ LWMMG (MTP) 輕量化中型機槍 (多地形迷彩) 轻量化中型机枪 (多地形迷彩) + LWMMG (MTP) LWMMG (Black) @@ -2662,6 +2819,7 @@ LWMMG (검정) 輕量化中型機槍 (黑色) 轻量化中型机枪 (黑色) + LWMMG (Siyah) LWMMG (Sand) @@ -2678,6 +2836,7 @@ LWMMG (모래) 輕量化中型機槍 (沙色) 轻量化中型机枪 (沙色) + LWMMG (Kum) Jeep Wrangler @@ -2694,6 +2853,7 @@ Jeep Wrangler "牧馬人"吉普車 "牧马人"吉普车 + Jeep Wrangler Jeep Wrangler (SPG-9) @@ -2707,6 +2867,7 @@ Jeep Wrangler (SPG-9) Jeep Wrangler (SPG-9) Jeep Wrangler (SPG-9) + Jeep Wrangler (SPG-9) Jeep Wrangler (LMG) @@ -2720,6 +2881,7 @@ Jeep Wrangler (LMG) Jeep Wrangler (LMG) Jeep Wrangler (LMG) + Jeep Wrangler (LMG) Cessna TTx @@ -2736,6 +2898,7 @@ Cessna TTx "賽斯納"TTx單引擎飛機 "赛斯纳"TTx单引擎飞机 + Cessna TTx Cessna TTx (Racing) @@ -2752,6 +2915,7 @@ Cessna TTx (경주용) "賽斯納"TTx單引擎飛機 (競速) "赛斯纳"TTx单引擎飞机 (竞速) + Cessna TTx (Racing) Burraq UCAV @@ -2768,6 +2932,7 @@ Burraq UCAV "柏拉格"空中無人戰鬥載具 "柏拉格"空中无人战斗载具 + Burraq UCAV QBZ-95-1 (Black) @@ -2784,6 +2949,7 @@ QBZ-95-1 (검정) QBZ-95-1式自動步槍 (黑色) QBZ-95-1式自动步枪 (黑色) + QBZ-95-1 (Siyah) QBZ-95-1 (Green Hex) @@ -2800,6 +2966,7 @@ QBZ-95-1 (초록육각) QBZ-95-1式自動步槍 (綠色數位蜂巢迷彩) QBZ-95-1式自动步枪 (绿色数位蜂巢迷彩) + QBZ-95-1 (Yeşil Hex) QBZ-95-1 (Hex) @@ -2816,6 +2983,7 @@ QBZ-95-1 (육각) QBZ-95-1式自動步槍 (數位蜂巢迷彩) QBZ-95-1式自动步枪 (数位蜂巢迷彩) + QBZ-95-1 (Hex) QBZ-95-1 GL (Black) @@ -2832,6 +3000,7 @@ QBZ-95-1 GL (검정) QBZ-95-1式自動步槍 (榴彈-黑色) QBZ-95-1式自动步枪 (榴弹-黑色) + QBZ-95-1 GL (Siyah) QBZ-95-1 GL (Green Hex) @@ -2848,6 +3017,7 @@ QBZ-95-1 GL (초록육각) QBZ-95-1式自動步槍 (榴彈-綠色數位蜂巢迷彩) QBZ-95-1式自动步枪 (榴弹-绿色数位蜂巢迷彩) + QBZ-95-1 GL (Yeşil Hex) QBZ-95-1 GL (Hex) @@ -2864,6 +3034,7 @@ QBZ-95-1 GL (육각) QBZ-95-1式自動步槍 (榴彈-數位蜂巢迷彩) QBZ-95-1式自动步枪 (榴弹-数位蜂巢迷彩) + QBZ-95-1 GL (Hex) QBZ-95-1 LSW (Black) @@ -2880,6 +3051,7 @@ QBZ-95-1 LSW (검정) QBZ-95-1式輕機槍 (黑色) QBZ-95-1式轻机枪 (黑色) + QBZ-95-1 LSW (Siyah) QBZ-95-1 LSW (Green Hex) @@ -2896,6 +3068,7 @@ QBZ-95-1 LSW (초록육각) QBZ-95-1式輕機槍 (綠色數位蜂巢迷彩) QBZ-95-1式轻机枪 (绿色数位蜂巢迷彩) + QBZ-95-1 LSW (Yeşil Hex) QBZ-95-1 LSW (Hex) @@ -2912,6 +3085,7 @@ QBZ-95-1 LSW (육각) QBZ-95-1式輕機槍 (數位蜂巢迷彩) QBZ-95-1式轻机枪 (数位蜂巢迷彩) + QBZ-95-1 LSW (Hex) QBU-88 (Black) @@ -2928,6 +3102,7 @@ QBU-88 (검정) QBU-88式狙擊步槍 (黑色) QBU-88式狙击步枪 (黑色) + QBU-88 (Siyah) QBU-88 (Green Hex) @@ -2944,6 +3119,7 @@ QBU-88 (초록육각) QBU-88式狙擊步槍 (綠色數位蜂巢迷彩) QBU-88式狙击步枪 (绿色数位蜂巢迷彩) + QBU-88 (Yeşil Hex) QBU-88 (Hex) @@ -2960,6 +3136,7 @@ QBU-88 (육각) QBU-88式狙擊步槍 (數位蜂巢迷彩) QBU-88式狙击步枪 (数位蜂巢迷彩) + QBU-88 (Hex) GM6 Lynx (Green Hex) @@ -2976,6 +3153,7 @@ GM6 Lynx (초록육각) GM6"天貓"反器材狙擊步槍 (綠色數位蜂巢迷彩) GM6"天猫"反器材狙击步枪 (绿色数位蜂巢迷彩) + GM6 Lynx (Yeşil Hex) FN Minimi SPW @@ -2992,6 +3170,7 @@ FN Minimi SPW FN Minimi班用自動機槍 FN Minimi班用自动机枪 + FN Minimi SPW M200 Intervention (Tropic) @@ -3008,6 +3187,7 @@ M200 Intervention (열대) M200干預型狙擊步槍 (熱帶迷彩) M200干预型狙击步枪 (热带迷彩) + M200 Intervention (Tropic) MP5K @@ -3024,6 +3204,7 @@ MP5K MP5K衝鋒槍 MP5K冲锋枪 + MP5K HK416A5 11" (Black) @@ -3040,6 +3221,7 @@ HK416A5 11" (검정) HK416A5 11"突擊步槍 (黑色) HK416A5 11"突击步枪 (黑色) + HK416A5 11" (Siyah) HK416A5 11" (Khaki) @@ -3056,6 +3238,7 @@ HK416A5 11" (카키) HK416A5 11"突擊步槍 (卡其色) HK416A5 11"突击步枪 (卡其色) + HK416A5 11" (Haki) HK416A5 11" (Sand) @@ -3072,6 +3255,7 @@ HK416A5 11" (모래) HK416A5 11"突擊步槍 (沙色) HK416A5 11"突击步枪 (沙色) + HK416A5 11" (Kum) HK416A5 11" GL (Black) @@ -3088,6 +3272,7 @@ HK416A5 11" GL (검정) HK416A5 11"突擊步槍 (榴彈-黑色) HK416A5 11"突击步枪 (榴弹-黑色) + HK416A5 11" GL (Siyah) HK416A5 11" GL (Khaki) @@ -3104,6 +3289,7 @@ HK416A5 11" GL (카키) HK416A5 11"突擊步槍 (榴彈-卡其色) HK416A5 11"突击步枪 (榴弹-卡其色) + HK416A5 11" GL (Hakii) HK416A5 11" GL (Sand) @@ -3120,6 +3306,7 @@ HK416A5 11" GL (모래) HK416A5 11"突擊步槍 (榴彈-沙色) HK416A5 11"突击步枪 (榴弹-沙色) + HK416A5 11" GL (Çöl) HK416A5 14.5" (Black) @@ -3136,6 +3323,7 @@ HK416A5 14.5" (검정) HK416A5 14.5"突擊步槍 (黑色) HK416A5 14.5"突击步枪 (黑色) + HK416A5 14.5" (Siyah) HK416A5 14.5" (Khaki) @@ -3152,6 +3340,7 @@ HK416A5 14.5" (카키) HK416A5 14.5"突擊步槍 (卡其色) HK416A5 14.5"突击步枪 (卡其色) + HK416A5 14.5" (Haki) HK416A5 14.5" (Sand) @@ -3168,6 +3357,7 @@ HK416A5 14.5" (모래) HK416A5 14.5"突擊步槍 (沙色) HK416A5 14.5"突击步枪 (沙色) + HK416A5 14.5" (Kum) HK417A2 20" (Black) @@ -3184,6 +3374,7 @@ HK417A2 20" (검정) HK417A2 20"突擊步槍 (黑色) HK417A2 20"突击步枪 (黑色) + HK417A2 20" (Siyah) HK417A2 20" (Khaki) @@ -3200,6 +3391,7 @@ HK417A2 20" (카키) HK417A2 20"突擊步槍 (卡其色) HK417A2 20"突击步枪 (卡其色) + HK417A2 20" (Haki) HK417A2 20" (Sand) @@ -3216,6 +3408,7 @@ HK417A2 20" (모래) HK417A2 20"突擊步槍 (沙色) HK417A2 20"突击步枪 (沙色) + HK417A2 20" (Kum) RPG-32 (Green Hex) @@ -3232,6 +3425,7 @@ RPG-32 (초록육각) RPG-32火箭發射器 (綠色數位蜂巢迷彩) RPG-32火箭发射器 (绿色数位蜂巢迷彩) + RPG-32 (Yeşil Hex) P99 (Khaki) @@ -3248,6 +3442,7 @@ P99 (카키) P99半自動手槍 (卡其色) P99半自动手枪 (卡其色) + P99 (Haki) Makarov PM @@ -3264,6 +3459,7 @@ Makarov PM "馬卡洛夫"手槍 "马卡洛夫"手枪 + Makarov PM Polaris DAGOR (XM312) @@ -3277,6 +3473,7 @@ Polaris DAGOR (XM312) Polaris DAGOR (XM312) Polaris DAGOR (XM312) + Polaris DAGOR (XM312) Polaris DAGOR (Mini-Spike AT) @@ -3290,6 +3487,7 @@ Polaris DAGOR (Mini-Spike AT) Polaris DAGOR (Mini-Spike AC) Polaris DAGOR (Mini-Spike AT) + Polaris DAGOR (Mini-Spike AT) Polaris DAGOR @@ -3303,6 +3501,7 @@ Polaris DAGOR Polaris DAGOR Polaris DAGOR + Polaris DAGOR Polaris DAGOR (light) @@ -3316,6 +3515,7 @@ Polaris DAGOR (leve) Polaris DAGOR (léger) Polaris DAGOR (lehký) + Polaris DAGOR (light) LSV Mk. II (M134) @@ -3329,6 +3529,7 @@ LSV Mk. II (M134) LSV Mk. II (M134) LSV Mk. II (M134) + LSV Mk. II (M134) LSV Mk. II (Metis-M) @@ -3342,6 +3543,7 @@ LSV Mk. II (Metis-M) LSV Mk. II (Metis-M) LSV Mk. II (Metis-M) + LSV Mk. II (Metis-M) LSV Mk. II @@ -3355,6 +3557,7 @@ LSV Mk. II LSV Mk. II LSV Mk. II + LSV Mk. II Rooikat 120 @@ -3368,6 +3571,7 @@ Rooikat 120 Rooikat 120 Rooikat 120 + Rooikat 120 Rooikat 120 UP @@ -3381,6 +3585,7 @@ Rooikat 120 UP Rooikat 120 UP Rooikat 120 UP + Rooikat 120 UP T-14 Armata @@ -3394,6 +3599,7 @@ T-14 Armata T-14 Armata T-14 Armata + T-14 Armata T-14K Armata @@ -3407,6 +3613,7 @@ T-14K Armata T-14K Armata T-14K Armata + T-14K Armata Wiesel 2 Ozelot (AA) @@ -3420,6 +3627,7 @@ Wiesel 2 Ozelot (AA) Wiesel 2 Ozelot (AA) Wiesel 2 Ozelot (AA) + Wiesel 2 Ozelot (AA) Wiesel 2 (ATGM) @@ -3433,6 +3641,7 @@ Wiesel 2 (ATGM) Wiesel 2 (ATGM) Wiesel 2 (ATGM) + Wiesel 2 (ATGM) Wiesel 2 (MK20) @@ -3446,6 +3655,7 @@ Wiesel 2 (MK20) Wiesel 2 (MK20) Wiesel 2 (MK20) + Wiesel 2 (MK20) Wiesel 2 RFCV (Radar) @@ -3459,6 +3669,7 @@ Wiesel 2 RFCV (Radar) Wiesel 2 RFCV (Radar) Wiesel 2 RFCV (Radar) + Wiesel 2 RFCV (Radar) Leupold Mark 4 HAMR @@ -3472,6 +3683,7 @@ Leupold Mark 4 HAMR Leupold Mark 4 HAMR Leupold Mark 4 HAMR + Leupold Mark 4 HAMR Leupold Mark 4 HAMR (Khaki) @@ -3485,6 +3697,7 @@ Leupold Mark 4 HAMR (Khaki) Leupold Mark 4 HAMR (Kaki) Leupold Mark 4 HAMR (Khaki) + Leupold Mark 4 HAMR (Haki) ELCAN SpecterOS (Tan) @@ -3498,6 +3711,7 @@ ELCAN SpecterOS (Bege) ELCAN SpecterOS (Tan) ELCAN SpecterOS (Žlutohnědá) + ELCAN SpecterOS (Tan) ELCAN SpecterOS (Black) @@ -3511,6 +3725,7 @@ ELCAN SpecterOS (Preto) ELCAN SpecterOS (Noire) ELCAN SpecterOS (Černá) + ELCAN SpecterOS (Siyah) ELCAN SpecterOS (Green Hex) @@ -3523,6 +3738,7 @@ ELCAN SpecterOS (Verde Hex) ELCAN SpecterOS (Hex Verte) ELCAN SpecterOS (Zelený Hex) + ELCAN SpecterOS (Yeşil Hex) SIG BRAVO4 / ROMEO3 (Black) @@ -3536,6 +3752,7 @@ SIG BRAVO4 / ROMEO3 (Preto) SIG BRAVO4 / ROMEO3 (Noire) SIG BRAVO4 / ROMEO3 (Černá) + SIG BRAVO4 / ROMEO3 (Siyah) SIG BRAVO4 / ROMEO3 (Khaki) @@ -3549,6 +3766,7 @@ SIG BRAVO4 / ROMEO3 (Khaki) SIG BRAVO4 / ROMEO3 (Kaki) SIG BRAVO4 / ROMEO3 (Khaki) + SIG BRAVO4 / ROMEO3 (Haki) SIG BRAVO4 / ROMEO3 (Sand) @@ -3562,6 +3780,7 @@ SIG BRAVO4 / ROMEO3 (Areia) SIG BRAVO4 / ROMEO3 (Beige) SIG BRAVO4 / ROMEO3 (Písková) + SIG BRAVO4 / ROMEO3 (Kum) Nightforce NXS @@ -3574,6 +3793,7 @@ Nightforce NXS Nightforce NXS Nightforce NXS + Nightforce NXS Nightforce NXS (Green Hex) @@ -3586,6 +3806,7 @@ Nightforce NXS (Verde Hex) Nightforce NXS (Hex Verte) Nightforce NXS (Zelený Hex) + Nightforce NXS (Yeşil Hex) Nightforce NXS (Jungle) @@ -3599,6 +3820,7 @@ Nightforce NXS (Selva) Nightforce NXS (Jungle) Nightforce NXS (Džungle) + Nightforce NXS (Orman) US Optics MR-10 (Black) @@ -3611,6 +3833,7 @@ US Optics MR-10 (Preto) US Optics MR-10 (Noire) US Optics MR-10 (Černá) + US Optics MR-10 (Siyah) US Optics MR-10 (Khaki) @@ -3623,6 +3846,7 @@ US Optics MR-10 (Khaki) US Optics MR-10 (Kaki) US Optics MR-10 (Khaki) + US Optics MR-10 (Haki) US Optics MR-10 (Sand) @@ -3635,6 +3859,7 @@ US Optics MR-10 (Areia) US Optics MR-10 (Beige) US Optics MR-10 (Písková) + US Optics MR-10 (Kum) KAHLES Helia (Black) @@ -3647,6 +3872,7 @@ KAHLES Helia (Preto) KAHLES Helia (Noire) KAHLES Helia (Černá) + KAHLES Helia (Siyah) KAHLES Helia (Hex) @@ -3659,6 +3885,7 @@ KAHLES Helia (Hex) KAHLES Helia (Hex) KAHLES Helia (Hex) + KAHLES Helia (Hex) KAHLES Helia (Old) @@ -3671,6 +3898,7 @@ KAHLES Helia (Velho) KAHLES Helia (Usée) KAHLES Helia (Stará) + KAHLES Helia (Eski) KAHLES Helia (Tan) @@ -3683,6 +3911,7 @@ KAHLES Helia (Bege) KAHLES Helia (Tan) KAHLES Helia (Žlutohnědá) + KAHLES Helia (Tan) Burris XTR II @@ -3695,6 +3924,7 @@ Burris XTR II Burris XTR II Burris XTR II + Burris XTR II Burris XTR II (Green Hex) @@ -3707,6 +3937,7 @@ Burris XTR II (Verde Hex) Burris XTR II (Hex Verte) Burris XTR II (Zelený Hex) + Burris XTR II (Yeşil Hex) EOTech XPS3 (Tan) @@ -3720,6 +3951,7 @@ EOTech XPS3 (Bege) EOTech XPS3 (Tan) EOTech XPS3 (Žlutohnědá) + EOTech XPS3 (Tan) EOTech XPS3 (Black) @@ -3733,6 +3965,7 @@ EOTech XPS3 (Preto) EOTech XPS3 (Noire) EOTech XPS3 (Černá) + EOTech XPS3 (Siyah) EOTech XPS3 (Khaki) @@ -3746,6 +3979,7 @@ EOTech XPS3 (Khaki) EOTech XPS3 (Kaki) EOTech XPS3 (Khaki) + EOTech XPS3 (Haki) EOTech XPS3 SMG (Tan) @@ -3759,6 +3993,7 @@ EOTech XPS3 SMG (Bege) EOTech XPS3 SMG (Tan) EOTech XPS3 SMG (Žlutohnědá) + EOTech XPS3 SMG (Tan) EOTech XPS3 SMG (Black) @@ -3772,6 +4007,7 @@ EOTech XPS3 SMG (Preto) EOTech XPS3 SMG (Noire) EOTech XPS3 SMG (Černá) + EOTech XPS3 SMG (Siyah) EOTech XPS3 SMG (Khaki) @@ -3785,6 +4021,7 @@ EOTech XPS3 SMG (Khaki) EOTech XPS3 SMG (Kaki) EOTech XPS3 SMG (Khaki) + EOTech XPS3 SMG (Hakii) IOR-Valdada Pitbull 2 @@ -3797,6 +4034,7 @@ IOR-Valdada Pitbull 2 IOR-Valdada Pitbull 2 IOR-Valdada Pitbull 2 + IOR-Valdada Pitbull 2 Burris FastFire 2 @@ -3809,6 +4047,7 @@ Burris FastFire 2 Burris FastFire 2 Burris FastFire 2 + Burris FastFire 2 C-More Railway (Red) @@ -3822,6 +4061,7 @@ C-More Railway (Vermelho) C-More Railway (Rouge) C-More Railway (Červený) + C-More Railway (Kırmızı) C-More Railway (Green) @@ -3835,6 +4075,7 @@ C-More Railway (Verde) C-More Railway (Verte) C-More Railway (Zelený) + C-More Railway (Yeşil) C-More Railway SMG (Red) @@ -3848,6 +4089,7 @@ C-More Railway SMG (Vermelho) C-More Railway SMG (Rouge) C-More Railway SMG (Červený) + C-More Railway SMG (Kırmızı) C-More Railway SMG (Green) @@ -3861,6 +4103,7 @@ C-More Railway SMG (Verde) C-More Railway SMG (Verte) C-More Railway SMG (Zelený) + C-More Railway SMG (Yeşil) P90 TR (Black) @@ -3877,6 +4120,7 @@ P90 TR (黑色) P90 TR (黑色) P90 TR (Black) + P90 TR (Siyah) P90 TR (Khaki) @@ -3893,6 +4137,7 @@ P90 TR (沙色) P90 TR (沙色) P90 TR (Khaki) + P90 TR (Haki) P90 TR (Camo) @@ -3909,6 +4154,7 @@ P90 TR (迷彩) P90 TR (迷彩) P90 TR (Camo) + P90 TR (Kamufulaj) P90 TR (Hex) @@ -3925,6 +4171,7 @@ P90 TR (數位蜂巢迷彩) P90 TR (数位蜂巢迷彩) P90 TR (Hex) + P90 TR (Hex) P90 (Black) @@ -3941,6 +4188,7 @@ P90 (黑色) P90 (黑色) P90 (Black) + P90 (Siyah) P90 (Khaki) @@ -3957,6 +4205,7 @@ P90 (沙色) P90 (沙色) P90 (Khaki) + P90 (Haki) P90 (Camo) @@ -3973,6 +4222,7 @@ P90 (迷彩) P90 (迷彩) P90 (Camo) + P90 (Kamufulaj) P90 (Hex) @@ -3989,6 +4239,7 @@ P90 (數位蜂巢迷彩) P90 (数位蜂巢迷彩) P90 (Hex) + P90 (Hex) PS90 TR (Black) @@ -4005,6 +4256,7 @@ PS90 TR (黑色) PS90 TR (黑色) PS90 TR (Black) + PS90 TR (Siyah) PS90 TR (Khaki) @@ -4021,6 +4273,7 @@ PS90 TR (沙色) PS90 TR (沙色) PS90 TR (Khaki) + PS90 TR (Haki) PS90 TR (Camo) @@ -4037,6 +4290,7 @@ PS90 TR (迷彩) PS90 TR (迷彩) PS90 TR (Camo) + PS90 TR (Kamufulaj) PS90 TR (Hex) @@ -4053,6 +4307,7 @@ PS90 TR (數位蜂巢迷彩) PS90 TR (数位蜂巢迷彩) PS90 TR (Hex) + PS90 TR (Hex) PS90 (Black) @@ -4069,6 +4324,7 @@ PS90 (黑色) PS90 (黑色) PS90 (Black) + PS90 (Siyah) PS90 (Khaki) @@ -4085,6 +4341,7 @@ PS90 (沙色) PS90 (沙色) PS90 (Khaki) + PS90 (Haki) PS90 (Camo) @@ -4101,6 +4358,7 @@ PS90 (迷彩) PS90 (迷彩) PS90 (Camo) + PS90 (Kamufulaj) PS90 (Hex) @@ -4117,6 +4375,7 @@ PS90 (數位蜂巢迷彩) PS90 (数位蜂巢迷彩) PS90 (Hex) + PS90 (Hex) 5.7mm 50Rnd Mag @@ -4133,6 +4392,7 @@ 5.7mm 50發 彈匣 5.7mm 50发 弹匣 5.7mm 50Rnd Mag + 5.7mm 50Rnd Şarjör Caliber: 5.7mm<br />Rounds: 50<br />Used in: P90 diff --git a/addons/refuel/stringtable.xml b/addons/refuel/stringtable.xml index de2ef33b68..4552c9f93a 100644 --- a/addons/refuel/stringtable.xml +++ b/addons/refuel/stringtable.xml @@ -47,6 +47,7 @@ 차량이 얼마나 빨리 재급유될 수 있습니까? 载具多快会加油完毕? 載具多快會加油完畢? + Bir araca ne kadar hızlı yakıt ikmali yapılmalıdır? Refuel @@ -360,6 +361,7 @@ 재급유 완료함 加油完毕 加油完畢 + Yakıt Doldurma Tamamlandı Fueling stopped @@ -375,6 +377,7 @@ 재급유 멈춤 已停止加油 已停止加油 + Yakıt Doldurma Durduruldu Fueling started @@ -390,6 +393,7 @@ 재급유 시작함 已开始加油 已開始加油 + Yakıt Doldurma Başlatıldı Return fuel nozzle @@ -405,6 +409,7 @@ 주유기 반환 放回燃料喷嘴 放回燃料噴嘴 + Yakıt Pompasını Geri Koy Returning fuel nozzle... @@ -420,6 +425,7 @@ 주유기 반환중 放回燃料喷嘴中... 放回燃料噴嘴中... + Yakıt Pompası Geri Koyuluyor Check fuel counter diff --git a/addons/repair/stringtable.xml b/addons/repair/stringtable.xml index d47734e258..f0dcf9681a 100644 --- a/addons/repair/stringtable.xml +++ b/addons/repair/stringtable.xml @@ -243,6 +243,7 @@ 완전수리 完整维修 完整維修 + Tam Onarım Repairing Vehicle... @@ -274,6 +275,7 @@ 완전수리 구역 完整维修地点 完整維修地點 + Tam Onarım Konumu At what locations can a vehicle be fully repaired? @@ -304,6 +306,7 @@ 완전 수리 활성화 允许完整维修 允許完整維修 + Tam Onarıma Izin Ver Who can perform a full repair on a vehicle? @@ -319,6 +322,7 @@ 누가 완전 수리를 할 수 있습니까? 谁可以完整维修载具? 誰可以完整維修載具? + Kimler araçta tam onarım yapabilir? Add Spare Parts @@ -334,6 +338,7 @@ 예비 부품 더하기 添加备件 添加備件 + Yedek Parça Ekle Add spare parts to vehicles (requires Cargo component)? @@ -573,6 +578,7 @@ 왼쪽 수평안정판 左侧悬挂稳定 左側懸掛穩定 + Sol Yatay Sabitleyici Right Horizontal Stabilizer @@ -588,6 +594,7 @@ 오른쪽 수평안정판 右侧悬挂稳定 右側懸掛穩定 + Sağ Yatay Sabitleyici Vertical Stabilizer @@ -603,6 +610,7 @@ 수직 안정판 垂直稳定 垂直穩定 + Dikey Sabitleyici Fuel Tank @@ -1485,6 +1493,7 @@ 없음 + Hiçbiri Engineer @@ -1500,6 +1509,7 @@ 정비공 工兵 工兵 + Mühendis @@ -1516,6 +1526,7 @@ Ing. avancé Pokročilý Inženýr Ingeniero avanzado + Gelişmiş Mühendis Assign one or multiple units as an engineer @@ -1756,6 +1767,7 @@ 목록 名单 名單 + Liste List of objects that will get spare parts added, separated by commas. diff --git a/addons/sandbag/stringtable.xml b/addons/sandbag/stringtable.xml index fc6dc8cc2e..3848e1d6d3 100644 --- a/addons/sandbag/stringtable.xml +++ b/addons/sandbag/stringtable.xml @@ -118,6 +118,7 @@ 여기에 놓기 放下沙包 放下沙包 + Kum Torbasını Bırak Confirm Deployment diff --git a/addons/spectator/stringtable.xml b/addons/spectator/stringtable.xml index f97ce9cf3b..55541ddced 100644 --- a/addons/spectator/stringtable.xml +++ b/addons/spectator/stringtable.xml @@ -14,6 +14,7 @@ Зритель Espectador Divák + Izleyici ACE Spectator @@ -28,6 +29,7 @@ ACE Зритель ACE Espectador ACE Divák + ACE Izleyici Configure how the spectator system will operate by default. @@ -316,6 +318,7 @@ Иконки Ícones Ikony + Ikonlar Projectiles @@ -392,6 +395,7 @@ Замедление Velocidade Lenta Pomalá rychlost + Yavaş Hız diff --git a/addons/switchunits/stringtable.xml b/addons/switchunits/stringtable.xml index 2e9dc44521..16819100e3 100644 --- a/addons/switchunits/stringtable.xml +++ b/addons/switchunits/stringtable.xml @@ -14,6 +14,7 @@ Trocar Unidades Přepnout jednotky Changement de camp + Birlik Değiştir Switched unit @@ -30,6 +31,7 @@ 切换单位 切換單位 인원 전환 + Birlik Değiştirildi Trying to switch @@ -45,6 +47,7 @@ 전환 시도중 尝试切换中 嘗試切換中 + Birlik değiştirilme deneniyor This unit is too close to the enemy. @@ -86,6 +89,7 @@ 切换至蓝方? 切換至藍方? 청군으로 전환합니까? + Batıya Geç? Allow switching to west units? @@ -118,6 +122,7 @@ 切换至红方? 切換至紅方? 대항군으로 전환합니까? + Doğuya Geç ? Allow switching to east units? @@ -150,6 +155,7 @@ 切换至独立方? 切換至獨立方? 독립군 으로 전환합니까? + Bağımsıza Geç? Allow switching to independent units? @@ -182,6 +188,7 @@ 민간인으로 전환합니까? 切换至平民方? 切換至平民方? + Sivillere Geç? Allow switching to civilian units? diff --git a/addons/tagging/stringtable.xml b/addons/tagging/stringtable.xml index e91567e55e..a8f5fd0db4 100644 --- a/addons/tagging/stringtable.xml +++ b/addons/tagging/stringtable.xml @@ -14,6 +14,7 @@ 噴漆 Marcação Označování + Işaretleme Configure how the tagging system will operate by default. @@ -42,6 +43,7 @@ 快速噴漆 Lata de Tinta - Marcação Rápida Stříkací barva - Rychlá značka + Sprey Boya- Hızlı Işaretleme Action performed on main tag interaction point. @@ -116,6 +118,7 @@ Tag 喷漆 噴漆 + Işaretle X black diff --git a/addons/trenches/stringtable.xml b/addons/trenches/stringtable.xml index 8369dd6d07..39ba72efca 100644 --- a/addons/trenches/stringtable.xml +++ b/addons/trenches/stringtable.xml @@ -159,6 +159,7 @@ 취소하기 取消动作 取消動作 + Kazmayı Iptal Et Rotate diff --git a/addons/tripod/stringtable.xml b/addons/tripod/stringtable.xml index e39915462a..7934238dfe 100644 --- a/addons/tripod/stringtable.xml +++ b/addons/tripod/stringtable.xml @@ -16,6 +16,7 @@ SSWT 키트 狙击手专用三脚架 狙擊手專用三腳架 + SSWT Kiti Place SSWT Kit diff --git a/addons/ui/stringtable.xml b/addons/ui/stringtable.xml index e3e58819d0..423f5e07a8 100644 --- a/addons/ui/stringtable.xml +++ b/addons/ui/stringtable.xml @@ -106,6 +106,7 @@ 载具雷达 載具雷達 Radar de vehículos + Araç Radarı Vehicle Compass @@ -121,6 +122,7 @@ 载具指北针 載具指北針 Brújula del vehículo + Araç Pusulası Command Menu @@ -136,6 +138,7 @@ 指挥选单 指揮選單 Menú de Comando + Komut Menüsü Group Bar @@ -151,6 +154,7 @@ 小队状态栏 小隊狀態欄 Barra de grupo + Grup Göstergesi Weapon Name @@ -166,6 +170,7 @@ 武器名称 武器名稱 Nombre del arma + Silah Ismi Weapon Name Background @@ -196,6 +201,7 @@ 射击模式 射擊模式 Modo de disparo + Ateşleme Modu Ammo Type @@ -211,6 +217,7 @@ 弹药类型 彈藥類型 Tipo de munición + Mermi Türü Ammo Count @@ -226,6 +233,7 @@ 弹药数量 彈藥數量 Cantidad de munición + Mermi Sayısı Magazine Count @@ -241,6 +249,7 @@ 弹匣数量 彈匣數量 Recuento de cargadores + Şarjör Sayısı Throwable Type @@ -256,6 +265,7 @@ 投掷物类型 投擲物類型 Tipo arrojable + Fırlatılabilir Türü Throwable Count @@ -271,6 +281,7 @@ 投掷物数量 投擲物數量 Cantidad arrojable + Fırlatılabilir Sayısı Zeroing @@ -286,6 +297,7 @@ 归零距离 歸零距離 Reducción a cero + Sıfırlama Weapon Lower Info Background @@ -316,6 +328,7 @@ 姿态 姿態 Postura + Duruş Stamina Bar @@ -331,6 +344,7 @@ 体力栏 體力欄 Barra de resistencia + Yorulma Çubuğu Gunner Weapon Name @@ -345,6 +359,7 @@ 炮手武器名称 砲手武器名稱 Jméno zbraně vozidla + Nişancı Silah Ismi Gunner Weapon Name Background @@ -373,6 +388,7 @@ 炮手射击模式 砲手射擊模式 Režim palby zbraně vozidla + Nişancı Ateşleme Modu Gunner Ammo Type @@ -387,6 +403,7 @@ 炮手弹药类型 砲手彈藥類型 Typ munice zbraně vozidla + Nişancı Mermi Türü Gunner Ammo Count @@ -401,6 +418,7 @@ 炮手弹药数量 砲手彈藥數量 Počet zásobníků zbraně vozidla + Nişancı Mermi Sayısı Gunner Magazine Count @@ -415,6 +433,7 @@ 炮手弹匣数量 砲手彈匣數量 Počet munice zbraně vozidla + Nişancı Şarjör Sayısı Gunner Launchable Type @@ -486,6 +505,7 @@ 载具名称 載具名稱 Nombre del vehiculo + Araç Ismi Vehicle Name Background @@ -516,6 +536,7 @@ 载具燃料栏 載具燃料欄 Barra de combustible del vehículo + Araç Yakıt Göstergesi Vehicle Speed @@ -531,6 +552,7 @@ 载具速度 載具速度 Velocidad del vehículo + Araç Hızı Vehicle Altitude @@ -546,6 +568,7 @@ 载具高度 載具高度 Altitud del vehículo + Araç Yüksekliği Vehicle Damage @@ -561,6 +584,7 @@ 载具伤害 載具傷害 Daño vehicular + Araç Hasarı Vehicle Info Background diff --git a/addons/vector/stringtable.xml b/addons/vector/stringtable.xml index 19fb076b07..765722f585 100644 --- a/addons/vector/stringtable.xml +++ b/addons/vector/stringtable.xml @@ -67,7 +67,7 @@ Vector - 방위각 키 Vector - 方位按键 Vector - 方位按鍵 - Vector - Azimuth Key + Vector - Azimuth Tuşu Vector - Distance Key @@ -84,7 +84,7 @@ Vector - 거리 키 Vector - 距离按键 Vector - 距離按鍵 - Vector - Distance Key + Vector - Mesafe Tuşu diff --git a/addons/vehicles/stringtable.xml b/addons/vehicles/stringtable.xml index ad517df6b0..5da695c225 100644 --- a/addons/vehicles/stringtable.xml +++ b/addons/vehicles/stringtable.xml @@ -78,6 +78,7 @@ Zvyš rychlostní limit 增加速限 Augmenter la vitesse limite + Hız Limitini Arttır Decrease Speed Limit @@ -91,6 +92,7 @@ Sniž rychlostní limit 降低速限 Diminuer la vitesse limite + Hız Limitini Azalt Disable automatic engine shut-off @@ -104,6 +106,7 @@ Désactiver l'arrêt automatique du moteur Wyłącz automatyczne wyłączanie silnika Disattivare lo spegnimento automatico del motore + Otomatik motor durdurmayı devre dışı bırak Prevent the automatic shut-off of the engine when exiting vehicles. @@ -116,6 +119,7 @@ 避免離開載具時自動熄火。 Impedire lo spegnimento automatico del motore quando si esce dai veicoli. Empêche l'arrêt automatique du moteur à la sortie des véhicules. + Araçtan inerken motorun otomatik kapatılmasını engelleyin. Zapobiegaj automatycznemu wyłączaniu silnika podczas wychodzenia z pojazdu. diff --git a/addons/viewdistance/stringtable.xml b/addons/viewdistance/stringtable.xml index b30285c9ad..664a9df668 100644 --- a/addons/viewdistance/stringtable.xml +++ b/addons/viewdistance/stringtable.xml @@ -49,6 +49,7 @@ ACE 시야 활성화 启用ACE视距 啟用ACE視距 + ACE Görüş Uzaklığını Aktif Et Enables ACE viewdistance @@ -65,6 +66,7 @@ ACE 시야 활성화 启用ACE视距 啟用ACE視距 + ACE Görüş Uzaklığını Aktif Et View Distance Limit @@ -81,6 +83,7 @@ 시야 제한기 视野距离限制 視野距離限制 + Görüş Uzaklığı Limiti Sets the limit for how high clients can raise their view distance (up to 10000) @@ -97,6 +100,7 @@ 클라이언트가 최대 얼마나 멀리 볼 수 있는지 제한을 둡니다 (10000 까지 가능) 设定客户端最高可显示的视野距离 (最高至10000) 設定客戶端最高可顯示的視野距離 (最高至10000) + Kişilerin görüş mesafelerini ne kadar yükseltebileceğine ilişkin sınırı belirler (En Fazla 10000) Limit for client's view distance set here and can overridden by module @@ -129,6 +133,7 @@ 클라이언트 시야 (보병) 客户端视野距离 (步行) 客戶端視野距離 (步行) + Kişilerin Görüş Uzaklığı Mesafesi (Yerde) Changes in game view distance when the player is on foot. @@ -145,6 +150,7 @@ 플레이어가 보병일 경우의 시야를 바꿀 수 있습니다. 改变玩家步行时的视野距离. 改變玩家步行時的視野距離. + Oyuncular ayakta iken görebileceği uzaklığı değiştir. Client View Distance (Land Vehicle) @@ -161,6 +167,7 @@ 클라이언트 시야 (차량) 客户端视野距离 (地面载具) 客戶端視野距離 (地面載具) + Kişilerin Görüş Uzaklığı Mesafesi (Kara Araçların da) Changes in game view distance when the player is in a land vehicle. @@ -177,6 +184,7 @@ 플레이어가 차량 내부일 경우의 시야를 바꿀 수 있습니다. 改变玩家于地面载具内时的视野距离 改變玩家於地面載具內時的視野距離 + Oyuncular kara araçlarında iken görebileceği uzaklığı değiştir. Client View Distance (Air Vehicle) @@ -193,6 +201,7 @@ 클라이언트 시야 (항공기) 客户端视野距离 (空中载具) 客戶端視野距離 (空中載具) + Kişilerin Görüş Uzaklığı Mesafesi (Hava Araçların da) Changes in game view distance when the player is in an air vehicle. @@ -209,6 +218,7 @@ 플레이어가 항공기 내부일 경우의 시야를 바꿀 수 있습니다. 改变玩家于空中载具内时的视野距离 改變玩家於空中載具內時的視野距離 + Oyuncular hava araçların da iken görebileceği uzaklığı değiştir. Dynamic Object View Distance @@ -407,6 +417,7 @@ 이 옵션은 불가능합니다! 제한은 该选项是无效的! 限制是 該選項是無效的! 限制是 + Bu seçenek geçersiz! Limit Video Settings diff --git a/addons/weaponselect/stringtable.xml b/addons/weaponselect/stringtable.xml index d31c3fde91..185cfdc948 100644 --- a/addons/weaponselect/stringtable.xml +++ b/addons/weaponselect/stringtable.xml @@ -116,6 +116,7 @@ 망원경 선택 选择望远镜 選擇望遠鏡 + Dürbünü Seç Holster Weapon @@ -132,6 +133,7 @@ 무기 집어넣기 武器套 武器套 + Silahını Kılıfına Koy Engine on @@ -182,6 +184,7 @@ 주포 선택 选择主武器 選擇主武器 + Ana Silahı Seç Select Machine Gun @@ -198,6 +201,7 @@ 기관총 선택 选择机枪 選擇機槍 + Makineli Silahı Seç Select Missiles @@ -214,6 +218,7 @@ 미사일 선택 选择导弹 選擇導彈 + Füzeleri Seç Grenade %1 @@ -230,6 +235,7 @@ %1 수류탄 手榴弹 %1 手榴彈 %1 + El Bombası %1 Ready Grenade @@ -246,6 +252,7 @@ 투척물 준비 准备手榴弹 準備手榴彈 + El Bombası Hazır Select Frag Grenade @@ -262,6 +269,7 @@ 살상 투척물 선택 选择破片手榴弹 選擇破片手榴彈 + El Bombasını Seç Select Non-Frag Grenade @@ -278,6 +286,7 @@ 비살상 투척물 선택 选择非破片手榴弹 選擇非破片手榴彈 + El Bombası Dışındakileri Seç Throw Selected Grenade @@ -294,6 +303,7 @@ 선택된 투척물 투척 投掷选择的手榴弹 投擲選擇的手榴彈 + Seçilen Bombayı Fırlat No grenades left @@ -310,6 +320,7 @@ 투척물 없음 已无手榴弹 已無手榴彈 + El Bombası Kalmadı No frags left @@ -358,6 +369,7 @@ 선택된 수류탄 없음 未选择手榴弹 未選擇手榴彈 + Bomba Seçilmedi Fire Smoke Launcher @@ -374,6 +386,7 @@ 연막발사기 박사 发射烟雾发射器 發射煙霧發射器 + Ateşli Sis Fırlatıcısı Toggle Collision Lights @@ -389,6 +402,7 @@ Alternar luces de colisión Přepnout kolizní světla Allumer les feux anti-collision + Çarpışma Işıklarını Aç/Kapat diff --git a/addons/weather/stringtable.xml b/addons/weather/stringtable.xml index 575223bf5c..2a61813cc9 100644 --- a/addons/weather/stringtable.xml +++ b/addons/weather/stringtable.xml @@ -16,6 +16,7 @@ 바람 정보 표시 显示风力资讯 顯示風力資訊 + Rüzgar Bilgilerini Göster Show Wind Info (Toggle) @@ -32,6 +33,7 @@ 바람 정보 표시 (토글) 显示风力资讯(切换) 顯示風力資訊(切換) + Rüzgar Bilgilerini Göster (Değiştir) Weather @@ -65,6 +67,7 @@ ACE 기후 모듈과 멀티플레이가 동기화됩니다. 使用ACE天气模块来同步所有客户端的天气状态(多人游戏) 使用ACE天氣模塊來同步所有客戶端的天氣狀態(多人遊戲) + Çok oyunculu ACE ACE Weather @@ -112,6 +115,7 @@ 갱신 간격 更新间隔 更新間隔 + Güncelleştirme Aralığı Defines the interval (seconds) between weather updates @@ -128,6 +132,7 @@ 기후를 갱신 하는 간격을 초 단위로 정합니다. 设定天气更新的时间间隔(秒) 設定天氣更新的時間間隔(秒) + Hava durumu güncellemeleri arasındaki aralığı (saniye) tanımlar Wind Simulation (map based) @@ -142,6 +147,7 @@ Simulação de Vento (baseado no mapa) Simulace větru (podle mapy) Simulation du vent (basée sur la carte) + Rüzgar Simülasyonu (harita tabanlı) Enables the map based wind simulation (overwrites vanilla wind) @@ -156,6 +162,7 @@ Ativar a simulação de vento dos mapas. (sobrepõe vento vanilla) Povoluje simulaci větru založenou na mapě (přepíše původní vítr) Active la simulation du vent basée sur la carte (écrase le vent vanilla). + Harita tabanlı rüzgar simülasyonunu etkinleştirir (Normal rüzgarının üzerine yazar) Check Air Temperature @@ -166,6 +173,7 @@ Sprawdź temperaturę powietrza Vérifier la température Checar a temperatura do ar + Hava Sıcaklığını Kontrol Et Show Check Air Temperature Action @@ -176,6 +184,7 @@ Pokaż akcje sprawdzającą temperaturę powietrza Afficher l'interaction "Vérifier la température" Mostrar a ação "Checar a temperatura do ar" + Hava Sıcaklığını Kontrol Etme Eylemini Göster diff --git a/addons/winddeflection/stringtable.xml b/addons/winddeflection/stringtable.xml index 6fd18fe336..f9b0ca56e4 100644 --- a/addons/winddeflection/stringtable.xml +++ b/addons/winddeflection/stringtable.xml @@ -84,6 +84,7 @@ 습도: %1% 湿度: %1% 濕度: %1% + Nem Oranı: %1% Wind Deflection @@ -100,6 +101,7 @@ 풍향 변화 风偏 風偏 + Rüzgar Sapması Wind Deflection @@ -116,6 +118,7 @@ 풍향 변화 风偏 風偏 + Rüzgar Sapması Enables wind deflection @@ -132,6 +135,7 @@ 풍향 변화를 적용합니다 开启风偏效果 開啟風偏效果 + Rüzgar sapmasını aktif et Vehicle Enabled @@ -148,6 +152,7 @@ 차량 적용 启用风偏给载具 啟用風偏給載具 + Araçlar da etkin Enables wind deflection for static/vehicle gunners @@ -164,6 +169,7 @@ 차량이나 거치식 무기 사수에게 풍향 변화를 적용합니다 使风偏作用在固定式武器与载具炮手身上 使風偏作用在固定式武器與載具砲手身上 + Araç nişancıları için rüzgar sapmasını etkinleştirir. Simulation Interval diff --git a/addons/yardage450/stringtable.xml b/addons/yardage450/stringtable.xml index 6d25855737..8e73904da7 100644 --- a/addons/yardage450/stringtable.xml +++ b/addons/yardage450/stringtable.xml @@ -33,6 +33,7 @@ 레이저 거리측정기 雷射测距仪 雷射測距儀 + Lazer Menzil Bulucu Yardage 450 - Power Button @@ -49,6 +50,7 @@ Yardage 450 - 전원 버튼 Yardage 450 - 电源按钮 Yardage 450 - 電源按鈕 + Yardage 450 - Güç Tuşu From 5c1ea16fb0b6e43e3fe8fdb2de78a8931e780812 Mon Sep 17 00:00:00 2001 From: jonpas Date: Fri, 17 Jan 2020 14:05:17 +0100 Subject: [PATCH 068/194] Medical - Increase Cardiact Arrest Time to 5 min --- addons/medical_statemachine/initSettings.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/medical_statemachine/initSettings.sqf b/addons/medical_statemachine/initSettings.sqf index a47fa9c31b..df66002ff9 100644 --- a/addons/medical_statemachine/initSettings.sqf +++ b/addons/medical_statemachine/initSettings.sqf @@ -38,6 +38,6 @@ "TIME", [LSTRING(CardiacArrestTime_DisplayName), LSTRING(CardiacArrestTime_Description)], [ELSTRING(medical,Category), LSTRING(SubCategory)], - [1, 3600, 30], + [1, 3600, 300], true ] call CBA_settings_fnc_init; From 5c774f5fe6557299c3ee0685137e01fd63fb8eed Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Fri, 17 Jan 2020 08:59:50 -0600 Subject: [PATCH 069/194] release-drafter - Add category for translations (#7439) * release-drafter - Add category for translations * Update .github/release-drafter.yml Co-Authored-By: mharis001 <34453221+mharis001@users.noreply.github.com> * Update release-drafter.yml Co-authored-by: mharis001 <34453221+mharis001@users.noreply.github.com> --- .github/release-drafter.yml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/.github/release-drafter.yml b/.github/release-drafter.yml index 03ba48212a..0d0f4a7b71 100644 --- a/.github/release-drafter.yml +++ b/.github/release-drafter.yml @@ -9,16 +9,19 @@ categories: - title: '**ADDED:**' labels: - 'kind/feature request' - - 'kind/enhancement' - - 'area/translations' - title: '**FIXED:**' labels: - 'kind/bug fix' - - title: '**CHANGED:**' + - title: '**IMPROVED:**' labels: - 'kind/enhancement' + - title: '**CHANGED:**' + labels: - 'kind/cleanup' - 'area/compatibility' + - title: '**TRANSLATIONS:**' + labels: + - 'area/translations' exclude-labels: - 'ignore changelog' From 37bea2eb81e0e902310da32d838cd4dc7dd861ce Mon Sep 17 00:00:00 2001 From: diwako Date: Fri, 17 Jan 2020 17:45:06 +0100 Subject: [PATCH 070/194] French translation by Elgin675 --- addons/medical_treatment/stringtable.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/addons/medical_treatment/stringtable.xml b/addons/medical_treatment/stringtable.xml index e5d2736646..c47dc7a7f4 100644 --- a/addons/medical_treatment/stringtable.xml +++ b/addons/medical_treatment/stringtable.xml @@ -511,11 +511,13 @@ Allow IV Transfusion Erlaube Bluttransfusionen Zezwalaj na przetaczanie płynów IV + Pose de perfusion autorisée pour Training level required to transfuse IVs. 'Fähigkeiten-Level', das benötigt wird, um Blut zu transfundieren. Poziom wyszkolenia potrzebny aby móc przetaczać płyny IV. + Définit quelle qualification médicale est requise pour pouvoir poser des perfusions intraveineuses. Convert Vanilla Items From 8a16c9da1b946989ebfb60026b8f2febfb633c53 Mon Sep 17 00:00:00 2001 From: commy2 Date: Sat, 18 Jan 2020 18:12:01 +0100 Subject: [PATCH 071/194] ACE_weaponThrown event --- addons/hitreactions/functions/fnc_throwWeapon.sqf | 3 +++ 1 file changed, 3 insertions(+) diff --git a/addons/hitreactions/functions/fnc_throwWeapon.sqf b/addons/hitreactions/functions/fnc_throwWeapon.sqf index 77d380ec10..ae77db9c02 100644 --- a/addons/hitreactions/functions/fnc_throwWeapon.sqf +++ b/addons/hitreactions/functions/fnc_throwWeapon.sqf @@ -41,4 +41,7 @@ _holder setPosWorld _position; _holder setVectorDirAndUp [_vUp, _vLat]; _holder setVelocity _velocity; _holder addTorque (call CBA_fnc_randomVector3D vectorMultiply THROW_TORQUE); + +["ACE_weaponThrown", [_unit, _holder, _data]] call CBA_fnc_localEvent; + _holder // return From 71da4360b8f61b1a48e40f1cd0c289e67076a6d7 Mon Sep 17 00:00:00 2001 From: M3ales Date: Sat, 18 Jan 2020 19:15:49 +0200 Subject: [PATCH 072/194] Changed version to versionStr as fix for #7478 (#7479) Ensures return value of string is preserved. --- addons/common/functions/fnc_getVersion.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/common/functions/fnc_getVersion.sqf b/addons/common/functions/fnc_getVersion.sqf index 8f9e39e360..ccf4966715 100644 --- a/addons/common/functions/fnc_getVersion.sqf +++ b/addons/common/functions/fnc_getVersion.sqf @@ -15,4 +15,4 @@ * Public: Yes */ -getText (configFile >> "CfgPatches" >> "ACE_main" >> "version") // return +getText (configFile >> "CfgPatches" >> "ACE_main" >> "versionStr") // return From d9054e1c52b3732f762e05616659d60e461bc5ab Mon Sep 17 00:00:00 2001 From: Panisher <37155162+Panisher@users.noreply.github.com> Date: Sat, 18 Jan 2020 20:40:41 +0300 Subject: [PATCH 073/194] Overheating - Fix jamming sound (#7463) * This sound was heard all over the map * secondaryWeapon changed to handgunWeapon * add jamming sound * add yourself to AUTHORS.txt --- AUTHORS.txt | 1 + addons/overheating/functions/fnc_clearJam.sqf | 2 +- addons/overheating/functions/fnc_jamWeapon.sqf | 10 +++++++++- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/AUTHORS.txt b/AUTHORS.txt index 37f79efcc2..020662aea0 100644 --- a/AUTHORS.txt +++ b/AUTHORS.txt @@ -120,6 +120,7 @@ nomisum OnkelDisMaster Orbis2358 oscarmolinadev +Panisher (Tushino Serious Games) PaxJaromeMalues PiZZADOX <509thParachuteInfantry@gmail.com> Phyma diff --git a/addons/overheating/functions/fnc_clearJam.sqf b/addons/overheating/functions/fnc_clearJam.sqf index 44b219fda2..61e84fe906 100644 --- a/addons/overheating/functions/fnc_clearJam.sqf +++ b/addons/overheating/functions/fnc_clearJam.sqf @@ -36,7 +36,7 @@ if (_weapon in _jammedWeapons) then { if (_weapon == primaryWeapon _unit) then { playSound QGVAR(fixing_rifle); } else { - if (_weapon == secondaryWeapon _unit) then { + if (_weapon == handgunWeapon _unit) then { playSound QGVAR(fixing_pistol); }; }; diff --git a/addons/overheating/functions/fnc_jamWeapon.sqf b/addons/overheating/functions/fnc_jamWeapon.sqf index f8518add8e..e3a5bb793a 100644 --- a/addons/overheating/functions/fnc_jamWeapon.sqf +++ b/addons/overheating/functions/fnc_jamWeapon.sqf @@ -40,6 +40,14 @@ if (_ammo > 0) then { }, [_unit, _weapon, _ammo]] call CBA_fnc_execNextFrame; }; +if (_weapon == primaryWeapon _unit) then { + playSound QGVAR(jamming_rifle); +} else { + if (_weapon == handgunWeapon _unit) then { + playSound QGVAR(jamming_pistol); + }; +}; + // only display the hint once, after you try to shoot an already jammed weapon GVAR(knowAboutJam) = false; @@ -55,7 +63,7 @@ if (_unit getVariable [QGVAR(JammingActionID), -1] == -1) then { }; private _statement = { - playSound3D ["a3\sounds_f\weapons\Other\dry9.wss", _this select 0]; + playSound3D ["a3\sounds_f\weapons\Other\dry9.wss", _this select 0, false, eyePos (_this select 0), 1, 1, 15]; if (!(missionNamespace getVariable [QGVAR(knowAboutJam), false]) && {(_this select 1) ammo currentWeapon (_this select 1) > 0} && {GVAR(DisplayTextOnJam)}) then { [localize LSTRING(WeaponJammed)] call EFUNC(common,displayTextStructured); From 4ac04a8f927d8da90f9694b79df0454e4a3e5ac3 Mon Sep 17 00:00:00 2001 From: jonpas Date: Tue, 21 Jan 2020 17:36:52 +0100 Subject: [PATCH 074/194] Tools - Delete .github_changelog_generator (#7484) * Delete .github_changelog_generator * Update Release Drafter replacer category tiltes --- .github/release-drafter.yml | 2 +- .github_changelog_generator | 20 -------------------- 2 files changed, 1 insertion(+), 21 deletions(-) delete mode 100644 .github_changelog_generator diff --git a/.github/release-drafter.yml b/.github/release-drafter.yml index 0d0f4a7b71..20f5b3cb20 100644 --- a/.github/release-drafter.yml +++ b/.github/release-drafter.yml @@ -36,5 +36,5 @@ template: | replacers: # Category titles - - search: '/\#\# (\*\*(ADDED|FIXED|CHANGED):\*\*)/g' + - search: '/\#\# (\*\*(ADDED|FIXED|IMPROVED|CHANGED|TRANSLATIONS):\*\*)/g' replace: '$1' diff --git a/.github_changelog_generator b/.github_changelog_generator deleted file mode 100644 index 6d1d741bbd..0000000000 --- a/.github_changelog_generator +++ /dev/null @@ -1,20 +0,0 @@ -# No issues and PRs without labels -issues=false -pr-wo-labels=false - -# Issues are disabled, don't fetch them -max-issues=0 - -# Label filters -exclude-labels=by design,can't reproduce,duplicate,question,invalid,wontfix,ignore changelog - -# Tag is created before generating changelog for release candidates -unreleased=false - -# No section labels, we only want a list of merged PRs (label separation only works for Issues) -simple-list=true - -# Misc -author=false -compare-link=false -header-label=## Change Log Summary From ed1488edbab4d576549558fcecc513b4d0e0dd75 Mon Sep 17 00:00:00 2001 From: Cyruz143 Date: Wed, 22 Jan 2020 15:18:08 +0000 Subject: [PATCH 075/194] Adding medical box to classnames page (#7472) * Adding medical box to classnames page * Forgot advanced medical box --- docs/wiki/class-names.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/wiki/class-names.md b/docs/wiki/class-names.md index b373a367b4..ed7173d973 100644 --- a/docs/wiki/class-names.md +++ b/docs/wiki/class-names.md @@ -38,7 +38,7 @@ ACE_200Rnd_65x39_cased_Box_Tracer_Dim | 6.5mm IR-DIM | Magazine | ACE_30Rnd_65x39_caseless_mag_Tracer_Dim | 6.5mm IR-DIM | Magazine | ACE_30Rnd_65x39_caseless_green_mag_Tracer_Dim | 6.5mm IR-DIM | Magazine | ACE_30Rnd_556x45_Stanag_M995_AP_mag | 5.56mm AP | Magazine | -ACE_30Rnd_556x45_Stanag_Mk262_mag | 5.56mm Mk262 | Magazine | +ACE_30Rnd_556x45_Stanag_Mk262_mag | 5.56mm Mk262 | Magazine | ACE_30Rnd_556x45_Stanag_Mk318_mag | 5.56mm Mk318 | Magazine | ACE_30Rnd_556x45_Stanag_Tracer_Dim | 5.56mm IR-DIM | Magazine | ACE_20Rnd_762x51_Mag_Tracer | 7.62mm Tracer | Magazine | @@ -230,6 +230,8 @@ ACE_salineIV_500 | Saline IV (500ml) | ACE_ItemCore | ACE_salineIV_250 | Saline IV (250ml) | ACE_ItemCore | ACE_surgicalKit | Surgical Kit | ACE_ItemCore | ACE_tourniquet | Tourniquet (CAT) | ACE_ItemCore | +ACE_medicalSupplyCrate | Simple ACE Medical Supply Crate | ammo box | +ACE_medicalSupplyCrate_advanced | Advanced ACE Medical Supply Crate | ammo box | ### MicroDAGR `Added in 3.0.0` From 2e7fee525698a416d9c4a12182ef6c492756c86c Mon Sep 17 00:00:00 2001 From: dfr1238 <48888992+dfr1238@users.noreply.github.com> Date: Tue, 28 Jan 2020 23:28:31 +0800 Subject: [PATCH 076/194] Update tchinese (#7490) Update missing string Fix string about STR_ACE_Medical_Treatment_VehiclesAndFacilities --- addons/medical_treatment/stringtable.xml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/addons/medical_treatment/stringtable.xml b/addons/medical_treatment/stringtable.xml index c47dc7a7f4..409194a98c 100644 --- a/addons/medical_treatment/stringtable.xml +++ b/addons/medical_treatment/stringtable.xml @@ -512,12 +512,14 @@ Erlaube Bluttransfusionen Zezwalaj na przetaczanie płynów IV Pose de perfusion autorisée pour + 允許操作點滴 Training level required to transfuse IVs. 'Fähigkeiten-Level', das benötigt wird, um Blut zu transfundieren. Poziom wyszkolenia potrzebny aby móc przetaczać płyny IV. Définit quelle qualification médicale est requise pour pouvoir poser des perfusions intraveineuses. + 要有何種醫療水準才可注射點滴。 Convert Vanilla Items @@ -687,7 +689,7 @@ Véhicules & installations sanitaires Техника и госпитали Veículos e Instalações Médicas - 車輛 %amp; 設施 + 車輛與設施 Zdravotnická zařízení a vozidla Veicoli e strutture Pojazdy i Obiekty From 270a5a930fa71eaba1d699b5ae733a1fdfad9b70 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Tue, 28 Jan 2020 19:12:11 -0600 Subject: [PATCH 077/194] Frag - Fix spallTrack (#7492) --- addons/frag/functions/fnc_spallTrack.sqf | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/addons/frag/functions/fnc_spallTrack.sqf b/addons/frag/functions/fnc_spallTrack.sqf index 3cd3a27ad5..5d08dcc718 100644 --- a/addons/frag/functions/fnc_spallTrack.sqf +++ b/addons/frag/functions/fnc_spallTrack.sqf @@ -24,7 +24,10 @@ private _velocity = velocity _round; private _velocityStep = _velocity vectorMultiply _delta; private _forwardPos = _curPos vectorAdd _velocityStep; -if !((lineIntersectsSurfaces [_curPos, _forwardPos]) isEqualTo []) exitWith {}; + +private _intersectsWith = lineIntersectsWith [_curPos, _forwardPos]; + +if (_intersectsWith isEqualTo []) exitWith {}; { // diag_log text format ["Adding HP: %1", _x]; private _index = count GVAR(spallHPData); From 2feeec0d7f252209c48a79760d2dc129e5e80655 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Tue, 28 Jan 2020 19:12:38 -0600 Subject: [PATCH 078/194] Medical AI - Block healing when handcuffed (#7493) --- addons/medical_ai/functions/fnc_isSafe.sqf | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/addons/medical_ai/functions/fnc_isSafe.sqf b/addons/medical_ai/functions/fnc_isSafe.sqf index b18adbdc1c..3c6c9f5dca 100644 --- a/addons/medical_ai/functions/fnc_isSafe.sqf +++ b/addons/medical_ai/functions/fnc_isSafe.sqf @@ -4,7 +4,7 @@ * Checks if a unit is currently considered safe enough to treat itself. * * Arguments: - * None + * Unit * * Return Value: * Is unit safe enough @@ -15,4 +15,6 @@ * Public: No */ -(getSuppression _this == 0) && {CBA_missionTime - (_this getVariable [QGVAR(lastFired), -30]) > 30} +(getSuppression _this == 0) +&& {CBA_missionTime - (_this getVariable [QGVAR(lastFired), -30]) > 30} +&& {!(_this getVariable [QEGVAR(captives,isHandcuffed), false])} From 93173d43b2ccb14f9c1874a6104726572a7f2115 Mon Sep 17 00:00:00 2001 From: Whigital Date: Fri, 24 Jan 2020 21:41:52 +0100 Subject: [PATCH 079/194] Add magazines to carryable statics --- addons/csw/CfgMagazineGroups.hpp | 1 - addons/csw/CfgMagazines.hpp | 3 ++ addons/csw/CfgWeapons.hpp | 31 +++++++++---- addons/csw/UI/StaticMortarTube_Icon.paa | Bin 0 -> 29394 bytes addons/csw/config.cpp | 1 - optionals/compat_rhs_afrf3/CfgWeapons.hpp | 51 +++++++++++++++++++++- optionals/compat_rhs_gref3/CfgWeapons.hpp | 6 +++ optionals/compat_rhs_usf3/CfgWeapons.hpp | 43 +++++++++++++++++- 8 files changed, 123 insertions(+), 13 deletions(-) create mode 100644 addons/csw/UI/StaticMortarTube_Icon.paa diff --git a/addons/csw/CfgMagazineGroups.hpp b/addons/csw/CfgMagazineGroups.hpp index 697403f963..2093253d04 100644 --- a/addons/csw/CfgMagazineGroups.hpp +++ b/addons/csw/CfgMagazineGroups.hpp @@ -83,4 +83,3 @@ class GVAR(groups) { 1Rnd_GAA_missiles = 1; }; }; - diff --git a/addons/csw/CfgMagazines.hpp b/addons/csw/CfgMagazines.hpp index 6102fa48f4..dc972a5a92 100644 --- a/addons/csw/CfgMagazines.hpp +++ b/addons/csw/CfgMagazines.hpp @@ -9,6 +9,7 @@ class CfgMagazines { mass = 96; ACE_isBelt = 1; }; + class 100Rnd_127x99_mag_Tracer_Red; class GVAR(100Rnd_127x99_mag_red): 100Rnd_127x99_mag_Tracer_Red { author = ECSTRING(common,ACETeam); @@ -19,6 +20,7 @@ class CfgMagazines { mass = 96; ACE_isBelt = 1; }; + class 100Rnd_127x99_mag_Tracer_Green; class GVAR(100Rnd_127x99_mag_green): 100Rnd_127x99_mag_Tracer_Green { author = ECSTRING(common,ACETeam); @@ -29,6 +31,7 @@ class CfgMagazines { mass = 96; ACE_isBelt = 1; }; + class 100Rnd_127x99_mag_Tracer_Yellow; class GVAR(100Rnd_127x99_mag_yellow): 100Rnd_127x99_mag_Tracer_Yellow { author = ECSTRING(common,ACETeam); diff --git a/addons/csw/CfgWeapons.hpp b/addons/csw/CfgWeapons.hpp index fd7a67d6f0..442c7e31d8 100644 --- a/addons/csw/CfgWeapons.hpp +++ b/addons/csw/CfgWeapons.hpp @@ -4,7 +4,6 @@ class CfgWeapons { class WeaponSlotsInfo; }; - // Tripods: class GVAR(m3CarryTripod): Launcher_Base_F { class ADDON { @@ -127,8 +126,6 @@ class CfgWeapons { picture = QPATHTOF(UI\Tripod_Icon.paa); // todo }; - - // Weapons: class GVAR(staticATCarry): Launcher_Base_F { class ADDON { @@ -148,6 +145,9 @@ class CfgWeapons { model = QPATHTOEF(apl,ACE_CSW_Bag.p3d); modes[] = {}; picture = QPATHTOF(UI\StaticAT_Icon.paa); + magazines[] = { + "Titan_AT" + }; }; class GVAR(staticAACarry): GVAR(staticATCarry) { @@ -168,6 +168,9 @@ class CfgWeapons { model = QPATHTOEF(apl,ACE_CSW_Bag.p3d); modes[] = {}; picture = QPATHTOF(UI\StaticAT_Icon.paa); + magazines[] = { + "Titan_AA" + }; }; class GVAR(staticHMGCarry): Launcher_Base_F { @@ -189,6 +192,12 @@ class CfgWeapons { model = QPATHTOEF(apl,ACE_CSW_Bag.p3d); modes[] = {}; picture = QPATHTOF(UI\StaticHGMG_Icon.paa); + magazines[] = { + QGVAR(100Rnd_127x99_mag), + QGVAR(100Rnd_127x99_mag_red), + QGVAR(100Rnd_127x99_mag_green), + QGVAR(100Rnd_127x99_mag_yellow) + }; }; class GVAR(staticGMGCarry): Launcher_Base_F { @@ -210,9 +219,11 @@ class CfgWeapons { model = QPATHTOEF(apl,ACE_CSW_Bag.p3d); modes[] = {}; picture = QPATHTOF(UI\StaticHGMG_Icon.paa); + magazines[] = { + QGVAR(20Rnd_20mm_G_belt) + }; }; - class GVAR(staticMortarCarry): Launcher_Base_F { class ADDON { type = "weapon"; @@ -230,7 +241,14 @@ class CfgWeapons { scope = 2; model = QPATHTOEF(apl,ACE_CSW_Bag.p3d); modes[] = {}; - picture = QPATHTOF(UI\StaticHGMG_Icon.paa); + picture = QPATHTOF(UI\StaticMortarTube_Icon.paa); + magazines[] = { + QGVARMAIN(1Rnd_82mm_Mo_HE), + QGVARMAIN(1Rnd_82mm_Mo_Smoke), + QGVARMAIN(1Rnd_82mm_Mo_Illum), + QGVARMAIN(1Rnd_82mm_Mo_HE_Guided), + QGVARMAIN(1Rnd_82mm_Mo_HE_LaserGuided) + }; }; // Proxy Weapons @@ -247,7 +265,6 @@ class CfgWeapons { magazineReloadTime = 0.5; }; - /* class GVAR(staticAutoHMGCarry): Launcher_Base_F { class ADDON { @@ -270,7 +287,6 @@ class CfgWeapons { picture = QPATHTOF(UI\StaticHGMG_Icon.paa); }; - class GVAR(staticAutoGMGCarry): Launcher_Base_F { class GVAR(options) { assembleTo = QGVAR(staticAutoGMGWeapon); @@ -291,4 +307,3 @@ class CfgWeapons { */ }; - diff --git a/addons/csw/UI/StaticMortarTube_Icon.paa b/addons/csw/UI/StaticMortarTube_Icon.paa new file mode 100644 index 0000000000000000000000000000000000000000..2420ce7e4f62642d89618694c95edfc88485fac6 GIT binary patch literal 29394 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

+uM1Oa6CZ$$$0ue(V0+8xLe%3dp)b ziCOBh-vw-lN<*i%A<*HJ`ZtHj>)XgLL#Z@0IC@-; zNg%BR4&J#0^znP#h6HZa|FSK|>j>oFAIq})t|lhd*8BU9{}ys+>peUBVLe2{KAe9y zzJBZeCtNv^b@Az}YgAZ5F8{Dz_{q!pUvIR1d?kZQD@igCDWhtu7}g7@t!^w6Rrl)TC-t+L8aN+iMwu8q>Dr~adjPS?EsLeY;EMGR1C})-q1SoDkci0MoNS#@!)CIGd z2T{%!V)YI&3&gnocd$MteQ$+>n(D*{^>8|Q?X_!TVMcE8er2VsI-g`yE07kLk-0yR z2`7DN_5pK%FvvmR4;oGEJ?~~7Kw+k!g!XBaJj7d78qysfNy9s6xZqw50)pMevmSw+ zIi-|*fI>loDgwBE3;l#@n<@ghevS60-wk6@^8>BZ?H#CJjGCTJg^huneI7ho;@MRn z+(o4&K^j@~l=I(Rv&~&`Z5rI4A#ZBh(@k1G4z+y(r(shE^Vh)Nks^SV9RS{?Q-z_wTMNKBV~b^WsRD zkFG4xNB9-<^r`okcSS(mkR2QCSNwDm6}HX>w{s<3r{iDgyAmIhM5~7N&92_Cfwgka zNE$;4grSSebUllWl^?Jp!jngM2>@X)AiY<|p*>TjO6qNj}}+^&NFkCzSF{cJTmGL6{5Di3^ zsca&DC}ZyzfJbff55(9qsK@-EE`SGr4f>$H){yCSdqv)I*p1>=4?j1u6m~DeX(k#F zE4n5B`)nybGZIefhTG0;R20!f&rYP!+V1Lh&e>{XDnMIo^=z0l#=a zX@CCk6MfQS@GAh2M12U*7X743HP)d3zWjG!c^yT))~S5l#0D^zRoAY2@RRMIe!X`2 zDQX#Lv>CZS_r4-wPih`)3ZS%;Nst792}aq(1^}B*_fs%2;aA#J@XHk&8!~4Cf~nQ+ z24z~`=xdi@*t+OgjRA(`erW5?eglA|lJ2&+21pGaq4oyFB Date: Thu, 30 Jan 2020 23:21:30 +0100 Subject: [PATCH 080/194] Remove CSW mag defs --- addons/csw/CfgWeapons.hpp | 22 ---------------------- 1 file changed, 22 deletions(-) diff --git a/addons/csw/CfgWeapons.hpp b/addons/csw/CfgWeapons.hpp index 442c7e31d8..4b1e12ca33 100644 --- a/addons/csw/CfgWeapons.hpp +++ b/addons/csw/CfgWeapons.hpp @@ -145,9 +145,6 @@ class CfgWeapons { model = QPATHTOEF(apl,ACE_CSW_Bag.p3d); modes[] = {}; picture = QPATHTOF(UI\StaticAT_Icon.paa); - magazines[] = { - "Titan_AT" - }; }; class GVAR(staticAACarry): GVAR(staticATCarry) { @@ -168,9 +165,6 @@ class CfgWeapons { model = QPATHTOEF(apl,ACE_CSW_Bag.p3d); modes[] = {}; picture = QPATHTOF(UI\StaticAT_Icon.paa); - magazines[] = { - "Titan_AA" - }; }; class GVAR(staticHMGCarry): Launcher_Base_F { @@ -192,12 +186,6 @@ class CfgWeapons { model = QPATHTOEF(apl,ACE_CSW_Bag.p3d); modes[] = {}; picture = QPATHTOF(UI\StaticHGMG_Icon.paa); - magazines[] = { - QGVAR(100Rnd_127x99_mag), - QGVAR(100Rnd_127x99_mag_red), - QGVAR(100Rnd_127x99_mag_green), - QGVAR(100Rnd_127x99_mag_yellow) - }; }; class GVAR(staticGMGCarry): Launcher_Base_F { @@ -219,9 +207,6 @@ class CfgWeapons { model = QPATHTOEF(apl,ACE_CSW_Bag.p3d); modes[] = {}; picture = QPATHTOF(UI\StaticHGMG_Icon.paa); - magazines[] = { - QGVAR(20Rnd_20mm_G_belt) - }; }; class GVAR(staticMortarCarry): Launcher_Base_F { @@ -242,13 +227,6 @@ class CfgWeapons { model = QPATHTOEF(apl,ACE_CSW_Bag.p3d); modes[] = {}; picture = QPATHTOF(UI\StaticMortarTube_Icon.paa); - magazines[] = { - QGVARMAIN(1Rnd_82mm_Mo_HE), - QGVARMAIN(1Rnd_82mm_Mo_Smoke), - QGVARMAIN(1Rnd_82mm_Mo_Illum), - QGVARMAIN(1Rnd_82mm_Mo_HE_Guided), - QGVARMAIN(1Rnd_82mm_Mo_HE_LaserGuided) - }; }; // Proxy Weapons From bd90b1ae893fd1348f9c4a80a50c22824857b948 Mon Sep 17 00:00:00 2001 From: Whigital Date: Thu, 30 Jan 2020 23:21:59 +0100 Subject: [PATCH 081/194] Remove USAF mag defs --- optionals/compat_rhs_usf3/CfgWeapons.hpp | 30 ------------------------ 1 file changed, 30 deletions(-) diff --git a/optionals/compat_rhs_usf3/CfgWeapons.hpp b/optionals/compat_rhs_usf3/CfgWeapons.hpp index 7058a5b185..45e4e8b982 100644 --- a/optionals/compat_rhs_usf3/CfgWeapons.hpp +++ b/optionals/compat_rhs_usf3/CfgWeapons.hpp @@ -506,14 +506,6 @@ class CfgWeapons { model = QPATHTOEF(apl,ACE_CSW_Bag.p3d); modes[] = {}; picture = "\rhsusf\addons\rhsusf_heavyweapons\data\ico\RHS_M252_D_ca.paa"; - icon = "\rhsusf\addons\rhsusf_heavyweapons\data\ico\RHS_M252_D_ca.paa"; - magazines[] = { - QGVARMAIN(1Rnd_82mm_Mo_HE), - QGVARMAIN(1Rnd_82mm_Mo_Smoke), - QGVARMAIN(1Rnd_82mm_Mo_Illum), - QGVARMAIN(1Rnd_82mm_Mo_HE_Guided), - QGVARMAIN(1Rnd_82mm_Mo_HE_LaserGuided) - }; }; class GVAR(m2_carry): Launcher_Base_F { @@ -538,12 +530,6 @@ class CfgWeapons { model = QPATHTOEF(apl,ACE_CSW_Bag.p3d); modes[] = {}; picture = "\rhsusf\addons\rhsusf_heavyweapons\data\ico\RHS_M2StaticMG_D_ca.paa"; - magazines[] = { - QEGVAR(csw,100Rnd_127x99_mag), - QEGVAR(csw,100Rnd_127x99_mag_red), - QEGVAR(csw,100Rnd_127x99_mag_green), - QEGVAR(csw,100Rnd_127x99_mag_yellow) - }; }; class GVAR(mk19_carry): Launcher_Base_F { @@ -567,12 +553,6 @@ class CfgWeapons { model = QPATHTOEF(apl,ACE_CSW_Bag.p3d); modes[] = {}; picture = "\rhsusf\addons\rhsusf_heavyweapons\data\ico\RHS_MK19_TriPod_D_ca.paa"; - magazines[] = { - QGVAR(48Rnd_40mm_MK19), - QGVAR(48Rnd_40mm_MK19_M430I), - QGVAR(48Rnd_40mm_MK19_M430A1), - QGVAR(48Rnd_40mm_MK19_M1001) - }; }; class GVAR(tow_carry): Launcher_Base_F { @@ -596,15 +576,5 @@ class CfgWeapons { model = QPATHTOEF(apl,ACE_CSW_Bag.p3d); modes[] = {}; picture = "\rhsusf\addons\rhsusf_heavyweapons\data\Ico\RHS_TOW_TriPod_D_ca.paa"; - magazines[] = { - QGVAR(mag_TOW), - QGVAR(mag_TOWB), - QGVAR(mag_ITOW), - QGVAR(mag_TOW2), - QGVAR(mag_TOW2A), - QGVAR(mag_TOW2b), - QGVAR(mag_TOW2b_aero), - QGVAR(mag_TOW2bb) - }; }; }; From 9aacdf362864d3ba4fbf3f3d6d8dc28bd3183f92 Mon Sep 17 00:00:00 2001 From: Whigital Date: Thu, 30 Jan 2020 23:22:36 +0100 Subject: [PATCH 082/194] Remove AFRF mag defs --- optionals/compat_rhs_afrf3/CfgWeapons.hpp | 25 ----------------------- 1 file changed, 25 deletions(-) diff --git a/optionals/compat_rhs_afrf3/CfgWeapons.hpp b/optionals/compat_rhs_afrf3/CfgWeapons.hpp index 2236aeb313..7b72daa108 100644 --- a/optionals/compat_rhs_afrf3/CfgWeapons.hpp +++ b/optionals/compat_rhs_afrf3/CfgWeapons.hpp @@ -184,13 +184,6 @@ class CfgWeapons { model = QPATHTOEF(apl,ACE_CSW_Bag.p3d); modes[] = {}; picture = "\rhsafrf\addons\rhs_heavyweapons\data\ico\rhs_2b14_82mm_msv_ca.paa"; - magazines[] = { - QGVARMAIN(1Rnd_82mm_Mo_HE), - QGVARMAIN(1Rnd_82mm_Mo_Smoke), - QGVARMAIN(1Rnd_82mm_Mo_Illum), - QGVARMAIN(1Rnd_82mm_Mo_HE_Guided), - QGVARMAIN(1Rnd_82mm_Mo_HE_LaserGuided) - }; }; class GVAR(nsv_carry): Launcher_Base_F { @@ -214,9 +207,6 @@ class CfgWeapons { model = QPATHTOEF(apl,ACE_CSW_Bag.p3d); modes[] = {}; picture = "\rhsafrf\addons\rhs_heavyweapons\data\ico\RHS_NSV_TriPod_MSV_ca.paa"; - magazines[] = { - QEGVAR(csw,50Rnd_127x108_mag) - }; }; class GVAR(kord_carry): Launcher_Base_F { @@ -241,9 +231,6 @@ class CfgWeapons { model = QPATHTOEF(apl,ACE_CSW_Bag.p3d); modes[] = {}; picture = "\rhsafrf\addons\rhs_heavyweapons\data\ico\rhs_KORD_MSV_ca.paa"; - magazines[] = { - QEGVAR(csw,50Rnd_127x108_mag) - }; }; class GVAR(ags30_carry): Launcher_Base_F { @@ -267,11 +254,6 @@ class CfgWeapons { model = QPATHTOEF(apl,ACE_CSW_Bag.p3d); modes[] = {}; picture = "\rhsafrf\addons\rhs_heavyweapons\data\ico\RHS_AGS30_TriPod_MSV_ca.paa"; - magazines[] = { - QGVAR(mag_VOG30_30), - QGVAR(mag_GPD30_30), - QGVAR(mag_VOG17m_30) - }; }; class GVAR(spg9_carry): Launcher_Base_F { @@ -295,13 +277,6 @@ class CfgWeapons { model = QPATHTOEF(apl,ACE_CSW_Bag.p3d); modes[] = {}; picture = "\rhsafrf\addons\rhs_heavyweapons\data\ico\rhs_SPG9_INS_ca.paa"; - magazines[] = { - QGVAR(mag_PG9V), - QGVAR(mag_PG9N), - QGVAR(mag_PG9VNT), - QGVAR(mag_OG9VM), - QGVAR(mag_OG9V) - }; }; class GVAR(spg9m_carry): GVAR(spg9_carry) { From 0b4a38de89573b20bce2829948342c25dc2027c8 Mon Sep 17 00:00:00 2001 From: Whigital Date: Thu, 30 Jan 2020 23:22:46 +0100 Subject: [PATCH 083/194] Remove GREF mag defs --- optionals/compat_rhs_gref3/CfgWeapons.hpp | 3 --- 1 file changed, 3 deletions(-) diff --git a/optionals/compat_rhs_gref3/CfgWeapons.hpp b/optionals/compat_rhs_gref3/CfgWeapons.hpp index 8e34040c5f..62cab63b7b 100644 --- a/optionals/compat_rhs_gref3/CfgWeapons.hpp +++ b/optionals/compat_rhs_gref3/CfgWeapons.hpp @@ -109,8 +109,5 @@ class CfgWeapons { model = QPATHTOEF(apl,ACE_CSW_Bag.p3d); modes[] = {}; picture = "\rhsafrf\addons\rhs_heavyweapons\data\mapico\icomap_DShKM_CA.paa"; - magazines[] = { - QEGVAR(csw,50Rnd_127x108_mag) - }; }; }; From 7e91ffc7a2b27c1c7fe1509c082655805ce6c9e7 Mon Sep 17 00:00:00 2001 From: Whigital Date: Fri, 31 Jan 2020 18:31:48 +0100 Subject: [PATCH 084/194] Update CSW author fields and remove inherited properties on ace_csw_staticAACarry --- addons/csw/CfgWeapons.hpp | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/addons/csw/CfgWeapons.hpp b/addons/csw/CfgWeapons.hpp index 4b1e12ca33..11caa0645a 100644 --- a/addons/csw/CfgWeapons.hpp +++ b/addons/csw/CfgWeapons.hpp @@ -27,6 +27,7 @@ class CfgWeapons { deploy = QGVAR(m3TripodLow); }; displayName = CSTRING(m3TripodLowFolded_displayName); + author = ECSTRING(common,ACETeam); }; class GVAR(kordCarryTripod): Launcher_Base_F { @@ -52,6 +53,7 @@ class CfgWeapons { deploy = QGVAR(kordTripodLow); }; displayName = CSTRING(kordTripodFoldedLow_displayName); + author = ECSTRING(common,ACETeam); }; class GVAR(m220CarryTripod): Launcher_Base_F { @@ -148,23 +150,13 @@ class CfgWeapons { }; class GVAR(staticAACarry): GVAR(staticATCarry) { - class ADDON { - type = "weapon"; - deployTime = 15; - pickupTime = 20; + class ADDON: ADDON { class assembleTo { GVAR(m3Tripod) = "B_static_AA_F"; }; }; - class WeaponSlotsInfo: WeaponSlotsInfo { - mass = 320; - }; displayName = CSTRING(StaticAABag_displayName); author = ECSTRING(common,ACETeam); - scope = 2; - model = QPATHTOEF(apl,ACE_CSW_Bag.p3d); - modes[] = {}; - picture = QPATHTOF(UI\StaticAT_Icon.paa); }; class GVAR(staticHMGCarry): Launcher_Base_F { From cf732c17fcb6f56c9f7ccbad6f0ebf34d1489c91 Mon Sep 17 00:00:00 2001 From: Whigital Date: Fri, 31 Jan 2020 18:33:16 +0100 Subject: [PATCH 085/194] Update USAF with WeaponSlot comment --- optionals/compat_rhs_usf3/CfgWeapons.hpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/optionals/compat_rhs_usf3/CfgWeapons.hpp b/optionals/compat_rhs_usf3/CfgWeapons.hpp index 45e4e8b982..db71543f6e 100644 --- a/optionals/compat_rhs_usf3/CfgWeapons.hpp +++ b/optionals/compat_rhs_usf3/CfgWeapons.hpp @@ -495,6 +495,8 @@ class CfgWeapons { }; }; class WeaponSlotsInfo: WeaponSlotsInfo { + // One WeaponSlot with a positive value for iconScale forces game to use icon overlay method. + // Required, because the inventory icon has no accessory variants. class MuzzleSlot { iconScale = 0.1; }; From b4ac3301c81bf0bf1696dcf428b6536b501788fe Mon Sep 17 00:00:00 2001 From: Whigital Date: Fri, 31 Jan 2020 18:33:57 +0100 Subject: [PATCH 086/194] Update AFRF with WeaponSlot comment and author property --- optionals/compat_rhs_afrf3/CfgWeapons.hpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/optionals/compat_rhs_afrf3/CfgWeapons.hpp b/optionals/compat_rhs_afrf3/CfgWeapons.hpp index 7b72daa108..fdfe7164e9 100644 --- a/optionals/compat_rhs_afrf3/CfgWeapons.hpp +++ b/optionals/compat_rhs_afrf3/CfgWeapons.hpp @@ -173,7 +173,9 @@ class CfgWeapons { }; }; class WeaponSlotsInfo: WeaponSlotsInfo { - class MuzzleSlot { + // One WeaponSlot with a positive value for iconScale forces game to use icon overlay method. + // Required, because the inventory icon has no accessory variants. + class MuzzleSlot { iconScale = 0.1; }; mass = 670; // 2B14 Mortar Weight @@ -286,6 +288,7 @@ class CfgWeapons { }; }; displayName = ECSTRING(csw,spg9m_tube); + author = ECSTRING(common,ACETeam); }; class GVAR(metis_carry): Launcher_Base_F { From 95c213fd2b5b4a58c4fb6881510aa9b0e4eff161 Mon Sep 17 00:00:00 2001 From: Whigital Date: Fri, 31 Jan 2020 18:34:44 +0100 Subject: [PATCH 087/194] Update GREF with WeaponSlot comment --- optionals/compat_rhs_gref3/CfgWeapons.hpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/optionals/compat_rhs_gref3/CfgWeapons.hpp b/optionals/compat_rhs_gref3/CfgWeapons.hpp index 62cab63b7b..a5e0a71e1a 100644 --- a/optionals/compat_rhs_gref3/CfgWeapons.hpp +++ b/optionals/compat_rhs_gref3/CfgWeapons.hpp @@ -98,6 +98,8 @@ class CfgWeapons { }; }; class WeaponSlotsInfo: WeaponSlotsInfo { + // One WeaponSlot with a positive value for iconScale forces game to use icon overlay method. + // Required, because the inventory icon has no accessory variants. class MuzzleSlot { iconScale = 0.1; }; From 3be84e946b8e14da00475eb98b56161b88de35c0 Mon Sep 17 00:00:00 2001 From: Whigital Date: Tue, 4 Feb 2020 12:15:45 +0100 Subject: [PATCH 088/194] [medical_status] Enable user input between death and respawn (#7502) Fix being unable to use any menus created while dead --- addons/medical_status/functions/fnc_handleKilled.sqf | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/addons/medical_status/functions/fnc_handleKilled.sqf b/addons/medical_status/functions/fnc_handleKilled.sqf index 25099a731d..989cbc78c2 100644 --- a/addons/medical_status/functions/fnc_handleKilled.sqf +++ b/addons/medical_status/functions/fnc_handleKilled.sqf @@ -38,4 +38,10 @@ TRACE_3("killer info",_killer,_instigator,_causeOfDeath); if (_unit isEqualTo (_unit getVariable [QGVAR(killed), objNull])) exitWith {}; // ensure event is only called once _unit setVariable [QGVAR(killed), _unit]; + +if (IS_UNCONSCIOUS(_unit)) then { + // Enable user input before respawn, in case mission is using respawnTemplates + ["unconscious", false] call EFUNC(common,setDisableUserInputStatus); +}; + ["ace_killed", [_unit, _causeOfDeath, _killer, _instigator]] call CBA_fnc_globalEvent; From cdf02f629e657cb6ca7263243df1bdad348a3d10 Mon Sep 17 00:00:00 2001 From: Whigital Date: Tue, 4 Feb 2020 12:17:25 +0100 Subject: [PATCH 089/194] Only set unconscious upon entering CA (#7503) Hopefully fix players being able to self interact when transitioning from cardiac arrest -> unconscious --- .../medical_status/functions/fnc_setCardiacArrestState.sqf | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/addons/medical_status/functions/fnc_setCardiacArrestState.sqf b/addons/medical_status/functions/fnc_setCardiacArrestState.sqf index 2dd54c9c4d..3dec76ab35 100644 --- a/addons/medical_status/functions/fnc_setCardiacArrestState.sqf +++ b/addons/medical_status/functions/fnc_setCardiacArrestState.sqf @@ -28,7 +28,9 @@ if (_active isEqualTo IN_CRDC_ARRST(_unit)) exitWith { TRACE_2("no change",_acti _unit setVariable [VAR_CRDC_ARRST, _active, true]; _unit setVariable [VAR_HEART_RATE, [40, 0] select _active, true]; -// Cardiac arrest is an extension of unconsciousness -[_unit, _active] call FUNC(setUnconsciousState); +// Cardiac arrest is an extension of unconsciousness, but only set when entering Cardiac arrest +if (_active) then { + [_unit, true] call FUNC(setUnconsciousState); +}; ["ace_cardiacArrest", [_unit, _active]] call CBA_fnc_localEvent; From d1c03cec1a36b30a5090ec21631d457972a714c0 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Wed, 5 Feb 2020 23:09:58 +0000 Subject: [PATCH 090/194] Only force enable input when player is killed (#7510) --- addons/medical_status/functions/fnc_handleKilled.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/medical_status/functions/fnc_handleKilled.sqf b/addons/medical_status/functions/fnc_handleKilled.sqf index 989cbc78c2..72d8131b82 100644 --- a/addons/medical_status/functions/fnc_handleKilled.sqf +++ b/addons/medical_status/functions/fnc_handleKilled.sqf @@ -39,7 +39,7 @@ TRACE_3("killer info",_killer,_instigator,_causeOfDeath); if (_unit isEqualTo (_unit getVariable [QGVAR(killed), objNull])) exitWith {}; // ensure event is only called once _unit setVariable [QGVAR(killed), _unit]; -if (IS_UNCONSCIOUS(_unit)) then { +if (_unit == player) then { // Enable user input before respawn, in case mission is using respawnTemplates ["unconscious", false] call EFUNC(common,setDisableUserInputStatus); }; From 10fa22ff2447d17a52a24c3d8cb99616a4fc5b22 Mon Sep 17 00:00:00 2001 From: Tim Beswick Date: Fri, 7 Feb 2020 19:24:41 +0000 Subject: [PATCH 091/194] Use object itself as centre for nearEntities in getProximityPlayers (#7512) --- addons/map_gestures/functions/fnc_getProximityPlayers.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/map_gestures/functions/fnc_getProximityPlayers.sqf b/addons/map_gestures/functions/fnc_getProximityPlayers.sqf index 9718095b01..4f65ec38c2 100644 --- a/addons/map_gestures/functions/fnc_getProximityPlayers.sqf +++ b/addons/map_gestures/functions/fnc_getProximityPlayers.sqf @@ -18,7 +18,7 @@ params ["_unit", "_range"]; -private _proximityPlayers = (getPos _unit) nearEntities [["CAMAnBase"], _range]; +private _proximityPlayers = _unit nearEntities [["CAMAnBase"], _range]; _proximityPlayers deleteAt (_proximityPlayers find _unit); _proximityPlayers append (crew vehicle _unit); From 65e1601114e368bb5665b9c6d4258f49a39d3051 Mon Sep 17 00:00:00 2001 From: diwako Date: Fri, 7 Feb 2020 20:27:40 +0100 Subject: [PATCH 092/194] Backblast - Fix damage disabled units receiving damage from backblast (#7505) * Fix damage disabled units receiving damage from backblast * Add variable check --- .../functions/fnc_overpressureDamage.sqf | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/addons/overpressure/functions/fnc_overpressureDamage.sqf b/addons/overpressure/functions/fnc_overpressureDamage.sqf index c898347969..119c19ebb2 100644 --- a/addons/overpressure/functions/fnc_overpressureDamage.sqf +++ b/addons/overpressure/functions/fnc_overpressureDamage.sqf @@ -56,12 +56,13 @@ TRACE_3("cache",_overpressureAngle,_overpressureRange,_overpressureDamage); // If the target is the ACE_player if (_x == ACE_player) then {[_damage * 100] call BIS_fnc_bloodEffect}; - if (isClass (configFile >> "CfgPatches" >> "ACE_Medical")) then { - [_x, _damage, "body", "backblast", _firer] call EFUNC(medical,addDamageToUnit); - } else { - TRACE_1("",isDamageAllowed _x); - if (!isDamageAllowed _x) exitWith {}; // Skip damage if not allowed - _x setDamage (damage _x + _damage); + TRACE_1("",isDamageAllowed _x); + if (isDamageAllowed _x && {_x getVariable [QEGVAR(medical,allowDamage), true]}) then { + if (isClass (configFile >> "CfgPatches" >> "ACE_Medical")) then { + [_x, _damage, "body", "backblast", _firer] call EFUNC(medical,addDamageToUnit); + } else { + _x setDamage (damage _x + _damage); + }; }; #ifdef DEBUG_MODE_FULL From f460eca428e32792ec62690954d07d2019846e7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Dahlgren?= Date: Sat, 8 Feb 2020 04:33:09 +0100 Subject: [PATCH 093/194] Cook Off - Adjust players only settings check (#7419) --- addons/cookoff/functions/fnc_handleDamage.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/cookoff/functions/fnc_handleDamage.sqf b/addons/cookoff/functions/fnc_handleDamage.sqf index 60dffa452b..88ea717d90 100644 --- a/addons/cookoff/functions/fnc_handleDamage.sqf +++ b/addons/cookoff/functions/fnc_handleDamage.sqf @@ -25,7 +25,7 @@ if (damage _vehicle >= 1) exitWith {}; if (_vehicle getVariable [QGVAR(enable), GVAR(enable)] in [0, false]) exitWith {}; // Check for players and exit if none found and the enable for players only setting is true -if (_vehicle getVariable [QGVAR(enable), GVAR(enable)] isEqualTo 2 && {fullCrew [_vehicle, "", false] findIf {isPlayer (_x select 0)} == -1}) exitWith {}; +if (_vehicle getVariable [QGVAR(enable), GVAR(enable)] isEqualTo 1 && {fullCrew [_vehicle, "", false] findIf {isPlayer (_x select 0)} == -1}) exitWith {}; // get hitpoint name private _hitpoint = "#structural"; From dd7ae389f932491dbde5a78b4581cd40ca3990d4 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Sat, 8 Feb 2020 19:43:42 -0600 Subject: [PATCH 094/194] Common - Fix canDig returning non-bool (#7516) --- addons/common/functions/fnc_canDig.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/common/functions/fnc_canDig.sqf b/addons/common/functions/fnc_canDig.sqf index e96b44a478..a75f32b5d4 100644 --- a/addons/common/functions/fnc_canDig.sqf +++ b/addons/common/functions/fnc_canDig.sqf @@ -31,7 +31,7 @@ private _surfaceDust = getNumber (_config >> "dust"); TRACE_2("Surface",_surfaceType,_surfaceDust); if (isNumber (_config >> "ACE_canDig")) then { - getNumber (_config >> "ACE_canDig") // return + (getNumber (_config >> "ACE_canDig")) == 1 // return } else { !(_surfaceType in DIG_SURFACE_BLACKLIST) && {(_surfaceDust >= 0.1) || {_surfaceType in DIG_SURFACE_WHITELIST}} // return }; From ab03def5644ace6dfe11ecc8a0d53e624c426a58 Mon Sep 17 00:00:00 2001 From: jonpas Date: Mon, 10 Feb 2020 23:58:03 +0100 Subject: [PATCH 095/194] Add Pull Request title standard to PR Template (#7361) --- .github/PULL_REQUEST_TEMPLATE.md | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 69565c700e..ea83a609e3 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -3,3 +3,4 @@ - Each change in a separate line - Include documentation if applicable - Respect the [Development Guidelines](https://ace3mod.com/wiki/development/) +- Follow title standard `Component - Add|Fix|Improve|Change|Make|Remove bananas` From 57b411b8a4e128069958ce4451aeb266cc3a61b9 Mon Sep 17 00:00:00 2001 From: Whigital Date: Tue, 11 Feb 2020 23:40:15 +0100 Subject: [PATCH 096/194] conform isnil checking: arsenal --- addons/arsenal/XEH_postInit.sqf | 4 ++-- addons/arsenal/functions/fnc_fillLeftPanel.sqf | 2 +- addons/arsenal/functions/fnc_fillRightPanel.sqf | 2 +- addons/arsenal/functions/fnc_handleStats.sqf | 2 +- addons/arsenal/functions/fnc_message.sqf | 2 +- addons/arsenal/functions/fnc_onSelChangedLeft.sqf | 4 ++-- addons/arsenal/functions/fnc_removeBox.sqf | 2 +- 7 files changed, 9 insertions(+), 9 deletions(-) diff --git a/addons/arsenal/XEH_postInit.sqf b/addons/arsenal/XEH_postInit.sqf index dcc5c7c7b5..664f175bae 100644 --- a/addons/arsenal/XEH_postInit.sqf +++ b/addons/arsenal/XEH_postInit.sqf @@ -24,7 +24,7 @@ GVAR(lastSearchTextLoadouts) = ""; [QGVAR(loadoutUnshared), { params ["_contentPanelCtrl" , "_playerName", "_loadoutName"]; - if (!(isNil QGVAR(currentLoadoutsTab)) && {GVAR(currentLoadoutsTab) == IDC_buttonSharedLoadouts}) then { + if ((!isNil QGVAR(currentLoadoutsTab)) && {GVAR(currentLoadoutsTab) == IDC_buttonSharedLoadouts}) then { private _dataToCheck = _playerName + _loadoutName; @@ -52,7 +52,7 @@ GVAR(lastSearchTextLoadouts) = ""; params ["_contentPanelCtrl" ,"_loadoutArgs"]; _loadoutArgs params ["_playerName", "_loadoutName", "_loadoutData"]; - if (!(isNil QGVAR(currentLoadoutsTab)) && {GVAR(currentLoadoutsTab) == IDC_buttonSharedLoadouts}) then { + if ((!isNil QGVAR(currentLoadoutsTab)) && {GVAR(currentLoadoutsTab) == IDC_buttonSharedLoadouts}) then { private _curSelData =_contentPanelCtrl lnbData [(lnbCurSelRow _contentPanelCtrl), 1]; ([_loadoutData] call FUNC(verifyLoadout)) params ["_loadout", "_nullItemsAmount", "_unavailableItemsAmount"]; diff --git a/addons/arsenal/functions/fnc_fillLeftPanel.sqf b/addons/arsenal/functions/fnc_fillLeftPanel.sqf index 5009f46e3a..a662b91eb1 100644 --- a/addons/arsenal/functions/fnc_fillLeftPanel.sqf +++ b/addons/arsenal/functions/fnc_fillLeftPanel.sqf @@ -18,7 +18,7 @@ params ["_display", "_control"]; private _ctrlIDC = ctrlIDC _control; -if !(isNil QGVAR(currentLeftPanel)) then { +if (!isNil QGVAR(currentLeftPanel)) then { private _previousCtrlBackground = _display displayCtrl (GVAR(currentLeftPanel) - 1); _previousCtrlBackground ctrlSetFade 1; _previousCtrlBackground ctrlCommit FADE_DELAY; diff --git a/addons/arsenal/functions/fnc_fillRightPanel.sqf b/addons/arsenal/functions/fnc_fillRightPanel.sqf index 626afecc3d..e683c82d01 100644 --- a/addons/arsenal/functions/fnc_fillRightPanel.sqf +++ b/addons/arsenal/functions/fnc_fillRightPanel.sqf @@ -19,7 +19,7 @@ params ["_display", "_control"]; private _ctrlIDC = ctrlIDC _control; // Fade old control background -if !(isNil QGVAR(currentRightPanel)) then { +if (!isNil QGVAR(currentRightPanel)) then { private _previousCtrlBackground = _display displayCtrl (GVAR(currentRightPanel) - 1); _previousCtrlBackground ctrlSetFade 1; _previousCtrlBackground ctrlCommit FADE_DELAY; diff --git a/addons/arsenal/functions/fnc_handleStats.sqf b/addons/arsenal/functions/fnc_handleStats.sqf index 0c57f6c721..26597716ea 100644 --- a/addons/arsenal/functions/fnc_handleStats.sqf +++ b/addons/arsenal/functions/fnc_handleStats.sqf @@ -46,7 +46,7 @@ private _hideUnusedFnc = { } forEach _numbers; }; -if !(isNil "_itemCfg") then { +if (!isNil "_itemCfg") then { private _handleStatsFnc = { params ["_statsIndex", "_leftPanel"]; diff --git a/addons/arsenal/functions/fnc_message.sqf b/addons/arsenal/functions/fnc_message.sqf index 8fbd48748f..f3e6abb3e6 100644 --- a/addons/arsenal/functions/fnc_message.sqf +++ b/addons/arsenal/functions/fnc_message.sqf @@ -19,7 +19,7 @@ params ["_display", "_message"]; private _messageBoxCtrl = _display displayCtrl IDC_message; private _handle = _messageBoxCtrl getVariable QGVAR(messageBoxHandle); -if !(isNil "_handle") then { +if (!isNil "_handle") then { terminate _handle; }; diff --git a/addons/arsenal/functions/fnc_onSelChangedLeft.sqf b/addons/arsenal/functions/fnc_onSelChangedLeft.sqf index 2322853e1a..a314a34965 100644 --- a/addons/arsenal/functions/fnc_onSelChangedLeft.sqf +++ b/addons/arsenal/functions/fnc_onSelChangedLeft.sqf @@ -23,10 +23,10 @@ private _display = ctrlParent _control; private _item = [_control lnbData [_curSel, 0], _control lbData _curSel] select !(ctrlType _control == 102); private _weaponDefaultRightPanel = _display displayCtrl IDC_buttonOptic; -private _selectCorrectPanelWeapon = [_weaponDefaultRightPanel, _display displayCtrl GVAR(currentRightPanel)] select (!(isNil QGVAR(currentRightPanel)) && {GVAR(currentRightPanel) in [RIGHT_PANEL_ACC_IDCS, IDC_buttonCurrentMag, IDC_buttonCurrentMag2]}); +private _selectCorrectPanelWeapon = [_weaponDefaultRightPanel, _display displayCtrl GVAR(currentRightPanel)] select ((!isNil QGVAR(currentRightPanel)) && {GVAR(currentRightPanel) in [RIGHT_PANEL_ACC_IDCS, IDC_buttonCurrentMag, IDC_buttonCurrentMag2]}); private _containerDefaultRightPanel = _display displayCtrl IDC_buttonMisc; -private _selectCorrectPanelContainer = [_containerDefaultRightPanel, _display displayCtrl GVAR(currentRightPanel)] select (!(isNil QGVAR(currentRightPanel)) && {GVAR(currentRightPanel) in [RIGHT_PANEL_ITEMS_IDCS]}); +private _selectCorrectPanelContainer = [_containerDefaultRightPanel, _display displayCtrl GVAR(currentRightPanel)] select ((!isNil QGVAR(currentRightPanel)) && {GVAR(currentRightPanel) in [RIGHT_PANEL_ITEMS_IDCS]}); private _fnc_clearPreviousWepMags = { private _compatibleMags = getArray (configfile >> "cfgweapons" >> _baseWeapon >> "magazines"); diff --git a/addons/arsenal/functions/fnc_removeBox.sqf b/addons/arsenal/functions/fnc_removeBox.sqf index ed4ec7de4d..7620529ef3 100644 --- a/addons/arsenal/functions/fnc_removeBox.sqf +++ b/addons/arsenal/functions/fnc_removeBox.sqf @@ -23,7 +23,7 @@ if (isNull _object || {isNil QGVAR(EHIDArray)}) exitWith {}; if (_global && {isMultiplayer}) then { private _ID = (GVAR(EHIDArray) select {_x select 1 == _object}) select 0; - if !(isNil "_ID") then { + if (!isNil "_ID") then { [_ID select 0] call CBA_fnc_removeGlobalEventJIP; GVAR(EHIDArray) deleteAt (GVAR(EHIDArray) find _ID); publicVariable QGVAR(EHIDArray); From 2688cdd95f421d60aeabd80d82e203eb4dac708b Mon Sep 17 00:00:00 2001 From: Whigital Date: Tue, 11 Feb 2020 23:41:18 +0100 Subject: [PATCH 097/194] conform isnil checking: cargo --- addons/cargo/functions/fnc_removeCargoItem.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/cargo/functions/fnc_removeCargoItem.sqf b/addons/cargo/functions/fnc_removeCargoItem.sqf index ede9c68c94..ee6de29cab 100644 --- a/addons/cargo/functions/fnc_removeCargoItem.sqf +++ b/addons/cargo/functions/fnc_removeCargoItem.sqf @@ -53,7 +53,7 @@ private _continue = if (_item isEqualType objNull) then { }; } forEach _loaded; - FILTER(_loaded,_x != nil); + FILTER(_loaded,!isNil "_x"); true }; From 80352519e193fa0b7344135b2adecd7244f1a469 Mon Sep 17 00:00:00 2001 From: Whigital Date: Tue, 11 Feb 2020 23:42:08 +0100 Subject: [PATCH 098/194] conform isnil checking: common --- addons/common/functions/fnc_cbaSettings.sqf | 4 ++-- addons/common/functions/fnc_parseList.sqf | 2 +- addons/common/functions/fnc_readSettingFromModule.sqf | 2 +- addons/common/functions/fnc_readSettingsFromParamsArray.sqf | 2 +- addons/common/functions/fnc_receiveRequest.sqf | 2 +- addons/common/functions/fnc_resetAllDefaults.sqf | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/addons/common/functions/fnc_cbaSettings.sqf b/addons/common/functions/fnc_cbaSettings.sqf index 273c72323e..65a07c6e76 100644 --- a/addons/common/functions/fnc_cbaSettings.sqf +++ b/addons/common/functions/fnc_cbaSettings.sqf @@ -73,7 +73,7 @@ GVAR(settingsMovedToSQF) = []; #ifdef DEBUG_MODE_FULL INFO_1("checking settingsMovedToSQF [%1]",count GVAR(settingsMovedToSQF)); { - if (isNil _x) then { WARNING_1("setting [%1] NOT moved to sqf",_x); }; + if (isNil "_x") then { WARNING_1("setting [%1] NOT moved to sqf",_x); }; } forEach GVAR(settingsMovedToSQF); #endif }] call CBA_fnc_addEventHandler; @@ -107,7 +107,7 @@ for "_index" from 0 to (_countOptions - 1) do { if ((toLower _settingName) in GVAR(cbaSettings_forcedSettings)) then { WARNING_1("Setting [%1] - Already Forced - ignoring missionConfig",_varName); } else { - if ((isNil _settingName) && {(getNumber (_settingsConfig >> _settingName >> "movedToSQF")) == 0}) then { + if ((isNil "_settingName") && {(getNumber (_settingsConfig >> _settingName >> "movedToSQF")) == 0}) then { // New setting, that was first defined in missionConfigFile INFO_1("Creating new CBA setting for ace_setting from mission config [%1]",_settingName); [_optionEntry] call FUNC(cbaSettings_loadFromConfig); diff --git a/addons/common/functions/fnc_parseList.sqf b/addons/common/functions/fnc_parseList.sqf index d3e2871f44..b6a3d079a7 100644 --- a/addons/common/functions/fnc_parseList.sqf +++ b/addons/common/functions/fnc_parseList.sqf @@ -43,7 +43,7 @@ if (_checkNil) then { private _nilCheckedList = []; { - if !(isNil _x) then { + if (!isNil "_x") then { _nilCheckedList pushBack (missionNamespace getVariable _x); }; false diff --git a/addons/common/functions/fnc_readSettingFromModule.sqf b/addons/common/functions/fnc_readSettingFromModule.sqf index d61671d604..9ddc293105 100644 --- a/addons/common/functions/fnc_readSettingFromModule.sqf +++ b/addons/common/functions/fnc_readSettingFromModule.sqf @@ -22,7 +22,7 @@ params ["_logic", "_settingName", "_moduleVariable"]; // Check if the variable is already defined -if (isNil _settingName) exitWith { +if (isNil "_settingName") exitWith { ERROR_1("readSettingFromModule - param [%1] is not an ace_setting", _settingName); }; diff --git a/addons/common/functions/fnc_readSettingsFromParamsArray.sqf b/addons/common/functions/fnc_readSettingsFromParamsArray.sqf index e205fb15bf..7f0463a04d 100644 --- a/addons/common/functions/fnc_readSettingsFromParamsArray.sqf +++ b/addons/common/functions/fnc_readSettingsFromParamsArray.sqf @@ -31,7 +31,7 @@ TRACE_1("Reading missionConfigFile params",_paramsArray); TRACE_3("ace_setting",_title,_settingName,_settingValue); // Check if the variable is already defined - if (isNil _settingName) exitWith { + if (isNil "_settingName") exitWith { ERROR_1("readSettingsFromParamsArray - param [%1] is not an ace_setting", _settingName); }; diff --git a/addons/common/functions/fnc_receiveRequest.sqf b/addons/common/functions/fnc_receiveRequest.sqf index e2f25ed734..3a3d0f6ec5 100644 --- a/addons/common/functions/fnc_receiveRequest.sqf +++ b/addons/common/functions/fnc_receiveRequest.sqf @@ -33,7 +33,7 @@ if (isLocalized _requestMessage) then { hint format ["%1", _requestMessage]; // @todo ? -if !(isNil QGVAR(RECIEVE_REQUEST_TIME_OUT_SCRIPT)) then { +if (!isNil QGVAR(RECIEVE_REQUEST_TIME_OUT_SCRIPT)) then { terminate GVAR(RECIEVE_REQUEST_TIME_OUT_SCRIPT); }; diff --git a/addons/common/functions/fnc_resetAllDefaults.sqf b/addons/common/functions/fnc_resetAllDefaults.sqf index dc638e4947..be2b5a6cc8 100644 --- a/addons/common/functions/fnc_resetAllDefaults.sqf +++ b/addons/common/functions/fnc_resetAllDefaults.sqf @@ -23,7 +23,7 @@ _unit setVariable ["ACE_isUnconscious", nil, true]; if (isPlayer _unit) then { [true] call FUNC(setVolume); - if !(isNil QGVAR(DISABLE_USER_INPUT_COLLECTION)) then { + if (!isNil QGVAR(DISABLE_USER_INPUT_COLLECTION)) then { // clear all disable user input { [_x, false] call FUNC(setDisableUserInputStatus); From c33112333e38bfe10c04fd2555816f9601d752e9 Mon Sep 17 00:00:00 2001 From: Whigital Date: Tue, 11 Feb 2020 23:42:25 +0100 Subject: [PATCH 099/194] conform isnil checking: fastroping --- addons/fastroping/functions/fnc_onRopeBreak.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/fastroping/functions/fnc_onRopeBreak.sqf b/addons/fastroping/functions/fnc_onRopeBreak.sqf index 023e53f762..9c089f5c91 100644 --- a/addons/fastroping/functions/fnc_onRopeBreak.sqf +++ b/addons/fastroping/functions/fnc_onRopeBreak.sqf @@ -42,7 +42,7 @@ private _unit = { if (_x isKindOf "CAManBase") exitWith {_x}; } forEach (attachedObjects (_brokenRope select 3)); -if !(isNil "_unit") then { +if (!isNil "_unit") then { if (_part == "top") then { detach _unit; } else { From b8329e8937f620095973bde7b0c38d548fc33e9e Mon Sep 17 00:00:00 2001 From: Whigital Date: Tue, 11 Feb 2020 23:42:34 +0100 Subject: [PATCH 100/194] conform isnil checking: gunbag --- addons/gunbag/XEH_preInit.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/gunbag/XEH_preInit.sqf b/addons/gunbag/XEH_preInit.sqf index 8f313ba472..c3a98792f6 100644 --- a/addons/gunbag/XEH_preInit.sqf +++ b/addons/gunbag/XEH_preInit.sqf @@ -35,7 +35,7 @@ PREP_RECOMPILE_END; [QEGVAR(arsenal,displayClosed), { - if !(isNil QGVAR(arsenalCache)) then { + if (!isNil QGVAR(arsenalCache)) then { (backpackContainer EGVAR(arsenal,center)) setVariable [QGVAR(gunbagWeapon),GVAR(arsenalCache), true]; }; From 1def9cbcb75598dd6dd837e782c933b66d669a16 Mon Sep 17 00:00:00 2001 From: Whigital Date: Tue, 11 Feb 2020 23:43:08 +0100 Subject: [PATCH 101/194] conform isnil checking: interact_menu --- addons/interact_menu/functions/fnc_compileMenu.sqf | 4 ++-- addons/interact_menu/functions/fnc_compileMenuSelfAction.sqf | 4 ++-- addons/interact_menu/functions/fnc_compileMenuZeus.sqf | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/addons/interact_menu/functions/fnc_compileMenu.sqf b/addons/interact_menu/functions/fnc_compileMenu.sqf index 7c30196c2b..7f36247e22 100644 --- a/addons/interact_menu/functions/fnc_compileMenu.sqf +++ b/addons/interact_menu/functions/fnc_compileMenu.sqf @@ -24,7 +24,7 @@ if (_target isEqualType objNull) then { private _namespace = GVAR(ActNamespace); // Exit if the action menu is already compiled for this class -if !(isNil {_namespace getVariable _objectType}) exitWith {}; +if (!isNil {_namespace getVariable _objectType}) exitWith {}; if (_objectType isKindOf "VirtualMan_F") exitWith { // these have config: isPlayableLogic = 1 TRACE_1("skipping playable logic",_objectType); @@ -41,7 +41,7 @@ private _recurseFnc = { { private _entryCfg = _x; - if(isClass _entryCfg) then { + if (isClass _entryCfg) then { private _displayName = getText (_entryCfg >> "displayName"); private _distance = _parentDistance; if (isNumber (_entryCfg >> "distance")) then {_distance = getNumber (_entryCfg >> "distance");}; diff --git a/addons/interact_menu/functions/fnc_compileMenuSelfAction.sqf b/addons/interact_menu/functions/fnc_compileMenuSelfAction.sqf index 8a79fe99e1..879ca7b138 100644 --- a/addons/interact_menu/functions/fnc_compileMenuSelfAction.sqf +++ b/addons/interact_menu/functions/fnc_compileMenuSelfAction.sqf @@ -24,7 +24,7 @@ if (_target isEqualType objNull) then { private _namespace = GVAR(ActSelfNamespace); // Exit if the action menu is already compiled for this class -if !(isNil {_namespace getVariable _objectType}) exitWith {}; +if (!isNil {_namespace getVariable _objectType}) exitWith {}; private _recurseFnc = { @@ -34,7 +34,7 @@ private _recurseFnc = { { private _entryCfg = _x; - if(isClass _entryCfg) then { + if (isClass _entryCfg) then { private _displayName = getText (_entryCfg >> "displayName"); private _icon = if (isArray (_entryCfg >> "icon")) then { diff --git a/addons/interact_menu/functions/fnc_compileMenuZeus.sqf b/addons/interact_menu/functions/fnc_compileMenuZeus.sqf index af28bf2284..c1f4dc0858 100644 --- a/addons/interact_menu/functions/fnc_compileMenuZeus.sqf +++ b/addons/interact_menu/functions/fnc_compileMenuZeus.sqf @@ -16,7 +16,7 @@ */ // Exit if the action menu is already compiled for zeus -if !(isNil {missionNamespace getVariable [QGVAR(ZeusActions), nil]}) exitWith {}; +if (!isNil {missionNamespace getVariable [QGVAR(ZeusActions), nil]}) exitWith {}; private _recurseFnc = { params ["_actionsCfg"]; @@ -24,7 +24,7 @@ private _recurseFnc = { { private _entryCfg = _x; - if(isClass _entryCfg) then { + if (isClass _entryCfg) then { private _displayName = getText (_entryCfg >> "displayName"); private _icon = if (isArray (_entryCfg >> "icon")) then { From 7fe5401f6a3c8b51228800cc59a074bc8f958135 Mon Sep 17 00:00:00 2001 From: Whigital Date: Tue, 11 Feb 2020 23:43:20 +0100 Subject: [PATCH 102/194] conform isnil checking: laser --- addons/laser/functions/fnc_shootRay.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/laser/functions/fnc_shootRay.sqf b/addons/laser/functions/fnc_shootRay.sqf index ecd16fc0d4..1fff8d5718 100644 --- a/addons/laser/functions/fnc_shootRay.sqf +++ b/addons/laser/functions/fnc_shootRay.sqf @@ -46,7 +46,7 @@ if (!(_intersects isEqualTo [])) then { TRACE_3("", _resultPos, _distance, _intersects); #ifdef DRAW_LASER_INFO -if !(isNil "_resultPos") then { +if (!isNil "_resultPos") then { private _text = [_distance, 4, 0] call CBA_fnc_formatNumber; drawIcon3D ["\a3\ui_f\data\IGUI\Cfg\Cursors\selectover_ca.paa", [0, 1, 0, 1], ASLtoAGL _resultPos, 0.5, 0.5, 0, _text, 0.4, 0.025, "TahomaB"]; drawLine3D [ASLtoAGL _posASL, ASLtoAGL _resultPos, [0,1,0,1]]; From dbd6f39794ad71ceb752ecb198d46883c827abd3 Mon Sep 17 00:00:00 2001 From: Whigital Date: Tue, 11 Feb 2020 23:43:40 +0100 Subject: [PATCH 103/194] conform isnil checking: medical_feedback --- addons/medical_feedback/XEH_postInit.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/medical_feedback/XEH_postInit.sqf b/addons/medical_feedback/XEH_postInit.sqf index 2f18bc1583..66080c984c 100644 --- a/addons/medical_feedback/XEH_postInit.sqf +++ b/addons/medical_feedback/XEH_postInit.sqf @@ -117,7 +117,7 @@ GVAR(bloodTickCounter) = 0; #ifdef DISABLE_VANILLA_DAMAGE_EFFECTS TRACE_1("disabling vanilla bleeding feedback effects",_this); [{ - {isNil _x} count [ + {isNil "_x"} count [ "BIS_fnc_feedback_damageCC", "BIS_fnc_feedback_damageRadialBlur", "BIS_fnc_feedback_damageBlur" From 0439cd87389bf808fd8235b795661ab040ccc677 Mon Sep 17 00:00:00 2001 From: Whigital Date: Tue, 11 Feb 2020 23:43:54 +0100 Subject: [PATCH 104/194] conform isnil checking: medical_treatment --- addons/medical_treatment/functions/fnc_onMedicationUsage.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/medical_treatment/functions/fnc_onMedicationUsage.sqf b/addons/medical_treatment/functions/fnc_onMedicationUsage.sqf index 1f9ef981dd..bc96aa979c 100644 --- a/addons/medical_treatment/functions/fnc_onMedicationUsage.sqf +++ b/addons/medical_treatment/functions/fnc_onMedicationUsage.sqf @@ -53,7 +53,7 @@ if !(_overdosedMedications isEqualTo []) then { TRACE_1("CriticalVitals Event",_target); // make unconscious [QEGVAR(medical,CriticalVitals), _target] call CBA_fnc_localEvent; }; - if (isNil _onOverDose) then { + if (isNil "_onOverDose") then { _onOverDose = compile _onOverDose; } else { _onOverDose = missionNamespace getVariable _onOverDose; From b5a09088244a923a566385ffff1dc64786bb3f37 Mon Sep 17 00:00:00 2001 From: Whigital Date: Tue, 11 Feb 2020 23:44:07 +0100 Subject: [PATCH 105/194] conform isnil checking: modules --- addons/modules/XEH_postInit.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/modules/XEH_postInit.sqf b/addons/modules/XEH_postInit.sqf index c6892046fe..062b005589 100644 --- a/addons/modules/XEH_postInit.sqf +++ b/addons/modules/XEH_postInit.sqf @@ -20,7 +20,7 @@ private _isPersistent = getNumber (_config >> "isPersistent") > 0 || getNumber (_config >> "isGlobal") > 1; private _isSingular = getNumber (_config >> "isSingular") > 0; private _function = getText (_config >> "function"); - if (isNil _function) then { + if (isNil "_function") then { _function = compile _function; } else { _function = missionNamespace getVariable _function; From 84649c8c8d1b3bfefc21efcd745558a0a6f55ec2 Mon Sep 17 00:00:00 2001 From: Whigital Date: Tue, 11 Feb 2020 23:44:42 +0100 Subject: [PATCH 106/194] conform isnil checking: overpressure --- addons/overpressure/functions/fnc_firedEHBB.sqf | 2 +- addons/overpressure/functions/fnc_firedEHOP.sqf | 2 +- addons/overpressure/functions/fnc_overpressureDamage.sqf | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/addons/overpressure/functions/fnc_firedEHBB.sqf b/addons/overpressure/functions/fnc_firedEHBB.sqf index 2d1d0f783c..add6468472 100644 --- a/addons/overpressure/functions/fnc_firedEHBB.sqf +++ b/addons/overpressure/functions/fnc_firedEHBB.sqf @@ -20,7 +20,7 @@ TRACE_10("firedEH:",_unit, _weapon, _muzzle, _mode, _ammo, _magazine, _projectil // Bake variable name and check if the variable exists, call the caching function otherwise private _varName = format [QGVAR(values%1%2%3), _weapon, _ammo, _magazine]; -private _var = if (isNil _varName) then { +private _var = if (isNil "_varName") then { [_weapon, _ammo, _magazine] call FUNC(cacheOverPressureValues); } else { missionNameSpace getVariable _varName; diff --git a/addons/overpressure/functions/fnc_firedEHOP.sqf b/addons/overpressure/functions/fnc_firedEHOP.sqf index 5871fae9b8..95485f890d 100644 --- a/addons/overpressure/functions/fnc_firedEHOP.sqf +++ b/addons/overpressure/functions/fnc_firedEHOP.sqf @@ -20,7 +20,7 @@ TRACE_10("firedEH:",_unit, _weapon, _muzzle, _mode, _ammo, _magazine, _projectil // Bake variable name and check if the variable exists, call the caching function otherwise private _varName = format [QGVAR(values%1%2%3), _weapon, _ammo, _magazine]; -private _var = if (isNil _varName) then { +private _var = if (isNil "_varName") then { [_weapon, _ammo, _magazine] call FUNC(cacheOverPressureValues); } else { missionNameSpace getVariable _varName; diff --git a/addons/overpressure/functions/fnc_overpressureDamage.sqf b/addons/overpressure/functions/fnc_overpressureDamage.sqf index 119c19ebb2..b2f01c0ddf 100644 --- a/addons/overpressure/functions/fnc_overpressureDamage.sqf +++ b/addons/overpressure/functions/fnc_overpressureDamage.sqf @@ -25,7 +25,7 @@ params ["_firer", "_posASL", "_direction", "_weapon", "_magazine", "_ammo"]; // Bake variable name and check if the variable exists, call the caching function otherwise private _varName = format [QGVAR(values%1%2%3), _weapon, _ammo, _magazine]; -private _var = if (isNil _varName) then { +private _var = if (isNil "_varName") then { [_weapon, _ammo, _magazine] call FUNC(cacheOverPressureValues); } else { missionNameSpace getVariable _varName; From 22c44629f7a317a66e0e042e6e45a87b6b6cb4fe Mon Sep 17 00:00:00 2001 From: Whigital Date: Tue, 11 Feb 2020 23:44:53 +0100 Subject: [PATCH 107/194] conform isnil checking: rearm --- addons/rearm/functions/fnc_readSupplyCounter.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/rearm/functions/fnc_readSupplyCounter.sqf b/addons/rearm/functions/fnc_readSupplyCounter.sqf index 11abdc3ae8..238e618dd2 100644 --- a/addons/rearm/functions/fnc_readSupplyCounter.sqf +++ b/addons/rearm/functions/fnc_readSupplyCounter.sqf @@ -51,7 +51,7 @@ if (GVAR(supply) == 1) then { private _numChars = count (localize LSTRING(Hint_RemainingAmmo)); private _text = ""; private _magazines = _truck getVariable QGVAR(magazineSupply); - if !(isNil "_magazines") then { + if (!isNil "_magazines") then { { _x params ["_magazineClass", "_rounds"]; private _line = format ["%1: %2", _magazineClass call FUNC(getMagazineName), _rounds]; From 1872b06235247d08f29f10b7b75ccae5ec7efea8 Mon Sep 17 00:00:00 2001 From: Whigital Date: Tue, 11 Feb 2020 23:46:05 +0100 Subject: [PATCH 108/194] conform isnil checking: repair --- addons/repair/functions/fnc_canRepair.sqf | 4 ++-- addons/repair/functions/fnc_repair.sqf | 8 ++++---- addons/repair/functions/fnc_repair_failure.sqf | 2 +- addons/repair/functions/fnc_repair_success.sqf | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/addons/repair/functions/fnc_canRepair.sqf b/addons/repair/functions/fnc_canRepair.sqf index 8172e1d188..495e3dd874 100644 --- a/addons/repair/functions/fnc_canRepair.sqf +++ b/addons/repair/functions/fnc_canRepair.sqf @@ -48,7 +48,7 @@ if (count _items > 0 && {!([_caller, _items] call FUNC(hasItems))}) exitWith {fa private _return = true; if (getText (_config >> "condition") != "") then { private _condition = getText (_config >> "condition"); - if (isNil _condition) then { + if (isNil "_condition") then { _condition = compile _condition; } else { _condition = missionNamespace getVariable _condition; @@ -77,7 +77,7 @@ if (!("All" in _repairLocations)) then { if (_x == "field") exitWith {_return = true;}; if (_x == "RepairFacility" && _repairFacility) exitWith {_return = true;}; if (_x == "RepairVehicle" && _repairVeh) exitWith {_return = true;}; - if !(isNil _x) exitWith { + if (!isNil "_x") exitWith { private _val = missionNamespace getVariable _x; if (_val isEqualType 0) then { _return = switch (_val) do { diff --git a/addons/repair/functions/fnc_repair.sqf b/addons/repair/functions/fnc_repair.sqf index 10aea66823..c75cf03a0b 100644 --- a/addons/repair/functions/fnc_repair.sqf +++ b/addons/repair/functions/fnc_repair.sqf @@ -54,7 +54,7 @@ if (count _items > 0 && {!([_caller, _items] call FUNC(hasItems))}) exitWith {fa private _return = true; if (getText (_config >> "condition") != "") then { private _condition = getText (_config >> "condition"); - if (isNil _condition) then { + if (isNil "_condition") then { _condition = compile _condition; } else { _condition = missionNamespace getVariable _condition; @@ -82,7 +82,7 @@ if (!("All" in _repairLocations)) then { if (_x == "field") exitWith {_return = true;}; if (_x == "RepairFacility" && _repairFacility) exitWith {_return = true;}; if (_x == "RepairVehicle" && _repairVeh) exitWith {_return = true;}; - if !(isNil _x) exitWith { + if (!isNil "_x") exitWith { private _val = missionNamespace getVariable _x; if (_val isEqualType 0) then { _return = switch (_val) do { @@ -139,7 +139,7 @@ if (_callbackProgress == "") then { (alive _target) && {(abs speed _target) < 1} // make sure vehicle doesn't drive off }; } else { - if (isNil _callbackProgress) then { + if (isNil "_callbackProgress") then { _callbackProgress = compile _callbackProgress; } else { _callbackProgress = missionNamespace getVariable _callbackProgress; @@ -192,7 +192,7 @@ if (_repairTime < 0) then { } else { if (isText (_config >> "repairingTime")) exitWith { private _repairTimeConfig = getText (_config >> "repairingTime"); - if (isNil _repairTimeConfig) then { + if (isNil "_repairTimeConfig") then { _repairTimeConfig = compile _repairTimeConfig; } else { _repairTimeConfig = missionNamespace getVariable _repairTimeConfig; diff --git a/addons/repair/functions/fnc_repair_failure.sqf b/addons/repair/functions/fnc_repair_failure.sqf index 83cce85e0d..b1996800bc 100644 --- a/addons/repair/functions/fnc_repair_failure.sqf +++ b/addons/repair/functions/fnc_repair_failure.sqf @@ -56,7 +56,7 @@ if (_weaponSelect != "") then { private _config = (ConfigFile >> "ACE_Repair" >> "Actions" >> _className); private _callback = getText (_config >> "callbackFailure"); -if (isNil _callback) then { +if (isNil "_callback") then { _callback = compile _callback; } else { _callback = missionNamespace getVariable _callback; diff --git a/addons/repair/functions/fnc_repair_success.sqf b/addons/repair/functions/fnc_repair_success.sqf index a86be84244..62b0f5585a 100644 --- a/addons/repair/functions/fnc_repair_success.sqf +++ b/addons/repair/functions/fnc_repair_success.sqf @@ -51,7 +51,7 @@ if (_weaponSelect != "") then { private _config = (ConfigFile >> "ACE_Repair" >> "Actions" >> _className); private _callback = getText (_config >> "callbackSuccess"); -if (isNil _callback) then { +if (isNil "_callback") then { _callback = compile _callback; } else { _callback = missionNamespace getVariable _callback; From 6a8c9f0ea826d5f86b29f2ceaaf9130919a6f7e3 Mon Sep 17 00:00:00 2001 From: Whigital Date: Tue, 11 Feb 2020 23:46:14 +0100 Subject: [PATCH 109/194] conform isnil checking: respawn --- addons/respawn/functions/fnc_initRallypoint.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/respawn/functions/fnc_initRallypoint.sqf b/addons/respawn/functions/fnc_initRallypoint.sqf index 0286813cef..8711600f58 100644 --- a/addons/respawn/functions/fnc_initRallypoint.sqf +++ b/addons/respawn/functions/fnc_initRallypoint.sqf @@ -21,7 +21,7 @@ params ["_rallypoint", "_respawnMarker", "_side"]; private _name = typeOf _rallypoint; -if (isNil _name) then { +if (isNil "_name") then { missionNamespace setVariable [_name, _rallypoint]; _rallypoint setVariable [QGVAR(side), _side]; From a24c3d52ad9ad507a01244e8566ae5f49fdd7d45 Mon Sep 17 00:00:00 2001 From: Whigital Date: Tue, 11 Feb 2020 23:46:39 +0100 Subject: [PATCH 110/194] conform isnil checking: scopes --- addons/scopes/XEH_postInit.sqf | 2 +- addons/scopes/functions/fnc_showZeroing.sqf | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/scopes/XEH_postInit.sqf b/addons/scopes/XEH_postInit.sqf index a7720c62f5..23530f868b 100644 --- a/addons/scopes/XEH_postInit.sqf +++ b/addons/scopes/XEH_postInit.sqf @@ -34,7 +34,7 @@ GVAR(scopeAdjust) = [[[0,0],0,[0,0],0], [[0,0],0,[0,0],0], [[0,0],0,[0,0],0]]; private _layer = [QGVAR(Zeroing)] call BIS_fnc_rscLayer; _layer cutText ["", "PLAIN", 0]; - if !(isNil QGVAR(fadePFH)) then { + if (!isNil QGVAR(fadePFH)) then { [GVAR(fadePFH)] call CBA_fnc_removePerFrameHandler; GVAR(fadePFH) = nil; }; diff --git a/addons/scopes/functions/fnc_showZeroing.sqf b/addons/scopes/functions/fnc_showZeroing.sqf index ada869b5fd..679ebdb08a 100644 --- a/addons/scopes/functions/fnc_showZeroing.sqf +++ b/addons/scopes/functions/fnc_showZeroing.sqf @@ -67,7 +67,7 @@ if (GVAR(simplifiedZeroing)) then { // Set the time when to hide the knobs GVAR(timeToHide) = diag_tickTime + 3.0; -if !(isNil QGVAR(fadePFH)) exitWith {}; +if (!isNil QGVAR(fadePFH)) exitWith {}; // Launch a PFH to wait and fade out the knobs GVAR(fadePFH) = [{ From 275b5edd95ee44d2be8d933273b66d1a8032343a Mon Sep 17 00:00:00 2001 From: Whigital Date: Tue, 11 Feb 2020 23:47:18 +0100 Subject: [PATCH 111/194] conform isnil checking: spectator --- .../functions/fnc_getCameraAttributes.sqf | 2 +- .../functions/fnc_setCameraAttributes.sqf | 22 +++++++++---------- addons/spectator/functions/fnc_ui.sqf | 2 +- .../functions/fnc_ui_handleMapDraw.sqf | 2 +- .../functions/fnc_updateCameraModes.sqf | 2 +- .../functions/fnc_updateVisionModes.sqf | 2 +- 6 files changed, 16 insertions(+), 16 deletions(-) diff --git a/addons/spectator/functions/fnc_getCameraAttributes.sqf b/addons/spectator/functions/fnc_getCameraAttributes.sqf index d9e53082ed..9998d37431 100644 --- a/addons/spectator/functions/fnc_getCameraAttributes.sqf +++ b/addons/spectator/functions/fnc_getCameraAttributes.sqf @@ -15,7 +15,7 @@ * Public: Yes */ -if !(isNil QGVAR(camera)) then { +if (!isNil QGVAR(camera)) then { [GVAR(camMode), GVAR(camFocus), GVAR(camVision), getPosATL GVAR(camera), getDirVisual GVAR(camera)] } else { // These values could be pre-set by function diff --git a/addons/spectator/functions/fnc_setCameraAttributes.sqf b/addons/spectator/functions/fnc_setCameraAttributes.sqf index 2ee5140d80..91db9c70c7 100644 --- a/addons/spectator/functions/fnc_setCameraAttributes.sqf +++ b/addons/spectator/functions/fnc_setCameraAttributes.sqf @@ -42,13 +42,13 @@ params [ ]; // Apply if camera exists -if !(isNil QGVAR(camera)) then { +if (!isNil QGVAR(camera)) then { // These functions are smart and handle unavailable inputs - if !(isNil "_focus") then { + if (!isNil "_focus") then { [_focus] call FUNC(setFocus); }; - if !(isNil "_mode") then { + if (!isNil "_mode") then { // If mode not free and no focus, find focus if ((_mode != MODE_FREE) && {isNull GVAR(camFocus)}) then { [true] call FUNC(setFocus); @@ -57,19 +57,19 @@ if !(isNil QGVAR(camera)) then { [_mode] call FUNC(cam_setCameraMode); }; - if !(isNil "_vision") then { + if (!isNil "_vision") then { [_vision] call FUNC(cam_setVisionMode); }; - if !(isNil "_position") then { + if (!isNil "_position") then { GVAR(camera) setPosATL _position; }; - if !(isNil "_direction") then { + if (!isNil "_direction") then { GVAR(camera) setDir _direction; }; } else { - if !(isNil "_focus") then { + if (!isNil "_focus") then { // If there are no entities this becomes nil, handled on camera startup if (_focus isEqualType true) then { _focus = ([] call FUNC(getTargetEntities)) select 0; @@ -78,20 +78,20 @@ if !(isNil QGVAR(camera)) then { GVAR(camFocus) = _focus; }; - if !(isNil "_mode") then { + if (!isNil "_mode") then { GVAR(camMode) = _mode; }; - if !(isNil "_vision") then { + if (!isNil "_vision") then { GVAR(camVision) = _vision; }; // GVARs exits purely for pre-setting of these attributes - if !(isNil "_position") then { + if (!isNil "_position") then { GVAR(camPos) = ATLtoASL _position; }; - if !(isNil "_direction") then { + if (!isNil "_direction") then { GVAR(camDir) = _direction; }; }; diff --git a/addons/spectator/functions/fnc_ui.sqf b/addons/spectator/functions/fnc_ui.sqf index b254f9cff8..f97dea3eb8 100644 --- a/addons/spectator/functions/fnc_ui.sqf +++ b/addons/spectator/functions/fnc_ui.sqf @@ -33,7 +33,7 @@ while {dialog} do { BIS_fnc_feedback_allowPP = !_init; // Removes death blur if present -if !(isNil "BIS_DeathBlur") then { +if (!isNil "BIS_DeathBlur") then { BIS_DeathBlur ppEffectAdjust [0]; BIS_DeathBlur ppEffectCommit 0; }; diff --git a/addons/spectator/functions/fnc_ui_handleMapDraw.sqf b/addons/spectator/functions/fnc_ui_handleMapDraw.sqf index 0602c7b4d2..676774df2d 100644 --- a/addons/spectator/functions/fnc_ui_handleMapDraw.sqf +++ b/addons/spectator/functions/fnc_ui_handleMapDraw.sqf @@ -76,7 +76,7 @@ GVAR(uiMapHighlighted) = _nearestEntity; CTRL_MAP_FOOTER ctrlSetText _text; // Draw camera icon -if !(isNil QGVAR(camera)) then { +if (!isNil QGVAR(camera)) then { private _cameraPos = getPosASLVisual GVAR(camera); private _cameraDir = getDirVisual GVAR(camera); _map drawIcon [ICON_CAMERA, [0.5, 1, 0.5, 1], _cameraPos, 32, 48, _cameraDir, "", 1, 0.05, "TahomaB", "right"]; diff --git a/addons/spectator/functions/fnc_updateCameraModes.sqf b/addons/spectator/functions/fnc_updateCameraModes.sqf index f6408c786d..c3adf327da 100644 --- a/addons/spectator/functions/fnc_updateCameraModes.sqf +++ b/addons/spectator/functions/fnc_updateCameraModes.sqf @@ -45,7 +45,7 @@ if (_newModes isEqualTo []) then { }; // Update camera in case of change -if !(isNil QGVAR(camera)) then { +if (!isNil QGVAR(camera)) then { // If mode was free and no longer available, find a focus if (!(MODE_FREE in _newModes) && {GVAR(camMode) == MODE_FREE} && {isNull GVAR(camFocus)}) then { [true] call FUNC(setFocus); diff --git a/addons/spectator/functions/fnc_updateVisionModes.sqf b/addons/spectator/functions/fnc_updateVisionModes.sqf index eb0e07f256..ba19bca86b 100644 --- a/addons/spectator/functions/fnc_updateVisionModes.sqf +++ b/addons/spectator/functions/fnc_updateVisionModes.sqf @@ -53,7 +53,7 @@ if (_newModes isEqualTo []) then { }; // Update camera in case of change -if !(isNil QGVAR(camera)) then { +if (!isNil QGVAR(camera)) then { [GVAR(camVision)] call FUNC(cam_setVisionMode); }; From 69480998ae297643338027f72e16c6bf4bab90ff Mon Sep 17 00:00:00 2001 From: Whigital Date: Tue, 11 Feb 2020 23:47:28 +0100 Subject: [PATCH 112/194] conform isnil checking: tagging --- addons/tagging/functions/fnc_createTag.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/tagging/functions/fnc_createTag.sqf b/addons/tagging/functions/fnc_createTag.sqf index 5f2a60cf86..ed7214d873 100644 --- a/addons/tagging/functions/fnc_createTag.sqf +++ b/addons/tagging/functions/fnc_createTag.sqf @@ -46,7 +46,7 @@ if (_object getVariable [QGVAR(testVar), false]) then { // If the object already has tags attached, just add the new one to the list private _attachedTags = _object getVariable QGVAR(attachedTags); - if !(isNil "_attachedTags ") exitWith { + if (!isNil "_attachedTags ") exitWith { _attachedTags pushBack _tag; }; From 56ef0c6d65b448bff9a056c87d0839fda12593f2 Mon Sep 17 00:00:00 2001 From: Whigital Date: Tue, 11 Feb 2020 23:47:36 +0100 Subject: [PATCH 113/194] conform isnil checking: zeus --- addons/zeus/functions/fnc_moduleSuicideBomber.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/zeus/functions/fnc_moduleSuicideBomber.sqf b/addons/zeus/functions/fnc_moduleSuicideBomber.sqf index c659ca7a9a..47ada09c00 100644 --- a/addons/zeus/functions/fnc_moduleSuicideBomber.sqf +++ b/addons/zeus/functions/fnc_moduleSuicideBomber.sqf @@ -77,7 +77,7 @@ if (_autoSeek) then { private _nearestObjects = nearestObjects [_unit, [], _range] select {side _x == _activationSide && {_x != _unit} && {alive _x}}; #ifdef DEBUG_MODE_FULL - if !(isNil "_lastMove") then { + if (!isNil "_lastMove") then { drawLine3D [_unit modelToWorldVisual [0, 0, 1], _lastMove, [1, 0, 0, 1]]; }; for "_i" from 0 to 35 do { From ce329de7847fcf7dff12484caeffc1179c9cd590 Mon Sep 17 00:00:00 2001 From: Whigital Date: Wed, 12 Feb 2020 20:26:01 +0100 Subject: [PATCH 114/194] Fix formatting for BIS evh warning (#7522) --- docs/wiki/development/coding-guidelines.md | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/docs/wiki/development/coding-guidelines.md b/docs/wiki/development/coding-guidelines.md index c80137dab3..9bc536be20 100644 --- a/docs/wiki/development/coding-guidelines.md +++ b/docs/wiki/development/coding-guidelines.md @@ -606,14 +606,12 @@ Event handlers in ACE3 are implemented through the CBA event system (ACE3's own More information on the [CBA Events System](https://github.com/CBATeam/CBA_A3/wiki/Custom-Events-System){:target="_blank"} and [CBA Player Events](https://github.com/CBATeam/CBA_A3/wiki/Player-Events){:target="_blank"} pages. -

-
Warning about BIS event handlers:
-

BIS's event handlers (`addEventHandler`, `addMissionEventHandler`) are slow when passing a large code variable. Use a short code block that calls the function you want.

- ```js - player addEventHandler ["Fired", FUNC(handleFired)]; // bad - player addEventHandler ["Fired", {call FUNC(handleFired)}]; // good - ``` -
+**Warning about BIS event handlers:** +BIS's event handlers (`addEventHandler`, `addMissionEventHandler`) are slow when passing a large code variable. Use a short code block that calls the function you want. +```js +player addEventHandler ["Fired", FUNC(handleFired)]; // bad +player addEventHandler ["Fired", {call FUNC(handleFired)}]; // good +``` ### 7.4 Hashes From 7c296c96ac387e1d5bb7be9f22ffb9bff8177f75 Mon Sep 17 00:00:00 2001 From: shukari Date: Wed, 12 Feb 2020 20:27:58 +0100 Subject: [PATCH 115/194] Map - Allow enabling BFT setting after mission start (#7519) * Update initSettings.sqf * Bracjet * Update XEH_postInitClient.sqf * Update addons/map/initSettings.sqf Co-Authored-By: PabstMirror Co-authored-by: PabstMirror --- addons/map/XEH_postInitClient.sqf | 6 ------ addons/map/initSettings.sqf | 35 ++++++++++++++++++------------- 2 files changed, 21 insertions(+), 20 deletions(-) diff --git a/addons/map/XEH_postInitClient.sqf b/addons/map/XEH_postInitClient.sqf index 1982670554..6cf08cc7f3 100644 --- a/addons/map/XEH_postInitClient.sqf +++ b/addons/map/XEH_postInitClient.sqf @@ -24,12 +24,6 @@ call FUNC(determineZoom); }, 0, []] call CBA_fnc_addPerFrameHandler; }; - // Start Blue Force Tracking if Enabled - if (GVAR(BFT_Enabled)) then { - GVAR(BFT_markers) = []; - [FUNC(blueForceTrackingUpdate), GVAR(BFT_Interval), []] call CBA_fnc_addPerFrameHandler; - }; - //illumination settings if (GVAR(mapIllumination)) then { ["loadout", { diff --git a/addons/map/initSettings.sqf b/addons/map/initSettings.sqf index d184c5c1ac..3f937c8725 100644 --- a/addons/map/initSettings.sqf +++ b/addons/map/initSettings.sqf @@ -7,7 +7,7 @@ true, {[QGVAR(mapIllumination), _this] call EFUNC(common,cbaSettings_settingChanged)}, true // Needs mission restart -] call CBA_settings_fnc_init; +] call CBA_fnc_addSetting; [ QGVAR(mapGlow), @@ -18,7 +18,7 @@ true, {[QGVAR(mapGlow), _this] call EFUNC(common,cbaSettings_settingChanged)}, true // Needs mission restart -] call CBA_settings_fnc_init; +] call CBA_fnc_addSetting; [ QGVAR(mapShake), @@ -27,7 +27,7 @@ format["ACE %1", localize LSTRING(Module_DisplayName)], true, true -] call CBA_settings_fnc_init; +] call CBA_fnc_addSetting; [ QGVAR(mapLimitZoom), @@ -36,7 +36,7 @@ format["ACE %1", localize LSTRING(Module_DisplayName)], false, true -] call CBA_settings_fnc_init; +] call CBA_fnc_addSetting; [ QGVAR(mapShowCursorCoordinates), @@ -45,7 +45,7 @@ format["ACE %1", localize LSTRING(Module_DisplayName)], false, true -] call CBA_settings_fnc_init; +] call CBA_fnc_addSetting; [ QGVAR(DefaultChannel), @@ -56,7 +56,7 @@ true, {[QGVAR(DefaultChannel), _this] call EFUNC(common,cbaSettings_settingChanged)}, true // Needs mission restart -] call CBA_settings_fnc_init; +] call CBA_fnc_addSetting; // Blue Force Tracking [ @@ -66,9 +66,16 @@ [format ["ACE %1", localize LSTRING(Module_DisplayName)], localize LSTRING(BFT_Module_DisplayName)], false, true, - {[QGVAR(BFT_Enabled), _this] call EFUNC(common,cbaSettings_settingChanged)}, - true // Needs mission restart -] call CBA_settings_fnc_init; + { + [QGVAR(BFT_Enabled), _this] call EFUNC(common,cbaSettings_settingChanged); + + if (isNil QGVAR(BFT_markers)) then { + GVAR(BFT_markers) = []; + [FUNC(blueForceTrackingUpdate), GVAR(BFT_Interval), []] call CBA_fnc_addPerFrameHandler; + }; + }, + false +] call CBA_fnc_addSetting; [ QGVAR(BFT_Interval), @@ -79,7 +86,7 @@ true, {[QGVAR(BFT_Interval), _this] call EFUNC(common,cbaSettings_settingChanged)}, true // Needs mission restart -] call CBA_settings_fnc_init; +] call CBA_fnc_addSetting; [ QGVAR(BFT_ShowPlayerNames), @@ -89,8 +96,8 @@ false, true, {[QGVAR(BFT_ShowPlayerNames), _this] call EFUNC(common,cbaSettings_settingChanged)}, - true // Needs mission restart -] call CBA_settings_fnc_init; + false +] call CBA_fnc_addSetting; [ QGVAR(BFT_HideAiGroups), @@ -100,5 +107,5 @@ false, true, {[QGVAR(BFT_HideAiGroups), _this] call EFUNC(common,cbaSettings_settingChanged)}, - true // Needs mission restart -] call CBA_settings_fnc_init; + false +] call CBA_fnc_addSetting; From 8c2f53ac148814a78cf7a7c436d9f8bacca9c1cc Mon Sep 17 00:00:00 2001 From: Whigital Date: Wed, 12 Feb 2020 22:07:19 +0100 Subject: [PATCH 116/194] Revert quotation on string args --- addons/common/functions/fnc_cbaSettings.sqf | 4 ++-- addons/common/functions/fnc_parseList.sqf | 2 +- addons/common/functions/fnc_readSettingFromModule.sqf | 2 +- .../common/functions/fnc_readSettingsFromParamsArray.sqf | 2 +- addons/medical_feedback/XEH_postInit.sqf | 2 +- .../medical_treatment/functions/fnc_onMedicationUsage.sqf | 2 +- addons/modules/XEH_postInit.sqf | 2 +- addons/overpressure/functions/fnc_firedEHBB.sqf | 2 +- addons/overpressure/functions/fnc_firedEHOP.sqf | 2 +- addons/overpressure/functions/fnc_overpressureDamage.sqf | 2 +- addons/repair/functions/fnc_canRepair.sqf | 4 ++-- addons/repair/functions/fnc_repair.sqf | 8 ++++---- addons/repair/functions/fnc_repair_failure.sqf | 2 +- addons/repair/functions/fnc_repair_success.sqf | 2 +- addons/respawn/functions/fnc_initRallypoint.sqf | 2 +- 15 files changed, 20 insertions(+), 20 deletions(-) diff --git a/addons/common/functions/fnc_cbaSettings.sqf b/addons/common/functions/fnc_cbaSettings.sqf index 65a07c6e76..273c72323e 100644 --- a/addons/common/functions/fnc_cbaSettings.sqf +++ b/addons/common/functions/fnc_cbaSettings.sqf @@ -73,7 +73,7 @@ GVAR(settingsMovedToSQF) = []; #ifdef DEBUG_MODE_FULL INFO_1("checking settingsMovedToSQF [%1]",count GVAR(settingsMovedToSQF)); { - if (isNil "_x") then { WARNING_1("setting [%1] NOT moved to sqf",_x); }; + if (isNil _x) then { WARNING_1("setting [%1] NOT moved to sqf",_x); }; } forEach GVAR(settingsMovedToSQF); #endif }] call CBA_fnc_addEventHandler; @@ -107,7 +107,7 @@ for "_index" from 0 to (_countOptions - 1) do { if ((toLower _settingName) in GVAR(cbaSettings_forcedSettings)) then { WARNING_1("Setting [%1] - Already Forced - ignoring missionConfig",_varName); } else { - if ((isNil "_settingName") && {(getNumber (_settingsConfig >> _settingName >> "movedToSQF")) == 0}) then { + if ((isNil _settingName) && {(getNumber (_settingsConfig >> _settingName >> "movedToSQF")) == 0}) then { // New setting, that was first defined in missionConfigFile INFO_1("Creating new CBA setting for ace_setting from mission config [%1]",_settingName); [_optionEntry] call FUNC(cbaSettings_loadFromConfig); diff --git a/addons/common/functions/fnc_parseList.sqf b/addons/common/functions/fnc_parseList.sqf index b6a3d079a7..7f5bb59294 100644 --- a/addons/common/functions/fnc_parseList.sqf +++ b/addons/common/functions/fnc_parseList.sqf @@ -43,7 +43,7 @@ if (_checkNil) then { private _nilCheckedList = []; { - if (!isNil "_x") then { + if (!isNil _x) then { _nilCheckedList pushBack (missionNamespace getVariable _x); }; false diff --git a/addons/common/functions/fnc_readSettingFromModule.sqf b/addons/common/functions/fnc_readSettingFromModule.sqf index 9ddc293105..d61671d604 100644 --- a/addons/common/functions/fnc_readSettingFromModule.sqf +++ b/addons/common/functions/fnc_readSettingFromModule.sqf @@ -22,7 +22,7 @@ params ["_logic", "_settingName", "_moduleVariable"]; // Check if the variable is already defined -if (isNil "_settingName") exitWith { +if (isNil _settingName) exitWith { ERROR_1("readSettingFromModule - param [%1] is not an ace_setting", _settingName); }; diff --git a/addons/common/functions/fnc_readSettingsFromParamsArray.sqf b/addons/common/functions/fnc_readSettingsFromParamsArray.sqf index 7f0463a04d..e205fb15bf 100644 --- a/addons/common/functions/fnc_readSettingsFromParamsArray.sqf +++ b/addons/common/functions/fnc_readSettingsFromParamsArray.sqf @@ -31,7 +31,7 @@ TRACE_1("Reading missionConfigFile params",_paramsArray); TRACE_3("ace_setting",_title,_settingName,_settingValue); // Check if the variable is already defined - if (isNil "_settingName") exitWith { + if (isNil _settingName) exitWith { ERROR_1("readSettingsFromParamsArray - param [%1] is not an ace_setting", _settingName); }; diff --git a/addons/medical_feedback/XEH_postInit.sqf b/addons/medical_feedback/XEH_postInit.sqf index 66080c984c..2f18bc1583 100644 --- a/addons/medical_feedback/XEH_postInit.sqf +++ b/addons/medical_feedback/XEH_postInit.sqf @@ -117,7 +117,7 @@ GVAR(bloodTickCounter) = 0; #ifdef DISABLE_VANILLA_DAMAGE_EFFECTS TRACE_1("disabling vanilla bleeding feedback effects",_this); [{ - {isNil "_x"} count [ + {isNil _x} count [ "BIS_fnc_feedback_damageCC", "BIS_fnc_feedback_damageRadialBlur", "BIS_fnc_feedback_damageBlur" diff --git a/addons/medical_treatment/functions/fnc_onMedicationUsage.sqf b/addons/medical_treatment/functions/fnc_onMedicationUsage.sqf index bc96aa979c..1f9ef981dd 100644 --- a/addons/medical_treatment/functions/fnc_onMedicationUsage.sqf +++ b/addons/medical_treatment/functions/fnc_onMedicationUsage.sqf @@ -53,7 +53,7 @@ if !(_overdosedMedications isEqualTo []) then { TRACE_1("CriticalVitals Event",_target); // make unconscious [QEGVAR(medical,CriticalVitals), _target] call CBA_fnc_localEvent; }; - if (isNil "_onOverDose") then { + if (isNil _onOverDose) then { _onOverDose = compile _onOverDose; } else { _onOverDose = missionNamespace getVariable _onOverDose; diff --git a/addons/modules/XEH_postInit.sqf b/addons/modules/XEH_postInit.sqf index 062b005589..c6892046fe 100644 --- a/addons/modules/XEH_postInit.sqf +++ b/addons/modules/XEH_postInit.sqf @@ -20,7 +20,7 @@ private _isPersistent = getNumber (_config >> "isPersistent") > 0 || getNumber (_config >> "isGlobal") > 1; private _isSingular = getNumber (_config >> "isSingular") > 0; private _function = getText (_config >> "function"); - if (isNil "_function") then { + if (isNil _function) then { _function = compile _function; } else { _function = missionNamespace getVariable _function; diff --git a/addons/overpressure/functions/fnc_firedEHBB.sqf b/addons/overpressure/functions/fnc_firedEHBB.sqf index add6468472..2d1d0f783c 100644 --- a/addons/overpressure/functions/fnc_firedEHBB.sqf +++ b/addons/overpressure/functions/fnc_firedEHBB.sqf @@ -20,7 +20,7 @@ TRACE_10("firedEH:",_unit, _weapon, _muzzle, _mode, _ammo, _magazine, _projectil // Bake variable name and check if the variable exists, call the caching function otherwise private _varName = format [QGVAR(values%1%2%3), _weapon, _ammo, _magazine]; -private _var = if (isNil "_varName") then { +private _var = if (isNil _varName) then { [_weapon, _ammo, _magazine] call FUNC(cacheOverPressureValues); } else { missionNameSpace getVariable _varName; diff --git a/addons/overpressure/functions/fnc_firedEHOP.sqf b/addons/overpressure/functions/fnc_firedEHOP.sqf index 95485f890d..5871fae9b8 100644 --- a/addons/overpressure/functions/fnc_firedEHOP.sqf +++ b/addons/overpressure/functions/fnc_firedEHOP.sqf @@ -20,7 +20,7 @@ TRACE_10("firedEH:",_unit, _weapon, _muzzle, _mode, _ammo, _magazine, _projectil // Bake variable name and check if the variable exists, call the caching function otherwise private _varName = format [QGVAR(values%1%2%3), _weapon, _ammo, _magazine]; -private _var = if (isNil "_varName") then { +private _var = if (isNil _varName) then { [_weapon, _ammo, _magazine] call FUNC(cacheOverPressureValues); } else { missionNameSpace getVariable _varName; diff --git a/addons/overpressure/functions/fnc_overpressureDamage.sqf b/addons/overpressure/functions/fnc_overpressureDamage.sqf index b2f01c0ddf..119c19ebb2 100644 --- a/addons/overpressure/functions/fnc_overpressureDamage.sqf +++ b/addons/overpressure/functions/fnc_overpressureDamage.sqf @@ -25,7 +25,7 @@ params ["_firer", "_posASL", "_direction", "_weapon", "_magazine", "_ammo"]; // Bake variable name and check if the variable exists, call the caching function otherwise private _varName = format [QGVAR(values%1%2%3), _weapon, _ammo, _magazine]; -private _var = if (isNil "_varName") then { +private _var = if (isNil _varName) then { [_weapon, _ammo, _magazine] call FUNC(cacheOverPressureValues); } else { missionNameSpace getVariable _varName; diff --git a/addons/repair/functions/fnc_canRepair.sqf b/addons/repair/functions/fnc_canRepair.sqf index 495e3dd874..2b9ac71364 100644 --- a/addons/repair/functions/fnc_canRepair.sqf +++ b/addons/repair/functions/fnc_canRepair.sqf @@ -48,7 +48,7 @@ if (count _items > 0 && {!([_caller, _items] call FUNC(hasItems))}) exitWith {fa private _return = true; if (getText (_config >> "condition") != "") then { private _condition = getText (_config >> "condition"); - if (isNil "_condition") then { + if (isNil _condition) then { _condition = compile _condition; } else { _condition = missionNamespace getVariable _condition; @@ -77,7 +77,7 @@ if (!("All" in _repairLocations)) then { if (_x == "field") exitWith {_return = true;}; if (_x == "RepairFacility" && _repairFacility) exitWith {_return = true;}; if (_x == "RepairVehicle" && _repairVeh) exitWith {_return = true;}; - if (!isNil "_x") exitWith { + if (!isNil _x) exitWith { private _val = missionNamespace getVariable _x; if (_val isEqualType 0) then { _return = switch (_val) do { diff --git a/addons/repair/functions/fnc_repair.sqf b/addons/repair/functions/fnc_repair.sqf index c75cf03a0b..1c0707f7ed 100644 --- a/addons/repair/functions/fnc_repair.sqf +++ b/addons/repair/functions/fnc_repair.sqf @@ -54,7 +54,7 @@ if (count _items > 0 && {!([_caller, _items] call FUNC(hasItems))}) exitWith {fa private _return = true; if (getText (_config >> "condition") != "") then { private _condition = getText (_config >> "condition"); - if (isNil "_condition") then { + if (isNil _condition) then { _condition = compile _condition; } else { _condition = missionNamespace getVariable _condition; @@ -82,7 +82,7 @@ if (!("All" in _repairLocations)) then { if (_x == "field") exitWith {_return = true;}; if (_x == "RepairFacility" && _repairFacility) exitWith {_return = true;}; if (_x == "RepairVehicle" && _repairVeh) exitWith {_return = true;}; - if (!isNil "_x") exitWith { + if (!isNil _x) exitWith { private _val = missionNamespace getVariable _x; if (_val isEqualType 0) then { _return = switch (_val) do { @@ -139,7 +139,7 @@ if (_callbackProgress == "") then { (alive _target) && {(abs speed _target) < 1} // make sure vehicle doesn't drive off }; } else { - if (isNil "_callbackProgress") then { + if (isNil _callbackProgress) then { _callbackProgress = compile _callbackProgress; } else { _callbackProgress = missionNamespace getVariable _callbackProgress; @@ -192,7 +192,7 @@ if (_repairTime < 0) then { } else { if (isText (_config >> "repairingTime")) exitWith { private _repairTimeConfig = getText (_config >> "repairingTime"); - if (isNil "_repairTimeConfig") then { + if (isNil _repairTimeConfig) then { _repairTimeConfig = compile _repairTimeConfig; } else { _repairTimeConfig = missionNamespace getVariable _repairTimeConfig; diff --git a/addons/repair/functions/fnc_repair_failure.sqf b/addons/repair/functions/fnc_repair_failure.sqf index b1996800bc..83cce85e0d 100644 --- a/addons/repair/functions/fnc_repair_failure.sqf +++ b/addons/repair/functions/fnc_repair_failure.sqf @@ -56,7 +56,7 @@ if (_weaponSelect != "") then { private _config = (ConfigFile >> "ACE_Repair" >> "Actions" >> _className); private _callback = getText (_config >> "callbackFailure"); -if (isNil "_callback") then { +if (isNil _callback) then { _callback = compile _callback; } else { _callback = missionNamespace getVariable _callback; diff --git a/addons/repair/functions/fnc_repair_success.sqf b/addons/repair/functions/fnc_repair_success.sqf index 62b0f5585a..a86be84244 100644 --- a/addons/repair/functions/fnc_repair_success.sqf +++ b/addons/repair/functions/fnc_repair_success.sqf @@ -51,7 +51,7 @@ if (_weaponSelect != "") then { private _config = (ConfigFile >> "ACE_Repair" >> "Actions" >> _className); private _callback = getText (_config >> "callbackSuccess"); -if (isNil "_callback") then { +if (isNil _callback) then { _callback = compile _callback; } else { _callback = missionNamespace getVariable _callback; diff --git a/addons/respawn/functions/fnc_initRallypoint.sqf b/addons/respawn/functions/fnc_initRallypoint.sqf index 8711600f58..0286813cef 100644 --- a/addons/respawn/functions/fnc_initRallypoint.sqf +++ b/addons/respawn/functions/fnc_initRallypoint.sqf @@ -21,7 +21,7 @@ params ["_rallypoint", "_respawnMarker", "_side"]; private _name = typeOf _rallypoint; -if (isNil "_name") then { +if (isNil _name) then { missionNamespace setVariable [_name, _rallypoint]; _rallypoint setVariable [QGVAR(side), _side]; From ab7bb110914b0d9e0e194bc6d2748ac0e774c4d3 Mon Sep 17 00:00:00 2001 From: Whigital Date: Wed, 12 Feb 2020 22:07:57 +0100 Subject: [PATCH 117/194] Remove excessive brackets --- addons/arsenal/XEH_postInit.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/arsenal/XEH_postInit.sqf b/addons/arsenal/XEH_postInit.sqf index 664f175bae..5623439cda 100644 --- a/addons/arsenal/XEH_postInit.sqf +++ b/addons/arsenal/XEH_postInit.sqf @@ -24,7 +24,7 @@ GVAR(lastSearchTextLoadouts) = ""; [QGVAR(loadoutUnshared), { params ["_contentPanelCtrl" , "_playerName", "_loadoutName"]; - if ((!isNil QGVAR(currentLoadoutsTab)) && {GVAR(currentLoadoutsTab) == IDC_buttonSharedLoadouts}) then { + if (!isNil QGVAR(currentLoadoutsTab) && {GVAR(currentLoadoutsTab) == IDC_buttonSharedLoadouts}) then { private _dataToCheck = _playerName + _loadoutName; @@ -52,7 +52,7 @@ GVAR(lastSearchTextLoadouts) = ""; params ["_contentPanelCtrl" ,"_loadoutArgs"]; _loadoutArgs params ["_playerName", "_loadoutName", "_loadoutData"]; - if ((!isNil QGVAR(currentLoadoutsTab)) && {GVAR(currentLoadoutsTab) == IDC_buttonSharedLoadouts}) then { + if (!isNil QGVAR(currentLoadoutsTab) && {GVAR(currentLoadoutsTab) == IDC_buttonSharedLoadouts}) then { private _curSelData =_contentPanelCtrl lnbData [(lnbCurSelRow _contentPanelCtrl), 1]; ([_loadoutData] call FUNC(verifyLoadout)) params ["_loadout", "_nullItemsAmount", "_unavailableItemsAmount"]; From 6244975316f95f9c7a0738432c0dcaf9092f22dd Mon Sep 17 00:00:00 2001 From: Whigital Date: Thu, 13 Feb 2020 10:33:31 +0100 Subject: [PATCH 118/194] Remove extraneous whitespaces Co-Authored-By: mharis001 <34453221+mharis001@users.noreply.github.com> --- addons/tagging/functions/fnc_createTag.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/tagging/functions/fnc_createTag.sqf b/addons/tagging/functions/fnc_createTag.sqf index ed7214d873..032fdc69cc 100644 --- a/addons/tagging/functions/fnc_createTag.sqf +++ b/addons/tagging/functions/fnc_createTag.sqf @@ -46,7 +46,7 @@ if (_object getVariable [QGVAR(testVar), false]) then { // If the object already has tags attached, just add the new one to the list private _attachedTags = _object getVariable QGVAR(attachedTags); - if (!isNil "_attachedTags ") exitWith { + if (!isNil "_attachedTags") exitWith { _attachedTags pushBack _tag; }; From 78d79f27613320db34700d0064c01d72ff94c4f5 Mon Sep 17 00:00:00 2001 From: Whigital Date: Thu, 13 Feb 2020 17:16:35 +0100 Subject: [PATCH 119/194] More excessive brackets --- addons/arsenal/functions/fnc_onSelChangedLeft.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/arsenal/functions/fnc_onSelChangedLeft.sqf b/addons/arsenal/functions/fnc_onSelChangedLeft.sqf index a314a34965..f2bdc48294 100644 --- a/addons/arsenal/functions/fnc_onSelChangedLeft.sqf +++ b/addons/arsenal/functions/fnc_onSelChangedLeft.sqf @@ -23,10 +23,10 @@ private _display = ctrlParent _control; private _item = [_control lnbData [_curSel, 0], _control lbData _curSel] select !(ctrlType _control == 102); private _weaponDefaultRightPanel = _display displayCtrl IDC_buttonOptic; -private _selectCorrectPanelWeapon = [_weaponDefaultRightPanel, _display displayCtrl GVAR(currentRightPanel)] select ((!isNil QGVAR(currentRightPanel)) && {GVAR(currentRightPanel) in [RIGHT_PANEL_ACC_IDCS, IDC_buttonCurrentMag, IDC_buttonCurrentMag2]}); +private _selectCorrectPanelWeapon = [_weaponDefaultRightPanel, _display displayCtrl GVAR(currentRightPanel)] select (!isNil QGVAR(currentRightPanel) && {GVAR(currentRightPanel) in [RIGHT_PANEL_ACC_IDCS, IDC_buttonCurrentMag, IDC_buttonCurrentMag2]}); private _containerDefaultRightPanel = _display displayCtrl IDC_buttonMisc; -private _selectCorrectPanelContainer = [_containerDefaultRightPanel, _display displayCtrl GVAR(currentRightPanel)] select ((!isNil QGVAR(currentRightPanel)) && {GVAR(currentRightPanel) in [RIGHT_PANEL_ITEMS_IDCS]}); +private _selectCorrectPanelContainer = [_containerDefaultRightPanel, _display displayCtrl GVAR(currentRightPanel)] select (!isNil QGVAR(currentRightPanel) && {GVAR(currentRightPanel) in [RIGHT_PANEL_ITEMS_IDCS]}); private _fnc_clearPreviousWepMags = { private _compatibleMags = getArray (configfile >> "cfgweapons" >> _baseWeapon >> "magazines"); From 0fc3cb02011af8ac38a216c2024150a1502f096e Mon Sep 17 00:00:00 2001 From: commy2 Date: Thu, 13 Feb 2020 23:15:28 +0100 Subject: [PATCH 120/194] Update addons/hitreactions/functions/fnc_throwWeapon.sqf Co-Authored-By: jonpas --- addons/hitreactions/functions/fnc_throwWeapon.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/hitreactions/functions/fnc_throwWeapon.sqf b/addons/hitreactions/functions/fnc_throwWeapon.sqf index ae77db9c02..e0d78536ca 100644 --- a/addons/hitreactions/functions/fnc_throwWeapon.sqf +++ b/addons/hitreactions/functions/fnc_throwWeapon.sqf @@ -30,7 +30,7 @@ private _holder = createVehicle ["WeaponHolderSimulated", [0,0,0], [], 0, "CAN_C _holder addWeaponWithAttachmentsCargoGlobal [_data, 1]; private _vDir = _unit weaponDirection _weapon; -private _vLat = vectorNormalized (_vDir vectorCrossProduct [0,0,1]); +private _vLat = vectorNormalized (_vDir vectorCrossProduct [0, 0, 1]); private _vUp = _vLat vectorCrossProduct _vDir; private _position = _unit modelToWorldWorld (_unit selectionPosition "RightHand") vectorAdd (_vLat vectorMultiply 0.59); From 0572ead9ca427b2cb720ea1e7311ea20f8c7e63f Mon Sep 17 00:00:00 2001 From: commy2 Date: Thu, 13 Feb 2020 23:15:41 +0100 Subject: [PATCH 121/194] Update addons/hitreactions/functions/fnc_throwWeapon.sqf Co-Authored-By: jonpas --- addons/hitreactions/functions/fnc_throwWeapon.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/hitreactions/functions/fnc_throwWeapon.sqf b/addons/hitreactions/functions/fnc_throwWeapon.sqf index e0d78536ca..4ad0ea81c7 100644 --- a/addons/hitreactions/functions/fnc_throwWeapon.sqf +++ b/addons/hitreactions/functions/fnc_throwWeapon.sqf @@ -26,7 +26,7 @@ if (!isNull objectParent _unit || _weapon isEqualTo "") exitWith {objNull}; private _data = weaponsItems _unit select {_x select 0 == _weapon} select 0; -private _holder = createVehicle ["WeaponHolderSimulated", [0,0,0], [], 0, "CAN_COLLIDE"]; +private _holder = createVehicle ["WeaponHolderSimulated", [0, 0, 0], [], 0, "CAN_COLLIDE"]; _holder addWeaponWithAttachmentsCargoGlobal [_data, 1]; private _vDir = _unit weaponDirection _weapon; From 2d071f459fbec89e1249082ed0e483d8903f60ac Mon Sep 17 00:00:00 2001 From: commy2 Date: Thu, 13 Feb 2020 23:47:59 +0100 Subject: [PATCH 122/194] macro for lateral offset --- addons/hitreactions/functions/fnc_throwWeapon.sqf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/addons/hitreactions/functions/fnc_throwWeapon.sqf b/addons/hitreactions/functions/fnc_throwWeapon.sqf index 4ad0ea81c7..e3d28df36a 100644 --- a/addons/hitreactions/functions/fnc_throwWeapon.sqf +++ b/addons/hitreactions/functions/fnc_throwWeapon.sqf @@ -16,6 +16,7 @@ * Public: No */ +#define OFFSET_LATERAL 0.59 #define THROW_VELOCITY 1.5 #define THROW_TORQUE 0.2 @@ -33,7 +34,7 @@ private _vDir = _unit weaponDirection _weapon; private _vLat = vectorNormalized (_vDir vectorCrossProduct [0, 0, 1]); private _vUp = _vLat vectorCrossProduct _vDir; -private _position = _unit modelToWorldWorld (_unit selectionPosition "RightHand") vectorAdd (_vLat vectorMultiply 0.59); +private _position = _unit modelToWorldWorld (_unit selectionPosition "RightHand") vectorAdd (_vLat vectorMultiply OFFSET_LATERAL); private _velocity = vectorNormalized (_vDir vectorAdd (_vUp vectorMultiply 2)) vectorMultiply THROW_VELOCITY vectorAdd velocity _unit; _unit removeWeapon _weapon; From d6c26eb89dd0f2c49d9bacdb0030fdee7e4a991f Mon Sep 17 00:00:00 2001 From: commy2 Date: Fri, 14 Feb 2020 00:27:01 +0100 Subject: [PATCH 123/194] macro for throw angle --- addons/hitreactions/functions/fnc_throwWeapon.sqf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/addons/hitreactions/functions/fnc_throwWeapon.sqf b/addons/hitreactions/functions/fnc_throwWeapon.sqf index e3d28df36a..bc2936e101 100644 --- a/addons/hitreactions/functions/fnc_throwWeapon.sqf +++ b/addons/hitreactions/functions/fnc_throwWeapon.sqf @@ -17,6 +17,7 @@ */ #define OFFSET_LATERAL 0.59 +#define THROW_ANGLE 63.43 #define THROW_VELOCITY 1.5 #define THROW_TORQUE 0.2 @@ -35,7 +36,7 @@ private _vLat = vectorNormalized (_vDir vectorCrossProduct [0, 0, 1]); private _vUp = _vLat vectorCrossProduct _vDir; private _position = _unit modelToWorldWorld (_unit selectionPosition "RightHand") vectorAdd (_vLat vectorMultiply OFFSET_LATERAL); -private _velocity = vectorNormalized (_vDir vectorAdd (_vUp vectorMultiply 2)) vectorMultiply THROW_VELOCITY vectorAdd velocity _unit; +private _velocity = vectorNormalized (_vDir vectorAdd (_vUp vectorMultiply tan THROW_ANGLE)) vectorMultiply THROW_VELOCITY vectorAdd velocity _unit; _unit removeWeapon _weapon; _holder setPosWorld _position; From 5a4487f1eae7173d9551d2df9eff7f0ca675aca4 Mon Sep 17 00:00:00 2001 From: commy2 Date: Mon, 17 Feb 2020 01:34:46 +0100 Subject: [PATCH 124/194] Medical - fix the Enoch pilot uniform not taking damage, fix hitpoints test (#7527) * fix the medical hitpoints test * fix the Enoch pilot * readd optional test for all units * Run test at preStart Co-authored-by: PabstMirror --- addons/medical/XEH_preStart.sqf | 2 ++ addons/medical/dev/test_hitpointConfigs.sqf | 22 +++++++++++++++------ addons/medical_engine/CfgVehicles.hpp | 8 ++++++++ 3 files changed, 26 insertions(+), 6 deletions(-) diff --git a/addons/medical/XEH_preStart.sqf b/addons/medical/XEH_preStart.sqf index 022888575e..bc3262c38c 100644 --- a/addons/medical/XEH_preStart.sqf +++ b/addons/medical/XEH_preStart.sqf @@ -1,3 +1,5 @@ #include "script_component.hpp" #include "XEH_PREP.hpp" + +[false] call compile preprocessFileLineNumbers QPATHTOF(dev\test_hitpointConfigs.sqf); diff --git a/addons/medical/dev/test_hitpointConfigs.sqf b/addons/medical/dev/test_hitpointConfigs.sqf index 8838b1d744..2067abcd66 100644 --- a/addons/medical/dev/test_hitpointConfigs.sqf +++ b/addons/medical/dev/test_hitpointConfigs.sqf @@ -1,12 +1,22 @@ -// PabstMirror +// PabstMirror, commy2 // ["medicalHitpoints"] call ace_common_fnc_runTests; -// execVM "\z\ace\addons\medical\dev\test_hitpointConfigs.sqf" +// call compile preprocessFileLineNumbers "\z\ace\addons\medical\dev\test_hitpointConfigs.sqf" #include "\z\ace\addons\medical\script_component.hpp" // UAV-AI should get filtered by scope check -private _mans = configProperties [configFile >> "CfgVehicles", "(isClass _x) && {(getNumber (_x >> 'scope')) == 2} && {configName _x isKindOf 'CAManBase'}", true]; -INFO_1("Checking mans for medical hitpoints [%1 mans]",count _mans); + +private _cfgWeapons = configFile >> "CfgWeapons"; +private _cfgVehicles = configFile >> "CfgVehicles"; + +private _uniforms = "getNumber (_x >> 'scope') == 2 && {configName _x isKindOf ['Uniform_Base', _cfgWeapons]}" configClasses _cfgWeapons; +private _units = _uniforms apply {_cfgVehicles >> getText (_x >> "ItemInfo" >> "uniformClass")}; +if (param [0, false]) then { // Check all units (if naked) + INFO("checking ALL units"); + _units append ((configProperties [configFile >> "CfgVehicles", "(isClass _x) && {(getNumber (_x >> 'scope')) == 2} && {configName _x isKindOf 'CAManBase'}", true])); +}; + +INFO_1("Checking uniforms for correct medical hitpoints [%1 units]",count _units); private _testPass = true; { @@ -22,12 +32,12 @@ private _testPass = true; _testPass = false; }; - if (((_hitpoints findIf {_x == "HitLeftArm"}) == -1) || {(_hitpoints findIf {_x == "HitLeftArm"}) == -1} + if (((_hitpoints findIf {_x == "HitLeftArm"}) == -1) || {(_hitpoints findIf {_x == "HitRightArm"}) == -1} || {(_hitpoints findIf {_x == "HitLeftLeg"}) == -1} || {(_hitpoints findIf {_x == "HitRightLeg"}) == -1} || {(_hitpoints findIf {_x == "HitHead"}) == -1} || {(_hitpoints findIf {_x == "HitBody"}) == -1}) then { WARNING_2("%1 missing ace hitpoints: %2",_typeOf,_hitpoints); _testPass = false; }; -} forEach _mans; +} forEach _units; _testPass diff --git a/addons/medical_engine/CfgVehicles.hpp b/addons/medical_engine/CfgVehicles.hpp index 58a4b47114..b17ca15a98 100644 --- a/addons/medical_engine/CfgVehicles.hpp +++ b/addons/medical_engine/CfgVehicles.hpp @@ -113,4 +113,12 @@ class CfgVehicles { ADD_ACE_HITPOINTS(3,3); }; }; + + // Enoch + class I_E_Man_Base_F; + class I_E_Uniform_01_coveralls_F: I_E_Man_Base_F { + class HitPoints { + ADD_ACE_HITPOINTS(2,2); + }; + }; }; From e0d4583be91eca94d4534e08ea86fe3dae782d4e Mon Sep 17 00:00:00 2001 From: Dedmen Miller Date: Tue, 18 Feb 2020 13:15:42 +0100 Subject: [PATCH 125/194] Don't mark help wanted as stale (#7535) --- .github/stale.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/stale.yml b/.github/stale.yml index a129b592ad..c9e0bf2f9e 100644 --- a/.github/stale.yml +++ b/.github/stale.yml @@ -14,6 +14,7 @@ exemptLabels: - status/cherrypick - status/merge on release - sticky + - help wanted # Label to use when marking an issue as stale staleLabel: status/stale From c44360bd19bafc773324df1b082aac3904268144 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Wed, 19 Feb 2020 10:05:05 -0600 Subject: [PATCH 126/194] Medical - Unlock air controls when going uncon (#7533) * Medical - Unlock air controlls when going uncon * remove unneeded parentheses * Update addons/medical_status/functions/fnc_setUnconsciousState.sqf Co-Authored-By: mharis001 <34453221+mharis001@users.noreply.github.com> Co-authored-by: mharis001 <34453221+mharis001@users.noreply.github.com> --- addons/medical_status/functions/fnc_setUnconsciousState.sqf | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/addons/medical_status/functions/fnc_setUnconsciousState.sqf b/addons/medical_status/functions/fnc_setUnconsciousState.sqf index 88a37927d9..715041d701 100644 --- a/addons/medical_status/functions/fnc_setUnconsciousState.sqf +++ b/addons/medical_status/functions/fnc_setUnconsciousState.sqf @@ -46,6 +46,12 @@ if (_active) then { closeDialog 0; }; }; + // Unlock controls for copilot if unit is pilot of aircraft + if (vehicle _unit isKindOf "Air" && {_unit == driver vehicle _unit}) then { + TRACE_1("pilot of air vehicle - unlocking controls",vehicle _unit); + // Do "Unlock controls" user action, co-pilot will then have to do the "Take Controls" actions + _unit action ["UnlockVehicleControl", vehicle _unit]; + }; } else { // Unit has woken up, no longer need to track this _unit setVariable [QEGVAR(medical,lastWakeUpCheck), nil]; From 2dcbf2ba264cc3b1d3febcdb0c93f5848b218e3a Mon Sep 17 00:00:00 2001 From: mharis001 Date: Thu, 20 Feb 2020 00:28:57 -0500 Subject: [PATCH 127/194] Fastroping - Fix deployAI not unwinding ropes --- addons/fastroping/CfgVehicles.hpp | 20 +++++++++---------- addons/fastroping/functions/fnc_deployAI.sqf | 5 ++++- .../fastroping/functions/fnc_deployRopes.sqf | 11 ++++++++-- .../functions/fnc_fastRopeServerPFH.sqf | 2 +- addons/fastroping/script_component.hpp | 1 + 5 files changed, 25 insertions(+), 14 deletions(-) diff --git a/addons/fastroping/CfgVehicles.hpp b/addons/fastroping/CfgVehicles.hpp index 01bce6d8aa..68437f678d 100644 --- a/addons/fastroping/CfgVehicles.hpp +++ b/addons/fastroping/CfgVehicles.hpp @@ -50,28 +50,28 @@ class CfgVehicles { }; class ACE_deployRopes12 { displayName = CSTRING(Interaction_deployRopes12); - condition = QUOTE([ARR_3(_target, _player, 'ACE_rope12')] call FUNC(canDeployRopes)); - statement = QUOTE([ARR_2(QUOTE(QGVAR(deployRopes)), [ARR_3(_target, _player, 'ACE_rope12'))]] call CBA_fnc_serverEvent); + condition = QUOTE([ARR_3(_target,_player,'ACE_rope12')] call FUNC(canDeployRopes)); + statement = QUOTE([ARR_2(QQGVAR(deployRopes),[ARR_3(_target,_player,'ACE_rope12'))]] call CBA_fnc_serverEvent); }; class ACE_deployRopes15 { displayName = CSTRING(Interaction_deployRopes15); - condition = QUOTE([ARR_3(_target, _player, 'ACE_rope15')] call FUNC(canDeployRopes)); - statement = QUOTE([ARR_2(QUOTE(QGVAR(deployRopes)), [ARR_3(_target, _player, 'ACE_rope15'))]] call CBA_fnc_serverEvent); + condition = QUOTE([ARR_3(_target,_player,'ACE_rope15')] call FUNC(canDeployRopes)); + statement = QUOTE([ARR_2(QQGVAR(deployRopes),[ARR_3(_target,_player,'ACE_rope15'))]] call CBA_fnc_serverEvent); }; class ACE_deployRopes18 { displayName = CSTRING(Interaction_deployRopes18); - condition = QUOTE([ARR_3(_target, _player, 'ACE_rope18')] call FUNC(canDeployRopes)); - statement = QUOTE([ARR_2(QUOTE(QGVAR(deployRopes)), [ARR_3(_target, _player, 'ACE_rope18'))]] call CBA_fnc_serverEvent); + condition = QUOTE([ARR_3(_target,_player,'ACE_rope18')] call FUNC(canDeployRopes)); + statement = QUOTE([ARR_2(QQGVAR(deployRopes),[ARR_3(_target,_player,'ACE_rope18'))]] call CBA_fnc_serverEvent); }; class ACE_deployRopes27 { displayName = CSTRING(Interaction_deployRopes27); - condition = QUOTE([ARR_3(_target, _player, 'ACE_rope27')] call FUNC(canDeployRopes)); - statement = QUOTE([ARR_2(QUOTE(QGVAR(deployRopes)), [ARR_3(_target, _player, 'ACE_rope27'))]] call CBA_fnc_serverEvent); + condition = QUOTE([ARR_3(_target,_player,'ACE_rope27')] call FUNC(canDeployRopes)); + statement = QUOTE([ARR_2(QQGVAR(deployRopes),[ARR_3(_target,_player,'ACE_rope27'))]] call CBA_fnc_serverEvent); }; class ACE_deployRopes36 { displayName = CSTRING(Interaction_deployRopes36); - condition = QUOTE([ARR_4(_target, _player, 'ACE_rope36', true)] call FUNC(canDeployRopes)); - statement = QUOTE([ARR_2(QUOTE(QGVAR(deployRopes)), [ARR_3(_target, _player, 'ACE_rope36'))]] call CBA_fnc_serverEvent); + condition = QUOTE([ARR_4(_target,_player,'ACE_rope36',true)] call FUNC(canDeployRopes)); + statement = QUOTE([ARR_2(QQGVAR(deployRopes),[ARR_3(_target,_player,'ACE_rope36'))]] call CBA_fnc_serverEvent); }; class ACE_cutRopes { displayName = CSTRING(Interaction_cutRopes); diff --git a/addons/fastroping/functions/fnc_deployAI.sqf b/addons/fastroping/functions/fnc_deployAI.sqf index f6f3915181..8101a99dae 100644 --- a/addons/fastroping/functions/fnc_deployAI.sqf +++ b/addons/fastroping/functions/fnc_deployAI.sqf @@ -59,10 +59,13 @@ if (_createDeploymentGroup) then { }; private _deployTime = 0; + if (getText (_config >> QGVAR(onPrepare)) != "") then { _deployTime = [_vehicle] call (missionNamespace getVariable (getText (_config >> QGVAR(onPrepare)))); }; -[{[_this] call FUNC(deployRopes)}, _vehicle, _deployTime] call CBA_fnc_waitAndExecute; + +[FUNC(deployRopes), _vehicle, _deployTime] call CBA_fnc_waitAndExecute; + driver _vehicle disableAI "MOVE"; DFUNC(deployAIRecursive) = { diff --git a/addons/fastroping/functions/fnc_deployRopes.sqf b/addons/fastroping/functions/fnc_deployRopes.sqf index 2873e5bee1..a9170bd879 100644 --- a/addons/fastroping/functions/fnc_deployRopes.sqf +++ b/addons/fastroping/functions/fnc_deployRopes.sqf @@ -16,7 +16,8 @@ * * Public: No */ -params ["_vehicle", "_player", "_ropeClass"]; + +params ["_vehicle", ["_player", objNull], ["_ropeClass", ""]]; TRACE_3("deployRopes",_vehicle,_player,_ropeClass); private _config = configFile >> "CfgVehicles" >> typeOf _vehicle; @@ -26,9 +27,15 @@ private _deployedRopes = _vehicle getVariable [QGVAR(deployedRopes), []]; private _hookAttachment = _vehicle getVariable [QGVAR(FRIES), _vehicle]; private _ropeLength = getNumber (configfile >> "CfgWeapons" >> _ropeClass >> QGVAR(ropeLength)); + +if (_ropeLength <= 0) then { + _ropeLength = DEFAULT_ROPE_LENGTH; +}; + TRACE_3("",_ropeClass,_ropeLength,GVAR(requireRopeItems)); + if (GVAR(requireRopeItems)) then { - if (_ropeClass in (items _player)) then { + if (_ropeClass in (_player call EFUNC(common,uniqueItems))) then { _player removeItem _ropeClass; } else { _vehicle removeItem _ropeClass; diff --git a/addons/fastroping/functions/fnc_fastRopeServerPFH.sqf b/addons/fastroping/functions/fnc_fastRopeServerPFH.sqf index 16df3f3e95..9eb3ae4e4e 100644 --- a/addons/fastroping/functions/fnc_fastRopeServerPFH.sqf +++ b/addons/fastroping/functions/fnc_fastRopeServerPFH.sqf @@ -28,7 +28,7 @@ if (isNull _hook) exitWith { [_pfhHandle] call CBA_fnc_removePerFrameHandler; }; -private _ropeLength = _vehicle getVariable [QGVAR(ropeLength), 34.5]; +private _ropeLength = _vehicle getVariable [QGVAR(ropeLength), DEFAULT_ROPE_LENGTH]; //Start fast roping if (getMass _dummy != 80) exitWith { diff --git a/addons/fastroping/script_component.hpp b/addons/fastroping/script_component.hpp index 77c8168f8d..5bd19a1db2 100644 --- a/addons/fastroping/script_component.hpp +++ b/addons/fastroping/script_component.hpp @@ -17,6 +17,7 @@ #include "\z\ace\addons\main\script_macros.hpp" +#define DEFAULT_ROPE_LENGTH 34.5 #define ANIMS_HOOK ["extendHookRight", "extendHookLeft"] #define ANIMS_ANIMATEDOOR ["door_R", "door_L", "CargoRamp_Open", "Door_rear_source", "Door_6_source", "CargoDoorR", "CargoDoorL"] From e2725e52ec37479e8e5af8e40da66c83c454cf4d Mon Sep 17 00:00:00 2001 From: mharis001 <34453221+mharis001@users.noreply.github.com> Date: Thu, 20 Feb 2020 00:48:03 -0500 Subject: [PATCH 128/194] Add check for empty _ropeClass Co-Authored-By: PabstMirror --- addons/fastroping/functions/fnc_deployRopes.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/fastroping/functions/fnc_deployRopes.sqf b/addons/fastroping/functions/fnc_deployRopes.sqf index a9170bd879..27ad76a0f9 100644 --- a/addons/fastroping/functions/fnc_deployRopes.sqf +++ b/addons/fastroping/functions/fnc_deployRopes.sqf @@ -34,7 +34,7 @@ if (_ropeLength <= 0) then { TRACE_3("",_ropeClass,_ropeLength,GVAR(requireRopeItems)); -if (GVAR(requireRopeItems)) then { +if (GVAR(requireRopeItems) && {_ropeClass != ""}) then { if (_ropeClass in (_player call EFUNC(common,uniqueItems))) then { _player removeItem _ropeClass; } else { From 93bd7f2e009c54e8dbb4bd1206a64ef96afb2264 Mon Sep 17 00:00:00 2001 From: NMAUS2019 Date: Fri, 21 Feb 2020 16:28:20 +1100 Subject: [PATCH 129/194] Use macros Use the defined macros --- addons/arsenal/missions/Arsenal.VR/CfgEventHandlers.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/arsenal/missions/Arsenal.VR/CfgEventHandlers.hpp b/addons/arsenal/missions/Arsenal.VR/CfgEventHandlers.hpp index 0f36260026..e75956f440 100644 --- a/addons/arsenal/missions/Arsenal.VR/CfgEventHandlers.hpp +++ b/addons/arsenal/missions/Arsenal.VR/CfgEventHandlers.hpp @@ -1,11 +1,11 @@ class Extended_PreInit_EventHandlers { class ADDON { - init = QUOTE(call compile preprocessFileLineNumbers 'XEH_preInit.sqf'); + init = QUOTE(call COMPILE_FILE(XEH_preInit)); }; }; class Extended_PostInit_EventHandlers { class ADDON { - init = QUOTE(call compile preprocessFileLineNumbers 'XEH_postInit.sqf'); + init = QUOTE(call COMPILE_FILE(XEH_postInit)); }; }; From d6753250d15eeb652fc389764781b824b194b59f Mon Sep 17 00:00:00 2001 From: "Rutger \"RedBery\" Meijering" Date: Sat, 22 Feb 2020 21:09:04 +0100 Subject: [PATCH 130/194] Fixes typo in splint comparison (#7518) --- addons/medical_engine/functions/fnc_updateDamageEffects.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/medical_engine/functions/fnc_updateDamageEffects.sqf b/addons/medical_engine/functions/fnc_updateDamageEffects.sqf index 9adfc2e855..616e96970c 100644 --- a/addons/medical_engine/functions/fnc_updateDamageEffects.sqf +++ b/addons/medical_engine/functions/fnc_updateDamageEffects.sqf @@ -39,8 +39,8 @@ if (EGVAR(medical,fractures) > 0) then { TRACE_1("updating status effect",_isSprintBlocked); [_unit, "blockSprint", QEGVAR(medical,fracture), _isSprintBlocked] call EFUNC(common,statusEffect_set); }; - if ((_fractures select 2) == 1) then { _aimFracture = _aimFracture + 2; }; - if ((_fractures select 3) == 1) then { _aimFracture = _aimFracture + 2; }; + if ((_fractures select 2) == -1) then { _aimFracture = _aimFracture + 2; }; + if ((_fractures select 3) == -1) then { _aimFracture = _aimFracture + 2; }; }; _unit setVariable [QGVAR(aimFracture), _aimFracture, false]; // local only var, used in ace_medical's postInit to set ACE_setCustomAimCoef }; From 5172e7717c612b62bf04a873a98c5adb36545fe6 Mon Sep 17 00:00:00 2001 From: Brandon Danyluk Date: Sat, 22 Feb 2020 13:09:15 -0700 Subject: [PATCH 131/194] fix static weapon ammo check (#7541) For some reason ARMA never returns any muzzle for crewed/non crewed static weapons. Work around this by always returning whatever weapon the static weapon has no matter what --- addons/reload/functions/fnc_displayAmmo.sqf | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/addons/reload/functions/fnc_displayAmmo.sqf b/addons/reload/functions/fnc_displayAmmo.sqf index 9b018131d4..80a5466475 100644 --- a/addons/reload/functions/fnc_displayAmmo.sqf +++ b/addons/reload/functions/fnc_displayAmmo.sqf @@ -42,6 +42,11 @@ if (_target isKindOf "StaticWeapon") then { }; } forEach _magazines; }; + + // For static weapons the muzzle seemingly never returns anything for static weapons with/without people inside + if (_muzzle == "") then { + _muzzle = _weapon; + }; }; if (_magazine == "") exitWith {}; From e1f6db8a69362163a1c9511cea081d30ee2a0608 Mon Sep 17 00:00:00 2001 From: Laid3acK Date: Sat, 22 Feb 2020 21:15:39 +0100 Subject: [PATCH 132/194] Ballistics - B_93x64_Ball updated (#7474) * 93x64_svdk * 93x64_svdk * 93x64_svdk * 93x64_svdk * 93x64_svdk * 93x64_svdk * 93x64_svdk * 93x64_svdk --- addons/atragmx/functions/fnc_initGunList.sqf | 4 ++-- addons/ballistics/CfgAmmo.hpp | 24 ++++++++++---------- addons/ballistics/CfgMagazines.hpp | 16 ++++++------- addons/ballistics/CfgWeapons.hpp | 14 ++++++------ 4 files changed, 29 insertions(+), 29 deletions(-) diff --git a/addons/atragmx/functions/fnc_initGunList.sqf b/addons/atragmx/functions/fnc_initGunList.sqf index 8714357985..87e2a074c6 100644 --- a/addons/atragmx/functions/fnc_initGunList.sqf +++ b/addons/atragmx/functions/fnc_initGunList.sqf @@ -44,7 +44,7 @@ if (_resetGunList) then { [".408 CheyTac 305gr", 1059, 100, 0.0686329, -0.00065414, 7.37, 0, 2, 10, 120, 0, 0, 19.76, 10.4, 33.02, 0.569, 1, "ICAO", [[-15,1040],[0,1047],[10,1054],[15,1059],[25,1073],[30,1082],[35,1093]], [[0, 0.605], [1110, 0.569], [1500, 0.560], [1790, 0.551], [1990, 0.547], [2140, 0.545], [2300, 0.544]], true], [".408 CheyTac 419gr", 859, 100, 0.0816039, -0.00046249, 7.37, 0, 2, 10, 120, 0, 0, 27.15, 10.4, 33.02, 0.866, 1, "ICAO", [[-15,840],[0,847],[10,854],[15,859],[25,873],[30,882],[35,893]] , [[0, 0.872], [1440, 0.862], [1630, 0.859], [1870, 0.852], [2090, 0.843], [2230, 0.838], [2420, 0.833]], true], - ["9.3×64mm" , 862, 100, 0.0875873, -0.00110727, 8.13, 0, 2, 10, 120, 0, 0, 14.90, 9.30, 35.56, 0.368, 1, "ASM" , [[-15,843],[0,850],[10,857],[15,862],[25,876],[30,885],[35,896]] , [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true], + ["9.3×64mm" , 780, 100, 0.0953568, -0.00080801, 8.13, 0, 2, 10, 120, 0, 0, 17.00, 9.48, 36.00, 0.515, 1, "ICAO", [[-15,761],[0,768],[10,775],[15,780],[25,794],[30,803],[35,814]] , [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true], [".338LM 250gr" , 872, 100, 0.0809096, -0.00060841, 7.37, 0, 2, 10, 120, 0, 0, 16.20, 8.58, 25.40, 0.645, 1, "ICAO", [[-15,853],[0,860],[10,867],[15,872],[25,886],[30,895],[35,906]] , [[0, 0.656], [1300, 0.64], [1460, 0.636], [1770, 0.625], [1920, 0.621], [2030, 0.619], [2190, 0.618]], true], [".338LM 300gr" , 792, 100, 0.0890193, -0.00055706, 7.37, 0, 2, 10, 120, 0, 0, 19.44, 8.58, 25.40, 0.759, 1, "ICAO", [[-15,773],[0,780],[10,787],[15,792],[25,806],[30,815],[35,826]] , [[0, 0.734], [1300, 0.726], [1500, 0.720], [1770, 0.708], [1880, 0.705], [2000, 0.702], [2110, 0.700]], true], @@ -63,7 +63,7 @@ if (_resetGunList) then { ["7.62x51mm M993" , 912, 100, 0.0803840, -0.00109390, 7.62, 0, 2, 10, 120, 0, 0, 8.230, 7.82, 25.40, 0.359, 1, "ICAO", [[-15,893],[0,900],[10,907],[15,912],[25,926],[30,935],[35,946]] , [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true], ["7.62x51mm Subsonic", 314, 100, 0.3344490, -0.00060194, 6.86, 0, 2, 10, 120, 0, 0, 12.96, 7.82, 25.40, 0.502, 1, "ICAO", [[-15,312],[0,313],[10,314],[15,314],[25,316],[30,317],[35,318]] , [[0, 0.303], [250, 0.409], [320, 0.427], [420, 0.445], [550, 0.460], [650, 0.467], [730, 0.470]], true], - ["7.62x39mm" , 715, 100, 0.104782, -0.00154815, 7.62, 0, 2, 10, 120, 0, 0, 7.970, 7.92, 24.00, 0.275, 1, "ICAO", [[-15,696],[0,703],[10,710],[15,715],[25,729],[30,738],[35,749]] , [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true], + ["7.62x39mm" , 715, 100, 0.1047820, -0.00154815, 7.62, 0, 2, 10, 120, 0, 0, 7.970, 7.92, 24.00, 0.275, 1, "ICAO", [[-15,696],[0,703],[10,710],[15,715],[25,729],[30,738],[35,749]] , [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true], ["6.5x39mm" , 766, 100, 0.0872025, -0.00077363, 6.35, 0, 2, 10, 120, 0, 0, 7.970, 6.71, 22.86, 0.524, 1, "ICAO", [[-15,747],[0,754],[10,761],[15,766],[25,780],[30,789],[35,800]] , [[0, 0.525], [910, 0.520], [1050, 0.515], [1270, 0.506], [1390, 0.503], [1570, 0.500], [1770, 0.498]], true], ["6.5x47mm Lapua" , 767, 100, 0.0868248, -0.00069003, 6.35, 0, 2, 10, 120, 0, 0, 9.007, 6.71, 22.86, 0.577, 1, "ICAO", [[-15,748],[0,755],[10,762],[15,767],[25,781],[30,790],[35,801]] , [[0, 0.578], [970, 0.574], [1140, 0.569], [1430, 0.557], [1610, 0.553], [1750, 0.551], [1860, 0.550]], true], diff --git a/addons/ballistics/CfgAmmo.hpp b/addons/ballistics/CfgAmmo.hpp index 5c08255444..291dbd52dc 100644 --- a/addons/ballistics/CfgAmmo.hpp +++ b/addons/ballistics/CfgAmmo.hpp @@ -489,18 +489,18 @@ class CfgAmmo { ACE_barrelLengths[]={101.6, 127.0, 228.6}; }; class B_93x64_Ball : BulletBase { - airFriction=-0.00110727; - ACE_caliber=9.296; - ACE_bulletLength=34.29; - ACE_bulletMass=14.904; - ACE_muzzleVelocityVariationSD=0.4; - 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="ASM"; - ACE_dragModel=1; - ACE_muzzleVelocities[]={850, 870, 880}; - ACE_barrelLengths[]={508.0, 620.014, 660.4}; + airFriction = -0.000808; // According with the G1 BC 0.515 and the SVDK muzzle velocity 780 m/s https://www.kalashnikov.ru/medialibrary/bd9/72_77.pdf#page=3 + ACE_caliber = 9.28; // https://www.kalashnikov.ru/medialibrary/bd9/72_77.pdf#page=3 + ACE_bulletLength = 35.56; // Average length from bullets with similar mass and BC + ACE_bulletMass = 17; // https://www.kalashnikov.ru/medialibrary/bd9/72_77.pdf#page=3 + ACE_muzzleVelocityVariationSD = 0.4; + 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.515}; // Compromise as close as possible to these velocities and times of flight from this table (unknown measurement conditions) https://www.kalashnikov.ru/medialibrary/bd9/72_77.pdf#page=5 + ACE_velocityBoundaries[] = {}; + ACE_standardAtmosphere = "ICAO"; // Better result with ICAO (15°C, 1013,25 hPa, 0%) than ASM conditions (15°C, 999,916 hPa, 78%) + ACE_dragModel = 1; // Better result than an equivalent G7 BC + ACE_muzzleVelocities[] = {768, 788, 798}; // Default values - 82 m/s at 21°C, at 15°C {760, 780, 790} according with the 10Rnd_93x64_DMR_05_Mag and the 150Rnd_93x64_Mag initSpeed + ACE_barrelLengths[] = {508.0, 620.0, 660.4}; }; class B_408_Ball : BulletBase { timeToLive=10; diff --git a/addons/ballistics/CfgMagazines.hpp b/addons/ballistics/CfgMagazines.hpp index d53ff6390d..244909a6b7 100644 --- a/addons/ballistics/CfgMagazines.hpp +++ b/addons/ballistics/CfgMagazines.hpp @@ -440,7 +440,6 @@ class CfgMagazines { initSpeed = 860; }; - class 30Rnd_9x21_Mag: CA_Magazine { initSpeed = 430; }; @@ -513,27 +512,28 @@ class CfgMagazines { class 10Rnd_127x54_Mag: CA_Magazine { initSpeed = 300; }; - + class 150Rnd_556x45_Drum_Mag_F: CA_Magazine { initSpeed = 869; }; - + class 130Rnd_338_Mag: CA_Magazine { initSpeed = 807; }; - + class 200Rnd_65x39_Belt: VehicleMagazine { initSpeed = 806; }; - + class 20Rnd_556x45_UW_mag: 30Rnd_556x45_Stanag { initSpeed = 267; }; - + class 150Rnd_93x64_Mag: CA_Magazine { - initSpeed = 870; + initSpeed = 768; // according with the ACE_ammoTempMuzzleVelocityShifts at the normal conditions (15°C) }; + class 10Rnd_93x64_DMR_05_Mag: 150Rnd_93x64_Mag { - initSpeed = 870; + initSpeed = 780; // according with the ACE_ammoTempMuzzleVelocityShifts at the normal conditions (15°C) }; }; diff --git a/addons/ballistics/CfgWeapons.hpp b/addons/ballistics/CfgWeapons.hpp index 9413884b51..c8e04c776f 100644 --- a/addons/ballistics/CfgWeapons.hpp +++ b/addons/ballistics/CfgWeapons.hpp @@ -813,16 +813,16 @@ class CfgWeapons { // Cyrus class srifle_DMR_05_blk_F: DMR_05_base_F { - initSpeed = -1.0; - ACE_barrelTwist = 359.918; - ACE_barrelLength = 620.014; + initSpeed = -1.0; // 780 m/s according with the ACE_ammoTempMuzzleVelocityShifts at the normal conditions (15°C) + ACE_barrelTwist = 360.0; + ACE_barrelLength = 620.0; }; // HK121 - class MMG_01_hex_F: MMG_01_base_F { - initSpeed = -0.985613; - ACE_barrelTwist = 359.918; - ACE_barrelLength = 549.91; + class MMG_01_hex_F: MMG_01_base_F { // https://www.heckler-koch.com/en/products/military/machine-guns/mg5/mg5/technical-data.html93x + initSpeed = -1.0; // 768 m/s according with the ACE_ammoTempMuzzleVelocityShifts at the normal conditions (15°C) + ACE_barrelTwist = 360.0; + ACE_barrelLength = 550.0; }; // LWMMG From 1a2487d61fe57f05719bcc4a068beb49b7c2f7ce Mon Sep 17 00:00:00 2001 From: Whigital Date: Sat, 22 Feb 2020 21:24:47 +0100 Subject: [PATCH 133/194] Medical Feedback - Set volume and radio usage based current unit (#7529) --- addons/common/functions/fnc_setVolume.sqf | 26 +++++++++++---------- addons/medical_feedback/XEH_postInit.sqf | 28 +++++------------------ 2 files changed, 20 insertions(+), 34 deletions(-) diff --git a/addons/common/functions/fnc_setVolume.sqf b/addons/common/functions/fnc_setVolume.sqf index 0ab00e26be..01de0b2802 100644 --- a/addons/common/functions/fnc_setVolume.sqf +++ b/addons/common/functions/fnc_setVolume.sqf @@ -17,36 +17,38 @@ * Note: Uses player */ -#define MUTED_LEVEL 0.2 +#define MUTED_LEVEL 0.2 #define NORMAL_LEVEL 1 -#define NO_SOUND 0 +#define NO_SOUND 0 -params [["_setVolume", false]]; +params [ + ["_setVolume", false], + ["_unit", player] +]; if (_setVolume) then { // Vanilla Game 2 fadeSound NORMAL_LEVEL; // TFAR - player setVariable ["tf_voiceVolume", NORMAL_LEVEL, true]; - player setVariable ["tf_globalVolume", NORMAL_LEVEL]; - player setVariable ["tf_unable_to_use_radio", false]; + _unit setVariable ["tf_voiceVolume", NORMAL_LEVEL, true]; + _unit setVariable ["tf_globalVolume", NORMAL_LEVEL]; + _unit setVariable ["tf_unable_to_use_radio", false]; // ACRE2 if (!isNil "acre_api_fnc_setGlobalVolume") then { [NORMAL_LEVEL^0.33] call acre_api_fnc_setGlobalVolume; }; - player setVariable ["acre_sys_core_isDisabled", false, true]; + _unit setVariable ["acre_sys_core_isDisabled", false, true]; } else { // Vanilla Game 2 fadeSound MUTED_LEVEL; // TFAR - player setVariable ["tf_voiceVolume", NO_SOUND, true]; - player setVariable ["tf_globalVolume", MUTED_LEVEL]; - player setVariable ["tf_unable_to_use_radio", true]; + _unit setVariable ["tf_voiceVolume", NO_SOUND, true]; + _unit setVariable ["tf_globalVolume", MUTED_LEVEL]; + _unit setVariable ["tf_unable_to_use_radio", true]; // ACRE2 if (!isNil "acre_api_fnc_setGlobalVolume") then { [MUTED_LEVEL^0.33] call acre_api_fnc_setGlobalVolume; }; - player setVariable ["acre_sys_core_isDisabled", true, true]; - + _unit setVariable ["acre_sys_core_isDisabled", true, true]; }; diff --git a/addons/medical_feedback/XEH_postInit.sqf b/addons/medical_feedback/XEH_postInit.sqf index 2f18bc1583..2efae271d1 100644 --- a/addons/medical_feedback/XEH_postInit.sqf +++ b/addons/medical_feedback/XEH_postInit.sqf @@ -43,14 +43,7 @@ GVAR(bloodTickCounter) = 0; ACE_player switchCamera "INTERNAL"; }; - // Toggle unconscious player's ability to talk in radio addons - if (["task_force_radio"] call EFUNC(common,isModLoaded)) then { - _unit setVariable ["tf_voiceVolume", [1, 0] select _unconscious, true]; - _unit setVariable ["tf_unable_to_use_radio", _unconscious]; // Only used locally - }; - if (["acre_main"] call EFUNC(common,isModLoaded)) then { - _unit setVariable ["acre_sys_core_isDisabled", _unconscious, true]; - }; + [!_unconscious, _unit] call EFUNC(common,setVolume); // Greatly reduce player's hearing ability while unconscious (affects radio addons) [QUOTE(ADDON), VOL_UNCONSCIOUS, _unconscious] call EFUNC(common,setHearingCapability); @@ -64,13 +57,9 @@ GVAR(bloodTickCounter) = 0; params ["_unit"]; if (_unit != ACE_player) exitWith {}; - if (["task_force_radio"] call EFUNC(common,isModLoaded)) then { - _unit setVariable ["tf_voiceVolume", 1, true]; - _unit setVariable ["tf_unable_to_use_radio", false]; - }; - if (["acre_main"] call EFUNC(common,isModLoaded)) then { - _unit setVariable ["acre_sys_core_isDisabled", false, true]; - }; + // Players always able to hear for any systems that might run while dead (e.g. spectator) + [true, _unit] call EFUNC(common,setVolume); + [QUOTE(ADDON), 1, false] call EFUNC(common,setHearingCapability); }] call CBA_fnc_addEventHandler; @@ -79,13 +68,8 @@ GVAR(bloodTickCounter) = 0; params ["_new"]; private _status = IS_UNCONSCIOUS(_new); - if (["task_force_radio"] call EFUNC(common,isModLoaded)) then { - _new setVariable ["tf_voiceVolume", [1, 0] select _status, true]; - _new setVariable ["tf_unable_to_use_radio", _status]; - }; - if (["acre_main"] call EFUNC(common,isModLoaded)) then { - _new setVariable ["acre_sys_core_isDisabled", _status, true]; - }; + [!_status, _new] call EFUNC(common,setVolume); + [QUOTE(ADDON), VOL_UNCONSCIOUS, _status] call EFUNC(common,setHearingCapability); [true] call FUNC(handleEffects); ["unconscious", _status] call EFUNC(common,setDisableUserInputStatus); From a7bd05ddd35f5350fec6695c28033158d72a1383 Mon Sep 17 00:00:00 2001 From: mharis001 <34453221+mharis001@users.noreply.github.com> Date: Sat, 22 Feb 2020 15:31:14 -0500 Subject: [PATCH 134/194] Medical - Add fracture chance setting (#7396) --- addons/main/script_mod.hpp | 2 +- addons/medical/initSettings.sqf | 13 +- addons/medical/stringtable.xml | 128 +----------------- .../functions/fnc_woundsHandlerSQF.sqf | 21 ++- 4 files changed, 34 insertions(+), 130 deletions(-) diff --git a/addons/main/script_mod.hpp b/addons/main/script_mod.hpp index 3cfe2f7d8f..73971e0970 100644 --- a/addons/main/script_mod.hpp +++ b/addons/main/script_mod.hpp @@ -11,7 +11,7 @@ // MINIMAL required version for the Mod. Components can specify others.. #define REQUIRED_VERSION 1.96 -#define REQUIRED_CBA_VERSION {3,12,2} +#define REQUIRED_CBA_VERSION {3,14,0} #ifdef COMPONENT_BEAUTIFIED #define COMPONENT_NAME QUOTE(ACE3 - COMPONENT_BEAUTIFIED) diff --git a/addons/medical/initSettings.sqf b/addons/medical/initSettings.sqf index 6eaed9623a..bb2459c257 100644 --- a/addons/medical/initSettings.sqf +++ b/addons/medical/initSettings.sqf @@ -5,7 +5,7 @@ LSTRING(Category), [[0, 1, 2], [ELSTRING(common,Disabled), LSTRING(Limping_LimpOnOpenWounds), LSTRING(Limping_LimpRequiresStitching)], 1], true, - {[QGVAR(limping), _this] call EFUNC(common,cbaSettings_settingChanged)}, + {}, true ] call CBA_settings_fnc_init; @@ -16,7 +16,16 @@ LSTRING(Category), [[0, 1, 2], [ELSTRING(common,Disabled), LSTRING(Fractures_SplintHealsFully), LSTRING(Fractures_SplintHasEffects)], 1], true, - {[QGVAR(fractures), _this] call EFUNC(common,cbaSettings_settingChanged)}, + {}, + true +] call CBA_settings_fnc_init; + +[ + QGVAR(fractureChance), + "SLIDER", + [LSTRING(FractureChance_DisplayName), LSTRING(FractureChance_Description)], + LSTRING(Category), + [0, 1, 0.8, 2, true], true ] call CBA_settings_fnc_init; diff --git a/addons/medical/stringtable.xml b/addons/medical/stringtable.xml index ee21f20814..c0bd142b29 100644 --- a/addons/medical/stringtable.xml +++ b/addons/medical/stringtable.xml @@ -32,7 +32,7 @@ Posibilidad de recuperar la conciencia - The probablity that a unit with stable vitals will wake up from unconsciousness (checked every 15 seconds). + The probability that a person with stable vitals will wake up from unconsciousness (checked every 15 seconds). Wahrscheinlichkeit, dass eine bewusstlose Person mit stabilen Vitalwerten wieder aufwacht (Überprüfung alle 15 Sekunden) 容体が安定しているユニットが気絶する確率を決定できます。(15 秒毎に確認) Вероятность, что стабилизированный юнит очнется от потери сознания (Проверяется каждые 15 сек) @@ -163,85 +163,11 @@ Las férulas sanan, pero no pueden correr Schienen heilen, aber ermöglichen kein Sprinten - - Remote Controlled AI - Ferngesteuerte KI-Einheiten - IA controlada remotamente - IA controlada remotamente - Zdalnie sterowane AI - Vzdáleně ovládané AI - IA contrôlées à distance - Távvezérelt AI - Зевса считать ботом - IA Controllate in Remoto - 遠隔操作された AI - 인공지능 원격조종 - 遥控AI - 遙控AI + + Fracture Chance - - Treat remote controlled units as AI not players? - Legt fest, ob ferngesteuerte Einheiten als KI anstatt als Spieler behandelt werden sollen. - ¿Tratar unidades remotamente controladas como IA? - Tratar unidades remotamente controladas como IA? - Traktuj jednostki zdalnie sterowane (przez Zeusa) jako AI, nie jako graczy? - Ošetřit vzdáleně ovládané jednotky jako AI, ne jako hráče? - Définit si les unités contrôlées à distance sont traitées comme des IA, et non comme des joueurs. - Távvezérelt egységek AI-ként, nem játékosként való kezelése? - Обрабатывать дистанционно управляемых юнитов как ботов, а не как игроков? - Considera le unità controllate in remoto come IA e non come giocatori? - 遠隔操作された AI を非プレイヤーとして扱いますか? - 원격 조작하는 AI는 비 플레이어로 취급합니까? - 以医疗AI的方式医疗被遥控的单位 - 以醫療AI的方式醫療被遙控的單位 - - - Prevent instant death - Откл. мгновенную смерть - Wyłącz natychmiastową śmierć - Prevenir muerte instantánea - Verhindere direkten Tod - Zabránit okamžité smrti - Previnir morte instantânea - Empêcher la mort instantanée - Azonnali halál kiiktatása - Previeni morte istantanea - 即死の防止 - 즉사 방지 - 防止当场死亡 - 防止當場死亡 - - - Have a unit move to unconscious instead of death - Бойцы теряют сознание вместо того, чтобы умирать - Spraw, aby jednostka została przeniesiona do stanu nieprzytomności zamiast ginąć na miejscu od śmiertelnych obrażeń - Mover una unidad a inconsciente en vez de a muerta - Lässt eine Einheit bewusstlos werden anstatt zu sterben - Jednotka upadne do bezvědomí namísto smrti - Fazer a unidade ficar inconsciente invés de morrer - Force une unité à perdre connaissance, au lieu de mourir sur le coup. - Egy egység kerüljön eszméletlen állapotba a halott helyett - Imposta un'unità come incosciente invece di morta - ユニットの即死を防止する為に気絶へ移行させます - 인원의 즉사를 방지코자 즉사 대신 기절시킵니다 - 伤者最严重只会立即进入昏迷,而非立即死亡 - 傷者最嚴重只會無意識,而非立即死亡 - - - Provides a medical system for both players and AI. - Включает медицинскую систему как для игроков, так и для ботов. - Moduł ten dostarcza system medyczny dla graczy oraz AI. - Proporciona un sistema médico para jugadores e IA. - Aktiviert ein Sanitätssystem für Spieler und KI. - Poskytuje zdravotní systém pro hráče a AI. - Proporciona o sistema médico para os jogadores e a IA. - Fournit un système médical aussi bien pour les joueurs que pour les IA. - Egy orvosi rendszert ad játékosok és AI-k számára. - Fornisce un sistema medico sia per giocatori che IA. - プレイヤーと AI の両方へ医療システムを提供します。 - 의료 시스템을 플레이어 및 인공지능에게 제공합니다. - 医疗系统将同时对玩家与AI发生作用 - 醫療系統將同時對玩家與AI發生作用 + + The probability of a fracture causing wound resulting in a fracture. Enabled for @@ -339,50 +265,6 @@ 设定人员是否会因为载具冲撞别的物件而产生伤害? 設定人員是否會因為載具衝撞別的物件而產生傷害? - - Heal hitpoints - Heile Trefferpunkte - Lecz hitpointy - Curar puntos de vida - Исцелять части тела - Curar hitpoints - Léčit hitponty - Cura Hitpoints - Guérir les blessures - ヒットポイントの回復 - 체력 회복 - 完整治疗 - 完整治療 - - - Heal fully bandaged hitpoints - Heile verbundene Trefferpunkte - Po bandażowaniu ulecz hitpointy, usuwając z nich ślady krwi i przywracając im pełną sprawność. - Curar miembros totalmente vendados - Исцелять полностью перебинтованные части тела - Curar totalmente hitpoints enfaixados - Heal fully bandaged hitpoints - Cura Hitpoints completamente bendati - Les plaies entièrement bandées seront guéries. - 包帯によりヒットポイントを完全に回復します。 - 붕대를 감아서 체력을 회복 - 繃帶是否會完整恢復生命值 - - - Configure the treatment settings from ACE Basic Medical - Behandlungseinstellungen der Standard ACE-Medizin konfigurieren - Configure las opciones de tratamiento del sistema médico básico de ACE - Skonfiguruj ustawienia leczenia podstawowego systemu medycznego ACE - Configurer les paramètres de traitement à partir de "ACE médical basique". - Configura le impostazioni trattamenti per ACE Medical di base - Configura as opções de tratamento do sistema médico básico do ACE - Настройка лечения в базовой медицинской системе ACE - ACE ベーシック医療による設定で、治療を設定します。 - ACE 기본 의료에 대한 치료 설정 수정 - 设定ACE基本医疗的规则 - 設定ACE基本醫療的規則 - Nastavit nastavení léčby z ACE Zdravotnické Základní - Anytime Jederzeit diff --git a/addons/medical_damage/functions/fnc_woundsHandlerSQF.sqf b/addons/medical_damage/functions/fnc_woundsHandlerSQF.sqf index ee07f8508e..93472f1d7a 100644 --- a/addons/medical_damage/functions/fnc_woundsHandlerSQF.sqf +++ b/addons/medical_damage/functions/fnc_woundsHandlerSQF.sqf @@ -131,15 +131,28 @@ private _bodyPartVisParams = [_unit, false, false, false, false]; // params arra #endif switch (true) do { - case (_causeFracture && {EGVAR(medical,fractures) > 0} && {_bodyPartNToAdd > 1} && {_woundDamage > FRACTURE_DAMAGE_THRESHOLD}): { - TRACE_1("limb fracture",_bodyPartNToAdd); + case ( + _causeFracture + && {EGVAR(medical,fractures) > 0} + && {_bodyPartNToAdd > 1} + && {_woundDamage > FRACTURE_DAMAGE_THRESHOLD} + && {random 1 < EGVAR(medical,fractureChance)} + ): { private _fractures = GET_FRACTURES(_unit); _fractures set [_bodyPartNToAdd, 1]; _unit setVariable [VAR_FRACTURES, _fractures, true]; - [QEGVAR(medical,fracture), [_unit, _bodyPartNToAdd]] call CBA_fnc_localEvent; // local event for fracture + + [QEGVAR(medical,fracture), [_unit, _bodyPartNToAdd]] call CBA_fnc_localEvent; + TRACE_1("Limb fracture",_bodyPartNToAdd); + _updateDamageEffects = true; }; - case (_causeLimping && {EGVAR(medical,limping) > 0} && {_bodyPartNToAdd > 3} && {_woundDamage > LIMPING_DAMAGE_THRESHOLD}): { + case ( + _causeLimping + && {EGVAR(medical,limping) > 0} + && {_bodyPartNToAdd > 3} + && {_woundDamage > LIMPING_DAMAGE_THRESHOLD} + ): { _updateDamageEffects = true; }; }; From 3bc727f9602b83b62676975d0769f70b31747774 Mon Sep 17 00:00:00 2001 From: BaerMitUmlaut Date: Sat, 22 Feb 2020 21:36:25 +0100 Subject: [PATCH 135/194] Grenades - Make flashbang reaction more authentic (#6034) --- .../functions/fnc_flashbangExplosionEH.sqf | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/addons/grenades/functions/fnc_flashbangExplosionEH.sqf b/addons/grenades/functions/fnc_flashbangExplosionEH.sqf index 7beb128df6..39ad6fb706 100644 --- a/addons/grenades/functions/fnc_flashbangExplosionEH.sqf +++ b/addons/grenades/functions/fnc_flashbangExplosionEH.sqf @@ -47,7 +47,7 @@ private _affected = (ASLtoAGL _grenadePosASL) nearEntities ["CAManBase", 20]; _affected = _affected - [ACE_player]; { if (local _x && {alive _x}) then { - private _strength = 1 - (((getPosASL _x) vectorDistance _grenadePosASL) min 20) / 20; + private _strength = 1 - (((eyePos _x) vectorDistance _grenadePosASL) min 20) / 20; TRACE_3("FlashBangEffect Start",_x,((getPosASL _x) vectorDistance _grenadePosASL),_strength); @@ -55,9 +55,9 @@ _affected = _affected - [ACE_player]; _x setSkill (skill _x / 50); - if (_strength > 0.2) then { - _x setVectorDir ((getPosASL _x) vectorDiff _grenadePosASL); - }; + // Make AI try to look away + private _dirToFlash = _x getDir _grenadePosASL; + _x setDir (_dirToFlash + linearConversion [0.2, 1, _strength, 40, 135] * selectRandom [-1, 1]); [{ params ["_unit"]; @@ -140,8 +140,11 @@ if (hasInterface && {!isNull ACE_player} && {alive ACE_player}) then { }, [], 17 * _strength] call CBA_fnc_waitAndExecute; }; - if (_strength > 0.2) then { - ACE_player setVectorDir (_eyePos vectorDiff _grenadePosASL); - }; + // Make player flinch + if (_strength <= 0.2) exitWith {}; + private _minFlinch = linearConversion [0.2, 1, _strength, 0, 60, true]; + private _maxFlinch = linearConversion [0.2, 1, _strength, 0, 95, true]; + private _flinch = (_minFlinch + random (_maxFlinch - _minFlinch)) * selectRandom [-1, 1]; + ACE_player setDir (getDir ACE_player + _flinch); }; true From bd040ca19d575c2c1dcf0241a5d7036d98bade7c Mon Sep 17 00:00:00 2001 From: diwako Date: Sat, 22 Feb 2020 21:39:14 +0100 Subject: [PATCH 136/194] Medical - Fix being stuck in unconscious animation after ragdoll (#7499) --- addons/medical_engine/XEH_postInit.sqf | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/addons/medical_engine/XEH_postInit.sqf b/addons/medical_engine/XEH_postInit.sqf index 3a3aaeccc5..878ebb4441 100644 --- a/addons/medical_engine/XEH_postInit.sqf +++ b/addons/medical_engine/XEH_postInit.sqf @@ -62,3 +62,11 @@ [QEGVAR(medical,woundReceived), [_x, "Head", _lethality, _killer, "#vehiclecrash", [HITPOINT_INDEX_HEAD,1]], _x] call CBA_fnc_targetEvent; } forEach (crew _vehicle); }, true, ["ParachuteBase"]] call CBA_fnc_addClassEventHandler; + +// Fixes units being stuck in unconscious animation when being knocked over by a PhysX object +["CAManBase", "AnimDone", { + params ["_unit", "_anim"]; + if (local _unit && {_anim == "unconscious" && {lifeState _unit != "INCAPACITATED"}}) then { + [_unit, false] call FUNC(setUnconsciousAnim); + }; +}] call CBA_fnc_addClassEventHandler; From b30f023c042d4182091218f39db92b98f34e24ba Mon Sep 17 00:00:00 2001 From: 10Dozen Date: Sat, 22 Feb 2020 23:42:59 +0300 Subject: [PATCH 137/194] Adds Icon option for Low blood volume at Medical Feedback (#7507) * Adds Icon option for Low blood volume at Medical Feedback - Adds setting to switch Low blood volume effect with 3 options: Color fading, Icon, Color fading + Icon - Adds icon to UI on low blood - Adds icon PAA files * Review fixes - Added ACE tags to added controls - Added defines for GUI position/size - Added missing newline at EOF - Updated fnc_effectBloodVolumeIcon (removed usage of uiNamespace and minor changes) - CBA_fnc_addSetting is now used to init settings - Icon path macro updated to return formatted path * Review fixes vol.2 - Removed `disableSerialization` and added default value for indicator control and not null checks to effectBVI function - Removed defines from RscInGameUI and used a3 defines instead - Changed formatting of macroses * Review fixes vol.3 - Fixed exec code of BV setting - Removed ctrlCommit from eBVI function - Changed initEffects function to be able to update pain and BV effects only - Changed control name from `BloodVolumeInfoIndicator` to `bloodVolumeIndicator` - Various formatting tweaks (spaces/lines/uppercase/periods) * Review fixed vol.4 - Remove extra checks from eBVI func - Restores contol's onLoad script using ARR_2(QQGVAR()) --- addons/medical_feedback/RscInGameUI.hpp | 13 ++++++ addons/medical_feedback/XEH_PREP.hpp | 1 + addons/medical_feedback/config.cpp | 1 + .../medical_feedback/data/bloodVolume_1.paa | Bin 0 -> 5625 bytes .../medical_feedback/data/bloodVolume_2.paa | Bin 0 -> 5625 bytes .../medical_feedback/data/bloodVolume_3.paa | Bin 0 -> 5625 bytes .../medical_feedback/data/bloodVolume_4.paa | Bin 0 -> 5625 bytes .../medical_feedback/data/bloodVolume_5.paa | Bin 0 -> 5625 bytes .../medical_feedback/data/bloodVolume_6.paa | Bin 0 -> 5625 bytes .../functions/fnc_effectBloodVolume.sqf | 2 + .../functions/fnc_effectBloodVolumeIcon.sqf | 41 +++++++++++++++++ .../functions/fnc_handleEffects.sqf | 12 ++++- .../functions/fnc_initEffects.sqf | 43 +++++++++++++----- addons/medical_feedback/initSettings.sqf | 23 +++++++++- addons/medical_feedback/script_component.hpp | 13 ++++++ addons/medical_feedback/stringtable.xml | 20 ++++++++ 16 files changed, 155 insertions(+), 14 deletions(-) create mode 100644 addons/medical_feedback/RscInGameUI.hpp create mode 100644 addons/medical_feedback/data/bloodVolume_1.paa create mode 100644 addons/medical_feedback/data/bloodVolume_2.paa create mode 100644 addons/medical_feedback/data/bloodVolume_3.paa create mode 100644 addons/medical_feedback/data/bloodVolume_4.paa create mode 100644 addons/medical_feedback/data/bloodVolume_5.paa create mode 100644 addons/medical_feedback/data/bloodVolume_6.paa create mode 100644 addons/medical_feedback/functions/fnc_effectBloodVolumeIcon.sqf diff --git a/addons/medical_feedback/RscInGameUI.hpp b/addons/medical_feedback/RscInGameUI.hpp new file mode 100644 index 0000000000..275117ca8e --- /dev/null +++ b/addons/medical_feedback/RscInGameUI.hpp @@ -0,0 +1,13 @@ +class RscPictureKeepAspect; +class RscInGameUI { + class RscStanceInfo { + controls[] += {QGVAR(bloodVolumeIndicator)}; + class GVAR(bloodVolumeIndicator): RscPictureKeepAspect { + onLoad = QUOTE(uiNamespace setVariable [ARR_2(QQGVAR(bloodVolumeIndicator),_this select 0)]); + x = IGUI_GRID_STANCE_X; + y = IGUI_GRID_STANCE_Y; + w = IGUI_GRID_STANCE_WAbs / 4; + h = IGUI_GRID_STANCE_HAbs / 4; + }; + }; +}; diff --git a/addons/medical_feedback/XEH_PREP.hpp b/addons/medical_feedback/XEH_PREP.hpp index ee4b453bbe..e6c48d6506 100644 --- a/addons/medical_feedback/XEH_PREP.hpp +++ b/addons/medical_feedback/XEH_PREP.hpp @@ -1,5 +1,6 @@ PREP(effectBleeding); PREP(effectBloodVolume); +PREP(effectBloodVolumeIcon); PREP(effectHeartBeat); PREP(effectIncapacitated); PREP(effectPain); diff --git a/addons/medical_feedback/config.cpp b/addons/medical_feedback/config.cpp index 493d41cf8c..50eb2bbab3 100644 --- a/addons/medical_feedback/config.cpp +++ b/addons/medical_feedback/config.cpp @@ -19,3 +19,4 @@ class CfgPatches { #include "CfgSounds.hpp" #include "CfgVehicles.hpp" #include "RscTitles.hpp" +#include "RscInGameUI.hpp" diff --git a/addons/medical_feedback/data/bloodVolume_1.paa b/addons/medical_feedback/data/bloodVolume_1.paa new file mode 100644 index 0000000000000000000000000000000000000000..04ddeaae2cda0412d2df76b7bb1e4061f88043d9 GIT binary patch literal 5625 zcmds*eN0nV6u_?*1g6lk!IVh_!O+bOjM+rRkHVa#Y@*3DYIGY~qD&K7wix%#!)?Yb za~4UIv8i=SHe!?&7`#8m3lanVCHV};QcuF zo^#K+=bn3c{x~%?Wz~|@)hT`mA&%qLJ9%wNI$~P6L$BlpPJw-lLiS3g=g{-RtG~mi z4ju2o@s;|4GYlUEa{2E}C*!z8^Fj59^FcZ!uD4A~>vej&l5Z^xr~7r!kdN!_;qN{1 zI_91aFO-Yc zj!)Fl`YSP)PkY}en81Ecp7_S;=z2VCJn|0_&4VNL{nw~hqLZbx-mWw=d|k1;1MEMn zf8NH&qO^Rs_;%qVxKa8nwcnffI?`LKfoEUG)jS(W=NErflyK5)kSAKn+b==DGb%7P z6lG5Zj%_K-{!Z0R(3$V?n>ca9eN6LvK2nqW=a{Xxw|IEU<7#=Gh22Q~4LU0w!h-G# znEyTtD}Mr4_W&0Ru)!tRunjo)m_}S%(+S|DX3W*x_5YG&l>LoH(Fl<*46X)dz3~() zyXD&UEB?@5cBN8io3y(T*xPttD=Kz~f5qqDW}O&Vr&d#ztZUI^KI&NN9s zFZM4Ty=^h+Z=3e>xAJm8Kb{`3fn3ahBYGGsg9iyZ?LR$Gbi5|;IE|05{$@40`x|*} zV!`#4vAeT>RGHymYt`3(0eg$b^WB@zuim_&3;H(;oLDw|IA$$Q3(+us-f4A7z54nC z+Yha*&r-13Dj1Jr{AFnF;V{ZhukIiJXDpbD!rNk?zq~HVJzs|d0CLZG1bLL%_zS_7 zT$_gG`wBCsD=j`u%Sd_`URf){t3aP(=;f-WqLI%kAzsRcjC=}o-Q>trK+R7mZGU9Y zp#}&uL4RyQl3N_MVW-okn^ZW>#eJ6Pdvb81KKveVc|F*vwelRwKy2 zyyZA2o(BY-0pIPw1JxKSfsY~e4~oq4IN)tY_uI-kGjHUZH2EOUXvJJWk-8T6qmr`V z4si;=fhdrC77e?=Zdzi~+=4$(zEmFHS|re6Ys@OGpwiJx;o5d7e`eM)dMNpc6;+Jq RQ)T=6PX4pg57fA#^)GB=HDdq( literal 0 HcmV?d00001 diff --git a/addons/medical_feedback/data/bloodVolume_2.paa b/addons/medical_feedback/data/bloodVolume_2.paa new file mode 100644 index 0000000000000000000000000000000000000000..550d5102710c8bbef863bb60b0164d3b8512f7e8 GIT binary patch literal 5625 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 literal 0 HcmV?d00001 diff --git a/addons/medical_feedback/data/bloodVolume_5.paa b/addons/medical_feedback/data/bloodVolume_5.paa new file mode 100644 index 0000000000000000000000000000000000000000..7f2061a31a0ce367b11a988e45746cb8115a5eb3 GIT binary patch literal 5625 zcmds*Z%kWN6u>Y42Hk{~3E9jjASF~kz_Jf^3OGQ+pQ>fam~L?ar7&<4T1{sCprhTK z!DI{n5=1hfPNQT3!l1k_XkegBGu%)Zv=oSLD4P^oG%F>0-Sa-++|u{uK~~UtlcxRU z+GfmM(^C#UpZ-dUFG9#_wT3V8;S>eS3~nr^r@WNLvKRiaoRyZgKNTq=%eebc6h1^Z(i3soX9~H4XNMI<(HKjbbA(pFfhDb86bIN+A6w zd_+iU+eUar!GDFHMDnU=d6h5N6S6Q_o=7i@0{fR-3N)`;Uq1hHk-P%yi-z%NSX=qp zy|ed$QmN`72?gss5#>$>Pq<4C( ze)7A9ou`g}0QwUIfR(NcEw(N7?Z}AqUZgd0p z8=t>id6a=Yk6iWT5tMP$llKpIzCGVuQ`0gvxsOwrwrul-`T>YPdW#*QBkRE|-A~@+ zJX|lM3Ra)ZAN1q#4f%pfZ{Vy^E#23+dH0Wmb04D#<{~pFd;;u2)4Btw+|~`eXO`)v zsQ^+B#oob^MPV_>Wj6L#hX6R*z%csS;$6U!k(%Q3X_G82{XdO8y2$96_ep*~+Kbj&Wm6HVHGjci7jU3(~>-ieGX6HqUK~t$*58XL5AJzsEVtu#>YbLgs6~?FpDA z@ma6Gg@f+?ZlBp!XF8>D`MaVJ{N?IbTQvC+D(?u$-(6=sqApXaz4k&ejF)iy<<7_D z9h`WCw(IMS3FoeZK5l<5zdV^^87U|lUu%EvcrL&FL(pu0=IolwAxGEYOG_0HA-4K~v;|3kqPrL+;x&@hd8?iz*=1mVjgS7EV~2QO0M|{Pq~occRt3 zS{X(1U(Axq;~+O8xw1QQFR}l<7WdbQ02IJJiw0*?Z+@;R8irvzvOBYlWyQU~5zP&= lrtsHEQ5@c4FS_1SM~Y5ge4^rbK6+r%@>55tFAQ6b)<30ba4Y}- literal 0 HcmV?d00001 diff --git a/addons/medical_feedback/data/bloodVolume_6.paa b/addons/medical_feedback/data/bloodVolume_6.paa new file mode 100644 index 0000000000000000000000000000000000000000..22e3b0c3041427bb3482bef1ee96cec88db6061d GIT binary patch literal 5625 zcmds5Z%kWN6uO6Y%jXF)Ice z^@D)7<*Jzk?7^EIGPcM4bsNYZHvZ53j&oWuGY0;LxlHcs=M@&fVtkah?FQD#Bnb0| z{p3jH*d*Wu1^*TNB+^zzX{-FfpU|0+ibQs%A8=sFCF$Uz{EG3D zUrD}Cc`x5$@z~i!>H&M|LEe1nh_%7p0r3}GzgqcYjU$t+tHUJNd&eh&*C}8gkg-FaNv|(;v^OU$1lK?gahE1}favvLnkr&&2evR$lm>k(pF8cfh~>e|@B|n%!RO zp8{?Y^7xGpL4V@q2Dhbc{q~z!e0Kb(Hq00q7W~^WX0EkX>%5kq4ZD`^w|E;@)4zuM zO^h!sk8I|@N1p!jAWFaO&GU!07x(>51FJR&=WzHZN;JRf`fInyq?LifeHo$Q!JfEYe{zBP@^`C1-cy)9CPh$#Z zIWzaZP~Xpbx!+iAzM|V%!zj)X`aj7H*)-=id<_0qk7C6}uI&%NRa016&zTPcmR`&y zy-m+m!11@Z*(;0wFZp?yZv=`!h`(W&A7EAtZ*|~9Dc_>*rF=J!Z>q5#)p__XC&`ppTwUBl~(l>V0yk^22b0w zO>-`nOD*IA0On^m8;ku&LjgEoKbgO1nMB>xroxgROL5CgTBKJ zOS_c=^`slF)}I4;#yPCtj;pQ#ey@J%?L-g?;;%(RvhbT<8H;;i+Lo-AEK9k*9dKA? n`Gh65SOqxrRbz3NrdBwV{K*%U#4`?6zI|`^zAs?fe6;=n3^h$} literal 0 HcmV?d00001 diff --git a/addons/medical_feedback/functions/fnc_effectBloodVolume.sqf b/addons/medical_feedback/functions/fnc_effectBloodVolume.sqf index e4a8e27053..ae2dcc1e74 100644 --- a/addons/medical_feedback/functions/fnc_effectBloodVolume.sqf +++ b/addons/medical_feedback/functions/fnc_effectBloodVolume.sqf @@ -18,9 +18,11 @@ params ["_enable", "_intensity"]; +if (isNil QGVAR(ppBloodVolume)) exitWith {}; if ((!_enable) || {_intensity == 0}) exitWith { GVAR(ppBloodVolume) ppEffectEnable false; }; + GVAR(ppBloodVolume) ppEffectEnable true; GVAR(ppBloodVolume) ppEffectAdjust [1, 1, 0, [0, 0, 0, 0], [1, 1, 1, 1 - _intensity], [0.2, 0.2, 0.2, 0]]; GVAR(ppBloodVolume) ppEffectCommit 1; diff --git a/addons/medical_feedback/functions/fnc_effectBloodVolumeIcon.sqf b/addons/medical_feedback/functions/fnc_effectBloodVolumeIcon.sqf new file mode 100644 index 0000000000..2ba1e5b665 --- /dev/null +++ b/addons/medical_feedback/functions/fnc_effectBloodVolumeIcon.sqf @@ -0,0 +1,41 @@ +#include "script_component.hpp" +/* + * Author: 10Dozen + * Handles the blood volume icon. + * + * Arguments: + * 0: Enable + * 1: Intensity 0...6 + * + * Return Value: + * None + * + * Example: + * [true, 4] call ace_medical_feedback_fnc_effectBloodVolumeIcon + * + * Public: No + */ + +params ["_enable", "_intensity"]; + +private _indicatorCtrl = uiNamespace getVariable [QGVAR(bloodVolumeIndicator), controlNull]; + +if (!_enable || !GVAR(showBloodVolumeIcon)) exitWith { + _indicatorCtrl ctrlSetText ""; +}; + +private _text = ""; +private _color = ICON_BLOODVOLUME_COLOR_NONE; + +if (_intensity > 0) then { + _text = ICON_BLOODVOLUME_PATH(_intensity); + if (_intensity > 2) then { + _color = [ICON_BLOODVOLUME_COLOR_ORANGE, ICON_BLOODVOLUME_COLOR_RED] select (_intensity > 4); + } else { + _color = ICON_BLOODVOLUME_COLOR_WHITE; + }; +}; + +// --- Affecting UI icon with proper image and color +_indicatorCtrl ctrlSetText _text; +_indicatorCtrl ctrlSetTextColor _color; diff --git a/addons/medical_feedback/functions/fnc_handleEffects.sqf b/addons/medical_feedback/functions/fnc_handleEffects.sqf index b065d42646..77c8d9f1ae 100644 --- a/addons/medical_feedback/functions/fnc_handleEffects.sqf +++ b/addons/medical_feedback/functions/fnc_handleEffects.sqf @@ -21,6 +21,7 @@ if (EGVAR(common,OldIsCamera) || {!alive ACE_player}) exitWith { [false, 0] call FUNC(effectUnconscious); [false] call FUNC(effectPain); [false] call FUNC(effectBloodVolume); + [false] call FUNC(effectBloodVolumeIcon); [false] call FUNC(effectBleeding); }; @@ -42,8 +43,17 @@ if ((!GVAR(heartBeatEffectRunning)) && {_heartRate != 0} && {(_heartRate > 160) // - Visual effects ----------------------------------------------------------- [_unconscious, 2] call FUNC(effectUnconscious); [ - true, linearConversion [BLOOD_VOLUME_CLASS_2_HEMORRHAGE, BLOOD_VOLUME_CLASS_4_HEMORRHAGE, _bloodVolume, 0, 1, true] + true, + linearConversion [BLOOD_VOLUME_CLASS_2_HEMORRHAGE, BLOOD_VOLUME_CLASS_4_HEMORRHAGE, _bloodVolume, 0, 1, true] ] call FUNC(effectBloodVolume); +[ + true, + ceil linearConversion [ + BLOOD_VOLUME_CLASS_2_HEMORRHAGE, BLOOD_VOLUME_CLASS_4_HEMORRHAGE, + _bloodVolume, + ICON_BLOODVOLUME_IDX_MIN, ICON_BLOODVOLUME_IDX_MAX, true + ] +] call FUNC(effectBloodVolumeIcon); [!_unconscious, _pain] call FUNC(effectPain); [!_unconscious, _bleedingStrength, _manualUpdate] call FUNC(effectBleeding); diff --git a/addons/medical_feedback/functions/fnc_initEffects.sqf b/addons/medical_feedback/functions/fnc_initEffects.sqf index 11bee29651..1d908c529d 100644 --- a/addons/medical_feedback/functions/fnc_initEffects.sqf +++ b/addons/medical_feedback/functions/fnc_initEffects.sqf @@ -4,7 +4,7 @@ * Initializes visual effects of medical. * * Arguments: - * 0: Just Pain Effects + * 0: Update pain and low blood volume effects only * * Return Value: * None @@ -15,9 +15,9 @@ * Public: No */ -params [["_justPain", false]]; +params [["_updateOnly", false]]; -TRACE_1("initEffects",_justPain); +TRACE_1("initEffects",_updateOnly); private _fnc_createEffect = { params ["_type", "_layer", "_default"]; @@ -68,7 +68,34 @@ if (isNil QGVAR(ppPainBlur)) then { }; TRACE_1("created pain",GVAR(ppPain)); -if (_justPain) exitWith {}; + +// - Blood volume ------------------------------------------------------------- +private _ppBloodVolumeSettings = [ + "ColorCorrections", + 13503, + [1, 1, 0, [0, 0, 0, 0], [1, 1, 1, 1], [0.2, 0.2, 0.2, 0]] +]; +GVAR(showBloodVolumeIcon) = false; + +if (!isNil QGVAR(ppBloodVolume)) then { + TRACE_1("delete blood volume",GVAR(ppBloodVolume)); + ppEffectDestroy GVAR(ppBloodVolume); + GVAR(ppBloodVolume) = nil; +}; +switch (GVAR(bloodVolumeEffectType)) do { + case FX_BLOODVOLUME_COLOR_CORRECTION: { + GVAR(ppBloodVolume) = _ppBloodVolumeSettings call _fnc_createEffect; + }; + case FX_BLOODVOLUME_ICON: { + GVAR(showBloodVolumeIcon) = true; + }; + case FX_BLOODVOLUME_BOTH: { + GVAR(showBloodVolumeIcon) = true; + GVAR(ppBloodVolume) = _ppBloodVolumeSettings call _fnc_createEffect; + }; +}; + +if (_updateOnly) exitWith {}; // - Unconscious -------------------------------------------------------------- GVAR(ppUnconsciousBlur) = [ @@ -83,14 +110,6 @@ GVAR(ppUnconsciousBlackout) = [ [1, 1, 0, [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]] ] call _fnc_createEffect; - -// - Blood volume ------------------------------------------------------------- -GVAR(ppBloodVolume) = [ - "ColorCorrections", - 13503, - [1, 1, 0, [0, 0, 0, 0], [1, 1, 1, 1], [0.2, 0.2, 0.2, 0]] -] call _fnc_createEffect; - // - Incapacitation ----------------------------------------------------------- GVAR(ppIncapacitationGlare) = [ "ColorCorrections", diff --git a/addons/medical_feedback/initSettings.sqf b/addons/medical_feedback/initSettings.sqf index 6d0965fe9f..128f1f6b91 100644 --- a/addons/medical_feedback/initSettings.sqf +++ b/addons/medical_feedback/initSettings.sqf @@ -17,4 +17,25 @@ TRACE_1("painEffectType setting - resetting effect",_this); [true] call FUNC(initEffects); } -] call CBA_Settings_fnc_init; +] call CBA_fnc_addSetting; + +[ + QGVAR(bloodVolumeEffectType), + "LIST", + [LSTRING(BloodVolumeEffectType_DisplayName), LSTRING(BloodVolumeEffectType_Description)], + [ELSTRING(medical,Category), LSTRING(SubCategory)], + [ + [FX_BLOODVOLUME_COLOR_CORRECTION, FX_BLOODVOLUME_ICON, FX_BLOODVOLUME_BOTH], + [LSTRING(BloodVolumeEffectType_colorCorrection), LSTRING(BloodVolumeEffectType_icon), LSTRING(BloodVolumeEffectType_both)], + 0 + ], + false, + { + if (isNil QGVAR(showBloodVolumeIcon)) exitWith { + TRACE_1("bloodVolumeEffect setting - before postInit",_this); + }; + + TRACE_1("bloodVolumeEffect setting - resetting effect",_this); + [true] call FUNC(initEffects); + } +] call CBA_fnc_addSetting; diff --git a/addons/medical_feedback/script_component.hpp b/addons/medical_feedback/script_component.hpp index 78d72ed3da..54127b6619 100644 --- a/addons/medical_feedback/script_component.hpp +++ b/addons/medical_feedback/script_component.hpp @@ -14,6 +14,7 @@ #define DEBUG_SETTINGS DEBUG_SETTINGS_MEDICAL_FEEDBACK #endif +#include "\a3\ui_f\hpp\defineCommonGrids.inc" #include "\z\ace\addons\medical_engine\script_macros_medical.hpp" #include "\z\ace\addons\main\script_macros.hpp" @@ -42,3 +43,15 @@ #define FX_PAIN_PULSATING_BLUR 1 #define FX_PAIN_CHROMATIC_ABERRATION 2 #define FX_PAIN_ONLY_BASE 3 + +#define FX_BLOODVOLUME_COLOR_CORRECTION 0 +#define FX_BLOODVOLUME_ICON 1 +#define FX_BLOODVOLUME_BOTH 2 + +#define ICON_BLOODVOLUME_IDX_MIN 0 +#define ICON_BLOODVOLUME_IDX_MAX 6 +#define ICON_BLOODVOLUME_PATH(num) format [QPATHTOF(data\bloodVolume_%1.paa), num] +#define ICON_BLOODVOLUME_COLOR_NONE [0, 0, 0, 0] +#define ICON_BLOODVOLUME_COLOR_WHITE [1, 1, 1, 1] +#define ICON_BLOODVOLUME_COLOR_ORANGE [1, 0.6, 0, 1] +#define ICON_BLOODVOLUME_COLOR_RED [0.8, 0.2, 0, 1] diff --git a/addons/medical_feedback/stringtable.xml b/addons/medical_feedback/stringtable.xml index d5177eb699..6947bb7d6b 100644 --- a/addons/medical_feedback/stringtable.xml +++ b/addons/medical_feedback/stringtable.xml @@ -103,6 +103,26 @@ Sadece yüksek ağrı etkisi Nur bei starken Schmerzen + + Low Blood Volume Effect Type + Визуальный эффект низкого объема крови + + + Selects the used low blood volume effect type. + Выбирает тип визуализации эффекта низкого объема крови. + + + Color Fading + Потеря цветности + + + Icon + Иконка + + + Icon + Color Fading + Иконка + Потеря цветности + Enable Screams From 46e4f7c6ec89d4ada4560cb7e52b8a065fac7720 Mon Sep 17 00:00:00 2001 From: Filip Maciejewski Date: Sat, 22 Feb 2020 21:48:40 +0100 Subject: [PATCH 138/194] Medical Damage - Improve description of "DamageThreshold" (#7436) --- addons/medical_damage/stringtable.xml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/addons/medical_damage/stringtable.xml b/addons/medical_damage/stringtable.xml index 5b6407167d..0202addddb 100644 --- a/addons/medical_damage/stringtable.xml +++ b/addons/medical_damage/stringtable.xml @@ -15,18 +15,18 @@ Schwelle für kritischen Spielerschaden - Sets the amount of damage a player can receive before going unconscious. + Sets the amount of damage a player can receive before going unconscious (and dying if "Sum of Trauma" is enabled). プレイヤーが気絶になる前に受けられるダメージ量を決定できます。 - Définit la quantité de dégâts qu'un joueur peut subir avant de perdre connaissance. + Définit la quantité de dégâts qu'un joueur peut subir avant de perdre connaissance (ou mourir, si l'option "Somme des traumatismes" est sélectionnée). Устанавливает количество урона, которое может получить игрок, прежде чем потеряет сознание. Define a quantidade de dano que um jogador pode receber antes de ficar inconsciente. 設定玩家在無意識前能承受多少傷害。 Imposta la quantità di danno che un giocatore può ricevere prima di perdere conoscenza. Nastavuje kolik poškození hráč může obdržet než upadne do bezvědomí. - Definiuje ilość obrażeń jaką może przyjąć gracz przed straceniem przytomności. + Definiuje ilość obrażeń jaką może przyjąć gracz przed straceniem przytomności (oraz śmierci gdy "Suma urazów" jest włączona). Fijar la cantidad de daño que un jugador puede recivir antes de caer inconsciente + Legt die Höhe des Schadens fest, den ein Spieler erhalten kann, bevor er ohnmächtig wird (oder stirbt, wenn "Summe aller Traumata" aktiviert ist). Bir oyuncunun bayılmadan önce alabileceği hasar miktarını belirler. - Legt die Höhe des Schadens fest, den ein Spieler erhalten kann, bevor er ohnmächtig wird. AI Critical Damage Threshold @@ -42,17 +42,17 @@ Schwelle für kritischen KI-Schaden - Sets the amount of damage an AI unit can receive before going unconscious. + Sets the amount of damage an AI unit can receive before going unconscious (or dying when "Sum of Trauma" is enabled). AI が気絶になる前に受けられるダメージ量を決定できます。 - Définit la quantité de dégâts qu'une unité IA peut subir avant de perdre connaissance. + Définit la quantité de dégâts qu'une unité IA peut subir avant de perdre connaissance (ou mourir, si l'option "Somme des traumatismes" est sélectionnée). Устанавливает количество урона, которое может получить ИИ, прежде чем потеряет сознание. Define a quantidade de dano que uma IA pode receber antes de ficar inconsciente. 設定AI在無意識之前能承受多少傷害 Imposta la quantità di danno che un'unità AI può ricevere prima di perdere conoscenza. Nastavuje kolik poškození AI může obdržet než upadne do bezvědomí. - Definiuje ilość obrażeń jaką może przyjąć AI przed straceniem przytomności + Definiuje ilość obrażeń jaką może przyjąć AI przed straceniem przytomności (oraz śmierci gdy "Suma urazów" jest włączona). Fijar la cantidad de daño que la IA puede recivir antes de caer inconsciente - Legt die Höhe des Schadens fest, den eine KI-Einheit erhalten kann, bevor sie ohnmächtig wird. + Legt die Höhe des Schadens fest, den eine KI-Einheit erhalten kann, bevor sie ohnmächtig wird (oder stirbt, wenn "Summe aller Traumata" aktiviert ist). Scrape @@ -612,7 +612,7 @@ Somme des traumatismes Somma dei traumi Celkové množství úrazů - Wiele Urazów + Suma urazów Soma do trauma Suma de traumatismos Summe aller Traumata From 056560e798844e3b729495431e260e356442010f Mon Sep 17 00:00:00 2001 From: padddyyy <50599448+padddyyy@users.noreply.github.com> Date: Sat, 22 Feb 2020 21:53:35 +0100 Subject: [PATCH 139/194] Update German Translations (#7469) --- addons/aircraft/stringtable.xml | 8 +++ addons/arsenal/stringtable.xml | 2 + addons/artillerytables/stringtable.xml | 4 ++ addons/ballistics/stringtable.xml | 29 +++++++++ addons/csw/stringtable.xml | 86 ++++++++++++++++++++++---- addons/dogtags/stringtable.xml | 10 +-- addons/dragon/stringtable.xml | 7 +++ addons/goggles/stringtable.xml | 1 + addons/grenades/stringtable.xml | 6 ++ addons/gunbag/stringtable.xml | 2 +- addons/hellfire/stringtable.xml | 2 +- addons/hot/stringtable.xml | 2 +- addons/javelin/stringtable.xml | 2 +- addons/medical/stringtable.xml | 1 + addons/overpressure/stringtable.xml | 4 +- addons/quickmount/stringtable.xml | 2 +- addons/repair/stringtable.xml | 8 ++- addons/spectator/stringtable.xml | 2 + addons/switchunits/stringtable.xml | 1 + addons/tagging/stringtable.xml | 4 +- addons/vehicles/stringtable.xml | 6 +- addons/weather/stringtable.xml | 2 + addons/zeus/stringtable.xml | 7 ++- 23 files changed, 164 insertions(+), 34 deletions(-) diff --git a/addons/aircraft/stringtable.xml b/addons/aircraft/stringtable.xml index 17a073f16b..d3d8a628e0 100644 --- a/addons/aircraft/stringtable.xml +++ b/addons/aircraft/stringtable.xml @@ -57,48 +57,56 @@ 30毫米高爆燃燒彈 30 mm High-Explosive Incendiary 30mm Odłamkowo-Burzące - Zapalające + 30mm Hochexplosiv/Brandladung 30mm HEI 30毫米高爆燃燒 30 mm HEI 30mm OB-Z + 30mm HEB 30mm DU Armor Piercing 30毫米貧化鈾穿甲彈 30 mm UA Armor Piercing 30mm Zubożony Uran - Przebijające + 30mm abgereichertes panzerbrechendes Uraniumgeschoss 30mm DU AP 30毫米貧鈾穿甲 30 mm UA AP 30mm ZU-P + 30mm DU-PB 30mm Combat Mix 4:1 DU:HEI 30毫米戰鬥混合彈4:1 穿甲:高爆 30 mm Mix de Combat 4:1 UA:HEI 30mm Mieszanka bojowa 4:1 ZU:OB-Z + 30mm Kampfmischung 4:1 DU:HEB 30mm CM 4:1 30毫米 穿高混合 4:1 30 mm MdC 4:1 30mm MB 4:1 + 30mm KM 4:1 30mm Combat Mix 5:1 DU:HEI 30毫米戰鬥混合彈5:1 穿甲:高爆 30 mm Mix de Combat 5:1 UA:HEI 30mm Mieszanka bojowa 5:1 ZU:OB-Z + 30mm Kampfmischung 5:1 DU:HEB 30mm CM 5:1 30毫米 穿高混合 5:1 30 mm MdC 5:1 30mm MB 5:1 + 30mm KM 5:1 diff --git a/addons/arsenal/stringtable.xml b/addons/arsenal/stringtable.xml index 00fed0e0b6..6a9ae11417 100644 --- a/addons/arsenal/stringtable.xml +++ b/addons/arsenal/stringtable.xml @@ -134,6 +134,7 @@ [Shift+Click to save to mission defaults] + [Umschalt+Linksklick um als Standard-Missionsausrüstung zu speichern] [Shift + クリック] でミッション標準として保存します Shift + Klik aby zapisac jako domyślne dla misji [Shift+Клик, чтобы сохранить в настройках по умолчанию] @@ -929,6 +930,7 @@ Potassium levels + Kaliumspiegel Taux de potassium カリウム レベル 钾水平 diff --git a/addons/artillerytables/stringtable.xml b/addons/artillerytables/stringtable.xml index feb44537c5..e79f0236e8 100644 --- a/addons/artillerytables/stringtable.xml +++ b/addons/artillerytables/stringtable.xml @@ -3,6 +3,7 @@ Artillery Rangetable + Artillerieschusstafel 火炮射程表 Tavola balistica per artigliria Dělostřelecké tabulky střelby @@ -15,6 +16,7 @@ Universal Artillery Rangetable + Universale Artillerieschusstafel 通用的火炮射程表 Tavola balistica universale per artiglieria Univerzální dělostřelecká tabulka střelby @@ -60,6 +62,7 @@ Artillery Computer Disabled + Artilleriecomputer ausgeschaltet 停用火炮電腦 Computer artiglieria disattivato Zakázat používání dělostřeleckého počítače @@ -72,6 +75,7 @@ Disable the vanilla artillery computers + Deaktiviert die Vanilla-Artilleriecomputer 停用原本的火炮控制電腦 Disattiva il computer artiglieria vanilla Zakázat používání dělostřeleckého počítače základní hry diff --git a/addons/ballistics/stringtable.xml b/addons/ballistics/stringtable.xml index d54bed0ee3..a8e6634366 100644 --- a/addons/ballistics/stringtable.xml +++ b/addons/ballistics/stringtable.xml @@ -4,6 +4,7 @@ #00 Buckshot + #00 Schrotmunition #00 鹿彈 #00 Buckshot #00 バックショット @@ -14,6 +15,7 @@ #00 Buckshot + #00 Schrotmunition #00 鹿彈 #00 Buckshot #00 バックショット @@ -24,6 +26,7 @@ #0 Buckshot + #0 Schrotmunition #0 鹿彈 #0 Buckshot #0 バックショット @@ -34,6 +37,7 @@ #0 Buckshot + #0 Schrotmunition #0 鹿彈 #0 Buckshot #0 バックショット @@ -44,6 +48,7 @@ #1 Buckshot + #1 Schrotmunition #1 鹿彈 #1 Buckshot #1 バックショット @@ -54,6 +59,7 @@ #1 Buckshot + #1 Schrotmunition #1 鹿彈 #1 Buckshot #1 バックショット @@ -64,6 +70,7 @@ #2 Buckshot + #2 Schrotmunition #2 鹿彈 #2 Buckshot #2 バックショット @@ -74,6 +81,7 @@ #2 Buckshot + #2 Schrotmunition #2 鹿彈 #2 Buckshot #2 バックショット @@ -84,6 +92,7 @@ #3 Buckshot + #3 Schrotmunition #3 鹿彈 #3 Buckshot #3 バックショット @@ -94,6 +103,7 @@ #3 Buckshot + #3 Schrotmunition #3 鹿彈 #3 Buckshot #3 バックショット @@ -104,6 +114,7 @@ #4 Buckshot + #4 Schrotmunition #4 鹿彈 #4 Buckshot #4 バックショット @@ -114,6 +125,7 @@ #4 Buckshot + #4 Schrotmunition #4 鹿彈 #4 Buckshot #4 バックショット @@ -124,6 +136,7 @@ #7 Birdshot + #7 Vogelschrot #7 鹿彈 #7 Birdshot #7 バックショット @@ -133,6 +146,7 @@ #7 Birdshot + #7 Vogelschrot #7 鹿彈 #7 Birdshot #7 バックショット @@ -142,6 +156,7 @@ 12 Gauge 2Rnd #00 Buckshot + 12 Gauge 2Schuss #00 Schrotmunition 12鉛徑 2發 #00 鹿彈 12 Gauge 2Rnd #00 Buckshot 12 ゲージ 2 発入り #00 バックショット @@ -152,6 +167,7 @@ 12 Gauge 2Rnd #0 Buckshot + 12 Gauge 2Schuss #0 Schrotmunition 12鉛徑 2發 #0 鹿彈 12 Gauge 2Rnd #0 Buckshot 12 ゲージ 2 発入り #0 バックショット @@ -162,6 +178,7 @@ 12 Gauge 2Rnd #1 Buckshot + 12 Gauge 2Schuss #1 Schrotmunition 12鉛徑 2發 #1 鹿彈 12 Gauge 2Rnd #1 Buckshot 12 ゲージ 2 発入り #1 バックショット @@ -172,6 +189,7 @@ 12 Gauge 2Rnd #2 Buckshot + 12 Gauge 2Schuss #2 Schrotmunition 12鉛徑 2發 #2 鹿彈 12 Gauge 2Rnd #2 Buckshot 12 ゲージ 2 発入り #2 バックショット @@ -182,6 +200,7 @@ 12 Gauge 2Rnd #3 Buckshot + 12 Gauge 2Schuss #3 Schrotmunition 12鉛徑 2發 #3 鹿彈 12 Gauge 2Rnd #3 Buckshot 12 ゲージ 2 発入り #3 バックショット @@ -192,6 +211,7 @@ 12 Gauge 2Rnd #4 Buckshot + 12 Gauge 2Schuss #4 Schrotmunition 12鉛徑 2發 #4 鹿彈 12 Gauge 2Rnd #4 Buckshot 12 ゲージ 2 発入り #4 バックショット @@ -202,6 +222,7 @@ 12 Gauge 2Rnd #7 Birdshot + 12 Gauge 2Schuss #7 Schrotmunition 12鉛徑 2發 #7 鹿彈 12 Gauge 2Rnd #7 Birdshot 12 ゲージ 2 発入り #7 バックショット @@ -212,6 +233,7 @@ 12 Gauge 6Rnd #00 Buckshot + 12 Gauge 6Schuss #00 Schrotmunition 12鉛徑 6發 #00 鹿彈 12 Gauge 6Rnd #00 Buckshot 12 ゲージ 6 発入り #00 バックショット @@ -222,6 +244,7 @@ 12 Gauge 6Rnd #0 Buckshot + 12 Gauge 6Schuss #0 Schrotmunition 12鉛徑 6發 #0 鹿彈 12 Gauge 6Rnd #0 Buckshot 12 ゲージ 6 発入り #0 バックショット @@ -232,6 +255,7 @@ 12 Gauge 6Rnd #1 Buckshot + 12 Gauge 6Schuss #1 Schrotmunition 12鉛徑 6發 #1 鹿彈 12 Gauge 6Rnd #1 Buckshot 12 ゲージ 6 発入り #1 バックショット @@ -242,6 +266,7 @@ 12 Gauge 6Rnd #2 Buckshot + 12 Gauge 6Schuss #2 Schrotmunition 12鉛徑 6發 #2 鹿彈 12 Gauge 6Rnd #2 Buckshot 12 ゲージ 6 発入り #2 バックショット @@ -252,6 +277,7 @@ 12 Gauge 6Rnd #3 Buckshot + 12 Gauge 6Schuss #3 Schrotmunition 12鉛徑 6發 #3 鹿彈 12 Gauge 6Rnd #3 Buckshot 12 ゲージ 6 発入り #3 バックショット @@ -262,6 +288,7 @@ 12 Gauge 6Rnd #4 Buckshot + 12 Gauge 6Schuss #4 Schrotmunition 12鉛徑 6發 #4 鹿彈 12 Gauge 6Rnd #4 Buckshot 12 ゲージ 6 発入り #4 バックショット @@ -272,6 +299,7 @@ 12 Gauge 6Rnd #7 Birdshot + 12 Gauge 6Schuss #7 Schrotmunition 12鉛徑 6發 #7 鹿彈 12 Gauge 6Rnd #7 Birdshot 12 ゲージ 6 発入り #7 バックショット @@ -281,6 +309,7 @@ 12 Gauge 15Rnd #00 Buckshot + 12 Gauge 15Schuss #00 Schrotmunition 12鉛徑 15發 #00 鹿彈 12 Gauge 15Rnd #00 Buckshot 12 ゲージ 15 発入り #00 バックショット diff --git a/addons/csw/stringtable.xml b/addons/csw/stringtable.xml index 1beb050c2d..3239df574d 100644 --- a/addons/csw/stringtable.xml +++ b/addons/csw/stringtable.xml @@ -3,6 +3,7 @@ Crew Served Weapons + Crew Served Weapons Crew Served Weapons (CSW) Armes lourdes 共用火器 (CSW) @@ -14,6 +15,7 @@ Place Tripod + Platziere Dreibein Montar Tripé Placer le trépied 三脚を設置 @@ -27,7 +29,7 @@ Disassemble Rozložit Démonter - %1 demontieren + Auseinandernehmen Disassemblare Złóż Desmontar @@ -79,6 +81,7 @@ Link %1 + Verbinde %1 Conectar %1 Connecter %1 %1 を接続 @@ -90,6 +93,7 @@ Advanced assembly + Erweiterter Zusammenbau Montagem Avançada Assemblage avancé アドバンスド設置 @@ -101,6 +105,7 @@ Use ace for Assemble/Disassemble of supported static weapons. Loaded ammo is reduced to a single magazine. + Benutze ACE um unterstützte statische Waffen zu montieren/demontieren. Geladene Munition ist auf ein einzelnes Magazin reduziert. Usar o ACE para Montar/Desmontar armas estáticas suportadas. Munição carregada é reduzida para um único carregador. Utilise ACE pour l'assemblage/le désassemblage des armes statiques supportées.\nLes munitions chargées sont réduites à un seul chargeur. 対応している設置型火器に ACE3 の設置と解体を使用します。装填済みの弾倉は 1 つの弾倉に減少します。 @@ -112,6 +117,7 @@ Save extra ammo + Spare extra Munition Economizar munição extra Économiser les munitions supplémentaires 過剰弾薬を保持 @@ -123,6 +129,7 @@ Store extra magazines next to static weapon + Lager extra Magazine neben der statischen Waffe Carregar munições extras próximo à arma estática Range les chargeurs supplémentaires à côté de l'arme statique. 次の設置型火器用に過剰弾薬を保持します。 @@ -134,6 +141,7 @@ Ammo handling + Munitionsmanagement Manipulação de Munições Manipulation des munitions 弾薬の処理 @@ -145,6 +153,7 @@ Allow loading and unloading magazines + Erlaubt es Magazine zu- und entladen. Permite carregamento e descarregamento de munições Définit qui peut charger et décharger des chargeurs. 弾薬の装填と除去を許可します。 @@ -156,6 +165,7 @@ Interaction Time Coefficent + Interaktionsdauerkoeffizient Coeficiente de tempo para a interação Coefficient du temps d'interaction インタラクション時間係数 @@ -167,6 +177,7 @@ Scales time required to assemble and reload static weapons + Skaliert die Zeit die benötigt wird um statische Waffen aufzubauen und nachzuladen. Escala o tempo requerido para montar e recarregar armas estáticas. Définit l'échelle de temps nécessaire à l'assemblage et au rechargement des armes statiques. 設置型火器の設置と再装填時間を管理できます。 @@ -178,6 +189,7 @@ Drag tripods after deploying + Ziehe Dreibeine nach Aufbau Arrastar tripés após montar Glisser trépied après déploiement 設置後に三脚を引きずる @@ -189,6 +201,7 @@ After deploying a tripod, start dragging it to a precise location + Ziehe das Dreibein zu einer exakten Position nachdem es aufgestellt wurde. Assim que montar um tripé, automaticamente começa a arrastá-lo para um posicionamento mais preciso Aussitôt après avoir déployé un trépied, le joueur commence automatiquement à le glisser pour le positionner plus précisément. 三脚を設置後、動かせるよう三脚を引きずるようにします。 @@ -200,6 +213,7 @@ Pickup Tripod + Dreibein aufnehmen Carregar Tripé Ramasser Trépied 三脚を拾う @@ -211,6 +225,7 @@ Mount Weapon + Waffe montieren Montar Arma Monter Arme 火器を乗せる @@ -222,6 +237,7 @@ Disassembling Gun... + Nehme Waffe auseinander... Desmontando Arma... Désassemblage de l'arme... 火器を解体中です・・・ @@ -233,6 +249,7 @@ Assembling Gun... + Montiere Waffe... Montando Arma... Assemblage de l'arme... 火器を設置中です・・・ @@ -244,6 +261,7 @@ Picking Up Tripod... + Nehme Dreibein auf... Carregando Tripé... Ramassage du trépied... 三脚を取得中です・・・ @@ -255,6 +273,7 @@ Placing Tripod... + Platziere Dreibein... Montando Tripé... Installation du trépied... 三脚を設置中です・・・ @@ -266,6 +285,7 @@ Enable CSW + Aktiviere CSW Ativar CSW Activer CSW CSW 有効化 @@ -277,6 +297,7 @@ Enables Crew Served ability on this weapon + Ermögliche CSW auf dieser Waffe Ativar funções de CSW nessa arma Active les fonctions CSW sur cette arme. この火器で共用火器を有効化します。 @@ -288,6 +309,7 @@ Enabled and Leave Weapon Empty + Aktiviere und lasse diese Waffe leer Ativado e deixar arma vazia Activer et laisser l'arme vide 火器有効化し空を維持 @@ -312,6 +334,7 @@ [CSW] Static Mini-Spike Launcher (AT) + [CSW] Statische Lenkwaffe "Mini-Spike" (AT) [CSW] Lançador Estático - Mini-Spike (AT) [CSW] Lanceur Statique Mini-Spike (AT) [CSW] 設置型ミニ スパイク ランチャー (AT) @@ -323,6 +346,7 @@ [CSW] Static Mini-Spike Launcher (AA) + [CSW] Statische Lenkwaffe "Mini-Spike" (AA) [CSW] Lançador Estático - Mini-Spike (AA) [CSW] Lanceur Statique Mini-Spike (AA) [CSW] 設置型ミニ スパイク ランチャー (AA) @@ -334,6 +358,7 @@ [CSW] Static XM312 Gun + [CSW] Statische XM312 [CSW] Arma Estática - XM312 [CSW] Mitrailleuse Statique XM312 [CSW] 設置型 XM312 @@ -345,6 +370,7 @@ [CSW] Static XM312 Gun (Autonomous) + [CSW] Statische XM312 (Autonom) [CSW] Arma Estática - XM312 (Autônoma) [CSW] Mitrailleuse Statique XM312 (Autonome) [CSW] 設置型 XM312 (自律型) @@ -356,6 +382,7 @@ [CSW] Static XM307 Gun + [CSW] Statische XM307 [CSW] Arma Estática - XM307 [CSW] Mitrailleuse Statique XM307 [CSW] 設置型 XM307 @@ -367,6 +394,7 @@ [CSW] Static XM307 Gun (Autonomous) + [CSW] Statische XM307 (Autonom) [CSW] Arma Estática - XM307 (Autônoma) [CSW] Mitrailleuse Statique XM307 (Autonome) [CSW] 設置型 XM307 (自律型) @@ -378,6 +406,7 @@ [CSW] 12.7x108mm HMG Belt + [CSW] 12.7x108mm HMG-Gurt [CSW] Cinto de Munição - 12.7x108mm HMG [CSW] Bande 12.7x108mm HMG [CSW] 12.7x108 mm HMG ベルト @@ -389,6 +418,7 @@ [CSW] 12.7x99mm HMG Belt + [CSW] 12.7x99mm HMG-Gurt [CSW] Cinto de Munição - 12.7x99mm HMG [CSW] Bande 12.7x99mm HMG [CSW] 12.7x99 mm HMG ベルト @@ -400,6 +430,7 @@ [CSW] 12.7x99mm Tracer HMG Belt (Red) + [CSW] 12.7x99mm Leuchtspur HMG-Gurt (Rot) [CSW] Cinto de Munição - 12.7x99mm HMG (Traçante Vermelho) [CSW] Bande 12.7x99mm HMG Traçantes (Rouges) [CSW] 12.7x99 mm HMG 曳光弾ベルト (赤) @@ -411,6 +442,7 @@ [CSW] 12.7x99mm Tracer HMG Belt (Green) + [CSW] 12.7x99mm Leuchtspur HMG-Gurt (Grün) [CSW] Cinto de Munição - 12.7x99mm HMG (Traçante Verde) [CSW] Bande 12.7x99mm HMG Traçantes (Vertes) [CSW] 12.7x99 mm HMG 曳光弾ベルト (緑) @@ -422,6 +454,7 @@ [CSW] 12.7x99mm Tracer HMG Belt (Yellow) + [CSW] 12.7x99mm Leuchtspur HMG-Gurt (Gelb) [CSW] Cinto de Munição - 12.7x99mm HMG (Traçante Amarelo) [CSW] Bande 12.7x99mm HMG Traçantes (Jaunes) [CSW] 12.7x99 mm HMG 曳光弾ベルト (黄) @@ -433,6 +466,7 @@ [CSW] 20mm Grenade GMG Belt + [CSW] 20mm Granate GMG-Gurt [CSW] Cinto de Munição - Granada 20mm GMG [CSW] Bande Grenades 20mm GMG [CSW] 20 mm てき弾 GMG ベルト @@ -444,6 +478,7 @@ M3 Tripod + M3 Dreibein M3 Tripé Trépied M3 M3 三脚 @@ -455,6 +490,7 @@ [CSW] 6P57 Deployable Tripod + [CSW] 6P57 aufstellbares Dreibein [CSW] 6P57 Tripé Ajustável [CSW] 6P57 Trépied déployable [CSW] 6P57 設置型三脚 @@ -466,6 +502,7 @@ [CSW] 6P57 Deployable Tripod (Low) + [CSW] 6P57 aufstellbares Dreibein (Niedrig) [CSW] 6P57 Tripé Ajustável (Baixo) [CSW] 6P57 Trépied déployable (Bas) [CSW] 6P57 設置型三脚 (低座) @@ -477,6 +514,7 @@ [CSW] M220 Deployable Tripod + [CSW] M220 aufstellbares Dreibein [CSW] M220 Tripé Ajustável [CSW] M220 Trépied déployable [CSW] M220 設置型三脚 @@ -488,6 +526,7 @@ [CSW] SAG-30 Deployable Tripod + [CSW] SAG-30 aufstellbares Dreibein [CSW] SAG-30 Tripé Ajustável [CSW] SAG-30 Trépied déployable [CSW] SAG-30 設置型三脚 @@ -499,6 +538,7 @@ 6P57 Tripod + 6P57 Dreibein Tripé 6P57 Trépied 6P57 6P57 三脚 @@ -510,6 +550,7 @@ SAG-30 Tripod + SAG-30 Dreibein Tripe SAG-30 Trépied SAG-30 SAG-30 三脚 @@ -521,6 +562,7 @@ M220 Tripod + M220 Dreibein Tripé M220 Trépied M220 M220 三脚 @@ -532,6 +574,7 @@ [CSW] M3 Deployable Tripod + [CSW] M3 aufstellbares Dreibein [CSW] M3 Tripe Ajustável [CSW] M3 Trépied déployable [CSW] M3 設置型三脚 @@ -543,6 +586,7 @@ [CSW] M3 Deployable Tripod (Low) + [CSW] M3 aufstellbares Dreibein (Niedrig) [CSW] M3 Tripe Ajustável (Baixo) [CSW] M3 Trépied déployable (Bas) [CSW] M3 設置型三脚 (低座) @@ -554,6 +598,7 @@ [CSW] Mortar Baseplate + [CSW] M3 Mörsergrundplatte [CSW] Placa base de Morteiro [CSW] Plaque de base pour Mortier [CSW] 迫撃砲基盤 @@ -565,6 +610,7 @@ Mortar Baseplate + Mörsergrundplatte Placa base de Morteiro Plaque de base pour Mortier 迫撃砲基盤 @@ -576,6 +622,7 @@ [CSW] Mk6 Mortar Tube + [CSW] Mk6 Mörserrohr [CSW] Tubo de Morteiro - Mk6 [CSW] Tube Mortier Mk6 [CSW] Mk6 迫撃砲発射筒 @@ -587,6 +634,7 @@ [CSW] M252 Tube Bag + [CSW] M252 Mörser Rohr Transporttasche [CSW] Tubo de Morteiro - M252 [CSW] Sac Tube M252 [CSW] M252 発射筒バッグ @@ -598,6 +646,7 @@ [CSW] M2 Gun Bag + [CSW] M2 Waffentasche [CSW] Bolsa de Arma - M2 [CSW] Sac M2 [CSW] M2 ガン バッグ @@ -609,6 +658,7 @@ [CSW] MK19 Gun Bag + [CSW] MK19 Waffentasche [CSW] Bolsa de Arma - MK19 [CSW] Sac MK19 [CSW] Mk19 ガン バッグ @@ -620,6 +670,7 @@ [CSW] BGM-71 TOW Launcher Bag + [CSW] BGM-71 TOW Werfer Transporttasche [CSW] Bolsa de Lançador - BGM-71 TOW [CSW] Sac Lanceur BGM-71 TOW [CSW] BGM-71 TOW ランチャー バッグ @@ -631,6 +682,7 @@ [CSW] DSHK Gun Bag + [CSW] DSHK Waffentasche [CSW] Bolsa de Arma - DSHK [CSW] Sac DSHK [CSW] DShK ガン バッグ @@ -642,6 +694,7 @@ [CSW] 2B14 Tube Bag + [CSW] 2B14 Werfer Transporttasche [CSW] Bolsa de Arma - 2B14 [CSW] Sac Tube 2B14 [CSW] 2B14 発射筒バッグ @@ -653,6 +706,7 @@ [CSW] NSV Gun Bag + [CSW] NSV Waffentasche [CSW] Bolsa de Arma - NSV [CSW] Sac NSV [CSW] NSV ガン バッグ @@ -664,6 +718,7 @@ [CSW] KORD Gun Bag + [CSW] KORD Waffentasche [CSW] Bolsa de Arma - KORD [CSW] Sac KORD [CSW] KORD ガン バッグ @@ -675,6 +730,7 @@ [CSW] AGS-30 Gun Bag + [CSW] AGS-30 Waffentasche [CSW] Bolsa de Arma - AGS-30 [CSW] Sac AGS-30 [CSW] AGS-30 バッグ @@ -685,29 +741,32 @@ [CSW] Torba na AGS-30 - [CSW] 9k115 Metis Launcher Bag - [CSW] Bolsa de Arma - 9k115 Metis + [CSW] 9K115 Metis Launcher Bag + [CSW] 9K115 Metis Werfer Transporttasche + [CSW] Bolsa de Arma - 9K115 Metis [CSW] Sac Lanceur 9K115 Metis [CSW] 9K115 メティス ランチャー バッグ - [CSW] 9k115 麥士蒂索人發射器袋 - [CSW] 9k115 Metis Launcher Bag - [CSW] 9k115 Metis raketomet v pouzdře + [CSW] 9K115 麥士蒂索人發射器袋 + [CSW] 9K115 Metis Launcher Bag + [CSW] 9K115 Metis raketomet v pouzdře + [CSW] Torba na 9K115 Metis [CSW] 9k115 Metis Launcher Bag - [CSW] Torba na 9k115 Metis - [CSW] 9m113 Kornet Launcher - [CSW] Bolsa de Arma - 9m113 Kornet + [CSW] 9M113 Kornet Launcher + [CSW] 9M113 Kornet Werfer + [CSW] Bolsa de Arma - 9M113 Kornet [CSW] Sac Lanceur 9M113 Kornet [CSW] 9M113 コルネット ランチャー バッグ [CSW] 9M113 短號發射器 - [CSW] 9m113 Kornet Launcher - [CSW] 9m113 Kornet raketomet + [CSW] 9M113 Kornet Launcher + [CSW] 9M113 Kornet raketomet + [CSW] Wyrzutnia 9M113 Kornet [CSW] 9m113 Kornet Launcher - [CSW] Wyrzutnia 9m113 Kornet SPG-9 Tripod + SPG-9 Dreibein Tripé SPG-9 Trépied SPG-9 SPG-9 三脚 @@ -719,6 +778,7 @@ [CSW] SPG-9 Deployable Tripod + [CSW] SPG-9 aufstellbares Dreibein [CSW] SPG-9 Tripe Ajustável (Baixo) [CSW] SPG-9 Trépied déployable [CSW] SPG-9 設置型三脚 @@ -730,6 +790,7 @@ [CSW] SPG-9 Launcher Bag + [CSW] SPG-9 Werfer Transporttasche [CSW] Bolsa de Lançador - SPG-9 [CSW] Sac Lanceur SPG-9 [CSW] SPG-9 ランチャー バッグ @@ -741,6 +802,7 @@ [CSW] SPG-9M Launcher Bag + [CSW] SPG-9M Werfer Transporttasche [CSW] Bolsa de Lançador - SPG-9M [CSW] Sac Lanceur SPG-9M [CSW] SPG-9M ランチャー バッグ diff --git a/addons/dogtags/stringtable.xml b/addons/dogtags/stringtable.xml index d32205351b..c5d2cc1cbd 100644 --- a/addons/dogtags/stringtable.xml +++ b/addons/dogtags/stringtable.xml @@ -7,7 +7,7 @@ Жетон Identifikační známka ドッグ タグ - Hundemarke + Erkennungsmarke 군번줄 Plaque d'identification Piastrina @@ -23,7 +23,7 @@ Проверить жетон Zkontrolovat známku ドッグ タグを見る - Hundemarke prüfen + Erkennungsmarke prüfen 군번줄 확인 Vérifier la plaque d'identification Controlla Piastrina @@ -71,7 +71,7 @@ Жетон снят с %1... Sebral jsem známku od %1... %1からドッグ タグを取っています・・・ - Hundemarke von %1 genommen ... + Erkennungsmarke von %1 genommen... %1로부터 군번줄을 회수했습니다... Plaque d'identification prise sur %1... Piastrina presa da %1... @@ -87,7 +87,7 @@ Кто-то уже забрал жетон... Někdo jiný už vzal identifikační známku... すでにドッグ タグは取られています・・・ - Jemand anderes hat bereits die Hundemarke genommen ... + Jemand anderes hat bereits die Erkennungsmarke genommen... 누군가 이미 군번줄을 회수해갔습니다... Quelqu'un d'autre a déjà pris la plaque d'identification... Qualcun altro ha già preso la piastrina... @@ -98,7 +98,7 @@ Onscreen display for checking dogtags - Anzeige um Hundemarke zu überprüfen + Anzeige um Erkennungsmarke zu überprüfen 在畫面中顯示檢查兵籍牌 確認中のドッグタグを画面上で表示します Display su schermo per il controllo delle piastrine diff --git a/addons/dragon/stringtable.xml b/addons/dragon/stringtable.xml index e94ac1f806..0f4b6d23b0 100644 --- a/addons/dragon/stringtable.xml +++ b/addons/dragon/stringtable.xml @@ -3,6 +3,7 @@ [CSW] M47 Super-Dragon + [CSW] M47 Super-Dragon [CSW] M47 Super-Dragon [CSW] M47 Super-Dragon [CSW] M47 スーパー ドラゴン @@ -14,6 +15,7 @@ M47 Super-Dragon + M47 Super-Dragon M47 Super-Dragon M47 Super-Dragon M47 スーパー ドラゴン @@ -25,6 +27,7 @@ Attach Sight + Bringe Visier an Colocar Mira Monter le viseur 照準器を取り付ける @@ -35,6 +38,7 @@ Detach Sight + Nehme Visier ab Remover Mira Démonter le viseur 照準器を外す @@ -45,6 +49,7 @@ SU-36/P Daysight + SU-36/P Daysight SU-36/P Daysight SU-36/P Daysight SU-36/P デイサイト @@ -56,6 +61,7 @@ A light, cheap sight used for daytime operations. Contains the guidance computer for the whole system + Ein leichte, billige Visierung for Tageseinsätze. Beinhaltet den Zielsuchcomputer für das ganze System. Uma mira leve e comum utilizada para operações de dia. Contêm o computador de orientação para todo o sistema. Un viseur léger et bon marché utilisé pour les opérations de jour.\nContient l'ordinateur de guidage pour tout le système. 昼間時に使用される軽量で、低価格の照準器です。システム全体の誘導コンピュータを備えています。 @@ -66,6 +72,7 @@ A Wire-Guided SACLOS missile with a unique flight characteristic + Eine Drahtgelenkte SACLOS-Rakete mit einer einzigartigen Flugcharakteristik Um míssil SACLOS, guiado por fio com uma característica única de vôo Un missile filoguidé SACLOS, présentant une caractéristique de vol exceptionnelle. 特徴的な飛行特性を持つ、ワイヤ誘導の SACLOS ミサイルです。 diff --git a/addons/goggles/stringtable.xml b/addons/goggles/stringtable.xml index 19eadab410..302eef0512 100644 --- a/addons/goggles/stringtable.xml +++ b/addons/goggles/stringtable.xml @@ -117,6 +117,7 @@ Show Wipe Goggles self interaction + Zeige "Brille abwischen" im Selbstinteraktionsmenü Pokaż interakcję Wyczyść Gogle Mostra interazione automatica per la pulizia degli occhiali Ukaž Vyčistit brýle v menu Interakce (vlastní) diff --git a/addons/grenades/stringtable.xml b/addons/grenades/stringtable.xml index f34a807796..2890e1cc16 100644 --- a/addons/grenades/stringtable.xml +++ b/addons/grenades/stringtable.xml @@ -414,6 +414,7 @@ Type: Star Parachute Flare + Typ: Fallschirmfackel Typ: Gwiezdna Flara Spadochronowa Tipo: Granata a paracadute con bengala 種類: パラシュート式照明弾 (星弾) @@ -425,6 +426,7 @@ M583 Illumination Flare (White) + M583 Leuchtfackel (Weiß) M583 Flara oświetlająca (Biała) M583 Granata con bengala (Bianca) M583 照明弾 (白) @@ -436,6 +438,7 @@ M662 Illumination Flare (Red) + M662 Leuchtfackel (Rot) M662 Flara oświetlająca (Czerwona) M662 Granata con bengala (Rossa) M662 照明弾 (赤) @@ -447,6 +450,7 @@ M661 Illumination Flare (Green) + M661 Leuchtfackel (Grün) M661 Flara oświetlająca (Zielona) M661 Granata con bengala (Verde) M661 照明弾 (緑) @@ -458,6 +462,7 @@ Type: Parachute IR Flare + Typ: Infrarote Fallschirmfackel Typ: Spadochronowa Flara IR Tipo: Granata a paracadute con infrarosso 種類: パラシュート式赤外線照明弾 @@ -469,6 +474,7 @@ M992 Illumination IR Flare + M992 IR Leuchtfackel M992 Oświetlająca flara IR M992 Granata con infrarosso M992 赤外線照明弾 diff --git a/addons/gunbag/stringtable.xml b/addons/gunbag/stringtable.xml index 5363a3108e..73b21f45e7 100644 --- a/addons/gunbag/stringtable.xml +++ b/addons/gunbag/stringtable.xml @@ -19,7 +19,7 @@ Gunbag (Tan) - Waffentasche (Tan) + Waffentasche (hellbraun) Housse d'arme (marron clair) Чехол (желтовато-коричневый) Pouzdro na zbraň (Žlutohnědá) diff --git a/addons/hellfire/stringtable.xml b/addons/hellfire/stringtable.xml index 44072d96ea..c621e6ddb4 100644 --- a/addons/hellfire/stringtable.xml +++ b/addons/hellfire/stringtable.xml @@ -3,7 +3,7 @@ Set Hellfire mode - Setze Hellfire-Modus + Hellfire-Modus einstellen Imposta modalità Hellfire ヘルファイア モードを設定 设定地狱火模式 diff --git a/addons/hot/stringtable.xml b/addons/hot/stringtable.xml index 833cbe787f..d688d06828 100644 --- a/addons/hot/stringtable.xml +++ b/addons/hot/stringtable.xml @@ -17,7 +17,7 @@ Semi-automatic command to line of sight - halbautomatische Steuerung über Sichtverbindung (SACLOS) + Halbautomatische Steuerung über Sichtverbindung (SACLOS) Semi-automatyczna komenda do pola widzenia Comando Semi-Automatico via Contatto Visivo(SACLOS) 半自動指令照準線一致誘導方式 diff --git a/addons/javelin/stringtable.xml b/addons/javelin/stringtable.xml index e8e1a2a747..77b6d4a623 100644 --- a/addons/javelin/stringtable.xml +++ b/addons/javelin/stringtable.xml @@ -3,7 +3,7 @@ Lock Target (Hold) - Ziel aufschalten + Ziel aufschalten (Halten) Захватить цель (удерживать) Zamknout cíl (držet) Namierz cel (przytrzymaj) diff --git a/addons/medical/stringtable.xml b/addons/medical/stringtable.xml index c0bd142b29..a1dcdf3169 100644 --- a/addons/medical/stringtable.xml +++ b/addons/medical/stringtable.xml @@ -48,6 +48,7 @@ Epinephrine Wake Up Chance Boost Zwiększenie szansy na wybudzenie po podaniu epinefryny 腎上腺素甦醒率加成 + Erhöhung der Aufwachüberprüfungsrate durch Epinephrin Increases how often spontaneous wake up checks happen when patient has Epinephrine in their system. diff --git a/addons/overpressure/stringtable.xml b/addons/overpressure/stringtable.xml index ee40441326..b701337cb2 100644 --- a/addons/overpressure/stringtable.xml +++ b/addons/overpressure/stringtable.xml @@ -33,7 +33,7 @@ Backblast range - Rückstoßbereich + Rückstrahlzone 後方噴射の範囲 向后喷射的范围 後方尾焰的範圍 @@ -47,7 +47,7 @@ Backblast angle - Rückstoßwinkel + Rückstrahlwinkel 後方噴射の角度 向后喷射的角度 後方尾焰的角度 diff --git a/addons/quickmount/stringtable.xml b/addons/quickmount/stringtable.xml index 1945dae8a6..5062652e6c 100644 --- a/addons/quickmount/stringtable.xml +++ b/addons/quickmount/stringtable.xml @@ -129,7 +129,7 @@ Maximum vehicle speed (km/h) allowed for player entry - Maximale Geschwindigkeit (km/h) für Schnellzugang + Maximale erlaubte Geschwindigkeit (km/h) für Schnellzugang Velocità massima del veicolo (km/h) consentita per far salire un giocatore プレイヤーが搭乗できる限界速度 (km/h) 设置玩家能在最高速度是多少的情况之下进入载具。 diff --git a/addons/repair/stringtable.xml b/addons/repair/stringtable.xml index f0dcf9681a..549fbd594a 100644 --- a/addons/repair/stringtable.xml +++ b/addons/repair/stringtable.xml @@ -1846,7 +1846,7 @@ Wheel Repair Requirements - Erfordernisse zur Reifenreperatur + Bedingungen für die Reifenreperatur Wym. naprawy kół Requisitos de reparación de ruedas Для ремонта колес требуется @@ -1876,6 +1876,7 @@ Misc Repair Requirements + Sonstige Reparaturbedingungen 部分修理条件 額外修理條件 Exigences pour réparations diverses @@ -1887,6 +1888,7 @@ Items required to repair a specific vehicle component or remove/replace tracks. + Gegenstände die benötigt werden, um eine spezifische Fahrzeugkomponente oder eine Kette zu entfernen/auszutauschen. 車両の特定コンポーネントか履帯の除去/交換にアイテムを必要とします。 是否需要物品來修復一些特別載具部位或者移除/替換履帶 Outils nécessaires pour la réparation d'un équipement spécifique du véhicule, et pour le démontage ou le remplacement des chenilles. @@ -1898,6 +1900,7 @@ Full Repair Requirements + Bedingungen für vollständige Reparatur 完全修理条件 完整修復條件 Exigences pour réparations complètes @@ -1909,6 +1912,7 @@ Items required to perform a full vehicle repair. + Gegenstände die benötigt werden um ein Fahrzeug vollständig zu reparieren. 車両の完全修理にアイテムを必要とします。 是否需要物品來完整修復載具 Outils nécessaires pour effectuer une réparation complète des véhicules. @@ -1920,7 +1924,7 @@ Engine must be off to repair - Motor muss ausgeschaltet zu reparieren sein + Motor muss ausgeschaltet sein um zu reparieren El motor necesita desactivado para la reparación Pro opravu je zapotřebí vypnout motor O motor deve estar desligado para manutenção diff --git a/addons/spectator/stringtable.xml b/addons/spectator/stringtable.xml index 55541ddced..3ca8c3ba17 100644 --- a/addons/spectator/stringtable.xml +++ b/addons/spectator/stringtable.xml @@ -203,6 +203,7 @@ Max Follow Distance + Maximale Beobachtungsdistance Макс. дистанция следования 最大追随距離 Distância Máxima de Acompanhamento @@ -214,6 +215,7 @@ Maximum distance the follow camera can be from the target + Maximale Distanz in welcher die Kamera dem Ziel folgen kann. Максимальная дистанция от камеры слежения до цели カメラが目標へ追随できる最大距離を決定できます。 A distância máxima que a câmera de acompanhamento pode estar do alvo. diff --git a/addons/switchunits/stringtable.xml b/addons/switchunits/stringtable.xml index 16819100e3..407e625fdf 100644 --- a/addons/switchunits/stringtable.xml +++ b/addons/switchunits/stringtable.xml @@ -67,6 +67,7 @@ Enable switch side + Ermögliche Seitenwechsel Permettre le changement de camp 啟用陣營切換 Povolit změnu strany diff --git a/addons/tagging/stringtable.xml b/addons/tagging/stringtable.xml index a8f5fd0db4..bcb9e34d5d 100644 --- a/addons/tagging/stringtable.xml +++ b/addons/tagging/stringtable.xml @@ -6,7 +6,7 @@ Маркировка タグ付け Tagowanie - Markierungssystem (Spraydose) + Markieren (Spraydose) 뿌리기 Marquage Marcamento @@ -21,7 +21,7 @@ Настройка работы системы спрей-маркеров по-умолчанию. 標準で開くタグ付けシステムの設定を行います。 Skonfiguruj zachowanie systemu tagowania. - Konfiguriert, wie das Markierungssystem standardmäßig funktioniert. + Konfiguriert, wie das Markieren standardmäßig funktioniert. 뿌리기 시스템의 기본사항을 설정합니다. Configure le fonctionnement par défaut du système de marquage. Configura quanto il sistema di marcamento agirà da se. diff --git a/addons/vehicles/stringtable.xml b/addons/vehicles/stringtable.xml index 5da695c225..1d391debd2 100644 --- a/addons/vehicles/stringtable.xml +++ b/addons/vehicles/stringtable.xml @@ -3,7 +3,7 @@ Speed Limiter on - Begrenzer an + Geschwindigkeitsbegrenzer an Limitador de velocidad activado Ogranicznik prędkości włączony Omezovač rychlosti zapnut @@ -20,7 +20,7 @@ Speed Limiter off - Begrenzer aus + Geschwindigkeitsbegrenzer aus Limitador de velocidad desactivado Ogranicznik prędkości wyłączony Omezovač rychlosti vypnut @@ -51,7 +51,7 @@ Speed Limiter - Begrenzer + Geschwindigkeitsbegrenzer Limitador de velocidad Ogranicznik prędkości Omezovač rychlosti diff --git a/addons/weather/stringtable.xml b/addons/weather/stringtable.xml index 2a61813cc9..977282dcd3 100644 --- a/addons/weather/stringtable.xml +++ b/addons/weather/stringtable.xml @@ -166,6 +166,7 @@ Check Air Temperature + Überprüfe Lufttemperatur 檢查氣溫 Controllare la temperatura dell'aria Zkontrolovat teplotu vzduchu @@ -177,6 +178,7 @@ Show Check Air Temperature Action + Zeige "Überprüfe Lufttemperatur" im Selbstinteraktionsmenü 顯示檢查氣溫動作 Mostra Controlla l'azione della temperatura dell'aria Ukázat akci kontroly teploty vzduchu diff --git a/addons/zeus/stringtable.xml b/addons/zeus/stringtable.xml index ec4e942e53..82665d8cc7 100644 --- a/addons/zeus/stringtable.xml +++ b/addons/zeus/stringtable.xml @@ -314,6 +314,7 @@ Add Objects + Füge Objekte hinzu 新增物件 Aggiungi Oggetti オブジェクト追加 @@ -341,7 +342,7 @@ All Curators - Alle Zeus' + Alle Kuratoren 全キュレーター 모든 큐레이터 Wszyscy kuratorzy @@ -355,7 +356,7 @@ Apply changes to all curators - Änderungen bei allen Zeus' aktualisieren + Änderungen bei allen Kuratoren aktualisieren 全キュレーターへ変更を適用します。 모든 큐레이터에 변화를 적용합니다 Zatwierdź zmiany dla wszystkich kuratorów @@ -1803,7 +1804,7 @@ Paradrop Cargo - Paradrop Ladung + Ladung abwerfen (Fallschirm) カーゴを空中投下 Zrzut ładunku (cargo) Десантировать груз From d7f12eb49adce1414e6733e0d857578c25d33956 Mon Sep 17 00:00:00 2001 From: mharis001 <34453221+mharis001@users.noreply.github.com> Date: Sat, 22 Feb 2020 15:57:04 -0500 Subject: [PATCH 140/194] Medical - Use percentage sliders for chance settings (#7542) --- addons/medical/initSettings.sqf | 2 +- addons/medical_treatment/initSettings.sqf | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/medical/initSettings.sqf b/addons/medical/initSettings.sqf index bb2459c257..367b4f56ba 100644 --- a/addons/medical/initSettings.sqf +++ b/addons/medical/initSettings.sqf @@ -34,7 +34,7 @@ "SLIDER", [LSTRING(SpontaneousWakeUpChance_DisplayName), LSTRING(SpontaneousWakeUpChance_Description)], LSTRING(Category), - [0, 1, 0.05, 2], + [0, 1, 0.05, 2, true], true ] call CBA_settings_fnc_init; diff --git a/addons/medical_treatment/initSettings.sqf b/addons/medical_treatment/initSettings.sqf index 636e0330e7..9ad04c2578 100644 --- a/addons/medical_treatment/initSettings.sqf +++ b/addons/medical_treatment/initSettings.sqf @@ -195,7 +195,7 @@ "SLIDER", [LSTRING(CPRSuccessChance_DisplayName), LSTRING(CPRSuccessChance_Description)], [ELSTRING(medical,Category), LSTRING(SubCategory_Treatment)], - [0, 1, 0.4, 2], + [0, 1, 0.4, 2, true], true ] call CBA_settings_fnc_init; From d5f8f93a9a830737a76f13d2862d63029beab3c7 Mon Sep 17 00:00:00 2001 From: Sycholic Date: Sat, 22 Feb 2020 16:09:10 -0500 Subject: [PATCH 141/194] Mine Detector - Updated mine detector audio from -20db to -2db (#7460) --- addons/minedetector/sounds/metal_detector.wav | Bin 43322 -> 46272 bytes addons/minedetector/sounds/metal_detector.wss | Bin 7220 -> 39690 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/addons/minedetector/sounds/metal_detector.wav b/addons/minedetector/sounds/metal_detector.wav index 59f3b43ebef2d0f54e73ddc90fc228cbf67a53ff..f07e1280610b15d78f7d4d1809cac2fc9c0f7ed3 100644 GIT binary patch literal 46272 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

PuVmA%mZ-G13&wePcpR86Q(uY6cD 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

N9Yy!*7xWUv=RLT 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 T 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 diff --git a/addons/minedetector/sounds/metal_detector.wss b/addons/minedetector/sounds/metal_detector.wss index 3ba5d3b7e33ed7622478649b9bed2ebb2d9360d0..4fe2135cb17ec8a410f2e6c69f28611793b6c6a4 100644 GIT binary patch literal 39690 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%0AW)YmH!TW~P1ndY}9rUl$3&vdA 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 V_T_Valf<4Zg>2Wr+L`2@{{jAb#drV! literal 7220 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 SuOO9p@Aon(20-?{#Qy`n?Wzs{ From 1ee2e6adb271de4bf69921fc0043cbb84d33da47 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Sat, 22 Feb 2020 15:15:09 -0600 Subject: [PATCH 142/194] Arsenal - Filter non-scope 2 mags from being auto-added (#7445) --- .../arsenal/functions/fnc_onSelChangedLeft.sqf | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/addons/arsenal/functions/fnc_onSelChangedLeft.sqf b/addons/arsenal/functions/fnc_onSelChangedLeft.sqf index f2bdc48294..7d77b8c2b7 100644 --- a/addons/arsenal/functions/fnc_onSelChangedLeft.sqf +++ b/addons/arsenal/functions/fnc_onSelChangedLeft.sqf @@ -57,8 +57,12 @@ switch (GVAR(currentLeftPanel)) do { call _fnc_clearPreviousWepMags; private _compatibleItems = (_item call bis_fnc_compatibleItems) apply {tolower _x}; + private _cfgMags = configFile >> "CfgMagazines"; + private _compatibleMags = ([_item, true] call CBA_fnc_compatibleMagazines) select { getNumber (_cfgMags >> _x >> "scope") == 2 }; GVAR(center) addWeapon _item; - GVAR(center) addWeaponItem [_item, [(getArray (configfile >> "cfgweapons" >> _item >> "magazines")) select 0]]; + if ((count _compatibleMags) > 0) then { + GVAR(center) addWeaponItem [_item, [_compatibleMags select 0]]; + }; { if (tolower _x in _compatibleItems || {_x in _compatibleMags}) then { @@ -95,8 +99,12 @@ switch (GVAR(currentLeftPanel)) do { call _fnc_clearPreviousWepMags; private _compatibleItems = (_item call bis_fnc_compatibleItems) apply {tolower _x}; + private _cfgMags = configFile >> "CfgMagazines"; + private _compatibleMags = ([_item, true] call CBA_fnc_compatibleMagazines) select { getNumber (_cfgMags >> _x >> "scope") == 2 }; GVAR(center) addWeapon _item; - GVAR(center) addWeaponItem [_item, [(getArray (configfile >> "cfgweapons" >> _item >> "magazines")) select 0]]; + if ((count _compatibleMags) > 0) then { + GVAR(center) addWeaponItem [_item, [_compatibleMags select 0]]; + }; { if (tolower _x in _compatibleItems || {_x in _compatibleMags}) then { @@ -132,8 +140,12 @@ switch (GVAR(currentLeftPanel)) do { call _fnc_clearPreviousWepMags; private _compatibleItems = (_item call bis_fnc_compatibleItems) apply {tolower _x}; + private _cfgMags = configFile >> "CfgMagazines"; + private _compatibleMags = ([_item, true] call CBA_fnc_compatibleMagazines) select { getNumber (_cfgMags >> _x >> "scope") == 2 }; GVAR(center) addWeapon _item; - GVAR(center) addWeaponItem [_item, [(getArray (configfile >> "cfgweapons" >> _item >> "magazines")) select 0]]; + if ((count _compatibleMags) > 0) then { + GVAR(center) addWeaponItem [_item, [_compatibleMags select 0]]; + }; { if (tolower _x in _compatibleItems || {_x in _compatibleMags}) then { From d63c7685b41cbfd2c78c7720b1e9a993005ef341 Mon Sep 17 00:00:00 2001 From: Elgin675 Date: Sat, 22 Feb 2020 22:15:28 +0100 Subject: [PATCH 143/194] Update French Translations (#7440) --- addons/csw/stringtable.xml | 60 ++++++++++----------- addons/medical/stringtable.xml | 5 +- addons/medical_statemachine/stringtable.xml | 4 +- addons/microdagr/stringtable.xml | 60 ++++++++++----------- 4 files changed, 65 insertions(+), 64 deletions(-) diff --git a/addons/csw/stringtable.xml b/addons/csw/stringtable.xml index 3239df574d..d4795c8825 100644 --- a/addons/csw/stringtable.xml +++ b/addons/csw/stringtable.xml @@ -5,7 +5,7 @@ Crew Served Weapons Crew Served Weapons Crew Served Weapons (CSW) - Armes lourdes + Armes statiques 共用火器 (CSW) 班組支援武器 Armi servite dall'equipaggio @@ -119,7 +119,7 @@ Save extra ammo Spare extra Munition Economizar munição extra - Économiser les munitions supplémentaires + Conserver le surplus de munitions 過剰弾薬を保持 保存額外彈藥 Risparmiare munizioni extra @@ -131,7 +131,7 @@ Store extra magazines next to static weapon Lager extra Magazine neben der statischen Waffe Carregar munições extras próximo à arma estática - Range les chargeurs supplémentaires à côté de l'arme statique. + Range les chargeurs en surplus auprès de l'arme statique. 次の設置型火器用に過剰弾薬を保持します。 在固定型武器旁存放額外彈匣 Conservare i caricatori extra accanto all'arma statica @@ -155,7 +155,7 @@ Allow loading and unloading magazines Erlaubt es Magazine zu- und entladen. Permite carregamento e descarregamento de munições - Définit qui peut charger et décharger des chargeurs. + Définit qui peut charger et décharger les chargeurs. 弾薬の装填と除去を許可します。 允許裝填或卸載彈匣 Permettere il carico e lo scarico dei caricatori @@ -191,7 +191,7 @@ Drag tripods after deploying Ziehe Dreibeine nach Aufbau Arrastar tripés após montar - Glisser trépied après déploiement + Glisser le trépied après déploiement 設置後に三脚を引きずる 在佈置三腳架後拖拉 Trascinare i treppiedi dopo lo schieramento @@ -215,7 +215,7 @@ Pickup Tripod Dreibein aufnehmen Carregar Tripé - Ramasser Trépied + Récupérer le trépied 三脚を拾う 撿起三腳架 Recupero treppiede @@ -227,7 +227,7 @@ Mount Weapon Waffe montieren Montar Arma - Monter Arme + Monter l'arme 火器を乗せる 裝載武器 Montare l'arma @@ -263,7 +263,7 @@ Picking Up Tripod... Nehme Dreibein auf... Carregando Tripé... - Ramassage du trépied... + Récupération du trépied... 三脚を取得中です・・・ 撿起三腳架... Recupero treppiede... @@ -336,7 +336,7 @@ [CSW] Static Mini-Spike Launcher (AT) [CSW] Statische Lenkwaffe "Mini-Spike" (AT) [CSW] Lançador Estático - Mini-Spike (AT) - [CSW] Lanceur Statique Mini-Spike (AT) + [CSW] Lanceur statique Mini-Spike (AT) [CSW] 設置型ミニ スパイク ランチャー (AT) [CSW] 固定型 "迷你長釘"導彈發射器(對地) [CSW] Static Mini-Spike Launcher (AT) @@ -348,7 +348,7 @@ [CSW] Static Mini-Spike Launcher (AA) [CSW] Statische Lenkwaffe "Mini-Spike" (AA) [CSW] Lançador Estático - Mini-Spike (AA) - [CSW] Lanceur Statique Mini-Spike (AA) + [CSW] Lanceur statique Mini-Spike (AA) [CSW] 設置型ミニ スパイク ランチャー (AA) [CSW] 固定型 "迷你長釘"導彈發射器(對空) [CSW] Static Mini-Spike Launcher (AA) @@ -360,7 +360,7 @@ [CSW] Static XM312 Gun [CSW] Statische XM312 [CSW] Arma Estática - XM312 - [CSW] Mitrailleuse Statique XM312 + [CSW] Mitrailleuse statique XM312 [CSW] 設置型 XM312 [CSW] 固定型 XM312重機槍 [CSW] Static XM312 Gun @@ -372,7 +372,7 @@ [CSW] Static XM312 Gun (Autonomous) [CSW] Statische XM312 (Autonom) [CSW] Arma Estática - XM312 (Autônoma) - [CSW] Mitrailleuse Statique XM312 (Autonome) + [CSW] Mitrailleuse statique XM312 (Autonome) [CSW] 設置型 XM312 (自律型) [CSW] 固定型 XM312重機槍(自主型) [CSW] Static XM312 Gun (Autonomo) @@ -384,7 +384,7 @@ [CSW] Static XM307 Gun [CSW] Statische XM307 [CSW] Arma Estática - XM307 - [CSW] Mitrailleuse Statique XM307 + [CSW] Lance-grenades statique XM307 [CSW] 設置型 XM307 [CSW] 固定型XM307榴彈機槍 [CSW] Static XM307 Gun @@ -396,7 +396,7 @@ [CSW] Static XM307 Gun (Autonomous) [CSW] Statische XM307 (Autonom) [CSW] Arma Estática - XM307 (Autônoma) - [CSW] Mitrailleuse Statique XM307 (Autonome) + [CSW] Lance-grenades statique XM307 (Autonome) [CSW] 設置型 XM307 (自律型) [CSW] 固定型 XM307榴彈機槍(自主型) [CSW] Static XM307 Gun (Autonomo) @@ -408,7 +408,7 @@ [CSW] 12.7x108mm HMG Belt [CSW] 12.7x108mm HMG-Gurt [CSW] Cinto de Munição - 12.7x108mm HMG - [CSW] Bande 12.7x108mm HMG + [CSW] Bande 12,7x108 mm HMG [CSW] 12.7x108 mm HMG ベルト [CSW]12.7x108毫米 重機槍彈鏈 [CSW] 12.7x108mm HMG Belt @@ -420,7 +420,7 @@ [CSW] 12.7x99mm HMG Belt [CSW] 12.7x99mm HMG-Gurt [CSW] Cinto de Munição - 12.7x99mm HMG - [CSW] Bande 12.7x99mm HMG + [CSW] Bande 12,7x99 mm HMG [CSW] 12.7x99 mm HMG ベルト [CSW]12.7x99毫米 重機槍彈鏈 [CSW] 12.7x99mm HMG Belt @@ -432,7 +432,7 @@ [CSW] 12.7x99mm Tracer HMG Belt (Red) [CSW] 12.7x99mm Leuchtspur HMG-Gurt (Rot) [CSW] Cinto de Munição - 12.7x99mm HMG (Traçante Vermelho) - [CSW] Bande 12.7x99mm HMG Traçantes (Rouges) + [CSW] Bande 12,7x99 mm HMG traçantes (Rouges) [CSW] 12.7x99 mm HMG 曳光弾ベルト (赤) [CSW] 12.7x99毫米 重機槍曳光彈鏈(紅色) [CSW] 12.7x99mm Tracer HMG Belt (Red) @@ -444,7 +444,7 @@ [CSW] 12.7x99mm Tracer HMG Belt (Green) [CSW] 12.7x99mm Leuchtspur HMG-Gurt (Grün) [CSW] Cinto de Munição - 12.7x99mm HMG (Traçante Verde) - [CSW] Bande 12.7x99mm HMG Traçantes (Vertes) + [CSW] Bande 12,7x99 mm HMG traçantes (Vertes) [CSW] 12.7x99 mm HMG 曳光弾ベルト (緑) [CSW] 12.7x99毫米 重機槍曳光彈鏈(綠色) [CSW] 12.7x99mm Tracer HMG Belt (Green) @@ -456,7 +456,7 @@ [CSW] 12.7x99mm Tracer HMG Belt (Yellow) [CSW] 12.7x99mm Leuchtspur HMG-Gurt (Gelb) [CSW] Cinto de Munição - 12.7x99mm HMG (Traçante Amarelo) - [CSW] Bande 12.7x99mm HMG Traçantes (Jaunes) + [CSW] Bande 12,7x99 mm HMG traçantes (Jaunes) [CSW] 12.7x99 mm HMG 曳光弾ベルト (黄) [CSW] 12.7x99毫米 重機槍曳光彈鏈(黃色) [CSW] 12.7x99mm Tracer HMG Belt (Yellow) @@ -468,7 +468,7 @@ [CSW] 20mm Grenade GMG Belt [CSW] 20mm Granate GMG-Gurt [CSW] Cinto de Munição - Granada 20mm GMG - [CSW] Bande Grenades 20mm GMG + [CSW] Bande grenades 20 mm GMG [CSW] 20 mm てき弾 GMG ベルト [CSW]20毫米 榴彈 榴彈機槍彈鏈 [CSW] 20mm Grenade GMG Belt @@ -600,7 +600,7 @@ [CSW] Mortar Baseplate [CSW] M3 Mörsergrundplatte [CSW] Placa base de Morteiro - [CSW] Plaque de base pour Mortier + [CSW] Plaque de base pour mortier [CSW] 迫撃砲基盤 [CSW] 迫擊炮基座 [CSW] Mortar Baseplate @@ -612,7 +612,7 @@ Mortar Baseplate Mörsergrundplatte Placa base de Morteiro - Plaque de base pour Mortier + Plaque de base pour mortier 迫撃砲基盤 迫擊炮基座 Mortar Baseplate @@ -624,7 +624,7 @@ [CSW] Mk6 Mortar Tube [CSW] Mk6 Mörserrohr [CSW] Tubo de Morteiro - Mk6 - [CSW] Tube Mortier Mk6 + [CSW] Tube mortier Mk6 [CSW] Mk6 迫撃砲発射筒 [CSW] Mk6 迫擊炮炮管 [CSW] Mk6 Mortar Tube @@ -636,7 +636,7 @@ [CSW] M252 Tube Bag [CSW] M252 Mörser Rohr Transporttasche [CSW] Tubo de Morteiro - M252 - [CSW] Sac Tube M252 + [CSW] Sac tube M252 [CSW] M252 発射筒バッグ [CSW] M252 炮管袋 [CSW] M252 Tube Bag @@ -672,7 +672,7 @@ [CSW] BGM-71 TOW Launcher Bag [CSW] BGM-71 TOW Werfer Transporttasche [CSW] Bolsa de Lançador - BGM-71 TOW - [CSW] Sac Lanceur BGM-71 TOW + [CSW] Sac lanceur BGM-71 TOW [CSW] BGM-71 TOW ランチャー バッグ [CSW] BGM-71 拖式飛彈發射器袋 [CSW] BGM-71 TOW Launcher Bag @@ -696,7 +696,7 @@ [CSW] 2B14 Tube Bag [CSW] 2B14 Werfer Transporttasche [CSW] Bolsa de Arma - 2B14 - [CSW] Sac Tube 2B14 + [CSW] Sac tube 2B14 [CSW] 2B14 発射筒バッグ [CSW] 2B14 炮管袋 [CSW] 2B14 Tube Bag @@ -744,7 +744,7 @@ [CSW] 9K115 Metis Launcher Bag [CSW] 9K115 Metis Werfer Transporttasche [CSW] Bolsa de Arma - 9K115 Metis - [CSW] Sac Lanceur 9K115 Metis + [CSW] Sac lanceur 9K115 Metis [CSW] 9K115 メティス ランチャー バッグ [CSW] 9K115 麥士蒂索人發射器袋 [CSW] 9K115 Metis Launcher Bag @@ -756,7 +756,7 @@ [CSW] 9M113 Kornet Launcher [CSW] 9M113 Kornet Werfer [CSW] Bolsa de Arma - 9M113 Kornet - [CSW] Sac Lanceur 9M113 Kornet + [CSW] Sac lanceur 9M113 Kornet [CSW] 9M113 コルネット ランチャー バッグ [CSW] 9M113 短號發射器 [CSW] 9M113 Kornet Launcher @@ -792,7 +792,7 @@ [CSW] SPG-9 Launcher Bag [CSW] SPG-9 Werfer Transporttasche [CSW] Bolsa de Lançador - SPG-9 - [CSW] Sac Lanceur SPG-9 + [CSW] Sac lanceur SPG-9 [CSW] SPG-9 ランチャー バッグ [CSW] SPG-9 發射器袋 [CSW] SPG-9 Launcher Bag @@ -804,7 +804,7 @@ [CSW] SPG-9M Launcher Bag [CSW] SPG-9M Werfer Transporttasche [CSW] Bolsa de Lançador - SPG-9M - [CSW] Sac Lanceur SPG-9M + [CSW] Sac lanceur SPG-9M [CSW] SPG-9M ランチャー バッグ [CSW] SPG-9M 發射器袋 [CSW] SPG-9M Launcher Bag diff --git a/addons/medical/stringtable.xml b/addons/medical/stringtable.xml index a1dcdf3169..bf697c9d0a 100644 --- a/addons/medical/stringtable.xml +++ b/addons/medical/stringtable.xml @@ -36,7 +36,7 @@ Wahrscheinlichkeit, dass eine bewusstlose Person mit stabilen Vitalwerten wieder aufwacht (Überprüfung alle 15 Sekunden) 容体が安定しているユニットが気絶する確率を決定できます。(15 秒毎に確認) Вероятность, что стабилизированный юнит очнется от потери сознания (Проверяется каждые 15 сек) - La probabilité qu'une unité en état stable puisse reprendre conscience spontanément (état vérifié toutes les 15 secondes). + La probabilité pour qu'une unité inconsciente en état stable reprenne conscience spontanément (état vérifié toutes les 15 secondes). A probabilidade que uma unidade com vitais estabilizados possa recuperar consciências (verificado a cada 15 segundos) 生命跡象穩定的單位從無意識狀態中甦醒的機率(每十五秒確認一次) La probabilità che un'unità con i segni vitali stabili si risvegli dall'incoscienza (controllata ogni 15 secondi). @@ -46,6 +46,7 @@ Epinephrine Wake Up Chance Boost + L'épinéphrine augmente les chances de réveil Zwiększenie szansy na wybudzenie po podaniu epinefryny 腎上腺素甦醒率加成 Erhöhung der Aufwachüberprüfungsrate durch Epinephrin @@ -54,7 +55,7 @@ Increases how often spontaneous wake up checks happen when patient has Epinephrine in their system. 患者がアドレナリンを投与されると自発的に覚醒する確率を上昇させます。 增加因病患的循環系統裡面的腎上腺素自我甦醒的機率。 - Augmente la probabilité qu'un patient inconscient se réveille spontanément lorsqu'il a de l'épinéphrine dans son système sanguin. + Augmente la fréquence des tests de réveil lorsque le patient a de l'épinéphrine dans son système sanguin.\n(L'épinéphrine n'accélère pas la reprise de conscience si la valeur est définie sur 1.) Aumenta la frequenza dei controlli al risveglio spontaneo quando il paziente ha l'Epinefrina nel suo corpo Zvyšuje jak často je proveden test na probuzení z bezvědomí pokud má pacient Epinefrin ve svém krevním oběhu. Zwiększa częstotliwość spontanicznych wybudzeń, gdy pacjent ma epinefrynę w swoim organizmie. diff --git a/addons/medical_statemachine/stringtable.xml b/addons/medical_statemachine/stringtable.xml index e0797bfa84..b859bd30ed 100644 --- a/addons/medical_statemachine/stringtable.xml +++ b/addons/medical_statemachine/stringtable.xml @@ -30,7 +30,7 @@ Controla quando os jogadores podem receber lesões fatais. Uma lesão fatal é causada por um dano significante na cabeça ou tronco. プレイヤーが致命傷を受けた時の挙動を管理できます。頭部や胸部に受ける大きなダメージは致命傷になります。 控制當玩家受致命傷時是否能救起。致命傷是指對頭部或身體造成可觀傷害所造成的。 - Définit si les joueurs décèdent en cas de blessure mortelle. Une blessure mortelle est causée par un dommage important à la tête ou au torse. + Détermine si les joueurs décèdent en cas de blessure mortelle. Une blessure mortelle est définie par des dommages importants à la tête ou au cœur. Oyuncuların ölümcül yaralanmaları ne zaman alabileceğini kontrol eder. Ölümcül bir yaralanma, kafaya veya vücuda önemli hasar verir. Nastavuje zda hráči mohou utrpět smrtelné zranění. Smrtelné zranění je utrpěto významným poškozením hlavy nebo trupu. Controlla quando i giocatori possono ricevere infortuni mortali. Una lesione mortale è causata da un danno significativo alla testa o al busto. @@ -54,7 +54,7 @@ Controla quando a IA pode receber lesões fatais. Uma lesão fatal é causada por um dano significante na cabeça ou tronco.\nQuando definido para "Sempre", isso efetivamente causa a "Morte Instantânea da IA", pois a IA irá imediatamente morrer para qualquer lesão fatal.\nNOTA: Qualquer opção além de "Sempre" requer que Inconsciência de IA esteja ativada. AI が致命傷を受けた時の挙動を管理できます。頭部や胸部に受ける大きなダメージは致命傷になります。\n"常に"に設定されていると、いかなる致命傷でも "AI の即死" 効果が生まれます。\n注: "常に"以外のモードでは AI の無意識化を有効化させる必要があります。 控制當AI受致命傷時是否能救起。致命傷是指對頭部或身體造成可觀傷害所造成的。\n當設置為"總是"時,這會使其與"AI 瞬間死亡"同一個效果,在AI受到致命傷時瞬間死亡。\n備註:選了"總是"以外的選項的話必須開啟「AI無意識」的選項。 - Définit si les unités IA décèdent en cas de blessure mortelle. Une blessure mortelle est causée par un dommage important à la tête ou au torse.\nSi réglé sur "Toujours", cela produit effectivement un comportement de "Mort instantanée" car les unités IA mourront immédiatement de toute blessure mortelle.\nNOTE : Tout mode autre que "Toujours" nécessite l'activation de l'option "Inconscience IA". + Détermine si les unités IA décèdent en cas de blessure mortelle. Une blessure mortelle est définie par des dommages importants à la tête ou au cœur.\nSi réglé sur "Toujours", cela produit effectivement un comportement de "Mort instantanée" car les unités IA mourront immédiatement de toute blessure mortelle.\nNOTE : Tout mode autre que "Toujours" nécessite l'activation de l'option "Inconscience IA". AI'nın ölümcül yaralanmaları ne zaman alabileceğini kontrol eder. Ölümcül bir yaralanma, kafa veya vücudun önemli hasar görmesinden kaynaklanır. \"Her zaman" olarak ayarlandığında, AI herhangi bir ölümcül yaralanmadan hemen öleceği için bu etkili bir şekilde "AI Anında Ölüm" davranışı üretir.\ NOT: "Her zaman" "Yapay Zeka Bilinci'nin etkinleştirilmesini gerektirir. Nastavuje zda AI může utrpět smrtelné zranění. Smrtelné zranění je utrpěto významným poškozením hlavy nebo trupu.\nPokud je tato možnost nastavena na "Vždy", efektivně nastává stav "Povolit okamžitou smrt AI", protože AI okamžitě zemře při jakémkoliv smrtelném zranění.\nPOZNÁMKA: Jakýkoliv jiný stav než "Vždy" potřebuje zapnutou možnost "Bezvědomí AI". Controlla quando l'IA può ricevere ferite mortali. Una lesione mortale è causata da un danno significativo alla testa o al torso.\nSe impostato su "Sempre", questo produce efficacemente il comportamento "Morte istantanea AI", poiché l'IA morirà immediatamente a causa di qualsiasi lesione mortale.\nNOTA: Qualsiasi modalità diversa da "Sempre" richiede l'attivazione dell'Incoscienza AI. diff --git a/addons/microdagr/stringtable.xml b/addons/microdagr/stringtable.xml index 458c87188f..e65ed75c5b 100644 --- a/addons/microdagr/stringtable.xml +++ b/addons/microdagr/stringtable.xml @@ -8,7 +8,7 @@ MicroDAGR GPS MicroDAGR GPS MicroDAGR GPS - MicroDAGR GPS + MicroDAGR MicroDAGR GPS GPS MicroDAGR GPS MicroDAGR @@ -24,7 +24,7 @@ Receptor avanzado GPS MicroDAGR Многофункциональный GPS-приёмник. Zaawansowany odbiornik GPS MicroDAGR - Récepteur GPS MicroDAGR + MicroDAGR - Récepteur GPS avancé MicroDAGR pokročílá GPS příjímač MicroDAGR fejlett GPS vevőegység Ricevitore GPS avanzato MicroDAGR @@ -50,13 +50,29 @@ 角密位: 角密位: + + Degrees + Grad + Grados + Градусы + Stopnie + Degré + Stupně + Fok + Gradi + Graus + 角度 + 각도 + + + Mils Mil Mils Тысячные Tysiączne - Mils + Mil Mils Mil Mils @@ -72,7 +88,7 @@ Mostrar puntos de ruta en el mapa: Показывать маршрутные точки на карте: Pokaż PT na mapie: - Montrer points de passage sur la carte : + Montrer les WP sur la carte : Ukázat waypointy na mapě: Útvonalpontok mutatása a térképen: Mostra waypoint sulla mappa: @@ -82,26 +98,10 @@ 显示路径点在地图上: 顯示路徑點在地圖上: - - Degrees - Grad - Grados - Градусы - Stopnie - Degrés - Stupně - Fok - Gradi - Graus - 角度 - 각도 - - - On Zapnuto - Allumé + Actif Ein Acceso Wł. @@ -118,7 +118,7 @@ Off Vypnuto - Éteint + Inactif Aus Spento Wył. @@ -137,7 +137,7 @@ Introducir coordenadas de cuadrícula: Введите сеточные координаты: Wprowadź współrzędne: - Entrer coordonnées : + Entrer coordonnées Koordinaten eingeben: Napiš souřadnice: Add meg a rácskoordinátákat: @@ -170,7 +170,7 @@ Nuevo-MGRS MGRS-Новая MGRS-Nowy - Info-MGRS + MGRS-Nouveau MGRS-Nový MGRS-új Nuovo MGRS @@ -234,7 +234,7 @@ Marca Отметка Oznacz - Marque + Marquer Označit Jelölés Marca @@ -251,7 +251,7 @@ Машрутные точки Waypointy Punkty trasy - Point de passage + Points de passage Útvonalpontok waypoints Waypoints @@ -267,7 +267,7 @@ Verbinde zu Připojit k Podłącz do - Connecter à + Connecter Csatlakozás Collega a Conectar à @@ -299,7 +299,7 @@ Установить МТ Nastavit WP UstawPT - Définir point de passage + ChoixWP UP Beállítása Definisci WayPoints Definir WP @@ -315,7 +315,7 @@ Добавить Přidat Dodaj - Ajouter + Ajout Hozzáadás Aggiungi Adicionar @@ -327,7 +327,7 @@ Delete Smazat - Supprimer + Suppr. Löschen Elimina Usuń From f6af95b4a1cd9a5376da7bd5984c1ec7b3da6af6 Mon Sep 17 00:00:00 2001 From: jonpas Date: Sat, 22 Feb 2020 22:26:55 +0100 Subject: [PATCH 144/194] Arsenal - Optimize non-scope 2 mags filtering (#7543) --- addons/arsenal/functions/fnc_onSelChangedLeft.sqf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/addons/arsenal/functions/fnc_onSelChangedLeft.sqf b/addons/arsenal/functions/fnc_onSelChangedLeft.sqf index 7d77b8c2b7..375406930c 100644 --- a/addons/arsenal/functions/fnc_onSelChangedLeft.sqf +++ b/addons/arsenal/functions/fnc_onSelChangedLeft.sqf @@ -60,7 +60,7 @@ switch (GVAR(currentLeftPanel)) do { private _cfgMags = configFile >> "CfgMagazines"; private _compatibleMags = ([_item, true] call CBA_fnc_compatibleMagazines) select { getNumber (_cfgMags >> _x >> "scope") == 2 }; GVAR(center) addWeapon _item; - if ((count _compatibleMags) > 0) then { + if !(_compatibleMags isEqualTo []) then { GVAR(center) addWeaponItem [_item, [_compatibleMags select 0]]; }; @@ -102,7 +102,7 @@ switch (GVAR(currentLeftPanel)) do { private _cfgMags = configFile >> "CfgMagazines"; private _compatibleMags = ([_item, true] call CBA_fnc_compatibleMagazines) select { getNumber (_cfgMags >> _x >> "scope") == 2 }; GVAR(center) addWeapon _item; - if ((count _compatibleMags) > 0) then { + if !(_compatibleMags isEqualTo []) then { GVAR(center) addWeaponItem [_item, [_compatibleMags select 0]]; }; @@ -143,7 +143,7 @@ switch (GVAR(currentLeftPanel)) do { private _cfgMags = configFile >> "CfgMagazines"; private _compatibleMags = ([_item, true] call CBA_fnc_compatibleMagazines) select { getNumber (_cfgMags >> _x >> "scope") == 2 }; GVAR(center) addWeapon _item; - if ((count _compatibleMags) > 0) then { + if !(_compatibleMags isEqualTo []) then { GVAR(center) addWeaponItem [_item, [_compatibleMags select 0]]; }; From 58a0cd860b622a8894d1862dff9e64d2d28c3fc0 Mon Sep 17 00:00:00 2001 From: mharis001 Date: Sat, 22 Feb 2020 17:07:32 -0500 Subject: [PATCH 145/194] Common - Add isNotUnconscious canInteractWith condition --- addons/common/XEH_postInit.sqf | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/addons/common/XEH_postInit.sqf b/addons/common/XEH_postInit.sqf index ae5c8424c5..a272f5cc1f 100644 --- a/addons/common/XEH_postInit.sqf +++ b/addons/common/XEH_postInit.sqf @@ -387,6 +387,11 @@ addMissionEventHandler ["PlayerViewChanged", { ["isNotInZeus", {isNull curatorCamera}] call FUNC(addCanInteractWithCondition); +["isNotUnconscious", { + params ["_unit"]; + lifeState _unit != "INCAPACITATED" +}] call FUNC(addCanInteractWithCondition); + ////////////////////////////////////////////////// // Set up reload mutex ////////////////////////////////////////////////// From 3145a31d00a17a0bcf94efd79973832e4a517203 Mon Sep 17 00:00:00 2001 From: jonpas Date: Sun, 23 Feb 2020 02:11:20 +0100 Subject: [PATCH 146/194] Remove requirements for usable items to be in backpack (#7545) --- addons/atragmx/functions/fnc_can_show.sqf | 3 ++- addons/atragmx/functions/fnc_create_dialog.sqf | 4 +--- addons/kestrel4500/functions/fnc_canShow.sqf | 2 +- addons/kestrel4500/functions/fnc_createKestrelDialog.sqf | 4 +--- addons/kestrel4500/functions/fnc_displayKestrel.sqf | 5 ++--- addons/rangecard/functions/fnc_canShow.sqf | 6 +++++- addons/rangecard/functions/fnc_canShowCopy.sqf | 6 +++++- 7 files changed, 17 insertions(+), 13 deletions(-) diff --git a/addons/atragmx/functions/fnc_can_show.sqf b/addons/atragmx/functions/fnc_can_show.sqf index 6d3ed1f6ec..fff2a93702 100644 --- a/addons/atragmx/functions/fnc_can_show.sqf +++ b/addons/atragmx/functions/fnc_can_show.sqf @@ -15,4 +15,5 @@ * Public: No */ -(("ACE_ATragMX" in (uniformItems ACE_player)) || ("ACE_ATragMX" in (vestItems ACE_player))) && !(underwater ACE_player); +!underwater ACE_player && +{"ACE_ATragMX" in ([ACE_player] call EFUNC(common,uniqueItems))} diff --git a/addons/atragmx/functions/fnc_create_dialog.sqf b/addons/atragmx/functions/fnc_create_dialog.sqf index 2b1975b567..6930bf6786 100644 --- a/addons/atragmx/functions/fnc_create_dialog.sqf +++ b/addons/atragmx/functions/fnc_create_dialog.sqf @@ -28,9 +28,7 @@ if (!GVAR(initialised)) then { TRACE_1("",GVAR(initialised)); }; -if (GVAR(active)) exitWith { false }; -if (underwater ACE_player) exitWith { false }; -if (!("ACE_ATragMX" in (uniformItems ACE_player)) && !("ACE_ATragMX" in (vestItems ACE_player))) exitWith { false }; +if (GVAR(active) || {!(call FUNC(can_show))}) exitWith {false}; createDialog 'ATragMX_Display'; diff --git a/addons/kestrel4500/functions/fnc_canShow.sqf b/addons/kestrel4500/functions/fnc_canShow.sqf index d577cfd4d1..0dc623c735 100644 --- a/addons/kestrel4500/functions/fnc_canShow.sqf +++ b/addons/kestrel4500/functions/fnc_canShow.sqf @@ -15,4 +15,4 @@ * Public: No */ -("ACE_Kestrel4500" in (uniformItems ACE_player)) || ("ACE_Kestrel4500" in (vestItems ACE_player)) +"ACE_Kestrel4500" in ([ACE_player] call EFUNC(common,uniqueItems)) diff --git a/addons/kestrel4500/functions/fnc_createKestrelDialog.sqf b/addons/kestrel4500/functions/fnc_createKestrelDialog.sqf index aafa2928f7..80ff3025f5 100644 --- a/addons/kestrel4500/functions/fnc_createKestrelDialog.sqf +++ b/addons/kestrel4500/functions/fnc_createKestrelDialog.sqf @@ -15,9 +15,7 @@ * Public: No */ -if (GVAR(Kestrel4500)) exitWith { false }; -if (underwater ACE_player) exitWith { false }; -if (!("ACE_Kestrel4500" in (uniformItems ACE_player)) && !("ACE_Kestrel4500" in (vestItems ACE_player))) exitWith { false }; +if (GVAR(Kestrel4500) || {underwater ACE_player} || {!(call FUNC(canShow))}) exitWith {false}; GVAR(Overlay) = false; QGVAR(Layer) cutText ["", "PLAIN"]; diff --git a/addons/kestrel4500/functions/fnc_displayKestrel.sqf b/addons/kestrel4500/functions/fnc_displayKestrel.sqf index 143ed1cc27..1c2338645e 100644 --- a/addons/kestrel4500/functions/fnc_displayKestrel.sqf +++ b/addons/kestrel4500/functions/fnc_displayKestrel.sqf @@ -41,8 +41,7 @@ if (GVAR(Overlay)) exitWith { QGVAR(Layer) cutText ["", "PLAIN"]; true }; -if (underwater ACE_player) exitWith { true }; -if (!("ACE_Kestrel4500" in (uniformItems ACE_player)) && !("ACE_Kestrel4500" in (vestItems ACE_player))) exitWith { true }; +if (underwater ACE_player || {!(call FUNC(canShow))}) exitWith {true}; if (GVAR(Kestrel4500) && dialog) then { GVAR(Kestrel4500) = false; @@ -53,7 +52,7 @@ GVAR(Overlay) = true; [{ // abort condition - if (!GVAR(Overlay) || {!(("ACE_Kestrel4500" in (uniformItems ACE_player)) || ("ACE_Kestrel4500" in (vestItems ACE_player)))}) exitWith { + if (!GVAR(Overlay) || {!(call FUNC(canShow))}) exitWith { GVAR(Overlay) = false; QGVAR(Layer) cutText ["", "PLAIN"]; [_this select 1] call CBA_fnc_removePerFrameHandler; diff --git a/addons/rangecard/functions/fnc_canShow.sqf b/addons/rangecard/functions/fnc_canShow.sqf index 6b3cf6997a..4262391d29 100644 --- a/addons/rangecard/functions/fnc_canShow.sqf +++ b/addons/rangecard/functions/fnc_canShow.sqf @@ -15,4 +15,8 @@ * Public: No */ -(GVAR(ammoClass) != "" && GVAR(magazineClass) != "" && GVAR(weaponClass) != "" && !GVAR(RangeCardOpened) && ("ACE_RangeCard" in (uniformItems ACE_player)) || ("ACE_RangeCard" in (vestItems ACE_player))) +GVAR(ammoClass) != "" && +GVAR(magazineClass) != "" && +GVAR(weaponClass) != "" && +!GVAR(RangeCardOpened) && +"ACE_RangeCard" in ([ACE_player] call EFUNC(common,uniqueItems)) diff --git a/addons/rangecard/functions/fnc_canShowCopy.sqf b/addons/rangecard/functions/fnc_canShowCopy.sqf index e4eb28b60b..134147917e 100644 --- a/addons/rangecard/functions/fnc_canShowCopy.sqf +++ b/addons/rangecard/functions/fnc_canShowCopy.sqf @@ -15,4 +15,8 @@ * Public: No */ -(GVAR(ammoClassCopy) != "" && GVAR(magazineClassCopy) != "" && GVAR(weaponClassCopy) != "" && !GVAR(RangeCardOpened) && ("ACE_RangeCard" in (uniformItems ACE_player)) || ("ACE_RangeCard" in (vestItems ACE_player))) +GVAR(ammoClassCopy) != "" && +GVAR(magazineClassCopy) != "" && +GVAR(weaponClassCopy) != "" && +!GVAR(RangeCardOpened) && +"ACE_RangeCard" in ([ACE_player] call EFUNC(common,uniqueItems)) From 7069cb82c9bc0d6ab1d6aafeb3eacc7ec1e24a2a Mon Sep 17 00:00:00 2001 From: jonpas Date: Sun, 23 Feb 2020 02:12:15 +0100 Subject: [PATCH 147/194] =?UTF-8?q?Documentation=20-=20Add=20spaces=20betw?= =?UTF-8?q?een=20array=20elements=20coding=20guidel=E2=80=A6=20(#7524)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/wiki/development/coding-guidelines.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/docs/wiki/development/coding-guidelines.md b/docs/wiki/development/coding-guidelines.md index 9bc536be20..0d2fb64ed3 100644 --- a/docs/wiki/development/coding-guidelines.md +++ b/docs/wiki/development/coding-guidelines.md @@ -397,6 +397,23 @@ Magic numbers are any of the following: [Source](http://en.wikipedia.org/wiki/Magic_number_%28programming%29){:target="_blank"} +### 5.7 Spaces between array elements +When using array notation `[]`, always use a space between elements to improve code readability. + +Good: + +```js +params ["_unit", "_vehicle"]; +private _pos = [0, 0, 0]; +``` + +Bad: + +```js +params ["_unit","_vehicle"]; +private _pos = [0,0,0]; +``` + ## 6. Code Standards From a6373e936da59b74b10483b2b2fc21e6554fa68d Mon Sep 17 00:00:00 2001 From: commy2 Date: Sun, 23 Feb 2020 11:59:14 +0100 Subject: [PATCH 148/194] fix MenuClosed event may not fire on menu type replacement --- addons/interact_menu/XEH_clientInit.sqf | 1 + addons/interact_menu/functions/fnc_keyDown.sqf | 6 ++++++ addons/interact_menu/functions/fnc_keyUp.sqf | 2 +- 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/addons/interact_menu/XEH_clientInit.sqf b/addons/interact_menu/XEH_clientInit.sqf index 30b6a4469a..bc4870ef54 100644 --- a/addons/interact_menu/XEH_clientInit.sqf +++ b/addons/interact_menu/XEH_clientInit.sqf @@ -105,6 +105,7 @@ format ["%1 (%2)", (localize LSTRING(SelfInteractKey)), localize ELSTRING(common if (_menuBackgroundSetting == 1) exitWith {[QGVAR(menuBackground), true] call EFUNC(common,blurScreen);}; if (_menuBackgroundSetting == 2) exitWith {0 cutRsc [QGVAR(menuBackground), "PLAIN", 1, false];}; }] call CBA_fnc_addEventHandler; + ["ace_interactMenuClosed", { params ["_menuType"]; private _menuBackgroundSetting = [GVAR(menuBackground), GVAR(menuBackgroundSelf)] select _menuType; diff --git a/addons/interact_menu/functions/fnc_keyDown.sqf b/addons/interact_menu/functions/fnc_keyDown.sqf index 8460e338e8..c080fa4481 100644 --- a/addons/interact_menu/functions/fnc_keyDown.sqf +++ b/addons/interact_menu/functions/fnc_keyDown.sqf @@ -36,6 +36,12 @@ if (_menuType == 0) then { GVAR(keyDownSelfAction) = true; }; GVAR(keyDownTime) = diag_tickTime; + +// Raise MenuClosed event whenever one type is replaced with another, because KeyUp code is not guaranteed. +if (GVAR(openedMenuType) != -1) then { + ["ace_interactMenuClosed", [GVAR(openedMenuType)]] call CBA_fnc_localEvent; +}; + GVAR(openedMenuType) = _menuType; GVAR(lastTimeSearchedActions) = -1000; GVAR(ParsedTextCached) = []; diff --git a/addons/interact_menu/functions/fnc_keyUp.sqf b/addons/interact_menu/functions/fnc_keyUp.sqf index be98452177..2504ca2b78 100644 --- a/addons/interact_menu/functions/fnc_keyUp.sqf +++ b/addons/interact_menu/functions/fnc_keyUp.sqf @@ -24,7 +24,7 @@ if (uiNamespace getVariable [QGVAR(cursorMenuOpened),false]) then { (findDisplay 91919) closeDisplay 2; }; -if(GVAR(actionSelected)) then { +if (GVAR(actionSelected)) then { this = GVAR(selectedTarget); private _player = ACE_Player; From a375e068f70f9d0bd5942877a50943f1752cd64a Mon Sep 17 00:00:00 2001 From: commy2 Date: Sun, 23 Feb 2020 13:29:38 +0100 Subject: [PATCH 149/194] don't apply AimDownSightsBlur on optics with integrated night vision --- .../functions/fnc_onCameraViewChanged.sqf | 2 +- addons/nightvision/functions/fnc_pfeh.sqf | 24 ++++++++++++------- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/addons/nightvision/functions/fnc_onCameraViewChanged.sqf b/addons/nightvision/functions/fnc_onCameraViewChanged.sqf index 09eb8e247f..ee1b9ede80 100644 --- a/addons/nightvision/functions/fnc_onCameraViewChanged.sqf +++ b/addons/nightvision/functions/fnc_onCameraViewChanged.sqf @@ -20,7 +20,7 @@ params ["_unit", "_cameraView"]; TRACE_2("onCameraViewChanged",_unit,_cameraView); // Refresh goggle effect (e.g. switching to vehicle's NVG) -[] call FUNC(refreshGoggleType); +FUNC(refreshGoggleType) call CBA_fnc_execNextFrame; if (GVAR(disableNVGsWithSights) && {(hmd _unit) != ""}) then { if ((vehicle _unit == _unit) diff --git a/addons/nightvision/functions/fnc_pfeh.sqf b/addons/nightvision/functions/fnc_pfeh.sqf index 3678f8d27a..d0baaf4bbb 100644 --- a/addons/nightvision/functions/fnc_pfeh.sqf +++ b/addons/nightvision/functions/fnc_pfeh.sqf @@ -16,7 +16,9 @@ * Public: No */ -if ((currentVisionMode ACE_player) != 1) exitWith { +private _unit = ACE_player; + +if (currentVisionMode _unit != 1) exitWith { GVAR(running) = false; [false] call FUNC(setupDisplayEffects); [GVAR(PFID)] call CBA_fnc_removePerFrameHandler; @@ -28,7 +30,7 @@ if ((currentVisionMode ACE_player) != 1) exitWith { }; if (EGVAR(common,OldIsCamera)) exitWith { if (GVAR(running)) then { - TRACE_2("pausing NVG for scripted camera",alive ACE_player,EGVAR(common,OldIsCamera)); + TRACE_2("pausing NVG for scripted camera",alive _unit,EGVAR(common,OldIsCamera)); GVAR(running) = false; [false] call FUNC(setupDisplayEffects); }; @@ -45,7 +47,7 @@ BEGIN_COUNTER(borderScaling); private _scale = (call EFUNC(common,getZoom)) * 1.12513; if (!(GVAR(defaultPositionBorder) isEqualTo [])) then { // Prevents issues when "zooming out" on ultra wide monitors - The square mask would be narrower than the screen - if (((GVAR(defaultPositionBorder) select 2) * _scale) < safeZoneW) then { + if ((GVAR(defaultPositionBorder) select 2) * _scale < safeZoneW) then { _scale = safeZoneW / (GVAR(defaultPositionBorder) select 2); }; [(uiNamespace getVariable QGVAR(titleDisplay)) displayCtrl 1000, GVAR(defaultPositionHex), _scale] call FUNC(scaleCtrl); @@ -87,10 +89,11 @@ if (CBA_missionTime < GVAR(nextEffectsUpdate)) then { private _fogApply = linearConversion [0, 1, _effectiveLight, ST_NVG_MAXFOG, ST_NVG_MINFOG, true]; // Modify blur if looking down scope - if ((cameraView == "GUNNER") && {[ACE_player] call CBA_fnc_canUseWeapon}) then { - if (currentWeapon ACE_player == "") exitWith {}; - if (currentWeapon ACE_player == primaryWeapon ACE_player) exitWith {_blurFinal = _blurFinal * linearConversion [0, 1, GVAR(aimDownSightsBlur), 1, ST_NVG_CAMERA_BLUR_SIGHTS_RIFLE]}; // Rifles are bad - if (currentWeapon ACE_player == handgunWeapon ACE_player) exitWith {_blurFinal = _blurFinal * linearConversion [0, 1, GVAR(aimDownSightsBlur), 1, ST_NVG_CAMERA_BLUR_SIGHTS_PISTOL]}; // Pistols aren't so bad + if (cameraView == "GUNNER" && {[_unit] call CBA_fnc_canUseWeapon && {systemChat str (0.75 call CBA_fnc_getFOV select 1); 0.75 call CBA_fnc_getFOV select 1 < 3.01}}) then { + private _weapon = currentWeapon _unit; + if (_weapon == "") exitWith {}; + if (_weapon == primaryWeapon _unit) exitWith {_blurFinal = _blurFinal * linearConversion [0, 1, GVAR(aimDownSightsBlur), 1, ST_NVG_CAMERA_BLUR_SIGHTS_RIFLE]}; // Rifles are bad + if (_weapon == handgunWeapon _unit) exitWith {_blurFinal = _blurFinal * linearConversion [0, 1, GVAR(aimDownSightsBlur), 1, ST_NVG_CAMERA_BLUR_SIGHTS_PISTOL]}; // Pistols aren't so bad }; // Scale general effects based on ace_nightvision_effectScaling setting @@ -99,7 +102,7 @@ if (CBA_missionTime < GVAR(nextEffectsUpdate)) then { _contrastFinal = linearConversion [0, 1, GVAR(effectScaling), 1, _contrastFinal]; // Add adjusted NVG brightness - private _playerBrightSetting = ACE_player getVariable [QGVAR(NVGBrightness), 0]; + private _playerBrightSetting = _unit getVariable [QGVAR(NVGBrightness), 0]; _brightFinal = _brightFinal + (_playerBrightSetting / 20); // Scale grain effects based on ace_nightvision_noiseScaling setting @@ -148,9 +151,12 @@ if (CBA_missionTime < GVAR(nextEffectsUpdate)) then { // Modify local fog: if (GVAR(fogScaling) > 0) then { - if (((vehicle ACE_player) != ACE_player) && {(vehicle ACE_player) isKindOf "Air"}) then { // For flying in particular, can refine nicer later. + private _vehicle = vehicle _unit; + + if (_vehicle != _unit && {_vehicle isKindOf "Air"}) then { // For flying in particular, can refine nicer later. _fogApply = _fogApply * ST_NVG_AIR_FOG_MULTIPLIER; }; + _fogApply = linearConversion [0, 1, GVAR(priorFog) select 0, (GVAR(fogScaling) * _fogApply), 1]; // mix in old fog if present GVAR(nvgFog) = [_fogApply, 0, 0]; 0 setFog GVAR(nvgFog) From f9f1d634aee587e6d18f356ef391871bbd74ea4d Mon Sep 17 00:00:00 2001 From: commy2 Date: Sun, 23 Feb 2020 13:32:50 +0100 Subject: [PATCH 150/194] remove a debug line --- addons/nightvision/functions/fnc_pfeh.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/nightvision/functions/fnc_pfeh.sqf b/addons/nightvision/functions/fnc_pfeh.sqf index d0baaf4bbb..5078715622 100644 --- a/addons/nightvision/functions/fnc_pfeh.sqf +++ b/addons/nightvision/functions/fnc_pfeh.sqf @@ -89,7 +89,7 @@ if (CBA_missionTime < GVAR(nextEffectsUpdate)) then { private _fogApply = linearConversion [0, 1, _effectiveLight, ST_NVG_MAXFOG, ST_NVG_MINFOG, true]; // Modify blur if looking down scope - if (cameraView == "GUNNER" && {[_unit] call CBA_fnc_canUseWeapon && {systemChat str (0.75 call CBA_fnc_getFOV select 1); 0.75 call CBA_fnc_getFOV select 1 < 3.01}}) then { + if (cameraView == "GUNNER" && {[_unit] call CBA_fnc_canUseWeapon && {0.75 call CBA_fnc_getFOV select 1 < 3.01}}) then { private _weapon = currentWeapon _unit; if (_weapon == "") exitWith {}; if (_weapon == primaryWeapon _unit) exitWith {_blurFinal = _blurFinal * linearConversion [0, 1, GVAR(aimDownSightsBlur), 1, ST_NVG_CAMERA_BLUR_SIGHTS_RIFLE]}; // Rifles are bad From 42f710cdd029eb16a120ae4b178db4dfce936b11 Mon Sep 17 00:00:00 2001 From: commy2 Date: Sun, 23 Feb 2020 13:52:32 +0100 Subject: [PATCH 151/194] reset effect on magnifaction transition --- addons/nightvision/XEH_postInit.sqf | 1 + addons/nightvision/functions/fnc_onCameraViewChanged.sqf | 2 +- addons/nightvision/functions/fnc_pfeh.sqf | 7 ++++++- addons/nightvision/script_component.hpp | 2 ++ 4 files changed, 10 insertions(+), 2 deletions(-) diff --git a/addons/nightvision/XEH_postInit.sqf b/addons/nightvision/XEH_postInit.sqf index cb71a4732a..70023223fb 100644 --- a/addons/nightvision/XEH_postInit.sqf +++ b/addons/nightvision/XEH_postInit.sqf @@ -21,6 +21,7 @@ GVAR(ppeffectRadialBlur) = -1; GVAR(ppeffectColorCorrect) = -1; GVAR(ppeffectBlur) = -1; +GVAR(isUsingMagnification) = false; ["ace_settingsInitialized", { TRACE_4("settingsInitialized",GVAR(disableNVGsWithSights),GVAR(fogScaling),GVAR(noiseScaling),GVAR(effectScaling)); diff --git a/addons/nightvision/functions/fnc_onCameraViewChanged.sqf b/addons/nightvision/functions/fnc_onCameraViewChanged.sqf index ee1b9ede80..fc4c85a507 100644 --- a/addons/nightvision/functions/fnc_onCameraViewChanged.sqf +++ b/addons/nightvision/functions/fnc_onCameraViewChanged.sqf @@ -20,7 +20,7 @@ params ["_unit", "_cameraView"]; TRACE_2("onCameraViewChanged",_unit,_cameraView); // Refresh goggle effect (e.g. switching to vehicle's NVG) -FUNC(refreshGoggleType) call CBA_fnc_execNextFrame; +call FUNC(refreshGoggleType); if (GVAR(disableNVGsWithSights) && {(hmd _unit) != ""}) then { if ((vehicle _unit == _unit) diff --git a/addons/nightvision/functions/fnc_pfeh.sqf b/addons/nightvision/functions/fnc_pfeh.sqf index 5078715622..82e6a3cf34 100644 --- a/addons/nightvision/functions/fnc_pfeh.sqf +++ b/addons/nightvision/functions/fnc_pfeh.sqf @@ -57,6 +57,11 @@ if (!(GVAR(defaultPositionBorder) isEqualTo [])) then { }; END_COUNTER(borderScaling); +if !(IS_MAGNIFIED isEqualTo GVAR(isUsingMagnification)) then { + GVAR(isUsingMagnification) = IS_MAGNIFIED; + GVAR(nextEffectsUpdate) = -1; +}; + if (CBA_missionTime < GVAR(nextEffectsUpdate)) then { // Update radial blur as it depends on zoom level, so should be changed each frame like the border/hex if (GVAR(ppeffectRadialBlur) != -1) then { @@ -89,7 +94,7 @@ if (CBA_missionTime < GVAR(nextEffectsUpdate)) then { private _fogApply = linearConversion [0, 1, _effectiveLight, ST_NVG_MAXFOG, ST_NVG_MINFOG, true]; // Modify blur if looking down scope - if (cameraView == "GUNNER" && {[_unit] call CBA_fnc_canUseWeapon && {0.75 call CBA_fnc_getFOV select 1 < 3.01}}) then { + if (cameraView == "GUNNER" && {[_unit] call CBA_fnc_canUseWeapon && {!GVAR(isUsingMagnification)}}) then { private _weapon = currentWeapon _unit; if (_weapon == "") exitWith {}; if (_weapon == primaryWeapon _unit) exitWith {_blurFinal = _blurFinal * linearConversion [0, 1, GVAR(aimDownSightsBlur), 1, ST_NVG_CAMERA_BLUR_SIGHTS_RIFLE]}; // Rifles are bad diff --git a/addons/nightvision/script_component.hpp b/addons/nightvision/script_component.hpp index 2f431c5407..7f80b1b4fa 100644 --- a/addons/nightvision/script_component.hpp +++ b/addons/nightvision/script_component.hpp @@ -46,3 +46,5 @@ #define ST_NVG_NOISESHARPNESS_MIN 1.2 #define ST_NVG_NOISESHARPNESS_MAX 1 + +#define IS_MAGNIFIED (0.75 call CBA_fnc_getFOV select 1 > 3.01) From 27ecfc6a5bc4251edf745643e7b73fff21039521 Mon Sep 17 00:00:00 2001 From: commy2 Date: Sun, 23 Feb 2020 14:14:11 +0100 Subject: [PATCH 152/194] prevent extremely slow or fast animations --- .../functions/fnc_treatment.sqf | 20 ++++++++++++++----- addons/medical_treatment/script_component.hpp | 6 ++++++ 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/addons/medical_treatment/functions/fnc_treatment.sqf b/addons/medical_treatment/functions/fnc_treatment.sqf index 93c9877ad7..76d56f4b1c 100644 --- a/addons/medical_treatment/functions/fnc_treatment.sqf +++ b/addons/medical_treatment/functions/fnc_treatment.sqf @@ -95,6 +95,21 @@ if (binocular _medic != "" && {binocular _medic == currentWeapon _medic}) then { // Play treatment animation for medic and determine the ending animation if (vehicle _medic == _medic && {_medicAnim != ""}) then { + // Speed up animation based on treatment time (but cap max to prevent odd animiations/cam shake) + private _animRatio = (_animDuration / _treatmentTime) min 3; + TRACE_3("setAnimSpeedCoef",_animRatio,_animDuration,_treatmentTime); + + // Don't slow down animation too much to prevent it looking funny. + if (_animRatio < ANIMATION_SPEED_MIN_COEFFICIENT) then { + _animRatio = ANIMATION_SPEED_MIN_COEFFICIENT; + }; + + // Skip animation enitrely if progress bar too quick. + if (_animRatio > ANIMATION_SPEED_MAX_COEFFICIENT) exitWith {}; + + [QEGVAR(common,setAnimSpeedCoef), [_medic, _animRatio]] call CBA_fnc_globalEvent; + + // Play animation private _endInAnim = "AmovP[pos]MstpS[stn]W[wpn]Dnon"; private _pos = ["knl", "pne"] select (stance _medic == "PRONE"); @@ -112,11 +127,6 @@ if (vehicle _medic == _medic && {_medicAnim != ""}) then { [_medic, _endInAnim] call EFUNC(common,doAnimation); _medic setVariable [QGVAR(endInAnim), _endInAnim]; - // Speed up animation based on treatment time (but cap max to prevent odd animiations/cam shake) - private _animRatio = (_animDuration / _treatmentTime) min 3; - TRACE_3("setAnimSpeedCoef",_animRatio,_animDuration,_treatmentTime); - [QEGVAR(common,setAnimSpeedCoef), [_medic, _animRatio]] call CBA_fnc_globalEvent; - if (!isNil QEGVAR(advanced_fatigue,setAnimExclusions)) then { EGVAR(advanced_fatigue,setAnimExclusions) pushBack QUOTE(ADDON); }; diff --git a/addons/medical_treatment/script_component.hpp b/addons/medical_treatment/script_component.hpp index bed5241f85..c25b39e98d 100644 --- a/addons/medical_treatment/script_component.hpp +++ b/addons/medical_treatment/script_component.hpp @@ -48,3 +48,9 @@ #define LITTER_CLEANUP_CHECK_DELAY 30 #define BODY_CLEANUP_CHECK_DELAY 20 + +// Animations that would be played slower than this are instead played exactly as slow as this. (= Progress bar will take longer than the slowed down animation). +#define ANIMATION_SPEED_MIN_COEFFICIENT 0.5 + +// Animations that would be played faster than this are instead skipped. (= Progress bar too quick for animation). +#define ANIMATION_SPEED_MAX_COEFFICIENT 3 From 754a9e09af0e11d4efa192f3d327df3632293b37 Mon Sep 17 00:00:00 2001 From: commy2 Date: Sun, 23 Feb 2020 14:25:11 +0100 Subject: [PATCH 153/194] values, simplify --- addons/medical_treatment/functions/fnc_treatment.sqf | 2 +- addons/medical_treatment/script_component.hpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/medical_treatment/functions/fnc_treatment.sqf b/addons/medical_treatment/functions/fnc_treatment.sqf index 76d56f4b1c..01d3cabc8d 100644 --- a/addons/medical_treatment/functions/fnc_treatment.sqf +++ b/addons/medical_treatment/functions/fnc_treatment.sqf @@ -96,7 +96,7 @@ if (binocular _medic != "" && {binocular _medic == currentWeapon _medic}) then { // Play treatment animation for medic and determine the ending animation if (vehicle _medic == _medic && {_medicAnim != ""}) then { // Speed up animation based on treatment time (but cap max to prevent odd animiations/cam shake) - private _animRatio = (_animDuration / _treatmentTime) min 3; + private _animRatio = _animDuration / _treatmentTime; TRACE_3("setAnimSpeedCoef",_animRatio,_animDuration,_treatmentTime); // Don't slow down animation too much to prevent it looking funny. diff --git a/addons/medical_treatment/script_component.hpp b/addons/medical_treatment/script_component.hpp index c25b39e98d..682e8a471c 100644 --- a/addons/medical_treatment/script_component.hpp +++ b/addons/medical_treatment/script_component.hpp @@ -53,4 +53,4 @@ #define ANIMATION_SPEED_MIN_COEFFICIENT 0.5 // Animations that would be played faster than this are instead skipped. (= Progress bar too quick for animation). -#define ANIMATION_SPEED_MAX_COEFFICIENT 3 +#define ANIMATION_SPEED_MAX_COEFFICIENT 2.5 From 92a987059c99068190d5d980d02d34629c83263a Mon Sep 17 00:00:00 2001 From: Elgin675 Date: Sun, 23 Feb 2020 16:26:51 +0100 Subject: [PATCH 154/194] French translation (#7550) * French translation: Fracture chance * French translation: AdvancedBandages_EnabledCanReopen key * French translation: BloodVolumeEffectType keys --- addons/medical/stringtable.xml | 2 ++ addons/medical_feedback/stringtable.xml | 5 +++++ addons/medical_treatment/stringtable.xml | 1 + 3 files changed, 8 insertions(+) diff --git a/addons/medical/stringtable.xml b/addons/medical/stringtable.xml index bf697c9d0a..1c5e0ba8bb 100644 --- a/addons/medical/stringtable.xml +++ b/addons/medical/stringtable.xml @@ -167,9 +167,11 @@ Fracture Chance + Chance de fracture The probability of a fracture causing wound resulting in a fracture. + La probabilité pour qu'une blessure pouvant causer une fracture en crée effectivement une. Enabled for diff --git a/addons/medical_feedback/stringtable.xml b/addons/medical_feedback/stringtable.xml index 6947bb7d6b..d0585a4f62 100644 --- a/addons/medical_feedback/stringtable.xml +++ b/addons/medical_feedback/stringtable.xml @@ -106,22 +106,27 @@ Low Blood Volume Effect Type Визуальный эффект низкого объема крови + Effet de faible volume sanguin Selects the used low blood volume effect type. Выбирает тип визуализации эффекта низкого объема крови. + Permet de choisir quel effet provoque un faible volume sanguin. Color Fading Потеря цветности + Atténuation des couleurs Icon Иконка + Icône Icon + Color Fading Иконка + Потеря цветности + Icône + Atténuation des couleurs diff --git a/addons/medical_treatment/stringtable.xml b/addons/medical_treatment/stringtable.xml index 419b9210e2..c547836b2e 100644 --- a/addons/medical_treatment/stringtable.xml +++ b/addons/medical_treatment/stringtable.xml @@ -99,6 +99,7 @@ Enabled & Can Reopen + Activé & peuvent se rouvrir Clear Trauma After Bandage From 60155f2ab8282e09054d6ae911a8b0acc0026e71 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Mon, 24 Feb 2020 12:13:24 -0600 Subject: [PATCH 155/194] NightVision - Fix border missing while in FFV (#7554) Fix #6769 --- addons/nightvision/functions/fnc_refreshGoggleType.sqf | 1 + 1 file changed, 1 insertion(+) diff --git a/addons/nightvision/functions/fnc_refreshGoggleType.sqf b/addons/nightvision/functions/fnc_refreshGoggleType.sqf index 658eaec1f1..c367d7a2f5 100644 --- a/addons/nightvision/functions/fnc_refreshGoggleType.sqf +++ b/addons/nightvision/functions/fnc_refreshGoggleType.sqf @@ -34,6 +34,7 @@ if (alive ACE_player) then { private _vehConfig = configFile >> "CfgVehicles" >> (typeOf _currentVehicle); if (cameraView != "GUNNER") exitWith {true}; // asume hmd usage outside of gunner view + if ([ACE_player] call CBA_fnc_canUseWeapon) exitWith {true}; // FFV if (ACE_player == (driver _currentVehicle)) exitWith { !("NVG" in getArray (_vehConfig >> "ViewOptics" >> "visionMode")); From 957df3b2d0ed1c0f9151b78606839e0288898208 Mon Sep 17 00:00:00 2001 From: Laid3acK Date: Tue, 25 Feb 2020 09:47:53 +0100 Subject: [PATCH 156/194] Wiki - Remove requirements for item usability (#7555) --- docs/img/wiki/feature/abtools_inventory.png | Bin 188418 -> 0 bytes docs/wiki/feature/atragmx.md | 4 ---- docs/wiki/feature/kestrel4500.md | 4 ---- docs/wiki/feature/rangecard.md | 5 +---- 4 files changed, 1 insertion(+), 12 deletions(-) delete mode 100644 docs/img/wiki/feature/abtools_inventory.png diff --git a/docs/img/wiki/feature/abtools_inventory.png b/docs/img/wiki/feature/abtools_inventory.png deleted file mode 100644 index 72e1607689744f6466bbce52f5d9c20a905e480c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 188418 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 P-6Vm7tqY2U^h^E+$6sU6 diff --git a/docs/wiki/feature/atragmx.md b/docs/wiki/feature/atragmx.md index e17f783b5d..674a26f153 100644 --- a/docs/wiki/feature/atragmx.md +++ b/docs/wiki/feature/atragmx.md @@ -38,10 +38,6 @@ Horus ATragMX software considers atmospheric conditions, gun data, ammunition, r - `OPTIONS` / `CONTROLS` / `CONFIGURE ADDONS` / `ACE3 Equipment` -#### 3.1.3 Inventory - -Inventory management - ### 3.2 Example with M14 and default 7.62mm 20Rnd Mag **Start of the mission:** diff --git a/docs/wiki/feature/kestrel4500.md b/docs/wiki/feature/kestrel4500.md index 861c3a8295..cf5a3f4ddd 100644 --- a/docs/wiki/feature/kestrel4500.md +++ b/docs/wiki/feature/kestrel4500.md @@ -45,10 +45,6 @@ The Kestrel 4500 Pocket Weather Tracker is Kestrel's environmental meter. This i - `OPTIONS` / `CONTROLS` / `CONFIGURE ADDONS` / `ACE3 Equipment` -#### 2.1.3 Inventory - -Inventory management - ### 2.2 `CROSSWIND` / `HEADWIND` Feature - [Official Kestrel Instruments video](https://www.youtube.com/watch?v=4Q_qgXwlRqk) diff --git a/docs/wiki/feature/rangecard.md b/docs/wiki/feature/rangecard.md index 4326969389..e9aed83cc0 100644 --- a/docs/wiki/feature/rangecard.md +++ b/docs/wiki/feature/rangecard.md @@ -29,15 +29,12 @@ Add a range card that updates itself for your weapon and the type of ammo you're #### 2.1.2 Custom key - `OPTIONS` / `CONTROLS` / `CONFIGURE ADDONS` / `ACE3 Equipment` -#### 2.1.3 Inventory -Inventory management - ### 2.2 Using the range card - To use this to it's full potential the use of a [Vector 21]({{ site.baseurl }}/wiki/feature/vector.html) is strongly recommended, a [Kestrel 4500]({{ site.baseurl }}/wiki/feature/kestrel4500.html) will also help. - Pull out your rangefinder ([Vector 21]({{ site.baseurl }}/wiki/feature/vector.html) preferred) and get the distance between you and your target. - Open your rangetable and look under the `Target range` column. - Move to the `Bullet Drop` column, the drop is in MRADs, you need to compensate for it by adjusting your sight. Example, you want to adjust for a bullet drop of -7.9 MRADs simply adjust your scope 7.9 MRADs vertically. (check [feature scopes]({{ site.baseurl }}/wiki/feature/scopes.html) ) for this. -- Possibility to modify, copy and share the range card between spotter and shooter. +- Possibility to copy and share the range card. Range card self interaction menu From 8be0a8b1ca8d73dff6d3f6c628d215ba3317f43a Mon Sep 17 00:00:00 2001 From: Laid3acK Date: Tue, 25 Feb 2020 15:02:39 +0100 Subject: [PATCH 157/194] dispersion_removed --- addons/ballistics/CfgWeapons.hpp | 222 ++----------------------------- 1 file changed, 13 insertions(+), 209 deletions(-) diff --git a/addons/ballistics/CfgWeapons.hpp b/addons/ballistics/CfgWeapons.hpp index c8e04c776f..095a38c6ff 100644 --- a/addons/ballistics/CfgWeapons.hpp +++ b/addons/ballistics/CfgWeapons.hpp @@ -1,7 +1,3 @@ -class Mode_SemiAuto; -class Mode_Burst; -class Mode_FullAuto; - class CfgWeapons { class LMG_RCWS; class MGun; @@ -13,62 +9,22 @@ class CfgWeapons { class Rifle_Long_Base_F: Rifle_Base_F {}; // GM6 Lynx - class GM6_base_F: Rifle_Long_Base_F { - class Single: Mode_SemiAuto { - dispersion = MOA_TO_RAD(0.45); - }; - }; + class GM6_base_F: Rifle_Long_Base_F {}; // M200 Intervention - class LRR_base_F: Rifle_Long_Base_F { - class Single: Mode_SemiAuto { - dispersion = MOA_TO_RAD(0.50); - }; - }; + class LRR_base_F: Rifle_Long_Base_F {}; // MX - class arifle_MX_Base_F: Rifle_Base_F { - class Single: Mode_SemiAuto { - dispersion = MOA_TO_RAD(0.90); - }; - - class FullAuto: Mode_FullAuto { - dispersion = MOA_TO_RAD(0.90); - }; - }; + class arifle_MX_Base_F: Rifle_Base_F {}; // KH2002 Sama - class arifle_katiba_Base_F: Rifle_Base_F { - class Single: Mode_SemiAuto { - dispersion = MOA_TO_RAD(0.90); - }; - - class FullAuto: Mode_FullAuto { - dispersion = MOA_TO_RAD(0.90); - }; - }; + class arifle_katiba_Base_F: Rifle_Base_F {}; // CTAR-21 - class Tavor_base_F: Rifle_Base_F { - class Single: Mode_SemiAuto { - dispersion = MOA_TO_RAD(1.12); - }; - - class FullAuto: Mode_FullAuto { - dispersion = MOA_TO_RAD(1.12); - }; - }; + class Tavor_base_F: Rifle_Base_F {}; // F2000 - class mk20_base_F: Rifle_Base_F { - class Single: Mode_SemiAuto { - dispersion = MOA_TO_RAD(1.12); - }; - - class FullAuto: Mode_FullAuto { - dispersion = MOA_TO_RAD(1.12); - }; - }; + class mk20_base_F: Rifle_Base_F {}; // P90 (1.86) class SMG_03_TR_BASE: Rifle_Base_F { @@ -84,81 +40,28 @@ class CfgWeapons { }; // Noreen "Bad News" ULR - class DMR_02_base_F: Rifle_Long_Base_F { - class Single: Mode_SemiAuto { - dispersion = MOA_TO_RAD(0.61); - }; - }; + class DMR_02_base_F: Rifle_Long_Base_F {}; // VS-121 - class DMR_01_base_F: Rifle_Long_Base_F { - class Single: Mode_SemiAuto { - dispersion = MOA_TO_RAD(0.81); - }; - - class FullAuto: Mode_FullAuto { - dispersion = MOA_TO_RAD(0.81); - }; - }; + class DMR_01_base_F: Rifle_Long_Base_F {}; // Mk14 Mod 1 EBR - class EBR_base_F: Rifle_Long_Base_F { - class Single: Mode_SemiAuto { - dispersion = MOA_TO_RAD(0.81); - }; - - class FullAuto: Mode_FullAuto { - dispersion = MOA_TO_RAD(0.81); - }; - }; + class EBR_base_F: Rifle_Long_Base_F {}; // SIG 556 - class DMR_03_base_F: Rifle_Long_Base_F { - class Single: Mode_SemiAuto { - dispersion = MOA_TO_RAD(0.81); - }; - - class FullAuto: Mode_FullAuto { - dispersion = MOA_TO_RAD(0.81); - }; - }; + class DMR_03_base_F: Rifle_Long_Base_F {}; // ASP-1 Kir - class DMR_04_base_F: Rifle_Long_Base_F { - class Single: Mode_SemiAuto { - dispersion = MOA_TO_RAD(1.0); - }; - }; + class DMR_04_base_F: Rifle_Long_Base_F {}; // Cyrus - class DMR_05_base_F: Rifle_Long_Base_F { - class Single: Mode_SemiAuto { - dispersion = MOA_TO_RAD(0.67); - }; - - class FullAuto: Mode_FullAuto { - dispersion = MOA_TO_RAD(0.67); - }; - }; + class DMR_05_base_F: Rifle_Long_Base_F {}; // M14 class DMR_06_base_F: Rifle_Long_Base_F { ACE_barrelLength = 558.8; ACE_barrelTwist = 304.8; initSpeed = -0.999395; - class Single: Mode_SemiAuto { - dispersion = MOA_TO_RAD(0.81); - }; - - class FullAuto: Mode_FullAuto { - dispersion = MOA_TO_RAD(0.81); - }; - }; - - class DMR_06_hunter_base_F: DMR_06_base_F { - class Single: Single { - dispersion = MOA_TO_RAD(0.81); - }; }; // MX LSW @@ -174,13 +77,6 @@ class CfgWeapons { initSpeed = -0.981912; ACE_barrelTwist = 228.6; ACE_barrelLength = 406.4; - class Single: Mode_SemiAuto { - dispersion = MOA_TO_RAD(0.90); - }; - - class FullAuto: Mode_FullAuto { - dispersion = MOA_TO_RAD(0.90); - }; }; // MXM @@ -195,13 +91,6 @@ class CfgWeapons { initSpeed = -1.0; ACE_barrelTwist = 228.6; ACE_barrelLength = 457.2; - class Single: Single { - dispersion = MOA_TO_RAD(0.90); - }; - - class FullAuto: FullAuto { - dispersion = MOA_TO_RAD(0.90); - }; }; // HK416A5 11" @@ -221,13 +110,6 @@ class CfgWeapons { initSpeed = -0.869636; ACE_barrelTwist = 177.8; ACE_barrelLength = 264.0; - class Single: Mode_SemiAuto { - dispersion = MOA_TO_RAD(1.12); - }; - - class FullAuto: Mode_FullAuto { - dispersion = MOA_TO_RAD(1.12); - }; }; // HK416A5 14.5" @@ -235,13 +117,6 @@ class CfgWeapons { initSpeed = -0.999864; ACE_barrelTwist = 177.8; ACE_barrelLength = 368.0; - class Single: Mode_SemiAuto { - dispersion = MOA_TO_RAD(1.12); - }; - - class FullAuto: Mode_FullAuto { - dispersion = MOA_TO_RAD(1.12); - }; }; // HK417A2 20" @@ -259,13 +134,6 @@ class CfgWeapons { initSpeed = -0.991536; ACE_barrelTwist = 279.4; ACE_barrelLength = 508.0; - class Single: Mode_SemiAuto { - dispersion = MOA_TO_RAD(0.81); - }; - - class FullAuto: Mode_FullAuto { - dispersion = MOA_TO_RAD(0.81); - }; }; // Stoner 99 LMG @@ -290,19 +158,7 @@ class CfgWeapons { }; // RFB SDAR - class SDAR_base_F: Rifle_Base_F { - class Single: Mode_SemiAuto { - dispersion = MOA_TO_RAD(3.0); - }; - - class Burst: Mode_Burst { - dispersion = MOA_TO_RAD(3.0); - }; - - class FullAuto: Mode_FullAuto { - dispersion = MOA_TO_RAD(3.0); - }; - }; + class SDAR_base_F: Rifle_Base_F {}; class Pistol; class Pistol_Base_F: Pistol {}; @@ -408,13 +264,6 @@ class CfgWeapons { initSpeed = -0.978947; ACE_barrelTwist = 244.0; ACE_barrelLength = 463.0; - class Single: Mode_SemiAuto { - dispersion = MOA_TO_RAD(1.12); - }; - - class FullAuto: Mode_FullAuto { - dispersion = MOA_TO_RAD(1.12); - }; }; // QBU-88 @@ -427,9 +276,6 @@ class CfgWeapons { "ACE_20Rnd_65x47_Scenar_mag", "ACE_20Rnd_65_Creedmor_mag" }; - class Single: Mode_SemiAuto { - dispersion = MOA_TO_RAD(1.01); - }; }; // QBZ-95-1 LSW @@ -437,13 +283,6 @@ class CfgWeapons { initSpeed = -1.0; ACE_barrelTwist = 244.0; ACE_barrelLength = 600.0; - class Single: Mode_SemiAuto { - dispersion = MOA_TO_RAD(1.12); - }; - - class FullAuto: Mode_FullAuto { - dispersion = MOA_TO_RAD(1.12); - }; }; // Type 115 @@ -451,13 +290,6 @@ class CfgWeapons { initSpeed = -0.984262; ACE_barrelTwist = 228.6; ACE_barrelLength = 463.0; - class Single: Mode_SemiAuto { - dispersion = MOA_TO_RAD(0.90); - }; - - class FullAuto: Mode_FullAuto { - dispersion = MOA_TO_RAD(0.90); - }; }; // KH2002 Sama @@ -482,13 +314,6 @@ class CfgWeapons { initSpeed = -0.961294; ACE_barrelTwist = 203.2; ACE_barrelLength = 393.7; - class Single: Single { - dispersion = MOA_TO_RAD(0.90); - }; - - class FullAuto: FullAuto { - dispersion = MOA_TO_RAD(0.90); - }; }; // KH2002 Sama KGL @@ -537,13 +362,6 @@ class CfgWeapons { initSpeed = -0.946382; ACE_barrelTwist = 203.2; ACE_barrelLength = 266.7; - class Single: Single { - dispersion = MOA_TO_RAD(0.90); - }; - - class FullAuto: FullAuto { - dispersion = MOA_TO_RAD(0.90); - }; }; // RFB SDAR @@ -618,13 +436,6 @@ class CfgWeapons { initSpeed = -1.0; ACE_barrelTwist = 177.8; ACE_barrelLength = 459.74; - class Single: Single { - dispersion = MOA_TO_RAD(1.12); - }; - - class FullAuto: FullAuto { - dispersion = MOA_TO_RAD(1.12); - }; }; // TAR-21 EGLM @@ -682,13 +493,6 @@ class CfgWeapons { initSpeed = -0.974297; ACE_barrelTwist = 177.8; ACE_barrelLength = 406.4; - class Single: Single { - dispersion = MOA_TO_RAD(1.12); - }; - - class FullAuto: FullAuto { - dispersion = MOA_TO_RAD(1.12); - }; }; // F2000 EGLM From f9674b3ef9aaa857b59160b77167ab4476374fed Mon Sep 17 00:00:00 2001 From: Laid3acK Date: Thu, 27 Feb 2020 06:17:15 +0100 Subject: [PATCH 158/194] realisticdispersion --- optionals/realisticdispersion/$PBOPREFIX$ | 1 + optionals/realisticdispersion/CfgWeapons.hpp | 295 ++++++++++++++++++ optionals/realisticdispersion/config.cpp | 17 + .../realisticdispersion/script_component.hpp | 6 + 4 files changed, 319 insertions(+) create mode 100644 optionals/realisticdispersion/$PBOPREFIX$ create mode 100644 optionals/realisticdispersion/CfgWeapons.hpp create mode 100644 optionals/realisticdispersion/config.cpp create mode 100644 optionals/realisticdispersion/script_component.hpp diff --git a/optionals/realisticdispersion/$PBOPREFIX$ b/optionals/realisticdispersion/$PBOPREFIX$ new file mode 100644 index 0000000000..f81f4701ae --- /dev/null +++ b/optionals/realisticdispersion/$PBOPREFIX$ @@ -0,0 +1 @@ +z\ace\addons\realisticdispersion \ No newline at end of file diff --git a/optionals/realisticdispersion/CfgWeapons.hpp b/optionals/realisticdispersion/CfgWeapons.hpp new file mode 100644 index 0000000000..fc13ab0952 --- /dev/null +++ b/optionals/realisticdispersion/CfgWeapons.hpp @@ -0,0 +1,295 @@ +class Mode_SemiAuto; +class Mode_Burst; +class Mode_FullAuto; + +class CfgWeapons { + class Rifle_Base_F; + class Rifle_Long_Base_F: Rifle_Base_F {}; + + // GM6 Lynx + class GM6_base_F: Rifle_Long_Base_F { + class Single: Mode_SemiAuto { + dispersion = MOA_TO_RAD(0.45); + }; + }; + + // M200 Intervention + class LRR_base_F: Rifle_Long_Base_F { + class Single: Mode_SemiAuto { + dispersion = MOA_TO_RAD(0.50); + }; + }; + + // MX + class arifle_MX_Base_F: Rifle_Base_F { + class Single: Mode_SemiAuto { + dispersion = MOA_TO_RAD(0.90); + }; + + class FullAuto: Mode_FullAuto { + dispersion = MOA_TO_RAD(0.90); + }; + }; + + // KH2002 Sama + class arifle_katiba_Base_F: Rifle_Base_F { + class Single: Mode_SemiAuto { + dispersion = MOA_TO_RAD(0.90); + }; + + class FullAuto: Mode_FullAuto { + dispersion = MOA_TO_RAD(0.90); + }; + }; + + // CTAR-21 + class Tavor_base_F: Rifle_Base_F { + class Single: Mode_SemiAuto { + dispersion = MOA_TO_RAD(1.12); + }; + + class FullAuto: Mode_FullAuto { + dispersion = MOA_TO_RAD(1.12); + }; + }; + + // F2000 + class mk20_base_F: Rifle_Base_F { + class Single: Mode_SemiAuto { + dispersion = MOA_TO_RAD(1.12); + }; + + class FullAuto: Mode_FullAuto { + dispersion = MOA_TO_RAD(1.12); + }; + }; + + // Noreen "Bad News" ULR + class DMR_02_base_F: Rifle_Long_Base_F { + class Single: Mode_SemiAuto { + dispersion = MOA_TO_RAD(0.61); + }; + }; + + // VS-121 + class DMR_01_base_F: Rifle_Long_Base_F { + class Single: Mode_SemiAuto { + dispersion = MOA_TO_RAD(0.81); + }; + + class FullAuto: Mode_FullAuto { + dispersion = MOA_TO_RAD(0.81); + }; + }; + + // Mk14 Mod 1 EBR + class EBR_base_F: Rifle_Long_Base_F { + class Single: Mode_SemiAuto { + dispersion = MOA_TO_RAD(0.81); + }; + + class FullAuto: Mode_FullAuto { + dispersion = MOA_TO_RAD(0.81); + }; + }; + + // SIG 556 + class DMR_03_base_F: Rifle_Long_Base_F { + class Single: Mode_SemiAuto { + dispersion = MOA_TO_RAD(0.81); + }; + + class FullAuto: Mode_FullAuto { + dispersion = MOA_TO_RAD(0.81); + }; + }; + + // ASP-1 Kir + class DMR_04_base_F: Rifle_Long_Base_F { + class Single: Mode_SemiAuto { + dispersion = MOA_TO_RAD(1.0); + }; + }; + + // Cyrus + class DMR_05_base_F: Rifle_Long_Base_F { + class Single: Mode_SemiAuto { + dispersion = MOA_TO_RAD(0.67); + }; + + class FullAuto: Mode_FullAuto { + dispersion = MOA_TO_RAD(0.67); + }; + }; + + // M14 + class DMR_06_base_F: Rifle_Long_Base_F { + class Single: Mode_SemiAuto { + dispersion = MOA_TO_RAD(0.81); + }; + + class FullAuto: Mode_FullAuto { + dispersion = MOA_TO_RAD(0.81); + }; + }; + + class DMR_06_hunter_base_F: DMR_06_base_F { + class Single: Single { + dispersion = MOA_TO_RAD(0.81); + }; + }; + + // MX LSW + class arifle_MX_SW_F: arifle_MX_Base_F { + class Single: Mode_SemiAuto { + dispersion = MOA_TO_RAD(0.90); + }; + + class FullAuto: Mode_FullAuto { + dispersion = MOA_TO_RAD(0.90); + }; + }; + + // MXM + class arifle_MXM_F: arifle_MX_Base_F { + class Single: Single { + dispersion = MOA_TO_RAD(0.90); + }; + + class FullAuto: FullAuto { + dispersion = MOA_TO_RAD(0.90); + }; + }; + + // HK416A5 11" + class arifle_SPAR_01_base_F: Rifle_Base_F { + class Single: Mode_SemiAuto { + dispersion = MOA_TO_RAD(1.12); + }; + + class FullAuto: Mode_FullAuto { + dispersion = MOA_TO_RAD(1.12); + }; + }; + + // HK416A5 14.5" + class arifle_SPAR_02_base_F: Rifle_Base_F { + class Single: Mode_SemiAuto { + dispersion = MOA_TO_RAD(1.12); + }; + + class FullAuto: Mode_FullAuto { + dispersion = MOA_TO_RAD(1.12); + }; + }; + + // HK417A2 20" + class arifle_SPAR_03_base_F: Rifle_Base_F { + class Single: Mode_SemiAuto { + dispersion = MOA_TO_RAD(0.81); + }; + + class FullAuto: Mode_FullAuto { + dispersion = MOA_TO_RAD(0.81); + }; + }; + + // RFB SDAR + class SDAR_base_F: Rifle_Base_F { + class Single: Mode_SemiAuto { + dispersion = MOA_TO_RAD(3.0); + }; + + class Burst: Mode_Burst { + dispersion = MOA_TO_RAD(3.0); + }; + + class FullAuto: Mode_FullAuto { + dispersion = MOA_TO_RAD(3.0); + }; + }; + + // QBZ-95-1 + class arifle_CTAR_base_F: Rifle_Base_F { + class Single: Mode_SemiAuto { + dispersion = MOA_TO_RAD(1.12); + }; + + class FullAuto: Mode_FullAuto { + dispersion = MOA_TO_RAD(1.12); + }; + }; + + // QBU-88 + class DMR_07_base_F: Rifle_Long_Base_F { + class Single: Mode_SemiAuto { + dispersion = MOA_TO_RAD(1.01); + }; + }; + + // QBZ-95-1 LSW + class arifle_CTARS_base_F: Rifle_Base_F { + class Single: Mode_SemiAuto { + dispersion = MOA_TO_RAD(1.12); + }; + + class FullAuto: Mode_FullAuto { + dispersion = MOA_TO_RAD(1.12); + }; + }; + + // Type 115 + class arifle_ARX_base_F: Rifle_Base_F { + class Single: Mode_SemiAuto { + dispersion = MOA_TO_RAD(0.90); + }; + + class FullAuto: Mode_FullAuto { + dispersion = MOA_TO_RAD(0.90); + }; + }; + + // KH2002C Sama + class arifle_Katiba_C_F: arifle_katiba_Base_F { + class Single: Single { + dispersion = MOA_TO_RAD(0.90); + }; + + class FullAuto: FullAuto { + dispersion = MOA_TO_RAD(0.90); + }; + }; + + // MXC + class arifle_MXC_F: arifle_MX_Base_F { + class Single: Single { + dispersion = MOA_TO_RAD(0.90); + }; + + class FullAuto: FullAuto { + dispersion = MOA_TO_RAD(0.90); + }; + }; + + // TAR-21 + class arifle_TRG21_F: Tavor_base_F { + class Single: Single { + dispersion = MOA_TO_RAD(1.12); + }; + + class FullAuto: FullAuto { + dispersion = MOA_TO_RAD(1.12); + }; + }; + + // F2000 Tactical + class arifle_Mk20C_F: mk20_base_F { + class Single: Single { + dispersion = MOA_TO_RAD(1.12); + }; + + class FullAuto: FullAuto { + dispersion = MOA_TO_RAD(1.12); + }; + }; +}; diff --git a/optionals/realisticdispersion/config.cpp b/optionals/realisticdispersion/config.cpp new file mode 100644 index 0000000000..f8274ceba3 --- /dev/null +++ b/optionals/realisticdispersion/config.cpp @@ -0,0 +1,17 @@ +#include "script_component.hpp" + +class CfgPatches { + class ADDON { + name = COMPONENT_NAME; + units[] = {}; + weapons[] = {}; + requiredVersion = REQUIRED_VERSION; + requiredAddons[] = {"ace_ballistics"}; + author = ECSTRING(common,ACETeam); + authors[] = {"Ruthberg"}; + url = ECSTRING(main,URL); + VERSION_CONFIG; + }; +}; + +#include "CfgWeapons.hpp" diff --git a/optionals/realisticdispersion/script_component.hpp b/optionals/realisticdispersion/script_component.hpp new file mode 100644 index 0000000000..87cadb192b --- /dev/null +++ b/optionals/realisticdispersion/script_component.hpp @@ -0,0 +1,6 @@ +#define COMPONENT realisticdispersion +#define COMPONENT_BEAUTIFIED Realistic Dispersion + +#include "\z\ace\addons\main\script_mod.hpp" + +#include "\z\ace\addons\main\script_macros.hpp" From 0a5f87df8ccd7666a1ca8099948eb0d34cdd2899 Mon Sep 17 00:00:00 2001 From: Laid3acK Date: Thu, 27 Feb 2020 17:30:04 +0100 Subject: [PATCH 159/194] Rifle_Long_Base_Sniper_Marksman --- addons/ballistics/CfgWeapons.hpp | 227 ++++++++++++------------------- 1 file changed, 89 insertions(+), 138 deletions(-) diff --git a/addons/ballistics/CfgWeapons.hpp b/addons/ballistics/CfgWeapons.hpp index 095a38c6ff..4bfd504aa3 100644 --- a/addons/ballistics/CfgWeapons.hpp +++ b/addons/ballistics/CfgWeapons.hpp @@ -8,11 +8,98 @@ class CfgWeapons { class Rifle_Short_Base_F: Rifle_Base_F {}; class Rifle_Long_Base_F: Rifle_Base_F {}; + // Rifle_Long_Base Sniper Marksman // GM6 Lynx - class GM6_base_F: Rifle_Long_Base_F {}; + class GM6_base_F: Rifle_Long_Base_F { + ACE_barrelLength = 730; + ACE_barrelTwist = 381.0; + initSpeed = -1.0; + magazineWell[] = { + "CBA_50BMG_M107" + }; // empty in vanilla + }; // M200 Intervention - class LRR_base_F: Rifle_Long_Base_F {}; + class LRR_base_F: Rifle_Long_Base_F { + ACE_barrelLength = 736.6; + ACE_barrelTwist = 330.2; + initSpeed = -1.0; + magazineWell[] += { + "CBA_408CT_Inter" + }; // vanilla magazineWell[] = {"M320_408"}; + }; + + // Mk14 Mod 1 EBR + class EBR_base_F: Rifle_Long_Base_F { + ACE_barrelLength = 457.2; + ACE_barrelTwist = 304.8; + initSpeed = -0.979444; + }; + + // VS-121 + class DMR_01_base_F: Rifle_Long_Base_F { + ACE_barrelTwist = 241.3; + ACE_barrelLength = 609.6; + initSpeed = -1.00019; + }; + + // Noreen "Bad News" ULR + class DMR_02_base_F: Rifle_Long_Base_F { + ACE_barrelLength = 508.0; + ACE_barrelTwist = 254.0; + initSpeed = -1.0; + 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" + }; + }; + + // SIG 556 + class DMR_03_base_F: Rifle_Long_Base_F { + ACE_barrelLength = 508.0; + ACE_barrelTwist = 254.0; + initSpeed = -0.991536; + magazineWell[] += { + "CBA_762x51_M14" + }; // vanilla magazineWell[] = {"M14_762x51"}; + }; + + // ASP-1 Kir + class DMR_04_base_F: Rifle_Long_Base_F { + initSpeed = -1.0; + ACE_barrelTwist = 203.2; + ACE_barrelLength = 450.088; + }; + + // Cyrus + class DMR_05_base_F: Rifle_Long_Base_F { + initSpeed = -1.0; // 780 m/s according with the ACE_ammoTempMuzzleVelocityShifts at the normal conditions (15°C) + ACE_barrelTwist = 360.0; + ACE_barrelLength = 620.0; + }; + + // M14 + class DMR_06_base_F: Rifle_Long_Base_F { + ACE_barrelLength = 558.8; + ACE_barrelTwist = 304.8; + initSpeed = -0.999395; + }; + + // QBU-88 + class DMR_07_base_F: Rifle_Long_Base_F { + ACE_barrelLength = 640.0; + ACE_barrelTwist = 228.6; + initSpeed = -0.99998; + magazines[] = { + "20Rnd_650x39_Cased_Mag_F", + "ACE_20Rnd_65x47_Scenar_mag", + "ACE_20Rnd_65_Creedmor_mag" + }; + }; // MX class arifle_MX_Base_F: Rifle_Base_F {}; @@ -39,31 +126,6 @@ class CfgWeapons { modes[] = {"Single", "FullAuto"}; }; - // Noreen "Bad News" ULR - class DMR_02_base_F: Rifle_Long_Base_F {}; - - // VS-121 - class DMR_01_base_F: Rifle_Long_Base_F {}; - - // Mk14 Mod 1 EBR - class EBR_base_F: Rifle_Long_Base_F {}; - - // SIG 556 - class DMR_03_base_F: Rifle_Long_Base_F {}; - - // ASP-1 Kir - class DMR_04_base_F: Rifle_Long_Base_F {}; - - // Cyrus - class DMR_05_base_F: Rifle_Long_Base_F {}; - - // M14 - class DMR_06_base_F: Rifle_Long_Base_F { - ACE_barrelLength = 558.8; - ACE_barrelTwist = 304.8; - initSpeed = -0.999395; - }; - // MX LSW class arifle_MX_SW_F: arifle_MX_Base_F { magazines[] = { @@ -266,18 +328,6 @@ class CfgWeapons { ACE_barrelLength = 463.0; }; - // QBU-88 - class DMR_07_base_F: Rifle_Long_Base_F { - initSpeed = -0.99998; - ACE_barrelTwist = 228.6; - ACE_barrelLength = 640.0; - magazines[] = { - "20Rnd_650x39_Cased_Mag_F", - "ACE_20Rnd_65x47_Scenar_mag", - "ACE_20Rnd_65_Creedmor_mag" - }; - }; - // QBZ-95-1 LSW class arifle_CTARS_base_F: Rifle_Base_F { initSpeed = -1.0; @@ -523,105 +573,6 @@ class CfgWeapons { ACE_barrelLength = 139.7; }; - // VS-121 - class srifle_DMR_01_F: DMR_01_base_F { - magazines[] = { - "10Rnd_762x54_Mag", - "ACE_10Rnd_762x54_Tracer_mag" - }; - initSpeed = -1.00019; - ACE_barrelTwist = 241.3; - ACE_barrelLength = 609.6; - }; - - // Mk14 Mod 1 EBR - class srifle_EBR_F: EBR_base_F { - magazines[] = { - "20Rnd_762x51_Mag", - "ACE_20Rnd_762x51_Mag_Tracer", - "ACE_20Rnd_762x51_Mag_Tracer_Dim", - "ACE_20Rnd_762x51_Mk316_Mod_0_Mag", - "ACE_20Rnd_762x51_M118LR_Mag", - "ACE_20Rnd_762x51_Mk319_Mod_0_Mag", - "ACE_20Rnd_762x51_M993_AP_Mag", - "ACE_20Rnd_762x51_Mag_SD" - }; - initSpeed = -0.979444; - ACE_barrelTwist = 304.8; - ACE_barrelLength = 457.2; - }; - - // M200 Intervention - class srifle_LRR_F: LRR_base_F { - magazines[] = { - "7Rnd_408_Mag", - "ACE_7Rnd_408_305gr_Mag" - }; - initSpeed = -1.0; - ACE_barrelTwist = 330.2; - ACE_barrelLength = 736.6; - }; - - // GM6 Lynx - class srifle_GM6_F: GM6_base_F { - magazines[] = { - "5Rnd_127x108_Mag", - "5Rnd_127x108_APDS_Mag", - "ACE_5Rnd_127x99_Mag", - "ACE_5Rnd_127x99_API_Mag", - "ACE_5Rnd_127x99_AMAX_Mag" - }; - initSpeed = -1.0; - ACE_barrelTwist = 381.0; - ACE_barrelLength = 730; - }; - - // Noreen "Bad News" ULR - 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" - }; - initSpeed = -1.0; - ACE_barrelTwist = 254.0; - ACE_barrelLength = 508.0; - }; - - // SIG 556 - class srifle_DMR_03_F: DMR_03_base_F { - magazines[] = { - "20Rnd_762x51_Mag", - "ACE_20Rnd_762x51_Mag_Tracer", - "ACE_20Rnd_762x51_Mag_Tracer_Dim", - "ACE_20Rnd_762x51_Mk316_Mod_0_Mag", - "ACE_20Rnd_762x51_M118LR_Mag", - "ACE_20Rnd_762x51_Mk319_Mod_0_Mag", - "ACE_20Rnd_762x51_M993_AP_Mag", - "ACE_20Rnd_762x51_Mag_SD" - }; - initSpeed = -0.991536; - ACE_barrelTwist = 254.0; - ACE_barrelLength = 508.0; - }; - - // ASP-1 Kir - class srifle_DMR_04_F: DMR_04_base_F { - initSpeed = -1.0; - ACE_barrelTwist = 203.2; - ACE_barrelLength = 450.088; - }; - - // Cyrus - class srifle_DMR_05_blk_F: DMR_05_base_F { - initSpeed = -1.0; // 780 m/s according with the ACE_ammoTempMuzzleVelocityShifts at the normal conditions (15°C) - ACE_barrelTwist = 360.0; - ACE_barrelLength = 620.0; - }; - // HK121 class MMG_01_hex_F: MMG_01_base_F { // https://www.heckler-koch.com/en/products/military/machine-guns/mg5/mg5/technical-data.html93x initSpeed = -1.0; // 768 m/s according with the ACE_ammoTempMuzzleVelocityShifts at the normal conditions (15°C) From b64d988aa8888609a2790ef85a84dd83dc8d3c17 Mon Sep 17 00:00:00 2001 From: Laid3acK Date: Thu, 27 Feb 2020 19:11:50 +0100 Subject: [PATCH 160/194] Rifle_Base_MX variants --- addons/ballistics/CfgWeapons.hpp | 128 ++++++++++++++----------------- 1 file changed, 58 insertions(+), 70 deletions(-) diff --git a/addons/ballistics/CfgWeapons.hpp b/addons/ballistics/CfgWeapons.hpp index 4bfd504aa3..eb4a274fd4 100644 --- a/addons/ballistics/CfgWeapons.hpp +++ b/addons/ballistics/CfgWeapons.hpp @@ -48,8 +48,7 @@ class CfgWeapons { ACE_barrelLength = 508.0; ACE_barrelTwist = 254.0; initSpeed = -1.0; - magazines[] = { - "10Rnd_338_Mag", + magazines[] += { "ACE_10Rnd_338_300gr_HPBT_Mag", "ACE_10Rnd_338_API526_Mag", "ACE_20Rnd_762x67_Mk248_Mod_0_Mag", @@ -94,15 +93,69 @@ class CfgWeapons { ACE_barrelLength = 640.0; ACE_barrelTwist = 228.6; initSpeed = -0.99998; - magazines[] = { - "20Rnd_650x39_Cased_Mag_F", + magazines[] += { "ACE_20Rnd_65x47_Scenar_mag", "ACE_20Rnd_65_Creedmor_mag" }; }; + // Rifle_Base + // MX variants + class arifle_MX_Base_F: Rifle_Base_F { + ACE_barrelTwist = 228.6; + }; + + // MX LSW + class arifle_MX_SW_F: arifle_MX_Base_F { + ACE_barrelLength = 406.4; + initSpeed = -0.981912; + }; + + // MXM + class arifle_MXM_F: arifle_MX_Base_F { + ACE_barrelLength = 457.2; + initSpeed = -1.0; + magazines[] += { + "ACE_30Rnd_65x39_caseless_mag_Tracer_Dim", + "ACE_30Rnd_65x47_Scenar_mag", + "ACE_30Rnd_65_Creedmor_mag" + }; + }; + + class arifle_MXM_Black_F: arifle_MXM_F { + magazines[] += { + "ACE_30Rnd_65x39_caseless_mag_Tracer_Dim", + "ACE_30Rnd_65x47_Scenar_mag", + "ACE_30Rnd_65_Creedmor_mag" + }; + }; + + class arifle_MXM_khk_F: arifle_MXM_Black_F { + magazines[] += { + "ACE_30Rnd_65x39_caseless_mag_Tracer_Dim", + "ACE_30Rnd_65x47_Scenar_mag", + "ACE_30Rnd_65_Creedmor_mag" + }; + }; + // MX - class arifle_MX_Base_F: Rifle_Base_F {}; + class arifle_MX_F: arifle_MX_Base_F { + ACE_barrelLength = 368.3; + initSpeed = -0.972222; + }; + + // MX 3GL + class arifle_MX_GL_F: arifle_MX_Base_F { + ACE_barrelLength = 368.3; + initSpeed = -0.972222; + }; + + // MXC + class arifle_MXC_F: arifle_MX_Base_F { + ACE_barrelLength = 266.7; + ACE_barrelTwist = 203.2; + initSpeed = -0.946382; + }; // KH2002 Sama class arifle_katiba_Base_F: Rifle_Base_F {}; @@ -126,35 +179,6 @@ class CfgWeapons { modes[] = {"Single", "FullAuto"}; }; - // MX LSW - class arifle_MX_SW_F: arifle_MX_Base_F { - magazines[] = { - "100Rnd_65x39_caseless_mag_Tracer", - "100Rnd_65x39_caseless_mag", - "30Rnd_65x39_caseless_mag", - "30Rnd_65x39_caseless_mag_Tracer", - "ACE_100Rnd_65x39_caseless_mag_Tracer_Dim", - "ACE_30Rnd_65x39_caseless_mag_Tracer_Dim" - }; - initSpeed = -0.981912; - ACE_barrelTwist = 228.6; - ACE_barrelLength = 406.4; - }; - - // MXM - class arifle_MXM_F: arifle_MX_Base_F { - magazines[] = { - "30Rnd_65x39_caseless_mag", - "30Rnd_65x39_caseless_mag_Tracer", - "ACE_30Rnd_65x39_caseless_mag_Tracer_Dim", - "ACE_30Rnd_65x47_Scenar_mag", - "ACE_30Rnd_65_Creedmor_mag" - }; - initSpeed = -1.0; - ACE_barrelTwist = 228.6; - ACE_barrelLength = 457.2; - }; - // HK416A5 11" class arifle_SPAR_01_base_F: Rifle_Base_F { magazines[] = { @@ -378,42 +402,6 @@ class CfgWeapons { ACE_barrelLength = 508.0; }; - // MX - class arifle_MX_F: arifle_MX_Base_F { - magazines[] = { - "30Rnd_65x39_caseless_mag", - "30Rnd_65x39_caseless_mag_Tracer", - "ACE_30Rnd_65x39_caseless_mag_Tracer_Dim" - }; - initSpeed = -0.972222; - ACE_barrelTwist = 228.6; - ACE_barrelLength = 368.3; - }; - - // MX 3GL - class arifle_MX_GL_F: arifle_MX_Base_F { - magazines[] = { - "30Rnd_65x39_caseless_mag", - "30Rnd_65x39_caseless_mag_Tracer", - "ACE_30Rnd_65x39_caseless_mag_Tracer_Dim" - }; - initSpeed = -0.972222; - ACE_barrelTwist = 228.6; - ACE_barrelLength = 368.3; - }; - - // MXC - class arifle_MXC_F: arifle_MX_Base_F { - magazines[] = { - "30Rnd_65x39_caseless_mag", - "30Rnd_65x39_caseless_mag_Tracer", - "ACE_30Rnd_65x39_caseless_mag_Tracer_Dim" - }; - initSpeed = -0.946382; - ACE_barrelTwist = 203.2; - ACE_barrelLength = 266.7; - }; - // RFB SDAR class arifle_SDAR_F: SDAR_base_F { magazines[] = { From 85a5e5ab8c034d3472ee56bde5a9b6920cf74a51 Mon Sep 17 00:00:00 2001 From: Laid3acK Date: Fri, 28 Feb 2020 08:21:30 +0100 Subject: [PATCH 161/194] rifle_base_cleanup --- addons/ballistics/CfgWeapons.hpp | 432 +++++++++++-------------------- 1 file changed, 151 insertions(+), 281 deletions(-) diff --git a/addons/ballistics/CfgWeapons.hpp b/addons/ballistics/CfgWeapons.hpp index eb4a274fd4..7437df942c 100644 --- a/addons/ballistics/CfgWeapons.hpp +++ b/addons/ballistics/CfgWeapons.hpp @@ -38,8 +38,8 @@ class CfgWeapons { // VS-121 class DMR_01_base_F: Rifle_Long_Base_F { - ACE_barrelTwist = 241.3; ACE_barrelLength = 609.6; + ACE_barrelTwist = 241.3; initSpeed = -1.00019; }; @@ -69,16 +69,16 @@ class CfgWeapons { // ASP-1 Kir class DMR_04_base_F: Rifle_Long_Base_F { - initSpeed = -1.0; - ACE_barrelTwist = 203.2; ACE_barrelLength = 450.088; + ACE_barrelTwist = 203.2; + initSpeed = -1.0; }; // Cyrus class DMR_05_base_F: Rifle_Long_Base_F { - initSpeed = -1.0; // 780 m/s according with the ACE_ammoTempMuzzleVelocityShifts at the normal conditions (15°C) - ACE_barrelTwist = 360.0; ACE_barrelLength = 620.0; + ACE_barrelTwist = 360.0; + initSpeed = -1.0; // 780 m/s according with the ACE_ammoTempMuzzleVelocityShifts at the normal conditions (15°C) }; // M14 @@ -129,7 +129,7 @@ class CfgWeapons { "ACE_30Rnd_65_Creedmor_mag" }; }; - + class arifle_MXM_khk_F: arifle_MXM_Black_F { magazines[] += { "ACE_30Rnd_65x39_caseless_mag_Tracer_Dim", @@ -157,69 +157,178 @@ class CfgWeapons { initSpeed = -0.946382; }; - // KH2002 Sama - class arifle_katiba_Base_F: Rifle_Base_F {}; + // KH2002 Sama variants + class arifle_katiba_Base_F: Rifle_Base_F { + ACE_barrelTwist = 203.2; + }; - // CTAR-21 - class Tavor_base_F: Rifle_Base_F {}; + // KH2002 Sama + class arifle_Katiba_F: arifle_katiba_Base_F { + ACE_barrelLength = 508.0; + initSpeed = -1.0; + }; + + // KH2002C Sama + class arifle_Katiba_C_F: arifle_katiba_Base_F { + ACE_barrelLength = 393.7; + initSpeed = -0.961294; + }; + + // KH2002 Sama KGL + class arifle_Katiba_GL_F: arifle_katiba_Base_F { + ACE_barrelLength = 508.0; + initSpeed = -1.0; + }; + + // CTAR-21 variants + class Tavor_base_F: Rifle_Base_F { + ACE_barrelTwist = 177.8; + }; + + // CTAR-21 + class arifle_TRG20_F: Tavor_base_F { + ACE_barrelLength = 381.0; + initSpeed = -0.961496; + }; + + // TAR-21 + class arifle_TRG21_F: Tavor_base_F { + ACE_barrelLength = 459.74; + initSpeed = -1.0; + }; + + // TAR-21 EGLM + class arifle_TRG21_GL_F: arifle_TRG21_F { + initSpeed = -1.0; + }; + + // F2000 variants + class mk20_base_F: Rifle_Base_F { + ACE_barrelTwist = 177.8; + }; // F2000 - class mk20_base_F: Rifle_Base_F {}; + class arifle_Mk20_F: mk20_base_F { + ACE_barrelLength = 441.96; + initSpeed = -0.992849; + }; - // P90 (1.86) + // F2000 Tactical + class arifle_Mk20C_F: mk20_base_F { + ACE_barrelLength = 406.4; + initSpeed = -0.974297; + }; + + // F2000 EGLM + class arifle_Mk20_GL_F: mk20_base_F { + ACE_barrelLength = 406.4; + initSpeed = -0.974297; + }; + + // P90 (1.86) variants class SMG_03_TR_BASE: Rifle_Base_F { - ACE_barrelTwist = 228.6; // 1:9 inch twist ACE_barrelLength = 407; - ACE_twistDirection = 1; + ACE_barrelTwist = 228.6; // 1:9 inch twist initSpeed = -1.083916; // 775 m/s according with the ACE_muzzleVelocities at 15°C, default BI value -1.1 (786 m/s) modes[] = {"Single"}; }; + class SMG_03C_BASE: SMG_03_TR_BASE { ACE_barrelLength = 264; modes[] = {"Single", "FullAuto"}; }; + // HK416 variants // HK416A5 11" class arifle_SPAR_01_base_F: Rifle_Base_F { - magazines[] = { - "30Rnd_556x45_Stanag", - "30Rnd_556x45_Stanag_green", - "30Rnd_556x45_Stanag_red", - "30Rnd_556x45_Stanag_Tracer_Red", - "30Rnd_556x45_Stanag_Tracer_Green", - "30Rnd_556x45_Stanag_Tracer_Yellow", - "ACE_30Rnd_556x45_Stanag_M995_AP_mag", - "ACE_30Rnd_556x45_Stanag_Mk262_mag", - "ACE_30Rnd_556x45_Stanag_Mk318_mag", - "ACE_30Rnd_556x45_Stanag_Tracer_Dim" - }; - initSpeed = -0.869636; - ACE_barrelTwist = 177.8; ACE_barrelLength = 264.0; + ACE_barrelTwist = 177.8; + initSpeed = -0.869636; }; // HK416A5 14.5" class arifle_SPAR_02_base_F: Rifle_Base_F { - initSpeed = -0.999864; - ACE_barrelTwist = 177.8; ACE_barrelLength = 368.0; + ACE_barrelTwist = 177.8; + initSpeed = -0.999864; }; // HK417A2 20" class arifle_SPAR_03_base_F: Rifle_Base_F { - magazines[] = { - "20Rnd_762x51_Mag", - "ACE_20Rnd_762x51_Mag_Tracer", - "ACE_20Rnd_762x51_Mag_Tracer_Dim", - "ACE_20Rnd_762x51_Mk316_Mod_0_Mag", - "ACE_20Rnd_762x51_M118LR_Mag", - "ACE_20Rnd_762x51_Mk319_Mod_0_Mag", - "ACE_20Rnd_762x51_M993_AP_Mag", - "ACE_20Rnd_762x51_Mag_SD" - }; - initSpeed = -0.991536; - ACE_barrelTwist = 279.4; ACE_barrelLength = 508.0; + ACE_barrelTwist = 279.4; + initSpeed = -0.991536; + }; + + // RFB SDAR + class SDAR_base_F: Rifle_Base_F { + ACE_barrelLength = 457.2; + ACE_barrelTwist = 285.75; + initSpeed = -0.998321; + }; + + // AKS + class arifle_AKS_base_F: Rifle_Base_F { + ACE_barrelLength = 210; + ACE_barrelTwist = 160; + initSpeed = -1; // 735 m/s according with the ACE_muzzleVelocities at 15°C + }; + + // AKM + class arifle_AKM_base_F: Rifle_Base_F { + ACE_barrelLength = 415; + ACE_barrelTwist = 240; + initSpeed = -1; // 715 m/s according with the ACE_muzzleVelocities at 15°C + }; + + // AK15,AK15K,RPK (AK12) + class arifle_AK12_base_F: Rifle_Base_F { + ACE_barrelLength = 415; + ACE_barrelTwist = 240; + initSpeed = -1; // 715 m/s according with the ACE_muzzleVelocities at 15°C + }; + + class arifle_AK12U_base_F: arifle_AK12_base_F { + ACE_barrelLength = 314; + initSpeed = -0.937063; // 715*0.937063= 670 m/s according with the ACE_muzzleVelocities at 15°C + }; + + class arifle_RPK12_base_F: arifle_AK12_base_F { + ACE_barrelLength = 590; + initSpeed = -1.041958; // 715*1.041958= 745 m/s according with the ACE_muzzleVelocities at 15°C + }; + + // MSBS GROT (Promet) + class arifle_MSBS65_base_F: Rifle_Base_F { + ACE_barrelLength = 406.4; // 16" + ACE_barrelTwist = 228.6; + initSpeed = -0.971576; // 774*0.971576= 752 m/s according with the ACE_muzzleVelocities at 15°C + }; + + class arifle_MSBS65_Mark_base_F: arifle_MSBS65_base_F { + ACE_barrelLength = 508; // 20" + initSpeed = -1.007752; // 774*1.007752= 780 m/s according with the ACE_muzzleVelocities at 15°C + }; + + // QBZ-95-1 + class arifle_CTAR_base_F: Rifle_Base_F { + ACE_barrelLength = 463.0; + ACE_barrelTwist = 244.0; + initSpeed = -0.978947; + }; + + // QBZ-95-1 LSW + class arifle_CTARS_base_F: Rifle_Base_F { + ACE_barrelLength = 600.0; + ACE_barrelTwist = 244.0; + initSpeed = -1.0; + }; + + // Type 115 + class arifle_ARX_base_F: Rifle_Base_F { + ACE_barrelLength = 463.0; + ACE_barrelTwist = 228.6; + initSpeed = -0.984262; }; // Stoner 99 LMG @@ -243,9 +352,6 @@ class CfgWeapons { ACE_barrelLength = 414.02; }; - // RFB SDAR - class SDAR_base_F: Rifle_Base_F {}; - class Pistol; class Pistol_Base_F: Pistol {}; @@ -300,128 +406,6 @@ class CfgWeapons { ACE_barrelLength = 177.8; }; - // AKS - class arifle_AKS_base_F: Rifle_Base_F { - initSpeed = -1; // 735 m/s according with the ACE_muzzleVelocities at 15°C - ACE_barrelTwist = 160; - ACE_barrelLength = 210; - }; - - // AKM - class arifle_AKM_base_F: Rifle_Base_F { - initSpeed = -1; // 715 m/s according with the ACE_muzzleVelocities at 15°C - ACE_barrelTwist = 240; - ACE_barrelLength = 415; - }; - - // AK15,AK15K,RPK (AK12) - class arifle_AK12_base_F: Rifle_Base_F { - initSpeed = -1; // 715 m/s according with the ACE_muzzleVelocities at 15°C - ACE_barrelTwist = 240; - ACE_barrelLength = 415; - }; - - class arifle_AK12U_base_F: arifle_AK12_base_F { - initSpeed = -0.937063; // 715*0.937063= 670 m/s according with the ACE_muzzleVelocities at 15°C - ACE_barrelTwist = 240; - ACE_barrelLength = 314; - }; - - class arifle_RPK12_base_F: arifle_AK12_base_F { - initSpeed = -1.041958; // 715*1.041958= 745 m/s according with the ACE_muzzleVelocities at 15°C - ACE_barrelTwist = 240; - ACE_barrelLength = 590; - }; - - // MSBS GROT (Promet) - class arifle_MSBS65_base_F: Rifle_Base_F { - initSpeed = -0.971576; // 774*0.971576= 752 m/s according with the ACE_muzzleVelocities at 15°C - ACE_barrelTwist = 228.6; - ACE_barrelLength = 406.4; // 16" - }; - - class arifle_MSBS65_Mark_base_F: arifle_MSBS65_base_F { - initSpeed = -1.007752; // 774*1.007752= 780 m/s according with the ACE_muzzleVelocities at 15°C - ACE_barrelLength = 508; // 20" - }; - - // QBZ-95-1 - class arifle_CTAR_base_F: Rifle_Base_F { - initSpeed = -0.978947; - ACE_barrelTwist = 244.0; - ACE_barrelLength = 463.0; - }; - - // QBZ-95-1 LSW - class arifle_CTARS_base_F: Rifle_Base_F { - initSpeed = -1.0; - ACE_barrelTwist = 244.0; - ACE_barrelLength = 600.0; - }; - - // Type 115 - class arifle_ARX_base_F: Rifle_Base_F { - initSpeed = -0.984262; - ACE_barrelTwist = 228.6; - ACE_barrelLength = 463.0; - }; - - // KH2002 Sama - class arifle_Katiba_F: arifle_katiba_Base_F { - magazines[] = { - "30Rnd_65x39_caseless_green", - "30Rnd_65x39_caseless_green_mag_Tracer", - "ACE_30Rnd_65x39_caseless_green_mag_Tracer_Dim" - }; - initSpeed = -1.0; - ACE_barrelTwist = 203.2; - ACE_barrelLength = 508.0; - }; - - // KH2002C Sama - class arifle_Katiba_C_F: arifle_katiba_Base_F { - magazines[] = { - "30Rnd_65x39_caseless_green", - "30Rnd_65x39_caseless_green_mag_Tracer", - "ACE_30Rnd_65x39_caseless_green_mag_Tracer_Dim" - }; - initSpeed = -0.961294; - ACE_barrelTwist = 203.2; - ACE_barrelLength = 393.7; - }; - - // KH2002 Sama KGL - class arifle_Katiba_GL_F: arifle_katiba_Base_F { - magazines[] = { - "30Rnd_65x39_caseless_green", - "30Rnd_65x39_caseless_green_mag_Tracer", - "ACE_30Rnd_65x39_caseless_green_mag_Tracer_Dim" - }; - initSpeed = -1.0; - ACE_barrelTwist = 203.2; - ACE_barrelLength = 508.0; - }; - - // RFB SDAR - class arifle_SDAR_F: SDAR_base_F { - magazines[] = { - "20Rnd_556x45_UW_mag", - "30Rnd_556x45_Stanag", - "30Rnd_556x45_Stanag_Tracer_Red", - "30Rnd_556x45_Stanag_Tracer_Green", - "30Rnd_556x45_Stanag_Tracer_Yellow", - "30Rnd_556x45_Stanag_red", - "30Rnd_556x45_Stanag_green", - "ACE_30Rnd_556x45_Stanag_M995_AP_mag", - "ACE_30Rnd_556x45_Stanag_Mk262_mag", - "ACE_30Rnd_556x45_Stanag_Mk318_mag", - "ACE_30Rnd_556x45_Stanag_Tracer_Dim" - }; - initSpeed = -0.998321; - ACE_barrelTwist = 285.75; - ACE_barrelLength = 457.2; - }; - class SMG_02_base_F: Rifle_Short_Base_F {}; // Scorpion Evo 3 A1 @@ -438,120 +422,6 @@ class CfgWeapons { ACE_barrelLength = 115.0; }; - // CTAR-21 - class arifle_TRG20_F: Tavor_base_F { - magazines[] = { - "30Rnd_556x45_Stanag", - "30Rnd_556x45_Stanag_Tracer_Red", - "30Rnd_556x45_Stanag_Tracer_Green", - "30Rnd_556x45_Stanag_Tracer_Yellow", - "30Rnd_556x45_Stanag_red", - "30Rnd_556x45_Stanag_green", - "ACE_30Rnd_556x45_Stanag_M995_AP_mag", - "ACE_30Rnd_556x45_Stanag_Mk262_mag", - "ACE_30Rnd_556x45_Stanag_Mk318_mag", - "ACE_30Rnd_556x45_Stanag_Tracer_Dim" - }; - initSpeed = -0.961496; - ACE_barrelTwist = 177.8; - ACE_barrelLength = 381.0; - }; - - // TAR-21 - class arifle_TRG21_F: Tavor_base_F { - magazines[] = { - "30Rnd_556x45_Stanag", - "30Rnd_556x45_Stanag_Tracer_Red", - "30Rnd_556x45_Stanag_Tracer_Green", - "30Rnd_556x45_Stanag_Tracer_Yellow", - "30Rnd_556x45_Stanag_red", - "30Rnd_556x45_Stanag_green", - "ACE_30Rnd_556x45_Stanag_M995_AP_mag", - "ACE_30Rnd_556x45_Stanag_Mk262_mag", - "ACE_30Rnd_556x45_Stanag_Mk318_mag", - "ACE_30Rnd_556x45_Stanag_Tracer_Dim" - }; - initSpeed = -1.0; - ACE_barrelTwist = 177.8; - ACE_barrelLength = 459.74; - }; - - // TAR-21 EGLM - class arifle_TRG21_GL_F: arifle_TRG21_F { - magazines[] = { - "30Rnd_556x45_Stanag", - "30Rnd_556x45_Stanag_Tracer_Red", - "30Rnd_556x45_Stanag_Tracer_Green", - "30Rnd_556x45_Stanag_Tracer_Yellow", - "30Rnd_556x45_Stanag_red", - "30Rnd_556x45_Stanag_green", - "ACE_30Rnd_556x45_Stanag_M995_AP_mag", - "ACE_30Rnd_556x45_Stanag_Mk262_mag", - "ACE_30Rnd_556x45_Stanag_Mk318_mag", - "ACE_30Rnd_556x45_Stanag_Tracer_Dim" - }; - initSpeed = -1.0; - ACE_barrelTwist = 177.8; - ACE_barrelLength = 459.74; - }; - - // F2000 - class arifle_Mk20_F: mk20_base_F { - magazines[] = { - "30Rnd_556x45_Stanag", - "30Rnd_556x45_Stanag_Tracer_Red", - "30Rnd_556x45_Stanag_Tracer_Green", - "30Rnd_556x45_Stanag_Tracer_Yellow", - "30Rnd_556x45_Stanag_red", - "30Rnd_556x45_Stanag_green", - "ACE_30Rnd_556x45_Stanag_M995_AP_mag", - "ACE_30Rnd_556x45_Stanag_Mk262_mag", - "ACE_30Rnd_556x45_Stanag_Mk318_mag", - "ACE_30Rnd_556x45_Stanag_Tracer_Dim" - }; - initSpeed = -0.992849; - ACE_barrelTwist = 177.8; - ACE_barrelLength = 441.96; - }; - - // F2000 Tactical - class arifle_Mk20C_F: mk20_base_F { - magazines[] = { - "30Rnd_556x45_Stanag", - "30Rnd_556x45_Stanag_Tracer_Red", - "30Rnd_556x45_Stanag_Tracer_Green", - "30Rnd_556x45_Stanag_Tracer_Yellow", - "30Rnd_556x45_Stanag_red", - "30Rnd_556x45_Stanag_green", - "ACE_30Rnd_556x45_Stanag_M995_AP_mag", - "ACE_30Rnd_556x45_Stanag_Mk262_mag", - "ACE_30Rnd_556x45_Stanag_Mk318_mag", - "ACE_30Rnd_556x45_Stanag_Tracer_Dim" - }; - initSpeed = -0.974297; - ACE_barrelTwist = 177.8; - ACE_barrelLength = 406.4; - }; - - // F2000 EGLM - class arifle_Mk20_GL_F: mk20_base_F { - magazines[] = { - "30Rnd_556x45_Stanag", - "30Rnd_556x45_Stanag_Tracer_Red", - "30Rnd_556x45_Stanag_Tracer_Green", - "30Rnd_556x45_Stanag_Tracer_Yellow", - "30Rnd_556x45_Stanag_red", - "30Rnd_556x45_Stanag_green", - "ACE_30Rnd_556x45_Stanag_M995_AP_mag", - "ACE_30Rnd_556x45_Stanag_Mk262_mag", - "ACE_30Rnd_556x45_Stanag_Mk318_mag", - "ACE_30Rnd_556x45_Stanag_Tracer_Dim" - }; - initSpeed = -0.974297; - ACE_barrelTwist = 177.8; - ACE_barrelLength = 406.4; - }; - class SMG_01_Base: Rifle_Short_Base_F {}; // Vector SMG From a1adf73d4b3b042ac9b1446f3f62a6ad636a1d9d Mon Sep 17 00:00:00 2001 From: Laid3acK Date: Fri, 28 Feb 2020 09:12:26 +0100 Subject: [PATCH 162/194] Rifle_Short_Base_F_cleanup --- addons/ballistics/CfgWeapons.hpp | 116 +++++++++++++++---------------- 1 file changed, 58 insertions(+), 58 deletions(-) diff --git a/addons/ballistics/CfgWeapons.hpp b/addons/ballistics/CfgWeapons.hpp index 7437df942c..d3aa7be191 100644 --- a/addons/ballistics/CfgWeapons.hpp +++ b/addons/ballistics/CfgWeapons.hpp @@ -2,13 +2,11 @@ class CfgWeapons { class LMG_RCWS; class MGun; class MGunCore; - class MMG_01_base_F; - class MMG_02_base_F; class Rifle_Base_F; class Rifle_Short_Base_F: Rifle_Base_F {}; class Rifle_Long_Base_F: Rifle_Base_F {}; - // Rifle_Long_Base Sniper Marksman + // Rifle_Long_Base_F Sniper Marksman // GM6 Lynx class GM6_base_F: Rifle_Long_Base_F { ACE_barrelLength = 730; @@ -99,7 +97,7 @@ class CfgWeapons { }; }; - // Rifle_Base + // Rifle_Base_F // MX variants class arifle_MX_Base_F: Rifle_Base_F { ACE_barrelTwist = 228.6; @@ -331,25 +329,75 @@ class CfgWeapons { initSpeed = -0.984262; }; + // Rifle_Long_Base_F MG // Stoner 99 LMG class LMG_Mk200_F: Rifle_Long_Base_F { - initSpeed = -0.999327; - ACE_barrelTwist = 177.8; ACE_barrelLength = 317.5; + ACE_barrelTwist = 177.8; + initSpeed = -0.999327; }; // Negev NG7 class LMG_Zafir_F: Rifle_Long_Base_F { - initSpeed = -1.00048; - ACE_barrelTwist = 304.8; ACE_barrelLength = 459.74; + ACE_barrelTwist = 304.8; + initSpeed = -1.00048; }; // M249 SPW class LMG_03_base_F: Rifle_Long_Base_F { - initSpeed = -1.00051; - ACE_barrelTwist = 177.8; ACE_barrelLength = 414.02; + ACE_barrelTwist = 177.8; + initSpeed = -1.00051; + }; + + // HK121 + class MMG_01_base_F: Rifle_Long_Base_F { // https://www.heckler-koch.com/en/products/military/machine-guns/mg5/mg5/technical-data.html93x + ACE_barrelLength = 550.0; + ACE_barrelTwist = 360.0; + initSpeed = -1.0; // 768 m/s according with the ACE_ammoTempMuzzleVelocityShifts at the normal conditions (15°C) + }; + + // LWMMG + class MMG_02_base_F: Rifle_Long_Base_F + ACE_barrelLength = 609.6; + ACE_barrelTwist = 234.95; + initSpeed = -1.0; + }; + + // Rifle_Short_Base_F + // CPW + class pdw2000_base_F: Rifle_Short_Base_F {}; + + class hgun_PDW2000_F: pdw2000_base_F { + ACE_barrelLength = 177.8; + ACE_barrelTwist = 228.6; + initSpeed = -0.994186; + }; + + // Scorpion Evo 3 A1 + class SMG_02_base_F: Rifle_Short_Base_F {}; + + class SMG_02_F: SMG_02_base_F { + ACE_barrelLength = 195.58; + ACE_barrelTwist = 254.0; + initSpeed = -1.00029; + }; + + // MP5K + class SMG_05_base_F: Rifle_Short_Base_F { + ACE_barrelLength = 115.0; + ACE_barrelTwist = 254.0; + initSpeed = -0.943783; + }; + + // Vector SMG + class SMG_01_Base: Rifle_Short_Base_F {}; + + class SMG_01_F: SMG_01_Base { + ACE_barrelLength = 139.7; + ACE_barrelTwist = 406.4; + initSpeed = -1.00148; }; class Pistol; @@ -397,54 +445,6 @@ class CfgWeapons { ACE_barrelLength = 93.5; }; - class pdw2000_base_F: Rifle_Short_Base_F {}; - - // CPW - class hgun_PDW2000_F: pdw2000_base_F { - initSpeed = -0.994186; - ACE_barrelTwist = 228.6; - ACE_barrelLength = 177.8; - }; - - class SMG_02_base_F: Rifle_Short_Base_F {}; - - // Scorpion Evo 3 A1 - class SMG_02_F: SMG_02_base_F { - initSpeed = -1.00029; - ACE_barrelTwist = 254.0; - ACE_barrelLength = 195.58; - }; - - // MP5K - class SMG_05_base_F: Rifle_Short_Base_F { - initSpeed = -0.943783; - ACE_barrelTwist = 254.0; - ACE_barrelLength = 115.0; - }; - - class SMG_01_Base: Rifle_Short_Base_F {}; - - // Vector SMG - class SMG_01_F: SMG_01_Base { - initSpeed = -1.00148; - ACE_barrelTwist = 406.4; - ACE_barrelLength = 139.7; - }; - - // HK121 - class MMG_01_hex_F: MMG_01_base_F { // https://www.heckler-koch.com/en/products/military/machine-guns/mg5/mg5/technical-data.html93x - initSpeed = -1.0; // 768 m/s according with the ACE_ammoTempMuzzleVelocityShifts at the normal conditions (15°C) - ACE_barrelTwist = 360.0; - ACE_barrelLength = 550.0; - }; - - // LWMMG - class MMG_02_camo_F: MMG_02_base_F { - initSpeed = -1.0; - ACE_barrelTwist = 234.95; - ACE_barrelLength = 609.6; - }; - class HMG_127 : LMG_RCWS { }; class HMG_01: HMG_127 { From 06f2c8e1d53d91a1472f2c7daf387d9551e4b75c Mon Sep 17 00:00:00 2001 From: Laid3acK Date: Fri, 28 Feb 2020 09:42:31 +0100 Subject: [PATCH 163/194] Pistol_Base_F_cleanup --- addons/ballistics/CfgWeapons.hpp | 75 +++++++++++++++----------------- 1 file changed, 36 insertions(+), 39 deletions(-) diff --git a/addons/ballistics/CfgWeapons.hpp b/addons/ballistics/CfgWeapons.hpp index d3aa7be191..6871c97c28 100644 --- a/addons/ballistics/CfgWeapons.hpp +++ b/addons/ballistics/CfgWeapons.hpp @@ -1,7 +1,6 @@ class CfgWeapons { - class LMG_RCWS; - class MGun; - class MGunCore; + class HMG_01; + class Pistol_Base_F; class Rifle_Base_F; class Rifle_Short_Base_F: Rifle_Base_F {}; class Rifle_Long_Base_F: Rifle_Base_F {}; @@ -367,20 +366,32 @@ class CfgWeapons { // Rifle_Short_Base_F // CPW - class pdw2000_base_F: Rifle_Short_Base_F {}; - - class hgun_PDW2000_F: pdw2000_base_F { + class pdw2000_base_F: Rifle_Short_Base_F { ACE_barrelLength = 177.8; ACE_barrelTwist = 228.6; + }; + + class hgun_PDW2000_F: pdw2000_base_F { initSpeed = -0.994186; }; - // Scorpion Evo 3 A1 - class SMG_02_base_F: Rifle_Short_Base_F {}; + // Vector SMG + class SMG_01_Base: Rifle_Short_Base_F { + ACE_barrelLength = 139.7; + ACE_barrelTwist = 406.4; + }; - class SMG_02_F: SMG_02_base_F { + class SMG_01_F: SMG_01_Base { + initSpeed = -1.00148; + }; + + // Scorpion Evo 3 A1 + class SMG_02_base_F: Rifle_Short_Base_F { ACE_barrelLength = 195.58; ACE_barrelTwist = 254.0; + }; + + class SMG_02_F: SMG_02_base_F { initSpeed = -1.00029; }; @@ -391,68 +402,54 @@ class CfgWeapons { initSpeed = -0.943783; }; - // Vector SMG - class SMG_01_Base: Rifle_Short_Base_F {}; - - class SMG_01_F: SMG_01_Base { - ACE_barrelLength = 139.7; - ACE_barrelTwist = 406.4; - initSpeed = -1.00148; - }; - - class Pistol; - class Pistol_Base_F: Pistol {}; - + // Pistol_Base_F // P99 class hgun_P07_F: Pistol_Base_F { - initSpeed = -0.906977; - ACE_barrelTwist = 254.0; ACE_barrelLength = 101.6; + ACE_barrelTwist = 254.0; + initSpeed = -0.906977; }; // MP-443 Grach class hgun_Rook40_F: Pistol_Base_F { - initSpeed = -0.934884; - ACE_barrelTwist = 254.0; ACE_barrelLength = 111.76; + ACE_barrelTwist = 254.0; + initSpeed = -0.934884; }; // Custom Covert II class hgun_ACPC2_F: Pistol_Base_F { - initSpeed = -0.984252; - ACE_barrelTwist = 406.4; ACE_barrelLength = 127.0; + ACE_barrelTwist = 406.4; + initSpeed = -0.984252; }; // FNX-45 Tactical class hgun_Pistol_heavy_01_F: Pistol_Base_F { - initSpeed = -0.944882; - ACE_barrelTwist = 406.4; ACE_barrelLength = 114.3; + ACE_barrelTwist = 406.4; + initSpeed = -0.944882; }; // Chiappa Rhino 60DS class hgun_Pistol_heavy_02_F: Pistol_Base_F { - initSpeed = -0.905512; - ACE_barrelTwist = 406.4; ACE_barrelLength = 76.2; + ACE_barrelTwist = 406.4; + initSpeed = -0.905512; }; // Makarov PM class hgun_Pistol_01_F: Pistol_Base_F { - initSpeed = -0.883721; - ACE_barrelTwist = 254.0; ACE_barrelLength = 93.5; + ACE_barrelTwist = 254.0; + initSpeed = -0.883721; }; - class HMG_127 : LMG_RCWS { - }; - class HMG_01: HMG_127 { - }; + // M2_Turret class HMG_M2: HMG_01 { - initSpeed = -1.0; - ACE_barrelTwist = 304.8; ACE_barrelLength = 1143.0; + ACE_barrelTwist = 304.8; + initSpeed = -1.0; }; /* Silencers */ From 02b7b6d2c32982939b81eccd8fa85c4a43cdcf85 Mon Sep 17 00:00:00 2001 From: Laid3acK Date: Fri, 28 Feb 2020 10:02:51 +0100 Subject: [PATCH 164/194] dispersion_removed --- addons/ballistics/CfgWeapons.hpp | 72 ++++++++++++++++---------------- 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/addons/ballistics/CfgWeapons.hpp b/addons/ballistics/CfgWeapons.hpp index 6871c97c28..6e447b1601 100644 --- a/addons/ballistics/CfgWeapons.hpp +++ b/addons/ballistics/CfgWeapons.hpp @@ -96,6 +96,42 @@ class CfgWeapons { }; }; + // Rifle_Long_Base_F MG + // Stoner 99 LMG + class LMG_Mk200_F: Rifle_Long_Base_F { + ACE_barrelLength = 317.5; + ACE_barrelTwist = 177.8; + initSpeed = -0.999327; + }; + + // Negev NG7 + class LMG_Zafir_F: Rifle_Long_Base_F { + ACE_barrelLength = 459.74; + ACE_barrelTwist = 304.8; + initSpeed = -1.00048; + }; + + // M249 SPW + class LMG_03_base_F: Rifle_Long_Base_F { + ACE_barrelLength = 414.02; + ACE_barrelTwist = 177.8; + initSpeed = -1.00051; + }; + + // HK121 + class MMG_01_base_F: Rifle_Long_Base_F { // https://www.heckler-koch.com/en/products/military/machine-guns/mg5/mg5/technical-data.html93x + ACE_barrelLength = 550.0; + ACE_barrelTwist = 360.0; + initSpeed = -1.0; // 768 m/s according with the ACE_ammoTempMuzzleVelocityShifts at the normal conditions (15°C) + }; + + // LWMMG + class MMG_02_base_F: Rifle_Long_Base_F + ACE_barrelLength = 609.6; + ACE_barrelTwist = 234.95; + initSpeed = -1.0; + }; + // Rifle_Base_F // MX variants class arifle_MX_Base_F: Rifle_Base_F { @@ -328,42 +364,6 @@ class CfgWeapons { initSpeed = -0.984262; }; - // Rifle_Long_Base_F MG - // Stoner 99 LMG - class LMG_Mk200_F: Rifle_Long_Base_F { - ACE_barrelLength = 317.5; - ACE_barrelTwist = 177.8; - initSpeed = -0.999327; - }; - - // Negev NG7 - class LMG_Zafir_F: Rifle_Long_Base_F { - ACE_barrelLength = 459.74; - ACE_barrelTwist = 304.8; - initSpeed = -1.00048; - }; - - // M249 SPW - class LMG_03_base_F: Rifle_Long_Base_F { - ACE_barrelLength = 414.02; - ACE_barrelTwist = 177.8; - initSpeed = -1.00051; - }; - - // HK121 - class MMG_01_base_F: Rifle_Long_Base_F { // https://www.heckler-koch.com/en/products/military/machine-guns/mg5/mg5/technical-data.html93x - ACE_barrelLength = 550.0; - ACE_barrelTwist = 360.0; - initSpeed = -1.0; // 768 m/s according with the ACE_ammoTempMuzzleVelocityShifts at the normal conditions (15°C) - }; - - // LWMMG - class MMG_02_base_F: Rifle_Long_Base_F - ACE_barrelLength = 609.6; - ACE_barrelTwist = 234.95; - initSpeed = -1.0; - }; - // Rifle_Short_Base_F // CPW class pdw2000_base_F: Rifle_Short_Base_F { From 3a3e0c53a01eb824d4889717323d43d01ebb6761 Mon Sep 17 00:00:00 2001 From: Laid3acK Date: Fri, 28 Feb 2020 10:09:06 +0100 Subject: [PATCH 165/194] dispersion_removed --- addons/ballistics/CfgWeapons.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/ballistics/CfgWeapons.hpp b/addons/ballistics/CfgWeapons.hpp index 6e447b1601..7b5794d91b 100644 --- a/addons/ballistics/CfgWeapons.hpp +++ b/addons/ballistics/CfgWeapons.hpp @@ -11,7 +11,7 @@ class CfgWeapons { ACE_barrelLength = 730; ACE_barrelTwist = 381.0; initSpeed = -1.0; - magazineWell[] = { + magazineWell[] += { "CBA_50BMG_M107" }; // empty in vanilla }; From 09332d333f6b90e537bd7e80b7f92eab6692e820 Mon Sep 17 00:00:00 2001 From: Laid3acK Date: Fri, 28 Feb 2020 10:11:07 +0100 Subject: [PATCH 166/194] polish_atragmx_initgunlist --- addons/atragmx/functions/fnc_initGunList.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/atragmx/functions/fnc_initGunList.sqf b/addons/atragmx/functions/fnc_initGunList.sqf index 87e2a074c6..49b87dff5c 100644 --- a/addons/atragmx/functions/fnc_initGunList.sqf +++ b/addons/atragmx/functions/fnc_initGunList.sqf @@ -76,7 +76,7 @@ if (_resetGunList) then { ["5.56x45mm Mk318" , 872, 100, 0.0814490, -0.00125880, 7.11, 0, 2, 10, 120, 0, 0, 4.018, 5.70, 17.78, 0.307, 1, "ASM" , [[-15,853],[0,860],[10,867],[15,872],[25,886],[30,895],[35,906]] , [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true], ["5.56x45mm M995" , 861, 100, 0.0825279, -0.00126182, 7.11, 0, 2, 10, 120, 0, 0, 4.536, 5.70, 17.78, 0.310, 1, "ASM" , [[-15,842],[0,849],[10,856],[15,861],[25,875],[30,884],[35,895]] , [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true], - ["5.45x39mm 7N6M" , 735, 100, 0.0784916, -0.00119458, 3.81, 0, 2, 10, 120, 0, 0, 3.43, 5.6, 16.00, 0.336, 1, "ICAO", [[-15,716],[0,723],[10,730],[15,735],[25,749],[30,758],[35,769]], [[0, 0.339], [730, 0.331], [960, 0.323], [1100, 0.321], [1220, 0.320], [1380, 0.320], [1480, 0.320]], true]]; + ["5.45x39mm 7N6M" , 735, 100, 0.0784916, -0.00119458, 3.81, 0, 2, 10, 120, 0, 0, 3.430, 5.60, 16.00, 0.336, 1, "ICAO", [[-15,716],[0,723],[10,730],[15,735],[25,749],[30,758],[35,769]], [[0, 0.339], [730, 0.331], [960, 0.323], [1100, 0.321], [1220, 0.320], [1380, 0.320], [1480, 0.320]], true]]; [] call FUNC(clear_user_data); profileNamespace setVariable ["ACE_ATragMX_gunList", GVAR(gunList)]; From 4a6d32774e7bf9068ababb01fa6b8556c439cfad Mon Sep 17 00:00:00 2001 From: Laid3acK Date: Fri, 28 Feb 2020 10:13:59 +0100 Subject: [PATCH 167/194] space_atragmx_initgunlist --- addons/atragmx/functions/fnc_initGunList.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/atragmx/functions/fnc_initGunList.sqf b/addons/atragmx/functions/fnc_initGunList.sqf index 49b87dff5c..aab682f6ac 100644 --- a/addons/atragmx/functions/fnc_initGunList.sqf +++ b/addons/atragmx/functions/fnc_initGunList.sqf @@ -76,7 +76,7 @@ if (_resetGunList) then { ["5.56x45mm Mk318" , 872, 100, 0.0814490, -0.00125880, 7.11, 0, 2, 10, 120, 0, 0, 4.018, 5.70, 17.78, 0.307, 1, "ASM" , [[-15,853],[0,860],[10,867],[15,872],[25,886],[30,895],[35,906]] , [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true], ["5.56x45mm M995" , 861, 100, 0.0825279, -0.00126182, 7.11, 0, 2, 10, 120, 0, 0, 4.536, 5.70, 17.78, 0.310, 1, "ASM" , [[-15,842],[0,849],[10,856],[15,861],[25,875],[30,884],[35,895]] , [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true], - ["5.45x39mm 7N6M" , 735, 100, 0.0784916, -0.00119458, 3.81, 0, 2, 10, 120, 0, 0, 3.430, 5.60, 16.00, 0.336, 1, "ICAO", [[-15,716],[0,723],[10,730],[15,735],[25,749],[30,758],[35,769]], [[0, 0.339], [730, 0.331], [960, 0.323], [1100, 0.321], [1220, 0.320], [1380, 0.320], [1480, 0.320]], true]]; + ["5.45x39mm 7N6M" , 735, 100, 0.0784916, -0.00119458, 3.81, 0, 2, 10, 120, 0, 0, 3.430, 5.60, 16.00, 0.336, 1, "ICAO", [[-15,716],[0,723],[10,730],[15,735],[25,749],[30,758],[35,769]] , [[0, 0.339], [730, 0.331], [960, 0.323], [1100, 0.321], [1220, 0.320], [1380, 0.320], [1480, 0.320]], true]]; [] call FUNC(clear_user_data); profileNamespace setVariable ["ACE_ATragMX_gunList", GVAR(gunList)]; From 1d9361c503fbf412c32f8769d6fa60bbbce1bade Mon Sep 17 00:00:00 2001 From: Laid3acK Date: Fri, 28 Feb 2020 11:08:40 +0100 Subject: [PATCH 168/194] fix_brace --- addons/ballistics/CfgWeapons.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/ballistics/CfgWeapons.hpp b/addons/ballistics/CfgWeapons.hpp index 7b5794d91b..b272277d17 100644 --- a/addons/ballistics/CfgWeapons.hpp +++ b/addons/ballistics/CfgWeapons.hpp @@ -126,7 +126,7 @@ class CfgWeapons { }; // LWMMG - class MMG_02_base_F: Rifle_Long_Base_F + class MMG_02_base_F: Rifle_Long_Base_F { ACE_barrelLength = 609.6; ACE_barrelTwist = 234.95; initSpeed = -1.0; From f069ac4c92536423848c1380578dad8b0a2a73e8 Mon Sep 17 00:00:00 2001 From: ace3mod Date: Fri, 28 Feb 2020 17:47:01 +0100 Subject: [PATCH 169/194] [Docs] Update component dependencies Automatically committed through CI. [ci skip] --- docs/_includes/dependencies_list.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/_includes/dependencies_list.md b/docs/_includes/dependencies_list.md index 8fc1a8f486..4c5a1f5857 100644 --- a/docs/_includes/dependencies_list.md +++ b/docs/_includes/dependencies_list.md @@ -550,6 +550,10 @@ `ace_common` {% endif %} +{% if include.component == "realisticdispersion" %} +`ace_ballistics` +{% endif %} + {% if include.component == "tracers" %} `ace_ballistics` {% endif %} From c949a07c83624a571053670d82b6d9c1d74340fd Mon Sep 17 00:00:00 2001 From: pterolatypus Date: Fri, 28 Feb 2020 16:54:53 +0000 Subject: [PATCH 170/194] Medical Engine - Apply damage to the correct hitpoint (#7415) * HandleDamage uses armour values to determine which hitpoint was damaged * Tidied up comments * Newlines * Tabs? In MY code?! * Added uniform caching and option to force disable caching * Review suggestions * Review suggestions/code style * Spelling and select * Removed unnecessary validity check * Apply suggestions from code review Co-Authored-By: commy2 * Tweaks and optimisations, removed _noCache Also fixed cache nil vs empty * Different approach with fewer loops Lookup is now done per-hitpoint and default values cached fnc_getItemArmor made a helper function as it's now only a few lines * Tabs & newlines * Moved uniform logic inside helper function * Optimisations * Tweaks & optimisations, improved formatting * Ignore explosionShielding * Moved getArmor back to separate func, add per-unit caching * Formatting * Review suggestions Co-authored-by: commy2 --- addons/medical_engine/XEH_PREP.hpp | 2 + addons/medical_engine/XEH_preInit.sqf | 3 + .../functions/fnc_getHitpointArmor.sqf | 47 +++++++++++++ .../functions/fnc_getItemArmor.sqf | 48 +++++++++++++ .../functions/fnc_handleDamage.sqf | 67 +++++++++++-------- 5 files changed, 140 insertions(+), 27 deletions(-) create mode 100644 addons/medical_engine/functions/fnc_getHitpointArmor.sqf create mode 100644 addons/medical_engine/functions/fnc_getItemArmor.sqf diff --git a/addons/medical_engine/XEH_PREP.hpp b/addons/medical_engine/XEH_PREP.hpp index 0bacdd97e7..a47b03447f 100644 --- a/addons/medical_engine/XEH_PREP.hpp +++ b/addons/medical_engine/XEH_PREP.hpp @@ -4,3 +4,5 @@ PREP(updateBodyPartVisuals); PREP(updateDamageEffects); PREP(setStructuralDamage); PREP(setUnconsciousAnim); +PREP(getHitpointArmor); +PREP(getItemArmor); diff --git a/addons/medical_engine/XEH_preInit.sqf b/addons/medical_engine/XEH_preInit.sqf index de60e5f7f9..033136a2a3 100644 --- a/addons/medical_engine/XEH_preInit.sqf +++ b/addons/medical_engine/XEH_preInit.sqf @@ -28,6 +28,9 @@ if (isNil QUOTE(FATAL_SUM_DAMAGE_WEIBULL_K) || isNil QUOTE(FATAL_SUM_DAMAGE_WEIB FATAL_SUM_DAMAGE_WEIBULL_L = _x1 / _b1^(1/FATAL_SUM_DAMAGE_WEIBULL_K); }; +// Cache for armor values of equipped items (vests etc) +GVAR(armorCache) = false call CBA_fnc_createNamespace; + // Hack for #3168 (units in static weapons do not take any damage): // Doing a manual pre-load with a small distance seems to fix the LOD problems // with handle damage not returning full results. diff --git a/addons/medical_engine/functions/fnc_getHitpointArmor.sqf b/addons/medical_engine/functions/fnc_getHitpointArmor.sqf new file mode 100644 index 0000000000..1f6f3c0550 --- /dev/null +++ b/addons/medical_engine/functions/fnc_getHitpointArmor.sqf @@ -0,0 +1,47 @@ +#include "script_component.hpp" +/* + * Author: Pterolatypus + * Checks a unit's equipment to calculate the total armor on a hitpoint. + * + * Arguments: + * 0: Unit + * 1: Hitpoint + * + * Return Value: + * Total armor for the given hitpoint + * + * Example: + * [player, "HitChest"] call ace_medical_engine_fnc_getHitpointArmor + * + * Public: No + */ + +params ["_unit", "_hitpoint"]; + +private _uniform = uniform _unit; +// If unit is naked, use its underwear class instead +if (_uniform isEqualTo "") then { + _uniform = getText (configFile >> "CfgVehicles" >> typeOf _unit >> "nakedUniform"); +}; + +private _gear = [ + _uniform, + vest _unit, + headgear _unit +]; + +private _rags = _gear joinString "$"; +private _var = format [QGVAR(armorCache$%1), _hitpoint]; +_unit getVariable [_var, [""]] params ["_prevRags", "_armor"]; + +if (_rags != _prevRags) then { + _armor = 0; + + { + _armor = _armor + ([_x, _hitpoint] call FUNC(getItemArmor)); + } forEach _gear; + + _unit setVariable [_var, [_rags, _armor]]; +}; + +_armor // return diff --git a/addons/medical_engine/functions/fnc_getItemArmor.sqf b/addons/medical_engine/functions/fnc_getItemArmor.sqf new file mode 100644 index 0000000000..9457c54c6e --- /dev/null +++ b/addons/medical_engine/functions/fnc_getItemArmor.sqf @@ -0,0 +1,48 @@ +#include "script_component.hpp" +/* + * Author: Pterolatypus + * Returns the armor value the given item provides to a particular hitpoint, either from a cache or by reading the item config. + * + * Arguments: + * 0: Item Class + * 1: Hitpoint + * + * Return Value: + * Item armor for the given hitpoint + * + * Example: + * ["V_PlateCarrier_rgr", "HitChest"] call ace_medical_engine_fnc_getItemArmor + * + * Public: No + */ + +params ["_item", "_hitpoint"]; + +private _key = format ["%1$%2", _item, _hitpoint]; +private _armor = GVAR(armorCache) getVariable _key; + +if (isNil "_armor") then { + TRACE_2("Cache miss",_item,_hitpoint); + if ("" in [_item, _hitpoint]) exitWith { + _armor = 0; + GVAR(armorCache) setVariable [_key, _armor]; + }; + + private _itemInfo = configFile >> "CfgWeapons" >> _item >> "ItemInfo"; + + if (getNumber (_itemInfo >> "type") == TYPE_UNIFORM) then { + private _unitCfg = configFile >> "CfgVehicles" >> getText (_itemInfo >> "uniformClass"); + private _entry = _unitCfg >> "HitPoints" >> _hitpoint; + + _armor = getNumber (_unitCfg >> "armor") * getNumber (_entry >> "armor") + } else { + private _condition = format ["getText (_x >> 'hitpointName') == '%1'", _hitpoint]; + private _entry = configProperties [_itemInfo >> "HitpointsProtectionInfo", _condition] param [0, configNull]; + + _armor = getNumber (_entry >> "armor"); + }; + + GVAR(armorCache) setVariable [_key, _armor]; +}; + +_armor // return diff --git a/addons/medical_engine/functions/fnc_handleDamage.sqf b/addons/medical_engine/functions/fnc_handleDamage.sqf index 19240824aa..42341cb631 100644 --- a/addons/medical_engine/functions/fnc_handleDamage.sqf +++ b/addons/medical_engine/functions/fnc_handleDamage.sqf @@ -34,9 +34,13 @@ if (_hitPoint isEqualTo "") then { // Damage can be disabled with old variable or via sqf command allowDamage if !(isDamageAllowed _unit && {_unit getVariable [QEGVAR(medical,allowDamage), true]}) exitWith {_oldDamage}; -// Damages are stored for "ace_hdbracket" event triggered last private _newDamage = _damage - _oldDamage; -_unit setVariable [format [QGVAR($%1), _hitPoint], _newDamage]; +// Get armor value of hitpoint and calculate damage before armor +private _armor = [_unit, _hitpoint] call FUNC(getHitpointArmor); +private _realDamage = _newDamage * _armor; +// Damages are stored for "ace_hdbracket" event triggered last +_unit setVariable [format [QGVAR($%1), _hitPoint], [_realDamage, _newDamage]]; +TRACE_3("Received hit",_hitpoint,_newDamage,_realDamage); // Engine damage to these hitpoints controls blood visuals, limping, weapon sway // Handled in fnc_damageBodyPart, persist here @@ -51,52 +55,61 @@ if (_hitPoint isEqualTo "ace_hdbracket") exitWith { private _damageStructural = _unit getVariable [HIT_STRUCTURAL, 0]; // --- Head - private _damageFace = _unit getVariable [QGVAR($HitFace), 0]; - private _damageNeck = _unit getVariable [QGVAR($HitNeck), 0]; - private _damageHead = (_unit getVariable [QGVAR($HitHead), 0]) max _damageFace max _damageNeck; + private _damageHead = [ + _unit getVariable [QGVAR($HitFace), [0,0]], + _unit getVariable [QGVAR($HitNeck), [0,0]], + _unit getVariable [QGVAR($HitHead), [0,0]] + ]; + _damageHead sort false; + _damageHead = _damageHead select 0; // --- Body - private _damagePelvis = _unit getVariable [QGVAR($HitPelvis), 0]; - private _damageAbdomen = _unit getVariable [QGVAR($HitAbdomen), 0]; - private _damageDiaphragm = _unit getVariable [QGVAR($HitDiaphragm), 0]; - private _damageChest = _unit getVariable [QGVAR($HitChest), 0]; - private _damageBody = (_unit getVariable [QGVAR($HitBody), 0]) max _damagePelvis max _damageAbdomen max _damageDiaphragm max _damageChest; + private _damageBody = [ + _unit getVariable [QGVAR($HitPelvis), [0,0]], + _unit getVariable [QGVAR($HitAbdomen), [0,0]], + _unit getVariable [QGVAR($HitDiaphragm), [0,0]], + _unit getVariable [QGVAR($HitChest), [0,0]] + // HitBody removed as it's a placeholder hitpoint and the high armor value (1000) throws the calculations off + ]; + _damageBody sort false; + _damageBody = _damageBody select 0; // --- Arms and Legs - private _damageLeftArm = _unit getVariable [QGVAR($HitLeftArm), 0]; - private _damageRightArm = _unit getVariable [QGVAR($HitRightArm), 0]; - private _damageLeftLeg = _unit getVariable [QGVAR($HitLeftLeg), 0]; - private _damageRightLeg = _unit getVariable [QGVAR($HitRightLeg), 0]; + private _damageLeftArm = _unit getVariable [QGVAR($HitLeftArm), [0,0]]; + private _damageRightArm = _unit getVariable [QGVAR($HitRightArm), [0,0]]; + private _damageLeftLeg = _unit getVariable [QGVAR($HitLeftLeg), [0,0]]; + private _damageRightLeg = _unit getVariable [QGVAR($HitRightLeg), [0,0]]; // Find hit point that received the maxium damage // Priority used for sorting if incoming damage is equivalent (e.g. max which is 4) private _allDamages = [ - [_damageHead, PRIORITY_HEAD, "Head"], - [_damageBody, PRIORITY_BODY, "Body"], - [_damageLeftArm, PRIORITY_LEFT_ARM, "LeftArm"], - [_damageRightArm, PRIORITY_RIGHT_ARM, "RightArm"], - [_damageLeftLeg, PRIORITY_LEFT_LEG, "LeftLeg"], - [_damageRightLeg, PRIORITY_RIGHT_LEG, "RightLeg"] + _damageHead + [PRIORITY_HEAD, "Head"], + _damageBody + [PRIORITY_BODY, "Body"], + _damageLeftArm + [PRIORITY_LEFT_ARM, "LeftArm"], + _damageRightArm + [PRIORITY_RIGHT_ARM, "RightArm"], + _damageLeftLeg + [PRIORITY_LEFT_LEG, "LeftLeg"], + _damageRightLeg + [PRIORITY_RIGHT_LEG, "RightLeg"] ]; TRACE_2("incoming",_allDamages,_damageStructural); // represents all incoming damage for selecting a non-selectionSpecific wound location, (used for selectRandomWeighted [value1,weight1,value2....]) private _damageSelectionArray = [ - HITPOINT_INDEX_HEAD, _damageHead, HITPOINT_INDEX_BODY, _damageBody, HITPOINT_INDEX_LARM, _damageLeftArm, - HITPOINT_INDEX_RARM, _damageRightArm, HITPOINT_INDEX_LLEG, _damageLeftLeg, HITPOINT_INDEX_RLEG, _damageRightLeg + HITPOINT_INDEX_HEAD, _damageHead select 1, HITPOINT_INDEX_BODY, _damageBody select 1, HITPOINT_INDEX_LARM, _damageLeftArm select 1, + HITPOINT_INDEX_RARM, _damageRightArm select 1, HITPOINT_INDEX_LLEG, _damageLeftLeg select 1, HITPOINT_INDEX_RLEG, _damageRightLeg select 1 ]; _allDamages sort false; - (_allDamages select 0) params ["_receivedDamage", "", "_woundedHitPoint"]; - if (_damageHead >= HEAD_DAMAGE_THRESHOLD) then { - TRACE_3("reporting fatal head damage instead of max",_damageHead,_receivedDamage,_woundedHitPoint); - _receivedDamage = _damageHead; + (_allDamages select 0) params ["", "_receivedDamage", "", "_woundedHitPoint"]; + private _receivedDamageHead = _damageHead select 1; + if (_receivedDamageHead >= HEAD_DAMAGE_THRESHOLD) then { + TRACE_3("reporting fatal head damage instead of max",_receivedDamageHead,_receivedDamage,_woundedHitPoint); + _receivedDamage = _receivedDamageHead; _woundedHitPoint = "Head"; }; // We know it's structural when no specific hitpoint is damaged if (_receivedDamage == 0) then { - _receivedDamage = _damageStructural; + _receivedDamage = _damageStructural select 1; _woundedHitPoint = "Body"; _damageSelectionArray = [1, 1]; // sum of weights would be 0 }; From 9b86446b2607e14086b2f45e5c4e29038ebe85d3 Mon Sep 17 00:00:00 2001 From: commy2 Date: Fri, 28 Feb 2020 18:33:11 +0100 Subject: [PATCH 171/194] fix some magwells (#7562) --- addons/ballistics/CfgMagazineWells.hpp | 24 +++++++++++++-------- addons/ballistics/CfgWeapons.hpp | 30 +------------------------- 2 files changed, 16 insertions(+), 38 deletions(-) diff --git a/addons/ballistics/CfgMagazineWells.hpp b/addons/ballistics/CfgMagazineWells.hpp index 8b911de4d3..9a1c64c078 100644 --- a/addons/ballistics/CfgMagazineWells.hpp +++ b/addons/ballistics/CfgMagazineWells.hpp @@ -1,5 +1,4 @@ class CfgMagazineWells { - class CBA_12g_2rnds { ADDON[] = { "ACE_2Rnd_12Gauge_Pellets_No0_Buck", @@ -33,17 +32,20 @@ class CfgMagazineWells { }; }; - class CBA_65x39_MX { + class MX_65x39 { //Vanilla magwell ADDON[] = { "ACE_30Rnd_65x39_caseless_mag_Tracer_Dim", - "ACE_30Rnd_65x39_caseless_green_mag_Tracer_Dim" + "ACE_30Rnd_65x39_caseless_green_mag_Tracer_Dim", + "ACE_30Rnd_65x47_Scenar_mag", + "ACE_30Rnd_65_Creedmor_mag" }; }; - class CBA_65x39_MX_XL { + class MX_65x39_Large { //Vanilla magwell ADDON[] = { "ACE_100Rnd_65x39_caseless_mag_Tracer_Dim" }; }; + class CBA_65x39_Mk200 { ADDON[] = { "ACE_200Rnd_65x39_cased_Box_Tracer_Dim" @@ -128,10 +130,15 @@ class CfgMagazineWells { }; }; -//Missing in CBA -//ACE_20Rnd_762x67_Mk248_Mod_0_Mag -//ACE_20Rnd_762x67_Mk248_Mod_1_Mag -//ACE_20Rnd_762x67_Berger_Hybrid_OTM_Mag + class MAR10_338 { //Vanilla magwell + ADDON[] = { + "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" + }; + }; class CBA_65C_AR10 { ADDON[] = { @@ -194,5 +201,4 @@ class CfgMagazineWells { "ACE_10Rnd_762x54_Tracer_mag" }; }; - }; diff --git a/addons/ballistics/CfgWeapons.hpp b/addons/ballistics/CfgWeapons.hpp index b272277d17..d9914ba0b2 100644 --- a/addons/ballistics/CfgWeapons.hpp +++ b/addons/ballistics/CfgWeapons.hpp @@ -45,13 +45,6 @@ class CfgWeapons { ACE_barrelLength = 508.0; ACE_barrelTwist = 254.0; initSpeed = -1.0; - magazines[] += { - "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" - }; }; // SIG 556 @@ -90,7 +83,7 @@ class CfgWeapons { ACE_barrelLength = 640.0; ACE_barrelTwist = 228.6; initSpeed = -0.99998; - magazines[] += { + magazines[] += { //No Vanilla magwell "ACE_20Rnd_65x47_Scenar_mag", "ACE_20Rnd_65_Creedmor_mag" }; @@ -148,27 +141,6 @@ class CfgWeapons { class arifle_MXM_F: arifle_MX_Base_F { ACE_barrelLength = 457.2; initSpeed = -1.0; - magazines[] += { - "ACE_30Rnd_65x39_caseless_mag_Tracer_Dim", - "ACE_30Rnd_65x47_Scenar_mag", - "ACE_30Rnd_65_Creedmor_mag" - }; - }; - - class arifle_MXM_Black_F: arifle_MXM_F { - magazines[] += { - "ACE_30Rnd_65x39_caseless_mag_Tracer_Dim", - "ACE_30Rnd_65x47_Scenar_mag", - "ACE_30Rnd_65_Creedmor_mag" - }; - }; - - class arifle_MXM_khk_F: arifle_MXM_Black_F { - magazines[] += { - "ACE_30Rnd_65x39_caseless_mag_Tracer_Dim", - "ACE_30Rnd_65x47_Scenar_mag", - "ACE_30Rnd_65_Creedmor_mag" - }; }; // MX From d87d051d231a778b6de9af7ede1b6382f98843bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Dahlgren?= Date: Sat, 29 Feb 2020 21:37:19 +0100 Subject: [PATCH 172/194] Tools - Removed deprecated Mikero tools arguments from make.py (#7517) --- tools/make.py | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/tools/make.py b/tools/make.py index 9353ad0fce..7452223f71 100644 --- a/tools/make.py +++ b/tools/make.py @@ -842,7 +842,6 @@ make.py [help] [test] [force] [key ] [target ] [release ] test -- Copy result to Arma 3. release -- Make archive with . force -- Ignore cache and build all. -checkexternal -- Check External Files target -- Use rules in make.cfg under heading [] rather than default [Make] key -- Use key in working directory with to sign. If it does not @@ -900,12 +899,6 @@ See the make.cfg file for additional build options. quiet = True argv.remove("quiet") - if "checkexternal" in argv: - argv.remove("checkexternal") - check_external = True - else: - check_external = False - if "version" in argv: argv.remove("version") version_update = True @@ -930,8 +923,6 @@ See the make.cfg file for additional build options. argv.remove("ci") ciBuild = True - print_yellow("\nCheck external references is set to {}".format(str(check_external))) - # Get the directory the make script is in. make_root = os.path.dirname(os.path.realpath(__file__)) make_root_parent = os.path.abspath(os.path.join(os.getcwd(), os.pardir)) @@ -1274,13 +1265,10 @@ See the make.cfg file for additional build options. if os.path.isfile(nobinFilePath): print_green("$NOBIN$ Found. Proceeding with non-binarizing!") - cmd = [makepboTool, "-P","-A","-G","-N","-X=*.backup", os.path.join(work_drive, prefix, module),os.path.join(module_root, release_dir, project,"addons")] + cmd = [makepboTool, "-P","-A","-X=*.backup", os.path.join(work_drive, prefix, module),os.path.join(module_root, release_dir, project,"addons")] else: - if check_external: - cmd = [pboproject, "-P", os.path.join(work_drive, prefix, module), "+Engine=Arma3", "-S","+Noisy", "+G", "+Clean", "+Mod="+os.path.join(module_root, release_dir, project), "-Key"] - else: - cmd = [pboproject, "-P", os.path.join(work_drive, prefix, module), "+Engine=Arma3", "-S","+Noisy", "-G", "+Clean", "+Mod="+os.path.join(module_root, release_dir, project), "-Key"] + cmd = [pboproject, "-P", os.path.join(work_drive, prefix, module), "+Engine=Arma3", "-S", "+Noisy", "+Clean", "+Mod="+os.path.join(module_root, release_dir, project), "-Key"] color("grey") if quiet: From 15b4b98e5bb12c2852c5ee79ae4606eb96acd437 Mon Sep 17 00:00:00 2001 From: commy2 Date: Sat, 29 Feb 2020 23:09:00 +0100 Subject: [PATCH 173/194] Medical Status - Fix double execution of `killed` event (#7561) * fix double execution of killed event * revert the execNextFrame change * make second execution run with null * make second execution run with null --- addons/medical_status/XEH_PREP.hpp | 1 + addons/medical_status/XEH_preInit.sqf | 2 + .../functions/fnc_handleKilled.sqf | 11 +++-- .../functions/fnc_handleKilledMission.sqf | 45 +++++++++++++++++++ 4 files changed, 56 insertions(+), 3 deletions(-) create mode 100644 addons/medical_status/functions/fnc_handleKilledMission.sqf diff --git a/addons/medical_status/XEH_PREP.hpp b/addons/medical_status/XEH_PREP.hpp index 11fae9e2e6..811c49c103 100644 --- a/addons/medical_status/XEH_PREP.hpp +++ b/addons/medical_status/XEH_PREP.hpp @@ -6,6 +6,7 @@ PREP(getBloodVolumeChange); PREP(getCardiacOutput); PREP(getMedicationCount); PREP(handleKilled); +PREP(handleKilledMission); PREP(hasStableVitals); PREP(initUnit); PREP(isBeingCarried); diff --git a/addons/medical_status/XEH_preInit.sqf b/addons/medical_status/XEH_preInit.sqf index 9ef36381eb..aab312470d 100644 --- a/addons/medical_status/XEH_preInit.sqf +++ b/addons/medical_status/XEH_preInit.sqf @@ -23,4 +23,6 @@ PREP_RECOMPILE_END; #endif }, nil, [IGNORE_BASE_UAVPILOTS], true] call CBA_fnc_addClassEventHandler; +addMissionEventHandler ["EntityKilled", {_this call FUNC(handleKilledMission)}]; + ADDON = true; diff --git a/addons/medical_status/functions/fnc_handleKilled.sqf b/addons/medical_status/functions/fnc_handleKilled.sqf index 72d8131b82..fb695d6f2b 100644 --- a/addons/medical_status/functions/fnc_handleKilled.sqf +++ b/addons/medical_status/functions/fnc_handleKilled.sqf @@ -21,6 +21,14 @@ params ["_unit", "_killer", "_instigator", "_useEffects"]; TRACE_4("handleKilled",_unit,_killer,_instigator,_useEffects); +// ensure event is only called once +if (_unit isEqualTo (_unit getVariable [QGVAR(killed), objNull])) exitWith { + _this set [0, objNull]; + _this set [1, objNull]; + _this set [2, objNull]; +}; +_unit setVariable [QGVAR(killed), _unit]; + private _causeOfDeath = _unit getVariable [QEGVAR(medical,causeOfDeath), "#scripted"]; // if undefined then it's a death not caused by ace's setDead (mission setDamage, disconnect) @@ -36,9 +44,6 @@ if (_causeOfDeath != "#scripted") then { }; TRACE_3("killer info",_killer,_instigator,_causeOfDeath); -if (_unit isEqualTo (_unit getVariable [QGVAR(killed), objNull])) exitWith {}; // ensure event is only called once -_unit setVariable [QGVAR(killed), _unit]; - if (_unit == player) then { // Enable user input before respawn, in case mission is using respawnTemplates ["unconscious", false] call EFUNC(common,setDisableUserInputStatus); diff --git a/addons/medical_status/functions/fnc_handleKilledMission.sqf b/addons/medical_status/functions/fnc_handleKilledMission.sqf new file mode 100644 index 0000000000..67d1f050f4 --- /dev/null +++ b/addons/medical_status/functions/fnc_handleKilledMission.sqf @@ -0,0 +1,45 @@ +#include "script_component.hpp" +/* + * Author: PabstMirror + * Vanilla EntityKilled mission EH, attempts to set correct source/killer for other killed event handlers. + * + * Arguments: + * 0: Unit + * 1: Killer + * 2: Instigator + * 3: Use Effects + * + * Return Value: + * None + * + * Example: + * [cursorObject, player, player, true] call ace_medical_status_fnc_handleKilledMission + * + * Public: No + */ + +params ["_unit", "_killer", "_instigator", "_useEffects"]; +TRACE_4("handleKilledMission",_unit,_killer,_instigator,_useEffects); + +// ensure event is only called once +if (_unit isEqualTo (_unit getVariable [QGVAR(killedMission), objNull])) exitWith { + _this set [0, objNull]; + _this set [1, objNull]; + _this set [2, objNull]; +}; +_unit setVariable [QGVAR(killedMission), _unit]; + +private _causeOfDeath = _unit getVariable [QEGVAR(medical,causeOfDeath), "#scripted"]; + +// if undefined then it's a death not caused by ace's setDead (mission setDamage, disconnect) +if (_causeOfDeath != "#scripted") then { + _killer = _unit getVariable [QEGVAR(medical,lastDamageSource), _killer]; // vehicle + _instigator = _unit getVariable [QEGVAR(medical,lastInstigator), _instigator]; // unit in the turret + + // All Killed EHs uses the same array, so we can modify it now to pass the correct killer/instigator + if (missionNamespace getVariable [QEGVAR(medical,modifyKilledArray), true]) then { // getVar so this can be disabled + _this set [1, _killer]; + _this set [2, _instigator]; + }; +}; +TRACE_3("killer mission info",_killer,_instigator,_causeOfDeath); From c42a004ab38bf931bfe3f701cd155eaf74d18e19 Mon Sep 17 00:00:00 2001 From: jonpas Date: Sat, 29 Feb 2020 23:09:31 +0100 Subject: [PATCH 174/194] General - Fix preprocessor issues (#7563) * Fix preprocessor issues * Fix more preprocessor issues --- addons/csw/functions/fnc_reload_handleRemoveTurretMag.sqf | 2 +- addons/javelin/script_component.hpp | 1 - addons/medical_treatment/functions/fnc_fullHealLocal.sqf | 2 +- addons/missileguidance/functions/fnc_seekerType_ARH.sqf | 8 ++++---- 4 files changed, 6 insertions(+), 7 deletions(-) diff --git a/addons/csw/functions/fnc_reload_handleRemoveTurretMag.sqf b/addons/csw/functions/fnc_reload_handleRemoveTurretMag.sqf index 1e64bf82f5..1a88c7f115 100644 --- a/addons/csw/functions/fnc_reload_handleRemoveTurretMag.sqf +++ b/addons/csw/functions/fnc_reload_handleRemoveTurretMag.sqf @@ -21,7 +21,7 @@ */ params ["_vehicle", "_turretPath", "_carryMag", "_vehMag", "_unit"]; -TRACE_6("removeTurretMag EH",_vehicle,_turretPath,_carryMag,_vehMag,_unit); +TRACE_5("removeTurretMag EH",_vehicle,_turretPath,_carryMag,_vehMag,_unit); TRACE_3("",local _vehicle, _vehicle turretLocal _turretPath,local _unit); if (!(_vehicle turretLocal _turretPath)) exitWith {}; diff --git a/addons/javelin/script_component.hpp b/addons/javelin/script_component.hpp index b78032439d..3e9ad4ebfc 100644 --- a/addons/javelin/script_component.hpp +++ b/addons/javelin/script_component.hpp @@ -26,7 +26,6 @@ #define __JavelinIGUISeek (__JavelinIGUI displayCtrl 699000) #define __JavelinIGUITop (__JavelinIGUI displayCtrl 699001) #define __JavelinIGUIDir (__JavelinIGUI displayCtrl 699002) -#define __JavelinIGUIRangefinder (__JavelinIGUI displayCtrl 151) // Constrains #define __JavelinIGUITargetingConstrains (__JavelinIGUI displayCtrl 699100) diff --git a/addons/medical_treatment/functions/fnc_fullHealLocal.sqf b/addons/medical_treatment/functions/fnc_fullHealLocal.sqf index d292394eb6..b1e64afa42 100644 --- a/addons/medical_treatment/functions/fnc_fullHealLocal.sqf +++ b/addons/medical_treatment/functions/fnc_fullHealLocal.sqf @@ -67,7 +67,7 @@ if IS_UNCONSCIOUS(_patient) then { [QEGVAR(medical,WakeUp), _patient] call CBA_fnc_localEvent; _state = GET_SM_STATE(_patient); TRACE_1("after WakeUp",_state); - if IS_UNCONSCIOUS(_patient) then { ERROR_1("fullheal [unit %1][state %2] failed to wake up patient",_patient,_state); }; + if IS_UNCONSCIOUS(_patient) then { ERROR_2("fullheal [unit %1][state %2] failed to wake up patient",_patient,_state); }; }; // Generic medical admin diff --git a/addons/missileguidance/functions/fnc_seekerType_ARH.sqf b/addons/missileguidance/functions/fnc_seekerType_ARH.sqf index 4f098f6cae..9244090af7 100644 --- a/addons/missileguidance/functions/fnc_seekerType_ARH.sqf +++ b/addons/missileguidance/functions/fnc_seekerType_ARH.sqf @@ -28,7 +28,7 @@ if (_isActive || { CBA_missionTime >= _timeWhenActive }) then { }; if !(_wasActive) then { _seekerStateParams set [6, true]; - TRACE_1("Missile Pitbull"); + TRACE_1("Missile Pitbull",_seekerStateParams); }; // Internal radar homing // For performance reasons only poll for target every so often instead of each frame @@ -39,12 +39,12 @@ if (_isActive || { CBA_missionTime >= _timeWhenActive }) then { // no target pos - shot without lock. Have the missile's radar search infront of it on the ground _searchPos = (getPosASL _projectile) vectorAdd (_projectile vectorModelToWorld [0, _seekerMaxRange, -((getPos _projectile)#2)]); }; - + _target = objNull; _lastTargetPollTime = CBA_missionTime; _seekerStateParams set [4, _lastTargetPollTime]; private _distanceToExpectedTarget = _seekerMaxRange min ((getPosASL _projectile) vectorDistance _searchPos); - + // Simulate how much the seeker can see at the ground private _projDir = vectorDir _projectile; private _projYaw = getDir _projectile; @@ -70,7 +70,7 @@ if (_isActive || { CBA_missionTime >= _timeWhenActive }) then { }; }; _nearestObjects = _nearestObjects select { !isNull _x }; - + // Select closest object to the expected position to be the current radar target if ((count _nearestObjects) <= 0) exitWith { _projectile setMissileTarget objNull; From 4607f39249f205ae6eab343c034ad285161b3bc0 Mon Sep 17 00:00:00 2001 From: jonpas Date: Sat, 29 Feb 2020 23:15:33 +0100 Subject: [PATCH 175/194] Prepare release 3.13.1 --- README.md | 2 +- addons/main/script_version.hpp | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 2ad414038b..a033c0e2e0 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@

- ACE3 Version + ACE3 Version ACE3 Issues diff --git a/addons/main/script_version.hpp b/addons/main/script_version.hpp index 5db5adbc5b..1a53795cdb 100644 --- a/addons/main/script_version.hpp +++ b/addons/main/script_version.hpp @@ -1,4 +1,4 @@ #define MAJOR 3 #define MINOR 13 -#define PATCHLVL 0 -#define BUILD 45 +#define PATCHLVL 1 +#define BUILD 46 From 9b6ffdf47baa11f66cd173ace23cac9ac6f6186b Mon Sep 17 00:00:00 2001 From: jonpas Date: Sun, 1 Mar 2020 01:20:21 +0100 Subject: [PATCH 176/194] Tools - Fix zh-TW README path for HEMTT --- hemtt.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hemtt.toml b/hemtt.toml index 7962d508a2..d706162df8 100644 --- a/hemtt.toml +++ b/hemtt.toml @@ -8,7 +8,7 @@ files = [ "README.md", "docs/README_DE.md", "docs/README_PL.md", - "README.zh-TW.md", + "docs/README.zh-TW.md", "AUTHORS.txt", "LICENSE", "logo_ace3_ca.paa", From b778df2c3bb48b058046c0107fdc902eaa09d56a Mon Sep 17 00:00:00 2001 From: jonpas Date: Sun, 1 Mar 2020 02:37:25 +0100 Subject: [PATCH 177/194] Tools - Build release build with HEMTT on CI (#7564) --- .github/workflows/arma.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/arma.yml b/.github/workflows/arma.yml index 0e99365496..80a540d0e5 100644 --- a/.github/workflows/arma.yml +++ b/.github/workflows/arma.yml @@ -40,7 +40,7 @@ jobs: - name: Build using HEMTT uses: arma-actions/hemtt@master with: - command: build --ci # no --release due to https://github.com/synixebrett/HEMTT/issues/227 + command: build --release --ci # https://github.com/actions/upload-artifact/issues/3#issuecomment-524442814 # - name: Upload Artifact # uses: actions/upload-artifact@master From 33414715f534309f572808d60f6cf8468f46ec86 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Mon, 9 Mar 2020 11:21:31 -0500 Subject: [PATCH 178/194] Update homepage to 3.13.1 --- docs/_config.yml | 6 +++--- docs/_config_dev.yml | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/_config.yml b/docs/_config.yml index 7d72a43e14..126488d2b9 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -9,7 +9,7 @@ ace: version: major: 3 minor: 13 - patch: 0 + patch: 1 build: 45 acex: @@ -17,8 +17,8 @@ acex: version: major: 3 minor: 5 - patch: 0 - build: 15 + patch: 1 + build: 16 markdown: kramdown diff --git a/docs/_config_dev.yml b/docs/_config_dev.yml index 493f7782e0..3b315c25ea 100644 --- a/docs/_config_dev.yml +++ b/docs/_config_dev.yml @@ -9,16 +9,16 @@ ace: version: major: 3 minor: 13 - patch: 0 - build: 45 + patch: 1 + build: 46 acex: githubUrl: https://github.com/acemod/ACEX version: major: 3 minor: 5 - patch: 0 - build: 15 + patch: 1 + build: 16 markdown: kramdown From 85f67ac883d2b54d21272ca1d3736b8c58ccb162 Mon Sep 17 00:00:00 2001 From: classic Date: Tue, 10 Mar 2020 01:26:20 +0900 Subject: [PATCH 179/194] Update Japanese translation (#7568) --- addons/aircraft/stringtable.xml | 8 +++ addons/medical/stringtable.xml | 5 +- addons/medical_feedback/stringtable.xml | 9 +++- addons/medical_treatment/stringtable.xml | 5 ++ optionals/tracers/stringtable.xml | 63 ++++++++++++++++++++++++ 5 files changed, 87 insertions(+), 3 deletions(-) diff --git a/addons/aircraft/stringtable.xml b/addons/aircraft/stringtable.xml index d3d8a628e0..814057a9f1 100644 --- a/addons/aircraft/stringtable.xml +++ b/addons/aircraft/stringtable.xml @@ -58,6 +58,7 @@ 30 mm High-Explosive Incendiary 30mm Odłamkowo-Burzące - Zapalające 30mm Hochexplosiv/Brandladung + 30mm 焼夷りゅう弾 30mm HEI @@ -65,6 +66,7 @@ 30 mm HEI 30mm OB-Z 30mm HEB + 30mm HEI 30mm DU Armor Piercing @@ -72,6 +74,7 @@ 30 mm UA Armor Piercing 30mm Zubożony Uran - Przebijające 30mm abgereichertes panzerbrechendes Uraniumgeschoss + 30mm DU 徹甲弾 30mm DU AP @@ -79,6 +82,7 @@ 30 mm UA AP 30mm ZU-P 30mm DU-PB + 30mm DU AP 30mm Combat Mix 4:1 DU:HEI @@ -86,6 +90,7 @@ 30 mm Mix de Combat 4:1 UA:HEI 30mm Mieszanka bojowa 4:1 ZU:OB-Z 30mm Kampfmischung 4:1 DU:HEB + 30mm コンバット ミックス 4:1 DU:HEI 30mm CM 4:1 @@ -93,6 +98,7 @@ 30 mm MdC 4:1 30mm MB 4:1 30mm KM 4:1 + 30mm CM 4:1 30mm Combat Mix 5:1 DU:HEI @@ -100,6 +106,7 @@ 30 mm Mix de Combat 5:1 UA:HEI 30mm Mieszanka bojowa 5:1 ZU:OB-Z 30mm Kampfmischung 5:1 DU:HEB + 30mm コンバット ミックス 5:1 DU:HEI 30mm CM 5:1 @@ -107,6 +114,7 @@ 30 mm MdC 5:1 30mm MB 5:1 30mm KM 5:1 + 30mm CM 5:1 diff --git a/addons/medical/stringtable.xml b/addons/medical/stringtable.xml index 1c5e0ba8bb..9e67990fb4 100644 --- a/addons/medical/stringtable.xml +++ b/addons/medical/stringtable.xml @@ -12,11 +12,11 @@ ACE Médical ACE Orvosi Rendszer ACE Medical - ACE 医療 ACE 의료 ACE 医疗系统 ACE 醫療系統 ACE Medikal + ACE 医療 Unconscious Wake Up Chance @@ -50,6 +50,7 @@ Zwiększenie szansy na wybudzenie po podaniu epinefryny 腎上腺素甦醒率加成 Erhöhung der Aufwachüberprüfungsrate durch Epinephrin + アドレナリン覚醒率の上昇 Increases how often spontaneous wake up checks happen when patient has Epinephrine in their system. @@ -168,10 +169,12 @@ Fracture Chance Chance de fracture + 骨折確率 The probability of a fracture causing wound resulting in a fracture. La probabilité pour qu'une blessure pouvant causer une fracture en crée effectivement une. + 骨折の原因となる負傷で骨折する確率を決定します。 Enabled for diff --git a/addons/medical_feedback/stringtable.xml b/addons/medical_feedback/stringtable.xml index d0585a4f62..10e8df04b8 100644 --- a/addons/medical_feedback/stringtable.xml +++ b/addons/medical_feedback/stringtable.xml @@ -26,14 +26,14 @@ Fájdalom-effekt típusa Tipo do efeito de dor Typ bolesti - efekt - 痛み効果の種類 + 痛み効果種類 고통 효과 종류 疼痛效果類型 Ağrı Etkisi Türü Selects the used pain effect type. - 痛みの効果の種類を選択できます。 + 痛みの効果を選択できます。 Permet de choisir quel effet provoque la douleur. Выбирает тип визуализации болевого эффекта. Selecione o tipo de efeito de dor. @@ -107,26 +107,31 @@ Low Blood Volume Effect Type Визуальный эффект низкого объема крови Effet de faible volume sanguin + 低血液量時の効果種類 Selects the used low blood volume effect type. Выбирает тип визуализации эффекта низкого объема крови. Permet de choisir quel effet provoque un faible volume sanguin. + 低血液量時の効果を選択できます。 Color Fading Потеря цветности Atténuation des couleurs + 退色 Icon Иконка Icône + アイコン Icon + Color Fading Иконка + Потеря цветности Icône + Atténuation des couleurs + アイコンと退色 diff --git a/addons/medical_treatment/stringtable.xml b/addons/medical_treatment/stringtable.xml index c547836b2e..4993b321e7 100644 --- a/addons/medical_treatment/stringtable.xml +++ b/addons/medical_treatment/stringtable.xml @@ -100,6 +100,7 @@ Enabled & Can Reopen Activé & peuvent se rouvrir + 有効 & 再開放 Clear Trauma After Bandage @@ -336,6 +337,7 @@ 自我使用急救包 Utilisation de la trousse sanitaire sur soi-même Używanie apteczki osobistej na sobie + 応急処置キットの自己使用 Enables the use of PAKs to heal oneself. @@ -344,6 +346,7 @@ 啟用個人急救包能對自己使用。 Définit si le joueur peut utiliser la trousse sanitaire pour se soigner lui-même. Pozwala na użycie apteczki osobistej na sobie + 応急処置キットを使って、自分を治療できるようにします。 Time Coefficient PAK @@ -493,6 +496,7 @@ Zezwalaj na przetaczanie płynów IV Pose de perfusion autorisée pour 允許操作點滴 + IV 輸血の制限 Training level required to transfuse IVs. @@ -500,6 +504,7 @@ Poziom wyszkolenia potrzebny aby móc przetaczać płyny IV. Définit quelle qualification médicale est requise pour pouvoir poser des perfusions intraveineuses. 要有何種醫療水準才可注射點滴。 + IV 輸血を行うのに訓練済レベルを要求とします。 Convert Vanilla Items diff --git a/optionals/tracers/stringtable.xml b/optionals/tracers/stringtable.xml index b778fc4b72..e89ed4522b 100644 --- a/optionals/tracers/stringtable.xml +++ b/optionals/tracers/stringtable.xml @@ -9,6 +9,7 @@ 5.56 mm 150 colpi ricarica traccianti (verdi) caricatore 5.56 mm 150 ranný zásobník, stopovka pro přebití (Zelená) Recarregar magazine de 150 balas tracejantes (verde) + 5.56 mm 150発入り 残通知 曳光弾 (緑) マガジン 5.56 mm 150Rnd Reload Tracer (Yellow) Mag @@ -17,6 +18,7 @@ 5.56 mm 150 colpi Ricarica traccianti (gialli) caricatore 5.56 mm 150 ranný zásobník, stopovka pro přebití (Žlutá) Recarregar magazine 150 balas tracejantes (Amarelo) + 5.56 mm 150発入り 残通知 曳光弾 (黄) マガジン 5.56 mm 150Rnd Tracer (Green) Mag @@ -25,6 +27,7 @@ 5.56 mm 150 colpi traccianti (verdi) caricatore 5.56 mm 150 ranný zásobník, stopovka (Zelená) Magazine 5.56mm Tracejante (verde) + 5.56 mm 150発入り 曳光弾 (緑) マガジン Caliber: 5.56x45 mm Tracer - Green<br />Rounds: 150<br />Used in: SPAR-16S @@ -33,6 +36,7 @@ calibro: 5.56x46 mm traccianti - verdi<br/> Colpi: 150<br/> Usati in: SPAR-16S Kalibr: 5.56×45 mm Stopovka - Zelená<br />Nábojů: 150<br />Použito v: SPAR-16S Calibre 5.56x45mm Tracejante - Verde<br/>Balas:150<br/>Usado em: Spar-16S + 口径: 5.56x45 mm 曳光弾 - 緑<br />弾数: 150<br />使用武器: SPAR-16S 5.56 mm 150Rnd Tracer (Yellow) Mag @@ -41,6 +45,7 @@ 5.56 mm 150Colpi Traccianti (gialli) caricatore 5.56 mm 150 ranný zásobník, stopovka (Žlutá) Magazine 5.56mm 150 balas tracejante (amarelo) + 5.56 mm 150発入り 曳光弾 (黄) マガジン Caliber: 5.56x45 mm Tracer - Yellow<br />Rounds: 150<br />Used in: SPAR-16S @@ -49,6 +54,7 @@ calibro:5.56x45 traccianti - gialli <br/>Colpi:150<br/>Usati in: SPAR-16S Kalibr: 5.56×45 mm Stopovka - Žlutá<br />Nábojů: 150<br />Použito v: SPAR-16S Calibre: 5.56x45mm Tracejante - Amarelo <br/>Balas:150<br/>Usado em:Spar-16S + 口径: 5.56x45 mm 曳光弾 - 黄<br />弾数: 150<br />使用武器: SPAR-16S 5.56 mm 200Rnd Reload Tracer (Green) Box @@ -57,6 +63,7 @@ 5.56 mm 200colpi Ricarica traccianti (verdi) scatola 5.56 mm 200 ranný box, stopovka pro přebití (Zelená) Recarregar Caixa 5.56mm 200 Balas tracejantes (verdes) + 5.56 mm 200発入り 残通知 曳光弾 (緑) ボックス 5.56 mm 200Rnd Tracer (Green) Box @@ -65,6 +72,7 @@ 5.56 mm 200colpi Traccianti (verdi) Scatola 5.56 mm 200 ranný box, stopovka (Zelená) Caixa 5.56mm 200 balas tracejantes (verdes) + 5.56 mm 200発入り 曳光弾 (緑) ボックス Caliber: 5.56x45 mm Tracer - Green<br />Rounds: 200<br />Used in: LIM-85 @@ -73,6 +81,7 @@ Calibro: 5.56x45 mm Traccianti - Verdi<br />Colpi: 200<br />Usati in: LIM-85 Kalibr: 5.56×45 mm Stopovka - Zelená<br />Nábojů: 200<br />Použito v: LIM-85 Calibre:5.56x45 mm Tracejante - Verde <br/>Balas: 200<br/>Usado em:LIM-85 + 口径: 5.56x45 mm 曳光弾 - 緑<br />弾数: 200<br />使用武器: LIM-85 5.8 mm 30Rnd Reload Tracer (Red) Mag @@ -81,6 +90,7 @@ 5.8 mm 30Colpi Ricarica Tracciante (Rosso) Caricatore 5.8 mm 30 ranný zásobník, stopovka pro přebití (Červená) Recarregar magazine 5.8mm 30 Balas tracejantes (vermelho) + 5.8 mm 30発入り 残通知 曳光弾 (赤) マガジン 5.8 mm 30Rnd Reload Tracer (Yellow) Mag @@ -89,6 +99,7 @@ 5.8 mm 30Colpi ricarica Traccianti (Giallo) Caricatore 5.8 mm 30 ranný zásobník, stopovka pro přebití (Žlutá) Recarregar magazine 5.8mm 30 Balas tracejantes (amarelo) + 5.8 mm 30発入り 残通知 曳光弾 (黄) マガジン 5.8 mm 30Rnd Tracer (Red) Mag @@ -97,6 +108,7 @@ 5.8 mm 30Colpi Traccianti (rossi) Caricatore 5.8 mm 30 ranný zásobník, stopovka (Červená) Magazine 5.8 mm 30 balas tracejantes (vermelho) + 5.8 mm 30発入り 曳光弾 (赤) マガジン Caliber: 5.8x42 mm Tracer - Red<br />Rounds: 30<br />Used in: CAR-95, CAR-95 GL @@ -105,6 +117,7 @@ Calibro: 5.8x42 mm Traccianti - Rossi<br />Colpi: 30<br />Usati in: CAR-95, CAR-95 GL Kalibr: 5.8×42 mm Stopovka - Červená<br />Nábojů: 30<br />Použito v: CAR-95, CAR-95 GL Calibre: 5.8x42 mm Tracejante - Vermelho<br/>Balas:30<br/>Usado em CAR-95, CAR-95 GL + 口径: 5.8x42 mm 曳光弾 - 赤<br />弾数: 30<br />使用武器: CAR-95, CAR-95 GL 5.8 mm 30Rnd Tracer (Yellow) Mag @@ -113,6 +126,7 @@ 5.8 mm 30Colpi Traccianti (Giallo) Caricatore 5.8 mm 30 ranný zásobník, stopovka (Žlutá) Magazine 5.8 mm 30 balas tracejante (amarelo) + 5.8 mm 30発入り 曳光弾 (黄) マガジン Caliber: 5.8x42 mm Tracer - Yellow<br />Rounds: 30<br />Used in: CAR-95, CAR-95 GL @@ -121,6 +135,7 @@ Caliber: 5.8x42 mm Tracer - Yellow<br />Rounds: 30<br />Used in: CAR-95, CAR-95 GL Kalibr: 5.8×42 mm Stopovka - Žlutá<br />Nábojů: 30<br />Použito v: CAR-95, CAR-95 GL Calibre: 5.8x42 mm Tracejante - Amarelo <br/>Balas: 30<br/>Usado em: CAR-95, CAR-95 GL + 口径: 5.8x42 mm 曳光弾 - 黄<br />弾数: 30<br />使用武器: CAR-95, CAR-95 GL 5.8 mm 100Rnd Reload Tracer (Red) Mag @@ -129,6 +144,7 @@ 5,8 mm 100Colpi Ricarica Tracciante (rosso) Caricatore 5.8 mm 100 ranný zásobník, stopovka pro přebití (Červená) Recarregar magazine 5.8 mm 100 balas tracejante (vermelho) + 5.8 mm 100発入り 残通知 曳光弾 (赤) マガジン 5.8 mm 100Rnd Reload Tracer (Yellow) Mag @@ -137,6 +153,7 @@ 5.8 mm 100Colpi Ricarica Traccianti (gialli) Caricatore 5.8 mm 100 ranný zásobník, stopovka pro přebití (Žlutá) Recarregar magazine 5.8 mm 100 balas tracejantes (amarelo) + 5.8 mm 100発入り 残通知 曳光弾 (黄) マガジン 5.8 mm 100Rnd Tracer (Red) Mag @@ -145,6 +162,7 @@ 5.8 mm 100Colpi Ricarica Traccianti (rossi) Caricatore 5.8 mm 100 ranný zásobník, stopovka (Červená) Magazine 5.8 mm 100 balas tracejantes (vermelho) + 5.8 mm 100発入り 曳光弾 (赤) マガジン Caliber: 5.8x42 mm Tracer - Red<br />Rounds: 100<br />Used in: CAR-95-1 @@ -153,6 +171,7 @@ Calibro: 5.8x42 mm Tracciante - Rosso<br />Colpi: 100<br />Usati in: CAR-95-1 Kalibr: 5.8×42 mm Stopovka - Červená<br />Nábojů: 100<br />Použito v: CAR-95-1 Calibre: 5.8x42 mm Tracejante - Vermelho<br/>Balas:100<br/>Usado em CAR-95-1 + 口径: 5.8x42 mm 曳光弾 - 赤<br />弾数: 100<br />使用武器: CAR-95-1 5.8 mm 100Rnd Tracer (Yellow) Mag @@ -161,6 +180,7 @@ 5.8mm 100Colpi Traccianti (gialli) Caricatore 5.8 mm 100 ranný zásobník, stopovka (Žlutá) Magazine 5.8 mm 100 balas tracejantes (amarelo) + 5.8 mm 100発入り 曳光弾 (黄) マガジン Caliber: 5.8x42 mm Tracer - Yellow<br />Rounds: 100<br />Used in: CAR-95-1 @@ -169,6 +189,7 @@ Calibro: 5.8x42 mm Traccianti - Gialli<br />Colpi: 100<br />Usati in: CAR-95-1 Kalibr: 5.8×42 mm Stopovka - Žlutá<br />Nábojů: 100<br />Použito v: CAR-95-1 Calibre: 5.8x42 mm Tracejante - Amarelo<br/>Balas:100<br/>Usado em CAR-95-1 + 口径: 5.8x42 mm 曳光弾 - 黄<br />弾数: 100<br />使用武器: CAR-95-1 6.5mm 30Rnd Reload Tracer (Green) Mag @@ -177,6 +198,7 @@ 6.5mm 30Colpi Ricarica Traccianti(verdi) Caricatore 6.5 mm 30 ranný zásobník, stopovka pro přebití (Zelená) Recarregar magazine 6.5mm 30 balas tracejantes (verde) + 6.5 mm 30発入り 残通知 曳光弾 (緑) マガジン Caliber: 6.5x39 mm Tracer - Green<br />Rounds: 30<br />Used in: MX/C/M/SW/3GL @@ -185,6 +207,7 @@ Calibro: 6.5x39 mm Traccianti - Verdi<br />Colpi: 30<br />Usati in: MX/C/M/SW/3GL Kalibr: 6.5×39 mm Stopovka - Zelená<br />Nábojů: 30<br />Použito v: MX/C/M/SW/3GL Calibre: 6.5x39 mm Tracejante - Verde<br/>Balas:30<br/>Usado em: MX/C/M/SW/3GL + 口径: 6.5x39 mm 曳光弾 - 緑<br />弾数: 30<br />使用武器: MX/C/M/SW/3GL 6.5mm 30Rnd Reload Tracer (Yellow) Mag @@ -193,6 +216,7 @@ 6.5mm 30Colpi Ricarica Traccianti (Gialli) Caricatore 6.5 mm 30 ranný zásobník, stopovka pro přebití (Žlutá) Recarregar magazine 6.5mm 30 balas tracejantes (amarelo) + 6.5 mm 30発入り 残通知 曳光弾 (黄) マガジン Caliber: 6.5x39 mm Tracer - Yellow<br />Rounds: 30<br />Used in: MX/C/M/SW/3GL @@ -201,6 +225,7 @@ Calibro: 6.5x39 mm Tracciante - Giallo<br />Colpi: 30<br />Usati in: MX/C/M/SW/3GL Kalibr: 6.5×39 mm Stopovka - Žlutá<br />Nábojů: 30<br />Použito v: MX/C/M/SW/3GL Calibre: 6.5x39 mm Tracejante - Amarelo<br/>Balas:30<br/>Usado em: MX/C/M/SW/3GL + 口径: 6.5x39 mm 曳光弾 - 黄<br />弾数: 30<br />使用武器: MX/C/M/SW/3GL 6.5mm 30Rnd Tracer (Green) Mag @@ -209,6 +234,7 @@ 6.5mm 30Colpi Traccianti (Verdi) Caricatore 6.5 mm 30 ranný zásobník, stopovka (Zelená) Magazine 6.5mm 30 balas tracejantes (verde) + 6.5 mm 30発入り 曳光弾 (緑) マガジン Caliber: 6.5x39 mm Tracer - Green<br />Rounds: 30<br />Used in: MX/C/M/SW/3GL @@ -217,6 +243,7 @@ Calibro: 6.5x39 mm traccianti - Verdi<br />Colpi: 30<br />Usati in: MX/C/M/SW/3GL Kalibr: 6.5×39 mm Stopovka - Zelená<br />Nábojů: 30<br />Použito v: MX/C/M/SW/3GL Calibre: 6.5x39 mm Tracejante - Verde<br/>Balas:30<br/>Usado em: MX/C/M/SW/3GL + 口径: 6.5x39 mm 曳光弾 - 緑<br />弾数: 30<br />使用武器: MX/C/M/SW/3GL 6.5mm 30Rnd Tracer (Yellow) Mag @@ -225,6 +252,7 @@ 6.5mm 30 Colpi Traccianti (Gialli) Caricatore 6.5 mm 30 ranný zásobník, stopovka (Žlutá) Magazine 6.5mm 30 balas tracejantes (amarelo) + 6.5 mm 30発入り 曳光弾 (黄) マガジン Caliber: 6.5x39 mm Tracer - Yellow<br />Rounds: 30<br />Used in: MX/C/M/SW/3GL @@ -233,6 +261,7 @@ Caliber: 6.5x39 mm Tracciante - Giallo<br />Colpi: 30<br />Usati in: MX/C/M/SW/3GL Kalibr: 6.5×39 mm Stopovka - Žlutá<br />Nábojů: 30<br />Použito v: MX/C/M/SW/3GL Calibre: 6.5x39 mm Tracejante - Amarelo<br/>Balas:30<br/>Usado em: MX/C/M/SW/3GL + 口径: 6.5x39 mm 曳光弾 - 黄<br />弾数: 30<br />使用武器: MX/C/M/SW/3GL 6.5mm 100Rnd Mixed Mag (Green) @@ -241,6 +270,7 @@ 6.5mm 100Colpi Misti Caricatore (verdi) 6.5 mm 100 ranný zásobník, částečná stopovka (Zelená) Magazine 6.5mm 100 balas misturadas (verde) + 6.5 mm 100発入り 混合 (緑) マガジン 6.5mm 100Rnd Mixed Mag (Yellow) @@ -249,6 +279,7 @@ 6.5mm 100Colpi Misti Caricatore (gialli) 6.5 mm 100 ranný zásobník, částečná stopovka (Žlutá) Magazine 6.5mm 100 balas misturadas (amarelo) + 6.5 mm 100発入り 混合 (黄) マガジン 6.5mm 100Rnd Mag Tracer (Green) @@ -257,6 +288,7 @@ 6.5mm 100Colpi Caricatore Tracciante (verde) 6.5 mm 100 ranný zásobník, stopovka (Zelená) Magazine 6.5mm 100 balas tracejantes + 6.5 mm 100発入り (緑) マガジン Caliber: 6.5x39 mm Tracer - Green<br />Rounds: 100<br />Used in: MX SW @@ -265,6 +297,7 @@ Calibro: 6.5x39 mm Traccianti - Verdi<br />Colpi: 100<br />Usati in: MX SW Kalibr: 6.5×39 mm Stopovka - Zelená<br />Nábojů: 100<br />Použito v: MX SW Calibre: 6.5x39 mm Tracejante - Verde<br/>Balas: 100<br/>Usado em: MX SW + 口径: 6.5x39 mm 曳光弾 - 緑<br />弾数: 100<br />使用武器: MX SW 6.5mm 100Rnd Mag Tracer (Yellow) @@ -273,6 +306,7 @@ 6.5mm 100Colpi Caricatore Traccianti (giallo) 6.5 mm 100 ranný zásobník, stopovka (Žlutá) Magazine 6.5mm 100 balas tracejantes (amarelo) + 6.5 mm 100発入り 曳光弾 (黄) マガジン Caliber: 6.5x39 mm Tracer - Yellow<br />Rounds: 100<br />Used in: MX SW @@ -281,6 +315,7 @@ Calibro: 6.5x39 mm Traccianti - Gialli<br />Colpi: 100<br />Usati in: MX SW Kalibr: 6.5×39 mm Stopovka - Žlutá<br />Nábojů: 100<br />Použito v: MX SW Calibre: 6.5x39 mm Tracejante - Amarelo<br/>Balas: 100<br/>Usado em: MX SW + 口径: 6.5x39 mm 曳光弾 - 黄<br />弾数: 100<br />使用武器: MX SW 6.5mm 30Rnd Reload Tracer (Red) Mag @@ -289,6 +324,7 @@ 6.5mm 30Colpi Ricarica Traccianti (Rossi) Caricatore 6.5 mm 30 ranný zásobník, stopovka pro přebití (Červená) Recarregar magazine 6.5mm 30 balas tracejantes (vermelho) + 6.5 mm 30発入り 残通知 曳光弾 (赤) マガジン 6.5mm 30Rnd Reload Tracer (Yellow) Mag @@ -297,6 +333,7 @@ 6.5mm 30Colpi Ricarica Traccianti (gialli) Caricatore 6.5 mm 30 ranný zásobník, stopovka pro přebití (Žlutá) Recarregar magazine 6.5mm 30 balas tracejantes (amarelo) + 6.5 mm 30発入り 残通知 曳光弾 (黄) マガジン 6.5mm 30Rnd Tracer (Red) Mag @@ -305,6 +342,7 @@ 6.5mm 30Colpi Traccianti (rossi) Caricatori 6.5 mm 30 ranný zásobník, stopovka (Červená) Magazine 6.5mm 30 balas tracejantes (vermelho) + 6.5 mm 30発入り 曳光弾 (赤) マガジン Caliber: 6.5x39 mm Tracer (Red) - Caseless<br />Rounds: 30<br />Used in: Katiba, Type 115 @@ -313,6 +351,7 @@ Calibro: 6.5x39 mm Traccianti (Rossi) - Senza Bossolo<br />Colpi: 30<br />Usati in: Katiba, Type 115 Kalibr: 6.5×39 mm Stopovka - Červená - Beznábojnicová<br />Nábojů: 30<br />Použito v: Katiba, Type 115 Calibre: 6.5x39 mm Tracejante (Vermelho) - Sem Cartucho<br/>Balas: 30<br/>Usado em: Katiba, Type 115 + 口径: 6.5x39 mm 曳光弾 - 赤 (ケースレス)<br />弾数: 30<br />使用武器: Katiba, Type 115 6.5mm 30Rnd Tracer (Yellow) Mag @@ -321,6 +360,7 @@ 6.5mm 30 Colpi Traccianti (gialli) Caricatore 6.5 mm 30 ranný zásobník, stopovka (Žlutá) Magazine 6.5mm 30 balas tracejantes (amarelo) + 6.5 mm 30発入り 曳光弾 (黄) マガジン Caliber: 6.5x39 mm Tracer (Yellow) - Caseless<br />Rounds: 30<br />Used in: Katiba, Type 115 @@ -329,6 +369,7 @@ Calibro: 6.5x39 mm Traccianti (Gialli) - Senza Bossolo<br />Colpi: 30<br />Usati in: Katiba, Type 115 Kalibr: 6.5×39 mm Stopovka - Žlutá - Beznábojnicová<br />Nábojů: 30<br />Použito v: Katiba, Type 115 Caliber: 6.5x39 mm Tracejante (Vermelho) - Sem Cartucho<br/>Balas: 30<br/>Usado em: Katiba, Type 115 + 口径: 6.5x39 mm 曳光弾 - 黄 (ケースレス)<br />弾数: 30<br />使用武器: Katiba, Type 115 6.5 mm 200Rnd Belt Case Mixed (Green) @@ -337,6 +378,7 @@ 6.5mm 200Colpi Caricatore esteso Misti (Verdi) 6.5 mm 200 ranný pás, částečná stopovka (Zelená) Caixa de Cinto 6.5 mm 200 Balas Misturados (Verde) + 6.5 mm 200発入り 混合 (緑) ベルト ケース Caliber: 6.5x39 mm Mixed - Green<br />Rounds: 200<br />Used in: Mk200 @@ -345,6 +387,7 @@ Calibro: 6.5x39 mm Misti - Verdi<br />Colpi: 200<br />Usati in: Mk200 Kalibr: 6.5×39 mm Stopovka - Zelená<br />Nábojů: 200<br />Použito v: Mk200 Calibre: 6.5x39 mm Misturado - Verde<br/>Balas: 200<br/>Usado em: Mk200 + 口径: 6.5x39 mm 混合 - 緑<br />弾数: 200<br />使用武器: Mk200 6.5 mm 200Rnd Belt Case Mixed (Red) @@ -353,6 +396,7 @@ 6.5 mm 200Colpi Caritore maggiorato Misti (rossi) 6.5 mm 200 ranný pás, částečná stopovka (Červená) Caixa de Cinto 6.5 mm 200 balas misturadas (Vermelho) + 6.5 mm 200発入り 混合 (赤) ベルト ケース Caliber: 6.5x39 mm Mixed - Red<br />Rounds: 200<br />Used in: Mk200 @@ -361,6 +405,7 @@ Calibro: 6.5x39 mm Misti - Rossi<br />Colpi: 200<br />Usati in: Mk200 Kalibr: 6.5×39 mm Stopovka - Červená<br />Nábojů: 200<br />Použito v: Mk200 Caliber: 6.5x39 mm Misturado - Vermelho<br/>Balas: 200<br/>Usado em: Mk200 + 口径: 6.5x39 mm 混合 - 赤<br />弾数: 200<br />使用武器: Mk200 6.5 mm 200Rnd Belt Case Tracer (Green) @@ -369,6 +414,7 @@ 6.5 mm 200Colpi Caricatore maggiorato Traccianti (verdi) 6.5 mm 200 ranný pás, částečná stopovka (Zelená) Caixa de Cinto 6;5 mm 200 balas tracejantes (Verde) + 6.5 mm 200発入り 混合 (緑) ベルト ケース Caliber: 6.5x39 mm Tracer - Green<br />Rounds: 200<br />Used in: Mk200 @@ -378,6 +424,7 @@ Kalibr: 6.5×39 mm Stopovka - Zelená<br />Nábojů: 200<br />Použito v: Mk200 Kaliber: 6.5x39 mm Smugowa - Zielona<br />Sztuk: 200<br />Używana w: Mk200 Caliber: 6.5x39 mm Tracejante - Verde<br/>Balas: 200<br/>Usado em: Mk200 + 口径: 6.5x39 mm 曳光弾 - 緑<br />弾数: 200<br />使用武器: Mk200 6.5 mm 200Rnd Belt Case Tracer (Red) @@ -387,6 +434,7 @@ 6.5 mm 200 ranný pás, stopovka (Červená) 6.5 mm Magazynek pudełkowy 200szt. Smugowa (Czerwona) Caixa de Cinto 6.5 mm 200 Balas Tracejantes (Vermelho) + 6.5 mm 200発入り 曳光弾 (赤) ベルト ケース Caliber: 6.5x39 mm Tracer - Red<br />Rounds: 200<br />Used in: Mk200 @@ -396,6 +444,7 @@ Kalibr: 6.5×39 mm Stopovka - Červená<br />Nábojů: 200<br />Použito v: Mk200 Kaliber: 6.5x39 mm Smugowa - Czerwona<br />Sztuk: 200<br />Używana w: Mk200 Caliber: 6.5x39 mm Tracejante - Vermelho<br/>Balas: 200<br/>Usado em: Mk200 + 口径: 6.5x39 mm 曳光弾 - 赤<br />弾数: 200<br />使用武器: Mk200 7.62 mm 20Rnd Tracer (Green) Mag @@ -405,6 +454,7 @@ 7.62 mm 20 ranný zásobník, stopovka (Zelená) 7.62 mm Magazynek 20szt. Smugowa (Zielona) Magazine 7.62 mm 20 Balas Tracejantes (verdes) + 7.62 mm 20発入り 曳光弾 (緑) マガジン Caliber: 7.62x51 mm NATO Tracer - Green<br />Rounds: 20<br />Used in: Mk18 ABR, Mk-I EMR, Mk14, SPAR-17 @@ -414,6 +464,7 @@ Kalibr: 7.62×51 mm NATO Stopovka - Zelená<br />Nábojů: 20<br />Použito v: Mk18 ABR, Mk-I EMR, Mk14, SPAR-17 Kaliber: 7.62x51 mm NATO Smugowa - Zielona<br />Sztuk: 20<br />Używana w: Mk18 ABR, Mk-I EMR, Mk14, SPAR-17 Calibre: 7.62x51 mm NATO Tracejante - Verde<br/>Balas: 20<br/>Usado em: Mk18 ABR, Mk-I EMR, Mk14, SPAR-17 + 口径: 7.62x51 mm NATO 曳光弾 - 緑<br />弾数: 20<br />使用武器: Mk18 ABR, Mk-I EMR, Mk14, SPAR-17 7.62 mm 20Rnd Tracer (Yellow) Mag @@ -423,6 +474,7 @@ 7.62 mm 20 ranný zásobník, stopovka (Žlutá) 7.62 mm Magazynek 20szt. Smugowa (Żółta) Magazine 7.62 mm 20 Balas Tracejantes (Amarelo) + 7.62 mm 20発入り 曳光弾 (黄) マガジン Caliber: 7.62x51 mm NATO Tracer - Yellow<br />Rounds: 20<br />Used in: Mk18 ABR, Mk-I EMR, Mk14, SPAR-17 @@ -432,6 +484,7 @@ Kalibr: 7.62×51 mm NATO Stopovka - Žlutá<br />Nábojů: 20<br />Použito v: Mk18 ABR, Mk-I EMR, Mk14, SPAR-17 Kaliber: 7.62x51 mm NATO Smugowa - Żółta<br />Sztuk: 20<br />Używana w: Mk18 ABR, Mk-I EMR, Mk14, SPAR-17 Calibre: 7.62x51 mm NATO Tracejante - Amarelo<br/>Balas: 20<br/>Usado em: Mk18 ABR, Mk-I EMR, Mk14, SPAR-17 + 口径: 7.62x51 mm NATO 曳光弾 - 黄<br />弾数: 20<br />使用武器: Mk18 ABR, Mk-I EMR, Mk14, SPAR-17 7.62mm 150Rnd Box Mixed (Red) @@ -441,6 +494,7 @@ 7.62 mm 150 ranný pás, částečná stopovka (Červená) 7.62 mm Magazynek pudełkowy 150szt. Mieszana (Czerwona) Caixa 7.62mm 150 Balas Misturadas (Vermelho) + 7.62 mm 150発入り 混合 (緑) ボックス 7.62mm 150Rnd Box Mixed (Yellow) @@ -450,6 +504,7 @@ 7.62 mm 150 ranný pás, částečná stopovka (Žlutá) 7.62 mm Magazynek pudełkowy 150szt. Mieszana (Żółta) Caixa 7.62mm 150 Balas Misturadas (Amarelo) + 7.62 mm 150発入り 混合 (黄) ボックス 7.62mm 150Rnd Box Tracer (Red) @@ -459,6 +514,7 @@ 7.62 mm 150 ranný pás, stopovka (Červená) 7.62mm Magazynek pudełkowy 150szt. Smugowa (Czerwona) Caixa 7.62mm 150 Balas Misturadas (Vermelho) + 7.62 mm 150発入り 曳光弾 (赤) ボックス Caliber: 7.62x54 mm Tracer - Red<br />Rounds: 150<br />Used in: Zafir @@ -468,6 +524,7 @@ Kalibr: 7.62×54 mm Stopovka - Červená<br />Nábojů: 150<br />Použito v: Zafir Kaliber: 7.62x54 mm Smugowa - Czerwona<br />Sztuk: 150<br />Używana w: Zafir Calibre: 7.62x54 mm Tracejante - Vermelho<br/>Balas: 150<br/>Usado em:Zafir + 口径: 7.62x54 mm 曳光弾 - 赤<br />弾数: 150<br />使用武器: ザフィル 7.62mm 150Rnd Box Tracer (Yellow) @@ -477,6 +534,7 @@ 7.62 mm 150 ranný pás, stopovka (Žlutá) 7.62 mm Magazynek pudełkowy 150szt. Smugowa (Żółta) Caixa 7.62mm 150 Balas Tracejantes (Amarelo) + 7.62 mm 150発入り 曳光弾 (緑) ボックス Caliber: 7.62x54 mm Tracer - Yellow<br />Rounds: 150<br />Used in: Zafir @@ -486,6 +544,7 @@ Kalibr: 7.62×54 mm Stopovka - Žlutá<br />Nábojů: 150<br />Použito v: Zafir Kaliber: 7.62x54 mm Smugowa - Żółta<br />Sztuk: 150<br />Używana w: Zafir Calibre: 7.62x54 mm Tracejante - Amarelo<br/>Balas: 150<br/>Usado em:Zafir + 口径: 7.62x54 mm 曳光弾 - 黄<br />弾数: 150<br />使用武器: ザフィル 9.3mm 150Rnd Belt Mixed (Yellow) @@ -495,6 +554,7 @@ 9.3 mm 150 ranný pás, částečná stopovka (Žlutá) 9.3 mm Taśma 150szt. Mieszana (Żółta) Cinto 9.3mm 150 Balas Misturadas (Amarelo) + 9.3 mm 150発入り 混合 (黄) ベルト 9.3mm 150Rnd Belt Mixed (Red) @@ -504,6 +564,7 @@ 9.3 mm 150 ranný pás, částečná stopovka (Červená) 9.3 mm Taśma 150szt. Mieszana (Czerwona) Cinto 9.3mm 150 Balas Misturadas (Vermelho) + 9.3 mm 150発入り 混合 (赤) ベルト .338 NM 130Rnd Belt Mixed (Yellow) @@ -513,6 +574,7 @@ .338 NM 130 ranný pás, částečná stopovka (Žlutá) .338 NM Taśma 130szt. Mieszana (Żółta) Cinto .338 NM Misturado (Amarelo) + .338 NM 130発入り 混合 (黄) ベルト .338 NM 130Rnd Belt Mixed (Green) @@ -522,6 +584,7 @@ .338 NM 130 ranný pás, částečná stopovka (Zelená) .338 NM Taśma 130szt. Mieszana (Zielona) Cinto .338 NM 130 Balas Misturados (Verde) + .338 NM 130発入り 混合 (緑) ベルト From 3db9a24007bc31196534c154ed0143d349d049b8 Mon Sep 17 00:00:00 2001 From: Laid3acK Date: Mon, 9 Mar 2020 17:43:11 +0100 Subject: [PATCH 180/194] Ballistics - 300WM Berger Hybrid OTM airFriction updated (#7570) * ballistics_300WM * ballistics_300WM * ballistics_300WM * ballistics_300WM --- addons/atragmx/functions/fnc_initGunList.sqf | 2 +- addons/ballistics/CfgAmmo.hpp | 2 +- extras/airFrictionAnalysis.txt | 10 +++++----- tools/generate_airfriction_config.py | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/addons/atragmx/functions/fnc_initGunList.sqf b/addons/atragmx/functions/fnc_initGunList.sqf index aab682f6ac..853814510c 100644 --- a/addons/atragmx/functions/fnc_initGunList.sqf +++ b/addons/atragmx/functions/fnc_initGunList.sqf @@ -52,7 +52,7 @@ if (_resetGunList) then { [".300WM Mk248 Mod0" , 857, 100, 0.0825862, -0.00072468, 7.37, 0, 2, 10, 120, 0, 0, 12.31, 7.80, 25.40, 0.537, 1, "ICAO", [[-15,838],[0,845],[10,852],[15,857],[25,871],[30,880],[35,891]] , [[0, 0.546], [1210, 0.529], [1470, 0.520], [1570, 0.518], [1730, 0.515], [1880, 0.513], [1970, 0.513]], true], [".300WM Mk248 Mod1" , 839, 100, 0.0841417, -0.00063027, 7.37, 0, 2, 10, 120, 0, 0, 14.26, 7.80, 25.40, 0.619, 1, "ICAO", [[-15,820],[0,827],[10,834],[15,839],[25,853],[30,862],[35,873]] , [[0, 0.623], [1150, 0.614], [1330, 0.609], [1620, 0.598], [1770, 0.595], [1970, 0.592], [2030, 0.591]], true], - [".300WM Berger OTM" , 792, 100, 0.0891300, -0.00055262, 7.37, 0, 2, 10, 120, 0, 0, 14.90, 7.80, 25.40, 0.715, 1, "ICAO", [[-15,773],[0,780],[10,787],[15,792],[25,806],[30,815],[35,826]] , [[0, 0.721], [1400, 0.708], [1570, 0.703], [1860, 0.692], [1990, 0.689], [2140, 0.686], [2220, 0.685]], true], + [".300WM Berger OTM" , 792, 100, 0.0891300, -0.00054587, 7.37, 0, 2, 10, 120, 0, 0, 14.90, 7.80, 25.40, 0.715, 1, "ICAO", [[-15,773],[0,780],[10,787],[15,792],[25,806],[30,815],[35,826]] , [[0, 0.721], [1400, 0.708], [1570, 0.703], [1860, 0.692], [1990, 0.689], [2140, 0.686], [2220, 0.685]], true], ["7.62x54mmR" , 828, 100, 0.0853677, -0.00103739, 7.11, 0, 2, 10, 120, 0, 0, 9.849, 7.92, 24.13, 0.400, 1, "ICAO", [[-15,809],[0,816],[10,823],[15,828],[25,842],[30,851],[35,862]] , [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true], diff --git a/addons/ballistics/CfgAmmo.hpp b/addons/ballistics/CfgAmmo.hpp index 291dbd52dc..2b9aa75d0a 100644 --- a/addons/ballistics/CfgAmmo.hpp +++ b/addons/ballistics/CfgAmmo.hpp @@ -398,7 +398,7 @@ class CfgAmmo { ACE_barrelLengths[]={508.0, 609.6, 660.4}; }; class ACE_762x67_Ball_Berger_Hybrid_OTM : B_762x51_Ball { - airFriction=-0.00053638; + airFriction=-0.000546; caliber=2.0; hit=19; typicalSpeed=853; diff --git a/extras/airFrictionAnalysis.txt b/extras/airFrictionAnalysis.txt index 49c64aa2f6..1a7ce68c76 100644 --- a/extras/airFrictionAnalysis.txt +++ b/extras/airFrictionAnalysis.txt @@ -152,12 +152,12 @@ Max. Tof diff (ms): 11.5 Optimal airFriction: 0.00063027 ########################################## Ammo Class: ACE_762x67_Ball_Berger_Hybrid_OTM -MaxRanges (m): [900, 1000, 1000] +MaxRanges (m): [1100, 1200, 1300] MuzzleVelocities (m/s): [800, 853, 884] -Max. Velocity diff (m/s): 19.15 -Max. Drop diff (cm): 7.57 -Max. Tof diff (ms): 15.0 -Optimal airFriction: 0.00053638 +Max. Velocity diff (m/s): 25.76 +Max. Drop diff (cm): 16.2 +Max. Tof diff (ms): 28.5 +Optimal airFriction: 0.00054587 ########################################## Ammo Class: B_762x54_Ball MaxRanges (m): [500, 800, 800] diff --git a/tools/generate_airfriction_config.py b/tools/generate_airfriction_config.py index f91adea564..9f18c407bb 100644 --- a/tools/generate_airfriction_config.py +++ b/tools/generate_airfriction_config.py @@ -480,7 +480,7 @@ ammoList = [["B_556x45_Ball", [300, 500, 500], [750, 870, 910], 7, 0.151], ["ACE_243_Winchester_Ball", [700, 900, 900], [830, 900, 920], 7, 0.278], ["ACE_762x67_Ball_Mk248_Mod_0", [800, 900, 900], [865, 900, 924], 7, 0.268], ["ACE_762x67_Ball_Mk248_Mod_1", [800, 900, 900], [847, 867, 877], 7, 0.310], - ["ACE_762x67_Ball_Berger_Hybrid_OTM", [900, 1000, 1000], [800, 853, 884], 7, 0.368], + ["ACE_762x67_Ball_Berger_Hybrid_OTM", [1100, 1200, 1300], [800, 853, 884], 7, 0.368], ["B_762x54_Ball", [500, 800, 800], [760, 835, 865], 1, 0.4], ["ACE_762x35_Ball", [400, 500], [620, 675], 1, 0.330], ["ACE_762x39_Ball", [400, 600], [650, 750], 1, 0.275], From e89c172d34288ec2a6059cfe681a7b08cb5b451b Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Wed, 11 Mar 2020 15:09:36 -0500 Subject: [PATCH 181/194] Arsenal - Fix main menu mission (#7594) * Arsenal - Fix main menu mission * fix double space * Add note --- addons/arsenal/missions/Arsenal.VR/CfgEventHandlers.hpp | 5 +++-- addons/arsenal/missions/Arsenal.VR/XEH_preInit.sqf | 2 ++ addons/arsenal/missions/Arsenal.VR/fnc_createTarget.sqf | 4 ++++ 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/addons/arsenal/missions/Arsenal.VR/CfgEventHandlers.hpp b/addons/arsenal/missions/Arsenal.VR/CfgEventHandlers.hpp index e75956f440..6e90665ffc 100644 --- a/addons/arsenal/missions/Arsenal.VR/CfgEventHandlers.hpp +++ b/addons/arsenal/missions/Arsenal.VR/CfgEventHandlers.hpp @@ -1,11 +1,12 @@ +// These files are from the VR mission, not the base addon folder class Extended_PreInit_EventHandlers { class ADDON { - init = QUOTE(call COMPILE_FILE(XEH_preInit)); + init = QUOTE(call compile preprocessFileLineNumbers 'XEH_preInit.sqf'); }; }; class Extended_PostInit_EventHandlers { class ADDON { - init = QUOTE(call COMPILE_FILE(XEH_postInit)); + init = QUOTE(call compile preprocessFileLineNumbers 'XEH_postInit.sqf'); }; }; diff --git a/addons/arsenal/missions/Arsenal.VR/XEH_preInit.sqf b/addons/arsenal/missions/Arsenal.VR/XEH_preInit.sqf index 329d5fd1a5..6d6acca865 100644 --- a/addons/arsenal/missions/Arsenal.VR/XEH_preInit.sqf +++ b/addons/arsenal/missions/Arsenal.VR/XEH_preInit.sqf @@ -1,4 +1,6 @@ #include "script_component.hpp" +INFO("Loading VR Mission"); + PREP(onPause); PREP(createTarget); diff --git a/addons/arsenal/missions/Arsenal.VR/fnc_createTarget.sqf b/addons/arsenal/missions/Arsenal.VR/fnc_createTarget.sqf index 7ff1ea58e6..30eac04a7f 100644 --- a/addons/arsenal/missions/Arsenal.VR/fnc_createTarget.sqf +++ b/addons/arsenal/missions/Arsenal.VR/fnc_createTarget.sqf @@ -52,6 +52,10 @@ _target setVariable ["origin", _position]; _target addEventHandler ["killed", { params ["_target"]; + + // Killed may fire twice, 2nd will be null - https://github.com/acemod/ACE3/pull/7561 + if (isNull _target) exitWith { TRACE_1("Ignoring null death",_target); }; + private _position = _target getVariable ["origin", position _target]; private _varName = vehicleVarName _target; From 82116bd98bed33c237269ad94aa9a012fae91167 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Wed, 11 Mar 2020 18:42:21 -0500 Subject: [PATCH 182/194] CSW - Check carry mag exists (#7587) Fix #7579 --- addons/csw/dev/checkStaticWeapons.sqf | 2 +- addons/csw/functions/fnc_aceRearmGetCarryMagazines.sqf | 2 +- addons/csw/functions/fnc_assemble_pickupWeapon.sqf | 2 +- addons/csw/functions/fnc_reload_actionsUnload.sqf | 2 +- addons/csw/functions/fnc_staticWeaponInit_unloadExtraMags.sqf | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/addons/csw/dev/checkStaticWeapons.sqf b/addons/csw/dev/checkStaticWeapons.sqf index 6ad8985b98..5a6f8d2b90 100644 --- a/addons/csw/dev/checkStaticWeapons.sqf +++ b/addons/csw/dev/checkStaticWeapons.sqf @@ -54,7 +54,7 @@ private _logAll = false; private _weapMags = getArray (configFile >> "CfgWeapons" >> _x >> "magazines"); { private _xMag = _x; - private _groups = "getNumber (_x >> _xMag) == 1" configClasses (configFile >> QGVAR(groups)); + private _groups = "getNumber (_x >> _xMag) == 1 && {isClass (configFile >> 'CfgMagazines' >> configName _x)}" configClasses (configFile >> QGVAR(groups)); private _carryMag = configName (_groups param [0, configNull]); if ((_carryMag == "") && {_logAll || {_xMag in _loadedMags}}) then { private _vehs = [_hash, _xMag] call CBA_fnc_hashGet; diff --git a/addons/csw/functions/fnc_aceRearmGetCarryMagazines.sqf b/addons/csw/functions/fnc_aceRearmGetCarryMagazines.sqf index ac64f636e8..09ea4be8f8 100644 --- a/addons/csw/functions/fnc_aceRearmGetCarryMagazines.sqf +++ b/addons/csw/functions/fnc_aceRearmGetCarryMagazines.sqf @@ -33,7 +33,7 @@ private _allCarryMags = []; private _xMag = _x; private _carryMag = GVAR(vehicleMagCache) getVariable _xMag; if (isNil "_carryMag") then { - private _groups = "getNumber (_x >> _xMag) == 1" configClasses (configFile >> QGVAR(groups)); + private _groups = "getNumber (_x >> _xMag) == 1 && {isClass (configFile >> 'CfgMagazines' >> configName _x)}" configClasses (configFile >> QGVAR(groups)); _carryMag = configName (_groups param [0, configNull]); GVAR(vehicleMagCache) setVariable [_x, _carryMag]; TRACE_2("setting cache",_xMag,_carryMag); diff --git a/addons/csw/functions/fnc_assemble_pickupWeapon.sqf b/addons/csw/functions/fnc_assemble_pickupWeapon.sqf index 1b131d4a3b..eb70371b59 100644 --- a/addons/csw/functions/fnc_assemble_pickupWeapon.sqf +++ b/addons/csw/functions/fnc_assemble_pickupWeapon.sqf @@ -43,7 +43,7 @@ private _carryMag = GVAR(vehicleMagCache) getVariable _xMag; if (isNil "_carryMag") then { - private _groups = "getNumber (_x >> _xMag) == 1" configClasses (configFile >> QGVAR(groups)); + private _groups = "getNumber (_x >> _xMag) == 1 && {isClass (configFile >> 'CfgMagazines' >> configName _x)}" configClasses (configFile >> QGVAR(groups)); _carryMag = configName (_groups param [0, configNull]); GVAR(vehicleMagCache) setVariable [_xMag, _carryMag]; TRACE_2("setting cache",_xMag,_carryMag); diff --git a/addons/csw/functions/fnc_reload_actionsUnload.sqf b/addons/csw/functions/fnc_reload_actionsUnload.sqf index 34b77b3c6b..12d2cd2f9a 100644 --- a/addons/csw/functions/fnc_reload_actionsUnload.sqf +++ b/addons/csw/functions/fnc_reload_actionsUnload.sqf @@ -61,7 +61,7 @@ private _handeledMagTypes = []; private _carryMag = GVAR(vehicleMagCache) getVariable _xMag; if (isNil "_carryMag") then { - private _groups = "getNumber (_x >> _xMag) == 1" configClasses (configFile >> QGVAR(groups)); + private _groups = "getNumber (_x >> _xMag) == 1 && {isClass (configFile >> 'CfgMagazines' >> configName _x)}" configClasses (configFile >> QGVAR(groups)); _carryMag = configName (_groups param [0, configNull]); GVAR(vehicleMagCache) setVariable [_xMag, _carryMag]; TRACE_2("setting cache",_xMag,_carryMag); diff --git a/addons/csw/functions/fnc_staticWeaponInit_unloadExtraMags.sqf b/addons/csw/functions/fnc_staticWeaponInit_unloadExtraMags.sqf index bd73df878c..a1e7ca9715 100644 --- a/addons/csw/functions/fnc_staticWeaponInit_unloadExtraMags.sqf +++ b/addons/csw/functions/fnc_staticWeaponInit_unloadExtraMags.sqf @@ -38,7 +38,7 @@ private _containerMagazineCount = []; private _carryMag = GVAR(vehicleMagCache) getVariable _xMag; if (isNil "_carryMag") then { - private _groups = "getNumber (_x >> _xMag) == 1" configClasses (configFile >> QGVAR(groups)); + private _groups = "getNumber (_x >> _xMag) == 1 && {isClass (configFile >> 'CfgMagazines' >> configName _x)}" configClasses (configFile >> QGVAR(groups)); _carryMag = configName (_groups param [0, configNull]); GVAR(vehicleMagCache) setVariable [_xMag, _carryMag]; TRACE_2("setting cache",_xMag,_carryMag); From 3286913df3aa36c8569024508627c40d51c0e0a8 Mon Sep 17 00:00:00 2001 From: Brandon Danyluk Date: Thu, 12 Mar 2020 02:35:52 -0600 Subject: [PATCH 183/194] Add TCVM to authors --- AUTHORS.txt | 2 +- docs/team.md | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/AUTHORS.txt b/AUTHORS.txt index 020662aea0..84c431446b 100644 --- a/AUTHORS.txt +++ b/AUTHORS.txt @@ -6,6 +6,7 @@ # request, preferably including an email address. # CORE TEAM +Brandon (TCVM) bux578 commy2 esteldunedain @@ -52,7 +53,6 @@ Bla1337 BlackPixxel BlackQwar Brakoviejo -Brandon (TCVM) Brisse Brostrom.A | Evul BullHorn diff --git a/docs/team.md b/docs/team.md index 034fac4227..1fb00c4085 100644 --- a/docs/team.md +++ b/docs/team.md @@ -59,6 +59,7 @@ This lists all the maintainers responsible for project management and the overal - [Giallustio](https://github.com/Giallustio){:target="_blank"} - [654wak654](https://github.com/654wak654){:target="_blank"} - [mharis001](https://github.com/mharis001){:target="_blank"} +- [Brandon (TCVM)](https://github.com/TheCandianVendingMachine){:target="_blank"} ## Contributors From be3d69ff251a4db5b7e7124722b14be31294de6b Mon Sep 17 00:00:00 2001 From: TWC-Rik <18664259+TWC-Rik@users.noreply.github.com> Date: Sun, 15 Mar 2020 21:41:55 +0100 Subject: [PATCH 184/194] Reload Launchers - Improve External Launcher Reload (#7605) Launchers reloaded by an external player will be instantly loaded since the external player already has to go through a loading bar. --- addons/reloadlaunchers/functions/fnc_reloadLauncher.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/reloadlaunchers/functions/fnc_reloadLauncher.sqf b/addons/reloadlaunchers/functions/fnc_reloadLauncher.sqf index 58f6b6556a..6dc3f34673 100644 --- a/addons/reloadlaunchers/functions/fnc_reloadLauncher.sqf +++ b/addons/reloadlaunchers/functions/fnc_reloadLauncher.sqf @@ -27,4 +27,4 @@ if (currentWeapon _target != _weapon) exitWith {}; if (currentMagazine _target != "") exitWith {}; // command is wip, reload time for launchers is not intended. -_target addWeaponItem [_weapon, _magazine]; +_target addWeaponItem [_weapon, _magazine, true]; From 1f2004741027fcdfbc555f18c7a872d7df347d46 Mon Sep 17 00:00:00 2001 From: "Rutger \"RedBery\" Meijering" Date: Fri, 20 Mar 2020 17:54:30 +0100 Subject: [PATCH 185/194] Rearm - Fix vehicles failing rearm due to case differences (#7609) --- addons/rearm/functions/fnc_getTurretMagazineAmmo.sqf | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/addons/rearm/functions/fnc_getTurretMagazineAmmo.sqf b/addons/rearm/functions/fnc_getTurretMagazineAmmo.sqf index 2e914f3e7a..fa73b59d84 100644 --- a/addons/rearm/functions/fnc_getTurretMagazineAmmo.sqf +++ b/addons/rearm/functions/fnc_getTurretMagazineAmmo.sqf @@ -23,5 +23,4 @@ params ["_vehicle", "_turretPath", "_magazineClass"]; -private _ammo = magazinesAllTurrets _vehicle select {(_x select 0) isEqualTo _magazineClass && {(_x select 1) isEqualTo _turretPath}} apply {_x select 2}; -_ammo +magazinesAllTurrets _vehicle select {(_x select 0) == _magazineClass && {(_x select 1) isEqualTo _turretPath}} apply {_x select 2} From 54086bb2eff7c9debad18ddfca64dd7b00e50fef Mon Sep 17 00:00:00 2001 From: BaerMitUmlaut Date: Sat, 4 Apr 2020 01:28:14 +0200 Subject: [PATCH 186/194] Fix being stuck dragging when in combat pace (#7617) --- addons/dragging/functions/fnc_dragObject.sqf | 3 +++ addons/dragging/functions/fnc_dropObject.sqf | 3 +++ 2 files changed, 6 insertions(+) diff --git a/addons/dragging/functions/fnc_dragObject.sqf b/addons/dragging/functions/fnc_dragObject.sqf index 347eb857db..ae52838e9b 100644 --- a/addons/dragging/functions/fnc_dragObject.sqf +++ b/addons/dragging/functions/fnc_dragObject.sqf @@ -64,6 +64,9 @@ GVAR(currentHeightChange) = 0; // prevent UAVs from firing private _UAVCrew = _target call EFUNC(common,getVehicleUAVCrew); +// fixes not being able to move when in combat pace +[_unit, "forceWalk", "ACE_dragging", true] call EFUNC(common,statusEffect_set); + if !(_UAVCrew isEqualTo []) then { {_target deleteVehicleCrew _x} count _UAVCrew; _target setVariable [QGVAR(isUAV), true, true]; diff --git a/addons/dragging/functions/fnc_dropObject.sqf b/addons/dragging/functions/fnc_dropObject.sqf index 84bbd90342..4ecc876afd 100644 --- a/addons/dragging/functions/fnc_dropObject.sqf +++ b/addons/dragging/functions/fnc_dropObject.sqf @@ -77,6 +77,9 @@ if (_target getVariable [QGVAR(isUAV), false]) then { createVehicleCrew _target; }; +// fixes not being able to move when in combat pace +[_unit, "forceWalk", "ACE_dragging", false] call EFUNC(common,statusEffect_set); + // reset mass private _mass = _target getVariable [QGVAR(originalMass), 0]; From 68143cba41e4d1c8f37d19e2ddd44474bfefae9b Mon Sep 17 00:00:00 2001 From: Saborknight Date: Sat, 4 Apr 2020 23:58:10 +1100 Subject: [PATCH 187/194] Explosives - Remove "Activate mine" action menu item (#7622) * Fixed - "Activate mine" action menu item still showing The "Activate mine" action menu item was still showing, but only after an explosive was set, then diffused. * Update addons/explosives/config.cpp Co-authored-by: commy2 --- addons/explosives/config.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/addons/explosives/config.cpp b/addons/explosives/config.cpp index 0ae218be25..08042297dc 100644 --- a/addons/explosives/config.cpp +++ b/addons/explosives/config.cpp @@ -47,6 +47,9 @@ class CfgActions { class DeactivateMine:None { show = 0; }; + class UseContainerMagazine: None { + show = 0; + }; }; class CfgMineTriggers { From dd0ca9dc84516fa2ea4398526cc23fc4bfb4d1f1 Mon Sep 17 00:00:00 2001 From: jonpas Date: Sat, 4 Apr 2020 17:24:59 +0200 Subject: [PATCH 188/194] Respawn - Add save gear event (#7607) --- addons/respawn/functions/fnc_handleKilled.sqf | 1 + 1 file changed, 1 insertion(+) diff --git a/addons/respawn/functions/fnc_handleKilled.sqf b/addons/respawn/functions/fnc_handleKilled.sqf index 0a6fcd8ce8..905cd7987b 100644 --- a/addons/respawn/functions/fnc_handleKilled.sqf +++ b/addons/respawn/functions/fnc_handleKilled.sqf @@ -22,6 +22,7 @@ params ["_unit"]; if (ACE_player == _unit && {GVAR(SavePreDeathGear)}) then { _unit setVariable [QGVAR(unitGear), getUnitLoadout _unit]; _unit setVariable [QGVAR(activeWeaponAndMuzzle), [currentWeapon _unit, currentMuzzle _unit, currentWeaponMode _unit]]; + [QGVAR(saveGear), _unit] call CBA_fnc_localEvent; }; if (missionNamespace getVariable [QGVAR(showFriendlyFireMessage), false]) then { From a84af7ba9a41a9eb2646be4dd70465f679322932 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Sat, 4 Apr 2020 22:01:51 -0500 Subject: [PATCH 189/194] Medical - Improve some error msgs (#7588) --- addons/medical_engine/functions/fnc_setStructuralDamage.sqf | 4 +--- addons/medical_engine/functions/fnc_updateDamageEffects.sqf | 2 +- addons/medical_feedback/functions/fnc_playInjuredSound.sqf | 5 ++--- 3 files changed, 4 insertions(+), 7 deletions(-) diff --git a/addons/medical_engine/functions/fnc_setStructuralDamage.sqf b/addons/medical_engine/functions/fnc_setStructuralDamage.sqf index 5e3dcd7b05..4f2888ff71 100644 --- a/addons/medical_engine/functions/fnc_setStructuralDamage.sqf +++ b/addons/medical_engine/functions/fnc_setStructuralDamage.sqf @@ -18,9 +18,7 @@ params [["_unit", objNull, [objNull]], ["_damage", 0, [0]]]; -if (!local _unit) exitWith { - ERROR("Unit not local or null"); -}; +if (!local _unit) exitWith { ERROR_2("setStructuralDamage: Unit not local or null [%1:%2]",_unit,typeOf _unit); }; private _hitPointDamages = getAllHitPointsDamage _unit param [2, []]; diff --git a/addons/medical_engine/functions/fnc_updateDamageEffects.sqf b/addons/medical_engine/functions/fnc_updateDamageEffects.sqf index 616e96970c..b58faf4057 100644 --- a/addons/medical_engine/functions/fnc_updateDamageEffects.sqf +++ b/addons/medical_engine/functions/fnc_updateDamageEffects.sqf @@ -18,7 +18,7 @@ params [["_unit", objNull, [objNull]]]; -if (!local _unit) exitWith { ERROR("Unit not local or null"); }; +if (!local _unit) exitWith { ERROR_2("updateDamageEffects: Unit not local or null [%1:%2]",_unit,typeOf _unit); }; private _isLimping = false; diff --git a/addons/medical_feedback/functions/fnc_playInjuredSound.sqf b/addons/medical_feedback/functions/fnc_playInjuredSound.sqf index b379d266ff..391d7c3689 100644 --- a/addons/medical_feedback/functions/fnc_playInjuredSound.sqf +++ b/addons/medical_feedback/functions/fnc_playInjuredSound.sqf @@ -23,9 +23,8 @@ params [["_unit", objNull, [objNull]], ["_type", "hit", [""]], ["_severity", 0, [0]]]; // TRACE_3("",_unit,_type,_severity); -if (!local _unit) exitWith { - ERROR("Unit not local or null"); -}; +if (!local _unit) exitWith { ERROR_2("playInjuredSound: Unit not local or null [%1:%2]",_unit,typeOf _unit); }; + if !(_unit call EFUNC(common,isAwake)) exitWith {}; // Handle timeout From 90338fd89398d828abb79bd6875044e3ae6f5171 Mon Sep 17 00:00:00 2001 From: pterolatypus Date: Mon, 6 Apr 2020 16:05:57 +0100 Subject: [PATCH 190/194] Fix typo in HandleDamage (#7629) --- addons/medical_engine/functions/fnc_handleDamage.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/medical_engine/functions/fnc_handleDamage.sqf b/addons/medical_engine/functions/fnc_handleDamage.sqf index 42341cb631..6cec1c473d 100644 --- a/addons/medical_engine/functions/fnc_handleDamage.sqf +++ b/addons/medical_engine/functions/fnc_handleDamage.sqf @@ -143,7 +143,7 @@ if (_hitPoint isEqualTo "ace_hdbracket") exitWith { // Higher momentum results in higher chance for head to be hit for more lethality if (_receivedDamage > 0.35) then { private _headHitWeight = (_receivedDamage / 2) min 1; - if (_recievedDamage < 0.6) then { + if (_receivedDamage < 0.6) then { _damageSelectionArray append [0, (1 - _headHitWeight), 1, _headHitWeight]; } else { _damageSelectionArray = [0, (1 - _headHitWeight), 1, _headHitWeight]; From e4d75839916576d6a9d377ea7acf1844a2f804b8 Mon Sep 17 00:00:00 2001 From: jonpas Date: Mon, 6 Apr 2020 17:10:40 +0200 Subject: [PATCH 191/194] Documentation - Add DeTex as Mikero requirement (#7626) --- docs/wiki/development/setting-up-the-development-environment.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/wiki/development/setting-up-the-development-environment.md b/docs/wiki/development/setting-up-the-development-environment.md index cc5b5192da..5a39f5fb1a 100644 --- a/docs/wiki/development/setting-up-the-development-environment.md +++ b/docs/wiki/development/setting-up-the-development-environment.md @@ -17,7 +17,7 @@ This page describes how you can setup your development environment for ACE3, all - P-drive - Run Arma 3 and Arma 3 Tools directly from steam once to install registry entries (and again after every update) - [Python 3.x](https://www.python.org/) -- [Mikero Tools](https://mikero.bytex.digital/Downloads): DePbo, DeOgg, Rapify, MakePbo, PboProject >=1.70 +- [Mikero Tools](https://mikero.bytex.digital/Downloads): DePbo, DeOgg, DeTex, Rapify, MakePbo, PboProject >=1.70 - `*.hpp` removed from PboProject's "Exclude From Pbo" list - `-F rebuild RequiredAddons` disabled - Python, Mikero Tools and Git in PATH environment variable From 9c4aef309613250a724659e69a0e974bd6152b8e Mon Sep 17 00:00:00 2001 From: TyroneMF Date: Mon, 6 Apr 2020 16:23:24 +0100 Subject: [PATCH 192/194] Realistic Names - Add 2D optics (#7571) * Add 2D optics to realistic names. * require ace_optics --- addons/realisticnames/CfgWeapons.hpp | 12 ++++++ addons/realisticnames/config.cpp | 2 +- addons/realisticnames/stringtable.xml | 54 +++++++++++++++++++++++++++ 3 files changed, 67 insertions(+), 1 deletion(-) diff --git a/addons/realisticnames/CfgWeapons.hpp b/addons/realisticnames/CfgWeapons.hpp index acea91708c..454afe1207 100644 --- a/addons/realisticnames/CfgWeapons.hpp +++ b/addons/realisticnames/CfgWeapons.hpp @@ -699,6 +699,9 @@ class CfgWeapons { class optic_Hamr_khk_F : optic_hamr { displayName = CSTRING(optic_hamr_khk); }; + class ACE_optic_Hamr_2D : optic_Hamr { + displayName = CSTRING(optic_hamr_2d); + }; class optic_Arco : ItemCore { displayName = CSTRING(optic_arco); @@ -709,6 +712,9 @@ class CfgWeapons { class optic_Arco_ghex_F : optic_Arco { displayName = CSTRING(optic_arco_ghex); }; + class ACE_optic_Arco_2D : optic_Arco { + displayName = CSTRING(optic_arco_2d); + }; class optic_ERCO_blk_f : optic_Arco { displayName = CSTRING(optic_erco_blk); @@ -729,6 +735,9 @@ class CfgWeapons { class optic_LRPS_tna_F : optic_LRPS { displayName = CSTRING(optic_lrps_tna); }; + class ACE_optic_LRPS_2D : optic_LRPS { + displayName = CSTRING(optic_lrps_2d); + }; class optic_AMS_base; class optic_AMS: optic_AMS_base { @@ -784,6 +793,9 @@ class CfgWeapons { class optic_MRCO : ItemCore { displayName = CSTRING(optic_MRCO); }; + class ACE_optic_MRCO_2D : optic_MRCO { + displayName = CSTRING(optic_MRCO_2d); + }; class optic_Yorris : ItemCore { displayName = CSTRING(optic_Yorris); diff --git a/addons/realisticnames/config.cpp b/addons/realisticnames/config.cpp index c97c9a82e0..e8f4afae46 100644 --- a/addons/realisticnames/config.cpp +++ b/addons/realisticnames/config.cpp @@ -6,7 +6,7 @@ class CfgPatches { units[] = {}; weapons[] = {}; requiredVersion = REQUIRED_VERSION; - requiredAddons[] = {"ace_common"}; + requiredAddons[] = {"ace_common", "ace_optics"}; author = ECSTRING(common,ACETeam); authors[] = {"KoffeinFlummi","TaoSensai","commy2"}; url = ECSTRING(main,URL); diff --git a/addons/realisticnames/stringtable.xml b/addons/realisticnames/stringtable.xml index 408fd43299..576382c30d 100644 --- a/addons/realisticnames/stringtable.xml +++ b/addons/realisticnames/stringtable.xml @@ -3699,6 +3699,20 @@ Leupold Mark 4 HAMR (Khaki) Leupold Mark 4 HAMR (Haki) + + Leupold Mark 4 HAMR (2D) + Leupold Mark 4 HAMR (2D) + Leupold Mark 4 HAMR (2D) + Leupold Mark 4 HAMR (2D) + Leupold Mark 4 HAMR (2D) + Leupold Mark 4 HAMR (2D) + Leupold Mark 4 HAMR (2D) + Leupold Mark 4 HAMR (2D) + Leupold Mark 4 HAMR (2D) + Leupold Mark 4 HAMR (2D) + Leupold Mark 4 HAMR (2D) + Leupold Mark 4 HAMR (2D) + ELCAN SpecterOS (Tan) ELCAN SpecterOS (Beige) @@ -3740,6 +3754,20 @@ ELCAN SpecterOS (Zelený Hex) ELCAN SpecterOS (Yeşil Hex) + + ELCAN SpecterOS (2D) + ELCAN SpecterOS (2D) + ELCAN SpecterOS (2D) + ELCAN SpecterOS (2D) + ELCAN SpecterOS (2D) + ELCAN SpecterOS (2D) + ELCAN SpecterOS (2D) + ELCAN SpecterOS (2D) + ELCAN SpecterOS (2D) + ELCAN SpecterOS (2D) + ELCAN SpecterOS (2D) + ELCAN SpecterOS (2D) + SIG BRAVO4 / ROMEO3 (Black) SIG BRAVO4 / ROMEO3 (Schwarz) @@ -3822,6 +3850,19 @@ Nightforce NXS (Džungle) Nightforce NXS (Orman) + + Nightforce NXS (2D) + Nightforce NXS (2D) + Nightforce NXS (2D) + Nightforce NXS (2D) + Nightforce NXS (2D) + Nightforce NXS (2D) + Nightforce NXS (2D) + Nightforce NXS (2D) + Nightforce NXS (2D) + Nightforce NXS (2D) + Nightforce NXS (2D) + US Optics MR-10 (Black) US Optics MR-10 (Black) @@ -4036,6 +4077,19 @@ IOR-Valdada Pitbull 2 IOR-Valdada Pitbull 2 + + IOR-Valdada Pitbull 2 (2D) + IOR-Valdada Pitbull 2 (2D) + IOR-Valdada Pitbull 2 (2D) + IOR-Valdada ピットブル 2 (2D) + IOR-Valdada Pitbull 2 (2D) + IOR-Valdada Pitbull 2 (2D) + IOR-Valdada Pitbull 2 (2D) + IOR-Valdada Pitbull 2 (2D) + IOR-Valdada Pitbull 2 (2D) + IOR-Valdada Pitbull 2 (2D) + IOR-Valdada Pitbull 2 (2D) + Burris FastFire 2 Burris FastFire 2 From cf3b0467aca761cc6289a7c86cc39c853187474e Mon Sep 17 00:00:00 2001 From: Laid3acK Date: Mon, 6 Apr 2020 17:27:39 +0200 Subject: [PATCH 193/194] Ballistics - B_50BW_Ball_F updated (#7572) * 50bw_noformat * 50bw_noformat * 50bw_noformat * 50bw_noformat * 50bw_noformat --- addons/atragmx/functions/fnc_initGunList.sqf | 2 +- addons/ballistics/CfgAmmo.hpp | 26 +++++++++++--------- addons/ballistics/CfgMagazines.hpp | 2 +- addons/ballistics/CfgWeapons.hpp | 11 ++++++--- 4 files changed, 24 insertions(+), 17 deletions(-) diff --git a/addons/atragmx/functions/fnc_initGunList.sqf b/addons/atragmx/functions/fnc_initGunList.sqf index 853814510c..ff14b1f3d3 100644 --- a/addons/atragmx/functions/fnc_initGunList.sqf +++ b/addons/atragmx/functions/fnc_initGunList.sqf @@ -39,7 +39,7 @@ if (_resetGunList) then { ["12.7x54mm" , 299, 100, 0.3567550, -0.00019568, 6.60, 0, 2, 10, 120, 0, 0, 48.60, 12.7, 24.13, 1.050, 1, "ASM" , [[-15,297],[0,298],[10,299],[15,299],[25,301],[30,302],[35,303]] , [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true], - [".50 Beowulf" , 562, 100, 0.1425100, -0.00205896, 6.60, 0, 2, 10, 120, 0, 0, 21.71, 12.7, 50.80, 0.210, 1, "ASM" , [[-15,560],[0,561],[10,562],[15,562],[25,564],[30,565],[35,566]] , [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true], + [".50 Beowulf" , 549, 100, 0.1468500, -0.00209809, 6.60, 0, 2, 10, 120, 0, 0, 21.64, 12.7, 50.80, 0.210, 1, "ASM" , [[-15,547],[0,548],[10,549],[15,549],[25,551],[30,552],[35,553]] , [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true], [".408 CheyTac 305gr", 1059, 100, 0.0686329, -0.00065414, 7.37, 0, 2, 10, 120, 0, 0, 19.76, 10.4, 33.02, 0.569, 1, "ICAO", [[-15,1040],[0,1047],[10,1054],[15,1059],[25,1073],[30,1082],[35,1093]], [[0, 0.605], [1110, 0.569], [1500, 0.560], [1790, 0.551], [1990, 0.547], [2140, 0.545], [2300, 0.544]], true], [".408 CheyTac 419gr", 859, 100, 0.0816039, -0.00046249, 7.37, 0, 2, 10, 120, 0, 0, 27.15, 10.4, 33.02, 0.866, 1, "ICAO", [[-15,840],[0,847],[10,854],[15,859],[25,873],[30,882],[35,893]] , [[0, 0.872], [1440, 0.862], [1630, 0.859], [1870, 0.852], [2090, 0.843], [2230, 0.838], [2420, 0.833]], true], diff --git a/addons/ballistics/CfgAmmo.hpp b/addons/ballistics/CfgAmmo.hpp index 2b9aa75d0a..ec273e2c30 100644 --- a/addons/ballistics/CfgAmmo.hpp +++ b/addons/ballistics/CfgAmmo.hpp @@ -698,19 +698,21 @@ class CfgAmmo { ACE_muzzleVelocities[]={230, 250, 285}; ACE_barrelLengths[]={101.6, 127.0, 228.6}; }; - class B_50BW_Ball_F : BulletBase { - airFriction=-0.00205896; - ACE_caliber=12.7; - ACE_bulletLength=24.13; - ACE_bulletMass=21.7076; - 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.21}; - ACE_velocityBoundaries[]={}; - ACE_standardAtmosphere="ASM"; - ACE_dragModel=1; - ACE_muzzleVelocities[]={510, 550, 596}; - ACE_barrelLengths[]={304.8, 406.4, 609.6}; + + class B_50BW_Ball_F: BulletBase { // http://www.alexanderarms.com/images/pdfs/beowulf_ballistics.pdf#page=2 + airFriction = -0.002098; // According with the G1 BC 0.21 and the muzzle velocity 1800 ft/s: 549 m/s + ACE_caliber = 4.55; // instead 12.7 to match with the .50BW adv. ballistics (twist rate 20") overwritten by the Katiba rifle twist 8" until a BI fix + ACE_bulletLength = 24.13; + ACE_bulletMass = 21.64; // 334 grains + 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.21}; + ACE_velocityBoundaries[] = {}; + ACE_standardAtmosphere = "ASM"; + ACE_dragModel = 1; + ACE_muzzleVelocities[] = {550}; // at 21°C, at 15°C 549 m/s according with the 10Rnd_50BW_Mag_F initSpeep + ACE_barrelLengths[] = {304.8}; // 12" }; + class B_570x28_Ball: BulletBase { ACE_caliber = 5.7; // https://bobp.cip-bobp.org/uploads/tdcc/tab-i/tabical-en-page7.pdf ACE_bulletLength = 21.6; // http://blog.thejustnation.org/2011/04/5-7x28mm-ammo-review/ diff --git a/addons/ballistics/CfgMagazines.hpp b/addons/ballistics/CfgMagazines.hpp index 244909a6b7..87545a8a3c 100644 --- a/addons/ballistics/CfgMagazines.hpp +++ b/addons/ballistics/CfgMagazines.hpp @@ -454,7 +454,7 @@ class CfgMagazines { }; class 10Rnd_50BW_Mag_F: CA_Magazine { - initSpeed = 552; + initSpeed = 549; // according with the ACE_ammoTempMuzzleVelocityShifts at the normal conditions (15°C) }; class 11Rnd_45ACP_Mag: CA_Magazine { diff --git a/addons/ballistics/CfgWeapons.hpp b/addons/ballistics/CfgWeapons.hpp index d9914ba0b2..6ce743cd28 100644 --- a/addons/ballistics/CfgWeapons.hpp +++ b/addons/ballistics/CfgWeapons.hpp @@ -331,9 +331,14 @@ class CfgWeapons { // Type 115 class arifle_ARX_base_F: Rifle_Base_F { - ACE_barrelLength = 463.0; - ACE_barrelTwist = 228.6; - initSpeed = -0.984262; + ACE_barrelLength = 508.0; + ACE_barrelTwist = 203.2; + initSpeed = -1.0; + class Secondary: Rifle_Base_F { + ACE_barrelLength = 304.8; + ACE_barrelTwist = 508.0; + initSpeed = -1.0; + }; }; // Rifle_Short_Base_F From 64c30a94be201d58f806efc9ae4e805e013f4192 Mon Sep 17 00:00:00 2001 From: Filip Maciejewski Date: Tue, 7 Apr 2020 17:48:32 +0200 Subject: [PATCH 194/194] Map - Detect switchable flashlight attachments for map (#7578) --- addons/main/script_mod.hpp | 2 +- addons/map/XEH_PREP.hpp | 1 + addons/map/XEH_postInitClient.sqf | 2 + .../map/functions/fnc_getUnitFlashlights.sqf | 20 +-------- addons/map/functions/fnc_isFlashlight.sqf | 43 +++++++++++++++++++ 5 files changed, 48 insertions(+), 20 deletions(-) create mode 100644 addons/map/functions/fnc_isFlashlight.sqf diff --git a/addons/main/script_mod.hpp b/addons/main/script_mod.hpp index 73971e0970..927d54f72c 100644 --- a/addons/main/script_mod.hpp +++ b/addons/main/script_mod.hpp @@ -11,7 +11,7 @@ // MINIMAL required version for the Mod. Components can specify others.. #define REQUIRED_VERSION 1.96 -#define REQUIRED_CBA_VERSION {3,14,0} +#define REQUIRED_CBA_VERSION {3,15,0} #ifdef COMPONENT_BEAUTIFIED #define COMPONENT_NAME QUOTE(ACE3 - COMPONENT_BEAUTIFIED) diff --git a/addons/map/XEH_PREP.hpp b/addons/map/XEH_PREP.hpp index af6e815fd7..8e2094c29b 100644 --- a/addons/map/XEH_PREP.hpp +++ b/addons/map/XEH_PREP.hpp @@ -13,3 +13,4 @@ PREP(simulateMapLight); PREP(switchFlashlight); PREP(updateMapEffects); PREP(initMainMap); +PREP(isFlashlight); diff --git a/addons/map/XEH_postInitClient.sqf b/addons/map/XEH_postInitClient.sqf index 6cf08cc7f3..a30da81a40 100644 --- a/addons/map/XEH_postInitClient.sqf +++ b/addons/map/XEH_postInitClient.sqf @@ -8,6 +8,8 @@ LOG(MSG_INIT); // Calculate the maximum zoom allowed for this map call FUNC(determineZoom); +GVAR(flashlights) = [] call CBA_fnc_createNamespace; + ["ace_settingsInitialized", { if (isMultiplayer && {GVAR(DefaultChannel) != -1}) then { //Set the chat channel once the map has finished loading diff --git a/addons/map/functions/fnc_getUnitFlashlights.sqf b/addons/map/functions/fnc_getUnitFlashlights.sqf index d8f537380d..f1c72e74c5 100644 --- a/addons/map/functions/fnc_getUnitFlashlights.sqf +++ b/addons/map/functions/fnc_getUnitFlashlights.sqf @@ -17,22 +17,4 @@ params ["_unit"]; -private _flashlights = []; -private _cfgWeapons = configFile >> "CfgWeapons"; - -{ - private _weaponConfig = _cfgWeapons >> _x; - if ( - -1 < [ - _weaponConfig >> "ItemInfo" >> "FlashLight", - _weaponConfig >> "FlashLight" - ] findIf { - isText (_x >> "ACE_Flashlight_Colour") - || {!(getArray (_x >> "ambient") in [[], [0,0,0]])} - } - ) then { - _flashlights pushBack _x; - }; -} forEach ([_unit, true] call CBA_fnc_uniqueUnitItems); - -_flashlights +([_unit, true] call CBA_fnc_uniqueUnitItems) select {_x call FUNC(isFlashlight)} // return diff --git a/addons/map/functions/fnc_isFlashlight.sqf b/addons/map/functions/fnc_isFlashlight.sqf new file mode 100644 index 0000000000..3d75803fc3 --- /dev/null +++ b/addons/map/functions/fnc_isFlashlight.sqf @@ -0,0 +1,43 @@ +#include "script_component.hpp" +/* + * Author: veteran29 + * Checks if the given item is a flashlight. + * + * Arguments: + * 0: Item Classname + * + * Return Value: + * Is flashlight + * + * Example: + * ["acc_flashlight"] call ace_map_fnc_isFlashlight + * + * Public: No + */ + +params [["_class", "", [""]]]; + +private _isFlashlight = GVAR(flashlights) getVariable _class; + +if (isNil "_isFlashlight") then { + private _items = ([_class] + (_class call CBA_fnc_switchableAttachments)); + private _cfgWeapons = configFile >> "CfgWeapons"; + + // if this item or any of the switchable items is a flashlight + _isFlashlight = _items findIf { + private _weaponConfig = _cfgWeapons >> _x; + + [ + _weaponConfig >> "ItemInfo" >> "FlashLight", + _weaponConfig >> "FlashLight" + ] findIf { + isText (_x >> "ACE_Flashlight_Colour") + || {!(getArray (_x >> "ambient") in [[], [0,0,0]])} + } != -1 // return + } != -1; + + // cache value + GVAR(flashlights) setVariable [_class, _isFlashlight]; +}; + +_isFlashlight // return