void Start()
    {
        // SpeedHackDetector usage example.
        // In this case we subscribe to the speed hack detection event,
        // set detector update interval to 1 second, allowing 5 false positives and
        // allowing cooldown after 60 seconds (read more about cooldown in the readme.pdf).
        // Thus OnSpeedHackDetected normally will execute after 5 seconds since
        // speed hack was applied to the application.
        // Please, note, we have SpeedHackDetector added to the test scene, but all settings
        // we made there in inspecor will be overriden by settings we pass
        // to the SpeedHackDetector.StartDetection(); e.g.:
        // SpeedHackDetector.StartDetection(OnSpeedHackDetected, 1f, 5, 60);

        // for now, we'll just start detection and keep using settings set in inspector:
        SpeedHackDetector.StartDetection(OnSpeedHackDetected);

// InjectionDetector supports only these platforms
#if UNITY_STANDALONE || UNITY_WEBPLAYER || UNITY_IPHONE || UNITY_ANDROID
        // InjectionDetector usage example.
        // We may change some options like this ...
        InjectionDetector.Instance.autoDispose = true;
        InjectionDetector.Instance.keepAlive   = true;

        // ... and subscribe to the injection detection like this
        InjectionDetector.StartDetection(OnInjectionDetected);
#endif

        // similar subsciption to the Obscured types cheating
        // works for all Obscured types except ObscuredPrefs (it has own cheating detection algos)
        ObscuredCheatingDetector.StartDetection(OnObscuredTypeCheatingDetected);
    }
示例#2
0
    /// <summary>
    /// starts the user-specified detectors
    /// </summary>
    void Start()
    {
        m_DetectedHackName = PLACEHOLDER_HACK_NAME;

        if (Detectors.SpeedHack && (SpeedHackDetector.Instance == null))
        {
            SpeedHackDetector.StartDetection(OnSpeedHackDetected);
        }

        if (Detectors.ObscuredCheating && (ObscuredCheatingDetector.Instance == null))
        {
            ObscuredCheatingDetector.StartDetection(OnObscuredCheatingDetected);
        }

        if (Detectors.WallHack && (WallHackDetector.Instance == null))
        {
            WallHackDetector.StartDetection(OnWallHackDetected, Detectors.WallHackSpawnPos);
        }

        if (Detectors.Injection && (InjectionDetector.Instance == null))
        {
            InjectionDetector.StartDetection(OnInjectionDetected);
        }

        if (DontDestroyOnLoad)
        {
            Object.DontDestroyOnLoad(transform.root.gameObject);
        }
    }
        public void Load()
        {
            InjectionDetector.Dispose(); // Disable injection detector
            ObscuredCheatingDetector.Dispose(); // Disable obscured cheating detector
            SpeedHackDetector.Dispose(); // Disable speedhack detector
            WallHackDetector.Dispose(); // Disable wallhack detector

            Logging.LogImportant("Codestage disabled ;D");
        }
示例#4
0
    void Start()
    {
        gameSeed = new DateTimeOffset(DateTime.Now).ToUnixTimeSeconds();

        //StartCoroutine(SignAndSendGameServeAddress(gameServeAddress));
        //StartCoroutine(SignAndSendGameInfo("asteroids", "0x89267B20f07A0AdD565C5f60e4abde37Cc55d6eD", 250000, gameSeed));

        ObscuredCheatingDetector.StartDetection(OnCheaterDetected);
        SpeedHackDetector.StartDetection(OnCheaterDetected);

        // Setting the active panel
        gameOverPanel.SetActive(false);
        highScorePanel.SetActive(false);
        shieldBar.gameObject.SetActive(false);
        gamePanel.SetActive(true);

        healthBar.SetMaxHealth(100);
        hyperFuelBar.SetMaxFuel(100);

        // Instantiating player
        player       = Instantiate(player, new Vector3(0, 0, 0), Quaternion.Euler(-90, 0, 0));
        screenCenter = Camera.main.ScreenToWorldPoint(new Vector3(Screen.width / 2, Screen.height / 2, 0));

        isPlayerAlive = true;

        this.minY = Camera.main.ScreenToWorldPoint(new Vector3(0, 0, -Camera.main.transform.position.z)).y;
        this.maxY = Camera.main.ScreenToWorldPoint(new Vector3(0, Screen.height, -Camera.main.transform.position.z)).y;
        this.minX = Camera.main.ScreenToWorldPoint(new Vector3(0, 0, -Camera.main.transform.position.z)).x;
        this.maxX = Camera.main.ScreenToWorldPoint(new Vector3(Screen.width, 0, -Camera.main.transform.position.z)).x;

        wave1Anim  = wave1.GetComponent <Animation>();
        wave2Anim  = wave2.GetComponent <Animation>();
        wave3Anim  = wave3.GetComponent <Animation>();
        wave4Anim  = wave4.GetComponent <Animation>();
        animPlayed = false;

        // Set contract URL and address
        url                    = "https://data-seed-prebsc-1-s2.binance.org:8545/";
        contractAddress        = "0x8c8559286612050B75a232e1ccDA5bEC8d771a5b";
        gameLogContractAddress = "0xEBc9068f6dEAEdb959d8eb409e226054C562032D";
    }