bug反馈6.18 ¶
问题1:
状态:已修复 待正式服验收
现象:珍宝阁内消耗排行奖励不发放
预期:确保每期奖励在活动倒计时结束后按照排行榜发放奖励
截图:

问题2:
状态:已修复(二次修复,兼容客户端传目标道具 ID) 验收通过
备注:2026-06-19 正式服验收报错 item_synthetic 返回 code=5,msg=合成配置不存在。客户端 ItemMergeDialog 打开时传碎片 10101,确认合成时回调传的是目标道具 10001;上一版服务端只按 FragmentSynthesisConf.fragmentId 查配置,收到 itemId=10001 会找不到配置。
现象:使用四圣宝珠碎片合成四圣宝珠 无法正常合成
预期:50个四圣宝珠碎片可以合成四圣宝珠
修复:server/internal/itemx.ApplySynthesis 同时兼容客户端传目标道具 ID 和碎片 ID;命中配置后统一扣 fragmentId=10101,发放目标道具 id=10001。
验证:已通过 GOCACHE=/tmp/go-build GOTMPDIR=/tmp go test ./internal/itemx -count=1、GOCACHE=/tmp/go-build GOTMPDIR=/tmp go test ./entry/account/wsentry -run TestRegisterGrowthHandlers -count=1、GOCACHE=/tmp/go-build GOTMPDIR=/tmp go test . -run TestItem -count=1。
截图:

问题3:
状态:已修复(服务端限购记录改为按商店周期刷新) 验收通过
现象:俱乐部商店内 限购物品不按照时间刷新每天都会刷新
预期:盐锭商店每周刷新一次限购 盐晶商店 金盐宝商店 助威商店每个月刷新一次
根因:客户端 LegionShopDialog 倒计时按 storeID=1 周刷、storeID=2/3/4 月刷显示,但服务端 domains/legion/store.GetBuyGoods() 仍用单一 legionStoreBuyTime 按自然日清空全部 legionStoreBuyRecords,导致每天打开/购买都会恢复限购。
修复:服务端按 LegionStoreConf.storeID 计算刷新周期,盐锭商店使用 ISO 周周期,盐晶/金盐宝/助威商店使用月周期;购买和列表回包都过滤内部周期标记,只返回商品购买次数。
验证:新增跨天同周/同月不清、跨周只清盐锭、跨月清月刷商店回归测试。已通过 GOCACHE=/tmp/go-build GOTMPDIR=/tmp go test ./domains/legion/store -count=1。本地日志未找到对应 legion_storegoodslist/legion_storebuygoods 玩家现场命中,根因以截图、客户端倒计时逻辑、服务端刷新路径和红绿测试验证。
截图:

