## Summary by Sourcery
Bug Fixes:
- 通过在执行子字符串操作之前验证字符串长度,在从战场击杀文本中提取击杀数量时,防止潜在的越界访问。
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
Bug Fixes:
- Prevent potential out-of-range access when extracting kill count from
battlefield kill text by validating the string length before substring
operations.
</details>
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
Bug Fixes:
- 通过在执行子字符串操作之前验证字符串长度,在从战场击杀文本中提取击杀数量时,防止潜在的越界访问。
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
Bug Fixes:
- Prevent potential out-of-range access when extracting kill count from
battlefield kill text by validating the string length before substring
operations.
</details>
</details>
- ~~等 #15773 ,以及顺带修一下掉落识别~~
## Summary by Sourcery
准备 6.3.3
版本发布,包含对视觉识别、干员招募、基建规划、启动流程以及窗口附加行为的多项稳定性修复,并加入新的输入模式以及更新后的游戏/任务资源和 UI
文本。
新功能:
- 暴露新的 Win32 输入方式,可使用窗口相对位置发送或投递消息,并在附加窗口的鼠标方式设置中提供这些选项。
错误修复:
- 加强矩形校正逻辑以应对完全在屏幕外的区域,避免在基于视觉的识别中产生无效 ROI。
- 确保招募计算使用视图模型中配置的选择时间,而不是任务队列中的数值。
- 将基建自定义方案选择默认为未设置状态,并相应迁移现有配置。
- 当使用附加窗口连接时自动禁用 StartGame 选项,以防止产生冲突的启动行为。
- 阻止启动任务重复尝试主开始按钮的动作,以减少不必要的重试。
增强内容:
- 调整游戏/任务资源定义(包括肉鸽玩法以及特定关卡/任务配置),以适配更新后的游戏流程和掉落识别行为。
- 刷新本地化内容和版本更新对话框文案,以适配 6.3.3 版本发布。
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
Prepare 6.3.3 release with multiple stability fixes to vision,
recruitment, infrastructure planning, startup, and attach-window
behavior, plus new input modes and updated game/task resources and UI
text.
New Features:
- Expose new Win32 input methods that send or post messages using
window-relative positions and surface them in the attach-window mouse
method settings.
Bug Fixes:
- Harden rectangle correction against completely off-screen regions to
avoid invalid ROIs during vision-based recognition.
- Ensure recruitment calculation uses the view model’s configured
selection times instead of the task queue’s values.
- Default infrastructure custom plan selection to an unset state and
migrate existing configs accordingly.
- Disable the StartGame option automatically when using attach-window
connection to prevent conflicting launch behavior.
- Prevent startup tasks from retrying the primary start button action to
reduce erroneous retries.
Enhancements:
- Adjust game/task resource definitions (including Roguelike and
specific stage/task configs) for updated gameplay flows and drop
recognition behavior.
- Refresh localizations and version update dialog content for the 6.3.3
release.
</details>
## Summary by Sourcery
重构任务队列视图模型以共享通用序列化接口,提升基于视觉的识别与任务执行流程的稳定性,并为 6.3.3 版本更新输入选项、配置默认值和游戏资源。
新特性:
- 新增 Win32 输入方式,可发送或投递相对窗口的消息,并将其作为可选的鼠标输入选项用于“附加窗口”连接。
错误修复:
- 防止无效或完全位于屏幕外的矩形在视觉处理过程中产生错误的感兴趣区域(ROI)。
- 确保干员招募概率计算使用视图模型中配置的选人时间,而不是任务模型中的值。
- 通过将主开始按钮在启动任务中的重试上限设为 0,避免对主开始按钮进行重复重试。
- 将基础设施自定义方案选择默认为未设置状态,并迁移现有配置以避免意外选择方案。
- 在使用“附加窗口”模式时自动禁用 StartGame 行为,以防止启动流程冲突。
增强改进:
- 引入任务队列视图模型的共享序列化接口,并迁移多个任务设置模型以使用该接口,实现统一的任务编码。
- 收紧肉鸽、战斗、贸易站(商城)、基建、启动、奖励、回收与自定义任务的序列化逻辑,同时不改变用户可见行为。
- 调整关卡掉落 OCR,当关卡编号已确定为无效时跳过特殊的二次识别,减少不必要的工作量。
- 更新商城信用战验证和黑名单处理逻辑,更好地遵守每周日程并兼容不同客户端的黑名单映射。
- 统一配置序列化选项及默认值,并在各服务器区域刷新肉鸽与关卡任务的资源定义。
- 为 6.3.3 版本刷新本地化内容以及版本更新对话框文案。
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
Refactor task queue view models to share a common serialization
interface, improve stability of vision-based recognition and task
execution flows, and update input options, configuration defaults, and
game resources for the 6.3.3 release.
New Features:
- Add new Win32 input methods that send or post window-relative messages
and expose them as selectable mouse input options for attach-window
connections.
Bug Fixes:
- Prevent invalid or fully off-screen rectangles from producing
incorrect regions of interest during vision processing.
- Ensure recruit probability calculations use the view model’s
configured selection times instead of the task model values.
- Avoid retrying the primary start button in startup tasks by capping
its retry limit at zero.
- Default infrastructure custom plan selection to an unset value and
migrate existing configuration accordingly, avoiding unintended plan
selection.
- Disable the StartGame behavior automatically when using attach-window
mode to prevent conflicting launch flows.
Enhancements:
- Introduce a shared serialization interface for task queue view models
and migrate multiple task setting models to use it for consistent task
encoding.
- Tighten Roguelike, fight, mall, infrastructure, startup, award,
reclamation, and custom task serialization logic without changing
user-facing behavior.
- Adjust stage drop OCR to skip special-case re-recognition when the
stage code is known invalid, reducing unnecessary work.
- Update mall credit-fight validation and blacklist handling to better
respect weekly schedules and client-specific blacklist mappings.
- Normalize configuration serialization options and defaults and refresh
Roguelike and stage task resource definitions across regions.
- Refresh localizations and the version update dialog copy for the 6.3.3
release.
</details>
## Summary by Sourcery
将任务序列化逻辑从任务设置视图模型中抽取出来,放入一个专门的序列化接口中,并在每个任务特定的视图模型中通过内部接口实现。
Enhancements:
- 引入 `ITaskQueueModelSerialize` 接口,将任务序列化相关的逻辑与 `TaskSettingsViewModel`
解耦。
- 重构多个任务特定的设置视图模型,通过私有的嵌套 `ISerialize` 接口来实现新的序列化接口。
- 简化或移除未使用的 `using` 指令,并在相关视图模型中进行一些次要的属性格式整理。
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
Extract task serialization logic from task settings view models into a
dedicated serialization interface implemented via inner interfaces on
each task-specific view model.
Enhancements:
- Introduce the ITaskQueueModelSerialize interface to decouple task
serialization concerns from TaskSettingsViewModel.
- Refactor multiple task-specific settings view models to implement the
new serialization interface via private nested ISerialize interfaces.
- Simplify or remove unused using directives and minor property
formatting cleanups across affected view models.
</details>
增强内容:
- 让 TaskSettingsViewModel 实现新的 ITaskQueueModelSerialize
接口,以将任务序列化相关的关注点从视图模型中分离出来。
- 清理 TaskSettingsViewModel 中未使用的 using 指令,以减少依赖。
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
将任务序列化逻辑从任务设置视图模型中抽取出来,放入一个专门的序列化接口中,并在每个任务特定的视图模型中通过内部接口实现。
Enhancements:
- 引入 `ITaskQueueModelSerialize` 接口,将任务序列化相关的逻辑与 `TaskSettingsViewModel`
解耦。
- 重构多个任务特定的设置视图模型,通过私有的嵌套 `ISerialize` 接口来实现新的序列化接口。
- 简化或移除未使用的 `using` 指令,并在相关视图模型中进行一些次要的属性格式整理。
<details>
<summary>Original summary in English</summary>
## Summary by Sourcery
Extract task serialization logic from task settings view models into a
dedicated serialization interface implemented via inner interfaces on
each task-specific view model.
Enhancements:
- Introduce the ITaskQueueModelSerialize interface to decouple task
serialization concerns from TaskSettingsViewModel.
- Refactor multiple task-specific settings view models to implement the
new serialization interface via private nested ISerialize interfaces.
- Simplify or remove unused using directives and minor property
formatting cleanups across affected view models.
</details>
</details>