Пример #1
0
        public static GossipQuestOption ReadGossipQuestTextData(Packet packet, params object[] idx)
        {
            var gossipQuest = new GossipQuestOption();

            gossipQuest.QuestId = (uint)packet.ReadInt32("QuestID", idx);
            if (ClientVersion.AddedInVersion(ClientType.Shadowlands))
            {
                packet.ReadInt32("ContentTuningID", idx);
            }

            packet.ReadInt32("QuestType", idx);
            if (ClientVersion.RemovedInVersion(ClientType.Shadowlands) || ClientVersion.IsClassicClientVersionBuild(ClientVersion.Build))
            {
                packet.ReadInt32("QuestLevel", idx);
                if (ClientVersion.AddedInVersion(ClientVersionBuild.V7_3_5_25848))
                {
                    packet.ReadInt32("QuestMaxScalingLevel", idx);
                }
            }

            for (int j = 0; j < 2; ++j)
            {
                packet.ReadInt32("QuestFlags", idx, j);
            }

            packet.ResetBitReader();

            packet.ReadBit("Repeatable", idx);
            if (ClientVersion.RemovedInVersion(ClientVersionBuild.V7_2_0_23826))
            {
                packet.ReadBit("Ignored");
            }

            int titleBits;

            if (ClientVersion.InVersion(ClientVersionBuild.V8_1_0_28724, ClientVersionBuild.V8_1_5_29683))
            {
                titleBits = 10;
            }
            else
            {
                titleBits = 9;
            }

            uint questTitleLen = packet.ReadBits(titleBits);

            gossipQuest.Title = packet.ReadWoWString("QuestTitle", questTitleLen, idx);

            return(gossipQuest);
        }
Пример #2
0
        public static GossipQuestOption ReadGossipQuestTextData(Packet packet, params object[] idx)
        {
            var gossipQuest = new GossipQuestOption();

            gossipQuest.QuestId = (uint)packet.ReadInt32("QuestID", idx);
            packet.ReadInt32("QuestType", idx);
            packet.ReadInt32("QuestLevel", idx);

            for (int j = 0; j < 2; ++j)
            {
                packet.ReadInt32("QuestFlags", idx, j);
            }

            packet.ResetBitReader();

            packet.ReadBit("Repeatable", idx);

            uint questTitleLen = packet.ReadBits(9);

            gossipQuest.Title = packet.ReadWoWString("QuestTitle", questTitleLen, idx);

            return(gossipQuest);
        }