update condi配置

This commit is contained in:
wh_zcy 2023-04-04 17:53:14 +08:00
parent 4a18a075f5
commit b77c28dd0d
3 changed files with 83 additions and 47 deletions

View File

@ -1435,8 +1435,8 @@
"NPC": 1, "NPC": 1,
"data1": 1, "data1": 1,
"data2": 111, "data2": 111,
"data3": 1, "data3": 0,
"data4": 1, "data4": 0,
"data5": 0 "data5": 0
}, },
{ {
@ -1451,8 +1451,8 @@
"NPC": 2, "NPC": 2,
"data1": 1, "data1": 1,
"data2": 112, "data2": 112,
"data3": 2, "data3": 0,
"data4": 2, "data4": 0,
"data5": 0 "data5": 0
}, },
{ {
@ -1467,8 +1467,8 @@
"NPC": 3, "NPC": 3,
"data1": 1, "data1": 1,
"data2": 113, "data2": 113,
"data3": 3, "data3": 0,
"data4": 3, "data4": 0,
"data5": 0 "data5": 0
}, },
{ {
@ -1483,8 +1483,8 @@
"NPC": 10110, "NPC": 10110,
"data1": 1, "data1": 1,
"data2": 114, "data2": 114,
"data3": 4, "data3": 0,
"data4": 4, "data4": 0,
"data5": 0 "data5": 0
}, },
{ {

View File

@ -198,7 +198,42 @@ func (this *apiComp) Finish(session comm.IUserSession, req *pb.WorldtaskFinishRe
} }
} }
finishCall := func() { //判断任务是否已完成
for _, v := range userTask.TaskList {
if v == req.TaskId {
this.module.Debug("任务已完成,返回下一个",
log.Field{Key: "uid", Value: uid},
log.Field{Key: "taskId", Value: req.TaskId},
)
finishRsp()
return
}
}
var (
condiId int32
condiFlag bool
)
for _, condId := range curTaskConf.Completetask {
if this.module.modelWorldtask.checkCondi(uid, condId) {
condiFlag = true
} else {
condiFlag = false
condiId = condId
}
}
if !condiFlag {
rsp.Code = pb.ErrorCode_RtaskCondiNoReach
rsp.CondiId = condiId
rsp.TaskId = req.TaskId
if err := session.SendMsg(string(this.module.GetType()), WorldtaskSubtypeFinish, rsp); err != nil {
code = pb.ErrorCode_SystemError
return
}
return
}
// 完成任务 // 完成任务
if err := this.module.modelWorldtask.finishTask(req.GroupId, req.TaskId, userTask); err != nil { if err := this.module.modelWorldtask.finishTask(req.GroupId, req.TaskId, userTask); err != nil {
code = pb.ErrorCode_WorldtaskFinish code = pb.ErrorCode_WorldtaskFinish
@ -234,22 +269,6 @@ func (this *apiComp) Finish(session comm.IUserSession, req *pb.WorldtaskFinishRe
} }
} }
}
//判断任务是否已完成
for _, v := range userTask.TaskList {
if v == req.TaskId {
this.module.Debug("任务已完成,返回下一个",
log.Field{Key: "uid", Value: uid},
log.Field{Key: "taskId", Value: req.TaskId},
)
finishRsp()
return
}
}
finishCall()
finishRsp() finishRsp()
return return

View File

@ -134,6 +134,23 @@ func (this *ModelWorldtask) findNextTasks(parentTaskId int32) (taskIds []int32)
return return
} }
func (this *ModelWorldtask) checkCondi(uid string, condiId int32) bool {
if m, err := this.service.GetModule(comm.ModuleRtask); err == nil {
iwt, ok := m.(comm.IRtask)
if ok {
if mc := iwt.CheckCondi(uid, condiId); mc != pb.ErrorCode_Success {
this.moduleWorldtask.Debug("任务完成条件不满足",
log.Field{Key: "uid", Value: uid},
log.Field{Key: "condiId", Value: condiId},
)
return false
}
return true
}
}
return false
}
func (this *ModelWorldtask) updateCheckCond(uid string, userTask *pb.DBWorldtask, nextTaskId int32) *pb.DBWorldtask { func (this *ModelWorldtask) updateCheckCond(uid string, userTask *pb.DBWorldtask, nextTaskId int32) *pb.DBWorldtask {
//检查下个任务的完成条件 //检查下个任务的完成条件
nextTaskConf, err := this.moduleWorldtask.configure.getWorldtaskById(nextTaskId) nextTaskConf, err := this.moduleWorldtask.configure.getWorldtaskById(nextTaskId)