Skip to content
This repository has been archived by the owner on Feb 12, 2023. It is now read-only.
/ mtaw Public archive

MTA:World - game mode for Multi Theft Auto

License

Notifications You must be signed in to change notification settings

prineside/mtaw

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MTA:World

MTA:World - игровой режим для Multi Theft Auto, который планировалось запустить на серверах сети Prineside, и о котором шла речь в группе VK. Разработка приостановлена, подробности можно прочитать в группе.

Установка и запуск

Разработка мода производилась на ОС Windows 7, поэтому вспомогательные скрипты и исполняемые файлы, скорее всего, будут работать только на этой ОС. Для разработки на других ОС необходимо поправить пути и зависимости в скриптах, это не должно занять много времени.

Готовые к релизу скрипты и ресурсы можно использовать на любой ОС, которую поддерживает сервер MTA.

Необходимые ресурсы

Подготовка и запуск

  • Установите клиент и сервер MTA
  • Установите сервер MySQL, создайте базу данных с названием mtaw и импортируйте (выполните) mtaw.sql. Для удобства можно использовать клиент MySQL, например HeidiSQL
  • Распакуйте интерпретатор PHP в любой каталог (например, C:\php), пропишите путь к интерпретатору в PATH инструкция
  • Установите Node.js, откройте консоль и выполните следующие команды:
    • set NODE_PATH=%USERPROFILE%\node_modules
    • npm install clean-css
    • npm install uglify-js
  • Скачайте компилятор для своей ОС из сайта MTA и поместите в каталог compiler (должен быть файл compiler/luac.exe или compiler/luac)
  • (опционально) Установите Git
  • Скопируйте содержимое каталога resources в [Путь установки сервера MTA]/mods/deathmatch/resources
  • Замените файлы [Путь установки сервера MTA]/mods/deathmatch/acl.xml и [Путь установки сервера MTA]/mods/deathmatch/mtaserver.conf файлами из корня репозитория
  • Отредактируйте resources/MTAW/compiler/db-handles-debug.xml и resources/MTAW/compiler/db-handles-release.xml, смените login, password на данные, указанные при установке MySQL. (разные конфигурации будут использованы в зависимости от того, установлен ли RELEASE в compiler.php - debug для локальной машины, где происходит разработка, release для реального сервера, где, скорее всего, установлены другие логин и пароль)
  • Ознакомьтесь с комментариями в файле MTAW/compile.php, при необходимости отредактируйте его. Запустите compile.bat двойным кликом (либо командой php compile.php в каталоге MTAW). Будет произведена подготовка файлов к запуску на сервере, скомпилированы клиентские скрипты, сгенерирован мета-файл ресурса и установлены данные для подключения к базе. Если появится ошибка вида "php не является исполняемым файлом...", убедитесь, что вы установили интерпретатор PHP и прописали PATH к php.exe (см. выше)
  • Запустите MTA Server.exe и подождите, пока сервер полностью загрузится. При необходимости, исправьте ошибки, которые возникнут

Генерация документации MTAW реализован нестандартным путем, все его компоненты находятся в одном одноименном ресурсе. Причина такой структуры - излишние сложности, которые возникают при взаимодействии разных ресурсов между собой.

Для того, чтобы разобраться с модом было легче, весь код написан с учетом определенных правил оформления и прокомментирован. Кроме того, был написан небольшой генератор документации (типа javadoc), который способен сгенерировать интерактивный HTML-файл для более удобного изучения структуры мода (при условии, что разработчик придерживается всех правил оформления кода). Для генерации документации, запустите файл inspect.bat, через несколько секунд рядом появится файл inspector.html с документацией, который можно открыть любым браузером. Рекомендуется прочитать комментарии в файле inspect.php перед началом разработки, если вы хотите генерировать документацию в будущем.

Ответы на некоторые вопросы, которые могут интересовать многих

В репозитории размещены другие ресурсы, не только MTAW, что они здесь делают?

Другие ресурсы (возможно, не все), используются ресурсом MTAW. Они были разработаны другими людьми, и получены из сайта ресурсов для MTA. Ресурсы размещены в этом репозитории для (чуть) более простого решения проблем с зависимостями у тех, кто будет пытаться запустить мод MTAW. Ресурсы могут быть немного изменены или вовсе устарели. Все права на ресурсы принадлежат их авторам.

Я могу использовать исходный код / ресурсы MTA:W как захочу?

MTA:W распространяется по лицензии MIT (файл LICENSE в корне репозитория). Это значит, что код и ресурсы можно бесплатно использовать в любых целях - модифицировать, распространять, использовать на своих серверах в коммерческих целях и даже продавать, но никто не дает гарантии их правильной работы и не отвечает за любые последствия их использования.

Не получается запустить мод / выдает ошибку / работает неправильно, к кому обратиться за помощью?

По вопросам, которые относятся к серверу и исходному коду мода (написанному на Lua), лучше всего обратиться на официальный форум MTA. Если возникают проблемы при использовании вспомогательных скриптов или программ, внимательно изучите инструкции в данном README и почитайте комментарии в скриптах - возможно, у вас не установлены какие-то зависимости.

Что здесь делают PHP-скрипты?

Некоторые вспомогательные скрипты написаны на PHP, потому что я к нему привык и он хорошо подходит для такого рода задач (а еще потому, что у меня всегда есть под рукой интерпретатор PHP). Обычно в таких целях используется Python или более специализированные инструменты, и если они подходят вам больше - желаю успехов с портированием на другой язык, весь код открыт и прокомментирован.

Не могу войти / зарегистрироваться на своем сервере

Регистрация не была реализована. Мод изначально разрабатывался под сеть Prineside, где аутентификация пользователей реализована с помощью других технологий (игровые моды не работают напрямую с базой данных). Сейчас мод может только читать таблицу базы данных accounts, для добавления новых игроков нужно добавить записи в эту таблицу (id - уникальный идентификатор игрока, автоинкрементное поле, login - логин игрока, tester - установить в 1 для доступа к серверу во время тестирования, blowfish - случайная строка ('соль'), которая используется для шифрования пароля (16 рандомных символов, для каждого игрока свои), hash - хэш-строка из 32 символов, которая содержит зашифрованный пароль по алгоритму md5( md5( password ) + blowfish ). Для примера, в таблицу уже добавлен один игрок с логином admin и паролем password. Никогда не храните пароли в открытом виде!

About

MTA:World - game mode for Multi Theft Auto

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published