与玩家任务相关的模块有:lib_task.erl(玩家任务相关操作),mod_task.erl(定时回写任务数据)
玩家任务的初始化:
在登录的时候调用lib_task:flush_role_task(PS),从数据库中加载玩家角色数据
玩家任务数据分为可接的任务,已接取的任务(task_bag)和已完成的任务(task_log)
任务的基本操作:
1.获取可接任务(接取任务条件),已接任务(任务完成进度)列表:
lib_task:get_player_active_task(PlayerStatus)
lib_task:get_task_tips(active, TaskId, PlayerStatus)
2.接取任务:lib_task:trigger_task(TaskId, PlayerStatus)
3.触发任务事件:lib_task:task_event/3
4.放弃任务:lib_task:abnegate_task(TaskId, PlayerStatus)
5.完成任务:lib_task:finish_task(TaskId, SelectItemList, PlayerStatus)
任务配置结构:包含了任务的基本信息,任务开启的前提条件,任务内容,任务奖励等
%% 任务数据
-record(task,
{
id,
class = 0, %% 任务分类,0普通任务,1运镖任务,2帮会任务