syntax = "proto3"; package serverproto; import "user.proto"; //获取用户角色信息列表(为以后做多角色列表做准备) message SSAccountGetRoleListReq { //project db uint64 channel_id = 1; string open_id = 2; //用户平台id string platform = 3; //用户平台 int32 zone_id = 4; //区号 } //返回角色列表 message SSAccountGetRoleListAck { //project game repeated AccountRole roles = 1; //角色列表 bool is_close_register = 2; //true关闭角色创建,false正常创建角色 } //数据库添加玩家信息 message SSAddRoleBaseReq { //project db RoleBase base = 1; //玩家基础信息 string active_code = 2; //激活碼 string open_id = 3; string sub_platform = 4; //分发媒体 int32 zone = 5; } message SSAddRoleBaseAck { //project game int32 err = 1; //错误码 uint64 create_role_uid = 2; //已经创建的角色uid } //添加用户角色信息 message SSAccountAddRoleNtf { //project db repeated AccountRole roles = 1; //角色列表 } //获取玩家其他基础信息,例如背包,伙伴 message SSGetRoleReq { //project db uint64 role_register_time = 1; //玩家创建角色时间 } message SSGetRoleAck { //project game int32 err = 1; //错误码 Role role = 2; //玩家数据 } //加载玩家数据结束,有多条系统数据 message SSGetRoleFinishNtf { //project game } //RoleBase保存 message SSRoleBaseSaveReq { //project db RoleBase base = 1; //玩家基础信息 } //保存玩家伙伴信息 message SSHeroDataSaveReq { //project db RoleHero hero = 1; //玩家伙伴信息 } //保存玩家装备信息 message SSEquipDataSaveReq { //project db RoleEquip equip = 1; } //保存玩家神器信息 message SSSkillEquipDataSaveReq { //project db RoleSkillEquip skill_equip = 1; repeated uint32 skill_equip_del_list = 2; //神器删除记录 } //背包信息保存 message SSBagDataSaveReq { //project db RoleBag bag = 1; } //芯片信息保存 message SSChipDataSaveReq{ //project db RoleChip chip = 1; } //地图相关信息保存 message SSMapDataSaveReq{ //project db RoleMap role_map = 1; } //卡片数据保存 message SSCardDataSaveReq{ //project db RoleCard card = 1; } //时装数据保存 message SSFashionDataSaveReq { //project db RoleFashion fashion = 1; } //战斗数据保存 message SSBattleDataSaveReq { //project db RoleBattle battle = 1; } //私聊离线消息保存 message SSChatMessageSaveReq { //project db ChatPlayerBriefInfo from_player = 1; //发送消息玩家 ChatMessageInfo offline_msg = 2; //离线消息 uint64 target_id = 3; //消息接收玩家玩家 } message SSTaskDataSaveReq { //project db RoleTask task = 1; } message SSRoleDrawDataSaveReq { //project db RoleDraw role_draw = 1; } //上线时玩家获取离线消息列表 message SSChatOfflinePlayerReq { //project db } message SSChatOfflinePlayerAck { //project game RoleChat role_offline_msg_list = 1; } //设置玩家简介信息 message SSRoleBriefInfoSaveReq { //project db CommonPlayerBriefInfo brief_info = 1;//简介信息 //創建是沒有放入mysql,后续更新信息时再次放入 string open_id = 2; string active_code = 3; string sub_platform = 4; //分发媒体 } message SSGetRoleBriefInfoReq { //project db int32 type = 1; repeated uint64 player_uid_list = 2; } message SSGetRoleBriefInfoAck { //project game int32 type = 1; repeated CommonPlayerBriefInfo brief_info = 2;//简介信息 } //道场数据保存 message SSArenaDataSaveReq { //project db RoleArena role_arena = 1; } //小红点保存 message SSRoleRedSaveReq { //project db RoleRed red = 1; } //商店信息保存 message SSShopDataSaveReq { //project db RoleShop shop = 1; } //爬塔信息保存 message SSTowerDataSaveReq { //project db RoleTower tower = 1; } //公会信息 message SSGuildDataSaveReq { //project db RoleGuild guild = 1; } message SSStatisticsDataSaveReq { //project db RoleStatistic statistics = 1; } //活动数据保存 message ActivityDataSaveDetail { int32 activities_id = 1; ActivitiesDetailData activity_data = 2; repeated TaskData change_task_list = 3; repeated uint32 del_task_list = 4; } message SSActivityDataSaveReq { //project db RoleActivity role_activity = 1; //活动 repeated ActivityDataSaveDetail change_activity_list = 2; //变化的活动数据 repeated int32 del_activity_list = 3; //过期删除的活动 活动id } message SSActivitySmashEggsMsgSaveNtf { //project db repeated SystemMessage act_msg_list = 4; // 活动内的操作消息(砸蛋奖励获取消息) } //宠物数据保存 message SSPetDataSaveReq { //project db repeated uint32 pet_del_list = 1; //删除宠物列表 repeated int32 bond_del_list = 2; //羁绊数据移除变更 RolePet role_pet = 3; //变更数据 repeated uint32 pet_equip_del_list = 4; //宠物印记删除 } //卢恩商会数据保存 message SSRuneDataSaveReq { //project db RoleRune role_rune = 1; //卢恩商店 } //信物数据保存 message SSKeepSakeSaveReq { //project db RoleKeepSake role_keep_sake = 1; //信物数据 } //道场db数据加载通知,不走SSGetRoleAck协议 message SSLoadArenaNtf { //project game RoleArena role_arena = 1; } //匹配对手 message SSArenaMatchReq { //project db int32 score = 1; uint64 last_player_uid = 2; //上一次匹配玩家uid int32 match_left = 3; int32 match_right = 4; int32 top_match_left = 5; } message SSArenaMatchAck { //project game FightRoleInfo fight_info = 1; //对手信息(信息为空说明需要匹配机器人数据) } //获取目标玩家信息 message SSGetOtherTargetInfoReq { //project db uint64 uid = 1; //观察者ID uint64 t_uid = 2; //被观察ID } message SSGetOtherTargetInfoAck { //project social uint64 uid = 1; //观察者ID uint64 t_uid = 2; //被观察ID int32 error = 3; //错误码 ViewRoleInfo info = 4; //目标 } //作弊方式封号 message SSGameBanRoleNtf { //project db uint64 ban_uid = 1; uint64 ban_end_time = 2; //封号/禁言结束时间 int32 ban_type = 3; //1封号,2禁言 } message SSRoleRushDataSaveReq {//project db RoleRush role_rush = 1; } //////////////////////////Rank //英灵殿匹配对象最低等级(加入排行榜) message SSArenaScoreRankNtf { //project rank uint64 uid = 2; //uuid int32 score = 3; //初始积分 int32 old_score = 4; int32 min_top_score = 5; //入top排行榜最低积分(段位的积分) int32 top_rank_num = 6; } //历史战力排行榜 message SSMaxFightPowerRankNtf { //project rank uint64 uid = 2; //uuid uint64 max_fight_power = 3; //历史最大战力 } //地图挑战进度变更(大地图显示使用) message SSMapLevelChangeReq { //project rank uint32 new_map_level_id = 1; //到达的mapid和level uint64 pass_time = 2; //通关时间ms BattleRecordInfo record_info = 3; //战斗时刻玩家信息 } message SSMapLevelChangeAck { //project game int32 error = 1; //错误码是否上榜 uint32 rank = 2; //当前玩家排名 uint32 rank_players = 3; //参与排名的总人数 repeated RankPlayerInfo top_player_list = 4; //排名前3玩家 bool notify = 5; //是否通知客户端 uint64 battle_record_id = 6; //是否通知客户端保存战斗记录 uint64 record_time_stamp = 7; //客户端记录的时间值 } //获取赛季排行榜 arena message SSArenaRankListReq { //project rank int32 rank_type = 1; //1上赛季,0本赛季 int32 start_idx = 2; //1[1-10] 2[11-20] 3[21-30] ... int32 last_season_id = 3; } message SSArenaRankListAck{ //project game int32 error = 1; //错误码 repeated ArenaRankInfo rank_list = 2; int32 self_rank = 3; int32 rank_type = 4; //1上赛季,0本赛季 int32 start_idx = 5; int32 self_rank_score = 6; //自身玩家排名对应积分 } //获取赛季奖励 message SSArenaRankRewardReq { //project rank uint64 uid = 1; int32 score = 2; //积分 int32 season_id = 3; //玩家上次获得奖励的赛季id } message SSArenaRankRewardAck { //project game int32 self_rank = 1; //自身排名,0表示无奖励 int32 reward_season_id = 2; //奖励赛季ID } //更新赛季数据 message SSArenaRankUpdateReq { //project rank int32 last_season_id = 1; //更新赛季数据 repeated uint64 reward_player_list = 2; //获取奖励玩家 } message SSArenaRankUpdateAck { //project game int32 error = 1; //错误码 repeated KeyValueType64 reward_player_list = 2; int32 reward_season_id = 3; } //爬塔功能相关 //跟新爬塔通过时战力//更新爬塔通过时的排行榜 message SSTowerPassFightPowerNtf { //project rank TowerBriefInfo tower_bf_info = 1; uint64 record_time_stamp = 2; bool is_gm = 3; } //请求最小通关战力 message SSTowerMinFightPowerReq { //project rank int32 tower_level = 1; //通关时战力 } //返回最小通关战力 message TowerMinFight{ int32 fight_power = 1; //通关时战力 CommonPlayerBriefInfo infos = 2; //好友简介 uint64 record_time = 3; uint32 battle_time = 4; int32 battle_version = 5; //战斗记录版本 } message SSTowerMinFightPowerAck { //project game repeated TowerMinFight tower_info = 1; //最小通关战力 uint64 battle_record_id = 2; //是否通知客户端保存战斗记录 uint64 record_time_stamp = 3; bool notify = 4; } //请求通关排行榜 message SSPassTowerLevelRankReq { //project rank uint64 uid = 1; } message TowerLevelInfo{ int32 rank = 1; //排名 uint64 uid = 2; // CommonPlayerBriefInfo infos = 2; //好友简介 } //请求通关排行榜 message SSPassTowerLevelRankAck { //project game int32 self_rank = 1; //自己的排行 repeated TowerLevelInfo tower_info = 2; //通关排行榜 } message SSGetFriendTowerInfoReq { //project db uint64 uid = 1; //请求列表玩家 repeated uint64 uid_list = 2; //互粉好友列表 int32 begin = 3; //开始 int32 end = 4; //结束 } message SSGetFriendTowerInfoAck { //project game uint64 uid = 1; //请求列表玩家 repeated CommonPlayerBriefInfo infos = 2; //好友简介信息 bool final = 3; //是否最后一批 int32 begin = 4; //开始 int32 end = 5; //结束 } //上线请求个人冲榜数据 message SSOnlineGetRushInfoReq { //project rank uint64 uid = 1; //Uid } message SSOnlineGetRushInfoAck { //project game repeated RushActivityData rush_data = 1; //冲榜数据 uint64 uid = 2; //Uid } //冲榜分数变化 message SSRushDataChangeReq { //project rank uint64 uid = 1; //Uid int32 rush_type = 2; int32 score = 3; int32 score2 = 4; int32 score3 = 5; } message SSRushDataChangeAck { //project game uint64 uid = 1; //Uid int32 rush_type = 2; int32 rush_round = 3; //冲榜轮次 int32 score = 4; int32 score2 = 5; int32 score3 = 6; } //冲榜保底奖励请求 message SSGetRushBaseRewardReq { //project rank uint64 uid = 1; //Uid int32 rush_type = 2; //冲榜类型 int32 rush_round = 3; //当前冲榜轮次 } message SSGetRushBaseRewardAck { //project game uint64 uid = 1; //Uid int32 rush_type = 2; //冲榜类型 bool reward = 3; //是否可领奖 int32 reward_round = 4; // } //冲榜商店信息请求 message SSGetRushShopInfoReq { //project rank uint64 uid = 1; //Uid int32 rush_type = 2; //冲榜类型 int32 shop_type = 3; //shopID int32 sub_shop_id = 4; //sub shopID } message SSGetRushShopInfoAck { //project game uint64 uid = 1; //Uid int32 rush_type = 2; //冲榜类型 int32 rush_stage = 3; //阶段 int32 rush_round = 4; //轮次 int32 shop_type = 5; //shopID int32 sub_shop_id = 6; //sub shopID } //冲榜商店购买请求 message SSGetRushShopBuyReq { //project rank uint64 uid = 1; //Uid int32 rush_type = 2; //冲榜类型 int32 shop_type = 3; //商店ID int32 goods_id = 4; //商品ID int32 goods_num = 5; //购买数量 } message SSGetRushShopBuyAck { //project game uint64 uid = 1; //Uid int32 rush_type = 2; //冲榜类型 int32 rush_stage = 3; //阶段 int32 rush_round = 4; //轮次 int32 shop_type = 5; //商店ID int32 goods_id = 6; //商品ID int32 goods_num = 7; //购买数量 } //请求个人冲榜信息 message SSGetRushDataReq { //project rank uint64 uid = 1; //玩家Uid int32 rush_type = 2; //冲榜类型:1:爬塔冲榜, 2:英灵殿冲榜 } message SSGetRushDataAck { //project game int32 error = 1; //错误码 uint64 uid = 2; //玩家Uid int32 self_rank = 3; //自己排名 uint64 end_time = 4; //结束时间 int32 rush_type = 5; //冲榜类型:1:爬塔冲榜, 2:英灵殿冲榜 repeated RushRankTop3 top_data = 6; //其他冲榜,排名数据 int32 self_level = 7; //排行数据 repeated RushPetData pet_data = 8; //宠物冲榜数据 int32 cur_rush_round = 9; //当前轮次 } //请求冲榜奖励 message SSGetRushRewardReq { //project rank uint64 uid = 1; //玩家Uid int32 rush_type = 2; //冲榜类型:1:爬塔冲榜, 2:英灵殿冲榜 int32 reward_type = 3; //冲榜类型:1:保底,2:排行 } message SSGetRushRewardAck { //project game int32 error = 1; //错误码 uint64 uid = 2; //玩家Uid int32 rush_type = 3; //1:挑战奖励,2:英灵殿冲榜 int32 reward_type = 4; //冲榜类型:1:保底,2:排行 repeated KeyValueType item_list = 5; //奖励列表 int32 rush_round = 6; //活动轮次 } message RushMailData { uint64 uid = 1; //uid repeated KeyValueType reward_list = 2; //奖励列表 repeated int32 mail_param_list = 3; //邮件显示的参数列表,例如关卡id,名次等 } message SSRushActivityRankRewardNtf { //project game int32 mail_cfg_id = 1; //邮件cfgid int32 mail_type = 2; //邮件类型 repeated RushMailData mail_data = 3; //邮件内容 int32 rush_round = 4; //活动轮次 } message SSGetRushRankRewardReq { //project rank uint64 uid = 1; //Uid repeated KeyValueType rush_data = 2; //冲榜数据 } message RankRewardData { int32 rush_round = 1; //轮次 int32 rank = 2; //排名 repeated KeyValueType reward_list = 3; //奖励列表 repeated int32 mail_param_list = 4; //邮件显示的参数列表,例如关卡id,名次等 } message RankRewardList { int32 rush_type = 2; //1:挑战奖励,2:英灵殿冲榜 repeated RankRewardData rank_reward = 3; //奖励列表 int32 finish_round = 4; //最后一次领奖轮次 } message SSGetRushRankRewardAck { //project game uint64 uid = 1; //Uid repeated RankRewardList reward_list = 2; //奖励列表 } message SSTestRushRankRewardNtf { //project rank uint64 uid = 1; //Uid int32 rush_type = 2; //1:挑战奖励,2:英灵殿冲榜 } message SSRushMapScoreNtf { //project rank uint64 uid = 1; //Uid uint32 score = 2; //分数 } //////////////////////////mail //获取邮件数据通知 message SSLoadMailNtf { //project game int32 error = 1; //错误码 RoleMail mail = 2; } //邮件数据变更 message SSMailSaveNtf { //project db repeated MailContent mail_state_list = 1; //变更状态邮件列表 repeated int32 del_mail_list = 2; //删除邮件列表 repeated MailContent add_mail_list = 3; //新增加邮件 int32 max_mail_id = 4; //最大邮件id int32 cur_global_mail_id = 5; } //////////////////////////competition //赛季结算 message SSCompetitionSaveReq { //project db RoleCompetition competition_data =1; } //////////////////////////social //根据名字获取玩家uid message SSGetUidByRoleNameReq { //project db uint64 self_uid = 1; //玩家自己Uid string search_name = 2; int32 zone = 3; } message SSGetUidByRoleNameAck { //project game repeated CommonPlayerBriefInfo brief_info_list = 1; // } //DB添加粉丝(添加粉丝成功后才能进行添加关注) message SSDBFriendAddFansReq { //project db uint64 from_uid = 1; uint64 add_uid = 2; } message SSDBFriendAddFansAck { //project game int32 error = 1; uint64 from_uid = 2; CommonPlayerBriefInfo add_uid = 3; } //DB删除粉丝列表数据 message SSDBFriendDelFansNtf { //project db uint64 from_uid = 1; uint64 del_uid = 2; } message SSFriendDataSaveReq { //project db repeated KeyValueType64 sub_list = 1; //value:1表示添加 2表示删除 repeated KeyValueType64 fans_list = 2; repeated KeyValueType64 black_list = 3; } message SSLoadFriendDataNtf { //project game RoleFriend friend = 1; } //worldboss message WorldBossStateInfo { int32 boss_id = 1; int32 hp = 2; repeated uint64 uid_list = 3; uint64 summon_time = 4; //召唤时间 int32 duration_time = 5; //持续时间s int32 summon_idx = 6; int32 summon_boss_type = 7; //boss召唤类型(0普通boss,1变身boss) } //mysql //保存game操作的日志信息到mysql中 message SSRoleLogData { uint64 uid = 1; int32 type = 2; //日志类型 int32 sub_type = 3; //操作类型 repeated int32 param_list = 4; //oldval:newval:delval:type repeated uint64 param64_list = 5; repeated KeyValueType reward_list = 6; //充值奖励信息 repeated string str_list = 7; } message SSRoleLogNtf { //project db repeated SSRoleLogData log_list = 1; } message RoleRes2MysqlInfo { uint32 money = 1; //钻石 float total_recharge = 2; //累计充值 int32 vip_level = 3; //vip等级 } //保存当前资源信息到mysql message SSRoleResMysqlNtf { } //////////////////////////////////////////公会相关 message SSPlayerStateChangeNtf { //project guild uint64 uid = 1; //uid uint64 guild_id = 2; //guild_id int32 change_type = 3; //变化类型:1上线,2下线 uint64 demon_fight_time = 4; //魔王战斗天数 } message SSCardCollectionChangeNtf{ //project rank uint64 uid = 1; int32 card_id = 2; int32 card_level = 3; } //////////////////////////pet message SSLoadPetNtf { //project game RolePet pet = 1; bool load_end = 2; } //////////////////////////Skill equip message SSLoadSkillEquipNtf { //project game RoleSkillEquip skill_equip = 1; bool load_end = 2; } //获取其他援助玩家的宠物信息(羁绊信息) message SSPetQueryAssistInfoReq { //project db repeated AssistData query_assist_list = 1; bool notify = 2; repeated uint64 uid_list = 3; //互为好友的玩家,在公会中的玩家 uint64 guild_id = 4; //公会ID } message SSPetQueryAssistInfoAck { //project game bool notify = 1; repeated AssistData query_assist_list = 2; } //设置玩家宠物援助信息 message SSPetSetAssistNtf { //project db repeated AssistSaveData assist_list = 1; } //获取激活羁绊所需的宠物列表(援助列表) message SSPetBondAssistListReq { //project db int32 bond_cfg_id = 1; repeated KeyValueType condition1_list = 2; repeated KeyValueType condition2_list = 3; repeated KeyValueType condition3_list = 4; repeated uint64 uid_list = 5; //互为好友的玩家,在公会中的玩家 uint64 guild_id = 6; //公会ID } message SSPetBondAssistListAck { //project game int32 bond_cfg_id = 1; repeated AssistData assist_list = 2; } message SSPetAdvAchievementReq { //project db int32 pet_cfg_id = 1; } message SSPetAdvAchievementAck { //project game int32 pet_cfg_id = 1; uint64 achievement_time = 2; CommonPlayerBriefInfo brief = 3; //玩家昵称 } message SSPetAdvAchievementSetNtf { //project db int32 pet_cfg_id = 1; int32 adv_level = 2; } //宠物冲榜数据变更 1 message SSRushPetInfoChangeNtf { //project rank int32 total_score = 1; //总积分 RushPetInfo info = 2; //宠物数据 uint64 uid = 3; } //宠物冲榜数据变更 1 message SSRushSkillInfoChangeNtf { //project rank int32 total_score = 1; //总积分 uint64 uid = 2; } //////////////////////////expedition message SSExpeditionDBHelpReq { //project db uint64 be_helped_uid = 1; //被救助玩家uid uint64 from_uid = 2; //发起救助玩家uid } message SSExpeditionDBHelpAck { //project game int32 error = 1; uint64 be_helped_uid = 2; //被救助玩家uid uint64 from_uid = 3; //发起救助玩家uid } //////////////////////////拉新活动invitation message SSLoadInvitationDataNtf { //project game RoleInvitation invitation_info = 1; } message SSInvitationSaveNtf { //project db bool base_save = 1; int32 click_num = 2; //拍一拍剩余次数 uint64 self_invitation_number = 3; //自己的邀请码 uint64 master_uid = 4; //导师uid uint64 master_end_time = 5; repeated uint64 click_member_list = 6; //拍一拍玩家列表 repeated uint64 click_replay_master_list = 7; //拍一拍回应操作(自己的回应) repeated InvitationTaskData task_list = 8; //任务列表 repeated InvitationMemberValData add_member_uid_list = 9; //学员列表 repeated uint64 del_member_uid_list = 10; //学员列表 repeated InvitationLogData add_log_list = 11; //贡献日志(保存最近50条),超出后自动删除 int32 member_num = 12; //学员列表 } //生成自己的邀请码 message SSInvitationGenNumberReq { //project db bool gen_number = 1; uint64 master_uid = 2; //检验导师id是否合法(被导师解除关系异常导致) } message SSInvitationGenNumberAck { //project game uint64 invitation_number = 1; //邀请码 uint64 master_uid = 2; //导师uid合法则返回正确值 } //根据邀请码获取玩家信息 message SSInvitationNumberUserInfoReq { //project db uint64 number = 1; } message SSInvitationNumberUserInfoAck { //project game int32 error = 1; CommonPlayerBriefInfo brief = 2; int32 member_num = 3; //成员数量 uint64 number = 4; //邀请码 } //等级,充值等数据变更时通知导师 message SSInvitationMemberNoticeMasterNtf { //project db uint64 master_uid = 1; uint64 self_uid = 2; //学员uid KeyValueType param = 3; //key任务类型 val数值 } //////////////////////////百人道场 message SSDaoChang100SaveNtf { //project db RoleDaoChang100 save_data = 1; repeated DaoChang100Log log_list = 2; } message SSUpdateKeepSakeRankNtf { //project rank uint64 uid = 1; int32 keep_sake_id = 2; } //百人道场转盘大奖日志 message SSDaoChang100WheelLogAddNtf { //project db|social|game repeated WheelLogData log_list = 1; } //////////////////////////跨服个人数据 message SSCrossDataSaveNtf { //project db RoleCross save_data = 1; } //称号数据保存 message SSHeadDataSaveReq { //project db RoleHead head = 1; } //称号数据保存 message SSUpdateHeadDataSaveReq { //project db uint64 uid =1; int32 head_id =2; int32 state =3; } message SSLoadCrossDataNtf { //project game RoleCross load_data = 1; } message SSWishBoxDataSaveReq { //project db RoleWish wishs = 1; } // bt服务版 message SSBTDataSaveNtf { //project db BTBoliData bt_boli_data = 1; // 波利商城 BTBaseData base_data = 2; }