diff --git a/modules/practice/api_practice.go b/modules/practice/api_practice.go index 113d436fd..6075f4c08 100644 --- a/modules/practice/api_practice.go +++ b/modules/practice/api_practice.go @@ -137,19 +137,22 @@ func (this *apiComp) Practice(session comm.IUserSession, req *pb.PracticePractic return } room.Knapsack[req.Teacher].Usenum++ - if tconfigure.Race != heroconf.Race { + room.Knapsack[req.Teacher].Lastusetime = configure.Now().Unix() + if tconfigure.Race != 0 && tconfigure.Race != heroconf.Race { errdata = &pb.ErrorData{ Code: pb.ErrorCode_ReqParameterError, Title: pb.ErrorCode_ReqParameterError.ToString(), Message: fmt.Sprintf("the teacher race:%d and the herorace:%d is race no can use", tconfigure.Race, heroconf.Race), } + return } - if tconfigure.Job != heroconf.Job { + if tconfigure.Job != 0 && tconfigure.Job != heroconf.Job { errdata = &pb.ErrorData{ Code: pb.ErrorCode_ReqParameterError, Title: pb.ErrorCode_ReqParameterError.ToString(), Message: fmt.Sprintf("the teacher job:%d and the hero job:%d is race no can use", tconfigure.Job, heroconf.Job), } + return } if tconfigure.BanHero == hero.HeroID { //禁止使用 errdata = &pb.ErrorData{ @@ -181,7 +184,7 @@ func (this *apiComp) Practice(session comm.IUserSession, req *pb.PracticePractic } if !utils.IsToday(room.Knapsack[req.Prop].Lastusetime) { - room.Knapsack[req.Teacher].Usenum = 0 + room.Knapsack[req.Prop].Usenum = 0 } if room.Knapsack[req.Prop].Usenum >= tconfigure.Limitation { @@ -193,20 +196,22 @@ func (this *apiComp) Practice(session comm.IUserSession, req *pb.PracticePractic return } room.Knapsack[req.Prop].Usenum++ - - if pconfigure.Race != heroconf.Race { + room.Knapsack[req.Prop].Lastusetime = configure.Now().Unix() + if pconfigure.Race != 0 && pconfigure.Race != heroconf.Race { errdata = &pb.ErrorData{ Code: pb.ErrorCode_ReqParameterError, Title: pb.ErrorCode_ReqParameterError.ToString(), Message: fmt.Sprintf("the teacher race:%d and the herorace:%d is race no can use", tconfigure.Race, heroconf.Race), } + return } - if pconfigure.Job != heroconf.Job { + if pconfigure.Job != 0 && pconfigure.Job != heroconf.Job { errdata = &pb.ErrorData{ Code: pb.ErrorCode_ReqParameterError, Title: pb.ErrorCode_ReqParameterError.ToString(), Message: fmt.Sprintf("the teacher job:%d and the hero job:%d is race no can use", tconfigure.Job, heroconf.Job), } + return } extra += int32(float64(pillarconfigure.PlacementDuration) * float64(pconfigure.Duration) / float64(1000)) pillar.Prop = req.Prop