%% ---------------------------------------------------------------------------
|
|
%% @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 = [] %% 条件
|
|
}).
|
|
|
|
|