dino HACK >:3

Press F to toggle fly mode in Dino

이 스크립트를 설치하려면 Tampermonkey, Greasemonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램을 설치해야 합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Userscripts와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 유저 스크립트 관리자 확장 프로그램이 필요합니다.

(이미 유저 스크립트 관리자가 설치되어 있습니다. 설치를 진행합니다!)

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

(이미 유저 스타일 관리자가 설치되어 있습니다. 설치를 진행합니다!)

// ==UserScript==
// @name         dino HACK >:3
// @namespace    https://greasyfork.org/
// @version      1.2
// @description  Press F to toggle fly mode in Dino
// @match        *://chromedino.com/*
// @match        *://elgoog.im/*
// @grant        none
// ==/UserScript==

(function () {
    'use strict';

    let fly = false;
    let flyLoop = null;

    function getR() {
        return window.Runner && Runner.instance_;
    }

    function enableFly(r) {
        r.tRex.config.GRAVITY = 0;

        flyLoop = setInterval(() => {
            const r2 = getR();
            if(!r2) return;

            r2.tRex.yPos = 40;
        }, 10);
    }

    function disableFly(r) {
        clearInterval(flyLoop);
        if (r) r.tRex.config.GRAVITY = 0.6;
    }


    function enableGodMode(r) {
        if (!r._originalGameOver) {
            r._originalGameOver = r.gameOver;
        }

        r.gameOver = function () {

        };
    }

    function init() {
        const r = getR();
        if (!r) return requestAnimationFrame(init);

        enableGodMode(r);

        document.addEventListener("keydown", (e) => {
            if (e.key.toLowerCase() === "f") {
                fly = !fly;

                if (fly) {
                    enableFly(r);
                } else {
                    disableFly(r);
                                    }
            }
        });
    }

    init();
})();