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