Пример #1
0
//////////////////////////////////////////////////////////////////////////
// Function name   : SendToClientsExcept
// Description     : Sends a message to all clients except the one specified.
// Return type     : LTRESULT - LT_OK on success. Will stop on failure.
// Argument        : ILTMessage_Read& msg - message to send.
// Argument        : HCLIENT hExceptClient - The client to skip.
// Argument        : uint32 nFlags - message flags.
//////////////////////////////////////////////////////////////////////////
LTRESULT SendToClientsExcept( ILTMessage_Read& msg, HCLIENT hExceptClient, uint32 nFlags )
{
	ServerConnectionMgr::GameClientDataList::iterator iter = ServerConnectionMgr::Instance( ).GetGameClientDataList( ).begin( );
	for( ; iter != ServerConnectionMgr::Instance( ).GetGameClientDataList( ).end( ); iter++ )
	{
		GameClientData* pGameClientData = *iter;
		if( pGameClientData->GetClient() == hExceptClient )
			continue;

		LTRESULT hRes = g_pLTServer->SendToClient( &msg, pGameClientData->GetClient(), nFlags );
		if( hRes != LT_OK )
			return hRes;

		// Start over.
		msg.Seek( 0 );
	}

	return LT_OK;
}