package jsonconf import ( "common/logger" "encoding/json" "io/ioutil" "math/rand" "os" ) var ( g_jsonconf = new(GameConfig) ) type CardDesc struct { Time int `json:"time"` Ctype int `json:"type"` Desc string `json:"desc"` Flop_card string `json:"flop_card"` } type CatDesc struct { Id int `json:"id"` Name string `json:"name"` Level_buy int `json:"level_buy"` Rec_buy int `json:"rec_buy"` Price string `json:"price"` Gold_get string `json:"gold_get"` Ratio float32 `json:"ratio"` Increse_limit int `json:"increse_limit"` Interval float32 `json:"interval"` Redpacket float32 `json:"redpacket"` } type RedCatDesc struct { Id int `json:"id"` Name string `json:"name"` Skin string `json:"skin"` Money float32 `json:"money"` Rate float32 `json:"rate"` Is_37 int `json:"is_37"` Dec_red string `json:"dec_red"` Dec_get string `json:"dec_get"` } type TurnTableDesc struct { Id int `json:"id"` Ttype int `json:"type"` Rate float32 `json:"rate"` Parameter int `json:"parameter"` Desc string `json:"desc"` Idx int `json:"idx"` } type BoxConfigDesc struct { Id int `json:"id"` Ttype int `json:"type"` Time float32 `json:"time"` Rate int `json:"rate"` Rmb_num string `json:"rmb_num"` } type RMBConfigDesc struct { Id int `json:"id"` Time int `json:"time"` Rmb_num float32 `json:"rmb_num"` Login_day int `json:"login_day"` Cat_level int `json:"cat_level"` } type RobotCatDesc struct { Id int `json:"id"` Name string `json:"name"` Image float32 `json:"image"` } type GameConfig struct { CardConfig []CardDesc CatConfig []CatDesc RedCatConfig []RedCatDesc TurnTableConfig []TurnTableDesc BoxConfig []BoxConfigDesc GiftConfig []BoxConfigDesc RMBConfig []RMBConfigDesc RobotConfig []RobotCatDesc } func GetBoxConfif(id int) *BoxConfigDesc { for _, v := range g_jsonconf.BoxConfig { if v.Id == id { return &v } } return nil } func GetGiftConfif(id int) *BoxConfigDesc { for _, v := range g_jsonconf.GiftConfig { if v.Id == id { return &v } } return nil } func GetJsonConf() *GameConfig { return g_jsonconf } func GetCardConfig(time int) *CardDesc { for _, v := range g_jsonconf.CardConfig { if v.Time == time { return &v } } return &g_jsonconf.CardConfig[len(g_jsonconf.CardConfig)-1] } func GetTurnTable(ctype int) []TurnTableDesc { var rtslice []TurnTableDesc for _, v := range g_jsonconf.TurnTableConfig { if v.Ttype == ctype { rtslice = append(rtslice, v) } } return rtslice } func GetCatConfig(lv int) *CatDesc { for _, v := range g_jsonconf.CatConfig { if v.Id == lv { return &v } } return nil } //获取转盘配置 func GetTurnTableCfg(id int) *TurnTableDesc { for _, v := range g_jsonconf.TurnTableConfig { if v.Id == id { return &v } } return nil } //获取红包猫配置 func GetRedCatConfig(lv int) *RedCatDesc { reallv := lv - 37 if reallv < 1 { reallv = 1 } for _, v := range g_jsonconf.RedCatConfig { if v.Id == reallv { return &v } } return nil } //计算中奖名字 func CalcWinner(round int) (string, int) { length := round % len(g_jsonconf.RobotConfig) return g_jsonconf.RobotConfig[length].Name, int(g_jsonconf.RobotConfig[length].Image) } //获取一个随机名字 func GetRandName() string { length := len(g_jsonconf.RobotConfig) randindex := rand.Intn(length) return g_jsonconf.RobotConfig[randindex].Name } func file_get_contents(path string) ([]byte, error) { f, err := os.Open(path) if err != nil { return nil, err } return ioutil.ReadAll(f) } func LoadJsonConf() error { //pconf := &GameConfig{} //加载第一个配置 path := "../jsonconf/CardConfig.json" content, err := file_get_contents(path) if err != nil { logger.Info("loadJsonConf failed1,err=%v", err) return err } err = json.Unmarshal([]byte(content), &g_jsonconf.CardConfig) if err != nil { logger.Info("loadJsonConf failed1,err=%v", err) return err } path = "../jsonconf/CatConfig.json" content, err = file_get_contents(path) if err != nil { logger.Info("loadJsonConf failed1,err=%v", err) return err } err = json.Unmarshal([]byte(content), &g_jsonconf.CatConfig) if err != nil { logger.Info("loadJsonConf failed1,err=%v", err) return err } path = "../jsonconf/RedCatConfig.json" content, err = file_get_contents(path) if err != nil { logger.Info("loadJsonConf failed1,err=%v", err) return err } err = json.Unmarshal([]byte(content), &g_jsonconf.RedCatConfig) if err != nil { logger.Info("loadJsonConf failed1,err=%v", err) return err } path = "../jsonconf/TurntableConfig.json" content, err = file_get_contents(path) if err != nil { logger.Info("loadJsonConf failed1,err=%v", err) return err } err = json.Unmarshal([]byte(content), &g_jsonconf.TurnTableConfig) if err != nil { logger.Info("loadJsonConf failed1,err=%v", err) return err } path = "../jsonconf/RmbConfig.json" content, err = file_get_contents(path) if err != nil { logger.Info("loadJsonConf failed1,err=%v", err) return err } err = json.Unmarshal([]byte(content), &g_jsonconf.RMBConfig) if err != nil { logger.Info("loadJsonConf failed1,err=%v", err) return err } path = "../jsonconf/BoxConfig.json" content, err = file_get_contents(path) if err != nil { logger.Info("loadJsonConf failed1,err=%v", err) return err } err = json.Unmarshal([]byte(content), &g_jsonconf.BoxConfig) if err != nil { logger.Info("loadJsonConf failed1,err=%v", err) return err } path = "../jsonconf/GiftConfig.json" content, err = file_get_contents(path) if err != nil { logger.Info("loadJsonConf failed1,err=%v", err) return err } err = json.Unmarshal([]byte(content), &g_jsonconf.GiftConfig) if err != nil { logger.Info("loadJsonConf failed1,err=%v", err) return err } path = "../jsonconf/RobotConfig.json" content, err = file_get_contents(path) if err != nil { logger.Info("loadJsonConf failed1,err=%v", err) return err } err = json.Unmarshal([]byte(content), &g_jsonconf.RobotConfig) if err != nil { logger.Info("loadJsonConf failed1,err=%v", err) return err } logger.Info("loadJsonConf success pconf=%v,err=%v", *g_jsonconf, err) return err }