Diep.io Репликатор (Рус)

Повторяет ваши действий в браузерных (.io) играх

目前為 2019-10-31 提交的版本,檢視 最新版本

// ==UserScript==
// @name        Diep.io Репликатор (Рус)
// @description Повторяет ваши действий в браузерных (.io) играх
// @author      https://gf.qytechs.cn/ru/users/393261-фелкис
// @version     Кастомная
// @include     http://Diep.io/*
// @include     https://Diep.io/*
// @grant       GM_getValue
// @grant       GM_setValue
// @run-at      document-start
// @namespace https://gf.qytechs.cn/users/393261
// ==/UserScript==

//Установка
//1) Найдите и добавьте расширение Tampermonkey для своего браузера (На https://gf.qytechs.cn есть все ссылки для любых браузеров)
// Opera:  https://addons.opera.com/ru/extensions/details/tampermonkey-beta/
// Google: https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo
// Yandex: https://я-браузер.рф/tampermonkey-yandex-browser.html|
//2) Установите этот скрипт и убедитесь, что он включен
//3) Откройте желаемую игру (Diep.io, в нашем случае, но вы можете перенастроить клавиши под любую другую игру), если после этого вы увидели уведомление, значит вы все сделали правильно
//4) Создайте несколько клонов с помощью "Party Link"
//5) Разбейте образовавшиеся вкладки на несколько окон
//6) Удачи :)

//Назначение клавиш
//V (Рус. М) (Удерживайте) - Отключает репликатор на время удержания клавиши, однако ваши клоны продолжают повторять ваши последние действия

//Почему это? Ведь уже есть 1.6!
// + Да, согласен, но я в разы уменьшил лаги за счет ограничения клавиш и фокусировки документа
// + Видимо, только я додумался добавть клавишу "V", что бы у вас было не только силовое, но и тактическое преимущество

//Другое
//Вас никто не заставляет этого делать, но в юлагодарность вы можете добавть в свой ник приставку "[Java]", пусть все знают, что вы "крутой" программист :)

//Пакеты контроля
var KeycodesTrick;
//KeycodesTrick = [87,65,83,68,13,32,16,69,67,49,50,51,52,53,54,55,56,77,85,72,75,79] //Полный пакет + (Все клавиши, но может лагать)
//KeycodesTrick = [87,65,83,68,13,32,16,69,67,49,50,51,52,53,54,55,56,77,85,72] //Полный пакет (Все клавиши, кроме Sandbox)
//KeycodesTrick = [87,65,83,68,13,32,16,69,67,49,50,51,52,53,54,55,56,77,85] //Универсальный (Нет клавиш режимов)
//KeycodesTrick = [87,65,83,68,13,32,16,69,67,49,50,51,52,53,54,55,56] //Достаточный (Нет клавиш U и M)
//KeycodesTrick = [87,65,83,68,13,32,16,69,67] //Уменьшенный 1 (Оключены клавиши с 1 до 8)
KeycodesTrick = [87,65,83,68,13,69,67] //Уменьшенный 2 (Оключены клавиши Shift и Emptyspace)
//KeycodesTrick = [87,65,83,68,13] //Минимальный (Только необходимое, нет клавиш C и E)

var KeycodesState = [];
var MouseState = [];
GM_setValue("Keys86",false);

//Подключение клавиатуры
document.addEventListener("keyup",function(key){
    if (document.hasFocus()){
        key = key.keyCode || key.which;
        GM_setValue("Keys"+key,false);
        KeycodesState[key] = false;
    };
});
document.addEventListener("keydown",function(key){
    if (document.hasFocus()){
        key = key.keyCode || key.which;
        GM_setValue("Keys"+key,true);
        KeycodesState[key] = true;
    };
});

//Подключение мыши
document.addEventListener("mouseup",function(but){
    if (document.hasFocus()){
        GM_setValue("Click"+but.button,false);
        MouseState[but.button] = false;
    };
});
document.addEventListener("mousedown",function(but){
    if (document.hasFocus()){
        GM_setValue("Click"+but.button,true);
        MouseState[but.button] = true;
    };
});
document.addEventListener("mousemove",function(mouse){
    if (document.hasFocus()){
        GM_setValue("GlobalX",mouse.clientX/window.innerWidth);
        GM_setValue("GlobalY",mouse.clientY/window.innerHeight);
    };
});

//Репликация
function Trick(){
    if (!GM_getValue("Keys"+86) && !document.hasFocus()){
        //Снисхронизация клавиатуры
        KeycodesTrick.forEach(function(key){
            var GState = GM_getValue("Keys"+key);
            if (KeycodesState[key] != GState){
                KeycodesState[key] = GState;
                var Reply = document.createEvent("Event");
                if (GState) {
                    Reply.initEvent("keydown",true,true);
                    Reply.keyCode = key;
                } else {
                    Reply.initEvent("keyup",true,true);
                    Reply.keyCode = key;
                };
                window.dispatchEvent(Reply);
            };
        });
        //Снисхронизация мышки
        if (typeof canvas != undefined){
            var LocalX = GM_getValue("GlobalX")*window.innerWidth;
            var LocalY = GM_getValue("GlobalY")*window.innerHeight;
            if (isFinite(LocalX)&&isFinite(LocalY)){
                MouseState.forEach(function(state,but){
                    var GMouseState = GM_getValue("Click"+but);
                    if (GMouseState != state){
                        MouseState[but] = GMouseState;
                        if (GMouseState){
                            canvas.dispatchEvent(new MouseEvent('mousedown',{'clientX':LocalX,'clientY':LocalY,'button':0,'mozPressure':1.0}));
                        } else {
                            canvas.dispatchEvent(new MouseEvent('mouseup',{'clientX':LocalX,'clientY':LocalY,'button':0,'mozPressure':1.0}));
                        };
                    };
                });
                canvas.dispatchEvent(new MouseEvent('mousemove',{'clientX':LocalX,'clientY':LocalY}));
            };
        };
    };
    setTimeout(Trick,10);
};

alert("Репликатор успешно загружен!")
setTimeout(Trick,10);

QingJ © 2025

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