// ==UserScript== // @name Multibox script // @namespace http://tampermonkey.net/ // @version 2 // @description multibox after 2023 patch // @author Mi300#4401 // @match https://diep.io/* // @icon data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw== // @license MIT // @grant GM_getValue // @grant GM_setValue // @downloadURL none // ==/UserScript== let WTF = setInterval (function() { if (!document.querySelector('d-base').shadowRoot.children[0].shadowRoot.getElementById('username-input')) { return; } clearInterval (WTF) let canRespawn = false; let worldPosition = [0, 0]; let overlay; let mouseOffset = [0, 0]; let gui = true; let gamepadConnected = false; let gamepadAxes = [0, 0, 0, 0] let gamepadButtons = [ ...Array(17)].map((x) => { return { pressed: false }; }); const fetchGamepad = () => { return { axes: gamepadAxes, buttons: gamepadButtons, mapping: 'standard', } } navigator.getGamepads = new Proxy(navigator.getGamepads, { apply (target, thisArg, args) { if (gamepadConnected) return [fetchGamepad()]; return Reflect.apply(target, thisArg, args); }, }); const canvas = document.getElementById ('canvas'); function hook (target, callbackFunc) { CanvasRenderingContext2D.prototype[target] = new Proxy (CanvasRenderingContext2D.prototype[target], { apply (method, thisArg, args) { callbackFunc (method, thisArg, args); return Reflect.apply (method, thisArg, args) } }); } let dgg = 'i'; function hookMinimapArrow () { let drawInstructions = 0; let minimapArrowVertex = []; hook ('beginPath', (method, thisArg, args) => { drawInstructions = 1; minimapArrowVertex = []; }); hook ('moveTo', (method, thisArg, args) => { drawInstructions = 2; minimapArrowVertex.push ( args ); }); hook ('lineTo', (method, thisArg, args) => { if (drawInstructions >= 2 && drawInstructions <= 5) { drawInstructions ++; minimapArrowVertex.push ( args ); } else { drawInstructions = 0; } }); hook ('fill', (method, thisArg, args) => { if (thisArg.fillStyle != '#000000') { return; } if (drawInstructions === 4) { const pos = getAverage (minimapArrowVertex); worldPosition = getWorldPosition (pos); } }); } let minimapPosition = [0, 0]; let minimapDim = [0, 0]; function hookMinimap () { hook ('strokeRect', (method, thisArg, args) => { const transform = thisArg.getTransform (); minimapPosition = [transform.e, transform.f]; minimapDim = [transform.a, transform.d]; }); } function getWorldPosition (position) { const ret = [ parseFloat((((position[0] - minimapPosition[0] - minimapDim[0] / 2) / minimapDim[0] * 100) * 460).toFixed (3)), parseFloat((((position[1] - minimapPosition[1] - minimapDim[1] / 2) / minimapDim[1] * 100) * 460).toFixed (3)), ] return ret; } const Mi = ''; function getAverage (points) { let ret = [0, 0]; points.forEach (point => { ret[0] += point[0]; ret[1] += point[1]; }); ret[0] /= points.length; ret[1] /= points.length; return ret; } let dgh = 'M'; const getDist = (t1, t2) => { const distX = t1[0] - t2[0]; const distY = t1[1] - t2[1]; return [Math.hypot(distX, distY), distX, distY]; }; function moveBot () { const dangerRadius = Boolean(parseInt(localStorage.followCursor)) ? 750 : 250 gamepadButtons[7].pressed = Boolean(parseInt(localStorage.autoShoot)) if (Boolean(parseInt(localStorage.autoRespawn))) { if (canRespawn) { input.trySpawn (localStorage.name) } } if (input.should_prevent_unload()) { canRespawn = true; } let masterMouse = GM_getValue('multiboxMouse'); let masterMove = GM_getValue ('multiboxWorld'); if (Boolean(parseInt(localStorage.followCursor))) { masterMove = masterMouse; } const distanceMouse = getDist (masterMouse, worldPosition); const distanceMove = getDist (masterMove, worldPosition); if (!masterMouse[0] || !masterMouse[1] || !masterMove[0] || !masterMove[1]) { return; } if (Boolean(parseInt(localStorage.copyMovement))) { if (distanceMove[0] > dangerRadius) { gamepadAxes[0] = masterMove[0] + distanceMove[1] * 100; gamepadAxes[1] = masterMove[1] + distanceMove[2] * 100; } else { gamepadAxes[0] = -(masterMove[0] + distanceMove[1] * 100); gamepadAxes[1] = -(masterMove[1] + distanceMove[2] * 100); } } else { gamepadAxes[0] = worldPosition[0]; gamepadAxes[1] = worldPosition[1]; } if (Boolean(parseInt(localStorage.copyMouse))) { gamepadAxes[2] = masterMouse[0] + distanceMouse[1] * 100; gamepadAxes[3] = masterMouse[1] + distanceMouse[2] * 100; } gamepadConnected = true; } function frame () { overlay.innerHTML = `