mirror of
https://github.com/SapphireServer/Sapphire.git
synced 2025-04-29 07:37:45 +00:00
maybe fix an issue where a container wouldn't get read properly
also some extra item crap
This commit is contained in:
parent
c5d06025a0
commit
3b37d14d64
9 changed files with 29 additions and 6 deletions
|
@ -344,6 +344,7 @@ enum ActorControlType : uint16_t
|
|||
RequestHousingItemUI = 0x463,
|
||||
RequestSharedEstateSettings = 0x46F,
|
||||
UpdateEstateLightingLevel = 0x471,
|
||||
HousingItemSelectedInUI = 0x47E,
|
||||
|
||||
CompanionAction = 0x6A4,
|
||||
CompanionSetBarding = 0x6A5,
|
||||
|
|
|
@ -42,7 +42,7 @@ struct FFXIVIpcClientTrigger :
|
|||
/* 0008 */ uint32_t param12;
|
||||
/* 000C */ uint32_t param2;
|
||||
/* 0010 */ uint32_t param4; // todo: really?
|
||||
/* 0014 */ char unk_14[4];
|
||||
/* 0014 */ uint32_t param5;
|
||||
/* 0018 */ uint64_t param3;
|
||||
};
|
||||
|
||||
|
|
|
@ -5,6 +5,7 @@ Sapphire::Inventory::HousingItem::HousingItem( uint64_t uId, uint32_t catalogId
|
|||
{
|
||||
m_stackSize = 1;
|
||||
m_spiritBond = 1;
|
||||
m_reservedFlag = 1092616192; // wat?
|
||||
}
|
||||
|
||||
uint16_t Sapphire::Inventory::HousingItem::getRot() const
|
||||
|
|
|
@ -13,7 +13,8 @@ Sapphire::Item::Item( uint64_t uId, uint32_t catalogId, bool isHq ) :
|
|||
m_isHq( isHq ),
|
||||
m_stain( 0 ),
|
||||
m_durability( 30000 ),
|
||||
m_spiritBond( 0 )
|
||||
m_spiritBond( 0 ),
|
||||
m_reservedFlag( 0 )
|
||||
{
|
||||
auto pExdData = g_fw.get< Data::ExdDataGenerated >();
|
||||
auto itemInfo = pExdData->get< Sapphire::Data::Item >( catalogId );
|
||||
|
@ -171,3 +172,13 @@ void Sapphire::Item::setSpiritbond( uint16_t spiritbond )
|
|||
{
|
||||
m_spiritBond = spiritbond;
|
||||
}
|
||||
|
||||
uint32_t Sapphire::Item::getReservedFlag() const
|
||||
{
|
||||
return m_reservedFlag;
|
||||
}
|
||||
|
||||
void Sapphire::Item::setReservedFlag( uint32_t flag )
|
||||
{
|
||||
m_reservedFlag = flag;
|
||||
}
|
|
@ -67,6 +67,9 @@ namespace Sapphire
|
|||
void setSpiritbond( uint16_t spiritbond );
|
||||
uint16_t getSpiritbond() const;
|
||||
|
||||
void setReservedFlag( uint32_t flag );
|
||||
uint32_t getReservedFlag() const;
|
||||
|
||||
|
||||
protected:
|
||||
uint32_t m_id;
|
||||
|
@ -93,6 +96,7 @@ namespace Sapphire
|
|||
uint16_t m_durability;
|
||||
uint16_t m_stain;
|
||||
uint16_t m_spiritBond;
|
||||
uint32_t m_reservedFlag;
|
||||
|
||||
uint32_t m_additionalData;
|
||||
|
||||
|
|
|
@ -851,9 +851,12 @@ void Sapphire::World::Manager::HousingMgr::sendEstateInventory( Entity::Player&
|
|||
return;
|
||||
|
||||
auto& containers = getEstateInventory( targetLand->getLandIdent() );
|
||||
auto needle = containers.find( inventoryType );
|
||||
if( needle == containers.end() )
|
||||
return;
|
||||
|
||||
auto invMgr = g_fw.get< Manager::InventoryMgr >();
|
||||
invMgr->sendInventoryContainer( player, containers[ inventoryType ] );
|
||||
invMgr->sendInventoryContainer( player, needle->second );
|
||||
}
|
||||
|
||||
const Sapphire::World::Manager::HousingMgr::LandSetLandCacheMap&
|
||||
|
@ -1430,7 +1433,7 @@ bool Sapphire::World::Manager::HousingMgr::removeExternalItem( Entity::Player& p
|
|||
}
|
||||
|
||||
terri.despawnYardObject( land.getLandIdent().landId, slotId );
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
@ -50,6 +50,7 @@ void Sapphire::World::Manager::InventoryMgr::sendInventoryContainer( Sapphire::E
|
|||
itemInfoPacket->data().catalogId = itM->second->getId();
|
||||
itemInfoPacket->data().condition = itM->second->getDurability();
|
||||
itemInfoPacket->data().spiritBond = itM->second->getSpiritbond();
|
||||
itemInfoPacket->data().reservedFlag = itM->second->getReservedFlag();
|
||||
itemInfoPacket->data().hqFlag = static_cast< uint8_t >( itM->second->isHq() ? 1 : 0 );
|
||||
itemInfoPacket->data().stain = itM->second->getStain();
|
||||
|
||||
|
|
|
@ -80,13 +80,15 @@ void Sapphire::Network::GameConnection::clientTriggerHandler( const Packets::FFX
|
|||
const auto param2 = packet.data().param2;
|
||||
const auto param3 = packet.data().param3;
|
||||
const auto param4 = packet.data().param4;
|
||||
const auto param5 = packet.data().param5;
|
||||
|
||||
pLog->debug( "[" + std::to_string( m_pSession->getId() ) + "] Incoming action: " +
|
||||
Util::intToHexString( static_cast< uint32_t >( commandId & 0xFFFF ), 4 ) +
|
||||
"\nparam1: " + Util::intToHexString( static_cast< uint64_t >( param1 & 0xFFFFFFFFFFFFFFF ), 16 ) +
|
||||
"\nparam2: " + Util::intToHexString( static_cast< uint32_t >( param2 & 0xFFFFFFFF ), 8 ) +
|
||||
"\nparam3: " + Util::intToHexString( static_cast< uint64_t >( param3 & 0xFFFFFFFFFFFFFFF ), 16 ) +
|
||||
"\nparam4: " + Util::intToHexString( static_cast< uint32_t >( param4 & 0xFFFFFFFF ), 8 )
|
||||
"\nparam4: " + Util::intToHexString( static_cast< uint32_t >( param4 & 0xFFFFFFFF ), 8 ) +
|
||||
"\nparam5: " + Util::intToHexString( static_cast< uint32_t >( param5 & 0xFFFFFFFF ), 8 )
|
||||
);
|
||||
|
||||
|
||||
|
|
|
@ -29,7 +29,7 @@ namespace Sapphire::Network::Packets::Server
|
|||
m_data.slot = slot;
|
||||
m_data.quantity = item.getStackSize();
|
||||
m_data.catalogId = item.getId();
|
||||
m_data.reservedFlag = 0; // no idea
|
||||
m_data.reservedFlag = item.getReservedFlag(); // no idea
|
||||
m_data.signatureId = 0;
|
||||
m_data.hqFlag = item.isHq() ? 1 : 0;
|
||||
m_data.condition = 60000; // 200%
|
||||
|
|
Loading…
Add table
Reference in a new issue