Ванильный метод - экспортировать UnrealEd (но для новых клиентов нужно исправлять UC структуры (легко) и нативные структуры (сложно если нет нормальных исходников).
Попроще - брать l2pe от acmi и исправлять\добавлять уже только нативные структуры (обычные загружаются уже автоматически из u паков). Насколько я помню там вроде есть уже простенький T3D десериализатор - доделать под свои нужны и норм.
оно то работает через батекспорт, но только для тех карт которые может читать редактор лордофдеста
ЕСЛИ ЧИТАТЬ ЛАСТ ФАФУРИОНА ТО ВОТ
Код:
@echo off
setlocal enabledelayedexpansion
REM === Ask for map name without extension ===
set /p MAPNAME=Enter map name (25_25):
set "MAP=%MAPNAME%.unr"
REM === Settings ===
set "OUTDIR=..\Exported"
set "RESULT=%MAPNAME%_eventid.txt"
set "TMP_RAW=%TEMP%\_eventid_lines.txt"
set "TMP_IDS=%TEMP%\_eventid_ids.txt"
REM Clean old files
if exist "%RESULT%" del /q "%RESULT%"
if exist "%TMP_RAW%" del /q "%TMP_RAW%"
if exist "%TMP_IDS%" del /q "%TMP_IDS%"
echo Exporting map "%MAP%" to "%OUTDIR%" ...
ucc batchexport "%MAP%" Level t3d "%OUTDIR%"
if errorlevel 1 (
echo ERROR: ucc failed. Check if map "%MAP%" exists.
pause
exit /b 1
)
REM Check if .t3d files exist
dir /b "%OUTDIR%\*.t3d" >nul 2>&1
if errorlevel 1 (
echo ERROR: no .t3d files found in "%OUTDIR%".
pause
exit /b 1
)
REM Collect all lines with EventID
for %%F in ("%OUTDIR%\*.t3d") do (
findstr /i "EventID" "%%~fF" >> "%TMP_RAW%"
)
if not exist "%TMP_RAW%" (
echo No lines with "EventID" found.
pause
exit /b 0
)
REM Parse lines and extract values after "="
for /f "usebackq delims=" %%L in ("%TMP_RAW%") do (
for /f "tokens=1* delims==" %%A in ("%%L") do (
set "AFTER=%%B"
if defined AFTER (
for /f "tokens=* delims= " %%X in ("!AFTER!") do set "VAL=%%X"
set "VAL=!VAL:,=!"
set "VAL=!VAL:"=!"
set "VAL=!VAL:'=!"
set "VAL=!VAL:(=!"
set "VAL=!VAL:)=!"
set "VAL=!VAL:;=!"
for /f "tokens=* delims= " %%Y in ("!VAL!") do echo %%Y>>"%TMP_IDS%"
)
)
)
REM Remove empty lines and duplicates
type "%TMP_IDS%" | findstr /r /v "^$" > "%RESULT%.tmp"
sort "%RESULT%.tmp" /unique > "%RESULT%"
del "%RESULT%.tmp" >nul 2>&1
del "%TMP_RAW%" "%TMP_IDS%" >nul 2>&1
echo Done. Unique EventID values are saved in "%RESULT%".
type "%RESULT%"
pause