add sborka
This commit is contained in:
142
garrysmod/gamemodes/militaryrp/plugins/leyhitreg/sh_plugin.lua
Normal file
142
garrysmod/gamemodes/militaryrp/plugins/leyhitreg/sh_plugin.lua
Normal file
@@ -0,0 +1,142 @@
|
||||
PLUGIN.name = "LeyHitReg"
|
||||
PLUGIN.author = "Ley (Портирован для Helix)"
|
||||
PLUGIN.description = "Улучшенная система регистрации попаданий для точной стрельбы"
|
||||
|
||||
-- Конфигурация системы
|
||||
LeyHitreg = LeyHitreg or {}
|
||||
|
||||
-- Настройки через ix.config
|
||||
ix.config.Add("leyHitregEnabled", true, "Включить систему улучшенной регистрации попаданий", nil, {
|
||||
category = "LeyHitReg"
|
||||
})
|
||||
|
||||
ix.config.Add("leyHitregShotDirForceDisabled", false, "Принудительно отключить направление выстрела (для тестирования проблемных SWEP баз)", nil, {
|
||||
category = "LeyHitReg"
|
||||
})
|
||||
|
||||
ix.config.Add("leyHitregDisableSecurityChecks", false, "Отключить проверки безопасности выстрелов", nil, {
|
||||
category = "LeyHitReg"
|
||||
})
|
||||
|
||||
ix.config.Add("leyHitregIgnoreCanNextPrimaryAttack", true, "Игнорировать задержку между выстрелами (рекомендуется)", nil, {
|
||||
category = "LeyHitReg"
|
||||
})
|
||||
|
||||
ix.config.Add("leyHitregNoSpread", false, "[DEBUG] Включить режим без разброса для всех", nil, {
|
||||
category = "LeyHitReg - Debug"
|
||||
})
|
||||
|
||||
ix.config.Add("leyHitregShowActualHit", false, "[DEBUG] Показывать где на самом деле попала пуля (без разброса)", nil, {
|
||||
category = "LeyHitReg - Debug"
|
||||
})
|
||||
|
||||
ix.config.Add("leyHitregShowSpreadedHit", false, "[DEBUG] Показывать где на самом деле попала пуля (с разбросом)", nil, {
|
||||
category = "LeyHitReg - Debug"
|
||||
})
|
||||
|
||||
ix.config.Add("leyHitregLogFixedBullets", false, "[DEBUG] Логировать количество исправленных пуль", nil, {
|
||||
category = "LeyHitReg - Debug"
|
||||
})
|
||||
|
||||
ix.config.Add("leyHitregLogInvalidShots", false, "[DEBUG] Логировать невалидные выстрелы", nil, {
|
||||
category = "LeyHitReg - Debug"
|
||||
})
|
||||
|
||||
-- Применяем настройки к LeyHitreg
|
||||
LeyHitreg.ShotDirForceDisabled = ix.config.Get("leyHitregShotDirForceDisabled", false)
|
||||
LeyHitreg.DisableSecurityChecks = ix.config.Get("leyHitregDisableSecurityChecks", false)
|
||||
LeyHitreg.IgnoreCanNextPrimaryAttack = ix.config.Get("leyHitregIgnoreCanNextPrimaryAttack", true)
|
||||
|
||||
-- Debug настройки
|
||||
LeyHitreg.Disabled = not ix.config.Get("leyHitregEnabled", true)
|
||||
LeyHitreg.DisabledOnlyOnClient = false
|
||||
LeyHitreg.NoSpread = ix.config.Get("leyHitregNoSpread", false)
|
||||
LeyHitreg.ShowActualShotHit = ix.config.Get("leyHitregShowActualHit", false)
|
||||
LeyHitreg.ShowActualShotSpreadedHit = ix.config.Get("leyHitregShowSpreadedHit", false)
|
||||
LeyHitreg.BrokenDefaultSpread = false
|
||||
LeyHitreg.LogHitgroupMismatches = false
|
||||
LeyHitreg.LogFixedBullets = ix.config.Get("leyHitregLogFixedBullets", false)
|
||||
LeyHitreg.LogInvalidFOV = false
|
||||
LeyHitreg.LogInvalidShots = ix.config.Get("leyHitregLogInvalidShots", false)
|
||||
LeyHitreg.BulletAimbot = false
|
||||
LeyHitreg.LogTargetBone = false
|
||||
LeyHitreg.HitScanDisabled = false
|
||||
LeyHitreg.BulletOverwriteDisabled = false
|
||||
LeyHitreg.AnnounceClientHits = false
|
||||
LeyHitreg.DisableLagComp = false
|
||||
|
||||
if LeyHitreg.Disabled then
|
||||
print("[LeyHitReg] Отключен через настройки")
|
||||
return
|
||||
end
|
||||
|
||||
-- Отключение конфликтующих систем хитрега
|
||||
function LeyHitreg:DisableMoatHitreg()
|
||||
if MOAT_HITREG then
|
||||
MOAT_HITREG.MaxPing = 1
|
||||
end
|
||||
|
||||
if ConVarExists("moat_alt_hitreg") then
|
||||
RunConsoleCommand("moat_alt_hitreg", "0")
|
||||
end
|
||||
|
||||
if SHR then
|
||||
if SHR.Config then
|
||||
SHR.Config.Enabled = false
|
||||
SHR.Config.ClientDefault = 0
|
||||
end
|
||||
hook.Remove("EntityFireBullets", "SHR.FireBullets")
|
||||
hook.Remove("EntityFireBullets", "a")
|
||||
net.Receivers["shr"] = function() end
|
||||
end
|
||||
end
|
||||
|
||||
function PLUGIN:Initialize()
|
||||
print("[LeyHitReg] Загрузка системы регистрации попаданий...")
|
||||
|
||||
-- Отключаем конфликтующие системы
|
||||
LeyHitreg:DisableMoatHitreg()
|
||||
|
||||
print("[LeyHitReg] Система загружена!")
|
||||
end
|
||||
|
||||
-- Обновление настроек при изменении конфига
|
||||
function PLUGIN:OnConfigChanged(key, oldValue, newValue)
|
||||
if key == "leyHitregEnabled" then
|
||||
LeyHitreg.Disabled = not newValue
|
||||
print("[LeyHitReg] Система " .. (newValue and "включена" or "отключена"))
|
||||
elseif key == "leyHitregShotDirForceDisabled" then
|
||||
LeyHitreg.ShotDirForceDisabled = newValue
|
||||
elseif key == "leyHitregDisableSecurityChecks" then
|
||||
LeyHitreg.DisableSecurityChecks = newValue
|
||||
elseif key == "leyHitregIgnoreCanNextPrimaryAttack" then
|
||||
LeyHitreg.IgnoreCanNextPrimaryAttack = newValue
|
||||
elseif key == "leyHitregNoSpread" then
|
||||
LeyHitreg.NoSpread = newValue
|
||||
elseif key == "leyHitregShowActualHit" then
|
||||
LeyHitreg.ShowActualShotHit = newValue
|
||||
elseif key == "leyHitregShowSpreadedHit" then
|
||||
LeyHitreg.ShowActualShotSpreadedHit = newValue
|
||||
elseif key == "leyHitregLogFixedBullets" then
|
||||
LeyHitreg.LogFixedBullets = newValue
|
||||
elseif key == "leyHitregLogInvalidShots" then
|
||||
LeyHitreg.LogInvalidShots = newValue
|
||||
end
|
||||
end
|
||||
|
||||
-- Загрузка модулей
|
||||
ix.util.Include("leyhitreg/shared/spreadsystem/bulletspread.lua")
|
||||
ix.util.Include("leyhitreg/shared/spreadsystem/firebullets.lua")
|
||||
ix.util.Include("leyhitreg/shared/disablelagcomp/disablelagcomp.lua")
|
||||
ix.util.Include("leyhitreg/shared/workarounds/workarounds.lua")
|
||||
ix.util.Include("leyhitreg/shared/workarounds/swepbases.lua")
|
||||
|
||||
ix.util.Include("leyhitreg/client/sendshots/sendshots.lua")
|
||||
ix.util.Include("leyhitreg/client/sendshots/fetchspreads.lua")
|
||||
|
||||
ix.util.Include("leyhitreg/server/bulletprocessing/hitscan.lua")
|
||||
ix.util.Include("leyhitreg/server/bulletprocessing/processbullet.lua")
|
||||
ix.util.Include("leyhitreg/server/damageinfo/scaledamagehack.lua")
|
||||
ix.util.Include("leyhitreg/server/damageinfo/fixscaling.lua")
|
||||
ix.util.Include("leyhitreg/server/receiveshotinfo/receiveshotinfo.lua")
|
||||
ix.util.Include("leyhitreg/server/receiveshotinfo/shotvalidator.lua")
|
||||
Reference in New Issue
Block a user