lgincomingconnectionokhandler.cpp
来自「天之炼狱1服务器端源文件游戏服务端不完整」· C++ 代码 · 共 135 行
CPP
135 行
//--------------------------------------------------------------------------------//// Filename : LGIncomingConnectionOKHandler.cpp// Written By : Reiot// Description :////--------------------------------------------------------------------------------// include files#include "LGIncomingConnectionOK.h"#ifdef __GAME_SERVER__ #include "GamePlayer.h" #include "IncomingPlayerManager.h" #include "Assert.h" #include "Statement.h" #include "DatabaseManager.h" #include "LogDef.h" #include "Gpackets/GCReconnectLogin.h"#endif//--------------------------------------------------------------------------------// // LGIncomingConnectionOKHander::execute()// // 肺弊牢 辑滚肺何磐 LGIncomingConnectionOK 菩哦捞 朝酒坷搁, 霸烙 辑滚绰 捞 倾啊啊 // 绢蠢 敲饭捞绢俊 措茄 倾啊牢瘤 茫酒郴具 茄促. 弊 饶, 捞 敲饭捞绢俊霸 LCReconnectLogin// 菩哦阑 带廉拎具 茄促.// //--------------------------------------------------------------------------------void LGIncomingConnectionOKHandler::execute ( LGIncomingConnectionOK * pPacket ) throw ( ProtocolException , Error ){ __BEGIN_TRY __BEGIN_DEBUG_EX#ifdef __GAME_SERVER__ try { // 敲饭捞绢 酒捞叼甫 荤侩秦辑 敲饭捞绢 按眉俊 立辟茄促.// __ENTER_CRITICAL_SECTION((*g_pIncomingPlayerManager)) GamePlayer * pGamePlayer = NULL; try { pGamePlayer = g_pIncomingPlayerManager->getPlayer( pPacket->getPlayerID() ); } catch ( NoSuchElementException ) { pGamePlayer = g_pIncomingPlayerManager->getReadyPlayer( pPacket->getPlayerID() ); } int fd = -1; Socket* pSocket = pGamePlayer->getSocket(); if (pSocket!=NULL) fd = (int)pSocket->getSOCKET(); if ( pGamePlayer->getPlayerStatus() == GPS_AFTER_SENDING_GL_INCOMING_CONNECTION ) { FILELOG_INCOMING_CONNECTION("incomingDisconnect.log", "OK FD : %d, %s", fd, (pSocket==NULL? "NULL" : pSocket->getHost().c_str()) ); /* // 努扼捞攫飘俊霸 霸烙 辑滚肺 犁立加窍扼绊 舅妨霖促. GCReconnectLogin gcReconnectLogin; gcReconnectLogin.setLoginServerIP( pPacket->getHost() ); gcReconnectLogin.setLoginServerPort( pPacket->getTCPPort() ); gcReconnectLogin.setKey( pPacket->getKey() ); // LCReconnectLogin 菩哦阑 傈价茄促. pGamePlayer->sendPacket( &gcReconnectLogin ); cout << "LGIncomingConnectionOKHandler Send Packet to Client Required Reconnect ServerIP : " << pPacket->getHost() << endl; */ // 盔贰绰 弊成 捞 鸥捞怪俊 菩哦阑 焊陈绰单.. // 鸥捞怪 巩力肺 立加秦力啊 力措肺 救灯绰单 client俊辑 立加夸没阑 秦坷扁 锭巩俊 // 漏妨辑.. // GamePlayer俊 历厘秦滴绊.. IncomingPlayerManager俊辑 disconnect()瞪锭 // 历厘秦敌 packet阑 client肺 焊辰促. GCReconnectLogin* gcReconnectLogin = new GCReconnectLogin; gcReconnectLogin->setLoginServerIP( pPacket->getHost() ); gcReconnectLogin->setLoginServerPort( pPacket->getTCPPort() ); gcReconnectLogin->setKey( pPacket->getKey() ); pGamePlayer->setReconnectPacket( gcReconnectLogin ); //cout << "LGIncomingConnectionOKHandler Store Packet : " << gcReconnectLogin->toString().c_str() << endl; //cout << "LGIncomingConnectionOKHandler Store Packet" << endl; } else { FILELOG_INCOMING_CONNECTION("incomingDisconnect.log", "Invalid FD : %d, %s, ps=%d", fd, (pSocket==NULL? "NULL" : pSocket->getHost().c_str()), (int)pGamePlayer->getPlayerStatus()); cout << "Invalid Player Status(" << (int)pGamePlayer->getPlayerStatus() << ") must be AFTER_SENDING_LG_INCOMING_CONNECTION" << endl; } // 捞犯霸 秦 滴搁, // GamePlayer->processCommand()俊辑 isPenaltyFlag()眉农俊辑 吧妨辑 // 促澜 畔狼 IncomingPlayer->processCommands()俊辑 肋府霸 等促. pGamePlayer->setPenaltyFlag(PENALTY_TYPE_KICKED); pGamePlayer->setItemRatioBonusPoint(3); // 楷搬阑 辆丰茄促. //pGamePlayer->disconnect( UNDISCONNECTED ); // LPM俊辑 昏力茄促. //g_pIncomingPlayerManager->deletePlayer_NOBLOCKED( pGamePlayer->getSocket()->getSOCKET()); // GamePlayer 按眉甫 昏力茄促. //SAFE_DELETE(pGamePlayer); //__LEAVE_CRITICAL_SECTION((*g_pIncomingPlayerManager)) } catch ( NoSuchElementException & nsee ) { cout << "Player not exist or already disconnected" << endl; }#endif __END_DEBUG_EX __END_CATCH}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?