源战役
Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

122 linhas
4.9 KiB

1 mês atrás
  1. %%%--------------------------------------
  2. %%% @Module : supplication.hrl
  3. %%% @Author : WJQ
  4. %%% @Created : 2019.04.01
  5. %%% @Description: 祈愿
  6. %%%--------------------------------------
  7. -define(SUPPLICATION_BRO_NUM, 50). %% 读取最新广播记录数
  8. -define(SUPPLICATION_REWARD_LENGTH, 10). %% 奖励选择数量
  9. -define(SUPPLICATION_REWARD_LV_LIST, [0,1,2,3]). %% 奖励等级列表
  10. %% 奖励限制类型
  11. -define(LIMIT_TYPE_PERSONAL, 1). %% 个人限制
  12. -define(LIMIT_TYPE_GLOBAL, 2). %% 全服限制(本服)
  13. %% 数据库写入状态
  14. -define(WSTATUS_SUCCESSS, 1). %% 写入成功
  15. -define(WSTATUS_WAIT, 2). %% 待写入
  16. -define(SAVE_DB_CD, 10). %% 写入数据库CD时间(秒)
  17. %% 任务完成状态
  18. -define(UNFINISH, 0). %% 未完成
  19. -define(FINISH, 1). %% 已完成但未领取奖励
  20. -define(HAS_RECEIVE, 2). %% 已领取奖励
  21. %% 广播设置
  22. -define(BROADCAST, 1). %% 广播
  23. -define(NO_BROADCAST, 0). %% 不广播
  24. %% 玩家祈愿数据
  25. -record(supplication, {
  26. sub_type = 0, %% 活动子类型
  27. self_log = [], %% 个人抽奖记录 [reward_id,...]
  28. task_list = [], %% 任务列表 [#task_progress{}...]
  29. select_reward = [], %% 已选择奖励列表 [{RewardLv, [{Weight, {PosId, RewardId}},...]},...]
  30. count = 0, %% 已抽奖次数
  31. counter = [], %% 抽中该奖励等级后抽奖次数 [{RewardLv, Count, GetTimes},...]
  32. time = 0 %% 数据记录时间
  33. }).
  34. %% 玩家任务数据
  35. -record(task_progress, {
  36. task_id = 0, %% 任务ID
  37. sub_type = 0, %% 活动子类型
  38. progress = 0, %% 任务进度
  39. extra = [], %% 额外数据
  40. task_status = 0, %% 任务状态
  41. write_time = 0, %% 最近一次更新写入数据库的时间
  42. write_status = 0, %% 写入状态 1:写入成功 2:待写入
  43. time = 0 %% 数据记录时间
  44. }).
  45. %% 祈愿广播记录
  46. -record(supplication_kf, {
  47. broadcast_list = [] %% 广播列表 [#broadcast{}]
  48. }).
  49. -record(supplication_local, {
  50. status = 0, %% 0未同步 1已同步
  51. broadcast_list = [], %% 广播列表 [#broadcast{}]
  52. counter = [] %% 全服玩家抽中该奖励等级后抽奖次数 [{RewardLv, Count, GetTimes},...]
  53. }).
  54. %% 广播记录
  55. -record(broadcast, {
  56. role_id = 0, %% 角色id
  57. role_name = "", %% 玩家名
  58. server_num = 0, %% 服务器标识
  59. reward_id = 0 %% 奖励ID
  60. }).
  61. %% 祈愿任务配置
  62. -record(supplication_task_cfg, {
  63. task_id = 0, %% 任务ID
  64. module_id = 0, %% 模块ID
  65. sub_type = 0, %% 子类型
  66. desc = "", %% 任务描述
  67. condition = [], %% 任务完成条件
  68. reward_list = [], %% 奖励
  69. jump_cfg = [] %% 跳转配置
  70. }).
  71. %% 祈愿奖励配置
  72. -record(supplication_reward_cfg, {
  73. reward_id = 0, %% 奖励ID
  74. reward_lv = 0, %% 奖励等级
  75. weight = 0, %% 权重
  76. lv_min = 0, %% 等级下限
  77. lv_max = 0, %% 等级上限
  78. reward_list = [], %% 奖励
  79. effect = 0, %% 特效
  80. broadcast = 0 %% 广播
  81. }).
  82. %% 祈愿常量配置
  83. -record(supplication_constant_cfg, {
  84. key = 0, %% 键
  85. value = [], %% 值
  86. desc = "" %% 描述
  87. }).
  88. %% ========================
  89. %% SQL
  90. %% ========================
  91. -define(SELECT_SUPPLICATION, <<"SELECT `sub_type`, `self_log`, `select_reward`, `count`, `counter`, `time` FROM `supplication` WHERE `role_id` = ~p">>).
  92. -define(SELECT_SUPPLICATION_TASK, <<"SELECT `task_id`, `sub_type`, `progress`, `extra`, `task_status`, `time` FROM `supplication_task` WHERE `role_id` = ~p">>).
  93. -define(SELECT_LATEST_BROADCAST, <<"SELECT `role_id`, `role_name`, `server_num`, `reward_id` FROM `supplication_broadcast` ORDER BY `id` LIMIT ~p ">>).
  94. -define(SELECT_SUPPLICATION_COUNTER, <<"SELECT `reward_lv`, `count`, `reward_count` FROM `supplication_counter`">>).
  95. -define(REPLACE_SUPPLICATION, <<"REPLACE INTO `supplication` (`role_id`, `sub_type`, `self_log`, `select_reward`, `count`, `counter`, `time`) VALUES (~p, ~p, '~s', '~s', ~p, '~s', ~p)">>).
  96. -define(REPLACE_SUPPLICATION_TASK, <<"REPLACE INTO `supplication_task` (`role_id`, `task_id`, `sub_type`, `progress`, `extra`, `task_status`, `time`) VALUES (~p, ~p, ~p, ~p, '~s', ~p, ~p)">>).
  97. -define(REPLACE_SUPPLICATION_COUNTER, <<"REPLACE INTO `supplication_counter` (`reward_lv`, `count`, `reward_count`) VALUES (~p, ~p, ~p)">>).
  98. -define(INSERT_BROADCAST, <<"INSERT INTO `supplication_broadcast` (`role_id`, `role_name`, `server_num`, `reward_id`) VALUES (~p, '~ts', ~p, ~p)">>).
  99. -define(DELETE_ALL_SUPPLICATION_TASK, <<"DELETE FROM `supplication_task` WHERE `role_id` = ~p AND `task_id` = ~p">>).
  100. -define(DELETE_OLD_BROADCAST,
  101. <<"DELETE FROM `supplication_broadcast`
  102. WHERE `id` NOT IN (SELECT * FROM (SELECT `id` FROM supplication_broadcast ORDER BY `id` DESC LIMIT ~p) AS `a`)">>).
  103. -define(DELETE_SUPPLICATION_COUNTER, <<"DELETE FROM `supplication_counter` WHERE `reward_lv` = ~p">>).
  104. -define(UPDATE_SUPPLICATION_TASK, <<"UPDATE `supplication_task` SET `progress` = ~p, `extra` = '~s', `task_status` = ~p WHERE `role_id` = ~p AND `task_id` = ~p">>).