源战役
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

183 lines
7.0 KiB

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