您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
ESP original + aimbot grudado na cabeça/corpo + FOV circle
// ==UserScript== // @name Kour.io ESP + Sticky Aimbot // @namespace http://tampermonkey.net/ // @version 1.0 // @description ESP original + aimbot grudado na cabeça/corpo + FOV circle // @match *://kour.io/* // @grant none // ==/UserScript== (function() { 'use strict'; let gl = null; const filters = [ { min: 1481, max: 1483 }, { min: 1553, max: 1555 }, { min: 5615, max: 5617 }, { min: 3875, max: 3877 }, ]; window.espEnabled = true; window.addEventListener("keydown", (e) => { if (e.key.toLowerCase() === "p") { window.espEnabled = !window.espEnabled; console.log(`[ESP] ${window.espEnabled ? "ON" : "OFF"}`); } }); const WebGL = WebGL2RenderingContext.prototype; HTMLCanvasElement.prototype.getContext = new Proxy(HTMLCanvasElement.prototype.getContext, { apply(target, thisArgs, args) { if (args[1]) args[1].preserveDrawingBuffer = true; return Reflect.apply(...arguments); } }); try { window.espColor = JSON.parse(localStorage.getItem("espColorRGB")) || { r: 0, g: 255, b: 0 }; } catch { window.espColor = { r:0, g:255, b:0 }; } // Hook drawElements e drawArrays const drawHandler = { apply(target, thisArgs, args) { const count = args[1]; const program = thisArgs.getParameter(thisArgs.CURRENT_PROGRAM); if (!program.uniforms) { program.uniforms = { vertexCount: thisArgs.getUniformLocation(program, "vertexCount"), espToggle: thisArgs.getUniformLocation(program, "espToggle"), gnilgnim: thisArgs.getUniformLocation(program, "gnilgnim"), espColor: thisArgs.getUniformLocation(program, "espColor"), }; } if (program.uniforms.vertexCount) thisArgs.uniform1f(program.uniforms.vertexCount, count); if (program.uniforms.espToggle) thisArgs.uniform1f(program.uniforms.espToggle, window.espEnabled ? 1.0 : 0.0); if (program.uniforms.gnilgnim) thisArgs.uniform1f(program.uniforms.gnilgnim, 13371337.0); if (program.uniforms.espColor && window.espColor) { const { r, g, b } = window.espColor; thisArgs.uniform3f(program.uniforms.espColor, r / 255, g / 255, b / 255); } gl = thisArgs; return Reflect.apply(...arguments); } }; WebGL.drawElements = new Proxy(WebGL.drawElements, drawHandler); WebGL.drawElementsInstanced = new Proxy(WebGL.drawElementsInstanced, drawHandler); WebGL.drawArrays = new Proxy(WebGL.drawArrays, drawHandler); function generateRangeConditions(varName) { return filters.map(f => `(${varName} >= ${f.min}.0 && ${varName} <= ${f.max}.0)`).join(" || "); } WebGL.shaderSource = new Proxy(WebGL.shaderSource, { apply(target, thisArgs, args) { let [shader, src] = args; if (src.includes("gl_Position")) { const conditions = generateRangeConditions("vertexCount"); src = src.replace( /void\s+main\s*\(\s*\)\s*\{/, `uniform float vertexCount;\nuniform float espToggle;\nuniform float gnilgnim;\nout float vVertexCount;\nuniform vec3 espColor;\nvoid main() {\nvVertexCount = vertexCount;\n` ); src = src.replace( /(gl_Position\s*=.+;)/, `$1\nif(espToggle>0.5&&(${conditions})){gl_Position.z=0.01+gl_Position.z*0.1;}\nif(espToggle>0.5&&gnilgnim==13371337.0){gl_Position.z*=1.0;}` ); } if (src.includes("SV_Target0")) { const conditions = generateRangeConditions("vVertexCount"); src = src.replace( /void\s+main\s*\(\s*\)\s*\{/, `uniform float espToggle;\nuniform float gnilgnim;\nin float vVertexCount;\nuniform vec3 espColor;\nvoid main(){` ).replace( /return;/, `if(espToggle>0.5&&(${conditions})&&SV_Target0.a>0.5){SV_Target0=vec4(espColor,1.0);}\nif(gnilgnim==13371337.0){SV_Target0.rgb*=1.0;}\nreturn;` ); } args[1] = src; return Reflect.apply(...arguments); } }); // --- FOV e Aimbot --- const fovCanvas = document.createElement('canvas'); fovCanvas.style.position = 'fixed'; fovCanvas.style.top = '0'; fovCanvas.style.left = '0'; fovCanvas.style.pointerEvents = 'none'; fovCanvas.style.zIndex = '9999'; document.body.appendChild(fovCanvas); const fovCtx = fovCanvas.getContext('2d'); const fovRadius = 80; function resizeCanvas() { fovCanvas.width = window.innerWidth; fovCanvas.height = window.innerHeight; } resizeCanvas(); window.addEventListener('resize', resizeCanvas); function drawFOVCircle() { fovCtx.clearRect(0,0,fovCanvas.width,fovCanvas.height); const cx = fovCanvas.width/2, cy = fovCanvas.height/2; fovCtx.beginPath(); fovCtx.arc(cx, cy, fovRadius,0,Math.PI*2); fovCtx.strokeStyle='rgba(0,255,0,0.6)'; fovCtx.lineWidth=2; fovCtx.stroke(); } const settings = { aimbotEnabled:true, aimbotSpeed:1.2 }; function isTargetPixel(r,g,b,a,t,c){if(a===0)return false;const dr=r-c.r,dg=g-c.g,db=b-c.b;return(dr*dr+dg*dg+db*db)<=(t*t);} function updateAimbot(){ drawFOVCircle(); if(!settings.aimbotEnabled||!gl||!gl.canvas||!gl.readPixels)return; const width=Math.min(150,gl.canvas.width),height=Math.min(150,gl.canvas.height); if(width<10||height<10)return; const t=30,c=window.espColor; const centerX=gl.canvas.width/2,centerY=gl.canvas.height/2; const startX=Math.floor(centerX-width/2),startY=Math.floor(centerY-height/2); const pixels=new Uint8Array(width*height*4); gl.readPixels(startX,startY,width,height,gl.RGBA,gl.UNSIGNED_BYTE,pixels); let closestDist=Infinity,bestDX=0,bestDY=0; for(let i=0;i<pixels.length;i+=4){ const r=pixels[i],g=pixels[i+1],b=pixels[i+2],a=pixels[i+3]; if(isTargetPixel(r,g,b,a,t,c)){ const index=i/4; const x=index%width,y=Math.floor(index/width); const dx=startX+x-centerX,dy=-(startY+y-centerY); const dist=Math.hypot(dx,dy); if(dist<closestDist&&dist<=fovRadius){closestDist=dist;bestDX=dx;bestDY=dy;} } } if(closestDist<Infinity){ const factor=settings.aimbotSpeed; gl.canvas.dispatchEvent(new MouseEvent("mousemove",{movementX:bestDX*factor,movementY:bestDY*factor,bubbles:true,cancelable:true,composed:true})); } } setInterval(updateAimbot,15); })();