Compare commits

..

No commits in common. "c8f0d77b3437bf266ee3a0ed68db16ffaa2b160c" and "ef419928ed0ea6031e6bfa4e8c1dfb5f165b9160" have entirely different histories.

21 changed files with 128 additions and 240 deletions

View File

@ -2,7 +2,10 @@
using nn.fs; using nn.fs;
#endif #endif
using nn.fs;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;
public class AxiNSIO public class AxiNSIO
{ {

View File

@ -1,4 +1,5 @@
using System.Collections.Generic; using Sony.Vita.Dialog;
using System.Collections.Generic;
namespace AxiIO namespace AxiIO
{ {

View File

@ -70,7 +70,7 @@ namespace AxibugEmuOnline.Client
SavDataIdx = SavDataIdx SavDataIdx = SavDataIdx
}; };
App.log.Info($"SendDelGameSavList"); App.log.Info($"SendDelGameSavList");
App.network.SendToServer((int)CommandID.CmdGamesavDelGameSav, ProtoBufHelper.Serizlize(req)); App.network.SendToServer((int)CommandID.CmdGamesavGetGameSavList, ProtoBufHelper.Serizlize(req));
} }
void RecvDelGameSavList(byte[] reqData) void RecvDelGameSavList(byte[] reqData)
@ -105,7 +105,7 @@ namespace AxibugEmuOnline.Client
App.log.Info($"上传即时存档数据 原数据大小:{RawData.Length},压缩后;{compressRawData.Length}"); App.log.Info($"上传即时存档数据 原数据大小:{RawData.Length},压缩后;{compressRawData.Length}");
App.log.Info($"上传截图 原数据大小:{SavImgData.Length},压缩后;{compressImgData.Length}"); App.log.Info($"上传截图 原数据大小:{SavImgData.Length},压缩后;{compressImgData.Length}");
App.network.SendToServer((int)CommandID.CmdGamesavUploadGameSav, ProtoBufHelper.Serizlize(req)); App.network.SendToServer((int)CommandID.CmdGamesavGetGameSavList, ProtoBufHelper.Serizlize(req));
} }
void RecvUpLoadGameSav(byte[] reqData) void RecvUpLoadGameSav(byte[] reqData)

View File

@ -72,7 +72,6 @@ namespace AxibugEmuOnline.Client
SlotIndex = slotIndex; SlotIndex = slotIndex;
FSM = new SimpleFSM<SaveFile>(this); FSM = new SimpleFSM<SaveFile>(this);
FSM.AddState<IdleState>(); FSM.AddState<IdleState>();
FSM.AddState<CheckingNetworkState>();//
FSM.AddState<CheckingState>(); FSM.AddState<CheckingState>();
FSM.AddState<DownloadingState>(); FSM.AddState<DownloadingState>();
FSM.AddState<UploadingState>(); FSM.AddState<UploadingState>();

View File

