fix: 修复部分任务执行错误

This commit is contained in:
MistEO
2022-11-26 05:16:23 +08:00
parent dee99ae06c
commit fb55b01094
8 changed files with 29 additions and 20 deletions

View File

@@ -7,5 +7,7 @@
asst::AwardTask::AwardTask(const AsstCallback& callback, void* callback_arg)
: InterfaceTask(callback, callback_arg, TaskType)
{
m_subtasks.emplace_back(std::make_shared<ProcessTask>(m_callback, m_callback_arg, TaskType));
auto award_task_ptr = std::make_shared<ProcessTask>(m_callback, m_callback_arg, TaskType);
award_task_ptr->set_tasks({ "AwardBegin" });
m_subtasks.emplace_back(award_task_ptr);
}

View File

@@ -7,7 +7,7 @@ asst::DepotTask::DepotTask(const AsstCallback& callback, void* callback_arg)
: InterfaceTask(callback, callback_arg, TaskType)
{
auto enter_task = std::make_shared<ProcessTask>(m_callback, m_callback_arg, TaskType);
enter_task->set_tasks({ "DepotBegin" });
enter_task->set_tasks({ "DepotBegin" }).set_ignore_error(true);
m_subtasks.emplace_back(enter_task);
auto recognition_task = std::make_shared<DepotRecognitionTask>(m_callback, m_callback_arg, TaskType);

View File

@@ -29,18 +29,16 @@ asst::FightTask::FightTask(const AsstCallback& callback, void* callback_arg)
.set_times_limit("PRTS", 0)
.set_times_limit("PRTS2", 0)
.set_times_limit("EndOfAction", 0)
.set_ignore_error(false)
.set_retry_times(5);
m_stage_navigation_task_ptr->set_enable(false).set_ignore_error(false);
m_stage_navigation_task_ptr->set_enable(false);
// 开始战斗任务
m_fight_task_ptr->set_tasks({ "FightBegin" })
.set_times_limit("MedicineConfirm", 0)
.set_times_limit("StoneConfirm", 0)
.set_times_limit("StartButton1", INT_MAX)
.set_times_limit("StartButton2", INT_MAX)
.set_ignore_error(false);
.set_times_limit("StartButton2", INT_MAX);
m_stage_drops_plugin_ptr = m_fight_task_ptr->register_plugin<StageDropsTaskPlugin>();
m_stage_drops_plugin_ptr->set_retry_times(0);

View File

@@ -26,8 +26,16 @@ asst::InfrastTask::InfrastTask(const AsstCallback& callback, void* callback_arg)
m_office_task_ptr(std::make_shared<InfrastOfficeTask>(callback, callback_arg, TaskType)),
m_dorm_task_ptr(std::make_shared<InfrastDormTask>(callback, callback_arg, TaskType))
{
m_infrast_begin_task_ptr->set_tasks({ "InfrastBegin" });
m_infrast_begin_task_ptr->set_tasks({ "InfrastBegin" }).set_ignore_error(true);
m_replenish_task_ptr = m_mfg_task_ptr->register_plugin<ReplenishOriginiumShardTaskPlugin>();
m_info_task_ptr->set_ignore_error(true);
m_mfg_task_ptr->set_ignore_error(true);
m_trade_task_ptr->set_ignore_error(true);
m_power_task_ptr->set_ignore_error(true);
m_control_task_ptr->set_ignore_error(true);
m_reception_task_ptr->set_ignore_error(true);
m_office_task_ptr->set_ignore_error(true);
m_dorm_task_ptr->set_ignore_error(true);
m_subtasks.emplace_back(m_infrast_begin_task_ptr);
}

View File

@@ -19,12 +19,12 @@ asst::MallTask::MallTask(const AsstCallback& callback, void* callback_arg)
m_shopping_task_ptr->set_enable(false).set_retry_times(1);
m_shopping_force_task_ptr->set_enable(false).set_retry_times(1);
m_subtasks.emplace_back(m_visit_task_ptr);
m_subtasks.emplace_back(m_credit_fight_task_ptr);
m_subtasks.emplace_back(m_visit_task_ptr)->set_ignore_error(true);
m_subtasks.emplace_back(m_credit_fight_task_ptr)->set_ignore_error(true);
m_subtasks.emplace_back(m_mall_task_ptr);
m_subtasks.emplace_back(m_shopping_first_task_ptr);
m_subtasks.emplace_back(m_shopping_task_ptr);
m_subtasks.emplace_back(m_shopping_force_task_ptr);
m_subtasks.emplace_back(m_shopping_first_task_ptr)->set_ignore_error(true);
m_subtasks.emplace_back(m_shopping_task_ptr)->set_ignore_error(true);
m_subtasks.emplace_back(m_shopping_force_task_ptr)->set_ignore_error(true);
}
bool asst::MallTask::set_params(const json::value& params)

