bug审查,优化槽位代码

This commit is contained in:
wuwenbo 2026-05-23 15:43:15 +08:00
parent a8cf65fbef
commit 03c33d6371
685 changed files with 994 additions and 37900 deletions

View File

@ -1,21 +1,26 @@
---
name: th1-crashsight-daily
description: TH1 project-specific daily CrashSight triage workflow for using the logged-in Chrome session to scan recent versions, inspect every CrashSight error, decode obfuscated Unity C# stacks, classify only direct exceptions or try/catch captured exceptions as blocking, and write Markdown blocking/debug reports under MD/. Use when the user asks for CrashSight daily reports, 最近一天异常扫描, version-scoped crash/error triage, blocking/debug report generation, or recurring production error review.
description: TH1 project-specific daily CrashSight triage workflow for using the logged-in Chrome session to scan recent versions, inspect every CrashSight error, decode obfuscated Unity C# stacks, classify logs as blocking errors or self-reported LogError diagnostics, trace blocking issues through device log context to root cause, and write Markdown reports under MD/. Use when the user asks for CrashSight daily reports, 最近一天异常扫描, version-scoped crash/error triage, blocking/logerror report generation, or recurring production error review.
---
# TH1 CrashSight Daily
## Core Rule
Do not over-classify business `LogSystem.LogError` telemetry as blocking.
Classify all CrashSight ERROR rows into exactly two top-level classes:
Classify an issue as `blocking` only when one of these is true:
- `blocking`: real blocking errors, including native CrashSight exception types and exceptions caught by `try/catch` then logged through `LogSystem.LogError`.
- `logerror`: project-authored `LogSystem.LogError` diagnostics that do not include a concrete exception object/stack.
Do not stop at the single CrashSight row or stack. For every `blocking` issue, open a concrete device/session sample and inspect the related device logs above the CrashSight row. Walk upward through the preceding logs until the real trigger is found. The report must document the root cause, not merely the final exception/log line.
Classify an issue as `blocking` when one of these is true:
- CrashSight issue type is a real exception, such as `NullReferenceException`, `KeyNotFoundException`, `InvalidOperationException`, `ArgumentNullException`, `MemoryPackSerializationException`, `DllNotFoundException`, etc.
- The visible message or detail page contains a try/catch captured exception object or stack, such as `System.*Exception`, `异常类型`, `异常信息`, `调用堆栈`, `error: System...`, `failed: System...`, `ex: Object reference`, or `at Namespace.Type.Method(...)`.
- A `UnityLogError` is clearly wrapping an exception caught by code, for example `OnMessageReceived 处理失败, error: System.NullReferenceException...`, `Timer任务执行异常: 异常类型: ...`, or `EventManager Publish<...> listener failed: System...`.
- The visible message, detail page, or device log context contains a try/catch captured exception object or stack, such as `System.*Exception`, `异常类型`, `异常信息`, `调用堆栈`, `error: System...`, `failed: System...`, `ex: Object reference`, or `at Namespace.Type.Method(...)`.
- A `UnityLogError` clearly wraps an exception caught by code, for example `OnMessageReceived 处理失败, error: System.NullReferenceException...`, `Timer任务执行异常: 异常类型: ...`, or `EventManager Publish<...> listener failed: System...`.
Classify as `debug` when the issue is only a plain project log or diagnostic state, even if it sounds serious:
Classify as `logerror` when the issue is only a plain project log or diagnostic state:
- Player/map/action mismatch logs without an exception object, such as `CompleteExecute Player 不一致`, `Map不一致`, `OnReceivedActionExcute Player 不一致`.
- AI/action diagnostics such as `存在相似action`, `不应该出现在...`, `CheckCan No`, `ActionConfirm send failed`, unless a concrete exception stack is present.
@ -23,7 +28,7 @@ Classify as `debug` when the issue is only a plain project log or diagnostic sta
- UI/prefab guard logs such as `CityInfoMono.SetCulture: ... is null` or `FragmentDie: UnitRenderer 为空` when they are plain guard logs, not thrown/caught exceptions.
- Save/file/Workshop/local environment logs when they do not include an exception stack.
When uncertain after quick preview, open the detail page. If the detail still does not contain a concrete exception object/stack, keep it in `debug` and record the code location only.
When uncertain after quick preview, open the detail page and at least one affected device log sample. If neither the detail nor the device context contains a concrete exception object/stack, keep it in `logerror` and record the code location only.
## Workflow
@ -38,11 +43,17 @@ When uncertain after quick preview, open the detail page. If the detail still do
5. Inspect issues one by one:
- Use quick preview when it shows full message and stack.
- Open issue detail when preview is truncated, message is `-`, the stack lacks symbols, or classification depends on whether a real exception is present.
6. Decode obfuscated online stacks before code search:
6. For each `blocking` issue, open one or more affected device/session samples:
- Find the concrete device/log entry associated with the CrashSight row.
- Open the device log view and inspect logs above the selected event.
- Continue walking upward through related logs until the earliest plausible trigger/root cause is found.
- Record the root-cause log line/time, the final surfaced error, and any additional bugs that the same root cause can produce.
- If one sample is ambiguous, inspect another recent sample of the same Issue ID before writing the root cause.
7. Decode obfuscated online stacks before code search:
- Use `Tools/DecodeOnlineError.ps1` or `Tools/ObfuscatedExceptionDecoder.ps1`.
- Decode all blocking candidates and any debug rows that need code location from an obfuscated stack.
7. Locate code with `rg` and the decoded symbols. Prefer exact method/class names first, then stable message strings.
8. Generate Markdown under `MD/CrashSight_<yyyy-MM-dd>_<versions>_1day/`.
- Decode all blocking candidates and any logerror rows that need code location from an obfuscated stack.
8. Locate code with `rg` and the decoded symbols. Prefer exact method/class names first, then stable message strings.
9. Generate Markdown under `MD/CrashSight_<yyyy-MM-dd>_<versions>_1day/`.
## Output Layout
@ -51,7 +62,7 @@ Create this structure:
```text
MD/CrashSight_<yyyy-MM-dd>_<versionA>_<versionB>_1day/
├── index.md
├── debug_summary.md
├── logerror_summary.md
├── report_manifest.json
└── blocking/
├── 001_issue_<id>.md
@ -65,23 +76,26 @@ Use a filesystem-safe version suffix, for example `0.7.1k_0.7.1j`.
- filter scope and capture time.
- CrashSight total seen and deduped rows.
- blocking issue count/occurrence count.
- debug issue count/occurrence count.
- logerror issue count/occurrence count.
- blocking family table sorted by occurrence count.
- top blocking issues with links to per-issue reports.
`debug_summary.md` must include:
`logerror_summary.md` must include:
- debug category summary with counts, occurrences, code locations, and example Issue IDs.
- debug detail table for every debug Issue.
- logerror category summary with counts, occurrences, code locations, and example Issue IDs.
- logerror detail table for every logerror Issue.
- no trigger-cause analysis and no business fix explanation.
Each `blocking/*.md` must include:
- Issue ID, CrashSight URL, type, versions, first/last seen, count.
- raw message and key stack.
- inspected device/session sample links or identifiers.
- root-cause log context from the device logs, including relevant preceding lines and the final surfaced error.
- decoded stack or decoded log text.
- code location with file paths and line numbers when possible.
- trigger reason and why it is blocking.
- trigger reason, why it is blocking, and why the selected device context supports that root cause.
- other bug symptoms that the same root cause can cause.
- focused recommendation.
`report_manifest.json` must mirror the final classification and counts so a later run can audit changes.
@ -90,9 +104,10 @@ Each `blocking/*.md` must include:
Before finalizing, run a text audit over the generated results:
- Verify every `blocking` issue either has a non-`UnityLogError` exception type or contains a concrete caught exception/stack in the message/detail.
- Search debug rows for `System.*Exception`, `异常类型`, `调用堆栈`, `Object reference`, `KeyNotFoundException`, `ArgumentNullException`; promote only those with real exception context.
- Search blocking rows for plain telemetry strings like `Player 不一致`, `Map不一致`, `存在相似action`, `ForceUpdate 玩家网络映射失败`, `安全写入失败`, `P2P message send failed`; demote them unless they also include a real exception object/stack.
- Verify every `blocking` issue either has a non-`UnityLogError` exception type or contains a concrete caught exception/stack in the message/detail/device context.
- Verify every `blocking` issue report includes device-log context above the surfaced error. If device context could not be accessed, mark the issue as incomplete instead of pretending the root cause is known.
- Search logerror rows for `System.*Exception`, `异常类型`, `调用堆栈`, `Object reference`, `KeyNotFoundException`, `ArgumentNullException`; promote only those with real exception context.
- Search blocking rows for plain telemetry strings like `Player 不一致`, `Map不一致`, `存在相似action`, `ForceUpdate 玩家网络映射失败`, `安全写入失败`, `P2P message send failed`; demote them unless they also include a real exception object/stack in the row, detail, or device context.
- Confirm `blocking/*.md` count equals `report_manifest.json.blockingReports.length`.
## Reporting Back
@ -100,8 +115,8 @@ Before finalizing, run a text audit over the generated results:
In the final response, provide:
- link to `index.md`.
- final blocking/debug counts.
- a short note that plain `LogSystem.LogError` diagnostics were kept in debug unless they wrapped an actual exception.
- any limitations, such as rows that required detail pages but still had no full stack.
- final blocking/logerror counts.
- a short note that each blocking report is based on device-log context above the surfaced error.
- any limitations, such as blocking rows whose device log context could not be loaded or whose root cause remained ambiguous after multiple samples.
At the end of Chrome automation, close/finalize browser tabs according to the Chrome skill instructions.

View File

@ -1,63 +0,0 @@
# CrashSight 阻断报告 - 178c3281892d8c3d352287aa90d95571
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/178c3281892d8c3d352287aa90d95571?pid=10
- 异常类型: NullReferenceException
- 阻断族: 单位渲染贴图空引用
- 发生次数: 553,995
- 首次/最近: 2026-05-16 02:05:28 ~ 2026-05-18 16:58:53
## 原始异常
异常消息: Object reference not set to an instance of an object.
关键堆栈: gaa.hcf () (at <00000000000000000000000000000000>.0)
## 反混淆结果
```text
## 1. 178c3281892d8c3d352287aa90d95571
Type: NullReferenceException
Count: 553,995
FirstSeen: 2026-05-16 02:05:28
LastSeen: 2026-05-18 16:58:53
Message: Object reference not set to an instance of an object.
KeyStack: gaa.hcf [方法: TH1_Renderer.UnitRenderer.RenderUpdateUnitSprite()] () (at <00000000000000000000000000000000>.0)
RawText: 178c3281892d8c3d352287aa90d95571 NullReferenceException 异常消息Object reference not set to an instance of an object. 关键堆栈gaa.hcf [方法: TH1_Renderer.UnitRenderer.RenderUpdateUnitSprite()] () (at <00000000000000000000000000000000>.0) 2026-05-16 02:05:28 ~ 2026-05-18 16:58:53 添加标签 2026-05-18 16:58:53 553,995 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/178c3281892d8c3d352287aa90d95571?pid=10
{
"id [类型: Logic.Action.BuildWonderAction]": "178c3281892d8c3d352287aa90d95571",
"url": "https://crashsight.qq.com [字段: Timer/TimerTask.target]/crash-reporting/errors/01076c49ce/178c3281892d8c3d352287aa90d95571?pid=10",
"occurrence": "553,995",
"devices": "12",
"appVersion": "\t",
"frames": [
"gaa.hcf [方法: TH1_Renderer.UnitRenderer.RenderUpdateUnitSprite()] () (at <00000000000000000000000000000000>.0)",
"gaa [类型: TH1_Renderer.UnitRenderer].def [方法: TH1_Anim.Fragments.FragmentAttackAndCounter.<.ctor>b__3_4()] (System.Boolean a) (at <00000000000000000000000000000000>.0)",
"gcs.des [方法: TH1_Anim.Fragments.FragmentNotMoveKill.<.ctor>b__2_1()] () (at <00000000000000000000000000000000>.0)",
"gch.den [方法: TH1_Anim.Fragments.FragmentBase.UpdateSteps(System.Single)] (System.Single a) (at <00000000000000000000000000000000>.0)",
"gao.hcs [方法: TH1_Anim.FragmentManager.UpdateFragment(TH1_Anim.Fragments.FragmentBase)] (gch [类型: TH1_Anim.Fragments.FragmentBase] a) (at <00000000000000000000000000000000>.0)",
...(已截断,原文见 Temp/CrashSight/Daily_2026-05-19
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Renderer/UnitRenderer.cs:90 - 构造器未校验 Unit/Grid/Player 查找结果
- F:/th1new/Unity/Assets/Scripts/TH1_Renderer/UnitRenderer.cs:594 - 直接刷新单位 sprite
- F:/th1new/Unity/Assets/Scripts/TH1_Renderer/MapRenderer.cs:435 - 新单位渲染器创建入口
## 触发原因与阻断判断
判断: 单位动画/击杀/创建后的表现层刷新被打断,列表中这是最高频空引用族。
原因: 单位视觉刷新进入 `RenderUpdateUnitSprite`,该函数直接访问 `Table.Instance.UnitTypeDataAssets``_unitData``_unitMono.SpriteRenderer`。构造器里 `GetUnitDataByUnitId/GetGridDataByUnitId` 没有检查返回值,动画或延迟刷新期间数据层与表现层不同步时会空引用。
## 建议
`UnitRenderer` 构造与 `RenderUpdateUnitSprite` 做缺失数据/组件保护;同时追查为何 `ROUnitMap` 里会创建到数据不完整的单位渲染器。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,41 +0,0 @@
# CrashSight 阻断报告 - 823aba5c5e1bb7ab0b85e440d044b0cd
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/823aba5c5e1bb7ab0b85e440d044b0cd?pid=10
- 异常类型: NullReferenceException
- 阻断族: Main.Update 单帧空引用(详情无符号)
- 发生次数: 373,060
- 首次/最近: 2025-08-29 20:55:43 ~ 2026-05-19 09:55:57
## 原始异常
异常消息: Object reference not set to an instance of an object.
关键堆栈: TH1_Logic.Core.Main.Update () (at <00000000000000000000000000000000>.0)
## 反混淆结果
```text
## 823aba5c5e1bb7ab0b85e440d044b0cd
NullReferenceException
Stack Trace:
TH1_Logic.Core.Main.Update()
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Core/Main.cs - 详情页只保留到 Main.Update未给出下层符号
## 触发原因与阻断判断
判断: 这是实际 NullReferenceException最近一天在筛选版本内仍有 373,060 次,属于高频阻断;但 CrashSight 详情页没有下层调用帧,无法继续从符号定位到具体业务代码。
原因: 已按要求进入问题详情查看,详情页仍只显示 TH1_Logic.Core.Main.Update。它可能是 IL2CPP/符号裁剪后折叠到主循环的异常,不能把其他 Issue 的解码摘要误套到这一条上。
## 建议
优先在 CrashSight 查看这条 Issue 的“跟踪日志/用户行为/附件下载”;如果平台没有更多帧,需要在 0.7.1k 后续包里增加 Main.Update 外围分段保护日志,把 GameLogic、InputLogic、Renderer、Timer、Steam 更新阶段分别包上上下文标记。
## 备注
本条已排除反混淆摘要里的跨 Issue 命中,只采信该 Issue 自己详情页的 Stack Trace。

View File

@ -1,48 +0,0 @@
# CrashSight 阻断报告 - c61eb6ca9f2864d186b60fd5017781a3
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/c61eb6ca9f2864d186b60fd5017781a3?pid=10
- 异常类型: NullReferenceException
- 阻断族: 单位渲染贴图空引用
- 发生次数: 216,425
- 首次/最近: 2026-05-16 11:24:26 ~ 2026-05-18 21:26:09
## 原始异常
异常消息: Object reference not set to an instance of an object.
关键堆栈: gaa.hcf () (at <00000000000000000000000000000000>.0)
## 反混淆结果
```text
## 3. c61eb6ca9f2864d186b60fd5017781a3
Type: NullReferenceException
Count: 216,425
FirstSeen: 2026-05-16 11:24:26
LastSeen: 2026-05-18 21:26:09
Message: Object reference not set to an instance of an object.
KeyStack: gaa.hcf [方法: TH1_Renderer.UnitRenderer.RenderUpdateUnitSprite()] () (at <00000000000000000000000000000000>.0)
RawText: c61eb6ca9f2864d186b60fd5017781a3 NullReferenceException 异常消息Object reference not set to an instance of an object. 关键堆栈gaa.hcf [方法: TH1_Renderer.UnitRenderer.RenderUpdateUnitSprite()] () (at <00000000000000000000000000000000>.0) 2026-05-16 11:24:26 ~ 2026-05-18 21:26:09 添加标签 2026-05-18 21:26:09 216,425 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/c61eb6ca9f2864d186b60fd5017781a3?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Renderer/UnitRenderer.cs:90 - 构造器未校验 Unit/Grid/Player 查找结果
- F:/th1new/Unity/Assets/Scripts/TH1_Renderer/UnitRenderer.cs:594 - 直接刷新单位 sprite
- F:/th1new/Unity/Assets/Scripts/TH1_Renderer/MapRenderer.cs:435 - 新单位渲染器创建入口
## 触发原因与阻断判断
判断: 单位动画/击杀/创建后的表现层刷新被打断,列表中这是最高频空引用族。
原因: 单位视觉刷新进入 `RenderUpdateUnitSprite`,该函数直接访问 `Table.Instance.UnitTypeDataAssets``_unitData``_unitMono.SpriteRenderer`。构造器里 `GetUnitDataByUnitId/GetGridDataByUnitId` 没有检查返回值,动画或延迟刷新期间数据层与表现层不同步时会空引用。
## 建议
`UnitRenderer` 构造与 `RenderUpdateUnitSprite` 做缺失数据/组件保护;同时追查为何 `ROUnitMap` 里会创建到数据不完整的单位渲染器。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,47 +0,0 @@
# CrashSight 阻断报告 - 1b2e3b8095c5f768abdda33e2c75e1c6
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/1b2e3b8095c5f768abdda33e2c75e1c6?pid=10
- 异常类型: KeyNotFoundException
- 阻断族: 单位位置读取缺失 Renderer
- 发生次数: 207,381
- 首次/最近: 2026-05-14 20:15:57 ~ 2026-05-19 11:42:09
## 原始异常
异常消息: The given key '370' was not present in the dictionary.
关键堆栈: ctu.ekk (cfo a) (at <00000000000000000000000000000000>.0)
## 反混淆结果
```text
## 4. 1b2e3b8095c5f768abdda33e2c75e1c6
Type: KeyNotFoundException
Count: 207,381
FirstSeen: 2026-05-14 20:15:57
LastSeen: 2026-05-19 11:42:09
Message: The given key [方法: TH1_UI.View.Outside.WikiSub.UIOutsideWikiSkillCircleMono.SetContent(SkillType,SkillViewType,RuntimeData.UnitFullType,System.UInt32)] '370' was not present in the dictionary.
KeyStack: ctu.ekk [方法: RuntimeData.UnitData.GetPosition(RuntimeData.MapData)] (cfo [类型: RuntimeData.MapData] a) (at <00000000000000000000000000000000>.0)
RawText: 1b2e3b8095c5f768abdda33e2c75e1c6 KeyNotFoundException 异常消息The given key [方法: TH1_UI.View.Outside.WikiSub.UIOutsideWikiSkillCircleMono.SetContent(SkillType,SkillViewType,RuntimeData.UnitFullType,System.UInt32)] '370' was not present in the dictionary. 关键堆栈ctu.ekk [方法: RuntimeData.UnitData.GetPosition(RuntimeData.MapData)] (cfo [类型: RuntimeData.MapData] a) (at <00000000000000000000000000000000>.0) 2026-05-14 20:15:57 ~ 2026-05-19 11:42:09 添加标签 2026-05-19 11:42:09 207,381 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/1b2e3b8095c5f768abdda33e2c75e1c6?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Data/UnitData.cs:359 - 直接索引 ROUnitMap
- F:/th1new/Unity/Assets/Scripts/TH1_Renderer/MapRenderer.cs:464 - 已有表现层一致性修复入口
## 触发原因与阻断判断
判断: 任何需要读取单位屏幕位置的动画、UI、技能预览都可能被 KeyNotFound 打断。
原因: `UnitData.GetPosition` 在主地图上直接用 `MapRenderer.Instance.ROUnitMap[Id]` 索引。CrashSight 的 key 370/1624 等是单位 id而不是业务字典 key说明数据层有单位但表现层字典没有对应 Renderer。
## 建议
`ROUnitMap[Id]` 改为 `TryGetValue` 并触发一次 `RepairAllRenderers/RenderUpdateUnitMap`;继续追查漏建或提前删除 Renderer 的动作。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,48 +0,0 @@
# CrashSight 阻断报告 - bd1d7554d2dbdb01cf35a108503bb819
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/bd1d7554d2dbdb01cf35a108503bb819?pid=10
- 异常类型: UnityLogError
- 阻断族: Action 执行玩家不一致 (UnitAttack)
- 发生次数: 207,040
- 首次/最近: 2026-04-11 16:13:37 ~ 2026-05-19 12:20:58
## 原始异常
异常消息: CompleteExecute Player 不一致 Action : UnitAttack Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AllClear Tech : None CultureCardType : None
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 5. bd1d7554d2dbdb01cf35a108503bb819
Type: UnityLogError
Count: 207,040
FirstSeen: 2026-04-11 16:13:37
LastSeen: 2026-05-19 12:20:58
Message: CompleteExecute Player 不一致 Action : UnitAttack Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AllClear Tech : None CultureCardType : None
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: bd1d7554d2dbdb01cf35a108503bb819 UnityLogError 异常消息CompleteExecute Player 不一致 Action : UnitAttack Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AllClear Tech : None CultureCardType : None 关键堆栈UnityEngine.Debug.LogError(Object) 2026-04-11 16:13:37 ~ 2026-05-19 12:20:58 添加标签 2026-05-19 12:20:58 207,040 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/bd1d7554d2dbdb01cf35a108503bb819?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Action/ActionLogic.cs:1105 - CompleteExecute 玩家一致性检查
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/AI/AILogic.cs:240 - AI 最终执行 action
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Steam/GameNetReceiver.cs:142 - 网络 action 执行入口
## 触发原因与阻断判断
判断: 对应 action 被拦截不执行;如果发生在 AI 或同步链路,会造成卡回合或双方状态分叉。
原因: `ActionLogicBase.CompleteExecute` 要求 `actionParams.PlayerId` 等于 `MapData.CurPlayer.Id`。这里 action 的归属玩家与当前回合玩家不同,函数直接返回 false。常见来源是 AI/网络/回放参数刷新到错误 MapData或 UI 缓存了上一回合 action。
## 建议
回查该 action 的构参处,确保 `CommonActionParams.MapData``PlayerData``PlayerId` 在执行前调用 `RefreshParams/OnParamChanged` 并跟随当前回合。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,48 +0,0 @@
# CrashSight 阻断报告 - d2ff2d072f9355c652ca337e98d84814
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/d2ff2d072f9355c652ca337e98d84814?pid=10
- 异常类型: UnityLogError
- 阻断族: 延迟创建单位后的表现层空引用
- 发生次数: 199,100
- 首次/最近: 2026-05-16 21:12:55 ~ 2026-05-19 11:42:25
## 原始异常
异常消息: Timer任务执行异常: 错误信息: REISEN ILLUSION ADDUNITDATA 异常类型: System.NullReferenceException 异常信息: Object reference not set to an instance of an object. 调用堆栈: at fj.bgi () [0x00000] in <00000000000000000000000000000000>:0 at cfo+lhl.llp () [0x00000] in <00000000000000000000000000000000>:0 at i.oj () [0x00000] in <00000000000000000000000000000000>:0 at TH1_Logic.Core.Main.Update () [0x00000] in <00000000000000000000000000000000>:0 目标对象: cfo
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 6. d2ff2d072f9355c652ca337e98d84814
Type: UnityLogError
Count: 199,100
FirstSeen: 2026-05-16 21:12:55
LastSeen: 2026-05-19 11:42:25
Message: Timer任务执行异常: 错误信息: REISEN ILLUSION ADDUNITDATA 异常类型: System.NullReferenceException 异常信息: Object reference not set to an instance of an object. 调用堆栈: at fj.bgi [方法: TH1Renderer.MapRenderer.RenderUpdateUnitMap()] () [0x00000] in <00000000000000000000000000000000>:0 at cfo [类型: RuntimeData.MapData]+lhl.llp [方法: RuntimeData.MapData/<>c__DisplayClass81_0.<AddUnitData>b__0()] () [0x00000] in <00000000000000000000000000000000>:0 at i.oj [方法: Timer.Update()] () [0x00000] in <00000000000000000000000000000000>:0 at TH1_Logic.Core.Main.Update () [0x00000] in <00000000000000000000000000000000>:0 目标对象: cfo [类型: RuntimeData.MapData]
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: d2ff2d072f9355c652ca337e98d84814 UnityLogError 异常消息Timer任务执行异常: 错误信息: REISEN ILLUSION ADDUNITDATA 异常类型: System.NullReferenceException 异常信息: Object reference not set to an instance of an object. 调用堆栈: at fj.bgi [方法: TH1Renderer.MapRenderer.RenderUpdateUnitMap()] () [0x00000] in <00000000000000000000000000000000>:0 at cfo [类型: RuntimeData.MapData]+lhl.llp [方法: RuntimeData.MapData/<>c__DisplayClass81_0.<AddUnitData>b__0()] () [0x00000] in <00000000000000000000000000000000>:0 at i.oj [方法: Timer.Update()] () [0x00000] in <00000000000000000000000000000000>:0 at TH1_Logic.Core.Main.Update () [0x00000] in <00000000000000000000000000000000>:0 目标对象: cfo [类型: RuntimeData.MapData] 关键堆栈UnityEngine.Debug.LogError(Object) 2026-05-16 21:12:55 ~ 2026-05-19 11:42:25 添加标签 2026-05-19 11:42:25 199,100 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/d2ff2d072f9355c652ca337e98d84814?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Data/MapData.cs:1108 - AddUnitData 创建单位
- F:/th1new/Unity/Assets/Scripts/TH1_Data/MapData.cs:1132 - 注册延迟表现层回调
- F:/th1new/Unity/Assets/Scripts/TH1_Renderer/MapRenderer.cs:435 - 补建 UnitRenderer
## 触发原因与阻断判断
判断: 技能/行动创建单位后画面刷新失败,可能连续刷屏并阻断当前帧。
原因: `MapData.AddUnitData` 注册了名为 `REISEN ILLUSION ADDUNITDATA` 的延迟 Timer回调里调用 `MapRenderer.Instance.RenderUpdateUnitMap()``tmpUnit.Renderer(...).InstantUpdateUnit(true)`。如果 Timer 执行时地图或渲染器已切换/销毁,或新增单位缺少对应 Renderer就会空引用。
## 建议
Timer 回调执行前校验 `Main.MapData == this``MapRenderer.Instance``tmpUnit``Renderer`;必要时让表现层延迟任务在退出战局时统一取消。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,48 +0,0 @@
# CrashSight 阻断报告 - 901a9e917c5def92455081460f047117
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/901a9e917c5def92455081460f047117?pid=10
- 异常类型: MemoryPackSerializationException
- 阻断族: MemoryPack Union/协议反序列化失败
- 发生次数: 141,700
- 首次/最近: 2026-05-15 14:42:03 ~ 2026-05-19 11:04:55
## 原始异常
异常消息: Data read tag: 84 but not found in dwt MemoryPackUnion annotations.
关键堆栈: MemoryPack.MemoryPackSerializationException.ThrowInvalidTag (System.UInt16 tag, System.Type baseType) (at <00000000000000000000000000000000>.0)
## 反混淆结果
```text
## 7. 901a9e917c5def92455081460f047117
Type: MemoryPackSerializationException
Count: 141,700
FirstSeen: 2026-05-15 14:42:03
LastSeen: 2026-05-19 11:04:55
Message: Data read tag: 84 but [方法: Logic.AI.AIActionGenerator.GeneratorActionIds(Logic.AI.AICalculatorData,Logic.Action.CommonActionType)] not found in dwt [类型: TH1_Logic.Steam.BaseMessage] MemoryPackUnion annotations.
KeyStack: MemoryPack.MemoryPackSerializationException.ThrowInvalidTag (System.UInt16 tag, System.Type baseType) (at <00000000000000000000000000000000>.0)
RawText: 901a9e917c5def92455081460f047117 MemoryPackSerializationException 异常消息Data read tag: 84 but [方法: Logic.AI.AIActionGenerator.GeneratorActionIds(Logic.AI.AICalculatorData,Logic.Action.CommonActionType)] not found in dwt [类型: TH1_Logic.Steam.BaseMessage] MemoryPackUnion annotations. 关键堆栈MemoryPack.MemoryPackSerializationException.ThrowInvalidTag (System.UInt16 tag, System.Type baseType) (at <00000000000000000000000000000000>.0) 2026-05-15 14:42:03 ~ 2026-05-19 11:04:55 添加标签 2026-05-19 11:04:55 141,700 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/901a9e917c5def92455081460f047117?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Steam/SteamObjectSerializer.cs:75 - BaseMessage MemoryPackUnion 列表
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Steam/GameNetReceiver.cs:19 - 反序列化 BaseMessage
- F:/th1new/Unity/Assets/Scripts/TH1_Data/MapData.cs:1914 - 地图数据反序列化异常捕获
## 触发原因与阻断判断
判断: 多人消息、ForceUpdate、存档/地图读取无法反序列化,属于硬阻断。
原因: MemoryPack 读到的 union tag 不在当前类型的 `[MemoryPackUnion]` 注解内。BaseMessage tag 84 明显超出当前 `BaseMessage` 1-17 范围,地图/配置里的 `MomentItemBase`、技能 union 也有类似版本不兼容风险。
## 建议
确认线上 0.7.1i/j/k 的 MemoryPackUnion 生成文件一致;新增 union 只能追加不重排;网络消息反序列化失败要丢弃并触发恢复,不应继续应用半包。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,47 +0,0 @@
# CrashSight 阻断报告 - b1d556b794eea8b1010f1054d59219df
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/b1d556b794eea8b1010f1054d59219df?pid=10
- 异常类型: KeyNotFoundException
- 阻断族: 单位位置读取缺失 Renderer
- 发生次数: 122,725
- 首次/最近: 2026-04-25 14:47:22 ~ 2026-05-19 11:35:07
## 原始异常
异常消息: The given key '1624' was not present in the dictionary.
关键堆栈: ctu.ekk (cfo a) (at <00000000000000000000000000000000>.0)
## 反混淆结果
```text
## 8. b1d556b794eea8b1010f1054d59219df
Type: KeyNotFoundException
Count: 122,725
FirstSeen: 2026-04-25 14:47:22
LastSeen: 2026-05-19 11:35:07
Message: The given key [方法: TH1_UI.View.Outside.WikiSub.UIOutsideWikiSkillCircleMono.SetContent(SkillType,SkillViewType,RuntimeData.UnitFullType,System.UInt32)] '1624' was not present in the dictionary.
KeyStack: ctu.ekk [方法: RuntimeData.UnitData.GetPosition(RuntimeData.MapData)] (cfo [类型: RuntimeData.MapData] a) (at <00000000000000000000000000000000>.0)
RawText: b1d556b794eea8b1010f1054d59219df KeyNotFoundException 异常消息The given key [方法: TH1_UI.View.Outside.WikiSub.UIOutsideWikiSkillCircleMono.SetContent(SkillType,SkillViewType,RuntimeData.UnitFullType,System.UInt32)] '1624' was not present in the dictionary. 关键堆栈ctu.ekk [方法: RuntimeData.UnitData.GetPosition(RuntimeData.MapData)] (cfo [类型: RuntimeData.MapData] a) (at <00000000000000000000000000000000>.0) 2026-04-25 14:47:22 ~ 2026-05-19 11:35:07 添加标签 2026-05-19 11:35:07 122,725 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/b1d556b794eea8b1010f1054d59219df?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Data/UnitData.cs:359 - 直接索引 ROUnitMap
- F:/th1new/Unity/Assets/Scripts/TH1_Renderer/MapRenderer.cs:464 - 已有表现层一致性修复入口
## 触发原因与阻断判断
判断: 任何需要读取单位屏幕位置的动画、UI、技能预览都可能被 KeyNotFound 打断。
原因: `UnitData.GetPosition` 在主地图上直接用 `MapRenderer.Instance.ROUnitMap[Id]` 索引。CrashSight 的 key 370/1624 等是单位 id而不是业务字典 key说明数据层有单位但表现层字典没有对应 Renderer。
## 建议
`ROUnitMap[Id]` 改为 `TryGetValue` 并触发一次 `RepairAllRenderers/RenderUpdateUnitMap`;继续追查漏建或提前删除 Renderer 的动作。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,63 +0,0 @@
# CrashSight 阻断报告 - c2f5f11d2a9d50d690f3862019b25715
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/c2f5f11d2a9d50d690f3862019b25715?pid=10
- 异常类型: NullReferenceException
- 阻断族: 单位渲染贴图空引用
- 发生次数: 114,856
- 首次/最近: 2026-04-22 02:06:45 ~ 2026-05-19 05:45:34
## 原始异常
异常消息: Object reference not set to an instance of an object.
关键堆栈: gaa.hcf () (at <00000000000000000000000000000000>.0)
## 反混淆结果
```text
## 9. c2f5f11d2a9d50d690f3862019b25715
Type: NullReferenceException
Count: 114,856
FirstSeen: 2026-04-22 02:06:45
LastSeen: 2026-05-19 05:45:34
Message: Object reference not set to an instance of an object.
KeyStack: gaa.hcf [方法: TH1_Renderer.UnitRenderer.RenderUpdateUnitSprite()] () (at <00000000000000000000000000000000>.0)
RawText: c2f5f11d2a9d50d690f3862019b25715 NullReferenceException 异常消息Object reference not set to an instance of an object. 关键堆栈gaa.hcf [方法: TH1_Renderer.UnitRenderer.RenderUpdateUnitSprite()] () (at <00000000000000000000000000000000>.0) 2026-04-22 02:06:45 ~ 2026-05-19 05:45:34 添加标签 2026-05-19 05:45:34 114,856 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/c2f5f11d2a9d50d690f3862019b25715?pid=10
{
"id [类型: Logic.Action.BuildWonderAction]": "c2f5f11d2a9d50d690f3862019b25715",
"url": "https://crashsight.qq.com [字段: Timer/TimerTask.target]/crash-reporting/errors/01076c49ce/c2f5f11d2a9d50d690f3862019b25715?pid=10",
"occurrence": "127,563",
"devices": "16",
"appVersion": "\t",
"frames": [
"gaa.hcf [方法: TH1_Renderer.UnitRenderer.RenderUpdateUnitSprite()] () (at <00000000000000000000000000000000>.0)",
"gaa.hbu [方法: TH1_Renderer.UnitRenderer.InstantUpdateUnit(System.Boolean)] (System.Boolean a) (at <00000000000000000000000000000000>.0)",
"gcs.des [方法: TH1_Anim.Fragments.FragmentNotMoveKill.<.ctor>b__2_1()] () (at <00000000000000000000000000000000>.0)",
"gch.den [方法: TH1_Anim.Fragments.FragmentBase.UpdateSteps(System.Single)] (System.Single a) (at <00000000000000000000000000000000>.0)",
"gao.hcs [方法: TH1_Anim.FragmentManager.UpdateFragment(TH1_Anim.Fragments.FragmentBase)] (gch [类型: TH1_Anim.Fragments.FragmentBase] a) (at <00000000000000000000000000000000>.0)",
"TH1_Logic.Core.Main.Update ()
...(已截断,原文见 Temp/CrashSight/Daily_2026-05-19
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Renderer/UnitRenderer.cs:90 - 构造器未校验 Unit/Grid/Player 查找结果
- F:/th1new/Unity/Assets/Scripts/TH1_Renderer/UnitRenderer.cs:594 - 直接刷新单位 sprite
- F:/th1new/Unity/Assets/Scripts/TH1_Renderer/MapRenderer.cs:435 - 新单位渲染器创建入口
## 触发原因与阻断判断
判断: 单位动画/击杀/创建后的表现层刷新被打断,列表中这是最高频空引用族。
原因: 单位视觉刷新进入 `RenderUpdateUnitSprite`,该函数直接访问 `Table.Instance.UnitTypeDataAssets``_unitData``_unitMono.SpriteRenderer`。构造器里 `GetUnitDataByUnitId/GetGridDataByUnitId` 没有检查返回值,动画或延迟刷新期间数据层与表现层不同步时会空引用。
## 建议
`UnitRenderer` 构造与 `RenderUpdateUnitSprite` 做缺失数据/组件保护;同时追查为何 `ROUnitMap` 里会创建到数据不完整的单位渲染器。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,48 +0,0 @@
# CrashSight 阻断报告 - 1ba92fdc29a70c669183e2ca448f5556
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/1ba92fdc29a70c669183e2ca448f5556?pid=10
- 异常类型: NullReferenceException
- 阻断族: 单位渲染贴图空引用
- 发生次数: 112,762
- 首次/最近: 2026-05-16 12:32:34 ~ 2026-05-18 19:07:22
## 原始异常
异常消息: Object reference not set to an instance of an object.
关键堆栈: gaa.hcf () (at <00000000000000000000000000000000>.0)
## 反混淆结果
```text
## 10. 1ba92fdc29a70c669183e2ca448f5556
Type: NullReferenceException
Count: 112,762
FirstSeen: 2026-05-16 12:32:34
LastSeen: 2026-05-18 19:07:22
Message: Object reference not set to an instance of an object.
KeyStack: gaa.hcf [方法: TH1_Renderer.UnitRenderer.RenderUpdateUnitSprite()] () (at <00000000000000000000000000000000>.0)
RawText: 1ba92fdc29a70c669183e2ca448f5556 NullReferenceException 异常消息Object reference not set to an instance of an object. 关键堆栈gaa.hcf [方法: TH1_Renderer.UnitRenderer.RenderUpdateUnitSprite()] () (at <00000000000000000000000000000000>.0) 2026-05-16 12:32:34 ~ 2026-05-18 19:07:22 添加标签 2026-05-18 19:07:22 112,762 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/1ba92fdc29a70c669183e2ca448f5556?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Renderer/UnitRenderer.cs:90 - 构造器未校验 Unit/Grid/Player 查找结果
- F:/th1new/Unity/Assets/Scripts/TH1_Renderer/UnitRenderer.cs:594 - 直接刷新单位 sprite
- F:/th1new/Unity/Assets/Scripts/TH1_Renderer/MapRenderer.cs:435 - 新单位渲染器创建入口
## 触发原因与阻断判断
判断: 单位动画/击杀/创建后的表现层刷新被打断,列表中这是最高频空引用族。
原因: 单位视觉刷新进入 `RenderUpdateUnitSprite`,该函数直接访问 `Table.Instance.UnitTypeDataAssets``_unitData``_unitMono.SpriteRenderer`。构造器里 `GetUnitDataByUnitId/GetGridDataByUnitId` 没有检查返回值,动画或延迟刷新期间数据层与表现层不同步时会空引用。
## 建议
`UnitRenderer` 构造与 `RenderUpdateUnitSprite` 做缺失数据/组件保护;同时追查为何 `ROUnitMap` 里会创建到数据不完整的单位渲染器。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,49 +0,0 @@
# CrashSight 阻断报告 - ce08b596a8c67475bbcb22e6b0e0d955
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/ce08b596a8c67475bbcb22e6b0e0d955?pid=10
- 异常类型: NullReferenceException
- 阻断族: 单位渲染贴图空引用
- 发生次数: 90,189
- 首次/最近: 2026-04-25 16:30:18 ~ 2026-05-18 15:20:47
- 列表版本: 0.7.1b ~ 0.7.1j
## 原始异常
异常消息: Object reference not set to an instance of an object.
关键堆栈: gaa.hcf () (at <00000000000000000000000000000000>.0)
## 反混淆结果
```text
## 11. ce08b596a8c67475bbcb22e6b0e0d955
Type: NullReferenceException
Count: 90,189
FirstSeen: 2026-04-25 16:30:18
LastSeen: 2026-05-18 15:20:47
Message: Object reference not set to an instance of an object.
KeyStack: gaa.hcf [方法: TH1_Renderer.UnitRenderer.RenderUpdateUnitSprite()] () (at <00000000000000000000000000000000>.0)
RawText: ce08b596a8c67475bbcb22e6b0e0d955 NullReferenceException 异常消息Object reference not set to an instance of an object. 关键堆栈gaa.hcf [方法: TH1_Renderer.UnitRenderer.RenderUpdateUnitSprite()] () (at <00000000000000000000000000000000>.0) 0.7.1b ~ 0.7.1j 2026-04-25 16:30:18 ~ 2026-05-18 15:20:47 添加标签 2026-05-18 15:20:47 90,189 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/ce08b596a8c67475bbcb22e6b0e0d955?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Renderer/UnitRenderer.cs:90 - 构造器未校验 Unit/Grid/Player 查找结果
- F:/th1new/Unity/Assets/Scripts/TH1_Renderer/UnitRenderer.cs:594 - 直接刷新单位 sprite
- F:/th1new/Unity/Assets/Scripts/TH1_Renderer/MapRenderer.cs:435 - 新单位渲染器创建入口
## 触发原因与阻断判断
判断: 单位动画/击杀/创建后的表现层刷新被打断,列表中这是最高频空引用族。
原因: 单位视觉刷新进入 `RenderUpdateUnitSprite`,该函数直接访问 `Table.Instance.UnitTypeDataAssets``_unitData``_unitMono.SpriteRenderer`。构造器里 `GetUnitDataByUnitId/GetGridDataByUnitId` 没有检查返回值,动画或延迟刷新期间数据层与表现层不同步时会空引用。
## 建议
`UnitRenderer` 构造与 `RenderUpdateUnitSprite` 做缺失数据/组件保护;同时追查为何 `ROUnitMap` 里会创建到数据不完整的单位渲染器。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,49 +0,0 @@
# CrashSight 阻断报告 - 26ff9aa4b24e5067eee86d2ed3239506
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/26ff9aa4b24e5067eee86d2ed3239506?pid=10
- 异常类型: UnityLogError
- 阻断族: 延迟创建单位后的表现层空引用
- 发生次数: 52,309
- 首次/最近: 2026-04-25 14:47:47 ~ 2026-05-19 03:42:57
## 原始异常
异常消息: Timer任务执行异常: 错误信息: REISEN ILLUSION ADDUNITDATA 异常类型: System.NullReferenceException 异常信息: Object reference not set to an instance of an object. 调用堆栈: at fj.bgi () [0x00000] in <00000000000000000000000000000000>:0 at cfo+zr.dbd () [0x00000] in <00000000000000000000000000000000>:0 at i.oj () [0x00000] in <00000000000000000000000000000000>:0 at TH1_Logic.Core.Main.Update () [0x00000] in <00000000000000000000000000000000>:0 目标对象: cfo
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 12. 26ff9aa4b24e5067eee86d2ed3239506
Type: UnityLogError
Count: 52,309
FirstSeen: 2026-04-25 14:47:47
LastSeen: 2026-05-19 03:42:57
Message: Timer任务执行异常: 错误信息: REISEN ILLUSION ADDUNITDATA 异常类型: System.NullReferenceException 异常信息: Object reference not set to an instance of an object. 调用堆栈: at fj.bgi [方法: TH1Renderer.MapRenderer.RenderUpdateUnitMap()] () [0x00000] in <00000000000000000000000000000000>:0 at cfo [类型: RuntimeData.MapData]+zr [类型: RuntimeData.MapData/<>c__DisplayClass116_0].dbd [方法: RuntimeData.MapData.GetMapArchiveKind(System.Boolean,System.Boolean)] () [0x00000] in <00000000000000000000000000000000>:0 at i.oj [方法: Timer.Update()] () [0x00000] in <00000000000000000000000000000000>:0 at TH1_Logic.Core.Main.Update () [0x00000] in <00000000000000000000000000000000>:0 目标对象: cfo [类型: RuntimeData.MapData]
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: 26ff9aa4b24e5067eee86d2ed3239506 UnityLogError 异常消息Timer任务执行异常: 错误信息: REISEN ILLUSION ADDUNITDATA 异常类型: System.NullReferenceException 异常信息: Object reference not set to an instance of an object. 调用堆栈: at fj.bgi [方法: TH1Renderer.MapRenderer.RenderUpdateUnitMap()] () [0x00000] in <00000000000000000000000000000000>:0 at cfo [类型: RuntimeData.MapData]+zr [类型: RuntimeData.MapData/<>c__DisplayClass116_0].dbd [方法: RuntimeData.MapData.GetMapArchiveKind(System.Boolean,System.Boolean)] () [0x00000] in <00000000000000000000000000000000>:0 at i.oj [方法: Timer.Update()] () [0x00000] in <00000000000000000000000000000000>:0 at TH1_Logic.Core.Main.Update () [0x00000] in <00000000000000000000000000000000>:0 目标对象: cfo [类型: RuntimeData.MapData] 关键堆栈UnityEngine.Debug.LogError(Object) 2026-04-25 14:47:47 ~ 2026-05-19 03:42:57 添加标签 2026-05-19 03:42:57 52,309 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/26ff9aa4b24e5067eee8
...(已截断,原文见 Temp/CrashSight/Daily_2026-05-19
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Data/MapData.cs:1108 - AddUnitData 创建单位
- F:/th1new/Unity/Assets/Scripts/TH1_Data/MapData.cs:1132 - 注册延迟表现层回调
- F:/th1new/Unity/Assets/Scripts/TH1_Renderer/MapRenderer.cs:435 - 补建 UnitRenderer
## 触发原因与阻断判断
判断: 技能/行动创建单位后画面刷新失败,可能连续刷屏并阻断当前帧。
原因: `MapData.AddUnitData` 注册了名为 `REISEN ILLUSION ADDUNITDATA` 的延迟 Timer回调里调用 `MapRenderer.Instance.RenderUpdateUnitMap()``tmpUnit.Renderer(...).InstantUpdateUnit(true)`。如果 Timer 执行时地图或渲染器已切换/销毁,或新增单位缺少对应 Renderer就会空引用。
## 建议
Timer 回调执行前校验 `Main.MapData == this``MapRenderer.Instance``tmpUnit``Renderer`;必要时让表现层延迟任务在退出战局时统一取消。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,48 +0,0 @@
# CrashSight 阻断报告 - 796f09335d7497bcfae707506d8a862c
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/796f09335d7497bcfae707506d8a862c?pid=10
- 异常类型: UnityLogError
- 阻断族: AI 行为循环/重复 action
- 发生次数: 21,998
- 首次/最近: 2025-10-26 19:35:16 ~ 2026-05-19 12:19:47
## 原始异常
异常消息: 死循环了
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 13. 796f09335d7497bcfae707506d8a862c
Type: UnityLogError
Count: 21,998
FirstSeen: 2025-10-26 19:35:16
LastSeen: 2026-05-19 12:19:47
Message: 死循环了
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: 796f09335d7497bcfae707506d8a862c UnityLogError 异常消息死循环了 关键堆栈UnityEngine.Debug.LogError(Object) 2025-10-26 19:35:16 ~ 2026-05-19 12:19:47 添加标签 2026-05-19 12:19:47 21,998 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/796f09335d7497bcfae707506d8a862c?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/AI/AIActionBase.cs:521 - AI 策略循环保护
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/AI/AILogic.cs:160 - BT 行为树循环保护
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/AI/AILogic.cs:216 - 重复 action 检测
## 触发原因与阻断判断
判断: AI 回合可能变慢、提前结束或重复无效行为,玩家感知为卡回合/AI 不行动。
原因: AI 行为树或策略计算超过保护阈值,或连续选择相同 action 超过次数。当前代码会打日志并 break/继续,但说明 AI 没能收敛到有效下一步。
## 建议
用记录点 `BTNodeId` 和 action 类型回查对应 BT 节点的退出条件;重复 action 要检查执行后是否真正改变了评分输入。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,46 +0,0 @@
# CrashSight 阻断报告 - 65db1d60ea0aaf171cc5d70c01c39643
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/65db1d60ea0aaf171cc5d70c01c39643?pid=10
- 异常类型: UnityLogError
- 阻断族: 地图信息快捷键在无地图状态触发
- 发生次数: 9,980
- 首次/最近: 2026-01-17 01:23:30 ~ 2026-05-19 12:15:57
## 原始异常
异常消息: OnGridInfoAction Error: Main.MapData is null
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 14. 65db1d60ea0aaf171cc5d70c01c39643
Type: UnityLogError
Count: 9,980
FirstSeen: 2026-01-17 01:23:30
LastSeen: 2026-05-19 12:15:57
Message: OnGridInfoAction Error: Main.MapData is null
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: 65db1d60ea0aaf171cc5d70c01c39643 UnityLogError 异常消息OnGridInfoAction Error: Main.MapData is null 关键堆栈UnityEngine.Debug.LogError(Object) 2026-01-17 01:23:30 ~ 2026-05-19 12:15:57 添加标签 2026-05-19 12:15:57 9,980 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/65db1d60ea0aaf171cc5d70c01c39643?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Input/InputLogic.cs:376 - GridInfo 快捷键入口
## 触发原因与阻断判断
判断: 快捷键无效,一般不崩溃,但在状态切换窗口反复触发会刷错误。
原因: `InputLogic.OnGridInfoAction` 运行时 `Main.MapData` 或 UI 管理器为空,说明输入逻辑仍在菜单/切图/退出战局阶段响应快捷键。
## 建议
在输入系统上层按 GameState 屏蔽战局快捷键;日志级别可降为 warning 或加节流。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,53 +0,0 @@
# CrashSight 阻断报告 - 2a53ae4aba8e11782514659306895672
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/2a53ae4aba8e11782514659306895672?pid=10
- 异常类型: UnityLogError
- 阻断族: 多人地图/Action 同步不一致
- 发生次数: 5,904
- 首次/最近: 2026-01-16 18:48:08 ~ 2026-05-19 02:22:03
## 原始异常
异常消息: -
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 2a53ae4aba8e11782514659306895672
异常名: UnityLogError
首次上报异常消息: -
累计发生次数: 48,921
筛选版本内可见: 0.7.1i 5,904
Stack Trace:
UnityEngine.Debug.LogError(Object)
cfo.iqk [方法: RuntimeData.MapData.FindDifferences(RuntimeData.MapData)](cfo [类型: RuntimeData.MapData])
cxb.ggu [方法: TH1_Logic.Steam.GameNetReceiver.OnReceivedForceUpdate(TH1_Logic.Steam.ForceUpdateMessage)](eor [类型: TH1_Logic.Steam.ForceUpdateMessage])
cxb.ggn [方法: TH1_Logic.Steam.GameNetReceiver.OnMessageReceived(System.Byte[])](Byte[])
bae.frx [方法: TH1_Logic.Steam.SimpleP2P.PollMessagesForConnection(Steamworks.CSteamID,Steamworks.HSteamNetConnection)](CSteamID, HSteamNetConnection)
bae.frw [方法: TH1_Logic.Steam.SimpleP2P.PollMessages()]()
bag.fud [方法: TH1_Logic.Steam.SteamLobbyManager.Update()]()
TH1_Logic.Core.Main.Update()
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Steam/GameNetReceiver.cs:198 - MapConfirm 校验
- F:/th1new/Unity/Assets/Scripts/TH1_Data/MapData.cs:2603 - FindDifferences 输出差异
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Action/ActionLogic.cs:1196 - 执行后比对 CheckMapData
## 触发原因与阻断判断
判断: 多人同步阻断,可能触发 ForceUpdate、回滚/恢复,严重时双方继续分叉。
原因: MapConfirm/ForceUpdate 发现 action 索引、ActionData 或 MapHash 不一致。`MapData.FindDifferences` 会输出前后 action 和对象字段差异;这表示至少一个 peer 的权威地图已经分叉。
## 建议
按报告中的“前/后 Action”回查该 action 的 `Execute` 是否使用非确定随机、真实 UI/Renderer、副作用或未同步字段ForceUpdate 应保持原子恢复。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,48 +0,0 @@
# CrashSight 阻断报告 - a44713ba0089d278a3f635e22310a7d5
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/a44713ba0089d278a3f635e22310a7d5?pid=10
- 异常类型: UnityLogError
- 阻断族: 多人地图/Action 同步不一致
- 发生次数: 5,074
- 首次/最近: 2026-05-16 20:46:50 ~ 2026-05-19 11:31:24
## 原始异常
异常消息: 房主端:!Main.MapData.Net.Actions[message.Index - 1].IsEqual(message.ActionData)
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 15. a44713ba0089d278a3f635e22310a7d5
Type: UnityLogError
Count: 5,074
FirstSeen: 2026-05-16 20:46:50
LastSeen: 2026-05-19 11:31:24
Message: 房主端:!Main.MapData.Net.Actions[message.Index - 1].IsEqual(message.ActionData)
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: a44713ba0089d278a3f635e22310a7d5 UnityLogError 异常消息房主端:!Main.MapData.Net.Actions[message.Index - 1].IsEqual(message.ActionData) 关键堆栈UnityEngine.Debug.LogError(Object) 2026-05-16 20:46:50 ~ 2026-05-19 11:31:24 添加标签 2026-05-19 11:31:24 5,074 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/a44713ba0089d278a3f635e22310a7d5?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Steam/GameNetReceiver.cs:198 - MapConfirm 校验
- F:/th1new/Unity/Assets/Scripts/TH1_Data/MapData.cs:2603 - FindDifferences 输出差异
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Action/ActionLogic.cs:1196 - 执行后比对 CheckMapData
## 触发原因与阻断判断
判断: 多人同步阻断,可能触发 ForceUpdate、回滚/恢复,严重时双方继续分叉。
原因: MapConfirm/ForceUpdate 发现 action 索引、ActionData 或 MapHash 不一致。`MapData.FindDifferences` 会输出前后 action 和对象字段差异;这表示至少一个 peer 的权威地图已经分叉。
## 建议
按报告中的“前/后 Action”回查该 action 的 `Execute` 是否使用非确定随机、真实 UI/Renderer、副作用或未同步字段ForceUpdate 应保持原子恢复。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,48 +0,0 @@
# CrashSight 阻断报告 - 56b4d17c02d358a02bb15f3df10f0465
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/56b4d17c02d358a02bb15f3df10f0465?pid=10
- 异常类型: UnityLogError
- 阻断族: AI 行为循环/重复 action
- 发生次数: 4,662
- 首次/最近: 2025-10-26 19:46:58 ~ 2026-05-19 12:18:45
## 原始异常
异常消息: 死循环了,最终记录点为:194
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 16. 56b4d17c02d358a02bb15f3df10f0465
Type: UnityLogError
Count: 4,662
FirstSeen: 2025-10-26 19:46:58
LastSeen: 2026-05-19 12:18:45
Message: 死循环了,最终记录点为:194
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: 56b4d17c02d358a02bb15f3df10f0465 UnityLogError 异常消息死循环了,最终记录点为:194 关键堆栈UnityEngine.Debug.LogError(Object) 2025-10-26 19:46:58 ~ 2026-05-19 12:18:45 添加标签 2026-05-19 12:18:45 4,662 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/56b4d17c02d358a02bb15f3df10f0465?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/AI/AIActionBase.cs:521 - AI 策略循环保护
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/AI/AILogic.cs:160 - BT 行为树循环保护
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/AI/AILogic.cs:216 - 重复 action 检测
## 触发原因与阻断判断
判断: AI 回合可能变慢、提前结束或重复无效行为,玩家感知为卡回合/AI 不行动。
原因: AI 行为树或策略计算超过保护阈值,或连续选择相同 action 超过次数。当前代码会打日志并 break/继续,但说明 AI 没能收敛到有效下一步。
## 建议
用记录点 `BTNodeId` 和 action 类型回查对应 BT 节点的退出条件;重复 action 要检查执行后是否真正改变了评分输入。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,73 +0,0 @@
# CrashSight 阻断报告 - 1afa8d1474aa94fd1fd6344f8fab3984
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/1afa8d1474aa94fd1fd6344f8fab3984?pid=10
- 异常类型: UnityLogError
- 阻断族: 多人地图/Action 同步不一致
- 发生次数: 4,111
- 首次/最近: 2026-05-16 20:54:35 ~ 2026-05-18 22:42:56
## 原始异常
异常消息: -
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 1afa8d1474aa94fd1fd6344f8fab3984
异常名: UnityLogError
首次上报异常消息: -
累计发生次数: 4,111
版本: 0.7.1j 4,111
Stack Trace:
UnityEngine.Debug.LogError(Object)
cfo.iqk [方法: RuntimeData.MapData.FindDifferences(RuntimeData.MapData)](cfo [类型: RuntimeData.MapData])
cxb.ggu [方法: TH1_Logic.Steam.GameNetReceiver.OnReceivedForceUpdate(TH1_Logic.Steam.ForceUpdateMessage)](eor [类型: TH1_Logic.Steam.ForceUpdateMessage])
cxb.ggn [方法: TH1_Logic.Steam.GameNetReceiver.OnMessageReceived(System.Byte[])](Byte[])
bae.lim [方法: TH1_Logic.Steam.SimpleP2P.TryHandleOrderedMessage(Steamworks.CSteamID,System.Byte[])](CSteamID, Byte[])
bae [类型: TH1_Logic.Steam.SimpleP2P].kci [字段: TH1_Logic.Steam.SteamLobbyManager.SteamSessionCheckInterval](CSteamID, Byte[])
bae.frx [方法: TH1_Logic.Steam.SimpleP2P.PollMessagesForConnection(Steamworks.CSteamID,Steamworks.HSteamNetConnection)](CSteamID, HSteamNetConnection)
bae.frw [方法: TH1_Logic.Steam.SimpleP2P.PollMessages()]()
bag.fud [方法: TH1_Logic.Steam.SteamLobbyManager.Update()]()
TH1_Logic.Core.Main.Update()
---- OPS 反混淆摘要 ----
映射: F:\th1new\Tools\OPSFile.txt
版本: 4.0
命中: 29, 唯一名称: 12
bae x1 -> 类型: TH1_Logic.Steam.SimpleP2P
bae.frw x3 -> 方法: TH1_Logic.Steam.SimpleP2P.PollMessages()
bae.frx x3 -> 方法: TH1_Logic.Steam.SimpleP2P.PollMessagesForConnection(Steamworks.CSteamID,Steamworks.HSteamNetConnection)
bae.lik x1 -> 方法: TH1_Logic.Steam.SimpleP2P.HandleReceivedConnectionPayload(Steamworks.CSteamID,System.Byte[])
bae.lim x2 -> 方法: TH1_Logic.Steam.SimpleP2P.TryHandleOrderedMessage(Steamworks.CSteamID,System.Byte[])
bag.fud x3 -> 方法: TH1_Logic.Steam.SteamLobbyManager.Update()
cfo x3 -> 类型: RuntimeData.MapData
cfo.iqk x3 -> 方法: RuntimeData.MapData.FindDifferences(RuntimeData.MapData)
cxb.ggn x3 -> 方法: TH1_Logic.Steam.GameNetReceiver.OnMessageReceived(System.Byte[])
cxb.ggu x3 -
...(已截断,原文见 Temp/CrashSight/Daily_2026-05-19
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Steam/GameNetReceiver.cs:198 - MapConfirm 校验
- F:/th1new/Unity/Assets/Scripts/TH1_Data/MapData.cs:2603 - FindDifferences 输出差异
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Action/ActionLogic.cs:1196 - 执行后比对 CheckMapData
## 触发原因与阻断判断
判断: 多人同步阻断,可能触发 ForceUpdate、回滚/恢复,严重时双方继续分叉。
原因: MapConfirm/ForceUpdate 发现 action 索引、ActionData 或 MapHash 不一致。`MapData.FindDifferences` 会输出前后 action 和对象字段差异;这表示至少一个 peer 的权威地图已经分叉。
## 建议
按报告中的“前/后 Action”回查该 action 的 `Execute` 是否使用非确定随机、真实 UI/Renderer、副作用或未同步字段ForceUpdate 应保持原子恢复。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,62 +0,0 @@
# CrashSight 阻断报告 - f265b22ed588ade410a2ac21b26cc9d3
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/f265b22ed588ade410a2ac21b26cc9d3?pid=10
- 异常类型: NullReferenceException
- 阻断族: 单位防御 UI 空引用
- 发生次数: 3,752
- 首次/最近: 2026-05-16 02:06:13 ~ 2026-05-18 16:58:55
## 原始异常
异常消息: Object reference not set to an instance of an object.
关键堆栈: sy.dsx (System.Single a) (at <00000000000000000000000000000000>.0)
## 反混淆结果
```text
## 17. f265b22ed588ade410a2ac21b26cc9d3
Type: NullReferenceException
Count: 3,752
FirstSeen: 2026-05-16 02:06:13
LastSeen: 2026-05-18 16:58:55
Message: Object reference not set to an instance of an object.
KeyStack: sy.dsx [方法: UnitMono.UpdateUnitDefense(System.Single)] (System.Single a) (at <00000000000000000000000000000000>.0)
RawText: f265b22ed588ade410a2ac21b26cc9d3 NullReferenceException 异常消息Object reference not set to an instance of an object. 关键堆栈sy.dsx [方法: UnitMono.UpdateUnitDefense(System.Single)] (System.Single a) (at <00000000000000000000000000000000>.0) 2026-05-16 02:06:13 ~ 2026-05-18 16:58:55 添加标签 2026-05-18 16:58:55 3,752 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/f265b22ed588ade410a2ac21b26cc9d3?pid=10
{
"id [类型: Logic.Action.BuildWonderAction]": "f265b22ed588ade410a2ac21b26cc9d3",
"url": "https://crashsight.qq.com [字段: Timer/TimerTask.target]/crash-reporting/errors/01076c49ce/f265b22ed588ade410a2ac21b26cc9d3?pid=10",
"occurrence": "3,752",
"devices": "6",
"appVersion": "\t",
"frames": [
"sy.dsx [方法: UnitMono.UpdateUnitDefense(System.Single)] (System.Single a) (at <00000000000000000000000000000000>.0)",
"gaa.hci [方法: TH1_Renderer.UnitRenderer.RenderUpdateUnitDefense()] () (at <00000000000000000000000000000000>.0)",
"gaa [类型: TH1_Renderer.UnitRenderer].def [方法: TH1_Anim.Fragments.FragmentAttackAndCounter.<.ctor>b__3_4()] (System.Boolean a) (at <00000000000000000000000000000000>.0)",
"gcs.des [方法: TH1_Anim.Fragments.FragmentNotMoveKill.<.ctor>b__2_1()] () (at <00000000000000000000000000000000>.0)",
"gch.den [方法: TH1_Anim.Fragments.FragmentBase.UpdateSteps(System.Single)] (System.Single a) (at <00000000000000000000000000000000>.0)",
"gao.hcs [方法: TH1_Anim.FragmentManager.UpdateFragment
...(已截断,原文见 Temp/CrashSight/Daily_2026-05-19
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Renderer/Prefab/UnitMono.cs:63 - 防御图标显示切换
- F:/th1new/Unity/Assets/Scripts/TH1_Renderer/UnitRenderer.cs:241 - 调用防御 UI 刷新
## 触发原因与阻断判断
判断: 单位信息条/防御图标刷新失败,通常跟单位动画刷新同一批发生。
原因: `RenderUpdateUnitDefense` 已校验 `_unitData`,但进入 `UnitMono.UpdateUnitDefense` 后直接访问 `Defense/SuperDefense/InfoGroup`。Prefab 子节点或绑定缺失时会在表现层空引用。
## 建议
检查 Unit prefab 上 `Defense``SuperDefense``InfoGroup` 绑定;`UpdateUnitDefense` 内增加组件空值保护并输出 prefab 名。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,48 +0,0 @@
# CrashSight 阻断报告 - 7e59d31c5414f422be1971de4fc715d6
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/7e59d31c5414f422be1971de4fc715d6?pid=10
- 异常类型: UnityLogError
- 阻断族: ForceUpdate/断线重连恢复
- 发生次数: 3,217
- 首次/最近: 2026-05-16 20:47:26 ~ 2026-05-19 10:36:05
## 原始异常
异常消息: 触发断线重连, 触发原因: OK
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 18. 7e59d31c5414f422be1971de4fc715d6
Type: UnityLogError
Count: 3,217
FirstSeen: 2026-05-16 20:47:26
LastSeen: 2026-05-19 10:36:05
Message: 触发断线重连, 触发原因: OK
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: 7e59d31c5414f422be1971de4fc715d6 UnityLogError 异常消息触发断线重连, 触发原因: OK 关键堆栈UnityEngine.Debug.LogError(Object) 2026-05-16 20:47:26 ~ 2026-05-19 10:36:05 添加标签 2026-05-19 10:36:05 3,217 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/7e59d31c5414f422be1971de4fc715d6?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Steam/GameNetReceiver.cs:264 - ForceUpdate 接收
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Steam/GameNetReceiver.cs:291 - 触发断线重连日志
- F:/th1new/Unity/Assets/Scripts/TH1_Data/MapData.cs:2603 - 差异比较日志
## 触发原因与阻断判断
判断: 玩家进入强制同步恢复状态,若恢复失败会回到前一状态或继续异常。
原因: 成员状态不是 OK 或主动请求恢复后,`OnReceivedForceUpdate` 记录触发原因并尝试 `NetResumeMatch`。详情中空消息问题来自 `MapData.FindDifferences` 输出了空字符串,说明恢复链路在比较/日志阶段也可能缺失有效差异文本。
## 建议
补强 `FindDifferences` 空差异时的日志;`NetResumeMatch` 前后保存/恢复状态,确保恢复失败不会半切换到 ForceUpdating。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,48 +0,0 @@
# CrashSight 阻断报告 - a53c6aa4008c4dbb39621d715d9c01bf
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/a53c6aa4008c4dbb39621d715d9c01bf?pid=10
- 异常类型: UnityLogError
- 阻断族: ForceUpdate/断线重连恢复
- 发生次数: 2,791
- 首次/最近: 2025-11-05 20:28:19 ~ 2026-05-19 03:08:39
## 原始异常
异常消息: 触发断线重连, 触发原因: OK
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 19. a53c6aa4008c4dbb39621d715d9c01bf
Type: UnityLogError
Count: 2,791
FirstSeen: 2025-11-05 20:28:19
LastSeen: 2026-05-19 03:08:39
Message: 触发断线重连, 触发原因: OK
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: a53c6aa4008c4dbb39621d715d9c01bf UnityLogError 异常消息触发断线重连, 触发原因: OK 关键堆栈UnityEngine.Debug.LogError(Object) 2025-11-05 20:28:19 ~ 2026-05-19 03:08:39 添加标签 2026-05-19 03:08:39 2,791 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/a53c6aa4008c4dbb39621d715d9c01bf?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Steam/GameNetReceiver.cs:264 - ForceUpdate 接收
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Steam/GameNetReceiver.cs:291 - 触发断线重连日志
- F:/th1new/Unity/Assets/Scripts/TH1_Data/MapData.cs:2603 - 差异比较日志
## 触发原因与阻断判断
判断: 玩家进入强制同步恢复状态,若恢复失败会回到前一状态或继续异常。
原因: 成员状态不是 OK 或主动请求恢复后,`OnReceivedForceUpdate` 记录触发原因并尝试 `NetResumeMatch`。详情中空消息问题来自 `MapData.FindDifferences` 输出了空字符串,说明恢复链路在比较/日志阶段也可能缺失有效差异文本。
## 建议
补强 `FindDifferences` 空差异时的日志;`NetResumeMatch` 前后保存/恢复状态,确保恢复失败不会半切换到 ForceUpdating。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,48 +0,0 @@
# CrashSight 阻断报告 - bf4d54516467bead4770c2b54ae9c533
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/bf4d54516467bead4770c2b54ae9c533?pid=10
- 异常类型: UnityLogError
- 阻断族: ForceUpdate/断线重连恢复
- 发生次数: 2,680
- 首次/最近: 2025-11-07 23:07:12 ~ 2026-05-19 03:31:46
## 原始异常
异常消息: 触发断线重连, 触发原因: Error
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 20. bf4d54516467bead4770c2b54ae9c533
Type: UnityLogError
Count: 2,680
FirstSeen: 2025-11-07 23:07:12
LastSeen: 2026-05-19 03:31:46
Message: 触发断线重连, 触发原因: Error
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: bf4d54516467bead4770c2b54ae9c533 UnityLogError 异常消息触发断线重连, 触发原因: Error 关键堆栈UnityEngine.Debug.LogError(Object) 2025-11-07 23:07:12 ~ 2026-05-19 03:31:46 添加标签 2026-05-19 03:31:46 2,680 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/bf4d54516467bead4770c2b54ae9c533?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Steam/GameNetReceiver.cs:264 - ForceUpdate 接收
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Steam/GameNetReceiver.cs:291 - 触发断线重连日志
- F:/th1new/Unity/Assets/Scripts/TH1_Data/MapData.cs:2603 - 差异比较日志
## 触发原因与阻断判断
判断: 玩家进入强制同步恢复状态,若恢复失败会回到前一状态或继续异常。
原因: 成员状态不是 OK 或主动请求恢复后,`OnReceivedForceUpdate` 记录触发原因并尝试 `NetResumeMatch`。详情中空消息问题来自 `MapData.FindDifferences` 输出了空字符串,说明恢复链路在比较/日志阶段也可能缺失有效差异文本。
## 建议
补强 `FindDifferences` 空差异时的日志;`NetResumeMatch` 前后保存/恢复状态,确保恢复失败不会半切换到 ForceUpdating。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,47 +0,0 @@
# CrashSight 阻断报告 - 5dc8189b572a6ab227b66fb2e8c007af
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/5dc8189b572a6ab227b66fb2e8c007af?pid=10
- 异常类型: UnityLogError
- 阻断族: 城市连接经验 Fragment 表现缺失
- 发生次数: 2,671
- 首次/最近: 2025-11-05 01:30:57 ~ 2026-05-19 12:19:22
## 原始异常
异常消息: Wrong With FragmentCityConnectExpUp lv=2,exp=1
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 21. 5dc8189b572a6ab227b66fb2e8c007af
Type: UnityLogError
Count: 2,671
FirstSeen: 2025-11-05 01:30:57
LastSeen: 2026-05-19 12:19:22
Message: Wrong With FragmentCityConnectExpUp lv=2,exp [方法: TH1_UI.View.Outside.UIOutsideWikiView.RebuildLayout(UnityEngine.RectTransform)]=1
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: 5dc8189b572a6ab227b66fb2e8c007af UnityLogError 异常消息Wrong With FragmentCityConnectExpUp lv=2,exp [方法: TH1_UI.View.Outside.UIOutsideWikiView.RebuildLayout(UnityEngine.RectTransform)]=1 关键堆栈UnityEngine.Debug.LogError(Object) 2025-11-05 01:30:57 ~ 2026-05-19 12:19:22 添加标签 2026-05-19 12:19:22 2,671 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/5dc8189b572a6ab227b66fb2e8c007af?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Anim/Fragments/FragmentCityConnenctExpUp.cs:69
- F:/th1new/Unity/Assets/Scripts/TH1_Anim/Fragments/FragmentData.cs:226
## 触发原因与阻断判断
判断: 阻断相关。该问题会影响当前表现队列、玩家操作、回合推进或多人同步,即使部分日志来自 try/catch也不能只按 debug 统计处理。
原因: FragmentCityConnectExpUp.OnUpdate 收到的 GridRenderer 或 CityInfoRenderer 为 null代码只记录错误并提前结束表现片段。CrashSight 中固定 lv=2, exp=1说明城市连接经验变动已经进入动画队列但表现层对象在播放时不存在或已经被重建。因为表现片段会丢掉本次城市连接经验反馈且可能与后续地图表现顺序错开按阻断风险处理。
## 建议
生成 FragmentCityConnectExpUpData 前校验 gridRenderer/cityInfoRenderer若城市信息 UI 可能重建,改为在 OnUpdate 时按 grid/city id 重新取 renderer同时补一条包含 gridId/cityId/actionId 的日志,确认是对象生命周期问题还是数据来源传空。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,48 +0,0 @@
# CrashSight 阻断报告 - 2226253bd624e6321b7938a4bcffa3f3
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/2226253bd624e6321b7938a4bcffa3f3?pid=10
- 异常类型: UnityLogError
- 阻断族: AI 行为循环/重复 action
- 发生次数: 2,538
- 首次/最近: 2026-05-14 18:03:34 ~ 2026-05-19 12:17:19
## 原始异常
异常消息: 存在相似action ,记录点为:756 ,Action为:Action : LearnTech Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : KanakoChivalry PlayerAction : None AIParam : AllClear Tech : KanakoChivalry CultureCardType : None 重复次数 :7
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 22. 2226253bd624e6321b7938a4bcffa3f3
Type: UnityLogError
Count: 2,538
FirstSeen: 2026-05-14 18:03:34
LastSeen: 2026-05-19 12:17:19
Message: 存在相似action ,记录点为:756 ,Action为:Action : LearnTech Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : KanakoChivalry PlayerAction : None AIParam : AllClear Tech : KanakoChivalry CultureCardType : None 重复次数 :7
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: 2226253bd624e6321b7938a4bcffa3f3 UnityLogError 异常消息存在相似action ,记录点为:756 ,Action为:Action : LearnTech Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : KanakoChivalry PlayerAction : None AIParam : AllClear Tech : KanakoChivalry CultureCardType : None 重复次数 :7 关键堆栈UnityEngine.Debug.LogError(Object) 2026-05-14 18:03:34 ~ 2026-05-19 12:17:19 添加标签 2026-05-19 12:17:19 2,538 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/2226253bd624e6321b7938a4bcffa3f3?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/AI/AIActionBase.cs:521 - AI 策略循环保护
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/AI/AILogic.cs:160 - BT 行为树循环保护
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/AI/AILogic.cs:216 - 重复 action 检测
## 触发原因与阻断判断
判断: AI 回合可能变慢、提前结束或重复无效行为,玩家感知为卡回合/AI 不行动。
原因: AI 行为树或策略计算超过保护阈值,或连续选择相同 action 超过次数。当前代码会打日志并 break/继续,但说明 AI 没能收敛到有效下一步。
## 建议
用记录点 `BTNodeId` 和 action 类型回查对应 BT 节点的退出条件;重复 action 要检查执行后是否真正改变了评分输入。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,48 +0,0 @@
# CrashSight 阻断报告 - 1403fc161994baeb41148d55f62dfa95
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/1403fc161994baeb41148d55f62dfa95?pid=10
- 异常类型: UnityLogError
- 阻断族: 多人地图/Action 同步不一致
- 发生次数: 2,308
- 首次/最近: 2026-05-17 06:57:10 ~ 2026-05-19 11:14:55
## 原始异常
异常消息: Map不一致前后Action Action : UnitAttack Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AllClear Tech : None CultureCardType : None 后Action : UnitAttack Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AllClear Tech : None CultureCardType : None
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 23. 1403fc161994baeb41148d55f62dfa95
Type: UnityLogError
Count: 2,308
FirstSeen: 2026-05-17 06:57:10
LastSeen: 2026-05-19 11:14:55
Message: Map不一致前后Action Action : UnitAttack Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AllClear Tech : None CultureCardType : None 后Action : UnitAttack Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AllClear Tech : None CultureCardType : None
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: 1403fc161994baeb41148d55f62dfa95 UnityLogError 异常消息Map不一致前后Action Action : UnitAttack Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AllClear Tech : None CultureCardType : None 后Action : UnitAttack Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AllClear Tech : None CultureCardType : None 关键堆栈UnityEngine.Debug.LogError(Object) 2026-05-17 06:57:10 ~ 2026-05-19 11:14:55 添加标签 2026-05-19 11:14:55 2,308 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/1403fc161994baeb41148d55f62dfa95?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Steam/GameNetReceiver.cs:198 - MapConfirm 校验
- F:/th1new/Unity/Assets/Scripts/TH1_Data/MapData.cs:2603 - FindDifferences 输出差异
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Action/ActionLogic.cs:1196 - 执行后比对 CheckMapData
## 触发原因与阻断判断
判断: 多人同步阻断,可能触发 ForceUpdate、回滚/恢复,严重时双方继续分叉。
原因: MapConfirm/ForceUpdate 发现 action 索引、ActionData 或 MapHash 不一致。`MapData.FindDifferences` 会输出前后 action 和对象字段差异;这表示至少一个 peer 的权威地图已经分叉。
## 建议
按报告中的“前/后 Action”回查该 action 的 `Execute` 是否使用非确定随机、真实 UI/Renderer、副作用或未同步字段ForceUpdate 应保持原子恢复。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,48 +0,0 @@
# CrashSight 阻断报告 - b866469ab3463180e9955c2314cb33b3
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/b866469ab3463180e9955c2314cb33b3?pid=10
- 异常类型: UnityLogError
- 阻断族: 多人地图/Action 同步不一致
- 发生次数: 2,238
- 首次/最近: 2026-05-14 17:40:46 ~ 2026-05-19 12:01:28
## 原始异常
异常消息: 房主端:!Main.MapData.Net.Actions[message.Index - 1].IsEqual(message.ActionData)
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 24. b866469ab3463180e9955c2314cb33b3
Type: UnityLogError
Count: 2,238
FirstSeen: 2026-05-14 17:40:46
LastSeen: 2026-05-19 12:01:28
Message: 房主端:!Main.MapData.Net.Actions[message.Index - 1].IsEqual(message.ActionData)
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: b866469ab3463180e9955c2314cb33b3 UnityLogError 异常消息房主端:!Main.MapData.Net.Actions[message.Index - 1].IsEqual(message.ActionData) 关键堆栈UnityEngine.Debug.LogError(Object) 2026-05-14 17:40:46 ~ 2026-05-19 12:01:28 添加标签 2026-05-19 12:01:28 2,238 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/b866469ab3463180e9955c2314cb33b3?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Steam/GameNetReceiver.cs:198 - MapConfirm 校验
- F:/th1new/Unity/Assets/Scripts/TH1_Data/MapData.cs:2603 - FindDifferences 输出差异
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Action/ActionLogic.cs:1196 - 执行后比对 CheckMapData
## 触发原因与阻断判断
判断: 多人同步阻断,可能触发 ForceUpdate、回滚/恢复,严重时双方继续分叉。
原因: MapConfirm/ForceUpdate 发现 action 索引、ActionData 或 MapHash 不一致。`MapData.FindDifferences` 会输出前后 action 和对象字段差异;这表示至少一个 peer 的权威地图已经分叉。
## 建议
按报告中的“前/后 Action”回查该 action 的 `Execute` 是否使用非确定随机、真实 UI/Renderer、副作用或未同步字段ForceUpdate 应保持原子恢复。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,48 +0,0 @@
# CrashSight 阻断报告 - c2df25d13582087196e86ff1d25e7b08
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/c2df25d13582087196e86ff1d25e7b08?pid=10
- 异常类型: UnityLogError
- 阻断族: AI 行为循环/重复 action
- 发生次数: 2,147
- 首次/最近: 2026-05-14 19:33:36 ~ 2026-05-19 12:14:24
## 原始异常
异常消息: 存在相似action ,记录点为:756 ,Action为:Action : LearnTech Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : KomeijiIndianRiding PlayerAction : None AIParam : AllClear Tech : KomeijiIndianRiding CultureCardType : None 重复次数 :7
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 25. c2df25d13582087196e86ff1d25e7b08
Type: UnityLogError
Count: 2,147
FirstSeen: 2026-05-14 19:33:36
LastSeen: 2026-05-19 12:14:24
Message: 存在相似action ,记录点为:756 ,Action为:Action : LearnTech Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : KomeijiIndianRiding PlayerAction : None AIParam : AllClear Tech : KomeijiIndianRiding CultureCardType : None 重复次数 :7
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: c2df25d13582087196e86ff1d25e7b08 UnityLogError 异常消息存在相似action ,记录点为:756 ,Action为:Action : LearnTech Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : KomeijiIndianRiding PlayerAction : None AIParam : AllClear Tech : KomeijiIndianRiding CultureCardType : None 重复次数 :7 关键堆栈UnityEngine.Debug.LogError(Object) 2026-05-14 19:33:36 ~ 2026-05-19 12:14:24 添加标签 2026-05-19 12:14:24 2,147 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/c2df25d13582087196e86ff1d25e7b08?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/AI/AIActionBase.cs:521 - AI 策略循环保护
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/AI/AILogic.cs:160 - BT 行为树循环保护
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/AI/AILogic.cs:216 - 重复 action 检测
## 触发原因与阻断判断
判断: AI 回合可能变慢、提前结束或重复无效行为,玩家感知为卡回合/AI 不行动。
原因: AI 行为树或策略计算超过保护阈值,或连续选择相同 action 超过次数。当前代码会打日志并 break/继续,但说明 AI 没能收敛到有效下一步。
## 建议
用记录点 `BTNodeId` 和 action 类型回查对应 BT 节点的退出条件;重复 action 要检查执行后是否真正改变了评分输入。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,48 +0,0 @@
# CrashSight 阻断报告 - b3cf21bf8d503dd4ea6e3b6ae2730db6
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/b3cf21bf8d503dd4ea6e3b6ae2730db6?pid=10
- 异常类型: UnityLogError
- 阻断族: AI 行为循环/重复 action
- 发生次数: 2,081
- 首次/最近: 2026-05-12 10:08:15 ~ 2026-05-19 12:11:54
## 原始异常
异常消息: 存在相似action ,记录点为:756 ,Action为:Action : LearnTech Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : KanakoFreeSpirit PlayerAction : None AIParam : AllClear Tech : KanakoFreeSpirit CultureCardType : None 重复次数 :6
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 26. b3cf21bf8d503dd4ea6e3b6ae2730db6
Type: UnityLogError
Count: 2,081
FirstSeen: 2026-05-12 10:08:15
LastSeen: 2026-05-19 12:11:54
Message: 存在相似action ,记录点为:756 ,Action为:Action : LearnTech Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : KanakoFreeSpirit PlayerAction : None AIParam : AllClear Tech : KanakoFreeSpirit CultureCardType : None 重复次数 :6
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: b3cf21bf8d503dd4ea6e3b6ae2730db6 UnityLogError 异常消息存在相似action ,记录点为:756 ,Action为:Action : LearnTech Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : KanakoFreeSpirit PlayerAction : None AIParam : AllClear Tech : KanakoFreeSpirit CultureCardType : None 重复次数 :6 关键堆栈UnityEngine.Debug.LogError(Object) 2026-05-12 10:08:15 ~ 2026-05-19 12:11:54 添加标签 2026-05-19 12:11:54 2,081 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/b3cf21bf8d503dd4ea6e3b6ae2730db6?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/AI/AIActionBase.cs:521 - AI 策略循环保护
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/AI/AILogic.cs:160 - BT 行为树循环保护
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/AI/AILogic.cs:216 - 重复 action 检测
## 触发原因与阻断判断
判断: AI 回合可能变慢、提前结束或重复无效行为,玩家感知为卡回合/AI 不行动。
原因: AI 行为树或策略计算超过保护阈值,或连续选择相同 action 超过次数。当前代码会打日志并 break/继续,但说明 AI 没能收敛到有效下一步。
## 建议
用记录点 `BTNodeId` 和 action 类型回查对应 BT 节点的退出条件;重复 action 要检查执行后是否真正改变了评分输入。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,48 +0,0 @@
# CrashSight 阻断报告 - 756186c6c4f65db55d23c6806b53f016
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/756186c6c4f65db55d23c6806b53f016?pid=10
- 异常类型: UnityLogError
- 阻断族: MemoryPack Union/协议反序列化失败
- 发生次数: 1,880
- 首次/最近: 2026-05-16 20:38:46 ~ 2026-05-19 11:24:28
## 原始异常
异常消息: 地图数据反序列化失败,可能是版本不兼容: Data read tag: 0 but not found in bid MemoryPackUnion annotations.
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 27. 756186c6c4f65db55d23c6806b53f016
Type: UnityLogError
Count: 1,880
FirstSeen: 2026-05-16 20:38:46
LastSeen: 2026-05-19 11:24:28
Message: 地图数据反序列化失败,可能是版本不兼容: Data read tag: 0 but [方法: Logic.AI.AIActionGenerator.GeneratorActionIds(Logic.AI.AICalculatorData,Logic.Action.CommonActionType)] not found in bid [类型: TH1_Logic.MatchConfig.MomentItemBase] MemoryPackUnion annotations.
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: 756186c6c4f65db55d23c6806b53f016 UnityLogError 异常消息地图数据反序列化失败,可能是版本不兼容: Data read tag: 0 but [方法: Logic.AI.AIActionGenerator.GeneratorActionIds(Logic.AI.AICalculatorData,Logic.Action.CommonActionType)] not found in bid [类型: TH1_Logic.MatchConfig.MomentItemBase] MemoryPackUnion annotations. 关键堆栈UnityEngine.Debug.LogError(Object) 2026-05-16 20:38:46 ~ 2026-05-19 11:24:28 添加标签 2026-05-19 11:24:28 1,880 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/756186c6c4f65db55d23c6806b53f016?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Steam/SteamObjectSerializer.cs:75 - BaseMessage MemoryPackUnion 列表
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Steam/GameNetReceiver.cs:19 - 反序列化 BaseMessage
- F:/th1new/Unity/Assets/Scripts/TH1_Data/MapData.cs:1914 - 地图数据反序列化异常捕获
## 触发原因与阻断判断
判断: 多人消息、ForceUpdate、存档/地图读取无法反序列化,属于硬阻断。
原因: MemoryPack 读到的 union tag 不在当前类型的 `[MemoryPackUnion]` 注解内。BaseMessage tag 84 明显超出当前 `BaseMessage` 1-17 范围,地图/配置里的 `MomentItemBase`、技能 union 也有类似版本不兼容风险。
## 建议
确认线上 0.7.1i/j/k 的 MemoryPackUnion 生成文件一致;新增 union 只能追加不重排;网络消息反序列化失败要丢弃并触发恢复,不应继续应用半包。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,48 +0,0 @@
# CrashSight 阻断报告 - 55b6169de3eeca6c2f01327c483d9ab0
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/55b6169de3eeca6c2f01327c483d9ab0?pid=10
- 异常类型: UnityLogError
- 阻断族: ForceUpdate/断线重连恢复
- 发生次数: 1,859
- 首次/最近: 2026-05-16 22:03:12 ~ 2026-05-19 12:13:51
## 原始异常
异常消息: 触发断线重连, 触发原因: Error
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 28. 55b6169de3eeca6c2f01327c483d9ab0
Type: UnityLogError
Count: 1,859
FirstSeen: 2026-05-16 22:03:12
LastSeen: 2026-05-19 12:13:51
Message: 触发断线重连, 触发原因: Error
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: 55b6169de3eeca6c2f01327c483d9ab0 UnityLogError 异常消息触发断线重连, 触发原因: Error 关键堆栈UnityEngine.Debug.LogError(Object) 2026-05-16 22:03:12 ~ 2026-05-19 12:13:51 添加标签 2026-05-19 12:13:51 1,859 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/55b6169de3eeca6c2f01327c483d9ab0?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Steam/GameNetReceiver.cs:264 - ForceUpdate 接收
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Steam/GameNetReceiver.cs:291 - 触发断线重连日志
- F:/th1new/Unity/Assets/Scripts/TH1_Data/MapData.cs:2603 - 差异比较日志
## 触发原因与阻断判断
判断: 玩家进入强制同步恢复状态,若恢复失败会回到前一状态或继续异常。
原因: 成员状态不是 OK 或主动请求恢复后,`OnReceivedForceUpdate` 记录触发原因并尝试 `NetResumeMatch`。详情中空消息问题来自 `MapData.FindDifferences` 输出了空字符串,说明恢复链路在比较/日志阶段也可能缺失有效差异文本。
## 建议
补强 `FindDifferences` 空差异时的日志;`NetResumeMatch` 前后保存/恢复状态,确保恢复失败不会半切换到 ForceUpdating。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,47 +0,0 @@
# CrashSight 阻断报告 - 22daa8e859b38818eb1ff2e620fbca73
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/22daa8e859b38818eb1ff2e620fbca73?pid=10
- 异常类型: UnityLogError
- 阻断族: 城市经验 Fragment 表现缺失
- 发生次数: 1,721
- 首次/最近: 2025-11-13 07:24:14 ~ 2026-05-19 12:19:22
## 原始异常
异常消息: Wrong With FragmentCityExpUp lv=2,exp=1
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 29. 22daa8e859b38818eb1ff2e620fbca73
Type: UnityLogError
Count: 1,721
FirstSeen: 2025-11-13 07:24:14
LastSeen: 2026-05-19 12:19:22
Message: Wrong With FragmentCityExpUp lv=2,exp [方法: TH1_UI.View.Outside.UIOutsideWikiView.RebuildLayout(UnityEngine.RectTransform)]=1
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: 22daa8e859b38818eb1ff2e620fbca73 UnityLogError 异常消息Wrong With FragmentCityExpUp lv=2,exp [方法: TH1_UI.View.Outside.UIOutsideWikiView.RebuildLayout(UnityEngine.RectTransform)]=1 关键堆栈UnityEngine.Debug.LogError(Object) 2025-11-13 07:24:14 ~ 2026-05-19 12:19:22 添加标签 2026-05-19 12:19:22 1,721 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/22daa8e859b38818eb1ff2e620fbca73?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Anim/Fragments/FragmentCityExpUp.cs:69
- F:/th1new/Unity/Assets/Scripts/TH1_Anim/Fragments/FragmentData.cs:226
## 触发原因与阻断判断
判断: 阻断相关。该问题会影响当前表现队列、玩家操作、回合推进或多人同步,即使部分日志来自 try/catch也不能只按 debug 统计处理。
原因: FragmentCityExpUp.OnUpdate 收到的 GridRenderer 或 CityInfoRenderer 为 null日志点在城市经验/等级 UI 更新前。CrashSight 中同样固定 lv=2, exp=1说明城市经验变动数据存在但表现层绑定失效当前实现会跳过弹动、经验条和金币/科技显示刷新。
## 建议
让 Fragment 保存稳定 id 而不是只保存 renderer 引用,播放前重新解析 CityInfoRenderer若 renderer 不存在,应同步触发一次非动画的 city info 刷新,避免玩家看到的城市等级/经验滞后。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,48 +0,0 @@
# CrashSight 阻断报告 - 545429cd05beed2cee3dcac190003169
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/545429cd05beed2cee3dcac190003169?pid=10
- 异常类型: UnityLogError
- 阻断族: ForceUpdate/断线重连恢复
- 发生次数: 1,640
- 首次/最近: 2026-05-16 12:23:20 ~ 2026-05-19 12:14:24
## 原始异常
异常消息: 触发断线重连, 触发原因: OK
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 30. 545429cd05beed2cee3dcac190003169
Type: UnityLogError
Count: 1,640
FirstSeen: 2026-05-16 12:23:20
LastSeen: 2026-05-19 12:14:24
Message: 触发断线重连, 触发原因: OK
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: 545429cd05beed2cee3dcac190003169 UnityLogError 异常消息触发断线重连, 触发原因: OK 关键堆栈UnityEngine.Debug.LogError(Object) 2026-05-16 12:23:20 ~ 2026-05-19 12:14:24 添加标签 2026-05-19 12:14:24 1,640 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/545429cd05beed2cee3dcac190003169?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Steam/GameNetReceiver.cs:264 - ForceUpdate 接收
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Steam/GameNetReceiver.cs:291 - 触发断线重连日志
- F:/th1new/Unity/Assets/Scripts/TH1_Data/MapData.cs:2603 - 差异比较日志
## 触发原因与阻断判断
判断: 玩家进入强制同步恢复状态,若恢复失败会回到前一状态或继续异常。
原因: 成员状态不是 OK 或主动请求恢复后,`OnReceivedForceUpdate` 记录触发原因并尝试 `NetResumeMatch`。详情中空消息问题来自 `MapData.FindDifferences` 输出了空字符串,说明恢复链路在比较/日志阶段也可能缺失有效差异文本。
## 建议
补强 `FindDifferences` 空差异时的日志;`NetResumeMatch` 前后保存/恢复状态,确保恢复失败不会半切换到 ForceUpdating。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,48 +0,0 @@
# CrashSight 阻断报告 - fd93d00a817d5446b322efdf5f343834
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/fd93d00a817d5446b322efdf5f343834?pid=10
- 异常类型: UnityLogError
- 阻断族: Action 执行玩家不一致 (BuyCultureCard)
- 发生次数: 1,611
- 首次/最近: 2026-04-11 16:20:02 ~ 2026-05-19 12:08:17
## 原始异常
异常消息: CompleteExecute Player 不一致 Action : BuyCultureCard Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AllClear Tech : None CultureCardType : SecondHero
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 31. fd93d00a817d5446b322efdf5f343834
Type: UnityLogError
Count: 1,611
FirstSeen: 2026-04-11 16:20:02
LastSeen: 2026-05-19 12:08:17
Message: CompleteExecute Player 不一致 Action : BuyCultureCard Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AllClear Tech : None CultureCardType : SecondHero
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: fd93d00a817d5446b322efdf5f343834 UnityLogError 异常消息CompleteExecute Player 不一致 Action : BuyCultureCard Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AllClear Tech : None CultureCardType : SecondHero 关键堆栈UnityEngine.Debug.LogError(Object) 2026-04-11 16:20:02 ~ 2026-05-19 12:08:17 添加标签 2026-05-19 12:08:17 1,611 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/fd93d00a817d5446b322efdf5f343834?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Action/ActionLogic.cs:1105 - CompleteExecute 玩家一致性检查
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/AI/AILogic.cs:240 - AI 最终执行 action
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Steam/GameNetReceiver.cs:142 - 网络 action 执行入口
## 触发原因与阻断判断
判断: 对应 action 被拦截不执行;如果发生在 AI 或同步链路,会造成卡回合或双方状态分叉。
原因: `ActionLogicBase.CompleteExecute` 要求 `actionParams.PlayerId` 等于 `MapData.CurPlayer.Id`。这里 action 的归属玩家与当前回合玩家不同,函数直接返回 false。常见来源是 AI/网络/回放参数刷新到错误 MapData或 UI 缓存了上一回合 action。
## 建议
回查该 action 的构参处,确保 `CommonActionParams.MapData``PlayerData``PlayerId` 在执行前调用 `RefreshParams/OnParamChanged` 并跟随当前回合。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,48 +0,0 @@
# CrashSight 阻断报告 - ac184f0517914cffc2b8ff14d55aaab0
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/ac184f0517914cffc2b8ff14d55aaab0?pid=10
- 异常类型: UnityLogError
- 阻断族: AI 行为循环/重复 action
- 发生次数: 1,582
- 首次/最近: 2026-04-12 15:46:36 ~ 2026-05-19 10:59:25
## 原始异常
异常消息: 存在相似action ,记录点为:18 ,Action为:Action : BuyCultureCard Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AllClear Tech : None CultureCardType : SecondHero 重复次数 :6
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 32. ac184f0517914cffc2b8ff14d55aaab0
Type: UnityLogError
Count: 1,582
FirstSeen: 2026-04-12 15:46:36
LastSeen: 2026-05-19 10:59:25
Message: 存在相似action ,记录点为:18 ,Action为:Action : BuyCultureCard Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AllClear Tech : None CultureCardType : SecondHero 重复次数 :6
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: ac184f0517914cffc2b8ff14d55aaab0 UnityLogError 异常消息存在相似action ,记录点为:18 ,Action为:Action : BuyCultureCard Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AllClear Tech : None CultureCardType : SecondHero 重复次数 :6 关键堆栈UnityEngine.Debug.LogError(Object) 2026-04-12 15:46:36 ~ 2026-05-19 10:59:25 添加标签 2026-05-19 10:59:25 1,582 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/ac184f0517914cffc2b8ff14d55aaab0?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/AI/AIActionBase.cs:521 - AI 策略循环保护
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/AI/AILogic.cs:160 - BT 行为树循环保护
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/AI/AILogic.cs:216 - 重复 action 检测
## 触发原因与阻断判断
判断: AI 回合可能变慢、提前结束或重复无效行为,玩家感知为卡回合/AI 不行动。
原因: AI 行为树或策略计算超过保护阈值,或连续选择相同 action 超过次数。当前代码会打日志并 break/继续,但说明 AI 没能收敛到有效下一步。
## 建议
用记录点 `BTNodeId` 和 action 类型回查对应 BT 节点的退出条件;重复 action 要检查执行后是否真正改变了评分输入。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,48 +0,0 @@
# CrashSight 阻断报告 - ddc907f05d52c984266610b77735c8f8
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/ddc907f05d52c984266610b77735c8f8?pid=10
- 异常类型: UnityLogError
- 阻断族: 多人地图/Action 同步不一致
- 发生次数: 1,547
- 首次/最近: 2026-05-16 12:24:05 ~ 2026-05-19 12:13:46
## 原始异常
异常消息: 房主端:!Main.MapData.Net.Actions[message.Index - 1].IsEqual(message.ActionData)
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 33. ddc907f05d52c984266610b77735c8f8
Type: UnityLogError
Count: 1,547
FirstSeen: 2026-05-16 12:24:05
LastSeen: 2026-05-19 12:13:46
Message: 房主端:!Main.MapData.Net.Actions[message.Index - 1].IsEqual(message.ActionData)
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: ddc907f05d52c984266610b77735c8f8 UnityLogError 异常消息房主端:!Main.MapData.Net.Actions[message.Index - 1].IsEqual(message.ActionData) 关键堆栈UnityEngine.Debug.LogError(Object) 2026-05-16 12:24:05 ~ 2026-05-19 12:13:46 添加标签 2026-05-19 12:13:46 1,547 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/ddc907f05d52c984266610b77735c8f8?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Steam/GameNetReceiver.cs:198 - MapConfirm 校验
- F:/th1new/Unity/Assets/Scripts/TH1_Data/MapData.cs:2603 - FindDifferences 输出差异
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Action/ActionLogic.cs:1196 - 执行后比对 CheckMapData
## 触发原因与阻断判断
判断: 多人同步阻断,可能触发 ForceUpdate、回滚/恢复,严重时双方继续分叉。
原因: MapConfirm/ForceUpdate 发现 action 索引、ActionData 或 MapHash 不一致。`MapData.FindDifferences` 会输出前后 action 和对象字段差异;这表示至少一个 peer 的权威地图已经分叉。
## 建议
按报告中的“前/后 Action”回查该 action 的 `Execute` 是否使用非确定随机、真实 UI/Renderer、副作用或未同步字段ForceUpdate 应保持原子恢复。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,48 +0,0 @@
# CrashSight 阻断报告 - f06f163a49706ad7273967d942fe0c5e
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/f06f163a49706ad7273967d942fe0c5e?pid=10
- 异常类型: UnityLogError
- 阻断族: MemoryPack Union/协议反序列化失败
- 发生次数: 1,483
- 首次/最近: 2026-05-16 20:35:12 ~ 2026-05-19 07:22:42
## 原始异常
异常消息: 地图数据反序列化失败,可能是版本不兼容: Data read tag: 0 but not found in bid MemoryPackUnion annotations.
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 34. f06f163a49706ad7273967d942fe0c5e
Type: UnityLogError
Count: 1,483
FirstSeen: 2026-05-16 20:35:12
LastSeen: 2026-05-19 07:22:42
Message: 地图数据反序列化失败,可能是版本不兼容: Data read tag: 0 but [方法: Logic.AI.AIActionGenerator.GeneratorActionIds(Logic.AI.AICalculatorData,Logic.Action.CommonActionType)] not found in bid [类型: TH1_Logic.MatchConfig.MomentItemBase] MemoryPackUnion annotations.
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: f06f163a49706ad7273967d942fe0c5e UnityLogError 异常消息地图数据反序列化失败,可能是版本不兼容: Data read tag: 0 but [方法: Logic.AI.AIActionGenerator.GeneratorActionIds(Logic.AI.AICalculatorData,Logic.Action.CommonActionType)] not found in bid [类型: TH1_Logic.MatchConfig.MomentItemBase] MemoryPackUnion annotations. 关键堆栈UnityEngine.Debug.LogError(Object) 2026-05-16 20:35:12 ~ 2026-05-19 07:22:42 添加标签 2026-05-19 07:22:42 1,483 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/f06f163a49706ad7273967d942fe0c5e?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Steam/SteamObjectSerializer.cs:75 - BaseMessage MemoryPackUnion 列表
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Steam/GameNetReceiver.cs:19 - 反序列化 BaseMessage
- F:/th1new/Unity/Assets/Scripts/TH1_Data/MapData.cs:1914 - 地图数据反序列化异常捕获
## 触发原因与阻断判断
判断: 多人消息、ForceUpdate、存档/地图读取无法反序列化,属于硬阻断。
原因: MemoryPack 读到的 union tag 不在当前类型的 `[MemoryPackUnion]` 注解内。BaseMessage tag 84 明显超出当前 `BaseMessage` 1-17 范围,地图/配置里的 `MomentItemBase`、技能 union 也有类似版本不兼容风险。
## 建议
确认线上 0.7.1i/j/k 的 MemoryPackUnion 生成文件一致;新增 union 只能追加不重排;网络消息反序列化失败要丢弃并触发恢复,不应继续应用半包。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,55 +0,0 @@
# CrashSight 阻断报告 - db05900c7f2c2d0e04dd82b3748abede
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/db05900c7f2c2d0e04dd82b3748abede?pid=10
- 异常类型: UnityLogError
- 阻断族: 多人地图/Action 同步不一致
- 发生次数: 1,379
- 首次/最近: 2026-05-16 11:18:25 ~ 2026-05-19 11:56:24
## 原始异常
异常消息: -
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## db05900c7f2c2d0e04dd82b3748abede
异常名: UnityLogError
首次上报异常消息: -
累计发生次数: 1,590
版本: 0.7.1k 1,415; 0.7.1j 175
Stack Trace:
UnityEngine.Debug.LogError(Object)
cfo.iqk [方法: RuntimeData.MapData.FindDifferences(RuntimeData.MapData)](cfo [类型: RuntimeData.MapData])
cxb.ggu [方法: TH1_Logic.Steam.GameNetReceiver.OnReceivedForceUpdate(TH1_Logic.Steam.ForceUpdateMessage)](eor [类型: TH1_Logic.Steam.ForceUpdateMessage])
cxb.ggn [方法: TH1_Logic.Steam.GameNetReceiver.OnMessageReceived(System.Byte[])](Byte[])
bae.lim [方法: TH1_Logic.Steam.SimpleP2P.TryHandleOrderedMessage(Steamworks.CSteamID,System.Byte[])](CSteamID, Byte[])
bae.lik [方法: TH1_Logic.Steam.SimpleP2P.HandleReceivedConnectionPayload(Steamworks.CSteamID,System.Byte[])](CSteamID, Byte[])
bae.frx [方法: TH1_Logic.Steam.SimpleP2P.PollMessagesForConnection(Steamworks.CSteamID,Steamworks.HSteamNetConnection)](CSteamID, HSteamNetConnection)
bae.frw [方法: TH1_Logic.Steam.SimpleP2P.PollMessages()]()
bag.fud [方法: TH1_Logic.Steam.SteamLobbyManager.Update()]()
TH1_Logic.Core.Main.Update()
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Steam/GameNetReceiver.cs:198 - MapConfirm 校验
- F:/th1new/Unity/Assets/Scripts/TH1_Data/MapData.cs:2603 - FindDifferences 输出差异
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Action/ActionLogic.cs:1196 - 执行后比对 CheckMapData
## 触发原因与阻断判断
判断: 多人同步阻断,可能触发 ForceUpdate、回滚/恢复,严重时双方继续分叉。
原因: MapConfirm/ForceUpdate 发现 action 索引、ActionData 或 MapHash 不一致。`MapData.FindDifferences` 会输出前后 action 和对象字段差异;这表示至少一个 peer 的权威地图已经分叉。
## 建议
按报告中的“前/后 Action”回查该 action 的 `Execute` 是否使用非确定随机、真实 UI/Renderer、副作用或未同步字段ForceUpdate 应保持原子恢复。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,48 +0,0 @@
# CrashSight 阻断报告 - 81d0b17fba1fd16c81585a9e1a01caaf
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/81d0b17fba1fd16c81585a9e1a01caaf?pid=10
- 异常类型: UnityLogError
- 阻断族: AI 行为循环/重复 action
- 发生次数: 1,216
- 首次/最近: 2026-05-12 08:07:19 ~ 2026-05-19 11:56:58
## 原始异常
异常消息: 存在相似action ,记录点为:743 ,Action为:Action : LearnTech Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : KanakoRiding PlayerAction : None AIParam : AllClear Tech : KanakoRiding CultureCardType : None 重复次数 :6
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 35. 81d0b17fba1fd16c81585a9e1a01caaf
Type: UnityLogError
Count: 1,216
FirstSeen: 2026-05-12 08:07:19
LastSeen: 2026-05-19 11:56:58
Message: 存在相似action ,记录点为:743 ,Action为:Action : LearnTech Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : KanakoRiding PlayerAction : None AIParam : AllClear Tech : KanakoRiding CultureCardType : None 重复次数 :6
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: 81d0b17fba1fd16c81585a9e1a01caaf UnityLogError 异常消息存在相似action ,记录点为:743 ,Action为:Action : LearnTech Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : KanakoRiding PlayerAction : None AIParam : AllClear Tech : KanakoRiding CultureCardType : None 重复次数 :6 关键堆栈UnityEngine.Debug.LogError(Object) 2026-05-12 08:07:19 ~ 2026-05-19 11:56:58 添加标签 2026-05-19 11:56:58 1,216 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/81d0b17fba1fd16c81585a9e1a01caaf?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/AI/AIActionBase.cs:521 - AI 策略循环保护
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/AI/AILogic.cs:160 - BT 行为树循环保护
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/AI/AILogic.cs:216 - 重复 action 检测
## 触发原因与阻断判断
判断: AI 回合可能变慢、提前结束或重复无效行为,玩家感知为卡回合/AI 不行动。
原因: AI 行为树或策略计算超过保护阈值,或连续选择相同 action 超过次数。当前代码会打日志并 break/继续,但说明 AI 没能收敛到有效下一步。
## 建议
用记录点 `BTNodeId` 和 action 类型回查对应 BT 节点的退出条件;重复 action 要检查执行后是否真正改变了评分输入。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,46 +0,0 @@
# CrashSight 阻断报告 - 99e28352088a6f322dc8b8d29d61aa0d
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/99e28352088a6f322dc8b8d29d61aa0d?pid=10
- 异常类型: UnityLogError
- 阻断族: 不可执行城市升级 Action 暴露到 ActionCircle
- 发生次数: 1,215
- 首次/最近: 2026-02-07 19:04:42 ~ 2026-05-19 12:15:54
## 原始异常
异常消息: CityLevelUpAction 不应该出现在无法执行的action circle里, Tyep :None
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 36. 99e28352088a6f322dc8b8d29d61aa0d
Type: UnityLogError
Count: 1,215
FirstSeen: 2026-02-07 19:04:42
LastSeen: 2026-05-19 12:15:54
Message: CityLevelUpAction 不应该出现在无法执行的action circle里, Tyep :None
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: 99e28352088a6f322dc8b8d29d61aa0d UnityLogError 异常消息CityLevelUpAction 不应该出现在无法执行的action circle里, Tyep :None 关键堆栈UnityEngine.Debug.LogError(Object) 2026-02-07 19:04:42 ~ 2026-05-19 12:15:54 添加标签 2026-05-19 12:15:54 1,215 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/99e28352088a6f322dc8b8d29d61aa0d?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_UI/View/Info/UIInfoCommonBaseActionCircleMono.cs:141
## 触发原因与阻断判断
判断: 阻断相关。该问题会影响当前表现队列、玩家操作、回合推进或多人同步,即使部分日志来自 try/catch也不能只按 debug 统计处理。
原因: UIInfoCommonBaseActionCircleMono.SetContent 在 action.CheckCan(param) 为 false 时仍收到了 CityLevelUpAction并打出“CityLevelUpAction 不应该出现在无法执行的action circle里”。这说明上游 ActionCircle 构建列表和 CityLevelUpAction.CheckCan/CheckShow 的口径不一致,玩家能看到本不该出现的升级按钮。
## 建议
回查 UIInfoGridInfoView 生成 action circle 的 CityLevelUpAction 分支,把 CheckShow、CheckCan 和 ShowType 统一;该日志目前仍允许点击回调,建议在不可执行时禁用点击或直接不生成,避免后续执行侧再触发玩家/地图状态异常。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,48 +0,0 @@
# CrashSight 阻断报告 - 6db5f95f3c9db0f71bd11a18298c2673
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/6db5f95f3c9db0f71bd11a18298c2673?pid=10
- 异常类型: UnityLogError
- 阻断族: 多人地图/Action 同步不一致
- 发生次数: 1,158
- 首次/最近: 2026-05-16 20:47:22 ~ 2026-05-19 12:14:44
## 原始异常
异常消息: 成员端: !Main.MapData.Net.Actions[message.Index - 1].IsEqual(message.ActionData)
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 37. 6db5f95f3c9db0f71bd11a18298c2673
Type: UnityLogError
Count: 1,158
FirstSeen: 2026-05-16 20:47:22
LastSeen: 2026-05-19 12:14:44
Message: 成员端: !Main.MapData.Net.Actions[message.Index - 1].IsEqual(message.ActionData)
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: 6db5f95f3c9db0f71bd11a18298c2673 UnityLogError 异常消息成员端: !Main.MapData.Net.Actions[message.Index - 1].IsEqual(message.ActionData) 关键堆栈UnityEngine.Debug.LogError(Object) 2026-05-16 20:47:22 ~ 2026-05-19 12:14:44 添加标签 2026-05-19 12:14:44 1,158 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/6db5f95f3c9db0f71bd11a18298c2673?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Steam/GameNetReceiver.cs:198 - MapConfirm 校验
- F:/th1new/Unity/Assets/Scripts/TH1_Data/MapData.cs:2603 - FindDifferences 输出差异
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Action/ActionLogic.cs:1196 - 执行后比对 CheckMapData
## 触发原因与阻断判断
判断: 多人同步阻断,可能触发 ForceUpdate、回滚/恢复,严重时双方继续分叉。
原因: MapConfirm/ForceUpdate 发现 action 索引、ActionData 或 MapHash 不一致。`MapData.FindDifferences` 会输出前后 action 和对象字段差异;这表示至少一个 peer 的权威地图已经分叉。
## 建议
按报告中的“前/后 Action”回查该 action 的 `Execute` 是否使用非确定随机、真实 UI/Renderer、副作用或未同步字段ForceUpdate 应保持原子恢复。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,47 +0,0 @@
# CrashSight 阻断报告 - 378bba013e6d8419918795c8518babf8
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/378bba013e6d8419918795c8518babf8?pid=10
- 异常类型: UnityLogError
- 阻断族: 地图/存档版本反序列化失败
- 发生次数: 1,017
- 首次/最近: 2026-05-16 20:44:43 ~ 2026-05-19 07:41:57
## 原始异常
异常消息: 地图数据反序列化失败,可能是版本不兼容: ctu property count is 20 but binary's header maked as 21, can't deserialize about versioning.
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 38. 378bba013e6d8419918795c8518babf8
Type: UnityLogError
Count: 1,017
FirstSeen: 2026-05-16 20:44:43
LastSeen: 2026-05-19 07:41:57
Message: 地图数据反序列化失败,可能是版本不兼容: ctu [类型: RuntimeData.UnitData] property count is 20 but [方法: Logic.AI.AIActionGenerator.GeneratorActionIds(Logic.AI.AICalculatorData,Logic.Action.CommonActionType)] binary's header maked as 21, can [方法: Logic.Achievement.AchievementConditionBase.GetConditionDescription()]'t deserialize about versioning.
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: 378bba013e6d8419918795c8518babf8 UnityLogError 异常消息地图数据反序列化失败,可能是版本不兼容: ctu [类型: RuntimeData.UnitData] property count is 20 but [方法: Logic.AI.AIActionGenerator.GeneratorActionIds(Logic.AI.AICalculatorData,Logic.Action.CommonActionType)] binary's header maked as 21, can [方法: Logic.Achievement.AchievementConditionBase.GetConditionDescription()]'t deserialize about versioning. 关键堆栈UnityEngine.Debug.LogError(Object) 2026-05-16 20:44:43 ~ 2026-05-19 07:41:57 添加标签 2026-05-19 07:41:57 1,017 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/378bba013e6d8419918795c8518babf8?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Data/MapData.cs:1550 - MapConfig 反序列化异常
- F:/th1new/Unity/Assets/Scripts/TH1_Data/MapData.cs:1914 - MapData 反序列化异常
## 触发原因与阻断判断
判断: 读档、重连恢复、地图加载失败。
原因: MapData/MapConfig 读取时捕获到 MemoryPack 版本不兼容,包括字段数量不一致和 union tag 不存在。通常来自旧版本存档、不同线上包的生成代码不一致,或 Mod/配置结构变化。
## 建议
给存档/地图数据加版本迁移层;对 0.7.1i/j/k 的 MemoryPack 生成文件做差异检查,确保只追加字段/union。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,48 +0,0 @@
# CrashSight 阻断报告 - 3642fcc0851826fb4938ababb170a7dc
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/3642fcc0851826fb4938ababb170a7dc?pid=10
- 异常类型: UnityLogError
- 阻断族: AI 行为循环/重复 action
- 发生次数: 970
- 首次/最近: 2026-05-06 17:10:19 ~ 2026-05-19 12:18:10
## 原始异常
异常消息: 存在相似action ,记录点为:756 ,Action为:Action : LearnTech Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : KomeijiIndianSailing PlayerAction : None AIParam : AllClear Tech : KomeijiIndianSailing CultureCardType : None 重复次数 :7
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 39. 3642fcc0851826fb4938ababb170a7dc
Type: UnityLogError
Count: 970
FirstSeen: 2026-05-06 17:10:19
LastSeen: 2026-05-19 12:18:10
Message: 存在相似action ,记录点为:756 ,Action为:Action : LearnTech Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : KomeijiIndianSailing PlayerAction : None AIParam : AllClear Tech : KomeijiIndianSailing CultureCardType : None 重复次数 :7
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: 3642fcc0851826fb4938ababb170a7dc UnityLogError 异常消息存在相似action ,记录点为:756 ,Action为:Action : LearnTech Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : KomeijiIndianSailing PlayerAction : None AIParam : AllClear Tech : KomeijiIndianSailing CultureCardType : None 重复次数 :7 关键堆栈UnityEngine.Debug.LogError(Object) 2026-05-06 17:10:19 ~ 2026-05-19 12:18:10 添加标签 2026-05-19 12:18:10 970 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/3642fcc0851826fb4938ababb170a7dc?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/AI/AIActionBase.cs:521 - AI 策略循环保护
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/AI/AILogic.cs:160 - BT 行为树循环保护
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/AI/AILogic.cs:216 - 重复 action 检测
## 触发原因与阻断判断
判断: AI 回合可能变慢、提前结束或重复无效行为,玩家感知为卡回合/AI 不行动。
原因: AI 行为树或策略计算超过保护阈值,或连续选择相同 action 超过次数。当前代码会打日志并 break/继续,但说明 AI 没能收敛到有效下一步。
## 建议
用记录点 `BTNodeId` 和 action 类型回查对应 BT 节点的退出条件;重复 action 要检查执行后是否真正改变了评分输入。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,48 +0,0 @@
# CrashSight 阻断报告 - b4bce904856172882807176e1db69e42
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/b4bce904856172882807176e1db69e42?pid=10
- 异常类型: UnityLogError
- 阻断族: AI 行为循环/重复 action
- 发生次数: 926
- 首次/最近: 2026-05-14 17:49:53 ~ 2026-05-19 12:16:42
## 原始异常
异常消息: 存在相似action ,记录点为:756 ,Action为:Action : LearnTech Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : KomeijiIndianNavigation PlayerAction : None AIParam : AllClear Tech : KomeijiIndianNavigation CultureCardType : None 重复次数 :6
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 40. b4bce904856172882807176e1db69e42
Type: UnityLogError
Count: 926
FirstSeen: 2026-05-14 17:49:53
LastSeen: 2026-05-19 12:16:42
Message: 存在相似action ,记录点为:756 ,Action为:Action : LearnTech Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : KomeijiIndianNavigation PlayerAction : None AIParam : AllClear Tech : KomeijiIndianNavigation CultureCardType : None 重复次数 :6
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: b4bce904856172882807176e1db69e42 UnityLogError 异常消息存在相似action ,记录点为:756 ,Action为:Action : LearnTech Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : KomeijiIndianNavigation PlayerAction : None AIParam : AllClear Tech : KomeijiIndianNavigation CultureCardType : None 重复次数 :6 关键堆栈UnityEngine.Debug.LogError(Object) 2026-05-14 17:49:53 ~ 2026-05-19 12:16:42 添加标签 2026-05-19 12:16:42 926 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/b4bce904856172882807176e1db69e42?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/AI/AIActionBase.cs:521 - AI 策略循环保护
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/AI/AILogic.cs:160 - BT 行为树循环保护
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/AI/AILogic.cs:216 - 重复 action 检测
## 触发原因与阻断判断
判断: AI 回合可能变慢、提前结束或重复无效行为,玩家感知为卡回合/AI 不行动。
原因: AI 行为树或策略计算超过保护阈值,或连续选择相同 action 超过次数。当前代码会打日志并 break/继续,但说明 AI 没能收敛到有效下一步。
## 建议
用记录点 `BTNodeId` 和 action 类型回查对应 BT 节点的退出条件;重复 action 要检查执行后是否真正改变了评分输入。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,48 +0,0 @@
# CrashSight 阻断报告 - 5c210a60357b9a414fe70a86a70f0e16
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/5c210a60357b9a414fe70a86a70f0e16?pid=10
- 异常类型: UnityLogError
- 阻断族: 多人地图/Action 同步不一致
- 发生次数: 889
- 首次/最近: 2026-05-17 12:30:34 ~ 2026-05-18 23:05:12
## 原始异常
异常消息: Map不一致前后Action Action : UnitAttack Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AllClear Tech : None CultureCardType : None 后Action : UnitMove Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AllClear Tech : None CultureCardType : None
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 41. 5c210a60357b9a414fe70a86a70f0e16
Type: UnityLogError
Count: 889
FirstSeen: 2026-05-17 12:30:34
LastSeen: 2026-05-18 23:05:12
Message: Map不一致前后Action Action : UnitAttack Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AllClear Tech : None CultureCardType : None 后Action : UnitMove Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AllClear Tech : None CultureCardType : None
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: 5c210a60357b9a414fe70a86a70f0e16 UnityLogError 异常消息Map不一致前后Action Action : UnitAttack Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AllClear Tech : None CultureCardType : None 后Action : UnitMove Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AllClear Tech : None CultureCardType : None 关键堆栈UnityEngine.Debug.LogError(Object) 2026-05-17 12:30:34 ~ 2026-05-18 23:05:12 添加标签 2026-05-18 23:05:12 889 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/5c210a60357b9a414fe70a86a70f0e16?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Steam/GameNetReceiver.cs:198 - MapConfirm 校验
- F:/th1new/Unity/Assets/Scripts/TH1_Data/MapData.cs:2603 - FindDifferences 输出差异
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Action/ActionLogic.cs:1196 - 执行后比对 CheckMapData
## 触发原因与阻断判断
判断: 多人同步阻断,可能触发 ForceUpdate、回滚/恢复,严重时双方继续分叉。
原因: MapConfirm/ForceUpdate 发现 action 索引、ActionData 或 MapHash 不一致。`MapData.FindDifferences` 会输出前后 action 和对象字段差异;这表示至少一个 peer 的权威地图已经分叉。
## 建议
按报告中的“前/后 Action”回查该 action 的 `Execute` 是否使用非确定随机、真实 UI/Renderer、副作用或未同步字段ForceUpdate 应保持原子恢复。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,48 +0,0 @@
# CrashSight 阻断报告 - 3944af0b938b8638c599c03c4fecbe5e
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/3944af0b938b8638c599c03c4fecbe5e?pid=10
- 异常类型: UnityLogError
- 阻断族: 多人地图/Action 同步不一致
- 发生次数: 867
- 首次/最近: 2026-04-14 04:37:05 ~ 2026-05-18 22:59:40
## 原始异常
异常消息: Map不一致前后Action Action : UnitAttack Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AllClear Tech : None CultureCardType : None 后Action : UnitAttack Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AllClear Tech : None CultureCardType : None
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 42. 3944af0b938b8638c599c03c4fecbe5e
Type: UnityLogError
Count: 867
FirstSeen: 2026-04-14 04:37:05
LastSeen: 2026-05-18 22:59:40
Message: Map不一致前后Action Action : UnitAttack Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AllClear Tech : None CultureCardType : None 后Action : UnitAttack Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AllClear Tech : None CultureCardType : None
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: 3944af0b938b8638c599c03c4fecbe5e UnityLogError 异常消息Map不一致前后Action Action : UnitAttack Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AllClear Tech : None CultureCardType : None 后Action : UnitAttack Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AllClear Tech : None CultureCardType : None 关键堆栈UnityEngine.Debug.LogError(Object) 2026-04-14 04:37:05 ~ 2026-05-18 22:59:40 添加标签 2026-05-18 22:59:40 867 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/3944af0b938b8638c599c03c4fecbe5e?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Steam/GameNetReceiver.cs:198 - MapConfirm 校验
- F:/th1new/Unity/Assets/Scripts/TH1_Data/MapData.cs:2603 - FindDifferences 输出差异
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Action/ActionLogic.cs:1196 - 执行后比对 CheckMapData
## 触发原因与阻断判断
判断: 多人同步阻断,可能触发 ForceUpdate、回滚/恢复,严重时双方继续分叉。
原因: MapConfirm/ForceUpdate 发现 action 索引、ActionData 或 MapHash 不一致。`MapData.FindDifferences` 会输出前后 action 和对象字段差异;这表示至少一个 peer 的权威地图已经分叉。
## 建议
按报告中的“前/后 Action”回查该 action 的 `Execute` 是否使用非确定随机、真实 UI/Renderer、副作用或未同步字段ForceUpdate 应保持原子恢复。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,48 +0,0 @@
# CrashSight 阻断报告 - 7514679f32cab9575834eed508ae4ed9
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/7514679f32cab9575834eed508ae4ed9?pid=10
- 异常类型: UnityLogError
- 阻断族: 多人地图/Action 同步不一致
- 发生次数: 841
- 首次/最近: 2026-05-17 01:02:27 ~ 2026-05-19 09:04:19
## 原始异常
异常消息: Map不一致前后Action Action : PlayerAction Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : BreakAlly AIParam : AllClear Tech : None CultureCardType : None 后Action : UnitAction Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : ForceDisband CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AllClear Tech : None CultureCardType : None
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 43. 7514679f32cab9575834eed508ae4ed9
Type: UnityLogError
Count: 841
FirstSeen: 2026-05-17 01:02:27
LastSeen: 2026-05-19 09:04:19
Message: Map不一致前后Action Action : PlayerAction Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : BreakAlly AIParam : AllClear Tech : None CultureCardType : None 后Action : UnitAction Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : ForceDisband CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AllClear Tech : None CultureCardType : None
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: 7514679f32cab9575834eed508ae4ed9 UnityLogError 异常消息Map不一致前后Action Action : PlayerAction Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : BreakAlly AIParam : AllClear Tech : None CultureCardType : None 后Action : UnitAction Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : ForceDisband CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AllClear Tech : None CultureCardType : None 关键堆栈UnityEngine.Debug.LogError(Object) 2026-05-17 01:02:27 ~ 2026-05-19 09:04:19 添加标签 2026-05-19 09:04:19 841 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/7514679f32cab9575834eed508ae4ed9?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Steam/GameNetReceiver.cs:198 - MapConfirm 校验
- F:/th1new/Unity/Assets/Scripts/TH1_Data/MapData.cs:2603 - FindDifferences 输出差异
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Action/ActionLogic.cs:1196 - 执行后比对 CheckMapData
## 触发原因与阻断判断
判断: 多人同步阻断,可能触发 ForceUpdate、回滚/恢复,严重时双方继续分叉。
原因: MapConfirm/ForceUpdate 发现 action 索引、ActionData 或 MapHash 不一致。`MapData.FindDifferences` 会输出前后 action 和对象字段差异;这表示至少一个 peer 的权威地图已经分叉。
## 建议
按报告中的“前/后 Action”回查该 action 的 `Execute` 是否使用非确定随机、真实 UI/Renderer、副作用或未同步字段ForceUpdate 应保持原子恢复。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,48 +0,0 @@
# CrashSight 阻断报告 - 3073cbeca8060ffaf53357cac6d71a86
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/3073cbeca8060ffaf53357cac6d71a86?pid=10
- 异常类型: UnityLogError
- 阻断族: Action 执行玩家不一致 (BuyCultureCard)
- 发生次数: 772
- 首次/最近: 2026-04-11 16:36:12 ~ 2026-05-19 12:00:55
## 原始异常
异常消息: CompleteExecute Player 不一致 Action : BuyCultureCard Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AllClear Tech : None CultureCardType : MonumentForest
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 44. 3073cbeca8060ffaf53357cac6d71a86
Type: UnityLogError
Count: 772
FirstSeen: 2026-04-11 16:36:12
LastSeen: 2026-05-19 12:00:55
Message: CompleteExecute Player 不一致 Action : BuyCultureCard Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AllClear Tech : None CultureCardType : MonumentForest
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: 3073cbeca8060ffaf53357cac6d71a86 UnityLogError 异常消息CompleteExecute Player 不一致 Action : BuyCultureCard Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AllClear Tech : None CultureCardType : MonumentForest 关键堆栈UnityEngine.Debug.LogError(Object) 2026-04-11 16:36:12 ~ 2026-05-19 12:00:55 添加标签 2026-05-19 12:00:55 772 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/3073cbeca8060ffaf53357cac6d71a86?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Action/ActionLogic.cs:1105 - CompleteExecute 玩家一致性检查
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/AI/AILogic.cs:240 - AI 最终执行 action
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Steam/GameNetReceiver.cs:142 - 网络 action 执行入口
## 触发原因与阻断判断
判断: 对应 action 被拦截不执行;如果发生在 AI 或同步链路,会造成卡回合或双方状态分叉。
原因: `ActionLogicBase.CompleteExecute` 要求 `actionParams.PlayerId` 等于 `MapData.CurPlayer.Id`。这里 action 的归属玩家与当前回合玩家不同,函数直接返回 false。常见来源是 AI/网络/回放参数刷新到错误 MapData或 UI 缓存了上一回合 action。
## 建议
回查该 action 的构参处,确保 `CommonActionParams.MapData``PlayerData``PlayerId` 在执行前调用 `RefreshParams/OnParamChanged` 并跟随当前回合。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,48 +0,0 @@
# CrashSight 阻断报告 - 25be1c276172ec1b3fde3d7d5888fc4d
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/25be1c276172ec1b3fde3d7d5888fc4d?pid=10
- 异常类型: UnityLogError
- 阻断族: 多人地图/Action 同步不一致
- 发生次数: 761
- 首次/最近: 2026-05-16 11:21:33 ~ 2026-05-19 12:14:24
## 原始异常
异常消息: 成员端: !Main.MapData.Net.Actions[message.Index - 1].IsEqual(message.ActionData)
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 45. 25be1c276172ec1b3fde3d7d5888fc4d
Type: UnityLogError
Count: 761
FirstSeen: 2026-05-16 11:21:33
LastSeen: 2026-05-19 12:14:24
Message: 成员端: !Main.MapData.Net.Actions[message.Index - 1].IsEqual(message.ActionData)
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: 25be1c276172ec1b3fde3d7d5888fc4d UnityLogError 异常消息成员端: !Main.MapData.Net.Actions[message.Index - 1].IsEqual(message.ActionData) 关键堆栈UnityEngine.Debug.LogError(Object) 2026-05-16 11:21:33 ~ 2026-05-19 12:14:24 添加标签 2026-05-19 12:14:24 761 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/25be1c276172ec1b3fde3d7d5888fc4d?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Steam/GameNetReceiver.cs:198 - MapConfirm 校验
- F:/th1new/Unity/Assets/Scripts/TH1_Data/MapData.cs:2603 - FindDifferences 输出差异
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Action/ActionLogic.cs:1196 - 执行后比对 CheckMapData
## 触发原因与阻断判断
判断: 多人同步阻断,可能触发 ForceUpdate、回滚/恢复,严重时双方继续分叉。
原因: MapConfirm/ForceUpdate 发现 action 索引、ActionData 或 MapHash 不一致。`MapData.FindDifferences` 会输出前后 action 和对象字段差异;这表示至少一个 peer 的权威地图已经分叉。
## 建议
按报告中的“前/后 Action”回查该 action 的 `Execute` 是否使用非确定随机、真实 UI/Renderer、副作用或未同步字段ForceUpdate 应保持原子恢复。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,48 +0,0 @@
# CrashSight 阻断报告 - 10d4df507992c1a66a90693df20b21c3
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/10d4df507992c1a66a90693df20b21c3?pid=10
- 异常类型: UnityLogError
- 阻断族: Action 执行玩家不一致 (UnitAttack)
- 发生次数: 758
- 首次/最近: 2026-05-13 02:01:28 ~ 2026-05-19 00:36:52
## 原始异常
异常消息: CompleteExecute Player 不一致 Action : UnitAttack Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AllClear Tech : None CultureCardType : None
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 46. 10d4df507992c1a66a90693df20b21c3
Type: UnityLogError
Count: 758
FirstSeen: 2026-05-13 02:01:28
LastSeen: 2026-05-19 00:36:52
Message: CompleteExecute Player 不一致 Action : UnitAttack Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AllClear Tech : None CultureCardType : None
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: 10d4df507992c1a66a90693df20b21c3 UnityLogError 异常消息CompleteExecute Player 不一致 Action : UnitAttack Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AllClear Tech : None CultureCardType : None 关键堆栈UnityEngine.Debug.LogError(Object) 2026-05-13 02:01:28 ~ 2026-05-19 00:36:52 添加标签 2026-05-19 00:36:52 758 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/10d4df507992c1a66a90693df20b21c3?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Action/ActionLogic.cs:1105 - CompleteExecute 玩家一致性检查
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/AI/AILogic.cs:240 - AI 最终执行 action
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Steam/GameNetReceiver.cs:142 - 网络 action 执行入口
## 触发原因与阻断判断
判断: 对应 action 被拦截不执行;如果发生在 AI 或同步链路,会造成卡回合或双方状态分叉。
原因: `ActionLogicBase.CompleteExecute` 要求 `actionParams.PlayerId` 等于 `MapData.CurPlayer.Id`。这里 action 的归属玩家与当前回合玩家不同,函数直接返回 false。常见来源是 AI/网络/回放参数刷新到错误 MapData或 UI 缓存了上一回合 action。
## 建议
回查该 action 的构参处,确保 `CommonActionParams.MapData``PlayerData``PlayerId` 在执行前调用 `RefreshParams/OnParamChanged` 并跟随当前回合。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,47 +0,0 @@
# CrashSight 阻断报告 - c0990767a9861d80d92aeab7fd75a5aa
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/c0990767a9861d80d92aeab7fd75a5aa?pid=10
- 异常类型: UnityLogError
- 阻断族: 地图/存档版本反序列化失败
- 发生次数: 742
- 首次/最近: 2026-05-16 20:33:25 ~ 2026-05-19 07:41:57
## 原始异常
异常消息: 地图数据反序列化失败,可能是版本不兼容: ctu property count is 20 but binary's header maked as 21, can't deserialize about versioning.
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 47. c0990767a9861d80d92aeab7fd75a5aa
Type: UnityLogError
Count: 742
FirstSeen: 2026-05-16 20:33:25
LastSeen: 2026-05-19 07:41:57
Message: 地图数据反序列化失败,可能是版本不兼容: ctu [类型: RuntimeData.UnitData] property count is 20 but [方法: Logic.AI.AIActionGenerator.GeneratorActionIds(Logic.AI.AICalculatorData,Logic.Action.CommonActionType)] binary's header maked as 21, can [方法: Logic.Achievement.AchievementConditionBase.GetConditionDescription()]'t deserialize about versioning.
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: c0990767a9861d80d92aeab7fd75a5aa UnityLogError 异常消息地图数据反序列化失败,可能是版本不兼容: ctu [类型: RuntimeData.UnitData] property count is 20 but [方法: Logic.AI.AIActionGenerator.GeneratorActionIds(Logic.AI.AICalculatorData,Logic.Action.CommonActionType)] binary's header maked as 21, can [方法: Logic.Achievement.AchievementConditionBase.GetConditionDescription()]'t deserialize about versioning. 关键堆栈UnityEngine.Debug.LogError(Object) 2026-05-16 20:33:25 ~ 2026-05-19 07:41:57 添加标签 2026-05-19 07:41:57 742 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/c0990767a9861d80d92aeab7fd75a5aa?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Data/MapData.cs:1550 - MapConfig 反序列化异常
- F:/th1new/Unity/Assets/Scripts/TH1_Data/MapData.cs:1914 - MapData 反序列化异常
## 触发原因与阻断判断
判断: 读档、重连恢复、地图加载失败。
原因: MapData/MapConfig 读取时捕获到 MemoryPack 版本不兼容,包括字段数量不一致和 union tag 不存在。通常来自旧版本存档、不同线上包的生成代码不一致,或 Mod/配置结构变化。
## 建议
给存档/地图数据加版本迁移层;对 0.7.1i/j/k 的 MemoryPack 生成文件做差异检查,确保只追加字段/union。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,48 +0,0 @@
# CrashSight 阻断报告 - de702afd197a236c90a11ac558d360f1
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/de702afd197a236c90a11ac558d360f1?pid=10
- 异常类型: UnityLogError
- 阻断族: AI 行为循环/重复 action
- 发生次数: 707
- 首次/最近: 2026-05-14 17:57:59 ~ 2026-05-19 11:51:53
## 原始异常
异常消息: 存在相似action ,记录点为:743 ,Action为:Action : LearnTech Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : KanakoSmithery PlayerAction : None AIParam : AllClear Tech : KanakoSmithery CultureCardType : None 重复次数 :6
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 48. de702afd197a236c90a11ac558d360f1
Type: UnityLogError
Count: 707
FirstSeen: 2026-05-14 17:57:59
LastSeen: 2026-05-19 11:51:53
Message: 存在相似action ,记录点为:743 ,Action为:Action : LearnTech Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : KanakoSmithery PlayerAction : None AIParam : AllClear Tech : KanakoSmithery CultureCardType : None 重复次数 :6
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: de702afd197a236c90a11ac558d360f1 UnityLogError 异常消息存在相似action ,记录点为:743 ,Action为:Action : LearnTech Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : KanakoSmithery PlayerAction : None AIParam : AllClear Tech : KanakoSmithery CultureCardType : None 重复次数 :6 关键堆栈UnityEngine.Debug.LogError(Object) 2026-05-14 17:57:59 ~ 2026-05-19 11:51:53 添加标签 2026-05-19 11:51:53 707 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/de702afd197a236c90a11ac558d360f1?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/AI/AIActionBase.cs:521 - AI 策略循环保护
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/AI/AILogic.cs:160 - BT 行为树循环保护
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/AI/AILogic.cs:216 - 重复 action 检测
## 触发原因与阻断判断
判断: AI 回合可能变慢、提前结束或重复无效行为,玩家感知为卡回合/AI 不行动。
原因: AI 行为树或策略计算超过保护阈值,或连续选择相同 action 超过次数。当前代码会打日志并 break/继续,但说明 AI 没能收敛到有效下一步。
## 建议
用记录点 `BTNodeId` 和 action 类型回查对应 BT 节点的退出条件;重复 action 要检查执行后是否真正改变了评分输入。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,49 +0,0 @@
# CrashSight 阻断报告 - 38384b99cb735e5a53df5b363b24fd48
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/38384b99cb735e5a53df5b363b24fd48?pid=10
- 异常类型: UnityLogError
- 阻断族: MemoryPack Union/协议反序列化失败
- 发生次数: 655
- 首次/最近: 2026-05-17 15:33:27 ~ 2026-05-18 13:23:37
- 列表版本: 0.7.1j
## 原始异常
异常消息: 地图数据反序列化失败,可能是版本不兼容: Data read tag: 0 but not found in fpx MemoryPackUnion annotations.
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 49. 38384b99cb735e5a53df5b363b24fd48
Type: UnityLogError
Count: 655
FirstSeen: 2026-05-17 15:33:27
LastSeen: 2026-05-18 13:23:37
Message: 地图数据反序列化失败,可能是版本不兼容: Data read tag: 0 but [方法: Logic.AI.AIActionGenerator.GeneratorActionIds(Logic.AI.AICalculatorData,Logic.Action.CommonActionType)] not found in fpx [类型: Logic.Skill.SkillBase] MemoryPackUnion annotations.
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: 38384b99cb735e5a53df5b363b24fd48 UnityLogError 异常消息地图数据反序列化失败,可能是版本不兼容: Data read tag: 0 but [方法: Logic.AI.AIActionGenerator.GeneratorActionIds(Logic.AI.AICalculatorData,Logic.Action.CommonActionType)] not found in fpx [类型: Logic.Skill.SkillBase] MemoryPackUnion annotations. 关键堆栈UnityEngine.Debug.LogError(Object) 0.7.1j 2026-05-17 15:33:27 ~ 2026-05-18 13:23:37 添加标签 2026-05-18 13:23:37 655 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/38384b99cb735e5a53df5b363b24fd48?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Steam/SteamObjectSerializer.cs:75 - BaseMessage MemoryPackUnion 列表
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Steam/GameNetReceiver.cs:19 - 反序列化 BaseMessage
- F:/th1new/Unity/Assets/Scripts/TH1_Data/MapData.cs:1914 - 地图数据反序列化异常捕获
## 触发原因与阻断判断
判断: 多人消息、ForceUpdate、存档/地图读取无法反序列化,属于硬阻断。
原因: MemoryPack 读到的 union tag 不在当前类型的 `[MemoryPackUnion]` 注解内。BaseMessage tag 84 明显超出当前 `BaseMessage` 1-17 范围,地图/配置里的 `MomentItemBase`、技能 union 也有类似版本不兼容风险。
## 建议
确认线上 0.7.1i/j/k 的 MemoryPackUnion 生成文件一致;新增 union 只能追加不重排;网络消息反序列化失败要丢弃并触发恢复,不应继续应用半包。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,48 +0,0 @@
# CrashSight 阻断报告 - 2518262ae7070bb58c2aaf0fb281d432
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/2518262ae7070bb58c2aaf0fb281d432?pid=10
- 异常类型: UnityLogError
- 阻断族: AI 行为循环/重复 action
- 发生次数: 651
- 首次/最近: 2026-04-13 15:45:48 ~ 2026-05-19 12:20:22
## 原始异常
异常消息: 存在相似action ,记录点为:743 ,Action为:Action : LearnTech Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : FreeSpirit PlayerAction : None AIParam : AllClear Tech : FreeSpirit CultureCardType : None 重复次数 :6
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 50. 2518262ae7070bb58c2aaf0fb281d432
Type: UnityLogError
Count: 651
FirstSeen: 2026-04-13 15:45:48
LastSeen: 2026-05-19 12:20:22
Message: 存在相似action ,记录点为:743 ,Action为:Action : LearnTech Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : FreeSpirit PlayerAction : None AIParam : AllClear Tech : FreeSpirit CultureCardType : None 重复次数 :6
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: 2518262ae7070bb58c2aaf0fb281d432 UnityLogError 异常消息存在相似action ,记录点为:743 ,Action为:Action : LearnTech Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : FreeSpirit PlayerAction : None AIParam : AllClear Tech : FreeSpirit CultureCardType : None 重复次数 :6 关键堆栈UnityEngine.Debug.LogError(Object) 2026-04-13 15:45:48 ~ 2026-05-19 12:20:22 添加标签 2026-05-19 12:20:22 651 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/2518262ae7070bb58c2aaf0fb281d432?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/AI/AIActionBase.cs:521 - AI 策略循环保护
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/AI/AILogic.cs:160 - BT 行为树循环保护
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/AI/AILogic.cs:216 - 重复 action 检测
## 触发原因与阻断判断
判断: AI 回合可能变慢、提前结束或重复无效行为,玩家感知为卡回合/AI 不行动。
原因: AI 行为树或策略计算超过保护阈值,或连续选择相同 action 超过次数。当前代码会打日志并 break/继续,但说明 AI 没能收敛到有效下一步。
## 建议
用记录点 `BTNodeId` 和 action 类型回查对应 BT 节点的退出条件;重复 action 要检查执行后是否真正改变了评分输入。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,48 +0,0 @@
# CrashSight 阻断报告 - ebe3246947528a80600114bb6b8c87cf
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/ebe3246947528a80600114bb6b8c87cf?pid=10
- 异常类型: UnityLogError
- 阻断族: 多人地图/Action 同步不一致
- 发生次数: 557
- 首次/最近: 2026-05-16 21:14:32 ~ 2026-05-19 10:43:18
## 原始异常
异常消息: Map不一致前后Action Action : UnitAttack Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AllClear Tech : None CultureCardType : None 后Action : UnitMove Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AllClear Tech : None CultureCardType : None
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 51. ebe3246947528a80600114bb6b8c87cf
Type: UnityLogError
Count: 557
FirstSeen: 2026-05-16 21:14:32
LastSeen: 2026-05-19 10:43:18
Message: Map不一致前后Action Action : UnitAttack Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AllClear Tech : None CultureCardType : None 后Action : UnitMove Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AllClear Tech : None CultureCardType : None
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: ebe3246947528a80600114bb6b8c87cf UnityLogError 异常消息Map不一致前后Action Action : UnitAttack Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AllClear Tech : None CultureCardType : None 后Action : UnitMove Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AllClear Tech : None CultureCardType : None 关键堆栈UnityEngine.Debug.LogError(Object) 2026-05-16 21:14:32 ~ 2026-05-19 10:43:18 添加标签 2026-05-19 10:43:18 557 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/ebe3246947528a80600114bb6b8c87cf?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Steam/GameNetReceiver.cs:198 - MapConfirm 校验
- F:/th1new/Unity/Assets/Scripts/TH1_Data/MapData.cs:2603 - FindDifferences 输出差异
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Action/ActionLogic.cs:1196 - 执行后比对 CheckMapData
## 触发原因与阻断判断
判断: 多人同步阻断,可能触发 ForceUpdate、回滚/恢复,严重时双方继续分叉。
原因: MapConfirm/ForceUpdate 发现 action 索引、ActionData 或 MapHash 不一致。`MapData.FindDifferences` 会输出前后 action 和对象字段差异;这表示至少一个 peer 的权威地图已经分叉。
## 建议
按报告中的“前/后 Action”回查该 action 的 `Execute` 是否使用非确定随机、真实 UI/Renderer、副作用或未同步字段ForceUpdate 应保持原子恢复。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,46 +0,0 @@
# CrashSight 阻断报告 - 447a0afd0c27314a3b3c95922283f7d8
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/447a0afd0c27314a3b3c95922283f7d8?pid=10
- 异常类型: UnityLogError
- 阻断族: 不可执行城市升级 Action 暴露到 ActionCircle
- 发生次数: 556
- 首次/最近: 2026-04-11 17:03:51 ~ 2026-05-19 11:10:17
## 原始异常
异常消息: CityLevelUpAction 不应该出现在无法执行的action circle里, Tyep :None
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 52. 447a0afd0c27314a3b3c95922283f7d8
Type: UnityLogError
Count: 556
FirstSeen: 2026-04-11 17:03:51
LastSeen: 2026-05-19 11:10:17
Message: CityLevelUpAction 不应该出现在无法执行的action circle里, Tyep :None
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: 447a0afd0c27314a3b3c95922283f7d8 UnityLogError 异常消息CityLevelUpAction 不应该出现在无法执行的action circle里, Tyep :None 关键堆栈UnityEngine.Debug.LogError(Object) 2026-04-11 17:03:51 ~ 2026-05-19 11:10:17 添加标签 2026-05-19 11:10:17 556 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/447a0afd0c27314a3b3c95922283f7d8?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_UI/View/Info/UIInfoCommonBaseActionCircleMono.cs:141
## 触发原因与阻断判断
判断: 阻断相关。该问题会影响当前表现队列、玩家操作、回合推进或多人同步,即使部分日志来自 try/catch也不能只按 debug 统计处理。
原因: UIInfoCommonBaseActionCircleMono.SetContent 在 action.CheckCan(param) 为 false 时仍收到了 CityLevelUpAction并打出“CityLevelUpAction 不应该出现在无法执行的action circle里”。这说明上游 ActionCircle 构建列表和 CityLevelUpAction.CheckCan/CheckShow 的口径不一致,玩家能看到本不该出现的升级按钮。
## 建议
回查 UIInfoGridInfoView 生成 action circle 的 CityLevelUpAction 分支,把 CheckShow、CheckCan 和 ShowType 统一;该日志目前仍允许点击回调,建议在不可执行时禁用点击或直接不生成,避免后续执行侧再触发玩家/地图状态异常。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,48 +0,0 @@
# CrashSight 阻断报告 - 49c71c9302c2296cc4d093adb034ba75
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/49c71c9302c2296cc4d093adb034ba75?pid=10
- 异常类型: UnityLogError
- 阻断族: AI 行为循环/重复 action
- 发生次数: 553
- 首次/最近: 2026-05-14 18:30:52 ~ 2026-05-19 11:39:57
## 原始异常
异常消息: 存在相似action ,记录点为:756 ,Action为:Action : LearnTech Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : KanakoRoads PlayerAction : None AIParam : AllClear Tech : KanakoRoads CultureCardType : None 重复次数 :6
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 53. 49c71c9302c2296cc4d093adb034ba75
Type: UnityLogError
Count: 553
FirstSeen: 2026-05-14 18:30:52
LastSeen: 2026-05-19 11:39:57
Message: 存在相似action ,记录点为:756 ,Action为:Action : LearnTech Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : KanakoRoads PlayerAction : None AIParam : AllClear Tech : KanakoRoads CultureCardType : None 重复次数 :6
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: 49c71c9302c2296cc4d093adb034ba75 UnityLogError 异常消息存在相似action ,记录点为:756 ,Action为:Action : LearnTech Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : KanakoRoads PlayerAction : None AIParam : AllClear Tech : KanakoRoads CultureCardType : None 重复次数 :6 关键堆栈UnityEngine.Debug.LogError(Object) 2026-05-14 18:30:52 ~ 2026-05-19 11:39:57 添加标签 2026-05-19 11:39:57 553 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/49c71c9302c2296cc4d093adb034ba75?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/AI/AIActionBase.cs:521 - AI 策略循环保护
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/AI/AILogic.cs:160 - BT 行为树循环保护
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/AI/AILogic.cs:216 - 重复 action 检测
## 触发原因与阻断判断
判断: AI 回合可能变慢、提前结束或重复无效行为,玩家感知为卡回合/AI 不行动。
原因: AI 行为树或策略计算超过保护阈值,或连续选择相同 action 超过次数。当前代码会打日志并 break/继续,但说明 AI 没能收敛到有效下一步。
## 建议
用记录点 `BTNodeId` 和 action 类型回查对应 BT 节点的退出条件;重复 action 要检查执行后是否真正改变了评分输入。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,48 +0,0 @@
# CrashSight 阻断报告 - fa920d4211c8075190887d65ee290bc1
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/fa920d4211c8075190887d65ee290bc1?pid=10
- 异常类型: UnityLogError
- 阻断族: AI 行为循环/重复 action
- 发生次数: 500
- 首次/最近: 2026-04-12 21:48:55 ~ 2026-05-19 12:18:13
## 原始异常
异常消息: 存在相似action ,记录点为:753 ,Action为:Action : LearnTech Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : Aquatism PlayerAction : None AIParam : AllClear Tech : Aquatism CultureCardType : None 重复次数 :6
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 54. fa920d4211c8075190887d65ee290bc1
Type: UnityLogError
Count: 500
FirstSeen: 2026-04-12 21:48:55
LastSeen: 2026-05-19 12:18:13
Message: 存在相似action ,记录点为:753 ,Action为:Action : LearnTech Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : Aquatism PlayerAction : None AIParam : AllClear Tech : Aquatism CultureCardType : None 重复次数 :6
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: fa920d4211c8075190887d65ee290bc1 UnityLogError 异常消息存在相似action ,记录点为:753 ,Action为:Action : LearnTech Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : Aquatism PlayerAction : None AIParam : AllClear Tech : Aquatism CultureCardType : None 重复次数 :6 关键堆栈UnityEngine.Debug.LogError(Object) 2026-04-12 21:48:55 ~ 2026-05-19 12:18:13 添加标签 2026-05-19 12:18:13 500 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/fa920d4211c8075190887d65ee290bc1?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/AI/AIActionBase.cs:521 - AI 策略循环保护
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/AI/AILogic.cs:160 - BT 行为树循环保护
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/AI/AILogic.cs:216 - 重复 action 检测
## 触发原因与阻断判断
判断: AI 回合可能变慢、提前结束或重复无效行为,玩家感知为卡回合/AI 不行动。
原因: AI 行为树或策略计算超过保护阈值,或连续选择相同 action 超过次数。当前代码会打日志并 break/继续,但说明 AI 没能收敛到有效下一步。
## 建议
用记录点 `BTNodeId` 和 action 类型回查对应 BT 节点的退出条件;重复 action 要检查执行后是否真正改变了评分输入。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,47 +0,0 @@
# CrashSight 阻断报告 - 5c24d8c271d5804cc62629a14d310136
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/5c24d8c271d5804cc62629a14d310136?pid=10
- 异常类型: UnityLogError
- 阻断族: 单位防御计算缺少格子或玩家映射
- 发生次数: 499
- 首次/最近: 2026-05-16 21:51:55 ~ 2026-05-19 03:55:44
## 原始异常
异常消息: UnitData GetExtraDefense Cant find grid or player by uid
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 55. 5c24d8c271d5804cc62629a14d310136
Type: UnityLogError
Count: 499
FirstSeen: 2026-05-16 21:51:55
LastSeen: 2026-05-19 03:55:44
Message: UnitData GetExtraDefense Cant find grid or player by uid
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: 5c24d8c271d5804cc62629a14d310136 UnityLogError 异常消息UnitData GetExtraDefense Cant find grid or player by uid 关键堆栈UnityEngine.Debug.LogError(Object) 2026-05-16 21:51:55 ~ 2026-05-19 03:55:44 添加标签 2026-05-19 03:55:44 499 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/5c24d8c271d5804cc62629a14d310136?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Data/UnitData.cs:1019 - 防御倍率计算
- F:/th1new/Unity/Assets/Scripts/TH1_Data/MapData.cs:1108 - 单位创建会写 UnitToGrid/UnitToCity
## 触发原因与阻断判断
判断: 防御计算降级,继续扩大可能影响战斗结算和显示。
原因: `GetTerrainDefenseMultiplicationParam` 找不到单位所在格或单位所属玩家,返回默认防御并记录错误。数据层的 `UnitToGridDict/UnitToCityDict/PlayerMap` 至少有一处不一致。
## 建议
在单位移动、死亡、复活、生成后检查 Unit/Grid/Player 三张索引同步;这里虽然返回默认值,但应按数据完整性错误追。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,46 +0,0 @@
# CrashSight 阻断报告 - edbc2bf3a9b58de9026ab0925253f29e
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/edbc2bf3a9b58de9026ab0925253f29e?pid=10
- 异常类型: NullReferenceException
- 阻断族: 探索者移动 Fragment 空引用
- 发生次数: 499
- 首次/最近: 2025-11-05 14:00:17 ~ 2026-05-19 01:36:18
## 原始异常
异常消息: Object reference not set to an instance of an object.
关键堆栈: gcq.hdo (System.Single a) (at <00000000000000000000000000000000>.0)
## 反混淆结果
```text
## 56. edbc2bf3a9b58de9026ab0925253f29e
Type: NullReferenceException
Count: 499
FirstSeen: 2025-11-05 14:00:17
LastSeen: 2026-05-19 01:36:18
Message: Object reference not set to an instance of an object.
KeyStack: gcq.hdo [方法: TH1_Anim.Fragments.FragmentMoveExplorer.OnUpdate(System.Single)] (System.Single a) (at <00000000000000000000000000000000>.0)
RawText: edbc2bf3a9b58de9026ab0925253f29e NullReferenceException 异常消息Object reference not set to an instance of an object. 关键堆栈gcq.hdo [方法: TH1_Anim.Fragments.FragmentMoveExplorer.OnUpdate(System.Single)] (System.Single a) (at <00000000000000000000000000000000>.0) 2025-11-05 14:00:17 ~ 2026-05-19 01:36:18 添加标签 2026-05-19 01:36:18 499 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/edbc2bf3a9b58de9026ab0925253f29e?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Anim/Fragments/FragmentMoveExplorer.cs:62 - 探索者移动 OnUpdate
## 触发原因与阻断判断
判断: 探索者移动表现中断。
原因: `FragmentMoveExplorer.OnUpdate` 虽然检查了 Data/TargetGrid但仍依赖 `MapRenderer.Instance.CameraController`、Explorer、Grid Renderer 和 Main.MapData。切图或表现对象销毁时可能空引用。
## 建议
把 Fragment 的目标 renderer/cache 做生命周期校验;地图退出时取消未完成 Fragment。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,47 +0,0 @@
# CrashSight 阻断报告 - 5680b7fdadea0291f36c15b5f571ba15
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/5680b7fdadea0291f36c15b5f571ba15?pid=10
- 异常类型: UnityLogError
- 阻断族: 单位防御计算缺少格子或玩家映射
- 发生次数: 470
- 首次/最近: 2026-05-16 20:50:42 ~ 2026-05-19 12:07:43
## 原始异常
异常消息: UnitData GetExtraDefense Cant find grid or player by uid
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 57. 5680b7fdadea0291f36c15b5f571ba15
Type: UnityLogError
Count: 470
FirstSeen: 2026-05-16 20:50:42
LastSeen: 2026-05-19 12:07:43
Message: UnitData GetExtraDefense Cant find grid or player by uid
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: 5680b7fdadea0291f36c15b5f571ba15 UnityLogError 异常消息UnitData GetExtraDefense Cant find grid or player by uid 关键堆栈UnityEngine.Debug.LogError(Object) 2026-05-16 20:50:42 ~ 2026-05-19 12:07:43 添加标签 2026-05-19 12:07:43 470 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/5680b7fdadea0291f36c15b5f571ba15?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Data/UnitData.cs:1019 - 防御倍率计算
- F:/th1new/Unity/Assets/Scripts/TH1_Data/MapData.cs:1108 - 单位创建会写 UnitToGrid/UnitToCity
## 触发原因与阻断判断
判断: 防御计算降级,继续扩大可能影响战斗结算和显示。
原因: `GetTerrainDefenseMultiplicationParam` 找不到单位所在格或单位所属玩家,返回默认防御并记录错误。数据层的 `UnitToGridDict/UnitToCityDict/PlayerMap` 至少有一处不一致。
## 建议
在单位移动、死亡、复活、生成后检查 Unit/Grid/Player 三张索引同步;这里虽然返回默认值,但应按数据完整性错误追。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,48 +0,0 @@
# CrashSight 阻断报告 - 0835743d896436da32c652542336f397
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/0835743d896436da32c652542336f397?pid=10
- 异常类型: UnityLogError
- 阻断族: AI 行为循环/重复 action
- 发生次数: 461
- 首次/最近: 2026-05-04 12:03:59 ~ 2026-05-19 12:18:06
## 原始异常
异常消息: 存在相似action ,记录点为:756 ,Action为:Action : LearnTech Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : KomeijiIndianMethematics PlayerAction : None AIParam : AllClear Tech : KomeijiIndianMethematics CultureCardType : None 重复次数 :6
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 58. 0835743d896436da32c652542336f397
Type: UnityLogError
Count: 461
FirstSeen: 2026-05-04 12:03:59
LastSeen: 2026-05-19 12:18:06
Message: 存在相似action ,记录点为:756 ,Action为:Action : LearnTech Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : KomeijiIndianMethematics PlayerAction : None AIParam : AllClear Tech : KomeijiIndianMethematics CultureCardType : None 重复次数 :6
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: 0835743d896436da32c652542336f397 UnityLogError 异常消息存在相似action ,记录点为:756 ,Action为:Action : LearnTech Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : KomeijiIndianMethematics PlayerAction : None AIParam : AllClear Tech : KomeijiIndianMethematics CultureCardType : None 重复次数 :6 关键堆栈UnityEngine.Debug.LogError(Object) 2026-05-04 12:03:59 ~ 2026-05-19 12:18:06 添加标签 2026-05-19 12:18:06 461 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/0835743d896436da32c652542336f397?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/AI/AIActionBase.cs:521 - AI 策略循环保护
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/AI/AILogic.cs:160 - BT 行为树循环保护
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/AI/AILogic.cs:216 - 重复 action 检测
## 触发原因与阻断判断
判断: AI 回合可能变慢、提前结束或重复无效行为,玩家感知为卡回合/AI 不行动。
原因: AI 行为树或策略计算超过保护阈值,或连续选择相同 action 超过次数。当前代码会打日志并 break/继续,但说明 AI 没能收敛到有效下一步。
## 建议
用记录点 `BTNodeId` 和 action 类型回查对应 BT 节点的退出条件;重复 action 要检查执行后是否真正改变了评分输入。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,48 +0,0 @@
# CrashSight 阻断报告 - ad347b0f0847882d05476b28dfbb5056
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/ad347b0f0847882d05476b28dfbb5056?pid=10
- 异常类型: UnityLogError
- 阻断族: ForceUpdate/断线重连恢复
- 发生次数: 444
- 首次/最近: 2026-05-16 02:46:45 ~ 2026-05-19 12:05:31
## 原始异常
异常消息: 触发断线重连, 触发原因: Error
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 59. ad347b0f0847882d05476b28dfbb5056
Type: UnityLogError
Count: 444
FirstSeen: 2026-05-16 02:46:45
LastSeen: 2026-05-19 12:05:31
Message: 触发断线重连, 触发原因: Error
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: ad347b0f0847882d05476b28dfbb5056 UnityLogError 异常消息触发断线重连, 触发原因: Error 关键堆栈UnityEngine.Debug.LogError(Object) 2026-05-16 02:46:45 ~ 2026-05-19 12:05:31 添加标签 2026-05-19 12:05:31 444 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/ad347b0f0847882d05476b28dfbb5056?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Steam/GameNetReceiver.cs:264 - ForceUpdate 接收
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Steam/GameNetReceiver.cs:291 - 触发断线重连日志
- F:/th1new/Unity/Assets/Scripts/TH1_Data/MapData.cs:2603 - 差异比较日志
## 触发原因与阻断判断
判断: 玩家进入强制同步恢复状态,若恢复失败会回到前一状态或继续异常。
原因: 成员状态不是 OK 或主动请求恢复后,`OnReceivedForceUpdate` 记录触发原因并尝试 `NetResumeMatch`。详情中空消息问题来自 `MapData.FindDifferences` 输出了空字符串,说明恢复链路在比较/日志阶段也可能缺失有效差异文本。
## 建议
补强 `FindDifferences` 空差异时的日志;`NetResumeMatch` 前后保存/恢复状态,确保恢复失败不会半切换到 ForceUpdating。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,48 +0,0 @@
# CrashSight 阻断报告 - 7bdcfa8bcdb1086ff37a4b6de7aa5827
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/7bdcfa8bcdb1086ff37a4b6de7aa5827?pid=10
- 异常类型: UnityLogError
- 阻断族: ForceUpdate/断线重连恢复
- 发生次数: 437
- 首次/最近: 2026-05-16 21:15:52 ~ 2026-05-18 18:02:56
## 原始异常
异常消息: 触发断线重连, 触发原因: Disconnected
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 60. 7bdcfa8bcdb1086ff37a4b6de7aa5827
Type: UnityLogError
Count: 437
FirstSeen: 2026-05-16 21:15:52
LastSeen: 2026-05-18 18:02:56
Message: 触发断线重连, 触发原因: Disconnected
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: 7bdcfa8bcdb1086ff37a4b6de7aa5827 UnityLogError 异常消息触发断线重连, 触发原因: Disconnected 关键堆栈UnityEngine.Debug.LogError(Object) 2026-05-16 21:15:52 ~ 2026-05-18 18:02:56 添加标签 2026-05-18 18:02:56 437 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/7bdcfa8bcdb1086ff37a4b6de7aa5827?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Steam/GameNetReceiver.cs:264 - ForceUpdate 接收
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Steam/GameNetReceiver.cs:291 - 触发断线重连日志
- F:/th1new/Unity/Assets/Scripts/TH1_Data/MapData.cs:2603 - 差异比较日志
## 触发原因与阻断判断
判断: 玩家进入强制同步恢复状态,若恢复失败会回到前一状态或继续异常。
原因: 成员状态不是 OK 或主动请求恢复后,`OnReceivedForceUpdate` 记录触发原因并尝试 `NetResumeMatch`。详情中空消息问题来自 `MapData.FindDifferences` 输出了空字符串,说明恢复链路在比较/日志阶段也可能缺失有效差异文本。
## 建议
补强 `FindDifferences` 空差异时的日志;`NetResumeMatch` 前后保存/恢复状态,确保恢复失败不会半切换到 ForceUpdating。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,48 +0,0 @@
# CrashSight 阻断报告 - 688b04002ace3cdbd23f5a760f60ea64
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/688b04002ace3cdbd23f5a760f60ea64?pid=10
- 异常类型: UnityLogError
- 阻断族: ForceUpdate/断线重连恢复
- 发生次数: 429
- 首次/最近: 2026-05-16 21:07:13 ~ 2026-05-19 09:07:01
## 原始异常
异常消息: 触发断线重连, 触发原因: Timeout
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 61. 688b04002ace3cdbd23f5a760f60ea64
Type: UnityLogError
Count: 429
FirstSeen: 2026-05-16 21:07:13
LastSeen: 2026-05-19 09:07:01
Message: 触发断线重连, 触发原因: Timeout
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: 688b04002ace3cdbd23f5a760f60ea64 UnityLogError 异常消息触发断线重连, 触发原因: Timeout 关键堆栈UnityEngine.Debug.LogError(Object) 2026-05-16 21:07:13 ~ 2026-05-19 09:07:01 添加标签 2026-05-19 09:07:01 429 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/688b04002ace3cdbd23f5a760f60ea64?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Steam/GameNetReceiver.cs:264 - ForceUpdate 接收
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Steam/GameNetReceiver.cs:291 - 触发断线重连日志
- F:/th1new/Unity/Assets/Scripts/TH1_Data/MapData.cs:2603 - 差异比较日志
## 触发原因与阻断判断
判断: 玩家进入强制同步恢复状态,若恢复失败会回到前一状态或继续异常。
原因: 成员状态不是 OK 或主动请求恢复后,`OnReceivedForceUpdate` 记录触发原因并尝试 `NetResumeMatch`。详情中空消息问题来自 `MapData.FindDifferences` 输出了空字符串,说明恢复链路在比较/日志阶段也可能缺失有效差异文本。
## 建议
补强 `FindDifferences` 空差异时的日志;`NetResumeMatch` 前后保存/恢复状态,确保恢复失败不会半切换到 ForceUpdating。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,47 +0,0 @@
# CrashSight 阻断报告 - 92a16aef34dc990899143b85ea8d25b5
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/92a16aef34dc990899143b85ea8d25b5?pid=10
- 异常类型: UnityLogError
- 阻断族: 单位防御计算缺少格子或玩家映射
- 发生次数: 418
- 首次/最近: 2026-05-15 20:49:47 ~ 2026-05-19 04:34:53
## 原始异常
异常消息: UnitData GetExtraDefense Cant find grid or player by uid
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 62. 92a16aef34dc990899143b85ea8d25b5
Type: UnityLogError
Count: 418
FirstSeen: 2026-05-15 20:49:47
LastSeen: 2026-05-19 04:34:53
Message: UnitData GetExtraDefense Cant find grid or player by uid
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: 92a16aef34dc990899143b85ea8d25b5 UnityLogError 异常消息UnitData GetExtraDefense Cant find grid or player by uid 关键堆栈UnityEngine.Debug.LogError(Object) 2026-05-15 20:49:47 ~ 2026-05-19 04:34:53 添加标签 2026-05-19 04:34:53 418 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/92a16aef34dc990899143b85ea8d25b5?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Data/UnitData.cs:1019 - 防御倍率计算
- F:/th1new/Unity/Assets/Scripts/TH1_Data/MapData.cs:1108 - 单位创建会写 UnitToGrid/UnitToCity
## 触发原因与阻断判断
判断: 防御计算降级,继续扩大可能影响战斗结算和显示。
原因: `GetTerrainDefenseMultiplicationParam` 找不到单位所在格或单位所属玩家,返回默认防御并记录错误。数据层的 `UnitToGridDict/UnitToCityDict/PlayerMap` 至少有一处不一致。
## 建议
在单位移动、死亡、复活、生成后检查 Unit/Grid/Player 三张索引同步;这里虽然返回默认值,但应按数据完整性错误追。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,48 +0,0 @@
# CrashSight 阻断报告 - c98860085ab1915973545b791342b44f
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/c98860085ab1915973545b791342b44f?pid=10
- 异常类型: UnityLogError
- 阻断族: MemoryPack Union/协议反序列化失败
- 发生次数: 390
- 首次/最近: 2026-05-16 20:38:37 ~ 2026-05-18 20:45:39
## 原始异常
异常消息: 地图数据反序列化失败,可能是版本不兼容: Data read tag: 0 but not found in fpx MemoryPackUnion annotations.
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 63. c98860085ab1915973545b791342b44f
Type: UnityLogError
Count: 390
FirstSeen: 2026-05-16 20:38:37
LastSeen: 2026-05-18 20:45:39
Message: 地图数据反序列化失败,可能是版本不兼容: Data read tag: 0 but [方法: Logic.AI.AIActionGenerator.GeneratorActionIds(Logic.AI.AICalculatorData,Logic.Action.CommonActionType)] not found in fpx [类型: Logic.Skill.SkillBase] MemoryPackUnion annotations.
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: c98860085ab1915973545b791342b44f UnityLogError 异常消息地图数据反序列化失败,可能是版本不兼容: Data read tag: 0 but [方法: Logic.AI.AIActionGenerator.GeneratorActionIds(Logic.AI.AICalculatorData,Logic.Action.CommonActionType)] not found in fpx [类型: Logic.Skill.SkillBase] MemoryPackUnion annotations. 关键堆栈UnityEngine.Debug.LogError(Object) 2026-05-16 20:38:37 ~ 2026-05-18 20:45:39 添加标签 2026-05-18 20:45:39 390 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/c98860085ab1915973545b791342b44f?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Steam/SteamObjectSerializer.cs:75 - BaseMessage MemoryPackUnion 列表
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Steam/GameNetReceiver.cs:19 - 反序列化 BaseMessage
- F:/th1new/Unity/Assets/Scripts/TH1_Data/MapData.cs:1914 - 地图数据反序列化异常捕获
## 触发原因与阻断判断
判断: 多人消息、ForceUpdate、存档/地图读取无法反序列化,属于硬阻断。
原因: MemoryPack 读到的 union tag 不在当前类型的 `[MemoryPackUnion]` 注解内。BaseMessage tag 84 明显超出当前 `BaseMessage` 1-17 范围,地图/配置里的 `MomentItemBase`、技能 union 也有类似版本不兼容风险。
## 建议
确认线上 0.7.1i/j/k 的 MemoryPackUnion 生成文件一致;新增 union 只能追加不重排;网络消息反序列化失败要丢弃并触发恢复,不应继续应用半包。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,48 +0,0 @@
# CrashSight 阻断报告 - d31d09ef305b3ffcde9044c4ba3e490c
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/d31d09ef305b3ffcde9044c4ba3e490c?pid=10
- 异常类型: UnityLogError
- 阻断族: 多人地图/Action 同步不一致
- 发生次数: 386
- 首次/最近: 2026-05-14 17:36:01 ~ 2026-05-19 03:08:15
## 原始异常
异常消息: 成员端: !Main.MapData.Net.Actions[message.Index - 1].IsEqual(message.ActionData)
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 64. d31d09ef305b3ffcde9044c4ba3e490c
Type: UnityLogError
Count: 386
FirstSeen: 2026-05-14 17:36:01
LastSeen: 2026-05-19 03:08:15
Message: 成员端: !Main.MapData.Net.Actions[message.Index - 1].IsEqual(message.ActionData)
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: d31d09ef305b3ffcde9044c4ba3e490c UnityLogError 异常消息成员端: !Main.MapData.Net.Actions[message.Index - 1].IsEqual(message.ActionData) 关键堆栈UnityEngine.Debug.LogError(Object) 2026-05-14 17:36:01 ~ 2026-05-19 03:08:15 添加标签 2026-05-19 03:08:15 386 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/d31d09ef305b3ffcde9044c4ba3e490c?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Steam/GameNetReceiver.cs:198 - MapConfirm 校验
- F:/th1new/Unity/Assets/Scripts/TH1_Data/MapData.cs:2603 - FindDifferences 输出差异
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Action/ActionLogic.cs:1196 - 执行后比对 CheckMapData
## 触发原因与阻断判断
判断: 多人同步阻断,可能触发 ForceUpdate、回滚/恢复,严重时双方继续分叉。
原因: MapConfirm/ForceUpdate 发现 action 索引、ActionData 或 MapHash 不一致。`MapData.FindDifferences` 会输出前后 action 和对象字段差异;这表示至少一个 peer 的权威地图已经分叉。
## 建议
按报告中的“前/后 Action”回查该 action 的 `Execute` 是否使用非确定随机、真实 UI/Renderer、副作用或未同步字段ForceUpdate 应保持原子恢复。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,48 +0,0 @@
# CrashSight 阻断报告 - 3a48be42a3149d43e7ebed18f372c83f
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/3a48be42a3149d43e7ebed18f372c83f?pid=10
- 异常类型: UnityLogError
- 阻断族: AI 行为循环/重复 action
- 发生次数: 377
- 首次/最近: 2026-05-14 18:08:41 ~ 2026-05-19 12:14:10
## 原始异常
异常消息: 存在相似action ,记录点为:756 ,Action为:Action : LearnTech Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : KanakoTrade PlayerAction : None AIParam : AllClear Tech : KanakoTrade CultureCardType : None 重复次数 :6
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 65. 3a48be42a3149d43e7ebed18f372c83f
Type: UnityLogError
Count: 377
FirstSeen: 2026-05-14 18:08:41
LastSeen: 2026-05-19 12:14:10
Message: 存在相似action ,记录点为:756 ,Action为:Action : LearnTech Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : KanakoTrade PlayerAction : None AIParam : AllClear Tech : KanakoTrade CultureCardType : None 重复次数 :6
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: 3a48be42a3149d43e7ebed18f372c83f UnityLogError 异常消息存在相似action ,记录点为:756 ,Action为:Action : LearnTech Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : KanakoTrade PlayerAction : None AIParam : AllClear Tech : KanakoTrade CultureCardType : None 重复次数 :6 关键堆栈UnityEngine.Debug.LogError(Object) 2026-05-14 18:08:41 ~ 2026-05-19 12:14:10 添加标签 2026-05-19 12:14:10 377 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/3a48be42a3149d43e7ebed18f372c83f?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/AI/AIActionBase.cs:521 - AI 策略循环保护
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/AI/AILogic.cs:160 - BT 行为树循环保护
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/AI/AILogic.cs:216 - 重复 action 检测
## 触发原因与阻断判断
判断: AI 回合可能变慢、提前结束或重复无效行为,玩家感知为卡回合/AI 不行动。
原因: AI 行为树或策略计算超过保护阈值,或连续选择相同 action 超过次数。当前代码会打日志并 break/继续,但说明 AI 没能收敛到有效下一步。
## 建议
用记录点 `BTNodeId` 和 action 类型回查对应 BT 节点的退出条件;重复 action 要检查执行后是否真正改变了评分输入。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,47 +0,0 @@
# CrashSight 阻断报告 - 3e3a6da58534d3ac548ff7003500b3c5
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/3e3a6da58534d3ac548ff7003500b3c5?pid=10
- 异常类型: UnityLogError
- 阻断族: 单位防御计算缺少格子或玩家映射
- 发生次数: 366
- 首次/最近: 2026-05-15 18:11:19 ~ 2026-05-19 00:45:00
## 原始异常
异常消息: UnitData GetExtraDefense Cant find grid or player by uid
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 66. 3e3a6da58534d3ac548ff7003500b3c5
Type: UnityLogError
Count: 366
FirstSeen: 2026-05-15 18:11:19
LastSeen: 2026-05-19 00:45:00
Message: UnitData GetExtraDefense Cant find grid or player by uid
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: 3e3a6da58534d3ac548ff7003500b3c5 UnityLogError 异常消息UnitData GetExtraDefense Cant find grid or player by uid 关键堆栈UnityEngine.Debug.LogError(Object) 2026-05-15 18:11:19 ~ 2026-05-19 00:45:00 添加标签 2026-05-19 00:45:00 366 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/3e3a6da58534d3ac548ff7003500b3c5?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Data/UnitData.cs:1019 - 防御倍率计算
- F:/th1new/Unity/Assets/Scripts/TH1_Data/MapData.cs:1108 - 单位创建会写 UnitToGrid/UnitToCity
## 触发原因与阻断判断
判断: 防御计算降级,继续扩大可能影响战斗结算和显示。
原因: `GetTerrainDefenseMultiplicationParam` 找不到单位所在格或单位所属玩家,返回默认防御并记录错误。数据层的 `UnitToGridDict/UnitToCityDict/PlayerMap` 至少有一处不一致。
## 建议
在单位移动、死亡、复活、生成后检查 Unit/Grid/Player 三张索引同步;这里虽然返回默认值,但应按数据完整性错误追。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,48 +0,0 @@
# CrashSight 阻断报告 - 697d4fc58f94e10c7ba37bfd737e27df
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/697d4fc58f94e10c7ba37bfd737e27df?pid=10
- 异常类型: UnityLogError
- 阻断族: Action 执行玩家不一致 (BuyCultureCard)
- 发生次数: 365
- 首次/最近: 2026-04-11 17:57:46 ~ 2026-05-19 12:17:44
## 原始异常
异常消息: CompleteExecute Player 不一致 Action : BuyCultureCard Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AllClear Tech : None CultureCardType : ThirdHero
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 67. 697d4fc58f94e10c7ba37bfd737e27df
Type: UnityLogError
Count: 365
FirstSeen: 2026-04-11 17:57:46
LastSeen: 2026-05-19 12:17:44
Message: CompleteExecute Player 不一致 Action : BuyCultureCard Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AllClear Tech : None CultureCardType : ThirdHero
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: 697d4fc58f94e10c7ba37bfd737e27df UnityLogError 异常消息CompleteExecute Player 不一致 Action : BuyCultureCard Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AllClear Tech : None CultureCardType : ThirdHero 关键堆栈UnityEngine.Debug.LogError(Object) 2026-04-11 17:57:46 ~ 2026-05-19 12:17:44 添加标签 2026-05-19 12:17:44 365 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/697d4fc58f94e10c7ba37bfd737e27df?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Action/ActionLogic.cs:1105 - CompleteExecute 玩家一致性检查
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/AI/AILogic.cs:240 - AI 最终执行 action
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Steam/GameNetReceiver.cs:142 - 网络 action 执行入口
## 触发原因与阻断判断
判断: 对应 action 被拦截不执行;如果发生在 AI 或同步链路,会造成卡回合或双方状态分叉。
原因: `ActionLogicBase.CompleteExecute` 要求 `actionParams.PlayerId` 等于 `MapData.CurPlayer.Id`。这里 action 的归属玩家与当前回合玩家不同,函数直接返回 false。常见来源是 AI/网络/回放参数刷新到错误 MapData或 UI 缓存了上一回合 action。
## 建议
回查该 action 的构参处,确保 `CommonActionParams.MapData``PlayerData``PlayerId` 在执行前调用 `RefreshParams/OnParamChanged` 并跟随当前回合。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,48 +0,0 @@
# CrashSight 阻断报告 - c80751c5a0552930687465b6ec6f51ba
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/c80751c5a0552930687465b6ec6f51ba?pid=10
- 异常类型: UnityLogError
- 阻断族: MemoryPack Union/协议反序列化失败
- 发生次数: 345
- 首次/最近: 2026-05-16 22:27:45 ~ 2026-05-18 17:33:43
## 原始异常
异常消息: 地图数据反序列化失败,可能是版本不兼容: Data read tag: 0 but not found in fpx MemoryPackUnion annotations.
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 68. c80751c5a0552930687465b6ec6f51ba
Type: UnityLogError
Count: 345
FirstSeen: 2026-05-16 22:27:45
LastSeen: 2026-05-18 17:33:43
Message: 地图数据反序列化失败,可能是版本不兼容: Data read tag: 0 but [方法: Logic.AI.AIActionGenerator.GeneratorActionIds(Logic.AI.AICalculatorData,Logic.Action.CommonActionType)] not found in fpx [类型: Logic.Skill.SkillBase] MemoryPackUnion annotations.
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: c80751c5a0552930687465b6ec6f51ba UnityLogError 异常消息地图数据反序列化失败,可能是版本不兼容: Data read tag: 0 but [方法: Logic.AI.AIActionGenerator.GeneratorActionIds(Logic.AI.AICalculatorData,Logic.Action.CommonActionType)] not found in fpx [类型: Logic.Skill.SkillBase] MemoryPackUnion annotations. 关键堆栈UnityEngine.Debug.LogError(Object) 2026-05-16 22:27:45 ~ 2026-05-18 17:33:43 添加标签 2026-05-18 17:33:43 345 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/c80751c5a0552930687465b6ec6f51ba?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Steam/SteamObjectSerializer.cs:75 - BaseMessage MemoryPackUnion 列表
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Steam/GameNetReceiver.cs:19 - 反序列化 BaseMessage
- F:/th1new/Unity/Assets/Scripts/TH1_Data/MapData.cs:1914 - 地图数据反序列化异常捕获
## 触发原因与阻断判断
判断: 多人消息、ForceUpdate、存档/地图读取无法反序列化,属于硬阻断。
原因: MemoryPack 读到的 union tag 不在当前类型的 `[MemoryPackUnion]` 注解内。BaseMessage tag 84 明显超出当前 `BaseMessage` 1-17 范围,地图/配置里的 `MomentItemBase`、技能 union 也有类似版本不兼容风险。
## 建议
确认线上 0.7.1i/j/k 的 MemoryPackUnion 生成文件一致;新增 union 只能追加不重排;网络消息反序列化失败要丢弃并触发恢复,不应继续应用半包。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,47 +0,0 @@
# CrashSight 阻断报告 - 10bf1e2a5d7f2a314e3d987347188100
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/10bf1e2a5d7f2a314e3d987347188100?pid=10
- 异常类型: UnityLogError
- 阻断族: 单位防御计算缺少格子或玩家映射
- 发生次数: 329
- 首次/最近: 2026-05-16 20:50:43 ~ 2026-05-19 07:37:15
## 原始异常
异常消息: UnitData GetExtraDefense Cant find grid or player by uid
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 69. 10bf1e2a5d7f2a314e3d987347188100
Type: UnityLogError
Count: 329
FirstSeen: 2026-05-16 20:50:43
LastSeen: 2026-05-19 07:37:15
Message: UnitData GetExtraDefense Cant find grid or player by uid
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: 10bf1e2a5d7f2a314e3d987347188100 UnityLogError 异常消息UnitData GetExtraDefense Cant find grid or player by uid 关键堆栈UnityEngine.Debug.LogError(Object) 2026-05-16 20:50:43 ~ 2026-05-19 07:37:15 添加标签 2026-05-19 07:37:15 329 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/10bf1e2a5d7f2a314e3d987347188100?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Data/UnitData.cs:1019 - 防御倍率计算
- F:/th1new/Unity/Assets/Scripts/TH1_Data/MapData.cs:1108 - 单位创建会写 UnitToGrid/UnitToCity
## 触发原因与阻断判断
判断: 防御计算降级,继续扩大可能影响战斗结算和显示。
原因: `GetTerrainDefenseMultiplicationParam` 找不到单位所在格或单位所属玩家,返回默认防御并记录错误。数据层的 `UnitToGridDict/UnitToCityDict/PlayerMap` 至少有一处不一致。
## 建议
在单位移动、死亡、复活、生成后检查 Unit/Grid/Player 三张索引同步;这里虽然返回默认值,但应按数据完整性错误追。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,47 +0,0 @@
# CrashSight 阻断报告 - 5ba6eeccf9b4553cf812def9b54018d8
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/5ba6eeccf9b4553cf812def9b54018d8?pid=10
- 异常类型: UnityLogError
- 阻断族: 单位防御计算缺少格子或玩家映射
- 发生次数: 314
- 首次/最近: 2026-05-16 20:50:41 ~ 2026-05-19 12:07:43
## 原始异常
异常消息: UnitData GetExtraDefense Cant find grid or player by uid
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 70. 5ba6eeccf9b4553cf812def9b54018d8
Type: UnityLogError
Count: 314
FirstSeen: 2026-05-16 20:50:41
LastSeen: 2026-05-19 12:07:43
Message: UnitData GetExtraDefense Cant find grid or player by uid
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: 5ba6eeccf9b4553cf812def9b54018d8 UnityLogError 异常消息UnitData GetExtraDefense Cant find grid or player by uid 关键堆栈UnityEngine.Debug.LogError(Object) 2026-05-16 20:50:41 ~ 2026-05-19 12:07:43 添加标签 2026-05-19 12:07:43 314 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/5ba6eeccf9b4553cf812def9b54018d8?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Data/UnitData.cs:1019 - 防御倍率计算
- F:/th1new/Unity/Assets/Scripts/TH1_Data/MapData.cs:1108 - 单位创建会写 UnitToGrid/UnitToCity
## 触发原因与阻断判断
判断: 防御计算降级,继续扩大可能影响战斗结算和显示。
原因: `GetTerrainDefenseMultiplicationParam` 找不到单位所在格或单位所属玩家,返回默认防御并记录错误。数据层的 `UnitToGridDict/UnitToCityDict/PlayerMap` 至少有一处不一致。
## 建议
在单位移动、死亡、复活、生成后检查 Unit/Grid/Player 三张索引同步;这里虽然返回默认值,但应按数据完整性错误追。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,48 +0,0 @@
# CrashSight 阻断报告 - d7f295079113b4d522f03b74c3dce4c9
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/d7f295079113b4d522f03b74c3dce4c9?pid=10
- 异常类型: UnityLogError
- 阻断族: 多人地图/Action 同步不一致
- 发生次数: 310
- 首次/最近: 2026-05-16 17:31:11 ~ 2026-05-19 10:53:01
## 原始异常
异常消息: Map不一致前后Action Action : UnitAttack Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AllClear Tech : None CultureCardType : None 后Action : UnitAttack Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AllClear Tech : None CultureCardType : None
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 71. d7f295079113b4d522f03b74c3dce4c9
Type: UnityLogError
Count: 310
FirstSeen: 2026-05-16 17:31:11
LastSeen: 2026-05-19 10:53:01
Message: Map不一致前后Action Action : UnitAttack Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AllClear Tech : None CultureCardType : None 后Action : UnitAttack Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AllClear Tech : None CultureCardType : None
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: d7f295079113b4d522f03b74c3dce4c9 UnityLogError 异常消息Map不一致前后Action Action : UnitAttack Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AllClear Tech : None CultureCardType : None 后Action : UnitAttack Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AllClear Tech : None CultureCardType : None 关键堆栈UnityEngine.Debug.LogError(Object) 2026-05-16 17:31:11 ~ 2026-05-19 10:53:01 添加标签 2026-05-19 10:53:01 310 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/d7f295079113b4d522f03b74c3dce4c9?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Steam/GameNetReceiver.cs:198 - MapConfirm 校验
- F:/th1new/Unity/Assets/Scripts/TH1_Data/MapData.cs:2603 - FindDifferences 输出差异
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Action/ActionLogic.cs:1196 - 执行后比对 CheckMapData
## 触发原因与阻断判断
判断: 多人同步阻断,可能触发 ForceUpdate、回滚/恢复,严重时双方继续分叉。
原因: MapConfirm/ForceUpdate 发现 action 索引、ActionData 或 MapHash 不一致。`MapData.FindDifferences` 会输出前后 action 和对象字段差异;这表示至少一个 peer 的权威地图已经分叉。
## 建议
按报告中的“前/后 Action”回查该 action 的 `Execute` 是否使用非确定随机、真实 UI/Renderer、副作用或未同步字段ForceUpdate 应保持原子恢复。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,47 +0,0 @@
# CrashSight 阻断报告 - 670d5de73503e84893e34fd9040677c5
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/670d5de73503e84893e34fd9040677c5?pid=10
- 异常类型: UnityLogError
- 阻断族: 单位防御计算缺少格子或玩家映射
- 发生次数: 303
- 首次/最近: 2025-12-28 20:57:28 ~ 2026-05-19 12:18:08
## 原始异常
异常消息: UnitData GetExtraDefense Cant find grid or player by uid
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 72. 670d5de73503e84893e34fd9040677c5
Type: UnityLogError
Count: 303
FirstSeen: 2025-12-28 20:57:28
LastSeen: 2026-05-19 12:18:08
Message: UnitData GetExtraDefense Cant find grid or player by uid
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: 670d5de73503e84893e34fd9040677c5 UnityLogError 异常消息UnitData GetExtraDefense Cant find grid or player by uid 关键堆栈UnityEngine.Debug.LogError(Object) 2025-12-28 20:57:28 ~ 2026-05-19 12:18:08 添加标签 2026-05-19 12:18:08 303 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/670d5de73503e84893e34fd9040677c5?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Data/UnitData.cs:1019 - 防御倍率计算
- F:/th1new/Unity/Assets/Scripts/TH1_Data/MapData.cs:1108 - 单位创建会写 UnitToGrid/UnitToCity
## 触发原因与阻断判断
判断: 防御计算降级,继续扩大可能影响战斗结算和显示。
原因: `GetTerrainDefenseMultiplicationParam` 找不到单位所在格或单位所属玩家,返回默认防御并记录错误。数据层的 `UnitToGridDict/UnitToCityDict/PlayerMap` 至少有一处不一致。
## 建议
在单位移动、死亡、复活、生成后检查 Unit/Grid/Player 三张索引同步;这里虽然返回默认值,但应按数据完整性错误追。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,48 +0,0 @@
# CrashSight 阻断报告 - f322f67ab1a9616d64241d14d03c3bb0
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/f322f67ab1a9616d64241d14d03c3bb0?pid=10
- 异常类型: UnityLogError
- 阻断族: 多人地图/Action 同步不一致
- 发生次数: 300
- 首次/最近: 2026-05-18 18:34:41 ~ 2026-05-19 01:39:01
## 原始异常
异常消息: Map不一致前后Action Action : UnitAction Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : Examine CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AllClear Tech : None CultureCardType : None 后Action : UnitMove Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AllClear Tech : None CultureCardType : None
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 73. f322f67ab1a9616d64241d14d03c3bb0
Type: UnityLogError
Count: 300
FirstSeen: 2026-05-18 18:34:41
LastSeen: 2026-05-19 01:39:01
Message: Map不一致前后Action Action : UnitAction Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : Examine CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AllClear Tech : None CultureCardType : None 后Action : UnitMove Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AllClear Tech : None CultureCardType : None
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: f322f67ab1a9616d64241d14d03c3bb0 UnityLogError 异常消息Map不一致前后Action Action : UnitAction Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : Examine CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AllClear Tech : None CultureCardType : None 后Action : UnitMove Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AllClear Tech : None CultureCardType : None 关键堆栈UnityEngine.Debug.LogError(Object) 2026-05-18 18:34:41 ~ 2026-05-19 01:39:01 添加标签 2026-05-19 01:39:01 300 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/f322f67ab1a9616d64241d14d03c3bb0?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Steam/GameNetReceiver.cs:198 - MapConfirm 校验
- F:/th1new/Unity/Assets/Scripts/TH1_Data/MapData.cs:2603 - FindDifferences 输出差异
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Action/ActionLogic.cs:1196 - 执行后比对 CheckMapData
## 触发原因与阻断判断
判断: 多人同步阻断,可能触发 ForceUpdate、回滚/恢复,严重时双方继续分叉。
原因: MapConfirm/ForceUpdate 发现 action 索引、ActionData 或 MapHash 不一致。`MapData.FindDifferences` 会输出前后 action 和对象字段差异;这表示至少一个 peer 的权威地图已经分叉。
## 建议
按报告中的“前/后 Action”回查该 action 的 `Execute` 是否使用非确定随机、真实 UI/Renderer、副作用或未同步字段ForceUpdate 应保持原子恢复。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,48 +0,0 @@
# CrashSight 阻断报告 - de7d59726317b481a6fccbac6d77ed31
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/de7d59726317b481a6fccbac6d77ed31?pid=10
- 异常类型: UnityLogError
- 阻断族: 多人地图/Action 同步不一致
- 发生次数: 298
- 首次/最近: 2026-05-17 01:24:11 ~ 2026-05-18 21:11:45
## 原始异常
异常消息: Map不一致前后Action Action : AIParamControl Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AIMoney Tech : None CultureCardType : None 后Action : UnitMove Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AllClear Tech : None CultureCardType : None
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 74. de7d59726317b481a6fccbac6d77ed31
Type: UnityLogError
Count: 298
FirstSeen: 2026-05-17 01:24:11
LastSeen: 2026-05-18 21:11:45
Message: Map不一致前后Action Action : AIParamControl Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AIMoney Tech : None CultureCardType : None 后Action : UnitMove Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AllClear Tech : None CultureCardType : None
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: de7d59726317b481a6fccbac6d77ed31 UnityLogError 异常消息Map不一致前后Action Action : AIParamControl Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AIMoney Tech : None CultureCardType : None 后Action : UnitMove Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AllClear Tech : None CultureCardType : None 关键堆栈UnityEngine.Debug.LogError(Object) 2026-05-17 01:24:11 ~ 2026-05-18 21:11:45 添加标签 2026-05-18 21:11:45 298 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/de7d59726317b481a6fccbac6d77ed31?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Steam/GameNetReceiver.cs:198 - MapConfirm 校验
- F:/th1new/Unity/Assets/Scripts/TH1_Data/MapData.cs:2603 - FindDifferences 输出差异
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Action/ActionLogic.cs:1196 - 执行后比对 CheckMapData
## 触发原因与阻断判断
判断: 多人同步阻断,可能触发 ForceUpdate、回滚/恢复,严重时双方继续分叉。
原因: MapConfirm/ForceUpdate 发现 action 索引、ActionData 或 MapHash 不一致。`MapData.FindDifferences` 会输出前后 action 和对象字段差异;这表示至少一个 peer 的权威地图已经分叉。
## 建议
按报告中的“前/后 Action”回查该 action 的 `Execute` 是否使用非确定随机、真实 UI/Renderer、副作用或未同步字段ForceUpdate 应保持原子恢复。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,48 +0,0 @@
# CrashSight 阻断报告 - 58addfad2d99940263ca4e9daa7dd320
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/58addfad2d99940263ca4e9daa7dd320?pid=10
- 异常类型: UnityLogError
- 阻断族: AI 行为循环/重复 action
- 发生次数: 297
- 首次/最近: 2026-04-14 23:19:15 ~ 2026-05-19 11:47:15
## 原始异常
异常消息: 存在相似action ,记录点为:756 ,Action为:Action : LearnTech Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : Roads PlayerAction : None AIParam : AllClear Tech : Roads CultureCardType : None 重复次数 :7
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 75. 58addfad2d99940263ca4e9daa7dd320
Type: UnityLogError
Count: 297
FirstSeen: 2026-04-14 23:19:15
LastSeen: 2026-05-19 11:47:15
Message: 存在相似action ,记录点为:756 ,Action为:Action : LearnTech Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : Roads PlayerAction : None AIParam : AllClear Tech : Roads CultureCardType : None 重复次数 :7
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: 58addfad2d99940263ca4e9daa7dd320 UnityLogError 异常消息存在相似action ,记录点为:756 ,Action为:Action : LearnTech Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : Roads PlayerAction : None AIParam : AllClear Tech : Roads CultureCardType : None 重复次数 :7 关键堆栈UnityEngine.Debug.LogError(Object) 2026-04-14 23:19:15 ~ 2026-05-19 11:47:15 添加标签 2026-05-19 11:47:15 297 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/58addfad2d99940263ca4e9daa7dd320?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/AI/AIActionBase.cs:521 - AI 策略循环保护
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/AI/AILogic.cs:160 - BT 行为树循环保护
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/AI/AILogic.cs:216 - 重复 action 检测
## 触发原因与阻断判断
判断: AI 回合可能变慢、提前结束或重复无效行为,玩家感知为卡回合/AI 不行动。
原因: AI 行为树或策略计算超过保护阈值,或连续选择相同 action 超过次数。当前代码会打日志并 break/继续,但说明 AI 没能收敛到有效下一步。
## 建议
用记录点 `BTNodeId` 和 action 类型回查对应 BT 节点的退出条件;重复 action 要检查执行后是否真正改变了评分输入。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,47 +0,0 @@
# CrashSight 阻断报告 - 61862032573b95eb42fbc6f4b8682cba
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/61862032573b95eb42fbc6f4b8682cba?pid=10
- 异常类型: UnityLogError
- 阻断族: 下一玩家推进失败
- 发生次数: 296
- 首次/最近: 2026-04-11 16:56:33 ~ 2026-05-19 10:44:33
## 原始异常
异常消息: UpdateNextPlayer Error : PlayerDataList Alive Count = 0!!!
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 76. 61862032573b95eb42fbc6f4b8682cba
Type: UnityLogError
Count: 296
FirstSeen: 2026-04-11 16:56:33
LastSeen: 2026-05-19 10:44:33
Message: UpdateNextPlayer Error : PlayerDataList Alive Count = 0!!!
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: 61862032573b95eb42fbc6f4b8682cba UnityLogError 异常消息UpdateNextPlayer Error : PlayerDataList Alive Count = 0!!! 关键堆栈UnityEngine.Debug.LogError(Object) 2026-04-11 16:56:33 ~ 2026-05-19 10:44:33 添加标签 2026-05-19 10:44:33 296 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/61862032573b95eb42fbc6f4b8682cba?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Data/MapData.cs:2017 - 玩家列表为空检查
- F:/th1new/Unity/Assets/Scripts/TH1_Data/MapData.cs:2085 - Alive Count 为 0
## 触发原因与阻断判断
判断: 回合推进阻断,通常会表现为卡回合。
原因: `MapData.UpdateNextPlayer` 找不到可用玩家或玩家列表为空。可能由投降/死亡/结算顺序导致全部玩家被判定非 Alive。
## 建议
回查玩家死亡/投降/结算后 `IsPlaying/Alive` 状态;在切换玩家前处理游戏结束分支。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,48 +0,0 @@
# CrashSight 阻断报告 - 39478df0f48376babd44b63a445e8e4c
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/39478df0f48376babd44b63a445e8e4c?pid=10
- 异常类型: UnityLogError
- 阻断族: ForceUpdate/断线重连恢复
- 发生次数: 276
- 首次/最近: 2026-05-16 20:54:34 ~ 2026-05-19 02:30:03
## 原始异常
异常消息: 触发断线重连, 触发原因: Leaved
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 77. 39478df0f48376babd44b63a445e8e4c
Type: UnityLogError
Count: 276
FirstSeen: 2026-05-16 20:54:34
LastSeen: 2026-05-19 02:30:03
Message: 触发断线重连, 触发原因: Leaved
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: 39478df0f48376babd44b63a445e8e4c UnityLogError 异常消息触发断线重连, 触发原因: Leaved 关键堆栈UnityEngine.Debug.LogError(Object) 2026-05-16 20:54:34 ~ 2026-05-19 02:30:03 添加标签 2026-05-19 02:30:03 276 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/39478df0f48376babd44b63a445e8e4c?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Steam/GameNetReceiver.cs:264 - ForceUpdate 接收
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Steam/GameNetReceiver.cs:291 - 触发断线重连日志
- F:/th1new/Unity/Assets/Scripts/TH1_Data/MapData.cs:2603 - 差异比较日志
## 触发原因与阻断判断
判断: 玩家进入强制同步恢复状态,若恢复失败会回到前一状态或继续异常。
原因: 成员状态不是 OK 或主动请求恢复后,`OnReceivedForceUpdate` 记录触发原因并尝试 `NetResumeMatch`。详情中空消息问题来自 `MapData.FindDifferences` 输出了空字符串,说明恢复链路在比较/日志阶段也可能缺失有效差异文本。
## 建议
补强 `FindDifferences` 空差异时的日志;`NetResumeMatch` 前后保存/恢复状态,确保恢复失败不会半切换到 ForceUpdating。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,48 +0,0 @@
# CrashSight 阻断报告 - a2760c663bb0fe0ac80ae83537b98ecf
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/a2760c663bb0fe0ac80ae83537b98ecf?pid=10
- 异常类型: UnityLogError
- 阻断族: Action 执行玩家不一致 (TurnEnd)
- 发生次数: 254
- 首次/最近: 2026-05-16 21:17:19 ~ 2026-05-19 01:12:22
## 原始异常
异常消息: CompleteExecute Player 不一致 Action : TurnEnd Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AllClear Tech : None CultureCardType : None
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 78. a2760c663bb0fe0ac80ae83537b98ecf
Type: UnityLogError
Count: 254
FirstSeen: 2026-05-16 21:17:19
LastSeen: 2026-05-19 01:12:22
Message: CompleteExecute Player 不一致 Action : TurnEnd Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AllClear Tech : None CultureCardType : None
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: a2760c663bb0fe0ac80ae83537b98ecf UnityLogError 异常消息CompleteExecute Player 不一致 Action : TurnEnd Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AllClear Tech : None CultureCardType : None 关键堆栈UnityEngine.Debug.LogError(Object) 2026-05-16 21:17:19 ~ 2026-05-19 01:12:22 添加标签 2026-05-19 01:12:22 254 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/a2760c663bb0fe0ac80ae83537b98ecf?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Action/ActionLogic.cs:1105 - CompleteExecute 玩家一致性检查
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/AI/AILogic.cs:240 - AI 最终执行 action
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Steam/GameNetReceiver.cs:142 - 网络 action 执行入口
## 触发原因与阻断判断
判断: 对应 action 被拦截不执行;如果发生在 AI 或同步链路,会造成卡回合或双方状态分叉。
原因: `ActionLogicBase.CompleteExecute` 要求 `actionParams.PlayerId` 等于 `MapData.CurPlayer.Id`。这里 action 的归属玩家与当前回合玩家不同,函数直接返回 false。常见来源是 AI/网络/回放参数刷新到错误 MapData或 UI 缓存了上一回合 action。
## 建议
回查该 action 的构参处,确保 `CommonActionParams.MapData``PlayerData``PlayerId` 在执行前调用 `RefreshParams/OnParamChanged` 并跟随当前回合。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,48 +0,0 @@
# CrashSight 阻断报告 - 211f7e716d7387f0652078dbe19d3082
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/211f7e716d7387f0652078dbe19d3082?pid=10
- 异常类型: UnityLogError
- 阻断族: AI 行为循环/重复 action
- 发生次数: 243
- 首次/最近: 2026-05-15 02:57:01 ~ 2026-05-19 11:35:22
## 原始异常
异常消息: 存在相似action ,记录点为:756 ,Action为:Action : LearnTech Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : KanakoPhilosophy PlayerAction : None AIParam : AllClear Tech : KanakoPhilosophy CultureCardType : None 重复次数 :7
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 79. 211f7e716d7387f0652078dbe19d3082
Type: UnityLogError
Count: 243
FirstSeen: 2026-05-15 02:57:01
LastSeen: 2026-05-19 11:35:22
Message: 存在相似action ,记录点为:756 ,Action为:Action : LearnTech Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : KanakoPhilosophy PlayerAction : None AIParam : AllClear Tech : KanakoPhilosophy CultureCardType : None 重复次数 :7
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: 211f7e716d7387f0652078dbe19d3082 UnityLogError 异常消息存在相似action ,记录点为:756 ,Action为:Action : LearnTech Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : KanakoPhilosophy PlayerAction : None AIParam : AllClear Tech : KanakoPhilosophy CultureCardType : None 重复次数 :7 关键堆栈UnityEngine.Debug.LogError(Object) 2026-05-15 02:57:01 ~ 2026-05-19 11:35:22 添加标签 2026-05-19 11:35:22 243 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/211f7e716d7387f0652078dbe19d3082?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/AI/AIActionBase.cs:521 - AI 策略循环保护
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/AI/AILogic.cs:160 - BT 行为树循环保护
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/AI/AILogic.cs:216 - 重复 action 检测
## 触发原因与阻断判断
判断: AI 回合可能变慢、提前结束或重复无效行为,玩家感知为卡回合/AI 不行动。
原因: AI 行为树或策略计算超过保护阈值,或连续选择相同 action 超过次数。当前代码会打日志并 break/继续,但说明 AI 没能收敛到有效下一步。
## 建议
用记录点 `BTNodeId` 和 action 类型回查对应 BT 节点的退出条件;重复 action 要检查执行后是否真正改变了评分输入。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,47 +0,0 @@
# CrashSight 阻断报告 - 4443050357137e5c5a729388bb744a81
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/4443050357137e5c5a729388bb744a81?pid=10
- 异常类型: UnityLogError
- 阻断族: 单位防御计算缺少格子或玩家映射
- 发生次数: 240
- 首次/最近: 2025-12-28 20:57:27 ~ 2026-05-19 12:18:07
## 原始异常
异常消息: UnitData GetExtraDefense Cant find grid or player by uid
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 80. 4443050357137e5c5a729388bb744a81
Type: UnityLogError
Count: 240
FirstSeen: 2025-12-28 20:57:27
LastSeen: 2026-05-19 12:18:07
Message: UnitData GetExtraDefense Cant find grid or player by uid
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: 4443050357137e5c5a729388bb744a81 UnityLogError 异常消息UnitData GetExtraDefense Cant find grid or player by uid 关键堆栈UnityEngine.Debug.LogError(Object) 2025-12-28 20:57:27 ~ 2026-05-19 12:18:07 添加标签 2026-05-19 12:18:07 240 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/4443050357137e5c5a729388bb744a81?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Data/UnitData.cs:1019 - 防御倍率计算
- F:/th1new/Unity/Assets/Scripts/TH1_Data/MapData.cs:1108 - 单位创建会写 UnitToGrid/UnitToCity
## 触发原因与阻断判断
判断: 防御计算降级,继续扩大可能影响战斗结算和显示。
原因: `GetTerrainDefenseMultiplicationParam` 找不到单位所在格或单位所属玩家,返回默认防御并记录错误。数据层的 `UnitToGridDict/UnitToCityDict/PlayerMap` 至少有一处不一致。
## 建议
在单位移动、死亡、复活、生成后检查 Unit/Grid/Player 三张索引同步;这里虽然返回默认值,但应按数据完整性错误追。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,47 +0,0 @@
# CrashSight 阻断报告 - a7baf4df12ebc294b3f9583d6123dd55
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/a7baf4df12ebc294b3f9583d6123dd55?pid=10
- 异常类型: UnityLogError
- 阻断族: 单位防御计算缺少格子或玩家映射
- 发生次数: 239
- 首次/最近: 2025-10-27 03:37:27 ~ 2026-05-19 12:16:50
## 原始异常
异常消息: UnitData GetExtraDefense Cant find grid or player by uid
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 81. a7baf4df12ebc294b3f9583d6123dd55
Type: UnityLogError
Count: 239
FirstSeen: 2025-10-27 03:37:27
LastSeen: 2026-05-19 12:16:50
Message: UnitData GetExtraDefense Cant find grid or player by uid
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: a7baf4df12ebc294b3f9583d6123dd55 UnityLogError 异常消息UnitData GetExtraDefense Cant find grid or player by uid 关键堆栈UnityEngine.Debug.LogError(Object) 2025-10-27 03:37:27 ~ 2026-05-19 12:16:50 添加标签 2026-05-19 12:16:50 239 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/a7baf4df12ebc294b3f9583d6123dd55?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Data/UnitData.cs:1019 - 防御倍率计算
- F:/th1new/Unity/Assets/Scripts/TH1_Data/MapData.cs:1108 - 单位创建会写 UnitToGrid/UnitToCity
## 触发原因与阻断判断
判断: 防御计算降级,继续扩大可能影响战斗结算和显示。
原因: `GetTerrainDefenseMultiplicationParam` 找不到单位所在格或单位所属玩家,返回默认防御并记录错误。数据层的 `UnitToGridDict/UnitToCityDict/PlayerMap` 至少有一处不一致。
## 建议
在单位移动、死亡、复活、生成后检查 Unit/Grid/Player 三张索引同步;这里虽然返回默认值,但应按数据完整性错误追。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,47 +0,0 @@
# CrashSight 阻断报告 - 0ee2d8a9dbb1819612667297fb55fdde
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/0ee2d8a9dbb1819612667297fb55fdde?pid=10
- 异常类型: UnityLogError
- 阻断族: 单位防御计算缺少格子或玩家映射
- 发生次数: 238
- 首次/最近: 2026-05-15 18:11:20 ~ 2026-05-18 17:28:31
## 原始异常
异常消息: UnitData GetExtraDefense Cant find grid or player by uid
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 82. 0ee2d8a9dbb1819612667297fb55fdde
Type: UnityLogError
Count: 238
FirstSeen: 2026-05-15 18:11:20
LastSeen: 2026-05-18 17:28:31
Message: UnitData GetExtraDefense Cant find grid or player by uid
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: 0ee2d8a9dbb1819612667297fb55fdde UnityLogError 异常消息UnitData GetExtraDefense Cant find grid or player by uid 关键堆栈UnityEngine.Debug.LogError(Object) 2026-05-15 18:11:20 ~ 2026-05-18 17:28:31 添加标签 2026-05-18 17:28:31 238 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/0ee2d8a9dbb1819612667297fb55fdde?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Data/UnitData.cs:1019 - 防御倍率计算
- F:/th1new/Unity/Assets/Scripts/TH1_Data/MapData.cs:1108 - 单位创建会写 UnitToGrid/UnitToCity
## 触发原因与阻断判断
判断: 防御计算降级,继续扩大可能影响战斗结算和显示。
原因: `GetTerrainDefenseMultiplicationParam` 找不到单位所在格或单位所属玩家,返回默认防御并记录错误。数据层的 `UnitToGridDict/UnitToCityDict/PlayerMap` 至少有一处不一致。
## 建议
在单位移动、死亡、复活、生成后检查 Unit/Grid/Player 三张索引同步;这里虽然返回默认值,但应按数据完整性错误追。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,47 +0,0 @@
# CrashSight 阻断报告 - 611e22aa68a0a2059a21f187f2a75dbb
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/611e22aa68a0a2059a21f187f2a75dbb?pid=10
- 异常类型: UnityLogError
- 阻断族: 单位防御计算缺少格子或玩家映射
- 发生次数: 236
- 首次/最近: 2025-10-28 13:19:59 ~ 2026-05-19 12:18:51
## 原始异常
异常消息: UnitData GetExtraDefense Cant find grid or player by uid
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 83. 611e22aa68a0a2059a21f187f2a75dbb
Type: UnityLogError
Count: 236
FirstSeen: 2025-10-28 13:19:59
LastSeen: 2026-05-19 12:18:51
Message: UnitData GetExtraDefense Cant find grid or player by uid
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: 611e22aa68a0a2059a21f187f2a75dbb UnityLogError 异常消息UnitData GetExtraDefense Cant find grid or player by uid 关键堆栈UnityEngine.Debug.LogError(Object) 2025-10-28 13:19:59 ~ 2026-05-19 12:18:51 添加标签 2026-05-19 12:18:51 236 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/611e22aa68a0a2059a21f187f2a75dbb?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Data/UnitData.cs:1019 - 防御倍率计算
- F:/th1new/Unity/Assets/Scripts/TH1_Data/MapData.cs:1108 - 单位创建会写 UnitToGrid/UnitToCity
## 触发原因与阻断判断
判断: 防御计算降级,继续扩大可能影响战斗结算和显示。
原因: `GetTerrainDefenseMultiplicationParam` 找不到单位所在格或单位所属玩家,返回默认防御并记录错误。数据层的 `UnitToGridDict/UnitToCityDict/PlayerMap` 至少有一处不一致。
## 建议
在单位移动、死亡、复活、生成后检查 Unit/Grid/Player 三张索引同步;这里虽然返回默认值,但应按数据完整性错误追。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,47 +0,0 @@
# CrashSight 阻断报告 - c8b4f6eca8d3db9fcea40a831affbfaa
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/c8b4f6eca8d3db9fcea40a831affbfaa?pid=10
- 异常类型: UnityLogError
- 阻断族: 单位防御计算缺少格子或玩家映射
- 发生次数: 235
- 首次/最近: 2026-05-16 20:50:42 ~ 2026-05-19 07:37:14
## 原始异常
异常消息: UnitData GetExtraDefense Cant find grid or player by uid
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 84. c8b4f6eca8d3db9fcea40a831affbfaa
Type: UnityLogError
Count: 235
FirstSeen: 2026-05-16 20:50:42
LastSeen: 2026-05-19 07:37:14
Message: UnitData GetExtraDefense Cant find grid or player by uid
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: c8b4f6eca8d3db9fcea40a831affbfaa UnityLogError 异常消息UnitData GetExtraDefense Cant find grid or player by uid 关键堆栈UnityEngine.Debug.LogError(Object) 2026-05-16 20:50:42 ~ 2026-05-19 07:37:14 添加标签 2026-05-19 07:37:14 235 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/c8b4f6eca8d3db9fcea40a831affbfaa?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Data/UnitData.cs:1019 - 防御倍率计算
- F:/th1new/Unity/Assets/Scripts/TH1_Data/MapData.cs:1108 - 单位创建会写 UnitToGrid/UnitToCity
## 触发原因与阻断判断
判断: 防御计算降级,继续扩大可能影响战斗结算和显示。
原因: `GetTerrainDefenseMultiplicationParam` 找不到单位所在格或单位所属玩家,返回默认防御并记录错误。数据层的 `UnitToGridDict/UnitToCityDict/PlayerMap` 至少有一处不一致。
## 建议
在单位移动、死亡、复活、生成后检查 Unit/Grid/Player 三张索引同步;这里虽然返回默认值,但应按数据完整性错误追。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,47 +0,0 @@
# CrashSight 阻断报告 - ae6b1dc5b5ae5d5842a3d642cb911962
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/ae6b1dc5b5ae5d5842a3d642cb911962?pid=10
- 异常类型: UnityLogError
- 阻断族: 单位防御计算缺少格子或玩家映射
- 发生次数: 229
- 首次/最近: 2026-05-16 22:01:40 ~ 2026-05-19 11:14:56
## 原始异常
异常消息: UnitData GetExtraDefense Cant find grid or player by uid
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 85. ae6b1dc5b5ae5d5842a3d642cb911962
Type: UnityLogError
Count: 229
FirstSeen: 2026-05-16 22:01:40
LastSeen: 2026-05-19 11:14:56
Message: UnitData GetExtraDefense Cant find grid or player by uid
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: ae6b1dc5b5ae5d5842a3d642cb911962 UnityLogError 异常消息UnitData GetExtraDefense Cant find grid or player by uid 关键堆栈UnityEngine.Debug.LogError(Object) 2026-05-16 22:01:40 ~ 2026-05-19 11:14:56 添加标签 2026-05-19 11:14:56 229 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/ae6b1dc5b5ae5d5842a3d642cb911962?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Data/UnitData.cs:1019 - 防御倍率计算
- F:/th1new/Unity/Assets/Scripts/TH1_Data/MapData.cs:1108 - 单位创建会写 UnitToGrid/UnitToCity
## 触发原因与阻断判断
判断: 防御计算降级,继续扩大可能影响战斗结算和显示。
原因: `GetTerrainDefenseMultiplicationParam` 找不到单位所在格或单位所属玩家,返回默认防御并记录错误。数据层的 `UnitToGridDict/UnitToCityDict/PlayerMap` 至少有一处不一致。
## 建议
在单位移动、死亡、复活、生成后检查 Unit/Grid/Player 三张索引同步;这里虽然返回默认值,但应按数据完整性错误追。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,48 +0,0 @@
# CrashSight 阻断报告 - fbf21ccc1d02dc5a2747abfea8a1a04a
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/fbf21ccc1d02dc5a2747abfea8a1a04a?pid=10
- 异常类型: UnityLogError
- 阻断族: 多人地图/Action 同步不一致
- 发生次数: 227
- 首次/最近: 2026-05-18 22:19:21 ~ 2026-05-19 07:10:38
## 原始异常
异常消息: Map不一致前后Action Action : AIParamControl Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AIMoney Tech : None CultureCardType : None 后Action : TrainUnit Wonder : None Resource : None Feature : None Terrain : None Unit : Defender Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AllClear Tech : None CultureCardType : None
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 86. fbf21ccc1d02dc5a2747abfea8a1a04a
Type: UnityLogError
Count: 227
FirstSeen: 2026-05-18 22:19:21
LastSeen: 2026-05-19 07:10:38
Message: Map不一致前后Action Action : AIParamControl Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AIMoney Tech : None CultureCardType : None 后Action : TrainUnit Wonder : None Resource : None Feature : None Terrain : None Unit : Defender Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AllClear Tech : None CultureCardType : None
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: fbf21ccc1d02dc5a2747abfea8a1a04a UnityLogError 异常消息Map不一致前后Action Action : AIParamControl Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AIMoney Tech : None CultureCardType : None 后Action : TrainUnit Wonder : None Resource : None Feature : None Terrain : None Unit : Defender Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AllClear Tech : None CultureCardType : None 关键堆栈UnityEngine.Debug.LogError(Object) 2026-05-18 22:19:21 ~ 2026-05-19 07:10:38 添加标签 2026-05-19 07:10:38 227 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/fbf21ccc1d02dc5a2747abfea8a1a04a?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Steam/GameNetReceiver.cs:198 - MapConfirm 校验
- F:/th1new/Unity/Assets/Scripts/TH1_Data/MapData.cs:2603 - FindDifferences 输出差异
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Action/ActionLogic.cs:1196 - 执行后比对 CheckMapData
## 触发原因与阻断判断
判断: 多人同步阻断,可能触发 ForceUpdate、回滚/恢复,严重时双方继续分叉。
原因: MapConfirm/ForceUpdate 发现 action 索引、ActionData 或 MapHash 不一致。`MapData.FindDifferences` 会输出前后 action 和对象字段差异;这表示至少一个 peer 的权威地图已经分叉。
## 建议
按报告中的“前/后 Action”回查该 action 的 `Execute` 是否使用非确定随机、真实 UI/Renderer、副作用或未同步字段ForceUpdate 应保持原子恢复。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,48 +0,0 @@
# CrashSight 阻断报告 - e8064f7882367cdf42fcff64bcfbaab0
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/e8064f7882367cdf42fcff64bcfbaab0?pid=10
- 异常类型: UnityLogError
- 阻断族: Action 执行玩家不一致 (TurnEnd)
- 发生次数: 222
- 首次/最近: 2026-05-16 14:22:10 ~ 2026-05-19 11:37:06
## 原始异常
异常消息: CompleteExecute Player 不一致 Action : TurnEnd Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AllClear Tech : None CultureCardType : None
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 87. e8064f7882367cdf42fcff64bcfbaab0
Type: UnityLogError
Count: 222
FirstSeen: 2026-05-16 14:22:10
LastSeen: 2026-05-19 11:37:06
Message: CompleteExecute Player 不一致 Action : TurnEnd Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AllClear Tech : None CultureCardType : None
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: e8064f7882367cdf42fcff64bcfbaab0 UnityLogError 异常消息CompleteExecute Player 不一致 Action : TurnEnd Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AllClear Tech : None CultureCardType : None 关键堆栈UnityEngine.Debug.LogError(Object) 2026-05-16 14:22:10 ~ 2026-05-19 11:37:06 添加标签 2026-05-19 11:37:06 222 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/e8064f7882367cdf42fcff64bcfbaab0?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Action/ActionLogic.cs:1105 - CompleteExecute 玩家一致性检查
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/AI/AILogic.cs:240 - AI 最终执行 action
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Steam/GameNetReceiver.cs:142 - 网络 action 执行入口
## 触发原因与阻断判断
判断: 对应 action 被拦截不执行;如果发生在 AI 或同步链路,会造成卡回合或双方状态分叉。
原因: `ActionLogicBase.CompleteExecute` 要求 `actionParams.PlayerId` 等于 `MapData.CurPlayer.Id`。这里 action 的归属玩家与当前回合玩家不同,函数直接返回 false。常见来源是 AI/网络/回放参数刷新到错误 MapData或 UI 缓存了上一回合 action。
## 建议
回查该 action 的构参处,确保 `CommonActionParams.MapData``PlayerData``PlayerId` 在执行前调用 `RefreshParams/OnParamChanged` 并跟随当前回合。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,48 +0,0 @@
# CrashSight 阻断报告 - ddf1a8a03ab14649c51fa806b2c281b0
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/ddf1a8a03ab14649c51fa806b2c281b0?pid=10
- 异常类型: UnityLogError
- 阻断族: 多人地图/Action 同步不一致
- 发生次数: 215
- 首次/最近: 2026-05-16 22:23:52 ~ 2026-05-19 11:10:10
## 原始异常
异常消息: Map不一致前后Action Action : PlayerAction Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : BreakAlly AIParam : AllClear Tech : None CultureCardType : None 后Action : UnitAction Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : ForceDisband CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AllClear Tech : None CultureCardType : None
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 88. ddf1a8a03ab14649c51fa806b2c281b0
Type: UnityLogError
Count: 215
FirstSeen: 2026-05-16 22:23:52
LastSeen: 2026-05-19 11:10:10
Message: Map不一致前后Action Action : PlayerAction Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : BreakAlly AIParam : AllClear Tech : None CultureCardType : None 后Action : UnitAction Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : ForceDisband CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AllClear Tech : None CultureCardType : None
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: ddf1a8a03ab14649c51fa806b2c281b0 UnityLogError 异常消息Map不一致前后Action Action : PlayerAction Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : BreakAlly AIParam : AllClear Tech : None CultureCardType : None 后Action : UnitAction Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : ForceDisband CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AllClear Tech : None CultureCardType : None 关键堆栈UnityEngine.Debug.LogError(Object) 2026-05-16 22:23:52 ~ 2026-05-19 11:10:10 添加标签 2026-05-19 11:10:10 215 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/ddf1a8a03ab14649c51fa806b2c281b0?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Steam/GameNetReceiver.cs:198 - MapConfirm 校验
- F:/th1new/Unity/Assets/Scripts/TH1_Data/MapData.cs:2603 - FindDifferences 输出差异
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Action/ActionLogic.cs:1196 - 执行后比对 CheckMapData
## 触发原因与阻断判断
判断: 多人同步阻断,可能触发 ForceUpdate、回滚/恢复,严重时双方继续分叉。
原因: MapConfirm/ForceUpdate 发现 action 索引、ActionData 或 MapHash 不一致。`MapData.FindDifferences` 会输出前后 action 和对象字段差异;这表示至少一个 peer 的权威地图已经分叉。
## 建议
按报告中的“前/后 Action”回查该 action 的 `Execute` 是否使用非确定随机、真实 UI/Renderer、副作用或未同步字段ForceUpdate 应保持原子恢复。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,47 +0,0 @@
# CrashSight 阻断报告 - 357af74af1fb0771cefc62c503d0f554
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/357af74af1fb0771cefc62c503d0f554?pid=10
- 异常类型: UnityLogError
- 阻断族: 单位防御计算缺少格子或玩家映射
- 发生次数: 201
- 首次/最近: 2026-05-16 21:51:51 ~ 2026-05-19 03:55:43
## 原始异常
异常消息: UnitData GetExtraDefense Cant find grid or player by uid
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 89. 357af74af1fb0771cefc62c503d0f554
Type: UnityLogError
Count: 201
FirstSeen: 2026-05-16 21:51:51
LastSeen: 2026-05-19 03:55:43
Message: UnitData GetExtraDefense Cant find grid or player by uid
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: 357af74af1fb0771cefc62c503d0f554 UnityLogError 异常消息UnitData GetExtraDefense Cant find grid or player by uid 关键堆栈UnityEngine.Debug.LogError(Object) 2026-05-16 21:51:51 ~ 2026-05-19 03:55:43 添加标签 2026-05-19 03:55:43 201 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/357af74af1fb0771cefc62c503d0f554?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Data/UnitData.cs:1019 - 防御倍率计算
- F:/th1new/Unity/Assets/Scripts/TH1_Data/MapData.cs:1108 - 单位创建会写 UnitToGrid/UnitToCity
## 触发原因与阻断判断
判断: 防御计算降级,继续扩大可能影响战斗结算和显示。
原因: `GetTerrainDefenseMultiplicationParam` 找不到单位所在格或单位所属玩家,返回默认防御并记录错误。数据层的 `UnitToGridDict/UnitToCityDict/PlayerMap` 至少有一处不一致。
## 建议
在单位移动、死亡、复活、生成后检查 Unit/Grid/Player 三张索引同步;这里虽然返回默认值,但应按数据完整性错误追。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,47 +0,0 @@
# CrashSight 阻断报告 - 26a445ad918df2857c69c0b7c2599aa6
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/26a445ad918df2857c69c0b7c2599aa6?pid=10
- 异常类型: UnityLogError
- 阻断族: 单位防御计算缺少格子或玩家映射
- 发生次数: 201
- 首次/最近: 2026-05-15 18:11:19 ~ 2026-05-19 00:03:32
## 原始异常
异常消息: UnitData GetExtraDefense Cant find grid or player by uid
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 90. 26a445ad918df2857c69c0b7c2599aa6
Type: UnityLogError
Count: 201
FirstSeen: 2026-05-15 18:11:19
LastSeen: 2026-05-19 00:03:32
Message: UnitData GetExtraDefense Cant find grid or player by uid
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: 26a445ad918df2857c69c0b7c2599aa6 UnityLogError 异常消息UnitData GetExtraDefense Cant find grid or player by uid 关键堆栈UnityEngine.Debug.LogError(Object) 2026-05-15 18:11:19 ~ 2026-05-19 00:03:32 添加标签 2026-05-19 00:03:32 201 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/26a445ad918df2857c69c0b7c2599aa6?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Data/UnitData.cs:1019 - 防御倍率计算
- F:/th1new/Unity/Assets/Scripts/TH1_Data/MapData.cs:1108 - 单位创建会写 UnitToGrid/UnitToCity
## 触发原因与阻断判断
判断: 防御计算降级,继续扩大可能影响战斗结算和显示。
原因: `GetTerrainDefenseMultiplicationParam` 找不到单位所在格或单位所属玩家,返回默认防御并记录错误。数据层的 `UnitToGridDict/UnitToCityDict/PlayerMap` 至少有一处不一致。
## 建议
在单位移动、死亡、复活、生成后检查 Unit/Grid/Player 三张索引同步;这里虽然返回默认值,但应按数据完整性错误追。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,48 +0,0 @@
# CrashSight 阻断报告 - a1591f834f067f325fab02e651b5fd10
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/a1591f834f067f325fab02e651b5fd10?pid=10
- 异常类型: UnityLogError
- 阻断族: AI 行为循环/重复 action
- 发生次数: 198
- 首次/最近: 2026-04-17 12:23:33 ~ 2026-05-19 02:56:25
## 原始异常
异常消息: 存在相似action ,记录点为:38 ,Action为:Action : PlayerAction Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : FrenchReisen Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : FinishHeroTask AIParam : AllClear Tech : None CultureCardType : None 重复次数 :6
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 91. a1591f834f067f325fab02e651b5fd10
Type: UnityLogError
Count: 198
FirstSeen: 2026-04-17 12:23:33
LastSeen: 2026-05-19 02:56:25
Message: 存在相似action ,记录点为:38 ,Action为:Action : PlayerAction Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : FrenchReisen Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : FinishHeroTask AIParam : AllClear Tech : None CultureCardType : None 重复次数 :6
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: a1591f834f067f325fab02e651b5fd10 UnityLogError 异常消息存在相似action ,记录点为:38 ,Action为:Action : PlayerAction Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : FrenchReisen Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : FinishHeroTask AIParam : AllClear Tech : None CultureCardType : None 重复次数 :6 关键堆栈UnityEngine.Debug.LogError(Object) 2026-04-17 12:23:33 ~ 2026-05-19 02:56:25 添加标签 2026-05-19 02:56:25 198 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/a1591f834f067f325fab02e651b5fd10?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/AI/AIActionBase.cs:521 - AI 策略循环保护
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/AI/AILogic.cs:160 - BT 行为树循环保护
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/AI/AILogic.cs:216 - 重复 action 检测
## 触发原因与阻断判断
判断: AI 回合可能变慢、提前结束或重复无效行为,玩家感知为卡回合/AI 不行动。
原因: AI 行为树或策略计算超过保护阈值,或连续选择相同 action 超过次数。当前代码会打日志并 break/继续,但说明 AI 没能收敛到有效下一步。
## 建议
用记录点 `BTNodeId` 和 action 类型回查对应 BT 节点的退出条件;重复 action 要检查执行后是否真正改变了评分输入。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,47 +0,0 @@
# CrashSight 阻断报告 - 99b0e20c509b7049245d992cd5acda9c
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/99b0e20c509b7049245d992cd5acda9c?pid=10
- 异常类型: UnityLogError
- 阻断族: 单位防御计算缺少格子或玩家映射
- 发生次数: 193
- 首次/最近: 2025-10-28 13:19:59 ~ 2026-05-19 12:18:50
## 原始异常
异常消息: UnitData GetExtraDefense Cant find grid or player by uid
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 92. 99b0e20c509b7049245d992cd5acda9c
Type: UnityLogError
Count: 193
FirstSeen: 2025-10-28 13:19:59
LastSeen: 2026-05-19 12:18:50
Message: UnitData GetExtraDefense Cant find grid or player by uid
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: 99b0e20c509b7049245d992cd5acda9c UnityLogError 异常消息UnitData GetExtraDefense Cant find grid or player by uid 关键堆栈UnityEngine.Debug.LogError(Object) 2025-10-28 13:19:59 ~ 2026-05-19 12:18:50 添加标签 2026-05-19 12:18:50 193 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/99b0e20c509b7049245d992cd5acda9c?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Data/UnitData.cs:1019 - 防御倍率计算
- F:/th1new/Unity/Assets/Scripts/TH1_Data/MapData.cs:1108 - 单位创建会写 UnitToGrid/UnitToCity
## 触发原因与阻断判断
判断: 防御计算降级,继续扩大可能影响战斗结算和显示。
原因: `GetTerrainDefenseMultiplicationParam` 找不到单位所在格或单位所属玩家,返回默认防御并记录错误。数据层的 `UnitToGridDict/UnitToCityDict/PlayerMap` 至少有一处不一致。
## 建议
在单位移动、死亡、复活、生成后检查 Unit/Grid/Player 三张索引同步;这里虽然返回默认值,但应按数据完整性错误追。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,48 +0,0 @@
# CrashSight 阻断报告 - d16718752efb35ca87b7d8c04f073ad7
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/d16718752efb35ca87b7d8c04f073ad7?pid=10
- 异常类型: UnityLogError
- 阻断族: AI 行为循环/重复 action
- 发生次数: 192
- 首次/最近: 2026-04-11 17:47:01 ~ 2026-05-19 03:32:07
## 原始异常
异常消息: 存在相似action ,记录点为:38 ,Action为:Action : PlayerAction Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : FrenchKaguya Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : FinishHeroTask AIParam : AllClear Tech : None CultureCardType : None 重复次数 :7
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 93. d16718752efb35ca87b7d8c04f073ad7
Type: UnityLogError
Count: 192
FirstSeen: 2026-04-11 17:47:01
LastSeen: 2026-05-19 03:32:07
Message: 存在相似action ,记录点为:38 ,Action为:Action : PlayerAction Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : FrenchKaguya Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : FinishHeroTask AIParam : AllClear Tech : None CultureCardType : None 重复次数 :7
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: d16718752efb35ca87b7d8c04f073ad7 UnityLogError 异常消息存在相似action ,记录点为:38 ,Action为:Action : PlayerAction Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : FrenchKaguya Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : FinishHeroTask AIParam : AllClear Tech : None CultureCardType : None 重复次数 :7 关键堆栈UnityEngine.Debug.LogError(Object) 2026-04-11 17:47:01 ~ 2026-05-19 03:32:07 添加标签 2026-05-19 03:32:07 192 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/d16718752efb35ca87b7d8c04f073ad7?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/AI/AIActionBase.cs:521 - AI 策略循环保护
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/AI/AILogic.cs:160 - BT 行为树循环保护
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/AI/AILogic.cs:216 - 重复 action 检测
## 触发原因与阻断判断
判断: AI 回合可能变慢、提前结束或重复无效行为,玩家感知为卡回合/AI 不行动。
原因: AI 行为树或策略计算超过保护阈值,或连续选择相同 action 超过次数。当前代码会打日志并 break/继续,但说明 AI 没能收敛到有效下一步。
## 建议
用记录点 `BTNodeId` 和 action 类型回查对应 BT 节点的退出条件;重复 action 要检查执行后是否真正改变了评分输入。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,48 +0,0 @@
# CrashSight 阻断报告 - a68ffad463da4fca5cb9ec77415cde59
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/a68ffad463da4fca5cb9ec77415cde59?pid=10
- 异常类型: UnityLogError
- 阻断族: AI 行为循环/重复 action
- 发生次数: 189
- 首次/最近: 2026-04-13 21:06:03 ~ 2026-05-19 11:19:10
## 原始异常
异常消息: 存在相似action ,记录点为:756 ,Action为:Action : LearnTech Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : Spiritualism PlayerAction : None AIParam : AllClear Tech : Spiritualism CultureCardType : None 重复次数 :6
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 94. a68ffad463da4fca5cb9ec77415cde59
Type: UnityLogError
Count: 189
FirstSeen: 2026-04-13 21:06:03
LastSeen: 2026-05-19 11:19:10
Message: 存在相似action ,记录点为:756 ,Action为:Action : LearnTech Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : Spiritualism PlayerAction : None AIParam : AllClear Tech : Spiritualism CultureCardType : None 重复次数 :6
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: a68ffad463da4fca5cb9ec77415cde59 UnityLogError 异常消息存在相似action ,记录点为:756 ,Action为:Action : LearnTech Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : Spiritualism PlayerAction : None AIParam : AllClear Tech : Spiritualism CultureCardType : None 重复次数 :6 关键堆栈UnityEngine.Debug.LogError(Object) 2026-04-13 21:06:03 ~ 2026-05-19 11:19:10 添加标签 2026-05-19 11:19:10 189 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/a68ffad463da4fca5cb9ec77415cde59?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/AI/AIActionBase.cs:521 - AI 策略循环保护
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/AI/AILogic.cs:160 - BT 行为树循环保护
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/AI/AILogic.cs:216 - 重复 action 检测
## 触发原因与阻断判断
判断: AI 回合可能变慢、提前结束或重复无效行为,玩家感知为卡回合/AI 不行动。
原因: AI 行为树或策略计算超过保护阈值,或连续选择相同 action 超过次数。当前代码会打日志并 break/继续,但说明 AI 没能收敛到有效下一步。
## 建议
用记录点 `BTNodeId` 和 action 类型回查对应 BT 节点的退出条件;重复 action 要检查执行后是否真正改变了评分输入。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,48 +0,0 @@
# CrashSight 阻断报告 - 4f1431bc4feb30dec617c519a00f64f0
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/4f1431bc4feb30dec617c519a00f64f0?pid=10
- 异常类型: UnityLogError
- 阻断族: Action 执行玩家不一致 (BuyCultureCard)
- 发生次数: 185
- 首次/最近: 2026-05-18 03:31:44 ~ 2026-05-19 12:15:32
## 原始异常
异常消息: CompleteExecute Player 不一致 Action : BuyCultureCard Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AllClear Tech : None CultureCardType : SecondHero
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 95. 4f1431bc4feb30dec617c519a00f64f0
Type: UnityLogError
Count: 185
FirstSeen: 2026-05-18 03:31:44
LastSeen: 2026-05-19 12:15:32
Message: CompleteExecute Player 不一致 Action : BuyCultureCard Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AllClear Tech : None CultureCardType : SecondHero
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: 4f1431bc4feb30dec617c519a00f64f0 UnityLogError 异常消息CompleteExecute Player 不一致 Action : BuyCultureCard Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : None GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AllClear Tech : None CultureCardType : SecondHero 关键堆栈UnityEngine.Debug.LogError(Object) 2026-05-18 03:31:44 ~ 2026-05-19 12:15:32 添加标签 2026-05-19 12:15:32 185 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/4f1431bc4feb30dec617c519a00f64f0?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Action/ActionLogic.cs:1105 - CompleteExecute 玩家一致性检查
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/AI/AILogic.cs:240 - AI 最终执行 action
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Steam/GameNetReceiver.cs:142 - 网络 action 执行入口
## 触发原因与阻断判断
判断: 对应 action 被拦截不执行;如果发生在 AI 或同步链路,会造成卡回合或双方状态分叉。
原因: `ActionLogicBase.CompleteExecute` 要求 `actionParams.PlayerId` 等于 `MapData.CurPlayer.Id`。这里 action 的归属玩家与当前回合玩家不同,函数直接返回 false。常见来源是 AI/网络/回放参数刷新到错误 MapData或 UI 缓存了上一回合 action。
## 建议
回查该 action 的构参处,确保 `CommonActionParams.MapData``PlayerData``PlayerId` 在执行前调用 `RefreshParams/OnParamChanged` 并跟随当前回合。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

View File

@ -1,48 +0,0 @@
# CrashSight 阻断报告 - 7a5c07d74e1f9f95c2ff15c898f1470a
- 筛选范围: 0.7.1k / 0.7.1j / 0.7.1i最近一天ERRORstatus=0/2
- CrashSight: https://crashsight.qq.com/crash-reporting/errors/01076c49ce/7a5c07d74e1f9f95c2ff15c898f1470a?pid=10
- 异常类型: UnityLogError
- 阻断族: Action 执行玩家不一致 (CityLevelUpAction)
- 发生次数: 181
- 首次/最近: 2026-05-16 20:29:31 ~ 2026-05-19 11:31:22
## 原始异常
异常消息: CompleteExecute Player 不一致 Action : CityLevelUpAction Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : Workshop GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AllClear Tech : None CultureCardType : None
关键堆栈: UnityEngine.Debug.LogError(Object)
## 反混淆结果
```text
## 96. 7a5c07d74e1f9f95c2ff15c898f1470a
Type: UnityLogError
Count: 181
FirstSeen: 2026-05-16 20:29:31
LastSeen: 2026-05-19 11:31:22
Message: CompleteExecute Player 不一致 Action : CityLevelUpAction Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : Workshop GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AllClear Tech : None CultureCardType : None
KeyStack: UnityEngine.Debug.LogError(Object)
RawText: 7a5c07d74e1f9f95c2ff15c898f1470a UnityLogError 异常消息CompleteExecute Player 不一致 Action : CityLevelUpAction Wonder : None Resource : None Feature : None Terrain : None Unit : None Giant : None Vegetation : None UnitAction : None CityLevelUpAction : Workshop GridMiscAction : None Skill : NONE Tech : None PlayerAction : None AIParam : AllClear Tech : None CultureCardType : None 关键堆栈UnityEngine.Debug.LogError(Object) 2026-05-16 20:29:31 ~ 2026-05-19 11:31:22 添加标签 2026-05-19 11:31:22 181 - 状态变更 创建缺陷单
Href: /crash-reporting/errors/01076c49ce/7a5c07d74e1f9f95c2ff15c898f1470a?pid=10
```
## 代码定位
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Action/ActionLogic.cs:1105 - CompleteExecute 玩家一致性检查
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/AI/AILogic.cs:240 - AI 最终执行 action
- F:/th1new/Unity/Assets/Scripts/TH1_Logic/Steam/GameNetReceiver.cs:142 - 网络 action 执行入口
## 触发原因与阻断判断
判断: 对应 action 被拦截不执行;如果发生在 AI 或同步链路,会造成卡回合或双方状态分叉。
原因: `ActionLogicBase.CompleteExecute` 要求 `actionParams.PlayerId` 等于 `MapData.CurPlayer.Id`。这里 action 的归属玩家与当前回合玩家不同,函数直接返回 false。常见来源是 AI/网络/回放参数刷新到错误 MapData或 UI 缓存了上一回合 action。
## 建议
回查该 action 的构参处,确保 `CommonActionParams.MapData``PlayerData``PlayerId` 在执行前调用 `RefreshParams/OnParamChanged` 并跟随当前回合。
## 备注
反混淆工具会对极短英文词偶发误命中;本报告只采信调用栈符号和项目内可定位日志,不把普通英文单词当作解码结论。

Some files were not shown because too many files have changed in this diff Show More