SA:MP Lua Trinity [Lua] AutoRekl — автоматическая отправка рекламы на радио с таймером

uashowman

Известный
Автор темы
3
0
Версия SA-MP
  1. 0.3.7 (R1)
  2. 0.3.7-R2
  3. 0.3.7-R3
  4. 0.3.7-R4
  5. 0.3.7-R5
  6. Любая
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ОПИСАНИЕ

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Скрипт полностью автоматизирует процесс подачи рекламных объявлений на радио US. Вместо того чтобы каждый раз вручную вводить /sms radiols, кликать по диалогам и набирать текст — скрипт делает всё это за вас, и повторяет цикл автоматически каждые 63 секунды после одобрения модератором.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
КОМАНДЫ И ПРИМЕРЫ ИСПОЛЬЗОВАНИЯ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
/rekl
Включает или выключает автоматическую отправку рекламы (toggle). При первом вводе — сразу отправляет объявление и показывает в чате какой текст будет использован. При повторном вводе — останавливает скрипт полностью.
Пример:
/rekl
[Реклама] Включено. Отправляю объявление...
[Реклама] Текст: Организация "G-Company" ищет сотрудников в свой штат. Звоните.
/rekl (повторно)
[Реклама] Выключено.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
/rekltext <текст>
Устанавливает текст который будет отправляться в объявлении. Изменение вступает в силу мгновенно — следующая отправка уже использует новый текст. Работает в любой момент, даже пока скрипт активен.
Пример — установить новый текст:
/rekltext Продаю бизнес в центре города. Цена договорная. Пишите в лс.
[Реклама] Текст обновлён:
Продаю бизнес в центре города. Цена 1.000.000$. Звоните.
Пример — посмотреть текущий текст (без аргументов):
/rekltext
[Реклама] Текущий текст:
Организация "Каневское сообщество" ищет сотрудников...
Использование: /rekltext <новый текст>
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
КАК РАБОТАЕТ ИЗНУТРИ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Скрипт построен на системе состояний (state machine). В каждый момент времени он находится в одной из фаз и знает что именно сейчас нужно сделать:
ФАЗА 1 — Запуск
После /rekl скрипт отправляет в чат команду /sms radiols и переходит в режим ожидания первого диалога.
ФАЗА 2 — Первый диалог (выбор типа объявления)
Сервер открывает окно со списком:
Создать объявление вручную (с модерацией)
Воспользоваться конструктором (без модерации)
Скрипт автоматически через 200мс выбирает первый пункт и переходит к ожиданию второго диалога.
ФАЗА 3 — Второй диалог (поле ввода текста)
Сервер открывает окно с пустой строкой для ввода объявления. Скрипт вставляет в неё ваш текст из /rekltext и нажимает "Отправить". После этого переходит в режим ожидания ответа от модератора.
ФАЗА 4 — Ожидание модератора
Скрипт непрерывно следит за всеми сообщениями сервера в чате. Как только приходит строка содержащая: "Ваше объявление было допущено к публикации модератором новостного агентства" — скрипт фиксирует текущее время и переходит к таймеру. Ник модератора в этом сообщении каждый раз разный — скрипт это учитывает и ищет только начало фразы, игнорируя имя.
ФАЗА 5 — Таймер 63 секунды
Скрипт ждёт ровно 63 секунды (60 сек + 3 сек запас на случай лагов сервера). После чего автоматически возвращается к Фазе 1 и цикл повторяется.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ТЕХНИЧЕСКИЕ ДЕТАЛИ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
— Ответы на диалоги обрабатываются в главном потоке скрипта, а не внутри колбэков событий. Это сделано намеренно — MoonLoader не позволяет использовать wait() внутри обработчиков samp.events, что вызывает ошибку "attempt to yield across C-call boundary". Скрипт обходит это через очередь pendingDialog.
— Длинный текст объявления автоматически разбивается на несколько строк в чате чтобы не обрезался. В само объявление на сервер текст уходит целиком.
— Таймер считается от момента одобрения модератором, а не от момента отправки. Если модератор одобрил через 5 минут после отправки — скрипт подождёт ещё 63 секунды и только потом отправит следующее.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
УСТАНОВКА
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Требования:
— MoonLoader (обязательно)
— SAMPFUNCS (обязательно)
Шаги:
  1. Скачать autorekl.lua из прикреплённого файла
  2. Скопировать в папку: GTA San Andreas\moonloader\
  3. Зайти в игру — скрипт загрузится автоматически вместе с MoonLoader
  4. (опционально) Открыть файл и на строке 8 заменить текст по умолчанию на свой, либо использовать /rekltext прямо в игре
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ВАЖНЫЕ ПРИМЕЧАНИЯ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
— Если модератор отклонил объявление — скрипт не получит триггер и зависнет в фазе ожидания. В этом случае просто введите /rekl дважды (выкл/вкл) чтобы запустить новый цикл.
— Скрипт не трогает чат и не мешает игровому процессу — работает полностью в фоне.
— Текст можно менять на лету в любой момент через /rekltext, даже пока скрипт активен. Изменение подхватится на следующей отправке.
И еще есть нюанс = что нельзя работать с открывающемися менюкшами. просто выключите скрипт = нажмите что-то нужное в меню. и обратно включите.

 

Вложения

  • autorekl.lua
    4.6 KB · Просмотры: 3
Последнее редактирование:

uashowman

Известный
Автор темы
3
0
вот актуальный = который работает по всем городам
описание скрипта и команды = при запуске
 

Вложения

  • autoreklUSA.lua
    6.1 KB · Просмотры: 4