Compile Helper (Lineage 2 interface)

Привет. А любите ли вы батники так, как люблю их я? Скорее всего нет.

Но если быть серьёзным, то у меня уже не первый раз спрашивали за то, чем я работаю с интерфейсами Lineage 2, т.к. видели какую то странную консольку.
1666865827427.png

Я назвал это Compile Helper, но на деле это просто батник, который оптимизирует некоторые рутинные действия до нажатия одной клавиши клавиатуры.

-Иди напиши на нормальном языке! Чё ты нам тут паришь какой то кал в текстовом документе? Или не умеешь?
Что-то умею, что-то могу. Но тут дело в том, что простой текстовый скрипт можно как угодно изменить, как угодно переименовать и он, по факту, никак не уступает в функционале, который тут нужен на уровне зубочистки.
Его не нужно компилировать, сохранять родное имя, или же беспокоится, что он где то не запустится, разве что будут отсутствовать какие то batch команды в той или иной версии windows.

  • Чё по функционалу?
Краткий блок с информацией с какими папками работаем (папка компилятора\папка system клиента) и бесполезная информация о числе компиляций, копирований и запусков игры.

Блок с горячими клавишами:
X: Обычная компиляция
Z: Компиляция + вырезать сорц (если компилятор умеет)
С: Скопировать до указанной папки System (убивает l2.exe\l2.bin процессы перед копированием)
V: Запустить игру с указанной папки System

B: Открыть папку компилятора (проводник)
N: Открыть папку system игры (проводник)


  • Настройка
Настраивается всё любым текстовым редактором, которым мы открываем наш замечательный файл. В самом верху есть целых 4 настройки, которые нам нужны:

Первые 2 настройки отвечают за путь до папки компилятора (там где ucc.exe) и папки system (там где l2.exe), две других - названия файлов (бывает InterfaceClassic.u)
C#:
::init paths
set COMPILER_FOLDER="C:\Windows\System32"
set GAME_SYSTEM_FOLDER="C:\Program Files\l2.exe"

::ini filenames
set INTERFACE_FILE_NAME="Interface.u"
set NWINDOW_FILE_NAME="nwindow.u"

Батник можно запускать из любого места, его рабочая директория задаётся настройкой COMPILER_FOLDER.


  • Где?
C#:
@Echo off
mode con: cols=150 lines=25
color A


::init paths
set COMPILER_FOLDER="C:\Program Files"
set GAME_SYSTEM_FOLDER="C:\Windows\l2.exe"

::ini filenames
set INTERFACE_FILE_NAME="Interface.u"
set NWINDOW_FILE_NAME="nwindow.u"

::ini counter
set COPY_COUNT=0
set GAME_LAUNCH_COUNT=0
set COMPILE_COUNT=0

::start from any folder
cd %COMPILER_FOLDER%
:QUESTION
echo ------------------------------------------
echo current compiler workspace: %COMPILER_FOLDER%
echo current game client folder: %GAME_SYSTEM_FOLDER%
@echo.
echo compile count: %COMPILE_COUNT%
echo copy\client close count: %COPY_COUNT%
echo game launch count: %GAME_LAUNCH_COUNT%
echo ------------------------------------------


@echo.
choice /C:XZCVBN /N /M " 'X' - Build    |   'Z' - Build(strip)   |   'C' - Copy   |   'V' - Launch   |   'B' - Compiler Folder   |   'N' - Game Folder"
if "%ERRORLEVEL%" == "1" Goto COMPILE
if "%ERRORLEVEL%" == "2" Goto COMPILE_WITH_SOURCE_STRIP
if "%ERRORLEVEL%" == "3" Goto COPY
if "%ERRORLEVEL%" == "4" Goto START_GAME
if "%ERRORLEVEL%" == "5" Goto COMPILERFOLDER
if "%ERRORLEVEL%" == "6" Goto GAMEFOLDER
pause


:COPY
cls
taskkill /F /IM l2.exe
taskkill /F /IM l2.bin
timeout /t 1
cls
copy /y %COMPILER_FOLDER%\%INTERFACE_FILE_NAME% %GAME_SYSTEM_FOLDER%
rem copy /y %COMPILER_FOLDER%\%NWINDOW_FILE_NAME% %GAME_SYSTEM_FOLDER%
set /a COPY_COUNT += 1
@echo.
goto QUESTION

:COMPILE
del %INTERFACE_FILE_NAME%
cls
ucc make -nobind
@echo.
set /a COMPILE_COUNT += 1
goto QUESTION

:COMPILE_WITH_SOURCE_STRIP
cls
del %INTERFACE_FILE_NAME%
del %NWINDOW_FILE_NAME%
ucc make -nobind
ucc editor.stripsource %INTERFACE_FILE_NAME% --nobind
ucc editor.stripsourcecommandlet %INTERFACE_FILE_NAME% --nobind
@echo.
set /a COMPILE_COUNT += 1
goto QUESTION

:START_GAME
cls
start "Lineage II" %GAME_SYSTEM_FOLDER%\l2.exe
set /a GAME_LAUNCH_COUNT += 1
goto QUESTION

:COMPILERFOLDER
cls
start "" %COMPILER_FOLDER%
goto QUESTION

:GAMEFOLDER
cls
start "" %GAME_SYSTEM_FOLDER%
goto QUESTION

enjoy
 

Назад
Сверху Снизу