feat(fight): 优化擂台战斗逻辑与状态管理 - 修改了擂台主人设置逻辑,引入 `Set` 方法统一处理玩家信息更新 - 增加对擂主是否可战斗的判断,防止无效挑战 - 调整连胜计算和广播机制,确保数据一致性 - 修复擂台挑战失败时的状态回滚问题 - 引入错误码替代硬编码返回值,提高代码可读性与维护性 - 统一访问擂台玩家的方式,移除冗余字段
80 lines
3.6 KiB
Go
80 lines
3.6 KiB
Go
package user
|
||
|
||
import "blazing/logic/service/common"
|
||
|
||
type ChatInboundInfo struct {
|
||
Head common.TomeeHeader `cmd:"2102" struc:"skip"`
|
||
Reserve uint32 `json:"reserve" fieldDescription:"填充 默认值为0" uint:"true"` // @UInt long reserve,无符号长整数
|
||
MessageLen uint32 `struc:"sizeof=Message"`
|
||
Message string `json:"message" fieldDescription:"消息内容, 结束符为utf-8的数字0"` // 消息内容,包含utf-8空字符('\x00')作为结束符
|
||
}
|
||
type ChatOutboundInfo struct {
|
||
SenderId uint32 `description:"发送人的米米号" codec:"uint"` // @UInt long -> uint64
|
||
SenderNickname string `struc:"[16]byte" default:"seer" json:"nick"` // 固定16字节的字符串,对应@ArraySerialize注解
|
||
ToId uint32 `description:"可能是私聊用的 公屏发送时为0" codec:"uint"` // @UInt long -> uint64
|
||
MessageLen uint32 `struc:"sizeof=Message"`
|
||
Message string `description:"这里的内容没有结束符" codec:"string"` // String -> string
|
||
}
|
||
type ChangeColorInboundInfo struct {
|
||
Head common.TomeeHeader `cmd:"2063" struc:"skip"`
|
||
|
||
Color uint32 `codec:"color"` // 更改的颜色 rgb (对应Java的@UInt long)
|
||
}
|
||
type ChangeColorOutboundInfo struct {
|
||
UserId uint32 `codec:"userId"` // 更改人的用户id (对应Java的@UInt long)
|
||
Color uint32 `codec:"color"` // 前端发来的更改的颜色rgb值 (对应Java的@UInt long)
|
||
Texture uint32 `codec:"texture"` // 大概是当前的涂装 by 7 (对应Java的@UInt long)
|
||
Coins uint32 `codec:"coins"` // 扣除200豆子后返回的剩余豆子 (对应Java的@UInt long)
|
||
}
|
||
type ChangeDoodleInboundInfo struct {
|
||
Head common.TomeeHeader `cmd:"2062" struc:"skip"`
|
||
Id uint32 `codec:"id"` // 涂鸦ID (对应Java的@UInt long)
|
||
Color uint32 `codec:"color"` // 前端发来的更改的颜色rgb值 (对应Java的@UInt long)
|
||
}
|
||
|
||
type ChangeDoodleOutboundInfo struct {
|
||
UserId uint32 `codec:"userId"` // 更改人的userid (对应Java的@UInt long)
|
||
Color uint32 `codec:"color"` // 使用前端发的id 从itemInfo中获得 (对应Java的@UInt long)
|
||
Texture uint32 `codec:"texture"` // 使用前端发的id 从itemInfo中获得 (对应Java的@UInt long)
|
||
Coins uint32 `codec:"coins"` // 扣除对应豆子后返回的剩余豆子 (对应Java的@UInt long)
|
||
}
|
||
type ChangeNONOColorInboundInfo struct {
|
||
Head common.TomeeHeader `cmd:"9012" struc:"skip"`
|
||
|
||
Color uint32 `codec:"color"` // 更改的颜色 rgb (对应Java的@UInt long)
|
||
}
|
||
type ChangeNONOColorOutboundInfo struct {
|
||
Sataus uint32 `codec:"userId"` // 更改人的用户id (对应Java的@UInt long)
|
||
Color uint32 `codec:"color"` // 前端发来的更改的颜色rgb值 (对应Java的@UInt long)
|
||
|
||
}
|
||
|
||
// C2SDanceAction 前端发送给后端的舞蹈动作请求结构体
|
||
// 对应 C# 的 C2S_DANCE_ACTION
|
||
type C2SDanceAction struct {
|
||
Head common.TomeeHeader `cmd:"2103" struc:"skip"`
|
||
|
||
// Reserve 固定参数(值为 10001)
|
||
Reserve uint32 `struc:"uint32,big"`
|
||
// Type 动作类型(3 = 蹲下)
|
||
Type uint32 `struc:"uint32,big"`
|
||
}
|
||
type S2CDanceAction struct {
|
||
// UserID 玩家ID
|
||
UserID uint32 `struc:"uint32,big"`
|
||
// Type 动作类型(透传前端的 type,3 = 蹲下)
|
||
Type uint32 `struc:"uint32,big"`
|
||
}
|
||
type C2SPEOPLE_TRANSFROM struct {
|
||
Head common.TomeeHeader `cmd:"2111" struc:"skip"`
|
||
|
||
// Reserve uint32// 固定参数(值为 10001)
|
||
SuitID uint32 `struc:"uint32,big"`
|
||
}
|
||
type S2CPEOPLE_TRANSFROM struct {
|
||
// UserID 玩家ID
|
||
UserID uint32 `struc:"uint32,big"`
|
||
// Type 动作类型(透传前端的 type,3 = 蹲下)
|
||
SuitID uint32 `struc:"uint32,big"`
|
||
}
|