问题4:
状态:已修复(服务端已加周期内领取/兑换幂等保护) 待玩家反馈
现象:有玩家利用第三方辅助抓包 抓取端午消耗活动 使活动无限重置 无限刷取金鱼
预期:定死一个周期只能做一次消耗任务
根因:端午消耗活动的兑换入口 activity_rewardresp 只读取 activityRecord.common.2505303.record.<goodsId> 判断限购,再扣金艾草并发放金鱼等奖励;端午进度奖励入口 activity_claimmilestone 也只读取 activityRecord.common.2505305.task.-4 判断已领取档位。旧桥接层 activityGuard() 直接返回 nil,导致这些入口没有真正生效的服务端幂等锁,第三方抓包并发/重放时可能在领取记录持久化可见前重复扣/发,表现为同周期活动被反复刷新、金鱼可重复刷取。
修复:server/internal/activityx/festival.go 中 activity_rewardresp 按 activityId+roleId+goodsId 和配置 limitNum 逐次申请 activity_reward_guards,请求数量大于 1 时按数量占用限购次数;guard 拒绝时不扣道具、不发奖励。activity_claimmilestone 按每个里程碑档位逐档申请 milestone guard,任一档已领取则不发奖。server/compat_fieldized_bridge.go 的 activityGuard() 改为使用当前区服 db.GameDB.Collection("activity_reward_guards"),不再是空实现。
验证:新增兑换重复 guard、里程碑重复 guard、桥接层 GameDB guard 测试。已通过 GOCACHE=/tmp/xianyu-go-build GOTMPDIR=/tmp go test -count=1 ./internal/activityx 和 GOCACHE=/tmp/xianyu-go-build GOTMPDIR=/tmp go test -count=1 . -run 'TestActivityGuardUsesGameDB|TestActivityExchangeFieldized|TestClaimFestivalMilestoneRewardFieldized'。本地结构化日志未保留到这次玩家抓包现场,根因以截图、客户端入口、服务端兑换/领奖链路和红绿回归测试验证。
问题5
状态:已修复(二次修复,补齐 role_loaddress 外观 ID 白名单) 验收通过
备注:2026-06-19 验收再次报错 role_loaddress 返回 code=1,msg=外观ID无效。首次修复补齐了兑换/拥有链路,但佩戴入口 roleLoadDressFieldized 还会先用 rolecosmetics.BuildAllAvatarFramesForTest / BuildAllMultiKillsForTest 的静态外观白名单校验 ID;该白名单缺少典韦头像框 1117 和盐场连杀 3117,所以即使已拥有也会被服务端拒绝。
现象:客厅珍宝阁内典韦头像框和盐场连杀无法正常佩戴 点击佩戴无反应
预期:可以正常佩戴
根因:客户端装配前会先检查 ROLE.dress[外观类型].storage,未拥有则本地拦截不发送 role_loaddress,表现为点击无反应。服务端配置中典韦头像框商品发放了不存在的 AvatarFrameConf.111705,实际头像框为 1117;典韦盐场连杀 MultiKillConf.3117 没有珍宝阁兑换入口,且 collection_exchange 的发奖逻辑缺少 type=48 写入 dress["4"].storage。
修复:server/client CollectionExchangeShopConf 同步修正商品 8 为头像框 type=46,itemId=1117,新增商品 16 为盐场连杀 type=48,itemId=3117;服务端 collection_shop 支持 type 48 发放到 dress[4].storage,并补齐 collection 拥有识别;二次修复补齐 rolecosmetics 外观白名单里的 1117 和 3117,让 role_loaddress 校验通过。
验证:新增典韦头像框配置、典韦盐场连杀兑换配置、type 48 发放后可拥有外观库存回归测试,以及 roleLoadDressFieldized 对 dressType=1,id=1117、dressType=4,id=3117 的 ID 校验回归测试。已通过 GOCACHE=/tmp/go-build GOTMPDIR=/tmp go test ./internal/activityx -run 'TestExchangeCollectionShopGoods_(ServerConfigIncludesDianweiMultiKill|GrantsMultiKillDressStorage|ServerConfigIncludesPlannedHeroSets)' -count=1、GOCACHE=/tmp/go-build GOTMPDIR=/tmp go test ./internal/rolecosmetics -count=1、GOCACHE=/tmp/go-build GOTMPDIR=/tmp go test . -run TestRoleLoadDressFieldized_AcceptsDianweiCollectionDressIDs -count=1、GOCACHE=/tmp/go-build GOTMPDIR=/tmp go test . -run TestCollection -count=1。
截图:

