Compare commits

...

2 Commits

Author SHA1 Message Date
henrique d577713243 adw 2 months ago
henrique b3e6f7e8c3 aaaa 2 months ago

@ -2,22 +2,18 @@ import os
from pymxs import runtime as rt from pymxs import runtime as rt
def carregar_menu_mnx(): def carregar_menu_mnx():
rt.clearListener()
print("\n" + "="*50) print("\n" + "="*50)
print("LOG DE INSTALAÇÃO DE INTERFACE - VR4LIFE") print("AGENDANDO CARREGAMENTO - VR4LIFE (MODO SEGURO)")
print("="*50) print("="*50)
try: try:
# 1. Definir caminhos (Usando barras normais / para evitar conflitos) # 1. Definir caminhos
pasta_macros = rt.getDir(rt.name("userMacros")) pasta_macros = rt.getDir(rt.name("userMacros"))
pasta_enu = os.path.dirname(pasta_macros) pasta_enu = os.path.dirname(pasta_macros)
caminho_mnx = os.path.join(pasta_enu, "en-US", "UI", "vr4life.mnx").replace("\\", "/") caminho_mnx = os.path.join(pasta_enu, "en-US", "UI", "vr4life.mnx").replace("\\", "/")
plugin_dir = os.path.dirname(os.path.realpath(__file__)).replace("\\", "/") plugin_dir = os.path.dirname(os.path.realpath(__file__)).replace("\\", "/")
run_script = f"{plugin_dir}/run_vr4life.py" 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
macro_cmd = ( macro_cmd = (
'macroScript VR4Life_Launcher\n' 'macroScript VR4Life_Launcher\n'
@ -29,30 +25,34 @@ def carregar_menu_mnx():
) )
rt.execute(macro_cmd) rt.execute(macro_cmd)
# 3. Carregar MNX (Corrigido para evitar o erro de sintaxe @C) # 3. TIMER COM EXECUÇÃO TARDIA (Late Bound)
if os.path.exists(caminho_mnx): # Usamos execute dentro do timer para o compilador não travar no 'menuMan' agora
print(f"[!] Arquivo MNX encontrado. Solicitando carregamento...") timer_cmd = f"""
(
# Aqui usamos aspas duplas e formatamos o caminho para o MaxScript global _vr4life_timer = dotNetObject "System.Windows.Forms.Timer"
cmd_load = ( _vr4life_timer.interval = 3000 -- 3 segundos para garantir
'(\n'
' if menuMan != undefined then (\n' dotNet.addEventHandler _vr4life_timer "Tick" (fn onTick s e = (
f' local result = menuMan.loadMenuFile "{caminho_mnx}"\n' -- tentamos acessar o menuMan aqui dentro, após o tempo passar
' menuMan.updateMenuBar()\n' if (execute "menuMan") != undefined then (
' format ">> MaxScript: loadMenuFile result: %\\n" result\n' execute "menuMan.loadMenuFile \\"{caminho_mnx}\\""
' ) else (\n' execute "menuMan.updateMenuBar()"
' format ">> MaxScript Erro: menuMan ainda e undefined\\n"\n' format ">> VR4Life: Menu carregado com sucesso apos espera.\\n"
' )\n' s.stop()
')' s.dispose()
) else (
format ">> VR4Life: Interface ainda carregando...\\n"
) )
rt.execute(cmd_load) ))
else:
print(f"[X] ERRO: Arquivo {caminho_mnx} NAO existe no disco.")
print("="*50) _vr4life_timer.start()
format "[*] Aguardando 3 segundos para injetar o menu...\\n"
)
"""
rt.execute(timer_cmd)
except Exception as e: 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__": if __name__ == "__main__":
carregar_menu_mnx() carregar_menu_mnx()
Loading…
Cancel
Save