syntax = "proto3"; package serverproto; message AccountRole { string open_id = 1; //用户平台open_id string platform = 2; //用户平台 uint64 uid = 3; //角色id,用来绑定玩家角色信息 int32 phone_platform = 4; //手机平台 android ios uint64 register_time = 5; //注册时间 int32 ZoneId = 6; //所在区服 } //后续需要做战场时,的重连信息(战场所在的服务器信息) message ReconnectInfo { string pvp_node = 1; //战斗服务器节点(后续做战斗时使用) } message UserConnectInfo{ string logic_node = 1; //用户所在的game服务器节点 int64 time_stamp = 2; //保存连接信息时的时间 } //key value 类型 message KeyValueType { int32 key = 1; int32 value = 2; } message KeyValueTypeList { int32 key = 1; repeated int32 value_list = 2; } message KeyValueType64 { uint64 key = 1; int32 value = 2; int32 value2 = 3; int32 value3 = 4; string str_val = 5; uint64 value4 = 6; bool value5 = 7; } message KeyValueType64Str { uint64 key = 1; string str_val = 2; } message KeyValueFloat32{ int32 key = 1; float value = 2; double value64 = 3; //目前只是血量会用到 } message UKeyValueType { uint32 key = 1; uint32 value = 2; } //6部位信息 message SlotDetailData { int32 level = 1; //等级 int32 equip_id = 2; //装备id(直接使用configId) repeated int32 card_id_list = 3; //卡片(卡牌槽位) } //坑位信息 message SlotData { int32 hero_id = 1; repeated SlotDetailData slot_list = 2; //6个部位 } //宠物6坑位信息 //宠物印记信息 message PetEquipData { uint32 id = 1; int32 equip_cfg_id = 2; int32 level = 3; uint32 equip_pet_id = 4;//印记是否已经装备到宠物 } //宠物6坑位信息(6个部位) message PetSlotDetailData { int32 idx = 1; uint32 equip_id = 2; //装备id(动态生成的ID) repeated int32 stone_id_list = 3; //宝石(卡牌槽位) } //技能信息 message SkillData { int32 id = 1; //技能ID int32 point = 2; //技能等级(当前已经添加的技能点) } message ChangeJob{ repeated TaskData task_list = 1; //当前正在执行的任务 int32 hero_id = 2; //需要转职的英雄ID uint32 job_fush_state = 3; // 刷新状态 } //宠物觉醒(当前伙伴跟随的宠物觉醒信息,觉醒槽位跟着角色走) message PetQiyueSlotInfo { int32 slot_idx = 1; uint32 pet_id = 2; int32 pet_cfg_id = 3; //主要用来客户端显示,不必再查找宠物动态数据 } message PetQiyueInfo { uint32 pet_id = 1; repeated PetQiyueSlotInfo qiyue_slot_list = 2; //槽位 } //宠物契约属性 message PetQiyueAttr { uint32 pet_id = 1; repeated KeyValueFloat32 battle_attr_list = 2; //面板属性数值 } //玩家角色结构中的strength_level和advance_level不使用 message HeroData { int32 id = 1; //动态id int32 config_id = 2; //config id [JobCfg id] int32 fight_power = 3; //战斗力 bool is_battle = 4; //是否出战 int32 base_level = 5; //培养等级(主角是玩家等级) int32 advance_level = 6; //进阶(突破等级上限,角色通过专职来处理) int32 strength_level = 7; //突破 SlotData slot = 8; //6个坑位信息(装备,卡片) RoleSkill skill = 9; //技能信息 repeated KeyValueType attr_list = 10; //属性点添加列表(操作总和,不包括玩家初始属性点,需要客户端处理) int32 attr_point = 11; // 属性点(总属性点) uint32 battle_pet_id = 12; //出战宠物id uint64 pet_fight_power = 13; //出阵宠物战力 repeated KeyValueType quality_list = 14; //素质果实数量 int32 repress_skill_pvp_val = 15; //压制数值pvp技能竞技压制 SkillEquipSlotData skill_equip_slot = 16; //神器槽位信息 PetQiyueInfo pet_qiyue_data = 17; //宠物觉醒功能 //有可能没有(老号) repeated KeyValueType battle_attr_list_old = 50; //面板属性数值 repeated KeyValueFloat32 battle_attr_list = 51; //面板属性数值 } //时装数据 message FashionData{ int32 eye = 1; //创建时的默认眼睛 int32 hair = 2; //头发颜色 int32 hair_avatar = 3; //头发模型 repeated int32 fashion_up_list = 4; //已穿戴时装 } message FashionAttr{ int32 jobType = 1; int32 attrId = 2; int32 value = 3; } message HeadFrameData { int32 head_frame_id = 1; //头像框ID int64 head_frame_time = 2; //头像框时间 } //头像信息 message HeadInfo{ int32 head_version = 1; //头像更新版本 repeated int32 head_list = 2; //已激活头像列表 repeated HeadFrameData head_frame_list = 3; //头像框列表 } //玩家附属属性 message RoleData { int32 base_exp = 1; //基础经验等级 int32 job_exp = 2; //职业经验 int32 job_level = 3; //职业等级 int32 hero_exp = 4; //伙伴经验 HeroData hero_data = 5; //主角英雄数据 uint64 fight_power = 6; //总战斗力 int32 cruise = 7; //巡游值 int32 max_cruise = 8; //巡游值上限 int32 head_id = 9; //使用的头像ID uint64 last_login_time = 10; //最近一次离线时间 int32 skill_box = 11; //当前弹框次数 repeated KeyValueType boss_reward_list = 12; //boss挑战奖励预存储 int32 skill_reset_count = 13; //重置次数 int32 head_frame_id = 14; //头像框ID } //角色基本信息(不包括其他系统部分) message RoleBase { uint64 id = 1; string nick_name = 2; //玩家昵称 string desc = 3; //个性签名 int32 sex = 4; //性别 int32 country = 5; //国家 int32 guide_id = 6; //新手流程 uint64 coin = 7; //玩家金币 uint32 rmb = 8; //钻石 repeated KeyValueType res_list = 9; //玩家其他资源列表(不放背包的资源) RoleData role_data = 10; //玩家附属属性 FashionData fashion_data = 11; //时装数据 HeadInfo head_Info = 13; //解锁头像列表 repeated int32 story_id = 14; //播放的剧情 KeyValueType cguide = 15; //Compulsory guidance强制引导 key引导组ID,Value引导步骤ID KeyValueType map_animation = 16; //新地图动画 uint64 ban_time = 17; //封号结束时间s float total_recharge = 18; //累计充值 float day_recharge = 19; //每日累计充值 int32 vip_level = 20; //vip等级 uint64 last_recharge_time = 21; //最近充值时间 int32 question_reward = 22; //问卷调查奖励 bool create_reward = 23; //創建角色奖励获取 int32 ban_type = 24; //封号原因 uint64 chat_ban_time = 25; //禁言结束时间 int32 chat_ban_type = 26; //禁言原因 int32 total_online_time = 27; //当前累计在线时间(隔天重置)s uint64 online_stamp = 28; //上线时的时间戳 ms int32 online_reward_id = 29; //已经领取过的奖励id(配置表中的唯一id) uint64 daily_reset_time_stamp = 30; //每日重置时的时间戳 int32 repress_skill_pvp_val = 31; //技能竞技pvp压制值 } //神器槽位详细信息 message SkillEquipSlotDetailData { uint32 skill_equip_id = 1; //神器id int32 skill_equip_config_id = 2; //神器配置id int32 skill_equip_star_level = 3; //神器星级 int32 slot_level = 4; //槽位等级 repeated KeyValueType slot_attrs = 5; //暂时只显示神威值 } //神器槽位列表详细数据 message SkillEquipSlotData { int32 hero_id = 1; repeated SkillEquipSlotDetailData slot_list = 2; //目前只有一个神器槽位 } //神器数据 message SkillEquipData { uint32 id = 1; //实例ID int32 config_id = 2; //配置id int32 star_level = 3; //神器星级 } message SkillEquipChangeData{ SkillEquipData skill_equip_data = 1; //神器数据 bool add = 2; //添加or删除 } //玩家神器列表 message RoleSkillEquip { uint32 max_skill_equip_id = 1; repeated SkillEquipData skill_equip_list = 2; } ///////////////////////////////////////////////////////////////////////////// message EquipData { int32 config_id = 1; // int32 num = 2; //当前拥有的数量 } message RoleEquip { repeated EquipData equip_list = 1; } //道具数据 message ItemData { uint64 id = 1; //实例id(用来处理道具堆叠操作) int32 config_id = 2; //道具配置ID uint32 num = 3; //道具数量 uint32 time_stamp = 4; //道具获得时间 } //碎片数据 message ChipData { int32 config_id = 1; //道具配置ID uint32 num = 2; //道具数量 uint32 time_stamp = 3; //道具获得时间 } message RoleBag { repeated ItemData item_list = 1; //道具列表 int32 bag_count = 2; //格子开启信息(暂时不使用) } message RoleHero { repeated HeroData hero_data = 1; //玩家伙伴信息 } message RoleChip { repeated ChipData chip_list = 1; //英雄碎片列表 } //当前职业对应拥有的技能 message JobSkillData { int32 job_stage = 1; //职业当前转职阶段 repeated KeyValueType unlock_skill_list = 2; //解锁的技能ID } //技能槽位信息 message RoleSkillSlot { int32 skill_id = 1; //技能ID int32 unlock = 2; //0级表示未解锁,1表示已解锁 int32 default_skill_id = 3; //默认不显示技能 } message RoleSkill { repeated JobSkillData job_skill_list = 1; //已经解锁的技能 repeated RoleSkillSlot skill_list = 2; //对应位置上的技能(位置加技能ID,没有该位置的数据说明为解锁该槽位) } message CardData { int32 config_id = 1; //卡片配置ID int32 num = 2; } message CardHandBook { int32 card_id = 1; //卡片id int32 card_level = 2; //卡片等级 int32 reward_rec = 3; //领奖记录 按位 } message CardCollect { int32 card_quality = 1; //卡片品质 repeated CardHandBook card_book = 2; //卡片收集列表 } message RoleCard { repeated CardData card_list = 1; //卡片列表 repeated int32 card_slot_list = 2; //部件卡槽解锁信息,按位处理 repeated CardCollect card_collect = 3; //卡片图册 repeated KeyValueType total_card_num_list = 4;// 历史卡片数量 } message RoleFashionData{ int32 fashion_id = 1; int32 fashion_lvl = 2; bool fashion_wear = 3; repeated FashionAttr resetAttrs = 4; repeated FashionAttr attrs = 5; } message RoleFashion { repeated int32 fashion_list = 1; //时装列表 repeated RoleFashionData fashion_data = 2; // 时装新结构 repeated KeyValueType lvs = 3; // 套裝數據 } ////////////////////////AOI message RoleMap { int32 map_type = 1; Position pos = 2; int32 world_boss_count = 3; //世界boss挑战次数 repeated int32 world_boss_challenge_list = 4; //当天挑战过的世界bossid列表(id*10 + summonidx) } message Position { float x = 1; float y = 2; float z = 3; } message Vector3 { float x = 1; float y = 2; float z = 3; } message Player { uint64 uid = 1; Position pos = 2; int32 u_type = 3; //单位类型,1玩家,2boss,3其他npc } //地图显示玩家数据 message PlayerShowInfo { uint64 uid = 1; //玩家id int32 level = 2; int32 vip_level = 3; int32 gender = 4; //gender int32 job_id = 5; //config id [JobCfg id] string nick_name = 6; //玩家昵称 FashionData fashion_data = 7; //时装数据 int32 action_id = 8; //是否是npc 非0表示根据action_id来显示 int32 head_id = 9; // 称号id int32 img_id = 10; //头像ID int32 head_frame_id = 11; //头像框ID int32 fight_power = 12; //战斗力(历史最高战力) int32 from_zone = 20; //逻辑区服 int32 real_zone = 21; //服务器使用 } //玩家详细信息 message OtherPlayerDetailInfo{ uint64 uid = 1; //玩家id } message UnitPosAndDir { uint64 uid = 1; Vector3 pos = 2; Vector3 dir = 3; bool is_on_ground = 4; int32 u_type = 5; //单位类型,1玩家,2boss,3其他npc int32 param_id = 6; } ////////////////////////Battle //快速战斗 message QuickBattleData{ int32 max_times = 1; //最大次数 (解锁次数 + 后续可扩展次数) int32 day_times = 2; //当日领取次数 uint64 draw_time = 3; //上一次领取时间 } message BattleEvilBossData { int32 pos_idx = 1; int32 boss_id = 2; uint64 expire_time = 3; //有过期时间表示boss死亡 int32 reward_evil_exp = 4; //胜利奖励的技能经验 int32 refresh_time = 5; int32 quality = 6; //品质 1-4 } message BattleEvilData { int32 free_count = 1; bool free_limit = 2; //true表示无限免费次数 int32 challenge_count = 3; //挑战次数用来升级恶魔等级 int32 evil_level = 4; //恶魔等级 repeated BattleEvilBossData boss_list = 5; repeated KeyValueType quality_challenge_count = 6; //对应恶魔品质完成挑战次数 int32 total_count = 7; //总次数 } //远征之门 message BattleExpeditionActor { int32 id = 1; int32 level = 2; int32 hp = 3; int32 sp = 4; } message BattleExpeditionReward { int32 expedition_type = 1; repeated int32 reward_state = 2; //获取奖励状态宝箱index,从1开始 } message ExpeditionRankInfo { int32 rank = 1; CommonPlayerBriefInfo brief_info = 2; uint32 score = 3; //当前积分 } message BattleExpedition { int32 expedition_type = 1; //当前解锁到的区域地图ID repeated int32 battle_hero_list = 2; //上阵玩家英雄动态id int32 total_expedition_num = 3; //历史通关副本区域地图次数 //数据需要隔天清空(关卡数据在挑战关区域地图后可以进行重置) int32 challenge_num = 4; //剩余挑战次数 int32 cur_expedition_type = 5; //当前挑战的区域地图ID,同一时间只存在一份 repeated int32 finish_expedition_list = 6; //已经完成全部关卡挑战的区域地图ID repeated BattleExpeditionReward reward_state_list = 7; //获取奖励状态 int32 cur_battle_level = 8; //当前正在挑战的关卡 repeated BattleExpeditionActor boss_list = 9; //挑战bossID repeated int32 battle_buff_list = 10; //战斗胜利后获得的增强buff列表(选择后的buff) repeated int32 battle_select_buff_list = 11; //上一关未选择的buff列表 repeated BattleExpeditionActor battle_hero_hp_list = 12; //英雄血量保存万分比 int32 battle_idx = 13; //0表示没有挑战 KeyValueType assist_num = 14; //救助其他玩家次数 key:最大次数 val:已经救助次数 KeyValueType be_assist_num = 15; //被其他玩家救助次数 key:最大次数 val:已经其他玩家救助次数 bool assist_state = 16; //是否处于求救中(发起求助后未被救助) true救助中 uint64 assist_guild_end_time = 17; //公会求助结束时间戳 repeated KeyValueType64 be_assist_uid_list = 18; //救助该玩家的其他玩家(保证只能救助一次) uint64 assist_time_stamp = 19; //是否处于求救中(发起求助后未被救助) >0 救助中,发起求助的时间 uint32 cur_expedition_score = 20; //当前地图远征积分(隔天重置) uint32 cur_expedition_score_max = 21; //地图远征积分历史最大值 uint64 expedition_score_reset_time = 22; //系统重置积分时间 uint64 expedition_type_reward = 23; //地图通关宝箱奖励领取状态 } message RushMap { uint32 map_score = 1; //推图积分 uint32 bag_score = 2; //礼包积分 uint32 rush_map_id = 3; //推图ID int32 fight_round = 4; //参与轮次 int32 reward_round = 5; //保底奖励轮次 int32 rank_reward = 6; //上次领取的奖励轮次 } message RoleBattle { uint64 last_income_time = 1; //上一次领取收益时间,0表示未初始化 uint32 map_level = 2; //当前场景ID,默认为1 uint32 map_id = 3; //当前地图ID,默认为1 uint32 max_income_time = 4; //最大收益时间 QuickBattleData quick_battle = 5; //快速战斗 //当前领取到的奖励关ID uint32 reward_map_id = 6; uint32 reward_map_level = 7; uint32 reward_map_count = 8; //累计的挑战boss成功次数,用来后续做小目标星星处理 //小地图数据 //恶魔协会 BattleEvilData evil_info = 9; //远征之门 BattleExpedition expedition_info = 10; //远征之门 uint64 map_level_time = 11; //到达当前关卡时的时间戳(用来做难度衰减) RushMap rush_map = 12; //推图冲榜 repeated KeyValueType map_challenge_num_list = 13; //关卡挑战次数 } message ActorPosition { uint32 id = 1; Position pos = 2; } message RankPlayerInfo { uint64 uid = 1; //玩家ID uint32 map_level = 2; //当前场景ID,默认为1 uint32 map_id = 3; //当前地图ID,默认为1 CommonPlayerBriefInfo brief = 4; //玩家昵称 } //世界boss列表信息 message WorldBossContentInfo { int32 cfg_id = 1; int32 boss_id = 3; int32 boss_summon_idx = 4; //同一id boss第一次刷新 CommonPlayerBriefInfo brief = 5; //玩家昵称 int32 fighter_num = 6; uint64 expire_time = 7; int32 total_hp = 8; //总血量 int32 cur_hp = 9; //当前血量 bool is_fight = 10; //是否参与过挑战 uint64 next_refresh_time = 11; //下次刷新boss时间戳 int32 boss_summon_type = 15; //0普通世界boss 1变身世界boss } //世界boss rand点数据 message PointNameInfo{ string name = 1; int32 point = 2; uint64 uid = 3; } message WorldBossRandPointInfo { repeated int32 reward_list = 1; //1大奖,2中奖,3参与奖 int32 boss_id = 2; //bossuid int32 boss_summon_idx = 3; //该boss当前召唤的次数 int32 boss_summon_type = 4; //boss召唤类型 } ////////////////////////Task //key value 类型 message TaskProgressType { int32 key = 1; int32 value = 2; int32 state = 3; uint32 total = 4; } message TaskData { uint32 task_id = 1; //任务ID repeated TaskProgressType progress = 2; //任务进度 uint32 state = 3; //是否领取任务奖励 uint64 begin_time = 4; //开启该任务时的时间 int32 task_type = 5; //任务类型(日常/周常/主线) } message HeadCond{ int32 head_id = 1; //头像ID repeated TaskData task_list = 2; //头像进度 } message RoleHeadCond { repeated HeadCond conditions = 1; //头像进度 } message HeroCond{ int32 hero_id = 1; //伙伴ID repeated TaskData task_list = 2; //伙伴进度 } message RoleHeroCond { repeated HeroCond conditions = 1; //伙伴进度 } message RoleTask { repeated TaskData task_list = 1; //任务列表 repeated ChangeJob condition = 2; //可转职业条件 RoleHeadCond head_cond = 3; //头像进度 RoleHeroCond hero_cond = 4; //伙伴进度 KeyValueType daily_task_score = 5; //活跃度/活跃度对应的奖励,按位处理(完成任务累加的积分) KeyValueType week_task_score = 6; //任务通用累计计数 uint64 total_add_zeny = 7; //累计获得的zeny数量 int32 accumulative_card_mvp = 8; //累计收集获得不同种类,MVP的卡片{X}张 uint64 latest5_hour_time = 9; uint64 latest_week5_hour_time = 10; repeated KeyValueType type_rec_count = 11; } message SlotFightPower { int32 hero_id = 1; //伙伴ID uint64 hero_fight_power = 2; //伙伴战斗力 uint64 pet_fight_power = 3; //宠物战斗力 } message FightPowerData { uint32 total_fightpower = 1; //主角总战力 repeated SlotFightPower slot_fightpower = 2; //所有英雄的战力 uint32 pet_bond_fightpower = 3; //羁绊战力 repeated SlotFightPower actor_fightpower = 4; //英雄/宠物自身战力 } ////////////////////////Arena message RushArena { int32 rush_round = 1; //冲榜轮次 int32 count = 2; //战斗次数 int32 reward = 3; //是否领奖 int32 rank_reward = 4; //上次领取的奖励轮次 } message ArenaInfo { int32 challenge_count = 1; //剩余挑战次数 int32 reward_count = 2; //剩余积分获得次数 int32 buy_count = 3; //剩余购买次数 int32 score = 4; //积分 int32 win_count = 5; //胜利次数 int32 total_count = 6; //总挑战次数 int32 old_score = 7; //上一赛季积分 int32 win_streak = 8; //连胜 int32 failed_streak = 9; //连败 uint64 last_challenge_player = 10; //最后一次匹配的玩家 repeated int32 self_hero_list = 11; int32 arena_season_id = 12; //玩家参与赛季ID(用户获取奖励) uint64 last_arena_season_time = 13; //参加赛季时间 //历史记录换赛季不清空 int32 record_win_count = 14; int32 record_total_count = 15; RushArena rush_arena = 16; //英灵殿冲榜 int32 arena_season_id_reduce = 17; ////玩家参与赛季ID(降段位使用) } //道场排行信息 message ArenaRankInfo { int32 rank = 1; CommonPlayerBriefInfo brief_info = 2; int32 score = 3; //当前积分 } message RoleArena { ArenaInfo arena = 1; //道场 } ////////////////////////mail message MailContent { int32 id = 1; //动态id int32 config_id = 2; //邮件配置id int32 type = 3; //邮件类型 repeated KeyValueType reward_list = 4; //附件资源 uint64 begin_time = 5; //获得邮件时间戳 uint64 expire_time = 6; //结束时间戳 //0未读取 1已读取 | 00未获取 10已获取 | 000 未删除 100 已删除 int32 state = 7; //邮件状态 第1位标识读取状态,第2位标识附件获取状态 第3位表示删除状态 repeated int32 param_list = 8; //邮件参数列表 string title = 9; string content = 10; } message RoleMail { repeated MailContent mail_list = 1; int32 max_mail_id = 2; int32 curr_global_mail_id = 3; //领取webgm发送的奖励 } ////////////////////////ReadInfo 小红点数据 message RoleRed { bool is_unread_mail = 1; //当前是否拥有为读取邮件 } ////////////////////////Competition 赛季玩法 //赛季结算信息 message CompetitionRewardInfo { int32 reward_idx = 1; //结算次数序号 uint64 reward_end_tme = 2; //结算的结束时间(数据存时不使用,发送数据时使用) //参数说明 //1,2赛季类型,对应档位礼包id repeated int32 param_list = 3; } //历史赛季信息 message CompetitionInfo { int32 competition_id = 1; //CompetitionPeriodCfg中的CompetitionId uint64 cur_end_time = 2; //结束时间 repeated CompetitionRewardInfo reward_info_list = 3; //周期结算信息 int32 com_param = 4; //当前赛季系统对应的参数(二类型赛季表示积分) uint64 com_param_add_time = 5; //添加积分时的时间戳(用来判断下次添加时是否还生效) //显示超过进度使用 int32 self_rank = 6; //当前排名 int32 total_rank = 7; //总人数 //下一档积分差距 int32 next_com_score = 8; int32 last_com_score = 9; //玩家在第一档时,第二档的第一名(也就是第二名) } message DivineInfo { //占星 repeated int32 cur_stars = 1; //当前星星 int32 failed_count = 2; //当前连败次数 } //每日领奖数据 message DaySupplyData { uint64 begin = 1; //领奖开始 uint64 end_index = 2; //领奖结束 bool draw = 3; //是否领奖 } //粉丝投票数据 message FansVoteData { string name = 1; //名字 int32 rank = 2; //排名 int32 score = 3; //分数 } //箱子排名数据 message FansBoxData { uint64 uid = 1; //uid int32 box = 2; //箱子数量 int32 rank = 3; //排名 } //排名数据 message FansRankData { uint64 uid = 1; //uid int32 score = 2; //分数 int32 rank = 3; //排名 } message FansVoteDetail { uint64 uid = 1; //uid 投票人 uint64 vote_time = 2; //time 投票时间 int32 ticket_count = 3; //ticket 票数 } //请求自己的粉丝榜单 message IdolFansInfo { repeated FansVoteDetail fans_list = 1; } message IdolInfo { repeated KeyValueType64 vote_data = 1; //uid 投票目标, value 票数, value2 领奖标记 repeated int32 day_reward = 2; //每日奖励领取 bool join_competition = 3; //参加活动标记 int32 box_score = 4; //购买箱子分数 uint64 first_begin = 5; //第一次领奖开始 uint64 first_end = 6; //第一次领奖结束 uint64 second_begin = 7; //第二次领奖开始 uint64 second_end = 8; //第二次领奖开始 } message PlayerShowData { uint64 uid = 1; RoleBase role_base = 2; HeroData hero_data = 3; //主角数据 } message IdolSeasonData { //前三名数据 repeated PlayerShowData detail_list = 1; //详细信息列表 //前三名的票数 repeated FansRankData vote_list = 2; //前三名数据 repeated int32 day_reward = 3; //每日奖励领取 uint64 first_begin = 4; //第一次领奖开始 uint64 first_end = 5; //第一次领奖结束 uint64 second_begin = 6; //第二次领奖开始 uint64 second_end = 7; //第二次领奖结束 bool has_box_reward = 8; //是否有箱子奖励(有人买了箱子就显示) } message FansVoteRewardData { uint64 uid = 1; repeated KeyValueType64 idol_list = 2; //key idoluid, value score } message RoleCompetition { CompetitionInfo cur_competition = 1; //正在进行的赛季 int32 reward_competition_id = 2; //当前获取到的赛季奖励ID int32 reward_competition_sub_id = 3; //当前赛季内结算周期对应奖励 DivineInfo divine = 4; //占星数据 IdolInfo idol = 5; //偶像季数据 } ////////////////////////social好友 //每次上线时需要重新加载 message RoleFriend { repeated uint64 sub_list = 1; //关注列表 repeated uint64 fans_list = 2; //被关注列表(粉丝列表) repeated uint64 black_list = 3; //黑名单列表 } message RoleSocial { RoleFriend friendInfo = 1; //friend info } ////////////////////////common //战斗玩家数据 message FightRoleInfo { bool is_robot = 1; //是否是机器人 CommonPlayerBriefInfo brief_info = 2; //系统数据 int32 job_level = 3; //职业等级 repeated KeyValueType attr_list = 4; //属性点添加列表 FashionData fashion_data = 5; //时装数据 repeated HeroData hero_data_list = 6; //主角/伙伴数据(对应的上阵玩家数据) int32 max_fight_power = 7; //玩家历史最高战力 repeated PetData battle_pet_list = 8; //上阵宠物数据 int32 change_play_id = 9; //是否是变身状态(<=0未变身) int32 repress_skill_pvp_val = 10; //技能竞技压制 } message ChatMessageInfo { string message = 1;//消息内容 uint64 send_time = 2; //秒为单位,发送聊天时间 int32 sub_type = 3; //子类型,显示不同系统消息 } message ChatPlayerBriefInfo { uint64 uid = 1; //玩家唯一ID string nick_name = 2; //玩家nickname int32 img_id = 3; //头像ID int32 config_id = 4; //职业配置表id int32 level = 5; //等级 int32 head_frame_id = 6; //头像框ID int32 gender = 7; //性别 int32 vip_level = 8; //VIP等级 int32 head_id = 9; //称号di } message CommonPlayerBriefInfo { uint64 uid = 1; //玩家唯一ID string nick_name = 2; //玩家nickname int32 img_id = 3; //头像ID int32 gender = 4; //性別 int32 level = 5; //等级 int32 config_id = 6; //职业ID int32 fight_power = 7; //战斗力(历史最高战力) bool online_state = 8; //玩家在线状态 uint64 online_time = 9; //玩家最后在线时间(上线时也会更新该事件) int32 tower_level = 10; //爬塔层数 uint64 tower_time = 11; //当前塔通关时间 int32 map_level_id = 12; //当前地图关卡 uint64 battle_record_id = 13; int32 head_frame_id = 14; //头像框ID int32 vip_level = 15; //vipLevel int32 select_zone = 16; //登录所在的区服 int32 head_id = 17; // 称号id //后续字段不做保存操作 float total_recharge = 30; //累计充值 uint64 last_recharge_time = 31; //最近充值时间 uint64 rmb = 32; uint64 zeny = 33; uint32 max_fight_power = 34; string daochang100_tips = 35; //设置口号 } message PlayerStateInfo { uint64 uid = 1; //玩家唯一ID bool online = 2; //true在线,false离线 } message SystemMessage { int32 type = 1; //公告类型 1通关 2获得伙伴 3宝箱 4稀有道具 string nick_name = 2; //玩家nickname repeated int32 param_id = 3; //通用参数ID uint64 send_time = 4; //秒为单位,发送消息时间 } message MessageContentInfo { int32 type = 1; //消息类型1私人聊天,2世界频道聊天 ChatPlayerBriefInfo from_id = 2; ChatMessageInfo message = 3; //消息内容 uint64 target_id = 4; //targetId显示该私聊信息 repeated int32 param_list = 5; } message RoleChat { repeated ChatPlayerBriefInfo offline_msg_player_list = 1; //离线消息玩家ID列表 } message BuyInfo { int32 goods_id = 1; //道具配置ID int32 buy_num = 2; //道具购买数量 uint64 buy_time = 3; //道具购买时 int64 ref_time = 5; //购买刷新时间refresh_time } //黑市类型商店数据 message SpecialShop { int64 refresh_time = 1; //上次刷新时间 repeated int32 goods_list = 2; //刷新的商品列表 int32 refresh_count = 3; //刷新次数 } message ShopBuyInfo { int32 goods_type = 1; //商店ID repeated BuyInfo item_info = 2; //购买ixinxi SpecialShop ref_data = 3; //黑市信息 } message ShopItem { int32 goods_id = 1; //道具配置ID int32 price = 3; //原价 int32 cur_price = 4; //现价 int32 dispercent = 6; //折扣比例 bool hot = 7; //热销 int32 limit_type = 9; //限购类型 int32 count = 10; //限购数量 int32 circle = 11; //循环时间 int64 start_time = 13; //开始时间 int64 end_time = 14; //结束时间 int32 hd_item_id = 15; //活动指定掉落道具 } message ShopData { int32 goods_type = 1; //商店ID repeated ShopItem item_info = 2; //道具信息 repeated BuyInfo buy_info = 3; //购买ixinxi int64 refresh_time = 4; //下一次刷新时间(黑市商店) int32 refresh_count = 5; //刷新次数 int64 day_end = 6; //日结束时间戳 int64 week_end = 7; //周结束时间戳 } message ShopList { repeated ShopData data = 1; } //战斗玩家数据 message ViewRoleInfo { uint64 id = 1; //玩家id CommonPlayerBriefInfo brief = 2; //玩家信息 HeroData role_hero = 3; //玩家伙伴信息 RoleHero hero = 4; //玩家主角信息 RoleFashion fashion = 5; //时装 repeated KeyValueType attr_list = 6; //属性点添加列表 FashionData fashion_data = 7; //时装数据 int32 danScore = 8; //段位 repeated int32 param_list = 9; //赛季相关 string guild_name = 10; //公会名字 repeated PetData pet_list = 11; //宠物列表(上阵的) } message ShopCost{ int32 shop_type = 1; int32 res_type = 2; uint32 res_count = 3; } message RoleShop { repeated ShopBuyInfo info = 1; //商店购买信息 int32 total_buy_num = 2; //商店总购买次数 repeated ShopCost cost_res = 3; //商店特定货币消耗 } message CurRoundSign { int64 last_sign = 1; //最近一次签到时间 } //签到相关 message SignUp{ int32 sign_round = 1; //签到轮次 int32 cur_day = 2; //当前签到天数 CurRoundSign cur_sign_info = 3; //当前轮次签到信息 } //活动数据 message RoleActivity { SignUp sign_info = 1; //签到活动 //精彩活动 uint64 cur_day_end_time = 2; //当前天结束时间戳 repeated ActivitiesDetailData activity_data_list = 3; //充值活动 //首充大礼包时间(达到给定数值记录时间) uint64 first_charge_time = 4; //非0表示可以进行奖励领取 int32 first_charge_reward_state = 5; //超值礼包数据 repeated ActivitiesUnlockRechargeData unlock_charge_list = 6; repeated KeyValueType unlock_charge_has_list = 7; //已经触发的超值礼包的次数 repeated int32 expired_activity_list = 8; //过期或者已经删除的活动(次数) = 9; } ///精彩活动 message ActivitiesDetailData { int32 activities_id = 1; int32 activities_type = 2; uint64 start_time = 3; uint64 end_time = 4; //活动结束时间(服务器使用) int32 cur_day = 5; //根据开始时间计算的当前天数 //连续登录活动奖励获取状态 repeated KeyValueType login_reward_list = 6; //14日目标任务 ActivitiesFortnightDays fortnight_days = 7; //充值达到百元大礼包时的时间戳 uint64 param_time = 8; //非0表示可以进行奖励领取 int32 reward_state = 9; //奖励领取状态 //集字活动 repeated ActivitiesCollectionData collection_list = 10; //好感度数据(3.8活动) ActivitiesLikabilityData likability_data = 11; repeated TaskData king_task = 12; //国王盛宴任务 uint32 fighting_target = 13; //开启时战力 //兑换活动 repeated ExchangeData exchange_list = 14; //活动转盘 ActivityWheelData wheel_data = 15; // //签到活动 ActivitySignIn sign_data = 16; } message ActivitySignIn { uint64 next_sign_time = 1; // 下次签到时间戳 int32 sign_days = 2; // 已签到次数 } //活动转盘 message ActivityWheelData { //转盘 repeated WheelRewardItemInfo wheel_reward_item_list = 1; //奖励物品 bool wheel_open = 2; //是否开启本轮,false表示关闭 int32 wheel_refresh_num = 3; //每轮的第几次刷新 int32 template_idx = 4; //模板id int32 wheel_num = 5; //抽取次数 int32 wheel_idx = 6; //最后一次抽奖停留的位置(全部获取奖励该数值为0) repeated WheelLogData log_list = 7; //转盘大奖日志(自己) } message ExchangeData { int32 id = 1; int32 exchange_num = 2; //目前已经兑换次数 } message ExchangeInfo { int32 condition_id = 1; repeated KeyValueType cost_item = 2; } message ActivitiesData { int32 id = 1; //配置id int32 type = 2; //活动类型 uint64 end_time = 3; //活动结束时间戳 string bg = 4; //背景图片地址 } //14日目标任务(7天重置一次,显示7天数据) message ActivitiesFortnightDays { int32 task_score = 1; //任务获取到的积分 uint32 task_score_reward = 2; //任务积分奖励获取状态(位处理) repeated TaskData task_list = 3; //7天任务列表(不会有重复ID) } //超值礼包数据 message ActivitiesUnlockRechargeData { int32 activities_id = 1; //超值礼包数据ID uint64 start_time = 2; uint64 end_time = 3; //活动结束时间 } message ActivitiesCollectionData { int32 id = 1; int32 reward_num = 2; //目前已经兑换次数 bool no_notice = 3; //不提醒 默认为false } //好感度数据 message ActivitiesLikabilityData { int32 level = 1; //等级 uint32 param = 2; //当前数值 } message FriendTowerInfo { int32 tower_level = 1; //塔层数 repeated CommonPlayerBriefInfo infos = 2; //好友简介 } message RushTower { int32 rush_round = 1; //冲榜次数 int32 count = 2; //战斗次数 int32 reward = 3; //是否领奖 int32 rank_reward = 4; //上次领取的奖励轮次 } message RoleTower{ int32 now_tower_level = 1; //当前可爬塔层数,默认为1 int64 now_tower_time = 2; //当前爬塔时间 RushTower rush_tower = 3; //爬塔冲榜数据 uint64 sys_reward_time = 4; //获取系统补偿奖励(印记奖励)时间戳 } message RefusedApply{ uint64 guild_id = 1; //公会ID int64 apply_time = 2; //连续被拒绝3次时间 } message DayApply{ uint64 guild_id = 1; //公会ID int64 apply_time = 2; //连续被拒绝3次时间 } message TowerBriefInfo { CommonPlayerBriefInfo common_info = 1; int32 battle_time = 2; int32 battle_version = 3; } message RecommendGuild { uint64 guild_id = 1; //公会列表 int32 level = 2; //公会等级 int64 active_time = 3; //活跃时间 uint32 active = 4; //活跃度 } message RecommendSet { repeated RecommendGuild guild = 1; } //=============================== 公会 ==================================== //客户端请求: 公会基础信息:成员简介 message MemberBrief { uint64 uid = 1; //公会成员ID int64 offline_time = 2; //离线时间 int32 title = 3; //职位 } //客户端请求: 公会基础信息:公会简介 message GuildNotifyData { GuildBrief brief = 1; //公会简介 int32 mem_count = 2; //成员数量 bool is_apply = 3; //是否申请过 bool cp_num = 4; //贡献点 } //客户端请求: 成员详细信息 message MemberInfo { uint32 total_active = 1; CommonPlayerBriefInfo brief = 2; } message GuildBossLogDetial { GuildFightLog fight_log = 1; //boss战斗日志 CommonPlayerBriefInfo info = 2; // } message GuildBossData { uint32 boss_id = 1; //bossId uint64 fight_time = 2; //boss战斗截止时间 uint64 fight_cd_time = 3; //结算截止时间 } //公会存库======开始 message GuildLog{ int32 op_title = 1; //操作人官职 string op_name = 2; //操作人名字 int32 be_op_title = 3; //备操作人官职 string be_op_name = 4; //被操作人名字 int32 event_type = 5; //事件类型 uint64 event_time = 6; //事件发生时间 } message GuildLogSet { repeated GuildLog guild_log = 1; } message GuildMember{ uint64 member_id = 1; //UID int32 title = 2; //官职0:玩家, 1:副会长,2:会长 int64 offline_time = 3; //下线时间,0 表示在线 repeated KeyValueType64 active_info = 4; //活跃度Key:时间, value:活跃度 uint64 add_guild_time = 5; //进入(创建)公会时间 } message MemberData { uint64 pre_id = 1; //会长ID repeated uint64 vice_pre_id = 2; //副会长ID repeated GuildMember member_info = 3; //公会成员信息 uint64 kick_time = 4; //上次踢人时间 int32 kick_num = 5; //踢人数量 } message GuildBrief { uint64 guild_id = 1; //公会ID string guild_name = 2; //公会名字 int32 guild_badge = 3; //公会徽章 int32 guild_level = 4; //公会等级 uint32 guild_active = 5; //公会活跃值 } message GuildBase { GuildBrief guild_brief = 1; //公会简介信息 uint32 day_active = 2; //当天活跃度 uint32 guild_exp = 3; //公会经验值 int64 active_time = 4; //最后一次活跃值时间 int32 recruit_type = 5; //招人类型(是否可以直接入会) int32 recruit_level = 6; //入会等级 string notice = 7; //公会公告 string recruit_notice = 8; //招人公告 } message DemonDamage { uint64 uid = 1; uint64 damage = 2; uint64 fight_time = 3; } message GuildDemon { int32 cur_demon_id = 1; uint64 total_damage = 2; repeated DemonDamage damage_list = 3; uint64 refresh_time = 4; } message GuildActiveInfo{ uint32 active_value = 1; //我的活跃值 int32 day_active_value = 2; //当天活跃值 int64 active_time = 3; //前一次活跃时间 } message RoleApplyInfo{ repeated DayApply day_apply = 1; //日常被拒 repeated RefusedApply refused = 2; //被连续拒绝的公会 } message GuildBossTickTime { uint32 bossId = 1; //bossId int32 fight_count = 2; //战斗次数 uint64 refresh_time = 3; //刷新时间 } //公会战个人信息 message GuildBattle { int32 reward_round = 1; //奖励轮次 int32 mvp_reward_round = 2; //MVP奖励轮次 int32 challenge_num = 3; //战斗次数 } message GuildDemonReward{ uint64 total_damage = 1; int32 demon_id = 2; repeated DemonDamage damage_list = 3; } message DemonInfo { int32 free_fight_count = 1; //免费战斗次数 int32 buy_fight_count = 2; //购买了的次数 int32 use_fight_count = 3; //当天使用次数 uint64 refresh_time = 4; //公会demon刷新时间 uint64 last_fight_time = 5; //最近一次战斗时间 } message RoleGuild{ uint64 guild_id = 1; //当前公会ID GuildActiveInfo guild_active = 2; //公会信息 RoleApplyInfo guild_apply = 3; //公会申请信息 int32 quit_num = 4; //总退会次数 int64 next_join = 5; //下一次入会时间 repeated GuildBossTickTime boss_fight = 6; //boss战斗数据 string guild_name = 7; //公会名字 uint64 elite_boss_cd = 8; //精英bossCD GuildBattle guild_battle = 9; //公会战个人数据 DemonInfo demon_info = 10; //公会魔王 } message GuildIdex { uint64 guild_id = 1; //公会ID } message RushRoundData { int32 rush_id = 1; //冲榜序号 uint64 start_time = 2; //冲榜开始 uint64 close_time = 3; //冲榜结束 uint64 reset_time = 4; //冲榜重置 } message RushData { int32 rush_id = 1; //冲榜序号 int32 rush_stage = 2; //冲榜阶段 repeated uint64 reward_list = 3; //已领取奖励列表 repeated RushRoundData round_data = 4; //轮次信息 } message GuildFightLog { uint64 uid = 1; //uid uint64 fight_time = 2; //战斗时间 uint32 damage = 3; //伤害值 } message GuildFight { uint64 uid = 1; //uid uint32 damage = 2; //伤害值 } message GuildBossInfo { GuildFight max_dam = 1; //最大伤害 repeated GuildFightLog fight_log = 2; //战斗日志 uint64 refresh_time = 3; //召唤时间 int32 boss_state = 4; //boss状态 } message GuildBoss { uint64 guild_id = 1; //当前公会ID repeated GuildBossInfo day_boss = 2; //boss } message RoleApplayData { repeated uint64 apply_guild = 1; //个人申请列表 } message GuildApplayData { repeated uint64 apply_guild = 1; //公会的申请列表 } //公会战个人数据 message GuildBattleSelfData { uint64 uid = 1; uint64 guild_id = 2; int32 challenge_num = 3; //剩余挑战次数 repeated KeyValueType buff_list = 4; //战斗个人buff列表[id,level] uint64 reborn_end_time = 5; //复活结束时间 bool auto_challenge = 6; //是否设置自动购买挑战次数 bool auto_reborn = 7; //是否设置自动清除复活CD时间 int32 win_num = 8; //连杀次数 int32 win_strak = 9; //连续击杀次数 bool guild_pre = 10; //是否会长 } //公会战位置数据 message GuildPosIdxData { int32 pos_idx = 1; uint64 guild_id = 2; //0表示无公会玩家占领(默认状态) uint64 uid = 3; //占领该位置玩家(玩家不在该位置但是也也能属于该玩家) CommonPlayerBriefInfo owner_brief = 4; //玩家占位时不为空 uint64 fight_end_time = 5; uint64 fight_start_time = 6; uint64 challenge_uid = 7; //挑战该占位的玩家 uint64 fight_ping_time = 8; //保持战斗状态时间 动态存在 } //占领日志 message GuildBattleLog { int32 type = 1; // uint64 record_time = 2; //记录时间 bool state = 3; //true成功 int32 pos_idx = 4; //占位idx string target_player_name = 5; uint64 target_guild_id = 6; uint64 target_player_uid = 7; string challenge_player_name = 8; uint64 challenge_guild_id = 9; uint64 challenge_player_uid = 10; int32 win_steak = 11; } message GuildBattleBaseData { uint64 battle_start_time = 1; uint64 battle_end_time = 2; repeated KeyValueType64 score_list = 3; //(Key:公会ID, value:积分,value2:道场数量,value3:公会徽章, str_val:公会名次) repeated uint64 score_mvp = 4; //积分MVP领奖 //目前1个人,repeated做预留 repeated uint64 killer_mvp = 5; //击杀MVP领奖 //目前1个人,repeated做预留 } //公会战基础信息 message GuildBattleBase { int32 guild_battle_id = 1; //公会战ID uint64 cur_guild_start = 2; //当前公会战开启时间 int32 guild_battle_state = 3; //当前公会战状态 uint64 next_stage_begin = 4; //下个公会战状态开始时间 uint64 next_battle_begin = 5; //下轮公会战开始时间 uint64 tournament_prepare = 6; //四强赛准备 uint64 tournament_begin = 7; //四强赛开始 uint64 tournament_end = 8; //四强赛结束 uint64 semifinals_prepare = 9; //半决赛准备 uint64 semifinals_begin = 10; //半决赛开始 uint64 semifinals_end = 11; //半决赛结束 uint64 finals_prepare = 12; //决赛准备 uint64 finals_begin = 13; //决赛开始 uint64 finals_end = 14; //决赛结束 uint64 show_end = 15; //展示结束 int32 is_open = 16; //开关 int32 reward_state = 17; //奖励阶段 int32 ban_type = 18; //暂停类型//0:取消封停 1:封停 } message CountTableData { int32 battle_index = 1; //索引 uint64 guild1_id = 2; string guild1_name = 3; int32 guild1_badge = 4; uint64 guild2_id = 5; string guild2_name = 6; int32 guild2_badge = 7; bool win_guild = 8; //true guild1胜,false guild2负 int32 win_type = 9; //胜利类型 int32 state = 10; //状态(1:未开始,2:进行中,3:已结束) } //公会战对阵表 message GuildCountPartTable { repeated CountTableData data = 1; //对阵表数据 } //MVP界面数据 message GuildBattleDetail { uint64 guild_id = 1; int32 slot_count = 2; //坑位数量 int32 score = 3; //积分 } //MVP message GuildBattleMvp{ uint64 uid = 1; //玩家ID string name = 2; //玩家名字 uint64 guild_id = 3; //所属公会 int32 score = 4; //(类型1:积分,类型2:击杀人数) } message GuildBattleRank { int32 score = 1; //分数 int32 rank = 2; //排名 uint64 guild_id = 3; //公会ID CommonPlayerBriefInfo info = 4; //玩家简介信息 } //公会贡献点cp message GuildBattleCP { GuildBrief brief = 1; //公会简介 int32 mem_count = 2; //成员数量 uint32 cp_num = 3; //贡献点 int32 rank = 4; //贡献点排名 } //公会存库======结束 message GMNoticeInfo { string notice_color = 1; uint32 notice_speed = 2; uint32 notice_count = 3; uint32 notice_interval = 4; } message ReconnectUserData { uint32 map_id = 1; uint32 map_level = 2; } message EquipSlotCards { int32 slot_id = 1; repeated KeyValueType card_slot_info = 2; //[key:卡槽ID,value:卡片ID] } message BattleRecordInfo { uint64 uid = 1; //玩家uid uint64 battle_record_id = 2; //战斗唯一ID string nick_name = 3; //玩家nickname int32 img_id = 4; //头像ID int32 gender = 5; //性別 int32 level = 6; //等级 int32 config_id = 7; //职业ID int32 fight_power = 8; //战斗力当前战斗力 uint64 record_time = 9; //战斗时间错 uint32 battle_time = 10; //通关用时 int32 map_level_id = 12; //当前地图关卡 int32 record_idx = 13; int32 head_frame_id = 14; //头像框ID int32 battle_version = 15; //战斗记录版本号(高版本覆盖低版本) } ////////////////////////宠物 //设置援助信息(玩家自身设置的援助信息存储) message AssistSaveData { uint32 pet_id = 1; int32 pet_cfg_id = 2; uint32 adv_level = 3; } //羁绊数据结构 message AssistData { uint64 owner_uid = 1; //玩家uid string owner_nick_name = 2; //玩家昵称 repeated PetData pet_info_list = 3; } message PetBondPosData{ uint64 owner_uid = 2; //0表示自己对应的宠物,不为0表示其他玩家援助的宠物 uint32 pet_id = 3; uint32 advance_level = 4; //不做存储发送时使用 int32 pet_cfg_id = 5; //宠物配置ID } message PetBondData { int32 bond_cfg_id = 1; //羁绊列表索引ID repeated PetBondPosData bond_list = 2; //设置的羁绊宠物列表 int32 pet_bond_level = 3; //羁绊激活等级 } //宠物技能 message PetSkillData { int32 config_id = 1; int32 level = 2; int32 rate = 3; } message PetData { uint32 id = 1; //唯一ID int32 config_id = 2; //配置文件ID int32 level = 3; //等级 uint32 advance_level = 4; //进阶等级 repeated PetSkillData skill_list = 5; //技能列表(0位置表示默认技能) int32 hero_id = 6; //出阵英雄id,0表示没有出阵 int32 param = 7; //服务器端使用 repeated PetSlotDetailData slot_equip_list = 8; //6个坑位信息(印记(装备),宝石) int32 qiyue_hero_id = 9; //归属的契约英雄(放入的哪个英雄的契约槽位) //有可能没有(老号) repeated KeyValueType battle_attr_list_old = 50; //面板属性数值 uint32 pet_fight_power = 51; //宠物战斗力 repeated KeyValueFloat32 battle_attr_list = 52; //面板属性数值 } message AssistIdxData { uint32 pet_id = 1; uint64 end_cd_time = 2; } message PetManualST { int32 pet_cfg_id = 1; uint32 adv_level = 2; int32 reward_state = 3; } message RushPet { uint32 total_score = 1; //总积分 int32 rush_round = 2; //冲榜轮次 int32 reward_round = 3; //保底奖励轮次 int32 score_reward_flag = 4; //保底奖励标志 int32 rank_reward = 5; //上次领取的奖励轮次 } message RolePet { int32 max_pet_id = 1; repeated KeyValueType pet_manual_list = 2; //宠物图鉴(图鉴奖励状态) 废弃不使用 repeated AssistIdxData assist_list = 3; //援助宠物 repeated PetData pet_list = 4; //宠物列表 repeated PetBondData bond_list = 5; //羁绊(只填充固定字段数据) repeated PetManualST pet_manual_reward_list = 6; //宠物图鉴(图鉴奖励状态) [0]表示当前进阶等级 [1]表示获奖状态 RushPet rush_pet = 7; //宠物冲榜 repeated PetEquipData pet_equip_list = 8; //宠物印记列表 } message PetAdvAchievementData { int32 adv_level = 1; uint64 achievement_time = 2; uint64 uid = 3; } message CardCollection { uint64 uid = 1; //Uid int32 card_level = 2; //卡片等级 int64 log_time = 3; //记录时间 } ////////////////////////拉新(邀请码) message InvitationTaskData { uint32 task_id = 1; int32 progress = 2; //任务进度 int32 rewarded_count = 3; //已经获取任务奖励次数 int32 reward_count = 4; //当前完成任务的次数 int32 complete_max_count = 5; //最大可完成次数 } //成员贡献给导师的日志 message InvitationLogData { string member_nick_name = 1; //成员昵称 uint64 process_time = 2; uint32 res_val = 3; //资源数量 } message InvitationMemberValData { uint64 uid = 1; int32 level = 2; float total_recharge = 3; int32 res_val = 4; //初心值 bool state = 5; //是否已经被导师删除(true表示已经被删除) } message RoleInvitation { int32 click_num = 1; //拍一拍剩余次数 uint64 self_invitation_number = 2; //自己的邀请码 uint64 master_uid = 3; //导师uid uint64 master_end_time = 4; //要写邀请码成功学员的CD时间 repeated uint64 click_member_list = 5; //当前已经拍一拍的成员列表 repeated InvitationTaskData task_list = 6; //任务列表 repeated InvitationMemberValData member_uid_list = 7; repeated InvitationLogData log_list = 8; //贡献日志(保存最近50条) repeated uint64 click_replay_master_list = 9; //拍一拍回应操作 } ////////////////////////抽卡 message DrawData { int32 draw_type = 1; //抽取类型://1:宠物抽卡, 2:卡片抽卡, int32 draw_times = 2; //抽取次数 } message RoleDraw { repeated DrawData draw_system = 1; //抽取功能 //历史抽卡次数 int32 card_draw_total_num = 2; int32 pet_draw_total_num = 3; int32 skill_equip_draw_total_num = 4; } //卢恩商品 message RuneGoods{ int32 goods_id = 1; //商店ID int32 buy_num = 2; //购买数量 int32 history_buy = 3; //历史购买数量 int64 end_time = 4; //结束时间//月卡结束时间 int64 next_reward_time = 5; //下一次领奖时 } //卢恩商店 message RuneShop { int32 shop_id = 1; //商店ID int32 sub_shop_id = 2; //商店子类型 repeated RuneGoods goods_info = 3; //商品信息 int64 next_refresh = 4; //下次刷新时间(日,周,月) } message RuneExplore { int32 curLvl = 1; // 等级 int32 totalExp = 2; // 总经验 int32 missionExp = 3; // 活跃度经验 bool bUnlock = 4; // 解锁 bool fullMaxAward = 5; // 满级领奖 repeated KeyValueType state = 6; // 奖励状态 int32 alreadyRune = 7; // 已经结算奖励的关卡 } message RuneBaseData { int32 reset_version = 1; //礼包商店,金币页签的重置标记 bool month_card_modify = 2; //月卡结束时间修正 } //卢恩商会 message RoleRune { repeated RuneShop shop_list = 1; //商店列表 RuneExplore rune_explore = 2; RuneBaseData rune_base = 3; //卢恩商店基础数据 } message RushRankTop3{ string name = 1; //名字 int32 data = 2; //爬塔:层数,英灵殿:积分, 推图:推图积分 int32 rank = 3; //排名 } message RushActivityData { int32 rush_type = 1; //冲榜类型 bool in_rush = 2; //是否在冲榜活动 uint64 next_rush = 3; //下次冲榜开始时间 int32 stage = 4; //当前冲榜阶段 1:冲榜阶段,2:领奖阶段 uint64 stage_end = 5; //当前阶段结束时间 int32 rush_count = 6; //活动次数 } ////////////////////////百人道场 //type //=1占领空白领地 //=2自身击败机器人守卫占领领地的信息 //=3自身试图占领他人领地的战斗信息 //=4他人试图占领我方领地的战斗信息 //=5自身占领领地达到x小时时显示为 message DaoChang100Log { int32 type = 1; // uint64 record_time = 2; //记录时间 bool state = 3; //true成功 int32 pos_idx = 4; //占位idx string target_player_name = 5; string target_guild_name = 6; uint64 target_player_uid = 7; uint32 reward_time = 8; //占位时间 } //占位奖励处理(玩家对应数据) message DaoChang100PosRewardData { int32 pos_idx = 1; //位置 uint64 reward_start_time = 2; //奖励开始时间 uint64 reward_end_time = 3; //奖励结束时间(主动切换 被动切换时修改该时间) } //占位信息 message DaoChang100PosIdxData { int32 pos_idx = 1; uint64 owner_start_time = 2; //占位开始时间 uint64 owner_end_time = 3; //占位结束时间 uint64 owner_protect_end_time = 4; //占位保护结束时间 CommonPlayerBriefInfo owner_brief = 5; //占位玩家 int32 owner_robot_id = 6; //机器人则该id不为0 uint64 fight_end_time = 7; //占位状态 (战斗结束时间) uint64 guild_id = 8; //公会ID string guild_name = 9; //公会名称 uint64 refresh_time = 10; //服务器使用 } message WheelRewardItemInfo { int32 item_idx = 1; //奖励位置 int32 item_id = 2; int32 item_num = 3; int32 reward_type = 4; //1nomal 2mini 3mvp(大奖) bool has_reward = 5; //是否已经被获取奖励 } message WheelLogData { uint64 log_time = 1; string nick_name = 2; uint64 uid = 3; repeated KeyValueType item_list = 4; } message RoleDaoChang100 { int32 challenge_count = 1; //剩余挑战次数 int32 challenge_buy_count = 2; //购买剩余挑战次数 int32 buy_count = 3; //当前购买累计次数 uint64 base_reward_time = 4; //基础收益开始时间(功能解锁后该字段开始生效),客户端宝箱个数显示使用该时间4; //基础收益开始时间(功能解锁后该字段开始生效),客户端宝箱个数显示使用该时间 bool log_state = 5; //领地记录变化 uint64 last_attack_uid = 6; //最后一个攻击自己的其他玩家uid string tips_desc = 7; //口号设置 //道场转盘 repeated WheelRewardItemInfo wheel_reward_item_list = 10; //奖励物品 bool wheel_open = 11; //是否开启本轮,false表示关闭 int32 wheel_refresh_num = 12; //每轮的第几次刷新 int32 template_idx = 13; //模板id int32 wheel_num = 14; //抽取次数 int32 wheel_idx = 15; //最后一次抽奖停留的位置(全部获取奖励该数值为0) } message RoleCheatChat { repeated uint64 target_id = 1; uint64 chat_msg_crc32 = 2;//聊天hashcode } message RoleStatistic { repeated KeyValueType cheat_data = 1;//作弊类型基数 } message KeepSake { int32 keep_sake_id = 1; //信物ID int32 keep_sake_level = 2; //信物LEVEL } message RoleKeepSake { repeated KeepSake keep_sake = 1; //信物数据 repeated KeyValueType material = 2; //材料 } message KeepSakeCollection { uint64 uid = 1; //Uid int64 log_time = 3; //记录时间 } //宠物冲榜信息 message RushInfo { int32 pet_config_id = 1; //宠物configid int32 pet_score = 2; //宠物积分 int32 pet_level = 3; //宠物等级 int32 total_skill_level = 4; //总技能等级 int32 quality_score = 5; //品质分数 int32 level_score = 6; //等级积分 int32 skill_score = 7; //技能分数 } message RushPetInfo { repeated RushInfo info = 1; //宠物数据 } message RushPetData { int32 rank = 1; //排名档次 int32 total_score = 2; //总积分 string name = 3; //名字 RushPetInfo pet_info = 4; //宠物数据 } ////////////////////////跨服数据 message RoleCross { RoleYuanHangTrial yuanhangtrial = 1; //远航试炼 RoleCrossTopTower crosstoptower = 2; //巅峰爬塔 } ////远航试炼 message RoleYuanHangTrial { int32 challenge_num = 1; //当前玩家发起挑战其他玩家的胜利次数(前几次是奖励次数) int32 trial_num = 2; //当前已经发起远航试炼次数 int32 refresh_trial_type = 3; //当前刷新的远航试炼品质 YuanHangTrialData trial_data = 4; //远航试炼数据(当前或者上一次) repeated YuanHangTrialLogData log_list = 5; //挑战被挑战日志记录 int32 trial_score = 6; } message YuanHangTrialData { uint64 uid = 1; int32 zone = 2; int32 trial_type = 3; //远航试炼类型(1,2,3,4,5...) uint64 end_time_stamp = 4; //本次远航试炼结束时间 bool reward_state = 5; //是否已经领取过奖励 uint64 dirty_stamp = 6; //变更时的时间 int32 be_challenge_num = 7; //被挑战次数 repeated uint64 be_challenge_uid_list = 8; //挑战该飞艇成功的玩家uid(每个玩家只能成功打劫一次) int32 from_real_zone = 9; //來自对应的真实区服 int32 duration_time = 10; //持续时间(s) int32 line_num = 11; //所在赛道 } //type //1 你被xxx挑战,失去xxx奖励 //2 你对xx发起了抢夺,获得了xxx奖励 //3 你对xx发起了抢夺,但是自己无法获取到奖励 message YuanHangTrialLogData { int32 type = 1; uint64 record_time = 2; bool state = 3; //true成功 string target_player_name = 4; uint64 target_player_uid = 5; int32 target_player_zone = 6; int32 trial_type = 7; //当前被攻击的船品质类型 repeated KeyValueType item_list = 8; //获取/失去的奖励列表 } message CommonRankInfo { int32 rank = 1; CommonPlayerBriefInfo brief_info = 2; int32 score = 3; //当前积分 } //巅峰爬塔 message RoleCrossTopTower { uint64 valid_end_time = 1; //该数据过期结束时间,用来判断是否可以挑战 repeated TopTowerFightRoleInfo fight_list = 2; // } message TopTowerFightRoleInfo { int32 idx = 1; //[1-10] FightRoleInfo fight_info = 2; bool reward_state = 3; //是否获胜领取了奖励 } //AOI服务器线路状态 message ServerStateInfo { int32 id = 1; //服务器ID(一个id对应1-10个线,暂定) string sid = 2; repeated StateDetailDesc state_list = 3; int32 max_line_num = 4; //每台服务器最大aoi线路数 int32 max_space_entity_num = 5; //每条线路最大的玩家数量 } message StateDetailDesc { int32 line = 2; //线路编号(1线,2线) int32 cur_num = 3; //当前线路在线人数 } //////////////////////// message RoleRush { RushSkill rush_skill = 1; //技能冲榜 } message RushSkill { uint32 total_score = 1; //总积分 int32 rush_round = 2; //冲榜轮次 int32 reward_round = 3; //保底奖励轮次 int32 score_reward_flag = 4; //保底奖励标志 int32 rank_reward = 5; //上次领取的奖励轮次 } message HeadData{ int32 head_id = 1; // 称号id int32 state = 2; // 当前称号状态 未达成 未激活 佩戴 卸下 int64 end_time = 3; TaskData task_data = 4; } message RoleHead { repeated HeadData heads = 1; //称号任务数据 } message RoleWish { repeated WishSlot slots = 1; //称号任务数据 } // 许愿槽位信息 message WishSlot { serverproto.KeyValueType item = 1; // 许愿物品 int32 src_item =2; // 原物品Id int64 end_time = 3; bool isOpen = 4; bool isLucky = 5; // 是否暴击 } message Role { uint64 id = 1; //玩家id RoleBase role_base = 2; //玩家基础信息 RoleHero role_hero = 3; //玩家伙伴信息 RoleBag role_bag = 4; //背包 RoleEquip role_equip = 5; //装备 RoleChip role_chip = 6; //英雄碎片 RoleMap role_map = 7; //地图相关信息 RoleCard role_card = 9; //卡片系统 RoleFashion role_fashion = 10; //时装 RoleBattle role_battle = 11; //战斗相关数据 RoleTask role_task = 12; //任务系统 RoleChat role_chat = 13; //聊天处理 RoleRed role_red = 14; //玩家小红点数据 RoleMail role_mail = 15; //邮件 RoleCompetition role_competition = 16; //赛季玩法 RoleShop role_shop = 17; //商店 RoleActivity role_activity = 18; //活动 RoleTower role_tower = 19; //爬塔 RoleGuild role_guild = 20; //公会信息 RoleDraw role_draw = 21; //抽取系统 RoleRune role_rune = 22; //卢恩商店 RoleDaoChang100 role_daochang100 = 23; //百人道场 RoleStatistic role_statistic = 24; //统计数据 RoleKeepSake role_keep_sake = 25; //信物 RoleCross role_cross = 26; //跨服数据(远航试炼) RoleRush role_rush = 27; RoleSkillEquip role_skill_equip = 28; //神器 RoleHead role_head = 29; // 称号数据 RoleWish role_wish = 30; // 许愿宝箱 }