Skip to content

Instantly share code, notes, and snippets.

@sekaiwish
Created November 5, 2022 01:26
Show Gist options
  • Save sekaiwish/898662c31f0d82e2b07e6945ee54599e to your computer and use it in GitHub Desktop.
Save sekaiwish/898662c31f0d82e2b07e6945ee54599e to your computer and use it in GitHub Desktop.
MHF DSGN002 Response
func (s *Session) makeSignIn002Resp(uid int) []byte {
chars, err := s.server.getCharactersForUser(uid)
if err != nil {
s.logger.Warn("Error getting characters from DB", zap.Error(err))
}
rand.Seed(time.Now().UnixNano())
token := randSeq(16)
bf := byteframe.NewByteFrame()
bf.WriteUint8(1) //resp
bf.WriteUint8(2) //ptch
bf.WriteUint8(1) //entr
bf.WriteUint8(uint8(len(chars))) //chars
bf.WriteUint32(0xFFFFFFFF)
bf.WriteBytes([]byte(token))
bf.WriteUint32(uint32(time.Now().Unix()))
ps.Uint8(bf, "", false)
ps.Uint8(bf, "", false)
ps.Uint8(bf, fmt.Sprintf("%s:%d", s.server.erupeConfig.Host, s.server.erupeConfig.Entrance.Port), false)
for _, char := range chars {
bf.WriteUint32(char.ID)
bf.WriteUint16(char.HRP)
bf.WriteUint16(char.WeaponType)
bf.WriteUint32(char.LastLogin)
bf.WriteBool(char.IsFemale)
bf.WriteBool(char.IsNewCharacter)
bf.WriteUint16(0) // Unk
bf.WriteBytes(stringsupport.PaddedString(char.Name, 16, true))
bf.WriteBytes(stringsupport.PaddedString(char.UnkDescString, 32, true))
}
friends := s.server.getFriendsForCharacters(chars)
if len(friends) == 0 {
bf.WriteUint8(0)
} else {
bf.WriteUint8(uint8(len(friends)))
for _, friend := range friends {
bf.WriteUint32(friend.CID)
bf.WriteUint32(friend.ID)
ps.Uint8(bf, friend.Name, true)
}
}
guildmates := s.server.getGuildmatesForCharacters(chars)
if len(guildmates) == 0 {
bf.WriteUint8(0)
} else {
bf.WriteUint8(uint8(len(guildmates)))
for _, guildmate := range guildmates {
bf.WriteUint32(guildmate.CID)
bf.WriteUint32(guildmate.ID)
ps.Uint8(bf, guildmate.Name, true)
}
}
bf.WriteUint8(0)
bf.WriteUint32(s.server.getLastCID(uid))
bf.WriteUint32(s.server.getUserRights(uid))
return bf.Data()
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment