当前位置: 首页>>代码示例>>C++>>正文


C++ PlayerMapType类代码示例

本文整理汇总了C++中PlayerMapType的典型用法代码示例。如果您正苦于以下问题:C++ PlayerMapType类的具体用法?C++ PlayerMapType怎么用?C++ PlayerMapType使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了PlayerMapType类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1:

void
ObjectAccessor::WorldObjectChangeAccumulator::Visit(PlayerMapType &m)
{
    for(PlayerMapType::iterator iter = m.begin(); iter != m.end(); ++iter)
        if(iter->getSource()->HaveAtClient(&i_object))
            ObjectAccessor::_buildPacket(iter->getSource(), &i_object, i_updateDatas);
}
开发者ID:Augustusak,项目名称:mangos,代码行数:7,代码来源:ObjectAccessor.cpp

示例2: SendPacket

void
MessageDistDeliverer::Visit(PlayerMapType &m)
{
    for (PlayerMapType::iterator iter = m.begin(); iter != m.end(); ++iter)
    {
        Player *target = iter->getSource();
        if (!target->InSamePhase(i_phaseMask))
            continue;

        if (target->GetExactDist2dSq(i_source) > i_distSq)
            continue;

        // Send packet to all who are sharing the player's vision
        if (!target->GetSharedVisionList().empty())
        {
            SharedVisionList::const_iterator i = target->GetSharedVisionList().begin();
            for (; i != target->GetSharedVisionList().end(); ++i)
                if ((*i)->m_seer == target)
                    SendPacket(*i);
        }

        if (target->m_seer == target || target->GetVehicle())
            SendPacket(target);
    }
}
开发者ID:Alluring,项目名称:TrinityCore,代码行数:25,代码来源:GridNotifiers.cpp

示例3: Visit

void DelayedUnitRelocation::Visit(PlayerMapType &m)
{
    for (PlayerMapType::iterator iter = m.begin(); iter != m.end(); ++iter)
    {
        Player * player = iter->getSource();
        WorldObject const *viewPoint = player->m_seer;

        if (!viewPoint->isNeedNotify(NOTIFY_VISIBILITY_CHANGED))
            continue;

        if (player != viewPoint && !viewPoint->IsPositionValid())
            continue;

        CellPair pair2(Trinity::ComputeCellPair(viewPoint->GetPositionX(), viewPoint->GetPositionY()));
        Cell cell2(pair2);
        //cell.SetNoCreate(); need load cells around viewPoint or player, that's why its commented

        PlayerRelocationNotifier relocate(*player);
        TypeContainerVisitor<PlayerRelocationNotifier, WorldTypeMapContainer > c2world_relocation(relocate);
        TypeContainerVisitor<PlayerRelocationNotifier, GridTypeMapContainer >  c2grid_relocation(relocate);

        cell2.Visit(pair2, c2world_relocation, i_map, *viewPoint, i_radius);
        cell2.Visit(pair2, c2grid_relocation, i_map, *viewPoint, i_radius);

        relocate.SendToSelf();
    }
}
开发者ID:Alluring,项目名称:TrinityCore,代码行数:27,代码来源:GridNotifiers.cpp

示例4:

void
ObjectMessageDeliverer::Visit(PlayerMapType &m)
{
    for(PlayerMapType::iterator iter=m.begin(); iter != m.end(); ++iter)
    {
        iter->second->GetSession()->SendPacket(i_message);
    }
}
开发者ID:Aion,项目名称:caldari,代码行数:8,代码来源:GridNotifiers.cpp

示例5:

void
ObjectMessageDeliverer::Visit(PlayerMapType &m)
{
    for(PlayerMapType::iterator iter=m.begin(); iter != m.end(); ++iter)
    {
        if(WorldSession* session = iter->getSource()->GetSession())
            session->SendPacket(i_message);
    }
}
开发者ID:mangos-rollback,项目名称:rollback,代码行数:9,代码来源:GridNotifiers.cpp

示例6: Visit

void CreatureRelocationNotifier::Visit(PlayerMapType &m) {
    for (PlayerMapType::iterator iter = m.begin(); iter != m.end(); ++iter) {
        Player * pl = iter->getSource();

        if (!pl->m_seer->isNeedNotify(NOTIFY_VISIBILITY_CHANGED))
            pl->UpdateVisibilityOf(&i_creature);

        CreatureUnitRelocationWorker(&i_creature, pl);
    }
}
开发者ID:BlueSellafield,项目名称:ArkCORE,代码行数:10,代码来源:GridNotifiers.cpp

示例7: Visit

void PlayerRelocationNotifier::Visit(PlayerMapType &m)
{
    for (PlayerMapType::iterator iter = m.begin(); iter != m.end(); ++iter)
    {
        Player* player = iter->GetSource();
        vis_guids.erase(player->GetGUID());
        i_player.UpdateVisibilityOf(player, i_data, i_visibleNow);
        player->UpdateVisibilityOf(&i_player); // this notifier with different Visit(PlayerMapType&) than VisibleNotifier is needed to update visibility of self for other players when we move (eg. stealth detection changes)
    }
}
开发者ID:Keader,项目名称:Sunwell,代码行数:10,代码来源:GridNotifiers.cpp

示例8: Visit

