diff options
-rw-r--r-- | sql/updates/world/3.3.5/2025_09_28_00_world.sql | 4 | ||||
-rw-r--r-- | sql/updates/world/3.3.5/2025_09_28_01_world.sql | 4 | ||||
-rw-r--r-- | sql/updates/world/3.3.5/2025_09_28_02_world.sql | 57 | ||||
-rw-r--r-- | src/server/game/Guilds/Guild.cpp | 10 | ||||
-rw-r--r-- | src/server/game/Guilds/Guild.h | 6 |
5 files changed, 73 insertions, 8 deletions
diff --git a/sql/updates/world/3.3.5/2025_09_28_00_world.sql b/sql/updates/world/3.3.5/2025_09_28_00_world.sql new file mode 100644 index 00000000000..ff63af9eb6a --- /dev/null +++ b/sql/updates/world/3.3.5/2025_09_28_00_world.sql @@ -0,0 +1,4 @@ +-- Add pre quest for Loyal Companions quest +DELETE FROM `quest_template_addon` WHERE `ID`=12865; +INSERT INTO `quest_template_addon` (`ID`, `MaxLevel`, `AllowableClasses`, `SourceSpellID`, `PrevQuestID`, `NextQuestID`, `ExclusiveGroup`, `BreadcrumbForQuestId`, `RewardMailTemplateID`, `RewardMailDelay`, `RequiredSkillID`, `RequiredSkillPoints`, `RequiredMinRepFaction`, `RequiredMaxRepFaction`, `RequiredMinRepValue`, `RequiredMaxRepValue`, `ProvidedItemCount`, `SpecialFlags`) VALUES +(12865, 0, 0, 0, 12863, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); diff --git a/sql/updates/world/3.3.5/2025_09_28_01_world.sql b/sql/updates/world/3.3.5/2025_09_28_01_world.sql new file mode 100644 index 00000000000..5603afde5f6 --- /dev/null +++ b/sql/updates/world/3.3.5/2025_09_28_01_world.sql @@ -0,0 +1,4 @@ +-- Add pre quest for Unwelcome Guests quest +DELETE FROM `quest_template_addon` WHERE `ID`=12876; +INSERT INTO `quest_template_addon` (`ID`, `MaxLevel`, `AllowableClasses`, `SourceSpellID`, `PrevQuestID`, `NextQuestID`, `ExclusiveGroup`, `BreadcrumbForQuestId`, `RewardMailTemplateID`, `RewardMailDelay`, `RequiredSkillID`, `RequiredSkillPoints`, `RequiredMinRepFaction`, `RequiredMaxRepFaction`, `RequiredMinRepValue`, `RequiredMaxRepValue`, `ProvidedItemCount`, `SpecialFlags`) VALUES +(12876, 0, 0, 0, 12874, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); diff --git a/sql/updates/world/3.3.5/2025_09_28_02_world.sql b/sql/updates/world/3.3.5/2025_09_28_02_world.sql new file mode 100644 index 00000000000..2f8b4e18751 --- /dev/null +++ b/sql/updates/world/3.3.5/2025_09_28_02_world.sql @@ -0,0 +1,57 @@ +-- Update creature_template minlevel/maxlevel values. +UPDATE `creature_template` SET `maxlevel`=4 WHERE `entry`=80; -- Kobold Laborer +UPDATE `creature_template` SET `minlevel`=15 WHERE `entry`=121; -- Defias Pathstalker +UPDATE `creature_template` SET `minlevel`=13 WHERE `entry`=123; -- Riverpaw Mongrel +UPDATE `creature_template` SET `minlevel`=29 WHERE `entry`=206; -- Nightbane Vile Fang +UPDATE `creature_template` SET `minlevel`=23 WHERE `entry`=579; -- Shadowhide Assassin +UPDATE `creature_template` SET `maxlevel`=33 WHERE `entry`=940; -- Kurzen Medicine Man +UPDATE `creature_template` SET `maxlevel`=12 WHERE `entry`=1231; -- Grif Wildheart <Hunter Trainer> +UPDATE `creature_template` SET `minlevel`=16 WHERE `entry`=1725; -- Defias Watchman +UPDATE `creature_template` SET `maxlevel`=50 WHERE `entry`=2505; -- Saltwater Snapjaw +UPDATE `creature_template` SET `minlevel`=13 WHERE `entry`=456; -- Murloc Minor Oracle +UPDATE `creature_template` SET `maxlevel`=24 WHERE `entry`=615; -- Blackrock Tracker +UPDATE `creature_template` SET `maxlevel`=37 WHERE `entry`=873; -- Saltscale Oracle +UPDATE `creature_template` SET `minlevel`=8, `maxlevel`=11 WHERE `entry`=1240; -- Boran Ironclink <Armorer> +UPDATE `creature_template` SET `minlevel`=8 WHERE `entry`=1245; -- Kogan Forgestone +UPDATE `creature_template` SET `minlevel`=8, `maxlevel`=12 WHERE `entry`=1255; -- Prospector Gehn <Explorers' League> +UPDATE `creature_template` SET `maxlevel`=11 WHERE `entry`=1355; -- Cook Ghilm <Cooking Trainer> +UPDATE `creature_template` SET `maxlevel`=10 WHERE `entry`=1358; -- Miner Grothor +UPDATE `creature_template` SET `minlevel`=8, `maxlevel`=10 WHERE `entry`=1360; -- Miner Grumnal +UPDATE `creature_template` SET `minlevel`=16 WHERE `entry`=1725; -- Defias Watchman +UPDATE `creature_template` SET `minlevel`=18, `maxlevel`=20 WHERE `entry`=2140; -- Edwin Harly <General Supplies> +UPDATE `creature_template` SET `maxlevel`=20 WHERE `entry`=3556; -- Andrew Hilbert <Trade Supplies> +UPDATE `creature_template` SET `maxlevel`=23 WHERE `entry`=4463; -- Blackrock Summoner +UPDATE `creature_template` SET `minlevel`=32 WHERE `entry`=4638; -- Magram Scout +UPDATE `creature_template` SET `maxlevel`=46 WHERE `entry`=5261; -- Enthralled Atal'ai +UPDATE `creature_template` SET `maxlevel`=45 WHERE `entry`=5295; -- Enraged Feral Scar +UPDATE `creature_template` SET `minlevel`=43 WHERE `entry`=5334; -- Hatecrest Myrmidon +UPDATE `creature_template` SET `minlevel`=49 WHERE `entry`=5358; -- Cliff Giant +UPDATE `creature_template` SET `minlevel`=47 WHERE `entry`=5361; -- Wave Strider +UPDATE `creature_template` SET `maxlevel`=47 WHERE `entry`=5434; -- Coral Shark +UPDATE `creature_template` SET `minlevel`=44 WHERE `entry`=5623; -- Wastewander Assassin +UPDATE `creature_template` SET `maxlevel`=19 WHERE `entry`=5835; -- Foreman Grills +UPDATE `creature_template` SET `minlevel`=29 WHERE `entry`=6115; -- Roaming Felguard +UPDATE `creature_template` SET `minlevel`=25 WHERE `entry`=6206; -- Caverndeep Burrower +UPDATE `creature_template` SET `minlevel`=25 WHERE `entry`=6207; -- Caverndeep Ambusher +UPDATE `creature_template` SET `minlevel`=51 WHERE `entry`=7031; -- Obsidian Elemental +UPDATE `creature_template` SET `minlevel`=19 WHERE `entry`=7170; -- Thragomm <Horde Runner> +UPDATE `creature_template` SET `minlevel`=36 WHERE `entry`=7334; -- Battle Boar Horror +UPDATE `creature_template` SET `minlevel`=30 WHERE `entry`=8118; -- Lillian Singh <Holiday Fireworks Vendor> +UPDATE `creature_template` SET `minlevel`=40 WHERE `entry`=8276; -- Soaring Razorbeak +UPDATE `creature_template` SET `maxlevel`=55 WHERE `entry`=8519; -- Blighted Surge +UPDATE `creature_template` SET `minlevel`=57 WHERE `entry`=8522; -- Plague Monstrosity +UPDATE `creature_template` SET `minlevel`=51 WHERE `entry`=9464; -- Overlord Ror +UPDATE `creature_template` SET `minlevel`=57 WHERE `entry`=10916; -- Winterfall Runner +UPDATE `creature_template` SET `maxlevel`=15 WHERE `entry`=11321; -- Molten Elemental +UPDATE `creature_template` SET `maxlevel`=28 WHERE `entry`=11684; -- Warsong Shredder +UPDATE `creature_template` SET `maxlevel`=59 WHERE `entry`=11745; -- Cyclone Warrior +UPDATE `creature_template` SET `minlevel`=69 WHERE `entry`=12380; -- Unliving Resident +UPDATE `creature_template` SET `maxlevel`=58 WHERE `entry`=14395; -- Griniblix the Spectator +UPDATE `creature_template` SET `minlevel`=61 WHERE `entry`=14750; -- Gurubashi Bat Rider +UPDATE `creature_template` SET `minlevel`=60 WHERE `entry`=15043; -- Zulian Crocolisk +UPDATE `creature_template` SET `maxlevel`=70 WHERE `entry`=16407; -- Spectral Servant +UPDATE `creature_template` SET `maxlevel`=30 WHERE `entry`=16541; -- Ghostlands Guardian +UPDATE `creature_template` SET `maxlevel`=59 WHERE `entry`=17006; -- Elsaana +UPDATE `creature_template` SET `minlevel`=60 WHERE `entry`=17052; -- Rumatu +UPDATE `creature_template` SET `minlevel`=35 WHERE `entry`=17095; -- Balandar Brightstar +UPDATE `creature_template` SET `maxlevel`=67 WHERE `entry`=17160; -- Living Cyclone diff --git a/src/server/game/Guilds/Guild.cpp b/src/server/game/Guilds/Guild.cpp index 78d88531dda..9aaac264425 100644 --- a/src/server/game/Guilds/Guild.cpp +++ b/src/server/game/Guilds/Guild.cpp @@ -1949,7 +1949,7 @@ bool Guild::LoadMemberFromDB(Field* fields) ObjectGuid::LowType lowguid = fields[1].GetUInt32(); ObjectGuid playerGuid(HighGuid::Player, lowguid); - auto [memberIt, isNew] = m_members.try_emplace(lowguid, m_id, playerGuid, fields[2].GetUInt8()); + auto [memberIt, isNew] = m_members.try_emplace(playerGuid, m_id, playerGuid, fields[2].GetUInt8()); if (!isNew) { TC_LOG_ERROR("guild", "Tried to add {} to guild '{}'. Member already exists.", playerGuid.ToString(), m_name); @@ -2206,7 +2206,7 @@ bool Guild::AddMember(CharacterDatabaseTransaction trans, ObjectGuid guid, uint8 if (rankId == GUILD_RANK_NONE) rankId = _GetLowestRankId(); - auto [memberIt, isNew] = m_members.try_emplace(lowguid, m_id, guid, rankId); + auto [memberIt, isNew] = m_members.try_emplace(guid, m_id, guid, rankId); if (!isNew) { TC_LOG_ERROR("guild", "Tried to add {} to guild '{}'. Member already exists.", guid.ToString(), m_name); @@ -2279,7 +2279,7 @@ bool Guild::DeleteMember(CharacterDatabaseTransaction trans, ObjectGuid guid, bo Member* newLeader = nullptr; for (auto& [memberGuid, member] : m_members) { - if (memberGuid == lowguid) + if (memberGuid == guid) oldLeader = &member; else if (!newLeader || newLeader->GetRankId() > member.GetRankId()) newLeader = &member; @@ -2307,7 +2307,7 @@ bool Guild::DeleteMember(CharacterDatabaseTransaction trans, ObjectGuid guid, bo // Call script on remove before member is actually removed from guild (and database) sScriptMgr->OnGuildRemoveMember(this, player, isDisbanding, isKicked); - m_members.erase(lowguid); + m_members.erase(guid); // If player not online data in data field will be loaded from guild tabs no need to update it !! if (player) @@ -2347,7 +2347,7 @@ bool Guild::ChangeMemberRank(CharacterDatabaseTransaction trans, ObjectGuid guid bool Guild::IsMember(ObjectGuid guid) const { - return m_members.find(guid.GetCounter()) != m_members.end(); + return m_members.find(guid) != m_members.end(); } uint64 Guild::GetMemberAvailableMoneyForRepairItems(ObjectGuid guid) const diff --git a/src/server/game/Guilds/Guild.h b/src/server/game/Guilds/Guild.h index f9727e31013..2842b1dc475 100644 --- a/src/server/game/Guilds/Guild.h +++ b/src/server/game/Guilds/Guild.h @@ -746,7 +746,7 @@ class TC_GAME_API Guild uint64 m_bankMoney; std::vector<RankInfo> m_ranks; - std::unordered_map<uint32, Member> m_members; + std::unordered_map<ObjectGuid, Member> m_members; std::vector<BankTab> m_bankTabs; // These are actually ordered lists. The first element is the oldest entry. @@ -769,13 +769,13 @@ class TC_GAME_API Guild inline Member const* GetMember(ObjectGuid guid) const { - auto itr = m_members.find(guid.GetCounter()); + auto itr = m_members.find(guid); return (itr != m_members.end()) ? &itr->second : nullptr; } inline Member* GetMember(ObjectGuid guid) { - auto itr = m_members.find(guid.GetCounter()); + auto itr = m_members.find(guid); return (itr != m_members.end()) ? &itr->second : nullptr; } |