Приветствуем вас на форуме проекта WoW Circle. Если вы читаете это, значит не зарегистрировались у нас. Для того, чтобы получить доступ к расширенным возможностям нашего форума нажмите сюда и пройди регистрацию, которая не займет у вас много времени. После регистрации будут доступны новые, более расширенные, возможности.
Нужна помощь с Аддоном/Кодом

Упомянутые в теме пользователи:

Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 12 из 18
  1. #1
    Старожил Аватар для Raxaji
    Регистрация
    06.07.2014
    Адрес
    Мир Грёз
    Сообщений
    188
    Поблагодарил(а)
    120
    Получено благодарностей: 105 (сообщений: 45).
    Репутация: 105

    Lightbulb Нужна помощь с Аддоном/Кодом (Фильтр чата)

    Нужна помощь с Аддоном/Кодом

    В общем задача в следующем.

    1. Поймать сообщение в определенном окне чата по набору ключевых слов.
    К примеру: гильдия+pve+набор
    Стоит учесть, что если не будет хватать одного из ключевых слов, то сообщение не перехватывать.
    2. Заблокировать его в том окне.
    3. Скопировать его в другое окно.

    Звучит просто, но знаю, что на самом деле все куда сложнее, потому и прошу помочь, сам врятли осилю. =З




    Большое СПАСИБО! Ururu за помощь!

    В общем вот такой полезный небольшой аддончик получился:

    PHP код:
    -- Автор Ururu WoWCircle

    do
        
    local o=ChatFrame3.AddMessage -- Окно чатав котором ловить сообщения
        local f 
    = {
        
    -- 
    Пример применения фильтров
    --        {
    --            {
    3,4,5},        --Окна чатав которые копировать сообщения
    --            {"+","-"},        --Игнорировать сообщенияесли в нём эти слова (В случае ненадобностиоставить скобки пустыми - {} )
    --            {
    "=","*"},        --Копировать сообщенияесли в нём эти слова (Для использования комбинированного фильтразаполнить значения в поля ниже)
    --            {
    "1","2"}        --Копировать сообщенияесли в нём эти слова (Для использования одиночного фильтравставить вместо значения пробел - {" "})
    --        },

    -- 
    Список всех фильтров

            
    {
                {
    8}, -- Набор в Гильдии
                
    {"хватит""надоели""флуд""куплю""продам"},
                {
    "ги ""guild""гильди"" ги"" рт""рт "" рт ""йотунхейм""faradenza""all we need is luck""tuman"},
                {
    "набор""нужны""мск""людей""бойцов""набираю""epgp""принимает""нид"}
            },
            {
                {
    7}, -- РСЦЛКИВК
                
    {"куплю""продам"},
                {
    "цлк""рс""ивк"},
                {
    " 10""10 ""10об""10гер""10хм""10 об""10 гер""10 хм"," 25""25 ""25об""25гер""25хм""25 об""25 гер""25 хм"}
            },
            {
                {
    9}, -- ИКОССА
                
    {"куплю""продам"},
                {
    "ик""ос""са"},
                {
    " 10""10 ""10об""10гер""10хм""10 об""10 гер""10 хм"," 25""25 ""25об""25гер""25хм""25 об""25 гер""25 хм"}
            },



        }
        
        function 
    ChatFrame3:AddMessage(m,...) -- Окно чатав котором ловить сообщения
            
    for _,v in ipairs(f) do
                
    local n 0
                
    for _,j in ipairs(v[2]) do if m:lower():find(jthen n=break end end
                
    if n==0 then
                    
    for i=3,#v do
                        
    for _,j in ipairs(v[i]) do if m:lower():find(jthen n=break end end
                        
    if n==0 then break else n=
                            
    if i==#v then 
                                
    if Prat then 
                                    Prat
    .loading true 
                                    
    for _,n in ipairs(v[1]) do _G["ChatFrame"..n]:AddMessage(m,...) end
                                    Prat
    .loading false
                                
    else
                                    for 
    _,n in ipairs(v[1]) do _G["ChatFrame"..n]:AddMessage(m,...) end
                                end
                                
    return
                            
    end 
                        end
                    end
                end
            end
            o
    (self,m,...)
        
    end
    end 



    Есть незначительный баг. В фильтре не используйте квадратные или круглые скобки. Иначе будет игнорироваться второй фильтр. То есть если выставить в первом фильтре "са", а во втором "10", тогда фильтр будет применяться не только к сообщениям с комбинацией слов "са" и "10". Но и просто к "са". Игнорируя второй фильтр.




    А может кто нибудь этот аддончик оформить визуально? То есть добавить возможность настройки во время игры?

    То есть допустим тыкаем кнопку "добавить фильтр", а он нам выдает вот такой список для заполнения:

    Выбор окна(окон) из которого будут копироваться сообщения.
    Выбор окна(окон) в которые будут копироваться сообщения.
    Первый фильтр сообщений
    Второй фильтр сообщений.
    Фильтр исключений.


    Так же, в отдельном окне аддона отображение всех внесенных фильтров и возможность их редатирования и удаления...
    Примерно так же, как в коде.


    Я понимаю, что это уже сложнее, чем сырой код, но может кто нибудь поможет? =З

  2. #2
    Старожил
    Регистрация
    17.06.2018
    Сообщений
    259
    Поблагодарил(а)
    6
    Получено благодарностей: 148 (сообщений: 106).
    Репутация: 148
    самый простой пример, из первого окна в третье:
    PHP код:
    do
        
    local o=ChatFrame1.AddMessage
        local f 
    = {
            {
    "гильдия","pve","набор"},
            {
    "+","-"},
            {
    "=","1"},
        } 
        function 
    ChatFrame1:AddMessage(m,r,g,b,a,h
            if 
    h then o(self,m,r,g,b,a)
            else
                for 
    k,v in ipairs(f) do
                    
    local n 0
                    
    for i=1,#v do if m:find(v[i]) then n=n+1 if n==#v then ChatFrame3:AddMessage(m,r,g,b,a,true) return end end end
                
    end
                o
    (self,m,r,g,b,a)
            
    end
        end
    end 

  3. 1 пользователь сказал cпасибо Ururu за это полезное сообщение:

    Raxaji (10.05.2019)

  4. #3
    Старожил Аватар для Raxaji
    Регистрация
    06.07.2014
    Адрес
    Мир Грёз
    Сообщений
    188
    Поблагодарил(а)
    120
    Получено благодарностей: 105 (сообщений: 45).
    Репутация: 105
    Цитата Сообщение от Ururu Посмотреть сообщение
    самый простой пример, из первого окна в третье:
    Что то явно пошло не так...

    Перехватывает абсолютно все сообщения. Вне зависимости от фильтра.
    Соответственно блокирует и копирует их в другое окно.
    Но и в другом окне не все гладко. Во первых время дублируется(это из за прата, не столь критично), а во вторых сообщения добавляются не в том порядке. То есть сообщения добавляюся не снизу, а сверху...

    Я проверял код вот в таком виде:

    PHP код:
    do
        
    local o=ChatFrame3.AddMessage
        local f 
    = {
            {
    "Ргер"},
            {
    "+","-"},
            {
    "=","1"},
        } 
        function 
    ChatFrame3:AddMessage(m,r,g,b,a,h
            if 
    h then o(self,m,r,g,b,a)
            else
                for 
    k,v in ipairs(f) do
                    
    local n 0
                    
    for i=1,#v do if m:find(v[i]) then n=n+1 if n==#v then ChatFrame7:AddMessage(m,r,g,b,a,true) return end end end
                
    end
                o
    (self,m,r,g,b,a)
            
    end
        end
    end 

  5. #4
    Старожил
    Регистрация
    17.06.2018
    Сообщений
    259
    Поблагодарил(а)
    6
    Получено благодарностей: 148 (сообщений: 106).
    Репутация: 148
    Цитата Сообщение от VladimirSS9 Посмотреть сообщение
    Перехватывает абсолютно все сообщения. Вне зависимости от фильтра.
    Соответственно блокирует и копирует их в другое окно.
    скорей всего у тебя луа файл не в utf-8, не понимает русские буквы.

    Цитата Сообщение от VladimirSS9 Посмотреть сообщение
    Во первых время дублируется(это из за прата, не столь критично), а во вторых сообщения добавляются не в том порядке. То есть сообщения добавляюся не снизу, а сверху...
    PHP код:
    do
        
    local o=ChatFrame1.AddMessage
        local f 
    = {
            {
    "гильдия","pve","набор"},
            {
    "+","-"},
            {
    "=","1"},
        } 
        function 
    ChatFrame1:AddMessage(m,...)
            for 
    k,v in ipairs(f) do
                
    local n 0
                
    for i=1,#v do 
                    
    if m:lower():find(v[i]) then 
                        n
    =n+
                        
    if n==#v then 
                            
    if Prat then Prat.loading true ChatFrame3:AddMessage(m,...) Prat.loading false else ChatFrame3:AddMessage(m,...) end return
                        
    end
                    
    else break end 
                end
            end
            o
    (self,m,...)
        
    end
    end 

  6. 1 пользователь сказал cпасибо Ururu за это полезное сообщение:

    Raxaji (10.05.2019)

  7. #5
    Ветеран форума Аватар для LinxFree
    Регистрация
    16.06.2013
    Сообщений
    990
    Поблагодарил(а)
    146
    Получено благодарностей: 133 (сообщений: 98).
    Репутация: 175
    Цитата Сообщение от VladimirSS9 Посмотреть сообщение
    Нужна помощь с Аддоном/Кодом

    В общем задача в следующем.

    1. Поймать сообщение в определенном окне чата по набору ключевых слов.
    К примеру: гильдия+pve+набор
    Стоит учесть, что если не будет хватать одного из ключевых слов, то сообщение не перехватывать.
    2. Заблокировать его в том окне.
    3. Скопировать его в другое окно.


    Звучит просто, но знаю, что на самом деле все куда сложнее, потому и прошу помочь, сам врятли осилю. =З
    Ты хочешь помочь вот с Этим? Если да, то пойдёт. но по мне так их лучше в газовую камеру отправлять.
    PHP код:
    do
        
    local o=ChatFrame1.AddMessage
        local f 
    = {
            {
    "гильдия","pve","набор"},
            {
    "+","-"},
            {
    "=","1"},
        } 
        function 
    Сослать в Газовую камеру1:AddMessage(m,расстрелять.)
            for 
    k,v in ipairs(f) do
                
    local n 0
                
    for i=1,#v do 
                    
    if m:lower():find(v[i]) then 
                        n
    =n+
                        
    if n==#v then 
                            
    if Prat then Prat.loading true ChatFrame3:AddMessage(m,растсрелятьPrat.loading false else ChatFrame3:AddMessage(m,расстрелятьend return
                        
    end
                    
    else break end 
                end
            end
            o
    (self,m,расстелять)
        
    end
    end 
    Этот аддон можно использовать модераторам, для того чтобы начать выдавать им муты. В рамках "новых" правил, которые, надеюсь в связи с некоторыми поправками в скором введут. Выдавать прям мут по ключевым словам в канале All вот это будет тема.
    Кто-нить на модерку его напишите.

    - - - Updated - - -

    Цитата Сообщение от Ururu Посмотреть сообщение
    скорей всего у тебя луа файл не в utf-8, не понимает русские буквы.
    Редактируй Notepad++
    Последний раз редактировалось LinxFree; 10.05.2019 в 13:40.
    "Одержать сто побед в ста битвах — это не вершина воинского искусства. Повергнуть врага без сражения — вот вершина."

  8. #6
    Старожил Аватар для Raxaji
    Регистрация
    06.07.2014
    Адрес
    Мир Грёз
    Сообщений
    188
    Поблагодарил(а)
    120
    Получено благодарностей: 105 (сообщений: 45).
    Репутация: 105
    Цитата Сообщение от Ururu Посмотреть сообщение
    скорей всего у тебя луа файл не в utf-8, не понимает русские буквы.
    Цитата Сообщение от LinxFree Посмотреть сообщение
    Редактируй Notepad++
    Я конечно не самый умный парень, но столь очевидные вещи знаю ^_^

    Скрытый текст




    [свернуть]


    Фильтр не хочет работать =(

    Когда включены все аддоны, похоже идет какой то конфликт и он блокирует все сообщения. Но это не важно. Пока не важно.
    Он явно перехватывает сообщения не по фильтру, а по какому то, другому правилу...
    Запустил только этот код. В итоге получилось как то так. Вот видео:

    Видео удалил



    Цитата Сообщение от LinxFree Посмотреть сообщение
    Ты хочешь помочь вот с Этим?
    Цитата Сообщение от LinxFree Посмотреть сообщение
    Этот аддон можно использовать модераторам
    Даже и не думал о чем то подобном. Просто хочу рассортировать флуд в "Поиске спутников" по разным окнам чата.
    К примеру Гильдии в одном окне, Куплю-Продам в другом, ЦЛК и РС в третьем...

  9. #7
    Ветеран форума Аватар для LinxFree
    Регистрация
    16.06.2013
    Сообщений
    990
    Поблагодарил(а)
    146
    Получено благодарностей: 133 (сообщений: 98).
    Репутация: 175
    Цитата Сообщение от VladimirSS9 Посмотреть сообщение
    Даже и не думал о чем то подобном. Просто хочу рассортировать флуд в "Поиске спутников" по разным окнам чата.
    К примеру Гильдии в одном окне, Куплю-Продам в другом, ЦЛК и РС в третьем...
    Так это хотят все. Но проблема в том, что зайдя на чистый клиент нормальный игрок будет видеть этот спам и ему нужно будет с головой погрузиться в установку аддонов для его сортировки. Я за решение на строне сервера.
    Если доработаешь до ума предложи этот вариант модераторам для новых правил по которым они (первое время) будуть мутать спам гильд

    Эмм. подождите. А нельзя ли по этому принципу переносить для всех чтобы не выдавать муты спамерам
    /Summoned Animagus

    Ждём ответа в Этой теме
    Последний раз редактировалось LinxFree; 10.05.2019 в 21:13.
    "Одержать сто побед в ста битвах — это не вершина воинского искусства. Повергнуть врага без сражения — вот вершина."

  10. #8
    Старожил Аватар для Raxaji
    Регистрация
    06.07.2014
    Адрес
    Мир Грёз
    Сообщений
    188
    Поблагодарил(а)
    120
    Получено благодарностей: 105 (сообщений: 45).
    Репутация: 105
    Похоже данный код несовместим с Prat... Это плохо. Prat очень удобная штука.

    При включенном Prat'e, все сообщения переносятся в новую вкладку. То есть фильтр полностью игнорируется...

    При выключенном Prat'e(Да и вообще всех аддонах) сообщения переносятся вообще не понятно как... Честно пытался поймать закономерность, но ничего не вышло =)

    - - - Updated - - -

    После отключения в Prat функции Timestamps, код стал работать так же, как при полностью отключенных аддонах.

    Сейчас нужно фильтр переписать по другому... Я сам конечно пытаюсь найти что то похожее в других аддонах, но что то у меня идет не так как надо =З

    - - - Updated - - -

    Понял, какие именно сообщения он фильтрует.

    Только те в которых одновременно присутствуют + и - ... На другие фильтры почему то не реагирует...

    - - - Updated - - -

    Если в фильтре использовать английские слова, то их он так же прекрасно фильтрует...

    - - - Updated - - -

    В общем ясно, проблема всё таки в кодировке... Только вот не понимаю как её решить...
    В первые сталкиваюсь с подобной ситуацией... Есть идеи?

    С латницей, символами и цифрами всё в порядке...

    Видео удалил

    - - - Updated - - -

    Всё ясно, приношу глубочайшие извенения за гемморой, который тут развел...

    Всё прекрасно работает... Не знаю почему, но после того, как я сменил кодировку на обыную UTF-8, вместо UTF-8 без BOM и перезапустил игру. Русский текст начал нормально фильтроваться. Код прекрасно работает! Работает с включенным Prat и без него!



    Видео удалил

    Теперь осталось только заполнить код нужными фильтрами и всё, будет поставлена жирная точка бесконечному флуду в "Поиске спутников" !

    Огромное СПАСИБО ururu!!!

    - - - Updated - - -

    Ах да, мне еще интересно, а можно добавить слова исключения?

    Допустим мне нужно сообщения в котором присутствуют слова "цлк" и "10", но при этом мне не нужно сообщение если в нем так же есть слова "гильди" и "ги"

    Такое не сложно дописать в код? =З

    - - - Updated - - -

    То есть к примеру имеем сообщения такого вида:

    Собираю цлк 10 об нужны все - это проходит фильтр

    В гильдию "упыри" нужны челики от 5к гс. Проходим цлк 10 об, рс и т.п. - это сообщение фильтр должен проигнорировать

    - - - Updated - - -

    А еще добавить чувствительность к регистру букв можно? =З

    - - - Updated - - -

    Все так, как я и хотел, еще раз пасиб. =З
    Но вопросы выше, всё ещё интересны ^_^

    Видео удалил

    Вот код, который теперь я буду использовать, ну если кому надо:
    Копировать сообщения из 3го окна в 7е и 8е.

    PHP код:
    do 
        
    local o=ChatFrame3.AddMessage 
        local f 
    = { 
            {
    "цлк""25"},
            {
    "цлк""10"},
            {
    "рс""25"},
            {
    "рс""10"},
            {
    "ик""25"},
            {
    "ик""10"},
            {
    "ивк""25"},
            {
    "ивк""10"},
            {
    "ос""25"},
            {
    "ос""10"},
            {
    "оня""25"},
            {
    "оня""10"},
            {
    "оню""25"},
            {
    "оню""10"},
        }  
        function 
    ChatFrame3:AddMessage(m,...) 
            for 
    k,v in ipairs(f) do 
                
    local n 
                
    for i=1,#v do  
                    
    if m:lower():find(v[i]) then  
                        n
    =n+1  
                        
    if n==#v then  
                            
    if Prat then Prat.loading true ChatFrame7:AddMessage(m,...) Prat.loading false else ChatFrame7:AddMessage(m,...) end return 
                        
    end 
                    
    else break end  
                end 
            end 
            o
    (self,m,...) 
        
    end 
    end

    do 
        
    local o=ChatFrame3.AddMessage 
        local f2 
    = { 
            {
    "гильди"},
            {
    "ги""набор"},
            {
    "ги""нужны"},
            {
    "guild"},
        }  
        function 
    ChatFrame3:AddMessage(m,...) 
            for 
    k,v in ipairs(f2) do 
                
    local n 
                
    for i=1,#v do  
                    
    if m:lower():find(v[i]) then  
                        n
    =n+1  
                        
    if n==#v then  
                            
    if Prat then Prat.loading true ChatFrame8:AddMessage(m,...) Prat.loading false else ChatFrame8:AddMessage(m,...) end return 
                        
    end 
                    
    else break end  
                end 
            end 
            o
    (self,m,...) 
        
    end 
    end 
    - - - Updated - - -

    Еще заметил, что линк некоторых предметов так же переносится в другое окно чата. Я точно знаю, что линк предмета состоит из кода букв и цифр. И похоже в этом коде, изредка могут быть совпадения с фильтрами.
    Можно как то исключить линки предметов из фильтрации?..

  11. #9
    Ветеран форума Аватар для LinxFree
    Регистрация
    16.06.2013
    Сообщений
    990
    Поблагодарил(а)
    146
    Получено благодарностей: 133 (сообщений: 98).
    Репутация: 175
    Цитата Сообщение от VladimirSS9 Посмотреть сообщение
    будет поставлена жирная точка бесконечному флуду
    Но не для всех и твоя жизнь превратится в бесконечное добавление корректировку ключевых слов, хочешь вечно работать на пароме у Аида?

    - - - Updated - - -

    P.S: Никакого смысла фильтровать что-либо лично для себя я не вижу, потому что тебя кинут и там и там. Мелкие гильдии рассыпаются через 2-4 закрытия всех кд. Более крупные существуют словно холдинг АО МММ обогащая только их создателя.


    Цитата Сообщение от VladimirSS9 Посмотреть сообщение
    В гильдию "упыри" нужны челики от 5к гс. Проходим цлк 10 об, рс и т.п. - это сообщение фильтр должен проигнорировать
    А еще они пишут в ПП об! В гильдию Упыри требуется все классы....
    Или делают дублирование сообщений: Сначало пишут
    "Сборы в гильдию такую-то" - А ниже тут же еще 1 сообщение
    Проходим РС. ИК 25 об ждём вас.
    Как твой аддон с таким справится?

    Тут вопрос лояльности администрации к этому говну. И добросовестной работы модераторов, которым платят бонусами.
    Последний раз редактировалось LinxFree; 11.05.2019 в 01:50.
    "Одержать сто побед в ста битвах — это не вершина воинского искусства. Повергнуть врага без сражения — вот вершина."

  12. #10
    Старожил Аватар для Raxaji
    Регистрация
    06.07.2014
    Адрес
    Мир Грёз
    Сообщений
    188
    Поблагодарил(а)
    120
    Получено благодарностей: 105 (сообщений: 45).
    Репутация: 105
    Цитата Сообщение от LinxFree Посмотреть сообщение
    Как твой аддон с таким справится?
    Я понимаю, что у тебя накипело. Но давай тут вести диалог исключительно по теме? Спасибо за понимание. =З

    Столкнулся с проблемой. Фильтр не видит цифры в паре с буквами...

    То есть, если в фильтре я указал - {"ос", "10"}. Он фильтрует все сообщения в которых присутствует "ос", даже те в которых нет цифры 10. Это очень плохо, может кто то с этим помочь?

    - - - Updated - - -

    Цитата Сообщение от VladimirSS9 Посмотреть сообщение
    Еще заметил, что линк некоторых предметов так же переносится в другое окно чата. Я точно знаю, что линк предмета состоит из кода букв и цифр. И похоже в этом коде, изредка могут быть совпадения с фильтрами.
    Можно как то исключить линки предметов из фильтрации?..
    Похоже это происходило не из за кода линков, а из за проблемы описанной выше...

    - - - Updated - - -

    Если использовать цифры по отдельности или в сочетание с символами, то всё в порядке... Странно это...

    - - - Updated - - -

    Использование цифр+символ, тоже багается... Допустим этот фильтр {"=", "15"}, копирует сообщения с обычной цифрой "15", без знака "="...

    - - - Updated - - -

    С цифрой 25+текст нормально фильтрует, а с цифрой 10 проблема...

    - - - Updated - - -

    Комбинация буквы+цифры начали адекватно работать, в таком вот виде:

    {"цлк", "10", " "},
    {"цлк", "25", " "},

    хз почему, но если использовать в фильтре пробел, то он начинает нормально воспринимать цифры...

    - - - Updated - - -

    В общем вот такой код в итоге использую:

    PHP код:
    do 
        
    local o=ChatFrame3.AddMessage 
        local f 
    = { 
            {
    "цлк""10"" "},
            {
    "цлк""25"" "},
            {
    "рс""10"" "},
            {
    "рс""25"" "},
            {
    "ик""10"" "},
            {
    "ик""25"" "},
            {
    "ивк""10"" "},
            {
    "ивк""25"" "},
            {
    "ос""10"" "},
            {
    "ос""25"" "},
            {
    "оня""10"" "},
            {
    "оня""25"" "},
            {
    "оню""10"" "},
            {
    "оню""25"" "},
        }  
        function 
    ChatFrame3:AddMessage(m,...) 
            for 
    k,v in ipairs(f) do 
                
    local n 
                
    for i=1,#v do  
                    
    if m:lower():find(v[i]) then  
                        n
    =n+1  
                        
    if n==#v then  
                            
    if Prat then Prat.loading true ChatFrame7:AddMessage(m,...) Prat.loading false else ChatFrame7:AddMessage(m,...) end return 
                        
    end 
                    
    else break end  
                end 
            end 
            o
    (self,m,...) 
        
    end 
    end

    do 
        
    local o=ChatFrame3.AddMessage 
        local f2 
    = { 
            {
    "гильди"},
            {
    "ги""набор"},
            {
    "ги""нужны"},
            {
    "guild"},
            {
    "от""рт""мск"},
            {
    "цлк""рс""ивк"},
        }  
        function 
    ChatFrame3:AddMessage(m,...) 
            for 
    k,v in ipairs(f2) do 
                
    local n 
                
    for i=1,#v do  
                    
    if m:lower():find(v[i]) then  
                        n
    =n+1  
                        
    if n==#v then  
                            
    if Prat then Prat.loading true ChatFrame8:AddMessage(m,...) Prat.loading false else ChatFrame8:AddMessage(m,...) end return 
                        
    end 
                    
    else break end  
                end 
            end 
            o
    (self,m,...) 
        
    end 
    end

    do 
        
    local o=ChatFrame3.AddMessage 
        local f3 
    = { 
            {
    "продам"},
            {
    "куплю"},
        }  
        function 
    ChatFrame3:AddMessage(m,...) 
            for 
    k,v in ipairs(f3) do 
                
    local n 
                
    for i=1,#v do  
                    
    if m:lower():find(v[i]) then  
                        n
    =n+1  
                        
    if n==#v then  
                            
    if Prat then Prat.loading true ChatFrame6:AddMessage(m,...) Prat.loading false else ChatFrame6:AddMessage(m,...) end return 
                        
    end 
                    
    else break end  
                end 
            end 
            o
    (self,m,...) 
        
    end 
    end 
    Пока что нормально всё...
    Цитата Сообщение от VladimirSS9 Посмотреть сообщение
    Ах да, мне еще интересно, а можно добавить слова исключения?

    Допустим мне нужно сообщения в котором присутствуют слова "цлк" и "10", но при этом мне не нужно сообщение если в нем так же есть слова "гильди" и "ги"

    Такое не сложно дописать в код? =З
    Мне все еще интересен вот это вопрос =З

  13. #11
    Старожил
    Регистрация
    17.06.2018
    Сообщений
    259
    Поблагодарил(а)
    6
    Получено благодарностей: 148 (сообщений: 106).
    Репутация: 148

    Скрытый текст

    PHP код:
    do
        
    local o=ChatFrame1.AddMessage
        local f 
    = {
            {{
    3},{},{"гильдия","guild"},{"пве","pve"},{"набор","recruit"}},
            {{
    4},{" ги","="},{" цлк"," рс","ивк 10","ивк10"},{"хил","танк"}},
            {{
    3,4,5},{"+","-"},{"=","*"},{"1","2"}},
        } 
        
        function 
    ChatFrame1:AddMessage(m,...)
            for 
    _,v in ipairs(f) do
                
    local n 0
                
    for _,j in ipairs(v[2]) do if m:lower():find(jthen n=break end end
                
    if n==0 then
                    
    for i=3,#v do
                        
    for _,j in ipairs(v[i]) do if m:lower():find(jthen n=break end end
                        
    if n==0 then break else n=
                            
    if i==#v then 
                                
    if Prat then 
                                    Prat
    .loading true 
                                    
    for _,n in ipairs(v[1]) do _G["ChatFrame"..n]:AddMessage(m,...) end
                                    Prat
    .loading false
                                
    else
                                    for 
    _,n in ipairs(v[1]) do _G["ChatFrame"..n]:AddMessage(m,...) end
                                end
                                
    return
                            
    end 
                        end
                    end
                end
            end
            o
    (self,m,...)
        
    end
    end 
    [свернуть]

    объясню на примере этого фильтра: "{{3,4,5},{"+","-"},{"=","*"},{"1","2"}},"
    если в сообщении найдется"+" или "-", то фильтр пропустит это сообщение, так как это слова-исключения.
    далее, если в сообщении найдется "="или "*", а также "1" или "2", то фильтр сработает и сообщение будет отправлено в третий, четвертый и пятый чат.
    иными словами, первая таблица это номера чатов(если в игнор, то сделать таблицу пустой), вторая это слова исключения(если их нет, то нужна пустая таблица), остальные таблицы это фильтры, в каждом из которых заменяемые тексты для поиска.
    Цитата Сообщение от VladimirSS9 Посмотреть сообщение
    А еще добавить чувствительность к регистру букв можно?
    убрано специально, чтобы меньше фильтров было.
    Цитата Сообщение от VladimirSS9 Посмотреть сообщение
    Можно как то исключить линки предметов из фильтрации?
    можно просто добавить пробел типа "10 ", ну или сразу с текстом: " цлк 10 " и " цлк10 ". искать линки в тексте лишнее.
    Последний раз редактировалось Ururu; 11.05.2019 в 05:56.

  14. 1 пользователь сказал cпасибо Ururu за это полезное сообщение:

    Raxaji (11.05.2019)

  15. #12
    Старожил Аватар для Raxaji
    Регистрация
    06.07.2014
    Адрес
    Мир Грёз
    Сообщений
    188
    Поблагодарил(а)
    120
    Получено благодарностей: 105 (сообщений: 45).
    Репутация: 105
    Цитата Сообщение от Ururu Посмотреть сообщение
    убрано специально, чтобы меньше фильтров было.
    Всё идеально, огромное СПАСИБО! ^_^

    Сейчас фильтры настрою и опробую =З

Страница 1 из 2 12 ПоследняяПоследняя

Похожие темы

  1. Нужна помощь с аддоном.
    от Слайд в разделе Аддоны
    Ответов: 19
    Последнее сообщение: 02.07.2016, 14:28
  2. Нужна помощь с аддоном
    от Faunt в разделе Корзина
    Ответов: 0
    Последнее сообщение: 24.04.2016, 21:01
  3. Прошу помочь с Аддоном!
    от Практолог в разделе Аддоны
    Ответов: 5
    Последнее сообщение: 07.06.2014, 19:12
  4. Нид помощ с аддоном.
    от Wackylol в разделе Корзина
    Ответов: 3
    Последнее сообщение: 22.06.2012, 14:35
  5. Нужна помощь с аддоном...
    от fallenworld в разделе Корзина
    Ответов: 4
    Последнее сообщение: 04.02.2012, 20:02

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •