Compare commits

...

8 Commits

28 changed files with 1261 additions and 663 deletions

View File

@ -1,5 +1,6 @@
using AxibugEmuOnline.Client.Manager;
using AxibugEmuOnline.Client.Network;
using System;
using System.Collections;
using System.IO;
using System.Threading.Tasks;
@ -125,18 +126,46 @@ namespace AxibugEmuOnline.Client.ClientCore
yield break;
}
bool bHttpCheckDone = false;
Resp_CheckStandInfo resp = null;
while (true)
{
AxiHttpProxy.SendWebRequestProxy request = AxiHttpProxy.Get($"{App.httpAPI.WebSiteApi}/CheckStandInfo?platform={platform}&version={Application.version}");
yield return request.SendWebRequest;
if (!request.downloadHandler.isDone)
yield break;
if (request.downloadHandler.bHadErr)
{
bHttpCheckDone = false;
}
else if (request.downloadHandler.bHadErr)
{
bHttpCheckDone = false;
App.log.Error(request.downloadHandler.ErrInfo);
yield break;
}
else
{
try
{
resp = JsonUtility.FromJson<Resp_CheckStandInfo>(request.downloadHandler.text);
bHttpCheckDone = true;
}
catch (Exception ex)
{
bHttpCheckDone = false;
App.log.Error(ex.ToString());
}
}
Resp_CheckStandInfo resp = JsonUtility.FromJson<Resp_CheckStandInfo>(request.downloadHandler.text);
//请求成功
if (bHttpCheckDone)
{
break;
}
else
{
yield return new WaitForSeconds(1);
App.log.Debug("请求失败重试请求API...");
}
}
/*UnityWebRequest request = UnityWebRequest.Get($"{App.httpAPI.WebSiteApi}/CheckStandInfo?platform={platform}&version={Application.version}");
yield return request.SendWebRequest();

View File

@ -25,14 +25,37 @@ namespace AxibugEmuOnline.Client.Manager
App.user.userdata.Account = LastLoginGuid;
AxibugProtobuf.DeviceType devType;
if (Application.platform == RuntimePlatform.PSP2)
switch (Application.platform)
{
case RuntimePlatform.PSP2:
devType = AxibugProtobuf.DeviceType.Psv;
else if (Application.platform == RuntimePlatform.Android)
devType = AxibugProtobuf.DeviceType.Android;
else if (Application.platform == RuntimePlatform.IPhonePlayer)
break;
case RuntimePlatform.PS4:
devType = AxibugProtobuf.DeviceType.Ps4;
break;
case RuntimePlatform.PS3:
devType = AxibugProtobuf.DeviceType.Ps3;
break;
case RuntimePlatform.WiiU:
devType = AxibugProtobuf.DeviceType.WiiU;
break;
case RuntimePlatform.XBOX360:
devType = AxibugProtobuf.DeviceType.Xbox360;
break;
case RuntimePlatform.XboxOne:
case RuntimePlatform.GameCoreXboxOne:
devType = AxibugProtobuf.DeviceType.Xboxone;
break;
//case RuntimePlatform.:
// devType = AxibugProtobuf.DeviceType.Nintendo3Ds;
// break;
case RuntimePlatform.IPhonePlayer:
devType = AxibugProtobuf.DeviceType.Ios;
else
break;
default:
devType = AxibugProtobuf.DeviceType.Pc;
break;
}
Protobuf_Login msg = new Protobuf_Login()
{

View File

@ -412,20 +412,19 @@ namespace AxibugEmuOnline.Client.Manager
/// 发送修改玩家槽位,但是增量
/// </summary>
/// <param name="dictSlotIdx2LocalJoyIdx">玩家占用房间GamePlaySlot和LocalJoyIdx字典</param>
public void SendChangePlaySlotIdxWithJoyIdx(uint localJoyIndex, uint slotIndex)
public void SendChangePlaySlotIdxWithJoyIdx(uint localJoyIndex, uint slotIndex, GamePadType localGamePadType)
{
if (!App.roomMgr.InRoom) return;
Dictionary<uint, uint> temp = new Dictionary<uint, uint>();
Dictionary<uint, ValueTuple<uint, GamePadType>> temp = new Dictionary<uint, ValueTuple<uint, GamePadType>>();
for (int i = 0; i < App.roomMgr.mineRoomMiniInfo.GamePlaySlotList.Count; i++)
{
var item = App.roomMgr.mineRoomMiniInfo.GamePlaySlotList[i];
if (item.PlayerUID <= 0) continue;
if (item.PlayerUID != App.user.userdata.UID) return;
temp[(uint)i] = (uint)item.PlayerLocalJoyIdx;
temp[(uint)i] = new ValueTuple<uint, GamePadType>((uint)item.PlayerLocalJoyIdx, item.PlayerLocalGamePadType);
}
temp[slotIndex] = localJoyIndex;
temp[slotIndex] = new ValueTuple<uint, GamePadType>(localJoyIndex, localGamePadType);
SendChangePlaySlotIdxWithJoyIdx(temp);
}
@ -433,7 +432,7 @@ namespace AxibugEmuOnline.Client.Manager
/// 发送修改玩家槽位,全量
/// </summary>
/// <param name="dictSlotIdx2LocalJoyIdx">玩家占用房间GamePlaySlot和LocalJoyIdx字典</param>
public void SendChangePlaySlotIdxWithJoyIdx(Dictionary<uint, uint> dictSlotIdx2LocalJoyIdx)
public void SendChangePlaySlotIdxWithJoyIdx(Dictionary<uint, ValueTuple<uint,GamePadType>> dictSlotIdx2LocalJoyIdx)
{
if (!InRoom)
return;
@ -445,7 +444,8 @@ namespace AxibugEmuOnline.Client.Manager
_Protobuf_Room_Change_PlaySlotWithJoy.SlotWithJoy.Add(new Protobuf_PlaySlotIdxWithJoyIdx()
{
PlayerSlotIdx = (int)slotdata.Key,
PlayerLocalJoyIdx = (int)slotdata.Value,
PlayerLocalJoyIdx = (int)slotdata.Value.Item1,
PlayerLocalGamePadType = slotdata.Value.Item2,
});
}
@ -606,5 +606,23 @@ namespace AxibugEmuOnline.Client.Manager
PlayerName = roomMiniInfo.GamePlaySlotList[(int)GameSlotIdx].PlayerNickName;
return string.IsNullOrEmpty(PlayerName);
}
/// <summary>
/// 获取玩家手柄类型
/// </summary>
/// <param name="roomMiniInfo"></param>
/// <param name="GameSlotIdx"></param>
/// <param name="gamePadType"></param>
/// <returns></returns>
public static bool GetPlayerGamePadTypeByPlayerIdx(this Protobuf_Room_MiniInfo roomMiniInfo, uint GameSlotIdx, out GamePadType gamePadType)
{
if (roomMiniInfo.GamePlaySlotList[(int)GameSlotIdx].PlayerUID > 0)
{
gamePadType = roomMiniInfo.GamePlaySlotList[(int)GameSlotIdx].PlayerLocalGamePadType;
return true;
}
gamePadType = GamePadType.GlobalGamePad;
return false;
}
}
}

View File

@ -18,13 +18,12 @@ namespace AxibugEmuOnline.Client.Manager
/// </summary>
/// <param name="RomID"></param>
/// <param name="Motion">[0]收藏[1]取消收藏</param>
public void SendGameStar(int RomID, PlatformType Platform, int Motion)
public void SendGameStar(int RomID, int Motion)
{
Protobuf_Game_Mark req = new Protobuf_Game_Mark()
{
State = Motion,
RomID = RomID,
PlatformType = Platform
};
App.log.Info($"LeavnRoom");
App.network.SendToServer((int)CommandID.CmdGameMark, ProtoBufHelper.Serizlize(req));
@ -37,7 +36,7 @@ namespace AxibugEmuOnline.Client.Manager
void RecvGameStar(byte[] reqData)
{
Protobuf_Game_Mark_RESP msg = ProtoBufHelper.DeSerizlize<Protobuf_Game_Mark_RESP>(reqData);
Eventer.Instance.PostEvent(EEvent.OnDoStars, msg.PlatformType, msg.RomID);
Eventer.Instance.PostEvent(EEvent.OnDoStars, msg.RomID);
}
}

View File

@ -1,4 +1,5 @@
using AxibugEmuOnline.Client.ClientCore;
using AxibugProtobuf;
using System;
using System.Collections;
using System.Collections.Generic;
@ -12,19 +13,19 @@ namespace AxibugEmuOnline.Client
public string WebHost = "http://emu.axibug.com";
public string WebSiteApi => WebHost + "/api";
public delegate void GetRomListAPI(Action<int, Resp_GameList> callback, int page, int pageSize = 10);
public delegate void SearchRomListAPI(Action<int, Resp_GameList> callback, string searchKey, int page, int pageSize = 10);
public delegate void GetRomListAPI(Action<int, Resp_GameList> callback, AxibugProtobuf.RomPlatformType Platform, int page, int pageSize = 10);
public delegate void SearchRomListAPI(Action<int, Resp_GameList> callback, AxibugProtobuf.RomPlatformType Platform, string searchKey, int page, int pageSize = 10);
public void GetNesRomList(Action<int, Resp_GameList> callback, int page, int pageSize = 10)
public void GetNesRomList(Action<int, Resp_GameList> callback, AxibugProtobuf.RomPlatformType platform, int page, int pageSize = 10)
{
App.StartCoroutine(GetNesRomListFlow(page, pageSize, callback));
App.StartCoroutine(GetRomListFlow(platform,page, pageSize, callback));
}
public void SearchNesRomList(Action<int, Resp_GameList> callback, string searchKey, int page, int pageSize = 10)
public void SearchNesRomList(Action<int, Resp_GameList> callback, AxibugProtobuf.RomPlatformType platform, string searchKey, int page, int pageSize = 10)
{
App.StartCoroutine(SearchNesRomListFlow(searchKey, page, pageSize, callback));
App.StartCoroutine(SearchNesRomListFlow(platform,searchKey, page, pageSize, callback));
}
private IEnumerator SearchNesRomListFlow(string searchKey, int page, int pageSize, Action<int, Resp_GameList> callback)
private IEnumerator SearchNesRomListFlow(AxibugProtobuf.RomPlatformType platform,string searchKey, int page, int pageSize, Action<int, Resp_GameList> callback)
{
if (!string.IsNullOrEmpty(searchKey))
{
@ -72,9 +73,9 @@ namespace AxibugEmuOnline.Client
}*/
}
private IEnumerator GetNesRomListFlow(int page, int pageSize, Action<int, Resp_GameList> callback)
private IEnumerator GetRomListFlow(AxibugProtobuf.RomPlatformType platform, int page, int pageSize, Action<int, Resp_GameList> callback)
{
string url = $"{WebSiteApi}/NesRomList?Page={page}&PageSize={pageSize}";
string url = $"{WebSiteApi}/RomList?Page={page}&PageSize={pageSize}&PType={(int)platform}";
App.log.Info($"GetRomList=>{url}");
AxiHttpProxy.SendWebRequestProxy request = AxiHttpProxy.Get(url);
yield return request.SendWebRequest;
@ -106,10 +107,10 @@ namespace AxibugEmuOnline.Client
*/
}
public IEnumerator GetNesRomInfo(int RomID, Action<Resp_RomInfo> callback)
public IEnumerator GetRomInfo(int RomID, Action<Resp_RomInfo> callback)
{
AxiHttpProxy.SendWebRequestProxy request = AxiHttpProxy.Get($"{WebSiteApi}/RomInfo?PType={PlatformType.Nes}&RomID={RomID}");
AxiHttpProxy.SendWebRequestProxy request = AxiHttpProxy.Get($"{WebSiteApi}/RomInfo?RomID={RomID}");
yield return request.SendWebRequest;
if (!request.downloadHandler.isDone)
{
@ -140,12 +141,6 @@ namespace AxibugEmuOnline.Client
}
enum PlatformType : byte
{
All = 0,
Nes = 1,
}
enum GameType : byte
{
NONE = 0,
@ -182,6 +177,8 @@ namespace AxibugEmuOnline.Client
{
public int orderid;
public int id;
//TODO 后续根据ptype启动游戏时选择核心。和列表设计和UI分组解耦比如无视平台搜索列表收藏列表
public int ptype;
public string romName;
public string gType;
public string desc;

View File

@ -94,7 +94,10 @@ namespace AxibugEmuOnline.Client
SaveRomInfoFromWeb(romList);
callback.Invoke(nesRomFetchList);
}, 0, PAGE_SIZE);
},
//TODO 平台参数
AxibugProtobuf.RomPlatformType.Nes
, 0, PAGE_SIZE);
}
else
{
@ -117,7 +120,10 @@ namespace AxibugEmuOnline.Client
SaveRomInfoFromWeb(romList);
callback.Invoke(nesRomFetchList);
}, searchKey, 0, PAGE_SIZE);
},
//TODO 平台参数
AxibugProtobuf.RomPlatformType.Nes
, searchKey, 0, PAGE_SIZE);
}
}
@ -143,7 +149,10 @@ namespace AxibugEmuOnline.Client
{
FetchPageCmd.Remove(page);
SaveRomInfoFromWeb(resp);
}, lastSearchKey, pageNo, PAGE_SIZE);
},
//TODO 平台参数
AxibugProtobuf.RomPlatformType.Nes,
lastSearchKey, pageNo, PAGE_SIZE);
}
else
{
@ -151,7 +160,10 @@ namespace AxibugEmuOnline.Client
{
FetchPageCmd.Remove(page);
SaveRomInfoFromWeb(resp);
}, pageNo, PAGE_SIZE);
},
//TODO 平台参数
AxibugProtobuf.RomPlatformType.Nes,
pageNo, PAGE_SIZE);
}
}

View File

