From 170fae90849fe5c0321799fbffd61c052e011a6e Mon Sep 17 00:00:00 2001 From: wish Date: Tue, 15 Nov 2022 11:01:44 +1100 Subject: [PATCH] handle interception quest clear tracking --- server/channelserver/handlers_tactics.go | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/server/channelserver/handlers_tactics.go b/server/channelserver/handlers_tactics.go index d95d72ff2..0ab532856 100644 --- a/server/channelserver/handlers_tactics.go +++ b/server/channelserver/handlers_tactics.go @@ -10,10 +10,21 @@ import ( func handleMsgMhfGetUdTacticsPoint(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgMhfGetUdTacticsPoint) + personalPoints := make(map[uint16]int32) + var totalPoints int32 + var temp []byte + s.server.db.QueryRow(`SELECT interception_points FROM guild_characters WHERE id=$1`, s.charID).Scan(&temp) + json.Unmarshal(temp, &personalPoints) + for _, i := range personalPoints { + totalPoints += i + } bf := byteframe.NewByteFrame() bf.WriteBool(false) // Unk, will not update if true - bf.WriteUint32(0) - bf.WriteUint8(3) // Unk + bf.WriteInt32(totalPoints) + bf.WriteUint8(uint8(len(personalPoints))) + for i := range personalPoints { + bf.WriteUint16(i) + } doAckBufSucceed(s, pkt.AckHandle, bf.Data()) } @@ -31,7 +42,13 @@ func handleMsgMhfAddUdTacticsPoint(s *Session, p mhfpacket.MHFPacket) { } val, _ := json.Marshal(personalPoints) s.server.db.Exec(`UPDATE guild_characters SET interception_points=$1 WHERE id=$2`, val, s.charID) - doAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + bf := byteframe.NewByteFrame() + bf.WriteUint8(0) // Unk + bf.WriteUint8(uint8(len(personalPoints))) + for i := range personalPoints { + bf.WriteUint16(i) + } + doAckBufSucceed(s, pkt.AckHandle, bf.Data()) } func handleMsgMhfGetUdTacticsRewardList(s *Session, p mhfpacket.MHFPacket) {