feat(xmlres): 添加任务数据加载与初始化逻辑

在 xmlres 包中新增 TaskMap 用于存储任务数据,并在 initfile 函数中
加载 task.xml 文件内容。同时调整 login 控制器中的任务重置逻辑,根据
任务类型每日重置任务状态。修复 pet 控制器释放宠物时的数据更新问题。
战斗系统中增加 Effect 的 OnMiss 回调处理,并修正状态效果映射关系。
修复 PVP 邀
This commit is contained in:
2025-10-20 23:59:49 +08:00
parent f53028d1fc
commit b90bceafd9
10 changed files with 83 additions and 25 deletions

View File

@@ -2,6 +2,7 @@ package controller
import (
"blazing/common/data/share"
"blazing/common/data/xmlres"
"blazing/cool"
"fmt"
@@ -13,6 +14,7 @@ import (
"blazing/logic/service/maps"
"blazing/logic/service/player"
"blazing/logic/service/space"
"blazing/modules/blazing/model"
blservice "blazing/modules/blazing/service"
"context"
"time"
@@ -58,27 +60,31 @@ func (h *Controller) Login(data *user.MAIN_LOGIN_IN, c gnet.Conn) (result *user.
//每天login时候检查重置时间然后把电池任务挖矿重置
//挖矿需要单独存,因为防止多开挖矿
t.Info.TimeToday = 0 //重置电池
defer func() {
// for i := 400; i < 500; i++ { //每日任务区段
// t.Info.TaskList[i] = 0 //重置每日任务
// t.Service.Task((uint32(i)), func(te *model.TaskEX) bool {
// te.Data = make([]uint32, 0)
// return true
// })
for i := 400; i < 100; i++ { //每日任务区段
// }
for i := 400; i < 50; i++ { //每日任务区段
t.Info.DailyResArr[i] = 0 //重置每日任务
if xmlres.TaskMap[i].Type == 1 { //日常任务
t.Info.TaskList[i-1] = 0 //重置每日任务
t.Service.Task(uint32(i), func(t *model.TaskEX) bool {
t.Data = []uint32{}
return true
})
}
t.Service.Talk(func(m *map[uint32]uint32) bool {
m = &map[uint32]uint32{}
return true
})
}()
}
for i := 0; i < 50; i++ { //每日任务区段
t.Info.DailyResArr[i] = 0 //重置每日任务
}
t.Service.Talk(func(m *map[uint32]uint32) bool { //挖矿
m = &map[uint32]uint32{}
return true
})
}
t.Info.TaskList[3] = 3 //新手任务
t.CompleteLogin() //通知客户端登录成功