XP Free
当前为
// ==UserScript==
// @name XP Involker
// @namespace http://tampermonkey.net/
// @version 1.1
// @description XP Free
// @author MrBonkeiro
// @match https://bonk.io/
// @icon https://www.google.com/s2/favicons?sz=64&domain=bonk.io
// @grant none
// ==/UserScript==
function getBonk() {
const iframe = document.getElementById('maingameframe');
if (!iframe) {
console.error('[MrMenu] Iframe not found');
return null;
}
const iframeDoc = iframe.contentDocument || iframe.contentWindow.document;
if (!iframeDoc) {
console.error('[MrMenu] Iframe document not found');
return null;
}
return iframeDoc;
}
function isRoom() {
const bonkDoc = getBonk();
if (!bonkDoc) return false;
const element = bonkDoc.getElementById('gamerenderer');
if (element) {
return window.getComputedStyle(element).visibility === 'inherit';
}
return false;
}
function Init() {
let getWS;
let timer = null;
let deletePressed = false;
function XP()
{
getWS.send('42[38]');
}
function handleDeleteKey(event) {
if (event.key === "Delete") {
if (!deletePressed) {
deletePressed = true;
timer = setInterval(XP, 2000);
} else {
clearInterval(timer);
deletePressed = false;
}
}
}
getBonk().addEventListener("keydown", handleDeleteKey);
const originalSend = getBonk().defaultView.WebSocket.prototype.send;
getBonk().defaultView.WebSocket.prototype.send = function (...args) {
if (this.url.includes('socket.io')) {
getWS = this;
const originalOnMessage = this.onmessage;
this.onmessage = function (msg) {
return originalOnMessage.call(this, msg);
};
const originalOnClose = this.onclose;
this.onclose = function () {
getWS = null;
return originalOnClose.call(this);
};
}
return originalSend.apply(this, args);
};
}
function ScriptInjector(f) {
if (window.location === window.parent.location) {
if (document.readyState === 'complete') {
setTimeout(f, 1200);
} else {
document.addEventListener('readystatechange', function () {
setTimeout(f, 3500);
});
}
}
}
ScriptInjector(Init);