任务通知条件校验
This commit is contained in:
parent
6c81d4e177
commit
900ee8c362
@ -35,7 +35,7 @@ func (this *Worldtask) Init(service core.IService, module core.IModule, options
|
|||||||
|
|
||||||
func (this *Worldtask) OnInstallComp() {
|
func (this *Worldtask) OnInstallComp() {
|
||||||
this.ModuleBase.OnInstallComp()
|
this.ModuleBase.OnInstallComp()
|
||||||
event.Register(comm.EventBuriedComplete, this.TCondFinishNotify)
|
event.RegisterGO(comm.EventBuriedComplete, this.TCondFinishNotify)
|
||||||
this.api = this.RegisterComp(new(apiComp)).(*apiComp)
|
this.api = this.RegisterComp(new(apiComp)).(*apiComp)
|
||||||
this.modelWorldtask = this.RegisterComp(new(ModelWorldtask)).(*ModelWorldtask)
|
this.modelWorldtask = this.RegisterComp(new(ModelWorldtask)).(*ModelWorldtask)
|
||||||
this.configure = this.RegisterComp(new(configureComp)).(*configureComp)
|
this.configure = this.RegisterComp(new(configureComp)).(*configureComp)
|
||||||
@ -58,6 +58,10 @@ func (this *Worldtask) Start() (err error) {
|
|||||||
|
|
||||||
func (this *Worldtask) TCondFinishNotify(uid string, conids []int32) {
|
func (this *Worldtask) TCondFinishNotify(uid string, conids []int32) {
|
||||||
session, ok := this.GetUserSession(uid)
|
session, ok := this.GetUserSession(uid)
|
||||||
|
defer func() {
|
||||||
|
session.Push()
|
||||||
|
this.PutUserSession(session)
|
||||||
|
}()
|
||||||
if !ok {
|
if !ok {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -73,6 +77,7 @@ func (this *Worldtask) TCondFinishNotify(uid string, conids []int32) {
|
|||||||
var groupId, taskId int32
|
var groupId, taskId int32
|
||||||
// 检索condId是否是世界任务的完成条件
|
// 检索condId是否是世界任务的完成条件
|
||||||
finishedTaskIds := make(map[int32]int32) //达成的任务条件
|
finishedTaskIds := make(map[int32]int32) //达成的任务条件
|
||||||
|
finishedCondIds := []int32{}
|
||||||
for _, c := range this.worldtaskConf.GetDataList() {
|
for _, c := range this.worldtaskConf.GetDataList() {
|
||||||
for _, v := range c.Completetask {
|
for _, v := range c.Completetask {
|
||||||
for _, condId := range conids {
|
for _, condId := range conids {
|
||||||
@ -83,6 +88,7 @@ func (this *Worldtask) TCondFinishNotify(uid string, conids []int32) {
|
|||||||
finishedTaskIds[c.Group] = c.Key
|
finishedTaskIds[c.Group] = c.Key
|
||||||
groupId = c.Group
|
groupId = c.Group
|
||||||
taskId = c.Key
|
taskId = c.Key
|
||||||
|
finishedCondIds = append(finishedCondIds, condId)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break
|
break
|
||||||
@ -109,7 +115,14 @@ func (this *Worldtask) TCondFinishNotify(uid string, conids []int32) {
|
|||||||
|
|
||||||
for _, condId := range conids {
|
for _, condId := range conids {
|
||||||
if _, ok := utils.Findx(wt.CondiIds, condId); !ok {
|
if _, ok := utils.Findx(wt.CondiIds, condId); !ok {
|
||||||
wt.CondiIds = append(wt.CondiIds, condId)
|
condIds, err := this.ModuleBuried.CheckCondition(uid, condId)
|
||||||
|
if err != nil {
|
||||||
|
this.Error("完成条件校验错误", log.Field{Key: "condId", Value: condId})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if len(condIds) == 1 && condIds[0] == condId {
|
||||||
|
wt.CondiIds = append(wt.CondiIds, condId)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -140,6 +153,7 @@ func (this *Worldtask) TCondFinishNotify(uid string, conids []int32) {
|
|||||||
this.modelWorldtask.taskFinish(session, groupId, taskId, userTask, curTaskConf)
|
this.modelWorldtask.taskFinish(session, groupId, taskId, userTask, curTaskConf)
|
||||||
this.modelWorldtask.taskFinishPush(session, groupId, userTask, curTaskConf)
|
this.modelWorldtask.taskFinishPush(session, groupId, userTask, curTaskConf)
|
||||||
}
|
}
|
||||||
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user