mirror of
https://github.com/SapphireServer/Sapphire.git
synced 2025-04-27 14:57:44 +00:00
added equip models for examine (todo: main/sub/accessories)
- added stub for item crafter name request
This commit is contained in:
parent
e487a9ae24
commit
8d6ec91757
4 changed files with 44 additions and 6 deletions
|
@ -250,7 +250,7 @@ enum ClientTriggerType
|
||||||
|
|
||||||
ClearWaymarks = 0x13A,
|
ClearWaymarks = 0x13A,
|
||||||
CameraMode = 0x13B, // param12, 1 = camera mode enable, 0 = disable
|
CameraMode = 0x13B, // param12, 1 = camera mode enable, 0 = disable
|
||||||
|
CharaNameReq = 0x13D, // requests character name by content id
|
||||||
HuntingLogDetails = 0x194,
|
HuntingLogDetails = 0x194,
|
||||||
|
|
||||||
Timers = 0x1AB,
|
Timers = 0x1AB,
|
||||||
|
|
|
@ -136,7 +136,8 @@ enum ServerZoneIpcType :
|
||||||
PlayerStateFlags = 0x0184, // updated 4.3
|
PlayerStateFlags = 0x0184, // updated 4.3
|
||||||
PlayerClassInfo = 0x0185, // updated 4.3
|
PlayerClassInfo = 0x0185, // updated 4.3
|
||||||
ModelEquip = 0x0186, // updated 4.3
|
ModelEquip = 0x0186, // updated 4.3
|
||||||
Examine = 0x0187, // update 4.1
|
Examine = 0x0187, // updated 4.3
|
||||||
|
CharaNameReq = 0x0189, // updated 4.3
|
||||||
UpdateClassInfo = 0x018A, // updated 4.3
|
UpdateClassInfo = 0x018A, // updated 4.3
|
||||||
|
|
||||||
ItemInfo = 0x0190, // updated 4.3
|
ItemInfo = 0x0190, // updated 4.3
|
||||||
|
|
|
@ -988,14 +988,17 @@ struct FFXIVIpcExamine :
|
||||||
char level;
|
char level;
|
||||||
uint16_t padding;
|
uint16_t padding;
|
||||||
uint16_t titleId;
|
uint16_t titleId;
|
||||||
|
//char grandCompany;
|
||||||
|
//char grandCompanyRank;
|
||||||
|
|
||||||
char unknown[56];
|
char unknown[56];
|
||||||
struct ItemData
|
struct ItemData
|
||||||
{
|
{
|
||||||
uint32_t catalogId;
|
uint32_t catalogId;
|
||||||
uint32_t appearanceCatalogId;
|
uint32_t appearanceCatalogId;
|
||||||
uint64_t unknown2;
|
uint64_t crafterId;
|
||||||
uint32_t unknown3;
|
uint8_t quality;
|
||||||
|
uint8_t unknown[3];
|
||||||
struct Materia
|
struct Materia
|
||||||
{
|
{
|
||||||
uint16_t materiaId;
|
uint16_t materiaId;
|
||||||
|
@ -1007,8 +1010,15 @@ struct FFXIVIpcExamine :
|
||||||
char unk3[16];
|
char unk3[16];
|
||||||
char look[26];
|
char look[26];
|
||||||
char padding3[5];
|
char padding3[5];
|
||||||
//uint32_t models[10];
|
uint32_t models[10];
|
||||||
char unknown4[270];
|
char unknown4[200];
|
||||||
|
};
|
||||||
|
|
||||||
|
struct FFXIVIpcCharaNameReq :
|
||||||
|
FFXIVIpcBasePacket< CharaNameReq >
|
||||||
|
{
|
||||||
|
uint64_t contentId;
|
||||||
|
char name[32];
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -60,16 +60,27 @@ void examineHandler( Core::Entity::Player& player, uint32_t targetId )
|
||||||
packet->data().unkFlag1 = 4;
|
packet->data().unkFlag1 = 4;
|
||||||
packet->data().unkFlag2 = 1;
|
packet->data().unkFlag2 = 1;
|
||||||
packet->data().titleId = pPlayer->getTitle();
|
packet->data().titleId = pPlayer->getTitle();
|
||||||
|
|
||||||
//packet->data().grandCompany = 1;
|
//packet->data().grandCompany = 1;
|
||||||
//packet->data().grandCompanyRank = 2;
|
//packet->data().grandCompanyRank = 2;
|
||||||
memcpy( packet->data().look, pPlayer->getLookArray(), sizeof( packet->data().look ) );
|
memcpy( packet->data().look, pPlayer->getLookArray(), sizeof( packet->data().look ) );
|
||||||
|
packet->data().models[ 0 ] = pPlayer->getModelForSlot( Common::GearSetSlot::Head );
|
||||||
|
packet->data().models[ 1 ] = pPlayer->getModelForSlot( Common::GearSetSlot::Body );
|
||||||
|
packet->data().models[ 2 ] = pPlayer->getModelForSlot( Common::GearSetSlot::Hands );
|
||||||
|
packet->data().models[ 3 ] = pPlayer->getModelForSlot( Common::GearSetSlot::Legs );
|
||||||
|
packet->data().models[ 4 ] = pPlayer->getModelForSlot( Common::GearSetSlot::Feet );
|
||||||
|
|
||||||
|
// todo: main/sub/other stuff too
|
||||||
|
|
||||||
for( auto i = 0; i < Common::GearSetSlot::SoulCrystal + 1; ++i)
|
for( auto i = 0; i < Common::GearSetSlot::SoulCrystal + 1; ++i)
|
||||||
{
|
{
|
||||||
auto pItem = pPlayer->getItemAt( Common::InventoryType::GearSet0, i );
|
auto pItem = pPlayer->getItemAt( Common::InventoryType::GearSet0, i );
|
||||||
if( pItem )
|
if( pItem )
|
||||||
{
|
{
|
||||||
|
auto slot = static_cast< Common::GearSetSlot >( i );
|
||||||
auto& entry = packet->data().entries[i];
|
auto& entry = packet->data().entries[i];
|
||||||
entry.catalogId = pItem->getId();
|
entry.catalogId = pItem->getId();
|
||||||
|
entry.quality = pItem->isHq();
|
||||||
//entry.appearanceCatalogId = pItem->getGlamourId()
|
//entry.appearanceCatalogId = pItem->getGlamourId()
|
||||||
// todo: glamour/materia etc.
|
// todo: glamour/materia etc.
|
||||||
}
|
}
|
||||||
|
@ -183,6 +194,22 @@ void Core::Network::GameConnection::clientTriggerHandler( const Packets::FFXIVAR
|
||||||
player.updateHowtosSeen( howToId );
|
player.updateHowtosSeen( howToId );
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case ClientTriggerType::CharaNameReq:
|
||||||
|
{
|
||||||
|
uint64_t targetContentId = param1;
|
||||||
|
// todo: look up player by content id
|
||||||
|
/*
|
||||||
|
auto packet = makeZonePacket< FFXIVIpcCharaNameReq >( player.getId() );
|
||||||
|
packet->data().contentId = targetContentId;
|
||||||
|
|
||||||
|
// lookup the name
|
||||||
|
|
||||||
|
strcpy( packet->data().name, name );
|
||||||
|
|
||||||
|
player.queuePacket( packet );
|
||||||
|
*/
|
||||||
|
break;
|
||||||
|
}
|
||||||
case ClientTriggerType::EmoteReq: // emote
|
case ClientTriggerType::EmoteReq: // emote
|
||||||
{
|
{
|
||||||
uint64_t targetId = player.getTargetId();
|
uint64_t targetId = player.getTargetId();
|
||||||
|
|
Loading…
Add table
Reference in a new issue