This commit is contained in:
ALIENJACK\alien 2025-06-05 15:28:16 +08:00
commit 7d2b80ab55
25 changed files with 359 additions and 179 deletions

View File

@ -2,10 +2,7 @@
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

@ -682,9 +682,9 @@ RectTransform:
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, y: 0}
m_AnchorMax: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0} m_AnchoredPosition: {x: 25, y: 25}
m_SizeDelta: {x: 50, y: 50} m_SizeDelta: {x: 50, y: 50}
m_Pivot: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &7825136160635457043 --- !u!222 &7825136160635457043
CanvasRenderer: CanvasRenderer:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -1171,9 +1171,9 @@ RectTransform:
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, y: 0}
m_AnchorMax: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0} m_AnchoredPosition: {x: 25, y: 25}
m_SizeDelta: {x: 50, y: 50} m_SizeDelta: {x: 50, y: 50}
m_Pivot: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &6387250980529666459 --- !u!222 &6387250980529666459
CanvasRenderer: CanvasRenderer:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -1377,10 +1377,10 @@ RectTransform:
m_Children: [] m_Children: []
m_Father: {fileID: 1100500336380202360} m_Father: {fileID: 1100500336380202360}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 170, y: -333} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 300, y: 26} m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5} m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &7910447946506517051 --- !u!222 &7910447946506517051
CanvasRenderer: CanvasRenderer:
@ -1477,9 +1477,9 @@ RectTransform:
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, y: 0}
m_AnchorMax: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0} m_AnchoredPosition: {x: 25, y: 25}
m_SizeDelta: {x: 50, y: 50} m_SizeDelta: {x: 50, y: 50}
m_Pivot: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &6018890508858230420 --- !u!222 &6018890508858230420
CanvasRenderer: CanvasRenderer:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -1667,10 +1667,10 @@ RectTransform:
- {fileID: 905458728127029103} - {fileID: 905458728127029103}
m_Father: {fileID: 1100500336380202360} m_Father: {fileID: 1100500336380202360}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 170, y: -160} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 300, y: 300} m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5} m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &2558056583130529771 --- !u!114 &2558056583130529771
MonoBehaviour: MonoBehaviour:
@ -3058,9 +3058,9 @@ RectTransform:
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, y: 0}
m_AnchorMax: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0} m_AnchoredPosition: {x: 25, y: 25}
m_SizeDelta: {x: 50, y: 50} m_SizeDelta: {x: 50, y: 50}
m_Pivot: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &6969397185295608833 --- !u!222 &6969397185295608833
CanvasRenderer: CanvasRenderer:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -3116,7 +3116,7 @@ GameObject:
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 0 m_IsActive: 1
--- !u!224 &1100500336380202360 --- !u!224 &1100500336380202360
RectTransform: RectTransform:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -3134,10 +3134,10 @@ RectTransform:
- {fileID: 6878964193873653430} - {fileID: 6878964193873653430}
m_Father: {fileID: 4478785627166277610} m_Father: {fileID: 4478785627166277610}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 165, y: -443} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 330, y: 356} m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5} m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &20405450890320071 --- !u!114 &20405450890320071
MonoBehaviour: MonoBehaviour:

View File

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

View File

@ -40,7 +40,8 @@ namespace AxibugEmuOnline.Client.Filters
public FloatParameter hardScan = -8.0f; public FloatParameter hardScan = -8.0f;
[Range(-3f, 1f)] [Range(-3f, 1f)]
public FloatParameter hardPix = -3.0f; public FloatParameter hardPix = -3.0f;
public Vector2Parameter warp = new Vector2(0.03125f, 0.04166f); public FloatParameter warpX = 0.03125f;
public FloatParameter warpY = 0.04166f;
[Range(1f, 16f)] [Range(1f, 16f)]
public FloatParameter resScale = 4f; public FloatParameter resScale = 4f;
[Range(0.5f, 5f)] [Range(0.5f, 5f)]
@ -131,14 +132,14 @@ namespace AxibugEmuOnline.Client.Filters
m_tvEffectMat.EnableKeyword("_CubicDistortion"); break; m_tvEffectMat.EnableKeyword("_CubicDistortion"); break;
} }
m_tvEffectMat.SetFloat("maskDark", maskDark.GetValue()); m_tvEffectMat.SetFloat("maskDark", maskDark);
m_tvEffectMat.SetFloat("maskLight", maskLight.GetValue()); m_tvEffectMat.SetFloat("maskLight", maskLight);
m_tvEffectMat.SetFloat("hardScan", hardScan.GetValue()); m_tvEffectMat.SetFloat("hardScan", hardScan);
m_tvEffectMat.SetFloat("hardPix", hardPix.GetValue()); m_tvEffectMat.SetFloat("hardPix", hardPix);
m_tvEffectMat.SetVector("warp", warp.GetValue()); m_tvEffectMat.SetVector("warp", new Vector4(warpX, warpY));
m_tvEffectMat.SetFloat("resScale", resScale.GetValue()); m_tvEffectMat.SetFloat("resScale", resScale);
m_tvEffectMat.SetFloat("scale", scale.GetValue()); m_tvEffectMat.SetFloat("scale", scale);
m_tvEffectMat.SetFloat("fade", fade.GetValue()); m_tvEffectMat.SetFloat("fade", fade);
Graphics.Blit(src, rt, m_tvEffectMat); Graphics.Blit(src, rt, m_tvEffectMat);

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.CmdGamesavGetGameSavList, ProtoBufHelper.Serizlize(req)); App.network.SendToServer((int)CommandID.CmdGamesavDelGameSav, 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.CmdGamesavGetGameSavList, ProtoBufHelper.Serizlize(req)); App.network.SendToServer((int)CommandID.CmdGamesavUploadGameSav, ProtoBufHelper.Serizlize(req));
} }
void RecvUpLoadGameSav(byte[] reqData) void RecvUpLoadGameSav(byte[] reqData)

View File

