修改战斗系统

This commit is contained in:
2025-09-19 00:29:55 +08:00
parent 60a8be8b48
commit a2eb88e9d3
27 changed files with 87540 additions and 3617 deletions

View File

@@ -0,0 +1,30 @@
package xmlres
import "github.com/ECUST-XX/xml"
// -------------------------- 1. 定义XML映射结构体 --------------------------
// NewSe 对应XML根节点 <NewSe>
type NewSe struct {
XMLName xml.Name `xml:"NewSe"` // 根节点名称
SeIdxList []NewSeIdx `xml:"NewSeIdx"` // 子节点列表 <NewSeIdx>
}
// NewSeIdx 对应XML子节点 <NewSeIdx>,映射所有属性
type NewSeIdx struct {
// 必选属性(所有<NewSeIdx>都包含)
Idx string `xml:"Idx,attr"` // 特效索引(如"1006"
Stat string `xml:"Stat,attr"` // 特效状态1:永久,2:有次数,4:异能特质,5:特殊,7:战队技能)
Eid string `xml:"Eid,attr"` // 特效ID关联前面的1-83、401-420、501-503等
Args string `xml:"Args,attr"` // 特效参数(空格分隔,如"1 5"
ArgsS []int
// 可选属性(部分<NewSeIdx>包含)
CanReset *string `xml:"CanReset,attr,omitempty"` // 是否可重置1:是)
Desc *string `xml:"Desc,attr,omitempty"` // 特效简称(如"叶绿"
Intro *string `xml:"Intro,attr,omitempty"` // 特效描述(如"草属性技能威力增加5%"
StarLevel *string `xml:"StarLevel,attr,omitempty"` // 星级0-5
Times *string `xml:"Times,attr,omitempty"` // 有效次数仅Stat=2时生效
ItemId *string `xml:"ItemId,attr,omitempty"` // 关联道具ID如"300030"
Des *string `xml:"Des,attr,omitempty"` // 道具/次数特效描述
AdditionType *string `xml:"AdditionType,attr,omitempty"` // 加成类型1:种族值,2:技能威力,3:固定属性)
AdditionNum *string `xml:"AdditionNum,attr,omitempty"` // 加成数值
}

View File

@@ -9,6 +9,7 @@ import (
"github.com/gogf/gf/v2/os/gfile"
"github.com/gogf/gf/v2/os/gfsnotify"
"github.com/gogf/gf/v2/os/glog"
"github.com/gogf/gf/v2/util/gconv"
)
var path string
@@ -33,11 +34,12 @@ var (
SkillMap map[int]Move
PetMAP map[int]PetInfo //宠物配置
NatureRootMap map[int]NatureItem
EffectMAP map[int]NewSeIdx
)
func initfile() {
path1, _ := os.Getwd()
path = path1 + "/public/assets/"
path = path1 + "/public/config/"
MapConfig = getXml[Maps](path + "210.xml")
ItemsConfig = getXml[Items](path + "43.xml")
TalkConfig = getXml[TalkCount](path + "talk.xml")
@@ -56,8 +58,8 @@ func initfile() {
// })
SkillMap = make(map[int]Move, len(Skill.Moves))
for _, v := range Skill.Moves {
v.SideEffectS = parseSideEffectArgs(v.SideEffect)
v.SideEffectArgS = parseSideEffectArgs(v.SideEffectArg)
v.SideEffectS = ParseSideEffectArgs(v.SideEffect)
v.SideEffectArgS = ParseSideEffectArgs(v.SideEffectArg)
SkillMap[v.ID] = v
}
@@ -72,6 +74,18 @@ func initfile() {
return m.ID
})
EffectMAP1 := getXml[NewSe](path + "bossbuff和特性.xml")
EffectMAP = make(map[int]NewSeIdx, len(EffectMAP1.SeIdxList))
for _, v := range EffectMAP1.SeIdxList {
v.ArgsS = ParseSideEffectArgs(v.Args)
EffectMAP[gconv.Int(v.Idx)] = v
}
// EffectMAP = utils.ToMap[NewSeIdx, int](EffectMAP1.SeIdxList, func(m NewSeIdx) int {
// return gconv.Int(m.Idx)
// })
}
func init() {

View File

@@ -10,7 +10,7 @@ import (
"time"
)
func parseSideEffectArgs(argsStr string) []int {
func ParseSideEffectArgs(argsStr string) []int {
if argsStr == "" {
return []int{}
}