问题6:
状态:已修复
现象:十殿内攻打boss时 有时会出现点击玩家出战无反应
预期:点击出战该玩家正常上场战斗
根因:普通十殿战斗页客户端 NightmareBattleData.sendFight 对服务端非 0 返回只转成 false,没有展示 response.msg。生产一区 2026-06-21 当天 logs/game-server 容器日志中,nightmare_fight 非 0 返回主要为 道具不足 147 次、请先组队 11 次,服务端已返回原因但客户端表现为点击出战无反应。
修复:不改客户端;服务端 nightmare_fight 统一失败出口在保留原响应的同时,额外通过现有 globalnotify 推送同一条失败原因,复用客户端已有全局提示通道。
验证:新增服务端回归测试 TestNightmareFightFailurePushesGlobalNotifyTip 覆盖 nightmare_fight 返回 请先组队 时额外推送 globalnotify.content=请先组队。已通过 GOCACHE=/tmp/go-build GOTMPDIR=/tmp go test . -run TestNightmareFightFailurePushesGlobalNotifyTip -count=1。人工验证建议:部署后在十殿房间中分别用无挑战道具账号点击出战、未组队/失效房间状态点击出战,应出现全局提示;正常有队伍且道具充足时应进入战斗并刷新房间战斗结果。
截图:
问题7:
状态:已修复 待正式服验收
预期:确保怪异塔排行内 按照排行每期发放奖励
根因:怪异塔已有个人/俱乐部排行展示和奖励配置,但服务端没有每期结算发奖任务。
修复:新增怪异塔个人排行、俱乐部排行结算和邮件发奖;个人使用 CollectionRankReward group=3,俱乐部使用 EvoTowerLegionRankReward,并按期次做邮件去重。
验证:GOCACHE=/tmp/go-build GOTMPDIR=/tmp go test ./domains/activity/evotower
截图:

问题8:
状态:已修复 验收通过
现象:淬炼密码输错多次后 点击强制解锁 然后可以直接解锁淬炼
预期:必须密码正确才可解锁淬炼 或者强制解锁后14天后自动清除淬炼密码:
根因:强制解锁同时写入了 14 天免密窗口,导致无需正确密码即可进入淬炼;提交密码逻辑在强制解锁期间也直接返回成功。
修复:强制解锁期间不再授予免密;取消强制解锁必须校验正确密码;14 天到期后自动清除淬炼密码和相关状态。
验证:GOCACHE=/tmp/go-build GOTMPDIR=/tmp go test ./internal/gameplay/passwordx
截图:


问题8:
测试服账号:fafa
状态:已修复 验收通过
现象:诸葛亮在战斗时 普通技能无法攻击对面全部武将
预期:诸葛亮普通攻击可攻击对面5个武将
根因:诸葛亮配置中的主动技能 7001 本身是 pickNum=5,但老存档/旧链路可能把皮肤/旧技能 ID 10401 当成 activeSkill 传给 battle worker,服务端未做 104 技能 ID 归一化。
修复:战斗数据构建统一将 104 的旧技能段 10401-10408 归一到当前技能 7001-7008,并保证归一后的主动技能进入 skill 数组。
验证:GOCACHE=/tmp/go-build GOTMPDIR=/tmp go test ./internal/skillutil ./domains/core/competitive
截图:
问题10:
状态:已修复(新增红宠随机礼包配置,并补齐 item_openpack 成品宠物发放) 验收通过
预期:宠物:甲龟锅,炎鬃狮,疾风隼,蛇尾枭四个红宠 做一个随机礼包 概率百分之25 随机出一个
根因:原通用开礼包逻辑只处理金币、钻石、道具奖励,PackConf 配成宠物成品奖励 type=20 时不会写入 petData。
修复:
- 新增 ItemConf 37001「红宠随机礼包」,params 指向 PackConf 200。
- 新增 PackConf 200,等权重随机 601 甲锅龟、602 炎鬃狮、603 疾风隼、604 蛇尾枭,每项 25%。
- 服务端 item_openpack 支持 type=20 成品宠物奖励,使用宠物域发放逻辑写入 petData;宠物栏位满时返回错误且不扣礼包。
- 已同步 server/config、client/assets/config 和 Android jsb-link 内嵌配置。
- 成品宠物礼包走角色锁内变更,并发开包会基于最新 petData 分配空栏,避免覆盖宠物或刷负数。
验证:go test ./domains/pet;go test . -run 'TestItemOpenPackHandler_GrantsConfiguredFinishedPetReward|TestItemOpenPackHandler_RejectsConfiguredFinishedPetWhenBoardFull|TestItemOpenPackHandler_ConcurrentFinishedPetRewardsUseFreshPetSlots|TestBuildConfiguredOpenPackRewards_UsesItemParamsPackConf';go test . -run '^$'。
截图:



