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

190 lines
8.9 KiB

  1. %% ---------------------------------------------------------
  2. %% Author: xyj
  3. %% Email: 156702030@qq.com
  4. %% Created: 2012-3-19
  5. %% Description: 物品掉落ets
  6. %% --------------------------------------------------------
  7. -define(BROAD_NONE, 0). %% 不广播,掉落只展示给玩家自己看
  8. -define(BROAD_SCENE, 1). %% 场景广播
  9. %% 分配方式
  10. -define(ALLOC_ONESELF, 1). %% 分配方式:个人独占
  11. -define(ALLOC_RAND, 2). %% 分配方式:随机分配
  12. -define(ALLOC_EQUAL, 3). %% 分配方式:均等分配
  13. -define(ALLOC_HANDSPEED,4). %% 分配方式:先到先得
  14. %% 归属类型
  15. -define(DROP_HURT_MAX, 0). %% 归属类型:伤害最高获得
  16. -define(DROP_FIRST_ATT, 1). %% 归属类型:第一击获得
  17. -define(DROP_LAST_ATT, 2). %% 归属类型:最后一击获得
  18. -define(DROP_NO_ONE, 3). %% 归属类型:无归属
  19. -define(DROP_TYPE_RAND, 0). %% 随机权重掉落
  20. -define(DROP_TYPE_FIXED, 1). %% 固定掉落
  21. -define(DROP_TYPE_TASK, 2). %% 任务物品
  22. %% 掉落限制计算
  23. -define(DROP_LIMIT_GOODID, 0). %% 单个物品ID玩家限制
  24. -define(DROP_LIMIT_ID_SERVER, 1). %% 单个物品ID全服限制
  25. -define(DROP_ALIVE_TIME, 300). %% 掉落包存活时间
  26. -define(DROP_PROTECT_TIME, 120). %% 掉落包拾取保护时间
  27. -define(DROP_BLOG_CALC_TIME, 5). %% 掉落归属广播时间
  28. %% 掉落来源
  29. -define(DROP_ORIGIN_REWARD_BOSS, 1). %% 赏金BOSS
  30. -define(DROP_ORIGIN_DESERTED_BOSS, 2). %% 星域BOSS
  31. -define(DROP_ORIGIN_REWARD_BOSS_UNSHARED, 3). %% 赏金BOSS独享
  32. -define(DROP_ORIGIN_DESERTED_BOSS_UNSHARED, 4). %% 星域BOSS独享
  33. -define(DROP_ORIGIN_PERSONAL_BOSS, 5). %% 个人BOSS
  34. -define(DROP_ORIGIN_CRUSADE_BOSS, 6). %% 讨伐副本BOSS
  35. -define(DROP_ORIGIN_HOME_BOSS, 7). %% BOSS之家
  36. %% 掉落总来源分类
  37. -define(DROP_CRUSADE_BOSS, 1). %% 讨伐副本
  38. -define(DROP_REWARD_BOSS, 2). %% 赏金BOSS:包括独享BOSS
  39. -define(DROP_PERSONAL_BOSS, 3). %% 个人BOSS
  40. -define(DROP_DESERTED_BOSS, 4). %% 星域BOSS:包括独享BOSS
  41. %% 表明是合并次数掉落的key
  42. -define(DROP_MERGE_MULTI_COUNT, drop_merge_multi_count).
  43. %% 掉落组别定义
  44. -record(drop, {
  45. list = [], %% 掉落包列表 [{掉落包ID, 掉落个数}]
  46. weight = 0 %% 掉落权重
  47. }).
  48. %% 掉落规则
  49. -record(ets_drop_rule, {
  50. mon_id=0, %% 怪物编号
  51. alloc = 4, %% 分配方式:1队长独占,2队伍随机,3队伍均等,4归属拾取
  52. min_lv = 0, %% 最小等级
  53. max_lv = 0, %% 最大等级
  54. bltype = 0, %% 归属类型:分配方式4:启作用 0:伤害最高获得 1:第一击获得 2:最后一击获得 3:无归属;配置“无归属”后所有玩家都可以拾取列表中的道具
  55. task=0, %% 是否有任务物品,0为无,1为有
  56. broad=0, %% 广播场景,0不广播,1队伍广播,2场景广播
  57. % drop_list=[], %% 掉落列表[1和2对应的所有掉落物品id] 注:本字段已删
  58. task_drop_list=[], %% 任务掉落列表 [1和2对应的任务掉落物品id]
  59. drop_rule=[], %% 掉落规则1:1+2:1=250; 3:1=750 = [ {[{1,1}, {2, 1}], 250}, {[{3,1}], 750} ] %% 默认概率是1000:(权重和随机结合)
  60. drop_range={0,0} %% 掉落范围 {x轴像素, y轴像素}; 注:{0,0}表示不做范围限制
  61. }).
  62. %% 物品掉落规则
  63. -record(ets_drop_goods, {
  64. id=0, %% 编号
  65. type = 0, %% 类型:0随机权重掉落;1固定掉落;2 任务物品
  66. drop_thing_type = 0, %% 掉落物品类型(?TYPE_GOODS ?TYPE_COIN)
  67. list_id=0, %% 列表ID
  68. goods_id=0, %% 物品类型ID
  69. ratio=0, %% 概率
  70. career_ratio_list = [], %% 职业概率列表 [{职业, 概率}]
  71. origin_ratio = 0, %% 初始概率
  72. min_num=0, %% 最低掉落数
  73. num=0, %% 最大数量
  74. cond_list = [], %% 条件列表 [{lv, 最小等级, 最大等级}, {turn, [转生数1,转生数2]} ]
  75. get_way = 0, %% 获得方式:0入背包,1放入拍卖行
  76. repeat = 1, %% 是否循环利用(放回随机)
  77. bind=0, %% 绑定状态
  78. notice=[], %% 传闻,频道列表如[世界(1),家族(2)...]
  79. hour_start=0, %% 时间段限制,0为无
  80. hour_end=0, %% 时间段限制,0为无
  81. time_start=0, %% 日期限制,0为无
  82. time_end=0, %% 日期限制,0为无
  83. replace_list = [], %% 职业替换列表 [{职业, 物品类型ID}]
  84. drop_icon = "", %% 掉落在地上显示的图标
  85. drop_leff = "" %% 掉落在地上显示的光效
  86. }).
  87. %% 掉落上限
  88. -record(base_drop_limit, {
  89. goods_id = 0, %% 掉落物品id
  90. drop_thing_type = 0, %% 掉落类型
  91. limit_type = 0, %% 限制类型:0:玩家单个物品Id限制;1:全服单个物品Id限制
  92. limit_day = 0, %% 掉落周期
  93. limit_num = 0 %% 限制数量品
  94. }).
  95. %% 怪物类型活动动额外掉落
  96. -record(base_mon_type_drop, {
  97. act_id = 0, %% 活动主id
  98. sub_id = 0, %% 主动子id
  99. mon_type = 0, %% 怪物类型
  100. slv = 0, %% 开始等级
  101. elv = 0, %% 结束等级
  102. drop_list=[], %% 掉落列表[1和2对应的所有掉落物品id]
  103. drop_rule=[] %% 掉落规则1:1+2:1=250; 3:1=750 = [ {[{1,1}, {2, 1}], 250}, {[{3,1}], 750} ] %% 默认概率是1000:(权重和随机结合)
  104. }).
  105. %% 物品掉落生成表
  106. -record(ets_drop, {
  107. id=0, %% 编号
  108. player_id=0, %% 角色ID
  109. team_id=0, %% 组队ID
  110. copy_id=0, %% 副本ID
  111. scene=0, %% 场景ID
  112. scene_pool_id=0, %% 场景进程id
  113. drop_thing_type = 0, %% 掉落物品类型(?TYPE_GOODS,?TYPE_COIN)
  114. drop_goods=[], %% 掉落物品[[物品类型ID,物品类型,物品数量,物品品质]...]
  115. goods_id=0, %% 掉落物品 - 物品类型ID
  116. min_num=0, %% 最低数量
  117. num=0, %% 最大数量
  118. get_way = 0, %% 获得方式:0入背包,1放入拍卖行
  119. bind=0, %% 绑定状态
  120. notice=[], %% 传闻,频道列表如[世界(1),家族(2)...]
  121. broad=0, %% 广播场景,0不广播,1队伍广播,2场景广播
  122. expire_time=0, %% 过期时间
  123. mon_id = 0, %% 怪物类型ID
  124. mon_name = <<>>, %% BOSS怪物名字
  125. x = 0, %% 掉落坐标
  126. y = 0,
  127. drop_icon = "", %% 掉落图标
  128. drop_leff = "", %% 掉落光效 0:没有光效 >0:光效id
  129. hurt_id_list = [], %% 造成伤害玩家ID列表
  130. alloc = 0, %% 掉落类型
  131. bltype = 0 %% 归属类型
  132. , origin = 0 %% 掉落来源
  133. }).
  134. %% 怪物参数
  135. -record(mon_args, {
  136. id = 0, %% 怪物唯一id
  137. mid = 0, %% 怪物配置id
  138. kind = 0, %% 怪物类型
  139. boss = 0 , %% BOSS类型
  140. lv = 0, %% 等级
  141. scene = 0, %% 场景
  142. scene_pool_id = 0, %% 场景进程池id
  143. copy_id = 0, %% copy_id
  144. x = 0, %% x坐标
  145. y = 0, %% y坐标
  146. ctime = 0, %% 怪物创建时间
  147. name = "", %% 怪物名字
  148. exp = 0, %% 怪物经验
  149. origin = 0 %% 怪物来源
  150. }).
  151. %% 玩家参数
  152. -record(ps_args, {
  153. role_id = 0,
  154. name = "",
  155. lv = 0,
  156. cell_num = [], %% 背包格子列表[{背包位置, 空格子数}]
  157. scene = 0,
  158. pool_id = 0,
  159. copy_id = 0,
  160. x = 0,
  161. y = 0,
  162. hp = 0,
  163. team_id = 0,
  164. extra_data = #{}
  165. }).
  166. %% 掉落条件参数
  167. -record(cond_args, {
  168. lv = 0, %% 等级
  169. career = 0, %% 职业
  170. turn = 0, %% 转生数
  171. turn_task_id = 0 %% 当前转生任务id
  172. }).