コード例 #1
0
void VisibleChangesNotifier::Visit(CameraMapType& m)
{
    for (CameraMapType::iterator iter = m.begin(); iter != m.end(); ++iter)
    {
        iter->getSource()->UpdateVisibilityOf(&i_object);
    }
}
コード例 #2
0
ファイル: GridNotifiers.cpp プロジェクト: Phatcat/mangos
void MovementOpcodeDeliverer::Visit(CameraMapType& m)
{
    for (auto iter = m.begin(); iter != m.end(); ++iter)
    {
            Camera* pCamera = iter->getSource();
            
            if (!pCamera)
                continue;

            
            Player* owner = pCamera->GetOwner();
                
            if (owner == i_skipped_receiver)
                continue;
            
            
            if (WorldSession* session = owner->GetSession())
            {
                WorldPacket data(i_received_movement->GetOpcode(), uint16(i_received_movement->size() + 2));
                data << i_mover_guid;             // write guid
                i_movement_info.Write(data);      // write data
                
                session->SendPacket(&data);
            }
    }
}
コード例 #3
0
ファイル: GridNotifiers.cpp プロジェクト: Calixa/murlocs_434
void MessageDistDeliverer::Visit(CameraMapType &m)
{
    for(CameraMapType::iterator iter=m.begin(); iter != m.end(); ++iter)
    {
        Player * owner = iter->getSource()->GetOwner();

        if ((i_toSelf || owner != &i_player) &&
            (!i_ownTeamOnly || owner->GetTeam() == i_player.GetTeam()) &&
            (!i_dist || iter->getSource()->GetBody()->IsWithinDist(&i_player,i_dist)))
        {
            if (!i_player.InSamePhase(iter->getSource()->GetBody()))
                continue;

            if (WorldSession* session = owner->GetSession())
            {
                if (session->IsPremiumActive() && i_message->GetOpcode() == SMSG_MESSAGECHAT &&
                    (i_message->contents()[0] == CHAT_MSG_SAY || i_message->contents()[0] == CHAT_MSG_YELL ||
                    i_message->contents()[0] == CHAT_MSG_EMOTE) &&
                    (owner->GetTeam() == ALLIANCE && i_message->contents()[1] == LANG_ORCISH ||
                    owner->GetTeam() == HORDE && i_message->contents()[1] == LANG_COMMON))
                {
                    WorldPacket data(*i_message);
                    data.put<uint8>(1, uint8(LANG_UNIVERSAL));
                    session->SendPacket(&data);
                }
                else
                    session->SendPacket(i_message);
            }
        }
    }
}
コード例 #4
0
void ObjectMessageDeliverer::Visit(CameraMapType& m)
{
    for (CameraMapType::iterator iter = m.begin(); iter != m.end(); ++iter)
    {
        if (WorldSession* session = iter->getSource()->GetOwner()->GetSession())
            session->SendPacket(i_message);
    }
}
コード例 #5
0
ファイル: GridNotifiers.cpp プロジェクト: Blumfield/ptc2
void PacketBroadcaster::Visit(CameraMapType& m)
{
    for (CameraMapType::iterator iter = m.begin(); iter != m.end(); ++iter)
    {
        if (_dist && !_source.IsWithinDist(iter->getSource()->GetBody(), _dist))
            continue;

        BroadcastPacketTo(iter->getSource()->GetOwner());
    }
}
コード例 #6
0
void ObjectMessageDistDeliverer::Visit(CameraMapType& m)
{
    for (CameraMapType::iterator iter = m.begin(); iter != m.end(); ++iter)
    {
        if (!i_dist || iter->getSource()->GetBody()->IsWithinDist(&i_object, i_dist))
        {
            if (WorldSession* session = iter->getSource()->GetOwner()->GetSession())
                session->SendPacket(i_message);
        }
    }
}
コード例 #7
0
void MessageDelivererExcept::Visit(CameraMapType &m)
{
    for(CameraMapType::iterator it = m.begin(); it!= m.end(); ++it)
    {
        Player* player = it->getSource()->getOwner();
        if(!player->InSamePhase(i_phaseMask) || player == i_skipped_receiver)
            continue;

        if (WorldSession* session = player->GetSession())
            session->SendPacket(i_message);
    }
}
コード例 #8
0
void MessageDeliverer::Visit(CameraMapType& m)
{
    for (CameraMapType::iterator iter = m.begin(); iter != m.end(); ++iter)
    {
        Player* owner = iter->getSource()->GetOwner();

        if (i_toSelf || owner != &i_player)
        {
            if (WorldSession* session = owner->GetSession())
                session->SendPacket(i_message);
        }
    }
}
コード例 #9
0
void MessageDelivererExcept::Visit(CameraMapType& m)
{
    for (CameraMapType::iterator iter = m.begin(); iter != m.end(); ++iter)
    {
        Player* owner = iter->getSource()->GetOwner();

        if (owner == i_skipped_receiver)
            continue;

        if (WorldSession* session = owner->GetSession())
            session->SendPacket(i_message);
    }
}
コード例 #10
0
void MessageDistDeliverer::Visit(CameraMapType& m)
{
    for (CameraMapType::iterator iter = m.begin(); iter != m.end(); ++iter)
    {
        Player* owner = iter->getSource()->GetOwner();

        if ((i_toSelf || owner != &i_player) &&
                (!i_ownTeamOnly || owner->GetTeam() == i_player.GetTeam()) &&
                (!i_dist || iter->getSource()->GetBody()->IsWithinDist(&i_player, i_dist)))
        {
            if (WorldSession* session = owner->GetSession())
                session->SendPacket(i_message);
        }
    }
}
コード例 #11
0
void
MessageDeliverer::Visit(CameraMapType &m)
{
    for(CameraMapType::iterator iter=m.begin(); iter != m.end(); ++iter)
    {
        if (i_toSelf || iter->getSource()->getOwner() != &i_player)
        {
            if (!i_player.InSamePhase(iter->getSource()->getBody()))
                continue;

            if(WorldSession* session = iter->getSource()->getOwner()->GetSession())
                session->SendPacket(i_message);
        }
    }
}