@ -42,95 +42,109 @@ namespace AxibugProtobuf {
"X1VzZXJKb2luX1JFU1ASLgoIVXNlckluZm8YASABKAsyHC5BeGlidWdQcm90",
"b2J1Zi5Vc2VyTWluaUluZm8iJgoXUHJvdG9idWZfVXNlckxlYXZlX1JFU1AS",
"CwoDVUlEGAEgASgDIjUKF1Byb3RvYnVmX1VzZXJTdGF0ZV9SRVNQEgsKA1VJ",
"RBgBIAEoAxINCgVTdGF0ZRgCIAEoBSItCgxVc2VyTWluaUluZm8SCwoDVUlE",
"GAEgASgDEhAKCE5pY2tOYW1lGAIgASgJIiwKGFByb3RvYnVmX01vZGlmeV9O",
"aWNrTmFtZRIQCghOaWNrTmFtZRgBIAEoCSIfCh1Qcm90b2J1Zl9Nb2RpZnlf",
"Tmlja05hbWVfUkVTUCJPCh1Qcm90b2J1Zl9VcGRhdGVfVXNlckluZm9fUkVT",
"UBIuCghVc2VySW5mbxgBIAEoCzIcLkF4aWJ1Z1Byb3RvYnVmLlVzZXJNaW5p",
"SW5mbyJhCiJQcm90b2J1Zl9VcGRhdGVfT3RoZXJVc2VySW5mb19SRVNQEgsK",
"A1VJRBgBIAEoAxIuCghVc2VySW5mbxgCIAEoCzIcLkF4aWJ1Z1Byb3RvYnVm",
"LlVzZXJNaW5pSW5mbyIUChJQcm90b2J1Zl9Sb29tX0xpc3QiWwoXUHJvdG9i",
"dWZfUm9vbV9MaXN0X1JFU1ASQAoQUm9vbU1pbmlJbmZvTGlzdBgBIAMoCzIm",
"LkF4aWJ1Z1Byb3RvYnVmLlByb3RvYnVmX1Jvb21fTWluaUluZm8ikAIKFlBy",
"b3RvYnVmX1Jvb21fTWluaUluZm8SDgoGUm9vbUlEGAEgASgFEhEKCUdhbWVS",
"b21JRBgCIAEoBRITCgtHYW1lUm9tSGFzaBgDIAEoCRIVCg1Ib3N0UGxheWVy",
"VUlEGAQgASgDEjAKCUdhbWVTdGF0ZRgFIAEoDjIdLkF4aWJ1Z1Byb3RvYnVm",
"LlJvb21HYW1lU3RhdGUSFAoMT2JzVXNlckNvdW50GAYgASgFEhkKEVNjcmVl",
"blByb3ZpZGVyVUlEGAcgASgDEkQKEEdhbWVQbGF5U2xvdExpc3QYCCADKAsy",
"Ki5BeGlidWdQcm90b2J1Zi5Qcm90b2J1Zl9Sb29tX0dhbWVQbGF5U2xvdCJk",
"ChpQcm90b2J1Zl9Sb29tX0dhbWVQbGF5U2xvdBISCgpQbGF5ZXJfVUlEGAEg",
"ASgDEhcKD1BsYXllcl9OaWNrTmFtZRgCIAEoCRIZChFQbGF5ZXJMb2NhbEpv",
"eUlkeBgDIAEoBSJtChlQcm90b2J1Zl9Sb29tX1VwZGF0ZV9SRVNQEhIKClVw",
"ZGF0ZVR5cGUYASABKAUSPAoMUm9vbU1pbmlJbmZvGAIgASgLMiYuQXhpYnVn",
"UHJvdG9idWYuUHJvdG9idWZfUm9vbV9NaW5pSW5mbyJLChVQcm90b2J1Zl9T",
"Y3Jlbm5fRnJhbWUSDgoGUm9vbUlEGAEgASgFEg8KB0ZyYW1lSUQYAiABKAUS",
"EQoJUmF3Qml0bWFwGAMgASgMIkkKI1Byb3RvYnVmX1Jvb21fU2luZ2xlUGxh",
"eWVySW5wdXREYXRhEg8KB0ZyYW1lSUQYASABKA0SEQoJSW5wdXREYXRhGAIg",
"ASgNIoABCidQcm90b2J1Zl9Sb29tX1N5bl9Sb29tRnJhbWVBbGxJbnB1dERh",
"dGESDwoHRnJhbWVJRBgBIAEoDRIRCglJbnB1dERhdGEYAiABKAQSFQoNU2Vy",
"dmVyRnJhbWVJRBgDIAEoDRIaChJTZXJ2ZXJGb3J3YXJkQ291bnQYBCABKA0i",
"PgoUUHJvdG9idWZfUm9vbV9DcmVhdGUSEQoJR2FtZVJvbUlEGAEgASgFEhMK",
"C0dhbWVSb21IYXNoGAIgASgJIlkKGVByb3RvYnVmX1Jvb21fQ3JlYXRlX1JF",
"U1ASPAoMUm9vbU1pbmlJbmZvGAEgASgLMiYuQXhpYnVnUHJvdG9idWYuUHJv",
"dG9idWZfUm9vbV9NaW5pSW5mbyIkChJQcm90b2J1Zl9Sb29tX0pvaW4SDgoG",
"Um9vbUlEGAEgASgFIlcKF1Byb3RvYnVmX1Jvb21fSm9pbl9SRVNQEjwKDFJv",
"b21NaW5pSW5mbxgBIAEoCzImLkF4aWJ1Z1Byb3RvYnVmLlByb3RvYnVmX1Jv",
"b21fTWluaUluZm8iJQoTUHJvdG9idWZfUm9vbV9MZWF2ZRIOCgZSb29tSUQY",
"ASABKAUiKgoYUHJvdG9idWZfUm9vbV9MZWF2ZV9SRVNQEg4KBlJvb21JRBgB",
"IAEoBSJhCiFQcm90b2J1Zl9Sb29tX015Um9vbV9TdGF0ZV9DaGFuZ2USPAoM",
"Um9vbU1pbmlJbmZvGAEgASgLMiYuQXhpYnVnUHJvdG9idWYuUHJvdG9idWZf",
"Um9vbV9NaW5pSW5mbyJrCiRQcm90b2J1Zl9Sb29tX0NoYW5nZV9QbGF5U2xv",
"dFdpdGhKb3kSQwoLU2xvdFdpdGhKb3kYASADKAsyLi5BeGlidWdQcm90b2J1",
"Zi5Qcm90b2J1Zl9QbGF5U2xvdElkeFdpdGhKb3lJZHgiUgoeUHJvdG9idWZf",
"UGxheVNsb3RJZHhXaXRoSm95SWR4EhUKDVBsYXllclNsb3RJZHgYASABKAUS",
"GQoRUGxheWVyTG9jYWxKb3lJZHgYAiABKAUiKwopUHJvdG9idWZfUm9vbV9D",
"aGFuZ2VfUGxheVNsb3RXaXRoSm95X1JFU1AiRQobUHJvdG9idWZfUm9vbV9X",
"YWl0U3RlcF9SRVNQEhAKCFdhaXRTdGVwGAEgASgFEhQKDExvYWRTdGF0ZVJh",
"dxgCIAEoDCI/CidQcm90b2J1Zl9Sb29tX0hvc3RQbGF5ZXJfVXBkYXRlU3Rh",
"dGVSYXcSFAoMTG9hZFN0YXRlUmF3GAEgASgMIi4KLFByb3RvYnVmX1Jvb21f",
"SG9zdFBsYXllcl9VcGRhdGVTdGF0ZVJhd19SRVNQIpoBChpQcm90b2J1Zl9S",
"b29tX1BsYXllcl9SZWFkeRIbChNQdXNoRnJhbWVOZWVkVGltZVVzGAEgASgC",
"EhsKE0xvYWRTdGF0ZU5lZWRUaW1lVXMYAiABKAISIAoYVmlkZW9GcmFtZVNo",
"b3dOZWVkVGltZVVzGAMgASgCEiAKGEF1ZGlvRnJhbWVQbGF5TmVlZFRpbWVV",
"cxgEIAEoAiIqChhQcm90b2J1Zl9Sb29tX0dldF9TY3JlZW4SDgoGUm9vbUlE",
"GAEgASgFIlMKHVByb3RvYnVmX1Jvb21fR2V0X1NjcmVlbl9SRVNQEg4KBlJv",
"b21JRBgBIAEoBRIPCgdGcmFtZUlEGAIgASgFEhEKCVJhd0JpdG1hcBgDIAEo",
"DCJmChJQcm90b2J1Zl9HYW1lX01hcmsSDQoFUm9tSUQYASABKAUSDQoFc3Rh",
"dGUYAiABKAUSMgoMUGxhdGZvcm1UeXBlGAMgASgOMhwuQXhpYnVnUHJvdG9i",
"dWYuUGxhdGZvcm1UeXBlIlwKF1Byb3RvYnVmX0dhbWVfTWFya19SRVNQEg0K",
"BVJvbUlEGAEgASgFEjIKDFBsYXRmb3JtVHlwZRgCIAEoDjIcLkF4aWJ1Z1By",
"b3RvYnVmLlBsYXRmb3JtVHlwZSqhBQoJQ29tbWFuZElEEg4KCkNNRF9ERUZB",
"VUwQABIMCghDTURfUElORxABEgwKCENNRF9QT05HEAISDgoJQ01EX0xPR0lO",
"ENEPEhgKE0NNRF9VU0VSX09OTElORUxJU1QQuBcSEgoNQ01EX1VTRVJfSk9J",
"ThDXFxITCg5DTURfVVNFUl9MRUFWRRDYFxIaChVDTURfVVNFUl9TVEFURV9V",
"UERBVEUQ2RcSGAoTQ01EX01vZGlmeV9OaWNrTmFtZRCdGBIcChdDTURfVXBk",
"YXRlX1NlbGZVc2VySW5mbxCmGBIdChhDTURfVXBkYXRlX090aGVyVXNlcklu",
"Zm8QqBgSEAoLQ01EX0NIQVRNU0cQoR8SEgoNQ01EX1Jvb21fTGlzdBCJJxIZ",
"ChRDTURfUm9vbV9MaXN0X1VwZGF0ZRCKJxIYChNDTURfUm9vbV9HZXRfU2Ny",
"ZWVuEJMnEhQKD0NNRF9Sb29tX0NyZWF0ZRDtJxISCg1DTURfUm9vbV9Kb2lu",
"EPEnEhMKDkNNRF9Sb29tX0xlYXZlEPInEiIKHUNNRF9Sb29tX015Um9vbV9T",
"dGF0ZV9DaGFuZ2VkEPYnEiEKHENNRF9Sb29tX0NoYW5nZVBsYXllcldpdGhK",
"b3kQiigSFgoRQ01EX1Jvb21fV2FpdFN0ZXAQ0SgSJwoiQ01EX1Jvb21fSG9z",
"dFBsYXllcl9VcGRhdGVTdGF0ZVJhdxDUKBIaChVDTURfUm9vbV9QbGF5ZXJf",
"UmVhZHkQ2CgSIAobQ01EX1Jvb21fU2luZ2VsX1BsYXllcklucHV0EPouEh0K",
"GENNRF9ST09NX1NZTl9QbGF5ZXJJbnB1dBD/LhIPCgpDTURfU2NyZWVuENk2",
"EhIKDUNNRF9HQU1FX01BUksQ9U4q0AEKCUVycm9yQ29kZRIQCgxFUlJPUl9E",
"RUZBVUwQABIMCghFUlJPUl9PSxABEhgKFEVSUk9SX1JPT01fTk9UX0ZPVU5E",
"EAoSJwojRVJST1JfUk9PTV9TTE9UX0FMUkVBRExZX0hBRF9QTEFZRVIQCxIh",
"Ch1FUlJPUl9ST09NX0NBTlRfRE9fQ1VSUl9TVEFURRAyEh8KGkVSUk9SX1JP",
"TV9BTFJFQURZX0hBRF9TVEFSEJMDEhwKF0VSUk9SX1JPTV9ET05UX0hBRF9T",
"VEFSEJQDKkAKCUxvZ2luVHlwZRINCglVc2VEZXZpY2UQABIOCgpVc2VBY2Nv",
"dW50EAESFAoQVXNlSGFvWXVlQWNjb3VudBACKksKCkRldmljZVR5cGUSFgoS",
"RGV2aWNlVHlwZV9EZWZhdWx0EAASBgoCUEMQARILCgdBbmRyb2lkEAISBwoD",
"SU9TEAMSBwoDUFNWEAQqIAoMUGxhdGZvcm1UeXBlEgcKA0FsbBAAEgcKA05l",
"cxABKnAKDVJvb21HYW1lU3RhdGUSEgoOTm9uZV9HYW1lU3RhdGUQABIMCghP",
"bmx5SG9zdBABEhEKDVdhaXRSYXdVcGRhdGUQAhINCglXYWl0UmVhZHkQAxIJ",
"CgVQYXVzZRAEEhAKDEluT25saW5lR2FtZRAFKk4KEUxvZ2luUmVzdWx0U3Rh",
"dHVzEiEKHUxvZ2luUmVzdWx0U3RhdHVzX0Jhc2VEZWZhdWx0EAASBgoCT0sQ",
"ARIOCgpBY2NvdW50RXJyEAJCAkgBYgZwcm90bzM="));
"RBgBIAEoAxINCgVTdGF0ZRgCIAEoBSJdCgxVc2VyTWluaUluZm8SCwoDVUlE",
"GAEgASgDEhAKCE5pY2tOYW1lGAIgASgJEi4KCmRldmljZVR5cGUYAyABKA4y",
"Gi5BeGlidWdQcm90b2J1Zi5EZXZpY2VUeXBlIiwKGFByb3RvYnVmX01vZGlm",
"eV9OaWNrTmFtZRIQCghOaWNrTmFtZRgBIAEoCSIfCh1Qcm90b2J1Zl9Nb2Rp",
"ZnlfTmlja05hbWVfUkVTUCJPCh1Qcm90b2J1Zl9VcGRhdGVfVXNlckluZm9f",
"UkVTUBIuCghVc2VySW5mbxgBIAEoCzIcLkF4aWJ1Z1Byb3RvYnVmLlVzZXJN",
"aW5pSW5mbyJhCiJQcm90b2J1Zl9VcGRhdGVfT3RoZXJVc2VySW5mb19SRVNQ",
"EgsKA1VJRBgBIAEoAxIuCghVc2VySW5mbxgCIAEoCzIcLkF4aWJ1Z1Byb3Rv",
"YnVmLlVzZXJNaW5pSW5mbyIUChJQcm90b2J1Zl9Sb29tX0xpc3QiWwoXUHJv",
"dG9idWZfUm9vbV9MaXN0X1JFU1ASQAoQUm9vbU1pbmlJbmZvTGlzdBgBIAMo",
"CzImLkF4aWJ1Z1Byb3RvYnVmLlByb3RvYnVmX1Jvb21fTWluaUluZm8ikAIK",
"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",
"b2wQDSqUAQoPUm9tUGxhdGZvcm1UeXBlEgcKA0FsbBAAEgcKA05lcxABEhEK",
"DU1hc3Rlcl9TeXN0ZW0QAhINCglHYW1lX0dlYXIQAxIMCghHYW1lX0JveRAE",
"EhIKDkdhbWVfQm95X0NvbG9yEAUSEQoNQ29sZWNvX1Zpc2lvbhAGEgsKB1ND",
"XzMwMDAQBxILCgdTR18xMDAwEAgqcAoNUm9vbUdhbWVTdGF0ZRISCg5Ob25l",
"X0dhbWVTdGF0ZRAAEgwKCE9ubHlIb3N0EAESEQoNV2FpdFJhd1VwZGF0ZRAC",
"Eg0KCVdhaXRSZWFkeRADEgkKBVBhdXNlEAQSEAoMSW5PbmxpbmVHYW1lEAUq",
"TgoRTG9naW5SZXN1bHRTdGF0dXMSIQodTG9naW5SZXN1bHRTdGF0dXNfQmFz",
"ZURlZmF1bHQQABIGCgJPSxABEg4KCkFjY291bnRFcnIQAkICSAFiBnByb3Rv",
"Mw=="));
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.PlatformType), typeof(global::AxibugProtobuf.RoomGameState), typeof(global::AxibugProtobuf.LoginResultStatus), }, null, new pbr::GeneratedClrTypeInfo[] {
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[] {
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_ChatMsg), global::AxibugProtobuf.Protobuf_ChatMsg.Parser, new[]{ "ChatMsg" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_ChatMsg_RESP), global::AxibugProtobuf.Protobuf_ChatMsg_RESP.Parser, new[]{ "NickName", "ChatMsg", "Date" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Ping), global::AxibugProtobuf.Protobuf_Ping.Parser, new[]{ "Seed" }, null, null, null, null),
@ -142,7 +156,7 @@ namespace AxibugProtobuf {
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_UserJoin_RESP), global::AxibugProtobuf.Protobuf_UserJoin_RESP.Parser, new[]{ "UserInfo" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_UserLeave_RESP), global::AxibugProtobuf.Protobuf_UserLeave_RESP.Parser, new[]{ "UID" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_UserState_RESP), global::AxibugProtobuf.Protobuf_UserState_RESP.Parser, new[]{ "UID", "State" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.UserMiniInfo), global::AxibugProtobuf.UserMiniInfo.Parser, new[]{ "UID", "NickName" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.UserMiniInfo), global::AxibugProtobuf.UserMiniInfo.Parser, new[]{ "UID", "NickName", "DeviceType" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Modify_NickName), global::AxibugProtobuf.Protobuf_Modify_NickName.Parser, new[]{ "NickName" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Modify_NickName_RESP), global::AxibugProtobuf.Protobuf_Modify_NickName_RESP.Parser, null, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Update_UserInfo_RESP), global::AxibugProtobuf.Protobuf_Update_UserInfo_RESP.Parser, new[]{ "UserInfo" }, null, null, null, null),
@ -150,7 +164,7 @@ namespace AxibugProtobuf {
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_GamePlaySlot), global::AxibugProtobuf.Protobuf_Room_GamePlaySlot.Parser, new[]{ "PlayerUID", "PlayerNickName", "PlayerLocalJoyIdx" }, 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),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_SinglePlayerInputData), global::AxibugProtobuf.Protobuf_Room_SinglePlayerInputData.Parser, new[]{ "FrameID", "InputData" }, null, null, null, null),
@ -163,7 +177,7 @@ namespace AxibugProtobuf {
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_Leave_RESP), global::AxibugProtobuf.Protobuf_Room_Leave_RESP.Parser, new[]{ "RoomID" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_MyRoom_State_Change), global::AxibugProtobuf.Protobuf_Room_MyRoom_State_Change.Parser, new[]{ "RoomMiniInfo" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_Change_PlaySlotWithJoy), global::AxibugProtobuf.Protobuf_Room_Change_PlaySlotWithJoy.Parser, new[]{ "SlotWithJoy" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_PlaySlotIdxWithJoyIdx), global::AxibugProtobuf.Protobuf_PlaySlotIdxWithJoyIdx.Parser, new[]{ "PlayerSlotIdx", "PlayerLocalJoyIdx" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_PlaySlotIdxWithJoyIdx), global::AxibugProtobuf.Protobuf_PlaySlotIdxWithJoyIdx.Parser, new[]{ "PlayerSlotIdx", "PlayerLocalJoyIdx", "PlayerLocalGamePadType" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_Change_PlaySlotWithJoy_RESP), global::AxibugProtobuf.Protobuf_Room_Change_PlaySlotWithJoy_RESP.Parser, null, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_WaitStep_RESP), global::AxibugProtobuf.Protobuf_Room_WaitStep_RESP.Parser, new[]{ "WaitStep", "LoadStateRaw" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_HostPlayer_UpdateStateRaw), global::AxibugProtobuf.Protobuf_Room_HostPlayer_UpdateStateRaw.Parser, new[]{ "LoadStateRaw" }, null, null, null, null),
@ -171,8 +185,8 @@ namespace AxibugProtobuf {
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_Player_Ready), global::AxibugProtobuf.Protobuf_Room_Player_Ready.Parser, new[]{ "PushFrameNeedTimeUs", "LoadStateNeedTimeUs", "VideoFrameShowNeedTimeUs", "AudioFramePlayNeedTimeUs" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_Get_Screen), global::AxibugProtobuf.Protobuf_Room_Get_Screen.Parser, new[]{ "RoomID" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_Get_Screen_RESP), global::AxibugProtobuf.Protobuf_Room_Get_Screen_RESP.Parser, new[]{ "RoomID", "FrameID", "RawBitmap" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Game_Mark), global::AxibugProtobuf.Protobuf_Game_Mark.Parser, new[]{ "RomID", "State", "PlatformType" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Game_Mark_RESP), global::AxibugProtobuf.Protobuf_Game_Mark_RESP.Parser, new[]{ "RomID", "PlatformType" }, null, null, null, null)
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Game_Mark), global::AxibugProtobuf.Protobuf_Game_Mark.Parser, new[]{ "RomID", "State" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Game_Mark_RESP), global::AxibugProtobuf.Protobuf_Game_Mark_RESP.Parser, new[]{ "RomID" }, null, null, null, null)
}));
}
#endregion
@ -356,18 +370,61 @@ namespace AxibugProtobuf {
public enum DeviceType {
/// <summary>
///缺省不使
///
/// </summary>
[pbr::OriginalName("DeviceType_Default")] Default = 0,
[pbr::OriginalName("PC")] Pc = 1,
[pbr::OriginalName("Android")] Android = 2,
[pbr::OriginalName("IOS")] Ios = 3,
[pbr::OriginalName("PSV")] Psv = 4,
[pbr::OriginalName("PS3")] Ps3 = 5,
[pbr::OriginalName("PS4")] Ps4 = 6,
[pbr::OriginalName("XBOX360")] Xbox360 = 7,
[pbr::OriginalName("XBOXONE")] Xboxone = 8,
[pbr::OriginalName("WiiU")] WiiU = 9,
[pbr::OriginalName("Nintendo3DS")] Nintendo3Ds = 10,
/// <summary>
///汽车Android车机
/// </summary>
[pbr::OriginalName("AndroidCarApp")] AndroidCarApp = 11,
}
public enum PlatformType {
public enum GamePadType {
/// <summary>
///键盘
/// </summary>
[pbr::OriginalName("Keyboard")] Keyboard = 0,
/// <summary>
///通用手柄
/// </summary>
[pbr::OriginalName("GlobalGamePad")] GlobalGamePad = 1,
/// <summary>
///触屏
/// </summary>
[pbr::OriginalName("TouchPanel")] TouchPanel = 2,
[pbr::OriginalName("DS3Control")] Ds3Control = 3,
[pbr::OriginalName("DS4Control")] Ds4Control = 4,
[pbr::OriginalName("DS5Control")] Ds5Control = 5,
[pbr::OriginalName("SwitchProControl")] SwitchProControl = 6,
[pbr::OriginalName("SwitchJoyCon")] SwitchJoyCon = 7,
[pbr::OriginalName("XBOX360Control")] Xbox360Control = 8,
[pbr::OriginalName("XBOXONEControl")] Xboxonecontrol = 9,
[pbr::OriginalName("PSVitaControl")] PsvitaControl = 10,
[pbr::OriginalName("WiiUPadControl")] WiiUpadControl = 11,
[pbr::OriginalName("WiiRemoteControl")] WiiRemoteControl = 12,
[pbr::OriginalName("Nintendo3DSControl")] Nintendo3Dscontrol = 13,
}
public enum RomPlatformType {
[pbr::OriginalName("All")] All = 0,
[pbr::OriginalName("Nes")] Nes = 1,
[pbr::OriginalName("Master_System")] MasterSystem = 2,
[pbr::OriginalName("Game_Gear")] GameGear = 3,
[pbr::OriginalName("Game_Boy")] GameBoy = 4,
[pbr::OriginalName("Game_Boy_Color")] GameBoyColor = 5,
[pbr::OriginalName("Coleco_Vision")] ColecoVision = 6,
[pbr::OriginalName("SC_3000")] Sc3000 = 7,
[pbr::OriginalName("SG_1000")] Sg1000 = 8,
}
public enum RoomGameState {
@ -2855,6 +2912,7 @@ namespace AxibugProtobuf {
public UserMiniInfo(UserMiniInfo other) : this() {
uID_ = other.uID_;
nickName_ = other.nickName_;
deviceType_ = other.deviceType_;
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
}
@ -2891,6 +2949,20 @@ namespace AxibugProtobuf {
}
}
/// <summary>Field number for the "deviceType" field.</summary>
public const int DeviceTypeFieldNumber = 3;
private global::AxibugProtobuf.DeviceType deviceType_ = global::AxibugProtobuf.DeviceType.Default;
/// <summary>
///设备类型
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public global::AxibugProtobuf.DeviceType DeviceType {
get { return deviceType_; }
set {
deviceType_ = value;
}
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override bool Equals(object other) {
return Equals(other as UserMiniInfo);
@ -2906,6 +2978,7 @@ namespace AxibugProtobuf {
}
if (UID != other.UID) return false;
if (NickName != other.NickName) return false;
if (DeviceType != other.DeviceType) return false;
return Equals(_unknownFields, other._unknownFields);
}
@ -2914,6 +2987,7 @@ namespace AxibugProtobuf {
int hash = 1;
if (UID != 0L) hash ^= UID.GetHashCode();
if (NickName.Length != 0) hash ^= NickName.GetHashCode();
if (DeviceType != global::AxibugProtobuf.DeviceType.Default) hash ^= DeviceType.GetHashCode();
if (_unknownFields != null) {
hash ^= _unknownFields.GetHashCode();
}
@ -2938,6 +3012,10 @@ namespace AxibugProtobuf {
output.WriteRawTag(18);
output.WriteString(NickName);
}
if (DeviceType != global::AxibugProtobuf.DeviceType.Default) {
output.WriteRawTag(24);
output.WriteEnum((int) DeviceType);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(output);
}
@ -2955,6 +3033,10 @@ namespace AxibugProtobuf {
output.WriteRawTag(18);
output.WriteString(NickName);
}
if (DeviceType != global::AxibugProtobuf.DeviceType.Default) {
output.WriteRawTag(24);
output.WriteEnum((int) DeviceType);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(ref output);
}
@ -2970,6 +3052,9 @@ namespace AxibugProtobuf {
if (NickName.Length != 0) {
size += 1 + pb::CodedOutputStream.ComputeStringSize(NickName);
}
if (DeviceType != global::AxibugProtobuf.DeviceType.Default) {
size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) DeviceType);
}
if (_unknownFields != null) {
size += _unknownFields.CalculateSize();
}
@ -2987,6 +3072,9 @@ namespace AxibugProtobuf {
if (other.NickName.Length != 0) {
NickName = other.NickName;
}
if (other.DeviceType != global::AxibugProtobuf.DeviceType.Default) {
DeviceType = other.DeviceType;
}
_unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
}
@ -3009,6 +3097,10 @@ namespace AxibugProtobuf {
NickName = input.ReadString();
break;
}
case 24: {
DeviceType = (global::AxibugProtobuf.DeviceType) input.ReadEnum();
break;
}
}
}
#endif
@ -3031,6 +3123,10 @@ namespace AxibugProtobuf {
NickName = input.ReadString();
break;
}
case 24: {
DeviceType = (global::AxibugProtobuf.DeviceType) input.ReadEnum();
break;
}
}
}
}
@ -4533,7 +4629,9 @@ namespace AxibugProtobuf {
public Protobuf_Room_GamePlaySlot(Protobuf_Room_GamePlaySlot other) : this() {
playerUID_ = other.playerUID_;
playerNickName_ = other.playerNickName_;
deviceType_ = other.deviceType_;
playerLocalJoyIdx_ = other.playerLocalJoyIdx_;
playerLocalGamePadType_ = other.playerLocalGamePadType_;
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
}
@ -4570,8 +4668,22 @@ namespace AxibugProtobuf {
}
}
/// <summary>Field number for the "deviceType" field.</summary>
public const int DeviceTypeFieldNumber = 3;
private global::AxibugProtobuf.DeviceType deviceType_ = global::AxibugProtobuf.DeviceType.Default;
/// <summary>
///用户设备类型
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public global::AxibugProtobuf.DeviceType DeviceType {
get { return deviceType_; }
set {
deviceType_ = value;
}
}
/// <summary>Field number for the "PlayerLocalJoyIdx" field.</summary>
public const int PlayerLocalJoyIdxFieldNumber = 3;
public const int PlayerLocalJoyIdxFieldNumber = 4;
private int playerLocalJoyIdx_;
/// <summary>
///客户端JoyIdx
@ -4584,6 +4696,20 @@ namespace AxibugProtobuf {
}
}
/// <summary>Field number for the "PlayerLocalGamePadType" field.</summary>
public const int PlayerLocalGamePadTypeFieldNumber = 5;
private global::AxibugProtobuf.GamePadType playerLocalGamePadType_ = global::AxibugProtobuf.GamePadType.Keyboard;
/// <summary>
///客户端手柄类型
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public global::AxibugProtobuf.GamePadType PlayerLocalGamePadType {
get { return playerLocalGamePadType_; }
set {
playerLocalGamePadType_ = value;
}
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override bool Equals(object other) {
return Equals(other as Protobuf_Room_GamePlaySlot);
@ -4599,7 +4725,9 @@ namespace AxibugProtobuf {
}
if (PlayerUID != other.PlayerUID) return false;
if (PlayerNickName != other.PlayerNickName) return false;
if (DeviceType != other.DeviceType) return false;
if (PlayerLocalJoyIdx != other.PlayerLocalJoyIdx) return false;
if (PlayerLocalGamePadType != other.PlayerLocalGamePadType) return false;
return Equals(_unknownFields, other._unknownFields);
}
@ -4608,7 +4736,9 @@ namespace AxibugProtobuf {
int hash = 1;
if (PlayerUID != 0L) hash ^= PlayerUID.GetHashCode();
if (PlayerNickName.Length != 0) hash ^= PlayerNickName.GetHashCode();
if (DeviceType != global::AxibugProtobuf.DeviceType.Default) hash ^= DeviceType.GetHashCode();
if (PlayerLocalJoyIdx != 0) hash ^= PlayerLocalJoyIdx.GetHashCode();
if (PlayerLocalGamePadType != global::AxibugProtobuf.GamePadType.Keyboard) hash ^= PlayerLocalGamePadType.GetHashCode();
if (_unknownFields != null) {
hash ^= _unknownFields.GetHashCode();
}
@ -4633,10 +4763,18 @@ namespace AxibugProtobuf {
output.WriteRawTag(18);
output.WriteString(PlayerNickName);
}
if (PlayerLocalJoyIdx != 0) {
if (DeviceType != global::AxibugProtobuf.DeviceType.Default) {
output.WriteRawTag(24);
output.WriteEnum((int) DeviceType);
}
if (PlayerLocalJoyIdx != 0) {
output.WriteRawTag(32);
output.WriteInt32(PlayerLocalJoyIdx);
}
if (PlayerLocalGamePadType != global::AxibugProtobuf.GamePadType.Keyboard) {
output.WriteRawTag(40);
output.WriteEnum((int) PlayerLocalGamePadType);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(output);
}
@ -4654,10 +4792,18 @@ namespace AxibugProtobuf {
output.WriteRawTag(18);
output.WriteString(PlayerNickName);
}
if (PlayerLocalJoyIdx != 0) {
if (DeviceType != global::AxibugProtobuf.DeviceType.Default) {
output.WriteRawTag(24);
output.WriteEnum((int) DeviceType);
}
if (PlayerLocalJoyIdx != 0) {
output.WriteRawTag(32);
output.WriteInt32(PlayerLocalJoyIdx);
}
if (PlayerLocalGamePadType != global::AxibugProtobuf.GamePadType.Keyboard) {
output.WriteRawTag(40);
output.WriteEnum((int) PlayerLocalGamePadType);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(ref output);
}
@ -4673,9 +4819,15 @@ namespace AxibugProtobuf {
if (PlayerNickName.Length != 0) {
size += 1 + pb::CodedOutputStream.ComputeStringSize(PlayerNickName);
}
if (DeviceType != global::AxibugProtobuf.DeviceType.Default) {
size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) DeviceType);
}
if (PlayerLocalJoyIdx != 0) {
size += 1 + pb::CodedOutputStream.ComputeInt32Size(PlayerLocalJoyIdx);
}
if (PlayerLocalGamePadType != global::AxibugProtobuf.GamePadType.Keyboard) {
size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) PlayerLocalGamePadType);
}
if (_unknownFields != null) {
size += _unknownFields.CalculateSize();
}
@ -4693,9 +4845,15 @@ namespace AxibugProtobuf {
if (other.PlayerNickName.Length != 0) {
PlayerNickName = other.PlayerNickName;
}
if (other.DeviceType != global::AxibugProtobuf.DeviceType.Default) {
DeviceType = other.DeviceType;
}
if (other.PlayerLocalJoyIdx != 0) {
PlayerLocalJoyIdx = other.PlayerLocalJoyIdx;
}
if (other.PlayerLocalGamePadType != global::AxibugProtobuf.GamePadType.Keyboard) {
PlayerLocalGamePadType = other.PlayerLocalGamePadType;
}
_unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
}
@ -4719,9 +4877,17 @@ namespace AxibugProtobuf {
break;
}
case 24: {
DeviceType = (global::AxibugProtobuf.DeviceType) input.ReadEnum();
break;
}
case 32: {
PlayerLocalJoyIdx = input.ReadInt32();
break;
}
case 40: {
PlayerLocalGamePadType = (global::AxibugProtobuf.GamePadType) input.ReadEnum();
break;
}
}
}
#endif
@ -4745,9 +4911,17 @@ namespace AxibugProtobuf {
break;
}
case 24: {
DeviceType = (global::AxibugProtobuf.DeviceType) input.ReadEnum();
break;
}
case 32: {
PlayerLocalJoyIdx = input.ReadInt32();
break;
}
case 40: {
PlayerLocalGamePadType = (global::AxibugProtobuf.GamePadType) input.ReadEnum();
break;
}
}
}
}
@ -7217,6 +7391,7 @@ namespace AxibugProtobuf {
public Protobuf_PlaySlotIdxWithJoyIdx(Protobuf_PlaySlotIdxWithJoyIdx other) : this() {
playerSlotIdx_ = other.playerSlotIdx_;
playerLocalJoyIdx_ = other.playerLocalJoyIdx_;
playerLocalGamePadType_ = other.playerLocalGamePadType_;
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
}
@ -7253,6 +7428,20 @@ namespace AxibugProtobuf {
}
}
/// <summary>Field number for the "PlayerLocalGamePadType" field.</summary>
public const int PlayerLocalGamePadTypeFieldNumber = 3;
private global::AxibugProtobuf.GamePadType playerLocalGamePadType_ = global::AxibugProtobuf.GamePadType.Keyboard;
/// <summary>
///客户端手柄类型
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public global::AxibugProtobuf.GamePadType PlayerLocalGamePadType {
get { return playerLocalGamePadType_; }
set {
playerLocalGamePadType_ = value;
}
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override bool Equals(object other) {
return Equals(other as Protobuf_PlaySlotIdxWithJoyIdx);
@ -7268,6 +7457,7 @@ namespace AxibugProtobuf {
}
if (PlayerSlotIdx != other.PlayerSlotIdx) return false;
if (PlayerLocalJoyIdx != other.PlayerLocalJoyIdx) return false;
if (PlayerLocalGamePadType != other.PlayerLocalGamePadType) return false;
return Equals(_unknownFields, other._unknownFields);
}
@ -7276,6 +7466,7 @@ namespace AxibugProtobuf {
int hash = 1;
if (PlayerSlotIdx != 0) hash ^= PlayerSlotIdx.GetHashCode();
if (PlayerLocalJoyIdx != 0) hash ^= PlayerLocalJoyIdx.GetHashCode();
if (PlayerLocalGamePadType != global::AxibugProtobuf.GamePadType.Keyboard) hash ^= PlayerLocalGamePadType.GetHashCode();
if (_unknownFields != null) {
hash ^= _unknownFields.GetHashCode();
}
@ -7300,6 +7491,10 @@ namespace AxibugProtobuf {
output.WriteRawTag(16);
output.WriteInt32(PlayerLocalJoyIdx);
}
if (PlayerLocalGamePadType != global::AxibugProtobuf.GamePadType.Keyboard) {
output.WriteRawTag(24);
output.WriteEnum((int) PlayerLocalGamePadType);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(output);
}
@ -7317,6 +7512,10 @@ namespace AxibugProtobuf {
output.WriteRawTag(16);
output.WriteInt32(PlayerLocalJoyIdx);
}
if (PlayerLocalGamePadType != global::AxibugProtobuf.GamePadType.Keyboard) {
output.WriteRawTag(24);
output.WriteEnum((int) PlayerLocalGamePadType);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(ref output);
}
@ -7332,6 +7531,9 @@ namespace AxibugProtobuf {
if (PlayerLocalJoyIdx != 0) {
size += 1 + pb::CodedOutputStream.ComputeInt32Size(PlayerLocalJoyIdx);
}
if (PlayerLocalGamePadType != global::AxibugProtobuf.GamePadType.Keyboard) {
size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) PlayerLocalGamePadType);
}
if (_unknownFields != null) {
size += _unknownFields.CalculateSize();
}
@ -7349,6 +7551,9 @@ namespace AxibugProtobuf {
if (other.PlayerLocalJoyIdx != 0) {
PlayerLocalJoyIdx = other.PlayerLocalJoyIdx;
}
if (other.PlayerLocalGamePadType != global::AxibugProtobuf.GamePadType.Keyboard) {
PlayerLocalGamePadType = other.PlayerLocalGamePadType;
}
_unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
}
@ -7371,6 +7576,10 @@ namespace AxibugProtobuf {
PlayerLocalJoyIdx = input.ReadInt32();
break;
}
case 24: {
PlayerLocalGamePadType = (global::AxibugProtobuf.GamePadType) input.ReadEnum();
break;
}
}
}
#endif
@ -7393,6 +7602,10 @@ namespace AxibugProtobuf {
PlayerLocalJoyIdx = input.ReadInt32();
break;
}
case 24: {
PlayerLocalGamePadType = (global::AxibugProtobuf.GamePadType) input.ReadEnum();
break;
}
}
}
}
@ -8812,7 +9025,6 @@ namespace AxibugProtobuf {
public Protobuf_Game_Mark(Protobuf_Game_Mark other) : this() {
romID_ = other.romID_;
state_ = other.state_;
platformType_ = other.platformType_;
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
}
@ -8849,20 +9061,6 @@ namespace AxibugProtobuf {
}
}
/// <summary>Field number for the "PlatformType" field.</summary>
public const int PlatformTypeFieldNumber = 3;
private global::AxibugProtobuf.PlatformType platformType_ = global::AxibugProtobuf.PlatformType.All;
/// <summary>
///平台类型
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public global::AxibugProtobuf.PlatformType PlatformType {
get { return platformType_; }
set {
platformType_ = value;
}
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override bool Equals(object other) {
return Equals(other as Protobuf_Game_Mark);
@ -8878,7 +9076,6 @@ namespace AxibugProtobuf {
}
if (RomID != other.RomID) return false;
if (State != other.State) return false;
if (PlatformType != other.PlatformType) return false;
return Equals(_unknownFields, other._unknownFields);
}
@ -8887,7 +9084,6 @@ namespace AxibugProtobuf {
int hash = 1;
if (RomID != 0) hash ^= RomID.GetHashCode();
if (State != 0) hash ^= State.GetHashCode();
if (PlatformType != global::AxibugProtobuf.PlatformType.All) hash ^= PlatformType.GetHashCode();
if (_unknownFields != null) {
hash ^= _unknownFields.GetHashCode();
}
@ -8912,10 +9108,6 @@ namespace AxibugProtobuf {
output.WriteRawTag(16);
output.WriteInt32(State);
}
if (PlatformType != global::AxibugProtobuf.PlatformType.All) {
output.WriteRawTag(24);
output.WriteEnum((int) PlatformType);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(output);
}
@ -8933,10 +9125,6 @@ namespace AxibugProtobuf {
output.WriteRawTag(16);
output.WriteInt32(State);
}
if (PlatformType != global::AxibugProtobuf.PlatformType.All) {
output.WriteRawTag(24);
output.WriteEnum((int) PlatformType);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(ref output);
}
@ -8952,9 +9140,6 @@ namespace AxibugProtobuf {
if (State != 0) {
size += 1 + pb::CodedOutputStream.ComputeInt32Size(State);
}
if (PlatformType != global::AxibugProtobuf.PlatformType.All) {
size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) PlatformType);
}
if (_unknownFields != null) {
size += _unknownFields.CalculateSize();
}
@ -8972,9 +9157,6 @@ namespace AxibugProtobuf {
if (other.State != 0) {
State = other.State;
}
if (other.PlatformType != global::AxibugProtobuf.PlatformType.All) {
PlatformType = other.PlatformType;
}
_unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
}
@ -8997,10 +9179,6 @@ namespace AxibugProtobuf {
State = input.ReadInt32();
break;
}
case 24: {
PlatformType = (global::AxibugProtobuf.PlatformType) input.ReadEnum();
break;
}
}
}
#endif
@ -9023,10 +9201,6 @@ namespace AxibugProtobuf {
State = input.ReadInt32();
break;
}
case 24: {
PlatformType = (global::AxibugProtobuf.PlatformType) input.ReadEnum();
break;
}
}
}
}
@ -9064,7 +9238,6 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public Protobuf_Game_Mark_RESP(Protobuf_Game_Mark_RESP other) : this() {
romID_ = other.romID_;
platformType_ = other.platformType_;
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
}
@ -9087,20 +9260,6 @@ namespace AxibugProtobuf {
}
}
/// <summary>Field number for the "PlatformType" field.</summary>
public const int PlatformTypeFieldNumber = 2;
private global::AxibugProtobuf.PlatformType platformType_ = global::AxibugProtobuf.PlatformType.All;
/// <summary>
///平台类型
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public global::AxibugProtobuf.PlatformType PlatformType {
get { return platformType_; }
set {
platformType_ = value;
}
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override bool Equals(object other) {
return Equals(other as Protobuf_Game_Mark_RESP);
@ -9115,7 +9274,6 @@ namespace AxibugProtobuf {
return true;
}
if (RomID != other.RomID) return false;
if (PlatformType != other.PlatformType) return false;
return Equals(_unknownFields, other._unknownFields);
}
@ -9123,7 +9281,6 @@ namespace AxibugProtobuf {
public override int GetHashCode() {
int hash = 1;
if (RomID != 0) hash ^= RomID.GetHashCode();
if (PlatformType != global::AxibugProtobuf.PlatformType.All) hash ^= PlatformType.GetHashCode();
if (_unknownFields != null) {
hash ^= _unknownFields.GetHashCode();
}
@ -9144,10 +9301,6 @@ namespace AxibugProtobuf {
output.WriteRawTag(8);
output.WriteInt32(RomID);
}
if (PlatformType != global::AxibugProtobuf.PlatformType.All) {
output.WriteRawTag(16);
output.WriteEnum((int) PlatformType);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(output);
}
@ -9161,10 +9314,6 @@ namespace AxibugProtobuf {
output.WriteRawTag(8);
output.WriteInt32(RomID);
}
if (PlatformType != global::AxibugProtobuf.PlatformType.All) {
output.WriteRawTag(16);
output.WriteEnum((int) PlatformType);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(ref output);
}
@ -9177,9 +9326,6 @@ namespace AxibugProtobuf {
if (RomID != 0) {
size += 1 + pb::CodedOutputStream.ComputeInt32Size(RomID);
}
if (PlatformType != global::AxibugProtobuf.PlatformType.All) {
size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) PlatformType);
}
if (_unknownFields != null) {
size += _unknownFields.CalculateSize();
}
@ -9194,9 +9340,6 @@ namespace AxibugProtobuf {
if (other.RomID != 0) {
RomID = other.RomID;
}
if (other.PlatformType != global::AxibugProtobuf.PlatformType.All) {
PlatformType = other.PlatformType;
}
_unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
}
@ -9215,10 +9358,6 @@ namespace AxibugProtobuf {
RomID = input.ReadInt32();
break;
}
case 16: {
PlatformType = (global::AxibugProtobuf.PlatformType) input.ReadEnum();
break;
}
}
}
#endif
@ -9237,10 +9376,6 @@ namespace AxibugProtobuf {
RomID = input.ReadInt32();
break;
}
case 16: {
PlatformType = (global::AxibugProtobuf.PlatformType) input.ReadEnum();
break;
}
}
}
}

View File

@ -1,6 +1,7 @@
using AxibugEmuOnline.Client.ClientCore;
using AxibugEmuOnline.Client.Event;
using AxibugProtobuf;
using System;
using System.Collections.Generic;
namespace AxibugEmuOnline.Client
@ -115,12 +116,16 @@ namespace AxibugEmuOnline.Client
{
m_delayCreateRoom = false;
//延迟创建房间成功后,同步本地手柄连接状态
Dictionary<uint, uint> temp = new Dictionary<uint, uint>();
Dictionary<uint, ValueTuple<uint, GamePadType>> temp = new Dictionary<uint, ValueTuple<uint, GamePadType>>();
var setuper = App.emu.Core.GetControllerSetuper();
for (int i = 0; i < 4; i++)
{
var joyIndex = setuper.GetSlotConnectingControllerIndex(i);
if (joyIndex != null) temp[(uint)i] = (uint)joyIndex.Value;
//TODO 手柄类型
GamePadType gpType = GamePadType.GlobalGamePad;
if (joyIndex != null) temp[(uint)i] = new ValueTuple<uint, GamePadType>((uint)joyIndex.Value, gpType);
}
App.roomMgr.SendChangePlaySlotIdxWithJoyIdx(temp);
}

View File

@ -2,6 +2,7 @@
using AxibugEmuOnline.Client.ClientCore;
using AxibugEmuOnline.Client.Event;
using AxibugEmuOnline.Client.Manager;
using AxibugProtobuf;
using System;
using System.Collections.Generic;
using UnityEngine;
@ -28,7 +29,11 @@ public class ControllerInfoPanel : MonoBehaviour
//找到第一个空闲手柄插槽
var freeSlotIndex = s_freeSlots[0];
App.roomMgr.SendChangePlaySlotIdxWithJoyIdx((uint)joyIndex, (uint)freeSlotIndex);
//TODO 手柄类型
GamePadType gpType = GamePadType.GlobalGamePad;
App.roomMgr.SendChangePlaySlotIdxWithJoyIdx((uint)joyIndex, (uint)freeSlotIndex, gpType);
}
else //不在房间中,直接设置
{

View File

@ -46,7 +46,7 @@ namespace AxibugEmuOnline.Client
switch (platform)
{
case EnumSupportEmuPlatform.NES:
App.StartCoroutine(App.httpAPI.GetNesRomInfo(roomInfo.GameRomID, (romWebData) =>
App.StartCoroutine(App.httpAPI.GetRomInfo(roomInfo.GameRomID, (romWebData) =>
{
RomFile _romFile = new RomFile(EnumSupportEmuPlatform.NES, 0, 0);
_romFile.SetWebData(romWebData);

View File

@ -2,7 +2,7 @@
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net8.0</TargetFramework>
<TargetFramework>net9.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<_LastSelectedProfileId>G:\Sin365\AxibugEmuOnline\AxibugEmuOnline.Server\Properties\PublishProfiles\FolderProfile.pubxml</_LastSelectedProfileId>
<_LastSelectedProfileId>G:\Sin365\AxibugEmuOnline\AxibugEmuOnline.Server\Properties\PublishProfiles\FolderProfile1.pubxml</_LastSelectedProfileId>
</PropertyGroup>
</Project>

View File

@ -54,7 +54,7 @@ namespace AxibugEmuOnline.Server.Common
{
_DicSqlRunFunNum[FuncStr] = 1L;
}
MySqlConnection _conn;
MySqlConnection _conn = null;
if (SQLPool.Count < 1)
{
Console.WriteLine("[DequeueSQLConn]创建新的SQLPool.Count>" + SQLPool.Count);
@ -62,15 +62,39 @@ namespace AxibugEmuOnline.Server.Common
_conn.Open();
}
else
{
MySqlConnection temp = null;
while (SQLPool.Count > 0)
{
Console.WriteLine("[DequeueSQLConn]取出一个SQLCount.Count>" + SQLPool.Count);
_conn = SQLPool.Dequeue();
temp = SQLPool.Dequeue();
if (temp.State == System.Data.ConnectionState.Closed)
{
Console.WriteLine("[DequeueSQLConn]已经断开SQLCount.Count>" + SQLPool.Count);
temp.Dispose();
temp = null;
continue;
}
}
if (temp != null)
{
_conn = temp;
}
else
{
Console.WriteLine("[DequeueSQLConn]连接池全部已断开,重新创建连接");
_conn = conn();
_conn.Open();
}
}
_OutOfSQLPool.Add(_conn, new Haoyue_PoolTime
{
time = time(),
FuncStr = FuncStr
});
return _conn;
}
}
@ -90,6 +114,7 @@ namespace AxibugEmuOnline.Server.Common
{
Console.WriteLine("已经不需要回收了,多余了,SQLPool.Count>" + SQLPool.Count);
BackConn.Close();
BackConn.Dispose();
BackConn = null;
}
else

View File

@ -15,6 +15,7 @@ namespace AxibugEmuOnline.Server.Manager
public long UID { get; set; }
public string NickName { get; set; } = string.Empty;
public string Account { get; set; } = string.Empty;
internal DeviceType deviceType { get; set; } = DeviceType.Default;
public Socket _socket { get; set; }
public bool IsOffline { get; set; } = false;
public DateTime RegisterDT { get; set; }

View File

@ -49,12 +49,11 @@ namespace AxibugEmuOnline.Server.Manager
}
else
{
query = "INSERT INTO `haoyue_emu`.`rom_stars` (`uid`, `platform`, `romid`) VALUES (?uid, ?platform, ?romid);";
query = "INSERT INTO `haoyue_emu`.`rom_stars` (`uid`, `romid`) VALUES (?uid, ?romid);";
using (var command = new MySqlCommand(query, conn))
{
// 设置参数值
command.Parameters.AddWithValue("?uid", _c.UID);
command.Parameters.AddWithValue("?platform", (int)msg.PlatformType);
command.Parameters.AddWithValue("?romid", msg.RomID);
command.ExecuteNonQuery();
}
@ -64,12 +63,11 @@ namespace AxibugEmuOnline.Server.Manager
{
if (bHad)
{
query = "DELETE from rom_stars where uid = ?uid and romid = ?romid and platform = ?platform";
query = "DELETE from rom_stars where uid = ?uid and romid = ?romid";
using (var command = new MySqlCommand(query, conn))
{
// 设置参数值
command.Parameters.AddWithValue("?uid", _c.UID);
command.Parameters.AddWithValue("?platform", (int)msg.PlatformType);
command.Parameters.AddWithValue("?romid", msg.RomID);
command.ExecuteNonQuery();
}
@ -81,10 +79,9 @@ namespace AxibugEmuOnline.Server.Manager
}
}
//更新收藏数
query = "update romlist_nes set stars = (SELECT COUNT(id) from rom_stars where rom_stars.romid = ?romid and rom_stars.platform = ?platform) where romlist_nes.id = ?romid";
query = "update romlist set stars = (SELECT COUNT(id) from rom_stars where rom_stars.romid = ?romid) where romlist.id = ?romid";
using (var command = new MySqlCommand(query, conn))
{
command.Parameters.AddWithValue("?platform", (int)msg.PlatformType);
command.Parameters.AddWithValue("?romid", msg.RomID);
command.ExecuteNonQuery();
}
@ -94,7 +91,6 @@ namespace AxibugEmuOnline.Server.Manager
{
}
Haoyue_SQLPoolManager.EnqueueSQLConn(conn);
respData.PlatformType = msg.PlatformType;
respData.RomID = msg.RomID;
AppSrv.g_ClientMgr.ClientSend(_c, (int)CommandID.CmdGameMark, (int)ErrorCode.ErrorOk, ProtoBufHelper.Serizlize(respData));
}

View File

@ -47,7 +47,7 @@ namespace AxibugEmuOnline.Server.Manager
ClientInfo _c = AppSrv.g_ClientMgr.JoinNewClient(_uid, _socket);
UpdateUserData(_uid, _c);
UpdateUserData(_uid, _c,msg.DeviceType);
EventSystem.Instance.PostEvent(EEvent.OnUserOnline, _c.UID);
@ -97,6 +97,8 @@ namespace AxibugEmuOnline.Server.Manager
UserMiniInfo miniinfo = new UserMiniInfo()
{
NickName = _c.NickName,
DeviceType = _c.deviceType,
UID = _c.UID
};
Protobuf_Update_UserInfo_RESP infodata = new Protobuf_Update_UserInfo_RESP()
@ -188,6 +190,7 @@ namespace AxibugEmuOnline.Server.Manager
}
catch (Exception e)
{
AppSrv.g_Log.Error($"ex=>{e.ToString()}");
bDone = false;
}
Haoyue_SQLPoolManager.EnqueueSQLConn(conn);
@ -197,7 +200,7 @@ namespace AxibugEmuOnline.Server.Manager
return bDone;
}
public void UpdateUserData(long uid, ClientInfo _c)
public void UpdateUserData(long uid, ClientInfo _c, DeviceType deviceType)
{
MySqlConnection conn = Haoyue_SQLPoolManager.DequeueSQLConn("UpdateUserData");
try
@ -218,6 +221,7 @@ namespace AxibugEmuOnline.Server.Manager
_c.LogInDT = DateTime.Now;
_c.RegisterDT = reader.IsDBNull(2) ? DateTime.Now : reader.GetDateTime(2);
_c.LastLogInDT = reader.IsDBNull(3) ? DateTime.Now : reader.GetDateTime(3);
_c.deviceType = deviceType;
}
}
}

View File

@ -126,7 +126,7 @@ namespace AxibugEmuOnline.Server
if (state == RoomLogType.Create)
{
query = "update romlist_nes set playcount = playcount + 1 where id = ?romid";
query = "update romlist set playcount = playcount + 1 where id = ?romid";
using (var command = new MySqlCommand(query, conn))
{
command.Parameters.AddWithValue("?romid", RomID);
@ -162,8 +162,12 @@ namespace AxibugEmuOnline.Server
{
pbSlot.PlayerUID = slot.UID;
pbSlot.PlayerLocalJoyIdx = (int)slot.LocalJoyIdx;
pbSlot.PlayerLocalGamePadType = slot.LocalGamePadType;
if (AppSrv.g_ClientMgr.GetClientByUID(pbSlot.PlayerUID, out ClientInfo _client))
{
pbSlot.PlayerNickName = _client.NickName;
pbSlot.DeviceType = _client.deviceType;
}
}
result.GamePlaySlotList.Add(pbSlot);
}
@ -382,7 +386,7 @@ namespace AxibugEmuOnline.Server
return;
}
Dictionary<uint, uint> newSlotIdx2JoyIdx = new Dictionary<uint, uint>();
Dictionary<uint, (uint, GamePadType)> newSlotIdx2JoyIdx = new Dictionary<uint, (uint, GamePadType)>();
foreach (var slotinfo in msg.SlotWithJoy)
{
//如果有任意一个槽位有人
@ -396,7 +400,7 @@ namespace AxibugEmuOnline.Server
return;
}
}
newSlotIdx2JoyIdx[(uint)slotinfo.PlayerSlotIdx] = (uint)slotinfo.PlayerLocalJoyIdx;
newSlotIdx2JoyIdx[(uint)slotinfo.PlayerSlotIdx] = ((uint)slotinfo.PlayerLocalJoyIdx, slotinfo.PlayerLocalGamePadType);
}
room.SetPlayerSlotData(_c, ref newSlotIdx2JoyIdx);
@ -830,7 +834,7 @@ namespace AxibugEmuOnline.Server
}
#endregion
public void SetPlayerSlotData(ClientInfo _c, ref readonly Dictionary<uint, uint> newSlotIdx2JoyIdx)
public void SetPlayerSlotData(ClientInfo _c, ref readonly Dictionary<uint, (uint, GamePadType)> newSlotIdx2JoyIdx)
{
GetSlotDataByUID(_c.UID, out Dictionary<uint, uint> oldSlotIdx2JoyIdx);
HashSet<uint> diffSlotIdxs = ObjectPoolAuto.AcquireSet<uint>();// new HashSet<uint>();
@ -844,7 +848,7 @@ namespace AxibugEmuOnline.Server
}
uint old_slotjoyIdx = old.Value;
//如果旧位置不变但客户端本地JoyIdx变化则算作diff
if (old_slotjoyIdx != newSlotIdx2JoyIdx[old_slotIdx])
if (old_slotjoyIdx != newSlotIdx2JoyIdx[old_slotIdx].Item1)
{
diffSlotIdxs.Add(old_slotIdx); continue;
}
@ -866,7 +870,8 @@ namespace AxibugEmuOnline.Server
//设置新的槽位
foreach (var slotdata in newSlotIdx2JoyIdx)
{
PlayerSlot[slotdata.Key].LocalJoyIdx = slotdata.Value;
PlayerSlot[slotdata.Key].LocalJoyIdx = slotdata.Value.Item1;
PlayerSlot[slotdata.Key].LocalGamePadType = slotdata.Value.Item2;
PlayerSlot[slotdata.Key].UID = _c.UID;
AppSrv.g_Log.DebugCmd($"SetPlayerSlot RoomID->{RoomID} _c.UID->{_c.UID} PlayerSlotIdx->{slotdata.Key} LocalJoyIdx->{slotdata.Value}");
}
@ -1183,8 +1188,8 @@ namespace AxibugEmuOnline.Server
return false;
}
AppSrv.g_Log.Debug($"Join _c.UID->{_c.UID} RoomID->{RoomID}");
Dictionary<uint, uint> slotInfo = new Dictionary<uint, uint>();
slotInfo[slotIdx] = joyIdx;
Dictionary<uint, (uint, GamePadType)> slotInfo = new Dictionary<uint, (uint, GamePadType)>();
slotInfo[slotIdx] = (joyIdx,GamePadType.GlobalGamePad);
SetPlayerSlotData(_c, ref slotInfo);
int newPlayerCount = GetPlayerCount();
errcode = ErrorCode.ErrorOk;
@ -1258,6 +1263,7 @@ namespace AxibugEmuOnline.Server
public uint SlotIdx { get; set; }
public long UID { get; set; }
public uint LocalJoyIdx { get; set; }
public GamePadType LocalGamePadType { get; set; }
public bool Ready = false;
public void Init(uint SlotIdx)
{

View File

@ -46,6 +46,7 @@ namespace AxibugEmuOnline.Server.Manager
{
NickName = client.NickName,
UID = client.UID,
DeviceType = client.deviceType,
});
}
AppSrv.g_Log.Debug($"拉取用户列表->{respData.UserCount}个用户");
@ -58,10 +59,12 @@ namespace AxibugEmuOnline.Server.Manager
ClientInfo _c = AppSrv.g_ClientMgr.GetClientForUID(UID);
if (_c == null)
return;
UserMiniInfo miniInfo = new UserMiniInfo();
miniInfo.NickName = _c.NickName;
UID = _c.UID;
UserMiniInfo miniInfo = new UserMiniInfo()
{
DeviceType = _c.deviceType,
NickName = _c.NickName,
UID = _c.UID
};
Protobuf_UserJoin_RESP resp = new Protobuf_UserJoin_RESP()
{
UserInfo = miniInfo

View File

@ -94,7 +94,7 @@ namespace AxibugEmuOnline.Server
List<(int id, string romurl, string name)> list = new List<(int id, string romurl, string name)>();
List<(int id, string romurl, string name)> Nonelist = new List<(int id, string romurl, string name)>();
string query = $"SELECT id,`Name`,GameType,Note,RomUrl,ImgUrl,`Hash` FROM romlist_nes";
string query = $"SELECT id,`Name`,GameType,Note,RomUrl,ImgUrl,`Hash` FROM romlist";
using (var command = new MySqlCommand(query, conn))
{
// 执行查询并处理结果
@ -122,7 +122,7 @@ namespace AxibugEmuOnline.Server
}
string romhash = Helper.FileMD5Hash(rompath);
AppSrv.g_Log.Info($"第{i}个Name->{list[i].name},Hash->{romhash}");
query = $"update romlist_nes SET `Hash` = '{romhash}' where Id ={list[i].id}";
query = $"update romlist SET `Hash` = '{romhash}' where Id ={list[i].id}";
using (var command = new MySqlCommand(query, conn))
{
// 执行查询并处理结果

View File

@ -4,7 +4,7 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
-->
<Project>
<PropertyGroup>
<History>True|2025-01-02T07:36:28.7979053Z||;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>
<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>False|2025-01-02T07:36:18.1906464Z||;False|2025-01-02T15:36:06.5622643+08:00||;True|2024-12-27T18:24:49.7554320+08:00||;</History>
<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>
<LastFailureDetails />
</PropertyGroup>
</Project>

View File

@ -42,95 +42,109 @@ namespace AxibugProtobuf {
"X1VzZXJKb2luX1JFU1ASLgoIVXNlckluZm8YASABKAsyHC5BeGlidWdQcm90",
"b2J1Zi5Vc2VyTWluaUluZm8iJgoXUHJvdG9idWZfVXNlckxlYXZlX1JFU1AS",
"CwoDVUlEGAEgASgDIjUKF1Byb3RvYnVmX1VzZXJTdGF0ZV9SRVNQEgsKA1VJ",
"RBgBIAEoAxINCgVTdGF0ZRgCIAEoBSItCgxVc2VyTWluaUluZm8SCwoDVUlE",
"GAEgASgDEhAKCE5pY2tOYW1lGAIgASgJIiwKGFByb3RvYnVmX01vZGlmeV9O",
"aWNrTmFtZRIQCghOaWNrTmFtZRgBIAEoCSIfCh1Qcm90b2J1Zl9Nb2RpZnlf",
"Tmlja05hbWVfUkVTUCJPCh1Qcm90b2J1Zl9VcGRhdGVfVXNlckluZm9fUkVT",
"UBIuCghVc2VySW5mbxgBIAEoCzIcLkF4aWJ1Z1Byb3RvYnVmLlVzZXJNaW5p",
"SW5mbyJhCiJQcm90b2J1Zl9VcGRhdGVfT3RoZXJVc2VySW5mb19SRVNQEgsK",
"A1VJRBgBIAEoAxIuCghVc2VySW5mbxgCIAEoCzIcLkF4aWJ1Z1Byb3RvYnVm",
"LlVzZXJNaW5pSW5mbyIUChJQcm90b2J1Zl9Sb29tX0xpc3QiWwoXUHJvdG9i",
"dWZfUm9vbV9MaXN0X1JFU1ASQAoQUm9vbU1pbmlJbmZvTGlzdBgBIAMoCzIm",
"LkF4aWJ1Z1Byb3RvYnVmLlByb3RvYnVmX1Jvb21fTWluaUluZm8ikAIKFlBy",
"b3RvYnVmX1Jvb21fTWluaUluZm8SDgoGUm9vbUlEGAEgASgFEhEKCUdhbWVS",
"b21JRBgCIAEoBRITCgtHYW1lUm9tSGFzaBgDIAEoCRIVCg1Ib3N0UGxheWVy",
"VUlEGAQgASgDEjAKCUdhbWVTdGF0ZRgFIAEoDjIdLkF4aWJ1Z1Byb3RvYnVm",
"LlJvb21HYW1lU3RhdGUSFAoMT2JzVXNlckNvdW50GAYgASgFEhkKEVNjcmVl",
"blByb3ZpZGVyVUlEGAcgASgDEkQKEEdhbWVQbGF5U2xvdExpc3QYCCADKAsy",
"Ki5BeGlidWdQcm90b2J1Zi5Qcm90b2J1Zl9Sb29tX0dhbWVQbGF5U2xvdCJk",
"ChpQcm90b2J1Zl9Sb29tX0dhbWVQbGF5U2xvdBISCgpQbGF5ZXJfVUlEGAEg",
"ASgDEhcKD1BsYXllcl9OaWNrTmFtZRgCIAEoCRIZChFQbGF5ZXJMb2NhbEpv",
"eUlkeBgDIAEoBSJtChlQcm90b2J1Zl9Sb29tX1VwZGF0ZV9SRVNQEhIKClVw",
"ZGF0ZVR5cGUYASABKAUSPAoMUm9vbU1pbmlJbmZvGAIgASgLMiYuQXhpYnVn",
"UHJvdG9idWYuUHJvdG9idWZfUm9vbV9NaW5pSW5mbyJLChVQcm90b2J1Zl9T",
"Y3Jlbm5fRnJhbWUSDgoGUm9vbUlEGAEgASgFEg8KB0ZyYW1lSUQYAiABKAUS",
"EQoJUmF3Qml0bWFwGAMgASgMIkkKI1Byb3RvYnVmX1Jvb21fU2luZ2xlUGxh",
"eWVySW5wdXREYXRhEg8KB0ZyYW1lSUQYASABKA0SEQoJSW5wdXREYXRhGAIg",
"ASgNIoABCidQcm90b2J1Zl9Sb29tX1N5bl9Sb29tRnJhbWVBbGxJbnB1dERh",
"dGESDwoHRnJhbWVJRBgBIAEoDRIRCglJbnB1dERhdGEYAiABKAQSFQoNU2Vy",
"dmVyRnJhbWVJRBgDIAEoDRIaChJTZXJ2ZXJGb3J3YXJkQ291bnQYBCABKA0i",
"PgoUUHJvdG9idWZfUm9vbV9DcmVhdGUSEQoJR2FtZVJvbUlEGAEgASgFEhMK",
"C0dhbWVSb21IYXNoGAIgASgJIlkKGVByb3RvYnVmX1Jvb21fQ3JlYXRlX1JF",
"U1ASPAoMUm9vbU1pbmlJbmZvGAEgASgLMiYuQXhpYnVnUHJvdG9idWYuUHJv",
"dG9idWZfUm9vbV9NaW5pSW5mbyIkChJQcm90b2J1Zl9Sb29tX0pvaW4SDgoG",
"Um9vbUlEGAEgASgFIlcKF1Byb3RvYnVmX1Jvb21fSm9pbl9SRVNQEjwKDFJv",
"b21NaW5pSW5mbxgBIAEoCzImLkF4aWJ1Z1Byb3RvYnVmLlByb3RvYnVmX1Jv",
"b21fTWluaUluZm8iJQoTUHJvdG9idWZfUm9vbV9MZWF2ZRIOCgZSb29tSUQY",
"ASABKAUiKgoYUHJvdG9idWZfUm9vbV9MZWF2ZV9SRVNQEg4KBlJvb21JRBgB",
"IAEoBSJhCiFQcm90b2J1Zl9Sb29tX015Um9vbV9TdGF0ZV9DaGFuZ2USPAoM",
"Um9vbU1pbmlJbmZvGAEgASgLMiYuQXhpYnVnUHJvdG9idWYuUHJvdG9idWZf",
"Um9vbV9NaW5pSW5mbyJrCiRQcm90b2J1Zl9Sb29tX0NoYW5nZV9QbGF5U2xv",
"dFdpdGhKb3kSQwoLU2xvdFdpdGhKb3kYASADKAsyLi5BeGlidWdQcm90b2J1",
"Zi5Qcm90b2J1Zl9QbGF5U2xvdElkeFdpdGhKb3lJZHgiUgoeUHJvdG9idWZf",
"UGxheVNsb3RJZHhXaXRoSm95SWR4EhUKDVBsYXllclNsb3RJZHgYASABKAUS",
"GQoRUGxheWVyTG9jYWxKb3lJZHgYAiABKAUiKwopUHJvdG9idWZfUm9vbV9D",
"aGFuZ2VfUGxheVNsb3RXaXRoSm95X1JFU1AiRQobUHJvdG9idWZfUm9vbV9X",
"YWl0U3RlcF9SRVNQEhAKCFdhaXRTdGVwGAEgASgFEhQKDExvYWRTdGF0ZVJh",
"dxgCIAEoDCI/CidQcm90b2J1Zl9Sb29tX0hvc3RQbGF5ZXJfVXBkYXRlU3Rh",
"dGVSYXcSFAoMTG9hZFN0YXRlUmF3GAEgASgMIi4KLFByb3RvYnVmX1Jvb21f",
"SG9zdFBsYXllcl9VcGRhdGVTdGF0ZVJhd19SRVNQIpoBChpQcm90b2J1Zl9S",
"b29tX1BsYXllcl9SZWFkeRIbChNQdXNoRnJhbWVOZWVkVGltZVVzGAEgASgC",
"EhsKE0xvYWRTdGF0ZU5lZWRUaW1lVXMYAiABKAISIAoYVmlkZW9GcmFtZVNo",
"b3dOZWVkVGltZVVzGAMgASgCEiAKGEF1ZGlvRnJhbWVQbGF5TmVlZFRpbWVV",
"cxgEIAEoAiIqChhQcm90b2J1Zl9Sb29tX0dldF9TY3JlZW4SDgoGUm9vbUlE",
"GAEgASgFIlMKHVByb3RvYnVmX1Jvb21fR2V0X1NjcmVlbl9SRVNQEg4KBlJv",
"b21JRBgBIAEoBRIPCgdGcmFtZUlEGAIgASgFEhEKCVJhd0JpdG1hcBgDIAEo",
"DCJmChJQcm90b2J1Zl9HYW1lX01hcmsSDQoFUm9tSUQYASABKAUSDQoFc3Rh",
"dGUYAiABKAUSMgoMUGxhdGZvcm1UeXBlGAMgASgOMhwuQXhpYnVnUHJvdG9i",
"dWYuUGxhdGZvcm1UeXBlIlwKF1Byb3RvYnVmX0dhbWVfTWFya19SRVNQEg0K",
"BVJvbUlEGAEgASgFEjIKDFBsYXRmb3JtVHlwZRgCIAEoDjIcLkF4aWJ1Z1By",
"b3RvYnVmLlBsYXRmb3JtVHlwZSqhBQoJQ29tbWFuZElEEg4KCkNNRF9ERUZB",
"VUwQABIMCghDTURfUElORxABEgwKCENNRF9QT05HEAISDgoJQ01EX0xPR0lO",
"ENEPEhgKE0NNRF9VU0VSX09OTElORUxJU1QQuBcSEgoNQ01EX1VTRVJfSk9J",
"ThDXFxITCg5DTURfVVNFUl9MRUFWRRDYFxIaChVDTURfVVNFUl9TVEFURV9V",
"UERBVEUQ2RcSGAoTQ01EX01vZGlmeV9OaWNrTmFtZRCdGBIcChdDTURfVXBk",
"YXRlX1NlbGZVc2VySW5mbxCmGBIdChhDTURfVXBkYXRlX090aGVyVXNlcklu",
"Zm8QqBgSEAoLQ01EX0NIQVRNU0cQoR8SEgoNQ01EX1Jvb21fTGlzdBCJJxIZ",
"ChRDTURfUm9vbV9MaXN0X1VwZGF0ZRCKJxIYChNDTURfUm9vbV9HZXRfU2Ny",
"ZWVuEJMnEhQKD0NNRF9Sb29tX0NyZWF0ZRDtJxISCg1DTURfUm9vbV9Kb2lu",
"EPEnEhMKDkNNRF9Sb29tX0xlYXZlEPInEiIKHUNNRF9Sb29tX015Um9vbV9T",
"dGF0ZV9DaGFuZ2VkEPYnEiEKHENNRF9Sb29tX0NoYW5nZVBsYXllcldpdGhK",
"b3kQiigSFgoRQ01EX1Jvb21fV2FpdFN0ZXAQ0SgSJwoiQ01EX1Jvb21fSG9z",
"dFBsYXllcl9VcGRhdGVTdGF0ZVJhdxDUKBIaChVDTURfUm9vbV9QbGF5ZXJf",
"UmVhZHkQ2CgSIAobQ01EX1Jvb21fU2luZ2VsX1BsYXllcklucHV0EPouEh0K",
"GENNRF9ST09NX1NZTl9QbGF5ZXJJbnB1dBD/LhIPCgpDTURfU2NyZWVuENk2",
"EhIKDUNNRF9HQU1FX01BUksQ9U4q0AEKCUVycm9yQ29kZRIQCgxFUlJPUl9E",
"RUZBVUwQABIMCghFUlJPUl9PSxABEhgKFEVSUk9SX1JPT01fTk9UX0ZPVU5E",
"EAoSJwojRVJST1JfUk9PTV9TTE9UX0FMUkVBRExZX0hBRF9QTEFZRVIQCxIh",
"Ch1FUlJPUl9ST09NX0NBTlRfRE9fQ1VSUl9TVEFURRAyEh8KGkVSUk9SX1JP",
"TV9BTFJFQURZX0hBRF9TVEFSEJMDEhwKF0VSUk9SX1JPTV9ET05UX0hBRF9T",
"VEFSEJQDKkAKCUxvZ2luVHlwZRINCglVc2VEZXZpY2UQABIOCgpVc2VBY2Nv",
"dW50EAESFAoQVXNlSGFvWXVlQWNjb3VudBACKksKCkRldmljZVR5cGUSFgoS",
"RGV2aWNlVHlwZV9EZWZhdWx0EAASBgoCUEMQARILCgdBbmRyb2lkEAISBwoD",
"SU9TEAMSBwoDUFNWEAQqIAoMUGxhdGZvcm1UeXBlEgcKA0FsbBAAEgcKA05l",
"cxABKnAKDVJvb21HYW1lU3RhdGUSEgoOTm9uZV9HYW1lU3RhdGUQABIMCghP",
"bmx5SG9zdBABEhEKDVdhaXRSYXdVcGRhdGUQAhINCglXYWl0UmVhZHkQAxIJ",
"CgVQYXVzZRAEEhAKDEluT25saW5lR2FtZRAFKk4KEUxvZ2luUmVzdWx0U3Rh",
"dHVzEiEKHUxvZ2luUmVzdWx0U3RhdHVzX0Jhc2VEZWZhdWx0EAASBgoCT0sQ",
"ARIOCgpBY2NvdW50RXJyEAJCAkgBYgZwcm90bzM="));
"RBgBIAEoAxINCgVTdGF0ZRgCIAEoBSJdCgxVc2VyTWluaUluZm8SCwoDVUlE",
"GAEgASgDEhAKCE5pY2tOYW1lGAIgASgJEi4KCmRldmljZVR5cGUYAyABKA4y",
"Gi5BeGlidWdQcm90b2J1Zi5EZXZpY2VUeXBlIiwKGFByb3RvYnVmX01vZGlm",
"eV9OaWNrTmFtZRIQCghOaWNrTmFtZRgBIAEoCSIfCh1Qcm90b2J1Zl9Nb2Rp",
"ZnlfTmlja05hbWVfUkVTUCJPCh1Qcm90b2J1Zl9VcGRhdGVfVXNlckluZm9f",
"UkVTUBIuCghVc2VySW5mbxgBIAEoCzIcLkF4aWJ1Z1Byb3RvYnVmLlVzZXJN",
"aW5pSW5mbyJhCiJQcm90b2J1Zl9VcGRhdGVfT3RoZXJVc2VySW5mb19SRVNQ",
"EgsKA1VJRBgBIAEoAxIuCghVc2VySW5mbxgCIAEoCzIcLkF4aWJ1Z1Byb3Rv",
"YnVmLlVzZXJNaW5pSW5mbyIUChJQcm90b2J1Zl9Sb29tX0xpc3QiWwoXUHJv",
"dG9idWZfUm9vbV9MaXN0X1JFU1ASQAoQUm9vbU1pbmlJbmZvTGlzdBgBIAMo",
"CzImLkF4aWJ1Z1Byb3RvYnVmLlByb3RvYnVmX1Jvb21fTWluaUluZm8ikAIK",
"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",
"b2wQDSqUAQoPUm9tUGxhdGZvcm1UeXBlEgcKA0FsbBAAEgcKA05lcxABEhEK",
"DU1hc3Rlcl9TeXN0ZW0QAhINCglHYW1lX0dlYXIQAxIMCghHYW1lX0JveRAE",
"EhIKDkdhbWVfQm95X0NvbG9yEAUSEQoNQ29sZWNvX1Zpc2lvbhAGEgsKB1ND",
"XzMwMDAQBxILCgdTR18xMDAwEAgqcAoNUm9vbUdhbWVTdGF0ZRISCg5Ob25l",
"X0dhbWVTdGF0ZRAAEgwKCE9ubHlIb3N0EAESEQoNV2FpdFJhd1VwZGF0ZRAC",
"Eg0KCVdhaXRSZWFkeRADEgkKBVBhdXNlEAQSEAoMSW5PbmxpbmVHYW1lEAUq",
"TgoRTG9naW5SZXN1bHRTdGF0dXMSIQodTG9naW5SZXN1bHRTdGF0dXNfQmFz",
"ZURlZmF1bHQQABIGCgJPSxABEg4KCkFjY291bnRFcnIQAkICSAFiBnByb3Rv",
"Mw=="));
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.PlatformType), typeof(global::AxibugProtobuf.RoomGameState), typeof(global::AxibugProtobuf.LoginResultStatus), }, null, new pbr::GeneratedClrTypeInfo[] {
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[] {
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_ChatMsg), global::AxibugProtobuf.Protobuf_ChatMsg.Parser, new[]{ "ChatMsg" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_ChatMsg_RESP), global::AxibugProtobuf.Protobuf_ChatMsg_RESP.Parser, new[]{ "NickName", "ChatMsg", "Date" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Ping), global::AxibugProtobuf.Protobuf_Ping.Parser, new[]{ "Seed" }, null, null, null, null),
@ -142,7 +156,7 @@ namespace AxibugProtobuf {
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_UserJoin_RESP), global::AxibugProtobuf.Protobuf_UserJoin_RESP.Parser, new[]{ "UserInfo" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_UserLeave_RESP), global::AxibugProtobuf.Protobuf_UserLeave_RESP.Parser, new[]{ "UID" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_UserState_RESP), global::AxibugProtobuf.Protobuf_UserState_RESP.Parser, new[]{ "UID", "State" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.UserMiniInfo), global::AxibugProtobuf.UserMiniInfo.Parser, new[]{ "UID", "NickName" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.UserMiniInfo), global::AxibugProtobuf.UserMiniInfo.Parser, new[]{ "UID", "NickName", "DeviceType" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Modify_NickName), global::AxibugProtobuf.Protobuf_Modify_NickName.Parser, new[]{ "NickName" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Modify_NickName_RESP), global::AxibugProtobuf.Protobuf_Modify_NickName_RESP.Parser, null, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Update_UserInfo_RESP), global::AxibugProtobuf.Protobuf_Update_UserInfo_RESP.Parser, new[]{ "UserInfo" }, null, null, null, null),
@ -150,7 +164,7 @@ namespace AxibugProtobuf {
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_GamePlaySlot), global::AxibugProtobuf.Protobuf_Room_GamePlaySlot.Parser, new[]{ "PlayerUID", "PlayerNickName", "PlayerLocalJoyIdx" }, 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),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_SinglePlayerInputData), global::AxibugProtobuf.Protobuf_Room_SinglePlayerInputData.Parser, new[]{ "FrameID", "InputData" }, null, null, null, null),
@ -163,7 +177,7 @@ namespace AxibugProtobuf {
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_Leave_RESP), global::AxibugProtobuf.Protobuf_Room_Leave_RESP.Parser, new[]{ "RoomID" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_MyRoom_State_Change), global::AxibugProtobuf.Protobuf_Room_MyRoom_State_Change.Parser, new[]{ "RoomMiniInfo" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_Change_PlaySlotWithJoy), global::AxibugProtobuf.Protobuf_Room_Change_PlaySlotWithJoy.Parser, new[]{ "SlotWithJoy" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_PlaySlotIdxWithJoyIdx), global::AxibugProtobuf.Protobuf_PlaySlotIdxWithJoyIdx.Parser, new[]{ "PlayerSlotIdx", "PlayerLocalJoyIdx" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_PlaySlotIdxWithJoyIdx), global::AxibugProtobuf.Protobuf_PlaySlotIdxWithJoyIdx.Parser, new[]{ "PlayerSlotIdx", "PlayerLocalJoyIdx", "PlayerLocalGamePadType" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_Change_PlaySlotWithJoy_RESP), global::AxibugProtobuf.Protobuf_Room_Change_PlaySlotWithJoy_RESP.Parser, null, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_WaitStep_RESP), global::AxibugProtobuf.Protobuf_Room_WaitStep_RESP.Parser, new[]{ "WaitStep", "LoadStateRaw" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_HostPlayer_UpdateStateRaw), global::AxibugProtobuf.Protobuf_Room_HostPlayer_UpdateStateRaw.Parser, new[]{ "LoadStateRaw" }, null, null, null, null),
@ -171,8 +185,8 @@ namespace AxibugProtobuf {
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_Player_Ready), global::AxibugProtobuf.Protobuf_Room_Player_Ready.Parser, new[]{ "PushFrameNeedTimeUs", "LoadStateNeedTimeUs", "VideoFrameShowNeedTimeUs", "AudioFramePlayNeedTimeUs" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_Get_Screen), global::AxibugProtobuf.Protobuf_Room_Get_Screen.Parser, new[]{ "RoomID" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_Get_Screen_RESP), global::AxibugProtobuf.Protobuf_Room_Get_Screen_RESP.Parser, new[]{ "RoomID", "FrameID", "RawBitmap" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Game_Mark), global::AxibugProtobuf.Protobuf_Game_Mark.Parser, new[]{ "RomID", "State", "PlatformType" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Game_Mark_RESP), global::AxibugProtobuf.Protobuf_Game_Mark_RESP.Parser, new[]{ "RomID", "PlatformType" }, null, null, null, null)
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Game_Mark), global::AxibugProtobuf.Protobuf_Game_Mark.Parser, new[]{ "RomID", "State" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Game_Mark_RESP), global::AxibugProtobuf.Protobuf_Game_Mark_RESP.Parser, new[]{ "RomID" }, null, null, null, null)
}));
}
#endregion
@ -356,18 +370,61 @@ namespace AxibugProtobuf {
public enum DeviceType {
/// <summary>
///缺省不使
///
/// </summary>
[pbr::OriginalName("DeviceType_Default")] Default = 0,
[pbr::OriginalName("PC")] Pc = 1,
[pbr::OriginalName("Android")] Android = 2,
[pbr::OriginalName("IOS")] Ios = 3,
[pbr::OriginalName("PSV")] Psv = 4,
[pbr::OriginalName("PS3")] Ps3 = 5,
[pbr::OriginalName("PS4")] Ps4 = 6,
[pbr::OriginalName("XBOX360")] Xbox360 = 7,
[pbr::OriginalName("XBOXONE")] Xboxone = 8,
[pbr::OriginalName("WiiU")] WiiU = 9,
[pbr::OriginalName("Nintendo3DS")] Nintendo3Ds = 10,
/// <summary>
///汽车Android车机
/// </summary>
[pbr::OriginalName("AndroidCarApp")] AndroidCarApp = 11,
}
public enum PlatformType {
public enum GamePadType {
/// <summary>
///键盘
/// </summary>
[pbr::OriginalName("Keyboard")] Keyboard = 0,
/// <summary>
///通用手柄
/// </summary>
[pbr::OriginalName("GlobalGamePad")] GlobalGamePad = 1,
/// <summary>
///触屏
/// </summary>
[pbr::OriginalName("TouchPanel")] TouchPanel = 2,
[pbr::OriginalName("DS3Control")] Ds3Control = 3,
[pbr::OriginalName("DS4Control")] Ds4Control = 4,
[pbr::OriginalName("DS5Control")] Ds5Control = 5,
[pbr::OriginalName("SwitchProControl")] SwitchProControl = 6,
[pbr::OriginalName("SwitchJoyCon")] SwitchJoyCon = 7,
[pbr::OriginalName("XBOX360Control")] Xbox360Control = 8,
[pbr::OriginalName("XBOXONEControl")] Xboxonecontrol = 9,
[pbr::OriginalName("PSVitaControl")] PsvitaControl = 10,
[pbr::OriginalName("WiiUPadControl")] WiiUpadControl = 11,
[pbr::OriginalName("WiiRemoteControl")] WiiRemoteControl = 12,
[pbr::OriginalName("Nintendo3DSControl")] Nintendo3Dscontrol = 13,
}
public enum RomPlatformType {
[pbr::OriginalName("All")] All = 0,
[pbr::OriginalName("Nes")] Nes = 1,
[pbr::OriginalName("Master_System")] MasterSystem = 2,
[pbr::OriginalName("Game_Gear")] GameGear = 3,
[pbr::OriginalName("Game_Boy")] GameBoy = 4,
[pbr::OriginalName("Game_Boy_Color")] GameBoyColor = 5,
[pbr::OriginalName("Coleco_Vision")] ColecoVision = 6,
[pbr::OriginalName("SC_3000")] Sc3000 = 7,
[pbr::OriginalName("SG_1000")] Sg1000 = 8,
}
public enum RoomGameState {
@ -2855,6 +2912,7 @@ namespace AxibugProtobuf {
public UserMiniInfo(UserMiniInfo other) : this() {
uID_ = other.uID_;
nickName_ = other.nickName_;
deviceType_ = other.deviceType_;
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
}
@ -2891,6 +2949,20 @@ namespace AxibugProtobuf {
}
}
/// <summary>Field number for the "deviceType" field.</summary>
public const int DeviceTypeFieldNumber = 3;
private global::AxibugProtobuf.DeviceType deviceType_ = global::AxibugProtobuf.DeviceType.Default;
/// <summary>
///设备类型
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public global::AxibugProtobuf.DeviceType DeviceType {
get { return deviceType_; }
set {
deviceType_ = value;
}
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override bool Equals(object other) {
return Equals(other as UserMiniInfo);
@ -2906,6 +2978,7 @@ namespace AxibugProtobuf {
}
if (UID != other.UID) return false;
if (NickName != other.NickName) return false;
if (DeviceType != other.DeviceType) return false;
return Equals(_unknownFields, other._unknownFields);
}
@ -2914,6 +2987,7 @@ namespace AxibugProtobuf {
int hash = 1;
if (UID != 0L) hash ^= UID.GetHashCode();
if (NickName.Length != 0) hash ^= NickName.GetHashCode();
if (DeviceType != global::AxibugProtobuf.DeviceType.Default) hash ^= DeviceType.GetHashCode();
if (_unknownFields != null) {
hash ^= _unknownFields.GetHashCode();
}
@ -2938,6 +3012,10 @@ namespace AxibugProtobuf {
output.WriteRawTag(18);
output.WriteString(NickName);
}
if (DeviceType != global::AxibugProtobuf.DeviceType.Default) {
output.WriteRawTag(24);
output.WriteEnum((int) DeviceType);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(output);
}
@ -2955,6 +3033,10 @@ namespace AxibugProtobuf {
output.WriteRawTag(18);
output.WriteString(NickName);
}
if (DeviceType != global::AxibugProtobuf.DeviceType.Default) {
output.WriteRawTag(24);
output.WriteEnum((int) DeviceType);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(ref output);
}
@ -2970,6 +3052,9 @@ namespace AxibugProtobuf {
if (NickName.Length != 0) {
size += 1 + pb::CodedOutputStream.ComputeStringSize(NickName);
}
if (DeviceType != global::AxibugProtobuf.DeviceType.Default) {
size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) DeviceType);
}
if (_unknownFields != null) {
size += _unknownFields.CalculateSize();
}
@ -2987,6 +3072,9 @@ namespace AxibugProtobuf {
if (other.NickName.Length != 0) {
NickName = other.NickName;
}
if (other.DeviceType != global::AxibugProtobuf.DeviceType.Default) {
DeviceType = other.DeviceType;
}
_unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
}
@ -3009,6 +3097,10 @@ namespace AxibugProtobuf {
NickName = input.ReadString();
break;
}
case 24: {
DeviceType = (global::AxibugProtobuf.DeviceType) input.ReadEnum();
break;
}
}
}
#endif
@ -3031,6 +3123,10 @@ namespace AxibugProtobuf {
NickName = input.ReadString();
break;
}
case 24: {
DeviceType = (global::AxibugProtobuf.DeviceType) input.ReadEnum();
break;
}
}
}
}
@ -4533,7 +4629,9 @@ namespace AxibugProtobuf {
public Protobuf_Room_GamePlaySlot(Protobuf_Room_GamePlaySlot other) : this() {
playerUID_ = other.playerUID_;
playerNickName_ = other.playerNickName_;
deviceType_ = other.deviceType_;
playerLocalJoyIdx_ = other.playerLocalJoyIdx_;
playerLocalGamePadType_ = other.playerLocalGamePadType_;
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
}
@ -4570,8 +4668,22 @@ namespace AxibugProtobuf {
}
}
/// <summary>Field number for the "deviceType" field.</summary>
public const int DeviceTypeFieldNumber = 3;
private global::AxibugProtobuf.DeviceType deviceType_ = global::AxibugProtobuf.DeviceType.Default;
/// <summary>
///用户设备类型
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public global::AxibugProtobuf.DeviceType DeviceType {
get { return deviceType_; }
set {
deviceType_ = value;
}
}
/// <summary>Field number for the "PlayerLocalJoyIdx" field.</summary>
public const int PlayerLocalJoyIdxFieldNumber = 3;
public const int PlayerLocalJoyIdxFieldNumber = 4;
private int playerLocalJoyIdx_;
/// <summary>
///客户端JoyIdx
@ -4584,6 +4696,20 @@ namespace AxibugProtobuf {
}
}
/// <summary>Field number for the "PlayerLocalGamePadType" field.</summary>
public const int PlayerLocalGamePadTypeFieldNumber = 5;
private global::AxibugProtobuf.GamePadType playerLocalGamePadType_ = global::AxibugProtobuf.GamePadType.Keyboard;
/// <summary>
///客户端手柄类型
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public global::AxibugProtobuf.GamePadType PlayerLocalGamePadType {
get { return playerLocalGamePadType_; }
set {
playerLocalGamePadType_ = value;
}
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override bool Equals(object other) {
return Equals(other as Protobuf_Room_GamePlaySlot);
@ -4599,7 +4725,9 @@ namespace AxibugProtobuf {
}
if (PlayerUID != other.PlayerUID) return false;
if (PlayerNickName != other.PlayerNickName) return false;
if (DeviceType != other.DeviceType) return false;
if (PlayerLocalJoyIdx != other.PlayerLocalJoyIdx) return false;
if (PlayerLocalGamePadType != other.PlayerLocalGamePadType) return false;
return Equals(_unknownFields, other._unknownFields);
}
@ -4608,7 +4736,9 @@ namespace AxibugProtobuf {
int hash = 1;
if (PlayerUID != 0L) hash ^= PlayerUID.GetHashCode();
if (PlayerNickName.Length != 0) hash ^= PlayerNickName.GetHashCode();
if (DeviceType != global::AxibugProtobuf.DeviceType.Default) hash ^= DeviceType.GetHashCode();
if (PlayerLocalJoyIdx != 0) hash ^= PlayerLocalJoyIdx.GetHashCode();
if (PlayerLocalGamePadType != global::AxibugProtobuf.GamePadType.Keyboard) hash ^= PlayerLocalGamePadType.GetHashCode();
if (_unknownFields != null) {
hash ^= _unknownFields.GetHashCode();
}
@ -4633,10 +4763,18 @@ namespace AxibugProtobuf {
output.WriteRawTag(18);
output.WriteString(PlayerNickName);
}
if (PlayerLocalJoyIdx != 0) {
if (DeviceType != global::AxibugProtobuf.DeviceType.Default) {
output.WriteRawTag(24);
output.WriteEnum((int) DeviceType);
}
if (PlayerLocalJoyIdx != 0) {
output.WriteRawTag(32);
output.WriteInt32(PlayerLocalJoyIdx);
}
if (PlayerLocalGamePadType != global::AxibugProtobuf.GamePadType.Keyboard) {
output.WriteRawTag(40);
output.WriteEnum((int) PlayerLocalGamePadType);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(output);
}
@ -4654,10 +4792,18 @@ namespace AxibugProtobuf {
output.WriteRawTag(18);
output.WriteString(PlayerNickName);
}
if (PlayerLocalJoyIdx != 0) {
if (DeviceType != global::AxibugProtobuf.DeviceType.Default) {
output.WriteRawTag(24);
output.WriteEnum((int) DeviceType);
}
if (PlayerLocalJoyIdx != 0) {
output.WriteRawTag(32);
output.WriteInt32(PlayerLocalJoyIdx);
}
if (PlayerLocalGamePadType != global::AxibugProtobuf.GamePadType.Keyboard) {
output.WriteRawTag(40);
output.WriteEnum((int) PlayerLocalGamePadType);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(ref output);
}
@ -4673,9 +4819,15 @@ namespace AxibugProtobuf {
if (PlayerNickName.Length != 0) {
size += 1 + pb::CodedOutputStream.ComputeStringSize(PlayerNickName);
}
if (DeviceType != global::AxibugProtobuf.DeviceType.Default) {
size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) DeviceType);
}
if (PlayerLocalJoyIdx != 0) {
size += 1 + pb::CodedOutputStream.ComputeInt32Size(PlayerLocalJoyIdx);
}
if (PlayerLocalGamePadType != global::AxibugProtobuf.GamePadType.Keyboard) {
size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) PlayerLocalGamePadType);
}
if (_unknownFields != null) {
size += _unknownFields.CalculateSize();
}
@ -4693,9 +4845,15 @@ namespace AxibugProtobuf {
if (other.PlayerNickName.Length != 0) {
PlayerNickName = other.PlayerNickName;
}
if (other.DeviceType != global::AxibugProtobuf.DeviceType.Default) {
DeviceType = other.DeviceType;
}
if (other.PlayerLocalJoyIdx != 0) {
PlayerLocalJoyIdx = other.PlayerLocalJoyIdx;
}
if (other.PlayerLocalGamePadType != global::AxibugProtobuf.GamePadType.Keyboard) {
PlayerLocalGamePadType = other.PlayerLocalGamePadType;
}
_unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
}
@ -4719,9 +4877,17 @@ namespace AxibugProtobuf {
break;
}
case 24: {
DeviceType = (global::AxibugProtobuf.DeviceType) input.ReadEnum();
break;
}
case 32: {
PlayerLocalJoyIdx = input.ReadInt32();
break;
}
case 40: {
PlayerLocalGamePadType = (global::AxibugProtobuf.GamePadType) input.ReadEnum();
break;
}
}
}
#endif
@ -4745,9 +4911,17 @@ namespace AxibugProtobuf {
break;
}
case 24: {
DeviceType = (global::AxibugProtobuf.DeviceType) input.ReadEnum();
break;
}
case 32: {
PlayerLocalJoyIdx = input.ReadInt32();
break;
}
case 40: {
PlayerLocalGamePadType = (global::AxibugProtobuf.GamePadType) input.ReadEnum();
break;
}
}
}
}
@ -7217,6 +7391,7 @@ namespace AxibugProtobuf {
public Protobuf_PlaySlotIdxWithJoyIdx(Protobuf_PlaySlotIdxWithJoyIdx other) : this() {
playerSlotIdx_ = other.playerSlotIdx_;
playerLocalJoyIdx_ = other.playerLocalJoyIdx_;
playerLocalGamePadType_ = other.playerLocalGamePadType_;
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
}
@ -7253,6 +7428,20 @@ namespace AxibugProtobuf {
}
}
/// <summary>Field number for the "PlayerLocalGamePadType" field.</summary>
public const int PlayerLocalGamePadTypeFieldNumber = 3;
private global::AxibugProtobuf.GamePadType playerLocalGamePadType_ = global::AxibugProtobuf.GamePadType.Keyboard;
/// <summary>
///客户端手柄类型
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public global::AxibugProtobuf.GamePadType PlayerLocalGamePadType {
get { return playerLocalGamePadType_; }
set {
playerLocalGamePadType_ = value;
}
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override bool Equals(object other) {
return Equals(other as Protobuf_PlaySlotIdxWithJoyIdx);
@ -7268,6 +7457,7 @@ namespace AxibugProtobuf {
}
if (PlayerSlotIdx != other.PlayerSlotIdx) return false;
if (PlayerLocalJoyIdx != other.PlayerLocalJoyIdx) return false;
if (PlayerLocalGamePadType != other.PlayerLocalGamePadType) return false;
return Equals(_unknownFields, other._unknownFields);
}
@ -7276,6 +7466,7 @@ namespace AxibugProtobuf {
int hash = 1;
if (PlayerSlotIdx != 0) hash ^= PlayerSlotIdx.GetHashCode();
if (PlayerLocalJoyIdx != 0) hash ^= PlayerLocalJoyIdx.GetHashCode();
if (PlayerLocalGamePadType != global::AxibugProtobuf.GamePadType.Keyboard) hash ^= PlayerLocalGamePadType.GetHashCode();
if (_unknownFields != null) {
hash ^= _unknownFields.GetHashCode();
}
@ -7300,6 +7491,10 @@ namespace AxibugProtobuf {
output.WriteRawTag(16);
output.WriteInt32(PlayerLocalJoyIdx);
}
if (PlayerLocalGamePadType != global::AxibugProtobuf.GamePadType.Keyboard) {
output.WriteRawTag(24);
output.WriteEnum((int) PlayerLocalGamePadType);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(output);
}
@ -7317,6 +7512,10 @@ namespace AxibugProtobuf {
output.WriteRawTag(16);
output.WriteInt32(PlayerLocalJoyIdx);
}
if (PlayerLocalGamePadType != global::AxibugProtobuf.GamePadType.Keyboard) {
output.WriteRawTag(24);
output.WriteEnum((int) PlayerLocalGamePadType);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(ref output);
}
@ -7332,6 +7531,9 @@ namespace AxibugProtobuf {
if (PlayerLocalJoyIdx != 0) {
size += 1 + pb::CodedOutputStream.ComputeInt32Size(PlayerLocalJoyIdx);
}
if (PlayerLocalGamePadType != global::AxibugProtobuf.GamePadType.Keyboard) {
size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) PlayerLocalGamePadType);
}
if (_unknownFields != null) {
size += _unknownFields.CalculateSize();
}
@ -7349,6 +7551,9 @@ namespace AxibugProtobuf {
if (other.PlayerLocalJoyIdx != 0) {
PlayerLocalJoyIdx = other.PlayerLocalJoyIdx;
}
if (other.PlayerLocalGamePadType != global::AxibugProtobuf.GamePadType.Keyboard) {
PlayerLocalGamePadType = other.PlayerLocalGamePadType;
}
_unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
}
@ -7371,6 +7576,10 @@ namespace AxibugProtobuf {
PlayerLocalJoyIdx = input.ReadInt32();
break;
}
case 24: {
PlayerLocalGamePadType = (global::AxibugProtobuf.GamePadType) input.ReadEnum();
break;
}
}
}
#endif
@ -7393,6 +7602,10 @@ namespace AxibugProtobuf {
PlayerLocalJoyIdx = input.ReadInt32();
break;
}
case 24: {
PlayerLocalGamePadType = (global::AxibugProtobuf.GamePadType) input.ReadEnum();
break;
}
}
}
}
@ -8812,7 +9025,6 @@ namespace AxibugProtobuf {
public Protobuf_Game_Mark(Protobuf_Game_Mark other) : this() {
romID_ = other.romID_;
state_ = other.state_;
platformType_ = other.platformType_;
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
}
@ -8849,20 +9061,6 @@ namespace AxibugProtobuf {
}
}
/// <summary>Field number for the "PlatformType" field.</summary>
public const int PlatformTypeFieldNumber = 3;
private global::AxibugProtobuf.PlatformType platformType_ = global::AxibugProtobuf.PlatformType.All;
/// <summary>
///平台类型
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public global::AxibugProtobuf.PlatformType PlatformType {
get { return platformType_; }
set {
platformType_ = value;
}
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override bool Equals(object other) {
return Equals(other as Protobuf_Game_Mark);
@ -8878,7 +9076,6 @@ namespace AxibugProtobuf {
}
if (RomID != other.RomID) return false;
if (State != other.State) return false;
if (PlatformType != other.PlatformType) return false;
return Equals(_unknownFields, other._unknownFields);
}
@ -8887,7 +9084,6 @@ namespace AxibugProtobuf {
int hash = 1;
if (RomID != 0) hash ^= RomID.GetHashCode();
if (State != 0) hash ^= State.GetHashCode();
if (PlatformType != global::AxibugProtobuf.PlatformType.All) hash ^= PlatformType.GetHashCode();
if (_unknownFields != null) {
hash ^= _unknownFields.GetHashCode();
}
@ -8912,10 +9108,6 @@ namespace AxibugProtobuf {
output.WriteRawTag(16);
output.WriteInt32(State);
}
if (PlatformType != global::AxibugProtobuf.PlatformType.All) {
output.WriteRawTag(24);
output.WriteEnum((int) PlatformType);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(output);
}
@ -8933,10 +9125,6 @@ namespace AxibugProtobuf {
output.WriteRawTag(16);
output.WriteInt32(State);
}
if (PlatformType != global::AxibugProtobuf.PlatformType.All) {
output.WriteRawTag(24);
output.WriteEnum((int) PlatformType);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(ref output);
}
@ -8952,9 +9140,6 @@ namespace AxibugProtobuf {
if (State != 0) {
size += 1 + pb::CodedOutputStream.ComputeInt32Size(State);
}
if (PlatformType != global::AxibugProtobuf.PlatformType.All) {
size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) PlatformType);
}
if (_unknownFields != null) {
size += _unknownFields.CalculateSize();
}
@ -8972,9 +9157,6 @@ namespace AxibugProtobuf {
if (other.State != 0) {
State = other.State;
}
if (other.PlatformType != global::AxibugProtobuf.PlatformType.All) {
PlatformType = other.PlatformType;
}
_unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
}
@ -8997,10 +9179,6 @@ namespace AxibugProtobuf {
State = input.ReadInt32();
break;
}
case 24: {
PlatformType = (global::AxibugProtobuf.PlatformType) input.ReadEnum();
break;
}
}
}
#endif
@ -9023,10 +9201,6 @@ namespace AxibugProtobuf {
State = input.ReadInt32();
break;
}
case 24: {
PlatformType = (global::AxibugProtobuf.PlatformType) input.ReadEnum();
break;
}
}
}
}
@ -9064,7 +9238,6 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public Protobuf_Game_Mark_RESP(Protobuf_Game_Mark_RESP other) : this() {
romID_ = other.romID_;
platformType_ = other.platformType_;
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
}
@ -9087,20 +9260,6 @@ namespace AxibugProtobuf {
}
}
/// <summary>Field number for the "PlatformType" field.</summary>
public const int PlatformTypeFieldNumber = 2;
private global::AxibugProtobuf.PlatformType platformType_ = global::AxibugProtobuf.PlatformType.All;
/// <summary>
///平台类型
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public global::AxibugProtobuf.PlatformType PlatformType {
get { return platformType_; }
set {
platformType_ = value;
}
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override bool Equals(object other) {
return Equals(other as Protobuf_Game_Mark_RESP);
@ -9115,7 +9274,6 @@ namespace AxibugProtobuf {
return true;
}
if (RomID != other.RomID) return false;
if (PlatformType != other.PlatformType) return false;
return Equals(_unknownFields, other._unknownFields);
}
@ -9123,7 +9281,6 @@ namespace AxibugProtobuf {
public override int GetHashCode() {
int hash = 1;
if (RomID != 0) hash ^= RomID.GetHashCode();
if (PlatformType != global::AxibugProtobuf.PlatformType.All) hash ^= PlatformType.GetHashCode();
if (_unknownFields != null) {
hash ^= _unknownFields.GetHashCode();
}
@ -9144,10 +9301,6 @@ namespace AxibugProtobuf {
output.WriteRawTag(8);
output.WriteInt32(RomID);
}
if (PlatformType != global::AxibugProtobuf.PlatformType.All) {
output.WriteRawTag(16);
output.WriteEnum((int) PlatformType);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(output);
}
@ -9161,10 +9314,6 @@ namespace AxibugProtobuf {
output.WriteRawTag(8);
output.WriteInt32(RomID);
}
if (PlatformType != global::AxibugProtobuf.PlatformType.All) {
output.WriteRawTag(16);
output.WriteEnum((int) PlatformType);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(ref output);
}
@ -9177,9 +9326,6 @@ namespace AxibugProtobuf {
if (RomID != 0) {
size += 1 + pb::CodedOutputStream.ComputeInt32Size(RomID);
}
if (PlatformType != global::AxibugProtobuf.PlatformType.All) {
size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) PlatformType);
}
if (_unknownFields != null) {
size += _unknownFields.CalculateSize();
}
@ -9194,9 +9340,6 @@ namespace AxibugProtobuf {
if (other.RomID != 0) {
RomID = other.RomID;
}
if (other.PlatformType != global::AxibugProtobuf.PlatformType.All) {
PlatformType = other.PlatformType;
}
_unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
}
@ -9215,10 +9358,6 @@ namespace AxibugProtobuf {
RomID = input.ReadInt32();
break;
}
case 16: {
PlatformType = (global::AxibugProtobuf.PlatformType) input.ReadEnum();
break;
}
}
}
#endif
@ -9237,10 +9376,6 @@ namespace AxibugProtobuf {
RomID = input.ReadInt32();
break;
}
case 16: {
PlatformType = (global::AxibugProtobuf.PlatformType) input.ReadEnum();
break;
}
}
}
}

