clselectserverhandler.cpp
来自「天之炼狱1服务器端源文件游戏服务端不完整」· C++ 代码 · 共 104 行
CPP
104 行
//////////////////////////////////////////////////////////////////////////////// Filename : CLSelectServerHandler.cpp// Written By :// Description ://////////////////////////////////////////////////////////////////////////////#include "CLSelectServer.h"#ifdef __LOGIN_SERVER__ #include "Assert.h" #include "LoginPlayer.h" #include "DatabaseManager.h" #include "GameServerInfoManager.h" #include "DB.h" #include "GameServerGroupInfoManager.h" #include "GameWorldInfoManager.h" #include "OptionInfo.h" #include "Lpackets/LCPCList.h"#endif//////////////////////////////////////////////////////////////////////////////// 努扼捞攫飘啊 PC 狼 府胶飘甫 崔扼绊 夸没秦坷搁, 肺弊牢 辑滚绰 DB肺何磐// PC甸狼 沥焊甫 肺爹秦辑 LCPCList 菩哦俊 淬酒辑 傈价茄促.//////////////////////////////////////////////////////////////////////////////void CLSelectServerHandler::execute (CLSelectServer* pPacket , Player* pPlayer) throw (ProtocolException , Error){ __BEGIN_TRY __BEGIN_DEBUG_EX#ifdef __LOGIN_SERVER__ Assert(pPacket != NULL); Assert(pPlayer != NULL); LoginPlayer* pLoginPlayer = dynamic_cast<LoginPlayer*>(pPlayer); ServerGroupID_t CurrentServerGroupID = pPacket->getServerGroupID(); WorldID_t WorldID = pLoginPlayer->getWorldID(); //Assert ( WorldID <= g_pGameWorldInfoManager->getSize() ); int MaxWorldID = g_pGameWorldInfoManager->getSize(); if (WorldID>MaxWorldID) { WorldID = MaxWorldID; } //Assert ( CurrentServerGroupID <= g_pGameServerGroupInfoManager->getSize( WorldID ) ); int MaxServerGroupID = g_pGameServerGroupInfoManager->getSize( WorldID ); if (CurrentServerGroupID>MaxServerGroupID) { CurrentServerGroupID = MaxServerGroupID; } // by sigi. 2003.1.7 GameServerGroupInfo* pGameServerGroupInfo = g_pGameServerGroupInfoManager->getGameServerGroupInfo( CurrentServerGroupID, WorldID ); Assert(pGameServerGroupInfo!=NULL); if (pGameServerGroupInfo->getStat() == SERVER_DOWN) { filelog("errorLogin.txt", "Server Closed: %d", CurrentServerGroupID); throw DisconnectException("ServerClosed"); } pLoginPlayer->setServerGroupID(CurrentServerGroupID); Statement* pStmt = NULL; //---------------------------------------------------------------------- // 捞力 LCPCList 菩哦阑 父甸绢 焊郴磊 //---------------------------------------------------------------------- LCPCList lcPCList; pLoginPlayer->makePCList( lcPCList ); pLoginPlayer->sendPacket(&lcPCList); pLoginPlayer->setPlayerStatus(LPS_PC_MANAGEMENT); try { pStmt = g_pDatabaseManager->getConnection( "DARKEDEN" )->createStatement(); pStmt->executeQuery("UPDATE Player set CurrentServerGroupID = %d WHERE PlayerID = '%s'", (int)pPacket->getServerGroupID(), pLoginPlayer->getID().c_str()); // 孽府 搬苞 棺 孽府巩 按眉甫 昏力茄促. SAFE_DELETE(pStmt); } catch (SQLQueryException & sce) { //cout << sce.toString() << endl; // 孽府 搬苞 棺 孽府巩 按眉甫 昏力茄促. SAFE_DELETE(pStmt); throw DisconnectException(sce.toString()); }#endif __END_DEBUG_EX __END_CATCH}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?