i18n: 自动战斗编队 技能等级不足i18n, CN 使用理智药及碎石 (#15435)

* i18n: 自动战斗编队 技能等级不足i18n, CN 使用理智药及碎石

* i18n: KR

* docs: 使用理智药

---------

Co-authored-by: HX3N <scarlet7518@gmail.com>
This commit is contained in:
Status102
2026-01-18 18:53:26 +08:00
committed by GitHub
parent c765852e27
commit aeff2ba9e6
11 changed files with 26 additions and 19 deletions

View File

@@ -7,18 +7,18 @@ icon: hugeicons:brain-02
## 常规设置
- `药剂恢复` + `源石恢复``指定次数``指定材料` 三个选项为短路开关(或门),即达成三个选项中的任一条件,均会视为任务完成,停止理智作战。
- `药剂恢复` 指定补充几瓶理智(可能一次吃多瓶药)。
- `使用药剂` + `使用源石``指定次数``指定材料` 三个选项为短路开关(或门),即达成三个选项中的任一条件,均会视为任务完成,停止理智作战。
- `使用药剂` 指定补充几瓶理智(可能一次吃多瓶药)。
- `源石恢复` 指定碎几颗石头(一次一颗),当仓库中有理智药时不会碎石。
- `指定次数` 指定刷多少次指定关卡(例如“刷 15 次后停止”)。
- `指定材料` 指定刷多少个指定材料(例如“获取 5 个固源岩后停止”)。
- `指定材料``关卡选择` 是两个互相独立的逻辑。`指定材料` 只是以材料个数作为任务完成依据,并不会自动导航到相应关卡。
- `源石恢复` 只会在 `药剂恢复` 之后判断,因为 MAA 只有在没有理智药时才会使用源石补充理智。所以在勾选 `源石恢复` 之后MAA 会将 `药剂恢复` 的次数锁定为 999确保将理智药吃光以避免跳过 `源石恢复` 判断。
- `使用源石` 只会在 `使用药剂` 之后判断,因为 MAA 只有在没有理智药时才会使用源石补充理智。所以在勾选 `使用源石` 之后MAA 会将 `使用药剂` 的次数锁定为 999确保将理智药吃光以避免跳过 `使用源石` 判断。
::: details 例子
| 药剂恢复 | 源石恢复 | 指定次数 | 指定材料 | 结果 |
| 使用药剂 | 使用源石 | 指定次数 | 指定材料 | 结果 |
| :------: | :------: | :------: | :------: | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
| | | | | 刷完现有理智即结束。 |
| 2 | | | | 先刷完现有理智,然后吃一次理智药,一共吃 `2` 次,刷完理智后结束。 |

View File

@@ -84,7 +84,7 @@ JSON 文件是不支持注释的,文本中的注释仅用于演示,请勿直
"reduceOtherTimes": ["OtherTaskName1", "OtherTaskName2"],
// 可选项,执行后减少其他任务的执行计数。
// 例如执行了药剂恢复,则说明上一次点击蓝色开始行动按钮没生效,所以蓝色开始行动要-1
// 例如执行了使用理智药,则说明上一次点击蓝色开始行动按钮没生效,所以蓝色开始行动要-1
"specificRect": [100, 100, 50, 50],
// 当 action 为 ClickRect 时有效且必选,表示指定的点击位置(范围内随机一点)。

View File

@@ -593,7 +593,7 @@ struct TaskPipelineInfo
TaskList sub; // 子任务(列表)
TaskList on_error_next; // 任务出错之后要去执行什么
TaskList exceeded_next; // 达到最多次数了之后,下一个可能的任务(列表)
TaskList reduce_other_times; // 执行了该任务后,需要减少别的任务的执行次数。例如执行了药剂恢复
TaskList reduce_other_times; // 执行了该任务后,需要减少别的任务的执行次数。例如执行了使用理智药,
// 则说明上一次点击蓝色开始行动按钮没生效,所以蓝色开始行动要-1
};

View File

