1
0
mirror of https://github.com/alliedmodders/hl2sdk.git synced 2025-09-19 03:56:10 +08:00
Files
hl2sdk/game/shared/citadel/citadel_gcmessages_server.proto
Nicholas Hastings fc3909c6b6 Add/update protos
2025-02-15 13:05:56 -05:00

632 lines
20 KiB
Protocol Buffer

import "steammessages.proto";
import "gcsdk_gcmessages.proto";
import "citadel_gcmessages_common.proto";
enum EGCCitadelServerMessages {
k_EMsgServerToGCMatchSignoutPermission = 10012;
k_EMsgServerToGCMatchSignoutPermissionResponse = 10013;
k_EMsgServerToGCMatchSignout = 10014;
k_EMsgServerToGCMatchSignoutResponse = 10015;
k_EMsgGCToServerAddSpectator = 10016;
k_EMsgGCToServerAddSpectatorResponse = 10017;
k_EMsgServerToGCIdlePing = 10018;
k_EMsgGCToServerRequestPing = 10019;
k_EMsgGCToServerAllocateForMatch = 10021;
k_EMsgGCToServerAllocateForMatchResponse = 10022;
k_EMsgServerToGCEnterMatchmaking = 10023;
k_EMsgGCToServerCancelAllocateForMatch = 10024;
k_EMsgServerToGCUpdateLobbyServerState = 10025;
k_EMsgServerToGCAbandonMatch = 10026;
k_EMsgServerToGCAbandonMatchResponse = 10027;
k_EMsgServerToGCTestConnection = 10028;
k_EMsgServerToGCTestConnectionResponse = 10029;
k_EMsgGCToServerSetServerConVar = 10039;
k_EMsgGCToServerSetServerConVarResponse = 10040;
k_EMsgServerToGCUpdateMatchInfo = 10041;
k_EMsgServerToGCReportCheater = 10042;
k_EMsgServerToGCReportCheaterResponse = 10043;
}
enum EGCServerLobbyData {
k_EServerLobbyData_PlayerMMR = 1;
k_EServerLobbyData_PlayerInfo = 2;
k_EServerLobbyData_PostMatchSurvey = 3;
k_EServerLobbyData_AutoTest = 4;
}
enum EGCServerSignoutData {
k_EServerSignoutData_Disconnections = 2;
k_EServerSignoutData_AccountStatChanges = 3;
k_EServerSignoutData_DetailedStats = 4;
k_EServerSignoutData_ServerPerfStats = 5;
k_EServerSignoutData_PerfData = 6;
k_EServerSignoutData_PlayerChat = 7;
k_EServerSignoutData_BookRewards = 8;
k_EServerSignoutData_PenalizedPlayers = 9;
k_EServerSignoutData_ReportCheaters = 10;
}
message CMsgServerCrashSentinelFile {
message Player {
optional uint32 account_id = 1;
optional uint32 hero_id = 2;
}
message GameInfo {
optional uint64 match_id = 1;
optional fixed64 lobby_id = 2;
optional uint32 server_state = 3;
repeated .CMsgServerCrashSentinelFile.Player players = 5;
optional .ECitadelMatchMode match_mode = 6 [default = k_ECitadelMatchMode_Invalid];
optional .ECitadelGameMode game_mode = 7 [default = k_ECitadelGameMode_Invalid];
optional bool was_server_shutdown = 8;
}
optional uint32 version = 1;
optional fixed64 server_steam_id = 2;
optional fixed32 server_public_ip_addr = 3;
optional uint32 server_port = 4;
optional uint32 server_cluster = 5;
optional uint32 pid = 6;
optional uint32 saved_time = 7;
optional uint32 server_version = 8;
optional .CMsgServerCrashSentinelFile.GameInfo game_info = 9;
optional uint32 server_private_ip_addr = 10;
optional uint32 instance_id = 11;
}
message CServerLobbyData_PlayerMMR {
message Player {
optional uint32 account_id = 1;
optional uint32 player_mmr = 2;
optional uint32 player_uncertainty = 3;
optional uint32 hero_mmr = 4;
optional uint32 hero_mmr_with_uncertainty = 5;
}
repeated .CServerLobbyData_PlayerMMR.Player players = 1;
}
message CServerLobbyData_PlayerInfo {
optional uint32 account_id = 1;
repeated .CMsgAccountHeroStats account_stats = 2;
optional uint32 mmr_level = 4;
repeated .CMsgAccountBookStats book_info = 5;
}
message CServerLobbyData_PostMatchSurvey {
message PlayerSurvey {
optional uint32 account_id = 1;
optional uint32 question_id = 2;
}
repeated .CServerLobbyData_PostMatchSurvey.PlayerSurvey surveys = 1;
}
message CServerLobbyData_AutoTest {
optional uint32 max_duration_s = 2;
}
message CSOCitadelServerDynamicLobby {
optional uint64 lobby_id = 1;
repeated uint32 left_account_ids = 2 [packed = true];
optional bool broadcast_active = 3;
optional uint32 spectator_count = 4;
}
message CSOCitadelServerStaticLobby {
message Member {
optional uint32 account_id = 1;
optional string persona_name = 2;
optional .ECitadelLobbyTeam team = 3 [default = k_ECitadelLobbyTeam_Team0];
optional uint32 player_slot = 4;
optional uint32 hero_id = 5;
optional uint32 party_index = 6;
optional .EGCPlatform platform = 7 [default = k_eGCPlatform_None];
repeated .CSOCitadelServerStaticLobby.EAwardIDs award_ids = 8;
optional bool is_comms_restricted = 9;
optional uint32 lane_id = 10;
optional .CMsgGCAccountData gc_account_data = 13;
optional bool party_desires_laning_together = 14;
optional bool hide_holiday_models = 15;
}
message DevSettings {
optional string console_string = 1;
}
enum EAwardIDs {
k_eAward_KingPanda = 1;
}
repeated .CExtraMsgBlock extra_messages = 1;
optional fixed64 server_steam_id = 2;
optional uint64 lobby_id = 3;
optional fixed32 replay_salt = 4;
optional string level_name = 5;
repeated .CSOCitadelServerStaticLobby.Member members = 6;
optional .CSOCitadelServerStaticLobby.DevSettings dev_settings = 7;
optional bool gc_provided_heroes = 8;
optional .ECitadelBotDifficulty bot_difficulty = 9 [default = k_ECitadelBotDifficulty_None];
optional fixed32 metadata_salt = 10;
optional uint32 match_start_time = 11;
optional .ECitadelRegionMode region_mode = 16 [default = k_ECitadelRegionMode_ROW];
optional string broadcast_url = 17;
optional bool new_player_pool = 18;
optional bool low_pri_pool = 19;
optional bool is_restricted_access = 20;
optional bool cheats_enabled = 21;
optional bool duplicate_heroes_enabled = 22;
optional bool is_high_skill_range_parties = 23;
optional bool experimental_heroes_enabled = 24;
optional uint32 average_badge_team_0 = 25;
optional uint32 average_badge_team_1 = 26;
optional string gameplay_experiment = 27;
}
message CMsgServerSignoutData_ServerPerfStats {
message FrameCounts {
optional uint32 num_frames = 1;
optional uint32 longest_run = 2;
optional uint32 num_runs = 3;
}
message PerfSample {
optional uint32 game_time_s = 1;
optional float avg_frame = 2;
optional float avg_idle = 3;
optional uint32 total_frames = 4;
optional .CMsgServerSignoutData_ServerPerfStats.FrameCounts performant_frames = 5;
optional .CMsgServerSignoutData_ServerPerfStats.FrameCounts long_frames = 6;
optional .CMsgServerSignoutData_ServerPerfStats.FrameCounts low_idle_frames = 7;
optional uint64 memory_bytes = 8;
optional uint64 peak_memory_bytes = 9;
}
message MatchPerfSamples {
optional float long_frame_threshold = 1;
optional float low_idle_threshold = 2;
repeated .CMsgServerSignoutData_ServerPerfStats.PerfSample samples = 3;
}
optional uint64 peak_memory_bytes = 1;
optional uint64 end_memory_bytes = 2;
optional uint32 frame_time_max_micro_s = 3;
optional uint32 frame_time_95_micro_s = 4;
optional uint32 frame_time_avg_micro_s = 5;
optional uint32 frame_idle_time_95_micro_s = 6;
optional uint32 frame_idle_time_avg_micro_s = 7;
optional uint32 frame_time_80_micro_s = 8;
optional uint32 frame_time_99_micro_s = 9;
optional .CMsgServerSignoutData_ServerPerfStats.MatchPerfSamples perf_samples = 10;
}
message CMsgServerToGCUpdateMatchInfo {
optional uint64 lobby_id = 1;
optional uint32 kills_team_0 = 3;
optional uint32 kills_team_1 = 4;
optional uint32 net_worth_team_0 = 5;
optional uint32 net_worth_team_1 = 6;
optional uint32 spectators = 7;
optional uint32 open_spectator_slots = 8;
optional uint64 objectives_mask_team0 = 9;
optional uint64 objectives_mask_team1 = 10;
}
message CMsgServerToGCMatchSignoutPermission {
optional uint32 signout_start = 1;
optional uint32 permission_request = 2;
optional uint64 match_id = 3;
optional .ECitadelMatchMode match_mode = 4 [default = k_ECitadelMatchMode_Invalid];
}
message CMsgServerToGCMatchSignoutPermissionResponse {
optional bool can_sign_out = 1;
optional uint32 retry_time_s = 2;
repeated .EGCServerSignoutData requested_data = 3;
}
message CMsgServerSignoutData_Disconnections {
message CMsgMatchDisconnection {
optional uint32 account_id = 1;
optional uint32 disconnect_time = 2;
optional uint32 connection_state = 3;
optional uint32 reason_code = 4;
optional uint32 reconnect_delay = 5;
optional uint32 match_disconnect_time = 6;
optional uint32 match_reconnect_delay = 7;
}
repeated .CMsgServerSignoutData_Disconnections.CMsgMatchDisconnection disconnections = 1;
}
message CMsgServerSignoutData_DetailedStats {
message Position {
optional float x = 1;
optional float y = 2;
optional float z = 3;
}
message TimeSample {
message Stats {
optional uint32 net_worth = 1;
optional uint32 kills = 2;
optional uint32 deaths = 3;
optional uint32 assists = 4;
optional uint32 possible_creeps = 5;
optional uint32 creep_kills = 6;
optional uint32 neutral_kills = 7;
optional uint32 creep_damage = 8;
optional uint32 neutral_damage = 9;
optional uint32 boss_damage = 10;
optional uint32 player_damage = 11;
optional uint32 denies = 12;
optional uint32 player_healing = 13;
optional uint32 ability_points = 14;
optional uint32 self_healing = 15;
optional uint32 player_damage_taken = 16;
optional uint32 max_health = 17;
optional uint32 weapon_power = 18;
optional uint32 tech_power = 19;
optional uint32 shots_hit = 20;
optional uint32 shots_missed = 21;
optional uint32 damage_absorbed = 22;
optional uint32 absorption_provided = 23;
optional uint32 heal_prevented = 26;
optional uint32 heal_lost = 27;
}
message GoldStats {
optional uint32 player = 1;
optional uint32 player_orb = 2;
optional uint32 lane_creep_orb = 3;
optional uint32 neutral_creep_orb = 4;
optional uint32 boss = 5;
optional uint32 boss_orb = 6;
optional uint32 treasure = 7;
optional uint32 denied = 8;
optional uint32 death_loss = 9;
optional uint32 lane_creep = 10;
optional uint32 neutral_creep = 11;
optional uint32 team_bonus = 12;
}
optional uint32 match_time_s = 1;
optional .CMsgServerSignoutData_DetailedStats.TimeSample.Stats stats = 2;
optional .CMsgServerSignoutData_DetailedStats.TimeSample.GoldStats gold_stats = 4;
}
message Objective {
optional uint32 destroyed_time_s = 2;
optional uint32 creep_damage = 4;
optional uint32 creep_damage_mitigated = 5;
optional uint32 player_damage = 6;
optional uint32 player_damage_mitigated = 7;
optional uint32 first_damage_time_s = 8;
optional .ECitadelTeamObjective team_objective_id = 9 [default = k_eCitadelTeamObjective_Core];
optional .ECitadelLobbyTeam team = 10 [default = k_ECitadelLobbyTeam_Team0];
}
message MidBoss {
optional .ECitadelLobbyTeam team_killed = 1 [default = k_ECitadelLobbyTeam_Team0];
optional .ECitadelLobbyTeam team_claimed = 2 [default = k_ECitadelLobbyTeam_Team0];
optional uint32 destroyed_time_s = 3;
}
message Player {
optional uint32 player_slot = 1;
repeated .CMsgServerSignoutData_DetailedStats.TimeSample time_samples = 3;
}
repeated .CMsgServerSignoutData_DetailedStats.Player player_stats = 1;
repeated .CMsgServerSignoutData_DetailedStats.Objective objectives = 2;
repeated .CMsgServerSignoutData_DetailedStats.MidBoss mid_boss = 3;
}
message CMsgServerSignoutData_PerfData {
repeated float average_frame_time = 1;
repeated float max_frame_time = 2;
optional float server_average_frame_time = 3;
optional float server_max_frame_time = 4;
repeated float average_compute_time = 5;
repeated float max_compute_time = 6;
repeated float average_client_tick_time = 7;
repeated float max_client_tick_time = 8;
repeated float average_client_simulate_time = 9;
repeated float max_client_simulate_time = 10;
repeated float average_output_time = 11;
repeated float max_output_time = 12;
repeated float average_wait_for_rendering_to_complete_time = 13;
repeated float max_wait_for_rendering_to_complete_time = 14;
repeated float average_swap_time = 15;
repeated float max_swap_time = 16;
repeated float average_frame_update_time = 17;
repeated float max_frame_update_time = 18;
repeated float average_idle_time = 19;
repeated float max_idle_time = 20;
repeated float average_input_processing_time = 21;
repeated float max_input_processing_time = 22;
}
message CMsgServerSignoutData_BookRewards {
message BookReward {
optional uint32 book_id = 1;
optional uint32 xp_reward = 2;
}
message AccountRewards {
optional uint32 account_id = 1;
optional .CMsgServerSignoutData_BookRewards.BookReward book_reward = 2;
}
repeated .CMsgServerSignoutData_BookRewards.AccountRewards account_rewards = 1;
}
message CMsgServerSignoutData_AccountStatChanges {
message Stat {
optional uint32 hero_id = 1;
optional uint32 stat_id = 2;
optional uint32 value = 3;
optional .ECitadelAccountStatMedal medal = 4 [default = k_eNone];
}
message AccountStats {
optional uint32 account_id = 1;
repeated .CMsgServerSignoutData_AccountStatChanges.Stat stats = 2;
}
repeated .CMsgServerSignoutData_AccountStatChanges.AccountStats account_stats = 1;
}
message CMsgServerSignoutData_PlayerChat {
message ChatLine {
optional uint32 player_slot = 1;
optional float game_time = 2;
optional bool team_only = 3;
optional string chat_line = 4;
}
repeated .CMsgServerSignoutData_PlayerChat.ChatLine chat_lines = 1;
}
message CMsgServerSignoutData_PenalizedPlayers {
message Penalty {
optional uint32 account_id = 1;
optional .CMsgServerSignoutData_PenalizedPlayers.EPenaltyReason reason = 2 [default = k_EPenaltyReason_Abandon];
optional uint32 match_time_s = 3;
optional uint32 time_stamp = 4;
}
enum EPenaltyReason {
k_EPenaltyReason_Abandon = 0;
k_EPenaltyReason_DisconnectedTooLong = 1;
k_EPenaltyReason_AFK = 2;
}
repeated .CMsgServerSignoutData_PenalizedPlayers.Penalty penalized_players = 1;
}
message CMsgMatchData {
message PlayerItem {
optional uint32 item_id = 1;
optional uint32 game_time_s = 2;
optional uint32 upgrade_id = 3;
optional uint32 sold_time_s = 4;
optional uint32 flags = 5;
optional uint32 imbued_ability_id = 6;
}
message PlayerInfo {
optional uint32 account_id = 1;
optional .ECitadelLobbyTeam team = 2 [default = k_ECitadelLobbyTeam_Team0];
optional uint32 player_slot = 3;
optional uint32 hero_mmr_with_uncertainty = 4;
optional uint32 player_mmr = 5;
optional uint32 player_uncertainty = 6;
optional uint32 hero_id = 7;
optional uint32 kills = 8;
optional uint32 deaths = 9;
optional uint32 net_worth = 10;
optional uint32 assists = 11;
optional uint32 hero_mmr = 12;
repeated .CMsgMatchData.PlayerItem items = 13;
optional uint32 gpm_10min = 14;
optional uint32 gpm_15min = 15;
optional uint32 gpm_20min = 16;
optional uint32 gpm_25min = 17;
optional uint32 gpm_30min = 18;
optional uint32 gpm_35min = 19;
optional uint32 gpm_end = 20;
optional uint32 last_hits = 21;
optional uint32 denies = 22;
optional uint32 ability_points = 23;
optional uint32 level = 24;
optional uint32 assigned_lane = 25;
optional uint32 party_index = 26;
optional .EGCPlatform platform = 27 [default = k_eGCPlatform_None];
optional uint32 ability_damage = 28;
optional uint32 bullet_damage = 29;
optional uint32 hero_bullets_hit = 30;
optional uint32 hero_bullets_hit_crit = 31;
optional uint32 player_healing = 32;
optional uint32 hero_bullets_fired = 33;
optional uint32 hero_incoming_bullets_fired = 34;
optional uint32 hero_incoming_bullets_hit = 35;
optional uint32 hero_incoming_bullets_crit = 36;
optional uint32 time_dead_s = 37;
optional uint32 player_bullet_damage = 38;
optional uint32 player_ability_damage = 39;
optional uint32 player_melee_damage = 40;
optional uint32 abandon_match_time_s = 41;
optional uint32 abandon_time_stamp = 42;
optional uint32 trooper_kill_excluded = 43;
optional uint32 hero_bullets_lucky_shots = 44;
optional uint32 hero_build_id = 45;
}
enum EEndReason {
k_EEndReason_TeamWin = 0;
k_EEndReason_AllAbandoned = 2;
k_EEndReason_NetworkIssues = 3;
k_EEndReason_MatchLength = 4;
k_EEndReason_PlayerNeverConnected = 5;
}
optional uint32 match_duration_s = 1;
optional .CMsgMatchData.EEndReason end_reason = 2 [default = k_EEndReason_TeamWin];
optional .ECitadelLobbyTeam winning_team = 3 [default = k_ECitadelLobbyTeam_Team0];
repeated .CMsgMatchData.PlayerInfo players = 4;
optional uint32 objectives_mask_legacy = 5;
optional uint32 server_version = 6;
optional .ECitadelGameMode game_mode = 7 [default = k_ECitadelGameMode_Invalid];
optional .ECitadelMatchMode match_mode = 8 [default = k_ECitadelMatchMode_Invalid];
optional uint64 objectives_mask_team0 = 9;
optional uint64 objectives_mask_team1 = 10;
optional uint32 match_end_time = 11;
optional float stomp_score = 12;
optional bool safe_to_abandon = 13;
optional bool team_abandon = 14;
optional bool new_player_pool = 15;
optional bool low_pri_pool = 16;
}
message CMsgServerToGCMatchSignout {
repeated .CExtraMsgBlock additional_data = 1;
optional uint32 signout_attempt = 2;
optional uint64 lobby_id = 3;
optional uint64 match_id = 4;
optional uint32 cluster_id = 9;
optional .CMsgMatchData match_data = 10;
}
message CMsgServerToGCMatchSignoutResponse {
enum ESignoutResult {
k_ESignout_Failed_Retry = 1;
k_ESignout_Failed_NoRetry = 2;
k_ESignout_Failed_InFlight = 3;
k_ESignout_Success = 4;
k_ESignout_Success_AlreadySignedOut = 5;
}
optional .CMsgServerToGCMatchSignoutResponse.ESignoutResult result = 1 [default = k_ESignout_Failed_Retry];
}
message CMsgServerWelcomeCitadel {
}
message CMsgServerToGCIdlePing {
optional uint32 server_version = 1;
}
message CMsgGCToServerRequestPing {
}
message CMsgGCToServerAllocateForMatch {
optional uint64 match_id = 1;
}
message CMsgGCToServerAllocateForMatchResponse {
optional bool success = 1;
}
message CMsgServerToGCEnterMatchmaking {
optional uint32 server_version = 1;
optional string search_key = 2;
optional uint32 region_id = 3;
optional uint32 cluster_id = 4;
optional uint32 server_public_ip = 5;
optional uint32 server_private_ip = 6;
optional uint32 server_port = 7;
optional bytes sdr_address = 9;
}
message CMsgGCToServerCancelAllocateForMatch {
optional uint64 match_id = 1;
}
message CMsgServerToGCUpdateLobbyServerState {
optional uint64 lobby_id = 1;
optional .ELobbyServerState server_state = 2 [default = k_eLobbyServerState_Assign];
optional bool safe_to_abandon = 3;
}
message CMsgServerToGCAbandonMatch {
message Player {
optional uint32 account_id = 1;
optional uint64 additional_data = 2;
optional uint32 hero_id = 3;
}
enum EReason {
eReason_ServerCrash = 1;
eReason_ClientsFailedToConnect = 2;
}
optional fixed64 server_steam_id = 1;
optional fixed64 lobby_id = 2;
optional uint32 cluster_id = 3;
optional .CMsgServerToGCAbandonMatch.EReason reason_code = 4 [default = eReason_ServerCrash];
optional uint64 additional_data = 5;
optional uint64 match_id = 6;
repeated .CMsgServerToGCAbandonMatch.Player players = 8;
optional fixed32 public_ip_address = 9;
optional uint32 port = 10;
optional uint32 server_version = 11;
optional uint32 pid = 12;
optional uint32 instance_id = 13;
optional uint32 private_ip_address = 14;
optional .ECitadelMatchMode match_mode = 15 [default = k_ECitadelMatchMode_Invalid];
optional .ECitadelGameMode game_mode = 16 [default = k_ECitadelGameMode_Invalid];
optional bool was_server_shutdown = 17;
}
message CMsgServerToGCAbandonMatchResponse {
}
message CMsgServerToGCTestConnection {
}
message CMsgServerToGCTestConnectionResponse {
optional uint32 state = 1;
optional uint64 lobby_id = 2;
}
message CMsgGCToServerSetServerConVar {
optional string convar_name = 1;
optional string convar_value = 2;
}
message CMsgGCToServerSetServerConVarResponse {
optional bool success = 1;
}
message CMsgGCToServerAddSpectator {
optional uint64 lobby_id = 1;
optional uint32 account_id = 2;
optional uint32 account_to_spectate = 3;
}
message CMsgGCToServerAddSpectatorResponse {
enum EResponse {
k_eInternalError = 0;
k_eSuccess = 1;
k_eServerFull = 2;
}
optional .CMsgGCToServerAddSpectatorResponse.EResponse result = 1 [default = k_eInternalError];
optional uint32 requesting_account_id = 2;
}
message CMsgServerToGCReportCheater {
optional uint32 account_id = 1;
optional uint64 match_id = 2;
optional fixed64 lobby_id = 3;
optional string reason = 4;
optional bool record_data_only = 5;
optional float cheater_score = 6;
}
message CMsgServerToGCReportCheaterResponse {
optional bool success = 1;
}