mirror of
https://github.com/FlourishingWorld/hk4e.git
synced 2026-02-04 14:22:26 +08:00
时装、风之翼读表,give命令更新
修复了角色替换圣遗物异常的问题
This commit is contained in:
52
gdconf/avatar_costume_data.go
Normal file
52
gdconf/avatar_costume_data.go
Normal 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
|
||||
}
|
||||
48
gdconf/avatar_flycloak_data.go
Normal file
48
gdconf/avatar_flycloak_data.go
Normal 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
|
||||
}
|
||||
@@ -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 {
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user