mirror of
https://github.com/Mezeporta/Erupe.git
synced 2025-12-14 07:55:33 +01:00
parse and stub various packets
This commit is contained in:
@@ -3,13 +3,18 @@ package mhfpacket
|
|||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
|
|
||||||
"erupe-ce/network/clientctx"
|
|
||||||
"erupe-ce/network"
|
|
||||||
"erupe-ce/common/byteframe"
|
"erupe-ce/common/byteframe"
|
||||||
|
"erupe-ce/network"
|
||||||
|
"erupe-ce/network/clientctx"
|
||||||
)
|
)
|
||||||
|
|
||||||
// MsgMhfCaravanMyRank represents the MSG_MHF_CARAVAN_MY_RANK
|
// MsgMhfCaravanMyRank represents the MSG_MHF_CARAVAN_MY_RANK
|
||||||
type MsgMhfCaravanMyRank struct{}
|
type MsgMhfCaravanMyRank struct {
|
||||||
|
AckHandle uint32
|
||||||
|
Unk0 uint32
|
||||||
|
Unk1 uint32
|
||||||
|
Unk2 uint32
|
||||||
|
}
|
||||||
|
|
||||||
// Opcode returns the ID associated with this packet type.
|
// Opcode returns the ID associated with this packet type.
|
||||||
func (m *MsgMhfCaravanMyRank) Opcode() network.PacketID {
|
func (m *MsgMhfCaravanMyRank) Opcode() network.PacketID {
|
||||||
@@ -18,7 +23,11 @@ func (m *MsgMhfCaravanMyRank) Opcode() network.PacketID {
|
|||||||
|
|
||||||
// Parse parses the packet from binary
|
// Parse parses the packet from binary
|
||||||
func (m *MsgMhfCaravanMyRank) Parse(bf *byteframe.ByteFrame, ctx *clientctx.ClientContext) error {
|
func (m *MsgMhfCaravanMyRank) Parse(bf *byteframe.ByteFrame, ctx *clientctx.ClientContext) error {
|
||||||
return errors.New("NOT IMPLEMENTED")
|
m.AckHandle = bf.ReadUint32()
|
||||||
|
m.Unk0 = bf.ReadUint32()
|
||||||
|
m.Unk1 = bf.ReadUint32()
|
||||||
|
m.Unk2 = bf.ReadUint32()
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Build builds a binary packet from the current data.
|
// Build builds a binary packet from the current data.
|
||||||
|
|||||||
@@ -3,13 +3,22 @@ package mhfpacket
|
|||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
|
|
||||||
"erupe-ce/network/clientctx"
|
|
||||||
"erupe-ce/network"
|
|
||||||
"erupe-ce/common/byteframe"
|
"erupe-ce/common/byteframe"
|
||||||
|
"erupe-ce/network"
|
||||||
|
"erupe-ce/network/clientctx"
|
||||||
)
|
)
|
||||||
|
|
||||||
// MsgMhfCaravanMyScore represents the MSG_MHF_CARAVAN_MY_SCORE
|
// MsgMhfCaravanMyScore represents the MSG_MHF_CARAVAN_MY_SCORE
|
||||||
type MsgMhfCaravanMyScore struct{}
|
type MsgMhfCaravanMyScore struct {
|
||||||
|
AckHandle uint32
|
||||||
|
Unk0 uint32
|
||||||
|
Unk1 uint32
|
||||||
|
Unk2 int32
|
||||||
|
Unk3 int32
|
||||||
|
Unk4 uint32
|
||||||
|
Unk5 int32
|
||||||
|
Unk6 int32
|
||||||
|
}
|
||||||
|
|
||||||
// Opcode returns the ID associated with this packet type.
|
// Opcode returns the ID associated with this packet type.
|
||||||
func (m *MsgMhfCaravanMyScore) Opcode() network.PacketID {
|
func (m *MsgMhfCaravanMyScore) Opcode() network.PacketID {
|
||||||
@@ -18,7 +27,15 @@ func (m *MsgMhfCaravanMyScore) Opcode() network.PacketID {
|
|||||||
|
|
||||||
// Parse parses the packet from binary
|
// Parse parses the packet from binary
|
||||||
func (m *MsgMhfCaravanMyScore) Parse(bf *byteframe.ByteFrame, ctx *clientctx.ClientContext) error {
|
func (m *MsgMhfCaravanMyScore) Parse(bf *byteframe.ByteFrame, ctx *clientctx.ClientContext) error {
|
||||||
return errors.New("NOT IMPLEMENTED")
|
m.AckHandle = bf.ReadUint32()
|
||||||
|
m.Unk0 = bf.ReadUint32()
|
||||||
|
m.Unk1 = bf.ReadUint32()
|
||||||
|
m.Unk2 = bf.ReadInt32()
|
||||||
|
m.Unk3 = bf.ReadInt32()
|
||||||
|
m.Unk4 = bf.ReadUint32()
|
||||||
|
m.Unk5 = bf.ReadInt32()
|
||||||
|
m.Unk6 = bf.ReadInt32()
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Build builds a binary packet from the current data.
|
// Build builds a binary packet from the current data.
|
||||||
|
|||||||
@@ -3,13 +3,18 @@ package mhfpacket
|
|||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
|
|
||||||
"erupe-ce/network/clientctx"
|
|
||||||
"erupe-ce/network"
|
|
||||||
"erupe-ce/common/byteframe"
|
"erupe-ce/common/byteframe"
|
||||||
|
"erupe-ce/network"
|
||||||
|
"erupe-ce/network/clientctx"
|
||||||
)
|
)
|
||||||
|
|
||||||
// MsgMhfCaravanRanking represents the MSG_MHF_CARAVAN_RANKING
|
// MsgMhfCaravanRanking represents the MSG_MHF_CARAVAN_RANKING
|
||||||
type MsgMhfCaravanRanking struct{}
|
type MsgMhfCaravanRanking struct {
|
||||||
|
AckHandle uint32
|
||||||
|
Unk0 uint32
|
||||||
|
Unk1 uint32
|
||||||
|
Unk2 int32
|
||||||
|
}
|
||||||
|
|
||||||
// Opcode returns the ID associated with this packet type.
|
// Opcode returns the ID associated with this packet type.
|
||||||
func (m *MsgMhfCaravanRanking) Opcode() network.PacketID {
|
func (m *MsgMhfCaravanRanking) Opcode() network.PacketID {
|
||||||
@@ -18,7 +23,11 @@ func (m *MsgMhfCaravanRanking) Opcode() network.PacketID {
|
|||||||
|
|
||||||
// Parse parses the packet from binary
|
// Parse parses the packet from binary
|
||||||
func (m *MsgMhfCaravanRanking) Parse(bf *byteframe.ByteFrame, ctx *clientctx.ClientContext) error {
|
func (m *MsgMhfCaravanRanking) Parse(bf *byteframe.ByteFrame, ctx *clientctx.ClientContext) error {
|
||||||
return errors.New("NOT IMPLEMENTED")
|
m.AckHandle = bf.ReadUint32()
|
||||||
|
m.Unk0 = bf.ReadUint32()
|
||||||
|
m.Unk1 = bf.ReadUint32()
|
||||||
|
m.Unk2 = bf.ReadInt32()
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Build builds a binary packet from the current data.
|
// Build builds a binary packet from the current data.
|
||||||
|
|||||||
@@ -3,18 +3,17 @@ package mhfpacket
|
|||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
|
|
||||||
"erupe-ce/network/clientctx"
|
|
||||||
"erupe-ce/network"
|
|
||||||
"erupe-ce/common/byteframe"
|
"erupe-ce/common/byteframe"
|
||||||
|
"erupe-ce/network"
|
||||||
|
"erupe-ce/network/clientctx"
|
||||||
)
|
)
|
||||||
|
|
||||||
// MsgMhfGetSeibattle represents the MSG_MHF_GET_SEIBATTLE
|
// MsgMhfGetSeibattle represents the MSG_MHF_GET_SEIBATTLE
|
||||||
type MsgMhfGetSeibattle struct {
|
type MsgMhfGetSeibattle struct {
|
||||||
// Communicator type, multi-format. This might be valid for only one type.
|
|
||||||
AckHandle uint32
|
AckHandle uint32
|
||||||
Unk0 uint8
|
Unk0 uint8
|
||||||
Unk1 uint8
|
Type uint8
|
||||||
Unk2 uint32 // Some shared ID with MSG_SYS_RECORD_LOG, world ID?
|
GuildID uint32
|
||||||
Unk3 uint8
|
Unk3 uint8
|
||||||
Unk4 uint16
|
Unk4 uint16
|
||||||
}
|
}
|
||||||
@@ -28,8 +27,8 @@ func (m *MsgMhfGetSeibattle) Opcode() network.PacketID {
|
|||||||
func (m *MsgMhfGetSeibattle) Parse(bf *byteframe.ByteFrame, ctx *clientctx.ClientContext) error {
|
func (m *MsgMhfGetSeibattle) Parse(bf *byteframe.ByteFrame, ctx *clientctx.ClientContext) error {
|
||||||
m.AckHandle = bf.ReadUint32()
|
m.AckHandle = bf.ReadUint32()
|
||||||
m.Unk0 = bf.ReadUint8()
|
m.Unk0 = bf.ReadUint8()
|
||||||
m.Unk1 = bf.ReadUint8()
|
m.Type = bf.ReadUint8()
|
||||||
m.Unk2 = bf.ReadUint32()
|
m.GuildID = bf.ReadUint32()
|
||||||
m.Unk3 = bf.ReadUint8()
|
m.Unk3 = bf.ReadUint8()
|
||||||
m.Unk4 = bf.ReadUint16()
|
m.Unk4 = bf.ReadUint16()
|
||||||
return nil
|
return nil
|
||||||
|
|||||||
@@ -18,8 +18,7 @@ type MsgMhfPresentBox struct {
|
|||||||
Unk4 uint32
|
Unk4 uint32
|
||||||
Unk5 uint32
|
Unk5 uint32
|
||||||
Unk6 uint32
|
Unk6 uint32
|
||||||
Unk7 uint32
|
Unk7 []uint32
|
||||||
Unk8 uint32
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Opcode returns the ID associated with this packet type.
|
// Opcode returns the ID associated with this packet type.
|
||||||
@@ -37,8 +36,9 @@ func (m *MsgMhfPresentBox) Parse(bf *byteframe.ByteFrame, ctx *clientctx.ClientC
|
|||||||
m.Unk4 = bf.ReadUint32()
|
m.Unk4 = bf.ReadUint32()
|
||||||
m.Unk5 = bf.ReadUint32()
|
m.Unk5 = bf.ReadUint32()
|
||||||
m.Unk6 = bf.ReadUint32()
|
m.Unk6 = bf.ReadUint32()
|
||||||
m.Unk7 = bf.ReadUint32()
|
for i := uint32(0); i < m.Unk2; i++ {
|
||||||
m.Unk8 = bf.ReadUint32()
|
m.Unk7 = append(m.Unk7, bf.ReadUint32())
|
||||||
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package channelserver
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/hex"
|
"encoding/hex"
|
||||||
|
"erupe-ce/common/byteframe"
|
||||||
"erupe-ce/network/mhfpacket"
|
"erupe-ce/network/mhfpacket"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -31,8 +32,60 @@ func handleMsgMhfPostTinyBin(s *Session, p mhfpacket.MHFPacket) {
|
|||||||
doAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4))
|
doAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4))
|
||||||
}
|
}
|
||||||
|
|
||||||
func handleMsgMhfCaravanMyScore(s *Session, p mhfpacket.MHFPacket) {}
|
func handleMsgMhfCaravanMyScore(s *Session, p mhfpacket.MHFPacket) {
|
||||||
|
pkt := p.(*mhfpacket.MsgMhfCaravanMyScore)
|
||||||
|
bf := byteframe.NewByteFrame()
|
||||||
|
bf.WriteUint32(0)
|
||||||
|
bf.WriteUint32(0)
|
||||||
|
bf.WriteUint32(0)
|
||||||
|
bf.WriteUint32(0) // Entries
|
||||||
|
|
||||||
func handleMsgMhfCaravanRanking(s *Session, p mhfpacket.MHFPacket) {}
|
/*
|
||||||
|
bf.WriteInt32(0)
|
||||||
|
bf.WriteInt32(0)
|
||||||
|
bf.WriteUint32(0)
|
||||||
|
bf.WriteInt32(0)
|
||||||
|
bf.WriteInt32(0)
|
||||||
|
bf.WriteInt32(0)
|
||||||
|
*/
|
||||||
|
|
||||||
func handleMsgMhfCaravanMyRank(s *Session, p mhfpacket.MHFPacket) {}
|
doAckBufSucceed(s, pkt.AckHandle, bf.Data())
|
||||||
|
}
|
||||||
|
|
||||||
|
func handleMsgMhfCaravanRanking(s *Session, p mhfpacket.MHFPacket) {
|
||||||
|
pkt := p.(*mhfpacket.MsgMhfCaravanRanking)
|
||||||
|
bf := byteframe.NewByteFrame()
|
||||||
|
bf.WriteUint32(0)
|
||||||
|
bf.WriteUint32(0)
|
||||||
|
bf.WriteUint32(0)
|
||||||
|
bf.WriteUint32(0) // Entries
|
||||||
|
|
||||||
|
/* RYOUDAN
|
||||||
|
bf.WriteInt32(1)
|
||||||
|
bf.WriteUint32(2)
|
||||||
|
bf.WriteBytes(stringsupport.PaddedString("Test", 26, true))
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* PERSONAL
|
||||||
|
bf.WriteInt32(1)
|
||||||
|
bf.WriteBytes(stringsupport.PaddedString("Test", 14, true))
|
||||||
|
*/
|
||||||
|
doAckBufSucceed(s, pkt.AckHandle, bf.Data())
|
||||||
|
}
|
||||||
|
|
||||||
|
func handleMsgMhfCaravanMyRank(s *Session, p mhfpacket.MHFPacket) {
|
||||||
|
pkt := p.(*mhfpacket.MsgMhfCaravanMyRank)
|
||||||
|
bf := byteframe.NewByteFrame()
|
||||||
|
bf.WriteUint32(0)
|
||||||
|
bf.WriteUint32(0)
|
||||||
|
bf.WriteUint32(0)
|
||||||
|
bf.WriteUint32(0) // Entries
|
||||||
|
|
||||||
|
/*
|
||||||
|
bf.WriteInt32(0)
|
||||||
|
bf.WriteInt32(0)
|
||||||
|
bf.WriteInt32(0)
|
||||||
|
*/
|
||||||
|
|
||||||
|
doAckBufSucceed(s, pkt.AckHandle, bf.Data())
|
||||||
|
}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package channelserver
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/hex"
|
"encoding/hex"
|
||||||
|
"erupe-ce/common/byteframe"
|
||||||
"erupe-ce/network/mhfpacket"
|
"erupe-ce/network/mhfpacket"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -86,12 +87,47 @@ func handleMsgMhfGetBreakSeibatuLevelReward(s *Session, p mhfpacket.MHFPacket) {
|
|||||||
|
|
||||||
func handleMsgMhfGetWeeklySeibatuRankingReward(s *Session, p mhfpacket.MHFPacket) {
|
func handleMsgMhfGetWeeklySeibatuRankingReward(s *Session, p mhfpacket.MHFPacket) {
|
||||||
pkt := p.(*mhfpacket.MsgMhfGetWeeklySeibatuRankingReward)
|
pkt := p.(*mhfpacket.MsgMhfGetWeeklySeibatuRankingReward)
|
||||||
doAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4))
|
bf := byteframe.NewByteFrame()
|
||||||
|
bf.WriteUint32(0)
|
||||||
|
bf.WriteUint32(0)
|
||||||
|
bf.WriteUint32(0)
|
||||||
|
bf.WriteUint32(0) // Entries
|
||||||
|
|
||||||
|
/*
|
||||||
|
bf.WriteInt32(0)
|
||||||
|
bf.WriteInt32(0)
|
||||||
|
bf.WriteUint32(0)
|
||||||
|
bf.WriteInt32(0)
|
||||||
|
bf.WriteInt32(0)
|
||||||
|
bf.WriteInt32(0)
|
||||||
|
*/
|
||||||
|
|
||||||
|
doAckBufSucceed(s, pkt.AckHandle, bf.Data())
|
||||||
}
|
}
|
||||||
|
|
||||||
func handleMsgMhfPresentBox(s *Session, p mhfpacket.MHFPacket) {
|
func handleMsgMhfPresentBox(s *Session, p mhfpacket.MHFPacket) {
|
||||||
pkt := p.(*mhfpacket.MsgMhfPresentBox)
|
pkt := p.(*mhfpacket.MsgMhfPresentBox)
|
||||||
doAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4))
|
bf := byteframe.NewByteFrame()
|
||||||
|
bf.WriteUint32(0)
|
||||||
|
bf.WriteUint32(0)
|
||||||
|
bf.WriteUint32(0)
|
||||||
|
bf.WriteUint32(0) // Entries
|
||||||
|
|
||||||
|
/*
|
||||||
|
bf.WriteUint32(0)
|
||||||
|
bf.WriteInt32(0)
|
||||||
|
bf.WriteInt32(0)
|
||||||
|
bf.WriteInt32(0)
|
||||||
|
bf.WriteInt32(0)
|
||||||
|
bf.WriteInt32(0)
|
||||||
|
bf.WriteInt32(0)
|
||||||
|
bf.WriteInt32(0)
|
||||||
|
bf.WriteInt32(0)
|
||||||
|
bf.WriteInt32(0)
|
||||||
|
bf.WriteInt32(0)
|
||||||
|
*/
|
||||||
|
|
||||||
|
doAckBufSucceed(s, pkt.AckHandle, bf.Data())
|
||||||
}
|
}
|
||||||
|
|
||||||
func handleMsgMhfGetGemInfo(s *Session, p mhfpacket.MHFPacket) {
|
func handleMsgMhfGetGemInfo(s *Session, p mhfpacket.MHFPacket) {
|
||||||
|
|||||||
Reference in New Issue
Block a user