时装、风之翼读表,give命令更新

修复了角色替换圣遗物异常的问题
This commit is contained in:
UnKownOwO
2023-02-14 21:27:27 +08:00
parent 4de697cf9a
commit 804e0dfc1a
12 changed files with 415 additions and 166 deletions

View File

@@ -0,0 +1,52 @@
package gdconf
import (
"fmt"
"hk4e/pkg/logger"
"github.com/jszwec/csvutil"
)
// AvatarCostumeData 角色时装配置表
type AvatarCostumeData struct {
CostumeID int32 `csv:"CostumeID"` // 时装ID
ItemID int32 `csv:"ItemID,omitempty"` // 道具ID
}
func (g *GameDataConfig) loadAvatarCostumeData() {
g.AvatarCostumeDataMap = make(map[int32]*AvatarCostumeData)
data := g.readCsvFileData("AvatarCostumeData.csv")
var avatarCostumeDataList []*AvatarCostumeData
err := csvutil.Unmarshal(data, &avatarCostumeDataList)
if err != nil {
info := fmt.Sprintf("parse file error: %v", err)
panic(info)
}
for _, avatarCostumeData := range avatarCostumeDataList {
// 屏蔽默认时装
if avatarCostumeData.ItemID == 0 {
continue
}
// list -> map
g.AvatarCostumeDataMap[avatarCostumeData.CostumeID] = avatarCostumeData
}
logger.Info("AvatarCostumeData count: %v", len(g.AvatarCostumeDataMap))
}
func GetAvatarCostumeDataById(costumeId int32) *AvatarCostumeData {
return CONF.AvatarCostumeDataMap[costumeId]
}
func GetAvatarCostumeDataByItemId(itemId int32) *AvatarCostumeData {
for _, data := range CONF.AvatarCostumeDataMap {
if data.ItemID == itemId {
return data
}
}
return nil
}
func GetAvatarCostumeDataMap() map[int32]*AvatarCostumeData {
return CONF.AvatarCostumeDataMap
}

View File

@@ -0,0 +1,48 @@
package gdconf
import (
"fmt"
"hk4e/pkg/logger"
"github.com/jszwec/csvutil"
)
// AvatarFlycloakData 角色风之翼配置表
type AvatarFlycloakData struct {
FlycloakID int32 `csv:"FlycloakID"` // 风之翼ID
ItemID int32 `csv:"ItemID,omitempty"` // 道具ID
}
func (g *GameDataConfig) loadAvatarFlycloakData() {
g.AvatarFlycloakDataMap = make(map[int32]*AvatarFlycloakData)
data := g.readCsvFileData("AvatarFlycloakData.csv")
var avatarFlycloakDataList []*AvatarFlycloakData
err := csvutil.Unmarshal(data, &avatarFlycloakDataList)
if err != nil {
info := fmt.Sprintf("parse file error: %v", err)
panic(info)
}
for _, avatarFlycloakData := range avatarFlycloakDataList {
// list -> map
g.AvatarFlycloakDataMap[avatarFlycloakData.FlycloakID] = avatarFlycloakData
}
logger.Info("AvatarFlycloakData count: %v", len(g.AvatarFlycloakDataMap))
}
func GetAvatarFlycloakDataById(flycloakId int32) *AvatarFlycloakData {
return CONF.AvatarFlycloakDataMap[flycloakId]
}
func GetAvatarFlycloakDataByItemId(itemId int32) *AvatarFlycloakData {
for _, data := range CONF.AvatarFlycloakDataMap {
if data.ItemID == itemId {
return data
}
}
return nil
}
func GetAvatarFlycloakDataMap() map[int32]*AvatarFlycloakData {
return CONF.AvatarFlycloakDataMap
}

View File

@@ -46,6 +46,8 @@ type GameDataConfig struct {
WeaponLevelDataMap map[int32]*WeaponLevelData // 武器等级
WeaponPromoteDataMap map[int32]map[int32]*WeaponPromoteData // 角色突破
RewardDataMap map[int32]*RewardData // 奖励
AvatarCostumeDataMap map[int32]*AvatarCostumeData // 角色时装
AvatarFlycloakDataMap map[int32]*AvatarFlycloakData // 角色风之翼
}
func InitGameDataConfig() {
@@ -125,6 +127,8 @@ func (g *GameDataConfig) load() {
g.loadWeaponLevelData() // 武器等级
g.loadWeaponPromoteData() // 武器突破
g.loadRewardData() // 奖励
g.loadAvatarCostumeData() // 角色时装
g.loadAvatarFlycloakData() // 角色风之翼
}
func (g *GameDataConfig) readCsvFileData(fileName string) []byte {

View File

@@ -923,5 +923,35 @@
"origin_name": "Reward道具8数量"
}
]
},
{
"table_name": "AvatarCostumeData",
"field_list": [
{
"field_name": "CostumeID",
"field_type": "int32",
"origin_name": "时装ID"
},
{
"field_name": "ItemID",
"field_type": "int32",
"origin_name": "道具ID"
}
]
},
{
"table_name": "AvatarFlycloakData",
"field_list": [
{
"field_name": "FlycloakID",
"field_type": "int32",
"origin_name": "风之翼ID"
},
{
"field_name": "ItemID",
"field_type": "int32",
"origin_name": "道具ID"
}
]
}
]