示例#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);
        }
示例#2
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);
        }
示例#3
0
 internal void init()
 {
     OffsetManager.Init();
     // var text = File.ReadAllText(@"G:\Order.json", Encoding.UTF8);
     // orderList = loadResource<List<LisbethOrder>>(text);
     // Logger.Info("Loaded Order.json");
 }
示例#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);
            }
        }
示例#5
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);
        }
示例#6
0
 private void MainForm_Load(object sender, EventArgs e)
 {
     NetvarManager.LoadOffsets();
     OffsetManager.ScanOffsets();
     Threads.InitAll();
     FreeConsole();
     NetvarManager.netvarList.Clear();
 }
示例#7
0
        public static void INIT()
        {
            var field = (Language)(typeof(DataManager).GetFields(BindingFlags.Static | BindingFlags.NonPublic).First(i => i.FieldType == typeof(Language)).GetValue(null));

            Lang = field;

            OffsetManager.Init();
        }
示例#8
0
        internal void init()
        {
            OffsetManager.Init();

            Log("Load Materia.json");
            MateriaList = loadResource <Dictionary <int, List <MateriaItem> > >(Resources.Materia);
            Log("Loaded Materia.json");
        }
示例#9
0
        private void Init()
        {
            OffsetManager.Init();

            Log("Load venture.json");
            VentureData = new Lazy <List <RetainerTaskData> >(() => loadResource <List <RetainerTaskData> >(Resources.Ventures));
            Log("Loaded venture.json");
        }
示例#10
0
        private void TCPForm_Load(object sender, EventArgs e)
        {
            materialLabel2.Text = LocalIPAddress()?.ToString();
            Thread th = new Thread(ExecuteServer);

            th.Start();
            OffsetManager.DownloadOffsets();
            Threads.InitAll();
        }
示例#11
0
        public override void Initialize()
        {
            OffsetManager.Init();

            // var pmc = new PluginContainer(); pmc.Plugin = new AutoRepair.AutoRepair();
            // pmc.Enabled = true;

            // PluginManager.Plugins.Add(pmc);
        }
示例#12
0
 public OffsetManagerTests()
 {
     this.consumerMock   = new Mock <IConsumer <byte[], byte[]> >();
     this.topicPartition = new TopicPartition("topic-A", new Partition(1));
     this.target         = new OffsetManager(
         this.consumerMock.Object,
         new List <TopicPartition> {
         this.topicPartition
     });
 }
示例#13
0
 public Retainers()
 {
     OffsetManager.Init();
     //Task.Factory.StartNew(() =>
     // {
     init();
     _init = true;
     Log("INIT DONE");
     //  });
 }
        public void Setup()
        {
            this.committerMock  = new Mock <IOffsetCommitter>();
            this.topicPartition = new TopicPartition("topic-A", new Partition(1));

            this.target = new OffsetManager(
                this.committerMock.Object,
                new List <TopicPartition> {
                this.topicPartition
            });
        }
示例#15
0
 private void tsbOpenOffsetsFile_Click(object sender, EventArgs e)
 {
     if ((ofdOpenOffsetFile.ShowDialog() == DialogResult.OK) && (ofdOpenOffsetFile.FileName != ""))
     {
         oFileName = ofdOpenOffsetFile.FileName;
         oManager  = OffsetManager.GetOffsetsFromXML(oFileName);
         if (oManager != null)
         {
             FillOffsetsToGrid();
         }
     }
 }
示例#16
0
        private void TCPForm_Load(object sender, EventArgs e)
        {
            materialLabel2.Text = LocalIPAddress().ToString();
            Thread th = new Thread(ExecuteServer);

            th.Start();

            NetvarManager.LoadOffsets();
            OffsetManager.ScanOffsets();
            Threads.InitAll();
            NetvarManager.netvarList.Clear();
            FreeConsole();
        }
