fix limited friends & clanmates amount

This commit is contained in:
wish
2023-07-08 00:35:15 +10:00
parent 60e86c74fe
commit ab83e64f84
2 changed files with 13 additions and 9 deletions

View File

@@ -131,9 +131,6 @@ func (s *Server) getFriendsForCharacters(chars []character) []members {
} }
friends = append(friends, charFriends...) friends = append(friends, charFriends...)
} }
if len(friends) > 255 { // Uint8
friends = friends[:255]
}
return friends return friends
} }
@@ -153,15 +150,12 @@ func (s *Server) getGuildmatesForCharacters(chars []character) []members {
if err != nil { if err != nil {
continue continue
} }
for i, _ := range charGuildmates { for i := range charGuildmates {
charGuildmates[i].CID = char.ID charGuildmates[i].CID = char.ID
} }
guildmates = append(guildmates, charGuildmates...) guildmates = append(guildmates, charGuildmates...)
} }
} }
if len(guildmates) > 255 { // Uint8
guildmates = guildmates[:255]
}
return guildmates return guildmates
} }

View File

@@ -89,7 +89,12 @@ func (s *Session) makeSignResponse(uid int) []byte {
if len(friends) == 0 { if len(friends) == 0 {
bf.WriteUint8(0) bf.WriteUint8(0)
} else { } else {
bf.WriteUint8(uint8(len(friends))) if len(friends) > 255 {
bf.WriteUint8(255)
bf.WriteUint16(uint16(len(friends)))
} else {
bf.WriteUint8(uint8(len(friends)))
}
for _, friend := range friends { for _, friend := range friends {
bf.WriteUint32(friend.CID) bf.WriteUint32(friend.CID)
bf.WriteUint32(friend.ID) bf.WriteUint32(friend.ID)
@@ -101,7 +106,12 @@ func (s *Session) makeSignResponse(uid int) []byte {
if len(guildmates) == 0 { if len(guildmates) == 0 {
bf.WriteUint8(0) bf.WriteUint8(0)
} else { } else {
bf.WriteUint8(uint8(len(guildmates))) if len(guildmates) > 255 {
bf.WriteUint8(255)
bf.WriteUint16(uint16(len(guildmates)))
} else {
bf.WriteUint8(uint8(len(guildmates)))
}
for _, guildmate := range guildmates { for _, guildmate := range guildmates {
bf.WriteUint32(guildmate.CID) bf.WriteUint32(guildmate.CID)
bf.WriteUint32(guildmate.ID) bf.WriteUint32(guildmate.ID)