Fixed arena matches for same faction (players were all in one group - and they couldn't attack each other) Author: Triply

--HG--
branch : trunk
This commit is contained in:
megamage
2009-02-13 19:56:55 -06:00
parent 8eb1f455a1
commit c58050252d

View File

@@ -88,6 +88,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
@@ -132,26 +154,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);