diff --git a/README.md b/README.md index 51d84373..d25596a5 100644 --- a/README.md +++ b/README.md @@ -9,4 +9,17 @@ while using files from [TMP4's project](https://metin2.dev/topic/27610-40250-ref Except for some work in order to ensure compatibility with the server, this client is pretty much unchanged. - \ No newline at end of file + +## Requirements + +### Installing DirectX 9.0c +The client has been updated to DirectX 9. This means that if DirectX 9 is not installed on your computer, you might be met with one of these error messages: + +![picture](/doc/img/directx-error-1.png) +![picture](/doc/img/directx-error-2.png) + +In this case, simply [download the DirectX End-User Runtimes (June 2010) from Microsoft's website](http://download.microsoft.com/download/8/4/A/84A35BF1-DAFE-4AE8-82AF-AD2AE20B6B14/directx_Jun2010_redist.exe) (SHA-1 checksum: `7E5D2E5E1A13FBC47F990CC55CBDB428CD12F759`). This is a self-extracting archive, so simply create a new folder, run the executable and extract its contents to that folder. + +In this working folder, find and run `DXSETUP.exe` in order to start the install. + +After the installation is complete, your client should run without issue. diff --git a/build.bat b/build.bat new file mode 100644 index 00000000..4d501abd --- /dev/null +++ b/build.bat @@ -0,0 +1,58 @@ +@echo off + +ECHO ====================================================== +ECHO The Old Metin2 Project - Automated client build script +ECHO Only use on a clean project directory. +ECHO ====================================================== + +rem SET M2_MSVC_DIR=C:\Program Files\Microsoft Visual Studio\2022\Community\ +rem SET M2_PML_PATH=C:\Users\User\Path\To\PackMakerLite\PackMakerLite.exe + +rem Check the environment variables +VERIFY OTHER 2>nul +SETLOCAL ENABLEEXTENSIONS +IF ERRORLEVEL 1 ECHO Unable to enable extensions +IF NOT DEFINED M2_MSVC_DIR ( + ECHO M2_MSVC_DIR is NOT defined! Please define M2_MSVC_DIR with the path of your local MSVC install. + EXIT /B -1 +) +IF NOT DEFINED M2_PML_PATH ( + ECHO M2_PML_PATH is NOT defined! Please define M2_PML_PATH with the path of your local PackMakerLite executable. + EXIT /B -1 +) +ENDLOCAL + +rem Initialize the MSVC environment +CALL "%M2_MSVC_DIR%\VC\Auxiliary\Build\vcvars32.bat" + +rem Build +msbuild Metin2Client.sln /p:Configuration=Distribute /p:Platform="Win32" + +rem Start assembling the client package +RMDIR /S /Q dist +MKDIR dist\ +COPY /Y build\Distribute\UserInterface.exe dist\metin2.exe + +rem Copy over the data from the bin directory +xcopy bin\ dist\ /Y /Q +DEL /S dist\.gitignore +xcopy bin\BGM\ dist\BGM\ /E /Y /Q +xcopy bin\lib\ dist\lib\ /E /Y /Q +MKDIR dist\mark\ +xcopy bin\miles\ dist\miles\ /E /Y /Q +MKDIR dist\pack\ +COPY /Y bin\pack\Index dist\pack\ +COPY /Y bin\pack\*.rdch dist\pack\ +MKDIR dist\screenshot\ +xcopy bin\upload\ dist\upload\ /E /Y /Q + +rem Build and copy the archives +DEL /F /Q "bin\pack\*.eix" +DEL /F /Q "bin\pack\*.epk" + +FOR /d %%i IN ("bin\pack\*") DO ( + echo Packing %%i + %M2_PML_PATH% --nolog --parallel -p "%%i" +) +MOVE /Y bin\pack\*.eix dist\pack\ +MOVE /Y bin\pack\*.epk dist\pack\ diff --git a/doc/img/directx-error-1.png b/doc/img/directx-error-1.png new file mode 100644 index 00000000..cdaa2eb4 Binary files /dev/null and b/doc/img/directx-error-1.png differ diff --git a/doc/img/directx-error-2.png b/doc/img/directx-error-2.png new file mode 100644 index 00000000..f843da19 Binary files /dev/null and b/doc/img/directx-error-2.png differ