From b1ea3363b0cd5ddf1ab1bccbf772dfe1390da7cc Mon Sep 17 00:00:00 2001 From: meixiongfeng <766881921@qq.com> Date: Mon, 14 Aug 2023 17:09:11 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BA=86=E5=85=B8=E6=B4=BB=E5=8A=A8=E5=BE=AA?= =?UTF-8?q?=E7=8E=AF=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/activity/module.go | 15 ++- modules/hero/hero_test.go | 163 ++---------------------------- modules/stonehenge/api_getlist.go | 19 ++++ 3 files changed, 38 insertions(+), 159 deletions(-) diff --git a/modules/activity/module.go b/modules/activity/module.go index fedbe04d5..d0c2ace69 100644 --- a/modules/activity/module.go +++ b/modules/activity/module.go @@ -256,8 +256,13 @@ func (this *Activity) HDCelebration(session comm.IUserSession, systemtype int32, } if data.Val == 0 { var pos int32 - _sub := int32((configure.Now().Unix()-activity.Stime)/(24*3600)) + 1 + var maxday int32 _days := this.configure.GetHDCelebrationData() + for _, v := range _days { // 开启循环 + maxday += v + } + _sub := int32((configure.Now().Unix() - activity.Stime) / (24 * 3600)) + _sub = _sub%maxday + 1 for index, v := range _days { for i := 0; i < int(v); i++ { pos++ @@ -391,10 +396,14 @@ func (this *Activity) GetHdData(session comm.IUserSession, oids []string) (resul update["lasttime"] = list.Lasttime update["gotarr"] = list.Gotarr - + var maxday int32 _days := this.configure.GetHDCelebrationData() + for _, v := range _days { // 开启循环 + maxday += v + } var pos int32 - _sub := int32((configure.Now().Unix()-activity.Stime)/(24*3600)) + 1 + _sub := int32((configure.Now().Unix() - activity.Stime) / (24 * 3600)) + _sub = _sub%maxday + 1 for index, v := range _days { for i := 0; i < int(v); i++ { pos++ diff --git a/modules/hero/hero_test.go b/modules/hero/hero_test.go index 0d42c30a9..396bf4ef0 100644 --- a/modules/hero/hero_test.go +++ b/modules/hero/hero_test.go @@ -145,160 +145,15 @@ func GetLotterConfById(id int32) (data *cfg.GameLotteryData) { } return } -func GetGroupDataByLottery(lotteryId int32) (items []*cfg.Gameatn) { - if _, ok := _lotteryType1[lotteryId]; !ok { - if _, ok := _lotteryType2[lotteryId]; !ok { - fmt.Printf("not found config lotterId:%d", lotteryId) - return - } - } - // 优先校验大组ID 的类型 - //if this.Btype[lotteryId] == 1 { // 该大组中的小组为权重掉落,必定从N个小组中随机出1个小组 - var ( - szW []int32 // 权重数组 - szID []int32 // 小组ID 数组 - groupID int32 - gourp map[int32]int32 // key 小组ID value 权重 - ) - - gourp = make(map[int32]int32, 0) - // 随机小组id - for _, v := range _lotteryType1[lotteryId] { - if _data := GetLotterConfById(v); _data != nil { - if _, ok := gourp[_data.Groupid]; !ok { - gourp[_data.Groupid] = _data.Groupwt // 小组ID 权重赋值 - szW = append(szW, _data.Groupwt) - szID = append(szID, _data.Groupid) - } - } - } - - groupID = szID[comm.GetRandW(szW)] // 获得小组ID - //fmt.Printf("大组类型为1的,获得小组ID :%d,dropID:%d", groupID, lotteryId) - key := int64(lotteryId)<<31 + int64(groupID) - // 小组ID 类型判断 - if Stype[key] == 1 { // 该小组的道具为权重掉落,必定从N个道具中随机出1个道具 - for i := 0; i < int(SNum[key]); i++ { - szW = make([]int32, 0) - szID = make([]int32, 0) - gourp = make(map[int32]int32, 0) - for _, v := range _groupType1[key] { - if _data := GetLotterConfById(v); _data != nil { // 权重赋值 - if _, ok := gourp[_data.Groupid]; !ok { - szW = append(szW, _data.Itemwt) - szID = append(szID, _data.Id) - } - } - } - index := comm.GetRandW(szW) - _data := GetLotterConfById(szID[index]) - //fmt.Printf("获得最终的道具 :%d", _data.Id) - count := comm.GetRandNum(_data.Min, _data.Max) - // 随机获得的数量 - items = append(items, &cfg.Gameatn{ - A: _data.Itemid.A, - T: _data.Itemid.T, - N: _data.Itemid.N * count, - }) - } - - } else if Stype[key] == 2 { // 该小组中的道具为概率掉落,每个道具都会随机一次是否会掉落(单位为千分比) - var wt int32 - for _, v := range _groupType2[key] { - if _data := GetLotterConfById(v); _data != nil { // 权重赋值 - if _data.Itemwt != 0 { - wt = _data.Itemwt - } - if wt >= comm.GetRandNum(0, 1000) { // 命中 - count := comm.GetRandNum(_data.Min, _data.Max) - items = append(items, &cfg.Gameatn{ - A: _data.Itemid.A, - T: _data.Itemid.T, - N: _data.Itemid.N * count, // 小组产出数量 - }) - } - } - } - - } - //} - //if this.Btype[lotteryId] == 2 { // 该大组中的小组为概率掉落,每个小组都会随机一次是否会掉落(单位为千分比) - // 每个小组id 都随机取一次 - var szGroupID []int32 // 获得的权重数组 - gourp1 := make([]*cfg.GameLotteryData, 0) // key 小组ID value 权重 - for _, v := range _lotteryType2[lotteryId] { - if _data := GetLotterConfById(v); _data != nil { - gourp1 = append(gourp1, _data) - } - } - // 过滤 group - var wt int32 - // 类型为2 可能会同时获得多个组id - for _, v := range gourp1 { - k := v.Groupid - if v.Groupwt != 0 { - wt = v.Groupwt - } - //fmt.Printf("大组类型为2的,获得小组ID :%d,dropID:%d", k, v.Id) - if wt >= comm.GetRandNum(0, 1000) { // 命中 - szGroupID = append(szGroupID, k) - key := int64(lotteryId)<<31 + int64(k) - if Stype[key] == 1 { // 随机一组数据 - for i := 0; i < int(SNum[key]); i++ { - szW := make([]int32, 0) - szID := make([]int32, 0) - gourp := make(map[int32]int32, 0) - for _, v := range _groupType1[key] { - if _data := GetLotterConfById(v); _data != nil { // 权重赋值 - if _, ok := gourp[_data.Groupid]; !ok { - szW = append(szW, _data.Itemwt) - szID = append(szID, _data.Id) - } - } - } - index := comm.GetRandW(szW) - _data := GetLotterConfById(szID[index]) - //fmt.Printf("获得最终的道具 :%d", _data.Id) - count := comm.GetRandNum(_data.Min, _data.Max) - // 随机获得的数量 - items = append(items, &cfg.Gameatn{ - A: _data.Itemid.A, - T: _data.Itemid.T, - N: _data.Itemid.N * count, - }) - } - } else if Stype[key] == 2 { - var wt int32 - for _, v := range _groupType2[key] { - if _data := GetLotterConfById(v); _data != nil { // 权重赋值 - if _data.Itemwt != 0 { - wt = _data.Itemwt - } - if wt >= comm.GetRandNum(1, 1000) { // 命中 - count := comm.GetRandNum(_data.Min, _data.Max) - items = append(items, &cfg.Gameatn{ - A: _data.Itemid.A, - T: _data.Itemid.T, - N: _data.Itemid.N * count, // 小组产出数量 - }) - } - } - } - } - } - } - //} - return -} -func LoadConfigure(name string, fn interface{}) (err error) { - return configure.RegisterConfigure(name, fn, nil) -} func Test_Main(t *testing.T) { - LoadConfigure(game_lottery, cfg.NewGameLottery) - GetGroupDataByLottery(1001) + + sz := make(map[string]*pb.DBHero) + fmt.Printf("%v", sz["1"]) + hero := &pb.DBHero{} + value, err := strconv.Atoi("944005411") - fmt.Printf("%v,%v,%d", value, err, utils.WeekIntervalTime()) + fmt.Printf("%v,%v,%d,%v,%v", value, err, utils.WeekIntervalTime(), sz, hero) ids := utils.RandomNumbers(0, 10, 5) for _, v := range ids { fmt.Printf("%d", v) @@ -344,11 +199,7 @@ func Test_Main(t *testing.T) { fmt.Println(getA, getA2, typeofA) cron.AddFunc("0 0 5 /* * ?", TimerStar) //每月第一天5点执行一次 - sz := make([]string, 0) - for i := 0; i < 10; i++ { - sz = append(sz, "1") - } - sz[len(sz)-1] = "xxxx" + //创建trace文件 f, err := os.Create("trace.out") if err != nil { diff --git a/modules/stonehenge/api_getlist.go b/modules/stonehenge/api_getlist.go index 8e4d2d47d..2c87ea191 100644 --- a/modules/stonehenge/api_getlist.go +++ b/modules/stonehenge/api_getlist.go @@ -56,6 +56,25 @@ func (this *apiComp) GetList(session comm.IUserSession, req *pb.StonehengeGetLis update["weeklyreward"] = stone.Weeklyreward this.module.modelStonehenge.ChangeStonehengeData(session.GetUserId(), update) } + if len(stone.Webuff) == 0 || len(stone.Enemybuff) == 0 { + if stage := this.module.modelStonehenge.GetStoneBoosData(stone.StageID); stage != nil { + for _, v := range stage.Mainebuff { // 我方环境buff + if buff, err := this.module.configure.GetStoneBuffDataById(v); err == nil { + stone.Webuff = append(stone.Webuff, buff.BuffId) + } + } + + for _, v := range stage.Enemybuff { // 敌方环境buff + if buff, err := this.module.configure.GetStoneBuffDataById(v); err == nil { + stone.Enemybuff = append(stone.Enemybuff, buff.BuffId) + } + } + update := make(map[string]interface{}, 0) + update["webuff"] = stone.Webuff + update["enemybuff"] = stone.Enemybuff + this.module.modelStonehenge.ChangeStonehengeData(session.GetUserId(), update) + } + } session.SendMsg(string(this.module.GetType()), "getlist", &pb.StonehengeGetListResp{ Data: stone,