mirror of
https://github.com/mangosfour/server.git
synced 2025-12-17 16:37:00 +00:00
[11674] Fixed names of pets summoned by npc.
* Add check to make sure that creature controlled pet use default name from template. * Add localization support to pet name query for above pets type.
This commit is contained in:
parent
adcae44c9a
commit
d8a3f4b925
3 changed files with 19 additions and 4 deletions
|
|
@ -326,6 +326,20 @@ void WorldSession::SendPetNameQuery(ObjectGuid petguid, uint32 petnumber)
|
||||||
|
|
||||||
std::string name = pet->GetName();
|
std::string name = pet->GetName();
|
||||||
|
|
||||||
|
// creature pets have localization like other creatures
|
||||||
|
if (!pet->GetOwnerGuid().IsPlayer())
|
||||||
|
{
|
||||||
|
int loc_idx = GetSessionDbLocaleIndex();
|
||||||
|
if (loc_idx >= 0)
|
||||||
|
{
|
||||||
|
if (CreatureLocale const *cl = sObjectMgr.GetCreatureLocale(pet->GetEntry()))
|
||||||
|
{
|
||||||
|
if (cl->Name.size() > size_t(loc_idx) && !cl->Name[loc_idx].empty())
|
||||||
|
name = cl->Name[loc_idx];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
WorldPacket data(SMSG_PET_NAME_QUERY_RESPONSE, (4+4+name.size()+1));
|
WorldPacket data(SMSG_PET_NAME_QUERY_RESPONSE, (4+4+name.size()+1));
|
||||||
data << uint32(petnumber);
|
data << uint32(petnumber);
|
||||||
data << name.c_str();
|
data << name.c_str();
|
||||||
|
|
|
||||||
|
|
@ -5651,14 +5651,15 @@ void Spell::EffectSummonPet(SpellEffectIndex eff_idx)
|
||||||
NewSummon->InitLevelupSpellsForLevel();
|
NewSummon->InitLevelupSpellsForLevel();
|
||||||
NewSummon->InitTalentForLevel();
|
NewSummon->InitTalentForLevel();
|
||||||
|
|
||||||
if(NewSummon->getPetType() == SUMMON_PET)
|
if (m_caster->GetTypeId() == TYPEID_PLAYER && NewSummon->getPetType() == SUMMON_PET)
|
||||||
{
|
{
|
||||||
// generate new name for summon pet
|
// generate new name for summon pet
|
||||||
std::string new_name = sObjectMgr.GeneratePetName(petentry);
|
std::string new_name = sObjectMgr.GeneratePetName(petentry);
|
||||||
if(!new_name.empty())
|
if (!new_name.empty())
|
||||||
NewSummon->SetName(new_name);
|
NewSummon->SetName(new_name);
|
||||||
}
|
}
|
||||||
else if(NewSummon->getPetType() == HUNTER_PET)
|
|
||||||
|
if (NewSummon->getPetType() == HUNTER_PET)
|
||||||
{
|
{
|
||||||
NewSummon->RemoveByteFlag(UNIT_FIELD_BYTES_2, 2, UNIT_CAN_BE_RENAMED);
|
NewSummon->RemoveByteFlag(UNIT_FIELD_BYTES_2, 2, UNIT_CAN_BE_RENAMED);
|
||||||
NewSummon->SetByteFlag(UNIT_FIELD_BYTES_2, 2, UNIT_CAN_BE_ABANDONED);
|
NewSummon->SetByteFlag(UNIT_FIELD_BYTES_2, 2, UNIT_CAN_BE_ABANDONED);
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
#ifndef __REVISION_NR_H__
|
#ifndef __REVISION_NR_H__
|
||||||
#define __REVISION_NR_H__
|
#define __REVISION_NR_H__
|
||||||
#define REVISION_NR "11673"
|
#define REVISION_NR "11674"
|
||||||
#endif // __REVISION_NR_H__
|
#endif // __REVISION_NR_H__
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue