Compare commits

...

7 Commits

18 changed files with 572 additions and 440 deletions

View File

@ -476,7 +476,7 @@ MonoBehaviour:
SelectScale: 1
UnSelectScale: 1
RomGroupRoot: {fileID: 3086674949377227884}
Platform: 0
Platform: 1
SearchKey:
--- !u!114 &5700455559359757662
MonoBehaviour:

View File

@ -32,6 +32,18 @@ namespace AxibugEmuOnline.Client
return (EnumScalerMode)setVal;
}
public bool IsSetMode(RomPlatformType platform)
{
int setVal = PlayerPrefs.GetInt($"{nameof(ScreenScaler)}.PlatMode.{platform}", -1);
return setVal != -1;
}
public void SetMode(RomPlatformType platform, EnumScalerMode? mode)
{
int setVal = mode == null ? -1 : (int)mode;
PlayerPrefs.SetInt($"{nameof(ScreenScaler)}.PlatMode.{platform}", setVal);
}
/// <summary>
/// 根据缩放模式设置UI的缩放
/// </summary>

View File

@ -135,10 +135,7 @@ namespace AxibugEmuOnline.Client
{
FetchPageCmd.Remove(page);
SaveRomInfoFromWeb(resp);
},
//TODO 平台参数
AxibugProtobuf.RomPlatformType.Nes,
lastSearchKey, pageNo, PAGE_SIZE);
}, m_platform, lastSearchKey, pageNo, PAGE_SIZE);
}
else
{
@ -146,10 +143,7 @@ namespace AxibugEmuOnline.Client
{
FetchPageCmd.Remove(page);
SaveRomInfoFromWeb(resp);
},
//TODO 平台参数
AxibugProtobuf.RomPlatformType.Nes,
pageNo, PAGE_SIZE);
}, m_platform, pageNo, PAGE_SIZE);
}
}

View File

@ -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 {
}
}
/// <summary>Field number for the "GamePlatformType" field.</summary>
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;
}
}
/// <summary>Field number for the "HostPlayerUID" field.</summary>
public const int HostPlayerUIDFieldNumber = 4;
public const int HostPlayerUIDFieldNumber = 5;
private long hostPlayerUID_;
/// <summary>
///主机玩家ID
@ -4264,7 +4277,7 @@ namespace AxibugProtobuf {
}
/// <summary>Field number for the "GameState" field.</summary>
public const int GameStateFieldNumber = 5;
public const int GameStateFieldNumber = 6;
private global::AxibugProtobuf.RoomGameState gameState_ = global::AxibugProtobuf.RoomGameState.NoneGameState;
/// <summary>
///游戏状态
@ -4278,7 +4291,7 @@ namespace AxibugProtobuf {
}
/// <summary>Field number for the "ObsUserCount" field.</summary>
public const int ObsUserCountFieldNumber = 6;
public const int ObsUserCountFieldNumber = 7;
private int obsUserCount_;
/// <summary>
///观战用户数量
@ -4292,7 +4305,7 @@ namespace AxibugProtobuf {
}
/// <summary>Field number for the "ScreenProviderUID" field.</summary>
public const int ScreenProviderUIDFieldNumber = 7;
public const int ScreenProviderUIDFieldNumber = 8;
private long screenProviderUID_;
/// <summary>
///屏幕数据供应者
@ -4306,9 +4319,9 @@ namespace AxibugProtobuf {
}
/// <summary>Field number for the "GamePlaySlotList" field.</summary>
public const int GamePlaySlotListFieldNumber = 8;
public const int GamePlaySlotListFieldNumber = 9;
private static readonly pb::FieldCodec<global::AxibugProtobuf.Protobuf_Room_GamePlaySlot> _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<global::AxibugProtobuf.Protobuf_Room_GamePlaySlot> gamePlaySlotList_ = new pbc::RepeatedField<global::AxibugProtobuf.Protobuf_Room_GamePlaySlot>();
/// <summary>
///游玩槽位信息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;
}

View File

@ -1,6 +1,5 @@
using AxibugEmuOnline.Client.ClientCore;
using AxibugProtobuf;
using System;
using System.Collections.Generic;
using UnityEngine;

View File

@ -42,6 +42,7 @@ namespace AxibugEmuOnline.Client
m_stepPerformer = new StepPerformer(this);
menus.Add(new InGameUI_FilterSetting(this));
menus.Add(new InGameUI_Scaler(this));
menus.Add(new InGameUI_Reset(this));
menus.Add(new InGameUI_SaveState(this));
menus.Add(new InGameUI_LoadState(this));

View File

@ -86,7 +86,7 @@ namespace AxibugEmuOnline.Client
SetBaseInfo("--", $"<b>{hostNick}</b>的房间", $"{cur}/{max}");
SetIcon(null);
roomInfo.FetchRomFileInRoomInfo(RomPlatformType.Nes, (room, romFile) =>
roomInfo.FetchRomFileInRoomInfo(roomInfo.GamePlatformType, (room, romFile) =>
{
if (room.RoomID != RoomID) return;

View File

@ -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<int, RomPlatformType> mDictRomID2Platform = new Dictionary<int, RomPlatformType>();
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;
}
}
}