@ -11,7 +11,7 @@ namespace AxibugEmuOnline.Client
{ {
public override void OnUpdate() public override void OnUpdate()
{ {
if (App.user.IsLoggedIn) if (App.network.isConnected)
{ {
FSM.ChangeState<CheckingState>(); FSM.ChangeState<CheckingState>();
} }

View File

@ -38,7 +38,7 @@ namespace AxibugEmuOnline.Client
if (romID != Host.RomID) return; if (romID != Host.RomID) return;
NetData = savSlotData[Host.SlotIndex]; NetData = savSlotData[Host.SlotIndex];
if (!NetData.BHadSaveData) //云存档不存在,上传本地存档 if (NetData == null) //云存档不存在,上传本地存档
{ {
FSM.ChangeState<UploadingState>(); FSM.ChangeState<UploadingState>();
} }

View File

@ -10,11 +10,6 @@ namespace AxibugEmuOnline.Client
{ {
Host.CloudAPI.OnUploadedSavData += Api_OnUploadedSavData; Host.CloudAPI.OnUploadedSavData += Api_OnUploadedSavData;
if (Host.IsEmpty)
{
FSM.ChangeState<SyncedState>();
return;
}
Host.GetSavData(out byte[] savData, out byte[] screenData); Host.GetSavData(out byte[] savData, out byte[] screenData);
Host.CloudAPI.SendUpLoadGameSav(Host.RomID, Host.SlotIndex, Host.Sequecen, savData, screenData); Host.CloudAPI.SendUpLoadGameSav(Host.RomID, Host.SlotIndex, Host.Sequecen, savData, screenData);
} }

View File

@ -46,7 +46,7 @@ namespace AxibugEmuOnline.Client
float LastLoopTime_15s; float LastLoopTime_15s;
private void Update() private void Update()
{ {
NetMsg.Instance.NextNetEvent(); NetMsg.Instance.DequeueNesMsg();
LoopAction_tick?.Invoke(); LoopAction_tick?.Invoke();

View File

@ -1,5 +1,4 @@
using AxibugEmuOnline.Client.ClientCore; using AxibugEmuOnline.Client.ClientCore;
using AxibugEmuOnline.Client.Event;
using AxibugProtobuf; using AxibugProtobuf;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
@ -16,15 +15,11 @@ namespace AxibugEmuOnline.Client.Network
private Dictionary<int, List<Delegate>> netEventDic = new Dictionary<int, List<Delegate>>(128); private Dictionary<int, List<Delegate>> netEventDic = new Dictionary<int, List<Delegate>>(128);
private Queue<ValueTuple<int, int, byte[]>> queueNetMsg = new Queue<ValueTuple<int, int, byte[]>>(); private Queue<ValueTuple<int, int, byte[]>> queueNetMsg = new Queue<ValueTuple<int, int, byte[]>>();
public static object lockQueueNetMsg = new object();
private Queue<Action> queueEventFromNet = new Queue<Action>();
public static object lockQueueEventFromNet = new object();
private NetMsg() { } private NetMsg() { }
public static object lockQueueObj = new object();
#region RegisterMsgEvent #region RegisterMsgEvent
@ -64,56 +59,13 @@ namespace AxibugEmuOnline.Client.Network
netEventDic[cmd].Remove(callback); netEventDic[cmd].Remove(callback);
if (netEventDic[cmd].Count == 0) netEventDic.Remove(cmd); if (netEventDic[cmd].Count == 0) netEventDic.Remove(cmd);
} }
} }
#endregion #endregion
public void NextNetEvent()
{
DequeueNesMsg();
DequeueEventFromNet();
}
#region PostEventFromNet
public void EnqueueEventFromNet(Action act) #region PostEvent
public void EnqueueNesMsg(int cmd, int ERRCODE, byte[] arg)
{ {
lock (lockQueueEventFromNet) lock (lockQueueObj)
{
queueEventFromNet.Enqueue(act);
}
}
public void DequeueEventFromNet()
{
lock (lockQueueEventFromNet)
{
while (queueEventFromNet.Count > 0)
{
var msgData = queueEventFromNet.Dequeue();
PostNetEventFromNet(msgData);
}
}
}
void PostNetEventFromNet(Action act)
{
try
{
act?.Invoke();
}
catch(Exception ex)
{
App.log.Error(ex.ToString());
}
}
#endregion
#region PostNetMsg
public void EnqueueNetMsg(int cmd, int ERRCODE, byte[] arg)
{
lock (lockQueueNetMsg)
{ {
queueNetMsg.Enqueue(new ValueTuple<int, int, byte[]>(cmd, ERRCODE, arg)); queueNetMsg.Enqueue(new ValueTuple<int, int, byte[]>(cmd, ERRCODE, arg));
} }
@ -121,7 +73,7 @@ namespace AxibugEmuOnline.Client.Network
public void DequeueNesMsg() public void DequeueNesMsg()
{ {
lock (lockQueueNetMsg) lock (lockQueueObj)
{ {
while (queueNetMsg.Count > 0) while (queueNetMsg.Count > 0)
{ {

View File

@ -15,11 +15,11 @@ namespace AxibugEmuOnline.Client.Network
{ {
public NetworkHelper() public NetworkHelper()
{ {
OnConnected += NetworkConnected;
//指定接收服务器数据事件 //指定接收服务器数据事件
OnReceiveData += GetDataCallBack; OnReceiveData += GetDataCallBack;
//断开连接 //断开连接
OnClose += OnConnectClose; OnClose += OnConnectClose;
OnConnected += NetworkConnected;
//网络库调试信息输出事件,用于打印网络内容 //网络库调试信息输出事件,用于打印网络内容
OnLogOut += NetworkDeBugLog; OnLogOut += NetworkDeBugLog;
} }
@ -39,17 +39,7 @@ namespace AxibugEmuOnline.Client.Network
/// </summary> /// </summary>
const int ReConnectTryTime = 1000; const int ReConnectTryTime = 1000;
void NetworkConnected(bool IsConnect) public void NetworkConnected(bool IsConnect)
{
NetMsg.Instance.EnqueueEventFromNet(() => NetworkConnected_Delegate(IsConnect));
}
void OnConnectClose()
{
NetMsg.Instance.EnqueueEventFromNet(() => OnConnectClose_Delegate());
}
void NetworkConnected_Delegate(bool IsConnect)
{ {
NetworkDeBugLog($"NetworkConnected:{IsConnect}"); NetworkDeBugLog($"NetworkConnected:{IsConnect}");
if (IsConnect) if (IsConnect)
@ -73,7 +63,7 @@ namespace AxibugEmuOnline.Client.Network
} }
} }
void NetworkDeBugLog(string str) public void NetworkDeBugLog(string str)
{ {
//用于Unity内的输出 //用于Unity内的输出
//Debug.Log("NetCoreDebug >> "+str); //Debug.Log("NetCoreDebug >> "+str);
@ -86,7 +76,7 @@ namespace AxibugEmuOnline.Client.Network
/// <param name="CMDID">协议ID</param> /// <param name="CMDID">协议ID</param>
/// <param name="ERRCODE">错误编号</param> /// <param name="ERRCODE">错误编号</param>
/// <param name="data">业务数据</param> /// <param name="data">业务数据</param>
void GetDataCallBack(int CMDID, int ERRCODE, byte[] data) public void GetDataCallBack(int CMDID, int ERRCODE, byte[] data)
{ {
//NetworkDeBugLog("收到消息 CMDID =>" + CMDID + " ERRCODE =>" + ERRCODE + " 数据长度=>" + data.Length); //NetworkDeBugLog("收到消息 CMDID =>" + CMDID + " ERRCODE =>" + ERRCODE + " 数据长度=>" + data.Length);
try try
@ -96,7 +86,7 @@ namespace AxibugEmuOnline.Client.Network
if (CMDID <= (int)CommandID.CmdPong) if (CMDID <= (int)CommandID.CmdPong)
NetMsg.Instance.PostNetMsgEvent(CMDID, ERRCODE, data); NetMsg.Instance.PostNetMsgEvent(CMDID, ERRCODE, data);
else//加入队列,主线程来取 else//加入队列,主线程来取
NetMsg.Instance.EnqueueNetMsg(CMDID, ERRCODE, data); NetMsg.Instance.EnqueueNesMsg(CMDID, ERRCODE, data);
} }
catch (Exception ex) catch (Exception ex)
{ {
@ -107,7 +97,7 @@ namespace AxibugEmuOnline.Client.Network
/// <summary> /// <summary>
/// 关闭连接 /// 关闭连接
/// </summary> /// </summary>
void OnConnectClose_Delegate() public void OnConnectClose()
{ {
NetworkDeBugLog("OnConnectClose"); NetworkDeBugLog("OnConnectClose");
Eventer.Instance.PostEvent(EEvent.OnLossLoginState); Eventer.Instance.PostEvent(EEvent.OnLossLoginState);

View File

@ -141,35 +141,34 @@ namespace AxibugProtobuf {
"bnB1dBD6LhIdChhDTURfUk9PTV9TWU5fUGxheWVySW5wdXQQ/y4SDwoKQ01E", "bnB1dBD6LhIdChhDTURfUk9PTV9TWU5fUGxheWVySW5wdXQQ/y4SDwoKQ01E",
"X1NjcmVlbhDZNhIfChpDTURfR0FNRVNBVl9HZXRHYW1lU2F2TGlzdBDBPhIb", "X1NjcmVlbhDZNhIfChpDTURfR0FNRVNBVl9HZXRHYW1lU2F2TGlzdBDBPhIb",
"ChZDTURfR0FNRVNBVl9EZWxHYW1lU2F2EMU+Eh4KGUNNRF9HQU1FU0FWX1Vw", "ChZDTURfR0FNRVNBVl9EZWxHYW1lU2F2EMU+Eh4KGUNNRF9HQU1FU0FWX1Vw",
"bG9hZEdhbWVTYXYQyj4SEgoNQ01EX0dBTUVfTUFSSxD1TiqOAgoJRXJyb3JD", "bG9hZEdhbWVTYXYQyj4SEgoNQ01EX0dBTUVfTUFSSxD1TirxAQoJRXJyb3JD",
"b2RlEhAKDEVSUk9SX0RFRkFVTBAAEgwKCEVSUk9SX09LEAESGAoURVJST1Jf", "b2RlEhAKDEVSUk9SX0RFRkFVTBAAEgwKCEVSUk9SX09LEAESGAoURVJST1Jf",
"Uk9PTV9OT1RfRk9VTkQQChInCiNFUlJPUl9ST09NX1NMT1RfQUxSRUFETFlf", "Uk9PTV9OT1RfRk9VTkQQChInCiNFUlJPUl9ST09NX1NMT1RfQUxSRUFETFlf",
"SEFEX1BMQVlFUhALEiEKHUVSUk9SX1JPT01fQ0FOVF9ET19DVVJSX1NUQVRF", "SEFEX1BMQVlFUhALEiEKHUVSUk9SX1JPT01fQ0FOVF9ET19DVVJSX1NUQVRF",
"EDISHwobRVJST1JfUk9NX0RPTlRfSEFEX1NBVkVEQVRBEFASGwoXRVJST1Jf", "EDISHwobRVJST1JfUk9NX0RPTlRfSEFEX1NBVkVEQVRBEFASHwoaRVJST1Jf",
"Uk9NX0ZBSUxfU0FWRURBVEEQURIfChpFUlJPUl9ST01fQUxSRUFEWV9IQURf", "Uk9NX0FMUkVBRFlfSEFEX1NUQVIQkwMSHAoXRVJST1JfUk9NX0RPTlRfSEFE",
"U1RBUhCTAxIcChdFUlJPUl9ST01fRE9OVF9IQURfU1RBUhCUAypACglMb2dp", "X1NUQVIQlAMqQAoJTG9naW5UeXBlEg0KCVVzZURldmljZRAAEg4KClVzZUFj",
"blR5cGUSDQoJVXNlRGV2aWNlEAASDgoKVXNlQWNjb3VudBABEhQKEFVzZUhh", "Y291bnQQARIUChBVc2VIYW9ZdWVBY2NvdW50EAIqpQEKCkRldmljZVR5cGUS",
"b1l1ZUFjY291bnQQAiqlAQoKRGV2aWNlVHlwZRIWChJEZXZpY2VUeXBlX0Rl", "FgoSRGV2aWNlVHlwZV9EZWZhdWx0EAASBgoCUEMQARILCgdBbmRyb2lkEAIS",
"ZmF1bHQQABIGCgJQQxABEgsKB0FuZHJvaWQQAhIHCgNJT1MQAxIHCgNQU1YQ", "BwoDSU9TEAMSBwoDUFNWEAQSBwoDUFMzEAUSBwoDUFM0EAYSCwoHWEJPWDM2",
"BBIHCgNQUzMQBRIHCgNQUzQQBhILCgdYQk9YMzYwEAcSCwoHWEJPWE9ORRAI", "MBAHEgsKB1hCT1hPTkUQCBIICgRXaWlVEAkSDwoLTmludGVuZG8zRFMQChIR",
"EggKBFdpaVUQCRIPCgtOaW50ZW5kbzNEUxAKEhEKDUFuZHJvaWRDYXJBcHAQ", "Cg1BbmRyb2lkQ2FyQXBwEAsqkwIKC0dhbWVQYWRUeXBlEgwKCEtleWJvYXJk",
"CyqTAgoLR2FtZVBhZFR5cGUSDAoIS2V5Ym9hcmQQABIRCg1HbG9iYWxHYW1l", "EAASEQoNR2xvYmFsR2FtZVBhZBABEg4KClRvdWNoUGFuZWwQAhIOCgpEUzND",
"UGFkEAESDgoKVG91Y2hQYW5lbBACEg4KCkRTM0NvbnRyb2wQAxIOCgpEUzRD", "b250cm9sEAMSDgoKRFM0Q29udHJvbBAEEg4KCkRTNUNvbnRyb2wQBRIUChBT",
"b250cm9sEAQSDgoKRFM1Q29udHJvbBAFEhQKEFN3aXRjaFByb0NvbnRyb2wQ", "d2l0Y2hQcm9Db250cm9sEAYSEAoMU3dpdGNoSm95Q29uEAcSEgoOWEJPWDM2",
"BhIQCgxTd2l0Y2hKb3lDb24QBxISCg5YQk9YMzYwQ29udHJvbBAIEhIKDlhC", "MENvbnRyb2wQCBISCg5YQk9YT05FQ29udHJvbBAJEhEKDVBTVml0YUNvbnRy",
"T1hPTkVDb250cm9sEAkSEQoNUFNWaXRhQ29udHJvbBAKEhIKDldpaVVQYWRD", "b2wQChISCg5XaWlVUGFkQ29udHJvbBALEhQKEFdpaVJlbW90ZUNvbnRyb2wQ",
"b250cm9sEAsSFAoQV2lpUmVtb3RlQ29udHJvbBAMEhYKEk5pbnRlbmRvM0RT", "DBIWChJOaW50ZW5kbzNEU0NvbnRyb2wQDSqDAgoPUm9tUGxhdGZvcm1UeXBl",
"Q29udHJvbBANKoMCCg9Sb21QbGF0Zm9ybVR5cGUSCwoHSW52YWxpZBAAEgcK", "EgsKB0ludmFsaWQQABIHCgNOZXMQARIRCg1NYXN0ZXJfU3lzdGVtEAISDQoJ",
"A05lcxABEhEKDU1hc3Rlcl9TeXN0ZW0QAhINCglHYW1lX0dlYXIQAxIMCghH", "R2FtZV9HZWFyEAMSDAoIR2FtZV9Cb3kQBBISCg5HYW1lX0JveV9Db2xvchAF",
"YW1lX0JveRAEEhIKDkdhbWVfQm95X0NvbG9yEAUSEQoNQ29sZWNvX1Zpc2lv", "EhEKDUNvbGVjb19WaXNpb24QBhILCgdTQ18zMDAwEAcSCwoHU0dfMTAwMBAI",
"bhAGEgsKB1NDXzMwMDAQBxILCgdTR18xMDAwEAgSCgoGTkVPR0VPEBQSBwoD", "EgoKBk5FT0dFTxAUEgcKA0lHUxAVEggKBENQUzEQFhIICgRDUFMyEBcSDgoK",
"SUdTEBUSCAoEQ1BTMRAWEggKBENQUzIQFxIOCgpBcmNhZGVfT0xEEB4SDwoL", "QXJjYWRlX09MRBAeEg8KC1dvbmRlcl9Td2FuECgSFQoRV29uZGVyX1N3YW5f",
"V29uZGVyX1N3YW4QKBIVChFXb25kZXJfU3dhbl9Db2xvchApEggKA0FsbBDn", "Q29sb3IQKRIICgNBbGwQ5wcqcAoNUm9vbUdhbWVTdGF0ZRISCg5Ob25lX0dh",
"BypwCg1Sb29tR2FtZVN0YXRlEhIKDk5vbmVfR2FtZVN0YXRlEAASDAoIT25s", "bWVTdGF0ZRAAEgwKCE9ubHlIb3N0EAESEQoNV2FpdFJhd1VwZGF0ZRACEg0K",
"eUhvc3QQARIRCg1XYWl0UmF3VXBkYXRlEAISDQoJV2FpdFJlYWR5EAMSCQoF", "CVdhaXRSZWFkeRADEgkKBVBhdXNlEAQSEAoMSW5PbmxpbmVHYW1lEAUqTgoR",
"UGF1c2UQBBIQCgxJbk9ubGluZUdhbWUQBSpOChFMb2dpblJlc3VsdFN0YXR1", "TG9naW5SZXN1bHRTdGF0dXMSIQodTG9naW5SZXN1bHRTdGF0dXNfQmFzZURl",
"cxIhCh1Mb2dpblJlc3VsdFN0YXR1c19CYXNlRGVmYXVsdBAAEgYKAk9LEAES", "ZmF1bHQQABIGCgJPSxABEg4KCkFjY291bnRFcnIQAkICSAFiBnByb3RvMw=="));
"DgoKQWNjb3VudEVychACQgJIAWIGcHJvdG8z"));
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.GamePadType), typeof(global::AxibugProtobuf.RomPlatformType), typeof(global::AxibugProtobuf.RoomGameState), typeof(global::AxibugProtobuf.LoginResultStatus), }, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(new[] {typeof(global::AxibugProtobuf.CommandID), typeof(global::AxibugProtobuf.ErrorCode), typeof(global::AxibugProtobuf.LoginType), typeof(global::AxibugProtobuf.DeviceType), typeof(global::AxibugProtobuf.GamePadType), typeof(global::AxibugProtobuf.RomPlatformType), typeof(global::AxibugProtobuf.RoomGameState), typeof(global::AxibugProtobuf.LoginResultStatus), }, null, new pbr::GeneratedClrTypeInfo[] {
@ -396,10 +395,6 @@ namespace AxibugProtobuf {
/// </summary> /// </summary>
[pbr::OriginalName("ERROR_ROM_DONT_HAD_SAVEDATA")] ErrorRomDontHadSavedata = 80, [pbr::OriginalName("ERROR_ROM_DONT_HAD_SAVEDATA")] ErrorRomDontHadSavedata = 80,
/// <summary> /// <summary>
///即时存档不存在
/// </summary>
[pbr::OriginalName("ERROR_ROM_FAIL_SAVEDATA")] ErrorRomFailSavedata = 81,
/// <summary>
///已经收藏 ///已经收藏
/// </summary> /// </summary>
[pbr::OriginalName("ERROR_ROM_ALREADY_HAD_STAR")] ErrorRomAlreadyHadStar = 403, [pbr::OriginalName("ERROR_ROM_ALREADY_HAD_STAR")] ErrorRomAlreadyHadStar = 403,

View File

@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: e6de7f0cc4868434f96bf3580893e149
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,2 +0,0 @@
fileFormatVersion: 2
guid: 1877afb89575e564abcecf61e28cf7ce

View File

@ -21,7 +21,7 @@ namespace AxibugEmuOnline.Server.Common
public string ClientVersion { get; set; } public string ClientVersion { get; set; }
public string AesKey { get; set; } public string AesKey { get; set; }
public string AesIv { get; set; } public string AesIv { get; set; }
public string savDataPath { get; set; } = ""; public string savDataPath { get; set; }
} }

View File

@ -1,5 +1,4 @@
using System.IO.Compression; using System.Security.Cryptography;
using System.Security.Cryptography;
using System.Text; using System.Text;
namespace AxibugEmuOnline.Server.Common namespace AxibugEmuOnline.Server.Common
@ -21,28 +20,6 @@ namespace AxibugEmuOnline.Server.Common
return Convert.ToInt64(ts.TotalSeconds); return Convert.ToInt64(ts.TotalSeconds);
} }
public static byte[] CompressByteArray(byte[] bytesToCompress)
{
using (var compressedMemoryStream = new System.IO.MemoryStream())
using (var gzipStream = new GZipStream(compressedMemoryStream, CompressionMode.Compress))
{
gzipStream.Write(bytesToCompress, 0, bytesToCompress.Length);
gzipStream.Close();
return compressedMemoryStream.ToArray();
}
}
public static byte[] DecompressByteArray(byte[] compressedBytes)
{
using (var compressedMemoryStream = new System.IO.MemoryStream(compressedBytes))
using (var gzipStream = new GZipStream(compressedMemoryStream, CompressionMode.Decompress))
using (var resultMemoryStream = new System.IO.MemoryStream())
{
gzipStream.CopyTo(resultMemoryStream);
return resultMemoryStream.ToArray();
}
}
public static string FileMD5Hash(string filePath) public static string FileMD5Hash(string filePath)
{ {
using (var md5 = MD5.Create()) using (var md5 = MD5.Create())

View File

@ -25,10 +25,11 @@ namespace AxibugEmuOnline.Server.Manager
Protobuf_Mine_GetGameSavList_RESP respData = new Protobuf_Mine_GetGameSavList_RESP(); Protobuf_Mine_GetGameSavList_RESP respData = new Protobuf_Mine_GetGameSavList_RESP();
respData.RomID = msg.RomID; respData.RomID = msg.RomID;
respData.SavDataList.Add(new Protobuf_Mine_GameSavInfo() { BHadSaveData = false, SavDataIdx = 0 }); Protobuf_Mine_GameSavInfo nulldata = null;
respData.SavDataList.Add(new Protobuf_Mine_GameSavInfo() { BHadSaveData = false, SavDataIdx = 1 }); respData.SavDataList.Add(nulldata);
respData.SavDataList.Add(new Protobuf_Mine_GameSavInfo() { BHadSaveData = false, SavDataIdx = 2 }); respData.SavDataList.Add(nulldata);
respData.SavDataList.Add(new Protobuf_Mine_GameSavInfo() { BHadSaveData = false, SavDataIdx = 3 }); respData.SavDataList.Add(nulldata);
respData.SavDataList.Add(nulldata);
string query = "SELECT `id`,`uid`,`romid`, `savidx`, `savName`,`savNote`, `savUrl`,`savImgUrl`, `savDate`, `savSequence` from user_gamesavedata where uid = ?uid and romid = ?romid"; string query = "SELECT `id`,`uid`,`romid`, `savidx`, `savName`,`savNote`, `savUrl`,`savImgUrl`, `savDate`, `savSequence` from user_gamesavedata where uid = ?uid and romid = ?romid";
bool bHad = false; bool bHad = false;
@ -43,24 +44,28 @@ namespace AxibugEmuOnline.Server.Manager
{ {
while (reader.Read()) while (reader.Read())
{ {
int savidx = reader.GetInt32(3); Protobuf_Mine_GameSavInfo resp = new Protobuf_Mine_GameSavInfo()
respData.SavDataList[savidx].BHadSaveData = true; {
respData.SavDataList[savidx].SavID = reader.GetInt64(0); BHadSaveData = true,
respData.SavDataList[savidx].Uid = reader.GetInt64(1); SavID = reader.GetInt64(0),
respData.SavDataList[savidx].RomID = reader.GetInt32(2); Uid = reader.GetInt64(1),
respData.SavDataList[savidx].SavDataIdx = savidx; RomID = reader.GetInt32(2),
respData.SavDataList[savidx].SavName = reader.GetString(4); SavDataIdx = reader.GetInt32(3),
respData.SavDataList[savidx].Note = reader.GetString(5); SavName = reader.GetString(4),
respData.SavDataList[savidx].SavUrl = reader.GetString(6); Note = reader.GetString(5),
respData.SavDataList[savidx].SavImgUrl = reader.GetString(7); SavUrl = reader.GetString(6),
respData.SavDataList[savidx].SavDate = reader.GetDateTime(8).ToString(); SavImgUrl = reader.GetString(7),
respData.SavDataList[savidx].Sequence = reader.GetInt32(9); SavDate = reader.GetDateTime(8).ToString(),
respData.SavDataList[savidx].GamePlatformType = AppSrv.g_GameShareMgr.GetRomPlatformType(msg.RomID); Sequence = reader.GetInt32(9),
GamePlatformType = AppSrv.g_GameShareMgr.GetRomPlatformType(msg.RomID)
};
respData.SavDataList[resp.SavDataIdx] = resp;
} }
} }
} }
} }
respData.RomID = msg.RomID;
AppSrv.g_ClientMgr.ClientSend(_c, (int)CommandID.CmdGamesavGetGameSavList, (int)ErrorCode.ErrorOk, ProtoBufHelper.Serizlize(respData)); AppSrv.g_ClientMgr.ClientSend(_c, (int)CommandID.CmdGamesavGetGameSavList, (int)ErrorCode.ErrorOk, ProtoBufHelper.Serizlize(respData));
} }
@ -165,15 +170,12 @@ namespace AxibugEmuOnline.Server.Manager
{ {
byte[] StateRawData = msg.StateRaw.ToArray(); byte[] StateRawData = msg.StateRaw.ToArray();
byte[] ImgData = msg.SavImg.ToArray(); byte[] ImgData = msg.SavImg.ToArray();
GetNewRomPath(_c.UID, ptype, msg.RomID, msg.SavDataIdx, $"{msg.SavDataIdx}.sav", out string rompath); GetNewRomPath(_c.UID, ptype, msg.RomID, msg.SavDataIdx, $"{msg.SavDataIdx}.axisav", out string rompath);
GetNewRomPath(_c.UID, ptype, msg.RomID, msg.SavDataIdx, $"{msg.SavDataIdx}.jpg", out string imgpath); GetNewRomPath(_c.UID, ptype, msg.RomID, msg.SavDataIdx, $"{msg.SavDataIdx}.axiimg", out string imgpath);
ImgData = Helper.DecompressByteArray(ImgData); if (!CreateFile(Path.Combine(Config.cfg.savDataPath, rompath), StateRawData)
||
if ( !CreateFile(Path.Combine(Config.cfg.savDataPath, imgpath), StateRawData)
CreateFile(Path.Combine(Config.cfg.savDataPath, rompath), StateRawData)
&&
CreateFile(Path.Combine(Config.cfg.savDataPath, imgpath), ImgData)
) )
{ {
//INSERT INTO `haoyue_emu`.`user_gamesavedata` ( `uid`, `romid`, `savidx`, `savName`, `savNote`, `savUrl`, `savImgUrl`, `savDate`) VALUES ( 0, 0, 2147483647, '', '', '', '', '0000-00-00 00:00:00'); //INSERT INTO `haoyue_emu`.`user_gamesavedata` ( `uid`, `romid`, `savidx`, `savName`, `savNote`, `savUrl`, `savImgUrl`, `savDate`) VALUES ( 0, 0, 2147483647, '', '', '', '', '0000-00-00 00:00:00');
@ -203,10 +205,6 @@ namespace AxibugEmuOnline.Server.Manager
} }
} }
} }
else
{
errCode = ErrorCode.ErrorRomFailSavedata;
}
} }
@ -258,7 +256,6 @@ namespace AxibugEmuOnline.Server.Manager
{ {
fs.Write(data, 0, data.Length); fs.Write(data, 0, data.Length);
} }
AppSrv.g_Log.Error($"CreeateFile {path}");
return true; return true;
} }
catch (Exception ex) catch (Exception ex)

