Jump to content

اكواد مهمه لسيرفر تكيتك لمنع هكرز سيرفرات تكتيك anti cheat


Recommended Posts

لاحظت فتره لفاتت سيرفرات تكيتك يستعملون الهكرز هادي اكوادد مهمه سيرفرات تكتيك 

لي فتره ع برمحة فا هاذا كود 

اذا في خطاء صلحنوه لي 

-- منع God Mode
addEventHandler("onPlayerDamage", root, function(attacker, weapon, bodypart, loss)
    if loss == 0 then
        -- إذا لم يخسر اللاعب نقاط الحياة، افترض وجود God Mode
        kickPlayer(source, "God Mode is not allowed!")
    end
end)


--------------------------

-- مراقبة Auto Headshot
addEventHandler("onClientPlayerWeaponFire", localPlayer, function(weapon, ammo, ammoInClip, hitX, hitY, hitZ, hitElement)
    if hitElement and getElementType(hitElement) == "player" then
        local bodypart = getPedBonePosition(hitElement, 3) -- الرأس
        local dist = getDistanceBetweenPoints3D(hitX, hitY, hitZ, bodypart[1], bodypart[2], bodypart[3])
        if dist < 0.2 then -- مسافة صغيرة جدًا تعني headshot
            triggerServerEvent("reportHeadshot", localPlayer, hitElement)
        end
    end
end)

-- منع الطيران
addEventHandler("onClientRender", root, function()
    local x, y, z = getElementPosition(localPlayer)
    local groundZ = getGroundPosition(x, y, z)
    if z - groundZ > 5 then -- إذا كان اللاعب مرتفعًا جدًا
        triggerServerEvent("kickFlyingPlayer", localPlayer)
    end
end)
          
-- مراقبة Auto Headshot
addEventHandler("onClientPlayerWeaponFire", localPlayer, function(weapon, ammo, ammoInClip, hitX, hitY, hitZ, hitElement)
    if hitElement and getElementType(hitElement) == "player" then
        local bodypart = getPedBonePosition(hitElement, 3) -- الرأس
        local dist = getDistanceBetweenPoints3D(hitX, hitY, hitZ, bodypart[1], bodypart[2], bodypart[3])
        if dist < 0.2 then -- مسافة صغيرة جدًا تعني headshot
            triggerServerEvent("reportHeadshot", localPlayer, hitElement)
        end
    end
end)

-- منع الطيران
addEventHandler("onClientRender", root, function()
    local x, y, z = getElementPosition(localPlayer)
    local groundZ = getGroundPosition(x, y, z)
    if z - groundZ > 5 then -- إذا كان اللاعب مرتفعًا جدًا
        triggerServerEvent("kickFlyingPlayer", localPlayer)
    end
end)


-- Constants for anti-fly detection
local MAX_ALLOWED_HEIGHT = 50 -- Maximum height a player can reach normally
local CHECK_INTERVAL = 1000 -- Time interval in milliseconds for checking player position
local MAX_VELOCITY = 1.5 -- Maximum speed in any direction

-- Function to check players' positions and velocities
function checkForFlyHack()
    for _, player in ipairs(getElementsByType("player")) do
        if isElement(player) and not isPedInVehicle(player) then
            local x, y, z = getElementPosition(player)
            local velocityX, velocityY, velocityZ = getElementVelocity(player)

            -- Check if the player is above the allowed height
            if z > MAX_ALLOWED_HEIGHT then
                outputChatBox("Fly hack detected for " .. getPlayerName(player) .. "! Height: " .. tostring(z), root, 255, 0, 0)
                kickPlayer(player, "Fly hack detected.")
            end

            -- Check if the player's velocity exceeds the maximum allowed
            if math.abs(velocityX) > MAX_VELOCITY or math.abs(velocityY) > MAX_VELOCITY or math.abs(velocityZ) > MAX_VELOCITY then
                outputChatBox("Fly hack detected for " .. getPlayerName(player) .. "! Unusual velocity.", root, 255, 0, 0)
                kickPlayer(player, "Fly hack detected.")
            end
        end
    end
end

-- Set a timer to repeatedly check for hacks
setTimer(checkForFlyHack, CHECK_INTERVAL, 0)


-- Constants for anti-teleport
local MAX_TELEPORT_DISTANCE = 50 -- Maximum distance players can move within 1 second

