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

382 lines
13 KiB

  1. %%%-------------------------------------------------------------------
  2. %%% @author liushl
  3. %%% @doc
  4. %%% 本服BOSS头文件
  5. %%% @end
  6. %%%-------------------------------------------------------------------
  7. -author("liushl").
  8. %% BOSS类型 读怪物头文件的BOSS类型
  9. -define(WORLD_BOSS_SHIELD_AWARD_TIME, 11). %% 护盾奖励有效期
  10. %% 保护时间
  11. %% 1>类型
  12. -define(REWARD_BOSS_PROTECT_TIME, 1). %% 赏金boss
  13. -define(DESERTED_BOSS_PROTECT_TIME, 2). %% 星域幻魔
  14. %% 2>计数器类型
  15. -define(REWARD_BOSS_PROTECT_USE_TIMES, 5). %% 使用次数
  16. -define(REWARD_BOSS_PROTECT_CONTINUE_TIME, 6). %% 结束时间
  17. -define(DESERTED_BOSS_PROTECT_USE_TIMES, 4).
  18. -define(DESERTED_BOSS_PROTECT_CONTINUE_TIME, 5).
  19. %% 本服BOSS延迟初始化时间
  20. -ifdef(DEV_SERVER).
  21. -define(LOCAL_BOSS_DELAY_TIME, 5000).
  22. -else.
  23. -define(LOCAL_BOSS_DELAY_TIME, 60000).
  24. -endif.
  25. %% 计数器
  26. %% 周计数器
  27. -define(WORLD_BOSS_WEEK_SCORE, 1). %% 世界BOSS周积分计数器
  28. %% 日计数器
  29. -define(COUNT_REWARD_BOSS_DAILY_USE, 1). %% 赏金BOSS每日使用次数
  30. -define(COUNT_REWARD_BOSS_BUY, 2). %% 赏金BOSS每日购买次数
  31. -define(COUNT_REWARD_BOSS_TOTAL_TIMES, 4). %% 赏金BOSS每日增加次数
  32. -define(COUNT_REWARD_BOSS_DAILY_KILL, 7). %% 赏金BOSS每日击杀次数,统计用
  33. -define(COUNT_DESERTED_BOSS_DAILY_KILL, 8). %% 星域BOSS每日击杀次数,统计用
  34. -define(COUNT_HOME_BOSS_KILL, 1). %% 幻魔之家击杀次数
  35. %% 终生计数器
  36. -define(COUNT_REWARD_BOSS_COUNTER_KILL, 1). %% 赏金BOSS击杀次数
  37. -define(COUNT_REWARD_ALLBOSS_COUNTER_KILL, 2). %% 所有赏金BOSS击杀次数
  38. %% 赏金BOSS掉落日志长度
  39. -define(REWARD_BOSS_LOG_LENGTH, 50).
  40. %% 赏金BOSS结算踢人时间
  41. -define(REWARD_BOSS_CLEAN_TIME, 15).
  42. %% BOSS场景人数限制
  43. -define(BOSS_SCENE_ROLE_NUM, 50).
  44. %% 怪物数据参数
  45. -define(LOCAL_BOSS_ARGS_TOP, 1). %% 伤害第一
  46. -define(LOCAL_BOSS_ARGS_HURT_LIST, 2). %% 伤害统计
  47. -define(LOCAL_BOSS_LAST_HIT, 3). %% 上次击杀时间
  48. %% 认为玩家功击频率
  49. -define(ROLE_HIT_FRE, 3).
  50. -record(boss_hit_info, {
  51. last_time = 0, %% 上次受击时间
  52. sum_time = 0, %% 统计受击时间
  53. notice_count = 0, %% 累计受击次数
  54. die_state = 0, %% 死亡状态
  55. time_need = 0, %% 存活时间
  56. count_need = ?ROLE_HIT_FRE %% 血量刷新间隔:受击次数
  57. }).
  58. %% 本服BOSS玩家数据
  59. -record(status_local_boss,{
  60. reward_boss_tired = 0 %% 赏金BOSS疲劳值
  61. , boss_focus = [] %% 关注的赏金BOSS们
  62. , deserted_boss_tired = 0 %% 废都BOSS疲劳值
  63. , deserted_elite_tired = 0 %% 废都精英怪疲劳值
  64. , ta_data = #{} %% TA 数据上报使用
  65. }).
  66. %%%-------------------------------------------------------------------
  67. %%% @doc 世界BOSS
  68. %%%-------------------------------------------------------------------
  69. %% 管理进程
  70. -record(local_world_boss, {
  71. boss_info = [], %% boss信息
  72. week_rank = #{}, %% 周榜数据 #{榜单类型 => {refresh_flag, Ranks}}
  73. end_time = 0, %% 活动结束时间
  74. next_time = 0, %% 下次活动开始时间:预告时间
  75. ref %% 活动定时器
  76. }).
  77. %% 世界boss信息
  78. -record(world_boss_info, {
  79. boss_id = 0
  80. , boss_pid %% 怪物进程
  81. , mon_id %% 怪物唯一id
  82. , dead_time = 0 %% 死亡时间/0存活
  83. , hp = 0 %% 血量
  84. , hp_lim = 0
  85. , shield_reward_no = 0 %% 护盾活动编号
  86. , shield_reward = [] %% 护盾奖励情况[{Id, RoleList, Ref}|_]
  87. , shield_value = 0 %% 护盾上限值
  88. }).
  89. %% 积分榜单 可以从周计数器里拿
  90. -record(boss_score_rank, {
  91. role_id = 0
  92. , score = 0
  93. , time = 0 %% 刷新时间
  94. , power = 0 %% 玩家战力
  95. }).
  96. %%%-------------------------------------------------------------------
  97. %%% @doc 赏金BOSS
  98. %%%-------------------------------------------------------------------
  99. %% 管理进程
  100. -record(local_reward_boss, {
  101. boss_info = []
  102. , drop_log_low_quality = []
  103. , drop_log_high_quality = []
  104. , encourage_info = [] %% 赏金BOSS鼓舞[{玩家id,彩钻鼓舞,红钻鼓舞}], 离开场景清除
  105. }).
  106. %% boss信息
  107. -record(reward_boss_info, {
  108. boss_id = 0
  109. , boss_pid %% 怪物进程
  110. , mon_id = 0 %% 怪物唯一id
  111. , born_time = 0 %% 出生时间
  112. , reborn_time = 0 %% 复活时间,存活则为0
  113. , last_killer = <<>> %% 赏金BOSS上次击杀玩家
  114. , ref_reborn %% 赏金BOSS复活定时器
  115. }).
  116. %% -------------------------------------------------------------------
  117. %% @doc 古战场boss
  118. %% -------------------------------------------------------------------
  119. -define(DESERTED_BOSS_USE_COUNT, 1). %% boss使用次数
  120. -define(DESERTED_ELITE_USE_COUNT, 2). %% 精英怪使用次数
  121. -record(deserted_boss_state, {
  122. boss_info = [],
  123. elite_mon_info = [],
  124. zone_id = 0,
  125. fac_id = 0,
  126. map = #{},
  127. cls_type = 0
  128. }).
  129. %% 星域幻魔boss信息
  130. -record(deserted_boss_info, {
  131. boss_id = 0
  132. , boss_pid %% 怪物进程
  133. , mon_id %% 怪物唯一id
  134. , born_time = 0 %% 出生时间
  135. , reborn_time = 0 %% 复活时间,存活则为0
  136. , last_killer = <<>> %% 上次击杀玩家
  137. , srv_num = 0 %% 击杀者服务器编号
  138. , ref_reborn %% 复活定时器
  139. }).
  140. %% -------------------------------------------------------------------
  141. %% @doc 活动boss
  142. %% -------------------------------------------------------------------
  143. -record(local_act_boss, {
  144. sub_type = 0 %% 活动子类
  145. , boss_info = [] %% 所有BOSS
  146. , boss_num = 0
  147. , next_time = 0 %% 下场BOSS时间戳
  148. , ref_born = undefined %% 出生定时器
  149. }).
  150. %% boss信息
  151. -record(act_boss_info, {
  152. mon_id = 0 %% 怪物唯一id
  153. , boss_id = 0
  154. , boss_pid = undefined %% 怪物进程
  155. , alive = 1 %% 是否存活
  156. , scene_id = 0 %% 场景
  157. , pool_id = 0 %% 分线
  158. , x = 0
  159. , y = 0
  160. , share_roles = [] %% 分享的玩家
  161. }).
  162. %% -------------------------------------------------------------------
  163. %% @doc 幻魔之家
  164. %% -------------------------------------------------------------------
  165. -record(home_boss_state, {
  166. sub_module = 0,
  167. boss_infos = [], %% [{rank_index, guild, [#home_boss{}]},...]
  168. guild_boss_pids = #{}, %% #{guild => {rank_index, scene_pool}} 排名 => {社团, 分线}
  169. map = #{}
  170. }).
  171. -record(home_boss, {
  172. mon_id = 0 %% 怪物唯一id
  173. , boss_id = 0
  174. , boss_pid = undefined %% 怪物进程
  175. , pool_id = 0 %% 分线
  176. , pos = {0, 0}
  177. , ref = undefined
  178. , killer = <<>>
  179. , dead_time = 0 %% 死亡时间
  180. , born_time = 0 %% 出生时间
  181. , reborn_time = 0 %% 下次出生时间
  182. , guild = 0
  183. }).
  184. %% -------------------------------------------------------------------
  185. %% @doc 掉落日志
  186. %% -------------------------------------------------------------------
  187. -record(boss_drop_log, {
  188. name = <<>>
  189. , scene = 0
  190. , svr_num = 0
  191. , boss = 0
  192. , boss_type = 0
  193. , goods_id = 0
  194. , time = 0
  195. }).
  196. %% 赏金主线副本任务的怪物id
  197. -define (REWARD_BOSS_DUN_MON, 13010000).
  198. %% 赏金主线副本任务的副本id
  199. -define (REWARD_BOSS_TASK_DUN, 3605).
  200. %% 赏金主线任务id
  201. -define (REWARD_BOSS_TASK_ID, 11260).
  202. %% ------------------------------------------------------------------
  203. %% @doc TA自定义记录数据类型
  204. %% ------------------------------------------------------------------
  205. -define(ENTER_TIME, 1).
  206. -define(INSPIRE_GOLD, 2).
  207. -define(INSPIRE_BGOLD, 3).
  208. -define(INSPIRE_TICK, 4).
  209. -define(REVIVE_TIME, 5).
  210. %%%-------------------------------------------------------------------
  211. %%% @doc DB
  212. %%%-------------------------------------------------------------------
  213. %% 获得世界BOSS状态
  214. -define(SQL_GET_WORLD_BOSS_STATUS, <<"select boss_id,born_time,dead_time from local_boss_status where boss_type=~p">>).
  215. %% 获得周榜数据
  216. -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
  217. where a.module=~p and a.sub_module=~p and a.type=~p and a.refresh_time>~p">>).
  218. %% 保存世界BOSS状态-批量打包数据
  219. -define(SQL_FORMAT_WORLD_BOSS_STATUS, <<"(~p, ~p, ~p, ~p)">>).
  220. %% 保存世界BOSS状态-批量写入数据
  221. -define(SQL_SAVE_WORLD_BOSS_STATUS, <<"replace into local_boss_status (boss_id,boss_type,born_time,dead_time) values ~ts">>).
  222. %% 世界BOSS死亡,保存状态
  223. -define(SQL_SAVE_ONE_WORLD_BOSS, <<"replace into local_boss_status(boss_id, boss_type, born_time, dead_time) values (~p,~p,~p,~p)">>).
  224. %% 赏金BOSS死亡,获取上次击杀者
  225. -define(SQL_GET_REWARD_BOSS_STATUS, <<"select boss_id,killer from local_boss_status where boss_type=~p">>).
  226. %% 赏金BOSS死亡,保存状态
  227. -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)">>).
  228. %% 废都boss
  229. -define(SQL_GET_LOCAL_DESERTED_BOSS_STATUS, <<"SELECT boss_id, dead_time, killer FROM local_boss_status WHERE boss_type = ~p">>).
  230. -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">>).
  231. -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)">>).
  232. -define(SQL_DELETE_DESERTED_BOSS_STATUS, <<"DELETE FROM deserted_boss_status WHERE zone_id = ~p AND fac_id = ~p">>).
  233. %% 获得BOSS关注信息
  234. -define(SQL_GET_BOSS_FOCUS, <<"select boss_id, boss_type from local_boss_focus where role_id=~p">>).
  235. %% 保存BOSS关注
  236. -define(SQL_SAVE_BOSS_FOCUS, <<"replace into local_boss_focus(role_id,boss_id,boss_type) values(~p,~p,~p)">>).
  237. %% 删除BOSS关注
  238. -define(SQL_DEL_BOSS_FOCUS, <<"delete from local_boss_focus where role_id=~p and boss_id=~p">>).
  239. %% BOSS免战时间
  240. -define(SQL_GET_BOSS_PROTECT_TIME, <<"select boss_type,protect_time from boss_protect_time where role_id=~p">>).
  241. %% 保存BOSS关注
  242. -define(SQL_SAVE_BOSS_PROTECT_TIME, <<"replace into boss_protect_time (role_id,boss_type,protect_time) values(~p,~p,~p)">>).
  243. %% 幻魔之家
  244. -define (SQL_GET_HOME_BOSS, <<"SELECT rank_index, boss_id, guild, born_time, dead_time, killer FROM home_boss_status WHERE sub_module = ~p">>).
  245. -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)">>).
  246. -define (SQL_UPDATE_ONE_HOME_BOSS, <<"UPDATE home_boss_status SET guild = ~p WHERE sub_module = ~p AND rank_index = ~p">>).
  247. %%%-------------------------------------------------------------------
  248. %%% @doc 配置
  249. %%%-------------------------------------------------------------------
  250. -record(base_world_boss_info, {
  251. boss_id,
  252. boss_lv,
  253. boss_name,
  254. boss_scene,
  255. boss_position,
  256. relive_position,
  257. award_30_p,
  258. award_60_p,
  259. award_kill,
  260. award_assists,
  261. boss_picture,
  262. shield,
  263. rank_type,
  264. award_show_ratio,
  265. award_show_base,
  266. score_limit,
  267. score_limit_day
  268. }).
  269. -record(base_reward_boss_info, {
  270. boss_id,
  271. grade,
  272. boss_name,
  273. boss_scene,
  274. boss_position,
  275. relive_position,
  276. reborn_cfg,
  277. award_base,
  278. award_extra_num,
  279. award_extra,
  280. enter_lv,
  281. award_base_show,
  282. award_extra_show,
  283. boss_picture,
  284. is_peace,
  285. recommend_lv,
  286. recommend_attr,
  287. recommend_power
  288. }).
  289. -record(base_deserted_boss_info, {
  290. boss_id = 0,
  291. boss_name = "",
  292. level = 0,
  293. grade = 0,
  294. born_pos = [],
  295. reborn_time = [],
  296. base_reward = [],
  297. extra_reward = [],
  298. boss_pic = 0,
  299. recommend_lv = 0,
  300. recommend_attr = [],
  301. recommend_power = 0
  302. }).
  303. -record(base_deserted_level, {
  304. level = 0,
  305. scene = 0,
  306. cls_scene = 0,
  307. open_lv = 0
  308. }).
  309. -record(base_elite_mon, {
  310. index = 0,
  311. mon_id = 0,
  312. mon_name = "",
  313. level = 0,
  314. born_pos = [],
  315. reborn_time = []
  316. }).
  317. -record(base_deserted_kv, {
  318. key,
  319. val,
  320. desc
  321. }).
  322. %% 幻魔之家层数表
  323. -record(base_home_boss_level, {
  324. sub_module = 0, %% 子功能id 1|2
  325. level = 0, %% 层数
  326. scene = 0, %% 场景
  327. enter_lv = 0, %% 进入等级限制
  328. condition = [], %% 进入条件
  329. cost = [] %% 抵扣货币
  330. }).
  331. %% 幻魔之家boss表
  332. -record(base_home_boss, {
  333. sub_module = 0, %% 子功能id 1|2
  334. boss_id = 0, %% bossid
  335. grade = 0, %% 代数
  336. name = "", %% 名称
  337. level = 0, %% 层数
  338. born_pos = [], %% 坐标
  339. reborn_time = [], %% 重生时间
  340. drop_show = [], %% 掉落展示
  341. boss_pic = 0, %% 头像
  342. recommend_power = 0, %% 推荐战力
  343. recommend_lv = 0, %% 推荐等级
  344. drop_lv_limit = 0, %% 掉落等级差距
  345. recommend_attr = [] %% 推荐属性
  346. }).