Files
bl/logic/service/nono/nono.go
昔念 c52c409ffc feat(player): 新增玩家累计经验查询接口
新增 PlayerExp 控制器方法,用于返回玩家的累计经验值。同时调整了经验池字段类型为 uint32 并修复相关使用逻辑。

feat(pet): 实现宠物经验增加与升级逻辑

在 Player 结构体中新增 AddPetExp 方法,支持宠物经验增长、自动升级及进化判断。升级后会重新计算面板属性并推送更新包。

feat(fight): 重构战斗伤害计算与效果系统

引入 DamageZone 和 EnumDamageType 类型,统一红伤处理流程;移除旧有的 Pet/Skill/Prop 属性获取临时修改机制,改为直接访问真实属性。更新多个技能效果实现以适配新结构。

refactor(effect): 优化技能效果初始化和生命周期方法

统一技能效果初始化方式,明确各阶段回调函数职责,如 PreActionStart、PreAttacked 等。删除已废弃的属性修改钩子函数,并更新状态类效果实现。

refactor(input): 移除 deepcopy 依赖并替换为 go-deepcopy

将原先使用的 mohae/deepcopy 替换为 barkimedes/go-deepcopy,用于战斗节点中的 effect 拷贝逻辑,提升性能和安全性。

refactor(model): 调整玩家信息字段类型

将 PlayerInfo 中的 GoldBean 字段由 int32 改为 uint32,ExpPool 字段由 int64 改为 uint32,确保数据类型一致性与合理性。

feat(nono): 增加 Nono 跟随/收回协议结构定义

新增 NonoFollowOrHomeInInfo 和 NonoFollowOutInfo 结构体,用于处理 Nono 宠物的跟随与收回操作指令。

chore(deps): 添加 go-deepcopy 依赖

在 go.mod 中引入 github.com/barkimedes/go-deepcopy 依赖库,用于替代原有的 deepcopy 工具。
2025-09-26 13:33:55 +08:00

88 lines
2.7 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package nono
import "blazing/logic/service/player"
// NonoOutboundInfo 用于表示Nono相关的出站信息
type NonoOutboundInfo struct {
// UserID: 米米号对应uint32类型无符号
UserID uint32
// Num: 未知对应uint32类型无符号
Num uint32
// Flying: 飞行状态 0为不飞行 大于0为飞行模式对应uint32类型无符号
Flying uint32
// Nick: 16字节固定长度16字节字符串
Nick string `struc:"[16]byte"`
// SuperNono: 是不是超能nono对应uint32类型无符号
SuperNono uint32
// Color: nono颜色 00 rgb对应uint32类型无符号
Color uint32
// Power: 未知, 返回的实际数值要*1000对应uint32类型无符号
Power uint32
// Mate: 未知, 返回的实际数值要*1000对应uint32类型无符号
Mate uint32
// IQ: 未知对应uint32类型无符号
IQ uint32
// AI: 未知对应uint16类型无符号短整数
AI uint16
// Birth: 未知, 返回的实际数值要除以1000对应uint32类型无符号
Birth uint32
// ChargeTime: 充电时间对应uint32类型无符号
ChargeTime uint32
// Func: 20字节固定长度20字节数组
Func [20]byte
// SuperEnergy: 超能nono能力对应uint32类型无符号
SuperEnergy uint32
// SuperLevel: 超能nono等级对应uint32类型无符号
SuperLevel uint32
// SuperStage: 超能nono阶段对应uint32类型无符号
SuperStage uint32
}
type NonoInboundInfo struct {
Head player.TomeeHeader `cmd:"9003" struc:"[0]pad"`
// 米米号
UserID uint32
}
type NonoFollowOrHomeInInfo struct {
Head player.TomeeHeader `cmd:"9019" struc:"[0]pad"`
// Flag 1为跟随 0为收回 且如果为收回收回 那么后续结构不需要发送
// 对应Java的@UInt long类型在Go中使用uint64
Flag uint32 `fieldDescription:"1为跟随 0为收回 且如果为收回 那么后续结构不需要发送" uint:"true"`
}
type NonoFollowOutInfo struct {
// UserID 米米号对应Java的@UInt long改为uint32
UserID uint32 `fieldDescription:"米米号" uint:"true"`
// SuperStage 设置的值与下面的flag变量相同改为uint32
SuperStage uint32 `fieldDescription:"设置的值与下面的flag变量相同" uint:"true"`
// Flag 1为跟随 0为收回不序列化改为uint32
Flag uint32 `fieldDescription:"1为跟随 0为收回 且如果为收回 那么后续结构不需要发送, 不序列化" uint:"true" serialize:"false"`
// NonoNick nono名字 补到16字节
NonoNick string `struc:"[16]byte"`
// Color nono颜色 rpg改为uint32
Color uint32 `fieldDescription:"nono颜色 rpg" uint:"true"`
// Power 能量值 前端显示除以1000后的值改为uint32
Power uint32 `fieldDescription:"能量值 前端显示除以1000后的值" uint:"true"`
}