本文整理汇总了C++中MapCell::HasPlayers方法的典型用法代码示例。如果您正苦于以下问题:C++ MapCell::HasPlayers方法的具体用法?C++ MapCell::HasPlayers怎么用?C++ MapCell::HasPlayers使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MapCell
的用法示例。
在下文中一共展示了MapCell::HasPlayers方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: SendChatMessageToCellPlayers
void MapMgr::SendChatMessageToCellPlayers(Object * obj, WorldPacket * packet, uint32 cell_radius, uint32 langpos, int32 lang, WorldSession * originator)
{
uint32 cellX = GetPosX(obj->GetPositionX());
uint32 cellY = GetPosY(obj->GetPositionY());
uint32 endX = ((cellX+cell_radius) <= _sizeX) ? cellX + cell_radius : (_sizeX-1);
uint32 endY = ((cellY+cell_radius) <= _sizeY) ? cellY + cell_radius : (_sizeY-1);
uint32 startX = (cellX-cell_radius) > 0 ? cellX - cell_radius : 0;
uint32 startY = (cellY-cell_radius) > 0 ? cellY - cell_radius : 0;
uint32 posX, posY;
MapCell *cell;
MapCell::ObjectSet::iterator iter, iend;
for (posX = startX; posX <= endX; ++posX )
{
for (posY = startY; posY <= endY; ++posY )
{
cell = GetCell(posX, posY);
if (cell && cell->HasPlayers() )
{
iter = cell->Begin();
iend = cell->End();
for(; iter != iend; ++iter)
{
if((*iter)->IsPlayer())
{
//static_cast< Player* >(*iter)->GetSession()->SendPacket(packet);
static_cast< Player* >(*iter)->GetSession()->SendChatPacket(packet, langpos, lang, originator);
}
}
}
}
}
}
示例2: _CellActive
bool MapMgr::_CellActive(uint32 x, uint32 y)
{
uint32 endX = ((x+1) <= _sizeX) ? x + 1 : (_sizeX-1);
uint32 endY = ((y+1) <= _sizeY) ? y + 1 : (_sizeY-1);
uint32 startX = x > 0 ? x - 1 : 0;
uint32 startY = y > 0 ? y - 1 : 0;
uint32 posX, posY;
MapCell *objCell;
for (posX = startX; posX <= endX; posX++ )
{
for (posY = startY; posY <= endY; posY++ )
{
objCell = GetCell(posX, posY);
if (objCell)
{
if (objCell->HasPlayers())
{
return true;
}
}
}
}
return false;
}
示例3: UnloadCell
void MapMgr::UnloadCell(uint32 x,uint32 y)
{
MapCell * c = GetCell(x,y);
if(c == NULL || c->HasPlayers() || _CellActive(x,y) || !c->IsUnloadPending()) return;
sLog.outDetail("Unloading Cell [%d][%d] on map %d (instance %d)...",
x,y,_mapId,m_instanceID);
c->Unload();
}
示例4: UnloadCell
void MapMgr::UnloadCell(uint32 x, uint32 y)
{
MapCell* c = GetCell(x, y);
if(c == NULL || c->HasPlayers() || _CellActive(x, y) || !c->IsUnloadPending()) return;
LOG_DETAIL("Unloading Cell [%u][%u] on map %u (instance %u)...",
x, y, _mapId, m_instanceID);
c->Unload();
}