mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-15 23:20:36 +01:00
Core/Groups: Use iterators instead of raw LinkedListElement to interact with group members
This commit is contained in:
@@ -92,27 +92,24 @@ public:
|
||||
if (!groupTarget)
|
||||
return false;
|
||||
|
||||
for (GroupReference* it = groupTarget->GetFirstMember(); it != nullptr; it = it->next())
|
||||
for (GroupReference const& it : groupTarget->GetMembers())
|
||||
{
|
||||
target = it->GetSource();
|
||||
if (target)
|
||||
target = it.GetSource();
|
||||
uint8 oldlevel = static_cast<uint8>(target->GetLevel());
|
||||
|
||||
if (level != oldlevel)
|
||||
{
|
||||
uint8 oldlevel = static_cast<uint8>(target->GetLevel());
|
||||
target->SetLevel(static_cast<uint8>(level));
|
||||
target->InitTalentForLevel();
|
||||
target->SetXP(0);
|
||||
}
|
||||
|
||||
if (level != oldlevel)
|
||||
{
|
||||
target->SetLevel(static_cast<uint8>(level));
|
||||
target->InitTalentForLevel();
|
||||
target->SetXP(0);
|
||||
}
|
||||
|
||||
if (handler->needReportToTarget(target))
|
||||
{
|
||||
if (oldlevel < static_cast<uint8>(level))
|
||||
ChatHandler(target->GetSession()).PSendSysMessage(LANG_YOURS_LEVEL_UP, handler->GetNameLink().c_str(), level);
|
||||
else // if (oldlevel > newlevel)
|
||||
ChatHandler(target->GetSession()).PSendSysMessage(LANG_YOURS_LEVEL_DOWN, handler->GetNameLink().c_str(), level);
|
||||
}
|
||||
if (handler->needReportToTarget(target))
|
||||
{
|
||||
if (oldlevel < static_cast<uint8>(level))
|
||||
ChatHandler(target->GetSession()).PSendSysMessage(LANG_YOURS_LEVEL_UP, handler->GetNameLink().c_str(), level);
|
||||
else // if (oldlevel > newlevel)
|
||||
ChatHandler(target->GetSession()).PSendSysMessage(LANG_YOURS_LEVEL_DOWN, handler->GetNameLink().c_str(), level);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
@@ -128,15 +125,12 @@ public:
|
||||
if (!groupTarget)
|
||||
return false;
|
||||
|
||||
for (GroupReference* it = groupTarget->GetFirstMember(); it != nullptr; it = it->next())
|
||||
for (GroupReference const& it : groupTarget->GetMembers())
|
||||
{
|
||||
Player* target = it->GetSource();
|
||||
if (target)
|
||||
{
|
||||
target->ResurrectPlayer(target->GetSession()->HasPermission(rbac::RBAC_PERM_RESURRECT_WITH_FULL_HPS) ? 1.0f : 0.5f);
|
||||
target->SpawnCorpseBones();
|
||||
target->SaveToDB();
|
||||
}
|
||||
Player* target = it.GetSource();
|
||||
target->ResurrectPlayer(target->GetSession()->HasPermission(rbac::RBAC_PERM_RESURRECT_WITH_FULL_HPS) ? 1.0f : 0.5f);
|
||||
target->SpawnCorpseBones();
|
||||
target->SaveToDB();
|
||||
}
|
||||
|
||||
return true;
|
||||
@@ -153,14 +147,8 @@ public:
|
||||
if (!groupTarget)
|
||||
return false;
|
||||
|
||||
for (GroupReference* it = groupTarget->GetFirstMember(); it != nullptr; it = it->next())
|
||||
{
|
||||
Player* target = it->GetSource();
|
||||
if (target)
|
||||
{
|
||||
target->DurabilityRepairAll(false, 0, false);
|
||||
}
|
||||
}
|
||||
for (GroupReference const& it : groupTarget->GetMembers())
|
||||
it.GetSource()->DurabilityRepairAll(false, 0, false);
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -204,11 +192,11 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
for (GroupReference* itr = group->GetFirstMember(); itr != nullptr; itr = itr->next())
|
||||
for (GroupReference const& itr : group->GetMembers())
|
||||
{
|
||||
Player* player = itr->GetSource();
|
||||
Player* player = itr.GetSource();
|
||||
|
||||
if (!player || player == gmPlayer || !player->GetSession())
|
||||
if (player == gmPlayer)
|
||||
continue;
|
||||
|
||||
// check online security
|
||||
|
||||
@@ -249,12 +249,9 @@ public:
|
||||
return false;
|
||||
}
|
||||
|
||||
for (GroupReference* itr = grp->GetFirstMember(); itr != nullptr; itr = itr->next())
|
||||
for (GroupReference const& itr : grp->GetMembers())
|
||||
{
|
||||
Player* player = itr->GetSource();
|
||||
|
||||
if (!player || !player->GetSession())
|
||||
continue;
|
||||
Player* player = itr.GetSource();
|
||||
|
||||
// check online security
|
||||
if (handler->HasLowerSecurity(player, ObjectGuid::Empty))
|
||||
|
||||
@@ -67,10 +67,10 @@ class go_gauntlet_gate : public GameObjectScript
|
||||
|
||||
if (Group* group = player->GetGroup())
|
||||
{
|
||||
for (GroupReference* itr = group->GetFirstMember(); itr != nullptr; itr = itr->next())
|
||||
for (GroupReference const& itr : group->GetMembers())
|
||||
{
|
||||
Player* pGroupie = itr->GetSource();
|
||||
if (!pGroupie || !pGroupie->IsInMap(player))
|
||||
Player* pGroupie = itr.GetSource();
|
||||
if (!pGroupie->IsInMap(player))
|
||||
continue;
|
||||
|
||||
if (pGroupie->GetQuestStatus(QUEST_DEAD_MAN_PLEA) == QUEST_STATUS_INCOMPLETE &&
|
||||
|
||||
@@ -44,10 +44,12 @@ class spell_razelikh_teleport_group : public SpellScript
|
||||
{
|
||||
if (Group* group = player->GetGroup())
|
||||
{
|
||||
for (GroupReference* itr = group->GetFirstMember(); itr != nullptr; itr = itr->next())
|
||||
if (Player* member = itr->GetSource())
|
||||
if (member->IsWithinDistInMap(player, 20.0f) && !member->isDead())
|
||||
member->CastSpell(member, SPELL_TELEPORT_SINGLE_IN_GROUP, true);
|
||||
for (GroupReference const& itr : group->GetMembers())
|
||||
{
|
||||
Player* member = itr.GetSource();
|
||||
if (member->IsWithinDistInMap(player, 20.0f) && !member->isDead())
|
||||
member->CastSpell(member, SPELL_TELEPORT_SINGLE_IN_GROUP, true);
|
||||
}
|
||||
}
|
||||
else
|
||||
player->CastSpell(player, SPELL_TELEPORT_SINGLE, true);
|
||||
|
||||
@@ -379,10 +379,9 @@ struct boss_lady_deathwhisper : public BossAI
|
||||
{
|
||||
if (Group* group = owner->GetGroup())
|
||||
{
|
||||
for (GroupReference* itr = group->GetFirstMember(); itr != nullptr; itr = itr->next())
|
||||
if (Player* member = itr->GetSource())
|
||||
if (member->IsInMap(owner))
|
||||
member->KilledMonsterCredit(NPC_DARNAVAN_CREDIT);
|
||||
for (GroupReference const& itr : group->GetMembers())
|
||||
if (itr.GetSource()->IsInMap(owner))
|
||||
itr.GetSource()->KilledMonsterCredit(NPC_DARNAVAN_CREDIT);
|
||||
}
|
||||
else
|
||||
owner->KilledMonsterCredit(NPC_DARNAVAN_CREDIT);
|
||||
@@ -854,10 +853,9 @@ struct npc_darnavan : public ScriptedAI
|
||||
{
|
||||
if (Group* group = owner->GetGroup())
|
||||
{
|
||||
for (GroupReference* itr = group->GetFirstMember(); itr != nullptr; itr = itr->next())
|
||||
if (Player* member = itr->GetSource())
|
||||
if (member->IsInMap(owner))
|
||||
member->FailQuest(QUEST_DEPROGRAMMING);
|
||||
for (GroupReference const& itr : group->GetMembers())
|
||||
if (itr.GetSource()->IsInMap(owner))
|
||||
itr.GetSource()->FailQuest(QUEST_DEPROGRAMMING);
|
||||
}
|
||||
else
|
||||
owner->FailQuest(QUEST_DEPROGRAMMING);
|
||||
|
||||
@@ -91,12 +91,12 @@ public:
|
||||
|
||||
if (Player* player = done_by->ToPlayer())
|
||||
{
|
||||
if (Group* group = player->GetGroup())
|
||||
if (Group const* group = player->GetGroup())
|
||||
{
|
||||
for (GroupReference* itr = group->GetFirstMember(); itr != nullptr; itr = itr->next())
|
||||
for (GroupReference const& itr : group->GetMembers())
|
||||
{
|
||||
Player* groupie = itr->GetSource();
|
||||
if (groupie && groupie->IsInMap(player) &&
|
||||
Player* groupie = itr.GetSource();
|
||||
if (groupie->IsInMap(player) &&
|
||||
groupie->GetQuestStatus(QUEST_DONTKILLTHEFATONE) == QUEST_STATUS_INCOMPLETE &&
|
||||
groupie->GetReqKillOrCastCurrentCount(QUEST_DONTKILLTHEFATONE, NPC_BOULDERFIST_INVADER) == REQUIRED_KILL_COUNT)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user