From 0daf7b55d4985cd13ed8f34eb33168a5f50bffd3 Mon Sep 17 00:00:00 2001 From: SirFist Date: Mon, 2 Mar 2020 03:20:10 +0000 Subject: [PATCH] MsgMhfTransferItem Another post-quest packet that black screens without a response. --- network/mhfpacket/msg_mhf_transfer_item.go | 15 ++++++++++++--- server/channelserver/handlers.go | 5 ++++- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/network/mhfpacket/msg_mhf_transfer_item.go b/network/mhfpacket/msg_mhf_transfer_item.go index a3a957271..e941398ae 100644 --- a/network/mhfpacket/msg_mhf_transfer_item.go +++ b/network/mhfpacket/msg_mhf_transfer_item.go @@ -6,7 +6,14 @@ import ( ) // MsgMhfTransferItem represents the MSG_MHF_TRANSFER_ITEM -type MsgMhfTransferItem struct{} +type MsgMhfTransferItem struct{ + AckHandle uint32 + // looking at packets, these were static across sessions and did not actually + // correlate with any item IDs that would make sense to get after quests so + // I have no idea what this actually does + Unk0 uint32 + Unk1 uint32 +} // Opcode returns the ID associated with this packet type. func (m *MsgMhfTransferItem) Opcode() network.PacketID { @@ -15,10 +22,12 @@ func (m *MsgMhfTransferItem) Opcode() network.PacketID { // Parse parses the packet from binary func (m *MsgMhfTransferItem) Parse(bf *byteframe.ByteFrame) error { - panic("Not implemented") + m.AckHandle = bf.ReadUint32() + m.Unk0 = bf.ReadUint32() + m.Unk1 = bf.ReadUint32() } // Build builds a binary packet from the current data. func (m *MsgMhfTransferItem) Build(bf *byteframe.ByteFrame) error { panic("Not implemented") -} \ No newline at end of file +} diff --git a/server/channelserver/handlers.go b/server/channelserver/handlers.go index 18dada5e6..4dc02b491 100644 --- a/server/channelserver/handlers.go +++ b/server/channelserver/handlers.go @@ -1201,7 +1201,10 @@ func handleMsgMhfEnumerateItem(s *Session, p mhfpacket.MHFPacket) {} func handleMsgMhfAcquireItem(s *Session, p mhfpacket.MHFPacket) {} -func handleMsgMhfTransferItem(s *Session, p mhfpacket.MHFPacket) {} +func handleMsgMhfTransferItem(s *Session, p mhfpacket.MHFPacket) { + pkt := p.(*mhfpacket.MsgMhfEnumerateQuest) + s.QueueAck(pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}) +} func handleMsgMhfMercenaryHuntdata(s *Session, p mhfpacket.MHFPacket) {}