%% --------------------------------------------------------------------------- %% @doc 多人副本头文件. %% @author zengzy %% @since 2019-03-26 %% --------------------------------------------------------------------------- %% 组队成员人数上限 -define(DUN_MULTI_TEAM_MAX_MEMBER, 3). -define(DUN_INVITER_LEN, 5). %% 保存每种组队类型有哪些组队 #dun_multi_room{} -define(DUN_MULTI_HALL_ETS, ets_dun_multi_hall). %% 保存组队数据 #dun_multi_team{} -define(DUN_MULTI_TEAM_ETS, ets_dun_multi_team). %% 保存角色加入哪个组队在哪个副本里面 #dun_multi_role{} %% 保存下线前在哪个副本上线回到之前的副本 -define(DUN_MULTI_ROLE_ETS, ets_dun_multi_role). %% 保存组队自增Id -define(DUN_MULTI_TEAM_ID_ETS, ets_dun_multi_team_id). %% 保存跨服多人副本大厅进程Pid -define(DUN_MULTI_HALL_PID_ETS, ets_dun_multi_hall_pid). %% 活动大类 %% 活动子类和副本id不能相同 -define(ACT_TYPE_CRUSADE, 61). %% 活动大类1 - 讨伐副本 %%新手每次匹配时间 -define(FIRST_TIME, 2). %% 成员状态变更通知(全队广播) -define(DUNMULTITEAM_NOTIFY_LEAVE, 1). %% 成员退出 -define(DUNMULTITEAM_NOTIFY_KICK_OUT, 2). %% 成员被踢 -define(DUNMULTITEAM_NOTIFY_IS_READY, 3). %% 准备状态 "1"准备 or "0"不准备 -define(DUNMULTITEAM_NOTIFY_START_DUN, 4). %% 开启副本 -define(DUNMULTITEAM_NOTIFY_CHANGE_LEADER, 5). %%委任队长 -define(DUNMULTITEAM_NOTIFY_MATCH, 6). %% 队伍匹配状态 -define(MATCH_TIME, 2000). %%假人轮训匹配时间 -define(MATCH_ONE, 14). %%匹配第一个假人时间 -define(MATCH_TWO, 2). %%匹配第二个假人时间 -define(DUN_REAL, 0). %% 真实玩家 -define(DUN_DUMMY, 1). %% 假人 -define(DUN_MIRROR, 2). %% 玩家镜像 %%副本id进程的state -record(state, { id = 0, %% 副本Id或其他类型 match_ref = undefined %% 假人匹配定时器 }). %% 多人副本大厅房间 一个类型一个room -record(dun_multi_room, { id = 0 %% 副本Id或其他类型 ,teams = [] %% 组队列表[#dun_multi_team_sub{}] }). %% 多人副本组队 -record(dun_multi_team, { id = 0 %% 组队Id ,dun_id = 0 %% 副本Id ,sub_type_dun = 0 %% 活动子类副本id ,power = 0 %% 战力要求 ,password = 0 %% 0|密码纯数字6位 ,is_auto_start = 0 %% 满员后是否自动开始副本0:不是1:是 ,is_start = 0 ,min_lv = 0 ,members = [] %% 成员列表[#dun_multi_member{}] ,handle_mb = {[], 0} %% 队伍操作{[玩家id],缓冲时间} ,match_time = 0 %% 匹配时间 ,is_match = 0 %% 匹配状态:1匹配|0不匹配 ,max_num = 0 %% 最大人数 ,is_gm = 0 %% gm创建队伍 ,first_ref = 0 %% 新手定时器 ,vote_ref = undefined %% 强制开始定时 ,vote_list = {[], []} %% 赞成列表,反对列表 ,need_approve = 2 %% 1需要|2不需要 ,req_list = [] %% 申请列表 ,single_mode = 0 %% 0默认|1单人模式 }). %% 多人副本组队简明信息 -record(dun_multi_team_sub, { id = 0 %% 组队Id ,leader_id = 0 %% 队长id ,leader_name = 0 %% 队长名 ,leader_num = 0 %% 队长剩余次数 ,server_id = 0 %% 角色所在的服务器id ,server_num = 0 %% 所在的服标示 ,power = 0 %% 战力要求 ,password = 0 %% 0|密码纯数字6位 ,is_auto_start = 0 %% 满员后是否自动开始副本0:不是1:是 ,min_lv=0 ,is_start = 0 ,member_num = 0 %% 成员数量 }). %% 多人副本组队自增Id -record(dun_multi_team_id, { id = 0 %% 组队自增Id }). %% 多人副本大厅进程Pid -record(dun_multi_hall_pid, { id = 0 %% 副本id或其他类型 ,dun_type = 0 %% 副本类型 ,pid = 0 %% 多人副本大厅进程Pid }). %% 多人副本角色数据 %% 重登使用 -record(dun_multi_role, { id = 0 %% 角色Id ,team_id = 0 %% 组队Id ,dun_id = 0 %% 副本Id ,dun_pid = 0 %% 副本Pid ,is_leader = 0 }). %% 角色#player_status{}上的多人副本数据 -record(role_dun_multi, { team_id = 0 %% 组队Id ,dun_id = 0 %% 副本Id ,dun_pid = 0 %% 副本Pid ,inviter_list = [] ,is_leader = 0 ,mirror_help = [] %% 镜像协助队伍列表 ,req_list = [] %% 队伍申请列表 ,is_match = 0 %% 1匹配中|0无匹配 ,merge_type = 0 %% 合并次数类型 0否|1是 }). %% 多人副本组队成员 -record(dun_multi_member, { id = 0 %% 角色Id ,server_id = 0 %% 角色所在的服务器id ,server_num = 0 %% 所在的服标示 ,node = 0 %% 角色所在节点 ,figure=undefined %% 外形信息 ,hp_lim = 0 %% 血量上限 ,power = 0 %% 战力 ,pid = 0 %% 角色Pid ,scene = 0 %% 原场景id ,scene_pool_id = 0 %% 原场景进程id ,copy_id = 0 %% 原CopyId ,x = 0 %% 原x坐标 ,y = 0 %% 原y坐标 ,sid = 0 %% 角色发送协议进程pid ,is_leader = 0 %% 队长标识0:不是1:是 ,is_ready = 0 %% 是否匹配0:取消匹配|1:开始匹配 ,help_type = 0 %% 0非协助|1协助 ,add_times = 0 %% 增加的副本次数 ,daily_times = 0 %% 今天参加次数 ,help_times = 0 %% 助战次数 ,is_dummy = 0 %% 假人标志 0不是|1假人|2玩家的假人镜像 ,is_first = 0 %% 副本是否首通 ,attr_list = [] %% 基础属性列表 ,skills = [] %% 技能 ,skills_passive = [] %% 被动技能 ,typical_data = #{} ,action_lock = 0 %% 是否处于其他活动中(仅在队员处于队伍中才更新状态锁数据) ,guard_dun_pass = [] %% 守卫信标通关记录 }). %% 多人副本组队配置 -record(base_dun_multi_team_cfg, { type = 0, %% 跨服组队活动类型 type_name = "", %% 活动类型名称 sub_type = 0, %% 活动子类型 sub_type_name = "", %% 活动子类型名称 dun_id = 0, %% 副本id scene = 0, %% 场景id condition = [] %% 条件 }).