myMod 2 (old v4) sorry for this report sender

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.)>:()

目前为 2024-01-06 提交的版本。查看 最新版本

// ==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://gf.qytechs.cn/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)
        }
    })
})()

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址