1
Fork 0
mirror of https://github.com/SapphireServer/Sapphire.git synced 2025-04-30 16:17:46 +00:00

fix performing

This commit is contained in:
collett 2021-02-25 21:28:58 +09:00
parent b1ab980d01
commit 627cf93b4c
5 changed files with 21 additions and 5 deletions

View file

@ -756,6 +756,7 @@ namespace Sapphire::Common
BetweenAreas = 24,
BoundByDuty = 28,
Performing = 40,
WatchingCutscene = 50, // this is actually just a dummy, this id is different

View file

@ -277,7 +277,7 @@ namespace Sapphire::Network::Packets
//////////////////////////////////////////////////
DuelChallenge = 0x0277, // 4.2; this is responsible for opening the ui
PerformNote = 0x0286, // updated 4.3
PerformNote = 0x0248, // updated 5.45 hotfix
PrepareZoning = 0x01EE, // updated 5.45 hotfix
ActorGauge = 0x018E, // updated 5.45 hotfix
@ -415,7 +415,7 @@ namespace Sapphire::Network::Packets
UpdatePositionInstance = 0x034E, // updated 5.45 hotfix
PerformNoteHandler = 0x029B, // updated 4.3
PerformNoteHandler = 0x0336, // updated 5.45 hotfix
WorldInteractionHandler = 0x02E4, // updated 5.45 hotfix
Dive = 0x00F1, // updated 5.45 hotfix

View file

@ -1851,7 +1851,7 @@ namespace Sapphire::Network::Packets::Server
struct FFXIVIpcPerformNote : FFXIVIpcBasePacket< PerformNote >
{
uint8_t data[32];
uint8_t data[16];
};
struct FFXIVIpcHousingUpdateLandFlagsSlot : FFXIVIpcBasePacket< HousingUpdateLandFlagsSlot >

View file

@ -494,7 +494,22 @@ void Sapphire::Network::GameConnection::clientTriggerHandler( const Packets::FFX
player.sendDebug( "event battle p1: {0}, p11: {1}, p12: {2}, p2: {3}, p3: {4}, p4: {5}, p5: {6}", param1, param11, param12, param2, param3, param4, param5 );
break;
}
case ClientTriggerType::OpenPerformInstrumentUI:
{
//param11 = instrument, 0 = end
player.sendDebug( "perform: {}", param11 );
if( param11 == 0 )
{
player.sendToInRangeSet( makeActorControl( player.getId(), ActorControl::SetStatus, 1, 0, 0, 0 ), true );
player.unsetStateFlag( PlayerStateFlag::Performing );
}
else
{
player.sendToInRangeSet( makeActorControl( player.getId(), ActorControl::SetStatus, 16, param11, 0, 0 ), true );
player.setStateFlag( PlayerStateFlag::Performing );
}
break;
}
default:
{
Logger::debug( "[{0}] Unhandled action: {1:04X}", m_pSession->getId(), commandId );

View file

@ -607,7 +607,7 @@ void Sapphire::Network::GameConnection::performNoteHandler( const Packets::FFXIV
Entity::Player& player )
{
auto performPacket = makeZonePacket< FFXIVIpcPerformNote >( player.getId() );
memcpy( &performPacket->data().data[ 0 ], &inPacket.data[ 0x10 ], 32 );
memcpy( &performPacket->data().data[ 0 ], &inPacket.data[ 0x10 ], 16 );
player.sendToInRangeSet( performPacket );
}