mirror of
https://github.com/Mezeporta/Erupe.git
synced 2025-12-14 16:04:38 +01:00
Merge branch 'main' into feature/diva
This commit is contained in:
@@ -1,17 +1,18 @@
|
|||||||
package mhfpacket
|
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"
|
||||||
)
|
)
|
||||||
|
|
||||||
// MsgMhfGuildHuntdata represents the MSG_MHF_GUILD_HUNTDATA
|
// MsgMhfGuildHuntdata represents the MSG_MHF_GUILD_HUNTDATA
|
||||||
type MsgMhfGuildHuntdata struct{
|
type MsgMhfGuildHuntdata struct {
|
||||||
AckHandle uint32
|
AckHandle uint32
|
||||||
Unk0 uint8
|
Operation uint8
|
||||||
|
GuildID uint32
|
||||||
}
|
}
|
||||||
|
|
||||||
// Opcode returns the ID associated with this packet type.
|
// Opcode returns the ID associated with this packet type.
|
||||||
@@ -22,7 +23,10 @@ func (m *MsgMhfGuildHuntdata) Opcode() network.PacketID {
|
|||||||
// Parse parses the packet from binary
|
// Parse parses the packet from binary
|
||||||
func (m *MsgMhfGuildHuntdata) Parse(bf *byteframe.ByteFrame, ctx *clientctx.ClientContext) error {
|
func (m *MsgMhfGuildHuntdata) Parse(bf *byteframe.ByteFrame, ctx *clientctx.ClientContext) error {
|
||||||
m.AckHandle = bf.ReadUint32()
|
m.AckHandle = bf.ReadUint32()
|
||||||
m.Unk0 = bf.ReadUint8()
|
m.Operation = bf.ReadUint8()
|
||||||
|
if m.Operation == 1 {
|
||||||
|
m.GuildID = bf.ReadUint32()
|
||||||
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1767,8 +1767,9 @@ func handleMsgMhfUpdateEquipSkinHist(s *Session, p mhfpacket.MHFPacket) {
|
|||||||
|
|
||||||
func handleMsgMhfGetUdShopCoin(s *Session, p mhfpacket.MHFPacket) {
|
func handleMsgMhfGetUdShopCoin(s *Session, p mhfpacket.MHFPacket) {
|
||||||
pkt := p.(*mhfpacket.MsgMhfGetUdShopCoin)
|
pkt := p.(*mhfpacket.MsgMhfGetUdShopCoin)
|
||||||
data, _ := hex.DecodeString("0000000000000001")
|
bf := byteframe.NewByteFrame()
|
||||||
doAckBufSucceed(s, pkt.AckHandle, data)
|
bf.WriteUint32(0)
|
||||||
|
doAckSimpleSucceed(s, pkt.AckHandle, bf.Data())
|
||||||
}
|
}
|
||||||
|
|
||||||
func handleMsgMhfUseUdShopCoin(s *Session, p mhfpacket.MHFPacket) {}
|
func handleMsgMhfUseUdShopCoin(s *Session, p mhfpacket.MHFPacket) {}
|
||||||
|
|||||||
@@ -1260,9 +1260,16 @@ func handleMsgMhfEnumerateGuild(s *Session, p mhfpacket.MHFPacket) {
|
|||||||
bf = byteframe.NewByteFrame()
|
bf = byteframe.NewByteFrame()
|
||||||
|
|
||||||
if pkt.Type > 8 {
|
if pkt.Type > 8 {
|
||||||
bf.WriteUint16(uint16(len(alliances)))
|
if len(guilds) > 10 {
|
||||||
|
bf.WriteUint16(10)
|
||||||
|
} else {
|
||||||
|
bf.WriteUint16(uint16(len(alliances)))
|
||||||
|
}
|
||||||
bf.WriteUint8(0x00) // Unk
|
bf.WriteUint8(0x00) // Unk
|
||||||
for _, alliance := range alliances {
|
for i, alliance := range alliances {
|
||||||
|
if i == 10 {
|
||||||
|
break
|
||||||
|
}
|
||||||
bf.WriteUint32(alliance.ID)
|
bf.WriteUint32(alliance.ID)
|
||||||
bf.WriteUint32(alliance.ParentGuild.LeaderCharID)
|
bf.WriteUint32(alliance.ParentGuild.LeaderCharID)
|
||||||
bf.WriteUint16(alliance.TotalMembers)
|
bf.WriteUint16(alliance.TotalMembers)
|
||||||
@@ -1281,9 +1288,16 @@ func handleMsgMhfEnumerateGuild(s *Session, p mhfpacket.MHFPacket) {
|
|||||||
bf.WriteBool(true) // TODO: Enable GuildAlliance applications
|
bf.WriteBool(true) // TODO: Enable GuildAlliance applications
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
bf.WriteUint16(uint16(len(guilds)))
|
if len(guilds) > 10 {
|
||||||
|
bf.WriteUint16(10)
|
||||||
|
} else {
|
||||||
|
bf.WriteUint16(uint16(len(guilds)))
|
||||||
|
}
|
||||||
bf.WriteUint8(0x01) // Unk
|
bf.WriteUint8(0x01) // Unk
|
||||||
for _, guild := range guilds {
|
for i, guild := range guilds {
|
||||||
|
if i == 10 {
|
||||||
|
break
|
||||||
|
}
|
||||||
bf.WriteUint32(guild.ID)
|
bf.WriteUint32(guild.ID)
|
||||||
bf.WriteUint32(guild.LeaderCharID)
|
bf.WriteUint32(guild.LeaderCharID)
|
||||||
bf.WriteUint16(guild.MemberCount)
|
bf.WriteUint16(guild.MemberCount)
|
||||||
@@ -1792,7 +1806,20 @@ func handleMsgMhfGetGuildWeeklyBonusActiveCount(s *Session, p mhfpacket.MHFPacke
|
|||||||
|
|
||||||
func handleMsgMhfGuildHuntdata(s *Session, p mhfpacket.MHFPacket) {
|
func handleMsgMhfGuildHuntdata(s *Session, p mhfpacket.MHFPacket) {
|
||||||
pkt := p.(*mhfpacket.MsgMhfGuildHuntdata)
|
pkt := p.(*mhfpacket.MsgMhfGuildHuntdata)
|
||||||
doAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4))
|
bf := byteframe.NewByteFrame()
|
||||||
|
switch pkt.Operation {
|
||||||
|
case 0: // Unk
|
||||||
|
doAckBufSucceed(s, pkt.AckHandle, []byte{})
|
||||||
|
case 1: // Get Huntdata
|
||||||
|
bf.WriteUint8(0) // Entries
|
||||||
|
/* Entry format
|
||||||
|
uint32 UnkID
|
||||||
|
uint32 MonID
|
||||||
|
*/
|
||||||
|
doAckBufSucceed(s, pkt.AckHandle, bf.Data())
|
||||||
|
case 2: // Unk, controls glow
|
||||||
|
doAckBufSucceed(s, pkt.AckHandle, []byte{0x00, 0x00})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
type MessageBoardPost struct {
|
type MessageBoardPost struct {
|
||||||
|
|||||||
Reference in New Issue
Block a user