- // ==UserScript==
- // @name code for diep.io
- // @namespace http://tampermonkey.net/
- // @version 1.1.3.7
- // @description script
- // @author delta-1
- // @match https://diep.io/
- // @license MIT
- // @grant none
- // ==/UserScript==
-
-
-
-
-
- (function(){//info
- if(window.updateInfo) return;
-
-
- var info = {};
- var info_container = document.createElement("div");
- info_container.style.position = "fixed";
- info_container.style.color = "#29FCCC";
- info_container.style["pointer-events"] = "none";
- document.body.appendChild(info_container);
-
- function toggle_info_container(e){
- if(e.key == "i"){
- info_container.style.display = info_container.style.display=="block" ? "none" : "block";
- }
- }
- window.addEventListener("keyup", toggle_info_container);
-
- window.updateInfo = function(key, value){
- if(!value) delete info[key];
- else info[key] = value;
- var s = "";
- for(var _key in info){
- s += info[_key] + "\n";
- }
- info_container.innerText = s;
- };
- })();
-
-
- (function(){
- var cycleRate = 0.003125; // ms^-1
- var maxAngle = Math.PI * 45 / 180;
- var NCANNON = 3;
- var angleUnit = maxAngle / (NCANNON - 1);
-
- var tankData = [
- {name: "Tri-angle1", cycleRate: 0.003095, maxAngle: Math.PI * 135 / 180, NCANNON: 2},
- {name: "Tri-angle2",cycleRate: 0.003095, maxAngle: Math.PI, NCANNON: 2},
- {name: "TripleTwin", cycleRate: 0.003125, maxAngle: Math.PI * 180 / 180, NCANNON: 2},
- {name: "fighter?", cycleRate: 0.003095, maxAngle: Math.PI * 90 / 180, NCANNON: 2},
- {name: "GunnerTrapper",cycleRate: 0.015, maxAngle: Math.PI, NCANNON: 2},
- {name: "GunnerTrapper2",cycleRate: 0.001, maxAngle: Math.PI, NCANNON: 2},
- {name: "Octo", cycleRate: 0.003095, maxAngle: Math.PI * 45 / 180, NCANNON: 2},
- {name: "Streamliner", cycleRate: 0.0625, maxAngle: Math.PI * 15 / 180, NCANNON: 3},
- {name: "triplet", cycleRate: 0.0625, maxAngle: Math.PI * 15 / 180, NCANNON: 3},
- ];
- var tankIndex = 0;
-
- var measuring = false;
-
- var effective = false;
- var frameRequest;
-
- var canvas = window.document.getElementById("canvas");
-
- var mouseX;
- var mouseY;
- var a = 0;
- var startA = 0;
- var artificialMouseMove = false;
-
- var disabled = false;
-
- function onMouseDown(e){
- if(e.button == 2){
- if(!effective){
- startA = a - 50;
- mouseX = e.clientX;
- mouseY = e.clientY;
- canvas.dispatchEvent(new MouseEvent("mousedown", {clientX: mouseX, clientY: mouseY}));
- }
- effective = true;
- }
- }
-
- function onMouseUp(e){
- if(e.button == 2){
- if(effective){
- canvas.dispatchEvent(new MouseEvent("mouseup", {clientX: mouseX, clientY: mouseY}));
- }
- effective = false;
- }
- }
-
- function onMouseMove(e){
- if(effective){
- if(!artificialMouseMove){
- e.stopPropagation();
- mouseX = e.clientX;
- mouseY = e.clientY;
- }
- }else{
- mouseX = e.clientX;
- mouseY = e.clientY;
- }
- }
-
- function update(_a){
- frameRequest = window.requestAnimationFrame(update);
- a = _a;
-
- if(effective){
- var da = a - startA;
- var state = Math.floor(cycleRate * da * NCANNON) % (NCANNON * 2);
- var state1 = state % NCANNON;
- var state2 = Math.floor(state / NCANNON);
- var angle = angleUnit * state1 * (state1 % 2 == state2 ? 1 : -1);
-
- var cx = window.innerWidth / 2;
- var cy = window.innerHeight / 2;
- var sin = Math.sin(angle);
- var cos = Math.cos(angle);
-
- var x = mouseX - cx;
- var y = mouseY - cy;
- var _x = cos * x - sin * y;
- var _y = sin * x + cos * y;
- x = _x + cx;
- y = _y + cy;
-
- artificialMouseMove = true;
- canvas.dispatchEvent(new MouseEvent("mousemove", {clientX: x, clientY: y}));
- artificialMouseMove = false;
- }
- }
-
- function onKeyUp(e){
- if(e.key == "Q"){
- disabled = !disabled;
- if(disabled){
- if(measuring){
- cycleRate = 1 / measure.terminate();
- measuring = false;
- } else stop();
- }else start();
- window.updateInfo && window.updateInfo("off", disabled ? "Disabled." : null);
- return;
- }
-
- if(disabled) return;
-
- if(e.key == "R"){
- changeTank((tankIndex + 1) % tankData.length);
- }
- }
-
- function changeTank(index){
- var data = tankData[index];
- tankIndex = index;
-
- cycleRate = data.cycleRate; // ms^-1
- maxAngle = data.maxAngle;
- NCANNON = data.NCANNON;
- angleUnit = maxAngle / (NCANNON - 1);
- window.updateInfo && window.updateInfo("changeTank", "Tank: " + data.name);
- }
-
- function init(){
- window.addEventListener("keyup", onKeyUp);
- start();
- changeTank(0);
- }
-
- function start(){
- canvas.addEventListener("mousedown", onMouseDown);
- canvas.addEventListener("mouseup", onMouseUp);
- window.addEventListener("mousemove", onMouseMove, true);
- frameRequest = window.requestAnimationFrame(update);
- }
-
- function stop(){
- canvas.removeEventListener("mousedown", onMouseDown);
- canvas.removeEventListener("mouseup", onMouseUp);
- window.removeEventListener("mousemove", onMouseMove, true);
- window.cancelAnimationFrame(frameRequest);
- effective = false;
- }
-
-
- init();
-
- })();
-
-