function checkForTeleportHack()
    for _, player in ipairs(getElementsByType("player")) do
        if isElement(player) then
            local currentPosition = {getElementPosition(player)}
            local lastPosition = getElementData(player, "lastTeleportPosition") or currentPosition

            -- Calculate distance moved
            local dx = currentPosition[1] - lastPosition[1]
            local dy = currentPosition[2] - lastPosition[2]
            local dz = currentPosition[3] - lastPosition[3]
            local distance = math.sqrt(dx^2 + dy^2 + dz^2)

            -- Detect teleport hack
            if distance > MAX_TELEPORT_DISTANCE then
                outputChatBox("Teleport hack detected for " .. getPlayerName(player) .. "! Distance: " .. tostring(distance), root, 255, 0, 0)
                kickPlayer(player, "Teleport hack detected.")
            end

            -- Update last position
            setElementData(player, "lastTeleportPosition", currentPosition)
        end
    end
end

setTimer(checkForTeleportHack, 1000, 0)
 -- Function to monitor players' health
function checkForHealthHack()
    for _, player in ipairs(getElementsByType("player")) do
        if isElement(player) then
            local health = getElementHealth(player)

            -- Check if health exceeds 100
            if health > 100 then
                outputChatBox("Health hack detected for " .. getPlayerName(player) .. "! Health: " .. tostring(health), root, 255, 0, 0)
                setElementHealth(player, 100) -- Reset health to normal
                kickPlayer(player, "Health hack detected.")
            end
        end
    end
end

setTimer(checkForHealthHack, 2000, 0)


Ffunction checkForInfiniteAmmo()
    for _, player in ipairs(getElementsByType("player")) do
        if isElement(player) then
            for slot = 0, 12 do
                local weapon = getPedWeapon(player, slot)
                if weapon ~= 0 then
                    local ammo = getPedTotalAmmo(player, slot)

                    -- Check if ammo is unusually high
                    if ammo > 5000 then
                        outputChatBox("Infinite ammo hack detected for " .. getPlayerName(player) .. "! Ammo: " .. tostring(ammo), root, 255, 0, 0)
                        takeWeapon(player, weapon)
                        kickPlayer(player, "Infinite ammo hack detected.")
                    end
                end
            end
        end
    end
end

setTimer(checkForInfiniteAmmo, 3000, 0)

-- Maximum allowed jump height
local MAX_JUMP_HEIGHT = 3 -- Customize as per server needs
local JUMP_CHECK_INTERVAL = 1000 -- Check interval in milliseconds

-- Function to detect jump hacks
function detectJumpHack()
    for _, player in ipairs(getElementsByType("player")) do
        if isElement(player) and not isPedInVehicle(player) then
            local x, y, z = getElementPosition(player) -- Get current player position
            local lastZ = getElementData(player, "lastZ") or z -- Get last known Z-position
            
            -- Check if the player has jumped beyond the allowed height
            if (z - lastZ) > MAX_JUMP_HEIGHT then
                outputChatBox("Jump hack detected for " .. getPlayerName(player) .. "!", root, 255, 0, 0)
                kickPlayer(player, "Jump hack detected.") -- Kick the player for cheating
            end

            -- Update the last Z position for the player
            setElementData(player, "lastZ", z)
        end
    end
end

-- Timer to periodically run the jump hack detection function
setTimer(detectJumpHack, JUMP_CHECK_INTERVAL, 0)

-- Event handler to initialize player data when they join
function initializePlayerData()
    local x, y, z = getElementPosition(source) -- Get initial position
    setElementData(source, "lastZ", z) -- Store initial Z-position
end

addEventHandler("onPlayerJoin", root, initializePlayerData)

-- Event handler to clean up data when a player quits
function cleanupPlayerData()
    removeElementData(source, "lastZ") -- Clean up stored data
end

addEventHandler("onPlayerQuit", root, cleanupPlayerData) --- ملف فيه كلنت و سيرفر عدل ملف كويس و لو في خطاء صالحه 

 

-- Function to detect health hack
function detectHealthHack()
    for _, player in ipairs(getElementsByType("player")) do
        if isElement(player) then
            local currentHealth = getElementHealth(player)
            local lastHealth = getElementData(player, "lastHealth") or currentHealth -- Retrieve stored health or set to current
            
            -- If current health is greater than the last health and within valid range
            if currentHealth > lastHealth and currentHealth <= 100 then
                outputChatBox("Health hack detected for " .. getPlayerName(player) .. "!", root, 255, 0, 0)
                kickPlayer(player, "Health hack detected.") -- Kick the player
            end

            -- Update the player's health data
            setElementData(player, "lastHealth", currentHealth)
        end
    end
