package practice import ( "go_dreamfactory/comm" "go_dreamfactory/pb" "go_dreamfactory/sys/configure" "time" ) //参数校验 func (this *apiComp) InfoCheck(session comm.IUserSession, req *pb.PracticeInfoReq) (errdata *pb.ErrorData) { return } ///练功请求 func (this *apiComp) Info(session comm.IUserSession, req *pb.PracticeInfoReq) (errdata *pb.ErrorData) { var ( err error open bool room *pb.DBPracticeRoom update map[string]interface{} = make(map[string]interface{}) ) if room, err = this.module.modelPandata.queryUserMartialhall(session.GetUserId()); err != nil { errdata = &pb.ErrorData{ Code: pb.ErrorCode_DBError, Title: pb.ErrorCode_DBError.ToString(), Message: err.Error(), } return } if room.Npcstate == 0 && room.Currnpc == 0 { this.module.modelPandata.refreshnpc(room) update["currnpc"] = room.Currnpc update["captain"] = room.Captain update["formation"] = room.Formation } for i := 0; i < len(room.Statuers); { if configure.Now().After(time.Unix(room.Statuers[i].End, 0)) { room.Statuers = append(room.Statuers[:i], room.Statuers[i+1:]...) update["statuers"] = room.Statuers } else { i++ } } if room.Npcstate == -1 { //未开启 检查是否开启 if open, errdata = this.module.ModuleSys.CheckOpenCondCfgById(session.GetUserId(), "pavilion_kick"); errdata != nil { return } if open { if err = this.module.modelPandata.refreshnpc(room); err != nil { this.module.Errorln(err) errdata = &pb.ErrorData{ Code: pb.ErrorCode_SystemError, Title: pb.ErrorCode_SystemError.ToString(), Message: err.Error(), } return } update["currnpc"] = room.Currnpc update["npcstate"] = room.Npcstate update["refresh"] = room.Refresh update["battlenum"] = room.Battlenum update["captain"] = room.Captain update["formation"] = room.Formation } } if room.Npcstate == 3 { //CD中 cd := int32(configure.Now().Sub(time.Unix(room.Refresh, 0)).Seconds()) if cd >= this.module.ModuleTools.GetGlobalConf().PandamasChallengeCd { if err = this.module.modelPandata.refreshnpc(room); err != nil { this.module.Errorln(err) errdata = &pb.ErrorData{ Code: pb.ErrorCode_DBError, Title: pb.ErrorCode_DBError.ToString(), Message: err.Error(), } return } update["currnpc"] = room.Currnpc update["npcstate"] = room.Npcstate update["refresh"] = room.Refresh update["battlenum"] = room.Battlenum update["captain"] = room.Captain update["formation"] = room.Formation } } if len(update) > 0 { this.module.modelPandata.Change(session.GetUserId(), update) } session.SendMsg(string(this.module.GetType()), "info", &pb.PracticeInfoResp{Info: room}) return }