1
Fork 0
mirror of https://github.com/SapphireServer/Sapphire.git synced 2025-05-28 12:17:46 +00:00

Update EffectResult packet and send proper animation lock time.

This commit is contained in:
collett 2020-01-11 21:02:11 +09:00
parent 5d5763c74e
commit 0620aaa932
3 changed files with 6 additions and 2 deletions

View file

@ -439,7 +439,7 @@ namespace Sapphire::Network::Packets::Server
*/ */
struct FFXIVIpcEffectResult : FFXIVIpcBasePacket< EffectResult > struct FFXIVIpcEffectResult : FFXIVIpcBasePacket< EffectResult >
{ {
uint32_t unknown; uint32_t globalSequence;
uint32_t actor_id; uint32_t actor_id;
//uint8_t unknown1; //uint8_t unknown1;
//uint8_t unknown2; //uint8_t unknown2;

View file

@ -28,7 +28,7 @@ uint64_t EffectBuilder::getResultDelayMs()
{ {
// todo: actually figure this retarded shit out // todo: actually figure this retarded shit out
return Common::Util::getTimeMs() + 850; return Common::Util::getTimeMs() + 600;
} }
void EffectBuilder::moveToResultList( Entity::CharaPtr& chara, EffectResultPtr result ) void EffectBuilder::moveToResultList( Entity::CharaPtr& chara, EffectResultPtr result )
@ -176,6 +176,7 @@ std::shared_ptr< FFXIVPacketBase > EffectBuilder::buildNextEffectPacket( uint32_
pHeader->effectCount = static_cast< uint8_t >( remainingTargetCount > packetSize ? packetSize : remainingTargetCount ); pHeader->effectCount = static_cast< uint8_t >( remainingTargetCount > packetSize ? packetSize : remainingTargetCount );
pHeader->sourceSequence = m_sequence; pHeader->sourceSequence = m_sequence;
pHeader->globalSequence = globalSequence; pHeader->globalSequence = globalSequence;
pHeader->animationLockTime = 0.6f;
uint8_t targetIndex = 0; uint8_t targetIndex = 0;
for( auto it = m_resolvedEffects.begin(); it != m_resolvedEffects.end(); ) for( auto it = m_resolvedEffects.begin(); it != m_resolvedEffects.end(); )
@ -220,6 +221,7 @@ std::shared_ptr< FFXIVPacketBase > EffectBuilder::buildNextEffectPacket( uint32_
auto effectPacket = std::make_shared< Server::EffectPacket >( m_sourceChara->getId(), firstResult->getTarget()->getId(), m_actionId ); auto effectPacket = std::make_shared< Server::EffectPacket >( m_sourceChara->getId(), firstResult->getTarget()->getId(), m_actionId );
effectPacket->setRotation( Common::Util::floatToUInt16Rot( m_sourceChara->getRot() ) ); effectPacket->setRotation( Common::Util::floatToUInt16Rot( m_sourceChara->getRot() ) );
effectPacket->setSequence( seq, m_sequence ); effectPacket->setSequence( seq, m_sequence );
effectPacket->data().animationLockTime = 0.6f;
for( int i = 0; i < resultList->size(); i++ ) for( int i = 0; i < resultList->size(); i++ )
{ {
@ -247,6 +249,7 @@ std::shared_ptr< FFXIVPacketBase > EffectBuilder::buildNextEffectPacket( uint32_
effectPacket->data().effectCount = 0; effectPacket->data().effectCount = 0;
effectPacket->data().sourceSequence = m_sequence; effectPacket->data().sourceSequence = m_sequence;
effectPacket->data().globalSequence = globalSequence; effectPacket->data().globalSequence = globalSequence;
effectPacket->data().animationLockTime = 0.6f;
return effectPacket; return effectPacket;
} }

View file

@ -532,6 +532,7 @@ void Sapphire::Entity::Chara::addStatusEffect( StatusEffect::StatusEffectPtr pEf
auto statusEffectAdd = makeZonePacket< FFXIVIpcEffectResult >( getId() ); auto statusEffectAdd = makeZonePacket< FFXIVIpcEffectResult >( getId() );
statusEffectAdd->data().globalSequence = getCurrentTerritory()->getNextEffectSequence();
statusEffectAdd->data().actor_id = pEffect->getTargetActorId(); statusEffectAdd->data().actor_id = pEffect->getTargetActorId();
statusEffectAdd->data().current_hp = getHp(); statusEffectAdd->data().current_hp = getHp();
statusEffectAdd->data().current_mp = static_cast< uint16_t >( getMp() ); statusEffectAdd->data().current_mp = static_cast< uint16_t >( getMp() );