feat(upserver): 保存M2客户端KV迁移至本人统计写检查点
保存独立KV用户服务、固定会话存档与原业务接线,以及C3d资料缓存和C3e本人统计写。 保留原PF/AGG路线、业务公式和时序;榜单读取、好友资料、公告、匹配及首场景闸仍待完成。 验证:ServiceHost两条件各33组646断言;Unity CLI Loop编译0错误269警告。 包含相关方案、评审裁决、测试及状态文档。未操作服务器、正式账号或打包。
This commit is contained in:
@@ -41,6 +41,7 @@ namespace GameCore
|
||||
}
|
||||
public class GuideDataCenter : IDisposable
|
||||
{
|
||||
[asap.core.Inject] public game.PlayerDataStorage.IPlayerSaveStore playerSaveStore { get; set; }
|
||||
Tables _tables;
|
||||
PlayerData playerData;
|
||||
public GuideDataCenter(cfg.Tables tables, PlayerData playerData)
|
||||
@@ -94,7 +95,10 @@ namespace GameCore
|
||||
}
|
||||
public async void Init()
|
||||
{
|
||||
guidanceDefineSetting = (GuidanceDefineSetting)await Addressables.LoadAssetAsync<object>("GuidanceConfig");
|
||||
var store = playerSaveStore;
|
||||
var setting = (GuidanceDefineSetting)await Addressables.LoadAssetAsync<object>("GuidanceConfig");
|
||||
if (disposed || !store.IsCurrent) return;
|
||||
guidanceDefineSetting = setting;
|
||||
if (guidanceDefineSetting != null)
|
||||
{
|
||||
bool isUpdate = false;
|
||||
@@ -495,7 +499,9 @@ namespace GameCore
|
||||
}
|
||||
async void TriggerGuide(string groupName, string curPanelName, GuidanceGroupDefine guidanceGroupDefine)
|
||||
{
|
||||
var store = playerSaveStore;
|
||||
await System.Threading.Tasks.Task.Delay(200);
|
||||
if (disposed || !store.IsCurrent) return;
|
||||
curSaveData = new GuideSaveData();
|
||||
curSaveData.groupName = groupName;
|
||||
GuideSaveDataDic[groupName] = curSaveData;
|
||||
@@ -642,6 +648,7 @@ namespace GameCore
|
||||
}
|
||||
async void ShowPanel(string PanelName)
|
||||
{
|
||||
if (disposed || !playerSaveStore.IsCurrent) return;
|
||||
if (curDefine.fingerType != FingerType.None)
|
||||
{
|
||||
disposable3 = GContext.OnEvent<GuideNextEvent>().Subscribe(GuideNextEvent);
|
||||
@@ -652,10 +659,13 @@ namespace GameCore
|
||||
|
||||
public async void ShowGuidancePopupPanel(string nodeName)
|
||||
{
|
||||
var store = playerSaveStore;
|
||||
if (disposed || !store.IsCurrent) return;
|
||||
popupPanelNode = nodeName;
|
||||
if (!string.IsNullOrEmpty(popupPanelNode))
|
||||
{
|
||||
await UIManager.Instance.ShowUI(UITypes.GuidancePopupPanel);
|
||||
if (disposed || !store.IsCurrent) return;
|
||||
UIManager.Instance.HideUI(UITypes.GuidancePanel);
|
||||
}
|
||||
}
|
||||
@@ -712,11 +722,13 @@ namespace GameCore
|
||||
{
|
||||
List<string> strings = GuideSaveDataDic.Select(kv => kv.Key + "|" + kv.Value.guideSubIndex + "|" + (kv.Value.isFinish ? "1" : "0")).ToList();
|
||||
string value = string.Join(";", strings);
|
||||
PlayFabMgr.Instance.UpdateUserDataValue("GuideSaveDataNew", value);
|
||||
playerSaveStore.Write("GuideSaveDataNew", value).RequireAccepted();
|
||||
}
|
||||
|
||||
bool disposed;
|
||||
public void Dispose()
|
||||
{
|
||||
disposed = true;
|
||||
disposable?.Dispose();
|
||||
disposable = null;
|
||||
disposable2?.Dispose();
|
||||
|
||||
Reference in New Issue
Block a user