您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ BuildCreateUpdateBlockForPlayer函数代码示例

51自学网 2021-06-01 19:55:58
  C++
这篇教程C++ BuildCreateUpdateBlockForPlayer函数代码示例写得很实用,希望能帮到您。

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

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

示例1: BuildCreateUpdateBlockForPlayer

void Transport::UpdateForMap(Map const* targetMap){    Map::PlayerList const& pl = targetMap->GetPlayers();    if(pl.isEmpty())        return;    if(GetMapId()==targetMap->GetId())    {        for(Map::PlayerList::const_iterator itr = pl.begin(); itr != pl.end(); ++itr)        {            if(this != itr->getSource()->GetTransport())            {                UpdateData transData;                BuildCreateUpdateBlockForPlayer(&transData, itr->getSource());                WorldPacket packet;                transData.BuildPacket(&packet);                itr->getSource()->SendDirectMessage(&packet);            }        }    }    else    {        UpdateData transData;        BuildOutOfRangeUpdateBlock(&transData);        WorldPacket out_packet;        transData.BuildPacket(&out_packet);        for(Map::PlayerList::const_iterator itr = pl.begin(); itr != pl.end(); ++itr)            if(this != itr->getSource()->GetTransport())                itr->getSource()->SendDirectMessage(&out_packet);    }}
开发者ID:Splash,项目名称:mangos,代码行数:32,


示例2: BuildCreateUpdateBlockForPlayer

void Transport::UpdateForMap(Map const* targetMap){    Map::PlayerList const& pl = targetMap->GetPlayers();    if (pl.isEmpty())        return;    if (GetMapId() == targetMap->GetId())    {        for (const auto& itr : pl)        {            if (this != itr.getSource()->GetTransport())            {                UpdateData transData;                BuildCreateUpdateBlockForPlayer(&transData, itr.getSource());                WorldPacket packet;                transData.BuildPacket(packet);                itr.getSource()->SendDirectMessage(packet);            }        }    }    else    {        UpdateData transData;        BuildOutOfRangeUpdateBlock(&transData);        WorldPacket out_packet;        transData.BuildPacket(out_packet);        for (const auto& itr : pl)            if (this != itr.getSource()->GetTransport())                itr.getSource()->SendDirectMessage(out_packet);    }}
开发者ID:michalpolko,项目名称:cmangos,代码行数:32,


示例3: GetMap

bool Transport::TeleportTransport(uint32 newMapid, float x, float y, float z){    Map const* oldMap = GetMap();    if (oldMap->GetId() != newMapid)    {        Map* newMap = sMapMgr->CreateBaseMap(newMapid);        Map::PlayerList const& oldPlayers = GetMap()->GetPlayers();        if (!oldPlayers.isEmpty())        {            UpdateData data(GetMapId());            BuildOutOfRangeUpdateBlock(&data);            WorldPacket packet;            data.BuildPacket(&packet);            for (Map::PlayerList::const_iterator itr = oldPlayers.begin(); itr != oldPlayers.end(); ++itr)                if (itr->GetSource()->GetTransport() != this)                    itr->GetSource()->SendDirectMessage(&packet);        }        UnloadStaticPassengers();        GetMap()->RemoveFromMap<Transport>(this, false);        SetMap(newMap);        Map::PlayerList const& newPlayers = GetMap()->GetPlayers();        if (!newPlayers.isEmpty())        {            for (Map::PlayerList::const_iterator itr = newPlayers.begin(); itr != newPlayers.end(); ++itr)            {                if (itr->GetSource()->GetTransport() != this)                {                    UpdateData data(newMapid);                    BuildCreateUpdateBlockForPlayer(&data, itr->GetSource());                    WorldPacket packet;                    data.BuildPacket(&packet);                    itr->GetSource()->SendDirectMessage(&packet);                }            }        }        for (std::set<WorldObject*>::iterator itr = _passengers.begin(); itr != _passengers.end();)        {            WorldObject* obj = (*itr++);            float destX, destY, destZ, destO;            obj->m_movementInfo.transport.pos.GetPosition(destX, destY, destZ, destO);            TransportBase::CalculatePassengerPosition(destX, destY, destZ, &destO, x, y, z, GetOrientation());            switch (obj->GetTypeId())            {                case TYPEID_PLAYER:                    if (!obj->ToPlayer()->TeleportTo(newMapid, destX, destY, destZ, destO, TELE_TO_NOT_LEAVE_TRANSPORT))                        _passengers.erase(obj);                    break;                default:                    RemovePassenger(obj);                    break;            }        }        Relocate(x, y, z, GetOrientation());        GetMap()->AddToMap<Transport>(this);        return true;    }    else    {        UpdatePosition(x, y, z, GetOrientation());        return false;    }}
开发者ID:Caydan,项目名称:WoWSCore548,代码行数:69,


示例4: GetMap

bool Transport::TeleportTransport(uint32 newMapid, float x, float y, float z){    Map const* oldMap = GetMap();    if (oldMap->GetId() != newMapid)    {        Map* newMap = sMapMgr->CreateBaseMap(newMapid);        Map::PlayerList const& oldPlayers = GetMap()->GetPlayers();        if (!oldPlayers.isEmpty())        {            UpdateData data;            BuildOutOfRangeUpdateBlock(&data);            WorldPacket packet;            data.BuildPacket(&packet);            for (Map::PlayerList::const_iterator itr = oldPlayers.begin(); itr != oldPlayers.end(); ++itr)                if (itr->GetSource()->GetTransport() != this)                    itr->GetSource()->SendDirectMessage(&packet);        }        UnloadStaticPassengers();        GetMap()->RemoveFromMap<Transport>(this, false);        SetMap(newMap);        Map::PlayerList const& newPlayers = GetMap()->GetPlayers();        if (!newPlayers.isEmpty())        {            for (Map::PlayerList::const_iterator itr = newPlayers.begin(); itr != newPlayers.end(); ++itr)            {                if (itr->GetSource()->GetTransport() != this)                {                    UpdateData data;                    BuildCreateUpdateBlockForPlayer(&data, itr->GetSource());                    WorldPacket packet;                    data.BuildPacket(&packet);                    itr->GetSource()->SendDirectMessage(&packet);                }            }        }        for (std::set<WorldObject*>::iterator itr = _passengers.begin(); itr != _passengers.end();)        {            WorldObject* obj = (*itr++);            float destX, destY, destZ, destO;            obj->m_movementInfo.transport.pos.GetPosition(destX, destY, destZ, destO);            TransportBase::CalculatePassengerPosition(destX, destY, destZ, &destO, x, y, z, GetOrientation());            switch (obj->GetTypeId())            {                case TYPEID_UNIT:                    if (!IS_PLAYER_GUID(obj->ToUnit()->GetOwnerGUID()))  // pets should be teleported with player                        obj->ToCreature()->FarTeleportTo(newMap, destX, destY, destZ, destO);                    break;                case TYPEID_GAMEOBJECT:                {                    GameObject* go = obj->ToGameObject();                    go->GetMap()->RemoveFromMap(go, false);                    go->Relocate(destX, destY, destZ, destO);                    go->SetMap(newMap);                    newMap->AddToMap(go);                    break;                }                case TYPEID_PLAYER:                    if (!obj->ToPlayer()->TeleportTo(newMapid, destX, destY, destZ, destO, TELE_TO_NOT_LEAVE_TRANSPORT))                        _passengers.erase(obj);                    break;                default:                    break;            }        }        Relocate(x, y, z, GetOrientation());        GetMap()->AddToMap<Transport>(this);        return true;    }    else    {        // Teleport players, they need to know it        for (std::set<WorldObject*>::iterator itr = _passengers.begin(); itr != _passengers.end(); ++itr)        {            if ((*itr)->GetTypeId() == TYPEID_PLAYER)            {                float destX, destY, destZ, destO;                (*itr)->m_movementInfo.transport.pos.GetPosition(destX, destY, destZ, destO);                TransportBase::CalculatePassengerPosition(destX, destY, destZ, &destO, x, y, z, GetOrientation());                (*itr)->ToUnit()->NearTeleportTo(destX, destY, destZ, destO);            }        }        UpdatePosition(x, y, z, GetOrientation());        return false;    }}
开发者ID:MICHAL53Q,项目名称:TrinityCore,代码行数:94,



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


C++ BuildFieldsUpdate函数代码示例
C++ BuildCommDCB函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。