View File

@ -29,16 +29,20 @@ namespace AxibugEmuOnline.Web.Controllers
}
[HttpGet]
public JsonResult NesRomList(string SearchKey, int Ptype, int GType, int Page, int PageSize)
public JsonResult RomList(string SearchKey, int Ptype, int GType, int Page, int PageSize)
{
string searchPattern = $"%{SearchKey}%";
Resp_GameList resp = new Resp_GameList();
resp.gameList = new List<Resp_RomInfo>();
MySqlConnection conn = Haoyue_SQLPoolManager.DequeueSQLConn("NesRomList");
MySqlConnection conn = Haoyue_SQLPoolManager.DequeueSQLConn("RomList");
{
string platformCond = "";
if (GType > 0)
{
platformCond = $" and PlatformType = '{Ptype}' ";
}
GameType SearchGType = (GameType)GType;
string GameTypeCond = "";
switch (SearchGType)
{
@ -53,7 +57,7 @@ namespace AxibugEmuOnline.Web.Controllers
break;
}
string query = "SELECT count(id) FROM romlist_nes where `Name` like ?searchPattern " + GameTypeCond;
string query = "SELECT count(id) FROM romlist where `Name` like ?searchPattern " + platformCond + GameTypeCond;
using (var command = new MySqlCommand(query, conn))
{
// 设置参数值
@ -73,7 +77,7 @@ namespace AxibugEmuOnline.Web.Controllers
string HotOrderBy = "ORDER BY playcount DESC, id ASC";
query = $"SELECT id,`Name`,GameType,Note,RomUrl,ImgUrl,`Hash`,`playcount`,`stars` FROM romlist_nes where `Name` like ?searchPattern {GameTypeCond} {HotOrderBy} LIMIT ?offset, ?pageSize;";
query = $"SELECT id,`Name`,GameType,Note,RomUrl,ImgUrl,`Hash`,`playcount`,`stars`,`PlatformType` FROM romlist where `Name` like ?searchPattern {platformCond} {GameTypeCond} {HotOrderBy} LIMIT ?offset, ?pageSize;";
using (var command = new MySqlCommand(query, conn))
{
// 设置参数值
@ -98,6 +102,7 @@ namespace AxibugEmuOnline.Web.Controllers
hash = !reader.IsDBNull(6) ? reader.GetString(6) : string.Empty,
playcount = reader.GetInt32(7),
stars = reader.GetInt32(8),
ptype = reader.GetInt32(9),
});
}
}
@ -114,7 +119,7 @@ namespace AxibugEmuOnline.Web.Controllers
Resp_RomInfo resp = new Resp_RomInfo();
MySqlConnection conn = Haoyue_SQLPoolManager.DequeueSQLConn("NesRomList");
{
string query = $"SELECT id,`Name`,GameType,Note,RomUrl,ImgUrl,`Hash`,`playcount`,`stars` FROM romlist_nes where id = ?romid;";
string query = $"SELECT id,`Name`,GameType,Note,RomUrl,ImgUrl,`Hash`,`playcount`,`stars`,`PlatformType` FROM romlist where id = ?romid;";
using (var command = new MySqlCommand(query, conn))
{
// 设置参数值
@ -133,6 +138,7 @@ namespace AxibugEmuOnline.Web.Controllers
resp.hash = !reader.IsDBNull(6) ? reader.GetString(6) : string.Empty;
resp.playcount = reader.GetInt32(7);
resp.stars = reader.GetInt32(8);
resp.ptype = reader.GetInt32(9);
}
}
}
@ -141,11 +147,6 @@ namespace AxibugEmuOnline.Web.Controllers
return new JsonResult(resp);
}
enum PlatformType : byte
{
All = 0,
Nes,
}
enum GameType : byte
{
@ -191,6 +192,7 @@ namespace AxibugEmuOnline.Web.Controllers
{
public int orderid { get; set; }
public int id { get; set; }
public int ptype { get; set; }
public string romName { get; set; }
public string gType { get; set; }
public string desc { get; set; }

View File

@ -5,7 +5,7 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
<Project>
<PropertyGroup>
<_PublishTargetUrl>G:\Sin365\AxibugEmuOnline\AxibugEmuOnline.Web\bin\Release\net8.0\publish\</_PublishTargetUrl>
<History>True|2024-09-12T06:18:38.6992653Z||;True|2024-09-12T14:08:58.4526827+08:00||;True|2024-08-22T14:13:06.3067002+08:00||;True|2024-08-14T10:33:10.9180984+08:00||;True|2024-08-13T18:28:27.5050523+08:00||;True|2024-08-13T18:25:47.6591234+08:00||;True|2024-08-13T18:25:17.5344107+08:00||;True|2024-08-13T17:46:23.4523329+08:00||;</History>
<History>True|2025-01-07T02:37:18.6461694Z||;True|2024-09-12T14:18:38.6992653+08:00||;True|2024-09-12T14:08:58.4526827+08:00||;True|2024-08-22T14:13:06.3067002+08:00||;True|2024-08-14T10:33:10.9180984+08:00||;True|2024-08-13T18:28:27.5050523+08:00||;True|2024-08-13T18:25:47.6591234+08:00||;True|2024-08-13T18:25:17.5344107+08:00||;True|2024-08-13T17:46:23.4523329+08:00||;</History>
<LastFailureDetails />
</PropertyGroup>
</Project>

View File

@ -13,4 +13,5 @@ echo "==>>build finish"
echo "==>>copy cs"
copy %cd%\out\CS\ ..\AxibugEmuOnline.Server\Protobuf
copy %cd%\out\CS\ ..\AxibugEmuOnline.Client\Assets\Script\AppMain\Protobuf
pause

View File

@ -42,95 +42,109 @@ namespace AxibugProtobuf {
"X1VzZXJKb2luX1JFU1ASLgoIVXNlckluZm8YASABKAsyHC5BeGlidWdQcm90",
"b2J1Zi5Vc2VyTWluaUluZm8iJgoXUHJvdG9idWZfVXNlckxlYXZlX1JFU1AS",
"CwoDVUlEGAEgASgDIjUKF1Byb3RvYnVmX1VzZXJTdGF0ZV9SRVNQEgsKA1VJ",
"RBgBIAEoAxINCgVTdGF0ZRgCIAEoBSItCgxVc2VyTWluaUluZm8SCwoDVUlE",
"GAEgASgDEhAKCE5pY2tOYW1lGAIgASgJIiwKGFByb3RvYnVmX01vZGlmeV9O",
"aWNrTmFtZRIQCghOaWNrTmFtZRgBIAEoCSIfCh1Qcm90b2J1Zl9Nb2RpZnlf",
"Tmlja05hbWVfUkVTUCJPCh1Qcm90b2J1Zl9VcGRhdGVfVXNlckluZm9fUkVT",
"UBIuCghVc2VySW5mbxgBIAEoCzIcLkF4aWJ1Z1Byb3RvYnVmLlVzZXJNaW5p",
"SW5mbyJhCiJQcm90b2J1Zl9VcGRhdGVfT3RoZXJVc2VySW5mb19SRVNQEgsK",
"A1VJRBgBIAEoAxIuCghVc2VySW5mbxgCIAEoCzIcLkF4aWJ1Z1Byb3RvYnVm",
"LlVzZXJNaW5pSW5mbyIUChJQcm90b2J1Zl9Sb29tX0xpc3QiWwoXUHJvdG9i",
"dWZfUm9vbV9MaXN0X1JFU1ASQAoQUm9vbU1pbmlJbmZvTGlzdBgBIAMoCzIm",
"LkF4aWJ1Z1Byb3RvYnVmLlByb3RvYnVmX1Jvb21fTWluaUluZm8ikAIKFlBy",
"b3RvYnVmX1Jvb21fTWluaUluZm8SDgoGUm9vbUlEGAEgASgFEhEKCUdhbWVS",
"b21JRBgCIAEoBRITCgtHYW1lUm9tSGFzaBgDIAEoCRIVCg1Ib3N0UGxheWVy",
"VUlEGAQgASgDEjAKCUdhbWVTdGF0ZRgFIAEoDjIdLkF4aWJ1Z1Byb3RvYnVm",
"LlJvb21HYW1lU3RhdGUSFAoMT2JzVXNlckNvdW50GAYgASgFEhkKEVNjcmVl",
"blByb3ZpZGVyVUlEGAcgASgDEkQKEEdhbWVQbGF5U2xvdExpc3QYCCADKAsy",
"Ki5BeGlidWdQcm90b2J1Zi5Qcm90b2J1Zl9Sb29tX0dhbWVQbGF5U2xvdCJk",
"ChpQcm90b2J1Zl9Sb29tX0dhbWVQbGF5U2xvdBISCgpQbGF5ZXJfVUlEGAEg",
"ASgDEhcKD1BsYXllcl9OaWNrTmFtZRgCIAEoCRIZChFQbGF5ZXJMb2NhbEpv",
"eUlkeBgDIAEoBSJtChlQcm90b2J1Zl9Sb29tX1VwZGF0ZV9SRVNQEhIKClVw",
"ZGF0ZVR5cGUYASABKAUSPAoMUm9vbU1pbmlJbmZvGAIgASgLMiYuQXhpYnVn",
"UHJvdG9idWYuUHJvdG9idWZfUm9vbV9NaW5pSW5mbyJLChVQcm90b2J1Zl9T",
"Y3Jlbm5fRnJhbWUSDgoGUm9vbUlEGAEgASgFEg8KB0ZyYW1lSUQYAiABKAUS",
"EQoJUmF3Qml0bWFwGAMgASgMIkkKI1Byb3RvYnVmX1Jvb21fU2luZ2xlUGxh",
"eWVySW5wdXREYXRhEg8KB0ZyYW1lSUQYASABKA0SEQoJSW5wdXREYXRhGAIg",
"ASgNIoABCidQcm90b2J1Zl9Sb29tX1N5bl9Sb29tRnJhbWVBbGxJbnB1dERh",
"dGESDwoHRnJhbWVJRBgBIAEoDRIRCglJbnB1dERhdGEYAiABKAQSFQoNU2Vy",
"dmVyRnJhbWVJRBgDIAEoDRIaChJTZXJ2ZXJGb3J3YXJkQ291bnQYBCABKA0i",
"PgoUUHJvdG9idWZfUm9vbV9DcmVhdGUSEQoJR2FtZVJvbUlEGAEgASgFEhMK",
"C0dhbWVSb21IYXNoGAIgASgJIlkKGVByb3RvYnVmX1Jvb21fQ3JlYXRlX1JF",
"U1ASPAoMUm9vbU1pbmlJbmZvGAEgASgLMiYuQXhpYnVnUHJvdG9idWYuUHJv",
"dG9idWZfUm9vbV9NaW5pSW5mbyIkChJQcm90b2J1Zl9Sb29tX0pvaW4SDgoG",
"Um9vbUlEGAEgASgFIlcKF1Byb3RvYnVmX1Jvb21fSm9pbl9SRVNQEjwKDFJv",
"b21NaW5pSW5mbxgBIAEoCzImLkF4aWJ1Z1Byb3RvYnVmLlByb3RvYnVmX1Jv",
"b21fTWluaUluZm8iJQoTUHJvdG9idWZfUm9vbV9MZWF2ZRIOCgZSb29tSUQY",
"ASABKAUiKgoYUHJvdG9idWZfUm9vbV9MZWF2ZV9SRVNQEg4KBlJvb21JRBgB",
"IAEoBSJhCiFQcm90b2J1Zl9Sb29tX015Um9vbV9TdGF0ZV9DaGFuZ2USPAoM",
"Um9vbU1pbmlJbmZvGAEgASgLMiYuQXhpYnVnUHJvdG9idWYuUHJvdG9idWZf",
"Um9vbV9NaW5pSW5mbyJrCiRQcm90b2J1Zl9Sb29tX0NoYW5nZV9QbGF5U2xv",
"dFdpdGhKb3kSQwoLU2xvdFdpdGhKb3kYASADKAsyLi5BeGlidWdQcm90b2J1",
"Zi5Qcm90b2J1Zl9QbGF5U2xvdElkeFdpdGhKb3lJZHgiUgoeUHJvdG9idWZf",
"UGxheVNsb3RJZHhXaXRoSm95SWR4EhUKDVBsYXllclNsb3RJZHgYASABKAUS",
"GQoRUGxheWVyTG9jYWxKb3lJZHgYAiABKAUiKwopUHJvdG9idWZfUm9vbV9D",
"aGFuZ2VfUGxheVNsb3RXaXRoSm95X1JFU1AiRQobUHJvdG9idWZfUm9vbV9X",
"YWl0U3RlcF9SRVNQEhAKCFdhaXRTdGVwGAEgASgFEhQKDExvYWRTdGF0ZVJh",
"dxgCIAEoDCI/CidQcm90b2J1Zl9Sb29tX0hvc3RQbGF5ZXJfVXBkYXRlU3Rh",
"dGVSYXcSFAoMTG9hZFN0YXRlUmF3GAEgASgMIi4KLFByb3RvYnVmX1Jvb21f",
"SG9zdFBsYXllcl9VcGRhdGVTdGF0ZVJhd19SRVNQIpoBChpQcm90b2J1Zl9S",
"b29tX1BsYXllcl9SZWFkeRIbChNQdXNoRnJhbWVOZWVkVGltZVVzGAEgASgC",
"EhsKE0xvYWRTdGF0ZU5lZWRUaW1lVXMYAiABKAISIAoYVmlkZW9GcmFtZVNo",
"b3dOZWVkVGltZVVzGAMgASgCEiAKGEF1ZGlvRnJhbWVQbGF5TmVlZFRpbWVV",
"cxgEIAEoAiIqChhQcm90b2J1Zl9Sb29tX0dldF9TY3JlZW4SDgoGUm9vbUlE",
"GAEgASgFIlMKHVByb3RvYnVmX1Jvb21fR2V0X1NjcmVlbl9SRVNQEg4KBlJv",
"b21JRBgBIAEoBRIPCgdGcmFtZUlEGAIgASgFEhEKCVJhd0JpdG1hcBgDIAEo",
"DCJmChJQcm90b2J1Zl9HYW1lX01hcmsSDQoFUm9tSUQYASABKAUSDQoFc3Rh",
"dGUYAiABKAUSMgoMUGxhdGZvcm1UeXBlGAMgASgOMhwuQXhpYnVnUHJvdG9i",
"dWYuUGxhdGZvcm1UeXBlIlwKF1Byb3RvYnVmX0dhbWVfTWFya19SRVNQEg0K",
"BVJvbUlEGAEgASgFEjIKDFBsYXRmb3JtVHlwZRgCIAEoDjIcLkF4aWJ1Z1By",
"b3RvYnVmLlBsYXRmb3JtVHlwZSqhBQoJQ29tbWFuZElEEg4KCkNNRF9ERUZB",
"VUwQABIMCghDTURfUElORxABEgwKCENNRF9QT05HEAISDgoJQ01EX0xPR0lO",
"ENEPEhgKE0NNRF9VU0VSX09OTElORUxJU1QQuBcSEgoNQ01EX1VTRVJfSk9J",
"ThDXFxITCg5DTURfVVNFUl9MRUFWRRDYFxIaChVDTURfVVNFUl9TVEFURV9V",
"UERBVEUQ2RcSGAoTQ01EX01vZGlmeV9OaWNrTmFtZRCdGBIcChdDTURfVXBk",
"YXRlX1NlbGZVc2VySW5mbxCmGBIdChhDTURfVXBkYXRlX090aGVyVXNlcklu",
"Zm8QqBgSEAoLQ01EX0NIQVRNU0cQoR8SEgoNQ01EX1Jvb21fTGlzdBCJJxIZ",
"ChRDTURfUm9vbV9MaXN0X1VwZGF0ZRCKJxIYChNDTURfUm9vbV9HZXRfU2Ny",
"ZWVuEJMnEhQKD0NNRF9Sb29tX0NyZWF0ZRDtJxISCg1DTURfUm9vbV9Kb2lu",
"EPEnEhMKDkNNRF9Sb29tX0xlYXZlEPInEiIKHUNNRF9Sb29tX015Um9vbV9T",
"dGF0ZV9DaGFuZ2VkEPYnEiEKHENNRF9Sb29tX0NoYW5nZVBsYXllcldpdGhK",
"b3kQiigSFgoRQ01EX1Jvb21fV2FpdFN0ZXAQ0SgSJwoiQ01EX1Jvb21fSG9z",
"dFBsYXllcl9VcGRhdGVTdGF0ZVJhdxDUKBIaChVDTURfUm9vbV9QbGF5ZXJf",
"UmVhZHkQ2CgSIAobQ01EX1Jvb21fU2luZ2VsX1BsYXllcklucHV0EPouEh0K",
"GENNRF9ST09NX1NZTl9QbGF5ZXJJbnB1dBD/LhIPCgpDTURfU2NyZWVuENk2",
"EhIKDUNNRF9HQU1FX01BUksQ9U4q0AEKCUVycm9yQ29kZRIQCgxFUlJPUl9E",
"RUZBVUwQABIMCghFUlJPUl9PSxABEhgKFEVSUk9SX1JPT01fTk9UX0ZPVU5E",
"EAoSJwojRVJST1JfUk9PTV9TTE9UX0FMUkVBRExZX0hBRF9QTEFZRVIQCxIh",
"Ch1FUlJPUl9ST09NX0NBTlRfRE9fQ1VSUl9TVEFURRAyEh8KGkVSUk9SX1JP",
"TV9BTFJFQURZX0hBRF9TVEFSEJMDEhwKF0VSUk9SX1JPTV9ET05UX0hBRF9T",
"VEFSEJQDKkAKCUxvZ2luVHlwZRINCglVc2VEZXZpY2UQABIOCgpVc2VBY2Nv",
"dW50EAESFAoQVXNlSGFvWXVlQWNjb3VudBACKksKCkRldmljZVR5cGUSFgoS",
"RGV2aWNlVHlwZV9EZWZhdWx0EAASBgoCUEMQARILCgdBbmRyb2lkEAISBwoD",
"SU9TEAMSBwoDUFNWEAQqIAoMUGxhdGZvcm1UeXBlEgcKA0FsbBAAEgcKA05l",
"cxABKnAKDVJvb21HYW1lU3RhdGUSEgoOTm9uZV9HYW1lU3RhdGUQABIMCghP",
"bmx5SG9zdBABEhEKDVdhaXRSYXdVcGRhdGUQAhINCglXYWl0UmVhZHkQAxIJ",
"CgVQYXVzZRAEEhAKDEluT25saW5lR2FtZRAFKk4KEUxvZ2luUmVzdWx0U3Rh",
"dHVzEiEKHUxvZ2luUmVzdWx0U3RhdHVzX0Jhc2VEZWZhdWx0EAASBgoCT0sQ",
"ARIOCgpBY2NvdW50RXJyEAJCAkgBYgZwcm90bzM="));
"RBgBIAEoAxINCgVTdGF0ZRgCIAEoBSJdCgxVc2VyTWluaUluZm8SCwoDVUlE",
"GAEgASgDEhAKCE5pY2tOYW1lGAIgASgJEi4KCmRldmljZVR5cGUYAyABKA4y",
"Gi5BeGlidWdQcm90b2J1Zi5EZXZpY2VUeXBlIiwKGFByb3RvYnVmX01vZGlm",
"eV9OaWNrTmFtZRIQCghOaWNrTmFtZRgBIAEoCSIfCh1Qcm90b2J1Zl9Nb2Rp",
"ZnlfTmlja05hbWVfUkVTUCJPCh1Qcm90b2J1Zl9VcGRhdGVfVXNlckluZm9f",
"UkVTUBIuCghVc2VySW5mbxgBIAEoCzIcLkF4aWJ1Z1Byb3RvYnVmLlVzZXJN",
"aW5pSW5mbyJhCiJQcm90b2J1Zl9VcGRhdGVfT3RoZXJVc2VySW5mb19SRVNQ",
"EgsKA1VJRBgBIAEoAxIuCghVc2VySW5mbxgCIAEoCzIcLkF4aWJ1Z1Byb3Rv",
"YnVmLlVzZXJNaW5pSW5mbyIUChJQcm90b2J1Zl9Sb29tX0xpc3QiWwoXUHJv",
"dG9idWZfUm9vbV9MaXN0X1JFU1ASQAoQUm9vbU1pbmlJbmZvTGlzdBgBIAMo",
"CzImLkF4aWJ1Z1Byb3RvYnVmLlByb3RvYnVmX1Jvb21fTWluaUluZm8ikAIK",
"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",
"b2wQDSqUAQoPUm9tUGxhdGZvcm1UeXBlEgcKA0FsbBAAEgcKA05lcxABEhEK",
"DU1hc3Rlcl9TeXN0ZW0QAhINCglHYW1lX0dlYXIQAxIMCghHYW1lX0JveRAE",
"EhIKDkdhbWVfQm95X0NvbG9yEAUSEQoNQ29sZWNvX1Zpc2lvbhAGEgsKB1ND",
"XzMwMDAQBxILCgdTR18xMDAwEAgqcAoNUm9vbUdhbWVTdGF0ZRISCg5Ob25l",
"X0dhbWVTdGF0ZRAAEgwKCE9ubHlIb3N0EAESEQoNV2FpdFJhd1VwZGF0ZRAC",
"Eg0KCVdhaXRSZWFkeRADEgkKBVBhdXNlEAQSEAoMSW5PbmxpbmVHYW1lEAUq",
"TgoRTG9naW5SZXN1bHRTdGF0dXMSIQodTG9naW5SZXN1bHRTdGF0dXNfQmFz",
"ZURlZmF1bHQQABIGCgJPSxABEg4KCkFjY291bnRFcnIQAkICSAFiBnByb3Rv",
"Mw=="));
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.PlatformType), typeof(global::AxibugProtobuf.RoomGameState), typeof(global::AxibugProtobuf.LoginResultStatus), }, null, new pbr::GeneratedClrTypeInfo[] {
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[] {
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_ChatMsg), global::AxibugProtobuf.Protobuf_ChatMsg.Parser, new[]{ "ChatMsg" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_ChatMsg_RESP), global::AxibugProtobuf.Protobuf_ChatMsg_RESP.Parser, new[]{ "NickName", "ChatMsg", "Date" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Ping), global::AxibugProtobuf.Protobuf_Ping.Parser, new[]{ "Seed" }, null, null, null, null),
@ -142,7 +156,7 @@ namespace AxibugProtobuf {
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_UserJoin_RESP), global::AxibugProtobuf.Protobuf_UserJoin_RESP.Parser, new[]{ "UserInfo" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_UserLeave_RESP), global::AxibugProtobuf.Protobuf_UserLeave_RESP.Parser, new[]{ "UID" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_UserState_RESP), global::AxibugProtobuf.Protobuf_UserState_RESP.Parser, new[]{ "UID", "State" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.UserMiniInfo), global::AxibugProtobuf.UserMiniInfo.Parser, new[]{ "UID", "NickName" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.UserMiniInfo), global::AxibugProtobuf.UserMiniInfo.Parser, new[]{ "UID", "NickName", "DeviceType" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Modify_NickName), global::AxibugProtobuf.Protobuf_Modify_NickName.Parser, new[]{ "NickName" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Modify_NickName_RESP), global::AxibugProtobuf.Protobuf_Modify_NickName_RESP.Parser, null, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Update_UserInfo_RESP), global::AxibugProtobuf.Protobuf_Update_UserInfo_RESP.Parser, new[]{ "UserInfo" }, null, null, null, null),
@ -150,7 +164,7 @@ namespace AxibugProtobuf {
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_GamePlaySlot), global::AxibugProtobuf.Protobuf_Room_GamePlaySlot.Parser, new[]{ "PlayerUID", "PlayerNickName", "PlayerLocalJoyIdx" }, 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),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_SinglePlayerInputData), global::AxibugProtobuf.Protobuf_Room_SinglePlayerInputData.Parser, new[]{ "FrameID", "InputData" }, null, null, null, null),
@ -163,7 +177,7 @@ namespace AxibugProtobuf {
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_Leave_RESP), global::AxibugProtobuf.Protobuf_Room_Leave_RESP.Parser, new[]{ "RoomID" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_MyRoom_State_Change), global::AxibugProtobuf.Protobuf_Room_MyRoom_State_Change.Parser, new[]{ "RoomMiniInfo" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_Change_PlaySlotWithJoy), global::AxibugProtobuf.Protobuf_Room_Change_PlaySlotWithJoy.Parser, new[]{ "SlotWithJoy" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_PlaySlotIdxWithJoyIdx), global::AxibugProtobuf.Protobuf_PlaySlotIdxWithJoyIdx.Parser, new[]{ "PlayerSlotIdx", "PlayerLocalJoyIdx" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_PlaySlotIdxWithJoyIdx), global::AxibugProtobuf.Protobuf_PlaySlotIdxWithJoyIdx.Parser, new[]{ "PlayerSlotIdx", "PlayerLocalJoyIdx", "PlayerLocalGamePadType" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_Change_PlaySlotWithJoy_RESP), global::AxibugProtobuf.Protobuf_Room_Change_PlaySlotWithJoy_RESP.Parser, null, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_WaitStep_RESP), global::AxibugProtobuf.Protobuf_Room_WaitStep_RESP.Parser, new[]{ "WaitStep", "LoadStateRaw" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_HostPlayer_UpdateStateRaw), global::AxibugProtobuf.Protobuf_Room_HostPlayer_UpdateStateRaw.Parser, new[]{ "LoadStateRaw" }, null, null, null, null),
@ -171,8 +185,8 @@ namespace AxibugProtobuf {
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_Player_Ready), global::AxibugProtobuf.Protobuf_Room_Player_Ready.Parser, new[]{ "PushFrameNeedTimeUs", "LoadStateNeedTimeUs", "VideoFrameShowNeedTimeUs", "AudioFramePlayNeedTimeUs" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_Get_Screen), global::AxibugProtobuf.Protobuf_Room_Get_Screen.Parser, new[]{ "RoomID" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_Get_Screen_RESP), global::AxibugProtobuf.Protobuf_Room_Get_Screen_RESP.Parser, new[]{ "RoomID", "FrameID", "RawBitmap" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Game_Mark), global::AxibugProtobuf.Protobuf_Game_Mark.Parser, new[]{ "RomID", "State", "PlatformType" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Game_Mark_RESP), global::AxibugProtobuf.Protobuf_Game_Mark_RESP.Parser, new[]{ "RomID", "PlatformType" }, null, null, null, null)
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Game_Mark), global::AxibugProtobuf.Protobuf_Game_Mark.Parser, new[]{ "RomID", "State" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Game_Mark_RESP), global::AxibugProtobuf.Protobuf_Game_Mark_RESP.Parser, new[]{ "RomID" }, null, null, null, null)
}));
}
#endregion
@ -356,18 +370,61 @@ namespace AxibugProtobuf {
public enum DeviceType {
/// <summary>
///缺省不使
///
/// </summary>
[pbr::OriginalName("DeviceType_Default")] Default = 0,
[pbr::OriginalName("PC")] Pc = 1,
[pbr::OriginalName("Android")] Android = 2,
[pbr::OriginalName("IOS")] Ios = 3,
[pbr::OriginalName("PSV")] Psv = 4,
[pbr::OriginalName("PS3")] Ps3 = 5,
[pbr::OriginalName("PS4")] Ps4 = 6,
[pbr::OriginalName("XBOX360")] Xbox360 = 7,
[pbr::OriginalName("XBOXONE")] Xboxone = 8,
[pbr::OriginalName("WiiU")] WiiU = 9,
[pbr::OriginalName("Nintendo3DS")] Nintendo3Ds = 10,
/// <summary>
///汽车Android车机
/// </summary>
[pbr::OriginalName("AndroidCarApp")] AndroidCarApp = 11,
}
public enum PlatformType {
public enum GamePadType {
/// <summary>
///键盘
/// </summary>
[pbr::OriginalName("Keyboard")] Keyboard = 0,
/// <summary>
///通用手柄
/// </summary>
[pbr::OriginalName("GlobalGamePad")] GlobalGamePad = 1,
/// <summary>
///触屏
/// </summary>
[pbr::OriginalName("TouchPanel")] TouchPanel = 2,
[pbr::OriginalName("DS3Control")] Ds3Control = 3,
[pbr::OriginalName("DS4Control")] Ds4Control = 4,
[pbr::OriginalName("DS5Control")] Ds5Control = 5,
[pbr::OriginalName("SwitchProControl")] SwitchProControl = 6,
[pbr::OriginalName("SwitchJoyCon")] SwitchJoyCon = 7,
[pbr::OriginalName("XBOX360Control")] Xbox360Control = 8,
[pbr::OriginalName("XBOXONEControl")] Xboxonecontrol = 9,
[pbr::OriginalName("PSVitaControl")] PsvitaControl = 10,
[pbr::OriginalName("WiiUPadControl")] WiiUpadControl = 11,
[pbr::OriginalName("WiiRemoteControl")] WiiRemoteControl = 12,
[pbr::OriginalName("Nintendo3DSControl")] Nintendo3Dscontrol = 13,
}
public enum RomPlatformType {
[pbr::OriginalName("All")] All = 0,
[pbr::OriginalName("Nes")] Nes = 1,
[pbr::OriginalName("Master_System")] MasterSystem = 2,
[pbr::OriginalName("Game_Gear")] GameGear = 3,
[pbr::OriginalName("Game_Boy")] GameBoy = 4,
[pbr::OriginalName("Game_Boy_Color")] GameBoyColor = 5,
[pbr::OriginalName("Coleco_Vision")] ColecoVision = 6,
[pbr::OriginalName("SC_3000")] Sc3000 = 7,
[pbr::OriginalName("SG_1000")] Sg1000 = 8,
}
public enum RoomGameState {
@ -2855,6 +2912,7 @@ namespace AxibugProtobuf {
public UserMiniInfo(UserMiniInfo other) : this() {
uID_ = other.uID_;
nickName_ = other.nickName_;
deviceType_ = other.deviceType_;
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
}
@ -2891,6 +2949,20 @@ namespace AxibugProtobuf {
}
}
/// <summary>Field number for the "deviceType" field.</summary>
public const int DeviceTypeFieldNumber = 3;
private global::AxibugProtobuf.DeviceType deviceType_ = global::AxibugProtobuf.DeviceType.Default;
/// <summary>
///设备类型
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public global::AxibugProtobuf.DeviceType DeviceType {
get { return deviceType_; }
set {
deviceType_ = value;
}
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override bool Equals(object other) {
return Equals(other as UserMiniInfo);
@ -2906,6 +2978,7 @@ namespace AxibugProtobuf {
}
if (UID != other.UID) return false;
if (NickName != other.NickName) return false;
if (DeviceType != other.DeviceType) return false;
return Equals(_unknownFields, other._unknownFields);
}
@ -2914,6 +2987,7 @@ namespace AxibugProtobuf {
int hash = 1;
if (UID != 0L) hash ^= UID.GetHashCode();
if (NickName.Length != 0) hash ^= NickName.GetHashCode();
if (DeviceType != global::AxibugProtobuf.DeviceType.Default) hash ^= DeviceType.GetHashCode();
if (_unknownFields != null) {
hash ^= _unknownFields.GetHashCode();
}
@ -2938,6 +3012,10 @@ namespace AxibugProtobuf {
output.WriteRawTag(18);
output.WriteString(NickName);
}
if (DeviceType != global::AxibugProtobuf.DeviceType.Default) {
output.WriteRawTag(24);
output.WriteEnum((int) DeviceType);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(output);
}
@ -2955,6 +3033,10 @@ namespace AxibugProtobuf {
output.WriteRawTag(18);
output.WriteString(NickName);
}
if (DeviceType != global::AxibugProtobuf.DeviceType.Default) {
output.WriteRawTag(24);
output.WriteEnum((int) DeviceType);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(ref output);
}
@ -2970,6 +3052,9 @@ namespace AxibugProtobuf {
if (NickName.Length != 0) {
size += 1 + pb::CodedOutputStream.ComputeStringSize(NickName);
}
if (DeviceType != global::AxibugProtobuf.DeviceType.Default) {
size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) DeviceType);
}
if (_unknownFields != null) {
size += _unknownFields.CalculateSize();
}
@ -2987,6 +3072,9 @@ namespace AxibugProtobuf {
if (other.NickName.Length != 0) {
NickName = other.NickName;
}
if (other.DeviceType != global::AxibugProtobuf.DeviceType.Default) {
DeviceType = other.DeviceType;
}
_unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
}
@ -3009,6 +3097,10 @@ namespace AxibugProtobuf {
NickName = input.ReadString();
break;
}
case 24: {
DeviceType = (global::AxibugProtobuf.DeviceType) input.ReadEnum();
break;
}
}
}
#endif
@ -3031,6 +3123,10 @@ namespace AxibugProtobuf {
NickName = input.ReadString();
break;
}
case 24: {
DeviceType = (global::AxibugProtobuf.DeviceType) input.ReadEnum();
break;
}
}
}
}
@ -4533,7 +4629,9 @@ namespace AxibugProtobuf {
public Protobuf_Room_GamePlaySlot(Protobuf_Room_GamePlaySlot other) : this() {
playerUID_ = other.playerUID_;
playerNickName_ = other.playerNickName_;
deviceType_ = other.deviceType_;
playerLocalJoyIdx_ = other.playerLocalJoyIdx_;
playerLocalGamePadType_ = other.playerLocalGamePadType_;
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
}
@ -4570,8 +4668,22 @@ namespace AxibugProtobuf {
}
}
/// <summary>Field number for the "deviceType" field.</summary>
public const int DeviceTypeFieldNumber = 3;
private global::AxibugProtobuf.DeviceType deviceType_ = global::AxibugProtobuf.DeviceType.Default;
/// <summary>
///用户设备类型
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public global::AxibugProtobuf.DeviceType DeviceType {
get { return deviceType_; }
set {
deviceType_ = value;
}
}
/// <summary>Field number for the "PlayerLocalJoyIdx" field.</summary>
public const int PlayerLocalJoyIdxFieldNumber = 3;
public const int PlayerLocalJoyIdxFieldNumber = 4;
private int playerLocalJoyIdx_;
/// <summary>
///客户端JoyIdx
@ -4584,6 +4696,20 @@ namespace AxibugProtobuf {
}
}
/// <summary>Field number for the "PlayerLocalGamePadType" field.</summary>
public const int PlayerLocalGamePadTypeFieldNumber = 5;
private global::AxibugProtobuf.GamePadType playerLocalGamePadType_ = global::AxibugProtobuf.GamePadType.Keyboard;
/// <summary>
///客户端手柄类型
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public global::AxibugProtobuf.GamePadType PlayerLocalGamePadType {
get { return playerLocalGamePadType_; }
set {
playerLocalGamePadType_ = value;
}
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override bool Equals(object other) {
return Equals(other as Protobuf_Room_GamePlaySlot);
@ -4599,7 +4725,9 @@ namespace AxibugProtobuf {
}
if (PlayerUID != other.PlayerUID) return false;
if (PlayerNickName != other.PlayerNickName) return false;
if (DeviceType != other.DeviceType) return false;
if (PlayerLocalJoyIdx != other.PlayerLocalJoyIdx) return false;
if (PlayerLocalGamePadType != other.PlayerLocalGamePadType) return false;
return Equals(_unknownFields, other._unknownFields);
}
@ -4608,7 +4736,9 @@ namespace AxibugProtobuf {
int hash = 1;
if (PlayerUID != 0L) hash ^= PlayerUID.GetHashCode();
if (PlayerNickName.Length != 0) hash ^= PlayerNickName.GetHashCode();
if (DeviceType != global::AxibugProtobuf.DeviceType.Default) hash ^= DeviceType.GetHashCode();
if (PlayerLocalJoyIdx != 0) hash ^= PlayerLocalJoyIdx.GetHashCode();
if (PlayerLocalGamePadType != global::AxibugProtobuf.GamePadType.Keyboard) hash ^= PlayerLocalGamePadType.GetHashCode();
if (_unknownFields != null) {
hash ^= _unknownFields.GetHashCode();
}
@ -4633,10 +4763,18 @@ namespace AxibugProtobuf {
output.WriteRawTag(18);
output.WriteString(PlayerNickName);
}
if (PlayerLocalJoyIdx != 0) {
if (DeviceType != global::AxibugProtobuf.DeviceType.Default) {
output.WriteRawTag(24);
output.WriteEnum((int) DeviceType);
}
if (PlayerLocalJoyIdx != 0) {
output.WriteRawTag(32);
output.WriteInt32(PlayerLocalJoyIdx);
}
if (PlayerLocalGamePadType != global::AxibugProtobuf.GamePadType.Keyboard) {
output.WriteRawTag(40);
output.WriteEnum((int) PlayerLocalGamePadType);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(output);
}
@ -4654,10 +4792,18 @@ namespace AxibugProtobuf {
output.WriteRawTag(18);
output.WriteString(PlayerNickName);
}
if (PlayerLocalJoyIdx != 0) {
if (DeviceType != global::AxibugProtobuf.DeviceType.Default) {
output.WriteRawTag(24);
output.WriteEnum((int) DeviceType);
}
if (PlayerLocalJoyIdx != 0) {
output.WriteRawTag(32);
output.WriteInt32(PlayerLocalJoyIdx);
}
if (PlayerLocalGamePadType != global::AxibugProtobuf.GamePadType.Keyboard) {
output.WriteRawTag(40);
output.WriteEnum((int) PlayerLocalGamePadType);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(ref output);
}
@ -4673,9 +4819,15 @@ namespace AxibugProtobuf {
if (PlayerNickName.Length != 0) {
size += 1 + pb::CodedOutputStream.ComputeStringSize(PlayerNickName);
}
if (DeviceType != global::AxibugProtobuf.DeviceType.Default) {
size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) DeviceType);
}
if (PlayerLocalJoyIdx != 0) {
size += 1 + pb::CodedOutputStream.ComputeInt32Size(PlayerLocalJoyIdx);
}
if (PlayerLocalGamePadType != global::AxibugProtobuf.GamePadType.Keyboard) {
size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) PlayerLocalGamePadType);
}
if (_unknownFields != null) {
size += _unknownFields.CalculateSize();
}
@ -4693,9 +4845,15 @@ namespace AxibugProtobuf {
if (other.PlayerNickName.Length != 0) {
PlayerNickName = other.PlayerNickName;
}
if (other.DeviceType != global::AxibugProtobuf.DeviceType.Default) {
DeviceType = other.DeviceType;
}
if (other.PlayerLocalJoyIdx != 0) {
PlayerLocalJoyIdx = other.PlayerLocalJoyIdx;
}
if (other.PlayerLocalGamePadType != global::AxibugProtobuf.GamePadType.Keyboard) {
PlayerLocalGamePadType = other.PlayerLocalGamePadType;
}
_unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
}
@ -4719,9 +4877,17 @@ namespace AxibugProtobuf {
break;
}
case 24: {
DeviceType = (global::AxibugProtobuf.DeviceType) input.ReadEnum();
break;
}
case 32: {
PlayerLocalJoyIdx = input.ReadInt32();
break;
}
case 40: {
PlayerLocalGamePadType = (global::AxibugProtobuf.GamePadType) input.ReadEnum();
break;
}
}
}
#endif
@ -4745,9 +4911,17 @@ namespace AxibugProtobuf {
break;
}
case 24: {
DeviceType = (global::AxibugProtobuf.DeviceType) input.ReadEnum();
break;
}
case 32: {
PlayerLocalJoyIdx = input.ReadInt32();
break;
}
case 40: {
PlayerLocalGamePadType = (global::AxibugProtobuf.GamePadType) input.ReadEnum();
break;
}
}
}
}
@ -7217,6 +7391,7 @@ namespace AxibugProtobuf {
public Protobuf_PlaySlotIdxWithJoyIdx(Protobuf_PlaySlotIdxWithJoyIdx other) : this() {
playerSlotIdx_ = other.playerSlotIdx_;
playerLocalJoyIdx_ = other.playerLocalJoyIdx_;
playerLocalGamePadType_ = other.playerLocalGamePadType_;
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
}
@ -7253,6 +7428,20 @@ namespace AxibugProtobuf {
}
}
/// <summary>Field number for the "PlayerLocalGamePadType" field.</summary>
public const int PlayerLocalGamePadTypeFieldNumber = 3;
private global::AxibugProtobuf.GamePadType playerLocalGamePadType_ = global::AxibugProtobuf.GamePadType.Keyboard;
/// <summary>
///客户端手柄类型
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public global::AxibugProtobuf.GamePadType PlayerLocalGamePadType {
get { return playerLocalGamePadType_; }
set {
playerLocalGamePadType_ = value;
}
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override bool Equals(object other) {
return Equals(other as Protobuf_PlaySlotIdxWithJoyIdx);
@ -7268,6 +7457,7 @@ namespace AxibugProtobuf {
}
if (PlayerSlotIdx != other.PlayerSlotIdx) return false;
if (PlayerLocalJoyIdx != other.PlayerLocalJoyIdx) return false;
if (PlayerLocalGamePadType != other.PlayerLocalGamePadType) return false;
return Equals(_unknownFields, other._unknownFields);
}
@ -7276,6 +7466,7 @@ namespace AxibugProtobuf {
int hash = 1;
if (PlayerSlotIdx != 0) hash ^= PlayerSlotIdx.GetHashCode();
if (PlayerLocalJoyIdx != 0) hash ^= PlayerLocalJoyIdx.GetHashCode();
if (PlayerLocalGamePadType != global::AxibugProtobuf.GamePadType.Keyboard) hash ^= PlayerLocalGamePadType.GetHashCode();
if (_unknownFields != null) {
hash ^= _unknownFields.GetHashCode();
}
@ -7300,6 +7491,10 @@ namespace AxibugProtobuf {
output.WriteRawTag(16);
output.WriteInt32(PlayerLocalJoyIdx);
}
if (PlayerLocalGamePadType != global::AxibugProtobuf.GamePadType.Keyboard) {
output.WriteRawTag(24);
output.WriteEnum((int) PlayerLocalGamePadType);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(output);
}
@ -7317,6 +7512,10 @@ namespace AxibugProtobuf {
output.WriteRawTag(16);
output.WriteInt32(PlayerLocalJoyIdx);
}
if (PlayerLocalGamePadType != global::AxibugProtobuf.GamePadType.Keyboard) {
output.WriteRawTag(24);
output.WriteEnum((int) PlayerLocalGamePadType);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(ref output);
}
@ -7332,6 +7531,9 @@ namespace AxibugProtobuf {
if (PlayerLocalJoyIdx != 0) {
size += 1 + pb::CodedOutputStream.ComputeInt32Size(PlayerLocalJoyIdx);
}
if (PlayerLocalGamePadType != global::AxibugProtobuf.GamePadType.Keyboard) {
size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) PlayerLocalGamePadType);
}
if (_unknownFields != null) {
size += _unknownFields.CalculateSize();
}
@ -7349,6 +7551,9 @@ namespace AxibugProtobuf {
if (other.PlayerLocalJoyIdx != 0) {
PlayerLocalJoyIdx = other.PlayerLocalJoyIdx;
}
if (other.PlayerLocalGamePadType != global::AxibugProtobuf.GamePadType.Keyboard) {
PlayerLocalGamePadType = other.PlayerLocalGamePadType;
}
_unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
}
@ -7371,6 +7576,10 @@ namespace AxibugProtobuf {
PlayerLocalJoyIdx = input.ReadInt32();
break;
}
case 24: {
PlayerLocalGamePadType = (global::AxibugProtobuf.GamePadType) input.ReadEnum();
break;
}
}
}
#endif
@ -7393,6 +7602,10 @@ namespace AxibugProtobuf {
PlayerLocalJoyIdx = input.ReadInt32();
break;
}
case 24: {
PlayerLocalGamePadType = (global::AxibugProtobuf.GamePadType) input.ReadEnum();
break;
}
}
}
}
@ -8812,7 +9025,6 @@ namespace AxibugProtobuf {
public Protobuf_Game_Mark(Protobuf_Game_Mark other) : this() {
romID_ = other.romID_;
state_ = other.state_;
platformType_ = other.platformType_;
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
}
@ -8849,20 +9061,6 @@ namespace AxibugProtobuf {
}
}
/// <summary>Field number for the "PlatformType" field.</summary>
public const int PlatformTypeFieldNumber = 3;
private global::AxibugProtobuf.PlatformType platformType_ = global::AxibugProtobuf.PlatformType.All;
/// <summary>
///平台类型
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public global::AxibugProtobuf.PlatformType PlatformType {
get { return platformType_; }
set {
platformType_ = value;
}
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override bool Equals(object other) {
return Equals(other as Protobuf_Game_Mark);
@ -8878,7 +9076,6 @@ namespace AxibugProtobuf {
}
if (RomID != other.RomID) return false;
if (State != other.State) return false;
if (PlatformType != other.PlatformType) return false;
return Equals(_unknownFields, other._unknownFields);
}
@ -8887,7 +9084,6 @@ namespace AxibugProtobuf {
int hash = 1;
if (RomID != 0) hash ^= RomID.GetHashCode();
if (State != 0) hash ^= State.GetHashCode();
if (PlatformType != global::AxibugProtobuf.PlatformType.All) hash ^= PlatformType.GetHashCode();
if (_unknownFields != null) {
hash ^= _unknownFields.GetHashCode();
}
@ -8912,10 +9108,6 @@ namespace AxibugProtobuf {
output.WriteRawTag(16);
output.WriteInt32(State);
}
if (PlatformType != global::AxibugProtobuf.PlatformType.All) {
output.WriteRawTag(24);
output.WriteEnum((int) PlatformType);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(output);
}
@ -8933,10 +9125,6 @@ namespace AxibugProtobuf {
output.WriteRawTag(16);
output.WriteInt32(State);
}
if (PlatformType != global::AxibugProtobuf.PlatformType.All) {
output.WriteRawTag(24);
output.WriteEnum((int) PlatformType);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(ref output);
}
@ -8952,9 +9140,6 @@ namespace AxibugProtobuf {
if (State != 0) {
size += 1 + pb::CodedOutputStream.ComputeInt32Size(State);
}
if (PlatformType != global::AxibugProtobuf.PlatformType.All) {
size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) PlatformType);
}
if (_unknownFields != null) {
size += _unknownFields.CalculateSize();
}
@ -8972,9 +9157,6 @@ namespace AxibugProtobuf {
if (other.State != 0) {
State = other.State;
}
if (other.PlatformType != global::AxibugProtobuf.PlatformType.All) {
PlatformType = other.PlatformType;
}
_unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
}
@ -8997,10 +9179,6 @@ namespace AxibugProtobuf {
State = input.ReadInt32();
break;
}
case 24: {
PlatformType = (global::AxibugProtobuf.PlatformType) input.ReadEnum();
break;
}
}
}
#endif
@ -9023,10 +9201,6 @@ namespace AxibugProtobuf {
State = input.ReadInt32();
break;
}
case 24: {
PlatformType = (global::AxibugProtobuf.PlatformType) input.ReadEnum();
break;
}
}
}
}
@ -9064,7 +9238,6 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public Protobuf_Game_Mark_RESP(Protobuf_Game_Mark_RESP other) : this() {
romID_ = other.romID_;
platformType_ = other.platformType_;
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
}
@ -9087,20 +9260,6 @@ namespace AxibugProtobuf {
}
}
/// <summary>Field number for the "PlatformType" field.</summary>
public const int PlatformTypeFieldNumber = 2;
private global::AxibugProtobuf.PlatformType platformType_ = global::AxibugProtobuf.PlatformType.All;
/// <summary>
///平台类型
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public global::AxibugProtobuf.PlatformType PlatformType {
get { return platformType_; }
set {
platformType_ = value;
}
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override bool Equals(object other) {
return Equals(other as Protobuf_Game_Mark_RESP);
@ -9115,7 +9274,6 @@ namespace AxibugProtobuf {
return true;
}
if (RomID != other.RomID) return false;
if (PlatformType != other.PlatformType) return false;
return Equals(_unknownFields, other._unknownFields);
}
@ -9123,7 +9281,6 @@ namespace AxibugProtobuf {
public override int GetHashCode() {
int hash = 1;
if (RomID != 0) hash ^= RomID.GetHashCode();
if (PlatformType != global::AxibugProtobuf.PlatformType.All) hash ^= PlatformType.GetHashCode();
if (_unknownFields != null) {
hash ^= _unknownFields.GetHashCode();
}
@ -9144,10 +9301,6 @@ namespace AxibugProtobuf {
output.WriteRawTag(8);
output.WriteInt32(RomID);
}
if (PlatformType != global::AxibugProtobuf.PlatformType.All) {
output.WriteRawTag(16);
output.WriteEnum((int) PlatformType);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(output);
}
@ -9161,10 +9314,6 @@ namespace AxibugProtobuf {
output.WriteRawTag(8);
output.WriteInt32(RomID);
}
if (PlatformType != global::AxibugProtobuf.PlatformType.All) {
output.WriteRawTag(16);
output.WriteEnum((int) PlatformType);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(ref output);
}
@ -9177,9 +9326,6 @@ namespace AxibugProtobuf {
if (RomID != 0) {
size += 1 + pb::CodedOutputStream.ComputeInt32Size(RomID);
}
if (PlatformType != global::AxibugProtobuf.PlatformType.All) {
size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) PlatformType);
}
if (_unknownFields != null) {
size += _unknownFields.CalculateSize();
}
@ -9194,9 +9340,6 @@ namespace AxibugProtobuf {
if (other.RomID != 0) {
RomID = other.RomID;
}
if (other.PlatformType != global::AxibugProtobuf.PlatformType.All) {
PlatformType = other.PlatformType;
}
_unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
}
@ -9215,10 +9358,6 @@ namespace AxibugProtobuf {
RomID = input.ReadInt32();
break;
}
case 16: {
PlatformType = (global::AxibugProtobuf.PlatformType) input.ReadEnum();
break;
}
}
}
#endif
@ -9237,10 +9376,6 @@ namespace AxibugProtobuf {
RomID = input.ReadInt32();
break;
}
case 16: {
PlatformType = (global::AxibugProtobuf.PlatformType) input.ReadEnum();
break;
}
}
}
}

