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

220 lines
9.9 KiB

преди 4 седмици
  1. %%%-------------------------------------------------------------------
  2. %%% @doc 社团竞速-头文件
  3. %%% Module : guild_race_rank.hrl
  4. %%% Created : 2020-07-13
  5. %%% @Author : tyl
  6. %%%-------------------------------------------------------------------
  7. -define(ONE_HOUR_SECOND, 60*60). %% 一小时秒数
  8. -define(GUILD_TOP_RANK, [1,2,3]). %% 可获得人数扩张的社团排名
  9. -define(DEFAULT_END_DAY, 7). %% 默认活动结束天数
  10. -define(REWARD_RECEIVE_DAY, 8). %% 奖励可领取天数
  11. -define(CHANGE_TYPE_OUT, 0). %% 退出社团
  12. -define(CHANGE_TYPE_IN, 1). %% 进入社团
  13. %% 是否第一次发放奖励
  14. -define(FIRST_SEND_REWARD_NO, 0).
  15. -define(FIRST_SEND_REWARD_YES, 1).
  16. %% 是否已经开始结算
  17. -define(START_REWARD_NO, 0).
  18. -define(START_REWARD_YES, 1).
  19. %% 任务计算类型
  20. -define(TASK_TYPE_CALC, 1). %% 累计型
  21. -define(TASK_TYPE_REPLACE, 2). %% 替换型
  22. %% 任务状态
  23. -define(TASK_NOT_FINISH, 0). %% 任务未完成
  24. -define(TASK_FINISHED, 1). %% 任务完成
  25. -define(TASK_HAS_RECEIVED, 2). %% 任务奖励已领取
  26. %% 任务类型
  27. -define(TASK_TYPE_CREATE_GUILD, 1). %% 创建社团
  28. -define(TASK_TYPE_INVITE_ROLE, 2). %% 邀请玩家
  29. -define(TASK_TYPE_POWER_UP, 3). %% 战力提升
  30. -define(TASK_TYPE_LIVE_UP, 4). %% 活跃提升
  31. -define(TASK_TYPE_GUILD_BOSS, 5). %% 社团幻魔
  32. %% 是否已经领取奖励
  33. -define(NOT_RECEIVE_REWARD, 0). %% 未领取奖励
  34. -define(CAN_RECEIVE_REWARD, 1). %% 可领取奖励
  35. -define(HAS_RECEIVE_REWARD, 2). %% 已领取奖励
  36. %% 发放奖励的排名需求
  37. -define(SEND_REWARD_RANK_NEED, 10). %% 称号奖励
  38. -define(SEND_POWER_REWARD_RANK_NEED, %% 战力榜奖励(全员/团长专属)
  39. data_guild_race_rank:get_guild_race_rank_kv_cfg(power_rank_top)
  40. ).
  41. -define(SEND_LIVE_REWARD_RANK_NEED, %% 活跃榜奖励(全员/团长专属)
  42. data_guild_race_rank:get_guild_race_rank_kv_cfg(active_rank_top)
  43. ).
  44. %% 形象修改
  45. -define(FIGURE_CHANGE_NAME, 1).
  46. -define(FIGURE_CHANGE_VIP, 2).
  47. -define(FIGURE_CHANGE_SUP_VIP, 3).
  48. %% 社团竞速管理进程状态数据
  49. -record(guild_race_rank_state, {
  50. guild_rank_list = [] %% 公会排行
  51. ,member_rank_map = #{} %% 成员排名 #{guild_id =>[]...}
  52. ,old_guild_rank_list = [] %% 旧的成员排名,开服前一个小时将第一个社团扔进来(这个逻辑废弃)
  53. ,old_member_rank_map = #{} %% 旧的成员排名,开服前一个小时将第一个社团扔进来(这个逻辑废弃)
  54. ,disband_rank_list = [] %% 解散的社团列表[guild_id1,guild_id2...]
  55. ,leave_member_map = #{} %% 离开社团的成员#{guild_id=>[mem1,mem2]...}
  56. ,role_guild_map = #{} %% 第八天使用(存储第八天0点结算时玩家和社团的映射)
  57. ,ref = [] %% 定时器(每隔一小时发放一次奖励)
  58. ,start_reward = 0 %% 开始结算状态 0-未开启 1-已开启
  59. ,send_ref = [] %% 邮件发放定时器
  60. ,guild_task = #{} %% 团长任务#{guild=>[#guild_task{}...]}
  61. }).
  62. %% 社团榜单数据
  63. -record(guild_rank, {
  64. rank = 0 %% 排行
  65. ,guild_id = 0 %% 社团Id
  66. ,guild_name = "" %% 社团名称
  67. ,guild_lv = 0 %% 公会等级
  68. ,captain_id = 0 %% 团长Id
  69. ,captain_name = "" %% 团长名称
  70. ,limit_num = 0 %% 人数上限(包括增加人数)
  71. ,sum_power = 0 %% 社团总战力
  72. ,old_power = 0 %% 上一次结算的战力
  73. ,old_rank = 0 %% 上次结算的战力排行
  74. ,sum_live = 0 %% 社团总活跃值
  75. ,old_live = 0 %% 上次结算社团总活跃值
  76. ,live_rank = 0 %% 总活跃值排行(只存内存)
  77. ,old_live_rank = 0 %% 上次结算社团总活跃值排行(只存内存)
  78. ,time = 0 %% 社团创建时间
  79. ,is_first = 0 %% 是否是第一个创建社团(只存内存,重启后数据消失)
  80. ,create_id = 0 %% 创建者Id
  81. }).
  82. %% 成员榜单数据
  83. -record(member_rank, {
  84. rank = 0 %% 排名
  85. ,guild_id = 0 %% 社团Id
  86. ,role_id = 0 %% 角色Id
  87. ,role_name = "" %% 角色名称
  88. ,position = 0 %% 职位
  89. ,vip_lv = 0 %% vip等级
  90. ,sup_vip = 0 %% 特权贵族类型
  91. ,power = 0 %% 战力
  92. ,old_power = 0 %% 上一次结算的战力
  93. ,old_rank = 0 %% 上一次结算的排名
  94. ,live = 0 %% 活跃值
  95. ,old_live = 0 %% 上次结算活跃值
  96. ,received_power = 0 %% 是否已领取战力榜奖励
  97. ,received_live = 0 %% 是否已经领取活跃榜奖励
  98. ,received_captain_power = 0 %% 是否已经领取团长战力榜奖励
  99. ,received_captain_live = 0 %% 是否已经领取团长活跃榜奖励
  100. }).
  101. %% 团长任务
  102. -record(guild_race_rank_task, {
  103. task_id = 0 %% 任务Id
  104. ,progress = 0 %% 进度
  105. ,status = 0 %% 状态
  106. }).
  107. %% ==================================== 后台配置 ===========================
  108. %% 常量配置
  109. -record(guild_race_rank_kv_cfg, {
  110. id = 0 %% Id
  111. ,key = "" %% 键
  112. ,value = "" %% 值
  113. ,remark = "" %% 备注
  114. }).
  115. %% 社团竞榜结算 - 个人奖励配置
  116. -record(guild_race_rank_reward_cfg, {
  117. id = 0 %% 主键Id
  118. ,rank_low = 0 %% 排名下限
  119. ,rank_high = 0 %% 排名上限
  120. ,reward = [] %% 个人奖励
  121. ,guild_rank = 0 %% 社团排名
  122. }).
  123. %% 社团竞榜结算 - 社团扩张人数配置
  124. -record(guild_race_rank_expand_cfg, {
  125. day = 0 %% 天数
  126. ,add_mem_num = 0 %% 增加成员数量
  127. }).
  128. %% 任务配置
  129. -record(base_guild_race_rank_task, {
  130. id = 0 %% 任务Id
  131. ,sequence = 0 %% 排序
  132. ,task_name = "" %% 任务名称
  133. ,task_desc = "" %% 任务描述
  134. ,reward = [] %% 奖励
  135. ,condition = [] %% 条件
  136. ,client_skip= [] %% 前端跳转
  137. }).
  138. %% ------------------------------ 数据库操作 ------------------------------------
  139. -define(insert_guild_race_rank,
  140. <<"replace into guild_race_rank (`guild_id`, `guild_name`, `guild_lv`, `captain_id`, `sum_power`, `old_power`, `old_rank`, `old_live`, `create_id`, `time`) values (~p, '~ts', ~p, ~p, ~p, ~p, ~p, ~p, ~p, ~p)">>).
  141. -define(select_guild_race_rank,
  142. <<"select `guild_id`, `guild_name`, `guild_lv`, `captain_id`,`sum_power`,`old_power`, `old_rank`, `old_live`, `create_id`, `time` from guild_race_rank">>).
  143. -define(delete_guild_race,
  144. <<"delete from guild_race_rank where `guild_id` = ~p">>).
  145. -define(update_guild_race_rank_power,
  146. <<"update guild_race_rank set `sum_power` = ~p where `guild_id` = ~p">>).
  147. -define(update_guild_race_rank_old_rank,
  148. <<"update guild_race_rank set `old_rank` = ~p, `old_power` = ~p where `guild_id` = ~p">>).
  149. -define(update_guild_race_rank_old_live,
  150. <<"update guild_race_rank set `old_live` = ~p where `guild_id` = ~p">>).
  151. -define(update_guild_race_rank_guild_name,
  152. <<"update guild_race_rank set `guild_name` = '~ts' where `guild_id` = ~p">>).
  153. -define(update_guild_race_rank_guild_lv,
  154. <<"update guild_race_rank set `guild_lv` = ~p where `guild_id` = ~p">>).
  155. -define(update_guild_race_rank_captain,
  156. <<"update guild_race_rank set `captain_id` = ~p where `guild_id` = ~p">>).
  157. %% 成员榜相关
  158. -define(insert_guild_race_rank_member,
  159. <<"replace into guild_race_rank_member (`role_id`, `guild_id`, `position`, `old_power`, `old_rank`, `old_live`, `received_power`, `received_live`, `received_captain_power`, `received_captain_live`) values (~p, ~p, ~p, ~p, ~p, ~p, ~p, ~p, ~p, ~p)">>).
  160. -define(select_guild_race_rank_member,
  161. <<"select `role_id`, `guild_id`, `position`, `old_power`, `old_rank`, `old_live`, `received_power`, `received_live`, `received_captain_power`, `received_captain_live` from guild_race_rank_member">>).
  162. -define(delete_guild_race_rank_member,
  163. <<"delete from guild_race_rank_member where `role_id` = ~p">>).
  164. -define(delete_guild_race_rank_guild,
  165. <<"delete from guild_race_rank_member where `guild_id` = ~p">>).
  166. -define(update_guild_race_rank_member_position,
  167. <<"update guild_race_rank_member set `position` = ~p where `role_id` = ~p">>).
  168. -define(update_guild_race_rank_member_old_live,
  169. <<"update guild_race_rank_member set `old_live` = ~p where `role_id` = ~p">>).
  170. -define(update_guild_race_rank_member_received_power,
  171. <<"update guild_race_rank_member set `received_power` = ~p where `role_id` = ~p">>).
  172. -define(update_guild_race_rank_member_received_live,
  173. <<"update guild_race_rank_member set `received_live` = ~p where `role_id` = ~p">>).
  174. -define(update_guild_race_rank_member_received_captain_power,
  175. <<"update guild_race_rank_member set `received_captain_power` = ~p where `role_id` = ~p">>).
  176. -define(update_guild_race_rank_member_received_captain_live,
  177. <<"update guild_race_rank_member set `received_captain_live` = ~p where `role_id` = ~p">>).
  178. %% 玩家和社团映射
  179. -define(insert_guild_race_rank_role,
  180. <<"replace into guild_race_rank_role (`role_id`, `guild_id`) values ~ts">>).
  181. -define(insert_guild_race_rank_role_value,
  182. <<"(~p,~p)">>).
  183. -define(select_guild_race_rank_role,
  184. <<"select `role_id`, `guild_id` from guild_race_rank_role">>).
  185. %% 从社团成员表获取团长Id
  186. -define(select_guild_captain, <<"select id from guild_member where `position` = 1 and `guild_id` = ~p limit 1">>).
  187. %% 团长任务
  188. -define(insert_guild_race_rank_task,
  189. <<"replace into guild_race_rank_task (`guild_id`, `task_id`, `progress`, `status`) values (~p,~p,~p,~p)">>).
  190. -define(select_guild_race_rank_task,
  191. <<"select `guild_id`, `task_id`, `progress`, `status` from guild_race_rank_task">>).
  192. -define(update_guild_race_rank_task,
  193. <<"update guild_race_rank_task set `status`=~p where `guild_id`=~p and `task_id`=~p">>).
  194. -define(delete_guild_race_rank_task,
  195. <<"delete from guild_race_rank_task where `guild_id`=~p">>).