源战役
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

247 行
13 KiB

  1. %% ---------------------------------------------------------------------------
  2. %% @doc team.hrl
  3. %% @author ming_up@foxmail.com
  4. %% @since 2016-11-02
  5. %% @deprecated 组队模块记录
  6. %% ---------------------------------------------------------------------------
  7. %%------------------------------组队ETS宏定义---------------------------------
  8. -define(ETS_TEAM, ets_team). %% 队伍缓存
  9. %%------------------------------组队ETS宏定义----------------------------------
  10. -define(TEAM_NEED_LV, 0). %% 队伍等级开放条件
  11. -define(TEAM_MEMBER_MAX, 3). %% 队伍最大人数
  12. %% 成员类型
  13. -define(TEAM_LEADER, 1). %% 队长
  14. -define(TEAM_MEMBER, 2). %% 队员
  15. -define(TEAM_FAKER, 3). %% 假人
  16. -define(CREATE_TYPE_NORMAL, 1). %% 正常的创建
  17. -define(CREATE_TYPE_TAKE_OVER, 2). %% 因为队伍发生节点迁移而创造一个队伍来接管原来的队伍
  18. -define(FAKE_JOIN_IN_TIME, 30000). %% 假人进入时间 ms
  19. -define(FAKE_LEAVE_TIME, 600000). %% 假人离队时间 ms
  20. -define(MATCH_NO, 0). % 不可匹配
  21. -define(MATCH_FAKE_YES, 1). % 可匹配假人
  22. -define(MATCH_FAKE_NO, 2). % 不可匹配假人
  23. -define(NOTIFY_MATCH_OUT_TIME, 60*10). %% 通知匹配队伍超时时间(s)
  24. -define(LOGIN_BACK_TEAM_TIME, 300). %% 允许登录归队的最大离线时长(s)
  25. -define(ZONE_PARTITION, []). % 队伍只能在所在分区内匹配的场景
  26. -define(OPEN_DAY_LIMITS, []). %% 有开服天数限制的活动
  27. %% 组队大类
  28. -define(MATCH_STATE_DUNGEON, 2).
  29. %% 默认密码
  30. -define(DEFAULT_PASS, "10000").
  31. %% 队伍暂离成员列表
  32. -record(ets_tmb_offline, {
  33. id = 0, %% 角色id
  34. team_pid = none, %% 组队进程pid
  35. offtime = 0, %% 离线时间
  36. dungeon_scene = 0, %% 离开时副本的场景id
  37. dungeon_pid = none, %% 副本进程
  38. dungeon_begin_sid = 0 %% 副本刚开始id
  39. }).
  40. -record (waiting_status, {
  41. time = 0,
  42. info = undefined,
  43. msg_list = []
  44. }).
  45. %%队伍资料
  46. -record(team, {
  47. id = 0, %% 队伍id
  48. pid = 0, %% 队伍进程pid
  49. cls_type = 0, %% 队伍所在节点(1游戏节点,2中心节点)
  50. leader_id = 0, %% 队长玩家id
  51. leader_name = <<>>, %% 队长玩家名字
  52. leader_pid = none, %% 队长pid
  53. leader_node = undefined, %% 队长所在节点(本服为undefined)
  54. name = "", %% 队名
  55. member = [], %% 队员列表
  56. free_location = [], %% 空闲位置
  57. join_type = 1, %% 1:不自动,2:自动
  58. init_join_type = 1, %% 创队时加入类型
  59. create_type = 0, %% 1:普通创建;2:副本创建
  60. is_allow_mem_invite = 0, %% 队员邀请玩家加入队伍(0:不允许,1:允许)
  61. arbitrate = undefined, %% 队伍仲裁记录 include/team.hrl #team_arbitrate{}
  62. dungeon = undefined, %% 队伍副本相关参数 include/team.hrl #team_dungeon{}
  63. enlist = undefined, %% 队伍招募相关参数 include/team.hrl #team_enlist{}
  64. target_enlist = undefined, %% 队伍目标相关参数 include/team.hrl #team_enlist{}
  65. arbitrate_result_ref = 0, %% 投票系统定时器
  66. fake_mb_ref, %% 假队员进队定时器
  67. rela = [], %% 亲密度列表[{IdA, IdB, Rela}...]
  68. pre_num_full = 0, %% 藏宝图副本首次满4人之后不允许再新增人员 每次进藏宝图副本都是重新建队,暂时不用考虑重置
  69. his_teammate = [], %% 藏宝图副本记录队伍历史人员,不允许再次邀请玩家进入队伍,服务端未做处理,由客户端限制
  70. reqlist = [], %% 申请列表
  71. lv_limit_min = 0, %% 最小等级限制
  72. lv_limit_max = 0, %% 最大等级限制
  73. is_matching = 0, %% 是否正在自动匹配 0否 1是
  74. delay_update_ref = undefined, %% 延迟处理队员发生变化的计时器
  75. max_num = ?TEAM_MEMBER_MAX, %% 最大组队人数
  76. team_skill = [], %% 荆棘之心:队伍谁有这个技能[{Id, Skill}]
  77. waiting_status = [], %% 有些请求需要别的进程完成后,才能继续操作,因此在请求后,保存个状态
  78. is_task = false, %% 任务队伍不参与真实玩家匹配
  79. power_limit = 0, %% 战力限制
  80. password = ?DEFAULT_PASS %% 是否需要密码 默认"10000"为不需要|四位整数字符串
  81. }).
  82. %% 组队参数
  83. -record(team_args, {
  84. id = 0 %% 组队Id
  85. ,create_type = 0 %% 创造类型 1:普通创建;2:副本创建
  86. ,act_id = 0 %% 活动大类型
  87. ,act_sub_id = 0 %% 活动子类型
  88. ,scene_id = 0 %% 场景Id
  89. ,name = <<>> %% 组队名字
  90. ,join_type = 1 %% 1:不自动,2:自动
  91. ,password = <<>> %% 密码
  92. ,power = 0 %% 战力限制
  93. ,is_allow_mem_invite = 1 %% 是否允许队员邀请玩家加入队伍(0:不允许,1:允许)
  94. ,member = [] %% 队员列表
  95. ,is_matching = 0 %% 是否正在自动匹配 0否 1是
  96. ,lev_min = 0 %% 最小等级限制
  97. ,lev_max = 0 %% 最大等级限制
  98. ,is_task = false %% 任务队伍不参与真实玩家匹配
  99. ,leader_scene_id = 0 %% 队长所在场景id
  100. ,leader_scene_pool_id = 0 %% 队长所在场景分线id
  101. ,leader_x = 0 %% 队长x坐标
  102. ,leader_y = 0 %% 队长y坐标
  103. ,key_value_list = [] %% 其他参数[{Key, Value}]
  104. }).
  105. %% 队伍仲裁
  106. -record(team_arbitrate, {
  107. id = 0, %% id
  108. agree_num = 0, %% 同意玩家数量
  109. refuse_num = 0, %% 拒绝玩家数量
  110. vote_list = [], %% 投票 [{RoleId, 投票结果(0:不赞同1:赞同)}]
  111. end_time = 0 %% 结束时间
  112. }).
  113. %% 投票信息
  114. -record (vote_info, {
  115. role_id = 0, %% 玩家id
  116. res = 0 %% 投票结果 0拒绝 1接受
  117. }).
  118. %% 队伍副本数据
  119. -record(team_dungeon, {
  120. dun_id=0, %% 副本id
  121. dun_pid=0 %% 副本进程pid mod_dungeon
  122. }).
  123. %% 队伍招募面板数据
  124. %% PS:队伍逻辑根据模块id和模块子模块进行处理
  125. -record(team_enlist, {
  126. activity_id = 0, %% 活动大类id##作为排序
  127. subtype_id = 0, %% 活动子类id
  128. module_id = 0, %% 模块id
  129. sub_module = 0, %% 模块子id
  130. dun_id = 0, %% 副本id
  131. scene_id = 0 %% 相关场景id
  132. }).
  133. %% 队伍招募面板数据配置
  134. -record(team_enlist_cfg, {
  135. activity_id = 0, %% 活动大类id##作为排序
  136. subtype_id = 0, %% 活动子类id
  137. module_id = 0, %% 模块id
  138. sub_module = 0, %% 模块子id
  139. dun_id = 0, %% 副本id
  140. dun_sub_id = 0, %% 副本子类型id(前端使用)
  141. scene_id = 0, %% 相关场景id
  142. activity_name = "", %% 目标名
  143. subtype_name = "", %% 目标子名
  144. auto_pos = [], %% 自动挂机点
  145. default_lv_min = 0, %% 等级下限
  146. default_lv_max = 0, %% 等级上限
  147. can_set_lv_limit = 0, %% 能否设置等级限制 0否 1是
  148. can_set_power_limit = 0, %% 能否设置战力限制 0否 1是
  149. auto_pair = 1, %% 是否自动匹配
  150. exp_scale_type = 1, %% 经验加成类型 0不加成 1同场景加成 2同队伍加成
  151. num = ?TEAM_MEMBER_MAX, %% 人数要求
  152. power_limit = 0, %% 战力限制
  153. proficiency = [] %% 熟练度要求 0不限制|非0 有限制
  154. }).
  155. %% ----------------------- 助战类型 -----------------------
  156. %% 副本通用:助战是没有奖励的,没有篝火.
  157. -define(HELP_TYPE_NO, 0). %% 非助战
  158. -define(HELP_TYPE_YES, 1). %% 助战
  159. -define(HELP_TYPE_TRANS_ANY, 1). %% 任意都替换
  160. -define(HELP_TYPE_TRANS_NOT_ENOUGH, 2). %% 不够次数才转换
  161. %%队员数据
  162. -record(mb, {
  163. id = 0, %% 队员id
  164. node = undefined, %% 队员所在节点
  165. platform="", %% 平台
  166. server_num=0, %% 服数
  167. server_id = 0, %% 所在服真实id
  168. chat_zone = 0, %% 所在服所属跨服聊天分区编号
  169. srv_open_time = 0, %% 开服时间
  170. figure=undefined, %% 形象
  171. pid = 0, %% 队员pid
  172. sid = 0, %% 玩家sid
  173. scene = 0, %% 队员场景
  174. scene_pool_id = 0, %% 队员场景进程池id
  175. x = 0, %% 队员x坐标
  176. y = 0, %% 队员y坐标
  177. copy_id = 0, %% 队员房间id
  178. power = 0, %% 战力
  179. location = 0, %% 队员位置
  180. picture = <<>>, %% 玩家上传的头像
  181. help_type = 0, %% 助战类型
  182. online = 1, %% 是否真实在线
  183. follow_id = 0, %% 跟战目标id
  184. follows = [], %% 跟战者ids
  185. join_time = undefined, %% 入伍时间
  186. dungeon_id = 0, %% 现在在什么副本
  187. drop_ratio = 0, %% 每个人自己的自身掉落加成
  188. %% onhook_ref = undefined, %% 离线挂机邀请队友
  189. skill = 0, %% 玩家特殊的被动技能
  190. target_start_data = [] %% 开始参数
  191. ,match_ok = 0
  192. ,is_task = false %% 是否任务玩家
  193. ,action_lock = free %% 入队时的状态,free玩家才能加入一个正在匹配的队伍
  194. ,dungeon_count = [] %% 副本次数
  195. ,welfare = [] %% 尊享卡数据[{Type, EndTime}]
  196. }).
  197. -record (slim_mb, {
  198. id = 0, % 玩家id
  199. scene = 0, % 当前场景
  200. server = 0, % 玩家服务器id
  201. online = 1 % 是否在线
  202. }).
  203. %% 队伍进程id缓存
  204. -record(ets_team, {
  205. team_id = 0,
  206. pid = 0
  207. }).
  208. %% 玩家缓存
  209. -record(status_team, {
  210. team_id = 0, %% 队伍id
  211. leader_name = "", %% 队长名字
  212. positon = 0, %% 队伍职位(?TEAM_LEADER | ?TEAM_MEMBER)
  213. reqlist = [], %% 请求进入的队伍列表
  214. exp_scale = 0, %% 组队经验加成 千分数
  215. team_skill = 0, %% 玩家队伍临时技能:11000012(荆棘之心)
  216. skill_num = 0, %% 拥有技能11000012的玩家数量
  217. cls_create_time = 0, %% 跨服队伍组建时间
  218. arbitrate_info = [], %% 正在进行的投票信息
  219. match_info = [], %% 正在进行的投票信息
  220. intimacy_lv = 0 %% 好友度等级
  221. }).