feat(xmlres): 添加任务数据加载与初始化逻辑 在 xmlres 包中新增 TaskMap 用于存储任务数据,并在 initfile 函数中 加载 task.xml 文件内容。同时调整 login 控制器中的任务重置逻辑,根据 任务类型每日重置任务状态。修复 pet 控制器释放宠物时的数据更新问题。 战斗系统中增加 Effect 的 OnMiss 回调处理,并修正状态效果映射关系。 修复 PVP 邀
42 lines
1.8 KiB
Go
42 lines
1.8 KiB
Go
package xmlres
|
||
|
||
import "github.com/ECUST-XX/xml"
|
||
|
||
// Tasks 根节点:包含所有任务
|
||
type Tasks struct {
|
||
XMLName xml.Name `xml:"tasks"`
|
||
Tasks []Task `xml:"task"` // 任务列表
|
||
}
|
||
|
||
// Task 任务节点:对应 <task>
|
||
type Task struct {
|
||
// 任务属性(XML属性)
|
||
ID int `xml:"ID,attr"` // 任务标识
|
||
Name string `xml:"name,attr"` // 任务名
|
||
Parent string `xml:"parent,attr"` // 父级任务(格式:ID|ID)
|
||
IsMat int `xml:"isMat,attr"` // 父级匹配类型(0单配/1全配)
|
||
Type int `xml:"type,attr"` // 任务类型(0常规/1日常)
|
||
IsDir int `xml:"isDir,attr"` // 是否直接完成(0否/1是)
|
||
Doc string `xml:"doc,attr"` // 文档说明
|
||
Alert string `xml:"alert,attr"` // 提示说明
|
||
IsEnd int `xml:"isEnd,attr"` // 是否结束任务(0否/1是)
|
||
Especial *int `xml:"especial,attr"` // 可选:是否需要特殊提示框(1是,nil表示无)
|
||
Condition *string `xml:"condition,attr"` // 可选:接任务限制条件
|
||
|
||
// 任务子节点
|
||
Des *string `xml:"des"` // 可选:<des>节点(CDATA)
|
||
TaskDes *string `xml:"taskDes"` // 可选:<taskDes>节点(多段CDATA用$$分隔)
|
||
ProDes *string `xml:"proDes"` // 可选:<proDes>节点(CDATA)
|
||
Pros []Pro `xml:"pro"` // 步骤列表:<pro>节点集合
|
||
}
|
||
|
||
// Pro 步骤节点:对应 <pro>
|
||
type Pro struct {
|
||
Name string `xml:"name,attr"` // 步骤名
|
||
Parent string `xml:"parent,attr"` // 父级步骤(格式:步骤|步骤)
|
||
IsMat string `xml:"isMat,attr"` // 父级步骤匹配类型(0单配/1全配,可能为空)
|
||
Doc string `xml:"doc,attr"` // 文档说明
|
||
Alert string `xml:"alert,attr"` // 提示说明
|
||
IsEnd int `xml:"isEnd,attr"` // 是否最后一步(0否/1是,可选)
|
||
}
|