%% ---------------------------------------------------------
|
|
%% @doc arena
|
|
%% @author fwx
|
|
%% @since 2017-11-20
|
|
%% @deprecated 竞技场
|
|
%% ----------------------------------------------------------
|
|
-define(ARENA_FREE_NUM_MAX, 1). %% 最大挑战次数
|
|
-define(ARENA_INSPIRE_NUM_MAX, 2). %% 最大鼓舞次数
|
|
-define(ARENA_CONFIG_LV, 3). %% 竞技场开放等级
|
|
-define(ARENA_MAX_RANK, 4). %% arena最低排名
|
|
-define(ARENA_ROBOT_LV, 5). %% 假人等级
|
|
-define(ARENA_ROBOT_CAREER, 6). %% 假人职业
|
|
-define(ARENA_ROBOT_CLOTH, 7). %% 假人衣服Id
|
|
-define(ARENA_ROBOT_WEAPON, 8). %% 假人武器Id
|
|
-define(ARENA_MAX_RECORD, 10). %% 战斗记录最大数量
|
|
-define(ARENA_SCENE_ID, 11). %% 竞技场景id
|
|
-define(ARENA_BORN_POS, 12). %% 竞技场景出生坐标列表
|
|
-define(ARENA_START_TIME, 13). %% 开始前倒计时间
|
|
-define(ARENA_BATTLE_TIME, 14). %% 战斗持续时间
|
|
-define(ARENA_SELF_POS, 15). %% 真人坐标
|
|
-define(ARENA_REWARD_TIME, 16). %% 结算界面持续时间
|
|
-define(ARENA_COOLDOWN_CD, 17). %% 玩家每次挑战不论胜负均会增加多少秒冷却时间
|
|
-define(ARENA_COOLDOWN_MAX_CD, 18). %% 当前冷却时间大于等于多少秒时玩家不可再挑战
|
|
-define(ARENA_COOLDOWN_PRICE, 19). %% 冷却时间扣费:{价格, 秒数}
|
|
-define(ARENA_COOLDOWN_VIP, 20). %% 多少级VIP等级以及以上的玩家不会累计挑战冷却时间
|
|
-define(ARENA_SEASON_CONFIG, 21). %% 赛季结算配置
|
|
-define(ARENA_BATTLE_POS, 22). %% 竞技场战斗坐标列表
|
|
-define(ARENA_QUICK_CONF, 23). %% 秒杀条件
|
|
-define(ARENA_ROBOT_NMAE, 24). %% 假人名字
|
|
-define(ARENA_SP_MAX_NUM, 25). %% 大神挑战每日次数
|
|
-define(ARENA_SP_MAX_RANK, 26). %% 大神挑战允许排名
|
|
-define(ARENA_SP_ROLE_NUM, 27). %% 大神数量
|
|
|
|
-define(BATTLE_STATUS_UNLOCK, 40). %% 位置锁定时间
|
|
-define(ARENA_BATTLE_REWARD_NUM, 5). %% 5战可获得奖励
|
|
%% 排名变化情况
|
|
-define(RANK_STAY, 0). %% 排名没变化
|
|
-define(RANK_UP, 1). %% 排名上升
|
|
-define(RANK_DOWN, 2). %% 排名下降
|
|
%% 奖励领取状态
|
|
-define(HAVE_GET_REWARD, 2). %% 已领取
|
|
-define(HAVE_CAN_REWARD, 1). %% 可领奖励
|
|
-define(HAVE_NOT_REWARD, 0). %% 不可领
|
|
%% 计数器
|
|
-define(ARENA_FIRST_WIN, 1). %% 每日首胜状态 0没达到|1达到未领取|2达到已领取
|
|
-define(ARENA_USE_NUM, 2). %% 已挑战次数
|
|
-define(ARENA_BUY_NUM, 3). %% 购买次数
|
|
-define(ARENA_DAILY, 4). %% 每日奖励领取状态
|
|
-define(ARENA_FIVE_BATTLE, 5). %% 5战奖励领取状态
|
|
-define(ARENA_SP_NUM, 6). %% 大神挑战次数
|
|
-define(ARENA_SP_AWARD, 7). %% 大神奖励领取状态
|
|
%% 战斗结果
|
|
-define(ARENA_WIN, 1). %% 胜利
|
|
-define(ARENA_FAIL, 0). %% 失败
|
|
%% 战斗状态
|
|
-define(BATTLE_STATUS, 1). %% 战斗中
|
|
-define(NOT_BATTLE_STATUS, 0). %% 不在战斗中
|
|
%% 挑战方式
|
|
-define(CHALLENGE, 1). %% 主动挑战
|
|
-define(BE_CHALLENGED, 2). %% 被挑战
|
|
%% 结束状态
|
|
-define(ARENA_BATTLE_END_TYPE_FORCE, 1). %% 跳过战斗/超时结束战斗
|
|
-define(ARENA_BATTLE_END_TYPE_NORMAL, 2). %% 正常结束战斗
|
|
%% 奖励形式
|
|
-define(ARENA_AWARD_DAILY, 1). %% 每日奖励
|
|
-define(ARENA_AWARD_FIRST_WIN, 2). %% 首胜奖励
|
|
-define(ARENA_AWARD_FIVE, 3). %% 5战奖励
|
|
-define(ARENA_AWARD_SP, 4). %% 大神奖励
|
|
|
|
%% 最大排名
|
|
-define(ARENA_MAX_RANK_TRULY, case data_arena:get_arena_value(?ARENA_MAX_RANK) of
|
|
[ArenaMaxRank] -> ArenaMaxRank;
|
|
_ -> 3000
|
|
end).
|
|
|
|
|
|
%%-------------竞技场玩家冷却配置-------------------------
|
|
-define(TIME_COOLER, 17). % 玩家每次挑战不论胜负均会增加多少秒冷却时间,此字段的标识符
|
|
-define(MAX_COOLER, 18). % 当前冷却时间大于等于多少秒时玩家不可再挑战,此字段的标识符
|
|
-define(ONLINE_LIMIT, 28).
|
|
-record(arena_role_cd,{
|
|
roleid ,
|
|
% onlinetime = 0, %% 玩家在线时长(当日总计不是单次登陆)
|
|
last_use, %% 最后一次使用竞技场时间点
|
|
rest_time, %% 剩余冷却时间
|
|
trigger %% 是否触发冷却限制,触发后只能等冷却变为0才可以继续挑战, 0为不触发,1为触发
|
|
}).
|
|
|
|
%%---------------------------------------------------
|
|
|
|
%% 竞技场管理数据
|
|
-record(arena_state, {
|
|
rank_maps = maps:new(), %% 排名 rank => role_id
|
|
battle_status_maps = maps:new(), %% 是否战斗状态中 rank => UpdateTime
|
|
season = 0, %% 赛季Id(当前的赛季Id还没结算,结算后Id+1)
|
|
season_ref = 0 %% 赛季定时器
|
|
}).
|
|
|
|
%% 真实玩家数据
|
|
-record(real_role, {
|
|
role_id = 0, %% 角色id
|
|
rank = 0, %% 排名
|
|
rank_time = 0, %% 数据变更时间
|
|
%% 获取昨日排名的时候,如果rank_time是今天,则直接取reward_rank,如果rank_time是过去,则取rank
|
|
history_rank = 0, %% 历史最高排名
|
|
reward_rank = 3000 %% 奖励根据的排名
|
|
}).
|
|
|
|
|
|
|
|
%% 挑战用record
|
|
-record(challenge_role, {
|
|
role_id = 0, %% 角色id
|
|
self_name = "", %% 我的名字
|
|
self_power = 0, %% 我的战力
|
|
self_rank = 0, %% 自己的排名
|
|
self_scene = 0, %% 挑战用场景
|
|
self_x = 0, %% 自己坐标
|
|
self_y = 0,
|
|
history_rank = 0, %% 历史最高排名
|
|
rival_id = 0, %% 对手id
|
|
rival_power = 0, %% 对手战力
|
|
rival_rank = 0, %% 对手排名
|
|
sp = 0 %% 挑战类型:1大神、0普通
|
|
}).
|
|
|
|
%% 比赛记录
|
|
-record(challenge_record, {
|
|
code = 0, %% 挑战还是被挑战 1挑战 2被挑战
|
|
role_id = 0, %% 角色id
|
|
time = 0, %% 时间戳
|
|
rival_id = 0, %% 挑战你的玩家id
|
|
rival_name = <<>>, %% 挑战你的玩家名字
|
|
result = 0, %% 胜负结果 1:胜 0 :负
|
|
rank_change = 0 %% 排名变化
|
|
,role_power = 0 %% 角色战力
|
|
,rival_power = 0 %% 挑战你的玩家战力
|
|
}).
|
|
|
|
%% 购买次数配置
|
|
-record(arena_buy_cfg, {
|
|
num = 0, %% 购买次数
|
|
type = 0, %% 货币类型
|
|
price = 0 %% 价格
|
|
,need_vip = 0 %% 需要达到vip等级
|
|
}).
|
|
|
|
%% 对手搜索配置
|
|
-record(arena_search_cfg, {
|
|
id = 0, %% 区域id
|
|
max = 0, %% 排名上限
|
|
min = 0, %% 排名下限
|
|
max_range = 0, %% 搜索范围参数
|
|
min_range = 0 %% 排名范围搜索比例
|
|
}).
|
|
|
|
%% 竞技场假人配置
|
|
-record(arena_fake_role_cfg, {
|
|
fake_role_id = 0, %% 假人id
|
|
fake_role_lv = 0, %% 假人等级
|
|
fake_role_carrer = 0, %% 假人职业
|
|
combat = [] %% 假人战力
|
|
}).
|
|
|
|
%% 竞技场排名突破奖励
|
|
-record(arena_break_reward_cfg, {
|
|
id = 0, %% 配置编号
|
|
min_rank = 0, %% 最小排名
|
|
max_rank = 0, %% 最大排名
|
|
bgold_coefficient = 0, %% 绑钻系数
|
|
max_receive = 0, %% 最大领取数
|
|
award = [] %% 突破奖励
|
|
}).
|
|
|
|
%% 竞技场赛季排名奖励配置
|
|
-record(arena_season_award, {
|
|
award = [] %% 奖励
|
|
,rare_award = [] %% 珍稀奖励
|
|
,daily_award = [] %% 每日奖励
|
|
}).
|
|
|
|
-define(sql_select_db_real_role,
|
|
<<"select role_id, rank from arena_real_role where rank > 0 and rank <= ~p">>).
|
|
|
|
-define (sql_select_real_role_by_id,
|
|
<<"select rank, history_rank, reward_rank, rank_time
|
|
from arena_real_role where role_id = ~p">>).
|
|
|
|
-define(sql_replace_db_real_role,
|
|
<<"replace into arena_real_role (role_id, rank, history_rank, reward_rank, rank_time)
|
|
values (~p, ~p, ~p, ~p, ~p)">>).
|
|
|
|
|
|
% -----------------竞技场玩家挑战冷却表----------------------------------------------------------
|
|
|
|
-define(sql_select_db_arenacd,
|
|
<<"select last_use, rest_time, trigger1 from arena_challenge_cd where role_id = ~p">>).
|
|
|
|
-define(sql_replace_db_arenacd,
|
|
<<"replace into arena_challenge_cd (role_id, last_use, rest_time, trigger1)
|
|
values (~p, ~p, ~p, ~p)">>).
|
|
% ----------------------------------------------------------------------------------------------
|
|
|
|
|
|
-define(sql_select_db_arena_season_info, <<"SELECT id FROM arena_season_info ORDER BY id DESC LIMIT 1">>).
|
|
-define(sql_replace_db_arena_season_info, <<"REPLACE INTO arena_season_info (id, time) VALUES (~p, ~p)">>).
|
|
|