您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
v - spike, f - trap, - h - 2 turrets, space - spikeTick, r - insta, c - 4 spike "insta", rightMouse - tankspam, o - qadro boost/trap, ESC - menu beta, T - rev insta, G - beta one tick boost, (deleted part, report.)>:()
当前为
// ==UserScript== // @name myMod 2 (old v4) sorry for this report sender // @namespace Nigger 12 // @version 4_Beta // @description v - spike, f - trap, - h - 2 turrets, space - spikeTick, r - insta, c - 4 spike "insta", rightMouse - tankspam, o - qadro boost/trap, ESC - menu beta, T - rev insta, G - beta one tick boost, (deleted part, report.)>:() // @author Undyne the Undying (author gondon) // @license MIT // @match *://moomoo.io/* // @match *://sandbox.moomoo.io/* // @match *://dev.moomoo.io/* // @require https://greasyfork.org/scripts/423602-msgpack/code/msgpack.js?version=912797 // @require http://code.jquery.com/jquery-3.3.1.min.js // @require https://code.jquery.com/ui/1.12.0/jquery-ui.min.js // @require https://cdnjs.cloudflare.com/ajax/libs/jquery-confirm/3.3.0/jquery-confirm.min.js // @grant none // @icon https://cdn.discordapp.com/avatars/1131925981460975676/36b51f984147c8b907af0a3dcb834853.png?size=4096 // @run-at document-end // ==/UserScript== var Speed = 0; function speedweapon() { if(myPlayer.weapon == 0){Speed = 300} if(myPlayer.weapon == 1){Speed = 400} if(myPlayer.weapon == 2){Speed = 400} if(myPlayer.weapon == 3){Speed = 300} if(myPlayer.weapon == 4){Speed = 300} if(myPlayer.weapon == 5){Speed = 700} if(myPlayer.weapon == 6){Speed = 300} if(myPlayer.weapon == 7){Speed = 100} if(myPlayer.weapon == 10){Speed = 400} } function speedWeaponall() { if (myPlayer.weapon == 0) {SpeedAll = 300} if (myPlayer.weapon == 1) {SpeedAll = 400} if (myPlayer.weapon == 2) {SpeedAll = 400} if (myPlayer.weapon == 3) {SpeedAll = 300} if (myPlayer.weapon == 4) {SpeedAll = 300} if (myPlayer.weapon == 5) {SpeedAll = 700} if (myPlayer.weapon == 6) {SpeedAll = 300} if (myPlayer.weapon == 7) {SpeedAll = 100} if (myPlayer.weapon == 8) {SpeedAll = 400} if (myPlayer.weapon == 9) {SpeedAll = 600} if (myPlayer.weapon == 10) {SpeedAll = 400} if (myPlayer.weapon == 12) {SpeedAll = 700} if (myPlayer.weapon == 13) {SpeedAll = 230} if (myPlayer.weapon == 14) {SpeedAll = 700} if (myPlayer.weapon == 15) {SpeedAll = 1500} } function speedWeapon3() { doNewSend(["G", [primary, true]]) doNewSend(["G", [primary, true]]); if (myPlayer.weapon == 0) {Speed3 = 300} if (myPlayer.weapon == 1) {Speed3 = 400} if (myPlayer.weapon == 2) {Speed3 = 400} if (myPlayer.weapon == 3) {Speed3 = 300} if (myPlayer.weapon == 4) {Speed3 = 300} if (myPlayer.weapon == 5) {Speed3 = 700} if (myPlayer.weapon == 6) {Speed3 = 300} if (myPlayer.weapon == 7) {Speed3 = 100} if (myPlayer.weapon == 8) {Speed3 = 400} } var SpeedAll = 0; var Speed3 = 0; var Speed2 = 0; var BlockPW = false; var LowHeal = false; function speedWeapon2() { doNewSend(["G", [secondary, true]]) doNewSend(["G", [secondary, true]]); doNewSend(["G", [secondary, true]]) doNewSend(["G", [secondary, true]]); if (myPlayer.weapon == 9) {Speed2 = 600} if (myPlayer.weapon == 10) {Speed2 = 400} if (myPlayer.weapon == 12) {Speed2 = 700} if (myPlayer.weapon == 13) {Speed2 = 230} if (myPlayer.weapon == 15) {Speed2 = 1500} doNewSend(["G", [secondary, true]]) doNewSend(["G", [secondary, true]]); doNewSend(["G", [secondary, true]]) doNewSend(["G", [secondary, true]]); } function OldIdWeapon() { if ( myPlayer.weapon == 9 || myPlayer.weapon == 10 || myPlayer.weapon == 11 || myPlayer.weapon == 12 || myPlayer.weapon == 13 || myPlayer.weapon == 14 || myPlayer.weapon == 15 ) { doNewSend(["G", [secondary, true]]); } else { doNewSend(["G", [primary, true]]); } } function storeBuy(id, index) { doNewSend("13c", 1, id, index); } var AntiTi = false; var AutoSh = false; var AutoQ = false; var bht = false; function biomeHat() { if (myPlayer.y < 2400) { hat(15); } else { if (myPlayer.y > 6850 && myPlayer.y < 7550) { hat(31); } else { hat(12); } } } function time(a, b) { setTimeout( () => { b }, a); } let weaponSpeed = [300, 400, 400, 300, 300, 700, 300, 100, 400, 600, 400, 0, 700, 230, 700, 1500] let weaponSrc = [ "hammer_1", "axe_1", "great_axe_1", "sword_1", "samurai_1", "spear_1", "bat_1", "dagger_1", "stick_1", "bow_1", "great_hammer_1", "shield_1", "crossbow_1", "crossbow_2", "grab_1", "musket_1" ] var onWeapon; document.getElementById("enterGame").addEventListener('click', autohide); var autohide = $("ot-sdk-btn-floating").remove(); document.getElementById('linksContainer2').remove(); document.getElementById('gameName').innerHTML = 'MyMod'; document.getElementById('loadingText').innerHTML = 'V4_BETA' document.getElementById('diedText').innerHTML = "Wasted"; document.getElementById('diedText').style.color = "#000000"; document.getElementById("storeHolder").style = "height: 1200px; width: 450px;"; document.getElementById("promoImgHolder").remove(); document.querySelector("#pre-content-container").remove(); //ANTI AD $('#itemInfoHolder').css({'top':'1050px', 'left':'15px' }); $("darkness").remove(); $("#youtuberOf").remove(); $("#adCard").remove(); $("#mobileInstructions").remove(); $("#downloadButtonContainer").remove(); $("#mobileDownloadButtonContainer").remove(); $(".downloadBadge").remove(); let details = document.createElement("div"); details.id = "details"; document.body.prepend(details); var ping = document.getElementById("pingDisplay"); ping.style.fontSize = "20px"; ping.style.display = "block"; ping.style.zIndex = "1"; document.body.appendChild(ping); setInterval(function() { if (window.pingTime && ping) { ping.innerHTML = "Ping: " + window.pingTime + " | " + (myPlayer.hat == 45 ? "ShameTimer-[" + 30-1 + "s]" : "Shame[" + shame + "]"); } }, window.pingTime ? 0 : 1e3); //Credits to [GG]GAMER (skidded shaem counter) var pingTime = window.pingTime; let lastDamageTick = 0; let HP = 100; let gameTick = 0; var shame = 0; let shameTime, damageTimes = 0; let friendlyMillLocs = []; let EnemyTrapLocs = []; let nearestFriendlyMill; let nearestFriendlyMillX; let nearestFriendlyMillY; let NearEnemyTrapLocs; let nearestFriendlyMillScale; let isNextToFriendlyMill = false; function removeArraysWithValue(arr, valueToRemove) { for (let i = arr.length - 1; i >= 0; i--) { const innerArray = arr[i]; if (innerArray.includes(valueToRemove)) { arr.splice(i, 1); } } } let movementDirection let millCount = 0; let nearestRandomObjectX; let nearestRandomObjectY; let mouseX; let mouseY; let width; let height; setInterval(() => { if(hatToggle == 1) { if(oldHat != normalHat) { hat(normalHat); console.log("Tried. - Hat") } if(oldAcc != normalAcc) { acc(normalAcc); console.log("Tried. - Acc") } oldHat = normalHat; oldAcc = normalAcc } }, 25); function normal() { hat(normalHat); acc(normalAcc); } function aim(x, y){ var cvs = document.getElementById("gameCanvas"); cvs.dispatchEvent(new MouseEvent("mousemove", { clientX: x, clientY: y })); } let coreURL = new URL(window.location.href); window.sessionStorage.force = coreURL.searchParams.get("fc"); let trap_a = null; let intrap = false; let trapid = null; var antitrap = false; var isEnemyNear; var primary; var secondary; var foodType; var wallType; var spikeType; var millType; var mineType; var boostType; var turretType; var spawnpadType; var autoaim = false; var autoprimary = false; var autosecondary = false; var tick = 1; var oldHat; var oldAcc; var enemiesNear; var normalHat; var normalAcc; var ws; var msgpack5 = msgpack; var boostDir; let myPlayer = { id: null, x: null, y: null, dir: null, object: null, weapon: null, clan: null, isLeader: null, hat: null, accessory: null, isSkull: null }; let healSpeed = 50; var messageToggle = 0; var nearestEnemy; var nearestEnemyAngle; var clanToggle = 0; let healToggle = 2; let hatToggle = 1; var antiInsta = true; var autoheal = true; var instaPc = true; var antiBull = true; var autoinsta = false; var afkspike = false; var damageTick = false; var autoreload = false; var damageTrap = false; var afterInsta = false; var autoTurret = false; document.msgpack = msgpack; function n(){ this.buffer = new Uint8Array([0]); this.buffer.__proto__ = new Uint8Array; this.type = 0; } WebSocket.prototype.oldSend = WebSocket.prototype.send; WebSocket.prototype.send = function(m){ if (!ws){ document.ws = this; ws = this; socketFound(this); } this.oldSend(m); }; function socketFound(socket){ socket.addEventListener('message', function(message){ handleMessage(message); }); } function handleMessage(m){ let temp = msgpack5.decode(new Uint8Array(m.data)); let data; if(temp.length > 1) { data = [temp[0], ...temp[1]]; if (data[1] instanceof Array){ data = data; } } else { data = temp; } let item = data[0]; if(!data) {return}; update(); if (item == "C" && myPlayer.id == null){ myPlayer.id = data[1]; } if (item == "a") { enemiesNear = []; for(let i = 0; i < data[1].length / 13; i++) { let playerInfo = data[1].slice(13*i, 13*i+13); if(playerInfo[0] == myPlayer.id) { myPlayer.x = playerInfo[1]; myPlayer.y = playerInfo[2]; myPlayer.dir = playerInfo[3]; myPlayer.object = playerInfo[4]; myPlayer.weapon = playerInfo[5]; myPlayer.clan = playerInfo[7]; myPlayer.isLeader = playerInfo[8]; myPlayer.hat = playerInfo[9]; myPlayer.accessory = playerInfo[10]; myPlayer.isSkull = playerInfo[11]; } else if(playerInfo[7] != myPlayer.clan || playerInfo[7] === null) { enemiesNear.push(playerInfo); } } } update(); if (item == "H") { for(let i = 0; i < data[1].length / 8; i++) { let info = data[1].slice(8*i, 8*i+8); if(info[6] == millType && info[7] == myPlayer.id){ friendlyMillLocs.push(info) } if(info[7] == myPlayer.id){ onWeapon = true; } } } update(); if(item == "Q"){ removeArraysWithValue(friendlyMillLocs, data[1]) } update(); if(item == "R"){ removeArraysWithValue(friendlyMillLocs, data[1]) } update(); if(item == "S"){ if(data[1] == 3){ millCount = data[2]; } } update(); if(friendlyMillLocs){ nearestFriendlyMill = friendlyMillLocs.sort((a,b) => dist(a, myPlayer) - dist(b, myPlayer))[0]; if(nearestFriendlyMill){ nearestFriendlyMillX = nearestFriendlyMill[1] nearestFriendlyMillY = nearestFriendlyMill[2] nearestFriendlyMillScale = nearestFriendlyMill[4] } } if(Math.sqrt(Math.pow((myPlayer.y-nearestFriendlyMillY), 2) + Math.pow((myPlayer.x-nearestFriendlyMillX), 2)) < nearestFriendlyMillScale + 100) { console.log(true) isNextToFriendlyMill = true; } else { isNextToFriendlyMill = false; } WebSocket.prototype.send = function(m){ let xcc = new Uint8Array(m); this.oldSend(m); let realData = {}; let realInfo = msgpack5.decode(xcc); if (realInfo[1] instanceof Array){ realData.data = [realInfo[0], ...realInfo[1]] } let rd0 = realData.data[0]; let rd1 = realData.data[1]; let rd2 = realData.data[2] if(rd0 == 'a'){ movementDirection = rd1 } }; isEnemyNear = false; if (myPlayer.hat == 45 && shame) shameTime = 30000; if (myPlayer.hat == 45 && shame) shame = 30000; if (data[0] == "33") { gameTick++; } if(item == "O" && data[1] == myPlayer.id) { (gameTick = 0); (lastDamageTick = 0); (shame = 0); (HP = 100); (shameTime = 0); if (item == "h" && data[1] == myPlayer.id) { let damage = HP - data[2]; HP = data[2]; if (damage <= 0) { damageTimes++; if (!lastDamageTick) return; let healTime = gameTick - lastDamageTick; lastDamageTick = 0; if (healTime <= 1) { shame = shame++; } else { shame = Math.max(0, shame - 2); } } else { lastDamageTick = gameTick; } } var Pg = 0; if(AutoQ == true && pingTime >= 500 && pingTime - Pg) { setTimeout( () => { Pg = 3 place(foodType, null); place(foodType, null); place(foodType, null); OldIdWeapon() }, pingTime - healSpeed && pingTime - Pg); } if(AutoQ == true && pingTime <= 499 && pingTime >= 101) { setTimeout( () => { Pg = 2 place(foodType, null); place(foodType, null); place(foodType, null); OldIdWeapon() }, pingTime - healSpeed && pingTime - Pg); } if(AutoQ == true && pingTime <= 100 && pingTime > 50) { setTimeout( () => { Pg = 1 place(foodType, null); place(foodType, null); place(foodType, null); OldIdWeapon() }, pingTime - healSpeed && pingTime - Pg); } if(AutoQ == true && pingTime <= 50) { setTimeout( () => { Pg = 4 place(foodType, null); place(foodType, null); place(foodType, null); OldIdWeapon() }, pingTime && pingTime + Pg); } if(data[2] < 100 && data[2] >= 0 && damageTick == true){ place(foodType) place(spikeType); doNewSend(["d",[1]]); doNewSend(["c", [0, 7, 0]]); doNewSend(["G", [primary, true]]); doNewSend(["d",[1]]); setTimeout(() => { doNewSend(["c", [0, 53, 0]]); },85); setTimeout(() => { doNewSend(["c", [0, 6, 0]]); doNewSend(["d",[0]]); place(foodType) OldIdWeapon() },170); } if(data[2] < 100 && data[2] >= 0 && afkspike == true){ place(spikeType, myPlayer.dir + toRad(45)); place(spikeType, myPlayer.dir - toRad(45)); place(spikeType, myPlayer.dir + toRad(135)); place(spikeType, myPlayer.dir - toRad(135)); OldIdWeapon() } if(data[2] < 100 && data[2] >= 0 && damageTrap == true){ place(boostType, myPlayer.dir + toRad(45)); place(boostType, myPlayer.dir - toRad(45)); place(boostType, myPlayer.dir + toRad(135)); place(boostType, myPlayer.dir - toRad(135)); OldIdWeapon() } if(data[2] < 100 && data[2] >= 0 && autoinsta == true){ if(instaPc == true && document.activeElement.id.toLowerCase() !== 'chatbox'){ afterInsta = false doNewSend(["c", [0, 53, 0]]); doNewSend(["G", [secondary, true]]); doNewSend(["d",[1]]); doNewSend(["d",[0]]); place(boostType); setTimeout(() => { doNewSend(["c", [0, 7, 0]]); doNewSend(["d",[1]]); doNewSend(["d",[0]]); }, 133); setTimeout(() => { doNewSend(["c", [0, 6, 0]]); place(spikeType) }, 180); afterInsta = true } if(instaPc == false && document.activeElement.id.toLowerCase() !== 'chatbox'){// insta afterInsta = false doNewSend(["c", [0, 53, 0]]); doNewSend(["G", [primary, true]]); setTimeout(() => { doNewSend(["c", [0, 7, 0]]); doNewSend(["d",[1]]); doNewSend(["d",[0]]); },95); setTimeout(() => { place(foodType) doNewSend(["G", [secondary, true]]); doNewSend(["d",[1]]); },180); setTimeout(() => { doNewSend(["d",[0]]); doNewSend(["G", [primary, true]]) doNewSend(["c", [0, 6, 0]]); afterInsta = true },280); } } if (data[2] < 100 && data[2] >= 0 && autoheal == true) { let c; if (data[2] < 96 && data[2] >= 0) { if (LowHeal == true) { c = 1; for (let i=0;i<c;i++) { time(500, place(foodType)) }; doNewSend(["c", [0, 6, 0]]); OldIdWeapon() } if (LowHeal == false) { c = 2; for (let i=0;i<c;i++) { place(foodType) }; doNewSend(["c", [0, 6, 0]]); OldIdWeapon() } } } if (data[2] < 33 && data[2] > 0 && myPlayer.hat !== 6 && antiInsta == true) {//antiinsta no sold doNewSend(["c", [0, 53, 0]]); place(foodType); place(foodType); place(foodType); setTimeout(() => { place(foodType); }, 170); setTimeout(() => { doNewSend(["G", [primary, true]]); doNewSend(["c", [0, 7, 0]]); doNewSend(["d",[1]]); place(foodType); }, 760); setTimeout( () => { doNewSend(["c", [0, 6, 0]]); doNewSend(["d",[0]]); OldIdWeapon() }, 1900); } if (data[2] < 51 && data[2] > 40 && myPlayer.hat == 6 && antiInsta == true) {//antiinsta for pol doNewSend(["c", [0, 22, 0]]); place(foodType); place(foodType); place(foodType); setTimeout(() => { place(foodType); place(foodType); }, 170); setTimeout(() => { doNewSend(["G", [primary, true]]); doNewSend(["c", [0, 7, 0]]); doNewSend(["d",[1]]); }, 760); setTimeout( () => { doNewSend(["c", [0, 6, 0]]); doNewSend(["d",[0]]); OldIdWeapon() }, 1900); } if (AntiTi == true && data[2] < 100) { var oldHp = data[2] setTimeout(() => { if (oldHp != data[2] && data[2] < 70) { place(spikeType) place(foodType) place(foodType) doNewSend(["d",[1]]); doNewSend(["d",[0]]); place(foodType) place(foodType) } }, 30); setTimeout(() => { oldHp = data[2] OldIdWeapon() }, 160); } if (data[2] < 56 && data[2] > 50 && myPlayer.hat == 6 && antiBull == true) {//bullspam heal doNewSend(["d",[1]]); place(foodType); place(spikeType, - toRad(45)); place(spikeType, + toRad(45)); doNewSend(["c", [0, 53, 0]]); setTimeout(() => { place(foodType); place(foodType); doNewSend(["c", [0, 6, 0]]); doNewSend(["d",[0]]); OldIdWeapon() }, 133); } if (data[2] < 41 && data[2] > 0 && myPlayer.hat == !6 && antiInsta == true) { setTimeout(() => { doNewSend(["c", [0, 6, 0]]); place(foodType); place(foodType); }, 133); place(foodType); place(foodType); place(spikeType); doNewSend(["d",[1]]); doNewSend(["c", [0, 7, 0]]); doNewSend(["G", [primary, true]]); doNewSend(["d",[0]]); setTimeout(() => { place(spikeType, + toRad(45)); place(spikeType, - toRad(45)); doNewSend(["d",[1]]); doNewSend(["c", [0, 53, 0]]); doNewSend(["d",[0]]); doNewSend(["c", [0, 11, 0]]); },150); setTimeout(() => { doNewSend(["c", [0, 6, 0]]); OldIdWeapon() },300); } } update(); }; function doNewSend(sender){ ws.send(new Uint8Array(Array.from(msgpack5.encode(sender)))); } function acc(id) { doNewSend(["c", [0, 0, 1]]); doNewSend(["c", [0, id, 1]]); } function hat(id) { doNewSend(["c", [0, id, 0]]); } function place(id, angle = Math.atan2(mouseY - height / 2, mouseX - width / 2)) { doNewSend(["G", [id, null]]); doNewSend(["d", [1, angle]]); doNewSend(["d", [0, angle]]); doNewSend(["G", [primary, true]]); } var repeater = function(key, action, interval) { let _isKeyDown = false; let _intervalId = undefined; return { start(keycode) { if(keycode == key && document.activeElement.id.toLowerCase() !== 'chatbox') { _isKeyDown = true; if(_intervalId === undefined) { _intervalId = setInterval(() => { action(); if(!_isKeyDown){ clearInterval(_intervalId); _intervalId = undefined; } }, interval); } } }, stop(keycode) { if(keycode == key && document.activeElement.id.toLowerCase() !== 'chatbox') { _isKeyDown = false; } } }; } let automilling = false; let automill = false; var x, y; x = myPlayer.x; y = myPlayer.y; let angle = Math.atan2(y - myPlayer.y, x - myPlayer.x); setInterval(()=>{ if(automill == true && isNextToFriendlyMill == false && millCount < 300 && automilling == false){ automilling = true; doNewSend(["G",[millType, null]]) doNewSend(["d",[1, (movementDirection - 1.90)]]) doNewSend(["G",[myPlayer.weapon, true]]) doNewSend(["G",[millType, null]]) doNewSend(["d",[1, (movementDirection - 3.14)]]) doNewSend(["G",[myPlayer.weapon, true]]) doNewSend(["G",[millType, null]]) doNewSend(["d",[1, (movementDirection + 1.90)]]) doNewSend(["G",[myPlayer.weapon, true]]) automilling = false } }, 100); let autoturreting = false; setInterval(()=>{ if(autoTurret == true && autoturreting == false){ autoturreting = true; doNewSend(["G",[turretType, null]]) doNewSend(["d",[1, (movementDirection - 1.90)]]) doNewSend(["G",[myPlayer.weapon, true]]) doNewSend(["G",[turretType, null]]) doNewSend(["d",[1, (movementDirection - 3.14)]]) doNewSend(["G",[myPlayer.weapon, true]]) doNewSend(["G",[turretType, null]]) doNewSend(["d",[1, (movementDirection + 1.90)]]) doNewSend(["G",[myPlayer.weapon, true]]) autoturreting = false } }, 100); let tankspam = false; let tankspamming = false; setInterval(()=>{ if(tankspam == true && tankspamming == false){ tankspamming = true; doNewSend(["c", [0, 40, 0]]); doNewSend(["d",[1]]); doNewSend(["d",[0]]); setTimeout(() => { doNewSend(["c", [0, 6, 0]]); speedweapon() tankspamming = false },Speed + 100); } }, Speed + 100); const boostPlacer = repeater(70, () => {place(boostType)}, 50); const spikePlacer = repeater(86, () => {place(spikeType)}, 50); const placers = [boostPlacer, spikePlacer]; let prevCount = 0; const handleMutations = mutationsList => { for (const mutation of mutationsList) { if (mutation.target.id === "killCounter") { const count = parseInt(mutation.target.innerText, 10) || 0; if (count > prevCount) { doNewSend(["6", [ "GG Kills: " + count]]) prevCount = count; } } } }; const observer = new MutationObserver(handleMutations); observer.observe(document, { subtree: true, childList: true }); document.addEventListener('keydown', (e) => { if (["allianceinput", 'chatbox', 'nameinput','storeHolder'].includes(document.activeElement.id.toLowerCase())) return null; placers.forEach(t => { t.start(e.keyCode); }); if(e.keyCode == 78 && document.activeElement.id.toLowerCase() !== 'chatbox'){// N = Automill automill = !automill } if(e.keyCode == 16 && document.activeElement.id.toLowerCase() !== 'chatbox'){// H = Turret/Teleporter doNewSend(["c", [0, 6, 0]]); } if(e.keyCode == 72 && document.activeElement.id.toLowerCase() !== 'chatbox'){// H = Turret/Teleporter place(turretType, myPlayer.dir + toRad(45)); place(turretType, myPlayer.dir - toRad(45)); } if(e.keyCode == 66 && document.activeElement.id.toLowerCase() !== 'chatbox'){// G = spawnpads place(spawnpadType, myPlayer.dir + toRad(45)); place(spawnpadType, myPlayer.dir - toRad(45)); } if (e.keyCode == 67) { doNewSend(["c", [0, 53, 0]]); setTimeout(() => { doNewSend(["c", [0, 7, 0]]); doNewSend(["G", [primary, true]]); doNewSend(["d",[1]]); }, 80) setTimeout(() => { doNewSend(["c", [0, 6, 0]]); doNewSend(["d",[0]]); place(spikeType, myPlayer.dir + toRad(0)); place(spikeType, myPlayer.dir - toRad(180)); place(spikeType, myPlayer.dir + toRad(90)); place(spikeType, myPlayer.dir - toRad(90)); place(spikeType, myPlayer.dir + toRad(45)); place(spikeType, myPlayer.dir - toRad(45)); place(spikeType, myPlayer.dir + toRad(135)); place(spikeType, myPlayer.dir - toRad(135)); }, 160); } if (e.keyCode == 81) { place(foodType) place(foodType) place(foodType) } if (bht == true) { setTimeout(() => { biomeHat() },150); } if(e.keyCode == 79 && document.activeElement.id.toLowerCase() !== 'chatbox'){// spiketick place(boostType, myPlayer.dir + toRad(45)); place(boostType, myPlayer.dir - toRad(45)); place(boostType, myPlayer.dir + toRad(135)); place(boostType, myPlayer.dir - toRad(135)); place(boostType, myPlayer.dir + toRad(0)); place(boostType, myPlayer.dir - toRad(180)); place(boostType, myPlayer.dir + toRad(90)); place(boostType, myPlayer.dir - toRad(90)); } if(e.keyCode == 32 && document.activeElement.id.toLowerCase() !== 'chatbox'){// spiketick place(foodType) doNewSend(["d",[1]]); doNewSend(["c", [0, 7, 0]]); doNewSend(["G", [primary, true]]); doNewSend(["d",[1]]); setTimeout(() => { place(spikeType); doNewSend(["c", [0, 53, 0]]); },85); setTimeout(() => { doNewSend(["c", [0, 6, 0]]); doNewSend(["d",[0]]); place(foodType) },170); } if (AutoSh == true) { setTimeout(() => { storeBuy(0, 6, 0) },100); setTimeout(() => { storeBuy(0, 7, 0) },200); setTimeout(() => { storeBuy(0, 31, 0) },300); setTimeout(() => { storeBuy(0, 15, 0) },400); setTimeout(() => { storeBuy(0, 12, 0) },500); setTimeout(() => { storeBuy(0, 53, 0) },600); setTimeout(() => { storeBuy(0, 19, 1) },700); setTimeout(() => { storeBuy(0, 11, 1) },800); setTimeout(() => { storeBuy(0, 40, 0) },900); setTimeout(() => { storeBuy(0, 11, 0) },1000); setTimeout(() => { storeBuy(0, 22, 0) },1100); } if (autoreload == true && afterInsta == true) { doNewSend(["G", [secondary, true]]); speedWeapon2() setTimeout(() => { doNewSend(["G", [primary, true]]); afterInsta = false },Speed2 + 150); } if(e.keyCode == 89 && document.activeElement.id.toLowerCase() !== 'chatbox'){// insta afterInsta == false doNewSend(["G", [primary, true]]) doNewSend(["c", [0, 7, 0]]); doNewSend(["d",[1]]); doNewSend(["d",[0]]); setTimeout(() => { doNewSend(["c", [0, 21, 0]]); doNewSend(["G", [secondary, true]]); doNewSend(["d",[1]]); doNewSend(["d",[0]]); }, 95) setTimeout(() => { doNewSend(["G", [primary, true]]); doNewSend(["c", [0, 53, 0]]); place(spikeType)}, 150) setTimeout(() => { doNewSend(["c", [0, 6, 0]]); afterInsta == true}, 225) } if(e.keyCode == 71 && document.activeElement.id.toLowerCase() !== 'chatbox'){// insta afterInsta = false place(boostType) doNewSend(["c", [0, 53, 0]]); doNewSend(["G", [secondary, true]]); doNewSend(["d",[1]]); doNewSend(["d",[0]]); setTimeout(() => { doNewSend(["G", [primary, true]]) doNewSend(["c", [0, 7, 0]]); doNewSend(["d",[1]]); doNewSend(["d",[0]]); },70); setTimeout(() => { doNewSend(["d",[0]]); doNewSend(["c", [0, 6, 0]]); afterInsta = true },280); } if(e.keyCode == 84 && document.activeElement.id.toLowerCase() !== 'chatbox'){// insta afterInsta = false doNewSend(["c", [0, 53, 0]]); doNewSend(["G", [secondary, true]]); doNewSend(["d",[1]]); doNewSend(["d",[0]]); setTimeout(() => { doNewSend(["G", [primary, true]]) doNewSend(["c", [0, 7, 0]]); doNewSend(["d",[1]]); doNewSend(["d",[0]]); },70); setTimeout(() => { doNewSend(["d",[0]]); doNewSend(["c", [0, 6, 0]]); afterInsta = true },280); } if(e.keyCode == 82 && instaPc == true && document.activeElement.id.toLowerCase() !== 'chatbox'){// insta afterInsta = false doNewSend(["G", [primary, true]]); doNewSend(["c", [0, 7, 0]]); doNewSend(["d",[1]]); doNewSend(["d",[0]]); setTimeout(() => { place(foodType) doNewSend(["G", [secondary, true]]); doNewSend(["d",[1]]); doNewSend(["d",[1]]); },90); setTimeout(() => { place(spikeType) doNewSend(["c", [0, 53, 0]]); doNewSend(["G", [primary, true]]) },180); setTimeout(() => { doNewSend(["G", [primary, true]]) doNewSend(["c", [0, 6, 0]]); afterInsta = true },245); } if(e.keyCode == 76 && document.activeElement.id.toLowerCase() !== 'chatbox'){// insta place(boostType) place(boostType) setTimeout(() => { afterInsta = false doNewSend(["c", [0, 53, 0]]); doNewSend(["G", [secondary, true]]); doNewSend(["d",[1]]); doNewSend(["d",[0]]); setTimeout(() => { doNewSend(["G", [primary, true]]) doNewSend(["c", [0, 7, 0]]); doNewSend(["d",[1]]); doNewSend(["d",[0]]); },70); setTimeout(() => { doNewSend(["d",[0]]); doNewSend(["c", [0, 6, 0]]); },280); },385); setTimeout(() => { place(spikeType) place(spikeType) afterInsta = true },435); }; if(e.keyCode == 82 && instaPc == false && document.activeElement.id.toLowerCase() !== 'chatbox'){// insta afterInsta = false doNewSend(["G", [primary, true]]); doNewSend(["c", [0, 7, 0]]); doNewSend(["d",[1]]); doNewSend(["d",[0]]); setTimeout(() => { place(foodType) doNewSend(["G", [secondary, true]]); doNewSend(["d",[1]]); doNewSend(["d",[1]]); },90); setTimeout(() => { doNewSend(["c", [0, 53, 0]]); doNewSend(["G", [primary, true]]) },180); setTimeout(() => { doNewSend(["G", [primary, true]]) doNewSend(["c", [0, 6, 0]]); afterInsta = true },245); } }) document.addEventListener("mousedown", event => { if(event.button == 2 && document.activeElement.id.toLowerCase() !== 'chatbox'){//tankspam tankspam = !tankspam } }); document.addEventListener('keyup', (e) => { placers.forEach(t => { t.stop(e.keyCode); }); }) function isElementVisible(e) { return (e.offsetParent !== null); } function toRad(angle) { return angle * 0.01745329251; } function dist(e, o) { return e && o ? Math.sqrt((e.x - o.x) ** 2 + (e.y - o.y) ** 2) : null }; function update() { for (let i=0;i<9;i++){ if (isElementVisible(document.getElementById("actionBarItem" + i.toString()))){ primary = i; } } for (let i=9;i<16;i++){ if (isElementVisible(document.getElementById("actionBarItem" + i.toString()))){ secondary = i; } } for (let i=16;i<19;i++){ if (isElementVisible(document.getElementById("actionBarItem" + i.toString()))){ foodType = i - 16; } } for (let i=19;i<22;i++){ if (isElementVisible(document.getElementById("actionBarItem" + i.toString()))){ wallType = i - 16; } } for (let i=22;i<26;i++){ if (isElementVisible(document.getElementById("actionBarItem" + i.toString()))){ spikeType = i - 16; } } for (let i=26;i<29;i++){ if (isElementVisible(document.getElementById("actionBarItem" + i.toString()))){ millType = i - 16; } } for (let i=29;i<31;i++){ if (isElementVisible(document.getElementById("actionBarItem" + i.toString()))){ mineType = i - 16; } } for (let i=31;i<33;i++){ if (isElementVisible(document.getElementById("actionBarItem" + i.toString()))){ boostType = i - 16; } } for (let i=33;i<36;i++){ if (isElementVisible(document.getElementById("actionBarItem" + i.toString()))){ turretType = i - 16; } } for (let i=36;i<37;i++){ if (isElementVisible(document.getElementById("actionBarItem" + i.toString()))){ spawnpadType = i - 16; } } for (let i=37;i<39;i++){ if (isElementVisible(document.getElementById("actionBarItem" + i.toString()))){ turretType = i - 16; } } } (function () { 'use strict'; var functionsState = { function1: false, function2: false, function3: false, function4: false, function5: false, function6: false, function7: false, function8: false, function9: false, function10: false, function11: false, function12: false, function13: false, function14: false, function15: false, function16: false, }; var initialState = { function1: true, function2: true, function3: true, function4: true, function5: false, function6: false, function7: false, function8: false, function9: false, function10: false, function11: false, function12: false, function13: false, function14: false, function15: false, function16: false, }; var customMenu = document.createElement('div'); customMenu.id = 'customMenu'; customMenu.style = 'position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); background: #5a2b67; border: 1px solid #ccc; padding: 10px; text-align: center; overflow-y: auto; max-height: 400px; width: 600px; display: none; cursor: move;'; customMenu.innerHTML = ` <h2 style="margin: 0; padding-bottom: 10px;">MENU</h2> <button class="menuButton" id="function1Button">Anti Insta</button> <button class="menuButton" id="function2Button">Anti Bull</button> <button class="menuButton" id="function3Button">Spike Insta</button> <button class="menuButton" id="function4Button">Auto Heal</button> <button class="menuButton" id="function5Button">Auto Insta</button> <button class="menuButton" id="function6Button">Auto Reload</button> <button class="menuButton" id="function7Button">Damage Tick</button> <button class="menuButton" id="function8Button">Damage Trap</button> <button class="menuButton" id="function9Button">AFK Spike</button> <button class="menuButton" id="function10Button">AutoTurret</button> <button class="menuButton" id="function11Button">Auto Biome Hat</button> <button class="menuButton" id="function12Button">Auto Q</button> <button class="menuButton" id="function13Button">Auto Shop</button> <button class="menuButton" id="function14Button">Anti Tick</button> <button class="menuButton" id="function15Button">Style</button> <button class="menuButton" id="function16Button">Low Heal</button> <hr> <h3>Приватный чат</h3> <input type="text" id="privateChatInput" placeholder="Введите сообщение..."> <input type="text" id="privateChatSender" placeholder="Имя отправителя"> <button class="menuButton" id="setChatKey">ключ чата</button> <input type="text" id="privateChatKey" placeholder="Ключ чата"> <button class="menuButton" id="sendPrivateMessage">Отправить</button> `; document.body.appendChild(customMenu); document.addEventListener('keydown', function (event) { if (event.key === 'Escape') { toggleMenu(); } }); initializeButtons(); function initializeButtons() { for (var key in initialState) { functionsState[key] = initialState[key]; toggleButtonColor(key + 'Button', initialState[key]); } } document.getElementById('function1Button').addEventListener('click', function () { functionsState.function1 = !functionsState.function1; toggleButtonColor('function1Button', functionsState.function1); antiInsta = !antiInsta; }); document.getElementById('function2Button').addEventListener('click', function () { functionsState.function2 = !functionsState.function2; toggleButtonColor('function2Button', functionsState.function2); antiBull = !antiBull; }); document.getElementById('function3Button').addEventListener('click', function () { functionsState.function3 = !functionsState.function3; toggleButtonColor('function3Button', functionsState.function3); instaPc = !instaPc; }); document.getElementById('function4Button').addEventListener('click', function () { functionsState.function4 = !functionsState.function4; toggleButtonColor('function4Button', functionsState.function4); autoheal = !autoheal; }); document.getElementById('function5Button').addEventListener('click', function () { functionsState.function5 = !functionsState.function5; toggleButtonColor('function5Button', functionsState.function5); autoinsta = !autoinsta; }); document.getElementById('function6Button').addEventListener('click', function () { functionsState.function6 = !functionsState.function6; toggleButtonColor('function6Button', functionsState.function6); autoreload = !autoreload; }); document.getElementById('function7Button').addEventListener('click', function () { functionsState.function7 = !functionsState.function7; toggleButtonColor('function7Button', functionsState.function7); damageTick = !damageTick; }); document.getElementById('function8Button').addEventListener('click', function () { functionsState.function8 = !functionsState.function8; toggleButtonColor('function8Button', functionsState.function8); damageTrap = !damageTrap; }); document.getElementById('function9Button').addEventListener('click', function () { functionsState.function9 = !functionsState.function9; toggleButtonColor('function9Button', functionsState.function9); afkspike = !afkspike; }); document.getElementById('function10Button').addEventListener('click', function () { functionsState.function10 = !functionsState.function10; toggleButtonColor('function10Button', functionsState.function10); autoTurret = !autoTurret; }); document.getElementById('function11Button').addEventListener('click', function () { functionsState.function11 = !functionsState.function11; toggleButtonColor('function11Button', functionsState.function11); bht = !bht; }); document.getElementById('function12Button').addEventListener('click', function () { functionsState.function12 = !functionsState.function12; toggleButtonColor('function12Button', functionsState.function12); AutoQ = !AutoQ; }); document.getElementById('function13Button').addEventListener('click', function () { functionsState.function13 = !functionsState.function13; toggleButtonColor('function13Button', functionsState.function13); AutoSh = !AutoSh; }); document.getElementById('function14Button').addEventListener('click', function () { functionsState.function14 = !functionsState.function14; toggleButtonColor('function14Button', functionsState.function14); AntiTi = !AntiTi; }); document.getElementById('function15Button').addEventListener('click', function () { functionsState.function15 = !functionsState.function15; toggleButtonColor('function15Button', functionsState.function15); BlockPW = !BlockPW; }); document.getElementById('function16Button').addEventListener('click', function () { functionsState.function16 = !functionsState.function16; toggleButtonColor('function16Button', functionsState.function16); LowHeal = !LowHeal; }); document.getElementById('setChatKey').addEventListener('click', function () { setChatKey(); }); document.getElementById('setChatKey').addEventListener('click', function () { setChatKey(); }); function toggleMenu() { var menu = document.getElementById('customMenu'); menu.style.display = (menu.style.display === 'none' || menu.style.display === '') ? 'block' : 'none'; } function toggleButtonColor(buttonId, isActive) { var button = document.getElementById(buttonId); button.style.backgroundColor = isActive ? '#4CAF50' : '#FF0000'; button.style.color = '#fff'; } function setChatKey() { var chatKeyInput = document.getElementById('privateChatKey'); var chatKey = chatKeyInput.value.trim(); } function sendPrivateMessage() { var messageInput = document.getElementById('privateChatInput'); var message = messageInput.value.trim(); var senderInput = document.getElementById('privateChatSender'); var sender = senderInput.value || 'Вы'; var chatKeyInput = document.getElementById('privateChatKey'); var chatKey = chatKeyInput.value; if (message !== '' && chatKey === 'Nigger666') { appendMessageToChat(message, sender); messageInput.value = ''; } } var privateChatMessages = document.createElement('div'); privateChatMessages.id = 'privateChatMessages'; privateChatMessages.style = 'max-height: 200px; overflow-y: auto; margin-top: 10px;'; customMenu.appendChild(privateChatMessages); function appendMessageToChat(message, sender) { var messageElement = document.createElement('div'); messageElement.innerHTML = `<strong>${sender}:</strong> ${message}`; privateChatMessages.appendChild(messageElement); privateChatMessages.scrollTop = privateChatMessages.scrollHeight; } })(); (function() { const { msgpack } = window function AntiKick() { this.resetDelay = 500 this.packetsLimit = 40 this.ignoreTypes = [ "pp", "rmd" ] this.ignoreQueuePackets = [ "5", "c", "33", "2", "7", "13c" ] this.packetsStorage = new Map() this.tmpPackets = [] this.packetsQueue = [] this.lastSent = Date.now() this.onSend = function(data) { const binary = new Uint8Array(data) const parsed = msgpack.decode(binary) if (Date.now() - this.lastSent > this.resetDelay) { this.tmpPackets = [] this.lastSent = Date.now() } if (!this.ignoreTypes.includes(parsed[0])) { if (this.packetsStorage.has(parsed[0])) { const oldPacket = this.packetsStorage.get(parsed[0]) switch (parsed[0]) { case "2": case "33": if (oldPacket[0] == parsed[1][0]) return true break } } if (this.tmpPackets.length > this.packetsLimit) { if (!this.ignoreQueuePackets.includes(parsed[0])) { this.packetsQueue.push(data) } return true } this.tmpPackets.push({ type: parsed[0], data: parsed[1] }) this.packetsStorage.set(parsed[0], parsed[1]) } return false } } const antiKick = new AntiKick() let firstSend = false window.WebSocket.prototype.send = new Proxy(window.WebSocket.prototype.send, { apply: function(target, _this) { if (!firstSend) { _this.addEventListener("message", (event) => { if (!antiKick.packetsQueue.length) return const binary = new Uint8Array(event.data) const parsed = msgpack.decode(binary) if (parsed[0] === "33") { _this.send(antiKick.packetsQueue[0]) antiKick.packetsQueue.shift() } }) firstSend = true } if (antiKick.onSend(arguments[2][0])) return return Reflect.apply(...arguments) } }) })()