Core/Account: Add total time played in account (#1003)

This saves the total time played on the account, even if your characters have been deleted.
This commit is contained in:
Kargatum
2018-09-18 00:58:42 +07:00
committed by Barbz
parent 82ca2bef99
commit 0d6eb11db9
6 changed files with 45 additions and 11 deletions

View File

@@ -86,12 +86,33 @@ bool WorldSessionFilter::Process(WorldPacket* packet)
}
/// WorldSession constructor
WorldSession::WorldSession(uint32 id, WorldSocket* sock, AccountTypes sec, uint8 expansion, time_t mute_time, LocaleConstant locale, uint32 recruiter, bool isARecruiter, bool skipQueue):
m_muteTime(mute_time), m_timeOutTime(0), _lastAuctionListItemsMSTime(0), _lastAuctionListOwnerItemsMSTime(0), m_GUIDLow(0), _player(NULL), m_Socket(sock),
_security(sec), _skipQueue(skipQueue), _accountId(id), m_expansion(expansion), _logoutTime(0),
m_inQueue(false), m_playerLoading(false), m_playerLogout(false), m_playerSave(false),
m_sessionDbcLocale(sWorld->GetDefaultDbcLocale()), m_sessionDbLocaleIndex(locale),
m_latency(0), m_clientTimeDelay(0), m_TutorialsChanged(false), recruiterId(recruiter), isRecruiter(isARecruiter), m_currentBankerGUID(0), timeWhoCommandAllowed(0)
WorldSession::WorldSession(uint32 id, WorldSocket* sock, AccountTypes sec, uint8 expansion, time_t mute_time, LocaleConstant locale, uint32 recruiter, bool isARecruiter, bool skipQueue, uint32 TotalTime):
m_muteTime(mute_time),
m_timeOutTime(0),
_lastAuctionListItemsMSTime(0),
_lastAuctionListOwnerItemsMSTime(0),
m_GUIDLow(0),
_player(NULL),
m_Socket(sock),
_security(sec),
_skipQueue(skipQueue),
_accountId(id),
m_expansion(expansion),
m_total_time(TotalTime),
_logoutTime(0),
m_inQueue(false),
m_playerLoading(false),
m_playerLogout(false),
m_playerSave(false),
m_sessionDbcLocale(sWorld->GetDefaultDbcLocale()),
m_sessionDbLocaleIndex(locale),
m_latency(0),
m_clientTimeDelay(0),
m_TutorialsChanged(false),
recruiterId(recruiter),
isRecruiter(isARecruiter),
m_currentBankerGUID(0),
timeWhoCommandAllowed(0)
{
memset(m_Tutorials, 0, sizeof(m_Tutorials));
@@ -114,6 +135,8 @@ m_latency(0), m_clientTimeDelay(0), m_TutorialsChanged(false), recruiterId(recru
/// WorldSession destructor
WorldSession::~WorldSession()
{
LoginDatabase.PExecute("UPDATE account SET totaltime = %u WHERE id = %u", GetTotalTime(), GetAccountId());
///- unload player if not unloaded
if (_player)
LogoutPlayer (true);