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

fix actorcast packet opcode, add new opcode

This commit is contained in:
NotAdam 2019-07-26 23:20:13 +10:00
parent 9c27d51d1f
commit 6c011baa02
2 changed files with 16 additions and 6 deletions

View file

@ -136,7 +136,9 @@ namespace Sapphire::Network::Packets
ActorSetPos = 0x0184, // updated 5.0 ActorSetPos = 0x0184, // updated 5.0
ActorCast = 0x0187, // updated 5.0 ActorCast = 0x0186, // updated 5.0
SomeCustomiseChangePacketProbably = 0x0187, // added 5.0
PartyList = 0x0188, // updated 5.0 PartyList = 0x0188, // updated 5.0
HateRank = 0x0189, // updated 5.0 HateRank = 0x0189, // updated 5.0

View file

@ -22,6 +22,7 @@
#include <Logging/Logger.h> #include <Logging/Logger.h>
#include <Util/ActorFilter.h> #include <Util/ActorFilter.h>
#include <Util/UtilMath.h>
using namespace Sapphire; using namespace Sapphire;
using namespace Sapphire::Common; using namespace Sapphire::Common;
@ -223,13 +224,20 @@ void Action::Action::start()
if( hasCastTime() ) if( hasCastTime() )
{ {
auto castPacket = makeWorldPacket< Server::FFXIVIpcActorCast >( getId() ); auto castPacket = makeWorldPacket< Server::FFXIVIpcActorCast >( getId() );
auto& data = castPacket->data();
castPacket->data().action_id = static_cast< uint16_t >( m_id ); data.action_id = static_cast< uint16_t >( m_id );
castPacket->data().skillType = Common::SkillType::Normal; data.skillType = Common::SkillType::Normal;
castPacket->data().unknown_1 = m_id; data.unknown_1 = m_id;
// This is used for the cast bar above the target bar of the caster. // This is used for the cast bar above the target bar of the caster.
castPacket->data().cast_time = m_castTimeMs / 1000.f; data.cast_time = m_castTimeMs / 1000.f;
castPacket->data().target_id = static_cast< uint32_t >( m_targetId ); data.target_id = static_cast< uint32_t >( m_targetId );
auto pos = m_pSource->getPos();
data.posX = Common::Util::floatToUInt16( pos.x );
data.posY = Common::Util::floatToUInt16( pos.y );
data.posZ = Common::Util::floatToUInt16( pos.z );
data.rotation = m_pSource->getRot();
m_pSource->sendToInRangeSet( castPacket, true ); m_pSource->sendToInRangeSet( castPacket, true );