Pastebin

krunker hacks aimbot

krunker hacks aimbot from Pastebin

Krunker hacks aimbot Pastebin Krunker hacks aimbot paste Krunker hacks aimbot download details Krunker hacks aimbot script code Krunker hacks aimbot download 2023 snippet Krunker hacks aimbot download
    
        // ==UserScript==
// @name         KRUNKVILLAIN - Krunker.io HACK AIMBOT ESP BHOP
// @namespace    Roogybot
// @version      1.0.1
// @description  Aimbot, Auto Reload, Auto BHop and Wall Hack for Krunker.io
// @author       Roogybot
// @include      https://krunker.io/
// @include      https://krunker.io/?game=*
// @grant        GM_xmlhttpRequest
// @run-at       document-start
// ==/UserScript==

var OnOffMode;
(function (OnOffMode) {
    OnOffMode["On"] = "On";
    OnOffMode["Off"] = "Off";
})(OnOffMode || (OnOffMode = {}));
class Module {
    constructor() {
        this.allStates = this.getAllModes();
        this.currentModeIndex = this.allStates.indexOf(this.getInitialMode());
    }
    onModeChanged() {
        // Let implementations override this if needed
    }
    onTick() {
        // Let implementations override this if needed
    }
    getInitialMode() {
        return this.allStates[0];
    }
    onKeyPressed() {
        this.currentModeIndex++;
        if (this.currentModeIndex >= this.allStates.length) {
            this.currentModeIndex = 0;
        }
        this.onModeChanged();
    }
    isEnabled() {
        return this.currentModeIndex !== 0;
    }
    getStatus() {
        return this.allStates[this.currentModeIndex].toString();
    }
    getCurrentMode() {
        return this.allStates[this.currentModeIndex];
    }
}

var AimbotMode;
(function (AimbotMode) {
    AimbotMode["Off"] = "Off";
    AimbotMode["Quickscoper"] = "Quickscoper";
    AimbotMode["OnRMB"] = "On RMB";
})(AimbotMode || (AimbotMode = {}));
class Aimbot extends Module {
    constructor() {
        super(...arguments);
        this.scopingOut = false;
        this.canShoot = true;
    }
    getName() {
        return 'Aimbot';
    }
    getKey() {
        return 'I';
    }
    getAllModes() {
        return [AimbotMode.Off, AimbotMode.Quickscoper, AimbotMode.OnRMB];
    }
    onTick() {
        if (!this.players) {
            return;
        }
        const possibleTargets = this.players
            .filter(player => {
            return player.active && player.inView && !player.isYou && (!player.team || player.team !== this.me.team);
        })
            .sort((p1, p2) => this.distance(this.me, p1) - this.distance(this.me, p2));
        let isLockedOn = false;
        if (possibleTargets.length > 0) {
            const target = possibleTargets[0];
            switch (this.getCurrentMode()) {
                case AimbotMode.Quickscoper:
                    isLockedOn = this.runQuickscoper(target);
                    break;
                case AimbotMode.OnRMB:
                    isLockedOn = this.runOnRMB(target);
                    break;
            }
        }
        if (!isLockedOn) {
            this.control.camLookAt(null);
            this.control.target = null;
            if (this.getCurrentMode() === AimbotMode.Quickscoper) {
                this.control.mouseDownL = 0;
                this.control.mouseDownR = 0;
            }
        }
    }
    runQuickscoper(target) {
        if (this.me.didShoot) {
            this.canShoot = false;
            setTimeout(() => {
                this.canShoot = true;
            }, this.me.weapon.rate);
        }
        if (this.control.mouseDownL === 1) {
            this.control.mouseDownL = 0;
            this.control.mouseDownR = 0;
            this.scopingOut = true;
        }
        if (this.me.aimVal === 1) {
            this.scopingOut = false;
        }
        if (this.scopingOut || !this.canShoot || this.me.recoilForce > 0.01) {
            return false;
        }
        this.lookAt(target);
        if (this.control.mouseDownR === 0) {
            this.control.mouseDownR = 1;
        }
        else if (this.me.aimVal < 0.2) {
            this.control.mouseDownL = 1 - this.control.mouseDownL;
        }
        return true;
    }
    runOnRMB(target) {
        if (this.control.mouseDownR === 0) {
            return false;
        }
        this.lookAt(target);
        return true;
    }
    lookAt(target) {
        this.control.camLookAt(target.x2, target.y2 + target.height - 1.5 - 2.5 * target.crouchVal - this.me.recoilAnimY * 0.3 * 25, target.z2);
    }
    distance(player1, player2) {
        const dx = player1.x - player2.x;
        const dy = player1.y - player2.y;
        const dz = player1.z - player2.z;
        return Math.sqrt(dx * dx + dy * dy + dz * dz);
    }
}

