1
Fork 0
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:
NotAdam 2018-12-28 17:12:24 +11:00
parent c5d06025a0
commit 3b37d14d64
9 changed files with 29 additions and 6 deletions

View file

@ -344,6 +344,7 @@ enum ActorControlType : uint16_t
RequestHousingItemUI = 0x463,
RequestSharedEstateSettings = 0x46F,
UpdateEstateLightingLevel = 0x471,
HousingItemSelectedInUI = 0x47E,
CompanionAction = 0x6A4,
CompanionSetBarding = 0x6A5,

View file

@ -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;
};

View file

@ -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

View file

@ -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;
}

View file

@ -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;

View file

@ -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;
}

View file

@ -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();

View file

@ -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 )
);

View file

@ -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%