Загрузка данных


@echo off
chcp 65001 >nul
title The Pink Valley - Мультиплеер
color 0D

:: Автоопределение папки с игрой
cd /d "%~dp0"

:check_gzdoom
if exist "gzdoom.exe" goto found
if exist "..\gzdoom.exe" (
    cd ..
    goto found
)
echo ========================================
echo  GZDOOM НЕ НАЙДЕН!
echo ========================================
echo.
echo  Положи этот файл в папку с gzdoom.exe
echo  Или укажи путь вручную:
echo.
set /p gzdoom_path="Путь к gzdoom.exe: "
if exist "%gzdoom_path%" (
    cd /d "%gzdoom_path%\.."
    goto found
)
echo Неверный путь! Попробуй снова.
pause
goto check_gzdoom

:found
echo GZDoom найден: %cd%\gzdoom.exe

:menu
cls
echo ============================================
echo    THE PINK VALLEY - МУЛЬТИПЛЕЕР
echo ============================================
echo.
echo    [1] СТАТЬ СЕРВЕРОМ (ХОСТ)
echo    [2] ПОДКЛЮЧИТЬСЯ К ДРУГУ
echo    [3] ЛОКАЛЬНАЯ СЕТЬ (АВТО)
echo    [4] ВЫХОД
echo.
set /p choice="Выбери режим (1-4): "

if "%choice%"=="1" goto host
if "%choice%"=="2" goto client
if "%choice%"=="3" goto lan
if "%choice%"=="4" exit
goto menu

:host
cls
echo.
echo ==========================================
echo   ЗАПУСК СЕРВЕРА
echo ==========================================
echo.
echo   ВНИМАНИЕ! Твоё устройство станет СЕРВЕРОМ!
echo   Все игроки подключатся к ТЕБЕ.
echo   При выходе сервер передастся другому.
echo.
set /p players="Сколько игроков (2-8)?: "
if "%players%"=="" set players=4
set /p map="Название карты (MAP01)?: "
if "%map%"=="" set map=MAP01

echo.
echo ==========================================
echo   ДАННЫЕ ДЛЯ ПОДКЛЮЧЕНИЯ ДРУЗЕЙ:
echo ==========================================
echo.
echo   ТВОЙ IP АДРЕС (дай его друзьям):
for /f "tokens=2 delims=:" %%a in ('ipconfig ^| findstr /i "IPv4" ^| findstr /v "127.0.0.1"') do (
    echo   >>> %%a
)
echo.
echo   Порт: 5029
echo   Карта: %map%
echo   Игроков: %players%
echo.
echo ==========================================
echo   Нажми ЛЮБУЮ КЛАВИШУ для запуска сервера...
pause >nul

start gzdoom.exe -host %players% -warp %map% -file pinkvalley.pk3 pinkvalley_multiplayer.pk3 +set pinkvalley_autohost 1

echo.
echo Сервер запущен! Не закрывай это окно.
echo Для остановки сервера просто закрой GZDoom.
echo.
pause
goto menu

:client
cls
echo.
echo ==========================================
echo   ПОДКЛЮЧЕНИЕ К ДРУГУ
echo ==========================================
echo.
echo   Попроси у друга его IP адрес
echo   (он должен запустить режим СЕРВЕРА)
echo.
set /p host_ip="IP адрес друга: "
if "%host_ip%"=="" goto client

echo.
echo Подключаюсь к %host_ip%:5029...
echo.
echo ==========================================
echo   Нажми ЛЮБУЮ КЛАВИШУ для подключения...
pause >nul

start gzdoom.exe -join %host_ip%:5029 -file pinkvalley.pk3 pinkvalley_multiplayer.pk3 +set pinkvalley_autohost 2

echo.
echo Подключение запущено! Жди загрузки...
echo.
pause
goto menu

:lan
cls
echo.
echo ==========================================
echo   ЛОКАЛЬНАЯ СЕТЬ
echo ==========================================
echo.
echo   Ищу другие серверы в твоей сети...
echo.

:: Показываем свой IP
echo   Твой IP:
for /f "tokens=2 delims=:" %%a in ('ipconfig ^| findstr /i "IPv4" ^| findstr /v "127.0.0.1"') do (
    set myip=%%a
    echo   %%a
)

echo.
echo   [1] Я буду СЕРВЕРОМ (если ещё нет)
echo   [2] Подключиться к существующему серверу
echo.
set /p lan_choice="Выбери (1-2): "

if "%lan_choice%"=="1" (
    echo Запускаю сервер для локальной сети...
    start gzdoom.exe -host 4 -file pinkvalley.pk3 pinkvalley_multiplayer.pk3 +set pinkvalley_autohost 1
)
if "%lan_choice%"=="2" (
    set /p lan_ip="IP сервера в сети: "
    start gzdoom.exe -join %lan_ip%:5029 -file pinkvalley.pk3 pinkvalley_multiplayer.pk3 +set pinkvalley_autohost 2
)

echo.
pause
goto menu