feat(xml): 更新任务配置结构以支持新能量节点解析

将原先的 TalkCount 和 TalkEntry 结构替换为 TalkRoot 和 Energy,
以适配新的 XML 配置格式。同时更新了相关引用代码以确保类型一致性。

refactor(item): 优化物品添加方法支持可变参数传入

调整 ItemAdd 方法签名,从接收数组改为接收可变参数,
提升调用灵活性,并同步修改控制器中对物品添加逻辑的处理方式。

feat(login): 修复每日重置逻辑并引入 gtime 时间管理

修正登录时每日任务重置区间错误(400~100 改为 400~500),
并改用 gtime.Now().Time 提供更准确的时间戳记录与比较,
同时增强挖矿次数等
This commit is contained in:
2025-10-23 01:02:19 +08:00
parent 83fb06a229
commit 9739598df2
13 changed files with 228 additions and 42 deletions

View File

@@ -38,7 +38,7 @@ var (
MapConfig Maps //地图配置
ItemsConfig Items //物品配置
EffectArgsConfig EffectArg //arg参数
TalkConfig TalkCount //任务配置
TalkConfig TalkRoot //任务配置
//Monster MonsterRoot //野怪配置
MonsterMap map[int]TMapConfig
//Skill MovesTbl //技能配置
@@ -67,7 +67,7 @@ func initfile() {
})
TalkConfig = getXml[TalkCount](path + "talk.xml")
TalkConfig = getXml[TalkRoot](path + "talk.xml")
Monster := getXml[MonsterRoot](path + "地图配置野怪.xml")

View File

@@ -4,20 +4,21 @@ import (
"github.com/ECUST-XX/xml" // 注意需确保该xml库与示例中使用的一致
)
// TalkCount 根节点对应<talk_count>标签
// 注意xml.Name需指定命名空间与XML中的xmlns保持一致
type TalkCount struct {
XMLName xml.Name `xml:"nieo.seer.org.talk-count talk_count"`
Entries []TalkEntry `xml:"entry"` // 包含所有entry节点
// 定义XML根节点对应的结构体
// 根节点<root>包含多个<energy>子节点,用切片接收
type TalkRoot struct {
XMLName xml.Name `xml:"root"` // 指定根节点名称为root
Energies []Energy `xml:"energy"` // 子节点<energy>映射为切片,标签对应节点
}
// Entry 单个条目配置,对应<entry>标签
type TalkEntry struct {
ID int `xml:"id,attr"` // 条目ID
ItemID int `xml:"item_id,attr"` // 物品ID
ItemMinCount int `xml:"item_min_count,attr"` // 物品最小数量
ItemMaxCount int `xml:"item_max_count,attr"` // 物品最大数量
Desc string `xml:"desc,attr"` // 描述信息
Count int `xml:"count,attr"` // 计数
Policy string `xml:"policy,attr,omitempty"` // 策略可选如week
// 定义<energy>节点对应的结构体
// 每个字段对应<energy>的属性,用`xml:"属性名,attr"`标签标识
type Energy struct {
Type uint64 `xml:"type,attr"` // 类别ID服务器规定属性type
MapID uint64 `xml:"mapID,attr"` // 矿产所在地图ID属性mapID
Name string `xml:"name,attr"` // 矿产名字属性name
CollectType string `xml:"collectType,attr"` // 操作类型(挖掘/采集/采摘属性collectType
CollectCnt uint64 `xml:"collectCnt,attr"` // 每天采集次数属性collectCnt
Unit string `xml:"unit,attr"` // 单位(块/罐/个属性unit
Dir uint64 `xml:"dir,attr"` // 人模朝向方向属性dir
}