2025-06-16 20:50:06 +08:00

2044 lines
85 KiB
Protocol Buffer
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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引导组IDValue引导步骤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压制值
repeated KeyValueType watch_ad = 32; //观看广告记录(日清)
bool google_comment = 33; //谷歌评论
int32 first_change = 34; //首次改名
}
//神器槽位详细信息
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)
int32 watch_ad_count = 5; //看广告次数
}
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玩家2boss3其他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玩家2boss3其他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; //关卡挑战次数
bool deleted_level_handled = 14; //2024年3月删除了部分关卡同时简化了新手引导要对停留在指定关卡的玩家进行处理
}
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; //子类型,显示不同系统消息
string language_type = 4; //客户端用,语言标记
}
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;
uint64 add_login_day = 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;
//基金活动
ActivityFundData fund_data = 18;
//基金活动
ActivityFaceData face_data = 19;
//宠物大比拼
ActivityPetRankData pet_rank_data = 20;
uint64 award_time = 21; //发奖时间
}
//弹脸活动相关
message ActivityFaceData {
repeated TaskData task_list = 1; //弹脸任务
bool reward = 2; //总的奖励
}
//宠物大比拼
message ActivityPetRankData {
repeated int32 award_ids = 1; //已经领奖的配置id
bool rank_awarded = 2; //排行榜奖励是否领取
int32 max_level = 3; //历史最高领悟等级
int32 rank_level = 4; //排名等级
}
//基金活动
message ActivityFundData {
bool has_buy = 1; //是否已经购买激活
bool is_force_open = 2; //是否是强制激活
repeated TaskData task_list = 3;
}
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; //转盘大奖日志(自己)
//repeated TaskData daily_task_list = 8;
repeated TaskData task_list = 9;
}
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; //活动结束时间
string code = 4; //商品编号
float original_price = 5;
}
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; //刷新时间
int32 total_count = 4; //总战斗次数(任务用)
int32 max_damage = 5; //最高伤害(任务用)
}
//公会战个人信息
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; //宠物印记列表
bool reset_pet_bond = 9;
}
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; //抽取次数
repeated DrawSpecialTimes special_times = 3; //保底掉落次数
}
message DrawSpecialTimes {
int32 drop_id = 1; //掉落id
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; //排名
uint64 uid = 4;
}
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; // 是否暴击
}
// 妙聚SDK玩法
message RoleMujoy {
repeated int32 day_award_ids = 1; //当日已领奖的配置id
uint64 last_award_time = 2; //每日登录领奖时间
BigRichMan rich = 3; //大富翁
FlipBrand flip = 4; //翻牌子
}
message BigRichMan {
int32 cur_slot = 1; //当前位置(初始出生位置是1)
int32 last_dice_num = 2; //上一次投掷骰子的点数(初始是0)
int32 left_dice_times = 3; //每日骰子剩余次数
uint64 last_dice_use_time = 4; //上一次使用骰子的时间ms
uint64 next_dice_refresh_time = 5; //下一次刷新骰子次数时间ms
int32 last_award_slot = 6; //暂存的奖励位置
int32 today_get_reward_times = 7; //今日领奖次数
}
message FlipBrand {
uint64 last_free_refresh_time = 1; //上一次刷新免费次数的时间ms
int32 left_free_times = 2; //剩余免费次数
int32 left_strenth = 3; //剩余体力
uint64 next_strenth_refresh_time = 4; //下一次回复体力时间ms
}
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; // 许愿宝箱
RoleMujoy role_mujoy = 31; //妙聚玩法
RoleLevelupSummon role_levelup_summon = 32; //可升级卡池
}
//强开活动信息
message ForceOpenActivity {
int32 activity_id = 1;
uint64 start_time = 2;
uint64 end_time = 3;
uint64 award_time = 4;
}
//活动信息
message CommonActivityInfo {
int32 activity_id = 1;
uint64 start_time = 2;
uint64 award_time = 3;
uint64 end_time = 4;
int32 state = 5;
}
message CommonRankSnapShot {
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
uint64 fight_power = 7; //战斗力(历史最高战力)
int32 head_frame_id = 8; //头像框ID
int32 title_id = 9; // 称号id
uint64 time = 10; //上榜时间
}
message CommonRankShapShotCli {
CommonRankSnapShot snap = 1;
int32 rank = 2; //排名
uint64 score = 3; //积分
}
message RoleLevelupSummon{
repeated LevelupSummonInfo info = 1;
}
message LevelupSummonInfo{
int32 group = 1;
int32 level = 2;
int32 exp = 3;
}
message FruitSlotInfo {
int32 slot = 1;
int32 num = 2;
}
message FruitPlayerAwardInfo {
uint64 uid = 1;
string name = 2;
int32 award_chip_num = 3;
int32 rank = 4;
}