您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
For more info about 4x multibox go my channel https://youtube.com/CyRuler
当前为
// ==UserScript== // @name 4 bots damian // @namespace - // @version 1.5 // @description For more info about 4x multibox go my channel https://youtube.com/CyRuler // @author Discord : CyRuler#3691 // @match *://moomoo.io/* // @match *://dev.moomoo.io/* // @match *://sandbox.moomoo.io/* // @icon https://cdn.discordapp.com/attachments/759868693840003072/762661498178109450/lightcg.jpg // @require https://greasyfork.org/scripts/368273-msgpack/code/msgpack.js?version=598723 // ==/UserScript== let healToggle = true; let hatToggle = true; let empToggle = false; let ws; let cvs; let width; let height; let mouseX; let mouseY; let dir; let primary; let secondary; let foodType; let wallType; let spikeType; let millType; let mineType; let boostType; let turretType; let spawnpadType; let healer; let spiker; let trapper; let miller; let crashing; let playerFollowerGlobal; let ffs; let ffsps; sockets = {}; let closed; let myPlayer = {}; let pointer = true; let pointingOnPosition = {}; let enemiesNear; let players = {}; let isEnemyNear; let nearestEnemy; let nearestEnemyAngle; let autoaim = false; let autoAttackWithAim3 = false; let autoInsta; let JustDied; let normalHat; let normalAcc; let oldHat; let oldAcc; let msgpack5 = msgpack; document.msgpack = msgpack; let autoAttack; let freeze; function dist(a, b){ return Math.sqrt( Math.pow((b.y-a[2]), 2) + Math.pow((b.x-a[1]), 2) ); } function acc(id) { doNewSend(["13c", [1, id, 1]]); doNewSend(["13c", [0, 0, 1]]); doNewSend(["13c", [0, id, 1]]); } function hat(id) { doNewSend(["13c", [1, id, 0]]); doNewSend(["13c", [0, id, 0]]); } let handleMessage = function(e) { let temp = msgpack5.decode(new Uint8Array(e.data)); let data = null; 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}; if (item == "io-init") { cvs = document.getElementById("gameCanvas"); setTimeout(() => { if (document.getElementById("mainMenu")) { document.getElementById("mainMenu").remove(); } }, 5000); width = cvs.clientWidth; height = cvs.clientHeight; $(window).resize(function() { width = cvs.clientWidth; height = cvs.clientHeight; }); let place = (e, t = dir) => { doNewSend(['5', [e, null]]); doNewSend(['c', [1, t]]); doNewSend(['c', [0, t]]); doNewSend(['5', [null]]); } let placeForAll = (e, t = dir) => { sendForAll(['5', [e, null]]); sendForAll(['c', [1, t]]); sendForAll(['c', [0, t]]); sendForAll(['5', [null]]); } cvs.addEventListener('mousemove', e => { mouseX = e.clientX; mouseY = e.clientY; dir = Math.atan2(event.clientY - height / 2, event.clientX - width / 2); if (!autoaim) { sendForAll(['2', [dir]]); } }) document.key22 = 1; document.addEventListener('keydown', e => { if (document.key22 !== e.keyCode) { document.key22 = e.keyCode; if (document.activeElement.tagName.toLowerCase() !== "input" && document.activeElement.tagName.toLowerCase() !== "textarea" && !document.getElementById('chatHolder').offsetParent) { if (e.keyCode == 81) { healer = true; } if (e.keyCode == 86) { spiker = true; } if (e.keyCode == 70) { trapper = true; } if (e.keyCode == 54) { miller = true; } if (e.keyCode == 0) { healToggle = !healToggle; } if (e.keyCode == 39) { hatToggle = !hatToggle; } if (e.keyCode == 40) { empToggle = !empToggle; } if (e.keyCode == 80) { pointer = !pointer; } if (e.keyCode == 84) { autoaim = true; doNewSend(["13c", [1, 6, 0]]); doNewSend(["13c", [1, 7, 0]]); doNewSend(["13c", [1, 53, 0]]); autoAttackWithAim3 = true; doNewSend(['c', [1]]) doNewSend(["6", [5]]); doNewSend(["6", [17]]); doNewSend(["6", [31]]); doNewSend(["6", [23]]); doNewSend(["6", [9]]); doNewSend(["6", [18]]); doNewSend(['5', [9, true]]); doNewSend(["13c", [0, 53, 0]]); setTimeout(() => { doNewSend(['6', [12]]); }, 130); setTimeout(() => { doNewSend(['6', [15]]) doNewSend(['5', [secondary, true]]); setTimeout(() => { sendForAll(['5', [primary, true]]) if (!empToggle) { doNewSend(["13c", [1, 6, 0]]); doNewSend(["13c", [0, 6, 0]]); } if (empToggle) { doNewSend(["13c", [1, 22, 0]]); doNewSend(["13c", [0, 22, 0]]); } autoaim = false; autoAttackWithAim3 = false; doNewSend(['c', [0]]) doNewSend(["2", [dir]]); }, 270); }, 210); } if (e.keyCode == 0) { for (let i=0;i<180;i++) { let angle = toRad(i*2); place(boostType, angle); } } if (e.keyCode == 0) { for (let i=0;i<4;i++) { let angle = toRad(i * 90); place(spikeType, angle); } } if (e.keyCode == 77) { if (myPlayer.y < 2400) { doNewSend(["13c", [1, 15, 0]]); doNewSend(["13c", [0, 15, 0]]); } else if (myPlayer.y > 6850 && myPlayer.y < 7550) { doNewSend(["13c", [1, 31, 0]]); doNewSend(["13c", [0, 31, 0]]); } else { doNewSend(["13c", [1, 12, 0]]); doNewSend(["13c", [0, 12, 0]]); } doNewSend(["13c", [1, 0, 1]]); doNewSend(["13c", [0, 0, 1]]); } if (e.keyCode == 37) { sendForAll(["6", [8]]); sendForAll(["6", [3]]); sendForAll(["6", [5]]); } if(e.keyCode == 39) { sendForAll(["6", [8]]); sendForAll(["6", [4]]); sendForAll(["6", [5]]); sendForAll(["6", [10]]); sendForAll(["6", [28]]); sendForAll(["6", [10]]); } if(e.keyCode == 16) { sendForAll(["13c", [0, 0, 0]]); sendForAll(["13c", [0, 0, 1]]); } if (e.keyCode == 38) { sendForAll(["6", [5]]); sendForAll(["6", [17]]); sendForAll(["6", [31]]); sendForAll(["6", [23]]); sendForAll(["6", [13]]); sendForAll(["6", [18]]); sendForAll(["6", [28]]); } if (e.keyCode == 120) { sendForAll(["6", [4]]); sendForAll(["6", [15]]); } if (e.keyCode == 90) { sendForAll(["13c", [0, 0, 1]]); sendForAll(["13c", [1, 40, 0]]); sendForAll(["13c", [0, 40, 0]]); } if (e.keyCode == 32) { if (!empToggle) { sendForAll(["13c", [0, 0, 1]]); sendForAll(["13c", [1, 6, 0]]); sendForAll(["13c", [0, 6, 0]]); } if (empToggle) { sendForAll(["13c", [1, 22, 0]]); sendForAll(["13c", [0, 22, 0]]); } } if (e.keyCode == 66) { sendForAll(["13c", [0, 0, 1]]); sendForAll(["13c", [1, 7, 0]]); sendForAll(["13c", [0, 7, 0]]); } if (e.keyCode == 45) { doNewSend(["13c", [1, 6, 0]]); doNewSend(["13c", [1, 7, 0]]); doNewSend(["13c", [1, 53, 0]]); autoInsta = true; } if (e.keyCode == 46) { autoInsta = false; } if (e.keyCode == 85) { sendForAll(["13c", [1, 20, 0]]); sendForAll(["13c", [0, 20, 0]]); } if (e.keyCode == 114) { sendForAll(["6", [28]]); } if (e.keyCode == 115) { sendForAll(["6", [4]]); sendForAll(["6", [25]]); } } } }) document.addEventListener('keyup', e => { document.key22 = null; if (e.keyCode == 81) { healer = false; } if (e.keyCode == 86) { spiker = false; } if (e.keyCode == 70) { trapper = false; } if (e.keyCode == 54) { miller = false; } }) setInterval(() => { if (autoaim) { doNewSend(['2', [nearestEnemyAngle]]); } if (autoAttackWithAim3) { doNewSend(['c', [1]]); } if (crashing && !closed) { for (let e = 0; e < 1000; e++) { let result = new Uint8Array(Math.round(Math.random() * 18));for (let i = 0; i < result.length; i++) {if (i == 0) {result[i] = Math.round(Math.random() * 256);} else {if (i == 1) {result[i] = Math.round(Math.random() * 256);} else {if (i == 2) {result[i] = Math.round(Math.random() * 128);} else {if (i == 3) {result[i] = Math.round(Math.random() * 85);} else {if (i == 4) {result[i] = Math.round(Math.random() * 64);} else {if (i == 5) {result[i] = Math.round(Math.random() * 51);} else {if (i == 6) {result[i] = Math.round(Math.random() * 42);} else {if (i == 7) {result[i] = Math.round(Math.random() * 36);} else {if (i == 8) {result[i] = Math.round(Math.random() * 32);} else {if (i == 9) {result[i] = Math.round(Math.random() * 28);} else {if (i == 10) {result[i] = Math.round(Math.random() * 25);} else {if (i == 11) {result[i] = Math.round(Math.random() * 23);} else {if (i == 12) {result[i] = Math.round(Math.random() * 21);} else {if (i == 13) {result[i] = Math.round(Math.random() * 19);} else {if (i == 14) {result[i] = Math.round(Math.random() * 18);} else {if (i == 15) {result[i] = Math.round(Math.random() * 17);} else {if (i == 16) {result[i] = Math.round(Math.random() * 16);} else {if (i == 17) {result[i] = Math.round(Math.random() * 15);}}}}}}}}}}}}}}}}}}}ws.oldSend(result); } } if (healer) { place(foodType, null); } if (spiker) { place(spikeType, null); } if (trapper) { place(boostType, null); } if (miller) { place(millType, null); } }) primary = 0; foodType = 0; wallType = 3; spikeType = 6; millType = 10; myPlayer.weapon = 0; doNewSend(['sp', [{name: localStorage.moo_name, moofoll: "1", skin: 1}]]); setTimeout(() => { document.gr = grecaptcha; let kk; let host = "127.0.0.1" !== location.hostname && !location.hostname.startsWith("192.168."); for (let i2 = 0; i2 < 4; i2++) { true && (kk = !0, host ? document.gr.execute("6LevKusUAAAAAAFknhlV8sPtXAk5Z5dGP5T2FYIZ", { action: "homepage" }).then((function(e) { wsType(`${document.ws.url.split("&")[0]}&token=${encodeURIComponent(e)}`); })) : null); } }, 100); } if (item == "1" && !myPlayer.id) { myPlayer.id = data[1]; } if (item == "11") { primary = 0; foodType = 0; wallType = 3; spikeType = 6; millType = 10; if (!autoAttack && !freeze) { doNewSend(['sp', [{name: localStorage.moo_name, moofoll: "1", skin: 1}]]); } else { JustDied = true; } } if (JustDied) { if (!autoAttack && !freeze) { JustDied = false; doNewSend(['sp', [{name: localStorage.moo_name, moofoll: "1", skin: 1}]]); } } if (item == "33") { enemiesNear = []; players = {}; 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.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); } players[playerInfo[0]] = { id: playerInfo[0], x: playerInfo[1], y: playerInfo[2], dir: playerInfo[3], object: playerInfo[4], weapon: playerInfo[5], clan: playerInfo[7], isLeader: playerInfo[8], hat: playerInfo[9], accessory: playerInfo[10], isSkull: playerInfo[11] }; } } isEnemyNear = false; if(enemiesNear) { nearestEnemy = enemiesNear.sort((a,b) => dist(a, myPlayer) - dist(b, myPlayer))[0]; } if(nearestEnemy) { nearestEnemyAngle = Math.atan2(nearestEnemy[2]-myPlayer.y, nearestEnemy[1]-myPlayer.x); if(Math.sqrt(Math.pow((myPlayer.y-nearestEnemy[2]), 2) + Math.pow((myPlayer.x-nearestEnemy[1]), 2)) < 500) { isEnemyNear = true; if(autoaim == false && myPlayer.hat != 7 && myPlayer.hat != 53) { normalHat = 6; if(primary != 8) { normalAcc = 19; } }; } } if(isEnemyNear == false && autoaim == false) { normalAcc = 0; if (myPlayer.y < 2400){ normalHat = 15; } else if (myPlayer.y > 6850 && myPlayer.y < 7550){ normalHat = 31; } else { normalHat = 12; } } if(hatToggle) { if(oldHat != normalHat) { hat(normalHat); } if(oldAcc != normalAcc) { acc(normalAcc); } oldHat = normalHat; oldAcc = normalAcc } if (nearestEnemy && autoInsta) { if (Math.sqrt(Math.pow((myPlayer.y-nearestEnemy[2]), 2) + Math.pow((myPlayer.x-nearestEnemy[1]), 2)) < 215) { autoInsta = false; autoaim = true; doNewSend(['33', [nearestEnemyAngle]]); setTimeout(() => { doNewSend(['33', []]); doNewSend(['13c', [0, 11, 1]]); }, 300) doNewSend(['7', [1]]); if (myPlayer.weapon == 0) { doNewSend(["6", [5]]); doNewSend(["6", [17]]); doNewSend(["6", [31]]); doNewSend(["6", [23]]); doNewSend(["6", [10]]); doNewSend(["6", [18]]); doNewSend(["6", [28]]); } doNewSend(["6", [15]]); doNewSend(['13c', [0, 0, 1]]) doNewSend(['13c', [0, 19, 1]]) doNewSend(['13c', [0, 7, 0]]) doNewSend(["5", [primary, 1]]); for (let i = 0; i < 25; i++) { doNewSend(['c', [1, nearestEnemyAngle]]); } setTimeout(() => { doNewSend(['13c', [0, 53, 0]]); doNewSend(["5", [15, 1]]); doNewSend(["5", [secondary, 1]]); setTimeout(() => { autoaim = false; doNewSend(["5", [primary, 1]]); if (!empToggle) { doNewSend(["13c", [1, 6, 0]]); doNewSend(["13c", [0, 6, 0]]); } if (empToggle) { doNewSend(["13c", [1, 22, 0]]); doNewSend(["13c", [0, 22, 0]]); } doNewSend(['7', [1]]); doNewSend(['c', [0]]); }, 270); }, 130); } } if (pointer) { pointingOnPosition = {x: myPlayer.x, y: myPlayer.y}; } if (item == "17") { if (data[2]) { primary = data[1][0]; secondary = data[1][1] || null; } else { for (let i = 0; i < data[1].length; i++) { for (let i2 = 0; i2 < 3; i2++) { if (i2 == data[1][i]) { foodType = data[1][i]; } } for (let i2 = 3; i2 < 6; i2++) { if (i2 == data[1][i]) { wallType = data[1][i]; } } for (let i2 = 6; i2 < 10; i2++) { if (i2 == data[1][i]) { spikeType = data[1][i]; } } for (let i2 = 10; i2 < 13; i2++) { if (i2 == data[1][i]) { millType = data[1][i]; } } for (let i2 = 13; i2 < 15; i2++) { if (i2 == data[1][i]) { mineType = data[1][i]; } } for (let i2 = 15; i2 < 17; i2++) { if (i2 == data[1][i]) { boostType = data[1][i]; } } for (let i2 = 17; i2 < 23; i2++) { if (i2 == data[1][i] && i2 !== 20) { turretType = data[1][i]; } } spawnpadType = 20; } } } if (item == "ch") { if ((data[2].toLocaleLowerCase()).split(' ')[0] == '!crash' && data[1] == myPlayer.id) { crashing = true; } if (data[2].toLocaleLowerCase() == '!come' && data[1] == myPlayer.id) { playerFollowerGlobal = true; } if (data[2].toLocaleLowerCase() == '!stop' && data[1] == myPlayer.id) { playerFollowerGlobal = false; } if (data[2].toLocaleLowerCase() == '!mousetrack' && data[1] == myPlayer.id) { ffs = true; } if (data[2].toLocaleLowerCase() == '!stopp' && data[1] == myPlayer.id) { ffs = false; } if (data[2].toLocaleLowerCase() == '!-' && data[1] == myPlayer.id) { setTimeout(() => { let kk; let host = "127.0.0.1" !== location.hostname && !location.hostname.startsWith("192.168."); for (let i2 = 0; i2 < 4; i2++) { true && (kk = !0, host ? document.gr.execute("6LevKusUAAAAAAFknhlV8sPtXAk5Z5dGP5T2FYIZ", { action: "homepage" }).then((function(e) { wsType(`${document.ws.url.split("&")[0]}&token=${encodeURIComponent(e)}`); })) : null); } }, 100); } } if(data[0] == "h" && data[1] == myPlayer.id) { if(data[2] < 90 && data[2] > 0) { if (healToggle) { setTimeout(() => { doNewSend(['5', [foodType, null]]); doNewSend(['c', [1]]); doNewSend(['c', [0]]); doNewSend(['5', [null]]); }, 100); } } } } function toRad(angle) { return angle * (Math.PI / 180); } let doNewSend = (e) => { ws.oldSend(new Uint8Array(Array.from(msgpack5.encode(e)))); } WebSocket.prototype.oldSend = WebSocket.prototype.send; WebSocket.prototype.send = function(m) { if (!ws) { ws = this; document.ws = this; this.addEventListener('message', e => { handleMessage(e); }); this.addEventListener('close', () => { closed = true; }); } if (!closed) { if (msgpack5.decode(m)[0] !== "2" && msgpack5.decode(m)[0] !== "c" && msgpack5.decode(m)[0] !== "33" && msgpack5.decode(m)[0] !== "ch" && msgpack5.decode(m)[0] !== "6" && msgpack5.decode(m)[0] !== "5" && msgpack5.decode(m)[0] !== "13c" && msgpack5.decode(m)[0] !== "7") { this.oldSend(m); } if (msgpack5.decode(m)[0] == "c") { sendForAll(msgpack5.decode(m)); } if (msgpack5.decode(m)[0] == "6") { sendForAll(msgpack5.decode(m)); } if (msgpack5.decode(m)[0] == "5") { sendForAll(msgpack5.decode(m)); } if (msgpack5.decode(m)[0] == "7") { if (msgpack5.decode(m)[1][0] == 1) { autoAttack = !autoAttack; } if (msgpack5.decode(m)[1][0] == 0) { freeze = !freeze; } sendForAll(msgpack5.decode(m)); } if (msgpack5.decode(m)[0] == "ch") { this.oldSend(m); if (msgpack5.decode(m)[1][0].toLocaleLowerCase() !== '!f' && msgpack5.decode(m)[1][0].toLocaleLowerCase() !== '!fs' && msgpack5.decode(m)[1][0].toLocaleLowerCase().split(" ")[0] !== '!join' && msgpack5.decode(m)[1][0].toLocaleLowerCase().split(" ")[0] !== '!leave' && msgpack5.decode(m)[1][0].toLocaleLowerCase().split(" ")[0] !== '!crash') { for (let i in sockets) { sockets[i].oldSend(m); } } } if (msgpack5.decode(m)[0] == "13c") { sendForAll(msgpack5.decode(m)); } if (msgpack5.decode(m)[0] == "33") { this.oldSend(m); for (let i in sockets) { if (!sockets[i].playerFollower && !playerFollowerGlobal && !ffs) { sockets[i].oldSend(m); } } } } } let sendForAll = (e) => { doNewSend(e); for (let i in sockets) { sockets[i].oldSend(new Uint8Array(Array.from(msgpack5.encode(e)))); } }; function wsType(e) { let ws = new WebSocket(e); ws.playerFollower = true; ws.autoAttackWithAim3; let bot = {}; ws.binaryType = "arraybuffer"; let doNewSend = (e) => { ws.oldSend(new Uint8Array(Array.from(msgpack5.encode(e)))); } let msgFnc = (e) => { let temp = msgpack5.decode(new Uint8Array(e.data)); let data = null; 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}; if (item == "io-init") { let place = (e, t = dir) => { doNewSend(['5', [e, null]]); doNewSend(['c', [1, t]]); doNewSend(['c', [0, t]]); doNewSend(['5', [null]]); } ws.key23 = null; document.addEventListener('keydown', e => { if (ws.key23 !== e.keyCode) { ws.key23 = e.keyCode; if (document.activeElement.tagName.toLowerCase() !== "input" && document.activeElement.tagName.toLowerCase() !== "textarea" && !document.getElementById('chatHolder').offsetParent) { if (e.keyCode == 84) { ws.autoaim = true; doNewSend(["13c", [1, 6, 0]]); doNewSend(["13c", [1, 7, 0]]); doNewSend(["13c", [1, 53, 0]]); doNewSend(["13c", [1, 21, 0]]); ws.autoAttackWithAim3 = true; doNewSend(['c', [1]]) doNewSend(["6", [5]]); doNewSend(["6", [17]]); doNewSend(["6", [31]]); doNewSend(["6", [23]]); doNewSend(["6", [9]]); doNewSend(["6", [18]]); doNewSend(['5', [9, true]]); doNewSend(["13c", [0, 53, 0]]); setTimeout(() => { doNewSend(['6', [12]]); }, 130); setTimeout(() => { doNewSend(['6', [15]]) doNewSend(['5', [secondary, true]]); setTimeout(() => { sendForAll(['5', [primary, true]]) if (!empToggle) { doNewSend(["13c", [1, 6, 0]]); doNewSend(["13c", [0, 6, 0]]); } if (empToggle) { doNewSend(["13c", [1, 22, 0]]); doNewSend(["13c", [0, 22, 0]]); } ws.autoaim = false; ws.autoAttackWithAim3 = false; doNewSend(['c', [0]]) doNewSend(["2", [dir]]); }, 300); }, 210); } if (e.keyCode == 79) { for (let i=0;i<180;i++) { let angle = toRad(i*2); place(boostType, angle); } } if (e.keyCode == 76) { for (let i=0;i<4;i++) { let angle = toRad(i * 90); place(spikeType, angle); } } if (e.keyCode == 77) { if (bot.y < 2400) { doNewSend(["13c", [1, 15, 0]]); doNewSend(["13c", [0, 15, 0]]); } else if (bot.y > 6850 && bot.y < 7550) { doNewSend(["13c", [1, 31, 0]]); doNewSend(["13c", [0, 31, 0]]); } else { doNewSend(["13c", [1, 12, 0]]); doNewSend(["13c", [0, 12, 0]]); } doNewSend(["13c", [1, 11, 1]]); doNewSend(["13c", [0, 11, 1]]); } if (e.keyCode == 45) { doNewSend(['ch', ['Autoinsta:true']]); doNewSend(["13c", [1, 6, 0]]); doNewSend(["13c", [1, 7, 0]]); doNewSend(["13c", [1, 53, 0]]); ws.autoInsta = true; } if (e.keyCode == 46) { doNewSend(['ch', ['Autoinsta:false']]); ws.autoInsta = false; } } } }) document.addEventListener('keyup', e => { ws.key23 = null; }) setInterval(() => { if (ws.autoaim) { doNewSend(['2', [ws.nearestEnemyAngle]]); } if (ws.autoAttackWithAim3) { doNewSend(['c', [1]]); } if (healer) { place(ws.foodType, null); } if (spiker) { place(ws.spikeType, null); } if (trapper) { place(ws.boostType, null); } if (miller) { place(ws.millType, null); } }) ws.primary = 0; ws.foodType = 0; ws.wallType = 3; ws.spikeType = 6; ws.millType = 10; doNewSend(['sp', [{name: localStorage.moo_name, moofoll: "Ur dad Has Small PeePee", skin: 1}]]); } if (item == "1" && !bot.id) { bot.id = data[1]; if (sockets) { sockets[data[1]] = ws; } } if (item == "11") { ws.primary = 0; ws.foodType = 0; ws.wallType = 3; ws.spikeType = 6; ws.millType = 10; if (!autoAttack && !freeze) { doNewSend(['sp', [{name: localStorage.moo_name, moofoll: "acool", skin: 4}]]); } else { ws.JustDied = true; } } if (ws.JustDied) { if (!autoAttack && !freeze) { ws.JustDied = false; doNewSend(['sp', [{name: localStorage.moo_name, moofoll: "u GaY", skin: 3}]]); } } if (item == "33") { ws.enemiesNear = []; ws.players = {}; for(let i = 0; i < data[1].length / 13; i++) { let playerInfo = data[1].slice(13*i, 13*i+13); if(playerInfo[0] == bot.id) { bot.x = playerInfo[1]; bot.y = playerInfo[2]; bot.dir = playerInfo[3]; bot.object = playerInfo[4]; bot.weapon = playerInfo[5]; bot.clan = playerInfo[7]; bot.isLeader = playerInfo[8]; bot.hat = playerInfo[9]; bot.accessory = playerInfo[10]; bot.isSkull = playerInfo[11]; } else if(playerInfo[7] !== bot.clan || playerInfo[7] === null) { ws.enemiesNear.push(playerInfo); } ws.players[playerInfo[0]] = { id: playerInfo[0], x: playerInfo[1], y: playerInfo[2], dir: playerInfo[3], object: playerInfo[4], weapon: playerInfo[5], clan: playerInfo[7], isLeader: playerInfo[8], hat: playerInfo[9], accessory: playerInfo[10], isSkull: playerInfo[11] }; } } ws.isEnemyNear = false; if(ws.enemiesNear) { ws.nearestEnemy = ws.enemiesNear.sort((a,b) => dist(a, bot) - dist(b, bot))[0]; } if(ws.nearestEnemy) { ws.nearestEnemyAngle = Math.atan2(ws.nearestEnemy[2]-bot.y, ws.nearestEnemy[1]-bot.x); if(Math.sqrt(Math.pow((bot.y-ws.nearestEnemy[2]), 2) + Math.pow((bot.x-ws.nearestEnemy[1]), 2)) < 500) { ws.isEnemyNear = true; if(!ws.autoaim && bot.hat != 7 && bot.hat != 53) { ws.normalHat = 6; if(ws.primary != 8) { ws.normalAcc = 21; } }; } } if(!ws.isEnemyNear && !ws.autoaim) { ws.normalAcc = 11; if (bot.y < 2400){ ws.normalHat = 15; } else if (bot.y > 6850 && bot.y < 7550){ ws.normalHat = 31; } else { ws.normalHat = 12; } } if(hatToggle) { if(ws.oldHat != ws.normalHat) { doNewSend(['13c', [1, ws.normalHat, 0]]); doNewSend(['13c', [0, ws.normalHat, 0]]); } if(ws.oldAcc != ws.normalAcc) { doNewSend(['13c', [1, ws.normalAcc, 1]]); doNewSend(['13c', [0, ws.normalAcc, 1]]); } ws.oldHat = ws.normalHat; ws.oldAcc = ws.normalAcc; } if (ws.nearestEnemy && ws.autoInsta) { if (Math.sqrt(Math.pow((bot.y-ws.nearestEnemy[2]), 2) + Math.pow((bot.x-ws.nearestEnemy[1]), 2)) < 215) { ws.autoInsta = false; ws.autoaim = true; doNewSend(['33', [ws.nearestEnemyAngle]]); setTimeout(() => { doNewSend(['33', []]); doNewSend(['13c', [0, 11, 1]]); }, 300) doNewSend(['13c', [0, 0, 1]]) doNewSend(['13c', [0, 19, 1]]) doNewSend(['13c', [0, 7, 0]]) doNewSend(["5", [ws.primary, 1]]); for (let i = 0; i < 25; i++) { doNewSend(['c', [1, ws.nearestEnemyAngle]]); } setTimeout(() => { doNewSend(['13c', [0, 53, 0]]); doNewSend(["5", [ws.secondary, 1]]); setTimeout(() => { ws.autoaim = false; doNewSend(["5", [ws.primary, 1]]); if (!empToggle) { doNewSend(["13c", [1, 6, 0]]); doNewSend(["13c", [0, 6, 0]]); } if (empToggle) { doNewSend(["13c", [1, 22, 0]]); doNewSend(["13c", [0, 22, 0]]); } doNewSend(['7', [1]]); doNewSend(['c', [0]]); }, 270); }, 130); } } if (item == "17") { if (data[2]) { ws.primary = data[1][0]; ws.secondary = data[1][1] || null; } else { for (let i = 0; i < data[1].length; i++) { for (let i2 = 0; i2 < 3; i2++) { if (i2 == data[1][i]) { ws.foodType = data[1][i]; } } for (let i2 = 3; i2 < 6; i2++) { if (i2 == data[1][i]) { ws.wallType = data[1][i]; } } for (let i2 = 6; i2 < 10; i2++) { if (i2 == data[1][i]) { ws.spikeType = data[1][i]; } } for (let i2 = 10; i2 < 13; i2++) { if (i2 == data[1][i]) { ws.millType = data[1][i]; } } for (let i2 = 13; i2 < 15; i2++) { if (i2 == data[1][i]) { ws.mineType = data[1][i]; } } for (let i2 = 15; i2 < 17; i2++) { if (i2 == data[1][i]) { ws.boostType = data[1][i]; } } for (let i2 = 17; i2 < 23; i2++) { if (i2 == data[1][i] && i2 !== 20) { ws.turretType = data[1][i]; } } ws.spawnpadType = 20; } } } if (item == "ch") { let ch = data; if (ch[2].toLocaleLowerCase() == '!"' && ch[1] == myPlayer.id) { ws.playerFollower = true; doNewSend(['33', []]); } if (ch[2].toLocaleLowerCase() == '!*' && ch[1] == myPlayer.id) { ws.playerFollower = false; doNewSend(['33', []]); } if (ch[2].toLocaleLowerCase() == '!+' && ch[1] == myPlayer.id) { ws.playerFollower = false; doNewSend(['33', []]); } if ((ch[2].toLocaleLowerCase()).split(' ')[0] == '!join' && ch[1] == myPlayer.id) { doNewSend(['10', [ch[2].toLocaleLowerCase().split(' ')[1]]]); } if ((ch[2].toLocaleLowerCase()).split(' ')[0] == '!leave' && ch[1] == myPlayer.id) { doNewSend(['9', [null]]); } } if (item == "ac") { if (data[1].owner == myPlayer.id) { setTimeout(() => { doNewSend(['10', [data[1].sid]]); }, 100); } } if (ws.playerFollower || playerFollowerGlobal) { if (Math.sqrt(Math.pow((bot.y - pointingOnPosition.y), 2) + Math.pow((bot.x - pointingOnPosition.x), 2)) < 105) { doNewSend(['33', []]); } else { doNewSend(['33', [Math.atan2(pointingOnPosition.y - bot.y, pointingOnPosition.x - bot.x)]]); } } if (ffs) { if (ffsps !== Math.atan2((myPlayer.y - bot.y) + mouseY - (height / 2), (myPlayer.x- bot.x) + mouseX - (width / 2))) { ffsps = Math.atan2((myPlayer.y - bot.y) + mouseY - (height / 2), (myPlayer.x- bot.x) + mouseX - (width / 2)); if (!ws.autoaim) { doNewSend(['2', [ffsps]]); } doNewSend(['33', [ffsps]]); } } if(data[0] == "h" && data[1] == bot.id) { if(data[2] < 90 && data[2] > 0) { setTimeout(() => { doNewSend(['5', [ws.foodType, null]]); doNewSend(['c', [1]]); doNewSend(['c', [0]]); doNewSend(['5', [null]]); }, 100) } } } ws.onmessage = (e) => { msgFnc(e); } }