mirror of
https://github.com/FlourishingWorld/hk4e.git
synced 2026-02-12 10:42:27 +08:00
重构网关服务器
This commit is contained in:
@@ -1,61 +0,0 @@
|
||||
package config
|
||||
|
||||
import (
|
||||
"os"
|
||||
"strings"
|
||||
|
||||
"hk4e/pkg/logger"
|
||||
|
||||
"github.com/jszwec/csvutil"
|
||||
)
|
||||
|
||||
type Drop struct {
|
||||
DropId int32 `csv:"DropId"`
|
||||
Weight int32 `csv:"Weight"`
|
||||
Result int32 `csv:"Result"`
|
||||
IsEnd bool `csv:"IsEnd"`
|
||||
}
|
||||
|
||||
type DropGroupData struct {
|
||||
DropId int32
|
||||
WeightAll int32
|
||||
DropConfig []*Drop
|
||||
}
|
||||
|
||||
func (g *GameDataConfig) loadDropGroupData() {
|
||||
g.DropGroupDataMap = make(map[int32]*DropGroupData)
|
||||
fileNameList := []string{"DropGachaAvatarUp.csv", "DropGachaWeaponUp.csv", "DropGachaNormal.csv"}
|
||||
for _, fileName := range fileNameList {
|
||||
fileData, err := os.ReadFile(g.csvPrefix + fileName)
|
||||
if err != nil {
|
||||
logger.LOG.Error("open file error: %v", err)
|
||||
return
|
||||
}
|
||||
// 去除第二三行的内容变成标准格式的csv
|
||||
index1 := strings.Index(string(fileData), "\n")
|
||||
index2 := strings.Index(string(fileData[(index1+1):]), "\n")
|
||||
index3 := strings.Index(string(fileData[(index2+1)+(index1+1):]), "\n")
|
||||
standardCsvData := make([]byte, 0)
|
||||
standardCsvData = append(standardCsvData, fileData[:index1]...)
|
||||
standardCsvData = append(standardCsvData, fileData[index3+(index2+1)+(index1+1):]...)
|
||||
var dropList []*Drop
|
||||
err = csvutil.Unmarshal(standardCsvData, &dropList)
|
||||
if err != nil {
|
||||
logger.LOG.Error("parse file error: %v", err)
|
||||
return
|
||||
}
|
||||
for _, drop := range dropList {
|
||||
dropGroupData, exist := g.DropGroupDataMap[drop.DropId]
|
||||
if !exist {
|
||||
dropGroupData = new(DropGroupData)
|
||||
dropGroupData.DropId = drop.DropId
|
||||
dropGroupData.WeightAll = 0
|
||||
dropGroupData.DropConfig = make([]*Drop, 0)
|
||||
g.DropGroupDataMap[drop.DropId] = dropGroupData
|
||||
}
|
||||
dropGroupData.WeightAll += drop.Weight
|
||||
dropGroupData.DropConfig = append(dropGroupData.DropConfig, drop)
|
||||
}
|
||||
}
|
||||
logger.LOG.Info("load %v DropGroupData", len(g.DropGroupDataMap))
|
||||
}
|
||||
@@ -12,7 +12,6 @@ var CONF *GameDataConfig = nil
|
||||
type GameDataConfig struct {
|
||||
binPrefix string
|
||||
excelBinPrefix string
|
||||
csvPrefix string
|
||||
GameDepot *GameDepot
|
||||
// 配置表
|
||||
// BinOutput
|
||||
@@ -33,8 +32,6 @@ type GameDataConfig struct {
|
||||
// 角色技能
|
||||
AvatarSkillDataMap map[int32]*AvatarSkillData
|
||||
AvatarSkillDepotDataMap map[int32]*AvatarSkillDepotData
|
||||
// 掉落组配置表
|
||||
DropGroupDataMap map[int32]*DropGroupData
|
||||
// GG
|
||||
GadgetDataMap map[int32]*GadgetData
|
||||
// 采集物
|
||||
@@ -45,7 +42,6 @@ func InitGameDataConfig() {
|
||||
CONF = new(GameDataConfig)
|
||||
CONF.binPrefix = ""
|
||||
CONF.excelBinPrefix = ""
|
||||
CONF.csvPrefix = ""
|
||||
CONF.loadAll()
|
||||
}
|
||||
|
||||
@@ -65,8 +61,6 @@ func (g *GameDataConfig) load() {
|
||||
// 角色技能
|
||||
g.loadAvatarSkillData()
|
||||
g.loadAvatarSkillDepotData()
|
||||
// 掉落组配置表
|
||||
g.loadDropGroupData()
|
||||
// GG
|
||||
g.loadGadgetData()
|
||||
// 采集物
|
||||
@@ -87,7 +81,6 @@ func (g *GameDataConfig) loadAll() {
|
||||
}
|
||||
g.binPrefix = resourcePath + "/BinOutput"
|
||||
g.excelBinPrefix = resourcePath + "/ExcelBinOutput"
|
||||
g.csvPrefix = resourcePath + "/Csv"
|
||||
dirInfo, err = os.Stat(g.binPrefix)
|
||||
if err != nil || !dirInfo.IsDir() {
|
||||
logger.LOG.Error("open game data bin output config dir error: %v", err)
|
||||
@@ -98,14 +91,8 @@ func (g *GameDataConfig) loadAll() {
|
||||
logger.LOG.Error("open game data excel bin output config dir error: %v", err)
|
||||
return
|
||||
}
|
||||
dirInfo, err = os.Stat(g.csvPrefix)
|
||||
if err != nil || !dirInfo.IsDir() {
|
||||
logger.LOG.Error("open game data csv config dir error: %v", err)
|
||||
return
|
||||
}
|
||||
g.binPrefix += "/"
|
||||
g.excelBinPrefix += "/"
|
||||
g.csvPrefix += "/"
|
||||
g.load()
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user