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); }
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); }
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); }