149 SessionMap::const_iterator itr;
196 SessionMap::const_iterator itr =
m_sessions.find(
id);
208 SessionMap::const_iterator itr =
m_sessions.find(
id);
212 if (itr->second->PlayerLoading())
215 itr->second->KickPlayer();
242 bool decrease_session =
true;
253 decrease_session =
false;
267 if (decrease_session)
295 SF_LOG_INFO(
"misc",
"Server Population (%f).", popu);
308 if (difftime(i->second, time(NULL)) < tolerance)
368 if (!found && sessions)
396 (*iter)->SendAuthWaitQue(position);
408 SF_LOG_ERROR(
"misc",
"World settings reload fail: can't read settings from %s.",
sConfigMgr->GetFilename().c_str());
411 sLog->LoadFromConfig();
426 SetMotd(
sConfigMgr->GetStringDefault(
"Motd",
"Welcome to a Skyfire Core Server."));
549 SF_LOG_ERROR(
"server.loading",
"TargetPosRecalculateRange (%f) must be <= %f. Using %f instead.",
782 SF_LOG_ERROR(
"server.loading",
"StartHeroicPlayerLevel (%i) must be in range 1..MaxPlayerLevel(%u). Set to 55.",
788 SF_LOG_ERROR(
"server.loading",
"StartHeroicPlayerLevel (%i) must be in range 1..MaxPlayerLevel(%u). Set to %u.",
803 SF_LOG_ERROR(
"server.loading",
"StartPlayerMoney (%i) must be in range 0..%u. Set to %u.",
875 SF_LOG_ERROR(
"server.loading",
"RecruitAFriend.MaxLevel (%i) must be in the range 0..MaxLevel(%u). Set to %u.",
909 SF_LOG_ERROR(
"server.loading",
"GM.StartLevel (%i) must be in range StartPlayerLevel(%u)..%u. Set to %u.",
951 SF_LOG_INFO(
"server.loading",
"Will clear `logs` table of entries older than %i seconds every %u minutes.",
1083 if (
int32 clientCacheId =
sConfigMgr->GetIntDefault(
"ClientCacheVersion", 0))
1086 if (clientCacheId > 0)
1089 SF_LOG_INFO(
"server.loading",
"Client cache version set to: %u", clientCacheId);
1092 SF_LOG_ERROR(
"server.loading",
"ClientCacheVersion can't be negative %d, ignored.", clientCacheId);
1200 std::string dataPath =
sConfigMgr->GetStringDefault(
"DataDir",
"./");
1201 if (dataPath.empty() || (dataPath.at(dataPath.length() - 1) !=
'/' && dataPath.at(dataPath.length() - 1) !=
'\\'))
1202 dataPath.push_back(
'/');
1204#if PLATFORM == PLATFORM_UNIX || PLATFORM == PLATFORM_APPLE
1205 if (dataPath[0] ==
'~')
1207 const char* home = getenv(
"HOME");
1209 dataPath.replace(0, 1, home);
1216 SF_LOG_ERROR(
"server.loading",
"DataDir option can't be changed at worldserver.conf reload, using current value (%s).",
m_dataPath.c_str());
1228 bool enableIndoor =
sConfigMgr->GetBoolDefault(
"vmap.enableIndoorCheck",
true);
1229 bool enableLOS =
sConfigMgr->GetBoolDefault(
"vmap.enableLOS",
true);
1230 bool enableHeight =
sConfigMgr->GetBoolDefault(
"vmap.enableHeight",
true);
1233 SF_LOG_ERROR(
"server.loading",
"VMap height checking disabled! Creatures movements and other various things WILL be broken! Expect no support.");
1237 SF_LOG_INFO(
"server.loading",
"VMap support included. LineOfSight: %i, getHeight: %i, indoorCheck: %i", enableLOS, enableHeight, enableIndoor);
1243 SF_LOG_WARN(
"server.loading",
"PlayerStart.AllSpells enabled - may not function as intended!");
1376 srand((
unsigned int)time(NULL));
1405 SF_LOG_ERROR(
"server.loading",
"Correct *.map files not found in path '%smaps' or *.vmtree/*.vmtile files in '%svmaps'. Please place *.map/*.vmtree/*.vmtile files in appropriate directories or correct the DataDir value in the worldserver.conf file.",
m_dataPath.c_str(),
m_dataPath.c_str());
1417 SF_LOG_INFO(
"server.loading",
"Loading Skyfire strings...");
1430 LoginDatabase.PExecute(
"UPDATE realmlist SET icon = %u, timezone = %u WHERE id = '%d'", server_type, realm_zone, itr->first);
1439 SF_LOG_INFO(
"server.loading",
"Initialize data stores...");
1443 SF_LOG_INFO(
"server.loading",
"Loading SpellInfo store...");
1446 SF_LOG_INFO(
"server.loading",
"Loading SpellInfo corrections...");
1449 SF_LOG_INFO(
"server.loading",
"Loading SkillLineAbilityMultiMap Data...");
1452 SF_LOG_INFO(
"server.loading",
"Loading SpellInfo custom attributes...");
1453 sSpellMgr->LoadSpellInfoCustomAttributes();
1455 SF_LOG_INFO(
"server.loading",
"Loading GameObject models...");
1458 SF_LOG_INFO(
"server.loading",
"Loading Script Names...");
1461 SF_LOG_INFO(
"server.loading",
"Loading Instance Template...");
1465 SF_LOG_INFO(
"server.loading",
"Loading instances...");
1468 SF_LOG_INFO(
"server.loading",
"Loading Localization strings...");
1482 SF_LOG_INFO(
"server.loading",
"Loading Account Roles and Permissions...");
1485 SF_LOG_INFO(
"server.loading",
"Loading Page Texts...");
1488 SF_LOG_INFO(
"server.loading",
"Loading Game Object Templates...");
1491 SF_LOG_INFO(
"server.loading",
"Loading Transport templates...");
1494 SF_LOG_INFO(
"server.loading",
"Loading Legacy Local Transport Data...");
1497 SF_LOG_INFO(
"server.loading",
"Loading Spell Rank Data...");
1500 SF_LOG_INFO(
"server.loading",
"Loading Spell Required Data...");
1503 SF_LOG_INFO(
"server.loading",
"Loading Spell Group types...");
1506 SF_LOG_INFO(
"server.loading",
"Loading Spell Learn Skills...");
1509 SF_LOG_INFO(
"server.loading",
"Loading Spell Learn Spells...");
1512 SF_LOG_INFO(
"server.loading",
"Loading Spell Proc Event conditions...");
1515 SF_LOG_INFO(
"server.loading",
"Loading Spell Proc conditions and data...");
1518 SF_LOG_INFO(
"server.loading",
"Loading Spell Bonus Data...");
1521 SF_LOG_INFO(
"server.loading",
"Loading Aggro Spells Definitions...");
1524 SF_LOG_INFO(
"server.loading",
"Loading Spell Group Stack Rules...");
1527 SF_LOG_INFO(
"server.loading",
"Loading NPC Texts...");
1530 SF_LOG_INFO(
"server.loading",
"Loading Enchant Spells Proc datas...");
1533 SF_LOG_INFO(
"server.loading",
"Loading Item Random Enchantments Table...");
1536 SF_LOG_INFO(
"server.loading",
"Loading Disables");
1539 SF_LOG_INFO(
"server.loading",
"Loading Items...");
1542 SF_LOG_INFO(
"server.loading",
"Loading Item set names...");
1548 SF_LOG_INFO(
"server.loading",
"Loading Creature Model Based Info Data...");
1551 SF_LOG_INFO(
"server.loading",
"Loading Creature templates...");
1554 SF_LOG_INFO(
"server.loading",
"Loading Equipment templates...");
1557 SF_LOG_INFO(
"server.loading",
"Loading Creature template addons...");
1560 SF_LOG_INFO(
"server.loading",
"Loading Reputation Reward Rates...");
1563 SF_LOG_INFO(
"server.loading",
"Loading Creature Reputation OnKill Data...");
1566 SF_LOG_INFO(
"server.loading",
"Loading Reputation Spillover Data...");
1567 sObjectMgr->LoadReputationSpilloverTemplate();
1569 SF_LOG_INFO(
"server.loading",
"Loading Points Of Interest Data...");
1572 SF_LOG_INFO(
"server.loading",
"Loading Creature Base Stats...");
1575 SF_LOG_INFO(
"server.loading",
"Loading Creature Data...");
1578 SF_LOG_INFO(
"server.loading",
"Loading Temporary Summon Data...");
1581 SF_LOG_INFO(
"server.loading",
"Loading pet levelup spells...");
1584 SF_LOG_INFO(
"server.loading",
"Loading pet default spells additional to levelup spells...");
1587 SF_LOG_INFO(
"server.loading",
"Loading Creature Addon Data...");
1590 SF_LOG_INFO(
"server.loading",
"Loading Gameobject Data...");
1593 SF_LOG_INFO(
"server.loading",
"Loading Creature Linked Respawn...");
1596 SF_LOG_INFO(
"server.loading",
"Loading Weather Data...");
1599 SF_LOG_INFO(
"server.loading",
"Loading SceneTemplate Data..");
1602 SF_LOG_INFO(
"server.loading",
"Loading Quests...");
1605 SF_LOG_INFO(
"server.loading",
"Checking Quest Disables");
1608 SF_LOG_INFO(
"server.loading",
"Loading Quest Objectives...");
1611 SF_LOG_INFO(
"server.loading",
"Loading Quest Objective Locales...");
1614 SF_LOG_INFO(
"server.loading",
"Loading Quest Objective Visual Effects...");
1615 sObjectMgr->LoadQuestObjectiveVisualEffects();
1617 SF_LOG_INFO(
"server.loading",
"Loading Quest POI");
1620 SF_LOG_INFO(
"server.loading",
"Loading Quests Starters and Enders...");
1623 SF_LOG_INFO(
"server.loading",
"Loading Objects Pooling Data...");
1626 SF_LOG_INFO(
"server.loading",
"Loading Game Event Data...");
1629 SF_LOG_INFO(
"server.loading",
"Loading UNIT_NPC_FLAG_SPELLCLICK Data...");
1632 SF_LOG_INFO(
"server.loading",
"Loading Vehicle Template Accessories...");
1633 sObjectMgr->LoadVehicleTemplateAccessories();
1635 SF_LOG_INFO(
"server.loading",
"Loading Vehicle Accessories...");
1638 SF_LOG_INFO(
"server.loading",
"Loading SpellArea Data...");
1641 SF_LOG_INFO(
"server.loading",
"Loading AreaTrigger definitions...");
1644 SF_LOG_INFO(
"server.loading",
"Loading Access Requirements...");
1647 SF_LOG_INFO(
"server.loading",
"Loading Quest Area Triggers...");
1650 SF_LOG_INFO(
"server.loading",
"Loading Tavern Area Triggers...");
1653 SF_LOG_INFO(
"server.loading",
"Loading AreaTrigger script names...");
1656 SF_LOG_INFO(
"server.loading",
"Loading LFG entrance positions...");
1659 SF_LOG_INFO(
"server.loading",
"Loading Dungeon boss data...");
1662 SF_LOG_INFO(
"server.loading",
"Loading LFG rewards...");
1665 SF_LOG_INFO(
"server.loading",
"Loading Graveyard-zone links...");
1668 SF_LOG_INFO(
"server.loading",
"Loading Graveyard Orientations...");
1671 SF_LOG_INFO(
"server.loading",
"Loading spell pet auras...");
1674 SF_LOG_INFO(
"server.loading",
"Loading Spell target coordinates...");
1677 SF_LOG_INFO(
"server.loading",
"Loading enchant custom attributes...");
1680 SF_LOG_INFO(
"server.loading",
"Loading linked spells...");
1683 SF_LOG_INFO(
"server.loading",
"Loading Player Create Data...");
1686 SF_LOG_INFO(
"server.loading",
"Loading Exploration BaseXP Data...");
1689 SF_LOG_INFO(
"server.loading",
"Loading Pet Name Parts...");
1694 SF_LOG_INFO(
"server.loading",
"Loading the max pet number...");
1697 SF_LOG_INFO(
"server.loading",
"Loading pet level stats...");
1700 SF_LOG_INFO(
"server.loading",
"Loading Player Corpses...");
1703 SF_LOG_INFO(
"server.loading",
"Loading Player level dependent mail rewards...");
1709 SF_LOG_INFO(
"server.loading",
"Loading Skill Discovery Table...");
1712 SF_LOG_INFO(
"server.loading",
"Loading Skill Extra Item Table...");
1715 SF_LOG_INFO(
"server.loading",
"Loading Skill Fishing base level requirements...");
1718 SF_LOG_INFO(
"server.loading",
"Loading Achievements...");
1720 SF_LOG_INFO(
"server.loading",
"Loading Achievement Criteria Lists...");
1722 SF_LOG_INFO(
"server.loading",
"Loading Achievement Criteria Data...");
1724 SF_LOG_INFO(
"server.loading",
"Loading Achievement Rewards...");
1726 SF_LOG_INFO(
"server.loading",
"Loading Achievement Reward Locales...");
1728 SF_LOG_INFO(
"server.loading",
"Loading Completed Achievements...");
1732 SF_LOG_INFO(
"server.loading",
"Deleting expired auctions...");
1736 SF_LOG_INFO(
"server.loading",
"Loading Item Auctions...");
1739 SF_LOG_INFO(
"server.loading",
"Loading Auctions...");
1742 SF_LOG_INFO(
"server.loading",
"Loading Guild XP for level...");
1745 SF_LOG_INFO(
"server.loading",
"Loading Guild rewards...");
1748 SF_LOG_INFO(
"server.loading",
"Loading Guilds...");
1753 SF_LOG_INFO(
"server.loading",
"Loading Groups...");
1756 SF_LOG_INFO(
"server.loading",
"Loading ReservedNames...");
1759 SF_LOG_INFO(
"server.loading",
"Loading GameObjects for quests...");
1762 SF_LOG_INFO(
"server.loading",
"Loading BattleMasters...");
1765 SF_LOG_INFO(
"server.loading",
"Loading GameTeleports...");
1768 SF_LOG_INFO(
"server.loading",
"Loading Gossip menu...");
1771 SF_LOG_INFO(
"server.loading",
"Loading Gossip menu options...");
1774 SF_LOG_INFO(
"server.loading",
"Loading Vendors...");
1777 SF_LOG_INFO(
"server.loading",
"Loading Trainers...");
1780 SF_LOG_INFO(
"server.loading",
"Loading Waypoints...");
1783 SF_LOG_INFO(
"server.loading",
"Loading SmartAI Waypoints...");
1786 SF_LOG_INFO(
"server.loading",
"Loading Creature Formations...");
1789 SF_LOG_INFO(
"server.loading",
"Loading World States...");
1792 SF_LOG_INFO(
"server.loading",
"Loading Terrain Phase definitions...");
1795 SF_LOG_INFO(
"server.loading",
"Loading Terrain Swap Default definitions...");
1798 SF_LOG_INFO(
"server.loading",
"Loading Terrain World Map definitions...");
1801 SF_LOG_INFO(
"server.loading",
"Loading Phase Area definitions...");
1804 SF_LOG_INFO(
"server.loading",
"Loading Conditions...");
1807 SF_LOG_INFO(
"server.loading",
"Loading faction change achievement pairs...");
1810 SF_LOG_INFO(
"server.loading",
"Loading faction change spell pairs...");
1813 SF_LOG_INFO(
"server.loading",
"Loading faction change item pairs...");
1816 SF_LOG_INFO(
"server.loading",
"Loading faction change reputation pairs...");
1819 SF_LOG_INFO(
"server.loading",
"Loading faction change title pairs...");
1822 SF_LOG_INFO(
"server.loading",
"Loading GM tickets...");
1825 SF_LOG_INFO(
"server.loading",
"Loading GM surveys...");
1828 SF_LOG_INFO(
"server.loading",
"Loading Support bugs tickets...");
1831 SF_LOG_INFO(
"server.loading",
"Loading Support suggest tickets...");
1834 SF_LOG_INFO(
"server.loading",
"Loading client addons...");
1838 SF_LOG_INFO(
"server.loading",
"Returning old mails...");
1841 SF_LOG_INFO(
"server.loading",
"Loading Autobroadcasts...");
1849 SF_LOG_INFO(
"server.loading",
"Loading Scripts text locales...");
1852 SF_LOG_INFO(
"server.loading",
"Loading spell script names...");
1855 SF_LOG_INFO(
"server.loading",
"Loading Creature Texts...");
1858 SF_LOG_INFO(
"server.loading",
"Loading Creature Text Locales...");
1861 SF_LOG_INFO(
"server.loading",
"Initializing Scripts...");
1870 SF_LOG_INFO(
"server.loading",
"Validating spell scripts...");
1873 SF_LOG_INFO(
"server.loading",
"Loading SmartAI scripts...");
1876 SF_LOG_INFO(
"server.loading",
"Loading Calendar data...");
1879 SF_LOG_INFO(
"server.loading",
"Loading Research Digsite info...");
1882 SF_LOG_INFO(
"server.loading",
"Loading Archaeology Find info...");
1885 SF_LOG_INFO(
"server.loading",
"Loading Research Project requirements...");
1886 sObjectMgr->LoadResearchProjectRequirements();
1888 SF_LOG_INFO(
"server.loading",
"Loading Battle Pet breed data...");
1891 SF_LOG_INFO(
"server.loading",
"Loading Battle Pet quality data...");
1894 SF_LOG_INFO(
"server.loading",
"Loading Battle Pet item to species data...");
1895 sObjectMgr->LoadBattlePetItemToSpeciesData();
1897 SF_LOG_INFO(
"server.loading",
"Loading Battle Pet wild pools...");
1900 SF_LOG_INFO(
"server.loading",
"Loading Cinematic path ...");
1904 SF_LOG_INFO(
"server.loading",
"Initialize game time and timers");
1910 LoginDatabase.PExecute(
"INSERT INTO uptime (realmid, starttime, uptime) VALUES(%u, %u, 0 )",
1945 SF_LOG_INFO(
"server.loading",
"Starting Map System");
1948 SF_LOG_INFO(
"server.loading",
"Starting Game Event system...");
1958 SF_LOG_INFO(
"server.loading",
"Starting Arena Season...");
1964 SF_LOG_INFO(
"server.loading",
"Starting Battleground System");
1968 SF_LOG_INFO(
"server.loading",
"Starting Outdoor PvP System");
1972 SF_LOG_INFO(
"server.loading",
"Starting Battlefield System");
1975 SF_LOG_INFO(
"server.loading",
"Loading Transports...");
1979 SF_LOG_INFO(
"server.loading",
"Loading Warden Checks...");
1982 SF_LOG_INFO(
"server.loading",
"Loading Warden Action Overrides...");
1985 SF_LOG_INFO(
"server.loading",
"Deleting expired bans...");
1986 LoginDatabase.Execute(
"DELETE FROM ip_banned WHERE unbandate <= UNIX_TIMESTAMP() AND unbandate<>bandate");
1988 SF_LOG_INFO(
"server.loading",
"Calculate next daily quest reset time...");
1991 SF_LOG_INFO(
"server.loading",
"Calculate next weekly quest reset time...");
1994 SF_LOG_INFO(
"server.loading",
"Calculate next monthly quest reset time...");
1997 SF_LOG_INFO(
"server.loading",
"Calculate random battleground reset time...");
2000 SF_LOG_INFO(
"server.loading",
"Calculate guild limitation(s) reset time...");
2003 SF_LOG_INFO(
"server.loading",
"Calculate next currency reset time...");
2015 SF_LOG_INFO(
"server.loading",
"Loading BlackMarket Templates...");
2020 SF_LOG_INFO(
"server.worldserver",
"World initialized in %u minutes %u seconds", (startupDuration / 60000), ((startupDuration % 60000) / 1000));
2023 sLog->SetRealmId(realmId);
2046 SF_LOG_INFO(
"misc",
"Difftime %s: %u.", str, diff);
2067 SF_LOG_INFO(
"server.loading",
">> Loaded 0 autobroadcasts definitions. DB table `autobroadcast` is empty for realm %u!", itr->first);
2075 Field* fields = result->Fetch();
2082 }
while (result->NextRow());
2084 SF_LOG_INFO(
"server.loading",
">> Loaded %u autobroadcast definitions for realm %u in %u ms", count, itr->first,
GetMSTimeDiffToNow(oldMSTime));
2289 SF_LOG_DEBUG(
"misc",
"Ping MySQL to keep connection alive");
2321 SessionMap::const_iterator itr;
2325 itr->second->GetPlayer() &&
2326 itr->second->GetPlayer()->IsInWorld() &&
2327 itr->second != self &&
2328 (team == 0 || itr->second->GetPlayer()->GetTeam() == team))
2330 itr->second->SendPacket(packet);
2351 if (!team || player->
GetTeam() == team)
2383 char*
lineFromMessage(
char*& pos) {
char* start = strtok(pos,
"\n"); pos = NULL;
return start; }
2392 data_list.push_back(data);
2405 va_start(ap, string_id);
2411 if (!itr->second || !itr->second->GetPlayer() || !itr->second->GetPlayer()->IsInWorld())
2414 wt_do(itr->second->GetPlayer());
2424 va_start(ap, string_id);
2452 char* buf = strdup(text);
2467 SessionMap::const_iterator itr;
2471 itr->second->GetPlayer() &&
2472 itr->second->GetPlayer()->IsInWorld() &&
2473 itr->second->GetPlayer()->GetZoneId() == zone &&
2474 itr->second != self &&
2475 (team == 0 || itr->second->GetPlayer()->GetTeam() == team))
2477 itr->second->SendPacket(packet);
2497 itr->second->KickPlayer();
2505 if (itr->second->GetSecurity() < sec)
2506 itr->second->KickPlayer();
2513 return BanAccount(mode, nameOrIP, duration_secs, reason, author);
2553 if (!resultAccounts)
2565 Field* fieldsAccount = resultAccounts->Fetch();
2573 trans->Append(stmt);
2580 trans->Append(stmt);
2584 if (std::string(sess->GetPlayerName()) != author)
2586 }
while (resultAccounts->NextRow());
2609 account =
sObjectMgr->GetPlayerAccountIdByPlayerName(nameOrIP);
2637 if (!resultCharacter)
2640 guid = (*resultCharacter)[0].GetUInt32();
2676 if (!resultCharacter)
2679 guid = (*resultCharacter)[0].GetUInt32();
2697 time_t thisTime = time(NULL);
2824 if (!pSession->
Update(diff, updater))
2839 void* callbackArg = NULL;
2843 SF_LOG_INFO(
"misc",
"CLI command under processing...");
2867 weight += it->second;
2868 selectionWeights[it->first] = it->second;
2874 uint32 selectedWeight = std::rand() % (weight - 1);
2876 for (AutobroadcastsWeightMap::const_iterator it = selectionWeights.begin(); it != selectionWeights.end(); ++it)
2878 weight += it->second;
2879 if (selectedWeight < weight)
2893 else if (abcenter == 1)
2899 sWorld->SendGlobalMessage(&data);
2901 else if (abcenter == 2)
2909 sWorld->SendGlobalMessage(&data);
2912 SF_LOG_DEBUG(
"misc",
"AutoBroadcast: '%s'", msg.c_str());
2925 if (resultCharCount)
2927 Field* fields = resultCharCount->Fetch();
2929 uint8 charCount =
uint8(fields[1].GetUInt64());
2950 time_t curtime = time(NULL);
2956 time_t mostRecentQuestTime;
2961 Field* fields = result->Fetch();
2962 mostRecentQuestTime = time_t(fields[0].GetUInt32());
2965 mostRecentQuestTime = 0;
2969 time_t curTime = time(NULL);
2972 localTm.tm_hour = 6;
2977 time_t curDayResetTime = mktime(&localTm);
2980 time_t resetTime = (curTime < curDayResetTime) ? curDayResetTime -
DAY : curDayResetTime;
2983 if (mostRecentQuestTime && mostRecentQuestTime <= resetTime)
2992 time_t curtime = time(NULL);
3003 time_t curTime = time(NULL);
3011 time_t nextDayResetTime = mktime(&localTm);
3014 if (curTime >= nextDayResetTime)
3015 nextDayResetTime +=
DAY;
3031 time_t curTime = time(NULL);
3039 time_t nextDayResetTime = mktime(&localTm);
3042 if (curTime >= nextDayResetTime)
3043 nextDayResetTime +=
DAY;
3059 time_t curTime = time(NULL);
3060 tm localTm = *localtime(&curTime);
3068 time_t nextWeekResetTime = mktime(&localTm);
3071 if (curTime >= nextWeekResetTime)
3083 SF_LOG_INFO(
"misc",
"Daily quests reset for all characters.");
3089 if (itr->second->GetPlayer())
3090 itr->second->GetPlayer()->ResetDailyQuestStatus();
3098 CharacterDatabase.Execute(
"UPDATE `character_currency` SET `weekly_quantity` = 0");
3101 if (itr->second->GetPlayer())
3102 itr->second->GetPlayer()->ResetCurrencyWeekCap();
3132 SF_LOG_INFO(
"misc",
"Weekly quests reset for all characters.");
3138 if (itr->second->GetPlayer())
3139 itr->second->GetPlayer()->ResetWeeklyQuestStatus();
3150 SF_LOG_INFO(
"misc",
"Monthly quests reset for all characters.");
3156 if (itr->second->GetPlayer())
3157 itr->second->GetPlayer()->ResetMonthlyQuestStatus();
3160 time_t curTime = time(NULL);
3164 int month = localTm.tm_mon;
3165 int year = localTm.tm_year;
3177 localTm.tm_year = year;
3178 localTm.tm_mon = month;
3179 localTm.tm_mday = 1;
3180 localTm.tm_hour = 0;
3184 time_t nextMonthResetTime = mktime(&localTm);
3199 if (itr->second->GetPlayer())
3200 itr->second->GetPlayer()->ResetSeasonalQuestStatus(event_id);
3205 SF_LOG_INFO(
"misc",
"Random BG status reset for all characters.");
3211 if (itr->second->GetPlayer())
3212 itr->second->GetPlayer()->SetRandomWinner(
false);
3223 week = week < 7 ? week + 1 : 1;
3225 SF_LOG_INFO(
"misc",
"Guild Daily Cap reset. Week: %u", week == 1);
3241 Field* fields = result->Fetch();
3264 SessionMap::const_iterator itr;
3266 if (itr->second && itr->second->GetPlayer() && itr->second->GetPlayer()->IsInWorld())
3268 itr->second->GetPlayer()->UpdateAreaDependentAuras(itr->second->GetPlayer()->GetAreaId());
3269 itr->second->GetPlayer()->UpdateZoneDependentAuras(itr->second->GetPlayer()->GetZoneId());
3281 SF_LOG_INFO(
"server.loading",
">> Loaded 0 world states. DB table `worldstates` is empty!");
3290 Field* fields = result->Fetch();
3293 }
while (result->NextRow());
3301 WorldStatesMap::const_iterator it =
m_worldstates.find(index);
3325 WorldStatesMap::const_iterator it =
m_worldstates.find(index);
3369 SF_LOG_INFO(
"server.loading",
"Loading character name data");
3371 QueryResult result =
CharacterDatabase.Query(
"SELECT guid, name, race, gender, class, level, realm FROM characters WHERE deleteDate IS NULL");
3374 SF_LOG_INFO(
"server.loading",
"No character name data loaded, empty query");
3382 Field* fields = result->Fetch();
3384 fields[3].GetUInt8() , fields[2].GetUInt8() , fields[4].GetUInt8() , fields[5].GetUInt8() , fields[6].GetUInt32());
3386 }
while (result->NextRow());
3388 SF_LOG_INFO(
"server.loading",
"Loaded name data for %u characters", count);
3408 itr->second.m_realm = realm;
3409 itr->second.m_name = name;
3412 itr->second.m_gender = gender;
3415 itr->second.m_race = race;
3424 itr->second.m_level = level;
3431 return &itr->second;
3442 session->InvalidateRBACData();
#define BATTLE_PET_MAX_LEVEL
#define BATTLE_PET_MAX_LOADOUT_SLOTS
#define sBattlePetSpawnMgr
#define WS_CURRENCY_RESET_TIME
@ CHAR_SEL_ACCOUNT_BY_NAME
@ CHAR_SEL_CHARACTER_COUNT
@ CHAR_DEL_QUEST_STATUS_WEEKLY
@ CHAR_DEL_QUEST_STATUS_SEASONAL
@ CHAR_DEL_QUEST_STATUS_MONTHLY
@ CHAR_DEL_QUEST_STATUS_DAILY
@ CHAR_DEL_BATTLEGROUND_RANDOM
#define sCinematicSequenceMgr
Singleton.
char const * localeNames[TOTAL_LOCALES]
const uint8 TOTAL_LOCALES
void LoadDB2Stores(std::string const &dataPath)
void LoadDBCStores(const std::string &dataPath)
void LoadGameObjectModelList(std::string const &dataPath)
void StartEluna(bool restart)
#define MIN_MAP_UPDATE_DELAY
void LoadRandomEnchantmentsTable()
#define SF_LOG_DEBUG(filterType__,...)
#define SF_LOG_WARN(filterType__,...)
#define SF_LOG_ERROR(filterType__,...)
#define SF_LOG_INFO(filterType__,...)
@ LOGIN_INS_ACCOUNT_BANNED
@ LOGIN_SEL_ACCOUNT_BY_IP
@ LOGIN_UPD_UPTIME_PLAYERS
@ LOGIN_DEL_IP_NOT_BANNED
@ LOGIN_INS_REALM_CHARACTERS
@ LOGIN_SEL_REALMLIST_SECURITY_LEVEL
@ LOGIN_UPD_ACCOUNT_NOT_BANNED
@ LOGIN_SEL_AUTOBROADCAST
@ LOGIN_SEL_ACCOUNT_ID_BY_NAME
@ LOGIN_DEL_REALM_CHARACTERS_BY_REALM
void dtCustomFree(void *ptr)
void * dtCustomAlloc(int size, dtAllocHint)
#define DEFAULT_VISIBILITY_NOTIFY_PERIOD
#define MAX_VISIBILITY_DISTANCE
#define DEFAULT_VISIBILITY_DISTANCE
#define DEFAULT_VISIBILITY_BGARENAS
#define NOMINAL_MELEE_RANGE
#define DEFAULT_VISIBILITY_INSTANCE
Skyfire::Future< PreparedQueryResult > PreparedQueryResultFuture
Skyfire::AutoPtr< PreparedResultSet, Skyfire::Mutex > PreparedQueryResult
Skyfire::AutoPtr< ResultSet, Skyfire::Mutex > QueryResult
BanReturn
Ban function return codes.
#define CHARACTER_BOOST_BONUS_TEXT2
@ CHARACTER_BOOST_TEXT_ID
@ GUILD_BANKLOG_MAX_RECORDS
@ GUILD_EVENTLOG_MAX_RECORDS
@ GUILD_NEWSLOG_MAX_RECORDS
BanMode
Ban function modes.
#define CHARACTER_BOOST_BONUS_TEXT
void LoadSkillDiscoveryTable()
#define sSmartWaypointMgr
uint32 GetMSTimeDiffToNow(uint32 oldMSTime)
uint32 getMSTimeDiff(uint32 oldMSTime, uint32 newMSTime)
Skyfire::AutoPtr< Transaction, Skyfire::Mutex > SQLTransaction
float baseMoveSpeed[MAX_MOVE_TYPE]
float playerBaseMoveSpeed[MAX_MOVE_TYPE]
uint32 TimeStringToSecs(const std::string ×tring)
std::string secsToTimeString(uint64 timeInSecs, bool shortText, bool hoursOnly)
void LoadGameObjectModelList(std::string const &dataPath)
static uint32 GetId(std::string const &username)
void WriteString(std::string const &str)
void WriteBits(T value, size_t bits)
static void CleanOldChannelsInDB()
bool ParseCommands(const char *text)
bool HasSentErrorMessage() const
static size_t BuildChatPacket(WorldPacket &data, ChatMsg chatType, Language language, ObjectGuid senderGUID, ObjectGuid receiverGUID, std::string const &message, uint8 chatTag, std::string const &senderName="", std::string const &receiverName="", uint32 achievementId=0, bool gmMessage=false, std::string const &channelName="", std::string const &addonPrefix="")
static char * LineFromMessage(char *&pos)
std::string GetString() const
static bool ExistMapAndVMap(uint32 mapid, float x, float y)
uint32 GetGUIDLow() const
static void DeleteOldCharacters()
WorldSession * GetSession() const
void setString(const uint8 index, const std::string &value)
void setUInt16(const uint8 index, const uint16 value)
void setUInt32(const uint8 index, const uint32 value)
void setUInt8(const uint8 index, const uint8 value)
void setInt32(const uint8 index, const int32 value)
void RecordWorldUpdate(uint32 diffMs)
std::vector< WorldPacket * > WorldPacketList
char * lineFromMessage(char *&pos)
void operator()(WorldPacketList &data_list, LocaleConstant loc_idx)
void do_helper(WorldPacketList &data_list, char *text)
WorldWorldTextBuilder(int32 textId, va_list *args=NULL)
static Player * GetPlayer(WorldObject &object, uint64 guid)
void setEnableLineOfSightCalc(bool pVal)
void setEnableHeightCalc(bool pVal)
static IVMapManager * createOrGetVMapManager()
time_t m_NextWeeklyQuestReset
void SetFloatConfig(WorldFloatConfigs index, float value)
Set a server configuration element (see WorldConfigs).
void SendZoneText(uint32 zone, const char *text, WorldSession *self=0, uint32 team=0)
Send a System Message to all players in the zone (except self if mentioned).
bool RemoveBanCharacter(std::string const &name)
Remove a ban from a character.
void UpdateSessions(uint32 diff)
void InitCurrencyResetTime()
uint32 getIntConfig(WorldIntConfigs index) const
Get a server configuration element (see WorldConfigs).
LocaleConstant m_defaultDbcLocale
bool RemoveBanAccount(BanMode mode, std::string const &nameOrIP)
Remove a ban from an account or IP address.
void AddSession_(WorldSession *s)
static float m_MaxVisibleDistanceInBGArenas
void LoadCharacterNameData()
Loads several pieces of information on server startup with the low GUID There is no further database ...
AccountTypes m_allowedSecurityLevel
void LoadConfigSettings(bool reload=false)
Initialize config values.
void _UpdateGameTime()
Update the game time.
void AddCharacterNameData(uint32 guid, std::string const &name, uint8 gender, uint8 race, uint8 playerClass, uint8 level, uint32 realm)
void KickAllLess(AccountTypes sec)
Kick (and save) all players with security level less sec.
void ShutdownMsg(bool show=false, Player *player=NULL)
Display a shutdown message to the user(s).
void ShutdownServ(uint32 time, uint32 options, uint8 exitcode)
Shutdown the server.
void SendZoneMessage(uint32 zone, WorldPacket *packet, WorldSession *self=0, uint32 team=0)
Send a packet to all players (or players selected team) in the zone (except self if mentioned).
void SetNewCharString(std::string const &str)
Set the string for new characters (first login).
void SendWorldText(int32 string_id,...)
Send a System Message to all players (except self if mentioned).
void UpdateRealmCharCount(uint32 accid)
void LoadDBAllowedSecurityLevel()
Skyfire::LockedQueue< CliCommandHolder *, Skyfire::Mutex > cliCmdQueue
void SendGMText(int32 string_id,...)
Send a System Message to all GMs (except self if mentioned).
bool HasRecentlyDisconnected(WorldSession *)
void AddQueuedPlayer(WorldSession *)
void ResetCurrencyWeekCap()
uint32 GetQueuedSessionCount() const
static float m_MaxVisibleDistanceInInstances
void UpdateMaxSessionCounters()
Get the number of current active sessions.
void setRate(Rates rate, float value)
Set a server rate (see Rates).
uint32 m_maxActiveSessionCount
void SetInitialWorldSettings()
Initialize the World.
void ResetMonthlyQuests()
static int32 m_visibility_notify_periodInBGArenas
std::map< uint32, CharacterNameData > _characterNameDataMap
time_t m_NextDailyQuestReset
void InitDailyQuestResetTime()
void ShutdownCancel()
Cancel a planned server shutdown.
bool IsFFAPvPRealm() const
Skyfire::LockedQueue< WorldSession *, Skyfire::Mutex > addSessQueue
time_t m_NextCurrencyReset
bool RemoveSession(uint32 id)
Remove a given session.
time_t m_NextRandomBGReset
Player * FindPlayerInZone(uint32 zone)
Find a player in a specified zone.
BanReturn BanCharacter(std::string const &name, std::string const &duration, std::string const &reason, std::string const &author)
Ban an account or ban an IP address, duration will be parsed using TimeStringToSecs if it is positive...
float getRate(Rates rate) const
Get a server rate (see Rates).
void SetBoolConfig(WorldBoolConfigs index, bool value)
Set a server configuration element (see WorldConfigs).
void InitGuildResetTime()
BanReturn BanAccount(BanMode mode, std::string const &nameOrIP, std::string const &duration, std::string const &reason, std::string const &author)
Ban an account or ban an IP address, duration will be parsed using TimeStringToSecs if it is positive...
AutobroadcastsMap m_Autobroadcasts
bool GetBoolConfig(WorldBoolConfigs index) const
Get a server configuration element (see WorldConfigs).
time_t mail_timer_expires
CharacterNameData const * GetCharacterNameData(uint32 guid) const
void InitRandomBGResetTime()
~World()
World destructor.
void setWorldState(uint32 index, uint64 value)
void _UpdateRealmCharCount(PreparedQueryResult resultCharCount)
uint32 GetActiveSessionCount() const
DisconnectMap m_disconnects
uint32 m_availableDbcLocaleMask
const char * GetMotd() const
Get the current Message of the Day.
void UpdateCharacterNameData(uint32 guid, std::string const &name, uint8 gender=GENDER_NONE, uint8 race=RACE_NONE, uint32 realm=-1)
void SetPlayerSecurityLimit(AccountTypes sec)
std::vector< PreparedQueryResultFuture > m_realmCharCallbacks
bool IsClosed() const
Deny clients?
void RecordTimeDiff(const char *text,...)
void KickAll()
Kick (and save) all players.
uint32 GetPlayerAmountLimit() const
void AddSession(WorldSession *s)
void InitWeeklyQuestResetTime()
void ResetEventSeasonalQuests(uint16 event_id)
void ForceGameEventUpdate()
void ProcessQueryCallbacks()
uint64 getWorldState(uint32 index) const
void SendGlobalMessage(WorldPacket *packet, WorldSession *self=0, uint32 team=0)
Send a packet to all players (except self if mentioned).
void setIntConfig(WorldIntConfigs index, uint32 value)
Set a server configuration element (see WorldConfigs).
WorldStatesMap m_worldstates
LocaleConstant GetDefaultDbcLocale() const
static int32 m_visibility_notify_periodInInstances
void SendGlobalGMMessage(WorldPacket *packet, WorldSession *self=0, uint32 team=0)
Send a packet to all GMs (except self if mentioned).
static std::atomic< bool > m_stopEvent
uint32 GetActiveAndQueuedSessionCount() const
WorldSession * FindSession(uint32 id) const
Find a session by its id.
void SendServerMessage(ServerMessageType type, const char *text="", Player *player=NULL)
Send a server message to the user(s).
int32 GetQueuePos(WorldSession *)
bool RemoveQueuedPlayer(WorldSession *session)
void UpdateAreaDependentAuras()
void SetMotd(std::string const &motd)
Set a new Message of the Day.
uint32 GetMaxPlayerCount() const
void UpdateCharacterNameDataLevel(uint32 guid, uint8 level)
IntervalTimer m_timers[WUPDATE_COUNT]
void SendGlobalText(const char *text, WorldSession *self)
DEPRECATED, only for debug purpose. Send a System Message to all players (except self if mentioned).
time_t m_NextMonthlyQuestReset
uint32 m_maxQueuedSessionCount
static float m_MaxVisibleDistanceOnContinents
void InitMonthlyQuestResetTime()
void Update(uint32 diff)
Update the World !
void LoadAutobroadcasts()
std::map< uint8, uint8 > AutobroadcastsWeightMap
void SetPlayerAmountLimit(uint32 limit)
Active session server limit.
AutobroadcastsWeightMap m_AutobroadcastsWeights
static std::atomic< uint32 > m_worldLoopCounter
void ProcessCliCommands()
void SetClosed(bool val)
Close world.
World()
World constructor.
static int32 m_visibility_notify_periodOnContinents
Player session in the World.
bool Update(uint32 diff, PacketFilter &updater)
Update the WorldSession (triggered by World update).
void KickPlayer()
Kick a player out of the World.
void SendClientCacheVersion(uint32 version)
void SendAuthWaitQue(uint32 position)
Handle the authentication waiting queue (to be completed).
Player * GetPlayer() const
void SetInQueue(bool state)
Session in auth.queue currently.
bool HasPermission(uint32 permissionId)
void SendTimezoneInformation()
void SendPacket(WorldPacket const *packet, bool forced=false)
Send a packet to the client.
uint32 GetAccountId() const
void SendAuthResponse(ResponseCodes code, bool queued, uint32 queuePos=0)
void SendAccountDataTimes(uint32 mask)
void SendBattlePayDistributionUpdate(uint64 playerGuid, int8 bonusId, int32 bonusFlag, int32 textId, std::string const &bonusText, std::string const &bonusText2)
void SendFeatureSystemStatusGlueScreen()
CharacterDatabaseWorkerPool CharacterDatabase
Accessor to the character database.
WorldDatabaseWorkerPool WorldDatabase
Accessor to the world database.
OpcodeTable clientOpcodeTable
OpcodeTable serverOpcodeTable
#define GLOBAL_CACHE_MASK
RealmNameMap realmNameStore
@ SERVER_MSG_SHUTDOWN_TIME
@ SERVER_MSG_SHUTDOWN_CANCELLED
@ SERVER_MSG_RESTART_CANCELLED
@ SERVER_MSG_RESTART_TIME
@ WS_GUILD_DAILY_RESET_TIME
@ WS_WEEKLY_QUEST_RESET_TIME
@ WS_GUILD_WEEKLY_RESET_TIME
@ WS_MONTHLY_QUEST_RESET_TIME
@ CONFIG_WARDEN_CLIENT_FAIL_ACTION
@ CONFIG_GUILD_RESET_HOUR
@ CONFIG_CURRENCY_MAX_JUSTICE_POINTS
@ CONFIG_BG_REWARD_WINNER_HONOR_FIRST
@ CONFIG_CURRENCY_START_CONQUEST_POINTS
@ CONFIG_AUCTION_LEVEL_REQ
@ CONFIG_CHARDELETE_MIN_LEVEL
@ CONFIG_INTERVAL_DISCONNECT_TOLERANCE
@ CONFIG_INSTANCE_RESET_TIME_HOUR
@ CONFIG_CHATFLOOD_MESSAGE_COUNT
@ CONFIG_CHATFLOOD_MUTE_TIME
@ CONFIG_CHARACTERS_PER_ACCOUNT
@ CONFIG_CURRENCY_START_HONOR_POINTS
@ CONFIG_INTERVAL_LOG_UPDATE
@ CONFIG_ARENA_START_MATCHMAKER_RATING
@ CONFIG_CORPSE_DECAY_NORMAL
@ CONFIG_ARENA_START_RATING
@ CONFIG_CHARACTER_CREATING_MIN_LEVEL_FOR_HEROIC_CHARACTER
@ CONFIG_WARDEN_CLIENT_RESPONSE_DELAY
@ CONFIG_CURRENCY_START_JUSTICE_POINTS
@ CONFIG_SKILL_CHANCE_GREY
@ CONFIG_DISABLE_BREATHING
@ CONFIG_GUILD_WEEKLY_REP_CAP
@ CONFIG_MIN_LEVEL_STAT_SAVE
@ CONFIG_HONOR_AFTER_DUEL
@ CONFIG_QUEST_LOW_LEVEL_HIDE_DIFF
@ CONFIG_CHATFLOOD_MESSAGE_DELAY
@ CONFIG_ARENA_START_PERSONAL_RATING
@ CONFIG_CORPSE_DECAY_RARE
@ CONFIG_CHARACTER_CREATING_DISABLED_RACEMASK
@ CONFIG_CHARACTER_CREATING_DISABLED_CLASSMASK
@ CONFIG_WINTERGRASP_RESTART_AFTER_CRASH
@ CONFIG_LOGDB_CLEARINTERVAL
@ CONFIG_CHARACTERS_PER_REALM
@ CONFIG_GM_WHISPERING_TO
@ CONFIG_WINTERGRASP_PLR_MIN_LVL
@ CONFIG_MIN_DUALSPEC_LEVEL
@ CONFIG_PRESERVE_CUSTOM_CHANNEL_DURATION
@ CONFIG_CREATURE_FAMILY_ASSISTANCE_DELAY
@ CONFIG_WARDEN_CLIENT_CHECK_HOLDOFF
@ CONFIG_ARENA_RATED_UPDATE_TIMER
@ CONFIG_SKILL_CHANCE_SKINNING_STEPS
@ CONFIG_BOOST_START_MONEY
@ CONFIG_GM_VISIBLE_STATE
@ CONFIG_START_HEROIC_PLAYER_LEVEL
@ CONFIG_BG_REWARD_WINNER_HONOR_LAST
@ CONFIG_CHARDELETE_METHOD
@ CONFIG_PACKET_SPOOF_BANDURATION
@ CONFIG_PACKET_SPOOF_POLICY
@ CONFIG_START_PLAYER_MONEY
@ CONFIG_GROUP_VISIBILITY
@ CONFIG_PERSISTENT_CHARACTER_CLEAN_FLAGS
@ CONFIG_CHARDELETE_HEROIC_MIN_LEVEL
@ CONFIG_CREATURE_FAMILY_FLEE_DELAY
@ CONFIG_CORPSE_DECAY_ELITE
@ CONFIG_RBAC_FREE_PERMISSION_MODE
@ CONFIG_WARDEN_NUM_MEM_CHECKS
@ CONFIG_SKILL_GAIN_CRAFTING
@ CONFIG_SKILL_CHANCE_YELLOW
@ CONFIG_INTERVAL_MAPUPDATE
@ CONFIG_CURRENCY_MAX_HONOR_POINTS
@ CONFIG_MAX_OVERSPEED_PINGS
@ CONFIG_START_PETBAR_LEVEL
@ CONFIG_CURRENCY_CONQUEST_POINTS_ARENA_REWARD
@ CONFIG_AUTOBROADCAST_INTERVAL
@ CONFIG_BG_REWARD_WINNER_CONQUEST_LAST
@ CONFIG_ARENA_RATING_DISCARD_TIMER
@ CONFIG_CLIENTCACHE_VERSION
@ CONFIG_CHARACTER_CREATING_DISABLED
@ CONFIG_MAX_RECRUIT_A_FRIEND_BONUS_PLAYER_LEVEL
@ CONFIG_BLACK_MARKET_AUCTION_DELAY_MOD
@ CONFIG_BLACK_MARKET_MAX_AUCTIONS
@ CONFIG_WINTERGRASP_BATTLETIME
@ CONFIG_MIN_PETITION_SIGNS
@ CONFIG_BOOST_START_LEVEL
@ CONFIG_BG_REWARD_LOSER_HONOR_FIRST
@ CONFIG_MAX_INSTANCES_PER_HOUR
@ CONFIG_WORLD_BOSS_LEVEL_DIFF
@ CONFIG_MAIL_DELIVERY_DELAY
@ CONFIG_SKILL_CHANCE_ORANGE
@ CONFIG_CORPSE_DECAY_RAREELITE
@ CONFIG_DEATH_SICKNESS_LEVEL
@ CONFIG_INSTANCE_UNLOAD_DELAY
@ CONFIG_GUILD_EVENT_LOG_COUNT
@ CONFIG_RANDOM_BG_RESET_HOUR
@ CONFIG_MAX_PLAYER_LEVEL
@ CONFIG_WARDEN_NUM_OTHER_CHECKS
@ CONFIG_SKILL_CHANCE_MINING_STEPS
@ CONFIG_GUILD_NEWS_LOG_COUNT
@ CONFIG_SKILL_CHANCE_GREEN
@ CONFIG_BG_REWARD_LOSER_HONOR_LAST
@ CONFIG_GM_LEVEL_IN_WHO_LIST
@ CONFIG_BATTLEGROUND_PREMADE_GROUP_WAIT_FOR_MATCH
@ CONFIG_PACKET_SPOOF_BANMODE
@ CONFIG_WINTERGRASP_PLR_MIN
@ CONFIG_CHAT_CHANNEL_LEVEL_REQ
@ CONFIG_GUILD_BANK_EVENT_LOG_COUNT
@ CONFIG_BATTLE_PET_WILD_SPAWN_MIN_COUNT
@ CONFIG_STRICT_PET_NAMES
@ CONFIG_ACC_PASSCHANGESEC
@ CONFIG_MIN_CHARTER_NAME
@ CONFIG_STRICT_PLAYER_NAMES
@ CONFIG_MAX_PRIMARY_TRADE_SKILL
@ CONFIG_CHAT_SAY_LEVEL_REQ
@ CONFIG_CURRENCY_RESET_DAY
@ CONFIG_GUILD_SAVE_INTERVAL
@ CONFIG_GUILD_UNDELETABLE_LEVEL
@ CONFIG_AUTOBROADCAST_CENTER
@ CONFIG_BATTLE_PET_INITIAL_LEVEL
@ CONFIG_INTERVAL_CHANGEWEATHER
@ CONFIG_BLACK_MARKET_AUCTION_DELAY
@ CONFIG_GUILD_DAILY_XP_CAP
@ CONFIG_SESSION_ADD_DELAY
@ CONFIG_BG_REWARD_WINNER_CONQUEST_FIRST
@ CONFIG_CURRENCY_RESET_HOUR
@ CONFIG_START_PLAYER_LEVEL
@ CONFIG_CORPSE_DECAY_WORLDBOSS
@ CONFIG_SKILL_GAIN_GATHERING
@ CONFIG_HEROIC_CHARACTERS_PER_REALM
@ CONFIG_WINTERGRASP_PLR_MAX
@ CONFIG_ENABLE_SINFO_LOGIN
@ CONFIG_MAX_RESULTS_LOOKUP_COMMANDS
@ CONFIG_WARDEN_CLIENT_BAN_DURATION
@ CONFIG_BATTLEGROUND_INVITATION_TYPE
@ CONFIG_WINTERGRASP_NOBATTLETIME
@ CONFIG_TICKET_LEVEL_REQ
@ CONFIG_BATTLEGROUND_PREMATURE_FINISH_TIMER
@ CONFIG_GM_LEVEL_IN_GM_LIST
@ CONFIG_QUEST_HIGH_LEVEL_HIDE_DIFF
@ CONFIG_CURRENCY_RESET_INTERVAL
@ CONFIG_ARENA_MAX_RATING_DIFFERENCE
@ CONFIG_BATTLE_PET_LOADOUT_UNLOCK_COUNT
@ CONFIG_SOCKET_TIMEOUTTIME
@ CONFIG_DB_PING_INTERVAL
@ CONFIG_INTERVAL_GRIDCLEAN
@ CONFIG_STRICT_CHARTER_NAMES
@ CONFIG_CHARDELETE_KEEP_DAYS
@ CONFIG_MAX_RECRUIT_A_FRIEND_BONUS_PLAYER_LEVEL_DIFFERENCE
@ CONFIG_CHAT_WHISPER_LEVEL_REQ
@ CONFIG_CHAT_STRICT_LINK_CHECKING_KICK
@ CONFIG_PVP_TOKEN_MAP_TYPE
@ CONFIG_CHAT_STRICT_LINK_CHECKING_SEVERITY
@ CONFIG_TALENTS_INSPECTING
@ CONFIG_DEATH_CORPSE_RECLAIM_DELAY_PVE
@ CONFIG_CHAT_GM_WHISPER_FILTER_BYPASS
@ CONFIG_TICKETS_GM_ENABLED
@ CONFIG_TICKETS_FEEDBACK_SYSTEM_ENABLED
@ CONFIG_INSTANCES_RESET_ANNOUNCE
@ CONFIG_INSTANCE_IGNORE_RAID
@ CONFIG_BATTLEGROUND_CAST_DESERTER
@ CONFIG_DETECT_POS_COLLISION
@ CONFIG_BATTLEGROUND_QUEUE_ANNOUNCER_PLAYERONLY
@ CONFIG_ALLOW_TWO_SIDE_TRADE
@ CONFIG_WINTERGRASP_ENABLE
@ CONFIG_ALLOW_TWO_SIDE_INTERACTION_AUCTION
@ CONFIG_ALLOW_TWO_SIDE_INTERACTION_GUILD
@ CONFIG_ARENA_QUEUE_ANNOUNCER_ENABLE
@ CONFIG_QUEST_IGNORE_RAID
@ CONFIG_ARENA_SEASON_IN_PROGRESS
@ CONFIG_OFFHAND_CHECK_AT_SPELL_UNLEARN
@ CONFIG_START_ALL_SPELLS
@ CONFIG_SAVE_RESPAWN_TIME_IMMEDIATELY
@ CONFIG_CLEAN_CHARACTER_DB
@ CONFIG_DIE_COMMAND_MODE
@ CONFIG_DEATH_CORPSE_RECLAIM_DELAY_PVP
@ CONFIG_ALLOW_TWO_SIDE_INTERACTION_CHANNEL
@ CONFIG_SKILL_PROSPECTING
@ CONFIG_ALLOW_TWO_SIDE_INTERACTION_CALENDAR
@ CONFIG_PDUMP_NO_OVERWRITE
@ CONFIG_BATTLEGROUND_QUEUE_ANNOUNCER_ENABLE
@ CONFIG_STATS_SAVE_ONLY_ON_LOGOUT
@ CONFIG_UI_QUESTLEVELS_IN_DIALOGS
@ CONFIG_GM_LOWER_SECURITY
@ CONFIG_RESTRICTED_LFG_CHANNEL
@ CONFIG_VMAP_INDOOR_CHECK
@ CONFIG_BLACK_MARKET_OPEN
@ CONFIG_START_ALL_EXPLORED
@ CONFIG_QUEST_IGNORE_AUTO_ACCEPT
@ CONFIG_ARENA_QUEUE_ANNOUNCER_PLAYERONLY
@ CONFIG_CHAT_FAKE_MESSAGE_PREVENTING
@ CONFIG_DEATH_BONES_WORLD
@ CONFIG_DURABILITY_LOSS_IN_PVP
@ CONFIG_DECLINED_NAMES_USED
@ CONFIG_STATS_LIMITS_ENABLE
@ CONFIG_PRESERVE_CUSTOM_CHANNELS
@ CONFIG_QUEST_IGNORE_AUTO_COMPLETE
@ CONFIG_ARENA_LOG_EXTENDED_INFO
@ CONFIG_SHOW_KICK_IN_WORLD
@ CONFIG_INSTANCE_IGNORE_LEVEL
@ CONFIG_BOOST_NEW_ACCOUNT
@ CONFIG_DBC_ENFORCE_ITEM_ATTRIBUTES
@ CONFIG_NO_RESET_TALENT_COST
@ CONFIG_ALLOW_TWO_SIDE_INTERACTION_GROUP
@ CONFIG_GUILD_LEVELING_ENABLED
@ CONFIG_PVP_TOKEN_ENABLE
@ CONFIG_DEATH_BONES_BG_OR_ARENA
@ RATE_REPUTATION_RECRUIT_A_FRIEND_BONUS
@ RATE_REPUTATION_LFG_BONUS
@ RATE_POWER_RUNICPOWER_INCOME
@ RATE_REPUTATION_LOWLEVEL_KILL
@ RATE_DROP_ITEM_ARTIFACT
@ RATE_CREATURE_ELITE_RARE_SPELLDAMAGE
@ RATE_DURABILITY_LOSS_DAMAGE
@ RATE_CREATURE_ELITE_WORLDBOSS_HP
@ RATE_POWER_DEMONICFURY_LOSS
@ RATE_CREATURE_ELITE_RAREELITE_DAMAGE
@ RATE_CREATURE_ELITE_RAREELITE_HP
@ RATE_DURABILITY_LOSS_PARRY
@ RATE_DURABILITY_LOSS_ABSORB
@ RATE_CREATURE_NORMAL_SPELLDAMAGE
@ RATE_DURABILITY_LOSS_BLOCK
@ RATE_CREATURE_ELITE_ELITE_HP
@ RATE_CREATURE_ELITE_WORLDBOSS_SPELLDAMAGE
@ RATE_CREATURE_NORMAL_DAMAGE
@ RATE_CREATURE_NORMAL_HP
@ RATE_CREATURE_ELITE_RARE_HP
@ RATE_DROP_ITEM_REFERENCED
@ RATE_DROP_ITEM_LEGENDARY
@ RATE_CORPSE_DECAY_LOOTED
@ RATE_POWER_RUNICPOWER_LOSS
@ RATE_CREATURE_ELITE_ELITE_DAMAGE
@ RATE_DROP_ITEM_REFERENCED_AMOUNT
@ RATE_REST_OFFLINE_IN_TAVERN_OR_CITY
@ RATE_CREATURE_ELITE_RAREELITE_SPELLDAMAGE
@ RATE_INSTANCE_RESET_TIME
@ RATE_CREATURE_ELITE_WORLDBOSS_DAMAGE
@ RATE_REPUTATION_LOWLEVEL_QUEST
@ RATE_TARGET_POS_RECALCULATION_RANGE
@ RATE_CREATURE_ELITE_RARE_DAMAGE
@ RATE_DROP_ITEM_UNCOMMON
@ RATE_REST_OFFLINE_IN_WILDERNESS
@ RATE_DURABILITY_LOSS_ON_DEATH
@ RATE_CREATURE_ELITE_ELITE_SPELLDAMAGE
@ CONFIG_STATS_LIMITS_PARRY
@ CONFIG_CREATURE_FAMILY_ASSISTANCE_RADIUS
@ CONFIG_CREATURE_FAMILY_FLEE_ASSISTANCE_RADIUS
@ CONFIG_LISTEN_RANGE_YELL
@ CONFIG_STATS_LIMITS_DODGE
@ CONFIG_LISTEN_RANGE_TEXTEMOTE
@ CONFIG_CHANCE_OF_GM_SURVEY
@ CONFIG_STATS_LIMITS_CRIT
@ CONFIG_LISTEN_RANGE_SAY
@ CONFIG_MAX_RECRUIT_A_FRIEND_DISTANCE
@ CONFIG_GROUP_XP_DISTANCE
@ CONFIG_STATS_LIMITS_BLOCK
void CheckQuestDisables()
void LoadLegacyTransportEntries()
RuntimeMetrics & GetRuntimeMetrics()
bool LocalTime(time_t const &time, tm &result)
@ RBAC_PERM_RECEIVE_GLOBAL_GM_TEXTMESSAGE
LoginDatabaseWorkerPool LoginDatabase
Storage class for commands issued for delayed execution.
void Print(void *, const char *)
CommandFinished * m_commandFinished