clientkickedmodule.c 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357
  1. enum EClientKicked
  2. {
  3. UNKNOWN = -1, // -1 must always be UNKNOWN
  4. OK = 0, // 0 must always be OK
  5. SERVER_EXIT, // Server last ditch effort to try and disconnect players
  6. KICK_ALL_ADMIN, // Admin kicked all (RCON)
  7. KICK_ALL_SERVER, // Server kicked all
  8. TIMEOUT, // Players network timed out
  9. LOGOUT, // Player logged out (does not need a message as it is not an "error")
  10. KICK, // Generic kick
  11. BAN, // Player was banned
  12. PING, // Player went over ping limit
  13. MODIFIED_DATA, // Player has modified data or has a corrupted install
  14. UNSTABLE_NETWORK, // Player internet is too unstable
  15. SERVER_SHUTDOWN, // Server is shutting down and therefore kicks all players
  16. NOT_WHITELISTED, // Player is not whitelisted
  17. NO_IDENTITY, // No identity received while creating identity
  18. NO_INPUT_INTERFACE, // No input interface exists for the player
  19. INVALID_UID, // UID was incorrect while creating identity
  20. BANK_COUNT, // Amount of banks was changed
  21. ADMIN_KICK, // Kicked by admin
  22. INVALID_ID, // Player has an invalid ID
  23. INPUT_HACK, // Player is sending more Inputs than possible
  24. QUIT, // Player closed the game
  25. LEAVE, // Player pressed the Leave button
  26. // LoginMachine kicks (0x0030)
  27. LOGIN_MACHINE_ERROR = 48, // Generic LoginMachine error (fallback)
  28. PLAYER_STATE_TIMEOUT, // Player spent too much time in one state of the LoginMachine
  29. IDENTITY_NOT_CREATED, // Player was assigned but identity was not yet created
  30. DUPLICATE_UID, // Player tried to log in while not being logged out yet
  31. DB_PING_RESPONSE, // Unknown/unexpected database response
  32. DB_IDENTITY, // Identity not found
  33. DB_TIMEOUT, // Database connection timed out
  34. DB_BAD_VERSION, // Unsupported version of character data
  35. DB_ERROR, // Database error
  36. DB_APP_ERROR, // Something went wrong on server
  37. DB_APP_EXIT, // Application is exiting
  38. DB_BAD_DATA, // Character data check failed
  39. DB_GET_RESPONSE, // Unknown/unexpected database response
  40. NO_PLAYER, // Player was not created on server
  41. CREATE_NEW_CLIENT, // Creating of the client with a new character failed
  42. CREATE_LOADED_CHAR, // Creating the existing character failed
  43. LOAD_LOADED_CHAR, // Loading the existing character failed
  44. NO_NETWORK_INFO, // Network info for player not found
  45. CREATE_READY_CLIENT, // Creating of the client with loaded character failed
  46. RECONNECT_INFO, // No info for reconnecting character
  47. RECONNECT_IDENTITY, // No identity for reconnecting character
  48. RECONNECT_CHAR, // No character for reconnecting character
  49. ALREADY_ON_ANOTHER_SERVER, // Player is trying to join a server while already being on one
  50. BIOS_ERROR, // Something went wrong while communicating with the BIOS
  51. // RespawnMachine Kicks (0x0050)
  52. INIT_RESPAWN_IDENTITY = 80, // No identity when initializing respawn
  53. RESPAWN_IDENTITY, // No identity when respawning
  54. NEW_RESPAWN_NETWORK, // No network info when respawning
  55. NEW_RESPAWN_IDENTITY, // No identity when respawning
  56. NEW_RESPAWN_INFO, // No info when respawning
  57. RESPAWN_NEW_CLIENT, // Creating of client with new respawned character failed
  58. // PlayerVerification Kicks (0x0060)
  59. PLAYER_VERIFICATION = 96, // Generic PlayerVerification error (fallback)
  60. NO_INFO, // No player info
  61. BROKEN_DATA, // Data could not be verified because it is corrupt
  62. // VerificationError (0x0070)
  63. VERIFICATION_ERROR = 112, // Generic Verification error (fallback)
  64. VE_UNKNOWN, // Unknown/unexpected error
  65. VE_DECOMPRESS, // Data received by Server is corrupted
  66. VE_MISSING_MOD, // Client is missing a mod which is on Server
  67. VE_EXTRA_MOD, // Client has a mod which is not on Server
  68. VE_CLIENT_CORRUPT, // Client installation is corrupt
  69. VE_SERVER_CORRUPT, // Server installation is corrupt
  70. VE_UNEXPECTED_MOD_PBO, // Client has a PBO which is not part of Server
  71. VE_UM_ROGUE_PBO, // Client has a PBO which is not part of Server
  72. VE_UM_CLIENT_UPDATED, // Extra PBO most likely because Client has a newer version of mod
  73. VE_UM_SERVER_UPDATED, // Extra PBO most likely because Server has a newer version of mod
  74. VE_UNEXPECTED_SOURCE, // The source of the Extra PBO could not be determined
  75. VE_PATCHED_PBO, // Client has a patched PBO
  76. VE_INTEGRITY, // Client has a corrupted file
  77. VE_MISSING_BISIGN, // Client has a PBO which is missing a .bisign
  78. VE_MISSING_PBO, // Missing PBO
  79. VE_M_ROGUE_PBO, // Missing PBO from unknown origins
  80. VE_M_CLIENT_UPDATED, // Missing PBO most likely because Client has a newer version of mod
  81. VE_M_SERVER_UPDATED, // Missing PBO most likely because Server has a newer version of mod
  82. VE_M_SERVER_CORRUPT, // Server installation is corrupt
  83. VE_M_CLIENT_CORRUPT, // Client installation is corrupt
  84. VE_M_UNEXPECTED_SOURCE, // The source of the Missing PBO could not be determined
  85. VE_GPROJ, // The Client and Server .gproj are not equal
  86. // PBO Mismatch (0x0090)
  87. PBO_MISMATCH = 144, // Server and Client are using different PBO
  88. PBO_VERSION_MISMATCH, // Server and Client are using different PBO versions
  89. PBO_CLIENT_UPDATED, // Client has a more recent version
  90. PBO_SERVER_UPDATED, // Server has a more recent version
  91. // AuthError Kicks (0x00A0)
  92. AUTH_ERROR = 160, // Generic Auth error (fallback)
  93. AUTH_NO_USER, // The user was not found
  94. // Steam Validate (0x00B0)
  95. AUTH_INVALID_STEAM_VALIDATE = 176, // Unknown error (API update needed?)
  96. AUTH_NO_SERVER, // Server not initialized properly
  97. AUTH_INVALID_TICKET, // Ticket is not valid.
  98. AUTH_DUPLICATE_REQUEST, // A ticket has already been submitted for this steamID
  99. AUTH_INVALID_VERSION, // Ticket is from an incompatible interface version
  100. AUTH_GAME_MISMATCH, // Ticket is not for this game
  101. AUTH_EXPIRED_TICKET, // Ticket has expired
  102. // Steam OnValidate (0x00C0)
  103. AUTH_INVALID_STEAM_ONVALIDATE = 192, // Unknown error (API update needed?)
  104. AUTH_USER_NOT_CONNECTED, // The user in question is not connected to steam
  105. AUTH_LICENCE, // The license has expired.
  106. AUTH_SERVICE_BAN, // The user is VAC banned for this game.
  107. AUTH_LOGGED_IN_ELSEWHERE, // The user account has logged in elsewhere.
  108. AUTH_TIMEOUT, // VAC has been unable to perform anti-cheat checks on this user
  109. AUTH_CANCELED, // The ticket has been canceled by the issuer
  110. AUTH_ALREADY_USED, // This ticket has already been used, it is not valid.
  111. AUTH_TICKET_INVALID, // This ticket is not from a user instance currently connected to steam.
  112. AUTH_PUBLISHER_BAN, // The user is banned for this game.
  113. // Bios Validate (0x00D0)
  114. AUTH_INVALID_BIOS_VALIDATE = 208, // Unknown error (API update needed?)
  115. AUTH_BIOS_REQUEST_CREATE, // Failed to create the request to identify user.
  116. AUTH_BIOS_REQUEST_SEND, // Failed to send request
  117. AUTH_BIOS_REQUEST_WAIT, // Failed to receive response
  118. AUTH_UNKNOWN_BIOS_VALIDATE, // Unknown error
  119. // Bios OnValidate (0x00E0)
  120. AUTH_INVALID_BIOS_ONVALIDATE = 224, // Unknown error (API update needed?)
  121. AUTH_BIOS_WRONG_RESPONSE, // Response has unexpected format
  122. AUTH_UNKNOWN_BIOS_ONVALIDATE, // Unknown error
  123. // BattlEye Kicks (0x00F0)
  124. BATTLEYE = 240, // Kick administred by BattlEye (Can also be Admin Kick)
  125. // Unauthorized Network Message (0x0100)
  126. UNM1 = 256,
  127. UNM2,
  128. UNM3,
  129. UNM4,
  130. UNM5,
  131. UNM6,
  132. };
  133. #ifdef PLATFORM_WINDOWS
  134. const string AUTH_PREFIX = "#STR_MP_STEAM_AUTH_FAILED\n";
  135. #else
  136. #ifdef PLATFORM_XBOX
  137. const string AUTH_PREFIX = "#STR_xbox_authentification_fail\n";
  138. #else
  139. #ifdef PLATFORM_PS4
  140. const string AUTH_PREFIX = "#STR_ps4_authentification_fail\n";
  141. #else
  142. const string AUTH_PREFIX = "#STR_authentification_fail\n";
  143. #endif
  144. #endif
  145. #endif
  146. const string LOGIN_PREFIX = "#STR_LOGIN_PREFIX"+"\n";
  147. const string RESPAWN_PREFIX = "#STR_RESPAWN_PREFIX"+"\n";
  148. const string VE_PREFIX = "#STR_VE_PREFIX"+"\n";
  149. const string VERIFY = "\n"+"#STR_VERIFY";
  150. const string MODS = "\n"+"#STR_MODS0"+"\n"+"#STR_MODS1"+"\n";
  151. const string SERVER_MUST_UPDATE = "\n"+"#STR_S_UPDATE";
  152. const string CLIENT_MUST_UPDATE = "\n"+"#STR_C_UPDATE" + VERIFY;
  153. const string UNM_MESSAGE = "#STR_UNM_MESSAGE";
  154. class ClientKickedModule : ErrorHandlerModuleScript
  155. {
  156. void ClientKickedModule()
  157. {
  158. SetCategory(ErrorCategory.ClientKicked);
  159. }
  160. override void InitOptionalVariables()
  161. {
  162. super.InitOptionalVariables();
  163. m_Header = "#menu_warning";
  164. m_Prefix = "#STR_MP_KICKED_CLIENT\n";
  165. }
  166. override void FillErrorDataMap()
  167. {
  168. super.FillErrorDataMap();
  169. InsertDialogueErrorProperties(EClientKicked.SERVER_EXIT, "#STR_server_shutdown");
  170. InsertDialogueErrorProperties(EClientKicked.KICK_ALL_ADMIN, "#STR_kickAll_admin");
  171. InsertDialogueErrorProperties(EClientKicked.KICK_ALL_SERVER, "#STR_kickAll_server");
  172. InsertDialogueErrorProperties(EClientKicked.TIMEOUT, "#STR_MP_TIMEOUT_CLIENT");
  173. InsertErrorProperties(EClientKicked.LOGOUT); // No handling, just register it exists
  174. InsertDialogueErrorProperties(EClientKicked.KICK, "");
  175. InsertDialogueErrorProperties(EClientKicked.BAN, "#STR_MP_BANNED_CLIENT");
  176. InsertDialogueErrorProperties(EClientKicked.PING, "#STR_MP_MAX_PING");
  177. InsertSplitDialogueErrorProperties(EClientKicked.MODIFIED_DATA, "#STR_modified_data" + VERIFY, "#STR_modified_data");
  178. InsertSplitDialogueErrorProperties(EClientKicked.UNSTABLE_NETWORK, "#STR_unstable_network_client", "#STR_unstable_network_server");
  179. InsertDialogueErrorProperties(EClientKicked.SERVER_SHUTDOWN, "#STR_server_shutdown");
  180. InsertDialogueErrorProperties(EClientKicked.NOT_WHITELISTED, "#multi_server_not_whitelisted_message");
  181. InsertDialogueErrorProperties(EClientKicked.NO_IDENTITY, "#STR_no_identity");
  182. InsertDialogueErrorProperties(EClientKicked.NO_INPUT_INTERFACE, "#STR_no_input_interface");
  183. InsertDialogueErrorProperties(EClientKicked.INVALID_UID, "#STR_invalid_UID");
  184. InsertSplitDialogueErrorProperties(EClientKicked.BANK_COUNT, "#STR_bank_count" + VERIFY, "#STR_bank_count");
  185. InsertDialogueErrorProperties(EClientKicked.ADMIN_KICK, "#STR_admin_kick");
  186. InsertDialogueErrorProperties(EClientKicked.INVALID_ID, "#STR_invalid_ID");
  187. InsertDialogueErrorProperties(EClientKicked.INPUT_HACK, "#STR_INPUT_HACK");
  188. InsertErrorProperties(EClientKicked.QUIT); // No handling, just register it exists
  189. InsertErrorProperties(EClientKicked.LEAVE); // No handling, just register it exists
  190. // LoginMachine kicks
  191. InsertExtendedPrefixDialogueErrorProperties(EClientKicked.LOGIN_MACHINE_ERROR, "#server_browser_error_unknown", LOGIN_PREFIX);
  192. InsertExtendedPrefixDialogueErrorProperties(EClientKicked.PLAYER_STATE_TIMEOUT, "#STR_player_state_timeout", LOGIN_PREFIX);
  193. InsertExtendedPrefixDialogueErrorProperties(EClientKicked.IDENTITY_NOT_CREATED, "#STR_identity_not_created", LOGIN_PREFIX);
  194. InsertExtendedPrefixDialogueErrorProperties(EClientKicked.DUPLICATE_UID, "#STR_duplicate_UID", LOGIN_PREFIX);
  195. InsertExtendedPrefixDialogueErrorProperties(EClientKicked.DB_PING_RESPONSE, "#STR_db_ping_response", LOGIN_PREFIX);
  196. InsertExtendedPrefixDialogueErrorProperties(EClientKicked.DB_IDENTITY, "#STR_db_identity", LOGIN_PREFIX);
  197. InsertExtendedPrefixDialogueErrorProperties(EClientKicked.DB_TIMEOUT, "#STR_db_timeout", LOGIN_PREFIX);
  198. InsertExtendedPrefixDialogueErrorProperties(EClientKicked.DB_BAD_VERSION, "#STR_db_bad_version", LOGIN_PREFIX);
  199. InsertExtendedPrefixDialogueErrorProperties(EClientKicked.DB_ERROR, "#STR_db_error", LOGIN_PREFIX);
  200. InsertExtendedPrefixDialogueErrorProperties(EClientKicked.DB_APP_ERROR, "#STR_app_error", LOGIN_PREFIX);
  201. InsertExtendedPrefixDialogueErrorProperties(EClientKicked.DB_APP_EXIT, "#STR_app_exit", LOGIN_PREFIX);
  202. InsertExtendedPrefixDialogueErrorProperties(EClientKicked.DB_BAD_DATA, "#menu_character_check_fail", LOGIN_PREFIX);
  203. InsertExtendedPrefixDialogueErrorProperties(EClientKicked.DB_GET_RESPONSE, "#STR_db_get_response", LOGIN_PREFIX);
  204. InsertExtendedPrefixDialogueErrorProperties(EClientKicked.NO_PLAYER, "#STR_no_player", LOGIN_PREFIX);
  205. InsertExtendedPrefixDialogueErrorProperties(EClientKicked.CREATE_NEW_CLIENT, "#STR_create_new_client", LOGIN_PREFIX);
  206. InsertExtendedPrefixDialogueErrorProperties(EClientKicked.CREATE_LOADED_CHAR, "#STR_create_loaded_char", LOGIN_PREFIX);
  207. InsertExtendedPrefixDialogueErrorProperties(EClientKicked.LOAD_LOADED_CHAR, "#STR_load_loaded_char", LOGIN_PREFIX);
  208. InsertExtendedPrefixDialogueErrorProperties(EClientKicked.NO_NETWORK_INFO, "#STR_no_network_info", LOGIN_PREFIX);
  209. InsertExtendedPrefixDialogueErrorProperties(EClientKicked.CREATE_READY_CLIENT, "#STR_create_ready_client", LOGIN_PREFIX);
  210. InsertExtendedPrefixDialogueErrorProperties(EClientKicked.RECONNECT_INFO, "#STR_reconnect_info", LOGIN_PREFIX);
  211. InsertExtendedPrefixDialogueErrorProperties(EClientKicked.RECONNECT_IDENTITY, "#STR_reconnect_identity", LOGIN_PREFIX);
  212. InsertExtendedPrefixDialogueErrorProperties(EClientKicked.RECONNECT_CHAR, "#STR_reconnect_char", LOGIN_PREFIX);
  213. InsertExtendedPrefixDialogueErrorProperties(EClientKicked.ALREADY_ON_ANOTHER_SERVER, "#STR_already_on_another_server", LOGIN_PREFIX);
  214. InsertExtendedPrefixDialogueErrorProperties(EClientKicked.BIOS_ERROR, "#STR_BIOS_BIOSError", LOGIN_PREFIX);
  215. // RespawnMachine Kicks
  216. InsertExtendedPrefixDialogueErrorProperties(EClientKicked.INIT_RESPAWN_IDENTITY, "#STR_init_respawn_identity", RESPAWN_PREFIX);
  217. InsertExtendedPrefixDialogueErrorProperties(EClientKicked.RESPAWN_IDENTITY, "#STR_respawn_identity", RESPAWN_PREFIX);
  218. InsertExtendedPrefixDialogueErrorProperties(EClientKicked.NEW_RESPAWN_NETWORK, "#STR_new_respawn_network", RESPAWN_PREFIX);
  219. InsertExtendedPrefixDialogueErrorProperties(EClientKicked.NEW_RESPAWN_IDENTITY, "#STR_new_respawn_identity", RESPAWN_PREFIX);
  220. InsertExtendedPrefixDialogueErrorProperties(EClientKicked.NEW_RESPAWN_INFO, "#STR_new_respawn_info", RESPAWN_PREFIX);
  221. InsertExtendedPrefixDialogueErrorProperties(EClientKicked.RESPAWN_NEW_CLIENT, "#STR_respawn_new_client", RESPAWN_PREFIX);
  222. // PlayerVerification Kicks
  223. InsertExtendedPrefixDialogueErrorProperties(EClientKicked.PLAYER_VERIFICATION, "#server_browser_error_unknown", VE_PREFIX);
  224. InsertExtendedPrefixDialogueErrorProperties(EClientKicked.NO_INFO, "#STR_no_info", VE_PREFIX);
  225. InsertExtendedPrefixDialogueErrorProperties(EClientKicked.BROKEN_DATA, "#STR_broken_data", VE_PREFIX);
  226. // VerificationError
  227. InsertExtendedPrefixDialogueErrorProperties(EClientKicked.VERIFICATION_ERROR, "#server_browser_error_unknown", VE_PREFIX);
  228. InsertExtendedPrefixDialogueErrorProperties(EClientKicked.VE_UNKNOWN, "#server_browser_error_unknown", VE_PREFIX);
  229. InsertExtendedPrefixDialogueErrorProperties(EClientKicked.VE_DECOMPRESS, "#STR_ve_decompress", VE_PREFIX);
  230. InsertExtendedPrefixSplitDialogueErrorProperties(EClientKicked.VE_MISSING_MOD, "#STR_ve_missing_mod" + MODS, VE_PREFIX, "#STR_ve_missing_mod");
  231. InsertExtendedPrefixSplitDialogueErrorProperties(EClientKicked.VE_EXTRA_MOD, "#STR_ve_extra_mod" + MODS, VE_PREFIX, "#STR_ve_extra_mod");
  232. InsertExtendedPrefixDialogueErrorProperties(EClientKicked.VE_CLIENT_CORRUPT, "#STR_ve_client_corrupt" + VERIFY, VE_PREFIX);
  233. InsertExtendedPrefixDialogueErrorProperties(EClientKicked.VE_SERVER_CORRUPT, "#STR_ve_server_corrupt", VE_PREFIX);
  234. InsertExtendedPrefixSplitDialogueErrorProperties(EClientKicked.VE_UNEXPECTED_MOD_PBO, "#STR_ve_unexpected_mod_pbo0"+"\n"+"#STR_ve_unexpected_mod_pbo1"+"\n"+"#STR_ve_unexpected_mod_pbo2"+"\n"+"#STR_ve_unexpected_mod_pbo3"+"\n", VE_PREFIX, "#STR_ve_unexpected_mod_pbo0");
  235. InsertExtendedPrefixSplitDialogueErrorProperties(EClientKicked.VE_UM_ROGUE_PBO, "#STR_ve_unexpected_mod_pbo0"+"\n"+"#STR_ve_unexpected_mod_pbo1"+"\n"+"#STR_ve_unexpected_mod_pbo2"+"\n"+"#STR_ve_unexpected_mod_pbo3"+"\n", VE_PREFIX, "#STR_ve_unexpected_mod_pbo0");
  236. InsertExtendedPrefixDialogueErrorProperties(EClientKicked.VE_UM_CLIENT_UPDATED, "#STR_ve_um_client_updated" + SERVER_MUST_UPDATE, VE_PREFIX);
  237. InsertExtendedPrefixDialogueErrorProperties(EClientKicked.VE_UM_SERVER_UPDATED, "#STR_ve_um_server_updated" + CLIENT_MUST_UPDATE, VE_PREFIX);
  238. InsertExtendedPrefixDialogueErrorProperties(EClientKicked.VE_UNEXPECTED_SOURCE, "#STR_ve_unexpected_source", VE_PREFIX);
  239. InsertExtendedPrefixDialogueErrorProperties(EClientKicked.VE_PATCHED_PBO, "#STR_ve_patched_pbo" + VERIFY, VE_PREFIX);
  240. InsertExtendedPrefixDialogueErrorProperties(EClientKicked.VE_INTEGRITY, "#STR_ve_integrity" + VERIFY, VE_PREFIX);
  241. InsertExtendedPrefixSplitDialogueErrorProperties(EClientKicked.VE_MISSING_BISIGN, "#STR_ve_missing_bising" + VERIFY, VE_PREFIX, "#STR_ve_missing_bising");
  242. InsertExtendedPrefixDialogueErrorProperties(EClientKicked.VE_MISSING_PBO, "#STR_ve_missing_pbo", VE_PREFIX);
  243. InsertExtendedPrefixDialogueErrorProperties(EClientKicked.VE_M_ROGUE_PBO, "#STR_ve_m_rogue_pbo0"+"\n"+"#STR_ve_m_rogue_pbo1", VE_PREFIX);
  244. InsertExtendedPrefixDialogueErrorProperties(EClientKicked.VE_M_CLIENT_UPDATED, "#STR_ve_m_client_updated" + SERVER_MUST_UPDATE, VE_PREFIX);
  245. InsertExtendedPrefixDialogueErrorProperties(EClientKicked.VE_M_SERVER_UPDATED, "#STR_ve_m_server_updated0"+"\n"+"#STR_ve_m_server_updated1" + CLIENT_MUST_UPDATE, VE_PREFIX);
  246. InsertExtendedPrefixDialogueErrorProperties(EClientKicked.VE_M_SERVER_CORRUPT, "#STR_ve_m_server_corrupt0"+"\n"+"#STR_ve_m_server_corrupt1"+"\n", VE_PREFIX);
  247. InsertExtendedPrefixDialogueErrorProperties(EClientKicked.VE_M_CLIENT_CORRUPT, "#STR_ve_m_client_corrupt0"+"\n"+"#STR_ve_m_client_corrupt1" + VERIFY, VE_PREFIX);
  248. InsertExtendedPrefixDialogueErrorProperties(EClientKicked.VE_M_UNEXPECTED_SOURCE, "#STR_ve_m_unexpected_source", VE_PREFIX);
  249. InsertExtendedPrefixDialogueErrorProperties(EClientKicked.VE_GPROJ, VERIFY + " (.gproj)", VE_PREFIX);
  250. // PBO Mismatch
  251. InsertExtendedPrefixSplitDialogueErrorProperties(EClientKicked.PBO_MISMATCH, "#STR_pbo_mismatch" + VERIFY, VE_PREFIX, "#STR_pbo_mismatch");
  252. InsertExtendedPrefixDialogueErrorProperties(EClientKicked.PBO_VERSION_MISMATCH, "#STR_pbo_version_mismatch", VE_PREFIX);
  253. InsertExtendedPrefixDialogueErrorProperties(EClientKicked.PBO_CLIENT_UPDATED, "#STR_pbo_client_updated" + SERVER_MUST_UPDATE, VE_PREFIX);
  254. InsertExtendedPrefixDialogueErrorProperties(EClientKicked.PBO_SERVER_UPDATED, "#STR_pbo_server_updated" + CLIENT_MUST_UPDATE, VE_PREFIX);
  255. // AuthError Kicks
  256. InsertPrefixDialogueErrorProperties(EClientKicked.AUTH_ERROR, "#server_browser_error_unknown", AUTH_PREFIX);
  257. InsertPrefixDialogueErrorProperties(EClientKicked.AUTH_NO_USER, "#STR_auth_no_user", AUTH_PREFIX);
  258. // Steam Validate
  259. InsertPrefixDialogueErrorProperties(EClientKicked.AUTH_INVALID_STEAM_VALIDATE, "#server_browser_error_unknown", AUTH_PREFIX);
  260. InsertPrefixDialogueErrorProperties(EClientKicked.AUTH_NO_SERVER, "#STR_auth_no_server", AUTH_PREFIX);
  261. InsertPrefixDialogueErrorProperties(EClientKicked.AUTH_INVALID_TICKET, "#STR_auth_invalid_ticket", AUTH_PREFIX);
  262. InsertPrefixDialogueErrorProperties(EClientKicked.AUTH_DUPLICATE_REQUEST, "#STR_auth_duplicate_request", AUTH_PREFIX);
  263. InsertPrefixDialogueErrorProperties(EClientKicked.AUTH_INVALID_VERSION, "#STR_auth_invalid_version", AUTH_PREFIX);
  264. InsertPrefixDialogueErrorProperties(EClientKicked.AUTH_GAME_MISMATCH, "#STR_auth_game_mismatch", AUTH_PREFIX);
  265. InsertPrefixDialogueErrorProperties(EClientKicked.AUTH_EXPIRED_TICKET, "#STR_auth_expired_ticket", AUTH_PREFIX);
  266. // Steam OnValidate
  267. InsertPrefixDialogueErrorProperties(EClientKicked.AUTH_INVALID_STEAM_ONVALIDATE,"#server_browser_error_unknown", AUTH_PREFIX);
  268. InsertPrefixDialogueErrorProperties(EClientKicked.AUTH_USER_NOT_CONNECTED, "#STR_auth_user_not_connected", AUTH_PREFIX);
  269. InsertPrefixDialogueErrorProperties(EClientKicked.AUTH_LICENCE, "#STR_auth_licence", AUTH_PREFIX);
  270. InsertPrefixDialogueErrorProperties(EClientKicked.AUTH_SERVICE_BAN, "#STR_auth_service_ban", AUTH_PREFIX);
  271. InsertPrefixDialogueErrorProperties(EClientKicked.AUTH_LOGGED_IN_ELSEWHERE, "#STR_auth_logged_in_elsewhere", AUTH_PREFIX);
  272. InsertPrefixDialogueErrorProperties(EClientKicked.AUTH_TIMEOUT, "#STR_auth_timeout", AUTH_PREFIX);
  273. InsertPrefixDialogueErrorProperties(EClientKicked.AUTH_CANCELED, "#STR_auth_cancelled", AUTH_PREFIX);
  274. InsertPrefixDialogueErrorProperties(EClientKicked.AUTH_ALREADY_USED, "#STR_auth_already_used", AUTH_PREFIX);
  275. InsertPrefixDialogueErrorProperties(EClientKicked.AUTH_TICKET_INVALID, "#STR_auth_ticket_invalid", AUTH_PREFIX);
  276. InsertPrefixDialogueErrorProperties(EClientKicked.AUTH_PUBLISHER_BAN, "#STR_auth_publisher_ban", AUTH_PREFIX);
  277. // Bios Validate
  278. InsertPrefixDialogueErrorProperties(EClientKicked.AUTH_INVALID_BIOS_VALIDATE, "#server_browser_error_unknown", AUTH_PREFIX);
  279. InsertPrefixDialogueErrorProperties(EClientKicked.AUTH_BIOS_REQUEST_CREATE, "#STR_auth_bios_request_create", AUTH_PREFIX);
  280. InsertPrefixDialogueErrorProperties(EClientKicked.AUTH_BIOS_REQUEST_SEND, "#STR_auth_bios_request_send", AUTH_PREFIX);
  281. InsertPrefixDialogueErrorProperties(EClientKicked.AUTH_BIOS_REQUEST_WAIT, "#STR_auth_bios_request_wait", AUTH_PREFIX);
  282. InsertPrefixDialogueErrorProperties(EClientKicked.AUTH_UNKNOWN_BIOS_VALIDATE, "#server_browser_error_unknown", AUTH_PREFIX);
  283. // Bios OnValidate
  284. InsertPrefixDialogueErrorProperties(EClientKicked.AUTH_INVALID_BIOS_ONVALIDATE, "#server_browser_error_unknown", AUTH_PREFIX);
  285. InsertPrefixDialogueErrorProperties(EClientKicked.AUTH_BIOS_WRONG_RESPONSE, "#STR_auth_bios_wrong_response", AUTH_PREFIX);
  286. InsertPrefixDialogueErrorProperties(EClientKicked.AUTH_UNKNOWN_BIOS_ONVALIDATE, "#server_browser_error_unknown", AUTH_PREFIX);
  287. // BattlEye Kicks
  288. InsertExtendedPrefixDialogueErrorProperties(EClientKicked.BATTLEYE, "", "BattlEye\n");
  289. // Unauthorized Network Message
  290. InsertDialogueErrorProperties(EClientKicked.UNM1, UNM_MESSAGE);
  291. InsertDialogueErrorProperties(EClientKicked.UNM2, UNM_MESSAGE);
  292. InsertDialogueErrorProperties(EClientKicked.UNM3, UNM_MESSAGE);
  293. InsertDialogueErrorProperties(EClientKicked.UNM4, UNM_MESSAGE);
  294. InsertDialogueErrorProperties(EClientKicked.UNM5, UNM_MESSAGE);
  295. InsertDialogueErrorProperties(EClientKicked.UNM6, UNM_MESSAGE);
  296. }
  297. }
  298. /*class ClientKickedModuleUI : UIScriptedMenu
  299. {
  300. override bool OnModalResult(Widget w, int x, int y, int code, int result)
  301. {
  302. super.OnModalResult(w, x, y, code, result);
  303. int error = ErrorModuleHandler.GetCodeFromError(code);
  304. switch ( error )
  305. {
  306. default:
  307. break;
  308. }
  309. return true;
  310. }
  311. }*/