From d7b0d07b060114f6cb6ef5c8d16ab4ec4edc0ad7 Mon Sep 17 00:00:00 2001 From: meixiongfeng <766881921@qq.com> Date: Thu, 12 Jan 2023 15:08:07 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B6=88=E6=81=AF=E5=88=86=E5=8F=91=E8=AF=BB?= =?UTF-8?q?=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/gateway/configure_comp.go | 10 ++---- modules/troll/api_surpriseid.go | 56 ++++++++++++------------------- 2 files changed, 24 insertions(+), 42 deletions(-) diff --git a/modules/gateway/configure_comp.go b/modules/gateway/configure_comp.go index be06b32b3..76da9ccbb 100644 --- a/modules/gateway/configure_comp.go +++ b/modules/gateway/configure_comp.go @@ -28,24 +28,20 @@ func (this *configureComp) Init(service core.IService, module core.IModule, comp // GetMsgDistribute 获取消息分发规则读取配置表 func (this *configureComp) GetMsgDistribute(msgmid, msguid string) (rule string, ok bool) { var ( - err error - v interface{} item *cfg.GameMsgdistribData ) - if v, err = this.GetConfigure(game_msgdistrib); err != nil { - ok = false - return - } else { + if v, err := this.GetConfigure(game_msgdistrib); err == nil { if item, ok = v.(*cfg.GameMsgdistrib).GetDataMap()[msgmid]; ok && item.Open { rule = item.Routrules + return } else { msgid := strings.ToLower(fmt.Sprintf("%s.%s", msgmid, msguid)) if item, ok = v.(*cfg.GameMsgdistrib).GetDataMap()[msgid]; ok && item.Open { rule = item.Routrules return } - ok = false } } + ok = false return } diff --git a/modules/troll/api_surpriseid.go b/modules/troll/api_surpriseid.go index 7aa0a25dd..76348352e 100644 --- a/modules/troll/api_surpriseid.go +++ b/modules/troll/api_surpriseid.go @@ -18,33 +18,20 @@ func (this *apiComp) SurpriseIdCheck(session comm.IUserSession, req *pb.TrollSur func (this *apiComp) SurpriseId(session comm.IUserSession, req *pb.TrollSurpriseIdReq) (code pb.ErrorCode, data proto.Message) { var ( - update map[string]interface{} - maxCoefficient int32 + circletime int32 // 循环一个周期的时间 + circleCount int32 // 循环的次数 + update map[string]interface{} ) - update = make(map[string]interface{}) - if code = this.SurpriseIdCheck(session, req); code != pb.ErrorCode_Success { - return // 参数校验失败直接返回 - } + trolltrain, err := this.module.modelTroll.getTrollList(session.GetUserId()) if err != nil { code = pb.ErrorCode_DBError return } - maxCoefficient = this.configure.GetTrollMaxCoefficientNux() // 增长幅度的最大值 - if maxCoefficient == 0 { - code = pb.ErrorCode_ConfigNoFound - return - } - /// 计算经过了多少个周期 szTrain := this.configure.GetTrollAllTrain() - var ( - circletime int32 // 循环一个周期的时间 - circleCount int32 // 循环的次数 - - ) for _, v := range szTrain { circletime += v } @@ -53,25 +40,24 @@ func (this *apiComp) SurpriseId(session comm.IUserSession, req *pb.TrollSurprise code = pb.ErrorCode_ConfigNoFound return } - if int32(configure.Now().Unix()-trolltrain.RefreshTime) < szTrain[trolltrain.TarinPos-1] { - session.SendMsg(string(this.module.GetType()), TrollGetListResp, &pb.TrollGetListResp{Data: trolltrain}) - return - } - trainNum := this.configure.GetTrollMaxTraintNum() + if int32(configure.Now().Unix()-trolltrain.RefreshTime) >= szTrain[trolltrain.TarinPos-1] { + trainNum := this.configure.GetTrollMaxTraintNum() - t := int32(configure.Now().Unix() - trolltrain.Ctime) - circleCount = t / circletime // 经过的周期数 - if trolltrain.Circle != circleCount { - trolltrain.SurpriseID = make(map[int32]int32, 0) - n, _ := rand.Int(rand.Reader, big.NewInt(int64(trainNum))) - // 只算当前商人所属的货物 - g := this.configure.GetTrollGoodsFor(int32(n.Int64()) + 1) - n2, _ := rand.Int(rand.Reader, big.NewInt(int64(len(g)))) - trolltrain.SurpriseID[int32(n.Int64())+1] = g[int32(n2.Int64())] - update["surpriseID"] = trolltrain.SurpriseID - trolltrain.Circle = circleCount - update["circle"] = trolltrain.Circle - this.module.ModifyTrollData(session.GetUserId(), update) + t := int32(configure.Now().Unix() - trolltrain.Ctime) + circleCount = t / circletime // 经过的周期数 + if trolltrain.Circle != circleCount { + trolltrain.SurpriseID = make(map[int32]int32, 0) + n, _ := rand.Int(rand.Reader, big.NewInt(int64(trainNum))) + // 只算当前商人所属的货物 + g := this.configure.GetTrollGoodsFor(int32(n.Int64()) + 1) + n2, _ := rand.Int(rand.Reader, big.NewInt(int64(len(g)))) + trolltrain.SurpriseID[int32(n.Int64())+1] = g[int32(n2.Int64())] + update["surpriseID"] = trolltrain.SurpriseID + trolltrain.Circle = circleCount + update["circle"] = trolltrain.Circle + this.module.ModifyTrollData(session.GetUserId(), update) + } + return } session.SendMsg(string(this.module.GetType()), TrollSurpriseIdResp, &pb.TrollSurpriseIdResp{