@ -72,6 +72,7 @@ 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.network.isConnected) if (App.user.IsLoggedIn)
{ {
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 == null) //云存档不存在,上传本地存档 if (!NetData.BHadSaveData) //云存档不存在,上传本地存档
{ {
FSM.ChangeState<UploadingState>(); FSM.ChangeState<UploadingState>();
} }

View File

@ -10,6 +10,11 @@ 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.DequeueNesMsg(); NetMsg.Instance.NextNetEvent();
LoopAction_tick?.Invoke(); LoopAction_tick?.Invoke();

View File

@ -1,4 +1,5 @@
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;
@ -15,11 +16,15 @@ 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
@ -62,10 +67,53 @@ namespace AxibugEmuOnline.Client.Network
} }
#endregion #endregion
#region PostEvent
public void EnqueueNesMsg(int cmd, int ERRCODE, byte[] arg) public void NextNetEvent()
{ {
lock (lockQueueObj) DequeueNesMsg();
DequeueEventFromNet();
}
#region PostEventFromNet
public void EnqueueEventFromNet(Action act)
{
lock (lockQueueEventFromNet)
{
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));
} }
@ -73,7 +121,7 @@ namespace AxibugEmuOnline.Client.Network
public void DequeueNesMsg() public void DequeueNesMsg()
{ {
lock (lockQueueObj) lock (lockQueueNetMsg)
{ {
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,7 +39,17 @@ namespace AxibugEmuOnline.Client.Network
/// </summary> /// </summary>
const int ReConnectTryTime = 1000; const int ReConnectTryTime = 1000;
public void NetworkConnected(bool IsConnect) 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)
@ -63,7 +73,7 @@ namespace AxibugEmuOnline.Client.Network
} }
} }
public void NetworkDeBugLog(string str) void NetworkDeBugLog(string str)
{ {
//用于Unity内的输出 //用于Unity内的输出
//Debug.Log("NetCoreDebug >> "+str); //Debug.Log("NetCoreDebug >> "+str);
@ -76,7 +86,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>
public void GetDataCallBack(int CMDID, int ERRCODE, byte[] data) void GetDataCallBack(int CMDID, int ERRCODE, byte[] data)
{ {
//NetworkDeBugLog("收到消息 CMDID =>" + CMDID + " ERRCODE =>" + ERRCODE + " 数据长度=>" + data.Length); //NetworkDeBugLog("收到消息 CMDID =>" + CMDID + " ERRCODE =>" + ERRCODE + " 数据长度=>" + data.Length);
try try
@ -86,7 +96,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.EnqueueNesMsg(CMDID, ERRCODE, data); NetMsg.Instance.EnqueueNetMsg(CMDID, ERRCODE, data);
} }
catch (Exception ex) catch (Exception ex)
{ {
@ -97,7 +107,7 @@ namespace AxibugEmuOnline.Client.Network
/// <summary> /// <summary>
/// 关闭连接 /// 关闭连接
/// </summary> /// </summary>
public void OnConnectClose() void OnConnectClose_Delegate()
{ {
NetworkDeBugLog("OnConnectClose"); NetworkDeBugLog("OnConnectClose");
Eventer.Instance.PostEvent(EEvent.OnLossLoginState); Eventer.Instance.PostEvent(EEvent.OnLossLoginState);

View File

@ -141,34 +141,35 @@ namespace AxibugProtobuf {
"bnB1dBD6LhIdChhDTURfUk9PTV9TWU5fUGxheWVySW5wdXQQ/y4SDwoKQ01E", "bnB1dBD6LhIdChhDTURfUk9PTV9TWU5fUGxheWVySW5wdXQQ/y4SDwoKQ01E",
"X1NjcmVlbhDZNhIfChpDTURfR0FNRVNBVl9HZXRHYW1lU2F2TGlzdBDBPhIb", "X1NjcmVlbhDZNhIfChpDTURfR0FNRVNBVl9HZXRHYW1lU2F2TGlzdBDBPhIb",
"ChZDTURfR0FNRVNBVl9EZWxHYW1lU2F2EMU+Eh4KGUNNRF9HQU1FU0FWX1Vw", "ChZDTURfR0FNRVNBVl9EZWxHYW1lU2F2EMU+Eh4KGUNNRF9HQU1FU0FWX1Vw",
"bG9hZEdhbWVTYXYQyj4SEgoNQ01EX0dBTUVfTUFSSxD1TirxAQoJRXJyb3JD", "bG9hZEdhbWVTYXYQyj4SEgoNQ01EX0dBTUVfTUFSSxD1TiqOAgoJRXJyb3JD",
"b2RlEhAKDEVSUk9SX0RFRkFVTBAAEgwKCEVSUk9SX09LEAESGAoURVJST1Jf", "b2RlEhAKDEVSUk9SX0RFRkFVTBAAEgwKCEVSUk9SX09LEAESGAoURVJST1Jf",
"Uk9PTV9OT1RfRk9VTkQQChInCiNFUlJPUl9ST09NX1NMT1RfQUxSRUFETFlf", "Uk9PTV9OT1RfRk9VTkQQChInCiNFUlJPUl9ST09NX1NMT1RfQUxSRUFETFlf",
"SEFEX1BMQVlFUhALEiEKHUVSUk9SX1JPT01fQ0FOVF9ET19DVVJSX1NUQVRF", "SEFEX1BMQVlFUhALEiEKHUVSUk9SX1JPT01fQ0FOVF9ET19DVVJSX1NUQVRF",
"EDISHwobRVJST1JfUk9NX0RPTlRfSEFEX1NBVkVEQVRBEFASHwoaRVJST1Jf", "EDISHwobRVJST1JfUk9NX0RPTlRfSEFEX1NBVkVEQVRBEFASGwoXRVJST1Jf",
"Uk9NX0FMUkVBRFlfSEFEX1NUQVIQkwMSHAoXRVJST1JfUk9NX0RPTlRfSEFE", "Uk9NX0ZBSUxfU0FWRURBVEEQURIfChpFUlJPUl9ST01fQUxSRUFEWV9IQURf",
"X1NUQVIQlAMqQAoJTG9naW5UeXBlEg0KCVVzZURldmljZRAAEg4KClVzZUFj", "U1RBUhCTAxIcChdFUlJPUl9ST01fRE9OVF9IQURfU1RBUhCUAypACglMb2dp",
"Y291bnQQARIUChBVc2VIYW9ZdWVBY2NvdW50EAIqpQEKCkRldmljZVR5cGUS", "blR5cGUSDQoJVXNlRGV2aWNlEAASDgoKVXNlQWNjb3VudBABEhQKEFVzZUhh",
"FgoSRGV2aWNlVHlwZV9EZWZhdWx0EAASBgoCUEMQARILCgdBbmRyb2lkEAIS", "b1l1ZUFjY291bnQQAiqlAQoKRGV2aWNlVHlwZRIWChJEZXZpY2VUeXBlX0Rl",
"BwoDSU9TEAMSBwoDUFNWEAQSBwoDUFMzEAUSBwoDUFM0EAYSCwoHWEJPWDM2", "ZmF1bHQQABIGCgJQQxABEgsKB0FuZHJvaWQQAhIHCgNJT1MQAxIHCgNQU1YQ",
"MBAHEgsKB1hCT1hPTkUQCBIICgRXaWlVEAkSDwoLTmludGVuZG8zRFMQChIR", "BBIHCgNQUzMQBRIHCgNQUzQQBhILCgdYQk9YMzYwEAcSCwoHWEJPWE9ORRAI",
"Cg1BbmRyb2lkQ2FyQXBwEAsqkwIKC0dhbWVQYWRUeXBlEgwKCEtleWJvYXJk", "EggKBFdpaVUQCRIPCgtOaW50ZW5kbzNEUxAKEhEKDUFuZHJvaWRDYXJBcHAQ",
"EAASEQoNR2xvYmFsR2FtZVBhZBABEg4KClRvdWNoUGFuZWwQAhIOCgpEUzND", "CyqTAgoLR2FtZVBhZFR5cGUSDAoIS2V5Ym9hcmQQABIRCg1HbG9iYWxHYW1l",
"b250cm9sEAMSDgoKRFM0Q29udHJvbBAEEg4KCkRTNUNvbnRyb2wQBRIUChBT", "UGFkEAESDgoKVG91Y2hQYW5lbBACEg4KCkRTM0NvbnRyb2wQAxIOCgpEUzRD",
"d2l0Y2hQcm9Db250cm9sEAYSEAoMU3dpdGNoSm95Q29uEAcSEgoOWEJPWDM2", "b250cm9sEAQSDgoKRFM1Q29udHJvbBAFEhQKEFN3aXRjaFByb0NvbnRyb2wQ",
"MENvbnRyb2wQCBISCg5YQk9YT05FQ29udHJvbBAJEhEKDVBTVml0YUNvbnRy", "BhIQCgxTd2l0Y2hKb3lDb24QBxISCg5YQk9YMzYwQ29udHJvbBAIEhIKDlhC",
"b2wQChISCg5XaWlVUGFkQ29udHJvbBALEhQKEFdpaVJlbW90ZUNvbnRyb2wQ", "T1hPTkVDb250cm9sEAkSEQoNUFNWaXRhQ29udHJvbBAKEhIKDldpaVVQYWRD",
"DBIWChJOaW50ZW5kbzNEU0NvbnRyb2wQDSqDAgoPUm9tUGxhdGZvcm1UeXBl", "b250cm9sEAsSFAoQV2lpUmVtb3RlQ29udHJvbBAMEhYKEk5pbnRlbmRvM0RT",
"EgsKB0ludmFsaWQQABIHCgNOZXMQARIRCg1NYXN0ZXJfU3lzdGVtEAISDQoJ", "Q29udHJvbBANKoMCCg9Sb21QbGF0Zm9ybVR5cGUSCwoHSW52YWxpZBAAEgcK",
"R2FtZV9HZWFyEAMSDAoIR2FtZV9Cb3kQBBISCg5HYW1lX0JveV9Db2xvchAF", "A05lcxABEhEKDU1hc3Rlcl9TeXN0ZW0QAhINCglHYW1lX0dlYXIQAxIMCghH",
"EhEKDUNvbGVjb19WaXNpb24QBhILCgdTQ18zMDAwEAcSCwoHU0dfMTAwMBAI", "YW1lX0JveRAEEhIKDkdhbWVfQm95X0NvbG9yEAUSEQoNQ29sZWNvX1Zpc2lv",
"EgoKBk5FT0dFTxAUEgcKA0lHUxAVEggKBENQUzEQFhIICgRDUFMyEBcSDgoK", "bhAGEgsKB1NDXzMwMDAQBxILCgdTR18xMDAwEAgSCgoGTkVPR0VPEBQSBwoD",
"QXJjYWRlX09MRBAeEg8KC1dvbmRlcl9Td2FuECgSFQoRV29uZGVyX1N3YW5f", "SUdTEBUSCAoEQ1BTMRAWEggKBENQUzIQFxIOCgpBcmNhZGVfT0xEEB4SDwoL",
"Q29sb3IQKRIICgNBbGwQ5wcqcAoNUm9vbUdhbWVTdGF0ZRISCg5Ob25lX0dh", "V29uZGVyX1N3YW4QKBIVChFXb25kZXJfU3dhbl9Db2xvchApEggKA0FsbBDn",
"bWVTdGF0ZRAAEgwKCE9ubHlIb3N0EAESEQoNV2FpdFJhd1VwZGF0ZRACEg0K", "BypwCg1Sb29tR2FtZVN0YXRlEhIKDk5vbmVfR2FtZVN0YXRlEAASDAoIT25s",
"CVdhaXRSZWFkeRADEgkKBVBhdXNlEAQSEAoMSW5PbmxpbmVHYW1lEAUqTgoR", "eUhvc3QQARIRCg1XYWl0UmF3VXBkYXRlEAISDQoJV2FpdFJlYWR5EAMSCQoF",
"TG9naW5SZXN1bHRTdGF0dXMSIQodTG9naW5SZXN1bHRTdGF0dXNfQmFzZURl", "UGF1c2UQBBIQCgxJbk9ubGluZUdhbWUQBSpOChFMb2dpblJlc3VsdFN0YXR1",
"ZmF1bHQQABIGCgJPSxABEg4KCkFjY291bnRFcnIQAkICSAFiBnByb3RvMw==")); "cxIhCh1Mb2dpblJlc3VsdFN0YXR1c19CYXNlRGVmYXVsdBAAEgYKAk9LEAES",
"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[] {
@ -395,6 +396,10 @@ 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

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

View File

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

View File

@ -1,5 +1,7 @@
using AxibugEmuOnline.Client.ClientCore; using AxibugEmuOnline.Client.ClientCore;
using DG.Tweening; using DG.Tweening;
using DG.Tweening.Core;
using DG.Tweening.Plugins.Options;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using UnityEngine; using UnityEngine;
@ -84,8 +86,34 @@ namespace AxibugEmuOnline.Client
private void UpdateMenuState() private void UpdateMenuState()
{ {
if (!m_bPoped) return;
if (checkDirty()) if (checkDirty())
{ {
Canvas.ForceUpdateCanvases();
if (m_popTween != null)
{
Vector2 end = new Vector2(-MenuRoot.rect.width, MenuRoot.anchoredPosition.y);
m_popTween.ChangeEndValue(end, false);
}
else
{
Vector2 end = new Vector2(-MenuRoot.rect.width, MenuRoot.anchoredPosition.y);
var topParent = m_parent;
while (topParent != null && topParent.m_parent != null)
{
topParent = topParent.m_parent;
}
if (topParent != null)
{
topParent.MenuRoot.anchoredPosition = end;
}
else
{
MenuRoot.anchoredPosition = end;
}
}
RebuildSelectIndex(); RebuildSelectIndex();
} }
} }
@ -148,6 +176,8 @@ namespace AxibugEmuOnline.Client
return dirty; return dirty;
} }
private TweenerCore<Vector2, Vector2, VectorOptions> m_popTween;
private TweenerCore<Vector2, Vector2, VectorOptions> m_hideTween;
CommandListener.ScheduleType? m_lastCS; CommandListener.ScheduleType? m_lastCS;
private Action m_onClose; private Action m_onClose;
@ -167,8 +197,14 @@ namespace AxibugEmuOnline.Client
SelectBorder.Target = optionUI_MenuItem.transform as RectTransform; SelectBorder.Target = optionUI_MenuItem.transform as RectTransform;
} }
public void Pop<T>(List<T> menus, int defaultIndex = 0, Action onClose = null) where T : InternalOptionMenu public void Pop<T>(List<T> menus, int defaultIndex = 0, Action onClose = null) where T : InternalOptionMenu
{ {
if (m_hideTween != null)
{
m_hideTween.Kill(true);
}
m_onClose = onClose; m_onClose = onClose;
ReleaseRuntimeMenus(); ReleaseRuntimeMenus();
foreach (var menu in menus) CreateRuntimeMenuItem(menu); foreach (var menu in menus) CreateRuntimeMenuItem(menu);
@ -187,10 +223,11 @@ namespace AxibugEmuOnline.Client
if (!m_bPoped) if (!m_bPoped)
{ {
m_bPoped = true; m_bPoped = true;
Vector2 start = new Vector2(0, MenuRoot.anchoredPosition.y); Vector2 start = new Vector2(0, MenuRoot.anchoredPosition.y);
Vector2 end = new Vector2(-MenuRoot.rect.width, MenuRoot.anchoredPosition.y); Vector2 end = new Vector2(-MenuRoot.rect.width, MenuRoot.anchoredPosition.y);
DOTween.To( m_popTween = DOTween.To(
() => start, () => start,
(value) => (value) =>
{ {
@ -214,6 +251,7 @@ namespace AxibugEmuOnline.Client
end, end,
0.3f 0.3f
).SetEase(Ease.OutCubic); ).SetEase(Ease.OutCubic);
m_popTween.onComplete = () => m_popTween = null;
m_lastCS = CommandDispatcher.Instance.Mode; m_lastCS = CommandDispatcher.Instance.Mode;
CommandDispatcher.Instance.Mode = CommandListener.ScheduleType.Normal; CommandDispatcher.Instance.Mode = CommandListener.ScheduleType.Normal;
@ -236,15 +274,17 @@ namespace AxibugEmuOnline.Client
Vector2 start = new Vector2(-MenuRoot.rect.width, MenuRoot.anchoredPosition.y); Vector2 start = new Vector2(-MenuRoot.rect.width, MenuRoot.anchoredPosition.y);
Vector2 end = new Vector2(0, MenuRoot.anchoredPosition.y); Vector2 end = new Vector2(0, MenuRoot.anchoredPosition.y);
ReleaseRuntimeMenus();
m_runtimeMenuItems.Clear();
SelectBorder.gameObject.SetActiveEx(false); SelectBorder.gameObject.SetActiveEx(false);
CommandDispatcher.Instance.UnRegistController(this); CommandDispatcher.Instance.UnRegistController(this);
Canvas.ForceUpdateCanvases(); Canvas.ForceUpdateCanvases();
DOTween.To( if (m_popTween != null)
{
m_popTween.Kill(true);
}
m_hideTween = DOTween.To(
() => start, () => start,
(value) => (value) =>
{ {
@ -268,6 +308,12 @@ namespace AxibugEmuOnline.Client
end, end,
0.3f 0.3f
).SetEase(Ease.OutCubic); ).SetEase(Ease.OutCubic);
m_hideTween.onComplete = () =>
{
ReleaseRuntimeMenus();
m_runtimeMenuItems.Clear();
m_hideTween = null;
};
m_bPoped = false; m_bPoped = false;

View File

@ -15,7 +15,6 @@ namespace AxibugEmuOnline.Client
private RectTransform m_rect => transform as RectTransform; private RectTransform m_rect => transform as RectTransform;
private RectTransform m_target; private RectTransform m_target;
private TweenerCore<Vector3, Vector3, VectorOptions> m_trackTween;
public RectTransform Target public RectTransform Target
{ {
@ -37,7 +36,6 @@ namespace AxibugEmuOnline.Client
var itemUIRect = m_target.transform as RectTransform; var itemUIRect = m_target.transform as RectTransform;
m_rect.pivot = itemUIRect.pivot; m_rect.pivot = itemUIRect.pivot;
m_rect.sizeDelta = itemUIRect.rect.size;
m_rect.SetAsLastSibling(); m_rect.SetAsLastSibling();
animator.SetTrigger("reactive"); animator.SetTrigger("reactive");
@ -47,12 +45,30 @@ namespace AxibugEmuOnline.Client
m_trackTween.Kill(); m_trackTween.Kill();
m_trackTween = null; m_trackTween = null;
} }
m_trackTween = DOTween.To(() => m_rect.position, (_value) => m_rect.position = _value, itemUIRect.position, 0.125f);
m_trackTween.onComplete = () => m_trackTween = null; var startSize = m_rect.sizeDelta;
var startPos = m_rect.position;
m_trackTween = DOTween.To(
() => 0f,
(_value) =>
{
var progress = _value;
m_rect.position = Vector3.Lerp(startPos, itemUIRect.position, progress);
m_rect.sizeDelta = Vector2.Lerp(startSize, itemUIRect.rect.size, progress);
},
1f,
0.125f);
m_trackTween.onComplete = () =>
{
m_trackTween = null;
};
} }
} }
private bool m_active; private bool m_active;
private TweenerCore<float, float, FloatOptions> m_trackTween;
public bool Active public bool Active
{ {
get => m_active; get => m_active;
@ -73,11 +89,16 @@ namespace AxibugEmuOnline.Client
} }
} }
private void LateUpdate() struct TrackTarget
{ {
if (m_trackTween != null && m_trackTween.endValue != Target.position) Vector3 pos;
Vector2 size;
}
struct TrackTargetOption : IPlugOptions
{
public void Reset()
{ {
m_trackTween.ChangeEndValue(Target.position, true);
} }
} }
} }

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,4 +1,5 @@
using System.Security.Cryptography; using System.IO.Compression;
using System.Security.Cryptography;
using System.Text; using System.Text;
namespace AxibugEmuOnline.Server.Common namespace AxibugEmuOnline.Server.Common
@ -20,6 +21,28 @@ 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,11 +25,10 @@ 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;
Protobuf_Mine_GameSavInfo nulldata = null; respData.SavDataList.Add(new Protobuf_Mine_GameSavInfo() { BHadSaveData = false, SavDataIdx = 0 });
respData.SavDataList.Add(nulldata); 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);
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;
@ -44,28 +43,24 @@ namespace AxibugEmuOnline.Server.Manager
{ {
while (reader.Read()) while (reader.Read())
{ {
Protobuf_Mine_GameSavInfo resp = new Protobuf_Mine_GameSavInfo() int savidx = reader.GetInt32(3);
{ respData.SavDataList[savidx].BHadSaveData = true;
BHadSaveData = true, respData.SavDataList[savidx].SavID = reader.GetInt64(0);
SavID = reader.GetInt64(0), respData.SavDataList[savidx].Uid = reader.GetInt64(1);
Uid = reader.GetInt64(1), respData.SavDataList[savidx].RomID = reader.GetInt32(2);
RomID = reader.GetInt32(2), respData.SavDataList[savidx].SavDataIdx = savidx;
SavDataIdx = reader.GetInt32(3), respData.SavDataList[savidx].SavName = reader.GetString(4);
SavName = reader.GetString(4), respData.SavDataList[savidx].Note = reader.GetString(5);
Note = reader.GetString(5), respData.SavDataList[savidx].SavUrl = reader.GetString(6);
SavUrl = reader.GetString(6), respData.SavDataList[savidx].SavImgUrl = reader.GetString(7);
SavImgUrl = reader.GetString(7), respData.SavDataList[savidx].SavDate = reader.GetDateTime(8).ToString();
SavDate = reader.GetDateTime(8).ToString(), respData.SavDataList[savidx].Sequence = reader.GetInt32(9);
Sequence = reader.GetInt32(9), respData.SavDataList[savidx].GamePlatformType = AppSrv.g_GameShareMgr.GetRomPlatformType(msg.RomID);
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));
} }
@ -170,12 +165,15 @@ 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}.axisav", out string rompath); GetNewRomPath(_c.UID, ptype, msg.RomID, msg.SavDataIdx, $"{msg.SavDataIdx}.sav", out string rompath);
GetNewRomPath(_c.UID, ptype, msg.RomID, msg.SavDataIdx, $"{msg.SavDataIdx}.axiimg", out string imgpath); GetNewRomPath(_c.UID, ptype, msg.RomID, msg.SavDataIdx, $"{msg.SavDataIdx}.jpg", out string imgpath);
if (!CreateFile(Path.Combine(Config.cfg.savDataPath, rompath), StateRawData) ImgData = Helper.DecompressByteArray(ImgData);
||
!CreateFile(Path.Combine(Config.cfg.savDataPath, imgpath), StateRawData) if (
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');
@ -205,6 +203,10 @@ namespace AxibugEmuOnline.Server.Manager
} }
} }
} }
else
{
errCode = ErrorCode.ErrorRomFailSavedata;
}
} }
@ -256,6 +258,7 @@ 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-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> <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>
<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-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> <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>
<LastFailureDetails /> <LastFailureDetails />
</PropertyGroup> </PropertyGroup>
</Project> </Project>