View File

@@ -7,7 +7,7 @@ asst::RecruitTask::RecruitTask(const AsstCallback& callback, void* callback_arg)
: InterfaceTask(callback, callback_arg, TaskType),
m_auto_recruit_task_ptr(std::make_shared<AutoRecruitTask>(callback, callback_arg, TaskType))
{
m_subtasks.emplace_back(m_auto_recruit_task_ptr)->set_retry_times(5).set_ignore_error(false);
m_subtasks.emplace_back(m_auto_recruit_task_ptr)->set_retry_times(5);
}
bool asst::RecruitTask::set_params(const json::value& params)

View File

@@ -18,6 +18,7 @@ asst::RoguelikeTask::RoguelikeTask(const AsstCallback& callback, void* callback_
: InterfaceTask(callback, callback_arg, TaskType),
m_roguelike_task_ptr(std::make_shared<ProcessTask>(callback, callback_arg, TaskType))
{
m_roguelike_task_ptr->set_ignore_error(true);
m_roguelike_task_ptr->register_plugin<RoguelikeFormationTaskPlugin>();
m_roguelike_task_ptr->register_plugin<RoguelikeControlTaskPlugin>();
m_roguelike_task_ptr->register_plugin<RoguelikeResetTaskPlugin>();
@@ -27,9 +28,9 @@ asst::RoguelikeTask::RoguelikeTask(const AsstCallback& callback, void* callback_
m_custom_start_task_ptr = m_roguelike_task_ptr->register_plugin<RoguelikeCustomStartTaskPlugin>();
m_battle_task_ptr = m_roguelike_task_ptr->register_plugin<RoguelikeBattleTaskPlugin>();
m_recruit_task_ptr = m_roguelike_task_ptr->register_plugin<RoguelikeRecruitTaskPlugin>();
m_recruit_task_ptr->set_retry_times(2);
m_recruit_task_ptr->set_retry_times(2).set_ignore_error(true);
m_skill_task_ptr = m_roguelike_task_ptr->register_plugin<RoguelikeSkillSelectionTaskPlugin>();
m_skill_task_ptr->set_retry_times(2);
m_skill_task_ptr->set_retry_times(2).set_ignore_error(true);
// 这个任务如果卡住会放弃当前的肉鸽并重新开始,所以多添加一点。先这样凑合用
for (int i = 0; i != 100; ++i) {
@@ -94,13 +95,13 @@ bool asst::RoguelikeTask::set_params(const json::value& params)
m_roguelike_task_ptr->set_times_limit("StageTraderInvestConfirm", InvestLimit);
}
if (auto squad_opt = params.find<std::string>("squad")) {
if (auto squad_opt = params.find<std::string>("squad"); squad_opt && !squad_opt->empty()) {
m_custom_start_task_ptr->set_custom(RoguelikeCustomType::Squad, *squad_opt);
}
if (auto roles_opt = params.find<std::string>("roles")) {
if (auto roles_opt = params.find<std::string>("roles"); roles_opt && !roles_opt->empty()) {
m_custom_start_task_ptr->set_custom(RoguelikeCustomType::Roles, *roles_opt);
}
if (auto core_char_opt = params.find<std::string>("core_char")) {
if (auto core_char_opt = params.find<std::string>("core_char"); core_char_opt && !core_char_opt->empty()) {
m_custom_start_task_ptr->set_custom(RoguelikeCustomType::CoreChar, *core_char_opt);
}

View File

@@ -13,8 +13,8 @@ asst::StartUpTask::StartUpTask(const AsstCallback& callback, void* callback_arg)
.set_times_limit("ReturnTo", 0)
.set_task_delay(1000)
.set_retry_times(30);
m_subtasks.emplace_back(m_start_game_task_ptr)->set_ignore_error(false);
m_subtasks.emplace_back(m_start_up_task_ptr)->set_ignore_error(false);
m_subtasks.emplace_back(m_start_game_task_ptr)->set_ignore_error(true);
m_subtasks.emplace_back(m_start_up_task_ptr);
}
bool asst::StartUpTask::set_params(const json::value& params)