diff --git a/network/mhfpacket/msg_mhf_set_ca_achievement_hist.go b/network/mhfpacket/msg_mhf_set_ca_achievement_hist.go index a04d6b89f..0b4fad343 100644 --- a/network/mhfpacket/msg_mhf_set_ca_achievement_hist.go +++ b/network/mhfpacket/msg_mhf_set_ca_achievement_hist.go @@ -1,18 +1,24 @@ package mhfpacket -import ( - "errors" +import ( + "errors" - "erupe-ce/network/clientctx" - "erupe-ce/network" "erupe-ce/common/byteframe" + "erupe-ce/network" + "erupe-ce/network/clientctx" ) -// MsgMhfSetCaAchievementHist represents the MSG_MHF_SET_CA_ACHIEVEMENT_HIST -type MsgMhfSetCaAchievementHist struct{ - AckHandle uint32 +type CaAchievementHist struct { Unk0 uint32 - Unk1 uint32 + Unk1 uint8 +} + +// MsgMhfSetCaAchievementHist represents the MSG_MHF_SET_CA_ACHIEVEMENT_HIST +type MsgMhfSetCaAchievementHist struct { + AckHandle uint32 + Unk0 uint16 + Unk1 uint8 + Unk2 []CaAchievementHist } // Opcode returns the ID associated with this packet type. @@ -23,8 +29,14 @@ func (m *MsgMhfSetCaAchievementHist) Opcode() network.PacketID { // Parse parses the packet from binary func (m *MsgMhfSetCaAchievementHist) Parse(bf *byteframe.ByteFrame, ctx *clientctx.ClientContext) error { m.AckHandle = bf.ReadUint32() - m.Unk0 = bf.ReadUint32() - m.Unk1 = bf.ReadUint32() + m.Unk0 = bf.ReadUint16() + m.Unk1 = bf.ReadUint8() + for i := 0; i < int(m.Unk1); i++ { + var temp CaAchievementHist + temp.Unk0 = bf.ReadUint32() + temp.Unk1 = bf.ReadUint8() + m.Unk2 = append(m.Unk2, temp) + } return nil }