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

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

MyDC.ru _ Запросы скриптов для PtokaX _ Помагите.

Автор: West 10.11.2009, 22:01

Раскрывающийся текст
Код
--[[
    Простой скрипт антирекламы 1.2 на основе скрипта ChatFilter V1.02  by KoYoT
    Совместимость: ptokax 0.4, lua 5.1
    by [fwx]Diver (2:01 30.04.2008)
    Ссылки:
    [url="http://forum.proc.ru/index.php?showforum=24"]http://forum.proc.ru/index.php?showforum=24[/url]
    [url="http://adrium.ipbfree.com"]http://adrium.ipbfree.com[/url]
]]--

sBot   = "ProNet"    -- имя бота
BotReg = 0                -- показывать бота в списке пользователей
CheckPM = 1                -- проверять личку

--[[ тип наказания:
    0 - перманентный бан по нику и IP
    1 - временный бан по нику и IP. время задается в BanTime
    2 - кик
    3 - только предупреждение  ]]--
Chat = 1    -- кара за спам в чате
PM = 3        -- кара за спам в личке, при CheckPM=0 параметр игнорируется
-----------------------

BanTime = 1440    -- время бана в минутах, для режима 1
UserSay = 1      -- заменять фразу с рекламой в чате на  случайное выражение из MessageToAll

text = "\r\n\t\tПредупреждение: Вы нарушили правилa хаба и будете забанены, если продолжите испытывать терпение администрации хаба.\r\nЕсли вы открыли свой новый хаб - это, конечно, просто замечательно. Но то, что вы своими сообщениями об это пытаетесь изнасиловать мозг всех посетителей хаба одновременно - это уже перебор. Нужно заявить миру о своём детище, пишите в форуме. Если кто-то попросил дать ссылку - добро пожаловать к нему в приват."
text_to_op = " пытался сообщить в общий чат следующую фразу: "
text_to_op_pm = " пытался сообщить кому-то в личку фразу: "
sByByText = "Реклама_ban_1d"
sReason = "Реклама_ban_1d"

-- Кого нужно проверять (1 - да, 0 - нет) --
CanDo = {
[-1] = 1,    -- Незарегестрированный
[0] = 0,    -- Мастер
[1] = 0,    -- ОП
[2] = 1,    -- Вип
[3] = 1,    -- Зарегестрированный
[4] = 1,    -- Модератор
[5] = 0,    -- Хозяин хаба
}

-- Что запрещаем
adverTable = {
"%S+%.%S+%.%S+.*[41хХ]%s*[10аА]%s*[14бБ]%s*[2]?[1]?",
"[dD]%s*[cC]%s*[hH]%s*[uU]%s*[bB]%s*:%s*/%s*/",
"%d%d%?%d?%.%d%d%?%d?%.%d%d%?%d?%.%d%d%?%d?%s*:%s*[14][410][14][2]?[1]?",
"[dD][yY][nN][dD][nN][sS]%.[oO][rR][gG]",
"[nN][oO][-][iI][pP]%.[oObB][rRiI][gGzZ]",

}
-- Что разрешаем
safeTable = {
"http://","192.168.148.27","pronet"
}

MessageToAll = {
"Хочеш выделеться? Поставь приставку к нику : #[ProNet] Ваш ник  ",
"Welcom to .:ProNet:. hub ::: /fav in chat ::: ",
}
------------------------------[ Code Section ]------------------------------
function OnStartup()
    if BotReg == 1 then
        Core.RegBot(sBot, "", "", true)
    end
    PhrasLen = table.maxn(MessageToAll)
end

function ChatArrival(tUser,sData,bPM)
    if CanDo[tUser.iProfile] == 0 then
        return false
    end
    local s,e,msg = string.find(sData,"%b<>%s(.*)")
    if checkForAdvertising(msg) then    
        if checkForSafe(msg) then
            return false
        end
        if bPM == nil then
            if UserSay == 1 then
                Core.SendToAll("<"..tUser.sNick.."> "..MessageToAll[math.random(PhrasLen)])
            end
            Core.SendPmToOps(sBot, "*** "..tUser.sNick.." "..text_to_op..msg)
        else
            Core.SendPmToOps(sBot, "*** "..tUser.sNick.." "..text_to_op_pm..msg)
        end
        if bPM == nil then
            Fuckit(tUser,Chat)
        else
            Fuckit(tUser,PM)
        end
        return true
    end
end

function ToArrival(tUser, sData)
    if CheckPM == 1 then
        if ChatArrival(tUser, sData, true) then
            return true
        end
    end
end

function Fuckit(tUser,iType)
    if iType == 0 then
        Core.SendToUser(tUser,"<"..sBot.."> "..sByByText)
        BanMan.Ban(tUser,sReason,sBot,true)
    end
    if iType == 1 then
        Core.SendToUser(tUser,"<"..sBot.."> "..sByByText)
        BanMan.TempBan(tUser,BanTime,sReason,sBot,true)
    end
    if iType == 2 then
        Core.SendToUser(tUser,"<"..sBot.."> "..sByByText)
        Core.Kick(tUser,sBot,sReason)
    end    
    if iType == 3 then
        Core.SendToUser(tUser,"<"..sBot.."> *** "..text)
    end
end

function checkForAdvertising(msg)
    for _,v in ipairs(adverTable) do
        if string.find(msg, v) then
            return true
        end
    end
    return false
end

