Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        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);
            }
        }
Exemple #5
0
        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);
            }
        }
Exemple #6
0
        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);
            }
        }
Exemple #7
0
        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);
            }
        }