Нашел скрипт который блокирует сообщения в чате, он раньше работал, но теперь он почему-то не работает. Потому-что при скачивании скрипта он сам написал что он не работает, но исходный код оставил. Помогите сделать его рабочим.
1:
script_name("ChatMessage Blocker")
script_author("Serhiy_Rubin")
local sampev = require 'lib.samp.events'
local log = ""
local adress = "moonloader\\config\\ChatMessage Blocker.ini"
if not doesDirectoryExist("moonloader\\config") then createDirectory("moonloader\\config") end
if not doesFileExist(adress) then
file = io.open(adress, "a")
file:write("Объявление: (.+). Прислал: (.+). Тел: (.+) | <[OFF]>\nОтредактировал сотрудник News (.+): (.+) | <[OFF]>\nПроверку произвел сотрудник News (.+): (.+) | <[OFF]>\n-----------=== Государственные Новости ===----------- | <[OFF]>\nНовости: (.+): (.+) | <[OFF]>\nАдминистратор: (.+) выдал warn (.+). Причина: (.+) | <[OFF]>\nАдминистратор: (.+) забанил (.+). Причина: (.+) | <[OFF]>\nАдминистратор: (.+) кикнул (.+). Причина: (.+) | <[OFF]>\n(.+) получил бан чата от администратора (.+). Причина: (.+) | <[OFF]>\nАдминистратор (.+) снял бан чата у (.+) | <[OFF]>\n(.+) одобрил заявку на смену ника: (.+) » (.+) | <[OFF]>\n")
file:flush()
io.close(file)
end
function main()
if not isSampLoaded() or not isSampfuncsLoaded() then return end
while not isSampAvailable() do wait(100) end
ReadText()
while true do
wait(0)
if sampIsDialogActive() and sampGetDialogCaption() == "ChatMessage Blocker {FFFFFF}Автор: Serhiy_Rubin" then
if wasKeyPressed(112) then -- F1
local S1, S2 = string.match(dialogLine[DialogList], "(.+) | %<%[(.+)%]%>")
local S3 = (S2 == "OFF" and "ON" or "OFF")
OnOff = (S3 == "OFF" and "{f01616}СООБЩЕНИЕ В ЧАТЕ НЕ СКРЫВАЕТСЯ" or "{42eb00}СООБЩЕНИЕ В ЧАТЕ СКРЫВАЕТСЯ")
local S4 = string.format("%s | <[%s]>", S1, S3)
local file = io.open(adress, "r")
local fileText = ""
MSG = {}
if file ~= nil then
for line in file:lines() do
if line == dialogLine[DialogList] then
dialogLine[DialogList] = S4
line = S4
end
if #line > 0 and string.find(line, "(.+) | %<%[(.+)%]%>") then
local S5, S6 = string.match(line, "(.+) | %<%[(.+)%]%>")
if S6 == "ON" then
MSG[#MSG + 1] = S5
end
end
fileText = fileText..line.."\n"
end
io.close(file)
end
file = io.open(adress, "w")
file:write(fileText)
file:flush()
io.close(file)
Dialog(2)
end
if wasKeyPressed(113) then -- F2
local file = io.open(adress, "r")
local fileText = ""
if file ~= nil then
for line in file:lines() do
if line ~= dialogLine[DialogList] then
fileText = fileText..line.."\n"
end
end
io.close(file)
end
file = io.open(adress, "w")
file:write(fileText)
file:flush()
io.close(file)
Dialog(0)
end
end
end
end
function ReadText()
local file = io.open(adress, "r")
MSG = {}
if file ~= nil then
for string in file:lines() do
if #string > 0 and string.find(string, "(.+) | %<%[(.+)%]%>") then
local S1, S2 = string.match(string, "(.+) | %<%[(.+)%]%>")
if S2 == "ON" then
MSG[#MSG + 1] = S1
end
end
end
io.close(file)
end
end
function sampev.onServerMessage(color, text)
for i = 1, #MSG do
if string.find(text, MSG[i]) then
log = "["..os.date("%X",os.time()).."] "..text.."\n"..log
return false
end
end
end
function sampev.onSendCommand(cmd)
if cmd:lower() == "/blocker" then
lua_thread.create(function() Dialog(0) end)
return false
end
if cmd:lower() == "/blocker list" then
lua_thread.create(function()
sampShowDialog(0, "Заблокированные сообщения", log, "Закрыть", "", 4)
end)
return false
end
end
function Dialog(int)
if int == 0 then
ReadText()
stopThread = true
dialogLine = {}
DialogText = "{f01616}Скрытие отключено. {FFFFFF}| {42eb00}Скрытие включено.\n{59fc30}Добавить новую строку для блокировки\n"
local file = io.open(adress, "r")
MSG = {}
if file ~= nil then
for string in file:lines() do
if #string > 0 and string.find(string, "(.+) | %<%[(.+)%]%>") then
local S1, S2 = string.match(string, "(.+) | %<%[(.+)%]%>")
if S2 == "ON" then
MSG[#MSG + 1] = S1
end
dialogLine[#dialogLine + 1] = string
DialogText = DialogText..(S2 == "OFF" and "{f01616}" or "{42eb00}")..S1.."\n"
end
end
io.close(file)
end
sampShowDialog(5837, "ChatMessage Blocker {FFFFFF}Автор: Serhiy_Rubin", DialogText, "Выбрать", "Закрыть", 5)
lua_thread.create(function()
wait(100)
stopThread = false
repeat
wait(0)
local result, button, list, input = sampHasDialogRespond(5837)
if result then
if button == 1 and sampGetDialogCaption( ) == "ChatMessage Blocker {FFFFFF}Автор: Serhiy_Rubin" then
if list == 0 then
style = 1
Dialog(1)
else
style = 1
DialogList = list
local S1, S2 = string.match(dialogLine[DialogList], "(.+) | %<%[(.+)%]%>")
OnOff = (S2 == "OFF" and "{f01616}СООБЩЕНИЕ В ЧАТЕ НЕ СКРЫВАЕТСЯ" or "{42eb00}СООБЩЕНИЕ В ЧАТЕ СКРЫВАЕТСЯ")
Dialog(2)
end
end
end
until not sampIsDialogActive() or stopThread
end)
else
stopThread = true
if int == 1 or int == 2 then DialogText = "\n\t{FFFFFF}В строке должны быть неизменные фразы/символы.\n\tСимволы которые изменяются от начала и до конца заменяйте на (.+)\n\n Пример\n\tСтрока в чате: {59fc30}Объявление: Куплю дом. Прислал: Serhiy_Rubin. Тел: 22222\n\t{FFFFFF}Строка для блокировки: {59fc30}Объявление: (.+). Прислал: (.+). Тел: (.+)" end
if int == 2 then DialogText = DialogText.."\n\n\n\t\t\t"..OnOff.."\n\t\t\t{FFFFFF}НАЖМИТЕ {59fc30}F1{FFFFFF} ЧТОБЫ СМЕНИТЬ РЕЖИМ\n\t\t\t{FFFFFF}НАЖМИТЕ {59fc30}F2{FFFFFF} ЧТОБЫ УДАЛИТЬ" end
sampShowDialog(5838, "ChatMessage Blocker {FFFFFF}Автор: Serhiy_Rubin", DialogText, "Выбрать", "Закрыть", style)
if int == 2 then
repeat wait(0) until sampIsDialogActive( )
sampSetCurrentDialogEditboxText(string.match(dialogLine[DialogList], "(.+) | %<%[.+%]%>"))
end
lua_thread.create(function()
wait(100)
stopThread = false
repeat
wait(0)
local result, button, list, input = sampHasDialogRespond(5838)
if result then
if button == 1 and sampGetDialogCaption( ) == "ChatMessage Blocker {FFFFFF}Автор: Serhiy_Rubin" then
if int == 1 and #input > 0 then
local file = io.open(adress, "a")
file:write(input.." | <[ON]>\n")
file:flush()
io.close(file)
Dialog(0)
end
if int == 2 and #input > 0 then
local file = io.open(adress, "r")
local fileText = ""
if file ~= nil then
for line in file:lines() do
if line == dialogLine[DialogList] then
local S1, S2 = string.match(dialogLine[DialogList], "(.+) | %<%[(.+)%]%>")
line = input.." | <["..S2.."]>"
end
fileText = fileText..line.."\n"
end
io.close(file)
end
file = io.open(adress, "w")
file:write(fileText)
file:flush()
io.close(file)
Dialog(0)
end
else
Dialog(0)
end
end
until not sampIsDialogActive() or stopThread
end)
end
end