问题11:
正式服账号:facaizzz 密码:facai111 大乔水晶翻面丢失
状态:已修复,待部署后人工验证
现象:梦魇水晶翻面后 升级的水晶等级会莫名其妙消失重置到初始等级 或者出现直接需要重新激活的情况
预期:梦魇水晶翻面后的水晶等级永远不会重置消失
根因:英雄置换 hero_exchange 只交换/重建 trumpId、transTrumpId、tt,遗漏 curTrump、trumpId2、transTrumpId2,且置换回包 role.heroes 也未返回这些反面水晶字段,导致客户端和后续翻面路径拿到的水晶反面状态不完整。
修复:hero_exchange 三个置换分支均同步交换 curTrump、trumpId2、transTrumpId2;英雄回包 buildHeroPayload 补充 curTrump、trumpId2、transTrumpId2。
验证:go test ./internal/gameplay/herox -run TestHandleExchange_SwapsTransferableProgressAndGear -count=1;go test ./internal/gameplay/herox -count=1。
人工测试建议:部署后使用带双面梦魇水晶的英雄与目标英雄做一次英雄置换;置换前记录正面水晶、反面水晶、当前面 curTrump、转换预览 transTrumpId/transTrumpId2;置换后不重登直接打开梦魇水晶界面,确认两面水晶等级和是否已开启状态都跟随英雄置换正确保留;再执行一次水晶翻面和升级,确认不会重置到 1 级或重新要求激活;最后重登再检查一次持久化状态。
截图:

问题12:
状态:验收通过
现象:皮肤未配置
预期:诸葛亮 白无常皮肤
黄月英 黑无常皮肤
司马懿 山河锦绣皮肤
关羽 山河锦绣皮肤
张角 山河锦绣皮肤
姜维 阴律司皮肤
吕布 至尊宝皮肤
大乔 西域蝶舞皮肤
典韦 观星者皮肤
以上皮肤游戏内可以正常领取
截图:
问题13:
状态:已修复,待部署后人工验证
现象:解锁淬炼 淬炼翻面 水晶翻面 消耗的金砖不计入端午消耗活动金砖消耗内
预期:游戏内所有消耗金砖的地方都计入活动
根因:实际扣 diamond 的反面解锁入口 equipment_unlockquench2、trump_unlock2 只扣除金砖并刷新角色字段,没有累加 activityRecord.common.2505301.task.5,也没有返回 activity.commonActivityInfo.2505301.task.5 给客户端;单纯 equipment_changequench、trump_change 是翻面切换,不扣 diamond,本身不应计入消费。
修复:equipment_unlockquench2、trump_unlock2 成功扣金砖时同时累加 activityRecord.common.2505301.task.5,调用周活动消费统计,并在主响应返回 activity.commonActivityInfo.2505301.task.5。
验证:go test ./internal/trumpx -run TestTrumpUnlock2Fieldized_InitializesBackSide -count=1;go test . -run TestEquipmentUnlockQuench2_CountsDragonBoatDiamondSpend -count=1;go test ./internal/trumpx -count=1;go test . -run 'Test(EquipmentUnlockQuench2_CountsDragonBoatDiamondSpend|StoreRefreshResp_PaidRefreshCountsDragonBoatDiamondSpend|RecordDiamondWeekActivitySpend)' -count=1。
人工测试建议:部署后打开端午消耗活动,记录当前金砖消费进度;分别执行装备反面淬炼解锁、梦魇水晶反面解锁,确认每次扣除的金砖数即时增加到端午消费进度,退出活动页再进入仍保持;再执行装备淬炼翻面切换、水晶翻面切换,确认不扣金砖时进度不会错误增加;最后重登后再次确认活动进度持久化正确。
截图:


评论
请登录后发表评论。
暂无评论。成为第一个评论者!