package jsonconf import ( "common/logger" "encoding/json" "io/ioutil" "os" ) var ( g_jsonconf = new(GameConfig) ) type AchieveDesc struct { Id int `json:"id"` Task string `json:"task"` Num int `json:"num"` Reward []int `json:"reward"` TaskType int `json:"type"` } type LevelDesc struct { Id int `json:"id"` Level int `json:"level"` Exp int `json:"exp"` Cash int `json:"cash"` Extracash int `json:"extracash"` } type MoneyBoxLevelDesc struct { Id int `json:"id"` Level int `json:"level"` Min int `json:"min"` Max int `json:"max"` } type MoneyBoxTimesDesc struct { Id int `json:"id"` Times int `json:"times"` Login int `json:"login"` Score int `json:"score"` } type WithDrawDesc struct { Id int `json:"id"` Money float32 `json:"money"` Coin int `json:"coin"` Task int `json:"task"` Level int `json:"level"` Isnew int `json:"new"` Day int `json:"day"` } type SignRewardDetail struct { Id int `json:"id"` Num int `json:"num"` } type SignReward struct { Reward1 []SignRewardDetail `json:"reward1"` Reward2 []SignRewardDetail `json:"reward2"` } type SignConfigDesc struct { Rule int `json:"rule"` Round int `json:"round"` Reward SignReward `json:"reward"` } type ActiveWithdrawConfigDesc struct { Id int `json:"id"` Money float32 `json:"money"` Coin int `json:"coin"` Task int `json:"task"` Level int `json:"level"` Isnew int `json:"new"` Day int `json:"day"` } type GameConfig struct { AchieventConfig []AchieveDesc TaskConfig []AchieveDesc LevelConfig []LevelDesc MoneyBoxConfig []MoneyBoxLevelDesc MoneyBoxTimeConfig []MoneyBoxTimesDesc WithDrawConfig []WithDrawDesc SignConfig SignConfigDesc ActiveWithdrawConfig []ActiveWithdrawConfigDesc } func GetJsonConf() *GameConfig { return g_jsonconf } func GetSignConfig(round, daynum int) *SignRewardDetail { if round+1 > g_jsonconf.SignConfig.Round { //取reward2 if daynum > len(g_jsonconf.SignConfig.Reward.Reward2) { logger.Error("GetSignConfig failed") return nil } return &g_jsonconf.SignConfig.Reward.Reward2[daynum-1] } else { //取reward1 if daynum > len(g_jsonconf.SignConfig.Reward.Reward1) { logger.Error("GetSignConfig failed") return nil } return &g_jsonconf.SignConfig.Reward.Reward1[daynum-1] } } func GetMoneyBoxCfg(lv int) *MoneyBoxLevelDesc { rt := new(MoneyBoxLevelDesc) rt = nil for _, val := range g_jsonconf.MoneyBoxConfig { if val.Level == lv { rt = &val break } } return rt } 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/AchievementConfig.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.AchieventConfig) if err != nil { logger.Info("loadJsonConf failed1,err=%v", err) return err } path = "../jsonconf/DailyTask.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.TaskConfig) if err != nil { logger.Info("loadJsonConf failed1,err=%v", err) return err } path = "../jsonconf/LevelConfig.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.LevelConfig) if err != nil { logger.Info("loadJsonConf failed1,err=%v", err) return err } path = "../jsonconf/MoneyboxLevel.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.MoneyBoxConfig) if err != nil { logger.Info("loadJsonConf failed1,err=%v", err) return err } path = "../jsonconf/MoneyboxTimes.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.MoneyBoxTimeConfig) if err != nil { logger.Info("loadJsonConf failed1,err=%v", err) return err } path = "../jsonconf/WithdrawConfig.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.WithDrawConfig) if err != nil { logger.Info("loadJsonConf failed1,err=%v", err) return err } path = "../jsonconf/SignConfig.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.SignConfig) if err != nil { logger.Info("loadJsonConf failed1,err=%v", err) return err } path = "../jsonconf/ActiveWithdrawConfig.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.ActiveWithdrawConfig) 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 }