aaa
parent
9c88be9560
commit
9700a41aae
@ -1,5 +1,7 @@
|
||||
name "VR4Life Installer"
|
||||
version 1
|
||||
name "Instalador VR4Life"
|
||||
version 1.0
|
||||
|
||||
extract to "$temp\VR4Life_Install"
|
||||
|
||||
extract to $temp\vr4life_inst
|
||||
run "run_installer.ms"
|
||||
drop "run_installer.ms"
|
||||
@ -1,13 +1 @@
|
||||
(
|
||||
-- Aponta para a pasta exata que definimos no mzp.run
|
||||
local py_script = (getDir #temp) + "\\vr4life_inst\\Instalador_Online_VR4Life.py"
|
||||
|
||||
-- Checa se o arquivo realmente está lá
|
||||
if doesFileExist py_script then (
|
||||
-- Se estiver, executa e deixa o Python cuspir erros reais se houver
|
||||
python.ExecuteFile py_script
|
||||
) else (
|
||||
-- Se não estiver, avisa onde procurou
|
||||
messageBox ("O instalador não encontrou o Python!\n\nProcurou em:\n" + py_script) title:"Erro de Extração MZP"
|
||||
)
|
||||
)
|
||||
python.executeFile (getDir #temp + @"\VR4Life_Install\Instalador_Online_VR4Life.py")
|
||||
Binary file not shown.
@ -1,53 +1,43 @@
|
||||
import os
|
||||
import shutil
|
||||
import pymxs
|
||||
from pymxs import runtime as rt
|
||||
|
||||
def instalar_menu_vr4life():
|
||||
def configure_plugin():
|
||||
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"
|
||||
print("=== CONFIGURANDO COMPONENTES INTERNOS VR4LIFE ===")
|
||||
|
||||
# 1. Define o caminho onde os scripts foram salvos (o diretório atual deste arquivo)
|
||||
plugin_dir = os.path.dirname(os.path.realpath(__file__)).replace("\\", "/")
|
||||
|
||||
# 2. Adiciona a pasta do plugin ao PATH do Python do 3ds Max
|
||||
# Isso permite que você dê 'import vr4life_engine' de qualquer lugar
|
||||
import sys
|
||||
if plugin_dir not in sys.path:
|
||||
sys.path.append(plugin_dir)
|
||||
print(f"Path adicionado ao Python: {plugin_dir}")
|
||||
|
||||
# 3. Se você precisar registrar algum atalho de teclado ou MacroScript, faça aqui.
|
||||
# Exemplo: Registrar o comando que o botão do menu vai chamar
|
||||
macro_script = f"""
|
||||
macroScript VR4Life_Launcher
|
||||
category:"VR4Life"
|
||||
tooltip:"Abrir VR4Life"
|
||||
(
|
||||
python.executeFile @{plugin_dir}/run_vr4life.py@
|
||||
)
|
||||
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")
|
||||
"""
|
||||
rt.execute(macro_script)
|
||||
print("MacroScript VR4Life_Launcher registrado com sucesso.")
|
||||
|
||||
if not os.path.exists(pasta_ui_usuario):
|
||||
os.makedirs(pasta_ui_usuario)
|
||||
# 4. Forçar o 3ds Max a atualizar a interface para o menu aparecer
|
||||
# (Opcional, às vezes o Max precisa reiniciar para ler o .mnx novo)
|
||||
rt.menuMan.updateMenuBar()
|
||||
|
||||
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!"
|
||||
)
|
||||
print("=== PLUGIN VR4LIFE PRONTO PARA USO ===")
|
||||
return True
|
||||
|
||||
except Exception as e:
|
||||
pymxs.runtime.messageBox(
|
||||
f"Falha ao instalar o menu.\nErro técnico: {str(e)}",
|
||||
title="VR4Life - Erro Fatal"
|
||||
)
|
||||
print(f"Erro na configuração final: {str(e)}")
|
||||
return False
|
||||
|
||||
if __name__ == '__main__':
|
||||
instalar_menu_vr4life()
|
||||
if __name__ == "__main__":
|
||||
configure_plugin()
|
||||
Loading…
Reference in New Issue