TypeRacer 作弊工具

此脚本图一乐,正常情况不应该使用本脚本

目前为 2023-10-22 提交的版本。查看 最新版本

// ==UserScript==
// @name        typeracer.com - Cheats
// @name:zh-CN  TypeRacer 作弊工具
// @namespace   Violentmonkey Scripts
// @match       https://play.typeracer.com/
// @grant       GM_registerMenuCommand
// @grant       GM_getValue
// @version     0.2
// @author      -
// @license     0BSD
// @description You shouldn't use this script or you are going to be banned from taking races.
// @description:zh-CN 此脚本图一乐,正常情况不应该使用本脚本
// ==/UserScript==
'use strict';

let el;

const press = (() => {
    const _conf = {
        bubbles: true,
        cancelable: true,
    };
    const conf2 = {
        inputType: "insertText",
    };
    function press(key) {
        el.value += key;
        conf2.data = _conf.key = key;
        [
            new KeyboardEvent('keydown', _conf),
            new KeyboardEvent('keypress', _conf),
            new InputEvent("input", conf2)
        ].forEach(f => el.dispatchEvent(f));
    }
    return press;
})();

const delay = n => new Promise(sol => setTimeout(sol, n));

let stop = false;

async function main () {
    const txt = document.querySelector(".inputPanel div").innerText;
    el = document.querySelector(".txtInput");
    for (const t of txt) {
        if (stop) return;
        await delay(GM_getValue("speed_c", 100) + Math.trunc(Math.random() * GM_getValue("speed_v", 30)));
        press(t);
    }
}

GM_registerMenuCommand("停止", () => stop = true);
GM_registerMenuCommand("启动", () => (stop = false, main()));

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址