|
|
- %%%-------------------------------------------------------------------
- %%% @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">>).
|