Files
bl/logic/service/fight/cmd.go
昔念 a42bd76517 ```
feat(fight): 新增使用宠物物品功能

- 在Controller中新增UsePetItemInboundInfo方法,用于处理宠物物品使用请求
- 在FightI接口中添加UseItem方法定义,支持传入捕获时间和物品ID
- 修改UseItemAction结构体,增加CacthTime字段以记录宠物捕获时间
- 新增UsePetItemInboundInfo结构体,定义宠物物品使用的消息格式
- 在FightC中实现UseItem方法,将使用物品的动作发送到actionChan
```
2025-11-08 01:30:53 +08:00

92 lines
3.0 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 fight
import (
_ "blazing/logic/service/fight/effect"
"blazing/logic/service/fight/info"
"blazing/logic/service/player"
)
// 野怪对战包
type FightNpcMonsterInboundInfo struct {
Head player.TomeeHeader `cmd:"2408" struc:"[0]pad"`
// Number 地图刷新怪物结构体对应的序号1-9的位置序号
Number uint32 `fieldDesc:"地图刷新怪物结构体对应的序号 1 - 9 的位置序号" `
}
type ChallengeBossInboundInfo struct {
Head player.TomeeHeader `cmd:"2411" struc:"[0]pad"`
BossId uint32 `json:"bossId"`
}
type NullOutboundInfo struct {
}
// 准备战斗包
type ReadyToFightInboundInfo struct {
Head player.TomeeHeader `cmd:"2404" struc:"[0]pad"`
}
// 战斗逃跑
type EscapeFightInboundInfo struct {
Head player.TomeeHeader `cmd:"2410" struc:"[0]pad"`
}
// HandleFightInviteInboundInfo 处理战斗邀请的入站消息
type HandleFightInviteInboundInfo struct {
Head player.TomeeHeader `cmd:"2403" struc:"[0]pad"`
UserID uint32 `json:"userId" codec:"userId,uint"` // 邀请我对战人的userid
Flag uint32 `json:"flag" codec:"flag,uint"` // 1为同意对战 0为取消对战
Mode info.EnumBattleMode `json:"mode" codec:"mode,uint"` // 战斗类型 1 = 1v1 2 = 6v6
}
type InviteToFightInboundInfo struct {
Head player.TomeeHeader `cmd:"2401" struc:"[0]pad"`
UserID uint32 `codec:"true"`
// Mode 战斗类型 1 = 1v1 2 = 6v6
Mode info.EnumBattleMode `codec:"true"`
}
type InviteFightCancelInboundInfo struct {
Head player.TomeeHeader `cmd:"2402" struc:"[0]pad"`
}
// 2502的回复包 PVP邀请消息
type NoteHandleFightInviteOutboundInfo struct {
UserID uint32
Nickname string `struc:"[16]byte"` // 固定长度16字节
Result uint32 // 0=拒绝 1=同意 2=在线超6小时 3=无出战精灵 4=不在线
}
type UseSkillInInfo struct {
Head player.TomeeHeader `cmd:"2405" struc:"[0]pad"`
// 技能id
SkillId uint32
}
type ChangePetInboundInfo struct {
Head player.TomeeHeader `cmd:"2407" struc:"[0]pad"`
// CatchTime 捕捉时间
CatchTime uint32 `json:"catchTime"`
}
type CatchMonsterInboundInfo struct {
Head player.TomeeHeader `cmd:"2409" struc:"[0]pad"`
// CapsuleId 胶囊id
CapsuleId uint32 `json:"capsuleId" fieldDescription:"胶囊id" uint:"true"`
}
type LoadPercentInboundInfo struct {
Head player.TomeeHeader `cmd:"2441" struc:"[0]pad"`
Percent uint32 `fieldDescription:"加载百分比"`
}
// UsePetItemInboundInfo 对应Java的UsePetItemInboundInfo实现InboundMessage接口
type UsePetItemInboundInfo struct {
Head player.TomeeHeader `cmd:"2406" struc:"[0]pad"`
// 字段首字母大写以导出对应Java的可访问性配合@Data的getter/setter
CatchTime uint32 `description:"精灵捕获时间" codec:"catchTime"` // @UInt long 对应Go的uint32无符号64位
ItemId uint32 `description:"使用的物品ID" codec:"itemId"` // 结构体标签模拟@FieldDescription和@AutoCodec注解
Reversed1 uint32 `description:"填充字段 0" codec:"reversed1"` // reversed1对应原Java的填充字段
}