Библиотека Newmodels v5.2.0
Данная ресурс-библиотека для MTA использует клиентские модели (функции engineRequestModel и аналогичные) для добавления новых пешеходов (скинов), транспортных средств и объектов.
Автор: Fernando A Rocha
Основные возможности:
- Просто поместите ваши моды (файлы dff/txd/col) в соответствующие папки, которые автоматически определяются системой.
- Все добавленные модели синхронизируются со всеми игроками на сервере.
- Легко интегрируйте новые идентификаторы моделей в существующие скрипты с помощью простого трюка.
- Ресурс минималистичен, оптимизирован и надежен.
Основная информация
Вам следует беспокоиться о двух вещах:1. Добавление новых моделей (DFF/TXD/COL)
Основная концепция этой системы заключается в том, что вы можете добавлять новые произвольные числовые идентификаторы, представляющие новые модели.например ID -3 для нового скина гангстера
например, ID -2 для новой модели внедорожника
Новые идентификаторы могут быть любым числом (положительным или отрицательным), если только они не конфликтуют с существующими или зарезервированными идентификаторами игр. Скрипт предупредит вас, если вы используете неверные числа.
Игровая модель может быть добавлена с 3 различными файлами для определенного типа сущности. Поддерживаемые типы моделей:
ped(скины): файлы DFF и TXD
vehicle: Файлы DFF и TXD
object: Файлы DFF, COL и TXD
Структура файлов и папок:
Вариант №1 (новые модели не имеют названий):models/<model_type>/<base_model_id>/<new_model_id>.<file_extension>
например models/ped/7/-3.txd напримерmodels/ped/7/-3.dff
Возможность №2 (новые модели имеют собственные названия в целях: организации): models/<model_type>/<base_model_id>/<new_model_name>/<new_model_id>.<file_extension>
например models/ped/7/Mafioso 1/-2.txd | models/ped/7/Mafioso 1/-2.dff
Поддержка NandoCrypt (опционально)
Вы можете использовать NandoCrypt для шифрования ваших файлов модов. Поместите их с расширением файла, .nandocrypt, чтобы они автоматически распознавались. Вы можете настроить расширение файла в shared_local.lua.
nando_decrypter В ресурс включен тестовый скрипт, а также мод, состоящий из 2 зашифрованных файлов ( -5.dff.nandocryptи -5.txd.nandocrypt). Чтобы использовать собственные моды, вам придется заменить nando_decrypter их собственным скриптом дешифратора, сгенерированным инструментом NandoCrypt.
Дополнительная настройка
Модели можно настраивать с помощью <new_model_id>.txt файлов.
2. Использование новых моделей
1. MTA выделяет неиспользуемые идентификаторы на стороне клиента для загрузки новых моделей (спасибо engineRequestModel). Эти идентификаторы непредсказуемы, и вы не можете на них положиться.2. Помните, что распределение модели происходит только на стороне клиента, поэтому сервер не имеет понятия о каких-либо новых идентификаторах. Как разработчик, у вас есть 2 варианта использовать новые идентификаторы, которые вы определили в своих скриптах .
3. Ознакомьтесь с примерами ресурсов , чтобы понять, как использовать следующие методы.
Сервер VS Клиент
Все экспортированные функции newmodels являются общими, что означает, что вы можете использовать их как в клиентских, так и в серверных скриптах. Их поведение отличается.
Функции на стороне сервера , в частности, для настройки пользовательской модели (или создания элемента с пользовательской моделью), сохранят пользовательские модели элементов, присутствующих на вашем сервере, в table, а затем синхронизируют их с помощью triggerClientEventдля всех клиентов в сети. Это означает, что, например, создание транспортного средства, которое является новым вертолетом, автоматически сделает его этой моделью для всех игроков на вашем сервере.
Напротив, клиентские функции не выполняют никакой синхронизации данных с другими клиентами. Пользовательские модели, заданные клиентскими скриптами, применяются только к клиенту, который запускает эти скрипты. Это означает, что, например, в сценарии магазина одежды вы можете изменить модель игрока на любую пользовательскую модель с помощью клиентских функций, и только этот игрок увидит изменение модели в своей игре.
Импорт функций
Самый простой способ — использовать следующий метод в начале вашего скрипта для загрузки необходимых функций.
Код:
loadstring( exports['newmodels_azul']:import() )()
Это изменяет функции MTA, такие как createVehicleили setElementModelдля работы с новыми идентификаторами, а также добавляет новые функции, такие как getElementBaseModelи getElementCustomModel, которые вы можете использовать.
Проверьте shared_exported.lua скрипт, чтобы узнать, что импортируется.
Пример использования:
Код:
local vehicle = createVehicle(id, x, y, z, rx, ry, rz, numberplate)
Вызов экспортированных функций
Если вы не хотите loadstringимпортировать функции, вы можете вызвать их напрямую.
Проверьте meta.xml файл, чтобы увидеть экспортированные функции.
Пример использования:
Код:
local vehicle = exports['newmodels_azul']:createVehicle(id, x, y, z, rx, ry, rz, numberplate)
Важные советы
Это передовая практика и общие советы.- Помните, что ваши модели должны хорошо работать с GTA: San Andreas с точки зрения оптимизации.
- Всегда проводите тестирование с несколькими плеерами и разными характеристиками ПК.
- Элемент, созданный на сервере с пользовательской моделью, синхронизирует свою пользовательскую модель со всеми клиентами.
- Полезно для создания транспортных средств, настройки скинов игроков и NPC.
- Элемент, созданный на стороне клиента с помощью пользовательской модели, не будет синхронизироваться с другими клиентами, то есть пользовательскую модель увидит только клиент, запустивший код.
- Полезно для предварительного просмотра моделей и создания объектов, что лучше всего работает на стороне клиента.
Часто задаваемые вопросы (FAQ)
Для кого предназначена эта система? | Владельцы серверов и разработчики, стремящиеся расширить лимиты на своем сервере MTA. Например, если лимит на автомобили исчерпан, эта библиотека поможет обойти ограничения и присвоить новые идентификаторы (ID/ИД). |
Будут ли игроки автоматически загружать файлы (DFF/TXD/COL) добавленных моделей? | Да, meta.xml конфигурация включает все эти файлы в папке моделей, поэтому они автоматически загружаются игроками при подключении к серверу. |
Могу ли я зашифровать файлы своих моделей и скрыть ключ дешифрования, чтобы игроки не смогли их украсть? | Да, вы можете использовать NandoCrypt, который изначально поддерживается этой системой. Скачать можно на данном форуме. |
Как идентифицируются добавленные модели? | Новые модели идентифицируются числовыми идентификаторами, которые вы определяете. Эти идентификаторы могут быть любыми числами (положительными или отрицательными), если только они не конфликтуют с существующими или зарезервированными идентификаторами игр. Они являются чисто произвольными и не обязательно должны быть последовательными. |
Почему для идентификации используются новые идентификаторы моделей, а не строки/имена? | MTA использует числовые идентификаторы для идентификации моделей, поэтому эта система следует той же конвенции. Работать с числами эффективнее и проще, чем со строками. |
Как добавлять модели с помощью этой системы? | По сути, вы добавляете новые модели, помещая файлы DFF/TXD/COL в папку моделей с определенными именами файлов и папок. |
Почему новые модели добавляются на стороне клиента в MTA, а на стороне сервера этой логики нет? | Распределение модели MTA происходит на стороне клиента, поэтому сервер не имеет понятия о каких-либо новых идентификаторах. Распределение модели на стороне сервера все еще не реализовано в MTA (но может быть реализовано в будущем), поэтому эта система предоставляет способ обойти это ограничение. |