diff --git a/src/MaaWpfGui/Constants/ConfigurationKeys.cs b/src/MaaWpfGui/Constants/ConfigurationKeys.cs
index a0d3f386d1..08036814c7 100644
--- a/src/MaaWpfGui/Constants/ConfigurationKeys.cs
+++ b/src/MaaWpfGui/Constants/ConfigurationKeys.cs
@@ -113,6 +113,7 @@ namespace MaaWpfGui.Constants
public const string RecruitMaxTimes = "AutoRecruit.MaxTimes";
public const string RefreshLevel3 = "AutoRecruit.RefreshLevel3";
+ public const string ForceRefresh = "AutoRecruit.ForceRefresh";
public const string IsLevel3UseShortTime = "AutoRecruit.IsLevel3UseShortTime";
public const string IsLevel3UseShortTime2 = "AutoRecruit.IsLevel3UseShortTime2";
public const string NotChooseLevel1 = "AutoRecruit.NotChooseLevel1";
diff --git a/src/MaaWpfGui/Main/AsstProxy.cs b/src/MaaWpfGui/Main/AsstProxy.cs
index 200148bb11..42bf2dde73 100644
--- a/src/MaaWpfGui/Main/AsstProxy.cs
+++ b/src/MaaWpfGui/Main/AsstProxy.cs
@@ -1627,17 +1627,19 @@ namespace MaaWpfGui.Main
/// 会去点击标签的 Tag 等级。
/// 会去点击确认的 Tag 等级。若仅公招计算,可设置为空数组。
/// 是否刷新三星 Tags。
+ /// 无招募许可时是否继续尝试刷新 Tags。
/// 是否使用加急许可。
/// 是否在识别到小车词条时跳过。
/// 三星Tag是否使用短时间(7:40)
/// 三星Tag是否使用短时间(1:00)
/// 是否成功。
- public bool AsstAppendRecruit(int maxTimes, int[] selectLevel, int[] confirmLevel, bool needRefresh, bool useExpedited,
+ public bool AsstAppendRecruit(int maxTimes, int[] selectLevel, int[] confirmLevel, bool needRefresh, bool needForceRefresh, bool useExpedited,
bool skipRobot, bool isLevel3UseShortTime, bool isLevel3UseShortTime2 = false)
{
var taskParams = new JObject
{
["refresh"] = needRefresh,
+ ["force_refresh"] = needForceRefresh,
["select"] = new JArray(selectLevel),
["confirm"] = new JArray(confirmLevel),
["times"] = maxTimes,
diff --git a/src/MaaWpfGui/Res/Localizations/zh-cn.xaml b/src/MaaWpfGui/Res/Localizations/zh-cn.xaml
index 8108e0e4bb..256c8f8dfb 100644
--- a/src/MaaWpfGui/Res/Localizations/zh-cn.xaml
+++ b/src/MaaWpfGui/Res/Localizations/zh-cn.xaml
@@ -634,6 +634,7 @@
自动刷新 3 星 Tags
+ 无招募许可时继续尝试刷新 Tags
自动使用加急许可*
3 星设置 7:40 而非 9:00
3 星设置 1:00 而非 9:00
diff --git a/src/MaaWpfGui/ViewModels/UI/SettingsViewModel.cs b/src/MaaWpfGui/ViewModels/UI/SettingsViewModel.cs
index 47cacb5bae..bb7c1e5391 100644
--- a/src/MaaWpfGui/ViewModels/UI/SettingsViewModel.cs
+++ b/src/MaaWpfGui/ViewModels/UI/SettingsViewModel.cs
@@ -2189,6 +2189,21 @@ namespace MaaWpfGui.ViewModels.UI
}
}
+ private bool _forceRefresh = Convert.ToBoolean(ConfigurationHelper.GetValue(ConfigurationKeys.ForceRefresh, bool.TrueString));
+
+ ///
+ /// Gets or Sets a value indicating whether to refresh when recruit permit ran out.
+ ///
+ public bool ForceRefresh
+ {
+ get => _forceRefresh;
+ set
+ {
+ SetAndNotify(ref _forceRefresh, value);
+ ConfigurationHelper.SetValue(ConfigurationKeys.ForceRefresh, value.ToString());
+ }
+ }
+
private bool _useExpedited = false;
///
diff --git a/src/MaaWpfGui/ViewModels/UI/TaskQueueViewModel.cs b/src/MaaWpfGui/ViewModels/UI/TaskQueueViewModel.cs
index 43fd4b1cbd..005238bf55 100644
--- a/src/MaaWpfGui/ViewModels/UI/TaskQueueViewModel.cs
+++ b/src/MaaWpfGui/ViewModels/UI/TaskQueueViewModel.cs
@@ -1271,7 +1271,7 @@ namespace MaaWpfGui.ViewModels.UI
}
return Instances.AsstProxy.AsstAppendRecruit(
- maxTimes, reqList.ToArray(), cfmList.ToArray(), Instances.SettingsViewModel.RefreshLevel3, Instances.SettingsViewModel.UseExpedited,
+ maxTimes, reqList.ToArray(), cfmList.ToArray(), Instances.SettingsViewModel.RefreshLevel3, Instances.SettingsViewModel.ForceRefresh, Instances.SettingsViewModel.UseExpedited,
Instances.SettingsViewModel.NotChooseLevel1, Instances.SettingsViewModel.IsLevel3UseShortTime, Instances.SettingsViewModel.IsLevel3UseShortTime2);
}
diff --git a/src/MaaWpfGui/Views/UserControl/AutoRecruitSettingsUserControl.xaml b/src/MaaWpfGui/Views/UserControl/AutoRecruitSettingsUserControl.xaml
index 5d2af6ffd4..b890c1cecd 100644
--- a/src/MaaWpfGui/Views/UserControl/AutoRecruitSettingsUserControl.xaml
+++ b/src/MaaWpfGui/Views/UserControl/AutoRecruitSettingsUserControl.xaml
@@ -36,6 +36,10 @@
Margin="0,10"
Content="{DynamicResource AutoRefresh}"
IsChecked="{Binding RefreshLevel3}" />
+