Сегодня рассмотрим создание наипростейшего биндера на lua
С задержками
И без задержки между сообщениями.
Создаем в папке moonloader текстовый документ.
Переименовываем в файл с расширением .lua, например binder.lua
Открывает через текстовый редактор, кто-то через системный, кто-то через notepad, sublime, atom
И вставляем данный код:
Этот шаблон здорового lua скрипта.
Мы загрузили библиотеку moonloader
И у нас есть главная фунция MAIN.
В этой функции скрипт проверяет загружен ли самп.
Когда самп будет загружен то скрипт запускает бесконечный цикл
Бесконечный потому что в условии цикла стоит true, то есть истина.
Нулевая задержка нужна в каждом бесконечном цикле, чтобы у вас не зависла игра.
Вернемся к написанию биндера.
Чтобы отправить сообщение по нажатию клавиши, нам нужно это нажатие отследить.
Поэтому в бесконечном цикле функции main пишем условие:
Мы написали: если Нажата клавиша P(англ.) то... А действий никаких не приписали.
Припишем отправку сообщения.
И получаем такой код:
Можем сохранить, зайти в игру и проверить.
Мы сделали бинд на кнопку P, отправляется одно сообщение.
Чтобы отправить несколько сообщений с задержкой между ними сделаем еще одно условие нажатия на кнопку, например O (англ.)
В него пишем сообщение, задержка, еще одно сообщение, выглядит это так:
Чтобы не выводило в чат иероглифы при биндах с русским текстом - сохраняем файл с кодировкой 'Windows 1251'
В итоге у нас получилось:
Все, написали наипростейший биндер, задача выполнена.
С задержками
И без задержки между сообщениями.
Создаем в папке moonloader текстовый документ.
Переименовываем в файл с расширением .lua, например binder.lua
Открывает через текстовый редактор, кто-то через системный, кто-то через notepad, sublime, atom
И вставляем данный код:
Lua:
require "lib.moonloader"
function main()
if not isSampfuncsLoaded() or not isSampLoaded() then return end
while not isSampAvailable() do wait(100) end
while true do
wait(0)
end
end
Этот шаблон здорового lua скрипта.
Мы загрузили библиотеку moonloader
Lua:
require "lib.moonloader"
И у нас есть главная фунция MAIN.
Lua:
function main()
if not isSampfuncsLoaded() or not isSampLoaded() then return end
while not isSampAvailable() do wait(100) end
while true do
wait(0)
end
end
Lua:
if not isSampfuncsLoaded() or not isSampLoaded() then return end
while not isSampAvailable() do wait(100) end
Lua:
while true do
wait(0)
end
Бесконечный потому что в условии цикла стоит true, то есть истина.
Lua:
Wait(0)
Вернемся к написанию биндера.
Чтобы отправить сообщение по нажатию клавиши, нам нужно это нажатие отследить.
Поэтому в бесконечном цикле функции main пишем условие:
Lua:
if isKeyJustPressed(VK_P) then
end
Мы написали: если Нажата клавиша P(англ.) то... А действий никаких не приписали.
Припишем отправку сообщения.
Lua:
if isKeyJustPressed(VK_P) then
sampSendChat("my first binder")
end
И получаем такой код:
Lua:
require "lib.moonloader"
function main()
if not isSampfuncsLoaded() or not isSampLoaded() then return end
while not isSampAvailable() do wait(100) end
while true do
wait(0)
if isKeyJustPressed(VK_P) then
sampSendChat("my first binder")
end
end
end
Можем сохранить, зайти в игру и проверить.
Мы сделали бинд на кнопку P, отправляется одно сообщение.
Чтобы отправить несколько сообщений с задержкой между ними сделаем еще одно условие нажатия на кнопку, например O (англ.)
Lua:
if isKeyJustPressed(VK_O) then
end
В него пишем сообщение, задержка, еще одно сообщение, выглядит это так:
Lua:
if isKeyJustPressed(VK_O) then
sampSendChat("первое сообщение")
wait(1500) -- задержка в мс 1500 - 1.5 сек
sampSendChat("второе сообщение")
end
Чтобы не выводило в чат иероглифы при биндах с русским текстом - сохраняем файл с кодировкой 'Windows 1251'
В итоге у нас получилось:
Все, написали наипростейший биндер, задача выполнена.
Последнее редактирование: