コード例 #1
0
        private List <string> GetStats(NativePtrArray array)
        {
            var readPointersArray = M.ReadPointersArray(array.First, array.Last, ModsComponentOffsets.HumanStats);
            var result            = new List <string>();

            foreach (var pointer in readPointersArray)
            {
                result.Add(Cache.StringCache.Read($"{nameof(Mods)}{pointer}", () => M.ReadStringU(pointer)));
            }

            return(result);
        }
コード例 #2
0
ファイル: HeistBlueprint.cs プロジェクト: zxc88645/ExileApi
        private List <Wing> GetWings(NativePtrArray source)
        {
            var wings      = new List <Wing>();
            var recordSize = HeistBlueprintComponentOffsets.WingRecordSize;

            for (var wingAddress = source.First; wingAddress < source.Last; wingAddress += recordSize)
            {
                wings.Add(GetObject <Wing>(wingAddress));
            }

            return(wings);
        }
コード例 #3
0
ファイル: Mods.cs プロジェクト: mrm000cow/ExileApi
        private string GetUniqueName(NativePtrArray source)
        {
            var words = new List <string>();

            if (Address == 0)
            {
                return(string.Empty);
            }

            for (var first = source.First; first < source.Last; first += ModsComponentOffsets.NameRecordSize)
            {
                words.Add(M.ReadStringU(M.Read <long>(first, ModsComponentOffsets.NameOffset)).Trim());
            }

            return(Cache.StringCache.Read($"{nameof(Mods)}{source.First}", () => string.Join(" ", words.ToArray())));
        }
コード例 #4
0
ファイル: Mods.cs プロジェクト: mrm000cow/ExileApi
        private List <string> GetStats(NativePtrArray source)
        {
            var stats = new List <string>();

            if (Address == 0)
            {
                return(stats);
            }
            var readPointersArray = M.ReadPointersArray(source.First, source.Last, ModsComponentOffsets.StatRecordSize);

            foreach (var statAddress in readPointersArray)
            {
                stats.Add(Cache.StringCache.Read($"{nameof(Mods)}{statAddress}", () => M.ReadStringU(statAddress)));
            }

            return(stats);
        }
コード例 #5
0
ファイル: ServerData.cs プロジェクト: zxc88645/ExileApi
        private IList <InventoryHolder> GetInventory(NativePtrArray inventories)
        {
            var first = inventories.First;
            var last  = inventories.Last;

            if (first <= 0 || last <= 0)
            {
                return(new List <InventoryHolder>());
            }

            var inventoryCount = (last - first) / InventoryHolder.StructSize;

            if (inventoryCount < 0 || inventoryCount > MaxElementsToScan)
            {
                return(new List <InventoryHolder>());
            }

            return(M.ReadStructsArray <InventoryHolder>(first, last, InventoryHolder.StructSize, this).ToList());
        }
コード例 #6
0
ファイル: ServerData.cs プロジェクト: zxc88645/ExileApi
        private IList <ServerStashTab> GetStashTabs(NativePtrArray tabs)
        {
            var first = tabs.First;
            var last  = tabs.Last;

            if (first <= 0 || last <= 0)
            {
                return(new List <ServerStashTab>());
            }

            var tabCount = (last - first) / ServerStashTab.StructSize;

            if (tabCount <= 0 || tabCount > MaxElementsToScan)
            {
                return(new List <ServerStashTab>());
            }

            return(M.ReadStructsArray <ServerStashTab>(first, last, ServerStashTab.StructSize, TheGame).ToList());
        }
コード例 #7
0
ファイル: Mods.cs プロジェクト: mrm000cow/ExileApi
        private List <ItemMod> GetMods(NativePtrArray source)
        {
            var mods = new List <ItemMod>();

            if (Address == 0)
            {
                return(mods);
            }
            if (source.Size / ModsComponentOffsets.ItemModRecordSize > 12)
            {
                return(mods);
            }

            for (var modAddress = source.First;
                 modAddress < source.Last;
                 modAddress += ModsComponentOffsets.ItemModRecordSize)
            {
                mods.Add(GetObject <ItemMod>(modAddress));
            }

            return(mods);
        }