refactor(blazing): 重构项目并优化数据结构
- 更新 LoginUserInfo 结构体,将 uint64 类型改为 uint32 - 调整 ServerInfo 结构体,将 IP 字段从 []byte 改为 string - 移除未使用的 ArraySerialize 结构体 - 更新 ByteArray 类,修改相关方法名 - 删除未使用的 serialize 相关代码 - 优化模块导入,移除冗余依赖
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
package info
|
||||
|
||||
import "blazing/common/core/info/pet"
|
||||
|
||||
// Point 表示坐标结构
|
||||
type Point struct {
|
||||
X uint32
|
||||
@@ -24,18 +26,12 @@ type PeopleItemInfo struct {
|
||||
// 请根据实际需求补充
|
||||
}
|
||||
|
||||
// PetInfo 精灵信息
|
||||
type PetInfo struct {
|
||||
// 此处应包含PetInfo的具体字段,原Java代码中未给出详细定义
|
||||
// 请根据实际需求补充
|
||||
}
|
||||
|
||||
// LoginUserInfo 登录用户信息结构体
|
||||
type LoginUserInfo struct {
|
||||
// 米米号 通过sid拿到
|
||||
UserId uint64
|
||||
UserId uint32
|
||||
// 注册时间(按秒的时间戳)
|
||||
RegisterTime uint64
|
||||
RegisterTime uint32
|
||||
// 16字节昵称
|
||||
Nick [16]byte `array_serialize:"fixed_length,16"`
|
||||
// 暂时不明建议先给固定值0
|
||||
@@ -43,25 +39,25 @@ type LoginUserInfo struct {
|
||||
// 暂时不明建议先给固定值15
|
||||
Viped uint16 `ushort:"true"`
|
||||
// 暂时不明建议先给固定值0
|
||||
DsFlag uint64
|
||||
DsFlag uint32
|
||||
// 机器人人物颜色 00 rgb
|
||||
Color uint64
|
||||
Color uint32
|
||||
// 暂时不明建议先给固定值0
|
||||
Texture uint64
|
||||
Texture uint32
|
||||
// 暂时不明建议先给固定值3000
|
||||
Energy uint64 `default:"3000"`
|
||||
Energy uint32 `default:"3000"`
|
||||
// 赛尔豆
|
||||
Coins uint64
|
||||
Coins uint32
|
||||
// 暂时不明建议先给固定值0
|
||||
FightBadge uint64
|
||||
FightBadge uint32
|
||||
// 上线的地图id
|
||||
MapID uint64
|
||||
MapID uint32
|
||||
// 上线的坐标 2个uint
|
||||
Pos Point `array_serialize:"fixed_length,8"`
|
||||
// 已经消耗掉的时间(秒为单位)
|
||||
TimeToday uint64
|
||||
TimeToday uint32
|
||||
// 总电池限制(秒为单位)
|
||||
TimeLimit uint64
|
||||
TimeLimit uint32
|
||||
// 暂时不明感觉是某种活动建议先给固定值0(只能0或1)
|
||||
IsClothHalfDay byte
|
||||
// 暂时不明感觉是某种活动建议先给固定值0(只能0或1)
|
||||
@@ -71,83 +67,83 @@ type LoginUserInfo struct {
|
||||
// 暂时不明感觉是某种活动建议先给固定值0(只能0或1)
|
||||
IsHQHalfDay byte
|
||||
// 暂时不明建议先给固定值0
|
||||
LoginCount uint64
|
||||
LoginCount uint32
|
||||
// 邀请活动建议先给固定值0
|
||||
Inviter uint64
|
||||
Inviter uint32
|
||||
// 邀请活动建议先给固定值0
|
||||
NewInviteeCount uint64
|
||||
NewInviteeCount uint32
|
||||
// 超no等级建议固定8
|
||||
VipLevel uint64 `default:"8"`
|
||||
VipLevel uint32 `default:"8"`
|
||||
// 超no的vip值建议固定80000
|
||||
VipValue uint64 `default:"80000"`
|
||||
VipValue uint32 `default:"80000"`
|
||||
// 超no的外形等级建议固定1(暂定)
|
||||
VipStage uint64 `default:"1"`
|
||||
VipStage uint32 `default:"1"`
|
||||
// nono是否自动充电 建议固定1
|
||||
AutoCharge uint64 `default:"1"`
|
||||
AutoCharge uint32 `default:"1"`
|
||||
// 超no的结束时间建议尽可能大
|
||||
VipEndTime uint64 `default:"4294967295"`
|
||||
VipEndTime uint32 `default:"4294967295"`
|
||||
// 邀请活动建议先给固定值0
|
||||
FreshManBonus uint64
|
||||
FreshManBonus uint32
|
||||
// 超no芯片列表*(80字节)
|
||||
NonoChipList [80]byte `array_serialize:"fixed_length,80"`
|
||||
// 50字节,默认值为3
|
||||
DailyResArr [50]byte `array_serialize:"fixed_length,50"`
|
||||
// 教官id
|
||||
TeacherID uint64
|
||||
TeacherID uint32
|
||||
// 学员id
|
||||
StudentID uint64
|
||||
StudentID uint32
|
||||
// 毕业人数
|
||||
GraduationCount uint64
|
||||
GraduationCount uint32
|
||||
// 默认值为0
|
||||
MaxPuniLv uint64 `default:"0"`
|
||||
MaxPuniLv uint32 `default:"0"`
|
||||
// 精灵的最高等级
|
||||
PetMaxLevel uint64
|
||||
PetMaxLevel uint32
|
||||
// 所有的精灵的数量
|
||||
AllPetNumber uint64
|
||||
AllPetNumber uint32
|
||||
// 精灵王之战胜场
|
||||
MonKingWin uint64
|
||||
MonKingWin uint32
|
||||
// 勇者之塔当前到达的层数
|
||||
CurrentStage uint64
|
||||
CurrentStage uint32
|
||||
// 试炼之塔最大胜利的层数
|
||||
MaxStage uint64
|
||||
MaxStage uint32
|
||||
// 试炼之塔当前到达的层数
|
||||
CurrentFreshStage uint64
|
||||
CurrentFreshStage uint32
|
||||
// 试炼之塔最大胜利的层数
|
||||
MaxFreshStage uint64
|
||||
MaxFreshStage uint32
|
||||
// 星际擂台连胜
|
||||
MaxArenaWins uint64
|
||||
MaxArenaWins uint32
|
||||
// 未知默认0
|
||||
TwoTimes uint64 `default:"0"`
|
||||
TwoTimes uint32 `default:"0"`
|
||||
// 未知默认0
|
||||
ThreeTimes uint64 `default:"0"`
|
||||
ThreeTimes uint32 `default:"0"`
|
||||
// 是否自动战斗(未知默认值0)
|
||||
AutoFight uint64 `default:"0"`
|
||||
AutoFight uint32 `default:"0"`
|
||||
// 自动战斗剩余的场次(未知默认值0)
|
||||
AutoFightTime uint64 `default:"0"`
|
||||
AutoFightTime uint32 `default:"0"`
|
||||
// 能量吸收仪剩余次数(未知待定默认值0)
|
||||
EnergyTime uint64 `default:"0"`
|
||||
EnergyTime uint32 `default:"0"`
|
||||
// 学习力吸收仪剩余次数(未知待定默认值0)
|
||||
LearnTimes uint64 `default:"0"`
|
||||
LearnTimes uint32 `default:"0"`
|
||||
// 未知默认0
|
||||
MonBattleMedal uint64 `default:"0"`
|
||||
MonBattleMedal uint32 `default:"0"`
|
||||
// 未知默认0
|
||||
RecordCount uint64 `default:"0"`
|
||||
RecordCount uint32 `default:"0"`
|
||||
// 未知默认0
|
||||
ObtainTm uint64 `default:"0"`
|
||||
ObtainTm uint32 `default:"0"`
|
||||
// 当前在孵化的元神珠id
|
||||
SoulBeadItemID uint64
|
||||
SoulBeadItemID uint32
|
||||
// 未知默认0
|
||||
ExpireTm uint64 `default:"0"`
|
||||
ExpireTm uint32 `default:"0"`
|
||||
// 未知默认0
|
||||
FuseTimes uint64 `default:"0"`
|
||||
FuseTimes uint32 `default:"0"`
|
||||
// 玩家有没有nono
|
||||
HasNono uint64 `default:"1"`
|
||||
HasNono uint32 `default:"1"`
|
||||
// 玩家有没有超能nono
|
||||
SuperNono uint64 `default:"1"`
|
||||
SuperNono uint32 `default:"1"`
|
||||
// 默认值-1
|
||||
NonoState uint64 `default:"4294967295"`
|
||||
NonoState uint32 `default:"4294967295"`
|
||||
// nono的颜色
|
||||
NonoColor uint64
|
||||
NonoColor uint32
|
||||
// nono的名字 必须要补齐到16位
|
||||
NonoNick [16]byte `array_serialize:"fixed_length,16"`
|
||||
// 猜测为战队信息24字节
|
||||
@@ -157,13 +153,13 @@ type LoginUserInfo struct {
|
||||
// 1字节 无内容
|
||||
Reserved byte
|
||||
// 默认值为0
|
||||
Badge uint64 `default:"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 []PetInfo
|
||||
PetList []pet.PetInfo
|
||||
// 穿戴装备 8字节
|
||||
Clothes []PeopleItemInfo
|
||||
}
|
||||
@@ -178,7 +174,7 @@ func NewLoginUserInfo() *LoginUserInfo {
|
||||
VipValue: 80000,
|
||||
VipStage: 1,
|
||||
AutoCharge: 1,
|
||||
VipEndTime: uint64(^uint32(0)),
|
||||
VipEndTime: uint32(^uint32(0)),
|
||||
TwoTimes: 0,
|
||||
ThreeTimes: 0,
|
||||
AutoFight: 0,
|
||||
@@ -192,7 +188,7 @@ func NewLoginUserInfo() *LoginUserInfo {
|
||||
FuseTimes: 0,
|
||||
HasNono: 1,
|
||||
SuperNono: 1,
|
||||
NonoState: uint64(^uint32(0)),
|
||||
NonoState: uint32(^uint32(0)),
|
||||
Badge: 0,
|
||||
}
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ type ServerInfo struct {
|
||||
// 当前服务器玩家在线数量, 供SWF显示
|
||||
UserCnt uint32
|
||||
// 服务器IP, 16字节UTF-8, 不足16补齐到16
|
||||
IP []byte `v:"FIXED_LENGTH|length:16"`
|
||||
IP string `serialize:"fixed:16"` // 定长模式:16字节
|
||||
// 端口
|
||||
Port uint16
|
||||
// 好友在线的个数
|
||||
@@ -19,7 +19,7 @@ func NewServerInfo() *ServerInfo {
|
||||
return &ServerInfo{
|
||||
OnlineID: 0,
|
||||
UserCnt: 0,
|
||||
IP: []byte{},
|
||||
IP: "",
|
||||
Port: 0,
|
||||
Friends: 0,
|
||||
}
|
||||
|
||||
21
common/core/info/pet/PetEffectInfo.go
Normal file
21
common/core/info/pet/PetEffectInfo.go
Normal file
@@ -0,0 +1,21 @@
|
||||
package pet
|
||||
|
||||
// PetEffectInfo 精灵特性信息结构体
|
||||
type PetEffectInfo struct {
|
||||
ItemID uint32 // 特性晶片对应的物品id
|
||||
Status byte // 默认为1
|
||||
LeftCount byte // 未知默认为0
|
||||
EffectID uint16 // 特性id
|
||||
Reserve1 byte // 保留字段1
|
||||
Reserve2 byte // 保留字段2无作用
|
||||
Reserve3 byte // 保留字段3
|
||||
Reserve4 [13]byte // 保留字段4 占13字节
|
||||
}
|
||||
|
||||
// NewPetEffectInfo 创建一个新的精灵特性信息实例
|
||||
func NewPetEffectInfo() *PetEffectInfo {
|
||||
return &PetEffectInfo{
|
||||
Status: 1,
|
||||
Reserve4: [13]byte{},
|
||||
}
|
||||
}
|
||||
54
common/core/info/pet/PetInfo.go
Normal file
54
common/core/info/pet/PetInfo.go
Normal file
@@ -0,0 +1,54 @@
|
||||
package pet
|
||||
|
||||
import (
|
||||
"blazing/common/core/info/pet/skill"
|
||||
"time"
|
||||
)
|
||||
|
||||
// PetInfo 精灵信息结构体
|
||||
type PetInfo struct {
|
||||
ID uint32 // 精灵编号
|
||||
Name string `serialize:"fixed:16"` // 定长模式:16字节 // 名字 默认为全0 但要补齐到16字节
|
||||
DV uint32 // 个体值
|
||||
Nature uint32 // 性格
|
||||
Level uint32 // 等级
|
||||
Exp uint32 // 当前等级已经获得的经验
|
||||
LvExp uint32 // 当前等级所需的经验
|
||||
NextLvExp uint32 // 升到下一级的经验
|
||||
HP uint32 // 当前生命
|
||||
MaxHP uint32 // 最大生命
|
||||
Attack uint32 // 攻击
|
||||
Defence uint32 // 防御
|
||||
SpecialAttack uint32 // 特攻
|
||||
SpecialDefence uint32 // 特防
|
||||
Speed uint32 // 速度
|
||||
EVHP uint32 // 生命学习力
|
||||
EVAttack uint32 // 攻击学习力
|
||||
EVDefence uint32 // 防御学习力
|
||||
EVSpecialAttack uint32 // 特攻学习力
|
||||
EVSpecialDefense uint32 // 特防学习力
|
||||
EVSpeed uint32 // 速度学习力
|
||||
SkillSize uint32 // 技能个数
|
||||
SkillList [4]skill.SkillInfo `serialize:"fixed:8"` // 32字节 技能信息 必须插入4条skillInfo,若技能信息为空则要赋值成0
|
||||
CatchTime uint32 // 捕捉时间
|
||||
CatchMap uint32 // 捕捉地图
|
||||
CatchRect uint32 // 未知默认为0
|
||||
CatchLevel uint32 // 捕获等级 默认为0
|
||||
EffectInfo []PetEffectInfo `serialize:"varlen:2"` // 特性列表, 长度在头部以UShort存储
|
||||
SkinID uint32 // 皮肤id默认为0
|
||||
Shiny uint32 // 是不是闪
|
||||
}
|
||||
|
||||
// NewPetInfo 创建一个新的精灵信息实例
|
||||
func NewPetInfo() *PetInfo {
|
||||
return &PetInfo{
|
||||
Name: "",
|
||||
SkillList: [4]skill.SkillInfo{},
|
||||
EffectInfo: make([]PetEffectInfo, 0),
|
||||
}
|
||||
}
|
||||
|
||||
// GetCatchTimeAsTime 将捕捉时间转换为time.Time类型
|
||||
func (p *PetInfo) GetCatchTimeAsTime() time.Time {
|
||||
return time.Unix(int64(p.CatchTime), 0)
|
||||
}
|
||||
18
common/core/info/pet/skill/ChangeSkillInfo.go
Normal file
18
common/core/info/pet/skill/ChangeSkillInfo.go
Normal file
@@ -0,0 +1,18 @@
|
||||
package skill
|
||||
|
||||
// ChangeSkillInfo 精灵技能变更信息结构体
|
||||
type ChangeSkillInfo struct {
|
||||
CatchTime uint32 // 精灵生成时间
|
||||
Reserved uint32 // 填充字段,默认为1
|
||||
Reserved1 uint32 // 填充字段,默认为1
|
||||
HasSkill uint32 // 拥有的技能id
|
||||
ReplaceSkill uint32 // 替换技能的id
|
||||
}
|
||||
|
||||
// NewChangeSkillInfo 创建一个新的技能变更信息实例
|
||||
func NewChangeSkillInfo() *ChangeSkillInfo {
|
||||
return &ChangeSkillInfo{
|
||||
Reserved: 1,
|
||||
Reserved1: 1,
|
||||
}
|
||||
}
|
||||
15
common/core/info/pet/skill/SkillInfo.go
Normal file
15
common/core/info/pet/skill/SkillInfo.go
Normal file
@@ -0,0 +1,15 @@
|
||||
package skill
|
||||
|
||||
// SkillInfo 技能信息结构体
|
||||
type SkillInfo struct {
|
||||
ID uint32 // 技能id
|
||||
PP uint32 // 剩余pp
|
||||
}
|
||||
|
||||
// NewSkillInfo 创建一个新的技能信息实例
|
||||
func NewSkillInfo(id, pp uint32) *SkillInfo {
|
||||
return &SkillInfo{
|
||||
ID: id,
|
||||
PP: pp,
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user