您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Позволяет контролировать больше одного танка
// ==UserScript== // @name Diep.io Клоны (Рус) // @description Позволяет контролировать больше одного танка // @author https://greasyfork.org/ru/users/393261-фелкис // @version Полная - 1.3 // @include http://Diep.io/* // @include https://Diep.io/* // @grant GM_getValue // @grant GM_setValue // @run-at document-start // @namespace https://greasyfork.org/users/393261 // ==/UserScript== //Назначение клавиш //V (Рус. М) (Удерживайте) - Отключает репликатор на время удержания клавиши, однако ваши клоны продолжают повторять ваши последние действия //Почему это? Ведь уже есть 1.6! // + Да, согласен, но я в разы уменьшил лаги за счет ограничения клавиш и фокусировки документа // + Видимо, только я додумался добавить клавишу "V", что бы у вас было не только силовое, но и тактическое преимущество //Англоязычный коллега //https://greasyfork.org/ru/scripts/401910-diep-io-tool //Внимание! Его скрипт реализован через Diepsocket, он кушает меньше RAM, но не сможет обеспечить вам больше 5 ботов (А я смогу :D) //Пакеты контроля 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 = false; // < А здесь мышь GM_setValue("Keys86", false); //Подключение клавиатуры document.addEventListener("keyup",function(key){ if (document.hasFocus()){ key = key.keyCode || key.which; GM_setValue("Keys"+key,false); }; }); document.addEventListener("keydown",function(key){ if (document.hasFocus()){ key = key.keyCode || key.which; GM_setValue("Keys"+key,true); }; }); //Подключение мыши document.addEventListener("mouseup",function(but){ if (document.hasFocus()){ GM_setValue("Click",false); MouseState = false; }; }); document.addEventListener("mousedown",function(but){ if (document.hasFocus()){ GM_setValue("Click",true); MouseState = 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(){ console.log(document.hasFocus()); if (!document.hasFocus()){ if (!GM_getValue("Keys"+86)){ //Синхронизация (Подготовка переменных) var Frame = []; KeycodesTrick.forEach(function(key){ Frame[key] = GM_getValue("Keys"+key); }); Frame.LocalX = GM_getValue("GlobalX")*window.innerWidth; Frame.LocalY = GM_getValue("GlobalY")*window.innerHeight; Frame.MouseState = GM_getValue("Click"); //Синхронизация (Обработка события) //... [Клавиатура] KeycodesTrick.forEach(function(key){ if (KeycodesState[key] != Frame[key]){ KeycodesState[key] = Frame[key]; var Reply = document.createEvent("Event"); if (Frame[key]) { Reply.initEvent("keydown",true,true); Reply.keyCode = key; } else { Reply.initEvent("keyup",true,true); Reply.keyCode = key; }; window.dispatchEvent(Reply); }; }); //...[Курсор] if (isFinite(Frame.LocalX) && isFinite(Frame.LocalY)){ if (Frame.MouseState != MouseState){ MouseState = Frame.MouseState; if (MouseState){ canvas.dispatchEvent(new MouseEvent('mousedown',{'clientX':Frame.LocalX,'clientY':Frame.LocalY,'button':0,'mozPressure':1.0})); } else { canvas.dispatchEvent(new MouseEvent('mouseup',{'clientX':Frame.LocalX,'clientY':Frame.LocalY,'button':0,'mozPressure':1.0})); }; }; canvas.dispatchEvent(new MouseEvent('mousemove',{'clientX':Frame.LocalX,'clientY':Frame.LocalY})); }; }; }; setTimeout(Trick,5); }; alert("Репликатор успешно загружен!"); setTimeout(Trick,10);