View File

@ -4,7 +4,7 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
--> -->
<Project> <Project>
<PropertyGroup> <PropertyGroup>
<History>True|2025-03-20T03:08:16.2733764Z||;True|2025-02-25T10:21:20.8779432+08:00||;False|2025-02-25T10:20:39.1249758+08:00||;False|2025-02-24T23:48:17.6638177+08:00||;True|2025-01-09T14:39:17.5797829+08:00||;True|2025-01-09T14:39:05.6042660+08:00||;True|2025-01-09T14:33:09.1944386+08:00||;</History> <History>True|2025-02-25T02:21:20.8779432Z||;False|2025-02-25T10:20:39.1249758+08:00||;False|2025-02-24T23:48:17.6638177+08:00||;True|2025-01-09T14:39:17.5797829+08:00||;True|2025-01-09T14:39:05.6042660+08:00||;True|2025-01-09T14:33:09.1944386+08:00||;</History>
<LastFailureDetails /> <LastFailureDetails />
</PropertyGroup> </PropertyGroup>
</Project> </Project>

View File

@ -4,7 +4,7 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
--> -->
<Project> <Project>
<PropertyGroup> <PropertyGroup>
<History>True|2025-04-08T02:53:45.4627796Z||;True|2025-03-20T11:11:37.9448343+08:00||;True|2025-03-20T11:08:47.5054452+08:00||;True|2025-03-17T16:50:47.6205583+08:00||;True|2025-02-25T10:21:36.3766073+08:00||;True|2025-01-13T16:07:43.4441316+08:00||;True|2025-01-09T15:02:05.2160606+08:00||;True|2025-01-09T14:48:42.5299550+08:00||;False|2025-01-09T14:48:02.6306184+08:00||;True|2025-01-09T14:17:00.2185117+08:00||;True|2025-01-08T23:13:47.7309044+08:00||;True|2025-01-08T13:32:52.0590130+08:00||;True|2025-01-08T13:31:56.8589678+08:00||;True|2025-01-07T13:54:02.0272718+08:00||;True|2025-01-07T10:47:36.6196477+08:00||;True|2025-01-07T01:21:34.5863249+08:00||;False|2025-01-07T01:20:39.5344134+08:00||;True|2025-01-07T00:21:47.4863058+08:00||;True|2025-01-07T00:16:42.7998249+08:00||;False|2025-01-07T00:16:02.8107509+08:00||;False|2025-01-02T15:36:18.1906464+08:00||;False|2025-01-02T15:36:06.5622643+08:00||;True|2024-12-27T18:24:49.7554320+08:00||;</History> <History>True|2025-02-25T02:21:36.3766073Z||;True|2025-01-13T16:07:43.4441316+08:00||;True|2025-01-09T15:02:05.2160606+08:00||;True|2025-01-09T14:48:42.5299550+08:00||;False|2025-01-09T14:48:02.6306184+08:00||;True|2025-01-09T14:17:00.2185117+08:00||;True|2025-01-08T23:13:47.7309044+08:00||;True|2025-01-08T13:32:52.0590130+08:00||;True|2025-01-08T13:31:56.8589678+08:00||;True|2025-01-07T13:54:02.0272718+08:00||;True|2025-01-07T10:47:36.6196477+08:00||;True|2025-01-07T01:21:34.5863249+08:00||;False|2025-01-07T01:20:39.5344134+08:00||;True|2025-01-07T00:21:47.4863058+08:00||;True|2025-01-07T00:16:42.7998249+08:00||;False|2025-01-07T00:16:02.8107509+08:00||;False|2025-01-02T15:36:18.1906464+08:00||;False|2025-01-02T15:36:06.5622643+08:00||;True|2024-12-27T18:24:49.7554320+08:00||;</History>
<LastFailureDetails /> <LastFailureDetails />
</PropertyGroup> </PropertyGroup>
</Project> </Project>

