From 493955eeb48cbc121b6526f8abe984204c0c33c2 Mon Sep 17 00:00:00 2001 From: sruon Date: Fri, 28 Feb 2025 01:21:24 -0700 Subject: [PATCH] BLU can learn in alliance - BLU can learn spell when in an alliance and killer is part of another party - Adds zone check --- src/map/utils/blueutils.cpp | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/src/map/utils/blueutils.cpp b/src/map/utils/blueutils.cpp index b3d7eea66f6..38d18d2196e 100644 --- a/src/map/utils/blueutils.cpp +++ b/src/map/utils/blueutils.cpp @@ -104,11 +104,29 @@ namespace blueutils // populate PBlueMages if (PChar->PParty != nullptr) { - for (auto& member : PChar->PParty->members) + std::vector parties; + + if (PChar->PParty->m_PAlliance) + { + parties = PChar->PParty->m_PAlliance->partyList; + } + else { - if (member->GetMJob() == JOB_BLU && member->objtype == TYPE_PC) + parties.emplace_back(PChar->PParty); + } + + for (const auto* party : parties) + { + for (auto& member : party->members) { - PBlueMages.emplace_back((CCharEntity*)member); + auto* PMember = dynamic_cast(member); + + if (PMember && + PMember->GetMJob() == JOB_BLU && + PMember->getZone() == PMob->getZone()) + { + PBlueMages.emplace_back(PMember); + } } } }