feat(pet): 添加宠物收集功能和称号系统

- 实现了宠物收集任务状态查询功能
- 新增Collect方法处理宠物收集逻辑,包括类型验证和ID合法性检查
- 创建validTypeIDMap映射表统一管理合法的类型ID集合
- 重构任务状态判断逻辑,基于model.Completion状态进行判断

refactor(map): 统一玩家信息结构体

- 将OutInfo重命名为SimpleInfo并添加Title字段
- 更新EnterMap方法的返回类型为SimpleInfo
- 修改space包中的UserInfo映射类型为SimpleInfo

feat(task): 集成称号奖励到任务系统

- 在PlayerInfo结构体中添加Title字段
- 扩展TaskConfig模型支持称号奖励配置
- 更新用户信息服务处理用户名大小写转换

refactor(space): 优化空间服务数据结构

- 更新GetInfo方法返回SimpleInfo切片
- 调整UserInfo CsMap泛型类型参数
- 修改ListMapPlayerOutboundInfo中Player数组类型

style(login): 规范化用户名输入处理

- 登录时将用户名转换为小写进行比较
- 使用strings.EqualFold进行大小
This commit is contained in:
昔念
2026-01-17 00:47:41 +08:00
parent b6754df9a0
commit 08ebf849eb
17 changed files with 168 additions and 61 deletions

View File

@@ -11,7 +11,7 @@ type ListMapPlayerOutboundInfo struct {
PlayersLen uint32 `struc:"sizeof=Player" json:"player_len"`
// 穿戴装备的信息
Player []OutInfo ` json:"player"`
Player []SimpleInfo ` json:"player"`
}
// PeopleWalkOutboundInfo PeopleWalkOutboundInfo类实现OutboundMessage接口
@@ -45,11 +45,12 @@ type MapBossInfo struct {
//var planetmap utils.SyncMap[] //= space.NewSyncMap()
// PeopleInfo PeopleInfo类实现OutboundMessage接口
type OutInfo struct {
type SimpleInfo struct {
UserID uint32 `struc:"uint32" fieldDesc:"米米号" json:"user_id"`
// 16字节昵称
Nick string `struc:"[16]byte" fieldDesc:"16字节昵称" json:"nick"`
Nick string `struc:"[16]byte" fieldDesc:"16字节昵称" json:"nick"`
Title uint32 `struc:"uint32" json:"title"` // 称号
// 机器人人物颜色 00 rgb
Color uint32 `struc:"uint32" fieldDesc:"机器人人物颜色 00 rgb" json:"color"`
@@ -150,8 +151,8 @@ type OutInfo struct {
Clothes []model.PeopleItemInfo `fieldDesc:"穿戴装备的信息" json:"clothes"`
}
func NewOutInfo() *OutInfo {
l := &OutInfo{}
func NewOutInfo() *SimpleInfo {
l := &SimpleInfo{}
// 自动填充 struct tag 里的 default 值
if err := defaults.Set(l); err != nil {