|
|
- %% ---------------------------------------------------------
- %% @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)">>).
-
|