示例#1
0
        public override void Serialize(GenericWriter writer)
        {
            base.Serialize(writer);
            writer.Write((int)0); //Version

            MHSPersistance.Serialize(writer);
        }
示例#2
0
        public static void CreatureKilled(BaseCreature creature, PlayerMobile player, double damagePercent, bool takenPoisonDamage, bool takenCreatureDamage)
        {
            if (creature == null || player == null)
            {
                return;
            }

            MHSPersistance.CheckAndCreateMHSAccountEntry(player);

            if (BossList.Contains(creature.GetType()))
            {
                ResolveCreatureKilled(MHSGroupType.Boss, creature, player, damagePercent, takenPoisonDamage, takenCreatureDamage);
            }

            if (ChampionList.Contains(creature.GetType()))
            {
                ResolveCreatureKilled(MHSGroupType.Champion, creature, player, damagePercent, takenPoisonDamage, takenCreatureDamage);
            }

            if (LoHBossList.Contains(creature.GetType()))
            {
                ResolveCreatureKilled(MHSGroupType.LoHBoss, creature, player, damagePercent, takenPoisonDamage, takenCreatureDamage);
            }

            if (creature.Rare && RareList.Contains(creature.GetType()))
            {
                ResolveCreatureKilled(MHSGroupType.Rare, creature, player, damagePercent, takenPoisonDamage, takenCreatureDamage);
            }

            if (creature.IsParagon && !creature.ConvertedParagon && RareList.Contains(creature.GetType()))
            {
                ResolveCreatureKilled(MHSGroupType.Paragon, creature, player, damagePercent, takenPoisonDamage, takenCreatureDamage);
            }
        }
示例#3
0
        public static int GetPlayerTaskCount(MHSGroupType groupType, PlayerMobile player)
        {
            int count = 0;

            if (player == null)
            {
                return(count);
            }

            MHSPersistance.CheckAndCreateMHSAccountEntry(player);

            foreach (MHSCreaturePlayerEntry creatureEntry in player.m_MHSPlayerEntry.m_CreatureEntries)
            {
                if (creatureEntry.m_GroupType != groupType)
                {
                    continue;
                }

                foreach (MHSCreatureTaskPlayerEntry taskEntry in creatureEntry.m_Tasks)
                {
                    if (taskEntry.m_TimesCompleted > 0)
                    {
                        count++;
                    }
                }
            }

            return(count);
        }
示例#4
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);
            int version = reader.ReadInt();

            Movable = false;

            MHSPersistance.PersistanceItem = this;
            MHSPersistance.Deserialize(reader);
        }
示例#5
0
        public static MHSCreaturePlayerEntry GetCreaturePlayerEntry(PlayerMobile player, MHSGroupType groupType, Type creatureType)
        {
            MHSPersistance.CheckAndCreateMHSAccountEntry(player);

            foreach (MHSCreaturePlayerEntry creatureEntry in player.m_MHSPlayerEntry.m_CreatureEntries)
            {
                if (creatureEntry.m_CreatureType == creatureType && creatureEntry.m_GroupType == groupType)
                {
                    return(creatureEntry);
                }
            }

            MHSCreaturePlayerEntry newEntry = new MHSCreaturePlayerEntry(creatureType, groupType);

            player.m_MHSPlayerEntry.m_CreatureEntries.Add(newEntry);

            return(newEntry);
        }