客户端增加设备类型和手柄类型概念

This commit is contained in:
sin365 2025-01-07 01:08:48 +08:00
parent 9c8a6e102d
commit e19145bc23
5 changed files with 369 additions and 112 deletions

View File

@ -25,14 +25,37 @@ namespace AxibugEmuOnline.Client.Manager
App.user.userdata.Account = LastLoginGuid;
AxibugProtobuf.DeviceType devType;
if (Application.platform == RuntimePlatform.PSP2)
devType = AxibugProtobuf.DeviceType.Psv;
else if (Application.platform == RuntimePlatform.Android)
devType = AxibugProtobuf.DeviceType.Android;
else if (Application.platform == RuntimePlatform.IPhonePlayer)
devType = AxibugProtobuf.DeviceType.Ios;
else
devType = AxibugProtobuf.DeviceType.Pc;
switch (Application.platform)
{
case RuntimePlatform.PSP2:
devType = AxibugProtobuf.DeviceType.Psv;
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;
break;
default:
devType = AxibugProtobuf.DeviceType.Pc;
break;
}
Protobuf_Login msg = new Protobuf_Login()
{
@ -63,7 +86,7 @@ namespace AxibugEmuOnline.Client.Manager
}
else
{
App.log.Info("登录失败");
App.log.Info("登录失败");
OverlayManager.PopTip("登录失败");
Eventer.Instance.PostEvent(EEvent.OnLoginFailed);
}

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,
});
}
@ -605,6 +605,24 @@ namespace AxibugEmuOnline.Client.Manager
if (roomMiniInfo.GamePlaySlotList[(int)GameSlotIdx].PlayerUID > 0)
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

