📄 commonbillingpackethandler.cpp
字号:
{ // 漏扼具瞪 局寸. cout << pPacket->User_ID << " cannot play by billing" << endl; filelog(LOGFILE_BILLING_PLAYER, "LoginCheckVerify: Cannot BillingPlay (%s)", pPacket->User_ID); #ifdef __COUT_BILLING_SYSTEM__ cout << "LoginCheckVerify: Cannot BillingPlay (" << pPacket->User_ID << ")" << endl; #endif } } } else { filelog(LOGFILE_BILLING_PLAYER, "LoginCheckVerify: No Such Player(%s)", pPacket->User_ID); #ifdef __COUT_BILLING_SYSTEM__ cout << "LoginCheckVerify: No Such Player(" << pPacket->User_ID << ")" << endl; #endif } __LEAVE_CRITICAL_SECTION((*g_pLoginPlayerManager))#else filelog(LOGFILE_BILLING_PLAYER, "[Error] BillingLoginCheckVerify: Wrong Packet(%s)", pPacket->User_ID);#endif __END_DEBUG_EX __END_CATCH}//////////////////////////////////////////////////////////////////////////////// 巢篮 矫埃阑 焊咯霖促. (B->G only)//////////////////////////////////////////////////////////////////////////////void CommonBillingPacketHandler::executeBillingRemain(CommonBillingPacket* pPacket , Player* pPlayer) throw (ProtocolException , Error){ __BEGIN_TRY __BEGIN_DEBUG_EX #ifdef __GAME_SERVER__ __ENTER_CRITICAL_SECTION((*g_pPCFinder)) Creature* pCreature = g_pPCFinder->getCreatureByID_LOCKED(pPacket->User_ID); if (pCreature!=NULL) { GamePlayer* pGamePlayer = dynamic_cast<GamePlayer*>(pCreature->getPlayer()); int result = pPacket->Result; switch (result) { //----------------------------------------------------------------- // 立加阑 辆丰 矫虐绰 版快 //----------------------------------------------------------------- case BILLING_RESULT_REMAIN_DISCONNECT : // 碍力 辆丰 case BILLING_RESULT_REMAIN_DUPLICATE : // 吝汗 立加 case BILLING_RESULT_REMAIN_REFUND : // 券阂 // 蜡丰 荤侩 阂啊 // 老窜篮 麦麦窍瘤父.. 傲 楼弗促. //pGamePlayer->setPenaltyFlag( PENALTY_TYPE_KICKED ); // 5 檬 饶 楼弗促. char session[40]; memcpy(session, pPacket->Session, 32); session[32]='\0'; if (pGamePlayer->getBillingSession()==session) { #ifdef __COUT_BILLING_SYSTEM__ cout << "***** Disconnect (" << pPacket->User_ID << ":" << session << ")" << endl; #endif disconnectGamePlayer( pGamePlayer, 5*10 ); filelog(LOGFILE_BILLING_PLAYER, "BillingRemain: Disconnect(%s:%s), Result=%d", pPacket->User_ID, session, result); } else { #ifdef __COUT_BILLING_SYSTEM__ cout << "***** No Such Session(" << pPacket->User_ID << ":" << session << ")" << endl; #endif filelog(LOGFILE_BILLING_PLAYER, "BillingRemain: Disconnect: No Such Session(%s:%s)", pPacket->User_ID, session); } break; //----------------------------------------------------------------- // 蜡丰 荤侩 矫埃捞 促 登菌促. 公丰 荤侩栏肺 傈券 //----------------------------------------------------------------- case BILLING_RESULT_REMAIN_NONE : { //char message[40]; //sprintf( message, "蜡丰 荤侩矫埃捞 促 登菌嚼聪促." ) //sendSystemMessage(pGamePlayer, message); // ZonePlayerManager 俊辑 蜡丰粮俊 乐阑 版快 漏府霸 等促. pGamePlayer->setBillingUserStatus( "" ); } break; //----------------------------------------------------------------- // 搬力 沥焊甫 焊咯林绰 版快 //----------------------------------------------------------------- case BILLING_RESULT_REMAIN_RESERVE : // 货肺款 搬力沥焊 荤侩 矫累 { char billMethod[10]; //char expireDate[20]; memcpy(billMethod, pPacket->Bill_Method, 2); billMethod[2]='\0'; //memcpy(expireDate, pPacket->Expire_Date, 12); expireDate[12]='\0'; filelog(LOGFILE_BILLING_PLAYER, "BillingRemain: (%s, %dm)", pPacket->User_ID, (pPacket->Remain_Time/60)); // 搬力 沥焊甫 促矫 焊咯林绰 版快 GCSystemMessage gcSystemMessage; gcSystemMessage.setMessage( g_pStringPool->getString( STRID_APPLY_NEW_BILLING_INFO )); pGamePlayer->sendPacket( &gcSystemMessage ); // 立加 饶, 巢篮 矫埃阑 焊郴霖促. sendBillingRemainMessage(pPacket, pGamePlayer); } break; //----------------------------------------------------------------- // 沥惑利栏肺 巢篮 矫埃 //----------------------------------------------------------------- case BILLING_RESULT_REMAIN_TIME : { char billMethod[10]; //char expireDate[20]; memcpy(billMethod, pPacket->Bill_Method, 2); billMethod[2]='\0'; //memcpy(expireDate, pPacket->Expire_Date, 12); expireDate[12]='\0'; filelog(LOGFILE_BILLING_PLAYER, "BillingRemain: (%s, %dm)", pPacket->User_ID, (pPacket->Remain_Time/60)); int sec = pPacket->Remain_Time; int hour = sec/3600; int min = (sec-(hour*3600))/60; StringStream msg; msg << "蜡丰 辑厚胶 荤侩 啊瓷 矫埃捞 "; if (hour>0) { msg << hour << "矫埃 "; } msg << min << "盒 巢疽嚼聪促."; if (strcmp(billMethod, "FM")==0) msg << "(岿沥咀)"; else if (strcmp(billMethod, "FD")==0) msg << "(老沥咀)"; else if (strcmp(billMethod, "TH")==0) msg << "(沥樊)"; #ifdef __COUT_BILLING_SYSTEM__ cout << "[" << pPacket->User_ID << "] " << msg.toString().c_str() << endl; //<< billMethod << ", " //<< pPacket->getExpire_DateToString().c_str() << "鳖瘤, " #endif sendSystemMessage(pGamePlayer, msg.toString()); } break; } } else { #ifdef __COUT_BILLING_SYSTEM__ cout << "BillingRemain: No Such Player(" << pPacket->User_ID << ")" << endl; #endif filelog(LOGFILE_BILLING_PLAYER, "BillingRemain: No Such Player(%s)", pPacket->User_ID); } __LEAVE_CRITICAL_SECTION((*g_pPCFinder))#else filelog(LOGFILE_BILLING_PLAYER, "[Error] BillingRemain: Wrong Packet(%s)", pPacket->User_ID);#endif __END_DEBUG_EX __END_CATCH}//////////////////////////////////////////////////////////////////////////////// 立加 吝 眉农. BillingServer肺 立加 沥焊甫 焊郴霖促.//////////////////////////////////////////////////////////////////////////////void CommonBillingPacketHandler::executeBillingCheck(CommonBillingPacket* pPacket , Player* pPlayer) throw (ProtocolException , Error){ __BEGIN_TRY __BEGIN_DEBUG_EX #ifdef __GAME_SERVER__ BillingPlayer* pBillingPlayer = dynamic_cast<BillingPlayer*>(pPlayer); Assert(pBillingPlayer!=NULL); // 促矫 搬苞蔼阑 焊辰促. pBillingPlayer->sendPayCheck( pPacket );#else filelog(LOGFILE_BILLING_PLAYER, "[Error] BillingCheck: Wrong Packet(%s)", pPacket->User_ID);#endif __END_DEBUG_EX __END_CATCH}void CommonBillingPacketHandler::disconnectGamePlayer(GamePlayer* pGamePlayer, Turn_t delay) throw (Error){ __BEGIN_TRY#ifdef __GAME_SERVER__ if ( pGamePlayer->getEvent( Event::EVENT_CLASS_KICK ) != NULL ) return; EventKick* pEventKick = new EventKick(pGamePlayer); pEventKick->setDeadline(delay); // 割 檬饶俊 漏赴促..绊 焊郴霖促. pEventKick->sendMessage(); pGamePlayer->addEvent(pEventKick);#endif __END_CATCH}void CommonBillingPacketHandler::sendBillingRemainMessage(CommonBillingPacket* pPacket, GamePlayer* pGamePlayer) throw (Error){ __BEGIN_TRY#ifdef __GAME_SERVER__ char userStatus[10]; memcpy( userStatus, pPacket->User_Status, 2 ); userStatus[2] = '\0'; char billMethod[10]; memcpy(billMethod, pPacket->Bill_Method, 2); billMethod[2]='\0'; StringStream msg; msg << "蜡丰 辑厚胶 荤侩 啊瓷 "; // PC 规 荤侩磊老 版快 if ( strcmp( userStatus, "PM" ) == 0 ) { msg << "[PC规]"; } // 巢篮 朝 荐甫 免仿窍绰 版快 else if (strcmp(billMethod,"FM")==0 || strcmp(billMethod,"FD")==0) // 巢篮 朝 荐 { char expireDate[20]; memcpy(expireDate, pPacket->Expire_Date, 12); expireDate[12]='\0'; string sExpireDate( expireDate ); VSDateTime vsdtExpireDate = VSDateTime::fromYYYYMMDDHHMMSS( sExpireDate ); VSDateTime currentDateTime = VSDateTime::currentDateTime(); int day = currentDateTime.daysTo( vsdtExpireDate ); #ifdef __COUT_BILLING_SYSTEM__ cout << "[" << pPacket->User_ID << "] ExpireDateTime : " << vsdtExpireDate.toString() << " CurrentDateTime : " << currentDateTime.toString() << " Remain Days : " << day << endl; #endif //int day = pPacket->Remain_Time; if ( day == 0 && currentDateTime.date() == vsdtExpireDate.date() ) { msg << "扁埃篮 坷疵鳖瘤 涝聪促"; } else { msg << "扁埃捞 " << (day==0?1:day) << "老 巢疽嚼聪促."; } // 白规 捞侩磊捞促. // 皋矫瘤 免仿救茄促. if ( sExpireDate.size() < 7 ) { filelog(LOGFILE_BILLING_PLAYER, "LoginRemain: (%s, Netmarble PCRoom)", pPacket->User_ID); return; } filelog(LOGFILE_BILLING_PLAYER, "LoginRemain: (%s, %d day)", pPacket->User_ID, day); } // 巢篮 矫埃阑 免仿窍绰 版快 else if (strcmp(billMethod,"TH")==0) // 巢篮 矫埃 { // 巢篮 矫埃 公炼扒 茄锅 免仿 int sec = pPacket->Remain_Time; int hour = sec/3600; int min = (sec-(hour*3600))/60; msg << "矫埃捞 "; if (hour>0) { msg << hour << "矫埃 "; } msg << min << "盒 巢疽嚼聪促."; filelog(LOGFILE_BILLING_PLAYER, "LoginRemain: (%s, %dh %dm)", pPacket->User_ID, hour, min); } #ifdef __COUT_BILLING_SYSTEM__ cout << "[" << pPacket->User_ID << "] " << msg.toString().c_str() << endl; #endif sendSystemMessage(pGamePlayer, msg.toString());#endif __END_CATCH}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -