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

📄 cbillingplayer.cpp

📁 天之炼狱1服务器端源文件游戏服务端不完整
💻 CPP
📖 第 1 页 / 共 3 页
字号:
	if ( pCreature != NULL )	{		GamePlayer* pGamePlayer = dynamic_cast<GamePlayer*>(pCreature->getPlayer());		if ( pGamePlayer == NULL )		{			g_pPCFinder->unlock();			Assert( false );		}		// 沥樊力老 版快, 矫埃捞 倔付 巢疽促绊 焊咯霖促.		if ( body.Player_Type == CBILLING_PLAYER_TYPE_POINT )		{			int leftTime = body.Free_Left_Time + body.Rating_Left_Time;			if ( leftTime <= pGamePlayer->getCBLastShowLeftTime() )			{				char m[200];				sprintf( m, g_pStringPool->c_str( STRID_CB_LEFT_POINT ), leftTime / 10 );				GCSystemMessage msg;				msg.setMessage( m );				pGamePlayer->sendPacket( &msg );				// 促澜俊 焊咯 临 矫埃 汲沥				pGamePlayer->setCBLastShowLeftTime( leftTime - 30 );			}		}		if ( pGamePlayer->getCBPlayerType() != body.Player_Type )		{			if ( body.Player_Type == CBILLING_PLAYER_TYPE_POINT )			{				int leftTime = body.Free_Left_Time + body.Rating_Left_Time;				// point user 肺 官布促.				char m[200];				sprintf( m, g_pStringPool->c_str( STRID_CB_CHANGE_TO_POINT_PLAYER ), leftTime / 10 );				GCSystemMessage msg;				msg.setMessage( m );				pGamePlayer->sendPacket( &msg );			}			else if ( body.Player_Type == CBILLING_PLAYER_TYPE_MONTHLY )			{				// monthly user 肺 官布促.				char m[200];				sprintf( m, g_pStringPool->c_str( STRID_CB_CHANGE_TO_MONTHLY_PLAYER ) );				GCSystemMessage msg;				msg.setMessage( m );				pGamePlayer->sendPacket( &msg );			}			pGamePlayer->setCBPlayerType( body.Player_Type );		}	}	__LEAVE_CRITICAL_SECTION( (*g_pPCFinder) )#ifdef __COUT_CBILLING_SYSTEM__	cout << "----------------------------------------------------------------" << endl;	cout << "Response Minus Point : " << body.Login_Name << endl;	cout << header.toString().c_str() << endl;	cout << body.toString().c_str() << endl;#endif	filelog( LOGFILE_CBILLING_PACKET, "Response Minus Point : %s\n%s\n%s", body.Login_Name, header.toString().c_str(), body.toString().c_str() );	logPacket( &header, NULL, &body, NULL, NULL );	__END_CATCH}void CBillingPlayer::executeMinusMinute( CBillingPacketHeader& header, CBillingPacketResponseMinusMinuteBody& body )	throw ( IOException, Error ){	__BEGIN_TRY#ifdef __COUT_CBILLING_SYSTEM__	cout << "----------------------------------------------------------------" << endl;	cout << "Response Minus Minute : " << body.Login_Name << endl;	cout << header.toString().c_str() << endl;	cout << body.toString().c_str() << endl;#endif	filelog( LOGFILE_CBILLING_PACKET, "Response Minus Minute : %s\n%s\n%s", body.Login_Name, header.toString().c_str(), body.toString().c_str() );	__END_CATCH}void CBillingPlayer::executeLogout( CBillingPacketHeader& header, CBillingPacketResponseLogoutBody& body )	throw ( IOException, Error ){	__BEGIN_TRY#ifdef __COUT_CBILLING_SYSTEM__	cout << "----------------------------------------------------------------" << endl;	cout << "Response Logout OK : " << body.Login_Name << endl;	cout << header.toString().c_str() << endl;	cout << body.toString().c_str() << endl;#endif	filelog( LOGFILE_CBILLING_PACKET, "Response Logout OK : %s\n%s\n%s", body.Login_Name, header.toString().c_str(), body.toString().c_str() );	logPacket( &header, NULL, NULL, &body, NULL );	__END_CATCH}#endif#ifdef __GAME_SERVER__void CBillingPlayer::checkSessionID( CBillingPacketHeader& header, GamePlayer* pGamePlayer )	throw ( IOException, Error ){	__BEGIN_TRY	if ( pGamePlayer->increaseRecvID() != header.Session_ID )	{#ifdef __COUT_CBILLING_SYSTEM__		cerr << "******************************************************************" << endl;		cerr << "Session Fail : Recv ID = " << header.Session_ID << ", Respect ID = " << pGamePlayer->getRecvID() << endl;		cerr << header.toString().c_str() << endl;#endif		filelog( LOGFILE_CBILLING_ERROR, "Session Fail : RecvID = %d, Respect ID = %d\n%s", header.Session_ID, pGamePlayer->getRecvID(), header.toString().c_str() );	}	__END_CATCH}#endif#ifdef __GAME_SERVER__	// DB俊 packet 肺弊 巢扁扁void CBillingPlayer::logPacket( CBillingPacketHeader* header, CBillingPacketResponseLoginBody* login, CBillingPacketResponseMinusPointBody* point, CBillingPacketResponseLogoutBody* logout, CBillingPacketErrorBody* error )	throw ( Error ){	__BEGIN_TRY	Statement* pStmt = NULL;	BEGIN_DB	{		string playerID( "" );		string methodCode( "" );		string returnCode( "" );		string playerType( "NONE" );		string payType( "NONE" );		int freePayPoint = 0;		int freeLeftTime = 0;		int payPoint = 0;		int leftPayTime = 0;		VSDateTime endDateTime( "2004-01-01 00:00:00" );		switch ( header->Return_Code )		{			case CBILLING_RETURN_CODE_SUCCESS:			{				returnCode = "SUCCESS";				break;			}			case CBILLING_RETURN_CODE_FAIL:			{				returnCode = "FAIL";				break;			}			case CBILLING_RETURN_CODE_DB_ERROR:			{				returnCode = "DB_ERROR";				break;			}			case CBILLING_RETURN_CODE_INVALID_LOGIN_NAME:			{				returnCode = "INVALID_LOGIN_NAME";				break;			}			case CBILLING_RETURN_CODE_FAIL_MINUS_POINT:			{				returnCode = "FAIL_MINUS_POINT";				break;			}			case CBILLING_RETURN_CODE_FAIL_MINUS_MINUTE:			{				returnCode = "FAIL_MINUS_MINUTE";				break;			}			default:			{				throw Error( "Return Code Error" );				break;			}		}		switch ( header->Method_Code )		{			case CBILLING_METHOD_CODE_LOGIN:			{				methodCode = "LOGIN";				if ( header->Return_Code != CBILLING_RETURN_CODE_SUCCESS )				{					Assert( error != NULL );					playerID = error->Login_Name;					break;				}				Assert( login != NULL );				playerID = login->Login_Name;				endDateTime = VSDateTime::fromYYYYMMDDHHMMSS( login->End_Date_Time );				switch ( login->Player_Type )				{					case CBILLING_PLAYER_TYPE_UNLIMITED:					{						playerType = "UNLIMITED";						break;					}					case CBILLING_PLAYER_TYPE_LIMITED:					{						playerType = "LIMITED";						break;					}					case CBILLING_PLAYER_TYPE_MONTHLY:					{						playerType = "MONTHLY";						break;					}					case CBILLING_PLAYER_TYPE_POINT:					{						playerType = "POINT";						break;					}					default:					{						throw Error( "Player Type Error" );						break;					}				}								switch ( login->Pay_Type )				{					case CBILLING_PAY_TYPE_PRE_PAID:					{						payType = "PRE_PAID";						break;					}					case CBILLING_PAY_TYPE_POST_PAID:					{						payType = "POST_PAID";						break;					}					default:					{						throw Error( "Pay Type Error" );						break;					}				}				freeLeftTime = login->Free_Left_Time;				leftPayTime = login->Rating_Left_Time;				break;			}			case CBILLING_METHOD_CODE_MINUS_POINT:			{				methodCode = "MINUS_POINT";				if ( header->Return_Code != CBILLING_RETURN_CODE_SUCCESS )				{					Assert( error != NULL );					playerID = error->Login_Name;					break;				}				Assert( point != NULL );				playerID = point->Login_Name;				switch ( point->Player_Type )				{					case CBILLING_PLAYER_TYPE_UNLIMITED:					{						playerType = "UNLIMITED";						break;					}					case CBILLING_PLAYER_TYPE_LIMITED:					{						playerType = "LIMITED";						break;					}					case CBILLING_PLAYER_TYPE_MONTHLY:					{						playerType = "MONTHLY";						break;					}					case CBILLING_PLAYER_TYPE_POINT:					{						playerType = "POINT";						break;					}					default:					{						throw Error( "Player Type Error" );						break;					}				}								switch ( point->Pay_Type )				{					case CBILLING_PAY_TYPE_PRE_PAID:					{						payType = "PRE_PAID";						break;					}					case CBILLING_PAY_TYPE_POST_PAID:					{						payType = "POST_PAID";						break;					}					default:					{						throw Error( "Pay Type Error" );						break;					}				}				freeLeftTime = point->Free_Left_Time;				leftPayTime = point->Rating_Left_Time;				freePayPoint = point->Minus_Free_Point;				payPoint = point->Minus_Point;				break;			}			case CBILLING_METHOD_CODE_LOGOUT:			{				methodCode = "LOGOUT";				if ( header->Return_Code != CBILLING_RETURN_CODE_SUCCESS )				{					Assert( error != NULL );					playerID = error->Login_Name;					break;				}				Assert( logout != NULL );				playerID = logout->Login_Name;				freePayPoint = logout->Minus_Free_Point;				payPoint = logout->Minus_Point;				break;			}			default:			{				throw Error( "Method Code error" );				break;			}		}		pStmt = g_pDatabaseManager->getCBillingConnection( "CBILLING" )->createStatement();		Assert( pStmt != NULL );		pStmt->executeQuery( "INSERT INTO TB_BillingLog( DateTime, PlayerID, PacketType, ReturnCode, PlayerType, PayType, FreePayPoint, FreeLeftTime, PayPoint, LeftPayTime, EndDateTime ) VALUES ( NOW(), '%s', '%s', '%s', '%s', '%s', %d, %d, %d, %d, '%s' )",															playerID.c_str(), methodCode.c_str(), returnCode.c_str(), playerType.c_str(), payType.c_str(), freePayPoint, freeLeftTime, payPoint, leftPayTime, endDateTime.toDateTime().c_str() );		SAFE_DELETE( pStmt );	}	END_DB( pStmt )	__END_CATCH}#endif// get debug stringstring CBillingPlayer::toString() const	throw ( Error ){	__BEGIN_TRY	StringStream msg;	msg << "CBillingPlayer("		<< "SocketID:" << m_pSocket->getSOCKET()		<< ",Host:"<< m_pSocket->getHost()		<< ",ID:" << m_ID		<< ")";	return msg.toString();	__END_CATCH}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -