Untitled

mail@pastecode.io avatarunknown
plain_text
2 months ago
1.5 kB
1
Indexable
Never
 void World::SendAutoPickup(std::shared_ptr<NetAvatar> player, const int32_t& item_id, const CL_Vec2f& position) {
     auto* item = ItemManager::GetItem(item_id);
     if (!item)
         return;
     auto object_id = this->m_object_id++;
     {
         GameUpdatePacket packet{
             .m_type = NET_GAME_PACKET_ITEM_CHANGE_OBJECT,
             .m_object_change_type = OBJECT_CHANGE_TYPE_ADD,
             .m_item_net_id = -1,
             .m_obj_alt_count = static_cast<float>(1),
             .m_item_id = item_id
         };
         packet.m_pos_x = position.m_x, packet.m_pos_y = position.m_y;
         player->SendPacket(NET_MESSAGE_GAME_PACKET, &packet, sizeof(GameUpdatePacket));
     } {
         GameUpdatePacket packet{
             .m_type = NET_GAME_PACKET_ITEM_CHANGE_OBJECT,
             .m_object_change_type = OBJECT_CHANGE_TYPE_COLLECT,
             .m_item_net_id = -1,
             .m_obj_alt_count = static_cast<float>(1),
             .m_item_id = item_id
         };
         packet.m_net_id = player->GetNetId();
         packet.m_object_id = object_id;
         player->SendPacket(NET_MESSAGE_GAME_PACKET, &packet, sizeof(GameUpdatePacket));
     }
     std::string msg{ fmt::format("Collected `w1 {}``.", item->Name) };
     if (item->Rarity != 999)
         msg.append(fmt::format(" Rarity: `w{}``", item->Rarity));
     player->varFunc.OnConsoleMessage(msg);
     player->Backpack.Send();
 }