master #31

Merged
sin365 merged 9 commits from Alienjack/AxibugEmuOnline:master into master 2024-08-30 18:18:47 +08:00
6 changed files with 975 additions and 522 deletions
Showing only changes of commit 4ca885d9fc - Show all commits

View File

@ -2,10 +2,9 @@
using AxibugEmuOnline.Server.Manager; using AxibugEmuOnline.Server.Manager;
using AxibugEmuOnline.Server.NetWork; using AxibugEmuOnline.Server.NetWork;
using AxibugProtobuf; using AxibugProtobuf;
using System;
using System.Net.Sockets; using System.Net.Sockets;
using System.Runtime.InteropServices; using System.Runtime.InteropServices;
using System.Xml; using static System.Runtime.CompilerServices.RuntimeHelpers;
namespace AxibugEmuOnline.Server namespace AxibugEmuOnline.Server
{ {
@ -24,8 +23,9 @@ namespace AxibugEmuOnline.Server
NetMsg.Instance.RegNetMsgEvent((int)CommandID.CmdRoomCreate, OnCmdRoomCreate); NetMsg.Instance.RegNetMsgEvent((int)CommandID.CmdRoomCreate, OnCmdRoomCreate);
NetMsg.Instance.RegNetMsgEvent((int)CommandID.CmdRoomJoin, OnCmdRoomJoin); NetMsg.Instance.RegNetMsgEvent((int)CommandID.CmdRoomJoin, OnCmdRoomJoin);
NetMsg.Instance.RegNetMsgEvent((int)CommandID.CmdRoomLeave, OnCmdRoomLeave); NetMsg.Instance.RegNetMsgEvent((int)CommandID.CmdRoomLeave, OnCmdRoomLeave);
NetMsg.Instance.RegNetMsgEvent((int)CommandID.CmdRoomHostPlayerUpdateStateRaw, OnHostPlayerUpdateStateRaw);
NetMsg.Instance.RegNetMsgEvent((int)CommandID.CmdRoomPlayerReady, OnRoomPlayerReady);
NetMsg.Instance.RegNetMsgEvent((int)CommandID.CmdRoomSingelPlayerInput, OnSingelPlayerInput); NetMsg.Instance.RegNetMsgEvent((int)CommandID.CmdRoomSingelPlayerInput, OnSingelPlayerInput);
roomTickARE = AppSrv.g_Tick.AddNewARE(TickManager.TickType.Interval_16MS); roomTickARE = AppSrv.g_Tick.AddNewARE(TickManager.TickType.Interval_16MS);
threadRoomTick = new Thread(UpdateLoopTick); threadRoomTick = new Thread(UpdateLoopTick);
threadRoomTick.Start(); threadRoomTick.Start();
@ -92,7 +92,6 @@ namespace AxibugEmuOnline.Server
RoomID = room.RoomID, RoomID = room.RoomID,
GameRomHash = room.RomHash, GameRomHash = room.RomHash,
GameState = room.GameState, GameState = room.GameState,
PlayerState = room.PlayerState,
ObsUserCount = 0,//TODO ObsUserCount = 0,//TODO
Player1UID = room.Player1_UID, Player1UID = room.Player1_UID,
Player2UID = room.Player2_UID, Player2UID = room.Player2_UID,
@ -145,26 +144,22 @@ namespace AxibugEmuOnline.Server
AppSrv.g_Log.Debug($"OnCmdRoomCreate "); AppSrv.g_Log.Debug($"OnCmdRoomCreate ");
ClientInfo _c = AppSrv.g_ClientMgr.GetClientForSocket(sk); ClientInfo _c = AppSrv.g_ClientMgr.GetClientForSocket(sk);
Protobuf_Room_Create msg = ProtoBufHelper.DeSerizlize<Protobuf_Room_Create>(reqData); Protobuf_Room_Create msg = ProtoBufHelper.DeSerizlize<Protobuf_Room_Create>(reqData);
Protobuf_Room_Create_RESP resp = new Protobuf_Room_Create_RESP();
Data_RoomData newRoom = new Data_RoomData(); Data_RoomData newRoom = new Data_RoomData();
newRoom.Init(GetNewRoomID(), msg.GameRomID, msg.GameRomHash); newRoom.Init(GetNewRoomID(), msg.GameRomID, msg.GameRomHash);
AddRoom(newRoom); AddRoom(newRoom);
ErrorCode joinErrcode = ErrorCode.ErrorOk;
//加入 //加入
if (!Join(newRoom.GameRomID, 0, _c, out ErrorCode joinErrcode)) if (newRoom.Join(msg.JoinPlayerIdx, _c, out joinErrcode, out bool bHadRoomStateChange))
{ {
AppSrv.g_ClientMgr.ClientSend(_c, (int)CommandID.CmdRoomCreate, (int)joinErrcode, new byte[1]);
return;
}
//创建成功下行 //创建成功下行
Protobuf_Room_Create_RESP resp = new Protobuf_Room_Create_RESP() resp.RoomMiniInfo = GetProtoDataRoom(newRoom);
{ }
RoomMiniInfo = GetProtoDataRoom(newRoom) AppSrv.g_ClientMgr.ClientSend(_c, (int)CommandID.CmdRoomCreate, (int)joinErrcode, ProtoBufHelper.Serizlize(resp));
};
AppSrv.g_ClientMgr.ClientSend(_c, (int)CommandID.CmdRoomCreate, (int)ErrorCode.ErrorOk, ProtoBufHelper.Serizlize(resp));
if (joinErrcode == ErrorCode.ErrorOk && bHadRoomStateChange)
SendRoomStateChange(newRoom);
} }
public void OnCmdRoomJoin(Socket sk, byte[] reqData) public void OnCmdRoomJoin(Socket sk, byte[] reqData)
@ -172,47 +167,87 @@ namespace AxibugEmuOnline.Server
AppSrv.g_Log.Debug($"OnCmdRoomJoin "); AppSrv.g_Log.Debug($"OnCmdRoomJoin ");
ClientInfo _c = AppSrv.g_ClientMgr.GetClientForSocket(sk); ClientInfo _c = AppSrv.g_ClientMgr.GetClientForSocket(sk);
Protobuf_Room_Join msg = ProtoBufHelper.DeSerizlize<Protobuf_Room_Join>(reqData); Protobuf_Room_Join msg = ProtoBufHelper.DeSerizlize<Protobuf_Room_Join>(reqData);
Protobuf_Room_Create_RESP resp = new Protobuf_Room_Create_RESP();
//加入 ErrorCode joinErrcode;
if (!Join(msg.RoomID, msg.PlayerNum, _c, out ErrorCode joinErrcode)) Data_RoomData room = GetRoomData(_c.RoomState.RoomID);
bool bHadRoomStateChange = false;
if (room == null)
joinErrcode = ErrorCode.ErrorRoomNotFound;
else
{ {
AppSrv.g_ClientMgr.ClientSend(_c, (int)CommandID.CmdRoomJoin, (int)joinErrcode, new byte[1]); //加入
return; if (room.Join(msg.PlayerNum, _c, out joinErrcode, out bHadRoomStateChange))
{
Data_RoomData roomData = GetRoomData(msg.RoomID);
resp.RoomMiniInfo = GetProtoDataRoom(roomData);
}
} }
Data_RoomData roomData = GetRoomData(msg.RoomID); AppSrv.g_ClientMgr.ClientSend(_c, (int)CommandID.CmdRoomJoin, (int)joinErrcode, ProtoBufHelper.Serizlize(resp));
//创建成功下行
Protobuf_Room_Join_RESP resp = new Protobuf_Room_Join_RESP()
{
RoomMiniInfo = GetProtoDataRoom(roomData)
};
AppSrv.g_ClientMgr.ClientSend(_c, (int)CommandID.CmdRoomJoin, (int)ErrorCode.ErrorOk, ProtoBufHelper.Serizlize(resp));
Protobuf_Room_MyRoom_State_Change(msg.RoomID); Protobuf_Room_MyRoom_State_Change(msg.RoomID);
if (joinErrcode == ErrorCode.ErrorOk && bHadRoomStateChange)
SendRoomStateChange(room);
} }
public void OnCmdRoomLeave(Socket sk, byte[] reqData) public void OnCmdRoomLeave(Socket sk, byte[] reqData)
{ {
AppSrv.g_Log.Debug($"OnCmdRoomJoin "); AppSrv.g_Log.Debug($"OnCmdRoomJoin ");
ClientInfo _c = AppSrv.g_ClientMgr.GetClientForSocket(sk); ClientInfo _c = AppSrv.g_ClientMgr.GetClientForSocket(sk);
Protobuf_Room_Leave msg = ProtoBufHelper.DeSerizlize<Protobuf_Room_Leave>(reqData); Protobuf_Room_Leave msg = ProtoBufHelper.DeSerizlize<Protobuf_Room_Leave>(reqData);
Protobuf_Room_Leave_RESP resp = new Protobuf_Room_Leave_RESP();
//加入 ErrorCode errcode;
if (!Leave(msg.RoomID, _c, out ErrorCode joinErrcode)) Data_RoomData room = GetRoomData(_c.RoomState.RoomID);
bool bHadRoomStateChange = false;
if (room == null)
errcode = ErrorCode.ErrorRoomNotFound;
else
{ {
AppSrv.g_ClientMgr.ClientSend(_c, (int)CommandID.CmdRoomLeave, (int)joinErrcode, new byte[1]); if (room.Leave(_c, out errcode, out bHadRoomStateChange))
return; {
resp.RoomID = msg.RoomID;
} }
}
//创建成功下行 AppSrv.g_ClientMgr.ClientSend(_c, (int)CommandID.CmdRoomLeave, (int)errcode, ProtoBufHelper.Serizlize(resp));
Protobuf_Room_Leave_RESP resp = new Protobuf_Room_Leave_RESP()
{
RoomID = msg.RoomID,
};
AppSrv.g_ClientMgr.ClientSend(_c, (int)CommandID.CmdRoomLeave, (int)ErrorCode.ErrorOk, ProtoBufHelper.Serizlize(resp));
Protobuf_Room_MyRoom_State_Change(msg.RoomID); Protobuf_Room_MyRoom_State_Change(msg.RoomID);
if (errcode == ErrorCode.ErrorOk && bHadRoomStateChange)
SendRoomStateChange(room);
} }
public void OnHostPlayerUpdateStateRaw(Socket sk, byte[] reqData)
{
ClientInfo _c = AppSrv.g_ClientMgr.GetClientForSocket(sk);
Protobuf_Room_HostPlayer_UpdateStateRaw msg = ProtoBufHelper.DeSerizlize<Protobuf_Room_HostPlayer_UpdateStateRaw>(reqData);
Protobuf_Room_HostPlayer_UpdateStateRaw_RESP resp = new Protobuf_Room_HostPlayer_UpdateStateRaw_RESP();
ErrorCode errcode = ErrorCode.ErrorOk;
Data_RoomData room = GetRoomData(_c.RoomState.RoomID);
if (room == null)
errcode = ErrorCode.ErrorRoomNotFound;
else if (room.GameState != RoomGameState.WaitRawUpdate)
errcode = ErrorCode.ErrorRoomCantDoCurrState;
AppSrv.g_ClientMgr.ClientSend(_c, (int)CommandID.CmdRoomHostPlayerUpdateStateRaw, (int)errcode, ProtoBufHelper.Serizlize(resp));
if (errcode == ErrorCode.ErrorOk)
{
room.SetLoadRaw(msg.LoadStateRaw, out bool bHadRoomStateChange);
if (bHadRoomStateChange)
SendRoomStateChange(room);
}
}
public void OnRoomPlayerReady(Socket sk, byte[] reqData)
{
ClientInfo _c = AppSrv.g_ClientMgr.GetClientForSocket(sk);
Protobuf_Room_Player_Ready msg = ProtoBufHelper.DeSerizlize<Protobuf_Room_Player_Ready>(reqData);
ErrorCode errcode = ErrorCode.ErrorOk;
Data_RoomData room = GetRoomData(_c.RoomState.RoomID);
if (room == null)
return;
}
public void OnSingelPlayerInput(Socket sk, byte[] reqData) public void OnSingelPlayerInput(Socket sk, byte[] reqData)
{ {
ClientInfo _c = AppSrv.g_ClientMgr.GetClientForSocket(sk); ClientInfo _c = AppSrv.g_ClientMgr.GetClientForSocket(sk);
@ -247,83 +282,41 @@ namespace AxibugEmuOnline.Server
} }
} }
#region public void SendRoomStateChange(Data_RoomData room)
/// <summary>
/// 进入房间
/// </summary>
/// <param name="RoomID"></param>
/// <param name="PlayerNum"></param>
/// <param name="_c"></param>
/// <param name="errcode"></param>
/// <returns></returns>
bool Join(int RoomID, int PlayerNum, ClientInfo _c, out ErrorCode errcode)
{ {
Data_RoomData room = GetRoomData(RoomID); List<ClientInfo> roomClient = room.GetAllPlayerClientList();
if (room == null) switch (room.GameState)
{ {
errcode = ErrorCode.ErrorRoomNotFound; case RoomGameState.WaitRawUpdate:
return false;
}
//玩家1
if (PlayerNum == 0)
{ {
if (room.PlayerState != RoomPlayerState.NonePlayerState) Protobuf_Room_WaitStep_RESP resp = new Protobuf_Room_WaitStep_RESP()
{ {
errcode = ErrorCode.ErrorRoomSlotReadlyHadPlayer; WaitStep = 0
return false; };
AppSrv.g_ClientMgr.ClientSend(roomClient, (int)CommandID.CmdRoomWaitStep, (int)ErrorCode.ErrorOk, ProtoBufHelper.Serizlize(resp));
} }
room.SetPlayerUID(0,_c); break;
} case RoomGameState.WaitReady:
//其他玩家
else
{ {
if (room.PlayerState != RoomPlayerState.OnlyP1) Protobuf_Room_WaitStep_RESP resp = new Protobuf_Room_WaitStep_RESP()
{ {
errcode = ErrorCode.ErrorRoomSlotReadlyHadPlayer; WaitStep = 1,
return false; LoadStateRaw = room.NextStateRaw
};
AppSrv.g_ClientMgr.ClientSend(roomClient, (int)CommandID.CmdRoomWaitStep, (int)ErrorCode.ErrorOk, ProtoBufHelper.Serizlize(resp));
} }
room.SetPlayerUID(1, _c); break;
} case RoomGameState.InOnlineGame:
//广播房间
SendRoomUpdateToAll(RoomID, 0);
errcode = ErrorCode.ErrorOk;
return true;
}
/// <summary>
/// 离开房间
/// </summary>
/// <param name="RoomID"></param>
/// <param name="_c"></param>
/// <param name="errcode"></param>
/// <returns></returns>
bool Leave(int RoomID, ClientInfo _c, out ErrorCode errcode)
{ {
Data_RoomData room = GetRoomData(RoomID); Protobuf_Room_WaitStep_RESP resp = new Protobuf_Room_WaitStep_RESP()
if (room == null)
{ {
errcode = ErrorCode.ErrorRoomNotFound; WaitStep = 2,
return false; };
AppSrv.g_ClientMgr.ClientSend(roomClient, (int)CommandID.CmdRoomWaitStep, (int)ErrorCode.ErrorOk, ProtoBufHelper.Serizlize(resp));
} }
break;
room.RemovePlayer(_c);
if (room.PlayerState == RoomPlayerState.NonePlayerState)
{
SendRoomUpdateToAll(RoomID, 1);
RemoveRoom(RoomID);
} }
else
{
//广播房间变化
SendRoomUpdateToAll(RoomID, 0);
} }
errcode = ErrorCode.ErrorOk;
return true;
}
#endregion
#region #region
void UpdateLoopTick() void UpdateLoopTick()
@ -341,7 +334,7 @@ namespace AxibugEmuOnline.Server
int roomid = mKeyRoomList[i]; int roomid = mKeyRoomList[i];
if (!mDictRoom.TryGetValue(roomid,out Data_RoomData room)) if (!mDictRoom.TryGetValue(roomid,out Data_RoomData room))
continue; continue;
if (room.GameState > RoomGameState.InGame) if (room.GameState < RoomGameState.InOnlineGame)
continue; continue;
//更新帧 //更新帧
room.TakeFrame(); room.TakeFrame();
@ -357,22 +350,59 @@ namespace AxibugEmuOnline.Server
public int RoomID { get; private set; } public int RoomID { get; private set; }
public int GameRomID { get; private set; } public int GameRomID { get; private set; }
public string RomHash { get; private set; } public string RomHash { get; private set; }
public bool bNeedLoadState { get; private set; }
public int LoadStateFrame { get; private set; }
public Google.Protobuf.ByteString LoadStateRaw { get; set; }
public long Player1_UID { get; private set; } public long Player1_UID { get; private set; }
public long Player2_UID { get; private set; } public long Player2_UID { get; private set; }
public long Player3_UID { get; private set; } public long Player3_UID { get; private set; }
public long Player4_UID { get; private set; } public long Player4_UID { get; private set; }
public Google.Protobuf.ByteString? NextStateRaw { get; private set; }
public bool[] PlayerReadyState { get; private set; } public bool[] PlayerReadyState { get; private set; }
public List<long> SynUIDs; public List<long> SynUIDs;
public RoomPlayerState PlayerState => getPlayerState(); //public RoomPlayerState PlayerState => getPlayerState();
public RoomGameState GameState; private RoomGameState mGameState;
public uint mCurrFrameId = 0; public uint mCurrFrameId = 0;
public ServerInputSnapShot mCurrInputData; public ServerInputSnapShot mCurrInputData;
public Queue<(uint, ServerInputSnapShot)> mInputQueue; public Queue<(uint, ServerInputSnapShot)> mInputQueue;
//TODO //TODO
public Dictionary<int, Queue<byte[]>> mDictPlayerIdx2SendQueue; public Dictionary<int, Queue<byte[]>> mDictPlayerIdx2SendQueue;
public RoomGameState GameState
{
get { return mGameState; }
set
{
if (mGameState != value)
{
mGameState = value;
switch (value)
{
case RoomGameState.WaitRawUpdate:
NextStateRaw = null;
break;
case RoomGameState.WaitReady:
Array.Fill<bool>(PlayerReadyState, false);
break;
}
}
}
}
bool IsAllReady()
{
bool Ready = true;
if (
(Player1_UID > 0 && !PlayerReadyState[0])
||
(Player2_UID > 0 && !PlayerReadyState[1])
||
(Player3_UID > 0 && !PlayerReadyState[2])
||
(Player4_UID > 0 && !PlayerReadyState[3])
)
{
Ready = false;
}
return Ready;
}
public void Init(int roomID, int gameRomID, string roomHash, bool bloadState = false) public void Init(int roomID, int gameRomID, string roomHash, bool bloadState = false)
{ {
@ -383,10 +413,12 @@ namespace AxibugEmuOnline.Server
Player2_UID = -1; Player2_UID = -1;
Player3_UID = -1; Player3_UID = -1;
Player4_UID = -1; Player4_UID = -1;
PlayerReadyState = new bool[4];
SynUIDs = new List<long>();//广播角色列表 SynUIDs = new List<long>();//广播角色列表
GameState = RoomGameState.NoneGameState; GameState = RoomGameState.NoneGameState;
mCurrInputData = new ServerInputSnapShot(); mCurrInputData = new ServerInputSnapShot();
mInputQueue = new Queue<(uint, ServerInputSnapShot)>(); mInputQueue = new Queue<(uint, ServerInputSnapShot)>();
mDictPlayerIdx2SendQueue = new Dictionary<int, Queue<byte[]>>();
} }
public void SetPlayerUID(int PlayerIdx,ClientInfo _c) public void SetPlayerUID(int PlayerIdx,ClientInfo _c)
@ -427,18 +459,28 @@ namespace AxibugEmuOnline.Server
return -1; return -1;
} }
RoomPlayerState getPlayerState() public bool GetPlayerUIDByIdx(int Idx, out long UID)
{ {
if (Player1_UID < 0 && Player2_UID < 0) UID = -1;
return RoomPlayerState.NonePlayerState; switch (Idx)
{
case 0: UID = Player1_UID; break;
case 1: UID = Player2_UID; break;
case 2: UID = Player3_UID; break;
case 3: UID = Player4_UID; break;
}
return UID != 0;
}
public bool GetPlayerClientByIdx(int Idx, out ClientInfo _c)
{
_c = null;
if (!GetPlayerUIDByIdx(Idx, out long UID))
return false;
if (Player1_UID < 0) if (!AppSrv.g_ClientMgr.GetClientByUID(UID, out _c))
return RoomPlayerState.OnlyP2; return false;
if (Player2_UID < 0) return true;
return RoomPlayerState.OnlyP1;
return RoomPlayerState.BothOnline;
} }
public List<long> GetAllPlayerUIDs() public List<long> GetAllPlayerUIDs()
@ -488,6 +530,38 @@ namespace AxibugEmuOnline.Server
} }
} }
public int GetPlayerCount()
{
int count = 0;
if (Player1_UID > 0) count++;
if (Player2_UID > 0) count++;
if (Player3_UID > 0) count++;
if (Player4_UID > 0) count++;
return count;
}
void StartNewTick()
{
mInputQueue.Clear();
mDictPlayerIdx2SendQueue.Clear();
List<ClientInfo> playerlist = GetAllPlayerClientList();
double maxNetDelay = 0;
for (int i = 0; i < playerlist.Count; i++)
{
ClientInfo player = playerlist[i];
maxNetDelay = Math.Max(maxNetDelay, player.NetDelay);
}
mCurrFrameId = 0;
int TaskFrameCount = (int)((maxNetDelay / 0.016f) + 5f);
for (int i = 0; i < TaskFrameCount; i++)
{
TakeFrame();
}
}
public void TakeFrame() public void TakeFrame()
{ {
mInputQueue.Enqueue((mCurrFrameId, mCurrInputData)); mInputQueue.Enqueue((mCurrFrameId, mCurrInputData));
@ -502,14 +576,143 @@ namespace AxibugEmuOnline.Server
while (mInputQueue.Count > 0) while (mInputQueue.Count > 0)
{ {
(uint frameId, ServerInputSnapShot inputdata) data = mInputQueue.Dequeue(); (uint frameId, ServerInputSnapShot inputdata) data = mInputQueue.Dequeue();
Protobuf_Room_Syn_RoomFrameAllInput resp = new Protobuf_Room_Syn_RoomFrameAllInput() Protobuf_Room_Syn_RoomFrameAllInputData resp = new Protobuf_Room_Syn_RoomFrameAllInputData()
{ {
FrameID = data.frameId, FrameID = data.frameId,
InputData = data.inputdata.all InputData = data.inputdata.all
}; };
AppSrv.g_ClientMgr.ClientSendALL((int)CommandID.CmdRoomSyn, (int)ErrorCode.ErrorOk, ProtoBufHelper.Serizlize(resp)); AppSrv.g_ClientMgr.ClientSend(SynUIDs,(int)CommandID.CmdRoomSynPlayerInput, (int)ErrorCode.ErrorOk, ProtoBufHelper.Serizlize(resp));
} }
} }
#region
/// <summary>
/// 进入房间
/// </summary>
/// <param name="RoomID"></param>
/// <param name="PlayerNum"></param>
/// <param name="_c"></param>
/// <param name="errcode"></param>
/// <returns></returns>
public bool Join(int PlayerNum, ClientInfo _c, out ErrorCode errcode,out bool bHadRoomStateChange)
{
bHadRoomStateChange = false;
int oldPlayerCount = GetPlayerCount();
if (GetPlayerUIDByIdx(PlayerNum, out long hadUID))
{
errcode = ErrorCode.ErrorRoomSlotReadlyHadPlayer;
return false;
}
SetPlayerUID(PlayerNum, _c);
int newPlayerCount = GetPlayerCount();
errcode = ErrorCode.ErrorOk;
bHadRoomStateChange = CheckRoomStateChange(oldPlayerCount, newPlayerCount);
return true;
}
/// <summary>
/// 离开房间
/// </summary>
/// <param name="RoomID"></param>
/// <param name="_c"></param>
/// <param name="errcode"></param>
/// <returns></returns>
public bool Leave(ClientInfo _c, out ErrorCode errcode, out bool bHadRoomStateChange)
{
int oldPlayerCount = GetPlayerCount();
RemovePlayer(_c);
int newPlayerCount = GetPlayerCount();
errcode = ErrorCode.ErrorOk;
bHadRoomStateChange = CheckRoomStateChange(oldPlayerCount, newPlayerCount);
return true;
}
#endregion
bool CheckRoomStateChange(int oldPlayerCount, int newPlayerCount)
{
bool bChanged = false;
bool bNewToOnlyHost = (oldPlayerCount != 1 && newPlayerCount == 1);
bool bMorePlayer = (oldPlayerCount < 2 && newPlayerCount >= 2) || (newPlayerCount > oldPlayerCount);
switch (this.GameState)
{
case RoomGameState.NoneGameState:
if (bNewToOnlyHost)
{
this.GameState = RoomGameState.OnlyHost;
bChanged = true;
}
break;
case RoomGameState.OnlyHost:
if (bMorePlayer)//加入更多玩家
{
this.GameState = RoomGameState.WaitRawUpdate;
bChanged = true;
break;
}
break;
case RoomGameState.WaitRawUpdate:
if (bMorePlayer)//加入更多玩家
{
this.GameState = RoomGameState.WaitRawUpdate;
bChanged = true;
break;
}
if (NextStateRaw != null)//已经上传即时存档
{
this.GameState = RoomGameState.WaitReady;
bChanged = true;
break;
}
break;
case RoomGameState.WaitReady:
if (bMorePlayer)//加入更多玩家
{
this.GameState = RoomGameState.WaitRawUpdate;
bChanged = true;
break;
}
//没有为准备的
bool bAllReady = IsAllReady();
if (bAllReady)
{
//新开Tick
StartNewTick();
this.GameState = RoomGameState.InOnlineGame;
bChanged = true;
break;
}
break;
case RoomGameState.Pause:
if (bMorePlayer)//加入更多玩家
{
this.GameState = RoomGameState.WaitRawUpdate;
bChanged = true;
break;
}
break;
case RoomGameState.InOnlineGame:
if (bMorePlayer)//加入更多玩家
{
this.GameState = RoomGameState.WaitRawUpdate;
//TODO 服务器Tick提前跑帧
bChanged = true;
break;
}
break;
}
return bChanged;
}
public void SetLoadRaw(Google.Protobuf.ByteString NextStateRaw, out bool bHadRoomStateChange)
{
int oldPlayerCount = GetPlayerCount();
this.NextStateRaw = NextStateRaw;
int newPlayerCount = GetPlayerCount();
bHadRoomStateChange = CheckRoomStateChange(oldPlayerCount, newPlayerCount);
}
} }
[StructLayout(LayoutKind.Explicit)] [StructLayout(LayoutKind.Explicit)]

