キーボード縦移動修正
by
cutfloss
06/01 [2026/06/01 00:28:51]
キーボード縦移動時にちゃんとまっすぐになるぞ!
@@ -5,33 +5,43 @@
*/
javascript:(function(){
/* 二重適用防止 */
- if (window._stealthStraightPatch) {
+ if (window._keyboardPerfectStraightPatch) {
alert('パッチはすでに適用されています。');
return;
}
- /* ゲームのメインループ(または定期的なタイマー)に割り込んで、角度だけをステルス補正する */
- setInterval(function() {
- /* キーボードとゲームの変数が存在するか安全確認 */
- if (typeof keys !== 'undefined' && typeof inputAngle !== '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 (typeof updateArrowInput === 'function') {
+ const originalUpdateArrowInput = window.updateArrowInput;
- /* 左右が押されておらず、縦移動だけのとき */
- if (!left && !right) {
- if (up) {
- /* サーバーで1バイトに変換された時にピッタリ「63」(真上)になる魔法のラジアン */
- window.inputAngle = ((63 / 254) * Math.PI * 2) - Math.PI;
- } else if (down) {
- /* サーバーで1バイトに変換された時にピッタリ「191」(真下)になる魔法のラジアン */
- window.inputAngle = ((191 / 254) * Math.PI * 2) - Math.PI;
+ window.updateArrowInput = function() {
+ /* 1. まずゲーム本来のキーボード判定を行わせる(inputStateに値が入る) */
+ originalUpdateArrowInput();
+
+ /* 2. その直後、sendInputが実行される前に、縦移動のズレを「魔法の比率」で上書きする */
+ if (typeof inputState !== 'undefined') {
+ const dx = inputState.dx;
+ const dy = inputState.dy;
+
+ /* 左右が押されておらず、縦移動だけのとき */
+ if (dx === 0 && dy !== 0) {
+ if (dy < 0) {
+ /* 【真上移動の補正】 */
+ /* atan2(dy, dx) が、1バイト変換時にピッタリ「63」になる魔法の比率 */
+ inputState.dy = -1;
+ inputState.dx = 0.01238; /* あえてごくわずかに右に傾けることで、四捨五入を63にハメ込む */
+ } else if (dy > 0) {
+ /* 【真下移動の補正】 */
+ /* atan2(dy, dx) が、1バイト変換時にピッタリ「191」になる魔法の比率 */
+ inputState.dy = 1;
+ inputState.dx = -0.01238; /* あえてごくわずかに左に傾けることで、四捨五入を191にハメ込む */
+ }
}
}
- }
- }, 1000 / 60); /* 60FPS(16ミリ秒ごと)の超高速で監視・補正 */
+ };
- window._stealthStraightPatch = true;
- alert('【ステルス直進パッチ】\n通信関数には一切触れず、角度のデータだけを安全に補正します。フリーズなしで完全直進します!');
+ window._keyboardPerfectStraightPatch = true;
+ alert('【入力軸・直進補正パッチ】\nキーボードの縦入力を検知し、サーバーの四捨五入バグを相殺する魔法の数値を注入しました!');
+ } else {
+ alert('エラー: updateArrowInput 関数が見つかりません。ゲーム画面で実行してください。');
+ }
})();
/*
* @title キーボード縦移動修正
* @description キーボード縦移動時にちゃんとまっすぐになるぞ!
* @private
*/
javascript:(function(){
/* 二重適用防止 */
if (window._keyboardPerfectStraightPatch) {
alert('パッチはすでに適用されています。');
return;
}
if (typeof updateArrowInput === 'function') {
const originalUpdateArrowInput = window.updateArrowInput;
window.updateArrowInput = function() {
/* 1. まずゲーム本来のキーボード判定を行わせる(inputStateに値が入る) */
originalUpdateArrowInput();
/* 2. その直後、sendInputが実行される前に、縦移動のズレを「魔法の比率」で上書きする */
if (typeof inputState !== 'undefined') {
const dx = inputState.dx;
const dy = inputState.dy;
/* 左右が押されておらず、縦移動だけのとき */
if (dx === 0 && dy !== 0) {
if (dy < 0) {
/* 【真上移動の補正】 */
/* atan2(dy, dx) が、1バイト変換時にピッタリ「63」になる魔法の比率 */
inputState.dy = -1;
inputState.dx = 0.01238; /* あえてごくわずかに右に傾けることで、四捨五入を63にハメ込む */
} else if (dy > 0) {
/* 【真下移動の補正】 */
/* atan2(dy, dx) が、1バイト変換時にピッタリ「191」になる魔法の比率 */
inputState.dy = 1;
inputState.dx = -0.01238; /* あえてごくわずかに左に傾けることで、四捨五入を191にハメ込む */
}
}
}
};
window._keyboardPerfectStraightPatch = true;
alert('【入力軸・直進補正パッチ】\nキーボードの縦入力を検知し、サーバーの四捨五入バグを相殺する魔法の数値を注入しました!');
} else {
alert('エラー: updateArrowInput 関数が見つかりません。ゲーム画面で実行してください。');
}
})();
- Permalink
- このページへの個別リンクです。
- RAW
- 書かれたコードへの直接のリンクです。
- Packed
- 文字列が圧縮された書かれたコードへのリンクです。
- Userscript
- Greasemonkey 等で利用する場合の .user.js へのリンクです。
- Loader
- @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
- Metadata
- コード中にコメントで @xxx と書かれたメタデータの JSON です。