| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- package model
- import (
- "encoding/xml"
- "os"
- "rocommon/service"
- "rocommon/util"
- "roserver/baseserver/model"
- "roserver/serverproto"
- "runtime/debug"
- "strings"
- )
- func ConfigInit() {
- defer func() {
- if err := recover(); err != nil {
- util.InfoF("Stack---::%v\n%s\n", err, string(debug.Stack()))
- panic(nil)
- }
- }()
- sConfig := service.GetServiceConfig()
- model.BaseConfigInit(sConfig)
- //加载战斗属性xml数据
- for index := range serverproto.XmlFileList {
- xmlLoad(sConfig.Node.Config+"/xml/", serverproto.XmlFileList[index])
- }
- //加载屏蔽字符
- LoadSensitiveWords()
- //自言自语屏蔽字库
- model.LoadAdvSensitiveWords()
- util.InfoF("xml load success!!!")
- //startupTime := time.Unix(int64(service.ServiceStartupTime / 1000), 0)
- //util.InfoF("[ServiceStartTime] :%v", startupTime)
- }
- func xmlLoad(path string, fileName string) {
- file, err := os.OpenFile(path+fileName+".xml", os.O_RDONLY, os.ModePerm)
- if err != nil {
- panic(err)
- }
- defer file.Close()
- xmlReader := xml.NewDecoder(file)
- if xmlReader == nil {
- panic("xml reader nil file")
- }
- //加载战斗属性xml数据
- if strings.Contains(fileName, "BattleFormulaParamCfg") {
- BattleFormulaParamXmlLoad(xmlReader, fileName)
- }
- }
- //BattleFormulaParamCfg.xml
- type BattleFormulaParamXml struct {
- paramId int32
- val float32
- desc string
- }
- var BattleFormulaList = map[int32]*BattleFormulaParamXml{}
- func BattleFormulaParamXmlLoad(xmlReader *xml.Decoder, fileName string) {
- var formulaXml *BattleFormulaParamXml = nil
- for index, err := xmlReader.Token(); err == nil; index, err = xmlReader.Token() {
- switch token := index.(type) {
- case xml.StartElement:
- name := token.Name.Local
- if name == "param" {
- formulaXml = &BattleFormulaParamXml{}
- for idx := range token.Attr {
- attrName := token.Attr[idx].Name.Local
- if attrName == "id" {
- value, _ := model.Str2Num(token.Attr[idx].Value)
- formulaXml.paramId = int32(value)
- } else if attrName == "value" {
- value, _ := model.Str2Float32(token.Attr[idx].Value)
- formulaXml.val = value
- } else if attrName == "desc" {
- formulaXml.desc = token.Attr[idx].Value
- }
- }
- BattleFormulaList[formulaXml.paramId] = formulaXml
- }
- }
- }
- }
- var SensitiveUtil *util.DFAUtil = nil
- func LoadSensitiveWords() {
- SensitiveUtil = util.NewDFAUtil(nil)
- for _, val := range serverproto.ShieldedWordCfgLoader {
- valList := strings.Split(val.Type, ",")
- util.DFAInsertWord(SensitiveUtil, valList)
- }
- serverproto.ShieldedWordCfgLoader = map[int32]*serverproto.ShieldedWordCfg{}
- }
- func ServerReloadConfig(cfgNameList []string) {
- for idx := 0; idx < len(cfgNameList); idx++ {
- if cfgNameList[idx] == "AdvertisingScreen" {
- model.ReloadAdvSensitiveWords(cfgNameList[idx])
- } else {
- model.ReloadConfigByName(cfgNameList[idx])
- }
- }
- }
|