mirror of
https://github.com/mangosfour/server.git
synced 2025-12-14 16:37:01 +00:00
[8339] Improved storing/restoring BG entry point
* Introduced new table character_battleground_data * Entry point is now stored on BG enter event not join event * Entry point for dungeons is now correctly set to nearest graveyard (this prevent well known assert in GetInstance because of porting to already destroyed instance) * Teleporting from BG correctly restore mount state * Teleporting from BG correctly restore taxi flight (in multipath flight you will end up in nearest transition point on the route) Signed-off-by: ApoC <apoc@nymfe.net>
This commit is contained in:
parent
5c2ae96e38
commit
6d9448dd7f
12 changed files with 328 additions and 160 deletions
|
|
@ -393,7 +393,7 @@ bool ChatHandler::HandleNamegoCommand(const char* args)
|
|||
// when porting out from the bg, it will be reset to 0
|
||||
target->SetBattleGroundId(m_session->GetPlayer()->GetBattleGroundId(), m_session->GetPlayer()->GetBattleGroundTypeId());
|
||||
// remember current position as entry point for return at bg end teleportation
|
||||
target->SetBattleGroundEntryPoint(target->GetMapId(),target->GetPositionX(),target->GetPositionY(),target->GetPositionZ(),target->GetOrientation());
|
||||
target->SetBattleGroundEntryPoint();
|
||||
}
|
||||
else if (pMap->IsDungeon())
|
||||
{
|
||||
|
|
@ -507,7 +507,7 @@ bool ChatHandler::HandleGonameCommand(const char* args)
|
|||
// when porting out from the bg, it will be reset to 0
|
||||
_player->SetBattleGroundId(target->GetBattleGroundId(), target->GetBattleGroundTypeId());
|
||||
// remember current position as entry point for return at bg end teleportation
|
||||
_player->SetBattleGroundEntryPoint(_player->GetMapId(),_player->GetPositionX(),_player->GetPositionY(),_player->GetPositionZ(),_player->GetOrientation());
|
||||
_player->SetBattleGroundEntryPoint();
|
||||
}
|
||||
else if(cMap->IsDungeon())
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue