Lua SnailMatic | Самый функциональный биндер

GrezeeBal

Известный
Автор темы
Проверенный
1,478
883
  • Нравится
Реакции: Лебiгович

hol0s

Участник
151
23
хелп скрипт крашит
[ML] (error) SnailMatic: ...na Games Launcher\bin\arizona\moonloader\snailmatic.luac:0: module 'fa-icons' not found:
no field package.preload['fa-icons']
no file 'D:\arizona\Arizona Games Launcher\bin\arizona\moonloader\lib\fa-icons.lua'
no file 'D:\arizona\Arizona Games Launcher\bin\arizona\moonloader\lib\fa-icons\init.lua'
no file 'D:\arizona\Arizona Games Launcher\bin\arizona\moonloader\fa-icons.lua'
no file 'D:\arizona\Arizona Games Launcher\bin\arizona\moonloader\fa-icons\init.lua'
no file '.\fa-icons.lua'
no file 'D:\arizona\Arizona Games Launcher\bin\arizona\moonloader\lib\fa-icons.luac'
no file 'D:\arizona\Arizona Games Launcher\bin\arizona\moonloader\lib\fa-icons\init.luac'
no file 'D:\arizona\Arizona Games Launcher\bin\arizona\moonloader\fa-icons.luac'
no file 'D:\arizona\Arizona Games Launcher\bin\arizona\moonloader\fa-icons\init.luac'
no file '.\fa-icons.luac'
no file 'D:\arizona\Arizona Games Launcher\bin\arizona\moonloader\lib\fa-icons.dll'
stack traceback:
[C]: in function 'require'
...na Games Launcher\bin\arizona\moonloader\snailmatic.luac: in function <...na Games Launcher\bin\arizona\moonloader\snailmatic.luac:0>
[ML] (error) SnailMatic: Script died due to an error. (28F1A6BC)
 

percheklii

Известный
733
269
хелп скрипт крашит
[ML] (error) SnailMatic: ...na Games Launcher\bin\arizona\moonloader\snailmatic.luac:0: module 'fa-icons' not found:
no field package.preload['fa-icons']
no file 'D:\arizona\Arizona Games Launcher\bin\arizona\moonloader\lib\fa-icons.lua'
no file 'D:\arizona\Arizona Games Launcher\bin\arizona\moonloader\lib\fa-icons\init.lua'
no file 'D:\arizona\Arizona Games Launcher\bin\arizona\moonloader\fa-icons.lua'
no file 'D:\arizona\Arizona Games Launcher\bin\arizona\moonloader\fa-icons\init.lua'
no file '.\fa-icons.lua'
no file 'D:\arizona\Arizona Games Launcher\bin\arizona\moonloader\lib\fa-icons.luac'
no file 'D:\arizona\Arizona Games Launcher\bin\arizona\moonloader\lib\fa-icons\init.luac'
no file 'D:\arizona\Arizona Games Launcher\bin\arizona\moonloader\fa-icons.luac'
no file 'D:\arizona\Arizona Games Launcher\bin\arizona\moonloader\fa-icons\init.luac'
no file '.\fa-icons.luac'
no file 'D:\arizona\Arizona Games Launcher\bin\arizona\moonloader\lib\fa-icons.dll'
stack traceback:
[C]: in function 'require'
...na Games Launcher\bin\arizona\moonloader\snailmatic.luac: in function <...na Games Launcher\bin\arizona\moonloader\snailmatic.luac:0>
[ML] (error) SnailMatic: Script died due to an error. (28F1A6BC)
либы fa-icons нет
 

myaso.

Известный
49
9
почему то не хотят работать установленные variables, вообще не понимаю как их использовать. на примере copsid, он есть в биндере, но я скачал отдельно с гитхаба, переименовал, настроил там чтоб не только копы были, а переменной такой нет, как жить то.

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

GrezeeBal

Известный
Автор темы
Проверенный
1,478
883
почему то не хотят работать установленные variables, вообще не понимаю как их использовать. на примере copsid, он есть в биндере, но я скачал отдельно с гитхаба, переименовал, настроил там чтоб не только копы были, а переменной такой нет, как жить то.

нужно чтобы получил ид рядом игроков в метрах 10 и по очереди каждому выдать хп.
и чтобы узнать серверный ид машины по иду игрока.. как это сделать.......
$copsid$ - пишет все иды полицейских рядом с тобой в радиусе 5 метров

$copsname$ - пишет все имена полицейских рядом с тобой в радиусе 5 метров

