示例#1
0
        void HandleUseCritterItem(UseCritterItem useCritterItem)
        {
            Item item = GetPlayer().GetItemByGuid(useCritterItem.ItemGuid);

            if (!item)
            {
                return;
            }

            if (item.GetTemplate().Effects.Count < 2)
            {
                return;
            }

            uint spellToLearn = (uint)item.GetTemplate().Effects[1].SpellID;

            foreach (BattlePetSpeciesRecord entry in CliDB.BattlePetSpeciesStorage.Values)
            {
                if (entry.SummonSpellID == spellToLearn)
                {
                    GetBattlePetMgr().AddPet(entry.Id, entry.CreatureID, BattlePetMgr.RollPetBreed(entry.Id), BattlePetMgr.GetDefaultPetQuality(entry.Id));
                    _player.UpdateCriteria(CriteriaTypes.OwnBattlePetCount);
                    break;
                }
            }

            GetPlayer().DestroyItem(item.GetBagSlot(), item.GetSlot(), true);
        }
示例#2
0
        void HandleUseCritterItem(UseCritterItem useCritterItem)
        {
            Item item = GetPlayer().GetItemByGuid(useCritterItem.ItemGuid);

            if (!item)
            {
                return;
            }

            foreach (var itemEffect in item.GetEffects())
            {
                if (itemEffect.TriggerType != ItemSpelltriggerType.LearnSpellId)
                {
                    continue;
                }

                var speciesEntry = Global.SpellMgr.GetBattlePetSpecies((uint)itemEffect.SpellID);
                if (speciesEntry != null)
                {
                    GetBattlePetMgr().AddPet(speciesEntry.Id, BattlePetMgr.SelectPetDisplay(speciesEntry), BattlePetMgr.RollPetBreed(speciesEntry.Id), BattlePetMgr.GetDefaultPetQuality(speciesEntry.Id));
                }
            }

            GetPlayer().DestroyItem(item.GetBagSlot(), item.GetSlot(), true);
        }
示例#3
0
        void HandleUseCritterItem(UseCritterItem useCritterItem)
        {
            Item item = GetPlayer().GetItemByGuid(useCritterItem.ItemGuid);

            if (!item)
            {
                return;
            }

            if (item.GetBonus().EffectCount < 2)
            {
                return;
            }

            uint spellToLearn = (uint)item.GetEffect(1).SpellID;

            var entry = Global.SpellMgr.GetBattlePetSpecies(spellToLearn);

            if (entry != null)
            {
                GetBattlePetMgr().AddPet(entry.Id, entry.CreatureID, BattlePetMgr.RollPetBreed(entry.Id), BattlePetMgr.GetDefaultPetQuality(entry.Id));
                _player.UpdateCriteria(CriteriaTypes.OwnBattlePetCount);
            }

            GetPlayer().DestroyItem(item.GetBagSlot(), item.GetSlot(), true);
        }