View File

@ -141,35 +141,34 @@ namespace AxibugProtobuf {
"bnB1dBD6LhIdChhDTURfUk9PTV9TWU5fUGxheWVySW5wdXQQ/y4SDwoKQ01E", "bnB1dBD6LhIdChhDTURfUk9PTV9TWU5fUGxheWVySW5wdXQQ/y4SDwoKQ01E",
"X1NjcmVlbhDZNhIfChpDTURfR0FNRVNBVl9HZXRHYW1lU2F2TGlzdBDBPhIb", "X1NjcmVlbhDZNhIfChpDTURfR0FNRVNBVl9HZXRHYW1lU2F2TGlzdBDBPhIb",
"ChZDTURfR0FNRVNBVl9EZWxHYW1lU2F2EMU+Eh4KGUNNRF9HQU1FU0FWX1Vw", "ChZDTURfR0FNRVNBVl9EZWxHYW1lU2F2EMU+Eh4KGUNNRF9HQU1FU0FWX1Vw",
"bG9hZEdhbWVTYXYQyj4SEgoNQ01EX0dBTUVfTUFSSxD1TiqOAgoJRXJyb3JD", "bG9hZEdhbWVTYXYQyj4SEgoNQ01EX0dBTUVfTUFSSxD1TirxAQoJRXJyb3JD",
"b2RlEhAKDEVSUk9SX0RFRkFVTBAAEgwKCEVSUk9SX09LEAESGAoURVJST1Jf", "b2RlEhAKDEVSUk9SX0RFRkFVTBAAEgwKCEVSUk9SX09LEAESGAoURVJST1Jf",
"Uk9PTV9OT1RfRk9VTkQQChInCiNFUlJPUl9ST09NX1NMT1RfQUxSRUFETFlf", "Uk9PTV9OT1RfRk9VTkQQChInCiNFUlJPUl9ST09NX1NMT1RfQUxSRUFETFlf",
"SEFEX1BMQVlFUhALEiEKHUVSUk9SX1JPT01fQ0FOVF9ET19DVVJSX1NUQVRF", "SEFEX1BMQVlFUhALEiEKHUVSUk9SX1JPT01fQ0FOVF9ET19DVVJSX1NUQVRF",
"EDISHwobRVJST1JfUk9NX0RPTlRfSEFEX1NBVkVEQVRBEFASGwoXRVJST1Jf", "EDISHwobRVJST1JfUk9NX0RPTlRfSEFEX1NBVkVEQVRBEFASHwoaRVJST1Jf",
"Uk9NX0ZBSUxfU0FWRURBVEEQURIfChpFUlJPUl9ST01fQUxSRUFEWV9IQURf", "Uk9NX0FMUkVBRFlfSEFEX1NUQVIQkwMSHAoXRVJST1JfUk9NX0RPTlRfSEFE",
"U1RBUhCTAxIcChdFUlJPUl9ST01fRE9OVF9IQURfU1RBUhCUAypACglMb2dp", "X1NUQVIQlAMqQAoJTG9naW5UeXBlEg0KCVVzZURldmljZRAAEg4KClVzZUFj",
"blR5cGUSDQoJVXNlRGV2aWNlEAASDgoKVXNlQWNjb3VudBABEhQKEFVzZUhh", "Y291bnQQARIUChBVc2VIYW9ZdWVBY2NvdW50EAIqpQEKCkRldmljZVR5cGUS",
"b1l1ZUFjY291bnQQAiqlAQoKRGV2aWNlVHlwZRIWChJEZXZpY2VUeXBlX0Rl", "FgoSRGV2aWNlVHlwZV9EZWZhdWx0EAASBgoCUEMQARILCgdBbmRyb2lkEAIS",
"ZmF1bHQQABIGCgJQQxABEgsKB0FuZHJvaWQQAhIHCgNJT1MQAxIHCgNQU1YQ", "BwoDSU9TEAMSBwoDUFNWEAQSBwoDUFMzEAUSBwoDUFM0EAYSCwoHWEJPWDM2",
"BBIHCgNQUzMQBRIHCgNQUzQQBhILCgdYQk9YMzYwEAcSCwoHWEJPWE9ORRAI", "MBAHEgsKB1hCT1hPTkUQCBIICgRXaWlVEAkSDwoLTmludGVuZG8zRFMQChIR",
"EggKBFdpaVUQCRIPCgtOaW50ZW5kbzNEUxAKEhEKDUFuZHJvaWRDYXJBcHAQ", "Cg1BbmRyb2lkQ2FyQXBwEAsqkwIKC0dhbWVQYWRUeXBlEgwKCEtleWJvYXJk",
"CyqTAgoLR2FtZVBhZFR5cGUSDAoIS2V5Ym9hcmQQABIRCg1HbG9iYWxHYW1l", "EAASEQoNR2xvYmFsR2FtZVBhZBABEg4KClRvdWNoUGFuZWwQAhIOCgpEUzND",
"UGFkEAESDgoKVG91Y2hQYW5lbBACEg4KCkRTM0NvbnRyb2wQAxIOCgpEUzRD", "b250cm9sEAMSDgoKRFM0Q29udHJvbBAEEg4KCkRTNUNvbnRyb2wQBRIUChBT",
"b250cm9sEAQSDgoKRFM1Q29udHJvbBAFEhQKEFN3aXRjaFByb0NvbnRyb2wQ", "d2l0Y2hQcm9Db250cm9sEAYSEAoMU3dpdGNoSm95Q29uEAcSEgoOWEJPWDM2",
"BhIQCgxTd2l0Y2hKb3lDb24QBxISCg5YQk9YMzYwQ29udHJvbBAIEhIKDlhC", "MENvbnRyb2wQCBISCg5YQk9YT05FQ29udHJvbBAJEhEKDVBTVml0YUNvbnRy",
"T1hPTkVDb250cm9sEAkSEQoNUFNWaXRhQ29udHJvbBAKEhIKDldpaVVQYWRD", "b2wQChISCg5XaWlVUGFkQ29udHJvbBALEhQKEFdpaVJlbW90ZUNvbnRyb2wQ",
"b250cm9sEAsSFAoQV2lpUmVtb3RlQ29udHJvbBAMEhYKEk5pbnRlbmRvM0RT", "DBIWChJOaW50ZW5kbzNEU0NvbnRyb2wQDSqDAgoPUm9tUGxhdGZvcm1UeXBl",
"Q29udHJvbBANKoMCCg9Sb21QbGF0Zm9ybVR5cGUSCwoHSW52YWxpZBAAEgcK", "EgsKB0ludmFsaWQQABIHCgNOZXMQARIRCg1NYXN0ZXJfU3lzdGVtEAISDQoJ",
"A05lcxABEhEKDU1hc3Rlcl9TeXN0ZW0QAhINCglHYW1lX0dlYXIQAxIMCghH", "R2FtZV9HZWFyEAMSDAoIR2FtZV9Cb3kQBBISCg5HYW1lX0JveV9Db2xvchAF",
"YW1lX0JveRAEEhIKDkdhbWVfQm95X0NvbG9yEAUSEQoNQ29sZWNvX1Zpc2lv", "EhEKDUNvbGVjb19WaXNpb24QBhILCgdTQ18zMDAwEAcSCwoHU0dfMTAwMBAI",
"bhAGEgsKB1NDXzMwMDAQBxILCgdTR18xMDAwEAgSCgoGTkVPR0VPEBQSBwoD", "EgoKBk5FT0dFTxAUEgcKA0lHUxAVEggKBENQUzEQFhIICgRDUFMyEBcSDgoK",
"SUdTEBUSCAoEQ1BTMRAWEggKBENQUzIQFxIOCgpBcmNhZGVfT0xEEB4SDwoL", "QXJjYWRlX09MRBAeEg8KC1dvbmRlcl9Td2FuECgSFQoRV29uZGVyX1N3YW5f",
"V29uZGVyX1N3YW4QKBIVChFXb25kZXJfU3dhbl9Db2xvchApEggKA0FsbBDn", "Q29sb3IQKRIICgNBbGwQ5wcqcAoNUm9vbUdhbWVTdGF0ZRISCg5Ob25lX0dh",
"BypwCg1Sb29tR2FtZVN0YXRlEhIKDk5vbmVfR2FtZVN0YXRlEAASDAoIT25s", "bWVTdGF0ZRAAEgwKCE9ubHlIb3N0EAESEQoNV2FpdFJhd1VwZGF0ZRACEg0K",
"eUhvc3QQARIRCg1XYWl0UmF3VXBkYXRlEAISDQoJV2FpdFJlYWR5EAMSCQoF", "CVdhaXRSZWFkeRADEgkKBVBhdXNlEAQSEAoMSW5PbmxpbmVHYW1lEAUqTgoR",
"UGF1c2UQBBIQCgxJbk9ubGluZUdhbWUQBSpOChFMb2dpblJlc3VsdFN0YXR1", "TG9naW5SZXN1bHRTdGF0dXMSIQodTG9naW5SZXN1bHRTdGF0dXNfQmFzZURl",
"cxIhCh1Mb2dpblJlc3VsdFN0YXR1c19CYXNlRGVmYXVsdBAAEgYKAk9LEAES", "ZmF1bHQQABIGCgJPSxABEg4KCkFjY291bnRFcnIQAkICSAFiBnByb3RvMw=="));
"DgoKQWNjb3VudEVychACQgJIAWIGcHJvdG8z"));
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.GamePadType), typeof(global::AxibugProtobuf.RomPlatformType), typeof(global::AxibugProtobuf.RoomGameState), typeof(global::AxibugProtobuf.LoginResultStatus), }, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(new[] {typeof(global::AxibugProtobuf.CommandID), typeof(global::AxibugProtobuf.ErrorCode), typeof(global::AxibugProtobuf.LoginType), typeof(global::AxibugProtobuf.DeviceType), typeof(global::AxibugProtobuf.GamePadType), typeof(global::AxibugProtobuf.RomPlatformType), typeof(global::AxibugProtobuf.RoomGameState), typeof(global::AxibugProtobuf.LoginResultStatus), }, null, new pbr::GeneratedClrTypeInfo[] {
@ -396,10 +395,6 @@ namespace AxibugProtobuf {
/// </summary> /// </summary>
[pbr::OriginalName("ERROR_ROM_DONT_HAD_SAVEDATA")] ErrorRomDontHadSavedata = 80, [pbr::OriginalName("ERROR_ROM_DONT_HAD_SAVEDATA")] ErrorRomDontHadSavedata = 80,
/// <summary> /// <summary>
///即时存档不存在
/// </summary>
[pbr::OriginalName("ERROR_ROM_FAIL_SAVEDATA")] ErrorRomFailSavedata = 81,
/// <summary>
///已经收藏 ///已经收藏
/// </summary> /// </summary>
[pbr::OriginalName("ERROR_ROM_ALREADY_HAD_STAR")] ErrorRomAlreadyHadStar = 403, [pbr::OriginalName("ERROR_ROM_ALREADY_HAD_STAR")] ErrorRomAlreadyHadStar = 403,

View File

@ -141,35 +141,34 @@ namespace AxibugProtobuf {
"bnB1dBD6LhIdChhDTURfUk9PTV9TWU5fUGxheWVySW5wdXQQ/y4SDwoKQ01E", "bnB1dBD6LhIdChhDTURfUk9PTV9TWU5fUGxheWVySW5wdXQQ/y4SDwoKQ01E",
"X1NjcmVlbhDZNhIfChpDTURfR0FNRVNBVl9HZXRHYW1lU2F2TGlzdBDBPhIb", "X1NjcmVlbhDZNhIfChpDTURfR0FNRVNBVl9HZXRHYW1lU2F2TGlzdBDBPhIb",
"ChZDTURfR0FNRVNBVl9EZWxHYW1lU2F2EMU+Eh4KGUNNRF9HQU1FU0FWX1Vw", "ChZDTURfR0FNRVNBVl9EZWxHYW1lU2F2EMU+Eh4KGUNNRF9HQU1FU0FWX1Vw",
"bG9hZEdhbWVTYXYQyj4SEgoNQ01EX0dBTUVfTUFSSxD1TiqOAgoJRXJyb3JD", "bG9hZEdhbWVTYXYQyj4SEgoNQ01EX0dBTUVfTUFSSxD1TirxAQoJRXJyb3JD",
"b2RlEhAKDEVSUk9SX0RFRkFVTBAAEgwKCEVSUk9SX09LEAESGAoURVJST1Jf", "b2RlEhAKDEVSUk9SX0RFRkFVTBAAEgwKCEVSUk9SX09LEAESGAoURVJST1Jf",
"Uk9PTV9OT1RfRk9VTkQQChInCiNFUlJPUl9ST09NX1NMT1RfQUxSRUFETFlf", "Uk9PTV9OT1RfRk9VTkQQChInCiNFUlJPUl9ST09NX1NMT1RfQUxSRUFETFlf",
"SEFEX1BMQVlFUhALEiEKHUVSUk9SX1JPT01fQ0FOVF9ET19DVVJSX1NUQVRF", "SEFEX1BMQVlFUhALEiEKHUVSUk9SX1JPT01fQ0FOVF9ET19DVVJSX1NUQVRF",
"EDISHwobRVJST1JfUk9NX0RPTlRfSEFEX1NBVkVEQVRBEFASGwoXRVJST1Jf", "EDISHwobRVJST1JfUk9NX0RPTlRfSEFEX1NBVkVEQVRBEFASHwoaRVJST1Jf",
"Uk9NX0ZBSUxfU0FWRURBVEEQURIfChpFUlJPUl9ST01fQUxSRUFEWV9IQURf", "Uk9NX0FMUkVBRFlfSEFEX1NUQVIQkwMSHAoXRVJST1JfUk9NX0RPTlRfSEFE",
"U1RBUhCTAxIcChdFUlJPUl9ST01fRE9OVF9IQURfU1RBUhCUAypACglMb2dp", "X1NUQVIQlAMqQAoJTG9naW5UeXBlEg0KCVVzZURldmljZRAAEg4KClVzZUFj",
"blR5cGUSDQoJVXNlRGV2aWNlEAASDgoKVXNlQWNjb3VudBABEhQKEFVzZUhh", "Y291bnQQARIUChBVc2VIYW9ZdWVBY2NvdW50EAIqpQEKCkRldmljZVR5cGUS",
"b1l1ZUFjY291bnQQAiqlAQoKRGV2aWNlVHlwZRIWChJEZXZpY2VUeXBlX0Rl", "FgoSRGV2aWNlVHlwZV9EZWZhdWx0EAASBgoCUEMQARILCgdBbmRyb2lkEAIS",
"ZmF1bHQQABIGCgJQQxABEgsKB0FuZHJvaWQQAhIHCgNJT1MQAxIHCgNQU1YQ", "BwoDSU9TEAMSBwoDUFNWEAQSBwoDUFMzEAUSBwoDUFM0EAYSCwoHWEJPWDM2",
"BBIHCgNQUzMQBRIHCgNQUzQQBhILCgdYQk9YMzYwEAcSCwoHWEJPWE9ORRAI", "MBAHEgsKB1hCT1hPTkUQCBIICgRXaWlVEAkSDwoLTmludGVuZG8zRFMQChIR",
"EggKBFdpaVUQCRIPCgtOaW50ZW5kbzNEUxAKEhEKDUFuZHJvaWRDYXJBcHAQ", "Cg1BbmRyb2lkQ2FyQXBwEAsqkwIKC0dhbWVQYWRUeXBlEgwKCEtleWJvYXJk",
"CyqTAgoLR2FtZVBhZFR5cGUSDAoIS2V5Ym9hcmQQABIRCg1HbG9iYWxHYW1l", "EAASEQoNR2xvYmFsR2FtZVBhZBABEg4KClRvdWNoUGFuZWwQAhIOCgpEUzND",
"UGFkEAESDgoKVG91Y2hQYW5lbBACEg4KCkRTM0NvbnRyb2wQAxIOCgpEUzRD", "b250cm9sEAMSDgoKRFM0Q29udHJvbBAEEg4KCkRTNUNvbnRyb2wQBRIUChBT",
"b250cm9sEAQSDgoKRFM1Q29udHJvbBAFEhQKEFN3aXRjaFByb0NvbnRyb2wQ", "d2l0Y2hQcm9Db250cm9sEAYSEAoMU3dpdGNoSm95Q29uEAcSEgoOWEJPWDM2",
"BhIQCgxTd2l0Y2hKb3lDb24QBxISCg5YQk9YMzYwQ29udHJvbBAIEhIKDlhC", "MENvbnRyb2wQCBISCg5YQk9YT05FQ29udHJvbBAJEhEKDVBTVml0YUNvbnRy",
"T1hPTkVDb250cm9sEAkSEQoNUFNWaXRhQ29udHJvbBAKEhIKDldpaVVQYWRD", "b2wQChISCg5XaWlVUGFkQ29udHJvbBALEhQKEFdpaVJlbW90ZUNvbnRyb2wQ",
"b250cm9sEAsSFAoQV2lpUmVtb3RlQ29udHJvbBAMEhYKEk5pbnRlbmRvM0RT", "DBIWChJOaW50ZW5kbzNEU0NvbnRyb2wQDSqDAgoPUm9tUGxhdGZvcm1UeXBl",
"Q29udHJvbBANKoMCCg9Sb21QbGF0Zm9ybVR5cGUSCwoHSW52YWxpZBAAEgcK", "EgsKB0ludmFsaWQQABIHCgNOZXMQARIRCg1NYXN0ZXJfU3lzdGVtEAISDQoJ",
"A05lcxABEhEKDU1hc3Rlcl9TeXN0ZW0QAhINCglHYW1lX0dlYXIQAxIMCghH", "R2FtZV9HZWFyEAMSDAoIR2FtZV9Cb3kQBBISCg5HYW1lX0JveV9Db2xvchAF",
"YW1lX0JveRAEEhIKDkdhbWVfQm95X0NvbG9yEAUSEQoNQ29sZWNvX1Zpc2lv", "EhEKDUNvbGVjb19WaXNpb24QBhILCgdTQ18zMDAwEAcSCwoHU0dfMTAwMBAI",
"bhAGEgsKB1NDXzMwMDAQBxILCgdTR18xMDAwEAgSCgoGTkVPR0VPEBQSBwoD", "EgoKBk5FT0dFTxAUEgcKA0lHUxAVEggKBENQUzEQFhIICgRDUFMyEBcSDgoK",
"SUdTEBUSCAoEQ1BTMRAWEggKBENQUzIQFxIOCgpBcmNhZGVfT0xEEB4SDwoL", "QXJjYWRlX09MRBAeEg8KC1dvbmRlcl9Td2FuECgSFQoRV29uZGVyX1N3YW5f",
"V29uZGVyX1N3YW4QKBIVChFXb25kZXJfU3dhbl9Db2xvchApEggKA0FsbBDn", "Q29sb3IQKRIICgNBbGwQ5wcqcAoNUm9vbUdhbWVTdGF0ZRISCg5Ob25lX0dh",
"BypwCg1Sb29tR2FtZVN0YXRlEhIKDk5vbmVfR2FtZVN0YXRlEAASDAoIT25s", "bWVTdGF0ZRAAEgwKCE9ubHlIb3N0EAESEQoNV2FpdFJhd1VwZGF0ZRACEg0K",
"eUhvc3QQARIRCg1XYWl0UmF3VXBkYXRlEAISDQoJV2FpdFJlYWR5EAMSCQoF", "CVdhaXRSZWFkeRADEgkKBVBhdXNlEAQSEAoMSW5PbmxpbmVHYW1lEAUqTgoR",
"UGF1c2UQBBIQCgxJbk9ubGluZUdhbWUQBSpOChFMb2dpblJlc3VsdFN0YXR1", "TG9naW5SZXN1bHRTdGF0dXMSIQodTG9naW5SZXN1bHRTdGF0dXNfQmFzZURl",
"cxIhCh1Mb2dpblJlc3VsdFN0YXR1c19CYXNlRGVmYXVsdBAAEgYKAk9LEAES", "ZmF1bHQQABIGCgJPSxABEg4KCkFjY291bnRFcnIQAkICSAFiBnByb3RvMw=="));
"DgoKQWNjb3VudEVychACQgJIAWIGcHJvdG8z"));
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.GamePadType), typeof(global::AxibugProtobuf.RomPlatformType), typeof(global::AxibugProtobuf.RoomGameState), typeof(global::AxibugProtobuf.LoginResultStatus), }, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(new[] {typeof(global::AxibugProtobuf.CommandID), typeof(global::AxibugProtobuf.ErrorCode), typeof(global::AxibugProtobuf.LoginType), typeof(global::AxibugProtobuf.DeviceType), typeof(global::AxibugProtobuf.GamePadType), typeof(global::AxibugProtobuf.RomPlatformType), typeof(global::AxibugProtobuf.RoomGameState), typeof(global::AxibugProtobuf.LoginResultStatus), }, null, new pbr::GeneratedClrTypeInfo[] {
@ -396,10 +395,6 @@ namespace AxibugProtobuf {
/// </summary> /// </summary>
[pbr::OriginalName("ERROR_ROM_DONT_HAD_SAVEDATA")] ErrorRomDontHadSavedata = 80, [pbr::OriginalName("ERROR_ROM_DONT_HAD_SAVEDATA")] ErrorRomDontHadSavedata = 80,
/// <summary> /// <summary>
///即时存档不存在
/// </summary>
[pbr::OriginalName("ERROR_ROM_FAIL_SAVEDATA")] ErrorRomFailSavedata = 81,
/// <summary>
///已经收藏 ///已经收藏
/// </summary> /// </summary>
[pbr::OriginalName("ERROR_ROM_ALREADY_HAD_STAR")] ErrorRomAlreadyHadStar = 403, [pbr::OriginalName("ERROR_ROM_ALREADY_HAD_STAR")] ErrorRomAlreadyHadStar = 403,

View File

@ -85,7 +85,6 @@ enum ErrorCode
ERROR_ROOM_CANT_DO_CURR_STATE =50;// ERROR_ROOM_CANT_DO_CURR_STATE =50;//
ERROR_ROM_DONT_HAD_SAVEDATA = 80;// ERROR_ROM_DONT_HAD_SAVEDATA = 80;//
ERROR_ROM_FAIL_SAVEDATA = 81;//
ERROR_ROM_ALREADY_HAD_STAR =403;// ERROR_ROM_ALREADY_HAD_STAR =403;//
ERROR_ROM_DONT_HAD_STAR =404;// ERROR_ROM_DONT_HAD_STAR =404;//