This commit is contained in:
meixiongfeng 2023-07-14 15:36:02 +08:00
commit 7aa09a1e12
5 changed files with 63 additions and 23 deletions

View File

@ -544,6 +544,8 @@ type (
IOpenCmdNotice IOpenCmdNotice
AcceptCaravanTask(session IUserSession, groupId int32) (tid, groud int32, errdata *pb.ErrorData) AcceptCaravanTask(session IUserSession, groupId int32) (tid, groud int32, errdata *pb.ErrorData)
ClearCaravanTask(session IUserSession, task int32) ClearCaravanTask(session IUserSession, task int32)
// bingo任务
BingoJumpTask(session IUserSession, rtaskId int32) (errdata *pb.ErrorData)
} }
//战令 //战令
IWarorder interface { IWarorder interface {

View File

@ -166,26 +166,13 @@ func (this *GM) CreateCmd(session comm.IUserSession, cmd string) (errdata *pb.Er
log.Field{Key: "param", Value: datas[0]}, log.Field{Key: "param", Value: datas[0]},
log.Field{Key: "res", Value: res}, log.Field{Key: "res", Value: res},
) )
} else if len(datas) == 3 && (datas[0] == "worldtask") {
module, err := this.service.GetModule(comm.ModuleWorldtask)
if err != nil {
return
}
if wt, ok := module.(comm.IWorldtask); ok {
if err = wt.BingoJumpTask(session, utils.ToInt32(datas[1]), utils.ToInt32(datas[2])); err != nil {
this.Error("bingo 世界任务",
log.Field{Key: "params", Value: datas},
log.Field{Key: "err", Value: err.Error()},
)
}
}
} else if len(datas) == 2 && (datas[0] == "worldtask") { } else if len(datas) == 2 && (datas[0] == "worldtask") {
module, err := this.service.GetModule(comm.ModuleWorldtask) module, err := this.service.GetModule(comm.ModuleWorldtask)
if err != nil { if err != nil {
return return
} }
if wt, ok := module.(comm.IWorldtask); ok { if wt, ok := module.(comm.IWtask); ok {
if err = wt.JumpTaskByTaskId(session, utils.ToInt32(datas[1])); err != nil { if errdata = wt.BingoJumpTask(session, utils.ToInt32(datas[1])); err != nil {
this.Error("bingo 世界任务", this.Error("bingo 世界任务",
log.Field{Key: "params", Value: datas}, log.Field{Key: "params", Value: datas},
log.Field{Key: "err", Value: err.Error()}, log.Field{Key: "err", Value: err.Error()},

View File

@ -50,14 +50,6 @@ func (this *apiComp) Accept(session comm.IUserSession, req *pb.WTaskAcceptReq) (
ok = true ok = true
} }
} }
if conf.Des == 5 { //商队任务 接取任务时 移除下一个任务的完成条件 方便顺序获取任务
for i, v := range wtask.Completes {
if conf.IdAfter != 0 && conf.IdAfter == v {
wtask.Completes = append(wtask.Completes[0:i], wtask.Completes[i+1:]...)
update["completes"] = wtask.Completes
}
}
}
if !ok { if !ok {
errdata = &pb.ErrorData{ errdata = &pb.ErrorData{

View File

@ -111,6 +111,15 @@ func (this *apiComp) Finish(session comm.IUserSession, req *pb.WTaskFinishReq) (
} }
} }
wtask.Completes = append(wtask.Completes, req.Tid) wtask.Completes = append(wtask.Completes, req.Tid)
if conf.Des == 5 { //商队任务 完成任务时 移除下一个任务的完成条件 方便顺序获取任务
for i, v := range wtask.Completes {
if conf.IdAfter != 0 && conf.IdAfter == v {
wtask.Completes = append(wtask.Completes[0:i], wtask.Completes[i+1:]...)
}
}
}
session.SendMsg(string(this.module.GetType()), "finish", &pb.WTaskFinishResp{Tid: req.Tid, Award: award}) session.SendMsg(string(this.module.GetType()), "finish", &pb.WTaskFinishResp{Tid: req.Tid, Award: award})
this.module.checkgroupState(session, wtask, conf.Group) this.module.checkgroupState(session, wtask, conf.Group)
this.module.fishtask(session, wtask, true) this.module.fishtask(session, wtask, true)

View File

@ -280,6 +280,56 @@ func (this *WTask) ClearCaravanTask(session comm.IUserSession, task int32) {
} }
} }
// 跳世界任务
func (this *WTask) BingoJumpTask(session comm.IUserSession, taskId int32) (errdata *pb.ErrorData) {
var (
wtask *pb.DBWTask
update map[string]interface{} = make(map[string]interface{})
ok bool
err error
)
if _, err = this.configure.gettaskconfconfigure(taskId); err != nil {
errdata = &pb.ErrorData{
Code: pb.ErrorCode_ConfigNoFound,
Title: pb.ErrorCode_ConfigNoFound.ToString(),
Message: err.Error(),
}
return
}
if wtask, err = this.modelwtask.getUserWTasks(session.GetUserId()); err != nil {
errdata = &pb.ErrorData{
Code: pb.ErrorCode_DBError,
Title: pb.ErrorCode_DBError.ToString(),
Message: err.Error(),
}
return
}
ok = false
for _, v := range wtask.Activations {
if taskId == v {
ok = true
}
}
if ok {
return
}
update["activations"] = wtask.Activations
if err = this.modelwtask.Change(session.GetUserId(), update); err != nil {
errdata = &pb.ErrorData{
Code: pb.ErrorCode_DBError,
Title: pb.ErrorCode_DBError.ToString(),
Message: err.Error(),
}
return
}
session.SendMsg(string(this.GetType()), "activationschange", &pb.WTaskActivationsChangePush{Activations: wtask.Activations})
return
}
// 校验任务进度 // 校验任务进度
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 (