Compare commits

..

No commits in common. "1899fcdcd98843a62c477ac1d99c0a8ebb504098" and "6e34b02c2984f0d4a83a2424cce7b4bde05bafd8" have entirely different histories.

25 changed files with 2452 additions and 7079 deletions

View File

@ -4,6 +4,7 @@ namespace AxiReplay
{ {
public class NetReplay public class NetReplay
{ {
int MaxInFrame = 0;
public int mCurrPlayFrame = -1; public int mCurrPlayFrame = -1;
Queue<ReplayStep> mQueueReplay; Queue<ReplayStep> mQueueReplay;
ReplayStep mNextReplay; ReplayStep mNextReplay;
@ -12,28 +13,20 @@ namespace AxiReplay
/// <summary> /// <summary>
/// 服务器远端当前帧 /// 服务器远端当前帧
/// </summary> /// </summary>
public int mRemoteFrameIdx { get; private set; } public int remoteFrameIdx { get; private set; }
/// <summary> /// <summary>
/// 当前帧和服务器帧相差数量 /// 当前帧和服务器帧相差数量
/// </summary> /// </summary>
public int remoteFrameDiff => mRemoteFrameIdx - mCurrPlayFrame; public int remoteFrameDiff => remoteFrameIdx - mCurrPlayFrame;
public NetReplay() public NetReplay()
{ {
mQueueReplay = new Queue<ReplayStep>(); mQueueReplay = new Queue<ReplayStep>();
} }
public void ResetData()
{
mQueueReplay.Clear();
mRemoteFrameIdx = 0;
byFrameIdx = 0;
mNextReplay = default(ReplayStep);
mCurrReplay = default(ReplayStep);
}
public void InData(ReplayStep inputData,int ServerFrameIdx) public void InData(ReplayStep inputData,int ServerFrameIdx)
{ {
mQueueReplay.Enqueue(inputData); mQueueReplay.Enqueue(inputData);
mRemoteFrameIdx = inputData.FrameStartID; MaxInFrame = inputData.FrameStartID;
remoteFrameIdx = ServerFrameIdx;
} }
public bool NextFrame(out ReplayStep data, out int FrameDiff) public bool NextFrame(out ReplayStep data, out int FrameDiff)
{ {
@ -62,17 +55,17 @@ namespace AxiReplay
else else
{ {
data = mCurrReplay; data = mCurrReplay;
FrameDiff = mRemoteFrameIdx - mCurrPlayFrame; FrameDiff = MaxInFrame - mCurrPlayFrame;
} }
return Changed; return Changed;
} }
void UpdateNextFrame(int targetFrame,out int FrameDiff) void UpdateNextFrame(int targetFrame,out int FrameDiff)
{ {
FrameDiff = mRemoteFrameIdx - targetFrame; FrameDiff = MaxInFrame - targetFrame;
//如果已经超过 //如果已经超过
while (targetFrame > mNextReplay.FrameStartID) while (targetFrame > mNextReplay.FrameStartID)
{ {
if (mNextReplay.FrameStartID >= mRemoteFrameIdx) if (mNextReplay.FrameStartID >= MaxInFrame)
{ {
//TODO //TODO
//bEnd = true; //bEnd = true;

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.8 KiB

After

Width:  |  Height:  |  Size: 5.9 KiB

View File

@ -233,7 +233,6 @@ GameObject:
- component: {fileID: 6087025893861054323} - component: {fileID: 6087025893861054323}
- component: {fileID: 7036072602178187444} - component: {fileID: 7036072602178187444}
- component: {fileID: 6771349210554360888} - component: {fileID: 6771349210554360888}
- component: {fileID: 3709368495556978651}
m_Layer: 5 m_Layer: 5
m_Name: Icon m_Name: Icon
m_TagString: Untagged m_TagString: Untagged
@ -253,15 +252,14 @@ RectTransform:
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: m_Children:
- {fileID: 1323634865265500141} - {fileID: 1323634865265500141}
- {fileID: 331028397738758164}
m_Father: {fileID: 8754483333502849411} m_Father: {fileID: 8754483333502849411}
m_RootOrder: 0 m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 0.5, y: 1}
m_AnchorMax: {x: 0, y: 0} m_AnchorMax: {x: 0.5, y: 1}
m_AnchoredPosition: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0} m_SizeDelta: {x: 100, y: 100}
m_Pivot: {x: 1, y: 0.5} m_Pivot: {x: 0.5, y: 1}
--- !u!222 &7036072602178187444 --- !u!222 &7036072602178187444
CanvasRenderer: CanvasRenderer:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -300,26 +298,6 @@ MonoBehaviour:
m_FillOrigin: 0 m_FillOrigin: 0
m_UseSpriteMesh: 0 m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1 m_PixelsPerUnitMultiplier: 1
--- !u!114 &3709368495556978651
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1776357407830023228}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3}
m_Name:
m_EditorClassIdentifier:
m_IgnoreLayout: 0
m_MinWidth: -1
m_MinHeight: -1
m_PreferredWidth: 144
m_PreferredHeight: 104
m_FlexibleWidth: -1
m_FlexibleHeight: -1
m_LayoutPriority: 1
--- !u!1 &1813396448589485488 --- !u!1 &1813396448589485488
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -431,7 +409,7 @@ RectTransform:
m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 144, y: 104} m_SizeDelta: {x: 100, y: 102}
m_Pivot: {x: 0, y: 0.5} m_Pivot: {x: 0, y: 0.5}
--- !u!114 &-3959751710151339114 --- !u!114 &-3959751710151339114
MonoBehaviour: MonoBehaviour:
@ -578,19 +556,19 @@ RectTransform:
m_PrefabInstance: {fileID: 0} m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3811189825355447390} m_GameObject: {fileID: 3811189825355447390}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: m_Children:
- {fileID: 2303118795734916657} - {fileID: 2303118795734916657}
- {fileID: 4467178468921796307} - {fileID: 4467178468921796307}
m_Father: {fileID: 6087025893861054323} m_Father: {fileID: 8754483333502849411}
m_RootOrder: 1 m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 0.5} m_AnchorMin: {x: 1, y: 0.5}
m_AnchorMax: {x: 1, y: 0.5} m_AnchorMax: {x: 1, y: 0.5}
m_AnchoredPosition: {x: 0.000015258789, y: 0} m_AnchoredPosition: {x: 50, y: -165.08997}
m_SizeDelta: {x: 0, y: 0} m_SizeDelta: {x: 2338.0796, y: 1768.3333}
m_Pivot: {x: 0, y: 0.5} m_Pivot: {x: 0, y: 0.5}
--- !u!114 &3428297980621487917 --- !u!114 &3428297980621487917
MonoBehaviour: MonoBehaviour:
@ -643,8 +621,8 @@ MonoBehaviour:
step: 50 step: 50
splitStep: 200 splitStep: 200
m_selectArrow: {fileID: 4467178468921796307} m_selectArrow: {fileID: 4467178468921796307}
ArrowOffset: 60 ArrowOffset: 115
WidthFix: 280 WidthFix: 225
itemGroup: {fileID: 6055880809428073973} itemGroup: {fileID: 6055880809428073973}
srollRect: {fileID: 3428297980621487917} srollRect: {fileID: 3428297980621487917}
--- !u!225 &3086674949377227884 --- !u!225 &3086674949377227884
@ -669,6 +647,7 @@ GameObject:
m_Component: m_Component:
- component: {fileID: 8789823129857705082} - component: {fileID: 8789823129857705082}
- component: {fileID: 3252398029444565139} - component: {fileID: 3252398029444565139}
- component: {fileID: 4972426757569440742}
- component: {fileID: 5331629140490413834} - component: {fileID: 5331629140490413834}
m_Layer: 5 m_Layer: 5
m_Name: InfoNode m_Name: InfoNode
@ -693,8 +672,8 @@ RectTransform:
m_Father: {fileID: 8754483333502849411} m_Father: {fileID: 8754483333502849411}
m_RootOrder: 1 m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 1, y: 0}
m_AnchorMax: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0, y: 0.5} m_Pivot: {x: 0, y: 0.5}
@ -724,6 +703,20 @@ MonoBehaviour:
m_ChildScaleWidth: 0 m_ChildScaleWidth: 0
m_ChildScaleHeight: 0 m_ChildScaleHeight: 0
m_ReverseArrangement: 0 m_ReverseArrangement: 0
--- !u!114 &4972426757569440742
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3993825260653792697}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3}
m_Name:
m_EditorClassIdentifier:
m_HorizontalFit: 2
m_VerticalFit: 2
--- !u!225 &5331629140490413834 --- !u!225 &5331629140490413834
CanvasGroup: CanvasGroup:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -902,8 +895,6 @@ GameObject:
serializedVersion: 6 serializedVersion: 6
m_Component: m_Component:
- component: {fileID: 8754483333502849411} - component: {fileID: 8754483333502849411}
- component: {fileID: 3637207717728009549}
- component: {fileID: 557410003364511780}
m_Layer: 5 m_Layer: 5
m_Name: Root m_Name: Root
m_TagString: Untagged m_TagString: Untagged
@ -924,51 +915,12 @@ RectTransform:
m_Children: m_Children:
- {fileID: 6087025893861054323} - {fileID: 6087025893861054323}
- {fileID: 8789823129857705082} - {fileID: 8789823129857705082}
- {fileID: 331028397738758164}
m_Father: {fileID: 1998281097548910301} m_Father: {fileID: 1998281097548910301}
m_RootOrder: 0 m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0.5} m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 130} m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0, y: 0.5} m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &3637207717728009549
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8290338740711049006}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Padding:
m_Left: 0
m_Right: 0
m_Top: 0
m_Bottom: 0
m_ChildAlignment: 3
m_Spacing: 0
m_ChildForceExpandWidth: 0
m_ChildForceExpandHeight: 0
m_ChildControlWidth: 1
m_ChildControlHeight: 1
m_ChildScaleWidth: 0
m_ChildScaleHeight: 0
m_ReverseArrangement: 0
--- !u!114 &557410003364511780
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8290338740711049006}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3}
m_Name:
m_EditorClassIdentifier:
m_HorizontalFit: 2
m_VerticalFit: 0

View File

@ -301,7 +301,7 @@ MonoBehaviour:
m_menuItemRoot: {fileID: 3226730524206505336} m_menuItemRoot: {fileID: 3226730524206505336}
SubMenuItemTemplate: {fileID: 2502609279043838113, guid: 01f3c5497992f944eae9b9efa15a19c2, type: 3} SubMenuItemTemplate: {fileID: 2502609279043838113, guid: 01f3c5497992f944eae9b9efa15a19c2, type: 3}
alphaGroup: {fileID: 6355204462360987243} alphaGroup: {fileID: 6355204462360987243}
m_selectItemPosition: {x: -72, y: -51} m_selectItemPosition: {x: -50, y: -51}
step: 120 step: 120
splitStep: 280 splitStep: 280
--- !u!225 &6355204462360987243 --- !u!225 &6355204462360987243

View File

