|
|
- %%%-------------------------------------------------------------------
- %%% @author liushl
- %%% @doc
- %%%
- %%% @end
- %%%-------------------------------------------------------------------
- -author("liushl").
-
- %%%-------------------------------------------------------------------
- %%% @doc
- %%% 常量定义
- %%% @end
- %%%-------------------------------------------------------------------
- %% 比赛阶段
- -define(BC_STAGE_IDLE, 0). %% 未开始
- -define(BC_STAGE_SIGN, 1). %% 报名阶段
- -define(BC_STAGE_PRE, 2). %% 预赛海选
- -define(BC_STAGE_TOP_16, 3). %% 16进8
- -define(BC_STAGE_TOP_8, 4). %% 8进4
- -define(BC_STAGE_TOP_4, 5). %% 4进2
- -define(BC_STAGE_TOP_2, 6). %% 决赛
- -define(BC_STAGE_CHAMPION,7). %% 冠军专用
-
- -define(BC_MASK, 1).
-
- %% 每天活动开始时间
- -define(BC_BEGIN_TIME, {0, 0, 0}).
- %% 总决赛活动结束时间
- -define(BC_END_TIME, {23, 55, 0}).
-
- %% 游戏服大于该轮次时,进入跨服模式
- -define(BC_LOCAL_PATTERN_ROUND, 1).
-
- %% 阶段持续时间:天
- -define(BC_STAGE_DAY(Stage),
- case Stage of
- ?BC_STAGE_SIGN -> 1;
- ?BC_STAGE_PRE -> 2;
- ?BC_STAGE_TOP_16 -> 1;
- ?BC_STAGE_TOP_8 -> 1;
- ?BC_STAGE_TOP_4 -> 1;
- ?BC_STAGE_TOP_2 -> 1
- end).
- %% 根据星期获得活动阶段和阶段开启星期
- -define(BC_STAGE_BY_WEEK(Week),
- case Week of
- 1 -> {?BC_STAGE_SIGN, 1};
- 2 -> {?BC_STAGE_PRE, 2};
- 3 -> {?BC_STAGE_PRE, 2};
- 4 -> {?BC_STAGE_TOP_16, 4};
- 5 -> {?BC_STAGE_TOP_8, 5};
- 6 -> {?BC_STAGE_TOP_4, 6};
- 7 -> {?BC_STAGE_TOP_2, 7}
- end).
-
- %% 阶段选取人数
- -define(BC_STAGE_ROLES(Stage),
- case Stage of
- ?BC_STAGE_SIGN -> data_beauty_contest:get_beauty_contest_kv(act_role_number);
- ?BC_STAGE_PRE -> 16;
- ?BC_STAGE_TOP_16 -> 8;
- ?BC_STAGE_TOP_8 -> 4;
- ?BC_STAGE_TOP_4 -> 2;
- ?BC_STAGE_TOP_2 -> 1
- end).
-
- %% 参赛数据
- %% 用四个参数表示一条参赛数据
- %%// {衣服时装,0, 时装id,颜色}
- %%// {头饰, 0, 时装id,颜色}
- %%// 武器/坐骑/翅膀/宝具:
- %%// {珍宝,1,珍宝外观id,星级}
- %%// {进阶,2,阶数,0}
- %%// {时装,3,时装id,颜色}
- %%type:int8 // 类型1-6
- %%value1:int8 // 类型1-2(0)|类型3-6(幻化类型:1珍宝2进阶阶数3时装)
- %%value2:int32 // 类型1-2(时装id)|类型3-6(幻化类型1:珍宝外观id/幻化类型2:进阶阶数/幻化类型3:时装id)
- %%value3:int8 // 类型1-2(时装颜色id)|类型3-6(幻化类型1:珍宝星级/幻化类型2:0/幻化类型3:时装颜色id)
- %%}
- -define(BC_DATA_CLOTH, 1). %% 衣服时装
- -define(BC_DATA_HEAD, 2). %% 头饰
- -define(BC_DATA_WEAPON, 3). %% 武器
- -define(BC_DATA_HORSE, 4). %% 坐骑
- -define(BC_DATA_WING, 5). %% 翅膀
- -define(BC_DATA_PEARL, 6). %% 宝具
- -define(BC_DATA_HAIR, 7). %% 发型
-
- -define(BC_FOSTER_SKIN, 1). %% 珍宝皮肤
- -define(BC_FOSTER_STAGE, 2). %% 进阶外观
- -define(BC_FOSTER_FASHION, 3). %% 时装
- %% 计数器
- -define(BC_COUNTER_DAILY_VOTE, 1).
- %%%-------------------------------------------------------------------
- %%% @doc
- %%% 数据结构
- %%% @end
- %%%-------------------------------------------------------------------
- %% 参赛人员
- -record(beauty_contest_role, {
- role_id = 0
- , zone_id = 0
- , server_id = 0
- , server_num = 0
- , picture = undefined
- , fashion_num = 0 %% 时装数量
-
- , contest_data = [] %% 竞赛数据
- , vote = 0 %% 票数
- , pick_counts = 0 %% 挑选次数
- , time = 0 %% 投票时间
- , update = true %% 更新标识:投票/个人信息变更/阶段结算/合服合区
- %% 最后阶段, 默认进入了海选
- , stage = ?BC_STAGE_PRE
- , origin_rank = 0 %% 初始排名(海选赛进16强的初始排名,赛程期间不变)
- , rank = 0 %% 最终排名
- }).
-
- %% 报名人员
- -record(beauty_contest_sign, {
- role_id = 0
- , contest_data = [] %% 竞赛数据
- , sign_award = 0 %% 是否报名领奖
- }).
-
- %% 玩家数据
- -record(role_beauty_contest, {
- vote_log = [] %% 投票日志:[{name, time}]
- }).
-
- -record(beauty_contest, {
- cls_type = 0
- , act_data = #{} %% 活动数据
-
- , begin_time = 0 %% 活动开始时间
- , end_time = 0 %% 活动结束时间
- , stage = 0 %% 活动阶段
- , stage_begin = 0 %% 阶段开始时间
- , stage_end = 0 %% 阶段结束时间
-
- , ref_stage = undefined %% 阶段切换定时器-结算当前阶段/进入下一阶段
- , ref_save = undefined %% 定时保存玩家数据
-
- , round = 0 %% 本服有效:轮次,每次开启+1,第一轮为本服模式
- , sign_roles = #{} %% 本服有效:所有报名的玩家。比赛阶段,默认每个玩家都报名了
- , vote_candidates = #{} %% 本服有效:玩家的投票候选:[{RoleId, [A,B]}]
- %% 玩家每次请求投票候选后,记录下来,直到玩家投票才进行更新
- , act_log = [] %% 本服有效:上期数据,每个服务器都记录一份数据
- }).
-
- -record(beauty_contest_act, {
- zone_id = 0
- , members = [] %% 全部玩家
- }).
- %%%-------------------------------------------------------------------
- %%% @doc
- %%% DB
- %%% @end
- %%%-------------------------------------------------------------------
- %% 加载参赛人员-跨服
- -define(SQL_BC_LOAD_ACT_ROLE,
- <<"SELECT `role_id`,`zone_id`,`server_id`,`server_num`,`name`,`lv`,`sex`,`vip`,`sup_vip`,`career`,`turn`,`picture`,`picture_dress`,`contest_data`,`vote`,`pick_counts`,`time`,`stage`,`rank`,`origin_rank`,`fashion_num` FROM beauty_contest_role">>).
- %% 保存参赛人员-批量-跨服
- -define(SQL_BC_SAVE_ACT_ROLE_BATCH,
- <<"REPLACE INTO beauty_contest_role(`role_id`,`zone_id`,`server_id`,`server_num`,`name`,`lv`,`sex`,`vip`,`sup_vip`,`career`,`turn`,`picture`,`picture_dress`,`contest_data`,`vote`,`pick_counts`,`time`,`stage`,`rank`,`origin_rank`,`fashion_num`) VALUES ~ts">>).
- %% 清除参赛人员-跨服
- -define(SQL_BC_DELETE_ACT_ROLE,
- <<"DELETE FROM beauty_contest_role WHERE zone_id in (~ts)">>).
- %% 清空参赛人员-跨服
- -define(SQL_BC_CLEAN_ACT_ROLE,
- <<"TRUNCATE beauty_contest_role">>).
-
- %% 加载参赛人员-本服
- -define(SQL_BC_LOAD_ACT_ROLE_LOCAL,
- <<"SELECT `role_id`,`contest_data`,`vote`,`pick_counts`,`time`,`stage`,`rank`,`origin_rank` FROM beauty_contest_role_local">>).
- %% 保存参赛人员-批量-本服
- -define(SQL_BC_SAVE_ACT_ROLE_BATCH_LOCAL,
- <<"REPLACE INTO beauty_contest_role_local(`role_id`,`contest_data`,`vote`,`pick_counts`,`time`,`stage`,`rank`,`origin_rank`) VALUES ~ts">>).
- %% 清空参赛人员-本服
- -define(SQL_BC_CLEAN_ACT_ROLE_LOCAL,
- <<"TRUNCATE beauty_contest_role_local">>).
-
- %% 加载报名数据
- -define(SQL_BC_LOAD_SIGN,
- <<"SELECT role_id,contest_data,sign_award FROM beauty_contest_sign">>).
- %% 保存报名数据
- -define(SQL_BC_SAVE_SIGN_ONE,
- <<"REPLACE INTO beauty_contest_sign(role_id,contest_data,sign_award) VALUES(~p,'~ts',~p)">>).
- %% 清空报名数据
- -define(SQL_BC_CLEAN_SIGN, <<"TRUNCATE beauty_contest_sign">>).
-
- %% 加载投票记录
- -define(SQL_BC_LOAD_VOTE_LOG,
- <<"SELECT vote_name,time FROM beauty_contest_vote_log WHERE role_id=~p ORDER BY time DESC LIMIT 20">>).
- %% 保存一条投票记录
- -define(SQL_BC_SAVE_VOTE_LOG,
- <<"INSERT INTO beauty_contest_vote_log(role_id,vote_name,time) VALUES(~p,'~ts',~p)">>).
- %% 清空投票记录
- -define(SQL_BC_CLEAN_VOTE_LOG,
- <<"TRUNCATE beauty_contest_vote_log">>).
-
- %% 加载上期日志
- -define(SQL_BC_LOAD_ACT_LOG,
- <<"SELECT `rank`,`server_num`,`name`,`lv`,`sex`,`vip`,`sup_vip`,`career`,`turn`,`picture`,`picture_dress`,`contest_data`,`origin_rank`,`stage` FROM beauty_contest_log">>).
- %% 清空上期日志
- -define(SQL_BC_CLEAN_ACT_LOG, <<"TRUNCATE beauty_contest_log">>).
- %% 保存上期日志
- -define(SQL_BC_SAVE_ACT_LOG, <<"INSERT INTO beauty_contest_log(`rank`,`server_num`,`name`,`lv`,`sex`,`vip`,`sup_vip`,`career`,`turn`,`picture`,`picture_dress`,`contest_data`,`origin_rank`,`stage`) VALUES ~ts">>).
-
- %%%-------------------------------------------------------------------
- %%% @doc
- %%% 玩法配置
- %%% @end
- %%%-------------------------------------------------------------------
- %% 服务器基础开服天数:功能模块开放配置
- -define(BC_OPEN_TIME, lib_module:get_open_day(416)).
- %% 投票区人数
- -define(BC_RANK_LENGTH, data_beauty_contest:get_beauty_contest_kv(act_role_number)).
- %% 系统投票随机最大数
- -define(BC_SYS_VOTE_NUM, 5).
-
- -ifdef(DEV_SERVER).
- %% 系统投票间隔时间
- -define(BC_SYS_VOTE_TIME, 60).
- %% 保存玩家数据时间间隔
- -define(BC_SAVE_TIME, 60).
- -else.
- -define(BC_SYS_VOTE_TIME, 3600).
- -define(BC_SAVE_TIME, 3600).
- -endif.
-
- %% 报名奖励
- -define(BC_SIGN_AWARD, data_beauty_contest:get_beauty_contest_kv(signup_reward)).
- %% 投票普通奖励
- -define(BC_VOTE_NORMAL_AWARD, data_beauty_contest:get_beauty_contest_kv(vote_reward)).
- %% 投票额外奖励
- -define(BC_VOTE_EXTRA_AWARD, data_beauty_contest:get_beauty_contest_kv(sp_vote_reward)).
-
- %% 可投票次数
- -define(BC_VOTE_COUNTS(Stage),
- case Stage of
- ?BC_STAGE_PRE -> data_beauty_contest:get_beauty_contest_kv(daily_vote);
- ?BC_STAGE_TOP_16 -> data_beauty_contest:get_beauty_contest_kv(daily_vote);
- ?BC_STAGE_TOP_8 -> data_beauty_contest:get_beauty_contest_kv(daily_vote);
- ?BC_STAGE_TOP_4 -> data_beauty_contest:get_beauty_contest_kv(four_vote);
- ?BC_STAGE_TOP_2 -> data_beauty_contest:get_beauty_contest_kv(finals_vote);
- _ -> 0
- end).
|