%%----------------------------------------------------
|
|
%% @title 魅力沙滩头文件
|
|
%% @creator yxf
|
|
%% @date 20171106
|
|
%%----------------------------------------------------
|
|
|
|
%% 活动阶段
|
|
-define(BEACH_CLOSE, 0). %% 海滩关闭阶段
|
|
-define(BEACH_READY, 1). %% 海滩准备阶段
|
|
-define(BEACH_OPEN, 2). %% 海滩活动进行阶段
|
|
-define(BEACH_REWARD, 3). %% 海滩活动发奖励阶段
|
|
|
|
%% 加经验类型
|
|
-define(ADD_EXP_TYPE_TRIGGER, 1). %% 前端触发
|
|
-define(ADD_EXP_TYPE_VOTE, 2). %% 投票加经验
|
|
|
|
%% 活动相关配置
|
|
-define(LEAVE_BEACH, 0). %% 离开海滩场景
|
|
-define(ACT_TYPE, 1). %% 本服配置ID
|
|
-define(CAL_REWARD_TIME, 10). %% 计算奖励时长
|
|
-define(PREVILEGE_ID, 1). %% vip经验增加特权子id
|
|
-define(BEACH_OPEN_LV, 60). %% 海滩开放等级
|
|
-define(OFF_TITLE, 4180001). %% 离线发送奖励邮件标题
|
|
-define(OFF_CONTENT, 4180002). %% 离线发送奖励邮件内容
|
|
|
|
-define (MB_PAGE_NUM, 10). %% 海滩人员列表每页人数
|
|
|
|
-define(GIFT_TIMES, 5). %% 初始赠送礼物次数
|
|
-define(SEND_GIFT, 0). %% 赠送礼物
|
|
-define(GET_GIFT, 1). %% 收到礼物
|
|
|
|
%% 传闻预定义
|
|
-define(READY_ACT_RUMORID, 1). %% 活动准备传闻id
|
|
-define(START_ACT_RUMORID, 2). %% 活动开始传闻id
|
|
-define(SEND_GIFT_RUMORID1, 3). %% 赠送礼物传闻id
|
|
-define(SEND_GIFT_RUMORID2, 4). %% 赠送礼物传闻id
|
|
-define(SEND_GIFT_RUMORID3, 5). %% 赠送礼物传闻id
|
|
-define(SEND_GIFT_RUMORID4, 6). %% 赠送礼物传闻id
|
|
|
|
% 海滩经验:y=48512*1.5^((x-170)/50))
|
|
% 约会经验:y=20794*1.5^((x-170)/50))
|
|
%% 经验增加
|
|
-define(ON_ENGAGE, 1). %% 约会中的经验
|
|
-define(BASE_EXP(Lv), trunc(48512* math:pow(1.5, (Lv-170)/50))). %% 基础经验
|
|
-define(ENGAGE_EXP(Lv), trunc(20794* math:pow(1.5, (Lv-170)/50))). %% 约会经验
|
|
|
|
%% 跨服相关
|
|
-define(BF_BEACH_SCENE_ID, data_charm_beach:get_cfg(bf_scene)). %% 本服海滩场景id
|
|
-define(KF_BEACH_SCENE_ID, data_charm_beach:get_cfg(kf_scene)). %% 跨服海滩场景id
|
|
-define(BEACH_SCENE_ID, [?BF_BEACH_SCENE_ID, ?KF_BEACH_SCENE_ID]). %% 海滩场景id列表
|
|
-define(ACT_TYPE_BF, 1). %% 本服活动
|
|
-define(ACT_TYPE_KF, 2). %% 跨服活动
|
|
-define(SCENE_ID(T), if T =:= ?ACT_TYPE_BF -> ?BF_BEACH_SCENE_ID; true -> ?KF_BEACH_SCENE_ID end).
|
|
|
|
-define(ONE_VOTE_CHARM, 1). %% 一次投票增加的魅力值
|
|
|
|
-define(ROOM_POOL(Room), Room * 1000). %% 每个房间的初始分线
|
|
|
|
%% ------------------------------------魅力沙滩功能记录------------------------------------
|
|
|
|
%% 活动状态记录
|
|
-record(beach_stage, {
|
|
stage = 0, %% 当前步骤 0-关闭 1-准备 2-进行中 3-发奖励
|
|
act_type = 0, %% 活动类型 1-本服 2-跨服
|
|
scene = 0, %% 场景id
|
|
starttime = 0, %% 活动开始时间戳
|
|
endtime = 0, %% 活动持续时长(秒)
|
|
ref = [], %% 计时器引用(活动定时器)
|
|
ref1 = [], %% 计时器引用1(创建氛围假人定时器,已弃用)
|
|
members = #{}, %% 当前参与的玩家 #{role_id => room_id}
|
|
|
|
room_pids = #{}, %% 记录房间对应的进程Id #{room => pid}
|
|
room_maps = #{}, %% #{room => [{SerId, Node}]}
|
|
room_lines = #{}, %% 收集房间内线路人数信息 #{room => [{scenepoolid, 线路人数}...]}
|
|
cur_line = #{} %% 每个房间可开辟的最新线路(场景的分线),上一已满分线+1(每个房间的分线为连续值,计算方式:room*1000+n)
|
|
|
|
,host_pid = [] %% 托管Pid
|
|
,host_ref = [] %% 托管定时器
|
|
}).
|
|
|
|
%% 活动状态记录
|
|
-record(beach_room_stage, {
|
|
room_id = 0, %% 房间id
|
|
scene = 0, %% 场景id
|
|
pools_id = [], %% 场景进程id(房间下的所有分线)
|
|
stage = 0, %% 当前步骤 0-关闭 1-准备 2-进行中 3-发奖励
|
|
act_type = 0, %% 活动类型 1-本服 2-跨服
|
|
starttime = 0, %% 活动开始时间戳
|
|
endtime = 0, %% 活动结束时间戳
|
|
members = #{}, %% 当前参与的玩家 #{role_id => #beach_member{}}
|
|
rank_list = [], %% 排行榜list [{RoleId, [Rank,CharmValue]}...] CharmValue对应投票数
|
|
% vote_list = [], %% 投票列表 [#rec_vote{}]
|
|
dummy = [], %% #{pool => 0/1} 舞台氛围假人 0-未创建 1-已经创建
|
|
offset_time = 0 %% 秘籍设置偏离时间
|
|
}).
|
|
|
|
%% 参与活动玩家信息
|
|
-record(beach_member, {
|
|
role_id = 0, %% 玩家id
|
|
node = [], %% 玩家节点(跨服节点中需要用到)
|
|
figure = undefined, %% 玩家形象
|
|
scene = 0, %% 场景id 0-不在场景内
|
|
scene_pool = 0, %% 所处分线
|
|
server_id = 0, %% 玩家区服
|
|
server_num = 0, %% 玩家服数
|
|
acc_exp = 0, %% 累计经验
|
|
pre_time = 0, %% 上次获取经验时间戳 0-还没有获取过经验
|
|
exp_reward_time = 0, %% 已获取经验的时间(超过一定时间不可再获得经验)
|
|
result = undefined, %% 结果 缓存到退出场景才发送
|
|
% members_page_index = 1, %% 海滩人员列表序号
|
|
vote_times = 0, %% 投票次数
|
|
buy_times = 0, %% 购买投票次数
|
|
voted_ids = [], %% 已投票的id列表
|
|
vote_role = [], %% 为我投票的玩家id列表[{role_id, vote_count, server_id, is_friend}...]
|
|
charm_value = 0 %% 总魅力值(用于服务端计算排名,每次投票增加一点魅力值)
|
|
,is_hosting = 0 %% 是否托管
|
|
}).
|
|
|
|
%% 投票信息(已废弃)
|
|
-record(rec_vote, {
|
|
key = {}, %% {role_id, vote_id}保证投票信息唯一性
|
|
vote_id = 0, %% 投票者id(可能同个玩家有多条投票)
|
|
role_id = 0, %% 玩家id
|
|
name = "", %% 玩家名
|
|
server_id = 0, %% 玩家区服
|
|
count = 0, %% 投票次数
|
|
stick_time = 0 %% 上一次置顶(投票)时间
|
|
}).
|
|
|
|
%% 房间信息(已废弃)
|
|
-record(room_state, {
|
|
room_id = 0, %% 房间id (pid)
|
|
pool_id = 0, %% 场景进程id
|
|
members_num = 0 %% 房间人数
|
|
}).
|
|
|
|
|
|
%% ------------------------------------魅力沙滩配置记录------------------------------------
|
|
|
|
%% 活动配置
|
|
-record(base_beach_act_cfg, {
|
|
id = 0, %% 配置类型
|
|
start_time = 0, %% 每天活动开放时间点
|
|
ready_time = 0, %% 活动开始前准被时长(秒)
|
|
interval = 0, %% 增加经验间隔
|
|
duration = 0, %% 活动持续时长(秒)
|
|
cal_time = 0, %% 结算奖励时长
|
|
kf_min_day = 0, %% 开服后多少天跨服
|
|
buy_cost = 0, %% 购买赠送次数消耗物品
|
|
scene_id = 0 %% 场景id
|
|
}).
|
|
|
|
%% 魅力值排行榜奖励配置
|
|
-record(base_beach_reward, {
|
|
rank_ll = 0, %% 排名下限
|
|
rank_ul = 0, %% 排名上限
|
|
reward = [] %% 奖励内容
|
|
}).
|
|
|
|
%% 经验配置
|
|
-record(base_beach_exp, {
|
|
level = 0, %% 玩家等级
|
|
timer_add_exp = 0, %% 每5秒增加经验值
|
|
vote_add_exp = 0 %% 投票增加经验值
|
|
}).
|
|
|
|
%% 假人配置
|
|
-record(base_beach_dummy, {
|
|
id = 0, %% Id
|
|
sex = 0, %% 性别
|
|
location = "", %% 坐标
|
|
model = [], %% 模型
|
|
fashion_model = [], %% 时装模型
|
|
name = "" %% 名字
|
|
}).
|
|
|
|
%% 发言操作类型配置
|
|
-record(base_beach_voice, {
|
|
type = 0, %% 操作类型
|
|
cd = 0, %% 发言间隔
|
|
base_id = 0, %% 文案库Id
|
|
desc = "" %% 描述说明
|
|
}).
|
|
|
|
%% 发言文案配置
|
|
-record(base_beach_voice_content, {
|
|
base_id = 0, %% 文案库Id
|
|
content_id = 0, %% 文案Id
|
|
content = "" %% 文案内容
|
|
}).
|