您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
透過傳送重複攻擊訊息來增加殺戮資料的腳本(使用滑桿從 1 調整到 50000)
// ==UserScript== // @name SwordMasters.io 透過 WS 複製實現擊殺倍數 // @namespace http://tampermonkey.net/ // @license MIT // @version 1.0 // @description 透過傳送重複攻擊訊息來增加殺戮資料的腳本(使用滑桿從 1 調整到 50000) // @author huang-wei-lun // @match https://swordmasters.io/* // @grant none // ==/UserScript== (function () { 'use strict'; // -- 1. UI 建立:左下角滑桿 (1~50000) -- function createMultiplierUI() { // UI 容器 const container = document.createElement('div'); container.style.position = 'fixed'; container.style.bottom = '10px'; container.style.left = '10px'; container.style.zIndex = '10000'; container.style.backgroundColor = 'rgba(0, 0, 0, 0.7)'; container.style.color = 'white'; container.style.padding = '8px'; container.style.borderRadius = '5px'; container.style.fontFamily = 'Arial, sans-serif'; container.style.fontSize = '14px'; container.style.userSelect = 'none'; // 標題 const title = document.createElement('div'); title.innerText = '殺人乘數'; title.style.marginBottom = '4px'; container.appendChild(title); // 滑桿 const slider = document.createElement('input'); slider.type = 'range'; slider.min = '1'; slider.max = '50000'; slider.value = '1'; // 基本的: 1 (即沒有額外的傳輸) slider.style.width = '200px'; container.appendChild(slider); // 顯示價值 const valueLabel = document.createElement('span'); valueLabel.innerText = ' x1'; valueLabel.style.marginLeft = '8px'; container.appendChild(valueLabel); slider.addEventListener('input', function () { valueLabel.innerText = ' x' + slider.value; }); document.body.appendChild(container); return slider; } // -- 2. WebSocket 訊息掛鉤 -- // 通常 WebSocket.send節省 const originalWSSend = WebSocket.prototype.send; // 在使用者介面中 kill multiplier 建立一個滑桿物件來讀取值 const multiplierSlider = createMultiplierUI(); WebSocket.prototype.send = function (data) { try { // 資料必須是要分析的字串 let messageText; if (typeof data === 'string') { messageText = data; } else if (data instanceof ArrayBuffer || ArrayBuffer.isView(data)) { // 解碼為字串 (UTF-8) messageText = new TextDecoder("utf-8").decode(data); } else { messageText = data.toString(); } // 確認:在訊息中 "Client:EnemyController:checkDamage" 包含在內嗎? if (messageText.indexOf("Client:EnemyController:checkDamage") !== -1) { // 傳送基本訊息(實際攻擊) originalWSSend.call(this, data); // 額外傳輸:取決於滑桿值(例如,如果值為 1,則無額外傳輸) const multiplier = parseInt(multiplierSlider.value, 10); // multiplier的 預設值 1: 0 extra, 2: 1 extra, ... const extraCount = multiplier - 1; if (extraCount > 0) { for (let i = 0; i < extraCount; i++) { // 短暫延遲後進行額外傳輸(每次延遲 20ms) setTimeout(() => { originalWSSend.call(this, data); }, 20 * (i + 1)); } } return; // 由於已經被處理,因此返回 } } catch (err) { console.error("Kill multiplier WS hook error:", err); } // 正常訊息原樣發送 originalWSSend.call(this, data); }; console.log("[Kill Multiplier] Script loaded and WS.send hooked."); })();