源战役
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

189 lines
6.9 KiB

%%%------------------------------------
%%% @Module : race_act
%%% @Author : zengzy
%%% @Created : 2019-04-27
%%% @Description: 竞榜的活动
%%%------------------------------------
%% ---------------------------------------------------------------------------
%% 类型定义
%% ---------------------------------------------------------------------------
-define(RACE_ACT_MOUNT, 1). %% 活动1:坐骑竞榜
-define(RACE_ACT_LIGHT_WEAPON, 2). %% 活动2:光武竞榜
-define(RACE_ACT_WING, 3). %% 活动3:翅膀竞榜
%%活动开启类型
-define(TYPE_OPEN_DAY, 1). %% 开服天数控制
-define(TYPE_BJ_TIME, 2). %% 北京时间控制
-define(NSHOW_TIPS_LIST, []). %% 需要转动,不推送频道消息类型
-define(GOLD_ACT, 1). %%钻石奖池
-define(SCORE_ACT, 2). %%积分奖池
-define(OPEN_LV, 120). %% 开启等级
-define(ACT_DAYS, 2). %% 活动开启天数
-define(SHOW_HOURS, 2). %% 展示时间(小时)
%%奖励状态
-define(CAN_GET, 1). %% 可以领取
-define(HAS_GET, 2). %% 已经领取
-define(CAN_NOT_GET, 3). %% 未满足条件不能领取
-define(ETS_RACE_ACT, ets_race_act). %% ets表
%% ---------------------------------------------------------------------------
%% 其他定义
%% ---------------------------------------------------------------------------
-define(OPEN, 1). %% 开启
-define(CLOSE, 0). %% 关闭
-define(ONE_TREASURE, 1). %% 单抽
-define(TEN_TREASURE, 10). %% 10抽
-define(ZERO_CLEAR, 1). %% 凌晨清
-define(ACT_CLEAR, 2). %% 活动清
%% ets结构(记录已开启的活动)
-record(ets_race_act, {
type = 0,
subtype = 0
}).
%% ps身上竞榜活动的结构
-record(race_act, {
data_list = [] %% 活动需要统计保存的数据[#race_act_data{}]
}).
%% 数据记录
-record(race_act_data,{
id = {0, 0}, %% {主类型,次类型}
type = 0, %% 主类型
subtype = 0, %% 次类型
score = 0, %% 积分
today_score = 0, %% 今日积分
times = 0, %% 累积次数
reward_list = [], %% 已获奖励:奖励id
score_reward = [], %% 已领取积分奖励id
other = [], %% 其他数据:根据各活动()
last_time = 0 %% 最后抽奖时间
}).
-record(race_act_mgr, {
opening_act = [], %% 开启中的活动 [#base_race_act_info{}] 存放的活动开启类型为TYPE_BJ_TIME, TYPE_OPEN_DAY走功能内
show_act = [], %% 展示中的活动 [#base_race_act_info{}] 存放的活动开启类型为TYPE_BJ_TIME, TYPE_OPEN_DAY走功能内
calc_timer = 0, %% 结算定时器
check_timer = 0 %% 零点定时器
}).
%% 进程记录
-record(race_act_status, {
zone_id = 0, %% 区id
bj_rank_list = [], %% 北京时间活动类型榜单,格式[#rank_bj_type{}]
od_rank_list = [] %% 开服天数活动类型榜单,格式[#rank_od_type{}]
}).
%% 开服天数活动类型榜单
-record(rank_od_type,{
id = {0,0}, %% 主键,格式{type,subtype}
type = 0, %% 主类型
subtype = 0, %% 次类型
data_list = [] %% 格式 [#rank_data{}]
}).
%% 对应天数排行
-record(rank_od_data, {
day = 0, %% 开始天数 (1:第一天,2:第二天)
rank_list = [], %% 格式 #rank_role{}
score_limit = 0 %% 最后一名分数
}).
%% 北京时间活动类型榜单
-record(rank_bj_type,{
id = {0,0}, %% 主键,格式{type,subtype}
type = 0, %% 主类型
subtype = 0, %% 次类型
rank_list = [], %% 格式 #rank_role{}
score_limit = 0 %% 最后一名分数
}).
-record(rank_role,{
id = 0 %%玩家id
,server_id = 0 %%服务器id
,server_num = 0 %%
,node = none %%所在节点
,score = 0 %%分数
,rank = 0 %%排名
,figure = undefined
,act_st = 0 %%游戏服活动开始时间
,day = 0 %%游戏服开始时间换算的天数(不存db)
,last_time = 0
}).
%% ---------------------------------------------------------------------------
%% sql定义
%% ---------------------------------------------------------------------------
-define(sql_race_act_role_select, <<
"select
`role_id`,`type`,`subtype`,`score`,`today_score`,`times`,`reward_list`,`score_reward`,`other`,`last_time` from race_act_role
where role_id=~p ">>).
-define(sql_race_act_role_replace, <<
"replace into race_act_role (`role_id`,`type`,`subtype`,`score`,`today_score`,`times`,`reward_list`,`score_reward`,`other`,`last_time`) values(~p,~p,~p,~p,~p,~p,'~s','~s','~s',~p)">>).
-define(sql_race_act_rank_select, <<"
SELECT
`role_id`,`type`, `subtype`,`server_id`,`server_num`,`name`, `score`, `act_time`, `time`
FROM race_act_rank order by score desc">>).
-define(sql_race_act_rank_replace,<<"
replace into `race_act_rank`(
`role_id`,`type`, `subtype`,`server_id`, `server_num`,`name`, `score`,`act_time`, `time`)
values(~p, ~p, ~p, ~p, ~p, '~s', ~p, ~p, ~p)">>).
-define(sql_race_act_open_selete, <<"select `type`,`subtype` from race_act">>).
-define(sql_race_act_open_replace, <<"replace into `race_act`(type,subtype) values (~p,~p) ">>).
%% ---------------------------------------------------------------------------
%% 配置定义
%% ---------------------------------------------------------------------------
%%活动配置
-record(base_race_act_info, {
type = 0, %%主类型
sub_type = 0, %%次类型
act_type = 0, %%活动开启类型
name = "", %%名字
open_day = 0, %%开服天数
open_over = 0, %%开服结束
start_time = 0, %%活动开始时间
end_time = 0, %%活动结束时间
clear_type = 0, %%1为零点清;2为活动清
treasure = [], %%抽检方式 [{次数,金额}]
others = [] %%其他
}).
%%排名奖励
-record(base_race_act_rank_reward,{
type = 0, %%主类型
sub_type = 0, %%次类型
reward_id = 0, %%奖励id
rank_min = 0, %%排名下限
rank_max = 0, %%排名上限
limit_val = 0, %%最低上榜值
reward = [] %%奖励
}).
%%阶段奖励
-record(base_race_act_stage_reward,{
type = 0, %%主类型
sub_type = 0, %%次类型
reward_id = 0, %%奖励id
need_val = 0, %%所需值
reward = [] %%奖励
}).
%%奖池配置
-record(base_race_act_reward,{
type = 0, %%主类型
sub_type = 0, %%次类型
cost_type = 0, %%奖池类型
reward_id = 0, %%奖励id
ratio = 0, %%显示权重
reward = [], %%内容
condition = [] %%条件 [加权下限,加权上限,权重,临时权重,必中次数]
}).