From 2614f24a8e02bc392ef5072094fe784426e57477 Mon Sep 17 00:00:00 2001 From: Perize Date: Sat, 27 Jan 2018 14:52:14 +0900 Subject: [PATCH] MSQ guide packet def --- src/common/Network/PacketDef/Ipcs.h | 3 ++- .../Network/PacketDef/Zone/ServerZoneDef.h | 16 ++++++++++++- .../DebugCommand/DebugCommandHandler.cpp | 23 +++++++++++++++++++ 3 files changed, 40 insertions(+), 2 deletions(-) diff --git a/src/common/Network/PacketDef/Ipcs.h b/src/common/Network/PacketDef/Ipcs.h index 62dc2139..0f1ae42d 100644 --- a/src/common/Network/PacketDef/Ipcs.h +++ b/src/common/Network/PacketDef/Ipcs.h @@ -113,7 +113,8 @@ namespace Packets { QuestCompleteList = 0x017F, // updated 4.1 QuestFinish = 0x0180, // updated 4.1 - + MSQTrackerComplete = 0x0181, + MSQTrackerProgress = 0x0182, QuestTracker = 0x018D, // updated 4.1 ActorSpawn = 0x0190, // todo: split into playerspawn/actorspawn and use opcode 0x110/0x111 ActorFreeSpawn = 0x0191, // unchanged for sb diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index 53a5c50d..4d4ba3a0 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -1272,7 +1272,6 @@ struct FFXIVIpcMount : FFXIVIpcBasePacket uint32_t id; }; - struct FFXIVIpcActorGauge : FFXIVIpcBasePacket { uint8_t classJobId; @@ -1284,6 +1283,21 @@ struct FFXIVIpcPerformNote : FFXIVIpcBasePacket uint8_t data[32]; }; +struct FFXIVIpcMSQTrackerProgress : FFXIVIpcBasePacket +{ + uint32_t id; + uint32_t padding; +}; + +struct FFXIVIpcMSQTrackerComplete : FFXIVIpcBasePacket +{ + uint32_t id; + uint32_t padding1; + uint64_t padding2; + uint64_t padding3; + uint64_t padding4; // last 4 bytes is uint32_t but who cares +}; + } /* Server */ } /* Packets */ diff --git a/src/servers/sapphire_zone/DebugCommand/DebugCommandHandler.cpp b/src/servers/sapphire_zone/DebugCommand/DebugCommandHandler.cpp index 14d6f05e..5ad92c55 100644 --- a/src/servers/sapphire_zone/DebugCommand/DebugCommandHandler.cpp +++ b/src/servers/sapphire_zone/DebugCommand/DebugCommandHandler.cpp @@ -279,6 +279,29 @@ void Core::DebugCommandHandler::set( char * data, Entity::Player& player, boost: player.dismount(); player.mount( id ); } + else if ( subCommand == "msqguide" ) + { + int32_t id; + sscanf( params.c_str(), "%d", &id ); + + Network::Packets::ZoneChannelPacket< Network::Packets::Server::FFXIVIpcMSQTrackerProgress > msqPacket( + player.getId()); + msqPacket.data().id = id; + player.queuePacket( msqPacket ); + + player.sendDebug( "MSQ Guide updated " ); + } + else if ( subCommand == "msqdone") + { + int32_t id; + sscanf( params.c_str(), "%d", &id ); + + Network::Packets::ZoneChannelPacket< Network::Packets::Server::FFXIVIpcMSQTrackerComplete > msqPacket ( player.getId() ); + msqPacket.data().id = id; + player.queuePacket( msqPacket ); + + player.sendDebug( "MSQ Guide updated " ); + } else { player.sendUrgent( subCommand + " is not a valid SET command." );