From b898614ddc985c34f66368a3ac32a96e1284cdea Mon Sep 17 00:00:00 2001 From: Andrew Gutekanst Date: Tue, 21 Jan 2020 20:21:12 -0500 Subject: [PATCH] Add MsgMhfCheckWeeklyStamp --- network/mhfpacket/msg_mhf_check_weekly_stamp.go | 15 ++++++++++++--- server/channelserver/handlers.go | 15 ++++++++++++++- 2 files changed, 26 insertions(+), 4 deletions(-) diff --git a/network/mhfpacket/msg_mhf_check_weekly_stamp.go b/network/mhfpacket/msg_mhf_check_weekly_stamp.go index d5f725a87..b748c74d7 100644 --- a/network/mhfpacket/msg_mhf_check_weekly_stamp.go +++ b/network/mhfpacket/msg_mhf_check_weekly_stamp.go @@ -6,7 +6,12 @@ import ( ) // MsgMhfCheckWeeklyStamp represents the MSG_MHF_CHECK_WEEKLY_STAMP -type MsgMhfCheckWeeklyStamp struct{} +type MsgMhfCheckWeeklyStamp struct { + AckHandle uint32 + Unk0 uint8 + Unk1 bool + Unk2 uint16 // Hardcoded 0 in the binary +} // Opcode returns the ID associated with this packet type. func (m *MsgMhfCheckWeeklyStamp) Opcode() network.PacketID { @@ -15,10 +20,14 @@ func (m *MsgMhfCheckWeeklyStamp) Opcode() network.PacketID { // Parse parses the packet from binary func (m *MsgMhfCheckWeeklyStamp) Parse(bf *byteframe.ByteFrame) error { - panic("Not implemented") + m.AckHandle = bf.ReadUint32() + m.Unk0 = bf.ReadUint8() + m.Unk1 = bf.ReadBool() + m.Unk2 = bf.ReadUint16() + return nil } // Build builds a binary packet from the current data. func (m *MsgMhfCheckWeeklyStamp) 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 88ed4d6ce..7c33400cd 100644 --- a/server/channelserver/handlers.go +++ b/server/channelserver/handlers.go @@ -651,7 +651,20 @@ func handleMsgMhfCheckMonthlyItem(s *Session, p mhfpacket.MHFPacket) {} func handleMsgMhfAcquireMonthlyItem(s *Session, p mhfpacket.MHFPacket) {} -func handleMsgMhfCheckWeeklyStamp(s *Session, p mhfpacket.MHFPacket) {} +func handleMsgMhfCheckWeeklyStamp(s *Session, p mhfpacket.MHFPacket) { + pkt := p.(*mhfpacket.MsgMhfCheckWeeklyStamp) + + resp := byteframe.NewByteFrame() + resp.WriteUint16(0x0100) + resp.WriteUint16(0x000E) + resp.WriteUint16(0x0001) + resp.WriteUint16(0x0000) + resp.WriteUint16(0x0001) + resp.WriteUint32(0) + resp.WriteUint32(0x5dddcbb3) // Timestamp + + s.QueueAck(pkt.AckHandle, resp.Data()) +} func handleMsgMhfExchangeWeeklyStamp(s *Session, p mhfpacket.MHFPacket) {}