Automatically place windmills when you press the M key
当前为
// ==UserScript==
// @name Advanced Automill - Sploop
// @namespace http://tampermonkey.net/
// @version 2024-04-27
// @description Automatically place windmills when you press the M key
// @author fizzixww
// @match https://sploop.io/
// @icon https://www.google.com/s2/favicons?sz=64&domain=sploop.io
// @grant none
// @license MIT
// ==/UserScript==
const fizzixwwSet = new Set();
WebSocket.prototype.fizzixwwOriginalSend = WebSocket.prototype.send;
WebSocket.prototype.send = function(data) {
this.fizzixwwOriginalSend(data);
fizzixwwSet.add(this);
};
window.addEventListener('beforeunload', () => {
fizzixwwSet.clear();
});
(function() {
'use strict';
const fizzixwwFirst = 123;
const fizzixwwSecond = 247;
var fizzixwwKeysPressed = new Set();
document.addEventListener("keydown", (event) => {
if (event.key === "w" || event.key === "a" || event.key === "s" || event.key === "d") {
fizzixwwKeysPressed.add(event.key);
}
});
document.addEventListener("keyup", (event) => {
if (event.key === "w" || event.key === "a" || event.key === "s" || event.key === "d") {
fizzixwwKeysPressed.delete(event.key);
}
});
document.addEventListener("keydown", (event) => {
if (event.key === "m") {
let fizzixwwAng;
switch (Array.from(fizzixwwKeysPressed).sort().join("")) {
case "w":
fizzixwwAng = 270;
break;
case "a":
fizzixwwAng = 180;
break;
case "s":
fizzixwwAng = 90;
break;
case "d":
fizzixwwAng = 0;
break;
case "aw":
fizzixwwAng = 225;
break;
case "as":
fizzixwwAng = 135;
break;
case "ds":
fizzixwwAng = 45;
break;
case "dw":
fizzixwwAng = 315;
break;
default:
return;
}
var fizzixwwInterval = setInterval(() => {
for (let fizzixwwSocket of fizzixwwSet) {
fizzixwwSocket.send(new Uint8Array([2, 14]));
let balls = 65535 * (((fizzixwwAng + fizzixwwFirst) % 360) * Math.PI/180 + Math.PI) / (2 * Math.PI);
fizzixwwSocket.send(new Uint8Array([19, 255 & balls, balls >> 8 & 255]));
setTimeout(() => {
fizzixwwSocket.send(new Uint8Array([2, 14]));
let sex = 65535 * (((fizzixwwAng + fizzixwwSecond) % 360) * Math.PI/180 + Math.PI) / (2 * Math.PI);
fizzixwwSocket.send(new Uint8Array([19, 255 & sex, sex >> 8 & 255]));
}, 110);
}
}, 380);
setTimeout(() => {
clearInterval(fizzixwwInterval);
}, 1800);
for (let fizzixwwSocket of fizzixwwSet) {
fizzixwwSocket.send(new Uint8Array([18]));
}
}
});
})();