%% --------------------------------------------------------------------------- %% @doc server.hrl %% @author ming_up@foxmail.com %% @since 2016-04-06 %% @deprecated 功能性record保存在独立文件就可以了,在mod_login:server_login处初始化 %% --------------------------------------------------------------------------- -define(ETS_ONLINE, ets_online). % 在线列表 -define(ETS_ROLE_FUNC_CHECK, ets_role_func_check). % 玩家在线功能定时检测超时的数据 %% #player_status.mark 用法 -define(MARK_SELF_CHARGE, 2#00000001). %% 自充值标记 -define(CHECK_MARK_WITH(Mark, CheckMark), Mark band CheckMark > 0). -define(ADD_MARK(OldMark, Mark), OldMark bor Mark). -define(REMOVE_MARK(OldMark, Mark), OldMark band (bnot Mark)). %% ets_role_func_check中的FuncType类型定义 -define(FUNC_TYPE_FASHION, fashion). %% 时装 -define(FUNC_TYPE_DESIGNATION, designation). %% 称号 -define(FUNC_TYPE_VIP, vip). %% vip -define(FUNC_TYPE_SUP_VIP, sup_vip). %% 贵族 -define(FUNC_TYPE_MIDNIGHT_LOG, midnight_log). %% 跨天在线日志记录 -define(FUNC_TYPE_BUFF, goods_buff_time_out). %% 物品buff过期 -define(FUNC_TYPE_RUSH_RANK_LV, rush_rank_lv). %% 开服冲榜等级榜 %% 玩家身上的过期时间检查 -record(ets_role_func_check, { key_id = {0, 0}, % {RoleId, FuncType} 每分钟检查一次 end_times = [] % 结束时间列表|或者结束时间点:例如称号功能[{称号id, 结束时间}...] }). %% 只为玩家统计用的,不要加别的字段进来了 -record(ets_online, { id = 0, % 角色id pid = 0, % 玩家进程 sid = undefined % 发送进程 }). %%记录用户一些常用信息 -record(player_status, { id = 0, % 角色在本服id server_id = 0, % 角色所在的服务器id platform = "", % 平台标示 server_num = 0, % 所在的服标示 server_name = <<>>, % 选择服务器的名字 reg_server_id = 0, % 选择服务器的服id accid = 0, % 平台账号id accname = [], % 平台账号 acc_roles = [], % 同一账号下的角色id列表 source="", % 渠道来源 login_time_before_last = 0, % 上一次登陆时间 last_login_time = 0, % 最后登陆时间 last_logout_time = 0, % 上一次退出游戏时间(unixtime,秒) comeback_state = 0, % 玩家封测回归状态 socket = none, % socket c_rename = 0, % 是否可以免费改名 c_rename_time = 0, % 上次改名时间(unixtime,秒) ip = "", % ip地址 如 "0.0.0.0" network_type = 0, % 网络类型(0:未知网络|1:wifi网络|2:4g网络) online = 1, % 是否真实在线 0:离线;1:在线;2离线挂机中 figure=undefined, % 角色独有外观信息#figure{}(include/figure.hrl) battle_attr=undefined, % 基础战斗属性#battle_attr{}(include/attr.hrl) gold = 0, % 钻石 bgold = 0, % 绑钻 fgold = 0, % 粉钻 coin = 0, % 铜钱 bcoin = 0, % 绑定铜钱 gcoin = 0, % 公会货币 废弃 gfame = 0, % 社团贡献 honour = 0, % 名望券 chat = undefined, % 聊天设置 #status_chat{} chat_limit_new = [], % 角色聊天次数监控 skill = undefined, % 技能 #status_skill{}(include/skill.hrl) scene = 0 :: non_neg_integer(), % 场景id scene_pool_id=0, % 场景进程id(一般在跨服或者单进程无法承载的时候使用,默认为0) copy_id = 0, % 同一场景不同房间标示(可以数字,字符串任意) pre_scene_time = 0, % 准备切换场景时间(在野外或者pk场景需要原地等待5秒) fin_change_scene = 0, % 完成切换场景(0否|1是) change_scene_num = 0, % 切换场景次数 fin_change_scene_ref = none, % 完成切换场景定时器引用(设置默认超时时间) y = 0, % x坐标(px) x = 0, % y坐标(px) longitude = 0, % 经度 latitude = 0, % 纬度 last_load_scene = 0, % 最近load的场景(用于检测是否全新进入场景,避免复活或其他load_scene操作影响) last_load_pool = 0, % 最近load的场景分线(用于检测是否全新进入场景,避免复活或其他load_scene操作影响) old_scene_info = undefined, % 存储可能需要回到的上一个场景位置 {OldScene, OldScenePooldId, OldCopyId, OldX, OldY} reconnect=0, % 活动玩法中重连 0否| 1正常登录重连| 2relogin重连 pid = undefined, % 玩家服务进程 exp = 0, % 角色当前经验 exp_lim = 0, % 当前等级经验上限 exp_list = 0, % 角色等级经验列表 [{type, exp}|...] 列表数量控制在20条 talk_lim= 0, % 是否被禁言(0否,1是) talk_lim_type = 0, % 禁言类型 talk_lim_time = 0, % 禁言截止时间 quickbar = undefined, % 技能快捷栏,#quickbar{} team = undefined, % 队伍记录,登录会初始化为#status_team{} include/team.hrl cell_num = 0, % 背包格子数 storage_num = 0, % 仓库格子数 last_att_main = 0, % 上次主技能出手时间(只计人物出手,用于限制出手频率,判断技能间公共cd)(ms) last_att_time = 0, % 上次主动攻击的时间(技能有选定目标进行释放,含人物其他战斗单位出手)(ms) last_be_att_time = 0, % 上次被攻击的时间(ms) last_be_kill = [], % 上一次击杀我的玩家信息(用于玩家上线0血提示)[{sign, 1|2}, {name, Name}, {lv, Lv}] can_att_list = [], % 可攻击对象 [{对象类型, 对象列表}] eg:[{?BATTLE_SIGN_MON, [怪物配置Id]}, {?BATTLE_SIGN_PLAYER, [玩家ID: 空则表示所有]}] cannot_beatt_list = [], % 不可被攻击对象 [{对象类型, 对象列表}] is_pay = false, % 是否有充值,true为有充值 last_pay_time = 0, % 最后充值时间 reg_time = 0, % 注册时间 sid = undefined, % 异步广播进程 change_scene_sign = 0, % 排队换线标志 leave_scene_sign = 0, % 离开场景标志(某些活动在进入排队前就已经切换成离开场景标识) 这种状态下不能攻击和受到玩家攻击 counter_pid = none, % 玩家终生次数处理进程 combat_power = 0, % 战斗力 hightest_combat_power = 0, % 历史最高战斗力 hightest_combat_power_cd = 0, % 历史最高战斗力cd结束时间戳 role_base_attr, daily_growth = #{}, % 当日0点成长 #{0 => 最高战力, 1 => 时装星数(激活算1星)} picture_lim = 0, % 是否允许提交头像 0:不禁止,1:禁止 npc_info = [], % npc信息([{NpcId, IsShow, SceneId, X, Y}]) player_buff = undefined, % 玩家身上的BUFF buff_attr = undefined, % BUFF属性 goods_buff_exp_ratio = 0, % 物品buff经验加成(实数) logout_expire_buff_exp_info = {0,0}, % 下线期间过期的经验药水信息 {经验药水物品类型Id, 过期时间戳} exp_ratio = 0, % 经验加成数值 exp_dun_drop_ratio = 0, % 放置经验加成数值(万分比) dsgt_status = undefined, % 称号状态 格式:#dsgt_status{} guild = undefined, % 公会 格式:#status_guild{} status_pet = undefined, % 宠物 格式:#status_pet{} status_child = undefined, % 孩子 格式:#status_child{} wardrobe = undefined, % 衣橱 格式:#status_wardrobe{} setting = undefined, % 设置 格式:#status_setting{} off = undefined, % 离线数据(用于查看面板) 格式:#status_off{} dungeon = undefined, % 副本 格式#status_dungeon{} dun_multi = undefined, % 多人副本 格式#role_dun_multi{} follows = [], % 跟随玩家列表 follow_target_xy={0,0}, % 跟随目标xy follow_target_conut=0, % 坐标变更次数 status_pushmail = undefined, % 邮件推送 格式#status_pushmail{} vip_status = undefined, % vip 格式#vip_status{} revive_status = undefined, % 死亡CD 格式 #revive_status{} recharge_status = undefined, % 充值 格式#recharge_status{} recharge_act_status = undefined, % 充值活动 格式#recharge_act_status{} quick_recharge = [], % 快速充值信息 [{ProductId, MoneyGap}...] resource_back = undefined, % 资源找回 flower = undefined, % 鲜花 格式 #flower dress_up = undefined, % 个性装扮 格式 #status_dress_up{} client_ver = 0, % 客户端版本号 transform_data = 0, % 转职数据 #transform_info{} degree = undefined, % 境界学位 #degree{} role_achievement = undefined, % 成就等级 #role_achievement{} guild_skill = undefined % 公会技能学习 #status_guild_skill{} ,dungeon_record = undefined % 副本记录 #{DunId, RecData} ,help_type_setting = undefined % 副本助战设置 ,arena_battle_pid = undefined % 竞技战场进程 %% 行为互斥锁 当前在某个活动中的时候,不能参与别的活动,无锁的时候为free 其余为:Code :: integer() ,action_lock = free %% 注意:行为互斥锁加锁必须在lib_player:setup_action_lock/2进行加锁 %% 解锁必须在lib_player:break_action_lock/2 进行解锁 %% 上线会有修复操作,在野外的互斥状态可能会被修复lib_player:repair_action_lock/1,要注意!!! ,top_pk = undefined % 巅峰竞技 ,guild_war = undefined % 公会争霸 格式 #guild_war_status{} ,currency_map = undefined % 特殊货币#{} ,login_reward = undefined % 登录奖励 ,fly_state = 0 % 小飞鞋状态 ,forbid_pk_etime = 0 % 玩家禁止释放技能状态结束时间戳 ,last_task_id = 0 % 上一次完成的主线任务id ,mate_role_id = 0 % 配对玩家id 目前是海滩约会对象的id 默认为0 ,battle_field = undefined % 战场信息 #{mod_lib => ModLib, pid => Pid} ,role_auction = undefined % 拍卖系统 格式 #status_auction{} ,local_boss = undefined % boss 格式 #status_local_boss{} ,role_3v3 = undefined % 3v3数据 格式 #role_3v3{} ,role_drum = undefined % 钻石大战 格式 #role_drum{} ,act_label = [] % 活动标识 [{K,V}] ,kf_1vn = undefined % 跨服1vn 格式 #status_kf1vn{} ,fishing = [] % 钓鱼 格式 #fishing{} ,live_skill = undefined % 生活技能 格式 #status_live_skill{} %% 定制活动 ,status_custom_act = undefined % 定制活动 #status_custom_act{} ,custom_act_investment = undefined % 运营投资活动 ,overflow_gift = #{} % 超值礼包信息 ,te_status = undefined % 幸运鉴宝#te_status{} ,daily_turntable = undefined % 每日活跃转盘 ,spec_sell_act = #{} % 精品特卖 ,cloud_buy_list = [] % 众仙云购 ,rush_rank = undefined % 开服冲榜 格式 #status_rush_rank{} ,joy_wish = undefined % 欢乐许愿 格式 #joy_wish{} ,draw_record = undefined % 抽奖记录 格式 #draw_record{} ,vip_bag_onsale = undefined % VIP特惠 格式 #vip_bag_onsale{} ,lucky_flop = undefined % 幸运翻牌 格式 #lucky_flop{} ,cumulative_charge = undefined % 累充 ,pellet = undefined % 弹珠活动 ,treasure_house = undefined % 珍宝阁数据 ,investment = undefined % 投资活动 ,mark = 0 % 特殊记号 0无 1自充值账号 ,scene_att_objects = [] % 场景攻击方对象ID列表 [#scene_att_object{}] ,limit_goal = #{} % 限时目标 格式 #{} ,limit_goal_soul = undefined % 限时目标星魂 格式 #limit_goal_soul_status{} ,supplication = undefined % 祈愿 格式 #supplication{} ,module_advance = [] % 功能预告 ,turn_task_id = 0 % 当前转生任务id ,equipment = undefined % 装备 ,role_coupon = undefined % 社交每日票券 ,role_foster = undefined % 进阶系统库 ,role_foster_skin = undefined % 珍宝库 ,guild_task = [] % 社团劳务 ,guild_shop = undefined % 社团商店 ,profile_photo_info = [] % 角色头像数据 #profile_photo_info{} ,mate = undefined % 羁绊/伙伴 ,role_marble = undefined % 弹珠 #role_marble{} ,exp_dun_achieve = [] % 经验副本里程碑数据 ,market_data = 0 % 角色交易市场数据 #market_data{} ,chat_simulation % 模拟聊天数据 ,exp_dun_drop = undefined % 放置经验数据 ,guild_collect = undefined % 社团午间采集 ,role_fashion = undefined % 时装 ,role_liveness = undefined % 活跃度 ,welfare = undefined % 福利大厅 ,role_visus = undefined % 幻光 ,goods_devour = undefined % 吞噬 ,role_dance = 0 ,role_nucleon = undefined ,role_motion % 运动行为 ,last_behavior = 0 % 玩家最后一次行为 ,role_convoy % 护送 ,role_dun_visus = [] % 幻光副本 ,role_lattice = undefined % 器灵寻宝-走格子 #role_lattice{} ,role_lattice_shop = undefined % 器灵寻宝-格子商店 #role_lattice_shop{} ,capsule_egg = undefined % 龙神扭蛋 ,recharge_statistic % 充值统计 ,role_dun_guard = [] % 塔防副本 ,role_dun_pet = undefined % 宠物副本数据 ,race_rank = undefined % 角色竞榜活动数据#role_race_rank{} ,role_god = undefined % 唤神 ,offline_hosting = undefined % 离线托管 ,cross_guild_war = undefined % 跨服帮战 ,role_god_dun = undefined % 唤神副本相关 ,role_galaxy = undefined % 星辰系统 ,role_single_charge = [] % 单笔充值辅助数据 ,beauty_contest = undefined % 靓丽大赛数据 ,role_dun_galaxy_chapter = [] % 星辰副本-章节信息#role_chapter_info{} ,role_camp_war = undefined % #role_camp_war{} ,role_war_soul = undefined % 战魂系统 ,role_uranium = undefined % 魂力系统 ,role_first_top = [] % 排行榜目标奖励领取数据 ,role_rank_praise = [] % 排行榜点赞数据 ,passive_skills = [] % 被动技能列表 ,seven_days_goal = undefined % 七日目标数据 #seven_days_goal{} ,role_legion = undefined % 战团数据 ,role_cross_point= undefined % 跨服沙盘-据点争夺战 ,overlord_privilege = undefined % 霸主特权数据 #overlord_info{} ,role_treasure_map = undefined % 人物藏宝图数据 ,boss_first_blood = [] ,equipment_task = #{} ,task_daily = undefined %跑环类每日领取情况 ,dance = undefined % 舞姿 ,role_guild_run_assist = undefined % 社团跑环协助 ,killed_pos = [] ,tower_dun_star = #{} % 爬塔副本星数奖励状态 ,role_dun_child = undefined % 宝宝副本数据 ,status_workroom = undefined % 时装工坊 ,reb_protect_time = 0 % 赏金boss免战时间 ,reb_protect_ref = [] % 赏金boss免战定时器 ,deb_protect_time = 0 % 星域幻魔免战时间 ,deb_protect_ref = [] % 星域幻魔免战定时器 ,mobilize_combat_power = 0 % 全民动员战力 ,role_act_reserve = #{} % 活动预约 ,diamond_pk = #{} % 钻石擂台个人数据 ,client_event = [] % 前端引导事件##[{key, value}] ,role_exp_sea = undefined % 经验海 ,role_currencywish = undefined % 货币祈愿角色数据 }).