Greasy Fork is available in English.

Skin, wearable changer, multi for flarex

hello eagle

// ==UserScript==
// @name         Skin, wearable changer, multi for flarex
// @version      2.0
// @description  hello eagle
// @author       agarpolice
// @match        https://flarex.fun/
// @icon         none
// @run-at       document-start
// @grant        unsafeWindow
// @namespace https://greasyfork.org/users/1238627
// ==/UserScript==
//to trigger skin changer, press P
	let combo = {
		shield: 'a',//shield anti freeze
		vir: 'q',//virus anti rec
		pellet: '`',//loop pellet press one for enable and press again to turn off
		brshield: '1',//click to trigger, break shield then use virus on opponent
		freezevir: 'd',//shoot frozen virus and anti rec
		portal: 'l',// spam portal and virus
		recsplit: '0'//spam split and recombine
	}
let send, enabled = false,
	interval, interval1, e = false,
	count = 0,
	e1 = false,
	e2 = false,
	e3 = false,
	interval2, interval3, interval4, interval5, mouseInt, spawnInt, x, y, a, b, xds = [x, y],
	skinarr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11],
	weararr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19],
	id = {
		portal: 109,
		anti: 110,
		antifreeze: 11,
		freezevir: 114,
		pellet: 100,
		virus: 27,
		shield: 120,
		push: 24,
		rec: 26,
	};

unsafeWindow.sendz = function(e) {
	e = new Uint8Array(e.buffer);
	send(e);
}
unsafeWindow.cht = function(msg) {
	chat(msg)
	post(messages.chat, msg)
}

function idk(e) {
	if (document.getElementById("overlays").style.display != 'block' && document.getElementById("death-screen").style.display != 'block') {
		var t = new DataView(new ArrayBuffer(1));
		t.setUint8(0, e);
		sendz(t);
	}
}

function skin(e) {
	var t = new DataView(new ArrayBuffer(1 + 2 * `${e}`.length));
	t.setUint8(0, 3);
	for (var n = 0; n < `${e}`.length; ++n) {
		t.setUint16(1 + 2 * n, `${e}`.charCodeAt(n), true);
	}
	sendz(t);
}

function wear() {
	let wear = new DataView(new ArrayBuffer(2));
	wear.setUint8(0, 113);
	wear.setUint8(1, e);
	sendz(wear);
}

function spawn(nick) {
	if (!$("#overlays").is(":visible")) {
		$("#prompt").fadeOut(0);
		$("#ds-Dialog").hide();
		$("#grid-bg").hide();
		$("#overlays").fadeIn(0);
	}
	$("#play-btn").click();
}

function sendMouse(x, y) {
	var e = new DataView(new ArrayBuffer(21))
	e.setUint8(0, 16);
	e.setFloat64(1, x, true);
	e.setFloat64(9, y, true);
	e.setUint32(17, 0, true);
	sendz(e);
}

function colorchanger(id) {
	let n = new DataView(new ArrayBuffer(3));
	n.setUint8(0, 112, true);
	n.setUint8(1, id, true);
	sendz(n);
}

function chat(msg) {
	var t = new DataView(new ArrayBuffer(2 + 2 * msg.length));
	var n = 0;
	t.setUint8(n++, 99);
	t.setUint8(n++, 0);
	for (var s = 0; s < msg.length; ++s) {
		t.setUint16(n, msg.charCodeAt(s), true);
		n += 2;
	}
	sendz(t);
}
const delay = (t) => new Promise((resolve) => setTimeout(resolve, t));
const change = () => {
	e1 = !e1;
	if (e1) {
		interval2 = setInterval(() => {
			skin(skinarr[count]);
			count += 1;
			count == skinarr.length ? count = 0 : undefined;
		}, 100)
	} else {
		clearInterval(interval2)
	};
}
const onefs = async (ms1, ms2) => {
	idk(17)
	await delay(0);
	idk(25);
	await delay(60);
	idk(25);
}
const doublefs = async (ms1, ms2) => {
	idk(17);
	await delay(40);
	onefs()
}
const breakshield = () => {
	idk(id.portal);
	setTimeout(() => {
		idk(id.anti);
		idk(id.virus)
	}, 150)
}
const shield = () => {
	idk(id.shield)
	idk(id.antifreeze)
}
const vir = () => {
	idk(id.virus);
	idk(id.anti);
}
const freezevir = () => {
	idk(id.freezevir);
	idk(id.anti);
}
const portal = () => {
	e = !e;
	if (e) {
		interval1 = setInterval(() => {
			idk(id.portal)
		}, 90)
		interval5 = setInterval(() => {
			//idk(id.virus)
		}, 135)
	} else {
		clearInterval(interval1);
		clearInterval(interval5)
	}
}
const push = () => {
	e2 = !e2;
	e2 ? interval3 = setInterval(() => {
		idk(id.push);
	}, 90) : clearInterval(interval3)
}
const pellet = () => {
	enabled = !enabled;
	enabled ? (interval = setInterval(() => {
		idk(id.pellet)
	})) : clearInterval(interval)
}
const recsplit = () => {
	e3 = !e3
	e3 ? interval4 = setInterval(() => {
		idk(id.rec)
		idk(17);
	}, 140) : clearInterval(interval4)
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
window.addEventListener('DOMContentLoaded', function() {
	$("#AccInfo").append(`<input type="checkbox" id="cBlinker">
<label for="cBlinker" style="color: white;">Name color</label>
<input type="number" id="delayInput" placeholder="0" min="0" style="width: 60px; text-align: center;"><br>`);
	let Multibox = document.getElementById('cMultiBox')
	let checkbox = document.getElementById('cBlinker')
	let delayInput = document.getElementById('delayInput')
	let savedDelay = localStorage.getItem("savedDelay");
	savedDelay ? delayInput.value = savedDelay : undefined;
	checkbox.addEventListener("change", function() {
		if (this.checked) {
			const delay = parseInt(document.getElementById("delayInput").value) || 100;
			let flag = false;
			interval = setInterval(async () => {
				flag = !flag;
				await colorchanger(flag ? 1 : 0);
			}, delay);
		} else {
			clearInterval(interval);
		}
	});
	delayInput.addEventListener("input", function() {
		if (checkbox.checked && interval) {
			clearInterval(interval);
			const newDelay = parseInt(this.value) || 100;
			let flag = false;
			interval = setInterval(async () => {
				flag = !flag;
				await colorchanger(flag ? 1 : 0);
			}, newDelay);
			localStorage.setItem("savedDelay", newDelay);
		}
	});
});
window.addEventListener("keydown", e => {
	if (document.activeElement != document.getElementById('chat_textbox')) {
		e.key == combo.shield && shield();
		e.key == combo.vir && vir();
		e.key == combo.pellet && pellet()
		e.key == combo.freezevir && freezevir()
		e.key == combo.portal && portal()
		e.key == combo.recsplit && recsplit()
		e.key == 'u' && push()
		e.key == 'r' && onefs()
		e.key == 'p' && change();
		e.key == 'm' && spawn();
	}
})
window.addEventListener("click", e => {
	if (e.which == 1) {
		breakshield();
	};
})
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
WebSocket.prototype.send = new Proxy(WebSocket.prototype.send, {
	apply(target, thisArg, argArray) {
		send = (...args) => target.call(thisArg, ...args);
		target.apply(thisArg, argArray);
	}
});