概述:
1. 主线任务主要在Script\task\task100.lua和Script\task\util.lua文件中实现,task100.lua主要用于配置主线任务数据,配置任务回调,util.lua文件为任务的工具类,
主要实现组织任务描述,判断任务条件,任务自动滚动等逻辑功能
2. 主线任务数据在task100.lua中的 task_data配置
ttype: 任务类型,1-主线任务,客户端任务前显示前缀 [主] ,3-日常任务,客户端任务前显示前缀 [日]
focus: 目前没有意义,保留字段
autogo: 子任务是否自动滚动,主线任务为自动滚动
direct_accept: 目前只能为false
3. 子任务配置项
tid: 当前子任务id
nid: 下个子任务id
need_level: 完成该任务需要的人物等级
name: 任务名称
chapter: 任务章节,保留字段,目前无意义
accepter: 接收任务的npc名称
doner: 提交任务的npc名称
accepterPlace: 接收任务的地图名称
donerPlace: 提交任务的地图名称
dialogue1: 未接任务时,短描述追加的内容
dialogue2: 已接状态,短描述追加的内容
dialogue3: 完成状态,短描述追加的内容
need_type: 任务类型,item-收集物品,mon-PK怪,friend-添加好友
needs: 任务目标,支持多个
target: 目标名称
num: 目标数量
award: 奖励
name: 奖励物品名称
num: 奖励物品数量
id: 奖励物品的id
isWear: 获得的奖励装备时是否自动穿戴上
talk: 接收任务时npc对话内容
accept_talk: 已接收任务的任务描述
done_talk: 提交任务时npc对话内容
accepted_hook: 成功接收任务时脚本回调
done_hook: 任务完成时的脚本回调,可以在此收取玩家身上的任务道具等
示例如下:
[2]={
tid=2, nid=3, need_level=1, name="饥饿的村民", chapter="1", accepter="周家屠夫", doner="周家屠夫",
accepterPlace="新手村", donerPlace="新手村",
dialogue1=",他有要事相求", dialogue2="", dialogue3="",
need_type="mon",
needs = {
{target="鹿", num=5},
{target="鸡", num=5},
},
award={
{name="金币(绑定)", num=200, id=895, isWear=0},
{name="经验", num=700, id=410, isWear=0},
{name="金创药中量(赠)", num=2, use=true, id=10, isWear=0, bind=1},
{name="史诗贡献点", num=10, use=true, id=2500, isWear=0},
},
talk = "村口有不少动物,PK掉一些鹿,屠夫会把鹿肉分发给饥饿的百姓。",
accept_talk=function (npc,player,td) return "周家屠夫:怪物在村外聚集多日,村民们都快断粮了。饥饿让大伙儿越来越恐慌,你能否帮助我们找一些食物回来?</br>";end;
done_talk =function (npc,player,td) return "周家屠夫:希望我们能渡过难关。谢谢你,这点心意请一定收下!</br>";end;
accepted_hook=function (npc,player,td) end;
},
|