From fa07ae686fcf2c6df77833051172f3f17b53fcce Mon Sep 17 00:00:00 2001 From: sui-feng-cb <2518179942@qq.com> Date: Sun, 26 Jul 2026 10:59:39 +0800 Subject: [PATCH 1/5] Upd: Submarine.CallMode override adaptation for scuttle tasks --- module/config/argument/args.json | 9 ++++++--- module/config/argument/override.yaml | 3 +++ 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/module/config/argument/args.json b/module/config/argument/args.json index 92fceb6f9..425bae37e 100644 --- a/module/config/argument/args.json +++ b/module/config/argument/args.json @@ -4130,7 +4130,8 @@ "do_not_use", "boss_only", "every_combat" - ] + ], + "display": "hide" }, "Timing": { "type": "select", @@ -4366,7 +4367,8 @@ }, "ClearAfterSinking": { "type": "checkbox", - "value": false + "value": false, + "display": "hide" } }, "Coalition": { @@ -4574,7 +4576,8 @@ "do_not_use", "boss_only", "every_combat" - ] + ], + "display": "hide" }, "Timing": { "type": "select", diff --git a/module/config/argument/override.yaml b/module/config/argument/override.yaml index eb1519ec0..480914211 100644 --- a/module/config/argument/override.yaml +++ b/module/config/argument/override.yaml @@ -199,6 +199,7 @@ RaidScuttle: AutoRecommend: false AutoSearchMode: sub_standby HuntMode: do_not_use + CallMode: do_not_use Timing: default DistanceToBoss: 2_grid_to_boss Emotion: @@ -308,6 +309,7 @@ CoalitionScuttle: UseAutoSearch: false Use2xBook: false AmbushEvade: true + ClearAfterSinking: false Coalition: Fleet: type: lock @@ -332,6 +334,7 @@ CoalitionScuttle: AutoRecommend: false AutoSearchMode: sub_standby HuntMode: do_not_use + CallMode: do_not_use Timing: default DistanceToBoss: use_open_ocean_support Emotion: From b6b58b50849e6fade8fd246782d009d64533a45f Mon Sep 17 00:00:00 2001 From: sui-feng-cb <2518179942@qq.com> Date: Sun, 26 Jul 2026 11:14:52 +0800 Subject: [PATCH 2/5] Del: unused tasks GUI --- config/template.json | 60 ------- module/config/argument/args.json | 245 --------------------------- module/config/argument/menu.json | 3 - module/config/argument/override.yaml | 46 ++--- module/config/argument/task.yaml | 10 -- module/config/i18n/en-US.json | 12 -- module/config/i18n/ja-JP.json | 12 -- module/config/i18n/zh-CN.json | 12 -- module/config/i18n/zh-TW.json | 12 -- 9 files changed, 23 insertions(+), 389 deletions(-) diff --git a/config/template.json b/config/template.json index 0689b5247..7351eb867 100644 --- a/config/template.json +++ b/config/template.json @@ -908,61 +908,6 @@ "Storage": {} } }, - "Hospital": { - "Scheduler": { - "Enable": false, - "NextRun": "2020-01-01 00:00:00", - "Command": "Hospital", - "SuccessInterval": 0, - "FailureInterval": 120, - "ServerUpdate": "00:00" - }, - "Hospital": { - "UseRecommendFleet": true - }, - "StopCondition": { - "OilLimit": 1000, - "RunCount": 0, - "MapAchievement": "non_stop", - "StageIncrease": false, - "GetNewShip": false, - "ReachLevel": 0 - }, - "Emotion": { - "Mode": "calculate", - "Fleet1Value": 119, - "Fleet1Record": "2020-01-01 00:00:00", - "Fleet1Control": "prevent_yellow_face", - "Fleet1Recover": "not_in_dormitory", - "Fleet1Oath": false, - "Fleet1Onsen": false, - "Fleet2Value": 119, - "Fleet2Record": "2020-01-01 00:00:00", - "Fleet2Control": "prevent_yellow_face", - "Fleet2Recover": "not_in_dormitory", - "Fleet2Oath": false, - "Fleet2Onsen": false - }, - "Storage": { - "Storage": {} - } - }, - "MaritimeEscort": { - "Scheduler": { - "Enable": false, - "NextRun": "2020-01-01 00:00:00", - "Command": "MaritimeEscort", - "SuccessInterval": 30, - "FailureInterval": 30, - "ServerUpdate": "00:00" - }, - "MaritimeEscort": { - "Enable": true - }, - "Storage": { - "Storage": {} - } - }, "WarArchives": { "Scheduler": { "Enable": false, @@ -2502,11 +2447,6 @@ "Storage": {} } }, - "IslandPearl": { - "Storage": { - "Storage": {} - } - }, "Benchmark": { "Benchmark": { "DeviceType": "emulator", diff --git a/module/config/argument/args.json b/module/config/argument/args.json index 425bae37e..d221d7396 100644 --- a/module/config/argument/args.json +++ b/module/config/argument/args.json @@ -4701,241 +4701,6 @@ } } }, - "Hospital": { - "Scheduler": { - "Enable": { - "type": "checkbox", - "value": false, - "option": [ - true, - false - ] - }, - "NextRun": { - "type": "datetime", - "value": "2020-01-01 00:00:00", - "validate": "datetime" - }, - "Command": { - "type": "input", - "value": "Hospital", - "display": "hide" - }, - "SuccessInterval": { - "type": "input", - "value": 0, - "display": "hide" - }, - "FailureInterval": { - "type": "input", - "value": 120, - "display": "hide" - }, - "ServerUpdate": { - "type": "input", - "value": "00:00", - "display": "hide" - } - }, - "Hospital": { - "UseRecommendFleet": { - "type": "checkbox", - "value": true - } - }, - "StopCondition": { - "OilLimit": { - "type": "input", - "value": 1000 - }, - "RunCount": { - "type": "input", - "value": 0, - "display": "hide" - }, - "MapAchievement": { - "type": "select", - "value": "non_stop", - "option": [ - "non_stop", - "non_stop_clear_all", - "100_percent_clear", - "map_3_stars", - "threat_safe", - "threat_safe_without_3_stars" - ], - "display": "hide" - }, - "StageIncrease": { - "type": "checkbox", - "value": false, - "display": "hide" - }, - "GetNewShip": { - "type": "checkbox", - "value": false, - "display": "hide" - }, - "ReachLevel": { - "type": "input", - "value": 0, - "display": "hide" - } - }, - "Emotion": { - "Mode": { - "type": "select", - "value": "calculate", - "option": [ - "calculate", - "ignore", - "calculate_ignore" - ] - }, - "Fleet1Value": { - "type": "input", - "value": 119 - }, - "Fleet1Record": { - "type": "datetime", - "value": "2020-01-01 00:00:00", - "validate": "datetime", - "display": "disabled" - }, - "Fleet1Control": { - "type": "select", - "value": "prevent_yellow_face", - "option": [ - "keep_exp_bonus", - "prevent_green_face", - "prevent_yellow_face", - "prevent_red_face" - ], - "display": "hide" - }, - "Fleet1Recover": { - "type": "select", - "value": "not_in_dormitory", - "option": [ - "not_in_dormitory", - "dormitory_floor_1", - "dormitory_floor_2" - ], - "display": "hide" - }, - "Fleet1Oath": { - "type": "checkbox", - "value": false, - "display": "hide" - }, - "Fleet1Onsen": { - "type": "checkbox", - "value": false, - "display": "hide" - }, - "Fleet2Value": { - "type": "input", - "value": 119, - "display": "hide" - }, - "Fleet2Record": { - "type": "datetime", - "value": "2020-01-01 00:00:00", - "validate": "datetime", - "display": "hide" - }, - "Fleet2Control": { - "type": "select", - "value": "prevent_yellow_face", - "option": [ - "keep_exp_bonus", - "prevent_green_face", - "prevent_yellow_face", - "prevent_red_face" - ], - "display": "hide" - }, - "Fleet2Recover": { - "type": "select", - "value": "not_in_dormitory", - "option": [ - "not_in_dormitory", - "dormitory_floor_1", - "dormitory_floor_2" - ], - "display": "hide" - }, - "Fleet2Oath": { - "type": "checkbox", - "value": false, - "display": "hide" - }, - "Fleet2Onsen": { - "type": "checkbox", - "value": false, - "display": "hide" - } - }, - "Storage": { - "Storage": { - "type": "storage", - "value": {}, - "valuetype": "ignore", - "display": "disabled" - } - } - }, - "MaritimeEscort": { - "Scheduler": { - "Enable": { - "type": "checkbox", - "value": false, - "option": [ - true, - false - ] - }, - "NextRun": { - "type": "datetime", - "value": "2020-01-01 00:00:00", - "validate": "datetime" - }, - "Command": { - "type": "input", - "value": "MaritimeEscort", - "display": "hide" - }, - "SuccessInterval": { - "type": "input", - "value": 30, - "display": "hide" - }, - "FailureInterval": { - "type": "input", - "value": 30, - "display": "hide" - }, - "ServerUpdate": { - "type": "input", - "value": "00:00", - "display": "hide" - } - }, - "MaritimeEscort": { - "Enable": { - "type": "checkbox", - "value": true - } - }, - "Storage": { - "Storage": { - "type": "storage", - "value": {}, - "valuetype": "ignore", - "display": "disabled" - } - } - }, "WarArchives": { "Scheduler": { "Enable": { @@ -14865,16 +14630,6 @@ } } }, - "IslandPearl": { - "Storage": { - "Storage": { - "type": "storage", - "value": {}, - "valuetype": "ignore", - "display": "disabled" - } - } - }, "Benchmark": { "Benchmark": { "DeviceType": { diff --git a/module/config/argument/menu.json b/module/config/argument/menu.json index 497df0743..cb020b448 100644 --- a/module/config/argument/menu.json +++ b/module/config/argument/menu.json @@ -30,8 +30,6 @@ "Raid", "RaidScuttle", "CoalitionScuttle", - "Hospital", - "MaritimeEscort", "WarArchives" ] }, @@ -108,7 +106,6 @@ "OpsiDaemon", "EventStory", "BoxDisassemble", - "IslandPearl", "Benchmark", "DowntimeFetch", "AzurLaneUncensored", diff --git a/module/config/argument/override.yaml b/module/config/argument/override.yaml index 480914211..639755c9d 100644 --- a/module/config/argument/override.yaml +++ b/module/config/argument/override.yaml @@ -215,24 +215,24 @@ RaidScuttle: Fleet2Recover: not_in_dormitory Fleet2Oath: false Fleet2Onsen: false -Hospital: - StopCondition: - RunCount: 0 - MapAchievement: non_stop - StageIncrease: false - GetNewShip: false - ReachLevel: 0 - Emotion: - Fleet1Control: prevent_yellow_face - Fleet1Recover: not_in_dormitory - Fleet1Oath: false - Fleet1Onsen: false - Fleet2Value: 119 - Fleet2Record: 2020-01-01 00:00:00 - Fleet2Control: prevent_yellow_face - Fleet2Recover: not_in_dormitory - Fleet2Oath: false - Fleet2Onsen: false +# Hospital: +# StopCondition: +# RunCount: 0 +# MapAchievement: non_stop +# StageIncrease: false +# GetNewShip: false +# ReachLevel: 0 +# Emotion: +# Fleet1Control: prevent_yellow_face +# Fleet1Recover: not_in_dormitory +# Fleet1Oath: false +# Fleet1Onsen: false +# Fleet2Value: 119 +# Fleet2Record: 2020-01-01 00:00:00 +# Fleet2Control: prevent_yellow_face +# Fleet2Recover: not_in_dormitory +# Fleet2Oath: false +# Fleet2Onsen: false RaidDaily: Scheduler: SuccessInterval: 30 @@ -260,11 +260,11 @@ RaidDaily: Fleet2Recover: not_in_dormitory Fleet2Oath: false Fleet2Onsen: False -MaritimeEscort: - Scheduler: - SuccessInterval: 30 - FailureInterval: 30 - ServerUpdate: 00:00 +# MaritimeEscort: +# Scheduler: +# SuccessInterval: 30 +# FailureInterval: 30 +# ServerUpdate: 00:00 Coalition: Scheduler: SuccessInterval: 30 diff --git a/module/config/argument/task.yaml b/module/config/argument/task.yaml index 9b6bfb717..95c0caf70 100644 --- a/module/config/argument/task.yaml +++ b/module/config/argument/task.yaml @@ -124,14 +124,6 @@ Event: - Fleet - Submarine - Emotion - Hospital: - - Scheduler - - Hospital - - StopCondition - - Emotion - MaritimeEscort: - - Scheduler - - MaritimeEscort WarArchives: - Scheduler - Campaign @@ -381,8 +373,6 @@ Tool: - EventStory BoxDisassemble: - BoxDisassemble - IslandPearl: - - IslandPearl Benchmark: - Benchmark DowntimeFetch: diff --git a/module/config/i18n/en-US.json b/module/config/i18n/en-US.json index ab599e23f..58a9342eb 100644 --- a/module/config/i18n/en-US.json +++ b/module/config/i18n/en-US.json @@ -94,14 +94,6 @@ "name": "Coalition Scuttle", "help": "" }, - "Hospital": { - "name": "Valley Hospital Story", - "help": "" - }, - "MaritimeEscort": { - "name": "Maritime Escort", - "help": "" - }, "WarArchives": { "name": "War Archives", "help": "Due to the lack of maintenance of war archives, continuous clear may not work normally, if Alas runs abnormally, Please manually finish clearing and use auto search" @@ -286,10 +278,6 @@ "name": "Box Disassemble", "help": "" }, - "IslandPearl": { - "name": "Task.IslandPearl.name", - "help": "Task.IslandPearl.help" - }, "Benchmark": { "name": "Performance Test", "help": "" diff --git a/module/config/i18n/ja-JP.json b/module/config/i18n/ja-JP.json index 0986ee8ec..d4715830f 100644 --- a/module/config/i18n/ja-JP.json +++ b/module/config/i18n/ja-JP.json @@ -94,14 +94,6 @@ "name": "Task.CoalitionScuttle.name", "help": "Task.CoalitionScuttle.help" }, - "Hospital": { - "name": "病院探訪ストーリー", - "help": "" - }, - "MaritimeEscort": { - "name": "Maritime Escort", - "help": "" - }, "WarArchives": { "name": "作戦履歴", "help": "" @@ -286,10 +278,6 @@ "name": "Task.BoxDisassemble.name", "help": "Task.BoxDisassemble.help" }, - "IslandPearl": { - "name": "Task.IslandPearl.name", - "help": "Task.IslandPearl.help" - }, "Benchmark": { "name": "機能テスト", "help": "" diff --git a/module/config/i18n/zh-CN.json b/module/config/i18n/zh-CN.json index 2bdd2921a..4fff306dd 100644 --- a/module/config/i18n/zh-CN.json +++ b/module/config/i18n/zh-CN.json @@ -94,14 +94,6 @@ "name": "协斗沉船", "help": "" }, - "Hospital": { - "name": "深谷来信", - "help": "" - }, - "MaritimeEscort": { - "name": "商船护航", - "help": "" - }, "WarArchives": { "name": "作战档案", "help": "由于作战档案缺少维护,开荒功能不一定能正常使用,如果发现Alas运行异常,请手动完成开荒后使用自律寻敌功能" @@ -286,10 +278,6 @@ "name": "拆装备箱", "help": "" }, - "IslandPearl": { - "name": "岛屿珍珠", - "help": "" - }, "Benchmark": { "name": "性能测试", "help": "" diff --git a/module/config/i18n/zh-TW.json b/module/config/i18n/zh-TW.json index 21e2f3941..dad466106 100644 --- a/module/config/i18n/zh-TW.json +++ b/module/config/i18n/zh-TW.json @@ -94,14 +94,6 @@ "name": "協鬥鑿船", "help": "" }, - "Hospital": { - "name": "深谷来信", - "help": "" - }, - "MaritimeEscort": { - "name": "商船護航", - "help": "" - }, "WarArchives": { "name": "作戰檔案", "help": "由於作戰檔案缺少維護,開荒功能不一定能正常使用,如果發現Alas運行異常,請手動完成開荒後使用自律尋敵功能" @@ -286,10 +278,6 @@ "name": "拆裝備箱", "help": "" }, - "IslandPearl": { - "name": "Task.IslandPearl.name", - "help": "Task.IslandPearl.help" - }, "Benchmark": { "name": "性能測試", "help": "" From 1cfbea7cf2a037a8da4bb83d4e7f0eec2f600164 Mon Sep 17 00:00:00 2001 From: sui-feng-cb <2518179942@qq.com> Date: Sun, 26 Jul 2026 11:31:18 +0800 Subject: [PATCH 3/5] Feat: independent meowfficer farming config for OpsiCrossMonth --- config/template.json | 4 ++++ module/config/argument/args.json | 19 +++++++++++++++++++ module/config/argument/argument.yaml | 6 ++++++ module/config/argument/task.yaml | 1 + module/config/config_generated.py | 4 ++++ module/config/i18n/en-US.json | 21 +++++++++++++++++++++ module/config/i18n/ja-JP.json | 21 +++++++++++++++++++++ module/config/i18n/zh-CN.json | 21 +++++++++++++++++++++ module/config/i18n/zh-TW.json | 23 ++++++++++++++++++++++- module/os/tasks/cross_month.py | 17 ++++++++++------- 10 files changed, 129 insertions(+), 8 deletions(-) diff --git a/config/template.json b/config/template.json index 7351eb867..eb35aa79f 100644 --- a/config/template.json +++ b/config/template.json @@ -2405,6 +2405,10 @@ "FailureInterval": 120, "ServerUpdate": "00:00" }, + "OpsiCrossMonth": { + "HazardLevel": 0, + "TargetZone": -1 + }, "Storage": { "Storage": {} } diff --git a/module/config/argument/args.json b/module/config/argument/args.json index d221d7396..7f22a3740 100644 --- a/module/config/argument/args.json +++ b/module/config/argument/args.json @@ -14527,6 +14527,25 @@ "display": "hide" } }, + "OpsiCrossMonth": { + "HazardLevel": { + "type": "select", + "value": 0, + "option": [ + 0, + 2, + 3, + 4, + 5, + 6, + 10 + ] + }, + "TargetZone": { + "type": "input", + "value": -1 + } + }, "Storage": { "Storage": { "type": "storage", diff --git a/module/config/argument/argument.yaml b/module/config/argument/argument.yaml index 3fabeaae9..334e72a75 100644 --- a/module/config/argument/argument.yaml +++ b/module/config/argument/argument.yaml @@ -1064,6 +1064,12 @@ OpsiHazard1Leveling: option: [ 0, 44, 22 ] OperationCoinsPreserve: 100000 DoScanningDevice: false +OpsiCrossMonth: + HazardLevel: + value: 0 + option: [ 0, 2, 3, 4, 5, 6, 10 ] + TargetZone: + value: -1 # ==================== Tools ==================== diff --git a/module/config/argument/task.yaml b/module/config/argument/task.yaml index 95c0caf70..16fb69ab8 100644 --- a/module/config/argument/task.yaml +++ b/module/config/argument/task.yaml @@ -358,6 +358,7 @@ Opsi: - OpsiFleet OpsiCrossMonth: - Scheduler + - OpsiCrossMonth # ==================== Tool ==================== diff --git a/module/config/config_generated.py b/module/config/config_generated.py index 38914814f..2e87b2398 100644 --- a/module/config/config_generated.py +++ b/module/config/config_generated.py @@ -670,6 +670,10 @@ class GeneratedConfig: OpsiHazard1Leveling_OperationCoinsPreserve = 100000 OpsiHazard1Leveling_DoScanningDevice = False + # Group `OpsiCrossMonth` + OpsiCrossMonth_HazardLevel = 0 # 0, 2, 3, 4, 5, 6, 10 + OpsiCrossMonth_TargetZone = -1 + # Group `Daemon` Daemon_EnterMap = True diff --git a/module/config/i18n/en-US.json b/module/config/i18n/en-US.json index 58a9342eb..e0221d67e 100644 --- a/module/config/i18n/en-US.json +++ b/module/config/i18n/en-US.json @@ -6285,6 +6285,27 @@ "help": "Exchange purple coins to operation coins, which may cause a shortage of purple coins" } }, + "OpsiCrossMonth": { + "_info": { + "name": "OpSi Cross Month Settings", + "help": "" + }, + "HazardLevel": { + "name": "Target Zone Hazard Level of Meowfficer Farm", + "help": "Recommend 3 or 5 as these have higher meowfficer ratio to AP cost", + "0": "Use Config from Task OpSi Meowfficer Farm", + "2": "2", + "3": "3", + "4": "4", + "5": "5", + "6": "6", + "10": "Center Zones" + }, + "TargetZone": { + "name": "Target Zone ID of Meowfficer Farm", + "help": "Supports either Zone ID or Name in CN/EN/JP/TW, i.e. \"51\", \"NA Ocean SE Sector E\"\nIf specified, Alas will loop on this same zone after each clear\nUse value 0 to remove the specification\nUse default value -1 or clear the field to use the target zone ID in Task Opsi Meowfficer Farm as the specification\nZone information can be acquired from <./module/os/map_data.py>" + } + }, "Daemon": { "_info": { "name": "Semi-auto Clicking", diff --git a/module/config/i18n/ja-JP.json b/module/config/i18n/ja-JP.json index d4715830f..dade4b1a8 100644 --- a/module/config/i18n/ja-JP.json +++ b/module/config/i18n/ja-JP.json @@ -6285,6 +6285,27 @@ "help": "OpsiHazard1Leveling.DoScanningDevice.help" } }, + "OpsiCrossMonth": { + "_info": { + "name": "OpsiCrossMonth._info.name", + "help": "OpsiCrossMonth._info.help" + }, + "HazardLevel": { + "name": "OpsiCrossMonth.HazardLevel.name", + "help": "OpsiCrossMonth.HazardLevel.help", + "0": "0", + "2": "2", + "3": "3", + "4": "4", + "5": "5", + "6": "6", + "10": "10" + }, + "TargetZone": { + "name": "OpsiCrossMonth.TargetZone.name", + "help": "OpsiCrossMonth.TargetZone.help" + } + }, "Daemon": { "_info": { "name": "Daemon._info.name", diff --git a/module/config/i18n/zh-CN.json b/module/config/i18n/zh-CN.json index 4fff306dd..e2eee7476 100644 --- a/module/config/i18n/zh-CN.json +++ b/module/config/i18n/zh-CN.json @@ -6285,6 +6285,27 @@ "help": "消耗紫币换取黄币,可能会导致紫币不足" } }, + "OpsiCrossMonth": { + "_info": { + "name": "跨月每日", + "help": "" + }, + "HazardLevel": { + "name": "短猫侵蚀等级", + "help": "按顺时针出击特定侵蚀等级的海域\n建议选 5 或 3,有更高的 猫点/行动力 比\n\"使用短猫配置\"表示在跨月每日时使用短猫相接任务配置中的侵蚀等级进行短猫", + "0": "使用短猫配置", + "2": "2", + "3": "3", + "4": "4", + "5": "5", + "6": "6", + "10": "中心海域" + }, + "TargetZone": { + "name": "短猫指定海域", + "help": "仅出击指定的海域,可以用来获取大世界成就星星\n支持海域ID、国服/国际服/日服/台服海域名称,例如 \"51\", \"NA海域东南E\", \"NA Ocean SE Sector E\"\n填入0表示不指定海域\n填入默认值-1,或者删除数值表示在跨月每日时使用短猫相接任务配置中的指定海域进行短猫" + } + }, "Daemon": { "_info": { "name": "半自动点击", diff --git a/module/config/i18n/zh-TW.json b/module/config/i18n/zh-TW.json index dad466106..2afd1d1e5 100644 --- a/module/config/i18n/zh-TW.json +++ b/module/config/i18n/zh-TW.json @@ -6257,7 +6257,7 @@ }, "TargetZone": { "name": "指定海域", - "help": "僅出擊指定的海域,可以用來獲取大世界成就星星\n自動更新的數值,填0可重置進度,重置後自動跳過已開荒的海域\n支援海域ID、國服/國際服/日服/台服海域名稱,例如 \"51\", \"NA海域東南E\", \"NA Ocean SE Sector E\"\n填入默認值0,或者刪除數值即可取消指定" + "help": "僅出擊指定的海域,可以用來獲取大世界成就星星\n支援海域ID、國服/國際服/日服/台服海域名稱,例如 \"51\", \"NA海域東南E\", \"NA Ocean SE Sector E\"\n填入默認值0,或者刪除數值即可取消指定" }, "APPreserveUntilReset": { "name": "保留行動力直到月底", @@ -6285,6 +6285,27 @@ "help": "消耗紫幣換取黃幣,可能會導致紫幣不足" } }, + "OpsiCrossMonth": { + "_info": { + "name": "跨月每日", + "help": "" + }, + "HazardLevel": { + "name": "短貓侵蝕等級", + "help": "按順時針出擊特定侵蝕等級的海域\n建議選 5 或 3 ,有更高的 貓點/行動力 比\n\"使用短貓配置\"表示在跨月每日時使用短貓相接任務配置中的侵蝕等級進行短貓", + "0": "使用短貓配置", + "2": "2", + "3": "3", + "4": "4", + "5": "5", + "6": "6", + "10": "中心海域" + }, + "TargetZone": { + "name": "短貓指定海域", + "help": "僅出擊指定的海域,可以用來獲取大世界成就星星\n支援海域ID、國服/國際服/日服/台服海域名稱,例如 \"51\", \"NA海域東南E\", \"NA Ocean SE Sector E\"\n填入0表示不指定海域\n填入預設值-1,或者刪除數值表示在跨月每日時使用短貓相接任務配置中的指定海域進行短貓" + } + }, "Daemon": { "_info": { "name": "半自動點擊", diff --git a/module/os/tasks/cross_month.py b/module/os/tasks/cross_month.py index 395d7af9b..5b1cde0f7 100644 --- a/module/os/tasks/cross_month.py +++ b/module/os/tasks/cross_month.py @@ -121,10 +121,13 @@ class OpsiCrossMonth(OSMap): else: break - OpsiMeowfficerFarming_HazardLevel = self.config.cross_get('OpsiMeowfficerFarming' - '.OpsiMeowfficerFarming' - '.HazardLevel') - logger.hr(f'OS meowfficer farming, hazard_level={OpsiMeowfficerFarming_HazardLevel}', level=1) + hazard_level = self.config.OpsiCrossMonth_HazardLevel + target_zone = self.config.OpsiCrossMonth_TargetZone + if hazard_level == 0: + hazard_level = self.config.cross_get('OpsiMeowfficerFarming.OpsiMeowfficerFarming.HazardLevel') + if target_zone == -1: + target_zone = self.config.cross_get('OpsiMeowfficerFarming.OpsiMeowfficerFarming.TargetZone') + logger.hr(f'OS meowfficer farming, hazard_level={hazard_level}', level=1) self.config.override( OpsiGeneral_DoRandomMapEvent=True, OpsiGeneral_BuyActionPointLimit=0, @@ -134,8 +137,8 @@ class OpsiCrossMonth(OSMap): OpsiFleet_Fleet=self.config.cross_get('OpsiMeowfficerFarming.OpsiFleet.Fleet'), OpsiFleet_Submarine=False, OpsiMeowfficerFarming_ActionPointPreserve=0, - OpsiMeowfficerFarming_HazardLevel=OpsiMeowfficerFarming_HazardLevel, - OpsiMeowfficerFarming_TargetZone=self.config.cross_get('OpsiMeowfficerFarming.OpsiMeowfficerFarming.TargetZone'), + OpsiMeowfficerFarming_HazardLevel=hazard_level, + OpsiMeowfficerFarming_TargetZone=target_zone, OpsiMeowfficerFarming_APPreserveUntilReset=False, ) while True: @@ -153,7 +156,7 @@ class OpsiCrossMonth(OSMap): self.run_strategic_search() self.handle_after_auto_search() else: - zones = self.zone_select(hazard_level=OpsiMeowfficerFarming_HazardLevel) \ + zones = self.zone_select(hazard_level=self.config.OpsiMeowfficerFarming_HazardLevel) \ .delete(SelectedGrids([self.zone])) \ .delete(SelectedGrids(self.zones.select(is_port=True))) \ .sort_by_clock_degree(center=(1252, 1012), start=self.zone.location) From 3bf7601b655d30825fa926979763ea320775dfda Mon Sep 17 00:00:00 2001 From: sui-feng-cb <2518179942@qq.com> Date: Sun, 26 Jul 2026 11:39:54 +0800 Subject: [PATCH 4/5] Chore: help information for UseRepairPack --- module/config/i18n/en-US.json | 4 ++-- module/config/i18n/zh-CN.json | 2 +- module/config/i18n/zh-TW.json | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/module/config/i18n/en-US.json b/module/config/i18n/en-US.json index e0221d67e..d021db4e8 100644 --- a/module/config/i18n/en-US.json +++ b/module/config/i18n/en-US.json @@ -6026,11 +6026,11 @@ }, "UseRepairPack": { "name": "Use Repair Pack", - "help": "Ships will be repaired using the repair packs in storage. It is recommended to use this feature in conjunction with CL1 leveling." + "help": "Ships will be repaired using the repair packs in storage after OpSi Abyssal, Opsi Siren Stronghold and Monthly Boss" }, "RepairPackThreshold": { "name": "Repair Pack Threshold", - "help": "If any one ship's HP is below threshold, use repair packs for repairs.\ncheck only after OpSi Abyssal, Opsi Siren Stronghold and Monthly Boss.\n0.0 ~ 1.0" + "help": "If any one ship's HP is below threshold, use repair packs for repairs.\nCheck only after OpSi Abyssal, Opsi Siren Stronghold and Monthly Boss.\n0.0 ~ 1.0" }, "DoRandomMapEvent": { "name": "Do Random Map Events", diff --git a/module/config/i18n/zh-CN.json b/module/config/i18n/zh-CN.json index e2eee7476..bdb4f0e3d 100644 --- a/module/config/i18n/zh-CN.json +++ b/module/config/i18n/zh-CN.json @@ -6026,7 +6026,7 @@ }, "UseRepairPack": { "name": "使用维修箱修船", - "help": "开启后,将使用仓库内的维修箱修船,建议配合侵蚀1练级功能使用" + "help": "开启后,将在打完深渊海域、塞壬要塞、月度Boss后,使用仓库内的维修箱修船" }, "RepairPackThreshold": { "name": "任意舰船血量低于 X 后,使用维修箱修理", diff --git a/module/config/i18n/zh-TW.json b/module/config/i18n/zh-TW.json index 2afd1d1e5..39b5848da 100644 --- a/module/config/i18n/zh-TW.json +++ b/module/config/i18n/zh-TW.json @@ -6026,7 +6026,7 @@ }, "UseRepairPack": { "name": "使用維修箱修船", - "help": "開啟後,將使用倉庫內的維修箱修船,建議配合侵蝕1練級功能使用" + "help": "開啟後,將在打完深淵海域、塞壬要塞、月度Boss後,使用倉庫內的維修箱修船" }, "RepairPackThreshold": { "name": "任意艦船血量低於 X 後,使用維修箱修理", From eeefd3f2cb7213e5d4e569335502c59887b14e0f Mon Sep 17 00:00:00 2001 From: positnuec <93694981+positnuec@users.noreply.github.com> Date: Sun, 26 Jul 2026 12:57:13 +0800 Subject: [PATCH 5/5] Feat: support port shop purchase in OpsiCrossMonth --- module/os/tasks/cross_month.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/module/os/tasks/cross_month.py b/module/os/tasks/cross_month.py index 5b1cde0f7..835fe2c3d 100644 --- a/module/os/tasks/cross_month.py +++ b/module/os/tasks/cross_month.py @@ -5,6 +5,7 @@ from module.exception import ScriptError from module.logger import logger from module.map.map_grids import SelectedGrids from module.os.map import OSMap +from module.os_shop.assets import OS_SHOP_CHECK class OpsiCrossMonth(OSMap): @@ -82,6 +83,23 @@ class OpsiCrossMonth(OSMap): if success: break + logger.hr('OS port daily', level=1) + self.config.override( + OpsiShop_PresetFilter=self.config.cross_get('OpsiShop.OpsiShop.PresetFilter'), + OpsiShop_CustomFilter=self.config.cross_get('OpsiShop.OpsiShop.CustomFilter'), + ) + if not self.zone.is_azur_port: + self.globe_goto(self.zone_nearest_azur_port(self.zone)) + self.port_enter() + self.port_shop_enter() + if self.appear(OS_SHOP_CHECK): + self.handle_port_supply_buy() + logger.info('OS port daily finished') + else: + logger.warning('There is no shop in the port, skip OS port daily.') + self.port_shop_quit() + self.port_quit() + logger.hr('OS clear abyssal', level=1) self.config.override( OpsiGeneral_DoRandomMapEvent=False,