Files
ft/CodexOutput/upserver/Gameplay101Validation/首次运行结果与引导阻塞.md

66 lines
8.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 101首次运行结果与引导阻塞
2026-09-28,主会话。**101真实登录与历史档加载成功;动作前发现未完成的EventPotion01活动引导,按已评审方案停止本次玩法。未抛竿、未扣费、未领奖,收鱼和新进程恢复尚未完成。** 本轮生产代码零改动,不需要对现有代码重复实施复核;后续若扩大到活动引导业务,须先给出具体路径和最小补充方案。
## 运行与证据
用户已确认101其他客户端停用;31项受审hash再次一致。进程 `90064_639261625195875237` 原无run/claim,建立v3许可后仅一次Play。
| 环节 | 结果/证据 |
|---|---|
| S0 07:56:11Z | `KVGameplayLoopTests/backups/20260928T075611Z`,10155键与D导入after逐值及UTF8 hash/长度55/55相同,见S0-reconciliation.json。 |
| 当前解码 | checkpoint0-decode.json:与S0原值相同的PF源在当前配置诊断Valid/0;这是本地合成描述符诊断。后续真实登录加载成功为另一个运行证据。 |
| 登录 07:57:46Z | ready,PlayerId101,Error=null;实际金币36550472、装备20001,与历史主档相符。固定API检查通过;PF身份登录成功,无本次错误日志。 |
| 动作前 07:58:05Z | unlockedMag/Strike=true、frequency31、cruise=-1,无collectingTarget/piggy/bargain/challenge;但guideNode/guideGroup均true。 |
| S1 07:58:23Z | 101仍55键且当时与S0原值相同;此时登录保存尚未在此快照反映,**不能当作登录写已确认的合格动作基线**。没有通知用户抛竿。 |
| 阻塞定位 | checkpoint1-guide-detail-corrected.json:EventPotion01,EventPotionPanel,节点“正确的位置”,按钮root_main/PotionScrollView/Container/Data_Item-0/gild_group/gild1,文本GuidePotion_02。截图Rendering_20260928_155846_096.png另显示签到弹窗,未点击“收下”。 |
| 正常退出 | 07:59:26.7902335Z出现closed,已走QuitStage和bridge drain;未强制停止。 |
| 停止后最终快照 07:59:50Z | `KVGameplayLoopTests/backups/20260928T075950Z`。这是失败分支取证快照,**不是新进程恢复S3**。 |
| 最终状态 | playing=false、ready=false、Error=null、无permit;Enabled=true为该进程静态运行标志残留,不代表仍可开始业务。11旧claim一致,新claim保留;下一次必须新进程。 |
采样小片段首次出现JsonConvert重复类型引用及错误的energy成员名,编译阶段未执行;改成既有公开成员的只读匿名结果后成功,原失败证据保留。不是生产代码编译错误或业务运行异常。
## 为什么停止
原档GuideSaveDataNew已有 `EventPotion01|4|0`,最终仍保持原值。`DataCenter.GuideData.cs` 的Init恢复未完成引导,设置curGroupDefine/curDefine;此次只读采样证实运行时恢复了EventPotion01。
`UserService.KVFishingReward.cs:58` 的CheckRewardGuide要求当前没有活动引导;本包方案§5也明确这一条件。因此主会话在抛竿前停止,**没有为了生成拒绝异常再调用钓鱼入口**。现有证据不支持把它说成新迁移代码导致的异常,也不证明药水活动引导能在当前活动时间下正常完成。
## 保存对账与影响
最终101仍55键,仅两键原值不同;其余53键(包括GuideSaveDataNew、全部鱼档及未知键)保持。见final-reconciliation.json。
- ShopPackBuyCount:`{"0":264}`→`{"0":270}`。`DataCenter.PlayerShopData.cs:683` InitShopPackData按DayOfYear重置,与本次日期匹配。
- NewPlayerDataDic:newData的19槽字符串完全不变,所以金币36550472、体力7275、EnergyRM7231、钓鱼31/累计147未变。其内vipL基准337→343、滚动槽平移6天,对应PlayerData.UpdateVIPScoreDic;ad登录统计19由17/264→18/270,对应AchievementDataManager登录日更新;rt活动30301021→30301027,后者配置时间2026/9/27 18:00至9/28 18:00,符合现有AllRefresh活动刷新。未点击签到,不能把这些登录更新算成钓鱼奖励。
游戏审计接受3次保存(ShopPackBuyCount、GuideSaveDataNew、NewPlayerDataDic),最终三个值hash全部等于各自write-attempt;其中GuideSaveDataNew是同值保存。最终cache baseline55键与服务器快照逐值相同,pending=0、activeBatch=null、unknownBatch=null,closed=1,fishing事件=0,见final-save-and-scope-verification.json。接受次数不冒充HTTP Set次数。
三轮备份工具合计6登录+6Get、KV Set/Delete=0;游戏另外执行PF身份/s101登录、加载和保存,不能声称整个会话无写或无PF访问。未做全流量抓包,不声称完整HTTP请求计数。102三次45键快照逐值相同,未在游戏登录102。
## 下一步与边界
本次运行结束,101停用窗口到此结束;已退役的许可不复用,不回灌S0覆盖本次合法登录更新。
下一步仍由主会话处理:检查EventPotion01在当前活动周期的正常恢复/完成路径、涉及键和消耗,再形成一次最小补充方案。该范围应覆盖引导处理后继续普通钓鱼和恢复的整个剩余闭环,不再拆成取证、准备、单次点击等小评审。不能直接改GuideSaveDataNew为完成、清空引导指针或放宽钓鱼门。也不应让用户盲点活动或签到来试错。
若需恢复运行,新的起点必须是当前最终服务器存档并重新核对,而非原D导入after。原方案S0等于D-after的前提已经被合法登录写推进,补充方案需明确引用本次最终快照及两键差异。此次没有请求对失败现场再单独开一轮实施复核;完整业务包仍未关闭。
## 用户拟手动接管(2026-09-28)
用户表示“我来手动操作”;后续界面点击交给用户,不以脚本替代操作。当前编辑器已经退出Play,旧permit退役,不能直接复用90064启动。
只读核查:药水业务SyncData写epdk,该键已在101的55键中;HomeBtnPotion依赖GetEvent(4,5),无活动时隐藏入口;EventPotionPanel.InitGuidance进入面板后才根据关卡状态正常结束/恢复引导。旧档epdk.EventID=40000186;本地cfgData/tbfishingevent.json没有此ID,24条Type4/SubType5记录中最后结束日为2026-04-12。此为本地配置证据,不能在未核游戏实际加载表前断言当前UI必定无入口;不能通过修改活动时间或强开面板来替代真实路径。未重启/建立新permit/进入Play,代码和存档均未修改。
## 2026-09-28 用户手动Play登录失败诊断
只读CLI实测当前90064已再次Play,Enabled=false/Ready=false/无permit;实际SaveBackend默认playfab,配置CustomID和PlayFabUserService.CustomId均为空,EventApiURL仍正确为http://s101.local:18080/。界面显示“请检查网络连接然后重试/登录失败”,Console Error=0。
PFLoginAct从配置取空ID;UserService.LoginWithBackend在正整数账号检查处直接返回ELoginStep.Api,未进入本次LoginCore网络调用。当前“网络”文字是通用失败提示,根因是手动接管时未恢复正确账号/KV入口。此前101成功登录和药水引导阻塞是另一轮运行,不应混为同一问题。
主会话退役临时许可后未完成手动接管配置,是本次流程衔接缺口。不能只填101让其使用默认PF存档;恢复迁移档操作需正确KV入口及新的进程许可。当前仅诊断,未改代码/配置、未重试登录、未主动停止用户Play。证据:Gameplay101Validation/user-login-question-{state,all-logs,errors,config,cause,screen}.json及Rendering_20260928_161223_576.png。
## 2026-09-28 用户确认界面无药水引导:实测后台残留
用户说明当前没有药水引导,主会话重新只读检查:账号101已登录,KV ready=true;curDefine/curGroupDefine非空且指向EventPotion01/EventPotionPanel,CurPanelName为空,GetEvent(4,5)=-1。证据no-visible-guide-check.json。界面无引导与后台有历史恢复指针同时成立;此前要求用户手动完成药水引导不准确,不能继续要求用户寻找不存在的活动入口。
具体拦截点是UserService.KVFishingReward.cs的CheckRewardGuide,用任一引导指针非空直接拒绝。GuideDataCenter.Init可恢复历史未完成指针,而TriggerGuideNext会按目标面板匹配才推进,不能简单把非空等价于当前可见引导。最小修正需要同时核对残留指针对钓鱼通知的影响,不能直接删除全部引导保护,也不通过改存档完成标记处理。本轮没有修改代码、引导状态或存档,未触发抛竿。
下一步应由主会话形成并提交针对“不可用活动的不可见残留引导”的最小修正方案,完整评审后编码。当前仍保持已登录主页供用户查看,原业务包未完成,不再等待用户完成药水活动。