1
Fork 0
mirror of https://github.com/SapphireServer/Sapphire.git synced 2025-05-08 19:57:46 +00:00

Show default hit effect on autoattacks, also send 2nd hate packet

This commit is contained in:
Mordred 2019-04-30 22:54:35 +02:00
parent b4b5c59bfa
commit 6dbee16682
5 changed files with 23 additions and 2 deletions

View file

@ -131,7 +131,7 @@ namespace Sapphire::Network::Packets
ActorCast = 0x017C, // updated 4.5
PartyList = 0x017E, // updated 4.5
HateRank = 0x017F, // updated 4.5
HateList = 0x0180, // updated 4.5
ObjectSpawn = 0x0181, // updated 4.5
ObjectDespawn = 0x0182, // updated 4.5

View file

@ -719,6 +719,17 @@ namespace Sapphire::Network::Packets::Server
uint32_t padding;
};
struct FFXIVIpcHateRank : FFXIVIpcBasePacket< HateRank >
{
uint32_t numEntries;
struct
{
uint32_t actorId;
uint32_t hateAmount;
} entry[32];
uint32_t padding;
};
struct FFXIVIpcUpdateClassInfo : FFXIVIpcBasePacket< UpdateClassInfo >
{
uint8_t classId;

View file

@ -689,6 +689,7 @@ void Sapphire::Entity::BNpc::autoAttack( CharaPtr pTarget )
effectEntry.value = damage;
effectEntry.effectType = ActionEffectType::Damage;
effectEntry.hitSeverity = ActionHitSeverityType::NormalDamage;
effectEntry.param = 0x71;
effectPacket->addEffect( effectEntry );
sendToInRangeSet( effectPacket );

View file

@ -436,6 +436,7 @@ void Sapphire::Entity::Chara::autoAttack( CharaPtr pTarget )
effectEntry.value = damage;
effectEntry.effectType = ActionEffectType::Damage;
effectEntry.hitSeverity = ActionHitSeverityType::NormalDamage;
effectEntry.param = 0x71;
effectPacket->addEffect( effectEntry );
sendToInRangeSet( effectPacket );

View file

@ -1411,12 +1411,19 @@ void Sapphire::Entity::Player::sendHateList()
{
auto hateListPacket = makeZonePacket< FFXIVIpcHateList >( getId() );
hateListPacket->data().numEntries = m_actorIdTohateSlotMap.size();
auto hateRankPacket = makeZonePacket< FFXIVIpcHateRank >( getId() );
hateRankPacket->data().numEntries = m_actorIdTohateSlotMap.size();
auto it = m_actorIdTohateSlotMap.begin();
for( int32_t i = 0; it != m_actorIdTohateSlotMap.end(); ++it, i++ )
{
// TODO: get actual hate values for these
hateListPacket->data().entry[ i ].actorId = it->first;
hateListPacket->data().entry[ i ].hatePercent = 100;
hateRankPacket->data().entry[ i ].actorId = it->first;
hateRankPacket->data().entry[ i ].hateAmount = 1;
}
queuePacket( hateRankPacket );
queuePacket( hateListPacket );
}
@ -1571,7 +1578,7 @@ void Sapphire::Entity::Player::autoAttack( CharaPtr pTarget )
entry.value = damage;
entry.effectType = Common::ActionEffectType::Damage;
entry.hitSeverity = Common::ActionHitSeverityType::NormalDamage;
entry.param = variation;
entry.param = 0x72;
effectPacket->addEffect( entry );
@ -1586,6 +1593,7 @@ void Sapphire::Entity::Player::autoAttack( CharaPtr pTarget )
entry.value = damage;
entry.effectType = Common::ActionEffectType::Damage;
entry.hitSeverity = Common::ActionHitSeverityType::NormalDamage;
entry.param = 0x73;
effectPacket->addEffect( entry );