2026-01-10 14:39:46 +08:00

4014 lines
159 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;
import "user.proto";
message ServerInfo{
string id = 1;
int32 port = 2;
}
//project Service:"gate|game" RouteRule:"pass"
message CSPingReq{
string open_id = 3;
}
message SCPingAck{
}
//游戏登陆操作project Service:"gate" RouteRule:"pass"
message CSLoginReq{ //project game|auth //RouteRule game
string platform = 1; //用户平台
int32 phone_platform = 2; //手机平台 android ios
string platform_token = 3; //平台token验证登陆
string open_id = 4; //平台账号ID //sdkUserID
// string password = 5; //密码
// string crypt_pass = 6; //加密aes串
int32 game_version = 7; //游戏版本号
string ip = 8; //客户端登陆时ip地址
int32 select_zone = 9; //合服使用(先根据IP获取是否存在不存在则创建)
string sub_platform = 10; //用户平台下的不同分发媒体
string user_id = 11; //userID
}
message SCLoginAck{ //project gate
int32 error = 1; //错误码 0表示无错误
uint64 client_id = 2;
string unisdk_login_json = 3; //网易登录验证回复sdk信息
}
//断线重连
message CSReconnectReq { //project game //RouteRule game
string open_id = 1; //平台账号ID
string platform_token = 2; //平台token验证登陆
string uid = 3; //玩家唯一ID
string crypt_pass = 4; //加密aes串f
string platform = 5; //用户平台
}
message SCReconnectAck {
int32 error = 1; //错误码OK表示重连成功
ReconnectUserData reconnect_data = 2; //重连成功后返回的信息(暂时没有信息添加)
}
message SCHandShakeNtf{
string crypt_pass = 1; //返回给客户端(login时带回该字符串)
}
//客户端发起创建角色请求
message CSCreateRoleReq { //project game //RouteRule game
string open_id = 1; //平台账号
int32 job_id = 2; //roleCfg配置表ID
int32 sex = 3; //性别
int32 country = 4; //国家
int32 eye = 5; //眼睛
int32 hair = 6; //头发
int32 head = 7; //头饰
int32 hair_avatar = 8; //头发模型
string active_code = 9; //激活码
bool use_user_input = 10;
int32 head_id = 11; // 头像ID
string nickname = 12; // 昵称
}
message SCCreateRoleAck {
int32 error = 1; //错误码
uint64 create_role_time = 2; //创建时间
uint64 uid = 3;
int32 gender = 4;
}
//创建流程中发送昵称
message CSNameReq { //project game //RouteRule game
string name = 1;
}
message SCNameAck {
int32 error = 1; //错误码
string name = 2;
}
//玩家启动时需要的基础信息 (后续根据需求来请求数据,暂时做成都发)
message SCStartupInfoNtf {
uint64 server_time = 1; //服务器当前时间戳
uint64 create_time = 2; //创建角色时间
ReconnectInfo reconnect_info = 3; //重连信息(暂时不使用,后续扩展时用)
RoleBase role_base = 4; //玩家基础信息
RoleBag role_bag = 5; //玩家背包信息
RoleHero role_hero = 6; //伙伴信息
RoleEquip role_equip = 7; //准备信息
RoleChip role_chip = 8; //伙伴碎片
RoleSkill role_skill = 9; //技能
RoleCard role_card = 10; //卡片数据
RoleFashion role_fashion = 11; //时装
RoleBattle role_battle = 12; //战斗相关数据
FightPowerData role_fightpower = 13; //战斗力数据
RoleChat role_chat = 14; //聊天处理
RoleTask role_task = 15; //任务相关
RoleRed role_red = 16; //小红点
RoleCompetition role_competition = 17; //赛季玩法信息(主界面显示赛季信息)
RoleMap role_map = 18; //rolemap
RoleTower role_tower = 19; //爬塔
RoleDraw role_draw = 20; //抽取系统
RoleRune role_rune = 21; //卢恩商会
RoleDaoChang100 role_daochang100 = 22; //百人道场
RoleCross role_cross = 23; //跨服数据
RoleSkillEquip role_skill_equip = 24; //神器
RoleWish role_wish_box = 25; //许愿想数据
bool func_disable = 100; //功能屏蔽
uint64 service_start_time = 101; //服务器开服时间
string server_region = 102; //大区标识
repeated uint32 func_disable_flag = 103; //动态功能屏蔽枚举(按位使用,服务器只负责传递数值)[1]1-32 [2]33-64
}
//客户端没收到多条协议需要做数据判断有数据就添加没数据不处理例如pet_manual
//数据为空客户端不能直接拿空数据覆盖
message SCStartupInfoPetNtf {
RolePet role_pet_info = 1;
}
message SCStartupInfoEquipNtf {
RoleEquip role_equip_info = 1;
}
message SCStartupInfoCardNtf {
RoleCard role_card_info = 1;
}
message SCStartupInfoEndNtf {
}
//获取服务器时间ms
message CSGetServerTimeReq { //project game //RouteRule game
}
message SCGetServerTimeAck {
uint64 server_time = 1; //服务器当前时间戳
}
//获取服务器时间详细信息。包括:时间戳时区、时区名称、时区偏移量
message CSGetServerTimeInfoReq { //project game //RouteRule game
}
message SCGetServerTimeInfoAck {
uint64 server_time = 1; //服务器当前时间戳
string name = 2; //服务器当前时区名称
uint64 offset = 3;//服务器当前时区相对于UTC的偏移量
bool dst = 4;//判断是否是夏令时
}
//退出登录
message SCLogoutNtf {
int32 error = 1; //错误码
}
//服务器踢人
message SCKickOutNtf {
int32 error = 1; //错误码
uint64 ban_end_time = 2; //封号结束时间s
}
//消耗属性点
message CSAddAttrPointReq{ //project game //RouteRule game
repeated KeyValueType attr_list = 1; //属性点添加列表
int32 hero_id = 2; //英雄ID
}
message SCAddAttrPointAck{
int32 error = 1; //错误码
int32 hero_id = 2; //英雄ID
}
//重置属性点
message CSResetAttrPointReq{ //project game //RouteRule game
int32 hero_id = 1; //英雄ID
}
message SCResetAttrPointAck{
int32 error = 1; //错误码
int32 hero_id = 2; //英雄ID
}
//增加素质点
message CSAddQualityPointReq{ //project game //RouteRule game
int32 hero_id = 1; //英雄ID
int32 item_id = 2; //果实Id
}
//增加素质点返回
message SCAddQualityPointAck{
int32 error = 1; //错误码
int32 hero_id = 2; //英雄ID
int32 item_id = 3; //道具Id
}
//战斗力变化通知客户端
message SCFightPowerChagneNtf {
FightPowerData data = 2;
}
//请求激活头像
message CSActiveHeadReq { //project game //RouteRule game
int32 head_id = 1; //头像Id
}
message SCActiveHeadAck {
int32 error = 1;
int32 head_id = 2; //请求激活的头像ID
}
//请求头像信息
message CSHeadInfoReq { //project game //RouteRule game
}
message SCHeadInfoAck {
repeated int32 head_list = 1; //激活的头像列表
RoleHeadCond head_Info = 2; //头像信息
}
//设置头像ID
message CSSetHeadIdReq { //project game //RouteRule game
int32 head_id = 1;
}
message SCSetHeadIdAck {
int32 error = 1; //errorcode
int32 head_id = 2; //请求设置的头像ID
}
//改名
message CSRenameReq { //project game //RouteRule game //confirm
string name = 1;
}
message SCRenameAck {
int32 error = 1; //错误码
string name = 2;
}
message CSChangeHeadFrameReq { //project game //RouteRule game
int32 head_frame_id = 1; //请求设置的头像框ID
}
message SCChangeHeadFrameAck {
int32 error = 1; //errorcode
int32 head_frame_id = 2; //请求设置的头像框ID
}
message CSHeadFrameInfoReq { //project game //RouteRule game
}
message SCHeadFrameInfoAck {
int32 error = 1; //errorcode
repeated HeadFrameData head_frame = 2;
}
message SCHeadFrameChangeNtf {
repeated HeadFrameData head_frame = 1; //到期的头像框
}
message CSUseHeadFrameItemReq { //project game //RouteRule game
uint64 item_id = 1; //背包中动态生成的item_id
uint32 item_num = 2; //使用个数
}
message SCUseHeadFrameItemAck {
int32 error = 1; //错误码
repeated KeyValueType item_list = 2; //头像框转换道具
}
/////////////////////////////////////////////////////////hero
//伙伴培养
message CSHeroLevelUpReq { //project game //RouteRule game
int32 hero_id = 1; //动态生成的id
}
message SCHeroLevelUpAck {
int32 error = 1; //错误码
int32 hero_id = 2;
int32 hero_level = 3;
}
//伙伴进阶
message CSHeroAdvanceReq { //project game //RouteRule game
int32 hero_id = 2; //动态生成的id
}
message SCHeroAdvanceAck {
int32 error = 1; //错误码
int32 hero_id = 2;
int32 advance_level = 3;
}
//伙伴上阵处理
message CSHeroBattleReq { //project game //RouteRule game
int32 hero_id = 1; //当前正在出战的伙伴
bool is_battle = 2; //false下阵true上阵
}
message SCHeroBattleAck {
int32 error = 1; //错误码
}
//角色等级提升通知
message SCBaseLevelUpNtf {
int32 old_level = 1;
int32 new_level = 2;
}
//角色职业等级提升通知
message SCJobLevelUpNtf{
int32 old_level = 1;
int32 new_level = 2;
}
//用户基础数据变更通知
message SCRoleBaseInfoNtf {
uint64 coin = 1; //玩家金币
uint32 rmb = 2; //钻石
RoleData role_data = 3; //玩家附属属性
repeated KeyValueType res_list = 4; //玩家其他资源列表(不放背包的资源)
int32 repress_skill_pvp_val = 5; //技能竞技压制值
}
//伙伴信息变更通知
message SCRoleHeroInfoNtf {
repeated HeroData hero_data = 1; //玩家伙伴信息
}
//英雄碎片
message CSHeroChipDecomposeReq { //project game //RouteRule game
repeated int32 chip_type_list = 1; //卡片类型,一键分解时使用
repeated KeyValueType chip_list = 2; //用来分解的道具ID
}
message SCHeroChipDecomposeAck {
int32 error = 1; //错误码
repeated KeyValueType item_list = 2; //分解获得的资源数据
}
//伙伴突破(前面的突破是策划的进阶概念,这个里是突破)
message CSHeroStrengthReq { //project game //RouteRule game
int32 hero_id = 1; //动态生成的id
}
message SCHeroStrengthAck {
int32 error = 1; //错误码
int32 hero_id = 2;
int32 strength_level = 3;
}
//主角转职
message CSHeroChangeJobReq { //project game //RouteRule game
int32 hero_id = 1; //转职的伙伴ID
int32 job_id = 2; //需要转的职业ID
}
message SCHeroChangeJobAck {
int32 error = 1; //错误码
int32 hero_id = 2; //转职的伙伴ID
}
message SCHeroConditinDataNtf{
repeated ChangeJob condition = 1; //可转职业条件
}
//请求伙伴战力
message CSHeroFighPowerReq { //project game //RouteRule game
int32 hero_id = 1; //伙伴ID
}
message SCHeroFighPowerAck {
int32 error = 1; //errorcode
int32 hero_id = 2; //伙伴ID
}
//洗点
message CSHeroResetSkillPointReq { //project game //RouteRule game
int32 hero_id = 1; //洗点的主角或者伙伴
int32 stage = 2; //洗点的阶段
}
message SCHeroResetSkillPointAck {
int32 error = 1; //洗点结果
}
//激活
message CSHeroActiveReq { //project game //RouteRule game
int32 hero_id = 1; //伙伴ID
}
message SCHeroActiveAck {
int32 error = 1; //激活结果
int32 hero_id = 2; //伙伴ID
}
//职业更换
message CSHeroReplaceJobReq { //project game //RouteRule game
int32 hero_id = 1; //唯一ID
int32 job_id = 2; //替换的职业ID
}
message SCHeroReplaceJobAck {
int32 error = 1; //errorcode
int32 hero_id = 2; //唯一ID
int32 job_id = 3; //替换的职业ID
}
/////////////////////////////////////////////////////////
//神器变更通知
message SCSkillEquipChangeNtf{
repeated SkillEquipChangeData skill_equip_change_list = 1; //神器变更数据
bool ignore = 2; //是否屏蔽显示新增神器
}
//神器佩戴
message CSSkillEquipUpReq{ //project game //RouteRule game
int32 hero_id = 1; //英雄动态id
int32 slot_index = 2; //坑位部件类型 (slot_index值为-1表示一键装备 从0开始)
uint32 skill_equip_id = 3; //神器实例id
}
message SCSkillEquipUpAck{
int32 error = 1; //错误码
}
//神器槽位变更
message SCSkillEquipSlotDataNtf{
SkillEquipSlotData slot = 1; //坑位信息
int32 hero_id = 2; //对应英雄
}
//卸下神器
message CSSkillEquipDownReq{ //project game //RouteRule game
int32 hero_id = 1; //英雄动态id
int32 slot_index = 2; //坑位部件类型 (slot_index值为-1表示一键卸下 从0开始)
}
message SCSkillEquipDownAck{
int32 error = 1; //错误码
}
//神器升星
message CSSkillEquipLevelUpReq{ //project game //RouteRule game
int32 hero_id = 1; //英雄id
uint32 skill_equip_id = 2; //神器id
repeated uint32 select_cost = 3; //消耗的材料
}
message SCSkillEquipLevelUpAck{
int32 error = 1; //错误码
}
//神器槽位升级
message CSSkillEquipSlotLevelUpReq{ //project game //RouteRule game
int32 hero_id = 1; //英雄动态id
int32 slot_index = 2; //槽位索引 (从0开始)
}
message SCSkillEquipSlotLevelUpAck{
int32 error = 1; //错误码
}
//神器分解
message CSSkillEquipDecomposeReq{ //project game //RouteRule game
repeated uint32 skill_equip_id = 1; //神器id
}
message SCSkillEquipDecomposeAck{
int32 error = 1; //错误码
repeated KeyValueType item_list = 2; //分解获得的资源数据
}
//神器重铸
message CSSkillEquipRemadeReq{ //project game //RouteRule game
uint32 skill_equip_id = 1; //神器id
}
message SCSkillEquipRemadeAck{
int32 error = 1; //错误码
uint32 old_id = 2; //重铸前的神器id
uint32 new_id = 3; //重铸后的神器id
}
//神器重铸尺子
message CSSkillEquipPoolReq{ //project game //RouteRule game
}
message SCSkillEquipPoolAck{
int32 error = 1; //错误码
int32 cur_id = 2; //当前重铸ID
repeated int32 pool_id_list = 3; //当前最新重铸池子
repeated int32 next_pool = 4; //下一批重铸池子
uint64 next_begin = 5; //下一批开始时间
}
//神器转移
message CSSkillEquipShiftReq{ //project game //RouteRule game
uint32 src_id = 1; //神器id
uint32 dst_id = 2; //神器id
}
message SCSkillEquipShiftAck{
int32 error = 1; //错误码
}
/////////////////////////////////////////////////////////equip
//装备锻造(已经装备的不参加锻造)
message CSEquipForgeReq { //project game //RouteRule game
int32 config_id = 1; //config_id为0表示一键锻造
int32 once = 2; //合成一次还是多次
int32 equip_type = 3; //一键锻造的部件
int32 sub_equip_type = 4; //武器子类型,表示职业
}
message SCEquipForgeAck{
int32 error = 1; //错误码
int32 type = 2; //操作类型客户端使用
}
//部分装备变化信息
message SCEquipChangeNtf{
repeated EquipData equip_list = 1;
bool ignore = 2; //是否屏蔽显示新增道具显示
}
//坑位装备(一键装备替换所有最高级装备)
message CSEquipUpReq{ //project game //RouteRule game
int32 hero_id = 1; //英雄动态id
int32 slot_index = 2; //坑位部件类型 (slot_index值为0表示一键装备 从1开始到6表示6个位置)
int32 equip_id = 3; //装备configId
}
message SCEquipUpAck{
int32 error = 1; //错误码
}
message SCSlotDataNtf{
SlotData slot = 1; //坑位信息
int32 hero_id = 2; //对应英雄
}
//一键卸下装备
message CSEquipDownReq{ //project game //RouteRule game
int32 hero_id = 1; //英雄动态id
int32 sub_index = 2; //坑位部件类型 (slot_index值为0表示一键装备 从1开始到6表示6个位置)
}
//一键升级(升级位置上能升级的所有装备)
message CSEquipLevelUpAllReq{ //project game //RouteRule game
int32 hero_id = 1; //英雄动态id
}
message SCEquipLevelUpAllAck{
int32 error = 1; //错误码
}
//装备对应槽位升级
message CSEquipSlotLevelUpReq{ //project game //RouteRule game
int32 hero_id = 1; //英雄动态id
int32 sub_slot_index = 2; //6个位置中的索引([1,6])
}
message SCEquipSlotLevelUpAck{
int32 error = 1; //错误码
}
/////////////////////////////////////////////////////////card
//装备对应槽位镶嵌卡片
message CSCardMountReq{ //project game //RouteRule game
int32 hero_id = 1; //4套坑位的索引值([1,4])
int32 sub_slot_index = 2; //6个位置中的索引([1,6])
int32 card_slot_index = 3; //卡槽对应索引[1,4]
int32 card_id = 4; //configId
}
message SCCardMountAck{
int32 error = 1; //错误码
}
//装备对应槽位卸下卡片
message CSCardDownReq{ //project game //RouteRule game
int32 hero_id = 1; //4套坑位的索引值([1,4])
int32 sub_slot_index = 2; //6个位置中的索引([1,6])
int32 card_slot_index = 3; //卡槽索引[1,4] 0表示一键卸下
}
message SCCardDownAck{
int32 error = 1; //错误码
}
//卡片重置
message CSCardComposeReq{ //project game //RouteRule game
repeated int32 card_list = 1; //
}
message SCCardComposeAck{
int32 error = 1; //错误码
int32 new_card_id = 2; //合成的新卡ID
}
//卡片分解
message CSCardDecomposeReq{ //project game //RouteRule game
repeated KeyValueType card_list = 1; //当数据不传入时表示一键分解
int32 card_type = 2; //卡片类型,一键分解时使用
}
message SCCardDecomposeAck{
int32 error = 1; //错误码
repeated KeyValueType item_list = 2; //分解获得的资源数据
}
//卡牌数据变更通知
message SCCardChangeNtf{
repeated CardData card_list = 1;
bool ignore = 2;
}
//卡牌卡槽解锁通知
message SCCardSlotChangeNtf{
repeated KeyValueType slot_list = 1;
}
//Bag背包相关
message SCItemChangeNtf{
repeated ItemData item_list = 1;
bool ignore = 2;
}
//使用道具(例如开宝箱等)
message CSUseItemReq { //project game //RouteRule game
uint64 item_id = 1; //背包中动态生成的item_id
uint32 item_num = 2; //使用个数
repeated int32 item_idx_list = 3; //获得该道具包中的其中一个道具(根据给定的配置表索引)
bool force_item_id = 4; //强制使用当前item_id道具
}
message SCUseItemAck {
int32 error = 1; //错误码
repeated KeyValueType item_list = 2; //分解获得的资源数据
}
//背包道具销毁
message CSDelItemReq { //project game //RouteRule game
repeated uint64 item_id_list = 1; //背包中动态生成的item_id
}
message SCDelItemAck {
int32 error = 1; //错误码
repeated int32 del_cfg_id_list = 2;
}
//英雄碎片合成
message CSChipComposeReq{ //project game //RouteRule game
int32 config_id = 1;
}
message SCChipComposeAck{
int32 error = 1; //错误码
}
message SCChipChangeNtf{
repeated ChipData chip_list = 1; //英雄碎片列表
}
message CSCardUpGradeReq { //project game //RouteRule game
repeated KeyValueType config_ids = 1;
}
message SCCardUpGradeAck {
int32 error = 1;
repeated KeyValueType config_ids = 2;
}
message CSCardEquipAllReq { //project game //RouteRule game
int32 hero_id = 1; //英雄ID
repeated EquipSlotCards eqiup_slot_data = 2; //卡槽数据
}
message SCCardEquipAllAck {
int32 error = 1;
int32 hero_id = 2;
}
message CSCardEquipDownReq { //project game //RouteRule game
int32 hero_id = 1;
}
message SCCardEquipDownAck {
int32 hero_id = 1;
int32 error = 2;
}
message CSCardUpGradeAllReq { //project game //RouteRule game
int32 hero_id = 1;
repeated KeyValueType data = 2; //key:装备槽位valueL:卡片槽位
}
message SCCardUpGradeAllAck {
int32 hero_id = 1;
int32 error = 2;
}
message CSCardCollectInfoReq { //project game //RouteRule game
}
message SCCardCollectInfoAck {
int32 error = 1;
repeated CardCollect card_collect = 2; //变更的卡片图册
}
message CSCardCollectRewardReq { //project game //RouteRule game
int32 card_id = 1;
int32 level = 2;
}
message SCCardCollectRewardAck {
int32 error = 1;
int32 card_id = 2;
int32 level = 3;
repeated KeyValueType reward_list = 4;
}
message SCCardCollectChangeNtf {
repeated CardCollect card_collect = 1; //变更的卡片图册
}
message CSCardCollectionRankReq{ //project game|rank //RouteRule game
int32 card_id = 1;
}
message SCCardCollectionRankAck{ //project game
int32 error = 1;
int32 card_id = 2;
int32 card_level = 3;
CommonPlayerBriefInfo player_info = 4;
uint64 achievement_time = 5;
}
//卡片互换
message CSCardLevelExchangeReq { //project game //RouteRule game
int32 source_card_id = 1;
int32 target_card_id = 2;
}
message SCCardLevelExchangeAck {
int32 error = 1;
int32 source_card_id = 2;
int32 target_card_id = 3;
}
/////////////////////////////////////////////////////////skill
//技能槽位数据变更通知
message SCSkillSlotDataNtf{
int32 hero_id = 1;
repeated RoleSkillSlot slot_info = 2; //技能槽位(客户端不存在当前槽位信息就添加,存在就更新)
}
//职业对应技能信息变更通知
message SCJobSkillDataNtf{
int32 hero_id = 1;
repeated JobSkillData job_skill_list = 2; //
}
//技能槽位(栏位)升级
message CSSkillSlotLevelUpReq{ //project game //RouteRule game
int32 hero_id = 1;
int32 idx = 2; //对应的槽位索引
}
message SCSkillSlotLevelUpAck{
int32 error = 1; //错误码
}
//替换技能
message CSReplaceSkillReq{ //project game //RouteRule game
int32 hero_id = 1;
int32 idx = 2; //替换槽位
int32 skill_id = 3; //替换技能(原先位置有就替换技能,没有就装备技能)
}
message SCReplaceSkillAck{
int32 error = 1; //错误码
}
//激活技能树中的技能
message CSActiveSkillReq{ //project game //RouteRule game
int32 hero_id = 1;
int32 skill_id = 2; //技能ID
}
message SCActiveSkillAck{
int32 error = 1; //错误码
}
//交换栏位中的技能
message CSSwapSkillReq{ //project game //RouteRule game
int32 hero_id = 1;
int32 first = 2; //替换槽位
int32 second = 3; //替换槽位
}
message SCSwapSkillAck{
int32 error = 1; //错误码
}
//设置技能列表
message CSSetSkillListReq{ //project game //RouteRule game
int32 hero_id = 1; //英雄id
repeated int32 skill_list = 2; //技能列表
}
message SCSetSkillListAck{
int32 error = 1; //错误码
int32 hero_id = 2; //英雄id
}
//技能升级请求
message CSSkillLevelUpReq{ //project game //RouteRule game
int32 hero_id = 1; //英雄ID
int32 skill_id = 2; //升级的技能ID
}
message SCSkillLevelUpAck{
int32 error = 1; //错误码
int32 hero_id = 2; //英雄ID
int32 skill_id = 3; //升级的技能ID
}
message CSResetSkillLevelReq{ //project game //RouteRule game
int32 hero_id = 1; //英雄ID
bool is_advanced = 2; //是否高级技能
}
message SCResetSkillLevelAck{
int32 error = 1; //错误码
int32 hero_id = 2; //英雄ID
int32 reset_count = 3; //重置次数
}
message SCSkillResetCountNtf {
int32 reset_count = 1; //重置次数
}
//请求技能压制冲榜活动数据
message CSRushActivityReq { //project game //RouteRule game
int32 rush_type = 1;
}
message SCRushActivityAck {
int32 error = 1; //错误码
int32 fight_count = 2; //战斗次数
int32 self_rank = 3; //自己排名
int32 self_level = 4; //自己
uint64 end_time = 5; //结束时间
bool challeng_reward = 6; //挑战奖励是否领取
bool rank_reward = 7; //排名奖励是否领取
repeated RushRankTop3 top_data = 8; //这里只发送前10名
int32 rush_type = 9; //冲榜类型
}
//请求技能压制冲榜活动奖励
message CSRushActivityRewardReq { //project game //RouteRule game
int32 reward_type = 1; //1:挑战奖励2排名奖励
int32 rush_type = 2; //冲榜类型
}
message SCRushActivityRewardAck {
int32 error = 1; //错误码
int32 reward_type = 2; //1:挑战奖励2层数奖励
repeated KeyValueType item_list = 3; //奖励列表
int32 rush_type = 4; //冲榜类型
}
message CSRushSkillActivityRankReq { //project game|rank //RouteRule game
int32 page = 1;
int32 rush_type = 2; //冲榜类型
}
message SCRushSkillActivityRankAck { //project game
int32 error = 1; //错误码
int32 page = 2;
repeated RushRankTop3 top_data = 3;
}
/////////////////////////////////////////////////////////fashion
//时装数据变更通知
message SCFashionDataNtf{
repeated int32 fashion_up_list = 4; //穿戴的时装(不为空表示发生数据变更)
repeated int32 fashion_list = 5; //时装列表
}
//穿戴时装(替换)
message CSFashionUpReq { //project game //RouteRule game
repeated int32 fashion_cfg_id = 1; //时装ID
}
message SCFashionUpAck {
int32 error = 1; //错误码
}
//卸下时装
message CSFashionDownReq{ //project game //RouteRule game
repeated int32 fashion_cfg_id = 1; //时装ID
}
message SCFashionDownAck {
int32 error = 1; //错误码
}
//时装合成
message CSFashionComposeReq{ //project game //RouteRule game
int32 paper_cfg_id = 1; //图纸ID
}
message SCFashionComposeAck{
int32 error = 1; //错误码
}
//时装图纸分解
message CSFashionPaperDecomposeReq { //project game //RouteRule game
int32 paper_cfg_id = 1; //图纸ID
}
message SCFashionPaperDecomposeAck {
int32 error = 1; //错误码
repeated KeyValueType item_list = 2; //分解获得的资源数据
}
// 时装升级
message CSFashionUpLvlReq { //project game //RouteRule game
int32 fashion_cfg_id = 1; //时装ID
}
// 时装升级 返回
message SCFashionUpLvlAck {
int32 error = 1; //错误码
}
// 时装变更 (時裝升級 時裝洗練)
message SCFashionNtf {
repeated RoleFashionData fashion_data = 1; //时装ID
repeated KeyValueType lvs = 2; //套装数据 key套装idvalue 等级
}
// 时装洗练
message CSFashionResetAttrReq { //project game //RouteRule game
bool enter =1;
int32 fashion_cfg_id = 2; //时装ID
}
// 时装洗练 返回
message SCFashionResetAttrAck {
int32 error = 1; //错误码
}
/////////////////////////////////////////////////////////AOI相关
//获取详细信息(用来显示详细面板使用),例如,隶属公会,个性签名,战斗力等详细信息
message CSGetOtherPlayerDetailInfoReq{ //project game|social //RouteRule game
uint64 uid = 1; //请求查看的Uid
uint64 t_uid = 2; //被查看Uid
}
message SCGetOtherPlayerDetailInfoAck{ //project game
uint64 uid = 1; //ID
int32 error = 2; //错误码
ViewRoleInfo target_info = 3; //目标信息
}
//获取玩家简介信息,显示头像名称相关,不包括详细信息(本服玩家)
message CSGetOtherPlayerBriefInfoReq { //project game //RouteRule game
repeated uint64 player_list = 1;//角色列表
int32 type = 2;
}
message SCGetOtherPlayerBriefInfoAck {
repeated CommonPlayerBriefInfo brief_info = 1;
int32 type = 2;
}
//挑战召唤物
message CSPlayerChallengeSummonReq { //project game|battleboss //RouteRule game
uint64 uid = 1; //挑战玩家uid
uint64 challenge_boss_uid = 2; //挑战的bossUid
int32 boss_summon_idx = 3;
FightRoleInfo fight_info = 4; //召唤boss玩家信息(服务器使用)
}
message SCPlayerChallengeSummonAck { //project game
int32 error = 1; //错误码
WorldBossContentInfo boss_info = 2; //世界boss信息
}
message SCPlayerChallengeSummonNtf {
uint64 self_uid = 1;
repeated FightRoleInfo fight_list = 2; //其他玩家列表
uint64 boss_uid = 3;
int32 self_change_play_id = 4;
int32 summon_boss_type = 5;
}
//血量上报
message CSPlayerChallengeHpReq { //project game|battleboss //RouteRule game
int32 damage_hp = 1; //玩家对boss的伤害
uint64 action_uid = 2; //服务器使用客户端不使用
}
//boss血量变更通知
message SCPlayerChallengeHpNtf {
int32 cur_boss_hp = 1; //当前boss血量
}
//离开boss场景
message CSPlayerLeaveChallengeReq{ //project game|battleboss //RouteRule game
}
//离开boss场景通知
message SCPlayerLeaveChallengeNtf{ //project game
uint64 uid = 1; //离开的挑战玩家uid
}
message SCPlayerChallengeResultNtf {
int32 result = 1; //1表示升级2表示超时战场结束
}
//获取WorldBoss列表
message CSPlayerWorldBossListReq { //project game|battleboss //RouteRule game
}
message SCPlayerWorldBossListAck { //project game
repeated WorldBossContentInfo world_boss_list = 1; //世界boss列表
}
message SCPlayerWorldBossRandNtf { //project game
int32 error = 1; //错误码(有可能会出现背包满的提示错误,这个时候也是需要显示奖励的)
WorldBossRandPointInfo point_info = 2; //世界boss rand点数据
}
//请求增加挑战次数
message CSAddRoleChallengeCountReq { //project game //RouteRule game
bool watch_ad = 1; //看广告增加次数
}
message SCAddRoleChallengeCountAck {
int32 error = 1;
}
message SCRoleMapChangeNtf {
int32 world_boss_count = 1; //世界boss挑战次数
repeated int32 world_boss_challenge_list = 2; //当天挑战过的世界bossid列表(id*10 + summonidx)
int32 watch_ad_count = 3; //看广告增加次数
}
/////////////////////////////////////////////////////////chat相关
message CSChatMessageReq{ //project game|social|guild //RouteRule game
int32 type = 1;//消息类型1私人聊天2世界频道聊天
ChatMessageInfo message = 2;//消息内容
uint64 target_id = 3;//私人聊天,好友聊天时发送的目标玩家
ChatPlayerBriefInfo from_id = 4;//私人聊天,好友聊天时发送的来源玩家
}
message SCChatMessageAck{
int32 error = 1; //错误码
uint64 target_id = 2; //目标玩家(离线玩家ID)
ChatMessageInfo message = 3;//消息内容
int32 type = 4;
}
message SCChatMessageNtf{
repeated MessageContentInfo msg_list = 1;
repeated SystemMessage s_msg_list = 2;
//int32 type = 1;//消息类型1私人聊天2世界频道聊天
//ChatMessageInfo message = 2;//消息内容
//ChatPlayerBriefInfo from_id = 3;//消息来源玩家
//uint64 target_id = 4;//targetId显示该私聊信息
}
//私聊玩家在线状态刷新
message CSChatPlayerStateReq { //project game|social //RouteRule game
repeated uint64 target_id_list = 1; //私聊玩家列表
}
message SCChatPlayerStateAck { //project game
repeated PlayerStateInfo state_list = 1; //在线状态列表
}
//获取某个玩家的离线信息
message CSChatOfflineMsgReq { //project game|db //RouteRule game
uint64 target_id = 1; //目标玩家(离线玩家ID)
uint64 self_id = 2;
}
message SCChatOfflineMsgAck { //project game
int32 error = 1; //错误码
ChatPlayerBriefInfo target_player = 2; //私聊目标
repeated ChatMessageInfo msg_list = 3; //私聊消息列表
}
//玩家上线时获取离线玩家列表
message SCChatOfflinePlayerNtf {
RoleChat offline_player_list = 1;
}
message SCSystemMessageNtf{ //project game
repeated SystemMessage sys_msg = 1;//公告消息
}
/////////////////////////////////////////////////////////battle处理
//收益相关处理(online/offline)
message CSPlayerIncomeReq{ //project game //RouteRule game //confirm
}
message SCPlayerIncomeAck{
int32 error = 1; //错误码
repeated KeyValueType item_list = 2; //分解获得的资源数据
}
//挑战boss奖励
message CSPlayerBossRewardReq{ //project game //RouteRule game //confirm
uint32 challenge_time = 1; //该boss挑战时间
uint32 map_id = 2;
uint32 map_level = 3;
uint64 record_time_stamp = 4;
}
message SCPlayerBossRewardAck{
int32 error = 1; //错误码
repeated KeyValueType item_list = 2; //奖励
uint64 server_time_stamp = 3; //服务器时间戳
}
//通知客户端需要保存战斗过程记录
message SCPlayerBattleRecordDetailSaveNtf {
uint64 battle_record_uid = 1; //战斗唯一ID
uint64 record_time_stamp = 2;
}
//保存战报详细信息
message CSPlayerBattleRecordDetailSaveReq { //project battlerecord //RouteRule battlerecord
uint64 battle_record_uid = 1; //战斗唯一ID 回传服务器下发的唯一ID
string battle_record = 2;
string open_id = 3;
}
message SCPlayerBattleRecordDetailSaveAck {
int32 error = 1; //错误码
}
//获取战报详细信息
message CSPlayerBattleRecordDetailReq { //project battlerecord //RouteRule battlerecord
uint64 battle_record_uid = 1; //战斗唯一ID 回传服务器下发的唯一ID
string open_id = 2;
}
message SCPlayerBattleRecordDetailAck {
int32 error = 1; //错误码
uint64 battle_record_uid = 2; //战斗唯一ID 回传服务器下发的唯一ID
string battle_record = 3;
}
//获取战报信息
message CSPlayerBattleRecordReq { //project game|rank //RouteRule game
int32 record_type = 1;
repeated uint32 param_list = 2;
}
message SCPlayerBattleRecordAck { //project game
int32 error = 1;
repeated BattleRecordInfo record_list = 2;
}
message SCPlayerBattleDataChangeNtf{
uint64 last_income_time = 1; //上一次领取收益时间0表示未初始化
uint32 map_level = 2; //当前场景ID默认为1
uint32 map_id = 3; //当前地图ID默认为1
uint64 max_income_time = 4; //最大收益累计时间
QuickBattleData quick_battle = 5; //快速战斗
uint32 reward_map_count = 6; //未领取奖励次数
uint32 fruit_income_reward_point = 7;
}
//获取小地图排名
message CSGetMapRankReq { //project game //RouteRule game
}
message SCGetMapRankAck {
int32 error = 1; //错误码
uint32 self_rank = 2; //自身排名
uint32 total_rank = 3; //当前参加排名的人数
repeated RankPlayerInfo top_player_list = 4; //排名前3玩家
}
//获取本局战斗状态(胜利/失败)
message CSBattleResultReq {
ActorPosition actor_pos = 1; //单位所在位置
}
message SCBattleResultAck {
int32 error = 1; //错误码,发送的战斗数据有误
bool win_lose = 2; //true胜利false失败
}
message CSQuickBattleIncomeReq { //project game //RouteRule game
bool watch_ad = 1; //观看广告
}
message SCQuickBattleIncomeAck {
int32 error = 1; //错误码
repeated KeyValueType item_list = 2; //快速挂机获得的资源列表
}
//boss战斗开始
message CSBattleBossFightReq{ //project game //RouteRule game
}
message SCBattleBossFightAck{
int32 error = 1;
int32 left_cd_time = 2; //剩余刷新时间s
repeated KeyValueType factor_list = 3; //衰减系数
}
//请求地图冲榜活动数据
message CSMapActivityReq { //project game //RouteRule game
}
message SCMapActivityAck {
int32 error = 1; //错误码
int32 map_score = 2; //推图积分
int32 bag_score = 3; //礼包积分
int32 self_rank = 4; //自己排名
int32 self_level = 5; //自己推图关卡
uint64 end_time = 6; //结束时间
bool challeng_reward = 7; //挑战奖励是否领取
bool rank_reward = 8; //排名奖励是否领取
repeated RushRankTop3 top_data = 9; //前3名
uint32 rush_level = 10; //活动推图关卡
}
/////////////////////////////////////////////////////////恶魔协会
//恶魔刷新(会根据当前的时间做刷新消耗,客户端需要判断是否进行刷新,进行确认)
message CSEvilRefreshReq { //project game //RouteRule game
bool b_force = 1; //点击刷新方式刷新evil
bool watch_ad = 2; //观看广告
}
message SCEvilRefreshAck {
int32 error = 1; //错误码
repeated int32 pos_idx_list = 2;
}
message SCEvilChangeNtf {
BattleEvilData evil_info = 1;
repeated KeyValueType add_item_list = 2; //恶魔提升获得奖励
}
//恶魔挑战(该位置上有boss则挑战如果已经死亡的boss表示花费道具消除CD)
message CSEvilChallengeReq { //project game //RouteRule game
int32 pos_idx = 1; //位置
}
message SCEvilChallengeAck {
int32 error = 1; //错误码
int32 pos_idx = 2; //返回客户端发送位置
int32 add_count = 3;
}
/////////////////////////////////////////////////////////task相关
message CSGetTaskRewardReq { //project game //RouteRule game
uint32 task_id = 1; //领取奖励的任务ID
}
message SCGetTaskRewardAck {
int32 error = 1; //错误码
repeated KeyValueType item_list = 2; //任务奖励
}
message SCTaskChangeNtf {
repeated TaskData task_change_list = 1; //当前改变状态的任务
KeyValueType daily_task_score = 2; //活跃度/活跃度对应的奖励,按位处理(完成任务累加的积分)
KeyValueType week_task_score = 3;
uint64 latest5_hour_time = 4;
uint64 latest_week5_hour_time = 5;
}
message CSGetTaskScoreRewardReq { //project game //RouteRule game
int32 reward_type = 1; //1daily 2week
int32 reward_idx = 2; //奖励索引
}
message SCGetTaskScoreRewardAck {
int32 error = 1; //错误码
repeated KeyValueType item_list = 2; //任务奖励
}
/////////////////////////////////////////////////////////道场
message SCArenaNtf {
int32 challenge_count = 1; //剩余挑战次数
int32 reward_count = 2; //剩余积分获得次数
int32 buy_count = 3; //剩余购买次数
int32 win_count = 4; //胜利次数
int32 total_count = 5; //总挑战次数
int32 score = 6; //积分
repeated int32 self_hero_list = 7;
int32 season_id = 8; //当前赛季
uint64 season_end_time = 9; //当前赛季结束时间
uint64 next_season_start_time = 10; //下个赛季开启时间
int32 minTopScore = 11; //入榜最小积分
}
message SCArenaChangeNtf {
int32 challenge_count = 1; //剩余挑战次数
int32 reward_count = 2; //剩余积分获得次数
int32 buy_count = 3; //剩余购买次数
int32 win_count = 4; //胜利次数
int32 total_count = 5; //总挑战次数
int32 score = 6; //积分
int32 season_id = 7; //当前赛季
int32 rank_idx = 8; //当前排名
int32 win_streak_count = 9; //连胜
int32 fail_streak_count = 10; //连败
int32 minTopScore = 11; //入榜最小积分
}
//获取道场数据
message CSArenaReq { //project game //RouteRule game
}
//挑战(获得对手)
message CSArenaMatchReq{ //project game //RouteRule game
repeated int32 hero_list = 1;
}
message SCArenaMatchAck {
int32 error = 1; //错误码
FightRoleInfo fight_info = 2; //对方玩家信息
}
//挑战结果(失败/成功)
message CSArenaResultReq { //project game //RouteRule game //confirm
int32 fight_result = 1; //0失败1成功
}
message SCArenaResultAck {
int32 error = 1; //错误码
repeated KeyValueType reward_list = 2; //奖励列表
int32 old_score = 3;
int32 cur_score = 4;
}
//购买挑战次数
message CSArenaBuyCountReq{ //project game //RouteRule game
int32 buy_count = 1;
}
message SCArenaBuyCountAck{
int32 error = 1; //错误码
}
//获取赛季排行榜
message CSArenaRankListReq { //project game //RouteRule game
int32 rank_type = 1; //1上赛季0本赛季
int32 start_idx = 2; //1[1-10] 2[11-20] 3[21-30] ...
}
message SCArenaRankListAck {
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 CSArenaActivityReq { //project game //RouteRule game
}
message SCArenaActivityAck {
int32 error = 1; //错误码
int32 fight_count = 2; //战斗次数
int32 self_rank = 3; //自己排名
int32 self_level = 4; //自己层数
uint64 end_time = 5; //结束时间
bool challeng_reward = 6; //挑战奖励是否领取
bool rank_reward = 7; //排名奖励是否领取
repeated RushRankTop3 top_data = 8; //前3名
}
/////////////////////////////////////////////////////////mail
//获取邮件数据
message CSMailListReq { //project game //RouteRule game
}
message SCMailListAck {
int32 total_mail_count = 1; //当前邮件总数量
repeated MailContent mail_list = 2;
}
//邮件读取
message CSMailReadReq { //project game //RouteRule game
repeated int32 mail_id_list = 1;
}
message SCMailReadAck{
int32 error = 1; //错误码
}
//获取邮件附件
message CSMailRewardReq { //project game //RouteRule game
repeated int32 mail_id_list = 1;
}
message SCMailRewardAck {
int32 error = 1; //错误码
repeated KeyValueType reward_list = 2; //附件资源
}
//删除已读邮件
message CSMailDelReadReq { //project game //RouteRule game
}
message SCMailDelReadAck {
int32 error = 1; //错误码
}
//邮件信息变更通知
message SCMailChangeNtf {
repeated KeyValueType mail_state_list = 1; //变更状态邮件列表
repeated int32 del_mail_list = 2; //被删除邮件列表
repeated MailContent add_mail_list = 3; //新增加邮件
int32 total_mail_count = 4; //当前邮件总数量
}
/////////////////////////////////////////////////////////competition赛季玩法
//赛季玩法信息获取(根据赛季不同类型获取对应信息)
message CSCompetitionReq { //project game //RouteRule game
int32 competition_id = 1; //对应赛季ID
}
message SCCompetitionNtf {
CompetitionInfo competition_data = 1; //对应赛季信息
uint64 next_competition_time = 2; //下个赛季开启时间
IdolSeasonData data = 3; //偶像季数据
}
message SCCompetitionAck {
int32 error = 1; //错误码
int32 competition_id = 2; //对应赛季ID
}
//第二赛季上交道具获取积分
message CSCompetitionScoreReq { //project game //RouteRule game
repeated KeyValueType item_list = 1; //key是配置id不是动态生成的id
}
message SCCompetitionScoreAck {
int32 error = 1; //错误码
int32 com_score = 2; //当前玩家积分
int32 next_com_score = 4; //下一档积分差距
int32 self_rank = 5; //当前排名
int32 total_rank = 6; //总人数
int32 section_id = 7; //当前预计获得的宝箱奖励
int32 last_com_score = 8; //低一档最大积分(玩家积分)
}
/////////////////////////////////////////////////////////Shop操作 //紧急需求,迁移版署版本,商店功能后续废弃重做
message CSShopBuyItemReq { //project game //RouteRule game
int32 goods_id = 1;
int32 goods_num = 2;
int32 goods_type = 3;
}
message SCShopBuyItemAck {
int32 error = 1;
int32 goods_id = 2;
int32 goods_type = 3;
int32 cur_num = 4;
uint64 cur_buy_time = 5;
repeated KeyValueType item_list = 6;
}
message CSShopInfoReq { //project game //RouteRule game
int32 goods_type = 1;
}
message SCShopInfoAck {
int32 error = 1;
ShopData shop_data = 2; //商店信息
}
message CSShopRefreshReq { //project game //RouteRule game
int32 goods_type = 1;
}
message SCShopRefreshAck {
int32 error = 1;
ShopData shop_data = 2; //商店信息
}
//红包兑换请求
message CSRedBagExchangeReq { //project game //RouteRule game
}
message SCRedBagExchangeAck {
int32 error = 1;
repeated KeyValueType reward = 2;
}
/////////////////////////////////////////////////////////social好友
message CSFriendReq { //project game //RouteRule game
int32 type = 1; //1我关注 2我的粉丝 3屏蔽列表
}
message SCFriendAck {
int32 type = 1; //操作类型
int32 total_count = 2; //总数量
int32 total_limit = 3; //数量上限
repeated uint64 uid_list = 4; //玩家ID列表
}
//添加关注(添加好友,这边添加好友是单向的)
message CSFriendAddReq { //project game //RouteRule game
uint64 add_uid = 1; //关注玩家uid
}
//成功关注玩家后,会有添加关注玩家的简介信息
message SCFriendAddAck {
int32 error = 1;
CommonPlayerBriefInfo brief_info = 2; //玩家简介信息
}
//其他玩家关注自己时,添加到自己的粉丝列表中
message SCFriendAddNtf {
CommonPlayerBriefInfo brief_info = 1; //玩家简介信息
}
//取消关注
message CSFriendDelReq { //project game //RouteRule game
uint64 del_uid = 1; //取消关注玩家uid
}
message SCFriendDelAck {
int32 error = 1;
uint64 del_uid = 2;
}
//其他玩家取消关注该玩家时,从自己的粉丝列表中移除
message SCFriendDelNtf {
uint64 del_uid = 1;
}
//添加/删除屏蔽名单(添加和删除同一条协议,不在黑名单中加入黑名单,在黑名单中移除黑名单)
message CSFriendBlackReq { //project game //RouteRule game
uint64 black_uid = 1; //屏蔽玩家uid
}
message SCFriendBlackAck {
int32 error = 1;
CommonPlayerBriefInfo brief_info = 2; //玩家简介信息
}
//获取推荐好友列表
message CSFriendRecommendReq { //project game //RouteRule game
}
message SCFriendRecommendAck {
int32 error = 1;
repeated CommonPlayerBriefInfo brief_info_list = 2; //推荐好友列表
}
message SCFriendRecommendNtf {
repeated CommonPlayerBriefInfo brief_info_list = 2; //推荐好友列表
}
//搜索玩家
message CSFriendSearchReq { //project game //RouteRule game
string target_name = 1; //搜索玩家昵称
}
message SCFriendSearchAck {
int32 error = 1;
repeated CommonPlayerBriefInfo brief_info_list = 2;
}
/////////////////////////////////////////////////////////common
//小红点消息通知
message SCRoleRedNtf {
RoleRed red = 1;
}
//设置新手引导
message CSRoleGuideNtf { //project game //RouteRule game
int32 guide_id = 2;//新手引导步骤ID
}
//剧情上线通知
message SCRoleStoryNtf {
repeated int64 Story = 1; //播放过的剧情
KeyValueType map_cart = 2; //地图卡通
repeated int64 StoryNpc = 3; //播放过的剧情Npc好感度
}
//剧情
message CSRoleStoryReq { //project game //RouteRule game
KeyValueType story_id = 1; //播放的剧情
}
message SCRoleStoryAck {
int32 error = 1; //错误码
KeyValueType story_id = 2; //播放的剧情
repeated KeyValueType story_rewards = 3; //剧情奖励物品
}
//剧情NPC好感度
message CSRoleStoryNpcReq { //project game //RouteRule game
KeyValueType story_npc_id = 1; //NPC好感度格式: NpcId+好感度
}
message SCRoleStoryNpcAck {
int32 error = 1; //错误码
KeyValueType story_npc_id = 2; //NPC好感度格式: NpcId+好感度
}
//领取送NPC物品的奖励
message CSRoleGetSendNpcItemRewardReq { //project game //RouteRule game
uint64 item_id = 1;
uint32 item_num = 2;
int32 reward_id = 3;
string reward_param = 4;
}
message SCRoleGetSendNpcItemRewardAck {
int32 error = 1; //错误码
int32 reward_id = 2;
KeyValueType npc_heart = 3; //NPC好感度格式: NpcId+好感度
repeated KeyValueType story_rewards = 4; //剧情奖励物品
}
//大地图动画
message CSNewMapCartoonReq{ //project game //RouteRule game //confirm
KeyValueType map_cart = 1; //地图卡通 key动画ID value:状态
}
message SCNewMapCartoonAck{
int32 error = 1; //错误码
KeyValueType map_cart = 2; //地图卡通 key动画ID value:状态
}
//强制引导
message CSCompulsoryGuidanceReq { //project game //RouteRule game
int32 story_id = 1; //引导步骤ID
int32 status = 2; //引导状态
}
message SCCompulsoryGuidanceAck {
int32 error = 1; //错误码
int32 story_id = 2; //引导步骤ID
int32 status = 3; //引导状态
}
/////////////////////////////////////////////////////////活动
//签到信息请求
message CSSignUpInfoReq { //project game //RouteRule game
}
message SCSignUpInfoAck {
int32 error = 1; //错误码
SignUp sign_info = 2; //签到活动
int32 cur_sign_day = 3; //当前可签到天
int64 next_sign_time = 4; //下次签到时间
}
//请求签到
message CSSignUpReq { //project game //RouteRule game
}
message SCSignUpAck {
int32 error = 1; //错误码
repeated KeyValueType day_list = 2; //日奖励
repeated KeyValueType accu_list = 3; //累计奖励
repeated KeyValueType double_list = 4; //双倍奖励
int64 next_sign_time = 5; //下次签到时间
SignUp sign_info = 6; //签到活动
int32 cur_sign_day = 7; //当前可签到天
}
/////////////////////////////////////////////////////////爬塔功能
message CSClimbingTowerInfoReq { //project game //RouteRule game
}
message SCClimbingTowerInfoAck {
int32 now_tower_level = 1; //当前可通关层数
int64 pass_time = 2; //当前爬塔通过时间戳
repeated FriendTowerInfo infos = 3; //好友/工会通关信息,自己可通关 + 2
}
message CSFriendPassTowerInfoReq { //project game //RouteRule game
int32 begin_index = 1; //开始层数
int32 end_index = 2; //结束层数
}
message SCFriendPassTowerInfoAck {
repeated FriendTowerInfo infos = 1; //好友/工会通关信息,自己可通关 + 2
}
message MinTowerInfo{
int32 tower_level = 1; //塔层数
int32 fight_power = 2; //通过战力
CommonPlayerBriefInfo brief = 3; //玩家昵称
uint64 record_time = 4;
uint32 battle_time = 5;
}
message CSTowerLevelMinFightPowerReq { //project game //RouteRule game
int32 tower_level = 1;
}
message SCTowerLevelMinFightPowerAck {
MinTowerInfo min_tower_info = 1;
}
message SCTowerLevelMinFightPowerNtf{
repeated MinTowerInfo min_tower_info = 1; //我的通关 + 3 层的最小通关战力
}
message CSClimbingTowerBeginReq { //project game //RouteRule game
int32 tower_level = 1; //塔层数
}
message SCClimbingTowerBeginAck {
int32 error = 1; //错误码
int32 tower_level = 2; //塔层数
repeated KeyValueType factor_list = 3; //衰减系数
}
message CSClimbingTowerEndReq { //project game //RouteRule game //confirm
int32 tower_level = 1; //塔层数
int32 loading_time = 2; //战斗loading时间
uint64 record_time_stamp = 3;
}
message SCClimbingTowerEndAck {
int32 error = 1; //错误码
int32 tower_level = 2; //塔层数 成功 则tower_level+1
FriendTowerInfo pass_info = 3; //则tower_level + 3层通过的好友/工会成员等
int64 pass_time = 4; //通过时间
repeated KeyValueType reward_list = 5; //爬塔奖励
repeated KeyValueType ex_reward_list = 6; //爬塔额外奖励
}
message CSClimbingTowerRankReq { //project game //RouteRule game
}
message SCClimbingTowerRankAck {
int32 error = 1; //错误码
repeated KeyValueType64 rank_list = 2; //爬塔列表 Key:uid ,Value:rank
int32 self_rank = 3; //自己的rank
}
//上线爬塔冲榜数据请求
message CSOnlineRushInfoReq { //project game //RouteRule game
}
message SCOnlineRushInfoAck {
repeated RushActivityData rush_data = 1; //冲榜数据
}
//请求爬塔冲榜活动数据
message CSTowerActivityReq { //project game //RouteRule game
}
message SCTowerActivityAck {
int32 error = 1; //错误码
int32 fight_count = 2; //战斗次数
int32 self_rank = 3; //自己排名
int32 self_level = 4; //自己层数
uint64 end_time = 5; //结束时间
bool challeng_reward = 6; //挑战奖励是否领取
bool rank_reward = 7; //排名奖励是否领取
repeated RushRankTop3 top_data = 8; //前3名
}
/////////////////////////////////////////////////////////公会操作相关
//创建公会请求
message CSBuildGuildReq{ //project game|guild //RouteRule game
string guild_name = 1; //公会名字
int32 guild_badge = 2; //公会徽章
uint64 uid = 3; //创建人ID//服务器填写
}
//创建公会返回
message SCBuildGuildAck{ //project game
int32 error = 1; //错误码
GuildBrief guild_brief = 2; //公会ID
}
//解散公会请求
message CSDisbandGuildReq{ //project game|guild //RouteRule game
uint64 uid = 1; //创建人ID//服务器填写
uint64 guild_id = 2; //公会ID//服务器填写
}
//解散公会返回
message SCDisbandGuildAck{ //project game
int32 error = 1; //错误码
}
//申请加入公会请求
message CSApplyGuildReq{ //project game|guild //RouteRule game
uint64 guild_id = 1; //公会ID
uint64 uid = 2; //UID
int32 level = 3; //玩家等级//服务器填写
int32 op_type = 4; //操作类型1加入公会2取消加入公会
}
//申请加入公会返回给请求人
message SCApplyGuildAck{ //project game
int32 error = 1; //错误码
uint64 guild_id = 2; //公会ID
int32 op_type = 3; //操作类型1加入公会2取消加入公会
}
//退出公会请求
message CSQuitGuildReq{ //project game|guild //RouteRule game
uint64 guild_id = 1; //公会ID//服务器填写
uint64 uid = 2; //UID//服务器填写
}
//退出公会返回
message SCQuitGuildAck{ //project game
int32 error = 1; //错误码
}
//请求踢除公会成员请求
message CSKickGuildMemberReq{ //project game|guild //RouteRule game
uint64 uid = 1; //成员ID
uint64 guild_id = 2; //公会ID//服务器填写
uint64 pre_uid = 3; //会长ID
}
//请求踢除公会成员返回
message SCKickGuildMemberAck{ //project game
int32 error = 1; //错误码
uint64 uid = 2; //成员ID
}
message SCKickGuildMemberNtf { //project game|social
uint64 guild_id = 1; //成员ID
uint64 uid = 2; //UID
}
//提降玩家官职请求
message CSChangeMemberTitleReq{ //project game|guild //RouteRule game
uint64 uid = 1; //成员ID
int32 title = 2; //成员头衔
uint64 pre_uid = 3; //成员ID//服务器填写
uint64 guild_id = 4; //公会ID//服务器填写
}
//提降玩家官职返回
message SCChangeMemberTitleAck{ //project game
int32 error = 1; //错误码
uint64 uid = 2; //成员ID
int32 title = 3; //成员头衔
}
message SCChangeMemberTitleNtf{ //project game|social
uint64 guild_id = 1; //公会ID
repeated KeyValueType64 uid_list = 2;
uint64 uid = 3; //服务器使用
}
//公会改名
message CSGuildRenameReq { //project game|guild //RouteRule game
string guild_name = 1;
uint64 guild_id = 2; //服务器填写
uint64 uid = 3; //服务器填写
}
message SCGuildRenameAck { //project game
int32 error = 1;
string guild_name = 2;
}
//公会公告修改
message CSGuildReNoticeReq { //project game|guild //RouteRule game
string guild_notice = 1; //新公告
uint64 guild_id = 2; //公会ID//服务器填写
uint64 uid = 3; //操作人ID//服务器填写
}
message SCGuildReNoticeAck { //project game
int32 error = 1;
string guild_notice = 2;
}
//设置公会招募信息
message CSSetGuildInfoReq { //project game|guild //RouteRule game
uint64 guild_id = 1; //公会ID
int32 guild_badge = 2; //公会徽章
int32 join_level = 3; //加入等级
int32 join_type = 4; //加入类型
string recruit_notice = 5; //招募公告
uint64 uid = 6; //UID
}
message SCSetGuildInfoAck{ //project game
int32 error = 1; //错误码
int32 guild_badge = 2; //公会徽章
int32 join_level = 3; //加入等级
int32 join_type = 4; //加入类型
string recruit_notice = 5; //招募公告
}
//公会日志请求
message CSGuildLogInfoReq { //project game|guild //RouteRule game
uint64 guild_id = 1; //服务器填写
int64 log_time = 2;
}
message SCGuildLogInfoAck { //project game
repeated GuildLog log = 1;
bool is_end = 2;
}
//公会申请列表请求
message CSGuildApplyDataReq { //project game|guild //RouteRule game
uint64 uid = 1; //成员ID//服务器填写
uint64 guild_id = 2; //公会ID
}
//公会申请列表返回
message SCGuildApplyDataAck { //project game
int32 error = 1;
repeated uint64 uid_list = 2;
}
//处理入会申请
message CSApplyInfoHandleReq{ //project game|guild //RouteRule game
KeyValueType64 apply = 1; //keyUID value1同意 2拒绝
int32 handle_type = 2; //0:处理apply 1:全部接受2:全部拒绝
uint64 guild_id = 3; //公会ID//服务器填写
uint64 uid = 4; //成员ID//服务器填写
repeated uint64 uid_list = 5; //处理的uid列表
}
//处理入会申请返回
message SCApplyInfoHandleAck{ //project game
int32 error = 1;
uint64 guild_id = 2; //公会ID
int32 handle_type = 3; //0:处理apply 1:全部接受2:全部拒绝
repeated KeyValueType64 uid_list = 4; //处理KeyUID Value1同意2拒绝3、未处理 value2ErrorCode
}
message SCApplyInfoHandleNtf { //project social|game
int32 apply_result = 1; //申请结果 1:通过 2:拒绝
uint64 uid = 2; //申请人ID//服务器使用
uint64 guild_id = 3; //公会ID
GuildNotifyData data = 4; //公会信息列表
}
//查看其他公会信息
message CSGuildInfoReq{ //project game|guild //RouteRule game
uint64 guild_id = 1; //公会ID
uint64 uid = 2; //申请人ID//服务器使用
}
//返回其他公会信息
message SCGuildInfoAck{ //project game
int32 error = 1;
GuildBase guild_Base = 2; //公会信息 //公会日志太大了,单独请求,这里不发
repeated MemberBrief mem_brief = 3; //公会成员基础信息
bool apply = 4; //是否申请
}
//查看自己公会信息
message CSGetSelfGuildInfoReq{ //project game|guild //RouteRule game
uint64 guild_id = 1; //公会ID//服务器填写
uint64 uid = 2; //UID//服务器填写
}
//返回自己公会信息
message SCGetSelfGuildInfoAck{ //project game
int32 error = 1;
GuildBase guild_Base = 2; //公会信息 //公会日志太大了,单独请求,这里不发
repeated MemberBrief mem_brief = 3; //公会成员基础信息
RoleGuild role_guild = 4; //公会个人活跃度
uint32 total_active = 5; //近7天公会活跃度
bool apply_list = 6; //公会是否有申请
int32 guild_battle_state = 7; //公会战状态(1:未开始2进行中3已结束)
uint64 next_state_begin = 8; //下阶段开始时间
uint32 cp_num = 9; //公会贡献点
uint32 guild_battle_rank = 10; //公会贡献点名次
}
//公会成员信息请求
message CSGuildMemberInfoReq { //project game|guild //RouteRule game
uint64 guild_id = 1; //公会ID
repeated uint64 uid_list = 2; //公会成员列表
}
message SCGuildMemberInfoAck { //project game
int32 error = 1; //错误码
uint64 guild_id = 2; //公会ID
repeated MemberInfo member_data = 3; //成员信息,玩家公会数据+简介
}
//请求推荐公会
message CSRecommendGuildInfoReq{ //project game|guild //RouteRule game
uint64 uid = 1; //服务器使用
int32 req_count = 2; //请求次数//服务器使用
}
//返回推荐的公会
message SCRecommendGuildInfoAck{ //project game
int32 error = 1; //错误码
repeated GuildNotifyData data = 2; //公会信息列表
}
message CSOnlinePlayerGuildReq { //project game|guild //RouteRule game
uint64 uid = 1; //uid//服务器填写
uint64 guild_id = 2; //公会ID//服务器填写
}
//玩家上线时,公会服务器返回数据
message SCOnlinePlayerGuildAck { //project game
GuildNotifyData data = 1; //公会简介
int64 next_join = 2; //下次加入公会时间
bool boss = 3; //true:有可挑战boss
repeated MessageContentInfo msgRec = 4;
bool in_guild_battle = 5; //true公会战入口开启false公会战入口关闭
}
message CSSearchGuildReq { //project game|guild //RouteRule game
string search_string = 1; //查找公会名字或者ID
uint64 uid = 2; //uid//服务器填写
}
message SCSearchGuildAck { //project game
int32 error = 1; //错误码
string search_string = 2; //查找公会
repeated GuildNotifyData data = 3; //公会简介信息
}
message SCQuitGuildCDNtf {
int32 quit_num = 1; //退出次数
int64 next_join = 2; //下次加入时间
}
//公会boss数据请求
message CSGuildBossInfoReq { //project game|guild //RouteRule game
uint64 guild_id = 1; //公会ID//服务器填写
}
message SCGuildBossInfoAck { //project game
int32 error = 1; //错误码
repeated GuildBossData boss_data = 2;
repeated KeyValueType boss_fight = 3; //boss战斗次数/keybossID value当前战斗过的次数
uint64 elite_boss_cd = 4; //精英bossCD时间
}
//公会boss战斗日志请求
message CSGuildBossLogReq { //project game|guild //RouteRule game
uint64 log_time = 1; //log时间
uint32 boss_id = 2; //战斗的BOSSID
uint64 guild_id = 3; //公会ID//服务器填写
}
message SCGuildBossLogAck { //project game
int32 error = 1; //错误码
uint32 boss_id = 2; //战斗的BOSSID
repeated GuildBossLogDetial logs = 3;
bool is_end = 4; //true:结束false:未结束
}
//挑战boss
message CSGuildBossChallengeReq { //project game|guild //RouteRule game //confirm
uint32 boss_id = 1; //战斗的BOSSID
uint32 damage = 2; //对boss造成的伤害
uint32 battle_time = 3; //对boss造成的伤害
uint64 guild_id = 4; //公会ID//服务器填写
uint64 uid = 5; //服务器填写
}
message SCGuildBossChallengeAck { //project game
int32 error = 1; //错误码
uint32 boss_id = 2; //战斗的BOSSID
repeated KeyValueType reward = 3; //获得的奖励
uint32 damage = 4; //造成的伤害
}
//召唤boss
message CSGuildBossSummonReq { //project game|guild //RouteRule game
uint32 boss_id = 1; //召唤的BOSSid
uint64 guild_id = 2; //公会ID//服务器填写
uint64 uid = 3; //uid
}
message SCGuildBossSummonAck { //project game
int32 error = 1; //错误码
uint32 boss_id = 2; //召唤的BOSSid
uint32 guild_active = 3; //公会活跃度
int64 fight_start = 4; //战斗结束
int32 fight_count = 5; //当前boss剩余次数
}
//大事馈赠奖励查看
message CSGuildBossExtraRewardReq { //project game|guild //RouteRule game
uint32 boss_id = 1; //BossId
uint64 guild_id = 2; //公会ID//服务器填写
}
message SCGuildBossExtraRewardAck { //project game
int32 error = 1; //错误码
uint32 boss_id = 2; //BossId
uint32 max_dam = 3; //最大伤害
CommonPlayerBriefInfo brief = 4; //玩家简介
}
//公会改名NTF
message SCGuildNameChangeNtf { //project game
uint64 guild_id = 1; //公会ID
string guild_name = 2; //公会名字
uint64 uid = 3; //UID//服务器用
}
//公会boss刷新
message SCGuildBossChangeNtf { //project game
uint64 guild_id = 1; //公会ID
uint32 boss_id = 2; //bossID
int32 fight_count = 3; //boss剩余次数
}
//公会战
//公会战开始/结束时刻通知
message SCGuildBattleStageNtf {
bool in_guild_battle = 1; //true公会战入口开启false公会战入口关闭
}
//公会战贡献点Req
message CSGuildBattleCPRankReq { //project game //RouteRule game
}
message SCGuildBattleCPRankAck {
int32 error = 1; //
repeated GuildBattleCP cp_list = 2; //贡献点列表
int32 self_guild_rank = 3; //自己公会贡献点名次
int32 self_guild_cp = 4; //自己公会贡献点
}
//公会战对阵表
message CSGuildBattleCountPartReq { //project game //RouteRule game
}
message SCGuildBattleCountPartAck {
int32 error = 1; //错误码
uint64 champion = 2; //冠军
int32 cur_stge = 3; //当前阶段
uint64 tournament_prepare = 4; //8-4准备时间
uint64 tournament_begin = 5; //8-4开始
uint64 tournament_end = 6; //8-4结束
uint64 semifinals_prepare = 7; //4-2准备时间
uint64 semifinals_begin = 8; //4-2开始
uint64 semifinals_end = 9; //4-2结束
uint64 finals_prepare = 10; //2-1准备时间
uint64 finals_begin = 11; //2-1开始
uint64 finals_end = 12; //2-1结束
repeated CountTableData data = 13; //对阵表数据
}
//mvp 数据请求
message CSGuildBattleMvpInfoReq { //project game //RouteRule game
int32 guild_battle_idx = 1; //公会战索引1 / 23 / 4567
}
message SCGuildBattleMvpInfoAck {
int32 error = 1;
int32 guild_battle_idx = 2; //公会战索引1 / 23 / 4567
repeated GuildBattleDetail detail = 3; //公会战 公会的详细信息
CountTableData count_part = 4; //对阵信息
}
message CSGuildBattleMvpDetailReq { //project game //RouteRule game
int32 mvp_type = 1; //mvp类型1积分 2击杀
int32 req_rank = 2; //请求的起始排名
int32 guild_battle_idx = 3; //公会战索引1 / 23 / 4567
}
message SCGuildBattleMvpDetailAck {
int32 mvp_type = 1; //mvp类型1积分 2击杀
repeated GuildBattleMvp mvp = 2; //mvp列表目前就2个
int32 req_rank = 3; //请求的起始排名
int32 guild_battle_idx = 4; //公会战索引1 / 23 / 4567
}
//公会战结束
//获取对阵双方信息(打开界面时的信息)
message CSGuildBattleInfoReq { //project game|guild //RouteRule game
int32 guild_battle_idx = 1; //1 |2,3 |4,5,6 7(7场战斗中的一场)
uint64 self_guild_id = 2; //用来判断是参赛者还是旁观者 服务器使用
}
message SCGuildBattleInfoAck { //project game
int32 error = 1; //错误码
int32 guild_battle_idx = 2;
uint64 battle_start_time = 3;
uint64 battle_end_time = 4;
repeated KeyValueType64 battle_data_list = 5; //[keyguildid, value:score,value2:daochang, value3:badge,strval:name]
GuildBattleSelfData self_data = 6; //个人信息
GuildPosIdxData challenge_pos_data = 7; //当前战位信息
int32 buy_challenge_num = 8; //购买的战斗次数(跟人走)
}
//设置自动购买复活CD(数据变更通过SCGuildBattleInfoNtf)
message CSGuildBattleSettingReq { //project game|guild //RouteRule game
int32 guild_battle_idx = 1;
bool auto_challenge = 2;
bool auto_reborn = 3;
uint64 self_guild_id = 4; //服务器使用
}
message SCGuildBattleSettingAck { //project game
int32 error = 1; //错误码
int32 guild_battle_idx = 2;
GuildBattleSelfData self_data = 3; //个人信息
}
//挑战次数手动购买
message CSGuildBattleBuyChallengeReq { //project game|guild //RouteRule game
int32 guild_battle_idx = 1;
uint64 self_guild_id = 2; //服务器使用
}
message SCGuildBattleBuyChallengeAck { //project game
int32 error = 1; //错误码
GuildBattleSelfData self_data = 2; //个人信息
int32 buy_challenge_num = 3; //购买的战斗次数(跟人走)
int32 guild_battle_idx = 4; //
}
//手动重置复活CD
message CSGuildBattleRebornReq { //project game|guild //RouteRule game
int32 guild_battle_idx = 1;
uint64 self_guild_id = 2; //服务器使用
}
message SCGuildBattleRebornAck { //project game
int32 error = 1; //错误码
GuildBattleSelfData self_data = 2; //个人信息
int32 guild_battle_idx = 3; //
}
//战斗排行(1积分排行/2击杀排行)
message CSGuildBattleRankListReq { //project game|guild //RouteRule game
int32 guild_battle_idx = 1;
int32 rank_type = 2; //1积分2击杀
int32 page_idx = 3;
}
message SCGuildBattleRankListAck { //project game
int32 error = 1; //错误码
int32 page_idx = 2;
int32 guild_battle_idx = 3;
repeated GuildBattleRank rank_data_list = 4;
repeated KeyValueType64 battle_data_list = 5; //[keyguildid, value:score,value2:daochang, value3:badge,strval:name]
bool is_finish = 6; //当前战斗是否结束
bool win_guild = 7; //胜利公会ID
int32 rank_type = 8; //1积分2击杀
}
//获取位置信息,上限20
message CSGuildBattlePosIdxListReq { //project game|guild //RouteRule game
int32 guild_battle_idx = 1;
repeated int32 pos_idx_list = 2;
}
message SCGuildBattlePosIdxListAck { //project game
int32 error = 1; //错误码
int32 guild_battle_idx = 2;
repeated GuildPosIdxData pos_data_list = 3; //占位信息
}
//占领记录
message CSGuildBattleLogReq { //project game|guild //RouteRule game
int32 guild_battle_idx = 1;
uint64 begin_time = 2;
}
message SCGuildBattleLogAck { //project game
int32 error = 1; //错误码
int32 guild_battle_idx = 2;
repeated GuildBattleLog log_list = 3;
bool is_end = 4;
}
//挑战占位
message CSGuildBattleChallengeReq { //project game //RouteRule game
int32 guild_battle_idx = 1;
int32 pos_idx = 2;
}
message SCGuildBattleChallengeAck {
int32 error = 1; //错误码
int32 guild_battle_idx = 2;
int32 pos_idx = 3;
FightRoleInfo fight_info = 4; //对方玩家信息
GuildPosIdxData challenge_pos_data = 5;
repeated KeyValueType fight_buff_list = 6; //buff列表
repeated KeyValueType self_buff_list = 7; //自己的buff列表
GuildBattleSelfData self_data = 8; //个人信息 服务器使用
int32 buy_challenge_num = 9; //购买的战斗次数(跟人走)
}
message SCGuildBattleChallengeNtf {
int32 guild_battle_idx = 1;
int32 pos_idx = 2;
GuildBattleSelfData self_data = 3; //个人信息
int32 buy_challenge_num = 4; //购买的战斗次数(跟人走)
}
message CSGuildBattleChallengeResultReq { //project game|guild //RouteRule game
int32 guild_battle_idx = 1;
int32 battle_time = 2; //战斗持续时间
int32 pos_idx = 3;
uint64 pos_uid = 4; //对手id 玩家赋值uid机器人赋值机器人id(做校验使用)
bool battle_result = 5; //true胜利 false失败
uint64 self_guild_id = 6; //服务器使用
CommonPlayerBriefInfo bf_info = 7; //服务器使用
}
message SCGuildBattleChallengeResultAck { //project game
int32 error = 1; //错误码
int32 guild_battle_idx = 2;
}
//数据变更通知
message SCGuildBattleDataChangeNtf { //project game|social
uint64 ntf_uid = 1;
int32 guild_battle_idx = 2;
GuildPosIdxData pos_data = 3;
GuildBattleSelfData self_data = 4; //个人信息
bool from_social = 5; //服务器使用 来自social的消息
}
//保持战斗状态消息通知(60s内未收到消息判定为失败)
message CSGuildBattleChallengePingReq { //project game|guild //RouteRule game
int32 guild_battle_idx = 1;
int32 pos_idx = 2; //正在挑战的占位
}
message SCGuildBattleChallengePingAck { //project game
int32 error = 1; //错误码
}
//客户端刷新最新pk数据(道场数量/积分数量)
message CSGuildBattlePKDataReq { //project game|guild //RouteRule game
int32 guild_battle_idx = 1;
}
message SCGuildBattlePKDataAck { //project game
int32 error = 1; //错误码
int32 guild_battle_idx = 2;
repeated KeyValueType64 battle_data_list = 3; //
}
//购买战斗buff
message CSGuildBattleBuyBuffReq { //project game|guild //RouteRule game
int32 guild_battle_idx = 1;
repeated int32 buff_id_list = 2;
}
message SCGuildBattleBuyBuffAck { //project game
int32 error = 1; //错误码
int32 guild_battle_idx = 2;
GuildBattleSelfData self_data = 3; //个人信息
}
message GuildDemonRank {
uint64 uuid = 1; //公会ID/玩家ID
int32 rank = 2; //排名
uint64 damage = 3; //战斗伤害
string guild_name = 4; //公会名
int32 guild_badge = 5; //公会徽章
}
message GuildDemonGuildRank {
GuildNotifyData data = 1; //公会信息列表
int32 rank = 2; //排名
uint64 damage = 3; //战斗伤害
}
//公会魔王信息请求
message CSGuildDemonInfoReq { //project game|guild //RouteRule game
uint64 guild_id = 1; //服务器用
uint64 uid = 2; //服务器用
}
message SCGuildDemonInfoAck { //project game
int32 demon_id = 1; //当天的公会bossID
uint64 next_up_time = 2; //下一次升级时间
int32 demon_level = 3; //魔王等级
uint64 end_time = 4; //当天挑战结束时间
int32 left_fight_count = 5; //剩余战斗次数
int32 left_buy_count = 6; //剩余战斗次数
uint64 total_boss_damage = 7; //boss总伤害
uint64 damage = 8; //我的战斗伤害
uint64 mvp_damage = 9; //mvp伤害
CommonPlayerBriefInfo mvp_brief = 10; //玩家昵称
repeated DemonDamage rank_list = 11; //公会玩家排名列表
uint64 req_uid = 12; //请求的玩家ID
}
//公会魔王战斗请求
message CSGuildDemonFightReq { //project game|guild //RouteRule game
int32 demon_id = 1;
uint64 damage = 2; //总伤害
}
message SCGuildDemonFightAck { //project game
int32 error = 1;
int32 demon_id = 2; //bossid
int32 fight_count = 3; //剩余战斗次数
uint64 total_damage = 4; //boss总伤害
uint64 self_damage = 5; //自己总伤害
repeated KeyValueType base_reward = 6; //战斗基础奖励
}
//请求公会魔王公会排名
message CSGuildDemonGuildRankReq { //project game|guild //RouteRule game
int32 page = 1; //页签
uint64 guild_id = 2; //公会ID
uint64 uid = 3; //服务器用
}
message SCGuildDemonGuildRankAck { //project game
int32 error = 1;
int32 page = 2; //页签
repeated GuildDemonGuildRank rank_list = 3; //列表
GuildDemonGuildRank self_guild = 4; //自己公会
bool is_end = 5; //是否结束
uint64 uid = 6; //服务器用
}
//请求公会魔王最强公会个人排名
message CSGuildDemonMVPRankReq { //project game|guild //RouteRule game
int32 page = 1; //页签
uint64 guild_id = 2; //
uint64 uid = 3; //服务器用
}
message SCGuildDemonMVPRankAck { //project game
int32 error = 1;
int32 page = 2; //页签
repeated GuildDemonRank rank_list = 3; //列表
GuildDemonRank self_guild_mvp = 4; //自己公会MVP
CommonPlayerBriefInfo mvp_brief = 5; //玩家昵称
bool is_end = 6; //是否结束
uint64 uid = 7; //服务器用
}
//请求购买公会魔王战斗次数
message CSGuildDemonBuyFightCountReq { //project game //RouteRule game
int32 fight_count = 1; //购买次数
}
message SCGuildDemonBuyFightCountAck { //project game
int32 error = 1; //
int32 left_buy_count = 2; //剩余购买次数
int32 left_fight_count = 3; //剩余战斗
}
/////////////////////////////////////////////////////////pet
//宠物数据变更(客户端需要判断数据库不为空时才处理)
message SCPetChangeNtf {
repeated PetData pet_list = 1; //变更/增加
repeated uint32 del_pet_list = 2; //删除宠物id列表
repeated PetManualST pet_manual_list = 3; //宠物图鉴
repeated AssistIdxData assist_pet_list = 4; //援助宠物列表
}
//宠物升级
message CSPetLevelUpReq { //project game //RouteRule game
uint32 pet_id = 1;
}
message SCPetLevelUpAck {
int32 error = 1; //错误码
uint32 pet_id = 2;
}
//宠物进阶
message CSPetAdvanceReq { //project game //RouteRule game
uint32 pet_id = 1; //需要进阶的宠物
repeated uint32 pet_list = 2; //进阶消耗材料
}
message SCPetAdvanceAck {
int32 error = 1; //错误码
}
//宠物领悟
message CSPetSkillLevelUpReq { //project game //RouteRule game
uint32 pet_id = 1;
uint32 cost_pet_id = 2;
}
message SCPetSkillLevelUpAck {
int32 error = 1; //错误码
uint32 pet_id = 2;
int32 skill_id = 3;
}
//宠物分解
message CSPetDecomposeReq { //project game //RouteRule game
repeated uint32 pet_id_list = 1;
}
message SCPetDecomposeAck {
int32 error = 1; //错误码
repeated KeyValueType item_list = 2; //分解返回材料
}
//获取羁绊列表数据
message CSPetBondListReq { //project game //RouteRule game
}
message SCPetBondListAck {
int32 error = 1; //错误码
repeated PetBondData bond_list = 2;
repeated KeyValueType64Str uid_name_list = 3; //名字列表
}
//玩家主动操作导致的羁绊数据变更(进阶,分解)
message SCPetBondListNtf {
repeated PetBondData bond_list = 1;
}
//获取激活羁绊所需的宠物列表(援助列表,好友/公会)
message CSPetBondAssistListReq { //project game //RouteRule game
int32 bond_cfg_id = 1; //key:1品质 2进阶等级 3特殊属性
}
message SCPetBondAssistListAck {
int32 error = 1;
int32 bond_cfg_id = 2;
repeated AssistData bond_pet_list = 3; //
}
//宠物羁绊激活
message CSPetBondActiveReq { //project game //RouteRule game
repeated PetBondData bond_data_list = 1;
}
message SCPetBondActiveAck {
int32 error = 1; //错误码
repeated PetBondData bond_data_list = 2;
repeated KeyValueType64Str uid_name_list = 3; //名字列表
}
//宠物援助
message CSPetAssistReq { //project game //RouteRule game
repeated uint32 pet_id_list = 1;
}
message SCPetAssistAck {
int32 error = 1; //错误码
repeated AssistIdxData assist_list = 2; //援助宠物
}
//上阵/下阵
message CSPetBattleReq { //project game //RouteRule game
repeated KeyValueType battle_list = 1;
}
message SCPetBattleAck {
int32 error = 1; //错误码
}
//图鉴奖励获取
message CSPetManualRewardReq { //project game //RouteRule game
int32 pet_cfg_id = 1;
int32 pet_adv_level = 2; //进阶等级奖励
int32 pet_id = 3;
}
message SCPetManualRewardAck {
int32 error = 1; //错误码
repeated KeyValueType reward_list = 2;
int32 pet_cfg_id = 3;
}
//最早收集到宠物最高进阶等级获取
message CSPetAdvAchievementReq { //project game //RouteRule game
int32 pet_cfg_id = 1;
}
message SCPetAdvAchievementAck {
int32 error = 1; //错误码
int32 pet_cfg_id = 2;
CommonPlayerBriefInfo brief = 3; //玩家昵称
uint64 achievement_time = 4; //达成该成就时的时间
}
//请求宠物冲榜活动数据
message CSPetActivityReq { //project game //RouteRule game
}
message SCPetActivityAck {
int32 error = 1; //错误码
int32 self_rank = 2; //自己排名
int32 self_score = 3; //自己分数
uint64 end_time = 4; //结束时间
bool challeng_reward = 5; //挑战奖励是否领取
bool rank_reward = 6; //排名奖励是否领取
repeated RushPetData top_data = 7; //这里只发送前10名
}
message CSPetActivityRankReq { //project game|rank //RouteRule game
int32 page = 1;
}
message SCPetActivityRankAck { //project game
int32 error = 1; //错误码
int32 page = 2;
repeated RushPetData top_data = 3;
}
//宠物印记(装备)
//印记数据变更
message SCPetEquipDataNtf {
repeated PetEquipData pet_equip_list = 1; //宠物印记
bool ignore = 2; //true不弹框提示false正常提示
}
//印记升级/进阶
message CSPetEquipLevelUpReq { //project game //RouteRule game
uint32 pet_equip_id = 1; //动态生成的id
}
message SCPetEquipLevelUpAck {
int32 error = 1; //错误码
PetEquipData pet_equip = 2;
}
//印记启用
message CSPetEquipUpReq { //project game //RouteRule game
uint32 pet_id = 1;
repeated KeyValueType slot_list = 2; //key=slotindex val=petequipid
}
message SCPetEquipUPAck {
int32 error = 1; //错误码
uint32 pet_id = 2;
repeated KeyValueType slot_list = 3; //key=slotindex val=petequipid
}
//印记卸下
message CSPetEquipDownReq { //project game //RouteRule game
uint32 pet_id = 1;
int32 slot_index = 2;
}
message SCPetEquipDownAck {
int32 error = 1; //错误码
uint32 pet_id = 2;
int32 slot_index = 3;
}
//宠物系统优化
//背包界面只下发必要数据,后续通过打开宠物界面主动获取
message CSPetDetailInfoReq { //project game //RouteRule game
repeated uint32 pet_id_list = 1; //宠物动态ID
}
message SCPetDetailInfoAck {
repeated PetData pet_info_list = 1; //宠物详细信息
}
////宠物契约
//契约槽位数据变更通知
message SCPetQiyueDataNtf {
int32 hero_id = 1; //伙伴(hero)动态id
PetQiyueInfo qiyue_info = 2; //当前伙伴跟随的宠物契约信息
}
//契约槽位解锁
message CSPetQiyueSlotUnlockReq { //project game //RouteRule game
int32 hero_id = 1; //伙伴(hero)动态id
}
message SCPetQiyueSlotUnlockAck {
int32 error = 1; //错误码
int32 hero_id = 2; //伙伴(hero)动态id
}
//契约操作添加宠物(替换也使用该协议)
message CSPetQiyueSlotInReq { //project game //RouteRule game
int32 hero_id = 1; //伙伴(hero)动态id
int32 slot_idx = 2; //1-4
uint32 pet_id = 3; //放入契约槽位宠物(宠物动态id)
}
message SCPetQiyueSlotInAck {
int32 error = 1; //错误码
int32 hero_id = 2; //伙伴(hero)动态id
int32 slot_idx = 3; //1-4
}
//卸载契约槽宠物
message CSPetQiyueSlotOutReq { //project game //RouteRule game
int32 hero_id = 1; //伙伴(hero)动态id
int32 slot_idx = 2; //1-4,0表示一键卸下该伙伴跟随宠物的觉醒材料宠物
}
message SCPetQiyueSlotOutAck {
int32 error = 1; //错误码
int32 hero_id = 2; //伙伴(hero)动态id
int32 slot_idx = 3; //1-4,0表示一键卸下该伙伴跟随宠物的觉醒材料宠物
}
//契约总属性面板中出阵宠物契约属性
message CSPetQiyueBattlePetAttrReq { //project game //RouteRule game
}
message SCPetQiyueBattlePetAttrAck {
int32 error = 1; //错误码
repeated ActorAttrType actor_list = 2; //
}
//宠物传承
message CSPetDataExchangeReq { //project game //RouteRule game
uint32 source_pet_id = 1; //传承的宠物
uint32 target_pet_id = 2; //被传承的宠物
}
message SCPetDataExchangeAck {
int32 error = 1; //错误码
uint32 source_pet_id = 2; //传承的宠物
uint32 target_pet_id = 3; //被传承的宠物
}
/////////////////////////////////////////////////////////远征之门
message SCExpeditionChangeNtf {
BattleExpedition expedition_info = 1;
bool day_reset = 2;
}
//点击挑战按钮
message CSExpeditionChallengePreReq { //project game //RouteRule game
int32 expedition_type = 1; //区域ID
}
message SCExpeditionChallengePreAck {
int32 error = 1; //错误码
}
//客户端上报hpsp并获取奖励(buff)
message CSExpeditionChallengeReq { //project game //RouteRule game
int32 expedition_type = 1;
int32 battle_level = 2;
repeated BattleExpeditionActor hero_info_list = 3; //英雄血量
repeated BattleExpeditionActor boss_change_hp_list = 4; //扣血列表(客户端扣血顺序逻辑帧)
int32 battle_time = 5; //战斗持续时长(单位秒)
int32 battle_idx = 6; //1,2,3
int32 flag = 7; //1战斗开始2刷新3战斗结束
}
message SCExpeditionChallengeAck{
int32 error = 1; //错误码
int32 flag = 2; //1战斗开始2刷新3战斗结束 4(胜利的方式战斗结束服务之赋值)
repeated int32 buff_list = 3; //buff列表
}
//战斗结束后选择buff id
message CSExpeditionSelectBuffReq { //project game //RouteRule game
int32 select_buff_id = 1; //配置表id
}
message SCExpeditionSelectBuffAck {
int32 error = 1; //错误码
}
//领取区域地图宝箱奖励(未领取在隔天重置时统一发送邮件)
message CSExpeditionRewardReq { //project game //RouteRule game
int32 expedition_type = 1; //区域地图id(类型)
int32 boss_idx = 2; //为0表示一键领取
}
message SCExpeditionRewardAck {
int32 error = 1; //错误码
repeated KeyValueType reward_item_list = 2; //奖励物品
}
//设置上阵玩家
message CSExpeditionBattleHeroReq { //project game //RouteRule game
repeated int32 battle_hero_list = 1;
}
message SCExpeditionBattleHeroAck {
int32 error = 1; //错误码
}
//求助其他玩家(自己英雄死亡发送求助操作)
message CSExpeditionCallForHelpReq { //project game //RouteRule game
uint64 assist_help_uid = 1; //为0表示公会求助如果不存在公会返回错误
}
message SCExpeditionCallForHelpAck {
int32 error = 1; //错误码
}
//对方回应求助操作,通知给求助玩家
message SCExpeditionCallForHelpNtf {
int32 assist_state = 1; //1成功求助
CommonPlayerBriefInfo brief = 2;
}
//救助 求助的玩家
message CSExpeditionHelpReq { //project game //RouteRule game
uint64 be_helped_uid = 1;
int32 msg_type = 2; //来自私聊还是来自公会(1私聊 3公会)
uint64 help_msg_send_time = 3; //求助消息发送时的时间
}
message SCExpeditionHelpAck {
int32 error = 1; //错误码
repeated KeyValueType reward_item_list = 2; //奖励物品
}
//勇士积分排行
message CSExpeditionScoreRankListReq { //project game //RouteRule game
int32 start_idx = 1;//1[1-10] 2[11-20] 3[21-30] ...
}
message SCExpeditionScoreRankListAck {
int32 error = 1; //错误码
repeated ExpeditionRankInfo rank_list = 2;
ExpeditionRankInfo self_rank_info = 3;
int32 start_idx = 4;
}
//远征之门通关地图奖励获取
message CSExpeditionPassRewardReq { //project game //RouteRule game
int32 expedition_type = 1; //关卡地图区域Type
}
message SCExpeditionPassRewardAck {
int32 error = 1; //错误码
repeated KeyValueType reward_item_list = 2; //奖励物品
}
/////////////////////////////////////////////////////////精彩活动
message SCActivitiesStartupNtf {
repeated ActivitiesData open_activity_list = 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;
}
//开启的活动通知
message SCActivitiesOpenListNtf {
repeated ActivitiesData activity_list = 1; //开启的活动列表
}
//活动数据变更通知
message SCActivitiesChangeNtf {
repeated ActivitiesDetailData activity_data_list = 1;
uint64 cur_day_end_time = 2; //当前天结束时间戳
}
//连续登录奖励获取
//14日目标任务
//百元礼包
//每日累计充值
message CSActivitiesRewardReq { //project game //RouteRule game
int32 activity_id = 1;
int32 param = 2; //领取day对应天的奖励 | 任务id
int32 reward_num = 3; //兑换次数
bool watch_ad =4; //看广告
}
message SCActivitiesRewardAck {
int32 activity_id = 1;
int32 error = 2; //错误码
repeated KeyValueType reward_item_list = 3; //奖励物品
}
//积分奖励获取
message CSActivitiesScoreRewardReq { //project game //RouteRule game
int32 activity_id = 1;
int32 box_idx = 2; //配置表中的唯一id
}
message SCActivitiesScoreRewardAck {
int32 activity_id = 1;
int32 error = 2; //错误码
repeated KeyValueType reward_item_list = 3; //奖励物品
}
///支付活动相关
//开启超值礼包通知
message SCActivitiesDiscountsNtf {
repeated ActivitiesUnlockRechargeData discount_data_list = 1;
}
//获取首充奖励
message CSActivitiesFirstChargeRewardReq { //project game //RouteRule game
}
message SCActivitiesFirstChargeRewardAck {
int32 error = 1;
repeated KeyValueType reward_item_list = 2; //奖励物品
}
message SCActivitiesFirstChargeChangeNtf {
int32 first_charge_reward_state = 1; //获取奖励状态
uint64 first_charge_time = 2; //非0表示可以进行奖励领取
}
//获取全局服务器数据
message CSActivitiesCollectionServerDataReq { //project game //RouteRule game
int32 activity_id = 1;
}
message SCActivitiesCollectionServerDataAck {
int32 error = 1; //错误码
int32 activity_id = 2;
repeated KeyValueType data_list = 3; //全局相关数据
}
//消耗道具获得好感度(3.8活动)
message CSActivitiesLikabilityRewardReq { //project game //RouteRule game
int32 activity_id = 1;
int32 item_cfg_id = 2; //道具
int32 likability_level = 3; //道具对应档位
}
message SCActivitiesLikabilityRewardAck {
int32 error = 1; //错误码
int32 activity_id = 2;
repeated KeyValueType reward_item_list = 3; //奖励物品
}
message CSActivitiesExchangeReq { //project game //RouteRule game
int32 reward_idx = 1;
int32 activity_id = 2;
repeated ExchangeInfo data = 3;
}
message SCActivitiesExchangeAck { //project game //RouteRule game
int32 error = 1;
int32 reward_idx = 2;
int32 activity_id = 3;
int32 exchange_time = 4; //剩余兑换次数
}
//集字活动提醒设置
message CSActivitiesWordNoticeSetReq { //project game //RouteRule game
int32 activity_id = 1;
int32 collect_id = 2;
bool no_notice = 3;
}
message SCActivitiesWordNoticeSetAck {
int32 error = 1;
int32 activity_id = 2;
int32 collect_id = 3;
bool no_notice = 4;
}
//转盘活动
//刷新转盘道具(未开启本轮时操作)
message CSActivityWheelRefreshReq { //project game //RouteRule game
int32 activity_id = 1;
}
message SCActivityWheelRefreshAck {
int32 error = 1; //错误码
}
//开启本轮转盘(开始获取奖励)
message CSActivityWheelOpenRewardReq { //project game //RouteRule game
int32 activity_id = 1;
}
message SCActivityWheelOpenRewardAck {
int32 error = 1; //错误码
}
//转一次/转本轮(获取所有奖励)
message CSActivityWheelRewardReq { //project game //RouteRule game
int32 activity_id = 1;
bool reward_all = 2;//false:转一次 true:获取所有奖励
}
message SCActivityWheelRewardAck {
int32 error = 1; //错误码
bool reward_all = 2; //转一次/转本轮
repeated WheelRewardItemInfo reward_list = 3; //奖励
}
//关闭本轮转盘
message CSActivityWheelCloseRewardReq { //project game //RouteRule game
int32 activity_id = 1;
}
message SCActivityWheelCloseRewardAck {
int32 error = 1; //错误码
}
//活动召唤
//召唤
message CSActivitySummonReq { //project game //RouteRule game
int32 activity_id = 1; //活动id
int32 summon_count = 2; //抽取次数(单抽10连抽)
}
message SCActivitySummonAck {
int32 error = 1; //错误码
int32 activity_id = 2; //活动ID
int32 draw_count = 3; //抽卡类型1抽1次5抽五次
repeated DrawItem item_list = 4; //抽取的奖励列表
repeated DrawItem extra_item = 5; //保底奖励
int32 draw_times = 6; //draw_type对应的抽取次数
int32 add_point = 7; //增加的保底点数
}
message CSActivitySignInReq { //project game //RouteRule game
int32 activity_id = 1; //活动id
}
message SCActivitySignInAck {
int32 error = 1; //错误码
int32 activity_id = 2; //活动id
repeated KeyValueType reward_list = 3; //奖励列表
repeated KeyValueType ext_reward_list = 4; //额外奖励
uint64 next_sign_time = 5; //下次签到时间
int32 sign_days = 6; //当前签到天数
}
/////////////////////////////////////////////////////////拉新(好友邀请功能)
message SCInvitationStartupNtf {
RoleInvitation invitation_info = 1;
}
message SCInvitationChangNtf{
RoleInvitation invitation_info = 1;
repeated uint64 del_member_uid_list = 2;
}
//获取邀请码功能信息(无自身邀请码则生成)
message CSInvitationNumberReq { //project game //RouteRule game
}
message SCInvitationNumberAck {
int32 error = 1; //错误码
}
//获取邀请码对应玩家信息
message CSInvitationNumberUserInfoReq { //project game //RouteRule game
uint64 invitation_number = 1; //自己的邀请码
}
message SCInvitationNumberUserInfoAck {
int32 error = 1; //错误码
CommonPlayerBriefInfo brief = 2; //邀请码对应玩家简介信息
int32 member_num = 3; //邀请码对一个玩家的成员数量
}
//填写其他玩家邀请码成为学员
message CSInvitationBeToMemberReq { //project game //RouteRule game
uint64 master_invitation_number = 1; //导师邀请码
uint64 master_uid = 2; //导师uid(做合法性校验)
}
message SCInvitationBeToMemberAck {
int32 error = 1; //错误码
}
//拍一拍
message CSInvitationClickReq { //project game //RouteRule game
repeated uint64 member_uid_list = 1; //学员uid(填写0表示一键拍一拍)
}
message SCInvitationClickAck {
int32 error = 1; //错误码
repeated KeyValueType reward_item_list = 2; //奖励物品
}
//拍一拍回应
message CSInvitationClickReplayReq { //project game //RouteRule game
uint64 master_uid = 1; //有可能玩家已经被解除关系
}
message SCInvitationClickReplayAck {
int32 error = 1; //错误码
repeated KeyValueType reward_item_list = 2; //奖励物品
}
//导师删除学员
message CSInvitationDelMemberReq { //project game //RouteRule game
repeated uint64 del_member_uid_list = 1;
}
message SCInvitationDelMemberAck {
int32 error = 1; //错误码
repeated uint64 del_member_uid_list = 2;
}
//获取任务奖励
message CSInvitationTaskRewardReq { //project game //RouteRule game
repeated uint32 task_id_list = 1;
}
message SCInvitationTaskRewardAck {
int32 error = 1; //错误码
repeated uint32 task_id_list = 2;
repeated KeyValueType reward_item_list = 3; //奖励物品
}
/////////////////////////////////////////////////////////充值
//获取充值信息(订单信息,商品信息)
message CSPayInfoGetReq { //project game //RouteRule game
int32 goods_id = 1;
int32 goods_type = 2; //系统(首充)
int32 count = 3;
int32 activity_id = 4; //活动ID
}
message SCPayInfoGetAck {
int32 error = 1; //错误码
int32 goods_id = 2;
int32 goods_type = 3;
string goods_name = 4;
uint64 cp_order_id = 5; //产品订单号
float amount = 6; //支付总额
int32 count = 7; //购买数量
int32 s_id = 8; //当前服务器zone
string pay_code = 9; // 商品编号
string server_region = 10; //当前服务器所在大区
int32 activity_id = 11; //活动ID
string pay_notify_url = 12; //充值回调地址
}
//充值信息变更通知
message SCPayInfoNtf {
float total_recharge = 1; //累计充值
float day_recharge = 2; //每日累计充值
}
//上线获取成功成但是没有获取奖励的订单数据
message CSPayInfoOrderOKListGetReq { //project game //RouteRule game
}
message SCPayInfoOrderOKListGetAck {
repeated KeyValueType reward_item_list = 1; //奖励物品
}
/////////////////////////////////////////////////////////百人道场
//基础收益 / 占领收益 / 剩余挑战次数 变更通知
message SCDaoChang100DataChangNtf{
RoleDaoChang100 ntf_data = 1;
DaoChang100PosIdxData self_pos_data = 2;
}
//获取玩家(玩家自身和其他玩家)占位信息
message CSDaoChang100PlayerInfoReq { //project game|rank //RouteRule game
uint64 player_uid = 1;
}
message SCDaoChang100PlayerInfoAck { //project game
int32 error = 1; //错误码
uint64 player_uid = 2;
DaoChang100PosIdxData player_pos_data = 3;
bool has_new_log = 4; //占位过期日志
}
//获取百人道场位置信息数据
//列表上限20
message CSDaoChang100Req { //project game //RouteRule game
repeated int32 pos_idx_list = 1;
}
message SCDaoChang100Ack {
int32 error = 1; //错误码
repeated DaoChang100PosIdxData pos_data_list = 2; //占位信息
}
//获取占领记录
message CSDaoChang100LogReq { //project game //RouteRule game
uint64 begin_time = 1;
}
message SCDaoChang100LogAck {
int32 error = 1; //错误码
repeated DaoChang100Log log_list = 2;
bool is_end = 3;
}
//挑战占位(挑战成功后发送通知消息SCDaoChang100DataChangNtf)
message CSDaoChang100ChallengeReq { //project game //RouteRule game
int32 pos_idx = 1;
}
message SCDaoChang100ChallengeAck {
int32 error = 1; //错误码
int32 pos_idx = 2;
FightRoleInfo fight_info = 3; //对方玩家信息
DaoChang100PosIdxData challenge_pos_data = 4;
}
message CSDaoChang100ChallengeResultReq { //project game //RouteRule game
int32 battle_time = 1; //战斗持续时间
int32 pos_idx = 2;
uint64 pos_uid = 3; //对手id 玩家赋值uid机器人赋值机器人id(做校验使用)
bool battle_result = 4; //true胜利 false失败
}
//获取收益奖励
message CSDaoChang100TimeRewardReq { //project game //RouteRule game
}
message SCDaoChang100TimeRewardAck {
int32 error = 1; //错误码
repeated KeyValueType reward_list = 2;
int32 reward_num = 3; //领取的base奖励次数
}
//购买挑战次数
message CSDaoChang100BuyChallengeCountReq { //project game //RouteRule game
}
message SCDaoChang100BuyChallengeCountAck {
int32 error = 1; //错误码
}
//道场口号设置
message CSDaoChang100SetTipsReq { //project game //RouteRule game
string tip_desc = 1; //
}
message SCDaoChang100SetTipsAck {
int32 error = 1; //错误码
}
//礼包码获取奖励
message CSGiftRewardReq { //project game|social|gmweb //RouteRule game
string gift_code = 1;
uint64 uuid = 2;
}
message SCGiftRewardAck { //project social|game
int32 error = 1; //错误码
uint64 uuid = 2; //服务器使用
repeated KeyValueType reward_list = 3; //礼包奖励
string gift_code = 4;
}
//道场转盘
message SCDaoChang100WheelChangNtf {
RoleDaoChang100 ntf_data = 1;
}
//打开界面是获取信息(第三赛季未到时无数据,后续打开生成奖励物品)
message CSDaoChang100WheelReq { //project game //RouteRule game
}
message SCDaoChang100WheelAck {
int32 error = 1; //错误码
}
//刷新转盘道具(未开启本轮时操作)
message CSDaoChang100WheelRefreshReq { //project game //RouteRule game
}
message SCDaoChang100WheelRefreshAck {
int32 error = 1; //错误码
}
//开启本轮转盘(开始获取奖励)
message CSDaoChang100WheelOpenRewardReq { //project game //RouteRule game
}
message SCDaoChang100WheelOpenRewardAck {
int32 error = 1; //错误码
}
//转一次/转本轮(获取所有奖励)
message CSDaoChang100WheelRewardReq { //project game //RouteRule game
bool reward_all = 1;//false:转一次 true:获取所有奖励
}
message SCDaoChang100WheelRewardAck {
int32 error = 1; //错误码
bool reward_all = 2; //转一次/转本轮
repeated WheelRewardItemInfo reward_list = 3; //奖励
}
//关闭本轮转盘
message CSDaoChang100WheelCloseRewardReq { //project game //RouteRule game
}
message SCDaoChang100WheelCloseRewardAck {
int32 error = 1; //错误码
}
//获取转盘日志
message CSDaoChang100WheelLogReq { //project game|db //RouteRule game
}
message SCDaoChang100WheelLogAck { //project game
repeated WheelLogData log_list = 1;
}
message SCDaoChang100WheelLogNtf { //project game
repeated WheelLogData log_list = 1;
}
message SCCompetitionStarInfoNtf {
int32 cur_score = 1; //当前积分
int32 next_final = 2; //高一档最后一名
int32 before_first = 3; //低一档第一名
}
message CSCompetitionStarInfoReq { //project game //RouteRule game
}
message SCCompetitionStarInfoAck {
int32 error = 1; //错误码
repeated int32 stars = 2; //当前拥有的星星
}
//占卜一次
message CSCompetitionStarDivineReq { //project game //RouteRule game
bool use_ticket = 1;
}
message SCCompetitionStarDivineAck {
int32 error = 1; //错误码
repeated int32 stars = 2; //当前拥有的星星
int32 star = 3; //本次抽到的星星
bool light = 4; //true点亮 false灭掉
}
//领奖/关闭本轮占卜
message CSCompetitionStarCloseRewardReq { //project game //RouteRule game
}
message SCCompetitionStarCloseRewardAck {
int32 error = 1; //错误码
repeated int32 stars = 2; //当前拥有的星星,重置
repeated KeyValueType reward_list = 3; //奖励列表
}
//累计在线奖励获取
message CSAccOnlineRewardReq { //project game|db //RouteRule game
}
message SCAccOnlineRewardAck {
int32 error = 1; //错误码
repeated KeyValueType reward_list = 3; //奖励内容
}
//偶像季 主动投票
message CSCompetitionOnVoteReq { //project game //RouteRule game
int32 ticket_count = 1; //票数
uint64 uid = 2; //投票目标
}
message SCCompetitionOnVoteAck {
int32 error = 1; //错误码
uint64 uid = 2; //投票目标
int32 total_count = 3; //uid总票数
//前三名的票数
repeated FansRankData vote_list = 4; //前三名数据
repeated PlayerShowData detail = 5; //详细信息
FansRankData vote_target = 6; //投票目标
int32 ticket_count = 7; //本次投票数量
repeated KeyValueType64 reward_data = 8; //key uid value 分数 value2表示领奖数据(value2按位取值)
}
//偶像季 请求自己的粉丝榜
message CSCompetitionSelfFansInfoReq { //project game //RouteRule game
}
message SCCompetitionSelfFansInfoAck {
int32 error = 1; //错误码
repeated FansVoteData fan_list = 2; //粉丝投我的数据Key 粉丝ID value 票数)(策划只需要,固定前十名)
}
//偶像季 得票排行榜单
message CSCompetitionVoteRankReq { //project game //RouteRule game
int32 page = 1;
}
message SCCompetitionVoteRankAck {
int32 error = 1; //错误码
int32 page = 2;
repeated FansRankData rank_data = 3; //排行榜
bool is_end = 4; //是否结束
}
//偶像季 粉丝奖励榜
message CSCompetitionFansRewardRankReq { //project game //RouteRule game
int32 page = 1; //应援主角
}
message SCCompetitionFansRewardRankAck {
int32 error = 1; //错误码
int32 page = 2; //应援主角
repeated FansBoxData data_list = 3; //粉丝奖励榜列表
repeated KeyValueType64 reward_data = 4; //key uid value 分数 value2表示领奖数据(value2按位取值)
bool is_end = 5; //是否结束
}
//偶像季 粉丝领奖
message CSCompetitionFansGetRewardReq { //project game //RouteRule game
uint64 uid = 1; //应援主角
int32 reward_level = 2; //奖励等级
}
message SCCompetitionFansGetRewardAck {
int32 error = 1; //错误码
uint64 uid = 2; //应援主角
int32 reward_level = 3; //奖励等级
repeated KeyValueType reward_list = 4; //
int32 reward_flag = 5; //领奖标记
}
//偶像季 请求每日奖励
message CSCompetitionFansDayRewardReq { //project game //RouteRule game
int32 id = 1; //领取ID
}
message SCCompetitionFansDayRewardAck {
int32 error = 1; //错误码
int32 id = 2; //领取ID
}
//偶像季 请求玩家票数排行榜
message CSCompetitionGetPlayerVoteRankReq { //project game //RouteRule game
uint64 uid = 1; //领取ID
}
message SCCompetitionGetPlayerVoteRankAck {
int32 error = 1; //错误码
FansRankData idol_rank_data = 2; //排行榜
}
/////////////////////////////////////////////////////////GM操作
message CSGMCommandReq { //project game //RouteRule game
string gm_cmd = 1;//gm命令
uint32 gm_param1 = 2;
uint32 gm_param2 = 3;
repeated uint32 gm_param_list = 4;
}
message SCGMCommandAck {
string gm_cmd = 1;//gm命令
}
//vip变动通知
message SCVipChangeNtf {
int32 vip_level = 1; //vip等级
int32 vip_exp = 2; //vip总经验
}
//抽卡
message CSDrawCardReq { //project game //RouteRule game
int32 draw_type = 1; //1:宠物抽卡, 2卡片抽卡
int32 draw_count = 2; //抽卡类型1抽1次5抽五次
bool watch_ad = 3; //看广告
}
message DrawItem {
int32 item_id = 1; //道具Id
int32 item_num = 2; //道具数量
bool is_new = 3; //是否新获得
}
message SCDrawCardAck {
int32 error = 1; //错误码
int32 draw_type = 2; //1:宠物抽卡, 2卡片抽卡
int32 draw_count = 3; //抽卡类型1抽1次5抽五次
repeated DrawItem item_list = 4; //抽取的奖励列表
repeated DrawItem extra_item = 5; //保底奖励
int32 draw_times = 6; //draw_type对应的抽取次数
int32 add_point = 7; //增加的保底点数
}
//商店
message RuneShopItem {
int32 goods_id = 1; //商品ID
int64 end_time = 2; //商品结束时间(限时商店使用)
int32 buy_nums = 3; //可购买数量
bool buy_limit = 4; //是否限购
bool first_buy = 5; //是否首次购买
float price = 6; //价格
string code = 7; //商品编号
float original_price = 8;
}
//卢恩商店信息请求
message CSRuneShopInfoReq { //project game //RouteRule game
int32 shop_type = 1; //商店类型
int32 sub_shop = 2; //商店子类型
int32 activity_id = 3; //活动ID
}
message SCRuneShopInfoAck {
int32 shop_type = 1; //商店类型
int32 sub_shop = 2; //商店子类型
repeated RuneShopItem goods_list = 3; //商店道具类型
int64 end_time = 4; //礼包商店截止时间(根据子类型)
int32 activity_id = 5; //活动ID
}
//购买完成后,通知客户端购买后的商品信息
message SCRuneShopBuyItemNtf {
int32 error = 1; //错误码
int32 shop_type = 2; //商店类型
int32 sub_shop = 3; //商店子类型
RuneShopItem shop_item = 4; //商店商品信息
}
//卢恩商店红点信息
message SCRuneFreeRedChangeInfoNtf {
repeated KeyValueType rune_red = 1; //Key:ShopType,Value:SubShop
repeated int32 limit_red = 2; //限时礼包商店,售卖物品
}
//经验变化推送客户端
message SCExploreExpChangeNtf {
int32 total_exp = 1; // 总经验
int32 MissionExp = 2; // 经验
int32 level = 3; // 等级
}
//请求探索功能数据
message CSExploreInfoReq { //project game //RouteRule game
}
message SCExploreInfoAck {
int32 total_exp = 1; // 总经验
int32 level = 2; // 等级
uint64 startTime = 3; // 开始时间
uint64 endTime = 4; // 结束时间
uint64 nextStartTime = 5; // 下一场开启时间
int32 missionExp = 6; // 活跃度经验
int32 curRoune = 7; // 当前轮次
bool bUnlock = 8; // 是否解锁
bool fullAward = 9; // 满级已领取奖励
repeated KeyValueType draw_rewar = 10; //key等级value按位取第一位表示普通奖励第二位表示高级奖励
string code = 11; //商品编号
float original_price = 12;
}
//满级之后奖励领取
message CSExploreExtraRewardReq { //project game //RouteRule game
}
message SCExploreExtraRewardAck {
int32 error = 1;
int32 total_exp = 2; //当前总经验
int32 mission_exp =3;
repeated KeyValueType award_item = 4;
}
//普通等级奖励领取
message CSExploreRewardReq { //project game //RouteRule game
int32 level = 1; //领取等级
int32 reward_type = 2; //领取类型1表示普通奖励2高级奖励
}
message SCExploreRewardAck {
int32 error = 1;
int32 type =2;
int32 level =3;
repeated KeyValueType award_item = 4;
repeated KeyValueType draw_rewar = 5; //key等级value按位取第一位表示普通奖励第二位表示高级奖励
}
//飞艇探索一键领取(含满级奖励)
message CSExploreRewardOnekeyReq { //project game //RouteRule game
}
message SCExploreRewardOnekeyAck {
int32 error = 1;
int32 total_exp = 2; //当前总经验
repeated KeyValueType award_item = 3;
repeated KeyValueType draw_rewar = 4; //key等级value按位取第一位表示普通奖励第二位表示高级奖励
repeated int32 lvs = 5;
}
/////////////////////////////////////////////////////////
message SCPayForGoodsNtf {
int32 goods_type = 1; //商店类型
int32 goods_id = 2; //商品ID
int32 goods_num = 3; //商品数量
repeated KeyValueType item_list = 4; //购买获得道具
uint64 cp_order_id = 5; //订单号
}
//测试发送所有玩家位置信息AOI
message SCGMSyncAllPlayerNtf{
repeated Player players = 1;
}
message SCWebGMNoticeNtf {
GMNoticeInfo notice_info = 1;
}
//客户端加速外挂
message CSAntiCheatReq { //project game //RouteRule game
int32 cheat_type = 1;
}
//
message SCAntiCheatAck {
int32 error = 1; //错误码
}
//问卷奖励获取
message CSQuestionRewardReq { //project game //RouteRule game
}
//问卷奖励获取 ack回应
message SCQuestionRewardAck {
int32 error = 1; //错误码
repeated KeyValueType reward_item_list = 2; //奖励物品
}
//当前累计在线奖励获取
message CSOnlineTimeRewardReq { //project game //RouteRule game
}
message SCOnlineTimeRewardAck {
int32 error = 1; //错误码
repeated KeyValueType reward_item_list = 2; //奖励物品
}
message SCOnlineTimeRewardNtf {
int32 total_online_time = 1; //当前累计在线时间(隔天重置)s
uint64 online_stamp = 2; //上线时的时间戳 ms
int32 online_reward_id = 3; //奖励id配置表中的唯一ID
}
///////////////////////信物相关///////////////////////
message CSOnlineGetKeepSakeReq { //project game //RouteRule game
}
message SCOnlineGetKeepSakeAck {
RoleKeepSake role_keep_sake = 1;
}
message CSKeepSakeRankReq{ //project game|rank //RouteRule game
int32 keep_sake_id = 1;
}
message SCKeepSakeRankAck{ //project game
int32 error = 1;
int32 keep_sake_id = 2;
CommonPlayerBriefInfo player_info = 3;
uint64 achievement_time = 4;
}
message CSKeepSakeLevelUpReq { //project game //RouteRule game
int32 keep_sake_id = 1;
}
message SCKeepSakeLevelUpAck {
int32 error = 1;
}
message SCKeepSakeChangeNtf {
KeepSake keep_sake = 1;
repeated KeyValueType materials = 2;
}
/////////////////////////////////////////////////////////跨服协议处理
/////////////////////////////////////////////////////////跨服远航试炼
message SCCrossYuanHangTrialDataNtf {
RoleYuanHangTrial yuanhangtrial_data = 1; //返回远航试炼数据(个人)
}
//刷新远航试炼品质
message CSCrossYuanHangTrialRefreshTrialTypeReq { //project game //RouteRule game
bool force = 1; //是否直接升级为顶级
bool watch_ad = 2; //看广告
}
message SCCrossYuanHangTrialRefreshTrialTypeAck {
int32 error = 1; //错误码
}
//发起远航试炼
message CSCrossYuanHangTrialReq { //project game //RouteRule game
}
message SCCrossYuanHangTrialAck {
int32 error = 1; //错误码
YuanHangTrialData trial_data = 2; //返回远航试炼数据(个人)
}
//获取远航试炼奖励(试炼结束奖励)
message CSCrossYuanHangTrialRewardReq { //project game //RouteRule game
}
message SCCrossYuanHangTrialRewardAck {
int32 error = 1; //错误码
repeated KeyValueType reward_list = 2; //奖励内容
}
//远航试炼挑战
message CSCrossYuanHangTrialChallengeReq { //project game //RouteRule game
uint64 challenge_uid = 1;
uint64 challenge_uid_end_time = 2;
}
message SCCrossYuanHangTrialChallengeAck {
int32 error = 1; //错误码
uint64 challenge_uid = 2;
uint64 challenge_uid_end_time = 3;
FightRoleInfo fight_info = 5; //被挑战玩家战斗数据
}
//挑战结果通知
message CSCrossYuanHangTrialChallengeResultReq { //project game //RouteRule game
uint64 challenge_uid = 1;
uint64 challenge_uid_end_time = 2;
int32 fight_time = 3; //战斗持续时间(判断合法性)
bool win = 4; //true胜利 false失败
}
message SCCrossYuanHangTrialChallengeResultAck {
int32 error = 1; //错误码
repeated KeyValueType reward_list = 2; //奖励内容
int32 old_score = 3; //获得的积分
int32 new_score = 4; //累加后的当前积分
}
//获取远航试炼排行榜
message CSCrossYuanHangTrialRankListReq { //project game //RouteRule game
int32 start_idx = 1;
}
message SCCrossYuanHangTrialRankListAck {
int32 error = 1; //错误码
int32 start_idx = 2;
uint32 self_rank = 3; //自身排名
uint64 self_score = 4; //自身积分
uint32 total_rank = 5; //当前参加排名的人数
repeated CommonRankInfo rank_list = 6;
}
//获取远航界面可视列表
//每次打开界面,或者隔一段时间发送一次,服务器会返回这段时间内变化的数据
message CSCrossYuanHangTrialViewListReq { //project game //RouteRule game
bool notify = 1; //true表示通知服务器需要更新false是正常的获取界面数据
}
message SCCrossYuanHangTrialViewListAck {
int32 error = 1; //错误码
repeated YuanHangTrialData trial_view_list = 2; //界面上可视列表
}
message CSCrossYuanHangTrialViewListOutReq { //project game //RouteRule game
}
message SCCrossYuanHangTrialViewListNtf {
repeated YuanHangTrialData trial_view_list = 1; //界面上可视列表
}
//查询飞艇信息
message CSCrossYuanHangTrialInfoReq { //project game //RouteRule game
uint64 trial_uid = 1;
uint64 trial_end_time = 2;
}
message SCCrossYuanHangTrialInfoAck {
int32 error = 1;
YuanHangTrialData trial_data = 2;
string nick_name = 3;
}
//日志获取
message CSCrossYuanHangTrialLogReq { //project game //RouteRule game
uint64 log_time = 1;
}
message SCCrossYuanHangTrialLogAck {
int32 error = 1; //错误码
repeated YuanHangTrialLogData log_list = 2; //挑战被挑战日志记录
bool is_end = 3;
}
////巅峰爬塔
//获取巅峰爬塔对战数据
//获取挑战列表
message CSCrossTopTowerFightListReq { //project game //RouteRule game
}
message SCCrossTopTowerFightListAck {
int32 error = 1; //错误码
RoleCrossTopTower toptower_data = 2; //变更层数数据(不一定是所有数据,切记!!!)
}
//发起挑战,判断合法性
message CSCrossTopTowerChallengeReq { //project game //RouteRule game
int32 fight_idx = 1; //挑战对手层数[1-10]
}
message SCCrossTopTowerChallengeAck {
int32 error = 1; //错误码
TopTowerFightRoleInfo fight_info = 2; //该位置玩家战斗信息
}
//获取挑战者view信息
message CSCrossTopTowerChallengeViewInfoReq { //project game //RouteRule game
int32 fight_idx = 1; //挑战对手层数[1-10]
}
message SCCrossTopTowerChallengeViewInfoAck {
int32 error = 1; //错误码
TopTowerFightRoleInfo fight_info = 2; //该位置玩家战斗信息
}
//战斗结果通知
message CSCrossTopTowerChallengeResultReq { //project game //RouteRule game
bool is_win = 1;
int32 fight_idx = 2; //挑战对手层数[1-10]
}
message SCCrossTopTowerChallengeResultAck {
int32 error = 1; //错误码
repeated KeyValueType reward_list = 2; //奖励内容
TopTowerFightRoleInfo fight_info = 3; //对应层数数据变更通知
}
//买路操作(直接胜利)
message CSCrossTopTowerForceWinReq { //project game //RouteRule game
int32 fight_idx = 1; //挑战对手层数[1-10]
}
message SCCrossTopTowerForceWinAck {
int32 error = 1; //错误码
repeated KeyValueType reward_list = 2; //奖励内容
TopTowerFightRoleInfo fight_info = 3; //对应层数数据变更通知
}
//获取买路排行榜
message CSCrossTopTowerForceWinRankListReq { //project game //RouteRule game
uint64 uid = 1;
int32 start_idx = 2;
}
message SCCrossTopTowerForceWinRankListAck {
int32 start_idx = 1;
uint32 self_rank = 2; //自身排名
uint64 self_score = 3; //自身积分
uint32 total_rank = 4; //当前参加排名的人数
repeated CommonRankInfo rank_list = 5;
}
////全局跨服功能
//获取服务器列表信息(状态)
//server_type (31教堂地图)
message CSGCrossGetServerStateReq { //project game //RouteRule game
int32 server_type = 1; //服务器类型id(node中的type)
}
message SCGCrossGetServerStateAck {
int32 error = 1; //错误码
int32 server_type = 2; //服务器类型id(node中的type)
repeated ServerStateInfo server_list = 3; //多个gcrossmap时就有多个
}
//角色进入地图
message CSGCrossPlayerEnterMapReq{ //project game //RouteRule game
int32 map_type = 1; //不同系统玩法
int32 line_num = 2; //选择的线路(1线 2线...)
Vector3 pos = 3;
Vector3 dir = 4;
}
message SCGCrossPlayerEnterMapAck{
int32 error = 1; //错误码
int32 line_num = 2;
UnitPosAndDir self_info = 3;
}
//离开地图
message CSGCrossPlayerLeaveMapReq { //project game //RouteRule game
Vector3 pos = 1; //玩家离开时的位置
}
//客户端1s内发送的位置同步包(视野同步)
message CSGCrossPlayerMapSyncPosReq { //project game //RouteRule game
Vector3 pos = 1; //位置
Vector3 dir = 2; //朝向
int32 cur_space_id = 3; //当前所在场景ID
int32 is_on_ground = 4; //是否在地面上
}
//位置同步消息(用来做视野同步)
message SCGCrossPlayerMapSyncPosNtf {
repeated UnitPosAndDir unit_info_list = 1;
}
//客户端模拟使用
message CSGCrossPlayerMapSyncParamReq { //project game //RouteRule game
Vector3 pos = 1; //位置
int32 param_id = 2; //通用参数标签
}
message SCGCrossPlayerMapSyncParamNtf{
repeated UnitPosAndDir unit_info_list = 1;
}
//通知玩家当前有其他玩家进入自己视野
message SCGCrossPlayerEnterNtf {
repeated UnitPosAndDir unit_info_list = 1;
}
message SCGCrossPlayerLeaveNtf {
repeated UnitPosAndDir unit_info_list = 1;
}
//获取其他玩家角色信息AOI地图显示使用(注意:每次发送不超过10个玩家超过10个后服务器不会返回,做保护处理)
message CSGCrossPlayerShowInfoReq { //project game //RouteRule game
repeated uint64 player_list = 1;//拉取角色信息列表
}
message SCGCrossPlayerShowInfoNtf{
repeated PlayerShowInfo show_info_list = 1; //玩家角色信息
}
/////////////////////////////////////////////////////////
//客户端打点信息上报
message ClientParamInfo {
string device_model = 1; //设备型号
int32 device_height = 2; //屏幕高度
int32 device_width = 3; //屏幕宽度
string os_name = 4; //操作系统
string os_ver = 5; //操作系统版本
string mac_addr = 6; //设备mac地址
string udid = 7; //设备唯一标示符
string isp = 8; //网络运营商
string network = 9; //网络连接
string app_channel = 10; //运营渠道
string app_ver = 11; //客户端版本号
string trans_id = 12; //transid
string unisdk_deviceid = 13; //unisdk_deviceid
int32 is_emulator = 14; //是否模拟
int32 is_root = 15; //是否root
string account_id = 16;
string old_accountid = 17;
string IMEI = 18; //移动设备国际识别码
string country_code = 19; //国家代码
string enter_sn = 20; //enter_sn
string oaid = 21; //设备OAID
string engine_ver = 22; //引擎版本
}
message CSClientParamNtf { //project game //RouteRule game
ClientParamInfo client_info = 1;
}
//获取英雄属性/宠物属性
message ActorAttrType {
bool is_hero_pet = 1; //true=hero false=pet
uint32 actor_id = 2; //生成的动态ID
repeated KeyValueFloat32 attr_list = 3;
}
message CSActorAttrGetReq { //project game //RouteRule game
bool is_all_battle = 1;
repeated ActorAttrType actor_list = 2; //结构中的attr_list不用
}
message SCActorAttrGetAck {
int32 error = 1;
repeated ActorAttrType actor_attr_list = 2;
}
message SCActorAttrGetNtf {
repeated ActorAttrType actor_attr_list = 1;
}
// 高级技能经验兑换
message CSConverSkillExpReq{ //project game //RouteRule game
int32 cnt = 1; // 兑换数量
}
message SCConverSkillExpAck{
int32 error = 1;
}
// 称号状态更新
message SCHeadUpdateNtf{
repeated HeadData head = 1;
}
// 称号操作
message CSHeadOperateReq{ //project game //RouteRule game
int32 operateType = 1; // 1.激活 2.佩戴 3.卸下
int32 headId = 2;
}
message SCHeadOperateAck{
int32 operateType = 1;
int32 headId = 2;
int32 error = 3;
}
// 请求称号
message CSHeadDataReq{ //project game //RouteRule game
}
message SCHeadDataAck{
}
// 使用许愿宝箱
message CSWishBoxUseReq{ //project game //RouteRule game
uint64 item_id = 1;
int32 select_item = 2;
}
message SCWishBoxUseAck{
int32 error = 1;
int32 index = 2; // 宝箱位置
}
// 解锁许愿宝箱槽位
message CSWishUnlockSlotReq { //project game //RouteRule game
}
message SCWishUnlockSlotAck {
int32 error = 1;
}
// 许愿箱加速 + 领奖
message CSWishSlotReq {//project game //RouteRule game
int32 index = 1;
bool watch_ad = 2;//看广告
}
message SCWishSlotReqAck {
serverproto.KeyValueType award_item = 1; // 许愿物品
serverproto.KeyValueType lucky_item = 2; // 暴击物品
int32 error = 3;
}
message SCUpdateWishSlotNtf{
repeated WishSlot slots = 1;
}
//上线合服通知
message SCCombineServerOnlineNtf {
int32 error = 1;
uint64 combine_time = 2; //毫秒//合服时间
}
// 合服公告内容请求
message CSCombineServerInfoReq { //project game //RouteRule game
}
message SCCombineServerInfoAck {
int32 error = 1;
uint64 combine_time = 2; //毫秒//合服时间
string notice = 3; //合服公告
}
message SCWatchADInfoNtf {
repeated KeyValueType watch_ad = 1; //观看广告记录Key枚举ID value观看次数
}
//功能开启
message SCBTFuncDisableFlagNtf {
repeated uint32 func_disable_flag = 1; //功能开启枚举(位上非0表示不开启) [1]1-32 [2]33-64
}
message CSGoogleCommentReq { //project game //RouteRule game
}
message SCGoogleCommentAck {
int32 error = 1;
}
//秒聚:请求信息
message CSMujoyGetReq { //project game //RouteRule game
}
message SCMujoyGetAck {
RoleMujoy mujoy = 1;
}
message SCMujoyNtf {
RoleMujoy mujoy = 1;
}
//妙聚:请求领取每日登录奖励
message CSMujoyLoginAwardReq { //project game //RouteRule game
bool use_item = 1;
}
message SCMujoyLoginAwardAck {
int32 error = 1;
bool use_item = 2;
int32 day_award_id = 3;
repeated KeyValueType reward_list = 4;
}
//妙聚:请求投掷骰子(默认会放弃当前暂存奖励)
message CSMujoyUseDiceReq { //project game //RouteRule game
}
message SCMujoyUseDiceAck {
int32 error = 1;
BigRichMan rich = 2;
}
//妙聚:看广告领取暂存奖励
message CSMujoyDiceAwardReq { //project game //RouteRule game
bool use_item = 1;
}
message SCMujoyDiceAwardAck {
int32 error = 1;
bool use_item = 2;
repeated KeyValueType reward_list = 3;
}
//妙聚:翻牌子
message CSMujoyFlipReq { //project game //RouteRule game
bool use_item = 1;
}
message SCMujoyFlipAck {
int32 error = 1;
bool use_item = 2;
int32 cfg_id = 3;
repeated KeyValueType reward_list = 4;
}
message CSCollectionRewardGetReq { //project game //RouteRule game
int32 type = 1;
}
message SCCollectionRewardGetAck {
int32 error = 1;
int32 type = 2;
repeated KeyValueType reward_list = 3;
}
message CSFundAwardOnekeyReq { //project game //RouteRule game
int32 activity_id = 1;
}
message SCFundAwardOnekeyAck {
int32 error = 1;
int32 activity_id = 2;
repeated KeyValueType reward_list = 3;
}
//请求获取活动排行榜信息
message CSGetCommonActivityRankReq { //project game|rank //RouteRule game
int32 activity_id = 1;
uint64 key = 2; //客户端可不填
uint64 score = 3; //客户端可不填
}
message SCGetCommonActivityRankAck { //project game
int32 error = 1;
int32 activity_id = 2;
int32 self_rank = 3; //自己的排名 0:表示未上榜
uint64 score = 4; //自己的积分
repeated CommonRankShapShotCli members = 5; //上榜玩家信息
}
//请求领取活动排行榜奖励
message CSGetPetRankAwardReq { //project game|rank //RouteRule game
int32 activity_id = 1;
uint64 uid = 2; //客户端不填
}
message SCGetPetRankAwardAck { //project game|rank //RouteRule game
int32 error = 1;
int32 activity_id = 2;
repeated KeyValueType reward_list = 3;
}
message CSLevelupSummonReq { //project game //RouteRule game
int32 group = 1;
int32 summon_count = 2; //抽取次数(单抽,连抽)
}
message SCLevelupSummonAck {
int32 error = 1; //错误码
repeated DrawItem item_list = 2; //抽取的奖励列表
int32 level = 3; //draw_type对应的抽取次数
int32 exp = 4; //增加的保底点数
int32 group = 5;
}
message SCLevelupSummonStartupNtf{
repeated LevelupSummonInfo info = 1;
}
message CSFruitJoinReq { //project game|fruit //RouteRule game
uint64 uid = 1;
int32 room_no = 2;
int32 chip_num = 3;
string nickname = 4;
int32 level = 5;
string head_id = 6;
}
message SCFruitJoinAck { //project game|fruit //RouteRule game
uint64 uid = 1;
int32 error = 2;
int32 stage = 3; //水果机状态1-是押注阶段2-开奖阶段
int32 sec = 4; //时间秒
int32 my_chip_num = 5; //玩家筹码
int32 pool_chip_num = 6; //奖池
repeated FruitSlotInfo total_bet_info = 7; //总的押注信息
repeated FruitSlotInfo my_bet_info = 8; //当前玩家的押注信息
repeated int32 settle_history = 9; //开奖历史记录
repeated int32 curr_award_slots = 10; //上次开奖结果
int32 curr_target_slot = 11; // 上次开奖slot
repeated FruitPlayerAwardInfo player_award_rank = 12;
}
message CSFruitLeaveReq { //project game|fruit //RouteRule game
uint64 uid = 1;
int32 room_no = 2;
}
message SCFruitLeaveAck { //project game|fruit //RouteRule game
uint64 uid = 1;
int32 error = 2;
}
message CSFruitBetReq { //project game|fruit //RouteRule game
uint64 uid = 1;
repeated FruitSlotInfo bet_info = 2;
}
message SCFruitBetAck { //project game|fruit //RouteRule game
uint64 uid = 1;
int32 error = 2;
int32 my_chip_num = 3; //玩家筹码
uint32 pool_chip_num = 4; //奖池
repeated FruitSlotInfo total_bet_info = 5; //总的押注信息
repeated FruitSlotInfo my_bet_info = 6; //当前玩家的押注信息
}
message SCFruitSettleNtf { //project game|fruit //RouteRule game
uint64 uid = 1;
int32 my_chip_num = 2; //玩家筹码
int32 award_type = 3;
int32 award_chip_num = 4;
repeated int32 award_slots = 5;
repeated FruitSlotInfo award_chip_info = 6;
repeated int32 settle_history = 7; //开奖历史记录
int32 start_slot = 8;
int32 target_slot = 9;
uint32 add_reward_point = 10; // 奖励在线点数
}
message SCFruitStartBetNtf { //project game|fruit //RouteRule game
uint64 uid = 1;
}
message SCFruitSecTickNtf { //project game|fruit //RouteRule game
uint64 uid = 1;
int32 sec = 2;
uint32 pool_chip_num = 3;
repeated FruitSlotInfo total_bet_info = 4;
}
message SCFruitPlayerAwardRankNtf { //project game|fruit //RouteRule game
uint64 uid = 1;
int32 award_type = 2;
repeated FruitPlayerAwardInfo player_award_rank = 3;
}
message CSFruitChatReq { //project game|fruit //RouteRule game
uint64 uid = 1;
string chat_content = 2;
}
message SCFruitChatNtf { //project game|fruit //RouteRule game
uint64 SN = 1;
uint64 uid = 2;
string nickname = 3;
int32 level = 4;
string head_id = 5;
string chat_content = 6;
}
message CSLiveRoomJoinReq { //project game|fruit //RouteRule game
uint64 uid = 1;
uint32 room_type = 2;
uint32 coin_num = 3;
uint32 game_chip_num = 4;
LiveRoomPlayerInfo player_info = 5;
}
message SCLiveRoomJoinAck { //project game|fruit //RouteRule game
uint64 uid = 1;
int32 error = 2;
uint32 room_type = 3;
uint32 room_id = 4;
int64 heart = 5;
uint32 stage = 6;
uint32 stage_timer_sec = 7;
uint32 stage_sec = 8;
bool is_ready = 9;
repeated LiveRoomPlayerInfo gift_records = 10;
repeated LiveRoomChatData chat_datas = 11;
repeated LiveRoomPlayerInfo ready_player_info_list = 12;
}
message CSLiveRoomLeaveReq { //project game|fruit //RouteRule game
uint64 uid = 1;
uint32 room_id = 2;
}
message SCLiveRoomLeaveAck { //project game|fruit //RouteRule game
uint64 uid = 1;
int32 error = 2;
uint32 room_id = 3;
}
message CSLiveRoomChatReq { //project game|fruit //RouteRule game
uint64 uid = 1;
uint32 room_id = 2;
string chat_content = 3;
}
message SCLiveRoomChatNtf { //project game|fruit //RouteRule game
uint64 uid = 1;
uint32 room_id = 2;
LiveRoomChatData chat_data = 3;
}
message SCLiveRoomTimerNtf { //project game|fruit //RouteRule game
uint64 uid = 1;
uint32 room_id = 2;
uint32 stage = 3;
uint32 timer_sec = 4;
}
message CSLiveRoomSendGiftReq { //project game|fruit //RouteRule game
uint64 uid = 1;
uint32 room_id = 2;
uint32 gift_id = 3;
}
message SCLiveRoomSendGiftAck { //project game|fruit //RouteRule game
uint64 uid = 1;
int32 error = 2;
uint32 room_id = 3;
uint32 gift_id = 4;
}
message SCLiveRoomSendGiftNtf { //project game|fruit //RouteRule game
uint64 uid = 1;
uint32 room_id = 2;
LiveRoomPlayerInfo send_gift_info = 3;
}
message CSLiveRoomAddHeartReq { //project game|fruit //RouteRule game
uint64 uid = 1;
uint32 room_id = 2;
}
message SCLiveRoomAddHeartAck { //project game|fruit //RouteRule game
uint64 uid = 1;
uint32 room_id = 2;
int64 heart = 3;
}
message CSLiveRoomGiftRankReq { //project game|fruit //RouteRule game
uint64 uid = 1;
uint32 room_id = 2;
}
message SCLiveRoomGiftRankAck { //project game|fruit //RouteRule game
uint64 uid = 1;
uint32 room_id = 2;
repeated LiveRoomPlayerInfo gift_rank = 3;
}
message SCLiveRoomCMDTalkNtf { //project game|fruit //RouteRule game
uint64 uid = 1;
uint32 room_id = 2;
uint32 talk_id = 3;
string talk_params = 4;
}
message SCLiveRoomCMDPlayNtf { //project game|fruit //RouteRule game
uint64 uid = 1;
uint32 room_id = 2;
repeated KeyValueType64 play_data_list = 3;
}
message SCLiveRoomStageNtf { //project game|fruit //RouteRule game
uint64 uid = 1;
uint32 room_id = 2;
uint32 stage = 3;
uint32 stage_timer_sec = 4;
string stage_params = 5;
}
message CSLiveRoomGetReadyReq { //project game|fruit //RouteRule game
uint64 uid = 1;
uint32 room_id = 2;
}
message SCLiveRoomGetReadyAck { //project game|fruit //RouteRule game
uint64 uid = 1;
int32 error = 2;
bool is_ready = 3;
}
message SCLiveRoomGetReadyNtf { //project game|fruit //RouteRule game
uint64 uid = 1;
uint32 room_id = 2;
repeated LiveRoomPlayerInfo ready_player_info_list = 3;
}
message SCLiveRoomShowDataNtf { //project game|fruit //RouteRule game
uint64 uid = 1;
uint32 room_id = 2;
repeated KeyValueType64 show_data_list = 3;
}
message CSLiveRoomShowSubmitReq { //project game|fruit //RouteRule game
uint64 uid = 1;
uint32 room_id = 2;
repeated KeyValueType64 submit_data = 3;
}
message SCLiveRoomShowSubmitAck { //project game|fruit //RouteRule game
uint64 uid = 1;
int32 error = 2;
repeated KeyValueType64 submit_result = 3;
}
message SCLiveRoomResultNtf { //project game|fruit //RouteRule game
uint64 uid = 1;
uint32 room_id = 2;
repeated LiveRoomPlayerInfo player_result_list = 3;
repeated KeyValueType64 player_reward_list = 4;
}