源战役
No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.

210 líneas
12 KiB

  1. %%%---------------------------------------------------------------------
  2. %%% 拍卖行相关record定义
  3. %%%---------------------------------------------------------------------
  4. %% 拍卖配置
  5. -record (base_auction_goods, {
  6. goods_id = 0, %% 物品id
  7. server_lv_min = 0, %% 最小世界等级
  8. server_lv_max = 0, %% 最大世界等级
  9. type = 0, %% 商品大类
  10. guild_price_type = 0, %% 公会拍卖价格类型: ?TYPE_GOLD|?TYPE_BGOLD
  11. guild_base_price = 0, %% 公会拍卖基础价
  12. guild_add_price = 0, %% 公会拍卖单次加价
  13. guild_one_price = 0, %% 公会拍卖一口价
  14. world_price_type = 0, %% 世界拍卖价格类型: ?TYPE_GOLD|?TYPE_BGOLD
  15. world_base_price = 0, %% 世界拍卖基础价
  16. world_add_price = 0, %% 世界拍卖单次加价
  17. world_one_price = 0, %% 世界拍卖一口价
  18. personal_base_price = 0, %% 个人拍卖价格
  19. personal_one_price = 0, %% 个人拍卖一口价
  20. %% 以下配置字段待删除
  21. gold_type = 0, %% 消耗钻石类型
  22. price_add_ratio = 0, %% 竞拍加价比例(百分制)
  23. server_lv = 0, %% 服务器等级
  24. price_types = [], %% 世界价格类型 [{开服起始天数, 开服结束天数, 价格类型(1钻石,2绑钻)}]
  25. world_price = 0 %% 世界拍卖价格
  26. }).
  27. %% 系统拍卖时间配置
  28. -record (base_auction_time, {
  29. id = 0, %% 系统id
  30. time = {0,0,0}, %% 开始时间{小时,分钟,秒}
  31. sys_goods = [] %% 系统物品[{物品类型id,数量}...]
  32. }).
  33. %% 系统拍卖活动
  34. -record (base_auction_act, {
  35. opday_slot = {0,0}, %% 开服天数{开服起始天数,开服结束天数}
  36. cfg_id = 0, %% 场次ID
  37. sys_goods = [], %% 系统物品[{物品类型id,数量,概率}...]
  38. start_time = {0,0,0}, %% 开始时间{小时,分钟,秒}
  39. end_time = {0,0,0} %% 结束时间{小时,分钟,秒}
  40. }).
  41. %% 拍卖常量配置
  42. -record(base_auction_keyvalues, {
  43. id = 0, %% 常量Id
  44. value = 0, %% 常量值
  45. about = "" %% 常量描述
  46. }).
  47. %% -------------------------------- %% --------------------------------
  48. -record (status_auction, {
  49. auto_id = 0, %% 拍卖确认框提示id
  50. goods_list = [] %% 待确认拍卖物[{id, {type,goods_id,num}}] 注:普通物品id为auto_id,英灵装备id为物品唯一id
  51. }).
  52. %% 拍卖场次
  53. -record (auction, {
  54. auction_id = 0, %% 拍卖会场次
  55. auction_type= 0, %% 拍卖类型
  56. cfg_id = 0, %% 拍卖会配置Id
  57. module_id = 0, %% 功能id
  58. auction_status=0, %% 拍卖会状态
  59. time = 0, %% 拍卖会开始时间戳
  60. last_time = 0, %% 场次更新时间
  61. guild_award_map = #{}, %% 公会奖励信息 #{guild_id => award_status}
  62. delay_guild_map = #{}, %% 竞价延时的帮派 #{guild_id => {delay_num, endtime} }
  63. to_world_list = [], %% 延时流入世界的物品(同一场拍卖不同时间结束的未拍卖物品,统一流入世界)
  64. estimate_bonus_map= #{}, %% 各公会预计分红总额 #{guild_id => estimate_bonus }
  65. act_join_num_map= #{}, %% 对应活动开启时各公会参与人数 #{guild_id => join_num }
  66. goods_num = 0 %% 拍卖物数量,与#auction_goods.goods_num不同 注:用于个人拍卖,统计一场拍卖剩余拍卖物数量
  67. }).
  68. %% 拍卖物品
  69. -record (auction_goods, {
  70. goods_id = 0, %% 拍卖物唯一id
  71. auction_id = 0, %% 拍卖会场次
  72. goods_type = 0, %% 物品类型id
  73. goods_num = 0, %% 物品数量
  74. guild_id = 0, %% 公会id
  75. player_id = 0, %% 竞拍物品拥有者id
  76. auction_type= 0, %% 拍卖类型 :1公会拍卖,2世界拍卖,3个人拍卖
  77. cfg_id = 0, %% 拍卖会配置Id
  78. type = 0, %% 物品类目 :用于客户端分类显示,如装备、称号
  79. module_id = 0, %% 功能id :0为系统拍卖功能id,公会拍卖不为0
  80. goods_status= 0, %% 拍卖物状态 :1拍卖中,2已拍出
  81. bonus_tax_rate = 0, %% 分红税率 :百分制,90表示90%用于扣税,剩余10%分红
  82. next_price = 0, %% 下一次竞价 :无人竞价时,读取交易基准价
  83. now_price = 0, %% 当前竞价 :也即当前拍得最高竞价
  84. start_time = 0, %% 开始拍卖时间
  85. info_list = [], %% 拍卖详细记录 [#auction_info{}|...]
  86. delay_num = 0 %% 延时次数
  87. }).
  88. %% 拍卖详细记录
  89. -record (auction_info, {
  90. player_id = 0, %% 竞拍人id
  91. price_type = 0, %% 竞拍类型
  92. price = 0, %% 竞价
  93. price_list = [], %% 竞价详细 [{?TYPE_BGOLD, 0, Num},{?TYPE_GOLD, 0, Num}]
  94. time = 0 %% 更新时间
  95. }).
  96. %% 拍卖记录
  97. -record (auction_log, {
  98. module_id = 0, %% 功能id
  99. goods_type = 0, %% 物品类型id
  100. goods_num = 0, %% 物品数量
  101. money_type = 0, %% 价格类型
  102. price = 0, %% 竞价
  103. time = 0, %% 更新时间
  104. to_world = 0 %% 是否流拍至世界:0否,1是
  105. }).
  106. %% 拍卖状态数据
  107. -record (auction_state, {
  108. finish_init = 0, %% 是否完成数据化 0否,1是
  109. auction_map = #{}, %% 拍卖会场次 #{ auction_id => #auction{} }
  110. goods_map = #{}, %% 拍卖物品 #{ goods_id => #auction_goods{} }
  111. guild_map = #{}, %% 公会拍卖目录 #{ guild_id => [{module_id, [goods_id] } |...] }
  112. world_map = #{}, %% 世界拍卖目录 #{ type => [goods_id|...] }
  113. guild_log_map = #{}, %% 公会拍卖记录 #{ guild_id => [#auction_log{}|...] } 注:会日清
  114. world_log_list= [], %% 世界拍卖记录 [ #auction_log{}|...] 注:会日清
  115. join_log_map = #{} %% 活动参与日志 #{ module_id => #{player_id => guild_id} } 注:会日清
  116. }).
  117. %% --------------------------------- %% ---------------------------------
  118. %%% @comment DEBUG_CFG
  119. %% --------------------------------- %% ---------------------------------
  120. % -define(DEBUG_CFG, true).
  121. -ifdef(DEBUG_CFG).
  122. -define(GUILD_NOTICE1_BEFORE, 5*60). %% 公会拍卖预告提前时间(秒)
  123. -define(WORLD_NOTICE1_BEFORE, 5*60). %% 世界拍卖预告提前时间(秒)
  124. -define(GUILD_AUCTION_DURATION, 25*60). %% 公会拍卖时长(秒)
  125. -define(WORLD_AUCTION_DURATION, 6*60*60). %% 世界拍卖时长(秒)
  126. -define(PERSONAL_AUCTION_DURATION,4*60*60). %% 个人拍卖时长(秒)
  127. -else.
  128. -define(GUILD_NOTICE1_BEFORE, 5*60). %% 公会拍卖预告提前时间(秒)
  129. -define(WORLD_NOTICE1_BEFORE, 5*60). %% 世界拍卖预告提前时间(秒)
  130. -define(GUILD_AUCTION_DURATION, 25*60). %% 公会拍卖时长(秒)
  131. -define(WORLD_AUCTION_DURATION, 6*60*60). %% 世界拍卖时长(秒)
  132. -define(PERSONAL_AUCTION_DURATION,4*60*60). %% 个人拍卖时长(秒)
  133. -endif.
  134. %% ------------------------------- 常量配置 %% -------------------------------
  135. -define(AUCTION_KV(Id), lib_auction_data:get_keyvalues(Id)).
  136. %% 流拍分红折扣(百分制,60表示只取拍出分红的60%)
  137. -define(AUCTION_KV_NO_SELL_AWARD_RATIO, ?AUCTION_KV(1)).
  138. -define(ADD_PERSONAL_CHARGE, 0.15). %% 个人拍卖手续费
  139. -define(CLOSE_AUCTION_NORMAL, 1). %% 关闭类型:时间到正常结束
  140. -define(CLOSE_AUCTION_FORCE, 2). %% 关闭类型:秘籍强制结束
  141. %% ----------------------------- auction_type %% -----------------------------
  142. -define(AUCTION_GUILD, 1). %% 拍卖会类型:公会拍卖
  143. -define(AUCTION_WORLD, 2). %% 拍卖会类型:世界拍卖
  144. -define(AUCTION_PERSONAL, 3). %% 拍卖会类型:个人拍卖
  145. %% ----------------------- #auction_info.price_type %% -----------------------
  146. -define(PRICE_TYPE_AUCTION, 1). %% 竞拍价格类型:普通竞价
  147. -define(PRICE_TYPE_ONE_PRICE, 2). %% 竞拍价格类型:一口价
  148. -define(PRICE_TYPE_ADD_PRICE, 3). %% 竞拍价格类型:加价 注:当前是出价最高者才可以发加价类型
  149. %% ------------------------ #auction.auction_status %% -----------------------
  150. -define(AUCTION_STATUS_NOTICE1, 1). %% 拍卖会状态:第一轮预告
  151. -define(AUCTION_STATUS_NOTICE2, 2). %% 拍卖会状态:第二轮预告
  152. % -define(AUCTION_STATUS_NOTICE3, 3). %% 拍卖会状态:第三轮预告
  153. -define(AUCTION_STATUS_BEGIN, 4). %% 拍卖会状态:开拍
  154. %% ---------------------- #auction_goods.goods_status %% ---------------------
  155. -define(GOODS_STATUS_SELL, 1). %% 拍卖物状态:待拍出
  156. -define(GOODS_STATUS_SELLOUT, 2). %% 拍卖物状态:已拍出
  157. %% ------------------------ #auction.cfg_id %% -------------------------------
  158. -define(DEFAULT_CFG_ID, 0). %% 默认cfg_id为0
  159. -define (SQL_AUCTION_SELECT, <<"select `auction_id`, `auction_type`, `cfg_id`, `module_id`, `auction_status`, `time`, `last_time` from `auction` where 1=1">>).
  160. -define (SQL_AUCTION_INFO_SELECT, <<"select `goods_id`, `player_id`, `price_type`, `price`, `price_list`, `time` from `auction_info` where 1=1">>).
  161. -define (SEL_AUCTION_GOODS_SELECT, <<"select `goods_id`, `auction_id`, `goods_type`, `goods_num`, `type`, `auction_type`, `cfg_id`, `guild_id`, `player_id`, `module_id`, `goods_status`, `bonus_tax_rate`, `start_time` from `auction_goods` where 1=1">>).
  162. -define (SQL_AUCTION_LOG_SELECT, <<"select `auction_type`, `module_id`, `guild_id`, `goods_type`, `goods_num`, `money_type`, `price`, `time`, `to_world` from `auction_log` where 1=1">>).
  163. -define (SQL_AUCTION_GUILD_AWARD_SELECT,<<"select `auction_id`, `guild_id`, `award_status` from `auction_guild_award` where 1=1">>).
  164. -define (SQL_AUCTION_INSERT, <<"insert into `auction`(`auction_id`, `auction_type`, `cfg_id`, `module_id`, `auction_status`, `time`, `last_time`) values(~p, ~p, ~p, ~p, ~p, ~p, ~p)">>).
  165. -define (SEL_AUCTION_GOODS_INSERT, <<"insert into `auction_goods`(`goods_id`, `auction_id`, `goods_type`, `goods_num`, `type`, `auction_type`, `cfg_id`, `guild_id`, `player_id`, `module_id`, `goods_status`, `bonus_tax_rate`, `start_time`) values(~p, ~p, ~p, ~p, ~p, ~p, ~p, ~p, ~p, ~p, ~p, ~p, ~p)">>).
  166. -define (SQL_AUCTION_INFO_INSERT, <<"insert into `auction_info`(`goods_id`, `auction_id`, `player_id`, `price_type`, `price`, `price_list`, `time`) values(~p, ~p, ~p, ~p, ~p, '~s', ~p)">>).
  167. -define (SQL_AUCTION_LOG_INSERT, <<"insert into `auction_log`(`auction_type`, `module_id`, `guild_id`, `goods_type`, `goods_num`, `money_type`, `price`, `time`, `to_world`) values(~p, ~p, ~p, ~p, ~p, ~p, ~p, ~p, ~p)">>).
  168. -define (SQL_AUCTION_GUILD_AWARD_INSERT,<<"insert into `auction_guild_award`(`auction_id`, `guild_id`, `award_status`, `time`) values(~p, ~p, ~p, ~p) ">>).
  169. -define (SQL_AUCTION_UPDATE, <<"update `auction` set `auction_status`=~p, `last_time` =~p where `auction_id` = ~p">>).
  170. -define (SQL_AUCTION_GOODS_UPDATE, <<"update `auction_goods` set `goods_status`=~p, `time` =~p where `goods_id` = ~p">>).
  171. -define (SQL_AUCTION_DELETE, <<"delete from `auction` where `auction_id` = ~p">>).
  172. -define (SQL_AUCTION_INFO_DELETE, <<"delete from `auction_info` where `auction_id` = ~p">>).
  173. -define (SEL_AUCTION_GOODS_DELETE, <<"delete from `auction_goods` where `auction_id` = ~p">>).
  174. -define (SQL_AUCTION_LOG_TRUNCATE, <<"truncate table auction_log">>).
  175. -define (SQL_AUCTION_GUILD_AWARD_DELETE,<<"delete from `auction_guild_award` where `auction_id` = ~p">>).
  176. -define (SEL_AUCTION_GOODS_DELETE2, <<"delete from `auction_goods` where `goods_id` = ~p">>).
  177. -define (SQL_AUCTION_INFO_DELETE2, <<"delete from `auction_info` where `goods_id` = ~p">>).
  178. -define (SQL_JOIN_LOG_SELECT, <<"select `player_id`, `guild_id` from `join_log` where `module_id` = ~p">>).
  179. -define (SQL_JOIN_LOG_TRUNCATE, <<"truncate table `join_log`">>).
  180. -define (SQL_JOIN_LOG_DELETE_GUILD, <<"delete from `join_log` where guild_id =~p">>).
  181. -define (SQL_JOIN_LOG_DELETE_MODULE, <<"delete from `join_log` where `module_id` = ~p">>).
  182. -define (SQL_JOIN_LOG_DELETE_PLAYER, <<"delete from `join_log` where player_id =~p">>).