%% ---------------------------------------------------------
|
|
%% 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
|
|
}).
|