ecs/servers/game/logic/player_task.go
2025-06-04 18:17:39 +08:00

272 lines
8.5 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package logic
//type PlayerTask struct {
// Id uint32 `bson:"id" key:"1"`
// Process []int `bson:"process"` //进度
// Okay []bool `bson:"nice"` //点赞
// Status uint32 `bson:"status"` //任务状态0.未完成1.已完成2.已提交(已领取)
//}
//
//func (this *PlayerTask) BuildMsgTask() *proto.Task {
// return &proto.Task{Id: this.Id, Process: this.Process, Status: this.Status}
//}
//
//func (this *Player) checkTaskCompetedAhead(task *PlayerTask, taskTable *data.Task) {
// if proto.TaskType(taskTable.TaskType) != proto.TaskTypeMainline {
// return
// }
//
// var changed = false
// var completed = true
// for i := range taskTable.Section1 {
// switch proto.TaskSection1(taskTable.Section1[i]) {
// case proto.TaskSection1PassSpecificScene:
// if len(taskTable.Section2) > 0 && taskTable.Section2[i] > 0 {
// changed = this.processTask(task, taskTable, i, int(this.GetCopyPassedNum(uint32(taskTable.Section2[i])))) || changed
// }
// case proto.TaskSection1HeadComponentMaxLevel:
// changed = this.processTask(task, taskTable, i, int(this.GetRigCompnentLevels(proto.EquipTypeHead))) || changed
// case proto.TaskSection1BodyComponentMaxLevel:
// changed = this.processTask(task, taskTable, i, int(this.GetRigCompnentLevels(proto.EquipTypeBody))) || changed
// case proto.TaskSection1TailComponentMaxLevel:
// changed = this.processTask(task, taskTable, i, int(this.GetRigCompnentLevels(proto.EquipTypeTail))) || changed
// case proto.TaskSection1ComponentsAllLevels:
// changed = this.processTask(task, taskTable, i, int(this.GetAllRigCompnentLevels())) || changed
// default:
// return
// }
// completed = completed && task.Okay[i]
// }
// if completed {
// task.Status = uint32(proto.TaskStatusCompleted)
// }
//}
//
//func (this *Player) addTask(taskTable *data.Task) *PlayerTask {
//
// if taskTable.Id == 200002 {
// this.manager.logger.Error("200002")
// }
//
// var task = &PlayerTask{Id: uint32(taskTable.Id), Process: make([]int, len(taskTable.Section1)), Okay: make([]bool, len(taskTable.Section1))}
// this.Task[task.Id] = task
// this.checkTaskCompetedAhead(task, taskTable)
// this.SaveModel(task)
//
// this.manager.eventManager.PlayerTaskLog(this, LogTypeTaskAdd, uint32(taskTable.Id), taskTable.Section1, taskTable.Section2, taskTable.Section3)
// return task
//}
//
//func (this *Player) AddTask(taskIds ...int) {
// if len(taskIds) == 0 {
// return
// }
//
// var changeList []*proto.TaskChange
// for _, taskId := range taskIds {
// var task = this.Task[uint32(taskId)]
// if task != nil {
// continue
// }
//
// var taskTable = this.manager.tables.Task.Get(taskId)
// if taskTable == nil {
// continue
// }
//
// task = this.addTask(taskTable)
// changeList = append(changeList, &proto.TaskChange{Task: task.BuildMsgTask(), ChangeType: uint32(proto.ChangeTypeAdd)})
// }
// if len(changeList) > 0 {
// _ = this.Send(proto.ModIdTask, proto.MsgIdTaskChange, &proto.MsgTaskChangeListAck{List: changeList})
// }
//}
//
//func (this *Player) checkTaskDeprecated() (changed bool) {
// for id, task := range this.Task {
// if taskTable := this.manager.tables.Task.Get(int(id)); taskTable == nil {
// delete(this.Task, id)
// this.WipeModel(task)
// changed = true
// }
// }
// return
//}
//
//func (this *Player) checkTaskReset(taskType proto.TaskType) (changed bool) {
// if taskType == proto.TaskTypeLevelJudge {
// return false
// }
//
// var list []*proto.TaskChange
// var taskTables = this.manager.tables.TaskExtend.Get(int(taskType))
// for _, taskTable := range taskTables {
// var task = this.Task[uint32(taskTable.Id)]
// if task != nil {
// task.Process = make([]int, len(taskTable.Section1))
// task.Okay = make([]bool, len(taskTable.Section1))
// task.Status = uint32(proto.TaskStatusIncomplete)
// list = append(list, &proto.TaskChange{Task: task.BuildMsgTask(), ChangeType: uint32(proto.ChangeTypeChange)})
// } else {
// task = this.addTask(taskTable)
// list = append(list, &proto.TaskChange{Task: task.BuildMsgTask(), ChangeType: uint32(proto.ChangeTypeAdd)})
// }
//
// this.SaveModel(task)
// this.ResetCounterDaily(proto.CounterTypeTaskCompleted, task.Id)
// changed = true
// }
//
// _ = this.Send(proto.ModIdTask, proto.MsgIdTaskChange, &proto.MsgTaskChangeListAck{List: list})
// return
//}
//
//func (this *Player) CheckTask(section1 proto.TaskSection1, section2, value int) bool {
// var changeList []*proto.TaskChange
// for _, task := range this.Task {
// var taskTable = this.manager.tables.Task.Get(int(task.Id))
// if taskTable == nil {
// continue
// }
//
// if proto.TaskType(taskTable.TaskType) == proto.TaskTypeLevelJudge {
// continue
// }
//
// if proto.TaskStatus(task.Status) >= proto.TaskStatusCompleted {
// continue
// }
//
// var changed = false
// if len(task.Process) != len(taskTable.Section1) {
// var process = task.Process
// var okay = task.Okay
//
// task.Process = make([]int, len(taskTable.Section1))
// task.Okay = make([]bool, len(taskTable.Section1))
//
// copy(task.Process, process)
// copy(task.Okay, okay)
//
// changed = true
// }
//
// var completed = true
// for i := range taskTable.Section1 {
// if task.Okay[i] {
// continue
// }
//
// if proto.TaskSection1(taskTable.Section1[i]) != section1 {
// completed = false
// continue
// }
//
// if len(taskTable.Section2) > 0 && taskTable.Section2[i] > 0 {
// if section2 != taskTable.Section2[i] {
// completed = false
// continue
// }
// }
//
// changed = this.processTask(task, taskTable, i, value) || changed
// completed = completed && task.Okay[i]
// }
//
// if changed {
// if completed {
// task.Status = uint32(proto.TaskStatusCompleted)
// }
// this.SaveModel(task)
// changeList = append(changeList, &proto.TaskChange{Task: task.BuildMsgTask(), ChangeType: uint32(proto.ChangeTypeChange)})
// }
// }
//
// if len(changeList) == 0 {
// return false
// }
//
// _ = this.Send(proto.ModIdTask, proto.MsgIdTaskChange, &proto.MsgTaskChangeListAck{List: changeList})
// return true
//}
//
//func (this *Player) processTask(task *PlayerTask, taskTable *data.Task, i, value int) bool {
// switch proto.TaskSection1(taskTable.Section1[i]) {
// case proto.TaskSection1PassSpecificScene,
// proto.TaskSection1PassAnyScene,
// proto.TaskSection1CollectSpecificItem,
// proto.TaskSection1PassedClassifyCopies,
// proto.TaskSection1KillSpecificMonster,
// proto.TaskSection1LoginDays,
// proto.TaskSection1BoughtInSpecificStore,
// proto.TaskSection1SmelterSmeltTimes,
// proto.TaskSection1InfrastructureProduce,
// proto.TaskSection1GetIdleBattleRewards,
// proto.TaskSection1KillClassifyMonsters,
// proto.TaskSection1UpgradeHeadComponents,
// proto.TaskSection1UpgradeBodyComponents,
// proto.TaskSection1UpgradeTailComponents,
// proto.TaskSection1LevelBattleScore,
// proto.TaskSection1UpgradeComponents,
// proto.TaskSection1UpgradeComponentStars,
// proto.TaskSection1UpgradeCharacters,
// proto.TaskSection1UpgradeCharacterStars,
// proto.TaskSection1UpgradeRemains,
// proto.TaskSection1ArenaChallengeTimes,
// proto.TaskSection1PlanetMineTimes,
// proto.TaskSection1BuildCivilizations:
// if task.Process[i] >= taskTable.Section3[i] {
// return false
// }
//
// task.Process[i] += value
// if task.Process[i] >= taskTable.Section3[i] {
// task.Process[i] = taskTable.Section3[i]
// task.Okay[i] = true
// }
// case proto.TaskSection1ArriveSpecificDepth,
// proto.TaskSection1HeadComponentMaxLevel,
// proto.TaskSection1BodyComponentMaxLevel,
// proto.TaskSection1TailComponentMaxLevel,
// proto.TaskSection1ComponentsAllLevels:
// if task.Process[i] >= taskTable.Section3[i] {
// return false
// }
//
// task.Process[i] = value
// if task.Process[i] >= taskTable.Section3[i] {
// task.Process[i] = taskTable.Section3[i]
// task.Okay[i] = true
// }
// case proto.TaskSection1ArrivedDesignatedArea:
// task.Process[i] = value
// if len(taskTable.Section2) == 0 {
// return false
// }
//
// switch taskTable.Section2[i] {
// case 1, 2:
// if task.Process[i] >= taskTable.Section3[i] {
// task.Process[i] = taskTable.Section3[i]
// task.Okay[i] = true
// }
// case 3, 4:
// if task.Process[i] <= taskTable.Section3[i] {
// task.Process[i] = taskTable.Section3[i]
// task.Okay[i] = true
// }
// }
// default:
// return false
// }
// return true
//}
//
//func (this *Player) BuildMsgTaskListAck() *proto.MsgTaskListAck {
// var list []*proto.Task
// for _, task := range this.Task {
// list = append(list, task.BuildMsgTask())
// }
// return &proto.MsgTaskListAck{List: list}
//}