您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Cheat for brofist.io
当前为
// ==UserScript== // @name blackhack // @version 1.13.10 // @description Cheat for brofist.io // @author CiNoP // @match http://brofist.io/ // @match http://brofist.io/modes/twoPlayer/c/index.html // @match http://brofist.io/modes/hideAndSeek/c/index.html // @match http://brofist.io/modes/sandbox/c/index.html // @icon https://www.google.com/s2/favicons?sz=64&domain=brofist.io // @grant none // @license GPL-3.0-only // @namespace brofist.io 1st-cheat (FOR ALL MODES) // ==/UserScript== /* jshint esversion: 11 */ /* jshint asi: true */ document.body.insertAdjacentHTML("beforebegin", `<button id="infoPanelBtn" style="display: inherit; width: 30px; height: 30px; position: fixed; top: 50%; left: 0px; background: rgba(0, 0, 0, 0.3); color: rgb(255, 255, 255); border: none; cursor: pointer;">ⓘ</button>` ); document.getElementById('infoPanelBtn').addEventListener('click', () => { const panel = document.getElementById('cheatInfoPanel') panel.style.display = (panel.style.display === 'none') ? 'block' : 'none'; }) document.body.insertAdjacentHTML("beforebegin", `<div id="cheatInfoPanel" style="display: none; position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); background: rgba(0, 0, 0, 0.8); color: rgb(255, 255, 255); padding: 15px; border-radius: 5px; font-size: 20px; text-align: center; z-index: 1000;"> ${getCheatInfoText()} </div>` ) function getCheatInfoText() { if (window.location.href === 'http://brofist.io/') { return "Зайдите в любой режим"; } else if (window.location.href === 'http://brofist.io/modes/twoPlayer/c/index.html') { return ` <b>Функционал чита:</b><br> английская <b>C</b> - рывок (во все стороны)<br> англ. <b>Z</b> - прыжок с возможностью второго прыжка<br> <b>F2</b> - Режим бога<br> <b>ё</b> или <b>\`</b> - Изменение скорости в режиме бога<br> <b>F4</b> - Невосприимчивость к яду<br> <b>F9</b> - Невосприимчивость к смерти (по умолчанию вкл.)<br> <b>Home</b>/<b>End</b> - тп к спавну/двери<br> Зажатие англ. <b>S</b> - Увеличение массы в 3 раза<br> <b>Insert</b> - Тп к игроку<br> <b>Колесо мыши</b> - Горизонтальная скорость<br><br> <b>А так же:</b><br> Информация об игроке, скриптовых переменных и т.п. в левой верхней панели<br> Переключение между новым и старым передвижением в левой нижней панели<br> Нажмите <b>Esc</b> чтобы скрыть новые панели<br> `; } else { return ` <b>Функционал чита:</b><br> английская <b>C</b> - рывок (во все стороны)<br> англ. <b>Z</b> - прыжок с возможностью второго прыжка<br> <b>F2</b> - Режим бога<br> <b>ё</b> или <b>\`</b> - Изменение скорости в режиме бога<br> Зажатие англ. <b>S</b> - Увеличение массы в 3 раза<br><br> <b>Колесо мыши</b> - Горизонтальная скорость<br><br> <b>А так же:</b><br> Информация об игроке, скриптовых переменных и т.п. в левой верхней панели<br> Переключение между новым и старым передвижением в левой нижней панели<br> Нажмите <b>Esc</b> чтобы скрыть новые панели<br> ` } } function sandboxHack() { function activateMain(temp1) { const hack = { keyBindings: { isCPressed: false, cTimer: null, isZPressed: false }, playerMoveData: { lastHorizontalDirection: 1, isDashingDown: false, isDashingUp: false, lastDashTime: 0, dashDuration: 100, dashEndTime: 0, isDoubleJumpAllowed: false, airDashAvailable: true, newMovementIsOn: true, }, bindKeys: function () { document.addEventListener('keydown', function (event) { if (event.key === 'Escape') { const panel = document.getElementById('someData') const panel1 = document.getElementById('controlPanel') if (panel.style.display === 'none') { panel.style.display = 'inherit' } else { panel.style.display = 'none' } if (panel1.style.display === 'none') { panel1.style.display = 'inherit' } else { panel1.style.display = 'none' } } if (event.key.toLowerCase() === 's' && event.repeat) { if (!hack.vars.modeIsOn) { hack.getters.me.p.mass = 3 } } if (event.key.toLowerCase() === 'z' && !event.repeat) { hack.keyBindings.isZPressed = true } else if (event.repeat) { hack.keyBindings.isZPressed = false } if (event.key.toLowerCase() === 'c') { hack.keyBindings.isCPressed = true if (!hack.keyBindings.cTimer) { hack.keyBindings.cTimer = setTimeout(() => { hack.keyBindings.isCPressed = false hack.keyBindings.cTimer = null }, 250) } } }) document.addEventListener('keyup', function (event) { if (event.key.toLowerCase() === 's') { if (!hack.vars.modeIsOn) { hack.getters.me.p.mass = 1 } } if (event.key.toLowerCase() === 'z') { hack.keyBindings.isZPressed = false } if (event.key.toLowerCase() === 'c') { hack.keyBindings.isCPressed = false if (hack.keyBindings.cTimer) { clearTimeout(hack.keyBindings.cTimer) hack.keyBindings.cTimer = null } } }) }, getters: { get client() { return temp1[38].exports }, get gf() { return temp1[42].exports }, get gp() { return temp1[43].exports }, get graphics() { return temp1[44].exports }, get mode() { return temp1[48].exports }, get envirData() { return temp1[53].exports }, get network() { return temp1[66].exports }, get physics() { return temp1[362].exports }, get me() { return hack.getters.mode.player.gpData }, get ray() { return hack.getters.me.ray }, get velocity() { return hack.getters.me.p.velocity }, get otherPlayers() { return hack.getters.mode.otherPlayers }, get velocity() { return this.mode.player.gpData.p.velocity }, get otherPlayers() { return this.mode.otherPlayers }, ghost: false, get me() { return hack.getters.mode.player.gpData }, get ray() { return hack.getters.me.ray }, get velocity() { return hack.getters.me.p.velocity }, get otherPlayers() { return hack.getters.mode.otherPlayers } }, vars: { get isGround() { return isGrounded() }, mult: 1, lrSpd: 3, udSpd: 3, 'POSITION INFO ': '-----------------------', get currentPosX() { return Math.round(hack.getters.me.getX() * 100) / 100 }, get currentPosY() { return Math.round(hack.getters.me.getY() * 100) / 100 }, 'SPEED INFO ': '----------------------------', get totalSpd() { return (((this.lrSpd + this.udSpd) / 2) * this.mult) }, get currentSpdX() { return Math.round(hack.getters.me.p.velocity[0] * 100) / 100 }, get currentSpdY() { return Math.round(hack.getters.me.p.velocity[1] * 100) / 100 }, 'SCRIPT VALUES ': '----------------------', multSpdIsOn: false, modeIsOn: false, ghost1: false, 'MOVEMENT VALUES ': '---------------' }, suppFuncs: { getMult: () => { if (hack.vars.mult < 3) { return 1 } else if (hack.vars.mult < 4) { return 2 } }, setMult: function (e) { if (e != undefined) { return (hack.vars.lrSpd = hack.vars.udSpd = e) } if (hack.suppFuncs.getMult() === 1) { hack.vars.mult++ } else if (hack.suppFuncs.getMult() === 2) { hack.vars.mult += 2 } else { hack.vars.mult = 1 } }, getIndexByName: function (playerName) { const index = hack.getters.otherPlayers.findIndex(player => player?.myName === playerName) return index === -1 ? false : index } }, functions: { godModeEnable: () => { hack.vars.ghost1 = true hack.getters.me.p.collisionResponse = false hack.getters.me.p.mass = 0 hack.vars.modeIsOn = true hack.getters.velocity[0] = 0 hack.getters.velocity[1] = 0 }, godModeDisable: () => { hack.vars.ghost1 = false hack.getters.me.p.collisionResponse = true hack.getters.me.p.mass = 1 hack.vars.modeIsOn = false hack.getters.velocity[0] = 0 hack.getters.velocity[1] = 0 }, multSpdEnable: () => { hack.vars.lrSpd *= hack.vars.mult hack.vars.udSpd *= hack.vars.mult hack.vars.multSpdIsOn = true }, multSpdDisable: () => { hack.vars.lrSpd /= hack.vars.mult hack.vars.udSpd /= hack.vars.mult hack.vars.multSpdIsOn = false } }, logFuncs: { logModeIsOn: () => { console.log('modeIsOn:', hack.vars.modeIsOn) }, logSpd: () => { console.log('speed:', ((hack.vars.lrSpd + hack.vars.udSpd) / 2) * hack.vars.mult) } } } document.body.insertAdjacentHTML("beforebegin", ` <div id="someData" style="display: inherit; width: auto; position: fixed; top: 0px; left: 0px; height: auto; text-align: left; font-size: 14px; background: rgb(0, 0, 0); color: rgb(255, 255, 255); opacity: 0.7; padding: 2px 2px;"></div> `) const updateData = () => { const o = [] for (let i in hack.vars) { o.push(`${i}: ${hack.vars[i]}`) } for (let i in hack.playerMoveData) { o.push(`${i}: ${hack.playerMoveData[i]}`) } document.getElementById("someData").innerHTML = o.join('<br>') } document.body.insertAdjacentHTML("beforebegin", ` <div id="controlPanel" style="display: inherit; width: auto; position: fixed; bottom: 0px; left: 0px; height: auto; text-align: left; font-size: 14px; background: rgb(0, 0, 0); color: rgb(255, 255, 255); opacity: 0.7; padding: 2px 2px;"> <div> <span>new movement: </span> <button id="newMoveBtn" style="background: rgba(255, 255, 255, 0.7); color: black;">${hack.playerMoveData.newMovementIsOn}</button> </div> </div> `) const updateButtonStates = () => { document.getElementById("newMoveBtn").innerText = hack.playerMoveData.newMovementIsOn } document.getElementById("newMoveBtn").addEventListener("click", () => { if (!hack.playerMoveData.newMovementIsOn) { newMovement() } else { oldMovement() } updateButtonStates() }) setInterval(updateData, 100 / 6) updateButtonStates() setInterval(updateButtonStates, 100 / 6) hack.bindKeys() let scrActivate = function () { hack.getters.client.loopFunctions[2].timeOut = 100 / 6 hack.getters.client.loopFunctions[3].timeOut = 0 oldMovement() Object.defineProperty(hack.vars, 'mult', { enumerable: false }) Object.defineProperty(hack.vars, 'lrSpd', { enumerable: false }) Object.defineProperty(hack.vars, 'udSpd', { enumerable: false }) Object.defineProperty(hack.vars, 'multSpdIsOn', { enumerable: false }) Object.defineProperty(hack.vars, 'ghost1', { enumerable: false }) Object.defineProperty(hack.playerMoveData, 'lastDashTime', { enumerable: false }) Object.defineProperty(hack.playerMoveData, 'lastHorizontalDirection', { enumerable: false }) Object.defineProperty(hack.playerMoveData, 'lastDashTime', { enumerable: false }) Object.defineProperty(hack.playerMoveData, 'dashDuration', { enumerable: false }) Object.defineProperty(hack.playerMoveData, 'dashEndTime', { enumerable: false }) Object.defineProperty(hack.playerMoveData, 'newMovementIsOn', { enumerable: false }) } hack.getters.client.findUntilFound = function (e, t, n) { hack.getters.network.gsip = e; hack.getters.network.gsrn = t; hack.getters.network.getSID?.((sid) => { hack.getters.network.sid = sid; hack.getters.network.connectToGs?.(hack.getters.network.gsip, () => { console.log("connected to gs"); hack.getters.client.verifyIsHuman?.(() => { hack.getters.network.registerSidOnGs?.((verifyStatus) => { console.log("verified on gs server", verifyStatus); if (verifyStatus === "") { alert("You are already playing the game in another browser tab."); location.reload(); n(2); } else { hack.getters.network.joinRoom?.(hack.getters.network.gsrn, (joinStatus) => { if (joinStatus === 1) { hack.getters.client.sendPlayingInfo?.(hack.getters.client.roomId, () => { hack.getters.client.onReady?.(); n(1); scrActivate() }); } else { console.log("else"); hack.getters.network.gsSockehack?.getters.client.disconnect?.(); do { hack.getters.client.rIndex++; const currentDataCenter = hack.getters.network.dataCenters?.[hack.getters.client.dcIndex]; if (!currentDataCenter?.[hack.getters.client.rIndex]) { hack.getters.client.dcIndex++; hack.getters.client.rIndex = 0; if (!hack.getters.network.dataCenters?.[hack.getters.client.dcIndex]) { alert("It seems all servers are full. Please refresh your page and try again."); location.reload(); return; } } } while (hack.getters.network.dataCenters?.[hack.getters.client.dcIndex]?.[hack.getters.client.rIndex]?.[2] !== hack.getters.client.modeInfo.mp); const newGsip = hack.getters.network.dataCenters?.[hack.getters.client.dcIndex]?.[hack.getters.client.rIndex]?.[1]; const newGsrn = hack.getters.network.dataCenters?.[hack.getters.client.dcIndex]?.[hack.getters.client.rIndex]?.[3]; hack.getters.client.roomId = hack.getters.network.dataCenters?.[hack.getters.client.dcIndex]?.[hack.getters.client.rIndex]?.[4]; hack.getters.client.findUntilFound(newGsip, newGsrn, n); } }); } }); }); }); }); }; document.body.onkeydown = (event) => { const keyCode = event.keyCode switch (keyCode) { case 17: hack.getters.mode.makeMeGhost() break case 113: if (!hack.vars.modeIsOn) { hack.functions.godModeEnable() hack.logFuncs.logModeIsOn() hack.functions.multSpdEnable() } else { hack.functions.godModeDisable() hack.logFuncs.logModeIsOn() hack.functions.multSpdDisable() } break case 192: case 190: if (hack.vars.modeIsOn) { hack.suppFuncs.setMult() hack.logFuncs.logSpd() } break } } function isGrounded() { const meX = hack.getters.me.getX() const meY = hack.getters.me.getY() const ray = hack.getters.ray const physics = hack.getters.physics const gpPWorld = hack.getters.gp.pWorld const rayResult = hack.getters.me.ray.result const rayHitPoint = (hack.getters.ray.hitPoint = [Infinity, Infinity]) const verticalOffset = 50 const checkYPosition = meY + 45 for (let i = 0; i < 121; i++) { const o = meX - 15 + i * (30 / 120) const s = checkYPosition const u = s + verticalOffset ray.from = [physics.xAxis(o, 0), physics.yAxis(s, 0)] ray.to = [physics.xAxis(o, 0), physics.yAxis(u, 0)] ray.update() rayResult.reset() if (gpPWorld.raycast(rayResult, ray)) { rayResult.getHitPoint(rayHitPoint, ray) const hitDistance = rayResult.getHitDistance(ray) if (rayResult.shape.ref.getCollision() && hitDistance < 0.1) { return true } } } return false } function newMovement() { hack.getters.client.loopFunctions[2].fun = function () { const currentTime = Date.now() const dashCooldown = 250 const dashDistance = 2.5 const dashSpeed = 25 const grounded = isGrounded() if (grounded) { hack.playerMoveData.airDashAvailable = true } if (hack.getters.mode.moveLeft) { hack.playerMoveData.lastHorizontalDirection = -1 } else if (hack.getters.mode.moveRight) { hack.playerMoveData.lastHorizontalDirection = 1 } if ( hack.keyBindings.isCPressed && hack.getters.mode.moveDown && currentTime - hack.playerMoveData.lastDashTime >= dashCooldown && !hack.playerMoveData.isDashingDown && (grounded || (!grounded && hack.playerMoveData.airDashAvailable)) ) { hack.playerMoveData.lastDashTime = currentTime hack.playerMoveData.isDashingDown = true hack.playerMoveData.dashDuration = (dashDistance / dashSpeed) * 1000 hack.playerMoveData.dashEndTime = currentTime + hack.playerMoveData.dashDuration if (!grounded) { hack.playerMoveData.airDashAvailable = false } } if ( hack.keyBindings.isCPressed && hack.getters.mode.moveUp && currentTime - hack.playerMoveData.lastDashTime >= dashCooldown && !hack.playerMoveData.isDashingUp && (grounded || (!grounded && hack.playerMoveData.airDashAvailable)) ) { hack.playerMoveData.lastDashTime = currentTime hack.playerMoveData.isDashingUp = true hack.playerMoveData.dashDuration = (dashDistance / dashSpeed) * 1000 hack.playerMoveData.dashEndTime = currentTime + hack.playerMoveData.dashDuration if (!grounded) { hack.playerMoveData.airDashAvailable = false } } if ( hack.keyBindings.isCPressed && currentTime - hack.playerMoveData.lastDashTime >= dashCooldown && !hack.playerMoveData.isDashing && (grounded || (!grounded && hack.playerMoveData.airDashAvailable)) ) { hack.playerMoveData.lastDashTime = currentTime hack.playerMoveData.isDashing = true hack.playerMoveData.dashVelocity = dashSpeed * hack.playerMoveData.lastHorizontalDirection hack.playerMoveData.dashDuration = (dashDistance / dashSpeed) * 1000 hack.playerMoveData.dashEndTime = currentTime + hack.playerMoveData.dashDuration if (!grounded) { hack.playerMoveData.airDashAvailable = false } } if (hack.playerMoveData.isDashingDown) { hack.getters.mode.player.gpData.p.velocity[1] = -dashSpeed hack.getters.mode.player.gpData.p.velocity[0] = 0 hack.getters.me.p.collisionResponse = false if (currentTime >= hack.playerMoveData.dashEndTime) { hack.playerMoveData.isDashingDown = false hack.getters.mode.player.gpData.p.velocity[1] = 0 if (!hack.vars.modeIsOn) { hack.getters.me.p.collisionResponse = true } } return } if (hack.playerMoveData.isDashingUp) { hack.getters.mode.player.gpData.p.velocity[1] = dashSpeed hack.getters.mode.player.gpData.p.velocity[0] = 0 hack.getters.me.p.collisionResponse = false if (currentTime >= hack.playerMoveData.dashEndTime) { hack.playerMoveData.isDashingUp = false hack.getters.mode.player.gpData.p.velocity[1] = 0 if (!hack.vars.modeIsOn) { hack.getters.me.p.collisionResponse = true } } return } if (hack.playerMoveData.isDashing) { hack.getters.mode.player.gpData.p.velocity[0] = hack.playerMoveData.dashVelocity hack.getters.mode.player.gpData.p.velocity[1] = 0 hack.getters.me.p.collisionResponse = false if (currentTime >= hack.playerMoveData.dashEndTime) { hack.playerMoveData.isDashing = false hack.getters.mode.player.gpData.p.velocity[0] = 0 if (!hack.vars.modeIsOn) { hack.getters.me.p.collisionResponse = true } } return } else { if (hack.getters.mode.moveRight) { hack.getters.mode.player.gpData.p.velocity[0] = hack.vars.lrSpd * hack.vars.mult } else if (hack.getters.mode.moveLeft) { hack.getters.mode.player.gpData.p.velocity[0] = -hack.vars.lrSpd * hack.vars.mult } else { hack.getters.mode.player.gpData.p.velocity[0] = 0 } } if (grounded) { hack.playerMoveData.isDoubleJumpAllowed = true if (hack.keyBindings.isZPressed) { hack.keyBindings.isZPressed = false hack.getters.velocity[1] = 8 * (hack.getters.me.p.gravityScale) } } else if (hack.playerMoveData.isDoubleJumpAllowed && hack.keyBindings.isZPressed) { hack.keyBindings.isZPressed = false hack.getters.velocity[1] = 8 * (hack.getters.me.p.gravityScale) hack.playerMoveData.isDoubleJumpAllowed = false } if (hack.vars.ghost1) { if (hack.getters.mode.moveUp) { hack.getters.velocity[1] = hack.vars.udSpd * hack.vars.mult } if (hack.getters.mode.moveDown) { hack.getters.velocity[1] = -hack.vars.udSpd * hack.vars.mult } if (!hack.getters.mode.moveUp && !hack.getters.mode.moveDown) { hack.getters.velocity[1] = 0 } } } hack.playerMoveData.newMovementIsOn = true } function oldMovement() { hack.getters.client.loopFunctions[2].fun = function () { const grounded = isGrounded() if (hack.getters.mode.moveRight) { hack.getters.mode.player.gpData.p.velocity[0] = hack.vars.lrSpd * hack.vars.mult } else if (hack.getters.mode.moveLeft) { hack.getters.mode.player.gpData.p.velocity[0] = -hack.vars.lrSpd * hack.vars.mult } else { hack.getters.mode.player.gpData.p.velocity[0] = 0 } if (grounded) { if (hack.getters.mode.moveUp) { hack.getters.velocity[1] = 8 } } if (hack.vars.ghost1) { if (hack.getters.mode.moveUp) { hack.getters.velocity[1] = hack.vars.udSpd * hack.vars.mult } if (hack.getters.mode.moveDown) { hack.getters.velocity[1] = -hack.vars.udSpd * hack.vars.mult } if (!hack.getters.mode.moveUp && !hack.getters.mode.moveDown) { hack.getters.velocity[1] = 0 } } } hack.playerMoveData.newMovementIsOn = false} addEventListener("mousewheel", e => { tweenObjects.map(x => { try { hack.getters.mode.player.gpData.p.velocity[1] = -Math.sign(e.deltaY) * 15 } catch(e) {} }) }) } let temp1 = {}; const _call = Function.prototype.call; new Promise((resolve, reject) => { Function.prototype.call = function (...args) { if (args[2]?.exports) { temp1 = args[6] Function.prototype.call = _call console.log(temp1) resolve(temp1) } return _call.apply(this, args) }; }).then((result) => { if (Object.keys(result).length > 0) { activateMain(result) } else { console.log("temp1 is empty") } }).catch((error) => { console.error("An error occurred:", error) }) } function twoPlayerHack() { function activateMain(temp1) { const hack = { keyBindings: { isCPressed: false, cTimer: null, isZPressed: false }, playerMoveData: { lastHorizontalDirection: 1, isDashingDown: false, isDashingUp: false, lastDashTime: 0, dashDuration: 100, dashEndTime: 0, isDoubleJumpAllowed: false, airDashAvailable: true, newMovementIsOn: true, division: 120, meYplus: 45, }, bindKeys: function () { document.addEventListener('keydown', function (event) { if (event.key === 'Escape') { const panel = document.getElementById('someData') const panel1 = document.getElementById('controlPanel') if (panel.style.display === 'none') { panel.style.display = 'inherit' } else { panel.style.display = 'none' } if (panel1.style.display === 'none') { panel1.style.display = 'inherit' } else { panel1.style.display = 'none' } } if (event.key.toLowerCase() === 's' && event.repeat) { if (!hack.vars.modeIsOn) { hack.getters.me.p.mass = 3 } } if (event.key.toLowerCase() === 'z' && !event.repeat) { hack.keyBindings.isZPressed = true } else if (event.repeat) { hack.keyBindings.isZPressed = false } if (event.key.toLowerCase() === 'c') { hack.keyBindings.isCPressed = true if (!hack.keyBindings.cTimer) { hack.keyBindings.cTimer = setTimeout(() => { hack.keyBindings.isCPressed = false hack.keyBindings.cTimer = null }, 250) } } }) document.addEventListener('keyup', function (event) { if (event.key.toLowerCase() === 's') { if (!hack.vars.modeIsOn) { hack.getters.me.p.mass = 1 } } if (event.key.toLowerCase() === 'z') { hack.keyBindings.isZPressed = false } if (event.key.toLowerCase() === 'c') { hack.keyBindings.isCPressed = false if (hack.keyBindings.cTimer) { clearTimeout(hack.keyBindings.cTimer) hack.keyBindings.cTimer = null } } }) }, getters: { get client() { return temp1[38].exports }, get gf() { return temp1[42].exports }, get gp() { return temp1[43].exports }, get graphics() { return temp1[44].exports }, get mode() { return temp1[48].exports }, get envirData() { return temp1[52].exports }, get rGho() { return temp1[63].exports }, get modules_resultScreen() { return temp1[72].exports }, get network() { return temp1[73].exports }, get physics() { return temp1[369].exports }, get me() { return hack.getters.mode.player.gpData }, get ray() { return hack.getters.me.ray }, get velocity() { return hack.getters.me.p.velocity }, get otherPlayers() { return hack.getters.mode.otherPlayers }, }, vars: { get isGround() {return isGrounded()}, mult: 1, lrSpd: 3, udSpd: 3, 'POSITION INFO ': '-----------------------', get currentPosX() {return Math.round(hack.getters.me.getX()*100)/100}, get currentPosY() {return Math.round(hack.getters.me.getY()*100)/100}, pX: 0, pY: 0, 'SPEED INFO ': '----------------------------', get totalSpd() {return (((this.lrSpd + this.udSpd) / 2) * this.mult)}, get currentSpdX() {return Math.round(hack.getters.me.p.velocity[0]*100)/100}, get currentSpdY() {return Math.round(hack.getters.me.p.velocity[1]*100)/100}, 'SCRIPT VALUES ': '----------------------', multSpdIsOn: false, modeIsOn: false, immIsOn: false, MMGIsOn: false, interTpToOtherIsOn: false, ghost1: false, ghost2: false, isPlayerDead: false, tpSpawnCounter: 0, 'MOVEMENT VALUES ': '---------------', }, suppFuncs: {/* searchShapesById: function(b, a = temp1[6].exports.list) { for (n = [], i = 0; i < a.length; i++) { if (a[i]?.id == b) { n.push(a[i]) } } return n }, getDistanceToShape: function(spawn = this.searchShapesById('spawn')[0], checkpoints = this.searchShapesById('checkpoint')) { let distances = checkpoints.map((checkpoint, index) => { const distance = Math.sqrt( (spawn.getX() - checkpoint.getX()) ** 2 + (spawn.getY() - checkpoint.getY()) ** 2 ); return { index, distance }; }); distances.sort((a, b) => a.distance - b.distance); return distances.map(d => d.index); },*/ getMult: () => { if (hack.vars.mult < 3) { return 1 } else if (hack.vars.mult < 4) { return 2 } }, setMult: function (e) { if (e != undefined) { hack.vars.lrSpd = hack.vars.udSpd = e return } if (hack.suppFuncs.getMult() === 1) { hack.vars.mult++ } else if (hack.suppFuncs.getMult() === 2) { hack.vars.mult += 2 } else { hack.vars.mult = 1 } }, getIndexByName: function(playerName) { const index = hack.getters.otherPlayers.findIndex(player => player?.myName === playerName) return index === -1 ? false : index } }, functions: {/* tpShape: function(e,o = 0) { this.tp(e[o].getX(),e[o].getY()) },*/ prevPos: function () { hack.vars.pX = hack.getters.mode.player.gpData.getX() hack.vars.pY = hack.getters.mode.player.gpData.getY() }, tpSpawn: function () { if (hack.vars.tpSpawnCounter == 0) { this.tp(hack.vars.pX,hack.vars.pY); hack.vars.tpSpawnCounter++ return } else if (hack.vars.tpSpawnCounter == 1) {this.tp( hack.getters.mode.spawn.refP.getX(), hack.getters.mode.spawn.refP.getY() )} hack.vars.tpSpawnCounter = 0 }, tpDoor: function () { this.prevPos() hack.vars.tpSpawnCounter = 0 this.tp( hack.getters.mode.exitGate.exitGateCounter.refP.getX(), hack.getters.mode.exitGate.exitGateCounter.refP.getY() ) }, tp: function (x,y) { hack.getters.mode.player.gpData.setX(x) hack.getters.mode.player.gpData.setY(y) }, setTpToOther: function (playerIndex) { if (!hack.vars.interTpToOtherIsOn && playerIndex !== false) { this.interTpToOther = setInterval(() => { hack.getters.me.p.position[0] = hack.getters.otherPlayers[playerIndex].gpData.p.position[0] hack.getters.me.p.position[1] = hack.getters.otherPlayers[playerIndex].gpData.p.position[1] }, 100 / 14.4) hack.vars.interTpToOtherIsOn = true } else if (playerIndex === false) { try { clearInterval(this.interTpToOther) hack.vars.interTpToOtherIsOn = false } catch { console.log('не существующий интервал') } } }, MMGEnable: function () { hack.getters.mode.makeMeGhost = function () { hack.getters.me.setAlpha(0.3) hack.getters.me.p.shapes[0].sensor = true hack.getters.me.p.gravityScale = 0 hack.getters.velocity[0] = 0 hack.getters.velocity[1] = 0 hack.getters.me.me = void 0 hack.vars.ghost2 = true hack.vars.isPlayerDead = true if (hack.vars.multSpdIsOn) { hack.functions.multSpdDisable() } hack.getters.rGho.fire(hack.getters.network.gsSocket) if (hack.getters.mode.md.mobile()) {hack.getters.mode.setupTouchButtons(true)} } hack.vars.MMGIsOn = true }, MMGDisable: function () { hack.getters.mode.makeMeGhost = () => { } hack.vars.MMGIsOn = false }, immEnable: () => { hack.getters.me.me = void 0 hack.vars.immIsOn = true }, immDisable: () => { hack.getters.me.me = true hack.vars.immIsOn = false }, godModeEnable: () => { hack.vars.ghost1 = true hack.getters.me.p.collisionResponse = false hack.getters.me.p.mass = 0 hack.vars.modeIsOn = true hack.getters.velocity[0] = 0 hack.getters.velocity[1] = 0 }, godModeDisable: () => { hack.vars.ghost1 = false hack.getters.me.p.collisionResponse = true hack.getters.me.p.mass = 1 hack.vars.modeIsOn = false hack.getters.velocity[0] = 0 hack.getters.velocity[1] = 0 }, multSpdEnable: () => { hack.vars.lrSpd *= hack.vars.mult hack.vars.udSpd *= hack.vars.mult hack.vars.multSpdIsOn = true }, multSpdDisable: () => { hack.vars.lrSpd /= hack.vars.mult hack.vars.udSpd /= hack.vars.mult hack.vars.multSpdIsOn = false } }, logFuncs: { logModeIsOn: () => { console.log('modeIsOn:', hack.vars.modeIsOn) }, logImmIsOn: () => { console.log('immIsOn:', hack.vars.immIsOn) }, logSpd: () => { console.log('speed:', ((hack.vars.lrSpd + hack.vars.udSpd) / 2) * hack.vars.mult) }, logMMGIsOn: () => { console.log('MMGIsOn:', hack.vars.MMGIsOn) } } } document.body.insertAdjacentHTML("beforebegin", ` <div id="someData" style="display: inherit; width: auto; position: fixed; top: 25px; left: 0px; height: auto; text-align: left; font-size: 14px; background: rgb(0, 0, 0); color: rgb(255, 255, 255); opacity: 0.7; padding: 2px 2px;"></div> `) const updateData = () => { const o = [] for (let i in hack.vars) { o.push(`${i}: ${hack.vars[i]}`) } for (let i in hack.playerMoveData) { o.push(`${i}: ${hack.playerMoveData[i]}`) } document.getElementById("someData").innerHTML = o.join('<br>') } setInterval(updateData, 100 / 6) document.body.insertAdjacentHTML("beforebegin", ` <div id="controlPanel" style="display: inherit; width: auto; position: fixed; bottom: 0px; left: 0px; height: auto; text-align: left; font-size: 14px; background: rgb(0, 0, 0); color: rgb(255, 255, 255); opacity: 0.7; padding: 2px 2px;"> <div> <span>new movement: </span> <button id="newMoveBtn" style="background: rgba(255, 255, 255, 0.7); color: black;">${hack.playerMoveData.newMovementIsOn}</button> </div> <div> <span>poison immunity: </span> <button id="immBtn" style="background: rgba(255, 255, 255, 0.7); color: black;">${hack.vars.immIsOn}</button> </div> <div> <span>death immunity: </span> <button id="MMGBtn" style="background: rgba(255, 255, 255, 0.7); color: black;">${!hack.vars.MMGIsOn}</button> </div> </div> `) const updateButtonStates = () => { document.getElementById("newMoveBtn").innerText = hack.playerMoveData.newMovementIsOn document.getElementById("immBtn").innerText = hack.vars.immIsOn document.getElementById("MMGBtn").innerText = !hack.vars.MMGIsOn } document.getElementById("newMoveBtn").addEventListener("click", () => { if (!hack.playerMoveData.newMovementIsOn) { newMovement() } else { oldMovement() } updateButtonStates() }) document.getElementById("immBtn").addEventListener("click", () => { if (hack.vars.immIsOn) { hack.functions.immDisable() } else { hack.functions.immEnable() } updateButtonStates() }) document.getElementById("MMGBtn").addEventListener("click", () => { if (hack.vars.MMGIsOn) { hack.functions.MMGDisable() } else { hack.functions.MMGEnable() } updateButtonStates() }) updateButtonStates() setInterval(updateButtonStates, 100 / 6) hack.functions.MMGDisable() let scrActivate = function() { hack.getters.client.loopFunctions[2].timeOut = 100 / 6 newMovement() Object.defineProperty(hack.vars, 'mult', { enumerable: false }) Object.defineProperty(hack.vars, 'lrSpd', { enumerable: false }) Object.defineProperty(hack.vars, 'udSpd', { enumerable: false }) Object.defineProperty(hack.vars, 'ghost2', { enumerable: false }) Object.defineProperty(hack.vars, 'pX', { enumerable: false }) Object.defineProperty(hack.vars, 'pY', { enumerable: false }) Object.defineProperty(hack.vars, 'tpSpawnCounter', { enumerable: false }) Object.defineProperty(hack.vars, 'multSpdIsOn', { enumerable: false }) Object.defineProperty(hack.vars, 'ghost1', { enumerable: false }) Object.defineProperty(hack.playerMoveData, 'lastDashTime', { enumerable: false }) Object.defineProperty(hack.playerMoveData, 'lastHorizontalDirection', { enumerable: false }) Object.defineProperty(hack.playerMoveData, 'lastDashTime', { enumerable: false }) Object.defineProperty(hack.playerMoveData, 'dashDuration', { enumerable: false }) Object.defineProperty(hack.playerMoveData, 'dashEndTime', { enumerable: false }) Object.defineProperty(hack.playerMoveData, 'newMovementIsOn', { enumerable: false }) Object.defineProperty(hack.playerMoveData, 'division', { enumerable: false }) Object.defineProperty(hack.playerMoveData, 'meYplus', { enumerable: false }) document.getElementById('timer').style.background = 'rgb(0, 0, 0)' document.getElementById('timer').style.color = 'rgb(255, 255, 255)' document.getElementById('mapCredits').style.background = 'rgb(0, 0, 0)' document.getElementById('mapCredits').style.color = 'rgb(255, 255, 255)' document.getElementById('leaderboard').style.background = 'rgb(0, 0, 0)' document.getElementById('timer').style.opacity = 0.7 document.getElementById('leaderboard').style.opacity = 0.7 document.getElementById('mapCredits').style.opacity = 0.7 } hack.bindKeys() hack.getters.mode.onChangeMap = function (e) { try { scrActivate() scrActivate = null } catch {} clearInterval(hack.getters.mode.startTimeId) clearTimeout(hack.getters.mode.smallStepTimeId) hack.getters.modules_resultScreen.hideResultScreen() hack.getters.gp.unload(hack.getters.gp) hack.getters.gp.list = hack.getters.gp.load(e, hack.getters.gp) hack.getters.mode.syncArr = [] hack.getters.mode.ghost = false hack.getters.mode.tweenObjects = [] hack.getters.mode.defineBehaviours(hack.getters.gp.list, hack.getters.mode.syncArr, hack.getters.gp) if (hack.getters.mode.md.mobile()) { hack.getters.mode.setupTouchButtons(false) } hack.getters.mode.setMyBio() hack.getters.mode.setBio(hack.getters.me, hack.getters.mode.myName, hack.getters.mode.mySkin, hack.getters.mode.whatBro, hack.getters.mode.chatColor, hack.getters.mode.teamColor) for (let n = 0; n < hack.getters.otherPlayers.length; n++) { if (hack.getters.otherPlayers[n]) { let t = hack.getters.otherPlayers[n].gpData.g.myIndex hack.getters.otherPlayers[n].gpData = hack.getters.mode.createPlayer() hack.getters.otherPlayers[n].gpData.g.myIndex = t hack.getters.gp.gWorld.removeChild(hack.getters.otherPlayers[n].gpData.g) hack.getters.gp.gWorld.mid.addChild(hack.getters.otherPlayers[n].gpData.g) hack.getters.mode.setBio( hack.getters.otherPlayers[n].gpData, hack.getters.otherPlayers[n].myName, hack.getters.otherPlayers[n].mySkin, hack.getters.otherPlayers[n].whatBro, hack.getters.otherPlayers[n].chatColor, hack.getters.otherPlayers[n].teamColor ) } } hack.getters.mode.firstTimeMapChange = hack.getters.mode.firstTimeMapChange || true hack.getters.mode.smallStepTimeId = setTimeout(function () { document.getElementById("startTime").style.display = "inherit" document.getElementById("startTime").innerHTML = hack.getters.mode.startTime hack.getters.client.runPhysics = false hack.getters.mode.startTimeId = setInterval(function () { hack.getters.mode.startTime++ document.getElementById("startTime").innerHTML = hack.getters.mode.startTime if (hack.getters.mode.startTime == 3) { hack.getters.mode.startTime = 0 hack.getters.client.runPhysics = true clearInterval(hack.getters.mode.startTimeId) document.getElementById("startTime").style.display = "none" } }, 1000) }, 0) hack.getters.me.me = true if (hack.vars.modeIsOn) { hack.functions.godModeEnable() } else { hack.functions.godModeDisable() } if (hack.vars.immIsOn) { hack.functions.immEnable() } else { hack.functions.immDisable() } hack.vars.ghost2 = false hack.vars.isPlayerDead = false } document.body.onkeydown = (event) => { const keyCode = event.keyCode switch (keyCode) { case 17: hack.getters.mode.makeMeGhost() break case 113: if (!hack.vars.modeIsOn) { hack.functions.godModeEnable() hack.logFuncs.logModeIsOn() hack.functions.multSpdEnable() } else { hack.functions.godModeDisable() hack.logFuncs.logModeIsOn() hack.functions.multSpdDisable() } break case 36: hack.functions.tpSpawn() break case 35: hack.functions.tpDoor() break case 120: if (!hack.vars.MMGIsOn) { hack.functions.MMGEnable() hack.logFuncs.logMMGIsOn() } else { hack.functions.MMGDisable() hack.logFuncs.logMMGIsOn() } break case 192: case 190: if (hack.vars.modeIsOn) { hack.suppFuncs.setMult() hack.logFuncs.logSpd() } break case 45: case 96: hack.functions.setTpToOther(hack.suppFuncs.getIndexByName(prompt('Введите корректный никнейм. Чтобы выйти из интервала нажмите Esc.'))) break case 115: if (!hack.vars.immIsOn) { hack.functions.immEnable() hack.logFuncs.logImmIsOn() } else { hack.functions.immDisable() hack.logFuncs.logImmIsOn() } break } } function isGrounded() { const meX = hack.getters.me.getX() const meY = hack.getters.me.getY() const ray = hack.getters.ray const physics = hack.getters.physics const gpPWorld = hack.getters.gp.pWorld const rayResult = hack.getters.me.ray.result const rayHitPoint = (hack.getters.ray.hitPoint = [Infinity, Infinity]) const division = hack.playerMoveData.division const meYplus = hack.playerMoveData.meYplus const verticalOffset = 50 const checkYPosition = meY + meYplus for (let i = 0; i < division+1; i++) { const o = meX - 15 + i * (30 / division) const s = checkYPosition const u = s + verticalOffset ray.from = [physics.xAxis(o, 0), physics.yAxis(s, 0)] ray.to = [physics.xAxis(o, 0), physics.yAxis(u, 0)] ray.update() rayResult.reset() if (gpPWorld.raycast(rayResult, ray)) { rayResult.getHitPoint(rayHitPoint, ray) const hitDistance = rayResult.getHitDistance(ray) if (rayResult.shape.ref.getCollision() && hitDistance < 0.1) { return true } } } return false } function newMovement() { hack.playerMoveData.division = 120 hack.playerMoveData.meYplus = 45 hack.getters.client.loopFunctions[2].fun = function() { const currentTime = Date.now() const dashCooldown = 250 const dashDistance = 2.5 const dashSpeed = 25 const grounded = isGrounded() if (grounded) { hack.playerMoveData.airDashAvailable = true } if (hack.getters.mode.moveLeft) { hack.playerMoveData.lastHorizontalDirection = -1 } else if (hack.getters.mode.moveRight) { hack.playerMoveData.lastHorizontalDirection = 1 } if ( hack.keyBindings.isCPressed && hack.getters.mode.moveDown && currentTime - hack.playerMoveData.lastDashTime >= dashCooldown && !hack.playerMoveData.isDashingDown && (grounded || (!grounded && hack.playerMoveData.airDashAvailable)) ) { hack.playerMoveData.lastDashTime = currentTime hack.playerMoveData.isDashingDown = true hack.playerMoveData.dashDuration = (dashDistance / dashSpeed) * 1000 hack.playerMoveData.dashEndTime = currentTime + hack.playerMoveData.dashDuration if (!grounded) { hack.playerMoveData.airDashAvailable = false } } if ( hack.keyBindings.isCPressed && hack.getters.mode.moveUp && currentTime - hack.playerMoveData.lastDashTime >= dashCooldown && !hack.playerMoveData.isDashingUp && (grounded || (!grounded && hack.playerMoveData.airDashAvailable)) ) { hack.playerMoveData.lastDashTime = currentTime hack.playerMoveData.isDashingUp = true hack.playerMoveData.dashDuration = (dashDistance / dashSpeed) * 1000 hack.playerMoveData.dashEndTime = currentTime + hack.playerMoveData.dashDuration if (!grounded) { hack.playerMoveData.airDashAvailable = false } } if ( hack.keyBindings.isCPressed && currentTime - hack.playerMoveData.lastDashTime >= dashCooldown && !hack.playerMoveData.isDashing && (grounded || (!grounded && hack.playerMoveData.airDashAvailable)) ) { hack.playerMoveData.lastDashTime = currentTime hack.playerMoveData.isDashing = true hack.playerMoveData.dashVelocity = dashSpeed * hack.playerMoveData.lastHorizontalDirection hack.playerMoveData.dashDuration = (dashDistance / dashSpeed) * 1000 hack.playerMoveData.dashEndTime = currentTime + hack.playerMoveData.dashDuration if (!grounded) { hack.playerMoveData.airDashAvailable = false } } if (hack.playerMoveData.isDashingDown) { hack.getters.mode.player.gpData.p.velocity[1] = -dashSpeed hack.getters.mode.player.gpData.p.velocity[0] = 0 hack.getters.me.p.collisionResponse = false if (currentTime >= hack.playerMoveData.dashEndTime) { hack.playerMoveData.isDashingDown = false hack.getters.mode.player.gpData.p.velocity[1] = 0 if (!hack.vars.modeIsOn) { hack.getters.me.p.collisionResponse = true } } return } if (hack.playerMoveData.isDashingUp) { hack.getters.mode.player.gpData.p.velocity[1] = dashSpeed hack.getters.mode.player.gpData.p.velocity[0] = 0 hack.getters.me.p.collisionResponse = false if (currentTime >= hack.playerMoveData.dashEndTime) { hack.playerMoveData.isDashingUp = false hack.getters.mode.player.gpData.p.velocity[1] = 0 if (!hack.vars.modeIsOn) { hack.getters.me.p.collisionResponse = true } } return } if (hack.playerMoveData.isDashing) { hack.getters.mode.player.gpData.p.velocity[0] = hack.playerMoveData.dashVelocity hack.getters.mode.player.gpData.p.velocity[1] = 0 hack.getters.me.p.collisionResponse = false if (currentTime >= hack.playerMoveData.dashEndTime) { hack.playerMoveData.isDashing = false hack.getters.mode.player.gpData.p.velocity[0] = 0 if (!hack.vars.modeIsOn) { hack.getters.me.p.collisionResponse = true } } return } else { if (hack.getters.mode.moveRight) { hack.getters.mode.player.gpData.p.velocity[0] = hack.vars.lrSpd * hack.vars.mult } else if (hack.getters.mode.moveLeft) { hack.getters.mode.player.gpData.p.velocity[0] = -hack.vars.lrSpd * hack.vars.mult } else { hack.getters.mode.player.gpData.p.velocity[0] = 0 } } if (grounded) { hack.playerMoveData.isDoubleJumpAllowed = true if (hack.keyBindings.isZPressed) { hack.keyBindings.isZPressed = false hack.getters.velocity[1] = 8*(hack.getters.me.p.gravityScale) } } else if (hack.playerMoveData.isDoubleJumpAllowed && hack.keyBindings.isZPressed) { hack.keyBindings.isZPressed = false hack.getters.velocity[1] = 8*(hack.getters.me.p.gravityScale) hack.playerMoveData.isDoubleJumpAllowed = false } if (hack.vars.ghost1 || hack.vars.ghost2) { if (hack.getters.mode.moveUp) { hack.getters.velocity[1] = hack.vars.udSpd * hack.vars.mult } if (hack.getters.mode.moveDown) { hack.getters.velocity[1] = -hack.vars.udSpd * hack.vars.mult } if (!hack.getters.mode.moveUp && !hack.getters.mode.moveDown) { hack.getters.velocity[1] = 0 } } } hack.playerMoveData.newMovementIsOn = true} function oldMovement() { hack.playerMoveData.division = 12 hack.playerMoveData.meYplus = 49 hack.getters.client.loopFunctions[2].fun = function() { const grounded = isGrounded() if (hack.getters.mode.moveRight) { hack.getters.mode.player.gpData.p.velocity[0] = hack.vars.lrSpd * hack.vars.mult } else if (hack.getters.mode.moveLeft) { hack.getters.mode.player.gpData.p.velocity[0] = -hack.vars.lrSpd * hack.vars.mult } else { hack.getters.mode.player.gpData.p.velocity[0] = 0 } if (grounded) { if (hack.getters.mode.moveUp) { hack.getters.velocity[1] = 8 } } if (hack.vars.ghost1 || hack.vars.ghost2) { if (hack.getters.mode.moveUp) { hack.getters.velocity[1] = hack.vars.udSpd * hack.vars.mult } if (hack.getters.mode.moveDown) { hack.getters.velocity[1] = -hack.vars.udSpd * hack.vars.mult } if (!hack.getters.mode.moveUp && !hack.getters.mode.moveDown) { hack.getters.velocity[1] = 0 } } } hack.playerMoveData.newMovementIsOn = false} addEventListener("mousewheel", e => { tweenObjects.map(x => { try { hack.getters.mode.player.gpData.p.velocity[1] = -Math.sign(e.deltaY) * 15 } catch(e) {} }) }) } let temp1 = {}; const _call = Function.prototype.call; new Promise((resolve, reject) => { Function.prototype.call = function (...args) { if (args[2]?.exports) { temp1 = args[6] Function.prototype.call = _call console.log(temp1) resolve(temp1) } return _call.apply(this, args) }; }).then((result) => { if (Object.keys(result).length > 0) { activateMain(result) } else { console.log("temp1 is empty") } }).catch((error) => { console.error("An error occurred:", error) }) } function hideAndSeekHack() { function activateMain(temp1) { const hack = { keyBindings: { isCPressed: false, cTimer: null, isZPressed: false }, playerMoveData: { lastHorizontalDirection: 1, isDashingDown: false, isDashingUp: false, lastDashTime: 0, dashDuration: 100, dashEndTime: 0, isDoubleJumpAllowed: false, airDashAvailable: true, newMovementIsOn: true }, bindKeys: function () { document.addEventListener('keydown', function (event) { if (event.key === 'Escape') { const panel = document.getElementById('someData') const panel1 = document.getElementById('controlPanel') if (panel.style.display === 'none') { panel.style.display = 'inherit' } else { panel.style.display = 'none' } if (panel1.style.display === 'none') { panel1.style.display = 'inherit' } else { panel1.style.display = 'none' } } if (event.key.toLowerCase() === 's' && event.repeat) { if (!hack.vars.modeIsOn) { hack.getters.me.p.mass = 3 } } if (event.key.toLowerCase() === 'z' && !event.repeat) { hack.keyBindings.isZPressed = true } else if (event.repeat) { hack.keyBindings.isZPressed = false } if (event.key.toLowerCase() === 'c') { hack.keyBindings.isCPressed = true if (!hack.keyBindings.cTimer) { hack.keyBindings.cTimer = setTimeout(() => { hack.keyBindings.isCPressed = false hack.keyBindings.cTimer = null }, 250) } } }) document.addEventListener('keyup', function (event) { if (event.key.toLowerCase() === 's') { if (!hack.vars.modeIsOn) { hack.getters.me.p.mass = 1 } } if (event.key.toLowerCase() === 'z') { hack.keyBindings.isZPressed = false } if (event.key.toLowerCase() === 'c') { hack.keyBindings.isCPressed = false if (hack.keyBindings.cTimer) { clearTimeout(hack.keyBindings.cTimer) hack.keyBindings.cTimer = null } } }) }, getters: { get client() { return temp1[38].exports }, get gf() { return temp1[42].exports }, get gp() { return temp1[43].exports }, get graphics() { return temp1[44].exports }, get mode() { return temp1[48].exports }, get envirData() { return temp1[53].exports }, get network() { return temp1[74].exports }, get physics() { return temp1[370].exports }, get me() { return hack.getters.mode.player.gpData }, get ray() { return hack.getters.me.ray }, get velocity() { return hack.getters.me.p.velocity }, get otherPlayers() { return hack.getters.mode.otherPlayers }, get ray() { return this.mode.player.gpData.ray }, get velocity() { return this.mode.player.gpData.p.velocity }, get otherPlayers() { return this.mode.otherPlayers }, ghost: false, get me() { return hack.getters.mode.player.gpData }, get ray() { return hack.getters.me.ray }, get velocity() { return hack.getters.me.p.velocity }, get otherPlayers() { return hack.getters.mode.otherPlayers } }, vars: { get isGround() { return isGrounded() }, mult: 1, lrSpd: 3, udSpd: 3, 'POSITION INFO ': '-----------------------', get currentPosX() { return Math.round(hack.getters.me.getX() * 100) / 100 }, get currentPosY() { return Math.round(hack.getters.me.getY() * 100) / 100 }, 'SPEED INFO ': '----------------------------', get totalSpd() { return (((this.lrSpd + this.udSpd) / 2) * this.mult) }, get currentSpdX() { return Math.round(hack.getters.me.p.velocity[0] * 100) / 100 }, get currentSpdY() { return Math.round(hack.getters.me.p.velocity[1] * 100) / 100 }, 'SCRIPT VALUES ': '----------------------', multSpdIsOn: false, modeIsOn: false, ghost1: false, isPlayerDead: false, 'MOVEMENT VALUES ': '---------------' }, suppFuncs: { getMult: () => { if (hack.vars.mult < 3) { return 1 } else if (hack.vars.mult < 4) { return 2 } }, setMult: function (e) { if (e != undefined) { return (hack.vars.lrSpd = hack.vars.udSpd = e) } if (hack.suppFuncs.getMult() === 1) { hack.vars.mult++ } else if (hack.suppFuncs.getMult() === 2) { hack.vars.mult += 2 } else { hack.vars.mult = 1 } }, getIndexByName: function (playerName) { const index = hack.getters.otherPlayers.findIndex(player => player?.myName === playerName) return index === -1 ? false : index } }, functions: { godModeEnable: () => { hack.vars.ghost1 = true hack.getters.me.p.collisionResponse = false hack.getters.me.p.mass = 0 hack.vars.modeIsOn = true hack.getters.velocity[0] = 0 hack.getters.velocity[1] = 0 }, godModeDisable: () => { hack.vars.ghost1 = false hack.getters.me.p.collisionResponse = true hack.getters.me.p.mass = 1 hack.vars.modeIsOn = false hack.getters.velocity[0] = 0 hack.getters.velocity[1] = 0 }, multSpdEnable: () => { hack.vars.lrSpd *= hack.vars.mult hack.vars.udSpd *= hack.vars.mult hack.vars.multSpdIsOn = true }, multSpdDisable: () => { hack.vars.lrSpd /= hack.vars.mult hack.vars.udSpd /= hack.vars.mult hack.vars.multSpdIsOn = false } }, logFuncs: { logModeIsOn: () => { console.log('modeIsOn:', hack.vars.modeIsOn) }, logSpd: () => { console.log('speed:', ((hack.vars.lrSpd + hack.vars.udSpd) / 2) * hack.vars.mult) } } } document.body.insertAdjacentHTML("beforebegin", ` <div id="someData" style="display: inherit; width: auto; position: fixed; top: 25px; left: 0px; height: auto; text-align: left; font-size: 14px; background: rgb(0, 0, 0); color: rgb(255, 255, 255); opacity: 0.7; padding: 2px 2px;"></div> `) const updateData = () => { const o = [] for (let i in hack.vars) { o.push(`${i}: ${hack.vars[i]}`) } for (let i in hack.playerMoveData) { o.push(`${i}: ${hack.playerMoveData[i]}`) } document.getElementById("someData").innerHTML = o.join('<br>') } document.body.insertAdjacentHTML("beforebegin", ` <div id="controlPanel" style="display: inherit; width: auto; position: fixed; bottom: 0px; left: 0px; height: auto; text-align: left; font-size: 14px; background: rgb(0, 0, 0); color: rgb(255, 255, 255); opacity: 0.7; padding: 2px 2px;"> <div> <span>new movement: </span> <button id="newMoveBtn" style="background: rgba(255, 255, 255, 0.7); color: black;">${hack.playerMoveData.newMovementIsOn}</button> </div> </div> `) const updateButtonStates = () => { document.getElementById("newMoveBtn").innerText = hack.playerMoveData.newMovementIsOn } document.getElementById("newMoveBtn").addEventListener("click", () => { if (!hack.playerMoveData.newMovementIsOn) { newMovement() } else { oldMovement() } updateButtonStates() }) setInterval(updateData, 100 / 6) updateButtonStates() setInterval(updateButtonStates, 100 / 6) hack.bindKeys() let scrActivate = function () { hack.getters.client.loopFunctions[2].timeOut = 100 / 6 hack.getters.client.loopFunctions[3].timeOut = 0 oldMovement() Object.defineProperty(hack.vars, 'mult', { enumerable: false }) Object.defineProperty(hack.vars, 'lrSpd', { enumerable: false }) Object.defineProperty(hack.vars, 'udSpd', { enumerable: false }) Object.defineProperty(hack.vars, 'multSpdIsOn', { enumerable: false }) Object.defineProperty(hack.vars, 'ghost1', { enumerable: false }) Object.defineProperty(hack.playerMoveData, 'lastDashTime', { enumerable: false }) Object.defineProperty(hack.playerMoveData, 'lastHorizontalDirection', { enumerable: false }) Object.defineProperty(hack.playerMoveData, 'lastDashTime', { enumerable: false }) Object.defineProperty(hack.playerMoveData, 'dashDuration', { enumerable: false }) Object.defineProperty(hack.playerMoveData, 'dashEndTime', { enumerable: false }) Object.defineProperty(hack.playerMoveData, 'newMovementIsOn', { enumerable: false }) document.getElementById('timer').style.opacity = 0.7 document.getElementById('timer').style.background = 'rgb(0, 0, 0)' document.getElementById('timer').style.color = 'rgb(255, 255, 255)' document.getElementById('seekerDistance').style.opacity = 0.7 document.getElementById('seekerDistance').style.background = 'rgb(0, 0, 0)' document.getElementById('seekerDistance').style.color = 'rgb(255, 255, 255)' document.getElementById('hidersCount').style.color = 'rgb(255, 255, 255)' document.getElementById('hidersCount').style.opacity = 0.7 } setTimeout(() => {if (hack.vars.modeIsOn) {hack.functions.godModeEnable()}},300) hack.getters.client.findUntilFound = function (e, t, n) { hack.getters.network.gsip = e; hack.getters.network.gsrn = t; hack.getters.network.getSID?.((sid) => { hack.getters.network.sid = sid; hack.getters.network.connectToGs?.(hack.getters.network.gsip, () => { console.log("connected to gs"); hack.getters.client.verifyIsHuman?.(() => { hack.getters.network.registerSidOnGs?.((verifyStatus) => { console.log("verified on gs server", verifyStatus); if (verifyStatus === "") { alert("You are already playing the game in another browser tab."); location.reload(); n(2); } else { hack.getters.network.joinRoom?.(hack.getters.network.gsrn, (joinStatus) => { if (joinStatus === 1) { hack.getters.client.sendPlayingInfo?.(hack.getters.client.roomId, () => { hack.getters.client.onReady?.(); n(1); scrActivate() }); } else { console.log("else"); hack.getters.network.gsSockehack?.getters.client.disconnect?.(); do { hack.getters.client.rIndex++; const currentDataCenter = hack.getters.network.dataCenters?.[hack.getters.client.dcIndex]; if (!currentDataCenter?.[hack.getters.client.rIndex]) { hack.getters.client.dcIndex++; hack.getters.client.rIndex = 0; if (!hack.getters.network.dataCenters?.[hack.getters.client.dcIndex]) { alert("It seems all servers are full. Please refresh your page and try again."); location.reload(); return; } } } while (hack.getters.network.dataCenters?.[hack.getters.client.dcIndex]?.[hack.getters.client.rIndex]?.[2] !== hack.getters.client.modeInfo.mp); const newGsip = hack.getters.network.dataCenters?.[hack.getters.client.dcIndex]?.[hack.getters.client.rIndex]?.[1]; const newGsrn = hack.getters.network.dataCenters?.[hack.getters.client.dcIndex]?.[hack.getters.client.rIndex]?.[3]; hack.getters.client.roomId = hack.getters.network.dataCenters?.[hack.getters.client.dcIndex]?.[hack.getters.client.rIndex]?.[4]; hack.getters.client.findUntilFound(newGsip, newGsrn, n); } }); } }); }); }); }); }; document.body.onkeydown = (event) => { const keyCode = event.keyCode switch (keyCode) { case 17: hack.getters.mode.makeMeGhost() break case 113: if (!hack.vars.modeIsOn) { hack.functions.godModeEnable() hack.logFuncs.logModeIsOn() hack.functions.multSpdEnable() } else { hack.functions.godModeDisable() hack.logFuncs.logModeIsOn() hack.functions.multSpdDisable() } break case 192: case 190: if (hack.vars.modeIsOn) { hack.suppFuncs.setMult() hack.logFuncs.logSpd() } break } } function isGrounded() { const meX = hack.getters.me.getX() const meY = hack.getters.me.getY() const ray = hack.getters.ray const physics = hack.getters.physics const gpPWorld = hack.getters.gp.pWorld const rayResult = hack.getters.me.ray.result const rayHitPoint = (hack.getters.ray.hitPoint = [Infinity, Infinity]) const verticalOffset = 50 const checkYPosition = meY + 45 for (let i = 0; i < 121; i++) { const o = meX - 15 + i * (30 / 120) const s = checkYPosition const u = s + verticalOffset ray.from = [physics.xAxis(o, 0), physics.yAxis(s, 0)] ray.to = [physics.xAxis(o, 0), physics.yAxis(u, 0)] ray.update() rayResult.reset() if (gpPWorld.raycast(rayResult, ray)) { rayResult.getHitPoint(rayHitPoint, ray) const hitDistance = rayResult.getHitDistance(ray) if (rayResult.shape.ref.getCollision() && hitDistance < 0.1) { return true } } } return false } function newMovement() { hack.getters.client.loopFunctions[2].fun = function () { const currentTime = Date.now() const dashCooldown = 250 const dashDistance = 2.5 const dashSpeed = 25 const grounded = isGrounded() if (grounded) { hack.playerMoveData.airDashAvailable = true } if (hack.getters.mode.moveLeft) { hack.playerMoveData.lastHorizontalDirection = -1 } else if (hack.getters.mode.moveRight) { hack.playerMoveData.lastHorizontalDirection = 1 } if ( hack.keyBindings.isCPressed && hack.getters.mode.moveDown && currentTime - hack.playerMoveData.lastDashTime >= dashCooldown && !hack.playerMoveData.isDashingDown && (grounded || (!grounded && hack.playerMoveData.airDashAvailable)) ) { hack.playerMoveData.lastDashTime = currentTime hack.playerMoveData.isDashingDown = true hack.playerMoveData.dashDuration = (dashDistance / dashSpeed) * 1000 hack.playerMoveData.dashEndTime = currentTime + hack.playerMoveData.dashDuration if (!grounded) { hack.playerMoveData.airDashAvailable = false } } if ( hack.keyBindings.isCPressed && hack.getters.mode.moveUp && currentTime - hack.playerMoveData.lastDashTime >= dashCooldown && !hack.playerMoveData.isDashingUp && (grounded || (!grounded && hack.playerMoveData.airDashAvailable)) ) { hack.playerMoveData.lastDashTime = currentTime hack.playerMoveData.isDashingUp = true hack.playerMoveData.dashDuration = (dashDistance / dashSpeed) * 1000 hack.playerMoveData.dashEndTime = currentTime + hack.playerMoveData.dashDuration if (!grounded) { hack.playerMoveData.airDashAvailable = false } } if ( hack.keyBindings.isCPressed && currentTime - hack.playerMoveData.lastDashTime >= dashCooldown && !hack.playerMoveData.isDashing && (grounded || (!grounded && hack.playerMoveData.airDashAvailable)) ) { hack.playerMoveData.lastDashTime = currentTime hack.playerMoveData.isDashing = true hack.playerMoveData.dashVelocity = dashSpeed * hack.playerMoveData.lastHorizontalDirection hack.playerMoveData.dashDuration = (dashDistance / dashSpeed) * 1000 hack.playerMoveData.dashEndTime = currentTime + hack.playerMoveData.dashDuration if (!grounded) { hack.playerMoveData.airDashAvailable = false } } if (hack.playerMoveData.isDashingDown) { hack.getters.mode.player.gpData.p.velocity[1] = -dashSpeed hack.getters.mode.player.gpData.p.velocity[0] = 0 hack.getters.me.p.collisionResponse = false if (currentTime >= hack.playerMoveData.dashEndTime) { hack.playerMoveData.isDashingDown = false hack.getters.mode.player.gpData.p.velocity[1] = 0 if (!hack.vars.modeIsOn) { hack.getters.me.p.collisionResponse = true } } return } if (hack.playerMoveData.isDashingUp) { hack.getters.mode.player.gpData.p.velocity[1] = dashSpeed hack.getters.mode.player.gpData.p.velocity[0] = 0 hack.getters.me.p.collisionResponse = false if (currentTime >= hack.playerMoveData.dashEndTime) { hack.playerMoveData.isDashingUp = false hack.getters.mode.player.gpData.p.velocity[1] = 0 if (!hack.vars.modeIsOn) { hack.getters.me.p.collisionResponse = true } } return } if (hack.playerMoveData.isDashing) { hack.getters.mode.player.gpData.p.velocity[0] = hack.playerMoveData.dashVelocity hack.getters.mode.player.gpData.p.velocity[1] = 0 hack.getters.me.p.collisionResponse = false if (currentTime >= hack.playerMoveData.dashEndTime) { hack.playerMoveData.isDashing = false hack.getters.mode.player.gpData.p.velocity[0] = 0 if (!hack.vars.modeIsOn) { hack.getters.me.p.collisionResponse = true } } return } else { if (hack.getters.mode.moveRight) { hack.getters.mode.player.gpData.p.velocity[0] = hack.vars.lrSpd * hack.vars.mult } else if (hack.getters.mode.moveLeft) { hack.getters.mode.player.gpData.p.velocity[0] = -hack.vars.lrSpd * hack.vars.mult } else { hack.getters.mode.player.gpData.p.velocity[0] = 0 } } if (grounded) { hack.playerMoveData.isDoubleJumpAllowed = true if (hack.keyBindings.isZPressed) { hack.keyBindings.isZPressed = false hack.getters.velocity[1] = 8 * (hack.getters.me.p.gravityScale) } } else if (hack.playerMoveData.isDoubleJumpAllowed && hack.keyBindings.isZPressed) { hack.keyBindings.isZPressed = false hack.getters.velocity[1] = 8 * (hack.getters.me.p.gravityScale) hack.playerMoveData.isDoubleJumpAllowed = false } if (hack.vars.ghost1) { if (hack.getters.mode.moveUp) { hack.getters.velocity[1] = hack.vars.udSpd * hack.vars.mult } if (hack.getters.mode.moveDown) { hack.getters.velocity[1] = -hack.vars.udSpd * hack.vars.mult } if (!hack.getters.mode.moveUp && !hack.getters.mode.moveDown) { hack.getters.velocity[1] = 0 } } } hack.playerMoveData.newMovementIsOn = true } function oldMovement() { hack.getters.client.loopFunctions[2].fun = function () { const grounded = isGrounded() if (hack.getters.mode.moveRight) { hack.getters.mode.player.gpData.p.velocity[0] = hack.vars.lrSpd * hack.vars.mult } else if (hack.getters.mode.moveLeft) { hack.getters.mode.player.gpData.p.velocity[0] = -hack.vars.lrSpd * hack.vars.mult } else { hack.getters.mode.player.gpData.p.velocity[0] = 0 } if (grounded) { if (hack.getters.mode.moveUp) { hack.getters.velocity[1] = 8 } } if (hack.vars.ghost1) { if (hack.getters.mode.moveUp) { hack.getters.velocity[1] = hack.vars.udSpd * hack.vars.mult } if (hack.getters.mode.moveDown) { hack.getters.velocity[1] = -hack.vars.udSpd * hack.vars.mult } if (!hack.getters.mode.moveUp && !hack.getters.mode.moveDown) { hack.getters.velocity[1] = 0 } } } hack.playerMoveData.newMovementIsOn = false } addEventListener("mousewheel", e => { tweenObjects.map(x => { try { hack.getters.mode.player.gpData.p.velocity[1] = -Math.sign(e.deltaY) * 15 } catch(e) {} }) }) } let temp1 = {}; const _call = Function.prototype.call; new Promise((resolve, reject) => { Function.prototype.call = function (...args) { if (args[2]?.exports) { temp1 = args[6] Function.prototype.call = _call console.log(temp1) resolve(temp1) } return _call.apply(this, args) }; }).then((result) => { if (Object.keys(result).length > 0) { activateMain(result) } else { console.log("temp1 is empty") } }).catch((error) => { console.error("An error occurred:", error) }) } if (window.location.href == 'http://brofist.io/modes/sandbox/c/index.html') { sandboxHack(); } else if (window.location.href == 'http://brofist.io/modes/twoPlayer/c/index.html') { twoPlayerHack(); } else if (window.location.href == 'http://brofist.io/modes/hideAndSeek/c/index.html') { hideAndSeekHack(); }