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