mirror of
https://github.com/SapphireServer/Sapphire.git
synced 2025-04-24 21:57:44 +00:00
Emotes can now be interrupted, getting in and out of persistant emotes including /sit should work fine, too #329
This commit is contained in:
parent
58efdbb519
commit
e9891a35c0
4 changed files with 18 additions and 0 deletions
|
@ -125,6 +125,7 @@ namespace Core {
|
|||
ActorFateOut1 = 0x110,
|
||||
|
||||
Emote = 0x122,
|
||||
EmoteInterrupt = 0x123,
|
||||
|
||||
SetPose = 0x127,
|
||||
|
||||
|
|
|
@ -1656,6 +1656,11 @@ void Core::Entity::Player::emote( uint32_t emoteId, uint64_t targetId, bool isSi
|
|||
emoteId, 0, isSilent ? 1 : 0, 0, targetId ) );
|
||||
}
|
||||
|
||||
void Core::Entity::Player::emoteInterrupt()
|
||||
{
|
||||
sendToInRangeSet( boost::make_shared< ActorControlPacket142 >( getId(), ActorControlType::EmoteInterrupt ) );
|
||||
}
|
||||
|
||||
void Core::Entity::Player::teleportQuery( uint16_t aetheryteId )
|
||||
{
|
||||
auto pExdData = g_fw.get< Data::ExdDataGenerated >();
|
||||
|
|
|
@ -508,6 +508,8 @@ public:
|
|||
bool isMarkedForZoning() const;
|
||||
|
||||
void emote( uint32_t emoteId, uint64_t targetId, bool isSilent );
|
||||
void emoteInterrupt();
|
||||
|
||||
|
||||
void sendZoneInPackets( uint32_t param1, uint32_t param2, uint32_t param3, uint32_t param4, bool pSetStatus );
|
||||
|
||||
|
|
|
@ -147,8 +147,18 @@ void Core::Network::GameConnection::clientTriggerHandler( const Packets::FFXIVAR
|
|||
player.emote( emoteId, targetId, isSilent );
|
||||
break;
|
||||
}
|
||||
case ClientTriggerType::EmoteCancel: // emote
|
||||
{
|
||||
player.emoteInterrupt();
|
||||
break;
|
||||
}
|
||||
case ClientTriggerType::PersistantEmoteCancel: // cancel persistant emote
|
||||
{
|
||||
player.emoteInterrupt();
|
||||
auto SetStatusPacket = boost::make_shared< ActorControlPacket142 >( player.getId(),
|
||||
SetStatus,
|
||||
static_cast< uint8_t >( Entity::Chara::ActorStatus::Idle ) );
|
||||
player.sendToInRangeSet( SetStatusPacket );
|
||||
break;
|
||||
}
|
||||
case ClientTriggerType::PoseChange: // change pose
|
||||
|
|
Loading…
Add table
Reference in a new issue