View File

@ -38,59 +38,58 @@ namespace AxibugProtobuf {
"b3RvYnVmLkxvZ2luUmVzdWx0U3RhdHVzEgsKA1VJRBgGIAEoAyIUChJQcm90", "b3RvYnVmLkxvZ2luUmVzdWx0U3RhdHVzEgsKA1VJRBgGIAEoAyIUChJQcm90",
"b2J1Zl9Sb29tX0xpc3QiWwoXUHJvdG9idWZfUm9vbV9MaXN0X1JFU1ASQAoQ", "b2J1Zl9Sb29tX0xpc3QiWwoXUHJvdG9idWZfUm9vbV9MaXN0X1JFU1ASQAoQ",
"Um9vbU1pbmlJbmZvTGlzdBgBIAMoCzImLkF4aWJ1Z1Byb3RvYnVmLlByb3Rv", "Um9vbU1pbmlJbmZvTGlzdBgBIAMoCzImLkF4aWJ1Z1Byb3RvYnVmLlByb3Rv",
"YnVmX1Jvb21fTWluaUluZm8irAIKFlByb3RvYnVmX1Jvb21fTWluaUluZm8S", "YnVmX1Jvb21fTWluaUluZm8i9gEKFlByb3RvYnVmX1Jvb21fTWluaUluZm8S",
"DgoGUm9vbUlEGAEgASgFEhEKCUdhbWVSb21JRBgCIAEoBRITCgtHYW1lUm9t", "DgoGUm9vbUlEGAEgASgFEhEKCUdhbWVSb21JRBgCIAEoBRITCgtHYW1lUm9t",
"SGFzaBgDIAEoCRI0CgtQbGF5ZXJTdGF0ZRgEIAEoDjIfLkF4aWJ1Z1Byb3Rv", "SGFzaBgDIAEoCRIwCglHYW1lU3RhdGUYBSABKA4yHS5BeGlidWdQcm90b2J1",
"YnVmLlJvb21QbGF5ZXJTdGF0ZRIwCglHYW1lU3RhdGUYBSABKA4yHS5BeGli", "Zi5Sb29tR2FtZVN0YXRlEhQKDE9ic1VzZXJDb3VudBgGIAEoBRITCgtQbGF5",
"dWdQcm90b2J1Zi5Sb29tR2FtZVN0YXRlEhQKDE9ic1VzZXJDb3VudBgGIAEo", "ZXIxX1VJRBgHIAEoAxIYChBQbGF5ZXIxX05pY2tOYW1lGAggASgJEhMKC1Bs",
"BRITCgtQbGF5ZXIxX1VJRBgHIAEoAxIYChBQbGF5ZXIxX05pY2tOYW1lGAgg", "YXllcjJfVUlEGAkgASgDEhgKEFBsYXllcjJfTmlja05hbWUYCiABKAkibQoZ",
"ASgJEhMKC1BsYXllcjJfVUlEGAkgASgDEhgKEFBsYXllcjJfTmlja05hbWUY", "UHJvdG9idWZfUm9vbV9VcGRhdGVfUkVTUBISCgpVcGRhdGVUeXBlGAEgASgF",
"CiABKAkibQoZUHJvdG9idWZfUm9vbV9VcGRhdGVfUkVTUBISCgpVcGRhdGVU", "EjwKDFJvb21NaW5pSW5mbxgCIAEoCzImLkF4aWJ1Z1Byb3RvYnVmLlByb3Rv",
"eXBlGAEgASgFEjwKDFJvb21NaW5pSW5mbxgCIAEoCzImLkF4aWJ1Z1Byb3Rv", "YnVmX1Jvb21fTWluaUluZm8iSwoVUHJvdG9idWZfU2NyZW5uX0ZyYW1lEg4K",
"YnVmLlByb3RvYnVmX1Jvb21fTWluaUluZm8iSwoVUHJvdG9idWZfU2NyZW5u", "BlJvb21JRBgBIAEoBRIPCgdGcmFtZUlEGAIgASgFEhEKCVJhd0JpdG1hcBgD",
"X0ZyYW1lEg4KBlJvb21JRBgBIAEoBRIPCgdGcmFtZUlEGAIgASgFEhEKCVJh", "IAEoDCJJCiNQcm90b2J1Zl9Sb29tX1NpbmdsZVBsYXllcklucHV0RGF0YRIP",
"d0JpdG1hcBgDIAEoDCJJCiNQcm90b2J1Zl9Sb29tX1NpbmdsZVBsYXllcklu", "CgdGcmFtZUlEGAEgASgNEhEKCUlucHV0RGF0YRgCIAEoDSJNCidQcm90b2J1",
"cHV0RGF0YRIPCgdGcmFtZUlEGAEgASgNEhEKCUlucHV0RGF0YRgCIAEoDSJJ", "Zl9Sb29tX1N5bl9Sb29tRnJhbWVBbGxJbnB1dERhdGESDwoHRnJhbWVJRBgB",
"CiNQcm90b2J1Zl9Sb29tX1N5bl9Sb29tRnJhbWVBbGxJbnB1dBIPCgdGcmFt", "IAEoDRIRCglJbnB1dERhdGEYAiABKAQiVQoUUHJvdG9idWZfUm9vbV9DcmVh",
"ZUlEGAEgASgNEhEKCUlucHV0RGF0YRgCIAEoBCI+ChRQcm90b2J1Zl9Sb29t", "dGUSEQoJR2FtZVJvbUlEGAEgASgFEhMKC0dhbWVSb21IYXNoGAIgASgJEhUK",
"X0NyZWF0ZRIRCglHYW1lUm9tSUQYASABKAUSEwoLR2FtZVJvbUhhc2gYAiAB", "DUpvaW5QbGF5ZXJJZHgYAyABKAUiWQoZUHJvdG9idWZfUm9vbV9DcmVhdGVf",
"KAkiWQoZUHJvdG9idWZfUm9vbV9DcmVhdGVfUkVTUBI8CgxSb29tTWluaUlu", "UkVTUBI8CgxSb29tTWluaUluZm8YASABKAsyJi5BeGlidWdQcm90b2J1Zi5Q",
"Zm8YASABKAsyJi5BeGlidWdQcm90b2J1Zi5Qcm90b2J1Zl9Sb29tX01pbmlJ", "cm90b2J1Zl9Sb29tX01pbmlJbmZvIjcKElByb3RvYnVmX1Jvb21fSm9pbhIO",
"bmZvIjcKElByb3RvYnVmX1Jvb21fSm9pbhIOCgZSb29tSUQYASABKAUSEQoJ", "CgZSb29tSUQYASABKAUSEQoJUGxheWVyTnVtGAIgASgFIlcKF1Byb3RvYnVm",
"UGxheWVyTnVtGAIgASgFIlcKF1Byb3RvYnVmX1Jvb21fSm9pbl9SRVNQEjwK", "X1Jvb21fSm9pbl9SRVNQEjwKDFJvb21NaW5pSW5mbxgBIAEoCzImLkF4aWJ1",
"DFJvb21NaW5pSW5mbxgBIAEoCzImLkF4aWJ1Z1Byb3RvYnVmLlByb3RvYnVm", "Z1Byb3RvYnVmLlByb3RvYnVmX1Jvb21fTWluaUluZm8iJQoTUHJvdG9idWZf",
"X1Jvb21fTWluaUluZm8iJQoTUHJvdG9idWZfUm9vbV9MZWF2ZRIOCgZSb29t", "Um9vbV9MZWF2ZRIOCgZSb29tSUQYASABKAUiKgoYUHJvdG9idWZfUm9vbV9M",
"SUQYASABKAUiKgoYUHJvdG9idWZfUm9vbV9MZWF2ZV9SRVNQEg4KBlJvb21J", "ZWF2ZV9SRVNQEg4KBlJvb21JRBgBIAEoBSJhCiFQcm90b2J1Zl9Sb29tX015",
"RBgBIAEoBSJhCiFQcm90b2J1Zl9Sb29tX015Um9vbV9TdGF0ZV9DaGFuZ2US", "Um9vbV9TdGF0ZV9DaGFuZ2USPAoMUm9vbU1pbmlJbmZvGAEgASgLMiYuQXhp",
"PAoMUm9vbU1pbmlJbmZvGAEgASgLMiYuQXhpYnVnUHJvdG9idWYuUHJvdG9i", "YnVnUHJvdG9idWYuUHJvdG9idWZfUm9vbV9NaW5pSW5mbyJFChtQcm90b2J1",
"dWZfUm9vbV9NaW5pSW5mbyIvChtQcm90b2J1Zl9Sb29tX1dhaXRTdGVwX1JF", "Zl9Sb29tX1dhaXRTdGVwX1JFU1ASEAoIV2FpdFN0ZXAYASABKAUSFAoMTG9h",
"U1ASEAoIV2FpdFN0ZXAYASABKAUiUwonUHJvdG9idWZfUm9vbV9Ib3N0UGxh", "ZFN0YXRlUmF3GAIgASgMIj8KJ1Byb3RvYnVmX1Jvb21fSG9zdFBsYXllcl9V",
"eWVyX1VwZGF0ZVN0YXRlUmF3EhIKClJlYWR5RnJhbWUYASABKAUSFAoMTG9h", "cGRhdGVTdGF0ZVJhdxIUCgxMb2FkU3RhdGVSYXcYASABKAwiLgosUHJvdG9i",
"ZFN0YXRlUmF3GAIgASgMIhwKGlByb3RvYnVmX1Jvb21fUGxheWVyX1JlYWR5", "dWZfUm9vbV9Ib3N0UGxheWVyX1VwZGF0ZVN0YXRlUmF3X1JFU1AiHAoaUHJv",
"Ko4DCglDb21tYW5kSUQSDgoKQ01EX0RFRkFVTBAAEgwKCENNRF9QSU5HEAES", "dG9idWZfUm9vbV9QbGF5ZXJfUmVhZHkqmgMKCUNvbW1hbmRJRBIOCgpDTURf",
"DAoIQ01EX1BPTkcQAhIOCglDTURfTE9HSU4Q0Q8SEAoLQ01EX0NIQVRNU0cQ", "REVGQVVMEAASDAoIQ01EX1BJTkcQARIMCghDTURfUE9ORxACEg4KCUNNRF9M",
"oR8SEgoNQ01EX1Jvb21fTGlzdBCJJxIZChRDTURfUm9vbV9MaXN0X1VwZGF0", "T0dJThDRDxIQCgtDTURfQ0hBVE1TRxChHxISCg1DTURfUm9vbV9MaXN0EIkn",
"ZRCKJxIUCg9DTURfUm9vbV9DcmVhdGUQ7ScSEgoNQ01EX1Jvb21fSm9pbhDx", "EhkKFENNRF9Sb29tX0xpc3RfVXBkYXRlEIonEhQKD0NNRF9Sb29tX0NyZWF0",
"JxITCg5DTURfUm9vbV9MZWF2ZRDyJxIiCh1DTURfUm9vbV9NeVJvb21fU3Rh", "ZRDtJxISCg1DTURfUm9vbV9Kb2luEPEnEhMKDkNNRF9Sb29tX0xlYXZlEPIn",
"dGVfQ2hhbmdlZBD2JxIWChFDTURfUm9vbV9XYWl0U3RlcBDRKBInCiJDTURf", "EiIKHUNNRF9Sb29tX015Um9vbV9TdGF0ZV9DaGFuZ2VkEPYnEhYKEUNNRF9S",
"Um9vbV9Ib3N0UGxheWVyX1VwZGF0ZVN0YXRlUmF3ENQoEhoKFUNNRF9Sb29t", "b29tX1dhaXRTdGVwENEoEicKIkNNRF9Sb29tX0hvc3RQbGF5ZXJfVXBkYXRl",
"X1BsYXllcl9SZWFkeRDYKBIgChtDTURfUm9vbV9TaW5nZWxfUGxheWVySW5w", "U3RhdGVSYXcQ1CgSGgoVQ01EX1Jvb21fUGxheWVyX1JlYWR5ENgoEiAKG0NN",
"dXQQ+i4SEQoMQ01EX1JPT01fU1lOEP8uEg8KCkNNRF9TY3JlZW4Q2TYqbAoJ", "RF9Sb29tX1NpbmdlbF9QbGF5ZXJJbnB1dBD6LhIdChhDTURfUk9PTV9TWU5f",
"RXJyb3JDb2RlEhAKDEVSUk9SX0RFRkFVTBAAEgwKCEVSUk9SX09LEAESGAoU", "UGxheWVySW5wdXQQ/y4SDwoKQ01EX1NjcmVlbhDZNiqPAQoJRXJyb3JDb2Rl",
"RVJST1JfUk9PTV9OT1RfRk9VTkQQChIlCiFFUlJPUl9ST09NX1NMT1RfUkVB", "EhAKDEVSUk9SX0RFRkFVTBAAEgwKCEVSUk9SX09LEAESGAoURVJST1JfUk9P",
"RExZX0hBRF9QTEFZRVIQCyocCglMb2dpblR5cGUSDwoLQmFzZURlZmF1bHQQ", "TV9OT1RfRk9VTkQQChIlCiFFUlJPUl9ST09NX1NMT1RfUkVBRExZX0hBRF9Q",
"ACpLCgpEZXZpY2VUeXBlEhYKEkRldmljZVR5cGVfRGVmYXVsdBAAEgYKAlBD", "TEFZRVIQCxIhCh1FUlJPUl9ST09NX0NBTlRfRE9fQ1VSUl9TVEFURRAyKhwK",
"EAESCwoHQW5kcm9pZBACEgcKA0lPUxADEgcKA1BTVhAEKk8KD1Jvb21QbGF5", "CUxvZ2luVHlwZRIPCgtCYXNlRGVmYXVsdBAAKksKCkRldmljZVR5cGUSFgoS",
"ZXJTdGF0ZRIUChBOb25lX1BsYXllclN0YXRlEAASCgoGT25seVAxEAESCgoG", "RGV2aWNlVHlwZV9EZWZhdWx0EAASBgoCUEMQARILCgdBbmRyb2lkEAISBwoD",
"T25seVAyEAISDgoKQm90aE9ubGluZRADKnsKDVJvb21HYW1lU3RhdGUSEgoO", "SU9TEAMSBwoDUFNWEAQqcAoNUm9vbUdhbWVTdGF0ZRISCg5Ob25lX0dhbWVT",
"Tm9uZV9HYW1lU3RhdGUQABIMCghPbmx5SG9zdBABEg8KC1JlYWR5U3RlcF8w", "dGF0ZRAAEgwKCE9ubHlIb3N0EAESEQoNV2FpdFJhd1VwZGF0ZRACEg0KCVdh",
"EAISDwoLUmVhZHlTdGVwXzEQAxIPCgtSZWFkeVN0ZXBfMhAEEgkKBVBhdXNl", "aXRSZWFkeRADEgkKBVBhdXNlEAQSEAoMSW5PbmxpbmVHYW1lEAUqTgoRTG9n",
"EAUSCgoGSW5HYW1lEAYqTgoRTG9naW5SZXN1bHRTdGF0dXMSIQodTG9naW5S", "aW5SZXN1bHRTdGF0dXMSIQodTG9naW5SZXN1bHRTdGF0dXNfQmFzZURlZmF1",
"ZXN1bHRTdGF0dXNfQmFzZURlZmF1bHQQABIGCgJPSxABEg4KCkFjY291bnRF", "bHQQABIGCgJPSxABEg4KCkFjY291bnRFcnIQAkICSAFiBnByb3RvMw=="));
"cnIQAkICSAFiBnByb3RvMw=="));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { }, 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.RoomPlayerState), 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.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), 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_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), new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Ping), global::AxibugProtobuf.Protobuf_Ping.Parser, new[]{ "Seed" }, null, null, null, null),
@ -99,20 +98,21 @@ namespace AxibugProtobuf {
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Login_RESP), global::AxibugProtobuf.Protobuf_Login_RESP.Parser, new[]{ "DeviceUUID", "Token", "LastLoginDate", "RegDate", "Status", "UID" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Login_RESP), global::AxibugProtobuf.Protobuf_Login_RESP.Parser, new[]{ "DeviceUUID", "Token", "LastLoginDate", "RegDate", "Status", "UID" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_List), global::AxibugProtobuf.Protobuf_Room_List.Parser, null, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_List), 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_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", "PlayerState", "GameState", "ObsUserCount", "Player1UID", "Player1NickName", "Player2UID", "Player2NickName" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_MiniInfo), global::AxibugProtobuf.Protobuf_Room_MiniInfo.Parser, new[]{ "RoomID", "GameRomID", "GameRomHash", "GameState", "ObsUserCount", "Player1UID", "Player1NickName", "Player2UID", "Player2NickName" }, 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_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_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), new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_SinglePlayerInputData), global::AxibugProtobuf.Protobuf_Room_SinglePlayerInputData.Parser, new[]{ "FrameID", "InputData" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_Syn_RoomFrameAllInput), global::AxibugProtobuf.Protobuf_Room_Syn_RoomFrameAllInput.Parser, new[]{ "FrameID", "InputData" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_Syn_RoomFrameAllInputData), global::AxibugProtobuf.Protobuf_Room_Syn_RoomFrameAllInputData.Parser, new[]{ "FrameID", "InputData" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_Create), global::AxibugProtobuf.Protobuf_Room_Create.Parser, new[]{ "GameRomID", "GameRomHash" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_Create), global::AxibugProtobuf.Protobuf_Room_Create.Parser, new[]{ "GameRomID", "GameRomHash", "JoinPlayerIdx" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_Create_RESP), global::AxibugProtobuf.Protobuf_Room_Create_RESP.Parser, new[]{ "RoomMiniInfo" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_Create_RESP), global::AxibugProtobuf.Protobuf_Room_Create_RESP.Parser, new[]{ "RoomMiniInfo" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_Join), global::AxibugProtobuf.Protobuf_Room_Join.Parser, new[]{ "RoomID", "PlayerNum" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_Join), global::AxibugProtobuf.Protobuf_Room_Join.Parser, new[]{ "RoomID", "PlayerNum" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_Join_RESP), global::AxibugProtobuf.Protobuf_Room_Join_RESP.Parser, new[]{ "RoomMiniInfo" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_Join_RESP), global::AxibugProtobuf.Protobuf_Room_Join_RESP.Parser, new[]{ "RoomMiniInfo" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_Leave), global::AxibugProtobuf.Protobuf_Room_Leave.Parser, new[]{ "RoomID" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_Leave), global::AxibugProtobuf.Protobuf_Room_Leave.Parser, new[]{ "RoomID" }, null, null, null, null),
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_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_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_WaitStep_RESP), global::AxibugProtobuf.Protobuf_Room_WaitStep_RESP.Parser, new[]{ "WaitStep" }, 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[]{ "ReadyFrame", "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),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_HostPlayer_UpdateStateRaw_RESP), global::AxibugProtobuf.Protobuf_Room_HostPlayer_UpdateStateRaw_RESP.Parser, null, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_Player_Ready), global::AxibugProtobuf.Protobuf_Room_Player_Ready.Parser, null, null, null, null, null) new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_Player_Ready), global::AxibugProtobuf.Protobuf_Room_Player_Ready.Parser, null, null, null, null, null)
})); }));
} }
@ -154,7 +154,7 @@ namespace AxibugProtobuf {
/// </summary> /// </summary>
[pbr::OriginalName("CMD_Room_Create")] CmdRoomCreate = 5101, [pbr::OriginalName("CMD_Room_Create")] CmdRoomCreate = 5101,
/// <summary> /// <summary>
///房间加入 对应 Protobuf_Room_Join | Protobuf_Room_Join_RESP ///房间加入 对应 Protobuf_Room_Join | Protobuf_Room_Join_RESP //建议Join之前按照房间信息提前下载并读取本地Rom
/// </summary> /// </summary>
[pbr::OriginalName("CMD_Room_Join")] CmdRoomJoin = 5105, [pbr::OriginalName("CMD_Room_Join")] CmdRoomJoin = 5105,
/// <summary> /// <summary>
@ -188,7 +188,7 @@ namespace AxibugProtobuf {
/// </summary> /// </summary>
[pbr::OriginalName("CMD_Room_WaitStep")] CmdRoomWaitStep = 5201, [pbr::OriginalName("CMD_Room_WaitStep")] CmdRoomWaitStep = 5201,
/// <summary> /// <summary>
///服务器房间准备和开始标识 下行 Protobuf_Room_HostPlayer_UpdateStateRaw ///主机玩家上传即时存档 上行 | 下行 对应 Protobuf_Room_HostPlayer_UpdateStateRaw | Protobuf_Room_HostPlayer_UpdateStateRaw_RESP
/// </summary> /// </summary>
[pbr::OriginalName("CMD_Room_HostPlayer_UpdateStateRaw")] CmdRoomHostPlayerUpdateStateRaw = 5204, [pbr::OriginalName("CMD_Room_HostPlayer_UpdateStateRaw")] CmdRoomHostPlayerUpdateStateRaw = 5204,
/// <summary> /// <summary>
@ -200,9 +200,9 @@ namespace AxibugProtobuf {
/// </summary> /// </summary>
[pbr::OriginalName("CMD_Room_Singel_PlayerInput")] CmdRoomSingelPlayerInput = 6010, [pbr::OriginalName("CMD_Room_Singel_PlayerInput")] CmdRoomSingelPlayerInput = 6010,
/// <summary> /// <summary>
///单个玩家操作同步上行 对应 Protobuf_Room_Syn_RoomFrameAllInput ///单个玩家操作同步下行 对应 Protobuf_Room_Syn_RoomFrameAllInputData
/// </summary> /// </summary>
[pbr::OriginalName("CMD_ROOM_SYN")] CmdRoomSyn = 6015, [pbr::OriginalName("CMD_ROOM_SYN_PlayerInput")] CmdRoomSynPlayerInput = 6015,
/// <summary> /// <summary>
///画面采集 ///画面采集
/// </summary> /// </summary>
@ -226,6 +226,10 @@ namespace AxibugProtobuf {
///加入目标位置已经有人 ///加入目标位置已经有人
/// </summary> /// </summary>
[pbr::OriginalName("ERROR_ROOM_SLOT_READLY_HAD_PLAYER")] ErrorRoomSlotReadlyHadPlayer = 11, [pbr::OriginalName("ERROR_ROOM_SLOT_READLY_HAD_PLAYER")] ErrorRoomSlotReadlyHadPlayer = 11,
/// <summary>
///当前房间状态不允许本操作
/// </summary>
[pbr::OriginalName("ERROR_ROOM_CANT_DO_CURR_STATE")] ErrorRoomCantDoCurrState = 50,
} }
public enum LoginType { public enum LoginType {
@ -246,25 +250,6 @@ namespace AxibugProtobuf {
[pbr::OriginalName("PSV")] Psv = 4, [pbr::OriginalName("PSV")] Psv = 4,
} }
public enum RoomPlayerState {
/// <summary>
///缺省
/// </summary>
[pbr::OriginalName("None_PlayerState")] NonePlayerState = 0,
/// <summary>
///仅P1
/// </summary>
[pbr::OriginalName("OnlyP1")] OnlyP1 = 1,
/// <summary>
///仅P2
/// </summary>
[pbr::OriginalName("OnlyP2")] OnlyP2 = 2,
/// <summary>
///玩家都在
/// </summary>
[pbr::OriginalName("BothOnline")] BothOnline = 3,
}
public enum RoomGameState { public enum RoomGameState {
/// <summary> /// <summary>
///缺省 ///缺省
@ -275,25 +260,21 @@ namespace AxibugProtobuf {
/// </summary> /// </summary>
[pbr::OriginalName("OnlyHost")] OnlyHost = 1, [pbr::OriginalName("OnlyHost")] OnlyHost = 1,
/// <summary> /// <summary>
///ReadyStep0 ///等待即时存档
/// </summary> /// </summary>
[pbr::OriginalName("ReadyStep_0")] ReadyStep0 = 2, [pbr::OriginalName("WaitRawUpdate")] WaitRawUpdate = 2,
/// <summary> /// <summary>
///ReadyStep1 ///等待Ready
/// </summary> /// </summary>
[pbr::OriginalName("ReadyStep_1")] ReadyStep1 = 3, [pbr::OriginalName("WaitReady")] WaitReady = 3,
/// <summary>
///ReadyStep2
/// </summary>
[pbr::OriginalName("ReadyStep_2")] ReadyStep2 = 4,
/// <summary> /// <summary>
///暂停 ///暂停
/// </summary> /// </summary>
[pbr::OriginalName("Pause")] Pause = 5, [pbr::OriginalName("Pause")] Pause = 4,
/// <summary> /// <summary>
///游戏 ///联机
/// </summary> /// </summary>
[pbr::OriginalName("InGame")] InGame = 6, [pbr::OriginalName("InOnlineGame")] InOnlineGame = 5,
} }
public enum LoginResultStatus { public enum LoginResultStatus {
@ -2089,7 +2070,6 @@ namespace AxibugProtobuf {
roomID_ = other.roomID_; roomID_ = other.roomID_;
gameRomID_ = other.gameRomID_; gameRomID_ = other.gameRomID_;
gameRomHash_ = other.gameRomHash_; gameRomHash_ = other.gameRomHash_;
playerState_ = other.playerState_;
gameState_ = other.gameState_; gameState_ = other.gameState_;
obsUserCount_ = other.obsUserCount_; obsUserCount_ = other.obsUserCount_;
player1UID_ = other.player1UID_; player1UID_ = other.player1UID_;
@ -2143,20 +2123,6 @@ namespace AxibugProtobuf {
} }
} }
/// <summary>Field number for the "PlayerState" field.</summary>
public const int PlayerStateFieldNumber = 4;
private global::AxibugProtobuf.RoomPlayerState playerState_ = global::AxibugProtobuf.RoomPlayerState.NonePlayerState;
/// <summary>
///玩家加入状态
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public global::AxibugProtobuf.RoomPlayerState PlayerState {
get { return playerState_; }
set {
playerState_ = value;
}
}
/// <summary>Field number for the "GameState" field.</summary> /// <summary>Field number for the "GameState" field.</summary>
public const int GameStateFieldNumber = 5; public const int GameStateFieldNumber = 5;
private global::AxibugProtobuf.RoomGameState gameState_ = global::AxibugProtobuf.RoomGameState.NoneGameState; private global::AxibugProtobuf.RoomGameState gameState_ = global::AxibugProtobuf.RoomGameState.NoneGameState;
@ -2257,7 +2223,6 @@ namespace AxibugProtobuf {
if (RoomID != other.RoomID) return false; if (RoomID != other.RoomID) return false;
if (GameRomID != other.GameRomID) return false; if (GameRomID != other.GameRomID) return false;
if (GameRomHash != other.GameRomHash) return false; if (GameRomHash != other.GameRomHash) return false;
if (PlayerState != other.PlayerState) return false;
if (GameState != other.GameState) return false; if (GameState != other.GameState) return false;
if (ObsUserCount != other.ObsUserCount) return false; if (ObsUserCount != other.ObsUserCount) return false;
if (Player1UID != other.Player1UID) return false; if (Player1UID != other.Player1UID) return false;
@ -2273,7 +2238,6 @@ namespace AxibugProtobuf {
if (RoomID != 0) hash ^= RoomID.GetHashCode(); if (RoomID != 0) hash ^= RoomID.GetHashCode();
if (GameRomID != 0) hash ^= GameRomID.GetHashCode(); if (GameRomID != 0) hash ^= GameRomID.GetHashCode();
if (GameRomHash.Length != 0) hash ^= GameRomHash.GetHashCode(); if (GameRomHash.Length != 0) hash ^= GameRomHash.GetHashCode();
if (PlayerState != global::AxibugProtobuf.RoomPlayerState.NonePlayerState) hash ^= PlayerState.GetHashCode();
if (GameState != global::AxibugProtobuf.RoomGameState.NoneGameState) hash ^= GameState.GetHashCode(); if (GameState != global::AxibugProtobuf.RoomGameState.NoneGameState) hash ^= GameState.GetHashCode();
if (ObsUserCount != 0) hash ^= ObsUserCount.GetHashCode(); if (ObsUserCount != 0) hash ^= ObsUserCount.GetHashCode();
if (Player1UID != 0L) hash ^= Player1UID.GetHashCode(); if (Player1UID != 0L) hash ^= Player1UID.GetHashCode();
@ -2308,10 +2272,6 @@ namespace AxibugProtobuf {
output.WriteRawTag(26); output.WriteRawTag(26);
output.WriteString(GameRomHash); output.WriteString(GameRomHash);
} }
if (PlayerState != global::AxibugProtobuf.RoomPlayerState.NonePlayerState) {
output.WriteRawTag(32);
output.WriteEnum((int) PlayerState);
}
if (GameState != global::AxibugProtobuf.RoomGameState.NoneGameState) { if (GameState != global::AxibugProtobuf.RoomGameState.NoneGameState) {
output.WriteRawTag(40); output.WriteRawTag(40);
output.WriteEnum((int) GameState); output.WriteEnum((int) GameState);
@ -2357,10 +2317,6 @@ namespace AxibugProtobuf {
output.WriteRawTag(26); output.WriteRawTag(26);
output.WriteString(GameRomHash); output.WriteString(GameRomHash);
} }
if (PlayerState != global::AxibugProtobuf.RoomPlayerState.NonePlayerState) {
output.WriteRawTag(32);
output.WriteEnum((int) PlayerState);
}
if (GameState != global::AxibugProtobuf.RoomGameState.NoneGameState) { if (GameState != global::AxibugProtobuf.RoomGameState.NoneGameState) {
output.WriteRawTag(40); output.WriteRawTag(40);
output.WriteEnum((int) GameState); output.WriteEnum((int) GameState);
@ -2403,9 +2359,6 @@ namespace AxibugProtobuf {
if (GameRomHash.Length != 0) { if (GameRomHash.Length != 0) {
size += 1 + pb::CodedOutputStream.ComputeStringSize(GameRomHash); size += 1 + pb::CodedOutputStream.ComputeStringSize(GameRomHash);
} }
if (PlayerState != global::AxibugProtobuf.RoomPlayerState.NonePlayerState) {
size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) PlayerState);
}
if (GameState != global::AxibugProtobuf.RoomGameState.NoneGameState) { if (GameState != global::AxibugProtobuf.RoomGameState.NoneGameState) {
size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) GameState); size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) GameState);
} }
@ -2444,9 +2397,6 @@ namespace AxibugProtobuf {
if (other.GameRomHash.Length != 0) { if (other.GameRomHash.Length != 0) {
GameRomHash = other.GameRomHash; GameRomHash = other.GameRomHash;
} }
if (other.PlayerState != global::AxibugProtobuf.RoomPlayerState.NonePlayerState) {
PlayerState = other.PlayerState;
}
if (other.GameState != global::AxibugProtobuf.RoomGameState.NoneGameState) { if (other.GameState != global::AxibugProtobuf.RoomGameState.NoneGameState) {
GameState = other.GameState; GameState = other.GameState;
} }
@ -2491,10 +2441,6 @@ namespace AxibugProtobuf {
GameRomHash = input.ReadString(); GameRomHash = input.ReadString();
break; break;
} }
case 32: {
PlayerState = (global::AxibugProtobuf.RoomPlayerState) input.ReadEnum();
break;
}
case 40: { case 40: {
GameState = (global::AxibugProtobuf.RoomGameState) input.ReadEnum(); GameState = (global::AxibugProtobuf.RoomGameState) input.ReadEnum();
break; break;
@ -2545,10 +2491,6 @@ namespace AxibugProtobuf {
GameRomHash = input.ReadString(); GameRomHash = input.ReadString();
break; break;
} }
case 32: {
PlayerState = (global::AxibugProtobuf.RoomPlayerState) input.ReadEnum();
break;
}
case 40: { case 40: {
GameState = (global::AxibugProtobuf.RoomGameState) input.ReadEnum(); GameState = (global::AxibugProtobuf.RoomGameState) input.ReadEnum();
break; break;
@ -3270,15 +3212,15 @@ namespace AxibugProtobuf {
} }
public sealed partial class Protobuf_Room_Syn_RoomFrameAllInput : pb::IMessage<Protobuf_Room_Syn_RoomFrameAllInput> public sealed partial class Protobuf_Room_Syn_RoomFrameAllInputData : pb::IMessage<Protobuf_Room_Syn_RoomFrameAllInputData>
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
, pb::IBufferMessage , pb::IBufferMessage
#endif #endif
{ {
private static readonly pb::MessageParser<Protobuf_Room_Syn_RoomFrameAllInput> _parser = new pb::MessageParser<Protobuf_Room_Syn_RoomFrameAllInput>(() => new Protobuf_Room_Syn_RoomFrameAllInput()); private static readonly pb::MessageParser<Protobuf_Room_Syn_RoomFrameAllInputData> _parser = new pb::MessageParser<Protobuf_Room_Syn_RoomFrameAllInputData>(() => new Protobuf_Room_Syn_RoomFrameAllInputData());
private pb::UnknownFieldSet _unknownFields; private pb::UnknownFieldSet _unknownFields;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pb::MessageParser<Protobuf_Room_Syn_RoomFrameAllInput> Parser { get { return _parser; } } public static pb::MessageParser<Protobuf_Room_Syn_RoomFrameAllInputData> Parser { get { return _parser; } }
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor { public static pbr::MessageDescriptor Descriptor {
@ -3291,22 +3233,22 @@ namespace AxibugProtobuf {
} }
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public Protobuf_Room_Syn_RoomFrameAllInput() { public Protobuf_Room_Syn_RoomFrameAllInputData() {
OnConstruction(); OnConstruction();
} }
partial void OnConstruction(); partial void OnConstruction();
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public Protobuf_Room_Syn_RoomFrameAllInput(Protobuf_Room_Syn_RoomFrameAllInput other) : this() { public Protobuf_Room_Syn_RoomFrameAllInputData(Protobuf_Room_Syn_RoomFrameAllInputData other) : this() {
frameID_ = other.frameID_; frameID_ = other.frameID_;
inputData_ = other.inputData_; inputData_ = other.inputData_;
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
} }
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public Protobuf_Room_Syn_RoomFrameAllInput Clone() { public Protobuf_Room_Syn_RoomFrameAllInputData Clone() {
return new Protobuf_Room_Syn_RoomFrameAllInput(this); return new Protobuf_Room_Syn_RoomFrameAllInputData(this);
} }
/// <summary>Field number for the "FrameID" field.</summary> /// <summary>Field number for the "FrameID" field.</summary>
@ -3339,11 +3281,11 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override bool Equals(object other) { public override bool Equals(object other) {
return Equals(other as Protobuf_Room_Syn_RoomFrameAllInput); return Equals(other as Protobuf_Room_Syn_RoomFrameAllInputData);
} }
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public bool Equals(Protobuf_Room_Syn_RoomFrameAllInput other) { public bool Equals(Protobuf_Room_Syn_RoomFrameAllInputData other) {
if (ReferenceEquals(other, null)) { if (ReferenceEquals(other, null)) {
return false; return false;
} }
@ -3423,7 +3365,7 @@ namespace AxibugProtobuf {
} }
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public void MergeFrom(Protobuf_Room_Syn_RoomFrameAllInput other) { public void MergeFrom(Protobuf_Room_Syn_RoomFrameAllInputData other) {
if (other == null) { if (other == null) {
return; return;
} }
@ -3515,6 +3457,7 @@ namespace AxibugProtobuf {
public Protobuf_Room_Create(Protobuf_Room_Create other) : this() { public Protobuf_Room_Create(Protobuf_Room_Create other) : this() {
gameRomID_ = other.gameRomID_; gameRomID_ = other.gameRomID_;
gameRomHash_ = other.gameRomHash_; gameRomHash_ = other.gameRomHash_;
joinPlayerIdx_ = other.joinPlayerIdx_;
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
} }
@ -3545,6 +3488,20 @@ namespace AxibugProtobuf {
} }
} }
/// <summary>Field number for the "JoinPlayerIdx" field.</summary>
public const int JoinPlayerIdxFieldNumber = 3;
private int joinPlayerIdx_;
/// <summary>
///P1~P4[0~3] 以几号位玩家创建房间
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public int JoinPlayerIdx {
get { return joinPlayerIdx_; }
set {
joinPlayerIdx_ = value;
}
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override bool Equals(object other) { public override bool Equals(object other) {
return Equals(other as Protobuf_Room_Create); return Equals(other as Protobuf_Room_Create);
@ -3560,6 +3517,7 @@ namespace AxibugProtobuf {
} }
if (GameRomID != other.GameRomID) return false; if (GameRomID != other.GameRomID) return false;
if (GameRomHash != other.GameRomHash) return false; if (GameRomHash != other.GameRomHash) return false;
if (JoinPlayerIdx != other.JoinPlayerIdx) return false;
return Equals(_unknownFields, other._unknownFields); return Equals(_unknownFields, other._unknownFields);
} }
@ -3568,6 +3526,7 @@ namespace AxibugProtobuf {
int hash = 1; int hash = 1;
if (GameRomID != 0) hash ^= GameRomID.GetHashCode(); if (GameRomID != 0) hash ^= GameRomID.GetHashCode();
if (GameRomHash.Length != 0) hash ^= GameRomHash.GetHashCode(); if (GameRomHash.Length != 0) hash ^= GameRomHash.GetHashCode();
if (JoinPlayerIdx != 0) hash ^= JoinPlayerIdx.GetHashCode();
if (_unknownFields != null) { if (_unknownFields != null) {
hash ^= _unknownFields.GetHashCode(); hash ^= _unknownFields.GetHashCode();
} }
@ -3592,6 +3551,10 @@ namespace AxibugProtobuf {
output.WriteRawTag(18); output.WriteRawTag(18);
output.WriteString(GameRomHash); output.WriteString(GameRomHash);
} }
if (JoinPlayerIdx != 0) {
output.WriteRawTag(24);
output.WriteInt32(JoinPlayerIdx);
}
if (_unknownFields != null) { if (_unknownFields != null) {
_unknownFields.WriteTo(output); _unknownFields.WriteTo(output);
} }
@ -3609,6 +3572,10 @@ namespace AxibugProtobuf {
output.WriteRawTag(18); output.WriteRawTag(18);
output.WriteString(GameRomHash); output.WriteString(GameRomHash);
} }
if (JoinPlayerIdx != 0) {
output.WriteRawTag(24);
output.WriteInt32(JoinPlayerIdx);
}
if (_unknownFields != null) { if (_unknownFields != null) {
_unknownFields.WriteTo(ref output); _unknownFields.WriteTo(ref output);
} }
@ -3624,6 +3591,9 @@ namespace AxibugProtobuf {
if (GameRomHash.Length != 0) { if (GameRomHash.Length != 0) {
size += 1 + pb::CodedOutputStream.ComputeStringSize(GameRomHash); size += 1 + pb::CodedOutputStream.ComputeStringSize(GameRomHash);
} }
if (JoinPlayerIdx != 0) {
size += 1 + pb::CodedOutputStream.ComputeInt32Size(JoinPlayerIdx);
}
if (_unknownFields != null) { if (_unknownFields != null) {
size += _unknownFields.CalculateSize(); size += _unknownFields.CalculateSize();
} }
@ -3641,6 +3611,9 @@ namespace AxibugProtobuf {
if (other.GameRomHash.Length != 0) { if (other.GameRomHash.Length != 0) {
GameRomHash = other.GameRomHash; GameRomHash = other.GameRomHash;
} }
if (other.JoinPlayerIdx != 0) {
JoinPlayerIdx = other.JoinPlayerIdx;
}
_unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
} }
@ -3663,6 +3636,10 @@ namespace AxibugProtobuf {
GameRomHash = input.ReadString(); GameRomHash = input.ReadString();
break; break;
} }
case 24: {
JoinPlayerIdx = input.ReadInt32();
break;
}
} }
} }
#endif #endif
@ -3685,6 +3662,10 @@ namespace AxibugProtobuf {
GameRomHash = input.ReadString(); GameRomHash = input.ReadString();
break; break;
} }
case 24: {
JoinPlayerIdx = input.ReadInt32();
break;
}
} }
} }
} }
@ -4838,6 +4819,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public Protobuf_Room_WaitStep_RESP(Protobuf_Room_WaitStep_RESP other) : this() { public Protobuf_Room_WaitStep_RESP(Protobuf_Room_WaitStep_RESP other) : this() {
waitStep_ = other.waitStep_; waitStep_ = other.waitStep_;
loadStateRaw_ = other.loadStateRaw_;
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
} }
@ -4850,7 +4832,7 @@ namespace AxibugProtobuf {
public const int WaitStepFieldNumber = 1; public const int WaitStepFieldNumber = 1;
private int waitStep_; private int waitStep_;
/// <summary> /// <summary>
///状态 [0]等待主机上报即时存档 [1]要求准备 [2]开始(收到本状态时,立即开始跑模拟器核心) ///状态 [0]等待主机上报即时存档 [1]要求客户端准备 [2]开始(收到本状态时,立即开始跑模拟器核心)
/// </summary> /// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public int WaitStep { public int WaitStep {
@ -4860,6 +4842,20 @@ namespace AxibugProtobuf {
} }
} }
/// <summary>Field number for the "LoadStateRaw" field.</summary>
public const int LoadStateRawFieldNumber = 2;
private pb::ByteString loadStateRaw_ = pb::ByteString.Empty;
/// <summary>
///如下是 WaitStep = 1 时,才有值。广播即时存档
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public pb::ByteString LoadStateRaw {
get { return loadStateRaw_; }
set {
loadStateRaw_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
}
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override bool Equals(object other) { public override bool Equals(object other) {
return Equals(other as Protobuf_Room_WaitStep_RESP); return Equals(other as Protobuf_Room_WaitStep_RESP);
@ -4874,6 +4870,7 @@ namespace AxibugProtobuf {
return true; return true;
} }
if (WaitStep != other.WaitStep) return false; if (WaitStep != other.WaitStep) return false;
if (LoadStateRaw != other.LoadStateRaw) return false;
return Equals(_unknownFields, other._unknownFields); return Equals(_unknownFields, other._unknownFields);
} }
@ -4881,6 +4878,7 @@ namespace AxibugProtobuf {
public override int GetHashCode() { public override int GetHashCode() {
int hash = 1; int hash = 1;
if (WaitStep != 0) hash ^= WaitStep.GetHashCode(); if (WaitStep != 0) hash ^= WaitStep.GetHashCode();
if (LoadStateRaw.Length != 0) hash ^= LoadStateRaw.GetHashCode();
if (_unknownFields != null) { if (_unknownFields != null) {
hash ^= _unknownFields.GetHashCode(); hash ^= _unknownFields.GetHashCode();
} }
@ -4901,6 +4899,10 @@ namespace AxibugProtobuf {
output.WriteRawTag(8); output.WriteRawTag(8);
output.WriteInt32(WaitStep); output.WriteInt32(WaitStep);
} }
if (LoadStateRaw.Length != 0) {
output.WriteRawTag(18);
output.WriteBytes(LoadStateRaw);
}
if (_unknownFields != null) { if (_unknownFields != null) {
_unknownFields.WriteTo(output); _unknownFields.WriteTo(output);
} }
@ -4914,6 +4916,10 @@ namespace AxibugProtobuf {
output.WriteRawTag(8); output.WriteRawTag(8);
output.WriteInt32(WaitStep); output.WriteInt32(WaitStep);
} }
if (LoadStateRaw.Length != 0) {
output.WriteRawTag(18);
output.WriteBytes(LoadStateRaw);
}
if (_unknownFields != null) { if (_unknownFields != null) {
_unknownFields.WriteTo(ref output); _unknownFields.WriteTo(ref output);
} }
@ -4926,6 +4932,9 @@ namespace AxibugProtobuf {
if (WaitStep != 0) { if (WaitStep != 0) {
size += 1 + pb::CodedOutputStream.ComputeInt32Size(WaitStep); size += 1 + pb::CodedOutputStream.ComputeInt32Size(WaitStep);
} }
if (LoadStateRaw.Length != 0) {
size += 1 + pb::CodedOutputStream.ComputeBytesSize(LoadStateRaw);
}
if (_unknownFields != null) { if (_unknownFields != null) {
size += _unknownFields.CalculateSize(); size += _unknownFields.CalculateSize();
} }
@ -4940,6 +4949,9 @@ namespace AxibugProtobuf {
if (other.WaitStep != 0) { if (other.WaitStep != 0) {
WaitStep = other.WaitStep; WaitStep = other.WaitStep;
} }
if (other.LoadStateRaw.Length != 0) {
LoadStateRaw = other.LoadStateRaw;
}
_unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
} }
@ -4958,6 +4970,10 @@ namespace AxibugProtobuf {
WaitStep = input.ReadInt32(); WaitStep = input.ReadInt32();
break; break;
} }
case 18: {
LoadStateRaw = input.ReadBytes();
break;
}
} }
} }
#endif #endif
@ -4976,6 +4992,10 @@ namespace AxibugProtobuf {
WaitStep = input.ReadInt32(); WaitStep = input.ReadInt32();
break; break;
} }
case 18: {
LoadStateRaw = input.ReadBytes();
break;
}
} }
} }
} }
@ -5012,7 +5032,6 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public Protobuf_Room_HostPlayer_UpdateStateRaw(Protobuf_Room_HostPlayer_UpdateStateRaw other) : this() { public Protobuf_Room_HostPlayer_UpdateStateRaw(Protobuf_Room_HostPlayer_UpdateStateRaw other) : this() {
readyFrame_ = other.readyFrame_;
loadStateRaw_ = other.loadStateRaw_; loadStateRaw_ = other.loadStateRaw_;
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
} }
@ -5022,22 +5041,8 @@ namespace AxibugProtobuf {
return new Protobuf_Room_HostPlayer_UpdateStateRaw(this); return new Protobuf_Room_HostPlayer_UpdateStateRaw(this);
} }
/// <summary>Field number for the "ReadyFrame" field.</summary>
public const int ReadyFrameFieldNumber = 1;
private int readyFrame_;
/// <summary>
///要求准备的帧数 (非即时存档则为0
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public int ReadyFrame {
get { return readyFrame_; }
set {
readyFrame_ = value;
}
}
/// <summary>Field number for the "LoadStateRaw" field.</summary> /// <summary>Field number for the "LoadStateRaw" field.</summary>
public const int LoadStateRawFieldNumber = 2; public const int LoadStateRawFieldNumber = 1;
private pb::ByteString loadStateRaw_ = pb::ByteString.Empty; private pb::ByteString loadStateRaw_ = pb::ByteString.Empty;
/// <summary> /// <summary>
///即时存档byte数据 ///即时存档byte数据
@ -5063,7 +5068,6 @@ namespace AxibugProtobuf {
if (ReferenceEquals(other, this)) { if (ReferenceEquals(other, this)) {
return true; return true;
} }
if (ReadyFrame != other.ReadyFrame) return false;
if (LoadStateRaw != other.LoadStateRaw) return false; if (LoadStateRaw != other.LoadStateRaw) return false;
return Equals(_unknownFields, other._unknownFields); return Equals(_unknownFields, other._unknownFields);
} }
@ -5071,7 +5075,6 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override int GetHashCode() { public override int GetHashCode() {
int hash = 1; int hash = 1;
if (ReadyFrame != 0) hash ^= ReadyFrame.GetHashCode();
if (LoadStateRaw.Length != 0) hash ^= LoadStateRaw.GetHashCode(); if (LoadStateRaw.Length != 0) hash ^= LoadStateRaw.GetHashCode();
if (_unknownFields != null) { if (_unknownFields != null) {
hash ^= _unknownFields.GetHashCode(); hash ^= _unknownFields.GetHashCode();
@ -5089,12 +5092,8 @@ namespace AxibugProtobuf {
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
output.WriteRawMessage(this); output.WriteRawMessage(this);
#else #else
if (ReadyFrame != 0) {
output.WriteRawTag(8);
output.WriteInt32(ReadyFrame);
}
if (LoadStateRaw.Length != 0) { if (LoadStateRaw.Length != 0) {
output.WriteRawTag(18); output.WriteRawTag(10);
output.WriteBytes(LoadStateRaw); output.WriteBytes(LoadStateRaw);
} }
if (_unknownFields != null) { if (_unknownFields != null) {
@ -5106,12 +5105,8 @@ namespace AxibugProtobuf {
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
if (ReadyFrame != 0) {
output.WriteRawTag(8);
output.WriteInt32(ReadyFrame);
}
if (LoadStateRaw.Length != 0) { if (LoadStateRaw.Length != 0) {
output.WriteRawTag(18); output.WriteRawTag(10);
output.WriteBytes(LoadStateRaw); output.WriteBytes(LoadStateRaw);
} }
if (_unknownFields != null) { if (_unknownFields != null) {
@ -5123,9 +5118,6 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public int CalculateSize() { public int CalculateSize() {
int size = 0; int size = 0;
if (ReadyFrame != 0) {
size += 1 + pb::CodedOutputStream.ComputeInt32Size(ReadyFrame);
}
if (LoadStateRaw.Length != 0) { if (LoadStateRaw.Length != 0) {
size += 1 + pb::CodedOutputStream.ComputeBytesSize(LoadStateRaw); size += 1 + pb::CodedOutputStream.ComputeBytesSize(LoadStateRaw);
} }
@ -5140,9 +5132,6 @@ namespace AxibugProtobuf {
if (other == null) { if (other == null) {
return; return;
} }
if (other.ReadyFrame != 0) {
ReadyFrame = other.ReadyFrame;
}
if (other.LoadStateRaw.Length != 0) { if (other.LoadStateRaw.Length != 0) {
LoadStateRaw = other.LoadStateRaw; LoadStateRaw = other.LoadStateRaw;
} }
@ -5160,11 +5149,7 @@ namespace AxibugProtobuf {
default: default:
_unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
break; break;
case 8: { case 10: {
ReadyFrame = input.ReadInt32();
break;
}
case 18: {
LoadStateRaw = input.ReadBytes(); LoadStateRaw = input.ReadBytes();
break; break;
} }
@ -5182,11 +5167,7 @@ namespace AxibugProtobuf {
default: default:
_unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
break; break;
case 8: { case 10: {
ReadyFrame = input.ReadInt32();
break;
}
case 18: {
LoadStateRaw = input.ReadBytes(); LoadStateRaw = input.ReadBytes();
break; break;
} }
@ -5197,6 +5178,142 @@ namespace AxibugProtobuf {
} }
public sealed partial class Protobuf_Room_HostPlayer_UpdateStateRaw_RESP : pb::IMessage<Protobuf_Room_HostPlayer_UpdateStateRaw_RESP>
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
, pb::IBufferMessage
#endif
{
private static readonly pb::MessageParser<Protobuf_Room_HostPlayer_UpdateStateRaw_RESP> _parser = new pb::MessageParser<Protobuf_Room_HostPlayer_UpdateStateRaw_RESP>(() => new Protobuf_Room_HostPlayer_UpdateStateRaw_RESP());
private pb::UnknownFieldSet _unknownFields;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pb::MessageParser<Protobuf_Room_HostPlayer_UpdateStateRaw_RESP> Parser { get { return _parser; } }
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[22]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
pbr::MessageDescriptor pb::IMessage.Descriptor {
get { return Descriptor; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public Protobuf_Room_HostPlayer_UpdateStateRaw_RESP() {
OnConstruction();
}
partial void OnConstruction();
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public Protobuf_Room_HostPlayer_UpdateStateRaw_RESP(Protobuf_Room_HostPlayer_UpdateStateRaw_RESP other) : this() {
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public Protobuf_Room_HostPlayer_UpdateStateRaw_RESP Clone() {
return new Protobuf_Room_HostPlayer_UpdateStateRaw_RESP(this);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override bool Equals(object other) {
return Equals(other as Protobuf_Room_HostPlayer_UpdateStateRaw_RESP);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public bool Equals(Protobuf_Room_HostPlayer_UpdateStateRaw_RESP other) {
if (ReferenceEquals(other, null)) {
return false;
}
if (ReferenceEquals(other, this)) {
return true;
}
return Equals(_unknownFields, other._unknownFields);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override int GetHashCode() {
int hash = 1;
if (_unknownFields != null) {
hash ^= _unknownFields.GetHashCode();
}
return hash;
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override string ToString() {
return pb::JsonFormatter.ToDiagnosticString(this);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public void WriteTo(pb::CodedOutputStream output) {
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
output.WriteRawMessage(this);
#else
if (_unknownFields != null) {
_unknownFields.WriteTo(output);
}
#endif
}
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
if (_unknownFields != null) {
_unknownFields.WriteTo(ref output);
}
}
#endif
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public int CalculateSize() {
int size = 0;
if (_unknownFields != null) {
size += _unknownFields.CalculateSize();
}
return size;
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public void MergeFrom(Protobuf_Room_HostPlayer_UpdateStateRaw_RESP other) {
if (other == null) {
return;
}
_unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public void MergeFrom(pb::CodedInputStream input) {
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
input.ReadRawMessage(this);
#else
uint tag;
while ((tag = input.ReadTag()) != 0) {
switch(tag) {
default:
_unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
break;
}
}
#endif
}
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
uint tag;
while ((tag = input.ReadTag()) != 0) {
switch(tag) {
default:
_unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
break;
}
}
}
#endif
}
public sealed partial class Protobuf_Room_Player_Ready : pb::IMessage<Protobuf_Room_Player_Ready> public sealed partial class Protobuf_Room_Player_Ready : pb::IMessage<Protobuf_Room_Player_Ready>
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
, pb::IBufferMessage , pb::IBufferMessage
@ -5209,7 +5326,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor { public static pbr::MessageDescriptor Descriptor {
get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[22]; } get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[23]; }
} }
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.Diagnostics.DebuggerNonUserCodeAttribute]

View File

@ -66,10 +66,12 @@ namespace AxibugEmuOnline.Web.Controllers
// Ö´Ðвéѯ²¢´¦Àí½á¹û // Ö´Ðвéѯ²¢´¦Àí½á¹û
using (var reader = command.ExecuteReader()) using (var reader = command.ExecuteReader())
{ {
int orderIndex = Page * PageSize;
while (reader.Read()) while (reader.Read())
{ {
resp.gameList.Add(new Resp_RomInfo() resp.gameList.Add(new Resp_RomInfo()
{ {
orderid = orderIndex++,
id = reader.GetInt32(0), id = reader.GetInt32(0),
romName = !reader.IsDBNull(1) ? reader.GetString(1) : string.Empty, romName = !reader.IsDBNull(1) ? reader.GetString(1) : string.Empty,
gType = !reader.IsDBNull(2) ? reader.GetString(2) : string.Empty, gType = !reader.IsDBNull(2) ? reader.GetString(2) : string.Empty,
@ -125,6 +127,7 @@ namespace AxibugEmuOnline.Web.Controllers
public class Resp_RomInfo public class Resp_RomInfo
{ {
public int orderid { get; set; }
public int id { get; set; } public int id { get; set; }
public string romName { get; set;} public string romName { get; set;}
public string gType { get; set; } public string gType { get; set; }

View File

@ -38,59 +38,58 @@ namespace AxibugProtobuf {
"b3RvYnVmLkxvZ2luUmVzdWx0U3RhdHVzEgsKA1VJRBgGIAEoAyIUChJQcm90", "b3RvYnVmLkxvZ2luUmVzdWx0U3RhdHVzEgsKA1VJRBgGIAEoAyIUChJQcm90",
"b2J1Zl9Sb29tX0xpc3QiWwoXUHJvdG9idWZfUm9vbV9MaXN0X1JFU1ASQAoQ", "b2J1Zl9Sb29tX0xpc3QiWwoXUHJvdG9idWZfUm9vbV9MaXN0X1JFU1ASQAoQ",
"Um9vbU1pbmlJbmZvTGlzdBgBIAMoCzImLkF4aWJ1Z1Byb3RvYnVmLlByb3Rv", "Um9vbU1pbmlJbmZvTGlzdBgBIAMoCzImLkF4aWJ1Z1Byb3RvYnVmLlByb3Rv",
"YnVmX1Jvb21fTWluaUluZm8irAIKFlByb3RvYnVmX1Jvb21fTWluaUluZm8S", "YnVmX1Jvb21fTWluaUluZm8i9gEKFlByb3RvYnVmX1Jvb21fTWluaUluZm8S",
"DgoGUm9vbUlEGAEgASgFEhEKCUdhbWVSb21JRBgCIAEoBRITCgtHYW1lUm9t", "DgoGUm9vbUlEGAEgASgFEhEKCUdhbWVSb21JRBgCIAEoBRITCgtHYW1lUm9t",
"SGFzaBgDIAEoCRI0CgtQbGF5ZXJTdGF0ZRgEIAEoDjIfLkF4aWJ1Z1Byb3Rv", "SGFzaBgDIAEoCRIwCglHYW1lU3RhdGUYBSABKA4yHS5BeGlidWdQcm90b2J1",
"YnVmLlJvb21QbGF5ZXJTdGF0ZRIwCglHYW1lU3RhdGUYBSABKA4yHS5BeGli", "Zi5Sb29tR2FtZVN0YXRlEhQKDE9ic1VzZXJDb3VudBgGIAEoBRITCgtQbGF5",
"dWdQcm90b2J1Zi5Sb29tR2FtZVN0YXRlEhQKDE9ic1VzZXJDb3VudBgGIAEo", "ZXIxX1VJRBgHIAEoAxIYChBQbGF5ZXIxX05pY2tOYW1lGAggASgJEhMKC1Bs",
"BRITCgtQbGF5ZXIxX1VJRBgHIAEoAxIYChBQbGF5ZXIxX05pY2tOYW1lGAgg", "YXllcjJfVUlEGAkgASgDEhgKEFBsYXllcjJfTmlja05hbWUYCiABKAkibQoZ",
"ASgJEhMKC1BsYXllcjJfVUlEGAkgASgDEhgKEFBsYXllcjJfTmlja05hbWUY", "UHJvdG9idWZfUm9vbV9VcGRhdGVfUkVTUBISCgpVcGRhdGVUeXBlGAEgASgF",
"CiABKAkibQoZUHJvdG9idWZfUm9vbV9VcGRhdGVfUkVTUBISCgpVcGRhdGVU", "EjwKDFJvb21NaW5pSW5mbxgCIAEoCzImLkF4aWJ1Z1Byb3RvYnVmLlByb3Rv",
"eXBlGAEgASgFEjwKDFJvb21NaW5pSW5mbxgCIAEoCzImLkF4aWJ1Z1Byb3Rv", "YnVmX1Jvb21fTWluaUluZm8iSwoVUHJvdG9idWZfU2NyZW5uX0ZyYW1lEg4K",
"YnVmLlByb3RvYnVmX1Jvb21fTWluaUluZm8iSwoVUHJvdG9idWZfU2NyZW5u", "BlJvb21JRBgBIAEoBRIPCgdGcmFtZUlEGAIgASgFEhEKCVJhd0JpdG1hcBgD",
"X0ZyYW1lEg4KBlJvb21JRBgBIAEoBRIPCgdGcmFtZUlEGAIgASgFEhEKCVJh", "IAEoDCJJCiNQcm90b2J1Zl9Sb29tX1NpbmdsZVBsYXllcklucHV0RGF0YRIP",
"d0JpdG1hcBgDIAEoDCJJCiNQcm90b2J1Zl9Sb29tX1NpbmdsZVBsYXllcklu", "CgdGcmFtZUlEGAEgASgNEhEKCUlucHV0RGF0YRgCIAEoDSJNCidQcm90b2J1",
"cHV0RGF0YRIPCgdGcmFtZUlEGAEgASgNEhEKCUlucHV0RGF0YRgCIAEoDSJJ", "Zl9Sb29tX1N5bl9Sb29tRnJhbWVBbGxJbnB1dERhdGESDwoHRnJhbWVJRBgB",
"CiNQcm90b2J1Zl9Sb29tX1N5bl9Sb29tRnJhbWVBbGxJbnB1dBIPCgdGcmFt", "IAEoDRIRCglJbnB1dERhdGEYAiABKAQiVQoUUHJvdG9idWZfUm9vbV9DcmVh",
"ZUlEGAEgASgNEhEKCUlucHV0RGF0YRgCIAEoBCI+ChRQcm90b2J1Zl9Sb29t", "dGUSEQoJR2FtZVJvbUlEGAEgASgFEhMKC0dhbWVSb21IYXNoGAIgASgJEhUK",
"X0NyZWF0ZRIRCglHYW1lUm9tSUQYASABKAUSEwoLR2FtZVJvbUhhc2gYAiAB", "DUpvaW5QbGF5ZXJJZHgYAyABKAUiWQoZUHJvdG9idWZfUm9vbV9DcmVhdGVf",
"KAkiWQoZUHJvdG9idWZfUm9vbV9DcmVhdGVfUkVTUBI8CgxSb29tTWluaUlu", "UkVTUBI8CgxSb29tTWluaUluZm8YASABKAsyJi5BeGlidWdQcm90b2J1Zi5Q",
"Zm8YASABKAsyJi5BeGlidWdQcm90b2J1Zi5Qcm90b2J1Zl9Sb29tX01pbmlJ", "cm90b2J1Zl9Sb29tX01pbmlJbmZvIjcKElByb3RvYnVmX1Jvb21fSm9pbhIO",
"bmZvIjcKElByb3RvYnVmX1Jvb21fSm9pbhIOCgZSb29tSUQYASABKAUSEQoJ", "CgZSb29tSUQYASABKAUSEQoJUGxheWVyTnVtGAIgASgFIlcKF1Byb3RvYnVm",
"UGxheWVyTnVtGAIgASgFIlcKF1Byb3RvYnVmX1Jvb21fSm9pbl9SRVNQEjwK", "X1Jvb21fSm9pbl9SRVNQEjwKDFJvb21NaW5pSW5mbxgBIAEoCzImLkF4aWJ1",
"DFJvb21NaW5pSW5mbxgBIAEoCzImLkF4aWJ1Z1Byb3RvYnVmLlByb3RvYnVm", "Z1Byb3RvYnVmLlByb3RvYnVmX1Jvb21fTWluaUluZm8iJQoTUHJvdG9idWZf",
"X1Jvb21fTWluaUluZm8iJQoTUHJvdG9idWZfUm9vbV9MZWF2ZRIOCgZSb29t", "Um9vbV9MZWF2ZRIOCgZSb29tSUQYASABKAUiKgoYUHJvdG9idWZfUm9vbV9M",
"SUQYASABKAUiKgoYUHJvdG9idWZfUm9vbV9MZWF2ZV9SRVNQEg4KBlJvb21J", "ZWF2ZV9SRVNQEg4KBlJvb21JRBgBIAEoBSJhCiFQcm90b2J1Zl9Sb29tX015",
"RBgBIAEoBSJhCiFQcm90b2J1Zl9Sb29tX015Um9vbV9TdGF0ZV9DaGFuZ2US", "Um9vbV9TdGF0ZV9DaGFuZ2USPAoMUm9vbU1pbmlJbmZvGAEgASgLMiYuQXhp",
"PAoMUm9vbU1pbmlJbmZvGAEgASgLMiYuQXhpYnVnUHJvdG9idWYuUHJvdG9i", "YnVnUHJvdG9idWYuUHJvdG9idWZfUm9vbV9NaW5pSW5mbyJFChtQcm90b2J1",
"dWZfUm9vbV9NaW5pSW5mbyIvChtQcm90b2J1Zl9Sb29tX1dhaXRTdGVwX1JF", "Zl9Sb29tX1dhaXRTdGVwX1JFU1ASEAoIV2FpdFN0ZXAYASABKAUSFAoMTG9h",
"U1ASEAoIV2FpdFN0ZXAYASABKAUiUwonUHJvdG9idWZfUm9vbV9Ib3N0UGxh", "ZFN0YXRlUmF3GAIgASgMIj8KJ1Byb3RvYnVmX1Jvb21fSG9zdFBsYXllcl9V",
"eWVyX1VwZGF0ZVN0YXRlUmF3EhIKClJlYWR5RnJhbWUYASABKAUSFAoMTG9h", "cGRhdGVTdGF0ZVJhdxIUCgxMb2FkU3RhdGVSYXcYASABKAwiLgosUHJvdG9i",
"ZFN0YXRlUmF3GAIgASgMIhwKGlByb3RvYnVmX1Jvb21fUGxheWVyX1JlYWR5", "dWZfUm9vbV9Ib3N0UGxheWVyX1VwZGF0ZVN0YXRlUmF3X1JFU1AiHAoaUHJv",
"Ko4DCglDb21tYW5kSUQSDgoKQ01EX0RFRkFVTBAAEgwKCENNRF9QSU5HEAES", "dG9idWZfUm9vbV9QbGF5ZXJfUmVhZHkqmgMKCUNvbW1hbmRJRBIOCgpDTURf",
"DAoIQ01EX1BPTkcQAhIOCglDTURfTE9HSU4Q0Q8SEAoLQ01EX0NIQVRNU0cQ", "REVGQVVMEAASDAoIQ01EX1BJTkcQARIMCghDTURfUE9ORxACEg4KCUNNRF9M",
"oR8SEgoNQ01EX1Jvb21fTGlzdBCJJxIZChRDTURfUm9vbV9MaXN0X1VwZGF0", "T0dJThDRDxIQCgtDTURfQ0hBVE1TRxChHxISCg1DTURfUm9vbV9MaXN0EIkn",
"ZRCKJxIUCg9DTURfUm9vbV9DcmVhdGUQ7ScSEgoNQ01EX1Jvb21fSm9pbhDx", "EhkKFENNRF9Sb29tX0xpc3RfVXBkYXRlEIonEhQKD0NNRF9Sb29tX0NyZWF0",
"JxITCg5DTURfUm9vbV9MZWF2ZRDyJxIiCh1DTURfUm9vbV9NeVJvb21fU3Rh", "ZRDtJxISCg1DTURfUm9vbV9Kb2luEPEnEhMKDkNNRF9Sb29tX0xlYXZlEPIn",
"dGVfQ2hhbmdlZBD2JxIWChFDTURfUm9vbV9XYWl0U3RlcBDRKBInCiJDTURf", "EiIKHUNNRF9Sb29tX015Um9vbV9TdGF0ZV9DaGFuZ2VkEPYnEhYKEUNNRF9S",
"Um9vbV9Ib3N0UGxheWVyX1VwZGF0ZVN0YXRlUmF3ENQoEhoKFUNNRF9Sb29t", "b29tX1dhaXRTdGVwENEoEicKIkNNRF9Sb29tX0hvc3RQbGF5ZXJfVXBkYXRl",
"X1BsYXllcl9SZWFkeRDYKBIgChtDTURfUm9vbV9TaW5nZWxfUGxheWVySW5w", "U3RhdGVSYXcQ1CgSGgoVQ01EX1Jvb21fUGxheWVyX1JlYWR5ENgoEiAKG0NN",
"dXQQ+i4SEQoMQ01EX1JPT01fU1lOEP8uEg8KCkNNRF9TY3JlZW4Q2TYqbAoJ", "RF9Sb29tX1NpbmdlbF9QbGF5ZXJJbnB1dBD6LhIdChhDTURfUk9PTV9TWU5f",
"RXJyb3JDb2RlEhAKDEVSUk9SX0RFRkFVTBAAEgwKCEVSUk9SX09LEAESGAoU", "UGxheWVySW5wdXQQ/y4SDwoKQ01EX1NjcmVlbhDZNiqPAQoJRXJyb3JDb2Rl",
"RVJST1JfUk9PTV9OT1RfRk9VTkQQChIlCiFFUlJPUl9ST09NX1NMT1RfUkVB", "EhAKDEVSUk9SX0RFRkFVTBAAEgwKCEVSUk9SX09LEAESGAoURVJST1JfUk9P",
"RExZX0hBRF9QTEFZRVIQCyocCglMb2dpblR5cGUSDwoLQmFzZURlZmF1bHQQ", "TV9OT1RfRk9VTkQQChIlCiFFUlJPUl9ST09NX1NMT1RfUkVBRExZX0hBRF9Q",
"ACpLCgpEZXZpY2VUeXBlEhYKEkRldmljZVR5cGVfRGVmYXVsdBAAEgYKAlBD", "TEFZRVIQCxIhCh1FUlJPUl9ST09NX0NBTlRfRE9fQ1VSUl9TVEFURRAyKhwK",
"EAESCwoHQW5kcm9pZBACEgcKA0lPUxADEgcKA1BTVhAEKk8KD1Jvb21QbGF5", "CUxvZ2luVHlwZRIPCgtCYXNlRGVmYXVsdBAAKksKCkRldmljZVR5cGUSFgoS",
"ZXJTdGF0ZRIUChBOb25lX1BsYXllclN0YXRlEAASCgoGT25seVAxEAESCgoG", "RGV2aWNlVHlwZV9EZWZhdWx0EAASBgoCUEMQARILCgdBbmRyb2lkEAISBwoD",
"T25seVAyEAISDgoKQm90aE9ubGluZRADKnsKDVJvb21HYW1lU3RhdGUSEgoO", "SU9TEAMSBwoDUFNWEAQqcAoNUm9vbUdhbWVTdGF0ZRISCg5Ob25lX0dhbWVT",
"Tm9uZV9HYW1lU3RhdGUQABIMCghPbmx5SG9zdBABEg8KC1JlYWR5U3RlcF8w", "dGF0ZRAAEgwKCE9ubHlIb3N0EAESEQoNV2FpdFJhd1VwZGF0ZRACEg0KCVdh",
"EAISDwoLUmVhZHlTdGVwXzEQAxIPCgtSZWFkeVN0ZXBfMhAEEgkKBVBhdXNl", "aXRSZWFkeRADEgkKBVBhdXNlEAQSEAoMSW5PbmxpbmVHYW1lEAUqTgoRTG9n",
"EAUSCgoGSW5HYW1lEAYqTgoRTG9naW5SZXN1bHRTdGF0dXMSIQodTG9naW5S", "aW5SZXN1bHRTdGF0dXMSIQodTG9naW5SZXN1bHRTdGF0dXNfQmFzZURlZmF1",
"ZXN1bHRTdGF0dXNfQmFzZURlZmF1bHQQABIGCgJPSxABEg4KCkFjY291bnRF", "bHQQABIGCgJPSxABEg4KCkFjY291bnRFcnIQAkICSAFiBnByb3RvMw=="));
"cnIQAkICSAFiBnByb3RvMw=="));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { }, 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.RoomPlayerState), 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.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), 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_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), new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Ping), global::AxibugProtobuf.Protobuf_Ping.Parser, new[]{ "Seed" }, null, null, null, null),
@ -99,20 +98,21 @@ namespace AxibugProtobuf {
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Login_RESP), global::AxibugProtobuf.Protobuf_Login_RESP.Parser, new[]{ "DeviceUUID", "Token", "LastLoginDate", "RegDate", "Status", "UID" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Login_RESP), global::AxibugProtobuf.Protobuf_Login_RESP.Parser, new[]{ "DeviceUUID", "Token", "LastLoginDate", "RegDate", "Status", "UID" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_List), global::AxibugProtobuf.Protobuf_Room_List.Parser, null, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_List), 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_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", "PlayerState", "GameState", "ObsUserCount", "Player1UID", "Player1NickName", "Player2UID", "Player2NickName" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_MiniInfo), global::AxibugProtobuf.Protobuf_Room_MiniInfo.Parser, new[]{ "RoomID", "GameRomID", "GameRomHash", "GameState", "ObsUserCount", "Player1UID", "Player1NickName", "Player2UID", "Player2NickName" }, 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_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_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), new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_SinglePlayerInputData), global::AxibugProtobuf.Protobuf_Room_SinglePlayerInputData.Parser, new[]{ "FrameID", "InputData" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_Syn_RoomFrameAllInput), global::AxibugProtobuf.Protobuf_Room_Syn_RoomFrameAllInput.Parser, new[]{ "FrameID", "InputData" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_Syn_RoomFrameAllInputData), global::AxibugProtobuf.Protobuf_Room_Syn_RoomFrameAllInputData.Parser, new[]{ "FrameID", "InputData" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_Create), global::AxibugProtobuf.Protobuf_Room_Create.Parser, new[]{ "GameRomID", "GameRomHash" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_Create), global::AxibugProtobuf.Protobuf_Room_Create.Parser, new[]{ "GameRomID", "GameRomHash", "JoinPlayerIdx" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_Create_RESP), global::AxibugProtobuf.Protobuf_Room_Create_RESP.Parser, new[]{ "RoomMiniInfo" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_Create_RESP), global::AxibugProtobuf.Protobuf_Room_Create_RESP.Parser, new[]{ "RoomMiniInfo" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_Join), global::AxibugProtobuf.Protobuf_Room_Join.Parser, new[]{ "RoomID", "PlayerNum" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_Join), global::AxibugProtobuf.Protobuf_Room_Join.Parser, new[]{ "RoomID", "PlayerNum" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_Join_RESP), global::AxibugProtobuf.Protobuf_Room_Join_RESP.Parser, new[]{ "RoomMiniInfo" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_Join_RESP), global::AxibugProtobuf.Protobuf_Room_Join_RESP.Parser, new[]{ "RoomMiniInfo" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_Leave), global::AxibugProtobuf.Protobuf_Room_Leave.Parser, new[]{ "RoomID" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_Leave), global::AxibugProtobuf.Protobuf_Room_Leave.Parser, new[]{ "RoomID" }, null, null, null, null),
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_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_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_WaitStep_RESP), global::AxibugProtobuf.Protobuf_Room_WaitStep_RESP.Parser, new[]{ "WaitStep" }, 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[]{ "ReadyFrame", "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),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_HostPlayer_UpdateStateRaw_RESP), global::AxibugProtobuf.Protobuf_Room_HostPlayer_UpdateStateRaw_RESP.Parser, null, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_Player_Ready), global::AxibugProtobuf.Protobuf_Room_Player_Ready.Parser, null, null, null, null, null) new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_Player_Ready), global::AxibugProtobuf.Protobuf_Room_Player_Ready.Parser, null, null, null, null, null)
})); }));
} }
@ -154,7 +154,7 @@ namespace AxibugProtobuf {
/// </summary> /// </summary>
[pbr::OriginalName("CMD_Room_Create")] CmdRoomCreate = 5101, [pbr::OriginalName("CMD_Room_Create")] CmdRoomCreate = 5101,
/// <summary> /// <summary>
///房间加入 对应 Protobuf_Room_Join | Protobuf_Room_Join_RESP ///房间加入 对应 Protobuf_Room_Join | Protobuf_Room_Join_RESP //建议Join之前按照房间信息提前下载并读取本地Rom
/// </summary> /// </summary>
[pbr::OriginalName("CMD_Room_Join")] CmdRoomJoin = 5105, [pbr::OriginalName("CMD_Room_Join")] CmdRoomJoin = 5105,
/// <summary> /// <summary>
@ -188,7 +188,7 @@ namespace AxibugProtobuf {
/// </summary> /// </summary>
[pbr::OriginalName("CMD_Room_WaitStep")] CmdRoomWaitStep = 5201, [pbr::OriginalName("CMD_Room_WaitStep")] CmdRoomWaitStep = 5201,
/// <summary> /// <summary>
///服务器房间准备和开始标识 下行 Protobuf_Room_HostPlayer_UpdateStateRaw ///主机玩家上传即时存档 上行 | 下行 对应 Protobuf_Room_HostPlayer_UpdateStateRaw | Protobuf_Room_HostPlayer_UpdateStateRaw_RESP
/// </summary> /// </summary>
[pbr::OriginalName("CMD_Room_HostPlayer_UpdateStateRaw")] CmdRoomHostPlayerUpdateStateRaw = 5204, [pbr::OriginalName("CMD_Room_HostPlayer_UpdateStateRaw")] CmdRoomHostPlayerUpdateStateRaw = 5204,
/// <summary> /// <summary>
@ -200,9 +200,9 @@ namespace AxibugProtobuf {
/// </summary> /// </summary>
[pbr::OriginalName("CMD_Room_Singel_PlayerInput")] CmdRoomSingelPlayerInput = 6010, [pbr::OriginalName("CMD_Room_Singel_PlayerInput")] CmdRoomSingelPlayerInput = 6010,
/// <summary> /// <summary>
///单个玩家操作同步上行 对应 Protobuf_Room_Syn_RoomFrameAllInput ///单个玩家操作同步下行 对应 Protobuf_Room_Syn_RoomFrameAllInputData
/// </summary> /// </summary>
[pbr::OriginalName("CMD_ROOM_SYN")] CmdRoomSyn = 6015, [pbr::OriginalName("CMD_ROOM_SYN_PlayerInput")] CmdRoomSynPlayerInput = 6015,
/// <summary> /// <summary>
///画面采集 ///画面采集
/// </summary> /// </summary>
@ -226,6 +226,10 @@ namespace AxibugProtobuf {
///加入目标位置已经有人 ///加入目标位置已经有人
/// </summary> /// </summary>
[pbr::OriginalName("ERROR_ROOM_SLOT_READLY_HAD_PLAYER")] ErrorRoomSlotReadlyHadPlayer = 11, [pbr::OriginalName("ERROR_ROOM_SLOT_READLY_HAD_PLAYER")] ErrorRoomSlotReadlyHadPlayer = 11,
/// <summary>
///当前房间状态不允许本操作
/// </summary>
[pbr::OriginalName("ERROR_ROOM_CANT_DO_CURR_STATE")] ErrorRoomCantDoCurrState = 50,
} }
public enum LoginType { public enum LoginType {
@ -246,25 +250,6 @@ namespace AxibugProtobuf {
[pbr::OriginalName("PSV")] Psv = 4, [pbr::OriginalName("PSV")] Psv = 4,
} }
public enum RoomPlayerState {
/// <summary>
///缺省
/// </summary>
[pbr::OriginalName("None_PlayerState")] NonePlayerState = 0,
/// <summary>
///仅P1
/// </summary>
[pbr::OriginalName("OnlyP1")] OnlyP1 = 1,
/// <summary>
///仅P2
/// </summary>
[pbr::OriginalName("OnlyP2")] OnlyP2 = 2,
/// <summary>
///玩家都在
/// </summary>
[pbr::OriginalName("BothOnline")] BothOnline = 3,
}
public enum RoomGameState { public enum RoomGameState {
/// <summary> /// <summary>
///缺省 ///缺省
@ -275,25 +260,21 @@ namespace AxibugProtobuf {
/// </summary> /// </summary>
[pbr::OriginalName("OnlyHost")] OnlyHost = 1, [pbr::OriginalName("OnlyHost")] OnlyHost = 1,
/// <summary> /// <summary>
///ReadyStep0 ///等待即时存档
/// </summary> /// </summary>
[pbr::OriginalName("ReadyStep_0")] ReadyStep0 = 2, [pbr::OriginalName("WaitRawUpdate")] WaitRawUpdate = 2,
/// <summary> /// <summary>
///ReadyStep1 ///等待Ready
/// </summary> /// </summary>
[pbr::OriginalName("ReadyStep_1")] ReadyStep1 = 3, [pbr::OriginalName("WaitReady")] WaitReady = 3,
/// <summary>
///ReadyStep2
/// </summary>
[pbr::OriginalName("ReadyStep_2")] ReadyStep2 = 4,
/// <summary> /// <summary>
///暂停 ///暂停
/// </summary> /// </summary>
[pbr::OriginalName("Pause")] Pause = 5, [pbr::OriginalName("Pause")] Pause = 4,
/// <summary> /// <summary>
///游戏 ///联机
/// </summary> /// </summary>
[pbr::OriginalName("InGame")] InGame = 6, [pbr::OriginalName("InOnlineGame")] InOnlineGame = 5,
} }
public enum LoginResultStatus { public enum LoginResultStatus {
@ -2089,7 +2070,6 @@ namespace AxibugProtobuf {
roomID_ = other.roomID_; roomID_ = other.roomID_;
gameRomID_ = other.gameRomID_; gameRomID_ = other.gameRomID_;
gameRomHash_ = other.gameRomHash_; gameRomHash_ = other.gameRomHash_;
playerState_ = other.playerState_;
gameState_ = other.gameState_; gameState_ = other.gameState_;
obsUserCount_ = other.obsUserCount_; obsUserCount_ = other.obsUserCount_;
player1UID_ = other.player1UID_; player1UID_ = other.player1UID_;
@ -2143,20 +2123,6 @@ namespace AxibugProtobuf {
} }
} }
/// <summary>Field number for the "PlayerState" field.</summary>
public const int PlayerStateFieldNumber = 4;
private global::AxibugProtobuf.RoomPlayerState playerState_ = global::AxibugProtobuf.RoomPlayerState.NonePlayerState;
/// <summary>
///玩家加入状态
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public global::AxibugProtobuf.RoomPlayerState PlayerState {
get { return playerState_; }
set {
playerState_ = value;
}
}
/// <summary>Field number for the "GameState" field.</summary> /// <summary>Field number for the "GameState" field.</summary>
public const int GameStateFieldNumber = 5; public const int GameStateFieldNumber = 5;
private global::AxibugProtobuf.RoomGameState gameState_ = global::AxibugProtobuf.RoomGameState.NoneGameState; private global::AxibugProtobuf.RoomGameState gameState_ = global::AxibugProtobuf.RoomGameState.NoneGameState;
@ -2257,7 +2223,6 @@ namespace AxibugProtobuf {
if (RoomID != other.RoomID) return false; if (RoomID != other.RoomID) return false;
if (GameRomID != other.GameRomID) return false; if (GameRomID != other.GameRomID) return false;
if (GameRomHash != other.GameRomHash) return false; if (GameRomHash != other.GameRomHash) return false;
if (PlayerState != other.PlayerState) return false;
if (GameState != other.GameState) return false; if (GameState != other.GameState) return false;
if (ObsUserCount != other.ObsUserCount) return false; if (ObsUserCount != other.ObsUserCount) return false;
if (Player1UID != other.Player1UID) return false; if (Player1UID != other.Player1UID) return false;
@ -2273,7 +2238,6 @@ namespace AxibugProtobuf {
if (RoomID != 0) hash ^= RoomID.GetHashCode(); if (RoomID != 0) hash ^= RoomID.GetHashCode();
if (GameRomID != 0) hash ^= GameRomID.GetHashCode(); if (GameRomID != 0) hash ^= GameRomID.GetHashCode();
if (GameRomHash.Length != 0) hash ^= GameRomHash.GetHashCode(); if (GameRomHash.Length != 0) hash ^= GameRomHash.GetHashCode();
if (PlayerState != global::AxibugProtobuf.RoomPlayerState.NonePlayerState) hash ^= PlayerState.GetHashCode();
if (GameState != global::AxibugProtobuf.RoomGameState.NoneGameState) hash ^= GameState.GetHashCode(); if (GameState != global::AxibugProtobuf.RoomGameState.NoneGameState) hash ^= GameState.GetHashCode();
if (ObsUserCount != 0) hash ^= ObsUserCount.GetHashCode(); if (ObsUserCount != 0) hash ^= ObsUserCount.GetHashCode();
if (Player1UID != 0L) hash ^= Player1UID.GetHashCode(); if (Player1UID != 0L) hash ^= Player1UID.GetHashCode();
@ -2308,10 +2272,6 @@ namespace AxibugProtobuf {
output.WriteRawTag(26); output.WriteRawTag(26);
output.WriteString(GameRomHash); output.WriteString(GameRomHash);
} }
if (PlayerState != global::AxibugProtobuf.RoomPlayerState.NonePlayerState) {
output.WriteRawTag(32);
output.WriteEnum((int) PlayerState);
}
if (GameState != global::AxibugProtobuf.RoomGameState.NoneGameState) { if (GameState != global::AxibugProtobuf.RoomGameState.NoneGameState) {
output.WriteRawTag(40); output.WriteRawTag(40);
output.WriteEnum((int) GameState); output.WriteEnum((int) GameState);
@ -2357,10 +2317,6 @@ namespace AxibugProtobuf {
output.WriteRawTag(26); output.WriteRawTag(26);
output.WriteString(GameRomHash); output.WriteString(GameRomHash);
} }
if (PlayerState != global::AxibugProtobuf.RoomPlayerState.NonePlayerState) {
output.WriteRawTag(32);
output.WriteEnum((int) PlayerState);
}
if (GameState != global::AxibugProtobuf.RoomGameState.NoneGameState) { if (GameState != global::AxibugProtobuf.RoomGameState.NoneGameState) {
output.WriteRawTag(40); output.WriteRawTag(40);
output.WriteEnum((int) GameState); output.WriteEnum((int) GameState);
@ -2403,9 +2359,6 @@ namespace AxibugProtobuf {
if (GameRomHash.Length != 0) { if (GameRomHash.Length != 0) {
size += 1 + pb::CodedOutputStream.ComputeStringSize(GameRomHash); size += 1 + pb::CodedOutputStream.ComputeStringSize(GameRomHash);
} }
if (PlayerState != global::AxibugProtobuf.RoomPlayerState.NonePlayerState) {
size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) PlayerState);
}
if (GameState != global::AxibugProtobuf.RoomGameState.NoneGameState) { if (GameState != global::AxibugProtobuf.RoomGameState.NoneGameState) {
size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) GameState); size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) GameState);
} }
@ -2444,9 +2397,6 @@ namespace AxibugProtobuf {
if (other.GameRomHash.Length != 0) { if (other.GameRomHash.Length != 0) {
GameRomHash = other.GameRomHash; GameRomHash = other.GameRomHash;
} }
if (other.PlayerState != global::AxibugProtobuf.RoomPlayerState.NonePlayerState) {
PlayerState = other.PlayerState;
}
if (other.GameState != global::AxibugProtobuf.RoomGameState.NoneGameState) { if (other.GameState != global::AxibugProtobuf.RoomGameState.NoneGameState) {
GameState = other.GameState; GameState = other.GameState;
} }
@ -2491,10 +2441,6 @@ namespace AxibugProtobuf {
GameRomHash = input.ReadString(); GameRomHash = input.ReadString();
break; break;
} }
case 32: {
PlayerState = (global::AxibugProtobuf.RoomPlayerState) input.ReadEnum();
break;
}
case 40: { case 40: {
GameState = (global::AxibugProtobuf.RoomGameState) input.ReadEnum(); GameState = (global::AxibugProtobuf.RoomGameState) input.ReadEnum();
break; break;
@ -2545,10 +2491,6 @@ namespace AxibugProtobuf {
GameRomHash = input.ReadString(); GameRomHash = input.ReadString();
break; break;
} }
case 32: {
PlayerState = (global::AxibugProtobuf.RoomPlayerState) input.ReadEnum();
break;
}
case 40: { case 40: {
GameState = (global::AxibugProtobuf.RoomGameState) input.ReadEnum(); GameState = (global::AxibugProtobuf.RoomGameState) input.ReadEnum();
break; break;
@ -3270,15 +3212,15 @@ namespace AxibugProtobuf {
} }
public sealed partial class Protobuf_Room_Syn_RoomFrameAllInput : pb::IMessage<Protobuf_Room_Syn_RoomFrameAllInput> public sealed partial class Protobuf_Room_Syn_RoomFrameAllInputData : pb::IMessage<Protobuf_Room_Syn_RoomFrameAllInputData>
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
, pb::IBufferMessage , pb::IBufferMessage
#endif #endif
{ {
private static readonly pb::MessageParser<Protobuf_Room_Syn_RoomFrameAllInput> _parser = new pb::MessageParser<Protobuf_Room_Syn_RoomFrameAllInput>(() => new Protobuf_Room_Syn_RoomFrameAllInput()); private static readonly pb::MessageParser<Protobuf_Room_Syn_RoomFrameAllInputData> _parser = new pb::MessageParser<Protobuf_Room_Syn_RoomFrameAllInputData>(() => new Protobuf_Room_Syn_RoomFrameAllInputData());
private pb::UnknownFieldSet _unknownFields; private pb::UnknownFieldSet _unknownFields;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pb::MessageParser<Protobuf_Room_Syn_RoomFrameAllInput> Parser { get { return _parser; } } public static pb::MessageParser<Protobuf_Room_Syn_RoomFrameAllInputData> Parser { get { return _parser; } }
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor { public static pbr::MessageDescriptor Descriptor {
@ -3291,22 +3233,22 @@ namespace AxibugProtobuf {
} }
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public Protobuf_Room_Syn_RoomFrameAllInput() { public Protobuf_Room_Syn_RoomFrameAllInputData() {
OnConstruction(); OnConstruction();
} }
partial void OnConstruction(); partial void OnConstruction();
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public Protobuf_Room_Syn_RoomFrameAllInput(Protobuf_Room_Syn_RoomFrameAllInput other) : this() { public Protobuf_Room_Syn_RoomFrameAllInputData(Protobuf_Room_Syn_RoomFrameAllInputData other) : this() {
frameID_ = other.frameID_; frameID_ = other.frameID_;
inputData_ = other.inputData_; inputData_ = other.inputData_;
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
} }
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public Protobuf_Room_Syn_RoomFrameAllInput Clone() { public Protobuf_Room_Syn_RoomFrameAllInputData Clone() {
return new Protobuf_Room_Syn_RoomFrameAllInput(this); return new Protobuf_Room_Syn_RoomFrameAllInputData(this);
} }
/// <summary>Field number for the "FrameID" field.</summary> /// <summary>Field number for the "FrameID" field.</summary>
@ -3339,11 +3281,11 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override bool Equals(object other) { public override bool Equals(object other) {
return Equals(other as Protobuf_Room_Syn_RoomFrameAllInput); return Equals(other as Protobuf_Room_Syn_RoomFrameAllInputData);
} }
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public bool Equals(Protobuf_Room_Syn_RoomFrameAllInput other) { public bool Equals(Protobuf_Room_Syn_RoomFrameAllInputData other) {
if (ReferenceEquals(other, null)) { if (ReferenceEquals(other, null)) {
return false; return false;
} }
@ -3423,7 +3365,7 @@ namespace AxibugProtobuf {
} }
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public void MergeFrom(Protobuf_Room_Syn_RoomFrameAllInput other) { public void MergeFrom(Protobuf_Room_Syn_RoomFrameAllInputData other) {
if (other == null) { if (other == null) {
return; return;
} }
@ -3515,6 +3457,7 @@ namespace AxibugProtobuf {
public Protobuf_Room_Create(Protobuf_Room_Create other) : this() { public Protobuf_Room_Create(Protobuf_Room_Create other) : this() {
gameRomID_ = other.gameRomID_; gameRomID_ = other.gameRomID_;
gameRomHash_ = other.gameRomHash_; gameRomHash_ = other.gameRomHash_;
joinPlayerIdx_ = other.joinPlayerIdx_;
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
} }
@ -3545,6 +3488,20 @@ namespace AxibugProtobuf {
} }
} }
/// <summary>Field number for the "JoinPlayerIdx" field.</summary>
public const int JoinPlayerIdxFieldNumber = 3;
private int joinPlayerIdx_;
/// <summary>
///P1~P4[0~3] 以几号位玩家创建房间
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public int JoinPlayerIdx {
get { return joinPlayerIdx_; }
set {
joinPlayerIdx_ = value;
}
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override bool Equals(object other) { public override bool Equals(object other) {
return Equals(other as Protobuf_Room_Create); return Equals(other as Protobuf_Room_Create);
@ -3560,6 +3517,7 @@ namespace AxibugProtobuf {
} }
if (GameRomID != other.GameRomID) return false; if (GameRomID != other.GameRomID) return false;
if (GameRomHash != other.GameRomHash) return false; if (GameRomHash != other.GameRomHash) return false;
if (JoinPlayerIdx != other.JoinPlayerIdx) return false;
return Equals(_unknownFields, other._unknownFields); return Equals(_unknownFields, other._unknownFields);
} }
@ -3568,6 +3526,7 @@ namespace AxibugProtobuf {
int hash = 1; int hash = 1;
if (GameRomID != 0) hash ^= GameRomID.GetHashCode(); if (GameRomID != 0) hash ^= GameRomID.GetHashCode();
if (GameRomHash.Length != 0) hash ^= GameRomHash.GetHashCode(); if (GameRomHash.Length != 0) hash ^= GameRomHash.GetHashCode();
if (JoinPlayerIdx != 0) hash ^= JoinPlayerIdx.GetHashCode();
if (_unknownFields != null) { if (_unknownFields != null) {
hash ^= _unknownFields.GetHashCode(); hash ^= _unknownFields.GetHashCode();
} }
@ -3592,6 +3551,10 @@ namespace AxibugProtobuf {
output.WriteRawTag(18); output.WriteRawTag(18);
output.WriteString(GameRomHash); output.WriteString(GameRomHash);
} }
if (JoinPlayerIdx != 0) {
output.WriteRawTag(24);
output.WriteInt32(JoinPlayerIdx);
}
if (_unknownFields != null) { if (_unknownFields != null) {
_unknownFields.WriteTo(output); _unknownFields.WriteTo(output);
} }
@ -3609,6 +3572,10 @@ namespace AxibugProtobuf {
output.WriteRawTag(18); output.WriteRawTag(18);
output.WriteString(GameRomHash); output.WriteString(GameRomHash);
} }
if (JoinPlayerIdx != 0) {
output.WriteRawTag(24);
output.WriteInt32(JoinPlayerIdx);
}
if (_unknownFields != null) { if (_unknownFields != null) {
_unknownFields.WriteTo(ref output); _unknownFields.WriteTo(ref output);
} }
@ -3624,6 +3591,9 @@ namespace AxibugProtobuf {
if (GameRomHash.Length != 0) { if (GameRomHash.Length != 0) {
size += 1 + pb::CodedOutputStream.ComputeStringSize(GameRomHash); size += 1 + pb::CodedOutputStream.ComputeStringSize(GameRomHash);
} }
if (JoinPlayerIdx != 0) {
size += 1 + pb::CodedOutputStream.ComputeInt32Size(JoinPlayerIdx);
}
if (_unknownFields != null) { if (_unknownFields != null) {
size += _unknownFields.CalculateSize(); size += _unknownFields.CalculateSize();
} }
@ -3641,6 +3611,9 @@ namespace AxibugProtobuf {
if (other.GameRomHash.Length != 0) { if (other.GameRomHash.Length != 0) {
GameRomHash = other.GameRomHash; GameRomHash = other.GameRomHash;
} }
if (other.JoinPlayerIdx != 0) {
JoinPlayerIdx = other.JoinPlayerIdx;
}
_unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
} }
@ -3663,6 +3636,10 @@ namespace AxibugProtobuf {
GameRomHash = input.ReadString(); GameRomHash = input.ReadString();
break; break;
} }
case 24: {
JoinPlayerIdx = input.ReadInt32();
break;
}
} }
} }
#endif #endif
@ -3685,6 +3662,10 @@ namespace AxibugProtobuf {
GameRomHash = input.ReadString(); GameRomHash = input.ReadString();
break; break;
} }
case 24: {
JoinPlayerIdx = input.ReadInt32();
break;
}
} }
} }
} }
@ -4838,6 +4819,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public Protobuf_Room_WaitStep_RESP(Protobuf_Room_WaitStep_RESP other) : this() { public Protobuf_Room_WaitStep_RESP(Protobuf_Room_WaitStep_RESP other) : this() {
waitStep_ = other.waitStep_; waitStep_ = other.waitStep_;
loadStateRaw_ = other.loadStateRaw_;
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
} }
@ -4850,7 +4832,7 @@ namespace AxibugProtobuf {
public const int WaitStepFieldNumber = 1; public const int WaitStepFieldNumber = 1;
private int waitStep_; private int waitStep_;
/// <summary> /// <summary>
///状态 [0]等待主机上报即时存档 [1]要求准备 [2]开始(收到本状态时,立即开始跑模拟器核心) ///状态 [0]等待主机上报即时存档 [1]要求客户端准备 [2]开始(收到本状态时,立即开始跑模拟器核心)
/// </summary> /// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public int WaitStep { public int WaitStep {
@ -4860,6 +4842,20 @@ namespace AxibugProtobuf {
} }
} }
/// <summary>Field number for the "LoadStateRaw" field.</summary>
public const int LoadStateRawFieldNumber = 2;
private pb::ByteString loadStateRaw_ = pb::ByteString.Empty;
/// <summary>
///如下是 WaitStep = 1 时,才有值。广播即时存档
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public pb::ByteString LoadStateRaw {
get { return loadStateRaw_; }
set {
loadStateRaw_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
}
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override bool Equals(object other) { public override bool Equals(object other) {
return Equals(other as Protobuf_Room_WaitStep_RESP); return Equals(other as Protobuf_Room_WaitStep_RESP);
@ -4874,6 +4870,7 @@ namespace AxibugProtobuf {
return true; return true;
} }
if (WaitStep != other.WaitStep) return false; if (WaitStep != other.WaitStep) return false;
if (LoadStateRaw != other.LoadStateRaw) return false;
return Equals(_unknownFields, other._unknownFields); return Equals(_unknownFields, other._unknownFields);
} }
@ -4881,6 +4878,7 @@ namespace AxibugProtobuf {
public override int GetHashCode() { public override int GetHashCode() {
int hash = 1; int hash = 1;
if (WaitStep != 0) hash ^= WaitStep.GetHashCode(); if (WaitStep != 0) hash ^= WaitStep.GetHashCode();
if (LoadStateRaw.Length != 0) hash ^= LoadStateRaw.GetHashCode();
if (_unknownFields != null) { if (_unknownFields != null) {
hash ^= _unknownFields.GetHashCode(); hash ^= _unknownFields.GetHashCode();
} }
@ -4901,6 +4899,10 @@ namespace AxibugProtobuf {
output.WriteRawTag(8); output.WriteRawTag(8);
output.WriteInt32(WaitStep); output.WriteInt32(WaitStep);
} }
if (LoadStateRaw.Length != 0) {
output.WriteRawTag(18);
output.WriteBytes(LoadStateRaw);
}
if (_unknownFields != null) { if (_unknownFields != null) {
_unknownFields.WriteTo(output); _unknownFields.WriteTo(output);
} }
@ -4914,6 +4916,10 @@ namespace AxibugProtobuf {
output.WriteRawTag(8); output.WriteRawTag(8);
output.WriteInt32(WaitStep); output.WriteInt32(WaitStep);
} }
if (LoadStateRaw.Length != 0) {
output.WriteRawTag(18);
output.WriteBytes(LoadStateRaw);
}
if (_unknownFields != null) { if (_unknownFields != null) {
_unknownFields.WriteTo(ref output); _unknownFields.WriteTo(ref output);
} }
@ -4926,6 +4932,9 @@ namespace AxibugProtobuf {
if (WaitStep != 0) { if (WaitStep != 0) {
size += 1 + pb::CodedOutputStream.ComputeInt32Size(WaitStep); size += 1 + pb::CodedOutputStream.ComputeInt32Size(WaitStep);
} }
if (LoadStateRaw.Length != 0) {
size += 1 + pb::CodedOutputStream.ComputeBytesSize(LoadStateRaw);
}
if (_unknownFields != null) { if (_unknownFields != null) {
size += _unknownFields.CalculateSize(); size += _unknownFields.CalculateSize();
} }
@ -4940,6 +4949,9 @@ namespace AxibugProtobuf {
if (other.WaitStep != 0) { if (other.WaitStep != 0) {
WaitStep = other.WaitStep; WaitStep = other.WaitStep;
} }
if (other.LoadStateRaw.Length != 0) {
LoadStateRaw = other.LoadStateRaw;
}
_unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
} }
@ -4958,6 +4970,10 @@ namespace AxibugProtobuf {
WaitStep = input.ReadInt32(); WaitStep = input.ReadInt32();
break; break;
} }
case 18: {
LoadStateRaw = input.ReadBytes();
break;
}
} }
} }
#endif #endif
@ -4976,6 +4992,10 @@ namespace AxibugProtobuf {
WaitStep = input.ReadInt32(); WaitStep = input.ReadInt32();
break; break;
} }
case 18: {
LoadStateRaw = input.ReadBytes();
break;
}
} }
} }
} }
@ -5012,7 +5032,6 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public Protobuf_Room_HostPlayer_UpdateStateRaw(Protobuf_Room_HostPlayer_UpdateStateRaw other) : this() { public Protobuf_Room_HostPlayer_UpdateStateRaw(Protobuf_Room_HostPlayer_UpdateStateRaw other) : this() {
readyFrame_ = other.readyFrame_;
loadStateRaw_ = other.loadStateRaw_; loadStateRaw_ = other.loadStateRaw_;
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
} }
@ -5022,22 +5041,8 @@ namespace AxibugProtobuf {
return new Protobuf_Room_HostPlayer_UpdateStateRaw(this); return new Protobuf_Room_HostPlayer_UpdateStateRaw(this);
} }
/// <summary>Field number for the "ReadyFrame" field.</summary>
public const int ReadyFrameFieldNumber = 1;
private int readyFrame_;
/// <summary>
///要求准备的帧数 (非即时存档则为0
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public int ReadyFrame {
get { return readyFrame_; }
set {
readyFrame_ = value;
}
}
/// <summary>Field number for the "LoadStateRaw" field.</summary> /// <summary>Field number for the "LoadStateRaw" field.</summary>
public const int LoadStateRawFieldNumber = 2; public const int LoadStateRawFieldNumber = 1;
private pb::ByteString loadStateRaw_ = pb::ByteString.Empty; private pb::ByteString loadStateRaw_ = pb::ByteString.Empty;
/// <summary> /// <summary>
///即时存档byte数据 ///即时存档byte数据
@ -5063,7 +5068,6 @@ namespace AxibugProtobuf {
if (ReferenceEquals(other, this)) { if (ReferenceEquals(other, this)) {
return true; return true;
} }
if (ReadyFrame != other.ReadyFrame) return false;
if (LoadStateRaw != other.LoadStateRaw) return false; if (LoadStateRaw != other.LoadStateRaw) return false;
return Equals(_unknownFields, other._unknownFields); return Equals(_unknownFields, other._unknownFields);
} }
@ -5071,7 +5075,6 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override int GetHashCode() { public override int GetHashCode() {
int hash = 1; int hash = 1;
if (ReadyFrame != 0) hash ^= ReadyFrame.GetHashCode();
if (LoadStateRaw.Length != 0) hash ^= LoadStateRaw.GetHashCode(); if (LoadStateRaw.Length != 0) hash ^= LoadStateRaw.GetHashCode();
if (_unknownFields != null) { if (_unknownFields != null) {
hash ^= _unknownFields.GetHashCode(); hash ^= _unknownFields.GetHashCode();
@ -5089,12 +5092,8 @@ namespace AxibugProtobuf {
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
output.WriteRawMessage(this); output.WriteRawMessage(this);
#else #else
if (ReadyFrame != 0) {
output.WriteRawTag(8);
output.WriteInt32(ReadyFrame);
}
if (LoadStateRaw.Length != 0) { if (LoadStateRaw.Length != 0) {
output.WriteRawTag(18); output.WriteRawTag(10);
output.WriteBytes(LoadStateRaw); output.WriteBytes(LoadStateRaw);
} }
if (_unknownFields != null) { if (_unknownFields != null) {
@ -5106,12 +5105,8 @@ namespace AxibugProtobuf {
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
if (ReadyFrame != 0) {
output.WriteRawTag(8);
output.WriteInt32(ReadyFrame);
}
if (LoadStateRaw.Length != 0) { if (LoadStateRaw.Length != 0) {
output.WriteRawTag(18); output.WriteRawTag(10);
output.WriteBytes(LoadStateRaw); output.WriteBytes(LoadStateRaw);
} }
if (_unknownFields != null) { if (_unknownFields != null) {
@ -5123,9 +5118,6 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public int CalculateSize() { public int CalculateSize() {
int size = 0; int size = 0;
if (ReadyFrame != 0) {
size += 1 + pb::CodedOutputStream.ComputeInt32Size(ReadyFrame);
}
if (LoadStateRaw.Length != 0) { if (LoadStateRaw.Length != 0) {
size += 1 + pb::CodedOutputStream.ComputeBytesSize(LoadStateRaw); size += 1 + pb::CodedOutputStream.ComputeBytesSize(LoadStateRaw);
} }
@ -5140,9 +5132,6 @@ namespace AxibugProtobuf {
if (other == null) { if (other == null) {
return; return;
} }
if (other.ReadyFrame != 0) {
ReadyFrame = other.ReadyFrame;
}
if (other.LoadStateRaw.Length != 0) { if (other.LoadStateRaw.Length != 0) {
LoadStateRaw = other.LoadStateRaw; LoadStateRaw = other.LoadStateRaw;
} }
@ -5160,11 +5149,7 @@ namespace AxibugProtobuf {
default: default:
_unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
break; break;
case 8: { case 10: {
ReadyFrame = input.ReadInt32();
break;
}
case 18: {
LoadStateRaw = input.ReadBytes(); LoadStateRaw = input.ReadBytes();
break; break;
} }
@ -5182,11 +5167,7 @@ namespace AxibugProtobuf {
default: default:
_unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
break; break;
case 8: { case 10: {
ReadyFrame = input.ReadInt32();
break;
}
case 18: {
LoadStateRaw = input.ReadBytes(); LoadStateRaw = input.ReadBytes();
break; break;
} }
@ -5197,6 +5178,142 @@ namespace AxibugProtobuf {
} }
public sealed partial class Protobuf_Room_HostPlayer_UpdateStateRaw_RESP : pb::IMessage<Protobuf_Room_HostPlayer_UpdateStateRaw_RESP>
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
, pb::IBufferMessage
#endif
{
private static readonly pb::MessageParser<Protobuf_Room_HostPlayer_UpdateStateRaw_RESP> _parser = new pb::MessageParser<Protobuf_Room_HostPlayer_UpdateStateRaw_RESP>(() => new Protobuf_Room_HostPlayer_UpdateStateRaw_RESP());
private pb::UnknownFieldSet _unknownFields;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pb::MessageParser<Protobuf_Room_HostPlayer_UpdateStateRaw_RESP> Parser { get { return _parser; } }
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[22]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
pbr::MessageDescriptor pb::IMessage.Descriptor {
get { return Descriptor; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public Protobuf_Room_HostPlayer_UpdateStateRaw_RESP() {
OnConstruction();
}
partial void OnConstruction();
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public Protobuf_Room_HostPlayer_UpdateStateRaw_RESP(Protobuf_Room_HostPlayer_UpdateStateRaw_RESP other) : this() {
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public Protobuf_Room_HostPlayer_UpdateStateRaw_RESP Clone() {
return new Protobuf_Room_HostPlayer_UpdateStateRaw_RESP(this);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override bool Equals(object other) {
return Equals(other as Protobuf_Room_HostPlayer_UpdateStateRaw_RESP);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public bool Equals(Protobuf_Room_HostPlayer_UpdateStateRaw_RESP other) {
if (ReferenceEquals(other, null)) {
return false;
}
if (ReferenceEquals(other, this)) {
return true;
}
return Equals(_unknownFields, other._unknownFields);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override int GetHashCode() {
int hash = 1;
if (_unknownFields != null) {
hash ^= _unknownFields.GetHashCode();
}
return hash;
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override string ToString() {
return pb::JsonFormatter.ToDiagnosticString(this);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public void WriteTo(pb::CodedOutputStream output) {
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
output.WriteRawMessage(this);
#else
if (_unknownFields != null) {
_unknownFields.WriteTo(output);
}
#endif
}
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
if (_unknownFields != null) {
_unknownFields.WriteTo(ref output);
}
}
#endif
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public int CalculateSize() {
int size = 0;
if (_unknownFields != null) {
size += _unknownFields.CalculateSize();
}
return size;
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public void MergeFrom(Protobuf_Room_HostPlayer_UpdateStateRaw_RESP other) {
if (other == null) {
return;
}
_unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public void MergeFrom(pb::CodedInputStream input) {
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
input.ReadRawMessage(this);
#else
uint tag;
while ((tag = input.ReadTag()) != 0) {
switch(tag) {
default:
_unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
break;
}
}
#endif
}
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
uint tag;
while ((tag = input.ReadTag()) != 0) {
switch(tag) {
default:
_unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
break;
}
}
}
#endif
}
public sealed partial class Protobuf_Room_Player_Ready : pb::IMessage<Protobuf_Room_Player_Ready> public sealed partial class Protobuf_Room_Player_Ready : pb::IMessage<Protobuf_Room_Player_Ready>
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
, pb::IBufferMessage , pb::IBufferMessage
@ -5209,7 +5326,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor { public static pbr::MessageDescriptor Descriptor {
get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[22]; } get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[23]; }
} }
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.Diagnostics.DebuggerNonUserCodeAttribute]

View File

@ -20,7 +20,7 @@ enum CommandID
// //
CMD_Room_Create = 5101; // Protobuf_Room_Create | Protobuf_Room_Create_RESP CMD_Room_Create = 5101; // Protobuf_Room_Create | Protobuf_Room_Create_RESP
CMD_Room_Join = 5105; // Protobuf_Room_Join | Protobuf_Room_Join_RESP CMD_Room_Join = 5105; // Protobuf_Room_Join | Protobuf_Room_Join_RESP //Join之前按照房间信息Rom
CMD_Room_Leave = 5106; // Protobuf_Room_Leave | Protobuf_Room_Leave_RESP CMD_Room_Leave = 5106; // Protobuf_Room_Leave | Protobuf_Room_Leave_RESP
CMD_Room_MyRoom_State_Changed = 5110; // Protobuf_Room_MyRoom_State_Change CMD_Room_MyRoom_State_Changed = 5110; // Protobuf_Room_MyRoom_State_Change
@ -45,12 +45,12 @@ enum CommandID
// Step1走流程 // Step1走流程
// //
CMD_Room_WaitStep = 5201; //Step通知 Protobuf_Room_WaitStep_RESP CMD_Room_WaitStep = 5201; //Step通知 Protobuf_Room_WaitStep_RESP
CMD_Room_HostPlayer_UpdateStateRaw = 5204; // Protobuf_Room_HostPlayer_UpdateStateRaw CMD_Room_HostPlayer_UpdateStateRaw = 5204; // | Protobuf_Room_HostPlayer_UpdateStateRaw | Protobuf_Room_HostPlayer_UpdateStateRaw_RESP
CMD_Room_Player_Ready = 5208; // Protobuf_Room_Player_Ready CMD_Room_Player_Ready = 5208; // Protobuf_Room_Player_Ready
// //
CMD_Room_Singel_PlayerInput = 6010; // Protobuf_Room_SinglePlayerInputData CMD_Room_Singel_PlayerInput = 6010; // Protobuf_Room_SinglePlayerInputData
CMD_ROOM_SYN = 6015; // Protobuf_Room_Syn_RoomFrameAllInput CMD_ROOM_SYN_PlayerInput = 6015; // Protobuf_Room_Syn_RoomFrameAllInputData
// //
CMD_Screen = 7001; // | 广 Protobuf_Screnn_Frame CMD_Screen = 7001; // | 广 Protobuf_Screnn_Frame
@ -63,6 +63,8 @@ enum ErrorCode
ERROR_ROOM_NOT_FOUND = 10;// ERROR_ROOM_NOT_FOUND = 10;//
ERROR_ROOM_SLOT_READLY_HAD_PLAYER=11;// ERROR_ROOM_SLOT_READLY_HAD_PLAYER=11;//
ERROR_ROOM_CANT_DO_CURR_STATE =50;//
} }
enum LoginType enum LoginType
@ -79,23 +81,22 @@ enum DeviceType
PSV = 4; PSV = 4;
} }
enum RoomPlayerState //enum RoomPlayerState
{ //{
None_PlayerState = 0;// // None_PlayerState = 0;//
OnlyP1 = 1; //P1 // OnlyP1 = 1; //P1
OnlyP2 = 2; //P2 // OnlyP2 = 2; //P2
BothOnline = 3; // // BothOnline = 3; //
} //}
enum RoomGameState enum RoomGameState
{ {
None_GameState = 0;// None_GameState = 0;//
OnlyHost = 1;// OnlyHost = 1;//
ReadyStep_0 = 2;//ReadyStep0 WaitRawUpdate = 2;//
ReadyStep_1 = 3;//ReadyStep1 WaitReady = 3;//Ready
ReadyStep_2 = 4;//ReadyStep2 Pause = 4;//
Pause = 5;// InOnlineGame = 5;//
InGame = 6;//
} }
@ -165,7 +166,6 @@ message Protobuf_Room_MiniInfo
int32 RoomID = 1;//ID int32 RoomID = 1;//ID
int32 GameRomID = 2;//ID int32 GameRomID = 2;//ID
string GameRomHash = 3; string GameRomHash = 3;
RoomPlayerState PlayerState = 4;//
RoomGameState GameState = 5;// RoomGameState GameState = 5;//
int32 ObsUserCount = 6;// int32 ObsUserCount = 6;//
int64 Player1_UID = 7;//1 UID int64 Player1_UID = 7;//1 UID
@ -193,7 +193,7 @@ message Protobuf_Room_SinglePlayerInputData
uint32 InputData = 2;// uint32 InputData = 2;//
} }
message Protobuf_Room_Syn_RoomFrameAllInput message Protobuf_Room_Syn_RoomFrameAllInputData
{ {
uint32 FrameID = 1;// uint32 FrameID = 1;//
uint64 InputData = 2;// uint64 InputData = 2;//
@ -203,6 +203,7 @@ message Protobuf_Room_Create
{ {
int32 GameRomID = 1; int32 GameRomID = 1;
string GameRomHash = 2; string GameRomHash = 2;
int32 JoinPlayerIdx = 3;//P1~P4[0~3]
} }
message Protobuf_Room_Create_RESP message Protobuf_Room_Create_RESP
@ -239,13 +240,19 @@ message Protobuf_Room_MyRoom_State_Change
message Protobuf_Room_WaitStep_RESP message Protobuf_Room_WaitStep_RESP
{ {
int32 WaitStep = 1;// [0] [1] [2] int32 WaitStep = 1;// [0] [1] [2]
// WaitStep = 1 广
bytes LoadStateRaw = 2;//byte数据
} }
message Protobuf_Room_HostPlayer_UpdateStateRaw message Protobuf_Room_HostPlayer_UpdateStateRaw
{ {
int32 ReadyFrame = 1;// (0 bytes LoadStateRaw = 1;//byte数据
bytes LoadStateRaw = 2;//byte数据 }
message Protobuf_Room_HostPlayer_UpdateStateRaw_RESP
{
} }
message Protobuf_Room_Player_Ready message Protobuf_Room_Player_Ready

View File

@ -24,6 +24,7 @@ Response:
"resultAllCount": 6, "resultAllCount": 6,
"gameList": [ "gameList": [
{ {
"orderid": 0,
"id": 190, "id": 190,
"romName": "热血物语", "romName": "热血物语",
"gType": "ACT", "gType": "ACT",
@ -34,6 +35,7 @@ Response:
"stars": 0 "stars": 0
}, },
{ {
"orderid": 1,
"id": 460, "id": 460,
"romName": "热血时代剧(热血道中记)", "romName": "热血时代剧(热血道中记)",
"gType": "ACT", "gType": "ACT",
@ -44,6 +46,7 @@ Response:
"stars": 0 "stars": 0
}, },
{ {
"orderid": 2,
"id": 585, "id": 585,
"romName": "热血硬派", "romName": "热血硬派",
"gType": "ACT", "gType": "ACT",
@ -54,6 +57,7 @@ Response:
"stars": 0 "stars": 0
}, },
{ {
"orderid": 3,
"id": 674, "id": 674,
"romName": "热血物语(美版)", "romName": "热血物语(美版)",
"gType": "ACT", "gType": "ACT",
@ -64,6 +68,7 @@ Response:
"stars": 0 "stars": 0
}, },
{ {
"orderid": 4,
"id": 826, "id": 826,
"romName": "热血时代剧美版(热血道中记美版)", "romName": "热血时代剧美版(热血道中记美版)",
"gType": "ACT", "gType": "ACT",
@ -118,6 +123,7 @@ Response:
public class Resp_RomInfo public class Resp_RomInfo
{ {
public int orderid { get; set; }
public int id { get; set; } public int id { get; set; }
public string romName { get; set;} public string romName { get; set;}
public string gType { get; set; } public string gType { get; set; }