void MessageDelivererExcept::Visit(PlayerMapType &m)
{
    for(PlayerMapType::iterator it = m.begin(); it!= m.end(); ++it)
    {
        Player* player = it->getSource();
        if(!player->InSamePhase(i_phaseMask) || player == i_skipped_receiver)
            continue;

        if (WorldSession* session = player->GetSession())
            session->SendPacket(i_message);
    }
}
开发者ID:Nny,项目名称:Core,代码行数:12,代码来源:GridNotifiers.cpp

示例9:

void
VisibleChangesNotifier::Visit(PlayerMapType &m)
{
    for(PlayerMapType::iterator iter=m.begin(); iter != m.end(); ++iter)
    {
        Player* player = iter->getSource();
        if(player == &i_object)
            continue;

        player->UpdateVisibilityOf(player->GetViewPoint(),&i_object);
    }
}
开发者ID:Alexmangos,项目名称:mangos,代码行数:12,代码来源:GridNotifiers.cpp

示例10: BuildPacket

void
ObjectAccessor::WorldObjectChangeAccumulator::Visit(PlayerMapType &m)
{
    for(PlayerMapType::iterator iter = m.begin(); iter != m.end(); ++iter)
    {
        BuildPacket(iter->getSource());
        if (!iter->getSource()->GetSharedVisionList().empty())
        {
            SharedVisionList::const_iterator it = iter->getSource()->GetSharedVisionList().begin();
            for ( ; it != iter->getSource()->GetSharedVisionList().end(); ++it)
                BuildPacket(*it);
        }
    }
}
开发者ID:MilchBuby,项目名称:riboncore,代码行数:14,代码来源:ObjectAccessor.cpp

示例11: Visit

void DelayedUnitRelocation::Visit(PlayerMapType &m)
{
    for (PlayerMapType::iterator iter = m.begin(); iter != m.end(); ++iter)
    {
        Player* player = iter->GetSource();
        WorldObject const* viewPoint = player->m_seer;

        if (!viewPoint->isNeedNotify(NOTIFY_VISIBILITY_CHANGED))
            continue;

        if (player != viewPoint && !viewPoint->IsPositionValid())
            continue;

        PlayerRelocationNotifier relocate(*player);
        Cell::VisitAllObjects(viewPoint, relocate, i_radius, false);
        relocate.SendToSelf();
    }
}
开发者ID:m-uu,项目名称:ElunaTrinityWotlk,代码行数:18,代码来源:GridNotifiers.cpp

示例12: SendPacket

void
Deliverer::Visit(PlayerMapType &m)
{
    for (PlayerMapType::iterator iter = m.begin(); iter != m.end(); ++iter)
    {
        if (!i_dist || iter->getSource()->GetDistance(&i_source) <= i_dist)
        {
            // Send packet to all who are sharing the player's vision
            if (!iter->getSource()->GetSharedVisionList().empty())
            {
                SharedVisionList::const_iterator it = iter->getSource()->GetSharedVisionList().begin();
                for (; it != iter->getSource()->GetSharedVisionList().end(); ++it)
                    SendPacket(*it);
            }

            VisitObject(iter->getSource());
        }
    }
}
开发者ID:Zekom,项目名称:NeoCore,代码行数:19,代码来源:GridNotifiers.cpp

示例13: Visit

void PlayerNotifier::Visit(PlayerMapType &m)
{
    BuildForMySelf();

    for(std::map<OBJECT_HANDLE, Player *>::iterator iter=m.begin(); iter != m.end(); ++iter)
    {
        if( iter->second == &i_player )
            continue;

        if( i_player.isAlive() && iter->second->isAlive() ||
            i_player.isDead() && iter->second->isDead() )
        {
            if (iter->second->isVisibleFor(&i_player,false))
                iter->second->SendUpdateToPlayer(&i_player);
            if (i_player.isVisibleFor(iter->second,false))
                i_player.SendUpdateToPlayer(iter->second);
        }
        else
        {
            i_player.DestroyForPlayer(iter->second);
            iter->second->DestroyForPlayer(&i_player);
        }
    }
}
开发者ID:Aion,项目名称:caldari,代码行数:24,代码来源:GridNotifiers.cpp

示例14: Visit

void PlayerRelocationNotifier::Visit(PlayerMapType &m)
{
    for (PlayerMapType::iterator iter = m.begin(); iter != m.end(); ++iter)
    {
        Player* player = iter->getSource();

        vis_guids.erase(player->GetGUID());

        i_player.UpdateVisibilityOf(player, i_data, i_visibleNow);

        if (i_data.IsFull())
        {
            WorldPacket packet;
            i_data.BuildPacket(&packet);
            i_player.GetSession()->SendPacket(&packet);
            i_data = UpdateData(i_player.GetMapId());
        }

        if (player->m_seer->isNeedNotify(NOTIFY_VISIBILITY_CHANGED))
            continue;

        player->UpdateVisibilityOf(&i_player);
    }
}
开发者ID:Adeer,项目名称:Patchs,代码行数:24,代码来源:GridNotifiers.cpp

示例15: Visit

void DynamicObjectUpdater::Visit(PlayerMapType &m)
{
    for (PlayerMapType::iterator itr=m.begin(); itr != m.end(); ++itr)
        VisitHelper(itr->getSource());
}
开发者ID:Blumfield,项目名称:TBCPvP,代码行数:5,代码来源:GridNotifiers.cpp


注:本文中的PlayerMapType类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。