mirror of
https://github.com/MaaAssistantArknights/MaaAssistantArknights.git
synced 2026-07-19 02:23:01 +08:00
feat: 添加选项 信用溢出时无视黑名单
This commit is contained in:
@@ -22,6 +22,12 @@ void asst::CreditShoppingTask::set_white_list(std::vector<std::string> black_lis
|
||||
m_is_white_list = true;
|
||||
}
|
||||
|
||||
asst::CreditShoppingTask& asst::CreditShoppingTask::set_save_credit_enabled(bool save_credit_enabled) noexcept
|
||||
{
|
||||
m_save_credit_enabled = save_credit_enabled;
|
||||
return *this;
|
||||
}
|
||||
|
||||
std::string asst::CreditShoppingTask::credit_ocr()
|
||||
{
|
||||
cv::Mat credit_image = m_ctrler->get_image();
|
||||
@@ -117,7 +123,7 @@ bool asst::CreditShoppingTask::credit_shopping(bool white_list_enabled, bool cre
|
||||
|
||||
if (credit_ocr_enabled) {
|
||||
std::string credit = credit_ocr();
|
||||
if (credit == "" || std::stoi(credit) <= 300) {//信用值不再溢出,停止购物
|
||||
if (credit == "" || std::stoi(credit) <= m_max_credit) {//信用值不再溢出,停止购物
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -137,7 +143,7 @@ bool asst::CreditShoppingTask::_run()
|
||||
|
||||
std::string credit = credit_ocr();
|
||||
|
||||
if (credit != "" && std::stoi(credit) > 300) {//信用值溢出
|
||||
if (credit != "" && std::stoi(credit) > m_max_credit) {//信用值溢出
|
||||
if (!credit_shopping(false, true)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -17,11 +17,14 @@ namespace asst
|
||||
void set_black_list(std::vector<std::string> black_list);
|
||||
void set_white_list(std::vector<std::string> white_list);
|
||||
|
||||
CreditShoppingTask& set_save_credit_enabled(bool save_credit_enabled) noexcept;
|
||||
|
||||
protected:
|
||||
virtual bool _run() override;
|
||||
bool m_save_credit_enabled = true; // 设置是否防止信用值溢出
|
||||
int m_max_credit = 300;
|
||||
std::string credit_ocr();
|
||||
bool credit_shopping(bool white_list_enabled, bool credit_ocr_enabled);
|
||||
bool credit_shopping(bool white_list_enabled, bool credit_ocr_enabled);
|
||||
|
||||
std::vector<std::string> m_shopping_list;
|
||||
bool m_is_white_list = false;
|
||||
|
||||
@@ -21,6 +21,9 @@ asst::MallTask::MallTask(const AsstCallback& callback, void* callback_arg)
|
||||
bool asst::MallTask::set_params(const json::value& params)
|
||||
{
|
||||
bool shopping = params.get("shopping", true);
|
||||
bool save_credit_enabled = params.get("save_credit_enabled", true);
|
||||
m_shopping_first_task_ptr->set_save_credit_enabled(false);
|
||||
m_shopping_task_ptr->set_save_credit_enabled(save_credit_enabled);
|
||||
|
||||
if (shopping) {
|
||||
if (auto buy_first_opt = params.find<json::array>("buy_first")) {
|
||||
|
||||
@@ -1230,13 +1230,15 @@ namespace MeoAsstGui
|
||||
/// <param name="with_shopping">是否购物。</param>
|
||||
/// <param name="first_list">优先购买列表。</param>
|
||||
/// <param name="blacklist">黑名单列表。</param>
|
||||
/// <param name="save_credit_enabled">是否在信用溢出时无视黑名单</param>
|
||||
/// <returns>是否成功。</returns>
|
||||
public bool AsstAppendMall(bool with_shopping, string[] first_list, string[] blacklist)
|
||||
public bool AsstAppendMall(bool with_shopping, string[] first_list, string[] blacklist, bool save_credit_enabled)
|
||||
{
|
||||
var task_params = new JObject();
|
||||
task_params["shopping"] = with_shopping;
|
||||
task_params["buy_first"] = new JArray { first_list };
|
||||
task_params["blacklist"] = new JArray { blacklist };
|
||||
task_params["save_credit_enabled"] = save_credit_enabled;
|
||||
TaskId id = AsstAppendTaskWithEncoding("Mall", task_params);
|
||||
_latestTaskId[TaskType.Mall] = id;
|
||||
return id != 0;
|
||||
|
||||
@@ -144,6 +144,7 @@
|
||||
<system:String x:Key="HighPriority">Whitelist (split by semicolon)</system:String>
|
||||
<system:String x:Key="Blacklist">Blacklist (split by semicolon)</system:String>
|
||||
<system:String x:Key="Drink">Would you like a drink🍷? doctor</system:String>
|
||||
<system:String x:Key="SaveCreditEnabled">Ignore blacklist if credit overflow</system:String>
|
||||
|
||||
<system:String x:Key="DroneUsage">Drone Usage</system:String>
|
||||
|
||||
|
||||
@@ -144,6 +144,7 @@
|
||||
<system:String x:Key="HighPriority">优先购买 子串即可 分号分隔</system:String>
|
||||
<system:String x:Key="Blacklist">黑名单 子串即可 分号分隔</system:String>
|
||||
<system:String x:Key="Drink">要来一杯美酒吗🍷?博士</system:String>
|
||||
<system:String x:Key="SaveCreditEnabled">信用溢出时无视黑名单</system:String>
|
||||
|
||||
<system:String x:Key="DroneUsage">无人机用途</system:String>
|
||||
|
||||
|
||||
@@ -137,6 +137,7 @@
|
||||
<system:String x:Key="HighPriority">優先購買 子串即可 分号分隔</system:String>
|
||||
<system:String x:Key="Blacklist">黑名單 子串即可 分号分隔</system:String>
|
||||
<system:String x:Key="Drink">要來一杯美酒嗎🍷?博士</system:String>
|
||||
<system:String x:Key="SaveCreditEnabled">信用溢出時無視黑名單</system:String>
|
||||
|
||||
<system:String x:Key="DroneUsage">無人機用途</system:String>
|
||||
|
||||
|
||||
@@ -16,12 +16,19 @@
|
||||
<RowDefinition Height="Auto" />
|
||||
</Grid.RowDefinitions>
|
||||
<CheckBox
|
||||
Margin="10"
|
||||
Margin="-200,10,10,10"
|
||||
HorizontalAlignment="Center"
|
||||
VerticalAlignment="Center"
|
||||
Block.TextAlignment="Center"
|
||||
Content="{DynamicResource SocialPtShop}"
|
||||
IsChecked="{Binding CreditShopping}" />
|
||||
<CheckBox
|
||||
Margin="200,10,10,10"
|
||||
HorizontalAlignment="Center"
|
||||
VerticalAlignment="Center"
|
||||
Block.TextAlignment="Center"
|
||||
Content="{DynamicResource SaveCreditEnabled}"
|
||||
IsChecked="{Binding CreditSaveCreditEnabled}" />
|
||||
<StackPanel
|
||||
Grid.Row="1"
|
||||
HorizontalAlignment="Center"
|
||||
|
||||
@@ -948,6 +948,25 @@ namespace MeoAsstGui
|
||||
}
|
||||
}
|
||||
|
||||
private string _creditSaveCreditEnabled = ViewStatusStorage.Get("Mall.CreditSaveCreditEnabled", true.ToString());
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets a value indicating whether save credit is enabled.
|
||||
/// </summary>
|
||||
public bool CreditSaveCreditEnabled
|
||||
{
|
||||
get
|
||||
{
|
||||
return bool.Parse(_creditSaveCreditEnabled);
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
SetAndNotify(ref _creditSaveCreditEnabled, value.ToString());
|
||||
ViewStatusStorage.Set("Mall.CreditSaveCreditEnabled", value.ToString());
|
||||
}
|
||||
}
|
||||
|
||||
/* 定时设置 */
|
||||
|
||||
private bool _timer1 = ViewStatusStorage.Get("Timer.Timer1", bool.FalseString) == bool.TrueString;
|
||||
|
||||
@@ -904,7 +904,7 @@ namespace MeoAsstGui
|
||||
black_list[i] = black_list[i].Trim();
|
||||
}
|
||||
|
||||
return asstProxy.AsstAppendMall(settings.CreditShopping, buy_first, black_list);
|
||||
return asstProxy.AsstAppendMall(settings.CreditShopping, buy_first, black_list, settings.CreditSaveCreditEnabled);
|
||||
}
|
||||
|
||||
private bool appendRecruit()
|
||||
|
||||
Reference in New Issue
Block a user