package gmdata import ( "encoding/json" "fmt" "leafstalk/log" "os" ) // LimitGiftItem 礼包详情 type LimitGiftItem struct { Id int32 `json:"id"` // 礼包ID Type int64 `json:"type"` // 礼包类型 TypeName string `json:"typeName"` // 礼包类型名称 Value []int `json:"value"` // 类型值 ValueStr string `json:"-"` // 类型值 Award [][]int64 `json:"award"` // 礼包奖励 MaxPayCount int64 `json:"triggerCounter"` // 最大购买次数 Price []int64 `json:"price"` // 价格 [购买方式,对应价格,_原价] Time int64 `json:"time"` // 开启后倒计时 Cd int64 `json:"cd"` // cd过后才能刷新下一个礼包 } var ( LimitGiftList []*LimitGiftItem ) // LoadLimitGift 加载配置信息 func LoadLimitGift(confPath string) { var typeMap = make(map[int64]string) typeMap = map[int64]string{ 1001: "登录", 1002: "冒险等级", 1003: "角色激活", 1004: "角色突破", 1005: "角色升星", 1006: "首次通关", 1007: "闯关失败", 1008: "品质装备", } // 任务列表 loadLimitGiftFile(confPath+"/"+"LimitGift.json", &LimitGiftList) for _, v := range LimitGiftList { v.TypeName = fmt.Sprintf("%v(%v)", typeMap[v.Type], v.Type) bytes1, _ := json.Marshal(v.Value) v.ValueStr = string(bytes1) } } func loadLimitGiftFile(filePath string, val interface{}) { ptrFile, err := os.Open(filePath) if err != nil { log.Fatalln("读取json文件失败", err) } defer ptrFile.Close() decoder := json.NewDecoder(ptrFile) if err = decoder.Decode(&val); err != nil { log.Fatalln("loadLimitGiftFile Decoder failed ", filePath, err.Error()) } } // GetLimitGift 获取指定礼包 func GetLimitGift(id int32) *LimitGiftItem { for _, v := range LimitGiftList { if v.Id == id { return v } } return nil }