Files
wnsrc/addons/eprotect_1.3.15/lua/e_protect/modules/sv_fakenets.lua
lifestorm 324f19217d Upload
2024-08-05 18:40:29 +03:00

60 lines
1.7 KiB
Lua

--[[
| This file was obtained through the combined efforts
| of Madbluntz & Plymouth Antiquarian Society.
|
| Credits: lifestorm, Gregory Wayne Rossel JR.,
| Maloy, DrPepper10 @ RIP, Atle!
|
| Visit for more: https://plymouth.thetwilightzone.ru/
--]]
eProtect = eProtect or {}
eProtect.data = eProtect.data or {}
eProtect.data.fakeNets = eProtect.data.fakeNets or {}
local generatedOnes = {}
eProtect.getRandUniqueNum = function()
local rand = math.random(1, 999999)
if generatedOnes[rand] then return eProtect.getRandUniqueNum() end
generatedOnes[rand] = true
return rand
end
eProtect.createFakeNets = function()
if eProtect.config["disabledModules"]["fake_exploits"] then return end
local createdNets = 0
local maxFakeNets = 3
local mixedTbl = {}
for k,v in pairs(eProtect.data.badNets) do
mixedTbl[eProtect.getRandUniqueNum()] = k
end
for k, netstring in pairs(mixedTbl) do
local validateNet = tobool(util.NetworkStringToID(netstring))
if validateNet then continue end
createdNets = createdNets + 1
eProtect.data.fakeNets[netstring] = eProtect.data.fakeNets[netstring] or eProtect.data.badNets[netstring]
eProtect.data.fakeNets[netstring].enabled = true
util.AddNetworkString(netstring)
net.Receive(netstring, function(_, ply)
eProtect.logDetectionHandeler(ply, "fake-exploit", netstring, 2)
eProtect.punish(ply, 2, slib.getLang("eprotect", eProtect.config["language"], "banned-net-exploitation"))
end)
if maxFakeNets > 0 and (createdNets >= maxFakeNets) then break end
end
if eProtect.queueNetworking then
eProtect.queueNetworking(nil, "fakeNets")
end
end
eProtect.createFakeNets()