示例#17
0
        static void Main(string[] args)
        {
            var a = new GameOffsets
            {
                Description            = description,
                AmongUsClientOffset    = AmongUsClientOffset,
                GameDataOffset         = GameDataOffset,
                MeetingHudOffset       = MeetingHudOffset,
                GameStartManagerOffset = GameStartManagerOffset,
                HudManagerOffset       = HudManagerOffset,
                ServerManagerOffset    = ServerManagerOffset,
                TempDataOffset         = TempDataOffset
            };

            Console.Write(JsonConvert.SerializeObject(a, Formatting.Indented));
            var b = new OffsetManager("");

            b.AddToLocalIndex(hash, a);
            Console.ReadLine();
        }
示例#18
0
        static void Main(string[] args)
        {
            var a = new GameOffsets
            {
                Description            = description,
                AmongUsClientOffset    = AmongUsClientOffset,
                GameDataOffset         = GameDataOffset,
                MeetingHudOffset       = MeetingHudOffset,
                GameStartManagerOffset = GameStartManagerOffset,
                HudManagerOffset       = HudManagerOffset,
                ServerManagerOffset    = ServerManagerOffset,
                TempDataOffset         = TempDataOffset,
                GameOptionsOffset      = GameOptionsOffset,

                MeetingHudPtr             = new [] { MeetingHudOffset, 0x5C, 0 },
                MeetingHudCachePtrOffsets = new [] { 0x8 },
                MeetingHudStateOffsets    = new [] { 0x84 },
                GameStateOffsets          = new [] { AmongUsClientOffset, 0x5C, 0, 0x64 },
                AllPlayerPtrOffsets       = new [] { GameDataOffset, 0x5C, 0, 0x24 },
                AllPlayersOffsets         = new [] { 0x08 },
                PlayerCountOffsets        = new [] { 0x0C },
                ExiledPlayerIdOffsets     = new [] { MeetingHudOffset, 0x5C, 0, 0x94, 0x08 },
                RawGameOverReasonOffsets  = new [] { TempDataOffset, 0x5c, 0x4 },
                WinningPlayersPtrOffsets  = new [] { TempDataOffset, 0x5C, 0xC },
                WinningPlayersOffsets     = new [] { 0x08 },
                WinningPlayerCountOffsets = new [] { 0x0C },
                GameCodeOffsets           = new [] { GameStartManagerOffset, 0x5c, 0, 0x20, 0x28 },
                PlayRegionOffsets         = new [] { ServerManagerOffset, 0x5c, 0, 0x10, 0x8, 0x8 },
                PlayMapOffsets            = new [] { GameOptionsOffset, 0x5c, 0x4, 0x10 },
                StringOffsets             = new [] { 0x8, 0xC },
                isEpic        = false,
                AddPlayerPtr  = 4,
                PlayerListPtr = 0x10
            };

            Console.Write(JsonConvert.SerializeObject(a, Formatting.Indented));
            var b = new OffsetManager("");

            b.AddToLocalIndex(hash, a);
            Console.ReadLine();
        }
示例#19
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);
            }
        }
示例#20
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);
            }
        }
示例#21
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);
            }
        }
示例#22
0
 public Retainers()
 {
     OffsetManager.Init();
 }
示例#23
0
 public HuntBase()
 {
     OffsetManager.Init();
 }
示例#24
0
 public IshgardHandinBase()
 {
     OffsetManager.Init();
 }
示例#25
0
 private void tsbNewOffsetsFile_Click(object sender, EventArgs e)
 {
     oFileName = "";
     oManager  = new OffsetManager();
     dgOffsets.Rows.Clear();
 }
示例#26
0
 public override void Initialize()
 {
     OffsetManager.Init();
 }
示例#27
0
 /// <summary>
 /// Инициализация начальных переменных приложения
 /// </summary>
 private void InitAll()
 {
     procTools  = new ProcTools();
     IsAttached = false;
     oManager   = new OffsetManager();
 }