%%% ---------------------------------------------------- %%% @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 %% 单场失败黑暗值 }).