You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

53 lines
2.0 KiB
Python

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()