diff --git a/src/server/conf/playroom/playroomCfg.go b/src/server/conf/playroom/playroomCfg.go index 788ef430..aa44d5a9 100644 --- a/src/server/conf/playroom/playroomCfg.go +++ b/src/server/conf/playroom/playroomCfg.go @@ -431,12 +431,12 @@ func GetDressPart(Id int) int { return gamedata.GetIntValue(data, "IPart") } -func GetDressName(Id int) int { +func GetDressName(Id int) string { data, err := gamedata.GetDataByIntKey(CFG_PLAYROOM_DRESS, Id) if err != nil { - return 0 + return "" } - return gamedata.GetIntValue(data, "Name") + return gamedata.GetStringValue(data, "Name") } func GetUnlockNeed(Type int) int { diff --git a/src/server/gamedata/reader.go b/src/server/gamedata/reader.go index dbded8c9..ec15a45d 100644 --- a/src/server/gamedata/reader.go +++ b/src/server/gamedata/reader.go @@ -128,7 +128,7 @@ func GetIntValue(a interface{}, key string) int { if v == nil { return 0 } - return int(v.(float64)) + return Int(v) } return 0 } @@ -214,3 +214,26 @@ func GetDataByIntKey(cfgname string, key int) (map[string]interface{}, error) { } return make(map[string]interface{}), errors.New("not found") } + +func Int(a interface{}) int { + if a == nil { + return 0 + } + switch v := a.(type) { + case int: + return v + case int32: + return int(v) + case int64: + return int(v) + case float64: + return int(v) + case string: + r, err := strconv.Atoi(v) + if err != nil { + return 0 + } + return r + } + return 0 +}