Подробный гайд по выдаче доната через консоль в MTA:SA

В MTA:SA нет универсальной команды выдачи доната. Используйте консоль без слэша, вызов экспортов или правку БД. Точную команду ищите в скриптах сборки.

2026.04.28                  


Подробный гайд по выдаче доната через консоль в MTA:SAПодробный гайд по выдаче доната через консоль в MTA:SA

Важно сразу обозначить:

в самом MTA:SA нет встроенной универсальной команды для выдачи доната. Вся экономика, магазин и донат-система реализуются через кастомные ресурсы (скрипты на Lua), которые устанавливаются владельцем сервера. Поэтому точный синтаксис зависит исключительно от того, какой ресурс или сборка у вас запущена.

1. Как узнать точную команду на вашем сервере

  1. Зайдите в папку сервера -> mods/deathmatch/resources/
  2. Найдите папку с названием, похожим на donate, shop, vip, economy, store.
3. Откройте meta.xml или server.lua и поищите:
  • addCommandHandler("..." -> это команды, которые ресурс регистрирует.
  • exports["название_ресурса"]:giveDonate или аналог -> это Lua-функции, которые можно вызвать через консоль.
  • Файлы README.md, config.lua, settings.xml -> там часто описан синтаксис.
  1. Если вы используете известную сборку (MTA:SA RP, Crime Life, Arizona MTA, и т.д.), гуглите: "[Название сборки] команда выдачи доната через консоль".

2. Как выдавать донат через консоль сервера

Консоль сервера (mta-server.exe на Windows или терминал/SSH на Linux) не использует слэш /. Слэш только для внутриигрового чата.

Вариант А: Прямая команда (самый частый)

В большинстве ресурсов администраторы регистрируют команды вида:

adddonate <ник_или_ID> <количество>
givedonate <ник> <сумма>
donate add <ник> <сумма>
setdonate <ник> <сумма>

Пример ввода в консоли сервера:

> adddonate servermon.ru 500
[DONATE] Игроку servermon.ru начислено 500 донат-валюты.

Вариант Б: Вызов через call (если команда не зарегистрирована)

Если ресурс не добавлял консольную команду, но экспортирует функцию:

call donate giveDonate servermon.ru 500

Где donate -> имя ресурса (папка в resources/), giveDonate -> функция в server.lua.

3. Настройка доступа и RCON (для удалённой консоли)

По умолчанию консоль запущенного сервера имеет полные права.

Если вы подключаетесь удалённо:

  1. Откройте mtaserver.conf в корне сервера.

2. Найдите и настройте:

   <rcon_enabled>1</rcon_enabled>
   <rcon_password>Очень_Сложный_Пароль</rcon_password>
   <rcon_port>30112</rcon_port>
  1. Перезапустите сервер.
  2. Подключитесь через telnet IP_сервера порт или веб-консоль (например, mPanel, WebAdmin).

Важно:

Проверьте acl.xml: группа Console или Admin должна иметь права function.callResource и доступ к командам доната.

4. Прямое редактирование БД (если консоль не срабатывает)

  • Многие сервера хранят донат в MySQL/SQLite.

Если ресурс не реагирует на команды, можно править базу напрямую, но с осторожностью:

  1. Подключитесь к БД через phpMyAdmin, DBeaver или терминал.
  2. Найдите таблицу: accounts, players, users, donate_data (название зависит от ресурса).
  3. Выполните запрос (пример для MySQL):
   UPDATE players SET donate = donate + 500 WHERE name = 'servermon.ru';
  1. Перезапустите ресурс доната или попросите игрока перезайти, чтобы обновить кэш.

Важно:

Перед любыми правками делайте бэкап базы. Прямые изменения могут не синхронизироваться с кэшем Lua или нарушить логи автодоната.

5. Чек-лист безопасности и стабильности

  • Всегда тестируйте выдачу на тестовом аккаунте.
  • Включите логирование: в mtaserver.conf <log_level>3</log_level>.
  • Не передавайте пароль от RCON и доступ к БД третьим лицам.
  • Если используете автодонат через сайт, проверьте защиту от повторных веб-хуков (идемпотентность, проверка transaction_id).
  • Фиксируйте выдачи в отдельном логе или таблице (donate_logs), чтобы избежать споров с игроками.

6. Что делать, если команда не работает?

  1. Откройте logs/console.log и logs/server.log -> ищите строки ERROR, WARNING или название ресурса доната.
  2. Убедитесь, что ресурс запущен: в консоли введите resources и найдите его в списке [started].
  3. Проверьте, онлайн ли игрок. Некоторые ресурсы выдают донат только онлайн-игрокам.
4. Напишите разработчику ресурса или в поддержку вашей сборки, приложив:
  • Название ресурса/сборки
  • Версию MTA сервера
  • Ошибку из логов