@@ -63,7 +63,7 @@ bool asst::CopilotTask::set_params(const json::value& params)
return false;
}
bool use_sanity_potion = params.get("use_sanity_potion", false); // 是否药剂恢复
bool use_sanity_potion = params.get("use_sanity_potion", false); // 是否使用理智
bool with_formation = params.get("formation", false); // 是否使用自动编队
int formation_index = params.get("formation_index", 0); // 选择第几个编队0为不选择
if (!params.contains("formation_index") && params.contains("select_formation")) {

View File

@@ -283,7 +283,7 @@ ProcessTask::NodeStatus ProcessTask::run_task(const HitDetail& hits)
status()->set_number(Status::ProcessTaskLastTimePrefix + task_name, time(nullptr));
// 减少其他任务的执行次数
// 例如,进入药剂恢复的界面了,相当于上一次点蓝色开始行动没生效
// 例如,进入使用理智药的界面了,相当于上一次点蓝色开始行动没生效
// 所以要给蓝色开始行动的次数减一
for (const std::string& other_task : task->reduce_other_times) {
if (int& v = m_exec_times[other_task]; v > 0) {

View File

@@ -1983,11 +1983,13 @@ public class AsstProxy
case "BattleFormationOperUnavailable":
{
var oper_name = DataHelper.GetLocalizedCharacterName(subTaskDetails!["oper_name"]?.ToString());
var requirement_type = subTaskDetails["requirement_type"]?.ToString() == "module"
? LocalizationHelper.GetString("BattleFormationModuleUnavailable")
: subTaskDetails["requirement_type"]?.ToString() ?? "UnknownRequirementType";
var requirement_type = subTaskDetails["requirement_type"]?.ToString() switch {
"skill_level" => LocalizationHelper.GetString("BattleFormationOperUnavailable.SkillLevel"),
"module" => LocalizationHelper.GetString("BattleFormationOperUnavailable.Module"),
_ => subTaskDetails["requirement_type"]?.ToString() ?? "UnknownRequirementType",
};
Instances.CopilotViewModel.AddLog(string.Format(LocalizationHelper.GetString("BattleFormationOperUnavailable"), oper_name, requirement_type), Instances.CopilotViewModel.IgnoreRequirements ? UiLogColor.Warning : UiLogColor.Error);
Instances.CopilotViewModel.AddLog(LocalizationHelper.GetStringFormat("BattleFormationOperUnavailable", oper_name ?? string.Empty, requirement_type), Instances.CopilotViewModel.IgnoreRequirements ? UiLogColor.Warning : UiLogColor.Error);
break;
}

View File

@@ -1190,7 +1190,8 @@ Right-click to clear inactive jobs</system:String>
<system:String x:Key="BattleFormationParseFailed">Formation parse failed</system:String>
<system:String x:Key="BattleFormationSelected" xml:space="preserve">Selected:&#160;</system:String>
<system:String x:Key="BattleFormationOperUnavailable" xml:space="preserve">{key=Operator} unavailable: {0}, reason: {1}</system:String>
<system:String x:Key="BattleFormationModuleUnavailable">Required module not unlocked</system:String>
<system:String x:Key="BattleFormationOperUnavailable.SkillLevel">Skill level too low</system:String>
<system:String x:Key="BattleFormationOperUnavailable.Module">Required module not unlocked</system:String>
<system:String x:Key="CurrentSteps">Step: {0} {1}</system:String>
<system:String x:Key="ElapsedTime">Elapsed time: {0}ms</system:String>
<system:String x:Key="Deploy">Deploy</system:String>

View File

@@ -1191,7 +1191,8 @@ C:\\leidian\\LDPlayer9
<system:String x:Key="BattleFormationParseFailed">フォーメーション解析に失敗しました</system:String>
<system:String x:Key="BattleFormationSelected" xml:space="preserve">{key=Operator}を選択: </system:String>
<system:String x:Key="BattleFormationOperUnavailable" xml:space="preserve">{key=Operator}が使用できません: {0}、理由: {1}</system:String>
<system:String x:Key="BattleFormationModuleUnavailable">必要なモジュールが未解除</system:String>
<system:String x:Key="BattleFormationOperUnavailable.SkillLevel">スキルレベルが低すぎる</system:String>
<system:String x:Key="BattleFormationOperUnavailable.Module">必要なモジュールが未解除</system:String>
<system:String x:Key="CurrentSteps">現在の手順: {0} {1}</system:String>
<system:String x:Key="ElapsedTime">経過時間: {0}ms</system:String>
<system:String x:Key="Deploy">配置</system:String>

View File

@@ -1192,7 +1192,8 @@ C:\\leidian\\LDPlayer9
<system:String x:Key="BattleFormationParseFailed">편성 분석에 실패했습니다</system:String>
<system:String x:Key="BattleFormationSelected" xml:space="preserve">{key=Operator}를 선택: </system:String>
<system:String x:Key="BattleFormationOperUnavailable" xml:space="preserve">사용 불가 {key=Operator}: {0}, 사유: {1}</system:String>
<system:String x:Key="BattleFormationModuleUnavailable">필요한 모듈이 잠금 해제되지 않음</system:String>
<system:String x:Key="BattleFormationOperUnavailable.SkillLevel">스킬 레벨이 너무 낮음</system:String>
<system:String x:Key="BattleFormationOperUnavailable.Module">필요한 모듈이 잠금 해제되지 않음</system:String>
<system:String x:Key="CurrentSteps">현재 단계: {0} {1}</system:String>
<system:String x:Key="ElapsedTime">경과 시간: {0}ms</system:String>
<system:String x:Key="Deploy">배치</system:String>

View File

@@ -704,8 +704,8 @@ C:\\leidian\\LDPlayer9。\n
<system:String x:Key="Stop">停止</system:String>
<system:String x:Key="WaitAndStop">等待 &amp; 停止</system:String>
<!-- 战斗设置 -->
<system:String x:Key="UseSanityPotion">药剂恢复</system:String>
<system:String x:Key="UseOriginitePrime">源石恢复</system:String>
<system:String x:Key="UseSanityPotion">使用药剂</system:String>
<system:String x:Key="UseOriginitePrime">使用源石</system:String>
<system:String x:Key="PerformBattles">指定次数</system:String>
<system:String x:Key="AssignedMaterial">指定材料</system:String>
<system:String x:Key="Quantity">刷取数量</system:String>
@@ -1191,7 +1191,8 @@ C:\\leidian\\LDPlayer9。\n
<system:String x:Key="BattleFormationParseFailed">编队解析失败</system:String>
<system:String x:Key="BattleFormationSelected" xml:space="preserve">选择{key=Operator}: </system:String>
<system:String x:Key="BattleFormationOperUnavailable" xml:space="preserve">{key=Operator}不可用: {0}, 原因: {1}</system:String>
<system:String x:Key="BattleFormationModuleUnavailable">所需模组未解锁</system:String>
<system:String x:Key="BattleFormationOperUnavailable.SkillLevel">技能等级不足</system:String>
<system:String x:Key="BattleFormationOperUnavailable.Module">所需模组未解锁</system:String>
<system:String x:Key="CurrentSteps">当前步骤: {0} {1}</system:String>
<system:String x:Key="ElapsedTime">当前计时器: {0}ms</system:String>
<system:String x:Key="Deploy">部署</system:String>

View File

@@ -1191,7 +1191,8 @@ C:\\leidian\\LDPlayer9。\n
<system:String x:Key="BattleFormationParseFailed">編隊解析失敗</system:String>
<system:String x:Key="BattleFormationSelected" xml:space="preserve">選擇{key=Operator}: </system:String>
<system:String x:Key="BattleFormationOperUnavailable" xml:space="preserve">{key=Operator}不可用: {0}, 原因: {1}</system:String>
<system:String x:Key="BattleFormationModuleUnavailable">所需模組未解鎖</system:String>
<system:String x:Key="BattleFormationOperUnavailable.SkillLevel">技能等級不足</system:String>
<system:String x:Key="BattleFormationOperUnavailable.Module">所需模組未解鎖</system:String>
<system:String x:Key="CurrentSteps">目前步驟: {0} {1}</system:String>
<system:String x:Key="ElapsedTime">經過時間: {0}ms</system:String>
<system:String x:Key="Deploy">部署</system:String>