View File

@ -141,34 +141,35 @@ namespace AxibugProtobuf {
"bnB1dBD6LhIdChhDTURfUk9PTV9TWU5fUGxheWVySW5wdXQQ/y4SDwoKQ01E", "bnB1dBD6LhIdChhDTURfUk9PTV9TWU5fUGxheWVySW5wdXQQ/y4SDwoKQ01E",
"X1NjcmVlbhDZNhIfChpDTURfR0FNRVNBVl9HZXRHYW1lU2F2TGlzdBDBPhIb", "X1NjcmVlbhDZNhIfChpDTURfR0FNRVNBVl9HZXRHYW1lU2F2TGlzdBDBPhIb",
"ChZDTURfR0FNRVNBVl9EZWxHYW1lU2F2EMU+Eh4KGUNNRF9HQU1FU0FWX1Vw", "ChZDTURfR0FNRVNBVl9EZWxHYW1lU2F2EMU+Eh4KGUNNRF9HQU1FU0FWX1Vw",
"bG9hZEdhbWVTYXYQyj4SEgoNQ01EX0dBTUVfTUFSSxD1TirxAQoJRXJyb3JD", "bG9hZEdhbWVTYXYQyj4SEgoNQ01EX0dBTUVfTUFSSxD1TiqOAgoJRXJyb3JD",
"b2RlEhAKDEVSUk9SX0RFRkFVTBAAEgwKCEVSUk9SX09LEAESGAoURVJST1Jf", "b2RlEhAKDEVSUk9SX0RFRkFVTBAAEgwKCEVSUk9SX09LEAESGAoURVJST1Jf",
"Uk9PTV9OT1RfRk9VTkQQChInCiNFUlJPUl9ST09NX1NMT1RfQUxSRUFETFlf", "Uk9PTV9OT1RfRk9VTkQQChInCiNFUlJPUl9ST09NX1NMT1RfQUxSRUFETFlf",
"SEFEX1BMQVlFUhALEiEKHUVSUk9SX1JPT01fQ0FOVF9ET19DVVJSX1NUQVRF", "SEFEX1BMQVlFUhALEiEKHUVSUk9SX1JPT01fQ0FOVF9ET19DVVJSX1NUQVRF",
"EDISHwobRVJST1JfUk9NX0RPTlRfSEFEX1NBVkVEQVRBEFASHwoaRVJST1Jf", "EDISHwobRVJST1JfUk9NX0RPTlRfSEFEX1NBVkVEQVRBEFASGwoXRVJST1Jf",
"Uk9NX0FMUkVBRFlfSEFEX1NUQVIQkwMSHAoXRVJST1JfUk9NX0RPTlRfSEFE", "Uk9NX0ZBSUxfU0FWRURBVEEQURIfChpFUlJPUl9ST01fQUxSRUFEWV9IQURf",
"X1NUQVIQlAMqQAoJTG9naW5UeXBlEg0KCVVzZURldmljZRAAEg4KClVzZUFj", "U1RBUhCTAxIcChdFUlJPUl9ST01fRE9OVF9IQURfU1RBUhCUAypACglMb2dp",
"Y291bnQQARIUChBVc2VIYW9ZdWVBY2NvdW50EAIqpQEKCkRldmljZVR5cGUS", "blR5cGUSDQoJVXNlRGV2aWNlEAASDgoKVXNlQWNjb3VudBABEhQKEFVzZUhh",
"FgoSRGV2aWNlVHlwZV9EZWZhdWx0EAASBgoCUEMQARILCgdBbmRyb2lkEAIS", "b1l1ZUFjY291bnQQAiqlAQoKRGV2aWNlVHlwZRIWChJEZXZpY2VUeXBlX0Rl",
"BwoDSU9TEAMSBwoDUFNWEAQSBwoDUFMzEAUSBwoDUFM0EAYSCwoHWEJPWDM2", "ZmF1bHQQABIGCgJQQxABEgsKB0FuZHJvaWQQAhIHCgNJT1MQAxIHCgNQU1YQ",
"MBAHEgsKB1hCT1hPTkUQCBIICgRXaWlVEAkSDwoLTmludGVuZG8zRFMQChIR", "BBIHCgNQUzMQBRIHCgNQUzQQBhILCgdYQk9YMzYwEAcSCwoHWEJPWE9ORRAI",
"Cg1BbmRyb2lkQ2FyQXBwEAsqkwIKC0dhbWVQYWRUeXBlEgwKCEtleWJvYXJk", "EggKBFdpaVUQCRIPCgtOaW50ZW5kbzNEUxAKEhEKDUFuZHJvaWRDYXJBcHAQ",
"EAASEQoNR2xvYmFsR2FtZVBhZBABEg4KClRvdWNoUGFuZWwQAhIOCgpEUzND", "CyqTAgoLR2FtZVBhZFR5cGUSDAoIS2V5Ym9hcmQQABIRCg1HbG9iYWxHYW1l",
"b250cm9sEAMSDgoKRFM0Q29udHJvbBAEEg4KCkRTNUNvbnRyb2wQBRIUChBT", "UGFkEAESDgoKVG91Y2hQYW5lbBACEg4KCkRTM0NvbnRyb2wQAxIOCgpEUzRD",
"d2l0Y2hQcm9Db250cm9sEAYSEAoMU3dpdGNoSm95Q29uEAcSEgoOWEJPWDM2", "b250cm9sEAQSDgoKRFM1Q29udHJvbBAFEhQKEFN3aXRjaFByb0NvbnRyb2wQ",
"MENvbnRyb2wQCBISCg5YQk9YT05FQ29udHJvbBAJEhEKDVBTVml0YUNvbnRy", "BhIQCgxTd2l0Y2hKb3lDb24QBxISCg5YQk9YMzYwQ29udHJvbBAIEhIKDlhC",
"b2wQChISCg5XaWlVUGFkQ29udHJvbBALEhQKEFdpaVJlbW90ZUNvbnRyb2wQ", "T1hPTkVDb250cm9sEAkSEQoNUFNWaXRhQ29udHJvbBAKEhIKDldpaVVQYWRD",
"DBIWChJOaW50ZW5kbzNEU0NvbnRyb2wQDSqDAgoPUm9tUGxhdGZvcm1UeXBl", "b250cm9sEAsSFAoQV2lpUmVtb3RlQ29udHJvbBAMEhYKEk5pbnRlbmRvM0RT",
"EgsKB0ludmFsaWQQABIHCgNOZXMQARIRCg1NYXN0ZXJfU3lzdGVtEAISDQoJ", "Q29udHJvbBANKoMCCg9Sb21QbGF0Zm9ybVR5cGUSCwoHSW52YWxpZBAAEgcK",
"R2FtZV9HZWFyEAMSDAoIR2FtZV9Cb3kQBBISCg5HYW1lX0JveV9Db2xvchAF", "A05lcxABEhEKDU1hc3Rlcl9TeXN0ZW0QAhINCglHYW1lX0dlYXIQAxIMCghH",
"EhEKDUNvbGVjb19WaXNpb24QBhILCgdTQ18zMDAwEAcSCwoHU0dfMTAwMBAI", "YW1lX0JveRAEEhIKDkdhbWVfQm95X0NvbG9yEAUSEQoNQ29sZWNvX1Zpc2lv",
"EgoKBk5FT0dFTxAUEgcKA0lHUxAVEggKBENQUzEQFhIICgRDUFMyEBcSDgoK", "bhAGEgsKB1NDXzMwMDAQBxILCgdTR18xMDAwEAgSCgoGTkVPR0VPEBQSBwoD",
"QXJjYWRlX09MRBAeEg8KC1dvbmRlcl9Td2FuECgSFQoRV29uZGVyX1N3YW5f", "SUdTEBUSCAoEQ1BTMRAWEggKBENQUzIQFxIOCgpBcmNhZGVfT0xEEB4SDwoL",
"Q29sb3IQKRIICgNBbGwQ5wcqcAoNUm9vbUdhbWVTdGF0ZRISCg5Ob25lX0dh", "V29uZGVyX1N3YW4QKBIVChFXb25kZXJfU3dhbl9Db2xvchApEggKA0FsbBDn",
"bWVTdGF0ZRAAEgwKCE9ubHlIb3N0EAESEQoNV2FpdFJhd1VwZGF0ZRACEg0K", "BypwCg1Sb29tR2FtZVN0YXRlEhIKDk5vbmVfR2FtZVN0YXRlEAASDAoIT25s",
"CVdhaXRSZWFkeRADEgkKBVBhdXNlEAQSEAoMSW5PbmxpbmVHYW1lEAUqTgoR", "eUhvc3QQARIRCg1XYWl0UmF3VXBkYXRlEAISDQoJV2FpdFJlYWR5EAMSCQoF",
"TG9naW5SZXN1bHRTdGF0dXMSIQodTG9naW5SZXN1bHRTdGF0dXNfQmFzZURl", "UGF1c2UQBBIQCgxJbk9ubGluZUdhbWUQBSpOChFMb2dpblJlc3VsdFN0YXR1",
"ZmF1bHQQABIGCgJPSxABEg4KCkFjY291bnRFcnIQAkICSAFiBnByb3RvMw==")); "cxIhCh1Mb2dpblJlc3VsdFN0YXR1c19CYXNlRGVmYXVsdBAAEgYKAk9LEAES",
"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[] {
@ -395,6 +396,10 @@ 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,34 +141,35 @@ namespace AxibugProtobuf {
"bnB1dBD6LhIdChhDTURfUk9PTV9TWU5fUGxheWVySW5wdXQQ/y4SDwoKQ01E", "bnB1dBD6LhIdChhDTURfUk9PTV9TWU5fUGxheWVySW5wdXQQ/y4SDwoKQ01E",
"X1NjcmVlbhDZNhIfChpDTURfR0FNRVNBVl9HZXRHYW1lU2F2TGlzdBDBPhIb", "X1NjcmVlbhDZNhIfChpDTURfR0FNRVNBVl9HZXRHYW1lU2F2TGlzdBDBPhIb",
"ChZDTURfR0FNRVNBVl9EZWxHYW1lU2F2EMU+Eh4KGUNNRF9HQU1FU0FWX1Vw", "ChZDTURfR0FNRVNBVl9EZWxHYW1lU2F2EMU+Eh4KGUNNRF9HQU1FU0FWX1Vw",
"bG9hZEdhbWVTYXYQyj4SEgoNQ01EX0dBTUVfTUFSSxD1TirxAQoJRXJyb3JD", "bG9hZEdhbWVTYXYQyj4SEgoNQ01EX0dBTUVfTUFSSxD1TiqOAgoJRXJyb3JD",
"b2RlEhAKDEVSUk9SX0RFRkFVTBAAEgwKCEVSUk9SX09LEAESGAoURVJST1Jf", "b2RlEhAKDEVSUk9SX0RFRkFVTBAAEgwKCEVSUk9SX09LEAESGAoURVJST1Jf",
"Uk9PTV9OT1RfRk9VTkQQChInCiNFUlJPUl9ST09NX1NMT1RfQUxSRUFETFlf", "Uk9PTV9OT1RfRk9VTkQQChInCiNFUlJPUl9ST09NX1NMT1RfQUxSRUFETFlf",
"SEFEX1BMQVlFUhALEiEKHUVSUk9SX1JPT01fQ0FOVF9ET19DVVJSX1NUQVRF", "SEFEX1BMQVlFUhALEiEKHUVSUk9SX1JPT01fQ0FOVF9ET19DVVJSX1NUQVRF",
"EDISHwobRVJST1JfUk9NX0RPTlRfSEFEX1NBVkVEQVRBEFASHwoaRVJST1Jf", "EDISHwobRVJST1JfUk9NX0RPTlRfSEFEX1NBVkVEQVRBEFASGwoXRVJST1Jf",
"Uk9NX0FMUkVBRFlfSEFEX1NUQVIQkwMSHAoXRVJST1JfUk9NX0RPTlRfSEFE", "Uk9NX0ZBSUxfU0FWRURBVEEQURIfChpFUlJPUl9ST01fQUxSRUFEWV9IQURf",
"X1NUQVIQlAMqQAoJTG9naW5UeXBlEg0KCVVzZURldmljZRAAEg4KClVzZUFj", "U1RBUhCTAxIcChdFUlJPUl9ST01fRE9OVF9IQURfU1RBUhCUAypACglMb2dp",
"Y291bnQQARIUChBVc2VIYW9ZdWVBY2NvdW50EAIqpQEKCkRldmljZVR5cGUS", "blR5cGUSDQoJVXNlRGV2aWNlEAASDgoKVXNlQWNjb3VudBABEhQKEFVzZUhh",
"FgoSRGV2aWNlVHlwZV9EZWZhdWx0EAASBgoCUEMQARILCgdBbmRyb2lkEAIS", "b1l1ZUFjY291bnQQAiqlAQoKRGV2aWNlVHlwZRIWChJEZXZpY2VUeXBlX0Rl",
"BwoDSU9TEAMSBwoDUFNWEAQSBwoDUFMzEAUSBwoDUFM0EAYSCwoHWEJPWDM2", "ZmF1bHQQABIGCgJQQxABEgsKB0FuZHJvaWQQAhIHCgNJT1MQAxIHCgNQU1YQ",
"MBAHEgsKB1hCT1hPTkUQCBIICgRXaWlVEAkSDwoLTmludGVuZG8zRFMQChIR", "BBIHCgNQUzMQBRIHCgNQUzQQBhILCgdYQk9YMzYwEAcSCwoHWEJPWE9ORRAI",
"Cg1BbmRyb2lkQ2FyQXBwEAsqkwIKC0dhbWVQYWRUeXBlEgwKCEtleWJvYXJk", "EggKBFdpaVUQCRIPCgtOaW50ZW5kbzNEUxAKEhEKDUFuZHJvaWRDYXJBcHAQ",
"EAASEQoNR2xvYmFsR2FtZVBhZBABEg4KClRvdWNoUGFuZWwQAhIOCgpEUzND", "CyqTAgoLR2FtZVBhZFR5cGUSDAoIS2V5Ym9hcmQQABIRCg1HbG9iYWxHYW1l",
"b250cm9sEAMSDgoKRFM0Q29udHJvbBAEEg4KCkRTNUNvbnRyb2wQBRIUChBT", "UGFkEAESDgoKVG91Y2hQYW5lbBACEg4KCkRTM0NvbnRyb2wQAxIOCgpEUzRD",
"d2l0Y2hQcm9Db250cm9sEAYSEAoMU3dpdGNoSm95Q29uEAcSEgoOWEJPWDM2", "b250cm9sEAQSDgoKRFM1Q29udHJvbBAFEhQKEFN3aXRjaFByb0NvbnRyb2wQ",
"MENvbnRyb2wQCBISCg5YQk9YT05FQ29udHJvbBAJEhEKDVBTVml0YUNvbnRy", "BhIQCgxTd2l0Y2hKb3lDb24QBxISCg5YQk9YMzYwQ29udHJvbBAIEhIKDlhC",
"b2wQChISCg5XaWlVUGFkQ29udHJvbBALEhQKEFdpaVJlbW90ZUNvbnRyb2wQ", "T1hPTkVDb250cm9sEAkSEQoNUFNWaXRhQ29udHJvbBAKEhIKDldpaVVQYWRD",
"DBIWChJOaW50ZW5kbzNEU0NvbnRyb2wQDSqDAgoPUm9tUGxhdGZvcm1UeXBl", "b250cm9sEAsSFAoQV2lpUmVtb3RlQ29udHJvbBAMEhYKEk5pbnRlbmRvM0RT",
"EgsKB0ludmFsaWQQABIHCgNOZXMQARIRCg1NYXN0ZXJfU3lzdGVtEAISDQoJ", "Q29udHJvbBANKoMCCg9Sb21QbGF0Zm9ybVR5cGUSCwoHSW52YWxpZBAAEgcK",
"R2FtZV9HZWFyEAMSDAoIR2FtZV9Cb3kQBBISCg5HYW1lX0JveV9Db2xvchAF", "A05lcxABEhEKDU1hc3Rlcl9TeXN0ZW0QAhINCglHYW1lX0dlYXIQAxIMCghH",
"EhEKDUNvbGVjb19WaXNpb24QBhILCgdTQ18zMDAwEAcSCwoHU0dfMTAwMBAI", "YW1lX0JveRAEEhIKDkdhbWVfQm95X0NvbG9yEAUSEQoNQ29sZWNvX1Zpc2lv",
"EgoKBk5FT0dFTxAUEgcKA0lHUxAVEggKBENQUzEQFhIICgRDUFMyEBcSDgoK", "bhAGEgsKB1NDXzMwMDAQBxILCgdTR18xMDAwEAgSCgoGTkVPR0VPEBQSBwoD",
"QXJjYWRlX09MRBAeEg8KC1dvbmRlcl9Td2FuECgSFQoRV29uZGVyX1N3YW5f", "SUdTEBUSCAoEQ1BTMRAWEggKBENQUzIQFxIOCgpBcmNhZGVfT0xEEB4SDwoL",
"Q29sb3IQKRIICgNBbGwQ5wcqcAoNUm9vbUdhbWVTdGF0ZRISCg5Ob25lX0dh", "V29uZGVyX1N3YW4QKBIVChFXb25kZXJfU3dhbl9Db2xvchApEggKA0FsbBDn",
"bWVTdGF0ZRAAEgwKCE9ubHlIb3N0EAESEQoNV2FpdFJhd1VwZGF0ZRACEg0K", "BypwCg1Sb29tR2FtZVN0YXRlEhIKDk5vbmVfR2FtZVN0YXRlEAASDAoIT25s",
"CVdhaXRSZWFkeRADEgkKBVBhdXNlEAQSEAoMSW5PbmxpbmVHYW1lEAUqTgoR", "eUhvc3QQARIRCg1XYWl0UmF3VXBkYXRlEAISDQoJV2FpdFJlYWR5EAMSCQoF",
"TG9naW5SZXN1bHRTdGF0dXMSIQodTG9naW5SZXN1bHRTdGF0dXNfQmFzZURl", "UGF1c2UQBBIQCgxJbk9ubGluZUdhbWUQBSpOChFMb2dpblJlc3VsdFN0YXR1",
"ZmF1bHQQABIGCgJPSxABEg4KCkFjY291bnRFcnIQAkICSAFiBnByb3RvMw==")); "cxIhCh1Mb2dpblJlc3VsdFN0YXR1c19CYXNlRGVmYXVsdBAAEgYKAk9LEAES",
"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[] {
@ -395,6 +396,10 @@ 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,6 +85,7 @@ 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;//