Files
bl/logic/service/item/pet.go
昔念 004eec219c feat(item): 添加 NatureProbs 字段并优化宠物道具使用逻辑
- 在 `Item` 结构体中新增 `NatureProbs` 字段,用于支持性格概率配置
- 重构 `ItemUsePet` 控制器方法,引入处理器注册机制统一管理道具效果
- 修复神经元相关道具的特殊处理逻辑,增强代码可维护性
- 调整 `S2C_USE_PET_ITEM_OUT_OF_FIGHT` 响应结构体,增加技能列表长度字段
- 修改 `ResetNature` 方法命名及判断条件,提升语义清晰度与健壮性
- 新增 `PetInfo_One_Unscoped` 查询方法以支持软删除数据访问
- 实
2025-12-07 01:43:12 +08:00

40 lines
1.7 KiB
Go

package item
import (
"blazing/logic/service/common"
"blazing/modules/blazing/model"
)
// C2S_USE_PET_ITEM_OUT_OF_FIGHT 客户端→服务端:非战斗场景使用宠物道具
type C2S_USE_PET_ITEM_OUT_OF_FIGHT struct {
Head common.TomeeHeader `cmd:"2326" struc:"skip"`
CatchTime uint32 `json:"catch_time"` // 使用物品的精灵的捕获时间
ItemID uint32 `json:"item_id"` // 使用的物品ID
}
// S2C_USE_PET_ITEM_OUT_OF_FIGHT 服务端→客户端:非战斗场景使用宠物道具回包
type S2C_USE_PET_ITEM_OUT_OF_FIGHT struct {
CatchTime uint32 `json:"catch_time"` // 使用物品的精灵的捕获时间
ID uint32 `json:"id"` // 精灵ID
Nick string `struc:"[16]byte" fieldDesc:"16字节昵称" json:"nick"`
Nature uint32 `json:"nature"` // 精灵性格
Dv uint32 `json:"dv"` // 精灵个体值
Level uint32 `json:"lv"` // 精灵等级
Hp uint32 `json:"hp"` // 当前血量
MaxHp uint32 `json:"maxhp"` // 最大血量
Exp uint32 `json:"exp"` // 升级所需经验
// * ev:生命学习力,攻击学习力,防御学习力,特攻学习力,特防学习力,速度学习力
Ev [6]uint32 `fieldDesc:"属性" `
// * battle_lv: atk(0), def(1), sp_atk(2), sp_def(3), spd(4), accuracy(5)
Prop [5]uint32 `fieldDesc:"属性" `
SkillListLen uint32 `struc:"sizeof=SkillList"`
SkillList []model.SkillInfo `json:"skilllist"` // 技能数组
}
type C2S_PET_RESET_NATURE struct {
Head common.TomeeHeader `cmd:"2343" struc:"skip"`
CatchTime uint32 // 精灵捕捉时间
Nature uint32 // 目标性格值
ItemId uint32 // 消耗的物品ID
}