update condi配置
This commit is contained in:
parent
4a18a075f5
commit
b77c28dd0d
@ -1435,8 +1435,8 @@
|
||||
"NPC": 1,
|
||||
"data1": 1,
|
||||
"data2": 111,
|
||||
"data3": 1,
|
||||
"data4": 1,
|
||||
"data3": 0,
|
||||
"data4": 0,
|
||||
"data5": 0
|
||||
},
|
||||
{
|
||||
@ -1451,8 +1451,8 @@
|
||||
"NPC": 2,
|
||||
"data1": 1,
|
||||
"data2": 112,
|
||||
"data3": 2,
|
||||
"data4": 2,
|
||||
"data3": 0,
|
||||
"data4": 0,
|
||||
"data5": 0
|
||||
},
|
||||
{
|
||||
@ -1467,8 +1467,8 @@
|
||||
"NPC": 3,
|
||||
"data1": 1,
|
||||
"data2": 113,
|
||||
"data3": 3,
|
||||
"data4": 3,
|
||||
"data3": 0,
|
||||
"data4": 0,
|
||||
"data5": 0
|
||||
},
|
||||
{
|
||||
@ -1483,8 +1483,8 @@
|
||||
"NPC": 10110,
|
||||
"data1": 1,
|
||||
"data2": 114,
|
||||
"data3": 4,
|
||||
"data4": 4,
|
||||
"data3": 0,
|
||||
"data4": 0,
|
||||
"data5": 0
|
||||
},
|
||||
{
|
||||
|
@ -198,44 +198,6 @@ func (this *apiComp) Finish(session comm.IUserSession, req *pb.WorldtaskFinishRe
|
||||
}
|
||||
}
|
||||
|
||||
finishCall := func() {
|
||||
// 完成任务
|
||||
if err := this.module.modelWorldtask.finishTask(req.GroupId, req.TaskId, userTask); err != nil {
|
||||
code = pb.ErrorCode_WorldtaskFinish
|
||||
this.module.Error("完成任务失败",
|
||||
log.Field{Key: "uid", Value: uid},
|
||||
log.Field{Key: "groupId", Value: req.GroupId},
|
||||
log.Field{Key: "taskId", Value: req.TaskId},
|
||||
log.Field{Key: "err", Value: err.Error()},
|
||||
)
|
||||
return
|
||||
}
|
||||
// 发奖
|
||||
if code = this.module.DispenseRes(session, curTaskConf.Reword, true); code != pb.ErrorCode_Success {
|
||||
this.module.Error("资源发放",
|
||||
log.Field{Key: "uid", Value: uid},
|
||||
log.Field{Key: "groupId", Value: req.GroupId},
|
||||
log.Field{Key: "taskId", Value: req.TaskId},
|
||||
log.Field{Key: "reword", Value: curTaskConf.Reword},
|
||||
log.Field{Key: "code", Value: code},
|
||||
)
|
||||
}
|
||||
|
||||
//判断是否配置了通知module
|
||||
for _, m := range curTaskConf.Module {
|
||||
i, err := this.service.GetModule(core.M_Modules(m))
|
||||
if err != nil {
|
||||
this.module.Errorln(err)
|
||||
continue
|
||||
}
|
||||
|
||||
if ic, ok := i.(comm.ITaskComplete); ok {
|
||||
ic.TaskComplete(session, req.TaskId)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//判断任务是否已完成
|
||||
for _, v := range userTask.TaskList {
|
||||
if v == req.TaskId {
|
||||
@ -248,7 +210,64 @@ func (this *apiComp) Finish(session comm.IUserSession, req *pb.WorldtaskFinishRe
|
||||
}
|
||||
}
|
||||
|
||||
finishCall()
|
||||
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 {
|
||||
code = pb.ErrorCode_WorldtaskFinish
|
||||
this.module.Error("完成任务失败",
|
||||
log.Field{Key: "uid", Value: uid},
|
||||
log.Field{Key: "groupId", Value: req.GroupId},
|
||||
log.Field{Key: "taskId", Value: req.TaskId},
|
||||
log.Field{Key: "err", Value: err.Error()},
|
||||
)
|
||||
return
|
||||
}
|
||||
// 发奖
|
||||
if code = this.module.DispenseRes(session, curTaskConf.Reword, true); code != pb.ErrorCode_Success {
|
||||
this.module.Error("资源发放",
|
||||
log.Field{Key: "uid", Value: uid},
|
||||
log.Field{Key: "groupId", Value: req.GroupId},
|
||||
log.Field{Key: "taskId", Value: req.TaskId},
|
||||
log.Field{Key: "reword", Value: curTaskConf.Reword},
|
||||
log.Field{Key: "code", Value: code},
|
||||
)
|
||||
}
|
||||
|
||||
//判断是否配置了通知module
|
||||
for _, m := range curTaskConf.Module {
|
||||
i, err := this.service.GetModule(core.M_Modules(m))
|
||||
if err != nil {
|
||||
this.module.Errorln(err)
|
||||
continue
|
||||
}
|
||||
|
||||
if ic, ok := i.(comm.ITaskComplete); ok {
|
||||
ic.TaskComplete(session, req.TaskId)
|
||||
}
|
||||
}
|
||||
|
||||
finishRsp()
|
||||
|
||||
|
@ -134,6 +134,23 @@ func (this *ModelWorldtask) findNextTasks(parentTaskId int32) (taskIds []int32)
|
||||
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 {
|
||||
//检查下个任务的完成条件
|
||||
nextTaskConf, err := this.moduleWorldtask.configure.getWorldtaskById(nextTaskId)
|
||||
|
Loading…
Reference in New Issue
Block a user