1、任务分类
游戏中任务可以分为主线任务、支线任务、日常任务、周任务、节日活动任务,其中周任务和节日任务可以根据设定的日期进行开启关闭,属于重复性任务。
2、游戏条件
各类任务开启条件:1、玩家等级 2、玩家攻击力3、前置任务等等
完成条件:玩家进行任务进度是否达成
任务关闭:1、玩家领取奖励后关闭任务。2、时间过期
3、任务逻辑类型:
任务逻辑有多种,这个往往跟游戏内容相关,比如 杀怪、采集、聊天、升级、完成某家物品等等。每种任务逻辑配置成一张表,例如杀怪类,有任务id,场景(或副本)id,npc id等,这样执行任务判断时直接根据配置表进行判断,任务进行是否一致,然后进行任务进度计算。
也有一些任务逻辑可以配置成脚本,程序根据脚本内容进行判断。
简单任务逻辑处理方式(伪代码):
void kill_boss()
{
//玩家杀死怪物
TaskTrigger->updateTask(player,taskid, npcid);
}
class TaskLogic
{
public:
virtual bool logic(tableElement *pelem, int n, ...) = 0; //tableElement代表策划配置表
};
class KillBossTaskLogic : public TaskLogic
{
public:
bool logic(tableElement *pelem, int n, ...)
{
va_list arg;