@ -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",
"ASABKAUSDwoHRnJhbWVJRBgCIAEoBRIRCglSYXdCaXRtYXAYAyABKAwiZgoS",
"UHJvdG9idWZfR2FtZV9NYXJrEg0KBVJvbUlEGAEgASgFEg0KBXN0YXRlGAIg",
"ASgFEjIKDFBsYXRmb3JtVHlwZRgDIAEoDjIcLkF4aWJ1Z1Byb3RvYnVmLlBs",
"YXRmb3JtVHlwZSJcChdQcm90b2J1Zl9HYW1lX01hcmtfUkVTUBINCgVSb21J",
"RBgBIAEoBRIyCgxQbGF0Zm9ybVR5cGUYAiABKA4yHC5BeGlidWdQcm90b2J1",
"Zi5QbGF0Zm9ybVR5cGUqoQUKCUNvbW1hbmRJRBIOCgpDTURfREVGQVVMEAAS",
"DAoIQ01EX1BJTkcQARIMCghDTURfUE9ORxACEg4KCUNNRF9MT0dJThDRDxIY",
"ChNDTURfVVNFUl9PTkxJTkVMSVNUELgXEhIKDUNNRF9VU0VSX0pPSU4Q1xcS",
"EwoOQ01EX1VTRVJfTEVBVkUQ2BcSGgoVQ01EX1VTRVJfU1RBVEVfVVBEQVRF",
"ENkXEhgKE0NNRF9Nb2RpZnlfTmlja05hbWUQnRgSHAoXQ01EX1VwZGF0ZV9T",
"ZWxmVXNlckluZm8QphgSHQoYQ01EX1VwZGF0ZV9PdGhlclVzZXJJbmZvEKgY",
"EhAKC0NNRF9DSEFUTVNHEKEfEhIKDUNNRF9Sb29tX0xpc3QQiScSGQoUQ01E",
"X1Jvb21fTGlzdF9VcGRhdGUQiicSGAoTQ01EX1Jvb21fR2V0X1NjcmVlbhCT",
"JxIUCg9DTURfUm9vbV9DcmVhdGUQ7ScSEgoNQ01EX1Jvb21fSm9pbhDxJxIT",
"Cg5DTURfUm9vbV9MZWF2ZRDyJxIiCh1DTURfUm9vbV9NeVJvb21fU3RhdGVf",
"Q2hhbmdlZBD2JxIhChxDTURfUm9vbV9DaGFuZ2VQbGF5ZXJXaXRoSm95EIoo",
"EhYKEUNNRF9Sb29tX1dhaXRTdGVwENEoEicKIkNNRF9Sb29tX0hvc3RQbGF5",
"ZXJfVXBkYXRlU3RhdGVSYXcQ1CgSGgoVQ01EX1Jvb21fUGxheWVyX1JlYWR5",
"ENgoEiAKG0NNRF9Sb29tX1NpbmdlbF9QbGF5ZXJJbnB1dBD6LhIdChhDTURf",
"Uk9PTV9TWU5fUGxheWVySW5wdXQQ/y4SDwoKQ01EX1NjcmVlbhDZNhISCg1D",
"TURfR0FNRV9NQVJLEPVOKtABCglFcnJvckNvZGUSEAoMRVJST1JfREVGQVVM",
"EAASDAoIRVJST1JfT0sQARIYChRFUlJPUl9ST09NX05PVF9GT1VORBAKEicK",
"I0VSUk9SX1JPT01fU0xPVF9BTFJFQURMWV9IQURfUExBWUVSEAsSIQodRVJS",
"T1JfUk9PTV9DQU5UX0RPX0NVUlJfU1RBVEUQMhIfChpFUlJPUl9ST01fQUxS",
"RUFEWV9IQURfU1RBUhCTAxIcChdFUlJPUl9ST01fRE9OVF9IQURfU1RBUhCU",
"AypACglMb2dpblR5cGUSDQoJVXNlRGV2aWNlEAASDgoKVXNlQWNjb3VudBAB",
"EhQKEFVzZUhhb1l1ZUFjY291bnQQAiqSAQoKRGV2aWNlVHlwZRIWChJEZXZp",
"Y2VUeXBlX0RlZmF1bHQQABIGCgJQQxABEgsKB0FuZHJvaWQQAhIHCgNJT1MQ",
"AxIHCgNQU1YQBBIHCgNQUzMQBRIHCgNQUzQQBhILCgdYQk9YMzYwEAcSCwoH",
"WEJPWE9ORRAIEggKBFdpaVUQCRIPCgtOaW50ZW5kbzNEUxAKKpMCCgtHYW1l",
"UGFkVHlwZRIMCghLZXlib2FyZBAAEhEKDUdsb2JhbEdhbWVQYWQQARIOCgpU",
"b3VjaFBhbmVsEAISDgoKRFMzQ29udHJvbBADEg4KCkRTNENvbnRyb2wQBBIO",
"CgpEUzVDb250cm9sEAUSFAoQU3dpdGNoUHJvQ29udHJvbBAGEhAKDFN3aXRj",
"aEpveUNvbhAHEhIKDlhCT1gzNjBDb250cm9sEAgSEgoOWEJPWE9ORUNvbnRy",
"b2wQCRIRCg1QU1ZpdGFDb250cm9sEAoSEgoOV2lpVVBhZENvbnRyb2wQCxIU",
"ChBXaWlSZW1vdGVDb250cm9sEAwSFgoSTmludGVuZG8zRFNDb250cm9sEA0q",
"ZAoMUGxhdGZvcm1UeXBlEgcKA0FsbBAAEgcKA05lcxABEhEKDU1hc3Rlcl9T",
"eXN0ZW0QAhINCglHYW1lX0dlYXIQAxIMCghHYW1lX0JveRAEEhIKDkdhbWVf",
"Qm95X0NvbG9yEAUqcAoNUm9vbUdhbWVTdGF0ZRISCg5Ob25lX0dhbWVTdGF0",
"ZRAAEgwKCE9ubHlIb3N0EAESEQoNV2FpdFJhd1VwZGF0ZRACEg0KCVdhaXRS",
"ZWFkeRADEgkKBVBhdXNlEAQSEAoMSW5PbmxpbmVHYW1lEAUqTgoRTG9naW5S",
"ZXN1bHRTdGF0dXMSIQodTG9naW5SZXN1bHRTdGF0dXNfQmFzZURlZmF1bHQQ",
"ABIGCgJPSxABEg4KCkFjY291bnRFcnIQAkICSAFiBnByb3RvMw=="));
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.PlatformType), 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),
@ -363,11 +377,47 @@ namespace AxibugProtobuf {
[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,
}
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 PlatformType {
[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,
}
public enum RoomGameState {
@ -2855,6 +2905,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 +2942,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 +2971,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 +2980,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 +3005,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 +3026,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 +3045,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 +3065,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 +3090,10 @@ namespace AxibugProtobuf {
NickName = input.ReadString();
break;
}
case 24: {
DeviceType = (global::AxibugProtobuf.DeviceType) input.ReadEnum();
break;
}
}
}
#endif
@ -3031,6 +3116,10 @@ namespace AxibugProtobuf {
NickName = input.ReadString();
break;
}
case 24: {
DeviceType = (global::AxibugProtobuf.DeviceType) input.ReadEnum();
break;
}
}
}
}
@ -4533,7 +4622,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 +4661,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 +4689,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 +4718,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 +4729,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 +4756,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 +4785,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 +4812,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 +4838,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 +4870,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 +4904,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 +7384,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 +7421,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 +7450,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 +7459,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 +7484,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 +7505,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 +7524,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 +7544,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 +7569,10 @@ namespace AxibugProtobuf {
PlayerLocalJoyIdx = input.ReadInt32();
break;
}
case 24: {
PlayerLocalGamePadType = (global::AxibugProtobuf.GamePadType) input.ReadEnum();
break;
}
}
}
#endif
@ -7393,6 +7595,10 @@ namespace AxibugProtobuf {
PlayerLocalJoyIdx = input.ReadInt32();
break;
}
case 24: {
PlayerLocalGamePadType = (global::AxibugProtobuf.GamePadType) 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 //不在房间中,直接设置
{