Improved Bullet Stacking By Mekhi Maragh was reported 2021-07-18 as an unauthorized copy of 弾重ね・連射力測定.

弾重ね・連射力測定 does not specify a license, which means distributing copies is not allowed unless explicit permission is given.

Script License Created Updated
Reported Improved Bullet Stacking By Mekhi Maragh N/A 2021-06-28 13:46:42 UTC 2021-06-28 13:46:42 UTC
Original 弾重ね・連射力測定 N/A 2018-06-03 08:53:53 UTC 2018-06-03 08:53:52 UTC
  • // ==UserScript==
  • -// @name 弾重ね・連射力測定
  • -// @description 弾重ね。ペンタ、スプレッドショット、たこに対応
  • -// @version 1
  • -// @author Gokky
  • -// @include http://diep.io/*
  • +// @name Improved Bullet Stacking By Mekhi Maragh
  • +// @include *://diep.io/*
  • +// @author Mekhi MAragh
  • +// @description Makes some tanks more powerful (Tri-angle branch, spread shot, penta shot, octo tank, gunner trapper, streamliner).
  • // @connect diep.io
  • +// @namespace aaa
  • +// @version 69
  • // ==/UserScript==
  • /*
  • -使い方
  • - スクリプトの実行方法
  • - コンソールに貼り付けて実行か、Tampermonkeyにインストール
  • - 重ね撃ち
  • - 右クリック
  • - タンクの切り替え
  • - Shift+T でPenta Shot, Spread Shot, Octo Tankを切り替えられる。(切り替え直後の首ふりテンポはリロード7前提)
  • - 発射周期の測定
  • - 初期状態ではリロード7の連射間隔を前提とするテンポで首を振る。このテンポを変更するには以下のように連射間隔の計測を行う
  • - 1. Shift+M で発射速度測定モードにしてしばらく発射速度を計測する
  • - 2. 計測中は機体を上下左右に動かしてはいけない。また他人の砲弾が自機のすぐ近くを飛んでると計測が狂うかもしれない
  • - 3. 平均発射間隔の変動が小さくなったら再び Shift+M で測定モードを解除する
  • - 測定後は測定された連射間隔にもとづいたテンポで首を振る。
  • - ※測定時は左右どちらかShift+Mを押した時の方向にエイムが固定される。(なのでShift+Mを押す前に壁に背を向けて機体が動かないようにした方がよい)
  • - ※リロード7でも集弾精度が悪いと思ったら一度測定すると精度が上がることがある
  • - 左上のテキストの表示/非表示の切り替え
  • - Iキー
  • - 重ね撃ち機能on/off切り替え
  • - Shift+Q
  • +How to Use:
  • +Press Shift+R to cycle through the tanks.
  • +Press Shift+Q to disable/enable the script.
  • +Press I to hide the dialog. (The script remains functional, though).
  • +Hold rightclick to activate . For best results, leave autofire off for a bit before doing so.
  • +If necessary, press Shift+M to re-calibrate the script. Wait for the ms to stabilise.
  • +Note: This calibration may break for Triple Twin, and is unnecessary for Streamliner.
  • */
  • -
  • (function(){//info
  • if(window.updateInfo) return;
  • var info = {};
  • var info_container = document.createElement("div");
  • info_container.style.position = "fixed";
  • - info_container.style.color = "white";
  • + info_container.style.color = "blue";
  • info_container.style["pointer-events"] = "none";
  • document.body.appendChild(info_container);
  • intervalEMA = intervalEMA ? 0.8 * intervalEMA + 0.2 * da : da;
  • window.updateInfo && window.updateInfo(
  • "intervalEMA",
  • - "平均発射間隔: " + intervalEMA.toString().substr(0, 5) + "ms"
  • + "Fire Period: " + intervalEMA.toString().substr(0, 5) + "ms"
  • );
  • }else{
  • window.addEventListener("mousedown", onMouseEvent, true);
  • frameRequest = window.requestAnimationFrame(onFrame);
  • - window.updateInfo && window.updateInfo("measuring", "連射速度測定モード");
  • + window.updateInfo && window.updateInfo("measuring", "Measuring...");
  • }
  • this.terminate = function(){
  • (function(){
  • var cycleRate = 0.003125; // ms^-1
  • var maxAngle = Math.PI * 45 / 180;
  • + var secAngle = 0;
  • + var cycleCounter = 1;
  • var NCANNON = 3;
  • var angleUnit = maxAngle / (NCANNON - 1);
  • + var secUnit = secAngle;
  • + var ax30945=1;
  • + var sec=false;
  • var tankData = [
  • - {name: "Penta", cycleRate: 0.003125, maxAngle: Math.PI * 45 / 180, NCANNON: 3},
  • - {name: "SpreadShot", cycleRate: 0.001555, maxAngle: Math.PI * 75 / 180, NCANNON: 6},
  • - {name: "Octo", cycleRate: 0.003125, maxAngle: Math.PI * 45 / 180, NCANNON: 2}
  • + {name: "Tri-angle Stack", cycleRate: 0.003125, maxAngle: Math.PI * 150 / 180, secondaryAngle: Math.PI * 150 / 180, NCANNON: 2},
  • + {name: "Fighter Stack", cycleRate: 0.003135, maxAngle: Math.PI * 90 / 175, secondaryAngle: Math.PI/2, NCANNON: 2},
  • + {name: "bycycle's retarded script", cycleRate: 0.003125, maxAngle: Math.PI, secondaryAngle: Math.PI, NCANNON: 2},
  • + {name: "Penta Stack broken", cycleRate: 0.003125, maxAngle: Math.PI/4, secondaryAngle: Math.PI/4, NCANNON: 3},
  • + {name: "Spread Stack boken", cycleRate: 0.001555, maxAngle: Math.PI * 75 / 180, secondaryAngle: Math.PI * 75 / 180, NCANNON: 6},
  • + {name: "Octo Stack", cycleRate: 0.003125, maxAngle: Math.PI/4, secondaryAngle: Math.PI/4, NCANNON: 2},
  • + {name: "GunnerTrapper",cycleRate: 0.0125, maxAngle: Math.PI, secondaryAngle: Math.PI, NCANNON: 2},
  • + {name: "Streamliner Spread", cycleRate: 0.0625, maxAngle: Math.PI * 15 / 180, secondaryAngle: Math.PI * 15 / 180, NCANNON: 3},
  • + {name: "random spinny flick shit idk", cycleRate: 0.001, maxAngle: 0, secondaryAngle: 0, NCANNON: 2},
  • ];
  • var tankIndex = 0;
  • var effective = false;
  • var frameRequest;
  • + var toggle1 = true;
  • + var toggle2 = false;
  • var canvas = window.document.getElementById("canvas");
  • var mouseX;
  • var artificialMouseMove = false;
  • var disabled = false;
  • -
  • function onMouseDown(e){
  • if(e.button == 2){
  • + sec=false;
  • if(!effective){
  • - startA = a - 50;
  • + startA = a - 25;
  • mouseX = e.clientX;
  • mouseY = e.clientY;
  • canvas.dispatchEvent(new MouseEvent("mousedown", {clientX: mouseX, clientY: mouseY}));
  • }
  • effective = true;
  • + cycleCounter=0;
  • }
  • }
  • 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 remainder=cycleRate*da*NCANNON-Math.floor(cycleRate*da*NCANNON);
  • + var angle = angleUnit * state1 * ax30945;
  • + var angle2 = secUnit * state1 * ax30945;
  • +
  • var cx = window.innerWidth / 2;
  • var cy = window.innerHeight / 2;
  • + window.updateInfo && window.updateInfo("reeeee", remainder);
  • +
  • + if (toggle2 && state1==0) {
  • + toggle2=false;
  • + cycleCounter++;
  • + }
  • + if (state1!=0) toggle2=true;
  • + if (cycleCounter%3==2) angle=angle2;
  • + //if (remainder>0.5) angle=0;
  • + //if (cycleCounter%2==1) angle=-angle;
  • var sin = Math.sin(angle);
  • var cos = Math.cos(angle);
  • artificialMouseMove = true;
  • canvas.dispatchEvent(new MouseEvent("mousemove", {clientX: x, clientY: y}));
  • artificialMouseMove = false;
  • + } else {
  • + var data = tankData[tankIndex];
  • + if (data.name=="random spinny flick shit idk") {
  • + da = a - startA;
  • + state = Math.floor(0.01 * da * 4) % (4 * 2);
  • + state1 = state % 4;
  • + state2 = Math.floor(state / 4);
  • + angle = Math.PI/3 * state1;
  • +
  • + cx = window.innerWidth / 2;
  • + cy = window.innerHeight / 2;
  • + sin = Math.sin(angle);
  • + cos = Math.cos(angle);
  • +
  • + x = mouseX - cx;
  • + y = mouseY - cy;
  • + _x = cos * x - sin * y;
  • + _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 == "Z") {
  • + ax30945=1;
  • + }
  • if(e.key == "Q"){
  • disabled = !disabled;
  • if(disabled){
  • measuring = false;
  • } else stop();
  • }else start();
  • - window.updateInfo && window.updateInfo("off", disabled ? "機能オフ" : null);
  • + window.updateInfo && window.updateInfo("off", disabled ? "Disabled." : null);
  • return;
  • }
  • if(disabled) return;
  • - if(e.key == "M"){
  • + if(e.key == "N"){
  • if(measuring){
  • cycleRate = 1 / measure.terminate();
  • start();
  • measure.start(mouseX - window.innerWidth / 2);
  • measuring = true;
  • }
  • - }else if(e.key == "T"){
  • + }else if(e.key == "R"){
  • changeTank((tankIndex + 1) % tankData.length);
  • }
  • }
  • cycleRate = data.cycleRate; // ms^-1
  • maxAngle = data.maxAngle;
  • + secAngle = data.secondaryAngle;
  • NCANNON = data.NCANNON;
  • angleUnit = maxAngle / (NCANNON - 1);
  • + secUnit = secAngle / (NCANNON - 1);
  • +
  • window.updateInfo && window.updateInfo("changeTank", "Tank: " + data.name);
  • }

Sergzworld (the reported user) has made:

This report has been upheld by a moderator.