%% --------------------------------------------------------------------------- %% @doc 跨服竞榜活动头文件. %% @author zhaoyu %% @since 2018-11-27 %% --------------------------------------------------------------------------- -ifndef(RACE_RANK_HRL). -define(RACE_RANK_HRL, ok). %% 还没结算 -define(NOT_SETTLEMENT, 0). %% 排行榜最大上榜人数 -define(RR_RANK_MAX, 100). -define(TYPE_RACE,1). %%寻常冲榜 -define(TYPE_WISH,2). %%许愿冲榜 -define(TYPE_POOL_RACE,0). %%正常奖池 -define(TYPE_POOL_COIN,1). %%金币奖池 -define(TYPE_POOL_RUNE,2). %%符文奖池 %% 跨服竞榜活动-时间配置 -record(race_rank_act, { act_id = 0 %% 活动Id ,type = 0 %% 1冲榜2许愿池 ,open_day = 0 %% 开服多少天后可以参与 ,name = <<>> %% 活动名 ,start_time = 0 %% 活动开始时间 ,end_time = 0 %% 活动结束时间 ,show_time = 0 %% 展示时间 ,lv = 0 %% 玩家参加活动需要达到的等级 ,condition = [] %% 条件 } ). %% 跨服竞榜活动-奖池奖励配置 -record(race_rank_draw_pool, { act_id = 0 %% 活动Id ,type = 0 %% 0冲榜1金币2符文 ,stage = 0 %% 世界等级阶段 ,award_id = 0 %% 奖励Id ,award = [] %% 奖励 ,loading_times = 0 %% 入库次数 ,weight = 0 %% 权重 ,is_broadcast = 0 %% 是否发送传闻(1发 0不发) ,is_tv = 0 %% 是否上电视(1上 0不上) } ). %% 跨服竞榜活动-排名奖励 -record(race_rank_award, { act_id = 0 %% 活动Id ,stage = 0 %% 世界等级阶段 ,min_rank = 0 %% 排名上限 ,max_rank = 0 %% 排名下限 ,need_score = 0 %% 最低上榜要求 ,award = [] %% 奖励 } ). %% 跨服竞榜活动-积分阶段奖励 -record(race_rank_times_award, { act_id = 0 %% 活动Id ,stage = 0 %% 世界等级阶段 ,award_id = 0 %% 奖励Id ,need_score = 0 %% 所需积分 ,server_score = 0 %% 所需全服积分 ,award = [] %% 奖励 } ). %% 跨服竞榜活动信息 -record(rr_act_info, { act_id = 0 %% 活动Id ,status = 0 %% 已结算奖励:结算时的时间戳;还没结算奖励:0 ,start_time = 0 %% 活动开始时间 ,end_time = 0 %% 活动结束时间 ,show_end_time = 0 %% 展示结束时间 }). %% race_rank_act进程state -record(race_rank_act_info, { opening = [] %% 正在开启中/展示中的活动[#rr_act_info{}] ,ref = 0 %% 活动开启结束定时器 ,scores = [] %% 本服积分 }). %% race_rank_mgr进程state -record(rr_rank_state, { server2zone_dict = #{} %% 按ServerId查询ZoneId的索引数据 ,acts_rank = [] %% 排行榜数据[#rr_act_rank{}] } ). %% 竟榜活动排行榜 -record(rr_act_rank, { act_id = 0 %% 活动Id ,ranks = [] %% 排行榜数据[#rr_rank{}] } ). %% 排行榜数据 -record(rr_rank, { act_id = 0 %% 活动Id ,zone_id = 0 %% 分区Id ,roles = [] %% 排行榜数据[#rr_rank_role{}] } ). %% 排行榜角色数据 -record(rr_rank_role, { act_id = 0 %% 活动Id ,zone_id = 0 %% 分区Id ,role_id = 0 %% 角色Id ,role_name = <<>> %% 角色名 ,server_id = 0 %% 服务器Id(后台唯一服号) ,server_num = 0 %% 服务器编号(玩家可见的服编号) ,score = 0 %% 积分 ,time = 0 %% 时间戳 ,ranking = 0 %% 排名 } ). %% 角色竞榜活动数据 -record(role_race_rank, { act_data = [] %% 角色竞榜活动数据:[#rr_act_data{}] } ). %% 角色竞榜活动数据 -record(rr_act_data, { act_id = 0 %% 活动Id ,times = 0 %% 累计次数 ,buy_ten_times = 0 %% 抽十次的累计次数 ,buy_ten_time = 0 %% 最近一次抽十次的时间戳 ,score = 0 %% 积分 ,use_free_times = 0 %% 已使用免费次数 ,free_time = 0 %% 最近一次使用免费次数的时间戳 ,award_log = [] %% 累计次数奖励领取记录[AwardId] ,valid_time = 0 %% 数据有效截止时间戳 ,coin = 0 %%金币 ,stage = 0 %%当前阶段 累计充值阶段 ,time = 0 %%充值时间 = ,coin_draw = 0 %%金币祈愿次数 ,coin_time = 0 %%金币祈愿时间 ,rune_draw = 0 %%符文祈愿次数 ,rune_time = 0 %%符文祈愿时间 } ). %% 活动世界等级阶段数据 -record(rr_act_stage, { act_id = 0 %% 活动Id ,stage = 0 %% 世界等级阶段 ,valid_time = 0 %% 数据有效截止时间戳(等于活动的show_end_time) } ). %% race_rank_opening_act数据表语句. %% 活动展示期过后清理数据 -define(RR_ACT_SELECT, <<"SELECT `act_id`,`status` FROM `race_rank_opening_act`">>). -define(RR_ACT_BATCH, <<"REPLACE INTO race_rank_opening_act (`act_id`,`status`)">>). -define(RR_ACT_DEL, <<"DELETE FROM race_rank_opening_act WHERE `act_id`=~p">>). -define(RR_ACT_DEL_ALL, <<"TRUNCATE TABLE race_rank_opening_act">>). %% race_rank数据表语句. -define(RR_RANK_SELECT, <<"SELECT `act_id`,`zone_id`,`rid`,`rname`,`server_id`" ",`server_num`,`score`,`time` FROM `race_rank`">>). -define(RR_RANK_BATCH, <<"REPLACE INTO race_rank (`act_id`,`zone_id`,`rid`,`rname`,`server_id`" ",`server_num`,`score`,`time`) VALUES ~ts">>). -define(RR_RANK_REPLACE, <<"REPLACE INTO race_rank (`act_id`,`zone_id`,`rid`,`rname`,`server_id`" ",`server_num`,`score`,`time`) VALUES (~p, ~p, ~p, '~ts', ~p,~p, ~p, ~p)">>). -define(RR_RANK_DEL, <<"DELETE FROM race_rank WHERE `act_id`=~p AND `rid`=~p">>). -define(RR_RANK_BATCH_DEL, <<"DELETE FROM race_rank WHERE `act_id`=~p AND `rid` IN (~ts)">>). -define(RR_RANK_DEL_ACT, <<"DELETE FROM race_rank WHERE `act_id`=~p">>). -define(RR_RANK_DEL_ALL, <<"TRUNCATE TABLE race_rank">>). -define(RR_RANK_LOG_BATCH, <<"REPLACE INTO race_rank (`act_id`,`zone_id`,`rid`,`rname`,`server_id`" ",`server_num`,`score`,`time`) VALUES ~ts">>). %% role_race_rank数据表语句. -define(RR_ROLE_SELECT, <<"SELECT `act_id`,`times`,`buy_ten_times`,`buy_ten_time`,`score`,`use_free_times`,`free_time`,`award_log`" ",`valid_time`,`coin`,`stage`,`time`,`coin_draw`,`coin_time`,`rune_draw`,`rune_time` FROM `role_race_rank` WHERE `rid`=~p">>). -define(RR_ROLE_REPLACE, <<"REPLACE INTO role_race_rank (`rid`,`act_id`,`times`,`buy_ten_times`,`buy_ten_time`,`score`,`use_free_times`,`free_time`" ",`award_log`,`valid_time`,`coin`,`stage`,`time`,`coin_draw`,`coin_time`,`rune_draw`,`rune_time`) VALUES (~p, ~p, ~p, ~p, ~p, ~p, ~p, ~p, '~ts', ~p,~p, ~p, ~p, ~p, ~p, ~p,~p)">>). -define(RR_ROLE_DEL, <<"DELETE FROM role_race_rank WHERE `act_id`=~p">>). -define(RR_ROLE_DEL_ROLE, <<"DELETE FROM role_race_rank WHERE `act_id`=~p AND `rid`=~p">>). -define(RR_ROLE_DEL_ALL, <<"TRUNCATE TABLE role_race_rank">>). %% log_race_rank数据表语句. -define(RR_LOG_RANK_BATCH, <<"REPLACE INTO log_race_rank_kf (`act_id`,`zone_id`,`role_id`,`rname`,`server_id`" ",`server_num`,`stime`,`etime`,`score`,`rank`,`ctime`,`time`) VALUES ~ts">>). -define(RR_LOG_RANK_REPLACE, <<"REPLACE INTO log_race_rank (`act_id`,`zone_id`,`role_id`,`rname`,`stime`,`etime`,`score`,`rank`,`ctime`,`time`) VALUES (~p,~p,~p,'~ts',~p,~p,~p,~p,~p,~p)">>). %% race_rank_server_score数据表语句. -define(SQL_SERVER_SCORE_GET, <<"SELECT `act_id`,`score`,`time` FROM `race_rank_server_score`">>). -define(SQL_SERVER_SCORE_REPLACE, <<"REPLACE INTO `race_rank_server_score` (`act_id`,`score`,`time`) VALUES (~p, ~p, ~p)">>). -define(SQL_SERVER_SCORE_DEL, <<"DELETE FROM `race_rank_server_score` WHERE `act_id`=~p">>). -endif. %% RACE_RANK_HRL