- 8
- 0
- Версия MoonLoader
- Другое
Lua:
-- Указываем автора скрипта и версию
script_author("unocomescada")
script_version("1.0")
-- Подключаем необходимые библиотеки
require("lib.moonloader")
-- Определение переменных
slot0 = require("lib.samp.events") -- Библиотека для работы с событиями SA-MP
slot1 = false -- Флаг для автоматического входа
slot2 = true -- Флаг для автоматического переподключения
-- Проверяем наличие файла настроек autologinscp.ini и создаем его, если не существует
if not doesFileExist("moonloader/config/autologinscp.ini") then
-- Создаем файл настроек autologinscp.ini и устанавливаем пароль по умолчанию
slot3.save(require("inicfg").load({
config = {
senha = "Password"
}
}, "autologinscp.ini"), "moonloader/config/autologinscp.ini")
end
-- Главная функция
function main()
-- Ожидаем доступность SA-MP
while not isSampAvailable() do
wait(100)
end
-- Выводим сообщение в чат о запуске скрипта
sampAddChatMessage("{FFFF00}[ Auto Login + Auto Reconnect SPC ] {ffffff}Автор: unocomescada", -1)
-- Проверяем имя файла скрипта и, если не соответствует ожидаемому, выгружаем скрипт
if thisScript().filename ~= "AutoLoginSpectrumRPG_By_unocomescada.lua" then
thisScript():unload()
end
-- Если имя файла скрипта все еще не соответствует ожидаемому, выводим сообщение и перезагружаем скрипт
if thisScript().filename ~= "AutoLoginSpectrumRPG_By_unocomescada.lua" then
sampAddChatMessage("Не {FFFF00}изменяйте{FFFFFF} имя скрипта!", -1)
os.rename(thisScript().path, thisScript().directory .. "\\AutoLoginSpectrumRPG_By_unocomescada.lua")
thisScript():reload()
end
-- Бесконечный цикл
while true do
wait(0)
-- Если флаг slot1 установлен в true, вызываем функцию enviarcmd()
if uv0 then
enviarcmd()
end
end
end
-- Обработчик события onServerMessage
function slot0.onServerMessage(slot0, slot1)
-- Создаем отдельный поток выполнения (thread) для обработки сообщения от сервера
lua_thread.create(function ()
-- Если сообщение содержит указанную строку, устанавливаем флаг slot1 в true
if uv0:find("Для входа нажмите") then
uv1 = true
end
-- Если сообщение содержит указанную строку, устанавливаем флаг slot2 в false
if uv0:find("последний раз входил") then
uv2 = false
end
end)
end
-- Обработчик события onShowTextDraw
function slot0.onShowTextDraw(slot0, slot1)
-- Создаем отдельный поток выполнения (thread) для обработки TextDraw
lua_thread.create(function ()
-- Бесконечный цикл, ожидание
while uv0 do
wait(0)
-- Если значение переменной slot1 соответствует определенным ID TextDraw, отправляем команду на клик
if uv1 == 2146 then
sampSendClickTextdraw(2146)
elseif uv1 == 2142 then
sampSendClickTextdraw(2142)
elseif uv1 == 2147 then
sampSendClickTextdraw(2147)
end
end
end)
end
-- Функция для отправки команды
function enviarcmd()
-- Если флаг slot1 установлен в true, создаем отдельный поток выполнения (thread)
if uv0 then
lua_thread.create(function ()
-- Отправляем команду чата, включая пароль из файла настроек
sampSendChat("/logar " .. inicfg.load(nil, "moonloader/config/autologinscp.ini").config.senha)
-- Устанавливаем флаг slot1 в false
uv1 = false
end)
end
end