View File

@ -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);

View File

@ -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<Protobuf_Room_Create>(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
/// 服务器提前帧数
/// </summary>
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;

View File

@ -21,7 +21,6 @@ namespace AxibugEmuOnline.Server
{
case "rlist":
{
List<Data_RoomData> roomlist = ObjectPoolAuto.AcquireList<Data_RoomData>();
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}");

View File

@ -1,18 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
https://go.microsoft.com/fwlink/?LinkID=208121.
-->
<Project>
<PropertyGroup>
<Configuration>Release</Configuration>
<Platform>Any CPU</Platform>
<PublishDir>bin\Release\net8.0\publish\win-x64\</PublishDir>
<PublishProtocol>FileSystem</PublishProtocol>
<_TargetId>Folder</_TargetId>
<TargetFramework>net8.0</TargetFramework>
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
<SelfContained>false</SelfContained>
<PublishSingleFile>false</PublishSingleFile>
<PublishReadyToRun>false</PublishReadyToRun>
</PropertyGroup>
</Project>

View File

@ -1,10 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
https://go.microsoft.com/fwlink/?LinkID=208121.
-->
<Project>
<PropertyGroup>
<History>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||;</History>
<LastFailureDetails />
</PropertyGroup>
</Project>

View File

@ -4,7 +4,7 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
-->
<Project>
<PropertyGroup>
<History>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||;</History>
<History>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||;</History>
<LastFailureDetails />
</PropertyGroup>
</Project>

View File

@ -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 {
}
}
/// <summary>Field number for the "GamePlatformType" field.</summary>
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;
}
}
/// <summary>Field number for the "HostPlayerUID" field.</summary>
public const int HostPlayerUIDFieldNumber = 4;
public const int HostPlayerUIDFieldNumber = 5;
private long hostPlayerUID_;
/// <summary>
///主机玩家ID
@ -4264,7 +4277,7 @@ namespace AxibugProtobuf {
}
/// <summary>Field number for the "GameState" field.</summary>
public const int GameStateFieldNumber = 5;
public const int GameStateFieldNumber = 6;
private global::AxibugProtobuf.RoomGameState gameState_ = global::AxibugProtobuf.RoomGameState.NoneGameState;
/// <summary>
///游戏状态
@ -4278,7 +4291,7 @@ namespace AxibugProtobuf {
}
/// <summary>Field number for the "ObsUserCount" field.</summary>
public const int ObsUserCountFieldNumber = 6;
public const int ObsUserCountFieldNumber = 7;
private int obsUserCount_;
/// <summary>
///观战用户数量
@ -4292,7 +4305,7 @@ namespace AxibugProtobuf {
}
/// <summary>Field number for the "ScreenProviderUID" field.</summary>
public const int ScreenProviderUIDFieldNumber = 7;
public const int ScreenProviderUIDFieldNumber = 8;
private long screenProviderUID_;
/// <summary>
///屏幕数据供应者
@ -4306,9 +4319,9 @@ namespace AxibugProtobuf {
}
/// <summary>Field number for the "GamePlaySlotList" field.</summary>
public const int GamePlaySlotListFieldNumber = 8;
public const int GamePlaySlotListFieldNumber = 9;
private static readonly pb::FieldCodec<global::AxibugProtobuf.Protobuf_Room_GamePlaySlot> _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<global::AxibugProtobuf.Protobuf_Room_GamePlaySlot> gamePlaySlotList_ = new pbc::RepeatedField<global::AxibugProtobuf.Protobuf_Room_GamePlaySlot>();
/// <summary>
///游玩槽位信息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;
}

View File

@ -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 {
}
}
/// <summary>Field number for the "GamePlatformType" field.</summary>
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;
}
}
/// <summary>Field number for the "HostPlayerUID" field.</summary>
public const int HostPlayerUIDFieldNumber = 4;
public const int HostPlayerUIDFieldNumber = 5;
private long hostPlayerUID_;
/// <summary>
///主机玩家ID
@ -4264,7 +4277,7 @@ namespace AxibugProtobuf {
}
/// <summary>Field number for the "GameState" field.</summary>
public const int GameStateFieldNumber = 5;
public const int GameStateFieldNumber = 6;
private global::AxibugProtobuf.RoomGameState gameState_ = global::AxibugProtobuf.RoomGameState.NoneGameState;
/// <summary>
///游戏状态
@ -4278,7 +4291,7 @@ namespace AxibugProtobuf {
}
/// <summary>Field number for the "ObsUserCount" field.</summary>
public const int ObsUserCountFieldNumber = 6;
public const int ObsUserCountFieldNumber = 7;
private int obsUserCount_;
/// <summary>
///观战用户数量
@ -4292,7 +4305,7 @@ namespace AxibugProtobuf {
}
/// <summary>Field number for the "ScreenProviderUID" field.</summary>
public const int ScreenProviderUIDFieldNumber = 7;
public const int ScreenProviderUIDFieldNumber = 8;
private long screenProviderUID_;
/// <summary>
///屏幕数据供应者
@ -4306,9 +4319,9 @@ namespace AxibugProtobuf {
}
/// <summary>Field number for the "GamePlaySlotList" field.</summary>
public const int GamePlaySlotListFieldNumber = 8;
public const int GamePlaySlotListFieldNumber = 9;
private static readonly pb::FieldCodec<global::AxibugProtobuf.Protobuf_Room_GamePlaySlot> _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<global::AxibugProtobuf.Protobuf_Room_GamePlaySlot> gamePlaySlotList_ = new pbc::RepeatedField<global::AxibugProtobuf.Protobuf_Room_GamePlaySlot>();
/// <summary>
///游玩槽位信息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;
}

