mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-13 14:41:28 +00:00
Pets now don't actually spawn until the player has fully entered the zone (Live-like)
This commit is contained in:
parent
f9f3a8f3bd
commit
a07149919d
@ -502,6 +502,27 @@ void Client::CompleteConnect()
|
|||||||
SetDuelTarget(0);
|
SetDuelTarget(0);
|
||||||
SetDueling(false);
|
SetDueling(false);
|
||||||
|
|
||||||
|
database.LoadPetInfo(this);
|
||||||
|
/*
|
||||||
|
This was moved before the spawn packets are sent
|
||||||
|
in hopes that it adds more consistency...
|
||||||
|
Remake pet
|
||||||
|
*/
|
||||||
|
if (m_petinfo.SpellID > 1 && !GetPet() && m_petinfo.SpellID <= SPDAT_RECORDS) {
|
||||||
|
MakePoweredPet(m_petinfo.SpellID, spells[m_petinfo.SpellID].teleport_zone, m_petinfo.petpower, m_petinfo.Name, m_petinfo.size);
|
||||||
|
if (GetPet() && GetPet()->IsNPC()) {
|
||||||
|
NPC *pet = GetPet()->CastToNPC();
|
||||||
|
pet->SetPetState(m_petinfo.Buffs, m_petinfo.Items);
|
||||||
|
pet->CalcBonuses();
|
||||||
|
pet->SetHP(m_petinfo.HP);
|
||||||
|
pet->SetMana(m_petinfo.Mana);
|
||||||
|
}
|
||||||
|
m_petinfo.SpellID = 0;
|
||||||
|
}
|
||||||
|
/* Moved here so it's after where we load the pet data. */
|
||||||
|
if (!GetAA(aaPersistentMinion))
|
||||||
|
memset(&m_suspendedminion, 0, sizeof(PetInfo));
|
||||||
|
|
||||||
EnteringMessages(this);
|
EnteringMessages(this);
|
||||||
LoadZoneFlags();
|
LoadZoneFlags();
|
||||||
|
|
||||||
@ -1628,27 +1649,6 @@ void Client::Handle_Connect_OP_ZoneEntry(const EQApplicationPacket *app)
|
|||||||
if (m_pp.RestTimer)
|
if (m_pp.RestTimer)
|
||||||
rest_timer.Start(m_pp.RestTimer * 1000);
|
rest_timer.Start(m_pp.RestTimer * 1000);
|
||||||
|
|
||||||
database.LoadPetInfo(this);
|
|
||||||
/*
|
|
||||||
This was moved before the spawn packets are sent
|
|
||||||
in hopes that it adds more consistency...
|
|
||||||
Remake pet
|
|
||||||
*/
|
|
||||||
if (m_petinfo.SpellID > 1 && !GetPet() && m_petinfo.SpellID <= SPDAT_RECORDS) {
|
|
||||||
MakePoweredPet(m_petinfo.SpellID, spells[m_petinfo.SpellID].teleport_zone, m_petinfo.petpower, m_petinfo.Name, m_petinfo.size);
|
|
||||||
if (GetPet() && GetPet()->IsNPC()) {
|
|
||||||
NPC *pet = GetPet()->CastToNPC();
|
|
||||||
pet->SetPetState(m_petinfo.Buffs, m_petinfo.Items);
|
|
||||||
pet->CalcBonuses();
|
|
||||||
pet->SetHP(m_petinfo.HP);
|
|
||||||
pet->SetMana(m_petinfo.Mana);
|
|
||||||
}
|
|
||||||
m_petinfo.SpellID = 0;
|
|
||||||
}
|
|
||||||
/* Moved here so it's after where we load the pet data. */
|
|
||||||
if (!GetAA(aaPersistentMinion))
|
|
||||||
memset(&m_suspendedminion, 0, sizeof(PetInfo));
|
|
||||||
|
|
||||||
/* Server Zone Entry Packet */
|
/* Server Zone Entry Packet */
|
||||||
outapp = new EQApplicationPacket(OP_ZoneEntry, sizeof(ServerZoneEntry_Struct));
|
outapp = new EQApplicationPacket(OP_ZoneEntry, sizeof(ServerZoneEntry_Struct));
|
||||||
ServerZoneEntry_Struct* sze = (ServerZoneEntry_Struct*)outapp->pBuffer;
|
ServerZoneEntry_Struct* sze = (ServerZoneEntry_Struct*)outapp->pBuffer;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user