View File

@ -90,19 +90,51 @@ enum LoginType
UseHaoYueAccount = 2;//使
}
enum DeviceType
enum DeviceType //
{
DeviceType_Default = 0;//使
DeviceType_Default = 0;//
PC = 1;
Android = 2;
IOS = 3;
PSV = 4;
PS3 = 5;
PS4 = 6;
XBOX360 = 7;
XBOXONE = 8;
WiiU = 9;
Nintendo3DS = 10;
AndroidCarApp = 11;//Android车机
}
enum PlatformType
enum GamePadType //
{
Keyboard = 0;//
GlobalGamePad = 1;//
TouchPanel = 2;//
DS3Control = 3;
DS4Control = 4;
DS5Control = 5;
SwitchProControl = 6;
SwitchJoyCon = 7;
XBOX360Control = 8;
XBOXONEControl = 9;
PSVitaControl = 10;
WiiUPadControl = 11;
WiiRemoteControl = 12;
Nintendo3DSControl = 13;
}
enum RomPlatformType
{
All = 0;
Nes = 1;
Master_System = 2;
Game_Gear = 3;
Game_Boy = 4;
Game_Boy_Color = 5;
Coleco_Vision = 6;
SC_3000 = 7;
SG_1000 = 8;
}
//enum RoomPlayerState
@ -213,6 +245,7 @@ message UserMiniInfo
{
int64 UID = 1;//ID
string NickName = 2;//
DeviceType deviceType = 3;//
}
//
@ -266,7 +299,9 @@ message Protobuf_Room_GamePlaySlot
{
int64 Player_UID = 1;// UID
string Player_NickName = 2;//
int32 PlayerLocalJoyIdx = 3;//JoyIdx
DeviceType deviceType = 3;//
int32 PlayerLocalJoyIdx = 4;//JoyIdx
GamePadType PlayerLocalGamePadType = 5;//
}
message Protobuf_Room_Update_RESP
@ -341,6 +376,7 @@ message Protobuf_PlaySlotIdxWithJoyIdx
{
int32 PlayerSlotIdx = 1;//P1~P4编号
int32 PlayerLocalJoyIdx = 2;//Joy编号
GamePadType PlayerLocalGamePadType = 3;//
}
message Protobuf_Room_Change_PlaySlotWithJoy_RESP
@ -389,11 +425,9 @@ message Protobuf_Game_Mark
{
int32 RomID = 1;//RomID
int32 state = 2;//[0] [1]
PlatformType PlatformType = 3;//
}
message Protobuf_Game_Mark_RESP
{
int32 RomID = 1;//RomID
PlatformType PlatformType = 2;//
}

