源战役
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

  1. %% ---------------------------------------------------------------------------
  2. %% @doc 多人副本头文件.
  3. %% @author zengzy
  4. %% @since 2019-03-26
  5. %% ---------------------------------------------------------------------------
  6. %% 组队成员人数上限
  7. -define(DUN_MULTI_TEAM_MAX_MEMBER, 3).
  8. -define(DUN_INVITER_LEN, 5).
  9. %% 保存每种组队类型有哪些组队 #dun_multi_room{}
  10. -define(DUN_MULTI_HALL_ETS, ets_dun_multi_hall).
  11. %% 保存组队数据 #dun_multi_team{}
  12. -define(DUN_MULTI_TEAM_ETS, ets_dun_multi_team).
  13. %% 保存角色加入哪个组队在哪个副本里面 #dun_multi_role{}
  14. %% 保存下线前在哪个副本上线回到之前的副本
  15. -define(DUN_MULTI_ROLE_ETS, ets_dun_multi_role).
  16. %% 保存组队自增Id
  17. -define(DUN_MULTI_TEAM_ID_ETS, ets_dun_multi_team_id).
  18. %% 保存跨服多人副本大厅进程Pid
  19. -define(DUN_MULTI_HALL_PID_ETS, ets_dun_multi_hall_pid).
  20. %% 活动大类
  21. %% 活动子类和副本id不能相同
  22. -define(ACT_TYPE_CRUSADE, 61). %% 活动大类1 - 讨伐副本
  23. %%新手每次匹配时间
  24. -define(FIRST_TIME, 2).
  25. %% 成员状态变更通知(全队广播)
  26. -define(DUNMULTITEAM_NOTIFY_LEAVE, 1). %% 成员退出
  27. -define(DUNMULTITEAM_NOTIFY_KICK_OUT, 2). %% 成员被踢
  28. -define(DUNMULTITEAM_NOTIFY_IS_READY, 3). %% 准备状态 "1"准备 or "0"不准备
  29. -define(DUNMULTITEAM_NOTIFY_START_DUN, 4). %% 开启副本
  30. -define(DUNMULTITEAM_NOTIFY_CHANGE_LEADER, 5). %%委任队长
  31. -define(DUNMULTITEAM_NOTIFY_MATCH, 6). %% 队伍匹配状态
  32. -define(MATCH_TIME, 2000). %%假人轮训匹配时间
  33. -define(MATCH_ONE, 14). %%匹配第一个假人时间
  34. -define(MATCH_TWO, 2). %%匹配第二个假人时间
  35. -define(DUN_REAL, 0). %% 真实玩家
  36. -define(DUN_DUMMY, 1). %% 假人
  37. -define(DUN_MIRROR, 2). %% 玩家镜像
  38. %%副本id进程的state
  39. -record(state, {
  40. id = 0, %% 副本Id或其他类型
  41. match_ref = undefined %% 假人匹配定时器
  42. }).
  43. %% 多人副本大厅房间 一个类型一个room
  44. -record(dun_multi_room, {
  45. id = 0 %% 副本Id或其他类型
  46. ,teams = [] %% 组队列表[#dun_multi_team_sub{}]
  47. }).
  48. %% 多人副本组队
  49. -record(dun_multi_team, {
  50. id = 0 %% 组队Id
  51. ,dun_id = 0 %% 副本Id
  52. ,sub_type_dun = 0 %% 活动子类副本id
  53. ,power = 0 %% 战力要求
  54. ,password = 0 %% 0|密码纯数字6位
  55. ,is_auto_start = 0 %% 满员后是否自动开始副本0:不是1:是
  56. ,is_start = 0
  57. ,min_lv = 0
  58. ,members = [] %% 成员列表[#dun_multi_member{}]
  59. ,handle_mb = {[], 0} %% 队伍操作{[玩家id],缓冲时间}
  60. ,match_time = 0 %% 匹配时间
  61. ,is_match = 0 %% 匹配状态:1匹配|0不匹配
  62. ,max_num = 0 %% 最大人数
  63. ,is_gm = 0 %% gm创建队伍
  64. ,first_ref = 0 %% 新手定时器
  65. ,vote_ref = undefined %% 强制开始定时
  66. ,vote_list = {[], []} %% 赞成列表,反对列表
  67. ,need_approve = 2 %% 1需要|2不需要
  68. ,req_list = [] %% 申请列表
  69. ,single_mode = 0 %% 0默认|1单人模式
  70. }).
  71. %% 多人副本组队简明信息
  72. -record(dun_multi_team_sub, {
  73. id = 0 %% 组队Id
  74. ,leader_id = 0 %% 队长id
  75. ,leader_name = 0 %% 队长名
  76. ,leader_num = 0 %% 队长剩余次数
  77. ,server_id = 0 %% 角色所在的服务器id
  78. ,server_num = 0 %% 所在的服标示
  79. ,power = 0 %% 战力要求
  80. ,password = 0 %% 0|密码纯数字6位
  81. ,is_auto_start = 0 %% 满员后是否自动开始副本0:不是1:是
  82. ,min_lv=0
  83. ,is_start = 0
  84. ,member_num = 0 %% 成员数量
  85. }).
  86. %% 多人副本组队自增Id
  87. -record(dun_multi_team_id, {
  88. id = 0 %% 组队自增Id
  89. }).
  90. %% 多人副本大厅进程Pid
  91. -record(dun_multi_hall_pid, {
  92. id = 0 %% 副本id或其他类型
  93. ,dun_type = 0 %% 副本类型
  94. ,pid = 0 %% 多人副本大厅进程Pid
  95. }).
  96. %% 多人副本角色数据
  97. %% 重登使用
  98. -record(dun_multi_role, {
  99. id = 0 %% 角色Id
  100. ,team_id = 0 %% 组队Id
  101. ,dun_id = 0 %% 副本Id
  102. ,dun_pid = 0 %% 副本Pid
  103. ,is_leader = 0
  104. }).
  105. %% 角色#player_status{}上的多人副本数据
  106. -record(role_dun_multi, {
  107. team_id = 0 %% 组队Id
  108. ,dun_id = 0 %% 副本Id
  109. ,dun_pid = 0 %% 副本Pid
  110. ,inviter_list = []
  111. ,is_leader = 0
  112. ,mirror_help = [] %% 镜像协助队伍列表
  113. ,req_list = [] %% 队伍申请列表
  114. ,is_match = 0 %% 1匹配中|0无匹配
  115. ,merge_type = 0 %% 合并次数类型 0否|1是
  116. }).
  117. %% 多人副本组队成员
  118. -record(dun_multi_member, {
  119. id = 0 %% 角色Id
  120. ,server_id = 0 %% 角色所在的服务器id
  121. ,server_num = 0 %% 所在的服标示
  122. ,node = 0 %% 角色所在节点
  123. ,figure=undefined %% 外形信息
  124. ,hp_lim = 0 %% 血量上限
  125. ,power = 0 %% 战力
  126. ,pid = 0 %% 角色Pid
  127. ,scene = 0 %% 原场景id
  128. ,scene_pool_id = 0 %% 原场景进程id
  129. ,copy_id = 0 %% 原CopyId
  130. ,x = 0 %% 原x坐标
  131. ,y = 0 %% 原y坐标
  132. ,sid = 0 %% 角色发送协议进程pid
  133. ,is_leader = 0 %% 队长标识0:不是1:是
  134. ,is_ready = 0 %% 是否匹配0:取消匹配|1:开始匹配
  135. ,help_type = 0 %% 0非协助|1协助
  136. ,add_times = 0 %% 增加的副本次数
  137. ,daily_times = 0 %% 今天参加次数
  138. ,help_times = 0 %% 助战次数
  139. ,is_dummy = 0 %% 假人标志 0不是|1假人|2玩家的假人镜像
  140. ,is_first = 0 %% 副本是否首通
  141. ,attr_list = [] %% 基础属性列表
  142. ,skills = [] %% 技能
  143. ,skills_passive = [] %% 被动技能
  144. ,typical_data = #{}
  145. ,action_lock = 0 %% 是否处于其他活动中(仅在队员处于队伍中才更新状态锁数据)
  146. ,guard_dun_pass = [] %% 守卫信标通关记录
  147. }).
  148. %% 多人副本组队配置
  149. -record(base_dun_multi_team_cfg, {
  150. type = 0, %% 跨服组队活动类型
  151. type_name = "", %% 活动类型名称
  152. sub_type = 0, %% 活动子类型
  153. sub_type_name = "", %% 活动子类型名称
  154. dun_id = 0, %% 副本id
  155. scene = 0, %% 场景id
  156. condition = [] %% 条件
  157. }).