diff --git a/data/sql/updates/db_world/2022_09_01_00.sql b/data/sql/updates/db_world/2022_09_01_00.sql new file mode 100644 index 000000000..cb681f349 --- /dev/null +++ b/data/sql/updates/db_world/2022_09_01_00.sql @@ -0,0 +1,10 @@ +-- DB update 2022_08_30_01 -> 2022_09_01_00 +-- Update Vekniss Hive Crawler formations. +UPDATE `creature_formations` SET `dist`=9 WHERE `memberGUID` IN (87940, 87942, 87944); +UPDATE `creature_formations` SET `groupAI`=515 WHERE `memberGUID` BETWEEN 87939 AND 87944; + +-- Update GroupAI in Stinger packs +UPDATE `creature_formations` SET `groupAI`=515 WHERE `memberGUID` BETWEEN 87962 AND 87998; + +-- Update GroupAI in Vekniss Warrior packs +UPDATE `creature_formations` SET `groupAI`=515 WHERE `memberGUID` BETWEEN 87672 AND 87677; diff --git a/src/server/game/AI/SmartScripts/SmartAI.cpp b/src/server/game/AI/SmartScripts/SmartAI.cpp index 00d1fbb9f..8706ebe4c 100644 --- a/src/server/game/AI/SmartScripts/SmartAI.cpp +++ b/src/server/game/AI/SmartScripts/SmartAI.cpp @@ -524,7 +524,17 @@ void SmartAI::UpdateAI(uint32 diff) } if (!IsAIControlled()) + { + if (CharmInfo* charmInfo = me->GetCharmInfo()) + { + if (charmInfo->IsCommandAttack() && mCanAutoAttack) + { + DoMeleeAttackIfReady(); + } + } + return; + } if (!UpdateVictim()) return; diff --git a/src/server/game/Battlegrounds/Battleground.h b/src/server/game/Battlegrounds/Battleground.h index 05f401d35..af87c5240 100644 --- a/src/server/game/Battlegrounds/Battleground.h +++ b/src/server/game/Battlegrounds/Battleground.h @@ -99,6 +99,7 @@ enum BattlegroundMarks { SPELL_WS_MARK_LOSER = 24950, SPELL_WS_MARK_WINNER = 24951, + SPELL_WS_MARK_TIE = 66126, SPELL_AB_MARK_LOSER = 24952, SPELL_AB_MARK_WINNER = 24953, SPELL_AV_MARK_LOSER = 24954, diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index bf087abac..26b2cb27b 100644 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -1668,6 +1668,7 @@ void Spell::DoCreateItem(uint8 /*effIndex*/, uint32 itemId) case SPELL_AV_MARK_LOSER: case SPELL_WS_MARK_WINNER: case SPELL_WS_MARK_LOSER: + case SPELL_WS_MARK_TIE: case SPELL_AB_MARK_WINNER: case SPELL_AB_MARK_LOSER: SelfCast = true; diff --git a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_rajaxx.cpp b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_rajaxx.cpp index c5131c4a3..53738c203 100644 --- a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_rajaxx.cpp +++ b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_rajaxx.cpp @@ -113,6 +113,7 @@ struct boss_rajaxx : public BossAI break; case EVENT_THUNDERCRASH: DoCastSelf(SPELL_THUNDERCRASH); + me->GetThreatMgr().ResetAllThreat(); events.ScheduleEvent(EVENT_THUNDERCRASH, 21s); break; default: diff --git a/src/server/shared/SharedDefines.h b/src/server/shared/SharedDefines.h index d3b10899e..f8e2071b1 100644 --- a/src/server/shared/SharedDefines.h +++ b/src/server/shared/SharedDefines.h @@ -3418,12 +3418,32 @@ uint8 constexpr PVP_TEAMS_COUNT = 2; inline PvPTeamId GetPvPTeamId(TeamId teamId) { - return teamId == TEAM_ALLIANCE ? PVP_TEAM_ALLIANCE : PVP_TEAM_HORDE; + if (teamId == TEAM_ALLIANCE) + { + return PVP_TEAM_ALLIANCE; + } + + if (teamId == TEAM_HORDE) + { + return PVP_TEAM_HORDE; + } + + return PVP_TEAM_NEUTRAL; } inline TeamId GetTeamId(PvPTeamId teamId) { - return teamId == PVP_TEAM_ALLIANCE ? TEAM_ALLIANCE : TEAM_HORDE; + if (teamId == PVP_TEAM_ALLIANCE) + { + return TEAM_ALLIANCE; + } + + if (teamId == PVP_TEAM_HORDE) + { + return TEAM_HORDE; + } + + return TEAM_NEUTRAL; } // indexes of BattlemasterList.dbc