public static bool GetPlayerInfo(out PlayerInfo playerInfo) { if (_playerData == null) { var update = UpdatePlayerData(); if (!update) { playerInfo = null; return(false); } } else { playerInfo = new PlayerInfo() { CurrentHealth = BitConverter.ToUInt32(_playerData, OffsetManager.GetOffset(OffsetType.PlayerHealthCurrent)), MaxHealth = BitConverter.ToUInt32(_playerData, OffsetManager.GetOffset(OffsetType.PlayerHealthMax)), Level = (int)_playerData[OffsetManager.GetOffset(OffsetType.PlayerLevel)] }; return(true); } playerInfo = null; return(false); }
internal static string GetPlayerName() { if (!_attached) { return(string.Empty); } try { var bName = new byte[12]; var bytesRead = 0; ReadProcessMemory(MemoryHandle, _moduleBase + OffsetManager.GetOffset(OffsetType.PlayerName), bName, bName.Length, ref bytesRead); var nameLength = Array.FindIndex(bName, item => item == 0x00); if (nameLength > 0) { return(Encoding.Default.GetString(bName, 0, nameLength)); } else { return(Encoding.Default.GetString(bName, 0, bytesRead)); } } catch (Exception ex) { Logger.Write("GetPlayerName Exception: {0}", ex); } return(string.Empty); }
public static GameInfo.Classes GetPlayerClass() { if (!_attached) { return(GameInfo.Classes.None); } try { var bPlayerClass = new byte[1]; var bytesRead = 0; var success = ReadProcessMemory(MemoryHandle, _moduleBase + OffsetManager.GetOffset(OffsetType.PlayerClass), bPlayerClass, 1, ref bytesRead); return(success ? (GameInfo.Classes)bPlayerClass[0] : GameInfo.Classes.None); } catch (Exception ex) { Logger.Write($"GetPlayerClass Exception: {ex}"); } return(GameInfo.Classes.None); }
public static bool GetMouselooking() { if (!_attached) { return(false); } try { var bMouseState = new byte[1]; var bytesRead = 0; // Read the location of the mouse info from memory ReadProcessMemory(MemoryHandle, _moduleBase + OffsetManager.GetOffset(OffsetType.MouseLook), bMouseState, bMouseState.Length, ref bytesRead); return(((int)bMouseState[0] & 1) == 1); } catch (Exception ex) { Logger.Write("GetMouselooking Exception: {0}", ex); return(false); } }
public static byte[] GetMouseGuid() { if (!_attached) { return(null); } try { var bMouseGuid = new byte[16]; var bytesRead = 0; var success = ReadProcessMemory(MemoryHandle, _moduleBase + OffsetManager.GetOffset(OffsetType.MouseGuid), bMouseGuid, 16, ref bytesRead); return(success ? bMouseGuid : null); } catch (Exception ex) { Logger.Write($"GetMouseGuid Exception: {ex}"); return(null); } }
private static bool UpdatePlayerBase() { try { var bPlayerPointer = new byte[8]; var bytesRead = 0; var success = ReadProcessMemory(MemoryHandle, _moduleBase + OffsetManager.GetOffset(OffsetType.PlayerBase), bPlayerPointer, bPlayerPointer.Length, ref bytesRead); if (!success) { throw new InvalidOperationException("Unable to read player pointer"); } var playerPointer = (IntPtr)BitConverter.ToInt64(bPlayerPointer, 0); success = ReadProcessMemory(MemoryHandle, playerPointer + 0x08, bPlayerPointer, bPlayerPointer.Length, ref bytesRead); if (success) { _playerBase = (IntPtr)BitConverter.ToInt64(bPlayerPointer, 0); return(true); } else { throw new InvalidOperationException(); } } catch (Exception ex) { _playerBase = IntPtr.Zero; Logger.Write($"UpdatePlayerBase Exception: {ex}"); return(false); } }
public static GameState GetGameState() { if (!_attached) { return(GameState.NotRunning); } try { var bGameState = new byte[1]; var bytesRead = 0; var success = ReadProcessMemory(MemoryHandle, _moduleBase + OffsetManager.GetOffset(OffsetType.GameState), bGameState, 1, ref bytesRead); return(success ? (GameState)bGameState[0] : GameState.NotRunning); } catch (Exception ex) { Logger.Write($"GetGameState Exception: {ex}"); return(GameState.NotRunning); } }