Core/BattlePets: Fixes when adding pets
Port From (https://github.com/TrinityCore/TrinityCore/commit/7c15ec00c7c1a4d5bd3ce37de6776b8a407b65b7)
This commit is contained in:
@@ -357,6 +357,7 @@ namespace Game.BattlePets
|
|||||||
updates.Add(pet);
|
updates.Add(pet);
|
||||||
SendUpdates(updates, true);
|
SendUpdates(updates, true);
|
||||||
|
|
||||||
|
_owner.GetPlayer().UpdateCriteria(CriteriaType.UniquePetsOwned);
|
||||||
_owner.GetPlayer().UpdateCriteria(CriteriaType.LearnedNewPet, species);
|
_owner.GetPlayer().UpdateCriteria(CriteriaType.LearnedNewPet, species);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2622,17 +2622,6 @@ namespace Game.Entities
|
|||||||
if (Global.DB2Mgr.GetMount(spellId) != null)
|
if (Global.DB2Mgr.GetMount(spellId) != null)
|
||||||
GetSession().GetCollectionMgr().AddMount(spellId, MountStatusFlags.None, false, !IsInWorld);
|
GetSession().GetCollectionMgr().AddMount(spellId, MountStatusFlags.None, false, !IsInWorld);
|
||||||
|
|
||||||
// need to add Battle pets automatically into pet journal
|
|
||||||
foreach (BattlePetSpeciesRecord entry in CliDB.BattlePetSpeciesStorage.Values)
|
|
||||||
{
|
|
||||||
if (entry.SummonSpellID == spellId && GetSession().GetBattlePetMgr().GetPetCount(entry.Id) == 0)
|
|
||||||
{
|
|
||||||
GetSession().GetBattlePetMgr().AddPet(entry.Id, BattlePetMgr.SelectPetDisplay(entry), BattlePetMgr.RollPetBreed(entry.Id), BattlePetMgr.GetDefaultPetQuality(entry.Id));
|
|
||||||
UpdateCriteria(CriteriaType.UniquePetsOwned);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// return true (for send learn packet) only if spell active (in case ranked spells) and not replace old spell
|
// return true (for send learn packet) only if spell active (in case ranked spells) and not replace old spell
|
||||||
return active && !disabled && !superceded_old;
|
return active && !disabled && !superceded_old;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1064,12 +1064,9 @@ namespace Game
|
|||||||
if (itemEffect.TriggerType != ItemSpelltriggerType.LearnSpellId)
|
if (itemEffect.TriggerType != ItemSpelltriggerType.LearnSpellId)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
var entry = Global.SpellMgr.GetBattlePetSpecies((uint)itemEffect.SpellID);
|
var speciesEntry = Global.SpellMgr.GetBattlePetSpecies((uint)itemEffect.SpellID);
|
||||||
if (entry != null)
|
if (speciesEntry != null)
|
||||||
{
|
GetBattlePetMgr().AddPet(speciesEntry.Id, BattlePetMgr.SelectPetDisplay(speciesEntry), BattlePetMgr.RollPetBreed(speciesEntry.Id), BattlePetMgr.GetDefaultPetQuality(speciesEntry.Id));
|
||||||
GetBattlePetMgr().AddPet(entry.Id, BattlePetMgr.SelectPetDisplay(entry), BattlePetMgr.RollPetBreed(entry.Id), BattlePetMgr.GetDefaultPetQuality(entry.Id));
|
|
||||||
_player.UpdateCriteria(CriteriaType.UniquePetsOwned);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
GetPlayer().DestroyItem(item.GetBagSlot(), item.GetSlot(), true);
|
GetPlayer().DestroyItem(item.GetBagSlot(), item.GetSlot(), true);
|
||||||
|
|||||||
@@ -1824,6 +1824,11 @@ namespace Game.Spells
|
|||||||
continue;
|
continue;
|
||||||
|
|
||||||
player.LearnSpell((uint)itemEffect.SpellID, false);
|
player.LearnSpell((uint)itemEffect.SpellID, false);
|
||||||
|
|
||||||
|
var speciesEntry = Global.SpellMgr.GetBattlePetSpecies((uint)itemEffect.SpellID);
|
||||||
|
if (speciesEntry != null)
|
||||||
|
player.GetSession().GetBattlePetMgr().AddPet(speciesEntry.Id, BattlePetMgr.SelectPetDisplay(speciesEntry), BattlePetMgr.RollPetBreed(speciesEntry.Id), BattlePetMgr.GetDefaultPetQuality(speciesEntry.Id));
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -5497,8 +5502,9 @@ namespace Game.Spells
|
|||||||
|
|
||||||
battlePetMgr.AddPet(speciesId, displayId, breed, quality, level);
|
battlePetMgr.AddPet(speciesId, displayId, breed, quality, level);
|
||||||
|
|
||||||
if (!plr.HasSpell(speciesEntry.SummonSpellID))
|
if (speciesEntry.SummonSpellID != 0)
|
||||||
plr.LearnSpell(speciesEntry.SummonSpellID, false);
|
if (!plr.HasSpell(speciesEntry.SummonSpellID))
|
||||||
|
plr.LearnSpell(speciesEntry.SummonSpellID, false);
|
||||||
|
|
||||||
plr.SendPlaySpellVisual(plr, SharedConst.SpellVisualUncagePet, 0, 0, 0.0f, false);
|
plr.SendPlaySpellVisual(plr, SharedConst.SpellVisualUncagePet, 0, 0, 0.0f, false);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user