/// <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; }
/// <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; } }
/// <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; } }
/// <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; } }