var BHopMode;
(function (BHopMode) {
    BHopMode["Off"] = "Off";
    BHopMode["Jump"] = "Jump";
    BHopMode["SlideJump"] = "Slide Jump";
})(BHopMode || (BHopMode = {}));
class AutoBHop extends Module {
    constructor() {
        super(...arguments);
        this.isSliding = false;
    }
    getName() {
        return 'Auto BHop';
    }
    getKey() {
        return 'B';
    }
    getAllModes() {
        return [BHopMode.Off, BHopMode.Jump, BHopMode.SlideJump];
    }
    onTick() {
        this.control.keys[32] = !this.control.keys[32];
        if (this.getCurrentMode() === BHopMode.SlideJump) {
            if (this.isSliding) {
                this.inputs[8] = 1;
                return;
            }
            if (this.me.yVel < -0.04 && this.me.canSlide) {
                this.isSliding = true;
                setTimeout(() => {
                    this.isSliding = false;
                }, 350);
                this.inputs[8] = 1;
            }
        }
    }
}

class AutoReload extends Module {
    getName() {
        return 'Auto Reload';
    }
    getKey() {
        return 'J';
    }
    getAllModes() {
        return [OnOffMode.Off, OnOffMode.On];
    }
    getInitialMode() {
        return OnOffMode.On;
    }
    onTick() {
        if (this.me.ammos[this.me.weaponIndex] === 0) {
            this.inputs[9] = 1;
        }
    }
}

class WallHack extends Module {
    getName() {
        return 'Wall Hack';
    }
    getKey() {
        return 'O';
    }
    getAllModes() {
        return [OnOffMode.Off, OnOffMode.On];
    }
    getInitialMode() {
        unsafeWindow.wallHackEnabled = true;
        return OnOffMode.On;
    }
    onModeChanged() {
        unsafeWindow.wallHackEnabled = this.getCurrentMode() === OnOffMode.On;
    }
}

