diff --git a/source/server/weapons/weapon_core.qc b/source/server/weapons/weapon_core.qc index ce2ede4..c51cb12 100644 --- a/source/server/weapons/weapon_core.qc +++ b/source/server/weapons/weapon_core.qc @@ -1451,7 +1451,10 @@ void(float side) W_Fire = if (self.zoom == 1 && W_SpreadAffectedByADS(self.weapon)) { spread *= 0.02; } else if (self.zoom == 2) { - spread = spread * 0.05; + if (W_HighPrecisionWhenADS(self.weapon)) + spread = 0; + else + spread *= 0.15; } if (self.downed) diff --git a/source/shared/weapon_defines.qc b/source/shared/weapon_defines.qc index 11218cc..c10f5d1 100644 --- a/source/shared/weapon_defines.qc +++ b/source/shared/weapon_defines.qc @@ -3702,6 +3702,21 @@ float(float weapon, float stance) CrossHairMaxSpread = return crosshair_spread; } +float(float wep) W_HighPrecisionWhenADS = +{ + switch (wep) { + case W_KAR: + case W_ARMAGEDDON: + case W_KAR_SCOPE: + case W_HEADCRACKER: + case W_PTRS: + case W_PENETRATOR: + return true; + default: + return false; + } +} + float(float wep) W_SpreadAffectedByADS = { switch (wep) {