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

118 lines
5.6 KiB

  1. %% ---------------------------------------------------------------------------
  2. %% @doc 全民动员.
  3. %% @author zmh
  4. %% @since 20200811
  5. %% ---------------------------------------------------------------------------
  6. -define(MOBILIZE_ACT_DATA(Type, SubType), {mobilize_act_data, Type, SubType}).
  7. -define(MOBILIZE_DAY_REWARD_DEFAULT_NEED, 999). %% 天数奖励默认需要完成任务数量(配置缺失时)
  8. -define(MOBILIZE_CALC_UPDATE, 1). %% 数值更新
  9. -define(MOBILIZE_CALC_SUM, 2). %% 数值累加
  10. -define(MOBILIZE_POWER_CALC_DAY, 7). %% 战力任务计算天数
  11. -define(MOBILIZE_EQUIP_GEM_CALC_DAY, 6). %% 装备宝石任务计算天数
  12. -define(MOBILIZE_SPEC_TASK_TYPE_LIST, [gems, combat]).
  13. %% 假数据进度
  14. -record(fake_cord, {
  15. id = {0,0,0}, %% {tasktype, fakeid, start_day}
  16. act = 0, %% 活动子ID
  17. stime = 0, %% 活动开启时间
  18. etime = 0, %% 活动结束时间(任务结束时间)
  19. ltime = 0, %% 上次更新时间
  20. remain_score = 0, %% 待补助分(还剩需要补助多少)
  21. per_score = 0, %% 单次补助分
  22. remain_times = 0, %% 如果还不够,继续补助次数(事实上很少用)
  23. remain_click = 0, %% 多出来的补助次数(事实上很少用)
  24. process = 0, %% 进度
  25. real_pro = 0 %% 真实进度
  26. }).
  27. %% 活动数据
  28. -record(mobilize_act_data, {
  29. type = 0,
  30. subtype = 0,
  31. act_data = [],
  32. time = 0 %% 上次更新时间
  33. }).
  34. %% 全员动员 玩家完整数据
  35. -record(mobilize_role, {
  36. day_list = [] %% 天数区间奖励[#mobilize_day{}...]
  37. ,task_stat = #{} %% 任务完成度统计{{start,end}=>[#mobilize_task{}...]}
  38. }).
  39. %% 全员动员 玩家大奖进度数据
  40. -record(mobilize_day, {
  41. day_interval = {} %% {start, end} 天数区间
  42. ,total = 0 %% 任务总进度
  43. ,state = 0 %% 是否已领取奖励
  44. }).
  45. %% 全员动员 玩家任务进度
  46. -record(mobilize_task, {
  47. task_type = 0 %% 任务类型Id - Key
  48. ,task_pro = 0 %% 任务进度
  49. ,day_interval = {} %% {start, end} 天数区间(非重要数据)
  50. ,task_award_log = [] %% 任务奖励领取进度[task_id1,id2...]
  51. ,time = 0 %% 最近更新任务进度时间戳
  52. }).
  53. %% ------------------------------- 配置 -------------------------------------------
  54. %% 任务奖励配置
  55. -record(custom_mobilize_task, {
  56. task_type = 0 %% 任务类型Id
  57. ,task_id = 0 %% 任务Id
  58. ,day = 0 %% 开始天数
  59. ,end_day = 0 %% 结算天数
  60. ,server_pro = 0 %% 全服进度
  61. ,person_pro = 0 %% 个人进度
  62. ,gain_con = 0 %% 领取条件
  63. ,desc = 0 %% 任务描述
  64. ,reward = [] %% 任务奖励
  65. ,link = [] %% 前端跳转
  66. }).
  67. %% 天数奖励配置
  68. -record(base_custom_mobilize_day, {
  69. subtype = 0 %% 活动子Id
  70. ,day = 0 %% 开始天数
  71. ,end_day = 0 %% 结算天数
  72. ,reward = [] %% 奖励
  73. ,need_num = 0 %% 需要完成任务数量
  74. ,show_model = [] %% 前端展示模型
  75. }).
  76. %% ------------------------------- db -------------------------------------------
  77. %% db mobilize_task
  78. %% mobilize_days_reward
  79. %% 任务
  80. -define(SAVE_MOBILIZE_TASK,
  81. <<"REPLACE INTO mobilize_task (`role_id`, `sub_type`, `start_day`, `end_day`, `task_type`, `progress`, `award_log`, `time`) VALUES (~p, ~p, ~p, ~p, ~p, ~p, '~ts', ~p)">>).
  82. -define(SELECT_MOBILIZE_TASK,
  83. <<"SELECT `start_day`, `end_day`, `task_type`, `progress`, `award_log`, `time` FROM mobilize_task WHERE `role_id` = ~p AND `sub_type` = ~p">>).
  84. %% 天数大奖
  85. -define(SAVE_MOBILIZE_DAYS_REWARD,
  86. <<"REPLACE INTO mobilize_days_reward (`role_id`, `sub_type`, `start_day`, `end_day`, `total`, `state`) VALUES (~p, ~p, ~p, ~p, ~p, ~p)">>).
  87. -define(SELECT_MOBILIZE_DAYS_REWARD,
  88. <<"SELECT `start_day`, `end_day`, `total`, `state` FROM mobilize_days_reward WHERE `role_id`=~p AND `sub_type`=~p">>).
  89. %% 假数据
  90. -define(SQL_MOBILIZE_FAKE_GET,<<"SELECT `task_type`,`fake_id`,`act`,`day`,`stime`,`etime`,`ltime`,`remain_score`,`per_score`,`remain_times`,`remain_click`,`process`,`real_pro` FROM `mobilize_fake_cord`">>).
  91. -define(SQL_MOBILIZE_FAKE_SAVE,
  92. "REPLACE INTO `mobilize_fake_cord` (`task_type`,`fake_id`,`act`,`day`,`stime`,`etime`,`ltime`,`remain_score`,`per_score`,`remain_times`,`remain_click`,`process`,`real_pro`) values ~ts").
  93. -define(SQL_MOBILIZE_FAKE_LOG_BATCH,
  94. "REPLACE INTO `log_mobilize_progress` (`act`,`task_type`,`desc`,`fake`,`process`,`real_pro`,`day`,`time`) values ~ts").
  95. -define(SQL_FAKE_PROCESS_UPDATE, <<"UPDATE `mobilize_fake_cord` SET `ltime`= ~p,`process`=~p,`real_pro`=~p WHERE `task_type` = ~p and `fake_id`=~p and `act` = ~p and `day` =~p">>). %%进度相关
  96. -define(SQL_FAKE_CLICK_UPDATE, <<"UPDATE `mobilize_fake_cord` SET `ltime`= ~p,`remain_score`= ~p,`per_score`= ~p,`remain_times`= ~p,`remain_click`= ~p,`process`=~p,`real_pro`=~p WHERE `task_type` = ~p and `fake_id`=~p and `act` = ~p and `day` =~p">>). %%计数器相关更新
  97. %% 战力任务数据
  98. -define(SQL_SAVE_MOBILIZE_POWER, <<"insert into mobilize_power (`role_id`, `power`) values (~p, ~p)">>).
  99. -define(SQL_SELECT_MOBILIZE_POWER, <<"select `power` from mobilize_power where `role_id` = ~p limit 1">>).