# 101真实收鱼闭环及药水引导最小修正:实施交付 2026-09-28,主会话。状态:实施、约定回归及真实闭环执行完成,待一次独立实施/执行复核;尚未正式关闭本业务包。 ## 1. 结果与范围 101既有55键历史档已在真实游戏完成一次抛竿→拉杆收鱼→收下回主页→正常退出→新Unity进程恢复。鱼10231、金币+1845、体力−5保存并恢复成功;不可用药水活动的历史引导没有被误标完成。只改两个批准源码文件,没有删除钓鱼准入门、改配置/资源、改存档以绕过引导或重复付费。 批准依据:原《101真实玩法与迁移档恢复业务包》及补充《不可用药水引导恢复最小修正方案》;补充独立审查PASS,主会话19/19受审hash一致,七项及两条P3全部裁决接受。见本目录[裁决与实施记录](不可用药水引导修正裁决与实施记录.md)。本次交付仅证明101这一条Editor KV普通玩法链;不等于完整迁移、全部活动或G4通过。 ## 2. 代码改了什么 | 文件(项目根相对路径) | 改动及边界 | |---|---| | Client/Assets/Scripts/DataCenter/DataCenter.GuideData.cs | Init取出现有save后增加一个延期分支及私有只读判断。仅UNITY_EDITOR且非SERVICE_HOST、KV Enabled/Ready、EventPotion01有效未完成且索引>0、实际节点panelName=EventPotionPanel、GetEvent(4,5)严格=-1时保留同一save到新字典并continue。不改isUpdate/存档进度、不额外Save、不清其他当前指针。活动查询异常记录具体警告并走原恢复。4/5具名。 | | Client/Assets/Scripts/Services/UserService.KVFishingRewardValidation.cs | 原奖励固定验证内新增10组实际Init及回调案例;使用真实101参考档/GuidanceConfig、隔离容器/mock存储。临时设置原异步库Edit Mode上下文并恢复,预加载资源;恢复资源定义/runner/静态上下文/容器。原45组验证保留。 | 修改前原件在before-guide-fix/,对应原受审hash。guide-implementation-hashes.json证明仅批准两文件改变,其他17项保持。CheckRewardGuide、费用、奖励、配置/预制体/场景均未因本次修正修改;更早阶段工作区改动不归入本次差异。 ## 3. 红绿与回归 | 验证 | 结果/证据 | |---|---| | 有效红测 | guide-red-result3.json:真实Init完成且无异步错误后,失败于“unavailable historical potion guide is not activated by actual Init”。当时生产文件仍为原件。 | | 奖励全组 | guide-green-result.json:55组243断言(原45组171+新增10组72),formalRequests=0。 | | 消费回归 | guide-regressions.json:19组81断言,restored=true。 | | M09/M10/M12 | 同上,12断言通过。 | | B2-20真实31模块双epoch | 同上,83断言通过,restored=true。 | | Editor编译 | guide-green-compile.json:0错误、272既有警告。 | | SERVICE_HOST编译 | guide-service-host.rsp/.log,exit0、0错误;HotUpdate.guide.service-host.dll。未打包。 | 共419条断言。新案例覆盖无活动真实101、可用活动、查询失败、节点Panel不匹配、EventPotion02、完成/索引0/无存档/越界及保留其他指针;实际AddIndex(true)/GuideNextEvent不会改药水存档。初次两轮夹具在目标断言前失败(PF静态赋值先后/原异步库Edit Mode上下文缺失)不算红测,原记录保留。未改第三方DLL或生产加载方式。 ## 4. 两个实际进程与快照 正式API固定http://s101.local:18080/;Unity CLI Loop,手动游戏输入由用户执行。101其他客户端停用确认沿用本连续业务包,不沿用早先导入窗口。 | 角色 | 进程/运行目录(KVGameplayLoopTests/runs下) | 结果 | |---|---|---| | 一次收鱼v3 | 55088_639261837988243647 | 09:19:26Z ready;09:21:37Z扣费确认;09:21:54Z奖励确认并呈现;09:23:42Z正常closed。 | | 新进程恢复v1 | 130200_639261843009600548 | 09:28:49Z ready;55键读取匹配且运行时数据正确;09:29:30Z正常closed,无钓鱼事件。 | 全部快照位于KVGameplayLoopTests/backups/: | 快照 | 目录 | 用途及比较 | |---|---|---| | 修正后S0 | 20260928T091527Z | 10155键,与修正前正常退出最终085931Z一致。不是回滚至D导入档。 | | 动作前S1 | 20260928T092018Z | 登录/签到后,抛竿前冻结;全55键与cache匹配,pending0。 | | 额外奖励后取证 | 20260928T092245Z | 用户已收下后采样;S1→此快照仅主档、Map_5_102变化。 | | 正常退出S2 | 20260928T092418Z | 与奖励后快照55/55一致;新进程v1基线。 | | 恢复退出S3 | 20260928T092948Z | 与S2 55/55一致;两进程最终cache也各55/55一致。 | 机器对账:[guide-final-reconciliation.json](guide-final-reconciliation.json),可用reconcile-guide-final.ps1离线重算。102各轮45键观测值相同,只作为附带观测,不据此声称锁定了102所有外部客户端。 ## 5. 真实玩法和恢复数据 原准入审计:Fish=10231、Item=410010231、Area/Map=102、Rod=20001、Mag=3(索引),主页实际倍率x5。仅一次实际付费抛竿,费用5;没有改随机鱼、强开药水活动或第二次补拍。 | 项目 | 动作前S1 | 收鱼后/S2/S3/恢复 | |---|---|---| | 金币 | 36550472 | 36552317(+1845) | | 体力 | 7305 | 7300(−5) | | energyRM | 7231 | 7236 | | 鱼10231原值 | 6\|0\|54\|0\|False | 6\|9.23\|54\|5\|False | | 药水EventPotion01 | 索引4、未完成 | 保持;运行时三个当前引导指针为空 | | GuideSaveDataNew整值 | 基线原值 | 完全一致,两个新进程均无该键写入审计 | | BattlePassRecordTask | 基线原值 | 完全一致;本条玩法没有任务键变化,不把无变化声称为任务推进验收 | 原始票据:扣费NewPlayerDataDic sequence6;奖励最终主档sequence12、Map_5_102 sequence11。reward-confirmed 09:21:54.7609805Z先于presented 09:21:54.7650083Z,各一次;guide通知1、激活0;收鱼run fault0。只有NewPlayerDataDic/Map_5_102发生钓鱼差异,其他鱼值不变。原始events.jsonl/缓存和guide-reward-reconciliation.json可交叉核验。 恢复证据guide-recovered-values.json:valuesPass=true、55键mismatches=[];真实PlayerFishData最大重量9.23、level6、新鱼标记false,金币/体力/energyRM匹配。guide-recovery-login-state.json另证101/InternalId2/kv-loop/API、三个指针空及实际活动=-1。 ## 6. 偏差、边界和结束状态 - S0→S1不是纯净登录:签到使体力+30,MonthlySignEvent总序6→7/日序3→4;ShopPackBuyCount日序270→271、主档登录统计更新。已在抛竿前单独冻结、归因,不计入+1845/−5钓鱼结果。用户未单独答复签到操作人,记录为未知;主会话没有模拟签到输入。 - 用户提前点“收下”,没有留存奖励面板截图或收下前快照。已获得confirmed/presented顺序审计、用户收下说明、真实主页截图及服务器对账;复核需裁决这是否足以支持本包有限验收,不隐去证据缺口,不默认要求再付费一次。 - +1845来自实际主档差值与奖励票据。未留存全部随机/增益公式输入,不声称独立重算了完整奖励公式。 - 恢复第一条采样在启动阶段空引用,堆栈仅动态采样脚本;补GContext未就绪返回分支后实际数据采样通过。游戏Console Error=0,未修改生产代码以掩盖采样问题。 - 恢复过程不是零保存:有一次既有NewPlayerDataDic同值accepted;最终S2/S3全等,无玩法操作。游戏身份链仍有PF依赖,不宣称完全脱离PF或以KV审计代替全HTTP审计。 - 本次修正后五轮备份工具(S0/S1/额外奖励/S2/S3)共10登录+10Get,工具Set/Delete=0;包含修正前085931Z取证则六轮12登录+12Get。相对原四轮计划多一轮奖励后取证,未新增付费业务。游戏请求另计:收鱼run accepted12(含localOnly),恢复run accepted1;accepted数不是HTTP Set请求数。备份DLL hash仍为锁定AAA12766…。 - 两次正常退出均closed、pending0、active/unknown=null。v3/v1已归档,根目录无活动permit,全部15个claim保留。Unity130200保持非Play,已用claim不可在同进程重跑;本包101停用协作窗口已结束。 - 无重导/覆盖/补发/删除claim/打包。StorageError/L7、全平台引导政策、26模块外键/5未定位键、热换号、4B3B/C、完整4C/4D/G4仍开放。 下一步交独立复核,见[提示词](101真实闭环与药水引导修正-独立实施复核提示词.md)。复核通过后由主会话核受审hash、逐项裁决并正式关闭本业务包;现在不自封关闭。