function checkForSafe(msg)
    for _,v in ipairs(safeTable) do
        if string.find(msg, v) then
            return true
        end
    end
    return false
end



Зделайте,так когда приходило в ЛС сообщения о рекламе,писалось еще IP юзера!!

Автор: Артём 10.11.2009, 22:40

Вот!! big_smile.gif
--[[
Простой скрипт антирекламы 1.2 на основе скрипта ChatFilter V1.02 by KoYoT
Совместимость: ptokax 0.4, lua 5.1
by [fwx]Diver (2:01 30.04.2008)
Ссылки:
http://mydc.ru/r/?http://forum.proc.ru/index.php?showforum=24
http://mydc.ru/r/?http://adrium.ipbfree.com
]]--

sBot = "ProNet" -- имя бота
BotReg = 0 -- показывать бота в списке пользователей
CheckPM = 1 -- проверять личку

--[[ тип наказания:
0 - перманентный бан по нику и IP
1 - временный бан по нику и IP. время задается в BanTime
2 - кик
3 - только предупреждение ]]--
Chat = 1 -- кара за спам в чате
PM = 3 -- кара за спам в личке, при CheckPM=0 параметр игнорируется
-----------------------

BanTime = 1440 -- время бана в минутах, для режима 1
UserSay = 1 -- заменять фразу с рекламой в чате на случайное выражение из MessageToAll

text = "\r\n\t\tПредупреждение: Вы нарушили правилa хаба и будете забанены, если продолжите испытывать терпение администрации хаба.\r\nЕсли вы открыли свой новый хаб - это, конечно, просто замечательно. Но то, что вы своими сообщениями об это пытаетесь изнасиловать мозг всех посетителей хаба одновременно - это уже перебор. Нужно заявить миру о своём детище, пишите в форуме. Если кто-то попросил дать ссылку - добро пожаловать к нему в приват."
text_to_op = " пытался сообщить в общий чат следующую фразу: "
text_to_op_pm = " пытался сообщить кому-то в личку фразу: "
sByByText = "Реклама_ban_1d"
sReason = "Реклама_ban_1d"

-- Кого нужно проверять (1 - да, 0 - нет) --
CanDo = {
[-1] = 1, -- Незарегестрированный
[0] = 0, -- Мастер
[1] = 0, -- ОП
[2] = 1, -- Вип
[3] = 1, -- Зарегестрированный
[4] = 1, -- Модератор
[5] = 0, -- Хозяин хаба
}

-- Что запрещаем
adverTable = {
"%S+%.%S+%.%S+.*[41хХ]%s*[10аА]%s*[14бБ]%s*[2]?[1]?",
"[dD]%s*[cC]%s*[hH]%s*[uU]%s*[bB]%s*:%s*/%s*/",
"%d%d%?%d?%.%d%d%?%d?%.%d%d%?%d?%.%d%d%?%d?%s*:%s*[14][410][14][2]?[1]?",
"[dD][yY][nN][dD][nN][sS]%.[oO][rR][gG]",
"[nN][oO][-][iI][pP]%.[oObB][rRiI][gGzZ]",

}
-- Что разрешаем
safeTable = {
"http://","192.168.148.27","pronet"
}

MessageToAll = {
"Хочеш выделеться? Поставь приставку к нику : #[ProNet] Ваш ник ",
"Welcom to .:ProNet:. hub ::: /fav in chat ::: ",
}
------------------------------[ Code Section ]------------------------------
function OnStartup()
if BotReg == 1 then
Core.RegBot(sBot, "", "", true)
end
PhrasLen = table.maxn(MessageToAll)
end

function ChatArrival(tUser,sData,bPM)
if CanDo[tUser.iProfile] == 0 then
return false
end
local s,e,msg = string.find(sData,"%b<>%s(.*)")
if checkForAdvertising(msg) then
if checkForSafe(msg) then
return false
end
if bPM == nil then
if UserSay == 1 then
Core.SendToAll("<"..tUser.sNick.."> "..MessageToAll[math.random(PhrasLen)])
end
Core.SendPmToOps(sBot, "*** "..tUser.sNick.." ["..tUser.sIP.."] "..text_to_op..msg)
else
Core.SendPmToOps(sBot, "*** "..tUser.sNick.." ["..tUser.sIP.."] "..text_to_op_pm..msg)
end
if bPM == nil then
Fuckit(tUser,Chat)
else
Fuckit(tUser,PM)
end
return true
end
end

function ToArrival(tUser, sData)
if CheckPM == 1 then
if ChatArrival(tUser, sData, true) then
return true
end
end
end

function Fuckit(tUser,iType)
if iType == 0 then
Core.SendToUser(tUser,"<"..sBot.."> "..sByByText)
BanMan.Ban(tUser,sReason,sBot,true)
end
if iType == 1 then
Core.SendToUser(tUser,"<"..sBot.."> "..sByByText)
BanMan.TempBan(tUser,BanTime,sReason,sBot,true)
end
if iType == 2 then
Core.SendToUser(tUser,"<"..sBot.."> "..sByByText)
Core.Kick(tUser,sBot,sReason)
end
if iType == 3 then
Core.SendToUser(tUser,"<"..sBot.."> *** "..text)
end
end

function checkForAdvertising(msg)
for _,v in ipairs(adverTable) do
if string.find(msg, v) then
return true
end
end
return false
end

function checkForSafe(msg)
for _,v in ipairs(safeTable) do
if string.find(msg, v) then
return true
end
end
return false
end