|
Здравствуйте, гость ( Вход | Регистрация )
|
![]()
Сообщение
#41
|
|
![]() Наруто на аваторке ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 2 606 Регистрация: 11.10.2008 Из: Харькова Пользователь №: 771 Спасибо сказали: 774 раза ![]() |
Ошибка пропала ,и проверка на капс тоже пропала
![]() вот он страдалец,может я что-то не туда втулил,если не сложно то посмотри,а если сложно то я тогда удалю его лучше и подожду пока автор ответит ![]() ![]() |
|
|
![]() |
![]()
Сообщение
#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 |
|
|
![]() ![]()
Сообщение
#43
|
|
![]() Наруто на аваторке ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 2 606 Регистрация: 11.10.2008 Из: Харькова Пользователь №: 771 Спасибо сказали: 774 раза ![]() |
2Setuper
![]() ![]() |
|
|
![]()
Сообщение
#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 без *
Прикрепленные файлы
|
|
|
![]()
Сообщение
#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 ... |
|
|
![]()
Сообщение
#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 |
|
|
![]()
Сообщение
#47
|
|
![]() RusHub team lead ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз ![]() |
В функции ToLowerCase к нижнему регистру не приводится буква Ё.
|
|
|
![]()
Сообщение
#48
|
|
![]() Активный участник ![]() ![]() ![]() Группа: Заблокированные Сообщений: 87 Регистрация: 16.10.2008 Пользователь №: 805 Спасибо сказали: 35 раз ![]() |
А я и думаю, зачем вы меняете 168 на 184...
|
|
|
![]()
Сообщение
#49
|
|
![]() RusHub team lead ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз ![]() |
Замечательный алгоритм перевода в нижний регистр, если не считать баг с буквой Ё. Респект.
Функция значительно оптимальнее, чем у меня. |
|
|
![]()
Сообщение
#50
|
|
![]() Активный участник ![]() ![]() ![]() Группа: Заблокированные Сообщений: 87 Регистрация: 16.10.2008 Пользователь №: 805 Спасибо сказали: 35 раз ![]() |
Вроде поправил букву Ё
|
|
|
![]()
Сообщение
#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 Респект за представленную функцию. очень оптимальное решение ![]() |
|
|
![]()
Сообщение
#52
|
|
![]() Начинающий ![]() Группа: Пользователи Сообщений: 10 Регистрация: 9.8.2008 Из: Россия, Тула Пользователь №: 351 Спасибо сказали: 0 раз ![]() |
Нефига если просто капсом писать в чат то повторяется ник от которого пишешь и если писать кому то то к сообщению добавляется вертикальная табуляция после ника того кому пишешь
Цитата [10:41:28] <plugman2> <plugman2> чварполсмрпсапмоирпоирлтыпоирлывпоилыполтватлдава
[10:42:55] <plugman2> OpChat: фыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыы |
|
|
![]()
Сообщение
#53
|
|
![]() Активный участник ![]() ![]() ![]() Группа: Пользователи Сообщений: 80 Регистрация: 25.2.2009 Пользователь №: 2 359 Спасибо сказали: 6 раз ![]() |
Замени
Код Core.SendToAll("<"..sUser.sNick.. "> " ..noCaps) на Код Core.SendToAll("" ..noCaps)
|
|
|
![]() ![]() |
Похожие темы
Тема | Ответов | Автор | Просмотров | Последнее сообщение | |
---|---|---|---|---|---|
![]() |
![]() От темы с ID: 10 |
0 | Wariner | 4 251 | 22.3.2009, 21:28 Посл. сообщение: Wariner |
![]() |
От: Антикапс От темы с ID: 10 |
1 | степашка | 5 765 | 19.3.2009, 15:19 Посл. сообщение: Ears |
![]() |
Сейчас: 20.2.2025, 5:22 |