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