-
Notifications
You must be signed in to change notification settings - Fork 19
Description
- pylivemaker version: 1.0.4
- Python version: 3.10.6
- Operating System: Windows
- LiveMaker game: トライアド・リリーティア
Description
I've been trying to extract the menus from this game, and running into difficulties. A few extract with no problem, but others give an error message: "No matching jump for menu choice."
What I Did
I used the command lmlsb extractmenu on one of the extracted lsb files. I got the following Traceback:
Extracting 00001886.lsb ...
Traceback (most recent call last):
File "C:\Users\User\AppData\Local\Programs\Python\Python310\li
s\livemaker\lsb\menu.py", line 315, in from_lsb_command
target, target_index = jumps[text]
KeyError: '瑠奈をリーダーにする'
During handling of the above exception, another exception occurred
Traceback (most recent call last):
File "C:\Users\User\AppData\Local\Programs\Python\Python310\li
ine 196, in _run_module_as_main
return _run_code(code, main_globals, None,
File "C:\Users\User\AppData\Local\Programs\Python\Python310\li
ine 86, in run_code
exec(code, run_globals)
File "C:\Users\User\AppData\Local\Programs\Python\Python310\Sc
e_main.py", line 7, in
File "C:\Users\User\AppData\Local\Programs\Python\Python310\li
s\click\core.py", line 1157, in call
return self.main(*args, **kwargs)
File "C:\Users\User\AppData\Local\Programs\Python\Python310\li
s\click\core.py", line 1078, in main
rv = self.invoke(ctx)
File "C:\Users\User\AppData\Local\Programs\Python\Python310\li
s\click\core.py", line 1688, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "C:\Users\User\AppData\Local\Programs\Python\Python310\li
s\click\core.py", line 1434, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "C:\Users\User\AppData\Local\Programs\Python\Python310\li
s\click\core.py", line 783, in invoke
return _callback(*args, **kwargs)
File "C:\Users\User\AppData\Local\Programs\Python\Python310\li
s\livemaker\cli\lmlsb.py", line 987, in extractmenu
for id, choice in lsb.get_menu_choices():
File "C:\Users\User\AppData\Local\Programs\Python\Python310\li
s\livemaker\lsb\lmscript.py", line 651, in get_menu_choices
for line_no, menu in self.get_menus(run_order):
File "C:\Users\User\AppData\Local\Programs\Python\Python310\li
s\livemaker\lsb\lmscript.py", line 632, in get_menus
menu = make_menu(self, i, pylm=self.pylm)
File "C:\Users\User\AppData\Local\Programs\Python\Python310\li
s\livemaker\lsb\menu.py", line 463, in make_menu
return cls.from_lsb_command(lsb, index, **kwargs)
File "C:\Users\User\AppData\Local\Programs\Python\Python310\li
s\livemaker\lsb\menu.py", line 321, in from_lsb_command
raise KeyError(f"No matching jump for menu choice {text}")
KeyError: 'No matching jump for menu choice 瑠奈をリーダーにする'
I used lmlsb dump to examine the .lsb file. The pertinent area seems to be to do with this menu choice:
Label 0000188F
275: Wait ((GetProp("メッセージボックス", 81) | GetProp("メッセージボックス", 138)) & Not(選択実行中)) 0 0
276: Calc 選択実行中 = 1
277: VarNew _tmp ParamType.Str 2
278: VarNew _tmpno ParamType.Int 2
279: VarNew _tmpid ParamType.Str 2
280: If (リリーティアフラグ[1] == "FALSE" & パーティ管理[0][1] == "TRUE")
281: Calc AddArray(_tmp, "瑠奈をリーダーにする")
282: Calc _tmpno = 0
283: Calc _tmpid = AddDelimiter("\r\n", _tmpid) ++ _tmpno
284: If (リリーティアフラグ[1] == "FALSE" & パーティ管理[0][2] == "TRUE")
285: Calc AddArray(_tmp, "愛梨をリーダーにする")
286: Calc _tmpno = 1
287: Calc _tmpid = AddDelimiter("\r\n", _tmpid) ++ _tmpno
288: If (リリーティアフラグ[1] == "FALSE" & パーティ管理[0][3] == "TRUE")
289: Calc AddArray(_tmp, "透華をリーダーにする")
290: Calc _tmpno = 2
291: Calc _tmpid = AddDelimiter("\r\n", _tmpid) ++ _tmpno
292: If (リリーティアフラグ[1] == "FALSE" & パーティ管理[0][4] == "TRUE")
293: Calc AddArray(_tmp, "心羽をリーダーにする")
294: Calc _tmpno = 3
295: Calc _tmpid = AddDelimiter("\r\n", _tmpid) ++ _tmpno
296: If リリーティアフラグ[1] == "TRUE"
297: Calc AddArray(_tmp, "リリーティアをリーダーにする")
298: Calc _tmpno = 4
299: Calc _tmpid = AddDelimiter("\r\n", _tmpid) ++ _tmpno
300: Calc AddArray(_tmp, "キャンセル")
301: Calc _tmpno = 5
302: Calc _tmpid = AddDelimiter("\r\n", _tmpid) ++ _tmpno
303: Calc TrimArray(_tmp)
304: If ArrayToString(_tmp) != ""
305: If 1
306: Call ノベルシステム\選択メニュー\■選択実行.lsb:0 1 ArrayToString(_tmp) 0 "C" "C" 0 "サウンド\SE\po.ogg" "" 1
307: Calc 選択実行中 = 0
308: Calc StringToArray(_tmpid, _tmpid)
309: If 選択番号 >= 0
310: Calc 選択番号 = _tmpid[選択番号]
311: Else
312: Calc 選択値 = _tmp
313: Calc 選択番号 = _tmpno
314: Calc 選択実行中 = 0
315: Calc 右クリックメニュー一時禁止 = 0
316: Call ノベルシステム\メッセージボックス\終了.lsb:0 1
317: Wait GetProp("メッセージボックス", 50) != "" 0 0
318: ObjDel "VOICE"
319: VarDel _tmp
320: VarDel _tmpno
321: VarDel _tmpid
322: Jump 00001886.lsb:315 ((((選択値 == "瑠奈をリーダーにする" | 選択値 == "愛梨をリーダーにする") | 選択値 == "透華をリーダーにする") | 選択値 == "心羽をリーダーにする") | 選択値 == "リリーティアをリーダーにする")
323: Jump 00001886.lsb:226 選択値 == "キャンセル"
324: Wait 1 0 0