aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/updates/world/3.3.5/2025_09_28_00_world.sql4
-rw-r--r--sql/updates/world/3.3.5/2025_09_28_01_world.sql4
-rw-r--r--sql/updates/world/3.3.5/2025_09_28_02_world.sql57
-rw-r--r--src/server/game/Guilds/Guild.cpp10
-rw-r--r--src/server/game/Guilds/Guild.h6
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;
}