View File

@ -7,23 +7,45 @@
```
platform 模拟器所在平台
[0] 通用
[1] PC
enum DeviceType //设备类型
{
DeviceType_Default = 0;//通用
PC = 1;
Android = 2;
IOS = 3;
PSV = 4;
PS3 = 5;
PS4 = 6;
XBOX360 = 7;
XBOXONE = 8;
WiiU = 9;
Nintendo3DS = 10;
AndroidCarApp = 11;//汽车Android车机
}
PType Rom所属平台
enum PlatformType : byte
enum RomPlatformType
{
All = 0,
Nes = 1,
All = 0;
Nes = 1;
Master_System = 2;
Game_Gear = 3;
Game_Boy = 4;
Game_Boy_Color = 5;
Coleco_Vision = 6;
SC_3000 = 7;
SG_1000 = 8;
}
游戏类型
```
### 基本信息检查
```
{WebHost}/api/NesRomList?platform=<平台编号>&version=<版本>
{WebHost}/api/CheckStandInfo?platform=<平台编号>&version=<版本>
```
Request:
@ -59,13 +81,13 @@ class Resp_CheckStandInfo
### Nes游戏列表
```
{WebHost}/api/NesRomList?Page=<页码>&PageSize=<单大小>&SearchKey=<可选的模糊查询关键字>&PType=<平台枚举int>&GType=<游戏类型枚举>
{WebHost}/api/RomList?Page=<页码>&PageSize=<单大小>&SearchKey=<可选的模糊查询关键字>&PType=<平台枚举int>&GType=<游戏类型枚举>
```
Request:
```
http://emu.axibug.com/api/NesRomList?Page=0&PageSize=5&SearchKey=%热血&PType=1&GType=1
http://emu.axibug.com/api/RomList?Page=0&PageSize=5&SearchKey=%热血&PType=1&GType=1
```
Response:
@ -79,57 +101,67 @@ Response:
{
"orderid": 0,
"id": 190,
"ptype": 1,
"romName": "热血物语",
"gType": "ACT",
"desc": "设有拳击及体力槽的热血系列节目。是带有RPG色彩的街头斗殴节目。",
"url": "roms/fcrom/Downtown%20-%20Nekketsu%20Monogatari%20(J).zip",
"imgUrl": "images/fcrom/Downtown%20-%20Nekketsu%20Monogatari%20(J).JPG",
"hash": "",
"stars": 0
"hash": "62e2b8ee88d894d9adea32273c9bbfc3",
"stars": 0,
"playcount": 72
},
{
"orderid": 1,
"id": 460,
"ptype": 1,
"romName": "热血时代剧(热血道中记)",
"gType": "ACT",
"desc": "以古代日本为舞台展开的热血系列节目。设有多种必杀技可使用。",
"url": "roms/fcrom/Kunio%20Kun%20No%20Jidaigekidayo%20Zenin%20Shuugou%20(J).zip",
"imgUrl": "images/fcrom/Kunio%20Kun%20No%20Jidaigekidayo%20Zenin%20Shuugou%20(J).JPG",
"hash": "",
"stars": 0
"hash": "45c4a12530d64e774f0ef7aebe211b81",
"stars": 0,
"playcount": 0
},
{
"orderid": 2,
"id": 585,
"ptype": 1,
"romName": "热血硬派",
"gType": "ACT",
"desc": "有着多种模式的格斗节目。各版面均有不同的趣味性。是热血系列游戏最初的作品。",
"url": "roms/fcrom/Nekketsu%20Kouha%20-%20Kunio%20Kun%20(J).zip",
"imgUrl": "images/fcrom/Nekketsu%20Kouha%20-%20Kunio%20Kun%20(J).JPG",
"hash": "",
"stars": 0
"hash": "a731fd23627e0db18c88d1fff4bc8039",
"stars": 0,
"playcount": 0
},
{
"orderid": 3,
"id": 674,
"ptype": 1,
"romName": "热血物语(美版)",
"gType": "ACT",
"desc": "设有拳击及体力槽的热血系列节目。是带有RPG色彩的街头斗殴节目。",
"url": "roms/fcrom/River%20City%20Brawl%20(J).zip",
"imgUrl": "images/fcrom/River%20City%20Brawl%20(J).JPG",
"hash": "",
"stars": 0
"hash": "956381cb137c4cadee36249ad16a79fa",
"stars": 0,
"playcount": 0
},
{
"orderid": 4,
"id": 826,
"ptype": 1,
"romName": "热血时代剧美版(热血道中记美版)",
"gType": "ACT",
"desc": "以古代日本为舞台展开的热血系列节目。设有多种必杀技可使用。",
"url": "roms/fcrom/Technos%20Samurai%20-%20Downtown%20Special%20(J).zip",
"imgUrl": "images/fcrom/Technos%20Samurai%20-%20Downtown%20Special%20(J).JPG",
"hash": "",
"stars": 0
"hash": "b96fb8afda11a73c1693fb6a197347c4",
"stars": 0,
"playcount": 0
}
]
}
@ -150,6 +182,7 @@ Response:
{
public int orderid { get; set; }
public int id { get; set; }
public int ptype { get; set; }
public string romName { get; set; }
public string gType { get; set; }
public string desc { get; set; }