源战役
Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
 
 

235 linhas
11 KiB

%% ---------------------------------------------------------------------------
%% @doc task.hrl
%% @author ming_up@foxmail.com
%% @since 2016-12-03
%% @deprecated 任务相关定义
%% ---------------------------------------------------------------------------
-define(SQL_ROLE_DAILY_GET,<<"SELECT `dailys`,`time` FROM `task_daily` WHERE `rid`=~p">>).
-define(SQL_ROLE_TASK_DAILY_INS, <<"REPLACE INTO `task_daily` (`rid`,`dailys`,`time`)VALUES (~p,'~ts',~p)">>).
-define(SQL_ROLE_TASK_BAG_BATCH,"REPLACE INTO `task_bag`(`role_id`, `task_id`, `trigger_time`, `state`,`end_state`, `mark`, `type`, `lv`) VALUES ~ts").
%% 任务类型type
-define(TASK_TYPE_MAIN, 1). %% 主线任务(不能重复接)
-define(TASK_TYPE_SIDE, 2). %% 支线任务(不能重复接)
-define(TASK_TYPE_TURN, 3). %% 转生任务(不能重复接)
-define(TASK_TYPE_CHAPTER, 4). %% 章节任务(不能重复接)
-define(TASK_TYPE_NUCLEON, 5). %% 灵能任务(不能重复接)
-define(TASK_TYPE_GUILD, 6). %% 公会周任务
-define(TASK_TYPE_DAILY, 7). %% 日常支线任务(悬赏任务)
-define(TASK_TYPE_FOUR, 8). %% 四点清理 每日循环
%% 任务种类kind
-define(TASK_KIND_TALK, 0). %% 对话任务
-define(TASK_KIND_KILL, 1). %% 杀怪任务
-define(TASK_KIND_ITEM, 2). %% 收集任务
-define(TASK_KIND_COLLECT, 3). %% 采集任务
-define(TASK_KIND_ESCORT, 4). %% 护送任务
-define(TASK_KIND_ENTER_SCENE, 5). %% 探索任务
-define(TASK_KIND_DUN, 6). %% 副本任务
-define(TASK_KIND_ITEM_BACK, 7). %% 收集回收任务
-define(TASK_KIND_STREN, 8). %% 装备强化任务
-define(TASK_KIND_RUNE_DUN, 9). %% 符文副本任务
-define(TASK_KIND_EXP_DUN, 10). %% 发条密室任务
%% 任务内容类型定义,参考后台任务配置-任务内容配置
-define(TASK_CONTENT_KILL, 1). %% 杀怪
-define(TASK_CONTENT_KILL_BOSS, 2). %% 杀boss:具体到boss类型
-define(TASK_CONTENT_ITEM, 3). %% 收集物品:杀怪
-define(TASK_CONTENT_COLLECT, 4). %% 怪物采集
-define(TASK_CONTENT_TALK, 5). %% npc对话
-define(TASK_CONTENT_START_TALK, 6). %% 开始npc对话
-define(TASK_CONTENT_END_TALK, 7). %% 结束npc对话
-define(TASK_CONTENT_STREN, 8). %% 装备强化
-define(TASK_CONTENT_DUNGEON_TYPE, 9). %% 完成某类副本
-define(TASK_CONTENT_DUNGEON_EXP, 10). %% 发条密室经验
-define(TASK_CONTENT_DUNGEON, 11). %% 某个副本
-define(TASK_CONTENT_ENTER_SCENE, 12). %% 进入场景
-define(TASK_CONTENT_ADD_FRIEND, 13). %% 添加好友
-define(TASK_CONTENT_JOIN_GUILD, 14). %% 加入社团
-define(TASK_CONTENT_GUILD_EQ_RECYCLE, 15). %% 社团装备回收
-define(TASK_CONTENT_GUILD_ACTIVITY, 16). %% 社团活动
-define(TASK_CONTENT_GUILD_EQ_DONATE, 17). %% 社团装备捐献
-define(TASK_CONTENT_BUY_FROM_TRADING, 19). %% 从市场购买
-define(TASK_CONTENT_TRADING_PUTAWAY, 20). %% 物品上架市场
-define(TASK_CONTENT_DUNGEON_RUNE, 21). %% 符文之塔层数
-define(TASK_CONTENT_TIME_TASK, 22). %% 主线触发限时任务
-define(TASK_CONTENT_GOODS_COMPOSE, 23). %% 物品合成
-define(TASK_CONTENT_DAY_ACTIVITY, 24). %% 日常活跃达到xxx点(历史取最大值)
-define(TASK_CONTENT_MATE, 25). %% 羁绊缔结
-define(TASK_CONTENT_DEVOUR, 26). %% 吞噬装备
-define(TASK_CONTENT_KILL_BOSS_ID, 27). %% 击杀boss:具体bossid
-define(TASK_CONTENT_FISH, 28). %% 钓鱼
-define(TASK_CONTENT_DUNGEON_ID_ENTER, 29). %% 进入完成某个副本
-define(TASK_CONTENT_ARENA_TIMES, 31). %% 竞技场次数
-define(TASK_CONTENT_DUNGEON_TYPE_ENTER,34). %% 进入完成某类副本
-define(TASK_CONTENT_CHOOSE_TALK, 35). %% 选项对话
-define(TASK_CONTENT_EMPOWER, 36). %% 装备器灵
-define(TASK_CONTENT_DUN_WAVE, 37). %% 副本进度
-define(TASK_CONTENT_MAILER_RUN, 38). %% 送信任务 其实就是对话击鼓传花
-define(TASK_CONTENT_ERISE, 39). %% 装备进化
-define(TASK_CONTENT_SCORE_BUY, 40). %% 动态积分购买道具
-define(TASK_CONTENT_FRIEND_GIFT, 41). %% 好友送礼
-define(TASK_CONTENT_FRIEND_EXP, 42). %% 好友亲密度
-define(TASK_CONTENT_FOSTER_LV, 43). %% 进阶系统升级
-define(TASK_CONTENT_ROLL, 44). %% 器灵之路
-define(TASK_CONTENT_GOD_LV, 45). %% 唤神升级
-define(TASK_CONTENT_GALAXY_LV, 46). %% 星辰升级
-define(TASK_CONTENT_PET_LV, 47). %% 宠物升级
-define(TASK_CONTENT_SHOW_BABY, 48). %% 晒娃
-define(TASK_CONTENT_NUCLEON_EQUIP, 49). %% 装备灵能
-define(TASK_CONTENT_NUCLEON_SHOP, 50). %% 灵能寻宝
-define(TASK_CONTENT_NEWER, 51). %% 新手引导
-define(TASK_CONTENT_TURN, 52). %% 转生完成
-define(TASK_CONTENT_CAPSULE, 53). %% 龙神抽奖
-define(TASK_CONTENT_EQUIP_SUIT, 54). %% 装备套装
-define(TASK_CONTENT_WAR_SOUL_LV, 55). %% 战魂升级
-define(TASK_CONTENT_FOSTER_GRADE, 56). %% 进阶目标
-define(TASK_CONTENT_EXPECT_TASK, 57). %% 完成目标任务
-define(TASK_CONTENT_CHILD_HEART, 58). %% 宝宝同心值
-define(TASK_CONTENT_COMBAT, 59). %% 玩家战力值
-define(TASK_CONTENT_ACTIVE_SKILL_LV_TIMES, 60). %% 任意主动技能升级N次
-define(TASK_CONTENT_SOME_SHOP_BUY_BOOK, 61). %% 指定商定购买技能书
-define(TASK_CONTENT_ANY_SHOP_BUY_BOOK, 62). %% 任意商定购买技能书
-define(DOUBLE_TYPE, 1). %% 双倍奖励标志
-define(DAILY_SPECIAL_LV, [55]). %% 日常任务特殊处理等级
%% ================================= 配置记录 =================================
%% 任务数据
-record(task, {
id = 0 %% 任务id
,role_id=0
,name = "" %% 任务名称
% ,desc = "" %% 描述
,class = 0 %% 任务分类,0普通任务,1运镖任务,2帮会任务
,type = 0 %% 类型(1主线,2支线,3转生,4章节限时,6公会周,7日常...)
,kind = 0 %% 种类(0对话,1打怪,2采集,3收集,4护送,5探索,6副本,7采集回收(悬赏和公会任务动态采用),8装备强化任务,9符文副本任务,10发条密室任务)
,level = 1 %% 可接的最低等级
,level_max = 0 %% 可接的最大等级
,repeat = 0 %% 重复次数
,realm = 0 %% 阵营限制
,career = 0 %% 职业限制
,turn = 0 %% 转生限制
,prev = 0 %% 上一个必须完成的任务id
,next = 0 %% 下一个任务id
,dun_id = 0 %% 副本id|采集怪物id
,start_item = [] %% 开始获得物品{ItemId, Number}
,end_item = [] %% 结束回收物品
,start_npc = 0 %% 开始npcid
,end_npc = 0 %% 结束npcid
,start_talk = 0 %% 开始对话
,end_talk = 0 %% 结束对话
,unfinished_talk = 0 %% 未完成对话
,trigger_pathfind = 0 %% 是否需要寻路触发
,finish_pathfind = 0 %% 是否需要寻路完成
,condition = [] %% 条件内容 [{task, 任务id}, {item, 物品id, 物品数量}]
,content = [] %% 任务内容 [State, ContentType, Id, Num, SceneId, X, Y, PathFind]
,state = 0 %% 完成任务需要的状态值 state = length(content)
,award_list=[] %% 奖励列表
,special_goods_list=[] %% 特殊职业性别物品[{Career, Sex, GoodsId, Num}]=[{职业,性别,物品id,数量}]:当职业不区分的时候=0;当性别不区分的时候=0;
,guild_exp = 0
,next_cue = 0
,npc_show = [] %% NPC 动态信息[{任务状态(0领取,1可完成,2完成),[{NpcId,Npc状态(0不显示,1显示),场景Id,X,Y}]}]
,chapter = 0 %% 主线章节 主线任务才会有值
,double_cost = 0 %% 双倍奖励消耗, 默认为0:没有双倍奖励; >0:则是有双倍,为消耗的绑钻数
,qcost = 0 %% 快速完成消耗
}).
%% 任务条件数据
-record(task_condition, {
id
,type = 0
,kind = 0
,level = 1 %% 可接的最低等级
,level_max = 0 %% 可接的最大等级
,repeat = 0 %% 可否重复
,realm = 0 %% 阵营
,career = 0 %% 职业限制
,turn = 0 %% 转生限制
,prev = 0 %% 上一个必须完成的任务id
,condition = [] %% 扩充条件 TODO 具体描述日后再加
}).
%% 任务类型配置
-record(task_type, {
type = 0,
count = 0,
module_id = 0,
counter_id = 0,
finish_cost = []
}).
%% 等级动态任务id
-record(task_lv_dynamic_id, {
type = 0, %% 任务类型
cls_state = 1, %%是否跨服
slv = 0, %% 开始等级
elv = 0, %% 结束等级
task_ids = [] %% 任务id,纯随机[id1,id2, ...]
}).
%% 动态等级任务内容
-record(task_lv_dynamic_content, {
task_id = 0, %% 任务id
slv = 0, %% 开始等级
elv = 0, %% 结束等级
start_npc = 0, %% 开始npc
end_npc = 0, %% 结束npc
scene = 0, %% 场景id
x = 0, %% X
y = 0, %% Y
content_type = 0, %% 任务内容类型
id = 0, %% id(MonId|DunId|GoodId), 怪物id|副本id|物品id
num = 0, %% 完成次数|采集数|收集数
extra_reward = [] %% 额外奖励:[{环数,奖励内容}]
}).
%% ================================= 功能记录 =================================
%% 角色任务记录
-record(role_task, {
role_id = 0,
lv = 0, %% 接任务时候玩家的等级
task_id = 0,
type = 0,
kind = 0,
write_db = 0, %% 是否需要写数据库
trigger_time = 0,
state = 0,
end_state = 0,
mark = [] %% 任务记录器格式[State=int(),Finish=bool(), Type=atom((), ...]
}).
%% 角色任务历史记录
-record(role_task_log, {
type = 0,
count = 1 %% 完成的次数
}).
-record(task_args, {
id=0, %% 玩家id
scene = 0, %% 场景id
sid=undefined, %% 玩家广播进程
figure=undefined, %% 基本形象参数
npc_info=[], %% 玩家npc信息
gs_dict = undefined, %% 物品数据
guild_build_lv = 0, %% 公会建筑场等级
source = "" %% 玩家渠道来源
}).
%%跑环任务领取情况
-record(task_daily, {
dailys = [], %%领取进度 [{Type,Pro}]
time = 0 %%上次操作时间
}).
-record(base_task_daily, {
type = 0, %%任务类
grade = 0, %%进度
counts = 0, %%要求完成环数
awards = []
}).