%% --------------------------------------------------------- %% Author: xyj %% Email: 156702030@qq.com %% Created: 2012-3-19 %% Description: 物品掉落ets %% -------------------------------------------------------- -define(BROAD_NONE, 0). %% 不广播,掉落只展示给玩家自己看 -define(BROAD_SCENE, 1). %% 场景广播 %% 分配方式 -define(ALLOC_ONESELF, 1). %% 分配方式:个人独占 -define(ALLOC_RAND, 2). %% 分配方式:随机分配 -define(ALLOC_EQUAL, 3). %% 分配方式:均等分配 -define(ALLOC_HANDSPEED,4). %% 分配方式:先到先得 %% 归属类型 -define(DROP_HURT_MAX, 0). %% 归属类型:伤害最高获得 -define(DROP_FIRST_ATT, 1). %% 归属类型:第一击获得 -define(DROP_LAST_ATT, 2). %% 归属类型:最后一击获得 -define(DROP_NO_ONE, 3). %% 归属类型:无归属 -define(DROP_TYPE_RAND, 0). %% 随机权重掉落 -define(DROP_TYPE_FIXED, 1). %% 固定掉落 -define(DROP_TYPE_TASK, 2). %% 任务物品 %% 掉落限制计算 -define(DROP_LIMIT_GOODID, 0). %% 单个物品ID玩家限制 -define(DROP_LIMIT_ID_SERVER, 1). %% 单个物品ID全服限制 -define(DROP_ALIVE_TIME, 300). %% 掉落包存活时间 -define(DROP_PROTECT_TIME, 120). %% 掉落包拾取保护时间 -define(DROP_BLOG_CALC_TIME, 5). %% 掉落归属广播时间 %% 掉落来源 -define(DROP_ORIGIN_REWARD_BOSS, 1). %% 赏金BOSS -define(DROP_ORIGIN_DESERTED_BOSS, 2). %% 星域BOSS -define(DROP_ORIGIN_REWARD_BOSS_UNSHARED, 3). %% 赏金BOSS独享 -define(DROP_ORIGIN_DESERTED_BOSS_UNSHARED, 4). %% 星域BOSS独享 -define(DROP_ORIGIN_PERSONAL_BOSS, 5). %% 个人BOSS -define(DROP_ORIGIN_CRUSADE_BOSS, 6). %% 讨伐副本BOSS -define(DROP_ORIGIN_HOME_BOSS, 7). %% BOSS之家 %% 掉落总来源分类 -define(DROP_CRUSADE_BOSS, 1). %% 讨伐副本 -define(DROP_REWARD_BOSS, 2). %% 赏金BOSS:包括独享BOSS -define(DROP_PERSONAL_BOSS, 3). %% 个人BOSS -define(DROP_DESERTED_BOSS, 4). %% 星域BOSS:包括独享BOSS %% 表明是合并次数掉落的key -define(DROP_MERGE_MULTI_COUNT, drop_merge_multi_count). %% 掉落组别定义 -record(drop, { list = [], %% 掉落包列表 [{掉落包ID, 掉落个数}] weight = 0 %% 掉落权重 }). %% 掉落规则 -record(ets_drop_rule, { mon_id=0, %% 怪物编号 alloc = 4, %% 分配方式:1队长独占,2队伍随机,3队伍均等,4归属拾取 min_lv = 0, %% 最小等级 max_lv = 0, %% 最大等级 bltype = 0, %% 归属类型:分配方式4:启作用 0:伤害最高获得 1:第一击获得 2:最后一击获得 3:无归属;配置“无归属”后所有玩家都可以拾取列表中的道具 task=0, %% 是否有任务物品,0为无,1为有 broad=0, %% 广播场景,0不广播,1队伍广播,2场景广播 % drop_list=[], %% 掉落列表[1和2对应的所有掉落物品id] 注:本字段已删 task_drop_list=[], %% 任务掉落列表 [1和2对应的任务掉落物品id] drop_rule=[], %% 掉落规则1:1+2:1=250; 3:1=750 = [ {[{1,1}, {2, 1}], 250}, {[{3,1}], 750} ] %% 默认概率是1000:(权重和随机结合) drop_range={0,0} %% 掉落范围 {x轴像素, y轴像素}; 注:{0,0}表示不做范围限制 }). %% 物品掉落规则 -record(ets_drop_goods, { id=0, %% 编号 type = 0, %% 类型:0随机权重掉落;1固定掉落;2 任务物品 drop_thing_type = 0, %% 掉落物品类型(?TYPE_GOODS ?TYPE_COIN) list_id=0, %% 列表ID goods_id=0, %% 物品类型ID ratio=0, %% 概率 career_ratio_list = [], %% 职业概率列表 [{职业, 概率}] origin_ratio = 0, %% 初始概率 min_num=0, %% 最低掉落数 num=0, %% 最大数量 cond_list = [], %% 条件列表 [{lv, 最小等级, 最大等级}, {turn, [转生数1,转生数2]} ] get_way = 0, %% 获得方式:0入背包,1放入拍卖行 repeat = 1, %% 是否循环利用(放回随机) bind=0, %% 绑定状态 notice=[], %% 传闻,频道列表如[世界(1),家族(2)...] hour_start=0, %% 时间段限制,0为无 hour_end=0, %% 时间段限制,0为无 time_start=0, %% 日期限制,0为无 time_end=0, %% 日期限制,0为无 replace_list = [], %% 职业替换列表 [{职业, 物品类型ID}] drop_icon = "", %% 掉落在地上显示的图标 drop_leff = "" %% 掉落在地上显示的光效 }). %% 掉落上限 -record(base_drop_limit, { goods_id = 0, %% 掉落物品id drop_thing_type = 0, %% 掉落类型 limit_type = 0, %% 限制类型:0:玩家单个物品Id限制;1:全服单个物品Id限制 limit_day = 0, %% 掉落周期 limit_num = 0 %% 限制数量品 }). %% 怪物类型活动动额外掉落 -record(base_mon_type_drop, { act_id = 0, %% 活动主id sub_id = 0, %% 主动子id mon_type = 0, %% 怪物类型 slv = 0, %% 开始等级 elv = 0, %% 结束等级 drop_list=[], %% 掉落列表[1和2对应的所有掉落物品id] drop_rule=[] %% 掉落规则1:1+2:1=250; 3:1=750 = [ {[{1,1}, {2, 1}], 250}, {[{3,1}], 750} ] %% 默认概率是1000:(权重和随机结合) }). %% 物品掉落生成表 -record(ets_drop, { id=0, %% 编号 player_id=0, %% 角色ID team_id=0, %% 组队ID copy_id=0, %% 副本ID scene=0, %% 场景ID scene_pool_id=0, %% 场景进程id drop_thing_type = 0, %% 掉落物品类型(?TYPE_GOODS,?TYPE_COIN) drop_goods=[], %% 掉落物品[[物品类型ID,物品类型,物品数量,物品品质]...] goods_id=0, %% 掉落物品 - 物品类型ID min_num=0, %% 最低数量 num=0, %% 最大数量 get_way = 0, %% 获得方式:0入背包,1放入拍卖行 bind=0, %% 绑定状态 notice=[], %% 传闻,频道列表如[世界(1),家族(2)...] broad=0, %% 广播场景,0不广播,1队伍广播,2场景广播 expire_time=0, %% 过期时间 mon_id = 0, %% 怪物类型ID mon_name = <<>>, %% BOSS怪物名字 x = 0, %% 掉落坐标 y = 0, drop_icon = "", %% 掉落图标 drop_leff = "", %% 掉落光效 0:没有光效 >0:光效id hurt_id_list = [], %% 造成伤害玩家ID列表 alloc = 0, %% 掉落类型 bltype = 0 %% 归属类型 , origin = 0 %% 掉落来源 }). %% 怪物参数 -record(mon_args, { id = 0, %% 怪物唯一id mid = 0, %% 怪物配置id kind = 0, %% 怪物类型 boss = 0 , %% BOSS类型 lv = 0, %% 等级 scene = 0, %% 场景 scene_pool_id = 0, %% 场景进程池id copy_id = 0, %% copy_id x = 0, %% x坐标 y = 0, %% y坐标 ctime = 0, %% 怪物创建时间 name = "", %% 怪物名字 exp = 0, %% 怪物经验 origin = 0 %% 怪物来源 }). %% 玩家参数 -record(ps_args, { role_id = 0, name = "", lv = 0, cell_num = [], %% 背包格子列表[{背包位置, 空格子数}] scene = 0, pool_id = 0, copy_id = 0, x = 0, y = 0, hp = 0, team_id = 0, extra_data = #{} }). %% 掉落条件参数 -record(cond_args, { lv = 0, %% 等级 career = 0, %% 职业 turn = 0, %% 转生数 turn_task_id = 0 %% 当前转生任务id }).