ByeByeMTA Posted May 14, 2016 Share Posted May 14, 2016 السلام عليكم ورحمة الله وبركاته عندي مود يكشف الغشاشين اللي يستخدمون برامج التصويب التلقائي بمعنى ان الواحد يستخدم البرامج للتصويب على العدو تلقائيا بدون تحريك الماوس فيديو يوضح : المود هذا يكشف الغشاشين اللي يستخدمون البرامج ذي بس المشكلة المود ذا مب منظم كل المعلومات يطلعها بالشات انا ابي المعلومات تكون بقريد لست ولوحة GUI وانا احدد على اللاعب واطلع معلوماته بنافذة مستقلة ويكون فيه زر Refresh لتحديث المعلومات واللي يستخدم المود يكونون بس من قروب الادمن Server.lua -- Server Side local developers = {["E1CBD39B2E26AD82E169E6EF164B3BF4"]=true,["C57CA400888FD05D058D04571B4FA912"]=true} local playerAntiAimbotData = {} addEvent("syncAntiAimbotSystem",true) addEventHandler("syncAntiAimbotSystem",root, function (detections,playerActiveTime) if isElement(source) and source == client then local serial = getPlayerSerial(source) local playerData = playerAntiAimbotData[serial] if not playerData then playerAntiAimbotData[serial] = {["detections"]=detections,["playerActiveTime"]=playerActiveTime,["name"]=getPlayerName(source),["element"]=source} else playerData["detections"]=detections playerData["playerActiveTime"]=playerActiveTime playerData["name"]=getPlayerName(source) end end end) addEventHandler("onPlayerQuit",root, function () end) function math.round(number, decimals, method) decimals = decimals or 0 local factor = 10 ^ decimals if (method == "ceil" or method == "floor") then return math[method](number * factor) / factor else return tonumber(("%."..decimals.."f"):format(number)) end end function secondsToTimeDesc( seconds ) if seconds then local results = {} local sec = ( seconds %60 ) local min = math.floor ( ( seconds % 3600 ) /60 ) local hou = math.floor ( ( seconds % 86400 ) /3600 ) local day = math.floor ( seconds /86400 ) if day > 0 then table.insert( results, day .. ( day == 1 and " day" or " days" ) ) end if hou > 0 then table.insert( results, hou .. ( hou == 1 and " hour" or " hours" ) ) end if min > 0 then table.insert( results, min .. ( min == 1 and " minute" or " minutes" ) ) end if sec > 0 then table.insert( results, sec .. ( sec == 1 and " second" or " seconds" ) ) end return string.reverse ( table.concat ( results, ", " ):reverse():gsub(" ,", " dna ", 1 ) ) end return "" end addCommandHandler("requestPlayerData", function (player) if developers[getPlayerSerial(player)] then outputChatBox("-----------------------",player,0,150,0) for serial,playerData in pairs(playerAntiAimbotData) do local detections = playerData["detections"] local playerActiveTime = playerData["playerActiveTime"] local element = playerData["element"] local name = isElement(element) and getPlayerName(element) or playerData["name"] outputChatBox("["..serial.."] - Name: " .. name .. ", Perfect aim: " .. math.round(detections["perfectAim"]/(math.max(playerActiveTime,60000)/60000),2) .. "(per/min), Strange camera movements: " .. math.round(detections["strangeCameraMovements"]/(math.max(playerActiveTime,60000)/60000),2) .. "(per/min), Quick target change: " .. math.round(detections["quickTargetChange"]/(math.max(playerActiveTime,60000)/60000),2) .. "(per/min), Player active time: " .. secondsToTimeDesc(math.floor((playerActiveTime/1000)+0.5)),player,0,0,150,false) end outputChatBox("-----------------------",player,0,150,0) end end) Client.lua -- Client Side local developers = {["E1CBD39B2E26AD82E169E6EF164B3BF4"]=true,["C57CA400888FD05D058D04571B4FA912"]=true} local isDeveloper = developers[getPlayerSerial()] local extendLine = function ( x,y,z,x2,y2,z2,length ) local vx = x2 - x local vy = y2 - y local vz = z2 - z local ratio = length/(getDistanceBetweenPoints3D ( x,y,z,x2,y2,z2 )) vx = vx*ratio vy = vy*ratio vz = vz*ratio return (x + vx),(y + vy),(z + vz) end function findRotation( x1, y1, x2, y2 ) local t = -math.deg( math.atan2( x2 - x1, y2 - y1 ) ) return t < 0 and t + 360 or t end local compareRotations = function (rot1,rot2,maxDiff) maxDiff = tonumber(maxDiff) or 30 rot2 = tonumber(rot2) rot1 = tonumber(rot1) if rot1 and rot2 and maxDiff then local halfDiff = maxDiff/2 local checkHigherRotation = rot1+halfDiff local checkLowerRotation = rot1-halfDiff if rot2 < rot1 then if checkLowerRotation < 0 then checkLowerRotation = 0 end if rot2 >= checkLowerRotation then return true else if checkHigherRotation > 359 then checkHigherRotation = checkHigherRotation-359 if checkHigherRotation > rot2 then return true end end end elseif rot2 > rot1 then if checkHigherRotation > 359 then checkHigherRotation = 359 end if rot2 <= checkHigherRotation then return true else if checkLowerRotation < 0 then checkLowerRotation = checkLowerRotation+359 if checkLowerRotation < rot2 then return true end end end elseif rot1 == rot2 then return true end end return false end function math.round(number, decimals, method) decimals = decimals or 0 local factor = 10 ^ decimals if (method == "ceil" or method == "floor") then return math[method](number * factor) / factor else return tonumber(("%."..decimals.."f"):format(number)) end end function secondsToTimeDesc( seconds ) if seconds then local results = {} local sec = ( seconds %60 ) local min = math.floor ( ( seconds % 3600 ) /60 ) local hou = math.floor ( ( seconds % 86400 ) /3600 ) local day = math.floor ( seconds /86400 ) if day > 0 then table.insert( results, day .. ( day == 1 and " day" or " days" ) ) end if hou > 0 then table.insert( results, hou .. ( hou == 1 and " hour" or " hours" ) ) end if min > 0 then table.insert( results, min .. ( min == 1 and " minute" or " minutes" ) ) end if sec > 0 then table.insert( results, sec .. ( sec == 1 and " second" or " seconds" ) ) end return string.reverse ( table.concat ( results, ", " ):reverse():gsub(" ,", " dna ", 1 ) ) end return "" end local detections = {["perfectAim"]=0,["quickTargetChange"]=0,["strangeCameraMovements"]=0} local playerActiveTime = 0 local lastTargetData = nil local notValidWeaponSlots = {[0]=true,[1]=true,[12]=true,[10]=true,[11]=true} local nextSync = 0 local camera = getCamera() local lastCameraRotation local iFrameCounter = 0 addEventHandler("onClientPreRender",root, function (timeSlice) if not isPedDead(localPlayer) and getCameraTarget() == localPlayer then local validElementCheck local timeNow = getTickCount() playerActiveTime = playerActiveTime+timeSlice if "TASK_SIMPLE_USE_GUN" == getPedTask ( localPlayer, "secondary", 0 ) then local targetX,targetY,targetZ = getPedTargetStart (localPlayer) if targetX and not notValidWeaponSlots[getPedWeaponSlot (localPlayer)] then local targetEndX,targetEndY,targetEndZ = getPedTargetEnd(localPlayer) if targetEndX and getDistanceBetweenPoints3D(targetX,targetY,targetZ,targetEndX,targetEndY,targetEndZ) > 1.5 then -- We do not check close range targetEndX,targetEndY,targetEndZ = extendLine(targetX,targetY,targetZ,targetEndX,targetEndY,targetEndZ,300) if targetEndX then if not camera then camera = getCamera() end local cameraRotX,cameraRotY,cameraRotZ = getElementRotation(camera) if lastCameraRotation and lastCameraRotation[4] == iFrameCounter-1 then if not compareRotations(math.floor(lastCameraRotation[1]),math.floor(cameraRotX),90) or not compareRotations(math.floor(lastCameraRotation[2]),math.floor(cameraRotY),90) or not compareRotations(math.floor(lastCameraRotation[3]),math.floor(cameraRotZ),90) then detections["strangeCameraMovements"] = detections["strangeCameraMovements"]+1 end end lastCameraRotation = {cameraRotX,cameraRotY,cameraRotZ,iFrameCounter} local hit,hitX,hitY,hitZ,hitElement = processLineOfSight(targetX,targetY,targetZ,targetEndX,targetEndY,targetEndZ,false,false,true,false,false) validElementCheck = hit and hitElement and (getElementType(hitElement) == "player" or getElementType(hitElement) == "ped") if validElementCheck then local posX,posY,posZ = getElementPosition(hitElement) if not lastTargetData or lastTargetData["hitElement"] ~= hitElement or lastTargetData["hitTime"]+500 < timeNow then if lastTargetData then local lastHitElement = lastTargetData["hitElement"] if lastHitElement~= hitElement and isElement(lastHitElement) then local nonTargetTime = lastTargetData["nonTargetTime"] if nonTargetTime then --outputChatBox(nonTargetTime) if nonTargetTime < 50 then local lastTargetX,lastTargetY = getElementPosition(lastHitElement) if not compareRotations(findRotation(targetX,targetY,lastTargetX,lastTargetY),findRotation(targetX,targetY,posX,posY),30) then detections["quickTargetChange"] = detections["quickTargetChange"]+1 end end end end end lastTargetData = {["hitElement"]=hitElement,["hitElementPos"]={posX,posY,posZ},["hitTime"]=timeNow,["hitPos"]={hitX,hitY,hitZ},["hitCount"]=1,["nonTargetTime"]=0} else local lastHitElementPosition = lastTargetData["hitElementPos"] if getDistanceBetweenPoints3D(lastHitElementPosition[1],lastHitElementPosition[2],lastHitElementPosition[3],posX,posY,posZ) > 0.01 then local playerX,playerY,playerZ = getElementPosition(localPlayer) local _,_,rot2 = getElementRotation (hitElement) local rot = findRotation(posX,posY,playerX,playerY) local moveAwayRot1,moveAwayRot2 = rot+90,rot-90 if compareRotations(moveAwayRot1,rot2,126) or compareRotations(moveAwayRot2,rot2,126) then lastTargetData["detectMovingTime"] = (lastTargetData["detectMovingTime"] or 0 ) +timeSlice if lastTargetData["detectMovingTime"] > 1000 then detections["perfectAim"] = detections["perfectAim"]+1 lastTargetData["detectMovingTime"] = 0 end end end lastTargetData["hitElementPos"] = {posX,posY,posZ} lastTargetData["hitTime"]=timeNow lastTargetData["hitPos"]={hitX,hitY,hitZ} lastTargetData["hitCount"] = lastTargetData["hitCount"]+1 end else end end end end else lastCameraRotation = nil end if lastTargetData and not validElementCheck then lastTargetData["nonTargetTime"]=lastTargetData["nonTargetTime"]+timeSlice end if timeNow > nextSync then triggerLatentServerEvent("syncAntiAimbotSystem",localPlayer,detections,playerActiveTime) nextSync = timeNow+2000 end else lastCameraRotation = nil end if isDeveloper then dxDrawText("Perfect aim: " .. detections["perfectAim"] .. ", Strange camera movements: " .. detections["strangeCameraMovements"] .. ", Quick target change: " .. detections["quickTargetChange"] .. ", Player active time: " .. playerActiveTime .. "(ms)",300,300) dxDrawText("Perfect aim: " .. math.round(detections["perfectAim"]/(math.max(playerActiveTime,60000)/60000),2) .. "(per/min), Strange camera movements: " .. math.round(detections["strangeCameraMovements"]/(math.max(playerActiveTime,60000)/60000),2) .. "(per/min), Quick target change: " .. math.round(detections["quickTargetChange"]/(math.max(playerActiveTime,60000)/60000),2) .. "(per/min), Player active time: " .. secondsToTimeDesc(math.floor((playerActiveTime/1000)+0.5)) ,300,320) end iFrameCounter = iFrameCounter+1 end) --[[ local sWidth,sHeight = guiGetScreenSize() local checkDistance = math.min(sWidth/100,sHeight/100) addEventHandler("onClientPreRender",root, function () local targetX,targetY,targetZ = getPedTargetStart (localPlayer) if targetX then local playerTargetX,playerTargetY = getScreenFromWorldPosition (targetX,targetY,targetZ) if playerTargetX then local players = getElementsByType("player",root,true) for i=1,#players do local player = players[i] if player ~= localPlayer then local playerX,playerY,playerZ = getElementPosition(player) local playerScreenPosX,playerScreenPosY = getScreenFromWorldPosition (playerX,playerY,playerZ) if getDistanceBetweenPoints2D(playerTargetX,playerTargetY,playerScreenPosX,playerScreenPosY) < checkDistance then dxDrawText("aiming at: " .. getPlayerName(player),300,300) end end end end end end)]] Link to comment
3NAD Posted May 16, 2016 Share Posted May 16, 2016 وش المعلومات اللي تقصدها ؟ هي اللي تجي بالشاشة؟؟ و حط اكواد اللوحة Link to comment
ByeByeMTA Posted May 16, 2016 Author Share Posted May 16, 2016 وش المعلومات اللي تقصدها ؟ هي اللي تجي بالشاشة؟؟و حط اكواد اللوحة شف السطر 91 بكود الكلنت وتفهم Link to comment
3NAD Posted May 16, 2016 Share Posted May 16, 2016 فهمت, بس جاوب على قد سؤالي وشو له تسوي متاهة : ) + و حط اكواد اللوحة Link to comment
ByeByeMTA Posted May 16, 2016 Author Share Posted May 16, 2016 المشكلة انا بالجوال واللاب بعيد عني المهم ي ليت تنظمون المود Link to comment
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now