异常校验

This commit is contained in:
meixiongfeng 2022-11-09 15:20:27 +08:00
parent 070143be73
commit d556686fe7

View File

@ -52,28 +52,32 @@ func (this *apiComp) GetList(session comm.IUserSession, req *pb.TrollGetListReq)
} }
/// 计算经过了多少个周期 /// 计算经过了多少个周期
sz := this.configure.GetTrollAllTrain() szTrain := this.configure.GetTrollAllTrain()
var ( var (
circletime int32 // 循环一个周期的时间 circletime int32 // 循环一个周期的时间
circleCount int32 // 循环的次数 circleCount int32 // 循环的次数
leftTime int32 // 离到达最后一站剩余的时间 leftTime int32 // 离到达最后一站剩余的时间
index int32 // 总共经过了多少次车站 index int32 // 总共经过了多少次车站
) )
for _, v := range sz { for _, v := range szTrain {
circletime += v circletime += v
} }
if int32(len(szTrain)) < trolltrain.TarinPos {
if int32(configure.Now().Unix()-trolltrain.RefreshTime) < sz[trolltrain.TarinPos-1] { 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}) session.SendMsg(string(this.module.GetType()), TrollGetListResp, &pb.TrollGetListResp{Data: trolltrain})
return return
} }
trainNum := this.configure.GetTrollMaxTraintNum() trainNum := this.configure.GetTrollMaxTraintNum()
trolltrain.Shop = make(map[int32]int32) // 清空商人的购买数据 trolltrain.Shop = make(map[int32]int32) // 清空商人的购买数据
update["shop"] = trolltrain.Shop update["shop"] = trolltrain.Shop
circleCount = (int32(configure.Now().Unix()-trolltrain.Ctime) / circletime) // 经过的周期数 t := int32(configure.Now().Unix() - trolltrain.Ctime)
circleCount = t / circletime // 经过的周期数
c := int32((configure.Now().Unix() - trolltrain.Ctime)) / circletime leftTime = t % circletime
if trolltrain.Circle != c { if trolltrain.Circle != circleCount {
trolltrain.SurpriseID = make(map[int32]int32, 0) trolltrain.SurpriseID = make(map[int32]int32, 0)
n, _ := rand.Int(rand.Reader, big.NewInt(int64(trainNum))) n, _ := rand.Int(rand.Reader, big.NewInt(int64(trainNum)))
goods := this.configure.GetTrollAllGoods() goods := this.configure.GetTrollAllGoods()
@ -84,10 +88,8 @@ func (this *apiComp) GetList(session comm.IUserSession, req *pb.TrollGetListReq)
update["circle"] = trolltrain.Circle update["circle"] = trolltrain.Circle
} }
leftTime = (int32((configure.Now().Unix() - trolltrain.Ctime)) % circletime)
index = circleCount * trainNum // 计算火车的位置信息 index = circleCount * trainNum // 计算火车的位置信息
for _, v := range sz { for _, v := range szTrain {
if leftTime <= v { if leftTime <= v {
trolltrain.RefreshTime = configure.Now().Unix() trolltrain.RefreshTime = configure.Now().Unix()
trolltrain.RangeId = (index % maxCoefficient) + 1 trolltrain.RangeId = (index % maxCoefficient) + 1