mirror of
https://github.com/SapphireServer/Sapphire.git
synced 2025-04-29 15:47:46 +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,
|
RequestHousingItemUI = 0x463,
|
||||||
RequestSharedEstateSettings = 0x46F,
|
RequestSharedEstateSettings = 0x46F,
|
||||||
UpdateEstateLightingLevel = 0x471,
|
UpdateEstateLightingLevel = 0x471,
|
||||||
|
HousingItemSelectedInUI = 0x47E,
|
||||||
|
|
||||||
CompanionAction = 0x6A4,
|
CompanionAction = 0x6A4,
|
||||||
CompanionSetBarding = 0x6A5,
|
CompanionSetBarding = 0x6A5,
|
||||||
|
|
|
@ -42,7 +42,7 @@ struct FFXIVIpcClientTrigger :
|
||||||
/* 0008 */ uint32_t param12;
|
/* 0008 */ uint32_t param12;
|
||||||
/* 000C */ uint32_t param2;
|
/* 000C */ uint32_t param2;
|
||||||
/* 0010 */ uint32_t param4; // todo: really?
|
/* 0010 */ uint32_t param4; // todo: really?
|
||||||
/* 0014 */ char unk_14[4];
|
/* 0014 */ uint32_t param5;
|
||||||
/* 0018 */ uint64_t param3;
|
/* 0018 */ uint64_t param3;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -5,6 +5,7 @@ Sapphire::Inventory::HousingItem::HousingItem( uint64_t uId, uint32_t catalogId
|
||||||
{
|
{
|
||||||
m_stackSize = 1;
|
m_stackSize = 1;
|
||||||
m_spiritBond = 1;
|
m_spiritBond = 1;
|
||||||
|
m_reservedFlag = 1092616192; // wat?
|
||||||
}
|
}
|
||||||
|
|
||||||
uint16_t Sapphire::Inventory::HousingItem::getRot() const
|
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_isHq( isHq ),
|
||||||
m_stain( 0 ),
|
m_stain( 0 ),
|
||||||
m_durability( 30000 ),
|
m_durability( 30000 ),
|
||||||
m_spiritBond( 0 )
|
m_spiritBond( 0 ),
|
||||||
|
m_reservedFlag( 0 )
|
||||||
{
|
{
|
||||||
auto pExdData = g_fw.get< Data::ExdDataGenerated >();
|
auto pExdData = g_fw.get< Data::ExdDataGenerated >();
|
||||||
auto itemInfo = pExdData->get< Sapphire::Data::Item >( catalogId );
|
auto itemInfo = pExdData->get< Sapphire::Data::Item >( catalogId );
|
||||||
|
@ -171,3 +172,13 @@ void Sapphire::Item::setSpiritbond( uint16_t spiritbond )
|
||||||
{
|
{
|
||||||
m_spiritBond = 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 );
|
void setSpiritbond( uint16_t spiritbond );
|
||||||
uint16_t getSpiritbond() const;
|
uint16_t getSpiritbond() const;
|
||||||
|
|
||||||
|
void setReservedFlag( uint32_t flag );
|
||||||
|
uint32_t getReservedFlag() const;
|
||||||
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
uint32_t m_id;
|
uint32_t m_id;
|
||||||
|
@ -93,6 +96,7 @@ namespace Sapphire
|
||||||
uint16_t m_durability;
|
uint16_t m_durability;
|
||||||
uint16_t m_stain;
|
uint16_t m_stain;
|
||||||
uint16_t m_spiritBond;
|
uint16_t m_spiritBond;
|
||||||
|
uint32_t m_reservedFlag;
|
||||||
|
|
||||||
uint32_t m_additionalData;
|
uint32_t m_additionalData;
|
||||||
|
|
||||||
|
|
|
@ -851,9 +851,12 @@ void Sapphire::World::Manager::HousingMgr::sendEstateInventory( Entity::Player&
|
||||||
return;
|
return;
|
||||||
|
|
||||||
auto& containers = getEstateInventory( targetLand->getLandIdent() );
|
auto& containers = getEstateInventory( targetLand->getLandIdent() );
|
||||||
|
auto needle = containers.find( inventoryType );
|
||||||
|
if( needle == containers.end() )
|
||||||
|
return;
|
||||||
|
|
||||||
auto invMgr = g_fw.get< Manager::InventoryMgr >();
|
auto invMgr = g_fw.get< Manager::InventoryMgr >();
|
||||||
invMgr->sendInventoryContainer( player, containers[ inventoryType ] );
|
invMgr->sendInventoryContainer( player, needle->second );
|
||||||
}
|
}
|
||||||
|
|
||||||
const Sapphire::World::Manager::HousingMgr::LandSetLandCacheMap&
|
const Sapphire::World::Manager::HousingMgr::LandSetLandCacheMap&
|
||||||
|
|
|
@ -50,6 +50,7 @@ void Sapphire::World::Manager::InventoryMgr::sendInventoryContainer( Sapphire::E
|
||||||
itemInfoPacket->data().catalogId = itM->second->getId();
|
itemInfoPacket->data().catalogId = itM->second->getId();
|
||||||
itemInfoPacket->data().condition = itM->second->getDurability();
|
itemInfoPacket->data().condition = itM->second->getDurability();
|
||||||
itemInfoPacket->data().spiritBond = itM->second->getSpiritbond();
|
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().hqFlag = static_cast< uint8_t >( itM->second->isHq() ? 1 : 0 );
|
||||||
itemInfoPacket->data().stain = itM->second->getStain();
|
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 param2 = packet.data().param2;
|
||||||
const auto param3 = packet.data().param3;
|
const auto param3 = packet.data().param3;
|
||||||
const auto param4 = packet.data().param4;
|
const auto param4 = packet.data().param4;
|
||||||
|
const auto param5 = packet.data().param5;
|
||||||
|
|
||||||
pLog->debug( "[" + std::to_string( m_pSession->getId() ) + "] Incoming action: " +
|
pLog->debug( "[" + std::to_string( m_pSession->getId() ) + "] Incoming action: " +
|
||||||
Util::intToHexString( static_cast< uint32_t >( commandId & 0xFFFF ), 4 ) +
|
Util::intToHexString( static_cast< uint32_t >( commandId & 0xFFFF ), 4 ) +
|
||||||
"\nparam1: " + Util::intToHexString( static_cast< uint64_t >( param1 & 0xFFFFFFFFFFFFFFF ), 16 ) +
|
"\nparam1: " + Util::intToHexString( static_cast< uint64_t >( param1 & 0xFFFFFFFFFFFFFFF ), 16 ) +
|
||||||
"\nparam2: " + Util::intToHexString( static_cast< uint32_t >( param2 & 0xFFFFFFFF ), 8 ) +
|
"\nparam2: " + Util::intToHexString( static_cast< uint32_t >( param2 & 0xFFFFFFFF ), 8 ) +
|
||||||
"\nparam3: " + Util::intToHexString( static_cast< uint64_t >( param3 & 0xFFFFFFFFFFFFFFF ), 16 ) +
|
"\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.slot = slot;
|
||||||
m_data.quantity = item.getStackSize();
|
m_data.quantity = item.getStackSize();
|
||||||
m_data.catalogId = item.getId();
|
m_data.catalogId = item.getId();
|
||||||
m_data.reservedFlag = 0; // no idea
|
m_data.reservedFlag = item.getReservedFlag(); // no idea
|
||||||
m_data.signatureId = 0;
|
m_data.signatureId = 0;
|
||||||
m_data.hqFlag = item.isHq() ? 1 : 0;
|
m_data.hqFlag = item.isHq() ? 1 : 0;
|
||||||
m_data.condition = 60000; // 200%
|
m_data.condition = 60000; // 200%
|
||||||
|
|
Loading…
Add table
Reference in a new issue