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"];