Антикапс, API1, API2 | Без наворотов, зато работает |
Здравствуйте, гость ( Вход | Регистрация )
Антикапс, API1, API2 | Без наворотов, зато работает |
22.3.2009, 22:26
Сообщение
#41
|
|
Наруто на аваторке Группа: Пользователи Сообщений: 2 606 Регистрация: 11.10.2008 Из: Харькова Пользователь №: 771 Спасибо сказали: 774 раза |
Ошибка пропала ,и проверка на капс тоже пропала скрипт вообще умер
вот он страдалец,может я что-то не туда втулил,если не сложно то посмотри,а если сложно то я тогда удалю его лучше и подожду пока автор ответит NoCaps___v1_1_.1b__.lua ( 2.52 килобайт ) Кол-во скачиваний: 97 |
|
|
22.3.2009, 22:46
Сообщение
#42
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
Код function ChatArrival(tUser, sData)
if tAdmins[tUser.iProfile] and tAdmins[tUser.iProfile] == 1 then return end local sNick = tUser.sNick or tUser.sName sData = sData:sub(sNick:len() + 4, -2) local nk, data = sData:match"(%S+): (.*)" if nk and ((not frmHub and Core.GetUser(nk)) or (frmHub and GetItemByName(nk))) then sData = data end local sSubed, bChanged = MadeNormLen(sData, iSymbLimit, "%p+") if bChanged then sData = sSubed end if sData:len() >= iCheckSize then local sNoSpaces = sData:gsub("[%s%с%d%p]", "") local iNoSpasesLen = sNoSpaces:len() if iNoSpasesLen > 0 then local iCapsLen = 0 local sChData = sData local sNoCapsData = sNoSpaces:gsub("["..sBigData.."]", function(c) iCapsLen = iCapsLen + 1 sChData = sChData:gsub(c, LowString(c)) return "" end) local iValue = iCapsLen / iNoSpasesLen if iValue >= iPersents then if not bChanged then bChanged = true end if nk then sChData = nk..": "..sChData end sData = sChData end end end if bChanged then sData:SendToAll(sNick) return sRetVal end end |
|
|
22.3.2009, 22:54
Сообщение
#43
|
|
Наруто на аваторке Группа: Пользователи Сообщений: 2 606 Регистрация: 11.10.2008 Из: Харькова Пользователь №: 771 Спасибо сказали: 774 раза |
2Setuper Спасибо за помощь!!!
|
|
|
24.3.2009, 19:35
Сообщение
#44
|
|
Начинающий Группа: Пользователи Сообщений: 13 Регистрация: 9.3.2009 Пользователь №: 2 528 Спасибо сказали: 0 раз |
Большое спасибо, теперь скрипт не коверкает ники, но появилось ещё одно, можно ли сделать так чтобы он так же не трогал magnet ссылки =(
пример ссылки m*agnet:?xt=urn:tree:tiger:BH7XHWEXUWDTXJVEJMXLTL3HNSQKR6ODB7Y4SJI&xl=4151973&dn=%D0%9B%D0%B8%D0%B3%D0%B0%D0%BB%D0%B0%D0%B9%D0%B7+-+%D1%80%D0%BE%D0%B6%D0%B4%D1%91%D0%BD%D0%BD%D1%8B%D0%B5+%D0%B2+%D0%A1%D0%A1%D0%A1%D0%A0.mp3 а скрипт исправляет на m*agnet:?xt=urn:tree:tiger:bh7xhwexuwdtxjvejmxltl3hnsqkr6odb7y4sji&xl=4151973&dn=%d0%9b%d0%b8%d0%b3%d0%b0%d0%bb%d0%b0%d0%b9%d0%b7+-+%d1%80%d0%be%d0%b6%d0%b4%d1%91%d0%bd%d0%bd%d1%8b%d0%b5+%d0%b2+%d0%a1%d0%a1%d0%a1%d0%a0.mp3 без *
Прикрепленные файлы
|
|
|
24.3.2009, 19:57
Сообщение
#45
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
Код function ChatArrival(tUser, sData)
if tAdmins[tUser.iProfile] and tAdmins[tUser.iProfile] == 1 then return end local sNick = tUser.sNick or tUser.sName sData = sData:sub(sNick:len() + 4, -2) if sData:match"magnet:%?xt=urn:tree:tiger:" then return end ... |
|
|
23.4.2009, 23:50
Сообщение
#46
|
|
Активный участник Группа: Заблокированные Сообщений: 87 Регистрация: 16.10.2008 Пользователь №: 805 Спасибо сказали: 35 раз |
В 3 раза меньше кода, чем в представленном здесь скрипте.
Правда, только для API2. Код -- Размер сообщения с которого начинает реагировать скрипт:
iCheckSize = 5 -- Процент капса, при котором сработает скрипт: iPersents = 80 ChatArrival=function(sUser,sData) local noCaps,f=isYELL(sData) if f then Core.SendToAll("<"..sUser.sNick.. "> " ..noCaps) return true end end isYELL=function (sData) local flag=false if sData:match"magnet:%?xt=urn:tree:tiger:" then return sData,flag end local nk, data = sData:match"^(%S+): (.*)" if nk then sData = data end local nsp = sData:gsub ("[%s%p%c]", "") if nsp:len() > iCheckSize then local NoSpacesLen = nsp:len() local NoCAPSLen = (nsp:gsub("[%uА-ЯЁ]", "")):len() if (NoSpacesLen - NoCAPSLen)/NoSpacesLen * 100 > iPersents then sData=ToLowerCase(sData) flag=true end end if nk then sData=nk..": "..sData end return sData,flag end ToLowerCase = function(s) for i = 192,223 do s = s:gsub(string.char(i), string.char(i+32)) end s = s:gsub(string.char(168), string.char(184)) return s:lower() end |
|
|
23.4.2009, 23:56
Сообщение
#47
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
В функции ToLowerCase к нижнему регистру не приводится буква Ё.
|
|
|
23.4.2009, 23:57
Сообщение
#48
|
|
Активный участник Группа: Заблокированные Сообщений: 87 Регистрация: 16.10.2008 Пользователь №: 805 Спасибо сказали: 35 раз |
А я и думаю, зачем вы меняете 168 на 184...
|
|
|
24.4.2009, 0:12
Сообщение
#49
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
Замечательный алгоритм перевода в нижний регистр, если не считать баг с буквой Ё. Респект.
Функция значительно оптимальнее, чем у меня. |
|
|
24.4.2009, 0:15
Сообщение
#50
|
|
Активный участник Группа: Заблокированные Сообщений: 87 Регистрация: 16.10.2008 Пользователь №: 805 Спасибо сказали: 35 раз |
Вроде поправил букву Ё
|
|
|
24.4.2009, 0:22
Сообщение
#51
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
Можно убрать ещё одну строчку в функции, написав так:
Код ToLowerCase = function(s) for i = 192, 223 do s = s:gsub(string.char(i), string.char(i + 32)) end s = s:gsub(string.char(168), string.char(184)) return s:lower() end Респект за представленную функцию. очень оптимальное решение |
|
|
24.4.2009, 9:44
Сообщение
#52
|
|
Начинающий Группа: Пользователи Сообщений: 10 Регистрация: 9.8.2008 Из: Россия, Тула Пользователь №: 351 Спасибо сказали: 0 раз |
Нефига если просто капсом писать в чат то повторяется ник от которого пишешь и если писать кому то то к сообщению добавляется вертикальная табуляция после ника того кому пишешь
Цитата [10:41:28] <plugman2> <plugman2> чварполсмрпсапмоирпоирлтыпоирлывпоилыполтватлдава
[10:42:55] <plugman2> OpChat: фыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыы |
|
|
26.3.2010, 18:58
Сообщение
#53
|
|
Активный участник Группа: Пользователи Сообщений: 80 Регистрация: 25.2.2009 Пользователь №: 2 359 Спасибо сказали: 6 раз |
Замени
Код Core.SendToAll("<"..sUser.sNick.. "> " ..noCaps) на Код Core.SendToAll("" ..noCaps)
|
|
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последнее сообщение | |
---|---|---|---|---|---|
От: Антикапс От темы с ID: 10 |
0 | Wariner | 4 163 | 22.3.2009, 21:28 Посл. сообщение: Wariner | |
От: Антикапс От темы с ID: 10 |
1 | степашка | 5 655 | 19.3.2009, 15:19 Посл. сообщение: Ears |
|
Сейчас: 23.11.2024, 12:05 |