您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Enables an Instakill feature for Kour.io. Toggle menu with Right-Shift.
// ==UserScript== // @name Kour.io Instakill 2025 // @match *://kour.io/* // @version 1.0 // @icon https://upload.wikimedia.org/wikipedia/commons/f/fd/The_death.svg // @author Partypixelparty7 // @description Enables an Instakill feature for Kour.io. Toggle menu with Right-Shift. // @run-at document-start // @grant unsafeWindow // @grant GM_info // @namespace https://greasyfork.org/users/1476481 // ==/UserScript== (function () { "use strict"; // Global configuration for the script's features const featureSettings = { config: { instakillActive: false } }; unsafeWindow.kourFeatureSettings = featureSettings; const PacketSignatures = { playerUpdate: "f3 02 fd 02 f4 03 c8" }; function arrayBufferToHexString(buffer) { return Array.from(new Uint8Array(buffer)).map(b => b.toString(16).padStart(2, "0")).join(" "); } (function setupWebSocketHook() { if (!unsafeWindow.WebSocket) { console.warn("[KourInstakill] WebSocket API not found. Hook not initialized."); return; } const OriginalWebSocket = unsafeWindow.WebSocket; unsafeWindow.WebSocket = function (...args) { const wsInstance = new OriginalWebSocket(...args); const originalSend = wsInstance.send; wsInstance.send = function (data) { if (data instanceof ArrayBuffer && arrayBufferToHexString(data).startsWith(PacketSignatures.playerUpdate) && featureSettings.config.instakillActive) { for (let i = 0; i < 41; i++) { originalSend.call(wsInstance, data); } return; } return originalSend.call(wsInstance, data); }; return wsInstance; }; unsafeWindow.WebSocket.prototype = OriginalWebSocket.prototype; console.log("[KourInstakill] WebSocket hook initialized for Instakill."); })(); // --- Instakill Menu Creation function createInstakillMenu() { const menu = document.createElement("div"); menu.id = "instakillControlMenu"; menu.style.position = "fixed"; menu.style.top = "10px"; menu.style.right = "10px"; menu.style.backgroundColor = "rgba(35, 39, 42, 0.95)"; // Dark Discord-like bg menu.style.border = "1px solid #2c2f33"; // Slightly lighter border menu.style.borderRadius = "8px"; // More rounded menu.style.padding = "10px"; // Reduced padding menu.style.zIndex = "25000"; menu.style.color = "#dcddde"; // Light gray text (Discord-like) menu.style.fontFamily = "'Whitney', 'Helvetica Neue', Helvetica, Arial, sans-serif"; // Discord font stack menu.style.fontSize = "13px"; // Smaller base font size menu.style.display = "none"; menu.style.minWidth = "200px"; // Reduced min-width menu.style.boxShadow = "0 4px 12px rgba(0,0,0,0.4)"; // Softer, more prominent shadow menu.style.transition = "opacity 0.2s ease-in-out, transform 0.2s ease-in-out"; const title = document.createElement("div"); title.textContent = "Instakill"; title.style.fontSize = "15px"; title.style.fontWeight = "600"; // Semi-bold title.style.marginBottom = "8px"; title.style.paddingBottom = "4px"; title.style.borderBottom = "1px solid #4f545c"; // Discord-like separator title.style.textAlign = "center"; title.style.color = "#7289da"; // Discord blurple menu.appendChild(title); const instakillButton = document.createElement("button"); instakillButton.id = "instakillToggleButton"; instakillButton.textContent = "Instakill: OFF"; instakillButton.style.backgroundColor = "#4f545c"; // Darker gray for OFF (Discord-like) instakillButton.style.color = "white"; instakillButton.style.border = "none"; instakillButton.style.padding = "7px 10px"; // Reduced padding instakillButton.style.cursor = "pointer"; instakillButton.style.width = "100%"; instakillButton.style.marginBottom = "10px"; instakillButton.style.fontSize = "13px"; instakillButton.style.borderRadius = "5px"; instakillButton.style.transition = "background-color 0.15s ease, transform 0.1s ease"; instakillButton.style.fontWeight = "500"; instakillButton.onmouseover = function() { this.style.transform = "scale(1.02)"; if (!featureSettings.config.instakillActive) this.style.backgroundColor = "#5c6269"; else this.style.backgroundColor = "#3ca374"; // Darker active green }; instakillButton.onmouseout = function() { this.style.transform = "scale(1)"; if (!featureSettings.config.instakillActive) this.style.backgroundColor = "#4f545c"; else this.style.backgroundColor = "#43b581"; // Discord Green }; instakillButton.onmousedown = function() { this.style.transform = "scale(0.98)"; }; instakillButton.onmouseup = function() { this.style.transform = "scale(1.02)"; }; instakillButton.onclick = function () { featureSettings.config.instakillActive = !featureSettings.config.instakillActive; if (featureSettings.config.instakillActive) { this.textContent = "Instakill: ON"; this.style.backgroundColor = "#43b581"; // Discord Green } else { this.textContent = "Instakill: OFF"; this.style.backgroundColor = "#4f545c"; } }; menu.appendChild(instakillButton); // Disclaimer Block (Revised Text) const disclaimerContainer = document.createElement("div"); disclaimerContainer.style.fontSize = "10px"; disclaimerContainer.style.color = "#b9bbbe"; // Lighter gray (Discord) disclaimerContainer.style.marginBottom = "8px"; disclaimerContainer.style.padding = "6px"; disclaimerContainer.style.backgroundColor = "rgba(0,0,0,0.15)"; disclaimerContainer.style.borderRadius = "4px"; disclaimerContainer.style.border = "1px solid #2c2f33"; const disclaimerP1 = document.createElement("p"); disclaimerP1.innerHTML = "📦 <strong>GitHub Homepage:</strong>You can visit my GitHub homepage here"; disclaimerP1.style.margin = "0 0 3px 0"; const disclaimerP3 = document.createElement("p"); // NEUER ABSATZ disclaimerP3.textContent = "Thanks for using this script!"; disclaimerP3.style.margin = "0"; disclaimerContainer.appendChild(disclaimerP1); // disclaimerContainer.appendChild(disclaimerP2); // ENTFERNT, da disclaimerP2 nicht definiert war disclaimerContainer.appendChild(disclaimerP3); menu.appendChild(disclaimerContainer); const cheatLink = document.createElement("a"); cheatLink.href = "https://partypixelparty7.github.io/All-my-Scripts/#"; cheatLink.textContent = "GitHub Homepage"; // More generic cheatLink.target = "_blank"; cheatLink.style.color = "#7289da"; // Discord blurple cheatLink.style.textDecoration = "none"; cheatLink.style.fontSize = "11px"; cheatLink.style.display = "block"; cheatLink.style.textAlign = "center"; cheatLink.style.padding = "4px 0"; cheatLink.style.borderRadius = "3px"; cheatLink.style.transition = "background-color 0.15s ease, color 0.15s ease"; cheatLink.onmouseover = function() { this.style.backgroundColor = "rgba(114, 137, 218, 0.2)"; this.style.color = "#ffffff"; }; cheatLink.onmouseout = function() { this.style.backgroundColor = "transparent"; this.style.color = "#7289da"; }; menu.appendChild(cheatLink); const authorText = document.createElement("div"); try { authorText.textContent = `v${GM_info.script.version} by Partypixelparty7`; } catch (e) { authorText.textContent = `by Partypixelparty7`; // Fallback if GM_info is not available } authorText.style.fontSize = "9px"; authorText.style.color = "#72767d"; // Darker gray (Discord) authorText.style.marginTop = "6px"; authorText.style.textAlign = "center"; authorText.style.borderTop = "1px solid #4f545c"; authorText.style.paddingTop = "4px"; menu.appendChild(authorText); document.body.appendChild(menu); } // Menu Toggle Function (Right-Shift) document.addEventListener("keydown", function (e) { if (e.target.matches("input, textarea, [contenteditable='true'], [contenteditable]")) { return; } if (e.code === "ShiftRight") { e.preventDefault(); const menu = document.getElementById("instakillControlMenu"); if (menu) { menu.style.display = menu.style.display === "none" ? "block" : "none"; } } }); if (document.readyState === 'loading') { window.addEventListener('DOMContentLoaded', createInstakillMenu); } else { createInstakillMenu(); } console.log(`[KourInstakill] Script v${GM_info && GM_info.script ? GM_info.script.version : 'N/A'} loaded. Press 'Right-Shift' to toggle menu.`); })();