|
@@ -27,32 +27,31 @@ public class CloudSaveManager : Singleton<CloudSaveManager>
|
|
|
{
|
|
{
|
|
|
// 获取存档列表
|
|
// 获取存档列表
|
|
|
List<ArchiveData> archives = await TapTapCloudSave.GetArchiveList();
|
|
List<ArchiveData> archives = await TapTapCloudSave.GetArchiveList();
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
- if (archives != null && archives.Count > 0)
|
|
|
|
|
|
|
+ await AccountFileInfo.Instance.LoadPlayerData();
|
|
|
|
|
+ //如果没有本地文件看有存档没有
|
|
|
|
|
+ if (!File.Exists(AccountFileInfo.Instance.persistentDataPath) ||
|
|
|
|
|
+ AccountFileInfo.Instance.playerData.Uuid == String.Empty ||
|
|
|
|
|
+ archives.Find(a => a.Uuid == AccountFileInfo.Instance.playerData.Uuid) == null)
|
|
|
{
|
|
{
|
|
|
- // 存在存档,加载第一个存档
|
|
|
|
|
- ArchiveData archive = archives[0];
|
|
|
|
|
-
|
|
|
|
|
- if (archive == null || string.IsNullOrEmpty(archive.Uuid) || archive.Uuid.Length > 64)
|
|
|
|
|
|
|
+ //有存档就读取第一个存档
|
|
|
|
|
+ if (archives != null && archives.Count > 0)
|
|
|
{
|
|
{
|
|
|
|
|
+ ArchiveData archive = archives[0];
|
|
|
|
|
+ AccountFileInfo.Instance.playerData.Uuid = archive.Uuid;
|
|
|
|
|
+ await LoadArchiveAsync();
|
|
|
AccountFileInfo.Instance.LoadPlayerData();
|
|
AccountFileInfo.Instance.LoadPlayerData();
|
|
|
- // 创建新存档
|
|
|
|
|
|
|
+ AccountFileInfo.Instance.playerData.Uuid = archive.Uuid;
|
|
|
|
|
+ }
|
|
|
|
|
+ else
|
|
|
|
|
+ {
|
|
|
|
|
+ await AccountFileInfo.Instance.ClearPlayerData();
|
|
|
await CreateArchiveAsync();
|
|
await CreateArchiveAsync();
|
|
|
- return;
|
|
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
- PlayerManager.Instance.Uuid = archive.Uuid;
|
|
|
|
|
- await LoadArchiveAsync();
|
|
|
|
|
- AccountFileInfo.Instance.LoadPlayerData();
|
|
|
|
|
}
|
|
}
|
|
|
|
|
+ //有数据直接读取本地数据 然后更新一次存档避免上次游戏没有更新
|
|
|
else
|
|
else
|
|
|
{
|
|
{
|
|
|
- // 无存档,创建新存档
|
|
|
|
|
-
|
|
|
|
|
- AccountFileInfo.Instance.LoadPlayerData();
|
|
|
|
|
- await CreateArchiveAsync();
|
|
|
|
|
|
|
+ UpdateArchiveAsync();
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
catch (TapException ex)
|
|
catch (TapException ex)
|
|
@@ -86,7 +85,7 @@ public class CloudSaveManager : Singleton<CloudSaveManager>
|
|
|
ArchiveData createdArchive =
|
|
ArchiveData createdArchive =
|
|
|
await TapTapCloudSave.CreateArchive(metadata, AccountFileInfo.Instance.persistentDataPath, null);
|
|
await TapTapCloudSave.CreateArchive(metadata, AccountFileInfo.Instance.persistentDataPath, null);
|
|
|
AccountFileInfo.Instance.lasetSaveTime = System.DateTime.Now.Ticks;
|
|
AccountFileInfo.Instance.lasetSaveTime = System.DateTime.Now.Ticks;
|
|
|
- PlayerManager.Instance.Uuid = createdArchive.Uuid;
|
|
|
|
|
|
|
+ AccountFileInfo.Instance.playerData.Uuid = createdArchive.Uuid;
|
|
|
LogTool.Error($"存档创建成功,UUID: {createdArchive.Uuid}");
|
|
LogTool.Error($"存档创建成功,UUID: {createdArchive.Uuid}");
|
|
|
|
|
|
|
|
return createdArchive.Uuid;
|
|
return createdArchive.Uuid;
|
|
@@ -106,7 +105,7 @@ public class CloudSaveManager : Singleton<CloudSaveManager>
|
|
|
// 更新存档
|
|
// 更新存档
|
|
|
public async CTask UpdateArchiveAsync()
|
|
public async CTask UpdateArchiveAsync()
|
|
|
{
|
|
{
|
|
|
- if (PlayerManager.Instance.Uuid == "")
|
|
|
|
|
|
|
+ if (AccountFileInfo.Instance.playerData.Uuid == "")
|
|
|
return;
|
|
return;
|
|
|
try
|
|
try
|
|
|
{
|
|
{
|
|
@@ -120,7 +119,7 @@ public class CloudSaveManager : Singleton<CloudSaveManager>
|
|
|
|
|
|
|
|
// 更新存档
|
|
// 更新存档
|
|
|
ArchiveData updatedArchive =
|
|
ArchiveData updatedArchive =
|
|
|
- await TapTapCloudSave.UpdateArchive(PlayerManager.Instance.Uuid, metadata,
|
|
|
|
|
|
|
+ await TapTapCloudSave.UpdateArchive(AccountFileInfo.Instance.playerData.Uuid, metadata,
|
|
|
AccountFileInfo.Instance.persistentDataPath,
|
|
AccountFileInfo.Instance.persistentDataPath,
|
|
|
null);
|
|
null);
|
|
|
LogTool.Log($"存档更新成功,UUID: {updatedArchive.Uuid}");
|
|
LogTool.Log($"存档更新成功,UUID: {updatedArchive.Uuid}");
|
|
@@ -145,11 +144,16 @@ public class CloudSaveManager : Singleton<CloudSaveManager>
|
|
|
// 获取存档列表
|
|
// 获取存档列表
|
|
|
List<ArchiveData> archives = await TapTapCloudSave.GetArchiveList();
|
|
List<ArchiveData> archives = await TapTapCloudSave.GetArchiveList();
|
|
|
|
|
|
|
|
- ArchiveData archive = archives[0];
|
|
|
|
|
|
|
+ ArchiveData archive = archives.Find(a => a.Uuid == AccountFileInfo.Instance.playerData.Uuid);
|
|
|
|
|
+ if (archive == null)
|
|
|
|
|
+ {
|
|
|
|
|
+ LogTool.Error("没有查询到指定uuid存档");
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
// 下载存档文件
|
|
// 下载存档文件
|
|
|
|
|
|
|
|
byte[] data =
|
|
byte[] data =
|
|
|
- await TapTapCloudSave.GetArchiveData(PlayerManager.Instance.Uuid,
|
|
|
|
|
|
|
+ await TapTapCloudSave.GetArchiveData(AccountFileInfo.Instance.playerData.Uuid,
|
|
|
archive.FileId);
|
|
archive.FileId);
|
|
|
|
|
|
|
|
string str1 = Encoding.UTF8.GetString(data);
|
|
string str1 = Encoding.UTF8.GetString(data);
|