Advertisement
Guest User

Untitled

a guest
Feb 19th, 2020
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.11 KB | None | 0 0
  1. void World::ResetWarModeMinority()
  2. {
  3. uint32 l_HordeCount = 0;
  4. uint32 l_AllianceCount = 0;
  5. uint32 l_BonusTeam = Team::TEAM_NONE;
  6.  
  7. QueryResult l_Result = CharacterDatabase.Query("SELECT COUNT(guid) as count, faction FROM warmode_minority GROUP BY faction");
  8. if (l_Result)
  9. {
  10. do
  11. {
  12. Field* l_Fields = l_Result->Fetch();
  13.  
  14. if (l_Fields[1].GetUInt16() == Team::ALLIANCE)
  15. l_AllianceCount = (uint32)l_Fields[0].GetUInt64();
  16. else if (l_Fields[1].GetUInt16() == Team::HORDE)
  17. l_HordeCount = (uint32)l_Fields[0].GetUInt64();
  18. }
  19. while (l_Result->NextRow());
  20. }
  21.  
  22. CharacterDatabase.Execute("DELETE FROM `warmode_minority`");
  23.  
  24. if (l_HordeCount > l_AllianceCount)
  25. l_BonusTeam = Team::ALLIANCE;
  26. else if (l_AllianceCount > l_HordeCount)
  27. l_BonusTeam = Team::HORDE;
  28.  
  29. sWorld->setWorldState(WS_WEEKLY_WARMODE_MINORITY_RESET_TIME, getWorldState(WS_WEEKLY_WARMODE_MINORITY_RESET_TIME) + 7);
  30. sWorld->setWorldState(WS_WARMODE_BONUS_FACTION, uint64(l_BonusTeam));
  31. m_NextWarModeMinorityReset = time_t(m_NextWarModeMinorityReset + DAY * 7);
  32. m_WarModeFactionBonus = uint64(l_BonusTeam);
  33.  
  34. ACE_Read_Guard<ACE_RW_Thread_Mutex> l_Guard(m_SessionsLock);
  35. for (SessionMap::const_iterator itr = m_sessions.begin(); itr != m_sessions.end(); ++itr)
  36. {
  37. if (Player* l_Player = itr->second->GetPlayer())
  38. {
  39. if (!l_Player->IsWarMode())
  40. continue;
  41.  
  42. l_Player->AddCriticalOperation([l_Player]()->void
  43. {
  44. if (Aura* l_Aura = l_Player->GetAura(WarModeSpells::Enlisted))
  45. l_Aura->RecalculateAmountOfEffects(true);
  46.  
  47. if (Aura* l_Aura = l_Player->GetAura(WarModeSpells::EnlistedMod))
  48. l_Aura->RecalculateAmountOfEffects(true);
  49.  
  50. l_Player->SendUpdateWorldState(17042, sWorld->GetWarModeFactionBonus(HORDE));
  51. l_Player->SendUpdateWorldState(17043, sWorld->GetWarModeFactionBonus(ALLIANCE));
  52. });
  53. }
  54. }
  55. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement