Core/Players: Corrected pending bind logic (prevent attempting to bind (and failing) when player left the instance by areatrigger before timer finished)

This commit is contained in:
Shauren
2011-03-19 13:59:53 +01:00
parent 7d0b5bfff9
commit 31b9951f20
+2 -4
View File
@@ -1728,6 +1728,8 @@ void Player::Update(uint32 p_time)
{ {
if (_pendingBindTimer <= p_time) if (_pendingBindTimer <= p_time)
{ {
// Player left the instance
if (_pendingBind->GetInstanceId() == GetInstanceId())
BindToInstance(); BindToInstance();
SetPendingBind(NULL, 0); SetPendingBind(NULL, 0);
} }
@@ -17907,10 +17909,6 @@ InstancePlayerBind* Player::BindToInstance(InstanceSave *save, bool permanent, b
void Player::BindToInstance() void Player::BindToInstance()
{ {
// Player left the instance
if (_pendingBind->GetInstanceId() != GetInstanceId())
return;
WorldPacket data(SMSG_INSTANCE_SAVE_CREATED, 4); WorldPacket data(SMSG_INSTANCE_SAVE_CREATED, 4);
data << uint32(0); data << uint32(0);
GetSession()->SendPacket(&data); GetSession()->SendPacket(&data);