AzurLaneAutoScript icon indicating copy to clipboard operation
AzurLaneAutoScript copied to clipboard

Add: TaskBalancer (#1497)

Open bookbug666 opened this issue 3 years ago • 8 comments

Idea from #1497

TODO:

  • [x] Translation
  • [x] Function
  • [x] Assets
  • [x] Tasks add
  • [x] task priority

~~Edit the campaignRun and assets but no effects after run, needs help with the OCR.~~

目前狀態:

試著照本來StopCondition裡面Oil的格式仿製了一個物資取向的刷圖方式,並使用優先於活動地圖的方式解決了#1497的問題 ~~但能搜到關於確認石油存量的我都改了一輪也沒見他在出擊前掃描物資,wiki裡面只有提到原理,不確定我是不是需要做什麼修改~~

~~另外,由於功能還沒有完成,翻譯還沒動工~~ 2022.08.12 已完成測試且刪除自動尋敵檔案中的修改

預想效果

CoinControl跟Main1同時執行(或是只開其一),並鎖死原本的停止場數及三星條件(功能完成後會鎖起來),全部透過判斷資金充裕與否來執行。並且由於設定了更低的OilLimit,可以提升主線圖的出擊占比。

非活動期間不需開啟,是給活動期間有較高物資消耗的玩家。

bookbug666 avatar Aug 09 '22 10:08 bookbug666

Done with full functional. 基本功能已經完成,等待review

bookbug666 avatar Aug 12 '22 08:08 bookbug666

抱歉,我不接受这个PR。从代码实现上来说没有什么问题,但是从逻辑功能上来说不优雅。

  1. CoinControl 任务与现有的主线图123重复,没有必要添加新的任务
  2. 如果我没有理解错的话,原issue是希望在物资低于一定程度的时候能够去farm物资,但这个PR做的是在物资高于一定程度的时候停止任务,这样是可以解决问题,但是不存在直接的关系。

LmeSzinc avatar Aug 12 '22 15:08 LmeSzinc

主要是物資低於X出擊比較麻煩,所以我反著做讓玩家維持一定物資 並且由於絕對優先度main低於event,要是他沒有觸發任何心情或是別的他就會一直跑活動圖

除非真的要做很複雜的隨機優先度,不然這大概是我能想到現有運作流程能實現的 也抱歉浪費你的時間了,希望下次我能提個更好的

不過,若是邏輯正著做,活動打一半觸發低物資而延長任務,只會讓活動圖一直不打而已 全部活動圖都堆在那裏等他打到物資門檻,原有的主線圖依然因為優先度低於活動,~~兩個互相延長到底能做什麼~~ 還是要澄清一下,原issue並沒有很明確地說,他希望怎麼穿插,所以我才加了新task

bookbug666 avatar Aug 12 '22 16:08 bookbug666

你可以试着在别的任务里的添加物资的检查,比如说主线图,活动图,困难图,这些都有可能会看到物资的数字。如果物资低于一定程度就用 task_call 调起刷物资任务。

LmeSzinc avatar Aug 12 '22 17:08 LmeSzinc

你可以试着在别的任务里的添加物资的检查,比如说主线图,活动图,困难图,这些都有可能会看到物资的数字。如果物资低于一定程度就用 task_call 调起刷物资任务。

好吧,那這個設定得放在哪裡呢?稍微想了一下大概有這些地方可以放

  1. Alas>通用設定
  2. 出擊>新類別
  3. 活動>活動通用設置
  4. 其他

一個任務一個CoinLimit似乎不太好,是不是要定一個全局物資下限呢? image 放在campaign/run.py在出擊結束時task_call呼叫物資平衡裡面指定的任務,並且不使用force_call 這樣邏輯是可以的嗎?

bookbug666 avatar Aug 13 '22 04:08 bookbug666

@LmeSzinc 測試時嘗試在使用Main替代Event並呼叫Main2,但不知道為什麼call不到task 另外模擬活動期間使用GemsFarming(已block主線圖)嘗試delay緊急刷委託也沒有生效,能否幫我看看哪裡出了錯?

~~頁面就錯了,重新修~~

bookbug666 avatar Aug 14 '22 04:08 bookbug666

大致上功能完成,force_call也拔了

bookbug666 avatar Aug 19 '22 04:08 bookbug666

有個小問題,如果觸發Emotion control就會跳出去(run_count就停了 那我應該把check_interval拔掉嗎,之前測的時候剛好沒遇到跟其他stop_condition交互的問題

bookbug666 avatar Aug 19 '22 05:08 bookbug666

回退了開關然後刪除了二次觸發的訊息,刪除自定義檢查場數微調推遲的時間(改成兩分鐘) 這次真的沒問題了,完整run一輪都測完除非我條件少了

bookbug666 avatar Aug 19 '22 07:08 bookbug666