Files
bl/logic/service/fight/init.go
昔念 54a4876beb ```
feat(fight): 添加XML配置解析功能用于技能效果映射

- 引入xml和gfile包用于XML文件解析
- 添加utils工具包用于数据转换
- 实现XML配置文件读取和解析逻辑
- 建立技能ID与效果描述的映射关系
- 添加调试输出显示技能效果对应关系
```
2026-03-07 22:49:20 +08:00

60 lines
1.3 KiB
Go

package fight
import (
"blazing/common/data/xmlres"
"blazing/common/utils"
"blazing/logic/service/fight/input"
"encoding/xml"
"fmt"
"github.com/gogf/gf/v2/os/gfile"
)
func TestSKill() {
// var root xmlres.Monsters
// // // 解析XML字符串
// err := xml.Unmarshal(gfile.GetBytes("/public/binaryData/69_com.robot.core.config.xml.PetXMLInfo_xmlClass_com.robot.core.config.xml.PetXMLInfo_xmlClass.bin"), &root)
// if err != nil {
// panic(err)
// }
var skimap = make(map[int]int)
for _, v := range xmlres.PetMAP {
if v.ID > 2000 {
continue
}
for _, v1 := range v.LearnableMoves.Moves {
for _, v3 := range xmlres.SkillMap[int(v1.ID)].SideEffectS {
t := input.Geteffect(input.EffectType.Skill, v3)
if t == nil {
k, ok := skimap[v3]
if ok {
skimap[v3] = k + 1
} else {
skimap[v3] = 1
}
//println("技能效果不存在", v3)
}
}
}
}
var root xmlres.MovesTbl
err := xml.Unmarshal(gfile.GetBytes("public/config/227.xml"), &root)
if err != nil {
panic(err)
}
ttt := utils.ToMap(root.EFF, func(t xmlres.SideEffect) int {
return t.ID
})
for k, v := range skimap {
fmt.Println(k, v, ttt[1000000+k].Des)
}
fmt.Println("实现效果数量", len(input.NodeM), "技能效果不存在数量", len(skimap))
// g.Dump(skimap)
}