非公開 キーボード縦移動修正

    @@ -4,36 +4,45 @@ * @private */ javascript:(function(){ - if (window._intervalSwitchPatch) { + if (window._dutyRatioPatch) { alert('パッチはすでに適用されています。'); return; } - /* 2秒(2000ミリ秒)ごとに true / false を切り替えるタイマー */ let useAlternative = false; - setInterval(function() { + + /* ============================================================ */ + /* 🛠️ 司令官、ここの数値をいじって「時間の差」を調整してください */ + /* ============================================================ */ + const NORMAL_TIME = 100; /* 本来の数値(64や191=右寄り)のキープ時間(ミリ秒) */ + const ALTERN_TIME = 130; /* 補正の数値(63や190=左寄り)のキープ時間(ミリ秒) */ + /* ============================================================ */ + + /* 自分自身を何度も呼び出し直すことで、交互に違うタイマー時間をセットする仕組み */ + function scheduler() { useAlternative = !useAlternative; - }, 10); + /* 次の切り替えまでの時間を、現在のモードに合わせて変動させる */ + const nextTime = useAlternative ? ALTERN_TIME : NORMAL_TIME; + setTimeout(scheduler, nextTime); + } + /* 初回起動 */ + setTimeout(scheduler, NORMAL_TIME); /* WebSocketの送信関数(大元)をハック */ const originalSend = WebSocket.prototype.send; WebSocket.prototype.send = function(data) { - - /* 送信データが1バイト(移動パケット)のときだけ中身を見る */ if (data && (data.byteLength === 1 || data.length === 1)) { const view = new Uint8Array(data.buffer || data); let currentByte = view[0]; /* 【真上移動のとき】 */ if (currentByte === 64) { - /* 2秒ごとに 64(右逸れ)と 63(左逸れ)を入れ替える */ if (useAlternative) { view[0] = 63; } } /* 【真下移動のとき】 */ else if (currentByte === 191) { - /* 2秒ごとに 191(左逸れ)と 190(右逸れ)を入れ替える */ if (useAlternative) { view[0] = 190; } @@ -42,6 +51,6 @@ return originalSend.apply(this, arguments); }; - window._intervalSwitchPatch = true; - alert('【2秒周期・スイッチパッチ】\n2秒ごとに、本来の向きと逆の向き(64⇄63 / 191⇄190)を自動で切り替えます!\nいつもの矢印キーで動かしてみてください。'); + window._dutyRatioPatch = true; + alert('【比率調整式・スイッチパッチ】\n本来の時間:' + NORMAL_TIME + 'ms\n補正の時間:' + ALTERN_TIME + 'ms\nで交互に切り替えます!ズレに合わせて微調整してください。'); })();
  • /*
     * @title キーボード縦移動修正
     * @description キーボード縦移動時にちゃんとまっすぐになるぞ!
     * @private
     */
    javascript:(function(){
        if (window._dutyRatioPatch) {
            alert('パッチはすでに適用されています。');
            return;
        }
    
        let useAlternative = false;
    
        /* ============================================================ */
        /* 🛠️ 司令官、ここの数値をいじって「時間の差」を調整してください */
        /* ============================================================ */
        const NORMAL_TIME = 100; /* 本来の数値(64や191=右寄り)のキープ時間(ミリ秒) */
        const ALTERN_TIME = 130; /* 補正の数値(63や190=左寄り)のキープ時間(ミリ秒) */
        /* ============================================================ */
    
        /* 自分自身を何度も呼び出し直すことで、交互に違うタイマー時間をセットする仕組み */
        function scheduler() {
            useAlternative = !useAlternative;
            /* 次の切り替えまでの時間を、現在のモードに合わせて変動させる */
            const nextTime = useAlternative ? ALTERN_TIME : NORMAL_TIME;
            setTimeout(scheduler, nextTime);
        }
        /* 初回起動 */
        setTimeout(scheduler, NORMAL_TIME);
    
        /* WebSocketの送信関数(大元)をハック */
        const originalSend = WebSocket.prototype.send;
        WebSocket.prototype.send = function(data) {
            if (data && (data.byteLength === 1 || data.length === 1)) {
                const view = new Uint8Array(data.buffer || data);
                let currentByte = view[0]; 
    
                /* 【真上移動のとき】 */
                if (currentByte === 64) {
                    if (useAlternative) {
                        view[0] = 63;
                    }
                }
                /* 【真下移動のとき】 */
                else if (currentByte === 191) {
                    if (useAlternative) {
                        view[0] = 190;
                    }
                }
            }
            return originalSend.apply(this, arguments);
        };
    
        window._dutyRatioPatch = true;
        alert('【比率調整式・スイッチパッチ】\n本来の時間:' + NORMAL_TIME + 'ms\n補正の時間:' + ALTERN_TIME + 'ms\nで交互に切り替えます!ズレに合わせて微調整してください。');
    })();
  • Permalink
    このページへの個別リンクです。
    RAW
    書かれたコードへの直接のリンクです。
    Packed
    文字列が圧縮された書かれたコードへのリンクです。
    Userscript
    Greasemonkey 等で利用する場合の .user.js へのリンクです。
    Loader
    @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
    Metadata
    コード中にコメントで @xxx と書かれたメタデータの JSON です。