diff --git a/install_vr4life.py b/install_vr4life.py index 93d4dde..441dd70 100644 --- a/install_vr4life.py +++ b/install_vr4life.py @@ -2,23 +2,19 @@ import os from pymxs import runtime as rt def carregar_menu_mnx(): - rt.clearListener() print("\n" + "="*50) - print("LOG DE INSTALAÇÃO DE INTERFACE - VR4LIFE") + print("AGENDANDO CARREGAMENTO DE INTERFACE - VR4LIFE") print("="*50) try: - # 1. Definir caminhos (Usando barras normais / para evitar conflitos) + # 1. Definir caminhos pasta_macros = rt.getDir(rt.name("userMacros")) pasta_enu = os.path.dirname(pasta_macros) caminho_mnx = os.path.join(pasta_enu, "en-US", "UI", "vr4life.mnx").replace("\\", "/") plugin_dir = os.path.dirname(os.path.realpath(__file__)).replace("\\", "/") run_script = f"{plugin_dir}/run_vr4life.py" - print(f"[*] Pasta do Plugin: {plugin_dir}") - print(f"[*] Caminho do MNX: {caminho_mnx}") - - # 2. Registrar MacroScript + # 2. Registrar MacroScript (Isso pode ser feito agora, não depende de UI) macro_cmd = ( 'macroScript VR4Life_Launcher\n' 'category:"Immerse Games"\n' @@ -29,30 +25,41 @@ def carregar_menu_mnx(): ) rt.execute(macro_cmd) - # 3. Carregar MNX (Corrigido para evitar o erro de sintaxe @C) - if os.path.exists(caminho_mnx): - print(f"[!] Arquivo MNX encontrado. Solicitando carregamento...") - - # Aqui usamos aspas duplas e formatamos o caminho para o MaxScript - cmd_load = ( - '(\n' - ' if menuMan != undefined then (\n' - f' local result = menuMan.loadMenuFile "{caminho_mnx}"\n' - ' menuMan.updateMenuBar()\n' - ' format ">> MaxScript: loadMenuFile result: %\\n" result\n' - ' ) else (\n' - ' format ">> MaxScript Erro: menuMan ainda e undefined\\n"\n' - ' )\n' - ')' + # 3. AGENDAMENTO (O Timer de 2 segundos) + # Criamos um timer que espera o menuMan acordar para carregar o seu MNX + timer_cmd = f""" + ( + fn tryLoadVRMenu = ( + if menuMan != undefined then ( + menuMan.loadMenuFile "{caminho_mnx}" + menuMan.updateMenuBar() + format ">> VR4Life: Menu carregado via Timer com sucesso.\\n" + return true + ) else ( + format ">> VR4Life: Aguardando interface...\\n" + return false + ) ) - rt.execute(cmd_load) - else: - print(f"[X] ERRO: Arquivo {caminho_mnx} NAO existe no disco.") - - print("="*50) + + -- Cria um timer de 2000ms (2 segundos) + local theTimer = dotNetObject "System.Windows.Forms.Timer" + theTimer.interval = 2000 + + dotNet.addEventHandler theTimer "Tick" (fn onTick s e = ( + if (tryLoadVRMenu()) do ( + s.stop() + s.dispose() + ) + )) + + theTimer.start() + ) + """ + rt.execute(timer_cmd) + print("[*] Timer iniciado. O menu aparecera em 2 segundos.") except Exception as e: - print(f"\n[EXCEPTION] Falha grave:\n{str(e)}") + print(f"\n[EXCEPTION] Falha no agendamento:\n{str(e)}") if __name__ == "__main__": carregar_menu_mnx() \ No newline at end of file