源战役
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

309 lignes
17 KiB

il y a 1 mois
  1. %%% ----------------------------------------------------
  2. %%% @Module: 3v3
  3. %%% @Author: zhl
  4. %%% @Description: 跨服3v3头文件
  5. %%% @Created: 2017/07/04
  6. %%% ----------------------------------------------------
  7. -define(ETS_RANK_DATA, kf_rank_data). %% 排行数据
  8. -define(ETS_TEAM_DATA, kf_team_data). %% 队伍数据
  9. -define(ETS_ROLE_DATA, kf_role_data). %% 玩家数据
  10. -define(ETS_PK_DATA, kf_pk_data). %% 战斗数据
  11. -define(PK_3V3_SCENE_ID, 6000). %% 3v3战斗场景id
  12. -define(PK_3V3_SCENE, [?PK_3V3_SCENE_ID]). %% 跨服3v3战斗场景列表
  13. -define(PK_3V3_SCENE_POOL_ID_LIST, [1,2,3,4,5]). %% 进程池Id列表
  14. -define(PK_3V3_ONLINE, 1).
  15. -define(PK_3V3_OFFLINE, 2).
  16. -define(PK_3V3_MAX_SCORE, 300).
  17. -define(KF_3V3_LV_LIMIT, 270). %% 开放等级限制
  18. -define(KF_3V3_ROOM_LIMIT, 45). %% 房间数量限制 - 一个场景限制人数270以内
  19. -define(KF_3V3_MATCH_TIME, 30). %% 最大匹配时间
  20. -define(KF_3V3_PK_TIME, 180). %% 战斗时间3min
  21. -define(KF_3V3_CREATE_BUFF_TIME, 30). %% buff刷出时间2min
  22. -define(KF_3V3_RANK_LIMIT, 100). %% 排行榜上限
  23. -define(KF_3V3_MEMBER_LIMIT, 3). %% 队伍人员限制##只是初始化的默认值,修改人数需要同步mod_3v3_center和mod_3v3_local进程中的member_limit字段
  24. -define(KF_3V3_REVIVE_TIME, 0). %% 3v3复活时间
  25. -define(SERVER_OPEN_DAY, 4). %% 开服天数
  26. -define(SEASON_REWARD_PK_COUNT, 20). %% 赛季奖励领取场次条件
  27. -define(KF_3V3_STATE_YET, 1). %% 活动状态 - 还未开始
  28. -define(KF_3V3_STATE_START, 2). %% 活动状态 - 开始
  29. -define(KF_3V3_STATE_END, 3). %% 活动状态 - 结束
  30. -define(KF_3V3_PK_READY, 1). %% 战斗状态 - 准备中
  31. -define(KF_3V3_PK_START, 2). %% 战斗状态 - 开始
  32. -define(KF_3V3_PK_END, 3). %% 战斗状态 - 结束
  33. -define(KF_3V3_IS_AUTO, 1). %% 满员自动开始
  34. -define(KF_3V3_UNREADY, 0). %% 还未准备好
  35. -define(KF_3V3_IS_READY, 1). %% 已准备好了
  36. -define(KF_3V3_START_ROLE, 1). %% 开始匹配 - 组队
  37. -define(KF_3V3_STOP_ROLE, 2). %% 取消匹配 - 组队
  38. -define(KF_3V3_GROUP_BLUE, 1). %% 蓝色
  39. -define(KF_3V3_GROUP_RED, 2). %% 红色
  40. -define(KF_3V3_RESULT_DRAW, 0). %% 打平
  41. -define(KF_3V3_RESULT_BLUE, 1). %% 蓝方胜利
  42. -define(KF_3V3_RESULT_RED, 2). %% 红方胜利
  43. -define(SQL_SELECT_3V3_RANK, "select server_name, server_num, server_id, role_id, nickname, career,
  44. sex, lv, vip_lv, power, tier, star, score, time, season_pk from kf_3v3_rank order by (rank_id) asc").
  45. -define(SQL_REPLACE_3V3_RANK_ONE, "replace into kf_3v3_rank (rank_id, server_name, server_num, server_id, role_id, nickname,
  46. career, sex, lv, vip_lv, power, tier, star, score, time, season_pk) values ~ts").
  47. -define(SQL_REPLACE_3V3_RANK_VALUES, "(~w, '~s', ~w, ~w, ~w, '~ts', ~w, ~w, ~w, ~w, ~w, ~w, ~w, ~w, ~w, ~w)").
  48. -define(SQL_DELETE_3V3_RANK_ONE, "delete from kf_3v3_rank where ~ts").
  49. -define(SQL_DELETE_3V3_RANK_VALUES, "(role_id = ~w)").
  50. -define(SQL_SELECT_3V3_ROLE, "select old_tier, old_star, tier, star, continued_win, daily_win,
  51. daily_pk, daily_honor, pack_reward, pack_time, daily_time, season_pk from role_3v3 where role_id = ~w").
  52. -define(SQL_REPLACE_3V3_ROLE, "replace into role_3v3 (role_id, old_tier, old_star, tier, star,
  53. continued_win, daily_win, daily_pk, daily_honor, pack_reward, pack_time, daily_time, season_pk) values (~w, ~w, ~w, ~w, ~w,
  54. ~w, ~w, ~w, ~w, '~ts', ~w, ~w, ~w)").
  55. %% ========================= 跨服中心数据 ===============================
  56. %% 跨服3v3数据
  57. -record(center_state, {
  58. state_3v3 = 0, %% 活动状态
  59. ed_time = 0, %% 结束时间
  60. % scenelist = [], %% 剩余场景列表
  61. auto_id = 1, %% 队伍ID - 自增ID
  62. candinates = [], %% 候选队伍 - 匹配中
  63. pk_timer = [], %% 战斗匹配倒计时
  64. match_role = [], %% 候选玩家 - 匹配中
  65. team_timer = [], %% 队伍匹配倒计时
  66. act_timer = [], %% 活动倒计时
  67. member_limit = ?KF_3V3_MEMBER_LIMIT %% 人数限制
  68. }).
  69. %% 跨服3v3排行数据
  70. -record(kf_3v3_rank_data, {
  71. server_name = "", %% 平台
  72. server_num = 0, %% 服号
  73. server_id = 0, %% 角色所在的服务器id
  74. role_id = 0, %% 玩家ID
  75. nickname = "", %% 玩家昵称
  76. career = 0, %% 职业
  77. sex = 0, %% 性别
  78. lv = 0, %% 等级
  79. vip_lv = 0, %% VIP等级
  80. power = 0, %% 战力
  81. tier = 0, %% 段位
  82. star = 0, %% 星数
  83. time = 0, %% 上榜时间
  84. season_pk = 0, %% 赛季参与次数
  85. score = 0 %% 每赛季所得积分 - 每赛季都需要重置
  86. }).
  87. %% 跨服3v3战斗数据
  88. -record(kf_3v3_pk_data, {
  89. pk_pid = 0, %% 战斗进程PID
  90. scene_id = 0, %% 场景ID
  91. scene_pool_id = 0, %% 场景PoolId
  92. room_id = 0, %% 房间号
  93. state = 0, %% PK状态
  94. %% ===================== 成员退出战斗不清除战斗数据中的队友数据 =================
  95. team_data_a = [], %% A 队伍数据 - #kf_3v3_team_data{}
  96. team_data_b = [] %% B 队伍数据 - #kf_3v3_team_data{}
  97. }).
  98. %% 跨服3v3队伍数据
  99. -record(kf_3v3_team_data, {
  100. team_id = 0, %% 队伍ID
  101. captain_name = "", %% 队长名
  102. server_name = "", %% 平台
  103. server_num = 0, %% 服号
  104. server_id = 0, %% 服id
  105. captain_id = 0, %% 队长ID
  106. password = 0, %% 密码
  107. lv_limit = 0, %% 等级要求
  108. power_limit = 0, %% 战力要求
  109. is_auto = 0, %% 是否自动开始
  110. member_num = 0, %% 队伍人数
  111. map_power = 0, %% 映射战力,用于战斗匹配
  112. average_power = 0, %% 平均战力
  113. match_count = 0, %% 匹配次数
  114. is_pk = 0, %% 是否在pk
  115. member_data = [] %% 成员数据 [#kf_3v3_role_data{}]
  116. }).
  117. %% 跨服3v3玩家数据
  118. -record(kf_3v3_role_data, {
  119. node = 0, %% 节点
  120. server_name = "", %% 平台
  121. server_num = 0, %% 服号
  122. server_id = 0, %% 角色所在的服务器id
  123. role_id = 0, %% 玩家ID
  124. sid = 0, %% 玩家消息进程
  125. figure = undefined, %% #figure{}
  126. power = 0, %% 战力
  127. power_view = 0, %% 战力:用于显示
  128. is_ready = 0, %% 是否准备好了
  129. pk_time = 0, %% 上一次PK时间
  130. tier = 0, %% 段位
  131. star = 0, %% 星数
  132. continued_win = 0, %% 连续胜利场次
  133. old_scene_info=undefined, %% 进入时的坐标 {OldScene, OldScenePooldId, OldCopyId, OldX, OldY}
  134. season_pk = 0, %% 赛季参与次数
  135. %% =============== 每次进入新的队伍都要重置 =================
  136. match_count = 0, %% 匹配队伍次数
  137. team_id = 0, %% 队伍ID
  138. group = 0, %% 组别
  139. pk_pid = 0 %% 3v3 pk进程
  140. }).
  141. %% ========================== pk进程数据 ===============================
  142. %% 个人积分
  143. -record(role_score, {
  144. team_id = 0,
  145. group = 0,
  146. server_name = "", %% 平台
  147. server_num = 0, %% 服号
  148. server_id = 0, %% 服务器独立唯一标识
  149. role_id = 0, %% 玩家ID
  150. figure = undefined, %% #figure{}
  151. power = 0, %% 战力
  152. power_view = 0, %% 战力:用于显示
  153. sid = 0, %% 消息进程
  154. tier = 0, %% 段位
  155. star = 0, %% 星数
  156. continued_win = 0, %% 连胜场次
  157. honor = 0, %% 奖励
  158. season_pk = 0, %% 赛季参与次数
  159. collect = 0, %% 采集神塔次数
  160. kill = 0, %% 击杀次数
  161. killed = 0, %% 被击杀次数
  162. assist = 0, %% 助攻次数
  163. continued_kill = 0, %% 连杀次数
  164. old_scene_info = undefined, %% 进来前的场景信息 {OldScene, OldScenePooldId, OldCopyId, OldX, OldY}
  165. online = 0 %% 是否在线标志
  166. }).
  167. %% 队伍积分
  168. -record(team_score, {
  169. team_id = 0,
  170. group = 0,
  171. map_power =0,
  172. score = 0, %% 队伍总积分
  173. occupy_time = 0, %% 占据神塔时间
  174. kill = 0, %% 总击杀次数
  175. killed = 0, %% 总被击杀次数
  176. assist = 0 %% 总助攻次数
  177. }).
  178. %% 神塔数据
  179. -record(tower_data, {
  180. mon_id = 0, %% 神塔ID
  181. time = 0, %% 占据时间
  182. group = 0 %% 占据组别
  183. }).
  184. -record(center_pk_state, {
  185. scene_id = 0, %% 场景id
  186. scene_pool_id = 0, %% 场景PoolId
  187. room_id = 0, %% 房间id
  188. pk_state = 0, %% 战斗状态
  189. ed_time = 0, %% 结束时间戳 - 不是进程结束时间戳
  190. team_score = [], %% 队伍积分
  191. role_score = [], %% 玩家积分
  192. tower_data = [], %% 神塔数据
  193. timer = [] %% 积分倒计时
  194. }).
  195. %% ============================ 本服数据 ===============================
  196. %% 3v3数据
  197. -record(local_state, {
  198. state_3v3 = 0, %% 活动状态
  199. ed_time = 0, %% 结束时间
  200. score_rank = undefined, %% [{Platform, ServerNum, Nickname, Star} | List]
  201. attention_list = [], %% 关注列表
  202. match_role = [], %% 候选玩家 - 匹配中
  203. team_timer = [], %% 队伍匹配倒计时
  204. act_timer = [],
  205. member_limit = ?KF_3V3_MEMBER_LIMIT %% 人数限制
  206. }).
  207. %% 关注列表
  208. -record(attention_list, {
  209. role_id = 0, %% 玩家ID
  210. sid = 0 %% 消息进程
  211. }).
  212. -define(DEFAULT_TIER, 1). %% 默认段位
  213. -define(DEFAULT_STAR, 3). %% 默认星数
  214. %% 玩家3v3数据
  215. -record(role_3v3, {
  216. tier = ?DEFAULT_TIER, %% 段位
  217. star = ?DEFAULT_STAR, %% 星数
  218. old_tier = ?DEFAULT_TIER, %% 段位(默认青铜Ⅲ)
  219. old_star = ?DEFAULT_STAR, %% 星数
  220. continued_win = 0, %% 连续胜利场次
  221. daily_win = 0, %% 每日胜利场次
  222. daily_pk = 0, %% 每日战斗场次
  223. daily_honor = 0, %% 每日可得荣誉值 - 与昨天的段位星数
  224. pack_time = 0, %% 今日领取荣誉时间
  225. pack_reward = [{0, 0}, {1, 0}, {2, 0}, {3, 0}], %% 今日领取的活跃奖励 [{id, time}]
  226. pk_time = 0, %% 上一次PK时间
  227. daily_time = 0, %% 上次日常刷新时间
  228. season_pk = 0 %% 本赛季战斗场次
  229. }).
  230. %% 玩家基本数据
  231. -record(role_data, {
  232. node = 0, %% 节点
  233. server_name = "", %% 平台
  234. server_num = 0, %% 服号
  235. server_id = 0, %% 角色所在的服务器id
  236. role_id = 0, %% 玩家ID
  237. sid = 0, %% 玩家消息进程
  238. figure = undefined, %% #figure{}
  239. power = 0, %% 战力:历史最高战力,用于匹配
  240. power_view = 0, %% 战力:用于显示
  241. tier = 0, %% 段位
  242. star = 0, %% 星数
  243. continued_win = 0, %% 连续胜利场次
  244. old_scene_info=undefined, %% 进入时的坐标 {OldScene, OldScenePooldId, OldCopyId, OldX, OldY}
  245. season_pk = 0, %% 赛季场次数量
  246. %% ================= 以下字段用于创建队伍所用 ===================
  247. password = 0, %% 密码
  248. lv_limit = 0, %% 等级要求
  249. power_limit = 0, %% 战力要求
  250. is_auto = 0, %% 是否自动开始
  251. %% ================= 以下字段用于匹配组队所用 ===================
  252. match_count = 0 %% 匹配队伍次数
  253. }).
  254. %% 活动时间配置
  255. -record(act_info, {
  256. id = 0, %% 活动ID
  257. week = [], %% 开启周
  258. time = [] %% 开启时间
  259. }).
  260. %% 段位配置
  261. -record(tier_info, {
  262. tier = 0, %% 段位
  263. stage = 0, %% 客户端用的段位
  264. tier_name = "", %% 段位名称
  265. star = 0, %% 升级星数
  266. daily_reward = 0, %% 每日段位奖励
  267. win_star = 0, %% 单场胜利星数
  268. lose_star = 0, %% 单场失败星数
  269. win_reward = 0, %% 单场胜利黑暗值
  270. lose_reward = 0 %% 单场失败黑暗值
  271. }).