mirror of
https://github.com/mangosfour/server.git
synced 2025-12-14 16:37:01 +00:00
[7112] Fixed glyphs apply on character load.
Signed-off-by: ApoC <apoc@nymfe.net>
This commit is contained in:
parent
17004d59d4
commit
be051a706c
5 changed files with 36 additions and 2 deletions
|
|
@ -14317,6 +14317,7 @@ bool Player::LoadFromDB( uint32 guid, SqlQueryHolder *holder )
|
|||
//_LoadMail();
|
||||
|
||||
_LoadAuras(holder->GetResult(PLAYER_LOGIN_QUERY_LOADAURAS), time_diff);
|
||||
_LoadGlyphAuras();
|
||||
|
||||
// add ghost flag (must be after aura load: PLAYER_FLAGS_GHOST set in aura)
|
||||
if( HasFlag(PLAYER_FLAGS, PLAYER_FLAGS_GHOST) )
|
||||
|
|
@ -14596,6 +14597,36 @@ void Player::_LoadAuras(QueryResult *result, uint32 timediff)
|
|||
CastSpell(this,SPELL_ID_PASSIVE_BATTLE_STANCE,true);
|
||||
}
|
||||
|
||||
void Player::_LoadGlyphAuras()
|
||||
{
|
||||
for (uint8 i = 0; i <= MAX_GLYPH_SLOT_INDEX; ++i)
|
||||
{
|
||||
if (uint32 glyph = GetGlyph(i))
|
||||
{
|
||||
if (GlyphPropertiesEntry const *gp = sGlyphPropertiesStore.LookupEntry(glyph))
|
||||
{
|
||||
if (GlyphSlotEntry const *gs = sGlyphSlotStore.LookupEntry(GetGlyphSlot(i)))
|
||||
{
|
||||
if(gp->TypeFlags == gs->TypeFlags)
|
||||
{
|
||||
CastSpell(this, gp->SpellId, true);
|
||||
continue;
|
||||
}
|
||||
else
|
||||
sLog.outError("Player %s has glyph with typeflags %u in slot with typeflags %u, removing.", m_name.c_str(), gp->TypeFlags, gs->TypeFlags);
|
||||
}
|
||||
else
|
||||
sLog.outError("Player %s has not existing glyph slot entry %u on index %u", m_name.c_str(), GetGlyphSlot(i), i);
|
||||
}
|
||||
else
|
||||
sLog.outError("Player %s has not existing glyph entry %u on index %u", m_name.c_str(), glyph, i);
|
||||
|
||||
// On any error remove glyph
|
||||
SetGlyph(i, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void Player::LoadCorpse()
|
||||
{
|
||||
if( isAlive() )
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue