From 4f6de620b71c828e2050ab65bd00d723ea50febe Mon Sep 17 00:00:00 2001 From: Nattsu39 Date: Fri, 4 Sep 2026 14:36:03 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20parser:=20sign=5Ficon?= =?UTF-8?q?=5Ffight?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../solaris/parse/parsers/sign_icon_fight.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/packages/solaris/solaris/parse/parsers/sign_icon_fight.py b/packages/solaris/solaris/parse/parsers/sign_icon_fight.py index 49ed46e..3f36671 100644 --- a/packages/solaris/solaris/parse/parsers/sign_icon_fight.py +++ b/packages/solaris/solaris/parse/parsers/sign_icon_fight.py @@ -21,7 +21,7 @@ class ItemItem(TypedDict): tips: str id: int is_show_num: int - show_monster: int + show_monster: list[str] show_time: int sort: int @@ -80,7 +80,16 @@ def parse(self, data: bytes) -> _SignIconFightConfig: # 读取整数字段 item_id = reader.ReadSignedInt() is_show_num = reader.ReadSignedInt() - show_monster = reader.ReadSignedInt() + + # 可选的 showmonster 数组 + show_monster: list[str] = [] + if reader.ReadBoolean(): + show_monster_count = reader.ReadSignedInt() + show_monster = [ + reader.ReadUTFBytesWithLength() + for _ in range(show_monster_count) + ] + show_time = reader.ReadSignedInt() sort = reader.ReadSignedInt() From b7dc54bcc773fe43a3f2117564bd0ba9f6087c7a Mon Sep 17 00:00:00 2001 From: Nattsu39 Date: Fri, 4 Sep 2026 14:36:04 +0800 Subject: [PATCH 2/2] =?UTF-8?q?fix(solaris):=20=E4=BF=AE=E5=A4=8D=E6=BA=90?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E7=BC=BA=E5=A4=B1=E7=9A=84=20parser=20?= =?UTF-8?q?=E5=9C=A8=E8=BE=93=E5=87=BA=E9=98=B6=E6=AE=B5=E8=A7=A6=E5=8F=91?= =?UTF-8?q?=20KeyError=20=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/solaris/solaris/parse/__init__.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/solaris/solaris/parse/__init__.py b/packages/solaris/solaris/parse/__init__.py index ca4dc67..33e0f02 100644 --- a/packages/solaris/solaris/parse/__init__.py +++ b/packages/solaris/solaris/parse/__init__.py @@ -155,9 +155,9 @@ def run_all_parser( ) ) with change_workdir(output_dir): - for parser_cls in parser_classes: + for parser_cls, data in parsed_data.items(): parser = parser_cls() - parser.save_parsed_config(parsed_data[parser_cls]) + parser.save_parsed_config(data) __all__ = [