From 1433a914da91bbed8e18badb439aaac3762bb0a5 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Mon, 15 Aug 2022 11:16:25 +0800 Subject: [PATCH] 1 --- server/tools/protobuild/cs_proto.proto | 202 +++++++++++++++++++++++-- 1 file changed, 187 insertions(+), 15 deletions(-) diff --git a/server/tools/protobuild/cs_proto.proto b/server/tools/protobuild/cs_proto.proto index e90034a6..4a1caba7 100755 --- a/server/tools/protobuild/cs_proto.proto +++ b/server/tools/protobuild/cs_proto.proto @@ -50,7 +50,7 @@ package cs; //常量 enum Constant_e { - ProtoVersion = 2021073001; //系统版本 + ProtoVersion = 2022032201; //系统版本 } //心跳 @@ -143,6 +143,12 @@ message MFVec2 valule: 百分比绝对值 property_type: 30 跟随目标id valule: 目标id + property_type: 31 下潜后氧气 + property_subtype: 总量 + valule: 当前量 + property_type: 32 更新技能经验(需要容错,skill_id可能在本地找不到) + property_subtype: skill_id + valule: 经验 */ message MFPropertyChg { @@ -194,7 +200,9 @@ message MFWeapon { optional int32 weapon_id = 1; //武器id 当weapon_id == 0时表示无装备(装备位置显示空) optional int32 weapon_lv = 2; //武器等级 + optional string weapon_uniid = 3; //武器唯一id optional int32 ammo = 4; //弹药数 + optional int32 volume = 5; //弹夹容量 } //皮肤 @@ -262,7 +270,7 @@ message MFPlayerFull optional int32 killer_id = 33; //杀手id(自杀时为自己) 特殊id: -1:倒在安全区 optional int32 vip_lv = 35 [default = 0]; //vip等级 - optional int32 head = 36 [default = 0]; //头像框 + optional int32 head_frame = 36 [default = 0]; //头像框 optional int32 sex = 37 [default = 0]; //性别 repeated MFSkill skill_list = 38; //技能列表 @@ -293,7 +301,9 @@ message MFObstacleFull optional int32 obj_uniid = 1; //唯一id optional MFVec2 pos = 2; //位置 optional float scale = 3; //缩放比 - optional float rotate = 4; //旋转 + optional float rotate = 5; //旋转 + //出生帧号 born_frameno == SMUpdate.frmanoe时表示在当前这帧出生(可能出现为0的情况比如静态物件) + optional int32 born_frameno = 4 [default = 0]; optional int32 obstacle_id = 6; //阻挡物id optional float health = 7; //血量 @@ -594,6 +604,9 @@ message MFActivePlayerData optional float shoot_offset_x = 50 [default = 0]; //射击偏移量-x optional float shoot_offset_y = 51 [default = 0]; //射击偏移量-y + + optional int32 dive_oxygen_max = 63; //下潜时氧气总量 + optional int32 dive_oxygen_curr = 64; //下潜时氧气当前量 } //毒圈数据 @@ -638,8 +651,9 @@ message MFTeamData optional int64 user_value3 = 33; //对应好友系统的user_value3 optional int64 guild_id = 34; //公会id optional int32 vip_lv = 35 [default = 0]; //等级 - optional int32 head = 36 [default = 0]; //头像框 + optional int32 head_frame = 36 [default = 0]; //头像框 optional int32 sex = 37 [default = 0]; //性别 + repeated MFSkin skin = 39; //皮肤id } //子弹 @@ -695,6 +709,28 @@ message MFEmote optional string msg = 5; } +//英雄结算信息 +message MFHeroStats +{ + optional string hero_uniid = 1 [default = ""]; //英雄唯一id + optional string hero_name = 2 [default = ""]; //英雄名称 + optional int32 hero_id = 3 [default = 0]; //英雄唯id + optional int32 reward_ceg = 4 [default = 0]; //英雄获得的ceg数量 + optional int32 ceg_uplimit = 5 [default = 0]; //英雄获得的ceg数量上限 + optional int32 today_get_ceg = 6 [default = 0]; //英雄今天获得的ceg数量 +} + +//武器结算信息 +message MFWeaponStats +{ + optional string weapon_uniid = 1 [default = ""]; //武器唯一id + optional string weapon_name = 2 [default = ""]; //武器名称 + optional int32 weapon_id = 3 [default = 0]; //武器唯id + optional int32 reward_ceg = 4 [default = 0]; //武器获得的ceg数量 + optional int32 ceg_uplimit = 5 [default = 0]; //武器获得的ceg数量上限 + optional int32 today_get_ceg = 6 [default = 0]; //武器今天获得的ceg数量 +} + //游戏结束时玩家统计信息 message MFPlayerStats { @@ -732,13 +768,16 @@ message MFPlayerStats optional int32 rescue_guild_member = 23; //救起公会成员次数 optional int32 vip_lv = 35 [default = 0]; //等级 - optional int32 head = 36 [default = 0]; //头像框 + optional int32 head_frame = 36 [default = 0]; //头像框 optional int32 sex = 37 [default = 0]; //性别 optional int32 charid = 38; //人物id optional int32 team_id = 39; //tamid optional string nickname = 43; //昵称 repeated MFSkin skin = 45; //皮肤id + + optional MFHeroStats hero_stats = 46; //英雄结算信息 + repeated MFWeaponStats weapons_stats = 47; //武器结算信息 } //空投 @@ -840,12 +879,14 @@ message MFSkill optional int32 cd_time = 3; //技能cd时间(总时间) optional int32 curr_times = 4; //当前可用次数 optional int32 max_times = 5; //次数上限 - /* + optional int32 exp = 7; //当前经验 + optional int32 max_exp = 8; //经验上限(当满级以后exp=0 max_exp=0) + /* 副状态:当有副状态的时候客户端优先显示副状态 */ - optional int32 minor_type = 6 [default = 0]; // 1: 闪烁 - optional int32 minor_left_time = 7 [default = 0]; // 副状态cd时间(剩余时间) - optional int32 minor_cd_time = 8 [default = 0]; // 副状态cd时间(总时间) + optional int32 minor_type = 9 [default = 0]; // 1: 闪烁 + optional int32 minor_left_time = 10 [default = 0]; // 副状态cd时间(剩余时间) + optional int32 minor_cd_time = 11 [default = 0]; // 副状态cd时间(总时间) } message MFPlaySkill @@ -873,6 +914,48 @@ message MFRichTextElement optional MFImageElement union_obj_2 = 3; //图片元素 } +message MFMatchTeamMember +{ + optional string account_id = 1; //账号id account_id + optional string name = 2; //角色名 + optional string avatar_url = 3; //头像 + optional int32 hero_id = 4; //英雄id + repeated MFWeapon weapons = 5; //武器列表 + repeated MFSkin skins = 6; //皮肤列表 key: 皮肤id value:皮肤等级 + repeated MFPair skill_list = 7; //技能列表 key:技能id value:预留给之后扩展,目前传0就行 + optional bool is_leader = 8; //是否队长 + optional int32 state = 9; //0:准备 1:已准备 + optional int32 head_frame = 10; //头像框 + repeated int32 baseskin = 11; //皮肤id + optional int32 hero_skin = 12; //英雄皮肤 +} + +//该消息每秒同步 +message MFMatchInfo +{ + repeated MFMatchTeamMember members = 1; //成员列表 + optional int32 phase = 2; //阶段 1:合并队伍(匹配中) 2:选择角色 3:锁定(已准备) + optional int32 countdown = 3; //倒计时(单位秒) + optional int32 predict_time = 4; //预计时间(单位秒) +} + +//结算奖励项 +message MFOverRewardItem +{ + optional int32 obtain_gold = 1; //实际获得金币数 + optional int32 gold_limit = 2; //今天可获得的金币上限 +} + +//结算奖励 +message MFOverReward +{ + optional MFOverRewardItem hero = 1; //英雄 + optional MFOverRewardItem weapon1 = 2; //武器1 + optional MFOverRewardItem weapon2 = 3; //武器2 + optional int32 bounds = 4; + optional int32 total = 5; //总数 +} + //end mfmsg //加入 @@ -912,15 +995,28 @@ message CMJoin optional int64 user_value3 = 33; //对应好友系统的user_value3 optional int64 guild_id = 34; //公会id optional int32 vip_lv = 35 [default = 0]; //等级 - optional int32 head = 36 [default = 0]; //头像框 + optional int32 head_frame = 36 [default = 0]; //头像框 optional int32 sex = 37 [default = 0]; //性别 optional bool force_entry_newbie_room = 50; //是否强制进新手房 repeated MFTeamMember team_members = 51; //包括自己 - optional int32 room_mode = 52; //0:吃鸡模式 1:僵尸模式 + optional int32 room_mode = 52; //0:吃鸡模式 1:匹配赛模式 optional int32 mapid = 53; //地图id 0:随机地图 repeated MFPair skill_list = 54; //技能列表 key:技能id value:预留给之后扩展,目前传0就行 optional string user_data = 60 [default = ""]; //用户自定义数据 optional int32 hero_id = 61; //英雄id + repeated MFPair talent_list = 64; //天赋列表 key:天赋id value:天赋等级 + /* + 是否显示队伍界面(回传getSwitch返回的结果) + 1:显示队伍界面 + 注意!!!就算客户端传了show_team_ui=1服务器也会根据一下条件满足才会走新逻辑,客户端也应在本地做一下判断 + show_team_ui() && team_mode() == 1 && auto_fill() && team_members().size() < 4 + 当服务器判断确实需要显示组队UI时回复SMShowTeamUI,否则正常进游戏 + */ + optional int32 show_team_ui = 62; + optional int32 hero_skin = 63; //英雄皮肤 + optional string pre_battle_payload = 70; //透传api战前校验信息 + + optional string hero_uniid = 71; //英雄唯一id } //断线重连 @@ -987,6 +1083,8 @@ message CMMove optional int32 switch_seat = 37; //切换座位 optional int32 follow = 38; //跟随0:取消跟随 其他:玩家uniid + + optional int32 dive = 39; //下潜 } //执行GM指令 @@ -1071,6 +1169,49 @@ message CMOpenBox optional int32 box_id = 1; //1: 战前宝箱 } +//组队匹配-取消 +message CMMatchCancel +{ +} + +//组队匹配-选取英雄 +message CMMatchChoose +{ + optional int32 hero_id = 1; //英雄id + repeated MFWeapon weapons = 2; //武器列表 + repeated MFSkin skins = 3; //皮肤列表 key: 皮肤id value:皮肤等级 + repeated MFPair skill_list = 4; //技能列表 key:技能id value:预留给之后扩展,目前传0就行 + repeated int32 baseskin = 5; //皮肤id + optional int32 hero_skin = 6; //头像框 + optional string hero_uniid = 7; //英雄唯一id +} + +//组队匹配-出击 +message CMMatchStartGame +{ +} + +//组队匹配-出击 +message CMMatchCancelStartGame +{ +} + +//组队匹配-指定成员发送消息 +message CMMatchSendMsg +{ + //成员将收到SMMatchMemberMsgNotify消息 + repeated string target_list = 1; //目标列表,目标收到SMMatchMemberMsgNotify消息 + optional string content = 2; //消息内容 +} + +//组队匹配-队伍内广播消息 +message CMMatchBroadcastMsg +{ + //成员将收到SMMatchMemberMsgNotify消息 + optional int32 exclude_self = 1; //include_self!=0时排除自己 + optional string content = 2; //消息内容 +} + //endcmmsg //观战error_code == 0 时关闭结算界面,回到战斗界面 @@ -1085,17 +1226,18 @@ message SMWatchWar message SMJoinedNotify { optional int32 team_mode = 1; //队伍模式 0:单人 1:多人 - optional int32 player_id = 2; //玩家id(自己) - optional bool started = 3; //游戏是否已开始 - optional string room_uuid = 4; //房间唯一id + optional int32 player_id = 2; //玩家id(自己) 已经废弃移动到SMMapInfo + optional bool started = 3; //游戏是否已开始 已经废弃移动到SMMapInfo + optional string room_uuid = 4; //房间唯一id 已经废弃移动到SMMapInfo optional int32 map_type = 5; //目前没用到 optional bool elo_start = 6; //目前没用到 optional int32 error_code = 7; //错误 1:服务器维护中 2:服务器繁忙请稍后再进入 + optional int32 error_msg = 10; //错误描述 optional int32 room_mode = 8; //0:吃鸡模式 1:僵尸模式 - optional string server_info = 9; //服务器信息(重连时使用) + optional string server_info = 9; //服务器信息(重连时使用) 已经废弃移动到SMMapInfo } //地图信息 @@ -1105,6 +1247,10 @@ message SMMapInfo optional float map_width = 2; //地图宽度 optional float map_height = 3; //地图高度 repeated MFMapObject objects = 6; //地图对象 + optional int32 player_id = 7; //玩家id(自己) + optional bool started = 8; //游戏是否已开始 + optional string room_uuid = 9; //房间唯一id + optional string server_info = 10; //服务器信息(重连时使用) } //玩家信息 @@ -1175,6 +1321,8 @@ message SMGameOver optional string room_uuid = 7; //房间唯一id repeated MFTeamData team_data = 10; //队伍数据 repeated MFTuple spoils_items = 11; //战利品 0: 道具id 1:道具数量 + + optional MFOverReward reward = 14; //结算奖励 } //离开 @@ -1258,3 +1406,27 @@ message SMShowCountdown optional int32 countdown = 2; //倒计时(单位秒),倒计时用来替换msg里的%d标识 optional int32 msg_type = 3; //保留字段 } + +//显示匹配队伍ui +message SMShowTeamUI +{ +} + +//更新匹配信息 +message SMUpdateMatchInfo +{ + optional MFMatchInfo info = 1; //匹配信息 +} + +//匹配-队伍成员消息 +message SMMatchMemberMsgNotify +{ + optional string sender = 1; //消息发送者 + optional string content = 2; //消息内容 +} + +//获得物品 +message SMGetItemNotify +{ + repeated MFPair items = 8; //key:道具id value:数量 +} \ No newline at end of file