package cs; enum Constant_e { ProtoVersion = 2022032201; } message CMPing { } message SMPing { optional int32 param1 = 1; } message SMRpcError { optional int32 error_code = 1; optional string error_msg = 2; optional string debug_msg = 3; optional string file = 4; optional int32 lineno = 5; optional int32 error_param = 6; } message MFPair { optional int32 key = 1; optional int32 value = 2; } message MFPair64 { optional int64 key = 1; optional int64 value = 2; } message MFTuple { repeated int32 values = 1; } message MFVec2 { optional float x = 1; optional float y = 2; } message MFPropertyChg { optional int32 obj_id = 1; optional int32 property_type = 2; optional int32 property_subtype = 3; optional float value = 4; } message MFCollider { optional int32 shape = 1; optional int32 width = 2; optional int32 height = 3; } message MFMapObject { optional int32 object_id = 1; optional MFVec2 pos = 2; } message MFPlayerInfo { optional int32 player_id = 1; optional int32 team_id = 2; optional string name = 3; } message MFGoods { optional string name = 1; optional int32 num = 2; } message MFPlug { optional string name = 1; optional int32 id = 2; optional int32 param = 3; } message MFWeapon { optional int32 weapon_id = 1; optional int32 weapon_lv = 2; optional string weapon_uniid = 3; optional int32 ammo = 4; optional int32 volume = 5; } message MFSkin { optional int32 skin_id = 1; optional int32 skin_lv = 2; } message MFPlayerPart { optional int32 obj_uniid = 1; optional MFVec2 pos = 2; optional MFVec2 dir = 3; optional float speed = 4; } message MFAttrAddition { optional int32 attr_id = 1; optional float abs_val = 2; optional float rate_val = 3; } message MFPlayerFull { optional int32 obj_uniid = 1; optional MFVec2 pos = 2; optional MFVec2 dir = 3; optional int64 guild_id = 4; optional float max_health = 5; optional float health = 6; optional bool dead = 7; optional bool downed = 8; optional bool disconnected = 9; optional int32 anim_type = 10; optional int32 anim_seq = 11; repeated MFSkin skin = 13; optional int32 backpack = 14; optional int32 helmet = 16; optional int32 chest = 17; optional MFWeapon weapon = 18; optional int32 energy_shield = 19; optional int32 vip = 20; optional int32 sdmg = 21; optional int32 max_energy_shield = 22; repeated MFBodyState states = 23; optional int32 kill_count = 24; optional int32 emoji1 = 25; optional int32 emoji2 = 26; optional int32 parachute = 27; repeated MFBuff buff_list = 28; optional int32 car_uniid = 29; optional int32 car_seat = 34; optional bool can_revive = 30; optional int32 revive_countdown = 31; optional string killer_name = 32; optional int32 killer_id = 33; optional int32 vip_lv = 35 [default = 0]; optional int32 head_frame = 36 [default = 0]; optional int32 sex = 37 [default = 0]; repeated MFSkill skill_list = 38; repeated MFAttrAddition attr_addition= 61; optional int32 follow_target = 62 [default = 0]; optional int32 charid = 44; optional float speed = 45; optional float shoot_offset_x = 50 [default = 0]; optional float shoot_offset_y = 51 [default = 0]; optional string user_data = 60 [default = ""]; } message MFObstaclePart { optional int32 obj_uniid = 1; optional MFVec2 pos = 2; optional float scale = 3; } message MFObstacleFull { optional int32 obj_uniid = 1; optional MFVec2 pos = 2; optional float scale = 3; optional int32 born_frameno = 4 [default = 0]; optional int32 obstacle_id = 6; optional float health = 7; optional bool dead = 8; optional bool dead_at_thisframe = 9; optional bool is_door = 20; optional int32 door_id = 22; optional int32 door_old_state = 23; optional int32 door_new_state = 24; optional int32 door_house_uniid = 25; optional int32 door_house_id = 26; optional float door_width = 27; optional float door_height = 28; optional int32 door_open_times = 29; optional string button_name = 30; optional MFCollider collider = 31; } message MFBuildingPart { optional int32 obj_uniid = 1; optional MFVec2 pos = 2; } message MFBuildingFull { optional int32 obj_uniid = 1; optional MFVec2 pos = 2; optional int32 building_id = 3; optional bool ceiling_dead = 6; } message MFLootSpawnerPart { optional int32 obj_uniid = 1; optional MFVec2 pos = 2; optional int32 loot_id = 3; } message MFLootSpawnerFull { optional int32 obj_uniid = 1; optional MFVec2 pos = 2; optional int32 loot_id = 3; } message MFLootPart { optional int32 obj_uniid = 1; optional MFVec2 pos = 2; } message MFLootFull { optional int32 obj_uniid = 1; optional MFVec2 pos = 2; optional MFVec2 born_pos = 3; optional bool show_anim = 4; optional int32 item_id = 6; optional int32 count = 7; optional int32 age_ms = 8; optional int32 item_level = 9 [default = 1]; } message MFDeadBodyPart { optional int32 obj_uniid = 1; optional MFVec2 pos = 2; } message MFDeadBodyFull { optional int32 obj_uniid = 1; optional MFVec2 pos = 2; optional int32 player_id = 3; optional int32 inkjet = 6; } message MFDecalPart { optional int32 obj_uniid = 1; optional MFVec2 pos = 2; optional int32 decal_id = 3; } message MFDecalFull { optional int32 obj_uniid = 1; optional MFVec2 pos = 2; optional int32 decal_id = 3; } message MFProjectilePart { optional int32 obj_uniid = 1; optional MFVec2 pos = 2; optional float pos_z = 3; } message MFProjectileFull { optional int32 obj_uniid = 1; optional MFVec2 pos = 2; optional float pos_z = 3; } message MFHeroPart { optional int32 obj_uniid = 1; optional MFVec2 pos = 2; optional MFVec2 dir = 3; } message MFHeroFull { optional int32 obj_uniid = 1; optional MFVec2 pos = 2; optional MFVec2 dir = 3; optional int32 heroid = 4; optional int32 master_uniid = 5; optional float health = 10; optional bool dead = 11; repeated MFBuff buff_list = 12; optional float max_health = 13; } message MFSmokePart { optional int32 obj_uniid = 1; optional MFVec2 pos = 2; optional float rad = 3; } message MFSmokeFull { optional int32 obj_uniid = 1; optional MFVec2 pos = 2; optional float rad = 3; } message MFCarPart { optional int32 obj_uniid = 1; optional MFVec2 pos = 2; optional MFVec2 dir = 3; } message MFCarFull { optional int32 obj_uniid = 1; optional MFVec2 pos = 2; optional MFVec2 dir = 3; optional int32 car_id = 4; optional int32 driver = 5; optional int32 heroid = 7; optional float health = 10; optional bool dead = 11; repeated MFBuff buff_list = 12; optional float max_health = 13; optional int32 oil = 14; optional int32 max_oil = 15; optional int32 bullet_num = 16; repeated MFPlayerFull passengers = 6; optional int32 seat_num = 17; optional int32 born_frameno = 8; } message MFObjectPart { optional int32 object_type = 1; optional MFPlayerPart union_obj_1 = 2; optional MFObstaclePart union_obj_2 = 3; optional MFBuildingPart union_obj_3 = 4; optional MFLootSpawnerPart union_obj_4 = 5; optional MFLootPart union_obj_5 = 6; optional MFDeadBodyPart union_obj_6 = 7; optional MFDecalPart union_obj_7 = 8; optional MFProjectilePart union_obj_8 = 9; optional MFSmokePart union_obj_9 = 10; optional MFHeroPart union_obj_10 = 11; optional MFCarPart union_obj_11 = 12; } message MFObjectFull { optional int32 object_type = 1; optional MFPlayerFull union_obj_1 = 2; optional MFObstacleFull union_obj_2 = 3; optional MFBuildingFull union_obj_3 = 4; optional MFLootSpawnerFull union_obj_4 = 5; optional MFLootFull union_obj_5 = 6; optional MFDeadBodyFull union_obj_6 = 7; optional MFDecalFull union_obj_7 = 8; optional MFProjectileFull union_obj_8 = 9; optional MFSmokeFull union_obj_9 = 10; optional MFHeroFull union_obj_10 = 11; optional MFCarFull union_obj_11 = 12; optional int32 obj_uniid = 14; optional int32 object_flags = 15; } message MFActivePlayerData { optional int32 action_type = 3; optional int32 action_duration = 5; optional int32 action_item_id = 6; optional int32 action_target_id = 7; optional int32 action_frameno = 1; repeated MFPair items = 8; repeated MFSkin skin = 30; optional int32 backpack = 31; optional int32 helmet = 32; optional int32 chest = 33; optional float max_health = 34; optional float health = 35; optional int32 cur_scope = 10; repeated int32 inventory = 11; optional int32 cur_weapon_idx = 15; repeated MFWeapon weapons = 16; optional int32 energy_shield = 40; optional int32 max_energy_shield = 41; optional int32 spectator_count = 20; repeated MFBodyState states = 27; repeated MFSkill skill_list = 28; repeated MFAttrAddition attr_addition= 61; optional string name = 62; optional float shoot_offset_x = 50 [default = 0]; optional float shoot_offset_y = 51 [default = 0]; optional int32 dive_oxygen_max = 63; optional int32 dive_oxygen_curr = 64; } message MFGasData { optional int32 mode = 1; optional float duration = 2; optional MFVec2 pos_old = 3; optional MFVec2 pos_new = 4; optional float rad_old = 5; optional float rad_new = 6; } message MFTeamData { optional int32 team_id = 61; optional int32 player_id = 1; optional MFVec2 pos = 2; optional MFVec2 dir = 3; optional float health = 4; optional bool disconnected = 5 [default = false]; optional bool dead = 6 [default = false]; optional bool downed = 7 [default = false]; optional string name = 8; optional float max_health = 9; optional bool riding = 40 [default = false]; optional string user_data = 60 [default = ""]; optional int32 can_follow = 62 [default = 0]; optional string account_id = 10; optional string avatar_url = 11; optional int64 user_value1 = 31; optional int64 user_value2 = 32; optional int64 user_value3 = 33; optional int64 guild_id = 34; optional int32 vip_lv = 35 [default = 0]; optional int32 head_frame = 36 [default = 0]; optional int32 sex = 37 [default = 0]; repeated MFSkin skin = 39; } message MFBullet { optional int32 player_id = 1; optional int32 bullet_id = 2; optional MFVec2 pos = 3; optional MFVec2 dir = 4; optional int32 gun_lv = 5; optional int32 bulletskin = 6; optional bool crit = 7; optional int32 reflect_count = 8; optional int32 reflect_objid = 9; optional int32 gun_id = 10; optional float fly_distance = 11; optional int32 bullet_uniid = 12; } message MFShot { optional int32 player_id = 1; optional MFWeapon weapon = 2; optional bool offhand = 3; optional int32 bullskin = 4; optional int32 hole = 5 [default = 0]; } message MFExplosion { optional int32 item_id = 1; optional MFVec2 pos = 2; optional int32 player_id = 3; optional int32 effect = 4 [default = 0]; } message MFSmoke { optional int32 item_id = 1; optional MFVec2 pos = 2; optional int32 player_id = 4; optional float time_addition = 5; } message MFEmote { optional int32 emote_id = 1; optional int32 player_id = 3; optional string msg = 5; } message MFPlayerStats { optional int32 player_id = 1; optional string player_avatar_url = 2; optional int32 time_alive = 3; optional int32 kills = 4; optional int32 damage_amount = 8; optional int32 heal_amount = 20; optional int32 history_time_alive = 30; optional int32 history_kills = 31; optional int32 history_damage_amount = 32; optional int32 history_heal_amount = 33; optional int32 gold = 10; optional int32 score = 11; repeated MFPair items = 6; optional int32 pass_score = 9; optional int32 rank_score = 13; optional bool has_pass = 27; repeated MFPair extra_drop = 12; optional bool dead = 5; optional int32 killer_id = 7; optional string killer_name = 40; optional string killer_avatar_url = 41; optional string killer_account_id = 42; optional string account_id = 21; optional int64 guild_id = 22; optional int32 rescue_guild_member = 23; optional int32 vip_lv = 35 [default = 0]; optional int32 head_frame = 36 [default = 0]; optional int32 sex = 37 [default = 0]; optional int32 charid = 38; optional int32 team_id = 39; optional string nickname = 43; repeated MFSkin skin = 45; } message MFAirDrop { optional int32 appear_time = 1; optional int32 box_id = 2; optional MFVec2 pos = 3; } message MFAirRaid { optional int32 appear_time = 1; optional MFVec2 pos = 3; optional float rad = 4; } message MFBuff { optional int32 buff_id = 1; optional float left_time = 2; optional float lasting_time = 3; repeated float params = 4; optional int32 buff_uniid = 5; } message MFBuffChg { optional int32 obj_id = 1; optional int32 chg = 2; optional MFBuff buff = 3; } message MFBodyState { optional int32 state_type = 1; optional float left_time = 2; optional float lasting_time = 3; } message MFPlane { optional MFVec2 start_point = 1; optional MFVec2 end_point = 2; optional MFVec2 pos = 3; } message MFMapCarInfo { optional int32 car_id = 1; optional MFVec2 pos = 2; } message MFTeamMember { optional string account_id = 1; optional int32 rank = 2; optional bool is_leader = 3; optional int32 game_times = 4; optional int32 win_times = 5; optional int32 kill_times = 6; optional int32 create_time = 7; } message MFPosition { optional int32 obj_uniid = 1; optional MFVec2 pos = 2; optional MFVec2 dir = 3; optional int32 race = 4; } message MFSkill { optional int32 skill_id = 1; optional int32 left_time = 2; optional int32 cd_time = 3; optional int32 curr_times = 4; optional int32 max_times = 5; optional int32 exp = 7; optional int32 max_exp = 8; } message MFPlaySkill { optional int32 obj_uniid = 1; optional int32 skill_id = 2; } message MFTextElement { optional string text = 1; optional int32 color = 2 [default = 0xFFFFFF]; } message MFImageElement { optional int32 id = 1; } message MFRichTextElement { optional int32 element_type = 1; optional MFTextElement union_obj_1 = 2; optional MFImageElement union_obj_2 = 3; } message MFMatchTeamMember { optional string account_id = 1; optional string name = 2; optional string avatar_url = 3; optional int32 hero_id = 4; repeated MFWeapon weapons = 5; repeated MFSkin skins = 6; repeated MFPair skill_list = 7; optional bool is_leader = 8; optional int32 state = 9; optional int32 head_frame = 10; repeated int32 baseskin = 11; optional int32 hero_skin = 12; } message MFMatchInfo { repeated MFMatchTeamMember members = 1; optional int32 phase = 2; 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; optional MFOverRewardItem weapon2 = 3; optional int32 bounds = 4; optional int32 total = 5; } message CMJoin { optional int32 server_id = 1; optional string team_uuid = 2; optional string account_id = 3; optional int32 team_mode = 4; optional int32 proto_version = 5; optional bool auto_fill = 6; optional int32 bot = 7; optional string name = 8; optional bool use_touch = 9; repeated int32 emotes = 10; optional string avatar_url = 11; optional int32 energy_shield = 12; repeated int32 baseskin = 13; optional int32 basemelee = 14; repeated int32 buff_list = 15; repeated MFWeapon weapons = 17; repeated MFSkin skins = 18; repeated int32 prepare_items = 19; repeated MFPair prepare_items2 = 29; optional string session_id = 20; optional string from_appid = 21; optional float atk_add = 22; optional string pre_settlement_info = 23; optional int32 emoji1 = 24; optional int32 emoji2 = 25; optional int32 parachute = 26; optional bool has_pass = 27; optional int32 today_enter_times = 28; repeated MFWeapon grow_weapons = 30; optional int64 user_value1 = 31; optional int64 user_value2 = 32; optional int64 user_value3 = 33; optional int64 guild_id = 34; optional int32 vip_lv = 35 [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; optional int32 mapid = 53; repeated MFPair skill_list = 54; optional string user_data = 60 [default = ""]; optional int32 hero_id = 61; repeated MFPair talent_list = 64; optional int32 show_team_ui = 62; optional int32 hero_skin = 63; optional string pre_battle_payload = 70; optional string hero_uniid = 71; } message CMReconnect { optional int32 server_id = 1; optional string team_uuid = 2; optional string account_id = 3; optional string session_id = 4; optional string room_uuid = 5; optional string server_info = 6; } message SMReconnect { optional int32 errcode = 1; optional string errmsg = 2; } message CMMove { optional int32 seq = 1; optional MFVec2 move_dir = 2; optional MFVec2 attack_dir = 3; optional bool shot_start = 4; optional bool shot_hold = 5; optional bool reload = 6; optional float fly_distance = 7; optional int32 select_weapon = 8; optional int32 drop_weapon = 9; optional bool cancel_action = 10; optional int32 use_item_idx = 11; optional int32 use_item_id = 12; optional int32 use_scope = 13; optional bool interaction = 14; repeated int32 interaction_objids = 15; optional bool aiming = 16; optional bool use_skill = 17; optional int32 skill_id = 18; optional int32 skill_target_id = 19; optional MFVec2 skill_dir = 20; optional float skill_distance = 21; optional float skill_param1 = 22; optional bool spectate = 30; optional int32 emote = 31; optional bool jump = 32; optional bool get_down = 33; optional int32 get_on = 36; optional int32 switch_seat = 37; optional int32 follow = 38; optional int32 dive = 39; } message CMExecCommand { optional string cmd = 1; } message CMDropItem { optional int32 item_id = 1; optional int32 weapon_idx = 2; } message CMEmote { optional int32 type = 1; optional MFVec2 pos = 2; optional bool team_only = 4; } message CMVoice { optional string download_url = 2; } message CMGameOver { } message CMWatchWar { } message CMLeave { } message CMRevive { } message CMCancelRevive { } message CMAdStart { } message CMAdCancel { } message CMAdEnd { optional int32 param = 1; } message CMGetBoxInfo { optional int32 box_id = 1; } message CMOpenBox { optional int32 box_id = 1; } message CMMatchCancel { } message CMMatchChoose { optional int32 hero_id = 1; repeated MFWeapon weapons = 2; repeated MFSkin skins = 3; repeated MFPair skill_list = 4; repeated int32 baseskin = 5; optional int32 hero_skin = 6; optional string hero_uniid = 7; } message CMMatchStartGame { } message CMMatchCancelStartGame { } message CMMatchSendMsg { repeated string target_list = 1; optional string content = 2; } message CMMatchBroadcastMsg { optional int32 exclude_self = 1; optional string content = 2; } message SMWatchWar { optional int32 error_code = 1 [default = 0]; optional string error_msg = 2; optional string name = 3; } message SMJoinedNotify { optional int32 team_mode = 1; optional int32 player_id = 2; optional bool started = 3; optional string room_uuid = 4; optional int32 map_type = 5; optional bool elo_start = 6; optional int32 error_code = 7; optional int32 error_msg = 10; optional int32 room_mode = 8; optional string server_info = 9; } message SMMapInfo { optional int32 map_id = 1; optional float map_width = 2; optional float map_height = 3; repeated MFMapObject objects = 6; optional int32 player_id = 7; optional bool started = 8; optional string room_uuid = 9; optional string server_info = 10; } message SMPlayerInfo { optional MFPlayerInfo info = 1; } message SMUpdate { repeated int32 out_objids = 1; repeated int32 del_objids = 2; repeated MFObjectFull full_objects = 3; repeated MFObjectPart part_objects = 4; optional int32 active_player_id = 5; optional MFActivePlayerData active_player_data = 6; optional int32 alive_count = 15; optional int32 gas_progress = 16; optional MFVec2 gas_pos_old = 30; optional MFGasData gas_data = 17; repeated MFTeamData team_data = 18; repeated MFBullet bullets = 20; repeated MFShot shots = 21; repeated MFExplosion explosions = 22; repeated MFSmoke smokes = 25; repeated MFEmote emotes = 23; optional MFAirDrop airdrop = 26; optional MFPlane plane = 27; repeated MFBuffChg chged_buff_list = 28; repeated MFPropertyChg chged_property_list = 31; repeated MFPlaySkill play_skill_list = 32; optional MFAirRaid airraid = 33; repeated MFTuple dead_alive_objs = 42; repeated MFPosition object_positions = 43; optional int32 game_left_time = 45; optional int32 frameno = 46; repeated int32 del_bullets = 47; } message SMRollMsg { repeated MFRichTextElement elements = 1; } message SMPlayerStats { optional MFPlayerStats player_stats = 1; } message SMGameOver { optional int32 team_id = 1; optional int32 team_rank = 2; optional int32 team_allcnt = 3; optional bool game_over = 4; optional bool victory = 5; optional int32 total_human_num = 12; optional int32 alive_human_num = 13; optional int32 watchable = 8; repeated MFPlayerStats player_stats = 6; optional string room_uuid = 7; repeated MFTeamData team_data = 10; repeated MFTuple spoils_items = 11; optional MFOverReward reward = 14; } message SMLeave { } message SMGetBoxInfo { optional int32 box_id = 1; repeated MFTuple items = 2; } message SMOpenBox { optional int32 box_id = 1; optional int32 errcode = 2; optional string errmsg = 3; repeated MFTuple items = 4; } message SMDisconnectNotify { optional string reason = 1; } message SMVoiceNotify { optional string account_id = 2; optional string download_url = 3; } message SMDebugMsg { optional string debug_msg = 3; } message SMWxVoip { optional string group_id = 1; } message SMUiUpdate { optional int32 alive_count = 1; optional int32 kill_count = 2; repeated MFMapCarInfo car_list = 3; optional int32 zombie_num = 10; optional int32 human_num = 11; } message SMGameStart { } message SMSysPiaoMsg { optional string msg = 1; optional int32 color = 2; optional int32 duration = 3; } message SMShowCountdown { optional string msg = 1; optional int32 countdown = 2; optional int32 msg_type = 3; } message SMShowTeamUI { } message SMUpdateMatchInfo { optional MFMatchInfo info = 1; } message SMMatchMemberMsgNotify { optional string sender = 1; optional string content = 2; } message SMGetItemNotify { repeated MFPair items = 8; }