キーボード縦移動修正
by
cutfloss
06/01 [2026/06/01 00:28:51]
キーボード縦移動時にちゃんとまっすぐになるぞ!
@@ -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 です。