示例#1
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);
        }