@ -255,11 +255,11 @@ RectTransform:
m_Father: {fileID: 8754483333502849411} m_Father: {fileID: 8754483333502849411}
m_RootOrder: 0 m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 0.5, y: 1}
m_AnchorMax: {x: 0, y: 0} m_AnchorMax: {x: 0.5, y: 1}
m_AnchoredPosition: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 144, y: 104} m_SizeDelta: {x: 100, y: 100}
m_Pivot: {x: 1, y: 0.5} m_Pivot: {x: 0.5, y: 1}
--- !u!222 &7036072602178187444 --- !u!222 &7036072602178187444
CanvasRenderer: CanvasRenderer:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -334,7 +334,7 @@ RectTransform:
m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 144, y: 104} m_SizeDelta: {x: 100, y: 102}
m_Pivot: {x: 0, y: 0.5} m_Pivot: {x: 0, y: 0.5}
--- !u!114 &2502609279043838113 --- !u!114 &2502609279043838113
MonoBehaviour: MonoBehaviour:
@ -412,9 +412,9 @@ RectTransform:
m_Father: {fileID: 8754483333502849411} m_Father: {fileID: 8754483333502849411}
m_RootOrder: 1 m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 1, y: 0}
m_AnchorMax: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 144, y: 0} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0, y: 0.5} m_Pivot: {x: 0, y: 0.5}
--- !u!114 &3252398029444565139 --- !u!114 &3252398029444565139
@ -557,7 +557,6 @@ GameObject:
serializedVersion: 6 serializedVersion: 6
m_Component: m_Component:
- component: {fileID: 8754483333502849411} - component: {fileID: 8754483333502849411}
- component: {fileID: 7558693960475443325}
m_Layer: 5 m_Layer: 5
m_Name: Root m_Name: Root
m_TagString: Untagged m_TagString: Untagged
@ -586,29 +585,3 @@ RectTransform:
m_AnchoredPosition: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5} m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &7558693960475443325
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8290338740711049006}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Padding:
m_Left: 0
m_Right: 0
m_Top: 0
m_Bottom: 0
m_ChildAlignment: 3
m_Spacing: 0
m_ChildForceExpandWidth: 1
m_ChildForceExpandHeight: 1
m_ChildControlWidth: 0
m_ChildControlHeight: 0
m_ChildScaleWidth: 0
m_ChildScaleHeight: 0
m_ReverseArrangement: 0

View File

@ -8,7 +8,6 @@
OnRoomListAllUpdate,//房间列表全量刷新 OnRoomListAllUpdate,//房间列表全量刷新
OnRoomListSingleUpdate,//房间列表中单个更新 OnRoomListSingleUpdate,//房间列表中单个更新
OnRoomGetRoomScreen,//获取到房间数据
/// <summary> /// <summary>
/// 我进入房间 /// 我进入房间
@ -33,5 +32,10 @@
/// 服务器等待Step更新 /// 服务器等待Step更新
/// </summary> /// </summary>
OnRoomWaitStepChange, OnRoomWaitStepChange,
/// <summary>
/// 要求加载即时存档
/// </summary>
OnRoomNeedLoadRawData,
} }
} }

View File

@ -3,6 +3,9 @@ using AxibugEmuOnline.Client.Common;
using AxibugEmuOnline.Client.Network; using AxibugEmuOnline.Client.Network;
using AxibugProtobuf; using AxibugProtobuf;
using System; using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Sockets;
namespace AxibugEmuOnline.Client.Manager namespace AxibugEmuOnline.Client.Manager
{ {
@ -37,9 +40,6 @@ namespace AxibugEmuOnline.Client.Manager
{ {
App.log.Info("登录成功"); App.log.Info("登录成功");
App.user.InitMainUserData(App.user.userdata.Account, msg.UID); App.user.InitMainUserData(App.user.userdata.Account, msg.UID);
App.log.Info("获取服务器列表");
App.roomMgr.SendGetRoomList();
} }
else else
{ {

View File

@ -31,7 +31,6 @@ namespace AxibugEmuOnline.Client.Manager
} }
Protobuf_Room_List _Protobuf_Room_List = new Protobuf_Room_List(); Protobuf_Room_List _Protobuf_Room_List = new Protobuf_Room_List();
Protobuf_Room_Get_Screen _Protobuf_Room_Get_Screen = new Protobuf_Room_Get_Screen();
Protobuf_Room_Create _Protobuf_Room_Create = new Protobuf_Room_Create(); Protobuf_Room_Create _Protobuf_Room_Create = new Protobuf_Room_Create();
Protobuf_Room_Join _Protobuf_Room_Join = new Protobuf_Room_Join(); Protobuf_Room_Join _Protobuf_Room_Join = new Protobuf_Room_Join();
Protobuf_Room_Leave _Protobuf_Room_Leave = new Protobuf_Room_Leave(); Protobuf_Room_Leave _Protobuf_Room_Leave = new Protobuf_Room_Leave();
@ -42,7 +41,6 @@ namespace AxibugEmuOnline.Client.Manager
{ {
NetMsg.Instance.RegNetMsgEvent((int)CommandID.CmdRoomList, RecvGetRoomList); NetMsg.Instance.RegNetMsgEvent((int)CommandID.CmdRoomList, RecvGetRoomList);
NetMsg.Instance.RegNetMsgEvent((int)CommandID.CmdRoomListUpdate, RecvGetRoomListUpdate); NetMsg.Instance.RegNetMsgEvent((int)CommandID.CmdRoomListUpdate, RecvGetRoomListUpdate);
NetMsg.Instance.RegNetMsgEvent((int)CommandID.CmdRoomGetScreen, RecvRoomGetScreen);
NetMsg.Instance.RegNetMsgEvent((int)CommandID.CmdRoomCreate, RecvCreateRoom); NetMsg.Instance.RegNetMsgEvent((int)CommandID.CmdRoomCreate, RecvCreateRoom);
NetMsg.Instance.RegNetMsgEvent((int)CommandID.CmdRoomJoin, RecvJoinRoom); NetMsg.Instance.RegNetMsgEvent((int)CommandID.CmdRoomJoin, RecvJoinRoom);
NetMsg.Instance.RegNetMsgEvent((int)CommandID.CmdRoomLeave, RecvLeavnRoom); NetMsg.Instance.RegNetMsgEvent((int)CommandID.CmdRoomLeave, RecvLeavnRoom);
@ -98,11 +96,10 @@ namespace AxibugEmuOnline.Client.Manager
public void InitRePlay() public void InitRePlay()
{ {
netReplay = new NetReplay(); netReplay = new NetReplay();
netReplay.ResetData();
} }
public void ReleaseRePlay() public void ReleaseRePlay()
{ {
netReplay.ResetData();
} }
#endregion #endregion
@ -116,10 +113,6 @@ namespace AxibugEmuOnline.Client.Manager
return 0; return 0;
if (mineRoomMiniInfo.Player2UID == App.user.userdata.UID) if (mineRoomMiniInfo.Player2UID == App.user.userdata.UID)
return 1; return 1;
if (mineRoomMiniInfo.Player3UID == App.user.userdata.UID)
return 2;
if (mineRoomMiniInfo.Player4UID == App.user.userdata.UID)
return 3;
return -1; return -1;
} }
@ -202,29 +195,6 @@ namespace AxibugEmuOnline.Client.Manager
Protobuf_Room_Update_RESP msg = ProtoBufHelper.DeSerizlize<Protobuf_Room_Update_RESP>(reqData); Protobuf_Room_Update_RESP msg = ProtoBufHelper.DeSerizlize<Protobuf_Room_Update_RESP>(reqData);
AddOrUpdateRoomList(msg.RoomMiniInfo); AddOrUpdateRoomList(msg.RoomMiniInfo);
Eventer.Instance.PostEvent(EEvent.OnRoomListSingleUpdate, msg.RoomMiniInfo.GameRomID); Eventer.Instance.PostEvent(EEvent.OnRoomListSingleUpdate, msg.RoomMiniInfo.GameRomID);
}
/// <summary>
/// 获取房间画面快照
/// </summary>
/// <param name="RoomID"></param>
public void SendGetRoomScreen(int RoomID)
{
_Protobuf_Room_Get_Screen.RoomID = RoomID;
App.log.Info($"获取房间画面快照");
App.network.SendToServer((int)CommandID.CmdRoomGetScreen, ProtoBufHelper.Serizlize(_Protobuf_Room_Get_Screen));
}
/// <summary>
/// 获取单个房间画面
/// </summary>
/// <param name="reqData"></param>
void RecvRoomGetScreen(byte[] reqData)
{
App.log.Debug("单个房间状态更新");
Protobuf_Room_Get_Screen_RESP msg = ProtoBufHelper.DeSerizlize<Protobuf_Room_Get_Screen_RESP>(reqData);
//解压
byte[] data = Helper.DecompressByteArray(msg.RawBitmap.ToArray());
Eventer.Instance.PostEvent(EEvent.OnRoomGetRoomScreen, msg.RoomID, data);
} }
/// <summary> /// <summary>
@ -334,7 +304,7 @@ namespace AxibugEmuOnline.Client.Manager
/// 上报即时存档 /// 上报即时存档
/// </summary> /// </summary>
/// <param name="RoomID"></param> /// <param name="RoomID"></param>
public void SendHostRaw(byte[] RawData) public void SendLeavnRoom(byte[] RawData)
{ {
//压缩 //压缩
byte[] compressRawData = Helper.CompressByteArray(RawData); byte[] compressRawData = Helper.CompressByteArray(RawData);
@ -387,6 +357,7 @@ namespace AxibugEmuOnline.Client.Manager
App.network.SendToServer((int)CommandID.CmdRoomSingelPlayerInput, ProtoBufHelper.Serizlize(_Protobuf_Room_SinglePlayerInputData)); App.network.SendToServer((int)CommandID.CmdRoomSingelPlayerInput, ProtoBufHelper.Serizlize(_Protobuf_Room_SinglePlayerInputData));
} }
void RecvHostSyn_RoomFrameAllInputData(byte[] reqData) void RecvHostSyn_RoomFrameAllInputData(byte[] reqData)
{ {
Protobuf_Room_Syn_RoomFrameAllInputData msg = ProtoBufHelper.DeSerizlize<Protobuf_Room_Syn_RoomFrameAllInputData>(reqData); Protobuf_Room_Syn_RoomFrameAllInputData msg = ProtoBufHelper.DeSerizlize<Protobuf_Room_Syn_RoomFrameAllInputData>(reqData);
@ -408,5 +379,10 @@ namespace AxibugEmuOnline.Client.Manager
//解压 //解压
byte[] data = Helper.DecompressByteArray(msg.RawBitmap.ToArray()); byte[] data = Helper.DecompressByteArray(msg.RawBitmap.ToArray());
} }
internal void SendHostRaw(byte[] stateRaw)
{
throw new NotImplementedException();
}
} }
} }

View File