$copssurname$ - пишет все фамилии полицейских рядом с тобой в радиусе 5 метров

$copsnick$ - пишет все РП ники полицейских рядом с тобой в радиусе 5 метров

нужно чтобы получил ид рядом игроков в метрах 10 и по очереди каждому выдать хп.
и чтобы узнать серверный ид машины по иду игрока.. как это сделать.......
по очереди не получится, потому что переменная возвращает сразу все ники и иды
 
Последнее редактирование:

myaso.

Известный
49
9
$copsid$ - пишет все иды полицейских рядом с тобой в радиусе 5 метров
вот и я изменив немного код скаченного плагина cops.lua, переименовав его и закинув в variables хотел добиться хоть какого-нибудь эффекта. ничего не вышло. а локальный чат отправляется только $peoplesid$ (так я назвал плагин и в самом коде обозначил как функцию) как обычный текст, вместо нормальной работы переменной..

по очереди не получится, потому что переменная возвращает сразу все ники и иды
а эти иды можно как-нибудь перебирать списком? или только охапкой использовать

и почему снаилматик не реагирует на локальные сообщения в чате отправленные собой же
 
Последнее редактирование:

GrezeeBal

Известный
Автор темы
Проверенный
1,478
883
вот и я изменив немного код скаченного плагина cops.lua, переименовав его и закинув в variables хотел добиться хоть какого-нибудь эффекта. ничего не вышло. а локальный чат отправляется только $peoplesid$ (так я назвал плагин и в самом коде обозначил как функцию) как обычный текст, вместо нормальной работы переменной..
скинь сюда этот файл
а эти иды можно как-нибудь перебирать списком? или только охапкой использовать
с этой переменной - нет. Хотя я не думаю, что написав подходящую для этого переменную - твою задумку возможно реализовать, но я в этом не уверен.

и почему снаилматик не реагирует на локальные сообщения в чате отправленные собой же
поменяй режим хукинга на "Автономный" в Меню > Настройки > Режим хукинга
 

myaso.

Известный
49
9
скинь сюда этот файл

с этой переменной - нет. Хотя я не думаю, что написав подходящую для этого переменную - твою задумку возможно реализовать, но я в этом не уверен.


поменяй режим хукинга на "Автономный" в Меню > Настройки > Режим хукинга
 

Вложения

  • pips.lua
    580 байт · Просмотры: 4

GrezeeBal

