mirror of
https://github.com/liyunfan1223/azerothcore-wotlk.git
synced 2026-08-08 15:58:04 +00:00
fix(Core/Corpses): Reset corpse location data if player already resurrected in different dungeon map. (#9429)
Fixes #9210
This commit is contained in:
@@ -4514,6 +4514,8 @@ void Player::RemoveCorpse()
|
|||||||
CharacterDatabaseTransaction trans = CharacterDatabase.BeginTransaction();
|
CharacterDatabaseTransaction trans = CharacterDatabase.BeginTransaction();
|
||||||
Corpse::DeleteFromDB(GetGUID(), trans);
|
Corpse::DeleteFromDB(GetGUID(), trans);
|
||||||
CharacterDatabase.CommitTransaction(trans);
|
CharacterDatabase.CommitTransaction(trans);
|
||||||
|
|
||||||
|
_corpseLocation.WorldRelocate();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Player::SpawnCorpseBones(bool triggerSave /*= true*/)
|
void Player::SpawnCorpseBones(bool triggerSave /*= true*/)
|
||||||
|
|||||||
@@ -193,7 +193,7 @@ void WorldSession::HandleMoveWorldportAck()
|
|||||||
{
|
{
|
||||||
if (mEntry->IsDungeon())
|
if (mEntry->IsDungeon())
|
||||||
{
|
{
|
||||||
GetPlayer()->ResurrectPlayer(0.5f, false);
|
GetPlayer()->ResurrectPlayer(0.5f);
|
||||||
GetPlayer()->SpawnCorpseBones();
|
GetPlayer()->SpawnCorpseBones();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -203,7 +203,7 @@ void WorldSession::HandleMoveWorldportAck()
|
|||||||
// resurrect character upon entering instance when the corpse is not available anymore
|
// resurrect character upon entering instance when the corpse is not available anymore
|
||||||
if (GetPlayer()->GetCorpseLocation().GetMapId() == mEntry->MapID)
|
if (GetPlayer()->GetCorpseLocation().GetMapId() == mEntry->MapID)
|
||||||
{
|
{
|
||||||
GetPlayer()->ResurrectPlayer(0.5f, false);
|
GetPlayer()->ResurrectPlayer(0.5f);
|
||||||
GetPlayer()->RemoveCorpse();
|
GetPlayer()->RemoveCorpse();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user