⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 commonbillingpackethandler.cpp

📁 天之炼狱1服务器端源文件游戏服务端不完整
💻 CPP
📖 第 1 页 / 共 2 页
字号:
			{				// 漏扼具瞪 局寸.				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 + -