@echo off
chcp 65001 >nul
setlocal EnableExtensions EnableDelayedExpansion
title MU Sacerdote - preparar o cliente
color 0E

set "SITE=https://mu-sacerdote.ddnsfree.com"
set "VMD_SHA=ED6866ECC3A38388B501963ECA4164A9B76A0AFCF10FD2CB00C62815A9DE2E5C"

echo.
echo  ===========================================================
echo    MU SACERDOTE - preparar o cliente
echo  ===========================================================
echo.
echo  Este script vai:
echo    1. apagar as pastas de servidor e de administracao,
echo       que vem no download mas o jogador nao usa
echo    2. baixar o arquivo de configuracao com o endereco do servidor
echo    3. ajustar o jogo para abrir em janela ^(evita fechar no alt-tab^)
echo    4. criar um atalho na sua Area de Trabalho
echo.

rem ---------- 1. localizar a pasta Cliente 99z ----------
set "RAIZ="
if exist "Cliente 99z\main.exe" set "RAIZ=."
if not defined RAIZ for /d %%D in (*) do (
  if not defined RAIZ if exist "%%~D\Cliente 99z\main.exe" set "RAIZ=%%~D"
)
if not defined RAIZ for /d %%D in (*) do (
  for /d %%E in ("%%~D\*") do (
    if not defined RAIZ if exist "%%~E\Cliente 99z\main.exe" set "RAIZ=%%~E"
  )
)

if not defined RAIZ (
  echo  [ERRO] Nao encontrei a pasta "Cliente 99z".
  echo.
  echo  Coloque este arquivo na MESMA pasta onde voce extraiu o RAR
  echo  e execute de novo. A pasta certa e a que contem "Cliente 99z"
  echo  dentro dela.
  echo.
  echo  Pasta atual: "%CD%"
  echo.
  goto :fim
)

for %%A in ("%RAIZ%") do set "RAIZ_ABS=%%~fA"
pushd "%RAIZ%\Cliente 99z" || goto :fim
set "CLI=%CD%"
popd

echo  Cliente encontrado em:
echo    "%CLI%"
echo.

rem ---------- 2. mostrar o que sera apagado e confirmar ----------
set "TEM_LIXO="
if exist "%RAIZ_ABS%\MuServer 99z" set "TEM_LIXO=1"
for /d %%D in ("%RAIZ_ABS%\Utilit*") do set "TEM_LIXO=1"

if defined TEM_LIXO (
  echo  Sera APAGADO:
  if exist "%RAIZ_ABS%\MuServer 99z" echo    - "%RAIZ_ABS%\MuServer 99z"      ^(o servidor; voce nao precisa dele^)
  for /d %%D in ("%RAIZ_ABS%\Utilit*") do echo    - "%%~fD"      ^(ferramentas de administracao^)
  echo.
  echo  A pasta "Cliente 99z" NAO sera apagada.
  echo.
  choice /C SN /N /M "  Pode apagar essas pastas? [S/N]: "
  if errorlevel 2 (
    echo.
    echo  Cancelado. Nada foi alterado.
    goto :fim
  )
  echo.
  echo  [1/4] Apagando o que nao e usado pelo jogador...
  if exist "%RAIZ_ABS%\MuServer 99z" rd /s /q "%RAIZ_ABS%\MuServer 99z"
  for /d %%D in ("%RAIZ_ABS%\Utilit*") do rd /s /q "%%~fD"
  echo        pronto.
) else (
  echo  [1/4] Nada para apagar ^(pastas de servidor ja removidas^).
)
echo.

rem ---------- 3. baixar o main.vmd com o endereco do servidor ----------
echo  [2/4] Baixando o arquivo de configuracao do servidor...
set "TMPV=%CLI%\main.vmd.novo"
if exist "%TMPV%" del /f /q "%TMPV%"

where curl.exe >nul 2>&1
if %errorlevel%==0 (
  curl.exe -fsS -L "%SITE%/main.vmd" -o "%TMPV%"
) else (
  powershell -NoProfile -ExecutionPolicy Bypass -Command ^
    "try{Invoke-WebRequest -Uri '%SITE%/main.vmd' -OutFile '%TMPV%' -UseBasicParsing}catch{exit 1}"
)

if not exist "%TMPV%" (
  echo        [ERRO] O download falhou.
  echo        Verifique sua internet e tente de novo. Se insistir,
  echo        avise no grupo.
  goto :fim
)

rem verifica o hash, para nao instalar download pela metade
set "GOT="
for /f "skip=1 delims=" %%H in ('certutil -hashfile "%TMPV%" SHA256 2^>nul') do (
  if not defined GOT set "GOT=%%H"
)
set "GOT=%GOT: =%"
if /i not "%GOT%"=="%VMD_SHA%" (
  echo        [ERRO] O arquivo baixado esta corrompido.
  echo          esperado: %VMD_SHA%
  echo          recebido: %GOT%
  del /f /q "%TMPV%" >nul 2>&1
  echo        Tente executar de novo. Se repetir, avise no grupo.
  goto :fim
)

move /y "%TMPV%" "%CLI%\main.vmd" >nul
echo        pronto, e a integridade confere.
echo.

rem ---------- 4. ajustes de video ----------
echo  [3/4] Ajustando o jogo para abrir em janela...
reg add "HKCU\Software\Webzen\Mu\Config" /v WindowMode  /t REG_DWORD /d 1 /f >nul 2>&1
reg add "HKCU\Software\Webzen\Mu\Config" /v Resolution  /t REG_DWORD /d 2 /f >nul 2>&1
reg add "HKCU\Software\Webzen\Mu\Config" /v SoundOnOff  /t REG_DWORD /d 1 /f >nul 2>&1
reg add "HKCU\Software\Webzen\Mu\Config" /v MusicOnOff  /t REG_DWORD /d 0 /f >nul 2>&1
echo        janela de 1024x768, som ligado, musica desligada.
echo        ^(so para o seu usuario do Windows; nada no sistema^)
echo.

rem limpeza de restos inofensivos
del /f /q "%CLI%\MuError.dmp"  >nul 2>&1
del /f /q "%CLI%\MuError.log"  >nul 2>&1
del /f /q "%CLI%\desktop.ini"  >nul 2>&1

rem ---------- 5. atalho ----------
echo  [4/4] Criando atalho na Area de Trabalho...
powershell -NoProfile -ExecutionPolicy Bypass -Command ^
  "$d=[Environment]::GetFolderPath('Desktop'); $s=(New-Object -ComObject WScript.Shell).CreateShortcut((Join-Path $d 'MU Sacerdote.lnk')); $s.TargetPath=Join-Path '%CLI%' 'main.exe'; $s.WorkingDirectory='%CLI%'; $s.IconLocation=(Join-Path '%CLI%' 'main.exe'); $s.Description='MU Sacerdote'; $s.Save()" >nul 2>&1

rem Nao da para supor %USERPROFILE%\Desktop: com OneDrive a Area de Trabalho
rem fica em outro lugar. Pergunta ao proprio Windows onde ela esta.
powershell -NoProfile -ExecutionPolicy Bypass -Command ^
  "exit [int](-not (Test-Path (Join-Path ([Environment]::GetFolderPath('Desktop')) 'MU Sacerdote.lnk')))"
if errorlevel 1 (
  echo        nao consegui criar o atalho. Abra o jogo direto por aqui:
  echo        "%CLI%\main.exe"
) else (
  echo        atalho "MU Sacerdote" criado na Area de Trabalho.
)

echo.
echo  ===========================================================
echo    TUDO PRONTO
echo  ===========================================================
echo.
echo  Para jogar, use o atalho "MU Sacerdote" na Area de Trabalho.
echo.
echo  Precisa de uma conta do jogo? Crie em:
echo    %SITE%
echo.
echo  O RAR que voce baixou pode ser apagado, se quiser espaco.
echo.
choice /C SN /N /M "  Abrir o jogo agora? [S/N]: "
if errorlevel 2 goto :fim
start "" /d "%CLI%" "%CLI%\main.exe"

:fim
echo.
pause
endlocal
