源战役
Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.
 
 

309 rindas
17 KiB

%%% ----------------------------------------------------
%%% @Module: 3v3
%%% @Author: zhl
%%% @Description: 跨服3v3头文件
%%% @Created: 2017/07/04
%%% ----------------------------------------------------
-define(ETS_RANK_DATA, kf_rank_data). %% 排行数据
-define(ETS_TEAM_DATA, kf_team_data). %% 队伍数据
-define(ETS_ROLE_DATA, kf_role_data). %% 玩家数据
-define(ETS_PK_DATA, kf_pk_data). %% 战斗数据
-define(PK_3V3_SCENE_ID, 6000). %% 3v3战斗场景id
-define(PK_3V3_SCENE, [?PK_3V3_SCENE_ID]). %% 跨服3v3战斗场景列表
-define(PK_3V3_SCENE_POOL_ID_LIST, [1,2,3,4,5]). %% 进程池Id列表
-define(PK_3V3_ONLINE, 1).
-define(PK_3V3_OFFLINE, 2).
-define(PK_3V3_MAX_SCORE, 300).
-define(KF_3V3_LV_LIMIT, 270). %% 开放等级限制
-define(KF_3V3_ROOM_LIMIT, 45). %% 房间数量限制 - 一个场景限制人数270以内
-define(KF_3V3_MATCH_TIME, 30). %% 最大匹配时间
-define(KF_3V3_PK_TIME, 180). %% 战斗时间3min
-define(KF_3V3_CREATE_BUFF_TIME, 30). %% buff刷出时间2min
-define(KF_3V3_RANK_LIMIT, 100). %% 排行榜上限
-define(KF_3V3_MEMBER_LIMIT, 3). %% 队伍人员限制##只是初始化的默认值,修改人数需要同步mod_3v3_center和mod_3v3_local进程中的member_limit字段
-define(KF_3V3_REVIVE_TIME, 0). %% 3v3复活时间
-define(SERVER_OPEN_DAY, 4). %% 开服天数
-define(SEASON_REWARD_PK_COUNT, 20). %% 赛季奖励领取场次条件
-define(KF_3V3_STATE_YET, 1). %% 活动状态 - 还未开始
-define(KF_3V3_STATE_START, 2). %% 活动状态 - 开始
-define(KF_3V3_STATE_END, 3). %% 活动状态 - 结束
-define(KF_3V3_PK_READY, 1). %% 战斗状态 - 准备中
-define(KF_3V3_PK_START, 2). %% 战斗状态 - 开始
-define(KF_3V3_PK_END, 3). %% 战斗状态 - 结束
-define(KF_3V3_IS_AUTO, 1). %% 满员自动开始
-define(KF_3V3_UNREADY, 0). %% 还未准备好
-define(KF_3V3_IS_READY, 1). %% 已准备好了
-define(KF_3V3_START_ROLE, 1). %% 开始匹配 - 组队
-define(KF_3V3_STOP_ROLE, 2). %% 取消匹配 - 组队
-define(KF_3V3_GROUP_BLUE, 1). %% 蓝色
-define(KF_3V3_GROUP_RED, 2). %% 红色
-define(KF_3V3_RESULT_DRAW, 0). %% 打平
-define(KF_3V3_RESULT_BLUE, 1). %% 蓝方胜利
-define(KF_3V3_RESULT_RED, 2). %% 红方胜利
-define(SQL_SELECT_3V3_RANK, "select server_name, server_num, server_id, role_id, nickname, career,
sex, lv, vip_lv, power, tier, star, score, time, season_pk from kf_3v3_rank order by (rank_id) asc").
-define(SQL_REPLACE_3V3_RANK_ONE, "replace into kf_3v3_rank (rank_id, server_name, server_num, server_id, role_id, nickname,
career, sex, lv, vip_lv, power, tier, star, score, time, season_pk) values ~ts").
-define(SQL_REPLACE_3V3_RANK_VALUES, "(~w, '~s', ~w, ~w, ~w, '~ts', ~w, ~w, ~w, ~w, ~w, ~w, ~w, ~w, ~w, ~w)").
-define(SQL_DELETE_3V3_RANK_ONE, "delete from kf_3v3_rank where ~ts").
-define(SQL_DELETE_3V3_RANK_VALUES, "(role_id = ~w)").
-define(SQL_SELECT_3V3_ROLE, "select old_tier, old_star, tier, star, continued_win, daily_win,
daily_pk, daily_honor, pack_reward, pack_time, daily_time, season_pk from role_3v3 where role_id = ~w").
-define(SQL_REPLACE_3V3_ROLE, "replace into role_3v3 (role_id, old_tier, old_star, tier, star,
continued_win, daily_win, daily_pk, daily_honor, pack_reward, pack_time, daily_time, season_pk) values (~w, ~w, ~w, ~w, ~w,
~w, ~w, ~w, ~w, '~ts', ~w, ~w, ~w)").
%% ========================= 跨服中心数据 ===============================
%% 跨服3v3数据
-record(center_state, {
state_3v3 = 0, %% 活动状态
ed_time = 0, %% 结束时间
% scenelist = [], %% 剩余场景列表
auto_id = 1, %% 队伍ID - 自增ID
candinates = [], %% 候选队伍 - 匹配中
pk_timer = [], %% 战斗匹配倒计时
match_role = [], %% 候选玩家 - 匹配中
team_timer = [], %% 队伍匹配倒计时
act_timer = [], %% 活动倒计时
member_limit = ?KF_3V3_MEMBER_LIMIT %% 人数限制
}).
%% 跨服3v3排行数据
-record(kf_3v3_rank_data, {
server_name = "", %% 平台
server_num = 0, %% 服号
server_id = 0, %% 角色所在的服务器id
role_id = 0, %% 玩家ID
nickname = "", %% 玩家昵称
career = 0, %% 职业
sex = 0, %% 性别
lv = 0, %% 等级
vip_lv = 0, %% VIP等级
power = 0, %% 战力
tier = 0, %% 段位
star = 0, %% 星数
time = 0, %% 上榜时间
season_pk = 0, %% 赛季参与次数
score = 0 %% 每赛季所得积分 - 每赛季都需要重置
}).
%% 跨服3v3战斗数据
-record(kf_3v3_pk_data, {
pk_pid = 0, %% 战斗进程PID
scene_id = 0, %% 场景ID
scene_pool_id = 0, %% 场景PoolId
room_id = 0, %% 房间号
state = 0, %% PK状态
%% ===================== 成员退出战斗不清除战斗数据中的队友数据 =================
team_data_a = [], %% A 队伍数据 - #kf_3v3_team_data{}
team_data_b = [] %% B 队伍数据 - #kf_3v3_team_data{}
}).
%% 跨服3v3队伍数据
-record(kf_3v3_team_data, {
team_id = 0, %% 队伍ID
captain_name = "", %% 队长名
server_name = "", %% 平台
server_num = 0, %% 服号
server_id = 0, %% 服id
captain_id = 0, %% 队长ID
password = 0, %% 密码
lv_limit = 0, %% 等级要求
power_limit = 0, %% 战力要求
is_auto = 0, %% 是否自动开始
member_num = 0, %% 队伍人数
map_power = 0, %% 映射战力,用于战斗匹配
average_power = 0, %% 平均战力
match_count = 0, %% 匹配次数
is_pk = 0, %% 是否在pk
member_data = [] %% 成员数据 [#kf_3v3_role_data{}]
}).
%% 跨服3v3玩家数据
-record(kf_3v3_role_data, {
node = 0, %% 节点
server_name = "", %% 平台
server_num = 0, %% 服号
server_id = 0, %% 角色所在的服务器id
role_id = 0, %% 玩家ID
sid = 0, %% 玩家消息进程
figure = undefined, %% #figure{}
power = 0, %% 战力
power_view = 0, %% 战力:用于显示
is_ready = 0, %% 是否准备好了
pk_time = 0, %% 上一次PK时间
tier = 0, %% 段位
star = 0, %% 星数
continued_win = 0, %% 连续胜利场次
old_scene_info=undefined, %% 进入时的坐标 {OldScene, OldScenePooldId, OldCopyId, OldX, OldY}
season_pk = 0, %% 赛季参与次数
%% =============== 每次进入新的队伍都要重置 =================
match_count = 0, %% 匹配队伍次数
team_id = 0, %% 队伍ID
group = 0, %% 组别
pk_pid = 0 %% 3v3 pk进程
}).
%% ========================== pk进程数据 ===============================
%% 个人积分
-record(role_score, {
team_id = 0,
group = 0,
server_name = "", %% 平台
server_num = 0, %% 服号
server_id = 0, %% 服务器独立唯一标识
role_id = 0, %% 玩家ID
figure = undefined, %% #figure{}
power = 0, %% 战力
power_view = 0, %% 战力:用于显示
sid = 0, %% 消息进程
tier = 0, %% 段位
star = 0, %% 星数
continued_win = 0, %% 连胜场次
honor = 0, %% 奖励
season_pk = 0, %% 赛季参与次数
collect = 0, %% 采集神塔次数
kill = 0, %% 击杀次数
killed = 0, %% 被击杀次数
assist = 0, %% 助攻次数
continued_kill = 0, %% 连杀次数
old_scene_info = undefined, %% 进来前的场景信息 {OldScene, OldScenePooldId, OldCopyId, OldX, OldY}
online = 0 %% 是否在线标志
}).
%% 队伍积分
-record(team_score, {
team_id = 0,
group = 0,
map_power =0,
score = 0, %% 队伍总积分
occupy_time = 0, %% 占据神塔时间
kill = 0, %% 总击杀次数
killed = 0, %% 总被击杀次数
assist = 0 %% 总助攻次数
}).
%% 神塔数据
-record(tower_data, {
mon_id = 0, %% 神塔ID
time = 0, %% 占据时间
group = 0 %% 占据组别
}).
-record(center_pk_state, {
scene_id = 0, %% 场景id
scene_pool_id = 0, %% 场景PoolId
room_id = 0, %% 房间id
pk_state = 0, %% 战斗状态
ed_time = 0, %% 结束时间戳 - 不是进程结束时间戳
team_score = [], %% 队伍积分
role_score = [], %% 玩家积分
tower_data = [], %% 神塔数据
timer = [] %% 积分倒计时
}).
%% ============================ 本服数据 ===============================
%% 3v3数据
-record(local_state, {
state_3v3 = 0, %% 活动状态
ed_time = 0, %% 结束时间
score_rank = undefined, %% [{Platform, ServerNum, Nickname, Star} | List]
attention_list = [], %% 关注列表
match_role = [], %% 候选玩家 - 匹配中
team_timer = [], %% 队伍匹配倒计时
act_timer = [],
member_limit = ?KF_3V3_MEMBER_LIMIT %% 人数限制
}).
%% 关注列表
-record(attention_list, {
role_id = 0, %% 玩家ID
sid = 0 %% 消息进程
}).
-define(DEFAULT_TIER, 1). %% 默认段位
-define(DEFAULT_STAR, 3). %% 默认星数
%% 玩家3v3数据
-record(role_3v3, {
tier = ?DEFAULT_TIER, %% 段位
star = ?DEFAULT_STAR, %% 星数
old_tier = ?DEFAULT_TIER, %% 段位(默认青铜Ⅲ)
old_star = ?DEFAULT_STAR, %% 星数
continued_win = 0, %% 连续胜利场次
daily_win = 0, %% 每日胜利场次
daily_pk = 0, %% 每日战斗场次
daily_honor = 0, %% 每日可得荣誉值 - 与昨天的段位星数
pack_time = 0, %% 今日领取荣誉时间
pack_reward = [{0, 0}, {1, 0}, {2, 0}, {3, 0}], %% 今日领取的活跃奖励 [{id, time}]
pk_time = 0, %% 上一次PK时间
daily_time = 0, %% 上次日常刷新时间
season_pk = 0 %% 本赛季战斗场次
}).
%% 玩家基本数据
-record(role_data, {
node = 0, %% 节点
server_name = "", %% 平台
server_num = 0, %% 服号
server_id = 0, %% 角色所在的服务器id
role_id = 0, %% 玩家ID
sid = 0, %% 玩家消息进程
figure = undefined, %% #figure{}
power = 0, %% 战力:历史最高战力,用于匹配
power_view = 0, %% 战力:用于显示
tier = 0, %% 段位
star = 0, %% 星数
continued_win = 0, %% 连续胜利场次
old_scene_info=undefined, %% 进入时的坐标 {OldScene, OldScenePooldId, OldCopyId, OldX, OldY}
season_pk = 0, %% 赛季场次数量
%% ================= 以下字段用于创建队伍所用 ===================
password = 0, %% 密码
lv_limit = 0, %% 等级要求
power_limit = 0, %% 战力要求
is_auto = 0, %% 是否自动开始
%% ================= 以下字段用于匹配组队所用 ===================
match_count = 0 %% 匹配队伍次数
}).
%% 活动时间配置
-record(act_info, {
id = 0, %% 活动ID
week = [], %% 开启周
time = [] %% 开启时间
}).
%% 段位配置
-record(tier_info, {
tier = 0, %% 段位
stage = 0, %% 客户端用的段位
tier_name = "", %% 段位名称
star = 0, %% 升级星数
daily_reward = 0, %% 每日段位奖励
win_star = 0, %% 单场胜利星数
lose_star = 0, %% 单场失败星数
win_reward = 0, %% 单场胜利黑暗值
lose_reward = 0 %% 单场失败黑暗值
}).