mirror of
https://github.com/Mezeporta/Erupe.git
synced 2026-02-06 10:06:53 +01:00
decode GetUdGuildMapInfo more
This commit is contained in:
@@ -482,8 +482,9 @@ type Tile struct {
|
|||||||
ID uint16
|
ID uint16
|
||||||
NextID uint16
|
NextID uint16
|
||||||
BranchID uint16
|
BranchID uint16
|
||||||
QuestFile uint16
|
QuestFile1 uint16
|
||||||
Unk0 uint32
|
QuestFile2 uint16
|
||||||
|
QuestFile3 uint16
|
||||||
BranchIndex uint8
|
BranchIndex uint8
|
||||||
Type uint8
|
Type uint8
|
||||||
PointsReq int32
|
PointsReq int32
|
||||||
@@ -515,12 +516,12 @@ func (im *InterceptionMaps) Value() (valuer driver.Value, err error) {
|
|||||||
func (md *MapData) GetClaimed() uint32 {
|
func (md *MapData) GetClaimed() uint32 {
|
||||||
var claimed uint32
|
var claimed uint32
|
||||||
for _, tile := range md.Tiles {
|
for _, tile := range md.Tiles {
|
||||||
if md.Points[tile.QuestFile]-tile.PointsReq > 0 {
|
if md.Points[tile.QuestFile1]-tile.PointsReq > 0 {
|
||||||
tile.Claimed = true
|
tile.Claimed = true
|
||||||
if tile.PointsReq > 0 {
|
if tile.PointsReq > 0 {
|
||||||
claimed++
|
claimed++
|
||||||
}
|
}
|
||||||
md.Points[tile.QuestFile] -= tile.PointsReq
|
md.Points[tile.QuestFile1] -= tile.PointsReq
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return claimed
|
return claimed
|
||||||
@@ -598,16 +599,17 @@ func handleMsgMhfGetUdGuildMapInfo(s *Session, p mhfpacket.MHFPacket) {
|
|||||||
err = s.server.db.QueryRow(`SELECT interception_maps FROM guilds WHERE id=$1`, guild.ID).Scan(&interceptionMaps)
|
err = s.server.db.QueryRow(`SELECT interception_maps FROM guilds WHERE id=$1`, guild.ID).Scan(&interceptionMaps)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
s.server.logger.Error("Failed to load interception map data", zap.Error(err))
|
s.server.logger.Error("Failed to load interception map data", zap.Error(err))
|
||||||
doAckSimpleFail(s, pkt.AckHandle, make([]byte, 4))
|
doAckBufSucceed(s, pkt.AckHandle, []byte{0xFF})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bf := byteframe.NewByteFrame()
|
||||||
|
bf.WriteUint8(0) // No error
|
||||||
var tilesClaimed uint32
|
var tilesClaimed uint32
|
||||||
currentMapID, prevMapID := interceptionMaps.CurrPrevID()
|
currentMapID, prevMapID := interceptionMaps.CurrPrevID()
|
||||||
currProg := byteframe.NewByteFrame()
|
currProg := byteframe.NewByteFrame()
|
||||||
prevProg := byteframe.NewByteFrame()
|
prevProg := byteframe.NewByteFrame()
|
||||||
bf := byteframe.NewByteFrame()
|
bf.WriteUint8(uint8(len(interceptionMaps.Maps)))
|
||||||
bf.WriteUint16(uint16(len(interceptionMaps.Maps)))
|
|
||||||
for _, _map := range interceptionMaps.Maps {
|
for _, _map := range interceptionMaps.Maps {
|
||||||
bf.WriteUint32(_map.ID)
|
bf.WriteUint32(_map.ID)
|
||||||
bf.WriteUint32(_map.NextID)
|
bf.WriteUint32(_map.NextID)
|
||||||
@@ -615,8 +617,9 @@ func handleMsgMhfGetUdGuildMapInfo(s *Session, p mhfpacket.MHFPacket) {
|
|||||||
bf.WriteUint16(tile.ID)
|
bf.WriteUint16(tile.ID)
|
||||||
bf.WriteUint16(tile.NextID)
|
bf.WriteUint16(tile.NextID)
|
||||||
bf.WriteUint16(tile.BranchID)
|
bf.WriteUint16(tile.BranchID)
|
||||||
bf.WriteUint16(tile.QuestFile)
|
bf.WriteUint16(tile.QuestFile1)
|
||||||
bf.WriteUint32(tile.Unk0)
|
bf.WriteUint16(tile.QuestFile2)
|
||||||
|
bf.WriteUint16(tile.QuestFile3)
|
||||||
bf.WriteUint8(tile.BranchIndex)
|
bf.WriteUint8(tile.BranchIndex)
|
||||||
bf.WriteUint8(tile.Type)
|
bf.WriteUint8(tile.Type)
|
||||||
bf.WriteInt32(tile.PointsReq)
|
bf.WriteInt32(tile.PointsReq)
|
||||||
@@ -636,14 +639,14 @@ func handleMsgMhfGetUdGuildMapInfo(s *Session, p mhfpacket.MHFPacket) {
|
|||||||
currProg.WriteUint8(uint8(len(_map.Tiles)))
|
currProg.WriteUint8(uint8(len(_map.Tiles)))
|
||||||
for _, tile := range _map.Tiles {
|
for _, tile := range _map.Tiles {
|
||||||
if tile.Type != 1 {
|
if tile.Type != 1 {
|
||||||
if _map.Points[tile.QuestFile]-tile.PointsReq > 0 {
|
if _map.Points[tile.QuestFile1]-tile.PointsReq > 0 {
|
||||||
tile.Claimed = true
|
tile.Claimed = true
|
||||||
tilesClaimed++
|
tilesClaimed++
|
||||||
_map.Points[tile.QuestFile] -= tile.PointsReq
|
_map.Points[tile.QuestFile1] -= tile.PointsReq
|
||||||
currProg.WriteInt32(tile.PointsReq)
|
currProg.WriteInt32(tile.PointsReq)
|
||||||
} else {
|
} else {
|
||||||
currProg.WriteInt32(_map.Points[tile.QuestFile])
|
currProg.WriteInt32(_map.Points[tile.QuestFile1])
|
||||||
_map.Points[tile.QuestFile] = 0
|
_map.Points[tile.QuestFile1] = 0
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
currProg.WriteInt32(0)
|
currProg.WriteInt32(0)
|
||||||
@@ -652,8 +655,9 @@ func handleMsgMhfGetUdGuildMapInfo(s *Session, p mhfpacket.MHFPacket) {
|
|||||||
currProg.WriteUint16(tile.ID)
|
currProg.WriteUint16(tile.ID)
|
||||||
currProg.WriteUint16(tile.NextID)
|
currProg.WriteUint16(tile.NextID)
|
||||||
currProg.WriteUint16(tile.BranchID)
|
currProg.WriteUint16(tile.BranchID)
|
||||||
currProg.WriteUint16(tile.QuestFile)
|
currProg.WriteUint16(tile.QuestFile1)
|
||||||
currProg.WriteUint32(tile.Unk0)
|
currProg.WriteUint16(tile.QuestFile2)
|
||||||
|
currProg.WriteUint16(tile.QuestFile3)
|
||||||
currProg.WriteUint8(tile.BranchIndex)
|
currProg.WriteUint8(tile.BranchIndex)
|
||||||
currProg.WriteUint8(tile.Type)
|
currProg.WriteUint8(tile.Type)
|
||||||
if tile.Claimed || tile.Type == 1 {
|
if tile.Claimed || tile.Type == 1 {
|
||||||
@@ -669,14 +673,14 @@ func handleMsgMhfGetUdGuildMapInfo(s *Session, p mhfpacket.MHFPacket) {
|
|||||||
prevProg.WriteUint8(uint8(len(_map.Tiles)))
|
prevProg.WriteUint8(uint8(len(_map.Tiles)))
|
||||||
for _, tile := range _map.Tiles {
|
for _, tile := range _map.Tiles {
|
||||||
if tile.Type != 1 {
|
if tile.Type != 1 {
|
||||||
if _map.Points[tile.QuestFile]-tile.PointsReq > 0 {
|
if _map.Points[tile.QuestFile1]-tile.PointsReq > 0 {
|
||||||
tile.Claimed = true
|
tile.Claimed = true
|
||||||
tilesClaimed++
|
tilesClaimed++
|
||||||
_map.Points[tile.QuestFile] -= tile.PointsReq
|
_map.Points[tile.QuestFile1] -= tile.PointsReq
|
||||||
prevProg.WriteInt32(tile.PointsReq)
|
prevProg.WriteInt32(tile.PointsReq)
|
||||||
} else {
|
} else {
|
||||||
prevProg.WriteInt32(_map.Points[tile.QuestFile])
|
prevProg.WriteInt32(_map.Points[tile.QuestFile1])
|
||||||
_map.Points[tile.QuestFile] = 0
|
_map.Points[tile.QuestFile1] = 0
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
prevProg.WriteInt32(0)
|
prevProg.WriteInt32(0)
|
||||||
@@ -685,8 +689,9 @@ func handleMsgMhfGetUdGuildMapInfo(s *Session, p mhfpacket.MHFPacket) {
|
|||||||
prevProg.WriteUint16(tile.ID)
|
prevProg.WriteUint16(tile.ID)
|
||||||
prevProg.WriteUint16(tile.NextID)
|
prevProg.WriteUint16(tile.NextID)
|
||||||
prevProg.WriteUint16(tile.BranchID)
|
prevProg.WriteUint16(tile.BranchID)
|
||||||
prevProg.WriteUint16(tile.QuestFile)
|
prevProg.WriteUint16(tile.QuestFile1)
|
||||||
prevProg.WriteUint32(tile.Unk0)
|
prevProg.WriteUint16(tile.QuestFile2)
|
||||||
|
prevProg.WriteUint16(tile.QuestFile3)
|
||||||
prevProg.WriteUint8(tile.BranchIndex)
|
prevProg.WriteUint8(tile.BranchIndex)
|
||||||
prevProg.WriteUint8(tile.Type)
|
prevProg.WriteUint8(tile.Type)
|
||||||
if tile.Claimed || tile.Type == 1 {
|
if tile.Claimed || tile.Type == 1 {
|
||||||
@@ -931,7 +936,7 @@ func GenerateUdGuildMaps() ([]MapData, []MapBranch) {
|
|||||||
branchIndex++
|
branchIndex++
|
||||||
newTile := Tile{
|
newTile := Tile{
|
||||||
ID: newBranchTile,
|
ID: newBranchTile,
|
||||||
QuestFile: uint16(j%5 + 58079),
|
QuestFile1: uint16(j%5 + 58079),
|
||||||
BranchIndex: uint8(branchIndex),
|
BranchIndex: uint8(branchIndex),
|
||||||
Type: 0,
|
Type: 0,
|
||||||
PointsReq: 100,
|
PointsReq: 100,
|
||||||
|
|||||||
Reference in New Issue
Block a user