|
|
- %%%-------------------------------------------------------------------
- %%% @author liushl
- %%% @doc
- %%% 狂战领域
- %%% @end
- %%%-------------------------------------------------------------------
- -author("liushl").
-
- %%%-------------------------------------------------------------------
- %%% @doc
- %%% 常量配置
- %%% @end
- %%%-------------------------------------------------------------------
- %% 活动场景
- -define(MADNESS_LAND_SCENE_ROUND_1, 7800). %% 第一轮场景id
- -define(MADNESS_LAND_SCENE_ROUND_2_NODE, 7810). %% 第二轮本服场景
- -define(MADNESS_LAND_SCENE_ROUND_2_CENTER, 7820). %% 第二轮跨服场景
- -define(MADNESS_LAND_SCENE(Round, ClsType),
- case {Round, ClsType} of
- {1, _} -> ?MADNESS_LAND_SCENE_ROUND_1; %% 第一轮
- {2, 0} -> ?MADNESS_LAND_SCENE_ROUND_2_NODE; %% 第二轮本服
- {2, 1} -> ?MADNESS_LAND_SCENE_ROUND_2_CENTER %% 第二轮跨服
- end
- ).
- %% 狂战领域BOSS
- -define(MADNESS_LAND_ROUND_1_BOSS, 83000001). %% 第一轮BOSS
- -define(MADNESS_LAND_ROUND_2_BOSS, 83000003). %% 第二轮BOSS
- -define(MADNESS_LAND_BOSS_ID(Round),
- case Round of
- 1 -> ?MADNESS_LAND_ROUND_1_BOSS;
- 2 -> ?MADNESS_LAND_ROUND_2_BOSS
- end).
- %% 狂战领域第一轮持续时间
- -define(MADNESS_LAND_ROUND_1_TIME, data_madness_land:get_madness_land_kv(round_1_time)).
- %% 狂战领域第一轮休息间
- -define(MADNESS_LAND_ROUND_REST_TIME, data_madness_land:get_madness_land_kv(rest_time)).
- %% 狂战领域第二轮持续时间
- -define(MADNESS_LAND_ROUND_2_TIME, data_madness_land:get_madness_land_kv(round_2_time)).
- %% 狂战领域第一轮小怪出生时间
- -define(MADNESS_LAND_ROUND_1_MON_BORN, data_madness_land:get_madness_land_kv(round_1_monster_time)).
- %% 狂战领域第二轮小怪出生时间
- -define(MADNESS_LAND_ROUND_2_MON_BORN, data_madness_land:get_madness_land_kv(round_2_monster_time)).
- %% 狂战领域循环加积分-循环时间
- -define(MADNESS_LAND_CYCLE_SCORE_TIME, data_madness_land:get_madness_land_kv(cycle_time_interval)).
- %% 狂战领域循环加积分-积分数
- -define(MADNESS_LAND_CYCLE_SCORE, data_madness_land:get_madness_land_kv(cycle_time_score)).
- %% 狂战领域杀人基础分
- -define(MADNESS_LAND_KILL_BASE_SCORE, data_madness_land:get_madness_land_kv(kill_integral)).
- %% 狂战领域BOSS首刀奖励
- -define(MADNESS_LAND_FIRST_ATTACK_AWARD, data_madness_land:get_madness_land_kv(first_kill_one)).
- %% 狂战领域第一轮小怪
- -define(MADNESS_LAND_ROUND_1_MONS, data_madness_land:get_madness_land_kv(monster_refresh_one)).
- %% 狂战领域第二轮小怪
- -define(MADNESS_LAND_ROUND_2_MONS, data_madness_land:get_madness_land_kv(monster_refresh_two)).
- %% 狂战领域BOSS刀分
- -define(MADNESS_LAND_BOSS_ATTACK_SCORE, data_madness_land:get_madness_land_kv(hurt_integral)).
- %% 狂战领域小怪刀分
- -define(MADNESS_LAND_MONS_ATTACK_SCORE, data_madness_land:get_madness_land_kv(refresh_hurt)).
- %% 狂战领域个人榜单长度
- -define(MADNESS_LAND_RANK_LENGTH, 20).
- %% 狂战领域公会榜单长度
- -define(MADNESS_LAND_GUILD_RANK_LENGTH, 10).
- %% 狂战领域全服邮件奖励
- -define(MADNESS_LAND_SERVER_REWARD, data_madness_land:get_madness_land_kv(service_rewards)).
-
- %% 活动阶段定义
- -define(MADNESS_LAND_STAGE_IDLE, 0). %% 活动未开始
- -define(MADNESS_LAND_STAGE_ROUND_1, 1). %% 第一阶段
- -define(MADNESS_LAND_STAGE_RESET, 2). %% 第一阶段结束阶段,准备进入第二阶段
- -define(MADNESS_LAND_STAGE_ROUND_2, 3). %% 第二阶段
- -define(MADNESS_LAND_STAGE_END, 4). %% 第二阶段结束阶段,活动即将结束
-
-
- %% 活动数据
- -record(madness_land_act, {
- zone_id = 0 %% 分区id:本服玩法,分区为0
- , role_grade = dict:new() %% 本服跨服均有效:所有玩家成绩
- , guild_grade = [] %% 公会成绩
- , top = 0 %% 最高成绩者:公会id
- , boss_first_attack_time = 0 %% 第一次攻击BOSS时间
- , boss_first_attack_role = 0 %% 首刀玩家
- , refresh_flag = false %% 是否有成绩变化
- , alive_mons_info = #{} %% 存活的分身 #{分线 => 数量}
- , invincible_time = 0 %% 进入无敌时间
- , relieve_invincible_time = 0 %% 解除无敌时间
- }).
-
- %% 活动管理结构:本服/跨服
- -record(madness_land, {
- cls_type = 0 %% 节点类型:1跨服/0本服
- , stage = 0 %% 当前阶段
- , end_time = 0 %% 当前阶段结束时间
- , round = 0 %% 活动轮次:两轮
- , ref_stage_switch = undefined %% 阶段切换定时器
- , ref_cycle_add_score = undefined %% 循环加分定时器
- , ref_mon_born = undefined %% 小怪出生定时器
- , ref_refresh_rank = undefined %% 排行榜刷新定时器
-
- , round_1_first_attack= 0 %% 本服有效:第一轮首刀玩家。临时数据,活动结束会清理
- , round_1_role_grade = dict:new() %% 本服有效:第一轮个人成绩,第一轮结束的时候写入。临时数据,活动结束会清理
- , round_1_guild_grade = [] %% 本服有效:第一轮公会成绩,第一轮结束的时候写入。临时数据,活动结束会清理
-
- , round_2_type = 0 %% 本服有效:第二轮活动位置:1跨服/0本服
-
- , local_data = undefined %% 本服有效:活动数据 #madness_land_act{}
- , zone_data = #{} %% 跨服有效:分区数据:#{分区id => #madness_land_act{}}
-
- , role_rank = #{} %% 个人排名#{分区id => [#madness_land_role{}]}, 本服 分区id为0
- , guild_rank = #{} %% 公会排名#{分区id => [#madness_land_guild{}]}, 本服 分区id为0
-
- , check_host_pid
- }).
-
- %% 服务器数据
- -record(madness_land_server, {
- server_id = 0
- , server_num = 0
- , server_name = ""
- , score = 0
- , time = 0 %% 刷新时间
- , rank = 0 %% 排名
- }).
- %% 公会数据
- -record(madness_land_guild, {
- guild_id = 0
- , server_id = 0
- , server_num = 0
- , guild_name = ""
- , guild_flag = 0
- , score = 0
- , time = 0 %% 刷新时间
- , rank = 0 %% 排名
- }).
- %% 玩家数据
- -record(madness_land_role, {
- role_id = 0 %% 玩家id
- , node = undefined
- , server_id = 0 %% 服务器id
- , server_num = 0 %% 服务器num
- , picture = undefined
- , guild_id = 0 %% 社团id
- , guild_name = 0 %% 社团名字
- , score = 0 %% 积分
- , time = 0 %% 刷新时间
- , continue_kill = 0 %% 当前连杀数
- , zone_id = 0 %% 分区id
- , rank = 0 %% 排名
- %% 统计用
- , leave = false %% 是否离场
- , enter_time = 0 %% 当次进入时间
- , die_count = 0 %% 当次死亡次数
- }).
|