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

208 lines
8.8 KiB

пре 4 недеља
  1. %% ---------------------------------------------------------------------------
  2. %% @doc 跨服竞榜活动头文件.
  3. %% @author zhaoyu
  4. %% @since 2018-11-27
  5. %% ---------------------------------------------------------------------------
  6. -ifndef(RACE_RANK_HRL).
  7. -define(RACE_RANK_HRL, ok).
  8. %% 还没结算
  9. -define(NOT_SETTLEMENT, 0).
  10. %% 排行榜最大上榜人数
  11. -define(RR_RANK_MAX, 100).
  12. -define(TYPE_RACE,1). %%寻常冲榜
  13. -define(TYPE_WISH,2). %%许愿冲榜
  14. -define(TYPE_POOL_RACE,0). %%正常奖池
  15. -define(TYPE_POOL_COIN,1). %%金币奖池
  16. -define(TYPE_POOL_RUNE,2). %%符文奖池
  17. %% 跨服竞榜活动-时间配置
  18. -record(race_rank_act, {
  19. act_id = 0 %% 活动Id
  20. ,type = 0 %% 1冲榜2许愿池
  21. ,open_day = 0 %% 开服多少天后可以参与
  22. ,name = <<>> %% 活动名
  23. ,start_time = 0 %% 活动开始时间
  24. ,end_time = 0 %% 活动结束时间
  25. ,show_time = 0 %% 展示时间
  26. ,lv = 0 %% 玩家参加活动需要达到的等级
  27. ,condition = [] %% 条件
  28. }
  29. ).
  30. %% 跨服竞榜活动-奖池奖励配置
  31. -record(race_rank_draw_pool, {
  32. act_id = 0 %% 活动Id
  33. ,type = 0 %% 0冲榜1金币2符文
  34. ,stage = 0 %% 世界等级阶段
  35. ,award_id = 0 %% 奖励Id
  36. ,award = [] %% 奖励
  37. ,loading_times = 0 %% 入库次数
  38. ,weight = 0 %% 权重
  39. ,is_broadcast = 0 %% 是否发送传闻(1发 0不发)
  40. ,is_tv = 0 %% 是否上电视(1上 0不上)
  41. }
  42. ).
  43. %% 跨服竞榜活动-排名奖励
  44. -record(race_rank_award, {
  45. act_id = 0 %% 活动Id
  46. ,stage = 0 %% 世界等级阶段
  47. ,min_rank = 0 %% 排名上限
  48. ,max_rank = 0 %% 排名下限
  49. ,need_score = 0 %% 最低上榜要求
  50. ,award = [] %% 奖励
  51. }
  52. ).
  53. %% 跨服竞榜活动-积分阶段奖励
  54. -record(race_rank_times_award, {
  55. act_id = 0 %% 活动Id
  56. ,stage = 0 %% 世界等级阶段
  57. ,award_id = 0 %% 奖励Id
  58. ,need_score = 0 %% 所需积分
  59. ,server_score = 0 %% 所需全服积分
  60. ,award = [] %% 奖励
  61. }
  62. ).
  63. %% 跨服竞榜活动信息
  64. -record(rr_act_info, {
  65. act_id = 0 %% 活动Id
  66. ,status = 0 %% 已结算奖励:结算时的时间戳;还没结算奖励:0
  67. ,start_time = 0 %% 活动开始时间
  68. ,end_time = 0 %% 活动结束时间
  69. ,show_end_time = 0 %% 展示结束时间
  70. }).
  71. %% race_rank_act进程state
  72. -record(race_rank_act_info, {
  73. opening = [] %% 正在开启中/展示中的活动[#rr_act_info{}]
  74. ,ref = 0 %% 活动开启结束定时器
  75. ,scores = [] %% 本服积分
  76. }).
  77. %% race_rank_mgr进程state
  78. -record(rr_rank_state, {
  79. server2zone_dict = #{} %% 按ServerId查询ZoneId的索引数据
  80. ,acts_rank = [] %% 排行榜数据[#rr_act_rank{}]
  81. }
  82. ).
  83. %% 竟榜活动排行榜
  84. -record(rr_act_rank, {
  85. act_id = 0 %% 活动Id
  86. ,ranks = [] %% 排行榜数据[#rr_rank{}]
  87. }
  88. ).
  89. %% 排行榜数据
  90. -record(rr_rank, {
  91. act_id = 0 %% 活动Id
  92. ,zone_id = 0 %% 分区Id
  93. ,roles = [] %% 排行榜数据[#rr_rank_role{}]
  94. }
  95. ).
  96. %% 排行榜角色数据
  97. -record(rr_rank_role, {
  98. act_id = 0 %% 活动Id
  99. ,zone_id = 0 %% 分区Id
  100. ,role_id = 0 %% 角色Id
  101. ,role_name = <<>> %% 角色名
  102. ,server_id = 0 %% 服务器Id(后台唯一服号)
  103. ,server_num = 0 %% 服务器编号(玩家可见的服编号)
  104. ,score = 0 %% 积分
  105. ,time = 0 %% 时间戳
  106. ,ranking = 0 %% 排名
  107. }
  108. ).
  109. %% 角色竞榜活动数据
  110. -record(role_race_rank, {
  111. act_data = [] %% 角色竞榜活动数据:[#rr_act_data{}]
  112. }
  113. ).
  114. %% 角色竞榜活动数据
  115. -record(rr_act_data, {
  116. act_id = 0 %% 活动Id
  117. ,times = 0 %% 累计次数
  118. ,buy_ten_times = 0 %% 抽十次的累计次数
  119. ,buy_ten_time = 0 %% 最近一次抽十次的时间戳
  120. ,score = 0 %% 积分
  121. ,use_free_times = 0 %% 已使用免费次数
  122. ,free_time = 0 %% 最近一次使用免费次数的时间戳
  123. ,award_log = [] %% 累计次数奖励领取记录[AwardId]
  124. ,valid_time = 0 %% 数据有效截止时间戳
  125. ,coin = 0 %%金币
  126. ,stage = 0 %%当前阶段 累计充值阶段
  127. ,time = 0 %%充值时间 =
  128. ,coin_draw = 0 %%金币祈愿次数
  129. ,coin_time = 0 %%金币祈愿时间
  130. ,rune_draw = 0 %%符文祈愿次数
  131. ,rune_time = 0 %%符文祈愿时间
  132. }
  133. ).
  134. %% 活动世界等级阶段数据
  135. -record(rr_act_stage, {
  136. act_id = 0 %% 活动Id
  137. ,stage = 0 %% 世界等级阶段
  138. ,valid_time = 0 %% 数据有效截止时间戳(等于活动的show_end_time)
  139. }
  140. ).
  141. %% race_rank_opening_act数据表语句.
  142. %% 活动展示期过后清理数据
  143. -define(RR_ACT_SELECT, <<"SELECT `act_id`,`status` FROM `race_rank_opening_act`">>).
  144. -define(RR_ACT_BATCH, <<"REPLACE INTO race_rank_opening_act (`act_id`,`status`)">>).
  145. -define(RR_ACT_DEL, <<"DELETE FROM race_rank_opening_act WHERE `act_id`=~p">>).
  146. -define(RR_ACT_DEL_ALL, <<"TRUNCATE TABLE race_rank_opening_act">>).
  147. %% race_rank数据表语句.
  148. -define(RR_RANK_SELECT, <<"SELECT `act_id`,`zone_id`,`rid`,`rname`,`server_id`"
  149. ",`server_num`,`score`,`time` FROM `race_rank`">>).
  150. -define(RR_RANK_BATCH, <<"REPLACE INTO race_rank (`act_id`,`zone_id`,`rid`,`rname`,`server_id`"
  151. ",`server_num`,`score`,`time`) VALUES ~ts">>).
  152. -define(RR_RANK_REPLACE, <<"REPLACE INTO race_rank (`act_id`,`zone_id`,`rid`,`rname`,`server_id`"
  153. ",`server_num`,`score`,`time`) VALUES (~p, ~p, ~p, '~ts', ~p,~p, ~p, ~p)">>).
  154. -define(RR_RANK_DEL, <<"DELETE FROM race_rank WHERE `act_id`=~p AND `rid`=~p">>).
  155. -define(RR_RANK_BATCH_DEL, <<"DELETE FROM race_rank WHERE `act_id`=~p AND `rid` IN (~ts)">>).
  156. -define(RR_RANK_DEL_ACT, <<"DELETE FROM race_rank WHERE `act_id`=~p">>).
  157. -define(RR_RANK_DEL_ALL, <<"TRUNCATE TABLE race_rank">>).
  158. -define(RR_RANK_LOG_BATCH, <<"REPLACE INTO race_rank (`act_id`,`zone_id`,`rid`,`rname`,`server_id`"
  159. ",`server_num`,`score`,`time`) VALUES ~ts">>).
  160. %% role_race_rank数据表语句.
  161. -define(RR_ROLE_SELECT, <<"SELECT `act_id`,`times`,`buy_ten_times`,`buy_ten_time`,`score`,`use_free_times`,`free_time`,`award_log`"
  162. ",`valid_time`,`coin`,`stage`,`time`,`coin_draw`,`coin_time`,`rune_draw`,`rune_time` FROM `role_race_rank` WHERE `rid`=~p">>).
  163. -define(RR_ROLE_REPLACE, <<"REPLACE INTO role_race_rank (`rid`,`act_id`,`times`,`buy_ten_times`,`buy_ten_time`,`score`,`use_free_times`,`free_time`"
  164. ",`award_log`,`valid_time`,`coin`,`stage`,`time`,`coin_draw`,`coin_time`,`rune_draw`,`rune_time`) VALUES (~p, ~p, ~p, ~p, ~p, ~p, ~p, ~p, '~ts', ~p,~p, ~p, ~p, ~p, ~p, ~p,~p)">>).
  165. -define(RR_ROLE_DEL, <<"DELETE FROM role_race_rank WHERE `act_id`=~p">>).
  166. -define(RR_ROLE_DEL_ROLE, <<"DELETE FROM role_race_rank WHERE `act_id`=~p AND `rid`=~p">>).
  167. -define(RR_ROLE_DEL_ALL, <<"TRUNCATE TABLE role_race_rank">>).
  168. %% log_race_rank数据表语句.
  169. -define(RR_LOG_RANK_BATCH, <<"REPLACE INTO log_race_rank_kf (`act_id`,`zone_id`,`role_id`,`rname`,`server_id`"
  170. ",`server_num`,`stime`,`etime`,`score`,`rank`,`ctime`,`time`) VALUES ~ts">>).
  171. -define(RR_LOG_RANK_REPLACE, <<"REPLACE INTO log_race_rank (`act_id`,`zone_id`,`role_id`,`rname`,`stime`,`etime`,`score`,`rank`,`ctime`,`time`) VALUES (~p,~p,~p,'~ts',~p,~p,~p,~p,~p,~p)">>).
  172. %% race_rank_server_score数据表语句.
  173. -define(SQL_SERVER_SCORE_GET, <<"SELECT `act_id`,`score`,`time` FROM `race_rank_server_score`">>).
  174. -define(SQL_SERVER_SCORE_REPLACE, <<"REPLACE INTO `race_rank_server_score` (`act_id`,`score`,`time`) VALUES (~p, ~p, ~p)">>).
  175. -define(SQL_SERVER_SCORE_DEL, <<"DELETE FROM `race_rank_server_score` WHERE `act_id`=~p">>).
  176. -endif. %% RACE_RANK_HRL