From 04d2295bdfa82120165adbca7c57bc923afa0afd Mon Sep 17 00:00:00 2001
From: sin365 <353374337@qq.com>
Date: Tue, 4 Nov 2025 12:41:13 +0800
Subject: [PATCH] =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E7=AB=AF=EF=BC=9A=E6=8E=A5?=
=?UTF-8?q?=E6=94=B6=E5=B9=B6=E4=BF=9D=E5=AD=98=E5=AE=A2=E6=88=B7=E7=AB=AF?=
=?UTF-8?q?=E4=B8=8A=E4=BC=A0=E5=B0=81=E9=9D=A2?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Protobuf/ProtobufAxibugEmuOnline.cs | 57 ++++++-----
AxibugEmuOnline.Server/Common/Config.cs | 2 +-
AxibugEmuOnline.Server/Common/Helper.cs | 36 +++++++
.../Manager/GameShareManager.cs | 98 +++++++++++++++++++
.../Manager/SavDataManager.cs | 55 ++---------
AxibugEmuOnline.Server/Program.cs | 5 +
.../PublishProfiles/FolderProfile.pubxml.user | 2 +-
.../Protobuf/ProtobufAxibugEmuOnline.cs | 57 ++++++-----
.../Protobuf/ProtobufAxibugEmuOnline.cs | 57 ++++++-----
.../out/CS/ProtobufAxibugEmuOnline.cs | 57 ++++++-----
10 files changed, 275 insertions(+), 151 deletions(-)
diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Protobuf/ProtobufAxibugEmuOnline.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/Protobuf/ProtobufAxibugEmuOnline.cs
index cfbdda41..eb1d1a8c 100644
--- a/AxibugEmuOnline.Client/Assets/Script/AppMain/Protobuf/ProtobufAxibugEmuOnline.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Protobuf/ProtobufAxibugEmuOnline.cs
@@ -144,36 +144,37 @@ namespace AxibugProtobuf {
"bnB1dBD/LhIPCgpDTURfU2NyZWVuENk2Eh8KGkNNRF9HQU1FU0FWX0dldEdh",
"bWVTYXZMaXN0EME+EhsKFkNNRF9HQU1FU0FWX0RlbEdhbWVTYXYQxT4SHgoZ",
"Q01EX0dBTUVTQVZfVXBsb2FkR2FtZVNhdhDKPhIeChlDTURfR0FNRVNDUkVF",
- "Tl9JTUdfVXBsb2FkEKlGEhIKDUNNRF9HQU1FX01BUksQ9U4qsgIKCUVycm9y",
+ "Tl9JTUdfVXBsb2FkEKlGEhIKDUNNRF9HQU1FX01BUksQ9U4qzwIKCUVycm9y",
"Q29kZRIQCgxFUlJPUl9ERUZBVUwQABIMCghFUlJPUl9PSxABEhgKFEVSUk9S",
"X1JPT01fTk9UX0ZPVU5EEAoSJwojRVJST1JfUk9PTV9TTE9UX0FMUkVBRExZ",
"X0hBRF9QTEFZRVIQCxIhCh1FUlJPUl9ST09NX0NBTlRfRE9fQ1VSUl9TVEFU",
"RRAyEh8KG0VSUk9SX1JPTV9ET05UX0hBRF9TQVZFREFUQRBQEhsKF0VSUk9S",
"X1JPTV9GQUlMX1NBVkVEQVRBEFESIgoeRVJST1JfUk9NX0FMUkVBRFlfSEFE",
- "X0NPVkVSSU1HEFoSHwoaRVJST1JfUk9NX0FMUkVBRFlfSEFEX1NUQVIQkwMS",
- "HAoXRVJST1JfUk9NX0RPTlRfSEFEX1NUQVIQlAMqQAoJTG9naW5UeXBlEg0K",
- "CVVzZURldmljZRAAEg4KClVzZUFjY291bnQQARIUChBVc2VIYW9ZdWVBY2Nv",
- "dW50EAIqpQEKCkRldmljZVR5cGUSFgoSRGV2aWNlVHlwZV9EZWZhdWx0EAAS",
- "BgoCUEMQARILCgdBbmRyb2lkEAISBwoDSU9TEAMSBwoDUFNWEAQSBwoDUFMz",
- "EAUSBwoDUFM0EAYSCwoHWEJPWDM2MBAHEgsKB1hCT1hPTkUQCBIICgRXaWlV",
- "EAkSDwoLTmludGVuZG8zRFMQChIRCg1BbmRyb2lkQ2FyQXBwEAsqkwIKC0dh",
- "bWVQYWRUeXBlEgwKCEtleWJvYXJkEAASEQoNR2xvYmFsR2FtZVBhZBABEg4K",
- "ClRvdWNoUGFuZWwQAhIOCgpEUzNDb250cm9sEAMSDgoKRFM0Q29udHJvbBAE",
- "Eg4KCkRTNUNvbnRyb2wQBRIUChBTd2l0Y2hQcm9Db250cm9sEAYSEAoMU3dp",
- "dGNoSm95Q29uEAcSEgoOWEJPWDM2MENvbnRyb2wQCBISCg5YQk9YT05FQ29u",
- "dHJvbBAJEhEKDVBTVml0YUNvbnRyb2wQChISCg5XaWlVUGFkQ29udHJvbBAL",
- "EhQKEFdpaVJlbW90ZUNvbnRyb2wQDBIWChJOaW50ZW5kbzNEU0NvbnRyb2wQ",
- "DSqDAgoPUm9tUGxhdGZvcm1UeXBlEgsKB0ludmFsaWQQABIHCgNOZXMQARIR",
- "Cg1NYXN0ZXJfU3lzdGVtEAISDQoJR2FtZV9HZWFyEAMSDAoIR2FtZV9Cb3kQ",
- "BBISCg5HYW1lX0JveV9Db2xvchAFEhEKDUNvbGVjb19WaXNpb24QBhILCgdT",
- "Q18zMDAwEAcSCwoHU0dfMTAwMBAIEgoKBk5FT0dFTxAUEgcKA0lHUxAVEggK",
- "BENQUzEQFhIICgRDUFMyEBcSDgoKQXJjYWRlX09MRBAeEg8KC1dvbmRlcl9T",
- "d2FuECgSFQoRV29uZGVyX1N3YW5fQ29sb3IQKRIICgNBbGwQ5wcqcAoNUm9v",
- "bUdhbWVTdGF0ZRISCg5Ob25lX0dhbWVTdGF0ZRAAEgwKCE9ubHlIb3N0EAES",
- "EQoNV2FpdFJhd1VwZGF0ZRACEg0KCVdhaXRSZWFkeRADEgkKBVBhdXNlEAQS",
- "EAoMSW5PbmxpbmVHYW1lEAUqTgoRTG9naW5SZXN1bHRTdGF0dXMSIQodTG9n",
- "aW5SZXN1bHRTdGF0dXNfQmFzZURlZmF1bHQQABIGCgJPSxABEg4KCkFjY291",
- "bnRFcnIQAkICSAFiBnByb3RvMw=="));
+ "X0NPVkVSSU1HEFoSGwoXRVJST1JfUk9NX0ZBSUxfQ09WRVJJTUcQWxIfChpF",
+ "UlJPUl9ST01fQUxSRUFEWV9IQURfU1RBUhCTAxIcChdFUlJPUl9ST01fRE9O",
+ "VF9IQURfU1RBUhCUAypACglMb2dpblR5cGUSDQoJVXNlRGV2aWNlEAASDgoK",
+ "VXNlQWNjb3VudBABEhQKEFVzZUhhb1l1ZUFjY291bnQQAiqlAQoKRGV2aWNl",
+ "VHlwZRIWChJEZXZpY2VUeXBlX0RlZmF1bHQQABIGCgJQQxABEgsKB0FuZHJv",
+ "aWQQAhIHCgNJT1MQAxIHCgNQU1YQBBIHCgNQUzMQBRIHCgNQUzQQBhILCgdY",
+ "Qk9YMzYwEAcSCwoHWEJPWE9ORRAIEggKBFdpaVUQCRIPCgtOaW50ZW5kbzNE",
+ "UxAKEhEKDUFuZHJvaWRDYXJBcHAQCyqTAgoLR2FtZVBhZFR5cGUSDAoIS2V5",
+ "Ym9hcmQQABIRCg1HbG9iYWxHYW1lUGFkEAESDgoKVG91Y2hQYW5lbBACEg4K",
+ "CkRTM0NvbnRyb2wQAxIOCgpEUzRDb250cm9sEAQSDgoKRFM1Q29udHJvbBAF",
+ "EhQKEFN3aXRjaFByb0NvbnRyb2wQBhIQCgxTd2l0Y2hKb3lDb24QBxISCg5Y",
+ "Qk9YMzYwQ29udHJvbBAIEhIKDlhCT1hPTkVDb250cm9sEAkSEQoNUFNWaXRh",
+ "Q29udHJvbBAKEhIKDldpaVVQYWRDb250cm9sEAsSFAoQV2lpUmVtb3RlQ29u",
+ "dHJvbBAMEhYKEk5pbnRlbmRvM0RTQ29udHJvbBANKoMCCg9Sb21QbGF0Zm9y",
+ "bVR5cGUSCwoHSW52YWxpZBAAEgcKA05lcxABEhEKDU1hc3Rlcl9TeXN0ZW0Q",
+ "AhINCglHYW1lX0dlYXIQAxIMCghHYW1lX0JveRAEEhIKDkdhbWVfQm95X0Nv",
+ "bG9yEAUSEQoNQ29sZWNvX1Zpc2lvbhAGEgsKB1NDXzMwMDAQBxILCgdTR18x",
+ "MDAwEAgSCgoGTkVPR0VPEBQSBwoDSUdTEBUSCAoEQ1BTMRAWEggKBENQUzIQ",
+ "FxIOCgpBcmNhZGVfT0xEEB4SDwoLV29uZGVyX1N3YW4QKBIVChFXb25kZXJf",
+ "U3dhbl9Db2xvchApEggKA0FsbBDnBypwCg1Sb29tR2FtZVN0YXRlEhIKDk5v",
+ "bmVfR2FtZVN0YXRlEAASDAoIT25seUhvc3QQARIRCg1XYWl0UmF3VXBkYXRl",
+ "EAISDQoJV2FpdFJlYWR5EAMSCQoFUGF1c2UQBBIQCgxJbk9ubGluZUdhbWUQ",
+ "BSpOChFMb2dpblJlc3VsdFN0YXR1cxIhCh1Mb2dpblJlc3VsdFN0YXR1c19C",
+ "YXNlRGVmYXVsdBAAEgYKAk9LEAESDgoKQWNjb3VudEVychACQgJIAWIGcHJv",
+ "dG8z"));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { },
new pbr::GeneratedClrTypeInfo(new[] {typeof(global::AxibugProtobuf.CommandID), typeof(global::AxibugProtobuf.ErrorCode), typeof(global::AxibugProtobuf.LoginType), typeof(global::AxibugProtobuf.DeviceType), typeof(global::AxibugProtobuf.GamePadType), typeof(global::AxibugProtobuf.RomPlatformType), typeof(global::AxibugProtobuf.RoomGameState), typeof(global::AxibugProtobuf.LoginResultStatus), }, null, new pbr::GeneratedClrTypeInfo[] {
@@ -406,7 +407,7 @@ namespace AxibugProtobuf {
///
[pbr::OriginalName("ERROR_ROM_DONT_HAD_SAVEDATA")] ErrorRomDontHadSavedata = 80,
///
- ///即时存档不存在
+ ///处理即时存档失败
///
[pbr::OriginalName("ERROR_ROM_FAIL_SAVEDATA")] ErrorRomFailSavedata = 81,
///
@@ -414,6 +415,10 @@ namespace AxibugProtobuf {
///
[pbr::OriginalName("ERROR_ROM_ALREADY_HAD_COVERIMG")] ErrorRomAlreadyHadCoverimg = 90,
///
+ ///封面图处理失败
+ ///
+ [pbr::OriginalName("ERROR_ROM_FAIL_COVERIMG")] ErrorRomFailCoverimg = 91,
+ ///
///已经收藏
///
[pbr::OriginalName("ERROR_ROM_ALREADY_HAD_STAR")] ErrorRomAlreadyHadStar = 403,
diff --git a/AxibugEmuOnline.Server/Common/Config.cs b/AxibugEmuOnline.Server/Common/Config.cs
index b3c2af2e..ff5eed0c 100644
--- a/AxibugEmuOnline.Server/Common/Config.cs
+++ b/AxibugEmuOnline.Server/Common/Config.cs
@@ -21,7 +21,7 @@ namespace AxibugEmuOnline.Server.Common
public string ClientVersion { get; set; }
public string AesKey { get; set; }
public string AesIv { get; set; }
- public string savDataPath { get; set; } = "";
+ public string wwwRootPath { get; set; } = "";
}
diff --git a/AxibugEmuOnline.Server/Common/Helper.cs b/AxibugEmuOnline.Server/Common/Helper.cs
index 9bf42cff..c5dc5010 100644
--- a/AxibugEmuOnline.Server/Common/Helper.cs
+++ b/AxibugEmuOnline.Server/Common/Helper.cs
@@ -6,6 +6,42 @@ namespace AxibugEmuOnline.Server.Common
{
public static class Helper
{
+
+ public static bool FileDelete(string path)
+ {
+ if (!File.Exists(path))
+ return false;
+ try
+ {
+ File.Delete(path);
+ return true;
+ }
+ catch (Exception e)
+ {
+ return false;
+ }
+ }
+ public static bool CreateFile(string path, byte[] data)
+ {
+ try
+ {
+ string dir = Path.GetDirectoryName(path);
+ if (!Directory.Exists(dir))
+ Directory.CreateDirectory(dir);
+
+ using (var fs = new FileStream(path, FileMode.Create))
+ {
+ fs.Write(data, 0, data.Length);
+ }
+ AppSrv.g_Log.Error($"CreeateFile {path}");
+ return true;
+ }
+ catch (Exception ex)
+ {
+ AppSrv.g_Log.Error($"CreeateFile Err =>{ex.ToString()}");
+ return false;
+ }
+ }
public static long GetNowTimeStamp()
{
return GetTimeStamp(DateTime.Now);
diff --git a/AxibugEmuOnline.Server/Manager/GameShareManager.cs b/AxibugEmuOnline.Server/Manager/GameShareManager.cs
index dc1b8304..b6774a66 100644
--- a/AxibugEmuOnline.Server/Manager/GameShareManager.cs
+++ b/AxibugEmuOnline.Server/Manager/GameShareManager.cs
@@ -4,6 +4,7 @@ using AxibugEmuOnline.Server.NetWork;
using AxibugProtobuf;
using MySql.Data.MySqlClient;
using System.Net.Sockets;
+using static System.Runtime.CompilerServices.RuntimeHelpers;
namespace AxibugEmuOnline.Server.Manager
{
@@ -13,8 +14,10 @@ namespace AxibugEmuOnline.Server.Manager
public GameShareManager()
{
NetMsg.Instance.RegNetMsgEvent((int)CommandID.CmdGameMark, RecvGameMark);
+ NetMsg.Instance.RegNetMsgEvent((int)CommandID.CmdGamescreenImgUpload, RecvGameScreenCoverImgUpload);
}
+
public void RecvGameMark(Socket _socket, byte[] reqData)
{
AppSrv.g_Log.DebugCmd("RecvGameMark");
@@ -103,6 +106,66 @@ namespace AxibugEmuOnline.Server.Manager
AppSrv.g_ClientMgr.ClientSend(_c, (int)CommandID.CmdGameMark, (int)ErrorCode.ErrorOk, ProtoBufHelper.Serizlize(respData));
}
+ private void RecvGameScreenCoverImgUpload(Socket _socket, byte[] reqData)
+ {
+ AppSrv.g_Log.DebugCmd("RecvGameScreenCoverImgUpload");
+ ClientInfo _c = AppSrv.g_ClientMgr.GetClientForSocket(_socket);
+ Protobuf_GameScreen_Img_Upload msg = ProtoBufHelper.DeSerizlize(reqData);
+ Protobuf_GameScreen_Img_Upload_RESP respData = new Protobuf_GameScreen_Img_Upload_RESP();
+ CheckRomHadCover(msg.RomID, out bool bhadGame, out bool bHadCover, out string coverPath);
+ ErrorCode errCode = ErrorCode.ErrorOk;
+ if (!bhadGame || bHadCover)
+ {
+ errCode = ErrorCode.ErrorRomAlreadyHadCoverimg;
+ }
+
+ if (errCode == ErrorCode.ErrorOk)
+ {
+ Helper.FileDelete(Path.Combine(Config.cfg.wwwRootPath, coverPath));
+ byte[] ImgData = msg.SavImg.ToArray();
+ string imgpath = Path.Combine("UpCover", $"{_c.UID}_{msg.RomID}.jpg");
+
+ ImgData = Helper.DecompressByteArray(ImgData);
+
+ if (Helper.CreateFile(Path.Combine(Config.cfg.wwwRootPath, imgpath), ImgData))
+ {
+ string query = "update romlist set ImgUrl = ?imgUrl WHERE id = ?romid;";
+ using (MySqlConnection conn = SQLRUN.GetConn("RecvGameScreenCoverImgUpload_updateImg"))
+ {
+ using (var command = new MySqlCommand(query, conn))
+ {
+ // 设置参数值
+ command.Parameters.AddWithValue("?romid", msg.RomID);
+ command.Parameters.AddWithValue("?imgUrl", imgpath);
+ if (command.ExecuteNonQuery() < 1)
+ {
+ AppSrv.g_Log.Error("执行即时存档保存失败");
+ }
+ }
+ }
+ query = "INSERT INTO `haoyue_emu`.`uploadcover_log` (`uid`, `romid`) VALUES (?uid, ?romid);";
+ using (MySqlConnection conn = SQLRUN.GetConn("RecvGameScreenCoverImgUpload_insertlog"))
+ {
+ using (var command = new MySqlCommand(query, conn))
+ {
+ // 设置参数值
+ command.Parameters.AddWithValue("?uid", _c.UID);
+ command.Parameters.AddWithValue("?romid", msg.RomID);
+ if (command.ExecuteNonQuery() < 1)
+ {
+ AppSrv.g_Log.Error("执行即时存档保存失败");
+ }
+ }
+ }
+ }
+ else
+ {
+ errCode = ErrorCode.ErrorRomFailCoverimg;
+ }
+ }
+ AppSrv.g_ClientMgr.ClientSend(_c, (int)CommandID.CmdGamescreenImgUpload, (int)errCode, ProtoBufHelper.Serizlize(respData));
+ }
+
public int GetRomStart(int RomId)
{
int stars = 0;
@@ -164,6 +227,41 @@ namespace AxibugEmuOnline.Server.Manager
return bhad;
}
+
+ public void CheckRomHadCover(int RomId, out bool bhadGame, out bool bHadCover, out string coverPath)
+ {
+ bhadGame = false;
+ bHadCover = false;
+ coverPath = string.Empty;
+ using (MySqlConnection conn = SQLRUN.GetConn("CheckRomHadCover"))
+ {
+ try
+ {
+ string query = $"SELECT id,ImgUrl from romlist where Id = ?romid";
+ using (var command = new MySqlCommand(query, conn))
+ {
+ // 设置参数值
+ command.Parameters.AddWithValue("?romid", RomId);
+ // 执行查询并处理结果
+ using (var reader = command.ExecuteReader())
+ {
+ while (reader.Read())
+ {
+ bhadGame = reader.GetInt32(0) > 0;
+ coverPath = reader.GetString(1);
+ if (!string.IsNullOrEmpty(coverPath))
+ bHadCover = true;
+ }
+ }
+ }
+ }
+ catch (Exception e)
+ {
+ AppSrv.g_Log.Error("CheckRomHadCover:" + e);
+ }
+ }
+ }
+
public RomPlatformType GetRomPlatformType(int RomID)
{
if (mDictRomID2Platform.TryGetValue(RomID, out RomPlatformType ptype))
diff --git a/AxibugEmuOnline.Server/Manager/SavDataManager.cs b/AxibugEmuOnline.Server/Manager/SavDataManager.cs
index 54a31703..130f4562 100644
--- a/AxibugEmuOnline.Server/Manager/SavDataManager.cs
+++ b/AxibugEmuOnline.Server/Manager/SavDataManager.cs
@@ -99,8 +99,8 @@ namespace AxibugEmuOnline.Server.Manager
}
else
{
- bool bDelSav = FileDelete(Path.Combine(Config.cfg.savDataPath, SavUrl));
- bool bDelImg = FileDelete(Path.Combine(Config.cfg.savDataPath, SavImgUrl));
+ bool bDelSav = Helper.FileDelete(Path.Combine(Config.cfg.wwwRootPath, SavUrl));
+ bool bDelImg = Helper.FileDelete(Path.Combine(Config.cfg.wwwRootPath, SavImgUrl));
if (!bDelSav || !bDelImg)
{
errCode = ErrorCode.ErrorRomDontHadSavedata;
@@ -148,8 +148,8 @@ namespace AxibugEmuOnline.Server.Manager
if (GetProtobufMineGameSavInfo(_c.UID, msg.RomID, msg.SavDataIdx, out Protobuf_Mine_GameSavInfo oldSavInfo))
{
- bool bDelSav = FileDelete(Path.Combine(Config.cfg.savDataPath, oldSavInfo.SavUrl));
- bool bDelImg = FileDelete(Path.Combine(Config.cfg.savDataPath, oldSavInfo.SavImgUrl));
+ bool bDelSav = Helper.FileDelete(Path.Combine(Config.cfg.wwwRootPath, oldSavInfo.SavUrl));
+ bool bDelImg = Helper.FileDelete(Path.Combine(Config.cfg.wwwRootPath, oldSavInfo.SavImgUrl));
if (!bDelSav || !bDelImg)
{
errCode = ErrorCode.ErrorRomDontHadSavedata;
@@ -166,18 +166,17 @@ namespace AxibugEmuOnline.Server.Manager
{
byte[] StateRawData = msg.StateRaw.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}.jpg", out string imgpath);
+ GetNewUserSavPath(_c.UID, ptype, msg.RomID, msg.SavDataIdx, $"{msg.SavDataIdx}.sav", out string rompath);
+ GetNewUserSavPath(_c.UID, ptype, msg.RomID, msg.SavDataIdx, $"{msg.SavDataIdx}.jpg", out string imgpath);
ImgData = Helper.DecompressByteArray(ImgData);
if (
- CreateFile(Path.Combine(Config.cfg.savDataPath, rompath), StateRawData)
+ Helper.CreateFile(Path.Combine(Config.cfg.wwwRootPath, rompath), StateRawData)
&&
- CreateFile(Path.Combine(Config.cfg.savDataPath, imgpath), ImgData)
+ Helper.CreateFile(Path.Combine(Config.cfg.wwwRootPath, 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');
string query = "INSERT INTO `haoyue_emu`.`user_gamesavedata`" +
" ( `uid`, `romid`, `savidx`, `savName`, `savNote`, `savUrl`, `savImgUrl`, `savDate`, `savSequence`)" +
" VALUES ( ?uid, ?romid, ?savidx, ?savName, ?savNote, ?savUrl, ?savImgUrl, ?savDate, ?savSequence);";
@@ -228,46 +227,12 @@ namespace AxibugEmuOnline.Server.Manager
AppSrv.g_ClientMgr.ClientSend(_c, (int)CommandID.CmdGamesavUploadGameSav, (int)errCode, ProtoBufHelper.Serizlize(respData));
}
- public void GetNewRomPath(long uid, RomPlatformType ptype, int romid, int stateIdx, string filename, out string path)
+ public void GetNewUserSavPath(long uid, RomPlatformType ptype, int romid, int stateIdx, string filename, out string path)
{
path = Path.Combine("UserSav", uid.ToString(), ptype.ToString(), romid.ToString(), stateIdx.ToString(), filename);
}
- public bool FileDelete(string path)
- {
- if (!File.Exists(path))
- return false;
- try
- {
- File.Delete(path);
- return true;
- }
- catch (Exception e)
- {
- return false;
- }
- }
- public bool CreateFile(string path, byte[] data)
- {
- try
- {
- string dir = Path.GetDirectoryName(path);
- if (!Directory.Exists(dir))
- Directory.CreateDirectory(dir);
-
- using (var fs = new FileStream(path, FileMode.Create))
- {
- fs.Write(data, 0, data.Length);
- }
- AppSrv.g_Log.Error($"CreeateFile {path}");
- return true;
- }
- catch (Exception ex)
- {
- AppSrv.g_Log.Error($"CreeateFile Err =>{ex.ToString()}");
- return false;
- }
- }
+
public bool GetProtobufMineGameSavInfo(long uid, int romid, int savIdx, out Protobuf_Mine_GameSavInfo protoData)
{
diff --git a/AxibugEmuOnline.Server/Program.cs b/AxibugEmuOnline.Server/Program.cs
index 9c09148d..32d8fe14 100644
--- a/AxibugEmuOnline.Server/Program.cs
+++ b/AxibugEmuOnline.Server/Program.cs
@@ -89,6 +89,11 @@ namespace AxibugEmuOnline.Server
AppSrv.g_GameShareMgr.RecvGameMark(null, null);
}
break;
+ case "t2":
+ {
+ AppSrv.g_GameShareMgr.CheckRomHadCover(10089, out bool bhadGame, out bool bHadCover, out string coverPath);
+ }
+ break;
case "sql":
{
SQLRUN.GetPoolState();
diff --git a/AxibugEmuOnline.Server/Properties/PublishProfiles/FolderProfile.pubxml.user b/AxibugEmuOnline.Server/Properties/PublishProfiles/FolderProfile.pubxml.user
index 75990e1b..3fb23777 100644
--- a/AxibugEmuOnline.Server/Properties/PublishProfiles/FolderProfile.pubxml.user
+++ b/AxibugEmuOnline.Server/Properties/PublishProfiles/FolderProfile.pubxml.user
@@ -4,7 +4,7 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
-->
- True|2025-08-20T04:39:51.0978578Z||;True|2025-08-18T18:16:02.6095843+08:00||;True|2025-03-20T11:08:16.2733764+08:00||;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||;
+ True|2025-11-04T03:56:23.6612814Z||;True|2025-11-04T11:52:34.7320731+08:00||;True|2025-11-04T11:42:15.5651562+08:00||;True|2025-08-20T12:39:51.0978578+08:00||;True|2025-08-18T18:16:02.6095843+08:00||;True|2025-03-20T11:08:16.2733764+08:00||;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||;
\ No newline at end of file
diff --git a/AxibugEmuOnline.Server/Protobuf/ProtobufAxibugEmuOnline.cs b/AxibugEmuOnline.Server/Protobuf/ProtobufAxibugEmuOnline.cs
index cfbdda41..eb1d1a8c 100644
--- a/AxibugEmuOnline.Server/Protobuf/ProtobufAxibugEmuOnline.cs
+++ b/AxibugEmuOnline.Server/Protobuf/ProtobufAxibugEmuOnline.cs
@@ -144,36 +144,37 @@ namespace AxibugProtobuf {
"bnB1dBD/LhIPCgpDTURfU2NyZWVuENk2Eh8KGkNNRF9HQU1FU0FWX0dldEdh",
"bWVTYXZMaXN0EME+EhsKFkNNRF9HQU1FU0FWX0RlbEdhbWVTYXYQxT4SHgoZ",
"Q01EX0dBTUVTQVZfVXBsb2FkR2FtZVNhdhDKPhIeChlDTURfR0FNRVNDUkVF",
- "Tl9JTUdfVXBsb2FkEKlGEhIKDUNNRF9HQU1FX01BUksQ9U4qsgIKCUVycm9y",
+ "Tl9JTUdfVXBsb2FkEKlGEhIKDUNNRF9HQU1FX01BUksQ9U4qzwIKCUVycm9y",
"Q29kZRIQCgxFUlJPUl9ERUZBVUwQABIMCghFUlJPUl9PSxABEhgKFEVSUk9S",
"X1JPT01fTk9UX0ZPVU5EEAoSJwojRVJST1JfUk9PTV9TTE9UX0FMUkVBRExZ",
"X0hBRF9QTEFZRVIQCxIhCh1FUlJPUl9ST09NX0NBTlRfRE9fQ1VSUl9TVEFU",
"RRAyEh8KG0VSUk9SX1JPTV9ET05UX0hBRF9TQVZFREFUQRBQEhsKF0VSUk9S",
"X1JPTV9GQUlMX1NBVkVEQVRBEFESIgoeRVJST1JfUk9NX0FMUkVBRFlfSEFE",
- "X0NPVkVSSU1HEFoSHwoaRVJST1JfUk9NX0FMUkVBRFlfSEFEX1NUQVIQkwMS",
- "HAoXRVJST1JfUk9NX0RPTlRfSEFEX1NUQVIQlAMqQAoJTG9naW5UeXBlEg0K",
- "CVVzZURldmljZRAAEg4KClVzZUFjY291bnQQARIUChBVc2VIYW9ZdWVBY2Nv",
- "dW50EAIqpQEKCkRldmljZVR5cGUSFgoSRGV2aWNlVHlwZV9EZWZhdWx0EAAS",
- "BgoCUEMQARILCgdBbmRyb2lkEAISBwoDSU9TEAMSBwoDUFNWEAQSBwoDUFMz",
- "EAUSBwoDUFM0EAYSCwoHWEJPWDM2MBAHEgsKB1hCT1hPTkUQCBIICgRXaWlV",
- "EAkSDwoLTmludGVuZG8zRFMQChIRCg1BbmRyb2lkQ2FyQXBwEAsqkwIKC0dh",
- "bWVQYWRUeXBlEgwKCEtleWJvYXJkEAASEQoNR2xvYmFsR2FtZVBhZBABEg4K",
- "ClRvdWNoUGFuZWwQAhIOCgpEUzNDb250cm9sEAMSDgoKRFM0Q29udHJvbBAE",
- "Eg4KCkRTNUNvbnRyb2wQBRIUChBTd2l0Y2hQcm9Db250cm9sEAYSEAoMU3dp",
- "dGNoSm95Q29uEAcSEgoOWEJPWDM2MENvbnRyb2wQCBISCg5YQk9YT05FQ29u",
- "dHJvbBAJEhEKDVBTVml0YUNvbnRyb2wQChISCg5XaWlVUGFkQ29udHJvbBAL",
- "EhQKEFdpaVJlbW90ZUNvbnRyb2wQDBIWChJOaW50ZW5kbzNEU0NvbnRyb2wQ",
- "DSqDAgoPUm9tUGxhdGZvcm1UeXBlEgsKB0ludmFsaWQQABIHCgNOZXMQARIR",
- "Cg1NYXN0ZXJfU3lzdGVtEAISDQoJR2FtZV9HZWFyEAMSDAoIR2FtZV9Cb3kQ",
- "BBISCg5HYW1lX0JveV9Db2xvchAFEhEKDUNvbGVjb19WaXNpb24QBhILCgdT",
- "Q18zMDAwEAcSCwoHU0dfMTAwMBAIEgoKBk5FT0dFTxAUEgcKA0lHUxAVEggK",
- "BENQUzEQFhIICgRDUFMyEBcSDgoKQXJjYWRlX09MRBAeEg8KC1dvbmRlcl9T",
- "d2FuECgSFQoRV29uZGVyX1N3YW5fQ29sb3IQKRIICgNBbGwQ5wcqcAoNUm9v",
- "bUdhbWVTdGF0ZRISCg5Ob25lX0dhbWVTdGF0ZRAAEgwKCE9ubHlIb3N0EAES",
- "EQoNV2FpdFJhd1VwZGF0ZRACEg0KCVdhaXRSZWFkeRADEgkKBVBhdXNlEAQS",
- "EAoMSW5PbmxpbmVHYW1lEAUqTgoRTG9naW5SZXN1bHRTdGF0dXMSIQodTG9n",
- "aW5SZXN1bHRTdGF0dXNfQmFzZURlZmF1bHQQABIGCgJPSxABEg4KCkFjY291",
- "bnRFcnIQAkICSAFiBnByb3RvMw=="));
+ "X0NPVkVSSU1HEFoSGwoXRVJST1JfUk9NX0ZBSUxfQ09WRVJJTUcQWxIfChpF",
+ "UlJPUl9ST01fQUxSRUFEWV9IQURfU1RBUhCTAxIcChdFUlJPUl9ST01fRE9O",
+ "VF9IQURfU1RBUhCUAypACglMb2dpblR5cGUSDQoJVXNlRGV2aWNlEAASDgoK",
+ "VXNlQWNjb3VudBABEhQKEFVzZUhhb1l1ZUFjY291bnQQAiqlAQoKRGV2aWNl",
+ "VHlwZRIWChJEZXZpY2VUeXBlX0RlZmF1bHQQABIGCgJQQxABEgsKB0FuZHJv",
+ "aWQQAhIHCgNJT1MQAxIHCgNQU1YQBBIHCgNQUzMQBRIHCgNQUzQQBhILCgdY",
+ "Qk9YMzYwEAcSCwoHWEJPWE9ORRAIEggKBFdpaVUQCRIPCgtOaW50ZW5kbzNE",
+ "UxAKEhEKDUFuZHJvaWRDYXJBcHAQCyqTAgoLR2FtZVBhZFR5cGUSDAoIS2V5",
+ "Ym9hcmQQABIRCg1HbG9iYWxHYW1lUGFkEAESDgoKVG91Y2hQYW5lbBACEg4K",
+ "CkRTM0NvbnRyb2wQAxIOCgpEUzRDb250cm9sEAQSDgoKRFM1Q29udHJvbBAF",
+ "EhQKEFN3aXRjaFByb0NvbnRyb2wQBhIQCgxTd2l0Y2hKb3lDb24QBxISCg5Y",
+ "Qk9YMzYwQ29udHJvbBAIEhIKDlhCT1hPTkVDb250cm9sEAkSEQoNUFNWaXRh",
+ "Q29udHJvbBAKEhIKDldpaVVQYWRDb250cm9sEAsSFAoQV2lpUmVtb3RlQ29u",
+ "dHJvbBAMEhYKEk5pbnRlbmRvM0RTQ29udHJvbBANKoMCCg9Sb21QbGF0Zm9y",
+ "bVR5cGUSCwoHSW52YWxpZBAAEgcKA05lcxABEhEKDU1hc3Rlcl9TeXN0ZW0Q",
+ "AhINCglHYW1lX0dlYXIQAxIMCghHYW1lX0JveRAEEhIKDkdhbWVfQm95X0Nv",
+ "bG9yEAUSEQoNQ29sZWNvX1Zpc2lvbhAGEgsKB1NDXzMwMDAQBxILCgdTR18x",
+ "MDAwEAgSCgoGTkVPR0VPEBQSBwoDSUdTEBUSCAoEQ1BTMRAWEggKBENQUzIQ",
+ "FxIOCgpBcmNhZGVfT0xEEB4SDwoLV29uZGVyX1N3YW4QKBIVChFXb25kZXJf",
+ "U3dhbl9Db2xvchApEggKA0FsbBDnBypwCg1Sb29tR2FtZVN0YXRlEhIKDk5v",
+ "bmVfR2FtZVN0YXRlEAASDAoIT25seUhvc3QQARIRCg1XYWl0UmF3VXBkYXRl",
+ "EAISDQoJV2FpdFJlYWR5EAMSCQoFUGF1c2UQBBIQCgxJbk9ubGluZUdhbWUQ",
+ "BSpOChFMb2dpblJlc3VsdFN0YXR1cxIhCh1Mb2dpblJlc3VsdFN0YXR1c19C",
+ "YXNlRGVmYXVsdBAAEgYKAk9LEAESDgoKQWNjb3VudEVychACQgJIAWIGcHJv",
+ "dG8z"));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { },
new pbr::GeneratedClrTypeInfo(new[] {typeof(global::AxibugProtobuf.CommandID), typeof(global::AxibugProtobuf.ErrorCode), typeof(global::AxibugProtobuf.LoginType), typeof(global::AxibugProtobuf.DeviceType), typeof(global::AxibugProtobuf.GamePadType), typeof(global::AxibugProtobuf.RomPlatformType), typeof(global::AxibugProtobuf.RoomGameState), typeof(global::AxibugProtobuf.LoginResultStatus), }, null, new pbr::GeneratedClrTypeInfo[] {
@@ -406,7 +407,7 @@ namespace AxibugProtobuf {
///
[pbr::OriginalName("ERROR_ROM_DONT_HAD_SAVEDATA")] ErrorRomDontHadSavedata = 80,
///
- ///即时存档不存在
+ ///处理即时存档失败
///
[pbr::OriginalName("ERROR_ROM_FAIL_SAVEDATA")] ErrorRomFailSavedata = 81,
///
@@ -414,6 +415,10 @@ namespace AxibugProtobuf {
///
[pbr::OriginalName("ERROR_ROM_ALREADY_HAD_COVERIMG")] ErrorRomAlreadyHadCoverimg = 90,
///
+ ///封面图处理失败
+ ///
+ [pbr::OriginalName("ERROR_ROM_FAIL_COVERIMG")] ErrorRomFailCoverimg = 91,
+ ///
///已经收藏
///
[pbr::OriginalName("ERROR_ROM_ALREADY_HAD_STAR")] ErrorRomAlreadyHadStar = 403,
diff --git a/AxibugEmuOnline.Web/Protobuf/ProtobufAxibugEmuOnline.cs b/AxibugEmuOnline.Web/Protobuf/ProtobufAxibugEmuOnline.cs
index cfbdda41..eb1d1a8c 100644
--- a/AxibugEmuOnline.Web/Protobuf/ProtobufAxibugEmuOnline.cs
+++ b/AxibugEmuOnline.Web/Protobuf/ProtobufAxibugEmuOnline.cs
@@ -144,36 +144,37 @@ namespace AxibugProtobuf {
"bnB1dBD/LhIPCgpDTURfU2NyZWVuENk2Eh8KGkNNRF9HQU1FU0FWX0dldEdh",
"bWVTYXZMaXN0EME+EhsKFkNNRF9HQU1FU0FWX0RlbEdhbWVTYXYQxT4SHgoZ",
"Q01EX0dBTUVTQVZfVXBsb2FkR2FtZVNhdhDKPhIeChlDTURfR0FNRVNDUkVF",
- "Tl9JTUdfVXBsb2FkEKlGEhIKDUNNRF9HQU1FX01BUksQ9U4qsgIKCUVycm9y",
+ "Tl9JTUdfVXBsb2FkEKlGEhIKDUNNRF9HQU1FX01BUksQ9U4qzwIKCUVycm9y",
"Q29kZRIQCgxFUlJPUl9ERUZBVUwQABIMCghFUlJPUl9PSxABEhgKFEVSUk9S",
"X1JPT01fTk9UX0ZPVU5EEAoSJwojRVJST1JfUk9PTV9TTE9UX0FMUkVBRExZ",
"X0hBRF9QTEFZRVIQCxIhCh1FUlJPUl9ST09NX0NBTlRfRE9fQ1VSUl9TVEFU",
"RRAyEh8KG0VSUk9SX1JPTV9ET05UX0hBRF9TQVZFREFUQRBQEhsKF0VSUk9S",
"X1JPTV9GQUlMX1NBVkVEQVRBEFESIgoeRVJST1JfUk9NX0FMUkVBRFlfSEFE",
- "X0NPVkVSSU1HEFoSHwoaRVJST1JfUk9NX0FMUkVBRFlfSEFEX1NUQVIQkwMS",
- "HAoXRVJST1JfUk9NX0RPTlRfSEFEX1NUQVIQlAMqQAoJTG9naW5UeXBlEg0K",
- "CVVzZURldmljZRAAEg4KClVzZUFjY291bnQQARIUChBVc2VIYW9ZdWVBY2Nv",
- "dW50EAIqpQEKCkRldmljZVR5cGUSFgoSRGV2aWNlVHlwZV9EZWZhdWx0EAAS",
- "BgoCUEMQARILCgdBbmRyb2lkEAISBwoDSU9TEAMSBwoDUFNWEAQSBwoDUFMz",
- "EAUSBwoDUFM0EAYSCwoHWEJPWDM2MBAHEgsKB1hCT1hPTkUQCBIICgRXaWlV",
- "EAkSDwoLTmludGVuZG8zRFMQChIRCg1BbmRyb2lkQ2FyQXBwEAsqkwIKC0dh",
- "bWVQYWRUeXBlEgwKCEtleWJvYXJkEAASEQoNR2xvYmFsR2FtZVBhZBABEg4K",
- "ClRvdWNoUGFuZWwQAhIOCgpEUzNDb250cm9sEAMSDgoKRFM0Q29udHJvbBAE",
- "Eg4KCkRTNUNvbnRyb2wQBRIUChBTd2l0Y2hQcm9Db250cm9sEAYSEAoMU3dp",
- "dGNoSm95Q29uEAcSEgoOWEJPWDM2MENvbnRyb2wQCBISCg5YQk9YT05FQ29u",
- "dHJvbBAJEhEKDVBTVml0YUNvbnRyb2wQChISCg5XaWlVUGFkQ29udHJvbBAL",
- "EhQKEFdpaVJlbW90ZUNvbnRyb2wQDBIWChJOaW50ZW5kbzNEU0NvbnRyb2wQ",
- "DSqDAgoPUm9tUGxhdGZvcm1UeXBlEgsKB0ludmFsaWQQABIHCgNOZXMQARIR",
- "Cg1NYXN0ZXJfU3lzdGVtEAISDQoJR2FtZV9HZWFyEAMSDAoIR2FtZV9Cb3kQ",
- "BBISCg5HYW1lX0JveV9Db2xvchAFEhEKDUNvbGVjb19WaXNpb24QBhILCgdT",
- "Q18zMDAwEAcSCwoHU0dfMTAwMBAIEgoKBk5FT0dFTxAUEgcKA0lHUxAVEggK",
- "BENQUzEQFhIICgRDUFMyEBcSDgoKQXJjYWRlX09MRBAeEg8KC1dvbmRlcl9T",
- "d2FuECgSFQoRV29uZGVyX1N3YW5fQ29sb3IQKRIICgNBbGwQ5wcqcAoNUm9v",
- "bUdhbWVTdGF0ZRISCg5Ob25lX0dhbWVTdGF0ZRAAEgwKCE9ubHlIb3N0EAES",
- "EQoNV2FpdFJhd1VwZGF0ZRACEg0KCVdhaXRSZWFkeRADEgkKBVBhdXNlEAQS",
- "EAoMSW5PbmxpbmVHYW1lEAUqTgoRTG9naW5SZXN1bHRTdGF0dXMSIQodTG9n",
- "aW5SZXN1bHRTdGF0dXNfQmFzZURlZmF1bHQQABIGCgJPSxABEg4KCkFjY291",
- "bnRFcnIQAkICSAFiBnByb3RvMw=="));
+ "X0NPVkVSSU1HEFoSGwoXRVJST1JfUk9NX0ZBSUxfQ09WRVJJTUcQWxIfChpF",
+ "UlJPUl9ST01fQUxSRUFEWV9IQURfU1RBUhCTAxIcChdFUlJPUl9ST01fRE9O",
+ "VF9IQURfU1RBUhCUAypACglMb2dpblR5cGUSDQoJVXNlRGV2aWNlEAASDgoK",
+ "VXNlQWNjb3VudBABEhQKEFVzZUhhb1l1ZUFjY291bnQQAiqlAQoKRGV2aWNl",
+ "VHlwZRIWChJEZXZpY2VUeXBlX0RlZmF1bHQQABIGCgJQQxABEgsKB0FuZHJv",
+ "aWQQAhIHCgNJT1MQAxIHCgNQU1YQBBIHCgNQUzMQBRIHCgNQUzQQBhILCgdY",
+ "Qk9YMzYwEAcSCwoHWEJPWE9ORRAIEggKBFdpaVUQCRIPCgtOaW50ZW5kbzNE",
+ "UxAKEhEKDUFuZHJvaWRDYXJBcHAQCyqTAgoLR2FtZVBhZFR5cGUSDAoIS2V5",
+ "Ym9hcmQQABIRCg1HbG9iYWxHYW1lUGFkEAESDgoKVG91Y2hQYW5lbBACEg4K",
+ "CkRTM0NvbnRyb2wQAxIOCgpEUzRDb250cm9sEAQSDgoKRFM1Q29udHJvbBAF",
+ "EhQKEFN3aXRjaFByb0NvbnRyb2wQBhIQCgxTd2l0Y2hKb3lDb24QBxISCg5Y",
+ "Qk9YMzYwQ29udHJvbBAIEhIKDlhCT1hPTkVDb250cm9sEAkSEQoNUFNWaXRh",
+ "Q29udHJvbBAKEhIKDldpaVVQYWRDb250cm9sEAsSFAoQV2lpUmVtb3RlQ29u",
+ "dHJvbBAMEhYKEk5pbnRlbmRvM0RTQ29udHJvbBANKoMCCg9Sb21QbGF0Zm9y",
+ "bVR5cGUSCwoHSW52YWxpZBAAEgcKA05lcxABEhEKDU1hc3Rlcl9TeXN0ZW0Q",
+ "AhINCglHYW1lX0dlYXIQAxIMCghHYW1lX0JveRAEEhIKDkdhbWVfQm95X0Nv",
+ "bG9yEAUSEQoNQ29sZWNvX1Zpc2lvbhAGEgsKB1NDXzMwMDAQBxILCgdTR18x",
+ "MDAwEAgSCgoGTkVPR0VPEBQSBwoDSUdTEBUSCAoEQ1BTMRAWEggKBENQUzIQ",
+ "FxIOCgpBcmNhZGVfT0xEEB4SDwoLV29uZGVyX1N3YW4QKBIVChFXb25kZXJf",
+ "U3dhbl9Db2xvchApEggKA0FsbBDnBypwCg1Sb29tR2FtZVN0YXRlEhIKDk5v",
+ "bmVfR2FtZVN0YXRlEAASDAoIT25seUhvc3QQARIRCg1XYWl0UmF3VXBkYXRl",
+ "EAISDQoJV2FpdFJlYWR5EAMSCQoFUGF1c2UQBBIQCgxJbk9ubGluZUdhbWUQ",
+ "BSpOChFMb2dpblJlc3VsdFN0YXR1cxIhCh1Mb2dpblJlc3VsdFN0YXR1c19C",
+ "YXNlRGVmYXVsdBAAEgYKAk9LEAESDgoKQWNjb3VudEVychACQgJIAWIGcHJv",
+ "dG8z"));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { },
new pbr::GeneratedClrTypeInfo(new[] {typeof(global::AxibugProtobuf.CommandID), typeof(global::AxibugProtobuf.ErrorCode), typeof(global::AxibugProtobuf.LoginType), typeof(global::AxibugProtobuf.DeviceType), typeof(global::AxibugProtobuf.GamePadType), typeof(global::AxibugProtobuf.RomPlatformType), typeof(global::AxibugProtobuf.RoomGameState), typeof(global::AxibugProtobuf.LoginResultStatus), }, null, new pbr::GeneratedClrTypeInfo[] {
@@ -406,7 +407,7 @@ namespace AxibugProtobuf {
///
[pbr::OriginalName("ERROR_ROM_DONT_HAD_SAVEDATA")] ErrorRomDontHadSavedata = 80,
///
- ///即时存档不存在
+ ///处理即时存档失败
///
[pbr::OriginalName("ERROR_ROM_FAIL_SAVEDATA")] ErrorRomFailSavedata = 81,
///
@@ -414,6 +415,10 @@ namespace AxibugProtobuf {
///
[pbr::OriginalName("ERROR_ROM_ALREADY_HAD_COVERIMG")] ErrorRomAlreadyHadCoverimg = 90,
///
+ ///封面图处理失败
+ ///
+ [pbr::OriginalName("ERROR_ROM_FAIL_COVERIMG")] ErrorRomFailCoverimg = 91,
+ ///
///已经收藏
///
[pbr::OriginalName("ERROR_ROM_ALREADY_HAD_STAR")] ErrorRomAlreadyHadStar = 403,
diff --git a/ProtobufCore/out/CS/ProtobufAxibugEmuOnline.cs b/ProtobufCore/out/CS/ProtobufAxibugEmuOnline.cs
index cfbdda41..eb1d1a8c 100644
--- a/ProtobufCore/out/CS/ProtobufAxibugEmuOnline.cs
+++ b/ProtobufCore/out/CS/ProtobufAxibugEmuOnline.cs
@@ -144,36 +144,37 @@ namespace AxibugProtobuf {
"bnB1dBD/LhIPCgpDTURfU2NyZWVuENk2Eh8KGkNNRF9HQU1FU0FWX0dldEdh",
"bWVTYXZMaXN0EME+EhsKFkNNRF9HQU1FU0FWX0RlbEdhbWVTYXYQxT4SHgoZ",
"Q01EX0dBTUVTQVZfVXBsb2FkR2FtZVNhdhDKPhIeChlDTURfR0FNRVNDUkVF",
- "Tl9JTUdfVXBsb2FkEKlGEhIKDUNNRF9HQU1FX01BUksQ9U4qsgIKCUVycm9y",
+ "Tl9JTUdfVXBsb2FkEKlGEhIKDUNNRF9HQU1FX01BUksQ9U4qzwIKCUVycm9y",
"Q29kZRIQCgxFUlJPUl9ERUZBVUwQABIMCghFUlJPUl9PSxABEhgKFEVSUk9S",
"X1JPT01fTk9UX0ZPVU5EEAoSJwojRVJST1JfUk9PTV9TTE9UX0FMUkVBRExZ",
"X0hBRF9QTEFZRVIQCxIhCh1FUlJPUl9ST09NX0NBTlRfRE9fQ1VSUl9TVEFU",
"RRAyEh8KG0VSUk9SX1JPTV9ET05UX0hBRF9TQVZFREFUQRBQEhsKF0VSUk9S",
"X1JPTV9GQUlMX1NBVkVEQVRBEFESIgoeRVJST1JfUk9NX0FMUkVBRFlfSEFE",
- "X0NPVkVSSU1HEFoSHwoaRVJST1JfUk9NX0FMUkVBRFlfSEFEX1NUQVIQkwMS",
- "HAoXRVJST1JfUk9NX0RPTlRfSEFEX1NUQVIQlAMqQAoJTG9naW5UeXBlEg0K",
- "CVVzZURldmljZRAAEg4KClVzZUFjY291bnQQARIUChBVc2VIYW9ZdWVBY2Nv",
- "dW50EAIqpQEKCkRldmljZVR5cGUSFgoSRGV2aWNlVHlwZV9EZWZhdWx0EAAS",
- "BgoCUEMQARILCgdBbmRyb2lkEAISBwoDSU9TEAMSBwoDUFNWEAQSBwoDUFMz",
- "EAUSBwoDUFM0EAYSCwoHWEJPWDM2MBAHEgsKB1hCT1hPTkUQCBIICgRXaWlV",
- "EAkSDwoLTmludGVuZG8zRFMQChIRCg1BbmRyb2lkQ2FyQXBwEAsqkwIKC0dh",
- "bWVQYWRUeXBlEgwKCEtleWJvYXJkEAASEQoNR2xvYmFsR2FtZVBhZBABEg4K",
- "ClRvdWNoUGFuZWwQAhIOCgpEUzNDb250cm9sEAMSDgoKRFM0Q29udHJvbBAE",
- "Eg4KCkRTNUNvbnRyb2wQBRIUChBTd2l0Y2hQcm9Db250cm9sEAYSEAoMU3dp",
- "dGNoSm95Q29uEAcSEgoOWEJPWDM2MENvbnRyb2wQCBISCg5YQk9YT05FQ29u",
- "dHJvbBAJEhEKDVBTVml0YUNvbnRyb2wQChISCg5XaWlVUGFkQ29udHJvbBAL",
- "EhQKEFdpaVJlbW90ZUNvbnRyb2wQDBIWChJOaW50ZW5kbzNEU0NvbnRyb2wQ",
- "DSqDAgoPUm9tUGxhdGZvcm1UeXBlEgsKB0ludmFsaWQQABIHCgNOZXMQARIR",
- "Cg1NYXN0ZXJfU3lzdGVtEAISDQoJR2FtZV9HZWFyEAMSDAoIR2FtZV9Cb3kQ",
- "BBISCg5HYW1lX0JveV9Db2xvchAFEhEKDUNvbGVjb19WaXNpb24QBhILCgdT",
- "Q18zMDAwEAcSCwoHU0dfMTAwMBAIEgoKBk5FT0dFTxAUEgcKA0lHUxAVEggK",
- "BENQUzEQFhIICgRDUFMyEBcSDgoKQXJjYWRlX09MRBAeEg8KC1dvbmRlcl9T",
- "d2FuECgSFQoRV29uZGVyX1N3YW5fQ29sb3IQKRIICgNBbGwQ5wcqcAoNUm9v",
- "bUdhbWVTdGF0ZRISCg5Ob25lX0dhbWVTdGF0ZRAAEgwKCE9ubHlIb3N0EAES",
- "EQoNV2FpdFJhd1VwZGF0ZRACEg0KCVdhaXRSZWFkeRADEgkKBVBhdXNlEAQS",
- "EAoMSW5PbmxpbmVHYW1lEAUqTgoRTG9naW5SZXN1bHRTdGF0dXMSIQodTG9n",
- "aW5SZXN1bHRTdGF0dXNfQmFzZURlZmF1bHQQABIGCgJPSxABEg4KCkFjY291",
- "bnRFcnIQAkICSAFiBnByb3RvMw=="));
+ "X0NPVkVSSU1HEFoSGwoXRVJST1JfUk9NX0ZBSUxfQ09WRVJJTUcQWxIfChpF",
+ "UlJPUl9ST01fQUxSRUFEWV9IQURfU1RBUhCTAxIcChdFUlJPUl9ST01fRE9O",
+ "VF9IQURfU1RBUhCUAypACglMb2dpblR5cGUSDQoJVXNlRGV2aWNlEAASDgoK",
+ "VXNlQWNjb3VudBABEhQKEFVzZUhhb1l1ZUFjY291bnQQAiqlAQoKRGV2aWNl",
+ "VHlwZRIWChJEZXZpY2VUeXBlX0RlZmF1bHQQABIGCgJQQxABEgsKB0FuZHJv",
+ "aWQQAhIHCgNJT1MQAxIHCgNQU1YQBBIHCgNQUzMQBRIHCgNQUzQQBhILCgdY",
+ "Qk9YMzYwEAcSCwoHWEJPWE9ORRAIEggKBFdpaVUQCRIPCgtOaW50ZW5kbzNE",
+ "UxAKEhEKDUFuZHJvaWRDYXJBcHAQCyqTAgoLR2FtZVBhZFR5cGUSDAoIS2V5",
+ "Ym9hcmQQABIRCg1HbG9iYWxHYW1lUGFkEAESDgoKVG91Y2hQYW5lbBACEg4K",
+ "CkRTM0NvbnRyb2wQAxIOCgpEUzRDb250cm9sEAQSDgoKRFM1Q29udHJvbBAF",
+ "EhQKEFN3aXRjaFByb0NvbnRyb2wQBhIQCgxTd2l0Y2hKb3lDb24QBxISCg5Y",
+ "Qk9YMzYwQ29udHJvbBAIEhIKDlhCT1hPTkVDb250cm9sEAkSEQoNUFNWaXRh",
+ "Q29udHJvbBAKEhIKDldpaVVQYWRDb250cm9sEAsSFAoQV2lpUmVtb3RlQ29u",
+ "dHJvbBAMEhYKEk5pbnRlbmRvM0RTQ29udHJvbBANKoMCCg9Sb21QbGF0Zm9y",
+ "bVR5cGUSCwoHSW52YWxpZBAAEgcKA05lcxABEhEKDU1hc3Rlcl9TeXN0ZW0Q",
+ "AhINCglHYW1lX0dlYXIQAxIMCghHYW1lX0JveRAEEhIKDkdhbWVfQm95X0Nv",
+ "bG9yEAUSEQoNQ29sZWNvX1Zpc2lvbhAGEgsKB1NDXzMwMDAQBxILCgdTR18x",
+ "MDAwEAgSCgoGTkVPR0VPEBQSBwoDSUdTEBUSCAoEQ1BTMRAWEggKBENQUzIQ",
+ "FxIOCgpBcmNhZGVfT0xEEB4SDwoLV29uZGVyX1N3YW4QKBIVChFXb25kZXJf",
+ "U3dhbl9Db2xvchApEggKA0FsbBDnBypwCg1Sb29tR2FtZVN0YXRlEhIKDk5v",
+ "bmVfR2FtZVN0YXRlEAASDAoIT25seUhvc3QQARIRCg1XYWl0UmF3VXBkYXRl",
+ "EAISDQoJV2FpdFJlYWR5EAMSCQoFUGF1c2UQBBIQCgxJbk9ubGluZUdhbWUQ",
+ "BSpOChFMb2dpblJlc3VsdFN0YXR1cxIhCh1Mb2dpblJlc3VsdFN0YXR1c19C",
+ "YXNlRGVmYXVsdBAAEgYKAk9LEAESDgoKQWNjb3VudEVychACQgJIAWIGcHJv",
+ "dG8z"));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { },
new pbr::GeneratedClrTypeInfo(new[] {typeof(global::AxibugProtobuf.CommandID), typeof(global::AxibugProtobuf.ErrorCode), typeof(global::AxibugProtobuf.LoginType), typeof(global::AxibugProtobuf.DeviceType), typeof(global::AxibugProtobuf.GamePadType), typeof(global::AxibugProtobuf.RomPlatformType), typeof(global::AxibugProtobuf.RoomGameState), typeof(global::AxibugProtobuf.LoginResultStatus), }, null, new pbr::GeneratedClrTypeInfo[] {
@@ -406,7 +407,7 @@ namespace AxibugProtobuf {
///
[pbr::OriginalName("ERROR_ROM_DONT_HAD_SAVEDATA")] ErrorRomDontHadSavedata = 80,
///
- ///即时存档不存在
+ ///处理即时存档失败
///
[pbr::OriginalName("ERROR_ROM_FAIL_SAVEDATA")] ErrorRomFailSavedata = 81,
///
@@ -414,6 +415,10 @@ namespace AxibugProtobuf {
///
[pbr::OriginalName("ERROR_ROM_ALREADY_HAD_COVERIMG")] ErrorRomAlreadyHadCoverimg = 90,
///
+ ///封面图处理失败
+ ///
+ [pbr::OriginalName("ERROR_ROM_FAIL_COVERIMG")] ErrorRomFailCoverimg = 91,
+ ///
///已经收藏
///
[pbr::OriginalName("ERROR_ROM_ALREADY_HAD_STAR")] ErrorRomAlreadyHadStar = 403,