Пример #1
0
        public override void Update()
        {
            base.Update();

            pos.X    = BlackMagicInstance.ReadFloat(BaseAddress + 0x24);
            pos.Y    = BlackMagicInstance.ReadFloat(BaseAddress + 0x28);
            pos.Z    = BlackMagicInstance.ReadFloat(BaseAddress + 0x2C);
            Rotation = BlackMagicInstance.ReadFloat(BaseAddress + 0x20);
            Owner    = BlackMagicInstance.ReadUInt64(BaseAddress + 0x18);
        }
Пример #2
0
        public override void Update()
        {
            base.Update();

            try
            {
                if (PlayerBase == 0)
                {
                    PlayerBase = BlackMagicInstance.ReadUInt(Offsets.playerBase);
                    PlayerBase = BlackMagicInstance.ReadUInt(PlayerBase + 0x34);
                    PlayerBase = BlackMagicInstance.ReadUInt(PlayerBase + 0x24);
                }

                Race  = (WowRace)BlackMagicInstance.ReadByte(Offsets.playerRace);
                Class = (WowClass)BlackMagicInstance.ReadByte(Offsets.playerClass);

                Name   = BlackMagicInstance.ReadASCIIString(Offsets.playerName, 12);
                Exp    = BlackMagicInstance.ReadInt(PlayerBase + 0x3794);
                MaxExp = BlackMagicInstance.ReadInt(PlayerBase + 0x3798);

                // Somehow this is really sketchy, need to replace this...
                //uint castingState = BlackMagicInstance.ReadUInt((uint)BlackMagicInstance.MainModule.BaseAddress + Offsets.localPlayerCharacterState);
                //castingState = BlackMagicInstance.ReadUInt(castingState + Offsets.localPlayerCharacterStateOffset1);
                //castingState = BlackMagicInstance.ReadUInt(castingState + Offsets.localPlayerCharacterStateOffset2);
                //CurrentState = (UnitState)BlackMagicInstance.ReadInt(castingState + Offsets.localPlayerCharacterStateOffset3);

                TargetGuid = BlackMagicInstance.ReadUInt64(Descriptor + 0x48);
                PetGuid    = BlackMagicInstance.ReadUInt64(Offsets.petGuid);

                PartymemberGuids = new List <ulong>();
                //PartyleaderGuid = BlackMagicInstance.ReadUInt64(Offsets.partyLeader);
                PartyleaderGuid = BlackMagicInstance.ReadUInt64(Offsets.raidLeader);

                PartymemberGuids.Add(BlackMagicInstance.ReadUInt64(Offsets.partyPlayer1));
                PartymemberGuids.Add(BlackMagicInstance.ReadUInt64(Offsets.partyPlayer2));
                PartymemberGuids.Add(BlackMagicInstance.ReadUInt64(Offsets.partyPlayer3));
                PartymemberGuids.Add(BlackMagicInstance.ReadUInt64(Offsets.partyPlayer4));

                // try to add raidmembers
                for (uint p = 0; p < 40; p++)
                {
                    try
                    {
                        uint  address = Offsets.raidGroupStart + (p * Offsets.raidPlayerOffset);
                        ulong guid    = BlackMagicInstance.ReadUInt64(address);
                        if (!PartymemberGuids.Contains(guid))
                        {
                            PartymemberGuids.Add(guid);
                        }
                    }
                    catch { }
                }
            }
            catch { }
        }
Пример #3
0
        public override void Update()
        {
            base.Update();

            try
            {
                pos.X    = BlackMagicInstance.ReadFloat(BaseAddress + 0x798);
                pos.Y    = BlackMagicInstance.ReadFloat(BaseAddress + 0x79C);
                pos.Z    = BlackMagicInstance.ReadFloat(BaseAddress + 0x7A0);
                Rotation = BlackMagicInstance.ReadFloat(BaseAddress + 0x7A8);
            }
            catch { }
        }
Пример #4
0
        public override void Update()
        {
            base.Update();

            try
            {
                if (PlayerBase == 0)
                {
                    PlayerBase = BlackMagicInstance.ReadUInt(Offsets.playerBase);
                    PlayerBase = BlackMagicInstance.ReadUInt(PlayerBase + 0x34);
                    PlayerBase = BlackMagicInstance.ReadUInt(PlayerBase + 0x24);
                }

                Race  = (WowRace)BlackMagicInstance.ReadByte(Offsets.playerRace);
                Class = (WowClass)BlackMagicInstance.ReadByte(Offsets.playerClass);

                Name   = BlackMagicInstance.ReadASCIIString(Offsets.playerName, 12);
                Exp    = BlackMagicInstance.ReadInt(PlayerBase + 0x3794);
                MaxExp = BlackMagicInstance.ReadInt(PlayerBase + 0x3798);

                // Somehow this is really sketchy, need to replace this...
                //uint castingState = BlackMagicInstance.ReadUInt((uint)BlackMagicInstance.MainModule.BaseAddress + Offsets.localPlayerCharacterState);
                //castingState = BlackMagicInstance.ReadUInt(castingState + Offsets.localPlayerCharacterStateOffset1);
                //castingState = BlackMagicInstance.ReadUInt(castingState + Offsets.localPlayerCharacterStateOffset2);
                //CurrentState = (UnitState)BlackMagicInstance.ReadInt(castingState + Offsets.localPlayerCharacterStateOffset3);

                TargetGuid = BlackMagicInstance.ReadUInt64(Descriptor + 0x48);

                PartymemberGuids = new List <ulong>();
                PartyleaderGUID  = BlackMagicInstance.ReadUInt64(Offsets.partyLeader);

                if (PartyleaderGUID != 0)
                {
                    PartymemberGuids?.Add(BlackMagicInstance.ReadUInt64(Offsets.partyPlayer1));
                    PartymemberGuids?.Add(BlackMagicInstance.ReadUInt64(Offsets.partyPlayer2));
                    PartymemberGuids?.Add(BlackMagicInstance.ReadUInt64(Offsets.partyPlayer3));
                    PartymemberGuids?.Add(BlackMagicInstance.ReadUInt64(Offsets.partyPlayer4));
                }
            }
            catch { }
        }
