キーボード縦移動修正
by
cutfloss
06/01 [2026/06/01 00:28:51]
キーボード縦移動時にちゃんとまっすぐになるぞ!
@@ -4,45 +4,34 @@
* @private
*/
javascript:(function(){
- if (typeof sendInput === 'function') {
-
- window.sendInput = function() {
- if (!socket || socket.readyState !== WebSocket.OPEN) return;
- if (!isGameReady || myId === null) return;
-
- /* 1. まずは基本の角度(マウスなど)から、普通に1バイトの整数を作る */
- let angle = inputAngle;
- let encodedAngle = Math.round(((angle + Math.PI) / (Math.PI * 2)) * 254);
+ /* 二重適用防止 */
+ if (window._stealthStraightPatch) {
+ alert('パッチはすでに適用されています。');
+ return;
+ }
- /* 2. キーボードが押されているかチェック */
- 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'];
+ /* ゲームのメインループ(または定期的なタイマー)に割り込んで、角度だけをステルス補正する */
+ 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 (!left && !right) {
- if (up) {
- encodedAngle = 63; /* 完璧な真上の整数(一切の小数を排除) */
- } else if (down) {
- encodedAngle = 191; /* 完璧な真下の整数(一切の小数を排除) */
- }
+ /* 左右が押されておらず、縦移動だけのとき */
+ 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;
}
}
+ }
+ }, 1000 / 60); /* 60FPS(16ミリ秒ごと)の超高速で監視・補正 */
- /* 3. 0〜254の範囲に絶対に収まるように安全装置をかける */
- encodedAngle = Math.max(0, Math.min(254, encodedAngle));
-
- /* 4. 1バイトのバイナリデータを作成して送信 */
- const buffer = new ArrayBuffer(1);
- const view = new DataView(buffer);
- view.setUint8(0, encodedAngle);
- socket.send(buffer);
- };
-
- alert('【最終兵器:ダイレクト直進パッチ】\n無駄な計算をすべて排除し、直接直進パケットを送信します。フリーズもズレも克服しました!');
- } else {
- alert('エラー: sendInput関数が見つかりません。ゲーム画面で実行してください。');
- }
+ window._stealthStraightPatch = true;
+ alert('【ステルス直進パッチ】\n通信関数には一切触れず、角度のデータだけを安全に補正します。フリーズなしで完全直進します!');
})();
/*
* @title キーボード縦移動修正
* @description キーボード縦移動時にちゃんとまっすぐになるぞ!
* @private
*/
javascript:(function(){
/* 二重適用防止 */
if (window._stealthStraightPatch) {
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 (!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;
}
}
}
}, 1000 / 60); /* 60FPS(16ミリ秒ごと)の超高速で監視・補正 */
window._stealthStraightPatch = true;
alert('【ステルス直進パッチ】\n通信関数には一切触れず、角度のデータだけを安全に補正します。フリーズなしで完全直進します!');
})();
- Permalink
- このページへの個別リンクです。
- RAW
- 書かれたコードへの直接のリンクです。
- Packed
- 文字列が圧縮された書かれたコードへのリンクです。
- Userscript
- Greasemonkey 等で利用する場合の .user.js へのリンクです。
- Loader
- @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
- Metadata
- コード中にコメントで @xxx と書かれたメタデータの JSON です。