源战役
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

151 行
7.3 KiB

  1. %%%-------------------------------------------------------------------
  2. %%% @author liushl
  3. %%% @doc
  4. %%% 狂战领域
  5. %%% @end
  6. %%%-------------------------------------------------------------------
  7. -author("liushl").
  8. %%%-------------------------------------------------------------------
  9. %%% @doc
  10. %%% 常量配置
  11. %%% @end
  12. %%%-------------------------------------------------------------------
  13. %% 活动场景
  14. -define(MADNESS_LAND_SCENE_ROUND_1, 7800). %% 第一轮场景id
  15. -define(MADNESS_LAND_SCENE_ROUND_2_NODE, 7810). %% 第二轮本服场景
  16. -define(MADNESS_LAND_SCENE_ROUND_2_CENTER, 7820). %% 第二轮跨服场景
  17. -define(MADNESS_LAND_SCENE(Round, ClsType),
  18. case {Round, ClsType} of
  19. {1, _} -> ?MADNESS_LAND_SCENE_ROUND_1; %% 第一轮
  20. {2, 0} -> ?MADNESS_LAND_SCENE_ROUND_2_NODE; %% 第二轮本服
  21. {2, 1} -> ?MADNESS_LAND_SCENE_ROUND_2_CENTER %% 第二轮跨服
  22. end
  23. ).
  24. %% 狂战领域BOSS
  25. -define(MADNESS_LAND_ROUND_1_BOSS, 83000001). %% 第一轮BOSS
  26. -define(MADNESS_LAND_ROUND_2_BOSS, 83000003). %% 第二轮BOSS
  27. -define(MADNESS_LAND_BOSS_ID(Round),
  28. case Round of
  29. 1 -> ?MADNESS_LAND_ROUND_1_BOSS;
  30. 2 -> ?MADNESS_LAND_ROUND_2_BOSS
  31. end).
  32. %% 狂战领域第一轮持续时间
  33. -define(MADNESS_LAND_ROUND_1_TIME, data_madness_land:get_madness_land_kv(round_1_time)).
  34. %% 狂战领域第一轮休息间
  35. -define(MADNESS_LAND_ROUND_REST_TIME, data_madness_land:get_madness_land_kv(rest_time)).
  36. %% 狂战领域第二轮持续时间
  37. -define(MADNESS_LAND_ROUND_2_TIME, data_madness_land:get_madness_land_kv(round_2_time)).
  38. %% 狂战领域第一轮小怪出生时间
  39. -define(MADNESS_LAND_ROUND_1_MON_BORN, data_madness_land:get_madness_land_kv(round_1_monster_time)).
  40. %% 狂战领域第二轮小怪出生时间
  41. -define(MADNESS_LAND_ROUND_2_MON_BORN, data_madness_land:get_madness_land_kv(round_2_monster_time)).
  42. %% 狂战领域循环加积分-循环时间
  43. -define(MADNESS_LAND_CYCLE_SCORE_TIME, data_madness_land:get_madness_land_kv(cycle_time_interval)).
  44. %% 狂战领域循环加积分-积分数
  45. -define(MADNESS_LAND_CYCLE_SCORE, data_madness_land:get_madness_land_kv(cycle_time_score)).
  46. %% 狂战领域杀人基础分
  47. -define(MADNESS_LAND_KILL_BASE_SCORE, data_madness_land:get_madness_land_kv(kill_integral)).
  48. %% 狂战领域BOSS首刀奖励
  49. -define(MADNESS_LAND_FIRST_ATTACK_AWARD, data_madness_land:get_madness_land_kv(first_kill_one)).
  50. %% 狂战领域第一轮小怪
  51. -define(MADNESS_LAND_ROUND_1_MONS, data_madness_land:get_madness_land_kv(monster_refresh_one)).
  52. %% 狂战领域第二轮小怪
  53. -define(MADNESS_LAND_ROUND_2_MONS, data_madness_land:get_madness_land_kv(monster_refresh_two)).
  54. %% 狂战领域BOSS刀分
  55. -define(MADNESS_LAND_BOSS_ATTACK_SCORE, data_madness_land:get_madness_land_kv(hurt_integral)).
  56. %% 狂战领域小怪刀分
  57. -define(MADNESS_LAND_MONS_ATTACK_SCORE, data_madness_land:get_madness_land_kv(refresh_hurt)).
  58. %% 狂战领域个人榜单长度
  59. -define(MADNESS_LAND_RANK_LENGTH, 20).
  60. %% 狂战领域公会榜单长度
  61. -define(MADNESS_LAND_GUILD_RANK_LENGTH, 10).
  62. %% 狂战领域全服邮件奖励
  63. -define(MADNESS_LAND_SERVER_REWARD, data_madness_land:get_madness_land_kv(service_rewards)).
  64. %% 活动阶段定义
  65. -define(MADNESS_LAND_STAGE_IDLE, 0). %% 活动未开始
  66. -define(MADNESS_LAND_STAGE_ROUND_1, 1). %% 第一阶段
  67. -define(MADNESS_LAND_STAGE_RESET, 2). %% 第一阶段结束阶段,准备进入第二阶段
  68. -define(MADNESS_LAND_STAGE_ROUND_2, 3). %% 第二阶段
  69. -define(MADNESS_LAND_STAGE_END, 4). %% 第二阶段结束阶段,活动即将结束
  70. %% 活动数据
  71. -record(madness_land_act, {
  72. zone_id = 0 %% 分区id:本服玩法,分区为0
  73. , role_grade = dict:new() %% 本服跨服均有效:所有玩家成绩
  74. , guild_grade = [] %% 公会成绩
  75. , top = 0 %% 最高成绩者:公会id
  76. , boss_first_attack_time = 0 %% 第一次攻击BOSS时间
  77. , boss_first_attack_role = 0 %% 首刀玩家
  78. , refresh_flag = false %% 是否有成绩变化
  79. , alive_mons_info = #{} %% 存活的分身 #{分线 => 数量}
  80. , invincible_time = 0 %% 进入无敌时间
  81. , relieve_invincible_time = 0 %% 解除无敌时间
  82. }).
  83. %% 活动管理结构:本服/跨服
  84. -record(madness_land, {
  85. cls_type = 0 %% 节点类型:1跨服/0本服
  86. , stage = 0 %% 当前阶段
  87. , end_time = 0 %% 当前阶段结束时间
  88. , round = 0 %% 活动轮次:两轮
  89. , ref_stage_switch = undefined %% 阶段切换定时器
  90. , ref_cycle_add_score = undefined %% 循环加分定时器
  91. , ref_mon_born = undefined %% 小怪出生定时器
  92. , ref_refresh_rank = undefined %% 排行榜刷新定时器
  93. , round_1_first_attack= 0 %% 本服有效:第一轮首刀玩家。临时数据,活动结束会清理
  94. , round_1_role_grade = dict:new() %% 本服有效:第一轮个人成绩,第一轮结束的时候写入。临时数据,活动结束会清理
  95. , round_1_guild_grade = [] %% 本服有效:第一轮公会成绩,第一轮结束的时候写入。临时数据,活动结束会清理
  96. , round_2_type = 0 %% 本服有效:第二轮活动位置:1跨服/0本服
  97. , local_data = undefined %% 本服有效:活动数据 #madness_land_act{}
  98. , zone_data = #{} %% 跨服有效:分区数据:#{分区id => #madness_land_act{}}
  99. , role_rank = #{} %% 个人排名#{分区id => [#madness_land_role{}]}, 本服 分区id为0
  100. , guild_rank = #{} %% 公会排名#{分区id => [#madness_land_guild{}]}, 本服 分区id为0
  101. , check_host_pid
  102. }).
  103. %% 服务器数据
  104. -record(madness_land_server, {
  105. server_id = 0
  106. , server_num = 0
  107. , server_name = ""
  108. , score = 0
  109. , time = 0 %% 刷新时间
  110. , rank = 0 %% 排名
  111. }).
  112. %% 公会数据
  113. -record(madness_land_guild, {
  114. guild_id = 0
  115. , server_id = 0
  116. , server_num = 0
  117. , guild_name = ""
  118. , guild_flag = 0
  119. , score = 0
  120. , time = 0 %% 刷新时间
  121. , rank = 0 %% 排名
  122. }).
  123. %% 玩家数据
  124. -record(madness_land_role, {
  125. role_id = 0 %% 玩家id
  126. , node = undefined
  127. , server_id = 0 %% 服务器id
  128. , server_num = 0 %% 服务器num
  129. , picture = undefined
  130. , guild_id = 0 %% 社团id
  131. , guild_name = 0 %% 社团名字
  132. , score = 0 %% 积分
  133. , time = 0 %% 刷新时间
  134. , continue_kill = 0 %% 当前连杀数
  135. , zone_id = 0 %% 分区id
  136. , rank = 0 %% 排名
  137. %% 统计用
  138. , leave = false %% 是否离场
  139. , enter_time = 0 %% 当次进入时间
  140. , die_count = 0 %% 当次死亡次数
  141. }).