diff --git a/SQF/dayz_code/Configs/CfgWeapons/Rifles/G3.hpp b/SQF/dayz_code/Configs/CfgWeapons/Rifles/G3.hpp
index 60fb27f1d..afec1910a 100644
--- a/SQF/dayz_code/Configs/CfgWeapons/Rifles/G3.hpp
+++ b/SQF/dayz_code/Configs/CfgWeapons/Rifles/G3.hpp
@@ -1,3 +1,24 @@
+#define G3_ACOG modelOptics = "\Ca\weapons_E\SCAR\ACOG_TA31_optic_4x.p3d";\
+class OpticsModes\
+{\
+ class ACOG\
+ {\
+ opticsID = 1;\
+ useModelOptics = true;\
+ opticsFlare = true;\
+ opticsDisablePeripherialVision = true;\
+ opticsZoomMin = 0.0623;\
+ opticsZoomMax = 0.0623;\
+ opticsZoomInit = 0.0623;\
+ distanceZoomMin = 300;\
+ distanceZoomMax = 300;\
+ memoryPointCamera = "opticView";\
+ visionMode[] = {"Normal"};\
+ opticsPPEffects[] = {"OpticsCHAbera3","OpticsBlur3"};\
+ cameraDir = "";\
+ };\
+}
+
class G3_DZ: FNFAL_DZ
{
scope = 2;
@@ -10,30 +31,30 @@ class G3_DZ: FNFAL_DZ
fireLightDuration = 0.000;
fireLightIntensity = 0.000;
drySound[] = {"Ca\sounds\Weapons\rifles\dry",db-50,1,10};
- reloadMagazineSound[] = {"ca\sounds\weapons\rifles\reload-m16-3",db-25,1,25};
+ reloadMagazineSound[] = {"\C1987_G3\sound\G3_Reload.wss",0.056234,1,20};
distanceZoomMin = 50;
distanceZoomMax = 50;
handAnim[] = {"OFP2_ManSkeleton"};
modes[] = {Single, FullAuto};
class Single : Mode_SemiAuto
{
- begin1[] = {"rh_mgswp\sound\scarAk", db5, 1,1000};
- soundBegin[] = {begin1,1};
+ begin1[] = {"\C1987_G3\sound\G3.wss",1.778279,1,1000};
+ soundBegin[] = {"begin1",1};
reloadTime = 0.07;
recoil = "recoil_single_primary_3outof10";
recoilProne = "recoil_single_primary_prone_3outof10";
dispersion = 0.003;
minRange = 2;
minRangeProbab = 0.25;
- midRange = 20;
+ midRange = 200;
midRangeProbab = 0.7;
- maxRange = 50;
+ maxRange = 500;
maxRangeProbab = 0.05;
};
class FullAuto : Mode_FullAuto
{
- begin1[] = {"rh_mgswp\sound\scarAk", db5, 1,1000};
- soundBegin[] = {begin1,1};
+ begin1[] = {"\C1987_G3\sound\G3.wss",1.778279,1,1000};
+ soundBegin[] = {"begin1",1};
soundContinuous = 0;
reloadTime = 0.1;
ffCount = 1;
@@ -43,10 +64,142 @@ class G3_DZ: FNFAL_DZ
dispersion = 0.003; //0.007;
minRange = 0;
minRangeProbab = 0.20;
- midRange = 7;
+ midRange = 150;
midRangeProbab = 0.7;
- maxRange = 15;
+ maxRange = 400;
maxRangeProbab = 0.05;
};
class Attachments {};
-};
\ No newline at end of file
+};
+
+class G3A3_DZ: G3_DZ
+{
+ displayName = $STR_DZ_WPN_G3A3_NAME;
+ model = "\C1987_G3\g3.p3d";
+ picture = "\C1987_G3\equip\g3.paa";
+
+ class Attachments
+ {
+ Attachment_CCO = "G3A3_CCO_DZ";
+ Attachment_Holo = "G3A3_HOLO_DZ";
+ Attachment_ACOG = "G3A3_ACOG_DZ";
+ };
+};
+
+class G3A3_CCO_DZ: G3A3_DZ
+{
+ displayName = $STR_DZ_WPN_G3A3_CCO_NAME;
+ model = "\C1987_G3\g3_aimshot.p3d";
+ picture = "\C1987_G3\equip\g3_aim.paa";
+ class Attachments {};
+
+ class ItemActions
+ {
+ class RemoveCCO
+ {
+ text = $STR_DZ_ATT_CCO_RMVE;
+ script = "; ['Attachment_CCO',_id,'G3A3_DZ'] call player_removeAttachment";
+ };
+ };
+};
+
+class G3A3_Holo_DZ: G3A3_DZ
+{
+ displayName = $STR_DZ_WPN_G3A3_HOLO_NAME;
+ model = "\C1987_G3\g3_eotech.p3d";
+ picture = "\C1987_G3\equip\g3_eotech.paa";
+ class Attachments {};
+
+ class ItemActions
+ {
+ class RemoveHolo
+ {
+ text = $STR_DZ_ATT_HOLO_RMVE;
+ script = "; ['Attachment_Holo',_id,'G3A3_DZ'] call player_removeAttachment";
+ };
+ };
+};
+
+class G3A3_ACOG_DZ: G3A3_DZ
+{
+ displayName = $STR_DZ_WPN_G3A3_ACOG_NAME;
+ model = "\C1987_G3\g3_acog.p3d";
+ picture = "\C1987_G3\equip\g3_acog.paa";
+ class Attachments {};
+ G3_ACOG;
+
+ class ItemActions
+ {
+ class RemoveACOG
+ {
+ text = $STR_DZ_ATT_ACOG_RMVE;
+ script = "; ['Attachment_ACOG',_id,'G3A3_DZ'] call player_removeAttachment";
+ };
+ };
+};
+
+class G3_SG1_DZ: G3A3_DZ
+{
+ displayName = $STR_DZ_WPN_G3_SG1_NAME;
+ model = "\C1987_G3\g3sg1.p3d";
+ picture = "\C1987_G3\equip\g3sg1.paa";
+ modelOptics = "\ca\weapons\2Dscope_MilDot_10";
+ opticsPPEffects[] = {"OpticsCHAbera1","OpticsBlur1"};
+ opticsZoomMin = 0.029624;
+ opticsZoomMax = 0.09222;
+ opticsZoomInit = 0.09222;
+ distanceZoomMin = 329;
+ distanceZoomMax = 329;
+ optics = 1;
+ class Single : Mode_SemiAuto
+ {
+ begin1[] = {"\C1987_G3\sound\G3.wss",1.778279,1,1000};
+ soundBegin[] = {"begin1",1};
+ reloadTime = 0.07;
+ recoil = "recoil_single_primary_3outof10";
+ recoilProne = "recoil_single_primary_prone_3outof10";
+ dispersion = 0.003;
+ minRange = 2;
+ minRangeProbab = 0.25;
+ midRange = 400;
+ midRangeProbab = 0.7;
+ maxRange = 800;
+ maxRangeProbab = 0.05;
+ };
+ class FullAuto : Mode_FullAuto
+ {
+ begin1[] = {"\C1987_G3\sound\G3.wss",1.778279,1,1000};
+ soundBegin[] = {"begin1",1};
+ soundContinuous = 0;
+ reloadTime = 0.1;
+ ffCount = 1;
+ recoil = "recoil_auto_primary_3outof10";
+ recoilProne = "recoil_auto_primary_prone_3outof10";
+ aiRateOfFire = 0.001;
+ dispersion = 0.003; //0.007;
+ minRange = 0;
+ minRangeProbab = 0.20;
+ midRange = 350;
+ midRangeProbab = 0.7;
+ maxRange = 700;
+ maxRangeProbab = 0.05;
+ };
+ class Attachments {};
+};
+
+class G3_SG1_Bipod_DZ: G3_SG1_DZ
+{
+ displayName = $STR_DZ_WPN_G3_SG1_BIPOD_NAME;
+ model = "\C1987_G3\g3sg1_bipod.p3d";
+ picture = "\C1987_G3\equip\g3sg1_bipod.paa";
+ class Single : Single
+ {
+ recoilProne = "recoil_single_primary_prone_1outof10";
+ };
+ class FullAuto : FullAuto
+ {
+ recoilProne = "recoil_auto_primary_prone_2outof10";
+ };
+};
+
+#undef G3_ACOG
\ No newline at end of file
diff --git a/SQF/dayz_code/external/R3F_Realism/R3F_Weight/Weapons/Rifles.hpp b/SQF/dayz_code/external/R3F_Realism/R3F_Weight/Weapons/Rifles.hpp
index d602e519f..4e62f7358 100644
--- a/SQF/dayz_code/external/R3F_Realism/R3F_Weight/Weapons/Rifles.hpp
+++ b/SQF/dayz_code/external/R3F_Realism/R3F_Weight/Weapons/Rifles.hpp
@@ -2282,6 +2282,30 @@ class G3_DZ
{
weight = 6.1;
};
+class G3A3_DZ
+{
+ weight = 6.1;
+};
+class G3A3_CCO_DZ
+{
+ weight = 6.2;
+};
+class G3A3_Holo_DZ
+{
+ weight = 6.2;
+};
+class G3A3_ACOG_DZ
+{
+ weight = 6.3;
+};
+class G3_SG1_DZ
+{
+ weight = 6.5;
+};
+class G3_SG1_Bipod_DZ
+{
+ weight = 6.7;
+};
class SCAR_H_AK_DZ
{
weight = 4.5;
diff --git a/SQF/dayz_code/stringtable.xml b/SQF/dayz_code/stringtable.xml
index 56cb426ac..63f805b4b 100644
--- a/SQF/dayz_code/stringtable.xml
+++ b/SQF/dayz_code/stringtable.xml
@@ -18306,13 +18306,31 @@
- G3
+ G3A1
Assault Rifle <br/>Caliber: 7.62x51mm
Sturmgewehr <br/>Kaliber: 7.62x51mm
Штурмовая винтовка<br/>Калибр: 7.62x51мм
+
+ G3A3
+
+
+ G3A3 CCO
+
+
+ G3A3 Holo
+
+
+ G3A3 ACOG
+
+
+ G3 SG1
+
+
+ G3 SG1 Bipod
+
diff --git a/SQF/dayz_server/compile/server_playerSync.sqf b/SQF/dayz_server/compile/server_playerSync.sqf
index a0695a6b5..9bce701af 100644
--- a/SQF/dayz_server/compile/server_playerSync.sqf
+++ b/SQF/dayz_server/compile/server_playerSync.sqf
@@ -67,7 +67,7 @@ if (!isNil "_magazines") then {
_class = _x select 0;
};
if (_class in _magazines) then {
- local _MatchedCount = {_compare = if (typeName _x == "ARRAY") then {_x select 0;} else {_x}; _compare == _class} count _magTemp;
+ local _MatchedCount = {local _compare = if (typeName _x == "ARRAY") then {_x select 0;} else {_x}; _compare == _class} count _magTemp;
local _CountedActual = {_x == _class} count _magazines;
if (_MatchedCount > _CountedActual) then {
_magTemp set [_forEachIndex, "0"];