Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

MyDC.ru _ Помощь по скриптам для PtokaX _ Флуд в ПМ за спам

Автор: Wan 13.4.2012, 10:18

Здравствуйте! Перерыл весь форум ну что не нашел ищу скрипт детектора личек на спам, хотел найти скрипт который за спам зафлуживал пользователя, подскажите есть ли такой?

Автор: Артём 13.4.2012, 10:50

Wan, есть такой.
 AntiRek_aka_Flood.lua ( 5.41 килобайт ) : 47

Автор: Wan 13.4.2012, 21:16

Спасибо большое за скрипт, только он ошибку выдаёт

Код
Синтаксис C:\Server DC\scripts\AntiRek_aka_Flood.lua:64: bad argument #1 to 'open' (string expected, got nil)
[04:14] Критическая ошибка в скрипте AntiRek_aka_Flood.lua ! Скрипт остановлен!

Автор: Saymon21 13.4.2012, 21:21

http://mydc.ru/topic3431.html

Автор: Wan 13.4.2012, 21:24

скрипт очень хорош но слишком много функций
желательно одно зафлуживание

Автор: Saymon21 13.4.2012, 21:33

В том, что выложил Артём, проверь есть ли файл в пути: /scripts/syslogs/securitydbg.txt

Автор: Wan 13.4.2012, 21:46

нет нету

Автор: Saymon21 13.4.2012, 21:49

Создай!

Автор: Wan 13.4.2012, 21:52

создал папку syslogs, также 2 текстовика securitydbg.txt и adminlogs.txt
также вылетает ошибка

Код
[04:52] Синтаксис C:\Server DC\scripts\AntiRek_aka_Flood.lua:36: bad argument #1 to 'open' (string expected, got nil)
[04:52] Синтаксис C:\Server DC\scripts\AntiRek_aka_Flood.lua:64: bad argument #1 to 'open' (string expected, got nil)
[04:52] Критическая ошибка в скрипте AntiRek_aka_Flood.lua ! Скрипт остановлен!

Автор: Артём 13.4.2012, 22:16

Wan

Пробуй это
Код
--антиреклама (в качестве наказания за спам используется флуд в лс спамящему по принцепу одно спам сообщение=100 сообщений с флудом)

--автор : [Страйгалдвир]
-- * Конфигурация скрипта

BotName =  "BOT"     -- имя бота
BotReg = 0 -- регистрировать бота на хабе? (1=да/0=нет)

BanMode =3 -- Какой тип наказания использовать? (0=перманент/1=Default temp ban time хаба/2 = сами выбираете время бана 3 = не пускать в чат, флудит спамеру ЛС)
BanTime = 20 -- Время бана в минутах для BanMode = 2
BanReason = "Реклама в чате (привате)" -- Причина наказания

-- Таблица шаблонов запрещенных адресов
adverTable = {
".org",".net","ru.","d}c}h}u}b://","dchub","d c h u b://","dchub://","%.%s*[oO]%s*[rR]%s*[gG]",
}
-- Таблица шаблонов разрешенных адресов
safeTable = {
"1-new.no-ip.org","dchub://1-new.no-ip.org:411","dchub://1-new.no-ip.org","uniongang.ru",
}

-- Что получит юзер в случае, если пустит запрещенную рекламу?
text = "\r\n\t\tПредупреждение:\r\n •Вы нарушаете правила,не стоит этого делать :) \r\n  рекламные сообщения видят только админы...не испытывайте их терпение"
-- Что получит оператор хаба?
text_to_op = " Злостный спамер пытался сказать в чате:"
text_to_op_pm = " Злостный спамер пытался сказать в привате:"




math.randomseed (os.time ())    -- функция для лучшего перемешивания ников в таблице

-- Конец конфигуратора

function OnStartup()
    if BotReg == 1 then
    Core.RegBot(BotName,"Детектор рекламы хабов" ,"",true);
    end
end
-----------------------------------------------
function ChatArrival(user,data)
    local s,e,msg = string.find(data,"%b<>%s*(.*)%|")
local msg = string.lower(msg)

    if not Core.GetUserValue(user,11) then
        if checkForAdvertising(string.lower(msg)) then
            if checkForSafe(string.lower(msg)) then
                return nil
            end
for i = 1, 1000 do
                Core.SendPmToUser(user, tostring(math.random(1,100000)), "*** "..text)  
            end

            Core.SendPmToOps(SetMan.GetString(24), "*** "..user.sNick.." ("..user.sIP..") "..text_to_op.." "..msg)
                        if BanMode == 0 then
                          BanMan.Ban(user,BanReason,BotName,true)
                        end
                        if BanMode == 1 then
                          BanMan.TempBan(user,0,BanReason,BotName,true)
                        end
                        if BanMode == 2 then
                          BanMan.TempBan(user,BanTime,BanReason,BotName,true)
                        end
                        if BanMode == 3 then
                          return true
                        end
                end
    end
end
-----------------------------------------------
function ToArrival(user,data)
    local s,e,msg = string.find(data,"%b<>%s*(.*)%|")
local msg = string.lower(msg)

    if not Core.GetUserValue(user,11) then
        if checkForAdvertising(string.lower(msg)) then
            if checkForSafe(string.lower(msg)) then
                return nil
            end
for i = 1, 1000 do         -- кол-во сообщений спамеру в ЛС
                Core.SendPmToUser(user, tostring(math.random(1,100000)), "*** "..text)
            end

            Core.SendPmToOps(SetMan.GetString(24), "*** "..user.sNick.." ("..user.sIP..") "..text_to_op_pm.." "..msg)
                        if BanMode == 0 then
                          BanMan.Ban(user,BanReason,BotName,true)
                        end
                        if BanMode == 1 then
                          BanMan.TempBan(user,0,BanReason,BotName,true)
                        end
                        if BanMode == 2 then
                          BanMan.TempBan(user,BanTime,BanReason,BotName,true)
                        end
                        if BanMode == 3 then
                          return true
                        end
                end
    end
end
-----------------------------------------------
function checkForAdvertising(msg) -- проверка на запрещенные адреса
    for i = 1,#adverTable do
        if string.find( msg , adverTable[i] , 1 , true ) then
            return 1
        end
    end
end
-----------------------------------------------
function checkForSafe(msg) -- проверка на разрешенные адреса
    for i = 1,#safeTable do
        if string.find( msg , safeTable[i] , 1 , true ) then
            return 1
        end
    end
end

Автор: Wan 13.4.2012, 22:32

Спасибо пошло