From 7c67848b486dbd52f82ca38f2d032c8c82440ecd Mon Sep 17 00:00:00 2001 From: Triply Date: Thu, 12 Feb 2009 10:48:07 +0100 Subject: [PATCH] Fixed arena matches for same faction (players were all in one group - and they couldn't attack each other) --- src/game/MovementHandler.cpp | 42 +++++++++++++++++++----------------- 1 file changed, 22 insertions(+), 20 deletions(-) diff --git a/src/game/MovementHandler.cpp b/src/game/MovementHandler.cpp index 64b8f904e..4b5754650 100644 --- a/src/game/MovementHandler.cpp +++ b/src/game/MovementHandler.cpp @@ -86,6 +86,28 @@ void WorldSession::HandleMoveWorldportAckOpcode() } return; } + + //this will set player's team ... so IT MUST BE CALLED BEFORE SendInitialPacketsAfterAddToMap() + // battleground state prepare (in case join to BG), at relogin/tele player not invited + // only add to bg group and object, if the player was invited (else he entered through command) + if(_player->InBattleGround()) + { + // cleanup seting if outdated + if(!mEntry->IsBattleGroundOrArena()) + { + // Do next only if found in battleground + _player->SetBattleGroundId(0); // We're not in BG. + // reset destination bg team + _player->SetBGTeam(0); + } + // join to bg case + else if(BattleGround *bg = _player->GetBattleGround()) + { + if(_player->IsInvitedForBattleGroundInstance(_player->GetBattleGroundId())) + bg->AddPlayer(_player); + } + } + GetPlayer()->SendInitialPacketsAfterAddToMap(); // flight fast teleport case @@ -130,26 +152,6 @@ void WorldSession::HandleMoveWorldportAckOpcode() if(!mEntry->IsMountAllowed()) _player->RemoveSpellsCausingAura(SPELL_AURA_MOUNTED); - // battleground state prepare (in case join to BG), at relogin/tele player not invited - // only add to bg group and object, if the player was invited (else he entered through command) - if(_player->InBattleGround()) - { - // cleanup seting if outdated - if(!mEntry->IsBattleGroundOrArena()) - { - // Do next only if found in battleground - _player->SetBattleGroundId(0); // We're not in BG. - // reset destination bg team - _player->SetBGTeam(0); - } - // join to bg case - else if(BattleGround *bg = _player->GetBattleGround()) - { - if(_player->IsInvitedForBattleGroundInstance(_player->GetBattleGroundId())) - bg->AddPlayer(_player); - } - } - // honorless target if(GetPlayer()->pvpInfo.inHostileArea) GetPlayer()->CastSpell(GetPlayer(), 2479, true);