源战役
Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

239 Zeilen
11 KiB

vor 4 Wochen
  1. %% ---------------------------------------------------------------------------
  2. %% @doc relationship.hrl
  3. %% @author hjh
  4. %% @since 2016-12-06
  5. %% @deprecated 关系
  6. %% ---------------------------------------------------------------------------
  7. %% 常量配置参数
  8. -define(RELA_NUM_LIMIT, 1).
  9. -define(COUPON_SEND_CONF, 2).
  10. -define(COUPON_GIFT_CONF, 3).
  11. %% 玩家关系缓存
  12. -define(ETS_ROLE_RELA, ets_role_rela). %% 缓存玩家关系和请求状态
  13. -define(UPDATE_RELA, 1). %% 更新关系
  14. -define(UPDATE_RESPONSE_STATUS, 2). %% 更新好友回应状态
  15. %% 人数上限
  16. -define(FRIEND_NUM_LIMIT, data_rela:get_rela_value(?RELA_NUM_LIMIT)). %% 好友数量上限
  17. -define(NEARLLY_NUM_LIMIT, data_rela:get_rela_value(?RELA_NUM_LIMIT)). %% 最近联系人名单上限
  18. %% 推荐好友参数
  19. -define(RECOMMENDED_ROLE_POOL, 30). %% 推荐池
  20. -define(RECOMMENDED_SEARCH_CD, 5). %% 推荐列表刷新CD
  21. -define(RECOMMENDED_LIST_MAX_LEN, 10). %% 推荐好友显示最大数量
  22. -define(RECOMMENDED_OPPOSITE_ROLE, 7). %% 异性推荐人数
  23. %% 社交删增操作通知类别
  24. -define(RELA_UPDATE_REMOVE, 0). %% 从社交列表移除玩家
  25. -define(RELA_UPDATE_ADD, 1). %% 从社交列表增加玩家
  26. %% 回复好友申请类型
  27. -define(REPLY_TYPE_REFUSE, 0). %% 拒绝
  28. -define(REPLY_TYPE_AGREE, 1). %% 同意
  29. -define(REPLY_TYPE_PULL_BLACK, 2). %% 拉黑
  30. %% 好友申请处理状态
  31. -define(ASK_RESPONSE_SUSPEND, 0). %% 挂起不理会
  32. -define(ASK_RESPONSE_REFUSE, 1). %% 拒绝
  33. -define(ASK_RESPONSE_AGREE, 2). %% 同意
  34. %% 好友请求有效时间
  35. -define(FRIEND_ASK_VAILD_TIME, 86400). %% 过期的在玩家登陆或者服务器重启时会清理掉
  36. %% 获得亲密度的方式
  37. %% 类型1000之前的为后台配置亲密度获得方式配置的类型,其他类型从1000之后开始
  38. -define(INTIMACY_TYPE_DUN, 1). %% 各类副本
  39. -define(INTIMACY_TYPE_MON, 2). %% 各类怪物
  40. -define(INTIMACY_TYPE_PRESENT, 1000). %% 赠送物品
  41. -define(INTIMACY_TYPE_SHOW_LVE, 1001). %% 秀恩爱
  42. -define(INTIMACY_TYPE_CLEAN, 1002). %% 清空
  43. %% 社交关系类别(查询和更新使用)
  44. -define(RELA_LIST_TYPE_FRIEND, 1). %% 好友列表
  45. -define(RELA_LIST_TYPE_FETTERS, 2). %% 羁绊列表
  46. -define(RELA_LIST_TYPE_ENEMY, 3). %% 仇人列表
  47. -define(RELA_LIST_TYPE_BLACK, 4). %% 黑名单,非正式社交类别,供限制聊天使用
  48. -define(RELA_LIST_TYPE_RECENT_CHAT, 5). %% 最近联系
  49. -define(RELA_LIST_TYPE_SINGLE_FRIEND, 6). %% 单向好友列表
  50. %% 社交关系操作
  51. -define(RELA_DEL_FRIEND, 1). %% 删除好友
  52. -define(RELA_DEL_FETTERS, 2). %% 删除羁绊
  53. % -define(RELA_ADD_BLACK, 2). %% 拉黑
  54. % -define(RELA_DEL_BLACK, 3). %% 取消拉黑
  55. % -define(RELA_DEL_ENEMY, 4). %% 删除仇人
  56. %% ---------------- 关系类型定义(关系唯一,不会同时存在两条关系数据,存于数据库中) ------------------------------
  57. -define(RELA_TYPE_NONE, 0). %% 没有关系
  58. -define(RELA_TYPE_FRIEND, 1). %% 好友
  59. -define(RELA_TYPE_FETTERS, 2). %% 羁绊(实际db存储的数据还是1-好友关系)
  60. % -define(RELA_TYPE_ENEMY, 3). %% 仇人
  61. % -define(RELA_TYPE_BLACK, 4). %% 黑名单
  62. -define(RELA_TYPE_SINGLE_FRIEND, 6). %% 单向好友
  63. -define(RELA_FRIEND_TYPES, [?RELA_TYPE_FRIEND]).
  64. -define(RELA_FETTERS_TYPES, [?RELA_TYPE_FETTERS]).
  65. -define(RELA_SINGLE_FRIEND_TYPES, [?RELA_TYPE_SINGLE_FRIEND]).
  66. % -define(RELA_BLACK_TYPES, [?RELA_TYPE_BLACK]).
  67. % -define(RELA_ENEMY_TYPES, [?RELA_TYPE_ENEMY]).
  68. %% -----------------------------------------------------------------------
  69. %% --------------------------关系操作(日志)-----------------------------
  70. -define(ADD_FRIEND, 1). %% 同意添加好友
  71. -define(BE_ADD_FRIEND, 2). %% 被同意添加好友
  72. -define(DEL_FRIEND, 3). %% 删除好友
  73. -define(BE_DEL_FRIEND, 4). %% 被删除好友
  74. -define(ADD_BLACK, 5). %% 拉黑
  75. -define(BE_ADD_BLACK, 6). %% 被拉黑
  76. -define(DEL_BLACK, 7). %% 取消拉黑
  77. -define(ADD_FETTERS, 8). %% 自动添加羁绊
  78. -define(DEL_FETTERS, 9). %% 移除羁绊
  79. %% ---------------------------玩家进程定义--------------------------------
  80. -define(RELAS_KEY, relas). %% 进程字典
  81. -define(FRIEND_ASK_LIST, rela_friend_ask_list). %% 好友请求列表
  82. -define(FRIEND_RECOMMEND_LIST, rela_recommended_list). %% 好友推荐列表
  83. -define(FRIEND_SEARCH_TIME, rela_last_search_time). %% 好友推荐列表最后刷新时间
  84. -define(LAST_RELA_LIST, last_rela_list). %% 最近联系人列表
  85. %% -----------------------------------------------------------------------
  86. %% 最近联系人上限
  87. -define(LAST_RELA_CHAT_LIMIT, 10).
  88. -record(intimacy_lv_cfg, {
  89. lv = 0,
  90. color = 0,
  91. name = "",
  92. intimacy = 0,
  93. attr = []
  94. }).
  95. -record(intimacy_obtain_cfg, {
  96. type = 0, %% 亲密度获得类型
  97. trigger_obj = 0, %% 触发对象id
  98. intimacy = 0, %% 增加亲密度
  99. times = 0 %% 次数限制 4点重置
  100. }).
  101. %% 关系记录(玩家进程)
  102. -record(rela, {
  103. role_id = 0, % 玩家id
  104. other_rid = 0, % 关系另一方的玩家id
  105. rela_type = 0, % 关系类型
  106. intimacy = 0, % 亲密度
  107. contribute = 0, % 本方的亲密度贡献
  108. last_chat_time = 0, % 最后聊天时间
  109. last_chat_utime = 0, % 最后聊天的数据库更新时间
  110. ctime = 0 % 关系记录创建时间
  111. }).
  112. %% 好友请求
  113. -record(friend_ask, {
  114. role_id = 0,
  115. ask_id = 0,
  116. time = 0
  117. }).
  118. %% 最近联系人(人物进程内)|初步限制在10人以内
  119. -record(last_rela_chat, {
  120. role_id = 0, %% 玩家id
  121. other_id = 0, %% 对方id
  122. time = 0 %% 最近聊天时间
  123. }).
  124. %% 每日社交票券
  125. -record(role_rela_coupon, {
  126. id = 0, %% 玩家id
  127. send_list = [], %% 今日已赠送列表
  128. send_time = 0, %% 今日最新赠送时间
  129. gift_list = [], %% 今日已领取列表 [{FromId, State},...]
  130. gift_time = 0 %% 今日最新领取&接收时间
  131. }).
  132. %% 玩家在对方所处的关系状态
  133. -record(ets_role_rela, {
  134. key = {0, 0} %% {RoleId, OppoId}
  135. ,rela = 0 %% 我(RoleId)在对方所处的关系状态
  136. ,res_status = 0 %% 回复请求加好友状态
  137. }).
  138. %% 计数器类型
  139. -define(RELA_COUPON_SEND, 1).
  140. -define(RELA_COUPON_GIFT, 2).
  141. %% 票券状态
  142. -define(COUPON_RECEIVING, 0).
  143. -define(COUPON_RECEIVED, 1).
  144. %% 票卷类型
  145. -define(COUPON_FRIEND, 1).
  146. -define(COUPON_MATE, 2).
  147. %% 亲密度增加类型
  148. %% 亲密度增加时统计贡献度使用
  149. -define(ACTIVE_CON, active_contribute).
  150. -define(PASS_CON, passive_contribute).
  151. -define(sql_rela_select_by_role_id,
  152. <<"select role_id, other_rid, rela_type, intimacy, contribute, last_chat_time, ctime from relationship where role_id = ~p">>).
  153. -define(sql_single_rela_select_by_role_id,
  154. <<"select role_id, other_rid, rela_type, intimacy, contribute, last_chat_time, ctime from relationship where other_rid = ~p">>).
  155. -define(sql_rela_select_rela_type_from_other,
  156. <<"select rela_type from relationship where role_id = ~p and other_rid = ~p">>).
  157. -define(sql_rela_select_by_rid_and_oid,
  158. <<"select role_id, other_rid, rela_type, intimacy, contribute, last_chat_time, ctime from relationship where role_id = ~p and other_rid = ~p">>).
  159. % -define(sql_rela_select_by_rid_and_type,
  160. % <<"select role_id, other_rid, rela_type, intimacy, contribute, last_chat_time, ctime from relationship where role_id = ~p and rela_type = ~p">>).
  161. % -define(sql_rela_insert,
  162. % <<"insert into relationship (from_id, to_id, rela_type, ctime) values(~p, ~p, ~p, ~p)">>).
  163. -define(sql_update_last_chat_time,
  164. <<"update relationship set last_chat_time = ~p where (role_id = ~p and other_rid = ~p) or (other_rid = ~p and role_id = ~p)">>).
  165. -define(sql_del_out_time_friend_ask_by_role_id,
  166. <<"delete from rela_friend_ask where time < ~p and role_id = ~p">>).
  167. -define(sql_get_friend_ask_by_role_id,
  168. <<"select role_id, ask_id, time from rela_friend_ask where role_id = ~p">>).
  169. -define(sql_get_friend_ask_by_oppo_role_id,
  170. <<"select role_id, ask_id, time from rela_friend_ask where role_id = ~p and ask_id = ~p">>).
  171. -define(sql_add_friend_ask,
  172. <<"replace into rela_friend_ask(role_id, ask_id, time) values(~p, ~p, ~p)">>).
  173. -define(db_del_friend_ask_by_asker_id,
  174. <<"delete from rela_friend_ask where role_id = ~p and ask_id = ~p">>).
  175. -define(db_del_one_role_all_friend_ask,
  176. <<"delete from rela_friend_ask where role_id = ~p">>).
  177. -define(sql_save_role_rela,
  178. <<"replace into relationship (role_id, other_rid, rela_type, intimacy, contribute, last_chat_time, ctime) values(~p, ~p, ~p, ~p, ~p, ~p, ~p)">>).
  179. -define(sql_del_role_rela,
  180. <<"delete from relationship where role_id = ~p and other_rid = ~p">>).
  181. -define(sql_update_intimacy,
  182. <<"update relationship set intimacy = ~p, contribute = ~p where role_id = ~p and other_rid = ~p">>).
  183. -define(sql_select_rela_data_by_rela,
  184. <<"select role_id, rela_type from relationship where other_rid = ~p and rela_type in(~s)">>).
  185. -define(sql_get_last_relas_by_role_id,
  186. <<"select role_id, other_id, time from last_rela_chat where role_id = ~p">>).
  187. -define(sql_del_last_rela_by_role_id,
  188. <<"delete from last_rela_chat where role_id = ~p and other_id = ~p">>).
  189. -define(sql_select_last_rela_data,
  190. <<"select role_id from last_rela_chat where other_id = ~p">>).
  191. -define(sql_replace_into_last_rela,
  192. <<"replace into last_rela_chat (role_id, other_id, time) values ~ts">>).
  193. -define(sql_select_role_coupon_list,
  194. <<"select op_role, coupon_type, type, status, time from role_coupon_list where role_id = ~p">>).
  195. -define(sql_replace_role_coupon_list,
  196. <<"replace into role_coupon_list set role_id = ~p, op_role = ~p, coupon_type = ~p, type = ~p, status = ~p, time = ~p">>).
  197. -define(sql_batch_replace_role_coupon_list,
  198. <<"replace into role_coupon_list(role_id, op_role, coupon_type, type, status, time) values ~ts">>).
  199. -define(sql_batch_replace_val,
  200. <<"(~p, ~p, ~p, ~p, ~p, ~p)">>).
  201. -define(sql_update_role_coupon_list,
  202. <<"update role_coupon_list set status = ~p where role_id = ~p and op_role = ~p and coupon_type = ~p and type = ~p">>).
  203. -define(sql_truncate_role_coupon_list,
  204. <<"truncate table role_coupon_list">>).