Версия для печати темы
MyDC.ru _ Kорзина _ От: Бан за злоупотребление смайлами
Автор: Setuper 8.5.2009, 0:31
Смайлов полно, и все они разные. Все смайлы предусмотреть нельзя. Какова идея этого скрипта? Как реализовывать не понятно.
Автор: valdis73 8.5.2009, 2:25
Да идея на самом деле супер. Защита от флудерастов.
Автор: Lesh™ 8.5.2009, 3:03
Поддерживаю идею...
Можено ли сделать бан на повторяющееся фразы или слова, например за:
:роза: :роза: :роза:
или
:роза: :цветы: :роза: :цветы: :роза:
Надеюсь смысл понятен.
Автор: valdis73 8.5.2009, 12:03
Вот сделал следущее:
Код
--bot of hub
botname = "Антибот"
--Запрещенные слова
trigs = {
"!say",":lol:","=)",":-D",":)",";-)","LOL"
}
--наблюдение за чатом
function ChatArrival(user,data)
Core.GetUserAllData(user)
local data = string.sub(data,1,-2)
local s,e,msg = string.find(data,"^%b<>%s(.*)$")
if not user.bOperator then -- простой плохой пользователь в главном чате
for i = 1,#trigs do
if (string.find(msg,trigs[i]) ~= nil) then
Core.SendPmToNick(user.sNick,botname, user.sNick..": ты написал: "..msg.." Эта команда запрещена к использованию на хабе, т.к. ботам запрещено швырять смайлы в чат ." )
Core.SendPmToOps(botname,user.sNick.." пытался использовать запрещенную команду флуда смайлами")
return true
end
end
end
end
Слова нужно или смайлы запрещённые добавлять самому. Смайлы передаются всей кучей в личку хулигана. Но реагирует и на один и на сотню.
А как сделать , что бы реагировал на 2 подряд а не на один ?
Автор: Setuper 8.5.2009, 12:34
Данный код вообще запрещает всем использовать смайлы, кроме операторов.
Так не пойдёт.
Считаю идею тухлой.
Автор: fixx 8.5.2009, 12:52
Думатся, что нужен скрипт, запрещающий повторение слова в сообщении более определенного количества раз.
Сюда же прикрутить повторение символов и одинаковых сообщений подряд.
Вроде так?
Автор: valdis73 8.5.2009, 13:49
Конечно так. Но вот кто это сделает?. И было бы неплохо ограничивать по профилям.
Автор: Qwert 8.5.2009, 21:06
Цитата(Setuper @ 8.5.2009, 12:34)
Данный код вообще запрещает всем использовать смайлы, кроме операторов.
Так не пойдёт.
Считаю идею тухлой.
Я не согласен. Не знаю, как у других, но на моем хабе полно любителей разбрасываться смайлами. Идея проста: суть ее я четко и ясно изложил в начале. А разве нельзя сделать так, чтобы смайлы самому можно было добавлять!?
P.S. Поздравляю всех с Днем великой победы!!!
Автор: D-tox 10.5.2009, 7:48
Видел такой скрипт SmilesLimiter под API1 от автора Niсkolya.
Нашел его, вариант переправленный под API2, и свою его переработку с заменой сообщения без бана, но что-то не работает "Прикрепление файлов"
Автор: Qwert 10.5.2009, 10:41
Покопался и нашел этот скрипт в инете. Работоспособность проверена на PtokaX 0.4.1.1.
Бан_за_смайлы_API_2.rar ( 3.62 килобайт )
: 42
Автор: Nickolya 10.5.2009, 12:59
Цитата(D-tox @ 10.5.2009, 8:48)
но что-то не работает "Прикрепление файлов"
Как не работает??? Опиши проблему, ошибку, какой клиент, работает ли в нем js и т.д.
Автор: valdis73 10.5.2009, 15:50
Ошибок не показывает. Просто тупо пропускает смайлы
Автор: D-tox 10.5.2009, 16:58
Цитата(Nickolya @ 10.5.2009, 12:59)
Как не работает??? Опиши проблему, ошибку, какой клиент, работает ли в нем js и т.д.
Не работает в клиентах Opera9.62 (в Опере, еще понятно, js с особенностями) и IE6. При ответе, ниже поля ввода есть надпись "Прикрепление файлов", но никакого элемента управления рядом нет. Я думал, это так и должно быть у новичков...
valdis73, Файлик с описаниями смайлов привёл в соответствие со своим набором смайлов? Впрочем...
Nickolya, а не нужно поменять
Код
Core.TempBan(tCurUser,iBanTime,sBanReason,sBot,0)
на
Код
BanMan.TempBan(tCurUser,iBanTime,sBanReason,sBot,true)
?
Автор: Qwert 10.5.2009, 21:54
Цитата(valdis73 @ 10.5.2009, 15:50)
Ошибок не показывает. Просто тупо пропускает смайлы
Не знаю, у меня все пашет. Вот второй день не могу нарадоваться! Только флудеры чуть огорчены.
Автор: Setuper 10.5.2009, 21:57
ага, надо так:
Код
BanMan.TempBan(tCurUser,iBanTime,sBanReason,sBot,true)
Автор: Lesh™ 10.5.2009, 22:23
Цитата(Qwert @ 10.5.2009, 10:41)
Покопался и нашел этот скрипт в инете. Работоспособность проверена на PtokaX 0.4.1.1.
Бан_за_смайлы_API_2.rar ( 3.62 килобайт )
: 4210.05.2009 22:12:09 - c:\DC\scripts\51_SmilesLimiter.lua:112: bad argument #1 to 'pairs' (table expected, got nil)
Автор: Derk_B_P 11.5.2009, 0:41
Думаю, это ваше решение проблемы. Скрипт не банит, но, флуд искореняет.
Код
-- Стоп Треп - запрещает говорить больше N сообщений подряд в чате
-- Автор Nickolya
-- 06.11.08
sMsg = "Вы разговариваете сам с собой. Дождитесь пока кто-то вам ответит!"
iCnt = 5 --количество пропускаемых сообщений
function Main()
sOne = 1
sBot = frmHub:GetHubBotName()
Core = {}
Core.SendToUser = function(tUser, sData)
tUser:SendData(sData)
end
end
function OnStartup()
sBot = SetMan.GetString(21)
end
iCounter = 0
sNick = ""
function ChatArrival(tUser)
local sUserNick = tUser.sNick or tUser.sName
if sNick == sUserNick then
if iCounter >= iCnt then
Core.SendToUser(tUser, "<"..sBot.."> "..sMsg)
return sOne or true
else
iCounter = iCounter + 1
end
else
sNick = sUserNick
iCounter = 1
end
end
Автор: Nickolya 11.5.2009, 1:20
Цитата(D-tox @ 10.5.2009, 17:58)
Не работает в клиентах Opera9.62 (в Опере, еще понятно, js с особенностями) и IE6. При ответе, ниже поля ввода есть надпись "Прикрепление файлов", но никакого элемента управления рядом нет. Я думал, это так и должно быть у новичков...
А вот это глюк, причем у тебя, все отлично пашет везде, сам пользуюсь оперой 9.63, ие 6 и 7, в гугл хроме и фаерфоксе тоже все ок, так что ищи проблему у себя, в жабабаскриптах, а может еще глубже... Система выглядит вот так:
Цитата(D-tox @ 10.5.2009, 17:58)
Nickolya, а не нужно поменять
Код
Core.TempBan(tCurUser,iBanTime,sBanReason,sBot,0)
на
Код
BanMan.TempBan(tCurUser,iBanTime,sBanReason,sBot,true)
?
Нужно, давно это было, не судите стого
Автор: Lesh™ 11.5.2009, 23:19
Цитата(Qwert @ 10.5.2009, 10:41)
Покопался и нашел этот скрипт в инете. Работоспособность проверена на PtokaX 0.4.1.1.
Бан_за_смайлы_API_2.rar ( 3.62 килобайт )
: 42Помогите...
Цитата
11.05.2009 22:54:04 - c:\DC\scripts\51_SmilesLimiter.lua:112: bad argument #1 to 'pairs' (table expected, got nil)
11.05.2009 22:56:18 - c:\DC\scripts\51_SmilesLimiter.lua:112: bad argument #1 to 'pairs' (table expected, got nil)
11.05.2009 22:57:14 - c:\DC\scripts\51_SmilesLimiter.lua:112: bad argument #1 to 'pairs' (table expected, got nil)
11.05.2009 22:57:59 - c:\DC\scripts\51_SmilesLimiter.lua:112: bad argument #1 to 'pairs' (table expected, got nil)
Автор: Nickolya 12.5.2009, 0:38
Попробуй заменить
Код
-- Папка бота:
sPath = "SmilesLimiter\\"
на
Код
-- Папка бота:
sPath = Core.GetPtokaXPath().."SmilesLimiter/"
Автор: Lesh™ 12.5.2009, 5:43
Цитата(Nickolya @ 12.5.2009, 0:38)
Попробуй заменить
Код
-- Папка бота:
sPath = "SmilesLimiter\\"
на
Код
-- Папка бота:
sPath = Core.GetPtokaXPath().."SmilesLimiter/"
пробвал, тоже самое....
Автор: Lesh™ 12.5.2009, 15:17
Nickolya, спасибо за скрипт, теперь работает, тока не плохо было бы еще, что бы было предупреждение и смайлы не проходили в чат))))а то многие умники по 100 смайлов кидают, а скрипт все рано их пропускает (((
Автор: Nickolya 13.5.2009, 9:01
1. Чтобы по получению предупреждений о бане, именно когда превышен лимит предупреждений, дописываем сразу после
Код
BanMan.TempBan(tCurUser,iBanTime,sBanReason,sBot,true)
такую строчку:
Код
return true
2. Чтобы смайлы не пропускались в чат при предупреждении дописываем после
Код
Core.SendToUser(tCurUser, "<"..sBot.."> *** "..tCurUser.sNick..", в одном сообщении разрешено максимум "..(iBadSmilesCount - 1).." смайлов! В твоем же их "..iSmilesCount.." штук! Будь аккуратнее, после "..iWarnsToBanUser.." таких предупреждений ты получишь бан на "..iBanTime.." минут!!! Сейчас у тебя "..tUsersWarns[tCurUser.sNick].." предупржедений.")
это:
Код
return true
3. А если хотите ограничить количество смайлов в сообщении, чтобы когда превышена какая-то граница, сообщение не отсылалось, дописываем после, но это при условии что вы не сделали пункт два!
Код
-- Кол-во смайлов за которое юзер будет получать предупреждение:
iBadSmilesCount = 6
вот такие строчки
Код
-- Кол-во смайлов за которое юзер будет получать предупреждение И сообщение не будет пропускаться в чат
iBadSmilesCountLimit = 20
И ПЕРЕД вот этим
Код
Core.SendToUser(tCurUser, "<"..sBot.."> *** "..tCurUser.sNick..", в одном сообщении разрешено максимум "..(iBadSmilesCount - 1).." смайлов! В твоем же их "..iSmilesCount.." штук! Будь аккуратнее, после "..iWarnsToBanUser.." таких предупреждений ты получишь бан на "..iBanTime.." минут!!! Сейчас у тебя "..tUsersWarns[tCurUser.sNick].." предупржедений.")
добавляем следующий код:
Код
if iSmilesCount >= iBadSmilesCountLimit then
Core.SendToUser(tCurUser, "<"..sBot.."> *** "..tCurUser.sNick..", в одном сообщении разрешено максимум "..(iBadSmilesCount - 1).." смайлов! В твоем же их "..iSmilesCount.." штук! Будь аккуратнее, после "..iWarnsToBanUser.." таких предупреждений ты получишь бан на "..iBanTime.." минут!!! Сейчас у тебя "..tUsersWarns[tCurUser.sNick].." предупржедений. А еще и ввиду того что ты превысил предел в "..iBadSmilesCountLimit.." смайлов, твое сообщение не было пропущено в чат!;)")
return true
end
Пробуйте...
И обращайтесь, всегда попробуем помочь и понять!
Автор: Lesh™ 13.5.2009, 19:36
Еще раз спасибо, работает, но немного не так (((
при превышении лимита смайлов, предупреждения раздает и не банит))) бан будет как только смайлов станет меньше 20
Цитата
[18:18:15] <PtokaX> *** Lesh™, в одном сообщении разрешено максимум 5 смайлов! В твоем же их 33 штук! Будь аккуратнее, после 3 таких предупреждений ты получишь бан на 10 минут!!! Сейчас у тебя 10 предупреждений. А еще и ввиду того что ты превысил предел в 20 смайлов, твое сообщение не было пропущено в чат!