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