diff --git a/sql/updates/world/3.3.5/2024_03_17_00_world.sql b/sql/updates/world/3.3.5/2024_03_17_00_world.sql new file mode 100644 index 0000000000000..780b299ce6bc1 --- /dev/null +++ b/sql/updates/world/3.3.5/2024_03_17_00_world.sql @@ -0,0 +1,6 @@ +-- Horde +UPDATE `quest_poi_points` SET `X`=5893, `Y`=471, `VerifiedBuild`=53007 WHERE `QuestID`=24556 AND `Idx1`=1; +UPDATE `quest_poi_points` SET `X`=5798, `Y`=696, `VerifiedBuild`=53007 WHERE `QuestID`=24556 AND `Idx1`=2; +-- Alliance +UPDATE `quest_poi_points` SET `X`=5745, `Y`=721, `VerifiedBuild`=53007 WHERE `QuestID`=20438 AND `Idx1`=1; +UPDATE `quest_poi_points` SET `X`=5798, `Y`=696, `VerifiedBuild`=53007 WHERE `QuestID`=20438 AND `Idx1`=2; diff --git a/sql/updates/world/3.3.5/2024_03_17_01_world.sql b/sql/updates/world/3.3.5/2024_03_17_01_world.sql new file mode 100644 index 0000000000000..bc7f97567af33 --- /dev/null +++ b/sql/updates/world/3.3.5/2024_03_17_01_world.sql @@ -0,0 +1,2 @@ +-- +UPDATE `quest_poi_points` SET `X`=5893, `Y`=471, `VerifiedBuild`=53007 WHERE `QuestID`=24451; diff --git a/sql/updates/world/3.3.5/2024_03_18_00_world.sql b/sql/updates/world/3.3.5/2024_03_18_00_world.sql new file mode 100644 index 0000000000000..20a9591c11a3f --- /dev/null +++ b/sql/updates/world/3.3.5/2024_03_18_00_world.sql @@ -0,0 +1,4 @@ +-- Alliance +UPDATE quest_poi_points SET `X`=5745, `Y`=721, `VerifiedBuild`=19831 WHERE `QuestID`=14444; +-- Horde +UPDATE quest_poi_points SET `X`=5893, `Y`=471, `VerifiedBuild`=19831 WHERE `QuestID`=24555; diff --git a/sql/updates/world/3.3.5/2024_03_18_01_world.sql b/sql/updates/world/3.3.5/2024_03_18_01_world.sql new file mode 100644 index 0000000000000..766d99d84f0ca --- /dev/null +++ b/sql/updates/world/3.3.5/2024_03_18_01_world.sql @@ -0,0 +1,3 @@ +-- +UPDATE `quest_poi_points` SET `X`=5745, `Y`=721, `VerifiedBuild`=19831 WHERE `QuestID`=14457 AND `Idx1`=1; +UPDATE `quest_poi_points` SET `X`=5917, `Y`=554, `VerifiedBuild`=19831 WHERE `QuestID`=14457 AND `Idx1`=2; diff --git a/sql/updates/world/3.3.5/2024_03_18_02_world.sql b/sql/updates/world/3.3.5/2024_03_18_02_world.sql new file mode 100644 index 0000000000000..c9b97d5c3fe74 --- /dev/null +++ b/sql/updates/world/3.3.5/2024_03_18_02_world.sql @@ -0,0 +1,2 @@ +-- +UPDATE `quest_poi_points` SET `X`=5745, `Y`=721, `VerifiedBuild`=53007 WHERE `QuestID`=20439; diff --git a/sql/updates/world/3.3.5/2024_03_18_03_world.sql b/sql/updates/world/3.3.5/2024_03_18_03_world.sql new file mode 100644 index 0000000000000..c843ad4fecf1c --- /dev/null +++ b/sql/updates/world/3.3.5/2024_03_18_03_world.sql @@ -0,0 +1,3 @@ +-- +UPDATE `quest_poi_points` SET `X`=5639, `Y`=764, `VerifiedBuild`=19831 WHERE `QuestID`=24557 AND `Idx1`=1; +UPDATE `quest_poi_points` SET `X`=5765, `Y`=718, `VerifiedBuild`=19831 WHERE `QuestID`=24557 AND `Idx1`=2; diff --git a/sql/updates/world/3.3.5/2024_03_19_00_world.sql b/sql/updates/world/3.3.5/2024_03_19_00_world.sql new file mode 100644 index 0000000000000..f6660985a5588 --- /dev/null +++ b/sql/updates/world/3.3.5/2024_03_19_00_world.sql @@ -0,0 +1,2 @@ +-- +DELETE FROM `disables` WHERE `sourceType`=0 AND `flags`=64 AND `entry` IN (48188,69922,53038,52227,46171,45949,38729,32979); diff --git a/sql/updates/world/3.3.5/2024_03_19_01_world.sql b/sql/updates/world/3.3.5/2024_03_19_01_world.sql new file mode 100644 index 0000000000000..7dd5207241ccf --- /dev/null +++ b/sql/updates/world/3.3.5/2024_03_19_01_world.sql @@ -0,0 +1,8 @@ +-- Remove from disables unnedeed LOS spells with TARGET_UNIT_NEARBY_ENTRY +DELETE FROM `disables` WHERE `sourceType`=0 AND `flags`=64 AND `entry` IN ( +35113,-- Warp Measurement +36460,-- Ultra Deconsolodation Zapper +45323,-- Returning Vrykul Artifact +51964,-- Tormentor's Incense +58515,-- Burn Corpse +71024);-- Throw Bomb diff --git a/src/server/game/Chat/ChatCommands/ChatCommandArgs.cpp b/src/server/game/Chat/ChatCommands/ChatCommandArgs.cpp index a19f9571d0e46..91af31cc41c6a 100644 --- a/src/server/game/Chat/ChatCommands/ChatCommandArgs.cpp +++ b/src/server/game/Chat/ChatCommands/ChatCommandArgs.cpp @@ -100,10 +100,7 @@ struct SpellInfoVisitor value_type operator()(Hyperlink enchant) const { return enchant; }; value_type operator()(Hyperlink glyph) const { return operator()(glyph->Glyph->SpellID); }; value_type operator()(Hyperlink spell) const { return *spell; } - value_type operator()(Hyperlink talent) const - { - return operator()(talent->Talent->SpellRank[talent->Rank - 1]); - }; + value_type operator()(Hyperlink talent) const { return talent->Spell; }; value_type operator()(Hyperlink trade) const { return trade->Spell; }; value_type operator()(uint32 spellId) const { return sSpellMgr->GetSpellInfo(spellId); } diff --git a/src/server/game/Chat/HyperlinkTags.cpp b/src/server/game/Chat/HyperlinkTags.cpp index 5c343a9abe9db..84f1986cd9146 100644 --- a/src/server/game/Chat/HyperlinkTags.cpp +++ b/src/server/game/Chat/HyperlinkTags.cpp @@ -199,22 +199,12 @@ bool Trinity::Hyperlinks::LinkTags::talent::StoreTo(TalentLinkData& val, std::st if (rank < -1 || rank >= MAX_TALENT_RANK) return false; val.Talent = sTalentStore.LookupEntry(talentId); - val.Rank = rank+1; + val.Rank = rank + 1; if (!val.Talent) return false; - if (val.Rank > 0) - { - uint32 const spellId = val.Talent->SpellRank[val.Rank - 1]; - if (!spellId) - return false; - val.Spell = sSpellMgr->GetSpellInfo(spellId); - if (!val.Spell) - return false; - } - else - { - val.Spell = nullptr; - } + val.Spell = sSpellMgr->GetSpellInfo(val.Talent->SpellRank[std::max(rank, 0)]); + if (!val.Spell) + return false; return true; } diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 335b07f7c9636..26c824cace589 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -20749,20 +20749,6 @@ void Player::RemovePet(Pet* pet, PetSaveMode mode, bool returnreagent) pet->CombatStop(); - if (returnreagent) - { - switch (pet->GetEntry()) - { - //warlock pets except imp are removed(?) when logging out - case 1860: - case 1863: - case 417: - case 17252: - mode = PET_SAVE_NOT_IN_SLOT; - break; - } - } - // only if current pet in slot pet->SavePetToDB(mode); diff --git a/src/server/game/Handlers/PetHandler.cpp b/src/server/game/Handlers/PetHandler.cpp index 12d34a17cd631..12590139ea934 100644 --- a/src/server/game/Handlers/PetHandler.cpp +++ b/src/server/game/Handlers/PetHandler.cpp @@ -801,7 +801,7 @@ void WorldSession::HandlePetCastSpellOpcode(WorldPacket& recvPacket) Spell* spell = new Spell(caster, spellInfo, triggerCastFlags); spell->m_fromClient = true; spell->m_cast_count = castCount; // probably pending spell cast - spell->m_targets = targets; + spell->InitExplicitTargets(targets); SpellCastResult result = spell->CheckPetCast(nullptr); diff --git a/src/server/game/Server/WorldSession.cpp b/src/server/game/Server/WorldSession.cpp index 6f7c75f6a398b..6f685f2c392bf 100644 --- a/src/server/game/Server/WorldSession.cpp +++ b/src/server/game/Server/WorldSession.cpp @@ -567,7 +567,7 @@ void WorldSession::LogoutPlayer(bool save) guild->HandleMemberLogout(this); ///- Remove pet - _player->RemovePet(nullptr, PET_SAVE_AS_CURRENT, true); + _player->RemovePet(nullptr, PET_SAVE_AS_CURRENT); ///- Clear whisper whitelist _player->ClearWhisperWhiteList(); diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index c2f594639c281..67030fc4a304e 100644 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -689,7 +689,7 @@ void Spell::InitExplicitTargets(SpellCastTargets const& targets) unit = m_caster->ToCreature()->GetVictim(); // didn't find anything - let's use self as target - if (!unit && neededTargets & (TARGET_FLAG_UNIT_RAID | TARGET_FLAG_UNIT_PARTY | TARGET_FLAG_UNIT_ALLY)) + if (!unit && (neededTargets & (TARGET_FLAG_UNIT_ENEMY | TARGET_FLAG_UNIT_DEAD | TARGET_FLAG_UNIT_MINIPET | TARGET_FLAG_UNIT_PASSENGER)) == 0) unit = m_caster->ToUnit(); m_targets.SetUnitTarget(unit);