移除世界任务进度推送

This commit is contained in:
liwei1dao 2024-01-09 18:14:05 +08:00
parent 98ff8233cb
commit e28eccd873
5 changed files with 404 additions and 495 deletions

View File

@ -34,11 +34,11 @@ func (this *ModuleRobot_WTask) Receive(robot IRobot, stype string, message proto
case "info": case "info":
resp := message.(*pb.WTaskInfoResp) resp := message.(*pb.WTaskInfoResp)
this.info = resp.Info this.info = resp.Info
this.progress = resp.Accepts // this.progress = resp.Accepts
break break
case "accept": case "accept":
resp := message.(*pb.WTaskAcceptResp) resp := message.(*pb.WTaskAcceptResp)
this.progress = resp.Accepts // this.progress = resp.Accepts
if this.info != nil { if this.info != nil {
this.info.Activations = resp.Activations this.info.Activations = resp.Activations
this.info.Accepts = make([]int32, 0) this.info.Accepts = make([]int32, 0)
@ -80,17 +80,17 @@ func (this *ModuleRobot_WTask) Receive(robot IRobot, stype string, message proto
this.info.Activations = resp.Activations this.info.Activations = resp.Activations
} }
break break
case "acceptchange": // case "acceptchange":
resp := message.(*pb.WTaskAcceptChangePush) // resp := message.(*pb.WTaskAcceptChangePush)
// log.Debug("[机器人 WTask-AcceptChange]", log.Field{Key: "Account", Value: robot.Account()}, log.Field{Key: "Resp", Value: resp.String()}) // // log.Debug("[机器人 WTask-AcceptChange]", log.Field{Key: "Account", Value: robot.Account()}, log.Field{Key: "Resp", Value: resp.String()})
this.progress = resp.Accepts // this.progress = resp.Accepts
if this.info != nil { // if this.info != nil {
this.info.Accepts = make([]int32, 0) // this.info.Accepts = make([]int32, 0)
for _, v := range this.progress { // for _, v := range this.progress {
this.info.Accepts = append(this.info.Accepts, v.Tid) // this.info.Accepts = append(this.info.Accepts, v.Tid)
} // }
} // }
break // break
case "boxchange": case "boxchange":
resp := message.(*pb.WTaskBoxChangePush) resp := message.(*pb.WTaskBoxChangePush)
this.info.Boxs = resp.Boxs this.info.Boxs = resp.Boxs

View File

@ -16,13 +16,13 @@ func (this *apiComp) AcceptCheck(session comm.IUserSession, req *pb.WTaskAcceptR
// /获取系统公告 // /获取系统公告
func (this *apiComp) Accept(session comm.IUserSession, req *pb.WTaskAcceptReq) (errdata *pb.ErrorData) { func (this *apiComp) Accept(session comm.IUserSession, req *pb.WTaskAcceptReq) (errdata *pb.ErrorData) {
var ( var (
wtask *pb.DBWTask wtask *pb.DBWTask
conf *cfg.GameWorldTaskData conf *cfg.GameWorldTaskData
progress []*pb.DBWTaskItem // progress []*pb.DBWTaskItem
update map[string]interface{} = make(map[string]interface{}) update map[string]interface{} = make(map[string]interface{})
boxs map[int32]int32 boxs map[int32]int32
ok bool ok bool
err error err error
) )
if errdata = this.AcceptCheck(session, req); errdata != nil { if errdata = this.AcceptCheck(session, req); errdata != nil {
return return
@ -96,11 +96,9 @@ func (this *apiComp) Accept(session comm.IUserSession, req *pb.WTaskAcceptReq) (
} }
} }
if progress, errdata = this.module.pushtaskprogress(session, wtask, false); errdata != nil { // if progress, errdata = this.module.pushtaskprogress(session, wtask, false); errdata != nil {
return // return
} // }
session.SendMsg(string(this.module.GetType()), "accept", &pb.WTaskAcceptResp{Tid: req.Tid, Activations: wtask.Activations, Accepts: progress})
if err = this.module.modelwtask.Change(session.GetUserId(), update); err != nil { if err = this.module.modelwtask.Change(session.GetUserId(), update); err != nil {
errdata = &pb.ErrorData{ errdata = &pb.ErrorData{
Code: pb.ErrorCode_DBError, Code: pb.ErrorCode_DBError,
@ -109,7 +107,7 @@ func (this *apiComp) Accept(session comm.IUserSession, req *pb.WTaskAcceptReq) (
} }
return return
} }
session.SendMsg(string(this.module.GetType()), "accept", &pb.WTaskAcceptResp{Tid: req.Tid, Activations: wtask.Activations})
go this.module.AsynHandleSession(session.Clone(), func(session comm.IUserSession) { go this.module.AsynHandleSession(session.Clone(), func(session comm.IUserSession) {
this.module.WriteUserLog(session.GetUserId(), req, comm.GMResAddType, "WTaskAcceptReq", conf.GetItem) this.module.WriteUserLog(session.GetUserId(), req, comm.GMResAddType, "WTaskAcceptReq", conf.GetItem)
}) })

View File

@ -14,9 +14,9 @@ func (this *apiComp) InfoCheck(session comm.IUserSession, req *pb.WTaskInfoReq)
// /获取系统公告 // /获取系统公告
func (this *apiComp) Info(session comm.IUserSession, req *pb.WTaskInfoReq) (errdata *pb.ErrorData) { func (this *apiComp) Info(session comm.IUserSession, req *pb.WTaskInfoReq) (errdata *pb.ErrorData) {
var ( var (
wtask *pb.DBWTask wtask *pb.DBWTask
progress []*pb.DBWTaskItem // progress []*pb.DBWTaskItem
err error err error
) )
if errdata = this.InfoCheck(session, req); errdata != nil { if errdata = this.InfoCheck(session, req); errdata != nil {
return return
@ -33,10 +33,10 @@ func (this *apiComp) Info(session comm.IUserSession, req *pb.WTaskInfoReq) (errd
if _, errdata = this.module.fishtask(session, wtask, false); errdata != nil { if _, errdata = this.module.fishtask(session, wtask, false); errdata != nil {
return return
} }
if progress, errdata = this.module.pushtaskprogress(session, wtask, false); errdata != nil { // if progress, errdata = this.module.pushtaskprogress(session, wtask, false); errdata != nil {
return // return
} // }
session.SendMsg(string(this.module.GetType()), "info", &pb.WTaskInfoResp{Info: wtask, Accepts: progress}) session.SendMsg(string(this.module.GetType()), "info", &pb.WTaskInfoResp{Info: wtask})
if err = this.module.modelwtask.updateUserWTasks(session.GetUserId(), wtask); err != nil { if err = this.module.modelwtask.updateUserWTasks(session.GetUserId(), wtask); err != nil {
errdata = &pb.ErrorData{ errdata = &pb.ErrorData{
Code: pb.ErrorCode_DBError, Code: pb.ErrorCode_DBError,

View File

@ -73,84 +73,84 @@ func (this *WTask) OnInstallComp() {
// 埋点通知 // 埋点通知
func (this *WTask) BuriedsNotify(session comm.IUserSession, condis []*pb.ConIProgress) { func (this *WTask) BuriedsNotify(session comm.IUserSession, condis []*pb.ConIProgress) {
var ( // var (
condisMap map[int32]*pb.ConIProgress = make(map[int32]*pb.ConIProgress) // condisMap map[int32]*pb.ConIProgress = make(map[int32]*pb.ConIProgress)
utask *pb.DBWTask // utask *pb.DBWTask
accepttaskMap map[int32]struct{} = make(map[int32]struct{}) // accepttaskMap map[int32]struct{} = make(map[int32]struct{})
condlTask map[int32][]*cfg.GameWorldTaskData // condlTask map[int32][]*cfg.GameWorldTaskData
temptasks []*cfg.GameWorldTaskData // temptasks []*cfg.GameWorldTaskData
changetasks map[int32]*cfg.GameWorldTaskData = make(map[int32]*cfg.GameWorldTaskData) // changetasks map[int32]*cfg.GameWorldTaskData = make(map[int32]*cfg.GameWorldTaskData)
checkcondlsMap map[int32]struct{} = make(map[int32]struct{}) // checkcondlsMap map[int32]struct{} = make(map[int32]struct{})
checkcondls []int32 = make([]int32, 0) // checkcondls []int32 = make([]int32, 0)
detailstasks []*pb.DBWTaskItem = make([]*pb.DBWTaskItem, 0) // detailstasks []*pb.DBWTaskItem = make([]*pb.DBWTaskItem, 0)
ok bool // ok bool
needcheck bool //是否需要校验 // needcheck bool //是否需要校验
err error // err error
) // )
this.Debug("收到子任务进度变化推送", log.Field{Key: "uid", Value: session.GetUserId()}, log.Field{Key: "condis", Value: condis}) // this.Debug("收到子任务进度变化推送", log.Field{Key: "uid", Value: session.GetUserId()}, log.Field{Key: "condis", Value: condis})
if utask, err = this.modelwtask.getUserWTasks(session.GetUserId()); err != nil { // if utask, err = this.modelwtask.getUserWTasks(session.GetUserId()); err != nil {
this.Error("读取玩家世界任务数据 失败", log.Field{Key: "err", Value: err.Error()}) // this.Error("读取玩家世界任务数据 失败", log.Field{Key: "err", Value: err.Error()})
return // return
} // }
condlTask = this.configure.getcondlTask() // condlTask = this.configure.getcondlTask()
for _, v := range condis { // for _, v := range condis {
condisMap[v.Conid] = v // condisMap[v.Conid] = v
} // }
for _, v := range utask.Accepts { // for _, v := range utask.Accepts {
accepttaskMap[v] = struct{}{} // accepttaskMap[v] = struct{}{}
} // }
for _, v := range condis { // for _, v := range condis {
if temptasks, ok = condlTask[v.Conid]; ok { // if temptasks, ok = condlTask[v.Conid]; ok {
for _, task := range temptasks { // for _, task := range temptasks {
if _, ok = accepttaskMap[task.Key]; ok { //任务列表进度有变化 // if _, ok = accepttaskMap[task.Key]; ok { //任务列表进度有变化
if _, ok = changetasks[task.Key]; !ok { // if _, ok = changetasks[task.Key]; !ok {
changetasks[task.Key] = task // changetasks[task.Key] = task
for _, cid := range task.Completetask { // for _, cid := range task.Completetask {
if _, ok = checkcondlsMap[cid]; !ok { // if _, ok = checkcondlsMap[cid]; !ok {
checkcondlsMap[cid] = struct{}{} // checkcondlsMap[cid] = struct{}{}
checkcondls = append(checkcondls, cid) // checkcondls = append(checkcondls, cid)
} // }
} // }
} // }
} // }
} // }
} // }
} // }
if len(changetasks) == 0 { //没有任务变化 // if len(changetasks) == 0 { //没有任务变化
return // return
} // }
for k, _ := range checkcondlsMap { // for k, _ := range checkcondlsMap {
if _, ok = condisMap[k]; !ok { // if _, ok = condisMap[k]; !ok {
needcheck = true // needcheck = true
} // }
} // }
if needcheck { //校验有变化的任务 的完成条件 // if needcheck { //校验有变化的任务 的完成条件
if condis, err = this.ModuleBuried.CheckCondition(session, checkcondls...); err != nil { // if condis, err = this.ModuleBuried.CheckCondition(session, checkcondls...); err != nil {
this.Error("校验玩家子任务进度数据 失败", log.Field{Key: "err", Value: err.Error()}) // this.Error("校验玩家子任务进度数据 失败", log.Field{Key: "err", Value: err.Error()})
return // return
} // }
for _, v := range condis { // for _, v := range condis {
condisMap[v.Conid] = v // condisMap[v.Conid] = v
} // }
} // }
//推送进度变化消息 // //推送进度变化消息
for k, v := range changetasks { // for k, v := range changetasks {
task := &pb.DBWTaskItem{ // task := &pb.DBWTaskItem{
Tid: k, // Tid: k,
Conlds: make([]*pb.ConIProgress, len(v.Completetask)), // Conlds: make([]*pb.ConIProgress, len(v.Completetask)),
} // }
for i, v := range v.Completetask { // for i, v := range v.Completetask {
task.Conlds[i] = condisMap[v] // task.Conlds[i] = condisMap[v]
} // }
detailstasks = append(detailstasks, task) // detailstasks = append(detailstasks, task)
} // }
//发送进度变化消息 // //发送进度变化消息
session.SendMsg(string(this.GetType()), "acceptchange", &pb.WTaskAcceptChangePush{Accepts: detailstasks}) // session.SendMsg(string(this.GetType()), "acceptchange", &pb.WTaskAcceptChangePush{Accepts: detailstasks})
} }
// 功能开启 // 功能开启
@ -475,7 +475,7 @@ func (this *WTask) ClearCaravanTask(session comm.IUserSession, task int32) {
} }
if change { if change {
this.pushtaskprogress(session, wtask, true) // this.pushtaskprogress(session, wtask, true)
if err = this.modelwtask.updateUserWTasks(session.GetUserId(), wtask); err != nil { if err = this.modelwtask.updateUserWTasks(session.GetUserId(), wtask); err != nil {
this.Errorln(err) this.Errorln(err)
return return
@ -577,77 +577,77 @@ func (this *WTask) BingoJumpTask(session comm.IUserSession, taskId int32) (errda
} }
// 校验任务进度 // 校验任务进度
func (this *WTask) pushtaskprogress(session comm.IUserSession, wtask *pb.DBWTask, ispush bool) (progress []*pb.DBWTaskItem, errdata *pb.ErrorData) { // func (this *WTask) pushtaskprogress(session comm.IUserSession, wtask *pb.DBWTask, ispush bool) (progress []*pb.DBWTaskItem, errdata *pb.ErrorData) {
var ( // var (
checkcondlsMap map[int32]struct{} = make(map[int32]struct{}) // checkcondlsMap map[int32]struct{} = make(map[int32]struct{})
checkcondls []int32 = make([]int32, 0) // checkcondls []int32 = make([]int32, 0)
conf *cfg.GameWorldTaskData // conf *cfg.GameWorldTaskData
condis []*pb.ConIProgress = make([]*pb.ConIProgress, 0) // condis []*pb.ConIProgress = make([]*pb.ConIProgress, 0)
condisMap map[int32]*pb.ConIProgress = make(map[int32]*pb.ConIProgress) // condisMap map[int32]*pb.ConIProgress = make(map[int32]*pb.ConIProgress)
err error // err error
ok bool // ok bool
) // )
progress = make([]*pb.DBWTaskItem, 0) // progress = make([]*pb.DBWTaskItem, 0)
if len(wtask.Accepts) == 0 { // if len(wtask.Accepts) == 0 {
return // return
} // }
for _, v := range wtask.Accepts { // for _, v := range wtask.Accepts {
if conf, err = this.configure.gettaskconfconfigure(v); err != nil { // if conf, err = this.configure.gettaskconfconfigure(v); err != nil {
this.Errorln(err) // this.Errorln(err)
errdata = &pb.ErrorData{ // errdata = &pb.ErrorData{
Code: pb.ErrorCode_ConfigNoFound, // Code: pb.ErrorCode_ConfigNoFound,
Title: pb.ErrorCode_ConfigNoFound.ToString(), // Title: pb.ErrorCode_ConfigNoFound.ToString(),
Message: err.Error(), // Message: err.Error(),
} // }
return // return
} // }
for _, v := range conf.Completetask { // for _, v := range conf.Completetask {
if _, ok = checkcondlsMap[v]; !ok { // if _, ok = checkcondlsMap[v]; !ok {
checkcondlsMap[v] = struct{}{} // checkcondlsMap[v] = struct{}{}
checkcondls = append(checkcondls, v) // checkcondls = append(checkcondls, v)
} // }
} // }
} // }
if len(checkcondls) > 0 { // if len(checkcondls) > 0 {
if condis, err = this.ModuleBuried.CheckCondition(session, checkcondls...); err != nil { // if condis, err = this.ModuleBuried.CheckCondition(session, checkcondls...); err != nil {
this.Error("校验玩家子任务进度数据 失败", log.Field{Key: "err", Value: err.Error()}) // this.Error("校验玩家子任务进度数据 失败", log.Field{Key: "err", Value: err.Error()})
errdata = &pb.ErrorData{ // errdata = &pb.ErrorData{
Code: pb.ErrorCode_ExternalModule, // Code: pb.ErrorCode_ExternalModule,
Title: pb.ErrorCode_ExternalModule.ToString(), // Title: pb.ErrorCode_ExternalModule.ToString(),
Message: fmt.Sprintf("ModuleBuried.CheckCondition Error:%s", err.Error()), // Message: fmt.Sprintf("ModuleBuried.CheckCondition Error:%s", err.Error()),
} // }
return // return
} // }
for _, v := range condis { // for _, v := range condis {
condisMap[v.Conid] = v // condisMap[v.Conid] = v
} // }
} // }
for _, v := range wtask.Accepts { // for _, v := range wtask.Accepts {
if conf, err = this.configure.gettaskconfconfigure(v); err != nil { // if conf, err = this.configure.gettaskconfconfigure(v); err != nil {
errdata = &pb.ErrorData{ // errdata = &pb.ErrorData{
Code: pb.ErrorCode_ConfigNoFound, // Code: pb.ErrorCode_ConfigNoFound,
Title: pb.ErrorCode_ConfigNoFound.ToString(), // Title: pb.ErrorCode_ConfigNoFound.ToString(),
Message: err.Error(), // Message: err.Error(),
} // }
return // return
} // }
task := &pb.DBWTaskItem{ // task := &pb.DBWTaskItem{
Tid: v, // Tid: v,
Conlds: make([]*pb.ConIProgress, len(conf.Completetask)), // Conlds: make([]*pb.ConIProgress, len(conf.Completetask)),
} // }
ok = true // ok = true
for i, v := range conf.Completetask { // for i, v := range conf.Completetask {
task.Conlds[i] = condisMap[v] // task.Conlds[i] = condisMap[v]
} // }
progress = append(progress, task) // progress = append(progress, task)
} // }
if ispush { // if ispush {
session.SendMsg(string(this.GetType()), "acceptchange", &pb.WTaskAcceptChangePush{Accepts: progress}) // session.SendMsg(string(this.GetType()), "acceptchange", &pb.WTaskAcceptChangePush{Accepts: progress})
} // }
return // return
} // }
// 完成任务 // 完成任务
func (this *WTask) fishtask(session comm.IUserSession, wtask *pb.DBWTask, ispush bool) (progress []*pb.DBWTaskItem, errdata *pb.ErrorData) { func (this *WTask) fishtask(session comm.IUserSession, wtask *pb.DBWTask, ispush bool) (progress []*pb.DBWTaskItem, errdata *pb.ErrorData) {
@ -772,7 +772,7 @@ func (this *WTask) inquireActivations(session comm.IUserSession, wtask *pb.DBWTa
if errdata = this.ModuleBuried.ActiveCondition(session, condiIds...); err != nil { if errdata = this.ModuleBuried.ActiveCondition(session, condiIds...); err != nil {
return return
} }
progress, errdata = this.pushtaskprogress(session, wtask, ispush) // progress, errdata = this.pushtaskprogress(session, wtask, ispush)
} }
return return
} }

File diff suppressed because it is too large Load Diff