uint CGAskTeamMemberInfoHandler::Execute( CGAskTeamMemberInfo* pPacket, Player* pPlayer )
{
__ENTER_FUNCTION

	GamePlayer* pGamePlayer = (GamePlayer*)pPlayer;
	Assert( pGamePlayer );

	Obj_Human* pHuman = pGamePlayer->GetHuman();
	Assert( pHuman );

	Scene* pScene = pHuman->getScene();
	if( pScene==NULL )
	{
		Assert(FALSE);
		return PACKET_EXE_ERROR;
	}

	//检查线程执行资源是否正确
	Assert( MyGetCurrentThreadID()==pScene->m_ThreadID );

	Obj_Human* pDestHuman = pScene->GetHumanManager()->GetHuman( pPacket->getObjID() );
	if( (pDestHuman != NULL) && (pDestHuman->GetGUID() == pPacket->GetGUID()) )
	{
		GCTeamMemberInfo Msg;

		const _HUMAN_DB_LOAD* pDB = pDestHuman->GetDB()->GetHumanDB();

		Msg.setGUID(pPacket->GetGUID());
		Msg.SetFamily(pDestHuman->GetMenPai());
		Msg.SetLevel(pDestHuman->GetLevel());
		Msg.SetWorldPos(pDestHuman->getWorldPos());
		Msg.SetHP(pDestHuman->GetHP());
		Msg.SetMaxHP(pDestHuman->GetMaxHP());
		Msg.SetMP(pDestHuman->GetMP());
		Msg.SetMaxMP(pDestHuman->GetMaxMP());
		Msg.SetAnger(pDestHuman->GetRage());

		Msg.SetWeaponID( pDestHuman->GetEquipID(HEQUIP_MAINHAND) );
		Msg.SetAssihandID( pDestHuman->GetEquipID(HEQUIP_ASSIHAND) );

		Msg.SetScapularID( pDestHuman->GetEquipID(HEQUIP_SHOULDER) );
		Msg.SetCapID( pDestHuman->GetEquipID(HEQUIP_HEAD) );
		Msg.SetArmourID( pDestHuman->GetEquipID(HEQUIP_BACK) );
		Msg.SetCuffID( pDestHuman->GetEquipID(HEQUIP_HAND) );
		Msg.SetFootID( pDestHuman->GetEquipID(HEQUIP_FEET) );

		/*Msg.SetWeaponID( pDestHuman->GetEquipID(HEQUIP_WEAPON) );
		Msg.SetCapID( pDestHuman->GetEquipID(HEQUIP_CAP) );
		Msg.SetArmourID( pDestHuman->GetEquipID(HEQUIP_ARMOR) );
		Msg.SetCuffID( pDestHuman->GetEquipID(HEQUIP_CUFF) );
		Msg.SetFootID( pDestHuman->GetEquipID(HEQUIP_BOOT) );*/

		if( pDestHuman->GetPlayer()->IsDisconnect() )
		{
			Msg.SetDeadLink( TRUE );
		}
		else
		{
			Msg.SetDeadLink( FALSE );
		}

		if( pDestHuman->IsActiveObj() != TRUE )
		{
			Msg.SetDead( TRUE );
		}
		else
		{
			Msg.SetDead( FALSE );
		}

		Msg.SetFaceModel( pDestHuman->__GetFaceModel() );
		Msg.SetHairModel( pDestHuman->__GetHairModel() );
		Msg.SetHairColor( pDestHuman->__GetHairColor() );

		pGamePlayer->SendPacket( &Msg );

		g_pLog->FastSaveLog( LOG_FILE_1, "CGAskTeamMemberInfoHandler dealt: sObjID=%X dObjID=%X", 
			pHuman->GetID(), pPacket->getObjID() );

		return PACKET_EXE_CONTINUE;
	}

	// 从服务器请求具体数据,数据项包括玩家的 GUID、昵称、门派、等级、头像(在线、死亡状态)
	// 从这传回来的只有门派,等级,和在线状态
	GWAskTeamMemberInfo* pMsg = (GWAskTeamMemberInfo*)(g_pPacketFactoryManager->CreatePacket(PACKET_GW_ASKTEAMMEMBERINFO));

	pMsg->SetObjID( pGamePlayer->PlayerID() );
	pMsg->SetGUID( pPacket->GetGUID() );

	g_pServerManager->SendPacket( pMsg, INVALID_ID );

	g_pLog->FastSaveLog( LOG_FILE_1, "CGAskTeamMemberInfoHandler transmit to world: sObjID=%X dGUID=%X, wait get message from world.", 
		pHuman->GetID(), pPacket->GetGUID() );

	return PACKET_EXE_CONTINUE;

__LEAVE_FUNCTION

	return PACKET_EXE_ERROR;
}
uint WGTeamMemberInfoHandler::Execute( WGTeamMemberInfo* pPacket, Player* pPlayer )
{
__ENTER_FUNCTION

	PlayerID_t PlayerID = pPacket->GetPlayerID();
	GamePlayer* pGamePlayer = g_pPlayerPool->GetPlayer(PlayerID);
	if( pGamePlayer==NULL )
	{
		g_pLog->FastSaveLog( LOG_FILE_3, "WGTeamMemberInfoHandler::Execute pGamePlayer==NULL" );
		return PACKET_EXE_CONTINUE;
	}

	if (pGamePlayer->m_HumanGUID != pPacket->GetGUID())
	{
		g_pLog->FastSaveLog( LOG_FILE_3, "WGTeamMemberInfoHandler::Execute pGamePlayer->m_HumanGUID[%d] != pPacket->GetGUID()[%d]",pGamePlayer->m_HumanGUID, pPacket->GetGUID());
		return PACKET_EXE_CONTINUE;
	}

	Obj_Human* pHuman = pGamePlayer->GetHuman();
	Assert( pHuman );
	Scene* pScene = pHuman->getScene();
	if( !pScene )
	{
		g_pLog->FastSaveLog( LOG_FILE_3, "WGTeamMemberInfoHandler::Execute pHuman->getScene() == NULL" );
		return PACKET_EXE_CONTINUE;
	}

	if( pPlayer->IsServerPlayer() )
	{//服务器收到世界服务器发来的数据
		Assert( MyGetCurrentThreadID()==g_pServerManager->m_ThreadID );

		pScene->SendPacket( pPacket, PlayerID );

		g_pLog->FastSaveLog( LOG_FILE_1, "WGTeamMemberInfoHandler: ServerPlayer (GUID=%X) ",
			pPacket->GetGUID() );

		return PACKET_EXE_NOTREMOVE;
	}
	else if( pPlayer->IsGamePlayer() )
	{//场景收到Cache里的消息
		Assert( MyGetCurrentThreadID()==pScene->m_ThreadID );

		GCTeamMemberInfo Msg;

		Msg.setGUID( pPacket->GetGUID() );
		Msg.SetFamily( pPacket->GetFamily() );
		Msg.SetLevel( pPacket->GetLevel() );
		Msg.SetDead( FALSE ); // 不在同一个场景则默认是活的
		Msg.SetDeadLink( pPacket->GetDeadLinkFlag() );

		pGamePlayer->SendPacket( &Msg );

		g_pLog->FastSaveLog( LOG_FILE_1, "WGTeamMemberInfoHandler: GamePlayer (GUID=%X) ",
			pPacket->GetGUID() );
	}
	else
	{
		Assert(FALSE);
	}

	return PACKET_EXE_CONTINUE;

__LEAVE_FUNCTION

	return PACKET_EXE_ERROR;
}
示例#3
0
UINT WGTeamResultHandler::Execute( WGTeamResult* pPacket, Player* pPlayer )
{
__ENTER_FUNCTION

	PlayerID_t PlayerID = pPacket->GetPlayerID();
	GamePlayer* pGamePlayer = g_pPlayerPool->GetPlayer(PlayerID);
	if( pGamePlayer==NULL )
	{
		g_pLog->FastSaveLog( LOG_FILE_3, "WGTeamResultHandler::Execute pGamePlayer==NULL" );
		return PACKET_EXE_CONTINUE;
	}

	Obj_Human* pHuman = pGamePlayer->GetHuman();
	Assert( pHuman );
	Scene* pScene = pHuman->getScene();
	if( !pScene )
	{
		g_pLog->FastSaveLog( LOG_FILE_3, "WGTeamResultHandler::Execute pHuman->getScene() == NULL" );
		return PACKET_EXE_CONTINUE;
	}

	if( pPlayer->IsServerPlayer() )
	{//服务器收到世界服务器发来的数据
		Assert( MyGetCurrentThreadID()==g_pServerManager->m_ThreadID );

		pScene->SendPacket( pPacket, PlayerID );

		g_pLog->FastSaveLog( LOG_FILE_1, "WGTeamResultHandler: ServerPlayer (Return=%d, GUID=%X, TeamID=%d) ",
			pPacket->GetReturn(), pPacket->GetGUID(), pPacket->GetTeamID() );

		return PACKET_EXE_NOTREMOVE;
	}
	else if( pPlayer->IsGamePlayer() )
	{//场景收到Cache里的消息
		Assert( MyGetCurrentThreadID()==pScene->m_ThreadID );

		TeamInfo* pTeamInfo = pHuman->GetTeamInfo();
		GCTeamResult tMsg;
		BOOL bNotifyTeamInfoFlag = FALSE;
		tMsg.SetReturn( pPacket->GetReturn() );
		tMsg.SetGUID( pPacket->GetGUID() );
		tMsg.SetTeamID( pPacket->GetTeamID() );
		tMsg.SetGUIDEx( pPacket->GetGUIDEx() );
		tMsg.SetSceneID( pPacket->GetSceneID() );
		tMsg.SetIcon( pPacket->GetIcon() );
		tMsg.SetName( pPacket->GetName() );
		tMsg.SetDataID( pPacket->GetDataID() );

		switch( pPacket->GetReturn() )
		{
		case TEAM_RESULT_TEAMREFRESH:
		case TEAM_RESULT_MEMBERENTERTEAM:
			{
				if( !pTeamInfo->HasTeam() )
				{
					pTeamInfo->SetTeamID( pPacket->GetTeamID() );
					pHuman->GetDB()->SetDBTeamID( pPacket->GetTeamID() ) ;
					pTeamInfo->SetMySceneID( pScene->SceneID() );
					bNotifyTeamInfoFlag = TRUE;
				}

				TEAMMEMBER Member;
				Member.m_GUID = pPacket->GetGUID();
				Member.m_SceneID = pPacket->GetSceneID();

				if ( Member.m_GUID == pGamePlayer->m_HumanGUID )
				{
					Member.m_ObjID = pHuman->GetID();
				}
				else if ( Member.m_SceneID == pScene->SceneID() )
				{
					GamePlayer* ptempGamePlayer = g_pPlayerPool->GetPlayer(pPacket->GetGUIDEx());
					Obj_Human* ptempHuman;

					if ( ptempGamePlayer == NULL )
					{
						Assert(FALSE && "队友失去了连接。");
					}
					else if ( (ptempHuman = ptempGamePlayer->GetHuman()) == NULL )
					{
						Assert(FALSE && "队友找不到了……");
					}
					else
					{
						Member.m_ObjID = ptempHuman->GetID();
					}
				}
				else
				{
					Member.m_ObjID = INVALID_ID;
				}

				tMsg.SetGUIDEx( Member.m_ObjID ); // 将队友的 ObjID 发出去
				pTeamInfo->AddMember( &Member );

				if ( pTeamInfo->IsFull() )
				{
					bNotifyTeamInfoFlag = TRUE;
				}
			}
			break;
		case TEAM_RESULT_MEMBERLEAVETEAM:
		case TEAM_RESULT_TEAMKICK:
		case TEAM_RESULT_LEADERLEAVETEAM:
			{
				if ( pTeamInfo->IsFull() )
				{ // 队伍不再满
					bNotifyTeamInfoFlag = TRUE;
				}

				if ( pGamePlayer->m_HumanGUID == pPacket->GetGUID() )
				{ // 自己主动离队
					if ( pHuman->__GetTeamFollowFlag() )
					{
						pHuman->__StopTeamFollow(FALSE);
					}

					pTeamInfo->DisMiss();
					pHuman->GetDB()->SetDBTeamID( INVALID_ID ) ;

					bNotifyTeamInfoFlag = TRUE;
				}
				else
				{
					pTeamInfo->DelMember( pPacket->GetGUID() );

					if ( pPacket->GetReturn() == TEAM_RESULT_LEADERLEAVETEAM
					  && pTeamInfo->IsLeader() // 队长退队后,自己变成新队长
					  )
					{
						GCReturnTeamFollow Msg;
						Msg.SetReturn(TF_RESULT_STOP_FOLLOW);
						Msg.SetGUID(pHuman->GetGUID());
						pGamePlayer->SendPacket(&Msg);

						bNotifyTeamInfoFlag = TRUE;
					}
				}
			}
			break;
		case TEAM_RESULT_TEAMDISMISS:
			{
				if ( pTeamInfo->IsLeader() )
				{ // 自己是队长
					if ( pHuman->__GetTeamFollowFlag() )
					{
						pHuman->__StopTeamFollow(FALSE);
					}
				}

				pTeamInfo->DisMiss();
				pHuman->GetDB()->SetDBTeamID( INVALID_ID ) ;
				bNotifyTeamInfoFlag = TRUE;
			}
			break;
		case TEAM_RESULT_TEAMAPPOINT:
			{
				if ( pTeamInfo->IsLeader() )
				{ // 自己是队长
					if ( pHuman->__GetTeamFollowFlag() )
					{
						pHuman->__StopTeamFollow();
					}

					bNotifyTeamInfoFlag = TRUE;
				}

				pTeamInfo->Appoint( pPacket->GetGUIDEx() );

				if ( pTeamInfo->IsLeader() )
				{ // 自己是队长了
					bNotifyTeamInfoFlag = TRUE;
				}
			}
			break;
		case TEAM_RESULT_STARTCHANGESCENE:
			{
				pTeamInfo->StartChangeScene( pPacket->GetGUID() );
			}
			break;
		case TEAM_RESULT_ENTERSCENE:
			{
				if ( pPacket->GetGUID() == pGamePlayer->m_HumanGUID )
				{ // 自己进入
					pTeamInfo->EnterScene( pGamePlayer->m_HumanGUID, pScene->SceneID(),
											pHuman->GetID() );

					if ( pHuman->__GetTeamFollowFlag() )
					{
						_FOLLOWEDMEMBER FollowedMember;

						FollowedMember.m_GUID = pHuman->GetGUID();
						FollowedMember.m_pHuman = pHuman;
						pHuman->__AddFollowedMember( FollowedMember );
					}
				}
				else
				{
					ObjID_t oid;

					if ( pPacket->GetSceneID() == pScene->SceneID() )
					{
						GamePlayer* ptempGamePlayer = g_pPlayerPool->GetPlayer(pPacket->GetGUIDEx());
						Obj_Human* ptempHuman;

						if ( ptempGamePlayer == NULL )
						{
							Assert(FALSE && "队友失去了连接。");
						}
						else if ( (ptempHuman = ptempGamePlayer->GetHuman()) == NULL )
						{
							Assert(FALSE && "队友找不到了……");
						}
						else
						{
							oid = ptempHuman->GetID();

							if ( ptempHuman->__GetTeamFollowFlag() )
							{
								_FOLLOWEDMEMBER FollowedMember;

								FollowedMember.m_GUID = ptempHuman->GetGUID();
								FollowedMember.m_pHuman = ptempHuman;
								pHuman->__AddFollowedMember( FollowedMember );
							}
						}
					}
					else
					{
						oid = INVALID_ID;
					}

					pTeamInfo->EnterScene( pPacket->GetGUID(), pPacket->GetSceneID(), oid );
					tMsg.SetGUIDEx( oid );
				}
			}
			break;
		case TEAM_RESULT_MEMBEROFFLINE:
			{
				pTeamInfo->MemberOffLine( pPacket->GetGUID() );

				GCTeamMemberInfo tmInfoMsg;
				tmInfoMsg.setGUID( pPacket->GetGUID() );
				tmInfoMsg.SetDeadLink( TRUE );

				pGamePlayer->SendPacket( &tmInfoMsg );

				g_pLog->FastSaveLog( LOG_FILE_1, "WGTeamResultHandler: GUID=%X has lost connection.",
					pPacket->GetGUID() );
				return PACKET_EXE_CONTINUE;
			}
			break;
		default :
			{
				Assert(FALSE);
			}
			break;
		};

		pGamePlayer->SendPacket( &tMsg );

		if ( bNotifyTeamInfoFlag == TRUE )
		{
			GCNotifyTeamInfo notifyMsg;
			TeamInfo* pTeamInfo = pHuman->GetTeamInfo();

			notifyMsg.SetObjID( pHuman->GetID() );
			notifyMsg.SetHaveTeamFlag( pTeamInfo->HasTeam() );

			if ( pTeamInfo->HasTeam() )
			{
				notifyMsg.SetTeamLeaderFlag( pTeamInfo->IsLeader() );
				notifyMsg.SetTeamFullFlag( pTeamInfo->IsFull() );
			//	notifyMsg.SetTeamFollowFlag( pHuman->__GetTeamFollowFlag() );
			}
			else
			{
				notifyMsg.SetTeamLeaderFlag( FALSE );
				notifyMsg.SetTeamFullFlag( FALSE );
			//	notifyMsg.SetTeamFollowFlag( FALSE );
			}

			if ( pHuman->getZoneID() != INVALID_ID )
			{
				pScene->BroadCast( &notifyMsg, pHuman );
			}

			g_pLog->FastSaveLog( LOG_FILE_1, "BroadCast GCNotifyTeamInfo..............." );
		}

		g_pLog->FastSaveLog( LOG_FILE_1, "WGTeamResultHandler: GamePlayer (Return=%d, to:%d, GUID=%ld, TeamID=%d, GUIDEx=%X, SceneID=%d) ",
			pPacket->GetReturn(), pPacket->GetPlayerID(), pPacket->GetGUID(), pPacket->GetTeamID(), pPacket->GetGUIDEx(), pPacket->GetSceneID() );
	}
	else
	{
		Assert(FALSE);
	}

	return PACKET_EXE_CONTINUE;

__LEAVE_FUNCTION

	return PACKET_EXE_ERROR;
}
VOID Obj_Human::SyncTeamMemberInfo( )
{
__ENTER_FUNCTION

	const TeamInfo* pTeamInfo;

	pTeamInfo = GetTeamInfo();
	if ( pTeamInfo == NULL )
	{ // 出问题了
		Assert(FALSE);
		return;
	}

	if ( pTeamInfo->HasTeam() == FALSE )
	{ // 没有组队
		return;
	}

	if ( pTeamInfo->GetSceneMemberCount() < 1 )
	{ // 没有队友在同场景
		return;
	}

	GCTeamMemberInfo msgTeamMember;

	msgTeamMember.setGUID( GetGUID() );

	if ( m_SyncTeamMemberInfo.m_uFamily != GetMenPai())
	{
		m_SyncTeamMemberInfo.m_uFamily = GetMenPai();
		msgTeamMember.SetFamily( GetMenPai() );
	}

	if ( m_SyncTeamMemberInfo.m_uLevel != GetLevel() )
	{
		m_SyncTeamMemberInfo.m_uLevel = GetLevel();
		msgTeamMember.SetLevel( GetLevel() );
	}

	if ( m_SyncTeamMemberInfo.m_WorldPos.m_fX != getWorldPos()->m_fX
	  || m_SyncTeamMemberInfo.m_WorldPos.m_fZ != getWorldPos()->m_fZ
	  )
	{
		m_SyncTeamMemberInfo.m_WorldPos.m_fX = getWorldPos()->m_fX;
		m_SyncTeamMemberInfo.m_WorldPos.m_fZ = getWorldPos()->m_fZ;

		msgTeamMember.SetWorldPos( &(m_SyncTeamMemberInfo.m_WorldPos) );
	}

	if ( m_SyncTeamMemberInfo.m_uMaxHP != GetMaxHP() )
	{
		m_SyncTeamMemberInfo.m_uMaxHP = GetMaxHP();
		msgTeamMember.SetMaxHP( GetMaxHP() );
	}

	if ( m_SyncTeamMemberInfo.m_nHP != GetHP() )
	{
		m_SyncTeamMemberInfo.m_nHP = GetHP();
		msgTeamMember.SetHP( GetHP() );
	}

	if ( m_SyncTeamMemberInfo.m_uMaxMP != GetMaxMP() )
	{
		m_SyncTeamMemberInfo.m_uMaxMP = GetMaxMP();
		msgTeamMember.SetMaxMP( GetMaxMP() );
	}

	if ( m_SyncTeamMemberInfo.m_nMP != GetMP() )
	{
		m_SyncTeamMemberInfo.m_nMP = GetMP();
		msgTeamMember.SetMP( GetMP() );
	}

	if ( m_SyncTeamMemberInfo.m_nAnger != GetRage() )
	{
		m_SyncTeamMemberInfo.m_nAnger = GetRage();
		msgTeamMember.SetAnger( GetRage() );
	}

	// 装备刷新
	UINT uWeaponID = GetEquipID( HEQUIP_WEAPON );
	if ( m_SyncTeamMemberInfo.m_WeaponID != uWeaponID )
	{
		m_SyncTeamMemberInfo.m_WeaponID = uWeaponID;
		msgTeamMember.SetWeaponID( uWeaponID );
	}

	UINT uCapID = GetEquipID( HEQUIP_CAP );
	if ( m_SyncTeamMemberInfo.m_CapID != uCapID )
	{
		m_SyncTeamMemberInfo.m_CapID = uCapID;
		msgTeamMember.SetCapID( uCapID );
	}

	UINT uArmourID = GetEquipID( HEQUIP_ARMOR );
	if ( m_SyncTeamMemberInfo.m_ArmourID != uArmourID )
	{
		m_SyncTeamMemberInfo.m_ArmourID = uArmourID;
		msgTeamMember.SetArmourID( uArmourID );
	}

	UINT uCuffID = GetEquipID( HEQUIP_CUFF );
	if ( m_SyncTeamMemberInfo.m_CuffID != uCuffID )
	{
		m_SyncTeamMemberInfo.m_CuffID = uCuffID;
		msgTeamMember.SetCuffID( uCuffID );
	}

	UINT uBootID = GetEquipID( HEQUIP_BOOT );
	if ( m_SyncTeamMemberInfo.m_FootID != uBootID )
	{
		m_SyncTeamMemberInfo.m_FootID = uBootID;
		msgTeamMember.SetFootID( GetEquipID( HEQUIP_BOOT ) );
	}

	BOOL bDeadFlag = IsDie();
	if ( m_SyncTeamMemberInfo.m_bDeadFlag != bDeadFlag )
	{
		m_SyncTeamMemberInfo.m_bDeadFlag = bDeadFlag;
		msgTeamMember.SetDead( bDeadFlag );
	}

	if ( m_SyncTeamMemberInfo.m_uFaceMeshID != __GetFaceModel() )
	{
		m_SyncTeamMemberInfo.m_uFaceMeshID = __GetFaceModel();
		msgTeamMember.SetFaceModel( __GetFaceModel() );
	}

	if ( m_SyncTeamMemberInfo.m_uHairMeshID != __GetHairModel() )
	{
		m_SyncTeamMemberInfo.m_uHairMeshID = __GetHairModel();
		msgTeamMember.SetHairModel( __GetHairModel() );
	}

	if ( m_SyncTeamMemberInfo.m_uHairColor != __GetHairColor() )
	{
		m_SyncTeamMemberInfo.m_uHairColor = __GetHairColor();
		msgTeamMember.SetHairColor( __GetHairColor() );
	}

	BOOL bMemberInfo = FALSE;
	BOOL bImpactInfo = FALSE;

	if ( msgTeamMember.GetFlags() != 0 )
	{ // 没有需要更新的信息
		bMemberInfo = TRUE;
	}

	// BUFF
	GCCharImpactListUpdate msgMemberImpactList;
	_IMPACT_LIST& rList = Impact_GetImpactList();

	if ( m_SyncTeamMemberInfo.m_SimpleImpactList != rList )
	{
		bImpactInfo = TRUE;
	}

	if ( bImpactInfo )
	{
		m_SyncTeamMemberInfo.m_SimpleImpactList.SetImpactList( &rList );

		msgMemberImpactList.SetOwnerID( GetID() );
		msgMemberImpactList.SetImpactList( rList );
	}


	if ( !bMemberInfo && !bImpactInfo )
	{ // 没有任何需要更新的信息
		return;
	}

	for( INT i=0; i<pTeamInfo->GetSceneMemberCount(); ++i )
	{
		Obj_Human* pRecvHuman;

		pRecvHuman = getScene()->GetHumanManager()->GetHuman( pTeamInfo->GetSceneMemberObjID(i) );

		if ( pRecvHuman != NULL )
		{
			Player* pRecvPlayer = pRecvHuman->GetPlayer();

			if ( pRecvPlayer != NULL )
			{
				if ( bMemberInfo )
				{
					pRecvPlayer->SendPacket( &msgTeamMember );
				}

				if ( bImpactInfo )
				{
					pRecvPlayer->SendPacket( &msgMemberImpactList );
				}
			}
		}
	}

__LEAVE_FUNCTION
}