%%%-------------------------------------------------------------------
|
|
%%% @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 %% 当次死亡次数
|
|
}).
|