From d556686fe70ac392d12ccd0b4d500fbd3a5250ce Mon Sep 17 00:00:00 2001 From: meixiongfeng <766881921@qq.com> Date: Wed, 9 Nov 2022 15:20:27 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BC=82=E5=B8=B8=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/troll/api_getlist.go | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/modules/troll/api_getlist.go b/modules/troll/api_getlist.go index c3c1a004d..991e6f459 100644 --- a/modules/troll/api_getlist.go +++ b/modules/troll/api_getlist.go @@ -52,28 +52,32 @@ func (this *apiComp) GetList(session comm.IUserSession, req *pb.TrollGetListReq) } /// 计算经过了多少个周期 - sz := this.configure.GetTrollAllTrain() + szTrain := this.configure.GetTrollAllTrain() var ( circletime int32 // 循环一个周期的时间 circleCount int32 // 循环的次数 leftTime int32 // 离到达最后一站剩余的时间 index int32 // 总共经过了多少次车站 ) - for _, v := range sz { + for _, v := range szTrain { circletime += v } - - if int32(configure.Now().Unix()-trolltrain.RefreshTime) < sz[trolltrain.TarinPos-1] { + if int32(len(szTrain)) < trolltrain.TarinPos { + this.module.Errorf("TarinPos error: TarinPos:%d,maxLen:%d", trolltrain.TarinPos, len(szTrain)) + 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() trolltrain.Shop = make(map[int32]int32) // 清空商人的购买数据 update["shop"] = trolltrain.Shop - circleCount = (int32(configure.Now().Unix()-trolltrain.Ctime) / circletime) // 经过的周期数 - - c := int32((configure.Now().Unix() - trolltrain.Ctime)) / circletime - if trolltrain.Circle != c { + t := int32(configure.Now().Unix() - trolltrain.Ctime) + circleCount = t / circletime // 经过的周期数 + leftTime = t % circletime + if trolltrain.Circle != circleCount { trolltrain.SurpriseID = make(map[int32]int32, 0) n, _ := rand.Int(rand.Reader, big.NewInt(int64(trainNum))) goods := this.configure.GetTrollAllGoods() @@ -84,10 +88,8 @@ func (this *apiComp) GetList(session comm.IUserSession, req *pb.TrollGetListReq) update["circle"] = trolltrain.Circle } - leftTime = (int32((configure.Now().Unix() - trolltrain.Ctime)) % circletime) - index = circleCount * trainNum // 计算火车的位置信息 - for _, v := range sz { + for _, v := range szTrain { if leftTime <= v { trolltrain.RefreshTime = configure.Now().Unix() trolltrain.RangeId = (index % maxCoefficient) + 1