diff options
| author | silinoron <none@none> | 2010-08-17 19:18:09 -0700 |
|---|---|---|
| committer | silinoron <none@none> | 2010-08-17 19:18:09 -0700 |
| commit | d6fe4b23e94f2d44d4b5161260e29aa56184e4ca (patch) | |
| tree | c1b2bb0e96d4b439f84b916c74db3ebd9c751b07 /src/server/game/Server | |
| parent | 8c4c5aef8bbb1c985ffac68535f9d1050ed22d6f (diff) | |
Add support for recruit-a-friend XP and reputation multipliers.
More research needs to be done to implement summoning and granting levels.
--HG--
branch : trunk
Diffstat (limited to 'src/server/game/Server')
| -rw-r--r-- | src/server/game/Server/WorldSession.cpp | 8 | ||||
| -rw-r--r-- | src/server/game/Server/WorldSession.h | 5 | ||||
| -rw-r--r-- | src/server/game/Server/WorldSocket.cpp | 7 |
3 files changed, 13 insertions, 7 deletions
diff --git a/src/server/game/Server/WorldSession.cpp b/src/server/game/Server/WorldSession.cpp index 7e34afe09f8..fc63e2b6e75 100644 --- a/src/server/game/Server/WorldSession.cpp +++ b/src/server/game/Server/WorldSession.cpp @@ -46,16 +46,16 @@ #include "Transport.h" /// WorldSession constructor -WorldSession::WorldSession(uint32 id, WorldSocket *sock, AccountTypes sec, uint8 expansion, time_t mute_time, LocaleConstant locale) : +WorldSession::WorldSession(uint32 id, WorldSocket *sock, AccountTypes sec, uint8 expansion, time_t mute_time, LocaleConstant locale, uint32 recruiter) : m_muteTime(mute_time), _player(NULL), m_Socket(sock),_security(sec), _accountId(id), m_expansion(expansion), m_sessionDbcLocale(sWorld.GetAvailableDbcLocale(locale)), m_sessionDbLocaleIndex(sObjectMgr.GetIndexForLocale(locale)), _logoutTime(0), m_inQueue(false), m_playerLoading(false), m_playerLogout(false), m_playerRecentlyLogout(false), m_playerSave(false), -m_latency(0), m_TutorialsChanged(false), m_timeOutTime(0) +m_latency(0), m_TutorialsChanged(false), m_timeOutTime(0), recruiterId(recruiter) { if (sock) { - m_Address = sock->GetRemoteAddress (); - sock->AddReference (); + m_Address = sock->GetRemoteAddress(); + sock->AddReference(); ResetTimeOutTime(); LoginDatabase.PExecute("UPDATE account SET online = 1 WHERE id = %u;", GetAccountId()); } diff --git a/src/server/game/Server/WorldSession.h b/src/server/game/Server/WorldSession.h index 9c6dd70831f..7251e900ae0 100644 --- a/src/server/game/Server/WorldSession.h +++ b/src/server/game/Server/WorldSession.h @@ -129,7 +129,7 @@ class WorldSession { friend class CharacterHandler; public: - WorldSession(uint32 id, WorldSocket *sock, AccountTypes sec, uint8 expansion, time_t mute_time, LocaleConstant locale); + WorldSession(uint32 id, WorldSocket *sock, AccountTypes sec, uint8 expansion, time_t mute_time, LocaleConstant locale, uint32 recruiter); ~WorldSession(); bool PlayerLoading() const { return m_playerLoading; } @@ -306,6 +306,8 @@ class WorldSession return false; } + // Recruit-A-Friend Handling + uint32 GetRecruiterId() { return recruiterId; } public: // opcodes handlers @@ -826,6 +828,7 @@ class WorldSession uint32 m_Tutorials[8]; bool m_TutorialsChanged; AddonsList m_addonsList; + uint32 recruiterId; ACE_Based::LockedQueue<WorldPacket*, ACE_Thread_Mutex> _recvQueue; }; #endif diff --git a/src/server/game/Server/WorldSocket.cpp b/src/server/game/Server/WorldSocket.cpp index 09d2199b3ff..146595ff910 100644 --- a/src/server/game/Server/WorldSocket.cpp +++ b/src/server/game/Server/WorldSocket.cpp @@ -829,7 +829,8 @@ int WorldSocket::HandleAuthSession (WorldPacket& recvPacket) "s, " //5 "expansion, " //6 "mutetime, " //7 - "locale " //8 + "locale, " //8 + "recruiter " //9 "FROM account " "WHERE username = '%s'", safe_account.c_str()); @@ -898,6 +899,8 @@ int WorldSocket::HandleAuthSession (WorldPacket& recvPacket) if (locale >= MAX_LOCALE) locale = LOCALE_enUS; + uint32 recruiter = fields[9].GetUInt32(); + // Checks gmlevel per Realm result = LoginDatabase.PQuery ("SELECT " @@ -989,7 +992,7 @@ int WorldSocket::HandleAuthSession (WorldPacket& recvPacket) safe_account.c_str()); // NOTE ATM the socket is single-threaded, have this in mind ... - ACE_NEW_RETURN (m_Session, WorldSession (id, this, AccountTypes(security), expansion, mutetime, locale), -1); + ACE_NEW_RETURN (m_Session, WorldSession (id, this, AccountTypes(security), expansion, mutetime, locale, recruiter), -1); m_Crypt.Init(&K); |
