void CGameServerDlg::Send_UnitRegion(Packet* pkt, C3DMap* pMap, int x, int z, CUser* pExceptUser, uint16 nEventRoom)
{
if (pMap == nullptr || pMap->m_nZoneNumber == 0)
return;
CRegion* pRegion = pMap->GetRegion(x, z);
if (pRegion == nullptr)
return;
pRegion->m_lockUserArray.lock();
if (pRegion->m_RegionUserArray.size() <= 0)
{
pRegion->m_lockUserArray.unlock();
return;
}
ZoneUserArray cm_RegionUserArray = pRegion->m_RegionUserArray;
pRegion->m_lockUserArray.unlock();
foreach(itr, cm_RegionUserArray)
{
if (cm_RegionUserArray.size() <= 0)
{
printf("cm_RegionUserArray [10] size = 0\n");
break;
}
CUser* pUser = GetUserPtr(*itr);
if (pUser == nullptr
|| pUser == pExceptUser
|| !pUser->isInGame())
continue;
if (nEventRoom >= 0 && nEventRoom != pUser->GetEventRoom())
continue;
pUser->Send(pkt);
}
}
#pragma endregion arkadaslar ilginiz için tesekkürler ilgili kısım burası