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

895 lines
43 KiB

  1. %%-----------------------------------------------------------------------------
  2. %% @Module : custom_act
  3. %% @Author : Czc
  4. %% @Email : 389853407@qq.com
  5. %% @Created : 2018-01-05
  6. %% @Description: 定制活动
  7. %%-----------------------------------------------------------------------------
  8. %% 进程字典存储有效的定制活动[{Type, SubType}]
  9. -define(P_VAILD_ACT_TYPE_LIST, "VAILD_ACT_TYPE_LIST").
  10. %% 进程字典存储官服定制活动文件最后修改的时间
  11. %% 如果修改时间不一样重新加载定制活动
  12. -define(P_CUSTOM_ACT_NORMAL_LAST_MTIME, "LAST_MTIME").
  13. %% 用ets存储当前已经开启的定制活动
  14. -define(ETS_CUSTOM_ACT, ets_custom_act). %% #act_info{}
  15. %% ==================================== 定制活动类型 ==================================
  16. -define(CUSTOM_ACT_TYPE_FLOWER_RANK_LOCAL, 1). %% 本服魅力榜活动
  17. -define(CUSTOM_ACT_TYPE_FLOWER_RANK, 2). %% 跨服魅力榜活动
  18. -define(CUSTOM_ACT_TYPE_LIMIT_GIFT, 3). %% 角色差异化活动-限购礼包
  19. -define(CUSTOM_ACT_TYPE_LOANS, 5). %% 彩钻复制机
  20. -define(CUSTOM_ACT_TYPE_DAILY_CHARGE_CONSUME, 6). %% 每日累充消费 - 弹珠抽奖活动
  21. -define(CUSTOM_ACT_TYPE_RECHARGE, 7). %% 累充
  22. -define(CUSTOM_ACT_TYPE_SER_FES_DROP, 8). %% 本服节日掉落
  23. -define(CUSTOM_ACT_TYPE_CLS_FES_DROP, 9). %% 跨服节日掉落
  24. -define(CUSTOM_ACT_TYPE_RUSH_RANK, 10). %% 开服冲榜
  25. -define(CUSTOM_ACT_TYPE_TURNTABLE, 11). %% 源能转盘
  26. -define(CUSTOM_ACT_TYPE_DUN_MUL_DROP, 12). %% 副本多倍掉落
  27. -define(CUSTOM_ACT_TYPE_SMASHED_EGG, 13). %% 砸蛋
  28. -define(CUSTOM_ACT_TYPE_RECHARGE_GIFT, 14). %% 充值有礼
  29. -define(CUSTOM_ACT_TYPE_DUN_MUL_EXP, 16). %% 副本多倍经验
  30. -define(CUSTOM_ACT_TYPE_LIMIT_BUY, 17). %% 特惠商城
  31. -define(CUSTOM_ACT_TYPE_CLOUD_BUY, 18). %% 众仙云购/幸运之星
  32. -define(CUSTOM_ACT_TYPE_HOPE_GIFT, 19). %% 角色差异化活动-礼包(明日之礼)
  33. -define(CUSTOM_ACT_TYPE_ACT_EXCHANGE, 21). %% 活动兑换
  34. -define(CUSTOM_ACT_TYPE_SAKURA_GIFT, 20). %% 源樱之礼-阶段抽奖
  35. -define(CUSTOM_ACT_TYPE_ACT_CAPSULE_TOYS, 22). %% 超级扭蛋
  36. -define(CUSTOM_ACT_TYPE_GUILD_CREAT, 24). %% 勇者盟约
  37. -define(CUSTOM_ACT_TYPE_PERFECT_LOVER, 25). %% 完美恋人
  38. -define(CUSTOM_ACT_TYPE_GWAR, 27). %% 公会争霸运营活动
  39. -define(CUSTOM_ACT_TYPE_RED_ENVELOPES, 29). %% 活动红包 同时只能有一个子类型生效
  40. -define(CUSTOM_ACT_TYPE_CONSUME, 30). %% 消费活动
  41. -define(CUSTOM_ACT_TYPE_TREASURE_EVALUATION, 31). %% 幸运鉴宝活动
  42. -define(CUSTOM_ACT_TYPE_RECHARGE_RANK, 33). %% 本服充值排行
  43. -define(CUSTOM_ACT_TYPE_RECHARGE_CONSUME, 34). %% 充值消费活动
  44. -define(CUSTOM_ACT_TYPE_LUCAY_FLOP, 35). %% 幸运翻牌
  45. -define(CUSTOM_ACT_TYPE_FREE_GIFT, 36). %% 0元礼包活动
  46. -define(CUSTOM_ACT_TYPE_CONSUME_RANK, 39). %% 本服消费排行(钻石)
  47. -define(CUSTOM_ACT_TYPE_CONTINUE_CONSUME, 40). %% 连续消费
  48. -define(CUSTOM_ACT_TYPE_OVERFLOW_GIFTBAG, 41). %% 超值礼包
  49. -define(CUSTOM_ACT_TYPE_SPEC_SELL, 42). %% 精品特卖
  50. -define(CUSTOM_ACT_TYPE_DAILY_RECHARGE_EX, 47). %% 每日累充(每日重置版)
  51. -define(CUSTOM_ACT_TYPE_SINGLE_RECHARGE, 48). %% 每日单笔充值
  52. -define(CUSTOM_ACT_TYPE_MONEY_EARN, 49). %% 货币赚赚赚
  53. -define(CUSTOM_ACT_TYPE_JOURNEY, 50). %% 大陆征途
  54. -define(CUSTOM_ACT_TYPE_LOTTERY, 51). %% 彩票
  55. -define(CUSTOM_ACT_TYPE_BOSS_DOUBLE, 52). %% 首领翻倍
  56. -define(CUSTOM_ACT_TYPE_FASHION_VOTE, 53). %% 时装投票
  57. -define(CUSTOM_ACT_TYPE_SUPPLICATION, 55). %% 祈愿
  58. -define(CUSTOM_ACT_TYPE_DAILY_ACTIVITY, 56). %% 日常活跃
  59. -define(CUSTOM_ACT_TYPE_REPEAT_RECHARGE_REWARD, 57). %% 反复充值有礼
  60. -define(CUSTOM_ACT_TYPE_DAILY_TARGET, 59). %% 每日目标
  61. -define(CUSTOM_ACT_TYPE_GROWTH_SCORE, 60). %% 成长积分
  62. -define(CUSTOM_ACT_TYPE_JOY_WISH, 61). %% 欢乐许愿
  63. -define(CUSTOM_ACT_TYPE_VIP_BAG_ONSALE, 63). %% VIP特惠
  64. -define(CUSTOM_ACT_TYPE_LUCKY_CAT, 64). %% 招财猫活动
  65. -define(CUSTOM_ACT_TYPE_LIMIT_MALL, 65). %% 商城抢购
  66. -define(CUSTOM_ACT_TYPE_GUILD_RACE_RANK, 66). %% 社团竞速
  67. -define(CUSTOM_ACT_TYPE_CIRCLE_FOSTER, 67). %% 循环进阶
  68. -define(CUSTOM_ACT_TYPE_SMALL_RECHARGE, 68). %% 小额连充活动
  69. -define(CUSTOM_ACT_TYPE_SELLSWORDS_RESUPPLY, 69). %% 佣兵补给
  70. -define(CUSTOM_ACT_TYPE_GROUP_BUY, 70). %% 团购活动
  71. -define(CUSTOM_ACT_TYPE_MOBILIZE, 71). %% 全民动员
  72. -define(CUSTOM_ACT_TYPE_MONOPOLY, 72). %% 超级富豪
  73. -define(CUSTOM_ACT_TYPE_ADVERTISEMENT, 73). %% 广告活动
  74. -define(CUSTOM_ACT_TYPE_CONTRACT, 74). %% 通行证
  75. -define(CUSTOM_ACT_TYPE_INVESTMENT, 75). %% 投资活动
  76. -define(CUSTOM_ACT_TYPE_SECKILL, 76). %% 秒杀活动
  77. -define(CUSTOM_ACT_TYPE_DISCOUNT_MALL, 77). %% 折扣商城
  78. -define(CUSTOM_ACT_TYPE_SUP_RED_PACKET, 78). %% 惊喜红包
  79. -define(CUSTOM_ACT_TYPE_VIE_RANK, 79). %% 通用榜单
  80. -define(CUSTOM_ACT_TYPE_PERMIT_LOGIN, 80). %% 登录通行证
  81. -define(CUSTOM_ACT_TYPE_PERMIT_ACTIVE, 81). %% 活跃通行证
  82. -define(CUSTOM_ACT_TYPE_HI_POINT_2, 82). %% 嗨点兑换
  83. %% 主题活动页签 99,其他主题活动类型101-120
  84. -define(CUSTOM_ACT_THEME, 99).
  85. -define(CUSTOM_ACT_THEME_LIMIT_DROP, 101). %% 主题活动-限时掉落
  86. -define(CUSTOM_ACT_THEME_DUN_MUL_REWARD, 102). %% 主题活动-副本多倍奖励
  87. -define(CUSTOM_ACT_THEME_FIRST_RECHARGE, 103). %% 主题活动-每日首充
  88. -define(CUSTOM_ACT_TYPE_PHANTOM, 104). %% 幻魔宝典
  89. -define(CUSTOM_ACT_TYPE_HI_POINT, 105). %% 嗨点(狂欢活动)
  90. -define(CUSTOM_ACT_TYPE_SIGN_REWARD, 106). %% 登录送礼
  91. -define(CUSTOM_ACT_TYPE_LUCKY_TURNTABLE, 107). %% 幸运转盘
  92. -define(CUSTOM_ACT_TYPE_SCRATCH_CARD, 108). %% 刮刮卡
  93. -define(CUSTOM_ACT_TYPE_LUCKY_BAG1, 109). %% 福袋
  94. -define(CUSTOM_ACT_TYPE_LUCKY_BAG2, 110). %% 福袋-红包
  95. -define(CUSTOM_ACT_TYPE_TAROT, 111). %% 塔罗牌
  96. -define(CUSTOM_ACT_TYPE_COLWORD, 112). %% 集字兑换
  97. -define(CUSTOM_ACT_TYPE_ADVENTURE_ROLE, 113). %% 冒险征程
  98. -define(CUSTOM_ACT_TYPE_PHASE_EXCHANGE, 114). %% 阶段兑换
  99. -define(CUSTOM_ACT_TYPE_REVERSI, 115). %% 黑白棋
  100. -define(CUSTOM_ACT_TYPE_SLICES, 116). %% 积分拼图
  101. -define(CUSTOM_ACT_TYPE_BOSS, 117). %% 活动BOSS
  102. -define(CUSTOM_ACT_TYPE_PUZZLE, 118). %% 眼疾手快-拼图
  103. -define(CUSTOM_ACT_TYPE_DAYS_PLAN, 119). %% 五日大作战
  104. -define(CUSTOM_ACT_TYPE_TREE_LOTTERY, 120). %% 摇树抽奖
  105. -define(CUSTOM_ACT_TYPE_JUMP_ACT, 121). %% 跳一跳
  106. -define(CUSTOM_ACT_TYPE_PRINTER_DRAW, 122). %% 合成机
  107. -define(CUSTOM_ACT_TYPE_GREAT_REWARD, 123). %% 超能大奖
  108. -define(CUSTOM_ACT_TYPE_UNITE_BUFF, 124). %% 联合BUFF
  109. -define(CUSTOM_ACT_TYPE_SELECT_CAPSULE_EGG, 125). %% 自选扭蛋
  110. -define(CUSTOM_ACT_TYPE_GUIDE, 998). %% 活动引导
  111. -define(CUSTOM_ACT_TYPE_BUBBLE, 999). %% 活动气泡
  112. %% 暂时不确定未来是否需要的旧活动
  113. %% 将id替换为-1使之失效
  114. -define(CUSTOM_ACT_TYPE_DAILY_CHARGE_CYCLE, -1). %% 循环每日累充
  115. %% ==================================== 定制活动类型 ==================================
  116. %% 跨服活动类型
  117. -define(KF_CUSTOM_ACT_TYPE, [
  118. ?CUSTOM_ACT_TYPE_SECKILL,
  119. ?CUSTOM_ACT_TYPE_VIE_RANK,
  120. ?CUSTOM_ACT_TYPE_JUMP_ACT
  121. ]).
  122. %% ======================== 注意事项 =========================
  123. %% 定制活动关闭发奖的时候做好日志,数据会在活动关闭的时候清理
  124. %% 定制活动目前支持主类型下的多个子类型同时开启,程序写代码的要做好兼容!!!!!!!!!
  125. %% 相关的活动数据最好加一个数据的更新时间戳字段,通过判断最后的更新时间是否大于本次活动的开启时间,不是的话表示该份数据是过期数据,不能继续使用
  126. %% 特殊定制活动的条件,配置condition字段的值,在这里加上备注
  127. %% 通用的定制活动条件
  128. %% {role_lv, 玩家等级}
  129. %% {rank_len, 榜单长度}
  130. %% {rank_limit, 榜单阈值}
  131. %% {gap_time, 间隔天数(针对分为活动时间和领取奖励时间的活动)}
  132. %% {sp_gap_time, 间隔天数(针对分为活动时间和全程领取奖励时间的活动)}
  133. %% {cycle_startday, StartDay}:循环开始时间 搭配开启类型6使用
  134. %% {cycle_days, DivisorDays, RemNum}:DivisorDays循环内的总天数 RemNum循环内的第几天
  135. %% {cycle_days, DivisorDays, RemList}:DivisorDays循环内的总天数 RemList循环内的【连续天数】列表
  136. %% 最好每个活动都把自己的详细条件写清楚
  137. %% -define(CUSTOM_ACT_TYPE_COLWORD, 4). %% 开服集字兑换
  138. %% 活动条件 [{role_lv, 100}, {sp_gap_time, 7}(间隔天数(针对分为活动时间和全程领取奖励时间的活动))]
  139. %% 活动奖励条件[{goods_exchange, ExGoods, ModId, CounterId(一般就是奖励id)} mod_id和counter_id都填0就不记录全服今天兑换了几次]
  140. %% CUSTOM_ACT_TYPE_REPEAT_RECHARGE_REWARD 重复充值有礼
  141. %% 活动条件 {recharge, 500} 每充值500钻可抽1次 {show_type, 1} 展示类型1模型2物品 {show_id, 1234}展示的模型或物品id
  142. %% 活动奖励条件 无
  143. %% CUSTOM_ACT_TYPE_REPEAT_RECHARGE_TURNTABLE 重复充值转盘
  144. %% 活动条件 {recharge, 500} 每充值500钻可抽1次
  145. %% 活动奖励条件 {wlv, [100, 200]} 世界等级100级到200级, {weight, 50} 权重50 ,{is_tv, 1}广播+记录抽奖历史
  146. %% CUSTOM_ACT_TYPE_SMASHED_EGG 砸蛋
  147. %% {free_refresh_times, 每日免费刷新次数}
  148. %% {smashed_times_lim, 每日钻石砸蛋次数上限}
  149. %% CUSTOM_ACT_TYPE_ACT_BOSS 活动boss
  150. %% {cfg_list,
  151. %% [
  152. %% {mon_type,怪物类型},1活动boss 2采集怪物
  153. %% {scene,场景id},
  154. %% {mon_id,[怪物id,...]},
  155. %% {mon_num, 怪物数量}如果有多个怪物id则全部都是同样的数量
  156. %% {times_point,[{{开始时,开始分,开始秒},{结束时, 结束分, 结束秒}},...]}
  157. %% ],...
  158. %% }
  159. %% CUSTOM_ACT_TYPE_ACT_EXCHANGE 活动兑换
  160. %% 活动条件 [{clear_type, Type}] Type为 day:每日更新 act:活动结束更新
  161. %% 活动奖励条件[{goods_exchange, ExGoods, ModId, CounterId(一般就是奖励id)} mod_id和counter_id都填0就不记录全服今天兑换了几次
  162. %% {exchange_limit, Limit}] 兑换上限
  163. %% CUSTOM_ACT_TYPE_HI_POINT 嗨点
  164. %% 活动条件
  165. %% 活动奖励条件 {hi_points, Num}
  166. %% CUSTOM_ACT_TYPE_BOSS_FIRST_BLOOD BOSS首杀
  167. %% 活动奖励条件 {boss_id, BOSS_ID}
  168. %% CUSTOM_ACT_TYPE_SIGN_REWARD 登录送礼
  169. %% 活动条件 无
  170. %% 活动奖励条件
  171. %% [{sign_day, 年, 月, 日}] 每日领取日期
  172. %% [{sign_count, 累计天数}] 累计天数奖励(一个活动只填一个)
  173. %% CUSTOM_ACT_TYPE_LIMIT_BUY 特惠商城
  174. %% 活动条件 无
  175. %% 活动奖励条件
  176. %% [{cost, [{物品类型, 物品类型id, 物品数量}](消耗列表)}, {discount, 折扣(例如70为7折)}, {limit, 限购数量}]
  177. %% CUSTOM_ACT_TYPE_CLOUD_BUY 众仙云购/幸运之星
  178. %% 活动条件
  179. %% [{unlimited_time,[不限制购买次数时, 不限制购买次数分]},(不限制购买次数的开始时间,精确到分)
  180. %% {award_time,[奖励发放时, 奖励发放分]}, 奖励发放时间,(精确到分)
  181. %% {big_award_ids, [大奖id]}(大奖id列表,循环使用)]
  182. %% 活动奖励条件 无
  183. %% CUSTOM_ACT_TYPE_PERFECT_LOVER 完美恋人
  184. %% [{reward, [{物品类型, 物品类型id, 物品数量}]}](完美恋人奖励列表)
  185. %% 活动奖励条件 无
  186. %% CUSTOM_ACT_TYPE_DAILY_CHARGE 累计充值
  187. %% 奖励条件说明
  188. %% {type, N} N :: 1|2 1每日累充类型 2周期累充类型 完成所有奖励的档次为1周期
  189. %% {gold, N} N :: integer() 累计充值钻石数量
  190. %% {day, N} N :: integer() 周期累充类型特有,表示N天累充达到多少钱
  191. %% 每日充值达到300钻石 [{type,1},{gold,300}]
  192. %% 累计2天充值达到300钻石 [{type,2},{day,2},{gold,300}]
  193. %% CUSTOM_ACT_TYPE_7_RECHARGE 7天累充
  194. %% 奖励条件说明
  195. %% {gold, N} N :: integer() 累计充值钻石数量
  196. %% 充值达到1980钻石 [{gold,1980}]
  197. %% CUSTOM_ACT_TYPE_DUN_MUL_DROP 副本多倍掉落
  198. %% CUSTOM_ACT_TYPE_DUN_MUL_EXP 副本多倍经验
  199. %% 活动条件说明
  200. %% [{types,[{DunType,N}]}, {filter_merge_day, [1,5]}] DunType :: integer() 副本类型 N :: integer() 倍数 filter_merge_day 配[1,2,3]表示合服第1,2,3天不会开活动 不配表示不限制
  201. %% 宠物副本、金币副本掉落双倍 [{types,[{2,2},{3,2}]}]
  202. %% 经验副本多倍经验 [{types,[{4,10000}]}, {time,{{23,45,0},{23,59,59}}}, {filter_merge_day, [1,5]}]
  203. %% CUSTOM_ACT_TYPE_EUDEMONS_ATTACK 幻兽入侵活动
  204. %% 活动条件说明
  205. %% {lv,Lv} Lv :: integer() 玩家等级限制
  206. %% {time, [{{H1,M1},{H2,M2}}]} H1开始小时 M1开始分钟 H2结束小时 M2结束分钟
  207. %% {buff,[{GoodsId, SkillId}]} 鼓舞效果 使用物品对应的buff技能
  208. %% 活动期间每天18点、20点开启,持续30分钟 [{{18,0},{18,30}},{{20,0},{20,30}}]
  209. %% 奖励条件说明 只有排行奖励配在了定制活动奖励里,最后一击和阶段伤害奖励请参考幻兽入侵活动配置
  210. %% [{hurt_rank,{Min,Max}}] 排名在Min-Max之间(包含Min和Max)
  211. %% CUSTOM_ACT_TYPE_GUILD_CREAT 勇者盟约
  212. %% 奖励条件说明
  213. %% {count,N}全服限制N个
  214. %% {vice_count,N} 任命N个副会长
  215. %% {member, N}公会达到多少人
  216. %% {guild_lv,N}公会达到多少级
  217. %% 所有条件都有个大前提,会长才能领取
  218. %% CUSTOM_ACT_TYPE_LUCKY_TURNTABLE 幸运抽奖
  219. %% 活动条件说明
  220. %% [{ticket_price, 100}] 充值100元宝获得一张券
  221. %% 奖励条件说明
  222. %% [{weight, 权重},{n_times,倍数}] 根据权重获得该奖励id 奖励内容会乘以倍数
  223. %% CUSTOM_ACT_TYPE_CONSUME 消费活动
  224. %% 活动条件说明
  225. %% [{money_types,[gold,bgold,coin]}] 参与活动的消费种类 gold钻石消费 bgold绑钻消费 coin铜币消费
  226. %% 活动奖励条件说明
  227. %% [{money_type,Type,N}] Type = gold|bgold|coin
  228. %% 例如活动期间累计消费888钻石 [{money_type,gold,888}]
  229. %% 假如一个活动的所有奖励包含多个种类,则活动条件的money_types则需要对应全部种类
  230. %% CUSTOM_ACT_TYPE_KF_CLOUD_BUY_GOLD|CUSTOM_ACT_TYPE_KF_CLOUD_BUY_BGOLD 跨服云购
  231. %% 活动条件说明
  232. %% {role_lv, 角色等级}
  233. %% [{draw_time, [{时,分}]}]目前每次活动只能开一期抽奖
  234. %% {unlimit_time, [{时,分}]} 不限购时间
  235. %% {cost, [{goods_type, goods_id, goods_num},...]} 购买一份消耗
  236. %% 活动奖励条件说明
  237. %% {is_main_reward, true} 主奖励必填条件
  238. %% [{buy_num_lim, 个人购买基础次数}] 购买的基础次数 总购买次数 = 基础购买次数 * (1 + VIP次数加成系数) 结果向上取整
  239. %% [{total_buy_num_lim, 跨服组总购买次数}]
  240. %% [{winner_num_lim, 中奖人数}] 主奖励
  241. %% {draw_num, [{购买份数, 子奖励ID},...]} 子奖励ID对应奖励档次ID,达到相应购买份数则开奖
  242. %% {is_main_reward, false} 子奖励必填条件
  243. %% {winner_num_lim, 中奖人数} 子奖励
  244. %% CUSTOM_ACT_TYPE_LOGIN_RETURN_REWARD 0元豪礼
  245. %% 活动条件说明
  246. %% 注意:活动的结束时间必须大于限购天数(buy_day)+返利奖励领取需要的最大天数,如果限购天数是3,最后一档奖励需要7天后才能领取,则结束时间必须在开始时间10天后
  247. %% [{role_lv, 120}] 玩家参与等级
  248. %% [{buy_day, 3}] 活动开始后多少天内允许购买商品,此天数按满24小时算一天
  249. %% 活动奖励条件说明
  250. %% [{lv, 170}, {receive_day, 3}, {return_reward, [{2,0,388}]},{icon,[{0,38140001,1}]}]
  251. %% [ {cost, [{1,0,688}]},{receive_day, 3}, {return_reward, [{1,0,688}]},{icon,[{0,38140001,1}]}]
  252. %% [{lv, 170}] 购买需要的玩家等级
  253. %% [{cost, [{1,0,688}]}] 购买商品需要的消耗
  254. %% [{receive_day, 3}] 购买商品后多少天能领取返利
  255. %% [{return_reward, [{2,0,388}]}] 返利奖励
  256. %% [{icon,[{0,38140001,1}]}] 客户端展示用的返利图标 具体格式咨询客户端
  257. %% [{model,[{0,12020007,1},{0,12010007,1},{0,12030007,1}]}] 客户端展示用的返利模型 具体格式咨询客户端
  258. %% CUSTOM_ACT_TYPE_CONTINUE_CONSUME
  259. %% 奖励条件说明
  260. %% {type, N} N :: 1|2 1每日消费 2累计天数消费
  261. %% {gold, N} N :: integer() 累计消费钻石数量
  262. %% {day, N} N :: integer() 累计天数消费特有,表示每天消费达到多少钱累计N天
  263. %% CUSTOM_ACT_TYPE_OVERFLOW_GIFTBAG 超值礼包
  264. %% 活动条件说明
  265. %% [{role_lv, 120}] 玩家参与等级
  266. %% [{buy_day, 3}] 玩家到达配置等级后多少天内允许购买商品,此天数按满24小时算一天
  267. %% 奖励条件说明
  268. %% {gift_id, 礼包ID} 有这项的话发此礼包(奖励仅当显示用) 否则直接发配的奖励
  269. %% {old_price, 物品正则} 格式[{Type, Id, Num}] 旧价格
  270. %% {now_price, 物品正则} 格式[{Type, Id, Num}] 现价格
  271. %% {icon, 资源id} 宝箱资源 客户端用
  272. %% CUSTOM_ACT_TYPE_SPEC_SELL 精品特卖
  273. %% 活动条件说明
  274. %% [{role_lv, 120}] 玩家参与等级
  275. %% [{buy_day, 3}] 玩家到达配置等级后多少天内允许购买商品,此天数按满24小时算一天 如果不配的话 活动时间内都能买
  276. %% 奖励条件说明
  277. %% {now_price, 物品正则} 格式[{Type, Id, Num}] 现价格
  278. %% {icon, 资源id} 资源 客户端用
  279. %% CUSTOM_ACT_TYPE_LUCKY_FLOP 幸运翻牌
  280. %% 活动条件说明
  281. %% {role_lv, 120} 玩家参与等级
  282. %% {times_lim, 120} 每日翻牌总次数
  283. %% {refresh_cost, [{[1,2],3}]} 刷新消耗 {[次数下限, 次数上限], 道具数量}
  284. %% {flop_cost, [{[1,2],3}]} 翻牌消耗 {[次数下限, 次数上限], 道具数量}
  285. %% 奖励条件说明
  286. %% {rweight, 刷新权重}
  287. %% {sweight, 抽取权重}
  288. %% CUSTOM_ACT_TYPE_DAILY_TURNTABLE 每日活跃转盘
  289. %% 活动条件说明
  290. %% {role_lv, 120} 玩家参与等级
  291. %% {one_cost, [{0, 3310001, 1}]} 转一次消耗
  292. %% {ten_cost, [{0, 3310001, 9}]} 转十次消耗
  293. %% 奖励条件说明
  294. %% 奖品条件
  295. %% {weight, 权重}
  296. %% {is_tv, 1|0} 是否发传闻 1:是 0:否
  297. %% {is_rare, 1|0} 是否大奖 1:是 0:否
  298. %% {limit_type, 1|0} 限制类型 0:个人 1:全服
  299. %% {refresh_num, 数量} 重置所需次数
  300. %% {limit_num, 数量} 限制数量
  301. %% {topic, 1} 标题 客户端用
  302. %% 活跃度奖励 偏移值100+
  303. %% {liveness, 活跃度}
  304. %% CUSTOM_ACT_TYPE_DAILY_RECHARGE_EX 每日累充(每日重置版)
  305. %% 活动条件说明
  306. %% 无
  307. %% 奖励条件说明
  308. %% {gold, 当天累计充值多少钻石可以领取奖励}
  309. %% CUSTOM_ACT_TYPE_INVESTMENT 运营投资活动
  310. %% 活动条件说明
  311. %% [{cost,物品列表}] 物品列表: [{类型,物品id,数量}]
  312. %% 奖励条件说明
  313. %% [{day,N}] 投资后第几天可以领取
  314. %% CUSTOM_ACT_TYPE_SINGLE_RECHARGE 每日单笔充值
  315. %% 活动条件说明
  316. %% 无
  317. %% 奖励条件说明
  318. %% {gold_range, [单笔下限, 单笔上限]} 单笔充值多少钻石即可领取奖励
  319. %% {times_lim, 次数限制}
  320. %% CUSTOM_ACT_TYPE_MONEY_EARN 货币赚赚活动
  321. %% {money_type, 货币类型}
  322. %% {open_day, [开始天数, 结束天数]} 天数是相对活动开始时间的第几天
  323. %% CUSTOM_ACT_TYPE_BOSS_DOUBLE 首领翻倍活动
  324. %% 例 {boss_cd, 50} 缩短50%复活时间 多个活动存在的话相乘
  325. %% CUSTOM_ACT_TYPE_DAILY_ACTIVITY 每日活跃
  326. %% 活动条件说明
  327. %% 无
  328. %% 奖励条件说明
  329. %% {need_live, 活跃度值} 当日活跃度达到多少即可领取奖励
  330. %% CUSTOM_ACT_TYPE_SUPPLICATION 祈愿
  331. %% 活动条件说明
  332. %% {role_lv, 开放等级}
  333. %% {supplication_cost, [{物品类型,物品id,物品数量},...]} 祈愿消耗
  334. %% {cost_day, [{星期几, {开始小时, 开始分}, {结束小时,结束分}},...]} 祈愿开放星期
  335. %% {reward_day, [星期几,...]}任务开放星期
  336. %% {guaranty, {保底所需次数, 保底最低等级}}
  337. %% {task, [{任务id, 任务条件, 任务奖励ID},...]}
  338. %% 任务条件:
  339. %% {daily_login}每日登录
  340. %% {daily_charge}每日首充
  341. %% {liveness, 所需活跃度} 活跃度
  342. %% 任务奖励ID:
  343. %% 对应定制活动奖励档次ID,奖励名称填的是任务描述,奖励描述填的是任务跳转
  344. %% 奖励条件说明
  345. %% {reward_lv, 奖励等级}
  346. %% {weight, 权重}
  347. %% {effect, 是否有特效}
  348. %% 1有特效 0无特效
  349. %% {broadcast, 是否广播} 1广播 0不广播
  350. %% CUSTOM_ACT_TYPE_HOPE_GIFT 明日之礼活动
  351. %% 奖励领取条件(用于购买条件及返还配置读取):
  352. %% {original_price, 原价}
  353. %% {hopegift_cost, 购买价}
  354. %% {return_total,{GoodsTypeId, GoodsNum}} 总返还
  355. %% {return_day,{GoodsTypeId, GoodsNum}} 日返还
  356. %% {show,1,1,1} 前端用的
  357. %% CUSTOM_ACT_TYPE_GROUP_BUY 团购活动
  358. %% 奖励领取条件(购买):
  359. %% {gold_type, GoldType}
  360. %% {original_price, 原价}
  361. %% {discount, {8,7,6,5,4}} 折扣档次配置
  362. %% {member,{0,5,10,15,20}} 各折扣档次对应的团购人数需求(人数为修正数据,该数据>=真实团购人数)
  363. %% {fake,{0,15,30,50,60}} 各折扣档次团队人数修正控制参数(到保底时间修改人数趋近直至配置人数)
  364. %% CUSTOM_ACT_TYPE_DAILY_CHARGE_CONSUME 每日累充消费 - 弹珠抽奖活动
  365. %% 活动条件
  366. %% {pellet_cost,[{0,102350,1}]} 控制弹珠抽奖的道具
  367. %% 奖励领取条件
  368. %% {type,1} 类型1表示每日累充,类型2表示每日累消
  369. %% {gold,60} 完成条件 - 彩钻数量
  370. %% {show_gold,1280} 玩家当日充值达到多少彩钻,才显示该页签,否则隐藏(前端用)
  371. %% ==================================== 定制活动奖励格式 ==================================
  372. -define(REWARD_FORMAT_TYPE_COMMON, 1). %% 通用奖励格式[{类型,道具id,数量}]
  373. -define(REWARD_FORMAT_TYPE_LV, 2). %% 等级阶段奖励格式[{等级,[{类型,道具id,数量}]
  374. -define(REWARD_FORMAT_TYPE_RAND, 3). %% 随机奖励格式[{权值,[{类型,道具id,数量}]}]
  375. -define(REWARD_FORMAT_TYPE_WLV, 4). %% 世界等级阶段奖励格式[{世界等级,[{类型,道具id,数量}]}]
  376. -define(REWARD_FORMAT_TYPE_CAREER, 5). %% 职业奖励格式[{职业,[{类型,道具id,数量}]}]
  377. -define(REWARD_FORMAT_TYPE_SPECIFY_LV, 6). %% 指定玩家等级段奖励格式[{[玩家等级下限,玩家等级上限],[{类型,道具id,数量}]}] 不在这些等级区间的没有奖励
  378. -define(REWARD_FORMAT_TYPE_SPECIFY_LVACAREER, 7). %% 指定玩家等级段和职业奖励格式[{[玩家等级下限,玩家等级上限],{职业, [{类型,道具id,数量}]}}] 不在这些等级区间的没有奖励
  379. -define(REWARD_FORMAT_TYPE_SPECIFY_WLVACAREER, 8). %% 指定世界等级段和职业奖励格式[{[世界等级下限,世界等级上限],{职业, [{类型,道具id,数量}]}}] 不在这些等级区间的没有奖励
  380. %% ==================================== 定制活动奖励格式 ==================================
  381. -define(CUSTOM_ACT_NORMAL, 1). %% 定制活动(官方服)
  382. -define(CUSTOM_ACT_EXTRA, 2). %% 额外定制活动(渠道服)
  383. -define(CUSTOM_ACT_SWITCH_CLOSE, 0). %% 关闭
  384. -define(CUSTOM_ACT_SWITCH_OPEN, 1). %% 开启
  385. %% 开启类型
  386. -define(OPEN_TYPE_SPECIFY_TIME, 1). %% 指定时间开启
  387. -define(OPEN_TYPE_WEEK, 2). %% 每周几循环开启
  388. -define(OPEN_TYPE_MONTH, 3). %% 每月几号循环开启
  389. -define(OPEN_TYPE_SPECIFY_DATE, 4). %% 固定日期开启
  390. -define(OPEN_TYPE_CONTINUOUS_WEEK, 5). %% 每周几循环开启,周数需要连续
  391. -define(OPEN_TYPE_REPEAT_OPEN, 6). %% 循环开启
  392. -define(OPEN_TYPE_LIST, [
  393. ?OPEN_TYPE_SPECIFY_TIME,
  394. ?OPEN_TYPE_WEEK,
  395. ?OPEN_TYPE_MONTH,
  396. ?OPEN_TYPE_SPECIFY_DATE,
  397. ?OPEN_TYPE_CONTINUOUS_WEEK,
  398. ?OPEN_TYPE_REPEAT_OPEN
  399. ]).
  400. %% 定制活动状态
  401. %% >= 开始时间 < 结束时间为活动开启中
  402. -define(CUSTOM_ACT_STATUS_CLOSE, 0). %% 定制活动关闭
  403. -define(CUSTOM_ACT_STATUS_OPEN, 1). %% 定制活动开启
  404. -define(CUSTOM_ACT_STATUS_MANUAL_CLOSE, 2). %% 定制活动手动关闭 比如某些活动出问题了后台手动关闭
  405. -define(CUSTOM_ACT_STATUS_MERGE_CLOSE, 3). %% 定制活动合服前关闭结算
  406. -define(EXTRA_CUSTOM_ACT_SUB_ADD, 10000). %% 额外定制活动子类型偏移值
  407. -define(ACT_DURATION_ONE_DAY, 86399). %% 活动一天的时间
  408. %% 活动期间清理类型
  409. -define(CUSTOM_ACT_CLEAR_NULL, 1). %% 不清理
  410. -define(CUSTOM_ACT_CLEAR_ZERO, 2). %% 0点清理
  411. -define(CUSTOM_ACT_CLEAR_FOUR, 3). %% 4点清理
  412. -define(CUSTOM_ACT_CLEAR_CLOSE, 4). %% 活动结束清理
  413. -define(TIMER_START, 1). %% 定时器开启
  414. -define(RELOAD_START, 2). %% 重新加载开启
  415. %% 奖励状态
  416. -define(ACT_REWARD_CAN_NOT_GET, 0). %% 未满足条件不能领取
  417. -define(ACT_REWARD_CAN_GET, 1). %% 可以领取
  418. -define(ACT_REWARD_HAS_GET, 2). %% 已经领取
  419. -define(ACT_REWARD_TIME_OUT, 3). %% 奖励超时
  420. %% 定制活动通用红点礼包
  421. -define(ACT_COMMON_GIFT_DAILY, 1). %% 日常
  422. -define(ACT_COMMON_GIFT_ONCE, 2). %% 活动期间只领一次
  423. %% 额外数据类型
  424. -define(ALREADY_TRIGGER_GIFT, 0). %% 已经触发过的gift
  425. -define(TOWER_PASS_BEST_NUM, 1). %% 爬塔副本困难模式三星通关数
  426. -define(PET_PASS_BEST_NUM, 2). %% 宠物副本三星通关数
  427. -define(WARSOUL_STAR_INFO, 3). %% 战魂星级
  428. -define(GALAXY_DUN_CHAPTER, 4). %% 星辰副本章节数
  429. -record(custom_act_cfg, {
  430. type = 0, %% 活动主类型
  431. subtype = 0, %% 活动子类型
  432. act_type = 0, %% 活动类型 1:开服活动 2:合服活动 3:运营活动 4:单独图标 5:封测活动
  433. name = <<>>, %% 活动名字
  434. desc = <<>>, %% 活动描述
  435. opday_lim = [], %% 开服天数限制
  436. merday_lim = [], %% 合服天数限制
  437. % wlv_lim = [], %% 世界等级限制
  438. optype = 0, %% 开启类型 1: 具体时间控制 2: 每周几固定开启 3: 每月固定天数开启 4: 固定时间开启 5: 每周几循环开启,周数需要连续 6: 循环开启
  439. opday = [], %% 根据开启类型填 周几开启[周几] 每月固定天数开启[每月几号] 固定时间开启[{年,月,日}]
  440. optime = [], %% 开启时间段 活动当天什么时间段开启[{{开始时,开始分,开始秒}, {结束时,结束分,结束秒}}]
  441. start_time = 0, %% 活动开始时间 开启类型为0有效
  442. end_time = 0, %% 活动结束时间 开启类型为0有效
  443. clear_type = 0, %% 活动期间数据清理类型 1=不清理;2=0点清理;3=4点清理
  444. condition = [] %% 条件
  445. }).
  446. -record(custom_act_reward_cfg, {
  447. type = 0, %% 活动主类型
  448. subtype = 0, %% 活动子类型 注意:在代码里面不要拿这个subtype来用 官方定制活动和额外定制活动可能会配一样的 统一用act_info里面的!!!
  449. grade = 0, %% 奖励档次
  450. name = <<>>, %% 奖励名字
  451. desc = <<>>, %% 奖励描述
  452. condition = [], %% 奖励领取条件
  453. format = 0, %% 奖励格式 见定制活动奖励格式
  454. reward = []
  455. }).
  456. -record(ac_custom_cfg, {
  457. id = 0,
  458. value = []
  459. }).
  460. %% 折扣满减-优惠券配置
  461. -record(discount_mall_cfg, {
  462. goods_id = 0, %% 优惠券id
  463. type = 0, %% 类型##1折扣/2满减
  464. condition = [], %% 使用条件
  465. discount = 0, %% 折扣满减
  466. ab_discount = 0 %% 绝对满减
  467. }).
  468. %% 折扣满减-抽奖概率
  469. -record(discount_mall_coupon_rate_cfg, {
  470. id = 0, %% 序号
  471. goods_id = 0, %% 优惠券id
  472. weight = 0, %% 权重
  473. min_count = 0, %% 入库次数下限
  474. max_count = 0 %% 入库次数上限
  475. }).
  476. %% 定制活动数据
  477. -record(custom_act_state, {
  478. unopen_kf_act = [] %% [#act_info{}]保存跨服中心同步过来的跨服定制活动(因开服合服天数不满足或者世界等级不满足暂未开启的活动)
  479. }).
  480. %% 开启中的活动信息
  481. -record(act_info, {
  482. key = {0, 0}, %% {type, subtype}
  483. wlv = 0, %% 活动开启时候的世界等级
  484. stime = 0,
  485. etime = 0,
  486. trigger_time = 0 %% 是否触发时刻,新开活动的时候会置为1发给前端
  487. }).
  488. %% 玩家身上的定制活动数据
  489. -record(status_custom_act, {
  490. reward_map = #{} %% #{{type, subtype, grade} => #reward_status{}}
  491. ,custom_act_personal = [] %% 开启中的角色差异话活动[#custom_act_personal{}]
  492. ,extra_data = [] %% 额外数据,用于记录副本三星通关数等其它数据
  493. }).
  494. %% 通用的角色奖励领取状态
  495. -record(reward_status, {
  496. receive_times = 0, %% 奖励领取次数
  497. utime = 0 %% 数据更新时间
  498. }).
  499. %% 角色差异话活动数据
  500. -record(custom_act_personal, {
  501. key = {0, 0}, %% {活动主类型, 活动次类型}
  502. s_time = 0, %% 活动开始时间
  503. e_time = 0, %% 活动结束时间:数值1不需要显示倒计时
  504. time = 0, %% 活动数据最后更新时间
  505. act_data = [], %% 定制活动统计数据##具体活动类型自定义
  506. red_gift = [] %% 红点礼包奖励
  507. }).
  508. %% 用来取奖励的辅助参数 有些奖励玩家没有领取,要补发给他们,因此存了得到奖励当时的情况
  509. -record (reward_param, {
  510. player_lv = 0,
  511. wlv = 0,
  512. sex = 0,
  513. career = 0
  514. }).
  515. %% 公会争霸运营活动
  516. -record(custom_act_gwar, {
  517. join_list = [],
  518. dominator_guild_id = 0,
  519. dominator_id = 0,
  520. gmember_ids = []
  521. }).
  522. %% 转盘活动
  523. -record(custom_act_turntable, {
  524. record = #{}, %% 奖励记录 #{{ActType, SubType} => [{Id, RoleId, Reward, Time}]}
  525. receive_times = #{} %% 抽奖次数 #{{ActType, SubType} => #{RoleId => Times}}
  526. }).
  527. %% 定制活动-活动统计数据
  528. -record(custom_act_data, {
  529. type = 0 %% 活动主类型
  530. ,subtype = 0 %% 活动子类型
  531. ,time = 0 %% 活动数据最后更新时间
  532. ,act_data = [] %% 活动统计数据(各个活动自己控制)
  533. ,red_gift = [] %% [{红点礼包类型,礼包领取状态}]
  534. }).
  535. %% 角色招财猫数据
  536. -record(role_luckycat, {
  537. recharge = 0, %% 充值
  538. times = 0 %% 已抽奖次数
  539. }).
  540. %% 活动展示数据
  541. -record(custom_tv_data, {
  542. role_id = 0 %% 角色Id
  543. ,name = <<>> %% 角色名字
  544. ,goods_id = 0 %% 物品类型Id
  545. ,num = 0 %% 物品数量
  546. ,time = 0 %% 时间戳
  547. }).
  548. %% 小额连充活动
  549. -record(small_recharge, {
  550. award_info = [] %% 已达成条件的奖励列表[#small_award{}]
  551. ,resign = 0 %% 今日补签次数
  552. ,retime = 0 %% 上次补签时间
  553. ,refresh = 0 %% 刷新时间
  554. ,time = 0 %% 是否完成今日连充
  555. ,award_num = 0 %% 已达成的奖励数量
  556. }).
  557. %% 小额连充活动
  558. -record(small_award, {
  559. award_id = 0 %% 奖励Id
  560. ,process = 0 %% 充值进度
  561. ,status = 0 %% 领取状态 0已激活充值任务;1可以领取;2已经领取;3未激活
  562. ,time = 0 %% 达成时间戳
  563. }).
  564. %% 定制活动-0元礼包活动数据
  565. -record(custom_free_gift_award, {
  566. award_id = 0 %% 奖励Id
  567. ,time = 0 %% 购买时间戳
  568. ,is_get = 0 %% 是否已经领取
  569. }).
  570. %%投资 活动数据
  571. -record(custom_act_invest, {
  572. grade = 0, %% 档次
  573. time = 0, %% 购买时间
  574. awards = [] %% 活动领取情况[{奖励ID 1,奖励状态 0}] 0不可领1可领2已领
  575. }).
  576. -record(custom_cell_foster, {
  577. award_id = 0,
  578. process = 0, %%进度
  579. status = 0 %%状态
  580. }).
  581. %%封榜数据
  582. -record(custom_vie, {
  583. score = 0 %% 积分
  584. }).
  585. %% 明日之礼 - 恭贺礼包活动数据 存储于custom_act_data
  586. -record(custom_hope_gift_award, {
  587. grade_id = 0 %% 档位Id
  588. ,buy_time = 0 %% 购买时间
  589. ,cost = 0 %% 购买时消耗了多少勾玉
  590. ,got_count = 0 %% 领取数量
  591. ,last_got_time = 0 %% 最近领取时间
  592. }).
  593. %% 明日之礼 - 恭贺礼包活动数据 存储于custom_act_data
  594. %% CUSTOM_ACT_TYPE_HOPE_GIFT
  595. -record(custom_hope_gift, {
  596. start_time = 0 %% 活动开始时间戳
  597. ,buy_list = [] %% 已购买的奖励记录[#custom_hope_gift_award{}]
  598. ,round = 0 %% 抽奖轮次
  599. ,draw_got_ids = [] %% 本轮次已抽到的奖励Id [AwardId]
  600. ,draw_time = 0 %% 最近一次抽奖时间戳
  601. ,draw_count = 0 %% 当天抽奖次数(根据draw_time判断)
  602. }).
  603. %% 每日累充消费(弹珠活动)数据 存储于custom_act_data
  604. %% CUSTOM_ACT_TYPE_DAILY_CHARGE_CONSUME
  605. %% 记录最近两次领取时间,用于做昨天领取与否的判断,进而做结算未领取返还
  606. -record(custom_act_pellet, {
  607. grade_id = 0 % 活动档次id
  608. ,got_time = 0 % 最近领取时间
  609. ,last_got_time = 0 % 再往前一个领取时间
  610. ,return_midnight = 0 % 返还奖励对应的数据归属日期午夜时间(例如返昨天的则是昨天0点时间)
  611. ,last_return_midnight = 0 % 同return_midnight,多记录一个早一次的时间
  612. }).
  613. %% 塔罗牌数据 存储于custom_act_data
  614. -record(custom_act_tarot, {
  615. pos_status = [], % 塔罗牌翻牌状态 [{pos, status},...] {位置,状态}
  616. reward_pools = [], % 奖池状态 [{{goods_type, goods_id, num}, status},...]
  617. num = 0 % 翻牌第几次
  618. }).
  619. %%限时掉落配置
  620. -record(custom_act_limit_drop, {
  621. drop_type = 0, %%掉落类型
  622. drop_way = 0, %%boss类型
  623. desc = "",
  624. link = "",
  625. award = []
  626. }).
  627. %% 折扣商城
  628. -record(custom_act_discount_mall, {
  629. log = [] %% 购买记录
  630. , free_count = 0 %% 免费抽奖次数
  631. , count = 0 %% 抽奖次数
  632. }).
  633. -record(discount_mall_log,{
  634. time = 0,
  635. coupon_discount = 0,
  636. coupon_ab_discount = 0,
  637. money = 0,
  638. goods_list = []
  639. }).
  640. %%彩钻复制机
  641. -record(custom_act_loans, {
  642. money = 0, %%已存
  643. ltime = 0, %%上次领取时间
  644. stime = 0, %%活动开始时间
  645. etime = 0 %%活动结束时间
  646. }).
  647. %%积分拼图
  648. -record(custom_act_slices, {
  649. grades = [],
  650. tasks = [] %[{行,列,num,0/1/2}]
  651. }).
  652. %%积分拼图任务
  653. -record(slice_task, {
  654. suit = 0, %%套件
  655. row = 0, %%行
  656. colu = 0, %%列
  657. mod = 0, %%模块
  658. sub = 0, %%子ID
  659. name = "",
  660. times = 0 %%次数要求
  661. }).
  662. %%抽奖概率展示
  663. -record(act_draw_ratio,{
  664. module = 0,
  665. sub_module = 0,
  666. sub_act = 0,
  667. award_id = 0,
  668. name = "",
  669. goods_name = "",
  670. ratio = 0
  671. }).
  672. %% 三日作战任务奖励配置
  673. -record(custom_act_days_plan_task, {
  674. task_type = 0 %% 任务类型Id
  675. ,task_id = 0 %% 任务Id
  676. ,open_lv = 0 %% 开启等级
  677. ,recommend = 0 %% 推荐度
  678. ,content = 0 %% 任务内容
  679. ,reward = [] %% 任务奖励
  680. }).
  681. %% 三日作战玩家数据
  682. -record(act_days_plan, {
  683. day_list = [] %% 第几天[#day_buy{}]
  684. ,task_stat = [] %% 任务完成度统计[#day_task{}]
  685. }).
  686. %% 三日作战任务进度
  687. -record(days_task, {
  688. task_type = 0 %% 任务类型Id
  689. ,value = 0 %% 任务进度
  690. ,time = 0 %% 最近更新任务进度时间戳
  691. }).
  692. %% 三日作战玩家数据
  693. -record(days_buy, {
  694. day = 0 %% 第几天
  695. ,buy_times = 0 %% 购买次数
  696. ,logs = [] %% 领取任务奖励记录[{TaskTypeId, TaskId}]
  697. }).
  698. %% 人参果树活动数据
  699. -record(custom_act_tree_lottery, {
  700. count = 0 %% 抽奖次数
  701. , next_hit = 0 %% 下次必中
  702. , score = 0 %% 积分
  703. , free_count = 0 %% 免费抽奖次数
  704. }).
  705. %% 合成机个人数据
  706. -record(custom_act_printer_draw, {
  707. draw_list = [], %% 个人解锁数据 [配方id]
  708. collect_list = [] %% 个人收藏数据 [配方id]
  709. }).
  710. %% 获得开启中定制活动
  711. -define(select_opening_custom_act,
  712. <<"select type, subtype, wlv, stime, etime from custom_act_opening">>).
  713. %% 新开定制活动
  714. -define(insert_opening_custom_act,
  715. <<"replace into custom_act_opening(type, subtype, wlv, stime, etime) values(~p, ~p, ~p, ~p, ~p)">>).
  716. %% 更新开启中的定制活动
  717. -define(update_opening_custom_act,
  718. <<"update custom_act_opening set stime = ~p, etime = ~p where type = ~p and subtype = ~p">>).
  719. %% 关闭定制活动
  720. -define(delete_opening_custom_act,
  721. <<"delete from custom_act_opening where type = ~p and subtype = ~p">>).
  722. %% 重新初始化开启中的定制活动,清除旧数据
  723. -define(clear_opening_custom_act,
  724. <<"truncate table custom_act_opening">>).
  725. %% 获得开启中的角色差异化活动
  726. -define(select_opening_custom_act_personal,
  727. <<"select type, subtype, s_time, e_time, time, act_data, red_gift from custom_act_personal where role_id=~p">>).
  728. %% 新增开启的角色差异化活动
  729. -define(insert_opening_custom_act_personal,
  730. <<"replace into custom_act_personal (role_id,type,subtype,s_time,e_time,time,act_data,red_gift) values (~p, ~p, ~p, ~p, ~p, ~p,'~ts','~ts')">>).
  731. %% 更新开启的角色差异化活动
  732. -define(update_opening_custom_act_personal,
  733. <<"update custom_act_opening set stime = ~p, etime = ~p where type = ~p and subtype = ~p">>).
  734. %% 活动结束,清理数据
  735. -define(delete_opening_custom_act_personal,
  736. <<"delete from `custom_act_personal` where `type`=~p and `subtype`=~p">>).
  737. %% 某个玩家活动结束,清理数据
  738. -define(delete_opening_custom_act_rol_personal,
  739. <<"delete from `custom_act_personal` where `role_id`=~p and `type`=~p and `subtype`=~p">>).
  740. -define(select_custom_act_personal_data,
  741. <<"select data from custom_act_personal_data where rid=~p">>).
  742. -define(update_custom_act_personal_data,
  743. <<"replace into `custom_act_personal_data`(`rid`, `data`) values(~p, '~ts')">>).
  744. %% 备注 custom_act_receive_reward表不做清理,通过比较utime判断数据的有效性
  745. -define(select_custom_act_reward_receive,
  746. <<"select type, subtype, grade, receive_times, utime from custom_act_receive_reward where role_id = ~p">>).
  747. -define(insert_custom_act_reward_receive,
  748. <<"insert into custom_act_receive_reward(role_id, type, subtype, grade, receive_times, utime) values (~p, ~p, ~p, ~p, ~p, ~p)">>).
  749. -define(update_custom_act_reward_receive,
  750. <<"update custom_act_receive_reward set receive_times = ~p, utime = ~p where role_id = ~p and type = ~p and subtype = ~p and grade = ~p">>).
  751. -define(delete_custom_act_reward_receive_by_stype,
  752. <<"delete from custom_act_receive_reward where type = ~p and subtype = ~p">>).
  753. %% --------------------------跨服定制活动相关--------------------------
  754. -define(select_opening_kf_custom_act,
  755. <<"select type, subtype, wlv, stime, etime from kf_custom_act_opening">>).
  756. -define(insert_opening_kf_custom_act,
  757. <<"insert into kf_custom_act_opening(type, subtype, wlv, stime, etime) values(~p, ~p, ~p, ~p, ~p)">>).
  758. -define(update_opening_kf_custom_act,
  759. <<"update kf_custom_act_opening set stime = ~p, etime = ~p where type = ~p and subtype = ~p">>).
  760. -define(delete_opening_kf_custom_act,
  761. <<"delete from kf_custom_act_opening where type = ~p and subtype = ~p">>).
  762. -define(clear_opening_kf_custom_act,
  763. <<"truncate table kf_custom_act_opening">>).
  764. %% --------------------------定制活动保存的统计数据相关--------------------------
  765. %% 查询定制活动保存的统计数据
  766. -define(SQL_SELECT_CUSTOM_ACT_DATA, <<"select `type`, `subtype`, `time`, `act_data`, `red_gift` from
  767. `custom_act_data` where `rid`=~p">>).
  768. %% 查询定制活动保存的统计数据
  769. -define(SQL_SELECT_CUSTOM_ACT_DATA_2, <<"select `type`, `subtype`, `time`, `act_data`, `red_gift` from
  770. `custom_act_data` where `rid`=~p and `type`=~p and `subtype`=~p">>).
  771. -define(SQL_SAVE_CUSTOM_ACT_DATA, <<"replace into `custom_act_data`(
  772. `rid`, `type`, `subtype`, `time`, `act_data`, `red_gift`) values(~p, ~p, ~p, ~p, '~ts', '~ts')">>).
  773. -define(SQL_UPDATE_CUSTOM_ACT_RED_GIFT, <<"update `custom_act_data` set `red_gift` = '~ts' where
  774. `rid` = ~p and `type` = ~p and `subtype` = ~p">>).
  775. %% 清除定制活动保存的统计数据
  776. %% 根据定制活动主次类型删除定制活动保存的统计数据
  777. -define(SQL_DELETE_CUSTOM_ACT_DATA_1, <<"delete from `custom_act_data` where `type`=~p and `subtype`=~p">>).
  778. %% 根据定制活动主次类型和特定玩家删除定制活动保存的统计数据
  779. -define(SQL_DELETE_CUSTOM_ACT_DATA_2, <<"delete from `custom_act_data` where `rid`=~p and `type`=~p and `subtype`=~p">>).