源战役
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.

298 lines
20 KiB

  1. %% ---------------------------------------------------------------------------
  2. %% @doc server.hrl
  3. %% @author ming_up@foxmail.com
  4. %% @since 2016-04-06
  5. %% @deprecated 功能性record保存在独立文件就可以了,在mod_login:server_login处初始化
  6. %% ---------------------------------------------------------------------------
  7. -define(ETS_ONLINE, ets_online). % 在线列表
  8. -define(ETS_ROLE_FUNC_CHECK, ets_role_func_check). % 玩家在线功能定时检测超时的数据
  9. %% #player_status.mark 用法
  10. -define(MARK_SELF_CHARGE, 2#00000001). %% 自充值标记
  11. -define(CHECK_MARK_WITH(Mark, CheckMark), Mark band CheckMark > 0).
  12. -define(ADD_MARK(OldMark, Mark), OldMark bor Mark).
  13. -define(REMOVE_MARK(OldMark, Mark), OldMark band (bnot Mark)).
  14. %% ets_role_func_check中的FuncType类型定义
  15. -define(FUNC_TYPE_FASHION, fashion). %% 时装
  16. -define(FUNC_TYPE_DESIGNATION, designation). %% 称号
  17. -define(FUNC_TYPE_VIP, vip). %% vip
  18. -define(FUNC_TYPE_SUP_VIP, sup_vip). %% 贵族
  19. -define(FUNC_TYPE_MIDNIGHT_LOG, midnight_log). %% 跨天在线日志记录
  20. -define(FUNC_TYPE_BUFF, goods_buff_time_out). %% 物品buff过期
  21. -define(FUNC_TYPE_RUSH_RANK_LV, rush_rank_lv). %% 开服冲榜等级榜
  22. %% 玩家身上的过期时间检查
  23. -record(ets_role_func_check, {
  24. key_id = {0, 0}, % {RoleId, FuncType} 每分钟检查一次
  25. end_times = [] % 结束时间列表|或者结束时间点:例如称号功能[{称号id, 结束时间}...]
  26. }).
  27. %% 只为玩家统计用的,不要加别的字段进来了
  28. -record(ets_online, {
  29. id = 0, % 角色id
  30. pid = 0, % 玩家进程
  31. sid = undefined % 发送进程
  32. }).
  33. %%记录用户一些常用信息
  34. -record(player_status, {
  35. id = 0, % 角色在本服id
  36. server_id = 0, % 角色所在的服务器id
  37. platform = "", % 平台标示
  38. server_num = 0, % 所在的服标示
  39. server_name = <<>>, % 选择服务器的名字
  40. reg_server_id = 0, % 选择服务器的服id
  41. accid = 0, % 平台账号id
  42. accname = [], % 平台账号
  43. acc_roles = [], % 同一账号下的角色id列表
  44. source="", % 渠道来源
  45. login_time_before_last = 0, % 上一次登陆时间
  46. last_login_time = 0, % 最后登陆时间
  47. last_logout_time = 0, % 上一次退出游戏时间(unixtime,秒)
  48. comeback_state = 0, % 玩家封测回归状态
  49. socket = none, % socket
  50. c_rename = 0, % 是否可以免费改名
  51. c_rename_time = 0, % 上次改名时间(unixtime,秒)
  52. ip = "", % ip地址 如 "0.0.0.0"
  53. network_type = 0, % 网络类型(0:未知网络|1:wifi网络|2:4g网络)
  54. online = 1, % 是否真实在线 0:离线;1:在线;2离线挂机中
  55. figure=undefined, % 角色独有外观信息#figure{}(include/figure.hrl)
  56. battle_attr=undefined, % 基础战斗属性#battle_attr{}(include/attr.hrl)
  57. gold = 0, % 钻石
  58. bgold = 0, % 绑钻
  59. fgold = 0, % 粉钻
  60. coin = 0, % 铜钱
  61. bcoin = 0, % 绑定铜钱
  62. gcoin = 0, % 公会货币 废弃
  63. gfame = 0, % 社团贡献
  64. honour = 0, % 名望券
  65. chat = undefined, % 聊天设置 #status_chat{}
  66. chat_limit_new = [], % 角色聊天次数监控
  67. skill = undefined, % 技能 #status_skill{}(include/skill.hrl)
  68. scene = 0 :: non_neg_integer(), % 场景id
  69. scene_pool_id=0, % 场景进程id(一般在跨服或者单进程无法承载的时候使用,默认为0)
  70. copy_id = 0, % 同一场景不同房间标示(可以数字,字符串任意)
  71. pre_scene_time = 0, % 准备切换场景时间(在野外或者pk场景需要原地等待5秒)
  72. fin_change_scene = 0, % 完成切换场景(0否|1是)
  73. change_scene_num = 0, % 切换场景次数
  74. fin_change_scene_ref = none, % 完成切换场景定时器引用(设置默认超时时间)
  75. y = 0, % x坐标(px)
  76. x = 0, % y坐标(px)
  77. longitude = 0, % 经度
  78. latitude = 0, % 纬度
  79. last_load_scene = 0, % 最近load的场景(用于检测是否全新进入场景,避免复活或其他load_scene操作影响)
  80. last_load_pool = 0, % 最近load的场景分线(用于检测是否全新进入场景,避免复活或其他load_scene操作影响)
  81. old_scene_info = undefined, % 存储可能需要回到的上一个场景位置 {OldScene, OldScenePooldId, OldCopyId, OldX, OldY}
  82. reconnect=0, % 活动玩法中重连 0否| 1正常登录重连| 2relogin重连
  83. pid = undefined, % 玩家服务进程
  84. exp = 0, % 角色当前经验
  85. exp_lim = 0, % 当前等级经验上限
  86. exp_list = 0, % 角色等级经验列表 [{type, exp}|...] 列表数量控制在20条
  87. talk_lim= 0, % 是否被禁言(0否,1是)
  88. talk_lim_type = 0, % 禁言类型
  89. talk_lim_time = 0, % 禁言截止时间
  90. quickbar = undefined, % 技能快捷栏,#quickbar{}
  91. team = undefined, % 队伍记录,登录会初始化为#status_team{} include/team.hrl
  92. cell_num = 0, % 背包格子数
  93. storage_num = 0, % 仓库格子数
  94. last_att_main = 0, % 上次主技能出手时间(只计人物出手,用于限制出手频率,判断技能间公共cd)(ms)
  95. last_att_time = 0, % 上次主动攻击的时间(技能有选定目标进行释放,含人物其他战斗单位出手)(ms)
  96. last_be_att_time = 0, % 上次被攻击的时间(ms)
  97. last_be_kill = [], % 上一次击杀我的玩家信息(用于玩家上线0血提示)[{sign, 1|2}, {name, Name}, {lv, Lv}]
  98. can_att_list = [], % 可攻击对象 [{对象类型, 对象列表}] eg:[{?BATTLE_SIGN_MON, [怪物配置Id]}, {?BATTLE_SIGN_PLAYER, [玩家ID: 空则表示所有]}]
  99. cannot_beatt_list = [], % 不可被攻击对象 [{对象类型, 对象列表}]
  100. is_pay = false, % 是否有充值,true为有充值
  101. last_pay_time = 0, % 最后充值时间
  102. reg_time = 0, % 注册时间
  103. sid = undefined, % 异步广播进程
  104. change_scene_sign = 0, % 排队换线标志
  105. leave_scene_sign = 0, % 离开场景标志(某些活动在进入排队前就已经切换成离开场景标识) 这种状态下不能攻击和受到玩家攻击
  106. counter_pid = none, % 玩家终生次数处理进程
  107. combat_power = 0, % 战斗力
  108. hightest_combat_power = 0, % 历史最高战斗力
  109. hightest_combat_power_cd = 0, % 历史最高战斗力cd结束时间戳
  110. role_base_attr,
  111. daily_growth = #{}, % 当日0点成长 #{0 => 最高战力, 1 => 时装星数(激活算1星)}
  112. picture_lim = 0, % 是否允许提交头像 0:不禁止,1:禁止
  113. npc_info = [], % npc信息([{NpcId, IsShow, SceneId, X, Y}])
  114. player_buff = undefined, % 玩家身上的BUFF
  115. buff_attr = undefined, % BUFF属性
  116. goods_buff_exp_ratio = 0, % 物品buff经验加成(实数)
  117. logout_expire_buff_exp_info = {0,0}, % 下线期间过期的经验药水信息 {经验药水物品类型Id, 过期时间戳}
  118. exp_ratio = 0, % 经验加成数值
  119. exp_dun_drop_ratio = 0, % 放置经验加成数值(万分比)
  120. dsgt_status = undefined, % 称号状态 格式:#dsgt_status{}
  121. guild = undefined, % 公会 格式:#status_guild{}
  122. status_pet = undefined, % 宠物 格式:#status_pet{}
  123. status_child = undefined, % 孩子 格式:#status_child{}
  124. wardrobe = undefined, % 衣橱 格式:#status_wardrobe{}
  125. setting = undefined, % 设置 格式:#status_setting{}
  126. off = undefined, % 离线数据(用于查看面板) 格式:#status_off{}
  127. dungeon = undefined, % 副本 格式#status_dungeon{}
  128. dun_multi = undefined, % 多人副本 格式#role_dun_multi{}
  129. follows = [], % 跟随玩家列表
  130. follow_target_xy={0,0}, % 跟随目标xy
  131. follow_target_conut=0, % 坐标变更次数
  132. status_pushmail = undefined, % 邮件推送 格式#status_pushmail{}
  133. vip_status = undefined, % vip 格式#vip_status{}
  134. revive_status = undefined, % 死亡CD 格式 #revive_status{}
  135. recharge_status = undefined, % 充值 格式#recharge_status{}
  136. recharge_act_status = undefined, % 充值活动 格式#recharge_act_status{}
  137. quick_recharge = [], % 快速充值信息 [{ProductId, MoneyGap}...]
  138. resource_back = undefined, % 资源找回
  139. flower = undefined, % 鲜花 格式 #flower
  140. dress_up = undefined, % 个性装扮 格式 #status_dress_up{}
  141. client_ver = 0, % 客户端版本号
  142. transform_data = 0, % 转职数据 #transform_info{}
  143. degree = undefined, % 境界学位 #degree{}
  144. role_achievement = undefined, % 成就等级 #role_achievement{}
  145. guild_skill = undefined % 公会技能学习 #status_guild_skill{}
  146. ,dungeon_record = undefined % 副本记录 #{DunId, RecData}
  147. ,help_type_setting = undefined % 副本助战设置
  148. ,arena_battle_pid = undefined % 竞技战场进程
  149. %% 行为互斥锁 当前在某个活动中的时候,不能参与别的活动,无锁的时候为free 其余为:Code :: integer()
  150. ,action_lock = free
  151. %% 注意:行为互斥锁加锁必须在lib_player:setup_action_lock/2进行加锁
  152. %% 解锁必须在lib_player:break_action_lock/2 进行解锁
  153. %% 上线会有修复操作,在野外的互斥状态可能会被修复lib_player:repair_action_lock/1,要注意!!!
  154. ,top_pk = undefined % 巅峰竞技
  155. ,guild_war = undefined % 公会争霸 格式 #guild_war_status{}
  156. ,currency_map = undefined % 特殊货币#{}
  157. ,login_reward = undefined % 登录奖励
  158. ,fly_state = 0 % 小飞鞋状态
  159. ,forbid_pk_etime = 0 % 玩家禁止释放技能状态结束时间戳
  160. ,last_task_id = 0 % 上一次完成的主线任务id
  161. ,mate_role_id = 0 % 配对玩家id 目前是海滩约会对象的id 默认为0
  162. ,battle_field = undefined % 战场信息 #{mod_lib => ModLib, pid => Pid}
  163. ,role_auction = undefined % 拍卖系统 格式 #status_auction{}
  164. ,local_boss = undefined % boss 格式 #status_local_boss{}
  165. ,role_3v3 = undefined % 3v3数据 格式 #role_3v3{}
  166. ,role_drum = undefined % 钻石大战 格式 #role_drum{}
  167. ,act_label = [] % 活动标识 [{K,V}]
  168. ,kf_1vn = undefined % 跨服1vn 格式 #status_kf1vn{}
  169. ,fishing = [] % 钓鱼 格式 #fishing{}
  170. ,live_skill = undefined % 生活技能 格式 #status_live_skill{}
  171. %% 定制活动
  172. ,status_custom_act = undefined % 定制活动 #status_custom_act{}
  173. ,custom_act_investment = undefined % 运营投资活动
  174. ,overflow_gift = #{} % 超值礼包信息
  175. ,te_status = undefined % 幸运鉴宝#te_status{}
  176. ,daily_turntable = undefined % 每日活跃转盘
  177. ,spec_sell_act = #{} % 精品特卖
  178. ,cloud_buy_list = [] % 众仙云购
  179. ,rush_rank = undefined % 开服冲榜 格式 #status_rush_rank{}
  180. ,joy_wish = undefined % 欢乐许愿 格式 #joy_wish{}
  181. ,draw_record = undefined % 抽奖记录 格式 #draw_record{}
  182. ,vip_bag_onsale = undefined % VIP特惠 格式 #vip_bag_onsale{}
  183. ,lucky_flop = undefined % 幸运翻牌 格式 #lucky_flop{}
  184. ,cumulative_charge = undefined % 累充
  185. ,pellet = undefined % 弹珠活动
  186. ,treasure_house = undefined % 珍宝阁数据
  187. ,investment = undefined % 投资活动
  188. ,mark = 0 % 特殊记号 0无 1自充值账号
  189. ,scene_att_objects = [] % 场景攻击方对象ID列表 [#scene_att_object{}]
  190. ,limit_goal = #{} % 限时目标 格式 #{}
  191. ,limit_goal_soul = undefined % 限时目标星魂 格式 #limit_goal_soul_status{}
  192. ,supplication = undefined % 祈愿 格式 #supplication{}
  193. ,module_advance = [] % 功能预告
  194. ,turn_task_id = 0 % 当前转生任务id
  195. ,equipment = undefined % 装备
  196. ,role_coupon = undefined % 社交每日票券
  197. ,role_foster = undefined % 进阶系统库
  198. ,role_foster_skin = undefined % 珍宝库
  199. ,guild_task = [] % 社团劳务
  200. ,guild_shop = undefined % 社团商店
  201. ,profile_photo_info = [] % 角色头像数据 #profile_photo_info{}
  202. ,mate = undefined % 羁绊/伙伴
  203. ,role_marble = undefined % 弹珠 #role_marble{}
  204. ,exp_dun_achieve = [] % 经验副本里程碑数据
  205. ,market_data = 0 % 角色交易市场数据 #market_data{}
  206. ,chat_simulation % 模拟聊天数据
  207. ,exp_dun_drop = undefined % 放置经验数据
  208. ,guild_collect = undefined % 社团午间采集
  209. ,role_fashion = undefined % 时装
  210. ,role_liveness = undefined % 活跃度
  211. ,welfare = undefined % 福利大厅
  212. ,role_visus = undefined % 幻光
  213. ,goods_devour = undefined % 吞噬
  214. ,role_dance = 0
  215. ,role_nucleon = undefined
  216. ,role_motion % 运动行为
  217. ,last_behavior = 0 % 玩家最后一次行为
  218. ,role_convoy % 护送
  219. ,role_dun_visus = [] % 幻光副本
  220. ,role_lattice = undefined % 器灵寻宝-走格子 #role_lattice{}
  221. ,role_lattice_shop = undefined % 器灵寻宝-格子商店 #role_lattice_shop{}
  222. ,capsule_egg = undefined % 龙神扭蛋
  223. ,recharge_statistic % 充值统计
  224. ,role_dun_guard = [] % 塔防副本
  225. ,role_dun_pet = undefined % 宠物副本数据
  226. ,race_rank = undefined % 角色竞榜活动数据#role_race_rank{}
  227. ,role_god = undefined % 唤神
  228. ,offline_hosting = undefined % 离线托管
  229. ,cross_guild_war = undefined % 跨服帮战
  230. ,role_god_dun = undefined % 唤神副本相关
  231. ,role_galaxy = undefined % 星辰系统
  232. ,role_single_charge = [] % 单笔充值辅助数据
  233. ,beauty_contest = undefined % 靓丽大赛数据
  234. ,role_dun_galaxy_chapter = [] % 星辰副本-章节信息#role_chapter_info{}
  235. ,role_camp_war = undefined % #role_camp_war{}
  236. ,role_war_soul = undefined % 战魂系统
  237. ,role_uranium = undefined % 魂力系统
  238. ,role_first_top = [] % 排行榜目标奖励领取数据
  239. ,role_rank_praise = [] % 排行榜点赞数据
  240. ,passive_skills = [] % 被动技能列表
  241. ,seven_days_goal = undefined % 七日目标数据 #seven_days_goal{}
  242. ,role_legion = undefined % 战团数据
  243. ,role_cross_point= undefined % 跨服沙盘-据点争夺战
  244. ,overlord_privilege = undefined % 霸主特权数据 #overlord_info{}
  245. ,role_treasure_map = undefined % 人物藏宝图数据
  246. ,boss_first_blood = []
  247. ,equipment_task = #{}
  248. ,task_daily = undefined %跑环类每日领取情况
  249. ,dance = undefined % 舞姿
  250. ,role_guild_run_assist = undefined % 社团跑环协助
  251. ,killed_pos = []
  252. ,tower_dun_star = #{} % 爬塔副本星数奖励状态
  253. ,role_dun_child = undefined % 宝宝副本数据
  254. ,status_workroom = undefined % 时装工坊
  255. ,reb_protect_time = 0 % 赏金boss免战时间
  256. ,reb_protect_ref = [] % 赏金boss免战定时器
  257. ,deb_protect_time = 0 % 星域幻魔免战时间
  258. ,deb_protect_ref = [] % 星域幻魔免战定时器
  259. ,mobilize_combat_power = 0 % 全民动员战力
  260. ,role_act_reserve = #{} % 活动预约
  261. ,diamond_pk = #{} % 钻石擂台个人数据
  262. ,client_event = [] % 前端引导事件##[{key, value}]
  263. ,role_exp_sea = undefined % 经验海
  264. ,role_currencywish = undefined % 货币祈愿角色数据
  265. }).