feat(fight): 添加XML配置解析功能用于技能效果映射 - 引入xml和gfile包用于XML文件解析 - 添加utils工具包用于数据转换 - 实现XML配置文件读取和解析逻辑 - 建立技能ID与效果描述的映射关系 - 添加调试输出显示技能效果对应关系 ```
60 lines
1.3 KiB
Go
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)
|
|
}
|