From ab25748013f33cbbcae42fcc1a37d49bd87682d5 Mon Sep 17 00:00:00 2001 From: 0O0o0oOoO00 <11174151+0O0o0oOoO00@users.noreply.github.com> Date: Sat, 1 Nov 2025 23:49:12 +0800 Subject: [PATCH] add: add opsi force auto and opsi no map fog for alas operation --- config/template.json | 4 +++- module/config/argument/args.json | 8 ++++++++ module/config/argument/argument.yaml | 2 ++ module/config/config_generated.py | 2 ++ module/config/full_config_generated.py | 2 ++ module/config/i18n/en-US.json | 8 ++++++++ module/config/i18n/ja-JP.json | 8 ++++++++ module/config/i18n/zh-CN.json | 8 ++++++++ module/config/i18n/zh-TW.json | 8 ++++++++ module/luahook/api.py | 12 ++++++++++++ module/luahook/crack.py | 14 ++++++++++++++ module/luahook/op.py | 12 ++++++++++++ 12 files changed, 87 insertions(+), 1 deletion(-) diff --git a/config/template.json b/config/template.json index 0a4749155..74a05e787 100644 --- a/config/template.json +++ b/config/template.json @@ -218,7 +218,9 @@ "FastWave": false, "MonsterKillSelf": false, "SkipBattleCelebrate": false, - "NoDamage": false + "NoDamage": false, + "OpsiForceAuto": false, + "OpsiNoMapFog": false }, "ShipProperty": { "Method": "disable", diff --git a/module/config/argument/args.json b/module/config/argument/args.json index bb61159a8..d2e1a882f 100644 --- a/module/config/argument/args.json +++ b/module/config/argument/args.json @@ -869,6 +869,14 @@ "NoDamage": { "type": "checkbox", "value": false + }, + "OpsiForceAuto": { + "type": "checkbox", + "value": false + }, + "OpsiNoMapFog": { + "type": "checkbox", + "value": false } }, "ShipProperty": { diff --git a/module/config/argument/argument.yaml b/module/config/argument/argument.yaml index ccb13e4b8..499a9d38e 100644 --- a/module/config/argument/argument.yaml +++ b/module/config/argument/argument.yaml @@ -883,6 +883,8 @@ Misc: MonsterKillSelf: false SkipBattleCelebrate: false NoDamage: false + OpsiForceAuto: false + OpsiNoMapFog: false # ==================== Cheat ==================== PowerLimit: diff --git a/module/config/config_generated.py b/module/config/config_generated.py index 1aa806418..9111789d9 100644 --- a/module/config/config_generated.py +++ b/module/config/config_generated.py @@ -538,6 +538,8 @@ class GeneratedConfig: Misc_MonsterKillSelf = False Misc_SkipBattleCelebrate = False Misc_NoDamage = False + Misc_OpsiForceAuto = False + Misc_OpsiNoMapFog = False # Group `PowerLimit` PowerLimit_Enable = True diff --git a/module/config/full_config_generated.py b/module/config/full_config_generated.py index e225f61ad..7ee1b36b5 100644 --- a/module/config/full_config_generated.py +++ b/module/config/full_config_generated.py @@ -152,6 +152,8 @@ class FullGeneratedConfig: Hook_Misc_MonsterKillSelf = None Hook_Misc_SkipBattleCelebrate = None Hook_Misc_NoDamage = None + Hook_Misc_OpsiForceAuto = None + Hook_Misc_OpsiNoMapFog = None Hook_ShipProperty_Method = None Hook_ShipProperty_Factor = None Hook_ShipProperty_Armor = None diff --git a/module/config/i18n/en-US.json b/module/config/i18n/en-US.json index 497aa3bbc..de66113bf 100644 --- a/module/config/i18n/en-US.json +++ b/module/config/i18n/en-US.json @@ -3110,6 +3110,14 @@ "NoDamage": { "name": "Misc.NoDamage.name", "help": "Misc.NoDamage.help" + }, + "OpsiForceAuto": { + "name": "Misc.OpsiForceAuto.name", + "help": "Misc.OpsiForceAuto.help" + }, + "OpsiNoMapFog": { + "name": "Misc.OpsiNoMapFog.name", + "help": "Misc.OpsiNoMapFog.help" } }, "PowerLimit": { diff --git a/module/config/i18n/ja-JP.json b/module/config/i18n/ja-JP.json index 2621a1093..54c178be8 100644 --- a/module/config/i18n/ja-JP.json +++ b/module/config/i18n/ja-JP.json @@ -3110,6 +3110,14 @@ "NoDamage": { "name": "Misc.NoDamage.name", "help": "Misc.NoDamage.help" + }, + "OpsiForceAuto": { + "name": "Misc.OpsiForceAuto.name", + "help": "Misc.OpsiForceAuto.help" + }, + "OpsiNoMapFog": { + "name": "Misc.OpsiNoMapFog.name", + "help": "Misc.OpsiNoMapFog.help" } }, "PowerLimit": { diff --git a/module/config/i18n/zh-CN.json b/module/config/i18n/zh-CN.json index f180bbb6d..4b147db39 100644 --- a/module/config/i18n/zh-CN.json +++ b/module/config/i18n/zh-CN.json @@ -3110,6 +3110,14 @@ "NoDamage": { "name": "无伤害无击杀", "help": "" + }, + "OpsiForceAuto": { + "name": "大世界强制自律", + "help": "" + }, + "OpsiNoMapFog": { + "name": "大世界移除迷雾", + "help": "" } }, "PowerLimit": { diff --git a/module/config/i18n/zh-TW.json b/module/config/i18n/zh-TW.json index 625439401..23de86567 100644 --- a/module/config/i18n/zh-TW.json +++ b/module/config/i18n/zh-TW.json @@ -3110,6 +3110,14 @@ "NoDamage": { "name": "Misc.NoDamage.name", "help": "Misc.NoDamage.help" + }, + "OpsiForceAuto": { + "name": "Misc.OpsiForceAuto.name", + "help": "Misc.OpsiForceAuto.help" + }, + "OpsiNoMapFog": { + "name": "Misc.OpsiNoMapFog.name", + "help": "Misc.OpsiNoMapFog.help" } }, "PowerLimit": { diff --git a/module/luahook/api.py b/module/luahook/api.py index 32d5f3b9d..ed1f2d8a2 100644 --- a/module/luahook/api.py +++ b/module/luahook/api.py @@ -307,3 +307,15 @@ class CrackApi: def disable_no_damage(self): self.post("disable_no_damage") + + def enable_opsi_force_auto(self): + self.post("enable_opsi_force_auto") + + def disable_opsi_force_auto(self): + self.post("disable_opsi_force_auto") + + def enable_opsi_no_map_fog(self): + self.post("enable_opsi_no_map_fog") + + def disable_opsi_no_map_fog(self): + self.post("disable_opsi_no_map_fog") diff --git a/module/luahook/crack.py b/module/luahook/crack.py index c109ef3eb..9d3813b2a 100644 --- a/module/luahook/crack.py +++ b/module/luahook/crack.py @@ -35,6 +35,8 @@ ALL_ENABLE_OPS = [ CrackOp.EnableMonsterKillSelf, CrackOp.EnableSkipBattleCelebrate, CrackOp.EnableNoDamage, + CrackOp.EnableOpsiForceAuto, + CrackOp.EnableOpsiNoMapFog, ] REMOTE_PORT = 23897 @@ -234,6 +236,16 @@ def do_crack_op(config: AzurLaneConfig, device: Device, ops: Union[Type[CrackOp. api.enable_no_damage() elif op == CrackOp.DisableNoDamage: api.disable_no_damage() + elif op == CrackOp.EnableOpsiForceAuto: + if full_config.Hook_Misc_OpsiForceAuto: + api.enable_opsi_force_auto() + elif op == CrackOp.DisableOpsiForceAuto: + api.disable_opsi_force_auto() + elif op == CrackOp.EnableOpsiNoMapFog: + if full_config.Hook_Misc_OpsiNoMapFog: + api.enable_opsi_no_map_fog() + elif op == CrackOp.DisableOpsiNoMapFog: + api.disable_opsi_no_map_fog() else: logger.error(f"Unsupported op: {op}") @@ -308,6 +320,8 @@ OPSI_CRACK_OPS = [ CrackOp.EnableMonsterKillSelf, CrackOp.EnableSkipBattleCelebrate, CrackOp.EnableNoDamage, + CrackOp.EnableOpsiForceAuto, + CrackOp.EnableOpsiNoMapFog, ] diff --git a/module/luahook/op.py b/module/luahook/op.py index 88e077698..5ceabadcf 100644 --- a/module/luahook/op.py +++ b/module/luahook/op.py @@ -118,3 +118,15 @@ class CrackOp: class DisableNoDamage(Op): ... + + class EnableOpsiForceAuto(Op): + ... + + class DisableOpsiForceAuto(Op): + ... + + class EnableOpsiNoMapFog(Op): + ... + + class DisableOpsiNoMapFog(Op): + ...