Известный
Автор темы
Проверенный
1,478
883
локальный чат отправляется только $peoplesid$
Lua:
registerVariable('pipsid', 'Возвращает ид всех игроков в радиусе', function()
    local allChars, policeMen = getAllChars(), {}
    local radius = 10 --Радиус действия, по умолчанию - 5 метров
    local myPosX, myPosY, myPosZ = getCharCoordinates(PLAYER_PED)
    for _, ped in ipairs(allChars) do
        local result, id = sampGetPlayerIdByCharHandle(ped)
        if result and getDistanceBetweenCoords3d(myPosX, myPosY, myPosZ, getCharCoordinates(ped)) < radius then
            table.insert(policeMen, id)
    end
    return #policeMen == 0 and 'None' or table.concat(policeMen, ', ')
end

я не вижу здесь никаких других переменных, кроме $pipsid$
 

myaso.

Известный
49
9
Lua:
registerVariable('pipsid', 'Возвращает ид всех игроков в радиусе', function()
    local allChars, policeMen = getAllChars(), {}
    local radius = 10 --Радиус действия, по умолчанию - 5 метров
    local myPosX, myPosY, myPosZ = getCharCoordinates(PLAYER_PED)
    for _, ped in ipairs(allChars) do
        local result, id = sampGetPlayerIdByCharHandle(ped)
        if result and getDistanceBetweenCoords3d(myPosX, myPosY, myPosZ, getCharCoordinates(ped)) < radius then
            table.insert(policeMen, id)
    end
    return #policeMen == 0 and 'None' or table.concat(policeMen, ', ')
end

я не вижу здесь никаких других переменных, кроме $pipsid$
да, изменил, но сути не меняет, биндер не видит даже эту переменную
изменил потому что не оставлял попытки попробовать исправить хоть что-нибудь, но он не видел. кстати, копсид видит. а мою пипсид нет.
 

GrezeeBal

Известный
Автор темы
Проверенный
1,478
883
да, изменил, но сути не меняет, биндер не видит даже эту переменную
изменил потому что не оставлял попытки попробовать исправить хоть что-нибудь, но он не видел. кстати, копсид видит. а мою пипсид нет.
проблема в твоём коде. В мунлоге пишется ошибка, если биндер не загружает переменную

Lua:
registerVariable('pipsid', 'Возвращает ид всех игроков в радиусе', function()
    local allChars, policeMen = getAllChars(), {}
    local radius = 10 --Радиус действия, по умолчанию - 5 метров
    local myPosX, myPosY, myPosZ = getCharCoordinates(PLAYER_PED)
    for _, ped in ipairs(allChars) do
        local result, id = sampGetPlayerIdByCharHandle(ped)
        if result and getDistanceBetweenCoords3d(myPosX, myPosY, myPosZ, getCharCoordinates(ped)) < radius then
            table.insert(policeMen, id)
        end
    end
    return #policeMen == 0 and 'None' or table.concat(policeMen, ', ')
end)
 
Последнее редактирование:

William_Chkhalo

Участник
127
14
tgfh6Tm.png

SnailMatic 1.8 Achatina / От разработчиков ScriptPatrol Lua


Биндер
  • Огромный функционал
  • Неграниченное количество биндов с неограниченным количеством строк
  • Автоматические отыгровки, сокращения команд и фраз, ввод команд/текста и активация биндов в назначенное время, математические операции, алгоритмы и так далее.
  • Активация биндов по команде, по клавише/сочетанию клавиш (есть поддержка кнопок мыши), по появлению текста в чате, через переменные и через интерфейс
  • Гайд по созданию биндов (github)

Интерфейс
  • Продуманный, простой, удобный и практичный интерфейс.
  • Наличие горячих клавиш для быстрого взаимодействия с интерфейсом
  • Бинды в биндере можно перемещать, группировать, дублировать, запускать/останавливать/ставить на паузу через кнопки в интерфейсе.
  • Подробнее о всех возможностях здесь интерфейса (github)

Cbuuyzf.jpg
Gi5cBOi.jpg
Mq5WI50.jpg
BMzWLaB.jpg
C7C7T8E.jpg
XRg9zTV.jpg
L9vduW9.jpg

Переменные
Большое количество переменных, которые помогают автоматизировать бинды и действия:
  • Обычные переменные ($var$): не принимают параметры, а работают по четко-заданному алгоритму.
    • Например, переменная $time$ - напишет время в формате HH:MM:SS (20:51:42)
    • Или, например, переменная $chatclear$ очистит чат
  • Функциональные переменные (@var(...)@): работают по параметрам, задаваемыми самим пользователем, от которых зависит конечный результат переменных.
    • Параметрами в функциональных переменных выступают выражения, условия, порядковые номера, другие переменные из биндера.
    • Например, переменная @math(2+2)@ - напишет «4»
    • Или, например, переменная @nick($closestidtocenter$)@ - напишет ник игрока, который находится ближе всего от центра экрана. В этом примере в качестве параметра использовалась обычная переменная из биндера $closestidtocenter$, которая пишет ID ближайшего игрока от центра экрана
Гайд по функциональным переменным (github)

Создание собственных виджетов
  • С помощью этой системы можно очень легко создавать свои собственные и уникальные виджеты. Они могут отображать нужную для тебя информацию в любом месте на экране.
  • Можно создавать неограниченное количество виджетов, которые будут одновременно отображаться на экране
  • Виджеты можно кастомизировать, добавлять в них иконки и картинки, менять цвет текста и фона (или просто убрать его) и менять размер элементов.
  • В виджеты можно добавлять любой текст и переменные, которые в свою очередь будут выполнять свои функции и сами писать текст
  • Инструкция по созданию виджетов (github)

urerznX.png
ti18shB.jpg
WF8uorm.jpg

Внтутриигровой блокнот
  • "Шпаргалка", блокнот, в который можно записывать любой текст
  • Количество файлов и текста неограниченно
  • Есть быстрый предпросмотр блокнота через команду (/smspur)
  • В блокноте работают переменные из биндера, которые будут выполнять свои функции и сами писать текст
  • Присутствует поиск текста, форматирование текста (как и в виджетах), а так же возможность добавлять иконки и картинки
  • Текст из блокнота можно быстро копировать, нажимая ЛКМ на нужные строки.
  • Инструкция по использованию блокнота (github)

h2hDJn9.jpg
cVHNsJ9.jpg

Создание своих диалоговых окон

152640276-ae969965-15b7-4a94-9c73-322ed91f9708.png

Сокращение команд, фраз, текста
  • Бинды в SnailMatic можно активировать командами, которые не содержат в начале себя слэши или другие знаки. Таким образом можно сокращать нужные команды или текст.
  • Пример по сокращению команд (github)

Взаимодействие с командами других скриптов
  • Биндер может писать команды других скриптов и они будут при этом активироваться
  • Для этого на такую команду нужно поставить отправку "На клиент SAMP" в редакторе бинда
  • Методы отправки строк (github)

Ввод текста в указанное время
  • С помощью данной системы (/sm.remind) можно устанавливать напоминания или дать указание биндеру ввести указанный текст спустя какое-то количество времени.
  • Гайд по использованию /sm.remind (github)

Взаимодействие с указанным игроком
  • В биндере присутствует система таргета, которая позволяет легко взаимодействовать с одним указанным игроком.
  • Помимо этого, в наборе переменных есть функции, позволяющие отдельно взаимодействовать с ближайшими игроками.
  • Гайд по использованию системы таргета (github)

Совместимость с SA-MP R1, R3, R4-2, 0.3DL
  • Биндер совместим с вышеперечисленными версиями SA-MP, CRMP и независим от SAMPFUNCS (но наличие рекомендуется).

SnailMatic API
  • Биндер экспортирует некоторые свои функции, на основе которых можно делать для него плагины или дополнять свои скрипты этим функционалом.
  • Документация по SnailMatic API (github)



Дополнительное описание
  • Возможность установки условий активации бинда (например, если твой персонаж не в машине - бинд не запустится)
  • Возможность остановки и паузы запущенных биндов
  • Возможность подтверждать/не подтверждать автоматическую активацию бинда по тексту в чате
  • Возможность зацикливания биндов (с помощью переменных или команды активации бинда)
  • Возможность заблокировать клавишу активации бинда для управления игры (управление игры не будет реагировать на клавишу активации бинда)
  • Возможность использования регулярных выражений в биндах
  • 10 методов отправки строки
  • Возможность активации биндов командами, которые не содержат в начале себя слэши и остальные знаки ("/cmd" и "cmd" - две разные команды активации, которые будут активировать разные бинды)
  • Удобный редактор биндов с двумя вариантами ввода текста: построчно и в виде блокнота, что позволит вставлять в бинды большие текста средствами CTRL+C и CRTL+V
  • Модульность биндера: система профилей и установка новых переменных
  • Кастомизация биндера: возможность поставить на фон интерфейса картинку и изменить звук уведомлений
  • Группировка биндов: перемещение их по списку, а так же создание папок
  • Радиальное меню активации нужных биндов
  • Активация переменных необязательно через бинды — их можно писать вручную в обычный чат, где они будут возвращать выполняемую функцию.
  • Отдельная настройка отыгровки оружия с удобными активациями (в настройках биндера)
  • Установка умного автоакцента
  • Два варианта уведомлений биндера: всплывающие и обычные в чат
  • Собственный конвертор профилей из других биндеров (КВАС, ScriptPatrol AHK/Lua, Police Assistant)
  • Наличие "Беспалевного" режима, который убирает все уведомления в консоль биндера(CTRL+~) и консоль SAMPFUNCS(при наличии)(~)
  • Перемещение скриншотов по папкам прямо из игры
  • Установка простых временных(на одну сессию игры) переменных, которые содержат в себе заданный текст с возможностью быстро их обновлять
  • Совместимость с MoonLoder 0.26.5 и 0.27
  • Работает на лаунчерах, где можно устанавливать .lua скрипты
  • Автообновление

Команды биндера
/sm.open или CTRL+Z(по умолчанию)открыть биндер
/sm.ss [папка]* [скрин] [новое название скрина]перемещение (последнего)скриншота в указанную папку с указанным именем (по умолчанию перемещается с оригинальным названием).
/sm.regvar [название переменной]* [текст]*установка простой текстовой переменной на одну сессию
/sm.regvarwn [название переменной]* [текст]*полный аналог /sm.regvar, но без уведомлений от биндера
/> [текст]быстрое открытие текущей активной шпаргалки. При написании текста — поиск этого текста по шпаргалке
/sm.spur [название шпаргалки] [текст]возможность открыть/искать текст в определенной шпаргалке по её названию. Вписывать полное имя шпаргалки необязательно
/sm.select [номер бинда/имя бинда]* [папка]открыть окно выбора отдельных строк бинда по его номеру/названию
/sm.reloadперезагрузка биндера в игре
/sm.remind [сек/время]* (@/!)[текст]*отправка введенного текста на клиент SA-MP через кол-во [сек] или в назначенное [время] (HH:MM или HH:MM:SS)
Знак @ перед текстом отправит текст в локальный чат.
Знак ! перед текстом не отправит текст, но биндер его обработает и выполнит содержащиеся в нём переменные.
/sm.bind [номер бинда/имя бинда]* [папка]запустить бинд по его номеру/названию
/sm.stop [номер бинда/имя бинда] [папка]остановить запущенный бинд по его номеру/названию. Если не вводить бинд — остановятся все запущенные бинды
/sm.target [id/nick]выбор игрока как цель. Если не вводить параметры - сбросится таргет
/sm.console или CTRL+~открыть консоль биндера
*Параметры со звездочкой — обязательны.​
**Все команды можно писать без точки после /sm​



Документация по использованию
Полную инструкцию смотри здесь (github)

Требования для работы
moonloader 0.26.5+,
библиотеки: mimgui, copas, fa-icons, socket (github)

Разработчики
@GrezeeBal, @RTD




FAQ
1.

Решение:
Установи все библиотеки по ссылкам выше (см. Требования для работы).


2.

Решение 1:
Установи с заменой RakLua 2.1 в папку …\moonloader\lib.
Решение 2: удали RakLua из папки …\moonloader\lib
Решение 3: смени параметр hookmode на 0 (это автономный) или 3 (это sampfuncs) в файле ...\Documents\GTA San Andreas User Files\SAMP\SnailMatic\snailmatic.json


3.

Решение:
Это происходит из-за того, что на строках не установлена задержка. Если между строками нет задержки - они отправляются моментально, что превращается во флуд - сервер в свою очередь флуд будет блокировать. Задержка выставляется в миллисекундах (1 сек = 1000 мсек)


4.

Решение:
В настройках биндера с помощью ползунка "Режим хукинга" измени режим на любой другой. Описание режимов указаны в подсказке. Самый стабильный режим - SAMPFUNCS (наличие SAMPFUNCS обязательно).


5.

MbpxUbe.png

Решение: Создай текстовый документ 512_2048.txt или 512_1024.txt в папке \Документы\GTA San Andreas User Files\SAMP\SnailMatic. С этим фиксом не будут работать иконки в редакторе HUD и шпаргалке


6.
Код:
(error)    SnailMatic: Ошибка #1. Перезагрузка
Решение: В настройках биндера с помощью ползунка "Режим хукинга" измени режим на любой другой. Описание режимов указаны в подсказке. Самый стабильный режим - SAMPFUNCS (наличие SAMPFUNCS обязательно).


7.
Код:
(exception) SnailMatic: CJSON: Expected value but found T_END at character 1
(error) SnailMatic: [string "..."]:0: attempt to index a nil value
stack traceback:
    [string "..."]: in function 'loadSetting'
    [string "..."]: in function <[string "..."]:0>
(error) SnailMatic: Script died due to an error. (33B3215C)
Решение: Удали snailmatic.json по пути C:\Users\user\Documents\GTA San Andreas User Files\SAMP\SnailMatic


8.
Код:
(error)    SnailMatic: C:\GTA San Andreas\moonloader\lib\mimgui\imgui.lua:8: cannot load module 'C:\GTA San Andreas\moonloader\lib\mimgui\cimguidx9': Не найден указанный модуль.
    stack traceback:
        [C]: in function 'load'
        C:\GTA San Andreas\moonloader\lib\mimgui\imgui.lua:8: in main chunk
        [C]: in function 'require'
        C:\GTA San Andreas\moonloader\lib\mimgui\init.lua:7: in main chunk
        [C]: in function 'require'
        [string "..."]: in function <[string "..."]:0>
        C:\GTA San Andreas\moonloader\snailmatic.luac: in function <C:\GTA San Andreas\moonloader\snailmatic.luac:0>
        C:\GTA San Andreas\moonloader\snailmatic.luac: in function <C:\GTA San Andreas\moonloader\snailmatic.luac:0>
(error)    SnailMatic: Script died due to an error. (099D412C)
Решение: Установи Microsoft Visual C++ (желательно все пакеты).

Установка:
  1. установить все библиотеки по ссылкам выше
  2. перекинуть файл snailmatic.luac в "...\GTA San Andreas\moonloader"


В скрипте присутствует автообновление. Используйте на свой страх и риск
Ебать, ну постарался. Респект, продолжай в том же духе
 
  • Нравится
Реакции: GrezeeBal