@ -71,30 +71,26 @@ namespace AxibugProtobuf {
"KAwiPwonUHJvdG9idWZfUm9vbV9Ib3N0UGxheWVyX1VwZGF0ZVN0YXRlUmF3", "KAwiPwonUHJvdG9idWZfUm9vbV9Ib3N0UGxheWVyX1VwZGF0ZVN0YXRlUmF3",
"EhQKDExvYWRTdGF0ZVJhdxgBIAEoDCIuCixQcm90b2J1Zl9Sb29tX0hvc3RQ", "EhQKDExvYWRTdGF0ZVJhdxgBIAEoDCIuCixQcm90b2J1Zl9Sb29tX0hvc3RQ",
"bGF5ZXJfVXBkYXRlU3RhdGVSYXdfUkVTUCIcChpQcm90b2J1Zl9Sb29tX1Bs", "bGF5ZXJfVXBkYXRlU3RhdGVSYXdfUkVTUCIcChpQcm90b2J1Zl9Sb29tX1Bs",
"YXllcl9SZWFkeSIqChhQcm90b2J1Zl9Sb29tX0dldF9TY3JlZW4SDgoGUm9v", "YXllcl9SZWFkeSqaAwoJQ29tbWFuZElEEg4KCkNNRF9ERUZBVUwQABIMCghD",
"bUlEGAEgASgFIlMKHVByb3RvYnVmX1Jvb21fR2V0X1NjcmVlbl9SRVNQEg4K", "TURfUElORxABEgwKCENNRF9QT05HEAISDgoJQ01EX0xPR0lOENEPEhAKC0NN",
"BlJvb21JRBgBIAEoBRIPCgdGcmFtZUlEGAIgASgFEhEKCVJhd0JpdG1hcBgD", "RF9DSEFUTVNHEKEfEhIKDUNNRF9Sb29tX0xpc3QQiScSGQoUQ01EX1Jvb21f",
"IAEoDCq0AwoJQ29tbWFuZElEEg4KCkNNRF9ERUZBVUwQABIMCghDTURfUElO", "TGlzdF9VcGRhdGUQiicSFAoPQ01EX1Jvb21fQ3JlYXRlEO0nEhIKDUNNRF9S",
"RxABEgwKCENNRF9QT05HEAISDgoJQ01EX0xPR0lOENEPEhAKC0NNRF9DSEFU", "b29tX0pvaW4Q8ScSEwoOQ01EX1Jvb21fTGVhdmUQ8icSIgodQ01EX1Jvb21f",
"TVNHEKEfEhIKDUNNRF9Sb29tX0xpc3QQiScSGQoUQ01EX1Jvb21fTGlzdF9V", "TXlSb29tX1N0YXRlX0NoYW5nZWQQ9icSFgoRQ01EX1Jvb21fV2FpdFN0ZXAQ",
"cGRhdGUQiicSGAoTQ01EX1Jvb21fR2V0X1NjcmVlbhCTJxIUCg9DTURfUm9v", "0SgSJwoiQ01EX1Jvb21fSG9zdFBsYXllcl9VcGRhdGVTdGF0ZVJhdxDUKBIa",
"bV9DcmVhdGUQ7ScSEgoNQ01EX1Jvb21fSm9pbhDxJxITCg5DTURfUm9vbV9M", "ChVDTURfUm9vbV9QbGF5ZXJfUmVhZHkQ2CgSIAobQ01EX1Jvb21fU2luZ2Vs",
"ZWF2ZRDyJxIiCh1DTURfUm9vbV9NeVJvb21fU3RhdGVfQ2hhbmdlZBD2JxIW", "X1BsYXllcklucHV0EPouEh0KGENNRF9ST09NX1NZTl9QbGF5ZXJJbnB1dBD/",
"ChFDTURfUm9vbV9XYWl0U3RlcBDRKBInCiJDTURfUm9vbV9Ib3N0UGxheWVy", "LhIPCgpDTURfU2NyZWVuENk2Ko8BCglFcnJvckNvZGUSEAoMRVJST1JfREVG",
"X1VwZGF0ZVN0YXRlUmF3ENQoEhoKFUNNRF9Sb29tX1BsYXllcl9SZWFkeRDY", "QVVMEAASDAoIRVJST1JfT0sQARIYChRFUlJPUl9ST09NX05PVF9GT1VORBAK",
"KBIgChtDTURfUm9vbV9TaW5nZWxfUGxheWVySW5wdXQQ+i4SHQoYQ01EX1JP", "EiUKIUVSUk9SX1JPT01fU0xPVF9SRUFETFlfSEFEX1BMQVlFUhALEiEKHUVS",
"T01fU1lOX1BsYXllcklucHV0EP8uEg8KCkNNRF9TY3JlZW4Q2TYqjwEKCUVy", "Uk9SX1JPT01fQ0FOVF9ET19DVVJSX1NUQVRFEDIqHAoJTG9naW5UeXBlEg8K",
"cm9yQ29kZRIQCgxFUlJPUl9ERUZBVUwQABIMCghFUlJPUl9PSxABEhgKFEVS", "C0Jhc2VEZWZhdWx0EAAqSwoKRGV2aWNlVHlwZRIWChJEZXZpY2VUeXBlX0Rl",
"Uk9SX1JPT01fTk9UX0ZPVU5EEAoSJQohRVJST1JfUk9PTV9TTE9UX1JFQURM", "ZmF1bHQQABIGCgJQQxABEgsKB0FuZHJvaWQQAhIHCgNJT1MQAxIHCgNQU1YQ",
"WV9IQURfUExBWUVSEAsSIQodRVJST1JfUk9PTV9DQU5UX0RPX0NVUlJfU1RB", "BCpwCg1Sb29tR2FtZVN0YXRlEhIKDk5vbmVfR2FtZVN0YXRlEAASDAoIT25s",
"VEUQMiocCglMb2dpblR5cGUSDwoLQmFzZURlZmF1bHQQACpLCgpEZXZpY2VU", "eUhvc3QQARIRCg1XYWl0UmF3VXBkYXRlEAISDQoJV2FpdFJlYWR5EAMSCQoF",
"eXBlEhYKEkRldmljZVR5cGVfRGVmYXVsdBAAEgYKAlBDEAESCwoHQW5kcm9p", "UGF1c2UQBBIQCgxJbk9ubGluZUdhbWUQBSpOChFMb2dpblJlc3VsdFN0YXR1",
"ZBACEgcKA0lPUxADEgcKA1BTVhAEKnAKDVJvb21HYW1lU3RhdGUSEgoOTm9u", "cxIhCh1Mb2dpblJlc3VsdFN0YXR1c19CYXNlRGVmYXVsdBAAEgYKAk9LEAES",
"ZV9HYW1lU3RhdGUQABIMCghPbmx5SG9zdBABEhEKDVdhaXRSYXdVcGRhdGUQ", "DgoKQWNjb3VudEVychACQgJIAWIGcHJvdG8z"));
"AhINCglXYWl0UmVhZHkQAxIJCgVQYXVzZRAEEhAKDEluT25saW5lR2FtZRAF",
"Kk4KEUxvZ2luUmVzdWx0U3RhdHVzEiEKHUxvZ2luUmVzdWx0U3RhdHVzX0Jh",
"c2VEZWZhdWx0EAASBgoCT0sQARIOCgpBY2NvdW50RXJyEAJCAkgBYgZwcm90",
"bzM="));
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.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[] {
@ -121,9 +117,7 @@ namespace AxibugProtobuf {
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_WaitStep_RESP), global::AxibugProtobuf.Protobuf_Room_WaitStep_RESP.Parser, new[]{ "WaitStep", "LoadStateRaw" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_HostPlayer_UpdateStateRaw), global::AxibugProtobuf.Protobuf_Room_HostPlayer_UpdateStateRaw.Parser, new[]{ "LoadStateRaw" }, null, null, null, null), 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_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)
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_Get_Screen), global::AxibugProtobuf.Protobuf_Room_Get_Screen.Parser, new[]{ "RoomID" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_Get_Screen_RESP), global::AxibugProtobuf.Protobuf_Room_Get_Screen_RESP.Parser, new[]{ "RoomID", "FrameID", "RawBitmap" }, null, null, null, null)
})); }));
} }
#endregion #endregion
@ -160,10 +154,6 @@ namespace AxibugProtobuf {
/// </summary> /// </summary>
[pbr::OriginalName("CMD_Room_List_Update")] CmdRoomListUpdate = 5002, [pbr::OriginalName("CMD_Room_List_Update")] CmdRoomListUpdate = 5002,
/// <summary> /// <summary>
///房间列表 上行 | 下行 对应 Protobuf_Room_Get_Screen | Protobuf_Room_Get_Screen_RESP
/// </summary>
[pbr::OriginalName("CMD_Room_Get_Screen")] CmdRoomGetScreen = 5011,
/// <summary>
///房间内相关 ///房间内相关
/// </summary> /// </summary>
[pbr::OriginalName("CMD_Room_Create")] CmdRoomCreate = 5101, [pbr::OriginalName("CMD_Room_Create")] CmdRoomCreate = 5101,
@ -190,7 +180,7 @@ namespace AxibugProtobuf {
/// 主机玩家 上行 CMD_Room_HostPlayer_UpdateStateRaw消息上传即时存档 /// 主机玩家 上行 CMD_Room_HostPlayer_UpdateStateRaw消息上传即时存档
/// 主机玩家上传完毕之后服务器会通知进入Step1 /// 主机玩家上传完毕之后服务器会通知进入Step1
/// ///
/// Step1服务器广播"等待-全员加载即时存档" CMD_Room_WaitStep WaitStep=[1] 附带即时存档 ---> 客户端:全员等待 /// Step1服务器广播"等待-全员加载即时存档" CMD_Room_WaitStep WaitStep=[1] 附带即时存档 ---> 客户端:全员等待(主机玩家一人上传)
/// 所有玩家确保加载ROM和即时存档并保持模拟器暂停准备完毕后 发送 CMD_Room_Player_Ready /// 所有玩家确保加载ROM和即时存档并保持模拟器暂停准备完毕后 发送 CMD_Room_Player_Ready
/// 所有玩家Ready之后服务器会根据所有玩家延迟提前跑若干Frame通知进入Step2 /// 所有玩家Ready之后服务器会根据所有玩家延迟提前跑若干Frame通知进入Step2
/// ///
@ -5737,434 +5727,6 @@ namespace AxibugProtobuf {
} }
public sealed partial class Protobuf_Room_Get_Screen : pb::IMessage<Protobuf_Room_Get_Screen>
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
, pb::IBufferMessage
#endif
{
private static readonly pb::MessageParser<Protobuf_Room_Get_Screen> _parser = new pb::MessageParser<Protobuf_Room_Get_Screen>(() => new Protobuf_Room_Get_Screen());
private pb::UnknownFieldSet _unknownFields;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pb::MessageParser<Protobuf_Room_Get_Screen> Parser { get { return _parser; } }
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[24]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
pbr::MessageDescriptor pb::IMessage.Descriptor {
get { return Descriptor; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public Protobuf_Room_Get_Screen() {
OnConstruction();
}
partial void OnConstruction();
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public Protobuf_Room_Get_Screen(Protobuf_Room_Get_Screen other) : this() {
roomID_ = other.roomID_;
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public Protobuf_Room_Get_Screen Clone() {
return new Protobuf_Room_Get_Screen(this);
}
/// <summary>Field number for the "RoomID" field.</summary>
public const int RoomIDFieldNumber = 1;
private int roomID_;
/// <summary>
///房间ID
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public int RoomID {
get { return roomID_; }
set {
roomID_ = value;
}
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override bool Equals(object other) {
return Equals(other as Protobuf_Room_Get_Screen);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public bool Equals(Protobuf_Room_Get_Screen other) {
if (ReferenceEquals(other, null)) {
return false;
}
if (ReferenceEquals(other, this)) {
return true;
}
if (RoomID != other.RoomID) return false;
return Equals(_unknownFields, other._unknownFields);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override int GetHashCode() {
int hash = 1;
if (RoomID != 0) hash ^= RoomID.GetHashCode();
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 (RoomID != 0) {
output.WriteRawTag(8);
output.WriteInt32(RoomID);
}
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 (RoomID != 0) {
output.WriteRawTag(8);
output.WriteInt32(RoomID);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(ref output);
}
}
#endif
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public int CalculateSize() {
int size = 0;
if (RoomID != 0) {
size += 1 + pb::CodedOutputStream.ComputeInt32Size(RoomID);
}
if (_unknownFields != null) {
size += _unknownFields.CalculateSize();
}
return size;
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public void MergeFrom(Protobuf_Room_Get_Screen other) {
if (other == null) {
return;
}
if (other.RoomID != 0) {
RoomID = other.RoomID;
}
_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;
case 8: {
RoomID = input.ReadInt32();
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;
case 8: {
RoomID = input.ReadInt32();
break;
}
}
}
}
#endif
}
public sealed partial class Protobuf_Room_Get_Screen_RESP : pb::IMessage<Protobuf_Room_Get_Screen_RESP>
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
, pb::IBufferMessage
#endif
{
private static readonly pb::MessageParser<Protobuf_Room_Get_Screen_RESP> _parser = new pb::MessageParser<Protobuf_Room_Get_Screen_RESP>(() => new Protobuf_Room_Get_Screen_RESP());
private pb::UnknownFieldSet _unknownFields;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pb::MessageParser<Protobuf_Room_Get_Screen_RESP> Parser { get { return _parser; } }
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[25]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
pbr::MessageDescriptor pb::IMessage.Descriptor {
get { return Descriptor; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public Protobuf_Room_Get_Screen_RESP() {
OnConstruction();
}
partial void OnConstruction();
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public Protobuf_Room_Get_Screen_RESP(Protobuf_Room_Get_Screen_RESP other) : this() {
roomID_ = other.roomID_;
frameID_ = other.frameID_;
rawBitmap_ = other.rawBitmap_;
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public Protobuf_Room_Get_Screen_RESP Clone() {
return new Protobuf_Room_Get_Screen_RESP(this);
}
/// <summary>Field number for the "RoomID" field.</summary>
public const int RoomIDFieldNumber = 1;
private int roomID_;
/// <summary>
///房间ID
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public int RoomID {
get { return roomID_; }
set {
roomID_ = value;
}
}
/// <summary>Field number for the "FrameID" field.</summary>
public const int FrameIDFieldNumber = 2;
private int frameID_;
/// <summary>
///帧编号
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public int FrameID {
get { return frameID_; }
set {
frameID_ = value;
}
}
/// <summary>Field number for the "RawBitmap" field.</summary>
public const int RawBitmapFieldNumber = 3;
private pb::ByteString rawBitmap_ = pb::ByteString.Empty;
/// <summary>
///渲染层画面
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public pb::ByteString RawBitmap {
get { return rawBitmap_; }
set {
rawBitmap_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
}
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override bool Equals(object other) {
return Equals(other as Protobuf_Room_Get_Screen_RESP);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public bool Equals(Protobuf_Room_Get_Screen_RESP other) {
if (ReferenceEquals(other, null)) {
return false;
}
if (ReferenceEquals(other, this)) {
return true;
}
if (RoomID != other.RoomID) return false;
if (FrameID != other.FrameID) return false;
if (RawBitmap != other.RawBitmap) return false;
return Equals(_unknownFields, other._unknownFields);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override int GetHashCode() {
int hash = 1;
if (RoomID != 0) hash ^= RoomID.GetHashCode();
if (FrameID != 0) hash ^= FrameID.GetHashCode();
if (RawBitmap.Length != 0) hash ^= RawBitmap.GetHashCode();
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 (RoomID != 0) {
output.WriteRawTag(8);
output.WriteInt32(RoomID);
}
if (FrameID != 0) {
output.WriteRawTag(16);
output.WriteInt32(FrameID);
}
if (RawBitmap.Length != 0) {
output.WriteRawTag(26);
output.WriteBytes(RawBitmap);
}
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 (RoomID != 0) {
output.WriteRawTag(8);
output.WriteInt32(RoomID);
}
if (FrameID != 0) {
output.WriteRawTag(16);
output.WriteInt32(FrameID);
}
if (RawBitmap.Length != 0) {
output.WriteRawTag(26);
output.WriteBytes(RawBitmap);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(ref output);
}
}
#endif
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public int CalculateSize() {
int size = 0;
if (RoomID != 0) {
size += 1 + pb::CodedOutputStream.ComputeInt32Size(RoomID);
}
if (FrameID != 0) {
size += 1 + pb::CodedOutputStream.ComputeInt32Size(FrameID);
}
if (RawBitmap.Length != 0) {
size += 1 + pb::CodedOutputStream.ComputeBytesSize(RawBitmap);
}
if (_unknownFields != null) {
size += _unknownFields.CalculateSize();
}
return size;
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public void MergeFrom(Protobuf_Room_Get_Screen_RESP other) {
if (other == null) {
return;
}
if (other.RoomID != 0) {
RoomID = other.RoomID;
}
if (other.FrameID != 0) {
FrameID = other.FrameID;
}
if (other.RawBitmap.Length != 0) {
RawBitmap = other.RawBitmap;
}
_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;
case 8: {
RoomID = input.ReadInt32();
break;
}
case 16: {
FrameID = input.ReadInt32();
break;
}
case 26: {
RawBitmap = input.ReadBytes();
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;
case 8: {
RoomID = input.ReadInt32();
break;
}
case 16: {
FrameID = input.ReadInt32();
break;
}
case 26: {
RawBitmap = input.ReadBytes();
break;
}
}
}
}
#endif
}
#endregion #endregion
} }

View File

@ -1,6 +1,7 @@
using DG.Tweening; using DG.Tweening;
using DG.Tweening.Core; using DG.Tweening.Core;
using DG.Tweening.Plugins.Options; using DG.Tweening.Plugins.Options;
using System;
using UnityEngine; using UnityEngine;
using UnityEngine.UI; using UnityEngine.UI;

View File

@ -16,6 +16,7 @@ namespace AxibugEmuOnline.Server.Manager
public DateTime LogOutDT { get; set; } public DateTime LogOutDT { get; set; }
public DateTime LogInDT { get; set; } public DateTime LogInDT { get; set; }
public UserRoomState RoomState { get; set; } = new UserRoomState(); public UserRoomState RoomState { get; set; } = new UserRoomState();
public TimeSpan LastStartPingTime { get; set; } public TimeSpan LastStartPingTime { get; set; }
public int LastPingSeed { get; set; } public int LastPingSeed { get; set; }
public double AveNetDelay { get; set; } public double AveNetDelay { get; set; }
@ -33,11 +34,13 @@ namespace AxibugEmuOnline.Server.Manager
{ {
ClearRoomData(); ClearRoomData();
} }
public void SetRoomData(int roomID, int playerIdx) public void SetRoomData(int roomID, int playerIdx)
{ {
RoomID = roomID; RoomID = roomID;
PlayerIdx = playerIdx; PlayerIdx = playerIdx;
} }
public void ClearRoomData() public void ClearRoomData()
{ {
RoomID = -1; RoomID = -1;

View File

@ -20,7 +20,6 @@ namespace AxibugEmuOnline.Server
public RoomManager() public RoomManager()
{ {
NetMsg.Instance.RegNetMsgEvent((int)CommandID.CmdRoomList, OnCmdRoomList); NetMsg.Instance.RegNetMsgEvent((int)CommandID.CmdRoomList, OnCmdRoomList);
NetMsg.Instance.RegNetMsgEvent((int)CommandID.CmdRoomGetScreen, CmdRoomGetScreen);
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);
@ -133,27 +132,6 @@ namespace AxibugEmuOnline.Server
resp.RoomMiniInfoList.Add(GetProtoDataRoom(room)); resp.RoomMiniInfoList.Add(GetProtoDataRoom(room));
AppSrv.g_ClientMgr.ClientSend(_c, (int)CommandID.CmdChatmsg, (int)ErrorCode.ErrorOk, ProtoBufHelper.Serizlize(resp)); AppSrv.g_ClientMgr.ClientSend(_c, (int)CommandID.CmdChatmsg, (int)ErrorCode.ErrorOk, ProtoBufHelper.Serizlize(resp));
} }
public void CmdRoomGetScreen(Socket sk, byte[] reqData)
{
AppSrv.g_Log.Debug($"OnCmdRoomList ");
ClientInfo _c = AppSrv.g_ClientMgr.GetClientForSocket(sk);
Protobuf_Room_Get_Screen msg = ProtoBufHelper.DeSerizlize<Protobuf_Room_Get_Screen>(reqData);
Data_RoomData room = GetRoomData(_c.RoomState.RoomID);
bool bHadRoomStateChange = false;
ErrorCode Errcode = ErrorCode.ErrorOk;
Protobuf_Room_Get_Screen_RESP resp = new Protobuf_Room_Get_Screen_RESP();
if (room == null)
Errcode = ErrorCode.ErrorRoomNotFound;
else
{
resp.FrameID = (int)room.mCurrFrameId;
resp.RoomID = room.RoomID;
resp.RawBitmap = room.ScreenRaw;
}
AppSrv.g_ClientMgr.ClientSend(_c, (int)CommandID.CmdRoomGetScreen, (int)ErrorCode.ErrorOk, ProtoBufHelper.Serizlize(resp));
}
/// <summary> /// <summary>
/// ///
@ -292,12 +270,7 @@ namespace AxibugEmuOnline.Server
Data_RoomData room = GetRoomData(_c.RoomState.RoomID); Data_RoomData room = GetRoomData(_c.RoomState.RoomID);
if (room == null) if (room == null)
return; return;
room.SetPlayerInput(_c.RoomState.PlayerIdx, msg.FrameID, (ushort)msg.InputData);
//取玩家操作数据中的第一个
ServerInputSnapShot temp = new ServerInputSnapShot();
temp.all = msg.InputData;
room.SetPlayerInput(_c.RoomState.PlayerIdx, msg.FrameID, temp.p1_byte);
} }
public void OnCmdScreen(Socket sk, byte[] reqData) public void OnCmdScreen(Socket sk, byte[] reqData)
@ -567,14 +540,14 @@ namespace AxibugEmuOnline.Server
return list; return list;
} }
public void SetPlayerInput(int PlayerIdx, long mFrameID, byte input) public void SetPlayerInput(int PlayerIdx, long mFrameID, ushort input)
{ {
switch (PlayerIdx) switch (PlayerIdx)
{ {
case 0: mCurrInputData.p1_byte = input; break; case 0: mCurrInputData.p1 = input; break;
case 1: mCurrInputData.p2_byte = input; break; case 1: mCurrInputData.p2 = input; break;
case 2: mCurrInputData.p3_byte = input; break; case 2: mCurrInputData.p3 = input; break;
case 3: mCurrInputData.p4_byte = input; break; case 3: mCurrInputData.p4 = input; break;
} }
} }
@ -582,10 +555,10 @@ namespace AxibugEmuOnline.Server
{ {
switch (PlayerIdx) switch (PlayerIdx)
{ {
case 0: mCurrInputData.p1_byte = 0; break; case 0: mCurrInputData.p1 = 0; break;
case 1: mCurrInputData.p2_byte = 0; break; case 1: mCurrInputData.p2 = 0; break;
case 2: mCurrInputData.p3_byte = 0; break; case 2: mCurrInputData.p3 = 0; break;
case 3: mCurrInputData.p4_byte = 0; break; case 3: mCurrInputData.p4 = 0; break;
} }
} }
@ -780,28 +753,18 @@ namespace AxibugEmuOnline.Server
} }
} }
[StructLayout(LayoutKind.Explicit, Size = 8)] [StructLayout(LayoutKind.Explicit)]
public struct ServerInputSnapShot public struct ServerInputSnapShot
{ {
[FieldOffset(0)] [FieldOffset(0)]
public UInt64 all; public UInt64 all;
[FieldOffset(0)] [FieldOffset(0)]
public byte p1_byte; public ushort p1;
[FieldOffset(1)]
public byte p2_byte;
[FieldOffset(2)] [FieldOffset(2)]
public byte p3_byte; public ushort p2;
[FieldOffset(3)]
public byte p4_byte;
[FieldOffset(0)]
public ushort p1_ushort;
[FieldOffset(2)]
public ushort p2_ushort;
[FieldOffset(4)] [FieldOffset(4)]
public ushort p3_ushort; public ushort p3;
[FieldOffset(6)] [FieldOffset(6)]
public ushort p4_ushort; public ushort p4;
} }
} }

View File

@ -29,10 +29,10 @@ namespace AxibugEmuOnline.Server
AppSrv.g_Log.Info($"HostUID:{room.HostUID}"); AppSrv.g_Log.Info($"HostUID:{room.HostUID}");
AppSrv.g_Log.Info($"mCurrFrameId:{room.mCurrFrameId}"); AppSrv.g_Log.Info($"mCurrFrameId:{room.mCurrFrameId}");
AppSrv.g_Log.Info($"input all:{room.mCurrInputData.all}"); AppSrv.g_Log.Info($"input all:{room.mCurrInputData.all}");
AppSrv.g_Log.Info($"input p1:{room.mCurrInputData.p1_byte}"); AppSrv.g_Log.Info($"input p1:{room.mCurrInputData.p1}");
AppSrv.g_Log.Info($"input p2:{room.mCurrInputData.p2_byte}"); AppSrv.g_Log.Info($"input p2:{room.mCurrInputData.p2}");
AppSrv.g_Log.Info($"input p3:{room.mCurrInputData.p3_byte}"); AppSrv.g_Log.Info($"input p3:{room.mCurrInputData.p3}");
AppSrv.g_Log.Info($"input p4:{room.mCurrInputData.p4_byte}"); AppSrv.g_Log.Info($"input p4:{room.mCurrInputData.p4}");
AppSrv.g_Log.Info($"GetPlayerCount:{room.GetPlayerCount()}"); AppSrv.g_Log.Info($"GetPlayerCount:{room.GetPlayerCount()}");
for (int i = 0; i < 4; i++) for (int i = 0; i < 4; i++)
{ {

View File

@ -4,7 +4,7 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
--> -->
<Project> <Project>
<PropertyGroup> <PropertyGroup>
<History>True|2024-09-14T08:39:29.4677979Z||;True|2024-09-14T16:38:22.2398996+08:00||;True|2024-09-13T13:39:28.9591993+08:00||;True|2024-09-12T17:48:43.1521740+08:00||;True|2024-09-12T17:43:57.0504432+08:00||;True|2024-09-12T17:19:48.6392091+08:00||;True|2024-09-12T13:38:45.0141937+08:00||;False|2024-09-12T13:37:57.6131232+08:00||;True|2024-06-28T16:25:59.3159172+08:00||;True|2024-06-28T15:30:49.8257235+08:00||;</History> <History>True|2024-09-13T05:39:28.9591993Z||;True|2024-09-12T17:48:43.1521740+08:00||;True|2024-09-12T17:43:57.0504432+08:00||;True|2024-09-12T17:19:48.6392091+08:00||;True|2024-09-12T13:38:45.0141937+08:00||;False|2024-09-12T13:37:57.6131232+08:00||;True|2024-06-28T16:25:59.3159172+08:00||;True|2024-06-28T15:30:49.8257235+08:00||;</History>
<LastFailureDetails /> <LastFailureDetails />
</PropertyGroup> </PropertyGroup>
</Project> </Project>

View File

@ -71,30 +71,26 @@ namespace AxibugProtobuf {
"KAwiPwonUHJvdG9idWZfUm9vbV9Ib3N0UGxheWVyX1VwZGF0ZVN0YXRlUmF3", "KAwiPwonUHJvdG9idWZfUm9vbV9Ib3N0UGxheWVyX1VwZGF0ZVN0YXRlUmF3",
"EhQKDExvYWRTdGF0ZVJhdxgBIAEoDCIuCixQcm90b2J1Zl9Sb29tX0hvc3RQ", "EhQKDExvYWRTdGF0ZVJhdxgBIAEoDCIuCixQcm90b2J1Zl9Sb29tX0hvc3RQ",
"bGF5ZXJfVXBkYXRlU3RhdGVSYXdfUkVTUCIcChpQcm90b2J1Zl9Sb29tX1Bs", "bGF5ZXJfVXBkYXRlU3RhdGVSYXdfUkVTUCIcChpQcm90b2J1Zl9Sb29tX1Bs",
"YXllcl9SZWFkeSIqChhQcm90b2J1Zl9Sb29tX0dldF9TY3JlZW4SDgoGUm9v", "YXllcl9SZWFkeSqaAwoJQ29tbWFuZElEEg4KCkNNRF9ERUZBVUwQABIMCghD",
"bUlEGAEgASgFIlMKHVByb3RvYnVmX1Jvb21fR2V0X1NjcmVlbl9SRVNQEg4K", "TURfUElORxABEgwKCENNRF9QT05HEAISDgoJQ01EX0xPR0lOENEPEhAKC0NN",
"BlJvb21JRBgBIAEoBRIPCgdGcmFtZUlEGAIgASgFEhEKCVJhd0JpdG1hcBgD", "RF9DSEFUTVNHEKEfEhIKDUNNRF9Sb29tX0xpc3QQiScSGQoUQ01EX1Jvb21f",
"IAEoDCq0AwoJQ29tbWFuZElEEg4KCkNNRF9ERUZBVUwQABIMCghDTURfUElO", "TGlzdF9VcGRhdGUQiicSFAoPQ01EX1Jvb21fQ3JlYXRlEO0nEhIKDUNNRF9S",
"RxABEgwKCENNRF9QT05HEAISDgoJQ01EX0xPR0lOENEPEhAKC0NNRF9DSEFU", "b29tX0pvaW4Q8ScSEwoOQ01EX1Jvb21fTGVhdmUQ8icSIgodQ01EX1Jvb21f",
"TVNHEKEfEhIKDUNNRF9Sb29tX0xpc3QQiScSGQoUQ01EX1Jvb21fTGlzdF9V", "TXlSb29tX1N0YXRlX0NoYW5nZWQQ9icSFgoRQ01EX1Jvb21fV2FpdFN0ZXAQ",
"cGRhdGUQiicSGAoTQ01EX1Jvb21fR2V0X1NjcmVlbhCTJxIUCg9DTURfUm9v", "0SgSJwoiQ01EX1Jvb21fSG9zdFBsYXllcl9VcGRhdGVTdGF0ZVJhdxDUKBIa",
"bV9DcmVhdGUQ7ScSEgoNQ01EX1Jvb21fSm9pbhDxJxITCg5DTURfUm9vbV9M", "ChVDTURfUm9vbV9QbGF5ZXJfUmVhZHkQ2CgSIAobQ01EX1Jvb21fU2luZ2Vs",
"ZWF2ZRDyJxIiCh1DTURfUm9vbV9NeVJvb21fU3RhdGVfQ2hhbmdlZBD2JxIW", "X1BsYXllcklucHV0EPouEh0KGENNRF9ST09NX1NZTl9QbGF5ZXJJbnB1dBD/",
"ChFDTURfUm9vbV9XYWl0U3RlcBDRKBInCiJDTURfUm9vbV9Ib3N0UGxheWVy", "LhIPCgpDTURfU2NyZWVuENk2Ko8BCglFcnJvckNvZGUSEAoMRVJST1JfREVG",
"X1VwZGF0ZVN0YXRlUmF3ENQoEhoKFUNNRF9Sb29tX1BsYXllcl9SZWFkeRDY", "QVVMEAASDAoIRVJST1JfT0sQARIYChRFUlJPUl9ST09NX05PVF9GT1VORBAK",
"KBIgChtDTURfUm9vbV9TaW5nZWxfUGxheWVySW5wdXQQ+i4SHQoYQ01EX1JP", "EiUKIUVSUk9SX1JPT01fU0xPVF9SRUFETFlfSEFEX1BMQVlFUhALEiEKHUVS",
"T01fU1lOX1BsYXllcklucHV0EP8uEg8KCkNNRF9TY3JlZW4Q2TYqjwEKCUVy", "Uk9SX1JPT01fQ0FOVF9ET19DVVJSX1NUQVRFEDIqHAoJTG9naW5UeXBlEg8K",
"cm9yQ29kZRIQCgxFUlJPUl9ERUZBVUwQABIMCghFUlJPUl9PSxABEhgKFEVS", "C0Jhc2VEZWZhdWx0EAAqSwoKRGV2aWNlVHlwZRIWChJEZXZpY2VUeXBlX0Rl",
"Uk9SX1JPT01fTk9UX0ZPVU5EEAoSJQohRVJST1JfUk9PTV9TTE9UX1JFQURM", "ZmF1bHQQABIGCgJQQxABEgsKB0FuZHJvaWQQAhIHCgNJT1MQAxIHCgNQU1YQ",
"WV9IQURfUExBWUVSEAsSIQodRVJST1JfUk9PTV9DQU5UX0RPX0NVUlJfU1RB", "BCpwCg1Sb29tR2FtZVN0YXRlEhIKDk5vbmVfR2FtZVN0YXRlEAASDAoIT25s",
"VEUQMiocCglMb2dpblR5cGUSDwoLQmFzZURlZmF1bHQQACpLCgpEZXZpY2VU", "eUhvc3QQARIRCg1XYWl0UmF3VXBkYXRlEAISDQoJV2FpdFJlYWR5EAMSCQoF",
"eXBlEhYKEkRldmljZVR5cGVfRGVmYXVsdBAAEgYKAlBDEAESCwoHQW5kcm9p", "UGF1c2UQBBIQCgxJbk9ubGluZUdhbWUQBSpOChFMb2dpblJlc3VsdFN0YXR1",
"ZBACEgcKA0lPUxADEgcKA1BTVhAEKnAKDVJvb21HYW1lU3RhdGUSEgoOTm9u", "cxIhCh1Mb2dpblJlc3VsdFN0YXR1c19CYXNlRGVmYXVsdBAAEgYKAk9LEAES",
"ZV9HYW1lU3RhdGUQABIMCghPbmx5SG9zdBABEhEKDVdhaXRSYXdVcGRhdGUQ", "DgoKQWNjb3VudEVychACQgJIAWIGcHJvdG8z"));
"AhINCglXYWl0UmVhZHkQAxIJCgVQYXVzZRAEEhAKDEluT25saW5lR2FtZRAF",
"Kk4KEUxvZ2luUmVzdWx0U3RhdHVzEiEKHUxvZ2luUmVzdWx0U3RhdHVzX0Jh",
"c2VEZWZhdWx0EAASBgoCT0sQARIOCgpBY2NvdW50RXJyEAJCAkgBYgZwcm90",
"bzM="));
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.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[] {
@ -121,9 +117,7 @@ namespace AxibugProtobuf {
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_WaitStep_RESP), global::AxibugProtobuf.Protobuf_Room_WaitStep_RESP.Parser, new[]{ "WaitStep", "LoadStateRaw" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_HostPlayer_UpdateStateRaw), global::AxibugProtobuf.Protobuf_Room_HostPlayer_UpdateStateRaw.Parser, new[]{ "LoadStateRaw" }, null, null, null, null), 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_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)
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_Get_Screen), global::AxibugProtobuf.Protobuf_Room_Get_Screen.Parser, new[]{ "RoomID" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_Get_Screen_RESP), global::AxibugProtobuf.Protobuf_Room_Get_Screen_RESP.Parser, new[]{ "RoomID", "FrameID", "RawBitmap" }, null, null, null, null)
})); }));
} }
#endregion #endregion
@ -160,10 +154,6 @@ namespace AxibugProtobuf {
/// </summary> /// </summary>
[pbr::OriginalName("CMD_Room_List_Update")] CmdRoomListUpdate = 5002, [pbr::OriginalName("CMD_Room_List_Update")] CmdRoomListUpdate = 5002,
/// <summary> /// <summary>
///房间列表 上行 | 下行 对应 Protobuf_Room_Get_Screen | Protobuf_Room_Get_Screen_RESP
/// </summary>
[pbr::OriginalName("CMD_Room_Get_Screen")] CmdRoomGetScreen = 5011,
/// <summary>
///房间内相关 ///房间内相关
/// </summary> /// </summary>
[pbr::OriginalName("CMD_Room_Create")] CmdRoomCreate = 5101, [pbr::OriginalName("CMD_Room_Create")] CmdRoomCreate = 5101,
@ -190,7 +180,7 @@ namespace AxibugProtobuf {
/// 主机玩家 上行 CMD_Room_HostPlayer_UpdateStateRaw消息上传即时存档 /// 主机玩家 上行 CMD_Room_HostPlayer_UpdateStateRaw消息上传即时存档
/// 主机玩家上传完毕之后服务器会通知进入Step1 /// 主机玩家上传完毕之后服务器会通知进入Step1
/// ///
/// Step1服务器广播"等待-全员加载即时存档" CMD_Room_WaitStep WaitStep=[1] 附带即时存档 ---> 客户端:全员等待 /// Step1服务器广播"等待-全员加载即时存档" CMD_Room_WaitStep WaitStep=[1] 附带即时存档 ---> 客户端:全员等待(主机玩家一人上传)
/// 所有玩家确保加载ROM和即时存档并保持模拟器暂停准备完毕后 发送 CMD_Room_Player_Ready /// 所有玩家确保加载ROM和即时存档并保持模拟器暂停准备完毕后 发送 CMD_Room_Player_Ready
/// 所有玩家Ready之后服务器会根据所有玩家延迟提前跑若干Frame通知进入Step2 /// 所有玩家Ready之后服务器会根据所有玩家延迟提前跑若干Frame通知进入Step2
/// ///
@ -5737,434 +5727,6 @@ namespace AxibugProtobuf {
} }
public sealed partial class Protobuf_Room_Get_Screen : pb::IMessage<Protobuf_Room_Get_Screen>
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
, pb::IBufferMessage
#endif
{
private static readonly pb::MessageParser<Protobuf_Room_Get_Screen> _parser = new pb::MessageParser<Protobuf_Room_Get_Screen>(() => new Protobuf_Room_Get_Screen());
private pb::UnknownFieldSet _unknownFields;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pb::MessageParser<Protobuf_Room_Get_Screen> Parser { get { return _parser; } }
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[24]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
pbr::MessageDescriptor pb::IMessage.Descriptor {
get { return Descriptor; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public Protobuf_Room_Get_Screen() {
OnConstruction();
}
partial void OnConstruction();
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public Protobuf_Room_Get_Screen(Protobuf_Room_Get_Screen other) : this() {
roomID_ = other.roomID_;
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public Protobuf_Room_Get_Screen Clone() {
return new Protobuf_Room_Get_Screen(this);
}
/// <summary>Field number for the "RoomID" field.</summary>
public const int RoomIDFieldNumber = 1;
private int roomID_;
/// <summary>
///房间ID
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public int RoomID {
get { return roomID_; }
set {
roomID_ = value;
}
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override bool Equals(object other) {
return Equals(other as Protobuf_Room_Get_Screen);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public bool Equals(Protobuf_Room_Get_Screen other) {
if (ReferenceEquals(other, null)) {
return false;
}
if (ReferenceEquals(other, this)) {
return true;
}
if (RoomID != other.RoomID) return false;
return Equals(_unknownFields, other._unknownFields);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override int GetHashCode() {
int hash = 1;
if (RoomID != 0) hash ^= RoomID.GetHashCode();
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 (RoomID != 0) {
output.WriteRawTag(8);
output.WriteInt32(RoomID);
}
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 (RoomID != 0) {
output.WriteRawTag(8);
output.WriteInt32(RoomID);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(ref output);
}
}
#endif
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public int CalculateSize() {
int size = 0;
if (RoomID != 0) {
size += 1 + pb::CodedOutputStream.ComputeInt32Size(RoomID);
}
if (_unknownFields != null) {
size += _unknownFields.CalculateSize();
}
return size;
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public void MergeFrom(Protobuf_Room_Get_Screen other) {
if (other == null) {
return;
}
if (other.RoomID != 0) {
RoomID = other.RoomID;
}
_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;
case 8: {
RoomID = input.ReadInt32();
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;
case 8: {
RoomID = input.ReadInt32();
break;
}
}
}
}
#endif
}
public sealed partial class Protobuf_Room_Get_Screen_RESP : pb::IMessage<Protobuf_Room_Get_Screen_RESP>
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
, pb::IBufferMessage
#endif
{
private static readonly pb::MessageParser<Protobuf_Room_Get_Screen_RESP> _parser = new pb::MessageParser<Protobuf_Room_Get_Screen_RESP>(() => new Protobuf_Room_Get_Screen_RESP());
private pb::UnknownFieldSet _unknownFields;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pb::MessageParser<Protobuf_Room_Get_Screen_RESP> Parser { get { return _parser; } }
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[25]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
pbr::MessageDescriptor pb::IMessage.Descriptor {
get { return Descriptor; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public Protobuf_Room_Get_Screen_RESP() {
OnConstruction();
}
partial void OnConstruction();
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public Protobuf_Room_Get_Screen_RESP(Protobuf_Room_Get_Screen_RESP other) : this() {
roomID_ = other.roomID_;
frameID_ = other.frameID_;
rawBitmap_ = other.rawBitmap_;
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public Protobuf_Room_Get_Screen_RESP Clone() {
return new Protobuf_Room_Get_Screen_RESP(this);
}
/// <summary>Field number for the "RoomID" field.</summary>
public const int RoomIDFieldNumber = 1;
private int roomID_;
/// <summary>
///房间ID
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public int RoomID {
get { return roomID_; }
set {
roomID_ = value;
}
}
/// <summary>Field number for the "FrameID" field.</summary>
public const int FrameIDFieldNumber = 2;
private int frameID_;
/// <summary>
///帧编号
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public int FrameID {
get { return frameID_; }
set {
frameID_ = value;
}
}
/// <summary>Field number for the "RawBitmap" field.</summary>
public const int RawBitmapFieldNumber = 3;
private pb::ByteString rawBitmap_ = pb::ByteString.Empty;
/// <summary>
///渲染层画面
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public pb::ByteString RawBitmap {
get { return rawBitmap_; }
set {
rawBitmap_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
}
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override bool Equals(object other) {
return Equals(other as Protobuf_Room_Get_Screen_RESP);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public bool Equals(Protobuf_Room_Get_Screen_RESP other) {
if (ReferenceEquals(other, null)) {
return false;
}
if (ReferenceEquals(other, this)) {
return true;
}
if (RoomID != other.RoomID) return false;
if (FrameID != other.FrameID) return false;
if (RawBitmap != other.RawBitmap) return false;
return Equals(_unknownFields, other._unknownFields);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override int GetHashCode() {
int hash = 1;
if (RoomID != 0) hash ^= RoomID.GetHashCode();
if (FrameID != 0) hash ^= FrameID.GetHashCode();
if (RawBitmap.Length != 0) hash ^= RawBitmap.GetHashCode();
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 (RoomID != 0) {
output.WriteRawTag(8);
output.WriteInt32(RoomID);
}
if (FrameID != 0) {
output.WriteRawTag(16);
output.WriteInt32(FrameID);
}
if (RawBitmap.Length != 0) {
output.WriteRawTag(26);
output.WriteBytes(RawBitmap);
}
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 (RoomID != 0) {
output.WriteRawTag(8);
output.WriteInt32(RoomID);
}
if (FrameID != 0) {
output.WriteRawTag(16);
output.WriteInt32(FrameID);
}
if (RawBitmap.Length != 0) {
output.WriteRawTag(26);
output.WriteBytes(RawBitmap);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(ref output);
}
}
#endif
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public int CalculateSize() {
int size = 0;
if (RoomID != 0) {
size += 1 + pb::CodedOutputStream.ComputeInt32Size(RoomID);
}
if (FrameID != 0) {
size += 1 + pb::CodedOutputStream.ComputeInt32Size(FrameID);
}
if (RawBitmap.Length != 0) {
size += 1 + pb::CodedOutputStream.ComputeBytesSize(RawBitmap);
}
if (_unknownFields != null) {
size += _unknownFields.CalculateSize();
}
return size;
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public void MergeFrom(Protobuf_Room_Get_Screen_RESP other) {
if (other == null) {
return;
}
if (other.RoomID != 0) {
RoomID = other.RoomID;
}
if (other.FrameID != 0) {
FrameID = other.FrameID;
}
if (other.RawBitmap.Length != 0) {
RawBitmap = other.RawBitmap;
}
_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;
case 8: {
RoomID = input.ReadInt32();
break;
}
case 16: {
FrameID = input.ReadInt32();
break;
}
case 26: {
RawBitmap = input.ReadBytes();
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;
case 8: {
RoomID = input.ReadInt32();
break;
}
case 16: {
FrameID = input.ReadInt32();
break;
}
case 26: {
RawBitmap = input.ReadBytes();
break;
}
}
}
}
#endif
}
#endregion #endregion
} }

View File

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

View File

@ -1,22 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
https://go.microsoft.com/fwlink/?LinkID=208121.
-->
<Project>
<PropertyGroup>
<DeleteExistingFiles>false</DeleteExistingFiles>
<ExcludeApp_Data>false</ExcludeApp_Data>
<LaunchSiteAfterPublish>true</LaunchSiteAfterPublish>
<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
<LastUsedPlatform>Any CPU</LastUsedPlatform>
<PublishProvider>FileSystem</PublishProvider>
<PublishUrl>bin\Release\net8.0\publish\</PublishUrl>
<WebPublishMethod>FileSystem</WebPublishMethod>
<_TargetId>Folder</_TargetId>
<SiteUrlToLaunchAfterPublish />
<TargetFramework>net8.0</TargetFramework>
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
<ProjectGuid>52a13383-be2d-4945-83b6-bbc54cf39f83</ProjectGuid>
<SelfContained>false</SelfContained>
</PropertyGroup>
</Project>

View File

@ -1,11 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
https://go.microsoft.com/fwlink/?LinkID=208121.
-->
<Project>
<PropertyGroup>
<_PublishTargetUrl>G:\Sin365\AxibugEmuOnline\AxibugEmuOnline.Web\bin\Release\net8.0\publish\</_PublishTargetUrl>
<History>True|2024-09-12T06:18:38.6992653Z||;True|2024-09-12T14:08:58.4526827+08:00||;True|2024-08-22T14:13:06.3067002+08:00||;True|2024-08-14T10:33:10.9180984+08:00||;True|2024-08-13T18:28:27.5050523+08:00||;True|2024-08-13T18:25:47.6591234+08:00||;True|2024-08-13T18:25:17.5344107+08:00||;True|2024-08-13T17:46:23.4523329+08:00||;</History>
<LastFailureDetails />
</PropertyGroup>
</Project>

View File

@ -3,25 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17 # Visual Studio Version 17
VisualStudioVersion = 17.8.34511.84 VisualStudioVersion = 17.8.34511.84
MinimumVisualStudioVersion = 10.0.40219.1 MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AxibugEmuOnline.Web", "AxibugEmuOnline.Web\AxibugEmuOnline.Web.csproj", "{52A13383-BE2D-4945-83B6-BBC54CF39F83}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AxibugEmuOnline.Server", "AxibugEmuOnline.Server\AxibugEmuOnline.Server.csproj", "{9F509DB4-CDB4-4CDB-9C10-805C5E644EEF}"
EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{52A13383-BE2D-4945-83B6-BBC54CF39F83}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{52A13383-BE2D-4945-83B6-BBC54CF39F83}.Debug|Any CPU.Build.0 = Debug|Any CPU
{52A13383-BE2D-4945-83B6-BBC54CF39F83}.Release|Any CPU.ActiveCfg = Release|Any CPU
{52A13383-BE2D-4945-83B6-BBC54CF39F83}.Release|Any CPU.Build.0 = Release|Any CPU
{9F509DB4-CDB4-4CDB-9C10-805C5E644EEF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9F509DB4-CDB4-4CDB-9C10-805C5E644EEF}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9F509DB4-CDB4-4CDB-9C10-805C5E644EEF}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9F509DB4-CDB4-4CDB-9C10-805C5E644EEF}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE HideSolutionNode = FALSE
EndGlobalSection EndGlobalSection

View File

@ -71,30 +71,26 @@ namespace AxibugProtobuf {
"KAwiPwonUHJvdG9idWZfUm9vbV9Ib3N0UGxheWVyX1VwZGF0ZVN0YXRlUmF3", "KAwiPwonUHJvdG9idWZfUm9vbV9Ib3N0UGxheWVyX1VwZGF0ZVN0YXRlUmF3",
"EhQKDExvYWRTdGF0ZVJhdxgBIAEoDCIuCixQcm90b2J1Zl9Sb29tX0hvc3RQ", "EhQKDExvYWRTdGF0ZVJhdxgBIAEoDCIuCixQcm90b2J1Zl9Sb29tX0hvc3RQ",
"bGF5ZXJfVXBkYXRlU3RhdGVSYXdfUkVTUCIcChpQcm90b2J1Zl9Sb29tX1Bs", "bGF5ZXJfVXBkYXRlU3RhdGVSYXdfUkVTUCIcChpQcm90b2J1Zl9Sb29tX1Bs",
"YXllcl9SZWFkeSIqChhQcm90b2J1Zl9Sb29tX0dldF9TY3JlZW4SDgoGUm9v", "YXllcl9SZWFkeSqaAwoJQ29tbWFuZElEEg4KCkNNRF9ERUZBVUwQABIMCghD",
"bUlEGAEgASgFIlMKHVByb3RvYnVmX1Jvb21fR2V0X1NjcmVlbl9SRVNQEg4K", "TURfUElORxABEgwKCENNRF9QT05HEAISDgoJQ01EX0xPR0lOENEPEhAKC0NN",
"BlJvb21JRBgBIAEoBRIPCgdGcmFtZUlEGAIgASgFEhEKCVJhd0JpdG1hcBgD", "RF9DSEFUTVNHEKEfEhIKDUNNRF9Sb29tX0xpc3QQiScSGQoUQ01EX1Jvb21f",
"IAEoDCq0AwoJQ29tbWFuZElEEg4KCkNNRF9ERUZBVUwQABIMCghDTURfUElO", "TGlzdF9VcGRhdGUQiicSFAoPQ01EX1Jvb21fQ3JlYXRlEO0nEhIKDUNNRF9S",
"RxABEgwKCENNRF9QT05HEAISDgoJQ01EX0xPR0lOENEPEhAKC0NNRF9DSEFU", "b29tX0pvaW4Q8ScSEwoOQ01EX1Jvb21fTGVhdmUQ8icSIgodQ01EX1Jvb21f",
"TVNHEKEfEhIKDUNNRF9Sb29tX0xpc3QQiScSGQoUQ01EX1Jvb21fTGlzdF9V", "TXlSb29tX1N0YXRlX0NoYW5nZWQQ9icSFgoRQ01EX1Jvb21fV2FpdFN0ZXAQ",
"cGRhdGUQiicSGAoTQ01EX1Jvb21fR2V0X1NjcmVlbhCTJxIUCg9DTURfUm9v", "0SgSJwoiQ01EX1Jvb21fSG9zdFBsYXllcl9VcGRhdGVTdGF0ZVJhdxDUKBIa",
"bV9DcmVhdGUQ7ScSEgoNQ01EX1Jvb21fSm9pbhDxJxITCg5DTURfUm9vbV9M", "ChVDTURfUm9vbV9QbGF5ZXJfUmVhZHkQ2CgSIAobQ01EX1Jvb21fU2luZ2Vs",
"ZWF2ZRDyJxIiCh1DTURfUm9vbV9NeVJvb21fU3RhdGVfQ2hhbmdlZBD2JxIW", "X1BsYXllcklucHV0EPouEh0KGENNRF9ST09NX1NZTl9QbGF5ZXJJbnB1dBD/",
"ChFDTURfUm9vbV9XYWl0U3RlcBDRKBInCiJDTURfUm9vbV9Ib3N0UGxheWVy", "LhIPCgpDTURfU2NyZWVuENk2Ko8BCglFcnJvckNvZGUSEAoMRVJST1JfREVG",
"X1VwZGF0ZVN0YXRlUmF3ENQoEhoKFUNNRF9Sb29tX1BsYXllcl9SZWFkeRDY", "QVVMEAASDAoIRVJST1JfT0sQARIYChRFUlJPUl9ST09NX05PVF9GT1VORBAK",
"KBIgChtDTURfUm9vbV9TaW5nZWxfUGxheWVySW5wdXQQ+i4SHQoYQ01EX1JP", "EiUKIUVSUk9SX1JPT01fU0xPVF9SRUFETFlfSEFEX1BMQVlFUhALEiEKHUVS",
"T01fU1lOX1BsYXllcklucHV0EP8uEg8KCkNNRF9TY3JlZW4Q2TYqjwEKCUVy", "Uk9SX1JPT01fQ0FOVF9ET19DVVJSX1NUQVRFEDIqHAoJTG9naW5UeXBlEg8K",
"cm9yQ29kZRIQCgxFUlJPUl9ERUZBVUwQABIMCghFUlJPUl9PSxABEhgKFEVS", "C0Jhc2VEZWZhdWx0EAAqSwoKRGV2aWNlVHlwZRIWChJEZXZpY2VUeXBlX0Rl",
"Uk9SX1JPT01fTk9UX0ZPVU5EEAoSJQohRVJST1JfUk9PTV9TTE9UX1JFQURM", "ZmF1bHQQABIGCgJQQxABEgsKB0FuZHJvaWQQAhIHCgNJT1MQAxIHCgNQU1YQ",
"WV9IQURfUExBWUVSEAsSIQodRVJST1JfUk9PTV9DQU5UX0RPX0NVUlJfU1RB", "BCpwCg1Sb29tR2FtZVN0YXRlEhIKDk5vbmVfR2FtZVN0YXRlEAASDAoIT25s",
"VEUQMiocCglMb2dpblR5cGUSDwoLQmFzZURlZmF1bHQQACpLCgpEZXZpY2VU", "eUhvc3QQARIRCg1XYWl0UmF3VXBkYXRlEAISDQoJV2FpdFJlYWR5EAMSCQoF",
"eXBlEhYKEkRldmljZVR5cGVfRGVmYXVsdBAAEgYKAlBDEAESCwoHQW5kcm9p", "UGF1c2UQBBIQCgxJbk9ubGluZUdhbWUQBSpOChFMb2dpblJlc3VsdFN0YXR1",
"ZBACEgcKA0lPUxADEgcKA1BTVhAEKnAKDVJvb21HYW1lU3RhdGUSEgoOTm9u", "cxIhCh1Mb2dpblJlc3VsdFN0YXR1c19CYXNlRGVmYXVsdBAAEgYKAk9LEAES",
"ZV9HYW1lU3RhdGUQABIMCghPbmx5SG9zdBABEhEKDVdhaXRSYXdVcGRhdGUQ", "DgoKQWNjb3VudEVychACQgJIAWIGcHJvdG8z"));
"AhINCglXYWl0UmVhZHkQAxIJCgVQYXVzZRAEEhAKDEluT25saW5lR2FtZRAF",
"Kk4KEUxvZ2luUmVzdWx0U3RhdHVzEiEKHUxvZ2luUmVzdWx0U3RhdHVzX0Jh",
"c2VEZWZhdWx0EAASBgoCT0sQARIOCgpBY2NvdW50RXJyEAJCAkgBYgZwcm90",
"bzM="));
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.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[] {
@ -121,9 +117,7 @@ namespace AxibugProtobuf {
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_WaitStep_RESP), global::AxibugProtobuf.Protobuf_Room_WaitStep_RESP.Parser, new[]{ "WaitStep", "LoadStateRaw" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_HostPlayer_UpdateStateRaw), global::AxibugProtobuf.Protobuf_Room_HostPlayer_UpdateStateRaw.Parser, new[]{ "LoadStateRaw" }, null, null, null, null), 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_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)
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_Get_Screen), global::AxibugProtobuf.Protobuf_Room_Get_Screen.Parser, new[]{ "RoomID" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_Get_Screen_RESP), global::AxibugProtobuf.Protobuf_Room_Get_Screen_RESP.Parser, new[]{ "RoomID", "FrameID", "RawBitmap" }, null, null, null, null)
})); }));
} }
#endregion #endregion
@ -160,10 +154,6 @@ namespace AxibugProtobuf {
/// </summary> /// </summary>
[pbr::OriginalName("CMD_Room_List_Update")] CmdRoomListUpdate = 5002, [pbr::OriginalName("CMD_Room_List_Update")] CmdRoomListUpdate = 5002,
/// <summary> /// <summary>
///房间列表 上行 | 下行 对应 Protobuf_Room_Get_Screen | Protobuf_Room_Get_Screen_RESP
/// </summary>
[pbr::OriginalName("CMD_Room_Get_Screen")] CmdRoomGetScreen = 5011,
/// <summary>
///房间内相关 ///房间内相关
/// </summary> /// </summary>
[pbr::OriginalName("CMD_Room_Create")] CmdRoomCreate = 5101, [pbr::OriginalName("CMD_Room_Create")] CmdRoomCreate = 5101,
@ -190,7 +180,7 @@ namespace AxibugProtobuf {
/// 主机玩家 上行 CMD_Room_HostPlayer_UpdateStateRaw消息上传即时存档 /// 主机玩家 上行 CMD_Room_HostPlayer_UpdateStateRaw消息上传即时存档
/// 主机玩家上传完毕之后服务器会通知进入Step1 /// 主机玩家上传完毕之后服务器会通知进入Step1
/// ///
/// Step1服务器广播"等待-全员加载即时存档" CMD_Room_WaitStep WaitStep=[1] 附带即时存档 ---> 客户端:全员等待 /// Step1服务器广播"等待-全员加载即时存档" CMD_Room_WaitStep WaitStep=[1] 附带即时存档 ---> 客户端:全员等待(主机玩家一人上传)
/// 所有玩家确保加载ROM和即时存档并保持模拟器暂停准备完毕后 发送 CMD_Room_Player_Ready /// 所有玩家确保加载ROM和即时存档并保持模拟器暂停准备完毕后 发送 CMD_Room_Player_Ready
/// 所有玩家Ready之后服务器会根据所有玩家延迟提前跑若干Frame通知进入Step2 /// 所有玩家Ready之后服务器会根据所有玩家延迟提前跑若干Frame通知进入Step2
/// ///
@ -5737,434 +5727,6 @@ namespace AxibugProtobuf {
} }
public sealed partial class Protobuf_Room_Get_Screen : pb::IMessage<Protobuf_Room_Get_Screen>
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
, pb::IBufferMessage
#endif
{
private static readonly pb::MessageParser<Protobuf_Room_Get_Screen> _parser = new pb::MessageParser<Protobuf_Room_Get_Screen>(() => new Protobuf_Room_Get_Screen());
private pb::UnknownFieldSet _unknownFields;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pb::MessageParser<Protobuf_Room_Get_Screen> Parser { get { return _parser; } }
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[24]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
pbr::MessageDescriptor pb::IMessage.Descriptor {
get { return Descriptor; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public Protobuf_Room_Get_Screen() {
OnConstruction();
}
partial void OnConstruction();
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public Protobuf_Room_Get_Screen(Protobuf_Room_Get_Screen other) : this() {
roomID_ = other.roomID_;
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public Protobuf_Room_Get_Screen Clone() {
return new Protobuf_Room_Get_Screen(this);
}
/// <summary>Field number for the "RoomID" field.</summary>
public const int RoomIDFieldNumber = 1;
private int roomID_;
/// <summary>
///房间ID
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public int RoomID {
get { return roomID_; }
set {
roomID_ = value;
}
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override bool Equals(object other) {
return Equals(other as Protobuf_Room_Get_Screen);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public bool Equals(Protobuf_Room_Get_Screen other) {
if (ReferenceEquals(other, null)) {
return false;
}
if (ReferenceEquals(other, this)) {
return true;
}
if (RoomID != other.RoomID) return false;
return Equals(_unknownFields, other._unknownFields);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override int GetHashCode() {
int hash = 1;
if (RoomID != 0) hash ^= RoomID.GetHashCode();
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 (RoomID != 0) {
output.WriteRawTag(8);
output.WriteInt32(RoomID);
}
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 (RoomID != 0) {
output.WriteRawTag(8);
output.WriteInt32(RoomID);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(ref output);
}
}
#endif
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public int CalculateSize() {
int size = 0;
if (RoomID != 0) {
size += 1 + pb::CodedOutputStream.ComputeInt32Size(RoomID);
}
if (_unknownFields != null) {
size += _unknownFields.CalculateSize();
}
return size;
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public void MergeFrom(Protobuf_Room_Get_Screen other) {
if (other == null) {
return;
}
if (other.RoomID != 0) {
RoomID = other.RoomID;
}
_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;
case 8: {
RoomID = input.ReadInt32();
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;
case 8: {
RoomID = input.ReadInt32();
break;
}
}
}
}
#endif
}
public sealed partial class Protobuf_Room_Get_Screen_RESP : pb::IMessage<Protobuf_Room_Get_Screen_RESP>
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
, pb::IBufferMessage
#endif
{
private static readonly pb::MessageParser<Protobuf_Room_Get_Screen_RESP> _parser = new pb::MessageParser<Protobuf_Room_Get_Screen_RESP>(() => new Protobuf_Room_Get_Screen_RESP());
private pb::UnknownFieldSet _unknownFields;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pb::MessageParser<Protobuf_Room_Get_Screen_RESP> Parser { get { return _parser; } }
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[25]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
pbr::MessageDescriptor pb::IMessage.Descriptor {
get { return Descriptor; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public Protobuf_Room_Get_Screen_RESP() {
OnConstruction();
}
partial void OnConstruction();
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public Protobuf_Room_Get_Screen_RESP(Protobuf_Room_Get_Screen_RESP other) : this() {
roomID_ = other.roomID_;
frameID_ = other.frameID_;
rawBitmap_ = other.rawBitmap_;
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public Protobuf_Room_Get_Screen_RESP Clone() {
return new Protobuf_Room_Get_Screen_RESP(this);
}
/// <summary>Field number for the "RoomID" field.</summary>
public const int RoomIDFieldNumber = 1;
private int roomID_;
/// <summary>
///房间ID
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public int RoomID {
get { return roomID_; }
set {
roomID_ = value;
}
}
/// <summary>Field number for the "FrameID" field.</summary>
public const int FrameIDFieldNumber = 2;
private int frameID_;
/// <summary>
///帧编号
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public int FrameID {
get { return frameID_; }
set {
frameID_ = value;
}
}
/// <summary>Field number for the "RawBitmap" field.</summary>
public const int RawBitmapFieldNumber = 3;
private pb::ByteString rawBitmap_ = pb::ByteString.Empty;
/// <summary>
///渲染层画面
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public pb::ByteString RawBitmap {
get { return rawBitmap_; }
set {
rawBitmap_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
}
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override bool Equals(object other) {
return Equals(other as Protobuf_Room_Get_Screen_RESP);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public bool Equals(Protobuf_Room_Get_Screen_RESP other) {
if (ReferenceEquals(other, null)) {
return false;
}
if (ReferenceEquals(other, this)) {
return true;
}
if (RoomID != other.RoomID) return false;
if (FrameID != other.FrameID) return false;
if (RawBitmap != other.RawBitmap) return false;
return Equals(_unknownFields, other._unknownFields);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override int GetHashCode() {
int hash = 1;
if (RoomID != 0) hash ^= RoomID.GetHashCode();
if (FrameID != 0) hash ^= FrameID.GetHashCode();
if (RawBitmap.Length != 0) hash ^= RawBitmap.GetHashCode();
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 (RoomID != 0) {
output.WriteRawTag(8);
output.WriteInt32(RoomID);
}
if (FrameID != 0) {
output.WriteRawTag(16);
output.WriteInt32(FrameID);
}
if (RawBitmap.Length != 0) {
output.WriteRawTag(26);
output.WriteBytes(RawBitmap);
}
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 (RoomID != 0) {
output.WriteRawTag(8);
output.WriteInt32(RoomID);
}
if (FrameID != 0) {
output.WriteRawTag(16);
output.WriteInt32(FrameID);
}
if (RawBitmap.Length != 0) {
output.WriteRawTag(26);
output.WriteBytes(RawBitmap);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(ref output);
}
}
#endif
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public int CalculateSize() {
int size = 0;
if (RoomID != 0) {
size += 1 + pb::CodedOutputStream.ComputeInt32Size(RoomID);
}
if (FrameID != 0) {
size += 1 + pb::CodedOutputStream.ComputeInt32Size(FrameID);
}
if (RawBitmap.Length != 0) {
size += 1 + pb::CodedOutputStream.ComputeBytesSize(RawBitmap);
}
if (_unknownFields != null) {
size += _unknownFields.CalculateSize();
}
return size;
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public void MergeFrom(Protobuf_Room_Get_Screen_RESP other) {
if (other == null) {
return;
}
if (other.RoomID != 0) {
RoomID = other.RoomID;
}
if (other.FrameID != 0) {
FrameID = other.FrameID;
}
if (other.RawBitmap.Length != 0) {
RawBitmap = other.RawBitmap;
}
_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;
case 8: {
RoomID = input.ReadInt32();
break;
}
case 16: {
FrameID = input.ReadInt32();
break;
}
case 26: {
RawBitmap = input.ReadBytes();
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;
case 8: {
RoomID = input.ReadInt32();
break;
}
case 16: {
FrameID = input.ReadInt32();
break;
}
case 26: {
RawBitmap = input.ReadBytes();
break;
}
}
}
}
#endif
}
#endregion #endregion
} }

View File

@ -17,7 +17,6 @@ enum CommandID
// //
CMD_Room_List = 5001; // | Protobuf_Room_List | Protobuf_Room_List_RESP CMD_Room_List = 5001; // | Protobuf_Room_List | Protobuf_Room_List_RESP
CMD_Room_List_Update = 5002; // Protobuf_Room_Update_RESP CMD_Room_List_Update = 5002; // Protobuf_Room_Update_RESP
CMD_Room_Get_Screen = 5011; // | Protobuf_Room_Get_Screen | Protobuf_Room_Get_Screen_RESP
// //
CMD_Room_Create = 5101; // Protobuf_Room_Create | Protobuf_Room_Create_RESP CMD_Room_Create = 5101; // Protobuf_Room_Create | Protobuf_Room_Create_RESP
@ -264,16 +263,4 @@ message Protobuf_Room_HostPlayer_UpdateStateRaw_RESP
message Protobuf_Room_Player_Ready message Protobuf_Room_Player_Ready
{ {
}
message Protobuf_Room_Get_Screen
{
int32 RoomID = 1;//ID
}
message Protobuf_Room_Get_Screen_RESP
{
int32 RoomID = 1;//ID
int32 FrameID = 2;//
bytes RawBitmap = 3;//
} }