%%%------------------------------------------------------------------- %%% @author liushl %%% @doc %%% 本服BOSS头文件 %%% @end %%%------------------------------------------------------------------- -author("liushl"). %% BOSS类型 读怪物头文件的BOSS类型 -define(WORLD_BOSS_SHIELD_AWARD_TIME, 11). %% 护盾奖励有效期 %% 保护时间 %% 1>类型 -define(REWARD_BOSS_PROTECT_TIME, 1). %% 赏金boss -define(DESERTED_BOSS_PROTECT_TIME, 2). %% 星域幻魔 %% 2>计数器类型 -define(REWARD_BOSS_PROTECT_USE_TIMES, 5). %% 使用次数 -define(REWARD_BOSS_PROTECT_CONTINUE_TIME, 6). %% 结束时间 -define(DESERTED_BOSS_PROTECT_USE_TIMES, 4). -define(DESERTED_BOSS_PROTECT_CONTINUE_TIME, 5). %% 本服BOSS延迟初始化时间 -ifdef(DEV_SERVER). -define(LOCAL_BOSS_DELAY_TIME, 5000). -else. -define(LOCAL_BOSS_DELAY_TIME, 60000). -endif. %% 计数器 %% 周计数器 -define(WORLD_BOSS_WEEK_SCORE, 1). %% 世界BOSS周积分计数器 %% 日计数器 -define(COUNT_REWARD_BOSS_DAILY_USE, 1). %% 赏金BOSS每日使用次数 -define(COUNT_REWARD_BOSS_BUY, 2). %% 赏金BOSS每日购买次数 -define(COUNT_REWARD_BOSS_TOTAL_TIMES, 4). %% 赏金BOSS每日增加次数 -define(COUNT_REWARD_BOSS_DAILY_KILL, 7). %% 赏金BOSS每日击杀次数,统计用 -define(COUNT_DESERTED_BOSS_DAILY_KILL, 8). %% 星域BOSS每日击杀次数,统计用 -define(COUNT_HOME_BOSS_KILL, 1). %% 幻魔之家击杀次数 %% 终生计数器 -define(COUNT_REWARD_BOSS_COUNTER_KILL, 1). %% 赏金BOSS击杀次数 -define(COUNT_REWARD_ALLBOSS_COUNTER_KILL, 2). %% 所有赏金BOSS击杀次数 %% 赏金BOSS掉落日志长度 -define(REWARD_BOSS_LOG_LENGTH, 50). %% 赏金BOSS结算踢人时间 -define(REWARD_BOSS_CLEAN_TIME, 15). %% BOSS场景人数限制 -define(BOSS_SCENE_ROLE_NUM, 50). %% 怪物数据参数 -define(LOCAL_BOSS_ARGS_TOP, 1). %% 伤害第一 -define(LOCAL_BOSS_ARGS_HURT_LIST, 2). %% 伤害统计 -define(LOCAL_BOSS_LAST_HIT, 3). %% 上次击杀时间 %% 认为玩家功击频率 -define(ROLE_HIT_FRE, 3). -record(boss_hit_info, { last_time = 0, %% 上次受击时间 sum_time = 0, %% 统计受击时间 notice_count = 0, %% 累计受击次数 die_state = 0, %% 死亡状态 time_need = 0, %% 存活时间 count_need = ?ROLE_HIT_FRE %% 血量刷新间隔:受击次数 }). %% 本服BOSS玩家数据 -record(status_local_boss,{ reward_boss_tired = 0 %% 赏金BOSS疲劳值 , boss_focus = [] %% 关注的赏金BOSS们 , deserted_boss_tired = 0 %% 废都BOSS疲劳值 , deserted_elite_tired = 0 %% 废都精英怪疲劳值 , ta_data = #{} %% TA 数据上报使用 }). %%%------------------------------------------------------------------- %%% @doc 世界BOSS %%%------------------------------------------------------------------- %% 管理进程 -record(local_world_boss, { boss_info = [], %% boss信息 week_rank = #{}, %% 周榜数据 #{榜单类型 => {refresh_flag, Ranks}} end_time = 0, %% 活动结束时间 next_time = 0, %% 下次活动开始时间:预告时间 ref %% 活动定时器 }). %% 世界boss信息 -record(world_boss_info, { boss_id = 0 , boss_pid %% 怪物进程 , mon_id %% 怪物唯一id , dead_time = 0 %% 死亡时间/0存活 , hp = 0 %% 血量 , hp_lim = 0 , shield_reward_no = 0 %% 护盾活动编号 , shield_reward = [] %% 护盾奖励情况[{Id, RoleList, Ref}|_] , shield_value = 0 %% 护盾上限值 }). %% 积分榜单 可以从周计数器里拿 -record(boss_score_rank, { role_id = 0 , score = 0 , time = 0 %% 刷新时间 , power = 0 %% 玩家战力 }). %%%------------------------------------------------------------------- %%% @doc 赏金BOSS %%%------------------------------------------------------------------- %% 管理进程 -record(local_reward_boss, { boss_info = [] , drop_log_low_quality = [] , drop_log_high_quality = [] , encourage_info = [] %% 赏金BOSS鼓舞[{玩家id,彩钻鼓舞,红钻鼓舞}], 离开场景清除 }). %% boss信息 -record(reward_boss_info, { boss_id = 0 , boss_pid %% 怪物进程 , mon_id = 0 %% 怪物唯一id , born_time = 0 %% 出生时间 , reborn_time = 0 %% 复活时间,存活则为0 , last_killer = <<>> %% 赏金BOSS上次击杀玩家 , ref_reborn %% 赏金BOSS复活定时器 }). %% ------------------------------------------------------------------- %% @doc 古战场boss %% ------------------------------------------------------------------- -define(DESERTED_BOSS_USE_COUNT, 1). %% boss使用次数 -define(DESERTED_ELITE_USE_COUNT, 2). %% 精英怪使用次数 -record(deserted_boss_state, { boss_info = [], elite_mon_info = [], zone_id = 0, fac_id = 0, map = #{}, cls_type = 0 }). %% 星域幻魔boss信息 -record(deserted_boss_info, { boss_id = 0 , boss_pid %% 怪物进程 , mon_id %% 怪物唯一id , born_time = 0 %% 出生时间 , reborn_time = 0 %% 复活时间,存活则为0 , last_killer = <<>> %% 上次击杀玩家 , srv_num = 0 %% 击杀者服务器编号 , ref_reborn %% 复活定时器 }). %% ------------------------------------------------------------------- %% @doc 活动boss %% ------------------------------------------------------------------- -record(local_act_boss, { sub_type = 0 %% 活动子类 , boss_info = [] %% 所有BOSS , boss_num = 0 , next_time = 0 %% 下场BOSS时间戳 , ref_born = undefined %% 出生定时器 }). %% boss信息 -record(act_boss_info, { mon_id = 0 %% 怪物唯一id , boss_id = 0 , boss_pid = undefined %% 怪物进程 , alive = 1 %% 是否存活 , scene_id = 0 %% 场景 , pool_id = 0 %% 分线 , x = 0 , y = 0 , share_roles = [] %% 分享的玩家 }). %% ------------------------------------------------------------------- %% @doc 幻魔之家 %% ------------------------------------------------------------------- -record(home_boss_state, { sub_module = 0, boss_infos = [], %% [{rank_index, guild, [#home_boss{}]},...] guild_boss_pids = #{}, %% #{guild => {rank_index, scene_pool}} 排名 => {社团, 分线} map = #{} }). -record(home_boss, { mon_id = 0 %% 怪物唯一id , boss_id = 0 , boss_pid = undefined %% 怪物进程 , pool_id = 0 %% 分线 , pos = {0, 0} , ref = undefined , killer = <<>> , dead_time = 0 %% 死亡时间 , born_time = 0 %% 出生时间 , reborn_time = 0 %% 下次出生时间 , guild = 0 }). %% ------------------------------------------------------------------- %% @doc 掉落日志 %% ------------------------------------------------------------------- -record(boss_drop_log, { name = <<>> , scene = 0 , svr_num = 0 , boss = 0 , boss_type = 0 , goods_id = 0 , time = 0 }). %% 赏金主线副本任务的怪物id -define (REWARD_BOSS_DUN_MON, 13010000). %% 赏金主线副本任务的副本id -define (REWARD_BOSS_TASK_DUN, 3605). %% 赏金主线任务id -define (REWARD_BOSS_TASK_ID, 11260). %% ------------------------------------------------------------------ %% @doc TA自定义记录数据类型 %% ------------------------------------------------------------------ -define(ENTER_TIME, 1). -define(INSPIRE_GOLD, 2). -define(INSPIRE_BGOLD, 3). -define(INSPIRE_TICK, 4). -define(REVIVE_TIME, 5). %%%------------------------------------------------------------------- %%% @doc DB %%%------------------------------------------------------------------- %% 获得世界BOSS状态 -define(SQL_GET_WORLD_BOSS_STATUS, <<"select boss_id,born_time,dead_time from local_boss_status where boss_type=~p">>). %% 获得周榜数据 -define(SQL_GET_WEEK_RANK, <<"select a.role_id,a.count,a.refresh_time,b.last_combat_power from counter_week a left join player_state b on a.role_id=b.id where a.module=~p and a.sub_module=~p and a.type=~p and a.refresh_time>~p">>). %% 保存世界BOSS状态-批量打包数据 -define(SQL_FORMAT_WORLD_BOSS_STATUS, <<"(~p, ~p, ~p, ~p)">>). %% 保存世界BOSS状态-批量写入数据 -define(SQL_SAVE_WORLD_BOSS_STATUS, <<"replace into local_boss_status (boss_id,boss_type,born_time,dead_time) values ~ts">>). %% 世界BOSS死亡,保存状态 -define(SQL_SAVE_ONE_WORLD_BOSS, <<"replace into local_boss_status(boss_id, boss_type, born_time, dead_time) values (~p,~p,~p,~p)">>). %% 赏金BOSS死亡,获取上次击杀者 -define(SQL_GET_REWARD_BOSS_STATUS, <<"select boss_id,killer from local_boss_status where boss_type=~p">>). %% 赏金BOSS死亡,保存状态 -define(SQL_SAVE_ONE_REWARD_BOSS, <<"replace into local_boss_status(boss_id, boss_type, born_time, dead_time, killer) values (~p,~p,~p,~p,~ts)">>). %% 废都boss -define(SQL_GET_LOCAL_DESERTED_BOSS_STATUS, <<"SELECT boss_id, dead_time, killer FROM local_boss_status WHERE boss_type = ~p">>). -define(SQL_GET_DESERTED_BOSS_STATUS, <<"SELECT boss_id, dead_time, killer, srv_num FROM deserted_boss_status WHERE zone_id = ~p AND fac_id = ~p">>). -define(SQL_REPLACE_DESERTED_BOSS_STATUS, <<"REPLACE INTO deserted_boss_status(zone_id, fac_id, boss_id, dead_time, killer, srv_num) values (~p, ~p, ~p, ~p, ~ts, ~p)">>). -define(SQL_DELETE_DESERTED_BOSS_STATUS, <<"DELETE FROM deserted_boss_status WHERE zone_id = ~p AND fac_id = ~p">>). %% 获得BOSS关注信息 -define(SQL_GET_BOSS_FOCUS, <<"select boss_id, boss_type from local_boss_focus where role_id=~p">>). %% 保存BOSS关注 -define(SQL_SAVE_BOSS_FOCUS, <<"replace into local_boss_focus(role_id,boss_id,boss_type) values(~p,~p,~p)">>). %% 删除BOSS关注 -define(SQL_DEL_BOSS_FOCUS, <<"delete from local_boss_focus where role_id=~p and boss_id=~p">>). %% BOSS免战时间 -define(SQL_GET_BOSS_PROTECT_TIME, <<"select boss_type,protect_time from boss_protect_time where role_id=~p">>). %% 保存BOSS关注 -define(SQL_SAVE_BOSS_PROTECT_TIME, <<"replace into boss_protect_time (role_id,boss_type,protect_time) values(~p,~p,~p)">>). %% 幻魔之家 -define (SQL_GET_HOME_BOSS, <<"SELECT rank_index, boss_id, guild, born_time, dead_time, killer FROM home_boss_status WHERE sub_module = ~p">>). -define (SQL_SAVE_ONE_HOME_BOSS, <<"REPLACE INTO home_boss_status(sub_module, rank_index, boss_id, guild, born_time, dead_time, killer) VALUES (~p, ~p, ~p, ~p, ~p, ~p, ~ts)">>). -define (SQL_UPDATE_ONE_HOME_BOSS, <<"UPDATE home_boss_status SET guild = ~p WHERE sub_module = ~p AND rank_index = ~p">>). %%%------------------------------------------------------------------- %%% @doc 配置 %%%------------------------------------------------------------------- -record(base_world_boss_info, { boss_id, boss_lv, boss_name, boss_scene, boss_position, relive_position, award_30_p, award_60_p, award_kill, award_assists, boss_picture, shield, rank_type, award_show_ratio, award_show_base, score_limit, score_limit_day }). -record(base_reward_boss_info, { boss_id, grade, boss_name, boss_scene, boss_position, relive_position, reborn_cfg, award_base, award_extra_num, award_extra, enter_lv, award_base_show, award_extra_show, boss_picture, is_peace, recommend_lv, recommend_attr, recommend_power }). -record(base_deserted_boss_info, { boss_id = 0, boss_name = "", level = 0, grade = 0, born_pos = [], reborn_time = [], base_reward = [], extra_reward = [], boss_pic = 0, recommend_lv = 0, recommend_attr = [], recommend_power = 0 }). -record(base_deserted_level, { level = 0, scene = 0, cls_scene = 0, open_lv = 0 }). -record(base_elite_mon, { index = 0, mon_id = 0, mon_name = "", level = 0, born_pos = [], reborn_time = [] }). -record(base_deserted_kv, { key, val, desc }). %% 幻魔之家层数表 -record(base_home_boss_level, { sub_module = 0, %% 子功能id 1|2 level = 0, %% 层数 scene = 0, %% 场景 enter_lv = 0, %% 进入等级限制 condition = [], %% 进入条件 cost = [] %% 抵扣货币 }). %% 幻魔之家boss表 -record(base_home_boss, { sub_module = 0, %% 子功能id 1|2 boss_id = 0, %% bossid grade = 0, %% 代数 name = "", %% 名称 level = 0, %% 层数 born_pos = [], %% 坐标 reborn_time = [], %% 重生时间 drop_show = [], %% 掉落展示 boss_pic = 0, %% 头像 recommend_power = 0, %% 推荐战力 recommend_lv = 0, %% 推荐等级 drop_lv_limit = 0, %% 掉落等级差距 recommend_attr = [] %% 推荐属性 }).