class Krunkbot {
    constructor() {
        this.modules = [];
    }
    init() {
        this.modules.push(new Aimbot());
        this.modules.push(new AutoReload());
        this.modules.push(new WallHack());
        this.modules.push(new AutoBHop());
        const initInfoBoxInterval = setInterval(() => {
            if (this.canInjectInfoBox()) {
                clearInterval(initInfoBoxInterval);
                this.injectInfoBox();
                this.updateInfoBox();
            }
        }, 100);
    }
    onTick(me, inputs) {
        this.modules.forEach(module => {
            if (module.isEnabled()) {
                module.me = me;
                module.inputs = inputs;
                module.control = unsafeWindow.control;
                module.players = unsafeWindow.players;
                module.onTick();
            }
        });
    }
    onKeyPressed(e) {
        let shouldUpdateInfoBox = false;
        this.modules.forEach(module => {
            if (module.getKey().toUpperCase() === e.key.toUpperCase()) {
                module.onKeyPressed();
                shouldUpdateInfoBox = true;
            }
        });
        if (shouldUpdateInfoBox) {
            this.updateInfoBox();
        }
    }
    updateInfoBox() {
        const infoBox = unsafeWindow.document.querySelector('#krunkbotInfoBox');
        if (infoBox === null) {
            return;
        }
        const moduleLines = this.modules.map(module => {
            return `
        
[${module.getKey().toUpperCase()}] ${module.getName()}
${module.getStatus()}
`; }); infoBox.innerHTML = `
Krunkbot
${moduleLines.join('')} `.trim(); } injectInfoBox() { const infoBox = unsafeWindow.document.createElement('div'); infoBox.innerHTML = `
`.trim(); const leaderDisplay = unsafeWindow.document.querySelector('#leaderDisplay'); leaderDisplay.parentNode.insertBefore(infoBox.firstChild, leaderDisplay.nextSibling); } canInjectInfoBox() { return unsafeWindow.document.querySelector('#leaderDisplay') !== null; } } // tslint:disable no-console class Logger { constructor(prefix) { this.prefix = prefix; } log(...message) { console.log(this.prefix, ...message); } error(...message) { console.error(this.prefix, ...message); } crash(message) { document.open(); document.write(` Krunkbot has crashed!
Krunkbot has crashed!
Error message: ${message}
`); document.close(); throw new Error(`${this.prefix} ${message}`); } } const logger = new Logger('[Krunkbot]'); function applyPatch(script, method, regex, replacer) { const newScript = script.replace(regex, replacer); if (script === newScript) { logger.crash(`${method} was not successful`); } return newScript; } function patchControl(script) { return applyPatch(script, 'patchControl', /var ([a-zA-Z0-9]+)=this,([a-zA-Z0-9]+)=([a-zA-Z0-9]+)\.renderer\.domElement/, ($0, $1, $2, $3) => { return `var ${$1} = window.control = this, ${$2} = ${$3}.renderer.domElement;`; }); } function patchPlayers(script) { return applyPatch(script, 'patchPlayers', /if\(this\.now/, 'window.players = this.players.list; if (this.now'); } function patchOnTick(script) { return applyPatch(script, 'patchOnTick', /,([a-zA-Z0-9]+)\.procInputs\(([a-zA-Z0-9]+)/, ($0, $1, $2) => { return `, window.onTick(${$1}, ${$2}), ${$1}.procInputs(${$2}`; }); } function patchOnKeyPressed(script) { return applyPatch(script, 'patchOnKeyPressed', /"keyup",function\(([a-zA-Z0-9]+)\){/, ($0, $1) => { return `"keyup", function (${$1}) { if (document.activeElement !== chatInput) { window.onKeyPressed(${$1}); }`; }); } function patchForAimbot(script) { return applyPatch(script, 'patchForAimbot', /{if\(this\.target\){(.+)}},this.camLookAt=/, ($0, $1) => { return ` { if (this.target) { this.object.rotation.y = this.target.yD; this.pitchObject.rotation.x = this.target.xD; const half = Math.PI / 2; this.pitchObject.rotation.x = Math.max(-half, Math.min(half, this.pitchObject.rotation.x)); this.yDr = this.pitchObject.rotation.x % Math.PI; this.xDr = this.object.rotation.y % Math.PI; ${$1} } }, this.camLookAt = `; }); } function patchForWallHack(script) { return applyPatch(script, 'patchForWallHack', /if\(([a-zA-Z0-9]+)\.inView\){(.+)}else ([a-zA-Z0-9]+)\.style\.display="none"}var ([a-zA-Z0-9]+);/, ($0, $1, $2, $3, $4) => { return ` if (${$1}.inView || window.wallHackEnabled) { ${$2} } else ${$3}.style.display = "none" } var ${$4}; `; }); } function patchIsHacker(script) { return applyPatch(script, 'patchIsHacker', /&&([a-zA-Z0-9]+)\.isHacker&&/, `&& 1 === 0 &&`); } function patchLastHack(script) { return applyPatch(script, 'patchIsHacker', /&&([a-zA-Z0-9]+)\.lastHack&&/, `&& 1 === 0 &&`); } function patchServerSearch(script) { return applyPatch(script, 'patchServerSearch', /([a-zA-Z0-9]+)\.data\.([a-zA-Z0-9]+)\.toLowerCase/, ($0, $1, $2) => { return `(${$1}.data.${$2} || '').toLowerCase`; }); } function patchStyleErrors(script) { return applyPatch(script, 'patchStyleErrors', /else document\.getElementById\("healthBarE"\+([a-zA-Z0-9]+)\)\.style\.width=([a-zA-Z0-9]+)\+"%"/, ($0, $1, $2) => { return `else (document.getElementById("healthBarE" + ${$1}) || { style: {} }).style.width = ${$2} + "%"`; }); } function patchGameScript(script) { logger.log('Patching the game script...'); script = patchControl(script); script = patchPlayers(script); script = patchOnTick(script); script = patchOnKeyPressed(script); script = patchForAimbot(script); script = patchForWallHack(script); script = patchIsHacker(script); script = patchLastHack(script); script = patchServerSearch(script); script = patchStyleErrors(script); logger.log('Successfully patched the game script!'); return script; } function request(url) { return new Promise(resolve => { logger.log(`Retrieving ${url}`); GM_xmlhttpRequest({ url, method: 'GET', onload: response => resolve(response.responseText), }); }); } function replaceRemoteScriptWithInline(html, partialSrc, script) { const inline = ``; const regExp = new RegExp(``); const withoutScriptTag = html.replace(regExp, ''); return withoutScriptTag + inline; } async function inlineRemoteScript(html, partialSrc) { const regExp = new RegExp(``); const [, prefix, suffix] = regExp.exec(html); const script = await request(prefix + partialSrc + suffix); return replaceRemoteScriptWithInline(html, partialSrc, script); }