Пример #5
0
        /// <summary>
        /// Get a player's name from its GUID
        /// </summary>
        /// <param name="guid">player's GUID</param>
        /// <returns>name of the player</returns>
        public string GetPlayerNameFromGuid(ulong guid)
        {
            uint playerMask, playerBase, shortGUID, testGUID, offset, current;

            playerMask = BlackMagicInstance.ReadUInt((Offsets.nameStore + Offsets.nameMask));
            playerBase = BlackMagicInstance.ReadUInt((Offsets.nameStore + Offsets.nameBase));

            // Shorten the GUID
            shortGUID = (uint)guid & 0xfffffff;
            offset    = 12 * (playerMask & shortGUID);

            current = BlackMagicInstance.ReadUInt(playerBase + offset + 8);
            offset  = BlackMagicInstance.ReadUInt(playerBase + offset);

            // Check for empty name
            if ((current & 0x1) == 0x1)
            {
                return("");
            }

            testGUID = BlackMagicInstance.ReadUInt(current);

            while (testGUID != shortGUID)
            {
                current = BlackMagicInstance.ReadUInt(current + offset + 4);

                // Check for empty name
                if ((current & 0x1) == 0x1)
                {
                    return("");
                }
                testGUID = BlackMagicInstance.ReadUInt(current);
            }

            return(BlackMagicInstance.ReadASCIIString(current + Offsets.nameString, 12));
        }
Пример #6
0
        public override void Update()
        {
            base.Update();

            if (Name == null)
            {
                try { Name = GetMobNameFromBase(BaseAddress); } catch { }
            }

            try
            {
                pos.X    = BlackMagicInstance.ReadFloat(BaseAddress + 0x798);
                pos.Y    = BlackMagicInstance.ReadFloat(BaseAddress + 0x79C);
                pos.Z    = BlackMagicInstance.ReadFloat(BaseAddress + 0x7A0);
                Rotation = BlackMagicInstance.ReadFloat(BaseAddress + 0x7A8);

                TargetGuid = BlackMagicInstance.ReadUInt64(Descriptor + 0x48);

                CurrentlyCastingId    = BlackMagicInstance.ReadInt(BaseAddress + 0xA6C);
                CurrentlyChannelingId = BlackMagicInstance.ReadInt(BaseAddress + 0xA80);
            }
            catch { }

            // too cpu heavy

            /*try
             * {
             *  distance = Utils.GetDistance(pos, AmeisenManager.GetInstance().Me().pos);
             * }
             * catch { }*/

            try
            {
                Level     = BlackMagicInstance.ReadInt(Descriptor + 0xD8);
                Health    = BlackMagicInstance.ReadInt(Descriptor + 0x60);
                MaxHealth = BlackMagicInstance.ReadInt(Descriptor + 0x80);
            }
            catch { }

            try
            {
                Mana    = BlackMagicInstance.ReadInt(Descriptor + 0x64);
                MaxMana = BlackMagicInstance.ReadInt(Descriptor + 0x84);
            }
            catch { }

            try
            {
                Rage    = BlackMagicInstance.ReadInt(Descriptor + 0x68) / 10;
                MaxRage = 100;
            }
            catch { }

            try
            {
                Energy    = BlackMagicInstance.ReadInt(BaseAddress + 0xFC0);
                MaxEnergy = 100;
            }
            catch { }

            try
            {
                RuneEnergy    = BlackMagicInstance.ReadInt(BaseAddress + 0x19D4) / 10;
                MaxRuneEnergy = 100;
            }
            catch { }

            //CombatReach = BlackMagicInstance.ReadInt(BaseUnitFields + (0x42 * 4));
            //ChannelSpell = BlackMagicInstance.ReadInt(BaseUnitFields + (0x16 * 4));
            //SummonedBy = BlackMagicInstance.ReadInt(BaseUnitFields + (0xE * 4));
            //FactionTemplate = BlackMagicInstance.ReadInt(BaseUnitFields + (0x37 * 4));

            try { UFlags = (BitVector32)BlackMagicInstance.ReadObject(Descriptor + 0xEC, typeof(BitVector32)); } catch { }

            try { UFlags2 = (BitVector32)BlackMagicInstance.ReadObject(Descriptor + 0xF0, typeof(BitVector32)); } catch { }

            try { DynamicUFlags = (BitVector32)BlackMagicInstance.ReadObject(Descriptor + 0x240, typeof(BitVector32)); } catch { }

            try { IsDead = BlackMagicInstance.ReadByte(Descriptor + 0x12B) == 1; } catch { }
        }