refactor(blazing): 重构项目并优化数据结构

- 更新 LoginUserInfo 结构体,将 uint64 类型改为 uint32
- 调整 ServerInfo 结构体,将 IP 字段从 []byte 改为 string
- 移除未使用的 ArraySerialize 结构体
- 更新 ByteArray 类,修改相关方法名
- 删除未使用的 serialize 相关代码
- 优化模块导入,移除冗余依赖
This commit is contained in:
2025-06-22 12:05:07 +08:00
parent c00a87800a
commit 720294ad27
24 changed files with 631 additions and 395 deletions

View 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{},
}
}

View 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)
}

View 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,
}
}

View 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,
}
}