import os import shutil import pymxs def instalar_menu_vr4life(): try: nome_arquivo_mnx = "vr4life.mnx" # A GRANDE MUDANÇA: Em vez de __file__, vamos direto na pasta # temporária onde o mzp.run extraiu os arquivos! pasta_temp_windows = os.environ.get('TEMP') pasta_extracao_mzp = os.path.join(pasta_temp_windows, "VR4Life_Install") caminho_origem_mnx = os.path.join(pasta_extracao_mzp, nome_arquivo_mnx) # Verifica se achou no temp if not os.path.exists(caminho_origem_mnx): pymxs.runtime.messageBox( f"Erro: O arquivo '{nome_arquivo_mnx}' não foi encontrado na pasta de extração:\n{caminho_origem_mnx}\n\nVerifique se o arquivo está dentro do .mzp com o nome exato (em minúsculo).", title="VR4Life - Erro" ) return False # Acha a pasta de interface do usuário do 3ds Max pasta_macros = pymxs.runtime.pathConfig.getDir(pymxs.runtime.name("userMacros")) pasta_enu = os.path.dirname(pasta_macros) pasta_ui_usuario = os.path.join(pasta_enu, "en-US", "UI") if not os.path.exists(pasta_ui_usuario): os.makedirs(pasta_ui_usuario) caminho_destino_mnx = os.path.join(pasta_ui_usuario, nome_arquivo_mnx) # Faz a cópia shutil.copy2(caminho_origem_mnx, caminho_destino_mnx) pymxs.runtime.print_(f"VR4Life: Menu copiado com sucesso para {pasta_ui_usuario}\n") pymxs.runtime.messageBox( "O menu do VR4Life foi instalado com sucesso!\n\nSe ele não aparecer imediatamente no topo, reinicie o 3ds Max.", title="VR4Life - Sucesso!" ) return True except Exception as e: pymxs.runtime.messageBox( f"Falha ao instalar o menu.\nErro técnico: {str(e)}", title="VR4Life - Erro Fatal" ) return False if __name__ == '__main__': instalar_menu_vr4life()