From 67ea64cb662908dcd0e2cf2ca671bb04c50291c9 Mon Sep 17 00:00:00 2001 From: wish Date: Tue, 2 Aug 2022 15:38:18 +1000 Subject: [PATCH] fix raviente announcements --- network/mhfpacket/msg_mhf_announce.go | 36 ++++++++++------------ server/channelserver/sys_channel_server.go | 3 +- 2 files changed, 17 insertions(+), 22 deletions(-) diff --git a/network/mhfpacket/msg_mhf_announce.go b/network/mhfpacket/msg_mhf_announce.go index 70d348510..8e3971497 100644 --- a/network/mhfpacket/msg_mhf_announce.go +++ b/network/mhfpacket/msg_mhf_announce.go @@ -1,20 +1,20 @@ package mhfpacket import ( - "errors" + "errors" - "erupe-ce/network/clientctx" - "erupe-ce/network" "erupe-ce/common/byteframe" + "erupe-ce/network" + "erupe-ce/network/clientctx" ) // MsgMhfAnnounce represents the MSG_MHF_ANNOUNCE type MsgMhfAnnounce struct { - AckHandle uint32 - IPAddress uint32 - Port uint16 - StageID []byte - Type uint8 + AckHandle uint32 + IPAddress uint32 + Port uint16 + StageID []byte + Type uint8 } // Opcode returns the ID associated with this packet type. @@ -24,18 +24,14 @@ func (m *MsgMhfAnnounce) Opcode() network.PacketID { // Parse parses the packet from binary func (m *MsgMhfAnnounce) Parse(bf *byteframe.ByteFrame, ctx *clientctx.ClientContext) error { - m.AckHandle = bf.ReadUint32() - m.IPAddress = bf.ReadUint32() - m.Port = bf.ReadUint16() - _ = bf.ReadUint8() - _ = bf.ReadUint16() - m.StageID = bf.ReadNullTerminatedBytes() - for { - if bf.ReadUint8() != 0 { - m.Type = bf.ReadUint8() - break - } - } + m.AckHandle = bf.ReadUint32() + m.IPAddress = bf.ReadUint32() + m.Port = bf.ReadUint16() + _ = bf.ReadUint8() + _ = bf.ReadUint16() + m.StageID = bf.ReadBytes(32) + _ = bf.ReadUint32() + m.Type = bf.ReadUint8() return nil } diff --git a/server/channelserver/sys_channel_server.go b/server/channelserver/sys_channel_server.go index b03907f8b..6208ac3dd 100644 --- a/server/channelserver/sys_channel_server.go +++ b/server/channelserver/sys_channel_server.go @@ -351,8 +351,7 @@ func (s *Server) BroadcastRaviente(ip uint32, port uint16, stage []byte, _type u bf.WriteUint32(ip) // IP address bf.WriteUint16(port) // Port bf.WriteUint16(0) // Unk - bf.WriteNullTerminatedBytes(stage) - bf.WriteBytes(make([]byte, 17)) + bf.WriteBytes(stage) s.WorldcastMHF(&mhfpacket.MsgSysCastedBinary{ CharID: 0x00000000, BroadcastType: BroadcastTypeServer,