Fix compilation (#4)

Closes: #4
This commit is contained in:
Kulyadev
2021-12-30 10:09:22 +03:00
parent 47e192d91e
commit df86f49b18
2 changed files with 34 additions and 24 deletions

View File

@@ -4083,6 +4083,7 @@ void Guild::GiveXP(uint32 xp, Player* source)
WorldPacket data(SMSG_GUILD_XP_GAIN, 8);
data << uint64(xp);
if (source)
source->GetSession()->SendPacket(&data);
@@ -4097,33 +4098,40 @@ void Guild::GiveXP(uint32 xp, Player* source)
while (GetExperience() >= sGuildMgr->GetXPForGuildLevel(GetLevel()) && GetLevel() < sWorld->getIntConfig(CONFIG_GUILD_MAX_LEVEL))
{
_experience -= sGuildMgr->GetXPForGuildLevel(GetLevel());
++_level;
// Find all guild perks to learn
std::vector<uint32> perksToLearn;
for (uint32 i = 0; i < sGuildPerkSpellsStore.GetNumRows(); ++i)
if (GuildPerkSpellsEntry const* entry = sGuildPerkSpellsStore.LookupEntry(i))
if (entry->Level > oldLevel && entry->Level <= GetLevel())
perksToLearn.push_back(entry->SpellId);
// Notify all online players that guild level changed and learn perks
for (Members::const_iterator itr = m_members.begin(); itr != m_members.end(); ++itr)
{
if (Player* player = itr->second->FindPlayer())
{
player->SetGuildLevel(GetLevel());
for (size_t i = 0; i < perksToLearn.size(); ++i)
player->LearnSpell(perksToLearn[i], true);
}
}
AddGuildNews(GUILD_NEWS_LEVEL_UP, 0, 0, _level);
UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_REACH_GUILD_LEVEL, GetLevel(), 0, 0, NULL, source);
++oldLevel;
LevelUp(oldLevel, source);
}
}
void Guild::LevelUp(uint32 oldLevel, Player *source)
{
++_level;
// Find all guild perks to learn
std::vector<uint32> perksToLearn;
for (uint32 i = 0; i < sGuildPerkSpellsStore.GetNumRows(); ++i)
if (GuildPerkSpellsEntry const* entry = sGuildPerkSpellsStore.LookupEntry(i))
if (entry->Level > oldLevel && entry->Level <= GetLevel())
perksToLearn.push_back(entry->SpellId);
// Notify all online players that guild level changed and learn perks
for (Members::const_iterator itr = m_members.begin(); itr != m_members.end(); ++itr)
{
if (Player* player = itr->second->FindPlayer())
{
player->SetGuildLevel(GetLevel());
for (size_t i = 0; i < perksToLearn.size(); ++i)
player->LearnSpell(perksToLearn[i], true);
}
}
AddGuildNews(GUILD_NEWS_LEVEL_UP, 0, 0, _level);
UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_REACH_GUILD_LEVEL, GetLevel(), 0, 0, NULL, source);
++oldLevel;
}
void Guild::SendGuildXP(WorldSession* session /* = NULL */) const
{
Member const* member = GetMember(session->GetGuidLow());

View File

@@ -930,6 +930,8 @@ public:
uint64 GetBankMoney() const { return m_bankMoney; }
void LevelUp(uint32 oldLevel, Player *source);
protected:
uint32 m_id;
std::string m_name;