コード例 #1
0
        private void Init(STUProgressionUnlocks progressionUnlocks)
        {
            if (progressionUnlocks == null)
            {
                return;
            }

            if (progressionUnlocks.m_lootBoxesUnlocks != null)
            {
                LootBoxesUnlocks = new LootBoxUnlocks[progressionUnlocks.m_lootBoxesUnlocks.Length];

                for (int i = 0; i < progressionUnlocks.m_lootBoxesUnlocks.Length; i++)
                {
                    STULootBoxUnlocks lootBoxUnlocks = progressionUnlocks.m_lootBoxesUnlocks[i];
                    LootBoxesUnlocks[i] = new LootBoxUnlocks(lootBoxUnlocks);
                }
            }

            if (progressionUnlocks.m_7846C401 != null)
            {
                LevelUnlocks = new LevelUnlocks[progressionUnlocks.m_7846C401.Length];
                for (int i = 0; i < LevelUnlocks.Length; i++)
                {
                    var levelUnlocks = progressionUnlocks.m_7846C401[i];
                    LevelUnlocks[i] = new LevelUnlocks(levelUnlocks);
                }
            }

            OtherUnlocks   = Unlock.GetArray(progressionUnlocks.m_otherUnlocks);
            UnknownUnlocks = Unlock.GetArray(progressionUnlocks.m_9135A4B2);
        }
コード例 #2
0
        public void SpecialHelper(ICLIFlags toolFlags)
        {
            var guids = ExtractDebugNewEntities.GetGUIDs(@"D:\ow\resources\verdata\52926.guids");

            const Enum_BABC4175 lootboxType = Enum_BABC4175.Winter;

            HashSet <ulong> addedUnlocks = new HashSet <ulong>();

            foreach (var progressionGuid in TrackedFiles[0x58])
            {
                STUProgressionUnlocks progressionUnlocks = GetInstance <STUProgressionUnlocks>(progressionGuid);

                if (progressionUnlocks?.m_lootBoxesUnlocks == null)
                {
                    continue;
                }
                foreach (STULootBoxUnlocks lootBoxUnlocks in progressionUnlocks.m_lootBoxesUnlocks)
                {
                    ProcessLootBoxUnlocks(lootBoxUnlocks, guids, lootboxType, addedUnlocks);
                }
            }

            foreach (ulong genericSettingsGuid in TrackedFiles[0x54])
            {
                STUGenericSettings_PlayerProgression playerProgression =
                    GetInstance <STUGenericSettings_PlayerProgression>(genericSettingsGuid);
                if (playerProgression == null)
                {
                    continue;
                }

                foreach (STULootBoxUnlocks lootBoxUnlocks in playerProgression.m_lootBoxesUnlocks)
                {
                    ProcessLootBoxUnlocks(lootBoxUnlocks, guids, lootboxType, addedUnlocks);
                }

                break;
            }

            Console.Out.WriteLine("new ulong[] {");
            foreach (ulong addedUnlock in addedUnlocks)
            {
                Console.Out.WriteLine($"    0x{addedUnlock:X16},");
            }

            Console.Out.WriteLine("};");
        }
コード例 #3
0
        public void SpecialHelper(ICLIFlags toolFlags)
        {
            ExtractDebugNewEntities.VersionInfo versionInfo = ExtractDebugNewEntities.GetGUIDVersionInfo(@"D:\ow\resources\verdata\49154.guids");

            const Enum_BABC4175 lootboxType = Enum_BABC4175.SummerGames;

            HashSet <ulong> addedUnlocks = new HashSet <ulong>();

            foreach (var progressionGuid in TrackedFiles[0x58])
            {
                STUProgressionUnlocks progressionUnlocks = GetInstance <STUProgressionUnlocks>(progressionGuid);

                if (progressionUnlocks?.m_lootBoxesUnlocks == null)
                {
                    continue;
                }
                foreach (STULootBoxUnlocks lootBoxUnlocks in progressionUnlocks.m_lootBoxesUnlocks)
                {
                    ProcessLootBoxUnlocks(lootBoxUnlocks, versionInfo, lootboxType, addedUnlocks);
                }
            }

            foreach (ulong genericSettingsGuid in TrackedFiles[0x54])
            {
                STUGenericSettings_PlayerProgression playerProgression =
                    GetInstance <STUGenericSettings_PlayerProgression>(genericSettingsGuid);
                if (playerProgression == null)
                {
                    continue;
                }

                foreach (STULootBoxUnlocks lootBoxUnlocks in playerProgression.m_lootBoxesUnlocks)
                {
                    ProcessLootBoxUnlocks(lootBoxUnlocks, versionInfo, lootboxType, addedUnlocks);
                }

                break;
            }

            Console.Out.WriteLine("public static readonly ulong[] SummerGames2018 = new ulong[] {");
            foreach (ulong addedUnlock in addedUnlocks)
            {
                Console.Out.WriteLine($"    0x{addedUnlock:X8},");
            }
            Console.Out.WriteLine("};");
        }