キーボード縦移動修正
by
cutfloss
06/01 [2026/06/01 00:28:51]
キーボード縦移動時にちゃんとまっすぐになるぞ!
/*
* @title キーボード縦移動修正
* @description キーボード縦移動時にちゃんとまっすぐになるぞ!
* @private
*/
javascript:(function(){
/* 1. すでにパッチが適用されている場合は二重適用を防ぐ */
if (window._keyboardStraightPatchApplied) {
alert('パッチはすでに適用されています。');
return;
}
/* 2. 入力送信関数をフック(上書き)する */
if (typeof sendInput === 'function') {
const originalSendInput = window.sendInput;
window.sendInput = function(angle) {
let fixedAngle = angle;
/* キーボードが押されているかチェック(client-game.jsのkeysオブジェクトを参照) */
if (typeof keys !== 'undefined') {
const up = keys['ArrowUp'] || keys['KeyW'];
const down = keys['ArrowDown'] || keys['KeyS'];
const left = keys['ArrowLeft'] || keys['KeyA'];
const right = keys['ArrowRight'] || keys['KeyD'];
/* 【ここが魔改造】 */
/* 左右が押されておらず、縦だけが押されている時(純粋な縦移動) */
if (!left && !right) {
if (up) {
/* 真上(本来は -Math.PI / 2) */
/* サーバーが1バイト(0〜254)に変換した時に、ピッタリ「63」または「64」になって */
/* 逆変換(復元)した時にも完全に真上を向く「魔法の角度」に固定します */
fixedAngle = -1.5587186118408203;
} else if (down) {
/* 真下(本来は Math.PI / 2) */
/* 逆変換時にピッタリ真下を向く「魔法の角度」に固定します */
fixedAngle = 1.5587186118408203;
}
}
}
/* 補正した角度(マウス時はそのまま)で元の送信関数を呼び出す */
originalSendInput(fixedAngle);
};
window._keyboardStraightPatchApplied = true;
alert('【キーボード直進化パッチ】\n縦移動時の1バイト変換誤差を先読み補正し、完全直進を可能にしました!');
} else {
alert('エラー: sendInput 関数が見つかりませんでした。ゲーム画面で実行してください。');
}
})();
- Permalink
- このページへの個別リンクです。
- RAW
- 書かれたコードへの直接のリンクです。
- Packed
- 文字列が圧縮された書かれたコードへのリンクです。
- Userscript
- Greasemonkey 等で利用する場合の .user.js へのリンクです。
- Loader
- @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
- Metadata
- コード中にコメントで @xxx と書かれたメタデータの JSON です。