%%%----------------------------------- %%% @Module : lib_kf_1vn %%% @Email : ming_up@foxmail.com %%% @Created : 2018.1.24 %%% @Description: 跨服1vN 头文件 %%%----------------------------------- -define(KF_1VN_FREE, 0). %% 空闲 -define(KF_1VN_SIGN, 1). %% 报名 -define(KF_1VN_RACE_1_PRE, 2). %% 淘汰赛准备 -define(KF_1VN_RACE_1, 3). %% 淘汰赛 -define(KF_1VN_RACE_2_PRE, 4). %% 挑战赛准备 -define(KF_1VN_RACE_2, 5). %% 挑战赛 -define(KF_1VN_END, 6). %% 挑战赛 -define(KF_1VN_STATE_WAIT, 0). %% 等待 -define(KF_1VN_STATE_BET, 2). %% 押注 -define(KF_1VN_STATE_MATCH, 1). %% 匹配 -define(KF_1VN_STATE_FIGHT, 3). %% 战斗 -define(KF_1VN_STATE_END, 4). %% 结束 -define(KF_1VN_ROLE_WEED, 0). %% 淘汰 -define(KF_1VN_ROLE_WAIT, 1). %% 等待战斗 -define(KF_1VN_ROLE_FIGHT, 2). %% 对战中 -define(KF_1VN_ROLE_SIGN, 3). %% 报名 -define(KF_1VN_ROLE_FAIL, 4). %% 擂主失败 -define (SIDE_CHALLENGER, 0). %% 挑战者 -define (SIDE_DEF, 1). %% 擂主 -define (KF_1VN_WIN_SIDE_A, 1). %% A方获胜 -define (KF_1VN_WIN_SIDE_B, 2). %% B方获胜 -define(KF_1VN_C_TYPE_PLAYER, 1). %% 真实玩家 -define(KF_1VN_C_TYPE_ROBOT, 2). %% 机器人 -define(KF_1VN_CFG_ENTER_LV, 1). %% 进入等级配置key -define(KF_1VN_CFG_RACE_1_XY, 2). %% 资格赛双方出生坐标配置key -define(KF_1VN_CFG_DEF_XY, 3). %% 擂主出生坐标配置key -define(KF_1VN_CFG_CHALLENGER_XY, 4). %% 挑战者出生坐标配置key -define(KF_1VN_CFG_PER_SCENE_XY, 5). %% 等待场景出生坐标配置key -define(KF_1VN_CFG_BET_TIME, 6). %% 竞猜时间配置key -define(KF_1VN_CFG_ACT_MIN_NUM, 7). %% 开活动的最低人数配置key -define(KF_1VN_CFG_AREA_MIN_NUM, 8). %% 每个区域的最低人数配置key -define(KF_1VN_CFG_AUCTION_MIN_LV, 9). %% 拍卖全服邮件最低等级(包含) -define(KF_1VN_CFG_RACE_1_SCENE, 10). %% 资格赛战斗场景配置key -define(KF_1VN_CFG_RACE_1_PRE_SCENE,11). %% 资格赛备战场景配置key -define(KF_1VN_CFG_RACE_2_SCENE, 12). %% 挑战赛战斗场景配置key -define(KF_1VN_CFG_RACE_2_PRE_SCENE,13). %% 挑战赛备战场景配置key -define(KF_1VN_CFG_VOUCHER, 14). %% 代金卷id配置key -define(KF_1VN_CFG_LOSER_SCORE, 15). %% 资格赛战败积分配置key -define(KF_1VN_CFG_WINNER_SCORE, 16). %% 资格赛胜利积分配置key -define(KF_1VN_CFG_RACE_1_TIMES, 17). %% 资格赛最多打几场 -define(KF_1VN_CFG_EXP_RATIO, 18). %% 擂主经验值加成 -define(KF_1VN_CFG_ALL_WIN_REWARD, 19). %% 擂主全胜奖励 -define(KF_1VN_CFG_AUCTION_START_TIME, 20).%% 拍卖启动时间 -define(KF_1VN_CFG_BET_COST, 21). %% 竞猜花费 -define(KF_1VN_CFG_ENTER_MATCH_TIME,22). %% 进场景剩余多少时间不匹配 -define(KF_1VN_CFG_OPEN_DAY, 23). %% 开服多少天后才能开启 -define(KF_1VN_CFG_COMBAT_POWER, 24). %% 单位评分战力 -define(KF_1VN_TYPE_RACE_1, 1). %% 资格赛 -define(KF_1VN_TYPE_RACE_2, 2). %% 挑战赛 -define(KF_1VN_LOSE, 1). %% 失败 -define(KF_1VN_WIN, 2). %% 胜利 -define(KF_1VN_ENTER, 1). %% 在场景中 -define(KF_1VN_QUIT, 0). %% 不在场景中 -define(KF_1VN_WAITING_TIME, 20). %% 战斗等待时间 -define(KF_1VN_EXP_ADD_TIME, 5000). %% 增加经验间隔 5s -define(KF_1VN_WATCH_MAX_NUM, 100). %% 单场战斗观战人数上限 -define(KF_1VN_SEND_OUT_TIME, 60). %% 活动结束多少秒退出场景 -define(RACE_1_MATCH_COUNT, 2). %% 资格赛匹配到同一个人的次数 -define(RACE_2_MATCH_COUNT, 5). %% 挑战赛随机难度列表次数 -define(PRE_SCENE_XY_KEY, {621, pre_scene_xy_key}). %% 配置-1vN活动开启时间 -record(kf_1vn_time_cfg, { id = 0, %% 活动唯一id open_week = [], %% 周几开启 signtime = {0, 0}, %% 报名开启时间 optime = {0, 0}, %% 活动开启时间 race_1_pre = 0, %% 资格赛准备时间(s) race_1 = 0, %% 资格赛时间(s) race_1_m_time = 0, %% 资格赛匹配时间(s) race_1_b_time = 0, %% 资格赛战斗时间(s) race_2_pre = 0, %% 挑战赛准备时间(s) race_2 = 0, %% 挑战赛时间(s) race_2_m_time = 0, %% 挑战赛匹配时间(s) race_2_b_time = 0, %% 挑战赛战斗时间(s) bet_time = 0 %% 竞猜时间(s) }). %% 配置-1vN分组 -record(kf_1vn_group, { id=0, %% 自增id hard=0, %% 难度评级 robot_args=0, %% 机器人系数 height=0 %% 人数权重 }). %% 配置-1vN守擂匹配 -record(kf_1vn_race_2_match, { stage=0, %% 阶段 area=0, %% 赛区 hard=0, %% 难度评级 c_num=0, %% 挑战者人数 hard_list = [], %% 难度评级列表 all_hard = [] %% 难度评级上下限 }). %% 配置-1vN拍卖匹配 -record(kf_1vn_auction_cfg, { id=0, %% 自增id area=0, %% 赛区 goods=[], %% 物品列表 cost=[], %% 消耗 ser_award=[] %% 全服奖励 }). %% 进程记录 %% 报名和竞猜记录 -record(kf_1vn_role_sign, { server_id = 0, %% 服务器id id = 0, %% 玩家id name = "", %% 玩家名 server_name = "", %% 服务器名 lv = 0, %% 等级 area = 0, %% 赛区 battle_id = 0, %% 战斗id bet_side=0, %% 竞猜哪边胜 combat_power=0, %% 战力 race_1_seed=0 %% 种子选手 }). %% 1vN角色基本信息 -record(kf_1vn_role, { id = 0, %% 玩家id server_id=0, %% 服务器id server_num=0, %% 服务器数 server_name = "", %% 服务器名 figure=undefined, %% 形象 attr=undefined, %% 属性 combat_power=0, %% 战力 score=0, %%分数 win=0, %% 胜利次数 race_1_times=0, %% 资格赛战斗次数 race_1_match=0, %% 资格赛匹配次数,影响匹配参数 race_1_match_record = [], %% 资格赛匹配记录[{role_id, time}] race_1_seed = 0, %% 种子选手 win_streak= 0, %% 连胜次数 enter=0, %% 是否在场景中 area=0, %% 赛区 out=0, %% 是否在资格赛中被淘汰 pk=0, %% 是否在战斗中 pk_time = 0, %% 战斗结束时间 exp = 0, %% 已获取经验 pk_pid = undefined, %% 战斗进程 scene_pool_id = 0, %% 场景进程id race_2_turn=0, %% 擂台赛轮数 race_2_time = 0, %% 擂台赛存活时间 race_2_lose=0, %% 是否已经输了擂台赛 race_2_match_heigh=0,%% 擂台赛匹配权重 race_2_side = 0, %% 擂台赛身份 race_2_bet_id = 0, %% 竞猜id race_2_battle_id = 0,%% 擂台赛战斗id watch_battle_id = 0, %% 观战id match_challenger = 0, %% 是否被选为该轮比赛的挑战者 0否 1是 result = 0 %% 0未被选为挑战者,1挑战失败 2挑战胜利(用来排名用的) }). -record(kf_1vn_role_pk, { type = 0, %% ?KF_1VN_C_TYPE_PLAYER|?KF_1VN_C_TYPE_ROBOT id = 0, %% 玩家id server_id = 0, %% 服务器id name = "", %% 玩家名 server_num = 0, %% 服务器数 server_name = "", %% 服务器名 scene_pool_id=0, %% 场景进程id career = 0, %% 职业 sex= 1, %% 性别 turn = 0, %% 转生 picture = "", %% 头像 picture_ver = 0, %% 头像版本 area = 0, %% 赛区 score = 0, %% 分数 win = 0, %% 胜负 win_streak = 0, %% 连胜 race_1_times = 0, %% 资格赛次数 attr=undefined, %% 属性 combat_power = 0, %% 战力 is_dead = 0, %% 是否死亡 hard = 0, %% 难度评级 enter = 0, %% 是否在场景中 lv = 0 %% 等级 }). -record(kf_1vn_score_rank, { rank = 0, %% 排名 id = 0, %% 玩家id server_id=0, %% 服务器id server_num=0, %% 服务器数 server_name = "", %% 服务器名 name="", %% 玩家名 guild_name="", %% 公会名 vip =0, %% vip等级 score=0, %% 分数 win=0, %% 胜利次数 lose=0, %% 失败次数 combat_power = 0, %% 战力 career=0 %% 职业 }). %% 活动时间信息 -record(kf_1vn_time, { sign_start = 0, %% 报名开始时间 race_1_pre_start = 0, %% 资格赛等待开始时间 race_1_start = 0, %% 淘汰赛开启时间 race_1_end = 0, %% 淘汰赛结束时间 race_2_pre_start = 0, %% 挑战赛准备开启时间 race_2_start = 0, %% 挑战赛开启时间 race_2_end = 0, %% 挑战赛结束时间 show = 0 %% 展示时长 }). %% 活动数据 -record(kf_1vn_info, { ac_id=0, all_time = #kf_1vn_time{}, %% 整个活动开启的时间信息 stage = 0, %% 活动阶段:0空闲 1报名 2淘汰赛 3挑战赛准备 4挑战赛 5展示 6聊天时间 start_time = 0, %% 活动开启时间 end_time = 0, %% 活动结束时间(0表示动态结束) state = 0, %% 活动状态(0空闲 1等待 2进行中 3押注 4战斗) ref=undefined %% 定时器 }). %% 1vN 擂台赛记录 -record(kf_1vn_race_2, { def_list=[], %% 擂主id列表 challenger_list=[], %% 挑战者id列表 match_list=[], %% 匹配列表 battle_id = 1, %% 当前最大战斗id bet_m=#{}, %% 竞猜map def_rank=[], %% 擂主排行榜 格式 [#kf_1vn_def_rank{}] challenage_rank = [] %% 挑战者排行榜 格式 [#kf_1vn_challenger_rank{}] }). %% 1vN对战(匹配)列表 -record(kf_1vn_race_2_match_info, { battle_id = 0, %% 战斗id status=0, %% 战斗状态 scene_pool_id=0, %% 场景进程id copy_id=undefined, def_role=undefined, %% 擂主信息 格式 #kf_1vn_role{} challengers=[], %% 挑战者id 格式 [#kf_1vn_role{}] battle_win=0, %% 战斗胜负 1:擂主胜 2:挑战者胜 watch_ids=[], %% 观战玩家id列表 watch_num=0 %% 观战玩家数量 }). -record(kf_1vn_def_rank, { rank = 0, id = 0, server_id=0, server_num=0, server_name = "", name="", guild_name="", vip =0, score=0, race_2_lose=0, race_2_turn=1, race_2_time=0, combat_power = 0, career = 0, enter=0 }). -record(kf_1vn_challenger_rank, { rank = 0, id = 0, server_id=0, server_num=0, name="", guild_name="", vip =0, score=0, combat_power = 0, career = 0, enter=0, race_2_turn=1, result = 0, %% 1失败 2胜利 race_2_time = 0 %% 存活时间 }). %% 玩家记录 -record(status_kf1vn, { area = 0, def_type=0, %% 1擂主 2挑战者 turn = 0 %% 擂主存活轮次 }). %% --------- mod_kf_1vn --------------- %% 活动总状态 -record(act_state, { ac_id = 0, stage = 0, sub_stage = 0, optime = 0, edtime = 0, sub_edtime = 0, area_list = [], max_scene_pool = 0, sign_num = 0, sign_list = [], %% 报名信息 [{Id1, Lv},...] role_m = #{}, %% 参加玩家信息(全区域) #{Area1 => [#kf_1vn_role{},...],...} race_1_rank_m = #{}, %% 资格赛排行榜(全区域) #{Area1 => [#kf_1vn_score_rank{},...],...} race_2_m = #{}, %% 挑战赛信息(全区域) #{Area1 => [#kf_1vn_race_2{},...],...} def_num_m = #{}, seed_num_m = #{}, match_time = 0, battle_time = 0, match_ref = undefined, match_turn = 1, last_match_time = 0, exp_ref = undefined, sorted_sign_list = undefined, %% 有序的报名信息 max_power = 10000000 }). %% ---------- mod_kf_1vn_auction ---------- %% 拍卖进程状态 -record(auction_state, { issue=0, stage=0, auction_list=[], follow_list=[], ref = undefined, optime = 0, edtime = 0, past_list=[] %% 往期记录 }). -record(auction, { id=0, area = 0, result=0, last_price=0, goods = [], cost = [], bidders = [], %% [#bidder{}, ...] rank = [], %% [#bidder{}, ...] min_rank_price = 0 }). -record(bidder, { id=0, %% 玩家id server_id=0, %% 服id server_num=0, %% 服数 name = "", %% 玩家名字 price = 0, %% 玩家拍卖价格(包含代金卷) voucher = 0, %% 代金卷数量 payment_refs = [] %% 预付款单据引用 }). -record(past_auction, { issue=1, server_num=0, name="", price=0, goods=[] }). %% ------------- local_state --------- -record(local_state, { stage=0, %% 比赛阶段 sub_stage=0,%% 比赛子阶段 optime=0, %% 此阶段开启时间 edtime=0, %% 此阶段结束时间 sign_num=0, %% 报名人数 def_num_m = #{}, %% 擂主人数 sign_info = [], %% 本服报名名单 [{Id, 所属战区},....] race_1_rank_m = #{}, %% 资格赛排行榜 def_rank_m = #{}, %% 擂主排行榜 challenger_rank_m = #{}, %% 挑战者排行榜 node = undefined, auction_stage=0, auction_edtime=0 }). %% ------------ pk_state ------------ -record(pk_state, { stage = 0, area = 0, battle_id = 0, side_a = undefined, %% #kf_1vn_role_pk{} side_b_list = [], %% [#kf_1vn_role_pk{},...] battle_time = 0, loading_time = 0, is_end = 0, scene_id=0, scene_pool_id=0, match_turn = 0, start_time = 0, optime=0, ref = undefined, max_power = 10000000, ready_time = 0, result = 0 %% 获胜方 1-A方 2-B方 }).