--[[ Простой скрипт антирекламы 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"
} -- Что разрешаем 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
Вот!!
--[[ Простой скрипт антирекламы 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"
} -- Что разрешаем 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