|
|
- %%-----------------------------------------------------------------------------
- %% @Module : top_pk.hrl
- %% @Author : J
- %% @Email : j-som@foxmail.com
- %% @Created : 2017-12-05
- %% @Description: 巅峰竞技
- %%-----------------------------------------------------------------------------
-
- -define(TOP_PK_KV(Id), lib_top_pk_util:get_keyvalues(Id)).
- %% 第一个赛季开启日期{Y,M,D} 注:便于多语言版本管理,此常量应放到lib_vsn_control管理
- -define(TOP_PK_KV_FIRST_SEASON_OPEN_DATE, data_vsn:top_pk_first_season_open_date()).
- -define(TOP_PK_KV_SEASON_DURATION, ?TOP_PK_KV(2)). %% 赛季时长(天)
- -define(TOP_PK_KV_START_CENTER_OPEN_DAY, ?TOP_PK_KV(3)). %% 开启跨服竞技需要的开服天数
- -define(TOP_PK_KV_START_CENTER_WORLD_LV, ?TOP_PK_KV(4)). %% 开启跨服竞技需要的世界等级
- -define(TOP_PK_KV_LOCAL_SCENE, ?TOP_PK_KV(5)). %% 本服竞技场景id
- -define(TOP_PK_KV_CENTER_SCENE, ?TOP_PK_KV(6)). %% 跨服竞技场景id
- -define(TOP_PK_KV_LOCAL_BORN_COORD, ?TOP_PK_KV(7)). %% 本服战场出生点{X,Y}
- -define(TOP_PK_KV_CENTER_BORN_COORD, ?TOP_PK_KV(8)). %% 跨服战场出生点{X,Y}
- -define(TOP_PK_KV_BATTLE_TIME, ?TOP_PK_KV(9)). %% 每场竞技比赛时长(秒)
- -define(TOP_PK_KV_READY_TIME, ?TOP_PK_KV(10)). %% 每场竞技比赛准备时长(秒)
- -define(TOP_PK_KV_ADVANCE_TIME, ?TOP_PK_KV(11)). %% 开启竞技活动提前多久预告(分钟)
- -define(TOP_PK_KV_FAIL_COUNT_TO_MATCH_DUMMY,?TOP_PK_KV(12)). %% 玩家连续失败多少场匹配一次假人
- -define(TOP_PK_KV_MATCH_TIME, ?TOP_PK_KV(13)). %% 每轮匹配时长(s)
- -define(TOP_PK_KV_MATCH_MAX_NUN, ?TOP_PK_KV(14)). %% 最多匹配几轮,还匹配不到匹配假人
- -define(TOP_PK_KV_RANK_SIZE, ?TOP_PK_KV(15)). %% 排行榜最大长度
- -define(TOP_PK_KV_OPEN_LV, ?TOP_PK_KV(16)). %% 功能开启等级
- -define(TOP_PK_KV_INIT_SCORE, ?TOP_PK_KV(17)). %% 赛季玩家初始积分
- -define(TOP_PK_KV_DAILY_COUNT, ?TOP_PK_KV(18)). %% 玩家每天可以参与匹配次数
- -define(TOP_PK_KV_CONTINUED_WIN_TV, ?TOP_PK_KV(19)). %% 连胜传闻 格式:[{连胜次数,功能传闻id}]
- -define(TOP_PK_KV_NEW_GRADE_TV, ?TOP_PK_KV(20)). %% 段位传闻 格式:[{段位,阶数,功能传闻id}]
- -define(TOP_PK_KV_MATCH_AREA_LIST, ?TOP_PK_KV(21)). %% 匹配区间列表 格式:[{匹配次数,名次区间}]
- -define(TOP_PK_KV_ELO_K_FACTOR, ?TOP_PK_KV(22)). %% ELO天梯算法K参数(通常为32) [弃用]
- -define(TOP_PK_KV_ELO_S_FACTOR, ?TOP_PK_KV(23)). %% ELO天梯算法S参数(通常为1) [弃用]
- -define(TOP_PK_KV_SEASON_RANK_AWARD_NUM, ?TOP_PK_KV(28)). %% 赛季排行奖励发放前几名
- -define(TOP_PK_KV_SEASON_AWARD_NEED_OPENDAY,?TOP_PK_KV(29)). %% 赛季排行奖励发放前几名
-
- %% 竞技环境类型
- -define(ACT_CLS_LOCAL, 0). %% 竞技环境类型:单服竞技
- -define(ACT_CLS_CENTER, 1). %% 竞技环境类型:跨服竞技
-
- %% 活动开启状态
- -define(ACT_STATUS_STOP, 0). %% 活动开启状态:未开始
- -define(ACT_STATUS_START, 1). %% 活动开启状态:开始
-
- %% 巅峰竞技常量配置
- -record(base_top_pk_keyvalues, {
- id = 0, %% 常量Id
- value = 0, %% 常量值
- about = "" %% 常量描述
- }).
-
- %% 段位信息配置
- -record(base_top_pk_grade_info, {
- grade_num = 0, %% 段位序号
- stage = 0, %% 阶数
- name = "", %% 段位名
- min_score = 0, %% 最小积分
- max_score = 0, %% 最大积分
- win_score = 0, %% 胜利积分
- lose_score = 0 %% 失败积分
- }).
-
- %% 假人配置
- -record(base_top_pk_fake_man, {
- min_lv = 0, %% 最小等级
- max_lv = 0, %% 最大等级
- fake_man_id = 0, %% 假人id
- power_range = {0,0} %% 战力范围{最小战力, 最大战力}
- }).
-
- -record(top_pk_status, {
- score = 0 %% 赛季积分
- ,grade_reward_list = [] %% 已领段位奖励列表[grade]
- ,match_reward_list = [] %% 已领匹配次数奖励[match_count]
- ,pk_time = 0 %% 上次PK时间
- ,enter_count = 0 %% 匹配场数
- ,continued_fail = 0 %% 连续失败场次(只算匹配真人的,匹配到假人重置)
- ,continued_win = 0 %% 连续胜利场次
- ,pk_state = [] %% 匹配状态
- }).
-
- -record(rank_role, {
- role_id = 0, %% 玩家id
- role_name = "", %% 玩家名
- career = 0, %% 职业
- power = 0, %% 战力
- platform = "", %% 平台
- server_num = 0, %% 服务器显示编号
- server_id = 0, %% 服务器id
- rank_id = 0, %% 排名
- score = 0, %% 赛季积分
- pk_time = 0 %% 上次PK时间
- }).
-
- -record(local_state, {
- act_status = 0, %% 活动状态:0未开始,1开始
- season_id = 0, %% 赛季id
- world_lv = 0, %% 赛季开启时服务器等级
- cls_type = 0, %% 竞技环境类型:0单服竞技,1跨服竞技
- rank_list = [] %% 玩家排行列表[#rank_role{}|...]
- }).
-
- -record(rank_center_state, {
- season_id = 0, %% 赛季id
- is_db = 0, %% 是否入库(0否|1是)
- rank_list = [] %% 玩家排行列表[#rank_role{}|...]
- }).
-
- -record(match_state, {
- cls_type = 0, %% 竞技环境类型:0单服竞技,1跨服竞技
- start_time = 0, %% 开始时间戳
- end_time = 0, %% 结束时间戳
- end_ref = none, %% 结束定时器引用
- match_ref = none, %% 匹配定时器引用
- match_queue = [] %% 匹配队列 [#match_info{}]
- }).
-
- -record(match_info, {
- role_key = {none, 0}, %% 玩家key {Node, RoleId}
- name = "", %% 玩家名
- lv = 0, %% 玩家等级
- platform = "", %% 平台名
- server_num = 0, %% 服务器显示编号
- score = 0, %% 积分
- power = 0, %% 战力
- continued_fail = 0, %% 连续失败场次(只算匹配真人的,匹配到假人重置)
- match_count = 1, %% 匹配次数
- rank_id = 0, %% 匹配队列的临时排名
- match_time = 0 %% 匹配时间戳
- }).
-
- -define(SQL_SELECT_PLAYER_TOP_PK, <<"select `score`, `grade_reward_list`, `match_reward_list`, `pk_time`, `enter_count`, `continued_fail`, `continued_win` from `player_top_pk` where `role_id` = ~p">>).
- -define(SQL_REPLACE_INTO_PLAYER_TOP_PK, <<"replace into `player_top_pk`(`role_id`, `score`, `grade_reward_list`, `match_reward_list`, `pk_time`, `enter_count`, `continued_fail`, `continued_win`) values (~p, ~p, '~s', '~s', ~p, ~p, ~p, ~p) ">>).
- -define(SQL_SELECT_PLAYER_TOP_PK_FOR_RANK, <<"select `role_id`, `score`, `pk_time` from `player_top_pk` where `score`>0 order by `score` desc limit ~p" >>).
- -define(SQL_TRUNCATE_PLAYER_TOP_PK, <<"truncate `player_top_pk`">>).
- -define(SQL_SELECT_RANK_CENTER, <<"select `role_id`, `role_name`, `career`, `power`, `platform`, `server_num`, `server_id`, `score`, `pk_time` from `top_pk_rank_center`">>).
- -define(SQL_TRUNCATE_RANK_CENTER, <<"truncate `top_pk_rank_center`">>).
- -define(SQL_REPLACE_INTO_RANK_CENTER, <<"replace into `top_pk_rank_center`(`role_id`, `role_name`, `career`, `power`, `platform`, `server_num`, `server_id`, `score`, `pk_time`) values ~ts">>).
-
-
- %% ----- 以下为old配置 -----
-
- -define(DAILY_ID_REWARD_STATE, 1). %% 日常id 用来标识今天是否领过每日荣誉值
- -define(DAILY_ID_ENTER_COUNT, 2). %% 每日进入次数
- -define(DAILY_ID_BUY_COUNT, 3). %% 每日购买次数
- -define(DAILY_ID_COUNT_REWARD_MARK, 4).%% 日常id 用来标识今天领过次数奖励的状态 2#10001001 标识领过第1 4 8次的奖励
-
- -define(STATE_NONE, 0). %% DAILY_ID_REWARD_STATE 的值的含义 未设置
- -define(STATE_SETUP, 1). %% DAILY_ID_REWARD_STATE 的值的含义 已设置未领取
- -define(STATE_GOT, 2). %% DAILY_ID_REWARD_STATE 的值的含义 已经领取
-
- -define(RANK_NUM_MAX, 30). %% 排行榜最多人数
|