RU/Compiling MTASA: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 1: Line 1:
__NOTOC__
Для того чтобы успешно построить Multi Theft Auto из исходного кода, необходимо выполнить ряд шагов, которые мы объясним ниже.
Чтобы успешно собрать Multi Theft Auto из исходников, вам необходимо предпринять ряд шагов, о которых будет сказано ниже.


=== Перед началом ===
Пожалуйста, внимательно прочитайте инструкцию и не пропускайте ее части, если у вас нет опыта.


Перед тем, как пробовать собрать Multi Theft Auto, убедитесь, что у вас установлено следующее программное обеспечение и SDK:
== Начало работы ==
* Microsoft Visual Studio 2008 ([http://www.microsoft.com/downloads/ru-ru/details.aspx?familyid=fbee1648-7106-44a7-9649-6d9f6d58056e потребуется SP1])
* [http://msdn.microsoft.com/ru-ru/directx/aa937788.aspx Microsoft DirectX SDK] (потребуются только компоненты, связанные с Direct3D)
* [http://www.microsoft.com/en-us/download/details.aspx?id=22668 Microsoft Platform SDK] (не потребуется на Windows 7, нужны только компоненты DirectShow)


Установите [http://tortoisesvn.tigris.org/ TortoiseSVN], если у вас еще нет схожей программы, которая могла бы быть использована для закачки и распоряжения кодом.
Компиляция клиента Multi Theft Auto поддерживается только в Windows 10.


=== Получение новейшего исходного кода ===
Убедитесь что у вас установлено следующее программное обеспечение и SDK:


Чтобы получить новейший исходный код, вам надо будет произвести checkout нашего SVN репозитория своим SVN-клиентом (напр. TortoiseSVN) через использование функции '''Checkout''' с URL '''http://mtasa-blue.googlecode.com/svn/trunk/'''.
=== Visual Studio 2019 ===
[[File:Visual_Studio_Community.PNG|right|150px|link=https://www.visualstudio.com/vs/]]
# '''[https://visualstudio.microsoft.com/vs/ Скачайте Microsoft Visual Studio 2019]''' - убедитесь, что вы получаете "Community Edition", который является бесплатным.
# В контрольном списке установки, [[:File:VsFoundationClasses.png|убедитесь, что вы отметили эти два пункта]]:
## ''Разработка классических приложений на C++''
## ''MFC-библиотека C++ для новейшей версии Build Tools v142 (x86 и x64)''


=== Перед сборкой ===
Если вы не включите MFC библиотеку, то получите следующую ошибку:  <code>cannot open include file 'afxres.h'</code>.


Чтобы убедиться, что целевые папки имеют правильно установленные права, '''важно''' установить [http://nightly.mtasa.com/ новейший unstable nightly-билд] '''в точности''' в следующую папку:
Если вы допустили ошибку, то вы можете запустить установщик Visual Studio заново для изменения текущей программы. Нет необходимости удалять и переустанавливать программу.
    C:\Program Files\MTA San Andreas x.x\
Где x.x - версия, которую будете компилировать. Если у вас 64-битный windows, не забудьте убрать из пути (x86).


=== Процесс сборки ===
=== Microsoft DirectX SDK ===
[[File:DirectX_SDK.jpg|right|150px|link=http://web.archive.org/web/20200804044856/https://www.microsoft.com/en-us/download/details.aspx?id=23549]]
'''Скачайте Microsoft DirectX SDK (August 2009) (DXSDK_Aug09.exe):'''
* [https://archive.org/download/dxsdk_aug09/DXSDK_Aug09.exe Зеркало 1]
* [https://assets.mtasa.com/DXSDK/DXSDK_Aug09.exe Зеркало 2]


Для сборки исходного кода вам понадобится Microsoft Visual Studio. Откройте файл проекта в '''Shared/Core 2008.sln''' и начните сборку, используя одну из конфигураций проекта: ''Debug'' или ''Release''. Заметьте, что процесс в ''Debug'' режиме пойдет намного медленнее.
{| class="wikitable" style="margin-top: 0px; width: 70%; word-break: break-all;"
|+ Проверка файлов
|- style="vertical-align:bottom;"
! colspan="2" | Алгоритм и вариант
! Хэш
! Хэш-файл
|- style="text-align:center;vertical-align:center;"
| rowspan="6" | '''{{nowrap|SHA-3}}''' || ''SHA3-224'' || 8bfcdc03518d7edd34689534fd4d21291469ff2f2eb10437ad648c58 || [https://assets.mtasa.com/DXSDK/DXSDK_Aug09.exe.sha3-224 DXSDK_Aug09.exe.sha3-224]
|- style="text-align:center;vertical-align:center;"
| ''SHA3-256'' || 45bf3e08da3b3636ddb4f4a74243430f8d65759c074c0d79756ef810c4701c5a || [https://assets.mtasa.com/DXSDK/DXSDK_Aug09.exe.sha3-256 DXSDK_Aug09.exe.sha3-256]
|- style="text-align:center;vertical-align:center;"
| ''SHA3-384'' || b358e529963d6f5fd7f8bd4b530fb18f6a2e6a442009a54e981b2f9967589ed48150af310f283640d56f9b60d41100c9 || [https://assets.mtasa.com/DXSDK/DXSDK_Aug09.exe.sha3-384 DXSDK_Aug09.exe.sha3-384]
|- style="text-align:center;vertical-align:center;"
| ''SHA3-512'' || 43522187053af744250059ef69c0f3083cecd1157fe56daac16b9497ebc6fb5b525875144e42898367c55f757cffd3526f37074d544470578602a5a944a45a75 || [https://assets.mtasa.com/DXSDK/DXSDK_Aug09.exe.sha3-512 DXSDK_Aug09.exe.sha3-512]
|- style="text-align:center;vertical-align:center;"
| ''SHAKE128'' || 2a7c81bde9e867cbb5ef00b72ad8de66a3ee64c1d59f16465fa712479b6a84d28a02cc5ed08afa1d51e72011657453dbd4656cc9340d32e18179c39d03982dfc35c8f0c2a5c99e11dc74d0e23ed21b1e55f19c809a5a152bde39a2d46fcd12421f373f2d691ade1b57faf6c2ab7aded5a7d174f1f1c77127c0d6a1523b4775c569c5e1b4efa2da4bf2f708a96707a709e245a7f507382e69a81777919c90e95a091c0b699ce7f517 || [https://assets.mtasa.com/DXSDK/DXSDK_Aug09.exe.sha3-128000 DXSDK_Aug09.exe.sha3-128000]
|- style="text-align:center;vertical-align:center;"
| ''SHAKE256'' || 9c100dac5245a61774f3a2752bf9e941bdcd5654b18035155161c63b20936dfc9bd7334feb9a6fe9a99a65491161083b39ac3bd578e2cf4f90cba3c786e9924fa0611f65a725331b77b63e7c8b552e1637bc77531ba0f2c9cac72115b28e523929ede4e5b246a0755e8d5c4089d94bf16627fb08672cfffa523bba3d976489a0eec60d3c6a96ca2b || [https://assets.mtasa.com/DXSDK/DXSDK_Aug09.exe.sha3-256000 DXSDK_Aug09.exe.sha3-256000]
|- style="text-align:center;vertical-align:center;"
| rowspan="6" | '''{{nowrap|SHA-2}}''' || ''SHA-224'' || a3a74b89cccfe314b79418d5598aac5e94800221e5d945c74f15c004 || [https://assets.mtasa.com/DXSDK/DXSDK_Aug09.exe.sha2-224 DXSDK_Aug09.exe.sha2-224]
|- style="text-align:center;vertical-align:center;"
| ''SHA-256'' || 4ab1de69312f10f6b41310a5218d80c478bbd823bc0f86627318d690b128fb9f || [https://assets.mtasa.com/DXSDK/DXSDK_Aug09.exe.sha2-256 DXSDK_Aug09.exe.sha2-256]
|- style="text-align:center;vertical-align:center;"
| ''SHA-384'' || 254ed29c6ad2cadc6f013d2d51c0ac78a6bbe236a2c94ca99610eba8b2c1200d1a62c445ca9ee51bb09354875d5eca8a || [https://assets.mtasa.com/DXSDK/DXSDK_Aug09.exe.sha2-384 DXSDK_Aug09.exe.sha2-384]
|- style="text-align:center;vertical-align:center;"
| ''SHA-512'' || style="width: 60%;" | 736393c0dfa32221e229890f87eb330174d70dd2a02fa0cace303816d3e7a10a332a44129748de39665d1b339e627d6028c2080268f7afdd5240c447fec8ff0b || [https://assets.mtasa.com/DXSDK/DXSDK_Aug09.exe.sha2-512 DXSDK_Aug09.exe.sha2-512]
|- style="text-align:center;vertical-align:center;"
| ''SHA-512/224'' || 7e23d9ba916000782a17e23abf48e25237f45590cfe767aed9d79f10 || [https://assets.mtasa.com/DXSDK/DXSDK_Aug09.exe.sha2-512224 DXSDK_Aug09.exe.sha2-512224]
|- style="text-align:center;vertical-align:center;"
| ''SHA-512/256'' || 0c833a56046fe7e4213fcb1862c730acf313d1b8f60b51eebf64dc3e79730c1c || [https://assets.mtasa.com/DXSDK/DXSDK_Aug09.exe.sha2-512256 DXSDK_Aug09.exe.sha2-512256]
|- style="text-align:center;vertical-align:center;"
| colspan="2" | '''MD5''' || 66e5379ecf46b014688779621bcc677c || [https://assets.mtasa.com/DXSDK/DXSDK_Aug09.exe.md5 DXSDK_Aug09.exe.md5]
|- style="text-align:center;vertical-align:center;"
| colspan="2" | '''{{nowrap|SHA-1}}''' || 5b9b969ed7b6cf5534bb7350e44c09b3573b0e71 || [https://assets.mtasa.com/DXSDK/DXSDK_Aug09.exe.sha1 DXSDK_Aug09.exe.sha1]
|}
CRC32 e9f5c61d ([https://assets.mtasa.com/DXSDK/DXSDK_Aug09.exe.sfv DXSDK_Aug09.exe.sfv])<br>


=== Целевая папка и права ===
'''Примечание:''' перезагрузите компьютер после установки ''Microsoft DirectX SDK'', так как в противном случае переменная окружения '''DXSDK_DIR''' еще не будет доступна. После его перезапуска повторно запустите '''create-projects.bat'''


По умолчанию, текущая версия компилирует двоичные файлы в 'C:\Program Files\MTA San Andreas 1.4\'. Чтобы удостовериться, что с правами, записями в реестре и файлами поддержки все в порядке, вам следует установить в целевую папку [http://nightly.mtasa.com/ новейший unstable nightly-билд] и [http://mirror.mtasa.com/mtasa/data/ новейшие data файлы].
=== Git Клиент ===
[[File:Git_logo.png|left|32px|link=https://git-scm.com/]]


=== Получение новейшего сетевого модуля ===
Если вы хотите внести свой вклад в MTA, вам следует установить Git Клиент. Это позволит вам сотрудничать с нами, создавая собственные ветвления, которые вы сможете использовать в своей работе. Если вам не нравится командная строка, мы рекомендуем вам скачать и установить это: [https://desktop.github.com/ GitHub Desktop].


Так как сетевые модули '''netc.dll'''/'''net.dll''', предоставляемые клиенту, распространяются под другой лицензией, вам придется воспользоваться двоичными файлами, которые устанавливаются вместе с новейшим nightly-билдом. Если вы желаете запустить debug-версию MTA, ей потребуется debug-версия net dll. В связи с тем, что мы их не предоставляем, просто добавьте '_d' к имени dll-файла скачанного релиза.
Если вы хотите только скомпилировать исходный код и не заинтересованы в участии в MTA, вы можете загрузить исходный код напрямую (см. ниже).


= Запуск =
== Получение последнего исходного кода ==


Вы уже почти вплотную подошли к запуску построенного вами билда Multi Theft Auto.
Чтобы получить последний код, вам нужно будет загрузить последнюю копию нашего Git репозитория.<br>
Мы рекомендуем клонировать репозиторий в вашем Git клиенте, потому что вы можете легко извлекать оттуда любые обновления.


=== Запуск игрового клиента ===
* '''Репозиторий:''' [https://github.com/multitheftauto/mtasa-blue multitheftauto/mtasa-blue]
* '''.zip:''' [https://github.com/multitheftauto/mtasa-blue/archive/master.zip master.zip]
* '''.tar.gz:''' [https://github.com/multitheftauto/mtasa-blue/archive/master.tar.gz master.tar.gz]


Вновь проверьте, что вы установили [http://nightly.mtasa.com/ новейший unstable nightly-билд] и [http://mirror.mtasa.com/mtasa/data/ новейшие data файлы].
== Компиляция кода ==
# Выполните скрипт '''win-create-projects.bat'''
# Откройте файл '''MTASA.sln''' в '''Build''' директории
# Если вам предложат обновить клиент, нажмите '''Cancel'''
# Выполните компиляцию в Visual Studio с помощью '''Debug''' конфигурации (это может заняться несколько минут)
# Выполните скрипт '''win-install-data.bat'''


=== Запуск выделенного сервера ===
= Запуск ПО =


Если вы хотите запустить выделенный Multi Theft Auto сервер, вам понадобится установить ресурсы. Они нужны, так как предоставляют даже самые базовые возможности (напр. респавн) игрового процесса.
== Запуск клиента ==


Наш официальный репозиторий ресурсов расположен на хостинге Google Code: [http://code.google.com/p/mtasa-resources]. Рекомендуется время от времени проверять репозиторий на наличие ресурсов более новой версии или скачивать zip-версию со вкладки [http://mirror.mtasa.com/mtasa/resources/ Downloads]. Удостоверьтесь, что вы не используете каких-либо ресурсов от старых версий Multi Theft Auto, так как это '''точно''' вызовет проблемы.
Вы можете запустить свой клиент в '''Bin''' каталоге. Вы можете найти там ''Multi Theft Auto.exe'' и/или ''Multi Theft Auto_d.exe''. Суффикс ''_d'' указывает на отладочную сборку программного обеспечения.<br>
Кроме того, вы также можете запустить свой клиент внутри отладчика Visual Studio, если хотите исследовать трассировку стека или установить точки остановкм в интересных областях кода (Подробнее читайте в разделе "Отладка" ниже).


Если вы испытываете проблемы, связанные с отсутствием DLL-файлов (напр. libcurl.dll), то просто скопируйте их из data-архива клиента MTA, как описано выше.
== Запуск выделенного сервера ==
Если вы уже выполнили шаг 5 (Установка ресурсов) в пункте '''Компиляция кода''', то вы можете перейти к пункту '''Запуск сервера'''


= Вовлечение =
=== Установка последних ресурсов ===
Пожалуйста, просмотрите наши [[RU/Coding guidelines|установки программирования]] для получения информации по программированию в MTA.
Если вы хотите запустить выделенный сервер Multi Theft Auto, то вам придется установить все необходимые ресурсы. Они нужны, потому что они реализуют самые основные функции (Например, спавн игроков).


= Дополнительная информация =
Наш оффициальный репозиторий, откуда вы можете скачать все ресурсы [https://github.com/multitheftauto/mtasa-resources находится на GitHub]. Вы также можете скачать все последние ресурсы в [http://mirror.mtasa.com/mtasa/resources/ ZIP формате]. Убедитесь, что у вас есть все необходимые ресурсы для продолжения.


Если вам нужна еще какая-либо информация, зайдите на [http://bugs.mtasa.com/ багтрекер], [irc://irc.multitheftauto.com IRC канал].
=== Запуск сервера ===


[[en:Compiling MTASA]]
* Продолжение перевода скоро, а пока вы можете ознакомиться с [https://wiki.multitheftauto.com/wiki/Compiling_MTASA версией статьи на английском языке]
 
[[hu:Compiling MTASA]]
[[pt-br:Compilando o MTASA]]
[[ru:Compiling MTASA]]
[[Category: Development]]

Revision as of 18:53, 6 April 2021

Для того чтобы успешно построить Multi Theft Auto из исходного кода, необходимо выполнить ряд шагов, которые мы объясним ниже.

Пожалуйста, внимательно прочитайте инструкцию и не пропускайте ее части, если у вас нет опыта.

Начало работы

Компиляция клиента Multi Theft Auto поддерживается только в Windows 10.

Убедитесь что у вас установлено следующее программное обеспечение и SDK:

Visual Studio 2019

Visual Studio Community.PNG
  1. Скачайте Microsoft Visual Studio 2019 - убедитесь, что вы получаете "Community Edition", который является бесплатным.
  2. В контрольном списке установки, убедитесь, что вы отметили эти два пункта:
    1. Разработка классических приложений на C++
    2. MFC-библиотека C++ для новейшей версии Build Tools v142 (x86 и x64)

Если вы не включите MFC библиотеку, то получите следующую ошибку: cannot open include file 'afxres.h'.

Если вы допустили ошибку, то вы можете запустить установщик Visual Studio заново для изменения текущей программы. Нет необходимости удалять и переустанавливать программу.

Microsoft DirectX SDK

DirectX SDK.jpg

Скачайте Microsoft DirectX SDK (August 2009) (DXSDK_Aug09.exe):

Проверка файлов
Алгоритм и вариант Хэш Хэш-файл
SHA-3 SHA3-224 8bfcdc03518d7edd34689534fd4d21291469ff2f2eb10437ad648c58 DXSDK_Aug09.exe.sha3-224
SHA3-256 45bf3e08da3b3636ddb4f4a74243430f8d65759c074c0d79756ef810c4701c5a DXSDK_Aug09.exe.sha3-256
SHA3-384 b358e529963d6f5fd7f8bd4b530fb18f6a2e6a442009a54e981b2f9967589ed48150af310f283640d56f9b60d41100c9 DXSDK_Aug09.exe.sha3-384
SHA3-512 43522187053af744250059ef69c0f3083cecd1157fe56daac16b9497ebc6fb5b525875144e42898367c55f757cffd3526f37074d544470578602a5a944a45a75 DXSDK_Aug09.exe.sha3-512
SHAKE128 2a7c81bde9e867cbb5ef00b72ad8de66a3ee64c1d59f16465fa712479b6a84d28a02cc5ed08afa1d51e72011657453dbd4656cc9340d32e18179c39d03982dfc35c8f0c2a5c99e11dc74d0e23ed21b1e55f19c809a5a152bde39a2d46fcd12421f373f2d691ade1b57faf6c2ab7aded5a7d174f1f1c77127c0d6a1523b4775c569c5e1b4efa2da4bf2f708a96707a709e245a7f507382e69a81777919c90e95a091c0b699ce7f517 DXSDK_Aug09.exe.sha3-128000
SHAKE256 9c100dac5245a61774f3a2752bf9e941bdcd5654b18035155161c63b20936dfc9bd7334feb9a6fe9a99a65491161083b39ac3bd578e2cf4f90cba3c786e9924fa0611f65a725331b77b63e7c8b552e1637bc77531ba0f2c9cac72115b28e523929ede4e5b246a0755e8d5c4089d94bf16627fb08672cfffa523bba3d976489a0eec60d3c6a96ca2b DXSDK_Aug09.exe.sha3-256000
SHA-2 SHA-224 a3a74b89cccfe314b79418d5598aac5e94800221e5d945c74f15c004 DXSDK_Aug09.exe.sha2-224
SHA-256 4ab1de69312f10f6b41310a5218d80c478bbd823bc0f86627318d690b128fb9f DXSDK_Aug09.exe.sha2-256
SHA-384 254ed29c6ad2cadc6f013d2d51c0ac78a6bbe236a2c94ca99610eba8b2c1200d1a62c445ca9ee51bb09354875d5eca8a DXSDK_Aug09.exe.sha2-384
SHA-512 736393c0dfa32221e229890f87eb330174d70dd2a02fa0cace303816d3e7a10a332a44129748de39665d1b339e627d6028c2080268f7afdd5240c447fec8ff0b DXSDK_Aug09.exe.sha2-512
SHA-512/224 7e23d9ba916000782a17e23abf48e25237f45590cfe767aed9d79f10 DXSDK_Aug09.exe.sha2-512224
SHA-512/256 0c833a56046fe7e4213fcb1862c730acf313d1b8f60b51eebf64dc3e79730c1c DXSDK_Aug09.exe.sha2-512256
MD5 66e5379ecf46b014688779621bcc677c DXSDK_Aug09.exe.md5
SHA-1 5b9b969ed7b6cf5534bb7350e44c09b3573b0e71 DXSDK_Aug09.exe.sha1

CRC32 e9f5c61d (DXSDK_Aug09.exe.sfv)

Примечание: перезагрузите компьютер после установки Microsoft DirectX SDK, так как в противном случае переменная окружения DXSDK_DIR еще не будет доступна. После его перезапуска повторно запустите create-projects.bat

Git Клиент

Git logo.png

Если вы хотите внести свой вклад в MTA, вам следует установить Git Клиент. Это позволит вам сотрудничать с нами, создавая собственные ветвления, которые вы сможете использовать в своей работе. Если вам не нравится командная строка, мы рекомендуем вам скачать и установить это: GitHub Desktop.

Если вы хотите только скомпилировать исходный код и не заинтересованы в участии в MTA, вы можете загрузить исходный код напрямую (см. ниже).

Получение последнего исходного кода

Чтобы получить последний код, вам нужно будет загрузить последнюю копию нашего Git репозитория.
Мы рекомендуем клонировать репозиторий в вашем Git клиенте, потому что вы можете легко извлекать оттуда любые обновления.

Компиляция кода

  1. Выполните скрипт win-create-projects.bat
  2. Откройте файл MTASA.sln в Build директории
  3. Если вам предложат обновить клиент, нажмите Cancel
  4. Выполните компиляцию в Visual Studio с помощью Debug конфигурации (это может заняться несколько минут)
  5. Выполните скрипт win-install-data.bat

Запуск ПО

Запуск клиента

Вы можете запустить свой клиент в Bin каталоге. Вы можете найти там Multi Theft Auto.exe и/или Multi Theft Auto_d.exe. Суффикс _d указывает на отладочную сборку программного обеспечения.
Кроме того, вы также можете запустить свой клиент внутри отладчика Visual Studio, если хотите исследовать трассировку стека или установить точки остановкм в интересных областях кода (Подробнее читайте в разделе "Отладка" ниже).

Запуск выделенного сервера

Если вы уже выполнили шаг 5 (Установка ресурсов) в пункте Компиляция кода, то вы можете перейти к пункту Запуск сервера

Установка последних ресурсов

Если вы хотите запустить выделенный сервер Multi Theft Auto, то вам придется установить все необходимые ресурсы. Они нужны, потому что они реализуют самые основные функции (Например, спавн игроков).

Наш оффициальный репозиторий, откуда вы можете скачать все ресурсы находится на GitHub. Вы также можете скачать все последние ресурсы в ZIP формате. Убедитесь, что у вас есть все необходимые ресурсы для продолжения.

Запуск сервера