非公開 近接戦闘マスター

    
      
  • /*
     * @title 近接戦闘マスター
     * @description アイコンサイズを小さくして近接戦闘を非運ゲー化する
     * @private
     */
    javascript:(function(){
        /* 1. 描画コンテキストを取得 */
        const cvs = document.querySelector('canvas');
        if(!cvs) return;
        const ctx = cvs.getContext('2d');
    
        /* 2. 円を描く関数(arc)を一時的に縮小するハック */
        /* プレイヤーの本体は arc で描かれていることが多いので、ここを狙います */
        const originalArc = ctx.arc;
        ctx.arc = function(x, y, radius, startAngle, endAngle, anticlockwise) {
            let newRadius = radius;
            
            /* プレイヤーアイコンと思われるサイズ(例: 10〜40px程度)なら縮小 */
            /* 線の太さや背景の巨大な円には干渉しないように調整 */
            if (radius > 5 && radius < 60) {
                newRadius = radius * 0.5; // ★ここでサイズを半分(0.5)にしています
            }
            
            return originalArc.call(this, x, y, newRadius, startAngle, endAngle, anticlockwise);
        };
    
        /* 3. 画像(drawImage)も縮小するハック */
        /* アイコンに画像を使っているプレイヤー対策 */
        const originalDrawImage = ctx.drawImage;
        ctx.drawImage = function(img, sx, sy, sw, sh, dx, dy, dw, dh) {
            /* 引数の数によって挙動が変わるため、描画先のサイズ(dw, dh)を調整 */
            if (arguments.length >= 9) {
                let newDW = dw * 0.5;
                let newDH = dh * 0.5;
                /* 縮小した分、中心がズレないように位置を補正 */
                let newDX = dx + (dw - newDW) / 2;
                let newDY = dy + (dh - newDH) / 2;
                return originalDrawImage.call(this, img, sx, sy, sw, sh, newDX, newDY, newDW, newDH);
            }
            return originalDrawImage.apply(this, arguments);
        };
    
        console.log('近接特化パッチ:アイコンを50%に縮小しました。');
        alert('【視界クリア】プレイヤーアイコンを小さくしました。\n短い線が見やすくなっているはずです!');
    })();
  • Permalink
    このページへの個別リンクです。
    RAW
    書かれたコードへの直接のリンクです。
    Packed
    文字列が圧縮された書かれたコードへのリンクです。
    Userscript
    Greasemonkey 等で利用する場合の .user.js へのリンクです。
    Loader
    @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
    Metadata
    コード中にコメントで @xxx と書かれたメタデータの JSON です。