Files
bl/common/core/info/LoginUserInfo.go

214 lines
5.9 KiB
Go
Raw Normal View History

package info
import "blazing/common/core/info/pet"
// Point 表示坐标结构
type Point struct {
X uint32
Y uint32
}
// TeamInfo 战队信息
type TeamInfo struct {
// 此处应包含TeamInfo的具体字段原Java代码中未给出详细定义
// 请根据实际需求补充
}
// TeamPKInfo 战队PK信息
type TeamPKInfo struct {
// 此处应包含TeamPKInfo的具体字段原Java代码中未给出详细定义
// 请根据实际需求补充
}
// PeopleItemInfo 人物物品信息
type PeopleItemInfo struct {
// 此处应包含PeopleItemInfo的具体字段原Java代码中未给出详细定义
// 请根据实际需求补充
}
// LoginUserInfo 登录用户信息结构体
type LoginUserInfo struct {
// 米米号 通过sid拿到
UserId uint32
// 注册时间(按秒的时间戳)
RegisterTime uint32
// 16字节昵称
Nick [16]byte `array_serialize:"fixed_length,16"`
// 暂时不明建议先给固定值0
Vip uint16 `ushort:"true"`
// 暂时不明建议先给固定值15
Viped uint16 `ushort:"true"`
// 暂时不明建议先给固定值0
DsFlag uint32
// 机器人人物颜色 00 rgb
Color uint32
// 暂时不明建议先给固定值0
Texture uint32
// 暂时不明建议先给固定值3000
Energy uint32 `default:"3000"`
// 赛尔豆
Coins uint32
// 暂时不明建议先给固定值0
FightBadge uint32
// 上线的地图id
MapID uint32
// 上线的坐标 2个uint
Pos Point `array_serialize:"fixed_length,8"`
// 已经消耗掉的时间(秒为单位)
TimeToday uint32
// 总电池限制(秒为单位)
TimeLimit uint32
// 暂时不明感觉是某种活动建议先给固定值0(只能0或1)
IsClothHalfDay byte
// 暂时不明感觉是某种活动建议先给固定值0(只能0或1)
IsRoomHalfDay byte
// 暂时不明感觉是某种活动建议先给固定值0(只能0或1)
IFortressHalfDay byte
// 暂时不明感觉是某种活动建议先给固定值0(只能0或1)
IsHQHalfDay byte
// 暂时不明建议先给固定值0
LoginCount uint32
// 邀请活动建议先给固定值0
Inviter uint32
// 邀请活动建议先给固定值0
NewInviteeCount uint32
// 超no等级建议固定8
VipLevel uint32 `default:"8"`
// 超no的vip值建议固定80000
VipValue uint32 `default:"80000"`
// 超no的外形等级建议固定1(暂定)
VipStage uint32 `default:"1"`
// nono是否自动充电 建议固定1
AutoCharge uint32 `default:"1"`
// 超no的结束时间建议尽可能大
VipEndTime uint32 `default:"4294967295"`
// 邀请活动建议先给固定值0
FreshManBonus uint32
// 超no芯片列表*(80字节)
NonoChipList [80]byte `array_serialize:"fixed_length,80"`
// 50字节默认值为3
DailyResArr [50]byte `array_serialize:"fixed_length,50"`
// 教官id
TeacherID uint32
// 学员id
StudentID uint32
// 毕业人数
GraduationCount uint32
// 默认值为0
MaxPuniLv uint32 `default:"0"`
// 精灵的最高等级
PetMaxLevel uint32
// 所有的精灵的数量
AllPetNumber uint32
// 精灵王之战胜场
MonKingWin uint32
// 勇者之塔当前到达的层数
CurrentStage uint32
// 试炼之塔最大胜利的层数
MaxStage uint32
// 试炼之塔当前到达的层数
CurrentFreshStage uint32
// 试炼之塔最大胜利的层数
MaxFreshStage uint32
// 星际擂台连胜
MaxArenaWins uint32
// 未知默认0
TwoTimes uint32 `default:"0"`
// 未知默认0
ThreeTimes uint32 `default:"0"`
// 是否自动战斗(未知默认值0)
AutoFight uint32 `default:"0"`
// 自动战斗剩余的场次(未知默认值0)
AutoFightTime uint32 `default:"0"`
// 能量吸收仪剩余次数(未知待定默认值0)
EnergyTime uint32 `default:"0"`
// 学习力吸收仪剩余次数(未知待定默认值0)
LearnTimes uint32 `default:"0"`
// 未知默认0
MonBattleMedal uint32 `default:"0"`
// 未知默认0
RecordCount uint32 `default:"0"`
// 未知默认0
ObtainTm uint32 `default:"0"`
// 当前在孵化的元神珠id
SoulBeadItemID uint32
// 未知默认0
ExpireTm uint32 `default:"0"`
// 未知默认0
FuseTimes uint32 `default:"0"`
// 玩家有没有nono
HasNono uint32 `default:"1"`
// 玩家有没有超能nono
SuperNono uint32 `default:"1"`
// 默认值-1
NonoState uint32 `default:"4294967295"`
// nono的颜色
NonoColor uint32
// nono的名字 必须要补齐到16位
NonoNick [16]byte `array_serialize:"fixed_length,16"`
// 猜测为战队信息24字节
TeamInfo TeamInfo `array_serialize:"fixed_length,24"`
// 8字节
TeamPkInfo TeamPKInfo `array_serialize:"fixed_length,8"`
// 1字节 无内容
Reserved byte
// 默认值为0
Badge uint32 `default:"0"`
// 未知(27字节默认值为3)
Reserved1 [27]byte `array_serialize:"fixed_length,27"`
// 任务状态数组(500字节3为已经完成建议默认值为3)
TaskList [500]byte `array_serialize:"fixed_length,500"`
// 精灵背包内的信息由于特性精灵的存在精灵背包不定长 如果有特性占199字节 如果没特性 一个精灵占175字节
PetList []pet.PetInfo
// 穿戴装备 8字节
Clothes []PeopleItemInfo
}
// NewLoginUserInfo 创建新的登录用户信息实例,设置默认值
func NewLoginUserInfo() *LoginUserInfo {
info := &LoginUserInfo{
Vip: 0,
Viped: 15,
Energy: 3000,
VipLevel: 8,
VipValue: 80000,
VipStage: 1,
AutoCharge: 1,
VipEndTime: uint32(^uint32(0)),
TwoTimes: 0,
ThreeTimes: 0,
AutoFight: 0,
AutoFightTime: 0,
EnergyTime: 0,
LearnTimes: 0,
MonBattleMedal: 0,
RecordCount: 0,
ObtainTm: 0,
ExpireTm: 0,
FuseTimes: 0,
HasNono: 1,
SuperNono: 1,
NonoState: uint32(^uint32(0)),
Badge: 0,
}
// 初始化固定长度数组
for i := range info.NonoChipList {
info.NonoChipList[i] = 0
}
for i := range info.DailyResArr {
info.DailyResArr[i] = 3
}
for i := range info.Reserved1 {
info.Reserved1[i] = 3
}
for i := range info.TaskList {
info.TaskList[i] = 3
}
// 初始化nono昵称
copy(info.NonoNick[:], "nono")
return info
}