aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/game/Achievements/CriteriaHandler.cpp2
-rw-r--r--src/server/game/Battlegrounds/Arena.cpp4
-rw-r--r--src/server/game/Battlegrounds/Battleground.cpp8
-rw-r--r--src/server/game/Battlegrounds/Zones/BattlegroundAB.cpp6
-rw-r--r--src/server/game/Battlegrounds/Zones/BattlegroundAV.cpp88
-rw-r--r--src/server/game/Battlegrounds/Zones/BattlegroundEY.cpp37
-rw-r--r--src/server/game/Battlegrounds/Zones/BattlegroundIC.cpp39
-rw-r--r--src/server/game/Battlegrounds/Zones/BattlegroundSA.cpp35
-rw-r--r--src/server/game/Battlegrounds/Zones/BattlegroundWS.cpp40
-rw-r--r--src/server/game/Entities/GameObject/GameObject.cpp2
-rw-r--r--src/server/game/Entities/Object/Object.cpp2
-rw-r--r--src/server/game/Entities/Player/Player.cpp17
-rw-r--r--src/server/game/Entities/Player/Player.h3
-rw-r--r--src/server/game/Entities/Unit/Unit.cpp2
-rw-r--r--src/server/game/Grids/Notifiers/GridNotifiers.h8
-rw-r--r--src/server/game/Handlers/ChatHandler.cpp2
-rw-r--r--src/server/game/Handlers/InspectHandler.cpp2
-rw-r--r--src/server/game/Spells/Auras/SpellAuraEffects.cpp6
-rw-r--r--src/server/game/Spells/SpellEffects.cpp2
-rw-r--r--src/server/game/Texts/CreatureTextMgr.cpp6
-rw-r--r--src/server/game/Texts/CreatureTextMgrImpl.h6
-rw-r--r--src/server/scripts/Spells/spell_generic.cpp4
-rw-r--r--src/server/scripts/World/achievement_scripts.cpp2
23 files changed, 170 insertions, 153 deletions
diff --git a/src/server/game/Achievements/CriteriaHandler.cpp b/src/server/game/Achievements/CriteriaHandler.cpp
index 4a5a604ce14..172f96b48a1 100644
--- a/src/server/game/Achievements/CriteriaHandler.cpp
+++ b/src/server/game/Achievements/CriteriaHandler.cpp
@@ -374,7 +374,7 @@ bool CriteriaData::Meets(uint32 criteriaId, Player const* source, WorldObject co
if (!bg)
return false;
- uint32 score = bg->GetTeamScore(source->GetTeamId() == TEAM_ALLIANCE ? TEAM_HORDE : TEAM_ALLIANCE);
+ uint32 score = bg->GetTeamScore(bg->GetPlayerTeam(source->GetGUID()) == TEAM_ALLIANCE ? TEAM_HORDE : TEAM_ALLIANCE);
return score >= BattlegroundScore.Min && score <= BattlegroundScore.Max;
}
case CRITERIA_DATA_TYPE_INSTANCE_SCRIPT:
diff --git a/src/server/game/Battlegrounds/Arena.cpp b/src/server/game/Battlegrounds/Arena.cpp
index 17557902df2..ae555480031 100644
--- a/src/server/game/Battlegrounds/Arena.cpp
+++ b/src/server/game/Battlegrounds/Arena.cpp
@@ -49,14 +49,14 @@ void Arena::AddPlayer(Player* player)
if (player->GetBGTeam() == ALLIANCE) // gold
{
- if (player->GetTeam() == HORDE)
+ if (player->GetEffectiveTeam() == HORDE)
player->CastSpell(player, SPELL_HORDE_GOLD_FLAG, true);
else
player->CastSpell(player, SPELL_ALLIANCE_GOLD_FLAG, true);
}
else // green
{
- if (player->GetTeam() == HORDE)
+ if (player->GetEffectiveTeam() == HORDE)
player->CastSpell(player, SPELL_HORDE_GREEN_FLAG, true);
else
player->CastSpell(player, SPELL_ALLIANCE_GREEN_FLAG, true);
diff --git a/src/server/game/Battlegrounds/Battleground.cpp b/src/server/game/Battlegrounds/Battleground.cpp
index 4ff2d4216ef..2cfed828de7 100644
--- a/src/server/game/Battlegrounds/Battleground.cpp
+++ b/src/server/game/Battlegrounds/Battleground.cpp
@@ -573,7 +573,7 @@ Player* Battleground::_GetPlayerForTeam(uint32 teamId, BattlegroundPlayerMap::co
{
uint32 team = itr->second.Team;
if (!team)
- team = player->GetTeam();
+ team = player->GetEffectiveTeam();
if (team != teamId)
player = nullptr;
}
@@ -1821,6 +1821,8 @@ void Battleground::HandleKillPlayer(Player* victim, Player* killer)
if (killer == victim)
return;
+ uint32 killerTeam = GetPlayerTeam(killer->GetGUID());
+
UpdatePlayerScore(killer, SCORE_HONORABLE_KILLS, 1);
UpdatePlayerScore(killer, SCORE_KILLING_BLOWS, 1);
@@ -1830,7 +1832,7 @@ void Battleground::HandleKillPlayer(Player* victim, Player* killer)
if (!creditedPlayer || creditedPlayer == killer)
continue;
- if (creditedPlayer->GetTeam() == killer->GetTeam() && creditedPlayer->IsAtGroupRewardDistance(victim))
+ if (itr->second.Team == killerTeam && creditedPlayer->IsAtGroupRewardDistance(victim))
UpdatePlayerScore(creditedPlayer, SCORE_HONORABLE_KILLS, 1);
}
}
@@ -1928,7 +1930,7 @@ void Battleground::SetBgRaid(uint32 TeamID, Group* bg_raid)
WorldSafeLocsEntry const* Battleground::GetClosestGraveyard(Player* player)
{
- return sObjectMgr->GetClosestGraveyard(*player, player->GetTeam(), player);
+ return sObjectMgr->GetClosestGraveyard(*player, GetPlayerTeam(player->GetGUID()), player);
}
void Battleground::StartCriteriaTimer(CriteriaStartEvent startEvent, uint32 entry)
diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundAB.cpp b/src/server/game/Battlegrounds/Zones/BattlegroundAB.cpp
index 436f91169dc..1340ac1b1fc 100644
--- a/src/server/game/Battlegrounds/Zones/BattlegroundAB.cpp
+++ b/src/server/game/Battlegrounds/Zones/BattlegroundAB.cpp
@@ -430,7 +430,7 @@ void BattlegroundAB::EventPlayerClickedOnFlag(Player* source, GameObject* /*targ
return;
}
- TeamId teamIndex = GetTeamIndexByTeamId(source->GetTeam());
+ TeamId teamIndex = GetTeamIndexByTeamId(GetPlayerTeam(source->GetGUID()));
// Check if player really could use this banner, not cheated
if (!(m_Nodes[node] == 0 || teamIndex == m_Nodes[node]%2))
@@ -638,7 +638,7 @@ void BattlegroundAB::EndBattleground(uint32 winner)
WorldSafeLocsEntry const* BattlegroundAB::GetClosestGraveyard(Player* player)
{
- TeamId teamIndex = GetTeamIndexByTeamId(player->GetTeam());
+ TeamId teamIndex = GetTeamIndexByTeamId(GetPlayerTeam(player->GetGUID()));
// Is there any occupied node for this team?
std::vector<uint8> nodes;
@@ -715,7 +715,7 @@ bool BattlegroundAB::CheckAchievementCriteriaMeet(uint32 criteriaId, Player cons
switch (criteriaId)
{
case BG_CRITERIA_CHECK_RESILIENT_VICTORY:
- return m_TeamScores500Disadvantage[GetTeamIndexByTeamId(player->GetTeam())];
+ return m_TeamScores500Disadvantage[GetTeamIndexByTeamId(GetPlayerTeam(player->GetGUID()))];
}
return Battleground::CheckAchievementCriteriaMeet(criteriaId, player, target, miscvalue);
diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundAV.cpp b/src/server/game/Battlegrounds/Zones/BattlegroundAV.cpp
index 1a32b3ed93b..8618aac7099 100644
--- a/src/server/game/Battlegrounds/Zones/BattlegroundAV.cpp
+++ b/src/server/game/Battlegrounds/Zones/BattlegroundAV.cpp
@@ -63,7 +63,7 @@ void BattlegroundAV::HandleKillPlayer(Player* player, Player* killer)
return;
Battleground::HandleKillPlayer(player, killer);
- UpdateScore(player->GetTeam(), -1);
+ UpdateScore(GetPlayerTeam(player->GetGUID()), -1);
}
void BattlegroundAV::HandleKillUnit(Creature* unit, Player* killer)
@@ -138,16 +138,17 @@ void BattlegroundAV::HandleKillUnit(Creature* unit, Player* killer)
herold->AI()->Talk(TEXT_FROSTWOLF_GENERAL_DEAD);
}
else if (entry == BG_AV_CreatureInfo[AV_NPC_N_MINE_N_4] || entry == BG_AV_CreatureInfo[AV_NPC_N_MINE_A_4] || entry == BG_AV_CreatureInfo[AV_NPC_N_MINE_H_4])
- ChangeMineOwner(AV_NORTH_MINE, killer->GetTeam());
+ ChangeMineOwner(AV_NORTH_MINE, GetPlayerTeam(killer->GetGUID()));
else if (entry == BG_AV_CreatureInfo[AV_NPC_S_MINE_N_4] || entry == BG_AV_CreatureInfo[AV_NPC_S_MINE_A_4] || entry == BG_AV_CreatureInfo[AV_NPC_S_MINE_H_4])
- ChangeMineOwner(AV_SOUTH_MINE, killer->GetTeam());
+ ChangeMineOwner(AV_SOUTH_MINE, GetPlayerTeam(killer->GetGUID()));
}
void BattlegroundAV::HandleQuestComplete(uint32 questid, Player* player)
{
if (GetStatus() != STATUS_IN_PROGRESS)
return;//maybe we should log this, cause this must be a cheater or a big bug
- uint8 team = GetTeamIndexByTeamId(player->GetTeam());
+ uint32 team = GetPlayerTeam(player->GetGUID());
+ uint8 teamIndex = GetTeamIndexByTeamId(team);
/// @todo add reputation, events (including quest not available anymore, next quest available, go/npc de/spawning)and maybe honor
TC_LOG_DEBUG("bg.battleground", "BG_AV Quest %i completed", questid);
switch (questid)
@@ -156,12 +157,12 @@ void BattlegroundAV::HandleQuestComplete(uint32 questid, Player* player)
case AV_QUEST_A_SCRAPS2:
case AV_QUEST_H_SCRAPS1:
case AV_QUEST_H_SCRAPS2:
- m_Team_QuestStatus[team][0]+=20;
- if (m_Team_QuestStatus[team][0] == 500 || m_Team_QuestStatus[team][0] == 1000 || m_Team_QuestStatus[team][0] == 1500) //25, 50, 75 turn ins
+ m_Team_QuestStatus[teamIndex][0]+=20;
+ if (m_Team_QuestStatus[teamIndex][0] == 500 || m_Team_QuestStatus[teamIndex][0] == 1000 || m_Team_QuestStatus[teamIndex][0] == 1500) //25, 50, 75 turn ins
{
TC_LOG_DEBUG("bg.battleground", "BG_AV Quest %i completed starting with unit upgrading..", questid);
for (BG_AV_Nodes i = BG_AV_NODES_FIRSTAID_STATION; i <= BG_AV_NODES_FROSTWOLF_HUT; ++i)
- if (m_Nodes[i].Owner == player->GetTeam() && m_Nodes[i].State == POINT_CONTROLED)
+ if (m_Nodes[i].Owner == team && m_Nodes[i].State == POINT_CONTROLED)
{
DePopulateNode(i);
PopulateNode(i);
@@ -171,72 +172,72 @@ void BattlegroundAV::HandleQuestComplete(uint32 questid, Player* player)
break;
case AV_QUEST_A_COMMANDER1:
case AV_QUEST_H_COMMANDER1:
- m_Team_QuestStatus[team][1]++;
- RewardReputationToTeam(team, 1, player->GetTeam());
- if (m_Team_QuestStatus[team][1] == 30)
+ m_Team_QuestStatus[teamIndex][1]++;
+ RewardReputationToTeam(teamIndex, 1, team);
+ if (m_Team_QuestStatus[teamIndex][1] == 30)
TC_LOG_DEBUG("bg.battleground", "BG_AV Quest %i completed (need to implement some events here", questid);
break;
case AV_QUEST_A_COMMANDER2:
case AV_QUEST_H_COMMANDER2:
- m_Team_QuestStatus[team][2]++;
- RewardReputationToTeam(team, 1, player->GetTeam());
- if (m_Team_QuestStatus[team][2] == 60)
+ m_Team_QuestStatus[teamIndex][2]++;
+ RewardReputationToTeam(teamIndex, 1, team);
+ if (m_Team_QuestStatus[teamIndex][2] == 60)
TC_LOG_DEBUG("bg.battleground", "BG_AV Quest %i completed (need to implement some events here", questid);
break;
case AV_QUEST_A_COMMANDER3:
case AV_QUEST_H_COMMANDER3:
- m_Team_QuestStatus[team][3]++;
- RewardReputationToTeam(team, 1, player->GetTeam());
- if (m_Team_QuestStatus[team][3] == 120)
+ m_Team_QuestStatus[teamIndex][3]++;
+ RewardReputationToTeam(teamIndex, 1, team);
+ if (m_Team_QuestStatus[teamIndex][3] == 120)
TC_LOG_DEBUG("bg.battleground", "BG_AV Quest %i completed (need to implement some events here", questid);
break;
case AV_QUEST_A_BOSS1:
case AV_QUEST_H_BOSS1:
- m_Team_QuestStatus[team][4] += 9; //you can turn in 10 or 1 item..
+ m_Team_QuestStatus[teamIndex][4] += 9; //you can turn in 10 or 1 item..
[[fallthrough]];
case AV_QUEST_A_BOSS2:
case AV_QUEST_H_BOSS2:
- m_Team_QuestStatus[team][4]++;
- if (m_Team_QuestStatus[team][4] >= 200)
+ m_Team_QuestStatus[teamIndex][4]++;
+ if (m_Team_QuestStatus[teamIndex][4] >= 200)
TC_LOG_DEBUG("bg.battleground", "BG_AV Quest %i completed (need to implement some events here", questid);
break;
case AV_QUEST_A_NEAR_MINE:
case AV_QUEST_H_NEAR_MINE:
- m_Team_QuestStatus[team][5]++;
- if (m_Team_QuestStatus[team][5] == 28)
+ m_Team_QuestStatus[teamIndex][5]++;
+ if (m_Team_QuestStatus[teamIndex][5] == 28)
{
TC_LOG_DEBUG("bg.battleground", "BG_AV Quest %i completed (need to implement some events here", questid);
- if (m_Team_QuestStatus[team][6] == 7)
+ if (m_Team_QuestStatus[teamIndex][6] == 7)
TC_LOG_DEBUG("bg.battleground", "BG_AV Quest %i completed (need to implement some events here - ground assault ready", questid);
}
break;
case AV_QUEST_A_OTHER_MINE:
case AV_QUEST_H_OTHER_MINE:
- m_Team_QuestStatus[team][6]++;
- if (m_Team_QuestStatus[team][6] == 7)
+ m_Team_QuestStatus[teamIndex][6]++;
+ if (m_Team_QuestStatus[teamIndex][6] == 7)
{
TC_LOG_DEBUG("bg.battleground", "BG_AV Quest %i completed (need to implement some events here", questid);
- if (m_Team_QuestStatus[team][5] == 20)
+ if (m_Team_QuestStatus[teamIndex][5] == 20)
TC_LOG_DEBUG("bg.battleground", "BG_AV Quest %i completed (need to implement some events here - ground assault ready", questid);
}
break;
case AV_QUEST_A_RIDER_HIDE:
case AV_QUEST_H_RIDER_HIDE:
- m_Team_QuestStatus[team][7]++;
- if (m_Team_QuestStatus[team][7] == 25)
+ m_Team_QuestStatus[teamIndex][7]++;
+ if (m_Team_QuestStatus[teamIndex][7] == 25)
{
TC_LOG_DEBUG("bg.battleground", "BG_AV Quest %i completed (need to implement some events here", questid);
- if (m_Team_QuestStatus[team][8] == 25)
+ if (m_Team_QuestStatus[teamIndex][8] == 25)
TC_LOG_DEBUG("bg.battleground", "BG_AV Quest %i completed (need to implement some events here - rider assault ready", questid);
}
break;
case AV_QUEST_A_RIDER_TAME:
case AV_QUEST_H_RIDER_TAME:
- m_Team_QuestStatus[team][8]++;
- if (m_Team_QuestStatus[team][8] == 25)
+ m_Team_QuestStatus[teamIndex][8]++;
+ if (m_Team_QuestStatus[teamIndex][8] == 25)
{
TC_LOG_DEBUG("bg.battleground", "BG_AV Quest %i completed (need to implement some events here", questid);
- if (m_Team_QuestStatus[team][7] == 25)
+ if (m_Team_QuestStatus[teamIndex][7] == 25)
TC_LOG_DEBUG("bg.battleground", "BG_AV Quest %i completed (need to implement some events here - rider assault ready", questid);
}
break;
@@ -873,9 +874,9 @@ void BattlegroundAV::EventPlayerDefendsPoint(Player* player, uint32 object)
BG_AV_Nodes node = GetNodeThroughObject(object);
uint32 owner = m_Nodes[node].Owner; //maybe should name it prevowner
- uint32 team = player->GetTeam();
+ uint32 team = GetPlayerTeam(player->GetGUID());
- if (owner == player->GetTeam() || m_Nodes[node].State != POINT_ASSAULTED)
+ if (owner == team || m_Nodes[node].State != POINT_ASSAULTED)
return;
if (m_Nodes[node].TotalOwner == AV_NEUTRAL_TEAM)
{ //until snowfall doesn't belong to anyone it is better handled in assault-code
@@ -939,7 +940,7 @@ void BattlegroundAV::EventPlayerAssaultsPoint(Player* player, uint32 object)
BG_AV_Nodes node = GetNodeThroughObject(object);
uint32 owner = m_Nodes[node].Owner; //maybe name it prevowner
- uint32 team = player->GetTeam();
+ uint32 team = GetPlayerTeam(player->GetGUID());
TC_LOG_DEBUG("bg.battleground", "bg_av: player assaults point object %i node %i", object, node);
if (owner == team || team == m_Nodes[node].TotalOwner)
return; //surely a gm used this object
@@ -1102,24 +1103,19 @@ void BattlegroundAV::SendMineWorldStates(uint32 mine)
WorldSafeLocsEntry const* BattlegroundAV::GetClosestGraveyard(Player* player)
{
- WorldSafeLocsEntry const* pGraveyard = nullptr;
- WorldSafeLocsEntry const* entry = nullptr;
- float dist = 0;
- float minDist = 0;
float x, y;
-
player->GetPosition(x, y);
- pGraveyard = sObjectMgr->GetWorldSafeLoc(BG_AV_GraveyardIds[GetTeamIndexByTeamId(player->GetTeam()) + 7]);
- minDist = (pGraveyard->Loc.GetPositionX() - x) * (pGraveyard->Loc.GetPositionX() - x) + (pGraveyard->Loc.GetPositionY() - y) * (pGraveyard->Loc.GetPositionY() - y);
+ uint32 team = GetPlayerTeam(player->GetGUID());
+ WorldSafeLocsEntry const* pGraveyard = sObjectMgr->GetWorldSafeLoc(BG_AV_GraveyardIds[GetTeamIndexByTeamId(team) + 7]);
+ float minDist = (pGraveyard->Loc.GetPositionX() - x) * (pGraveyard->Loc.GetPositionX() - x) + (pGraveyard->Loc.GetPositionY() - y) * (pGraveyard->Loc.GetPositionY() - y);
for (uint8 i = BG_AV_NODES_FIRSTAID_STATION; i <= BG_AV_NODES_FROSTWOLF_HUT; ++i)
- if (m_Nodes[i].Owner == player->GetTeam() && m_Nodes[i].State == POINT_CONTROLED)
+ if (m_Nodes[i].Owner == team && m_Nodes[i].State == POINT_CONTROLED)
{
- entry = sObjectMgr->GetWorldSafeLoc(BG_AV_GraveyardIds[i]);
- if (entry)
+ if (WorldSafeLocsEntry const* entry = sObjectMgr->GetWorldSafeLoc(BG_AV_GraveyardIds[i]))
{
- dist = (entry->Loc.GetPositionX() - x) * (entry->Loc.GetPositionX() - x) + (entry->Loc.GetPositionY() - y) * (entry->Loc.GetPositionY() - y);
+ float dist = (entry->Loc.GetPositionX() - x) * (entry->Loc.GetPositionX() - x) + (entry->Loc.GetPositionY() - y) * (entry->Loc.GetPositionY() - y);
if (dist < minDist)
{
minDist = dist;
@@ -1507,7 +1503,7 @@ void BattlegroundAV::ResetBGSubclass()
bool BattlegroundAV::CheckAchievementCriteriaMeet(uint32 criteriaId, Player const* source, Unit const* target, uint32 miscValue)
{
- uint32 team = source->GetTeam();
+ uint32 team = GetPlayerTeam(source->GetGUID());
switch (criteriaId)
{
case BG_CRITERIA_CHECK_EVERYTHING_COUNTS:
diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundEY.cpp b/src/server/game/Battlegrounds/Zones/BattlegroundEY.cpp
index f411457d6f4..b02bbddc158 100644
--- a/src/server/game/Battlegrounds/Zones/BattlegroundEY.cpp
+++ b/src/server/game/Battlegrounds/Zones/BattlegroundEY.cpp
@@ -244,7 +244,7 @@ void BattlegroundEY::CheckSomeoneLeftPoint()
else
{
//player is neat flag, so update count:
- m_CurrentPointPlayersCount[2 * i + GetTeamIndexByTeamId(player->GetTeam())]++;
+ m_CurrentPointPlayersCount[2 * i + GetTeamIndexByTeamId(GetPlayerTeam(player->GetGUID()))]++;
++j;
}
}
@@ -285,20 +285,21 @@ void BattlegroundEY::UpdatePointStatuses()
if (player)
{
player->SendUpdateWorldState(PROGRESS_BAR_STATUS, m_PointBarStatus[point]);
+ uint32 team = GetPlayerTeam(player->GetGUID());
//if point owner changed we must evoke event!
if (pointOwnerTeamId != m_PointOwnedByTeam[point])
{
//point was uncontrolled and player is from team which captured point
- if (m_PointState[point] == EY_POINT_STATE_UNCONTROLLED && player->GetTeam() == pointOwnerTeamId)
+ if (m_PointState[point] == EY_POINT_STATE_UNCONTROLLED && team == pointOwnerTeamId)
this->EventTeamCapturedPoint(player, point);
//point was under control and player isn't from team which controlled it
- if (m_PointState[point] == EY_POINT_UNDER_CONTROL && player->GetTeam() != m_PointOwnedByTeam[point])
+ if (m_PointState[point] == EY_POINT_UNDER_CONTROL && team != m_PointOwnedByTeam[point])
this->EventTeamLostPoint(player, point);
}
/// @workaround The original AreaTrigger is covered by a bigger one and not triggered on client side.
- if (point == FEL_REAVER && m_PointOwnedByTeam[point] == player->GetTeam())
+ if (point == FEL_REAVER && m_PointOwnedByTeam[point] == team)
if (m_FlagState && GetFlagPickerGUID() == player->GetGUID())
if (player->GetDistance(2044.0f, 1729.729f, 1190.03f) < 3.0f)
EventPlayerCapturedFlag(player, BG_EY_OBJECT_FLAG_FEL_REAVER);
@@ -425,22 +426,22 @@ void BattlegroundEY::HandleAreaTrigger(Player* player, uint32 trigger, bool ente
TeleportPlayerToExploitLocation(player);
break;
case TR_BLOOD_ELF_POINT:
- if (m_PointState[BLOOD_ELF] == EY_POINT_UNDER_CONTROL && m_PointOwnedByTeam[BLOOD_ELF] == player->GetTeam())
+ if (m_PointState[BLOOD_ELF] == EY_POINT_UNDER_CONTROL && m_PointOwnedByTeam[BLOOD_ELF] == GetPlayerTeam(player->GetGUID()))
if (m_FlagState && GetFlagPickerGUID() == player->GetGUID())
EventPlayerCapturedFlag(player, BG_EY_OBJECT_FLAG_BLOOD_ELF);
break;
case TR_FEL_REAVER_POINT:
- if (m_PointState[FEL_REAVER] == EY_POINT_UNDER_CONTROL && m_PointOwnedByTeam[FEL_REAVER] == player->GetTeam())
+ if (m_PointState[FEL_REAVER] == EY_POINT_UNDER_CONTROL && m_PointOwnedByTeam[FEL_REAVER] == GetPlayerTeam(player->GetGUID()))
if (m_FlagState && GetFlagPickerGUID() == player->GetGUID())
EventPlayerCapturedFlag(player, BG_EY_OBJECT_FLAG_FEL_REAVER);
break;
case TR_MAGE_TOWER_POINT:
- if (m_PointState[MAGE_TOWER] == EY_POINT_UNDER_CONTROL && m_PointOwnedByTeam[MAGE_TOWER] == player->GetTeam())
+ if (m_PointState[MAGE_TOWER] == EY_POINT_UNDER_CONTROL && m_PointOwnedByTeam[MAGE_TOWER] == GetPlayerTeam(player->GetGUID()))
if (m_FlagState && GetFlagPickerGUID() == player->GetGUID())
EventPlayerCapturedFlag(player, BG_EY_OBJECT_FLAG_MAGE_TOWER);
break;
case TR_DRAENEI_RUINS_POINT:
- if (m_PointState[DRAENEI_RUINS] == EY_POINT_UNDER_CONTROL && m_PointOwnedByTeam[DRAENEI_RUINS] == player->GetTeam())
+ if (m_PointState[DRAENEI_RUINS] == EY_POINT_UNDER_CONTROL && m_PointOwnedByTeam[DRAENEI_RUINS] == GetPlayerTeam(player->GetGUID()))
if (m_FlagState && GetFlagPickerGUID() == player->GetGUID())
EventPlayerCapturedFlag(player, BG_EY_OBJECT_FLAG_DRAENEI_RUINS);
break;
@@ -656,7 +657,7 @@ void BattlegroundEY::EventPlayerDroppedFlag(Player* player)
UpdateWorldState(NETHERSTORM_FLAG_STATE_HORDE, BG_EY_FLAG_STATE_WAIT_RESPAWN);
UpdateWorldState(NETHERSTORM_FLAG_STATE_ALLIANCE, BG_EY_FLAG_STATE_WAIT_RESPAWN);
- if (player->GetTeam() == ALLIANCE)
+ if (GetPlayerTeam(player->GetGUID()) == ALLIANCE)
SendBroadcastText(BG_EY_TEXT_FLAG_DROPPED, CHAT_MSG_BG_SYSTEM_ALLIANCE);
else
SendBroadcastText(BG_EY_TEXT_FLAG_DROPPED, CHAT_MSG_BG_SYSTEM_HORDE);
@@ -667,7 +668,7 @@ void BattlegroundEY::EventPlayerClickedOnFlag(Player* player, GameObject* target
if (GetStatus() != STATUS_IN_PROGRESS || IsFlagPickedup() || !player->IsWithinDistInMap(target_obj, 10))
return;
- if (player->GetTeam() == ALLIANCE)
+ if (GetPlayerTeam(player->GetGUID()) == ALLIANCE)
{
UpdateWorldState(NETHERSTORM_FLAG_STATE_ALLIANCE, BG_EY_FLAG_STATE_ON_PLAYER);
PlaySoundToAll(BG_EY_SOUND_FLAG_PICKED_UP_ALLIANCE);
@@ -688,7 +689,7 @@ void BattlegroundEY::EventPlayerClickedOnFlag(Player* player, GameObject* target
player->CastSpell(player, BG_EY_NETHERSTORM_FLAG_SPELL, true);
player->RemoveAurasWithInterruptFlags(SpellAuraInterruptFlags::PvPActive);
- if (player->GetTeam() == ALLIANCE)
+ if (GetPlayerTeam(player->GetGUID()) == ALLIANCE)
SendBroadcastText(BG_EY_TEXT_TAKEN_FLAG, CHAT_MSG_BG_SYSTEM_ALLIANCE, player);
else
SendBroadcastText(BG_EY_TEXT_TAKEN_FLAG, CHAT_MSG_BG_SYSTEM_HORDE, player);
@@ -746,7 +747,7 @@ void BattlegroundEY::EventTeamCapturedPoint(Player* player, uint32 Point)
if (GetStatus() != STATUS_IN_PROGRESS)
return;
- uint32 Team = player->GetTeam();
+ uint32 Team = GetPlayerTeam(player->GetGUID());
SpawnBGObject(m_CapturingPointTypes[Point].DespawnNeutralObjectType, RESPAWN_ONE_DAY);
SpawnBGObject(m_CapturingPointTypes[Point].DespawnNeutralObjectType + 1, RESPAWN_ONE_DAY);
@@ -815,7 +816,8 @@ void BattlegroundEY::EventPlayerCapturedFlag(Player* player, uint32 BgObjectType
player->RemoveAurasWithInterruptFlags(SpellAuraInterruptFlags::PvPActive);
- if (player->GetTeam() == ALLIANCE)
+ uint32 team = GetPlayerTeam(player->GetGUID());
+ if (team == ALLIANCE)
{
SendBroadcastText(BG_EY_TEXT_ALLIANCE_CAPTURED_FLAG, CHAT_MSG_BG_SYSTEM_ALLIANCE, player);
PlaySoundToAll(BG_EY_SOUND_FLAG_CAPTURED_ALLIANCE);
@@ -831,9 +833,9 @@ void BattlegroundEY::EventPlayerCapturedFlag(Player* player, uint32 BgObjectType
m_FlagsTimer = BG_EY_FLAG_RESPAWN_TIME;
m_FlagCapturedBgObjectType = BgObjectType;
- uint8 team_id = player->GetTeam() == ALLIANCE ? TEAM_ALLIANCE : TEAM_HORDE;
+ uint8 team_id = GetTeamIndexByTeamId(team);
if (m_TeamPointsCount[team_id] > 0)
- AddPoints(player->GetTeam(), BG_EY_FlagPoints[m_TeamPointsCount[team_id] - 1]);
+ AddPoints(team, BG_EY_FlagPoints[m_TeamPointsCount[team_id] - 1]);
UpdateWorldState(NETHERSTORM_FLAG_STATE_HORDE, BG_EY_FLAG_STATE_ON_BASE);
UpdateWorldState(NETHERSTORM_FLAG_STATE_ALLIANCE, BG_EY_FLAG_STATE_ON_BASE);
@@ -907,7 +909,8 @@ WorldSafeLocsEntry const* BattlegroundEY::GetClosestGraveyard(Player* player)
{
uint32 g_id = 0;
- switch (player->GetTeam())
+ uint32 team = GetPlayerTeam(player->GetGUID());
+ switch (team)
{
case ALLIANCE: g_id = EY_GRAVEYARD_MAIN_ALLIANCE; break;
case HORDE: g_id = EY_GRAVEYARD_MAIN_HORDE; break;
@@ -938,7 +941,7 @@ WorldSafeLocsEntry const* BattlegroundEY::GetClosestGraveyard(Player* player)
for (uint8 i = 0; i < EY_POINTS_MAX; ++i)
{
- if (m_PointOwnedByTeam[i] == player->GetTeam() && m_PointState[i] == EY_POINT_UNDER_CONTROL)
+ if (m_PointOwnedByTeam[i] == team && m_PointState[i] == EY_POINT_UNDER_CONTROL)
{
entry = sObjectMgr->GetWorldSafeLoc(m_CapturingPointTypes[i].GraveyardId);
if (!entry)
diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundIC.cpp b/src/server/game/Battlegrounds/Zones/BattlegroundIC.cpp
index d0518e566e0..4af2912c388 100644
--- a/src/server/game/Battlegrounds/Zones/BattlegroundIC.cpp
+++ b/src/server/game/Battlegrounds/Zones/BattlegroundIC.cpp
@@ -56,10 +56,10 @@ BattlegroundIC::~BattlegroundIC() { }
void BattlegroundIC::HandlePlayerResurrect(Player* player)
{
- if (nodePoint[NODE_TYPE_QUARRY].nodeState == (player->GetTeamId() == TEAM_ALLIANCE ? NODE_STATE_CONTROLLED_A : NODE_STATE_CONTROLLED_H))
+ if (nodePoint[NODE_TYPE_QUARRY].nodeState == (GetPlayerTeam(player->GetGUID()) == ALLIANCE ? NODE_STATE_CONTROLLED_A : NODE_STATE_CONTROLLED_H))
player->CastSpell(player, SPELL_QUARRY, true);
- if (nodePoint[NODE_TYPE_REFINERY].nodeState == (player->GetTeamId() == TEAM_ALLIANCE ? NODE_STATE_CONTROLLED_A : NODE_STATE_CONTROLLED_H))
+ if (nodePoint[NODE_TYPE_REFINERY].nodeState == (GetPlayerTeam(player->GetGUID()) == ALLIANCE ? NODE_STATE_CONTROLLED_A : NODE_STATE_CONTROLLED_H))
player->CastSpell(player, SPELL_OIL_REFINERY, true);
}
@@ -247,10 +247,10 @@ void BattlegroundIC::AddPlayer(Player* player)
if (!isInBattleground)
PlayerScores[player->GetGUID()] = new BattlegroundICScore(player->GetGUID(), player->GetBGTeam());
- if (nodePoint[NODE_TYPE_QUARRY].nodeState == (player->GetTeamId() == TEAM_ALLIANCE ? NODE_STATE_CONTROLLED_A : NODE_STATE_CONTROLLED_H))
+ if (nodePoint[NODE_TYPE_QUARRY].nodeState == (GetPlayerTeam(player->GetGUID()) == ALLIANCE ? NODE_STATE_CONTROLLED_A : NODE_STATE_CONTROLLED_H))
player->CastSpell(player, SPELL_QUARRY, true);
- if (nodePoint[NODE_TYPE_REFINERY].nodeState == (player->GetTeamId() == TEAM_ALLIANCE ? NODE_STATE_CONTROLLED_A : NODE_STATE_CONTROLLED_H))
+ if (nodePoint[NODE_TYPE_REFINERY].nodeState == (GetPlayerTeam(player->GetGUID()) == ALLIANCE ? NODE_STATE_CONTROLLED_A : NODE_STATE_CONTROLLED_H))
player->CastSpell(player, SPELL_OIL_REFINERY, true);
}
@@ -271,14 +271,14 @@ void BattlegroundIC::HandleAreaTrigger(Player* player, uint32 trigger, bool ente
TeleportPlayerToExploitLocation(player);
/// @hack: this spell should be cast by npc 22515 (World Trigger) and not by the player
- if (trigger == 5555 && player->GetTeamId() == TEAM_HORDE)
+ if (trigger == 5555 && GetPlayerTeam(player->GetGUID()) == HORDE)
{
if (GateStatus[BG_IC_A_FRONT] != BG_IC_GATE_DESTROYED
&& GateStatus[BG_IC_A_WEST] != BG_IC_GATE_DESTROYED
&& GateStatus[BG_IC_A_EAST] != BG_IC_GATE_DESTROYED)
player->CastSpell(player, SPELL_BACK_DOOR_JOB_ACHIEVEMENT, true);
}
- else if (trigger == 5535 && player->GetTeamId() == TEAM_ALLIANCE)
+ else if (trigger == 5535 && GetPlayerTeam(player->GetGUID()) == ALLIANCE)
{
if (GateStatus[BG_IC_H_FRONT] != BG_IC_GATE_DESTROYED
&& GateStatus[BG_IC_H_WEST] != BG_IC_GATE_DESTROYED
@@ -406,13 +406,14 @@ void BattlegroundIC::HandleKillPlayer(Player* player, Player* killer)
Battleground::HandleKillPlayer(player, killer);
- factionReinforcements[player->GetTeamId()] -= 1;
+ TeamId victimTeamId = GetTeamIndexByTeamId(GetPlayerTeam(player->GetGUID()));
+ factionReinforcements[victimTeamId] -= 1;
- UpdateWorldState((player->GetTeamId() == TEAM_ALLIANCE ? BG_IC_ALLIANCE_RENFORT : BG_IC_HORDE_RENFORT), factionReinforcements[player->GetTeamId()]);
+ UpdateWorldState((GetPlayerTeam(player->GetGUID()) == ALLIANCE ? BG_IC_ALLIANCE_RENFORT : BG_IC_HORDE_RENFORT), factionReinforcements[victimTeamId]);
// we must end the battleground
- if (factionReinforcements[player->GetTeamId()] < 1)
- EndBattleground(killer->GetTeam());
+ if (factionReinforcements[victimTeamId] < 1)
+ EndBattleground(GetPlayerTeam(killer->GetGUID()));
}
void BattlegroundIC::EventPlayerClickedOnFlag(Player* player, GameObject* target_obj)
@@ -425,14 +426,16 @@ void BattlegroundIC::EventPlayerClickedOnFlag(Player* player, GameObject* target
{
if (nodePoint[i].gameobject_entry == target_obj->GetEntry())
{
+ TeamId teamId = GetTeamIndexByTeamId(GetPlayerTeam(player->GetGUID()));
+
// THIS SHOULD NEEVEER HAPPEN
- if (nodePoint[i].faction == player->GetTeamId())
+ if (nodePoint[i].faction == teamId)
return;
- uint32 nextBanner = GetNextBanner(&nodePoint[i], player->GetTeamId(), false);
+ uint32 nextBanner = GetNextBanner(&nodePoint[i], teamId, false);
// we set the new settings of the nodePoint
- nodePoint[i].faction = player->GetTeamId();
+ nodePoint[i].faction = teamId;
nodePoint[i].last_entry = nodePoint[i].gameobject_entry;
nodePoint[i].gameobject_entry = nextBanner;
@@ -801,7 +804,7 @@ void BattlegroundIC::DestroyGate(Player* player, GameObject* go)
UpdateWorldState(uws_close, 0);
UpdateWorldState(uws_open, 1);
}
- if (player->GetTeamId() == TEAM_ALLIANCE)
+ if (GetPlayerTeam(player->GetGUID()) == ALLIANCE)
{
DoorOpen(BG_IC_GO_HORDE_KEEP_PORTCULLIS);
GetBGObject(BG_IC_GO_HORDE_BANNER)->RemoveFlag(GO_FLAG_NOT_SELECTABLE);
@@ -860,12 +863,12 @@ void BattlegroundIC::DestroyGate(Player* player, GameObject* go)
WorldSafeLocsEntry const* BattlegroundIC::GetClosestGraveyard(Player* player)
{
- TeamId teamIndex = GetTeamIndexByTeamId(player->GetTeam());
+ TeamId teamIndex = GetTeamIndexByTeamId(GetPlayerTeam(player->GetGUID()));
// Is there any occupied node for this team?
std::vector<uint8> nodes;
for (uint8 i = 0; i < MAX_NODE_TYPES; ++i)
- if (nodePoint[i].faction == player->GetTeamId())
+ if (nodePoint[i].faction == GetTeamIndexByTeamId(GetPlayerTeam(player->GetGUID())))
nodes.push_back(i);
WorldSafeLocsEntry const* good_entry = nullptr;
@@ -922,9 +925,9 @@ bool BattlegroundIC::IsSpellAllowed(uint32 spellId, Player const* player) const
case SPELL_OIL_REFINERY:
case SPELL_QUARRY:
{
- uint32 team = player->GetTeamId();
+ uint32 team = GetPlayerTeam(player->GetGUID());
uint8 nodeType = spellId == SPELL_OIL_REFINERY ? NODE_TYPE_REFINERY : NODE_TYPE_QUARRY;
- uint8 nodeState = team == TEAM_ALLIANCE ? NODE_STATE_CONTROLLED_A : NODE_STATE_CONTROLLED_H;
+ uint8 nodeState = team == ALLIANCE ? NODE_STATE_CONTROLLED_A : NODE_STATE_CONTROLLED_H;
return GetNodeState(nodeType) == nodeState;
}
default:
diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundSA.cpp b/src/server/game/Battlegrounds/Zones/BattlegroundSA.cpp
index e112eff40ce..544ab43174c 100644
--- a/src/server/game/Battlegrounds/Zones/BattlegroundSA.cpp
+++ b/src/server/game/Battlegrounds/Zones/BattlegroundSA.cpp
@@ -524,7 +524,7 @@ void BattlegroundSA::TeleportPlayers()
void BattlegroundSA::TeleportToEntrancePosition(Player* player)
{
- if (player->GetTeamId() == Attackers)
+ if (GetTeamIndexByTeamId(GetPlayerTeam(player->GetGUID())) == Attackers)
{
if (!ShipsStarted)
{
@@ -697,7 +697,8 @@ WorldSafeLocsEntry const* BattlegroundSA::GetClosestGraveyard(Player* player)
player->GetPosition(x, y, z);
- if (player->GetTeamId() == Attackers)
+ TeamId teamId = GetTeamIndexByTeamId(GetPlayerTeam(player->GetGUID()));
+ if (teamId == Attackers)
safeloc = BG_SA_GYEntries[BG_SA_BEACH_GY];
else
safeloc = BG_SA_GYEntries[BG_SA_DEFENDER_LAST_GY];
@@ -707,7 +708,7 @@ WorldSafeLocsEntry const* BattlegroundSA::GetClosestGraveyard(Player* player)
for (uint8 i = BG_SA_RIGHT_CAPTURABLE_GY; i < BG_SA_MAX_GY; i++)
{
- if (GraveyardStatus[i] != player->GetTeamId())
+ if (GraveyardStatus[i] != teamId)
continue;
ret = sObjectMgr->GetWorldSafeLoc(BG_SA_GYEntries[i]);
@@ -803,7 +804,8 @@ void BattlegroundSA::CaptureGraveyard(BG_SA_Graveyards i, Player* Source)
return;
DelCreature(BG_SA_MAXNPC + i);
- GraveyardStatus[i] = Source->GetTeamId();
+ TeamId teamId = GetTeamIndexByTeamId(GetPlayerTeam(Source->GetGUID()));
+ GraveyardStatus[i] = teamId;
WorldSafeLocsEntry const* sg = sObjectMgr->GetWorldSafeLoc(BG_SA_GYEntries[i]);
if (!sg)
{
@@ -820,7 +822,7 @@ void BattlegroundSA::CaptureGraveyard(BG_SA_Graveyards i, Player* Source)
case BG_SA_LEFT_CAPTURABLE_GY:
flag = BG_SA_LEFT_FLAG;
DelObject(flag);
- AddObject(flag, (BG_SA_ObjEntries[flag] - (Source->GetTeamId() == TEAM_ALLIANCE ? 0 : 1)),
+ AddObject(flag, (BG_SA_ObjEntries[flag] - (teamId == TEAM_ALLIANCE ? 0 : 1)),
BG_SA_ObjSpawnlocs[flag], 0, 0, 0, 0, RESPAWN_ONE_DAY);
npc = BG_SA_NPC_RIGSPARK;
@@ -839,13 +841,13 @@ void BattlegroundSA::CaptureGraveyard(BG_SA_Graveyards i, Player* Source)
UpdateWorldState(BG_SA_LEFT_GY_HORDE, GraveyardStatus[i] == TEAM_HORDE);
if (Creature* c = Source->FindNearestCreature(NPC_WORLD_TRIGGER, 500.0f))
- SendChatMessage(c, Source->GetTeamId() == TEAM_ALLIANCE ? TEXT_WEST_GRAVEYARD_CAPTURED_A : TEXT_WEST_GRAVEYARD_CAPTURED_H, Source);
+ SendChatMessage(c, teamId == TEAM_ALLIANCE ? TEXT_WEST_GRAVEYARD_CAPTURED_A : TEXT_WEST_GRAVEYARD_CAPTURED_H, Source);
break;
case BG_SA_RIGHT_CAPTURABLE_GY:
flag = BG_SA_RIGHT_FLAG;
DelObject(flag);
- AddObject(flag, (BG_SA_ObjEntries[flag] - (Source->GetTeamId() == TEAM_ALLIANCE ? 0 : 1)),
+ AddObject(flag, (BG_SA_ObjEntries[flag] - (teamId == TEAM_ALLIANCE ? 0 : 1)),
BG_SA_ObjSpawnlocs[flag], 0, 0, 0, 0, RESPAWN_ONE_DAY);
npc = BG_SA_NPC_SPARKLIGHT;
@@ -864,20 +866,20 @@ void BattlegroundSA::CaptureGraveyard(BG_SA_Graveyards i, Player* Source)
UpdateWorldState(BG_SA_RIGHT_GY_HORDE, GraveyardStatus[i] == TEAM_HORDE);
if (Creature* c = Source->FindNearestCreature(NPC_WORLD_TRIGGER, 500.0f))
- SendChatMessage(c, Source->GetTeamId() == TEAM_ALLIANCE ? TEXT_EAST_GRAVEYARD_CAPTURED_A : TEXT_EAST_GRAVEYARD_CAPTURED_H, Source);
+ SendChatMessage(c, teamId == TEAM_ALLIANCE ? TEXT_EAST_GRAVEYARD_CAPTURED_A : TEXT_EAST_GRAVEYARD_CAPTURED_H, Source);
break;
case BG_SA_CENTRAL_CAPTURABLE_GY:
flag = BG_SA_CENTRAL_FLAG;
DelObject(flag);
- AddObject(flag, (BG_SA_ObjEntries[flag] - (Source->GetTeamId() == TEAM_ALLIANCE ? 0 : 1)),
+ AddObject(flag, (BG_SA_ObjEntries[flag] - (teamId == TEAM_ALLIANCE ? 0 : 1)),
BG_SA_ObjSpawnlocs[flag], 0, 0, 0, 0, RESPAWN_ONE_DAY);
UpdateWorldState(BG_SA_CENTER_GY_ALLIANCE, GraveyardStatus[i] == TEAM_ALLIANCE);
UpdateWorldState(BG_SA_CENTER_GY_HORDE, GraveyardStatus[i] == TEAM_HORDE);
if (Creature* c = Source->FindNearestCreature(NPC_WORLD_TRIGGER, 500.0f))
- SendChatMessage(c, Source->GetTeamId() == TEAM_ALLIANCE ? TEXT_SOUTH_GRAVEYARD_CAPTURED_A : TEXT_SOUTH_GRAVEYARD_CAPTURED_H, Source);
+ SendChatMessage(c, teamId == TEAM_ALLIANCE ? TEXT_SOUTH_GRAVEYARD_CAPTURED_A : TEXT_SOUTH_GRAVEYARD_CAPTURED_H, Source);
break;
default:
@@ -893,9 +895,10 @@ void BattlegroundSA::TitanRelicActivated(Player* clicker)
if (CanInteractWithObject(BG_SA_TITAN_RELIC))
{
- if (clicker->GetTeamId() == Attackers)
+ TeamId clickerTeamId = GetTeamIndexByTeamId(GetPlayerTeam(clicker->GetGUID()));
+ if (clickerTeamId == Attackers)
{
- if (clicker->GetTeamId() == TEAM_ALLIANCE)
+ if (clickerTeamId == TEAM_ALLIANCE)
SendBroadcastText(BG_SA_TEXT_ALLIANCE_CAPTURED_TITAN_PORTAL, CHAT_MSG_BG_SYSTEM_ALLIANCE);
else
SendBroadcastText(BG_SA_TEXT_HORDE_CAPTURED_TITAN_PORTAL, CHAT_MSG_BG_SYSTEM_HORDE);
@@ -908,7 +911,7 @@ void BattlegroundSA::TitanRelicActivated(Player* clicker)
for (BattlegroundPlayerMap::const_iterator itr = GetPlayers().begin(); itr != GetPlayers().end(); ++itr)
{
if (Player* player = ObjectAccessor::FindPlayer(itr->first))
- if (player->GetTeamId() == Attackers)
+ if (GetTeamIndexByTeamId(GetPlayerTeam(player->GetGUID())) == Attackers)
player->UpdateCriteria(CriteriaType::BeSpellTarget, 65246);
}
@@ -938,7 +941,7 @@ void BattlegroundSA::TitanRelicActivated(Player* clicker)
for (BattlegroundPlayerMap::const_iterator itr = GetPlayers().begin(); itr != GetPlayers().end(); ++itr)
{
if (Player* player = ObjectAccessor::FindPlayer(itr->first))
- if (player->GetTeamId() == Attackers && RoundScores[1].winner == Attackers)
+ if (GetTeamIndexByTeamId(GetPlayerTeam(player->GetGUID())) == Attackers && RoundScores[1].winner == Attackers)
player->UpdateCriteria(CriteriaType::BeSpellTarget, 65246);
}
@@ -1041,9 +1044,9 @@ bool BattlegroundSA::CheckAchievementCriteriaMeet(uint32 criteriaId, Player cons
switch (criteriaId)
{
case BG_CRITERIA_CHECK_NOT_EVEN_A_SCRATCH:
- return _allVehiclesAlive[GetTeamIndexByTeamId(source->GetTeam())];
+ return _allVehiclesAlive[GetTeamIndexByTeamId(GetPlayerTeam(source->GetGUID()))];
case BG_CRITERIA_CHECK_DEFENSE_OF_THE_ANCIENTS:
- return source->GetTeamId() != Attackers && !_gateDestroyed;
+ return GetTeamIndexByTeamId(GetPlayerTeam(source->GetGUID())) != Attackers && !_gateDestroyed;
}
return Battleground::CheckAchievementCriteriaMeet(criteriaId, source, target, miscValue);
diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundWS.cpp b/src/server/game/Battlegrounds/Zones/BattlegroundWS.cpp
index eaa8d4f3898..1a1ae1d8c65 100644
--- a/src/server/game/Battlegrounds/Zones/BattlegroundWS.cpp
+++ b/src/server/game/Battlegrounds/Zones/BattlegroundWS.cpp
@@ -289,7 +289,8 @@ void BattlegroundWS::EventPlayerCapturedFlag(Player* player)
uint32 winner = 0;
player->RemoveAurasWithInterruptFlags(SpellAuraInterruptFlags::PvPActive);
- if (player->GetTeam() == ALLIANCE)
+ uint32 team = GetPlayerTeam(player->GetGUID());
+ if (team == ALLIANCE)
{
if (!IsHordeFlagPickedup())
return;
@@ -328,23 +329,23 @@ void BattlegroundWS::EventPlayerCapturedFlag(Player* player)
RewardReputationToTeam(889, m_ReputationCapture, HORDE);
}
//for flag capture is reward 2 honorable kills
- RewardHonorToTeam(GetBonusHonorFromKill(2), player->GetTeam());
+ RewardHonorToTeam(GetBonusHonorFromKill(2), team);
SpawnBGObject(BG_WS_OBJECT_H_FLAG, BG_WS_FLAG_RESPAWN_TIME);
SpawnBGObject(BG_WS_OBJECT_A_FLAG, BG_WS_FLAG_RESPAWN_TIME);
- if (player->GetTeam() == ALLIANCE)
+ if (team == ALLIANCE)
SendBroadcastText(BG_WS_TEXT_CAPTURED_HORDE_FLAG, CHAT_MSG_BG_SYSTEM_ALLIANCE, player);
else
SendBroadcastText(BG_WS_TEXT_CAPTURED_ALLIANCE_FLAG, CHAT_MSG_BG_SYSTEM_HORDE, player);
- UpdateFlagState(player->GetTeam(), 1); // flag state none
- UpdateTeamScore(player->GetTeamId());
+ UpdateFlagState(team, 1); // flag state none
+ UpdateTeamScore(GetTeamIndexByTeamId(team));
// only flag capture should be updated
UpdatePlayerScore(player, SCORE_FLAG_CAPTURES, 1); // +1 flag captures
// update last flag capture to be used if teamscore is equal
- SetLastFlagCapture(player->GetTeam());
+ SetLastFlagCapture(team);
if (GetTeamScore(TEAM_ALLIANCE) == BG_WS_MAX_TEAM_SCORE)
winner = ALLIANCE;
@@ -365,17 +366,18 @@ void BattlegroundWS::EventPlayerCapturedFlag(Player* player)
}
else
{
- _flagsTimer[GetTeamIndexByTeamId(player->GetTeam()) ? 0 : 1] = BG_WS_FLAG_RESPAWN_TIME;
+ _flagsTimer[GetTeamIndexByTeamId(team) ? 0 : 1] = BG_WS_FLAG_RESPAWN_TIME;
}
}
void BattlegroundWS::EventPlayerDroppedFlag(Player* player)
{
+ uint32 team = GetPlayerTeam(player->GetGUID());
if (GetStatus() != STATUS_IN_PROGRESS)
{
// if not running, do not cast things at the dropper player (prevent spawning the "dropped" flag), neither send unnecessary messages
// just take off the aura
- if (player->GetTeam() == ALLIANCE)
+ if (team == ALLIANCE)
{
if (!IsHordeFlagPickedup())
return;
@@ -402,7 +404,7 @@ void BattlegroundWS::EventPlayerDroppedFlag(Player* player)
bool set = false;
- if (player->GetTeam() == ALLIANCE)
+ if (team == ALLIANCE)
{
if (!IsHordeFlagPickedup())
return;
@@ -440,9 +442,9 @@ void BattlegroundWS::EventPlayerDroppedFlag(Player* player)
if (set)
{
player->CastSpell(player, SPELL_RECENTLY_DROPPED_FLAG, true);
- UpdateFlagState(player->GetTeam(), 1);
+ UpdateFlagState(team, 1);
- if (player->GetTeam() == ALLIANCE)
+ if (team == ALLIANCE)
{
SendBroadcastText(BG_WS_TEXT_HORDE_FLAG_DROPPED, CHAT_MSG_BG_SYSTEM_HORDE, player);
UpdateWorldState(BG_WS_FLAG_UNK_HORDE, uint32(-1));
@@ -453,7 +455,7 @@ void BattlegroundWS::EventPlayerDroppedFlag(Player* player)
UpdateWorldState(BG_WS_FLAG_UNK_ALLIANCE, uint32(-1));
}
- _flagsDropTimer[GetTeamIndexByTeamId(player->GetTeam()) ? 0 : 1] = BG_WS_FLAG_DROP_TIME;
+ _flagsDropTimer[GetTeamIndexByTeamId(team) ? 0 : 1] = BG_WS_FLAG_DROP_TIME;
}
}
@@ -462,8 +464,10 @@ void BattlegroundWS::EventPlayerClickedOnFlag(Player* player, GameObject* target
if (GetStatus() != STATUS_IN_PROGRESS)
return;
+ uint32 team = GetPlayerTeam(player->GetGUID());
+
//alliance flag picked up from base
- if (player->GetTeam() == HORDE && GetFlagState(ALLIANCE) == BG_WS_FLAG_STATE_ON_BASE
+ if (team == HORDE && GetFlagState(ALLIANCE) == BG_WS_FLAG_STATE_ON_BASE
&& BgObjects[BG_WS_OBJECT_A_FLAG] == target_obj->GetGUID())
{
SendBroadcastText(BG_WS_TEXT_ALLIANCE_FLAG_PICKED_UP, CHAT_MSG_BG_SYSTEM_HORDE, player);
@@ -481,7 +485,7 @@ void BattlegroundWS::EventPlayerClickedOnFlag(Player* player, GameObject* target
}
//horde flag picked up from base
- if (player->GetTeam() == ALLIANCE && GetFlagState(HORDE) == BG_WS_FLAG_STATE_ON_BASE
+ if (team == ALLIANCE && GetFlagState(HORDE) == BG_WS_FLAG_STATE_ON_BASE
&& BgObjects[BG_WS_OBJECT_H_FLAG] == target_obj->GetGUID())
{
SendBroadcastText(BG_WS_TEXT_HORDE_FLAG_PICKED_UP, CHAT_MSG_BG_SYSTEM_ALLIANCE, player);
@@ -502,7 +506,7 @@ void BattlegroundWS::EventPlayerClickedOnFlag(Player* player, GameObject* target
if (GetFlagState(ALLIANCE) == BG_WS_FLAG_STATE_ON_GROUND && player->IsWithinDistInMap(target_obj, 10)
&& target_obj->GetGOInfo()->entry == BG_OBJECT_A_FLAG_GROUND_WS_ENTRY)
{
- if (player->GetTeam() == ALLIANCE)
+ if (team == ALLIANCE)
{
SendBroadcastText(BG_WS_TEXT_ALLIANCE_FLAG_RETURNED, CHAT_MSG_BG_SYSTEM_ALLIANCE, player);
UpdateFlagState(HORDE, BG_WS_FLAG_STATE_WAIT_RESPAWN);
@@ -535,7 +539,7 @@ void BattlegroundWS::EventPlayerClickedOnFlag(Player* player, GameObject* target
if (GetFlagState(HORDE) == BG_WS_FLAG_STATE_ON_GROUND && player->IsWithinDistInMap(target_obj, 10)
&& target_obj->GetGOInfo()->entry == BG_OBJECT_H_FLAG_GROUND_WS_ENTRY)
{
- if (player->GetTeam() == HORDE)
+ if (team == HORDE)
{
SendBroadcastText(BG_WS_TEXT_HORDE_FLAG_RETURNED, CHAT_MSG_BG_SYSTEM_HORDE, player);
UpdateFlagState(ALLIANCE, BG_WS_FLAG_STATE_WAIT_RESPAWN);
@@ -799,7 +803,7 @@ WorldSafeLocsEntry const* BattlegroundWS::GetClosestGraveyard(Player* player)
//if a player dies in preparation phase - then the player can't cheat
//and teleport to the graveyard outside the flagroom
//and start running around, while the doors are still closed
- if (player->GetTeam() == ALLIANCE)
+ if (GetPlayerTeam(player->GetGUID()) == ALLIANCE)
{
if (GetStatus() == STATUS_IN_PROGRESS)
return sObjectMgr->GetWorldSafeLoc(WS_GRAVEYARD_MAIN_ALLIANCE);
@@ -877,7 +881,7 @@ bool BattlegroundWS::CheckAchievementCriteriaMeet(uint32 criteriaId, Player cons
case BG_CRITERIA_CHECK_SAVE_THE_DAY:
if (target)
if (Player const* playerTarget = target->ToPlayer())
- return GetFlagState(playerTarget->GetTeam()) == BG_WS_FLAG_STATE_ON_BASE;
+ return GetFlagState(GetPlayerTeam(playerTarget->GetGUID())) == BG_WS_FLAG_STATE_ON_BASE;
return false;
}
diff --git a/src/server/game/Entities/GameObject/GameObject.cpp b/src/server/game/Entities/GameObject/GameObject.cpp
index bdd4b55c2eb..3996591d41d 100644
--- a/src/server/game/Entities/GameObject/GameObject.cpp
+++ b/src/server/game/Entities/GameObject/GameObject.cpp
@@ -1564,7 +1564,7 @@ bool GameObject::ActivateToQuest(Player const* target) const
if (target->GetQuestStatus(GetGOInfo()->chest.questID) == QUEST_STATUS_INCOMPLETE || LootTemplates_Gameobject.HaveQuestLootForPlayer(GetGOInfo()->GetLootId(), target))
{
if (Battleground const* bg = target->GetBattleground())
- return bg->CanActivateGO(GetEntry(), target->GetTeam());
+ return bg->CanActivateGO(GetEntry(), bg->GetPlayerTeam(target->GetGUID()));
return true;
}
break;
diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp
index 9350f7073e6..aede0b4276f 100644
--- a/src/server/game/Entities/Object/Object.cpp
+++ b/src/server/game/Entities/Object/Object.cpp
@@ -1520,7 +1520,7 @@ bool WorldObject::CanSeeOrDetect(WorldObject const* obj, bool ignoreStealth, boo
{
if (Player const* objPlayer = obj->ToPlayer())
{
- if (thisPlayer->GetTeam() != objPlayer->GetTeam() || !thisPlayer->IsGroupVisibleFor(objPlayer))
+ if (!thisPlayer->IsGroupVisibleFor(objPlayer))
return false;
}
else
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index 175b8cea529..c860dedbd28 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -6285,12 +6285,13 @@ TeamId Player::TeamIdForRace(uint8 race)
return TEAM_NEUTRAL;
}
-void Player::SwitchToOppositeTeam(bool apply)
+void Player::SwitchToOppositeTeam(bool /*apply*/)
{
- m_team = TeamForRace(GetRace());
+ // TODO: remove
+ //m_team = TeamForRace(GetRace());
- if (apply)
- m_team = (m_team == ALLIANCE) ? HORDE : ALLIANCE;
+ //if (apply)
+ // m_team = (m_team == ALLIANCE) ? HORDE : ALLIANCE;
}
void Player::SetFactionForRace(uint8 race)
@@ -6570,7 +6571,7 @@ bool Player::RewardHonor(Unit* victim, uint32 groupsize, int32 honor, bool pvpto
if (Player* plrVictim = victim->ToPlayer())
{
- if (GetTeam() == plrVictim->GetTeam() && !sWorld->IsFFAPvPRealm())
+ if (GetEffectiveTeam() == plrVictim->GetEffectiveTeam() && !sWorld->IsFFAPvPRealm())
return false;
uint8 k_level = GetLevel();
@@ -8793,7 +8794,7 @@ void Player::SendLoot(ObjectGuid guid, LootType loot_type, bool aeLooting/* = fa
{
uint32 lootid = go->GetGOInfo()->GetLootId();
if (Battleground* bg = GetBattleground())
- if (!bg->CanActivateGO(go->GetEntry(), GetTeam()))
+ if (!bg->CanActivateGO(go->GetEntry(), bg->GetPlayerTeam(GetGUID())))
{
SendLootRelease(guid);
return;
@@ -17061,7 +17062,7 @@ void Player::UpdateQuestObjectiveProgress(QuestObjectiveType objectiveType, int3
{
if (objectiveType == QUEST_OBJECTIVE_PLAYERKILLS && objective.Flags & QUEST_OBJECTIVE_FLAG_KILL_PLAYERS_SAME_FACTION)
if (Player const* victim = ObjectAccessor::GetPlayer(GetMap(), victimGuid))
- if (victim->GetTeam() != GetTeam())
+ if (victim->GetEffectiveTeam() != GetEffectiveTeam())
continue;
int32 currentProgress = GetQuestSlotObjectiveData(logSlot, objective);
@@ -23990,7 +23991,7 @@ void Player::ReportedAfkBy(Player* reporter)
reportAfkResult.Offender = GetGUID();
Battleground* bg = GetBattleground();
// Battleground also must be in progress!
- if (!bg || bg != reporter->GetBattleground() || GetTeam() != reporter->GetTeam() || bg->GetStatus() != STATUS_IN_PROGRESS)
+ if (!bg || bg != reporter->GetBattleground() || GetEffectiveTeam() != reporter->GetEffectiveTeam() || bg->GetStatus() != STATUS_IN_PROGRESS)
{
reporter->SendDirectMessage(reportAfkResult.Write());
return;
diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h
index dda98c6ed04..7cdcf65b62f 100644
--- a/src/server/game/Entities/Player/Player.h
+++ b/src/server/game/Entities/Player/Player.h
@@ -2214,6 +2214,9 @@ class TC_GAME_API Player : public Unit, public GridObject<Player>
TeamId GetTeamId() const { return m_team == ALLIANCE ? TEAM_ALLIANCE : TEAM_HORDE; }
void SetFactionForRace(uint8 race);
+ Team GetEffectiveTeam() const { return HasPlayerFlagEx(PLAYER_FLAGS_EX_MERCENARY_MODE) ? (GetTeam() == ALLIANCE ? HORDE : ALLIANCE) : Team(GetTeam()); }
+ TeamId GetEffectiveTeamId() const { return GetEffectiveTeam() == ALLIANCE ? TEAM_ALLIANCE : TEAM_HORDE; }
+
void InitDisplayIds();
bool IsAtGroupRewardDistance(WorldObject const* pRewardSource) const;
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
index 86b7eac84a4..76b49ca415e 100644
--- a/src/server/game/Entities/Unit/Unit.cpp
+++ b/src/server/game/Entities/Unit/Unit.cpp
@@ -10793,7 +10793,7 @@ void Unit::SetMeleeAnimKitId(uint16 animKitId)
if (attacker->GetTypeId() == TYPEID_UNIT)
victim->ToPlayer()->UpdateCriteria(CriteriaType::KilledByCreature, attacker->GetEntry());
else if (attacker->GetTypeId() == TYPEID_PLAYER && victim != attacker)
- victim->ToPlayer()->UpdateCriteria(CriteriaType::KilledByPlayer, 1, attacker->ToPlayer()->GetTeam());
+ victim->ToPlayer()->UpdateCriteria(CriteriaType::KilledByPlayer, 1, attacker->ToPlayer()->GetEffectiveTeam());
}
// Hook for OnPVPKill Event
diff --git a/src/server/game/Grids/Notifiers/GridNotifiers.h b/src/server/game/Grids/Notifiers/GridNotifiers.h
index acf000fd894..114270bc492 100644
--- a/src/server/game/Grids/Notifiers/GridNotifiers.h
+++ b/src/server/game/Grids/Notifiers/GridNotifiers.h
@@ -148,16 +148,16 @@ namespace Trinity
WorldObject const* i_source;
PacketSender& i_packetSender;
float i_distSq;
- uint32 team;
+ Team team;
Player const* skipped_receiver;
MessageDistDeliverer(WorldObject const* src, PacketSender& packetSender, float dist, bool own_team_only = false, Player const* skipped = nullptr)
: i_source(src), i_packetSender(packetSender), i_distSq(dist * dist)
- , team(0)
+ , team(TEAM_OTHER)
, skipped_receiver(skipped)
{
if (own_team_only)
if (Player const* player = src->ToPlayer())
- team = player->GetTeam();
+ team = player->GetEffectiveTeam();
}
void Visit(PlayerMapType &m) const;
@@ -168,7 +168,7 @@ namespace Trinity
void SendPacket(Player const* player) const
{
// never send packet to self
- if (player == i_source || (team && player->GetTeam() != team) || skipped_receiver == player)
+ if (player == i_source || (team && player->GetEffectiveTeam() != team) || skipped_receiver == player)
return;
if (!player->HaveAtClient(i_source))
diff --git a/src/server/game/Handlers/ChatHandler.cpp b/src/server/game/Handlers/ChatHandler.cpp
index 8d3cca11b69..db8fa111fe4 100644
--- a/src/server/game/Handlers/ChatHandler.cpp
+++ b/src/server/game/Handlers/ChatHandler.cpp
@@ -305,7 +305,7 @@ void WorldSession::HandleChatMessage(ChatMsg type, Language lang, std::string ms
return;
}
- if (GetPlayer()->GetTeam() != receiver->GetTeam() && !HasPermission(rbac::RBAC_PERM_TWO_SIDE_INTERACTION_CHAT))
+ if (GetPlayer()->GetEffectiveTeam() != receiver->GetEffectiveTeam() && !HasPermission(rbac::RBAC_PERM_TWO_SIDE_INTERACTION_CHAT))
{
SendChatPlayerNotfoundNotice(target);
return;
diff --git a/src/server/game/Handlers/InspectHandler.cpp b/src/server/game/Handlers/InspectHandler.cpp
index 684fc2c7541..31a0a22e99e 100644
--- a/src/server/game/Handlers/InspectHandler.cpp
+++ b/src/server/game/Handlers/InspectHandler.cpp
@@ -46,7 +46,7 @@ void WorldSession::HandleInspectOpcode(WorldPackets::Inspect::Inspect& inspect)
WorldPackets::Inspect::InspectResult inspectResult;
inspectResult.DisplayInfo.Initialize(player);
- if (GetPlayer()->CanBeGameMaster() || sWorld->getIntConfig(CONFIG_TALENTS_INSPECTING) + (GetPlayer()->GetTeamId() == player->GetTeamId()) > 1)
+ if (GetPlayer()->CanBeGameMaster() || sWorld->getIntConfig(CONFIG_TALENTS_INSPECTING) + (GetPlayer()->GetEffectiveTeam() == player->GetEffectiveTeam()) > 1)
{
PlayerTalentMap const* talents = player->GetTalentMap(player->GetActiveTalentGroup());
for (PlayerTalentMap::value_type const& v : *talents)
diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.cpp b/src/server/game/Spells/Auras/SpellAuraEffects.cpp
index c0e88613e1c..0b3028877db 100644
--- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp
+++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp
@@ -6075,13 +6075,13 @@ void AuraEffect::HandleBattlegroundPlayerPosition(AuraApplication const* aurApp,
{
WorldPackets::Battleground::BattlegroundPlayerPosition playerPosition;
playerPosition.Guid = target->GetGUID();
- playerPosition.ArenaSlot = static_cast<uint8>(GetMiscValue());
+ playerPosition.ArenaSlot = static_cast<int8>(GetMiscValue());
playerPosition.Pos = target->GetPosition();
if (GetAuraType() == SPELL_AURA_BATTLEGROUND_PLAYER_POSITION_FACTIONAL)
- playerPosition.IconID = target->GetTeam() == ALLIANCE ? PLAYER_POSITION_ICON_HORDE_FLAG : PLAYER_POSITION_ICON_ALLIANCE_FLAG;
+ playerPosition.IconID = target->GetEffectiveTeam() == ALLIANCE ? PLAYER_POSITION_ICON_HORDE_FLAG : PLAYER_POSITION_ICON_ALLIANCE_FLAG;
else if (GetAuraType() == SPELL_AURA_BATTLEGROUND_PLAYER_POSITION)
- playerPosition.IconID = target->GetTeam() == ALLIANCE ? PLAYER_POSITION_ICON_ALLIANCE_FLAG : PLAYER_POSITION_ICON_HORDE_FLAG;
+ playerPosition.IconID = target->GetEffectiveTeam() == ALLIANCE ? PLAYER_POSITION_ICON_ALLIANCE_FLAG : PLAYER_POSITION_ICON_HORDE_FLAG;
else
TC_LOG_WARN("spell.auras", "Unknown aura effect %u handled by HandleBattlegroundPlayerPosition.", GetAuraType());
diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp
index a7e7f24c007..bba8045dd82 100644
--- a/src/server/game/Spells/SpellEffects.cpp
+++ b/src/server/game/Spells/SpellEffects.cpp
@@ -2980,7 +2980,7 @@ void Spell::EffectSummonObjectWild()
if (go->GetGoType() == GAMEOBJECT_TYPE_FLAGDROP)
if (Player* player = m_caster->ToPlayer())
if (Battleground* bg = player->GetBattleground())
- bg->SetDroppedFlagGUID(go->GetGUID(), player->GetTeam() == ALLIANCE ? TEAM_HORDE: TEAM_ALLIANCE);
+ bg->SetDroppedFlagGUID(go->GetGUID(), bg->GetPlayerTeam(player->GetGUID()) == ALLIANCE ? TEAM_HORDE: TEAM_ALLIANCE);
if (GameObject* linkedTrap = go->GetLinkedTrap())
{
diff --git a/src/server/game/Texts/CreatureTextMgr.cpp b/src/server/game/Texts/CreatureTextMgr.cpp
index 489cd3c3d92..6a8486484eb 100644
--- a/src/server/game/Texts/CreatureTextMgr.cpp
+++ b/src/server/game/Texts/CreatureTextMgr.cpp
@@ -328,7 +328,7 @@ void CreatureTextMgr::SendNonChatPacket(WorldObject* source, WorldPacket const*
uint32 areaId = source->GetAreaId();
Map::PlayerList const& players = source->GetMap()->GetPlayers();
for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr)
- if (itr->GetSource()->GetAreaId() == areaId && (!team || Team(itr->GetSource()->GetTeam()) == team) && (!gmOnly || itr->GetSource()->IsGameMaster()))
+ if (itr->GetSource()->GetAreaId() == areaId && (!team || Team(itr->GetSource()->GetEffectiveTeam()) == team) && (!gmOnly || itr->GetSource()->IsGameMaster()))
itr->GetSource()->SendDirectMessage(data);
return;
}
@@ -337,7 +337,7 @@ void CreatureTextMgr::SendNonChatPacket(WorldObject* source, WorldPacket const*
uint32 zoneId = source->GetZoneId();
Map::PlayerList const& players = source->GetMap()->GetPlayers();
for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr)
- if (itr->GetSource()->GetZoneId() == zoneId && (!team || Team(itr->GetSource()->GetTeam()) == team) && (!gmOnly || itr->GetSource()->IsGameMaster()))
+ if (itr->GetSource()->GetZoneId() == zoneId && (!team || Team(itr->GetSource()->GetEffectiveTeam()) == team) && (!gmOnly || itr->GetSource()->IsGameMaster()))
itr->GetSource()->SendDirectMessage(data);
return;
}
@@ -345,7 +345,7 @@ void CreatureTextMgr::SendNonChatPacket(WorldObject* source, WorldPacket const*
{
Map::PlayerList const& players = source->GetMap()->GetPlayers();
for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr)
- if ((!team || Team(itr->GetSource()->GetTeam()) == team) && (!gmOnly || itr->GetSource()->IsGameMaster()))
+ if ((!team || Team(itr->GetSource()->GetEffectiveTeam()) == team) && (!gmOnly || itr->GetSource()->IsGameMaster()))
itr->GetSource()->SendDirectMessage(data);
return;
}
diff --git a/src/server/game/Texts/CreatureTextMgrImpl.h b/src/server/game/Texts/CreatureTextMgrImpl.h
index 19082aedcc6..3f2c879897b 100644
--- a/src/server/game/Texts/CreatureTextMgrImpl.h
+++ b/src/server/game/Texts/CreatureTextMgrImpl.h
@@ -115,7 +115,7 @@ void CreatureTextMgr::SendChatPacket(WorldObject* source, Builder const& builder
uint32 areaId = source->GetAreaId();
Map::PlayerList const& players = source->GetMap()->GetPlayers();
for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr)
- if (itr->GetSource()->GetAreaId() == areaId && (!team || Team(itr->GetSource()->GetTeam()) == team) && (!gmOnly || itr->GetSource()->IsGameMaster()))
+ if (itr->GetSource()->GetAreaId() == areaId && (!team || Team(itr->GetSource()->GetEffectiveTeam()) == team) && (!gmOnly || itr->GetSource()->IsGameMaster()))
localizer(itr->GetSource());
return;
}
@@ -124,7 +124,7 @@ void CreatureTextMgr::SendChatPacket(WorldObject* source, Builder const& builder
uint32 zoneId = source->GetZoneId();
Map::PlayerList const& players = source->GetMap()->GetPlayers();
for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr)
- if (itr->GetSource()->GetZoneId() == zoneId && (!team || Team(itr->GetSource()->GetTeam()) == team) && (!gmOnly || itr->GetSource()->IsGameMaster()))
+ if (itr->GetSource()->GetZoneId() == zoneId && (!team || Team(itr->GetSource()->GetEffectiveTeam()) == team) && (!gmOnly || itr->GetSource()->IsGameMaster()))
localizer(itr->GetSource());
return;
}
@@ -132,7 +132,7 @@ void CreatureTextMgr::SendChatPacket(WorldObject* source, Builder const& builder
{
Map::PlayerList const& players = source->GetMap()->GetPlayers();
for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr)
- if ((!team || Team(itr->GetSource()->GetTeam()) == team) && (!gmOnly || itr->GetSource()->IsGameMaster()))
+ if ((!team || Team(itr->GetSource()->GetEffectiveTeam()) == team) && (!gmOnly || itr->GetSource()->IsGameMaster()))
localizer(itr->GetSource());
return;
}
diff --git a/src/server/scripts/Spells/spell_generic.cpp b/src/server/scripts/Spells/spell_generic.cpp
index 4118b0d7608..dcf8476e432 100644
--- a/src/server/scripts/Spells/spell_generic.cpp
+++ b/src/server/scripts/Spells/spell_generic.cpp
@@ -2729,7 +2729,7 @@ class spell_gen_pvp_trinket : public SpellScript
{
Player* caster = GetCaster()->ToPlayer();
- switch (caster->GetTeam())
+ switch (caster->GetEffectiveTeam())
{
case ALLIANCE:
caster->CastSpell(caster, SPELL_PVP_TRINKET_ALLIANCE, TRIGGERED_FULL_MASK);
@@ -2737,6 +2737,8 @@ class spell_gen_pvp_trinket : public SpellScript
case HORDE:
caster->CastSpell(caster, SPELL_PVP_TRINKET_HORDE, TRIGGERED_FULL_MASK);
break;
+ default:
+ break;
}
}
diff --git a/src/server/scripts/World/achievement_scripts.cpp b/src/server/scripts/World/achievement_scripts.cpp
index 46e221e5753..c17e3826413 100644
--- a/src/server/scripts/World/achievement_scripts.cpp
+++ b/src/server/scripts/World/achievement_scripts.cpp
@@ -45,7 +45,7 @@ class achievement_bg_control_all_nodes : public AchievementCriteriaScript
bool OnCheck(Player* source, Unit* /*target*/) override
{
if (Battleground* bg = source->GetBattleground())
- return bg->IsAllNodesControlledByTeam(source->GetTeam());
+ return bg->IsAllNodesControlledByTeam(bg->GetPlayerTeam(source->GetGUID()));
return false;
}