Kompilowanie MTASA: Difference between revisions
mNo edit summary |
(→Podstawowe Wymagania: Update section) |
||
Line 5: | Line 5: | ||
== Podstawowe Wymagania == | == Podstawowe Wymagania == | ||
Kompilacja klienta Multi Theft Auto jest oficjalnie wspierana tylko na systemie Windows 10. | |||
Upewnij się czy masz zainstalowane następujące programy i zestawy SDK: | Upewnij się czy masz zainstalowane następujące programy i zestawy SDK: | ||
=== Visual Studio | === Visual Studio 2022 === | ||
[[File:Visual_Studio_Community.PNG| | [[File:Visual_Studio_Community.PNG|right|150px|link=https://www.visualstudio.com/vs/]] | ||
''' | # '''[https://visualstudio.microsoft.com/vs/ Microsoft Visual Studio 2022]''' (Edycja Community jest darmowa). | ||
[https://visualstudio.microsoft.com/vs/ Microsoft Visual Studio | # Na liście podczas instalacji, [[:File:VSFoundationClasses_PL.png|zaznacz te dwa pola]] | ||
## ''Programowanie aplikacji klasycznych w języku C++'' | |||
( | ## Opcjonalny komponent (po prawej stronie na liście) ''C++ MFC dla najnowszych narzędzi kompilacji w wersji 143 (x86 & x64)'' | ||
' | Jeśli nie zaznaczysz komponentu MFC to otrzymasz błąd <code>cannot open include file 'afxres.h'</code> | ||
[[ | Jeśli popełnisz błąd, możesz ponownie uruchomić instalator, aby zmodyfikować aktualna instalację bez konieczności odinstalowywania i instalowania. | ||
=== Microsoft DirectX SDK === | |||
[[File:DirectX_SDK.jpg|right|150px|link=https://www.microsoft.com/en-us/download/details.aspx?id=23549]] | |||
'''Pobierz Microsoft DirectX SDK (August 2009)''' | |||
* [https://archive.org/download/dxsdk_aug09/DXSDK_Aug09.exe Link 1] | |||
* [https://mega.nz/file/pQJCiAJY#jBcYT6ZP4DMBpnm12BLRto9EQ-RjjpP3BWkSPanpvLI Link 2] | |||
{| class="wikitable" style="margin-top: 0px; width: 70%; word-break: break-all;" | |||
|+ Weryfikacja plików | |||
|- style="vertical-align:bottom;" | |||
! colspan="2" | Algorytm i wariant | |||
! Hash | |||
|- style="text-align:center;vertical-align:center;" | |||
| rowspan="6" | '''{{nowrap|SHA-3}}''' || ''SHA3-224'' || 8bfcdc03518d7edd34689534fd4d21291469ff2f2eb10437ad648c58 | |||
|- style="text-align:center;vertical-align:center;" | |||
| ''SHA3-256'' || 45bf3e08da3b3636ddb4f4a74243430f8d65759c074c0d79756ef810c4701c5a | |||
|- style="text-align:center;vertical-align:center;" | |||
| ''SHA3-384'' || b358e529963d6f5fd7f8bd4b530fb18f6a2e6a442009a54e981b2f9967589ed48150af310f283640d56f9b60d41100c9 | |||
|- style="text-align:center;vertical-align:center;" | |||
| ''SHA3-512'' || 43522187053af744250059ef69c0f3083cecd1157fe56daac16b9497ebc6fb5b525875144e42898367c55f757cffd3526f37074d544470578602a5a944a45a75 | |||
|- style="text-align:center;vertical-align:center;" | |||
| ''SHAKE128'' || 2a7c81bde9e867cbb5ef00b72ad8de66a3ee64c1d59f16465fa712479b6a84d28a02cc5ed08afa1d51e72011657453dbd4656cc9340d32e18179c39d03982dfc35c8f0c2a5c99e11dc74d0e23ed21b1e55f19c809a5a152bde39a2d46fcd12421f373f2d691ade1b57faf6c2ab7aded5a7d174f1f1c77127c0d6a1523b4775c569c5e1b4efa2da4bf2f708a96707a709e245a7f507382e69a81777919c90e95a091c0b699ce7f517 | |||
|- style="text-align:center;vertical-align:center;" | |||
| ''SHAKE256'' || 9c100dac5245a61774f3a2752bf9e941bdcd5654b18035155161c63b20936dfc9bd7334feb9a6fe9a99a65491161083b39ac3bd578e2cf4f90cba3c786e9924fa0611f65a725331b77b63e7c8b552e1637bc77531ba0f2c9cac72115b28e523929ede4e5b246a0755e8d5c4089d94bf16627fb08672cfffa523bba3d976489a0eec60d3c6a96ca2b | |||
|- style="text-align:center;vertical-align:center;" | |||
| rowspan="6" | '''{{nowrap|SHA-2}}''' || ''SHA-224'' || a3a74b89cccfe314b79418d5598aac5e94800221e5d945c74f15c004 | |||
|- style="text-align:center;vertical-align:center;" | |||
| ''SHA-256'' || 4ab1de69312f10f6b41310a5218d80c478bbd823bc0f86627318d690b128fb9f | |||
|- style="text-align:center;vertical-align:center;" | |||
| ''SHA-384'' || 254ed29c6ad2cadc6f013d2d51c0ac78a6bbe236a2c94ca99610eba8b2c1200d1a62c445ca9ee51bb09354875d5eca8a | |||
|- style="text-align:center;vertical-align:center;" | |||
| ''SHA-512'' || style="width: 60%;" | 736393c0dfa32221e229890f87eb330174d70dd2a02fa0cace303816d3e7a10a332a44129748de39665d1b339e627d6028c2080268f7afdd5240c447fec8ff0b | |||
|- style="text-align:center;vertical-align:center;" | |||
| ''SHA-512/224'' || 7e23d9ba916000782a17e23abf48e25237f45590cfe767aed9d79f10 | |||
|- style="text-align:center;vertical-align:center;" | |||
| ''SHA-512/256'' || 0c833a56046fe7e4213fcb1862c730acf313d1b8f60b51eebf64dc3e79730c1c | |||
|- style="text-align:center;vertical-align:center;" | |||
| colspan="2" | '''MD5''' || 66e5379ecf46b014688779621bcc677c | |||
|- style="text-align:center;vertical-align:center;" | |||
| colspan="2" | '''{{nowrap|SHA-1}}''' || 5b9b969ed7b6cf5534bb7350e44c09b3573b0e71 | |||
|- style="text-align:center;vertical-align:center;" | |||
| colspan="2" | '''{{nowrap|CRC32}}''' || e9f5c61d | |||
|} | |||
'''UWAGA:''' Po zainstalowaniu ''Microsoft DirectX SDK'' należy uruchomić ponownie komputer, ponieważ zmienna środowiskowa '''DXSDK_DIR''' nie będzie jeszcze dostępna. Po ponownym uruchomieniu otwórz ponownie plik '''create-projects.bat''' | |||
'''Nie można odnaleźć d3dx9.h''' | |||
Dodaj '''$(DXSDK_DIR)Include;''' do katalogów VC++ w projektach DirectX9GuiRenderer, GUI i Client Core. | |||
Listę katalogów VC++ znajdziesz wybierając projekt, a następnie używając skrótu klawiszowego ALT + ENTER (bez +). Wybierz właściwości konfiguracji i znajdziesz tam katalogi VC++, kliknij tam "Dołącz katalogi" i dodaj ''';$(DXSDK_DIR)Include;''' na końcu. | |||
'''Uwaga: Musisz zrobić to samo także dla kompilacji w trybie RELEASE''' | |||
'''Nie można odnaleźć d3dx9.lib''' | |||
Wykonaj takie same czynności jak opisano powyżej w przypadku błędu z plikiem '''d3dx9.h'''. Jednak zamiast ''';$(DXSDK_DIR)Include;''' musisz dodać ''';$(DXSDK_DIR)Lib/x86;''' w katalogach bibliotek. | |||
'''Uwaga: Musisz zrobić to samo także dla kompilacji w trybie RELEASE''' | |||
'''Błąd S1023''' | |||
[https://support.microsoft.com/en-us/kb/2728613 "S1023" błąd podczas instalacji DirectX SDK (June 2010)] | |||
''' | '''Nie można otworzyć pliku źródłowego "xxx.h" po aktualizacji do Visual Studio 2022''' | ||
Jeśli zaktualizowałeś Visual Studio do wersji 2022 i pracowałeś z MTA na wcześniejszej wersji to podczas kompilacji projektu możesz otrzymać błędy związane z plikami nagłówków. Głównie są to błędy, że nie udało się znaleźć lub otworzyć jakiegoś pliku np. stdio.h, stddef.h itd. | |||
Upewnij się, że masz zainstalowaną najnowszą wersję zestawu Windows 10 SDK (w instalatorze Visual Studio na liście komponentów) i uruchom ponownie komputer. | |||
Jeśli masz zainstalowany najnowszy zestaw i po ponownym uruchomieniu problem wciąż występuje to zamknij Visual Studio, przejdź do folderu "Build" (tam gdzie znajduje się folder mtasa-blue) i usuń folder o nazwie ".vs". | |||
=== Klient Git === | === Klient Git === | ||
[[File:Git_logo.png|left|32px|link=https://git-scm.com/]] | [[File:Git_logo.png|left|32px|link=https://git-scm.com/]] | ||
Jeśli chcesz współpracować przy MTA, powinieneś zainstalować GIT. Pozwoli Ci to współpracować z nami poprzez tworzenie nowych gałęzi i przesyłanie zmian do nich we własnym repozytorium (fork). | |||
Jeśli korzystanie z konsoli jest dla Ciebie niekomfortowe, zalecamy korzystanie z [https://desktop.github.com/ Github Desktop] | |||
[https:// | |||
Jeśli chcesz tylko skompilować kod źródłowy i nie zamierzasz współpracować razem z nami, możesz pobrać kod źródłowy bezpośrednio z linku poniżej, bez konieczności instalowania GIT. | |||
== Zdobycie najświeższego kodu źródłowego == | == Zdobycie najświeższego kodu źródłowego == |
Revision as of 15:14, 28 April 2023
Aby pomyślnie skompilować Multi Theft Auto z kodu źródłowego, niezbędne jest wykonanie kilku kroków, które przedstawimy poniżej.
Przeczytaj uważnie poniższe instrukcje i nie pomijaj żadnej z nich, jeśli nie masz doświadczenia.
Podstawowe Wymagania
Kompilacja klienta Multi Theft Auto jest oficjalnie wspierana tylko na systemie Windows 10.
Upewnij się czy masz zainstalowane następujące programy i zestawy SDK:
Visual Studio 2022
- Microsoft Visual Studio 2022 (Edycja Community jest darmowa).
- Na liście podczas instalacji, zaznacz te dwa pola
- Programowanie aplikacji klasycznych w języku C++
- Opcjonalny komponent (po prawej stronie na liście) C++ MFC dla najnowszych narzędzi kompilacji w wersji 143 (x86 & x64)
Jeśli nie zaznaczysz komponentu MFC to otrzymasz błąd cannot open include file 'afxres.h'
Jeśli popełnisz błąd, możesz ponownie uruchomić instalator, aby zmodyfikować aktualna instalację bez konieczności odinstalowywania i instalowania.
Microsoft DirectX SDK
Pobierz Microsoft DirectX SDK (August 2009)
Algorytm i wariant | Hash | |
---|---|---|
SHA-3 | SHA3-224 | 8bfcdc03518d7edd34689534fd4d21291469ff2f2eb10437ad648c58 |
SHA3-256 | 45bf3e08da3b3636ddb4f4a74243430f8d65759c074c0d79756ef810c4701c5a | |
SHA3-384 | b358e529963d6f5fd7f8bd4b530fb18f6a2e6a442009a54e981b2f9967589ed48150af310f283640d56f9b60d41100c9 | |
SHA3-512 | 43522187053af744250059ef69c0f3083cecd1157fe56daac16b9497ebc6fb5b525875144e42898367c55f757cffd3526f37074d544470578602a5a944a45a75 | |
SHAKE128 | 2a7c81bde9e867cbb5ef00b72ad8de66a3ee64c1d59f16465fa712479b6a84d28a02cc5ed08afa1d51e72011657453dbd4656cc9340d32e18179c39d03982dfc35c8f0c2a5c99e11dc74d0e23ed21b1e55f19c809a5a152bde39a2d46fcd12421f373f2d691ade1b57faf6c2ab7aded5a7d174f1f1c77127c0d6a1523b4775c569c5e1b4efa2da4bf2f708a96707a709e245a7f507382e69a81777919c90e95a091c0b699ce7f517 | |
SHAKE256 | 9c100dac5245a61774f3a2752bf9e941bdcd5654b18035155161c63b20936dfc9bd7334feb9a6fe9a99a65491161083b39ac3bd578e2cf4f90cba3c786e9924fa0611f65a725331b77b63e7c8b552e1637bc77531ba0f2c9cac72115b28e523929ede4e5b246a0755e8d5c4089d94bf16627fb08672cfffa523bba3d976489a0eec60d3c6a96ca2b | |
SHA-2 | SHA-224 | a3a74b89cccfe314b79418d5598aac5e94800221e5d945c74f15c004 |
SHA-256 | 4ab1de69312f10f6b41310a5218d80c478bbd823bc0f86627318d690b128fb9f | |
SHA-384 | 254ed29c6ad2cadc6f013d2d51c0ac78a6bbe236a2c94ca99610eba8b2c1200d1a62c445ca9ee51bb09354875d5eca8a | |
SHA-512 | 736393c0dfa32221e229890f87eb330174d70dd2a02fa0cace303816d3e7a10a332a44129748de39665d1b339e627d6028c2080268f7afdd5240c447fec8ff0b | |
SHA-512/224 | 7e23d9ba916000782a17e23abf48e25237f45590cfe767aed9d79f10 | |
SHA-512/256 | 0c833a56046fe7e4213fcb1862c730acf313d1b8f60b51eebf64dc3e79730c1c | |
MD5 | 66e5379ecf46b014688779621bcc677c | |
SHA-1 | 5b9b969ed7b6cf5534bb7350e44c09b3573b0e71 | |
CRC32 | e9f5c61d |
UWAGA: Po zainstalowaniu Microsoft DirectX SDK należy uruchomić ponownie komputer, ponieważ zmienna środowiskowa DXSDK_DIR nie będzie jeszcze dostępna. Po ponownym uruchomieniu otwórz ponownie plik create-projects.bat
Nie można odnaleźć d3dx9.h
Dodaj $(DXSDK_DIR)Include; do katalogów VC++ w projektach DirectX9GuiRenderer, GUI i Client Core. Listę katalogów VC++ znajdziesz wybierając projekt, a następnie używając skrótu klawiszowego ALT + ENTER (bez +). Wybierz właściwości konfiguracji i znajdziesz tam katalogi VC++, kliknij tam "Dołącz katalogi" i dodaj ;$(DXSDK_DIR)Include; na końcu. Uwaga: Musisz zrobić to samo także dla kompilacji w trybie RELEASE
Nie można odnaleźć d3dx9.lib
Wykonaj takie same czynności jak opisano powyżej w przypadku błędu z plikiem d3dx9.h. Jednak zamiast ;$(DXSDK_DIR)Include; musisz dodać ;$(DXSDK_DIR)Lib/x86; w katalogach bibliotek. Uwaga: Musisz zrobić to samo także dla kompilacji w trybie RELEASE
Błąd S1023
"S1023" błąd podczas instalacji DirectX SDK (June 2010)
Nie można otworzyć pliku źródłowego "xxx.h" po aktualizacji do Visual Studio 2022
Jeśli zaktualizowałeś Visual Studio do wersji 2022 i pracowałeś z MTA na wcześniejszej wersji to podczas kompilacji projektu możesz otrzymać błędy związane z plikami nagłówków. Głównie są to błędy, że nie udało się znaleźć lub otworzyć jakiegoś pliku np. stdio.h, stddef.h itd.
Upewnij się, że masz zainstalowaną najnowszą wersję zestawu Windows 10 SDK (w instalatorze Visual Studio na liście komponentów) i uruchom ponownie komputer. Jeśli masz zainstalowany najnowszy zestaw i po ponownym uruchomieniu problem wciąż występuje to zamknij Visual Studio, przejdź do folderu "Build" (tam gdzie znajduje się folder mtasa-blue) i usuń folder o nazwie ".vs".
Klient Git
Jeśli chcesz współpracować przy MTA, powinieneś zainstalować GIT. Pozwoli Ci to współpracować z nami poprzez tworzenie nowych gałęzi i przesyłanie zmian do nich we własnym repozytorium (fork). Jeśli korzystanie z konsoli jest dla Ciebie niekomfortowe, zalecamy korzystanie z Github Desktop
Jeśli chcesz tylko skompilować kod źródłowy i nie zamierzasz współpracować razem z nami, możesz pobrać kod źródłowy bezpośrednio z linku poniżej, bez konieczności instalowania GIT.
Zdobycie najświeższego kodu źródłowego
Aby zdobyć najświeższy kod źródłowy, będziesz musiał pobrać ostatnią kopie naszego repozytorium Git.
Zalecamy sklonować nasze repozytorium w twoim kliencie Git, ponieważ możesz łatwo pobierać z niego dowolne aktualizacje.
- Repozytorium: multitheftauto/mtasa-blue
- .zip: master.zip
- .tar.gz: master.tar.gz
Kompilacja kodu
- Uruchom skrypt (otwórz plik) win-create-projects.bat
- Otwórz plik rozwiązania MTASA.sln w folderze Build
- Jeśli zostaniesz zapytany o aktualizacje projektu, kliknij Anuluj
- Skompiluj kod w Visual Studio na konfiguracji Debug (może to potrwać kilka minut)
- Uruchom skrypt (otwórz plik) win-install-data.bat
Uruchamianie programu
Uruchamianie klienta MTA
Możesz uruchomić swojego klienta w folderze Bin. Możesz znaleźć tutaj pliki Mutli Theft Auto.exe i/lub Multi Theft Auto_d.exe. Przyrostek _d oznacza kompilacje developerską (konfiguracja debug) programu. Ponadto, możesz także uruchomić swojego klienta w debuggerze z Visual Studio jeśli chcesz przeanalizować układ stosu lub ustawić punkty przerwania w interesujących regionach kodu (przeczytaj więcej poniżej w sekcji Debugowanie).
Uruchamianie dedykowanego serwera
Jeśli już wykonałeś krok 5 (Instalacja zasobów) w sekcji Kompilacja kodu aby zainstalować zasoby, możesz przejść do sekcji Uruchamianie serwera lokalnego.
Instalacja najświeższych zasobów
Jeśli chcesz uruchomić dedykowany serwer Multi Theft Auto, musisz zainstalować wymagane zasoby. Są one niezbędne, ponieważ dodają podstawowe funkcje (np. odradzanie graczy) aby móc grać.
Nasze oficjalne repozytorium zasobów: znajdujące się w serwisie GitHub. Możesz pobrać najświeższe zasoby z tego repozytorium lub pobierz archiwum .zip. Upewnij się, że masz najnowszą paczkę zasobów.
Uruchamianie serwera
Aby uruchomić serwer, otwórz plik MTA Server.exe w folderze Bin/server. Przyrostek _d oznacza kompilację developerską (konfigurację debug) programu.
Możesz także uruchomić serwer w wersji developerskiej (debug); MTA Server_d.exe przy pomocy debuggera Visual Studio (jak przy pisaniu, możesz zrobić to poprzez kliknięcie prawego przycisku myszki na projekcie Launcher, po stronie serwera (Rozwiń projekt Server) i wybranie Uruchom lokalną instancję w zakładce Debugger), ale możesz także dołączyć do działającego debuggera serwera MTA (zobacz więcej niżej, w sekcji Debuggowanie).
Debugging
If you already compiled the code in the Debug configuration then continue reading, if not, then go up to Compilling the code and follow the steps for a Debug build.
You can either launch MTA yourself and attach any debugger you want to use (also applies to the Visual Studio debugger) or you start a local debugging session in Visual Studio.
How to enable breakpoints
If you choose to run MTA with Visual Studio then you should also attach the debugger to the executable gta_sa.exe (press CTRL + ALT + P in Visual Studio) - otherwise your
breakpoints will not work for anything beside the MTA Launcher project.
Extending timeout duration
When you use breakpoints during debugging, you may get kicked by the server due to timeout, because the client is frozen. To prevent this, create the timeout.longtime file in your Bin/server/ directory. The content of the file is the new timeout duration in seconds, so make sure you type a huge number in there. If you keep the file empty, the timeout will be set to 120 seconds.
ReAttach for Visual Studio
You can use ReAttach to re-attach the debugger to the gta_sa.exe executable whenever you start your local debugger in Visual Studio.
Chęci współpracy
Prosimy, sprawdź nasze Coding guidelines po więcej informacji o praktykach kodowania.
Dodatkowe informacje
Jeśli potrzebujesz więcej informacji, sprawdź nasz bug tracker lub Discord.
Błędy
CL38 error. [nie znaleziono netc_d.dll]
Rozwiązanie: Usuń Mutli Theft Auto_d.exe i naciśnij 'Kompiluj ponownie' w Visual Studio.
Po sklonowaniu repozytorium, nie można skompilować projektu
Rozwiązanie: Otwórz plik win-create-projects.bat w głównym katalogu.
CL17 Load field. Prosimy, upewnij się, że najnowsze pliki danych zostały zainstalowane poprawnie
Rozwiązanie: Otwórz plik win-install-data.bat w głównym katalogu.