%%%-------------------------------------------------------------------
|
|
%%% @author liushl
|
|
%%% @doc
|
|
%%%
|
|
%%% @end
|
|
%%%-------------------------------------------------------------------
|
|
-author("liushl").
|
|
|
|
%% 存储当前正在参与活动玩家信息/玩家上线需要清除
|
|
-define(ETS_HOSTING_ROLE, ets_hosting_role).
|
|
%% 存储玩家的托管设置
|
|
-define(ETS_OFFLINE_HOSTING, ets_offline_hosting).
|
|
|
|
%% 托管人数上限,设定的这个值按照当前的服务器导量来讲,一般是不会达到的
|
|
%% 但是以防万一,设定该值
|
|
-define(OFFLINE_HOSTING_LIMIT, 1500).
|
|
|
|
%% 托管形式
|
|
-define(HOSTING_TYPE_ROLE, 1). %% 真实玩家托管
|
|
-define(HOSTING_TYPE_DUMMY, 2). %% 假人托管
|
|
|
|
%% 玩家的挂机设置
|
|
-record(ets_offline_hosting, {
|
|
role_id = 0, %% 玩家id
|
|
close_list = [], %% 设置忽略列表-初始默认全部开启,这里记录关闭的
|
|
value = 0, %% 当前托管值
|
|
u_time = 0 %% 托管值更新时间
|
|
}).
|
|
|
|
%% 正在托管的玩家
|
|
-record(ets_hosting_role, {
|
|
role_id = 0, %% 玩家id
|
|
mod = 0, %% 功能模块
|
|
sub_id = 0,
|
|
mon_id = 0 %% 如果是怪物托管,这里是怪物id
|
|
, pid = undefined %% 托管执行进程
|
|
, cost_value = undefined %% 消耗的托管值
|
|
, time = 0 %% 开始时间
|
|
, award = [] %% 奖励
|
|
}).
|
|
|
|
%% 玩家数据
|
|
-record(offline_hosting, {
|
|
handler %% 玩法代理
|
|
, mod_id = 0 %% 功能id
|
|
, behavior_ref %% 行为定时器
|
|
, log = [] %% 活动日志-首部第一个是当前参与的活动
|
|
, ask_log_time = 0%% 请求托管记录的时间,如果大于0 ,表明请求过,不在重复发送
|
|
}).
|
|
|
|
%% 怪物托管数据
|
|
-record(offline_hosting_dummy, {
|
|
handler %% 玩法代理
|
|
, module_id = 0 %% 功能id
|
|
}).
|
|
|
|
%% 活动记录
|
|
-record(offline_hosting_log, {
|
|
key %% 活动主键{module_id,sub_id}
|
|
, duration = undefined %% 持续时间
|
|
, cost_value = undefined %% 消耗的托管值
|
|
, time = 0 %% 时间
|
|
, award = [] %% 奖励
|
|
}).
|
|
|
|
%% 玩家登陆
|
|
-define(HOST_LOGIN,
|
|
<<"SELECT close_list,value,u_time FROM offline_hosting_setting WHERE role_id=~p">>).
|
|
%% 更新托管值
|
|
-define(HOST_UPDATE_VALUE,
|
|
<<"UPDATE offline_hosting_setting SET value=~p,u_time=~p WHERE role_od=~p">>).
|
|
%% 保存玩家数据
|
|
-define(HOST_SAVE_DATA,
|
|
<<"REPLACE INTO offline_hosting_setting(role_id,close_list,value,u_time) VALUES(~p,'~ts',~p,~p)">>).
|
|
%% 加载托管玩家数据
|
|
-define(HOST_LOAD_DATA,
|
|
<<"SELECT close_list,value,u_time FROM offline_hosting_setting WHERE role_id=~p">>).
|
|
%% 加载所有托管玩家
|
|
%%-define(HOST_LOAD_ALL,
|
|
%% <<"SELECT pl.id,pl.accid,pl.accname,pl.last_logout_time,oh.close_list,oh.value,oh.u_time FROM offline_hosting_setting AS oh
|
|
%% LEFT JOIN player_login AS pl ON oh.role_id=pl.id WHERE oh.value > 0">>).
|
|
%% 加载所有托管玩家
|
|
-define(HOST_LOAD_ALL,
|
|
<<"SELECT role_id,close_list,value,u_time FROM offline_hosting_setting WHERE value > 0">>).
|
|
%% 保存一条托管记录
|
|
-define(HOST_SAVE_LOG,
|
|
<<"INSERT INTO offline_hosting_log(role_id,module_id,sub_id,cost_value,award,duration,time) VALUES(~p,~p,~p,~p,'~ts',~p,~p)">>).
|
|
%% 加载20条托管记录
|
|
-define(HOST_LOAD_LOG,
|
|
<<"SELECT module_id,sub_id,cost_value,award,duration,time FROM offline_hosting_log WHERE role_id=~p ORDER BY time DESC LIMIT 20">>).
|
|
%% 获得所有人的托管值数据
|
|
-define(HOST_GET_ALL_VALUE,
|
|
<<"SELECT role_id,value FROM offline_hosting_setting">>).
|
|
%% 删除一个月前的托管日志
|
|
-define(HOST_CLEAN_LOG,
|
|
<<"DELETE FROM offline_hosting_log WHERE time<~p">>).
|
|
%% 删除一个月前的托管设置
|
|
-define(HOST_CLEAN_HOSTING_SETTING,
|
|
<<"DELETE FROM offline_hosting_setting WHERE u_time<~p">>).
|