日常任务 - DailyTaskService

角色的某种行为可以关联到一个计数器(可以有多个,每个对应一种行为,比如打竞技场,也就是原来的type类型),计数器就一个属性,就是次数/进度,分为每日(有ttl,每天会重置)和累计两个值。 然后客户端可以发送一个动作类型和每日任务到服务器来判断该计数器是否满足任务的状态变更需求。

SgtApi.DailyTaskService.executeTask(taskId, playerId, callback)

提交任务进度,每提交一次,任务进度+1

SgtApi.DailyTaskService.executeTasksByType(type, playerId, callback)

通过type提交任务,每提交一次,任务进度+1 type只能对应1或0个任务

SgtApi.DailyTaskService.addExecuteTasksByType(type, playerId, progress, callback)

增加指定类型的任务进度

SgtApi.DailyTaskService.getDailyTasks(playerId, callback)

获取每天的日常任务

SgtApi.DailyTaskService.getDailyTasksByType(playerId, type, callback)

通过类型获取指定角色可以进行的任务

SgtApi.DailyTaskService.getReward(taskId, playerId, callback)

根据任务ID获取奖励 获取奖励时会先校验完成任务的进度

SgtApi.DailyTaskService.setTaskProgress(playerId, taskId, progress, callback)

提交指定任务进度

SgtApi.DailyTaskService.setTasksProgressByType(type, playerId, progress, callback)

提交任务进度,每提交一次,任务进度+1

Class: DailyTask

日常任务(DailyTask)至少包括的字段:

  • id
  • type (类型)
  • goal(完成任务的总进度数)
  • reward (奖励)
  • preTaskId(前置任务)
  • nextTaskId(后置任务)
  • startTime(开始时间)
  • endTime(结束时间)
  • currentProgress(当前进度)使用计数器的值
  • status(当前任务进度状态)
  • available(当前任务可用状态,默认可用,1为可用,0为不可用)
  • minLevel(限制等级,最低可做该任务的等级)
  • updateUnfinished(是否在前置任务没完成之前同时更新后置任务,默认不允许,true允许,false不允许)
  • overMaxProcess(是否允许当前进度超越最大进度,默认不允许。true允许,false不允许)
  • showDone(是否允许任务完成后仍然显示在列表,默认显示,false为不显示,true为显示)