Подробный гайд по выдаче доната через консоль в MTA:SA
Важно сразу обозначить:
в самом MTA:SA нет встроенной универсальной команды для выдачи доната. Вся экономика, магазин и донат-система реализуются через кастомные ресурсы (скрипты на Lua), которые устанавливаются владельцем сервера. Поэтому точный синтаксис зависит исключительно от того, какой ресурс или сборка у вас запущена.
1. Как узнать точную команду на вашем сервере
- Зайдите в папку сервера ->
mods/deathmatch/resources/ - Найдите папку с названием, похожим на
donate,shop,vip,economy,store.
3. Откройте meta.xml или server.lua и поищите:
addCommandHandler("..."-> это команды, которые ресурс регистрирует.exports["название_ресурса"]:giveDonateили аналог -> это Lua-функции, которые можно вызвать через консоль.- Файлы
README.md,config.lua,settings.xml-> там часто описан синтаксис.
- Если вы используете известную сборку (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 (для удалённой консоли)
По умолчанию консоль запущенного сервера имеет полные права.
Если вы подключаетесь удалённо:
- Откройте
mtaserver.confв корне сервера.
2. Найдите и настройте:
<rcon_enabled>1</rcon_enabled>
<rcon_password>Очень_Сложный_Пароль</rcon_password>
<rcon_port>30112</rcon_port>
- Перезапустите сервер.
- Подключитесь через
telnet IP_сервера портили веб-консоль (например,mPanel,WebAdmin).
Важно:
Проверьте acl.xml: группа Console или Admin должна иметь права function.callResource и доступ к командам доната.
4. Прямое редактирование БД (если консоль не срабатывает)
- Многие сервера хранят донат в MySQL/SQLite.
Если ресурс не реагирует на команды, можно править базу напрямую, но с осторожностью:
- Подключитесь к БД через phpMyAdmin, DBeaver или терминал.
- Найдите таблицу:
accounts,players,users,donate_data(название зависит от ресурса). - Выполните запрос (пример для MySQL):
UPDATE players SET donate = donate + 500 WHERE name = 'servermon.ru';
- Перезапустите ресурс доната или попросите игрока перезайти, чтобы обновить кэш.
Важно:
Перед любыми правками делайте бэкап базы. Прямые изменения могут не синхронизироваться с кэшем Lua или нарушить логи автодоната.
5. Чек-лист безопасности и стабильности
- Всегда тестируйте выдачу на тестовом аккаунте.
- Включите логирование: в
mtaserver.conf<log_level>3</log_level>. - Не передавайте пароль от RCON и доступ к БД третьим лицам.
- Если используете автодонат через сайт, проверьте защиту от повторных веб-хуков (идемпотентность, проверка
transaction_id). - Фиксируйте выдачи в отдельном логе или таблице (
donate_logs), чтобы избежать споров с игроками.
6. Что делать, если команда не работает?
- Откройте
logs/console.logиlogs/server.log-> ищите строкиERROR,WARNINGили название ресурса доната. - Убедитесь, что ресурс запущен: в консоли введите
resourcesи найдите его в списке[started]. - Проверьте, онлайн ли игрок. Некоторые ресурсы выдают донат только онлайн-игрокам.
4. Напишите разработчику ресурса или в поддержку вашей сборки, приложив:
- Название ресурса/сборки
- Версию MTA сервера
- Ошибку из логов