|
|
- %% ---------------------------------------------------------------------------
- %% @doc 跨服帮战头文件.
- %% @author zhaoyu
- %% @since 2018-08-27
- %% ---------------------------------------------------------------------------
-
- -ifdef(DEV_SERVE).
- -define(SYNC_SWITCH,30000).
- -else.
- -define(SYNC_SWITCH,600000).
- -endif.
-
- -define(SQL_CGWAR_GUILD_ROOM, <<"SELECT `guild_id`,`room` FROM `guild_cgwar_room`">>).
- -define(SQL_CGWAR_ROOM_UPDATE,<<"REPLACE INTO `guild_cgwar_room` (`guild_id`,`room`) VALUES (~p,~p)">>).
- -define(SQL_CGWAR_LAST_ZONE_UPDATE,"REPLACE INTO `cross_guild_war_last_zone` (`server_id`,`zone_id`,`fact_id`)").
- -define(SQL_CGWAR_LAST_ZONE_GET, "SELECT `server_id`, `zone_id`,`fact_id` FROM `cross_guild_war_last_zone`").
- -define(SQL_CGWAR_CITY_GET, "SELECT `zone_id`, `city_id`, `server_id`, `server_num`, `guild_id`, `guild_name`, `guild_power`, `chief_id`,`chief_name`, `chief_power` from `cross_guild_war_city_info`").
- -define(SQL_CGWAR_CITYS_SAVE, "REPLACE INTO `cross_guild_war_city_info` (`zone_id`, `city_id`, `server_id`, `server_num`, `guild_id`, `guild_name`,`guild_power`,`chief_id`, `chief_name`,`chief_power`) values ~ts").
- -define(SQL_CGWAR_GUILD_INFO_GET, "SELECT `guild_id`, `zone_id`, `server_id`, `server_num`, `guild_name`, `guild_power`, `chief_id`, `chief_name`, `chief_power`,`sign_ups`,`supports`, `support_num` from `cross_guild_war_guild_info`").
- -define(SQL_CGWAR_GUILD_HELP_INFO_GET, "SELECT `guild_id`, `zone_id`, `server_id`,`help_ups` from `cross_guild_war_guild_help_info`").
- -define(SQL_CGWAR_GUILD_INFO_SAVE,"REPLACE INTO `cross_guild_war_guild_info` (`guild_id`,`zone_id`, `server_id`, `server_num`, `guild_name`,`guild_power`, `chief_id`, `chief_name`,`chief_power`, `sign_ups`,`supports`,`support_num`) values ~ts").
- -define(SQL_CGWAR_GUILD_HELP_INFO_SAVE,"REPLACE INTO `cross_guild_war_guild_help_info` (`guild_id`,`zone_id`, `server_id`, `help_ups`) values ~ts").
- -define(SQL_CGWAR_GUILD_INFO_DEL_BY_ZONE, "DELETE FROM `cross_guild_war_guild_info` WHERE `zone_id` = ~p").
- -define(SQL_CGWAR_ROLE_GET,"select support_num, support_time, use_free_num, city_award, award_time,last_sign from cross_guild_war_role where role_id = ~p").
- -define(SQL_CGWAR_ROLE_SAVE, "replace into cross_guild_war_role (role_id, support_num, support_time,use_free_num, city_award, award_time,last_sign) values (~p, ~p, ~p, ~p, '~ts', ~p, ~p)").
-
- -define(SQL_CGQWAR_LOG_GET,"SELECT * FROM `log_cgwar_city_info`").
- -define(SQL_CGQWAR_LOG_SAVE,"REPLACE INTO `log_cgwar_city_info` (`zone_id`,`city_id`,`server_id`,`server_num`,`guild_id`,`guild_name`,`guild_power`,`chief_id`,`chief_name`,`chief_power`,`time`,`chief_info`) values ~ts").
-
- -define(SQL_SELECT_OVERLORD,"SELECT times, pro_time, rename_time, buy_time FROM `overlord_info` where `role_id` = ~p").
- -define(SQL_REPLACE_OVERLORD,"replace into overlord_info (role_id, times, pro_time, rename_time, buy_time) values (~p, ~p, ~p, '~ts', ~p)").
- -define(SQL_TRUNCATE_OVERLORD,"truncate table overlord_info").
-
-
- %% 跨服帮战-分区信息ets。保存数据格式:[#cgw_zone_info{}]
- -define(CGW_ZONES_ETS, cgw_zones_ets).
- %% 跨服帮战-上一次分区信息ets。保存数据格式:[#cgw_zone_info{}]
- -define(CGW_LAST_ZONES_ETS, cgw_last_zones_ets).
- %% 跨服帮战-城池占领信息ets。保存数据格式:[#cgw_zone_city_info{}]
- -define(CGW_CITY_ETS, cgw_city_ets).
-
- -define(CGW_CITY_LOG_ETS, cgw_city_log_ets).
-
- %% 跨服帮战-帮派与战场pid()对应关系信息ets。保存数据格式:[#cgw_guild_battlefield_info{}]
- -define(CGW_GUILD_BATTLEFIELD_PID, cgw_guild_battlefield_pid).
-
- %% 保存各个游戏服公会争霸S级帮派列表以及举办次数
- %% 保存数据格式:[#cgw_server_info{}]。数据由各个游戏服同步过来。
- -define(CGW_CAN_JOIN_ETS, cgw_can_join_ets).
-
-
- -define(CGW_ST_IDLE, 0). %idle
- -define(CGW_ST_SIGN, 1). %报名期间
- -define(CGW_ST_SUPPORT, 2). %应援阶段
- -define(CGW_ST_PK, 3). %活动期间
- -define(CGW_ST_OVER, 4). %活动结束
-
- % 城池类型
- -define(CITY_TYPE_MAIN, 1). %% 主城
- -define(CITY_TYPE_SIDE, 2). %% 卫城
-
- % 怪物类型
- -define(MON_TYPE_FLAG , 1). %% 战旗
- -define(MON_TYPE_MON, 2). %% 守护兽
-
- %% 刷新战场信息间隔
- -define(BROADCAST_BATTLEFIELD_TIMEOUT, (5 * 1000)).
-
-
- %% 跨服帮战时间配置
- -record(cross_guild_war_config, {
- week_list = [] %% 表示周几开
- ,sign_up_period = {{0,0,0}, {0,0,0}} %% 报名时间段
- ,support_period = {{0,0,0}, {0,0,0}} %% 应援时间段
- ,battle_period = {{0,0,0}, {0,0,0}} %% 战场时间段
- }
- ).
-
-
- %% 跨服帮战场景配置
- -record(cross_guild_war_city, {
- id = 0 %% 城池Id
- ,name = <<>> %% 城池名称
- ,type_id = 2 %% 城池类型,1为主城,2为卫城
- ,born_point = {0, 0} %% 出生点:{posX,posY}
- ,revive_point = {0, 0} %% 复活点:{posX,posY}
- ,flag = {0, 0, 0} %% 战旗:{怪物id,posX,posY}
- ,mon_list = [] %% 将军(怪物列表):[{怪物id,posX,posY},{},…]
- }).
-
-
- %% 分区信息
- -record(cgw_zone_info, {
- zone_id = 0 %% 分区Id
- ,server_id = 0 %% 游戏服ServerId
- ,time = 0 %% 进行分区的时间戳
- }).
-
- %% 分区帮派报名/援助信息
- -record(cgw_zone_guild_info, {
- zone_id = 0 %% 分区Id
- ,guild_list = [] %% 帮派信息[#cgw_guild_info{}]
- }).
-
-
- %% 分区城池占领信息
- -record(cgw_zone_city_info, {
- zone_id = 0 %% 分区Id
- ,city_info = [] %% 城池占领信息[#cgw_city_owner_info{}]
- }).
-
- %% 分区城池占领信息日志
- -record(cgw_zone_city_log, {
- zone_id = 0 %% 分区Id
- ,times_citys = [] %% 多次数据 [#times_city{}]
- }).
-
- -record(times_citys, {
- time = 0,
- city_info = [] %% 城池占领信息[#cgw_city_owner_info{}]
- }).
-
-
- %% 城池占领信息
- -record(cgw_city_owner_info, {
- zone_id = 0 %% 分区Id
- ,city_id = 0 %% 城池Id
- ,server_id = 0 %% 游戏服ServerId
- ,server_num = 0 %% 游戏服编号(玩家看到的服数)
- ,guild_id = 0 %% 帮派Id
- ,guild_name = <<>> %% 帮派名称
- ,guild_power = 0 %% 帮派战力
- ,chief_id = 0 %% 帮主Id
- ,chief_name = <<>> %% 帮主名称
- ,chief_power = 0 %% 帮主战力
- ,time = 0 %% 战报需要
- ,chief_info = [] %% #rec_picture{}
- }).
-
- %% 帮派信息
- -record(cgw_guild_info, {
- guild_id = 0 %% 帮派Id
- ,guild_name = <<>> %% 帮派名称
- ,server_id = 0 %% 游戏服ServerId
- ,server_num = 0 %% 游戏服编号(玩家看到的服数)
- ,zone_id = 0 %% 分区Id
- ,fact_id = 0 %% 阵营Id
- ,init_city = 0 %% 初始城区
-
- ,guild_power = 0 %% 帮派战力
- ,chief_id = 0 %% 帮主Id
- ,chief_name = <<>> %% 帮主名称
- ,chief_power = 0 %% 帮主战力
- ,chief_info = [] %% #rec_picture{}
-
- ,sign_ups = [] %% 报名列表[#cgw_role_info{}]
- ,help_ups = [] %% 外援列表[#cgw_role_info{}]
- ,supports = [] %% 支援列表[{ServerId,RoleId}]
- ,support_num = 0 %% 支援人数
-
- %% 下面的字段是实时战场数据不保存数据库
- ,own_cities = [] %% 占领的城池列表[CityId]
- ,born_pos = {0, 0} %% 出生点
- ,revive_pos = {0, 0} %% 复活点
- ,battle_pos = {0, 0} %% 战斗挂机点
- ,group = 0 %% 战斗分组
- }
- ).
-
- %% 报名角色信息
- -record(cgw_role_info, {
- role_id = 0 %% 角色Id
- ,name = <<>> %% 角色名
- ,server_id = 0 %% 服务器Id
- ,power = 0 %% 战力
- ,lev = 0 %% 等级
- ,sex = 0
- ,vip = 0 %% Vip等级
- ,sup_vip = 0
- ,position = 0 %% 职位
- }
- ).
-
- %% 应援角色信息
- -record(cgw_support, {
- role_id = 0 %% 角色Id
- ,server_id = 0 %% 服务器Id
- ,num = 0 %% 次数
- }).
-
- %% 跨服帮战管理进程state
- -record(cgw_mgr_state, {
- ser2zone = #{} %% 按ServerId查询ZoneId的索引数据
- ,ser2fact = #{} %% 按ServerId查询FacID
- ,last_ser2zone = #{} %% 上回按ServerId查询ZoneId的索引数据
- ,last_ser2fact = #{} %% 上回按ServerId查询fact_id的索引数据
- ,ref = 0 %% 定时器
- ,process = 0 %% 0闲置1报名2活动3已结束
- ,end_time = 0 %% 状态结束时间
- ,battle_result = [] %% 各个战场战斗返回结果[#cgw_zone_city_info{}]
- }).
-
- %%时间管理
- -record(cgwar_time_mgr, {
- state = 0, %%0闲置1报名2活动3已结束
- etime = 0, %%截止有效
- ref = 0
- }).
-
- %%本地时间管理
- -record(cgwar_local_mgr, {
- switch = 1, %%活动开关
- state = 0, %%0闲置1报名2活动3已结束
- etime = 0 %%截止有效
- }).
-
- %% 跨服帮战战场进程state
- -record(cgw_battlefield_state, {
- zone_id = 0 %% 分区Id
- ,pool_id = 0 %% 场景分线Id
- ,cities = [] %% 城池信息[#cgw_city_info{}]
- ,guild_list = [] %% 参与的帮派Id列表
- ,group = #{} %% 参与的分组列表
- ,ref = 0 %% 战场结束定时器
- ,broadcast_ref = 0 %% 刷新战场信息定时器
- }).
-
- %% 城池信息
- -record(cgw_city_info, {
- city_id = 0 %% 城池Id
- ,group = 0 %% 占领城池的分组
- ,owner = 0 %% 占领城池的帮派Id
- ,owner_name = <<>> %% 占领城池的帮派名字
- ,flag_uid = 0 %% 战旗怪物唯一Id
- ,flag_hp = 0 %% 战旗怪物血量
- ,flag_total_hp = 0 %% 战旗怪物总血量
- ,mon_uids = [] %% 所有守护怪的唯一Id列表[MonUid]
- ,type = 0 %% 城池类型
- }).
-
-
- %% 参战角色信息
- -record(cgw_role_battle_info, {
- role_id = 0 %% 角色Id
- ,name = <<>> %% 角色名
- ,server_id = 0 %% 服务器Id
- ,guild_id = 0 %% 帮派Id
- ,group = 0 %% 分组
- ,scene = 0 %% 当前所在场景 0:表示已经退出活动场景
- }).
-
- -record(cgw_server_info, {
- zone_id = 0 %% 服务器Id
- ,guild_list = [] %% 帮派列表[#cgw_guild_info{}]
- }).
-
- %% 帮派与战场pid()对应关系信息
- -record(cgw_guild_battlefield_info, {
- guild_id = 0 %% 帮派Id
- ,pid = 0 %% 战场pid()
- }).
-
- %% 角色跨服帮战应援和领取奖励记录
- -record(role_cgw, {
- support_num = 0 %% 应援次数
- ,use_free_num = 0 %% 已使用免费应援次数
- ,support_time = 0 %% 最近一次应援时间戳
- ,city_award = [] %% 领取占领城池奖励记录[{RoomId, CityId}]
- ,award_time = 0 %% 最近一次领取占领城池奖励时间戳
- ,last_sign = 0 %% 上次报名时间
- }).
-
- %% 应援结算传递参数
- -record(support_settlement, {
- role_id = 0 %% 角色Id
- ,guild_id = 0 %% 帮派Id
- ,guild_name = 0 %% 帮派名字
- ,cities = [] %% 占领的城池Id
- ,num = 0 %% 应援这个帮派的次数
- }).
-
- %% 霸主特权数据
- -record(overlord_info, {
- prohibit_times = 0 %% 禁言次数
- ,pro_time = 0 %% 上次使用禁言特权时间
- ,rename_time = [] %% 上次改名时间[{Fid,Time}]
- ,buy_time = 0 %% 上次购买时间
- }).
-
- %% 霸主限购配置
- -record(overlord_buy_cfg, {
- phase = 0 %% 期数
- ,reward = [] %% 限购奖励
- ,cost = [] %% 限购价格
- ,display = [] %% 展示资源
- }).
|