mirror of
https://github.com/mangosfour/server.git
synced 2025-12-13 04:37:00 +00:00
[11566] Fixed problem with reuse BG save data not only at first failed login to BG.
Most visible problem result: infinity restart in taxi flight after join to BG from taxi if character logout in BG and BG finished before re-login.
This commit is contained in:
parent
2dbc5b219a
commit
4f214f55d7
2 changed files with 11 additions and 4 deletions
|
|
@ -15487,7 +15487,7 @@ bool Player::LoadFromDB(ObjectGuid guid, SqlQueryHolder *holder )
|
|||
|
||||
_LoadBoundInstances(holder->GetResult(PLAYER_LOGIN_QUERY_LOADBOUNDINSTANCES));
|
||||
|
||||
if(!IsPositionValid())
|
||||
if (!IsPositionValid())
|
||||
{
|
||||
sLog.outError("%s have invalid coordinates (X: %f Y: %f Z: %f O: %f). Teleport to default race/class locations.",
|
||||
guid.GetString().c_str(), GetPositionX(), GetPositionY(), GetPositionZ(), GetOrientation());
|
||||
|
|
@ -15500,13 +15500,13 @@ bool Player::LoadFromDB(ObjectGuid guid, SqlQueryHolder *holder )
|
|||
|
||||
_LoadBGData(holder->GetResult(PLAYER_LOGIN_QUERY_LOADBGDATA));
|
||||
|
||||
if(m_bgData.bgInstanceID) //saved in BattleGround
|
||||
if (m_bgData.bgInstanceID) //saved in BattleGround
|
||||
{
|
||||
BattleGround *currentBg = sBattleGroundMgr.GetBattleGround(m_bgData.bgInstanceID, BATTLEGROUND_TYPE_NONE);
|
||||
|
||||
bool player_at_bg = currentBg && currentBg->IsPlayerInBattleGround(GetObjectGuid());
|
||||
|
||||
if(player_at_bg && currentBg->GetStatus() != STATUS_WAIT_LEAVE)
|
||||
if (player_at_bg && currentBg->GetStatus() != STATUS_WAIT_LEAVE)
|
||||
{
|
||||
BattleGroundQueueTypeId bgQueueTypeId = BattleGroundMgr::BGQueueTypeId(currentBg->GetTypeID(), currentBg->GetArenaType());
|
||||
AddBattleGroundQueueId(bgQueueTypeId);
|
||||
|
|
@ -15532,6 +15532,8 @@ bool Player::LoadFromDB(ObjectGuid guid, SqlQueryHolder *holder )
|
|||
|
||||
// We are not in BG anymore
|
||||
SetBattleGroundId(0, BATTLEGROUND_TYPE_NONE);
|
||||
// remove outdated DB data in DB
|
||||
_SaveBGData();
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
@ -15544,6 +15546,11 @@ bool Player::LoadFromDB(ObjectGuid guid, SqlQueryHolder *holder )
|
|||
const WorldLocation& _loc = GetBattleGroundEntryPoint();
|
||||
SetLocationMapId(_loc.mapid);
|
||||
Relocate(_loc.coord_x, _loc.coord_y, _loc.coord_z, _loc.orientation);
|
||||
|
||||
// We are not in BG anymore
|
||||
SetBattleGroundId(0, BATTLEGROUND_TYPE_NONE);
|
||||
// remove outdated DB data in DB
|
||||
_SaveBGData();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
#ifndef __REVISION_NR_H__
|
||||
#define __REVISION_NR_H__
|
||||
#define REVISION_NR "11565"
|
||||
#define REVISION_NR "11566"
|
||||
#endif // __REVISION_NR_H__
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue