源战役
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

98 lines
3.9 KiB

  1. %%%-------------------------------------------------------------------
  2. %%% @author liushl
  3. %%% @doc
  4. %%%
  5. %%% @end
  6. %%%-------------------------------------------------------------------
  7. -author("liushl").
  8. %% 存储当前正在参与活动玩家信息/玩家上线需要清除
  9. -define(ETS_HOSTING_ROLE, ets_hosting_role).
  10. %% 存储玩家的托管设置
  11. -define(ETS_OFFLINE_HOSTING, ets_offline_hosting).
  12. %% 托管人数上限,设定的这个值按照当前的服务器导量来讲,一般是不会达到的
  13. %% 但是以防万一,设定该值
  14. -define(OFFLINE_HOSTING_LIMIT, 1500).
  15. %% 托管形式
  16. -define(HOSTING_TYPE_ROLE, 1). %% 真实玩家托管
  17. -define(HOSTING_TYPE_DUMMY, 2). %% 假人托管
  18. %% 玩家的挂机设置
  19. -record(ets_offline_hosting, {
  20. role_id = 0, %% 玩家id
  21. close_list = [], %% 设置忽略列表-初始默认全部开启,这里记录关闭的
  22. value = 0, %% 当前托管值
  23. u_time = 0 %% 托管值更新时间
  24. }).
  25. %% 正在托管的玩家
  26. -record(ets_hosting_role, {
  27. role_id = 0, %% 玩家id
  28. mod = 0, %% 功能模块
  29. sub_id = 0,
  30. mon_id = 0 %% 如果是怪物托管,这里是怪物id
  31. , pid = undefined %% 托管执行进程
  32. , cost_value = undefined %% 消耗的托管值
  33. , time = 0 %% 开始时间
  34. , award = [] %% 奖励
  35. }).
  36. %% 玩家数据
  37. -record(offline_hosting, {
  38. handler %% 玩法代理
  39. , mod_id = 0 %% 功能id
  40. , behavior_ref %% 行为定时器
  41. , log = [] %% 活动日志-首部第一个是当前参与的活动
  42. , ask_log_time = 0%% 请求托管记录的时间,如果大于0 ,表明请求过,不在重复发送
  43. }).
  44. %% 怪物托管数据
  45. -record(offline_hosting_dummy, {
  46. handler %% 玩法代理
  47. , module_id = 0 %% 功能id
  48. }).
  49. %% 活动记录
  50. -record(offline_hosting_log, {
  51. key %% 活动主键{module_id,sub_id}
  52. , duration = undefined %% 持续时间
  53. , cost_value = undefined %% 消耗的托管值
  54. , time = 0 %% 时间
  55. , award = [] %% 奖励
  56. }).
  57. %% 玩家登陆
  58. -define(HOST_LOGIN,
  59. <<"SELECT close_list,value,u_time FROM offline_hosting_setting WHERE role_id=~p">>).
  60. %% 更新托管值
  61. -define(HOST_UPDATE_VALUE,
  62. <<"UPDATE offline_hosting_setting SET value=~p,u_time=~p WHERE role_od=~p">>).
  63. %% 保存玩家数据
  64. -define(HOST_SAVE_DATA,
  65. <<"REPLACE INTO offline_hosting_setting(role_id,close_list,value,u_time) VALUES(~p,'~ts',~p,~p)">>).
  66. %% 加载托管玩家数据
  67. -define(HOST_LOAD_DATA,
  68. <<"SELECT close_list,value,u_time FROM offline_hosting_setting WHERE role_id=~p">>).
  69. %% 加载所有托管玩家
  70. %%-define(HOST_LOAD_ALL,
  71. %% <<"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
  72. %% LEFT JOIN player_login AS pl ON oh.role_id=pl.id WHERE oh.value > 0">>).
  73. %% 加载所有托管玩家
  74. -define(HOST_LOAD_ALL,
  75. <<"SELECT role_id,close_list,value,u_time FROM offline_hosting_setting WHERE value > 0">>).
  76. %% 保存一条托管记录
  77. -define(HOST_SAVE_LOG,
  78. <<"INSERT INTO offline_hosting_log(role_id,module_id,sub_id,cost_value,award,duration,time) VALUES(~p,~p,~p,~p,'~ts',~p,~p)">>).
  79. %% 加载20条托管记录
  80. -define(HOST_LOAD_LOG,
  81. <<"SELECT module_id,sub_id,cost_value,award,duration,time FROM offline_hosting_log WHERE role_id=~p ORDER BY time DESC LIMIT 20">>).
  82. %% 获得所有人的托管值数据
  83. -define(HOST_GET_ALL_VALUE,
  84. <<"SELECT role_id,value FROM offline_hosting_setting">>).
  85. %% 删除一个月前的托管日志
  86. -define(HOST_CLEAN_LOG,
  87. <<"DELETE FROM offline_hosting_log WHERE time<~p">>).
  88. %% 删除一个月前的托管设置
  89. -define(HOST_CLEAN_HOSTING_SETTING,
  90. <<"DELETE FROM offline_hosting_setting WHERE u_time<~p">>).