View File

@ -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

View File

@ -6,7 +6,7 @@
#### **并不是基于RetroArchLibretro等项目的套壳项目也并不是XX前端**。请不要混淆。具体您可以看代码。
#### A cross platform, multiplayer online, Net 9 Server , Unity Client , game simulator used C#. on PSV/PS3,4/XBOX/3DS/Swith/PC/Mobile/or more...)
#### A cross platform, multiplayer online, Net 9 Server , Unity Client , game emulator used C#. on PSV/PS3,4/XBOX/3DS/Swith/PC/Mobile/or more...)
#### It's not a shell project based on projects such as RetroArch and Libretro。Please do not confuse. You can see the code for details.
@ -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#实现的、开源的模拟器项目
@ -117,21 +85,6 @@
[AlienJack](https://github.com/AlienJack "AlienJack")
## 引用
### 本项目使用我自构建的HaoYueNet高性能网络库作为基础而开发
[HaoYueNet-Github](https://github.com/Sin365/HaoYueNet "HaoYueNet-Github")
[HaoYueNet-自建Git站点](http://git.axibug.com/sin365/HaoYueNet "HaoYueNet-自建Git站点")
[nesdev.org NES - 2.0 XML Database](https://forums.nesdev.org/viewtopic.php?t=19940 "nesdev.org - NES 2.0 XML Database")
[VirtuaNES](http://virtuanes.s1.xrea.com/ "VirtuaNES")
部分NES-Mapper扩展 https://github.com/yamanyandakure/VirtuaNES097
部分NES-Mapper扩展 [VirtuaNESex](https://github.com/pengan1987/VirtuaNESex "VirtuaNESex")
### NES 模拟器内核
@ -166,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实现
@ -175,10 +128,50 @@ 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
### 本项目使用我自构建的HaoYueNet高性能网络库作为基础而开发
[HaoYueNet-Github](https://github.com/Sin365/HaoYueNet "HaoYueNet-Github")
[HaoYueNet-自建Git站点](http://git.axibug.com/sin365/HaoYueNet "HaoYueNet-自建Git站点")
[MAME.Core](http://git.axibug.com/sin365/MAME.Core "MAME.Core")
[Essgee.Unity](https://github.com/Sin365/Essgee.Unity "Essgee.Unity")
[ShaderToy](https://www.shadertoy.com/ "shadertoy")
[VirtuaNES](http://virtuanes.s1.xrea.com/ "VirtuaNES")
* 部分NES-Mapper扩展 https://github.com/yamanyandakure/VirtuaNES097
* 部分NES-Mapper扩展 [VirtuaNESex](https://github.com/pengan1987/VirtuaNESex "VirtuaNESex")
[nesdev.org NES - 2.0 XML Database](https://forums.nesdev.org/viewtopic.php?t=19940 "nesdev.org - NES 2.0 XML Database")
[Essgee](https://github.com/xdanieldzd/Essgee "Essgee")
* The XML data files in `Assets\No-Intro` were created by the [No-Intro](http://www.no-intro.org) project; see the [DAT-o-MATIC website](https://datomatic.no-intro.org) for official downloads.
[MAME-NET](https://www.codeproject.com/Articles/1275365/MAME-NET "MAME-NET")
* MAME-Multiple Arcade Machine Emulator - https://github.com/mamedev
* MSDN - https://msdn.microsoft.com
* BizHawk M68000 and Z80 code - https://github.com/TASEmulators/BizHawk/tree/master/src/BizHawk.Emulation.Cores/CPUs
* VCMAME detail by Bryan McPhail - https://www.codeproject.com/Articles/4923/VCMAME-Multiple-Arcade-Machine-Emulator-for-Visual
* MAME and MAMEUI Visual C Project Files - http://www.mikesarcade.com/arcade/vcmame.html
* CPS1.NET - https://www.codeproject.com/Articles/998595/CPS1-NET-A-Csharp-Based-CPS1-MAME-Emulator