源战役
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。
 
 

99 行
3.9 KiB

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