feat(upserver): 保存M2客户端KV迁移至本人统计写检查点
保存独立KV用户服务、固定会话存档与原业务接线,以及C3d资料缓存和C3e本人统计写。 保留原PF/AGG路线、业务公式和时序;榜单读取、好友资料、公告、匹配及首场景闸仍待完成。 验证:ServiceHost两条件各33组646断言;Unity CLI Loop编译0错误269警告。 包含相关方案、评审裁决、测试及状态文档。未操作服务器、正式账号或打包。
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
using Activity.Services;
|
||||
using Activity.Services;
|
||||
using asap.core;
|
||||
using Assets.Scripts.UI.SocialRush;
|
||||
using cfg;
|
||||
@@ -56,6 +56,17 @@ namespace GameCore
|
||||
{
|
||||
public partial class FishingEventData : IDisposable
|
||||
{
|
||||
game.PlayerDataStorage.IPlayerSaveStore boundSaveStore;
|
||||
[Inject] public game.PlayerDataStorage.IPlayerSaveStore playerSaveStore
|
||||
{
|
||||
get => boundSaveStore;
|
||||
set
|
||||
{
|
||||
ThanksGivingPackData.BindSaveStore(value);
|
||||
ChainPackWithProgressMigrationData.BindSaveStore(value);
|
||||
boundSaveStore = value;
|
||||
}
|
||||
}
|
||||
private cfg.Tables _tables;
|
||||
private MMTService _mmtService;
|
||||
private IEventTokenService _eventTokenService;
|
||||
@@ -578,7 +589,7 @@ namespace GameCore
|
||||
id = t.ID,
|
||||
endTime = ZZTimeHelper.UtcNow().UtcNowOffset().AddSeconds(fixedTime.StartTime).ToString(),
|
||||
};
|
||||
PlayFabMgr.Instance.UpdateUserDataValue("FixedTimeEventDic", JsonMapper.ToJson(fixedTimeEventDic));
|
||||
playerSaveStore.Write("FixedTimeEventDic", JsonMapper.ToJson(fixedTimeEventDic)).RequireAccepted();
|
||||
}
|
||||
}
|
||||
switch (t.Type)
|
||||
@@ -846,7 +857,7 @@ namespace GameCore
|
||||
|
||||
private bool Condition_NoRechargeSeconds(int timeSeconds)
|
||||
{
|
||||
var lastPaymentStr = PlayFabMgr.Instance.GetLocalData("LastPaymentTime");
|
||||
var lastPaymentStr = playerSaveStore.Read("LastPaymentTime").ValueOrThrow();
|
||||
DateTime curTime = ZZTimeHelper.UtcNow().UtcNowOffset();
|
||||
DateTime endTime = curTime;
|
||||
if (string.IsNullOrEmpty(lastPaymentStr) || !lastPaymentStr.Contains("__"))
|
||||
@@ -866,7 +877,8 @@ namespace GameCore
|
||||
}
|
||||
public static bool Condition_NoRechargeDay(int timeDay = 7)
|
||||
{
|
||||
var lastPaymentStr = PlayFabMgr.Instance.GetLocalData("LastPaymentTime");
|
||||
var store = GContext.container.Resolve<FishingEventData>().playerSaveStore;
|
||||
var lastPaymentStr = store.Read("LastPaymentTime").ValueOrThrow();
|
||||
if (!string.IsNullOrEmpty(lastPaymentStr) && lastPaymentStr.Contains("__"))
|
||||
return false;
|
||||
DateTime curTime = ZZTimeHelper.UtcNow();
|
||||
@@ -1052,7 +1064,7 @@ namespace GameCore
|
||||
case 2:
|
||||
// Debug.Log($"[EventBreak] Id {e.ID} activated.");
|
||||
EventBreakAct.Ctx = EventBreakTableContext.ReadTables(e.ID, GContext.container.Resolve<Tables>());
|
||||
var playfabData = EventBreakPfData.Deserialize(PlayFabMgr.Instance.GetLocalData(EventBreakPfData.PfKey));
|
||||
var playfabData = EventBreakPfData.Deserialize(playerSaveStore.Read(EventBreakPfData.PfKey).ValueOrThrow());
|
||||
var eventBreakModel = GContext.container.Resolve<DrillModel>();
|
||||
if (eventBreakModel == null)
|
||||
{
|
||||
@@ -1074,7 +1086,7 @@ namespace GameCore
|
||||
break;
|
||||
case 4:
|
||||
var canModel = GContext.container.Resolve<EventCanModel>();
|
||||
var ecPlayfabString = PlayFabMgr.Instance.GetLocalData(EventCanPlayfabData.PlayFabKey);
|
||||
var ecPlayfabString = playerSaveStore.Read(EventCanPlayfabData.PlayFabKey).ValueOrThrow();
|
||||
var ecPpString = PlayerPrefs.GetString(EventCanPlayerPreferenceData.PlayerPrefsKey);
|
||||
var ecPlayfabData = EventCanPlayfabData.Deserialize(ecPlayfabString);
|
||||
var ecPlayerPrefsData = EventCanPlayerPreferenceData.Deserialize(ecPpString);
|
||||
@@ -1150,7 +1162,7 @@ namespace GameCore
|
||||
SetTurntable(t);
|
||||
break;
|
||||
case 3:
|
||||
var pfString = PlayFabMgr.Instance.GetLocalData(EventLuckMagicPlayfabData.Key);
|
||||
var pfString = playerSaveStore.Read(EventLuckMagicPlayfabData.Key).ValueOrThrow();
|
||||
var pfData = EventLuckMagicPlayfabData.Deserialize(pfString);
|
||||
var ppString = PlayerPrefs.GetString(EventLuckMagicPlayerPreferenceData.Key);
|
||||
var ppData = EventLuckMagicPlayerPreferenceData.Deserialize(ppString);
|
||||
@@ -1339,7 +1351,7 @@ namespace GameCore
|
||||
SaveTransitionData(turntableEvent.ID, TurntableCoupon);
|
||||
}
|
||||
TurntableRed();
|
||||
PlayFabMgr.Instance.UpdateUserDataValue("TurntableRoll", TurntableCoupon.ToString());
|
||||
playerSaveStore.Write("TurntableRoll", TurntableCoupon.ToString()).RequireAccepted();
|
||||
}
|
||||
public void RewardTurntableRoll(int value, bool remote = true)
|
||||
{
|
||||
@@ -1358,7 +1370,7 @@ namespace GameCore
|
||||
.AddContent("change_num", value);
|
||||
}
|
||||
#endif
|
||||
PlayFabMgr.Instance.UpdateUserDataValue("TurntableRoll", TurntableCoupon.ToString(), remote);
|
||||
playerSaveStore.Write("TurntableRoll", TurntableCoupon.ToString(), remote).RequireAccepted();
|
||||
}
|
||||
|
||||
public void TurntableRed()
|
||||
@@ -1443,7 +1455,7 @@ namespace GameCore
|
||||
|
||||
void SetLimitedTimeEventDic()
|
||||
{
|
||||
PlayFabMgr.Instance.UpdateUserDataValue("LimitedTimeEventDic", Newtonsoft.Json.JsonConvert.SerializeObject(limitedTimeEventDic));
|
||||
playerSaveStore.Write("LimitedTimeEventDic", Newtonsoft.Json.JsonConvert.SerializeObject(limitedTimeEventDic)).RequireAccepted();
|
||||
}
|
||||
|
||||
#region 目标奖励活动
|
||||
@@ -1615,10 +1627,14 @@ namespace GameCore
|
||||
|
||||
public async Task<bool> CheckResourceLoadQueue(string key, List<string> label)
|
||||
{
|
||||
var store = playerSaveStore;
|
||||
if (!store.IsCurrent) return false;
|
||||
if (!collectingTargetResoure)
|
||||
{
|
||||
ILoadResourceService loadResourceService = GContext.container.Resolve<ILoadResourceService>();
|
||||
collectingTargetResoure = await loadResourceService.CheckResourceLoadQueue(key, label);
|
||||
var loaded = await loadResourceService.CheckResourceLoadQueue(key, label);
|
||||
if (!store.IsCurrent) return false;
|
||||
collectingTargetResoure = loaded;
|
||||
}
|
||||
return collectingTargetResoure;
|
||||
}
|
||||
@@ -2241,8 +2257,8 @@ namespace GameCore
|
||||
|
||||
public void UpdateTurnTableData()
|
||||
{
|
||||
PlayFabMgr.Instance.UpdateUserDataValue("WheelLevelCount", JsonMapper.ToJson(WheelLevelCount));
|
||||
PlayFabMgr.Instance.UpdateUserDataValue("WheelLevelFreeCount", freecount.ToString());
|
||||
playerSaveStore.Write("WheelLevelCount", JsonMapper.ToJson(WheelLevelCount)).RequireAccepted();
|
||||
playerSaveStore.Write("WheelLevelFreeCount", freecount.ToString()).RequireAccepted();
|
||||
}
|
||||
/// <summary>
|
||||
/// Add item by dropId and multiplier, or just return that item without giving to player, if doAdd is false.
|
||||
@@ -2263,10 +2279,10 @@ namespace GameCore
|
||||
{
|
||||
IncreaseScore(score * multiplier);
|
||||
WheelOperateCount++;
|
||||
PlayFabMgr.Instance.UpdateUserDataValue("WheelOperateCount", WheelOperateCount.ToString());
|
||||
playerSaveStore.Write("WheelOperateCount", WheelOperateCount.ToString()).RequireAccepted();
|
||||
AllWheelOperateCount += multiplier;
|
||||
|
||||
PlayFabMgr.Instance.UpdateUserDataValue("AllWheelOperateCount", AllWheelOperateCount.ToString());
|
||||
playerSaveStore.Write("AllWheelOperateCount", AllWheelOperateCount.ToString()).RequireAccepted();
|
||||
}
|
||||
public void IncreaseScore(int score)
|
||||
{
|
||||
@@ -2283,7 +2299,7 @@ namespace GameCore
|
||||
}
|
||||
else
|
||||
{
|
||||
PlayFabMgr.Instance.UpdateUserDataValue("WheelLevelCount", JsonMapper.ToJson(WheelLevelCount));
|
||||
playerSaveStore.Write("WheelLevelCount", JsonMapper.ToJson(WheelLevelCount)).RequireAccepted();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -2305,7 +2321,7 @@ namespace GameCore
|
||||
{
|
||||
freecount = 0;
|
||||
}
|
||||
PlayFabMgr.Instance.UpdateUserDataValue("WheelLevelFreeCount", freecount.ToString());
|
||||
playerSaveStore.Write("WheelLevelFreeCount", freecount.ToString()).RequireAccepted();
|
||||
}
|
||||
//转盘等级增加函数
|
||||
public void IncreaseWheelLevel()
|
||||
@@ -2325,7 +2341,7 @@ namespace GameCore
|
||||
// 更新积分进度
|
||||
WheelLevelCount[wheelLevel.Level] = progress;
|
||||
TurntableRed();
|
||||
PlayFabMgr.Instance.UpdateUserDataValue("WheelLevelCount", JsonMapper.ToJson(WheelLevelCount));
|
||||
playerSaveStore.Write("WheelLevelCount", JsonMapper.ToJson(WheelLevelCount)).RequireAccepted();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user