Exemplo n.º 1
0
        public void Load(BinaryReader pReader)
        {
            Identifier = pReader.ReadUInt16();
            NextIdentifier = pReader.ReadUInt16();
            Area = pReader.ReadByte();
            MinLevel = pReader.ReadByte();
            MaxLevel = pReader.ReadByte();
            PetCloseness = pReader.ReadUInt16();
            TamingMobLevel = pReader.ReadByte();
            RepeatWait = pReader.ReadInt32();
            Fame = pReader.ReadUInt16();

            int jobsCount = pReader.ReadInt32();
            Jobs = new List<ushort>(jobsCount);
            while (jobsCount-- > 0) Jobs.Add(pReader.ReadUInt16());

            int requirementsCount = pReader.ReadInt32();
            Requirements = new List<QuestRequirementData>(requirementsCount);
            while (requirementsCount-- > 0)
            {
                QuestRequirementData requirement = new QuestRequirementData();
                requirement.Load(pReader);
                Requirements.Add(requirement);
            }

            int rewardsCount = pReader.ReadInt32();
            Rewards = new List<QuestRewardData>(rewardsCount);
            while (rewardsCount-- > 0)
            {
                QuestRewardData reward = new QuestRewardData();
                reward.Load(pReader);
                Rewards.Add(reward);
            }
        }
Exemplo n.º 2
0
        public static bool QuestRequirementCompleted(QuestRequirementData requirementData)
        {
            int requirementFlagsMet = 0;

            foreach (QuestFlagData requirementFlag in requirementData.completionFlagValues)
            {
                foreach (QuestFlagData progressFlag in currentQuestProgress)
                {
                    if (progressFlag.flagName == requirementFlag.flagName)
                    {
                        if (progressFlag.flagValue == requirementFlag.flagValue)
                        {
                            requirementFlagsMet += 1;
                        }
                    }
                }
            }

            return (requirementFlagsMet == requirementData.completionFlagValues.Count);
        }