diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Protobuf/ProtobufAxibugEmuOnline.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/Protobuf/ProtobufAxibugEmuOnline.cs index 188c6399..03dca7a1 100644 --- a/AxibugEmuOnline.Client/Assets/Script/AppMain/Protobuf/ProtobufAxibugEmuOnline.cs +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Protobuf/ProtobufAxibugEmuOnline.cs @@ -52,96 +52,97 @@ namespace AxibugProtobuf { "EgsKA1VJRBgBIAEoAxIuCghVc2VySW5mbxgCIAEoCzIcLkF4aWJ1Z1Byb3Rv", "YnVmLlVzZXJNaW5pSW5mbyIUChJQcm90b2J1Zl9Sb29tX0xpc3QiWwoXUHJv", "dG9idWZfUm9vbV9MaXN0X1JFU1ASQAoQUm9vbU1pbmlJbmZvTGlzdBgBIAMo", - "CzImLkF4aWJ1Z1Byb3RvYnVmLlByb3RvYnVmX1Jvb21fTWluaUluZm8ikAIK", + "CzImLkF4aWJ1Z1Byb3RvYnVmLlByb3RvYnVmX1Jvb21fTWluaUluZm8iywIK", "FlByb3RvYnVmX1Jvb21fTWluaUluZm8SDgoGUm9vbUlEGAEgASgFEhEKCUdh", - "bWVSb21JRBgCIAEoBRITCgtHYW1lUm9tSGFzaBgDIAEoCRIVCg1Ib3N0UGxh", - "eWVyVUlEGAQgASgDEjAKCUdhbWVTdGF0ZRgFIAEoDjIdLkF4aWJ1Z1Byb3Rv", - "YnVmLlJvb21HYW1lU3RhdGUSFAoMT2JzVXNlckNvdW50GAYgASgFEhkKEVNj", - "cmVlblByb3ZpZGVyVUlEGAcgASgDEkQKEEdhbWVQbGF5U2xvdExpc3QYCCAD", - "KAsyKi5BeGlidWdQcm90b2J1Zi5Qcm90b2J1Zl9Sb29tX0dhbWVQbGF5U2xv", - "dCLRAQoaUHJvdG9idWZfUm9vbV9HYW1lUGxheVNsb3QSEgoKUGxheWVyX1VJ", - "RBgBIAEoAxIXCg9QbGF5ZXJfTmlja05hbWUYAiABKAkSLgoKZGV2aWNlVHlw", - "ZRgDIAEoDjIaLkF4aWJ1Z1Byb3RvYnVmLkRldmljZVR5cGUSGQoRUGxheWVy", - "TG9jYWxKb3lJZHgYBCABKAUSOwoWUGxheWVyTG9jYWxHYW1lUGFkVHlwZRgF", - "IAEoDjIbLkF4aWJ1Z1Byb3RvYnVmLkdhbWVQYWRUeXBlIm0KGVByb3RvYnVm", - "X1Jvb21fVXBkYXRlX1JFU1ASEgoKVXBkYXRlVHlwZRgBIAEoBRI8CgxSb29t", - "TWluaUluZm8YAiABKAsyJi5BeGlidWdQcm90b2J1Zi5Qcm90b2J1Zl9Sb29t", - "X01pbmlJbmZvIksKFVByb3RvYnVmX1NjcmVubl9GcmFtZRIOCgZSb29tSUQY", - "ASABKAUSDwoHRnJhbWVJRBgCIAEoBRIRCglSYXdCaXRtYXAYAyABKAwiSQoj", - "UHJvdG9idWZfUm9vbV9TaW5nbGVQbGF5ZXJJbnB1dERhdGESDwoHRnJhbWVJ", - "RBgBIAEoDRIRCglJbnB1dERhdGEYAiABKA0igAEKJ1Byb3RvYnVmX1Jvb21f", - "U3luX1Jvb21GcmFtZUFsbElucHV0RGF0YRIPCgdGcmFtZUlEGAEgASgNEhEK", - "CUlucHV0RGF0YRgCIAEoBBIVCg1TZXJ2ZXJGcmFtZUlEGAMgASgNEhoKElNl", - "cnZlckZvcndhcmRDb3VudBgEIAEoDSI+ChRQcm90b2J1Zl9Sb29tX0NyZWF0", - "ZRIRCglHYW1lUm9tSUQYASABKAUSEwoLR2FtZVJvbUhhc2gYAiABKAkiWQoZ", - "UHJvdG9idWZfUm9vbV9DcmVhdGVfUkVTUBI8CgxSb29tTWluaUluZm8YASAB", - "KAsyJi5BeGlidWdQcm90b2J1Zi5Qcm90b2J1Zl9Sb29tX01pbmlJbmZvIiQK", - "ElByb3RvYnVmX1Jvb21fSm9pbhIOCgZSb29tSUQYASABKAUiVwoXUHJvdG9i", - "dWZfUm9vbV9Kb2luX1JFU1ASPAoMUm9vbU1pbmlJbmZvGAEgASgLMiYuQXhp", - "YnVnUHJvdG9idWYuUHJvdG9idWZfUm9vbV9NaW5pSW5mbyIlChNQcm90b2J1", - "Zl9Sb29tX0xlYXZlEg4KBlJvb21JRBgBIAEoBSIqChhQcm90b2J1Zl9Sb29t", - "X0xlYXZlX1JFU1ASDgoGUm9vbUlEGAEgASgFImEKIVByb3RvYnVmX1Jvb21f", - "TXlSb29tX1N0YXRlX0NoYW5nZRI8CgxSb29tTWluaUluZm8YASABKAsyJi5B", - "eGlidWdQcm90b2J1Zi5Qcm90b2J1Zl9Sb29tX01pbmlJbmZvImsKJFByb3Rv", - "YnVmX1Jvb21fQ2hhbmdlX1BsYXlTbG90V2l0aEpveRJDCgtTbG90V2l0aEpv", - "eRgBIAMoCzIuLkF4aWJ1Z1Byb3RvYnVmLlByb3RvYnVmX1BsYXlTbG90SWR4", - "V2l0aEpveUlkeCKPAQoeUHJvdG9idWZfUGxheVNsb3RJZHhXaXRoSm95SWR4", - "EhUKDVBsYXllclNsb3RJZHgYASABKAUSGQoRUGxheWVyTG9jYWxKb3lJZHgY", - "AiABKAUSOwoWUGxheWVyTG9jYWxHYW1lUGFkVHlwZRgDIAEoDjIbLkF4aWJ1", - "Z1Byb3RvYnVmLkdhbWVQYWRUeXBlIisKKVByb3RvYnVmX1Jvb21fQ2hhbmdl", - "X1BsYXlTbG90V2l0aEpveV9SRVNQIkUKG1Byb3RvYnVmX1Jvb21fV2FpdFN0", - "ZXBfUkVTUBIQCghXYWl0U3RlcBgBIAEoBRIUCgxMb2FkU3RhdGVSYXcYAiAB", - "KAwiPwonUHJvdG9idWZfUm9vbV9Ib3N0UGxheWVyX1VwZGF0ZVN0YXRlUmF3", - "EhQKDExvYWRTdGF0ZVJhdxgBIAEoDCIuCixQcm90b2J1Zl9Sb29tX0hvc3RQ", - "bGF5ZXJfVXBkYXRlU3RhdGVSYXdfUkVTUCKaAQoaUHJvdG9idWZfUm9vbV9Q", - "bGF5ZXJfUmVhZHkSGwoTUHVzaEZyYW1lTmVlZFRpbWVVcxgBIAEoAhIbChNM", - "b2FkU3RhdGVOZWVkVGltZVVzGAIgASgCEiAKGFZpZGVvRnJhbWVTaG93TmVl", - "ZFRpbWVVcxgDIAEoAhIgChhBdWRpb0ZyYW1lUGxheU5lZWRUaW1lVXMYBCAB", - "KAIiKgoYUHJvdG9idWZfUm9vbV9HZXRfU2NyZWVuEg4KBlJvb21JRBgBIAEo", - "BSJTCh1Qcm90b2J1Zl9Sb29tX0dldF9TY3JlZW5fUkVTUBIOCgZSb29tSUQY", - "ASABKAUSDwoHRnJhbWVJRBgCIAEoBRIRCglSYXdCaXRtYXAYAyABKAwiMgoS", - "UHJvdG9idWZfR2FtZV9NYXJrEg0KBVJvbUlEGAEgASgFEg0KBXN0YXRlGAIg", - "ASgFIigKF1Byb3RvYnVmX0dhbWVfTWFya19SRVNQEg0KBVJvbUlEGAEgASgF", - "KqEFCglDb21tYW5kSUQSDgoKQ01EX0RFRkFVTBAAEgwKCENNRF9QSU5HEAES", - "DAoIQ01EX1BPTkcQAhIOCglDTURfTE9HSU4Q0Q8SGAoTQ01EX1VTRVJfT05M", - "SU5FTElTVBC4FxISCg1DTURfVVNFUl9KT0lOENcXEhMKDkNNRF9VU0VSX0xF", - "QVZFENgXEhoKFUNNRF9VU0VSX1NUQVRFX1VQREFURRDZFxIYChNDTURfTW9k", - "aWZ5X05pY2tOYW1lEJ0YEhwKF0NNRF9VcGRhdGVfU2VsZlVzZXJJbmZvEKYY", - "Eh0KGENNRF9VcGRhdGVfT3RoZXJVc2VySW5mbxCoGBIQCgtDTURfQ0hBVE1T", - "RxChHxISCg1DTURfUm9vbV9MaXN0EIknEhkKFENNRF9Sb29tX0xpc3RfVXBk", - "YXRlEIonEhgKE0NNRF9Sb29tX0dldF9TY3JlZW4QkycSFAoPQ01EX1Jvb21f", - "Q3JlYXRlEO0nEhIKDUNNRF9Sb29tX0pvaW4Q8ScSEwoOQ01EX1Jvb21fTGVh", - "dmUQ8icSIgodQ01EX1Jvb21fTXlSb29tX1N0YXRlX0NoYW5nZWQQ9icSIQoc", - "Q01EX1Jvb21fQ2hhbmdlUGxheWVyV2l0aEpveRCKKBIWChFDTURfUm9vbV9X", - "YWl0U3RlcBDRKBInCiJDTURfUm9vbV9Ib3N0UGxheWVyX1VwZGF0ZVN0YXRl", - "UmF3ENQoEhoKFUNNRF9Sb29tX1BsYXllcl9SZWFkeRDYKBIgChtDTURfUm9v", - "bV9TaW5nZWxfUGxheWVySW5wdXQQ+i4SHQoYQ01EX1JPT01fU1lOX1BsYXll", - "cklucHV0EP8uEg8KCkNNRF9TY3JlZW4Q2TYSEgoNQ01EX0dBTUVfTUFSSxD1", - "TirQAQoJRXJyb3JDb2RlEhAKDEVSUk9SX0RFRkFVTBAAEgwKCEVSUk9SX09L", - "EAESGAoURVJST1JfUk9PTV9OT1RfRk9VTkQQChInCiNFUlJPUl9ST09NX1NM", - "T1RfQUxSRUFETFlfSEFEX1BMQVlFUhALEiEKHUVSUk9SX1JPT01fQ0FOVF9E", - "T19DVVJSX1NUQVRFEDISHwoaRVJST1JfUk9NX0FMUkVBRFlfSEFEX1NUQVIQ", - "kwMSHAoXRVJST1JfUk9NX0RPTlRfSEFEX1NUQVIQlAMqQAoJTG9naW5UeXBl", - "Eg0KCVVzZURldmljZRAAEg4KClVzZUFjY291bnQQARIUChBVc2VIYW9ZdWVB", - "Y2NvdW50EAIqpQEKCkRldmljZVR5cGUSFgoSRGV2aWNlVHlwZV9EZWZhdWx0", - "EAASBgoCUEMQARILCgdBbmRyb2lkEAISBwoDSU9TEAMSBwoDUFNWEAQSBwoD", - "UFMzEAUSBwoDUFM0EAYSCwoHWEJPWDM2MBAHEgsKB1hCT1hPTkUQCBIICgRX", - "aWlVEAkSDwoLTmludGVuZG8zRFMQChIRCg1BbmRyb2lkQ2FyQXBwEAsqkwIK", - "C0dhbWVQYWRUeXBlEgwKCEtleWJvYXJkEAASEQoNR2xvYmFsR2FtZVBhZBAB", - "Eg4KClRvdWNoUGFuZWwQAhIOCgpEUzNDb250cm9sEAMSDgoKRFM0Q29udHJv", - "bBAEEg4KCkRTNUNvbnRyb2wQBRIUChBTd2l0Y2hQcm9Db250cm9sEAYSEAoM", - "U3dpdGNoSm95Q29uEAcSEgoOWEJPWDM2MENvbnRyb2wQCBISCg5YQk9YT05F", - "Q29udHJvbBAJEhEKDVBTVml0YUNvbnRyb2wQChISCg5XaWlVUGFkQ29udHJv", - "bBALEhQKEFdpaVJlbW90ZUNvbnRyb2wQDBIWChJOaW50ZW5kbzNEU0NvbnRy", - "b2wQDSqiAQoPUm9tUGxhdGZvcm1UeXBlEgsKB0ludmFsaWQQABIHCgNOZXMQ", - "ARIRCg1NYXN0ZXJfU3lzdGVtEAISDQoJR2FtZV9HZWFyEAMSDAoIR2FtZV9C", - "b3kQBBISCg5HYW1lX0JveV9Db2xvchAFEhEKDUNvbGVjb19WaXNpb24QBhIL", - "CgdTQ18zMDAwEAcSCwoHU0dfMTAwMBAIEggKA0FsbBDnBypwCg1Sb29tR2Ft", - "ZVN0YXRlEhIKDk5vbmVfR2FtZVN0YXRlEAASDAoIT25seUhvc3QQARIRCg1X", - "YWl0UmF3VXBkYXRlEAISDQoJV2FpdFJlYWR5EAMSCQoFUGF1c2UQBBIQCgxJ", - "bk9ubGluZUdhbWUQBSpOChFMb2dpblJlc3VsdFN0YXR1cxIhCh1Mb2dpblJl", - "c3VsdFN0YXR1c19CYXNlRGVmYXVsdBAAEgYKAk9LEAESDgoKQWNjb3VudEVy", - "chACQgJIAWIGcHJvdG8z")); + "bWVSb21JRBgCIAEoBRITCgtHYW1lUm9tSGFzaBgDIAEoCRI5ChBHYW1lUGxh", + "dGZvcm1UeXBlGAQgASgOMh8uQXhpYnVnUHJvdG9idWYuUm9tUGxhdGZvcm1U", + "eXBlEhUKDUhvc3RQbGF5ZXJVSUQYBSABKAMSMAoJR2FtZVN0YXRlGAYgASgO", + "Mh0uQXhpYnVnUHJvdG9idWYuUm9vbUdhbWVTdGF0ZRIUCgxPYnNVc2VyQ291", + "bnQYByABKAUSGQoRU2NyZWVuUHJvdmlkZXJVSUQYCCABKAMSRAoQR2FtZVBs", + "YXlTbG90TGlzdBgJIAMoCzIqLkF4aWJ1Z1Byb3RvYnVmLlByb3RvYnVmX1Jv", + "b21fR2FtZVBsYXlTbG90ItEBChpQcm90b2J1Zl9Sb29tX0dhbWVQbGF5U2xv", + "dBISCgpQbGF5ZXJfVUlEGAEgASgDEhcKD1BsYXllcl9OaWNrTmFtZRgCIAEo", + "CRIuCgpkZXZpY2VUeXBlGAMgASgOMhouQXhpYnVnUHJvdG9idWYuRGV2aWNl", + "VHlwZRIZChFQbGF5ZXJMb2NhbEpveUlkeBgEIAEoBRI7ChZQbGF5ZXJMb2Nh", + "bEdhbWVQYWRUeXBlGAUgASgOMhsuQXhpYnVnUHJvdG9idWYuR2FtZVBhZFR5", + "cGUibQoZUHJvdG9idWZfUm9vbV9VcGRhdGVfUkVTUBISCgpVcGRhdGVUeXBl", + "GAEgASgFEjwKDFJvb21NaW5pSW5mbxgCIAEoCzImLkF4aWJ1Z1Byb3RvYnVm", + "LlByb3RvYnVmX1Jvb21fTWluaUluZm8iSwoVUHJvdG9idWZfU2NyZW5uX0Zy", + "YW1lEg4KBlJvb21JRBgBIAEoBRIPCgdGcmFtZUlEGAIgASgFEhEKCVJhd0Jp", + "dG1hcBgDIAEoDCJJCiNQcm90b2J1Zl9Sb29tX1NpbmdsZVBsYXllcklucHV0", + "RGF0YRIPCgdGcmFtZUlEGAEgASgNEhEKCUlucHV0RGF0YRgCIAEoDSKAAQon", + "UHJvdG9idWZfUm9vbV9TeW5fUm9vbUZyYW1lQWxsSW5wdXREYXRhEg8KB0Zy", + "YW1lSUQYASABKA0SEQoJSW5wdXREYXRhGAIgASgEEhUKDVNlcnZlckZyYW1l", + "SUQYAyABKA0SGgoSU2VydmVyRm9yd2FyZENvdW50GAQgASgNIj4KFFByb3Rv", + "YnVmX1Jvb21fQ3JlYXRlEhEKCUdhbWVSb21JRBgBIAEoBRITCgtHYW1lUm9t", + "SGFzaBgCIAEoCSJZChlQcm90b2J1Zl9Sb29tX0NyZWF0ZV9SRVNQEjwKDFJv", + "b21NaW5pSW5mbxgBIAEoCzImLkF4aWJ1Z1Byb3RvYnVmLlByb3RvYnVmX1Jv", + "b21fTWluaUluZm8iJAoSUHJvdG9idWZfUm9vbV9Kb2luEg4KBlJvb21JRBgB", + "IAEoBSJXChdQcm90b2J1Zl9Sb29tX0pvaW5fUkVTUBI8CgxSb29tTWluaUlu", + "Zm8YASABKAsyJi5BeGlidWdQcm90b2J1Zi5Qcm90b2J1Zl9Sb29tX01pbmlJ", + "bmZvIiUKE1Byb3RvYnVmX1Jvb21fTGVhdmUSDgoGUm9vbUlEGAEgASgFIioK", + "GFByb3RvYnVmX1Jvb21fTGVhdmVfUkVTUBIOCgZSb29tSUQYASABKAUiYQoh", + "UHJvdG9idWZfUm9vbV9NeVJvb21fU3RhdGVfQ2hhbmdlEjwKDFJvb21NaW5p", + "SW5mbxgBIAEoCzImLkF4aWJ1Z1Byb3RvYnVmLlByb3RvYnVmX1Jvb21fTWlu", + "aUluZm8iawokUHJvdG9idWZfUm9vbV9DaGFuZ2VfUGxheVNsb3RXaXRoSm95", + "EkMKC1Nsb3RXaXRoSm95GAEgAygLMi4uQXhpYnVnUHJvdG9idWYuUHJvdG9i", + "dWZfUGxheVNsb3RJZHhXaXRoSm95SWR4Io8BCh5Qcm90b2J1Zl9QbGF5U2xv", + "dElkeFdpdGhKb3lJZHgSFQoNUGxheWVyU2xvdElkeBgBIAEoBRIZChFQbGF5", + "ZXJMb2NhbEpveUlkeBgCIAEoBRI7ChZQbGF5ZXJMb2NhbEdhbWVQYWRUeXBl", + "GAMgASgOMhsuQXhpYnVnUHJvdG9idWYuR2FtZVBhZFR5cGUiKwopUHJvdG9i", + "dWZfUm9vbV9DaGFuZ2VfUGxheVNsb3RXaXRoSm95X1JFU1AiRQobUHJvdG9i", + "dWZfUm9vbV9XYWl0U3RlcF9SRVNQEhAKCFdhaXRTdGVwGAEgASgFEhQKDExv", + "YWRTdGF0ZVJhdxgCIAEoDCI/CidQcm90b2J1Zl9Sb29tX0hvc3RQbGF5ZXJf", + "VXBkYXRlU3RhdGVSYXcSFAoMTG9hZFN0YXRlUmF3GAEgASgMIi4KLFByb3Rv", + "YnVmX1Jvb21fSG9zdFBsYXllcl9VcGRhdGVTdGF0ZVJhd19SRVNQIpoBChpQ", + "cm90b2J1Zl9Sb29tX1BsYXllcl9SZWFkeRIbChNQdXNoRnJhbWVOZWVkVGlt", + "ZVVzGAEgASgCEhsKE0xvYWRTdGF0ZU5lZWRUaW1lVXMYAiABKAISIAoYVmlk", + "ZW9GcmFtZVNob3dOZWVkVGltZVVzGAMgASgCEiAKGEF1ZGlvRnJhbWVQbGF5", + "TmVlZFRpbWVVcxgEIAEoAiIqChhQcm90b2J1Zl9Sb29tX0dldF9TY3JlZW4S", + "DgoGUm9vbUlEGAEgASgFIlMKHVByb3RvYnVmX1Jvb21fR2V0X1NjcmVlbl9S", + "RVNQEg4KBlJvb21JRBgBIAEoBRIPCgdGcmFtZUlEGAIgASgFEhEKCVJhd0Jp", + "dG1hcBgDIAEoDCIyChJQcm90b2J1Zl9HYW1lX01hcmsSDQoFUm9tSUQYASAB", + "KAUSDQoFc3RhdGUYAiABKAUiKAoXUHJvdG9idWZfR2FtZV9NYXJrX1JFU1AS", + "DQoFUm9tSUQYASABKAUqoQUKCUNvbW1hbmRJRBIOCgpDTURfREVGQVVMEAAS", + "DAoIQ01EX1BJTkcQARIMCghDTURfUE9ORxACEg4KCUNNRF9MT0dJThDRDxIY", + "ChNDTURfVVNFUl9PTkxJTkVMSVNUELgXEhIKDUNNRF9VU0VSX0pPSU4Q1xcS", + "EwoOQ01EX1VTRVJfTEVBVkUQ2BcSGgoVQ01EX1VTRVJfU1RBVEVfVVBEQVRF", + "ENkXEhgKE0NNRF9Nb2RpZnlfTmlja05hbWUQnRgSHAoXQ01EX1VwZGF0ZV9T", + "ZWxmVXNlckluZm8QphgSHQoYQ01EX1VwZGF0ZV9PdGhlclVzZXJJbmZvEKgY", + "EhAKC0NNRF9DSEFUTVNHEKEfEhIKDUNNRF9Sb29tX0xpc3QQiScSGQoUQ01E", + "X1Jvb21fTGlzdF9VcGRhdGUQiicSGAoTQ01EX1Jvb21fR2V0X1NjcmVlbhCT", + "JxIUCg9DTURfUm9vbV9DcmVhdGUQ7ScSEgoNQ01EX1Jvb21fSm9pbhDxJxIT", + "Cg5DTURfUm9vbV9MZWF2ZRDyJxIiCh1DTURfUm9vbV9NeVJvb21fU3RhdGVf", + "Q2hhbmdlZBD2JxIhChxDTURfUm9vbV9DaGFuZ2VQbGF5ZXJXaXRoSm95EIoo", + "EhYKEUNNRF9Sb29tX1dhaXRTdGVwENEoEicKIkNNRF9Sb29tX0hvc3RQbGF5", + "ZXJfVXBkYXRlU3RhdGVSYXcQ1CgSGgoVQ01EX1Jvb21fUGxheWVyX1JlYWR5", + "ENgoEiAKG0NNRF9Sb29tX1NpbmdlbF9QbGF5ZXJJbnB1dBD6LhIdChhDTURf", + "Uk9PTV9TWU5fUGxheWVySW5wdXQQ/y4SDwoKQ01EX1NjcmVlbhDZNhISCg1D", + "TURfR0FNRV9NQVJLEPVOKtABCglFcnJvckNvZGUSEAoMRVJST1JfREVGQVVM", + "EAASDAoIRVJST1JfT0sQARIYChRFUlJPUl9ST09NX05PVF9GT1VORBAKEicK", + "I0VSUk9SX1JPT01fU0xPVF9BTFJFQURMWV9IQURfUExBWUVSEAsSIQodRVJS", + "T1JfUk9PTV9DQU5UX0RPX0NVUlJfU1RBVEUQMhIfChpFUlJPUl9ST01fQUxS", + "RUFEWV9IQURfU1RBUhCTAxIcChdFUlJPUl9ST01fRE9OVF9IQURfU1RBUhCU", + "AypACglMb2dpblR5cGUSDQoJVXNlRGV2aWNlEAASDgoKVXNlQWNjb3VudBAB", + "EhQKEFVzZUhhb1l1ZUFjY291bnQQAiqlAQoKRGV2aWNlVHlwZRIWChJEZXZp", + "Y2VUeXBlX0RlZmF1bHQQABIGCgJQQxABEgsKB0FuZHJvaWQQAhIHCgNJT1MQ", + "AxIHCgNQU1YQBBIHCgNQUzMQBRIHCgNQUzQQBhILCgdYQk9YMzYwEAcSCwoH", + "WEJPWE9ORRAIEggKBFdpaVUQCRIPCgtOaW50ZW5kbzNEUxAKEhEKDUFuZHJv", + "aWRDYXJBcHAQCyqTAgoLR2FtZVBhZFR5cGUSDAoIS2V5Ym9hcmQQABIRCg1H", + "bG9iYWxHYW1lUGFkEAESDgoKVG91Y2hQYW5lbBACEg4KCkRTM0NvbnRyb2wQ", + "AxIOCgpEUzRDb250cm9sEAQSDgoKRFM1Q29udHJvbBAFEhQKEFN3aXRjaFBy", + "b0NvbnRyb2wQBhIQCgxTd2l0Y2hKb3lDb24QBxISCg5YQk9YMzYwQ29udHJv", + "bBAIEhIKDlhCT1hPTkVDb250cm9sEAkSEQoNUFNWaXRhQ29udHJvbBAKEhIK", + "DldpaVVQYWRDb250cm9sEAsSFAoQV2lpUmVtb3RlQ29udHJvbBAMEhYKEk5p", + "bnRlbmRvM0RTQ29udHJvbBANKqIBCg9Sb21QbGF0Zm9ybVR5cGUSCwoHSW52", + "YWxpZBAAEgcKA05lcxABEhEKDU1hc3Rlcl9TeXN0ZW0QAhINCglHYW1lX0dl", + "YXIQAxIMCghHYW1lX0JveRAEEhIKDkdhbWVfQm95X0NvbG9yEAUSEQoNQ29s", + "ZWNvX1Zpc2lvbhAGEgsKB1NDXzMwMDAQBxILCgdTR18xMDAwEAgSCAoDQWxs", + "EOcHKnAKDVJvb21HYW1lU3RhdGUSEgoOTm9uZV9HYW1lU3RhdGUQABIMCghP", + "bmx5SG9zdBABEhEKDVdhaXRSYXdVcGRhdGUQAhINCglXYWl0UmVhZHkQAxIJ", + "CgVQYXVzZRAEEhAKDEluT25saW5lR2FtZRAFKk4KEUxvZ2luUmVzdWx0U3Rh", + "dHVzEiEKHUxvZ2luUmVzdWx0U3RhdHVzX0Jhc2VEZWZhdWx0EAASBgoCT0sQ", + "ARIOCgpBY2NvdW50RXJyEAJCAkgBYgZwcm90bzM=")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { }, new pbr::GeneratedClrTypeInfo(new[] {typeof(global::AxibugProtobuf.CommandID), typeof(global::AxibugProtobuf.ErrorCode), typeof(global::AxibugProtobuf.LoginType), typeof(global::AxibugProtobuf.DeviceType), typeof(global::AxibugProtobuf.GamePadType), typeof(global::AxibugProtobuf.RomPlatformType), typeof(global::AxibugProtobuf.RoomGameState), typeof(global::AxibugProtobuf.LoginResultStatus), }, null, new pbr::GeneratedClrTypeInfo[] { @@ -163,7 +164,7 @@ namespace AxibugProtobuf { new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Update_OtherUserInfo_RESP), global::AxibugProtobuf.Protobuf_Update_OtherUserInfo_RESP.Parser, new[]{ "UID", "UserInfo" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_List), global::AxibugProtobuf.Protobuf_Room_List.Parser, null, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_List_RESP), global::AxibugProtobuf.Protobuf_Room_List_RESP.Parser, new[]{ "RoomMiniInfoList" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_MiniInfo), global::AxibugProtobuf.Protobuf_Room_MiniInfo.Parser, new[]{ "RoomID", "GameRomID", "GameRomHash", "HostPlayerUID", "GameState", "ObsUserCount", "ScreenProviderUID", "GamePlaySlotList" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_MiniInfo), global::AxibugProtobuf.Protobuf_Room_MiniInfo.Parser, new[]{ "RoomID", "GameRomID", "GameRomHash", "GamePlatformType", "HostPlayerUID", "GameState", "ObsUserCount", "ScreenProviderUID", "GamePlaySlotList" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_GamePlaySlot), global::AxibugProtobuf.Protobuf_Room_GamePlaySlot.Parser, new[]{ "PlayerUID", "PlayerNickName", "DeviceType", "PlayerLocalJoyIdx", "PlayerLocalGamePadType" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_Update_RESP), global::AxibugProtobuf.Protobuf_Room_Update_RESP.Parser, new[]{ "UpdateType", "RoomMiniInfo" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Screnn_Frame), global::AxibugProtobuf.Protobuf_Screnn_Frame.Parser, new[]{ "RoomID", "FrameID", "RawBitmap" }, null, null, null, null), @@ -4197,6 +4198,7 @@ namespace AxibugProtobuf { roomID_ = other.roomID_; gameRomID_ = other.gameRomID_; gameRomHash_ = other.gameRomHash_; + gamePlatformType_ = other.gamePlatformType_; hostPlayerUID_ = other.hostPlayerUID_; gameState_ = other.gameState_; obsUserCount_ = other.obsUserCount_; @@ -4249,8 +4251,19 @@ namespace AxibugProtobuf { } } + /// Field number for the "GamePlatformType" field. + public const int GamePlatformTypeFieldNumber = 4; + private global::AxibugProtobuf.RomPlatformType gamePlatformType_ = global::AxibugProtobuf.RomPlatformType.Invalid; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public global::AxibugProtobuf.RomPlatformType GamePlatformType { + get { return gamePlatformType_; } + set { + gamePlatformType_ = value; + } + } + /// Field number for the "HostPlayerUID" field. - public const int HostPlayerUIDFieldNumber = 4; + public const int HostPlayerUIDFieldNumber = 5; private long hostPlayerUID_; /// ///主机玩家ID @@ -4264,7 +4277,7 @@ namespace AxibugProtobuf { } /// Field number for the "GameState" field. - public const int GameStateFieldNumber = 5; + public const int GameStateFieldNumber = 6; private global::AxibugProtobuf.RoomGameState gameState_ = global::AxibugProtobuf.RoomGameState.NoneGameState; /// ///游戏状态 @@ -4278,7 +4291,7 @@ namespace AxibugProtobuf { } /// Field number for the "ObsUserCount" field. - public const int ObsUserCountFieldNumber = 6; + public const int ObsUserCountFieldNumber = 7; private int obsUserCount_; /// ///观战用户数量 @@ -4292,7 +4305,7 @@ namespace AxibugProtobuf { } /// Field number for the "ScreenProviderUID" field. - public const int ScreenProviderUIDFieldNumber = 7; + public const int ScreenProviderUIDFieldNumber = 8; private long screenProviderUID_; /// ///屏幕数据供应者 @@ -4306,9 +4319,9 @@ namespace AxibugProtobuf { } /// Field number for the "GamePlaySlotList" field. - public const int GamePlaySlotListFieldNumber = 8; + public const int GamePlaySlotListFieldNumber = 9; private static readonly pb::FieldCodec _repeated_gamePlaySlotList_codec - = pb::FieldCodec.ForMessage(66, global::AxibugProtobuf.Protobuf_Room_GamePlaySlot.Parser); + = pb::FieldCodec.ForMessage(74, global::AxibugProtobuf.Protobuf_Room_GamePlaySlot.Parser); private readonly pbc::RepeatedField gamePlaySlotList_ = new pbc::RepeatedField(); /// ///游玩槽位信息P1~P4 固定4个 @@ -4334,6 +4347,7 @@ namespace AxibugProtobuf { if (RoomID != other.RoomID) return false; if (GameRomID != other.GameRomID) return false; if (GameRomHash != other.GameRomHash) return false; + if (GamePlatformType != other.GamePlatformType) return false; if (HostPlayerUID != other.HostPlayerUID) return false; if (GameState != other.GameState) return false; if (ObsUserCount != other.ObsUserCount) return false; @@ -4348,6 +4362,7 @@ namespace AxibugProtobuf { if (RoomID != 0) hash ^= RoomID.GetHashCode(); if (GameRomID != 0) hash ^= GameRomID.GetHashCode(); if (GameRomHash.Length != 0) hash ^= GameRomHash.GetHashCode(); + if (GamePlatformType != global::AxibugProtobuf.RomPlatformType.Invalid) hash ^= GamePlatformType.GetHashCode(); if (HostPlayerUID != 0L) hash ^= HostPlayerUID.GetHashCode(); if (GameState != global::AxibugProtobuf.RoomGameState.NoneGameState) hash ^= GameState.GetHashCode(); if (ObsUserCount != 0) hash ^= ObsUserCount.GetHashCode(); @@ -4381,20 +4396,24 @@ namespace AxibugProtobuf { output.WriteRawTag(26); output.WriteString(GameRomHash); } - if (HostPlayerUID != 0L) { + if (GamePlatformType != global::AxibugProtobuf.RomPlatformType.Invalid) { output.WriteRawTag(32); + output.WriteEnum((int) GamePlatformType); + } + if (HostPlayerUID != 0L) { + output.WriteRawTag(40); output.WriteInt64(HostPlayerUID); } if (GameState != global::AxibugProtobuf.RoomGameState.NoneGameState) { - output.WriteRawTag(40); + output.WriteRawTag(48); output.WriteEnum((int) GameState); } if (ObsUserCount != 0) { - output.WriteRawTag(48); + output.WriteRawTag(56); output.WriteInt32(ObsUserCount); } if (ScreenProviderUID != 0L) { - output.WriteRawTag(56); + output.WriteRawTag(64); output.WriteInt64(ScreenProviderUID); } gamePlaySlotList_.WriteTo(output, _repeated_gamePlaySlotList_codec); @@ -4419,20 +4438,24 @@ namespace AxibugProtobuf { output.WriteRawTag(26); output.WriteString(GameRomHash); } - if (HostPlayerUID != 0L) { + if (GamePlatformType != global::AxibugProtobuf.RomPlatformType.Invalid) { output.WriteRawTag(32); + output.WriteEnum((int) GamePlatformType); + } + if (HostPlayerUID != 0L) { + output.WriteRawTag(40); output.WriteInt64(HostPlayerUID); } if (GameState != global::AxibugProtobuf.RoomGameState.NoneGameState) { - output.WriteRawTag(40); + output.WriteRawTag(48); output.WriteEnum((int) GameState); } if (ObsUserCount != 0) { - output.WriteRawTag(48); + output.WriteRawTag(56); output.WriteInt32(ObsUserCount); } if (ScreenProviderUID != 0L) { - output.WriteRawTag(56); + output.WriteRawTag(64); output.WriteInt64(ScreenProviderUID); } gamePlaySlotList_.WriteTo(ref output, _repeated_gamePlaySlotList_codec); @@ -4454,6 +4477,9 @@ namespace AxibugProtobuf { if (GameRomHash.Length != 0) { size += 1 + pb::CodedOutputStream.ComputeStringSize(GameRomHash); } + if (GamePlatformType != global::AxibugProtobuf.RomPlatformType.Invalid) { + size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) GamePlatformType); + } if (HostPlayerUID != 0L) { size += 1 + pb::CodedOutputStream.ComputeInt64Size(HostPlayerUID); } @@ -4487,6 +4513,9 @@ namespace AxibugProtobuf { if (other.GameRomHash.Length != 0) { GameRomHash = other.GameRomHash; } + if (other.GamePlatformType != global::AxibugProtobuf.RomPlatformType.Invalid) { + GamePlatformType = other.GamePlatformType; + } if (other.HostPlayerUID != 0L) { HostPlayerUID = other.HostPlayerUID; } @@ -4527,22 +4556,26 @@ namespace AxibugProtobuf { break; } case 32: { - HostPlayerUID = input.ReadInt64(); + GamePlatformType = (global::AxibugProtobuf.RomPlatformType) input.ReadEnum(); break; } case 40: { - GameState = (global::AxibugProtobuf.RoomGameState) input.ReadEnum(); + HostPlayerUID = input.ReadInt64(); break; } case 48: { - ObsUserCount = input.ReadInt32(); + GameState = (global::AxibugProtobuf.RoomGameState) input.ReadEnum(); break; } case 56: { + ObsUserCount = input.ReadInt32(); + break; + } + case 64: { ScreenProviderUID = input.ReadInt64(); break; } - case 66: { + case 74: { gamePlaySlotList_.AddEntriesFrom(input, _repeated_gamePlaySlotList_codec); break; } @@ -4573,22 +4606,26 @@ namespace AxibugProtobuf { break; } case 32: { - HostPlayerUID = input.ReadInt64(); + GamePlatformType = (global::AxibugProtobuf.RomPlatformType) input.ReadEnum(); break; } case 40: { - GameState = (global::AxibugProtobuf.RoomGameState) input.ReadEnum(); + HostPlayerUID = input.ReadInt64(); break; } case 48: { - ObsUserCount = input.ReadInt32(); + GameState = (global::AxibugProtobuf.RoomGameState) input.ReadEnum(); break; } case 56: { + ObsUserCount = input.ReadInt32(); + break; + } + case 64: { ScreenProviderUID = input.ReadInt64(); break; } - case 66: { + case 74: { gamePlaySlotList_.AddEntriesFrom(ref input, _repeated_gamePlaySlotList_codec); break; } diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/RoomUI/RoomItem.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/RoomUI/RoomItem.cs index b926f668..aeb938f0 100644 --- a/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/RoomUI/RoomItem.cs +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/RoomUI/RoomItem.cs @@ -86,7 +86,7 @@ namespace AxibugEmuOnline.Client SetBaseInfo("--", $"{hostNick}的房间", $"{cur}/{max}"); SetIcon(null); - roomInfo.FetchRomFileInRoomInfo(RomPlatformType.Nes, (room, romFile) => + roomInfo.FetchRomFileInRoomInfo(roomInfo.GamePlatformType, (room, romFile) => { if (room.RoomID != RoomID) return; diff --git a/AxibugEmuOnline.Server/Manager/GameShareManager.cs b/AxibugEmuOnline.Server/Manager/GameShareManager.cs index c793691b..030cbe39 100644 --- a/AxibugEmuOnline.Server/Manager/GameShareManager.cs +++ b/AxibugEmuOnline.Server/Manager/GameShareManager.cs @@ -3,11 +3,13 @@ using AxibugEmuOnline.Server.NetWork; using AxibugProtobuf; using MySql.Data.MySqlClient; using System.Net.Sockets; +using System.Security.Policy; namespace AxibugEmuOnline.Server.Manager { public class GameShareManager { + Dictionary mDictRomID2Platform = new Dictionary(); public GameShareManager() { NetMsg.Instance.RegNetMsgEvent((int)CommandID.CmdGameMark, RecvGameMark); @@ -94,5 +96,42 @@ namespace AxibugEmuOnline.Server.Manager respData.RomID = msg.RomID; AppSrv.g_ClientMgr.ClientSend(_c, (int)CommandID.CmdGameMark, (int)ErrorCode.ErrorOk, ProtoBufHelper.Serizlize(respData)); } + + public RomPlatformType GetRomPlatformType(int RomID) + { + if (mDictRomID2Platform.TryGetValue(RomID, out RomPlatformType ptype)) + return ptype; + + ptype = RomPlatformType.Invalid; + MySqlConnection conn = Haoyue_SQLPoolManager.DequeueSQLConn("GetRomPlatformType"); + try + { + string query = "SELECT PlatformType from romlist where Id = ?RomID "; + using (var command = new MySqlCommand(query, conn)) + { + // 设置参数值 + command.Parameters.AddWithValue("?RomID", RomID); + // 执行查询并处理结果 + using (var reader = command.ExecuteReader()) + { + while (reader.Read()) + { + ptype = (RomPlatformType)reader.GetInt32(0); + } + } + } + } + catch (Exception e) + { + AppSrv.g_Log.Error(e); + } + + if (ptype == RomPlatformType.Invalid) + AppSrv.g_Log.Error($"RomID {RomID} 没找到平台配置"); + + Haoyue_SQLPoolManager.EnqueueSQLConn(conn); + + return ptype; + } } } diff --git a/AxibugEmuOnline.Server/Manager/LogManager.cs b/AxibugEmuOnline.Server/Manager/LogManager.cs index 037ed52e..89a22e54 100644 --- a/AxibugEmuOnline.Server/Manager/LogManager.cs +++ b/AxibugEmuOnline.Server/Manager/LogManager.cs @@ -40,6 +40,11 @@ namespace AxibugEmuOnline.Server.Manager Console.WriteLine(str); } + public void Error(Exception e) + { + Console.WriteLine($"Error: {e.Message}"); + } + public void Log(int logtype, string str) { Console.WriteLine(str); diff --git a/AxibugEmuOnline.Server/Manager/RoomManager.cs b/AxibugEmuOnline.Server/Manager/RoomManager.cs index d5a15ea1..d7b49d3d 100644 --- a/AxibugEmuOnline.Server/Manager/RoomManager.cs +++ b/AxibugEmuOnline.Server/Manager/RoomManager.cs @@ -152,6 +152,7 @@ namespace AxibugEmuOnline.Server HostPlayerUID = room.HostUID, GameState = room.GameState, ObsUserCount = 0,//TODO + GamePlatformType = room.GameRomPlatformType }; for (byte i = 0; i < room.PlayerSlot.Count(); i++) @@ -236,9 +237,10 @@ namespace AxibugEmuOnline.Server ClientInfo _c = AppSrv.g_ClientMgr.GetClientForSocket(sk); Protobuf_Room_Create msg = ProtoBufHelper.DeSerizlize(reqData); Protobuf_Room_Create_RESP resp = new Protobuf_Room_Create_RESP(); - Data_RoomData newRoom = new Data_RoomData(); - newRoom.Init(GetNewRoomID(), msg.GameRomID, msg.GameRomHash, _c.UID); + + RomPlatformType ptype = AppSrv.g_GameShareMgr.GetRomPlatformType(msg.GameRomID); + newRoom.Init(GetNewRoomID(), msg.GameRomID, msg.GameRomHash, _c.UID, false,ptype); AddRoom(newRoom); ErrorCode joinErrcode = ErrorCode.ErrorOk; //加入 @@ -610,10 +612,11 @@ namespace AxibugEmuOnline.Server { public int RoomID { get; private set; } public int GameRomID { get; private set; } + public RomPlatformType GameRomPlatformType { get; private set; } public string RomHash { get; private set; } public long HostUID { get; private set; } public long ScreenProviderUID { get; private set; } - public Data_RoomSlot[] PlayerSlot; + public Data_RoomSlot[] PlayerSlot { get; private set; } public long Player1_UID => PlayerSlot[0].UID; public long Player2_UID => PlayerSlot[1].UID; public long Player3_UID => PlayerSlot[2].UID; @@ -658,11 +661,13 @@ namespace AxibugEmuOnline.Server /// 服务器提前帧数 /// public uint SrvForwardFrames { get; set; } - public void Init(int roomID, int gameRomID, string roomHash, long hostUId, bool bloadState = false) + + public void Init(int roomID, int gameRomID, string roomHash, long hostUId, bool bloadState = false, RomPlatformType ptype = default) { Dispose(); RoomID = roomID; GameRomID = gameRomID; + GameRomPlatformType = ptype; RomHash = roomHash; HostUID = hostUId; ScreenProviderUID = hostUId; diff --git a/AxibugEmuOnline.Server/Program.cs b/AxibugEmuOnline.Server/Program.cs index 37f2f044..cc963728 100644 --- a/AxibugEmuOnline.Server/Program.cs +++ b/AxibugEmuOnline.Server/Program.cs @@ -21,7 +21,6 @@ namespace AxibugEmuOnline.Server { case "rlist": { - List roomlist = ObjectPoolAuto.AcquireList(); AppSrv.g_Room.GetRoomList(ref roomlist); @@ -30,6 +29,7 @@ namespace AxibugEmuOnline.Server { AppSrv.g_Log.Info($"----- RoomID:{room.RoomID} -----"); AppSrv.g_Log.Info($"GameRomID:{room.GameRomID}"); + AppSrv.g_Log.Info($"RomPlatformType:{room.GameRomPlatformType}"); AppSrv.g_Log.Info($"GameState:{room.GameState}"); AppSrv.g_Log.Info($"HostUID:{room.HostUID}"); AppSrv.g_Log.Info($"mCurrFrameId:{room.mCurrServerFrameId}"); @@ -50,8 +50,8 @@ namespace AxibugEmuOnline.Server AppSrv.g_Log.Info($" UID->{room.PlayerSlot[i].UID}"); AppSrv.g_Log.Info($" NickName->{_c.NickName}"); AppSrv.g_Log.Info($" AveNetDelay->{_c.AveNetDelay}"); - AppSrv.g_Log.Info($" LocalJoyIdx->{room.PlayerSlot[i].LocalJoyIdx}"); - } + AppSrv.g_Log.Info($" LocalJoyIdx->{room.PlayerSlot[i].LocalJoyIdx}"); + } else { AppSrv.g_Log.Info($" None"); diff --git a/AxibugEmuOnline.Server/Properties/PublishProfiles/FolderProfile.pubxml b/AxibugEmuOnline.Server/Properties/PublishProfiles/FolderProfile.pubxml deleted file mode 100644 index d37ba189..00000000 --- a/AxibugEmuOnline.Server/Properties/PublishProfiles/FolderProfile.pubxml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - Release - Any CPU - bin\Release\net8.0\publish\win-x64\ - FileSystem - <_TargetId>Folder - net8.0 - win-x64 - false - false - false - - \ No newline at end of file diff --git a/AxibugEmuOnline.Server/Properties/PublishProfiles/FolderProfile.pubxml.user b/AxibugEmuOnline.Server/Properties/PublishProfiles/FolderProfile.pubxml.user deleted file mode 100644 index ea54bbee..00000000 --- a/AxibugEmuOnline.Server/Properties/PublishProfiles/FolderProfile.pubxml.user +++ /dev/null @@ -1,10 +0,0 @@ - - - - - False|2025-01-06T16:15:36.1324899Z||;True|2025-01-02T15:36:28.7979053+08:00||;True|2025-01-02T15:31:33.8583976+08:00||;True|2024-12-11T10:52:05.7940446+08:00||;True|2024-12-04T22:26:53.2238425+08:00||;True|2024-12-04T22:26:10.9572308+08:00||;True|2024-12-04T21:24:20.1913809+08:00||;True|2024-12-04T21:24:02.9590471+08:00||;True|2024-12-04T01:43:54.7646411+08:00||;True|2024-12-04T01:22:11.8117030+08:00||;True|2024-12-04T01:20:06.5770785+08:00||;True|2024-12-04T01:16:31.6391421+08:00||;True|2024-12-04T01:12:43.4697251+08:00||;True|2024-12-04T01:07:04.8333668+08:00||;True|2024-12-04T00:59:23.6611648+08:00||;True|2024-12-04T00:27:05.0229247+08:00||;True|2024-12-03T23:50:48.5712706+08:00||;True|2024-12-03T23:47:47.1095592+08:00||;True|2024-12-03T20:24:57.4098592+08:00||;True|2024-12-03T20:16:36.9886489+08:00||;True|2024-12-03T20:15:52.5482738+08:00||;True|2024-12-02T20:10:07.8192795+08:00||;True|2024-11-28T19:58:55.3995125+08:00||;True|2024-09-14T16:39:29.4677979+08:00||;True|2024-09-14T16:38:22.2398996+08:00||;True|2024-09-13T13:39:28.9591993+08:00||;True|2024-09-12T17:48:43.1521740+08:00||;True|2024-09-12T17:43:57.0504432+08:00||;True|2024-09-12T17:19:48.6392091+08:00||;True|2024-09-12T13:38:45.0141937+08:00||;False|2024-09-12T13:37:57.6131232+08:00||;True|2024-06-28T16:25:59.3159172+08:00||;True|2024-06-28T15:30:49.8257235+08:00||; - - - \ No newline at end of file diff --git a/AxibugEmuOnline.Server/Properties/PublishProfiles/FolderProfile1.pubxml.user b/AxibugEmuOnline.Server/Properties/PublishProfiles/FolderProfile1.pubxml.user index 32b91c40..385d80e1 100644 --- a/AxibugEmuOnline.Server/Properties/PublishProfiles/FolderProfile1.pubxml.user +++ b/AxibugEmuOnline.Server/Properties/PublishProfiles/FolderProfile1.pubxml.user @@ -4,7 +4,7 @@ https://go.microsoft.com/fwlink/?LinkID=208121. --> - True|2025-01-07T02:47:36.6196477Z||;True|2025-01-07T01:21:34.5863249+08:00||;False|2025-01-07T01:20:39.5344134+08:00||;True|2025-01-07T00:21:47.4863058+08:00||;True|2025-01-07T00:16:42.7998249+08:00||;False|2025-01-07T00:16:02.8107509+08:00||;False|2025-01-02T15:36:18.1906464+08:00||;False|2025-01-02T15:36:06.5622643+08:00||;True|2024-12-27T18:24:49.7554320+08:00||; + True|2025-01-07T05:54:02.0272718Z||;True|2025-01-07T10:47:36.6196477+08:00||;True|2025-01-07T01:21:34.5863249+08:00||;False|2025-01-07T01:20:39.5344134+08:00||;True|2025-01-07T00:21:47.4863058+08:00||;True|2025-01-07T00:16:42.7998249+08:00||;False|2025-01-07T00:16:02.8107509+08:00||;False|2025-01-02T15:36:18.1906464+08:00||;False|2025-01-02T15:36:06.5622643+08:00||;True|2024-12-27T18:24:49.7554320+08:00||; \ No newline at end of file diff --git a/AxibugEmuOnline.Server/Protobuf/ProtobufAxibugEmuOnline.cs b/AxibugEmuOnline.Server/Protobuf/ProtobufAxibugEmuOnline.cs index 188c6399..03dca7a1 100644 --- a/AxibugEmuOnline.Server/Protobuf/ProtobufAxibugEmuOnline.cs +++ b/AxibugEmuOnline.Server/Protobuf/ProtobufAxibugEmuOnline.cs @@ -52,96 +52,97 @@ namespace AxibugProtobuf { "EgsKA1VJRBgBIAEoAxIuCghVc2VySW5mbxgCIAEoCzIcLkF4aWJ1Z1Byb3Rv", "YnVmLlVzZXJNaW5pSW5mbyIUChJQcm90b2J1Zl9Sb29tX0xpc3QiWwoXUHJv", "dG9idWZfUm9vbV9MaXN0X1JFU1ASQAoQUm9vbU1pbmlJbmZvTGlzdBgBIAMo", - "CzImLkF4aWJ1Z1Byb3RvYnVmLlByb3RvYnVmX1Jvb21fTWluaUluZm8ikAIK", + "CzImLkF4aWJ1Z1Byb3RvYnVmLlByb3RvYnVmX1Jvb21fTWluaUluZm8iywIK", "FlByb3RvYnVmX1Jvb21fTWluaUluZm8SDgoGUm9vbUlEGAEgASgFEhEKCUdh", - "bWVSb21JRBgCIAEoBRITCgtHYW1lUm9tSGFzaBgDIAEoCRIVCg1Ib3N0UGxh", - "eWVyVUlEGAQgASgDEjAKCUdhbWVTdGF0ZRgFIAEoDjIdLkF4aWJ1Z1Byb3Rv", - "YnVmLlJvb21HYW1lU3RhdGUSFAoMT2JzVXNlckNvdW50GAYgASgFEhkKEVNj", - "cmVlblByb3ZpZGVyVUlEGAcgASgDEkQKEEdhbWVQbGF5U2xvdExpc3QYCCAD", - "KAsyKi5BeGlidWdQcm90b2J1Zi5Qcm90b2J1Zl9Sb29tX0dhbWVQbGF5U2xv", - "dCLRAQoaUHJvdG9idWZfUm9vbV9HYW1lUGxheVNsb3QSEgoKUGxheWVyX1VJ", - "RBgBIAEoAxIXCg9QbGF5ZXJfTmlja05hbWUYAiABKAkSLgoKZGV2aWNlVHlw", - "ZRgDIAEoDjIaLkF4aWJ1Z1Byb3RvYnVmLkRldmljZVR5cGUSGQoRUGxheWVy", - "TG9jYWxKb3lJZHgYBCABKAUSOwoWUGxheWVyTG9jYWxHYW1lUGFkVHlwZRgF", - "IAEoDjIbLkF4aWJ1Z1Byb3RvYnVmLkdhbWVQYWRUeXBlIm0KGVByb3RvYnVm", - "X1Jvb21fVXBkYXRlX1JFU1ASEgoKVXBkYXRlVHlwZRgBIAEoBRI8CgxSb29t", - "TWluaUluZm8YAiABKAsyJi5BeGlidWdQcm90b2J1Zi5Qcm90b2J1Zl9Sb29t", - "X01pbmlJbmZvIksKFVByb3RvYnVmX1NjcmVubl9GcmFtZRIOCgZSb29tSUQY", - "ASABKAUSDwoHRnJhbWVJRBgCIAEoBRIRCglSYXdCaXRtYXAYAyABKAwiSQoj", - "UHJvdG9idWZfUm9vbV9TaW5nbGVQbGF5ZXJJbnB1dERhdGESDwoHRnJhbWVJ", - "RBgBIAEoDRIRCglJbnB1dERhdGEYAiABKA0igAEKJ1Byb3RvYnVmX1Jvb21f", - "U3luX1Jvb21GcmFtZUFsbElucHV0RGF0YRIPCgdGcmFtZUlEGAEgASgNEhEK", - "CUlucHV0RGF0YRgCIAEoBBIVCg1TZXJ2ZXJGcmFtZUlEGAMgASgNEhoKElNl", - "cnZlckZvcndhcmRDb3VudBgEIAEoDSI+ChRQcm90b2J1Zl9Sb29tX0NyZWF0", - "ZRIRCglHYW1lUm9tSUQYASABKAUSEwoLR2FtZVJvbUhhc2gYAiABKAkiWQoZ", - "UHJvdG9idWZfUm9vbV9DcmVhdGVfUkVTUBI8CgxSb29tTWluaUluZm8YASAB", - "KAsyJi5BeGlidWdQcm90b2J1Zi5Qcm90b2J1Zl9Sb29tX01pbmlJbmZvIiQK", - "ElByb3RvYnVmX1Jvb21fSm9pbhIOCgZSb29tSUQYASABKAUiVwoXUHJvdG9i", - "dWZfUm9vbV9Kb2luX1JFU1ASPAoMUm9vbU1pbmlJbmZvGAEgASgLMiYuQXhp", - "YnVnUHJvdG9idWYuUHJvdG9idWZfUm9vbV9NaW5pSW5mbyIlChNQcm90b2J1", - "Zl9Sb29tX0xlYXZlEg4KBlJvb21JRBgBIAEoBSIqChhQcm90b2J1Zl9Sb29t", - "X0xlYXZlX1JFU1ASDgoGUm9vbUlEGAEgASgFImEKIVByb3RvYnVmX1Jvb21f", - "TXlSb29tX1N0YXRlX0NoYW5nZRI8CgxSb29tTWluaUluZm8YASABKAsyJi5B", - "eGlidWdQcm90b2J1Zi5Qcm90b2J1Zl9Sb29tX01pbmlJbmZvImsKJFByb3Rv", - "YnVmX1Jvb21fQ2hhbmdlX1BsYXlTbG90V2l0aEpveRJDCgtTbG90V2l0aEpv", - "eRgBIAMoCzIuLkF4aWJ1Z1Byb3RvYnVmLlByb3RvYnVmX1BsYXlTbG90SWR4", - "V2l0aEpveUlkeCKPAQoeUHJvdG9idWZfUGxheVNsb3RJZHhXaXRoSm95SWR4", - "EhUKDVBsYXllclNsb3RJZHgYASABKAUSGQoRUGxheWVyTG9jYWxKb3lJZHgY", - "AiABKAUSOwoWUGxheWVyTG9jYWxHYW1lUGFkVHlwZRgDIAEoDjIbLkF4aWJ1", - "Z1Byb3RvYnVmLkdhbWVQYWRUeXBlIisKKVByb3RvYnVmX1Jvb21fQ2hhbmdl", - "X1BsYXlTbG90V2l0aEpveV9SRVNQIkUKG1Byb3RvYnVmX1Jvb21fV2FpdFN0", - "ZXBfUkVTUBIQCghXYWl0U3RlcBgBIAEoBRIUCgxMb2FkU3RhdGVSYXcYAiAB", - "KAwiPwonUHJvdG9idWZfUm9vbV9Ib3N0UGxheWVyX1VwZGF0ZVN0YXRlUmF3", - "EhQKDExvYWRTdGF0ZVJhdxgBIAEoDCIuCixQcm90b2J1Zl9Sb29tX0hvc3RQ", - "bGF5ZXJfVXBkYXRlU3RhdGVSYXdfUkVTUCKaAQoaUHJvdG9idWZfUm9vbV9Q", - "bGF5ZXJfUmVhZHkSGwoTUHVzaEZyYW1lTmVlZFRpbWVVcxgBIAEoAhIbChNM", - "b2FkU3RhdGVOZWVkVGltZVVzGAIgASgCEiAKGFZpZGVvRnJhbWVTaG93TmVl", - "ZFRpbWVVcxgDIAEoAhIgChhBdWRpb0ZyYW1lUGxheU5lZWRUaW1lVXMYBCAB", - "KAIiKgoYUHJvdG9idWZfUm9vbV9HZXRfU2NyZWVuEg4KBlJvb21JRBgBIAEo", - "BSJTCh1Qcm90b2J1Zl9Sb29tX0dldF9TY3JlZW5fUkVTUBIOCgZSb29tSUQY", - "ASABKAUSDwoHRnJhbWVJRBgCIAEoBRIRCglSYXdCaXRtYXAYAyABKAwiMgoS", - "UHJvdG9idWZfR2FtZV9NYXJrEg0KBVJvbUlEGAEgASgFEg0KBXN0YXRlGAIg", - "ASgFIigKF1Byb3RvYnVmX0dhbWVfTWFya19SRVNQEg0KBVJvbUlEGAEgASgF", - "KqEFCglDb21tYW5kSUQSDgoKQ01EX0RFRkFVTBAAEgwKCENNRF9QSU5HEAES", - "DAoIQ01EX1BPTkcQAhIOCglDTURfTE9HSU4Q0Q8SGAoTQ01EX1VTRVJfT05M", - "SU5FTElTVBC4FxISCg1DTURfVVNFUl9KT0lOENcXEhMKDkNNRF9VU0VSX0xF", - "QVZFENgXEhoKFUNNRF9VU0VSX1NUQVRFX1VQREFURRDZFxIYChNDTURfTW9k", - "aWZ5X05pY2tOYW1lEJ0YEhwKF0NNRF9VcGRhdGVfU2VsZlVzZXJJbmZvEKYY", - "Eh0KGENNRF9VcGRhdGVfT3RoZXJVc2VySW5mbxCoGBIQCgtDTURfQ0hBVE1T", - "RxChHxISCg1DTURfUm9vbV9MaXN0EIknEhkKFENNRF9Sb29tX0xpc3RfVXBk", - "YXRlEIonEhgKE0NNRF9Sb29tX0dldF9TY3JlZW4QkycSFAoPQ01EX1Jvb21f", - "Q3JlYXRlEO0nEhIKDUNNRF9Sb29tX0pvaW4Q8ScSEwoOQ01EX1Jvb21fTGVh", - "dmUQ8icSIgodQ01EX1Jvb21fTXlSb29tX1N0YXRlX0NoYW5nZWQQ9icSIQoc", - "Q01EX1Jvb21fQ2hhbmdlUGxheWVyV2l0aEpveRCKKBIWChFDTURfUm9vbV9X", - "YWl0U3RlcBDRKBInCiJDTURfUm9vbV9Ib3N0UGxheWVyX1VwZGF0ZVN0YXRl", - "UmF3ENQoEhoKFUNNRF9Sb29tX1BsYXllcl9SZWFkeRDYKBIgChtDTURfUm9v", - "bV9TaW5nZWxfUGxheWVySW5wdXQQ+i4SHQoYQ01EX1JPT01fU1lOX1BsYXll", - "cklucHV0EP8uEg8KCkNNRF9TY3JlZW4Q2TYSEgoNQ01EX0dBTUVfTUFSSxD1", - "TirQAQoJRXJyb3JDb2RlEhAKDEVSUk9SX0RFRkFVTBAAEgwKCEVSUk9SX09L", - "EAESGAoURVJST1JfUk9PTV9OT1RfRk9VTkQQChInCiNFUlJPUl9ST09NX1NM", - "T1RfQUxSRUFETFlfSEFEX1BMQVlFUhALEiEKHUVSUk9SX1JPT01fQ0FOVF9E", - "T19DVVJSX1NUQVRFEDISHwoaRVJST1JfUk9NX0FMUkVBRFlfSEFEX1NUQVIQ", - "kwMSHAoXRVJST1JfUk9NX0RPTlRfSEFEX1NUQVIQlAMqQAoJTG9naW5UeXBl", - "Eg0KCVVzZURldmljZRAAEg4KClVzZUFjY291bnQQARIUChBVc2VIYW9ZdWVB", - "Y2NvdW50EAIqpQEKCkRldmljZVR5cGUSFgoSRGV2aWNlVHlwZV9EZWZhdWx0", - "EAASBgoCUEMQARILCgdBbmRyb2lkEAISBwoDSU9TEAMSBwoDUFNWEAQSBwoD", - "UFMzEAUSBwoDUFM0EAYSCwoHWEJPWDM2MBAHEgsKB1hCT1hPTkUQCBIICgRX", - "aWlVEAkSDwoLTmludGVuZG8zRFMQChIRCg1BbmRyb2lkQ2FyQXBwEAsqkwIK", - "C0dhbWVQYWRUeXBlEgwKCEtleWJvYXJkEAASEQoNR2xvYmFsR2FtZVBhZBAB", - "Eg4KClRvdWNoUGFuZWwQAhIOCgpEUzNDb250cm9sEAMSDgoKRFM0Q29udHJv", - "bBAEEg4KCkRTNUNvbnRyb2wQBRIUChBTd2l0Y2hQcm9Db250cm9sEAYSEAoM", - "U3dpdGNoSm95Q29uEAcSEgoOWEJPWDM2MENvbnRyb2wQCBISCg5YQk9YT05F", - "Q29udHJvbBAJEhEKDVBTVml0YUNvbnRyb2wQChISCg5XaWlVUGFkQ29udHJv", - "bBALEhQKEFdpaVJlbW90ZUNvbnRyb2wQDBIWChJOaW50ZW5kbzNEU0NvbnRy", - "b2wQDSqiAQoPUm9tUGxhdGZvcm1UeXBlEgsKB0ludmFsaWQQABIHCgNOZXMQ", - "ARIRCg1NYXN0ZXJfU3lzdGVtEAISDQoJR2FtZV9HZWFyEAMSDAoIR2FtZV9C", - "b3kQBBISCg5HYW1lX0JveV9Db2xvchAFEhEKDUNvbGVjb19WaXNpb24QBhIL", - "CgdTQ18zMDAwEAcSCwoHU0dfMTAwMBAIEggKA0FsbBDnBypwCg1Sb29tR2Ft", - "ZVN0YXRlEhIKDk5vbmVfR2FtZVN0YXRlEAASDAoIT25seUhvc3QQARIRCg1X", - "YWl0UmF3VXBkYXRlEAISDQoJV2FpdFJlYWR5EAMSCQoFUGF1c2UQBBIQCgxJ", - "bk9ubGluZUdhbWUQBSpOChFMb2dpblJlc3VsdFN0YXR1cxIhCh1Mb2dpblJl", - "c3VsdFN0YXR1c19CYXNlRGVmYXVsdBAAEgYKAk9LEAESDgoKQWNjb3VudEVy", - "chACQgJIAWIGcHJvdG8z")); + "bWVSb21JRBgCIAEoBRITCgtHYW1lUm9tSGFzaBgDIAEoCRI5ChBHYW1lUGxh", + "dGZvcm1UeXBlGAQgASgOMh8uQXhpYnVnUHJvdG9idWYuUm9tUGxhdGZvcm1U", + "eXBlEhUKDUhvc3RQbGF5ZXJVSUQYBSABKAMSMAoJR2FtZVN0YXRlGAYgASgO", + "Mh0uQXhpYnVnUHJvdG9idWYuUm9vbUdhbWVTdGF0ZRIUCgxPYnNVc2VyQ291", + "bnQYByABKAUSGQoRU2NyZWVuUHJvdmlkZXJVSUQYCCABKAMSRAoQR2FtZVBs", + "YXlTbG90TGlzdBgJIAMoCzIqLkF4aWJ1Z1Byb3RvYnVmLlByb3RvYnVmX1Jv", + "b21fR2FtZVBsYXlTbG90ItEBChpQcm90b2J1Zl9Sb29tX0dhbWVQbGF5U2xv", + "dBISCgpQbGF5ZXJfVUlEGAEgASgDEhcKD1BsYXllcl9OaWNrTmFtZRgCIAEo", + "CRIuCgpkZXZpY2VUeXBlGAMgASgOMhouQXhpYnVnUHJvdG9idWYuRGV2aWNl", + "VHlwZRIZChFQbGF5ZXJMb2NhbEpveUlkeBgEIAEoBRI7ChZQbGF5ZXJMb2Nh", + "bEdhbWVQYWRUeXBlGAUgASgOMhsuQXhpYnVnUHJvdG9idWYuR2FtZVBhZFR5", + "cGUibQoZUHJvdG9idWZfUm9vbV9VcGRhdGVfUkVTUBISCgpVcGRhdGVUeXBl", + "GAEgASgFEjwKDFJvb21NaW5pSW5mbxgCIAEoCzImLkF4aWJ1Z1Byb3RvYnVm", + "LlByb3RvYnVmX1Jvb21fTWluaUluZm8iSwoVUHJvdG9idWZfU2NyZW5uX0Zy", + "YW1lEg4KBlJvb21JRBgBIAEoBRIPCgdGcmFtZUlEGAIgASgFEhEKCVJhd0Jp", + "dG1hcBgDIAEoDCJJCiNQcm90b2J1Zl9Sb29tX1NpbmdsZVBsYXllcklucHV0", + "RGF0YRIPCgdGcmFtZUlEGAEgASgNEhEKCUlucHV0RGF0YRgCIAEoDSKAAQon", + "UHJvdG9idWZfUm9vbV9TeW5fUm9vbUZyYW1lQWxsSW5wdXREYXRhEg8KB0Zy", + "YW1lSUQYASABKA0SEQoJSW5wdXREYXRhGAIgASgEEhUKDVNlcnZlckZyYW1l", + "SUQYAyABKA0SGgoSU2VydmVyRm9yd2FyZENvdW50GAQgASgNIj4KFFByb3Rv", + "YnVmX1Jvb21fQ3JlYXRlEhEKCUdhbWVSb21JRBgBIAEoBRITCgtHYW1lUm9t", + "SGFzaBgCIAEoCSJZChlQcm90b2J1Zl9Sb29tX0NyZWF0ZV9SRVNQEjwKDFJv", + "b21NaW5pSW5mbxgBIAEoCzImLkF4aWJ1Z1Byb3RvYnVmLlByb3RvYnVmX1Jv", + "b21fTWluaUluZm8iJAoSUHJvdG9idWZfUm9vbV9Kb2luEg4KBlJvb21JRBgB", + "IAEoBSJXChdQcm90b2J1Zl9Sb29tX0pvaW5fUkVTUBI8CgxSb29tTWluaUlu", + "Zm8YASABKAsyJi5BeGlidWdQcm90b2J1Zi5Qcm90b2J1Zl9Sb29tX01pbmlJ", + "bmZvIiUKE1Byb3RvYnVmX1Jvb21fTGVhdmUSDgoGUm9vbUlEGAEgASgFIioK", + "GFByb3RvYnVmX1Jvb21fTGVhdmVfUkVTUBIOCgZSb29tSUQYASABKAUiYQoh", + "UHJvdG9idWZfUm9vbV9NeVJvb21fU3RhdGVfQ2hhbmdlEjwKDFJvb21NaW5p", + "SW5mbxgBIAEoCzImLkF4aWJ1Z1Byb3RvYnVmLlByb3RvYnVmX1Jvb21fTWlu", + "aUluZm8iawokUHJvdG9idWZfUm9vbV9DaGFuZ2VfUGxheVNsb3RXaXRoSm95", + "EkMKC1Nsb3RXaXRoSm95GAEgAygLMi4uQXhpYnVnUHJvdG9idWYuUHJvdG9i", + "dWZfUGxheVNsb3RJZHhXaXRoSm95SWR4Io8BCh5Qcm90b2J1Zl9QbGF5U2xv", + "dElkeFdpdGhKb3lJZHgSFQoNUGxheWVyU2xvdElkeBgBIAEoBRIZChFQbGF5", + "ZXJMb2NhbEpveUlkeBgCIAEoBRI7ChZQbGF5ZXJMb2NhbEdhbWVQYWRUeXBl", + "GAMgASgOMhsuQXhpYnVnUHJvdG9idWYuR2FtZVBhZFR5cGUiKwopUHJvdG9i", + "dWZfUm9vbV9DaGFuZ2VfUGxheVNsb3RXaXRoSm95X1JFU1AiRQobUHJvdG9i", + "dWZfUm9vbV9XYWl0U3RlcF9SRVNQEhAKCFdhaXRTdGVwGAEgASgFEhQKDExv", + "YWRTdGF0ZVJhdxgCIAEoDCI/CidQcm90b2J1Zl9Sb29tX0hvc3RQbGF5ZXJf", + "VXBkYXRlU3RhdGVSYXcSFAoMTG9hZFN0YXRlUmF3GAEgASgMIi4KLFByb3Rv", + "YnVmX1Jvb21fSG9zdFBsYXllcl9VcGRhdGVTdGF0ZVJhd19SRVNQIpoBChpQ", + "cm90b2J1Zl9Sb29tX1BsYXllcl9SZWFkeRIbChNQdXNoRnJhbWVOZWVkVGlt", + "ZVVzGAEgASgCEhsKE0xvYWRTdGF0ZU5lZWRUaW1lVXMYAiABKAISIAoYVmlk", + "ZW9GcmFtZVNob3dOZWVkVGltZVVzGAMgASgCEiAKGEF1ZGlvRnJhbWVQbGF5", + "TmVlZFRpbWVVcxgEIAEoAiIqChhQcm90b2J1Zl9Sb29tX0dldF9TY3JlZW4S", + "DgoGUm9vbUlEGAEgASgFIlMKHVByb3RvYnVmX1Jvb21fR2V0X1NjcmVlbl9S", + "RVNQEg4KBlJvb21JRBgBIAEoBRIPCgdGcmFtZUlEGAIgASgFEhEKCVJhd0Jp", + "dG1hcBgDIAEoDCIyChJQcm90b2J1Zl9HYW1lX01hcmsSDQoFUm9tSUQYASAB", + "KAUSDQoFc3RhdGUYAiABKAUiKAoXUHJvdG9idWZfR2FtZV9NYXJrX1JFU1AS", + "DQoFUm9tSUQYASABKAUqoQUKCUNvbW1hbmRJRBIOCgpDTURfREVGQVVMEAAS", + "DAoIQ01EX1BJTkcQARIMCghDTURfUE9ORxACEg4KCUNNRF9MT0dJThDRDxIY", + "ChNDTURfVVNFUl9PTkxJTkVMSVNUELgXEhIKDUNNRF9VU0VSX0pPSU4Q1xcS", + "EwoOQ01EX1VTRVJfTEVBVkUQ2BcSGgoVQ01EX1VTRVJfU1RBVEVfVVBEQVRF", + "ENkXEhgKE0NNRF9Nb2RpZnlfTmlja05hbWUQnRgSHAoXQ01EX1VwZGF0ZV9T", + "ZWxmVXNlckluZm8QphgSHQoYQ01EX1VwZGF0ZV9PdGhlclVzZXJJbmZvEKgY", + "EhAKC0NNRF9DSEFUTVNHEKEfEhIKDUNNRF9Sb29tX0xpc3QQiScSGQoUQ01E", + "X1Jvb21fTGlzdF9VcGRhdGUQiicSGAoTQ01EX1Jvb21fR2V0X1NjcmVlbhCT", + "JxIUCg9DTURfUm9vbV9DcmVhdGUQ7ScSEgoNQ01EX1Jvb21fSm9pbhDxJxIT", + "Cg5DTURfUm9vbV9MZWF2ZRDyJxIiCh1DTURfUm9vbV9NeVJvb21fU3RhdGVf", + "Q2hhbmdlZBD2JxIhChxDTURfUm9vbV9DaGFuZ2VQbGF5ZXJXaXRoSm95EIoo", + "EhYKEUNNRF9Sb29tX1dhaXRTdGVwENEoEicKIkNNRF9Sb29tX0hvc3RQbGF5", + "ZXJfVXBkYXRlU3RhdGVSYXcQ1CgSGgoVQ01EX1Jvb21fUGxheWVyX1JlYWR5", + "ENgoEiAKG0NNRF9Sb29tX1NpbmdlbF9QbGF5ZXJJbnB1dBD6LhIdChhDTURf", + "Uk9PTV9TWU5fUGxheWVySW5wdXQQ/y4SDwoKQ01EX1NjcmVlbhDZNhISCg1D", + "TURfR0FNRV9NQVJLEPVOKtABCglFcnJvckNvZGUSEAoMRVJST1JfREVGQVVM", + "EAASDAoIRVJST1JfT0sQARIYChRFUlJPUl9ST09NX05PVF9GT1VORBAKEicK", + "I0VSUk9SX1JPT01fU0xPVF9BTFJFQURMWV9IQURfUExBWUVSEAsSIQodRVJS", + "T1JfUk9PTV9DQU5UX0RPX0NVUlJfU1RBVEUQMhIfChpFUlJPUl9ST01fQUxS", + "RUFEWV9IQURfU1RBUhCTAxIcChdFUlJPUl9ST01fRE9OVF9IQURfU1RBUhCU", + "AypACglMb2dpblR5cGUSDQoJVXNlRGV2aWNlEAASDgoKVXNlQWNjb3VudBAB", + "EhQKEFVzZUhhb1l1ZUFjY291bnQQAiqlAQoKRGV2aWNlVHlwZRIWChJEZXZp", + "Y2VUeXBlX0RlZmF1bHQQABIGCgJQQxABEgsKB0FuZHJvaWQQAhIHCgNJT1MQ", + "AxIHCgNQU1YQBBIHCgNQUzMQBRIHCgNQUzQQBhILCgdYQk9YMzYwEAcSCwoH", + "WEJPWE9ORRAIEggKBFdpaVUQCRIPCgtOaW50ZW5kbzNEUxAKEhEKDUFuZHJv", + "aWRDYXJBcHAQCyqTAgoLR2FtZVBhZFR5cGUSDAoIS2V5Ym9hcmQQABIRCg1H", + "bG9iYWxHYW1lUGFkEAESDgoKVG91Y2hQYW5lbBACEg4KCkRTM0NvbnRyb2wQ", + "AxIOCgpEUzRDb250cm9sEAQSDgoKRFM1Q29udHJvbBAFEhQKEFN3aXRjaFBy", + "b0NvbnRyb2wQBhIQCgxTd2l0Y2hKb3lDb24QBxISCg5YQk9YMzYwQ29udHJv", + "bBAIEhIKDlhCT1hPTkVDb250cm9sEAkSEQoNUFNWaXRhQ29udHJvbBAKEhIK", + "DldpaVVQYWRDb250cm9sEAsSFAoQV2lpUmVtb3RlQ29udHJvbBAMEhYKEk5p", + "bnRlbmRvM0RTQ29udHJvbBANKqIBCg9Sb21QbGF0Zm9ybVR5cGUSCwoHSW52", + "YWxpZBAAEgcKA05lcxABEhEKDU1hc3Rlcl9TeXN0ZW0QAhINCglHYW1lX0dl", + "YXIQAxIMCghHYW1lX0JveRAEEhIKDkdhbWVfQm95X0NvbG9yEAUSEQoNQ29s", + "ZWNvX1Zpc2lvbhAGEgsKB1NDXzMwMDAQBxILCgdTR18xMDAwEAgSCAoDQWxs", + "EOcHKnAKDVJvb21HYW1lU3RhdGUSEgoOTm9uZV9HYW1lU3RhdGUQABIMCghP", + "bmx5SG9zdBABEhEKDVdhaXRSYXdVcGRhdGUQAhINCglXYWl0UmVhZHkQAxIJ", + "CgVQYXVzZRAEEhAKDEluT25saW5lR2FtZRAFKk4KEUxvZ2luUmVzdWx0U3Rh", + "dHVzEiEKHUxvZ2luUmVzdWx0U3RhdHVzX0Jhc2VEZWZhdWx0EAASBgoCT0sQ", + "ARIOCgpBY2NvdW50RXJyEAJCAkgBYgZwcm90bzM=")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { }, new pbr::GeneratedClrTypeInfo(new[] {typeof(global::AxibugProtobuf.CommandID), typeof(global::AxibugProtobuf.ErrorCode), typeof(global::AxibugProtobuf.LoginType), typeof(global::AxibugProtobuf.DeviceType), typeof(global::AxibugProtobuf.GamePadType), typeof(global::AxibugProtobuf.RomPlatformType), typeof(global::AxibugProtobuf.RoomGameState), typeof(global::AxibugProtobuf.LoginResultStatus), }, null, new pbr::GeneratedClrTypeInfo[] { @@ -163,7 +164,7 @@ namespace AxibugProtobuf { new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Update_OtherUserInfo_RESP), global::AxibugProtobuf.Protobuf_Update_OtherUserInfo_RESP.Parser, new[]{ "UID", "UserInfo" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_List), global::AxibugProtobuf.Protobuf_Room_List.Parser, null, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_List_RESP), global::AxibugProtobuf.Protobuf_Room_List_RESP.Parser, new[]{ "RoomMiniInfoList" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_MiniInfo), global::AxibugProtobuf.Protobuf_Room_MiniInfo.Parser, new[]{ "RoomID", "GameRomID", "GameRomHash", "HostPlayerUID", "GameState", "ObsUserCount", "ScreenProviderUID", "GamePlaySlotList" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_MiniInfo), global::AxibugProtobuf.Protobuf_Room_MiniInfo.Parser, new[]{ "RoomID", "GameRomID", "GameRomHash", "GamePlatformType", "HostPlayerUID", "GameState", "ObsUserCount", "ScreenProviderUID", "GamePlaySlotList" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_GamePlaySlot), global::AxibugProtobuf.Protobuf_Room_GamePlaySlot.Parser, new[]{ "PlayerUID", "PlayerNickName", "DeviceType", "PlayerLocalJoyIdx", "PlayerLocalGamePadType" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_Update_RESP), global::AxibugProtobuf.Protobuf_Room_Update_RESP.Parser, new[]{ "UpdateType", "RoomMiniInfo" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Screnn_Frame), global::AxibugProtobuf.Protobuf_Screnn_Frame.Parser, new[]{ "RoomID", "FrameID", "RawBitmap" }, null, null, null, null), @@ -4197,6 +4198,7 @@ namespace AxibugProtobuf { roomID_ = other.roomID_; gameRomID_ = other.gameRomID_; gameRomHash_ = other.gameRomHash_; + gamePlatformType_ = other.gamePlatformType_; hostPlayerUID_ = other.hostPlayerUID_; gameState_ = other.gameState_; obsUserCount_ = other.obsUserCount_; @@ -4249,8 +4251,19 @@ namespace AxibugProtobuf { } } + /// Field number for the "GamePlatformType" field. + public const int GamePlatformTypeFieldNumber = 4; + private global::AxibugProtobuf.RomPlatformType gamePlatformType_ = global::AxibugProtobuf.RomPlatformType.Invalid; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public global::AxibugProtobuf.RomPlatformType GamePlatformType { + get { return gamePlatformType_; } + set { + gamePlatformType_ = value; + } + } + /// Field number for the "HostPlayerUID" field. - public const int HostPlayerUIDFieldNumber = 4; + public const int HostPlayerUIDFieldNumber = 5; private long hostPlayerUID_; /// ///主机玩家ID @@ -4264,7 +4277,7 @@ namespace AxibugProtobuf { } /// Field number for the "GameState" field. - public const int GameStateFieldNumber = 5; + public const int GameStateFieldNumber = 6; private global::AxibugProtobuf.RoomGameState gameState_ = global::AxibugProtobuf.RoomGameState.NoneGameState; /// ///游戏状态 @@ -4278,7 +4291,7 @@ namespace AxibugProtobuf { } /// Field number for the "ObsUserCount" field. - public const int ObsUserCountFieldNumber = 6; + public const int ObsUserCountFieldNumber = 7; private int obsUserCount_; /// ///观战用户数量 @@ -4292,7 +4305,7 @@ namespace AxibugProtobuf { } /// Field number for the "ScreenProviderUID" field. - public const int ScreenProviderUIDFieldNumber = 7; + public const int ScreenProviderUIDFieldNumber = 8; private long screenProviderUID_; /// ///屏幕数据供应者 @@ -4306,9 +4319,9 @@ namespace AxibugProtobuf { } /// Field number for the "GamePlaySlotList" field. - public const int GamePlaySlotListFieldNumber = 8; + public const int GamePlaySlotListFieldNumber = 9; private static readonly pb::FieldCodec _repeated_gamePlaySlotList_codec - = pb::FieldCodec.ForMessage(66, global::AxibugProtobuf.Protobuf_Room_GamePlaySlot.Parser); + = pb::FieldCodec.ForMessage(74, global::AxibugProtobuf.Protobuf_Room_GamePlaySlot.Parser); private readonly pbc::RepeatedField gamePlaySlotList_ = new pbc::RepeatedField(); /// ///游玩槽位信息P1~P4 固定4个 @@ -4334,6 +4347,7 @@ namespace AxibugProtobuf { if (RoomID != other.RoomID) return false; if (GameRomID != other.GameRomID) return false; if (GameRomHash != other.GameRomHash) return false; + if (GamePlatformType != other.GamePlatformType) return false; if (HostPlayerUID != other.HostPlayerUID) return false; if (GameState != other.GameState) return false; if (ObsUserCount != other.ObsUserCount) return false; @@ -4348,6 +4362,7 @@ namespace AxibugProtobuf { if (RoomID != 0) hash ^= RoomID.GetHashCode(); if (GameRomID != 0) hash ^= GameRomID.GetHashCode(); if (GameRomHash.Length != 0) hash ^= GameRomHash.GetHashCode(); + if (GamePlatformType != global::AxibugProtobuf.RomPlatformType.Invalid) hash ^= GamePlatformType.GetHashCode(); if (HostPlayerUID != 0L) hash ^= HostPlayerUID.GetHashCode(); if (GameState != global::AxibugProtobuf.RoomGameState.NoneGameState) hash ^= GameState.GetHashCode(); if (ObsUserCount != 0) hash ^= ObsUserCount.GetHashCode(); @@ -4381,20 +4396,24 @@ namespace AxibugProtobuf { output.WriteRawTag(26); output.WriteString(GameRomHash); } - if (HostPlayerUID != 0L) { + if (GamePlatformType != global::AxibugProtobuf.RomPlatformType.Invalid) { output.WriteRawTag(32); + output.WriteEnum((int) GamePlatformType); + } + if (HostPlayerUID != 0L) { + output.WriteRawTag(40); output.WriteInt64(HostPlayerUID); } if (GameState != global::AxibugProtobuf.RoomGameState.NoneGameState) { - output.WriteRawTag(40); + output.WriteRawTag(48); output.WriteEnum((int) GameState); } if (ObsUserCount != 0) { - output.WriteRawTag(48); + output.WriteRawTag(56); output.WriteInt32(ObsUserCount); } if (ScreenProviderUID != 0L) { - output.WriteRawTag(56); + output.WriteRawTag(64); output.WriteInt64(ScreenProviderUID); } gamePlaySlotList_.WriteTo(output, _repeated_gamePlaySlotList_codec); @@ -4419,20 +4438,24 @@ namespace AxibugProtobuf { output.WriteRawTag(26); output.WriteString(GameRomHash); } - if (HostPlayerUID != 0L) { + if (GamePlatformType != global::AxibugProtobuf.RomPlatformType.Invalid) { output.WriteRawTag(32); + output.WriteEnum((int) GamePlatformType); + } + if (HostPlayerUID != 0L) { + output.WriteRawTag(40); output.WriteInt64(HostPlayerUID); } if (GameState != global::AxibugProtobuf.RoomGameState.NoneGameState) { - output.WriteRawTag(40); + output.WriteRawTag(48); output.WriteEnum((int) GameState); } if (ObsUserCount != 0) { - output.WriteRawTag(48); + output.WriteRawTag(56); output.WriteInt32(ObsUserCount); } if (ScreenProviderUID != 0L) { - output.WriteRawTag(56); + output.WriteRawTag(64); output.WriteInt64(ScreenProviderUID); } gamePlaySlotList_.WriteTo(ref output, _repeated_gamePlaySlotList_codec); @@ -4454,6 +4477,9 @@ namespace AxibugProtobuf { if (GameRomHash.Length != 0) { size += 1 + pb::CodedOutputStream.ComputeStringSize(GameRomHash); } + if (GamePlatformType != global::AxibugProtobuf.RomPlatformType.Invalid) { + size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) GamePlatformType); + } if (HostPlayerUID != 0L) { size += 1 + pb::CodedOutputStream.ComputeInt64Size(HostPlayerUID); } @@ -4487,6 +4513,9 @@ namespace AxibugProtobuf { if (other.GameRomHash.Length != 0) { GameRomHash = other.GameRomHash; } + if (other.GamePlatformType != global::AxibugProtobuf.RomPlatformType.Invalid) { + GamePlatformType = other.GamePlatformType; + } if (other.HostPlayerUID != 0L) { HostPlayerUID = other.HostPlayerUID; } @@ -4527,22 +4556,26 @@ namespace AxibugProtobuf { break; } case 32: { - HostPlayerUID = input.ReadInt64(); + GamePlatformType = (global::AxibugProtobuf.RomPlatformType) input.ReadEnum(); break; } case 40: { - GameState = (global::AxibugProtobuf.RoomGameState) input.ReadEnum(); + HostPlayerUID = input.ReadInt64(); break; } case 48: { - ObsUserCount = input.ReadInt32(); + GameState = (global::AxibugProtobuf.RoomGameState) input.ReadEnum(); break; } case 56: { + ObsUserCount = input.ReadInt32(); + break; + } + case 64: { ScreenProviderUID = input.ReadInt64(); break; } - case 66: { + case 74: { gamePlaySlotList_.AddEntriesFrom(input, _repeated_gamePlaySlotList_codec); break; } @@ -4573,22 +4606,26 @@ namespace AxibugProtobuf { break; } case 32: { - HostPlayerUID = input.ReadInt64(); + GamePlatformType = (global::AxibugProtobuf.RomPlatformType) input.ReadEnum(); break; } case 40: { - GameState = (global::AxibugProtobuf.RoomGameState) input.ReadEnum(); + HostPlayerUID = input.ReadInt64(); break; } case 48: { - ObsUserCount = input.ReadInt32(); + GameState = (global::AxibugProtobuf.RoomGameState) input.ReadEnum(); break; } case 56: { + ObsUserCount = input.ReadInt32(); + break; + } + case 64: { ScreenProviderUID = input.ReadInt64(); break; } - case 66: { + case 74: { gamePlaySlotList_.AddEntriesFrom(ref input, _repeated_gamePlaySlotList_codec); break; } diff --git a/ProtobufCore/out/CS/ProtobufAxibugEmuOnline.cs b/ProtobufCore/out/CS/ProtobufAxibugEmuOnline.cs index 188c6399..03dca7a1 100644 --- a/ProtobufCore/out/CS/ProtobufAxibugEmuOnline.cs +++ b/ProtobufCore/out/CS/ProtobufAxibugEmuOnline.cs @@ -52,96 +52,97 @@ namespace AxibugProtobuf { "EgsKA1VJRBgBIAEoAxIuCghVc2VySW5mbxgCIAEoCzIcLkF4aWJ1Z1Byb3Rv", "YnVmLlVzZXJNaW5pSW5mbyIUChJQcm90b2J1Zl9Sb29tX0xpc3QiWwoXUHJv", "dG9idWZfUm9vbV9MaXN0X1JFU1ASQAoQUm9vbU1pbmlJbmZvTGlzdBgBIAMo", - "CzImLkF4aWJ1Z1Byb3RvYnVmLlByb3RvYnVmX1Jvb21fTWluaUluZm8ikAIK", + "CzImLkF4aWJ1Z1Byb3RvYnVmLlByb3RvYnVmX1Jvb21fTWluaUluZm8iywIK", "FlByb3RvYnVmX1Jvb21fTWluaUluZm8SDgoGUm9vbUlEGAEgASgFEhEKCUdh", - "bWVSb21JRBgCIAEoBRITCgtHYW1lUm9tSGFzaBgDIAEoCRIVCg1Ib3N0UGxh", - "eWVyVUlEGAQgASgDEjAKCUdhbWVTdGF0ZRgFIAEoDjIdLkF4aWJ1Z1Byb3Rv", - "YnVmLlJvb21HYW1lU3RhdGUSFAoMT2JzVXNlckNvdW50GAYgASgFEhkKEVNj", - "cmVlblByb3ZpZGVyVUlEGAcgASgDEkQKEEdhbWVQbGF5U2xvdExpc3QYCCAD", - "KAsyKi5BeGlidWdQcm90b2J1Zi5Qcm90b2J1Zl9Sb29tX0dhbWVQbGF5U2xv", - "dCLRAQoaUHJvdG9idWZfUm9vbV9HYW1lUGxheVNsb3QSEgoKUGxheWVyX1VJ", - "RBgBIAEoAxIXCg9QbGF5ZXJfTmlja05hbWUYAiABKAkSLgoKZGV2aWNlVHlw", - "ZRgDIAEoDjIaLkF4aWJ1Z1Byb3RvYnVmLkRldmljZVR5cGUSGQoRUGxheWVy", - "TG9jYWxKb3lJZHgYBCABKAUSOwoWUGxheWVyTG9jYWxHYW1lUGFkVHlwZRgF", - "IAEoDjIbLkF4aWJ1Z1Byb3RvYnVmLkdhbWVQYWRUeXBlIm0KGVByb3RvYnVm", - "X1Jvb21fVXBkYXRlX1JFU1ASEgoKVXBkYXRlVHlwZRgBIAEoBRI8CgxSb29t", - "TWluaUluZm8YAiABKAsyJi5BeGlidWdQcm90b2J1Zi5Qcm90b2J1Zl9Sb29t", - "X01pbmlJbmZvIksKFVByb3RvYnVmX1NjcmVubl9GcmFtZRIOCgZSb29tSUQY", - "ASABKAUSDwoHRnJhbWVJRBgCIAEoBRIRCglSYXdCaXRtYXAYAyABKAwiSQoj", - "UHJvdG9idWZfUm9vbV9TaW5nbGVQbGF5ZXJJbnB1dERhdGESDwoHRnJhbWVJ", - "RBgBIAEoDRIRCglJbnB1dERhdGEYAiABKA0igAEKJ1Byb3RvYnVmX1Jvb21f", - "U3luX1Jvb21GcmFtZUFsbElucHV0RGF0YRIPCgdGcmFtZUlEGAEgASgNEhEK", - "CUlucHV0RGF0YRgCIAEoBBIVCg1TZXJ2ZXJGcmFtZUlEGAMgASgNEhoKElNl", - "cnZlckZvcndhcmRDb3VudBgEIAEoDSI+ChRQcm90b2J1Zl9Sb29tX0NyZWF0", - "ZRIRCglHYW1lUm9tSUQYASABKAUSEwoLR2FtZVJvbUhhc2gYAiABKAkiWQoZ", - "UHJvdG9idWZfUm9vbV9DcmVhdGVfUkVTUBI8CgxSb29tTWluaUluZm8YASAB", - "KAsyJi5BeGlidWdQcm90b2J1Zi5Qcm90b2J1Zl9Sb29tX01pbmlJbmZvIiQK", - "ElByb3RvYnVmX1Jvb21fSm9pbhIOCgZSb29tSUQYASABKAUiVwoXUHJvdG9i", - "dWZfUm9vbV9Kb2luX1JFU1ASPAoMUm9vbU1pbmlJbmZvGAEgASgLMiYuQXhp", - "YnVnUHJvdG9idWYuUHJvdG9idWZfUm9vbV9NaW5pSW5mbyIlChNQcm90b2J1", - "Zl9Sb29tX0xlYXZlEg4KBlJvb21JRBgBIAEoBSIqChhQcm90b2J1Zl9Sb29t", - "X0xlYXZlX1JFU1ASDgoGUm9vbUlEGAEgASgFImEKIVByb3RvYnVmX1Jvb21f", - "TXlSb29tX1N0YXRlX0NoYW5nZRI8CgxSb29tTWluaUluZm8YASABKAsyJi5B", - "eGlidWdQcm90b2J1Zi5Qcm90b2J1Zl9Sb29tX01pbmlJbmZvImsKJFByb3Rv", - "YnVmX1Jvb21fQ2hhbmdlX1BsYXlTbG90V2l0aEpveRJDCgtTbG90V2l0aEpv", - "eRgBIAMoCzIuLkF4aWJ1Z1Byb3RvYnVmLlByb3RvYnVmX1BsYXlTbG90SWR4", - "V2l0aEpveUlkeCKPAQoeUHJvdG9idWZfUGxheVNsb3RJZHhXaXRoSm95SWR4", - "EhUKDVBsYXllclNsb3RJZHgYASABKAUSGQoRUGxheWVyTG9jYWxKb3lJZHgY", - "AiABKAUSOwoWUGxheWVyTG9jYWxHYW1lUGFkVHlwZRgDIAEoDjIbLkF4aWJ1", - "Z1Byb3RvYnVmLkdhbWVQYWRUeXBlIisKKVByb3RvYnVmX1Jvb21fQ2hhbmdl", - "X1BsYXlTbG90V2l0aEpveV9SRVNQIkUKG1Byb3RvYnVmX1Jvb21fV2FpdFN0", - "ZXBfUkVTUBIQCghXYWl0U3RlcBgBIAEoBRIUCgxMb2FkU3RhdGVSYXcYAiAB", - "KAwiPwonUHJvdG9idWZfUm9vbV9Ib3N0UGxheWVyX1VwZGF0ZVN0YXRlUmF3", - "EhQKDExvYWRTdGF0ZVJhdxgBIAEoDCIuCixQcm90b2J1Zl9Sb29tX0hvc3RQ", - "bGF5ZXJfVXBkYXRlU3RhdGVSYXdfUkVTUCKaAQoaUHJvdG9idWZfUm9vbV9Q", - "bGF5ZXJfUmVhZHkSGwoTUHVzaEZyYW1lTmVlZFRpbWVVcxgBIAEoAhIbChNM", - "b2FkU3RhdGVOZWVkVGltZVVzGAIgASgCEiAKGFZpZGVvRnJhbWVTaG93TmVl", - "ZFRpbWVVcxgDIAEoAhIgChhBdWRpb0ZyYW1lUGxheU5lZWRUaW1lVXMYBCAB", - "KAIiKgoYUHJvdG9idWZfUm9vbV9HZXRfU2NyZWVuEg4KBlJvb21JRBgBIAEo", - "BSJTCh1Qcm90b2J1Zl9Sb29tX0dldF9TY3JlZW5fUkVTUBIOCgZSb29tSUQY", - "ASABKAUSDwoHRnJhbWVJRBgCIAEoBRIRCglSYXdCaXRtYXAYAyABKAwiMgoS", - "UHJvdG9idWZfR2FtZV9NYXJrEg0KBVJvbUlEGAEgASgFEg0KBXN0YXRlGAIg", - "ASgFIigKF1Byb3RvYnVmX0dhbWVfTWFya19SRVNQEg0KBVJvbUlEGAEgASgF", - "KqEFCglDb21tYW5kSUQSDgoKQ01EX0RFRkFVTBAAEgwKCENNRF9QSU5HEAES", - "DAoIQ01EX1BPTkcQAhIOCglDTURfTE9HSU4Q0Q8SGAoTQ01EX1VTRVJfT05M", - "SU5FTElTVBC4FxISCg1DTURfVVNFUl9KT0lOENcXEhMKDkNNRF9VU0VSX0xF", - "QVZFENgXEhoKFUNNRF9VU0VSX1NUQVRFX1VQREFURRDZFxIYChNDTURfTW9k", - "aWZ5X05pY2tOYW1lEJ0YEhwKF0NNRF9VcGRhdGVfU2VsZlVzZXJJbmZvEKYY", - "Eh0KGENNRF9VcGRhdGVfT3RoZXJVc2VySW5mbxCoGBIQCgtDTURfQ0hBVE1T", - "RxChHxISCg1DTURfUm9vbV9MaXN0EIknEhkKFENNRF9Sb29tX0xpc3RfVXBk", - "YXRlEIonEhgKE0NNRF9Sb29tX0dldF9TY3JlZW4QkycSFAoPQ01EX1Jvb21f", - "Q3JlYXRlEO0nEhIKDUNNRF9Sb29tX0pvaW4Q8ScSEwoOQ01EX1Jvb21fTGVh", - "dmUQ8icSIgodQ01EX1Jvb21fTXlSb29tX1N0YXRlX0NoYW5nZWQQ9icSIQoc", - "Q01EX1Jvb21fQ2hhbmdlUGxheWVyV2l0aEpveRCKKBIWChFDTURfUm9vbV9X", - "YWl0U3RlcBDRKBInCiJDTURfUm9vbV9Ib3N0UGxheWVyX1VwZGF0ZVN0YXRl", - "UmF3ENQoEhoKFUNNRF9Sb29tX1BsYXllcl9SZWFkeRDYKBIgChtDTURfUm9v", - "bV9TaW5nZWxfUGxheWVySW5wdXQQ+i4SHQoYQ01EX1JPT01fU1lOX1BsYXll", - "cklucHV0EP8uEg8KCkNNRF9TY3JlZW4Q2TYSEgoNQ01EX0dBTUVfTUFSSxD1", - "TirQAQoJRXJyb3JDb2RlEhAKDEVSUk9SX0RFRkFVTBAAEgwKCEVSUk9SX09L", - "EAESGAoURVJST1JfUk9PTV9OT1RfRk9VTkQQChInCiNFUlJPUl9ST09NX1NM", - "T1RfQUxSRUFETFlfSEFEX1BMQVlFUhALEiEKHUVSUk9SX1JPT01fQ0FOVF9E", - "T19DVVJSX1NUQVRFEDISHwoaRVJST1JfUk9NX0FMUkVBRFlfSEFEX1NUQVIQ", - "kwMSHAoXRVJST1JfUk9NX0RPTlRfSEFEX1NUQVIQlAMqQAoJTG9naW5UeXBl", - "Eg0KCVVzZURldmljZRAAEg4KClVzZUFjY291bnQQARIUChBVc2VIYW9ZdWVB", - "Y2NvdW50EAIqpQEKCkRldmljZVR5cGUSFgoSRGV2aWNlVHlwZV9EZWZhdWx0", - "EAASBgoCUEMQARILCgdBbmRyb2lkEAISBwoDSU9TEAMSBwoDUFNWEAQSBwoD", - "UFMzEAUSBwoDUFM0EAYSCwoHWEJPWDM2MBAHEgsKB1hCT1hPTkUQCBIICgRX", - "aWlVEAkSDwoLTmludGVuZG8zRFMQChIRCg1BbmRyb2lkQ2FyQXBwEAsqkwIK", - "C0dhbWVQYWRUeXBlEgwKCEtleWJvYXJkEAASEQoNR2xvYmFsR2FtZVBhZBAB", - "Eg4KClRvdWNoUGFuZWwQAhIOCgpEUzNDb250cm9sEAMSDgoKRFM0Q29udHJv", - "bBAEEg4KCkRTNUNvbnRyb2wQBRIUChBTd2l0Y2hQcm9Db250cm9sEAYSEAoM", - "U3dpdGNoSm95Q29uEAcSEgoOWEJPWDM2MENvbnRyb2wQCBISCg5YQk9YT05F", - "Q29udHJvbBAJEhEKDVBTVml0YUNvbnRyb2wQChISCg5XaWlVUGFkQ29udHJv", - "bBALEhQKEFdpaVJlbW90ZUNvbnRyb2wQDBIWChJOaW50ZW5kbzNEU0NvbnRy", - "b2wQDSqiAQoPUm9tUGxhdGZvcm1UeXBlEgsKB0ludmFsaWQQABIHCgNOZXMQ", - "ARIRCg1NYXN0ZXJfU3lzdGVtEAISDQoJR2FtZV9HZWFyEAMSDAoIR2FtZV9C", - "b3kQBBISCg5HYW1lX0JveV9Db2xvchAFEhEKDUNvbGVjb19WaXNpb24QBhIL", - "CgdTQ18zMDAwEAcSCwoHU0dfMTAwMBAIEggKA0FsbBDnBypwCg1Sb29tR2Ft", - "ZVN0YXRlEhIKDk5vbmVfR2FtZVN0YXRlEAASDAoIT25seUhvc3QQARIRCg1X", - "YWl0UmF3VXBkYXRlEAISDQoJV2FpdFJlYWR5EAMSCQoFUGF1c2UQBBIQCgxJ", - "bk9ubGluZUdhbWUQBSpOChFMb2dpblJlc3VsdFN0YXR1cxIhCh1Mb2dpblJl", - "c3VsdFN0YXR1c19CYXNlRGVmYXVsdBAAEgYKAk9LEAESDgoKQWNjb3VudEVy", - "chACQgJIAWIGcHJvdG8z")); + "bWVSb21JRBgCIAEoBRITCgtHYW1lUm9tSGFzaBgDIAEoCRI5ChBHYW1lUGxh", + "dGZvcm1UeXBlGAQgASgOMh8uQXhpYnVnUHJvdG9idWYuUm9tUGxhdGZvcm1U", + "eXBlEhUKDUhvc3RQbGF5ZXJVSUQYBSABKAMSMAoJR2FtZVN0YXRlGAYgASgO", + "Mh0uQXhpYnVnUHJvdG9idWYuUm9vbUdhbWVTdGF0ZRIUCgxPYnNVc2VyQ291", + "bnQYByABKAUSGQoRU2NyZWVuUHJvdmlkZXJVSUQYCCABKAMSRAoQR2FtZVBs", + "YXlTbG90TGlzdBgJIAMoCzIqLkF4aWJ1Z1Byb3RvYnVmLlByb3RvYnVmX1Jv", + "b21fR2FtZVBsYXlTbG90ItEBChpQcm90b2J1Zl9Sb29tX0dhbWVQbGF5U2xv", + "dBISCgpQbGF5ZXJfVUlEGAEgASgDEhcKD1BsYXllcl9OaWNrTmFtZRgCIAEo", + "CRIuCgpkZXZpY2VUeXBlGAMgASgOMhouQXhpYnVnUHJvdG9idWYuRGV2aWNl", + "VHlwZRIZChFQbGF5ZXJMb2NhbEpveUlkeBgEIAEoBRI7ChZQbGF5ZXJMb2Nh", + "bEdhbWVQYWRUeXBlGAUgASgOMhsuQXhpYnVnUHJvdG9idWYuR2FtZVBhZFR5", + "cGUibQoZUHJvdG9idWZfUm9vbV9VcGRhdGVfUkVTUBISCgpVcGRhdGVUeXBl", + "GAEgASgFEjwKDFJvb21NaW5pSW5mbxgCIAEoCzImLkF4aWJ1Z1Byb3RvYnVm", + "LlByb3RvYnVmX1Jvb21fTWluaUluZm8iSwoVUHJvdG9idWZfU2NyZW5uX0Zy", + "YW1lEg4KBlJvb21JRBgBIAEoBRIPCgdGcmFtZUlEGAIgASgFEhEKCVJhd0Jp", + "dG1hcBgDIAEoDCJJCiNQcm90b2J1Zl9Sb29tX1NpbmdsZVBsYXllcklucHV0", + "RGF0YRIPCgdGcmFtZUlEGAEgASgNEhEKCUlucHV0RGF0YRgCIAEoDSKAAQon", + "UHJvdG9idWZfUm9vbV9TeW5fUm9vbUZyYW1lQWxsSW5wdXREYXRhEg8KB0Zy", + "YW1lSUQYASABKA0SEQoJSW5wdXREYXRhGAIgASgEEhUKDVNlcnZlckZyYW1l", + "SUQYAyABKA0SGgoSU2VydmVyRm9yd2FyZENvdW50GAQgASgNIj4KFFByb3Rv", + "YnVmX1Jvb21fQ3JlYXRlEhEKCUdhbWVSb21JRBgBIAEoBRITCgtHYW1lUm9t", + "SGFzaBgCIAEoCSJZChlQcm90b2J1Zl9Sb29tX0NyZWF0ZV9SRVNQEjwKDFJv", + "b21NaW5pSW5mbxgBIAEoCzImLkF4aWJ1Z1Byb3RvYnVmLlByb3RvYnVmX1Jv", + "b21fTWluaUluZm8iJAoSUHJvdG9idWZfUm9vbV9Kb2luEg4KBlJvb21JRBgB", + "IAEoBSJXChdQcm90b2J1Zl9Sb29tX0pvaW5fUkVTUBI8CgxSb29tTWluaUlu", + "Zm8YASABKAsyJi5BeGlidWdQcm90b2J1Zi5Qcm90b2J1Zl9Sb29tX01pbmlJ", + "bmZvIiUKE1Byb3RvYnVmX1Jvb21fTGVhdmUSDgoGUm9vbUlEGAEgASgFIioK", + "GFByb3RvYnVmX1Jvb21fTGVhdmVfUkVTUBIOCgZSb29tSUQYASABKAUiYQoh", + "UHJvdG9idWZfUm9vbV9NeVJvb21fU3RhdGVfQ2hhbmdlEjwKDFJvb21NaW5p", + "SW5mbxgBIAEoCzImLkF4aWJ1Z1Byb3RvYnVmLlByb3RvYnVmX1Jvb21fTWlu", + "aUluZm8iawokUHJvdG9idWZfUm9vbV9DaGFuZ2VfUGxheVNsb3RXaXRoSm95", + "EkMKC1Nsb3RXaXRoSm95GAEgAygLMi4uQXhpYnVnUHJvdG9idWYuUHJvdG9i", + "dWZfUGxheVNsb3RJZHhXaXRoSm95SWR4Io8BCh5Qcm90b2J1Zl9QbGF5U2xv", + "dElkeFdpdGhKb3lJZHgSFQoNUGxheWVyU2xvdElkeBgBIAEoBRIZChFQbGF5", + "ZXJMb2NhbEpveUlkeBgCIAEoBRI7ChZQbGF5ZXJMb2NhbEdhbWVQYWRUeXBl", + "GAMgASgOMhsuQXhpYnVnUHJvdG9idWYuR2FtZVBhZFR5cGUiKwopUHJvdG9i", + "dWZfUm9vbV9DaGFuZ2VfUGxheVNsb3RXaXRoSm95X1JFU1AiRQobUHJvdG9i", + "dWZfUm9vbV9XYWl0U3RlcF9SRVNQEhAKCFdhaXRTdGVwGAEgASgFEhQKDExv", + "YWRTdGF0ZVJhdxgCIAEoDCI/CidQcm90b2J1Zl9Sb29tX0hvc3RQbGF5ZXJf", + "VXBkYXRlU3RhdGVSYXcSFAoMTG9hZFN0YXRlUmF3GAEgASgMIi4KLFByb3Rv", + "YnVmX1Jvb21fSG9zdFBsYXllcl9VcGRhdGVTdGF0ZVJhd19SRVNQIpoBChpQ", + "cm90b2J1Zl9Sb29tX1BsYXllcl9SZWFkeRIbChNQdXNoRnJhbWVOZWVkVGlt", + "ZVVzGAEgASgCEhsKE0xvYWRTdGF0ZU5lZWRUaW1lVXMYAiABKAISIAoYVmlk", + "ZW9GcmFtZVNob3dOZWVkVGltZVVzGAMgASgCEiAKGEF1ZGlvRnJhbWVQbGF5", + "TmVlZFRpbWVVcxgEIAEoAiIqChhQcm90b2J1Zl9Sb29tX0dldF9TY3JlZW4S", + "DgoGUm9vbUlEGAEgASgFIlMKHVByb3RvYnVmX1Jvb21fR2V0X1NjcmVlbl9S", + "RVNQEg4KBlJvb21JRBgBIAEoBRIPCgdGcmFtZUlEGAIgASgFEhEKCVJhd0Jp", + "dG1hcBgDIAEoDCIyChJQcm90b2J1Zl9HYW1lX01hcmsSDQoFUm9tSUQYASAB", + "KAUSDQoFc3RhdGUYAiABKAUiKAoXUHJvdG9idWZfR2FtZV9NYXJrX1JFU1AS", + "DQoFUm9tSUQYASABKAUqoQUKCUNvbW1hbmRJRBIOCgpDTURfREVGQVVMEAAS", + "DAoIQ01EX1BJTkcQARIMCghDTURfUE9ORxACEg4KCUNNRF9MT0dJThDRDxIY", + "ChNDTURfVVNFUl9PTkxJTkVMSVNUELgXEhIKDUNNRF9VU0VSX0pPSU4Q1xcS", + "EwoOQ01EX1VTRVJfTEVBVkUQ2BcSGgoVQ01EX1VTRVJfU1RBVEVfVVBEQVRF", + "ENkXEhgKE0NNRF9Nb2RpZnlfTmlja05hbWUQnRgSHAoXQ01EX1VwZGF0ZV9T", + "ZWxmVXNlckluZm8QphgSHQoYQ01EX1VwZGF0ZV9PdGhlclVzZXJJbmZvEKgY", + "EhAKC0NNRF9DSEFUTVNHEKEfEhIKDUNNRF9Sb29tX0xpc3QQiScSGQoUQ01E", + "X1Jvb21fTGlzdF9VcGRhdGUQiicSGAoTQ01EX1Jvb21fR2V0X1NjcmVlbhCT", + "JxIUCg9DTURfUm9vbV9DcmVhdGUQ7ScSEgoNQ01EX1Jvb21fSm9pbhDxJxIT", + "Cg5DTURfUm9vbV9MZWF2ZRDyJxIiCh1DTURfUm9vbV9NeVJvb21fU3RhdGVf", + "Q2hhbmdlZBD2JxIhChxDTURfUm9vbV9DaGFuZ2VQbGF5ZXJXaXRoSm95EIoo", + "EhYKEUNNRF9Sb29tX1dhaXRTdGVwENEoEicKIkNNRF9Sb29tX0hvc3RQbGF5", + "ZXJfVXBkYXRlU3RhdGVSYXcQ1CgSGgoVQ01EX1Jvb21fUGxheWVyX1JlYWR5", + "ENgoEiAKG0NNRF9Sb29tX1NpbmdlbF9QbGF5ZXJJbnB1dBD6LhIdChhDTURf", + "Uk9PTV9TWU5fUGxheWVySW5wdXQQ/y4SDwoKQ01EX1NjcmVlbhDZNhISCg1D", + "TURfR0FNRV9NQVJLEPVOKtABCglFcnJvckNvZGUSEAoMRVJST1JfREVGQVVM", + "EAASDAoIRVJST1JfT0sQARIYChRFUlJPUl9ST09NX05PVF9GT1VORBAKEicK", + "I0VSUk9SX1JPT01fU0xPVF9BTFJFQURMWV9IQURfUExBWUVSEAsSIQodRVJS", + "T1JfUk9PTV9DQU5UX0RPX0NVUlJfU1RBVEUQMhIfChpFUlJPUl9ST01fQUxS", + "RUFEWV9IQURfU1RBUhCTAxIcChdFUlJPUl9ST01fRE9OVF9IQURfU1RBUhCU", + "AypACglMb2dpblR5cGUSDQoJVXNlRGV2aWNlEAASDgoKVXNlQWNjb3VudBAB", + "EhQKEFVzZUhhb1l1ZUFjY291bnQQAiqlAQoKRGV2aWNlVHlwZRIWChJEZXZp", + "Y2VUeXBlX0RlZmF1bHQQABIGCgJQQxABEgsKB0FuZHJvaWQQAhIHCgNJT1MQ", + "AxIHCgNQU1YQBBIHCgNQUzMQBRIHCgNQUzQQBhILCgdYQk9YMzYwEAcSCwoH", + "WEJPWE9ORRAIEggKBFdpaVUQCRIPCgtOaW50ZW5kbzNEUxAKEhEKDUFuZHJv", + "aWRDYXJBcHAQCyqTAgoLR2FtZVBhZFR5cGUSDAoIS2V5Ym9hcmQQABIRCg1H", + "bG9iYWxHYW1lUGFkEAESDgoKVG91Y2hQYW5lbBACEg4KCkRTM0NvbnRyb2wQ", + "AxIOCgpEUzRDb250cm9sEAQSDgoKRFM1Q29udHJvbBAFEhQKEFN3aXRjaFBy", + "b0NvbnRyb2wQBhIQCgxTd2l0Y2hKb3lDb24QBxISCg5YQk9YMzYwQ29udHJv", + "bBAIEhIKDlhCT1hPTkVDb250cm9sEAkSEQoNUFNWaXRhQ29udHJvbBAKEhIK", + "DldpaVVQYWRDb250cm9sEAsSFAoQV2lpUmVtb3RlQ29udHJvbBAMEhYKEk5p", + "bnRlbmRvM0RTQ29udHJvbBANKqIBCg9Sb21QbGF0Zm9ybVR5cGUSCwoHSW52", + "YWxpZBAAEgcKA05lcxABEhEKDU1hc3Rlcl9TeXN0ZW0QAhINCglHYW1lX0dl", + "YXIQAxIMCghHYW1lX0JveRAEEhIKDkdhbWVfQm95X0NvbG9yEAUSEQoNQ29s", + "ZWNvX1Zpc2lvbhAGEgsKB1NDXzMwMDAQBxILCgdTR18xMDAwEAgSCAoDQWxs", + "EOcHKnAKDVJvb21HYW1lU3RhdGUSEgoOTm9uZV9HYW1lU3RhdGUQABIMCghP", + "bmx5SG9zdBABEhEKDVdhaXRSYXdVcGRhdGUQAhINCglXYWl0UmVhZHkQAxIJ", + "CgVQYXVzZRAEEhAKDEluT25saW5lR2FtZRAFKk4KEUxvZ2luUmVzdWx0U3Rh", + "dHVzEiEKHUxvZ2luUmVzdWx0U3RhdHVzX0Jhc2VEZWZhdWx0EAASBgoCT0sQ", + "ARIOCgpBY2NvdW50RXJyEAJCAkgBYgZwcm90bzM=")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { }, new pbr::GeneratedClrTypeInfo(new[] {typeof(global::AxibugProtobuf.CommandID), typeof(global::AxibugProtobuf.ErrorCode), typeof(global::AxibugProtobuf.LoginType), typeof(global::AxibugProtobuf.DeviceType), typeof(global::AxibugProtobuf.GamePadType), typeof(global::AxibugProtobuf.RomPlatformType), typeof(global::AxibugProtobuf.RoomGameState), typeof(global::AxibugProtobuf.LoginResultStatus), }, null, new pbr::GeneratedClrTypeInfo[] { @@ -163,7 +164,7 @@ namespace AxibugProtobuf { new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Update_OtherUserInfo_RESP), global::AxibugProtobuf.Protobuf_Update_OtherUserInfo_RESP.Parser, new[]{ "UID", "UserInfo" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_List), global::AxibugProtobuf.Protobuf_Room_List.Parser, null, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_List_RESP), global::AxibugProtobuf.Protobuf_Room_List_RESP.Parser, new[]{ "RoomMiniInfoList" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_MiniInfo), global::AxibugProtobuf.Protobuf_Room_MiniInfo.Parser, new[]{ "RoomID", "GameRomID", "GameRomHash", "HostPlayerUID", "GameState", "ObsUserCount", "ScreenProviderUID", "GamePlaySlotList" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_MiniInfo), global::AxibugProtobuf.Protobuf_Room_MiniInfo.Parser, new[]{ "RoomID", "GameRomID", "GameRomHash", "GamePlatformType", "HostPlayerUID", "GameState", "ObsUserCount", "ScreenProviderUID", "GamePlaySlotList" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_GamePlaySlot), global::AxibugProtobuf.Protobuf_Room_GamePlaySlot.Parser, new[]{ "PlayerUID", "PlayerNickName", "DeviceType", "PlayerLocalJoyIdx", "PlayerLocalGamePadType" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_Update_RESP), global::AxibugProtobuf.Protobuf_Room_Update_RESP.Parser, new[]{ "UpdateType", "RoomMiniInfo" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Screnn_Frame), global::AxibugProtobuf.Protobuf_Screnn_Frame.Parser, new[]{ "RoomID", "FrameID", "RawBitmap" }, null, null, null, null), @@ -4197,6 +4198,7 @@ namespace AxibugProtobuf { roomID_ = other.roomID_; gameRomID_ = other.gameRomID_; gameRomHash_ = other.gameRomHash_; + gamePlatformType_ = other.gamePlatformType_; hostPlayerUID_ = other.hostPlayerUID_; gameState_ = other.gameState_; obsUserCount_ = other.obsUserCount_; @@ -4249,8 +4251,19 @@ namespace AxibugProtobuf { } } + /// Field number for the "GamePlatformType" field. + public const int GamePlatformTypeFieldNumber = 4; + private global::AxibugProtobuf.RomPlatformType gamePlatformType_ = global::AxibugProtobuf.RomPlatformType.Invalid; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public global::AxibugProtobuf.RomPlatformType GamePlatformType { + get { return gamePlatformType_; } + set { + gamePlatformType_ = value; + } + } + /// Field number for the "HostPlayerUID" field. - public const int HostPlayerUIDFieldNumber = 4; + public const int HostPlayerUIDFieldNumber = 5; private long hostPlayerUID_; /// ///主机玩家ID @@ -4264,7 +4277,7 @@ namespace AxibugProtobuf { } /// Field number for the "GameState" field. - public const int GameStateFieldNumber = 5; + public const int GameStateFieldNumber = 6; private global::AxibugProtobuf.RoomGameState gameState_ = global::AxibugProtobuf.RoomGameState.NoneGameState; /// ///游戏状态 @@ -4278,7 +4291,7 @@ namespace AxibugProtobuf { } /// Field number for the "ObsUserCount" field. - public const int ObsUserCountFieldNumber = 6; + public const int ObsUserCountFieldNumber = 7; private int obsUserCount_; /// ///观战用户数量 @@ -4292,7 +4305,7 @@ namespace AxibugProtobuf { } /// Field number for the "ScreenProviderUID" field. - public const int ScreenProviderUIDFieldNumber = 7; + public const int ScreenProviderUIDFieldNumber = 8; private long screenProviderUID_; /// ///屏幕数据供应者 @@ -4306,9 +4319,9 @@ namespace AxibugProtobuf { } /// Field number for the "GamePlaySlotList" field. - public const int GamePlaySlotListFieldNumber = 8; + public const int GamePlaySlotListFieldNumber = 9; private static readonly pb::FieldCodec _repeated_gamePlaySlotList_codec - = pb::FieldCodec.ForMessage(66, global::AxibugProtobuf.Protobuf_Room_GamePlaySlot.Parser); + = pb::FieldCodec.ForMessage(74, global::AxibugProtobuf.Protobuf_Room_GamePlaySlot.Parser); private readonly pbc::RepeatedField gamePlaySlotList_ = new pbc::RepeatedField(); /// ///游玩槽位信息P1~P4 固定4个 @@ -4334,6 +4347,7 @@ namespace AxibugProtobuf { if (RoomID != other.RoomID) return false; if (GameRomID != other.GameRomID) return false; if (GameRomHash != other.GameRomHash) return false; + if (GamePlatformType != other.GamePlatformType) return false; if (HostPlayerUID != other.HostPlayerUID) return false; if (GameState != other.GameState) return false; if (ObsUserCount != other.ObsUserCount) return false; @@ -4348,6 +4362,7 @@ namespace AxibugProtobuf { if (RoomID != 0) hash ^= RoomID.GetHashCode(); if (GameRomID != 0) hash ^= GameRomID.GetHashCode(); if (GameRomHash.Length != 0) hash ^= GameRomHash.GetHashCode(); + if (GamePlatformType != global::AxibugProtobuf.RomPlatformType.Invalid) hash ^= GamePlatformType.GetHashCode(); if (HostPlayerUID != 0L) hash ^= HostPlayerUID.GetHashCode(); if (GameState != global::AxibugProtobuf.RoomGameState.NoneGameState) hash ^= GameState.GetHashCode(); if (ObsUserCount != 0) hash ^= ObsUserCount.GetHashCode(); @@ -4381,20 +4396,24 @@ namespace AxibugProtobuf { output.WriteRawTag(26); output.WriteString(GameRomHash); } - if (HostPlayerUID != 0L) { + if (GamePlatformType != global::AxibugProtobuf.RomPlatformType.Invalid) { output.WriteRawTag(32); + output.WriteEnum((int) GamePlatformType); + } + if (HostPlayerUID != 0L) { + output.WriteRawTag(40); output.WriteInt64(HostPlayerUID); } if (GameState != global::AxibugProtobuf.RoomGameState.NoneGameState) { - output.WriteRawTag(40); + output.WriteRawTag(48); output.WriteEnum((int) GameState); } if (ObsUserCount != 0) { - output.WriteRawTag(48); + output.WriteRawTag(56); output.WriteInt32(ObsUserCount); } if (ScreenProviderUID != 0L) { - output.WriteRawTag(56); + output.WriteRawTag(64); output.WriteInt64(ScreenProviderUID); } gamePlaySlotList_.WriteTo(output, _repeated_gamePlaySlotList_codec); @@ -4419,20 +4438,24 @@ namespace AxibugProtobuf { output.WriteRawTag(26); output.WriteString(GameRomHash); } - if (HostPlayerUID != 0L) { + if (GamePlatformType != global::AxibugProtobuf.RomPlatformType.Invalid) { output.WriteRawTag(32); + output.WriteEnum((int) GamePlatformType); + } + if (HostPlayerUID != 0L) { + output.WriteRawTag(40); output.WriteInt64(HostPlayerUID); } if (GameState != global::AxibugProtobuf.RoomGameState.NoneGameState) { - output.WriteRawTag(40); + output.WriteRawTag(48); output.WriteEnum((int) GameState); } if (ObsUserCount != 0) { - output.WriteRawTag(48); + output.WriteRawTag(56); output.WriteInt32(ObsUserCount); } if (ScreenProviderUID != 0L) { - output.WriteRawTag(56); + output.WriteRawTag(64); output.WriteInt64(ScreenProviderUID); } gamePlaySlotList_.WriteTo(ref output, _repeated_gamePlaySlotList_codec); @@ -4454,6 +4477,9 @@ namespace AxibugProtobuf { if (GameRomHash.Length != 0) { size += 1 + pb::CodedOutputStream.ComputeStringSize(GameRomHash); } + if (GamePlatformType != global::AxibugProtobuf.RomPlatformType.Invalid) { + size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) GamePlatformType); + } if (HostPlayerUID != 0L) { size += 1 + pb::CodedOutputStream.ComputeInt64Size(HostPlayerUID); } @@ -4487,6 +4513,9 @@ namespace AxibugProtobuf { if (other.GameRomHash.Length != 0) { GameRomHash = other.GameRomHash; } + if (other.GamePlatformType != global::AxibugProtobuf.RomPlatformType.Invalid) { + GamePlatformType = other.GamePlatformType; + } if (other.HostPlayerUID != 0L) { HostPlayerUID = other.HostPlayerUID; } @@ -4527,22 +4556,26 @@ namespace AxibugProtobuf { break; } case 32: { - HostPlayerUID = input.ReadInt64(); + GamePlatformType = (global::AxibugProtobuf.RomPlatformType) input.ReadEnum(); break; } case 40: { - GameState = (global::AxibugProtobuf.RoomGameState) input.ReadEnum(); + HostPlayerUID = input.ReadInt64(); break; } case 48: { - ObsUserCount = input.ReadInt32(); + GameState = (global::AxibugProtobuf.RoomGameState) input.ReadEnum(); break; } case 56: { + ObsUserCount = input.ReadInt32(); + break; + } + case 64: { ScreenProviderUID = input.ReadInt64(); break; } - case 66: { + case 74: { gamePlaySlotList_.AddEntriesFrom(input, _repeated_gamePlaySlotList_codec); break; } @@ -4573,22 +4606,26 @@ namespace AxibugProtobuf { break; } case 32: { - HostPlayerUID = input.ReadInt64(); + GamePlatformType = (global::AxibugProtobuf.RomPlatformType) input.ReadEnum(); break; } case 40: { - GameState = (global::AxibugProtobuf.RoomGameState) input.ReadEnum(); + HostPlayerUID = input.ReadInt64(); break; } case 48: { - ObsUserCount = input.ReadInt32(); + GameState = (global::AxibugProtobuf.RoomGameState) input.ReadEnum(); break; } case 56: { + ObsUserCount = input.ReadInt32(); + break; + } + case 64: { ScreenProviderUID = input.ReadInt64(); break; } - case 66: { + case 74: { gamePlaySlotList_.AddEntriesFrom(ref input, _repeated_gamePlaySlotList_codec); break; } diff --git a/ProtobufCore/proto/protobuf_AxibugEmuOnline.proto b/ProtobufCore/proto/protobuf_AxibugEmuOnline.proto index f2aaa5e0..ceb6c3d3 100644 --- a/ProtobufCore/proto/protobuf_AxibugEmuOnline.proto +++ b/ProtobufCore/proto/protobuf_AxibugEmuOnline.proto @@ -289,11 +289,12 @@ message Protobuf_Room_MiniInfo int32 RoomID = 1;//房间ID int32 GameRomID = 2;//游戏ID string GameRomHash = 3; - int64 HostPlayerUID = 4;//主机玩家ID - RoomGameState GameState = 5;//游戏状态 - int32 ObsUserCount = 6;//观战用户数量 - int64 ScreenProviderUID = 7;//屏幕数据供应者 - repeated Protobuf_Room_GamePlaySlot GamePlaySlotList = 8;//游玩槽位信息P1~P4 固定4个 + RomPlatformType GamePlatformType = 4; + int64 HostPlayerUID = 5;//主机玩家ID + RoomGameState GameState = 6;//游戏状态 + int32 ObsUserCount = 7;//观战用户数量 + int64 ScreenProviderUID = 8;//屏幕数据供应者 + repeated Protobuf_Room_GamePlaySlot GamePlaySlotList = 9;//游玩槽位信息P1~P4 固定4个 } message Protobuf_Room_GamePlaySlot diff --git a/README.md b/README.md index 5d193651..8f9ebe87 100644 --- a/README.md +++ b/README.md @@ -46,38 +46,6 @@ 最终达到了除了物理延迟之外,没有任何浪费,并即便是网络状况极差时,仅表现为操作延迟,而不是其他一些模拟器的顿帧卡顿。且同步一致性得以保证。 -#### 4.各种有意义的探索(作为额外功能,和联机无关) - - 应该是Unity引擎中对于模拟器内核的画面接入良好的范例 - - 除了联机同步之外,模拟器本身的一些云游戏探索,如用模拟器帧缓存做云游戏 - - 3.1 帧缓存云游戏概念 - - 验证了一下 把模拟器帧缓存 走公网同步,实现联机的另一种方式 - - 云游戏,但是不是视频流的方式,是同步模拟器帧缓存,+GZIP压缩。NES这种低分辨率+颜色查找表的方式。画面传输只需要9k/s - - 3.2 帧缓存云游戏TODO: - - 1.目前只同步了画面,操作CMD同步还没做。 - - 2.以及多用户自行创建房间,和玩家选择要加入的房间列表还没做。 - - 3.3 帧缓存云游戏简述客户端逻辑: - - Player1主机才跑模拟器实例,然后Player1 会把渲染层的数据上报服务器。服务器广播。 - - Player2即二号手柄玩家,不运行模拟器实例,画面渲染来自网络同步的数据。 - - PS:场景中,UNES Test的Inspector勾选Player1作为玩家1,不勾选作为玩家2 - - *之前试过直接上报渲染层,但是这样会有6w左右大小的uint[] - - *初步优化之后,采用只上报每一个像素对应颜色查找表的下标,这样就是一个byte[]了 - - *PorotoBuf 传输使用的是bytes,但是Porotbuff只会对数组里每一个byte进行位压缩,整个byte[]不压缩。于是C#先GZIP压缩之后,在扔给protobuf。对面再解压。超级马里奥最复杂的画面情况是9k每秒的样子/。 - ### 一个跨平台的、自动化联机的、纯C#实现的、开源的模拟器项目 @@ -151,7 +119,7 @@ Mapper支持越多,通俗讲就是支持更多卡带。 后续补充二次,修正 Mapper163 175 176 178 192 199 参照叶枫VirtuaNESex_src(20191105) -### 街机模拟器核心 +### 街机模拟器核心 CPS1 / NEOGEO / PGM / Taito(b) / Tehkan / or other MAME platform 原本是我独立移植到Unity的C# MAME.Core实现 @@ -160,14 +128,19 @@ Mapper支持越多,通俗讲就是支持更多卡带。 http://git.axibug.com/sin365/MAME.Core -### 街机模拟器核心 +### 8bit 其他模拟器核心 GameBoy / GameBoyColor / ColecoVision / GameGear / MasterSystem / SC3000 / SG1000 - 原本是我独立移植到Unity的C# Essgee实现,包含: - GameBoy - GameBoyColor - ColecoVision - GameGear - MasterSystem - SC3000 - SG1000 + 原本是我独立移植到Unity的C# Essgee实现,包含: 最终会继承到本项目中 https://github.com/Sin365/Essgee.Unity +## 各种有意义的探索(作为额外功能,和核心功能:联机 无关) + + 应该是Unity引擎中对于模拟器内核的画面接入良好的范例 + + 除了联机同步之外,模拟器本身的一些云游戏探索,如用模拟器帧缓存做视频直播 ## 引用 和 致谢 Acknowledgements & Attribution