end

-- Initialize player data when they join
function initializePlayerData()
    local health = getElementHealth(source) -- Get current health
    setElementData(source, "lastHealth", health) -- Set initial health data
end

addEventHandler("onPlayerJoin", root, initializePlayerData)

-- Clean up player data when they quit
function cleanupPlayerData()
    removeElementData(source, "lastHealth") -- Remove stored health data
end

addEventHandler("onPlayerQuit", root, cleanupPlayerData)

-- Periodically check for health hacks
setTimer(detectHealthHack, 1000, 0)

 

local MAX_SPEED = 0.15 -- Maximum allowed speed (in m/s)

function detectSpeedHack()
    for _, player in ipairs(getElementsByType("player")) do
        if isElement(player) then
            local vx, vy, vz = getElementVelocity(player)
            local speed = math.sqrt(vx^2 + vy^2 + vz^2)

            if speed > MAX_SPEED then
                outputChatBox("Speed hack detected for " .. getPlayerName(player) .. "!", root, 255, 0, 0)
                kickPlayer(player, "Speed hack detected.")
            end
        end
    end
end

setTimer(detectSpeedHack, 1000, 0) -- Check every second


local AIMBOT_THRESHOLD = 5 -- Angle threshold in degrees

function detectAimbot()
    for _, player in ipairs(getElementsByType("player")) do
        if isElement(player) then
            local playerX, playerY, playerZ = getElementPosition(player)
            local target = getNearestPlayer(player)
            
            if target then
                local targetX, targetY, targetZ = getElementPosition(target)
                local angle = math.deg(math.atan2(targetY - playerY, targetX - playerX))

                -- Compare angle to player's view angle
                local playerAngle = math.deg(getPedRotation(player))
                local diff = math.abs(playerAngle - angle)

                if diff < AIMBOT_THRESHOLD then
                    outputChatBox("Possible aimbot detected for " .. getPlayerName(player) .. "!", root, 255, 0, 0)
                    kickPlayer(player, "Aimbot detection triggered.")
                end
            end
        end
    end
end

setTimer(detectAimbot, 1000, 0)

 

-- Continuous Anti-LuaExecutor Script for MTA: San Andreas

local suspiciousFunctions = {
    "loadstring",      -- Suspicious function often used by executors
    "dofile",          -- Another function that could be used by exploiters
    "debug",           -- Sometimes used for exploit-related actions
}

-- List of players to watch
local playersToWatch = {}

-- Function to check for unknown or suspicious functions in a player's environment
function checkPlayerForSuspiciousCode(player)
    for _, funcName in ipairs(suspiciousFunctions) do
        local func = getElementData(player, funcName)  -- Check if the function is accessible
        if func then
            -- If a suspicious function is found, handle the player
            outputChatBox("Suspicious activity detected! Reporting: " .. getPlayerName(player), player, 255, 0, 0)
            kickPlayer(player, "Suspicious activity detected: Lua Executor")
            logExploitAttempt(player)  -- Optionally log the exploit
        end
    end
end

-- Function to continuously monitor players
function monitorPlayers()
    for _, player in ipairs(getElementsByType("player")) do
        checkPlayerForSuspiciousCode(player)  -- Check if this player is executing suspicious code
    end
end

-- Log exploit attempts for further investigation
function logExploitAttempt(player)
    local logFile = fileOpen("exploit_log.txt", true)
    if logFile then
        fileWrite(logFile, "Exploiter: " .. getPlayerName(player) .. " - Time: " .. getRealTime().timestamp .. "\n")
        fileClose(logFile)
    end
end

-- Start continuous monitoring of all players every 5 seconds
setTimer(monitorPlayers, 5000, 0)  -- Runs every 5 seconds

 

-- Store the last time the player was hit to check for abnormal behavior
local lastHitTime = {}

addEventHandler("onPlayerDamage", root, function(attacker, weapon, bodypart, loss)
    if attacker and attacker ~= source then
        local playerID = source
        if bodypart == 9 then -- 9 is for the head
            local currentTime = getTickCount()

            -- Check if the player was hit too soon after another headshot
            if lastHitTime[playerID] and (currentTime - lastHitTime[playerID]) < 1000 then
                -- Possible headshot cheat detected (too fast)
                cancelEvent()  -- Prevent the damage
                outputChatBox("Cheating detected! Headshots too fast.", playerID, 255, 0, 0)
            end

            -- Update the last headshot time
            lastHitTime[playerID] = currentTime
        end
    end
end)

 

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...