Artemis.Modules.Games.WoW.Data.WoWObjectManager.EnumVisibleObjects C# (CSharp) Метод

EnumVisibleObjects() публичный Метод

public EnumVisibleObjects ( ) : IEnumerable
Результат IEnumerable
        public IEnumerable<WoWObject> EnumVisibleObjects()
        {
            var first = GetFirstObject();
            var typeOffset = Marshal.OffsetOf(typeof(WoWStructs.ObjectData), "ObjectType").ToInt32();

            while (((first.ToInt64() & 1) == 0) && (first != IntPtr.Zero))
            {
                var type = (WoWEnums.ObjectType) Process.Memory.Read<int>(first + typeOffset);

                // Fix below with other object types as added.
                // ReSharper disable once SwitchStatementMissingSomeCases
                switch (type)
                {
                    case WoWEnums.ObjectType.Object:
                        yield return new WoWObject(Process, first);
                        break;
                    case WoWEnums.ObjectType.Container:
                        break;
                    case WoWEnums.ObjectType.Unit:
                        yield return new WoWUnit(Process, first);
                        break;
                    case WoWEnums.ObjectType.Player:
                        yield return new WoWPlayer(Process, first, new IntPtr(0x179A6E0));
                        break;
                    default:
                        yield return new WoWObject(Process, first);
                        break;
                }

                first = GetNextObjectFromCurrent(first);
            }
        }

Usage Example

Пример #1
0
        public WoWObject GetTarget(WoWObjectManager manager)
        {
            var targetGuid = Process.Memory.Read <Guid>(Process.Native.MainModule.BaseAddress + _targetIntPtr.ToInt32());

            return(manager.EnumVisibleObjects().FirstOrDefault(o => o.Guid == targetGuid));
        }
All Usage Examples Of Artemis.Modules.Games.WoW.Data.WoWObjectManager::EnumVisibleObjects