コード例 #1
0
ファイル: Program.cs プロジェクト: uwx/NFSScript
        /// <summary>
        /// Get the game's memory by it's process name.
        /// </summary>
        /// <param name="processName"></param>
        private static void GetGameMemory(string processName)
        {
            GameMemory = new RunningMemory(_gameProcessName);
            GameMemory.ReadInt32((IntPtr)0);

            NFSScript.Core.GameMemory.Memory = GameMemory;
            NFSScript.Core.GameMemory.GenericMemory = new GMemory(GameMemory.processName);
            if (Settings.Debug)
                RunningMemory.debugMode = true;
        }
コード例 #2
0
        /// <summary>
        /// Get the game's memory by it's process name.
        /// </summary>
        /// <param name="processName"></param>
        private static void GetGameMemory(string processName)
        {
            gameMemory = new RunningMemory(gameProcessName);
            gameMemory.ReadInt32((IntPtr)0);

            GameMemory.memory        = gameMemory;
            GameMemory.genericMemory = new GMemory(gameMemory.processName);
            if (settingDebug == 1)
            {
                RunningMemory.debugMode = true;
            }
        }
コード例 #3
0
ファイル: Program.cs プロジェクト: uwx/NFSScript
        /// <summary>
        /// Call scripts methods such as OnKeyUp, OnKeyDown & Update.
        /// </summary>
        private static void CallScriptsEvents()
        {
            var isGameplayActive = false;
            if (_currentNFSGame != NFSGame.Undercover && _currentNFSGame != NFSGame.World)
                isGameplayActive = GameMemory.ReadByte(InternalPtrs.GAMEPLAY_ACTIVE) == 1;
            else if(_currentNFSGame == NFSGame.Undercover)
                isGameplayActive = GameMemory.ReadInt32((IntPtr)UndercoverAddresses.GenericAddrs.STATIC_GAME_STATE) == 6;
            else if (_currentNFSGame == NFSGame.World)
                isGameplayActive = GameMemory.ReadInt32((IntPtr)GameMemory.getBaseAddress + WorldAddresses.GenericAddrs.NON_STATIC_GAME_STATE) == 6;

            if (isGameplayActive && !_inGameplay)
            {
                for (var i = 0; i < _scripts.Count; i++)
                {
                    if (_scripts[i].HasOnGameplayStart && !_scripts[i].IsInGameplay)
                    {
                        _scripts[i].CallModFunction(ModScript.ModMethod.OnGameplayStart);
                        _scripts[i].IsInGameplay = true;
                    }
                }
                _inGameplay = true;
            }

            if (!isGameplayActive && _inGameplay)
            {
                for (var i = 0; i < _scripts.Count; i++)
                {
                    if (_scripts[i].HasOnGameplayExit && _scripts[i].IsInGameplay)
                    {
                        _scripts[i].CallModFunction(ModScript.ModMethod.OnGameplayExit);
                        _scripts[i].IsInGameplay = false;
                    }
                }
                _inGameplay = false;
            }

            if ((GameMemory.ReadByte(InternalPtrs.IS_ACTIVITY_MODE)) == 1 && !_inRace)
            {
                for (var i = 0; i < _scripts.Count; i++)
                {
                    if (_scripts[i].HasOnActivityEnter && !_scripts[i].IsInActivity)
                    {
                        _scripts[i].CallModFunction(ModScript.ModMethod.OnActivityEnter);
                        _scripts[i].IsInActivity = true;
                    }
                }
                _inRace = true;
            }

            if ((GameMemory.ReadByte(InternalPtrs.IS_ACTIVITY_MODE)) == 0 && _inRace)
            {
                for (var i = 0; i < _scripts.Count; i++)
                {
                    if (_scripts[i].HasOnActivityExit && _scripts[i].IsInActivity)
                    {
                        _scripts[i].CallModFunction(ModScript.ModMethod.OnActivityExit);
                        _scripts[i].IsInActivity = false;
                    }
                }
                _inRace = false;
            }
        }
コード例 #4
0
        /// <summary>
        /// Call scripts methods such as OnKeyUp, OnKeyDown & Update.
        /// </summary>
        private static void CallScriptsEvents()
        {
            bool isGameplayActive = false;

            if (currentNFSGame != NFSGame.Undercover && currentNFSGame != NFSGame.World)
            {
                isGameplayActive = gameMemory.ReadByte(GAMEPLAY_ACTIVE) == 1;
            }
            else if (currentNFSGame == NFSGame.Undercover)
            {
                isGameplayActive = gameMemory.ReadInt32((IntPtr)UndercoverAddresses.GenericAddrs.STATIC_GAME_STATE) == 6;
            }
            else if (currentNFSGame == NFSGame.World)
            {
                isGameplayActive = gameMemory.ReadInt32((IntPtr)gameMemory.getBaseAddress + WorldAddresses.GenericAddrs.NON_STATIC_GAME_STATE) == 6;
            }

            if (isGameplayActive && !inGameplay)
            {
                for (int i = 0; i < scripts.Count; i++)
                {
                    if (scripts[i].HasOnGameplayStart && !scripts[i].IsInGameplay)
                    {
                        scripts[i].CallModFunction(ModScript.ModMethod.OnGameplayStart);
                        scripts[i].IsInGameplay = true;
                    }
                }
                inGameplay = true;
            }

            if (!isGameplayActive && inGameplay)
            {
                for (int i = 0; i < scripts.Count; i++)
                {
                    if (scripts[i].HasOnGameplayExit && scripts[i].IsInGameplay)
                    {
                        scripts[i].CallModFunction(ModScript.ModMethod.OnGameplayExit);
                        scripts[i].IsInGameplay = false;
                    }
                }
                inGameplay = false;
            }

            if ((gameMemory.ReadByte(IS_ACTIVITY_MODE)) == 1 && !inRace)
            {
                for (int i = 0; i < scripts.Count; i++)
                {
                    if (scripts[i].HasOnActivityEnter && !scripts[i].IsInActivity)
                    {
                        scripts[i].CallModFunction(ModScript.ModMethod.OnActivityEnter);
                        scripts[i].IsInActivity = true;
                    }
                }
                inRace = true;
            }

            if ((gameMemory.ReadByte(IS_ACTIVITY_MODE)) == 0 && inRace)
            {
                for (int i = 0; i < scripts.Count; i++)
                {
                    if (scripts[i].HasOnActivityExit && scripts[i].IsInActivity)
                    {
                        scripts[i].CallModFunction(ModScript.ModMethod.OnActivityExit);
                        scripts[i].IsInActivity = false;
                    }
                }
                inRace = false;
            }
        }